From 167d687500cdf993bdba1820ce5b73b6e927937e Mon Sep 17 00:00:00 2001 From: Andrey Date: Thu, 17 Jul 2025 14:09:43 +0400 Subject: [PATCH 1/4] feat: improve address management in integration/ --- .../DelegatorFactory.json | 2 +- .../BaseDelegatorHints.json | 2 +- .../FullRestakeDelegatorHints.json | 2 +- .../NetworkRestakeDelegatorHints.json | 2 +- ...OperatorNetworkSpecificDelegatorHints.json | 2 +- .../OperatorSpecificDelegatorHints.json | 2 +- .../FullRestakeDelegator.json | 2 +- out/MetadataService.sol/MetadataService.json | 2 +- .../NetworkMiddlewareService.json | 2 +- out/NetworkRegistry.sol/NetworkRegistry.json | 2 +- .../NetworkRestakeDelegator.json | 2 +- .../OperatorNetworkSpecificDelegator.json | 2 +- .../OperatorRegistry.json | 2 +- .../OperatorSpecificDelegator.json | 2 +- out/OptInService.sol/OptInService.json | 2 +- .../OptInServiceHints.json | 2 +- out/Slasher.sol/Slasher.json | 2 +- out/SlasherFactory.sol/SlasherFactory.json | 2 +- out/SlasherHints.sol/BaseSlasherHints.json | 2 +- out/SlasherHints.sol/SlasherHints.json | 2 +- out/SlasherHints.sol/VetoSlasherHints.json | 2 +- out/Vault.sol/Vault.json | 2 +- .../VaultConfigurator.json | 2 +- out/VaultFactory.sol/VaultFactory.json | 2 +- out/VaultHints.sol/VaultHints.json | 2 +- out/VaultTokenized.sol/VaultTokenized.json | 2 +- out/VetoSlasher.sol/VetoSlasher.json | 2 +- script/integration/SymbioticCoreInit.sol | 29 ++++++++++++++----- script/integration/SymbioticInit.sol | 10 +++++-- .../integration/examples/OnboardNetwork.s.sol | 7 +++-- test/integration/SymbioticCoreInit.sol | 27 ++++++++++++----- 31 files changed, 81 insertions(+), 46 deletions(-) diff --git a/out/DelegatorFactory.sol/DelegatorFactory.json b/out/DelegatorFactory.sol/DelegatorFactory.json index 17b3eec2..a71c8177 100644 --- a/out/DelegatorFactory.sol/DelegatorFactory.json +++ b/out/DelegatorFactory.sol/DelegatorFactory.json @@ -1 +1 @@ -{"abi":[{"type":"constructor","inputs":[{"name":"owner_","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"blacklist","inputs":[{"name":"type_","type":"uint64","internalType":"uint64"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"blacklisted","inputs":[{"name":"type_","type":"uint64","internalType":"uint64"}],"outputs":[{"name":"value","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"create","inputs":[{"name":"type_","type":"uint64","internalType":"uint64"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"entity_","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"entity","inputs":[{"name":"index","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"implementation","inputs":[{"name":"type_","type":"uint64","internalType":"uint64"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"isEntity","inputs":[{"name":"entity_","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"totalEntities","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"totalTypes","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"whitelist","inputs":[{"name":"implementation_","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"AddEntity","inputs":[{"name":"entity","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Blacklist","inputs":[{"name":"type_","type":"uint64","indexed":true,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Whitelist","inputs":[{"name":"implementation","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"error","name":"AlreadyBlacklisted","inputs":[]},{"type":"error","name":"AlreadyWhitelisted","inputs":[]},{"type":"error","name":"ERC1167FailedCreateClone","inputs":[]},{"type":"error","name":"EntityNotExist","inputs":[]},{"type":"error","name":"InvalidImplementation","inputs":[]},{"type":"error","name":"InvalidType","inputs":[]},{"type":"error","name":"OwnableInvalidOwner","inputs":[{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"OwnableUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"}]}],"bytecode":{"object":"0x60803460b557601f6109a338819003918201601f19168301916001600160401b0383118484101760b95780849260209460405283398101031260b557516001600160a01b03908181169081900360b5578015609d57600280546001600160a01b03198116831790915560405192167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a36108d590816100ce8239f35b604051631e4fbdf760e01b81525f6004820152602490fd5b5f80fd5b634e487b7160e01b5f52604160045260245ffdfe6080604090808252600480361015610015575f80fd5b5f3560e01c91826314887c5814610698575081635cd8b15e1461067b578163715018a6146106205781638da5cb5b146105f85781639b19251a14610485578163b42ba2a21461041a578163b572a96614610375578163b6caa11914610338578163cd108ef814610194578163f15df2e51461016e578163f2fde38b146100dd575063f9661602146100a4575f80fd5b346100d95760203660031901126100d9576020906100c86100c36106d1565b61073e565b90516001600160a01b039091168152f35b5f80fd5b82346100d95760203660031901126100d9576001600160a01b038235818116939192908490036100d95761010f610799565b8315610158575050600254826bffffffffffffffffffffffff60a01b821617600255167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3005b905f6024925191631e4fbdf760e01b8352820152fd5b82346100d9575f3660031901126100d95767ffffffffffffffff60209254169051908152f35b82346100d957806003193601126100d9576101ad6106d1565b906024359167ffffffffffffffff8084116100d957366023850112156100d95783850135918183116100d957602485019460248436920101116100d9576e5af43d82803e903d91602b57fd5bf36102038261073e565b915f54908487519160208301938452168782015260608082015261023d8161022f60808201898c61071e565b03601f1981018352826106e8565b51902091763d602d80600a3d3981f3363d3d373d3d3d363d7300000062ffffff8260881c16175f5260781b1760205260018060a01b0390603760095ff5169384156103285761028b85610836565b50835192857fb919910dcefbf753bfd926ab3b1d3f85d877190c3d01ba1bd585047b99b99f0b5f80a2853b156100d957836102dd5f93829363439fab9160e01b845260208b850152602484019161071e565b038183885af1801561031e576102f8575b6020848451908152f35b811161030b5760209350815283806102ee565b604184634e487b7160e01b5f525260245ffd5b83513d5f823e3d90fd5b83516330be1a3d60e21b81528690fd5b82346100d95760203660031901126100d95760209067ffffffffffffffff61035e6106d1565b165f526003825260ff815f20541690519015158152f35b82346100d95760203660031901126100d95761038f6106d1565b91610398610799565b67ffffffffffffffff8082541693169283101561040c57825f52600360205260ff825f2054166103fe5750815f5260036020525f20600160ff198254161790557ffc8245c2838846b295ae66fbe0d08e20c799b737c93b56f7b209df2e5fa2d4585f80a2005b905163f53de75f60e01b8152fd5b905163b968846160e01b8152fd5b82346100d95760203660031901126100d95781355f54811015610472575f80527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563015490516001600160a01b03909116815260209150f35b603283634e487b7160e01b5f525260245ffd5b9050346100d957602091826003193601126100d95781356001600160a01b0381811694918590036100d9576104b8610799565b82516202dd3160ec1b81529082828681895afa9182156105ee575f926105b6575b501630148015919061053a575b5061052d576104f4836107c5565b1561052057827feb73900b98b6a3e2b8b01708fe544760cf570d21e7fbe5225f24e48b5b2b432e5f80a2005b5163b73e95e160e01b8152fd5b5163340aafcd60e11b8152fd5b8251635d927f4560e11b815290915081818581885afa91821561031e575f92610577575b505067ffffffffffffffff80845416911614155f6104e6565b90809250813d83116105af575b61058e81836106e8565b810103126100d9575167ffffffffffffffff811681036100d9575f8061055e565b503d610584565b9091508281813d83116105e7575b6105ce81836106e8565b810103126100d9575181811681036100d957905f6104d9565b503d6105c4565b84513d5f823e3d90fd5b82346100d9575f3660031901126100d95760025490516001600160a01b039091168152602090f35b346100d9575f3660031901126100d957610638610799565b600280546001600160a01b031981169091555f906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b82346100d9575f3660031901126100d9576020905f549051908152f35b9150346100d95760203660031901126100d957356001600160a01b03811692908390036100d9576020925f52600183525f205415158152f35b6004359067ffffffffffffffff821682036100d957565b90601f8019910116810190811067ffffffffffffffff82111761070a57604052565b634e487b7160e01b5f52604160045260245ffd5b908060209392818452848401375f828201840152601f01601f1916010190565b67ffffffffffffffff166004548110156107855760045f527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b01546001600160a01b031690565b634e487b7160e01b5f52603260045260245ffd5b6002546001600160a01b031633036107ad57565b60405163118cdaa760e01b8152336004820152602490fd5b805f52600560205260405f2054155f1461083157600454600160401b81101561070a5760018101806004558110156107855781907f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b0155600454905f52600560205260405f2055600190565b505f90565b805f52600160205260405f2054155f14610831575f54600160401b81101561070a5760018101805f558110156107855781907f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e56301555f54905f52600160205260405f205560019056fea2646970667358221220377c7c8f4b9c9b6585fa533deadc519659538dd3b8b8fd22fffd3bbad02b228064736f6c63430008190033","sourceMap":"181:124:63:-:0;;;;;;;;;;;;;-1:-1:-1;;181:124:63;;;;-1:-1:-1;;;;;181:124:63;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;181:124:63;;;;;;;;;;1273:26:32;;1269:95;;3004:6;181:124:63;;-1:-1:-1;;;;;;181:124:63;;;;;;;;;;;3052:40:32;-1:-1:-1;;3052:40:32;181:124:63;;;;;;;1269:95:32;181:124:63;;-1:-1:-1;;;1322:31:32;;-1:-1:-1;1322:31:32;;;181:124:63;;;1322:31:32;181:124:63;-1:-1:-1;181:124:63;;;;;;-1:-1:-1;181:124:63;;;;;-1:-1:-1;181:124:63","linkReferences":{}},"deployedBytecode":{"object":"0x6080604090808252600480361015610015575f80fd5b5f3560e01c91826314887c5814610698575081635cd8b15e1461067b578163715018a6146106205781638da5cb5b146105f85781639b19251a14610485578163b42ba2a21461041a578163b572a96614610375578163b6caa11914610338578163cd108ef814610194578163f15df2e51461016e578163f2fde38b146100dd575063f9661602146100a4575f80fd5b346100d95760203660031901126100d9576020906100c86100c36106d1565b61073e565b90516001600160a01b039091168152f35b5f80fd5b82346100d95760203660031901126100d9576001600160a01b038235818116939192908490036100d95761010f610799565b8315610158575050600254826bffffffffffffffffffffffff60a01b821617600255167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3005b905f6024925191631e4fbdf760e01b8352820152fd5b82346100d9575f3660031901126100d95767ffffffffffffffff60209254169051908152f35b82346100d957806003193601126100d9576101ad6106d1565b906024359167ffffffffffffffff8084116100d957366023850112156100d95783850135918183116100d957602485019460248436920101116100d9576e5af43d82803e903d91602b57fd5bf36102038261073e565b915f54908487519160208301938452168782015260608082015261023d8161022f60808201898c61071e565b03601f1981018352826106e8565b51902091763d602d80600a3d3981f3363d3d373d3d3d363d7300000062ffffff8260881c16175f5260781b1760205260018060a01b0390603760095ff5169384156103285761028b85610836565b50835192857fb919910dcefbf753bfd926ab3b1d3f85d877190c3d01ba1bd585047b99b99f0b5f80a2853b156100d957836102dd5f93829363439fab9160e01b845260208b850152602484019161071e565b038183885af1801561031e576102f8575b6020848451908152f35b811161030b5760209350815283806102ee565b604184634e487b7160e01b5f525260245ffd5b83513d5f823e3d90fd5b83516330be1a3d60e21b81528690fd5b82346100d95760203660031901126100d95760209067ffffffffffffffff61035e6106d1565b165f526003825260ff815f20541690519015158152f35b82346100d95760203660031901126100d95761038f6106d1565b91610398610799565b67ffffffffffffffff8082541693169283101561040c57825f52600360205260ff825f2054166103fe5750815f5260036020525f20600160ff198254161790557ffc8245c2838846b295ae66fbe0d08e20c799b737c93b56f7b209df2e5fa2d4585f80a2005b905163f53de75f60e01b8152fd5b905163b968846160e01b8152fd5b82346100d95760203660031901126100d95781355f54811015610472575f80527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563015490516001600160a01b03909116815260209150f35b603283634e487b7160e01b5f525260245ffd5b9050346100d957602091826003193601126100d95781356001600160a01b0381811694918590036100d9576104b8610799565b82516202dd3160ec1b81529082828681895afa9182156105ee575f926105b6575b501630148015919061053a575b5061052d576104f4836107c5565b1561052057827feb73900b98b6a3e2b8b01708fe544760cf570d21e7fbe5225f24e48b5b2b432e5f80a2005b5163b73e95e160e01b8152fd5b5163340aafcd60e11b8152fd5b8251635d927f4560e11b815290915081818581885afa91821561031e575f92610577575b505067ffffffffffffffff80845416911614155f6104e6565b90809250813d83116105af575b61058e81836106e8565b810103126100d9575167ffffffffffffffff811681036100d9575f8061055e565b503d610584565b9091508281813d83116105e7575b6105ce81836106e8565b810103126100d9575181811681036100d957905f6104d9565b503d6105c4565b84513d5f823e3d90fd5b82346100d9575f3660031901126100d95760025490516001600160a01b039091168152602090f35b346100d9575f3660031901126100d957610638610799565b600280546001600160a01b031981169091555f906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b82346100d9575f3660031901126100d9576020905f549051908152f35b9150346100d95760203660031901126100d957356001600160a01b03811692908390036100d9576020925f52600183525f205415158152f35b6004359067ffffffffffffffff821682036100d957565b90601f8019910116810190811067ffffffffffffffff82111761070a57604052565b634e487b7160e01b5f52604160045260245ffd5b908060209392818452848401375f828201840152601f01601f1916010190565b67ffffffffffffffff166004548110156107855760045f527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b01546001600160a01b031690565b634e487b7160e01b5f52603260045260245ffd5b6002546001600160a01b031633036107ad57565b60405163118cdaa760e01b8152336004820152602490fd5b805f52600560205260405f2054155f1461083157600454600160401b81101561070a5760018101806004558110156107855781907f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b0155600454905f52600560205260405f2055600190565b505f90565b805f52600160205260405f2054155f14610831575f54600160401b81101561070a5760018101805f558110156107855781907f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e56301555f54905f52600160205260405f205560019056fea2646970667358221220377c7c8f4b9c9b6585fa533deadc519659538dd3b8b8fd22fffd3bbad02b228064736f6c63430008190033","sourceMap":"181:124:63:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;181:124:63;;;;;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;181:124:63;;;;;;;;;;;;;;;;;-1:-1:-1;;181:124:63;;;;-1:-1:-1;;;;;181:124:63;;;;;;;;;;;;;;1500:62:32;;:::i;:::-;2627:22;;2623:91;;181:124:63;;3004:6:32;181:124:63;;;;;;;;3004:6:32;181:124:63;;3052:40:32;181:124:63;3052:40:32;;181:124:63;2623:91:32;181:124:63;;;;;2672:31:32;;;;;;;;181:124:63;2672:31:32;181:124:63;;;;;;;-1:-1:-1;;181:124:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2364:565:36;2248:21:70;;;:::i;:::-;181:124:63;;;;;;;2299:40:70;181:124:63;2299:40:70;;181:124:63;;;;;;;;;;;;;2299:40:70;181:124:63;;;;;;;;:::i;:::-;2299:40:70;;;;;;;;;:::i;:::-;181:124:63;2289:51:70;;2364:565:36;;;;;;;;181:124:63;2364:565:36;;;;181:124:63;2364:565:36;181:124:63;;;;;2364:565:36;;;181:124:63;2364:565:36;181:124:63;2942:22:36;;;2938:86;;8409:50:61;;;:::i;:::-;;181:124:63;;1077:18:74;;;181:124:63;1077:18:74;;2382:33:70;;;;;181:124:63;;;;;;;;;2382:33:70;;181:124:63;2382:33:70;;;181:124:63;;;;;;:::i;:::-;2382:33:70;;;;;;;;;;;;181:124:63;;;;;;;;;2382:33:70;181:124:63;;;;;;;;;2382:33:70;;;;181:124:63;;;;;;;;;;;;2382:33:70;181:124:63;;;;;;;;;2938:86:36;181:124:63;;-1:-1:-1;;;2987:26:36;;181:124:63;;2987:26:36;181:124:63;;;;;;;-1:-1:-1;;181:124:63;;;;;;;;;:::i;:::-;;;;633:54:70;181:124:63;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;181:124:63;;;;;;:::i;:::-;1500:62:32;;;:::i;:::-;181:124:63;;;;;;;822:21:70;;;;818:72;;181:124:63;;;1946:11:70;181:124:63;;;;;;;;1942:76:70;;181:124:63;;;;1946:11:70;181:124:63;;;;2049:4:70;181:124:63;;;;;;;;2069:16:70;181:124:63;2069:16:70;;181:124:63;1942:76:70;181:124:63;;-1:-1:-1;;;1987:20:70;;;818:72;181:124:63;;-1:-1:-1;;;866:13:70;;;181:124:63;;;;;;;-1:-1:-1;;181:124:63;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;181:124:63;;;;;;;-1:-1:-1;181:124:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;181:124:63;;;;;;;;;;1500:62:32;;:::i;:::-;181:124:63;;-1:-1:-1;;;1476:34:70;;181:124:63;1476:34:70;181:124:63;1476:34:70;181:124:63;1476:34:70;;;;;;;;181:124:63;1476:34:70;;;181:124:63;-1:-1:-1;181:124:63;1522:4:70;1476:51;;;;;:102;;181:124:63;1472:163:70;;;8409:50:61;;;:::i;:::-;1648:49:70;1644:107;;1766:26;;181:124:63;1766:26:70;;181:124:63;1644:107:70;181:124:63;-1:-1:-1;;;1720:20:70;;;1472:163;181:124:63;-1:-1:-1;;;1601:23:70;;;1476:102;181:124:63;;-1:-1:-1;;;1531:31:70;;181:124:63;;-1:-1:-1;181:124:63;;1531:31:70;181:124:63;1531:31:70;;;;;;;;181:124:63;1531:31:70;;;1476:102;181:124:63;;;;;;;;;1531:47:70;;1476:102;;;1531:31;;;;;;;;;;;;;;;;:::i;:::-;;;181:124:63;;;;;;;;;;;;1531:31:70;;;;;;;;;1476:34;;;;;;;;;;;;;;;;;:::i;:::-;;;181:124:63;;;;;;;;;;;;1476:34:70;;;;;;;;;;181:124:63;;;;;;;;;;;;;;;;-1:-1:-1;;181:124:63;;;;1710:6:32;181:124:63;;;-1:-1:-1;;;;;181:124:63;;;;;;;;;;;;;;-1:-1:-1;;181:124:63;;;;1500:62:32;;:::i;:::-;3004:6;181:124:63;;-1:-1:-1;;;;;;181:124:63;;;;;;;-1:-1:-1;;;;;181:124:63;3052:40:32;181:124:63;;3052:40:32;181:124:63;;;;;;;;-1:-1:-1;;181:124:63;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;181:124:63;;;;;-1:-1:-1;;;;;181:124:63;;;;;;;;;;;;;4360:14:61;181:124:63;;;;;4360:26:61;;181:124:63;;;;;;;;;;;;;;:::o;:::-;;;2299:40:70;;181:124:63;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;181:124:63;;;;;;;;-1:-1:-1;;181:124:63;;;;:::o;1192:143:70:-;181:124:63;;1291:27:70;181:124:63;;;;;;1291:27:70;-1:-1:-1;181:124:63;;;;-1:-1:-1;;;;;181:124:63;;1192:143:70:o;181:124:63:-;;;;-1:-1:-1;181:124:63;;1291:27:70;181:124:63;;-1:-1:-1;181:124:63;1796:162:32;1710:6;181:124:63;-1:-1:-1;;;;;181:124:63;735:10:47;1855:23:32;1851:101;;1796:162::o;1851:101::-;181:124:63;;-1:-1:-1;;;1901:40:32;;735:10:47;1901:40:32;;;181:124:63;;;1901:40:32;2241:406:61;181:124:63;-1:-1:-1;181:124:63;4360:14:61;181:124:63;;;-1:-1:-1;181:124:63;;4360:26:61;2320:321;181:124:63;;;;;-1:-1:-1;;;181:124:63;;;;;4360:14:61;181:124:63;;;;;;;;;;;;;;;;;;-1:-1:-1;181:124:63;4360:14:61;181:124:63;;;-1:-1:-1;181:124:63;;4360:14:61;2576:11;:::o;2320:321::-;2618:12;-1:-1:-1;2618:12:61;:::o;2241:406::-;181:124:63;;;4360:14:61;181:124:63;;;;;;4360:26:61;2320:321;181:124:63;;;;;-1:-1:-1;;;181:124:63;;;;;4360:14:61;181:124:63;;;;;;;;;;;;;;;;;;;;4360:14:61;181:124:63;;;;;;4360:14:61;2576:11;:::o","linkReferences":{}},"methodIdentifiers":{"blacklist(uint64)":"b572a966","blacklisted(uint64)":"b6caa119","create(uint64,bytes)":"cd108ef8","entity(uint256)":"b42ba2a2","implementation(uint64)":"f9661602","isEntity(address)":"14887c58","owner()":"8da5cb5b","renounceOwnership()":"715018a6","totalEntities()":"5cd8b15e","totalTypes()":"f15df2e5","transferOwnership(address)":"f2fde38b","whitelist(address)":"9b19251a"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner_\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"AlreadyBlacklisted\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AlreadyWhitelisted\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ERC1167FailedCreateClone\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"EntityNotExist\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidImplementation\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidType\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"entity\",\"type\":\"address\"}],\"name\":\"AddEntity\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"type_\",\"type\":\"uint64\"}],\"name\":\"Blacklist\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"Whitelist\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"type_\",\"type\":\"uint64\"}],\"name\":\"blacklist\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"type_\",\"type\":\"uint64\"}],\"name\":\"blacklisted\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"value\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"type_\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"create\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"entity_\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"entity\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"type_\",\"type\":\"uint64\"}],\"name\":\"implementation\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"entity_\",\"type\":\"address\"}],\"name\":\"isEntity\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalEntities\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalTypes\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"implementation_\",\"type\":\"address\"}],\"name\":\"whitelist\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"ERC1167FailedCreateClone()\":[{\"details\":\"A clone instance deployment failed.\"}],\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}]},\"events\":{\"AddEntity(address)\":{\"params\":{\"entity\":\"address of the added entity\"}},\"Blacklist(uint64)\":{\"details\":\"The given type is still deployable.\",\"params\":{\"type_\":\"type that was blacklisted\"}},\"Whitelist(address)\":{\"params\":{\"implementation\":\"address of the new implementation\"}}},\"kind\":\"dev\",\"methods\":{\"blacklist(uint64)\":{\"details\":\"The given type will still be deployable.\",\"params\":{\"type_\":\"type to blacklist\"}},\"create(uint64,bytes)\":{\"details\":\"CREATE2 salt is constructed from the given parameters.\",\"params\":{\"data\":\"initial data for the entity creation\",\"type_\":\"type's implementation to use\"},\"returns\":{\"entity_\":\"address of the entity\"}},\"entity(uint256)\":{\"params\":{\"index\":\"index of the entity to get\"},\"returns\":{\"_0\":\"address of the entity\"}},\"implementation(uint64)\":{\"params\":{\"type_\":\"position to get the implementation at\"},\"returns\":{\"_0\":\"address of the implementation\"}},\"isEntity(address)\":{\"params\":{\"account\":\"address to check\"},\"returns\":{\"_0\":\"if the given address is an entity\"}},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"totalEntities()\":{\"returns\":{\"_0\":\"total number of entities added\"}},\"totalTypes()\":{\"returns\":{\"_0\":\"total number of types\"}},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"},\"whitelist(address)\":{\"params\":{\"implementation\":\"address of the new implementation\"}}},\"version\":1},\"userdoc\":{\"events\":{\"AddEntity(address)\":{\"notice\":\"Emitted when an entity is added.\"},\"Blacklist(uint64)\":{\"notice\":\"Emitted when a type is blacklisted (e.g., in case of invalid implementation).\"},\"Whitelist(address)\":{\"notice\":\"Emitted when a new type is whitelisted.\"}},\"kind\":\"user\",\"methods\":{\"blacklist(uint64)\":{\"notice\":\"Blacklist a type of entity.\"},\"blacklisted(uint64)\":{\"notice\":\"Get if a type is blacklisted (e.g., in case of invalid implementation).\"},\"create(uint64,bytes)\":{\"notice\":\"Create a new entity at the factory.\"},\"entity(uint256)\":{\"notice\":\"Get an entity given its index.\"},\"implementation(uint64)\":{\"notice\":\"Get the implementation for a given type.\"},\"isEntity(address)\":{\"notice\":\"Get if a given address is an entity.\"},\"totalEntities()\":{\"notice\":\"Get a total number of entities.\"},\"totalTypes()\":{\"notice\":\"Get the total number of whitelisted types.\"},\"whitelist(address)\":{\"notice\":\"Whitelist a new type of entity.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/contracts/DelegatorFactory.sol\":\"DelegatorFactory\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"lib/openzeppelin-contracts/contracts/proxy/Clones.sol\":{\"keccak256\":\"0xd18408af8a91bedb3d56343eeb9b30eb852e6dea93a5e2d5c6db9ca4cb905155\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://061475b7302a732dc598907790f407417551c2b13e89daa57b3698489ef5484b\",\"dweb:/ipfs/QmdX5qmk3VSniSErFuD4aVawQxUi2MuUbP7spPcHddPfcX\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0x86c1470cbfd878491e5de030072b647352d36bd27122cffb928970b1945282aa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ad85dd393ee0a1917c57046abc5155f51f77844b2c6a42c05c1b8dd26d6ff3c1\",\"dweb:/ipfs/QmNqYc8To2NdnpP6E1tGz7t6A7beuENde5yovwov5pW1fA\"]},\"src/contracts/DelegatorFactory.sol\":{\"keccak256\":\"0x3c3fb62c441302f4f75d94703779f5c4bb755c06f310b4c923dbf24d6e0adda9\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://597fa8be7179d8a555bf942c1dea0504273a1d34f6ac4c206fc2e816da143e68\",\"dweb:/ipfs/Qmf54DKNYXC7fTMcAFABw68RC6ZFenVgyAPGhbPTf6s5TR\"]},\"src/contracts/common/Factory.sol\":{\"keccak256\":\"0x41764643e6a2a3d80d694a3efee91f50a2fd084fb2bcd13566259443840e6369\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://fefc1e2a2189275388826f4f82ca421ca79c2866d3ef39dc2c7df46fe7cbf7c9\",\"dweb:/ipfs/QmSJ4VGmgpYUv5ni4ZYoSV4qMuZrk5DLjyB3Vv9NbFgeNZ\"]},\"src/contracts/common/Registry.sol\":{\"keccak256\":\"0x4a4004836d920953a8ec6e223de9a330f43acf7a5b93c6b8b3e4a95e0f129889\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://e8bdda207f3852c683a2b481602239a914f7e26bcd042ade618e263a43b67652\",\"dweb:/ipfs/Qmb8GZykJWxZcfwNp3SqhFizDFydFuV6LXgemV3vnWyLyu\"]},\"src/interfaces/IDelegatorFactory.sol\":{\"keccak256\":\"0x7850453237ca93b301393506d2489a38830a60be0c29f39a4a1aee3508d836e6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8f418702b883c90e046af92d5654a25849baf79b61c11401ad603b861fed7b80\",\"dweb:/ipfs/Qmdju1XFJXx3uJidzoS7srcoSnzT8jUoPAmGEdbceYgB7j\"]},\"src/interfaces/common/IEntity.sol\":{\"keccak256\":\"0x8ef4b63d6da63489778ccd5f8d13ebdd527dd4b62730b2c616df5af7474d2d21\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a8d69576a9219d85c50816a18ad53a4d53cfcb27ed38b8cccc808dc2734b71b\",\"dweb:/ipfs/QmYVN3P4Q4REvBWJ97TbAcaxm3uyB2anV6NSGa6ZtSwcEv\"]},\"src/interfaces/common/IFactory.sol\":{\"keccak256\":\"0xe835ebda85d181b70874f6eb53f2a892aa3223d23efe247060da9b51d2b8e969\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://48b3dfb5f0491d90efbc8ed498b45358260ebac6e8f2aa0106b8b8fabdc988cb\",\"dweb:/ipfs/QmWnnCs3xiHeUvYfUWMJTSFZWc34bSYn9Zpm7f7syra3TA\"]},\"src/interfaces/common/IRegistry.sol\":{\"keccak256\":\"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014\",\"dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.25+commit.b61c2a91"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"owner_","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"AlreadyBlacklisted"},{"inputs":[],"type":"error","name":"AlreadyWhitelisted"},{"inputs":[],"type":"error","name":"ERC1167FailedCreateClone"},{"inputs":[],"type":"error","name":"EntityNotExist"},{"inputs":[],"type":"error","name":"InvalidImplementation"},{"inputs":[],"type":"error","name":"InvalidType"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"OwnableInvalidOwner"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"OwnableUnauthorizedAccount"},{"inputs":[{"internalType":"address","name":"entity","type":"address","indexed":true}],"type":"event","name":"AddEntity","anonymous":false},{"inputs":[{"internalType":"uint64","name":"type_","type":"uint64","indexed":true}],"type":"event","name":"Blacklist","anonymous":false},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"address","name":"implementation","type":"address","indexed":true}],"type":"event","name":"Whitelist","anonymous":false},{"inputs":[{"internalType":"uint64","name":"type_","type":"uint64"}],"stateMutability":"nonpayable","type":"function","name":"blacklist"},{"inputs":[{"internalType":"uint64","name":"type_","type":"uint64"}],"stateMutability":"view","type":"function","name":"blacklisted","outputs":[{"internalType":"bool","name":"value","type":"bool"}]},{"inputs":[{"internalType":"uint64","name":"type_","type":"uint64"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"create","outputs":[{"internalType":"address","name":"entity_","type":"address"}]},{"inputs":[{"internalType":"uint256","name":"index","type":"uint256"}],"stateMutability":"view","type":"function","name":"entity","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"uint64","name":"type_","type":"uint64"}],"stateMutability":"view","type":"function","name":"implementation","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"entity_","type":"address"}],"stateMutability":"view","type":"function","name":"isEntity","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[],"stateMutability":"view","type":"function","name":"totalEntities","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"totalTypes","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"},{"inputs":[{"internalType":"address","name":"implementation_","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"whitelist"}],"devdoc":{"kind":"dev","methods":{"blacklist(uint64)":{"details":"The given type will still be deployable.","params":{"type_":"type to blacklist"}},"create(uint64,bytes)":{"details":"CREATE2 salt is constructed from the given parameters.","params":{"data":"initial data for the entity creation","type_":"type's implementation to use"},"returns":{"entity_":"address of the entity"}},"entity(uint256)":{"params":{"index":"index of the entity to get"},"returns":{"_0":"address of the entity"}},"implementation(uint64)":{"params":{"type_":"position to get the implementation at"},"returns":{"_0":"address of the implementation"}},"isEntity(address)":{"params":{"account":"address to check"},"returns":{"_0":"if the given address is an entity"}},"owner()":{"details":"Returns the address of the current owner."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner."},"totalEntities()":{"returns":{"_0":"total number of entities added"}},"totalTypes()":{"returns":{"_0":"total number of types"}},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."},"whitelist(address)":{"params":{"implementation":"address of the new implementation"}}},"version":1},"userdoc":{"kind":"user","methods":{"blacklist(uint64)":{"notice":"Blacklist a type of entity."},"blacklisted(uint64)":{"notice":"Get if a type is blacklisted (e.g., in case of invalid implementation)."},"create(uint64,bytes)":{"notice":"Create a new entity at the factory."},"entity(uint256)":{"notice":"Get an entity given its index."},"implementation(uint64)":{"notice":"Get the implementation for a given type."},"isEntity(address)":{"notice":"Get if a given address is an entity."},"totalEntities()":{"notice":"Get a total number of entities."},"totalTypes()":{"notice":"Get the total number of whitelisted types."},"whitelist(address)":{"notice":"Whitelist a new type of entity."}},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/contracts/DelegatorFactory.sol":"DelegatorFactory"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts/contracts/access/Ownable.sol":{"keccak256":"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb","urls":["bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6","dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/Clones.sol":{"keccak256":"0xd18408af8a91bedb3d56343eeb9b30eb852e6dea93a5e2d5c6db9ca4cb905155","urls":["bzz-raw://061475b7302a732dc598907790f407417551c2b13e89daa57b3698489ef5484b","dweb:/ipfs/QmdX5qmk3VSniSErFuD4aVawQxUi2MuUbP7spPcHddPfcX"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0x86c1470cbfd878491e5de030072b647352d36bd27122cffb928970b1945282aa","urls":["bzz-raw://ad85dd393ee0a1917c57046abc5155f51f77844b2c6a42c05c1b8dd26d6ff3c1","dweb:/ipfs/QmNqYc8To2NdnpP6E1tGz7t6A7beuENde5yovwov5pW1fA"],"license":"MIT"},"src/contracts/DelegatorFactory.sol":{"keccak256":"0x3c3fb62c441302f4f75d94703779f5c4bb755c06f310b4c923dbf24d6e0adda9","urls":["bzz-raw://597fa8be7179d8a555bf942c1dea0504273a1d34f6ac4c206fc2e816da143e68","dweb:/ipfs/Qmf54DKNYXC7fTMcAFABw68RC6ZFenVgyAPGhbPTf6s5TR"],"license":"BUSL-1.1"},"src/contracts/common/Factory.sol":{"keccak256":"0x41764643e6a2a3d80d694a3efee91f50a2fd084fb2bcd13566259443840e6369","urls":["bzz-raw://fefc1e2a2189275388826f4f82ca421ca79c2866d3ef39dc2c7df46fe7cbf7c9","dweb:/ipfs/QmSJ4VGmgpYUv5ni4ZYoSV4qMuZrk5DLjyB3Vv9NbFgeNZ"],"license":"BUSL-1.1"},"src/contracts/common/Registry.sol":{"keccak256":"0x4a4004836d920953a8ec6e223de9a330f43acf7a5b93c6b8b3e4a95e0f129889","urls":["bzz-raw://e8bdda207f3852c683a2b481602239a914f7e26bcd042ade618e263a43b67652","dweb:/ipfs/Qmb8GZykJWxZcfwNp3SqhFizDFydFuV6LXgemV3vnWyLyu"],"license":"BUSL-1.1"},"src/interfaces/IDelegatorFactory.sol":{"keccak256":"0x7850453237ca93b301393506d2489a38830a60be0c29f39a4a1aee3508d836e6","urls":["bzz-raw://8f418702b883c90e046af92d5654a25849baf79b61c11401ad603b861fed7b80","dweb:/ipfs/Qmdju1XFJXx3uJidzoS7srcoSnzT8jUoPAmGEdbceYgB7j"],"license":"MIT"},"src/interfaces/common/IEntity.sol":{"keccak256":"0x8ef4b63d6da63489778ccd5f8d13ebdd527dd4b62730b2c616df5af7474d2d21","urls":["bzz-raw://5a8d69576a9219d85c50816a18ad53a4d53cfcb27ed38b8cccc808dc2734b71b","dweb:/ipfs/QmYVN3P4Q4REvBWJ97TbAcaxm3uyB2anV6NSGa6ZtSwcEv"],"license":"MIT"},"src/interfaces/common/IFactory.sol":{"keccak256":"0xe835ebda85d181b70874f6eb53f2a892aa3223d23efe247060da9b51d2b8e969","urls":["bzz-raw://48b3dfb5f0491d90efbc8ed498b45358260ebac6e8f2aa0106b8b8fabdc988cb","dweb:/ipfs/QmWnnCs3xiHeUvYfUWMJTSFZWc34bSYn9Zpm7f7syra3TA"],"license":"MIT"},"src/interfaces/common/IRegistry.sol":{"keccak256":"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb","urls":["bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014","dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK"],"license":"MIT"}},"version":1},"id":63} \ No newline at end of file +{"abi":[{"type":"constructor","inputs":[{"name":"owner_","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"blacklist","inputs":[{"name":"type_","type":"uint64","internalType":"uint64"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"blacklisted","inputs":[{"name":"type_","type":"uint64","internalType":"uint64"}],"outputs":[{"name":"value","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"create","inputs":[{"name":"type_","type":"uint64","internalType":"uint64"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"entity_","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"entity","inputs":[{"name":"index","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"implementation","inputs":[{"name":"type_","type":"uint64","internalType":"uint64"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"isEntity","inputs":[{"name":"entity_","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"totalEntities","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"totalTypes","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"whitelist","inputs":[{"name":"implementation_","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"AddEntity","inputs":[{"name":"entity","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Blacklist","inputs":[{"name":"type_","type":"uint64","indexed":true,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Whitelist","inputs":[{"name":"implementation","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"error","name":"AlreadyBlacklisted","inputs":[]},{"type":"error","name":"AlreadyWhitelisted","inputs":[]},{"type":"error","name":"ERC1167FailedCreateClone","inputs":[]},{"type":"error","name":"EntityNotExist","inputs":[]},{"type":"error","name":"InvalidImplementation","inputs":[]},{"type":"error","name":"InvalidType","inputs":[]},{"type":"error","name":"OwnableInvalidOwner","inputs":[{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"OwnableUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"}]}],"bytecode":{"object":"0x60803460b557601f6109a338819003918201601f19168301916001600160401b0383118484101760b95780849260209460405283398101031260b557516001600160a01b03908181169081900360b5578015609d57600280546001600160a01b03198116831790915560405192167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a36108d590816100ce8239f35b604051631e4fbdf760e01b81525f6004820152602490fd5b5f80fd5b634e487b7160e01b5f52604160045260245ffdfe6080604090808252600480361015610015575f80fd5b5f3560e01c91826314887c5814610698575081635cd8b15e1461067b578163715018a6146106205781638da5cb5b146105f85781639b19251a14610485578163b42ba2a21461041a578163b572a96614610375578163b6caa11914610338578163cd108ef814610194578163f15df2e51461016e578163f2fde38b146100dd575063f9661602146100a4575f80fd5b346100d95760203660031901126100d9576020906100c86100c36106d1565b61073e565b90516001600160a01b039091168152f35b5f80fd5b82346100d95760203660031901126100d9576001600160a01b038235818116939192908490036100d95761010f610799565b8315610158575050600254826bffffffffffffffffffffffff60a01b821617600255167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3005b905f6024925191631e4fbdf760e01b8352820152fd5b82346100d9575f3660031901126100d95767ffffffffffffffff60209254169051908152f35b82346100d957806003193601126100d9576101ad6106d1565b906024359167ffffffffffffffff8084116100d957366023850112156100d95783850135918183116100d957602485019460248436920101116100d9576e5af43d82803e903d91602b57fd5bf36102038261073e565b915f54908487519160208301938452168782015260608082015261023d8161022f60808201898c61071e565b03601f1981018352826106e8565b51902091763d602d80600a3d3981f3363d3d373d3d3d363d7300000062ffffff8260881c16175f5260781b1760205260018060a01b0390603760095ff5169384156103285761028b85610836565b50835192857fb919910dcefbf753bfd926ab3b1d3f85d877190c3d01ba1bd585047b99b99f0b5f80a2853b156100d957836102dd5f93829363439fab9160e01b845260208b850152602484019161071e565b038183885af1801561031e576102f8575b6020848451908152f35b811161030b5760209350815283806102ee565b604184634e487b7160e01b5f525260245ffd5b83513d5f823e3d90fd5b83516330be1a3d60e21b81528690fd5b82346100d95760203660031901126100d95760209067ffffffffffffffff61035e6106d1565b165f526003825260ff815f20541690519015158152f35b82346100d95760203660031901126100d95761038f6106d1565b91610398610799565b67ffffffffffffffff8082541693169283101561040c57825f52600360205260ff825f2054166103fe5750815f5260036020525f20600160ff198254161790557ffc8245c2838846b295ae66fbe0d08e20c799b737c93b56f7b209df2e5fa2d4585f80a2005b905163f53de75f60e01b8152fd5b905163b968846160e01b8152fd5b82346100d95760203660031901126100d95781355f54811015610472575f80527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563015490516001600160a01b03909116815260209150f35b603283634e487b7160e01b5f525260245ffd5b9050346100d957602091826003193601126100d95781356001600160a01b0381811694918590036100d9576104b8610799565b82516202dd3160ec1b81529082828681895afa9182156105ee575f926105b6575b501630148015919061053a575b5061052d576104f4836107c5565b1561052057827feb73900b98b6a3e2b8b01708fe544760cf570d21e7fbe5225f24e48b5b2b432e5f80a2005b5163b73e95e160e01b8152fd5b5163340aafcd60e11b8152fd5b8251635d927f4560e11b815290915081818581885afa91821561031e575f92610577575b505067ffffffffffffffff80845416911614155f6104e6565b90809250813d83116105af575b61058e81836106e8565b810103126100d9575167ffffffffffffffff811681036100d9575f8061055e565b503d610584565b9091508281813d83116105e7575b6105ce81836106e8565b810103126100d9575181811681036100d957905f6104d9565b503d6105c4565b84513d5f823e3d90fd5b82346100d9575f3660031901126100d95760025490516001600160a01b039091168152602090f35b346100d9575f3660031901126100d957610638610799565b600280546001600160a01b031981169091555f906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b82346100d9575f3660031901126100d9576020905f549051908152f35b9150346100d95760203660031901126100d957356001600160a01b03811692908390036100d9576020925f52600183525f205415158152f35b6004359067ffffffffffffffff821682036100d957565b90601f8019910116810190811067ffffffffffffffff82111761070a57604052565b634e487b7160e01b5f52604160045260245ffd5b908060209392818452848401375f828201840152601f01601f1916010190565b67ffffffffffffffff166004548110156107855760045f527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b01546001600160a01b031690565b634e487b7160e01b5f52603260045260245ffd5b6002546001600160a01b031633036107ad57565b60405163118cdaa760e01b8152336004820152602490fd5b805f52600560205260405f2054155f1461083157600454600160401b81101561070a5760018101806004558110156107855781907f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b0155600454905f52600560205260405f2055600190565b505f90565b805f52600160205260405f2054155f14610831575f54600160401b81101561070a5760018101805f558110156107855781907f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e56301555f54905f52600160205260405f205560019056fea26469706673582212204eb59cfe2273c94a1f402df148b2117bb906de5f0af9d371cd0b6f1be6f6c21c64736f6c63430008190033","sourceMap":"181:124:68:-:0;;;;;;;;;;;;;-1:-1:-1;;181:124:68;;;;-1:-1:-1;;;;;181:124:68;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;181:124:68;;;;;;;;;;1273:26:33;;1269:95;;3004:6;181:124:68;;-1:-1:-1;;;;;;181:124:68;;;;;;;;;;;3052:40:33;-1:-1:-1;;3052:40:33;181:124:68;;;;;;;1269:95:33;181:124:68;;-1:-1:-1;;;1322:31:33;;-1:-1:-1;1322:31:33;;;181:124:68;;;1322:31:33;181:124:68;-1:-1:-1;181:124:68;;;;;;-1:-1:-1;181:124:68;;;;;-1:-1:-1;181:124:68","linkReferences":{}},"deployedBytecode":{"object":"0x6080604090808252600480361015610015575f80fd5b5f3560e01c91826314887c5814610698575081635cd8b15e1461067b578163715018a6146106205781638da5cb5b146105f85781639b19251a14610485578163b42ba2a21461041a578163b572a96614610375578163b6caa11914610338578163cd108ef814610194578163f15df2e51461016e578163f2fde38b146100dd575063f9661602146100a4575f80fd5b346100d95760203660031901126100d9576020906100c86100c36106d1565b61073e565b90516001600160a01b039091168152f35b5f80fd5b82346100d95760203660031901126100d9576001600160a01b038235818116939192908490036100d95761010f610799565b8315610158575050600254826bffffffffffffffffffffffff60a01b821617600255167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3005b905f6024925191631e4fbdf760e01b8352820152fd5b82346100d9575f3660031901126100d95767ffffffffffffffff60209254169051908152f35b82346100d957806003193601126100d9576101ad6106d1565b906024359167ffffffffffffffff8084116100d957366023850112156100d95783850135918183116100d957602485019460248436920101116100d9576e5af43d82803e903d91602b57fd5bf36102038261073e565b915f54908487519160208301938452168782015260608082015261023d8161022f60808201898c61071e565b03601f1981018352826106e8565b51902091763d602d80600a3d3981f3363d3d373d3d3d363d7300000062ffffff8260881c16175f5260781b1760205260018060a01b0390603760095ff5169384156103285761028b85610836565b50835192857fb919910dcefbf753bfd926ab3b1d3f85d877190c3d01ba1bd585047b99b99f0b5f80a2853b156100d957836102dd5f93829363439fab9160e01b845260208b850152602484019161071e565b038183885af1801561031e576102f8575b6020848451908152f35b811161030b5760209350815283806102ee565b604184634e487b7160e01b5f525260245ffd5b83513d5f823e3d90fd5b83516330be1a3d60e21b81528690fd5b82346100d95760203660031901126100d95760209067ffffffffffffffff61035e6106d1565b165f526003825260ff815f20541690519015158152f35b82346100d95760203660031901126100d95761038f6106d1565b91610398610799565b67ffffffffffffffff8082541693169283101561040c57825f52600360205260ff825f2054166103fe5750815f5260036020525f20600160ff198254161790557ffc8245c2838846b295ae66fbe0d08e20c799b737c93b56f7b209df2e5fa2d4585f80a2005b905163f53de75f60e01b8152fd5b905163b968846160e01b8152fd5b82346100d95760203660031901126100d95781355f54811015610472575f80527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563015490516001600160a01b03909116815260209150f35b603283634e487b7160e01b5f525260245ffd5b9050346100d957602091826003193601126100d95781356001600160a01b0381811694918590036100d9576104b8610799565b82516202dd3160ec1b81529082828681895afa9182156105ee575f926105b6575b501630148015919061053a575b5061052d576104f4836107c5565b1561052057827feb73900b98b6a3e2b8b01708fe544760cf570d21e7fbe5225f24e48b5b2b432e5f80a2005b5163b73e95e160e01b8152fd5b5163340aafcd60e11b8152fd5b8251635d927f4560e11b815290915081818581885afa91821561031e575f92610577575b505067ffffffffffffffff80845416911614155f6104e6565b90809250813d83116105af575b61058e81836106e8565b810103126100d9575167ffffffffffffffff811681036100d9575f8061055e565b503d610584565b9091508281813d83116105e7575b6105ce81836106e8565b810103126100d9575181811681036100d957905f6104d9565b503d6105c4565b84513d5f823e3d90fd5b82346100d9575f3660031901126100d95760025490516001600160a01b039091168152602090f35b346100d9575f3660031901126100d957610638610799565b600280546001600160a01b031981169091555f906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b82346100d9575f3660031901126100d9576020905f549051908152f35b9150346100d95760203660031901126100d957356001600160a01b03811692908390036100d9576020925f52600183525f205415158152f35b6004359067ffffffffffffffff821682036100d957565b90601f8019910116810190811067ffffffffffffffff82111761070a57604052565b634e487b7160e01b5f52604160045260245ffd5b908060209392818452848401375f828201840152601f01601f1916010190565b67ffffffffffffffff166004548110156107855760045f527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b01546001600160a01b031690565b634e487b7160e01b5f52603260045260245ffd5b6002546001600160a01b031633036107ad57565b60405163118cdaa760e01b8152336004820152602490fd5b805f52600560205260405f2054155f1461083157600454600160401b81101561070a5760018101806004558110156107855781907f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b0155600454905f52600560205260405f2055600190565b505f90565b805f52600160205260405f2054155f14610831575f54600160401b81101561070a5760018101805f558110156107855781907f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e56301555f54905f52600160205260405f205560019056fea26469706673582212204eb59cfe2273c94a1f402df148b2117bb906de5f0af9d371cd0b6f1be6f6c21c64736f6c63430008190033","sourceMap":"181:124:68:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;181:124:68;;;;;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;181:124:68;;;;;;;;;;;;;;;;;-1:-1:-1;;181:124:68;;;;-1:-1:-1;;;;;181:124:68;;;;;;;;;;;;;;1500:62:33;;:::i;:::-;2627:22;;2623:91;;181:124:68;;3004:6:33;181:124:68;;;;;;;;3004:6:33;181:124:68;;3052:40:33;181:124:68;3052:40:33;;181:124:68;2623:91:33;181:124:68;;;;;2672:31:33;;;;;;;;181:124:68;2672:31:33;181:124:68;;;;;;;-1:-1:-1;;181:124:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2364:565:37;2248:21:75;;;:::i;:::-;181:124:68;;;;;;;2299:40:75;181:124:68;2299:40:75;;181:124:68;;;;;;;;;;;;;2299:40:75;181:124:68;;;;;;;;:::i;:::-;2299:40:75;;;;;;;;;:::i;:::-;181:124:68;2289:51:75;;2364:565:37;;;;;;;;181:124:68;2364:565:37;;;;181:124:68;2364:565:37;181:124:68;;;;;2364:565:37;;;181:124:68;2364:565:37;181:124:68;2942:22:37;;;2938:86;;8409:50:62;;;:::i;:::-;;181:124:68;;1077:18:79;;;181:124:68;1077:18:79;;2382:33:75;;;;;181:124:68;;;;;;;;;2382:33:75;;181:124:68;2382:33:75;;;181:124:68;;;;;;:::i;:::-;2382:33:75;;;;;;;;;;;;181:124:68;;;;;;;;;2382:33:75;181:124:68;;;;;;;;;2382:33:75;;;;181:124:68;;;;;;;;;;;;2382:33:75;181:124:68;;;;;;;;;2938:86:37;181:124:68;;-1:-1:-1;;;2987:26:37;;181:124:68;;2987:26:37;181:124:68;;;;;;;-1:-1:-1;;181:124:68;;;;;;;;;:::i;:::-;;;;633:54:75;181:124:68;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;181:124:68;;;;;;:::i;:::-;1500:62:33;;;:::i;:::-;181:124:68;;;;;;;822:21:75;;;;818:72;;181:124:68;;;1946:11:75;181:124:68;;;;;;;;1942:76:75;;181:124:68;;;;1946:11:75;181:124:68;;;;2049:4:75;181:124:68;;;;;;;;2069:16:75;181:124:68;2069:16:75;;181:124:68;1942:76:75;181:124:68;;-1:-1:-1;;;1987:20:75;;;818:72;181:124:68;;-1:-1:-1;;;866:13:75;;;181:124:68;;;;;;;-1:-1:-1;;181:124:68;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;181:124:68;;;;;;;-1:-1:-1;181:124:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;181:124:68;;;;;;;;;;1500:62:33;;:::i;:::-;181:124:68;;-1:-1:-1;;;1476:34:75;;181:124:68;1476:34:75;181:124:68;1476:34:75;181:124:68;1476:34:75;;;;;;;;181:124:68;1476:34:75;;;181:124:68;-1:-1:-1;181:124:68;1522:4:75;1476:51;;;;;:102;;181:124:68;1472:163:75;;;8409:50:62;;;:::i;:::-;1648:49:75;1644:107;;1766:26;;181:124:68;1766:26:75;;181:124:68;1644:107:75;181:124:68;-1:-1:-1;;;1720:20:75;;;1472:163;181:124:68;-1:-1:-1;;;1601:23:75;;;1476:102;181:124:68;;-1:-1:-1;;;1531:31:75;;181:124:68;;-1:-1:-1;181:124:68;;1531:31:75;181:124:68;1531:31:75;;;;;;;;181:124:68;1531:31:75;;;1476:102;181:124:68;;;;;;;;;1531:47:75;;1476:102;;;1531:31;;;;;;;;;;;;;;;;:::i;:::-;;;181:124:68;;;;;;;;;;;;1531:31:75;;;;;;;;;1476:34;;;;;;;;;;;;;;;;;:::i;:::-;;;181:124:68;;;;;;;;;;;;1476:34:75;;;;;;;;;;181:124:68;;;;;;;;;;;;;;;;-1:-1:-1;;181:124:68;;;;1710:6:33;181:124:68;;;-1:-1:-1;;;;;181:124:68;;;;;;;;;;;;;;-1:-1:-1;;181:124:68;;;;1500:62:33;;:::i;:::-;3004:6;181:124:68;;-1:-1:-1;;;;;;181:124:68;;;;;;;-1:-1:-1;;;;;181:124:68;3052:40:33;181:124:68;;3052:40:33;181:124:68;;;;;;;;-1:-1:-1;;181:124:68;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;181:124:68;;;;;-1:-1:-1;;;;;181:124:68;;;;;;;;;;;;;4360:14:62;181:124:68;;;;;4360:26:62;;181:124:68;;;;;;;;;;;;;;:::o;:::-;;;2299:40:75;;181:124:68;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;181:124:68;;;;;;;;-1:-1:-1;;181:124:68;;;;:::o;1192:143:75:-;181:124:68;;1291:27:75;181:124:68;;;;;;1291:27:75;-1:-1:-1;181:124:68;;;;-1:-1:-1;;;;;181:124:68;;1192:143:75:o;181:124:68:-;;;;-1:-1:-1;181:124:68;;1291:27:75;181:124:68;;-1:-1:-1;181:124:68;1796:162:33;1710:6;181:124:68;-1:-1:-1;;;;;181:124:68;735:10:48;1855:23:33;1851:101;;1796:162::o;1851:101::-;181:124:68;;-1:-1:-1;;;1901:40:33;;735:10:48;1901:40:33;;;181:124:68;;;1901:40:33;2241:406:62;181:124:68;-1:-1:-1;181:124:68;4360:14:62;181:124:68;;;-1:-1:-1;181:124:68;;4360:26:62;2320:321;181:124:68;;;;;-1:-1:-1;;;181:124:68;;;;;4360:14:62;181:124:68;;;;;;;;;;;;;;;;;;-1:-1:-1;181:124:68;4360:14:62;181:124:68;;;-1:-1:-1;181:124:68;;4360:14:62;2576:11;:::o;2320:321::-;2618:12;-1:-1:-1;2618:12:62;:::o;2241:406::-;181:124:68;;;4360:14:62;181:124:68;;;;;;4360:26:62;2320:321;181:124:68;;;;;-1:-1:-1;;;181:124:68;;;;;4360:14:62;181:124:68;;;;;;;;;;;;;;;;;;;;4360:14:62;181:124:68;;;;;;4360:14:62;2576:11;:::o","linkReferences":{}},"methodIdentifiers":{"blacklist(uint64)":"b572a966","blacklisted(uint64)":"b6caa119","create(uint64,bytes)":"cd108ef8","entity(uint256)":"b42ba2a2","implementation(uint64)":"f9661602","isEntity(address)":"14887c58","owner()":"8da5cb5b","renounceOwnership()":"715018a6","totalEntities()":"5cd8b15e","totalTypes()":"f15df2e5","transferOwnership(address)":"f2fde38b","whitelist(address)":"9b19251a"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner_\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"AlreadyBlacklisted\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AlreadyWhitelisted\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ERC1167FailedCreateClone\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"EntityNotExist\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidImplementation\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidType\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"entity\",\"type\":\"address\"}],\"name\":\"AddEntity\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"type_\",\"type\":\"uint64\"}],\"name\":\"Blacklist\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"Whitelist\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"type_\",\"type\":\"uint64\"}],\"name\":\"blacklist\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"type_\",\"type\":\"uint64\"}],\"name\":\"blacklisted\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"value\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"type_\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"create\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"entity_\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"entity\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"type_\",\"type\":\"uint64\"}],\"name\":\"implementation\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"entity_\",\"type\":\"address\"}],\"name\":\"isEntity\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalEntities\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalTypes\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"implementation_\",\"type\":\"address\"}],\"name\":\"whitelist\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"ERC1167FailedCreateClone()\":[{\"details\":\"A clone instance deployment failed.\"}],\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}]},\"events\":{\"AddEntity(address)\":{\"params\":{\"entity\":\"address of the added entity\"}},\"Blacklist(uint64)\":{\"details\":\"The given type is still deployable.\",\"params\":{\"type_\":\"type that was blacklisted\"}},\"Whitelist(address)\":{\"params\":{\"implementation\":\"address of the new implementation\"}}},\"kind\":\"dev\",\"methods\":{\"blacklist(uint64)\":{\"details\":\"The given type will still be deployable.\",\"params\":{\"type_\":\"type to blacklist\"}},\"create(uint64,bytes)\":{\"details\":\"CREATE2 salt is constructed from the given parameters.\",\"params\":{\"data\":\"initial data for the entity creation\",\"type_\":\"type's implementation to use\"},\"returns\":{\"entity_\":\"address of the entity\"}},\"entity(uint256)\":{\"params\":{\"index\":\"index of the entity to get\"},\"returns\":{\"_0\":\"address of the entity\"}},\"implementation(uint64)\":{\"params\":{\"type_\":\"position to get the implementation at\"},\"returns\":{\"_0\":\"address of the implementation\"}},\"isEntity(address)\":{\"params\":{\"account\":\"address to check\"},\"returns\":{\"_0\":\"if the given address is an entity\"}},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"totalEntities()\":{\"returns\":{\"_0\":\"total number of entities added\"}},\"totalTypes()\":{\"returns\":{\"_0\":\"total number of types\"}},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"},\"whitelist(address)\":{\"params\":{\"implementation\":\"address of the new implementation\"}}},\"version\":1},\"userdoc\":{\"events\":{\"AddEntity(address)\":{\"notice\":\"Emitted when an entity is added.\"},\"Blacklist(uint64)\":{\"notice\":\"Emitted when a type is blacklisted (e.g., in case of invalid implementation).\"},\"Whitelist(address)\":{\"notice\":\"Emitted when a new type is whitelisted.\"}},\"kind\":\"user\",\"methods\":{\"blacklist(uint64)\":{\"notice\":\"Blacklist a type of entity.\"},\"blacklisted(uint64)\":{\"notice\":\"Get if a type is blacklisted (e.g., in case of invalid implementation).\"},\"create(uint64,bytes)\":{\"notice\":\"Create a new entity at the factory.\"},\"entity(uint256)\":{\"notice\":\"Get an entity given its index.\"},\"implementation(uint64)\":{\"notice\":\"Get the implementation for a given type.\"},\"isEntity(address)\":{\"notice\":\"Get if a given address is an entity.\"},\"totalEntities()\":{\"notice\":\"Get a total number of entities.\"},\"totalTypes()\":{\"notice\":\"Get the total number of whitelisted types.\"},\"whitelist(address)\":{\"notice\":\"Whitelist a new type of entity.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/contracts/DelegatorFactory.sol\":\"DelegatorFactory\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"lib/openzeppelin-contracts/contracts/proxy/Clones.sol\":{\"keccak256\":\"0xd18408af8a91bedb3d56343eeb9b30eb852e6dea93a5e2d5c6db9ca4cb905155\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://061475b7302a732dc598907790f407417551c2b13e89daa57b3698489ef5484b\",\"dweb:/ipfs/QmdX5qmk3VSniSErFuD4aVawQxUi2MuUbP7spPcHddPfcX\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0x86c1470cbfd878491e5de030072b647352d36bd27122cffb928970b1945282aa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ad85dd393ee0a1917c57046abc5155f51f77844b2c6a42c05c1b8dd26d6ff3c1\",\"dweb:/ipfs/QmNqYc8To2NdnpP6E1tGz7t6A7beuENde5yovwov5pW1fA\"]},\"src/contracts/DelegatorFactory.sol\":{\"keccak256\":\"0x3c3fb62c441302f4f75d94703779f5c4bb755c06f310b4c923dbf24d6e0adda9\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://597fa8be7179d8a555bf942c1dea0504273a1d34f6ac4c206fc2e816da143e68\",\"dweb:/ipfs/Qmf54DKNYXC7fTMcAFABw68RC6ZFenVgyAPGhbPTf6s5TR\"]},\"src/contracts/common/Factory.sol\":{\"keccak256\":\"0x41764643e6a2a3d80d694a3efee91f50a2fd084fb2bcd13566259443840e6369\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://fefc1e2a2189275388826f4f82ca421ca79c2866d3ef39dc2c7df46fe7cbf7c9\",\"dweb:/ipfs/QmSJ4VGmgpYUv5ni4ZYoSV4qMuZrk5DLjyB3Vv9NbFgeNZ\"]},\"src/contracts/common/Registry.sol\":{\"keccak256\":\"0x4a4004836d920953a8ec6e223de9a330f43acf7a5b93c6b8b3e4a95e0f129889\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://e8bdda207f3852c683a2b481602239a914f7e26bcd042ade618e263a43b67652\",\"dweb:/ipfs/Qmb8GZykJWxZcfwNp3SqhFizDFydFuV6LXgemV3vnWyLyu\"]},\"src/interfaces/IDelegatorFactory.sol\":{\"keccak256\":\"0x7850453237ca93b301393506d2489a38830a60be0c29f39a4a1aee3508d836e6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8f418702b883c90e046af92d5654a25849baf79b61c11401ad603b861fed7b80\",\"dweb:/ipfs/Qmdju1XFJXx3uJidzoS7srcoSnzT8jUoPAmGEdbceYgB7j\"]},\"src/interfaces/common/IEntity.sol\":{\"keccak256\":\"0x8ef4b63d6da63489778ccd5f8d13ebdd527dd4b62730b2c616df5af7474d2d21\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a8d69576a9219d85c50816a18ad53a4d53cfcb27ed38b8cccc808dc2734b71b\",\"dweb:/ipfs/QmYVN3P4Q4REvBWJ97TbAcaxm3uyB2anV6NSGa6ZtSwcEv\"]},\"src/interfaces/common/IFactory.sol\":{\"keccak256\":\"0xe835ebda85d181b70874f6eb53f2a892aa3223d23efe247060da9b51d2b8e969\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://48b3dfb5f0491d90efbc8ed498b45358260ebac6e8f2aa0106b8b8fabdc988cb\",\"dweb:/ipfs/QmWnnCs3xiHeUvYfUWMJTSFZWc34bSYn9Zpm7f7syra3TA\"]},\"src/interfaces/common/IRegistry.sol\":{\"keccak256\":\"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014\",\"dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.25+commit.b61c2a91"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"owner_","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"AlreadyBlacklisted"},{"inputs":[],"type":"error","name":"AlreadyWhitelisted"},{"inputs":[],"type":"error","name":"ERC1167FailedCreateClone"},{"inputs":[],"type":"error","name":"EntityNotExist"},{"inputs":[],"type":"error","name":"InvalidImplementation"},{"inputs":[],"type":"error","name":"InvalidType"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"OwnableInvalidOwner"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"OwnableUnauthorizedAccount"},{"inputs":[{"internalType":"address","name":"entity","type":"address","indexed":true}],"type":"event","name":"AddEntity","anonymous":false},{"inputs":[{"internalType":"uint64","name":"type_","type":"uint64","indexed":true}],"type":"event","name":"Blacklist","anonymous":false},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"address","name":"implementation","type":"address","indexed":true}],"type":"event","name":"Whitelist","anonymous":false},{"inputs":[{"internalType":"uint64","name":"type_","type":"uint64"}],"stateMutability":"nonpayable","type":"function","name":"blacklist"},{"inputs":[{"internalType":"uint64","name":"type_","type":"uint64"}],"stateMutability":"view","type":"function","name":"blacklisted","outputs":[{"internalType":"bool","name":"value","type":"bool"}]},{"inputs":[{"internalType":"uint64","name":"type_","type":"uint64"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"create","outputs":[{"internalType":"address","name":"entity_","type":"address"}]},{"inputs":[{"internalType":"uint256","name":"index","type":"uint256"}],"stateMutability":"view","type":"function","name":"entity","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"uint64","name":"type_","type":"uint64"}],"stateMutability":"view","type":"function","name":"implementation","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"entity_","type":"address"}],"stateMutability":"view","type":"function","name":"isEntity","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[],"stateMutability":"view","type":"function","name":"totalEntities","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"totalTypes","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"},{"inputs":[{"internalType":"address","name":"implementation_","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"whitelist"}],"devdoc":{"kind":"dev","methods":{"blacklist(uint64)":{"details":"The given type will still be deployable.","params":{"type_":"type to blacklist"}},"create(uint64,bytes)":{"details":"CREATE2 salt is constructed from the given parameters.","params":{"data":"initial data for the entity creation","type_":"type's implementation to use"},"returns":{"entity_":"address of the entity"}},"entity(uint256)":{"params":{"index":"index of the entity to get"},"returns":{"_0":"address of the entity"}},"implementation(uint64)":{"params":{"type_":"position to get the implementation at"},"returns":{"_0":"address of the implementation"}},"isEntity(address)":{"params":{"account":"address to check"},"returns":{"_0":"if the given address is an entity"}},"owner()":{"details":"Returns the address of the current owner."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner."},"totalEntities()":{"returns":{"_0":"total number of entities added"}},"totalTypes()":{"returns":{"_0":"total number of types"}},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."},"whitelist(address)":{"params":{"implementation":"address of the new implementation"}}},"version":1},"userdoc":{"kind":"user","methods":{"blacklist(uint64)":{"notice":"Blacklist a type of entity."},"blacklisted(uint64)":{"notice":"Get if a type is blacklisted (e.g., in case of invalid implementation)."},"create(uint64,bytes)":{"notice":"Create a new entity at the factory."},"entity(uint256)":{"notice":"Get an entity given its index."},"implementation(uint64)":{"notice":"Get the implementation for a given type."},"isEntity(address)":{"notice":"Get if a given address is an entity."},"totalEntities()":{"notice":"Get a total number of entities."},"totalTypes()":{"notice":"Get the total number of whitelisted types."},"whitelist(address)":{"notice":"Whitelist a new type of entity."}},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/contracts/DelegatorFactory.sol":"DelegatorFactory"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts/contracts/access/Ownable.sol":{"keccak256":"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb","urls":["bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6","dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/Clones.sol":{"keccak256":"0xd18408af8a91bedb3d56343eeb9b30eb852e6dea93a5e2d5c6db9ca4cb905155","urls":["bzz-raw://061475b7302a732dc598907790f407417551c2b13e89daa57b3698489ef5484b","dweb:/ipfs/QmdX5qmk3VSniSErFuD4aVawQxUi2MuUbP7spPcHddPfcX"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0x86c1470cbfd878491e5de030072b647352d36bd27122cffb928970b1945282aa","urls":["bzz-raw://ad85dd393ee0a1917c57046abc5155f51f77844b2c6a42c05c1b8dd26d6ff3c1","dweb:/ipfs/QmNqYc8To2NdnpP6E1tGz7t6A7beuENde5yovwov5pW1fA"],"license":"MIT"},"src/contracts/DelegatorFactory.sol":{"keccak256":"0x3c3fb62c441302f4f75d94703779f5c4bb755c06f310b4c923dbf24d6e0adda9","urls":["bzz-raw://597fa8be7179d8a555bf942c1dea0504273a1d34f6ac4c206fc2e816da143e68","dweb:/ipfs/Qmf54DKNYXC7fTMcAFABw68RC6ZFenVgyAPGhbPTf6s5TR"],"license":"BUSL-1.1"},"src/contracts/common/Factory.sol":{"keccak256":"0x41764643e6a2a3d80d694a3efee91f50a2fd084fb2bcd13566259443840e6369","urls":["bzz-raw://fefc1e2a2189275388826f4f82ca421ca79c2866d3ef39dc2c7df46fe7cbf7c9","dweb:/ipfs/QmSJ4VGmgpYUv5ni4ZYoSV4qMuZrk5DLjyB3Vv9NbFgeNZ"],"license":"BUSL-1.1"},"src/contracts/common/Registry.sol":{"keccak256":"0x4a4004836d920953a8ec6e223de9a330f43acf7a5b93c6b8b3e4a95e0f129889","urls":["bzz-raw://e8bdda207f3852c683a2b481602239a914f7e26bcd042ade618e263a43b67652","dweb:/ipfs/Qmb8GZykJWxZcfwNp3SqhFizDFydFuV6LXgemV3vnWyLyu"],"license":"BUSL-1.1"},"src/interfaces/IDelegatorFactory.sol":{"keccak256":"0x7850453237ca93b301393506d2489a38830a60be0c29f39a4a1aee3508d836e6","urls":["bzz-raw://8f418702b883c90e046af92d5654a25849baf79b61c11401ad603b861fed7b80","dweb:/ipfs/Qmdju1XFJXx3uJidzoS7srcoSnzT8jUoPAmGEdbceYgB7j"],"license":"MIT"},"src/interfaces/common/IEntity.sol":{"keccak256":"0x8ef4b63d6da63489778ccd5f8d13ebdd527dd4b62730b2c616df5af7474d2d21","urls":["bzz-raw://5a8d69576a9219d85c50816a18ad53a4d53cfcb27ed38b8cccc808dc2734b71b","dweb:/ipfs/QmYVN3P4Q4REvBWJ97TbAcaxm3uyB2anV6NSGa6ZtSwcEv"],"license":"MIT"},"src/interfaces/common/IFactory.sol":{"keccak256":"0xe835ebda85d181b70874f6eb53f2a892aa3223d23efe247060da9b51d2b8e969","urls":["bzz-raw://48b3dfb5f0491d90efbc8ed498b45358260ebac6e8f2aa0106b8b8fabdc988cb","dweb:/ipfs/QmWnnCs3xiHeUvYfUWMJTSFZWc34bSYn9Zpm7f7syra3TA"],"license":"MIT"},"src/interfaces/common/IRegistry.sol":{"keccak256":"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb","urls":["bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014","dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK"],"license":"MIT"}},"version":1},"id":68} \ No newline at end of file diff --git a/out/DelegatorHints.sol/BaseDelegatorHints.json b/out/DelegatorHints.sol/BaseDelegatorHints.json index 043ebcef..fa4ac467 100644 --- a/out/DelegatorHints.sol/BaseDelegatorHints.json +++ b/out/DelegatorHints.sol/BaseDelegatorHints.json @@ -1 +1 @@ -{"abi":[{"type":"constructor","inputs":[{"name":"optInServiceHints","type":"address","internalType":"address"},{"name":"vaultHints_","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"DEFAULT_ADMIN_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"FACTORY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"FULL_RESTAKE_DELEGATOR_HINTS","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"HOOK_GAS_LIMIT","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"HOOK_RESERVE","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"HOOK_SET_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"NETWORK_REGISTRY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"NETWORK_RESTAKE_DELEGATOR_HINTS","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"OPERATOR_NETWORK_OPT_IN_SERVICE","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"OPERATOR_VAULT_OPT_IN_SERVICE","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"OPT_IN_SERVICE_HINTS","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"TYPE","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"VAULT_FACTORY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"VERSION","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"pure"},{"type":"function","name":"getRoleAdmin","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"grantRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"hasRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"hook","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"initialize","inputs":[{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"maxNetworkLimit","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"value","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"onSlash","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"captureTimestamp","type":"uint48","internalType":"uint48"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"renounceRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"callerConfirmation","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"revokeRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setHook","inputs":[{"name":"hook_","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setMaxNetworkLimit","inputs":[{"name":"identifier","type":"uint96","internalType":"uint96"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"stake","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"stakeAt","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"timestamp","type":"uint48","internalType":"uint48"},{"name":"hints","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"stakeBaseHints","inputs":[{"name":"delegator","type":"address","internalType":"address"},{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"timestamp","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"stakeHints","inputs":[{"name":"delegator","type":"address","internalType":"address"},{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"timestamp","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"staticDelegateCall","inputs":[{"name":"target","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"vault","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"OnSlash","inputs":[{"name":"subnetwork","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"captureTimestamp","type":"uint48","indexed":false,"internalType":"uint48"}],"anonymous":false},{"type":"event","name":"RoleAdminChanged","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"previousAdminRole","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"newAdminRole","type":"bytes32","indexed":true,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"RoleGranted","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"sender","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"RoleRevoked","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"sender","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"SetHook","inputs":[{"name":"hook","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"SetMaxNetworkLimit","inputs":[{"name":"subnetwork","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"error","name":"AccessControlBadConfirmation","inputs":[]},{"type":"error","name":"AccessControlUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"neededRole","type":"bytes32","internalType":"bytes32"}]},{"type":"error","name":"AlreadySet","inputs":[]},{"type":"error","name":"ExternalCall","inputs":[]},{"type":"error","name":"InsufficientHookGas","inputs":[]},{"type":"error","name":"InvalidInitialization","inputs":[]},{"type":"error","name":"NotInitialized","inputs":[]},{"type":"error","name":"NotInitializing","inputs":[]},{"type":"error","name":"NotNetwork","inputs":[]},{"type":"error","name":"NotSlasher","inputs":[]},{"type":"error","name":"NotVault","inputs":[]},{"type":"error","name":"ReentrancyGuardReentrantCall","inputs":[]}],"bytecode":{"object":"0x6101c03461027157618da96001600160401b03601f38839003908101601f191684019082821185831017610202578085916040958694855283398101031261027157610056602061004f85610275565b9401610275565b90306080527ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805460ff81861c166102605780838080931603610220575b5050505f60a0525f60c0525f60e052610100935f8552610120935f8552610140905f82526101609280845281516138de8082019082821088831117610202578389849361010093611ef286393081526001600160a01b0391821660208201529116604082015260600190565b03905ff09485156102165760018060a01b039687610180971687528351926135d991828501938585109085111761020257849361015c936157d086393081526001600160a01b0391821660208201529116604082015260600190565b03905ff09485156101f8576101a0951685525194611c68968761028a883960805187505060a05187610623015260c05187610b5f015260e05187818161048f0152610b980152518681816102c70152611a4b01525185818161030b015261163d01525184818161034f01526116bb015251838181610a3d0152611190015251828181610283015261148f015251818181610dfa01526115510152f35b50513d5f823e3d90fd5b634e487b7160e01b5f52604160045260245ffd5b82513d5f823e3d90fd5b6001600160401b03191617905582518181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a15f8181610094565b845163f92ee8a960e01b8152600490fd5b5f80fd5b51906001600160a01b03821682036102715756fe60806040526004361015610011575f80fd5b5f3560e01c806301ffc9a714610214578063075db0361461020f578063103f29071461020a578063128e5d82146102055780631a80e500146102005780631bf10a3e146101fb57806323f752d5146101f6578063248a9ca3146101f157806325dc9708146101ec5780632dd31000146101e75780632f2ff15d146101e257806336568abe146101dd5780633dfd3873146101d8578063439fab91146101d3578063557cab44146101ce5780636679191e146101c95780637f5a7c7b146101c457806391d14854146101bf5780639b656b22146101ba5780639f86fd85146101b5578063a217fddf146101b0578063bb24fe8a146101ab578063c0cd7c3e146101a6578063d15b740e146101a1578063d547741f1461019c578063e02f693714610197578063e102831a14610192578063e49561ee1461018d578063fbfa77cf14610188578063fd4d447c14610183578063ff54740f1461017e5763ffa1ad7414610179575f80fd5b61108a565b61106d565b61103b565b611014565b610e29565b610de5565b610d02565b610bf1565b610bc7565b610b83565b610b40565b610b26565b610a6c565b610a28565b6109ca565b6109a2565b610968565b61094c565b61080f565b6106e9565b61069e565b610652565b61060e565b6105f1565b6105b8565b61043c565b610407565b61033a565b6102f6565b6102b2565b61026e565b3461026a57602036600319011261026a5760043563ffffffff60e01b811680910361026a57602090637965db0b60e01b8114908115610259575b506040519015158152f35b6301ffc9a760e01b1490505f61024e565b5f80fd5b3461026a575f36600319011261026a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461026a575f36600319011261026a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461026a575f36600319011261026a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461026a575f36600319011261026a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b6001600160a01b0381160361026a57565b6064359065ffffffffffff8216820361026a57565b608090600319011261026a576004356103bc8161037e565b90602435906044356103cd8161037e565b9060643565ffffffffffff8116810361026a5790565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b3461026a5761043861042461041b366103a4565b92919091611168565b6040519182916020835260208301906103e3565b0390f35b3461026a57604036600319011261026a576004356001600160601b038116810361026a576024359061046c611732565b6040516302910f8b60e31b81523360048201526020816024816001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165afa9081156105b3575f91610584575b5015610572576001600160601b03166bffffffffffffffffffffffff193360601b161790806104f6835f52600260205260405f2090565b541461056057610545817fc67e7929681aa1bccd63f52b3799bf5805f3009f197db6fdf584b14f7fbf608c92610534855f52600260205260405f2090565b556040519081529081906020820190565b0390a261055e60015f80516020611bf383398151915255565b005b60405163a741a04560e01b8152600490fd5b6040516323d53b9760e21b8152600490fd5b6105a6915060203d6020116105ac575b61059e8183610c71565b8101906113b9565b5f6104bf565b503d610594565b6110bd565b3461026a57602036600319011261026a576004355f525f80516020611bd38339815191526020526020600160405f200154604051908152f35b3461026a57610438610424610605366103a4565b929190916113f0565b3461026a575f36600319011261026a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461026a57604036600319011261026a5761055e6024356004356106758261037e565b805f525f80516020611bd3833981519152602052610699600160405f200154611761565b611918565b3461026a57604036600319011261026a576024356106bb8161037e565b336001600160a01b038216036106d75761055e9060043561194e565b60405163334bd91960e11b8152600490fd5b3461026a57602036600319011261026a576004356107068161037e565b61070e611732565b335f9081527f9ebbcbe0d2961d3fbe56ca6f679bc753bd848d3e6bb3eaf9041c51b286881d2c60205260409020547fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c9060ff16156107c457506001546001600160a01b039182169181168214610560576001600160a01b03191681176001557f5bbb1d3ebb6a3ad2a0f17ff35e579a83af60604d1d3c2a4c83c62adecadf666d5f80a260015f80516020611bf383398151915255005b6044906040519063e2517d3f60e01b82523360048301526024820152fd5b9181601f8401121561026a578235916001600160401b03831161026a576020838186019501011161026a57565b3461026a57602036600319011261026a576001600160401b0360043581811161026a576108409036906004016107e2565b5f80516020611c13833981519152549260ff8460401c1615931680159081610944575b600114908161093a575b159081610931575b5061091f575f80516020611c13833981519152805467ffffffffffffffff191660011790556108a891836108f657611a16565b6108ae57005b5f80516020611c13833981519152805460ff60401b19169055604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a1005b5f80516020611c13833981519152805460ff60401b191668010000000000000000179055611a16565b60405163f92ee8a960e01b8152600490fd5b9050155f610875565b303b15915061086d565b849150610863565b3461026a575f36600319011261026a576020604051614e208152f35b3461026a575f36600319011261026a5760206040517fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c8152f35b3461026a575f36600319011261026a576001546040516001600160a01b039091168152602090f35b3461026a57604036600319011261026a57602060ff610a1c6024356109ee8161037e565b6004355f525f80516020611bd3833981519152845260405f209060018060a01b03165f5260205260405f2090565b54166040519015158152f35b3461026a575f36600319011261026a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461026a5760408060031936011261026a57600435610a8a8161037e565b602435906001600160401b03821161026a575f8091610ab0610b149436906004016107e2565b908187519283928337810184815203915af43d15610b1c57610b063d610ad581610ca1565b90610ae286519283610c71565b81523d5f602083013e5b8451948593151560208501528084015260608301906103e3565b03601f198101835282610c71565b805190602001fd5b610b066060610aec565b3461026a575f36600319011261026a5760206040515f8152f35b3461026a575f36600319011261026a5760206040516001600160401b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461026a575f36600319011261026a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461026a57602036600319011261026a576004355f526002602052602060405f2054604051908152f35b3461026a57604036600319011261026a5761055e602435600435610c148261037e565b805f525f80516020611bd3833981519152602052610c38600160405f200154611761565b61194e565b634e487b7160e01b5f52604160045260245ffd5b604081019081106001600160401b03821117610c6c57604052565b610c3d565b90601f801991011681019081106001600160401b03821117610c6c57604052565b60405190610c9f82610c51565b565b6001600160401b038111610c6c57601f01601f191660200190565b81601f8201121561026a57803590610cd382610ca1565b92610ce16040519485610c71565b8284526020838301011161026a57815f926020809301838601378301015290565b3461026a5760808060031936011261026a57610d1f60243561037e565b60443565ffffffffffff81160361026a576001600160401b0360643581811161026a57610d50903690600401610cbc565b5060606020604051610d6181610c51565b828152015260605180610d79575b60206040515f8152f35b8281016020821261026a5783519183831161026a5782604091031261026a5760405193610da585610c51565b8281015184811161026a578282610dbe928601016110c8565b855260a083015193841161026a57602093610dda9301016110c8565b9101525f8080610d6f565b3461026a575f36600319011261026a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461026a5760a036600319011261026a57602435600435610e498261037e565b60443591610e5561038f565b90608435906001600160401b03821161026a57610e7760049236908401610cbc565b610e7f611732565b5f54602090610ea490610e98906001600160a01b031681565b6001600160a01b031690565b60405163b134427160e01b815294859182905afa9283156105b3575f93610fe3575b506001600160a01b039283163303610fd1576001546001600160a01b0316838116610f46575b50506040805195865265ffffffffffff909316602086015216927f741a5de99085c0d660f3e4192217b0ffb0ea4e35a0480de48e857a4bc3ee36ed91819081015b0390a361055e60015f80516020611bf383398151915255565b909360405194610f7d86610f6f602082019363724ab0f760e11b8552858c898d602487016115d0565b03601f198101885287610c71565b62042e305a10610fbf575f610f2d938192827f741a5de99085c0d660f3e4192217b0ffb0ea4e35a0480de48e857a4bc3ee36ed9951926203d090f15093610eec565b604051638072475160e01b8152600490fd5b60405163dabc4ad960e01b8152600490fd5b61100691935060203d60201161100d575b610ffe8183610c71565b8101906110a5565b915f610ec6565b503d610ff4565b3461026a575f36600319011261026a575f546040516001600160a01b039091168152602090f35b3461026a57604036600319011261026a57602061106560243561105d8161037e565b600435611608565b604051908152f35b3461026a575f36600319011261026a5760206040516203d0908152f35b3461026a575f36600319011261026a57602060405160018152f35b9081602091031261026a57516110ba8161037e565b90565b6040513d5f823e3d90fd5b81601f8201121561026a578051906110df82610ca1565b926110ed6040519485610c71565b8284526020838301011161026a57815f9260208093018386015e8301015290565b9060208282031261026a5781516001600160401b03811161026a576110ba92016110c8565b906110ba91602081526020611153835160408385015260608401906103e3565b920151906040601f19828503019101526103e3565b604080516309472ec160e11b8152606096956001600160a01b039384169591946020949192917f0000000000000000000000000000000000000000000000000000000000000000169085876004818b5afa9687156105b3575f9761139a575b50845163fbfa77cf60e01b81529686886004818c5afa80156105b357855f9161123b9a839161137d575b508851636a531c3160e11b8082526001600160a01b039586166004830152858916602483015294909116604482015265ffffffffffff909116606482015298899081906084820190565b0381865afa9788156105b3575f98611358575b508686979899600496975196878092621a80e560e81b82525afa9485156105b3575f95611335575b5086519081526001600160a01b03948516600482015293909216602484015260609190911c604483015265ffffffffffff9092166064820152905f9082908180608481015b03915afa9081156105b3575f91611313575b50835115801590611309575b6112e35750505050565b6110ba9394955090610b06916112f7610c92565b95865283860152519384928301611133565b50805115156112d9565b61132f91503d805f833e6113278183610c71565b81019061110e565b5f6112cd565b5f95506113516112bb918a3d8c1161100d57610ffe8183610c71565b9550611276565b8798509661137360049697983d805f833e6113278183610c71565b989796955061124e565b61139491508a3d8c1161100d57610ffe8183610c71565b5f6111f1565b6113b2919750863d881161100d57610ffe8183610c71565b955f6111c7565b9081602091031261026a5751801515810361026a5790565b9081602091031261026a57516001600160401b038116810361026a5790565b604051635d927f4560e11b8082526060969594936001600160a01b03939092909160209190858416908383600481855afa9283156105b3575f936115b1575b506001600160401b039283166114d65750506040516304bb92e160e31b81526001600160a01b0393841660048201526024810194909452505092909216604483015265ffffffffffff9290921660648201529192505f90829060849082907f0000000000000000000000000000000000000000000000000000000000000000165afa9081156105b3575f916114c2575090565b6110ba91503d805f833e6113278183610c71565b839060046040518094819382525afa9081156105b3576001935f92611584575b50501614611505575050505050565b6040516304bb92e160e31b81526001600160a01b039182166004820152602481019290925292909216604483015265ffffffffffff9290921660648201529192505f90829060849082907f0000000000000000000000000000000000000000000000000000000000000000165afa9081156105b3575f916114c2575090565b6115a39250803d106115aa575b61159b8183610c71565b8101906113d1565b5f806114f6565b503d611591565b6115c9919350843d86116115aa5761159b8183610c71565b915f61142f565b919360a0936110ba969565ffffffffffff938552600180871b03166020850152604084015216606082015281608082015201906103e3565b5f546040516308834cb560e21b8082526001600160a01b038581166004840152928316602483015293602092909183816044817f000000000000000000000000000000000000000000000000000000000000000086165afa9081156105b3575f91611715575b501593841561168a575b505050509050611686575f90565b5f90565b6040519586526001600160a01b0392909216600486015260609190911c6024850152909291508290829060449082907f0000000000000000000000000000000000000000000000000000000000000000165afa9182156105b3575f926116f8575b505015805f808080611678565b61170e9250803d106105ac5761059e8183610c71565b5f806116eb565b61172c9150843d86116105ac5761059e8183610c71565b5f61166e565b5f80516020611bf3833981519152600281541461174f5760029055565b604051633ee5aeb560e01b8152600490fd5b5f8181525f80516020611bd38339815191526020908152604080832033845290915290205460ff16156107c45750565b6001600160a01b0381165f9081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d60205260409020545f80516020611bd38339815191529060ff1661183c575f808052602091825260408082206001600160a01b038516835290925220805460ff1916600117905533906001600160a01b03165f7f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d8180a4600190565b50505f90565b6001600160a01b0381165f9081527f9ebbcbe0d2961d3fbe56ca6f679bc753bd848d3e6bb3eaf9041c51b286881d2c602052604090207fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c905f80516020611bd38339815191529060ff905b5416611911575f828152602091825260408082206001600160a01b038616835290925220805460ff1916600117905533916001600160a01b0316907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d5f80a4600190565b5050505f90565b5f8181525f80516020611bd3833981519152602081815260408084206001600160a01b038716855290915290912060ff906118ad565b5f8181525f80516020611bd3833981519152602081815260408084206001600160a01b03871685529091529091205460ff1615611911575f828152602091825260408082206001600160a01b038616835290925220805460ff1916905533916001600160a01b0316907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b5f80a4600190565b91909160408184031261026a5780356119f88161037e565b9260208201356001600160401b03811161026a576110ba9201610cbc565b611a22918101906119e0565b506040516302910f8b60e31b81526001600160a01b0391821660048201819052906020816024817f000000000000000000000000000000000000000000000000000000000000000087165afa9081156105b3575f91611b34575b5015611b2257611aa990611a8e611b53565b60018060a01b03166001600160601b0360a01b5f5416175f55565b611afc6040611ab6611b76565b6020810151600180546001600160a01b0319166001600160a01b0390921691909117905580516001600160a01b0316848116611b12575b5001516001600160a01b031690565b908116611b065750565b611b0f90611842565b50565b611b1b90611791565b505f611aed565b6040516362df054560e01b8152600490fd5b611b4d915060203d6020116105ac5761059e8183610c71565b5f611a7c565b611b5b611ba4565b611b63611ba4565b60015f80516020611bf383398151915255565b60405190606082018281106001600160401b03821117610c6c576040525f6040838281528260208201520152565b60ff5f80516020611c138339815191525460401c1615611bc057565b604051631afcd79f60e31b8152600490fdfe02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268009b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a264697066735822122039dce195144b27a47a4223371e67014a21ca412ee10a9ba4d2d3f9eae39aa3a164736f6c634300081900336101c0346101cf57601f6138de38819003918201601f19168301916001600160401b0391828411858510176101d35781606092869260409687528339810103126101cf5761004c836101e7565b926100648361005d602084016101e7565b92016101e7565b91306080527ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a009081549060ff82871c166101be57808083160361017a575b5050505f60a0525f60c0525f60e052610100935f8552610120935f8552610140905f82526101609283526101809384526101a094855251946136e296876101fc88396080518781816105a001528181610fd70152611629015260a051876109e9015260c051876112ac015260e05187818161084b01526112e5015251868181610512015261298501525185818161055601528181611e330152611f3b0152518481816107c901528181611d9a0152611fb9015251838181610e95015261194d015251828181610d9701526119ee015251816110490152f35b6001600160401b0319909116811790915583519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a15f80806100a2565b855163f92ee8a960e01b8152600490fd5b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b51906001600160a01b03821682036101cf5756fe60806040526004361015610011575f80fd5b5f3560e01c806301ffc9a71461030457806302145348146102ff57806307f9d5fd146102fa578063103f2907146102f5578063128e5d82146102f0578063197aa7ea146102eb5780631a7a7044146102e65780631a80e500146102e157806323f752d5146102dc578063248a9ca3146102d757806325dc9708146102d25780632dd31000146102cd5780632f2ff15d146102c857806336568abe146102c35780633dfd3873146102be5780633eb22c0f146102b957806342c53e33146102b4578063439fab91146102af57806345e78fcb146102aa578063557cab44146102a55780635d32a1c9146102a05780636679191e1461029b57806379d89614146102965780637d24bb27146102915780637f5a7c7b1461028c5780638b3f10b01461028757806391d1485414610282578063987b3ee81461027d5780639b656b22146102785780639f86fd8514610273578063a217fddf1461026e578063a33bc28714610269578063b549ef1f14610264578063bb24fe8a1461025f578063c0cd7c3e1461025a578063c43dc03f14610255578063d15b740e14610250578063d547741f1461024b578063da749d2b14610246578063e02f693714610241578063e49561ee1461023c578063e78eb6ae14610237578063ed4d89e514610232578063fbfa77cf1461022d578063fd4d447c14610228578063ff54740f146102235763ffa1ad741461021e575f80fd5b6116dc565b6116bf565b611695565b61166e565b61160e565b6115d4565b6113e9565b6113cd565b6113b3565b611367565b61133d565b611314565b6112d0565b61128d565b611273565b611126565b61110c565b611078565b611034565b610fa6565b610f48565b610f25565b610efd565b610ec4565b610e80565b610e46565b610e23565b610dc6565b610d82565b610c4a565b610bd1565b610ba8565b610aaf565b610a64565b610a18565b6109d4565b6109b7565b61097e565b6107f8565b6107b4565b61076e565b610585565b610541565b6104fd565b6104c8565b61035e565b3461035a57602036600319011261035a5760043563ffffffff60e01b811680910361035a57602090637965db0b60e01b8114908115610349575b506040519015158152f35b6301ffc9a760e01b1490505f61033e565b5f80fd5b3461035a5760408060031936011261035a57600435906024359061038061202e565b825f526002602052805f2054821161041a57825f526003602052816103a6825f206128d7565b1461040a5781610405916103f57e899d104fc3d8820bd96540612bcc5c448c8837b13b9f7faa43ad0728f0c14f946103e6875f52600360205260405f2090565b6103ef42612d7a565b90612176565b5050519081529081906020820190565b0390a2005b5163a741a04560e01b8152600490fd5b51631eefc06360e31b8152600490fd5b6001600160a01b0381160361035a57565b6024359065ffffffffffff8216820361035a57565b6064359065ffffffffffff8216820361035a57565b608090600319011261035a5760043561047d8161042a565b906024359060443561048e8161042a565b9060643565ffffffffffff8116810361035a5790565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b3461035a576104f96104e56104dc36610465565b92919091611736565b6040519182916020835260208301906104a4565b0390f35b3461035a575f36600319011261035a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461035a575f36600319011261035a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461035a57604036600319011261035a5761059e61043b565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163303610602576105e5906004355f52600360205260405f206122f5565b60408051941515855263ffffffff91909116602085015292915050f35b604051637ca475e560e11b8152600490fd5b634e487b7160e01b5f52604160045260245ffd5b604081019081106001600160401b0382111761064357604052565b610614565b606081019081106001600160401b0382111761064357604052565b60a081019081106001600160401b0382111761064357604052565b90601f801991011681019081106001600160401b0382111761064357604052565b604051906106ac82610663565b565b604051906106ac82610628565b6001600160401b03811161064357601f01601f191660200190565b81601f8201121561035a578035906106ed826106bb565b926106fb604051948561067e565b8284526020838301011161035a57815f926020809301838601378301015290565b90608060031983011261035a57600435916024356107398161042a565b9160443565ffffffffffff8116810361035a5791606435906001600160401b03821161035a5761076b916004016106d6565b90565b3461035a5760206107ac6107a76107843661071c565b939190925f526005865260405f209060018060a01b03165f5260205260405f2090565b61242d565b604051908152f35b3461035a575f36600319011261035a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461035a57604036600319011261035a576004356001600160601b038116810361035a5760243590610828612505565b6040516302910f8b60e31b81523360048201526020816024816001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165afa908115610979575f9161094a575b5015610938576001600160601b03166bffffffffffffffffffffffff193360601b161790806108b2835f52600260205260405f2090565b54146109265761090b817fc67e7929681aa1bccd63f52b3799bf5805f3009f197db6fdf584b14f7fbf608c926108f0855f52600260205260405f2090565b556108fb8185612534565b6040519081529081906020820190565b0390a261092460015f8051602061366d83398151915255565b005b60405163a741a04560e01b8152600490fd5b6040516323d53b9760e21b8152600490fd5b61096c915060203d602011610972575b610964818361067e565b8101906117e8565b5f61087b565b503d61095a565b6117fc565b3461035a57602036600319011261035a576004355f525f8051602061364d8339815191526020526020600160405f200154604051908152f35b3461035a576104f96104e56109cb36610465565b92919091611904565b3461035a575f36600319011261035a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461035a57604036600319011261035a57610924602435600435610a3b8261042a565b805f525f8051602061364d833981519152602052610a5f600160405f2001546120e1565b61280f565b3461035a57604036600319011261035a57602435610a818161042a565b336001600160a01b03821603610a9d5761092490600435612845565b60405163334bd91960e11b8152600490fd5b3461035a57602036600319011261035a57600435610acc8161042a565b610ad4612505565b335f9081527f9ebbcbe0d2961d3fbe56ca6f679bc753bd848d3e6bb3eaf9041c51b286881d2c60205260409020547fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c9060ff1615610b8a57506001546001600160a01b039182169181168214610926576001600160a01b03191681176001557f5bbb1d3ebb6a3ad2a0f17ff35e579a83af60604d1d3c2a4c83c62adecadf666d5f80a260015f8051602061366d83398151915255005b6044906040519063e2517d3f60e01b82523360048301526024820152fd5b3461035a57602036600319011261035a576004355f52600360205260206107ac60405f206128d7565b3461035a57604036600319011261035a5760206107ac610c18602435610bf68161042a565b6004355f526005845260405f209060018060a01b03165f5260205260405f2090565b6128d7565b9181601f8401121561035a578235916001600160401b03831161035a576020838186019501011161035a57565b3461035a57602036600319011261035a576001600160401b0360043581811161035a57610c7b903690600401610c1d565b5f8051602061368d833981519152549260ff8460401c1615931680159081610d7a575b6001149081610d70575b159081610d67575b50610d55575f8051602061368d833981519152805467ffffffffffffffff19166001179055610ce39183610d3157612950565b610ce957005b5f8051602061368d833981519152805460ff60401b19169055604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a1005b5f8051602061368d833981519152805460ff60401b1916600160401b179055612950565b60405163f92ee8a960e01b8152600490fd5b9050155f610cb0565b303b159150610ca8565b849150610c9e565b3461035a575f36600319011261035a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461035a575f36600319011261035a576020604051614e208152f35b606060031982011261035a576004359160243565ffffffffffff8116810361035a5791604435906001600160401b03821161035a5761076b916004016106d6565b3461035a5760206107ac610e3636610de2565b915f526003845260405f2061242d565b3461035a575f36600319011261035a5760206040517fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c8152f35b3461035a575f36600319011261035a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461035a575f36600319011261035a5760206040517e8b9b1e5fa9cf3b14f87f435649268146305ddf689f082e5961a335b07a9abf8152f35b3461035a575f36600319011261035a576001546040516001600160a01b039091168152602090f35b3461035a5760206107ac610f3836610de2565b915f526004845260405f2061242d565b3461035a57604036600319011261035a57602060ff610f9a602435610f6c8161042a565b6004355f525f8051602061364d833981519152845260405f209060018060a01b03165f5260205260405f2090565b54166040519015158152f35b3461035a57606036600319011261035a57602435610fc38161042a565b60443565ffffffffffff8116810361035a577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633036106025761102f6105e5926004355f52600560205260405f209060018060a01b03165f5260205260405f2090565b6122f5565b3461035a575f36600319011261035a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461035a57604036600319011261035a576004356110958161042a565b6024356001600160401b03811161035a575f916110b783923690600401610c1d565b90816040519283928337810184815203915af46111046110d5611b60565b916110f66040519384921515602084015260408084015260608301906104a4565b03601f19810183528261067e565b805190602001fd5b3461035a575f36600319011261035a5760206040515f8152f35b3461035a57606036600319011261035a576024356004356111468261042a565b6044359161115261208a565b5f8281526005602090815260408083206001600160a01b0385168452909152902061117c906128d7565b838114610926577f739a5a3ec0ff71e2386d0013deac5f44e0935a98def2e2a5ddf9a709518c8294916111ef61123c92855f52600460205260405f20906111e9886111e46111c942612d7a565b936111df610c188c5f52600460205260405f2090565b611bb6565b611bd1565b91612176565b5050611220856103e68361120b885f52600560205260405f2090565b9060018060a01b03165f5260205260405f2090565b50506040519485526001600160a01b0316939081906020820190565b0390a3005b606090600319011261035a576004356112598161042a565b906024359060443565ffffffffffff8116810361035a5790565b3461035a576104f96104e561128736611241565b91611bde565b3461035a575f36600319011261035a5760206040516001600160401b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461035a575f36600319011261035a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461035a57602036600319011261035a576004355f52600460205260206107ac60405f206128d7565b3461035a57602036600319011261035a576004355f526002602052602060405f2054604051908152f35b3461035a57604036600319011261035a5761092460243560043561138a8261042a565b805f525f8051602061364d8339815191526020526113ae600160405f2001546120e1565b612845565b3461035a576104f96104e56113c736611241565b91611c28565b3461035a5760206107ac6113e03661071c565b92919091611d24565b3461035a5760a036600319011261035a576024356004356114098261042a565b60443591611415610450565b90608435906001600160401b03821161035a57611437600492369084016106d6565b61143f612505565b5f5460209061146490611458906001600160a01b031681565b6001600160a01b031690565b60405163b134427160e01b815294859182905afa928315610979575f936115a3575b506001600160a01b039283163303611591576001546001600160a01b0316838116611506575b50506040805195865265ffffffffffff909316602086015216927f741a5de99085c0d660f3e4192217b0ffb0ea4e35a0480de48e857a4bc3ee36ed91819081015b0390a361092460015f8051602061366d83398151915255565b90936040519461153d8661152f602082019363724ab0f760e11b8552858c898d60248701611eae565b03601f19810188528761067e565b62042e305a1061157f575f6114ed938192827f741a5de99085c0d660f3e4192217b0ffb0ea4e35a0480de48e857a4bc3ee36ed9951926203d090f150936114ac565b604051638072475160e01b8152600490fd5b60405163dabc4ad960e01b8152600490fd5b6115c691935060203d6020116115cd575b6115be818361067e565b810190611872565b915f611486565b503d6115b4565b3461035a575f36600319011261035a5760206040517f1312a1cf530e56add9be4fd84db9051dcc7635952f09f735f9a29405b55846258152f35b3461035a57604036600319011261035a5761162761043b565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163303610602576105e5906004355f52600460205260405f206122f5565b3461035a575f36600319011261035a575f546040516001600160a01b039091168152602090f35b3461035a57604036600319011261035a5760206107ac6024356116b78161042a565b600435611f04565b3461035a575f36600319011261035a5760206040516203d0908152f35b3461035a575f36600319011261035a57602060405160018152f35b5190811515820361035a57565b519063ffffffff8216820361035a57565b919082604091031261035a5761076b602061172f846116f7565b9301611704565b906117869165ffffffffffff6117959496956060976040519463130f67dd60e31b6020870152602486015260018060a01b031660448501521660648301526064825261178182610663565b612238565b60208082518301019101611715565b9061179d5750565b90915063ffffffff604051911660208201526020815261076b81610628565b5f9081526005602090815260408083206001600160a01b0390941683529290522061076b92919061242d565b9081602091031261035a5761076b906116f7565b6040513d5f823e3d90fd5b81601f8201121561035a5780519061181e826106bb565b9261182c604051948561067e565b8284526020838301011161035a57815f9260208093018386015e8301015290565b9060208282031261035a5781516001600160401b03811161035a5761076b9201611807565b9081602091031261035a575161076b8161042a565b9061076b91602081526118a6825160a0602084015260c08301906104a4565b9060a060806118f46118e16118cd602088015196601f1997888883030160408901526104a4565b6040880151878783030160608801526104a4565b60608701518686830301848701526104a4565b94015192828503019101526104a4565b604051630df8851f60e11b81526001600160a01b03828116600483015260248201849052848116604483015265ffffffffffff8616606483015295606095909491935f856084817f00000000000000000000000000000000000000000000000000000000000000008c165afa948515610979575f95611b18575b5060405163fbfa77cf60e01b8152602081600481888d165afa908115610979576119ea995f9285928491611af9575b5060405163192c0ff760e21b81526001600160a01b03909116600482015265ffffffffffff909216602483015290998a9190829081906044820190565b03917f0000000000000000000000000000000000000000000000000000000000000000165afa978815610979575f98611acf575b509081611a3b82611a3381611a419689611c28565b958388611736565b94611bde565b90835115801590611ac5575b8015611abb575b8015611ab1575b8015611aa7575b611a6f5750505050909150565b6110f6955061076b9496611a8161069f565b948552602085015260408401526060830152608082015260405192839160208301611887565b5081511515611a62565b5082511515611a5b565b5080511515611a54565b5086511515611a4d565b611a4192919850611af1903d805f833e611ae9818361067e565b81019061184d565b979091611a1e565b611b12915060203d6020116115cd576115be818361067e565b5f6119ad565b611b2d9195503d805f833e611ae9818361067e565b935f61197e565b9061076b92915f52600360205260405f2061242d565b9061076b92915f52600460205260405f2061242d565b3d15611b8a573d90611b71826106bb565b91611b7f604051938461067e565b82523d5f602084013e565b606090565b634e487b7160e01b5f52601160045260245ffd5b5f19810191908211611bb157565b611b8f565b91908203918211611bb157565b9060018201809211611bb157565b91908201809211611bb157565b60405163ed4d89e560e01b6020820152602481019290925265ffffffffffff909216604482015260609291611795916117869161178182606481015b03601f19810184528361067e565b604051630cbd53f560e11b6020820152602481019290925265ffffffffffff90921660448201526060929161179591611786916117818260648101611c1a565b60405190611c7582610628565b60606020838281520152565b9060208282031261035a5781516001600160401b039283821161035a57019060408282031261035a5760405192611cb784610628565b825181811161035a5782611ccc918501611807565b8452602083015190811161035a57611ce49201611807565b602082015290565b6001600160a01b0391821681529116602082015265ffffffffffff909116604082015260806060820181905261076b929101906104a4565b92611d3490929192828486612bb5565b929093611d3f611c68565b93805180611e92575b50508415938415611dfc575b8415611d6b575b50505050611d665790565b505f90565b602080949550611d96910151604051958694859463530e1d4360e01b865260601c9060048601611cec565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa908115610979575f91611ddd575b50155f808080611d5b565b611df6915060203d60201161097257610964818361067e565b5f611dd2565b5f549094506001600160a01b0316602084865192611e2f604051948593849363530e1d4360e01b85528960048601611cec565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa908115610979575f91611e73575b501593611d54565b611e8c915060203d60201161097257610964818361067e565b5f611e6b565b611ea6929550602080918301019101611c81565b925f80611d48565b919360a09361076b969565ffffffffffff938552600180871b03166020850152604084015216606082015281608082015201906104a4565b8115611ef0570490565b634e487b7160e01b5f52601260045260245ffd5b5f546040516308834cb560e21b8082526001600160a01b0385811660048401529283166024830152929392602092909183816044817f000000000000000000000000000000000000000000000000000000000000000086165afa908115610979575f91612011575b5015918215611f8d575b50509050611f875761076b91612cc5565b50505f90565b6040519081526001600160a01b0385166004820152606086901c602482015291508290829060449082907f0000000000000000000000000000000000000000000000000000000000000000165afa918215610979575f92611ff4575b505015805f80611f76565b61200a9250803d1061097257610964818361067e565b5f80611fe9565b6120289150843d861161097257610964818361067e565b5f611f6c565b335f9081527f72a65082a5691803ab2b62c9bc729b34205ba1b183d950896526b2fd8714d0c7602052604090207e8b9b1e5fa9cf3b14f87f435649268146305ddf689f082e5961a335b07a9abf9060ff905b541615610b8a5750565b335f9081527f8f2dae99798887da307a4daa2c2d11f840b0cb9a6a67822660c531e9ad14dd00602052604090207f1312a1cf530e56add9be4fd84db9051dcc7635952f09f735f9a29405b55846259060ff90612080565b5f8181525f8051602061364d83398151915260209081526040808320338452909152902060ff90612080565b634e487b7160e01b5f52603260045260245ffd5b8054821015612136575f5260205f2001905f90565b61210d565b90815491600160401b831015610643578261215e9160016106ac95018155612121565b90919082549060031b91821b915f19901b1916179055565b90929192600182019081548015612208575b508461219384612dac565b509490928454936121a3836128d7565b96816121f3575b50156121d0575050505f198101908111611bb15761215e85916121cc93612121565b9190565b6121cc9492936121ec926001600160d01b03909116919061349c565b505061213b565b65ffffffffffff83811691161490505f6121aa565b600160401b811015610643578060016122249201845583612121565b8154905f199060031b1b191690555f612188565b5f9190829160405161226d816110f66020820194639f86fd8560e01b86523060248401526040604484015260648301906104a4565b51915afa5061227a611b60565b8051810160408282031261035a57612294602083016116f7565b916040810151916001600160401b03831161035a576122ba926020809201920101611807565b90156122c35790565b805190811561035a57602001fd5b906040516122de81610628565b915465ffffffffffff8116835260301c6020830152565b91908254905f82916005841161239d575b612311935085612f2e565b9081156123915761238a61238161237b61237161234361233e61233388611ba3565b895f5260205f200190565b6122d1565b96600161236a602061235b8b5165ffffffffffff1690565b9a01516001600160d01b031690565b9101612121565b90549060031b1c90565b93611ba3565b63ffffffff1690565b6001939291565b5f925082915081908190565b91926123a881612dfb565b8103908111611bb15761231193865f526123dc6123d18360205f200165ffffffffffff90541690565b65ffffffffffff1690565b65ffffffffffff851610156123f2575091612306565b9291506123fe90611bc3565b90612306565b9081602091031261035a5761076b90611704565b90600163ffffffff80931601918211611bb157565b918051156124fb578060208061244893518301019101612404565b916124538382613055565b92612464845165ffffffffffff1690565b9065ffffffffffff80851692168281146124ef578211918261249a575b50506124915761076b9250612f85565b50506020015190565b9091506124a78354611ba3565b63ffffffff8316149182156124c0575b50505f80612481565b6124e79192506124db6124d56123d192612418565b85613055565b5165ffffffffffff1690565b115f806124b7565b50505050506020015190565b5061076b91612f85565b5f8051602061366d83398151915260028154146125225760029055565b604051633ee5aeb560e01b8152600490fd5b90815f52600360205260405f208161254b82612dac565b9193905083156125a95761256b916001600160d01b031690600101612121565b90549060031b1c5b8261259f575b5050612583575050565b61259b915f52600360205260405f206103ef42612d7a565b5050565b119050815f612579565b50505f612573565b6001600160a01b0381165f9081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d60205260409020545f8051602061364d8339815191529060ff16611f87575f808052602091825260408082206001600160a01b038516835290925220805460ff1916600117905533906001600160a01b03165f7f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d8180a4600190565b6001600160a01b0381165f9081527f9ebbcbe0d2961d3fbe56ca6f679bc753bd848d3e6bb3eaf9041c51b286881d2c602052604090207fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c905f8051602061364d8339815191529060ff905b541661272b575f828152602091825260408082206001600160a01b038616835290925220805460ff1916600117905533916001600160a01b0316907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d5f80a4600190565b5050505f90565b6001600160a01b0381165f9081527f72a65082a5691803ab2b62c9bc729b34205ba1b183d950896526b2fd8714d0c7602052604090207e8b9b1e5fa9cf3b14f87f435649268146305ddf689f082e5961a335b07a9abf905f8051602061364d8339815191529060ff906126c7565b6001600160a01b0381165f9081527f8f2dae99798887da307a4daa2c2d11f840b0cb9a6a67822660c531e9ad14dd00602052604090207f1312a1cf530e56add9be4fd84db9051dcc7635952f09f735f9a29405b5584625905f8051602061364d8339815191529060ff906126c7565b5f8181525f8051602061364d833981519152602081815260408084206001600160a01b038716855290915290912060ff906126c7565b5f8181525f8051602061364d833981519152602081815260408084206001600160a01b03871685529091529091205460ff161561272b575f828152602091825260408082206001600160a01b038616835290925220805460ff1916905533916001600160a01b0316907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b5f80a4600190565b8054806128fc57505f5b6001600160d01b03811615611f875760016123719201612121565b5f19908082810111611bb157825f5260205f2001015460301c6128e1565b91909160408184031261035a5780356129328161042a565b9260208201356001600160401b03811161035a5761076b92016106d6565b61295c9181019061291a565b6040516302910f8b60e31b81526001600160a01b039283166004820181905291906020816024817f000000000000000000000000000000000000000000000000000000000000000088165afa908115610979575f91612a6f575b5015612a5d576129f16040916129ec612a37946129d16130bd565b60018060a01b03166001600160601b0360a01b5f5416175f55565b61323d565b6020810151600180546001600160a01b0319166001600160a01b0390921691909117905580516001600160a01b0316848116612a4d575b5001516001600160a01b031690565b908116612a415750565b612a4a9061265c565b50565b612a56906125b1565b505f612a28565b6040516362df054560e01b8152600490fd5b612a88915060203d60201161097257610964818361067e565b5f6129b6565b6040519060a082018281106001600160401b038211176106435760405281608060609182815282602082015282604082015282808201520152565b9060208282031261035a5781516001600160401b039283821161035a57019060a08282031261035a57612afa61069f565b92825181811161035a5782612b10918501611807565b8452602083015181811161035a5782612b2a918501611807565b6020850152604083015181811161035a5782612b47918501611807565b6040850152606083015181811161035a5782612b64918501611807565b6060850152608083015190811161035a57612b7f9201611807565b608082015290565b9081602091031261035a575190565b60409065ffffffffffff61076b949316815281602082015201906104a4565b91939293612bc1612a8e565b94805180612ca9575b5050612bdb60608601518285611b4a565b9182612bed57505050509051905f9190565b612c01612c3b9183608089015191876117bc565b916020612c1a6114586114585f5460018060a01b031690565b8189015190604051808096819463810da75d60e01b83528760048401612b96565b03915afa801561097957612c7195612c6b935f92612c76575b50612c65919260408a015191611b34565b9061339d565b906133af565b915190565b612c659250612c9c9060203d602011612ca2575b612c94818361067e565b810190612b87565b91612c54565b503d612c8a565b612cbd929650602080918301019101612ac9565b935f80612bca565b90612cdb610c18835f52600460205260405f2090565b9081612ce8575050505f90565b610c18612d019161120b855f52600560205260405f2090565b5f5460405163bd49c35f60e01b815290602090829060049082906001600160a01b03165afa80156109795761076b94612c6b925f92612d51575b50610c18612c65915f52600360205260405f2090565b612c65919250612d72610c189160203d602011612ca257612c94818361067e565b929150612d3b565b65ffffffffffff90818111612d8d571690565b604490604051906306dfcc6560e41b8252603060048301526024820152fd5b805480612dbd5750505f905f905f90565b5f19908082810111611bb157612dda925f5260205f2001016122d1565b9065ffffffffffff82511691602060018060d01b0391015116906001929190565b8015611d665780612c65612ec6612ebc612eb2612ea8612e9e612e94612e8a600161076b9a5f908b60801c80612f22575b508060401c80612f15575b508060201c80612f08575b508060101c80612efb575b508060081c80612eee575b508060041c80612ee1575b508060021c80612ed4575b50821c612ecd575b811c1b612e83818b611ee6565b0160011c90565b612e83818a611ee6565b612e838189611ee6565b612e838188611ee6565b612e838187611ee6565b612e838186611ee6565b612e838185611ee6565b8092611ee6565b8101612e76565b600291509101905f612e6e565b600491509101905f612e63565b600891509101905f612e58565b601091509101905f612e4d565b602091509101905f612e42565b604091509101905f612e37565b9150506080905f612e2c565b905b838310612f3d5750505090565b909192612f4a81856135b2565b90835f5265ffffffffffff808360205f20015416908416105f14612f725750925b9190612f30565b93506001810180911115612f6b57611b8f565b908154905f829160058411612fef575b612fa09350846135f5565b80612fc857505f905b6001600160d01b03821615611f875761076b9160016123719201612121565b612fe2612fd7612fe992611ba3565b835f5260205f200190565b5460301c90565b90612fa9565b9192612ffa81612dfb565b8103908111611bb157612fa093855f5265ffffffffffff808360205f20015416908516105f1461302b575091612f95565b92915061303790611bc3565b90612f95565b6040519061304a82610628565b5f6020838281520152565b9061307e61307861309f9261306861303d565b5061307161303d565b5084612121565b506122d1565b91600165ffffffffffff845116936020828060d01b03910151169101612121565b905490604051926130af84610628565b835260031b1c602082015290565b6130c56135c7565b6130cd6135c7565b60015f8051602061366d83398151915255565b604051906130ed82610648565b5f6040838281528260208201520152565b81601f8201121561035a578051916020916001600160401b038411610643578360051b90604051946131328584018761067e565b8552838086019282010192831161035a578301905b828210613155575050505090565b83809183516131638161042a565b815201910190613147565b9060208282031261035a5781516001600160401b039283821161035a5701908181039260a0841261035a576060604051946131a886610648565b1261035a576040516131b981610648565b83516131c48161042a565b815260208401516131d48161042a565b602082015260408401516131e78161042a565b60408201528452606083015181811161035a57826132069185016130fe565b6020850152608083015190811161035a5761322192016130fe565b604082015290565b80518210156121365760209160051b010190565b613259906132496130e0565b506020808251830101910161316e565b8051519091906001600160a01b03161580613383575b613371579060208101905f5b825180518210156132f557611458613296836132a393613229565b516001600160a01b031690565b156132e3576132c56132c16132bc613296848751613229565b612732565b1590565b6132d15760010161327b565b604051635140fefd60e11b8152600490fd5b6040516323cda06760e01b8152600490fd5b506040925050818101905f5b82518051821015613368576114586132968361331c93613229565b156133575761333a6132c1613335613296848751613229565b6127a0565b61334657600101613301565b8351635140fefd60e11b8152600490fd5b83516323cda06760e01b8152600490fd5b50509150505190565b6040516303501f5960e11b8152600490fd5b50602082015151158061326f57506040820151511561326f565b90808210156133aa575090565b905090565b9091828202915f1984820993838086109503948086039514613434578483111561342257829109815f038216809204600280826003021880830282030280830282030280830282030280830282030280830282030280920290030293600183805f03040190848311900302920304170290565b60405163227bc15360e01b8152600490fd5b50509061076b9250611ee6565b8054600160401b8110156106435761345e91600182018155612121565b61348957815160209092015160301b65ffffffffffff191665ffffffffffff92909216919091179055565b634e487b7160e01b5f525f60045260245ffd5b805492939291908215613589576134b861233e612fd785611ba3565b906134c9825165ffffffffffff1690565b65ffffffffffff84811691168110613577576121cc9460209488926134f76123d1875165ffffffffffff1690565b0361353f57506135319261350d61351892611ba3565b905f5260205f200190565b9065ffffffffffff82549181199060301b169116179055565b01516001600160d01b031690565b9150506135729161355f6135516106ae565b65ffffffffffff9093168352565b6001600160d01b03881682860152613441565b613531565b604051632520601d60e01b8152600490fd5b6135ad92506135996135516106ae565b6001600160d01b0385166020830152613441565b5f9190565b90808216911860011c8101809111611bb15790565b60ff5f8051602061368d8339815191525460401c16156135e357565b604051631afcd79f60e31b8152600490fd5b905b8383106136045750505090565b90919261361181856135b2565b90835f5265ffffffffffff808360205f20015416908416105f146136395750925b91906135f7565b9350600181018091111561363257611b8f56fe02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268009b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a264697066735822122029f0973058268d4c15bb68cd12766d98013081e51e50292e237f8f15461e8b6864736f6c634300081900336101c0346101c857601f6135d938819003918201601f19168301916001600160401b0391828411858510176101cc5781606092869260409687528339810103126101c85761004c836101e0565b926100648361005d602084016101e0565b92016101e0565b91306080527ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a009081549060ff82871c166101b7578080831603610173575b5050505f60a0525f60c0525f60e052610100935f8552610120935f8552610140905f82526101609283526101809384526101a094855251946133e496876101f58839608051878181610696015261148c015260a0518761092d015260c0518761114b015260e0518781816107a101526111840152518681816104e2015261266601525185818161064c01528181611be00152611d0f01525184818161071f01528181611b470152611d8d015251838181610ebc015261179a015251828181610c8f015261183b0152518161104f0152f35b6001600160401b0319909116811790915583519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a15f80806100a2565b855163f92ee8a960e01b8152600490fd5b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b51906001600160a01b03821682036101c85756fe60806040526004361015610011575f80fd5b5f3560e01c806301ffc9a7146102c4578063020cf0c2146102bf57806302145348146102ba578063103f2907146102b557806310a28b5d146102b057806311422095146102ab578063128e5d82146102a6578063197aa7ea146102a15780631a80e5001461029c57806323f752d514610297578063248a9ca31461029257806325dc97081461028d5780632dd31000146102885780632f2ff15d1461028357806336568abe1461027e5780633dfd3873146102795780633eb22c0f14610274578063439fab911461026f57806345e78fcb1461026a578063518504ba14610265578063557cab44146102605780635d32a1c91461025b5780636679191e1461025657806379d89614146102515780637d24bb271461024c5780637f5a7c7b1461024757806391d148541461024257806394d2558a1461023d5780639b656b22146102385780639f86fd8514610233578063a217fddf1461022e578063bb24fe8a14610229578063c0cd7c3e14610224578063d15b740e1461021f578063d547741f1461021a578063da749d2b14610215578063e02f693714610210578063e49561ee1461020b578063f7b0554714610206578063fbfa77cf14610201578063fd4d447c146101fc578063ff54740f146101f75763ffa1ad74146101f2575f80fd5b611557565b61153a565b611510565b6114e9565b611465565b61127a565b61125e565b611229565b6111dd565b6111b3565b61116f565b61112c565b611112565b61107e565b61103a565b610ffc565b610f4c565b610f24565b610eeb565b610ea7565b610e6d565b610e1c565b610cf8565b610cbe565b610c7a565b610b42565b610aec565b6109f3565b6109a8565b61095c565b610918565b6108fb565b6108c2565b61074e565b61070a565b61067b565b610637565b6105e8565b6105b3565b6104cd565b610410565b61032f565b3461031a57602036600319011261031a5760043563ffffffff60e01b811680910361031a57602090637965db0b60e01b8114908115610309575b506040519015158152f35b6301ffc9a760e01b1490505f6102fe565b5f80fd5b6001600160a01b0381160361031a57565b3461031a57606036600319011261031a5760243560043561034f8261031e565b6044359161035b611e02565b815f526004602052826103896103848360405f209060018060a01b03165f5260205260405f2090565b6120b3565b146103fe5760207ffc9545f07ffadfb668efd0144cdcaf2d6e2c8192dce1ea9fc131934f9c90fc7e91835f52600482526103e9856103da8360405f209060018060a01b03165f5260205260405f2090565b6103e342612b0e565b90611f58565b50506040519485526001600160a01b031693a3005b60405163a741a04560e01b8152600490fd5b3461031a5760408060031936011261031a576004359060243590610432611e5f565b825f526002602052805f205482116104bd57825f52600360205281610458825f206120b3565b146104ad57816104a8916104987e899d104fc3d8820bd96540612bcc5c448c8837b13b9f7faa43ad0728f0c14f946103da875f52600360205260405f2090565b5050519081529081906020820190565b0390a2005b5163a741a04560e01b8152600490fd5b51631eefc06360e31b8152600490fd5b3461031a575f36600319011261031a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b6024359065ffffffffffff8216820361031a57565b6044359065ffffffffffff8216820361031a57565b6064359065ffffffffffff8216820361031a57565b608090600319011261031a576004356105688161031e565b90602435906044356105798161031e565b9060643565ffffffffffff8116810361031a5790565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b3461031a576105e46105d06105c736610550565b929190916115b1565b60405191829160208352602083019061058f565b0390f35b3461031a57604036600319011261031a57602061062f61038460243561060d8161031e565b6004355f526004845260405f209060018060a01b03165f5260205260405f2090565b604051908152f35b3461031a575f36600319011261031a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461031a57604036600319011261031a57610694610511565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633036106f8576106db906004355f52600360205260405f20612124565b60408051941515855263ffffffff91909116602085015292915050f35b604051637ca475e560e11b8152600490fd5b3461031a575f36600319011261031a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461031a57604036600319011261031a576004356001600160601b038116810361031a576024359061077e612229565b6040516302910f8b60e31b81523360048201526020816024816001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165afa9081156108bd575f9161088e575b501561087c576001600160601b03166bffffffffffffffffffffffff193360601b16179080610808835f52600260205260405f2090565b54146103fe57610861817fc67e7929681aa1bccd63f52b3799bf5805f3009f197db6fdf584b14f7fbf608c92610846855f52600260205260405f2090565b556108518185612258565b6040519081529081906020820190565b0390a261087a60015f8051602061336f83398151915255565b005b6040516323d53b9760e21b8152600490fd5b6108b0915060203d6020116108b6575b6108a88183610d7e565b810190611649565b5f6107d1565b503d61089e565b61165d565b3461031a57602036600319011261031a576004355f525f8051602061334f8339815191526020526020600160405f200154604051908152f35b3461031a576105e46105d061090f36610550565b9291909161174e565b3461031a575f36600319011261031a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461031a57604036600319011261031a5761087a60243560043561097f8261031e565b805f525f8051602061334f8339815191526020526109a3600160405f200154611eb5565b612533565b3461031a57604036600319011261031a576024356109c58161031e565b336001600160a01b038216036109e15761087a90600435612569565b60405163334bd91960e11b8152600490fd5b3461031a57602036600319011261031a57600435610a108161031e565b610a18612229565b335f9081527f9ebbcbe0d2961d3fbe56ca6f679bc753bd848d3e6bb3eaf9041c51b286881d2c60205260409020547fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c9060ff1615610ace57506001546001600160a01b0391821691811682146103fe576001600160a01b03191681176001557f5bbb1d3ebb6a3ad2a0f17ff35e579a83af60604d1d3c2a4c83c62adecadf666d5f80a260015f8051602061336f83398151915255005b6044906040519063e2517d3f60e01b82523360048301526024820152fd5b3461031a57602036600319011261031a576004355f526003602052602061062f60405f206120b3565b9181601f8401121561031a578235916001600160401b03831161031a576020838186019501011161031a57565b3461031a57602036600319011261031a576001600160401b0360043581811161031a57610b73903690600401610b15565b5f8051602061338f833981519152549260ff8460401c1615931680159081610c72575b6001149081610c68575b159081610c5f575b50610c4d575f8051602061338f833981519152805467ffffffffffffffff19166001179055610bdb9183610c2957612631565b610be157005b5f8051602061338f833981519152805460ff60401b19169055604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a1005b5f8051602061338f833981519152805460ff60401b1916600160401b179055612631565b60405163f92ee8a960e01b8152600490fd5b9050155f610ba8565b303b159150610ba0565b849150610b96565b3461031a575f36600319011261031a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461031a575f36600319011261031a5760206040517f15e7c882d74e8821ebf34aaff46fd0e1d53b9393d91490019124113d28dc32a38152f35b3461031a575f36600319011261031a576020604051614e208152f35b634e487b7160e01b5f52604160045260245ffd5b604081019081106001600160401b03821117610d4357604052565b610d14565b606081019081106001600160401b03821117610d4357604052565b608081019081106001600160401b03821117610d4357604052565b90601f801991011681019081106001600160401b03821117610d4357604052565b60405190610dac82610d63565b565b60405190610dac82610d28565b6001600160401b038111610d4357601f01601f191660200190565b81601f8201121561031a57803590610ded82610dbb565b92610dfb6040519485610d7e565b8284526020838301011161031a57815f926020809301838601378301015290565b3461031a57606036600319011261031a57610e35610511565b6044356001600160401b03811161031a57602091610e5a61062f923690600401610dd6565b906004355f526003845260405f20612798565b3461031a575f36600319011261031a5760206040517fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c8152f35b3461031a575f36600319011261031a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461031a575f36600319011261031a5760206040517e8b9b1e5fa9cf3b14f87f435649268146305ddf689f082e5961a335b07a9abf8152f35b3461031a575f36600319011261031a576001546040516001600160a01b039091168152602090f35b3461031a57604036600319011261031a57602060ff610f9e602435610f708161031e565b6004355f525f8051602061334f833981519152845260405f209060018060a01b03165f5260205260405f2090565b54166040519015158152f35b90608060031983011261031a5760043591602435610fc78161031e565b9160443565ffffffffffff8116810361031a5791606435906001600160401b03821161031a57610ff991600401610dd6565b90565b3461031a57602061062f61103561101236610faa565b939190925f526004865260405f209060018060a01b03165f5260205260405f2090565b612798565b3461031a575f36600319011261031a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461031a57604036600319011261031a5760043561109b8161031e565b6024356001600160401b03811161031a575f916110bd83923690600401610b15565b90816040519283928337810184815203915af461110a6110db6119a3565b916110fc60405193849215156020840152604080840152606083019061058f565b03601f198101835282610d7e565b805190602001fd5b3461031a575f36600319011261031a5760206040515f8152f35b3461031a575f36600319011261031a5760206040516001600160401b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461031a575f36600319011261031a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461031a57602036600319011261031a576004355f526002602052602060405f2054604051908152f35b3461031a57604036600319011261031a5761087a6024356004356112008261031e565b805f525f8051602061334f833981519152602052611224600160405f200154611eb5565b612569565b3461031a57606036600319011261031a576105e46105d060043561124c8161031e565b611254610526565b90602435906119d2565b3461031a57602061062f61127136610faa565b92919091611ad1565b3461031a5760a036600319011261031a5760243560043561129a8261031e565b604435916112a661053b565b90608435906001600160401b03821161031a576112c860049236908401610dd6565b6112d0612229565b5f546020906112f5906112e9906001600160a01b031681565b6001600160a01b031690565b60405163b134427160e01b815294859182905afa9283156108bd575f93611434575b506001600160a01b039283163303611422576001546001600160a01b0316838116611397575b50506040805195865265ffffffffffff909316602086015216927f741a5de99085c0d660f3e4192217b0ffb0ea4e35a0480de48e857a4bc3ee36ed91819081015b0390a361087a60015f8051602061336f83398151915255565b9093604051946113ce866113c0602082019363724ab0f760e11b8552858c898d60248701611c5b565b03601f198101885287610d7e565b62042e305a10611410575f61137e938192827f741a5de99085c0d660f3e4192217b0ffb0ea4e35a0480de48e857a4bc3ee36ed9951926203d090f1509361133d565b604051638072475160e01b8152600490fd5b60405163dabc4ad960e01b8152600490fd5b61145791935060203d60201161145e575b61144f8183610d7e565b8101906116d3565b915f611317565b503d611445565b3461031a57606036600319011261031a576024356114828161031e565b61148a610526565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633036106f8576114e46106db926004355f52600460205260405f209060018060a01b03165f5260205260405f2090565b612124565b3461031a575f36600319011261031a575f546040516001600160a01b039091168152602090f35b3461031a57604036600319011261031a57602061062f6024356115328161031e565b600435611cd8565b3461031a575f36600319011261031a5760206040516203d0908152f35b3461031a575f36600319011261031a57602060405160018152f35b5190811515820361031a57565b519063ffffffff8216820361031a57565b919082604091031261031a57610ff960206115aa84611572565b930161157f565b91939265ffffffffffff906060956040519363f7b0554760e01b6020860152602485015260018060a01b031660448401521660648201526064815260a08101908082106001600160401b03831117610d4357611622926116139260405261201a565b60208082518301019101611590565b9061162a5750565b90915063ffffffff6040519116602082015260208152610ff981610d28565b9081602091031261031a57610ff990611572565b6040513d5f823e3d90fd5b81601f8201121561031a5780519061167f82610dbb565b9261168d6040519485610d7e565b8284526020838301011161031a57815f9260208093018386015e8301015290565b9060208282031261031a5781516001600160401b03811161031a57610ff99201611668565b9081602091031261031a5751610ff98161031e565b90610ff9916020815261170782516080602084015260a083019061058f565b906080606061173e61172b602087015195601f19968787830301604088015261058f565b604087015186868303018487015261058f565b940151928285030191015261058f565b604051630df8851f60e11b81526001600160a01b03828116600483015260248201849052848116604483015265ffffffffffff8616606483015295606095909491939091905f856084817f00000000000000000000000000000000000000000000000000000000000000008c165afa9485156108bd575f95611945575b5060405163fbfa77cf60e01b8152602081600481888d165afa9081156108bd57611837995f9286928491611926575b5060405163192c0ff760e21b81526001600160a01b03909116600482015265ffffffffffff909216602483015290998a9190829081906044820190565b03917f0000000000000000000000000000000000000000000000000000000000000000165afa9788156108bd575f986118fa575b50908161187d846118839594876119d2565b946115b1565b908251158015906118f0575b80156118e6575b80156118dc575b6118a957505050909150565b6110fc9450610ff993956118bb610d9f565b938452602084015260408301526060820152604051928391602083016116e8565b508151151561189d565b5080511515611896565b508551151561188f565b611883939291985061191d903d805f833e6119158183610d7e565b8101906116ae565b9790919261186b565b61193f915060203d60201161145e5761144f8183610d7e565b5f6117fa565b61195a9195503d805f833e6119158183610d7e565b935f6117cb565b90610ff992915f52600360205260405f20612798565b5f9081526004602090815260408083206001600160a01b03909416835292905220610ff9929190612798565b3d156119cd573d906119b482610dbb565b916119c26040519384610d7e565b82523d5f602084013e565b606090565b611622916116139194939465ffffffffffff60609660405193630cbd53f560e11b6020860152602485015216604483015260448252611a1082610d63565b61201a565b60405190611a2282610d28565b60606020838281520152565b9060208282031261031a5781516001600160401b039283821161031a57019060408282031261031a5760405192611a6484610d28565b825181811161031a5782611a79918501611668565b8452602083015190811161031a57611a919201611668565b602082015290565b6001600160a01b0391821681529116602082015265ffffffffffff9091166040820152608060608201819052610ff99291019061058f565b92611ae190929192828486612973565b929093611aec611a15565b93805180611c3f575b50508415938415611ba9575b8415611b18575b50505050611b135790565b505f90565b602080949550611b43910151604051958694859463530e1d4360e01b865260601c9060048601611a99565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa9081156108bd575f91611b8a575b50155f808080611b08565b611ba3915060203d6020116108b6576108a88183610d7e565b5f611b7f565b5f549094506001600160a01b0316602084865192611bdc604051948593849363530e1d4360e01b85528960048601611a99565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa9081156108bd575f91611c20575b501593611b01565b611c39915060203d6020116108b6576108a88183610d7e565b5f611c18565b611c53929550602080918301019101611a2e565b925f80611af5565b919360a093610ff9969565ffffffffffff938552600180871b031660208501526040840152166060820152816080820152019061058f565b634e487b7160e01b5f52601160045260245ffd5b8115611cb1570490565b634e487b7160e01b5f52601260045260245ffd5b9060018201809211611cd357565b611c93565b5f546040516308834cb560e21b8082526001600160a01b0385811660048401529283166024830152929392602092909183816044817f000000000000000000000000000000000000000000000000000000000000000086165afa9081156108bd575f91611de5575b5015918215611d61575b50509050611d5b57610ff991612a68565b50505f90565b6040519081526001600160a01b0385166004820152606086901c602482015291508290829060449082907f0000000000000000000000000000000000000000000000000000000000000000165afa9182156108bd575f92611dc8575b505015805f80611d4a565b611dde9250803d106108b6576108a88183610d7e565b5f80611dbd565b611dfc9150843d86116108b6576108a88183610d7e565b5f611d40565b335f9081527f24e48de785eeca8420b70f73d267a66970ccc187d459f2a4b53e74ed92a5ab86602052604090207f15e7c882d74e8821ebf34aaff46fd0e1d53b9393d91490019124113d28dc32a39060ff905b541615610ace5750565b335f9081527f72a65082a5691803ab2b62c9bc729b34205ba1b183d950896526b2fd8714d0c7602052604090207e8b9b1e5fa9cf3b14f87f435649268146305ddf689f082e5961a335b07a9abf9060ff90611e55565b5f8181525f8051602061334f83398151915260209081526040808320338452909152902060ff90611e55565b634e487b7160e01b5f52603260045260245ffd5b8054821015611f0a575f5260205f2001905f90565b611ee1565b90815491600160401b831015610d435782611f32916001610dac95018155611ef5565b90919082549060031b91821b915f19901b1916179055565b5f19810191908211611cd357565b90929192600182019081548015611fea575b5084611f7584612b40565b50949092845493611f85836120b3565b9681611fd5575b5015611fb2575050505f198101908111611cd357611f328591611fae93611ef5565b9190565b611fae949293611fce926001600160d01b03909116919061319e565b5050611f0f565b65ffffffffffff83811691161490505f611f8c565b600160401b811015610d43578060016120069201845583611ef5565b8154905f199060031b1b191690555f611f6a565b5f9190829160405161204f816110fc6020820194639f86fd8560e01b865230602484015260406044840152606483019061058f565b51915afa5061205c6119a3565b8051810160408282031261031a5761207660208301611572565b916040810151916001600160401b03831161031a5761209c926020809201920101611668565b90156120a55790565b805190811561031a57602001fd5b8054806120e257505f5b6001600160d01b03811615611d5b5760016120d89201611ef5565b90549060031b1c90565b5f19908082810111611cd357825f5260205f2001015460301c6120bd565b9060405161210d81610d28565b915465ffffffffffff8116835260301c6020830152565b91908254905f8291600584116121c2575b612140935085612cc2565b9081156121b6576121af6121a66121a06120d861217261216d61216288611f4a565b895f5260205f200190565b612100565b966001612199602061218a8b5165ffffffffffff1690565b9a01516001600160d01b031690565b9101611ef5565b93611f4a565b63ffffffff1690565b6001939291565b5f925082915081908190565b91926121cd81612b8f565b8103908111611cd35761214093865f526122016121f68360205f200165ffffffffffff90541690565b65ffffffffffff1690565b65ffffffffffff85161015612217575091612135565b92915061222390611cc5565b90612135565b5f8051602061336f83398151915260028154146122465760029055565b604051633ee5aeb560e01b8152600490fd5b90815f52600360205260405f208161226f82612b40565b9193905083156122cd5761228f916001600160d01b031690600101611ef5565b90549060031b1c5b826122c3575b50506122a7575050565b6122bf915f52600360205260405f206103e342612b0e565b5050565b119050815f61229d565b50505f612297565b6001600160a01b0381165f9081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d60205260409020545f8051602061334f8339815191529060ff16611d5b575f808052602091825260408082206001600160a01b038516835290925220805460ff1916600117905533906001600160a01b03165f7f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d8180a4600190565b6001600160a01b0381165f9081527f9ebbcbe0d2961d3fbe56ca6f679bc753bd848d3e6bb3eaf9041c51b286881d2c602052604090207fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c905f8051602061334f8339815191529060ff905b541661244f575f828152602091825260408082206001600160a01b038616835290925220805460ff1916600117905533916001600160a01b0316907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d5f80a4600190565b5050505f90565b6001600160a01b0381165f9081527f72a65082a5691803ab2b62c9bc729b34205ba1b183d950896526b2fd8714d0c7602052604090207e8b9b1e5fa9cf3b14f87f435649268146305ddf689f082e5961a335b07a9abf905f8051602061334f8339815191529060ff906123eb565b6001600160a01b0381165f9081527f24e48de785eeca8420b70f73d267a66970ccc187d459f2a4b53e74ed92a5ab86602052604090207f15e7c882d74e8821ebf34aaff46fd0e1d53b9393d91490019124113d28dc32a3905f8051602061334f8339815191529060ff906123eb565b5f8181525f8051602061334f833981519152602081815260408084206001600160a01b038716855290915290912060ff906123eb565b5f8181525f8051602061334f833981519152602081815260408084206001600160a01b03871685529091529091205460ff161561244f575f828152602091825260408082206001600160a01b038616835290925220805460ff1916905533916001600160a01b0316907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b5f80a4600190565b91909160408184031261031a5780356126138161031e565b9260208201356001600160401b03811161031a57610ff99201610dd6565b61263d918101906125fb565b6040516302910f8b60e31b81526001600160a01b039283166004820181905291906020816024817f000000000000000000000000000000000000000000000000000000000000000088165afa9081156108bd575f91612750575b501561273e576126d26040916126cd612718946126b2612d19565b60018060a01b03166001600160601b0360a01b5f5416175f55565b612e99565b6020810151600180546001600160a01b0319166001600160a01b0390921691909117905580516001600160a01b031684811661272e575b5001516001600160a01b031690565b9081166127225750565b61272b90612380565b50565b612737906122d5565b505f612709565b6040516362df054560e01b8152600490fd5b612769915060203d6020116108b6576108a88183610d7e565b5f612697565b9081602091031261031a57610ff99061157f565b90600163ffffffff80931601918211611cd357565b9180511561286657806020806127b39351830101910161276f565b916127be83826130c9565b926127cf845165ffffffffffff1690565b9065ffffffffffff808516921682811461285a5782119182612805575b50506127fc57610ff99250612ff9565b50506020015190565b9091506128128354611f4a565b63ffffffff83161491821561282b575b50505f806127ec565b6128529192506128466128406121f692612783565b856130c9565b5165ffffffffffff1690565b115f80612822565b50505050506020015190565b50610ff991612ff9565b60405190608082018281106001600160401b03821117610d4357604052606080838181528160208201528160408201520152565b9060208282031261031a5781516001600160401b039283821161031a57019060808282031261031a576128d5610d9f565b92825181811161031a57826128eb918501611668565b8452602083015181811161031a5782612905918501611668565b6020850152604083015181811161031a5782612922918501611668565b6040850152606083015190811161031a5761293d9201611668565b606082015290565b9081602091031261031a575190565b60409065ffffffffffff610ff99493168152816020820152019061058f565b9391909361297f612870565b93805180612a48575b50506129c992939460206129a86112e96112e95f5460018060a01b031690565b8188015190604051808098819463810da75d60e01b83528960048401612954565b03915afa9182156108bd57612a0a945f93612a0f575b50612a0490612a0493946129f860408a01518284611961565b9360608a015192611977565b90613131565b915190565b612a04935090612a39612a049260203d602011612a41575b612a318183610d7e565b810190612945565b9350906129df565b503d612a27565b6129c994955090602080612a609383010191016128a4565b93925f612988565b5f5460405163bd49c35f60e01b8152929190602090849060049082906001600160a01b03165afa9081156108bd57610ff9935f92612ae3575b50612a04610384612a049394612ac2610384855f52600360205260405f2090565b935f52600460205260405f209060018060a01b03165f5260205260405f2090565b612a049250610384612b06612a049260203d602011612a4157612a318183610d7e565b935050612aa1565b65ffffffffffff90818111612b21571690565b604490604051906306dfcc6560e41b8252603060048301526024820152fd5b805480612b515750505f905f905f90565b5f19908082810111611cd357612b6e925f5260205f200101612100565b9065ffffffffffff82511691602060018060d01b0391015116906001929190565b8015611b135780612a04612c5a612c50612c46612c3c612c32612c28612c1e6001610ff99a5f908b60801c80612cb6575b508060401c80612ca9575b508060201c80612c9c575b508060101c80612c8f575b508060081c80612c82575b508060041c80612c75575b508060021c80612c68575b50821c612c61575b811c1b612c17818b611ca7565b0160011c90565b612c17818a611ca7565b612c178189611ca7565b612c178188611ca7565b612c178187611ca7565b612c178186611ca7565b612c178185611ca7565b8092611ca7565b8101612c0a565b600291509101905f612c02565b600491509101905f612bf7565b600891509101905f612bec565b601091509101905f612be1565b602091509101905f612bd6565b604091509101905f612bcb565b9150506080905f612bc0565b905b838310612cd15750505090565b909192612cde81856132b4565b90835f5265ffffffffffff808360205f20015416908416105f14612d065750925b9190612cc4565b93506001810180911115612cff57611c93565b612d216132c9565b612d296132c9565b60015f8051602061336f83398151915255565b60405190612d4982610d48565b5f6040838281528260208201520152565b81601f8201121561031a578051916020916001600160401b038411610d43578360051b9060405194612d8e85840187610d7e565b8552838086019282010192831161031a578301905b828210612db1575050505090565b8380918351612dbf8161031e565b815201910190612da3565b9060208282031261031a5781516001600160401b039283821161031a5701908181039260a0841261031a57606060405194612e0486610d48565b1261031a57604051612e1581610d48565b8351612e208161031e565b81526020840151612e308161031e565b60208201526040840151612e438161031e565b60408201528452606083015181811161031a5782612e62918501612d5a565b6020850152608083015190811161031a57612e7d9201612d5a565b604082015290565b8051821015611f0a5760209160051b010190565b612eb590612ea5612d3c565b5060208082518301019101612dca565b8051519091906001600160a01b03161580612fdf575b612fcd579060208101905f5b82518051821015612f51576112e9612ef283612eff93612e85565b516001600160a01b031690565b15612f3f57612f21612f1d612f18612ef2848751612e85565b612456565b1590565b612f2d57600101612ed7565b604051635140fefd60e11b8152600490fd5b6040516323cda06760e01b8152600490fd5b506040925050818101905f5b82518051821015612fc4576112e9612ef283612f7893612e85565b15612fb357612f96612f1d612f91612ef2848751612e85565b6124c4565b612fa257600101612f5d565b8351635140fefd60e11b8152600490fd5b83516323cda06760e01b8152600490fd5b50509150505190565b6040516303501f5960e11b8152600490fd5b506020820151511580612ecb575060408201515115612ecb565b908154905f829160058411613063575b6130149350846132f7565b8061303c57505f905b6001600160d01b03821615611d5b57610ff99160016120d89201611ef5565b61305661304b61305d92611f4a565b835f5260205f200190565b5460301c90565b9061301d565b919261306e81612b8f565b8103908111611cd35761301493855f5265ffffffffffff808360205f20015416908516105f1461309f575091613009565b9291506130ab90611cc5565b90613009565b604051906130be82610d28565b5f6020838281520152565b906130f26130ec613113926130dc6130b1565b506130e56130b1565b5084611ef5565b50612100565b91600165ffffffffffff845116936020828060d01b03910151169101611ef5565b9054906040519261312384610d28565b835260031b1c602082015290565b908082101561313e575090565b905090565b8054600160401b811015610d435761316091600182018155611ef5565b61318b57815160209092015160301b65ffffffffffff191665ffffffffffff92909216919091179055565b634e487b7160e01b5f525f60045260245ffd5b80549293929190821561328b576131ba61216d61304b85611f4a565b906131cb825165ffffffffffff1690565b65ffffffffffff8481169116811061327957611fae9460209488926131f96121f6875165ffffffffffff1690565b0361324157506132339261320f61321a92611f4a565b905f5260205f200190565b9065ffffffffffff82549181199060301b169116179055565b01516001600160d01b031690565b91505061327491613261613253610dae565b65ffffffffffff9093168352565b6001600160d01b03881682860152613143565b613233565b604051632520601d60e01b8152600490fd5b6132af925061329b613253610dae565b6001600160d01b0385166020830152613143565b5f9190565b90808216911860011c8101809111611cd35790565b60ff5f8051602061338f8339815191525460401c16156132e557565b604051631afcd79f60e31b8152600490fd5b905b8383106133065750505090565b90919261331381856132b4565b90835f5265ffffffffffff808360205f20015416908416105f1461333b5750925b91906132f9565b9350600181018091111561333457611c9356fe02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268009b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a2646970667358221220a114ef0ff5b29e345fe4269ee0528960ae4a86d65f802fa8e154dd6b83a6427064736f6c63430008190033","sourceMap":"765:2461:81:-:0;;;;;-1:-1:-1;;;;;765:2461:81;;;;;;;;-1:-1:-1;;765:2461:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;348:4:82;;332:21;;8837:64:25;765:2461:81;;;;;;;7896:76:25;;765:2461:81;;;;;;7985:34:25;7981:146;;-1:-1:-1;525:17:69;;;-1:-1:-1;525:17:69;;-1:-1:-1;552:12:69;;-1:-1:-1;2360:34:76;;2404:28;;-1:-1:-1;2404:28:76;;2442:57;;-1:-1:-1;2442:57:76;;2509:61;;-1:-1:-1;2509:61:76;;1248:40:81;;;;;765:2461;;1352:79;;;;;;;;;;;;;;;;;;;;;;;348:4:82;765:2461:81;;-1:-1:-1;;;;;765:2461:81;;;;;;;;;;;;;;;;;1352:79;;;-1:-1:-1;1352:79:81;;;;;;765:2461;;;;;1298:134;;;765:2461;;1298:134;;765:2461;;1493:76;;;;;;;;;;;;;;;;;;;;;;;348:4:82;765:2461:81;;-1:-1:-1;;;;;765:2461:81;;;;;;;;;;;;;;;;;1493:76;;;-1:-1:-1;1493:76:81;;;;;;1442:128;765:2461;;1442:128;;765:2461;;;;;;;;332:21:82;765:2461:81;;;;525:17:69;765:2461:81;;;;;552:12:69;765:2461:81;;;;;2360:34:76;765:2461:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1493:76;765:2461;;;-1:-1:-1;765:2461:81;;;;;1493:76;765:2461;;;-1:-1:-1;765:2461:81;;;;;-1:-1:-1;765:2461:81;1352:79;765:2461;;;-1:-1:-1;765:2461:81;;;;;7981:146:25;-1:-1:-1;;;;;;765:2461:81;;;;;;;;;8087:29:25;;765:2461:81;;8087:29:25;7981:146;;;;;7896:76;765:2461:81;;-1:-1:-1;;;7938:23:25;;;;;765:2461:81;-1:-1:-1;765:2461:81;;;;;-1:-1:-1;;;;;765:2461:81;;;;;;:::o","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361015610011575f80fd5b5f3560e01c806301ffc9a714610214578063075db0361461020f578063103f29071461020a578063128e5d82146102055780631a80e500146102005780631bf10a3e146101fb57806323f752d5146101f6578063248a9ca3146101f157806325dc9708146101ec5780632dd31000146101e75780632f2ff15d146101e257806336568abe146101dd5780633dfd3873146101d8578063439fab91146101d3578063557cab44146101ce5780636679191e146101c95780637f5a7c7b146101c457806391d14854146101bf5780639b656b22146101ba5780639f86fd85146101b5578063a217fddf146101b0578063bb24fe8a146101ab578063c0cd7c3e146101a6578063d15b740e146101a1578063d547741f1461019c578063e02f693714610197578063e102831a14610192578063e49561ee1461018d578063fbfa77cf14610188578063fd4d447c14610183578063ff54740f1461017e5763ffa1ad7414610179575f80fd5b61108a565b61106d565b61103b565b611014565b610e29565b610de5565b610d02565b610bf1565b610bc7565b610b83565b610b40565b610b26565b610a6c565b610a28565b6109ca565b6109a2565b610968565b61094c565b61080f565b6106e9565b61069e565b610652565b61060e565b6105f1565b6105b8565b61043c565b610407565b61033a565b6102f6565b6102b2565b61026e565b3461026a57602036600319011261026a5760043563ffffffff60e01b811680910361026a57602090637965db0b60e01b8114908115610259575b506040519015158152f35b6301ffc9a760e01b1490505f61024e565b5f80fd5b3461026a575f36600319011261026a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461026a575f36600319011261026a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461026a575f36600319011261026a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461026a575f36600319011261026a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b6001600160a01b0381160361026a57565b6064359065ffffffffffff8216820361026a57565b608090600319011261026a576004356103bc8161037e565b90602435906044356103cd8161037e565b9060643565ffffffffffff8116810361026a5790565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b3461026a5761043861042461041b366103a4565b92919091611168565b6040519182916020835260208301906103e3565b0390f35b3461026a57604036600319011261026a576004356001600160601b038116810361026a576024359061046c611732565b6040516302910f8b60e31b81523360048201526020816024816001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165afa9081156105b3575f91610584575b5015610572576001600160601b03166bffffffffffffffffffffffff193360601b161790806104f6835f52600260205260405f2090565b541461056057610545817fc67e7929681aa1bccd63f52b3799bf5805f3009f197db6fdf584b14f7fbf608c92610534855f52600260205260405f2090565b556040519081529081906020820190565b0390a261055e60015f80516020611bf383398151915255565b005b60405163a741a04560e01b8152600490fd5b6040516323d53b9760e21b8152600490fd5b6105a6915060203d6020116105ac575b61059e8183610c71565b8101906113b9565b5f6104bf565b503d610594565b6110bd565b3461026a57602036600319011261026a576004355f525f80516020611bd38339815191526020526020600160405f200154604051908152f35b3461026a57610438610424610605366103a4565b929190916113f0565b3461026a575f36600319011261026a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461026a57604036600319011261026a5761055e6024356004356106758261037e565b805f525f80516020611bd3833981519152602052610699600160405f200154611761565b611918565b3461026a57604036600319011261026a576024356106bb8161037e565b336001600160a01b038216036106d75761055e9060043561194e565b60405163334bd91960e11b8152600490fd5b3461026a57602036600319011261026a576004356107068161037e565b61070e611732565b335f9081527f9ebbcbe0d2961d3fbe56ca6f679bc753bd848d3e6bb3eaf9041c51b286881d2c60205260409020547fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c9060ff16156107c457506001546001600160a01b039182169181168214610560576001600160a01b03191681176001557f5bbb1d3ebb6a3ad2a0f17ff35e579a83af60604d1d3c2a4c83c62adecadf666d5f80a260015f80516020611bf383398151915255005b6044906040519063e2517d3f60e01b82523360048301526024820152fd5b9181601f8401121561026a578235916001600160401b03831161026a576020838186019501011161026a57565b3461026a57602036600319011261026a576001600160401b0360043581811161026a576108409036906004016107e2565b5f80516020611c13833981519152549260ff8460401c1615931680159081610944575b600114908161093a575b159081610931575b5061091f575f80516020611c13833981519152805467ffffffffffffffff191660011790556108a891836108f657611a16565b6108ae57005b5f80516020611c13833981519152805460ff60401b19169055604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a1005b5f80516020611c13833981519152805460ff60401b191668010000000000000000179055611a16565b60405163f92ee8a960e01b8152600490fd5b9050155f610875565b303b15915061086d565b849150610863565b3461026a575f36600319011261026a576020604051614e208152f35b3461026a575f36600319011261026a5760206040517fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c8152f35b3461026a575f36600319011261026a576001546040516001600160a01b039091168152602090f35b3461026a57604036600319011261026a57602060ff610a1c6024356109ee8161037e565b6004355f525f80516020611bd3833981519152845260405f209060018060a01b03165f5260205260405f2090565b54166040519015158152f35b3461026a575f36600319011261026a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461026a5760408060031936011261026a57600435610a8a8161037e565b602435906001600160401b03821161026a575f8091610ab0610b149436906004016107e2565b908187519283928337810184815203915af43d15610b1c57610b063d610ad581610ca1565b90610ae286519283610c71565b81523d5f602083013e5b8451948593151560208501528084015260608301906103e3565b03601f198101835282610c71565b805190602001fd5b610b066060610aec565b3461026a575f36600319011261026a5760206040515f8152f35b3461026a575f36600319011261026a5760206040516001600160401b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461026a575f36600319011261026a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461026a57602036600319011261026a576004355f526002602052602060405f2054604051908152f35b3461026a57604036600319011261026a5761055e602435600435610c148261037e565b805f525f80516020611bd3833981519152602052610c38600160405f200154611761565b61194e565b634e487b7160e01b5f52604160045260245ffd5b604081019081106001600160401b03821117610c6c57604052565b610c3d565b90601f801991011681019081106001600160401b03821117610c6c57604052565b60405190610c9f82610c51565b565b6001600160401b038111610c6c57601f01601f191660200190565b81601f8201121561026a57803590610cd382610ca1565b92610ce16040519485610c71565b8284526020838301011161026a57815f926020809301838601378301015290565b3461026a5760808060031936011261026a57610d1f60243561037e565b60443565ffffffffffff81160361026a576001600160401b0360643581811161026a57610d50903690600401610cbc565b5060606020604051610d6181610c51565b828152015260605180610d79575b60206040515f8152f35b8281016020821261026a5783519183831161026a5782604091031261026a5760405193610da585610c51565b8281015184811161026a578282610dbe928601016110c8565b855260a083015193841161026a57602093610dda9301016110c8565b9101525f8080610d6f565b3461026a575f36600319011261026a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461026a5760a036600319011261026a57602435600435610e498261037e565b60443591610e5561038f565b90608435906001600160401b03821161026a57610e7760049236908401610cbc565b610e7f611732565b5f54602090610ea490610e98906001600160a01b031681565b6001600160a01b031690565b60405163b134427160e01b815294859182905afa9283156105b3575f93610fe3575b506001600160a01b039283163303610fd1576001546001600160a01b0316838116610f46575b50506040805195865265ffffffffffff909316602086015216927f741a5de99085c0d660f3e4192217b0ffb0ea4e35a0480de48e857a4bc3ee36ed91819081015b0390a361055e60015f80516020611bf383398151915255565b909360405194610f7d86610f6f602082019363724ab0f760e11b8552858c898d602487016115d0565b03601f198101885287610c71565b62042e305a10610fbf575f610f2d938192827f741a5de99085c0d660f3e4192217b0ffb0ea4e35a0480de48e857a4bc3ee36ed9951926203d090f15093610eec565b604051638072475160e01b8152600490fd5b60405163dabc4ad960e01b8152600490fd5b61100691935060203d60201161100d575b610ffe8183610c71565b8101906110a5565b915f610ec6565b503d610ff4565b3461026a575f36600319011261026a575f546040516001600160a01b039091168152602090f35b3461026a57604036600319011261026a57602061106560243561105d8161037e565b600435611608565b604051908152f35b3461026a575f36600319011261026a5760206040516203d0908152f35b3461026a575f36600319011261026a57602060405160018152f35b9081602091031261026a57516110ba8161037e565b90565b6040513d5f823e3d90fd5b81601f8201121561026a578051906110df82610ca1565b926110ed6040519485610c71565b8284526020838301011161026a57815f9260208093018386015e8301015290565b9060208282031261026a5781516001600160401b03811161026a576110ba92016110c8565b906110ba91602081526020611153835160408385015260608401906103e3565b920151906040601f19828503019101526103e3565b604080516309472ec160e11b8152606096956001600160a01b039384169591946020949192917f0000000000000000000000000000000000000000000000000000000000000000169085876004818b5afa9687156105b3575f9761139a575b50845163fbfa77cf60e01b81529686886004818c5afa80156105b357855f9161123b9a839161137d575b508851636a531c3160e11b8082526001600160a01b039586166004830152858916602483015294909116604482015265ffffffffffff909116606482015298899081906084820190565b0381865afa9788156105b3575f98611358575b508686979899600496975196878092621a80e560e81b82525afa9485156105b3575f95611335575b5086519081526001600160a01b03948516600482015293909216602484015260609190911c604483015265ffffffffffff9092166064820152905f9082908180608481015b03915afa9081156105b3575f91611313575b50835115801590611309575b6112e35750505050565b6110ba9394955090610b06916112f7610c92565b95865283860152519384928301611133565b50805115156112d9565b61132f91503d805f833e6113278183610c71565b81019061110e565b5f6112cd565b5f95506113516112bb918a3d8c1161100d57610ffe8183610c71565b9550611276565b8798509661137360049697983d805f833e6113278183610c71565b989796955061124e565b61139491508a3d8c1161100d57610ffe8183610c71565b5f6111f1565b6113b2919750863d881161100d57610ffe8183610c71565b955f6111c7565b9081602091031261026a5751801515810361026a5790565b9081602091031261026a57516001600160401b038116810361026a5790565b604051635d927f4560e11b8082526060969594936001600160a01b03939092909160209190858416908383600481855afa9283156105b3575f936115b1575b506001600160401b039283166114d65750506040516304bb92e160e31b81526001600160a01b0393841660048201526024810194909452505092909216604483015265ffffffffffff9290921660648201529192505f90829060849082907f0000000000000000000000000000000000000000000000000000000000000000165afa9081156105b3575f916114c2575090565b6110ba91503d805f833e6113278183610c71565b839060046040518094819382525afa9081156105b3576001935f92611584575b50501614611505575050505050565b6040516304bb92e160e31b81526001600160a01b039182166004820152602481019290925292909216604483015265ffffffffffff9290921660648201529192505f90829060849082907f0000000000000000000000000000000000000000000000000000000000000000165afa9081156105b3575f916114c2575090565b6115a39250803d106115aa575b61159b8183610c71565b8101906113d1565b5f806114f6565b503d611591565b6115c9919350843d86116115aa5761159b8183610c71565b915f61142f565b919360a0936110ba969565ffffffffffff938552600180871b03166020850152604084015216606082015281608082015201906103e3565b5f546040516308834cb560e21b8082526001600160a01b038581166004840152928316602483015293602092909183816044817f000000000000000000000000000000000000000000000000000000000000000086165afa9081156105b3575f91611715575b501593841561168a575b505050509050611686575f90565b5f90565b6040519586526001600160a01b0392909216600486015260609190911c6024850152909291508290829060449082907f0000000000000000000000000000000000000000000000000000000000000000165afa9182156105b3575f926116f8575b505015805f808080611678565b61170e9250803d106105ac5761059e8183610c71565b5f806116eb565b61172c9150843d86116105ac5761059e8183610c71565b5f61166e565b5f80516020611bf3833981519152600281541461174f5760029055565b604051633ee5aeb560e01b8152600490fd5b5f8181525f80516020611bd38339815191526020908152604080832033845290915290205460ff16156107c45750565b6001600160a01b0381165f9081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d60205260409020545f80516020611bd38339815191529060ff1661183c575f808052602091825260408082206001600160a01b038516835290925220805460ff1916600117905533906001600160a01b03165f7f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d8180a4600190565b50505f90565b6001600160a01b0381165f9081527f9ebbcbe0d2961d3fbe56ca6f679bc753bd848d3e6bb3eaf9041c51b286881d2c602052604090207fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c905f80516020611bd38339815191529060ff905b5416611911575f828152602091825260408082206001600160a01b038616835290925220805460ff1916600117905533916001600160a01b0316907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d5f80a4600190565b5050505f90565b5f8181525f80516020611bd3833981519152602081815260408084206001600160a01b038716855290915290912060ff906118ad565b5f8181525f80516020611bd3833981519152602081815260408084206001600160a01b03871685529091529091205460ff1615611911575f828152602091825260408082206001600160a01b038616835290925220805460ff1916905533916001600160a01b0316907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b5f80a4600190565b91909160408184031261026a5780356119f88161037e565b9260208201356001600160401b03811161026a576110ba9201610cbc565b611a22918101906119e0565b506040516302910f8b60e31b81526001600160a01b0391821660048201819052906020816024817f000000000000000000000000000000000000000000000000000000000000000087165afa9081156105b3575f91611b34575b5015611b2257611aa990611a8e611b53565b60018060a01b03166001600160601b0360a01b5f5416175f55565b611afc6040611ab6611b76565b6020810151600180546001600160a01b0319166001600160a01b0390921691909117905580516001600160a01b0316848116611b12575b5001516001600160a01b031690565b908116611b065750565b611b0f90611842565b50565b611b1b90611791565b505f611aed565b6040516362df054560e01b8152600490fd5b611b4d915060203d6020116105ac5761059e8183610c71565b5f611a7c565b611b5b611ba4565b611b63611ba4565b60015f80516020611bf383398151915255565b60405190606082018281106001600160401b03821117610c6c576040525f6040838281528260208201520152565b60ff5f80516020611c138339815191525460401c1615611bc057565b604051631afcd79f60e31b8152600490fdfe02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268009b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a264697066735822122039dce195144b27a47a4223371e67014a21ca412ee10a9ba4d2d3f9eae39aa3a164736f6c63430008190033","sourceMap":"765:2461:81:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;;;;;-1:-1:-1;;765:2461:81;;;;;;;;;;;;;;;;;;-1:-1:-1;;;3551:47:23;;;:87;;;;765:2461:81;;;;;;;;;;3551:87:23;-1:-1:-1;;;1133:40:29;;-1:-1:-1;3551:87:23;;;765:2461:81;-1:-1:-1;765:2461:81;;;;;;;;-1:-1:-1;;765:2461:81;;;;;;957:56;-1:-1:-1;;;;;765:2461:81;;;;;;;;;;;;-1:-1:-1;;765:2461:81;;;;;;1537:38:76;-1:-1:-1;;;;;765:2461:81;;;;;;;;;;;;-1:-1:-1;;765:2461:81;;;;;;1632:54:76;-1:-1:-1;;;;;765:2461:81;;;;;;;;;;;;-1:-1:-1;;765:2461:81;;;;;;1743:56:76;-1:-1:-1;;;;;765:2461:81;;;;;;;-1:-1:-1;;;;;765:2461:81;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;765:2461:81;;;;;;;;-1:-1:-1;;765:2461:81;;;;:::o;:::-;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;765:2461:81;;;;;;-1:-1:-1;;;;;765:2461:81;;;;;;;;3217:103:28;;;:::i;:::-;765:2461:81;;-1:-1:-1;;;4285:48:76;;4322:10;765:2461:81;4285:48:76;;765:2461:81;;;;;-1:-1:-1;;;;;4295:16:76;765:2461:81;4285:48:76;;;;;;;-1:-1:-1;4285:48:76;;;765:2461:81;4284:49:76;;4280:99;;-1:-1:-1;;;;;765:2461:81;-1:-1:-1;;4322:10:76;297:2:88;765:2461:81;;267:46:88;4459:27:76;;;;765:2461:81;;4459:15:76;765:2461:81;;;;;;;4459:27:76;765:2461:81;4459:37:76;4455:87;;4654:38;4552:27;4654:38;4552:27;;;765:2461:81;;4459:15:76;765:2461:81;;;;;;;4552:27:76;765:2461:81;;;;;;;;;;;;;;4654:38:76;;;;3282:1:28;1805;-1:-1:-1;;;;;;;;;;;765:2461:81;3716:283:28;3282:1;765:2461:81;4455:87:76;765:2461:81;;-1:-1:-1;;;4519:12:76;;765:2461:81;;4519:12:76;4280:99;765:2461:81;;-1:-1:-1;;;4356:12:76;;765:2461:81;;4356:12:76;4285:48;;;;765:2461:81;4285:48:76;765:2461:81;4285:48:76;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;:::i;765:2461:81:-;;;;;;-1:-1:-1;;765:2461:81;;;;;;-1:-1:-1;765:2461:81;-1:-1:-1;;;;;;;;;;;765:2461:81;;;4919:24:23;765:2461:81;-1:-1:-1;765:2461:81;4919:24:23;765:2461:81;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;-1:-1:-1;;765:2461:81;;;;;;322:32:69;-1:-1:-1;;;;;765:2461:81;;;;;;;;;;;;-1:-1:-1;;765:2461:81;;;;5350:25:23;765:2461:81;;;;;;;:::i;:::-;;-1:-1:-1;765:2461:81;-1:-1:-1;;;;;;;;;;;765:2461:81;;3202:4:23;4919:24;765:2461:81;-1:-1:-1;765:2461:81;4919:24:23;765:2461:81;3202:4:23;:::i;:::-;5350:25;:::i;765:2461:81:-;;;;;;-1:-1:-1;;765:2461:81;;;;;;;;;:::i;:::-;966:10:27;-1:-1:-1;;;;;765:2461:81;;6441:34:23;6437:102;;6549:37;765:2461:81;;;6549:37:23;:::i;6437:102::-;765:2461:81;;-1:-1:-1;;;6498:30:23;;765:2461:81;;6498:30:23;765:2461:81;;;;;;-1:-1:-1;;765:2461:81;;;;;;;;;:::i;:::-;3217:103:28;;:::i;:::-;966:10:27;-1:-1:-1;765:2461:81;;;;;;;;;;1356:26:76;;765:2461:81;;4468:23:23;4464:108;;-1:-1:-1;4861:4:76;765:2461:81;-1:-1:-1;;;;;765:2461:81;;;;;;4861:13:76;;4857:63;;-1:-1:-1;;;;;;765:2461:81;;;4861:4:76;765:2461:81;4958:14:76;-1:-1:-1;;4958:14:76;4861:4;-1:-1:-1;;;;;;;;;;;765:2461:81;;4464:108:23;765:2461:81;;;;4514:47:23;;;;;;966:10:27;765:2461:81;4514:47:23;;765:2461:81;;;;;4514:47:23;765:2461:81;;;;;;;;;;;;;-1:-1:-1;;;;;765:2461:81;;;;;;;;;;;;;;;:::o;:::-;;;;;;-1:-1:-1;;765:2461:81;;;;-1:-1:-1;;;;;765:2461:81;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;765:2461:81;;;;;;;4301:16:25;765:2461:81;;4726:16:25;;:34;;;;765:2461:81;4805:1:25;4790:16;:50;;;;765:2461:81;4855:13:25;:30;;;;765:2461:81;4851:91:25;;;-1:-1:-1;;;;;;;;;;;765:2461:81;;-1:-1:-1;;765:2461:81;;;;;718:4:69;;4951:18:25;4979:67;;718:4:69;:::i;:::-;5066:101:25;;765:2461:81;5066:101:25;-1:-1:-1;;;;;;;;;;;765:2461:81;;-1:-1:-1;;;;765:2461:81;;;;;-1:-1:-1;765:2461:81;;5142:14:25;;765:2461:81;;5142:14:25;765:2461:81;4979:67:25;-1:-1:-1;;;;;;;;;;;765:2461:81;;-1:-1:-1;;;;765:2461:81;;;;;718:4:69;:::i;4851:91:25:-;765:2461:81;;-1:-1:-1;;;4908:23:25;;765:2461:81;;4908:23:25;4855:30;4872:13;;;4855:30;;;4790:50;4818:4;4810:25;:30;;-1:-1:-1;4790:50:25;;4726:34;;;-1:-1:-1;4726:34:25;;765:2461:81;;;;;;-1:-1:-1;;765:2461:81;;;;;;;1253:6:76;765:2461:81;;;;;;;;;-1:-1:-1;;765:2461:81;;;;;;;1356:26:76;765:2461:81;;;;;;;;;-1:-1:-1;;765:2461:81;;;;;;;;-1:-1:-1;;;;;765:2461:81;;;;;;;;;;;;;;-1:-1:-1;;765:2461:81;;;;;;3901:31:23;765:2461:81;;;;;:::i;:::-;;;-1:-1:-1;765:2461:81;-1:-1:-1;;;;;;;;;;;765:2461:81;;;-1:-1:-1;765:2461:81;;;;;;;;;;;;;;;;;3901:31:23;765:2461:81;;;;;;;;;;;;;;;;-1:-1:-1;;765:2461:81;;;;;;906:45;-1:-1:-1;;;;;765:2461:81;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;765:2461:81;;;;-1:-1:-1;765:2461:81;;;477:31:75;765:2461:81;;;;;;:::i;:::-;;;;;;;;;;;;;;;416:25:75;;;;765:2461:81;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;-1:-1:-1;765:2461:81;;;;;;;;;;;;;477:31:75;;765:2461:81;;;;;;;;;;:::i;:::-;477:31:75;765:2461:81;;477:31:75;;;;;;:::i;:::-;518:79;;;765:2461:81;518:79:75;;765:2461:81;;;;;;;;;;;-1:-1:-1;;765:2461:81;;;;;;;;;;;;;;;;;-1:-1:-1;;765:2461:81;;;;;;;-1:-1:-1;;;;;404:28:69;765:2461:81;;;;;;;;;;-1:-1:-1;;765:2461:81;;;;;;1439:41:76;-1:-1:-1;;;;;765:2461:81;;;;;;;;;;;;-1:-1:-1;;765:2461:81;;;;;;-1:-1:-1;765:2461:81;2009:67:76;765:2461:81;;;;-1:-1:-1;765:2461:81;;;;;;;;;;;;;;-1:-1:-1;;765:2461:81;;;;5767:26:23;765:2461:81;;;;;;;:::i;:::-;;-1:-1:-1;765:2461:81;-1:-1:-1;;;;;;;;;;;765:2461:81;;3202:4:23;4919:24;765:2461:81;-1:-1:-1;765:2461:81;4919:24:23;765:2461:81;3202:4:23;:::i;:::-;5767:26;:::i;765:2461:81:-;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;765:2461:81;;;;;;;:::o;:::-;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;765:2461:81;;;;;;;:::o;:::-;;;;;;;:::i;:::-;:::o;:::-;-1:-1:-1;;;;;765:2461:81;;;;;;-1:-1:-1;;765:2461:81;;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;765:2461:81;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;765:2461:81;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;3086:20:76;3082:107;;765:2461:81;;;;-1:-1:-1;765:2461:81;;;3082:107:76;3139:39;;;765:2461:81;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;3082:107:76;;;;;765:2461:81;;;;;;-1:-1:-1;;765:2461:81;;;;;;1019:53;-1:-1:-1;;;;;765:2461:81;;;;;;;;;;;;-1:-1:-1;;765:2461:81;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;-1:-1:-1;;;;;765:2461:81;;;;;;;;;;;;:::i;:::-;3217:103:28;;:::i;:::-;-1:-1:-1;765:2461:81;;;5246:21:76;;:13;;-1:-1:-1;;;;;765:2461:81;5246:13:76;765:2461:81;;-1:-1:-1;;;;;765:2461:81;;;5246:21:76;765:2461:81;;-1:-1:-1;;;5246:23:76;;765:2461:81;;;;;5246:23:76;;;;;;;-1:-1:-1;5246:23:76;;;765:2461:81;-1:-1:-1;;;;;;765:2461:81;;;5232:10:76;:37;5228:87;;5341:4;765:2461:81;-1:-1:-1;;;;;765:2461:81;;;;5355:469:76;;765:2461:81;-1:-1:-1;;765:2461:81;;;;;;;;;;;;;;;;5839:55:76;;765:2461:81;;;;5839:55:76;;;;3282:1:28;1805;-1:-1:-1;;;;;;;;;;;765:2461:81;3716:283:28;5355:469:76;765:2461:81;;;;5435:94:76;;;;765:2461:81;5435:94:76;;;;;;;;;;;;765:2461:81;5435:94:76;;;:::i;:::-;;765:2461:81;;5435:94:76;;;;;;:::i;:::-;765:2461:81;5548:9:76;:51;5544:118;;-1:-1:-1;5839:55:76;5676:138;;;;5839:55;5676:138;;;1150:7;5676:138;;5355:469;;;5544:118;765:2461:81;;-1:-1:-1;;;5626:21:76;;765:2461:81;;5626:21:76;5228:87;765:2461:81;;-1:-1:-1;;;5292:12:76;;765:2461:81;;5292:12:76;5246:23;;;;;765:2461:81;5246:23:76;765:2461:81;5246:23:76;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;765:2461:81;;;;;;-1:-1:-1;;765:2461:81;;;;;;;;-1:-1:-1;;;;;765:2461:81;;;;;;;;;;;;;;-1:-1:-1;;765:2461:81;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;765:2461:81;;;;;;;1150:7:76;765:2461:81;;;;;;;;;-1:-1:-1;;765:2461:81;;;;;;;2700:1:76;765:2461:81;;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;765:2461:81;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;;;;765:2461:81;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;2213:1011::-;765:2461;;;-1:-1:-1;;;2498:56:81;;765:2461;;2213:1011;-1:-1:-1;;;;;765:2461:81;;;;;;2498:56;;2213:1011;;;2453:20;765:2461;;2498:56;765:2461;2498:56;765:2461;;2498:56;;;;;;;;;;;2213:1011;-1:-1:-1;765:2461:81;;-1:-1:-1;;;2590:32:81;;765:2461;2590:32;765:2461;2498:56;765:2461;2590:32;;;;;;;;2498:56;2590:32;2435:220;2590:32;;;;;2213:1011;-1:-1:-1;765:2461:81;;-1:-1:-1;;;2435:220:81;;;-1:-1:-1;;;;;765:2461:81;;;2498:56;2435:220;;765:2461;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2435:220;;;;;;;;;;;2498:56;2435:220;;;2213:1011;765:2461;;;;;;2498:56;765:2461;;;;;;;;;;2768:58;;;;;;;;;2498:56;2768:58;;;2213:1011;-1:-1:-1;765:2461:81;;2705:174;;;-1:-1:-1;;;;;765:2461:81;;;2498:56;2705:174;;765:2461;;;;;;;;;;;;;;;;;;;;;;;;;;;2498:56;;765:2461;;;;;;;2705:174;;;;;;;;;;2498:56;2705:174;;;2213:1011;765:2461;;;2894:34;;;:74;;;2213:1011;2890:328;;2213:1011;;;;:::o;2890:328::-;2991:216;765:2461;;;;;2991:216;765:2461;;;:::i;:::-;;;;3019:174;;;765:2461;;2991:216;;;;;;:::i;2894:74::-;765:2461;;;2932:36;;2894:74;;2705:174;;;;;;2498:56;2705:174;;;;;;:::i;:::-;;;;;:::i;:::-;;;;2768:58;2498:56;2768:58;;;2705:174;2768:58;;;;;;;;;;;:::i;:::-;;;;;2435:220;;;;;;2498:56;2435:220;;;;;2498:56;2435:220;;;;;;:::i;:::-;;;;;;;;2590:32;;;;;;;;;;;;;;:::i;:::-;;;;2498:56;;;;;;;;;;;;;;;:::i;:::-;;;;;765:2461;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;-1:-1:-1;;;;;765:2461:81;;;;;;;:::o;1583:624::-;765:2461;;-1:-1:-1;;;1765:31:81;;;765:2461;;1583:624;;;-1:-1:-1;;;;;765:2461:81;1583:624;;;;1765:31;;765:2461;;;;;1765:31;765:2461;1765:31;765:2461;;1765:31;;;;;;;;;;;1583:624;-1:-1:-1;;;;;;765:2461:81;;;;;-1:-1:-1;;765:2461:81;;-1:-1:-1;;;1824:146:81;;-1:-1:-1;;;;;765:2461:81;;;1765:31;1824:146;;765:2461;;;;;;;;-1:-1:-1;;765:2461:81;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;765:2461:81;;;;;;1853:31;765:2461;1824:146;;;;;;;1765:31;1824:146;;;1817:153;;:::o;1824:146::-;;;;;;1765:31;1824:146;;;;;;:::i;1761:440::-;765:2461;;1765:31;765:2461;;1991:31;;;;;;;;;;;;;2026:1;1991:31;1765;1991;;;1761:440;765:2461;;;1991:36;1987:214;;1761:440;;;;;1583:624::o;1987:214::-;765:2461;;-1:-1:-1;;;2050:140:81;;-1:-1:-1;;;;;765:2461:81;;;1765:31;2050:140;;765:2461;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;765:2461:81;;;;;;2076:28;765:2461;2050:140;;;;;;;1765:31;2050:140;;;2043:147;;:::o;1991:31::-;;;;;;-1:-1:-1;1991:31:81;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;1765;;;;;;;;;;;;;;;:::i;:::-;;;;;765:2461;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;3740:389:76:-;3918:5;765:2461:81;;;-1:-1:-1;;;3853:71:76;;;-1:-1:-1;;;;;765:2461:81;;;3853:71:76;;;765:2461:81;;;;;;;;;3853:71:76;;765:2461:81;;3853:71:76;765:2461:81;;;3867:29:76;765:2461:81;;3853:71:76;;;;;;;3918:5;3853:71;;;3740:389;3852:72;;765:2461:81;;;3852:181:76;;3740:389;3835:242;;;;;;;;3918:5;3740:389;:::o;3835:242::-;3918:5;4058:8;:::o;3852:181::-;765:2461:81;;3945:88:76;;;-1:-1:-1;;;;;765:2461:81;;;;3853:71:76;3945:88;;765:2461:81;467:2:88;765:2461:81;;;;;;;;;;;-1:-1:-1;765:2461:81;;;;;;;;3959:31:76;765:2461:81;3945:88:76;;;;;;;3918:5;3945:88;;;3852:181;3944:89;;;3852:181;;;;;;;3945:88;;;;;;-1:-1:-1;3945:88:76;;;;;;:::i;:::-;;;;;3853:71;;;;;;;;;;;;;;:::i;:::-;;;;3326:384:28;-1:-1:-1;;;;;;;;;;;1847:1:28;765:2461:81;;3526:20:28;3522:88;;1847:1;765:2461:81;;3326:384:28:o;3522:88::-;765:2461:81;;-1:-1:-1;;;3569:30:28;;;;;4148:103:23;-1:-1:-1;765:2461:81;;;-1:-1:-1;;;;;;;;;;;765:2461:81;;;;;;;;966:10:27;765:2461:81;;;;;;;;;;4468:23:23;4464:108;;4148:103;:::o;7270:387::-;-1:-1:-1;;;;;765:2461:81;;-1:-1:-1;765:2461:81;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2887:71:23;765:2461:81;;;;-1:-1:-1;765:2461:81;;;;;;;;;;;-1:-1:-1;;;;;765:2461:81;;;;;;;;;;-1:-1:-1;;765:2461:81;7509:4:23;765:2461:81;;;966:10:27;;-1:-1:-1;;;;;765:2461:81;-1:-1:-1;7532:40:23;-1:-1:-1;;7532:40:23;7509:4;7586:11;:::o;7432:219::-;7628:12;;-1:-1:-1;7628:12:23;:::o;7270:387::-;-1:-1:-1;;;;;765:2461:81;;-1:-1:-1;765:2461:81;;;;;;;;;1356:26:76;;-1:-1:-1;;;;;;;;;;;2887:71:23;765:2461:81;;3901:31:23;765:2461:81;;;;-1:-1:-1;765:2461:81;;;;;;;;;;;-1:-1:-1;;;;;765:2461:81;;;;;;;;;;-1:-1:-1;;765:2461:81;7509:4:23;765:2461:81;;;966:10:27;;-1:-1:-1;;;;;765:2461:81;;7532:40:23;-1:-1:-1;;7532:40:23;7509:4;7586:11;:::o;7432:219::-;7628:12;;;-1:-1:-1;7628:12:23;:::o;7270:387::-;-1:-1:-1;765:2461:81;;;-1:-1:-1;;;;;;;;;;;765:2461:81;;;;;;;;-1:-1:-1;;;;;765:2461:81;;;;;;;;;;;;3901:31:23;765:2461:81;7892:388:23;-1:-1:-1;765:2461:81;;;-1:-1:-1;;;;;;;;;;;765:2461:81;;;;;;;;-1:-1:-1;;;;;765:2461:81;;;;;;;;;;;;;;;;-1:-1:-1;765:2461:81;;;;;;;;;;;-1:-1:-1;;;;;765:2461:81;;;;;;;;;;-1:-1:-1;;765:2461:81;;;966:10:27;;-1:-1:-1;;;;;765:2461:81;;8155:40:23;-1:-1:-1;;8155:40:23;765:2461:81;8209:11:23;:::o;765:2461:81:-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;765:2461:81;;;;;;;;:::i;5907:716:76:-;6030:34;5907:716;6030:34;;;;:::i;:::-;-1:-1:-1;765:2461:81;;-1:-1:-1;;;6080:41:76;;-1:-1:-1;;;;;765:2461:81;;;6080:41:76;;;765:2461:81;;;;6080:41:76;765:2461:81;;;6090:13:76;765:2461:81;;6080:41:76;;;;;;;-1:-1:-1;6080:41:76;;;5907:716;6079:42;;6075:90;;6210:14;2540:111:28;;;:::i;:::-;765:2461:81;;;;;;-1:-1:-1;;;;;765:2461:81;;-1:-1:-1;765:2461:81;;;-1:-1:-1;765:2461:81;;6210:14:76;765:2461:81;;;;:::i;:::-;6080:41:76;6311:15;;765:2461:81;;;;-1:-1:-1;;;;;;765:2461:81;-1:-1:-1;;;;;765:2461:81;;;;;;;;;;;-1:-1:-1;;;;;765:2461:81;;;;6337:143:76;;5907:716;-1:-1:-1;6493:28:76;765:2461:81;-1:-1:-1;;;;;765:2461:81;;;;;;;6489:128:76;;5907:716;:::o;6489:128::-;6551:55;;;:::i;:::-;;5907:716::o;6337:143::-;6404:65;;;:::i;:::-;;6337:143;;;6075:90;765:2461:81;;-1:-1:-1;;;6144:10:76;;6080:41;;6144:10;6080:41;;;;;;;;;;;;;;:::i;:::-;;;;6893:76:25;;;:::i;:::-;;;:::i;:::-;1805:1:28;-1:-1:-1;;;;;;;;;;;765:2461:81;6893:76:25:o;765:2461:81:-;;;;;;;;;;-1:-1:-1;;;;;765:2461:81;;;;;;;-1:-1:-1;765:2461:81;;;;;;;;;;;;:::o;7084:141:25:-;765:2461:81;-1:-1:-1;;;;;;;;;;;765:2461:81;;;;7150:18:25;7146:73;;7084:141::o;7146:73::-;765:2461:81;;-1:-1:-1;;;7191:17:25;;;;","linkReferences":{},"immutableReferences":{"57808":[{"start":1571,"length":32}],"57811":[{"start":2911,"length":32}],"58762":[{"start":1167,"length":32},{"start":2968,"length":32}],"58765":[{"start":711,"length":32},{"start":6731,"length":32}],"58768":[{"start":779,"length":32},{"start":5693,"length":32}],"58771":[{"start":847,"length":32},{"start":5819,"length":32}],"61081":[{"start":2621,"length":32},{"start":4496,"length":32}],"61083":[{"start":643,"length":32},{"start":5263,"length":32}],"61085":[{"start":3578,"length":32},{"start":5457,"length":32}]}},"methodIdentifiers":{"DEFAULT_ADMIN_ROLE()":"a217fddf","FACTORY()":"2dd31000","FULL_RESTAKE_DELEGATOR_HINTS()":"e102831a","HOOK_GAS_LIMIT()":"ff54740f","HOOK_RESERVE()":"557cab44","HOOK_SET_ROLE()":"6679191e","NETWORK_REGISTRY()":"c0cd7c3e","NETWORK_RESTAKE_DELEGATOR_HINTS()":"075db036","OPERATOR_NETWORK_OPT_IN_SERVICE()":"1a80e500","OPERATOR_VAULT_OPT_IN_SERVICE()":"128e5d82","OPT_IN_SERVICE_HINTS()":"9b656b22","TYPE()":"bb24fe8a","VAULT_FACTORY()":"103f2907","VERSION()":"ffa1ad74","getRoleAdmin(bytes32)":"248a9ca3","grantRole(bytes32,address)":"2f2ff15d","hasRole(bytes32,address)":"91d14854","hook()":"7f5a7c7b","initialize(bytes)":"439fab91","maxNetworkLimit(bytes32)":"d15b740e","onSlash(bytes32,address,uint256,uint48,bytes)":"e49561ee","renounceRole(bytes32,address)":"36568abe","revokeRole(bytes32,address)":"d547741f","setHook(address)":"3dfd3873","setMaxNetworkLimit(uint96,uint256)":"23f752d5","stake(bytes32,address)":"fd4d447c","stakeAt(bytes32,address,uint48,bytes)":"e02f6937","stakeBaseHints(address,bytes32,address,uint48)":"1bf10a3e","stakeHints(address,bytes32,address,uint48)":"25dc9708","staticDelegateCall(address,bytes)":"9f86fd85","supportsInterface(bytes4)":"01ffc9a7","vault()":"fbfa77cf"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"optInServiceHints\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"vaultHints_\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"AccessControlBadConfirmation\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"neededRole\",\"type\":\"bytes32\"}],\"name\":\"AccessControlUnauthorizedAccount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AlreadySet\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ExternalCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientHookGas\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotNetwork\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotSlasher\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotVault\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ReentrancyGuardReentrantCall\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint48\",\"name\":\"captureTimestamp\",\"type\":\"uint48\"}],\"name\":\"OnSlash\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"previousAdminRole\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"newAdminRole\",\"type\":\"bytes32\"}],\"name\":\"RoleAdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleRevoked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"hook\",\"type\":\"address\"}],\"name\":\"SetHook\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"SetMaxNetworkLimit\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DEFAULT_ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"FACTORY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"FULL_RESTAKE_DELEGATOR_HINTS\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"HOOK_GAS_LIMIT\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"HOOK_RESERVE\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"HOOK_SET_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"NETWORK_REGISTRY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"NETWORK_RESTAKE_DELEGATOR_HINTS\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"OPERATOR_NETWORK_OPT_IN_SERVICE\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"OPERATOR_VAULT_OPT_IN_SERVICE\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"OPT_IN_SERVICE_HINTS\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"TYPE\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"VAULT_FACTORY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"VERSION\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleAdmin\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"grantRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"hook\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"}],\"name\":\"maxNetworkLimit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint48\",\"name\":\"captureTimestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"onSlash\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"callerConfirmation\",\"type\":\"address\"}],\"name\":\"renounceRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"hook_\",\"type\":\"address\"}],\"name\":\"setHook\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint96\",\"name\":\"identifier\",\"type\":\"uint96\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"setMaxNetworkLimit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"stake\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hints\",\"type\":\"bytes\"}],\"name\":\"stakeAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"}],\"name\":\"stakeBaseHints\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"}],\"name\":\"stakeHints\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"staticDelegateCall\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"vault\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"AccessControlBadConfirmation()\":[{\"details\":\"The caller of a function is not the expected one. NOTE: Don't confuse with {AccessControlUnauthorizedAccount}.\"}],\"AccessControlUnauthorizedAccount(address,bytes32)\":[{\"details\":\"The `account` is missing a role.\"}],\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"ReentrancyGuardReentrantCall()\":[{\"details\":\"Unauthorized reentrant call.\"}]},\"events\":{\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"OnSlash(bytes32,address,uint256,uint48)\":{\"params\":{\"amount\":\"amount of the collateral to be slashed\",\"captureTimestamp\":\"time point when the stake was captured\",\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"}},\"RoleAdminChanged(bytes32,bytes32,bytes32)\":{\"details\":\"Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole` `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite {RoleAdminChanged} not being emitted signaling this.\"},\"RoleGranted(bytes32,address,address)\":{\"details\":\"Emitted when `account` is granted `role`. `sender` is the account that originated the contract call, an admin role bearer except when using {AccessControl-_setupRole}.\"},\"RoleRevoked(bytes32,address,address)\":{\"details\":\"Emitted when `account` is revoked `role`. `sender` is the account that originated the contract call: - if using `revokeRole`, it is the admin role bearer - if using `renounceRole`, it is the role bearer (i.e. `account`)\"},\"SetHook(address)\":{\"params\":{\"hook\":\"address of the hook\"}},\"SetMaxNetworkLimit(bytes32,uint256)\":{\"params\":{\"amount\":\"new maximum subnetwork's limit (how much stake the subnetwork is ready to get)\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"}}},\"kind\":\"dev\",\"methods\":{\"VERSION()\":{\"details\":\"Must return 1 for this one.\",\"returns\":{\"_0\":\"version of the delegator\"}},\"getRoleAdmin(bytes32)\":{\"details\":\"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}.\"},\"grantRole(bytes32,address)\":{\"details\":\"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event.\"},\"hasRole(bytes32,address)\":{\"details\":\"Returns `true` if `account` has been granted `role`.\"},\"initialize(bytes)\":{\"params\":{\"data\":\"some data to use\"}},\"onSlash(bytes32,address,uint256,uint48,bytes)\":{\"details\":\"Only the vault's slasher can call this function.\",\"params\":{\"amount\":\"amount of the collateral slashed\",\"captureTimestamp\":\"time point when the stake was captured\",\"data\":\"some additional data\",\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"}},\"renounceRole(bytes32,address)\":{\"details\":\"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `callerConfirmation`. May emit a {RoleRevoked} event.\"},\"revokeRole(bytes32,address)\":{\"details\":\"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event.\"},\"setHook(address)\":{\"details\":\"Only a HOOK_SET_ROLE holder can call this function. The hook can have arbitrary logic under certain functions, however, it doesn't affect the stake guarantees.\",\"params\":{\"hook\":\"address of the hook\"}},\"setMaxNetworkLimit(uint96,uint256)\":{\"details\":\"Only a network can call this function.\",\"params\":{\"amount\":\"new maximum subnetwork's limit\"}},\"stake(bytes32,address)\":{\"details\":\"Warning: this function is not safe to use for stake capturing, as it can change by the end of the block.\",\"params\":{\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"},\"returns\":{\"_0\":\"slashable stake until the end of the next epoch\"}},\"stakeAt(bytes32,address,uint48,bytes)\":{\"details\":\"Warning: it is not safe to use timestamp >= current one for the stake capturing, as it can change later.\",\"params\":{\"hints\":\"hints for the checkpoints' indexes\",\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\",\"timestamp\":\"time point to capture the stake at\"},\"returns\":{\"_0\":\"slashable stake at the given timestamp until the end of the consequent epoch\"}},\"staticDelegateCall(address,bytes)\":{\"details\":\"It allows to use this contract's storage on-chain.\",\"params\":{\"data\":\"data to make a delegatecall with\",\"target\":\"address of the contract to make a delegatecall to\"}},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"}},\"version\":1},\"userdoc\":{\"events\":{\"OnSlash(bytes32,address,uint256,uint48)\":{\"notice\":\"Emitted when a slash happens.\"},\"SetHook(address)\":{\"notice\":\"Emitted when a hook is set.\"},\"SetMaxNetworkLimit(bytes32,uint256)\":{\"notice\":\"Emitted when a subnetwork's maximum limit is set.\"}},\"kind\":\"user\",\"methods\":{\"FACTORY()\":{\"notice\":\"Get the factory's address.\"},\"HOOK_GAS_LIMIT()\":{\"notice\":\"Get a gas limit for the hook.\"},\"HOOK_RESERVE()\":{\"notice\":\"Get a reserve gas between the gas limit check and the hook's execution.\"},\"HOOK_SET_ROLE()\":{\"notice\":\"Get a hook setter's role.\"},\"NETWORK_REGISTRY()\":{\"notice\":\"Get the network registry's address.\"},\"OPERATOR_NETWORK_OPT_IN_SERVICE()\":{\"notice\":\"Get the operator-network opt-in service's address.\"},\"OPERATOR_VAULT_OPT_IN_SERVICE()\":{\"notice\":\"Get the operator-vault opt-in service's address.\"},\"TYPE()\":{\"notice\":\"Get the entity's type.\"},\"VAULT_FACTORY()\":{\"notice\":\"Get the vault factory's address.\"},\"VERSION()\":{\"notice\":\"Get a version of the delegator (different versions mean different interfaces).\"},\"hook()\":{\"notice\":\"Get the hook's address.\"},\"initialize(bytes)\":{\"notice\":\"Initialize this entity contract by using a given data.\"},\"maxNetworkLimit(bytes32)\":{\"notice\":\"Get a particular subnetwork's maximum limit (meaning the subnetwork is not ready to get more as a stake).\"},\"onSlash(bytes32,address,uint256,uint48,bytes)\":{\"notice\":\"Called when a slash happens.\"},\"setHook(address)\":{\"notice\":\"Set a new hook.\"},\"setMaxNetworkLimit(uint96,uint256)\":{\"notice\":\"Set a maximum limit for a subnetwork (how much stake the subnetwork is ready to get). identifier identifier of the subnetwork\"},\"stake(bytes32,address)\":{\"notice\":\"Get a stake that a given subnetwork will be able to slash for a certain operator until the end of the next epoch (if no cross-slashing and no slashings by the subnetwork).\"},\"stakeAt(bytes32,address,uint48,bytes)\":{\"notice\":\"Get a stake that a given subnetwork could be able to slash for a certain operator at a given timestamp until the end of the consequent epoch using hints (if no cross-slashing and no slashings by the subnetwork).\"},\"staticDelegateCall(address,bytes)\":{\"notice\":\"Make a delegatecall from this contract to a given target contract with a particular data (always reverts with a return data).\"},\"vault()\":{\"notice\":\"Get the vault's address.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/contracts/hints/DelegatorHints.sol\":\"BaseDelegatorHints\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol\":{\"keccak256\":\"0x6662ec4e5cefca03eeadd073e9469df8d2944bb2ee8ec8f7622c2c46aab5f225\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4d8544c6f8daa4d1bc215c6a72fe0acdb748664a105b0e5efc19295667521d45\",\"dweb:/ipfs/QmdGWqdnXT8S3RgCR6aV8XHZrsybieMQLLnug1NtpSjEXN\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0xc163fcf9bb10138631a9ba5564df1fa25db9adff73bd9ee868a8ae1858fe093a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9706d43a0124053d9880f6e31a59f31bc0a6a3dc1acd66ce0a16e1111658c5f6\",\"dweb:/ipfs/QmUFmfowzkRwGtDu36cXV9SPTBHJ3n7dG9xQiK5B28jTf2\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609\",\"dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9\",\"dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardUpgradeable.sol\":{\"keccak256\":\"0xb44e086e941292cdc7f440de51478493894ef0b1aeccb0c4047445919f667f74\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://942dad22fbdc1669f025540ba63aa3ccfad5f8458fc5d4525b31ebf272e7af45\",\"dweb:/ipfs/Qmdo4X2M82aM3AMoW2kf2jhYkSCyC4T1pHNd6obdsDFnAB\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol\":{\"keccak256\":\"0xdaba3f7c42c55b2896353f32bd27d4d5f8bae741b3b05d4c53f67abc4dc47ce8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1fa2e61141c602510bcd2cd936ed9561922ac8772a9b9c9a9db091a74e354a45\",\"dweb:/ipfs/QmcHQDDoEBwJmwUbzoVkytvJsBx3KVHYFFnDkvRGWh9Wmh\"]},\"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0xb6b36edd6a2999fd243ff226d6cbf84bd71af2432bbd0dfe19392996a1d9cb41\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1fd2f35495652e57e3f99bc6c510bc5f7dd398a176ea2e72d8ed730aebc6ca26\",\"dweb:/ipfs/QmTQV6X4gkikTib49cho5iDX3JvSQbdsoEChoDwrk3CbbH\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC1271.sol\":{\"keccak256\":\"0x85a45f3f10014a0f8be41157a32b6a5f905753ea64a4b64e29fc12b7deeecf39\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c3c74009ce36136b36c77c23935b8e4a7b4f253be2da2be4fb4a916b1ce43743\",\"dweb:/ipfs/QmcH36v3iN7SJJuF73AunLR2LtNxhVJ1wm63ph4dPZ4pcL\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC5267.sol\":{\"keccak256\":\"0x92aa1df62dc3d33f1656d63bede0923e0df0b706ad4137c8b10b0a8fe549fd92\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c5c0f29195ad64cbe556da8e257dac8f05f78c53f90323c0d2accf8e6922d33a\",\"dweb:/ipfs/QmQ61TED8uaCZwcbh8KkgRSsCav7x7HbcGHwHts3U4DmUP\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c\",\"dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0x6008dabfe393240d73d7dd7688033f72740d570aa422254d29a7dce8568f3aff\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f5196ec75139918c6c7bb4251b36395e668f1fa6d206beba7e7520e74913940d\",\"dweb:/ipfs/QmSyqjksXxmm2mCG6qRd1yuwLykypkSVBbnBnGqJRcuJMi\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x37bb49513c49c87c4642a891b13b63571bc87013dde806617aa1efb54605f386\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b3036b3a83b7c48f96641f2a9002b9f2dcb6a5958dd670894ada21ae8229b3d0\",\"dweb:/ipfs/QmUNfSBdoVtjhETaUJCYcaC7pTMgbhht926tJ2uXJbiVd3\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0xaf28a975a78550e45f65e559a3ad6a5ad43b9b8a37366999abd1b7084eb70721\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b7bd24e224f67f65bfadf85dc2929fa965456bb2415478bd0125471b5ce35245\",\"dweb:/ipfs/QmRaydGr8BTHs1kvaZfsNU69pKzUAGFrvABn1KiRSbE51y\"]},\"lib/openzeppelin-contracts/contracts/utils/ShortStrings.sol\":{\"keccak256\":\"0x18a7171df639a934592915a520ecb97c5bbc9675a1105607aac8a94e72bf62c6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7478e1f13da69a2867ccd883001d836b75620362e743f196376d63ed0c422a1c\",\"dweb:/ipfs/QmWywcQ9TNfwtoqAxbn25d8C5VrV12PrPS9UjtGe6pL2BA\"]},\"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0x32ba59b4b7299237c8ba56319110989d7978a039faf754793064e967e5894418\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1ae50c8b562427df610cc4540c9bf104acca7ef8e2dcae567ae7e52272281e9c\",\"dweb:/ipfs/QmTHiadFCSJUPpRjNegc5SahmeU8bAoY8i9Aq6tVscbcKR\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0x55f102ea785d8399c0e58d1108e2d289506dde18abc6db1b7f68c1f9f9bc5792\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e52e0a7765c943ef14e5bcf11e46e6139fa044be564881378349236bf2e3453\",\"dweb:/ipfs/QmZEeeXoFPW47amyP35gfzomF9DixqqTEPwzBakv6cZw6i\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0xeed0a08b0b091f528356cbc7245891a4c748682d4f6a18055e8e6ca77d12a6cf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba80ba06c8e6be852847e4c5f4492cef801feb6558ae09ed705ff2e04ea8b13c\",\"dweb:/ipfs/QmXRJDv3xHLVQCVXg1ZvR35QS9sij5y9NDWYzMfUfAdTHF\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/EIP712.sol\":{\"keccak256\":\"0x999f705a027ed6dc2d4e0df2cc4a509852c6bfd11de1c8161bf88832d0503fd0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0798def67258d9a3cc20b2b4da7ebf351a5cefe0abfdd665d2d81f8e32f89b21\",\"dweb:/ipfs/QmPEvJosnPfzHNjKvCv2D3891mA2Ww8eUwkqrxBjuYdHCt\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol\":{\"keccak256\":\"0xba333517a3add42cd35fe877656fc3dfcc9de53baa4f3aabbd6d12a92e4ea435\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2ceacff44c0fdc81e48e0e0b1db87a2076d3c1fb497341de077bf1da9f6b406c\",\"dweb:/ipfs/QmRUo1muMRAewxrKQ7TkXUtknyRoR57AyEkoPpiuZQ8FzX\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/SignatureChecker.sol\":{\"keccak256\":\"0x6b11eb41a228cca35d4b662b4df69fcd75192851365102690f57b2ac01e83fe6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ab006a2983ed350d2af21ddcdd835dcae3b8340086cc4d088460da5abd041f69\",\"dweb:/ipfs/QmbEacDhkJZiGrgzLjB4pNtE8Z1uudjDw1DvcDUTVQFsLG\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875\",\"dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0xe19a4d5f31d2861e7344e8e535e2feafb913d806d3e2b5fe7782741a2a7094fe\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4aed79c0fa6f0546ed02f2f683e8f77f0fd2ed7eb34d8bbf3d373c9a6d95b13c\",\"dweb:/ipfs/QmWqVz6UAVqmnWU5pqYPt1o6iDEZyPaBraAA3rKfTTSfYj\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x5f7e4076e175393767754387c962926577f1660dd9b810187b9002407656be72\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7d533a1c97cd43a57cd9c465f7ee8dd0e39ae93a8fb8ff8e5303a356b081cdcc\",\"dweb:/ipfs/QmVBEei6aTnvYNZp2CHYVNKyZS4q1KkjANfY39WVXZXVoT\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/Checkpoints.sol\":{\"keccak256\":\"0xbdc5e074d7dd6678f67e92b1a51a20226801a407b0e1af3da367c5d1ff4519ad\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a36cca6b22fff3db16fc789ff6c60eea71d4b156065d4d0c83a0bc5e91a77a8b\",\"dweb:/ipfs/QmYN3exd5AemxjBrN8XMB1p5LbbE16uC3sjbYjwi8AjcGR\"]},\"lib/openzeppelin-contracts/contracts/utils/types/Time.sol\":{\"keccak256\":\"0xc7755af115020049e4140f224f9ee88d7e1799ffb0646f37bf0df24bf6213f58\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7f09bf94d5274334ec021f61a04659db303f31e60460e14b709c9bf187740111\",\"dweb:/ipfs/QmNvgomZYUwFAt4cZbPWAiTeSZQreGehY9BK5xyVJsUttb\"]},\"src/contracts/common/Entity.sol\":{\"keccak256\":\"0x3d61a932995b8443381f3950542d388223a2c26dd5d29a3274dea3baa7388bd7\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://7cdf5f03ca72fd263fd32ff59c8d88ddca911ae83896a287d10772c1bbe9b138\",\"dweb:/ipfs/QmbP84r5BWT1Rn9AYTntWSf3xUMTTCohTZJFhbBhDXFoHa\"]},\"src/contracts/common/MigratableEntity.sol\":{\"keccak256\":\"0x2d736f4dacd5d7e7697503bc426c78b8250fe1694ca157965ec178da6807de58\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://f1237acf96b4b9f9b69156e068eddd726a6e15bd8e87a18dc999cd4ba4da069c\",\"dweb:/ipfs/QmS6M8fiFFSeuJ4ZKKq1z8W7w4ybeHQSy5TLASGoc1LVic\"]},\"src/contracts/common/StaticDelegateCallable.sol\":{\"keccak256\":\"0x350029aa8955eacaffffaeb58babc5c98e80ebc5c5db388ed17ee6465f4a9d90\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://eb392a8ee9050e0af606897df63e3404e3829e8b688b580663892f9664195764\",\"dweb:/ipfs/QmaXC8jqV8UrrAFkzXTEv2fJF56sy33HhLxAzaRZmUxuXD\"]},\"src/contracts/delegator/BaseDelegator.sol\":{\"keccak256\":\"0x7c54d491fdd4415b764a9c8defa068e56d4c0c8c9419be0053a1d377669290e8\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://9238bfbad0f6eeb0dc7727724de14380f1980b395902269703d5e2ef07e52e10\",\"dweb:/ipfs/QmPJn1V4HNXcEghYvogGuSTF24dSQUPosR5qtsXcmNqRm3\"]},\"src/contracts/delegator/FullRestakeDelegator.sol\":{\"keccak256\":\"0x0a81c4f8e72914563a9cb771e93acf889c71ea36b7bec040e4eb562b199d5af1\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://6fc66b6ba02da77046a0bbbd1dd407a62c08f52e04486c9cbd2cb1cca3da555f\",\"dweb:/ipfs/QmZQivK1ZnMxfRQQ5aLpV9co5u55wQVNev5Rg1hzAqxhkE\"]},\"src/contracts/delegator/NetworkRestakeDelegator.sol\":{\"keccak256\":\"0xd3a8e6522f9c6fdcc2da837c9023afd6bdff2bce45a35590320c475519e3636d\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://58b17a87f6554f08376f9ea7fedf486a4aa75801bf0ad8b23ff5a46959b6b7a3\",\"dweb:/ipfs/QmSTmNh67tYt8CmjVZb57r8N3qX5yeYdMApKPJm3qvQgQw\"]},\"src/contracts/delegator/OperatorNetworkSpecificDelegator.sol\":{\"keccak256\":\"0x031a10722b9ec49048f0952710401131290adb87e71caf294e864e7ac3b98a16\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://72428febc875134b2f29205e6f294634a1c22a7d5c78d6a9cb2f8196f107c9b5\",\"dweb:/ipfs/QmTPwXR6h5oytckmkLrHdKeEMdphJxceDhYUR4zvQeWAwY\"]},\"src/contracts/delegator/OperatorSpecificDelegator.sol\":{\"keccak256\":\"0x630ce62fa30b9f3349ab7a8cf8dbf041319febc6dd757be2f94d3d25944ed328\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://c2ac59d47ce57d2a6819ae9833e1a618a371eccff93eb5ab367b201b01f42bfa\",\"dweb:/ipfs/QmdBpGMBivpNPv2WbH8vnCUy5xkVeaxQvGgqi33vKCz1kA\"]},\"src/contracts/hints/DelegatorHints.sol\":{\"keccak256\":\"0x44aa0c396311a54afbc7c73e8dadeed41e3165a4fd13f712b27d63d50fc3376d\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://2f255214f3531fc707d88be0d56a7a0aed4180439316d099d760d9118aa83093\",\"dweb:/ipfs/QmZD1w5p1ukJSXumUAjvxwGmkPhn7vsr21Y2atLGEZR2oi\"]},\"src/contracts/hints/Hints.sol\":{\"keccak256\":\"0x8b565df1ae35993c097a9e642002782a8f451f6fd01809cad6bcd345bdf1b99c\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://99a19adb01e350a92f534095b3078229df1f2f83077992d75d58d8684be45971\",\"dweb:/ipfs/QmbmwcuswVbzvwHQFTtrJG86oV98GnfxqYTb8cV8u1acox\"]},\"src/contracts/hints/OptInServiceHints.sol\":{\"keccak256\":\"0x95d9407900d27b9f4a1233b772aeed809c07b2dc5b31cfc9fa77ca26514c49e5\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://a13a8877e312d7e6b8b85bde3668c5d84ff5ecc83f762cd573f2b7104c64eb42\",\"dweb:/ipfs/QmYV2J55acuGzCNnS3juABuUHY5U1xc8g8o9jwEyFFdeG5\"]},\"src/contracts/hints/VaultHints.sol\":{\"keccak256\":\"0xccb505b7159b769cc114d67b87c2de6b106557f667fc8f3780114baad5c3c442\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://6d0c80a908fc16e96a8b5605a0bd53f9e89ad0ef0a738fbbae80ba4d3160749b\",\"dweb:/ipfs/QmXo5UtWoR8YmunqcbBU8rQMm1nvmvjNPoXcVrDhh4pEwR\"]},\"src/contracts/libraries/Checkpoints.sol\":{\"keccak256\":\"0xba90097c8bfe0a975499428b5f8ac5569483c7d92ccc28c12d70de416aae040c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://12f5d93ca94cd06d3147db68993165a58e17903ed53682560de61f3085ad4609\",\"dweb:/ipfs/QmePiuAqvXprMLmFZkGZeGjvGPAvsEDHfCDv7BoQhXu9xE\"]},\"src/contracts/libraries/ERC4626Math.sol\":{\"keccak256\":\"0x8441160513c1cbeb1c3b9ee077bcc7e7ce20006b52a77c8dd39ff0ef89699939\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://943f8cc3e26ddf649f465f40c909819f5c864717c4baa339e9e403b9374a4653\",\"dweb:/ipfs/QmXPxi1sUDsrGprZdUgCzoPEosaZMv9ZhygWQ1vAi1phAB\"]},\"src/contracts/libraries/Subnetwork.sol\":{\"keccak256\":\"0xf5ef5506fd66082b3c2e7f3df37529f5a8efad32ac62e7c8914bd63219190bfe\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba031a54ee0d0e9a270c2b9e18437f5668cfeb659cfd5fe0677459d7fcac2a56\",\"dweb:/ipfs/QmReP3H7qQ78tAfgLnJKsNEQNCQfF1X1Get38Ffd4kzq32\"]},\"src/contracts/service/OptInService.sol\":{\"keccak256\":\"0x4e0932077f2686b7990e10d59deb2535334c0d09e52ef6e57c6ab09eca21c4b1\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://7c00d311032ed4a1743aca7475f3c86ce15cdfc2218108efc3731c03d34a5278\",\"dweb:/ipfs/QmUGGfVwVhaHr5kS4177yKKYiLYzi5qZpkEmvYxBZqazxf\"]},\"src/contracts/vault/Vault.sol\":{\"keccak256\":\"0x2ceff6ed3298c4cad144c99fcc79b51cb9397d6ebef00285b915848b476f8c2e\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://11f2fb3581854f3ab6e82e8d4935d9eb510c903a13c3f022346c2956a58f5307\",\"dweb:/ipfs/QmdUnoXoyYoG9SGWyQZCFyLDRUUX3eXyXetkRvw6jxqqBz\"]},\"src/contracts/vault/VaultStorage.sol\":{\"keccak256\":\"0x57db25b127d77ea3472de53e3a4af3354399655b9268638b99ca5925fa364a56\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://aa763d9a6ec508ae3abfb8228b72b9fd9525279e5135d4962e79ff059feb1173\",\"dweb:/ipfs/QmcbDR6E9wyEpu6V2FkEC4hnWy47zXA9LSKJde6zSGd33Q\"]},\"src/interfaces/common/IEntity.sol\":{\"keccak256\":\"0x8ef4b63d6da63489778ccd5f8d13ebdd527dd4b62730b2c616df5af7474d2d21\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a8d69576a9219d85c50816a18ad53a4d53cfcb27ed38b8cccc808dc2734b71b\",\"dweb:/ipfs/QmYVN3P4Q4REvBWJ97TbAcaxm3uyB2anV6NSGa6ZtSwcEv\"]},\"src/interfaces/common/IMigratableEntity.sol\":{\"keccak256\":\"0x8f5f2809f3afbe8ebfbb365dd7b57b4dd3b6f9943a6187eaf648d45895b8e3c4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ffe640537d539e7a4fde70d30d3e4c57f4ba9c2c25c450cea713aae38e8fd5c\",\"dweb:/ipfs/QmSUTGzvdcn1R1KB7tLThMRtESsfPbeXDhhhKWGtntzBds\"]},\"src/interfaces/common/IRegistry.sol\":{\"keccak256\":\"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014\",\"dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK\"]},\"src/interfaces/common/IStaticDelegateCallable.sol\":{\"keccak256\":\"0xa335d4e81b9071b7de66ef92b43ff20671d86516eb1be46fef29a3483cd3f5d5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d464b9db863c14c05547d2b23352f2e9b7b784799cf09f6bbc4906a2a74e3516\",\"dweb:/ipfs/QmUVWzFvJz7eEbDQKiFTTzwi7TEbjcs3VmwdM4kuptAKvi\"]},\"src/interfaces/delegator/IBaseDelegator.sol\":{\"keccak256\":\"0x96bb312f032e17accce3f8f80936d99468029d6b37c9ca74acdb4b026a0148ee\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2a66dcb5b7d1a6ef6a363431ea98ebd78bc4fdd3d7a134d9b542dc66e7d025c2\",\"dweb:/ipfs/QmRhTPLd2ZAyRHmJUFUcWKs9b3if49QY17LYZuRqWmghw8\"]},\"src/interfaces/delegator/IDelegatorHook.sol\":{\"keccak256\":\"0xc51aa8d7d1f6c8043ee819b7aeb86da0e993912e1442098df897e299f01f9f46\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://adddf5cb2ba282aeb576b26efb28640f865a1721cc9b6eee8b3ee0457a2c9780\",\"dweb:/ipfs/QmNYgAmnLRwWZbhTuQhZs9rx4zcme1df5mEepkrniorSoW\"]},\"src/interfaces/delegator/IFullRestakeDelegator.sol\":{\"keccak256\":\"0xa3c8cb2e45d4d8ce90e95263bea40c01dc400f05ad65bc29597d878606be5e7d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://782cf5e201aa4cca037ebafd3807a68ff1cc721d5b8416a35244db0d0607369e\",\"dweb:/ipfs/QmQkJks6x7CKndeTPa9LxgTNygD5uEi7obhADhpq1Lsr9A\"]},\"src/interfaces/delegator/INetworkRestakeDelegator.sol\":{\"keccak256\":\"0xe7030fe30389a147fd710e3436ec346b4842695fd3e65a81b95375c9f1d633fc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://739c7e66d301778054f5c90bee45ec9438f68afba8a03eaaac52064c73b115ad\",\"dweb:/ipfs/QmfZ2ytKcTykAc76nxhg8ikUXV8NdBpetqb8W4YWPcox1Z\"]},\"src/interfaces/delegator/IOperatorNetworkSpecificDelegator.sol\":{\"keccak256\":\"0x74b95e64d29769202d45dd277bb830f623ff3d41ce77b80ce3ee4e318a5c71ec\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e512b903aae5c1b8a028c6e3f4f6223b5cb5d704503cfa6bd37b5346868f5c20\",\"dweb:/ipfs/QmZim9YExsPWtyxyeui993HTKAEmrg8MUcSkZ77Gp2JcuZ\"]},\"src/interfaces/delegator/IOperatorSpecificDelegator.sol\":{\"keccak256\":\"0x72075cab585dc17240cc3e32bc99b92f0d5627ddd988fed680e3e1a52d5a01e4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7448bc90699409ae61d85216b5efc2143a37f0f73354be2aea993bc54afca441\",\"dweb:/ipfs/QmXE4gAxM8pHosZK8mcTcj17puBx484meDCcmrDePskGHZ\"]},\"src/interfaces/service/IOptInService.sol\":{\"keccak256\":\"0x76fb5460a6d87a5705433d4fbeff7253cd75b8bbd0c888b2088f16e86ace146a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://990322019b3d11465f7024bae77ccbf7e2fe5d6fa3c754584778f37d04fa1337\",\"dweb:/ipfs/QmaSNHzcqxTkUCG9a4nqVfLECHLdjdrwAnDi3yDC7tDL24\"]},\"src/interfaces/slasher/IBaseSlasher.sol\":{\"keccak256\":\"0x7c82528b445659c313ab77335c407b0b6efe5e79027187bb287f7bc74202b404\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0274c90aa5df1aa6bb470a6aab53992fb14fd7e5472c9430416505b29647d9cf\",\"dweb:/ipfs/QmckbmJLDetPemVzCnnGcKYWAZV2BRFXGDsjiaec8jkHxx\"]},\"src/interfaces/vault/IVault.sol\":{\"keccak256\":\"0xffee01d383cd4e1a5530c614bf4360c1ef070c288abec9da1eb531b51bc07235\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://04f0046cac285d8ec44ebbb1f79dc94fab4495767190cad8364fbc1fafaadfb9\",\"dweb:/ipfs/QmUawAunwzXfCyShWfhKeThAgKtqe51hmrxvrXvM772M2R\"]},\"src/interfaces/vault/IVaultStorage.sol\":{\"keccak256\":\"0x592626f13754194f83047135de19229c49390bd59e34659b1bb38be71d973a22\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://06a6a9dfddd05e580b32bebe2cff4f63ba26a653180676d58225dd30d9c89d3e\",\"dweb:/ipfs/QmdgzBeY6Sxo8mGtyBxtv1tM1c2kU6J6zjeRd7vuXm4DU6\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.25+commit.b61c2a91"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"optInServiceHints","type":"address"},{"internalType":"address","name":"vaultHints_","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"AccessControlBadConfirmation"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bytes32","name":"neededRole","type":"bytes32"}],"type":"error","name":"AccessControlUnauthorizedAccount"},{"inputs":[],"type":"error","name":"AlreadySet"},{"inputs":[],"type":"error","name":"ExternalCall"},{"inputs":[],"type":"error","name":"InsufficientHookGas"},{"inputs":[],"type":"error","name":"InvalidInitialization"},{"inputs":[],"type":"error","name":"NotInitialized"},{"inputs":[],"type":"error","name":"NotInitializing"},{"inputs":[],"type":"error","name":"NotNetwork"},{"inputs":[],"type":"error","name":"NotSlasher"},{"inputs":[],"type":"error","name":"NotVault"},{"inputs":[],"type":"error","name":"ReentrancyGuardReentrantCall"},{"inputs":[{"internalType":"uint64","name":"version","type":"uint64","indexed":false}],"type":"event","name":"Initialized","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32","indexed":true},{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false},{"internalType":"uint48","name":"captureTimestamp","type":"uint48","indexed":false}],"type":"event","name":"OnSlash","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"bytes32","name":"previousAdminRole","type":"bytes32","indexed":true},{"internalType":"bytes32","name":"newAdminRole","type":"bytes32","indexed":true}],"type":"event","name":"RoleAdminChanged","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"address","name":"sender","type":"address","indexed":true}],"type":"event","name":"RoleGranted","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"address","name":"sender","type":"address","indexed":true}],"type":"event","name":"RoleRevoked","anonymous":false},{"inputs":[{"internalType":"address","name":"hook","type":"address","indexed":true}],"type":"event","name":"SetHook","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"SetMaxNetworkLimit","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"DEFAULT_ADMIN_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"FACTORY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"FULL_RESTAKE_DELEGATOR_HINTS","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"HOOK_GAS_LIMIT","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"HOOK_RESERVE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"HOOK_SET_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"NETWORK_REGISTRY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"NETWORK_RESTAKE_DELEGATOR_HINTS","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"OPERATOR_NETWORK_OPT_IN_SERVICE","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"OPERATOR_VAULT_OPT_IN_SERVICE","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"OPT_IN_SERVICE_HINTS","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"TYPE","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"VAULT_FACTORY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"VERSION","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getRoleAdmin","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"grantRole"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"hasRole","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"hook","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"}],"stateMutability":"view","type":"function","name":"maxNetworkLimit","outputs":[{"internalType":"uint256","name":"value","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint48","name":"captureTimestamp","type":"uint48"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"onSlash"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"callerConfirmation","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"renounceRole"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"revokeRole"},{"inputs":[{"internalType":"address","name":"hook_","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setHook"},{"inputs":[{"internalType":"uint96","name":"identifier","type":"uint96"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setMaxNetworkLimit"},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"stake","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint48","name":"timestamp","type":"uint48"},{"internalType":"bytes","name":"hints","type":"bytes"}],"stateMutability":"view","type":"function","name":"stakeAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"delegator","type":"address"},{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint48","name":"timestamp","type":"uint48"}],"stateMutability":"view","type":"function","name":"stakeBaseHints","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"address","name":"delegator","type":"address"},{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint48","name":"timestamp","type":"uint48"}],"stateMutability":"view","type":"function","name":"stakeHints","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"staticDelegateCall"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"vault","outputs":[{"internalType":"address","name":"","type":"address"}]}],"devdoc":{"kind":"dev","methods":{"VERSION()":{"details":"Must return 1 for this one.","returns":{"_0":"version of the delegator"}},"getRoleAdmin(bytes32)":{"details":"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}."},"grantRole(bytes32,address)":{"details":"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event."},"hasRole(bytes32,address)":{"details":"Returns `true` if `account` has been granted `role`."},"initialize(bytes)":{"params":{"data":"some data to use"}},"onSlash(bytes32,address,uint256,uint48,bytes)":{"details":"Only the vault's slasher can call this function.","params":{"amount":"amount of the collateral slashed","captureTimestamp":"time point when the stake was captured","data":"some additional data","operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"}},"renounceRole(bytes32,address)":{"details":"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `callerConfirmation`. May emit a {RoleRevoked} event."},"revokeRole(bytes32,address)":{"details":"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event."},"setHook(address)":{"details":"Only a HOOK_SET_ROLE holder can call this function. The hook can have arbitrary logic under certain functions, however, it doesn't affect the stake guarantees.","params":{"hook":"address of the hook"}},"setMaxNetworkLimit(uint96,uint256)":{"details":"Only a network can call this function.","params":{"amount":"new maximum subnetwork's limit"}},"stake(bytes32,address)":{"details":"Warning: this function is not safe to use for stake capturing, as it can change by the end of the block.","params":{"operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"},"returns":{"_0":"slashable stake until the end of the next epoch"}},"stakeAt(bytes32,address,uint48,bytes)":{"details":"Warning: it is not safe to use timestamp >= current one for the stake capturing, as it can change later.","params":{"hints":"hints for the checkpoints' indexes","operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)","timestamp":"time point to capture the stake at"},"returns":{"_0":"slashable stake at the given timestamp until the end of the consequent epoch"}},"staticDelegateCall(address,bytes)":{"details":"It allows to use this contract's storage on-chain.","params":{"data":"data to make a delegatecall with","target":"address of the contract to make a delegatecall to"}},"supportsInterface(bytes4)":{"details":"See {IERC165-supportsInterface}."}},"version":1},"userdoc":{"kind":"user","methods":{"FACTORY()":{"notice":"Get the factory's address."},"HOOK_GAS_LIMIT()":{"notice":"Get a gas limit for the hook."},"HOOK_RESERVE()":{"notice":"Get a reserve gas between the gas limit check and the hook's execution."},"HOOK_SET_ROLE()":{"notice":"Get a hook setter's role."},"NETWORK_REGISTRY()":{"notice":"Get the network registry's address."},"OPERATOR_NETWORK_OPT_IN_SERVICE()":{"notice":"Get the operator-network opt-in service's address."},"OPERATOR_VAULT_OPT_IN_SERVICE()":{"notice":"Get the operator-vault opt-in service's address."},"TYPE()":{"notice":"Get the entity's type."},"VAULT_FACTORY()":{"notice":"Get the vault factory's address."},"VERSION()":{"notice":"Get a version of the delegator (different versions mean different interfaces)."},"hook()":{"notice":"Get the hook's address."},"initialize(bytes)":{"notice":"Initialize this entity contract by using a given data."},"maxNetworkLimit(bytes32)":{"notice":"Get a particular subnetwork's maximum limit (meaning the subnetwork is not ready to get more as a stake)."},"onSlash(bytes32,address,uint256,uint48,bytes)":{"notice":"Called when a slash happens."},"setHook(address)":{"notice":"Set a new hook."},"setMaxNetworkLimit(uint96,uint256)":{"notice":"Set a maximum limit for a subnetwork (how much stake the subnetwork is ready to get). identifier identifier of the subnetwork"},"stake(bytes32,address)":{"notice":"Get a stake that a given subnetwork will be able to slash for a certain operator until the end of the next epoch (if no cross-slashing and no slashings by the subnetwork)."},"stakeAt(bytes32,address,uint48,bytes)":{"notice":"Get a stake that a given subnetwork could be able to slash for a certain operator at a given timestamp until the end of the consequent epoch using hints (if no cross-slashing and no slashings by the subnetwork)."},"staticDelegateCall(address,bytes)":{"notice":"Make a delegatecall from this contract to a given target contract with a particular data (always reverts with a return data)."},"vault()":{"notice":"Get the vault's address."}},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/contracts/hints/DelegatorHints.sol":"BaseDelegatorHints"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol":{"keccak256":"0x6662ec4e5cefca03eeadd073e9469df8d2944bb2ee8ec8f7622c2c46aab5f225","urls":["bzz-raw://4d8544c6f8daa4d1bc215c6a72fe0acdb748664a105b0e5efc19295667521d45","dweb:/ipfs/QmdGWqdnXT8S3RgCR6aV8XHZrsybieMQLLnug1NtpSjEXN"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol":{"keccak256":"0xc163fcf9bb10138631a9ba5564df1fa25db9adff73bd9ee868a8ae1858fe093a","urls":["bzz-raw://9706d43a0124053d9880f6e31a59f31bc0a6a3dc1acd66ce0a16e1111658c5f6","dweb:/ipfs/QmUFmfowzkRwGtDu36cXV9SPTBHJ3n7dG9xQiK5B28jTf2"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b","urls":["bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609","dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol":{"keccak256":"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397","urls":["bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9","dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardUpgradeable.sol":{"keccak256":"0xb44e086e941292cdc7f440de51478493894ef0b1aeccb0c4047445919f667f74","urls":["bzz-raw://942dad22fbdc1669f025540ba63aa3ccfad5f8458fc5d4525b31ebf272e7af45","dweb:/ipfs/Qmdo4X2M82aM3AMoW2kf2jhYkSCyC4T1pHNd6obdsDFnAB"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol":{"keccak256":"0xdaba3f7c42c55b2896353f32bd27d4d5f8bae741b3b05d4c53f67abc4dc47ce8","urls":["bzz-raw://1fa2e61141c602510bcd2cd936ed9561922ac8772a9b9c9a9db091a74e354a45","dweb:/ipfs/QmcHQDDoEBwJmwUbzoVkytvJsBx3KVHYFFnDkvRGWh9Wmh"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol":{"keccak256":"0xb6b36edd6a2999fd243ff226d6cbf84bd71af2432bbd0dfe19392996a1d9cb41","urls":["bzz-raw://1fd2f35495652e57e3f99bc6c510bc5f7dd398a176ea2e72d8ed730aebc6ca26","dweb:/ipfs/QmTQV6X4gkikTib49cho5iDX3JvSQbdsoEChoDwrk3CbbH"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC1271.sol":{"keccak256":"0x85a45f3f10014a0f8be41157a32b6a5f905753ea64a4b64e29fc12b7deeecf39","urls":["bzz-raw://c3c74009ce36136b36c77c23935b8e4a7b4f253be2da2be4fb4a916b1ce43743","dweb:/ipfs/QmcH36v3iN7SJJuF73AunLR2LtNxhVJ1wm63ph4dPZ4pcL"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC5267.sol":{"keccak256":"0x92aa1df62dc3d33f1656d63bede0923e0df0b706ad4137c8b10b0a8fe549fd92","urls":["bzz-raw://c5c0f29195ad64cbe556da8e257dac8f05f78c53f90323c0d2accf8e6922d33a","dweb:/ipfs/QmQ61TED8uaCZwcbh8KkgRSsCav7x7HbcGHwHts3U4DmUP"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70","urls":["bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c","dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol":{"keccak256":"0x6008dabfe393240d73d7dd7688033f72740d570aa422254d29a7dce8568f3aff","urls":["bzz-raw://f5196ec75139918c6c7bb4251b36395e668f1fa6d206beba7e7520e74913940d","dweb:/ipfs/QmSyqjksXxmm2mCG6qRd1yuwLykypkSVBbnBnGqJRcuJMi"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0x37bb49513c49c87c4642a891b13b63571bc87013dde806617aa1efb54605f386","urls":["bzz-raw://b3036b3a83b7c48f96641f2a9002b9f2dcb6a5958dd670894ada21ae8229b3d0","dweb:/ipfs/QmUNfSBdoVtjhETaUJCYcaC7pTMgbhht926tJ2uXJbiVd3"],"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/ShortStrings.sol":{"keccak256":"0x18a7171df639a934592915a520ecb97c5bbc9675a1105607aac8a94e72bf62c6","urls":["bzz-raw://7478e1f13da69a2867ccd883001d836b75620362e743f196376d63ed0c422a1c","dweb:/ipfs/QmWywcQ9TNfwtoqAxbn25d8C5VrV12PrPS9UjtGe6pL2BA"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol":{"keccak256":"0x32ba59b4b7299237c8ba56319110989d7978a039faf754793064e967e5894418","urls":["bzz-raw://1ae50c8b562427df610cc4540c9bf104acca7ef8e2dcae567ae7e52272281e9c","dweb:/ipfs/QmTHiadFCSJUPpRjNegc5SahmeU8bAoY8i9Aq6tVscbcKR"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0x55f102ea785d8399c0e58d1108e2d289506dde18abc6db1b7f68c1f9f9bc5792","urls":["bzz-raw://6e52e0a7765c943ef14e5bcf11e46e6139fa044be564881378349236bf2e3453","dweb:/ipfs/QmZEeeXoFPW47amyP35gfzomF9DixqqTEPwzBakv6cZw6i"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol":{"keccak256":"0xeed0a08b0b091f528356cbc7245891a4c748682d4f6a18055e8e6ca77d12a6cf","urls":["bzz-raw://ba80ba06c8e6be852847e4c5f4492cef801feb6558ae09ed705ff2e04ea8b13c","dweb:/ipfs/QmXRJDv3xHLVQCVXg1ZvR35QS9sij5y9NDWYzMfUfAdTHF"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/EIP712.sol":{"keccak256":"0x999f705a027ed6dc2d4e0df2cc4a509852c6bfd11de1c8161bf88832d0503fd0","urls":["bzz-raw://0798def67258d9a3cc20b2b4da7ebf351a5cefe0abfdd665d2d81f8e32f89b21","dweb:/ipfs/QmPEvJosnPfzHNjKvCv2D3891mA2Ww8eUwkqrxBjuYdHCt"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol":{"keccak256":"0xba333517a3add42cd35fe877656fc3dfcc9de53baa4f3aabbd6d12a92e4ea435","urls":["bzz-raw://2ceacff44c0fdc81e48e0e0b1db87a2076d3c1fb497341de077bf1da9f6b406c","dweb:/ipfs/QmRUo1muMRAewxrKQ7TkXUtknyRoR57AyEkoPpiuZQ8FzX"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/SignatureChecker.sol":{"keccak256":"0x6b11eb41a228cca35d4b662b4df69fcd75192851365102690f57b2ac01e83fe6","urls":["bzz-raw://ab006a2983ed350d2af21ddcdd835dcae3b8340086cc4d088460da5abd041f69","dweb:/ipfs/QmbEacDhkJZiGrgzLjB4pNtE8Z1uudjDw1DvcDUTVQFsLG"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b","urls":["bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df","dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d","urls":["bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875","dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol":{"keccak256":"0xe19a4d5f31d2861e7344e8e535e2feafb913d806d3e2b5fe7782741a2a7094fe","urls":["bzz-raw://4aed79c0fa6f0546ed02f2f683e8f77f0fd2ed7eb34d8bbf3d373c9a6d95b13c","dweb:/ipfs/QmWqVz6UAVqmnWU5pqYPt1o6iDEZyPaBraAA3rKfTTSfYj"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0x5f7e4076e175393767754387c962926577f1660dd9b810187b9002407656be72","urls":["bzz-raw://7d533a1c97cd43a57cd9c465f7ee8dd0e39ae93a8fb8ff8e5303a356b081cdcc","dweb:/ipfs/QmVBEei6aTnvYNZp2CHYVNKyZS4q1KkjANfY39WVXZXVoT"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/Checkpoints.sol":{"keccak256":"0xbdc5e074d7dd6678f67e92b1a51a20226801a407b0e1af3da367c5d1ff4519ad","urls":["bzz-raw://a36cca6b22fff3db16fc789ff6c60eea71d4b156065d4d0c83a0bc5e91a77a8b","dweb:/ipfs/QmYN3exd5AemxjBrN8XMB1p5LbbE16uC3sjbYjwi8AjcGR"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/types/Time.sol":{"keccak256":"0xc7755af115020049e4140f224f9ee88d7e1799ffb0646f37bf0df24bf6213f58","urls":["bzz-raw://7f09bf94d5274334ec021f61a04659db303f31e60460e14b709c9bf187740111","dweb:/ipfs/QmNvgomZYUwFAt4cZbPWAiTeSZQreGehY9BK5xyVJsUttb"],"license":"MIT"},"src/contracts/common/Entity.sol":{"keccak256":"0x3d61a932995b8443381f3950542d388223a2c26dd5d29a3274dea3baa7388bd7","urls":["bzz-raw://7cdf5f03ca72fd263fd32ff59c8d88ddca911ae83896a287d10772c1bbe9b138","dweb:/ipfs/QmbP84r5BWT1Rn9AYTntWSf3xUMTTCohTZJFhbBhDXFoHa"],"license":"BUSL-1.1"},"src/contracts/common/MigratableEntity.sol":{"keccak256":"0x2d736f4dacd5d7e7697503bc426c78b8250fe1694ca157965ec178da6807de58","urls":["bzz-raw://f1237acf96b4b9f9b69156e068eddd726a6e15bd8e87a18dc999cd4ba4da069c","dweb:/ipfs/QmS6M8fiFFSeuJ4ZKKq1z8W7w4ybeHQSy5TLASGoc1LVic"],"license":"BUSL-1.1"},"src/contracts/common/StaticDelegateCallable.sol":{"keccak256":"0x350029aa8955eacaffffaeb58babc5c98e80ebc5c5db388ed17ee6465f4a9d90","urls":["bzz-raw://eb392a8ee9050e0af606897df63e3404e3829e8b688b580663892f9664195764","dweb:/ipfs/QmaXC8jqV8UrrAFkzXTEv2fJF56sy33HhLxAzaRZmUxuXD"],"license":"BUSL-1.1"},"src/contracts/delegator/BaseDelegator.sol":{"keccak256":"0x7c54d491fdd4415b764a9c8defa068e56d4c0c8c9419be0053a1d377669290e8","urls":["bzz-raw://9238bfbad0f6eeb0dc7727724de14380f1980b395902269703d5e2ef07e52e10","dweb:/ipfs/QmPJn1V4HNXcEghYvogGuSTF24dSQUPosR5qtsXcmNqRm3"],"license":"BUSL-1.1"},"src/contracts/delegator/FullRestakeDelegator.sol":{"keccak256":"0x0a81c4f8e72914563a9cb771e93acf889c71ea36b7bec040e4eb562b199d5af1","urls":["bzz-raw://6fc66b6ba02da77046a0bbbd1dd407a62c08f52e04486c9cbd2cb1cca3da555f","dweb:/ipfs/QmZQivK1ZnMxfRQQ5aLpV9co5u55wQVNev5Rg1hzAqxhkE"],"license":"BUSL-1.1"},"src/contracts/delegator/NetworkRestakeDelegator.sol":{"keccak256":"0xd3a8e6522f9c6fdcc2da837c9023afd6bdff2bce45a35590320c475519e3636d","urls":["bzz-raw://58b17a87f6554f08376f9ea7fedf486a4aa75801bf0ad8b23ff5a46959b6b7a3","dweb:/ipfs/QmSTmNh67tYt8CmjVZb57r8N3qX5yeYdMApKPJm3qvQgQw"],"license":"BUSL-1.1"},"src/contracts/delegator/OperatorNetworkSpecificDelegator.sol":{"keccak256":"0x031a10722b9ec49048f0952710401131290adb87e71caf294e864e7ac3b98a16","urls":["bzz-raw://72428febc875134b2f29205e6f294634a1c22a7d5c78d6a9cb2f8196f107c9b5","dweb:/ipfs/QmTPwXR6h5oytckmkLrHdKeEMdphJxceDhYUR4zvQeWAwY"],"license":"BUSL-1.1"},"src/contracts/delegator/OperatorSpecificDelegator.sol":{"keccak256":"0x630ce62fa30b9f3349ab7a8cf8dbf041319febc6dd757be2f94d3d25944ed328","urls":["bzz-raw://c2ac59d47ce57d2a6819ae9833e1a618a371eccff93eb5ab367b201b01f42bfa","dweb:/ipfs/QmdBpGMBivpNPv2WbH8vnCUy5xkVeaxQvGgqi33vKCz1kA"],"license":"BUSL-1.1"},"src/contracts/hints/DelegatorHints.sol":{"keccak256":"0x44aa0c396311a54afbc7c73e8dadeed41e3165a4fd13f712b27d63d50fc3376d","urls":["bzz-raw://2f255214f3531fc707d88be0d56a7a0aed4180439316d099d760d9118aa83093","dweb:/ipfs/QmZD1w5p1ukJSXumUAjvxwGmkPhn7vsr21Y2atLGEZR2oi"],"license":"BUSL-1.1"},"src/contracts/hints/Hints.sol":{"keccak256":"0x8b565df1ae35993c097a9e642002782a8f451f6fd01809cad6bcd345bdf1b99c","urls":["bzz-raw://99a19adb01e350a92f534095b3078229df1f2f83077992d75d58d8684be45971","dweb:/ipfs/QmbmwcuswVbzvwHQFTtrJG86oV98GnfxqYTb8cV8u1acox"],"license":"BUSL-1.1"},"src/contracts/hints/OptInServiceHints.sol":{"keccak256":"0x95d9407900d27b9f4a1233b772aeed809c07b2dc5b31cfc9fa77ca26514c49e5","urls":["bzz-raw://a13a8877e312d7e6b8b85bde3668c5d84ff5ecc83f762cd573f2b7104c64eb42","dweb:/ipfs/QmYV2J55acuGzCNnS3juABuUHY5U1xc8g8o9jwEyFFdeG5"],"license":"BUSL-1.1"},"src/contracts/hints/VaultHints.sol":{"keccak256":"0xccb505b7159b769cc114d67b87c2de6b106557f667fc8f3780114baad5c3c442","urls":["bzz-raw://6d0c80a908fc16e96a8b5605a0bd53f9e89ad0ef0a738fbbae80ba4d3160749b","dweb:/ipfs/QmXo5UtWoR8YmunqcbBU8rQMm1nvmvjNPoXcVrDhh4pEwR"],"license":"BUSL-1.1"},"src/contracts/libraries/Checkpoints.sol":{"keccak256":"0xba90097c8bfe0a975499428b5f8ac5569483c7d92ccc28c12d70de416aae040c","urls":["bzz-raw://12f5d93ca94cd06d3147db68993165a58e17903ed53682560de61f3085ad4609","dweb:/ipfs/QmePiuAqvXprMLmFZkGZeGjvGPAvsEDHfCDv7BoQhXu9xE"],"license":"MIT"},"src/contracts/libraries/ERC4626Math.sol":{"keccak256":"0x8441160513c1cbeb1c3b9ee077bcc7e7ce20006b52a77c8dd39ff0ef89699939","urls":["bzz-raw://943f8cc3e26ddf649f465f40c909819f5c864717c4baa339e9e403b9374a4653","dweb:/ipfs/QmXPxi1sUDsrGprZdUgCzoPEosaZMv9ZhygWQ1vAi1phAB"],"license":"MIT"},"src/contracts/libraries/Subnetwork.sol":{"keccak256":"0xf5ef5506fd66082b3c2e7f3df37529f5a8efad32ac62e7c8914bd63219190bfe","urls":["bzz-raw://ba031a54ee0d0e9a270c2b9e18437f5668cfeb659cfd5fe0677459d7fcac2a56","dweb:/ipfs/QmReP3H7qQ78tAfgLnJKsNEQNCQfF1X1Get38Ffd4kzq32"],"license":"MIT"},"src/contracts/service/OptInService.sol":{"keccak256":"0x4e0932077f2686b7990e10d59deb2535334c0d09e52ef6e57c6ab09eca21c4b1","urls":["bzz-raw://7c00d311032ed4a1743aca7475f3c86ce15cdfc2218108efc3731c03d34a5278","dweb:/ipfs/QmUGGfVwVhaHr5kS4177yKKYiLYzi5qZpkEmvYxBZqazxf"],"license":"BUSL-1.1"},"src/contracts/vault/Vault.sol":{"keccak256":"0x2ceff6ed3298c4cad144c99fcc79b51cb9397d6ebef00285b915848b476f8c2e","urls":["bzz-raw://11f2fb3581854f3ab6e82e8d4935d9eb510c903a13c3f022346c2956a58f5307","dweb:/ipfs/QmdUnoXoyYoG9SGWyQZCFyLDRUUX3eXyXetkRvw6jxqqBz"],"license":"BUSL-1.1"},"src/contracts/vault/VaultStorage.sol":{"keccak256":"0x57db25b127d77ea3472de53e3a4af3354399655b9268638b99ca5925fa364a56","urls":["bzz-raw://aa763d9a6ec508ae3abfb8228b72b9fd9525279e5135d4962e79ff059feb1173","dweb:/ipfs/QmcbDR6E9wyEpu6V2FkEC4hnWy47zXA9LSKJde6zSGd33Q"],"license":"BUSL-1.1"},"src/interfaces/common/IEntity.sol":{"keccak256":"0x8ef4b63d6da63489778ccd5f8d13ebdd527dd4b62730b2c616df5af7474d2d21","urls":["bzz-raw://5a8d69576a9219d85c50816a18ad53a4d53cfcb27ed38b8cccc808dc2734b71b","dweb:/ipfs/QmYVN3P4Q4REvBWJ97TbAcaxm3uyB2anV6NSGa6ZtSwcEv"],"license":"MIT"},"src/interfaces/common/IMigratableEntity.sol":{"keccak256":"0x8f5f2809f3afbe8ebfbb365dd7b57b4dd3b6f9943a6187eaf648d45895b8e3c4","urls":["bzz-raw://0ffe640537d539e7a4fde70d30d3e4c57f4ba9c2c25c450cea713aae38e8fd5c","dweb:/ipfs/QmSUTGzvdcn1R1KB7tLThMRtESsfPbeXDhhhKWGtntzBds"],"license":"MIT"},"src/interfaces/common/IRegistry.sol":{"keccak256":"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb","urls":["bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014","dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK"],"license":"MIT"},"src/interfaces/common/IStaticDelegateCallable.sol":{"keccak256":"0xa335d4e81b9071b7de66ef92b43ff20671d86516eb1be46fef29a3483cd3f5d5","urls":["bzz-raw://d464b9db863c14c05547d2b23352f2e9b7b784799cf09f6bbc4906a2a74e3516","dweb:/ipfs/QmUVWzFvJz7eEbDQKiFTTzwi7TEbjcs3VmwdM4kuptAKvi"],"license":"MIT"},"src/interfaces/delegator/IBaseDelegator.sol":{"keccak256":"0x96bb312f032e17accce3f8f80936d99468029d6b37c9ca74acdb4b026a0148ee","urls":["bzz-raw://2a66dcb5b7d1a6ef6a363431ea98ebd78bc4fdd3d7a134d9b542dc66e7d025c2","dweb:/ipfs/QmRhTPLd2ZAyRHmJUFUcWKs9b3if49QY17LYZuRqWmghw8"],"license":"MIT"},"src/interfaces/delegator/IDelegatorHook.sol":{"keccak256":"0xc51aa8d7d1f6c8043ee819b7aeb86da0e993912e1442098df897e299f01f9f46","urls":["bzz-raw://adddf5cb2ba282aeb576b26efb28640f865a1721cc9b6eee8b3ee0457a2c9780","dweb:/ipfs/QmNYgAmnLRwWZbhTuQhZs9rx4zcme1df5mEepkrniorSoW"],"license":"MIT"},"src/interfaces/delegator/IFullRestakeDelegator.sol":{"keccak256":"0xa3c8cb2e45d4d8ce90e95263bea40c01dc400f05ad65bc29597d878606be5e7d","urls":["bzz-raw://782cf5e201aa4cca037ebafd3807a68ff1cc721d5b8416a35244db0d0607369e","dweb:/ipfs/QmQkJks6x7CKndeTPa9LxgTNygD5uEi7obhADhpq1Lsr9A"],"license":"MIT"},"src/interfaces/delegator/INetworkRestakeDelegator.sol":{"keccak256":"0xe7030fe30389a147fd710e3436ec346b4842695fd3e65a81b95375c9f1d633fc","urls":["bzz-raw://739c7e66d301778054f5c90bee45ec9438f68afba8a03eaaac52064c73b115ad","dweb:/ipfs/QmfZ2ytKcTykAc76nxhg8ikUXV8NdBpetqb8W4YWPcox1Z"],"license":"MIT"},"src/interfaces/delegator/IOperatorNetworkSpecificDelegator.sol":{"keccak256":"0x74b95e64d29769202d45dd277bb830f623ff3d41ce77b80ce3ee4e318a5c71ec","urls":["bzz-raw://e512b903aae5c1b8a028c6e3f4f6223b5cb5d704503cfa6bd37b5346868f5c20","dweb:/ipfs/QmZim9YExsPWtyxyeui993HTKAEmrg8MUcSkZ77Gp2JcuZ"],"license":"MIT"},"src/interfaces/delegator/IOperatorSpecificDelegator.sol":{"keccak256":"0x72075cab585dc17240cc3e32bc99b92f0d5627ddd988fed680e3e1a52d5a01e4","urls":["bzz-raw://7448bc90699409ae61d85216b5efc2143a37f0f73354be2aea993bc54afca441","dweb:/ipfs/QmXE4gAxM8pHosZK8mcTcj17puBx484meDCcmrDePskGHZ"],"license":"MIT"},"src/interfaces/service/IOptInService.sol":{"keccak256":"0x76fb5460a6d87a5705433d4fbeff7253cd75b8bbd0c888b2088f16e86ace146a","urls":["bzz-raw://990322019b3d11465f7024bae77ccbf7e2fe5d6fa3c754584778f37d04fa1337","dweb:/ipfs/QmaSNHzcqxTkUCG9a4nqVfLECHLdjdrwAnDi3yDC7tDL24"],"license":"MIT"},"src/interfaces/slasher/IBaseSlasher.sol":{"keccak256":"0x7c82528b445659c313ab77335c407b0b6efe5e79027187bb287f7bc74202b404","urls":["bzz-raw://0274c90aa5df1aa6bb470a6aab53992fb14fd7e5472c9430416505b29647d9cf","dweb:/ipfs/QmckbmJLDetPemVzCnnGcKYWAZV2BRFXGDsjiaec8jkHxx"],"license":"MIT"},"src/interfaces/vault/IVault.sol":{"keccak256":"0xffee01d383cd4e1a5530c614bf4360c1ef070c288abec9da1eb531b51bc07235","urls":["bzz-raw://04f0046cac285d8ec44ebbb1f79dc94fab4495767190cad8364fbc1fafaadfb9","dweb:/ipfs/QmUawAunwzXfCyShWfhKeThAgKtqe51hmrxvrXvM772M2R"],"license":"MIT"},"src/interfaces/vault/IVaultStorage.sol":{"keccak256":"0x592626f13754194f83047135de19229c49390bd59e34659b1bb38be71d973a22","urls":["bzz-raw://06a6a9dfddd05e580b32bebe2cff4f63ba26a653180676d58225dd30d9c89d3e","dweb:/ipfs/QmdgzBeY6Sxo8mGtyBxtv1tM1c2kU6J6zjeRd7vuXm4DU6"],"license":"MIT"}},"version":1},"id":81} \ No newline at end of file +{"abi":[{"type":"constructor","inputs":[{"name":"optInServiceHints","type":"address","internalType":"address"},{"name":"vaultHints_","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"DEFAULT_ADMIN_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"FACTORY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"FULL_RESTAKE_DELEGATOR_HINTS","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"HOOK_GAS_LIMIT","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"HOOK_RESERVE","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"HOOK_SET_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"NETWORK_REGISTRY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"NETWORK_RESTAKE_DELEGATOR_HINTS","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"OPERATOR_NETWORK_OPT_IN_SERVICE","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"OPERATOR_VAULT_OPT_IN_SERVICE","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"OPT_IN_SERVICE_HINTS","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"TYPE","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"VAULT_FACTORY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"VERSION","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"pure"},{"type":"function","name":"getRoleAdmin","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"grantRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"hasRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"hook","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"initialize","inputs":[{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"maxNetworkLimit","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"value","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"onSlash","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"captureTimestamp","type":"uint48","internalType":"uint48"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"renounceRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"callerConfirmation","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"revokeRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setHook","inputs":[{"name":"hook_","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setMaxNetworkLimit","inputs":[{"name":"identifier","type":"uint96","internalType":"uint96"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"stake","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"stakeAt","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"timestamp","type":"uint48","internalType":"uint48"},{"name":"hints","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"stakeBaseHints","inputs":[{"name":"delegator","type":"address","internalType":"address"},{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"timestamp","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"stakeHints","inputs":[{"name":"delegator","type":"address","internalType":"address"},{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"timestamp","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"staticDelegateCall","inputs":[{"name":"target","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"vault","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"OnSlash","inputs":[{"name":"subnetwork","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"captureTimestamp","type":"uint48","indexed":false,"internalType":"uint48"}],"anonymous":false},{"type":"event","name":"RoleAdminChanged","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"previousAdminRole","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"newAdminRole","type":"bytes32","indexed":true,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"RoleGranted","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"sender","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"RoleRevoked","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"sender","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"SetHook","inputs":[{"name":"hook","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"SetMaxNetworkLimit","inputs":[{"name":"subnetwork","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"error","name":"AccessControlBadConfirmation","inputs":[]},{"type":"error","name":"AccessControlUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"neededRole","type":"bytes32","internalType":"bytes32"}]},{"type":"error","name":"AlreadySet","inputs":[]},{"type":"error","name":"ExternalCall","inputs":[]},{"type":"error","name":"InsufficientHookGas","inputs":[]},{"type":"error","name":"InvalidInitialization","inputs":[]},{"type":"error","name":"NotInitialized","inputs":[]},{"type":"error","name":"NotInitializing","inputs":[]},{"type":"error","name":"NotNetwork","inputs":[]},{"type":"error","name":"NotSlasher","inputs":[]},{"type":"error","name":"NotVault","inputs":[]},{"type":"error","name":"ReentrancyGuardReentrantCall","inputs":[]}],"bytecode":{"object":"0x6101c03461027157618ce76001600160401b03601f38839003908101601f191684019082821185831017610202578085916040958694855283398101031261027157610056602061004f85610275565b9401610275565b90306080527ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805460ff81861c166102605780838080931603610220575b5050505f60a0525f60c0525f60e052610100935f8552610120935f8552610140905f825261016092808452815161387d8082019082821088831117610202578389849361010093611ef286393081526001600160a01b0391821660208201529116604082015260600190565b03905ff09485156102165760018060a01b0396876101809716875283519261357891828501938585109085111761020257849361015c9361576f86393081526001600160a01b0391821660208201529116604082015260600190565b03905ff09485156101f8576101a0951685525194611c68968761028a883960805187505060a05187610623015260c05187610b5f015260e05187818161048f0152610b980152518681816102c70152611a4b01525185818161030b015261163d01525184818161034f01526116bb015251838181610a3d0152611190015251828181610283015261148f015251818181610dfa01526115510152f35b50513d5f823e3d90fd5b634e487b7160e01b5f52604160045260245ffd5b82513d5f823e3d90fd5b6001600160401b03191617905582518181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a15f8181610094565b845163f92ee8a960e01b8152600490fd5b5f80fd5b51906001600160a01b03821682036102715756fe60806040526004361015610011575f80fd5b5f3560e01c806301ffc9a714610214578063075db0361461020f578063103f29071461020a578063128e5d82146102055780631a80e500146102005780631bf10a3e146101fb57806323f752d5146101f6578063248a9ca3146101f157806325dc9708146101ec5780632dd31000146101e75780632f2ff15d146101e257806336568abe146101dd5780633dfd3873146101d8578063439fab91146101d3578063557cab44146101ce5780636679191e146101c95780637f5a7c7b146101c457806391d14854146101bf5780639b656b22146101ba5780639f86fd85146101b5578063a217fddf146101b0578063bb24fe8a146101ab578063c0cd7c3e146101a6578063d15b740e146101a1578063d547741f1461019c578063e02f693714610197578063e102831a14610192578063e49561ee1461018d578063fbfa77cf14610188578063fd4d447c14610183578063ff54740f1461017e5763ffa1ad7414610179575f80fd5b61108a565b61106d565b61103b565b611014565b610e29565b610de5565b610d02565b610bf1565b610bc7565b610b83565b610b40565b610b26565b610a6c565b610a28565b6109ca565b6109a2565b610968565b61094c565b61080f565b6106e9565b61069e565b610652565b61060e565b6105f1565b6105b8565b61043c565b610407565b61033a565b6102f6565b6102b2565b61026e565b3461026a57602036600319011261026a5760043563ffffffff60e01b811680910361026a57602090637965db0b60e01b8114908115610259575b506040519015158152f35b6301ffc9a760e01b1490505f61024e565b5f80fd5b3461026a575f36600319011261026a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461026a575f36600319011261026a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461026a575f36600319011261026a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461026a575f36600319011261026a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b6001600160a01b0381160361026a57565b6064359065ffffffffffff8216820361026a57565b608090600319011261026a576004356103bc8161037e565b90602435906044356103cd8161037e565b9060643565ffffffffffff8116810361026a5790565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b3461026a5761043861042461041b366103a4565b92919091611168565b6040519182916020835260208301906103e3565b0390f35b3461026a57604036600319011261026a576004356001600160601b038116810361026a576024359061046c611732565b6040516302910f8b60e31b81523360048201526020816024816001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165afa9081156105b3575f91610584575b5015610572576001600160601b03166bffffffffffffffffffffffff193360601b161790806104f6835f52600260205260405f2090565b541461056057610545817fc67e7929681aa1bccd63f52b3799bf5805f3009f197db6fdf584b14f7fbf608c92610534855f52600260205260405f2090565b556040519081529081906020820190565b0390a261055e60015f80516020611bf383398151915255565b005b60405163a741a04560e01b8152600490fd5b6040516323d53b9760e21b8152600490fd5b6105a6915060203d6020116105ac575b61059e8183610c71565b8101906113b9565b5f6104bf565b503d610594565b6110bd565b3461026a57602036600319011261026a576004355f525f80516020611bd38339815191526020526020600160405f200154604051908152f35b3461026a57610438610424610605366103a4565b929190916113f0565b3461026a575f36600319011261026a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461026a57604036600319011261026a5761055e6024356004356106758261037e565b805f525f80516020611bd3833981519152602052610699600160405f200154611761565b611918565b3461026a57604036600319011261026a576024356106bb8161037e565b336001600160a01b038216036106d75761055e9060043561194e565b60405163334bd91960e11b8152600490fd5b3461026a57602036600319011261026a576004356107068161037e565b61070e611732565b335f9081527f9ebbcbe0d2961d3fbe56ca6f679bc753bd848d3e6bb3eaf9041c51b286881d2c60205260409020547fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c9060ff16156107c457506001546001600160a01b039182169181168214610560576001600160a01b03191681176001557f5bbb1d3ebb6a3ad2a0f17ff35e579a83af60604d1d3c2a4c83c62adecadf666d5f80a260015f80516020611bf383398151915255005b6044906040519063e2517d3f60e01b82523360048301526024820152fd5b9181601f8401121561026a578235916001600160401b03831161026a576020838186019501011161026a57565b3461026a57602036600319011261026a576001600160401b0360043581811161026a576108409036906004016107e2565b5f80516020611c13833981519152549260ff8460401c1615931680159081610944575b600114908161093a575b159081610931575b5061091f575f80516020611c13833981519152805467ffffffffffffffff191660011790556108a891836108f657611a16565b6108ae57005b5f80516020611c13833981519152805460ff60401b19169055604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a1005b5f80516020611c13833981519152805460ff60401b191668010000000000000000179055611a16565b60405163f92ee8a960e01b8152600490fd5b9050155f610875565b303b15915061086d565b849150610863565b3461026a575f36600319011261026a576020604051614e208152f35b3461026a575f36600319011261026a5760206040517fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c8152f35b3461026a575f36600319011261026a576001546040516001600160a01b039091168152602090f35b3461026a57604036600319011261026a57602060ff610a1c6024356109ee8161037e565b6004355f525f80516020611bd3833981519152845260405f209060018060a01b03165f5260205260405f2090565b54166040519015158152f35b3461026a575f36600319011261026a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461026a5760408060031936011261026a57600435610a8a8161037e565b602435906001600160401b03821161026a575f8091610ab0610b149436906004016107e2565b908187519283928337810184815203915af43d15610b1c57610b063d610ad581610ca1565b90610ae286519283610c71565b81523d5f602083013e5b8451948593151560208501528084015260608301906103e3565b03601f198101835282610c71565b805190602001fd5b610b066060610aec565b3461026a575f36600319011261026a5760206040515f8152f35b3461026a575f36600319011261026a5760206040516001600160401b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461026a575f36600319011261026a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461026a57602036600319011261026a576004355f526002602052602060405f2054604051908152f35b3461026a57604036600319011261026a5761055e602435600435610c148261037e565b805f525f80516020611bd3833981519152602052610c38600160405f200154611761565b61194e565b634e487b7160e01b5f52604160045260245ffd5b604081019081106001600160401b03821117610c6c57604052565b610c3d565b90601f801991011681019081106001600160401b03821117610c6c57604052565b60405190610c9f82610c51565b565b6001600160401b038111610c6c57601f01601f191660200190565b81601f8201121561026a57803590610cd382610ca1565b92610ce16040519485610c71565b8284526020838301011161026a57815f926020809301838601378301015290565b3461026a5760808060031936011261026a57610d1f60243561037e565b60443565ffffffffffff81160361026a576001600160401b0360643581811161026a57610d50903690600401610cbc565b5060606020604051610d6181610c51565b828152015260605180610d79575b60206040515f8152f35b8281016020821261026a5783519183831161026a5782604091031261026a5760405193610da585610c51565b8281015184811161026a578282610dbe928601016110c8565b855260a083015193841161026a57602093610dda9301016110c8565b9101525f8080610d6f565b3461026a575f36600319011261026a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461026a5760a036600319011261026a57602435600435610e498261037e565b60443591610e5561038f565b90608435906001600160401b03821161026a57610e7760049236908401610cbc565b610e7f611732565b5f54602090610ea490610e98906001600160a01b031681565b6001600160a01b031690565b60405163b134427160e01b815294859182905afa9283156105b3575f93610fe3575b506001600160a01b039283163303610fd1576001546001600160a01b0316838116610f46575b50506040805195865265ffffffffffff909316602086015216927f741a5de99085c0d660f3e4192217b0ffb0ea4e35a0480de48e857a4bc3ee36ed91819081015b0390a361055e60015f80516020611bf383398151915255565b909360405194610f7d86610f6f602082019363724ab0f760e11b8552858c898d602487016115d0565b03601f198101885287610c71565b62042e305a10610fbf575f610f2d938192827f741a5de99085c0d660f3e4192217b0ffb0ea4e35a0480de48e857a4bc3ee36ed9951926203d090f15093610eec565b604051638072475160e01b8152600490fd5b60405163dabc4ad960e01b8152600490fd5b61100691935060203d60201161100d575b610ffe8183610c71565b8101906110a5565b915f610ec6565b503d610ff4565b3461026a575f36600319011261026a575f546040516001600160a01b039091168152602090f35b3461026a57604036600319011261026a57602061106560243561105d8161037e565b600435611608565b604051908152f35b3461026a575f36600319011261026a5760206040516203d0908152f35b3461026a575f36600319011261026a57602060405160018152f35b9081602091031261026a57516110ba8161037e565b90565b6040513d5f823e3d90fd5b81601f8201121561026a578051906110df82610ca1565b926110ed6040519485610c71565b8284526020838301011161026a57815f9260208093018386015e8301015290565b9060208282031261026a5781516001600160401b03811161026a576110ba92016110c8565b906110ba91602081526020611153835160408385015260608401906103e3565b920151906040601f19828503019101526103e3565b604080516309472ec160e11b8152606096956001600160a01b039384169591946020949192917f0000000000000000000000000000000000000000000000000000000000000000169085876004818b5afa9687156105b3575f9761139a575b50845163fbfa77cf60e01b81529686886004818c5afa80156105b357855f9161123b9a839161137d575b508851636a531c3160e11b8082526001600160a01b039586166004830152858916602483015294909116604482015265ffffffffffff909116606482015298899081906084820190565b0381865afa9788156105b3575f98611358575b508686979899600496975196878092621a80e560e81b82525afa9485156105b3575f95611335575b5086519081526001600160a01b03948516600482015293909216602484015260609190911c604483015265ffffffffffff9092166064820152905f9082908180608481015b03915afa9081156105b3575f91611313575b50835115801590611309575b6112e35750505050565b6110ba9394955090610b06916112f7610c92565b95865283860152519384928301611133565b50805115156112d9565b61132f91503d805f833e6113278183610c71565b81019061110e565b5f6112cd565b5f95506113516112bb918a3d8c1161100d57610ffe8183610c71565b9550611276565b8798509661137360049697983d805f833e6113278183610c71565b989796955061124e565b61139491508a3d8c1161100d57610ffe8183610c71565b5f6111f1565b6113b2919750863d881161100d57610ffe8183610c71565b955f6111c7565b9081602091031261026a5751801515810361026a5790565b9081602091031261026a57516001600160401b038116810361026a5790565b604051635d927f4560e11b8082526060969594936001600160a01b03939092909160209190858416908383600481855afa9283156105b3575f936115b1575b506001600160401b039283166114d65750506040516304bb92e160e31b81526001600160a01b0393841660048201526024810194909452505092909216604483015265ffffffffffff9290921660648201529192505f90829060849082907f0000000000000000000000000000000000000000000000000000000000000000165afa9081156105b3575f916114c2575090565b6110ba91503d805f833e6113278183610c71565b839060046040518094819382525afa9081156105b3576001935f92611584575b50501614611505575050505050565b6040516304bb92e160e31b81526001600160a01b039182166004820152602481019290925292909216604483015265ffffffffffff9290921660648201529192505f90829060849082907f0000000000000000000000000000000000000000000000000000000000000000165afa9081156105b3575f916114c2575090565b6115a39250803d106115aa575b61159b8183610c71565b8101906113d1565b5f806114f6565b503d611591565b6115c9919350843d86116115aa5761159b8183610c71565b915f61142f565b919360a0936110ba969565ffffffffffff938552600180871b03166020850152604084015216606082015281608082015201906103e3565b5f546040516308834cb560e21b8082526001600160a01b038581166004840152928316602483015293602092909183816044817f000000000000000000000000000000000000000000000000000000000000000086165afa9081156105b3575f91611715575b501593841561168a575b505050509050611686575f90565b5f90565b6040519586526001600160a01b0392909216600486015260609190911c6024850152909291508290829060449082907f0000000000000000000000000000000000000000000000000000000000000000165afa9182156105b3575f926116f8575b505015805f808080611678565b61170e9250803d106105ac5761059e8183610c71565b5f806116eb565b61172c9150843d86116105ac5761059e8183610c71565b5f61166e565b5f80516020611bf3833981519152600281541461174f5760029055565b604051633ee5aeb560e01b8152600490fd5b5f8181525f80516020611bd38339815191526020908152604080832033845290915290205460ff16156107c45750565b6001600160a01b0381165f9081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d60205260409020545f80516020611bd38339815191529060ff1661183c575f808052602091825260408082206001600160a01b038516835290925220805460ff1916600117905533906001600160a01b03165f7f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d8180a4600190565b50505f90565b6001600160a01b0381165f9081527f9ebbcbe0d2961d3fbe56ca6f679bc753bd848d3e6bb3eaf9041c51b286881d2c602052604090207fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c905f80516020611bd38339815191529060ff905b5416611911575f828152602091825260408082206001600160a01b038616835290925220805460ff1916600117905533916001600160a01b0316907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d5f80a4600190565b5050505f90565b5f8181525f80516020611bd3833981519152602081815260408084206001600160a01b038716855290915290912060ff906118ad565b5f8181525f80516020611bd3833981519152602081815260408084206001600160a01b03871685529091529091205460ff1615611911575f828152602091825260408082206001600160a01b038616835290925220805460ff1916905533916001600160a01b0316907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b5f80a4600190565b91909160408184031261026a5780356119f88161037e565b9260208201356001600160401b03811161026a576110ba9201610cbc565b611a22918101906119e0565b506040516302910f8b60e31b81526001600160a01b0391821660048201819052906020816024817f000000000000000000000000000000000000000000000000000000000000000087165afa9081156105b3575f91611b34575b5015611b2257611aa990611a8e611b53565b60018060a01b03166001600160601b0360a01b5f5416175f55565b611afc6040611ab6611b76565b6020810151600180546001600160a01b0319166001600160a01b0390921691909117905580516001600160a01b0316848116611b12575b5001516001600160a01b031690565b908116611b065750565b611b0f90611842565b50565b611b1b90611791565b505f611aed565b6040516362df054560e01b8152600490fd5b611b4d915060203d6020116105ac5761059e8183610c71565b5f611a7c565b611b5b611ba4565b611b63611ba4565b60015f80516020611bf383398151915255565b60405190606082018281106001600160401b03821117610c6c576040525f6040838281528260208201520152565b60ff5f80516020611c138339815191525460401c1615611bc057565b604051631afcd79f60e31b8152600490fdfe02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268009b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a264697066735822122041486f336ebdaac65e19ef0126b717f646b1c1410340c7bde35e3c51d12dd2d964736f6c634300081900336101c0346101cf57601f61387d38819003918201601f19168301916001600160401b0391828411858510176101d35781606092869260409687528339810103126101cf5761004c836101e7565b926100648361005d602084016101e7565b92016101e7565b91306080527ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a009081549060ff82871c166101be57808083160361017a575b5050505f60a0525f60c0525f60e052610100935f8552610120935f8552610140905f82526101609283526101809384526101a0948552519461368196876101fc88396080518781816105a001528181610fd70152611629015260a051876109e9015260c051876112ac015260e05187818161084b01526112e5015251868181610512015261298501525185818161055601528181611e330152611f3b0152518481816107c901528181611d9a0152611fb9015251838181610e95015261194d015251828181610d9701526119ee015251816110490152f35b6001600160401b0319909116811790915583519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a15f80806100a2565b855163f92ee8a960e01b8152600490fd5b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b51906001600160a01b03821682036101cf5756fe60806040526004361015610011575f80fd5b5f3560e01c806301ffc9a71461030457806302145348146102ff57806307f9d5fd146102fa578063103f2907146102f5578063128e5d82146102f0578063197aa7ea146102eb5780631a7a7044146102e65780631a80e500146102e157806323f752d5146102dc578063248a9ca3146102d757806325dc9708146102d25780632dd31000146102cd5780632f2ff15d146102c857806336568abe146102c35780633dfd3873146102be5780633eb22c0f146102b957806342c53e33146102b4578063439fab91146102af57806345e78fcb146102aa578063557cab44146102a55780635d32a1c9146102a05780636679191e1461029b57806379d89614146102965780637d24bb27146102915780637f5a7c7b1461028c5780638b3f10b01461028757806391d1485414610282578063987b3ee81461027d5780639b656b22146102785780639f86fd8514610273578063a217fddf1461026e578063a33bc28714610269578063b549ef1f14610264578063bb24fe8a1461025f578063c0cd7c3e1461025a578063c43dc03f14610255578063d15b740e14610250578063d547741f1461024b578063da749d2b14610246578063e02f693714610241578063e49561ee1461023c578063e78eb6ae14610237578063ed4d89e514610232578063fbfa77cf1461022d578063fd4d447c14610228578063ff54740f146102235763ffa1ad741461021e575f80fd5b6116dc565b6116bf565b611695565b61166e565b61160e565b6115d4565b6113e9565b6113cd565b6113b3565b611367565b61133d565b611314565b6112d0565b61128d565b611273565b611126565b61110c565b611078565b611034565b610fa6565b610f48565b610f25565b610efd565b610ec4565b610e80565b610e46565b610e23565b610dc6565b610d82565b610c4a565b610bd1565b610ba8565b610aaf565b610a64565b610a18565b6109d4565b6109b7565b61097e565b6107f8565b6107b4565b61076e565b610585565b610541565b6104fd565b6104c8565b61035e565b3461035a57602036600319011261035a5760043563ffffffff60e01b811680910361035a57602090637965db0b60e01b8114908115610349575b506040519015158152f35b6301ffc9a760e01b1490505f61033e565b5f80fd5b3461035a5760408060031936011261035a57600435906024359061038061202e565b825f526002602052805f2054821161041a57825f526003602052816103a6825f206128d7565b1461040a5781610405916103f57e899d104fc3d8820bd96540612bcc5c448c8837b13b9f7faa43ad0728f0c14f946103e6875f52600360205260405f2090565b6103ef42612d7a565b90612176565b5050519081529081906020820190565b0390a2005b5163a741a04560e01b8152600490fd5b51631eefc06360e31b8152600490fd5b6001600160a01b0381160361035a57565b6024359065ffffffffffff8216820361035a57565b6064359065ffffffffffff8216820361035a57565b608090600319011261035a5760043561047d8161042a565b906024359060443561048e8161042a565b9060643565ffffffffffff8116810361035a5790565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b3461035a576104f96104e56104dc36610465565b92919091611736565b6040519182916020835260208301906104a4565b0390f35b3461035a575f36600319011261035a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461035a575f36600319011261035a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461035a57604036600319011261035a5761059e61043b565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163303610602576105e5906004355f52600360205260405f206122f5565b60408051941515855263ffffffff91909116602085015292915050f35b604051637ca475e560e11b8152600490fd5b634e487b7160e01b5f52604160045260245ffd5b604081019081106001600160401b0382111761064357604052565b610614565b606081019081106001600160401b0382111761064357604052565b60a081019081106001600160401b0382111761064357604052565b90601f801991011681019081106001600160401b0382111761064357604052565b604051906106ac82610663565b565b604051906106ac82610628565b6001600160401b03811161064357601f01601f191660200190565b81601f8201121561035a578035906106ed826106bb565b926106fb604051948561067e565b8284526020838301011161035a57815f926020809301838601378301015290565b90608060031983011261035a57600435916024356107398161042a565b9160443565ffffffffffff8116810361035a5791606435906001600160401b03821161035a5761076b916004016106d6565b90565b3461035a5760206107ac6107a76107843661071c565b939190925f526005865260405f209060018060a01b03165f5260205260405f2090565b61242d565b604051908152f35b3461035a575f36600319011261035a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461035a57604036600319011261035a576004356001600160601b038116810361035a5760243590610828612505565b6040516302910f8b60e31b81523360048201526020816024816001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165afa908115610979575f9161094a575b5015610938576001600160601b03166bffffffffffffffffffffffff193360601b161790806108b2835f52600260205260405f2090565b54146109265761090b817fc67e7929681aa1bccd63f52b3799bf5805f3009f197db6fdf584b14f7fbf608c926108f0855f52600260205260405f2090565b556108fb8185612534565b6040519081529081906020820190565b0390a261092460015f8051602061360c83398151915255565b005b60405163a741a04560e01b8152600490fd5b6040516323d53b9760e21b8152600490fd5b61096c915060203d602011610972575b610964818361067e565b8101906117e8565b5f61087b565b503d61095a565b6117fc565b3461035a57602036600319011261035a576004355f525f805160206135ec8339815191526020526020600160405f200154604051908152f35b3461035a576104f96104e56109cb36610465565b92919091611904565b3461035a575f36600319011261035a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461035a57604036600319011261035a57610924602435600435610a3b8261042a565b805f525f805160206135ec833981519152602052610a5f600160405f2001546120e1565b61280f565b3461035a57604036600319011261035a57602435610a818161042a565b336001600160a01b03821603610a9d5761092490600435612845565b60405163334bd91960e11b8152600490fd5b3461035a57602036600319011261035a57600435610acc8161042a565b610ad4612505565b335f9081527f9ebbcbe0d2961d3fbe56ca6f679bc753bd848d3e6bb3eaf9041c51b286881d2c60205260409020547fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c9060ff1615610b8a57506001546001600160a01b039182169181168214610926576001600160a01b03191681176001557f5bbb1d3ebb6a3ad2a0f17ff35e579a83af60604d1d3c2a4c83c62adecadf666d5f80a260015f8051602061360c83398151915255005b6044906040519063e2517d3f60e01b82523360048301526024820152fd5b3461035a57602036600319011261035a576004355f52600360205260206107ac60405f206128d7565b3461035a57604036600319011261035a5760206107ac610c18602435610bf68161042a565b6004355f526005845260405f209060018060a01b03165f5260205260405f2090565b6128d7565b9181601f8401121561035a578235916001600160401b03831161035a576020838186019501011161035a57565b3461035a57602036600319011261035a576001600160401b0360043581811161035a57610c7b903690600401610c1d565b5f8051602061362c833981519152549260ff8460401c1615931680159081610d7a575b6001149081610d70575b159081610d67575b50610d55575f8051602061362c833981519152805467ffffffffffffffff19166001179055610ce39183610d3157612950565b610ce957005b5f8051602061362c833981519152805460ff60401b19169055604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a1005b5f8051602061362c833981519152805460ff60401b1916600160401b179055612950565b60405163f92ee8a960e01b8152600490fd5b9050155f610cb0565b303b159150610ca8565b849150610c9e565b3461035a575f36600319011261035a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461035a575f36600319011261035a576020604051614e208152f35b606060031982011261035a576004359160243565ffffffffffff8116810361035a5791604435906001600160401b03821161035a5761076b916004016106d6565b3461035a5760206107ac610e3636610de2565b915f526003845260405f2061242d565b3461035a575f36600319011261035a5760206040517fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c8152f35b3461035a575f36600319011261035a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461035a575f36600319011261035a5760206040517e8b9b1e5fa9cf3b14f87f435649268146305ddf689f082e5961a335b07a9abf8152f35b3461035a575f36600319011261035a576001546040516001600160a01b039091168152602090f35b3461035a5760206107ac610f3836610de2565b915f526004845260405f2061242d565b3461035a57604036600319011261035a57602060ff610f9a602435610f6c8161042a565b6004355f525f805160206135ec833981519152845260405f209060018060a01b03165f5260205260405f2090565b54166040519015158152f35b3461035a57606036600319011261035a57602435610fc38161042a565b60443565ffffffffffff8116810361035a577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633036106025761102f6105e5926004355f52600560205260405f209060018060a01b03165f5260205260405f2090565b6122f5565b3461035a575f36600319011261035a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461035a57604036600319011261035a576004356110958161042a565b6024356001600160401b03811161035a575f916110b783923690600401610c1d565b90816040519283928337810184815203915af46111046110d5611b60565b916110f66040519384921515602084015260408084015260608301906104a4565b03601f19810183528261067e565b805190602001fd5b3461035a575f36600319011261035a5760206040515f8152f35b3461035a57606036600319011261035a576024356004356111468261042a565b6044359161115261208a565b5f8281526005602090815260408083206001600160a01b0385168452909152902061117c906128d7565b838114610926577f739a5a3ec0ff71e2386d0013deac5f44e0935a98def2e2a5ddf9a709518c8294916111ef61123c92855f52600460205260405f20906111e9886111e46111c942612d7a565b936111df610c188c5f52600460205260405f2090565b611bb6565b611bd1565b91612176565b5050611220856103e68361120b885f52600560205260405f2090565b9060018060a01b03165f5260205260405f2090565b50506040519485526001600160a01b0316939081906020820190565b0390a3005b606090600319011261035a576004356112598161042a565b906024359060443565ffffffffffff8116810361035a5790565b3461035a576104f96104e561128736611241565b91611bde565b3461035a575f36600319011261035a5760206040516001600160401b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461035a575f36600319011261035a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461035a57602036600319011261035a576004355f52600460205260206107ac60405f206128d7565b3461035a57602036600319011261035a576004355f526002602052602060405f2054604051908152f35b3461035a57604036600319011261035a5761092460243560043561138a8261042a565b805f525f805160206135ec8339815191526020526113ae600160405f2001546120e1565b612845565b3461035a576104f96104e56113c736611241565b91611c28565b3461035a5760206107ac6113e03661071c565b92919091611d24565b3461035a5760a036600319011261035a576024356004356114098261042a565b60443591611415610450565b90608435906001600160401b03821161035a57611437600492369084016106d6565b61143f612505565b5f5460209061146490611458906001600160a01b031681565b6001600160a01b031690565b60405163b134427160e01b815294859182905afa928315610979575f936115a3575b506001600160a01b039283163303611591576001546001600160a01b0316838116611506575b50506040805195865265ffffffffffff909316602086015216927f741a5de99085c0d660f3e4192217b0ffb0ea4e35a0480de48e857a4bc3ee36ed91819081015b0390a361092460015f8051602061360c83398151915255565b90936040519461153d8661152f602082019363724ab0f760e11b8552858c898d60248701611eae565b03601f19810188528761067e565b62042e305a1061157f575f6114ed938192827f741a5de99085c0d660f3e4192217b0ffb0ea4e35a0480de48e857a4bc3ee36ed9951926203d090f150936114ac565b604051638072475160e01b8152600490fd5b60405163dabc4ad960e01b8152600490fd5b6115c691935060203d6020116115cd575b6115be818361067e565b810190611872565b915f611486565b503d6115b4565b3461035a575f36600319011261035a5760206040517f1312a1cf530e56add9be4fd84db9051dcc7635952f09f735f9a29405b55846258152f35b3461035a57604036600319011261035a5761162761043b565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163303610602576105e5906004355f52600460205260405f206122f5565b3461035a575f36600319011261035a575f546040516001600160a01b039091168152602090f35b3461035a57604036600319011261035a5760206107ac6024356116b78161042a565b600435611f04565b3461035a575f36600319011261035a5760206040516203d0908152f35b3461035a575f36600319011261035a57602060405160018152f35b5190811515820361035a57565b519063ffffffff8216820361035a57565b919082604091031261035a5761076b602061172f846116f7565b9301611704565b906117869165ffffffffffff6117959496956060976040519463130f67dd60e31b6020870152602486015260018060a01b031660448501521660648301526064825261178182610663565b612238565b60208082518301019101611715565b9061179d5750565b90915063ffffffff604051911660208201526020815261076b81610628565b5f9081526005602090815260408083206001600160a01b0390941683529290522061076b92919061242d565b9081602091031261035a5761076b906116f7565b6040513d5f823e3d90fd5b81601f8201121561035a5780519061181e826106bb565b9261182c604051948561067e565b8284526020838301011161035a57815f9260208093018386015e8301015290565b9060208282031261035a5781516001600160401b03811161035a5761076b9201611807565b9081602091031261035a575161076b8161042a565b9061076b91602081526118a6825160a0602084015260c08301906104a4565b9060a060806118f46118e16118cd602088015196601f1997888883030160408901526104a4565b6040880151878783030160608801526104a4565b60608701518686830301848701526104a4565b94015192828503019101526104a4565b604051630df8851f60e11b81526001600160a01b03828116600483015260248201849052848116604483015265ffffffffffff8616606483015295606095909491935f856084817f00000000000000000000000000000000000000000000000000000000000000008c165afa948515610979575f95611b18575b5060405163fbfa77cf60e01b8152602081600481888d165afa908115610979576119ea995f9285928491611af9575b5060405163192c0ff760e21b81526001600160a01b03909116600482015265ffffffffffff909216602483015290998a9190829081906044820190565b03917f0000000000000000000000000000000000000000000000000000000000000000165afa978815610979575f98611acf575b509081611a3b82611a3381611a419689611c28565b958388611736565b94611bde565b90835115801590611ac5575b8015611abb575b8015611ab1575b8015611aa7575b611a6f5750505050909150565b6110f6955061076b9496611a8161069f565b948552602085015260408401526060830152608082015260405192839160208301611887565b5081511515611a62565b5082511515611a5b565b5080511515611a54565b5086511515611a4d565b611a4192919850611af1903d805f833e611ae9818361067e565b81019061184d565b979091611a1e565b611b12915060203d6020116115cd576115be818361067e565b5f6119ad565b611b2d9195503d805f833e611ae9818361067e565b935f61197e565b9061076b92915f52600360205260405f2061242d565b9061076b92915f52600460205260405f2061242d565b3d15611b8a573d90611b71826106bb565b91611b7f604051938461067e565b82523d5f602084013e565b606090565b634e487b7160e01b5f52601160045260245ffd5b5f19810191908211611bb157565b611b8f565b91908203918211611bb157565b9060018201809211611bb157565b91908201809211611bb157565b60405163ed4d89e560e01b6020820152602481019290925265ffffffffffff909216604482015260609291611795916117869161178182606481015b03601f19810184528361067e565b604051630cbd53f560e11b6020820152602481019290925265ffffffffffff90921660448201526060929161179591611786916117818260648101611c1a565b60405190611c7582610628565b60606020838281520152565b9060208282031261035a5781516001600160401b039283821161035a57019060408282031261035a5760405192611cb784610628565b825181811161035a5782611ccc918501611807565b8452602083015190811161035a57611ce49201611807565b602082015290565b6001600160a01b0391821681529116602082015265ffffffffffff909116604082015260806060820181905261076b929101906104a4565b92611d3490929192828486612bb5565b929093611d3f611c68565b93805180611e92575b50508415938415611dfc575b8415611d6b575b50505050611d665790565b505f90565b602080949550611d96910151604051958694859463530e1d4360e01b865260601c9060048601611cec565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa908115610979575f91611ddd575b50155f808080611d5b565b611df6915060203d60201161097257610964818361067e565b5f611dd2565b5f549094506001600160a01b0316602084865192611e2f604051948593849363530e1d4360e01b85528960048601611cec565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa908115610979575f91611e73575b501593611d54565b611e8c915060203d60201161097257610964818361067e565b5f611e6b565b611ea6929550602080918301019101611c81565b925f80611d48565b919360a09361076b969565ffffffffffff938552600180871b03166020850152604084015216606082015281608082015201906104a4565b8115611ef0570490565b634e487b7160e01b5f52601260045260245ffd5b5f546040516308834cb560e21b8082526001600160a01b0385811660048401529283166024830152929392602092909183816044817f000000000000000000000000000000000000000000000000000000000000000086165afa908115610979575f91612011575b5015918215611f8d575b50509050611f875761076b91612cc5565b50505f90565b6040519081526001600160a01b0385166004820152606086901c602482015291508290829060449082907f0000000000000000000000000000000000000000000000000000000000000000165afa918215610979575f92611ff4575b505015805f80611f76565b61200a9250803d1061097257610964818361067e565b5f80611fe9565b6120289150843d861161097257610964818361067e565b5f611f6c565b335f9081527f72a65082a5691803ab2b62c9bc729b34205ba1b183d950896526b2fd8714d0c7602052604090207e8b9b1e5fa9cf3b14f87f435649268146305ddf689f082e5961a335b07a9abf9060ff905b541615610b8a5750565b335f9081527f8f2dae99798887da307a4daa2c2d11f840b0cb9a6a67822660c531e9ad14dd00602052604090207f1312a1cf530e56add9be4fd84db9051dcc7635952f09f735f9a29405b55846259060ff90612080565b5f8181525f805160206135ec83398151915260209081526040808320338452909152902060ff90612080565b634e487b7160e01b5f52603260045260245ffd5b8054821015612136575f5260205f2001905f90565b61210d565b90815491600160401b831015610643578261215e9160016106ac95018155612121565b90919082549060031b91821b915f19901b1916179055565b90929192600182019081548015612208575b508461219384612dac565b509490928454936121a3836128d7565b96816121f3575b50156121d0575050505f198101908111611bb15761215e85916121cc93612121565b9190565b6121cc9492936121ec926001600160d01b0390911691906134a7565b505061213b565b65ffffffffffff83811691161490505f6121aa565b600160401b811015610643578060016122249201845583612121565b8154905f199060031b1b191690555f612188565b5f9190829160405161226d816110f66020820194639f86fd8560e01b86523060248401526040604484015260648301906104a4565b51915afa5061227a611b60565b8051810160408282031261035a57612294602083016116f7565b916040810151916001600160401b03831161035a576122ba926020809201920101611807565b90156122c35790565b805190811561035a57602001fd5b906040516122de81610628565b915465ffffffffffff8116835260301c6020830152565b91908254905f82916005841161239d575b612311935085612f2e565b9081156123915761238a61238161237b61237161234361233e61233388611ba3565b895f5260205f200190565b6122d1565b96600161236a602061235b8b5165ffffffffffff1690565b9a01516001600160d01b031690565b9101612121565b90549060031b1c90565b93611ba3565b63ffffffff1690565b6001939291565b5f925082915081908190565b91926123a881612dfb565b8103908111611bb15761231193865f526123dc6123d18360205f200165ffffffffffff90541690565b65ffffffffffff1690565b65ffffffffffff851610156123f2575091612306565b9291506123fe90611bc3565b90612306565b9081602091031261035a5761076b90611704565b90600163ffffffff80931601918211611bb157565b918051156124fb578060208061244893518301019101612404565b916124538382613060565b92612464845165ffffffffffff1690565b9065ffffffffffff80851692168281146124ef578211918261249a575b50506124915761076b9250612f90565b50506020015190565b9091506124a78354611ba3565b63ffffffff8316149182156124c0575b50505f80612481565b6124e79192506124db6124d56123d192612418565b85613060565b5165ffffffffffff1690565b115f806124b7565b50505050506020015190565b5061076b91612f90565b5f8051602061360c83398151915260028154146125225760029055565b604051633ee5aeb560e01b8152600490fd5b90815f52600360205260405f208161254b82612dac565b9193905083156125a95761256b916001600160d01b031690600101612121565b90549060031b1c5b8261259f575b5050612583575050565b61259b915f52600360205260405f206103ef42612d7a565b5050565b119050815f612579565b50505f612573565b6001600160a01b0381165f9081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d60205260409020545f805160206135ec8339815191529060ff16611f87575f808052602091825260408082206001600160a01b038516835290925220805460ff1916600117905533906001600160a01b03165f7f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d8180a4600190565b6001600160a01b0381165f9081527f9ebbcbe0d2961d3fbe56ca6f679bc753bd848d3e6bb3eaf9041c51b286881d2c602052604090207fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c905f805160206135ec8339815191529060ff905b541661272b575f828152602091825260408082206001600160a01b038616835290925220805460ff1916600117905533916001600160a01b0316907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d5f80a4600190565b5050505f90565b6001600160a01b0381165f9081527f72a65082a5691803ab2b62c9bc729b34205ba1b183d950896526b2fd8714d0c7602052604090207e8b9b1e5fa9cf3b14f87f435649268146305ddf689f082e5961a335b07a9abf905f805160206135ec8339815191529060ff906126c7565b6001600160a01b0381165f9081527f8f2dae99798887da307a4daa2c2d11f840b0cb9a6a67822660c531e9ad14dd00602052604090207f1312a1cf530e56add9be4fd84db9051dcc7635952f09f735f9a29405b5584625905f805160206135ec8339815191529060ff906126c7565b5f8181525f805160206135ec833981519152602081815260408084206001600160a01b038716855290915290912060ff906126c7565b5f8181525f805160206135ec833981519152602081815260408084206001600160a01b03871685529091529091205460ff161561272b575f828152602091825260408082206001600160a01b038616835290925220805460ff1916905533916001600160a01b0316907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b5f80a4600190565b8054806128fc57505f5b6001600160d01b03811615611f875760016123719201612121565b5f19908082810111611bb157825f5260205f2001015460301c6128e1565b91909160408184031261035a5780356129328161042a565b9260208201356001600160401b03811161035a5761076b92016106d6565b61295c9181019061291a565b6040516302910f8b60e31b81526001600160a01b039283166004820181905291906020816024817f000000000000000000000000000000000000000000000000000000000000000088165afa908115610979575f91612a6f575b5015612a5d576129f16040916129ec612a37946129d16130c8565b60018060a01b03166001600160601b0360a01b5f5416175f55565b613248565b6020810151600180546001600160a01b0319166001600160a01b0390921691909117905580516001600160a01b0316848116612a4d575b5001516001600160a01b031690565b908116612a415750565b612a4a9061265c565b50565b612a56906125b1565b505f612a28565b6040516362df054560e01b8152600490fd5b612a88915060203d60201161097257610964818361067e565b5f6129b6565b6040519060a082018281106001600160401b038211176106435760405281608060609182815282602082015282604082015282808201520152565b9060208282031261035a5781516001600160401b039283821161035a57019060a08282031261035a57612afa61069f565b92825181811161035a5782612b10918501611807565b8452602083015181811161035a5782612b2a918501611807565b6020850152604083015181811161035a5782612b47918501611807565b6040850152606083015181811161035a5782612b64918501611807565b6060850152608083015190811161035a57612b7f9201611807565b608082015290565b9081602091031261035a575190565b60409065ffffffffffff61076b949316815281602082015201906104a4565b91939293612bc1612a8e565b94805180612ca9575b5050612bdb60608601518285611b4a565b9182612bed57505050509051905f9190565b612c01612c3b9183608089015191876117bc565b916020612c1a6114586114585f5460018060a01b031690565b8189015190604051808096819463810da75d60e01b83528760048401612b96565b03915afa801561097957612c7195612c6b935f92612c76575b50612c65919260408a015191611b34565b906133a8565b906133ba565b915190565b612c659250612c9c9060203d602011612ca2575b612c94818361067e565b810190612b87565b91612c54565b503d612c8a565b612cbd929650602080918301019101612ac9565b935f80612bca565b90612cdb610c18835f52600460205260405f2090565b9081612ce8575050505f90565b610c18612d019161120b855f52600560205260405f2090565b5f5460405163bd49c35f60e01b815290602090829060049082906001600160a01b03165afa80156109795761076b94612c6b925f92612d51575b50610c18612c65915f52600360205260405f2090565b612c65919250612d72610c189160203d602011612ca257612c94818361067e565b929150612d3b565b65ffffffffffff90818111612d8d571690565b604490604051906306dfcc6560e41b8252603060048301526024820152fd5b805480612dbd5750505f905f905f90565b5f19908082810111611bb157612dda925f5260205f2001016122d1565b9065ffffffffffff82511691602060018060d01b0391015116906001929190565b8015611d665780612c65612ec6612ebc612eb2612ea8612e9e612e94612e8a600161076b9a5f908b60801c80612f22575b508060401c80612f15575b508060201c80612f08575b508060101c80612efb575b508060081c80612eee575b508060041c80612ee1575b508060021c80612ed4575b50821c612ecd575b811c1b612e83818b611ee6565b0160011c90565b612e83818a611ee6565b612e838189611ee6565b612e838188611ee6565b612e838187611ee6565b612e838186611ee6565b612e838185611ee6565b8092611ee6565b8101612e76565b600291509101905f612e6e565b600491509101905f612e63565b600891509101905f612e58565b601091509101905f612e4d565b602091509101905f612e42565b604091509101905f612e37565b9150506080905f612e2c565b91905b838210612f3e5750505090565b909192808316906001818518811c8301809311611bb157855f5265ffffffffffff808460205f20015416908516105f14612f7d575050925b9190612f31565b909493508101809111611bb15791612f76565b908154905f829160058411612ffa575b612fab935084612f2e565b80612fd357505f905b6001600160d01b03821615611f875761076b9160016123719201612121565b612fed612fe2612ff492611ba3565b835f5260205f200190565b5460301c90565b90612fb4565b919261300581612dfb565b8103908111611bb157612fab93855f5265ffffffffffff808360205f20015416908516105f14613036575091612fa0565b92915061304290611bc3565b90612fa0565b6040519061305582610628565b5f6020838281520152565b906130896130836130aa92613073613048565b5061307c613048565b5084612121565b506122d1565b91600165ffffffffffff845116936020828060d01b03910151169101612121565b905490604051926130ba84610628565b835260031b1c602082015290565b6130d06135bd565b6130d86135bd565b60015f8051602061360c83398151915255565b604051906130f882610648565b5f6040838281528260208201520152565b81601f8201121561035a578051916020916001600160401b038411610643578360051b906040519461313d8584018761067e565b8552838086019282010192831161035a578301905b828210613160575050505090565b838091835161316e8161042a565b815201910190613152565b9060208282031261035a5781516001600160401b039283821161035a5701908181039260a0841261035a576060604051946131b386610648565b1261035a576040516131c481610648565b83516131cf8161042a565b815260208401516131df8161042a565b602082015260408401516131f28161042a565b60408201528452606083015181811161035a5782613211918501613109565b6020850152608083015190811161035a5761322c9201613109565b604082015290565b80518210156121365760209160051b010190565b613264906132546130eb565b5060208082518301019101613179565b8051519091906001600160a01b0316158061338e575b61337c579060208101905f5b82518051821015613300576114586132a1836132ae93613234565b516001600160a01b031690565b156132ee576132d06132cc6132c76132a1848751613234565b612732565b1590565b6132dc57600101613286565b604051635140fefd60e11b8152600490fd5b6040516323cda06760e01b8152600490fd5b506040925050818101905f5b82518051821015613373576114586132a18361332793613234565b15613362576133456132cc6133406132a1848751613234565b6127a0565b6133515760010161330c565b8351635140fefd60e11b8152600490fd5b83516323cda06760e01b8152600490fd5b50509150505190565b6040516303501f5960e11b8152600490fd5b50602082015151158061327a57506040820151511561327a565b90808210156133b5575090565b905090565b9091828202915f198482099383808610950394808603951461343f578483111561342d57829109815f038216809204600280826003021880830282030280830282030280830282030280830282030280830282030280920290030293600183805f03040190848311900302920304170290565b60405163227bc15360e01b8152600490fd5b50509061076b9250611ee6565b8054600160401b8110156106435761346991600182018155612121565b61349457815160209092015160301b65ffffffffffff191665ffffffffffff92909216919091179055565b634e487b7160e01b5f525f60045260245ffd5b805492939291908215613594576134c361233e612fe285611ba3565b906134d4825165ffffffffffff1690565b65ffffffffffff84811691168110613582576121cc9460209488926135026123d1875165ffffffffffff1690565b0361354a575061353c9261351861352392611ba3565b905f5260205f200190565b9065ffffffffffff82549181199060301b169116179055565b01516001600160d01b031690565b91505061357d9161356a61355c6106ae565b65ffffffffffff9093168352565b6001600160d01b0388168286015261344c565b61353c565b604051632520601d60e01b8152600490fd5b6135b892506135a461355c6106ae565b6001600160d01b038516602083015261344c565b5f9190565b60ff5f8051602061362c8339815191525460401c16156135d957565b604051631afcd79f60e31b8152600490fdfe02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268009b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a2646970667358221220dc71151e359446372f65ddedaab6f31862570ef5d8ce33546dbf0285e530953a64736f6c634300081900336101c0346101c857601f61357838819003918201601f19168301916001600160401b0391828411858510176101cc5781606092869260409687528339810103126101c85761004c836101e0565b926100648361005d602084016101e0565b92016101e0565b91306080527ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a009081549060ff82871c166101b7578080831603610173575b5050505f60a0525f60c0525f60e052610100935f8552610120935f8552610140905f82526101609283526101809384526101a0948552519461338396876101f58839608051878181610696015261148c015260a0518761092d015260c0518761114b015260e0518781816107a101526111840152518681816104e2015261266601525185818161064c01528181611be00152611d0f01525184818161071f01528181611b470152611d8d015251838181610ebc015261179a015251828181610c8f015261183b0152518161104f0152f35b6001600160401b0319909116811790915583519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a15f80806100a2565b855163f92ee8a960e01b8152600490fd5b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b51906001600160a01b03821682036101c85756fe60806040526004361015610011575f80fd5b5f3560e01c806301ffc9a7146102c4578063020cf0c2146102bf57806302145348146102ba578063103f2907146102b557806310a28b5d146102b057806311422095146102ab578063128e5d82146102a6578063197aa7ea146102a15780631a80e5001461029c57806323f752d514610297578063248a9ca31461029257806325dc97081461028d5780632dd31000146102885780632f2ff15d1461028357806336568abe1461027e5780633dfd3873146102795780633eb22c0f14610274578063439fab911461026f57806345e78fcb1461026a578063518504ba14610265578063557cab44146102605780635d32a1c91461025b5780636679191e1461025657806379d89614146102515780637d24bb271461024c5780637f5a7c7b1461024757806391d148541461024257806394d2558a1461023d5780639b656b22146102385780639f86fd8514610233578063a217fddf1461022e578063bb24fe8a14610229578063c0cd7c3e14610224578063d15b740e1461021f578063d547741f1461021a578063da749d2b14610215578063e02f693714610210578063e49561ee1461020b578063f7b0554714610206578063fbfa77cf14610201578063fd4d447c146101fc578063ff54740f146101f75763ffa1ad74146101f2575f80fd5b611557565b61153a565b611510565b6114e9565b611465565b61127a565b61125e565b611229565b6111dd565b6111b3565b61116f565b61112c565b611112565b61107e565b61103a565b610ffc565b610f4c565b610f24565b610eeb565b610ea7565b610e6d565b610e1c565b610cf8565b610cbe565b610c7a565b610b42565b610aec565b6109f3565b6109a8565b61095c565b610918565b6108fb565b6108c2565b61074e565b61070a565b61067b565b610637565b6105e8565b6105b3565b6104cd565b610410565b61032f565b3461031a57602036600319011261031a5760043563ffffffff60e01b811680910361031a57602090637965db0b60e01b8114908115610309575b506040519015158152f35b6301ffc9a760e01b1490505f6102fe565b5f80fd5b6001600160a01b0381160361031a57565b3461031a57606036600319011261031a5760243560043561034f8261031e565b6044359161035b611e02565b815f526004602052826103896103848360405f209060018060a01b03165f5260205260405f2090565b6120b3565b146103fe5760207ffc9545f07ffadfb668efd0144cdcaf2d6e2c8192dce1ea9fc131934f9c90fc7e91835f52600482526103e9856103da8360405f209060018060a01b03165f5260205260405f2090565b6103e342612b0e565b90611f58565b50506040519485526001600160a01b031693a3005b60405163a741a04560e01b8152600490fd5b3461031a5760408060031936011261031a576004359060243590610432611e5f565b825f526002602052805f205482116104bd57825f52600360205281610458825f206120b3565b146104ad57816104a8916104987e899d104fc3d8820bd96540612bcc5c448c8837b13b9f7faa43ad0728f0c14f946103da875f52600360205260405f2090565b5050519081529081906020820190565b0390a2005b5163a741a04560e01b8152600490fd5b51631eefc06360e31b8152600490fd5b3461031a575f36600319011261031a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b6024359065ffffffffffff8216820361031a57565b6044359065ffffffffffff8216820361031a57565b6064359065ffffffffffff8216820361031a57565b608090600319011261031a576004356105688161031e565b90602435906044356105798161031e565b9060643565ffffffffffff8116810361031a5790565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b3461031a576105e46105d06105c736610550565b929190916115b1565b60405191829160208352602083019061058f565b0390f35b3461031a57604036600319011261031a57602061062f61038460243561060d8161031e565b6004355f526004845260405f209060018060a01b03165f5260205260405f2090565b604051908152f35b3461031a575f36600319011261031a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461031a57604036600319011261031a57610694610511565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633036106f8576106db906004355f52600360205260405f20612124565b60408051941515855263ffffffff91909116602085015292915050f35b604051637ca475e560e11b8152600490fd5b3461031a575f36600319011261031a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461031a57604036600319011261031a576004356001600160601b038116810361031a576024359061077e612229565b6040516302910f8b60e31b81523360048201526020816024816001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165afa9081156108bd575f9161088e575b501561087c576001600160601b03166bffffffffffffffffffffffff193360601b16179080610808835f52600260205260405f2090565b54146103fe57610861817fc67e7929681aa1bccd63f52b3799bf5805f3009f197db6fdf584b14f7fbf608c92610846855f52600260205260405f2090565b556108518185612258565b6040519081529081906020820190565b0390a261087a60015f8051602061330e83398151915255565b005b6040516323d53b9760e21b8152600490fd5b6108b0915060203d6020116108b6575b6108a88183610d7e565b810190611649565b5f6107d1565b503d61089e565b61165d565b3461031a57602036600319011261031a576004355f525f805160206132ee8339815191526020526020600160405f200154604051908152f35b3461031a576105e46105d061090f36610550565b9291909161174e565b3461031a575f36600319011261031a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461031a57604036600319011261031a5761087a60243560043561097f8261031e565b805f525f805160206132ee8339815191526020526109a3600160405f200154611eb5565b612533565b3461031a57604036600319011261031a576024356109c58161031e565b336001600160a01b038216036109e15761087a90600435612569565b60405163334bd91960e11b8152600490fd5b3461031a57602036600319011261031a57600435610a108161031e565b610a18612229565b335f9081527f9ebbcbe0d2961d3fbe56ca6f679bc753bd848d3e6bb3eaf9041c51b286881d2c60205260409020547fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c9060ff1615610ace57506001546001600160a01b0391821691811682146103fe576001600160a01b03191681176001557f5bbb1d3ebb6a3ad2a0f17ff35e579a83af60604d1d3c2a4c83c62adecadf666d5f80a260015f8051602061330e83398151915255005b6044906040519063e2517d3f60e01b82523360048301526024820152fd5b3461031a57602036600319011261031a576004355f526003602052602061062f60405f206120b3565b9181601f8401121561031a578235916001600160401b03831161031a576020838186019501011161031a57565b3461031a57602036600319011261031a576001600160401b0360043581811161031a57610b73903690600401610b15565b5f8051602061332e833981519152549260ff8460401c1615931680159081610c72575b6001149081610c68575b159081610c5f575b50610c4d575f8051602061332e833981519152805467ffffffffffffffff19166001179055610bdb9183610c2957612631565b610be157005b5f8051602061332e833981519152805460ff60401b19169055604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a1005b5f8051602061332e833981519152805460ff60401b1916600160401b179055612631565b60405163f92ee8a960e01b8152600490fd5b9050155f610ba8565b303b159150610ba0565b849150610b96565b3461031a575f36600319011261031a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461031a575f36600319011261031a5760206040517f15e7c882d74e8821ebf34aaff46fd0e1d53b9393d91490019124113d28dc32a38152f35b3461031a575f36600319011261031a576020604051614e208152f35b634e487b7160e01b5f52604160045260245ffd5b604081019081106001600160401b03821117610d4357604052565b610d14565b606081019081106001600160401b03821117610d4357604052565b608081019081106001600160401b03821117610d4357604052565b90601f801991011681019081106001600160401b03821117610d4357604052565b60405190610dac82610d63565b565b60405190610dac82610d28565b6001600160401b038111610d4357601f01601f191660200190565b81601f8201121561031a57803590610ded82610dbb565b92610dfb6040519485610d7e565b8284526020838301011161031a57815f926020809301838601378301015290565b3461031a57606036600319011261031a57610e35610511565b6044356001600160401b03811161031a57602091610e5a61062f923690600401610dd6565b906004355f526003845260405f20612798565b3461031a575f36600319011261031a5760206040517fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c8152f35b3461031a575f36600319011261031a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461031a575f36600319011261031a5760206040517e8b9b1e5fa9cf3b14f87f435649268146305ddf689f082e5961a335b07a9abf8152f35b3461031a575f36600319011261031a576001546040516001600160a01b039091168152602090f35b3461031a57604036600319011261031a57602060ff610f9e602435610f708161031e565b6004355f525f805160206132ee833981519152845260405f209060018060a01b03165f5260205260405f2090565b54166040519015158152f35b90608060031983011261031a5760043591602435610fc78161031e565b9160443565ffffffffffff8116810361031a5791606435906001600160401b03821161031a57610ff991600401610dd6565b90565b3461031a57602061062f61103561101236610faa565b939190925f526004865260405f209060018060a01b03165f5260205260405f2090565b612798565b3461031a575f36600319011261031a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461031a57604036600319011261031a5760043561109b8161031e565b6024356001600160401b03811161031a575f916110bd83923690600401610b15565b90816040519283928337810184815203915af461110a6110db6119a3565b916110fc60405193849215156020840152604080840152606083019061058f565b03601f198101835282610d7e565b805190602001fd5b3461031a575f36600319011261031a5760206040515f8152f35b3461031a575f36600319011261031a5760206040516001600160401b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461031a575f36600319011261031a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461031a57602036600319011261031a576004355f526002602052602060405f2054604051908152f35b3461031a57604036600319011261031a5761087a6024356004356112008261031e565b805f525f805160206132ee833981519152602052611224600160405f200154611eb5565b612569565b3461031a57606036600319011261031a576105e46105d060043561124c8161031e565b611254610526565b90602435906119d2565b3461031a57602061062f61127136610faa565b92919091611ad1565b3461031a5760a036600319011261031a5760243560043561129a8261031e565b604435916112a661053b565b90608435906001600160401b03821161031a576112c860049236908401610dd6565b6112d0612229565b5f546020906112f5906112e9906001600160a01b031681565b6001600160a01b031690565b60405163b134427160e01b815294859182905afa9283156108bd575f93611434575b506001600160a01b039283163303611422576001546001600160a01b0316838116611397575b50506040805195865265ffffffffffff909316602086015216927f741a5de99085c0d660f3e4192217b0ffb0ea4e35a0480de48e857a4bc3ee36ed91819081015b0390a361087a60015f8051602061330e83398151915255565b9093604051946113ce866113c0602082019363724ab0f760e11b8552858c898d60248701611c5b565b03601f198101885287610d7e565b62042e305a10611410575f61137e938192827f741a5de99085c0d660f3e4192217b0ffb0ea4e35a0480de48e857a4bc3ee36ed9951926203d090f1509361133d565b604051638072475160e01b8152600490fd5b60405163dabc4ad960e01b8152600490fd5b61145791935060203d60201161145e575b61144f8183610d7e565b8101906116d3565b915f611317565b503d611445565b3461031a57606036600319011261031a576024356114828161031e565b61148a610526565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633036106f8576114e46106db926004355f52600460205260405f209060018060a01b03165f5260205260405f2090565b612124565b3461031a575f36600319011261031a575f546040516001600160a01b039091168152602090f35b3461031a57604036600319011261031a57602061062f6024356115328161031e565b600435611cd8565b3461031a575f36600319011261031a5760206040516203d0908152f35b3461031a575f36600319011261031a57602060405160018152f35b5190811515820361031a57565b519063ffffffff8216820361031a57565b919082604091031261031a57610ff960206115aa84611572565b930161157f565b91939265ffffffffffff906060956040519363f7b0554760e01b6020860152602485015260018060a01b031660448401521660648201526064815260a08101908082106001600160401b03831117610d4357611622926116139260405261201a565b60208082518301019101611590565b9061162a5750565b90915063ffffffff6040519116602082015260208152610ff981610d28565b9081602091031261031a57610ff990611572565b6040513d5f823e3d90fd5b81601f8201121561031a5780519061167f82610dbb565b9261168d6040519485610d7e565b8284526020838301011161031a57815f9260208093018386015e8301015290565b9060208282031261031a5781516001600160401b03811161031a57610ff99201611668565b9081602091031261031a5751610ff98161031e565b90610ff9916020815261170782516080602084015260a083019061058f565b906080606061173e61172b602087015195601f19968787830301604088015261058f565b604087015186868303018487015261058f565b940151928285030191015261058f565b604051630df8851f60e11b81526001600160a01b03828116600483015260248201849052848116604483015265ffffffffffff8616606483015295606095909491939091905f856084817f00000000000000000000000000000000000000000000000000000000000000008c165afa9485156108bd575f95611945575b5060405163fbfa77cf60e01b8152602081600481888d165afa9081156108bd57611837995f9286928491611926575b5060405163192c0ff760e21b81526001600160a01b03909116600482015265ffffffffffff909216602483015290998a9190829081906044820190565b03917f0000000000000000000000000000000000000000000000000000000000000000165afa9788156108bd575f986118fa575b50908161187d846118839594876119d2565b946115b1565b908251158015906118f0575b80156118e6575b80156118dc575b6118a957505050909150565b6110fc9450610ff993956118bb610d9f565b938452602084015260408301526060820152604051928391602083016116e8565b508151151561189d565b5080511515611896565b508551151561188f565b611883939291985061191d903d805f833e6119158183610d7e565b8101906116ae565b9790919261186b565b61193f915060203d60201161145e5761144f8183610d7e565b5f6117fa565b61195a9195503d805f833e6119158183610d7e565b935f6117cb565b90610ff992915f52600360205260405f20612798565b5f9081526004602090815260408083206001600160a01b03909416835292905220610ff9929190612798565b3d156119cd573d906119b482610dbb565b916119c26040519384610d7e565b82523d5f602084013e565b606090565b611622916116139194939465ffffffffffff60609660405193630cbd53f560e11b6020860152602485015216604483015260448252611a1082610d63565b61201a565b60405190611a2282610d28565b60606020838281520152565b9060208282031261031a5781516001600160401b039283821161031a57019060408282031261031a5760405192611a6484610d28565b825181811161031a5782611a79918501611668565b8452602083015190811161031a57611a919201611668565b602082015290565b6001600160a01b0391821681529116602082015265ffffffffffff9091166040820152608060608201819052610ff99291019061058f565b92611ae190929192828486612973565b929093611aec611a15565b93805180611c3f575b50508415938415611ba9575b8415611b18575b50505050611b135790565b505f90565b602080949550611b43910151604051958694859463530e1d4360e01b865260601c9060048601611a99565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa9081156108bd575f91611b8a575b50155f808080611b08565b611ba3915060203d6020116108b6576108a88183610d7e565b5f611b7f565b5f549094506001600160a01b0316602084865192611bdc604051948593849363530e1d4360e01b85528960048601611a99565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa9081156108bd575f91611c20575b501593611b01565b611c39915060203d6020116108b6576108a88183610d7e565b5f611c18565b611c53929550602080918301019101611a2e565b925f80611af5565b919360a093610ff9969565ffffffffffff938552600180871b031660208501526040840152166060820152816080820152019061058f565b634e487b7160e01b5f52601160045260245ffd5b8115611cb1570490565b634e487b7160e01b5f52601260045260245ffd5b9060018201809211611cd357565b611c93565b5f546040516308834cb560e21b8082526001600160a01b0385811660048401529283166024830152929392602092909183816044817f000000000000000000000000000000000000000000000000000000000000000086165afa9081156108bd575f91611de5575b5015918215611d61575b50509050611d5b57610ff991612a68565b50505f90565b6040519081526001600160a01b0385166004820152606086901c602482015291508290829060449082907f0000000000000000000000000000000000000000000000000000000000000000165afa9182156108bd575f92611dc8575b505015805f80611d4a565b611dde9250803d106108b6576108a88183610d7e565b5f80611dbd565b611dfc9150843d86116108b6576108a88183610d7e565b5f611d40565b335f9081527f24e48de785eeca8420b70f73d267a66970ccc187d459f2a4b53e74ed92a5ab86602052604090207f15e7c882d74e8821ebf34aaff46fd0e1d53b9393d91490019124113d28dc32a39060ff905b541615610ace5750565b335f9081527f72a65082a5691803ab2b62c9bc729b34205ba1b183d950896526b2fd8714d0c7602052604090207e8b9b1e5fa9cf3b14f87f435649268146305ddf689f082e5961a335b07a9abf9060ff90611e55565b5f8181525f805160206132ee83398151915260209081526040808320338452909152902060ff90611e55565b634e487b7160e01b5f52603260045260245ffd5b8054821015611f0a575f5260205f2001905f90565b611ee1565b90815491600160401b831015610d435782611f32916001610dac95018155611ef5565b90919082549060031b91821b915f19901b1916179055565b5f19810191908211611cd357565b90929192600182019081548015611fea575b5084611f7584612b40565b50949092845493611f85836120b3565b9681611fd5575b5015611fb2575050505f198101908111611cd357611f328591611fae93611ef5565b9190565b611fae949293611fce926001600160d01b0390911691906131a9565b5050611f0f565b65ffffffffffff83811691161490505f611f8c565b600160401b811015610d43578060016120069201845583611ef5565b8154905f199060031b1b191690555f611f6a565b5f9190829160405161204f816110fc6020820194639f86fd8560e01b865230602484015260406044840152606483019061058f565b51915afa5061205c6119a3565b8051810160408282031261031a5761207660208301611572565b916040810151916001600160401b03831161031a5761209c926020809201920101611668565b90156120a55790565b805190811561031a57602001fd5b8054806120e257505f5b6001600160d01b03811615611d5b5760016120d89201611ef5565b90549060031b1c90565b5f19908082810111611cd357825f5260205f2001015460301c6120bd565b9060405161210d81610d28565b915465ffffffffffff8116835260301c6020830152565b91908254905f8291600584116121c2575b612140935085612cc2565b9081156121b6576121af6121a66121a06120d861217261216d61216288611f4a565b895f5260205f200190565b612100565b966001612199602061218a8b5165ffffffffffff1690565b9a01516001600160d01b031690565b9101611ef5565b93611f4a565b63ffffffff1690565b6001939291565b5f925082915081908190565b91926121cd81612b8f565b8103908111611cd35761214093865f526122016121f68360205f200165ffffffffffff90541690565b65ffffffffffff1690565b65ffffffffffff85161015612217575091612135565b92915061222390611cc5565b90612135565b5f8051602061330e83398151915260028154146122465760029055565b604051633ee5aeb560e01b8152600490fd5b90815f52600360205260405f208161226f82612b40565b9193905083156122cd5761228f916001600160d01b031690600101611ef5565b90549060031b1c5b826122c3575b50506122a7575050565b6122bf915f52600360205260405f206103e342612b0e565b5050565b119050815f61229d565b50505f612297565b6001600160a01b0381165f9081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d60205260409020545f805160206132ee8339815191529060ff16611d5b575f808052602091825260408082206001600160a01b038516835290925220805460ff1916600117905533906001600160a01b03165f7f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d8180a4600190565b6001600160a01b0381165f9081527f9ebbcbe0d2961d3fbe56ca6f679bc753bd848d3e6bb3eaf9041c51b286881d2c602052604090207fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c905f805160206132ee8339815191529060ff905b541661244f575f828152602091825260408082206001600160a01b038616835290925220805460ff1916600117905533916001600160a01b0316907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d5f80a4600190565b5050505f90565b6001600160a01b0381165f9081527f72a65082a5691803ab2b62c9bc729b34205ba1b183d950896526b2fd8714d0c7602052604090207e8b9b1e5fa9cf3b14f87f435649268146305ddf689f082e5961a335b07a9abf905f805160206132ee8339815191529060ff906123eb565b6001600160a01b0381165f9081527f24e48de785eeca8420b70f73d267a66970ccc187d459f2a4b53e74ed92a5ab86602052604090207f15e7c882d74e8821ebf34aaff46fd0e1d53b9393d91490019124113d28dc32a3905f805160206132ee8339815191529060ff906123eb565b5f8181525f805160206132ee833981519152602081815260408084206001600160a01b038716855290915290912060ff906123eb565b5f8181525f805160206132ee833981519152602081815260408084206001600160a01b03871685529091529091205460ff161561244f575f828152602091825260408082206001600160a01b038616835290925220805460ff1916905533916001600160a01b0316907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b5f80a4600190565b91909160408184031261031a5780356126138161031e565b9260208201356001600160401b03811161031a57610ff99201610dd6565b61263d918101906125fb565b6040516302910f8b60e31b81526001600160a01b039283166004820181905291906020816024817f000000000000000000000000000000000000000000000000000000000000000088165afa9081156108bd575f91612750575b501561273e576126d26040916126cd612718946126b2612d24565b60018060a01b03166001600160601b0360a01b5f5416175f55565b612ea4565b6020810151600180546001600160a01b0319166001600160a01b0390921691909117905580516001600160a01b031684811661272e575b5001516001600160a01b031690565b9081166127225750565b61272b90612380565b50565b612737906122d5565b505f612709565b6040516362df054560e01b8152600490fd5b612769915060203d6020116108b6576108a88183610d7e565b5f612697565b9081602091031261031a57610ff99061157f565b90600163ffffffff80931601918211611cd357565b9180511561286657806020806127b39351830101910161276f565b916127be83826130d4565b926127cf845165ffffffffffff1690565b9065ffffffffffff808516921682811461285a5782119182612805575b50506127fc57610ff99250613004565b50506020015190565b9091506128128354611f4a565b63ffffffff83161491821561282b575b50505f806127ec565b6128529192506128466128406121f692612783565b856130d4565b5165ffffffffffff1690565b115f80612822565b50505050506020015190565b50610ff991613004565b60405190608082018281106001600160401b03821117610d4357604052606080838181528160208201528160408201520152565b9060208282031261031a5781516001600160401b039283821161031a57019060808282031261031a576128d5610d9f565b92825181811161031a57826128eb918501611668565b8452602083015181811161031a5782612905918501611668565b6020850152604083015181811161031a5782612922918501611668565b6040850152606083015190811161031a5761293d9201611668565b606082015290565b9081602091031261031a575190565b60409065ffffffffffff610ff99493168152816020820152019061058f565b9391909361297f612870565b93805180612a48575b50506129c992939460206129a86112e96112e95f5460018060a01b031690565b8188015190604051808098819463810da75d60e01b83528960048401612954565b03915afa9182156108bd57612a0a945f93612a0f575b50612a0490612a0493946129f860408a01518284611961565b9360608a015192611977565b9061313c565b915190565b612a04935090612a39612a049260203d602011612a41575b612a318183610d7e565b810190612945565b9350906129df565b503d612a27565b6129c994955090602080612a609383010191016128a4565b93925f612988565b5f5460405163bd49c35f60e01b8152929190602090849060049082906001600160a01b03165afa9081156108bd57610ff9935f92612ae3575b50612a04610384612a049394612ac2610384855f52600360205260405f2090565b935f52600460205260405f209060018060a01b03165f5260205260405f2090565b612a049250610384612b06612a049260203d602011612a4157612a318183610d7e565b935050612aa1565b65ffffffffffff90818111612b21571690565b604490604051906306dfcc6560e41b8252603060048301526024820152fd5b805480612b515750505f905f905f90565b5f19908082810111611cd357612b6e925f5260205f200101612100565b9065ffffffffffff82511691602060018060d01b0391015116906001929190565b8015611b135780612a04612c5a612c50612c46612c3c612c32612c28612c1e6001610ff99a5f908b60801c80612cb6575b508060401c80612ca9575b508060201c80612c9c575b508060101c80612c8f575b508060081c80612c82575b508060041c80612c75575b508060021c80612c68575b50821c612c61575b811c1b612c17818b611ca7565b0160011c90565b612c17818a611ca7565b612c178189611ca7565b612c178188611ca7565b612c178187611ca7565b612c178186611ca7565b612c178185611ca7565b8092611ca7565b8101612c0a565b600291509101905f612c02565b600491509101905f612bf7565b600891509101905f612bec565b601091509101905f612be1565b602091509101905f612bd6565b604091509101905f612bcb565b9150506080905f612bc0565b91905b838210612cd25750505090565b909192808316906001818518811c8301809311611cd357855f5265ffffffffffff808460205f20015416908516105f14612d11575050925b9190612cc5565b909493508101809111611cd35791612d0a565b612d2c6132bf565b612d346132bf565b60015f8051602061330e83398151915255565b60405190612d5482610d48565b5f6040838281528260208201520152565b81601f8201121561031a578051916020916001600160401b038411610d43578360051b9060405194612d9985840187610d7e565b8552838086019282010192831161031a578301905b828210612dbc575050505090565b8380918351612dca8161031e565b815201910190612dae565b9060208282031261031a5781516001600160401b039283821161031a5701908181039260a0841261031a57606060405194612e0f86610d48565b1261031a57604051612e2081610d48565b8351612e2b8161031e565b81526020840151612e3b8161031e565b60208201526040840151612e4e8161031e565b60408201528452606083015181811161031a5782612e6d918501612d65565b6020850152608083015190811161031a57612e889201612d65565b604082015290565b8051821015611f0a5760209160051b010190565b612ec090612eb0612d47565b5060208082518301019101612dd5565b8051519091906001600160a01b03161580612fea575b612fd8579060208101905f5b82518051821015612f5c576112e9612efd83612f0a93612e90565b516001600160a01b031690565b15612f4a57612f2c612f28612f23612efd848751612e90565b612456565b1590565b612f3857600101612ee2565b604051635140fefd60e11b8152600490fd5b6040516323cda06760e01b8152600490fd5b506040925050818101905f5b82518051821015612fcf576112e9612efd83612f8393612e90565b15612fbe57612fa1612f28612f9c612efd848751612e90565b6124c4565b612fad57600101612f68565b8351635140fefd60e11b8152600490fd5b83516323cda06760e01b8152600490fd5b50509150505190565b6040516303501f5960e11b8152600490fd5b506020820151511580612ed6575060408201515115612ed6565b908154905f82916005841161306e575b61301f935084612cc2565b8061304757505f905b6001600160d01b03821615611d5b57610ff99160016120d89201611ef5565b61306161305661306892611f4a565b835f5260205f200190565b5460301c90565b90613028565b919261307981612b8f565b8103908111611cd35761301f93855f5265ffffffffffff808360205f20015416908516105f146130aa575091613014565b9291506130b690611cc5565b90613014565b604051906130c982610d28565b5f6020838281520152565b906130fd6130f761311e926130e76130bc565b506130f06130bc565b5084611ef5565b50612100565b91600165ffffffffffff845116936020828060d01b03910151169101611ef5565b9054906040519261312e84610d28565b835260031b1c602082015290565b9080821015613149575090565b905090565b8054600160401b811015610d435761316b91600182018155611ef5565b61319657815160209092015160301b65ffffffffffff191665ffffffffffff92909216919091179055565b634e487b7160e01b5f525f60045260245ffd5b805492939291908215613296576131c561216d61305685611f4a565b906131d6825165ffffffffffff1690565b65ffffffffffff8481169116811061328457611fae9460209488926132046121f6875165ffffffffffff1690565b0361324c575061323e9261321a61322592611f4a565b905f5260205f200190565b9065ffffffffffff82549181199060301b169116179055565b01516001600160d01b031690565b91505061327f9161326c61325e610dae565b65ffffffffffff9093168352565b6001600160d01b0388168286015261314e565b61323e565b604051632520601d60e01b8152600490fd5b6132ba92506132a661325e610dae565b6001600160d01b038516602083015261314e565b5f9190565b60ff5f8051602061332e8339815191525460401c16156132db57565b604051631afcd79f60e31b8152600490fdfe02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268009b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a2646970667358221220b421717b7d05d309a1df30bec4959e6ea43c0ac83de4ab4b577f6f1e9cb2fa1664736f6c63430008190033","sourceMap":"765:2461:86:-:0;;;;;-1:-1:-1;;;;;765:2461:86;;;;;;;;-1:-1:-1;;765:2461:86;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;348:4:87;;332:21;;8837:64:26;765:2461:86;;;;;;;7896:76:26;;765:2461:86;;;;;;7985:34:26;7981:146;;-1:-1:-1;525:17:74;;;-1:-1:-1;525:17:74;;-1:-1:-1;552:12:74;;-1:-1:-1;2360:34:81;;2404:28;;-1:-1:-1;2404:28:81;;2442:57;;-1:-1:-1;2442:57:81;;2509:61;;-1:-1:-1;2509:61:81;;1248:40:86;;;;;765:2461;;1352:79;;;;;;;;;;;;;;;;;;;;;;;348:4:87;765:2461:86;;-1:-1:-1;;;;;765:2461:86;;;;;;;;;;;;;;;;;1352:79;;;-1:-1:-1;1352:79:86;;;;;;765:2461;;;;;1298:134;;;765:2461;;1298:134;;765:2461;;1493:76;;;;;;;;;;;;;;;;;;;;;;;348:4:87;765:2461:86;;-1:-1:-1;;;;;765:2461:86;;;;;;;;;;;;;;;;;1493:76;;;-1:-1:-1;1493:76:86;;;;;;1442:128;765:2461;;1442:128;;765:2461;;;;;;;;332:21:87;765:2461:86;;;;525:17:74;765:2461:86;;;;;552:12:74;765:2461:86;;;;;2360:34:81;765:2461:86;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1493:76;765:2461;;;-1:-1:-1;765:2461:86;;;;;1493:76;765:2461;;;-1:-1:-1;765:2461:86;;;;;-1:-1:-1;765:2461:86;1352:79;765:2461;;;-1:-1:-1;765:2461:86;;;;;7981:146:26;-1:-1:-1;;;;;;765:2461:86;;;;;;;;;8087:29:26;;765:2461:86;;8087:29:26;7981:146;;;;;7896:76;765:2461:86;;-1:-1:-1;;;7938:23:26;;;;;765:2461:86;-1:-1:-1;765:2461:86;;;;;-1:-1:-1;;;;;765:2461:86;;;;;;:::o","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361015610011575f80fd5b5f3560e01c806301ffc9a714610214578063075db0361461020f578063103f29071461020a578063128e5d82146102055780631a80e500146102005780631bf10a3e146101fb57806323f752d5146101f6578063248a9ca3146101f157806325dc9708146101ec5780632dd31000146101e75780632f2ff15d146101e257806336568abe146101dd5780633dfd3873146101d8578063439fab91146101d3578063557cab44146101ce5780636679191e146101c95780637f5a7c7b146101c457806391d14854146101bf5780639b656b22146101ba5780639f86fd85146101b5578063a217fddf146101b0578063bb24fe8a146101ab578063c0cd7c3e146101a6578063d15b740e146101a1578063d547741f1461019c578063e02f693714610197578063e102831a14610192578063e49561ee1461018d578063fbfa77cf14610188578063fd4d447c14610183578063ff54740f1461017e5763ffa1ad7414610179575f80fd5b61108a565b61106d565b61103b565b611014565b610e29565b610de5565b610d02565b610bf1565b610bc7565b610b83565b610b40565b610b26565b610a6c565b610a28565b6109ca565b6109a2565b610968565b61094c565b61080f565b6106e9565b61069e565b610652565b61060e565b6105f1565b6105b8565b61043c565b610407565b61033a565b6102f6565b6102b2565b61026e565b3461026a57602036600319011261026a5760043563ffffffff60e01b811680910361026a57602090637965db0b60e01b8114908115610259575b506040519015158152f35b6301ffc9a760e01b1490505f61024e565b5f80fd5b3461026a575f36600319011261026a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461026a575f36600319011261026a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461026a575f36600319011261026a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461026a575f36600319011261026a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b6001600160a01b0381160361026a57565b6064359065ffffffffffff8216820361026a57565b608090600319011261026a576004356103bc8161037e565b90602435906044356103cd8161037e565b9060643565ffffffffffff8116810361026a5790565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b3461026a5761043861042461041b366103a4565b92919091611168565b6040519182916020835260208301906103e3565b0390f35b3461026a57604036600319011261026a576004356001600160601b038116810361026a576024359061046c611732565b6040516302910f8b60e31b81523360048201526020816024816001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165afa9081156105b3575f91610584575b5015610572576001600160601b03166bffffffffffffffffffffffff193360601b161790806104f6835f52600260205260405f2090565b541461056057610545817fc67e7929681aa1bccd63f52b3799bf5805f3009f197db6fdf584b14f7fbf608c92610534855f52600260205260405f2090565b556040519081529081906020820190565b0390a261055e60015f80516020611bf383398151915255565b005b60405163a741a04560e01b8152600490fd5b6040516323d53b9760e21b8152600490fd5b6105a6915060203d6020116105ac575b61059e8183610c71565b8101906113b9565b5f6104bf565b503d610594565b6110bd565b3461026a57602036600319011261026a576004355f525f80516020611bd38339815191526020526020600160405f200154604051908152f35b3461026a57610438610424610605366103a4565b929190916113f0565b3461026a575f36600319011261026a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461026a57604036600319011261026a5761055e6024356004356106758261037e565b805f525f80516020611bd3833981519152602052610699600160405f200154611761565b611918565b3461026a57604036600319011261026a576024356106bb8161037e565b336001600160a01b038216036106d75761055e9060043561194e565b60405163334bd91960e11b8152600490fd5b3461026a57602036600319011261026a576004356107068161037e565b61070e611732565b335f9081527f9ebbcbe0d2961d3fbe56ca6f679bc753bd848d3e6bb3eaf9041c51b286881d2c60205260409020547fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c9060ff16156107c457506001546001600160a01b039182169181168214610560576001600160a01b03191681176001557f5bbb1d3ebb6a3ad2a0f17ff35e579a83af60604d1d3c2a4c83c62adecadf666d5f80a260015f80516020611bf383398151915255005b6044906040519063e2517d3f60e01b82523360048301526024820152fd5b9181601f8401121561026a578235916001600160401b03831161026a576020838186019501011161026a57565b3461026a57602036600319011261026a576001600160401b0360043581811161026a576108409036906004016107e2565b5f80516020611c13833981519152549260ff8460401c1615931680159081610944575b600114908161093a575b159081610931575b5061091f575f80516020611c13833981519152805467ffffffffffffffff191660011790556108a891836108f657611a16565b6108ae57005b5f80516020611c13833981519152805460ff60401b19169055604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a1005b5f80516020611c13833981519152805460ff60401b191668010000000000000000179055611a16565b60405163f92ee8a960e01b8152600490fd5b9050155f610875565b303b15915061086d565b849150610863565b3461026a575f36600319011261026a576020604051614e208152f35b3461026a575f36600319011261026a5760206040517fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c8152f35b3461026a575f36600319011261026a576001546040516001600160a01b039091168152602090f35b3461026a57604036600319011261026a57602060ff610a1c6024356109ee8161037e565b6004355f525f80516020611bd3833981519152845260405f209060018060a01b03165f5260205260405f2090565b54166040519015158152f35b3461026a575f36600319011261026a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461026a5760408060031936011261026a57600435610a8a8161037e565b602435906001600160401b03821161026a575f8091610ab0610b149436906004016107e2565b908187519283928337810184815203915af43d15610b1c57610b063d610ad581610ca1565b90610ae286519283610c71565b81523d5f602083013e5b8451948593151560208501528084015260608301906103e3565b03601f198101835282610c71565b805190602001fd5b610b066060610aec565b3461026a575f36600319011261026a5760206040515f8152f35b3461026a575f36600319011261026a5760206040516001600160401b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461026a575f36600319011261026a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461026a57602036600319011261026a576004355f526002602052602060405f2054604051908152f35b3461026a57604036600319011261026a5761055e602435600435610c148261037e565b805f525f80516020611bd3833981519152602052610c38600160405f200154611761565b61194e565b634e487b7160e01b5f52604160045260245ffd5b604081019081106001600160401b03821117610c6c57604052565b610c3d565b90601f801991011681019081106001600160401b03821117610c6c57604052565b60405190610c9f82610c51565b565b6001600160401b038111610c6c57601f01601f191660200190565b81601f8201121561026a57803590610cd382610ca1565b92610ce16040519485610c71565b8284526020838301011161026a57815f926020809301838601378301015290565b3461026a5760808060031936011261026a57610d1f60243561037e565b60443565ffffffffffff81160361026a576001600160401b0360643581811161026a57610d50903690600401610cbc565b5060606020604051610d6181610c51565b828152015260605180610d79575b60206040515f8152f35b8281016020821261026a5783519183831161026a5782604091031261026a5760405193610da585610c51565b8281015184811161026a578282610dbe928601016110c8565b855260a083015193841161026a57602093610dda9301016110c8565b9101525f8080610d6f565b3461026a575f36600319011261026a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461026a5760a036600319011261026a57602435600435610e498261037e565b60443591610e5561038f565b90608435906001600160401b03821161026a57610e7760049236908401610cbc565b610e7f611732565b5f54602090610ea490610e98906001600160a01b031681565b6001600160a01b031690565b60405163b134427160e01b815294859182905afa9283156105b3575f93610fe3575b506001600160a01b039283163303610fd1576001546001600160a01b0316838116610f46575b50506040805195865265ffffffffffff909316602086015216927f741a5de99085c0d660f3e4192217b0ffb0ea4e35a0480de48e857a4bc3ee36ed91819081015b0390a361055e60015f80516020611bf383398151915255565b909360405194610f7d86610f6f602082019363724ab0f760e11b8552858c898d602487016115d0565b03601f198101885287610c71565b62042e305a10610fbf575f610f2d938192827f741a5de99085c0d660f3e4192217b0ffb0ea4e35a0480de48e857a4bc3ee36ed9951926203d090f15093610eec565b604051638072475160e01b8152600490fd5b60405163dabc4ad960e01b8152600490fd5b61100691935060203d60201161100d575b610ffe8183610c71565b8101906110a5565b915f610ec6565b503d610ff4565b3461026a575f36600319011261026a575f546040516001600160a01b039091168152602090f35b3461026a57604036600319011261026a57602061106560243561105d8161037e565b600435611608565b604051908152f35b3461026a575f36600319011261026a5760206040516203d0908152f35b3461026a575f36600319011261026a57602060405160018152f35b9081602091031261026a57516110ba8161037e565b90565b6040513d5f823e3d90fd5b81601f8201121561026a578051906110df82610ca1565b926110ed6040519485610c71565b8284526020838301011161026a57815f9260208093018386015e8301015290565b9060208282031261026a5781516001600160401b03811161026a576110ba92016110c8565b906110ba91602081526020611153835160408385015260608401906103e3565b920151906040601f19828503019101526103e3565b604080516309472ec160e11b8152606096956001600160a01b039384169591946020949192917f0000000000000000000000000000000000000000000000000000000000000000169085876004818b5afa9687156105b3575f9761139a575b50845163fbfa77cf60e01b81529686886004818c5afa80156105b357855f9161123b9a839161137d575b508851636a531c3160e11b8082526001600160a01b039586166004830152858916602483015294909116604482015265ffffffffffff909116606482015298899081906084820190565b0381865afa9788156105b3575f98611358575b508686979899600496975196878092621a80e560e81b82525afa9485156105b3575f95611335575b5086519081526001600160a01b03948516600482015293909216602484015260609190911c604483015265ffffffffffff9092166064820152905f9082908180608481015b03915afa9081156105b3575f91611313575b50835115801590611309575b6112e35750505050565b6110ba9394955090610b06916112f7610c92565b95865283860152519384928301611133565b50805115156112d9565b61132f91503d805f833e6113278183610c71565b81019061110e565b5f6112cd565b5f95506113516112bb918a3d8c1161100d57610ffe8183610c71565b9550611276565b8798509661137360049697983d805f833e6113278183610c71565b989796955061124e565b61139491508a3d8c1161100d57610ffe8183610c71565b5f6111f1565b6113b2919750863d881161100d57610ffe8183610c71565b955f6111c7565b9081602091031261026a5751801515810361026a5790565b9081602091031261026a57516001600160401b038116810361026a5790565b604051635d927f4560e11b8082526060969594936001600160a01b03939092909160209190858416908383600481855afa9283156105b3575f936115b1575b506001600160401b039283166114d65750506040516304bb92e160e31b81526001600160a01b0393841660048201526024810194909452505092909216604483015265ffffffffffff9290921660648201529192505f90829060849082907f0000000000000000000000000000000000000000000000000000000000000000165afa9081156105b3575f916114c2575090565b6110ba91503d805f833e6113278183610c71565b839060046040518094819382525afa9081156105b3576001935f92611584575b50501614611505575050505050565b6040516304bb92e160e31b81526001600160a01b039182166004820152602481019290925292909216604483015265ffffffffffff9290921660648201529192505f90829060849082907f0000000000000000000000000000000000000000000000000000000000000000165afa9081156105b3575f916114c2575090565b6115a39250803d106115aa575b61159b8183610c71565b8101906113d1565b5f806114f6565b503d611591565b6115c9919350843d86116115aa5761159b8183610c71565b915f61142f565b919360a0936110ba969565ffffffffffff938552600180871b03166020850152604084015216606082015281608082015201906103e3565b5f546040516308834cb560e21b8082526001600160a01b038581166004840152928316602483015293602092909183816044817f000000000000000000000000000000000000000000000000000000000000000086165afa9081156105b3575f91611715575b501593841561168a575b505050509050611686575f90565b5f90565b6040519586526001600160a01b0392909216600486015260609190911c6024850152909291508290829060449082907f0000000000000000000000000000000000000000000000000000000000000000165afa9182156105b3575f926116f8575b505015805f808080611678565b61170e9250803d106105ac5761059e8183610c71565b5f806116eb565b61172c9150843d86116105ac5761059e8183610c71565b5f61166e565b5f80516020611bf3833981519152600281541461174f5760029055565b604051633ee5aeb560e01b8152600490fd5b5f8181525f80516020611bd38339815191526020908152604080832033845290915290205460ff16156107c45750565b6001600160a01b0381165f9081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d60205260409020545f80516020611bd38339815191529060ff1661183c575f808052602091825260408082206001600160a01b038516835290925220805460ff1916600117905533906001600160a01b03165f7f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d8180a4600190565b50505f90565b6001600160a01b0381165f9081527f9ebbcbe0d2961d3fbe56ca6f679bc753bd848d3e6bb3eaf9041c51b286881d2c602052604090207fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c905f80516020611bd38339815191529060ff905b5416611911575f828152602091825260408082206001600160a01b038616835290925220805460ff1916600117905533916001600160a01b0316907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d5f80a4600190565b5050505f90565b5f8181525f80516020611bd3833981519152602081815260408084206001600160a01b038716855290915290912060ff906118ad565b5f8181525f80516020611bd3833981519152602081815260408084206001600160a01b03871685529091529091205460ff1615611911575f828152602091825260408082206001600160a01b038616835290925220805460ff1916905533916001600160a01b0316907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b5f80a4600190565b91909160408184031261026a5780356119f88161037e565b9260208201356001600160401b03811161026a576110ba9201610cbc565b611a22918101906119e0565b506040516302910f8b60e31b81526001600160a01b0391821660048201819052906020816024817f000000000000000000000000000000000000000000000000000000000000000087165afa9081156105b3575f91611b34575b5015611b2257611aa990611a8e611b53565b60018060a01b03166001600160601b0360a01b5f5416175f55565b611afc6040611ab6611b76565b6020810151600180546001600160a01b0319166001600160a01b0390921691909117905580516001600160a01b0316848116611b12575b5001516001600160a01b031690565b908116611b065750565b611b0f90611842565b50565b611b1b90611791565b505f611aed565b6040516362df054560e01b8152600490fd5b611b4d915060203d6020116105ac5761059e8183610c71565b5f611a7c565b611b5b611ba4565b611b63611ba4565b60015f80516020611bf383398151915255565b60405190606082018281106001600160401b03821117610c6c576040525f6040838281528260208201520152565b60ff5f80516020611c138339815191525460401c1615611bc057565b604051631afcd79f60e31b8152600490fdfe02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268009b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a264697066735822122041486f336ebdaac65e19ef0126b717f646b1c1410340c7bde35e3c51d12dd2d964736f6c63430008190033","sourceMap":"765:2461:86:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;;;;;-1:-1:-1;;765:2461:86;;;;;;;;;;;;;;;;;;-1:-1:-1;;;3551:47:24;;;:87;;;;765:2461:86;;;;;;;;;;3551:87:24;-1:-1:-1;;;1133:40:30;;-1:-1:-1;3551:87:24;;;765:2461:86;-1:-1:-1;765:2461:86;;;;;;;;-1:-1:-1;;765:2461:86;;;;;;957:56;-1:-1:-1;;;;;765:2461:86;;;;;;;;;;;;-1:-1:-1;;765:2461:86;;;;;;1537:38:81;-1:-1:-1;;;;;765:2461:86;;;;;;;;;;;;-1:-1:-1;;765:2461:86;;;;;;1632:54:81;-1:-1:-1;;;;;765:2461:86;;;;;;;;;;;;-1:-1:-1;;765:2461:86;;;;;;1743:56:81;-1:-1:-1;;;;;765:2461:86;;;;;;;-1:-1:-1;;;;;765:2461:86;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;765:2461:86;;;;;;;;-1:-1:-1;;765:2461:86;;;;:::o;:::-;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;765:2461:86;;;;;;-1:-1:-1;;;;;765:2461:86;;;;;;;;3217:103:29;;;:::i;:::-;765:2461:86;;-1:-1:-1;;;4285:48:81;;4322:10;765:2461:86;4285:48:81;;765:2461:86;;;;;-1:-1:-1;;;;;4295:16:81;765:2461:86;4285:48:81;;;;;;;-1:-1:-1;4285:48:81;;;765:2461:86;4284:49:81;;4280:99;;-1:-1:-1;;;;;765:2461:86;-1:-1:-1;;4322:10:81;297:2:93;765:2461:86;;267:46:93;4459:27:81;;;;765:2461:86;;4459:15:81;765:2461:86;;;;;;;4459:27:81;765:2461:86;4459:37:81;4455:87;;4654:38;4552:27;4654:38;4552:27;;;765:2461:86;;4459:15:81;765:2461:86;;;;;;;4552:27:81;765:2461:86;;;;;;;;;;;;;;4654:38:81;;;;3282:1:29;1805;-1:-1:-1;;;;;;;;;;;765:2461:86;3716:283:29;3282:1;765:2461:86;4455:87:81;765:2461:86;;-1:-1:-1;;;4519:12:81;;765:2461:86;;4519:12:81;4280:99;765:2461:86;;-1:-1:-1;;;4356:12:81;;765:2461:86;;4356:12:81;4285:48;;;;765:2461:86;4285:48:81;765:2461:86;4285:48:81;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;:::i;765:2461:86:-;;;;;;-1:-1:-1;;765:2461:86;;;;;;-1:-1:-1;765:2461:86;-1:-1:-1;;;;;;;;;;;765:2461:86;;;4919:24:24;765:2461:86;-1:-1:-1;765:2461:86;4919:24:24;765:2461:86;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;-1:-1:-1;;765:2461:86;;;;;;322:32:74;-1:-1:-1;;;;;765:2461:86;;;;;;;;;;;;-1:-1:-1;;765:2461:86;;;;5350:25:24;765:2461:86;;;;;;;:::i;:::-;;-1:-1:-1;765:2461:86;-1:-1:-1;;;;;;;;;;;765:2461:86;;3202:4:24;4919:24;765:2461:86;-1:-1:-1;765:2461:86;4919:24:24;765:2461:86;3202:4:24;:::i;:::-;5350:25;:::i;765:2461:86:-;;;;;;-1:-1:-1;;765:2461:86;;;;;;;;;:::i;:::-;966:10:28;-1:-1:-1;;;;;765:2461:86;;6441:34:24;6437:102;;6549:37;765:2461:86;;;6549:37:24;:::i;6437:102::-;765:2461:86;;-1:-1:-1;;;6498:30:24;;765:2461:86;;6498:30:24;765:2461:86;;;;;;-1:-1:-1;;765:2461:86;;;;;;;;;:::i;:::-;3217:103:29;;:::i;:::-;966:10:28;-1:-1:-1;765:2461:86;;;;;;;;;;1356:26:81;;765:2461:86;;4468:23:24;4464:108;;-1:-1:-1;4861:4:81;765:2461:86;-1:-1:-1;;;;;765:2461:86;;;;;;4861:13:81;;4857:63;;-1:-1:-1;;;;;;765:2461:86;;;4861:4:81;765:2461:86;4958:14:81;-1:-1:-1;;4958:14:81;4861:4;-1:-1:-1;;;;;;;;;;;765:2461:86;;4464:108:24;765:2461:86;;;;4514:47:24;;;;;;966:10:28;765:2461:86;4514:47:24;;765:2461:86;;;;;4514:47:24;765:2461:86;;;;;;;;;;;;;-1:-1:-1;;;;;765:2461:86;;;;;;;;;;;;;;;:::o;:::-;;;;;;-1:-1:-1;;765:2461:86;;;;-1:-1:-1;;;;;765:2461:86;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;765:2461:86;;;;;;;4301:16:26;765:2461:86;;4726:16:26;;:34;;;;765:2461:86;4805:1:26;4790:16;:50;;;;765:2461:86;4855:13:26;:30;;;;765:2461:86;4851:91:26;;;-1:-1:-1;;;;;;;;;;;765:2461:86;;-1:-1:-1;;765:2461:86;;;;;718:4:74;;4951:18:26;4979:67;;718:4:74;:::i;:::-;5066:101:26;;765:2461:86;5066:101:26;-1:-1:-1;;;;;;;;;;;765:2461:86;;-1:-1:-1;;;;765:2461:86;;;;;-1:-1:-1;765:2461:86;;5142:14:26;;765:2461:86;;5142:14:26;765:2461:86;4979:67:26;-1:-1:-1;;;;;;;;;;;765:2461:86;;-1:-1:-1;;;;765:2461:86;;;;;718:4:74;:::i;4851:91:26:-;765:2461:86;;-1:-1:-1;;;4908:23:26;;765:2461:86;;4908:23:26;4855:30;4872:13;;;4855:30;;;4790:50;4818:4;4810:25;:30;;-1:-1:-1;4790:50:26;;4726:34;;;-1:-1:-1;4726:34:26;;765:2461:86;;;;;;-1:-1:-1;;765:2461:86;;;;;;;1253:6:81;765:2461:86;;;;;;;;;-1:-1:-1;;765:2461:86;;;;;;;1356:26:81;765:2461:86;;;;;;;;;-1:-1:-1;;765:2461:86;;;;;;;;-1:-1:-1;;;;;765:2461:86;;;;;;;;;;;;;;-1:-1:-1;;765:2461:86;;;;;;3901:31:24;765:2461:86;;;;;:::i;:::-;;;-1:-1:-1;765:2461:86;-1:-1:-1;;;;;;;;;;;765:2461:86;;;-1:-1:-1;765:2461:86;;;;;;;;;;;;;;;;;3901:31:24;765:2461:86;;;;;;;;;;;;;;;;-1:-1:-1;;765:2461:86;;;;;;906:45;-1:-1:-1;;;;;765:2461:86;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;765:2461:86;;;;-1:-1:-1;765:2461:86;;;477:31:80;765:2461:86;;;;;;:::i;:::-;;;;;;;;;;;;;;;416:25:80;;;;765:2461:86;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;-1:-1:-1;765:2461:86;;;;;;;;;;;;;477:31:80;;765:2461:86;;;;;;;;;;:::i;:::-;477:31:80;765:2461:86;;477:31:80;;;;;;:::i;:::-;518:79;;;765:2461:86;518:79:80;;765:2461:86;;;;;;;;;;;-1:-1:-1;;765:2461:86;;;;;;;;;;;;;;;;;-1:-1:-1;;765:2461:86;;;;;;;-1:-1:-1;;;;;404:28:74;765:2461:86;;;;;;;;;;-1:-1:-1;;765:2461:86;;;;;;1439:41:81;-1:-1:-1;;;;;765:2461:86;;;;;;;;;;;;-1:-1:-1;;765:2461:86;;;;;;-1:-1:-1;765:2461:86;2009:67:81;765:2461:86;;;;-1:-1:-1;765:2461:86;;;;;;;;;;;;;;-1:-1:-1;;765:2461:86;;;;5767:26:24;765:2461:86;;;;;;;:::i;:::-;;-1:-1:-1;765:2461:86;-1:-1:-1;;;;;;;;;;;765:2461:86;;3202:4:24;4919:24;765:2461:86;-1:-1:-1;765:2461:86;4919:24:24;765:2461:86;3202:4:24;:::i;:::-;5767:26;:::i;765:2461:86:-;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;765:2461:86;;;;;;;:::o;:::-;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;765:2461:86;;;;;;;:::o;:::-;;;;;;;:::i;:::-;:::o;:::-;-1:-1:-1;;;;;765:2461:86;;;;;;-1:-1:-1;;765:2461:86;;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;765:2461:86;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;765:2461:86;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;3086:20:81;3082:107;;765:2461:86;;;;-1:-1:-1;765:2461:86;;;3082:107:81;3139:39;;;765:2461:86;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;3082:107:81;;;;;765:2461:86;;;;;;-1:-1:-1;;765:2461:86;;;;;;1019:53;-1:-1:-1;;;;;765:2461:86;;;;;;;;;;;;-1:-1:-1;;765:2461:86;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;-1:-1:-1;;;;;765:2461:86;;;;;;;;;;;;:::i;:::-;3217:103:29;;:::i;:::-;-1:-1:-1;765:2461:86;;;5246:21:81;;:13;;-1:-1:-1;;;;;765:2461:86;5246:13:81;765:2461:86;;-1:-1:-1;;;;;765:2461:86;;;5246:21:81;765:2461:86;;-1:-1:-1;;;5246:23:81;;765:2461:86;;;;;5246:23:81;;;;;;;-1:-1:-1;5246:23:81;;;765:2461:86;-1:-1:-1;;;;;;765:2461:86;;;5232:10:81;:37;5228:87;;5341:4;765:2461:86;-1:-1:-1;;;;;765:2461:86;;;;5355:469:81;;765:2461:86;-1:-1:-1;;765:2461:86;;;;;;;;;;;;;;;;5839:55:81;;765:2461:86;;;;5839:55:81;;;;3282:1:29;1805;-1:-1:-1;;;;;;;;;;;765:2461:86;3716:283:29;5355:469:81;765:2461:86;;;;5435:94:81;;;;765:2461:86;5435:94:81;;;;;;;;;;;;765:2461:86;5435:94:81;;;:::i;:::-;;765:2461:86;;5435:94:81;;;;;;:::i;:::-;765:2461:86;5548:9:81;:51;5544:118;;-1:-1:-1;5839:55:81;5676:138;;;;5839:55;5676:138;;;1150:7;5676:138;;5355:469;;;5544:118;765:2461:86;;-1:-1:-1;;;5626:21:81;;765:2461:86;;5626:21:81;5228:87;765:2461:86;;-1:-1:-1;;;5292:12:81;;765:2461:86;;5292:12:81;5246:23;;;;;765:2461:86;5246:23:81;765:2461:86;5246:23:81;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;765:2461:86;;;;;;-1:-1:-1;;765:2461:86;;;;;;;;-1:-1:-1;;;;;765:2461:86;;;;;;;;;;;;;;-1:-1:-1;;765:2461:86;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;765:2461:86;;;;;;;1150:7:81;765:2461:86;;;;;;;;;-1:-1:-1;;765:2461:86;;;;;;;2700:1:81;765:2461:86;;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;765:2461:86;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;;;;765:2461:86;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;2213:1011::-;765:2461;;;-1:-1:-1;;;2498:56:86;;765:2461;;2213:1011;-1:-1:-1;;;;;765:2461:86;;;;;;2498:56;;2213:1011;;;2453:20;765:2461;;2498:56;765:2461;2498:56;765:2461;;2498:56;;;;;;;;;;;2213:1011;-1:-1:-1;765:2461:86;;-1:-1:-1;;;2590:32:86;;765:2461;2590:32;765:2461;2498:56;765:2461;2590:32;;;;;;;;2498:56;2590:32;2435:220;2590:32;;;;;2213:1011;-1:-1:-1;765:2461:86;;-1:-1:-1;;;2435:220:86;;;-1:-1:-1;;;;;765:2461:86;;;2498:56;2435:220;;765:2461;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2435:220;;;;;;;;;;;2498:56;2435:220;;;2213:1011;765:2461;;;;;;2498:56;765:2461;;;;;;;;;;2768:58;;;;;;;;;2498:56;2768:58;;;2213:1011;-1:-1:-1;765:2461:86;;2705:174;;;-1:-1:-1;;;;;765:2461:86;;;2498:56;2705:174;;765:2461;;;;;;;;;;;;;;;;;;;;;;;;;;;2498:56;;765:2461;;;;;;;2705:174;;;;;;;;;;2498:56;2705:174;;;2213:1011;765:2461;;;2894:34;;;:74;;;2213:1011;2890:328;;2213:1011;;;;:::o;2890:328::-;2991:216;765:2461;;;;;2991:216;765:2461;;;:::i;:::-;;;;3019:174;;;765:2461;;2991:216;;;;;;:::i;2894:74::-;765:2461;;;2932:36;;2894:74;;2705:174;;;;;;2498:56;2705:174;;;;;;:::i;:::-;;;;;:::i;:::-;;;;2768:58;2498:56;2768:58;;;2705:174;2768:58;;;;;;;;;;;:::i;:::-;;;;;2435:220;;;;;;2498:56;2435:220;;;;;2498:56;2435:220;;;;;;:::i;:::-;;;;;;;;2590:32;;;;;;;;;;;;;;:::i;:::-;;;;2498:56;;;;;;;;;;;;;;;:::i;:::-;;;;;765:2461;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;-1:-1:-1;;;;;765:2461:86;;;;;;;:::o;1583:624::-;765:2461;;-1:-1:-1;;;1765:31:86;;;765:2461;;1583:624;;;-1:-1:-1;;;;;765:2461:86;1583:624;;;;1765:31;;765:2461;;;;;1765:31;765:2461;1765:31;765:2461;;1765:31;;;;;;;;;;;1583:624;-1:-1:-1;;;;;;765:2461:86;;;;;-1:-1:-1;;765:2461:86;;-1:-1:-1;;;1824:146:86;;-1:-1:-1;;;;;765:2461:86;;;1765:31;1824:146;;765:2461;;;;;;;;-1:-1:-1;;765:2461:86;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;765:2461:86;;;;;;1853:31;765:2461;1824:146;;;;;;;1765:31;1824:146;;;1817:153;;:::o;1824:146::-;;;;;;1765:31;1824:146;;;;;;:::i;1761:440::-;765:2461;;1765:31;765:2461;;1991:31;;;;;;;;;;;;;2026:1;1991:31;1765;1991;;;1761:440;765:2461;;;1991:36;1987:214;;1761:440;;;;;1583:624::o;1987:214::-;765:2461;;-1:-1:-1;;;2050:140:86;;-1:-1:-1;;;;;765:2461:86;;;1765:31;2050:140;;765:2461;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;765:2461:86;;;;;;2076:28;765:2461;2050:140;;;;;;;1765:31;2050:140;;;2043:147;;:::o;1991:31::-;;;;;;-1:-1:-1;1991:31:86;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;1765;;;;;;;;;;;;;;;:::i;:::-;;;;;765:2461;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;3740:389:81:-;3918:5;765:2461:86;;;-1:-1:-1;;;3853:71:81;;;-1:-1:-1;;;;;765:2461:86;;;3853:71:81;;;765:2461:86;;;;;;;;;3853:71:81;;765:2461:86;;3853:71:81;765:2461:86;;;3867:29:81;765:2461:86;;3853:71:81;;;;;;;3918:5;3853:71;;;3740:389;3852:72;;765:2461:86;;;3852:181:81;;3740:389;3835:242;;;;;;;;3918:5;3740:389;:::o;3835:242::-;3918:5;4058:8;:::o;3852:181::-;765:2461:86;;3945:88:81;;;-1:-1:-1;;;;;765:2461:86;;;;3853:71:81;3945:88;;765:2461:86;467:2:93;765:2461:86;;;;;;;;;;;-1:-1:-1;765:2461:86;;;;;;;;3959:31:81;765:2461:86;3945:88:81;;;;;;;3918:5;3945:88;;;3852:181;3944:89;;;3852:181;;;;;;;3945:88;;;;;;-1:-1:-1;3945:88:81;;;;;;:::i;:::-;;;;;3853:71;;;;;;;;;;;;;;:::i;:::-;;;;3326:384:29;-1:-1:-1;;;;;;;;;;;1847:1:29;765:2461:86;;3526:20:29;3522:88;;1847:1;765:2461:86;;3326:384:29:o;3522:88::-;765:2461:86;;-1:-1:-1;;;3569:30:29;;;;;4148:103:24;-1:-1:-1;765:2461:86;;;-1:-1:-1;;;;;;;;;;;765:2461:86;;;;;;;;966:10:28;765:2461:86;;;;;;;;;;4468:23:24;4464:108;;4148:103;:::o;7270:387::-;-1:-1:-1;;;;;765:2461:86;;-1:-1:-1;765:2461:86;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2887:71:24;765:2461:86;;;;-1:-1:-1;765:2461:86;;;;;;;;;;;-1:-1:-1;;;;;765:2461:86;;;;;;;;;;-1:-1:-1;;765:2461:86;7509:4:24;765:2461:86;;;966:10:28;;-1:-1:-1;;;;;765:2461:86;-1:-1:-1;7532:40:24;-1:-1:-1;;7532:40:24;7509:4;7586:11;:::o;7432:219::-;7628:12;;-1:-1:-1;7628:12:24;:::o;7270:387::-;-1:-1:-1;;;;;765:2461:86;;-1:-1:-1;765:2461:86;;;;;;;;;1356:26:81;;-1:-1:-1;;;;;;;;;;;2887:71:24;765:2461:86;;3901:31:24;765:2461:86;;;;-1:-1:-1;765:2461:86;;;;;;;;;;;-1:-1:-1;;;;;765:2461:86;;;;;;;;;;-1:-1:-1;;765:2461:86;7509:4:24;765:2461:86;;;966:10:28;;-1:-1:-1;;;;;765:2461:86;;7532:40:24;-1:-1:-1;;7532:40:24;7509:4;7586:11;:::o;7432:219::-;7628:12;;;-1:-1:-1;7628:12:24;:::o;7270:387::-;-1:-1:-1;765:2461:86;;;-1:-1:-1;;;;;;;;;;;765:2461:86;;;;;;;;-1:-1:-1;;;;;765:2461:86;;;;;;;;;;;;3901:31:24;765:2461:86;7892:388:24;-1:-1:-1;765:2461:86;;;-1:-1:-1;;;;;;;;;;;765:2461:86;;;;;;;;-1:-1:-1;;;;;765:2461:86;;;;;;;;;;;;;;;;-1:-1:-1;765:2461:86;;;;;;;;;;;-1:-1:-1;;;;;765:2461:86;;;;;;;;;;-1:-1:-1;;765:2461:86;;;966:10:28;;-1:-1:-1;;;;;765:2461:86;;8155:40:24;-1:-1:-1;;8155:40:24;765:2461:86;8209:11:24;:::o;765:2461:86:-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;765:2461:86;;;;;;;;:::i;5907:716:81:-;6030:34;5907:716;6030:34;;;;:::i;:::-;-1:-1:-1;765:2461:86;;-1:-1:-1;;;6080:41:81;;-1:-1:-1;;;;;765:2461:86;;;6080:41:81;;;765:2461:86;;;;6080:41:81;765:2461:86;;;6090:13:81;765:2461:86;;6080:41:81;;;;;;;-1:-1:-1;6080:41:81;;;5907:716;6079:42;;6075:90;;6210:14;2540:111:29;;;:::i;:::-;765:2461:86;;;;;;-1:-1:-1;;;;;765:2461:86;;-1:-1:-1;765:2461:86;;;-1:-1:-1;765:2461:86;;6210:14:81;765:2461:86;;;;:::i;:::-;6080:41:81;6311:15;;765:2461:86;;;;-1:-1:-1;;;;;;765:2461:86;-1:-1:-1;;;;;765:2461:86;;;;;;;;;;;-1:-1:-1;;;;;765:2461:86;;;;6337:143:81;;5907:716;-1:-1:-1;6493:28:81;765:2461:86;-1:-1:-1;;;;;765:2461:86;;;;;;;6489:128:81;;5907:716;:::o;6489:128::-;6551:55;;;:::i;:::-;;5907:716::o;6337:143::-;6404:65;;;:::i;:::-;;6337:143;;;6075:90;765:2461:86;;-1:-1:-1;;;6144:10:81;;6080:41;;6144:10;6080:41;;;;;;;;;;;;;;:::i;:::-;;;;6893:76:26;;;:::i;:::-;;;:::i;:::-;1805:1:29;-1:-1:-1;;;;;;;;;;;765:2461:86;6893:76:26:o;765:2461:86:-;;;;;;;;;;-1:-1:-1;;;;;765:2461:86;;;;;;;-1:-1:-1;765:2461:86;;;;;;;;;;;;:::o;7084:141:26:-;765:2461:86;-1:-1:-1;;;;;;;;;;;765:2461:86;;;;7150:18:26;7146:73;;7084:141::o;7146:73::-;765:2461:86;;-1:-1:-1;;;7191:17:26;;;;","linkReferences":{},"immutableReferences":{"64520":[{"start":1571,"length":32}],"64523":[{"start":2911,"length":32}],"65474":[{"start":1167,"length":32},{"start":2968,"length":32}],"65477":[{"start":711,"length":32},{"start":6731,"length":32}],"65480":[{"start":779,"length":32},{"start":5693,"length":32}],"65483":[{"start":847,"length":32},{"start":5819,"length":32}],"67793":[{"start":2621,"length":32},{"start":4496,"length":32}],"67795":[{"start":643,"length":32},{"start":5263,"length":32}],"67797":[{"start":3578,"length":32},{"start":5457,"length":32}]}},"methodIdentifiers":{"DEFAULT_ADMIN_ROLE()":"a217fddf","FACTORY()":"2dd31000","FULL_RESTAKE_DELEGATOR_HINTS()":"e102831a","HOOK_GAS_LIMIT()":"ff54740f","HOOK_RESERVE()":"557cab44","HOOK_SET_ROLE()":"6679191e","NETWORK_REGISTRY()":"c0cd7c3e","NETWORK_RESTAKE_DELEGATOR_HINTS()":"075db036","OPERATOR_NETWORK_OPT_IN_SERVICE()":"1a80e500","OPERATOR_VAULT_OPT_IN_SERVICE()":"128e5d82","OPT_IN_SERVICE_HINTS()":"9b656b22","TYPE()":"bb24fe8a","VAULT_FACTORY()":"103f2907","VERSION()":"ffa1ad74","getRoleAdmin(bytes32)":"248a9ca3","grantRole(bytes32,address)":"2f2ff15d","hasRole(bytes32,address)":"91d14854","hook()":"7f5a7c7b","initialize(bytes)":"439fab91","maxNetworkLimit(bytes32)":"d15b740e","onSlash(bytes32,address,uint256,uint48,bytes)":"e49561ee","renounceRole(bytes32,address)":"36568abe","revokeRole(bytes32,address)":"d547741f","setHook(address)":"3dfd3873","setMaxNetworkLimit(uint96,uint256)":"23f752d5","stake(bytes32,address)":"fd4d447c","stakeAt(bytes32,address,uint48,bytes)":"e02f6937","stakeBaseHints(address,bytes32,address,uint48)":"1bf10a3e","stakeHints(address,bytes32,address,uint48)":"25dc9708","staticDelegateCall(address,bytes)":"9f86fd85","supportsInterface(bytes4)":"01ffc9a7","vault()":"fbfa77cf"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"optInServiceHints\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"vaultHints_\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"AccessControlBadConfirmation\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"neededRole\",\"type\":\"bytes32\"}],\"name\":\"AccessControlUnauthorizedAccount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AlreadySet\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ExternalCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientHookGas\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotNetwork\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotSlasher\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotVault\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ReentrancyGuardReentrantCall\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint48\",\"name\":\"captureTimestamp\",\"type\":\"uint48\"}],\"name\":\"OnSlash\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"previousAdminRole\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"newAdminRole\",\"type\":\"bytes32\"}],\"name\":\"RoleAdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleRevoked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"hook\",\"type\":\"address\"}],\"name\":\"SetHook\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"SetMaxNetworkLimit\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DEFAULT_ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"FACTORY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"FULL_RESTAKE_DELEGATOR_HINTS\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"HOOK_GAS_LIMIT\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"HOOK_RESERVE\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"HOOK_SET_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"NETWORK_REGISTRY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"NETWORK_RESTAKE_DELEGATOR_HINTS\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"OPERATOR_NETWORK_OPT_IN_SERVICE\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"OPERATOR_VAULT_OPT_IN_SERVICE\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"OPT_IN_SERVICE_HINTS\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"TYPE\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"VAULT_FACTORY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"VERSION\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleAdmin\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"grantRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"hook\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"}],\"name\":\"maxNetworkLimit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint48\",\"name\":\"captureTimestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"onSlash\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"callerConfirmation\",\"type\":\"address\"}],\"name\":\"renounceRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"hook_\",\"type\":\"address\"}],\"name\":\"setHook\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint96\",\"name\":\"identifier\",\"type\":\"uint96\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"setMaxNetworkLimit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"stake\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hints\",\"type\":\"bytes\"}],\"name\":\"stakeAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"}],\"name\":\"stakeBaseHints\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"}],\"name\":\"stakeHints\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"staticDelegateCall\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"vault\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"AccessControlBadConfirmation()\":[{\"details\":\"The caller of a function is not the expected one. NOTE: Don't confuse with {AccessControlUnauthorizedAccount}.\"}],\"AccessControlUnauthorizedAccount(address,bytes32)\":[{\"details\":\"The `account` is missing a role.\"}],\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"ReentrancyGuardReentrantCall()\":[{\"details\":\"Unauthorized reentrant call.\"}]},\"events\":{\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"OnSlash(bytes32,address,uint256,uint48)\":{\"params\":{\"amount\":\"amount of the collateral to be slashed\",\"captureTimestamp\":\"time point when the stake was captured\",\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"}},\"RoleAdminChanged(bytes32,bytes32,bytes32)\":{\"details\":\"Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole` `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite {RoleAdminChanged} not being emitted signaling this.\"},\"RoleGranted(bytes32,address,address)\":{\"details\":\"Emitted when `account` is granted `role`. `sender` is the account that originated the contract call, an admin role bearer except when using {AccessControl-_setupRole}.\"},\"RoleRevoked(bytes32,address,address)\":{\"details\":\"Emitted when `account` is revoked `role`. `sender` is the account that originated the contract call: - if using `revokeRole`, it is the admin role bearer - if using `renounceRole`, it is the role bearer (i.e. `account`)\"},\"SetHook(address)\":{\"params\":{\"hook\":\"address of the hook\"}},\"SetMaxNetworkLimit(bytes32,uint256)\":{\"params\":{\"amount\":\"new maximum subnetwork's limit (how much stake the subnetwork is ready to get)\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"}}},\"kind\":\"dev\",\"methods\":{\"VERSION()\":{\"details\":\"Must return 1 for this one.\",\"returns\":{\"_0\":\"version of the delegator\"}},\"getRoleAdmin(bytes32)\":{\"details\":\"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}.\"},\"grantRole(bytes32,address)\":{\"details\":\"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event.\"},\"hasRole(bytes32,address)\":{\"details\":\"Returns `true` if `account` has been granted `role`.\"},\"initialize(bytes)\":{\"params\":{\"data\":\"some data to use\"}},\"onSlash(bytes32,address,uint256,uint48,bytes)\":{\"details\":\"Only the vault's slasher can call this function.\",\"params\":{\"amount\":\"amount of the collateral slashed\",\"captureTimestamp\":\"time point when the stake was captured\",\"data\":\"some additional data\",\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"}},\"renounceRole(bytes32,address)\":{\"details\":\"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `callerConfirmation`. May emit a {RoleRevoked} event.\"},\"revokeRole(bytes32,address)\":{\"details\":\"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event.\"},\"setHook(address)\":{\"details\":\"Only a HOOK_SET_ROLE holder can call this function. The hook can have arbitrary logic under certain functions, however, it doesn't affect the stake guarantees.\",\"params\":{\"hook\":\"address of the hook\"}},\"setMaxNetworkLimit(uint96,uint256)\":{\"details\":\"Only a network can call this function.\",\"params\":{\"amount\":\"new maximum subnetwork's limit\"}},\"stake(bytes32,address)\":{\"details\":\"Warning: this function is not safe to use for stake capturing, as it can change by the end of the block.\",\"params\":{\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"},\"returns\":{\"_0\":\"slashable stake until the end of the next epoch\"}},\"stakeAt(bytes32,address,uint48,bytes)\":{\"details\":\"Warning: it is not safe to use timestamp >= current one for the stake capturing, as it can change later.\",\"params\":{\"hints\":\"hints for the checkpoints' indexes\",\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\",\"timestamp\":\"time point to capture the stake at\"},\"returns\":{\"_0\":\"slashable stake at the given timestamp until the end of the consequent epoch\"}},\"staticDelegateCall(address,bytes)\":{\"details\":\"It allows to use this contract's storage on-chain.\",\"params\":{\"data\":\"data to make a delegatecall with\",\"target\":\"address of the contract to make a delegatecall to\"}},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"}},\"version\":1},\"userdoc\":{\"events\":{\"OnSlash(bytes32,address,uint256,uint48)\":{\"notice\":\"Emitted when a slash happens.\"},\"SetHook(address)\":{\"notice\":\"Emitted when a hook is set.\"},\"SetMaxNetworkLimit(bytes32,uint256)\":{\"notice\":\"Emitted when a subnetwork's maximum limit is set.\"}},\"kind\":\"user\",\"methods\":{\"FACTORY()\":{\"notice\":\"Get the factory's address.\"},\"HOOK_GAS_LIMIT()\":{\"notice\":\"Get a gas limit for the hook.\"},\"HOOK_RESERVE()\":{\"notice\":\"Get a reserve gas between the gas limit check and the hook's execution.\"},\"HOOK_SET_ROLE()\":{\"notice\":\"Get a hook setter's role.\"},\"NETWORK_REGISTRY()\":{\"notice\":\"Get the network registry's address.\"},\"OPERATOR_NETWORK_OPT_IN_SERVICE()\":{\"notice\":\"Get the operator-network opt-in service's address.\"},\"OPERATOR_VAULT_OPT_IN_SERVICE()\":{\"notice\":\"Get the operator-vault opt-in service's address.\"},\"TYPE()\":{\"notice\":\"Get the entity's type.\"},\"VAULT_FACTORY()\":{\"notice\":\"Get the vault factory's address.\"},\"VERSION()\":{\"notice\":\"Get a version of the delegator (different versions mean different interfaces).\"},\"hook()\":{\"notice\":\"Get the hook's address.\"},\"initialize(bytes)\":{\"notice\":\"Initialize this entity contract by using a given data.\"},\"maxNetworkLimit(bytes32)\":{\"notice\":\"Get a particular subnetwork's maximum limit (meaning the subnetwork is not ready to get more as a stake).\"},\"onSlash(bytes32,address,uint256,uint48,bytes)\":{\"notice\":\"Called when a slash happens.\"},\"setHook(address)\":{\"notice\":\"Set a new hook.\"},\"setMaxNetworkLimit(uint96,uint256)\":{\"notice\":\"Set a maximum limit for a subnetwork (how much stake the subnetwork is ready to get). identifier identifier of the subnetwork\"},\"stake(bytes32,address)\":{\"notice\":\"Get a stake that a given subnetwork will be able to slash for a certain operator until the end of the next epoch (if no cross-slashing and no slashings by the subnetwork).\"},\"stakeAt(bytes32,address,uint48,bytes)\":{\"notice\":\"Get a stake that a given subnetwork could be able to slash for a certain operator at a given timestamp until the end of the consequent epoch using hints (if no cross-slashing and no slashings by the subnetwork).\"},\"staticDelegateCall(address,bytes)\":{\"notice\":\"Make a delegatecall from this contract to a given target contract with a particular data (always reverts with a return data).\"},\"vault()\":{\"notice\":\"Get the vault's address.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/contracts/hints/DelegatorHints.sol\":\"BaseDelegatorHints\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol\":{\"keccak256\":\"0x6662ec4e5cefca03eeadd073e9469df8d2944bb2ee8ec8f7622c2c46aab5f225\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4d8544c6f8daa4d1bc215c6a72fe0acdb748664a105b0e5efc19295667521d45\",\"dweb:/ipfs/QmdGWqdnXT8S3RgCR6aV8XHZrsybieMQLLnug1NtpSjEXN\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0xc163fcf9bb10138631a9ba5564df1fa25db9adff73bd9ee868a8ae1858fe093a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9706d43a0124053d9880f6e31a59f31bc0a6a3dc1acd66ce0a16e1111658c5f6\",\"dweb:/ipfs/QmUFmfowzkRwGtDu36cXV9SPTBHJ3n7dG9xQiK5B28jTf2\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609\",\"dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9\",\"dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardUpgradeable.sol\":{\"keccak256\":\"0xb44e086e941292cdc7f440de51478493894ef0b1aeccb0c4047445919f667f74\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://942dad22fbdc1669f025540ba63aa3ccfad5f8458fc5d4525b31ebf272e7af45\",\"dweb:/ipfs/Qmdo4X2M82aM3AMoW2kf2jhYkSCyC4T1pHNd6obdsDFnAB\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol\":{\"keccak256\":\"0xdaba3f7c42c55b2896353f32bd27d4d5f8bae741b3b05d4c53f67abc4dc47ce8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1fa2e61141c602510bcd2cd936ed9561922ac8772a9b9c9a9db091a74e354a45\",\"dweb:/ipfs/QmcHQDDoEBwJmwUbzoVkytvJsBx3KVHYFFnDkvRGWh9Wmh\"]},\"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0xb6b36edd6a2999fd243ff226d6cbf84bd71af2432bbd0dfe19392996a1d9cb41\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1fd2f35495652e57e3f99bc6c510bc5f7dd398a176ea2e72d8ed730aebc6ca26\",\"dweb:/ipfs/QmTQV6X4gkikTib49cho5iDX3JvSQbdsoEChoDwrk3CbbH\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC1271.sol\":{\"keccak256\":\"0x85a45f3f10014a0f8be41157a32b6a5f905753ea64a4b64e29fc12b7deeecf39\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c3c74009ce36136b36c77c23935b8e4a7b4f253be2da2be4fb4a916b1ce43743\",\"dweb:/ipfs/QmcH36v3iN7SJJuF73AunLR2LtNxhVJ1wm63ph4dPZ4pcL\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC5267.sol\":{\"keccak256\":\"0x92aa1df62dc3d33f1656d63bede0923e0df0b706ad4137c8b10b0a8fe549fd92\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c5c0f29195ad64cbe556da8e257dac8f05f78c53f90323c0d2accf8e6922d33a\",\"dweb:/ipfs/QmQ61TED8uaCZwcbh8KkgRSsCav7x7HbcGHwHts3U4DmUP\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c\",\"dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0x6008dabfe393240d73d7dd7688033f72740d570aa422254d29a7dce8568f3aff\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f5196ec75139918c6c7bb4251b36395e668f1fa6d206beba7e7520e74913940d\",\"dweb:/ipfs/QmSyqjksXxmm2mCG6qRd1yuwLykypkSVBbnBnGqJRcuJMi\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x37bb49513c49c87c4642a891b13b63571bc87013dde806617aa1efb54605f386\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b3036b3a83b7c48f96641f2a9002b9f2dcb6a5958dd670894ada21ae8229b3d0\",\"dweb:/ipfs/QmUNfSBdoVtjhETaUJCYcaC7pTMgbhht926tJ2uXJbiVd3\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0xaf28a975a78550e45f65e559a3ad6a5ad43b9b8a37366999abd1b7084eb70721\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b7bd24e224f67f65bfadf85dc2929fa965456bb2415478bd0125471b5ce35245\",\"dweb:/ipfs/QmRaydGr8BTHs1kvaZfsNU69pKzUAGFrvABn1KiRSbE51y\"]},\"lib/openzeppelin-contracts/contracts/utils/ShortStrings.sol\":{\"keccak256\":\"0x18a7171df639a934592915a520ecb97c5bbc9675a1105607aac8a94e72bf62c6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7478e1f13da69a2867ccd883001d836b75620362e743f196376d63ed0c422a1c\",\"dweb:/ipfs/QmWywcQ9TNfwtoqAxbn25d8C5VrV12PrPS9UjtGe6pL2BA\"]},\"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0x32ba59b4b7299237c8ba56319110989d7978a039faf754793064e967e5894418\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1ae50c8b562427df610cc4540c9bf104acca7ef8e2dcae567ae7e52272281e9c\",\"dweb:/ipfs/QmTHiadFCSJUPpRjNegc5SahmeU8bAoY8i9Aq6tVscbcKR\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0x55f102ea785d8399c0e58d1108e2d289506dde18abc6db1b7f68c1f9f9bc5792\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e52e0a7765c943ef14e5bcf11e46e6139fa044be564881378349236bf2e3453\",\"dweb:/ipfs/QmZEeeXoFPW47amyP35gfzomF9DixqqTEPwzBakv6cZw6i\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0xeed0a08b0b091f528356cbc7245891a4c748682d4f6a18055e8e6ca77d12a6cf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba80ba06c8e6be852847e4c5f4492cef801feb6558ae09ed705ff2e04ea8b13c\",\"dweb:/ipfs/QmXRJDv3xHLVQCVXg1ZvR35QS9sij5y9NDWYzMfUfAdTHF\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/EIP712.sol\":{\"keccak256\":\"0x999f705a027ed6dc2d4e0df2cc4a509852c6bfd11de1c8161bf88832d0503fd0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0798def67258d9a3cc20b2b4da7ebf351a5cefe0abfdd665d2d81f8e32f89b21\",\"dweb:/ipfs/QmPEvJosnPfzHNjKvCv2D3891mA2Ww8eUwkqrxBjuYdHCt\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol\":{\"keccak256\":\"0xba333517a3add42cd35fe877656fc3dfcc9de53baa4f3aabbd6d12a92e4ea435\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2ceacff44c0fdc81e48e0e0b1db87a2076d3c1fb497341de077bf1da9f6b406c\",\"dweb:/ipfs/QmRUo1muMRAewxrKQ7TkXUtknyRoR57AyEkoPpiuZQ8FzX\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/SignatureChecker.sol\":{\"keccak256\":\"0x6b11eb41a228cca35d4b662b4df69fcd75192851365102690f57b2ac01e83fe6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ab006a2983ed350d2af21ddcdd835dcae3b8340086cc4d088460da5abd041f69\",\"dweb:/ipfs/QmbEacDhkJZiGrgzLjB4pNtE8Z1uudjDw1DvcDUTVQFsLG\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875\",\"dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0xe19a4d5f31d2861e7344e8e535e2feafb913d806d3e2b5fe7782741a2a7094fe\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4aed79c0fa6f0546ed02f2f683e8f77f0fd2ed7eb34d8bbf3d373c9a6d95b13c\",\"dweb:/ipfs/QmWqVz6UAVqmnWU5pqYPt1o6iDEZyPaBraAA3rKfTTSfYj\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x5f7e4076e175393767754387c962926577f1660dd9b810187b9002407656be72\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7d533a1c97cd43a57cd9c465f7ee8dd0e39ae93a8fb8ff8e5303a356b081cdcc\",\"dweb:/ipfs/QmVBEei6aTnvYNZp2CHYVNKyZS4q1KkjANfY39WVXZXVoT\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/Checkpoints.sol\":{\"keccak256\":\"0xbdc5e074d7dd6678f67e92b1a51a20226801a407b0e1af3da367c5d1ff4519ad\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a36cca6b22fff3db16fc789ff6c60eea71d4b156065d4d0c83a0bc5e91a77a8b\",\"dweb:/ipfs/QmYN3exd5AemxjBrN8XMB1p5LbbE16uC3sjbYjwi8AjcGR\"]},\"lib/openzeppelin-contracts/contracts/utils/types/Time.sol\":{\"keccak256\":\"0xc7755af115020049e4140f224f9ee88d7e1799ffb0646f37bf0df24bf6213f58\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7f09bf94d5274334ec021f61a04659db303f31e60460e14b709c9bf187740111\",\"dweb:/ipfs/QmNvgomZYUwFAt4cZbPWAiTeSZQreGehY9BK5xyVJsUttb\"]},\"src/contracts/common/Entity.sol\":{\"keccak256\":\"0x3d61a932995b8443381f3950542d388223a2c26dd5d29a3274dea3baa7388bd7\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://7cdf5f03ca72fd263fd32ff59c8d88ddca911ae83896a287d10772c1bbe9b138\",\"dweb:/ipfs/QmbP84r5BWT1Rn9AYTntWSf3xUMTTCohTZJFhbBhDXFoHa\"]},\"src/contracts/common/MigratableEntity.sol\":{\"keccak256\":\"0x2d736f4dacd5d7e7697503bc426c78b8250fe1694ca157965ec178da6807de58\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://f1237acf96b4b9f9b69156e068eddd726a6e15bd8e87a18dc999cd4ba4da069c\",\"dweb:/ipfs/QmS6M8fiFFSeuJ4ZKKq1z8W7w4ybeHQSy5TLASGoc1LVic\"]},\"src/contracts/common/StaticDelegateCallable.sol\":{\"keccak256\":\"0x350029aa8955eacaffffaeb58babc5c98e80ebc5c5db388ed17ee6465f4a9d90\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://eb392a8ee9050e0af606897df63e3404e3829e8b688b580663892f9664195764\",\"dweb:/ipfs/QmaXC8jqV8UrrAFkzXTEv2fJF56sy33HhLxAzaRZmUxuXD\"]},\"src/contracts/delegator/BaseDelegator.sol\":{\"keccak256\":\"0x7c54d491fdd4415b764a9c8defa068e56d4c0c8c9419be0053a1d377669290e8\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://9238bfbad0f6eeb0dc7727724de14380f1980b395902269703d5e2ef07e52e10\",\"dweb:/ipfs/QmPJn1V4HNXcEghYvogGuSTF24dSQUPosR5qtsXcmNqRm3\"]},\"src/contracts/delegator/FullRestakeDelegator.sol\":{\"keccak256\":\"0x0a81c4f8e72914563a9cb771e93acf889c71ea36b7bec040e4eb562b199d5af1\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://6fc66b6ba02da77046a0bbbd1dd407a62c08f52e04486c9cbd2cb1cca3da555f\",\"dweb:/ipfs/QmZQivK1ZnMxfRQQ5aLpV9co5u55wQVNev5Rg1hzAqxhkE\"]},\"src/contracts/delegator/NetworkRestakeDelegator.sol\":{\"keccak256\":\"0xd3a8e6522f9c6fdcc2da837c9023afd6bdff2bce45a35590320c475519e3636d\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://58b17a87f6554f08376f9ea7fedf486a4aa75801bf0ad8b23ff5a46959b6b7a3\",\"dweb:/ipfs/QmSTmNh67tYt8CmjVZb57r8N3qX5yeYdMApKPJm3qvQgQw\"]},\"src/contracts/delegator/OperatorNetworkSpecificDelegator.sol\":{\"keccak256\":\"0x031a10722b9ec49048f0952710401131290adb87e71caf294e864e7ac3b98a16\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://72428febc875134b2f29205e6f294634a1c22a7d5c78d6a9cb2f8196f107c9b5\",\"dweb:/ipfs/QmTPwXR6h5oytckmkLrHdKeEMdphJxceDhYUR4zvQeWAwY\"]},\"src/contracts/delegator/OperatorSpecificDelegator.sol\":{\"keccak256\":\"0x630ce62fa30b9f3349ab7a8cf8dbf041319febc6dd757be2f94d3d25944ed328\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://c2ac59d47ce57d2a6819ae9833e1a618a371eccff93eb5ab367b201b01f42bfa\",\"dweb:/ipfs/QmdBpGMBivpNPv2WbH8vnCUy5xkVeaxQvGgqi33vKCz1kA\"]},\"src/contracts/hints/DelegatorHints.sol\":{\"keccak256\":\"0x44aa0c396311a54afbc7c73e8dadeed41e3165a4fd13f712b27d63d50fc3376d\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://2f255214f3531fc707d88be0d56a7a0aed4180439316d099d760d9118aa83093\",\"dweb:/ipfs/QmZD1w5p1ukJSXumUAjvxwGmkPhn7vsr21Y2atLGEZR2oi\"]},\"src/contracts/hints/Hints.sol\":{\"keccak256\":\"0x8b565df1ae35993c097a9e642002782a8f451f6fd01809cad6bcd345bdf1b99c\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://99a19adb01e350a92f534095b3078229df1f2f83077992d75d58d8684be45971\",\"dweb:/ipfs/QmbmwcuswVbzvwHQFTtrJG86oV98GnfxqYTb8cV8u1acox\"]},\"src/contracts/hints/OptInServiceHints.sol\":{\"keccak256\":\"0x95d9407900d27b9f4a1233b772aeed809c07b2dc5b31cfc9fa77ca26514c49e5\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://a13a8877e312d7e6b8b85bde3668c5d84ff5ecc83f762cd573f2b7104c64eb42\",\"dweb:/ipfs/QmYV2J55acuGzCNnS3juABuUHY5U1xc8g8o9jwEyFFdeG5\"]},\"src/contracts/hints/VaultHints.sol\":{\"keccak256\":\"0xccb505b7159b769cc114d67b87c2de6b106557f667fc8f3780114baad5c3c442\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://6d0c80a908fc16e96a8b5605a0bd53f9e89ad0ef0a738fbbae80ba4d3160749b\",\"dweb:/ipfs/QmXo5UtWoR8YmunqcbBU8rQMm1nvmvjNPoXcVrDhh4pEwR\"]},\"src/contracts/libraries/Checkpoints.sol\":{\"keccak256\":\"0xba90097c8bfe0a975499428b5f8ac5569483c7d92ccc28c12d70de416aae040c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://12f5d93ca94cd06d3147db68993165a58e17903ed53682560de61f3085ad4609\",\"dweb:/ipfs/QmePiuAqvXprMLmFZkGZeGjvGPAvsEDHfCDv7BoQhXu9xE\"]},\"src/contracts/libraries/ERC4626Math.sol\":{\"keccak256\":\"0x8441160513c1cbeb1c3b9ee077bcc7e7ce20006b52a77c8dd39ff0ef89699939\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://943f8cc3e26ddf649f465f40c909819f5c864717c4baa339e9e403b9374a4653\",\"dweb:/ipfs/QmXPxi1sUDsrGprZdUgCzoPEosaZMv9ZhygWQ1vAi1phAB\"]},\"src/contracts/libraries/Subnetwork.sol\":{\"keccak256\":\"0xf5ef5506fd66082b3c2e7f3df37529f5a8efad32ac62e7c8914bd63219190bfe\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba031a54ee0d0e9a270c2b9e18437f5668cfeb659cfd5fe0677459d7fcac2a56\",\"dweb:/ipfs/QmReP3H7qQ78tAfgLnJKsNEQNCQfF1X1Get38Ffd4kzq32\"]},\"src/contracts/service/OptInService.sol\":{\"keccak256\":\"0x4e0932077f2686b7990e10d59deb2535334c0d09e52ef6e57c6ab09eca21c4b1\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://7c00d311032ed4a1743aca7475f3c86ce15cdfc2218108efc3731c03d34a5278\",\"dweb:/ipfs/QmUGGfVwVhaHr5kS4177yKKYiLYzi5qZpkEmvYxBZqazxf\"]},\"src/contracts/vault/Vault.sol\":{\"keccak256\":\"0x2ceff6ed3298c4cad144c99fcc79b51cb9397d6ebef00285b915848b476f8c2e\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://11f2fb3581854f3ab6e82e8d4935d9eb510c903a13c3f022346c2956a58f5307\",\"dweb:/ipfs/QmdUnoXoyYoG9SGWyQZCFyLDRUUX3eXyXetkRvw6jxqqBz\"]},\"src/contracts/vault/VaultStorage.sol\":{\"keccak256\":\"0x57db25b127d77ea3472de53e3a4af3354399655b9268638b99ca5925fa364a56\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://aa763d9a6ec508ae3abfb8228b72b9fd9525279e5135d4962e79ff059feb1173\",\"dweb:/ipfs/QmcbDR6E9wyEpu6V2FkEC4hnWy47zXA9LSKJde6zSGd33Q\"]},\"src/interfaces/common/IEntity.sol\":{\"keccak256\":\"0x8ef4b63d6da63489778ccd5f8d13ebdd527dd4b62730b2c616df5af7474d2d21\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a8d69576a9219d85c50816a18ad53a4d53cfcb27ed38b8cccc808dc2734b71b\",\"dweb:/ipfs/QmYVN3P4Q4REvBWJ97TbAcaxm3uyB2anV6NSGa6ZtSwcEv\"]},\"src/interfaces/common/IMigratableEntity.sol\":{\"keccak256\":\"0x8f5f2809f3afbe8ebfbb365dd7b57b4dd3b6f9943a6187eaf648d45895b8e3c4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ffe640537d539e7a4fde70d30d3e4c57f4ba9c2c25c450cea713aae38e8fd5c\",\"dweb:/ipfs/QmSUTGzvdcn1R1KB7tLThMRtESsfPbeXDhhhKWGtntzBds\"]},\"src/interfaces/common/IRegistry.sol\":{\"keccak256\":\"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014\",\"dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK\"]},\"src/interfaces/common/IStaticDelegateCallable.sol\":{\"keccak256\":\"0xa335d4e81b9071b7de66ef92b43ff20671d86516eb1be46fef29a3483cd3f5d5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d464b9db863c14c05547d2b23352f2e9b7b784799cf09f6bbc4906a2a74e3516\",\"dweb:/ipfs/QmUVWzFvJz7eEbDQKiFTTzwi7TEbjcs3VmwdM4kuptAKvi\"]},\"src/interfaces/delegator/IBaseDelegator.sol\":{\"keccak256\":\"0x96bb312f032e17accce3f8f80936d99468029d6b37c9ca74acdb4b026a0148ee\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2a66dcb5b7d1a6ef6a363431ea98ebd78bc4fdd3d7a134d9b542dc66e7d025c2\",\"dweb:/ipfs/QmRhTPLd2ZAyRHmJUFUcWKs9b3if49QY17LYZuRqWmghw8\"]},\"src/interfaces/delegator/IDelegatorHook.sol\":{\"keccak256\":\"0xc51aa8d7d1f6c8043ee819b7aeb86da0e993912e1442098df897e299f01f9f46\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://adddf5cb2ba282aeb576b26efb28640f865a1721cc9b6eee8b3ee0457a2c9780\",\"dweb:/ipfs/QmNYgAmnLRwWZbhTuQhZs9rx4zcme1df5mEepkrniorSoW\"]},\"src/interfaces/delegator/IFullRestakeDelegator.sol\":{\"keccak256\":\"0xa3c8cb2e45d4d8ce90e95263bea40c01dc400f05ad65bc29597d878606be5e7d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://782cf5e201aa4cca037ebafd3807a68ff1cc721d5b8416a35244db0d0607369e\",\"dweb:/ipfs/QmQkJks6x7CKndeTPa9LxgTNygD5uEi7obhADhpq1Lsr9A\"]},\"src/interfaces/delegator/INetworkRestakeDelegator.sol\":{\"keccak256\":\"0xe7030fe30389a147fd710e3436ec346b4842695fd3e65a81b95375c9f1d633fc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://739c7e66d301778054f5c90bee45ec9438f68afba8a03eaaac52064c73b115ad\",\"dweb:/ipfs/QmfZ2ytKcTykAc76nxhg8ikUXV8NdBpetqb8W4YWPcox1Z\"]},\"src/interfaces/delegator/IOperatorNetworkSpecificDelegator.sol\":{\"keccak256\":\"0x74b95e64d29769202d45dd277bb830f623ff3d41ce77b80ce3ee4e318a5c71ec\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e512b903aae5c1b8a028c6e3f4f6223b5cb5d704503cfa6bd37b5346868f5c20\",\"dweb:/ipfs/QmZim9YExsPWtyxyeui993HTKAEmrg8MUcSkZ77Gp2JcuZ\"]},\"src/interfaces/delegator/IOperatorSpecificDelegator.sol\":{\"keccak256\":\"0x72075cab585dc17240cc3e32bc99b92f0d5627ddd988fed680e3e1a52d5a01e4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7448bc90699409ae61d85216b5efc2143a37f0f73354be2aea993bc54afca441\",\"dweb:/ipfs/QmXE4gAxM8pHosZK8mcTcj17puBx484meDCcmrDePskGHZ\"]},\"src/interfaces/service/IOptInService.sol\":{\"keccak256\":\"0x76fb5460a6d87a5705433d4fbeff7253cd75b8bbd0c888b2088f16e86ace146a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://990322019b3d11465f7024bae77ccbf7e2fe5d6fa3c754584778f37d04fa1337\",\"dweb:/ipfs/QmaSNHzcqxTkUCG9a4nqVfLECHLdjdrwAnDi3yDC7tDL24\"]},\"src/interfaces/slasher/IBaseSlasher.sol\":{\"keccak256\":\"0x7c82528b445659c313ab77335c407b0b6efe5e79027187bb287f7bc74202b404\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0274c90aa5df1aa6bb470a6aab53992fb14fd7e5472c9430416505b29647d9cf\",\"dweb:/ipfs/QmckbmJLDetPemVzCnnGcKYWAZV2BRFXGDsjiaec8jkHxx\"]},\"src/interfaces/vault/IVault.sol\":{\"keccak256\":\"0xffee01d383cd4e1a5530c614bf4360c1ef070c288abec9da1eb531b51bc07235\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://04f0046cac285d8ec44ebbb1f79dc94fab4495767190cad8364fbc1fafaadfb9\",\"dweb:/ipfs/QmUawAunwzXfCyShWfhKeThAgKtqe51hmrxvrXvM772M2R\"]},\"src/interfaces/vault/IVaultStorage.sol\":{\"keccak256\":\"0x592626f13754194f83047135de19229c49390bd59e34659b1bb38be71d973a22\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://06a6a9dfddd05e580b32bebe2cff4f63ba26a653180676d58225dd30d9c89d3e\",\"dweb:/ipfs/QmdgzBeY6Sxo8mGtyBxtv1tM1c2kU6J6zjeRd7vuXm4DU6\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.25+commit.b61c2a91"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"optInServiceHints","type":"address"},{"internalType":"address","name":"vaultHints_","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"AccessControlBadConfirmation"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bytes32","name":"neededRole","type":"bytes32"}],"type":"error","name":"AccessControlUnauthorizedAccount"},{"inputs":[],"type":"error","name":"AlreadySet"},{"inputs":[],"type":"error","name":"ExternalCall"},{"inputs":[],"type":"error","name":"InsufficientHookGas"},{"inputs":[],"type":"error","name":"InvalidInitialization"},{"inputs":[],"type":"error","name":"NotInitialized"},{"inputs":[],"type":"error","name":"NotInitializing"},{"inputs":[],"type":"error","name":"NotNetwork"},{"inputs":[],"type":"error","name":"NotSlasher"},{"inputs":[],"type":"error","name":"NotVault"},{"inputs":[],"type":"error","name":"ReentrancyGuardReentrantCall"},{"inputs":[{"internalType":"uint64","name":"version","type":"uint64","indexed":false}],"type":"event","name":"Initialized","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32","indexed":true},{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false},{"internalType":"uint48","name":"captureTimestamp","type":"uint48","indexed":false}],"type":"event","name":"OnSlash","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"bytes32","name":"previousAdminRole","type":"bytes32","indexed":true},{"internalType":"bytes32","name":"newAdminRole","type":"bytes32","indexed":true}],"type":"event","name":"RoleAdminChanged","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"address","name":"sender","type":"address","indexed":true}],"type":"event","name":"RoleGranted","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"address","name":"sender","type":"address","indexed":true}],"type":"event","name":"RoleRevoked","anonymous":false},{"inputs":[{"internalType":"address","name":"hook","type":"address","indexed":true}],"type":"event","name":"SetHook","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"SetMaxNetworkLimit","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"DEFAULT_ADMIN_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"FACTORY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"FULL_RESTAKE_DELEGATOR_HINTS","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"HOOK_GAS_LIMIT","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"HOOK_RESERVE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"HOOK_SET_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"NETWORK_REGISTRY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"NETWORK_RESTAKE_DELEGATOR_HINTS","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"OPERATOR_NETWORK_OPT_IN_SERVICE","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"OPERATOR_VAULT_OPT_IN_SERVICE","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"OPT_IN_SERVICE_HINTS","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"TYPE","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"VAULT_FACTORY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"VERSION","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getRoleAdmin","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"grantRole"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"hasRole","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"hook","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"}],"stateMutability":"view","type":"function","name":"maxNetworkLimit","outputs":[{"internalType":"uint256","name":"value","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint48","name":"captureTimestamp","type":"uint48"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"onSlash"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"callerConfirmation","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"renounceRole"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"revokeRole"},{"inputs":[{"internalType":"address","name":"hook_","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setHook"},{"inputs":[{"internalType":"uint96","name":"identifier","type":"uint96"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setMaxNetworkLimit"},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"stake","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint48","name":"timestamp","type":"uint48"},{"internalType":"bytes","name":"hints","type":"bytes"}],"stateMutability":"view","type":"function","name":"stakeAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"delegator","type":"address"},{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint48","name":"timestamp","type":"uint48"}],"stateMutability":"view","type":"function","name":"stakeBaseHints","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"address","name":"delegator","type":"address"},{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint48","name":"timestamp","type":"uint48"}],"stateMutability":"view","type":"function","name":"stakeHints","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"staticDelegateCall"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"vault","outputs":[{"internalType":"address","name":"","type":"address"}]}],"devdoc":{"kind":"dev","methods":{"VERSION()":{"details":"Must return 1 for this one.","returns":{"_0":"version of the delegator"}},"getRoleAdmin(bytes32)":{"details":"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}."},"grantRole(bytes32,address)":{"details":"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event."},"hasRole(bytes32,address)":{"details":"Returns `true` if `account` has been granted `role`."},"initialize(bytes)":{"params":{"data":"some data to use"}},"onSlash(bytes32,address,uint256,uint48,bytes)":{"details":"Only the vault's slasher can call this function.","params":{"amount":"amount of the collateral slashed","captureTimestamp":"time point when the stake was captured","data":"some additional data","operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"}},"renounceRole(bytes32,address)":{"details":"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `callerConfirmation`. May emit a {RoleRevoked} event."},"revokeRole(bytes32,address)":{"details":"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event."},"setHook(address)":{"details":"Only a HOOK_SET_ROLE holder can call this function. The hook can have arbitrary logic under certain functions, however, it doesn't affect the stake guarantees.","params":{"hook":"address of the hook"}},"setMaxNetworkLimit(uint96,uint256)":{"details":"Only a network can call this function.","params":{"amount":"new maximum subnetwork's limit"}},"stake(bytes32,address)":{"details":"Warning: this function is not safe to use for stake capturing, as it can change by the end of the block.","params":{"operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"},"returns":{"_0":"slashable stake until the end of the next epoch"}},"stakeAt(bytes32,address,uint48,bytes)":{"details":"Warning: it is not safe to use timestamp >= current one for the stake capturing, as it can change later.","params":{"hints":"hints for the checkpoints' indexes","operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)","timestamp":"time point to capture the stake at"},"returns":{"_0":"slashable stake at the given timestamp until the end of the consequent epoch"}},"staticDelegateCall(address,bytes)":{"details":"It allows to use this contract's storage on-chain.","params":{"data":"data to make a delegatecall with","target":"address of the contract to make a delegatecall to"}},"supportsInterface(bytes4)":{"details":"See {IERC165-supportsInterface}."}},"version":1},"userdoc":{"kind":"user","methods":{"FACTORY()":{"notice":"Get the factory's address."},"HOOK_GAS_LIMIT()":{"notice":"Get a gas limit for the hook."},"HOOK_RESERVE()":{"notice":"Get a reserve gas between the gas limit check and the hook's execution."},"HOOK_SET_ROLE()":{"notice":"Get a hook setter's role."},"NETWORK_REGISTRY()":{"notice":"Get the network registry's address."},"OPERATOR_NETWORK_OPT_IN_SERVICE()":{"notice":"Get the operator-network opt-in service's address."},"OPERATOR_VAULT_OPT_IN_SERVICE()":{"notice":"Get the operator-vault opt-in service's address."},"TYPE()":{"notice":"Get the entity's type."},"VAULT_FACTORY()":{"notice":"Get the vault factory's address."},"VERSION()":{"notice":"Get a version of the delegator (different versions mean different interfaces)."},"hook()":{"notice":"Get the hook's address."},"initialize(bytes)":{"notice":"Initialize this entity contract by using a given data."},"maxNetworkLimit(bytes32)":{"notice":"Get a particular subnetwork's maximum limit (meaning the subnetwork is not ready to get more as a stake)."},"onSlash(bytes32,address,uint256,uint48,bytes)":{"notice":"Called when a slash happens."},"setHook(address)":{"notice":"Set a new hook."},"setMaxNetworkLimit(uint96,uint256)":{"notice":"Set a maximum limit for a subnetwork (how much stake the subnetwork is ready to get). identifier identifier of the subnetwork"},"stake(bytes32,address)":{"notice":"Get a stake that a given subnetwork will be able to slash for a certain operator until the end of the next epoch (if no cross-slashing and no slashings by the subnetwork)."},"stakeAt(bytes32,address,uint48,bytes)":{"notice":"Get a stake that a given subnetwork could be able to slash for a certain operator at a given timestamp until the end of the consequent epoch using hints (if no cross-slashing and no slashings by the subnetwork)."},"staticDelegateCall(address,bytes)":{"notice":"Make a delegatecall from this contract to a given target contract with a particular data (always reverts with a return data)."},"vault()":{"notice":"Get the vault's address."}},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/contracts/hints/DelegatorHints.sol":"BaseDelegatorHints"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol":{"keccak256":"0x6662ec4e5cefca03eeadd073e9469df8d2944bb2ee8ec8f7622c2c46aab5f225","urls":["bzz-raw://4d8544c6f8daa4d1bc215c6a72fe0acdb748664a105b0e5efc19295667521d45","dweb:/ipfs/QmdGWqdnXT8S3RgCR6aV8XHZrsybieMQLLnug1NtpSjEXN"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol":{"keccak256":"0xc163fcf9bb10138631a9ba5564df1fa25db9adff73bd9ee868a8ae1858fe093a","urls":["bzz-raw://9706d43a0124053d9880f6e31a59f31bc0a6a3dc1acd66ce0a16e1111658c5f6","dweb:/ipfs/QmUFmfowzkRwGtDu36cXV9SPTBHJ3n7dG9xQiK5B28jTf2"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b","urls":["bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609","dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol":{"keccak256":"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397","urls":["bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9","dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardUpgradeable.sol":{"keccak256":"0xb44e086e941292cdc7f440de51478493894ef0b1aeccb0c4047445919f667f74","urls":["bzz-raw://942dad22fbdc1669f025540ba63aa3ccfad5f8458fc5d4525b31ebf272e7af45","dweb:/ipfs/Qmdo4X2M82aM3AMoW2kf2jhYkSCyC4T1pHNd6obdsDFnAB"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol":{"keccak256":"0xdaba3f7c42c55b2896353f32bd27d4d5f8bae741b3b05d4c53f67abc4dc47ce8","urls":["bzz-raw://1fa2e61141c602510bcd2cd936ed9561922ac8772a9b9c9a9db091a74e354a45","dweb:/ipfs/QmcHQDDoEBwJmwUbzoVkytvJsBx3KVHYFFnDkvRGWh9Wmh"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol":{"keccak256":"0xb6b36edd6a2999fd243ff226d6cbf84bd71af2432bbd0dfe19392996a1d9cb41","urls":["bzz-raw://1fd2f35495652e57e3f99bc6c510bc5f7dd398a176ea2e72d8ed730aebc6ca26","dweb:/ipfs/QmTQV6X4gkikTib49cho5iDX3JvSQbdsoEChoDwrk3CbbH"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC1271.sol":{"keccak256":"0x85a45f3f10014a0f8be41157a32b6a5f905753ea64a4b64e29fc12b7deeecf39","urls":["bzz-raw://c3c74009ce36136b36c77c23935b8e4a7b4f253be2da2be4fb4a916b1ce43743","dweb:/ipfs/QmcH36v3iN7SJJuF73AunLR2LtNxhVJ1wm63ph4dPZ4pcL"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC5267.sol":{"keccak256":"0x92aa1df62dc3d33f1656d63bede0923e0df0b706ad4137c8b10b0a8fe549fd92","urls":["bzz-raw://c5c0f29195ad64cbe556da8e257dac8f05f78c53f90323c0d2accf8e6922d33a","dweb:/ipfs/QmQ61TED8uaCZwcbh8KkgRSsCav7x7HbcGHwHts3U4DmUP"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70","urls":["bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c","dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol":{"keccak256":"0x6008dabfe393240d73d7dd7688033f72740d570aa422254d29a7dce8568f3aff","urls":["bzz-raw://f5196ec75139918c6c7bb4251b36395e668f1fa6d206beba7e7520e74913940d","dweb:/ipfs/QmSyqjksXxmm2mCG6qRd1yuwLykypkSVBbnBnGqJRcuJMi"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0x37bb49513c49c87c4642a891b13b63571bc87013dde806617aa1efb54605f386","urls":["bzz-raw://b3036b3a83b7c48f96641f2a9002b9f2dcb6a5958dd670894ada21ae8229b3d0","dweb:/ipfs/QmUNfSBdoVtjhETaUJCYcaC7pTMgbhht926tJ2uXJbiVd3"],"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/ShortStrings.sol":{"keccak256":"0x18a7171df639a934592915a520ecb97c5bbc9675a1105607aac8a94e72bf62c6","urls":["bzz-raw://7478e1f13da69a2867ccd883001d836b75620362e743f196376d63ed0c422a1c","dweb:/ipfs/QmWywcQ9TNfwtoqAxbn25d8C5VrV12PrPS9UjtGe6pL2BA"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol":{"keccak256":"0x32ba59b4b7299237c8ba56319110989d7978a039faf754793064e967e5894418","urls":["bzz-raw://1ae50c8b562427df610cc4540c9bf104acca7ef8e2dcae567ae7e52272281e9c","dweb:/ipfs/QmTHiadFCSJUPpRjNegc5SahmeU8bAoY8i9Aq6tVscbcKR"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0x55f102ea785d8399c0e58d1108e2d289506dde18abc6db1b7f68c1f9f9bc5792","urls":["bzz-raw://6e52e0a7765c943ef14e5bcf11e46e6139fa044be564881378349236bf2e3453","dweb:/ipfs/QmZEeeXoFPW47amyP35gfzomF9DixqqTEPwzBakv6cZw6i"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol":{"keccak256":"0xeed0a08b0b091f528356cbc7245891a4c748682d4f6a18055e8e6ca77d12a6cf","urls":["bzz-raw://ba80ba06c8e6be852847e4c5f4492cef801feb6558ae09ed705ff2e04ea8b13c","dweb:/ipfs/QmXRJDv3xHLVQCVXg1ZvR35QS9sij5y9NDWYzMfUfAdTHF"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/EIP712.sol":{"keccak256":"0x999f705a027ed6dc2d4e0df2cc4a509852c6bfd11de1c8161bf88832d0503fd0","urls":["bzz-raw://0798def67258d9a3cc20b2b4da7ebf351a5cefe0abfdd665d2d81f8e32f89b21","dweb:/ipfs/QmPEvJosnPfzHNjKvCv2D3891mA2Ww8eUwkqrxBjuYdHCt"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol":{"keccak256":"0xba333517a3add42cd35fe877656fc3dfcc9de53baa4f3aabbd6d12a92e4ea435","urls":["bzz-raw://2ceacff44c0fdc81e48e0e0b1db87a2076d3c1fb497341de077bf1da9f6b406c","dweb:/ipfs/QmRUo1muMRAewxrKQ7TkXUtknyRoR57AyEkoPpiuZQ8FzX"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/SignatureChecker.sol":{"keccak256":"0x6b11eb41a228cca35d4b662b4df69fcd75192851365102690f57b2ac01e83fe6","urls":["bzz-raw://ab006a2983ed350d2af21ddcdd835dcae3b8340086cc4d088460da5abd041f69","dweb:/ipfs/QmbEacDhkJZiGrgzLjB4pNtE8Z1uudjDw1DvcDUTVQFsLG"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b","urls":["bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df","dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d","urls":["bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875","dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol":{"keccak256":"0xe19a4d5f31d2861e7344e8e535e2feafb913d806d3e2b5fe7782741a2a7094fe","urls":["bzz-raw://4aed79c0fa6f0546ed02f2f683e8f77f0fd2ed7eb34d8bbf3d373c9a6d95b13c","dweb:/ipfs/QmWqVz6UAVqmnWU5pqYPt1o6iDEZyPaBraAA3rKfTTSfYj"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0x5f7e4076e175393767754387c962926577f1660dd9b810187b9002407656be72","urls":["bzz-raw://7d533a1c97cd43a57cd9c465f7ee8dd0e39ae93a8fb8ff8e5303a356b081cdcc","dweb:/ipfs/QmVBEei6aTnvYNZp2CHYVNKyZS4q1KkjANfY39WVXZXVoT"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/Checkpoints.sol":{"keccak256":"0xbdc5e074d7dd6678f67e92b1a51a20226801a407b0e1af3da367c5d1ff4519ad","urls":["bzz-raw://a36cca6b22fff3db16fc789ff6c60eea71d4b156065d4d0c83a0bc5e91a77a8b","dweb:/ipfs/QmYN3exd5AemxjBrN8XMB1p5LbbE16uC3sjbYjwi8AjcGR"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/types/Time.sol":{"keccak256":"0xc7755af115020049e4140f224f9ee88d7e1799ffb0646f37bf0df24bf6213f58","urls":["bzz-raw://7f09bf94d5274334ec021f61a04659db303f31e60460e14b709c9bf187740111","dweb:/ipfs/QmNvgomZYUwFAt4cZbPWAiTeSZQreGehY9BK5xyVJsUttb"],"license":"MIT"},"src/contracts/common/Entity.sol":{"keccak256":"0x3d61a932995b8443381f3950542d388223a2c26dd5d29a3274dea3baa7388bd7","urls":["bzz-raw://7cdf5f03ca72fd263fd32ff59c8d88ddca911ae83896a287d10772c1bbe9b138","dweb:/ipfs/QmbP84r5BWT1Rn9AYTntWSf3xUMTTCohTZJFhbBhDXFoHa"],"license":"BUSL-1.1"},"src/contracts/common/MigratableEntity.sol":{"keccak256":"0x2d736f4dacd5d7e7697503bc426c78b8250fe1694ca157965ec178da6807de58","urls":["bzz-raw://f1237acf96b4b9f9b69156e068eddd726a6e15bd8e87a18dc999cd4ba4da069c","dweb:/ipfs/QmS6M8fiFFSeuJ4ZKKq1z8W7w4ybeHQSy5TLASGoc1LVic"],"license":"BUSL-1.1"},"src/contracts/common/StaticDelegateCallable.sol":{"keccak256":"0x350029aa8955eacaffffaeb58babc5c98e80ebc5c5db388ed17ee6465f4a9d90","urls":["bzz-raw://eb392a8ee9050e0af606897df63e3404e3829e8b688b580663892f9664195764","dweb:/ipfs/QmaXC8jqV8UrrAFkzXTEv2fJF56sy33HhLxAzaRZmUxuXD"],"license":"BUSL-1.1"},"src/contracts/delegator/BaseDelegator.sol":{"keccak256":"0x7c54d491fdd4415b764a9c8defa068e56d4c0c8c9419be0053a1d377669290e8","urls":["bzz-raw://9238bfbad0f6eeb0dc7727724de14380f1980b395902269703d5e2ef07e52e10","dweb:/ipfs/QmPJn1V4HNXcEghYvogGuSTF24dSQUPosR5qtsXcmNqRm3"],"license":"BUSL-1.1"},"src/contracts/delegator/FullRestakeDelegator.sol":{"keccak256":"0x0a81c4f8e72914563a9cb771e93acf889c71ea36b7bec040e4eb562b199d5af1","urls":["bzz-raw://6fc66b6ba02da77046a0bbbd1dd407a62c08f52e04486c9cbd2cb1cca3da555f","dweb:/ipfs/QmZQivK1ZnMxfRQQ5aLpV9co5u55wQVNev5Rg1hzAqxhkE"],"license":"BUSL-1.1"},"src/contracts/delegator/NetworkRestakeDelegator.sol":{"keccak256":"0xd3a8e6522f9c6fdcc2da837c9023afd6bdff2bce45a35590320c475519e3636d","urls":["bzz-raw://58b17a87f6554f08376f9ea7fedf486a4aa75801bf0ad8b23ff5a46959b6b7a3","dweb:/ipfs/QmSTmNh67tYt8CmjVZb57r8N3qX5yeYdMApKPJm3qvQgQw"],"license":"BUSL-1.1"},"src/contracts/delegator/OperatorNetworkSpecificDelegator.sol":{"keccak256":"0x031a10722b9ec49048f0952710401131290adb87e71caf294e864e7ac3b98a16","urls":["bzz-raw://72428febc875134b2f29205e6f294634a1c22a7d5c78d6a9cb2f8196f107c9b5","dweb:/ipfs/QmTPwXR6h5oytckmkLrHdKeEMdphJxceDhYUR4zvQeWAwY"],"license":"BUSL-1.1"},"src/contracts/delegator/OperatorSpecificDelegator.sol":{"keccak256":"0x630ce62fa30b9f3349ab7a8cf8dbf041319febc6dd757be2f94d3d25944ed328","urls":["bzz-raw://c2ac59d47ce57d2a6819ae9833e1a618a371eccff93eb5ab367b201b01f42bfa","dweb:/ipfs/QmdBpGMBivpNPv2WbH8vnCUy5xkVeaxQvGgqi33vKCz1kA"],"license":"BUSL-1.1"},"src/contracts/hints/DelegatorHints.sol":{"keccak256":"0x44aa0c396311a54afbc7c73e8dadeed41e3165a4fd13f712b27d63d50fc3376d","urls":["bzz-raw://2f255214f3531fc707d88be0d56a7a0aed4180439316d099d760d9118aa83093","dweb:/ipfs/QmZD1w5p1ukJSXumUAjvxwGmkPhn7vsr21Y2atLGEZR2oi"],"license":"BUSL-1.1"},"src/contracts/hints/Hints.sol":{"keccak256":"0x8b565df1ae35993c097a9e642002782a8f451f6fd01809cad6bcd345bdf1b99c","urls":["bzz-raw://99a19adb01e350a92f534095b3078229df1f2f83077992d75d58d8684be45971","dweb:/ipfs/QmbmwcuswVbzvwHQFTtrJG86oV98GnfxqYTb8cV8u1acox"],"license":"BUSL-1.1"},"src/contracts/hints/OptInServiceHints.sol":{"keccak256":"0x95d9407900d27b9f4a1233b772aeed809c07b2dc5b31cfc9fa77ca26514c49e5","urls":["bzz-raw://a13a8877e312d7e6b8b85bde3668c5d84ff5ecc83f762cd573f2b7104c64eb42","dweb:/ipfs/QmYV2J55acuGzCNnS3juABuUHY5U1xc8g8o9jwEyFFdeG5"],"license":"BUSL-1.1"},"src/contracts/hints/VaultHints.sol":{"keccak256":"0xccb505b7159b769cc114d67b87c2de6b106557f667fc8f3780114baad5c3c442","urls":["bzz-raw://6d0c80a908fc16e96a8b5605a0bd53f9e89ad0ef0a738fbbae80ba4d3160749b","dweb:/ipfs/QmXo5UtWoR8YmunqcbBU8rQMm1nvmvjNPoXcVrDhh4pEwR"],"license":"BUSL-1.1"},"src/contracts/libraries/Checkpoints.sol":{"keccak256":"0xba90097c8bfe0a975499428b5f8ac5569483c7d92ccc28c12d70de416aae040c","urls":["bzz-raw://12f5d93ca94cd06d3147db68993165a58e17903ed53682560de61f3085ad4609","dweb:/ipfs/QmePiuAqvXprMLmFZkGZeGjvGPAvsEDHfCDv7BoQhXu9xE"],"license":"MIT"},"src/contracts/libraries/ERC4626Math.sol":{"keccak256":"0x8441160513c1cbeb1c3b9ee077bcc7e7ce20006b52a77c8dd39ff0ef89699939","urls":["bzz-raw://943f8cc3e26ddf649f465f40c909819f5c864717c4baa339e9e403b9374a4653","dweb:/ipfs/QmXPxi1sUDsrGprZdUgCzoPEosaZMv9ZhygWQ1vAi1phAB"],"license":"MIT"},"src/contracts/libraries/Subnetwork.sol":{"keccak256":"0xf5ef5506fd66082b3c2e7f3df37529f5a8efad32ac62e7c8914bd63219190bfe","urls":["bzz-raw://ba031a54ee0d0e9a270c2b9e18437f5668cfeb659cfd5fe0677459d7fcac2a56","dweb:/ipfs/QmReP3H7qQ78tAfgLnJKsNEQNCQfF1X1Get38Ffd4kzq32"],"license":"MIT"},"src/contracts/service/OptInService.sol":{"keccak256":"0x4e0932077f2686b7990e10d59deb2535334c0d09e52ef6e57c6ab09eca21c4b1","urls":["bzz-raw://7c00d311032ed4a1743aca7475f3c86ce15cdfc2218108efc3731c03d34a5278","dweb:/ipfs/QmUGGfVwVhaHr5kS4177yKKYiLYzi5qZpkEmvYxBZqazxf"],"license":"BUSL-1.1"},"src/contracts/vault/Vault.sol":{"keccak256":"0x2ceff6ed3298c4cad144c99fcc79b51cb9397d6ebef00285b915848b476f8c2e","urls":["bzz-raw://11f2fb3581854f3ab6e82e8d4935d9eb510c903a13c3f022346c2956a58f5307","dweb:/ipfs/QmdUnoXoyYoG9SGWyQZCFyLDRUUX3eXyXetkRvw6jxqqBz"],"license":"BUSL-1.1"},"src/contracts/vault/VaultStorage.sol":{"keccak256":"0x57db25b127d77ea3472de53e3a4af3354399655b9268638b99ca5925fa364a56","urls":["bzz-raw://aa763d9a6ec508ae3abfb8228b72b9fd9525279e5135d4962e79ff059feb1173","dweb:/ipfs/QmcbDR6E9wyEpu6V2FkEC4hnWy47zXA9LSKJde6zSGd33Q"],"license":"BUSL-1.1"},"src/interfaces/common/IEntity.sol":{"keccak256":"0x8ef4b63d6da63489778ccd5f8d13ebdd527dd4b62730b2c616df5af7474d2d21","urls":["bzz-raw://5a8d69576a9219d85c50816a18ad53a4d53cfcb27ed38b8cccc808dc2734b71b","dweb:/ipfs/QmYVN3P4Q4REvBWJ97TbAcaxm3uyB2anV6NSGa6ZtSwcEv"],"license":"MIT"},"src/interfaces/common/IMigratableEntity.sol":{"keccak256":"0x8f5f2809f3afbe8ebfbb365dd7b57b4dd3b6f9943a6187eaf648d45895b8e3c4","urls":["bzz-raw://0ffe640537d539e7a4fde70d30d3e4c57f4ba9c2c25c450cea713aae38e8fd5c","dweb:/ipfs/QmSUTGzvdcn1R1KB7tLThMRtESsfPbeXDhhhKWGtntzBds"],"license":"MIT"},"src/interfaces/common/IRegistry.sol":{"keccak256":"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb","urls":["bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014","dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK"],"license":"MIT"},"src/interfaces/common/IStaticDelegateCallable.sol":{"keccak256":"0xa335d4e81b9071b7de66ef92b43ff20671d86516eb1be46fef29a3483cd3f5d5","urls":["bzz-raw://d464b9db863c14c05547d2b23352f2e9b7b784799cf09f6bbc4906a2a74e3516","dweb:/ipfs/QmUVWzFvJz7eEbDQKiFTTzwi7TEbjcs3VmwdM4kuptAKvi"],"license":"MIT"},"src/interfaces/delegator/IBaseDelegator.sol":{"keccak256":"0x96bb312f032e17accce3f8f80936d99468029d6b37c9ca74acdb4b026a0148ee","urls":["bzz-raw://2a66dcb5b7d1a6ef6a363431ea98ebd78bc4fdd3d7a134d9b542dc66e7d025c2","dweb:/ipfs/QmRhTPLd2ZAyRHmJUFUcWKs9b3if49QY17LYZuRqWmghw8"],"license":"MIT"},"src/interfaces/delegator/IDelegatorHook.sol":{"keccak256":"0xc51aa8d7d1f6c8043ee819b7aeb86da0e993912e1442098df897e299f01f9f46","urls":["bzz-raw://adddf5cb2ba282aeb576b26efb28640f865a1721cc9b6eee8b3ee0457a2c9780","dweb:/ipfs/QmNYgAmnLRwWZbhTuQhZs9rx4zcme1df5mEepkrniorSoW"],"license":"MIT"},"src/interfaces/delegator/IFullRestakeDelegator.sol":{"keccak256":"0xa3c8cb2e45d4d8ce90e95263bea40c01dc400f05ad65bc29597d878606be5e7d","urls":["bzz-raw://782cf5e201aa4cca037ebafd3807a68ff1cc721d5b8416a35244db0d0607369e","dweb:/ipfs/QmQkJks6x7CKndeTPa9LxgTNygD5uEi7obhADhpq1Lsr9A"],"license":"MIT"},"src/interfaces/delegator/INetworkRestakeDelegator.sol":{"keccak256":"0xe7030fe30389a147fd710e3436ec346b4842695fd3e65a81b95375c9f1d633fc","urls":["bzz-raw://739c7e66d301778054f5c90bee45ec9438f68afba8a03eaaac52064c73b115ad","dweb:/ipfs/QmfZ2ytKcTykAc76nxhg8ikUXV8NdBpetqb8W4YWPcox1Z"],"license":"MIT"},"src/interfaces/delegator/IOperatorNetworkSpecificDelegator.sol":{"keccak256":"0x74b95e64d29769202d45dd277bb830f623ff3d41ce77b80ce3ee4e318a5c71ec","urls":["bzz-raw://e512b903aae5c1b8a028c6e3f4f6223b5cb5d704503cfa6bd37b5346868f5c20","dweb:/ipfs/QmZim9YExsPWtyxyeui993HTKAEmrg8MUcSkZ77Gp2JcuZ"],"license":"MIT"},"src/interfaces/delegator/IOperatorSpecificDelegator.sol":{"keccak256":"0x72075cab585dc17240cc3e32bc99b92f0d5627ddd988fed680e3e1a52d5a01e4","urls":["bzz-raw://7448bc90699409ae61d85216b5efc2143a37f0f73354be2aea993bc54afca441","dweb:/ipfs/QmXE4gAxM8pHosZK8mcTcj17puBx484meDCcmrDePskGHZ"],"license":"MIT"},"src/interfaces/service/IOptInService.sol":{"keccak256":"0x76fb5460a6d87a5705433d4fbeff7253cd75b8bbd0c888b2088f16e86ace146a","urls":["bzz-raw://990322019b3d11465f7024bae77ccbf7e2fe5d6fa3c754584778f37d04fa1337","dweb:/ipfs/QmaSNHzcqxTkUCG9a4nqVfLECHLdjdrwAnDi3yDC7tDL24"],"license":"MIT"},"src/interfaces/slasher/IBaseSlasher.sol":{"keccak256":"0x7c82528b445659c313ab77335c407b0b6efe5e79027187bb287f7bc74202b404","urls":["bzz-raw://0274c90aa5df1aa6bb470a6aab53992fb14fd7e5472c9430416505b29647d9cf","dweb:/ipfs/QmckbmJLDetPemVzCnnGcKYWAZV2BRFXGDsjiaec8jkHxx"],"license":"MIT"},"src/interfaces/vault/IVault.sol":{"keccak256":"0xffee01d383cd4e1a5530c614bf4360c1ef070c288abec9da1eb531b51bc07235","urls":["bzz-raw://04f0046cac285d8ec44ebbb1f79dc94fab4495767190cad8364fbc1fafaadfb9","dweb:/ipfs/QmUawAunwzXfCyShWfhKeThAgKtqe51hmrxvrXvM772M2R"],"license":"MIT"},"src/interfaces/vault/IVaultStorage.sol":{"keccak256":"0x592626f13754194f83047135de19229c49390bd59e34659b1bb38be71d973a22","urls":["bzz-raw://06a6a9dfddd05e580b32bebe2cff4f63ba26a653180676d58225dd30d9c89d3e","dweb:/ipfs/QmdgzBeY6Sxo8mGtyBxtv1tM1c2kU6J6zjeRd7vuXm4DU6"],"license":"MIT"}},"version":1},"id":86} \ No newline at end of file diff --git a/out/DelegatorHints.sol/FullRestakeDelegatorHints.json b/out/DelegatorHints.sol/FullRestakeDelegatorHints.json index 6f78b64a..4ecc0c27 100644 --- a/out/DelegatorHints.sol/FullRestakeDelegatorHints.json +++ b/out/DelegatorHints.sol/FullRestakeDelegatorHints.json @@ -1 +1 @@ -{"abi":[{"type":"constructor","inputs":[{"name":"baseDelegatorHints","type":"address","internalType":"address"},{"name":"vaultHints","type":"address","internalType":"address"},{"name":"optInServiceHints","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"BASE_DELEGATOR_HINTS","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"DEFAULT_ADMIN_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"FACTORY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"HOOK_GAS_LIMIT","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"HOOK_RESERVE","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"HOOK_SET_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"NETWORK_LIMIT_SET_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"NETWORK_REGISTRY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"OPERATOR_NETWORK_LIMIT_SET_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"OPERATOR_NETWORK_OPT_IN_SERVICE","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"OPERATOR_VAULT_OPT_IN_SERVICE","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"OPT_IN_SERVICE_HINTS","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"TYPE","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"VAULT_FACTORY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"VAULT_HINTS","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"VERSION","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"pure"},{"type":"function","name":"getRoleAdmin","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"grantRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"hasRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"hook","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"initialize","inputs":[{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"maxNetworkLimit","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"value","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"networkLimit","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"networkLimitAt","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"timestamp","type":"uint48","internalType":"uint48"},{"name":"hint","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"networkLimitHint","inputs":[{"name":"delegator","type":"address","internalType":"address"},{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"timestamp","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"networkLimitHintInternal","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"timestamp","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"exists","type":"bool","internalType":"bool"},{"name":"hint","type":"uint32","internalType":"uint32"}],"stateMutability":"view"},{"type":"function","name":"onSlash","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"captureTimestamp","type":"uint48","internalType":"uint48"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"operatorNetworkLimit","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"operatorNetworkLimitAt","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"timestamp","type":"uint48","internalType":"uint48"},{"name":"hint","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"operatorNetworkLimitHint","inputs":[{"name":"delegator","type":"address","internalType":"address"},{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"timestamp","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"operatorNetworkLimitHintInternal","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"timestamp","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"exists","type":"bool","internalType":"bool"},{"name":"hint","type":"uint32","internalType":"uint32"}],"stateMutability":"view"},{"type":"function","name":"renounceRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"callerConfirmation","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"revokeRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setHook","inputs":[{"name":"hook_","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setMaxNetworkLimit","inputs":[{"name":"identifier","type":"uint96","internalType":"uint96"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setNetworkLimit","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setOperatorNetworkLimit","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"stake","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"stakeAt","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"timestamp","type":"uint48","internalType":"uint48"},{"name":"hints","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"stakeHints","inputs":[{"name":"delegator","type":"address","internalType":"address"},{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"timestamp","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"staticDelegateCall","inputs":[{"name":"target","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"vault","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"OnSlash","inputs":[{"name":"subnetwork","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"captureTimestamp","type":"uint48","indexed":false,"internalType":"uint48"}],"anonymous":false},{"type":"event","name":"RoleAdminChanged","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"previousAdminRole","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"newAdminRole","type":"bytes32","indexed":true,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"RoleGranted","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"sender","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"RoleRevoked","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"sender","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"SetHook","inputs":[{"name":"hook","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"SetMaxNetworkLimit","inputs":[{"name":"subnetwork","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"SetNetworkLimit","inputs":[{"name":"subnetwork","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"SetOperatorNetworkLimit","inputs":[{"name":"subnetwork","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"error","name":"AccessControlBadConfirmation","inputs":[]},{"type":"error","name":"AccessControlUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"neededRole","type":"bytes32","internalType":"bytes32"}]},{"type":"error","name":"AlreadySet","inputs":[]},{"type":"error","name":"CheckpointUnorderedInsertion","inputs":[]},{"type":"error","name":"DuplicateRoleHolder","inputs":[]},{"type":"error","name":"ExceedsMaxNetworkLimit","inputs":[]},{"type":"error","name":"ExternalCall","inputs":[]},{"type":"error","name":"InsufficientHookGas","inputs":[]},{"type":"error","name":"InvalidInitialization","inputs":[]},{"type":"error","name":"MissingRoleHolders","inputs":[]},{"type":"error","name":"NotInitialized","inputs":[]},{"type":"error","name":"NotInitializing","inputs":[]},{"type":"error","name":"NotNetwork","inputs":[]},{"type":"error","name":"NotSlasher","inputs":[]},{"type":"error","name":"NotVault","inputs":[]},{"type":"error","name":"ReentrancyGuardReentrantCall","inputs":[]},{"type":"error","name":"SafeCastOverflowedUintDowncast","inputs":[{"name":"bits","type":"uint8","internalType":"uint8"},{"name":"value","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ZeroAddressRoleHolder","inputs":[]}],"bytecode":{"object":"0x6101c0346101c857601f6135d938819003918201601f19168301916001600160401b0391828411858510176101cc5781606092869260409687528339810103126101c85761004c836101e0565b926100648361005d602084016101e0565b92016101e0565b91306080527ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a009081549060ff82871c166101b7578080831603610173575b5050505f60a0525f60c0525f60e052610100935f8552610120935f8552610140905f82526101609283526101809384526101a094855251946133e496876101f58839608051878181610696015261148c015260a0518761092d015260c0518761114b015260e0518781816107a101526111840152518681816104e2015261266601525185818161064c01528181611be00152611d0f01525184818161071f01528181611b470152611d8d015251838181610ebc015261179a015251828181610c8f015261183b0152518161104f0152f35b6001600160401b0319909116811790915583519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a15f80806100a2565b855163f92ee8a960e01b8152600490fd5b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b51906001600160a01b03821682036101c85756fe60806040526004361015610011575f80fd5b5f3560e01c806301ffc9a7146102c4578063020cf0c2146102bf57806302145348146102ba578063103f2907146102b557806310a28b5d146102b057806311422095146102ab578063128e5d82146102a6578063197aa7ea146102a15780631a80e5001461029c57806323f752d514610297578063248a9ca31461029257806325dc97081461028d5780632dd31000146102885780632f2ff15d1461028357806336568abe1461027e5780633dfd3873146102795780633eb22c0f14610274578063439fab911461026f57806345e78fcb1461026a578063518504ba14610265578063557cab44146102605780635d32a1c91461025b5780636679191e1461025657806379d89614146102515780637d24bb271461024c5780637f5a7c7b1461024757806391d148541461024257806394d2558a1461023d5780639b656b22146102385780639f86fd8514610233578063a217fddf1461022e578063bb24fe8a14610229578063c0cd7c3e14610224578063d15b740e1461021f578063d547741f1461021a578063da749d2b14610215578063e02f693714610210578063e49561ee1461020b578063f7b0554714610206578063fbfa77cf14610201578063fd4d447c146101fc578063ff54740f146101f75763ffa1ad74146101f2575f80fd5b611557565b61153a565b611510565b6114e9565b611465565b61127a565b61125e565b611229565b6111dd565b6111b3565b61116f565b61112c565b611112565b61107e565b61103a565b610ffc565b610f4c565b610f24565b610eeb565b610ea7565b610e6d565b610e1c565b610cf8565b610cbe565b610c7a565b610b42565b610aec565b6109f3565b6109a8565b61095c565b610918565b6108fb565b6108c2565b61074e565b61070a565b61067b565b610637565b6105e8565b6105b3565b6104cd565b610410565b61032f565b3461031a57602036600319011261031a5760043563ffffffff60e01b811680910361031a57602090637965db0b60e01b8114908115610309575b506040519015158152f35b6301ffc9a760e01b1490505f6102fe565b5f80fd5b6001600160a01b0381160361031a57565b3461031a57606036600319011261031a5760243560043561034f8261031e565b6044359161035b611e02565b815f526004602052826103896103848360405f209060018060a01b03165f5260205260405f2090565b6120b3565b146103fe5760207ffc9545f07ffadfb668efd0144cdcaf2d6e2c8192dce1ea9fc131934f9c90fc7e91835f52600482526103e9856103da8360405f209060018060a01b03165f5260205260405f2090565b6103e342612b0e565b90611f58565b50506040519485526001600160a01b031693a3005b60405163a741a04560e01b8152600490fd5b3461031a5760408060031936011261031a576004359060243590610432611e5f565b825f526002602052805f205482116104bd57825f52600360205281610458825f206120b3565b146104ad57816104a8916104987e899d104fc3d8820bd96540612bcc5c448c8837b13b9f7faa43ad0728f0c14f946103da875f52600360205260405f2090565b5050519081529081906020820190565b0390a2005b5163a741a04560e01b8152600490fd5b51631eefc06360e31b8152600490fd5b3461031a575f36600319011261031a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b6024359065ffffffffffff8216820361031a57565b6044359065ffffffffffff8216820361031a57565b6064359065ffffffffffff8216820361031a57565b608090600319011261031a576004356105688161031e565b90602435906044356105798161031e565b9060643565ffffffffffff8116810361031a5790565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b3461031a576105e46105d06105c736610550565b929190916115b1565b60405191829160208352602083019061058f565b0390f35b3461031a57604036600319011261031a57602061062f61038460243561060d8161031e565b6004355f526004845260405f209060018060a01b03165f5260205260405f2090565b604051908152f35b3461031a575f36600319011261031a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461031a57604036600319011261031a57610694610511565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633036106f8576106db906004355f52600360205260405f20612124565b60408051941515855263ffffffff91909116602085015292915050f35b604051637ca475e560e11b8152600490fd5b3461031a575f36600319011261031a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461031a57604036600319011261031a576004356001600160601b038116810361031a576024359061077e612229565b6040516302910f8b60e31b81523360048201526020816024816001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165afa9081156108bd575f9161088e575b501561087c576001600160601b03166bffffffffffffffffffffffff193360601b16179080610808835f52600260205260405f2090565b54146103fe57610861817fc67e7929681aa1bccd63f52b3799bf5805f3009f197db6fdf584b14f7fbf608c92610846855f52600260205260405f2090565b556108518185612258565b6040519081529081906020820190565b0390a261087a60015f8051602061336f83398151915255565b005b6040516323d53b9760e21b8152600490fd5b6108b0915060203d6020116108b6575b6108a88183610d7e565b810190611649565b5f6107d1565b503d61089e565b61165d565b3461031a57602036600319011261031a576004355f525f8051602061334f8339815191526020526020600160405f200154604051908152f35b3461031a576105e46105d061090f36610550565b9291909161174e565b3461031a575f36600319011261031a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461031a57604036600319011261031a5761087a60243560043561097f8261031e565b805f525f8051602061334f8339815191526020526109a3600160405f200154611eb5565b612533565b3461031a57604036600319011261031a576024356109c58161031e565b336001600160a01b038216036109e15761087a90600435612569565b60405163334bd91960e11b8152600490fd5b3461031a57602036600319011261031a57600435610a108161031e565b610a18612229565b335f9081527f9ebbcbe0d2961d3fbe56ca6f679bc753bd848d3e6bb3eaf9041c51b286881d2c60205260409020547fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c9060ff1615610ace57506001546001600160a01b0391821691811682146103fe576001600160a01b03191681176001557f5bbb1d3ebb6a3ad2a0f17ff35e579a83af60604d1d3c2a4c83c62adecadf666d5f80a260015f8051602061336f83398151915255005b6044906040519063e2517d3f60e01b82523360048301526024820152fd5b3461031a57602036600319011261031a576004355f526003602052602061062f60405f206120b3565b9181601f8401121561031a578235916001600160401b03831161031a576020838186019501011161031a57565b3461031a57602036600319011261031a576001600160401b0360043581811161031a57610b73903690600401610b15565b5f8051602061338f833981519152549260ff8460401c1615931680159081610c72575b6001149081610c68575b159081610c5f575b50610c4d575f8051602061338f833981519152805467ffffffffffffffff19166001179055610bdb9183610c2957612631565b610be157005b5f8051602061338f833981519152805460ff60401b19169055604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a1005b5f8051602061338f833981519152805460ff60401b1916600160401b179055612631565b60405163f92ee8a960e01b8152600490fd5b9050155f610ba8565b303b159150610ba0565b849150610b96565b3461031a575f36600319011261031a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461031a575f36600319011261031a5760206040517f15e7c882d74e8821ebf34aaff46fd0e1d53b9393d91490019124113d28dc32a38152f35b3461031a575f36600319011261031a576020604051614e208152f35b634e487b7160e01b5f52604160045260245ffd5b604081019081106001600160401b03821117610d4357604052565b610d14565b606081019081106001600160401b03821117610d4357604052565b608081019081106001600160401b03821117610d4357604052565b90601f801991011681019081106001600160401b03821117610d4357604052565b60405190610dac82610d63565b565b60405190610dac82610d28565b6001600160401b038111610d4357601f01601f191660200190565b81601f8201121561031a57803590610ded82610dbb565b92610dfb6040519485610d7e565b8284526020838301011161031a57815f926020809301838601378301015290565b3461031a57606036600319011261031a57610e35610511565b6044356001600160401b03811161031a57602091610e5a61062f923690600401610dd6565b906004355f526003845260405f20612798565b3461031a575f36600319011261031a5760206040517fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c8152f35b3461031a575f36600319011261031a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461031a575f36600319011261031a5760206040517e8b9b1e5fa9cf3b14f87f435649268146305ddf689f082e5961a335b07a9abf8152f35b3461031a575f36600319011261031a576001546040516001600160a01b039091168152602090f35b3461031a57604036600319011261031a57602060ff610f9e602435610f708161031e565b6004355f525f8051602061334f833981519152845260405f209060018060a01b03165f5260205260405f2090565b54166040519015158152f35b90608060031983011261031a5760043591602435610fc78161031e565b9160443565ffffffffffff8116810361031a5791606435906001600160401b03821161031a57610ff991600401610dd6565b90565b3461031a57602061062f61103561101236610faa565b939190925f526004865260405f209060018060a01b03165f5260205260405f2090565b612798565b3461031a575f36600319011261031a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461031a57604036600319011261031a5760043561109b8161031e565b6024356001600160401b03811161031a575f916110bd83923690600401610b15565b90816040519283928337810184815203915af461110a6110db6119a3565b916110fc60405193849215156020840152604080840152606083019061058f565b03601f198101835282610d7e565b805190602001fd5b3461031a575f36600319011261031a5760206040515f8152f35b3461031a575f36600319011261031a5760206040516001600160401b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461031a575f36600319011261031a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461031a57602036600319011261031a576004355f526002602052602060405f2054604051908152f35b3461031a57604036600319011261031a5761087a6024356004356112008261031e565b805f525f8051602061334f833981519152602052611224600160405f200154611eb5565b612569565b3461031a57606036600319011261031a576105e46105d060043561124c8161031e565b611254610526565b90602435906119d2565b3461031a57602061062f61127136610faa565b92919091611ad1565b3461031a5760a036600319011261031a5760243560043561129a8261031e565b604435916112a661053b565b90608435906001600160401b03821161031a576112c860049236908401610dd6565b6112d0612229565b5f546020906112f5906112e9906001600160a01b031681565b6001600160a01b031690565b60405163b134427160e01b815294859182905afa9283156108bd575f93611434575b506001600160a01b039283163303611422576001546001600160a01b0316838116611397575b50506040805195865265ffffffffffff909316602086015216927f741a5de99085c0d660f3e4192217b0ffb0ea4e35a0480de48e857a4bc3ee36ed91819081015b0390a361087a60015f8051602061336f83398151915255565b9093604051946113ce866113c0602082019363724ab0f760e11b8552858c898d60248701611c5b565b03601f198101885287610d7e565b62042e305a10611410575f61137e938192827f741a5de99085c0d660f3e4192217b0ffb0ea4e35a0480de48e857a4bc3ee36ed9951926203d090f1509361133d565b604051638072475160e01b8152600490fd5b60405163dabc4ad960e01b8152600490fd5b61145791935060203d60201161145e575b61144f8183610d7e565b8101906116d3565b915f611317565b503d611445565b3461031a57606036600319011261031a576024356114828161031e565b61148a610526565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633036106f8576114e46106db926004355f52600460205260405f209060018060a01b03165f5260205260405f2090565b612124565b3461031a575f36600319011261031a575f546040516001600160a01b039091168152602090f35b3461031a57604036600319011261031a57602061062f6024356115328161031e565b600435611cd8565b3461031a575f36600319011261031a5760206040516203d0908152f35b3461031a575f36600319011261031a57602060405160018152f35b5190811515820361031a57565b519063ffffffff8216820361031a57565b919082604091031261031a57610ff960206115aa84611572565b930161157f565b91939265ffffffffffff906060956040519363f7b0554760e01b6020860152602485015260018060a01b031660448401521660648201526064815260a08101908082106001600160401b03831117610d4357611622926116139260405261201a565b60208082518301019101611590565b9061162a5750565b90915063ffffffff6040519116602082015260208152610ff981610d28565b9081602091031261031a57610ff990611572565b6040513d5f823e3d90fd5b81601f8201121561031a5780519061167f82610dbb565b9261168d6040519485610d7e565b8284526020838301011161031a57815f9260208093018386015e8301015290565b9060208282031261031a5781516001600160401b03811161031a57610ff99201611668565b9081602091031261031a5751610ff98161031e565b90610ff9916020815261170782516080602084015260a083019061058f565b906080606061173e61172b602087015195601f19968787830301604088015261058f565b604087015186868303018487015261058f565b940151928285030191015261058f565b604051630df8851f60e11b81526001600160a01b03828116600483015260248201849052848116604483015265ffffffffffff8616606483015295606095909491939091905f856084817f00000000000000000000000000000000000000000000000000000000000000008c165afa9485156108bd575f95611945575b5060405163fbfa77cf60e01b8152602081600481888d165afa9081156108bd57611837995f9286928491611926575b5060405163192c0ff760e21b81526001600160a01b03909116600482015265ffffffffffff909216602483015290998a9190829081906044820190565b03917f0000000000000000000000000000000000000000000000000000000000000000165afa9788156108bd575f986118fa575b50908161187d846118839594876119d2565b946115b1565b908251158015906118f0575b80156118e6575b80156118dc575b6118a957505050909150565b6110fc9450610ff993956118bb610d9f565b938452602084015260408301526060820152604051928391602083016116e8565b508151151561189d565b5080511515611896565b508551151561188f565b611883939291985061191d903d805f833e6119158183610d7e565b8101906116ae565b9790919261186b565b61193f915060203d60201161145e5761144f8183610d7e565b5f6117fa565b61195a9195503d805f833e6119158183610d7e565b935f6117cb565b90610ff992915f52600360205260405f20612798565b5f9081526004602090815260408083206001600160a01b03909416835292905220610ff9929190612798565b3d156119cd573d906119b482610dbb565b916119c26040519384610d7e565b82523d5f602084013e565b606090565b611622916116139194939465ffffffffffff60609660405193630cbd53f560e11b6020860152602485015216604483015260448252611a1082610d63565b61201a565b60405190611a2282610d28565b60606020838281520152565b9060208282031261031a5781516001600160401b039283821161031a57019060408282031261031a5760405192611a6484610d28565b825181811161031a5782611a79918501611668565b8452602083015190811161031a57611a919201611668565b602082015290565b6001600160a01b0391821681529116602082015265ffffffffffff9091166040820152608060608201819052610ff99291019061058f565b92611ae190929192828486612973565b929093611aec611a15565b93805180611c3f575b50508415938415611ba9575b8415611b18575b50505050611b135790565b505f90565b602080949550611b43910151604051958694859463530e1d4360e01b865260601c9060048601611a99565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa9081156108bd575f91611b8a575b50155f808080611b08565b611ba3915060203d6020116108b6576108a88183610d7e565b5f611b7f565b5f549094506001600160a01b0316602084865192611bdc604051948593849363530e1d4360e01b85528960048601611a99565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa9081156108bd575f91611c20575b501593611b01565b611c39915060203d6020116108b6576108a88183610d7e565b5f611c18565b611c53929550602080918301019101611a2e565b925f80611af5565b919360a093610ff9969565ffffffffffff938552600180871b031660208501526040840152166060820152816080820152019061058f565b634e487b7160e01b5f52601160045260245ffd5b8115611cb1570490565b634e487b7160e01b5f52601260045260245ffd5b9060018201809211611cd357565b611c93565b5f546040516308834cb560e21b8082526001600160a01b0385811660048401529283166024830152929392602092909183816044817f000000000000000000000000000000000000000000000000000000000000000086165afa9081156108bd575f91611de5575b5015918215611d61575b50509050611d5b57610ff991612a68565b50505f90565b6040519081526001600160a01b0385166004820152606086901c602482015291508290829060449082907f0000000000000000000000000000000000000000000000000000000000000000165afa9182156108bd575f92611dc8575b505015805f80611d4a565b611dde9250803d106108b6576108a88183610d7e565b5f80611dbd565b611dfc9150843d86116108b6576108a88183610d7e565b5f611d40565b335f9081527f24e48de785eeca8420b70f73d267a66970ccc187d459f2a4b53e74ed92a5ab86602052604090207f15e7c882d74e8821ebf34aaff46fd0e1d53b9393d91490019124113d28dc32a39060ff905b541615610ace5750565b335f9081527f72a65082a5691803ab2b62c9bc729b34205ba1b183d950896526b2fd8714d0c7602052604090207e8b9b1e5fa9cf3b14f87f435649268146305ddf689f082e5961a335b07a9abf9060ff90611e55565b5f8181525f8051602061334f83398151915260209081526040808320338452909152902060ff90611e55565b634e487b7160e01b5f52603260045260245ffd5b8054821015611f0a575f5260205f2001905f90565b611ee1565b90815491600160401b831015610d435782611f32916001610dac95018155611ef5565b90919082549060031b91821b915f19901b1916179055565b5f19810191908211611cd357565b90929192600182019081548015611fea575b5084611f7584612b40565b50949092845493611f85836120b3565b9681611fd5575b5015611fb2575050505f198101908111611cd357611f328591611fae93611ef5565b9190565b611fae949293611fce926001600160d01b03909116919061319e565b5050611f0f565b65ffffffffffff83811691161490505f611f8c565b600160401b811015610d43578060016120069201845583611ef5565b8154905f199060031b1b191690555f611f6a565b5f9190829160405161204f816110fc6020820194639f86fd8560e01b865230602484015260406044840152606483019061058f565b51915afa5061205c6119a3565b8051810160408282031261031a5761207660208301611572565b916040810151916001600160401b03831161031a5761209c926020809201920101611668565b90156120a55790565b805190811561031a57602001fd5b8054806120e257505f5b6001600160d01b03811615611d5b5760016120d89201611ef5565b90549060031b1c90565b5f19908082810111611cd357825f5260205f2001015460301c6120bd565b9060405161210d81610d28565b915465ffffffffffff8116835260301c6020830152565b91908254905f8291600584116121c2575b612140935085612cc2565b9081156121b6576121af6121a66121a06120d861217261216d61216288611f4a565b895f5260205f200190565b612100565b966001612199602061218a8b5165ffffffffffff1690565b9a01516001600160d01b031690565b9101611ef5565b93611f4a565b63ffffffff1690565b6001939291565b5f925082915081908190565b91926121cd81612b8f565b8103908111611cd35761214093865f526122016121f68360205f200165ffffffffffff90541690565b65ffffffffffff1690565b65ffffffffffff85161015612217575091612135565b92915061222390611cc5565b90612135565b5f8051602061336f83398151915260028154146122465760029055565b604051633ee5aeb560e01b8152600490fd5b90815f52600360205260405f208161226f82612b40565b9193905083156122cd5761228f916001600160d01b031690600101611ef5565b90549060031b1c5b826122c3575b50506122a7575050565b6122bf915f52600360205260405f206103e342612b0e565b5050565b119050815f61229d565b50505f612297565b6001600160a01b0381165f9081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d60205260409020545f8051602061334f8339815191529060ff16611d5b575f808052602091825260408082206001600160a01b038516835290925220805460ff1916600117905533906001600160a01b03165f7f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d8180a4600190565b6001600160a01b0381165f9081527f9ebbcbe0d2961d3fbe56ca6f679bc753bd848d3e6bb3eaf9041c51b286881d2c602052604090207fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c905f8051602061334f8339815191529060ff905b541661244f575f828152602091825260408082206001600160a01b038616835290925220805460ff1916600117905533916001600160a01b0316907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d5f80a4600190565b5050505f90565b6001600160a01b0381165f9081527f72a65082a5691803ab2b62c9bc729b34205ba1b183d950896526b2fd8714d0c7602052604090207e8b9b1e5fa9cf3b14f87f435649268146305ddf689f082e5961a335b07a9abf905f8051602061334f8339815191529060ff906123eb565b6001600160a01b0381165f9081527f24e48de785eeca8420b70f73d267a66970ccc187d459f2a4b53e74ed92a5ab86602052604090207f15e7c882d74e8821ebf34aaff46fd0e1d53b9393d91490019124113d28dc32a3905f8051602061334f8339815191529060ff906123eb565b5f8181525f8051602061334f833981519152602081815260408084206001600160a01b038716855290915290912060ff906123eb565b5f8181525f8051602061334f833981519152602081815260408084206001600160a01b03871685529091529091205460ff161561244f575f828152602091825260408082206001600160a01b038616835290925220805460ff1916905533916001600160a01b0316907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b5f80a4600190565b91909160408184031261031a5780356126138161031e565b9260208201356001600160401b03811161031a57610ff99201610dd6565b61263d918101906125fb565b6040516302910f8b60e31b81526001600160a01b039283166004820181905291906020816024817f000000000000000000000000000000000000000000000000000000000000000088165afa9081156108bd575f91612750575b501561273e576126d26040916126cd612718946126b2612d19565b60018060a01b03166001600160601b0360a01b5f5416175f55565b612e99565b6020810151600180546001600160a01b0319166001600160a01b0390921691909117905580516001600160a01b031684811661272e575b5001516001600160a01b031690565b9081166127225750565b61272b90612380565b50565b612737906122d5565b505f612709565b6040516362df054560e01b8152600490fd5b612769915060203d6020116108b6576108a88183610d7e565b5f612697565b9081602091031261031a57610ff99061157f565b90600163ffffffff80931601918211611cd357565b9180511561286657806020806127b39351830101910161276f565b916127be83826130c9565b926127cf845165ffffffffffff1690565b9065ffffffffffff808516921682811461285a5782119182612805575b50506127fc57610ff99250612ff9565b50506020015190565b9091506128128354611f4a565b63ffffffff83161491821561282b575b50505f806127ec565b6128529192506128466128406121f692612783565b856130c9565b5165ffffffffffff1690565b115f80612822565b50505050506020015190565b50610ff991612ff9565b60405190608082018281106001600160401b03821117610d4357604052606080838181528160208201528160408201520152565b9060208282031261031a5781516001600160401b039283821161031a57019060808282031261031a576128d5610d9f565b92825181811161031a57826128eb918501611668565b8452602083015181811161031a5782612905918501611668565b6020850152604083015181811161031a5782612922918501611668565b6040850152606083015190811161031a5761293d9201611668565b606082015290565b9081602091031261031a575190565b60409065ffffffffffff610ff99493168152816020820152019061058f565b9391909361297f612870565b93805180612a48575b50506129c992939460206129a86112e96112e95f5460018060a01b031690565b8188015190604051808098819463810da75d60e01b83528960048401612954565b03915afa9182156108bd57612a0a945f93612a0f575b50612a0490612a0493946129f860408a01518284611961565b9360608a015192611977565b90613131565b915190565b612a04935090612a39612a049260203d602011612a41575b612a318183610d7e565b810190612945565b9350906129df565b503d612a27565b6129c994955090602080612a609383010191016128a4565b93925f612988565b5f5460405163bd49c35f60e01b8152929190602090849060049082906001600160a01b03165afa9081156108bd57610ff9935f92612ae3575b50612a04610384612a049394612ac2610384855f52600360205260405f2090565b935f52600460205260405f209060018060a01b03165f5260205260405f2090565b612a049250610384612b06612a049260203d602011612a4157612a318183610d7e565b935050612aa1565b65ffffffffffff90818111612b21571690565b604490604051906306dfcc6560e41b8252603060048301526024820152fd5b805480612b515750505f905f905f90565b5f19908082810111611cd357612b6e925f5260205f200101612100565b9065ffffffffffff82511691602060018060d01b0391015116906001929190565b8015611b135780612a04612c5a612c50612c46612c3c612c32612c28612c1e6001610ff99a5f908b60801c80612cb6575b508060401c80612ca9575b508060201c80612c9c575b508060101c80612c8f575b508060081c80612c82575b508060041c80612c75575b508060021c80612c68575b50821c612c61575b811c1b612c17818b611ca7565b0160011c90565b612c17818a611ca7565b612c178189611ca7565b612c178188611ca7565b612c178187611ca7565b612c178186611ca7565b612c178185611ca7565b8092611ca7565b8101612c0a565b600291509101905f612c02565b600491509101905f612bf7565b600891509101905f612bec565b601091509101905f612be1565b602091509101905f612bd6565b604091509101905f612bcb565b9150506080905f612bc0565b905b838310612cd15750505090565b909192612cde81856132b4565b90835f5265ffffffffffff808360205f20015416908416105f14612d065750925b9190612cc4565b93506001810180911115612cff57611c93565b612d216132c9565b612d296132c9565b60015f8051602061336f83398151915255565b60405190612d4982610d48565b5f6040838281528260208201520152565b81601f8201121561031a578051916020916001600160401b038411610d43578360051b9060405194612d8e85840187610d7e565b8552838086019282010192831161031a578301905b828210612db1575050505090565b8380918351612dbf8161031e565b815201910190612da3565b9060208282031261031a5781516001600160401b039283821161031a5701908181039260a0841261031a57606060405194612e0486610d48565b1261031a57604051612e1581610d48565b8351612e208161031e565b81526020840151612e308161031e565b60208201526040840151612e438161031e565b60408201528452606083015181811161031a5782612e62918501612d5a565b6020850152608083015190811161031a57612e7d9201612d5a565b604082015290565b8051821015611f0a5760209160051b010190565b612eb590612ea5612d3c565b5060208082518301019101612dca565b8051519091906001600160a01b03161580612fdf575b612fcd579060208101905f5b82518051821015612f51576112e9612ef283612eff93612e85565b516001600160a01b031690565b15612f3f57612f21612f1d612f18612ef2848751612e85565b612456565b1590565b612f2d57600101612ed7565b604051635140fefd60e11b8152600490fd5b6040516323cda06760e01b8152600490fd5b506040925050818101905f5b82518051821015612fc4576112e9612ef283612f7893612e85565b15612fb357612f96612f1d612f91612ef2848751612e85565b6124c4565b612fa257600101612f5d565b8351635140fefd60e11b8152600490fd5b83516323cda06760e01b8152600490fd5b50509150505190565b6040516303501f5960e11b8152600490fd5b506020820151511580612ecb575060408201515115612ecb565b908154905f829160058411613063575b6130149350846132f7565b8061303c57505f905b6001600160d01b03821615611d5b57610ff99160016120d89201611ef5565b61305661304b61305d92611f4a565b835f5260205f200190565b5460301c90565b9061301d565b919261306e81612b8f565b8103908111611cd35761301493855f5265ffffffffffff808360205f20015416908516105f1461309f575091613009565b9291506130ab90611cc5565b90613009565b604051906130be82610d28565b5f6020838281520152565b906130f26130ec613113926130dc6130b1565b506130e56130b1565b5084611ef5565b50612100565b91600165ffffffffffff845116936020828060d01b03910151169101611ef5565b9054906040519261312384610d28565b835260031b1c602082015290565b908082101561313e575090565b905090565b8054600160401b811015610d435761316091600182018155611ef5565b61318b57815160209092015160301b65ffffffffffff191665ffffffffffff92909216919091179055565b634e487b7160e01b5f525f60045260245ffd5b80549293929190821561328b576131ba61216d61304b85611f4a565b906131cb825165ffffffffffff1690565b65ffffffffffff8481169116811061327957611fae9460209488926131f96121f6875165ffffffffffff1690565b0361324157506132339261320f61321a92611f4a565b905f5260205f200190565b9065ffffffffffff82549181199060301b169116179055565b01516001600160d01b031690565b91505061327491613261613253610dae565b65ffffffffffff9093168352565b6001600160d01b03881682860152613143565b613233565b604051632520601d60e01b8152600490fd5b6132af925061329b613253610dae565b6001600160d01b0385166020830152613143565b5f9190565b90808216911860011c8101809111611cd35790565b60ff5f8051602061338f8339815191525460401c16156132e557565b604051631afcd79f60e31b8152600490fd5b905b8383106133065750505090565b90919261331381856132b4565b90835f5265ffffffffffff808360205f20015416908416105f1461333b5750925b91906132f9565b9350600181018091111561333457611c9356fe02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268009b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a2646970667358221220a114ef0ff5b29e345fe4269ee0528960ae4a86d65f802fa8e154dd6b83a6427064736f6c63430008190033","sourceMap":"7866:3473:81:-:0;;;;;;;;;;;;;-1:-1:-1;;7866:3473:81;;;;-1:-1:-1;;;;;7866:3473:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;:::i;:::-;348:4:82;;332:21;;8837:64:25;7866:3473:81;;;;;;;;;7896:76:25;;7866:3473:81;;;;7985:34:25;7981:146;;-1:-1:-1;525:17:69;;;-1:-1:-1;525:17:69;;-1:-1:-1;552:12:69;;-1:-1:-1;2360:34:76;;2404:28;;-1:-1:-1;2404:28:76;;2442:57;;-1:-1:-1;2442:57:76;;2509:61;;-1:-1:-1;2509:61:76;;8343:41:81;;;;8394:24;;;;8428:40;;;;7866:3473;;;;;;;;332:21:82;7866:3473:81;;;;;;;;;;525:17:69;7866:3473:81;;;;;552:12:69;7866:3473:81;;;;;2360:34:76;7866:3473:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7981:146:25;-1:-1:-1;;;;;;7866:3473:81;;;;;;;;;;;;;8087:29:25;;7866:3473:81;;8087:29:25;7981:146;;;;;7896:76;7866:3473:81;;-1:-1:-1;;;7938:23:25;;;;;7866:3473:81;-1:-1:-1;7866:3473:81;;;;;;-1:-1:-1;7866:3473:81;;;;;-1:-1:-1;7866:3473:81;;;;-1:-1:-1;;;;;7866:3473:81;;;;;;:::o","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361015610011575f80fd5b5f3560e01c806301ffc9a7146102c4578063020cf0c2146102bf57806302145348146102ba578063103f2907146102b557806310a28b5d146102b057806311422095146102ab578063128e5d82146102a6578063197aa7ea146102a15780631a80e5001461029c57806323f752d514610297578063248a9ca31461029257806325dc97081461028d5780632dd31000146102885780632f2ff15d1461028357806336568abe1461027e5780633dfd3873146102795780633eb22c0f14610274578063439fab911461026f57806345e78fcb1461026a578063518504ba14610265578063557cab44146102605780635d32a1c91461025b5780636679191e1461025657806379d89614146102515780637d24bb271461024c5780637f5a7c7b1461024757806391d148541461024257806394d2558a1461023d5780639b656b22146102385780639f86fd8514610233578063a217fddf1461022e578063bb24fe8a14610229578063c0cd7c3e14610224578063d15b740e1461021f578063d547741f1461021a578063da749d2b14610215578063e02f693714610210578063e49561ee1461020b578063f7b0554714610206578063fbfa77cf14610201578063fd4d447c146101fc578063ff54740f146101f75763ffa1ad74146101f2575f80fd5b611557565b61153a565b611510565b6114e9565b611465565b61127a565b61125e565b611229565b6111dd565b6111b3565b61116f565b61112c565b611112565b61107e565b61103a565b610ffc565b610f4c565b610f24565b610eeb565b610ea7565b610e6d565b610e1c565b610cf8565b610cbe565b610c7a565b610b42565b610aec565b6109f3565b6109a8565b61095c565b610918565b6108fb565b6108c2565b61074e565b61070a565b61067b565b610637565b6105e8565b6105b3565b6104cd565b610410565b61032f565b3461031a57602036600319011261031a5760043563ffffffff60e01b811680910361031a57602090637965db0b60e01b8114908115610309575b506040519015158152f35b6301ffc9a760e01b1490505f6102fe565b5f80fd5b6001600160a01b0381160361031a57565b3461031a57606036600319011261031a5760243560043561034f8261031e565b6044359161035b611e02565b815f526004602052826103896103848360405f209060018060a01b03165f5260205260405f2090565b6120b3565b146103fe5760207ffc9545f07ffadfb668efd0144cdcaf2d6e2c8192dce1ea9fc131934f9c90fc7e91835f52600482526103e9856103da8360405f209060018060a01b03165f5260205260405f2090565b6103e342612b0e565b90611f58565b50506040519485526001600160a01b031693a3005b60405163a741a04560e01b8152600490fd5b3461031a5760408060031936011261031a576004359060243590610432611e5f565b825f526002602052805f205482116104bd57825f52600360205281610458825f206120b3565b146104ad57816104a8916104987e899d104fc3d8820bd96540612bcc5c448c8837b13b9f7faa43ad0728f0c14f946103da875f52600360205260405f2090565b5050519081529081906020820190565b0390a2005b5163a741a04560e01b8152600490fd5b51631eefc06360e31b8152600490fd5b3461031a575f36600319011261031a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b6024359065ffffffffffff8216820361031a57565b6044359065ffffffffffff8216820361031a57565b6064359065ffffffffffff8216820361031a57565b608090600319011261031a576004356105688161031e565b90602435906044356105798161031e565b9060643565ffffffffffff8116810361031a5790565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b3461031a576105e46105d06105c736610550565b929190916115b1565b60405191829160208352602083019061058f565b0390f35b3461031a57604036600319011261031a57602061062f61038460243561060d8161031e565b6004355f526004845260405f209060018060a01b03165f5260205260405f2090565b604051908152f35b3461031a575f36600319011261031a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461031a57604036600319011261031a57610694610511565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633036106f8576106db906004355f52600360205260405f20612124565b60408051941515855263ffffffff91909116602085015292915050f35b604051637ca475e560e11b8152600490fd5b3461031a575f36600319011261031a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461031a57604036600319011261031a576004356001600160601b038116810361031a576024359061077e612229565b6040516302910f8b60e31b81523360048201526020816024816001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165afa9081156108bd575f9161088e575b501561087c576001600160601b03166bffffffffffffffffffffffff193360601b16179080610808835f52600260205260405f2090565b54146103fe57610861817fc67e7929681aa1bccd63f52b3799bf5805f3009f197db6fdf584b14f7fbf608c92610846855f52600260205260405f2090565b556108518185612258565b6040519081529081906020820190565b0390a261087a60015f8051602061336f83398151915255565b005b6040516323d53b9760e21b8152600490fd5b6108b0915060203d6020116108b6575b6108a88183610d7e565b810190611649565b5f6107d1565b503d61089e565b61165d565b3461031a57602036600319011261031a576004355f525f8051602061334f8339815191526020526020600160405f200154604051908152f35b3461031a576105e46105d061090f36610550565b9291909161174e565b3461031a575f36600319011261031a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461031a57604036600319011261031a5761087a60243560043561097f8261031e565b805f525f8051602061334f8339815191526020526109a3600160405f200154611eb5565b612533565b3461031a57604036600319011261031a576024356109c58161031e565b336001600160a01b038216036109e15761087a90600435612569565b60405163334bd91960e11b8152600490fd5b3461031a57602036600319011261031a57600435610a108161031e565b610a18612229565b335f9081527f9ebbcbe0d2961d3fbe56ca6f679bc753bd848d3e6bb3eaf9041c51b286881d2c60205260409020547fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c9060ff1615610ace57506001546001600160a01b0391821691811682146103fe576001600160a01b03191681176001557f5bbb1d3ebb6a3ad2a0f17ff35e579a83af60604d1d3c2a4c83c62adecadf666d5f80a260015f8051602061336f83398151915255005b6044906040519063e2517d3f60e01b82523360048301526024820152fd5b3461031a57602036600319011261031a576004355f526003602052602061062f60405f206120b3565b9181601f8401121561031a578235916001600160401b03831161031a576020838186019501011161031a57565b3461031a57602036600319011261031a576001600160401b0360043581811161031a57610b73903690600401610b15565b5f8051602061338f833981519152549260ff8460401c1615931680159081610c72575b6001149081610c68575b159081610c5f575b50610c4d575f8051602061338f833981519152805467ffffffffffffffff19166001179055610bdb9183610c2957612631565b610be157005b5f8051602061338f833981519152805460ff60401b19169055604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a1005b5f8051602061338f833981519152805460ff60401b1916600160401b179055612631565b60405163f92ee8a960e01b8152600490fd5b9050155f610ba8565b303b159150610ba0565b849150610b96565b3461031a575f36600319011261031a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461031a575f36600319011261031a5760206040517f15e7c882d74e8821ebf34aaff46fd0e1d53b9393d91490019124113d28dc32a38152f35b3461031a575f36600319011261031a576020604051614e208152f35b634e487b7160e01b5f52604160045260245ffd5b604081019081106001600160401b03821117610d4357604052565b610d14565b606081019081106001600160401b03821117610d4357604052565b608081019081106001600160401b03821117610d4357604052565b90601f801991011681019081106001600160401b03821117610d4357604052565b60405190610dac82610d63565b565b60405190610dac82610d28565b6001600160401b038111610d4357601f01601f191660200190565b81601f8201121561031a57803590610ded82610dbb565b92610dfb6040519485610d7e565b8284526020838301011161031a57815f926020809301838601378301015290565b3461031a57606036600319011261031a57610e35610511565b6044356001600160401b03811161031a57602091610e5a61062f923690600401610dd6565b906004355f526003845260405f20612798565b3461031a575f36600319011261031a5760206040517fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c8152f35b3461031a575f36600319011261031a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461031a575f36600319011261031a5760206040517e8b9b1e5fa9cf3b14f87f435649268146305ddf689f082e5961a335b07a9abf8152f35b3461031a575f36600319011261031a576001546040516001600160a01b039091168152602090f35b3461031a57604036600319011261031a57602060ff610f9e602435610f708161031e565b6004355f525f8051602061334f833981519152845260405f209060018060a01b03165f5260205260405f2090565b54166040519015158152f35b90608060031983011261031a5760043591602435610fc78161031e565b9160443565ffffffffffff8116810361031a5791606435906001600160401b03821161031a57610ff991600401610dd6565b90565b3461031a57602061062f61103561101236610faa565b939190925f526004865260405f209060018060a01b03165f5260205260405f2090565b612798565b3461031a575f36600319011261031a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461031a57604036600319011261031a5760043561109b8161031e565b6024356001600160401b03811161031a575f916110bd83923690600401610b15565b90816040519283928337810184815203915af461110a6110db6119a3565b916110fc60405193849215156020840152604080840152606083019061058f565b03601f198101835282610d7e565b805190602001fd5b3461031a575f36600319011261031a5760206040515f8152f35b3461031a575f36600319011261031a5760206040516001600160401b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461031a575f36600319011261031a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461031a57602036600319011261031a576004355f526002602052602060405f2054604051908152f35b3461031a57604036600319011261031a5761087a6024356004356112008261031e565b805f525f8051602061334f833981519152602052611224600160405f200154611eb5565b612569565b3461031a57606036600319011261031a576105e46105d060043561124c8161031e565b611254610526565b90602435906119d2565b3461031a57602061062f61127136610faa565b92919091611ad1565b3461031a5760a036600319011261031a5760243560043561129a8261031e565b604435916112a661053b565b90608435906001600160401b03821161031a576112c860049236908401610dd6565b6112d0612229565b5f546020906112f5906112e9906001600160a01b031681565b6001600160a01b031690565b60405163b134427160e01b815294859182905afa9283156108bd575f93611434575b506001600160a01b039283163303611422576001546001600160a01b0316838116611397575b50506040805195865265ffffffffffff909316602086015216927f741a5de99085c0d660f3e4192217b0ffb0ea4e35a0480de48e857a4bc3ee36ed91819081015b0390a361087a60015f8051602061336f83398151915255565b9093604051946113ce866113c0602082019363724ab0f760e11b8552858c898d60248701611c5b565b03601f198101885287610d7e565b62042e305a10611410575f61137e938192827f741a5de99085c0d660f3e4192217b0ffb0ea4e35a0480de48e857a4bc3ee36ed9951926203d090f1509361133d565b604051638072475160e01b8152600490fd5b60405163dabc4ad960e01b8152600490fd5b61145791935060203d60201161145e575b61144f8183610d7e565b8101906116d3565b915f611317565b503d611445565b3461031a57606036600319011261031a576024356114828161031e565b61148a610526565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633036106f8576114e46106db926004355f52600460205260405f209060018060a01b03165f5260205260405f2090565b612124565b3461031a575f36600319011261031a575f546040516001600160a01b039091168152602090f35b3461031a57604036600319011261031a57602061062f6024356115328161031e565b600435611cd8565b3461031a575f36600319011261031a5760206040516203d0908152f35b3461031a575f36600319011261031a57602060405160018152f35b5190811515820361031a57565b519063ffffffff8216820361031a57565b919082604091031261031a57610ff960206115aa84611572565b930161157f565b91939265ffffffffffff906060956040519363f7b0554760e01b6020860152602485015260018060a01b031660448401521660648201526064815260a08101908082106001600160401b03831117610d4357611622926116139260405261201a565b60208082518301019101611590565b9061162a5750565b90915063ffffffff6040519116602082015260208152610ff981610d28565b9081602091031261031a57610ff990611572565b6040513d5f823e3d90fd5b81601f8201121561031a5780519061167f82610dbb565b9261168d6040519485610d7e565b8284526020838301011161031a57815f9260208093018386015e8301015290565b9060208282031261031a5781516001600160401b03811161031a57610ff99201611668565b9081602091031261031a5751610ff98161031e565b90610ff9916020815261170782516080602084015260a083019061058f565b906080606061173e61172b602087015195601f19968787830301604088015261058f565b604087015186868303018487015261058f565b940151928285030191015261058f565b604051630df8851f60e11b81526001600160a01b03828116600483015260248201849052848116604483015265ffffffffffff8616606483015295606095909491939091905f856084817f00000000000000000000000000000000000000000000000000000000000000008c165afa9485156108bd575f95611945575b5060405163fbfa77cf60e01b8152602081600481888d165afa9081156108bd57611837995f9286928491611926575b5060405163192c0ff760e21b81526001600160a01b03909116600482015265ffffffffffff909216602483015290998a9190829081906044820190565b03917f0000000000000000000000000000000000000000000000000000000000000000165afa9788156108bd575f986118fa575b50908161187d846118839594876119d2565b946115b1565b908251158015906118f0575b80156118e6575b80156118dc575b6118a957505050909150565b6110fc9450610ff993956118bb610d9f565b938452602084015260408301526060820152604051928391602083016116e8565b508151151561189d565b5080511515611896565b508551151561188f565b611883939291985061191d903d805f833e6119158183610d7e565b8101906116ae565b9790919261186b565b61193f915060203d60201161145e5761144f8183610d7e565b5f6117fa565b61195a9195503d805f833e6119158183610d7e565b935f6117cb565b90610ff992915f52600360205260405f20612798565b5f9081526004602090815260408083206001600160a01b03909416835292905220610ff9929190612798565b3d156119cd573d906119b482610dbb565b916119c26040519384610d7e565b82523d5f602084013e565b606090565b611622916116139194939465ffffffffffff60609660405193630cbd53f560e11b6020860152602485015216604483015260448252611a1082610d63565b61201a565b60405190611a2282610d28565b60606020838281520152565b9060208282031261031a5781516001600160401b039283821161031a57019060408282031261031a5760405192611a6484610d28565b825181811161031a5782611a79918501611668565b8452602083015190811161031a57611a919201611668565b602082015290565b6001600160a01b0391821681529116602082015265ffffffffffff9091166040820152608060608201819052610ff99291019061058f565b92611ae190929192828486612973565b929093611aec611a15565b93805180611c3f575b50508415938415611ba9575b8415611b18575b50505050611b135790565b505f90565b602080949550611b43910151604051958694859463530e1d4360e01b865260601c9060048601611a99565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa9081156108bd575f91611b8a575b50155f808080611b08565b611ba3915060203d6020116108b6576108a88183610d7e565b5f611b7f565b5f549094506001600160a01b0316602084865192611bdc604051948593849363530e1d4360e01b85528960048601611a99565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa9081156108bd575f91611c20575b501593611b01565b611c39915060203d6020116108b6576108a88183610d7e565b5f611c18565b611c53929550602080918301019101611a2e565b925f80611af5565b919360a093610ff9969565ffffffffffff938552600180871b031660208501526040840152166060820152816080820152019061058f565b634e487b7160e01b5f52601160045260245ffd5b8115611cb1570490565b634e487b7160e01b5f52601260045260245ffd5b9060018201809211611cd357565b611c93565b5f546040516308834cb560e21b8082526001600160a01b0385811660048401529283166024830152929392602092909183816044817f000000000000000000000000000000000000000000000000000000000000000086165afa9081156108bd575f91611de5575b5015918215611d61575b50509050611d5b57610ff991612a68565b50505f90565b6040519081526001600160a01b0385166004820152606086901c602482015291508290829060449082907f0000000000000000000000000000000000000000000000000000000000000000165afa9182156108bd575f92611dc8575b505015805f80611d4a565b611dde9250803d106108b6576108a88183610d7e565b5f80611dbd565b611dfc9150843d86116108b6576108a88183610d7e565b5f611d40565b335f9081527f24e48de785eeca8420b70f73d267a66970ccc187d459f2a4b53e74ed92a5ab86602052604090207f15e7c882d74e8821ebf34aaff46fd0e1d53b9393d91490019124113d28dc32a39060ff905b541615610ace5750565b335f9081527f72a65082a5691803ab2b62c9bc729b34205ba1b183d950896526b2fd8714d0c7602052604090207e8b9b1e5fa9cf3b14f87f435649268146305ddf689f082e5961a335b07a9abf9060ff90611e55565b5f8181525f8051602061334f83398151915260209081526040808320338452909152902060ff90611e55565b634e487b7160e01b5f52603260045260245ffd5b8054821015611f0a575f5260205f2001905f90565b611ee1565b90815491600160401b831015610d435782611f32916001610dac95018155611ef5565b90919082549060031b91821b915f19901b1916179055565b5f19810191908211611cd357565b90929192600182019081548015611fea575b5084611f7584612b40565b50949092845493611f85836120b3565b9681611fd5575b5015611fb2575050505f198101908111611cd357611f328591611fae93611ef5565b9190565b611fae949293611fce926001600160d01b03909116919061319e565b5050611f0f565b65ffffffffffff83811691161490505f611f8c565b600160401b811015610d43578060016120069201845583611ef5565b8154905f199060031b1b191690555f611f6a565b5f9190829160405161204f816110fc6020820194639f86fd8560e01b865230602484015260406044840152606483019061058f565b51915afa5061205c6119a3565b8051810160408282031261031a5761207660208301611572565b916040810151916001600160401b03831161031a5761209c926020809201920101611668565b90156120a55790565b805190811561031a57602001fd5b8054806120e257505f5b6001600160d01b03811615611d5b5760016120d89201611ef5565b90549060031b1c90565b5f19908082810111611cd357825f5260205f2001015460301c6120bd565b9060405161210d81610d28565b915465ffffffffffff8116835260301c6020830152565b91908254905f8291600584116121c2575b612140935085612cc2565b9081156121b6576121af6121a66121a06120d861217261216d61216288611f4a565b895f5260205f200190565b612100565b966001612199602061218a8b5165ffffffffffff1690565b9a01516001600160d01b031690565b9101611ef5565b93611f4a565b63ffffffff1690565b6001939291565b5f925082915081908190565b91926121cd81612b8f565b8103908111611cd35761214093865f526122016121f68360205f200165ffffffffffff90541690565b65ffffffffffff1690565b65ffffffffffff85161015612217575091612135565b92915061222390611cc5565b90612135565b5f8051602061336f83398151915260028154146122465760029055565b604051633ee5aeb560e01b8152600490fd5b90815f52600360205260405f208161226f82612b40565b9193905083156122cd5761228f916001600160d01b031690600101611ef5565b90549060031b1c5b826122c3575b50506122a7575050565b6122bf915f52600360205260405f206103e342612b0e565b5050565b119050815f61229d565b50505f612297565b6001600160a01b0381165f9081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d60205260409020545f8051602061334f8339815191529060ff16611d5b575f808052602091825260408082206001600160a01b038516835290925220805460ff1916600117905533906001600160a01b03165f7f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d8180a4600190565b6001600160a01b0381165f9081527f9ebbcbe0d2961d3fbe56ca6f679bc753bd848d3e6bb3eaf9041c51b286881d2c602052604090207fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c905f8051602061334f8339815191529060ff905b541661244f575f828152602091825260408082206001600160a01b038616835290925220805460ff1916600117905533916001600160a01b0316907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d5f80a4600190565b5050505f90565b6001600160a01b0381165f9081527f72a65082a5691803ab2b62c9bc729b34205ba1b183d950896526b2fd8714d0c7602052604090207e8b9b1e5fa9cf3b14f87f435649268146305ddf689f082e5961a335b07a9abf905f8051602061334f8339815191529060ff906123eb565b6001600160a01b0381165f9081527f24e48de785eeca8420b70f73d267a66970ccc187d459f2a4b53e74ed92a5ab86602052604090207f15e7c882d74e8821ebf34aaff46fd0e1d53b9393d91490019124113d28dc32a3905f8051602061334f8339815191529060ff906123eb565b5f8181525f8051602061334f833981519152602081815260408084206001600160a01b038716855290915290912060ff906123eb565b5f8181525f8051602061334f833981519152602081815260408084206001600160a01b03871685529091529091205460ff161561244f575f828152602091825260408082206001600160a01b038616835290925220805460ff1916905533916001600160a01b0316907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b5f80a4600190565b91909160408184031261031a5780356126138161031e565b9260208201356001600160401b03811161031a57610ff99201610dd6565b61263d918101906125fb565b6040516302910f8b60e31b81526001600160a01b039283166004820181905291906020816024817f000000000000000000000000000000000000000000000000000000000000000088165afa9081156108bd575f91612750575b501561273e576126d26040916126cd612718946126b2612d19565b60018060a01b03166001600160601b0360a01b5f5416175f55565b612e99565b6020810151600180546001600160a01b0319166001600160a01b0390921691909117905580516001600160a01b031684811661272e575b5001516001600160a01b031690565b9081166127225750565b61272b90612380565b50565b612737906122d5565b505f612709565b6040516362df054560e01b8152600490fd5b612769915060203d6020116108b6576108a88183610d7e565b5f612697565b9081602091031261031a57610ff99061157f565b90600163ffffffff80931601918211611cd357565b9180511561286657806020806127b39351830101910161276f565b916127be83826130c9565b926127cf845165ffffffffffff1690565b9065ffffffffffff808516921682811461285a5782119182612805575b50506127fc57610ff99250612ff9565b50506020015190565b9091506128128354611f4a565b63ffffffff83161491821561282b575b50505f806127ec565b6128529192506128466128406121f692612783565b856130c9565b5165ffffffffffff1690565b115f80612822565b50505050506020015190565b50610ff991612ff9565b60405190608082018281106001600160401b03821117610d4357604052606080838181528160208201528160408201520152565b9060208282031261031a5781516001600160401b039283821161031a57019060808282031261031a576128d5610d9f565b92825181811161031a57826128eb918501611668565b8452602083015181811161031a5782612905918501611668565b6020850152604083015181811161031a5782612922918501611668565b6040850152606083015190811161031a5761293d9201611668565b606082015290565b9081602091031261031a575190565b60409065ffffffffffff610ff99493168152816020820152019061058f565b9391909361297f612870565b93805180612a48575b50506129c992939460206129a86112e96112e95f5460018060a01b031690565b8188015190604051808098819463810da75d60e01b83528960048401612954565b03915afa9182156108bd57612a0a945f93612a0f575b50612a0490612a0493946129f860408a01518284611961565b9360608a015192611977565b90613131565b915190565b612a04935090612a39612a049260203d602011612a41575b612a318183610d7e565b810190612945565b9350906129df565b503d612a27565b6129c994955090602080612a609383010191016128a4565b93925f612988565b5f5460405163bd49c35f60e01b8152929190602090849060049082906001600160a01b03165afa9081156108bd57610ff9935f92612ae3575b50612a04610384612a049394612ac2610384855f52600360205260405f2090565b935f52600460205260405f209060018060a01b03165f5260205260405f2090565b612a049250610384612b06612a049260203d602011612a4157612a318183610d7e565b935050612aa1565b65ffffffffffff90818111612b21571690565b604490604051906306dfcc6560e41b8252603060048301526024820152fd5b805480612b515750505f905f905f90565b5f19908082810111611cd357612b6e925f5260205f200101612100565b9065ffffffffffff82511691602060018060d01b0391015116906001929190565b8015611b135780612a04612c5a612c50612c46612c3c612c32612c28612c1e6001610ff99a5f908b60801c80612cb6575b508060401c80612ca9575b508060201c80612c9c575b508060101c80612c8f575b508060081c80612c82575b508060041c80612c75575b508060021c80612c68575b50821c612c61575b811c1b612c17818b611ca7565b0160011c90565b612c17818a611ca7565b612c178189611ca7565b612c178188611ca7565b612c178187611ca7565b612c178186611ca7565b612c178185611ca7565b8092611ca7565b8101612c0a565b600291509101905f612c02565b600491509101905f612bf7565b600891509101905f612bec565b601091509101905f612be1565b602091509101905f612bd6565b604091509101905f612bcb565b9150506080905f612bc0565b905b838310612cd15750505090565b909192612cde81856132b4565b90835f5265ffffffffffff808360205f20015416908416105f14612d065750925b9190612cc4565b93506001810180911115612cff57611c93565b612d216132c9565b612d296132c9565b60015f8051602061336f83398151915255565b60405190612d4982610d48565b5f6040838281528260208201520152565b81601f8201121561031a578051916020916001600160401b038411610d43578360051b9060405194612d8e85840187610d7e565b8552838086019282010192831161031a578301905b828210612db1575050505090565b8380918351612dbf8161031e565b815201910190612da3565b9060208282031261031a5781516001600160401b039283821161031a5701908181039260a0841261031a57606060405194612e0486610d48565b1261031a57604051612e1581610d48565b8351612e208161031e565b81526020840151612e308161031e565b60208201526040840151612e438161031e565b60408201528452606083015181811161031a5782612e62918501612d5a565b6020850152608083015190811161031a57612e7d9201612d5a565b604082015290565b8051821015611f0a5760209160051b010190565b612eb590612ea5612d3c565b5060208082518301019101612dca565b8051519091906001600160a01b03161580612fdf575b612fcd579060208101905f5b82518051821015612f51576112e9612ef283612eff93612e85565b516001600160a01b031690565b15612f3f57612f21612f1d612f18612ef2848751612e85565b612456565b1590565b612f2d57600101612ed7565b604051635140fefd60e11b8152600490fd5b6040516323cda06760e01b8152600490fd5b506040925050818101905f5b82518051821015612fc4576112e9612ef283612f7893612e85565b15612fb357612f96612f1d612f91612ef2848751612e85565b6124c4565b612fa257600101612f5d565b8351635140fefd60e11b8152600490fd5b83516323cda06760e01b8152600490fd5b50509150505190565b6040516303501f5960e11b8152600490fd5b506020820151511580612ecb575060408201515115612ecb565b908154905f829160058411613063575b6130149350846132f7565b8061303c57505f905b6001600160d01b03821615611d5b57610ff99160016120d89201611ef5565b61305661304b61305d92611f4a565b835f5260205f200190565b5460301c90565b9061301d565b919261306e81612b8f565b8103908111611cd35761301493855f5265ffffffffffff808360205f20015416908516105f1461309f575091613009565b9291506130ab90611cc5565b90613009565b604051906130be82610d28565b5f6020838281520152565b906130f26130ec613113926130dc6130b1565b506130e56130b1565b5084611ef5565b50612100565b91600165ffffffffffff845116936020828060d01b03910151169101611ef5565b9054906040519261312384610d28565b835260031b1c602082015290565b908082101561313e575090565b905090565b8054600160401b811015610d435761316091600182018155611ef5565b61318b57815160209092015160301b65ffffffffffff191665ffffffffffff92909216919091179055565b634e487b7160e01b5f525f60045260245ffd5b80549293929190821561328b576131ba61216d61304b85611f4a565b906131cb825165ffffffffffff1690565b65ffffffffffff8481169116811061327957611fae9460209488926131f96121f6875165ffffffffffff1690565b0361324157506132339261320f61321a92611f4a565b905f5260205f200190565b9065ffffffffffff82549181199060301b169116179055565b01516001600160d01b031690565b91505061327491613261613253610dae565b65ffffffffffff9093168352565b6001600160d01b03881682860152613143565b613233565b604051632520601d60e01b8152600490fd5b6132af925061329b613253610dae565b6001600160d01b0385166020830152613143565b5f9190565b90808216911860011c8101809111611cd35790565b60ff5f8051602061338f8339815191525460401c16156132e557565b604051631afcd79f60e31b8152600490fd5b905b8383106133065750505090565b90919261331381856132b4565b90835f5265ffffffffffff808360205f20015416908416105f1461333b5750925b91906132f9565b9350600181018091111561333457611c9356fe02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268009b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a2646970667358221220a114ef0ff5b29e345fe4269ee0528960ae4a86d65f802fa8e154dd6b83a6427064736f6c63430008190033","sourceMap":"7866:3473:81:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;;;;;-1:-1:-1;;7866:3473:81;;;;;;;;;;;;;;;;;;-1:-1:-1;;;3551:47:23;;;:87;;;;7866:3473:81;;;;;;;;;;3551:87:23;-1:-1:-1;;;1133:40:29;;-1:-1:-1;3551:87:23;;;7866:3473:81;-1:-1:-1;7866:3473:81;;;-1:-1:-1;;;;;7866:3473:81;;;;;:::o;:::-;;;;;;-1:-1:-1;;7866:3473:81;;;;;;;;;;;:::i;:::-;;;3202:4:23;;;:::i;:::-;7866:3473:81;-1:-1:-1;7866:3473:81;;;;;2662:52:77;:43;7866:3473:81;;-1:-1:-1;7866:3473:81;;;;;;;;;;;;;;;;;2662:43:77;:52;:::i;:::-;3458;3454:102;;7866:3473:81;3656:53:77;7866:3473:81;;-1:-1:-1;7866:3473:81;;;;3566:74:77;7866:3473:81;3566:43:77;7866:3473:81;;-1:-1:-1;7866:3473:81;;;;;;;;;;;;;;;;;3566:43:77;819:34:62;837:15;819:34;:::i;:::-;3566:74:77;;:::i;:::-;-1:-1:-1;;7866:3473:81;;;;;-1:-1:-1;;;;;7866:3473:81;;3656:53:77;7866:3473:81;3454:102:77;7866:3473:81;;-1:-1:-1;;;3533:12:77;;7866:3473:81;;3533:12:77;7866:3473:81;;;;;;;;;;;;;;;;;;3202:4:23;;;:::i;:::-;7866:3473:81;-1:-1:-1;7866:3473:81;2910:15:77;7866:3473:81;;;-1:-1:-1;7866:3473:81;;2901:36:77;;2897:98;;7866:3473:81;-1:-1:-1;7866:3473:81;2103:13:77;7866:3473:81;;;2103:34:77;7866:3473:81;-1:-1:-1;7866:3473:81;2103:34:77;:::i;:::-;3009;3005:84;;3099:25;3171:35;3099:25;:56;3171:35;3099:25;;;7866:3473:81;;2103:13:77;7866:3473:81;;;;;;;3099:56:77;-1:-1:-1;;7866:3473:81;;;;;;;;;;;;3171:35:77;;;;7866:3473:81;3005:84:77;7866:3473:81;-1:-1:-1;;;3066:12:77;;7866:3473:81;;3066:12:77;2897:98;7866:3473:81;-1:-1:-1;;;2960:24:77;;7866:3473:81;;2960:24:77;7866:3473:81;;;;;;-1:-1:-1;;7866:3473:81;;;;;;1537:38:76;-1:-1:-1;;;;;7866:3473:81;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;7866:3473:81;;;;;;;;-1:-1:-1;;7866:3473:81;;;;:::o;:::-;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;7866:3473:81;;;;;2662:52:77;:43;7866:3473:81;;;;;:::i;:::-;;;-1:-1:-1;7866:3473:81;;;;;-1:-1:-1;7866:3473:81;;;;;;;;;;;;;;;;;2662:52:77;7866:3473:81;;;;;;;;;;;;-1:-1:-1;;7866:3473:81;;;;;;1632:54:76;-1:-1:-1;;;;;7866:3473:81;;;;;;;;;;;;-1:-1:-1;;7866:3473:81;;;;;;:::i;:::-;449:5:82;-1:-1:-1;;;;;7866:3473:81;435:10:82;:19;431:71;;8670:64:81;7866:3473;;;-1:-1:-1;7866:3473:81;8670:13;7866:3473;;;-1:-1:-1;7866:3473:81;8670:64;:::i;:::-;7866:3473;;;;;;;;;;;;;;;;;;;-1:-1:-1;;7866:3473:81;431:71:82;7866:3473:81;;-1:-1:-1;;;477:14:82;;7866:3473:81;;477:14:82;7866:3473:81;;;;;;-1:-1:-1;;7866:3473:81;;;;;;1743:56:76;-1:-1:-1;;;;;7866:3473:81;;;;;;;;;;;;-1:-1:-1;;7866:3473:81;;;;;;-1:-1:-1;;;;;7866:3473:81;;;;;;;;3217:103:28;;;:::i;:::-;7866:3473:81;;-1:-1:-1;;;4285:48:76;;4322:10;7866:3473:81;4285:48:76;;7866:3473:81;;;;;-1:-1:-1;;;;;4295:16:76;7866:3473:81;4285:48:76;;;;;;;-1:-1:-1;4285:48:76;;;7866:3473:81;4284:49:76;;4280:99;;-1:-1:-1;;;;;7866:3473:81;-1:-1:-1;;4322:10:76;297:2:88;7866:3473:81;;267:46:88;4459:27:76;;;;7866:3473:81;;4459:15:76;7866:3473:81;;;;;;;4459:27:76;7866:3473:81;4459:37:76;4455:87;;4654:38;4552:27;4654:38;4552:27;;;7866:3473:81;;4459:15:76;7866:3473:81;;;;;;;4552:27:76;7866:3473:81;4631:6:76;;;;:::i;:::-;7866:3473:81;;;;;;;;;;;;;4654:38:76;;;;3282:1:28;1805;-1:-1:-1;;;;;;;;;;;7866:3473:81;3716:283:28;3282:1;7866:3473:81;4280:99:76;7866:3473:81;;-1:-1:-1;;;4356:12:76;;7866:3473:81;;4356:12:76;4285:48;;;;7866:3473:81;4285:48:76;7866:3473:81;4285:48:76;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;:::i;7866:3473:81:-;;;;;;-1:-1:-1;;7866:3473:81;;;;;;-1:-1:-1;7866:3473:81;-1:-1:-1;;;;;;;;;;;7866:3473:81;;;4919:24:23;7866:3473:81;-1:-1:-1;7866:3473:81;4919:24:23;7866:3473:81;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;-1:-1:-1;;7866:3473:81;;;;;;322:32:69;-1:-1:-1;;;;;7866:3473:81;;;;;;;;;;;;-1:-1:-1;;7866:3473:81;;;;5350:25:23;7866:3473:81;;;;;;;:::i;:::-;;-1:-1:-1;7866:3473:81;-1:-1:-1;;;;;;;;;;;7866:3473:81;;3202:4:23;4919:24;7866:3473:81;-1:-1:-1;7866:3473:81;4919:24:23;7866:3473:81;3202:4:23;:::i;:::-;5350:25;:::i;7866:3473:81:-;;;;;;-1:-1:-1;;7866:3473:81;;;;;;;;;:::i;:::-;966:10:27;-1:-1:-1;;;;;7866:3473:81;;6441:34:23;6437:102;;6549:37;7866:3473:81;;;6549:37:23;:::i;6437:102::-;7866:3473:81;;-1:-1:-1;;;6498:30:23;;7866:3473:81;;6498:30:23;7866:3473:81;;;;;;-1:-1:-1;;7866:3473:81;;;;;;;;;:::i;:::-;3217:103:28;;:::i;:::-;966:10:27;-1:-1:-1;7866:3473:81;;;;;;;;;;1356:26:76;;7866:3473:81;;4468:23:23;4464:108;;-1:-1:-1;4861:4:76;7866:3473:81;-1:-1:-1;;;;;7866:3473:81;;;;;;4861:13:76;;4857:63;;-1:-1:-1;;;;;;7866:3473:81;;;4861:4:76;7866:3473:81;4958:14:76;-1:-1:-1;;4958:14:76;4861:4;-1:-1:-1;;;;;;;;;;;7866:3473:81;;4464:108:23;7866:3473:81;;;;4514:47:23;;;;;;966:10:27;7866:3473:81;4514:47:23;;7866:3473:81;;;;;4514:47:23;7866:3473:81;;;;;;-1:-1:-1;;7866:3473:81;;;;;;-1:-1:-1;7866:3473:81;2103:13:77;7866:3473:81;;;2103:34:77;7866:3473:81;-1:-1:-1;7866:3473:81;2103:34:77;:::i;7866:3473:81:-;;;;;;;;;;;;;-1:-1:-1;;;;;7866:3473:81;;;;;;;;;;;;;;;:::o;:::-;;;;;;-1:-1:-1;;7866:3473:81;;;;-1:-1:-1;;;;;7866:3473:81;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;7866:3473:81;;;;;;;4301:16:25;7866:3473:81;;4726:16:25;;:34;;;;7866:3473:81;4805:1:25;4790:16;:50;;;;7866:3473:81;4855:13:25;:30;;;;7866:3473:81;4851:91:25;;;-1:-1:-1;;;;;;;;;;;7866:3473:81;;-1:-1:-1;;7866:3473:81;;;;;718:4:69;;4951:18:25;4979:67;;718:4:69;:::i;:::-;5066:101:25;;7866:3473:81;5066:101:25;-1:-1:-1;;;;;;;;;;;7866:3473:81;;-1:-1:-1;;;;7866:3473:81;;;;;-1:-1:-1;7866:3473:81;;5142:14:25;;7866:3473:81;;5142:14:25;7866:3473:81;4979:67:25;-1:-1:-1;;;;;;;;;;;7866:3473:81;;-1:-1:-1;;;;7866:3473:81;-1:-1:-1;;;7866:3473:81;;;718:4:69;:::i;4851:91:25:-;7866:3473:81;;-1:-1:-1;;;4908:23:25;;7866:3473:81;;4908:23:25;4855:30;4872:13;;;4855:30;;;4790:50;4818:4;4810:25;:30;;-1:-1:-1;4790:50:25;;4726:34;;;-1:-1:-1;4726:34:25;;7866:3473:81;;;;;;-1:-1:-1;;7866:3473:81;;;;;;8038:36;-1:-1:-1;;;;;7866:3473:81;;;;;;;;;;;;-1:-1:-1;;7866:3473:81;;;;;;;952:44:77;7866:3473:81;;;;;;;;;-1:-1:-1;;7866:3473:81;;;;;;;1253:6:76;7866:3473:81;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7866:3473:81;;;;;;;:::o;:::-;;:::i;:::-;;;;;;;-1:-1:-1;;;;;7866:3473:81;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;7866:3473:81;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;7866:3473:81;;;;;;;:::o;:::-;;;;;;;:::i;:::-;:::o;:::-;;;;;;;:::i;:::-;-1:-1:-1;;;;;7866:3473:81;;;;;;-1:-1:-1;;7866:3473:81;;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;7866:3473:81;;;;;;;;;;;;;;:::o;:::-;;;;;;-1:-1:-1;;7866:3473:81;;;;;;:::i;:::-;;;-1:-1:-1;;;;;7866:3473:81;;;;;;;1870:60:77;7866:3473:81;;;;;;:::i;:::-;;;;-1:-1:-1;7866:3473:81;1870:13:77;7866:3473:81;;;-1:-1:-1;7866:3473:81;1870:60:77;:::i;7866:3473:81:-;;;;;;-1:-1:-1;;7866:3473:81;;;;;;;1356:26:76;7866:3473:81;;;;;;;;;-1:-1:-1;;7866:3473:81;;;;;;7987:45;-1:-1:-1;;;;;7866:3473:81;;;;;;;;;;;;-1:-1:-1;;7866:3473:81;;;;;;;795:35:77;7866:3473:81;;;;;;;;;-1:-1:-1;;7866:3473:81;;;;;;;;-1:-1:-1;;;;;7866:3473:81;;;;;;;;;;;;;;-1:-1:-1;;7866:3473:81;;;;;;3901:31:23;7866:3473:81;;;;;:::i;:::-;;;-1:-1:-1;7866:3473:81;-1:-1:-1;;;;;;;;;;;7866:3473:81;;;-1:-1:-1;7866:3473:81;;;;;;;;;;;;;;;;;3901:31:23;7866:3473:81;;;;;;;;;;;;;-1:-1:-1;;7866:3473:81;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;-1:-1:-1;;;;;7866:3473:81;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;2399:78:77;:43;7866:3473:81;;;:::i;:::-;;;;;-1:-1:-1;7866:3473:81;;;;;-1:-1:-1;7866:3473:81;;;;;;;;;;;;;;;;;2399:43:77;:78;:::i;7866:3473:81:-;;;;;;-1:-1:-1;;7866:3473:81;;;;;;8080:45;-1:-1:-1;;;;;7866:3473:81;;;;;;;;;;;;-1:-1:-1;;7866:3473:81;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;7866:3473:81;;;;-1:-1:-1;7866:3473:81;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;416:25:75;;;;477:31;416:25;;:::i;:::-;7866:3473:81;;;;;;;;;;477:31:75;;7866:3473:81;;;;;;;;;;;:::i;:::-;477:31:75;7866:3473:81;;477:31:75;;;;;;:::i;:::-;518:79;;;7866:3473:81;518:79:75;;7866:3473:81;;;;;;-1:-1:-1;;7866:3473:81;;;;;;;;;;;;;;;;;-1:-1:-1;;7866:3473:81;;;;;;;-1:-1:-1;;;;;404:28:69;7866:3473:81;;;;;;;;;;-1:-1:-1;;7866:3473:81;;;;;;1439:41:76;-1:-1:-1;;;;;7866:3473:81;;;;;;;;;;;;-1:-1:-1;;7866:3473:81;;;;;;-1:-1:-1;7866:3473:81;2009:67:76;7866:3473:81;;;;-1:-1:-1;7866:3473:81;;;;;;;;;;;;;;-1:-1:-1;;7866:3473:81;;;;5767:26:23;7866:3473:81;;;;;;;:::i;:::-;;-1:-1:-1;7866:3473:81;-1:-1:-1;;;;;;;;;;;7866:3473:81;;3202:4:23;4919:24;7866:3473:81;-1:-1:-1;7866:3473:81;4919:24:23;7866:3473:81;3202:4:23;:::i;:::-;5767:26;:::i;7866:3473:81:-;;;;;;-1:-1:-1;;7866:3473:81;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;-1:-1:-1;;7866:3473:81;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;-1:-1:-1;;;;;7866:3473:81;;;;;;;;;;;;:::i;:::-;3217:103:28;;:::i;:::-;-1:-1:-1;7866:3473:81;;;5246:21:76;;:13;;-1:-1:-1;;;;;7866:3473:81;5246:13:76;7866:3473:81;;-1:-1:-1;;;;;7866:3473:81;;;5246:21:76;7866:3473:81;;-1:-1:-1;;;5246:23:76;;7866:3473:81;;;;;5246:23:76;;;;;;;-1:-1:-1;5246:23:76;;;7866:3473:81;-1:-1:-1;;;;;;7866:3473:81;;;5232:10:76;:37;5228:87;;5341:4;7866:3473:81;-1:-1:-1;;;;;7866:3473:81;;;;5355:469:76;;7866:3473:81;-1:-1:-1;;7866:3473:81;;;;;;;;;;;;;;;;5839:55:76;;7866:3473:81;;;;5839:55:76;;;;3282:1:28;1805;-1:-1:-1;;;;;;;;;;;7866:3473:81;3716:283:28;5355:469:76;7866:3473:81;;;;5435:94:76;;;;7866:3473:81;5435:94:76;;;;;;;;;;;;7866:3473:81;5435:94:76;;;:::i;:::-;;7866:3473:81;;5435:94:76;;;;;;:::i;:::-;7866:3473:81;5548:9:76;:51;5544:118;;-1:-1:-1;5839:55:76;5676:138;;;;5839:55;5676:138;;;1150:7;5676:138;;5355:469;;;5544:118;7866:3473:81;;-1:-1:-1;;;5626:21:76;;7866:3473:81;;5626:21:76;5228:87;7866:3473:81;;-1:-1:-1;;;5292:12:76;;7866:3473:81;;5292:12:76;5246:23;;;;;7866:3473:81;5246:23:76;7866:3473:81;5246:23:76;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;7866:3473:81;;;;;;-1:-1:-1;;7866:3473:81;;;;;;;;;:::i;:::-;;;:::i;:::-;449:5:82;-1:-1:-1;;;;;7866:3473:81;435:10:82;:19;431:71;;9461:43:81;:82;7866:3473;;;-1:-1:-1;7866:3473:81;;;;;-1:-1:-1;7866:3473:81;;;;;;;;;;;;;;;;;9461:43;:82;:::i;7866:3473::-;;;;;;-1:-1:-1;;7866:3473:81;;;;;;;;-1:-1:-1;;;;;7866:3473:81;;;;;;;;;;;;;;-1:-1:-1;;7866:3473:81;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;-1:-1:-1;;7866:3473:81;;;;;;;1150:7:76;7866:3473:81;;;;;;;;;-1:-1:-1;;7866:3473:81;;;;;;;2700:1:76;7866:3473:81;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;:::i;9556:591::-;;;;7866:3473;9556:591;7866:3473;;;;9870:147;;;;;;;;;;;7866:3473;;;;;;;;;;;;;;;;;9870:147;;7866:3473;;;;;;;-1:-1:-1;;;;;7866:3473:81;;;;;9778:291;7866:3473;9802:229;7866:3473;;;9802:229;:::i;:::-;9870:147;7866:3473;;;9778:291;;;;;;:::i;:::-;10080:61;;;9556:591;:::o;10080:61::-;7866:3473;;;;;;;;9870:147;10113:17;;7866:3473;9870:147;10113:17;;;;;:::i;7866:3473::-;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;7866:3473:81;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;;;;7866:3473:81;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;10153:1184::-;7866:3473;;-1:-1:-1;;;10370:99:81;;-1:-1:-1;;;;;7866:3473:81;;;10370:99;;;7866:3473;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;7866:3473:81;;;10389:20;7866:3473;;10370:99;;;;;;;;;;;10153:1184;-1:-1:-1;7866:3473:81;;-1:-1:-1;;;10563:32:81;;;7866:3473;10370:99;7866:3473;;;;10563:32;;;;;;;10523:84;10563:32;10370:99;10563:32;;;;;;;10153:1184;-1:-1:-1;7866:3473:81;;-1:-1:-1;;;10523:84:81;;-1:-1:-1;;;;;7866:3473:81;;;10370:99;10523:84;;7866:3473;;;;;;;;;;;;;-1:-1:-1;7866:3473:81;;;;;;;;;10523:84;;10534:11;;7866:3473;10523:84;;;;;;;10370:99;10523:84;;;10153:1184;10651:50;;;;;10752:68;10651:50;;;;:::i;:::-;10752:68;;:::i;:::-;7866:3473;;;10848:21;;;:52;;;10153:1184;10848:85;;;;10153:1184;10848:142;;;;10153:1184;10831:500;;10153:1184;;;;;;:::o;10831:500::-;11022:298;7866:3473;;11022:298;7866:3473;;;;:::i;:::-;;;;10563:32;11050:256;;7866:3473;;11050:256;;7866:3473;;11050:256;;7866:3473;;;11022:298;;;10563:32;11022:298;;;:::i;10848:142::-;7866:3473;;;10953:37;;10848:142;;:85;7866:3473;;;10904:29;;10848:85;;:52;7866:3473;;;10873:27;;10848:52;;10523:84;10752:68;10523:84;;;;;;;;;10370:99;10523:84;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;10563:32;;;;;;;;;;;;;;:::i;:::-;;;;10370:99;;;;;;;;;;;;;;:::i;:::-;;;;;1742:195:77;;1870:60;1742:195;;-1:-1:-1;7866:3473:81;1870:13:77;7866:3473:81;;;-1:-1:-1;7866:3473:81;1870:60:77;:::i;2207:277::-;-1:-1:-1;7866:3473:81;;;2399:21:77;7866:3473:81;;;;;;;;-1:-1:-1;;;;;7866:3473:81;;;;;;;;;2399:78:77;;2207:277;;2399:78;:::i;7866:3473:81:-;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;-1:-1:-1;7866:3473:81;;;;:::o;:::-;;;:::o;8747:485::-;8935:219;8747:485;8959:157;8747:485;;;;7866:3473;;;;;9011:91;;;;;;;;;;;7866:3473;;;;;;;9011:91;;;;;:::i;:::-;8959:157;:::i;7866:3473::-;;;;;;;:::i;:::-;;;;;;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;;;;7866:3473:81;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::o;:::-;-1:-1:-1;;;;;7866:3473:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;2764:920:76:-;;2978:48;2764:920;;;;2978:48;;;;:::i;:::-;3036:36;;;7866:3473:81;;:::i;:::-;;;;3086:20:76;3082:107;;2764:920;3216:11;;;;:193;;;;;2764:920;3216:394;;;;2764:920;3199:455;;;;;;2764:920;:::o;3199:455::-;3635:8;-1:-1:-1;3635:8:76;:::o;3216:394::-;3553:39;;;;;3430:180;3553:39;;;7866:3473:81;;;;;;;;;;3430:180:76;;467:2:88;7866:3473:81;3430:180:76;;;;;:::i;:::-;;7866:3473:81;3444:31:76;-1:-1:-1;;;;;7866:3473:81;3430:180:76;;;;;;;-1:-1:-1;3430:180:76;;;3216:394;3429:181;;3216:394;;;;;;3430:180;;;;3553:39;3430:180;3553:39;3430:180;;;;;;;:::i;:::-;;;;3216:193;-1:-1:-1;7866:3473:81;;;-1:-1:-1;;;;;;7866:3473:81;3248:161:76;3354:37;;;7866:3473:81;3248:161:76;7866:3473:81;;;;;;;;;;3248:161:76;;;;;;;:::i;:::-;;7866:3473:81;3262:29:76;-1:-1:-1;;;;;7866:3473:81;3248:161:76;;;;;;;-1:-1:-1;3248:161:76;;;3216:193;3247:162;;3216:193;;;3248:161;;;;;;;;;;;;;;:::i;:::-;;;;3082:107;3139:39;;;;;;;;;;;;;:::i;:::-;3082:107;;;;;7866:3473:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;8889:1:86;7866:3473:81;;;;;;;:::o;:::-;;:::i;3740:389:76:-;3918:5;7866:3473:81;;;-1:-1:-1;;;3853:71:76;;;-1:-1:-1;;;;;7866:3473:81;;;3853:71:76;;;7866:3473:81;;;;;;;;3740:389:76;;7866:3473:81;3853:71:76;;7866:3473:81;;3853:71:76;7866:3473:81;;;3867:29:76;7866:3473:81;;3853:71:76;;;;;;;3918:5;3853:71;;;3740:389;3852:72;;7866:3473:81;;;3852:181:76;;3740:389;3835:242;;;;;;4094:28;;;:::i;3835:242::-;4058:8;;3918:5;4058:8;:::o;3852:181::-;7866:3473:81;;3945:88:76;;;-1:-1:-1;;;;;7866:3473:81;;3853:71:76;3945:88;;7866:3473:81;467:2:88;7866:3473:81;;;;;;;;-1:-1:-1;7866:3473:81;;;;;;;;3959:31:76;7866:3473:81;3945:88:76;;;;;;;3918:5;3945:88;;;3852:181;3944:89;;;3852:181;;;;;3945:88;;;;;;-1:-1:-1;3945:88:76;;;;;;:::i;:::-;;;;;3853:71;;;;;;;;;;;;;;:::i;:::-;;;;4148:103:23;966:10:27;-1:-1:-1;7866:3473:81;;;;;;;;;952:44:77;;7866:3473:81;;3901:31:23;7866:3473:81;;4468:23:23;4464:108;;4148:103;:::o;:::-;966:10:27;-1:-1:-1;7866:3473:81;;;;;;;;;795:35:77;;7866:3473:81;;3901:31:23;7866:3473:81;4148:103:23;-1:-1:-1;7866:3473:81;;;-1:-1:-1;;;;;;;;;;;7866:3473:81;;;;;;;;966:10:27;7866:3473:81;;;;;;;;;3901:31:23;7866:3473:81;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;7866:3473:81;;-1:-1:-1;7866:3473:81;;;-1:-1:-1;7866:3473:81;:::o;:::-;;:::i;:::-;;;;;-1:-1:-1;;;7866:3473:81;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;7866:3473:81;;;;;;;;:::o;6246:584:86:-;;;;;6360:12;;;7866:3473:81;;;6360:24:86;;6356:75;;6246:584;6474:30;;;;;:::i;:::-;7866:3473:81;;;;;;6578:12:86;;;;:::i;:::-;6604:24;;;;6246:584;-1:-1:-1;6600:188:86;;;-1:-1:-1;;;;;7866:3473:81;;;;;;;6644:21:86;;;:29;:21;;:::i;:29::-;6798:25;6246:584;:::o;6600:188::-;6753:24;;7866:3473:81;;8167:38:60;;-1:-1:-1;;;;;7866:3473:81;;;;;8167:38:60;:::i;:::-;6753:24:86;;;:::i;6604:::-;7866:3473:81;;;;;;6614:14:86;;-1:-1:-1;6604:24:86;;;6356:75;-1:-1:-1;;;7866:3473:81;;;;;;6360:12:86;7866:3473:81;;;;;;;:::i;:::-;;;;;;;;;;;;;;6356:75:86;;;525:595:82;-1:-1:-1;525:595:82;;;;7866:3473:81;;716:88:82;;7866:3473:81;716:88:82;;;;;;;;;783:4;716:88;;;7866:3473:81;;;;;;;;;;;:::i;716:88:82:-;698:107;;;;;;;:::i;:::-;7866:3473:81;;857:45:82;;7866:3473:81;;;;;;;;716:88:82;857:45;;7866:3473:81;:::i;:::-;;;;;;;-1:-1:-1;;;;;7866:3473:81;;;;;857:45:82;716:88;857:45;;;7866:3473:81;;;;:::i;:::-;916:8:82;;912:175;;525:595;:::o;912:175::-;7866:3473:81;;944:22:82;;;940:36;;716:88;990:87;;10580:184:86;7866:3473:81;;10303:8:60;;;:63;-1:-1:-1;10303:63:60;-1:-1:-1;;;;;7866:3473:81;;10726:7:86;7866:3473:81;;10736:12:86;:17;:12;;:17;:::i;:::-;7866:3473:81;;;;;;10580:184:86;:::o;10303:63:60:-;7866:3473:81;;;;;;;;;;13267:109:86;-1:-1:-1;13267:109:86;;-1:-1:-1;13267:109:86;;;7866:3473:81;;;10303:63:60;;7866:3473:81;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::o;8406:869:86:-;;;7866:3473:81;;8620:15:86;8578:11;8645:18;8678:7;8684:1;8678:7;;8674:241;;8406:869;8939:60;;;;;:::i;:::-;9014:8;;;9010:62;;9252:15;9259:7;7866:3473:81;9219:31:86;7866:3473:81;9130:48:86;9170:7;;;:::i;:::-;9130:48;13267:109;;;;;;13089:293;;9130:48;7866:3473:81;:::i;:::-;;9176:1:86;7866:3473:81;9232:17:86;7866:3473:81;;;;;;;;9232:17:86;;7866:3473:81;-1:-1:-1;;;;;7866:3473:81;;;;9219:12:86;;:31;:::i;7866:3473:81:-;9259:7:86;;:::i;:::-;7866:3473:81;;;;9252:15:86;9176:1;;9188:80;;8406:869::o;9010:62::-;8578:11;;-1:-1:-1;8578:11:86;;-1:-1:-1;8578:11:86;;;;9038:23::o;8674:241::-;8721:14;;;;;:::i;:::-;7866:3473:81;;;;;;;8939:60:86;13267:109;;8578:11;13267:109;8753:55;8759:49;13267:109;;8578:11;13267:109;;7866:3473:81;;;;;;8759:49:86;7866:3473:81;;;;8753:55:86;7866:3473:81;;;8753:55:86;13267:109;;;8828:10;8749:156;8674:241;;8749:156;8883:7;;;;;;:::i;:::-;8749:156;8674:241;;3326:384:28;-1:-1:-1;;;;;;;;;;;1847:1:28;7866:3473:81;;3526:20:28;3522:88;;1847:1;7866:3473:81;;3326:384:28:o;3522:88::-;7866:3473:81;;-1:-1:-1;;;3569:30:28;;;;;4758:308:77;;7866:3473:81;-1:-1:-1;7866:3473:81;4889:13:77;7866:3473:81;;;-1:-1:-1;7866:3473:81;11124:30:86;;;;:::i;:::-;11173;;;-1:-1:-1;11173:30:86;;;;11182:17;;-1:-1:-1;;;;;7866:3473:81;;11182:12:86;;:17;:::i;:::-;7866:3473:81;;;4889:13:77;7866:3473:81;;11173:30:86;4947::77;;;11173::86;4943:117:77;;;;4758:308;;:::o;4943:117::-;4993:56;7866:3473:81;-1:-1:-1;7866:3473:81;4889:13:77;7866:3473:81;;;-1:-1:-1;7866:3473:81;819:34:62;837:15;819:34;:::i;4993:56:77:-;4758:308;;:::o;4947:30::-;4957:20;;-1:-1:-1;4947:30:77;;;;11173::86;;;-1:-1:-1;11173:30:86;;7270:387:23;-1:-1:-1;;;;;7866:3473:81;;-1:-1:-1;7866:3473:81;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2887:71:23;7866:3473:81;;;;-1:-1:-1;7866:3473:81;;;;;;;;;;;-1:-1:-1;;;;;7866:3473:81;;;;;;;;;;-1:-1:-1;;7866:3473:81;7509:4:23;7866:3473:81;;;966:10:27;;-1:-1:-1;;;;;7866:3473:81;-1:-1:-1;7532:40:23;-1:-1:-1;;7532:40:23;7509:4;7586:11;:::o;7270:387::-;-1:-1:-1;;;;;7866:3473:81;;-1:-1:-1;7866:3473:81;;;;;;;;;1356:26:76;;-1:-1:-1;;;;;;;;;;;2887:71:23;7866:3473:81;;3901:31:23;7866:3473:81;;;;-1:-1:-1;7866:3473:81;;;;;;;;;;;-1:-1:-1;;;;;7866:3473:81;;;;;;;;;;-1:-1:-1;;7866:3473:81;7509:4:23;7866:3473:81;;;966:10:27;;-1:-1:-1;;;;;7866:3473:81;;7532:40:23;-1:-1:-1;;7532:40:23;7509:4;7586:11;:::o;7432:219::-;7628:12;;;-1:-1:-1;7628:12:23;:::o;7270:387::-;-1:-1:-1;;;;;7866:3473:81;;-1:-1:-1;7866:3473:81;;;;;;;;;795:35:77;;-1:-1:-1;;;;;;;;;;;2887:71:23;7866:3473:81;;3901:31:23;7866:3473:81;7270:387:23;-1:-1:-1;;;;;7866:3473:81;;-1:-1:-1;7866:3473:81;;;;;;;;;952:44:77;;-1:-1:-1;;;;;;;;;;;2887:71:23;7866:3473:81;;3901:31:23;7866:3473:81;7270:387:23;-1:-1:-1;7866:3473:81;;;-1:-1:-1;;;;;;;;;;;7866:3473:81;;;;;;;;-1:-1:-1;;;;;7866:3473:81;;;;;;;;;;;;3901:31:23;7866:3473:81;7892:388:23;-1:-1:-1;7866:3473:81;;;-1:-1:-1;;;;;;;;;;;7866:3473:81;;;;;;;;-1:-1:-1;;;;;7866:3473:81;;;;;;;;;;;;;;;;-1:-1:-1;7866:3473:81;;;;;;;;;;;-1:-1:-1;;;;;7866:3473:81;;;;;;;;;;-1:-1:-1;;7866:3473:81;;;966:10:27;;-1:-1:-1;;;;;7866:3473:81;;8155:40:23;-1:-1:-1;;8155:40:23;7866:3473:81;8209:11:23;:::o;7866:3473:81:-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;7866:3473:81;;;;;;;;:::i;5907:716:76:-;6030:34;5907:716;6030:34;;;;:::i;:::-;7866:3473:81;;-1:-1:-1;;;6080:41:76;;-1:-1:-1;;;;;7866:3473:81;;;6080:41:76;;;7866:3473:81;;;;;6080:41:76;7866:3473:81;;;6090:13:76;7866:3473:81;;6080:41:76;;;;;;;-1:-1:-1;6080:41:76;;;5907:716;6079:42;;6075:90;;6266:27;7866:3473:81;2540:111:28;6210:14:76;7866:3473:81;2540:111:28;;;:::i;:::-;7866:3473:81;;;;;;-1:-1:-1;;;;;7866:3473:81;;-1:-1:-1;7866:3473:81;;;-1:-1:-1;7866:3473:81;;6210:14:76;6266:27;:::i;:::-;6080:41;6311:15;;7866:3473:81;;;;-1:-1:-1;;;;;;7866:3473:81;-1:-1:-1;;;;;7866:3473:81;;;;;;;;;;;-1:-1:-1;;;;;7866:3473:81;;;;6337:143:76;;5907:716;-1:-1:-1;6493:28:76;7866:3473:81;-1:-1:-1;;;;;7866:3473:81;;;;;;;6489:128:76;;5907:716;:::o;6489:128::-;6551:55;;;:::i;:::-;;5907:716::o;6337:143::-;6404:65;;;:::i;:::-;;6337:143;;;6075:90;7866:3473:81;;-1:-1:-1;;;6144:10:76;;6080:41;;6144:10;6080:41;;;;;;;;;;;;;;:::i;:::-;;;;7866:3473:81;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::o;7558:604:86:-;;7866:3473:81;;7686:17:86;7682:83;;7866:3473:81;7789:27:86;7866:3473:81;7789:27:86;7866:3473:81;;7789:27:86;;;;;;:::i;:::-;7860:14;;;;;:::i;:::-;7866:3473:81;;;;;;;;;;;;;;;;7888:22:86;;;7884:77;;7975:21;-1:-1:-1;7975:84:86;;;;7558:604;7971:139;;;;8127:28;;;;:::i;7971:139::-;8082:17;;7789:27;8082:17;7866:3473:81;8075:24:86;:::o;7975:84::-;7866:3473:81;;;8009:16:86;7866:3473:81;;8009:16:86;:::i;:::-;7866:3473:81;;;8001:24:86;:57;;;;;7975:84;;;;;;;8001:57;8029:29;8038:8;;;8029:18;8038:8;8029:23;8038:8;;:::i;:::-;8029:18;;:::i;:::-;7866:3473:81;;;;;8029:29:86;;8001:57;;;;7884:77;7933:17;;;;;7789:27;7933:17;7866:3473:81;7926:24:86;:::o;7682:83::-;7726:28;;;;:::i;7866:3473:81:-;;;;;;;;;;-1:-1:-1;;;;;7866:3473:81;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;;;;7866:3473:81;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;:::i;3722:766:77:-;;;;;7866:3473:81;;:::i;:::-;;;;3962:16:77;3958:92;;3722:766;7866:3473:81;;4107:67:77;7866:3473:81;;;4146:27:77;4107;:13;7866:3473:81;-1:-1:-1;7866:3473:81;;;;;;;;;4107:27:77;4146;;;;7866:3473:81;;;;;;;;;;;4107:67:77;;;;;;;:::i;:::-;;;;;;;;;;4081:355;4107:67;-1:-1:-1;4107:67:77;;;3722:766;4260:28;4311:93;4260:28;4192:230;4260:28;;4222:67;7866:3473:81;4260:28:77;;;4222:67;;;:::i;:::-;4367:36;;;;;4311:93;;:::i;:::-;4192:230;;:::i;4081:355::-;4450:21;;3722:766;:::o;4107:67::-;4192:230;4107:67;;;;4311:93;4107:67;4146:27;4107:67;4146:27;4107:67;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;3958:92;4107:67;4008:31;;;;;;;;;;;;;;:::i;:::-;3958:92;;;;;4494:258;4635:5;7866:3473:81;;;-1:-1:-1;;;4628:27:77;;7866:3473:81;4494:258:77;;4628:27;;7866:3473:81;;4628:27:77;;7866:3473:81;;-1:-1:-1;;;;;7866:3473:81;4628:27:77;;;;;;;4606:139;4628:27;4635:5;4628:27;;;4494:258;2103:25;2662:52;:43;4657:78;2103:25;;:34;:25;;7866:3473:81;;2103:13:77;7866:3473:81;;;;;;;2103:34:77;7866:3473:81;4635:5:77;7866:3473:81;4628:27:77;;7866:3473:81;;4635:5:77;7866:3473:81;;;;;;;;;;;;;;;;;4628:27:77;4657:78;4628:27;;2662:43;4628:27;2662:52;4628:27;;;;;;;;;;;:::i;:::-;;;;;;14291:213:58;7866:3473:81;14369:24:58;;;;14365:103;;7866:3473:81;14291:213:58;:::o;14365:103::-;7866:3473:81;;;;14416:41:58;;;;;;14447:2;14416:41;;;7866:3473:81;;;;;14416:41:58;10552:388:60;7866:3473:81;;10728:8:60;;;10752:20;;10690:17;10752:20;10690:17;10752:20;10690:17;10752:20;:::o;10724:210::-;7866:3473:81;;;;;;;;;;;13267:109:86;10690:17:60;13267:109:86;;10690:17:60;13267:109:86;;;7866:3473:81;:::i;:::-;;;;;;;13267:109:86;7866:3473:81;;;;;10911:11:60;;7866:3473:81;;10886:37:60;10870:1;10886:37;;;:::o;8587:1642:57:-;8658:6;;8654:45;;9401:7;10201:10;10142:26;10093;10044;9995;9946;9897;9848;7866:3473:81;10189:23:57;9401:7;8663:1;7866:3473:81;;;;10826:16:57;10822:99;;8587:1642;7866:3473:81;;;;10938:15:57;10934:96;;8587:1642;7866:3473:81;;;;11047:15:57;11043:96;;8587:1642;7866:3473:81;;;;11156:15:57;11152:96;;8587:1642;7866:3473:81;;;;11265:14:57;11261:93;;8587:1642;7866:3473:81;;;;11371:14:57;11367:93;;8587:1642;7866:3473:81;;;;11477:14:57;11473:93;;8587:1642;7866:3473:81;;;11579:64:57;;8587:1642;7866:3473:81;;;9858:10:57;;;;:::i;:::-;7866:3473:81;;;;;9848:26:57;9907:10;;;;:::i;9897:26::-;9956:10;;;;:::i;9946:26::-;10005:10;;;;:::i;9995:26::-;10054:10;;;;:::i;10044:26::-;10103:10;;;;:::i;10093:26::-;10152:10;;;;:::i;10142:26::-;10201:10;;;:::i;11579:64::-;7866:3473:81;;11579:64:57;;11473:93;7866:3473:81;11511:11:57;;7866:3473:81;;11473:93:57;;;;11367;7866:3473:81;11405:11:57;;7866:3473:81;;11367:93:57;;;;11261;7866:3473:81;11299:11:57;;7866:3473:81;;11261:93:57;;;;11152:96;7866:3473:81;11191:12:57;;7866:3473:81;;11152:96:57;;;;11043;7866:3473:81;11082:12:57;;7866:3473:81;;11043:96:57;;;;10934;7866:3473:81;10973:12:57;;7866:3473:81;;10934:96:57;;;;10822:99;10862:13;;;7866:3473:81;10822:99:57;;;;12497:447:86;;12694:10;;;;;;12926:11;;;12497:447;:::o;12687:230::-;12734:23;;;;;;;:::i;:::-;13267:109;;-1:-1:-1;13267:109:86;7866:3473:81;13267:109:86;;;-1:-1:-1;13267:109:86;;7866:3473:81;;;;;-1:-1:-1;12771:136:86;7866:3473:81;;;12830:10:86;12771:136;;12687:230;;;;12771:136;7866:3473:81;;12891:1:86;7866:3473:81;;;;;;12771:136:86;7866:3473:81;;:::i;6893:76:25:-;;;:::i;:::-;;;:::i;:::-;1805:1:28;-1:-1:-1;;;;;;;;;;;7866:3473:81;6893:76:25:o;7866:3473:81:-;;;;;;;:::i;:::-;-1:-1:-1;7866:3473:81;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;-1:-1:-1;;;;;7866:3473:81;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7866:3473:81;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;5072:1269:77:-;5220:30;5072:1269;7866:3473:81;;:::i;:::-;;5220:30:77;7866:3473:81;;;5220:30:77;;;;;;:::i;:::-;5278:17;;7866:3473:81;5278:17:77;;7866:3473:81;-1:-1:-1;;;;;7866:3473:81;5278:54:77;;:178;;5072:1269;5261:258;;5534:9;5220:30;5549:33;;;5278:17;5591:3;5549:33;;7866:3473:81;;5545:44:77;;;;;5614:36;;;:50;:36;;:::i;:::-;7866:3473:81;-1:-1:-1;;;;;7866:3473:81;;;5614:50:77;;5610:119;;5747:73;5748:72;5783:36;;:33;;;:36;:::i;:::-;5748:72;:::i;:::-;5747:73;;7866:3473:81;5747:73:77;5743:140;;7866:3473:81;;5534:9:77;;5743:140;7866:3473:81;;-1:-1:-1;;;5847:21:77;;;;;5610:119;7866:3473:81;;-1:-1:-1;;;5691:23:77;;;;;5545:44;-1:-1:-1;5923:41:77;;-1:-1:-1;;5923:41:77;;;;5278:17;5973:3;5923:41;;7866:3473:81;;5919:52:77;;;;;5996:44;;;:58;:44;;:::i;:58::-;;5992:127;;6137:90;6138:89;6182:44;;:41;;;:44;:::i;:::-;6138:89;:::i;6137:90::-;6133:157;;7866:3473:81;;5908:9:77;;6133:157;7866:3473:81;;-1:-1:-1;;;6254:21:77;;;;;5992:127;7866:3473:81;;-1:-1:-1;;;6081:23:77;;;;;5919:52;;;;;;6317:17;5072:1269;:::o;5261:258::-;7866:3473:81;;-1:-1:-1;;;5488:20:77;;;;;5278:178;5353:33;5220:30;5353:33;;;7866:3473:81;5353:45:77;:102;5278:178;5353:102;5402:41;;;;;7866:3473:81;5402:53:77;5278:178;;6999:207:86;;7866:3473:81;;9594:15:60;-1:-1:-1;9619:18:60;9652:7;9658:1;9652:7;;9648:234;;6999:207:86;9906:53:60;;;;;:::i;:::-;9977:8;;;:63;-1:-1:-1;9977:63:60;;-1:-1:-1;;;;;7866:3473:81;;7168:7:86;7866:3473:81;;;7178:12:86;;:17;:12;;:17;:::i;9977:63:60:-;9992:41;10025:7;9992:48;10025:7;;:::i;:::-;9992:41;13267:109:86;;;;;;13089:293;;9992:41:60;7866:3473:81;;;;;9992:48:60;9977:63;;;9648:234;9695:14;;;;;:::i;:::-;7866:3473:81;;;;;;;9906:53:60;13267:109:86;;-1:-1:-1;13267:109:86;7866:3473:81;13267:109:86;;;-1:-1:-1;13267:109:86;;7866:3473:81;;;;;9727:48:60;9723:149;7866:3473:81;;;9795:10:60;9723:149;9648:234;;9723:149;9850:7;;;;;;:::i;:::-;9723:149;9648:234;;7866:3473:81;;;;;;;:::i;:::-;-1:-1:-1;7866:3473:81;;;;;;;:::o;11486:272:86:-;;7866:3473:81;11308:22:60;11718:31:86;11486:272;7866:3473:81;;:::i;:::-;;;;:::i;:::-;;11308:22:60;;:::i;:::-;7866:3473:81;;:::i;:::-;;11718:12:86;7866:3473:81;;;;;11731:17:86;7866:3473:81;;;;;11731:17:86;;7866:3473:81;;11718:12:86;;:31;:::i;:::-;7866:3473:81;;;;;;;;;:::i;:::-;;;;;;11731:17:86;11672:79;;7866:3473:81;11486:272:86;:::o;2557:104:57:-;;2641:5;;;;;;:13;2557:104;:::o;2641:13::-;;;2557:104;:::o;7866:3473:81:-;;;-1:-1:-1;;;7866:3473:81;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;7866:3473:81;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;11513:870:60;7866:3473:81;;11513:870:60;;;7866:3473:81;11513:870:60;11672:7;;;;7866:3473:81;11775:28:60;11795:7;;;:::i;7866:3473:81:-;;;;;;;;;;;;;;;;11877:15:60;-1:-1:-1;11873:91:60;;7866:3473:81;;12233:11:60;7866:3473:81;;;12027:16:60;7866:3473:81;;;;;;;12027:16:60;;;;12083:7;12063:43;12083:7;;12063:28;12083:7;;:::i;:::-;12063:28;13267:109:86;;;;;;13089:293;;12063:28:60;7866:3473:81;;;;;;;;;;;;;;;;;12063:43:60;12233:11;7866:3473:81;-1:-1:-1;;;;;7866:3473:81;;;12023:189:60;7866:3473:81;;;12145:52:60;7866:3473:81;12155:41:60;7866:3473:81;;:::i;:::-;;;;;;;;12155:41:60;-1:-1:-1;;;;;7866:3473:81;;12155:41:60;;;7866:3473:81;12145:52:60;:::i;:::-;12023:189;;11873:91;7866:3473:81;;-1:-1:-1;;;11919:30:60;;;;;11668:709;12283:52;7866:3473:81;;12293:41:60;7866:3473:81;;:::i;12293:41:60:-;-1:-1:-1;;;;;7866:3473:81;;12293:41:60;;;7866:3473:81;12145:52:60;:::i;12283:::-;11678:1;12349:17;;:::o;2774:153:57:-;;2900:5;;;2910;;7866:3473:81;;;;;;;;;2774:153:57;:::o;7084:141:25:-;7866:3473:81;-1:-1:-1;;;;;;;;;;;7866:3473:81;;;;7150:18:25;7146:73;;7084:141::o;7146:73::-;7866:3473:81;;-1:-1:-1;;;7191:17:25;;;;;12736:433:60;;12919:10;;;;;;13151:11;;;12736:433;:::o;12912:230::-;12959:23;;;;;;;:::i;:::-;13267:109:86;;-1:-1:-1;13267:109:86;7866:3473:81;13267:109:86;;;-1:-1:-1;13267:109:86;;7866:3473:81;;;;;-1:-1:-1;12996:136:60;7866:3473:81;;;13055:10:60;12996:136;;12912:230;;;;12996:136;7866:3473:81;;13116:1:60;7866:3473:81;;;;;;12996:136:60;7866:3473:81;;:::i","linkReferences":{},"immutableReferences":{"57808":[{"start":2349,"length":32}],"57811":[{"start":4427,"length":32}],"58762":[{"start":1953,"length":32},{"start":4484,"length":32}],"58765":[{"start":1250,"length":32},{"start":9830,"length":32}],"58768":[{"start":1612,"length":32},{"start":7136,"length":32},{"start":7439,"length":32}],"58771":[{"start":1823,"length":32},{"start":6983,"length":32},{"start":7565,"length":32}],"61662":[{"start":3772,"length":32},{"start":6042,"length":32}],"61664":[{"start":3215,"length":32},{"start":6203,"length":32}],"61666":[{"start":4175,"length":32}],"62368":[{"start":1686,"length":32},{"start":5260,"length":32}]}},"methodIdentifiers":{"BASE_DELEGATOR_HINTS()":"79d89614","DEFAULT_ADMIN_ROLE()":"a217fddf","FACTORY()":"2dd31000","HOOK_GAS_LIMIT()":"ff54740f","HOOK_RESERVE()":"557cab44","HOOK_SET_ROLE()":"6679191e","NETWORK_LIMIT_SET_ROLE()":"7d24bb27","NETWORK_REGISTRY()":"c0cd7c3e","OPERATOR_NETWORK_LIMIT_SET_ROLE()":"518504ba","OPERATOR_NETWORK_OPT_IN_SERVICE()":"1a80e500","OPERATOR_VAULT_OPT_IN_SERVICE()":"128e5d82","OPT_IN_SERVICE_HINTS()":"9b656b22","TYPE()":"bb24fe8a","VAULT_FACTORY()":"103f2907","VAULT_HINTS()":"45e78fcb","VERSION()":"ffa1ad74","getRoleAdmin(bytes32)":"248a9ca3","grantRole(bytes32,address)":"2f2ff15d","hasRole(bytes32,address)":"91d14854","hook()":"7f5a7c7b","initialize(bytes)":"439fab91","maxNetworkLimit(bytes32)":"d15b740e","networkLimit(bytes32)":"3eb22c0f","networkLimitAt(bytes32,uint48,bytes)":"5d32a1c9","networkLimitHint(address,bytes32,uint48)":"da749d2b","networkLimitHintInternal(bytes32,uint48)":"197aa7ea","onSlash(bytes32,address,uint256,uint48,bytes)":"e49561ee","operatorNetworkLimit(bytes32,address)":"11422095","operatorNetworkLimitAt(bytes32,address,uint48,bytes)":"94d2558a","operatorNetworkLimitHint(address,bytes32,address,uint48)":"10a28b5d","operatorNetworkLimitHintInternal(bytes32,address,uint48)":"f7b05547","renounceRole(bytes32,address)":"36568abe","revokeRole(bytes32,address)":"d547741f","setHook(address)":"3dfd3873","setMaxNetworkLimit(uint96,uint256)":"23f752d5","setNetworkLimit(bytes32,uint256)":"02145348","setOperatorNetworkLimit(bytes32,address,uint256)":"020cf0c2","stake(bytes32,address)":"fd4d447c","stakeAt(bytes32,address,uint48,bytes)":"e02f6937","stakeHints(address,bytes32,address,uint48)":"25dc9708","staticDelegateCall(address,bytes)":"9f86fd85","supportsInterface(bytes4)":"01ffc9a7","vault()":"fbfa77cf"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"baseDelegatorHints\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"vaultHints\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"optInServiceHints\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"AccessControlBadConfirmation\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"neededRole\",\"type\":\"bytes32\"}],\"name\":\"AccessControlUnauthorizedAccount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AlreadySet\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CheckpointUnorderedInsertion\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"DuplicateRoleHolder\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ExceedsMaxNetworkLimit\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ExternalCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientHookGas\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MissingRoleHolders\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotNetwork\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotSlasher\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotVault\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ReentrancyGuardReentrantCall\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"bits\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"SafeCastOverflowedUintDowncast\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ZeroAddressRoleHolder\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint48\",\"name\":\"captureTimestamp\",\"type\":\"uint48\"}],\"name\":\"OnSlash\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"previousAdminRole\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"newAdminRole\",\"type\":\"bytes32\"}],\"name\":\"RoleAdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleRevoked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"hook\",\"type\":\"address\"}],\"name\":\"SetHook\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"SetMaxNetworkLimit\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"SetNetworkLimit\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"SetOperatorNetworkLimit\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"BASE_DELEGATOR_HINTS\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"DEFAULT_ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"FACTORY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"HOOK_GAS_LIMIT\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"HOOK_RESERVE\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"HOOK_SET_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"NETWORK_LIMIT_SET_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"NETWORK_REGISTRY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"OPERATOR_NETWORK_LIMIT_SET_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"OPERATOR_NETWORK_OPT_IN_SERVICE\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"OPERATOR_VAULT_OPT_IN_SERVICE\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"OPT_IN_SERVICE_HINTS\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"TYPE\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"VAULT_FACTORY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"VAULT_HINTS\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"VERSION\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleAdmin\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"grantRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"hook\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"}],\"name\":\"maxNetworkLimit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"}],\"name\":\"networkLimit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hint\",\"type\":\"bytes\"}],\"name\":\"networkLimitAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"}],\"name\":\"networkLimitHint\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"}],\"name\":\"networkLimitHintInternal\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"exists\",\"type\":\"bool\"},{\"internalType\":\"uint32\",\"name\":\"hint\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint48\",\"name\":\"captureTimestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"onSlash\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"operatorNetworkLimit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hint\",\"type\":\"bytes\"}],\"name\":\"operatorNetworkLimitAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"}],\"name\":\"operatorNetworkLimitHint\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"}],\"name\":\"operatorNetworkLimitHintInternal\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"exists\",\"type\":\"bool\"},{\"internalType\":\"uint32\",\"name\":\"hint\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"callerConfirmation\",\"type\":\"address\"}],\"name\":\"renounceRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"hook_\",\"type\":\"address\"}],\"name\":\"setHook\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint96\",\"name\":\"identifier\",\"type\":\"uint96\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"setMaxNetworkLimit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"setNetworkLimit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"setOperatorNetworkLimit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"stake\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hints\",\"type\":\"bytes\"}],\"name\":\"stakeAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"}],\"name\":\"stakeHints\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"staticDelegateCall\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"vault\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"AccessControlBadConfirmation()\":[{\"details\":\"The caller of a function is not the expected one. NOTE: Don't confuse with {AccessControlUnauthorizedAccount}.\"}],\"AccessControlUnauthorizedAccount(address,bytes32)\":[{\"details\":\"The `account` is missing a role.\"}],\"CheckpointUnorderedInsertion()\":[{\"details\":\"A value was attempted to be inserted on a past checkpoint.\"}],\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"ReentrancyGuardReentrantCall()\":[{\"details\":\"Unauthorized reentrant call.\"}],\"SafeCastOverflowedUintDowncast(uint8,uint256)\":[{\"details\":\"Value doesn't fit in an uint of `bits` size.\"}]},\"events\":{\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"OnSlash(bytes32,address,uint256,uint48)\":{\"params\":{\"amount\":\"amount of the collateral to be slashed\",\"captureTimestamp\":\"time point when the stake was captured\",\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"}},\"RoleAdminChanged(bytes32,bytes32,bytes32)\":{\"details\":\"Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole` `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite {RoleAdminChanged} not being emitted signaling this.\"},\"RoleGranted(bytes32,address,address)\":{\"details\":\"Emitted when `account` is granted `role`. `sender` is the account that originated the contract call, an admin role bearer except when using {AccessControl-_setupRole}.\"},\"RoleRevoked(bytes32,address,address)\":{\"details\":\"Emitted when `account` is revoked `role`. `sender` is the account that originated the contract call: - if using `revokeRole`, it is the admin role bearer - if using `renounceRole`, it is the role bearer (i.e. `account`)\"},\"SetHook(address)\":{\"params\":{\"hook\":\"address of the hook\"}},\"SetMaxNetworkLimit(bytes32,uint256)\":{\"params\":{\"amount\":\"new maximum subnetwork's limit (how much stake the subnetwork is ready to get)\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"}},\"SetNetworkLimit(bytes32,uint256)\":{\"params\":{\"amount\":\"new subnetwork's limit (how much stake the vault curator is ready to give to the subnetwork)\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"}},\"SetOperatorNetworkLimit(bytes32,address,uint256)\":{\"params\":{\"amount\":\"new operator's limit for the subnetwork (how much stake the vault curator is ready to give to the operator for the subnetwork)\",\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"}}},\"kind\":\"dev\",\"methods\":{\"VERSION()\":{\"details\":\"Must return 1 for this one.\",\"returns\":{\"_0\":\"version of the delegator\"}},\"getRoleAdmin(bytes32)\":{\"details\":\"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}.\"},\"grantRole(bytes32,address)\":{\"details\":\"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event.\"},\"hasRole(bytes32,address)\":{\"details\":\"Returns `true` if `account` has been granted `role`.\"},\"initialize(bytes)\":{\"params\":{\"data\":\"some data to use\"}},\"networkLimit(bytes32)\":{\"params\":{\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"},\"returns\":{\"_0\":\"limit of the subnetwork\"}},\"networkLimitAt(bytes32,uint48,bytes)\":{\"params\":{\"hint\":\"hint for checkpoint index\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\",\"timestamp\":\"time point to get the subnetwork limit at\"},\"returns\":{\"_0\":\"limit of the subnetwork at the given timestamp\"}},\"onSlash(bytes32,address,uint256,uint48,bytes)\":{\"details\":\"Only the vault's slasher can call this function.\",\"params\":{\"amount\":\"amount of the collateral slashed\",\"captureTimestamp\":\"time point when the stake was captured\",\"data\":\"some additional data\",\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"}},\"operatorNetworkLimit(bytes32,address)\":{\"params\":{\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"},\"returns\":{\"_0\":\"limit of the operator for the subnetwork\"}},\"operatorNetworkLimitAt(bytes32,address,uint48,bytes)\":{\"params\":{\"hint\":\"hint for checkpoint index\",\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\",\"timestamp\":\"time point to get the operator's limit for the subnetwork at\"},\"returns\":{\"_0\":\"limit of the operator for the subnetwork at the given timestamp\"}},\"renounceRole(bytes32,address)\":{\"details\":\"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `callerConfirmation`. May emit a {RoleRevoked} event.\"},\"revokeRole(bytes32,address)\":{\"details\":\"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event.\"},\"setHook(address)\":{\"details\":\"Only a HOOK_SET_ROLE holder can call this function. The hook can have arbitrary logic under certain functions, however, it doesn't affect the stake guarantees.\",\"params\":{\"hook\":\"address of the hook\"}},\"setMaxNetworkLimit(uint96,uint256)\":{\"details\":\"Only a network can call this function.\",\"params\":{\"amount\":\"new maximum subnetwork's limit\"}},\"setNetworkLimit(bytes32,uint256)\":{\"details\":\"Only a NETWORK_LIMIT_SET_ROLE holder can call this function.\",\"params\":{\"amount\":\"new limit of the subnetwork\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"}},\"setOperatorNetworkLimit(bytes32,address,uint256)\":{\"details\":\"Only an OPERATOR_NETWORK_LIMIT_SET_ROLE holder can call this function.\",\"params\":{\"amount\":\"new limit of the operator for the subnetwork\",\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"}},\"stake(bytes32,address)\":{\"details\":\"Warning: this function is not safe to use for stake capturing, as it can change by the end of the block.\",\"params\":{\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"},\"returns\":{\"_0\":\"slashable stake until the end of the next epoch\"}},\"stakeAt(bytes32,address,uint48,bytes)\":{\"details\":\"Warning: it is not safe to use timestamp >= current one for the stake capturing, as it can change later.\",\"params\":{\"hints\":\"hints for the checkpoints' indexes\",\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\",\"timestamp\":\"time point to capture the stake at\"},\"returns\":{\"_0\":\"slashable stake at the given timestamp until the end of the consequent epoch\"}},\"staticDelegateCall(address,bytes)\":{\"details\":\"It allows to use this contract's storage on-chain.\",\"params\":{\"data\":\"data to make a delegatecall with\",\"target\":\"address of the contract to make a delegatecall to\"}},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"}},\"version\":1},\"userdoc\":{\"events\":{\"OnSlash(bytes32,address,uint256,uint48)\":{\"notice\":\"Emitted when a slash happens.\"},\"SetHook(address)\":{\"notice\":\"Emitted when a hook is set.\"},\"SetMaxNetworkLimit(bytes32,uint256)\":{\"notice\":\"Emitted when a subnetwork's maximum limit is set.\"},\"SetNetworkLimit(bytes32,uint256)\":{\"notice\":\"Emitted when a subnetwork's limit is set.\"},\"SetOperatorNetworkLimit(bytes32,address,uint256)\":{\"notice\":\"Emitted when an operator's limit for a subnetwork is set.\"}},\"kind\":\"user\",\"methods\":{\"FACTORY()\":{\"notice\":\"Get the factory's address.\"},\"HOOK_GAS_LIMIT()\":{\"notice\":\"Get a gas limit for the hook.\"},\"HOOK_RESERVE()\":{\"notice\":\"Get a reserve gas between the gas limit check and the hook's execution.\"},\"HOOK_SET_ROLE()\":{\"notice\":\"Get a hook setter's role.\"},\"NETWORK_LIMIT_SET_ROLE()\":{\"notice\":\"Get a subnetwork limit setter's role.\"},\"NETWORK_REGISTRY()\":{\"notice\":\"Get the network registry's address.\"},\"OPERATOR_NETWORK_LIMIT_SET_ROLE()\":{\"notice\":\"Get an operator-subnetwork limit setter's role.\"},\"OPERATOR_NETWORK_OPT_IN_SERVICE()\":{\"notice\":\"Get the operator-network opt-in service's address.\"},\"OPERATOR_VAULT_OPT_IN_SERVICE()\":{\"notice\":\"Get the operator-vault opt-in service's address.\"},\"TYPE()\":{\"notice\":\"Get the entity's type.\"},\"VAULT_FACTORY()\":{\"notice\":\"Get the vault factory's address.\"},\"VERSION()\":{\"notice\":\"Get a version of the delegator (different versions mean different interfaces).\"},\"hook()\":{\"notice\":\"Get the hook's address.\"},\"initialize(bytes)\":{\"notice\":\"Initialize this entity contract by using a given data.\"},\"maxNetworkLimit(bytes32)\":{\"notice\":\"Get a particular subnetwork's maximum limit (meaning the subnetwork is not ready to get more as a stake).\"},\"networkLimit(bytes32)\":{\"notice\":\"Get a subnetwork's limit (how much stake the vault curator is ready to give to the subnetwork).\"},\"networkLimitAt(bytes32,uint48,bytes)\":{\"notice\":\"Get a subnetwork's limit at a given timestamp using a hint (how much stake the vault curator is ready to give to the subnetwork).\"},\"onSlash(bytes32,address,uint256,uint48,bytes)\":{\"notice\":\"Called when a slash happens.\"},\"operatorNetworkLimit(bytes32,address)\":{\"notice\":\"Get an operator's limit for a subnetwork. (how much stake the vault curator is ready to give to the operator for the subnetwork)\"},\"operatorNetworkLimitAt(bytes32,address,uint48,bytes)\":{\"notice\":\"Get an operator's limit for a subnetwork at a given timestamp using a hint (how much stake the vault curator is ready to give to the operator for the subnetwork).\"},\"setHook(address)\":{\"notice\":\"Set a new hook.\"},\"setMaxNetworkLimit(uint96,uint256)\":{\"notice\":\"Set a maximum limit for a subnetwork (how much stake the subnetwork is ready to get). identifier identifier of the subnetwork\"},\"setNetworkLimit(bytes32,uint256)\":{\"notice\":\"Set a subnetwork's limit (how much stake the vault curator is ready to give to the subnetwork).\"},\"setOperatorNetworkLimit(bytes32,address,uint256)\":{\"notice\":\"Set an operator's limit for a subnetwork. (how much stake the vault curator is ready to give to the operator for the subnetwork)\"},\"stake(bytes32,address)\":{\"notice\":\"Get a stake that a given subnetwork will be able to slash for a certain operator until the end of the next epoch (if no cross-slashing and no slashings by the subnetwork).\"},\"stakeAt(bytes32,address,uint48,bytes)\":{\"notice\":\"Get a stake that a given subnetwork could be able to slash for a certain operator at a given timestamp until the end of the consequent epoch using hints (if no cross-slashing and no slashings by the subnetwork).\"},\"staticDelegateCall(address,bytes)\":{\"notice\":\"Make a delegatecall from this contract to a given target contract with a particular data (always reverts with a return data).\"},\"vault()\":{\"notice\":\"Get the vault's address.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/contracts/hints/DelegatorHints.sol\":\"FullRestakeDelegatorHints\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol\":{\"keccak256\":\"0x6662ec4e5cefca03eeadd073e9469df8d2944bb2ee8ec8f7622c2c46aab5f225\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4d8544c6f8daa4d1bc215c6a72fe0acdb748664a105b0e5efc19295667521d45\",\"dweb:/ipfs/QmdGWqdnXT8S3RgCR6aV8XHZrsybieMQLLnug1NtpSjEXN\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0xc163fcf9bb10138631a9ba5564df1fa25db9adff73bd9ee868a8ae1858fe093a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9706d43a0124053d9880f6e31a59f31bc0a6a3dc1acd66ce0a16e1111658c5f6\",\"dweb:/ipfs/QmUFmfowzkRwGtDu36cXV9SPTBHJ3n7dG9xQiK5B28jTf2\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609\",\"dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9\",\"dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardUpgradeable.sol\":{\"keccak256\":\"0xb44e086e941292cdc7f440de51478493894ef0b1aeccb0c4047445919f667f74\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://942dad22fbdc1669f025540ba63aa3ccfad5f8458fc5d4525b31ebf272e7af45\",\"dweb:/ipfs/Qmdo4X2M82aM3AMoW2kf2jhYkSCyC4T1pHNd6obdsDFnAB\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol\":{\"keccak256\":\"0xdaba3f7c42c55b2896353f32bd27d4d5f8bae741b3b05d4c53f67abc4dc47ce8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1fa2e61141c602510bcd2cd936ed9561922ac8772a9b9c9a9db091a74e354a45\",\"dweb:/ipfs/QmcHQDDoEBwJmwUbzoVkytvJsBx3KVHYFFnDkvRGWh9Wmh\"]},\"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0xb6b36edd6a2999fd243ff226d6cbf84bd71af2432bbd0dfe19392996a1d9cb41\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1fd2f35495652e57e3f99bc6c510bc5f7dd398a176ea2e72d8ed730aebc6ca26\",\"dweb:/ipfs/QmTQV6X4gkikTib49cho5iDX3JvSQbdsoEChoDwrk3CbbH\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC1271.sol\":{\"keccak256\":\"0x85a45f3f10014a0f8be41157a32b6a5f905753ea64a4b64e29fc12b7deeecf39\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c3c74009ce36136b36c77c23935b8e4a7b4f253be2da2be4fb4a916b1ce43743\",\"dweb:/ipfs/QmcH36v3iN7SJJuF73AunLR2LtNxhVJ1wm63ph4dPZ4pcL\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC5267.sol\":{\"keccak256\":\"0x92aa1df62dc3d33f1656d63bede0923e0df0b706ad4137c8b10b0a8fe549fd92\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c5c0f29195ad64cbe556da8e257dac8f05f78c53f90323c0d2accf8e6922d33a\",\"dweb:/ipfs/QmQ61TED8uaCZwcbh8KkgRSsCav7x7HbcGHwHts3U4DmUP\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c\",\"dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0x6008dabfe393240d73d7dd7688033f72740d570aa422254d29a7dce8568f3aff\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f5196ec75139918c6c7bb4251b36395e668f1fa6d206beba7e7520e74913940d\",\"dweb:/ipfs/QmSyqjksXxmm2mCG6qRd1yuwLykypkSVBbnBnGqJRcuJMi\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x37bb49513c49c87c4642a891b13b63571bc87013dde806617aa1efb54605f386\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b3036b3a83b7c48f96641f2a9002b9f2dcb6a5958dd670894ada21ae8229b3d0\",\"dweb:/ipfs/QmUNfSBdoVtjhETaUJCYcaC7pTMgbhht926tJ2uXJbiVd3\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0xaf28a975a78550e45f65e559a3ad6a5ad43b9b8a37366999abd1b7084eb70721\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b7bd24e224f67f65bfadf85dc2929fa965456bb2415478bd0125471b5ce35245\",\"dweb:/ipfs/QmRaydGr8BTHs1kvaZfsNU69pKzUAGFrvABn1KiRSbE51y\"]},\"lib/openzeppelin-contracts/contracts/utils/ShortStrings.sol\":{\"keccak256\":\"0x18a7171df639a934592915a520ecb97c5bbc9675a1105607aac8a94e72bf62c6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7478e1f13da69a2867ccd883001d836b75620362e743f196376d63ed0c422a1c\",\"dweb:/ipfs/QmWywcQ9TNfwtoqAxbn25d8C5VrV12PrPS9UjtGe6pL2BA\"]},\"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0x32ba59b4b7299237c8ba56319110989d7978a039faf754793064e967e5894418\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1ae50c8b562427df610cc4540c9bf104acca7ef8e2dcae567ae7e52272281e9c\",\"dweb:/ipfs/QmTHiadFCSJUPpRjNegc5SahmeU8bAoY8i9Aq6tVscbcKR\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0x55f102ea785d8399c0e58d1108e2d289506dde18abc6db1b7f68c1f9f9bc5792\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e52e0a7765c943ef14e5bcf11e46e6139fa044be564881378349236bf2e3453\",\"dweb:/ipfs/QmZEeeXoFPW47amyP35gfzomF9DixqqTEPwzBakv6cZw6i\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0xeed0a08b0b091f528356cbc7245891a4c748682d4f6a18055e8e6ca77d12a6cf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba80ba06c8e6be852847e4c5f4492cef801feb6558ae09ed705ff2e04ea8b13c\",\"dweb:/ipfs/QmXRJDv3xHLVQCVXg1ZvR35QS9sij5y9NDWYzMfUfAdTHF\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/EIP712.sol\":{\"keccak256\":\"0x999f705a027ed6dc2d4e0df2cc4a509852c6bfd11de1c8161bf88832d0503fd0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0798def67258d9a3cc20b2b4da7ebf351a5cefe0abfdd665d2d81f8e32f89b21\",\"dweb:/ipfs/QmPEvJosnPfzHNjKvCv2D3891mA2Ww8eUwkqrxBjuYdHCt\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol\":{\"keccak256\":\"0xba333517a3add42cd35fe877656fc3dfcc9de53baa4f3aabbd6d12a92e4ea435\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2ceacff44c0fdc81e48e0e0b1db87a2076d3c1fb497341de077bf1da9f6b406c\",\"dweb:/ipfs/QmRUo1muMRAewxrKQ7TkXUtknyRoR57AyEkoPpiuZQ8FzX\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/SignatureChecker.sol\":{\"keccak256\":\"0x6b11eb41a228cca35d4b662b4df69fcd75192851365102690f57b2ac01e83fe6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ab006a2983ed350d2af21ddcdd835dcae3b8340086cc4d088460da5abd041f69\",\"dweb:/ipfs/QmbEacDhkJZiGrgzLjB4pNtE8Z1uudjDw1DvcDUTVQFsLG\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875\",\"dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0xe19a4d5f31d2861e7344e8e535e2feafb913d806d3e2b5fe7782741a2a7094fe\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4aed79c0fa6f0546ed02f2f683e8f77f0fd2ed7eb34d8bbf3d373c9a6d95b13c\",\"dweb:/ipfs/QmWqVz6UAVqmnWU5pqYPt1o6iDEZyPaBraAA3rKfTTSfYj\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x5f7e4076e175393767754387c962926577f1660dd9b810187b9002407656be72\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7d533a1c97cd43a57cd9c465f7ee8dd0e39ae93a8fb8ff8e5303a356b081cdcc\",\"dweb:/ipfs/QmVBEei6aTnvYNZp2CHYVNKyZS4q1KkjANfY39WVXZXVoT\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/Checkpoints.sol\":{\"keccak256\":\"0xbdc5e074d7dd6678f67e92b1a51a20226801a407b0e1af3da367c5d1ff4519ad\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a36cca6b22fff3db16fc789ff6c60eea71d4b156065d4d0c83a0bc5e91a77a8b\",\"dweb:/ipfs/QmYN3exd5AemxjBrN8XMB1p5LbbE16uC3sjbYjwi8AjcGR\"]},\"lib/openzeppelin-contracts/contracts/utils/types/Time.sol\":{\"keccak256\":\"0xc7755af115020049e4140f224f9ee88d7e1799ffb0646f37bf0df24bf6213f58\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7f09bf94d5274334ec021f61a04659db303f31e60460e14b709c9bf187740111\",\"dweb:/ipfs/QmNvgomZYUwFAt4cZbPWAiTeSZQreGehY9BK5xyVJsUttb\"]},\"src/contracts/common/Entity.sol\":{\"keccak256\":\"0x3d61a932995b8443381f3950542d388223a2c26dd5d29a3274dea3baa7388bd7\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://7cdf5f03ca72fd263fd32ff59c8d88ddca911ae83896a287d10772c1bbe9b138\",\"dweb:/ipfs/QmbP84r5BWT1Rn9AYTntWSf3xUMTTCohTZJFhbBhDXFoHa\"]},\"src/contracts/common/MigratableEntity.sol\":{\"keccak256\":\"0x2d736f4dacd5d7e7697503bc426c78b8250fe1694ca157965ec178da6807de58\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://f1237acf96b4b9f9b69156e068eddd726a6e15bd8e87a18dc999cd4ba4da069c\",\"dweb:/ipfs/QmS6M8fiFFSeuJ4ZKKq1z8W7w4ybeHQSy5TLASGoc1LVic\"]},\"src/contracts/common/StaticDelegateCallable.sol\":{\"keccak256\":\"0x350029aa8955eacaffffaeb58babc5c98e80ebc5c5db388ed17ee6465f4a9d90\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://eb392a8ee9050e0af606897df63e3404e3829e8b688b580663892f9664195764\",\"dweb:/ipfs/QmaXC8jqV8UrrAFkzXTEv2fJF56sy33HhLxAzaRZmUxuXD\"]},\"src/contracts/delegator/BaseDelegator.sol\":{\"keccak256\":\"0x7c54d491fdd4415b764a9c8defa068e56d4c0c8c9419be0053a1d377669290e8\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://9238bfbad0f6eeb0dc7727724de14380f1980b395902269703d5e2ef07e52e10\",\"dweb:/ipfs/QmPJn1V4HNXcEghYvogGuSTF24dSQUPosR5qtsXcmNqRm3\"]},\"src/contracts/delegator/FullRestakeDelegator.sol\":{\"keccak256\":\"0x0a81c4f8e72914563a9cb771e93acf889c71ea36b7bec040e4eb562b199d5af1\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://6fc66b6ba02da77046a0bbbd1dd407a62c08f52e04486c9cbd2cb1cca3da555f\",\"dweb:/ipfs/QmZQivK1ZnMxfRQQ5aLpV9co5u55wQVNev5Rg1hzAqxhkE\"]},\"src/contracts/delegator/NetworkRestakeDelegator.sol\":{\"keccak256\":\"0xd3a8e6522f9c6fdcc2da837c9023afd6bdff2bce45a35590320c475519e3636d\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://58b17a87f6554f08376f9ea7fedf486a4aa75801bf0ad8b23ff5a46959b6b7a3\",\"dweb:/ipfs/QmSTmNh67tYt8CmjVZb57r8N3qX5yeYdMApKPJm3qvQgQw\"]},\"src/contracts/delegator/OperatorNetworkSpecificDelegator.sol\":{\"keccak256\":\"0x031a10722b9ec49048f0952710401131290adb87e71caf294e864e7ac3b98a16\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://72428febc875134b2f29205e6f294634a1c22a7d5c78d6a9cb2f8196f107c9b5\",\"dweb:/ipfs/QmTPwXR6h5oytckmkLrHdKeEMdphJxceDhYUR4zvQeWAwY\"]},\"src/contracts/delegator/OperatorSpecificDelegator.sol\":{\"keccak256\":\"0x630ce62fa30b9f3349ab7a8cf8dbf041319febc6dd757be2f94d3d25944ed328\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://c2ac59d47ce57d2a6819ae9833e1a618a371eccff93eb5ab367b201b01f42bfa\",\"dweb:/ipfs/QmdBpGMBivpNPv2WbH8vnCUy5xkVeaxQvGgqi33vKCz1kA\"]},\"src/contracts/hints/DelegatorHints.sol\":{\"keccak256\":\"0x44aa0c396311a54afbc7c73e8dadeed41e3165a4fd13f712b27d63d50fc3376d\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://2f255214f3531fc707d88be0d56a7a0aed4180439316d099d760d9118aa83093\",\"dweb:/ipfs/QmZD1w5p1ukJSXumUAjvxwGmkPhn7vsr21Y2atLGEZR2oi\"]},\"src/contracts/hints/Hints.sol\":{\"keccak256\":\"0x8b565df1ae35993c097a9e642002782a8f451f6fd01809cad6bcd345bdf1b99c\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://99a19adb01e350a92f534095b3078229df1f2f83077992d75d58d8684be45971\",\"dweb:/ipfs/QmbmwcuswVbzvwHQFTtrJG86oV98GnfxqYTb8cV8u1acox\"]},\"src/contracts/hints/OptInServiceHints.sol\":{\"keccak256\":\"0x95d9407900d27b9f4a1233b772aeed809c07b2dc5b31cfc9fa77ca26514c49e5\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://a13a8877e312d7e6b8b85bde3668c5d84ff5ecc83f762cd573f2b7104c64eb42\",\"dweb:/ipfs/QmYV2J55acuGzCNnS3juABuUHY5U1xc8g8o9jwEyFFdeG5\"]},\"src/contracts/hints/VaultHints.sol\":{\"keccak256\":\"0xccb505b7159b769cc114d67b87c2de6b106557f667fc8f3780114baad5c3c442\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://6d0c80a908fc16e96a8b5605a0bd53f9e89ad0ef0a738fbbae80ba4d3160749b\",\"dweb:/ipfs/QmXo5UtWoR8YmunqcbBU8rQMm1nvmvjNPoXcVrDhh4pEwR\"]},\"src/contracts/libraries/Checkpoints.sol\":{\"keccak256\":\"0xba90097c8bfe0a975499428b5f8ac5569483c7d92ccc28c12d70de416aae040c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://12f5d93ca94cd06d3147db68993165a58e17903ed53682560de61f3085ad4609\",\"dweb:/ipfs/QmePiuAqvXprMLmFZkGZeGjvGPAvsEDHfCDv7BoQhXu9xE\"]},\"src/contracts/libraries/ERC4626Math.sol\":{\"keccak256\":\"0x8441160513c1cbeb1c3b9ee077bcc7e7ce20006b52a77c8dd39ff0ef89699939\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://943f8cc3e26ddf649f465f40c909819f5c864717c4baa339e9e403b9374a4653\",\"dweb:/ipfs/QmXPxi1sUDsrGprZdUgCzoPEosaZMv9ZhygWQ1vAi1phAB\"]},\"src/contracts/libraries/Subnetwork.sol\":{\"keccak256\":\"0xf5ef5506fd66082b3c2e7f3df37529f5a8efad32ac62e7c8914bd63219190bfe\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba031a54ee0d0e9a270c2b9e18437f5668cfeb659cfd5fe0677459d7fcac2a56\",\"dweb:/ipfs/QmReP3H7qQ78tAfgLnJKsNEQNCQfF1X1Get38Ffd4kzq32\"]},\"src/contracts/service/OptInService.sol\":{\"keccak256\":\"0x4e0932077f2686b7990e10d59deb2535334c0d09e52ef6e57c6ab09eca21c4b1\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://7c00d311032ed4a1743aca7475f3c86ce15cdfc2218108efc3731c03d34a5278\",\"dweb:/ipfs/QmUGGfVwVhaHr5kS4177yKKYiLYzi5qZpkEmvYxBZqazxf\"]},\"src/contracts/vault/Vault.sol\":{\"keccak256\":\"0x2ceff6ed3298c4cad144c99fcc79b51cb9397d6ebef00285b915848b476f8c2e\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://11f2fb3581854f3ab6e82e8d4935d9eb510c903a13c3f022346c2956a58f5307\",\"dweb:/ipfs/QmdUnoXoyYoG9SGWyQZCFyLDRUUX3eXyXetkRvw6jxqqBz\"]},\"src/contracts/vault/VaultStorage.sol\":{\"keccak256\":\"0x57db25b127d77ea3472de53e3a4af3354399655b9268638b99ca5925fa364a56\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://aa763d9a6ec508ae3abfb8228b72b9fd9525279e5135d4962e79ff059feb1173\",\"dweb:/ipfs/QmcbDR6E9wyEpu6V2FkEC4hnWy47zXA9LSKJde6zSGd33Q\"]},\"src/interfaces/common/IEntity.sol\":{\"keccak256\":\"0x8ef4b63d6da63489778ccd5f8d13ebdd527dd4b62730b2c616df5af7474d2d21\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a8d69576a9219d85c50816a18ad53a4d53cfcb27ed38b8cccc808dc2734b71b\",\"dweb:/ipfs/QmYVN3P4Q4REvBWJ97TbAcaxm3uyB2anV6NSGa6ZtSwcEv\"]},\"src/interfaces/common/IMigratableEntity.sol\":{\"keccak256\":\"0x8f5f2809f3afbe8ebfbb365dd7b57b4dd3b6f9943a6187eaf648d45895b8e3c4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ffe640537d539e7a4fde70d30d3e4c57f4ba9c2c25c450cea713aae38e8fd5c\",\"dweb:/ipfs/QmSUTGzvdcn1R1KB7tLThMRtESsfPbeXDhhhKWGtntzBds\"]},\"src/interfaces/common/IRegistry.sol\":{\"keccak256\":\"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014\",\"dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK\"]},\"src/interfaces/common/IStaticDelegateCallable.sol\":{\"keccak256\":\"0xa335d4e81b9071b7de66ef92b43ff20671d86516eb1be46fef29a3483cd3f5d5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d464b9db863c14c05547d2b23352f2e9b7b784799cf09f6bbc4906a2a74e3516\",\"dweb:/ipfs/QmUVWzFvJz7eEbDQKiFTTzwi7TEbjcs3VmwdM4kuptAKvi\"]},\"src/interfaces/delegator/IBaseDelegator.sol\":{\"keccak256\":\"0x96bb312f032e17accce3f8f80936d99468029d6b37c9ca74acdb4b026a0148ee\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2a66dcb5b7d1a6ef6a363431ea98ebd78bc4fdd3d7a134d9b542dc66e7d025c2\",\"dweb:/ipfs/QmRhTPLd2ZAyRHmJUFUcWKs9b3if49QY17LYZuRqWmghw8\"]},\"src/interfaces/delegator/IDelegatorHook.sol\":{\"keccak256\":\"0xc51aa8d7d1f6c8043ee819b7aeb86da0e993912e1442098df897e299f01f9f46\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://adddf5cb2ba282aeb576b26efb28640f865a1721cc9b6eee8b3ee0457a2c9780\",\"dweb:/ipfs/QmNYgAmnLRwWZbhTuQhZs9rx4zcme1df5mEepkrniorSoW\"]},\"src/interfaces/delegator/IFullRestakeDelegator.sol\":{\"keccak256\":\"0xa3c8cb2e45d4d8ce90e95263bea40c01dc400f05ad65bc29597d878606be5e7d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://782cf5e201aa4cca037ebafd3807a68ff1cc721d5b8416a35244db0d0607369e\",\"dweb:/ipfs/QmQkJks6x7CKndeTPa9LxgTNygD5uEi7obhADhpq1Lsr9A\"]},\"src/interfaces/delegator/INetworkRestakeDelegator.sol\":{\"keccak256\":\"0xe7030fe30389a147fd710e3436ec346b4842695fd3e65a81b95375c9f1d633fc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://739c7e66d301778054f5c90bee45ec9438f68afba8a03eaaac52064c73b115ad\",\"dweb:/ipfs/QmfZ2ytKcTykAc76nxhg8ikUXV8NdBpetqb8W4YWPcox1Z\"]},\"src/interfaces/delegator/IOperatorNetworkSpecificDelegator.sol\":{\"keccak256\":\"0x74b95e64d29769202d45dd277bb830f623ff3d41ce77b80ce3ee4e318a5c71ec\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e512b903aae5c1b8a028c6e3f4f6223b5cb5d704503cfa6bd37b5346868f5c20\",\"dweb:/ipfs/QmZim9YExsPWtyxyeui993HTKAEmrg8MUcSkZ77Gp2JcuZ\"]},\"src/interfaces/delegator/IOperatorSpecificDelegator.sol\":{\"keccak256\":\"0x72075cab585dc17240cc3e32bc99b92f0d5627ddd988fed680e3e1a52d5a01e4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7448bc90699409ae61d85216b5efc2143a37f0f73354be2aea993bc54afca441\",\"dweb:/ipfs/QmXE4gAxM8pHosZK8mcTcj17puBx484meDCcmrDePskGHZ\"]},\"src/interfaces/service/IOptInService.sol\":{\"keccak256\":\"0x76fb5460a6d87a5705433d4fbeff7253cd75b8bbd0c888b2088f16e86ace146a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://990322019b3d11465f7024bae77ccbf7e2fe5d6fa3c754584778f37d04fa1337\",\"dweb:/ipfs/QmaSNHzcqxTkUCG9a4nqVfLECHLdjdrwAnDi3yDC7tDL24\"]},\"src/interfaces/slasher/IBaseSlasher.sol\":{\"keccak256\":\"0x7c82528b445659c313ab77335c407b0b6efe5e79027187bb287f7bc74202b404\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0274c90aa5df1aa6bb470a6aab53992fb14fd7e5472c9430416505b29647d9cf\",\"dweb:/ipfs/QmckbmJLDetPemVzCnnGcKYWAZV2BRFXGDsjiaec8jkHxx\"]},\"src/interfaces/vault/IVault.sol\":{\"keccak256\":\"0xffee01d383cd4e1a5530c614bf4360c1ef070c288abec9da1eb531b51bc07235\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://04f0046cac285d8ec44ebbb1f79dc94fab4495767190cad8364fbc1fafaadfb9\",\"dweb:/ipfs/QmUawAunwzXfCyShWfhKeThAgKtqe51hmrxvrXvM772M2R\"]},\"src/interfaces/vault/IVaultStorage.sol\":{\"keccak256\":\"0x592626f13754194f83047135de19229c49390bd59e34659b1bb38be71d973a22\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://06a6a9dfddd05e580b32bebe2cff4f63ba26a653180676d58225dd30d9c89d3e\",\"dweb:/ipfs/QmdgzBeY6Sxo8mGtyBxtv1tM1c2kU6J6zjeRd7vuXm4DU6\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.25+commit.b61c2a91"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"baseDelegatorHints","type":"address"},{"internalType":"address","name":"vaultHints","type":"address"},{"internalType":"address","name":"optInServiceHints","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"AccessControlBadConfirmation"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bytes32","name":"neededRole","type":"bytes32"}],"type":"error","name":"AccessControlUnauthorizedAccount"},{"inputs":[],"type":"error","name":"AlreadySet"},{"inputs":[],"type":"error","name":"CheckpointUnorderedInsertion"},{"inputs":[],"type":"error","name":"DuplicateRoleHolder"},{"inputs":[],"type":"error","name":"ExceedsMaxNetworkLimit"},{"inputs":[],"type":"error","name":"ExternalCall"},{"inputs":[],"type":"error","name":"InsufficientHookGas"},{"inputs":[],"type":"error","name":"InvalidInitialization"},{"inputs":[],"type":"error","name":"MissingRoleHolders"},{"inputs":[],"type":"error","name":"NotInitialized"},{"inputs":[],"type":"error","name":"NotInitializing"},{"inputs":[],"type":"error","name":"NotNetwork"},{"inputs":[],"type":"error","name":"NotSlasher"},{"inputs":[],"type":"error","name":"NotVault"},{"inputs":[],"type":"error","name":"ReentrancyGuardReentrantCall"},{"inputs":[{"internalType":"uint8","name":"bits","type":"uint8"},{"internalType":"uint256","name":"value","type":"uint256"}],"type":"error","name":"SafeCastOverflowedUintDowncast"},{"inputs":[],"type":"error","name":"ZeroAddressRoleHolder"},{"inputs":[{"internalType":"uint64","name":"version","type":"uint64","indexed":false}],"type":"event","name":"Initialized","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32","indexed":true},{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false},{"internalType":"uint48","name":"captureTimestamp","type":"uint48","indexed":false}],"type":"event","name":"OnSlash","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"bytes32","name":"previousAdminRole","type":"bytes32","indexed":true},{"internalType":"bytes32","name":"newAdminRole","type":"bytes32","indexed":true}],"type":"event","name":"RoleAdminChanged","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"address","name":"sender","type":"address","indexed":true}],"type":"event","name":"RoleGranted","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"address","name":"sender","type":"address","indexed":true}],"type":"event","name":"RoleRevoked","anonymous":false},{"inputs":[{"internalType":"address","name":"hook","type":"address","indexed":true}],"type":"event","name":"SetHook","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"SetMaxNetworkLimit","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"SetNetworkLimit","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32","indexed":true},{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"SetOperatorNetworkLimit","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"BASE_DELEGATOR_HINTS","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"DEFAULT_ADMIN_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"FACTORY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"HOOK_GAS_LIMIT","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"HOOK_RESERVE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"HOOK_SET_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"NETWORK_LIMIT_SET_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"NETWORK_REGISTRY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"OPERATOR_NETWORK_LIMIT_SET_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"OPERATOR_NETWORK_OPT_IN_SERVICE","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"OPERATOR_VAULT_OPT_IN_SERVICE","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"OPT_IN_SERVICE_HINTS","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"TYPE","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"VAULT_FACTORY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"VAULT_HINTS","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"VERSION","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getRoleAdmin","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"grantRole"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"hasRole","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"hook","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"}],"stateMutability":"view","type":"function","name":"maxNetworkLimit","outputs":[{"internalType":"uint256","name":"value","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"}],"stateMutability":"view","type":"function","name":"networkLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"uint48","name":"timestamp","type":"uint48"},{"internalType":"bytes","name":"hint","type":"bytes"}],"stateMutability":"view","type":"function","name":"networkLimitAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"delegator","type":"address"},{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"uint48","name":"timestamp","type":"uint48"}],"stateMutability":"view","type":"function","name":"networkLimitHint","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"uint48","name":"timestamp","type":"uint48"}],"stateMutability":"view","type":"function","name":"networkLimitHintInternal","outputs":[{"internalType":"bool","name":"exists","type":"bool"},{"internalType":"uint32","name":"hint","type":"uint32"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint48","name":"captureTimestamp","type":"uint48"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"onSlash"},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"operatorNetworkLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint48","name":"timestamp","type":"uint48"},{"internalType":"bytes","name":"hint","type":"bytes"}],"stateMutability":"view","type":"function","name":"operatorNetworkLimitAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"delegator","type":"address"},{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint48","name":"timestamp","type":"uint48"}],"stateMutability":"view","type":"function","name":"operatorNetworkLimitHint","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint48","name":"timestamp","type":"uint48"}],"stateMutability":"view","type":"function","name":"operatorNetworkLimitHintInternal","outputs":[{"internalType":"bool","name":"exists","type":"bool"},{"internalType":"uint32","name":"hint","type":"uint32"}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"callerConfirmation","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"renounceRole"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"revokeRole"},{"inputs":[{"internalType":"address","name":"hook_","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setHook"},{"inputs":[{"internalType":"uint96","name":"identifier","type":"uint96"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setMaxNetworkLimit"},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setNetworkLimit"},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setOperatorNetworkLimit"},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"stake","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint48","name":"timestamp","type":"uint48"},{"internalType":"bytes","name":"hints","type":"bytes"}],"stateMutability":"view","type":"function","name":"stakeAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"delegator","type":"address"},{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint48","name":"timestamp","type":"uint48"}],"stateMutability":"view","type":"function","name":"stakeHints","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"staticDelegateCall"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"vault","outputs":[{"internalType":"address","name":"","type":"address"}]}],"devdoc":{"kind":"dev","methods":{"VERSION()":{"details":"Must return 1 for this one.","returns":{"_0":"version of the delegator"}},"getRoleAdmin(bytes32)":{"details":"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}."},"grantRole(bytes32,address)":{"details":"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event."},"hasRole(bytes32,address)":{"details":"Returns `true` if `account` has been granted `role`."},"initialize(bytes)":{"params":{"data":"some data to use"}},"networkLimit(bytes32)":{"params":{"subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"},"returns":{"_0":"limit of the subnetwork"}},"networkLimitAt(bytes32,uint48,bytes)":{"params":{"hint":"hint for checkpoint index","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)","timestamp":"time point to get the subnetwork limit at"},"returns":{"_0":"limit of the subnetwork at the given timestamp"}},"onSlash(bytes32,address,uint256,uint48,bytes)":{"details":"Only the vault's slasher can call this function.","params":{"amount":"amount of the collateral slashed","captureTimestamp":"time point when the stake was captured","data":"some additional data","operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"}},"operatorNetworkLimit(bytes32,address)":{"params":{"operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"},"returns":{"_0":"limit of the operator for the subnetwork"}},"operatorNetworkLimitAt(bytes32,address,uint48,bytes)":{"params":{"hint":"hint for checkpoint index","operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)","timestamp":"time point to get the operator's limit for the subnetwork at"},"returns":{"_0":"limit of the operator for the subnetwork at the given timestamp"}},"renounceRole(bytes32,address)":{"details":"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `callerConfirmation`. May emit a {RoleRevoked} event."},"revokeRole(bytes32,address)":{"details":"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event."},"setHook(address)":{"details":"Only a HOOK_SET_ROLE holder can call this function. The hook can have arbitrary logic under certain functions, however, it doesn't affect the stake guarantees.","params":{"hook":"address of the hook"}},"setMaxNetworkLimit(uint96,uint256)":{"details":"Only a network can call this function.","params":{"amount":"new maximum subnetwork's limit"}},"setNetworkLimit(bytes32,uint256)":{"details":"Only a NETWORK_LIMIT_SET_ROLE holder can call this function.","params":{"amount":"new limit of the subnetwork","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"}},"setOperatorNetworkLimit(bytes32,address,uint256)":{"details":"Only an OPERATOR_NETWORK_LIMIT_SET_ROLE holder can call this function.","params":{"amount":"new limit of the operator for the subnetwork","operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"}},"stake(bytes32,address)":{"details":"Warning: this function is not safe to use for stake capturing, as it can change by the end of the block.","params":{"operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"},"returns":{"_0":"slashable stake until the end of the next epoch"}},"stakeAt(bytes32,address,uint48,bytes)":{"details":"Warning: it is not safe to use timestamp >= current one for the stake capturing, as it can change later.","params":{"hints":"hints for the checkpoints' indexes","operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)","timestamp":"time point to capture the stake at"},"returns":{"_0":"slashable stake at the given timestamp until the end of the consequent epoch"}},"staticDelegateCall(address,bytes)":{"details":"It allows to use this contract's storage on-chain.","params":{"data":"data to make a delegatecall with","target":"address of the contract to make a delegatecall to"}},"supportsInterface(bytes4)":{"details":"See {IERC165-supportsInterface}."}},"version":1},"userdoc":{"kind":"user","methods":{"FACTORY()":{"notice":"Get the factory's address."},"HOOK_GAS_LIMIT()":{"notice":"Get a gas limit for the hook."},"HOOK_RESERVE()":{"notice":"Get a reserve gas between the gas limit check and the hook's execution."},"HOOK_SET_ROLE()":{"notice":"Get a hook setter's role."},"NETWORK_LIMIT_SET_ROLE()":{"notice":"Get a subnetwork limit setter's role."},"NETWORK_REGISTRY()":{"notice":"Get the network registry's address."},"OPERATOR_NETWORK_LIMIT_SET_ROLE()":{"notice":"Get an operator-subnetwork limit setter's role."},"OPERATOR_NETWORK_OPT_IN_SERVICE()":{"notice":"Get the operator-network opt-in service's address."},"OPERATOR_VAULT_OPT_IN_SERVICE()":{"notice":"Get the operator-vault opt-in service's address."},"TYPE()":{"notice":"Get the entity's type."},"VAULT_FACTORY()":{"notice":"Get the vault factory's address."},"VERSION()":{"notice":"Get a version of the delegator (different versions mean different interfaces)."},"hook()":{"notice":"Get the hook's address."},"initialize(bytes)":{"notice":"Initialize this entity contract by using a given data."},"maxNetworkLimit(bytes32)":{"notice":"Get a particular subnetwork's maximum limit (meaning the subnetwork is not ready to get more as a stake)."},"networkLimit(bytes32)":{"notice":"Get a subnetwork's limit (how much stake the vault curator is ready to give to the subnetwork)."},"networkLimitAt(bytes32,uint48,bytes)":{"notice":"Get a subnetwork's limit at a given timestamp using a hint (how much stake the vault curator is ready to give to the subnetwork)."},"onSlash(bytes32,address,uint256,uint48,bytes)":{"notice":"Called when a slash happens."},"operatorNetworkLimit(bytes32,address)":{"notice":"Get an operator's limit for a subnetwork. (how much stake the vault curator is ready to give to the operator for the subnetwork)"},"operatorNetworkLimitAt(bytes32,address,uint48,bytes)":{"notice":"Get an operator's limit for a subnetwork at a given timestamp using a hint (how much stake the vault curator is ready to give to the operator for the subnetwork)."},"setHook(address)":{"notice":"Set a new hook."},"setMaxNetworkLimit(uint96,uint256)":{"notice":"Set a maximum limit for a subnetwork (how much stake the subnetwork is ready to get). identifier identifier of the subnetwork"},"setNetworkLimit(bytes32,uint256)":{"notice":"Set a subnetwork's limit (how much stake the vault curator is ready to give to the subnetwork)."},"setOperatorNetworkLimit(bytes32,address,uint256)":{"notice":"Set an operator's limit for a subnetwork. (how much stake the vault curator is ready to give to the operator for the subnetwork)"},"stake(bytes32,address)":{"notice":"Get a stake that a given subnetwork will be able to slash for a certain operator until the end of the next epoch (if no cross-slashing and no slashings by the subnetwork)."},"stakeAt(bytes32,address,uint48,bytes)":{"notice":"Get a stake that a given subnetwork could be able to slash for a certain operator at a given timestamp until the end of the consequent epoch using hints (if no cross-slashing and no slashings by the subnetwork)."},"staticDelegateCall(address,bytes)":{"notice":"Make a delegatecall from this contract to a given target contract with a particular data (always reverts with a return data)."},"vault()":{"notice":"Get the vault's address."}},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/contracts/hints/DelegatorHints.sol":"FullRestakeDelegatorHints"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol":{"keccak256":"0x6662ec4e5cefca03eeadd073e9469df8d2944bb2ee8ec8f7622c2c46aab5f225","urls":["bzz-raw://4d8544c6f8daa4d1bc215c6a72fe0acdb748664a105b0e5efc19295667521d45","dweb:/ipfs/QmdGWqdnXT8S3RgCR6aV8XHZrsybieMQLLnug1NtpSjEXN"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol":{"keccak256":"0xc163fcf9bb10138631a9ba5564df1fa25db9adff73bd9ee868a8ae1858fe093a","urls":["bzz-raw://9706d43a0124053d9880f6e31a59f31bc0a6a3dc1acd66ce0a16e1111658c5f6","dweb:/ipfs/QmUFmfowzkRwGtDu36cXV9SPTBHJ3n7dG9xQiK5B28jTf2"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b","urls":["bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609","dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol":{"keccak256":"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397","urls":["bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9","dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardUpgradeable.sol":{"keccak256":"0xb44e086e941292cdc7f440de51478493894ef0b1aeccb0c4047445919f667f74","urls":["bzz-raw://942dad22fbdc1669f025540ba63aa3ccfad5f8458fc5d4525b31ebf272e7af45","dweb:/ipfs/Qmdo4X2M82aM3AMoW2kf2jhYkSCyC4T1pHNd6obdsDFnAB"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol":{"keccak256":"0xdaba3f7c42c55b2896353f32bd27d4d5f8bae741b3b05d4c53f67abc4dc47ce8","urls":["bzz-raw://1fa2e61141c602510bcd2cd936ed9561922ac8772a9b9c9a9db091a74e354a45","dweb:/ipfs/QmcHQDDoEBwJmwUbzoVkytvJsBx3KVHYFFnDkvRGWh9Wmh"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol":{"keccak256":"0xb6b36edd6a2999fd243ff226d6cbf84bd71af2432bbd0dfe19392996a1d9cb41","urls":["bzz-raw://1fd2f35495652e57e3f99bc6c510bc5f7dd398a176ea2e72d8ed730aebc6ca26","dweb:/ipfs/QmTQV6X4gkikTib49cho5iDX3JvSQbdsoEChoDwrk3CbbH"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC1271.sol":{"keccak256":"0x85a45f3f10014a0f8be41157a32b6a5f905753ea64a4b64e29fc12b7deeecf39","urls":["bzz-raw://c3c74009ce36136b36c77c23935b8e4a7b4f253be2da2be4fb4a916b1ce43743","dweb:/ipfs/QmcH36v3iN7SJJuF73AunLR2LtNxhVJ1wm63ph4dPZ4pcL"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC5267.sol":{"keccak256":"0x92aa1df62dc3d33f1656d63bede0923e0df0b706ad4137c8b10b0a8fe549fd92","urls":["bzz-raw://c5c0f29195ad64cbe556da8e257dac8f05f78c53f90323c0d2accf8e6922d33a","dweb:/ipfs/QmQ61TED8uaCZwcbh8KkgRSsCav7x7HbcGHwHts3U4DmUP"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70","urls":["bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c","dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol":{"keccak256":"0x6008dabfe393240d73d7dd7688033f72740d570aa422254d29a7dce8568f3aff","urls":["bzz-raw://f5196ec75139918c6c7bb4251b36395e668f1fa6d206beba7e7520e74913940d","dweb:/ipfs/QmSyqjksXxmm2mCG6qRd1yuwLykypkSVBbnBnGqJRcuJMi"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0x37bb49513c49c87c4642a891b13b63571bc87013dde806617aa1efb54605f386","urls":["bzz-raw://b3036b3a83b7c48f96641f2a9002b9f2dcb6a5958dd670894ada21ae8229b3d0","dweb:/ipfs/QmUNfSBdoVtjhETaUJCYcaC7pTMgbhht926tJ2uXJbiVd3"],"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/ShortStrings.sol":{"keccak256":"0x18a7171df639a934592915a520ecb97c5bbc9675a1105607aac8a94e72bf62c6","urls":["bzz-raw://7478e1f13da69a2867ccd883001d836b75620362e743f196376d63ed0c422a1c","dweb:/ipfs/QmWywcQ9TNfwtoqAxbn25d8C5VrV12PrPS9UjtGe6pL2BA"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol":{"keccak256":"0x32ba59b4b7299237c8ba56319110989d7978a039faf754793064e967e5894418","urls":["bzz-raw://1ae50c8b562427df610cc4540c9bf104acca7ef8e2dcae567ae7e52272281e9c","dweb:/ipfs/QmTHiadFCSJUPpRjNegc5SahmeU8bAoY8i9Aq6tVscbcKR"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0x55f102ea785d8399c0e58d1108e2d289506dde18abc6db1b7f68c1f9f9bc5792","urls":["bzz-raw://6e52e0a7765c943ef14e5bcf11e46e6139fa044be564881378349236bf2e3453","dweb:/ipfs/QmZEeeXoFPW47amyP35gfzomF9DixqqTEPwzBakv6cZw6i"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol":{"keccak256":"0xeed0a08b0b091f528356cbc7245891a4c748682d4f6a18055e8e6ca77d12a6cf","urls":["bzz-raw://ba80ba06c8e6be852847e4c5f4492cef801feb6558ae09ed705ff2e04ea8b13c","dweb:/ipfs/QmXRJDv3xHLVQCVXg1ZvR35QS9sij5y9NDWYzMfUfAdTHF"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/EIP712.sol":{"keccak256":"0x999f705a027ed6dc2d4e0df2cc4a509852c6bfd11de1c8161bf88832d0503fd0","urls":["bzz-raw://0798def67258d9a3cc20b2b4da7ebf351a5cefe0abfdd665d2d81f8e32f89b21","dweb:/ipfs/QmPEvJosnPfzHNjKvCv2D3891mA2Ww8eUwkqrxBjuYdHCt"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol":{"keccak256":"0xba333517a3add42cd35fe877656fc3dfcc9de53baa4f3aabbd6d12a92e4ea435","urls":["bzz-raw://2ceacff44c0fdc81e48e0e0b1db87a2076d3c1fb497341de077bf1da9f6b406c","dweb:/ipfs/QmRUo1muMRAewxrKQ7TkXUtknyRoR57AyEkoPpiuZQ8FzX"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/SignatureChecker.sol":{"keccak256":"0x6b11eb41a228cca35d4b662b4df69fcd75192851365102690f57b2ac01e83fe6","urls":["bzz-raw://ab006a2983ed350d2af21ddcdd835dcae3b8340086cc4d088460da5abd041f69","dweb:/ipfs/QmbEacDhkJZiGrgzLjB4pNtE8Z1uudjDw1DvcDUTVQFsLG"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b","urls":["bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df","dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d","urls":["bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875","dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol":{"keccak256":"0xe19a4d5f31d2861e7344e8e535e2feafb913d806d3e2b5fe7782741a2a7094fe","urls":["bzz-raw://4aed79c0fa6f0546ed02f2f683e8f77f0fd2ed7eb34d8bbf3d373c9a6d95b13c","dweb:/ipfs/QmWqVz6UAVqmnWU5pqYPt1o6iDEZyPaBraAA3rKfTTSfYj"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0x5f7e4076e175393767754387c962926577f1660dd9b810187b9002407656be72","urls":["bzz-raw://7d533a1c97cd43a57cd9c465f7ee8dd0e39ae93a8fb8ff8e5303a356b081cdcc","dweb:/ipfs/QmVBEei6aTnvYNZp2CHYVNKyZS4q1KkjANfY39WVXZXVoT"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/Checkpoints.sol":{"keccak256":"0xbdc5e074d7dd6678f67e92b1a51a20226801a407b0e1af3da367c5d1ff4519ad","urls":["bzz-raw://a36cca6b22fff3db16fc789ff6c60eea71d4b156065d4d0c83a0bc5e91a77a8b","dweb:/ipfs/QmYN3exd5AemxjBrN8XMB1p5LbbE16uC3sjbYjwi8AjcGR"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/types/Time.sol":{"keccak256":"0xc7755af115020049e4140f224f9ee88d7e1799ffb0646f37bf0df24bf6213f58","urls":["bzz-raw://7f09bf94d5274334ec021f61a04659db303f31e60460e14b709c9bf187740111","dweb:/ipfs/QmNvgomZYUwFAt4cZbPWAiTeSZQreGehY9BK5xyVJsUttb"],"license":"MIT"},"src/contracts/common/Entity.sol":{"keccak256":"0x3d61a932995b8443381f3950542d388223a2c26dd5d29a3274dea3baa7388bd7","urls":["bzz-raw://7cdf5f03ca72fd263fd32ff59c8d88ddca911ae83896a287d10772c1bbe9b138","dweb:/ipfs/QmbP84r5BWT1Rn9AYTntWSf3xUMTTCohTZJFhbBhDXFoHa"],"license":"BUSL-1.1"},"src/contracts/common/MigratableEntity.sol":{"keccak256":"0x2d736f4dacd5d7e7697503bc426c78b8250fe1694ca157965ec178da6807de58","urls":["bzz-raw://f1237acf96b4b9f9b69156e068eddd726a6e15bd8e87a18dc999cd4ba4da069c","dweb:/ipfs/QmS6M8fiFFSeuJ4ZKKq1z8W7w4ybeHQSy5TLASGoc1LVic"],"license":"BUSL-1.1"},"src/contracts/common/StaticDelegateCallable.sol":{"keccak256":"0x350029aa8955eacaffffaeb58babc5c98e80ebc5c5db388ed17ee6465f4a9d90","urls":["bzz-raw://eb392a8ee9050e0af606897df63e3404e3829e8b688b580663892f9664195764","dweb:/ipfs/QmaXC8jqV8UrrAFkzXTEv2fJF56sy33HhLxAzaRZmUxuXD"],"license":"BUSL-1.1"},"src/contracts/delegator/BaseDelegator.sol":{"keccak256":"0x7c54d491fdd4415b764a9c8defa068e56d4c0c8c9419be0053a1d377669290e8","urls":["bzz-raw://9238bfbad0f6eeb0dc7727724de14380f1980b395902269703d5e2ef07e52e10","dweb:/ipfs/QmPJn1V4HNXcEghYvogGuSTF24dSQUPosR5qtsXcmNqRm3"],"license":"BUSL-1.1"},"src/contracts/delegator/FullRestakeDelegator.sol":{"keccak256":"0x0a81c4f8e72914563a9cb771e93acf889c71ea36b7bec040e4eb562b199d5af1","urls":["bzz-raw://6fc66b6ba02da77046a0bbbd1dd407a62c08f52e04486c9cbd2cb1cca3da555f","dweb:/ipfs/QmZQivK1ZnMxfRQQ5aLpV9co5u55wQVNev5Rg1hzAqxhkE"],"license":"BUSL-1.1"},"src/contracts/delegator/NetworkRestakeDelegator.sol":{"keccak256":"0xd3a8e6522f9c6fdcc2da837c9023afd6bdff2bce45a35590320c475519e3636d","urls":["bzz-raw://58b17a87f6554f08376f9ea7fedf486a4aa75801bf0ad8b23ff5a46959b6b7a3","dweb:/ipfs/QmSTmNh67tYt8CmjVZb57r8N3qX5yeYdMApKPJm3qvQgQw"],"license":"BUSL-1.1"},"src/contracts/delegator/OperatorNetworkSpecificDelegator.sol":{"keccak256":"0x031a10722b9ec49048f0952710401131290adb87e71caf294e864e7ac3b98a16","urls":["bzz-raw://72428febc875134b2f29205e6f294634a1c22a7d5c78d6a9cb2f8196f107c9b5","dweb:/ipfs/QmTPwXR6h5oytckmkLrHdKeEMdphJxceDhYUR4zvQeWAwY"],"license":"BUSL-1.1"},"src/contracts/delegator/OperatorSpecificDelegator.sol":{"keccak256":"0x630ce62fa30b9f3349ab7a8cf8dbf041319febc6dd757be2f94d3d25944ed328","urls":["bzz-raw://c2ac59d47ce57d2a6819ae9833e1a618a371eccff93eb5ab367b201b01f42bfa","dweb:/ipfs/QmdBpGMBivpNPv2WbH8vnCUy5xkVeaxQvGgqi33vKCz1kA"],"license":"BUSL-1.1"},"src/contracts/hints/DelegatorHints.sol":{"keccak256":"0x44aa0c396311a54afbc7c73e8dadeed41e3165a4fd13f712b27d63d50fc3376d","urls":["bzz-raw://2f255214f3531fc707d88be0d56a7a0aed4180439316d099d760d9118aa83093","dweb:/ipfs/QmZD1w5p1ukJSXumUAjvxwGmkPhn7vsr21Y2atLGEZR2oi"],"license":"BUSL-1.1"},"src/contracts/hints/Hints.sol":{"keccak256":"0x8b565df1ae35993c097a9e642002782a8f451f6fd01809cad6bcd345bdf1b99c","urls":["bzz-raw://99a19adb01e350a92f534095b3078229df1f2f83077992d75d58d8684be45971","dweb:/ipfs/QmbmwcuswVbzvwHQFTtrJG86oV98GnfxqYTb8cV8u1acox"],"license":"BUSL-1.1"},"src/contracts/hints/OptInServiceHints.sol":{"keccak256":"0x95d9407900d27b9f4a1233b772aeed809c07b2dc5b31cfc9fa77ca26514c49e5","urls":["bzz-raw://a13a8877e312d7e6b8b85bde3668c5d84ff5ecc83f762cd573f2b7104c64eb42","dweb:/ipfs/QmYV2J55acuGzCNnS3juABuUHY5U1xc8g8o9jwEyFFdeG5"],"license":"BUSL-1.1"},"src/contracts/hints/VaultHints.sol":{"keccak256":"0xccb505b7159b769cc114d67b87c2de6b106557f667fc8f3780114baad5c3c442","urls":["bzz-raw://6d0c80a908fc16e96a8b5605a0bd53f9e89ad0ef0a738fbbae80ba4d3160749b","dweb:/ipfs/QmXo5UtWoR8YmunqcbBU8rQMm1nvmvjNPoXcVrDhh4pEwR"],"license":"BUSL-1.1"},"src/contracts/libraries/Checkpoints.sol":{"keccak256":"0xba90097c8bfe0a975499428b5f8ac5569483c7d92ccc28c12d70de416aae040c","urls":["bzz-raw://12f5d93ca94cd06d3147db68993165a58e17903ed53682560de61f3085ad4609","dweb:/ipfs/QmePiuAqvXprMLmFZkGZeGjvGPAvsEDHfCDv7BoQhXu9xE"],"license":"MIT"},"src/contracts/libraries/ERC4626Math.sol":{"keccak256":"0x8441160513c1cbeb1c3b9ee077bcc7e7ce20006b52a77c8dd39ff0ef89699939","urls":["bzz-raw://943f8cc3e26ddf649f465f40c909819f5c864717c4baa339e9e403b9374a4653","dweb:/ipfs/QmXPxi1sUDsrGprZdUgCzoPEosaZMv9ZhygWQ1vAi1phAB"],"license":"MIT"},"src/contracts/libraries/Subnetwork.sol":{"keccak256":"0xf5ef5506fd66082b3c2e7f3df37529f5a8efad32ac62e7c8914bd63219190bfe","urls":["bzz-raw://ba031a54ee0d0e9a270c2b9e18437f5668cfeb659cfd5fe0677459d7fcac2a56","dweb:/ipfs/QmReP3H7qQ78tAfgLnJKsNEQNCQfF1X1Get38Ffd4kzq32"],"license":"MIT"},"src/contracts/service/OptInService.sol":{"keccak256":"0x4e0932077f2686b7990e10d59deb2535334c0d09e52ef6e57c6ab09eca21c4b1","urls":["bzz-raw://7c00d311032ed4a1743aca7475f3c86ce15cdfc2218108efc3731c03d34a5278","dweb:/ipfs/QmUGGfVwVhaHr5kS4177yKKYiLYzi5qZpkEmvYxBZqazxf"],"license":"BUSL-1.1"},"src/contracts/vault/Vault.sol":{"keccak256":"0x2ceff6ed3298c4cad144c99fcc79b51cb9397d6ebef00285b915848b476f8c2e","urls":["bzz-raw://11f2fb3581854f3ab6e82e8d4935d9eb510c903a13c3f022346c2956a58f5307","dweb:/ipfs/QmdUnoXoyYoG9SGWyQZCFyLDRUUX3eXyXetkRvw6jxqqBz"],"license":"BUSL-1.1"},"src/contracts/vault/VaultStorage.sol":{"keccak256":"0x57db25b127d77ea3472de53e3a4af3354399655b9268638b99ca5925fa364a56","urls":["bzz-raw://aa763d9a6ec508ae3abfb8228b72b9fd9525279e5135d4962e79ff059feb1173","dweb:/ipfs/QmcbDR6E9wyEpu6V2FkEC4hnWy47zXA9LSKJde6zSGd33Q"],"license":"BUSL-1.1"},"src/interfaces/common/IEntity.sol":{"keccak256":"0x8ef4b63d6da63489778ccd5f8d13ebdd527dd4b62730b2c616df5af7474d2d21","urls":["bzz-raw://5a8d69576a9219d85c50816a18ad53a4d53cfcb27ed38b8cccc808dc2734b71b","dweb:/ipfs/QmYVN3P4Q4REvBWJ97TbAcaxm3uyB2anV6NSGa6ZtSwcEv"],"license":"MIT"},"src/interfaces/common/IMigratableEntity.sol":{"keccak256":"0x8f5f2809f3afbe8ebfbb365dd7b57b4dd3b6f9943a6187eaf648d45895b8e3c4","urls":["bzz-raw://0ffe640537d539e7a4fde70d30d3e4c57f4ba9c2c25c450cea713aae38e8fd5c","dweb:/ipfs/QmSUTGzvdcn1R1KB7tLThMRtESsfPbeXDhhhKWGtntzBds"],"license":"MIT"},"src/interfaces/common/IRegistry.sol":{"keccak256":"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb","urls":["bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014","dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK"],"license":"MIT"},"src/interfaces/common/IStaticDelegateCallable.sol":{"keccak256":"0xa335d4e81b9071b7de66ef92b43ff20671d86516eb1be46fef29a3483cd3f5d5","urls":["bzz-raw://d464b9db863c14c05547d2b23352f2e9b7b784799cf09f6bbc4906a2a74e3516","dweb:/ipfs/QmUVWzFvJz7eEbDQKiFTTzwi7TEbjcs3VmwdM4kuptAKvi"],"license":"MIT"},"src/interfaces/delegator/IBaseDelegator.sol":{"keccak256":"0x96bb312f032e17accce3f8f80936d99468029d6b37c9ca74acdb4b026a0148ee","urls":["bzz-raw://2a66dcb5b7d1a6ef6a363431ea98ebd78bc4fdd3d7a134d9b542dc66e7d025c2","dweb:/ipfs/QmRhTPLd2ZAyRHmJUFUcWKs9b3if49QY17LYZuRqWmghw8"],"license":"MIT"},"src/interfaces/delegator/IDelegatorHook.sol":{"keccak256":"0xc51aa8d7d1f6c8043ee819b7aeb86da0e993912e1442098df897e299f01f9f46","urls":["bzz-raw://adddf5cb2ba282aeb576b26efb28640f865a1721cc9b6eee8b3ee0457a2c9780","dweb:/ipfs/QmNYgAmnLRwWZbhTuQhZs9rx4zcme1df5mEepkrniorSoW"],"license":"MIT"},"src/interfaces/delegator/IFullRestakeDelegator.sol":{"keccak256":"0xa3c8cb2e45d4d8ce90e95263bea40c01dc400f05ad65bc29597d878606be5e7d","urls":["bzz-raw://782cf5e201aa4cca037ebafd3807a68ff1cc721d5b8416a35244db0d0607369e","dweb:/ipfs/QmQkJks6x7CKndeTPa9LxgTNygD5uEi7obhADhpq1Lsr9A"],"license":"MIT"},"src/interfaces/delegator/INetworkRestakeDelegator.sol":{"keccak256":"0xe7030fe30389a147fd710e3436ec346b4842695fd3e65a81b95375c9f1d633fc","urls":["bzz-raw://739c7e66d301778054f5c90bee45ec9438f68afba8a03eaaac52064c73b115ad","dweb:/ipfs/QmfZ2ytKcTykAc76nxhg8ikUXV8NdBpetqb8W4YWPcox1Z"],"license":"MIT"},"src/interfaces/delegator/IOperatorNetworkSpecificDelegator.sol":{"keccak256":"0x74b95e64d29769202d45dd277bb830f623ff3d41ce77b80ce3ee4e318a5c71ec","urls":["bzz-raw://e512b903aae5c1b8a028c6e3f4f6223b5cb5d704503cfa6bd37b5346868f5c20","dweb:/ipfs/QmZim9YExsPWtyxyeui993HTKAEmrg8MUcSkZ77Gp2JcuZ"],"license":"MIT"},"src/interfaces/delegator/IOperatorSpecificDelegator.sol":{"keccak256":"0x72075cab585dc17240cc3e32bc99b92f0d5627ddd988fed680e3e1a52d5a01e4","urls":["bzz-raw://7448bc90699409ae61d85216b5efc2143a37f0f73354be2aea993bc54afca441","dweb:/ipfs/QmXE4gAxM8pHosZK8mcTcj17puBx484meDCcmrDePskGHZ"],"license":"MIT"},"src/interfaces/service/IOptInService.sol":{"keccak256":"0x76fb5460a6d87a5705433d4fbeff7253cd75b8bbd0c888b2088f16e86ace146a","urls":["bzz-raw://990322019b3d11465f7024bae77ccbf7e2fe5d6fa3c754584778f37d04fa1337","dweb:/ipfs/QmaSNHzcqxTkUCG9a4nqVfLECHLdjdrwAnDi3yDC7tDL24"],"license":"MIT"},"src/interfaces/slasher/IBaseSlasher.sol":{"keccak256":"0x7c82528b445659c313ab77335c407b0b6efe5e79027187bb287f7bc74202b404","urls":["bzz-raw://0274c90aa5df1aa6bb470a6aab53992fb14fd7e5472c9430416505b29647d9cf","dweb:/ipfs/QmckbmJLDetPemVzCnnGcKYWAZV2BRFXGDsjiaec8jkHxx"],"license":"MIT"},"src/interfaces/vault/IVault.sol":{"keccak256":"0xffee01d383cd4e1a5530c614bf4360c1ef070c288abec9da1eb531b51bc07235","urls":["bzz-raw://04f0046cac285d8ec44ebbb1f79dc94fab4495767190cad8364fbc1fafaadfb9","dweb:/ipfs/QmUawAunwzXfCyShWfhKeThAgKtqe51hmrxvrXvM772M2R"],"license":"MIT"},"src/interfaces/vault/IVaultStorage.sol":{"keccak256":"0x592626f13754194f83047135de19229c49390bd59e34659b1bb38be71d973a22","urls":["bzz-raw://06a6a9dfddd05e580b32bebe2cff4f63ba26a653180676d58225dd30d9c89d3e","dweb:/ipfs/QmdgzBeY6Sxo8mGtyBxtv1tM1c2kU6J6zjeRd7vuXm4DU6"],"license":"MIT"}},"version":1},"id":81} \ No newline at end of file +{"abi":[{"type":"constructor","inputs":[{"name":"baseDelegatorHints","type":"address","internalType":"address"},{"name":"vaultHints","type":"address","internalType":"address"},{"name":"optInServiceHints","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"BASE_DELEGATOR_HINTS","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"DEFAULT_ADMIN_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"FACTORY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"HOOK_GAS_LIMIT","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"HOOK_RESERVE","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"HOOK_SET_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"NETWORK_LIMIT_SET_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"NETWORK_REGISTRY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"OPERATOR_NETWORK_LIMIT_SET_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"OPERATOR_NETWORK_OPT_IN_SERVICE","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"OPERATOR_VAULT_OPT_IN_SERVICE","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"OPT_IN_SERVICE_HINTS","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"TYPE","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"VAULT_FACTORY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"VAULT_HINTS","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"VERSION","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"pure"},{"type":"function","name":"getRoleAdmin","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"grantRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"hasRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"hook","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"initialize","inputs":[{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"maxNetworkLimit","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"value","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"networkLimit","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"networkLimitAt","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"timestamp","type":"uint48","internalType":"uint48"},{"name":"hint","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"networkLimitHint","inputs":[{"name":"delegator","type":"address","internalType":"address"},{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"timestamp","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"networkLimitHintInternal","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"timestamp","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"exists","type":"bool","internalType":"bool"},{"name":"hint","type":"uint32","internalType":"uint32"}],"stateMutability":"view"},{"type":"function","name":"onSlash","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"captureTimestamp","type":"uint48","internalType":"uint48"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"operatorNetworkLimit","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"operatorNetworkLimitAt","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"timestamp","type":"uint48","internalType":"uint48"},{"name":"hint","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"operatorNetworkLimitHint","inputs":[{"name":"delegator","type":"address","internalType":"address"},{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"timestamp","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"operatorNetworkLimitHintInternal","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"timestamp","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"exists","type":"bool","internalType":"bool"},{"name":"hint","type":"uint32","internalType":"uint32"}],"stateMutability":"view"},{"type":"function","name":"renounceRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"callerConfirmation","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"revokeRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setHook","inputs":[{"name":"hook_","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setMaxNetworkLimit","inputs":[{"name":"identifier","type":"uint96","internalType":"uint96"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setNetworkLimit","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setOperatorNetworkLimit","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"stake","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"stakeAt","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"timestamp","type":"uint48","internalType":"uint48"},{"name":"hints","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"stakeHints","inputs":[{"name":"delegator","type":"address","internalType":"address"},{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"timestamp","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"staticDelegateCall","inputs":[{"name":"target","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"vault","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"OnSlash","inputs":[{"name":"subnetwork","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"captureTimestamp","type":"uint48","indexed":false,"internalType":"uint48"}],"anonymous":false},{"type":"event","name":"RoleAdminChanged","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"previousAdminRole","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"newAdminRole","type":"bytes32","indexed":true,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"RoleGranted","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"sender","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"RoleRevoked","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"sender","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"SetHook","inputs":[{"name":"hook","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"SetMaxNetworkLimit","inputs":[{"name":"subnetwork","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"SetNetworkLimit","inputs":[{"name":"subnetwork","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"SetOperatorNetworkLimit","inputs":[{"name":"subnetwork","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"error","name":"AccessControlBadConfirmation","inputs":[]},{"type":"error","name":"AccessControlUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"neededRole","type":"bytes32","internalType":"bytes32"}]},{"type":"error","name":"AlreadySet","inputs":[]},{"type":"error","name":"CheckpointUnorderedInsertion","inputs":[]},{"type":"error","name":"DuplicateRoleHolder","inputs":[]},{"type":"error","name":"ExceedsMaxNetworkLimit","inputs":[]},{"type":"error","name":"ExternalCall","inputs":[]},{"type":"error","name":"InsufficientHookGas","inputs":[]},{"type":"error","name":"InvalidInitialization","inputs":[]},{"type":"error","name":"MissingRoleHolders","inputs":[]},{"type":"error","name":"NotInitialized","inputs":[]},{"type":"error","name":"NotInitializing","inputs":[]},{"type":"error","name":"NotNetwork","inputs":[]},{"type":"error","name":"NotSlasher","inputs":[]},{"type":"error","name":"NotVault","inputs":[]},{"type":"error","name":"ReentrancyGuardReentrantCall","inputs":[]},{"type":"error","name":"SafeCastOverflowedUintDowncast","inputs":[{"name":"bits","type":"uint8","internalType":"uint8"},{"name":"value","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ZeroAddressRoleHolder","inputs":[]}],"bytecode":{"object":"0x6101c0346101c857601f61357838819003918201601f19168301916001600160401b0391828411858510176101cc5781606092869260409687528339810103126101c85761004c836101e0565b926100648361005d602084016101e0565b92016101e0565b91306080527ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a009081549060ff82871c166101b7578080831603610173575b5050505f60a0525f60c0525f60e052610100935f8552610120935f8552610140905f82526101609283526101809384526101a0948552519461338396876101f58839608051878181610696015261148c015260a0518761092d015260c0518761114b015260e0518781816107a101526111840152518681816104e2015261266601525185818161064c01528181611be00152611d0f01525184818161071f01528181611b470152611d8d015251838181610ebc015261179a015251828181610c8f015261183b0152518161104f0152f35b6001600160401b0319909116811790915583519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a15f80806100a2565b855163f92ee8a960e01b8152600490fd5b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b51906001600160a01b03821682036101c85756fe60806040526004361015610011575f80fd5b5f3560e01c806301ffc9a7146102c4578063020cf0c2146102bf57806302145348146102ba578063103f2907146102b557806310a28b5d146102b057806311422095146102ab578063128e5d82146102a6578063197aa7ea146102a15780631a80e5001461029c57806323f752d514610297578063248a9ca31461029257806325dc97081461028d5780632dd31000146102885780632f2ff15d1461028357806336568abe1461027e5780633dfd3873146102795780633eb22c0f14610274578063439fab911461026f57806345e78fcb1461026a578063518504ba14610265578063557cab44146102605780635d32a1c91461025b5780636679191e1461025657806379d89614146102515780637d24bb271461024c5780637f5a7c7b1461024757806391d148541461024257806394d2558a1461023d5780639b656b22146102385780639f86fd8514610233578063a217fddf1461022e578063bb24fe8a14610229578063c0cd7c3e14610224578063d15b740e1461021f578063d547741f1461021a578063da749d2b14610215578063e02f693714610210578063e49561ee1461020b578063f7b0554714610206578063fbfa77cf14610201578063fd4d447c146101fc578063ff54740f146101f75763ffa1ad74146101f2575f80fd5b611557565b61153a565b611510565b6114e9565b611465565b61127a565b61125e565b611229565b6111dd565b6111b3565b61116f565b61112c565b611112565b61107e565b61103a565b610ffc565b610f4c565b610f24565b610eeb565b610ea7565b610e6d565b610e1c565b610cf8565b610cbe565b610c7a565b610b42565b610aec565b6109f3565b6109a8565b61095c565b610918565b6108fb565b6108c2565b61074e565b61070a565b61067b565b610637565b6105e8565b6105b3565b6104cd565b610410565b61032f565b3461031a57602036600319011261031a5760043563ffffffff60e01b811680910361031a57602090637965db0b60e01b8114908115610309575b506040519015158152f35b6301ffc9a760e01b1490505f6102fe565b5f80fd5b6001600160a01b0381160361031a57565b3461031a57606036600319011261031a5760243560043561034f8261031e565b6044359161035b611e02565b815f526004602052826103896103848360405f209060018060a01b03165f5260205260405f2090565b6120b3565b146103fe5760207ffc9545f07ffadfb668efd0144cdcaf2d6e2c8192dce1ea9fc131934f9c90fc7e91835f52600482526103e9856103da8360405f209060018060a01b03165f5260205260405f2090565b6103e342612b0e565b90611f58565b50506040519485526001600160a01b031693a3005b60405163a741a04560e01b8152600490fd5b3461031a5760408060031936011261031a576004359060243590610432611e5f565b825f526002602052805f205482116104bd57825f52600360205281610458825f206120b3565b146104ad57816104a8916104987e899d104fc3d8820bd96540612bcc5c448c8837b13b9f7faa43ad0728f0c14f946103da875f52600360205260405f2090565b5050519081529081906020820190565b0390a2005b5163a741a04560e01b8152600490fd5b51631eefc06360e31b8152600490fd5b3461031a575f36600319011261031a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b6024359065ffffffffffff8216820361031a57565b6044359065ffffffffffff8216820361031a57565b6064359065ffffffffffff8216820361031a57565b608090600319011261031a576004356105688161031e565b90602435906044356105798161031e565b9060643565ffffffffffff8116810361031a5790565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b3461031a576105e46105d06105c736610550565b929190916115b1565b60405191829160208352602083019061058f565b0390f35b3461031a57604036600319011261031a57602061062f61038460243561060d8161031e565b6004355f526004845260405f209060018060a01b03165f5260205260405f2090565b604051908152f35b3461031a575f36600319011261031a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461031a57604036600319011261031a57610694610511565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633036106f8576106db906004355f52600360205260405f20612124565b60408051941515855263ffffffff91909116602085015292915050f35b604051637ca475e560e11b8152600490fd5b3461031a575f36600319011261031a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461031a57604036600319011261031a576004356001600160601b038116810361031a576024359061077e612229565b6040516302910f8b60e31b81523360048201526020816024816001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165afa9081156108bd575f9161088e575b501561087c576001600160601b03166bffffffffffffffffffffffff193360601b16179080610808835f52600260205260405f2090565b54146103fe57610861817fc67e7929681aa1bccd63f52b3799bf5805f3009f197db6fdf584b14f7fbf608c92610846855f52600260205260405f2090565b556108518185612258565b6040519081529081906020820190565b0390a261087a60015f8051602061330e83398151915255565b005b6040516323d53b9760e21b8152600490fd5b6108b0915060203d6020116108b6575b6108a88183610d7e565b810190611649565b5f6107d1565b503d61089e565b61165d565b3461031a57602036600319011261031a576004355f525f805160206132ee8339815191526020526020600160405f200154604051908152f35b3461031a576105e46105d061090f36610550565b9291909161174e565b3461031a575f36600319011261031a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461031a57604036600319011261031a5761087a60243560043561097f8261031e565b805f525f805160206132ee8339815191526020526109a3600160405f200154611eb5565b612533565b3461031a57604036600319011261031a576024356109c58161031e565b336001600160a01b038216036109e15761087a90600435612569565b60405163334bd91960e11b8152600490fd5b3461031a57602036600319011261031a57600435610a108161031e565b610a18612229565b335f9081527f9ebbcbe0d2961d3fbe56ca6f679bc753bd848d3e6bb3eaf9041c51b286881d2c60205260409020547fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c9060ff1615610ace57506001546001600160a01b0391821691811682146103fe576001600160a01b03191681176001557f5bbb1d3ebb6a3ad2a0f17ff35e579a83af60604d1d3c2a4c83c62adecadf666d5f80a260015f8051602061330e83398151915255005b6044906040519063e2517d3f60e01b82523360048301526024820152fd5b3461031a57602036600319011261031a576004355f526003602052602061062f60405f206120b3565b9181601f8401121561031a578235916001600160401b03831161031a576020838186019501011161031a57565b3461031a57602036600319011261031a576001600160401b0360043581811161031a57610b73903690600401610b15565b5f8051602061332e833981519152549260ff8460401c1615931680159081610c72575b6001149081610c68575b159081610c5f575b50610c4d575f8051602061332e833981519152805467ffffffffffffffff19166001179055610bdb9183610c2957612631565b610be157005b5f8051602061332e833981519152805460ff60401b19169055604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a1005b5f8051602061332e833981519152805460ff60401b1916600160401b179055612631565b60405163f92ee8a960e01b8152600490fd5b9050155f610ba8565b303b159150610ba0565b849150610b96565b3461031a575f36600319011261031a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461031a575f36600319011261031a5760206040517f15e7c882d74e8821ebf34aaff46fd0e1d53b9393d91490019124113d28dc32a38152f35b3461031a575f36600319011261031a576020604051614e208152f35b634e487b7160e01b5f52604160045260245ffd5b604081019081106001600160401b03821117610d4357604052565b610d14565b606081019081106001600160401b03821117610d4357604052565b608081019081106001600160401b03821117610d4357604052565b90601f801991011681019081106001600160401b03821117610d4357604052565b60405190610dac82610d63565b565b60405190610dac82610d28565b6001600160401b038111610d4357601f01601f191660200190565b81601f8201121561031a57803590610ded82610dbb565b92610dfb6040519485610d7e565b8284526020838301011161031a57815f926020809301838601378301015290565b3461031a57606036600319011261031a57610e35610511565b6044356001600160401b03811161031a57602091610e5a61062f923690600401610dd6565b906004355f526003845260405f20612798565b3461031a575f36600319011261031a5760206040517fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c8152f35b3461031a575f36600319011261031a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461031a575f36600319011261031a5760206040517e8b9b1e5fa9cf3b14f87f435649268146305ddf689f082e5961a335b07a9abf8152f35b3461031a575f36600319011261031a576001546040516001600160a01b039091168152602090f35b3461031a57604036600319011261031a57602060ff610f9e602435610f708161031e565b6004355f525f805160206132ee833981519152845260405f209060018060a01b03165f5260205260405f2090565b54166040519015158152f35b90608060031983011261031a5760043591602435610fc78161031e565b9160443565ffffffffffff8116810361031a5791606435906001600160401b03821161031a57610ff991600401610dd6565b90565b3461031a57602061062f61103561101236610faa565b939190925f526004865260405f209060018060a01b03165f5260205260405f2090565b612798565b3461031a575f36600319011261031a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461031a57604036600319011261031a5760043561109b8161031e565b6024356001600160401b03811161031a575f916110bd83923690600401610b15565b90816040519283928337810184815203915af461110a6110db6119a3565b916110fc60405193849215156020840152604080840152606083019061058f565b03601f198101835282610d7e565b805190602001fd5b3461031a575f36600319011261031a5760206040515f8152f35b3461031a575f36600319011261031a5760206040516001600160401b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461031a575f36600319011261031a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461031a57602036600319011261031a576004355f526002602052602060405f2054604051908152f35b3461031a57604036600319011261031a5761087a6024356004356112008261031e565b805f525f805160206132ee833981519152602052611224600160405f200154611eb5565b612569565b3461031a57606036600319011261031a576105e46105d060043561124c8161031e565b611254610526565b90602435906119d2565b3461031a57602061062f61127136610faa565b92919091611ad1565b3461031a5760a036600319011261031a5760243560043561129a8261031e565b604435916112a661053b565b90608435906001600160401b03821161031a576112c860049236908401610dd6565b6112d0612229565b5f546020906112f5906112e9906001600160a01b031681565b6001600160a01b031690565b60405163b134427160e01b815294859182905afa9283156108bd575f93611434575b506001600160a01b039283163303611422576001546001600160a01b0316838116611397575b50506040805195865265ffffffffffff909316602086015216927f741a5de99085c0d660f3e4192217b0ffb0ea4e35a0480de48e857a4bc3ee36ed91819081015b0390a361087a60015f8051602061330e83398151915255565b9093604051946113ce866113c0602082019363724ab0f760e11b8552858c898d60248701611c5b565b03601f198101885287610d7e565b62042e305a10611410575f61137e938192827f741a5de99085c0d660f3e4192217b0ffb0ea4e35a0480de48e857a4bc3ee36ed9951926203d090f1509361133d565b604051638072475160e01b8152600490fd5b60405163dabc4ad960e01b8152600490fd5b61145791935060203d60201161145e575b61144f8183610d7e565b8101906116d3565b915f611317565b503d611445565b3461031a57606036600319011261031a576024356114828161031e565b61148a610526565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633036106f8576114e46106db926004355f52600460205260405f209060018060a01b03165f5260205260405f2090565b612124565b3461031a575f36600319011261031a575f546040516001600160a01b039091168152602090f35b3461031a57604036600319011261031a57602061062f6024356115328161031e565b600435611cd8565b3461031a575f36600319011261031a5760206040516203d0908152f35b3461031a575f36600319011261031a57602060405160018152f35b5190811515820361031a57565b519063ffffffff8216820361031a57565b919082604091031261031a57610ff960206115aa84611572565b930161157f565b91939265ffffffffffff906060956040519363f7b0554760e01b6020860152602485015260018060a01b031660448401521660648201526064815260a08101908082106001600160401b03831117610d4357611622926116139260405261201a565b60208082518301019101611590565b9061162a5750565b90915063ffffffff6040519116602082015260208152610ff981610d28565b9081602091031261031a57610ff990611572565b6040513d5f823e3d90fd5b81601f8201121561031a5780519061167f82610dbb565b9261168d6040519485610d7e565b8284526020838301011161031a57815f9260208093018386015e8301015290565b9060208282031261031a5781516001600160401b03811161031a57610ff99201611668565b9081602091031261031a5751610ff98161031e565b90610ff9916020815261170782516080602084015260a083019061058f565b906080606061173e61172b602087015195601f19968787830301604088015261058f565b604087015186868303018487015261058f565b940151928285030191015261058f565b604051630df8851f60e11b81526001600160a01b03828116600483015260248201849052848116604483015265ffffffffffff8616606483015295606095909491939091905f856084817f00000000000000000000000000000000000000000000000000000000000000008c165afa9485156108bd575f95611945575b5060405163fbfa77cf60e01b8152602081600481888d165afa9081156108bd57611837995f9286928491611926575b5060405163192c0ff760e21b81526001600160a01b03909116600482015265ffffffffffff909216602483015290998a9190829081906044820190565b03917f0000000000000000000000000000000000000000000000000000000000000000165afa9788156108bd575f986118fa575b50908161187d846118839594876119d2565b946115b1565b908251158015906118f0575b80156118e6575b80156118dc575b6118a957505050909150565b6110fc9450610ff993956118bb610d9f565b938452602084015260408301526060820152604051928391602083016116e8565b508151151561189d565b5080511515611896565b508551151561188f565b611883939291985061191d903d805f833e6119158183610d7e565b8101906116ae565b9790919261186b565b61193f915060203d60201161145e5761144f8183610d7e565b5f6117fa565b61195a9195503d805f833e6119158183610d7e565b935f6117cb565b90610ff992915f52600360205260405f20612798565b5f9081526004602090815260408083206001600160a01b03909416835292905220610ff9929190612798565b3d156119cd573d906119b482610dbb565b916119c26040519384610d7e565b82523d5f602084013e565b606090565b611622916116139194939465ffffffffffff60609660405193630cbd53f560e11b6020860152602485015216604483015260448252611a1082610d63565b61201a565b60405190611a2282610d28565b60606020838281520152565b9060208282031261031a5781516001600160401b039283821161031a57019060408282031261031a5760405192611a6484610d28565b825181811161031a5782611a79918501611668565b8452602083015190811161031a57611a919201611668565b602082015290565b6001600160a01b0391821681529116602082015265ffffffffffff9091166040820152608060608201819052610ff99291019061058f565b92611ae190929192828486612973565b929093611aec611a15565b93805180611c3f575b50508415938415611ba9575b8415611b18575b50505050611b135790565b505f90565b602080949550611b43910151604051958694859463530e1d4360e01b865260601c9060048601611a99565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa9081156108bd575f91611b8a575b50155f808080611b08565b611ba3915060203d6020116108b6576108a88183610d7e565b5f611b7f565b5f549094506001600160a01b0316602084865192611bdc604051948593849363530e1d4360e01b85528960048601611a99565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa9081156108bd575f91611c20575b501593611b01565b611c39915060203d6020116108b6576108a88183610d7e565b5f611c18565b611c53929550602080918301019101611a2e565b925f80611af5565b919360a093610ff9969565ffffffffffff938552600180871b031660208501526040840152166060820152816080820152019061058f565b634e487b7160e01b5f52601160045260245ffd5b8115611cb1570490565b634e487b7160e01b5f52601260045260245ffd5b9060018201809211611cd357565b611c93565b5f546040516308834cb560e21b8082526001600160a01b0385811660048401529283166024830152929392602092909183816044817f000000000000000000000000000000000000000000000000000000000000000086165afa9081156108bd575f91611de5575b5015918215611d61575b50509050611d5b57610ff991612a68565b50505f90565b6040519081526001600160a01b0385166004820152606086901c602482015291508290829060449082907f0000000000000000000000000000000000000000000000000000000000000000165afa9182156108bd575f92611dc8575b505015805f80611d4a565b611dde9250803d106108b6576108a88183610d7e565b5f80611dbd565b611dfc9150843d86116108b6576108a88183610d7e565b5f611d40565b335f9081527f24e48de785eeca8420b70f73d267a66970ccc187d459f2a4b53e74ed92a5ab86602052604090207f15e7c882d74e8821ebf34aaff46fd0e1d53b9393d91490019124113d28dc32a39060ff905b541615610ace5750565b335f9081527f72a65082a5691803ab2b62c9bc729b34205ba1b183d950896526b2fd8714d0c7602052604090207e8b9b1e5fa9cf3b14f87f435649268146305ddf689f082e5961a335b07a9abf9060ff90611e55565b5f8181525f805160206132ee83398151915260209081526040808320338452909152902060ff90611e55565b634e487b7160e01b5f52603260045260245ffd5b8054821015611f0a575f5260205f2001905f90565b611ee1565b90815491600160401b831015610d435782611f32916001610dac95018155611ef5565b90919082549060031b91821b915f19901b1916179055565b5f19810191908211611cd357565b90929192600182019081548015611fea575b5084611f7584612b40565b50949092845493611f85836120b3565b9681611fd5575b5015611fb2575050505f198101908111611cd357611f328591611fae93611ef5565b9190565b611fae949293611fce926001600160d01b0390911691906131a9565b5050611f0f565b65ffffffffffff83811691161490505f611f8c565b600160401b811015610d43578060016120069201845583611ef5565b8154905f199060031b1b191690555f611f6a565b5f9190829160405161204f816110fc6020820194639f86fd8560e01b865230602484015260406044840152606483019061058f565b51915afa5061205c6119a3565b8051810160408282031261031a5761207660208301611572565b916040810151916001600160401b03831161031a5761209c926020809201920101611668565b90156120a55790565b805190811561031a57602001fd5b8054806120e257505f5b6001600160d01b03811615611d5b5760016120d89201611ef5565b90549060031b1c90565b5f19908082810111611cd357825f5260205f2001015460301c6120bd565b9060405161210d81610d28565b915465ffffffffffff8116835260301c6020830152565b91908254905f8291600584116121c2575b612140935085612cc2565b9081156121b6576121af6121a66121a06120d861217261216d61216288611f4a565b895f5260205f200190565b612100565b966001612199602061218a8b5165ffffffffffff1690565b9a01516001600160d01b031690565b9101611ef5565b93611f4a565b63ffffffff1690565b6001939291565b5f925082915081908190565b91926121cd81612b8f565b8103908111611cd35761214093865f526122016121f68360205f200165ffffffffffff90541690565b65ffffffffffff1690565b65ffffffffffff85161015612217575091612135565b92915061222390611cc5565b90612135565b5f8051602061330e83398151915260028154146122465760029055565b604051633ee5aeb560e01b8152600490fd5b90815f52600360205260405f208161226f82612b40565b9193905083156122cd5761228f916001600160d01b031690600101611ef5565b90549060031b1c5b826122c3575b50506122a7575050565b6122bf915f52600360205260405f206103e342612b0e565b5050565b119050815f61229d565b50505f612297565b6001600160a01b0381165f9081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d60205260409020545f805160206132ee8339815191529060ff16611d5b575f808052602091825260408082206001600160a01b038516835290925220805460ff1916600117905533906001600160a01b03165f7f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d8180a4600190565b6001600160a01b0381165f9081527f9ebbcbe0d2961d3fbe56ca6f679bc753bd848d3e6bb3eaf9041c51b286881d2c602052604090207fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c905f805160206132ee8339815191529060ff905b541661244f575f828152602091825260408082206001600160a01b038616835290925220805460ff1916600117905533916001600160a01b0316907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d5f80a4600190565b5050505f90565b6001600160a01b0381165f9081527f72a65082a5691803ab2b62c9bc729b34205ba1b183d950896526b2fd8714d0c7602052604090207e8b9b1e5fa9cf3b14f87f435649268146305ddf689f082e5961a335b07a9abf905f805160206132ee8339815191529060ff906123eb565b6001600160a01b0381165f9081527f24e48de785eeca8420b70f73d267a66970ccc187d459f2a4b53e74ed92a5ab86602052604090207f15e7c882d74e8821ebf34aaff46fd0e1d53b9393d91490019124113d28dc32a3905f805160206132ee8339815191529060ff906123eb565b5f8181525f805160206132ee833981519152602081815260408084206001600160a01b038716855290915290912060ff906123eb565b5f8181525f805160206132ee833981519152602081815260408084206001600160a01b03871685529091529091205460ff161561244f575f828152602091825260408082206001600160a01b038616835290925220805460ff1916905533916001600160a01b0316907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b5f80a4600190565b91909160408184031261031a5780356126138161031e565b9260208201356001600160401b03811161031a57610ff99201610dd6565b61263d918101906125fb565b6040516302910f8b60e31b81526001600160a01b039283166004820181905291906020816024817f000000000000000000000000000000000000000000000000000000000000000088165afa9081156108bd575f91612750575b501561273e576126d26040916126cd612718946126b2612d24565b60018060a01b03166001600160601b0360a01b5f5416175f55565b612ea4565b6020810151600180546001600160a01b0319166001600160a01b0390921691909117905580516001600160a01b031684811661272e575b5001516001600160a01b031690565b9081166127225750565b61272b90612380565b50565b612737906122d5565b505f612709565b6040516362df054560e01b8152600490fd5b612769915060203d6020116108b6576108a88183610d7e565b5f612697565b9081602091031261031a57610ff99061157f565b90600163ffffffff80931601918211611cd357565b9180511561286657806020806127b39351830101910161276f565b916127be83826130d4565b926127cf845165ffffffffffff1690565b9065ffffffffffff808516921682811461285a5782119182612805575b50506127fc57610ff99250613004565b50506020015190565b9091506128128354611f4a565b63ffffffff83161491821561282b575b50505f806127ec565b6128529192506128466128406121f692612783565b856130d4565b5165ffffffffffff1690565b115f80612822565b50505050506020015190565b50610ff991613004565b60405190608082018281106001600160401b03821117610d4357604052606080838181528160208201528160408201520152565b9060208282031261031a5781516001600160401b039283821161031a57019060808282031261031a576128d5610d9f565b92825181811161031a57826128eb918501611668565b8452602083015181811161031a5782612905918501611668565b6020850152604083015181811161031a5782612922918501611668565b6040850152606083015190811161031a5761293d9201611668565b606082015290565b9081602091031261031a575190565b60409065ffffffffffff610ff99493168152816020820152019061058f565b9391909361297f612870565b93805180612a48575b50506129c992939460206129a86112e96112e95f5460018060a01b031690565b8188015190604051808098819463810da75d60e01b83528960048401612954565b03915afa9182156108bd57612a0a945f93612a0f575b50612a0490612a0493946129f860408a01518284611961565b9360608a015192611977565b9061313c565b915190565b612a04935090612a39612a049260203d602011612a41575b612a318183610d7e565b810190612945565b9350906129df565b503d612a27565b6129c994955090602080612a609383010191016128a4565b93925f612988565b5f5460405163bd49c35f60e01b8152929190602090849060049082906001600160a01b03165afa9081156108bd57610ff9935f92612ae3575b50612a04610384612a049394612ac2610384855f52600360205260405f2090565b935f52600460205260405f209060018060a01b03165f5260205260405f2090565b612a049250610384612b06612a049260203d602011612a4157612a318183610d7e565b935050612aa1565b65ffffffffffff90818111612b21571690565b604490604051906306dfcc6560e41b8252603060048301526024820152fd5b805480612b515750505f905f905f90565b5f19908082810111611cd357612b6e925f5260205f200101612100565b9065ffffffffffff82511691602060018060d01b0391015116906001929190565b8015611b135780612a04612c5a612c50612c46612c3c612c32612c28612c1e6001610ff99a5f908b60801c80612cb6575b508060401c80612ca9575b508060201c80612c9c575b508060101c80612c8f575b508060081c80612c82575b508060041c80612c75575b508060021c80612c68575b50821c612c61575b811c1b612c17818b611ca7565b0160011c90565b612c17818a611ca7565b612c178189611ca7565b612c178188611ca7565b612c178187611ca7565b612c178186611ca7565b612c178185611ca7565b8092611ca7565b8101612c0a565b600291509101905f612c02565b600491509101905f612bf7565b600891509101905f612bec565b601091509101905f612be1565b602091509101905f612bd6565b604091509101905f612bcb565b9150506080905f612bc0565b91905b838210612cd25750505090565b909192808316906001818518811c8301809311611cd357855f5265ffffffffffff808460205f20015416908516105f14612d11575050925b9190612cc5565b909493508101809111611cd35791612d0a565b612d2c6132bf565b612d346132bf565b60015f8051602061330e83398151915255565b60405190612d5482610d48565b5f6040838281528260208201520152565b81601f8201121561031a578051916020916001600160401b038411610d43578360051b9060405194612d9985840187610d7e565b8552838086019282010192831161031a578301905b828210612dbc575050505090565b8380918351612dca8161031e565b815201910190612dae565b9060208282031261031a5781516001600160401b039283821161031a5701908181039260a0841261031a57606060405194612e0f86610d48565b1261031a57604051612e2081610d48565b8351612e2b8161031e565b81526020840151612e3b8161031e565b60208201526040840151612e4e8161031e565b60408201528452606083015181811161031a5782612e6d918501612d65565b6020850152608083015190811161031a57612e889201612d65565b604082015290565b8051821015611f0a5760209160051b010190565b612ec090612eb0612d47565b5060208082518301019101612dd5565b8051519091906001600160a01b03161580612fea575b612fd8579060208101905f5b82518051821015612f5c576112e9612efd83612f0a93612e90565b516001600160a01b031690565b15612f4a57612f2c612f28612f23612efd848751612e90565b612456565b1590565b612f3857600101612ee2565b604051635140fefd60e11b8152600490fd5b6040516323cda06760e01b8152600490fd5b506040925050818101905f5b82518051821015612fcf576112e9612efd83612f8393612e90565b15612fbe57612fa1612f28612f9c612efd848751612e90565b6124c4565b612fad57600101612f68565b8351635140fefd60e11b8152600490fd5b83516323cda06760e01b8152600490fd5b50509150505190565b6040516303501f5960e11b8152600490fd5b506020820151511580612ed6575060408201515115612ed6565b908154905f82916005841161306e575b61301f935084612cc2565b8061304757505f905b6001600160d01b03821615611d5b57610ff99160016120d89201611ef5565b61306161305661306892611f4a565b835f5260205f200190565b5460301c90565b90613028565b919261307981612b8f565b8103908111611cd35761301f93855f5265ffffffffffff808360205f20015416908516105f146130aa575091613014565b9291506130b690611cc5565b90613014565b604051906130c982610d28565b5f6020838281520152565b906130fd6130f761311e926130e76130bc565b506130f06130bc565b5084611ef5565b50612100565b91600165ffffffffffff845116936020828060d01b03910151169101611ef5565b9054906040519261312e84610d28565b835260031b1c602082015290565b9080821015613149575090565b905090565b8054600160401b811015610d435761316b91600182018155611ef5565b61319657815160209092015160301b65ffffffffffff191665ffffffffffff92909216919091179055565b634e487b7160e01b5f525f60045260245ffd5b805492939291908215613296576131c561216d61305685611f4a565b906131d6825165ffffffffffff1690565b65ffffffffffff8481169116811061328457611fae9460209488926132046121f6875165ffffffffffff1690565b0361324c575061323e9261321a61322592611f4a565b905f5260205f200190565b9065ffffffffffff82549181199060301b169116179055565b01516001600160d01b031690565b91505061327f9161326c61325e610dae565b65ffffffffffff9093168352565b6001600160d01b0388168286015261314e565b61323e565b604051632520601d60e01b8152600490fd5b6132ba92506132a661325e610dae565b6001600160d01b038516602083015261314e565b5f9190565b60ff5f8051602061332e8339815191525460401c16156132db57565b604051631afcd79f60e31b8152600490fdfe02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268009b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a2646970667358221220b421717b7d05d309a1df30bec4959e6ea43c0ac83de4ab4b577f6f1e9cb2fa1664736f6c63430008190033","sourceMap":"7866:3473:86:-:0;;;;;;;;;;;;;-1:-1:-1;;7866:3473:86;;;;-1:-1:-1;;;;;7866:3473:86;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;:::i;:::-;348:4:87;;332:21;;8837:64:26;7866:3473:86;;;;;;;;;7896:76:26;;7866:3473:86;;;;7985:34:26;7981:146;;-1:-1:-1;525:17:74;;;-1:-1:-1;525:17:74;;-1:-1:-1;552:12:74;;-1:-1:-1;2360:34:81;;2404:28;;-1:-1:-1;2404:28:81;;2442:57;;-1:-1:-1;2442:57:81;;2509:61;;-1:-1:-1;2509:61:81;;8343:41:86;;;;8394:24;;;;8428:40;;;;7866:3473;;;;;;;;332:21:87;7866:3473:86;;;;;;;;;;525:17:74;7866:3473:86;;;;;552:12:74;7866:3473:86;;;;;2360:34:81;7866:3473:86;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7981:146:26;-1:-1:-1;;;;;;7866:3473:86;;;;;;;;;;;;;8087:29:26;;7866:3473:86;;8087:29:26;7981:146;;;;;7896:76;7866:3473:86;;-1:-1:-1;;;7938:23:26;;;;;7866:3473:86;-1:-1:-1;7866:3473:86;;;;;;-1:-1:-1;7866:3473:86;;;;;-1:-1:-1;7866:3473:86;;;;-1:-1:-1;;;;;7866:3473:86;;;;;;:::o","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361015610011575f80fd5b5f3560e01c806301ffc9a7146102c4578063020cf0c2146102bf57806302145348146102ba578063103f2907146102b557806310a28b5d146102b057806311422095146102ab578063128e5d82146102a6578063197aa7ea146102a15780631a80e5001461029c57806323f752d514610297578063248a9ca31461029257806325dc97081461028d5780632dd31000146102885780632f2ff15d1461028357806336568abe1461027e5780633dfd3873146102795780633eb22c0f14610274578063439fab911461026f57806345e78fcb1461026a578063518504ba14610265578063557cab44146102605780635d32a1c91461025b5780636679191e1461025657806379d89614146102515780637d24bb271461024c5780637f5a7c7b1461024757806391d148541461024257806394d2558a1461023d5780639b656b22146102385780639f86fd8514610233578063a217fddf1461022e578063bb24fe8a14610229578063c0cd7c3e14610224578063d15b740e1461021f578063d547741f1461021a578063da749d2b14610215578063e02f693714610210578063e49561ee1461020b578063f7b0554714610206578063fbfa77cf14610201578063fd4d447c146101fc578063ff54740f146101f75763ffa1ad74146101f2575f80fd5b611557565b61153a565b611510565b6114e9565b611465565b61127a565b61125e565b611229565b6111dd565b6111b3565b61116f565b61112c565b611112565b61107e565b61103a565b610ffc565b610f4c565b610f24565b610eeb565b610ea7565b610e6d565b610e1c565b610cf8565b610cbe565b610c7a565b610b42565b610aec565b6109f3565b6109a8565b61095c565b610918565b6108fb565b6108c2565b61074e565b61070a565b61067b565b610637565b6105e8565b6105b3565b6104cd565b610410565b61032f565b3461031a57602036600319011261031a5760043563ffffffff60e01b811680910361031a57602090637965db0b60e01b8114908115610309575b506040519015158152f35b6301ffc9a760e01b1490505f6102fe565b5f80fd5b6001600160a01b0381160361031a57565b3461031a57606036600319011261031a5760243560043561034f8261031e565b6044359161035b611e02565b815f526004602052826103896103848360405f209060018060a01b03165f5260205260405f2090565b6120b3565b146103fe5760207ffc9545f07ffadfb668efd0144cdcaf2d6e2c8192dce1ea9fc131934f9c90fc7e91835f52600482526103e9856103da8360405f209060018060a01b03165f5260205260405f2090565b6103e342612b0e565b90611f58565b50506040519485526001600160a01b031693a3005b60405163a741a04560e01b8152600490fd5b3461031a5760408060031936011261031a576004359060243590610432611e5f565b825f526002602052805f205482116104bd57825f52600360205281610458825f206120b3565b146104ad57816104a8916104987e899d104fc3d8820bd96540612bcc5c448c8837b13b9f7faa43ad0728f0c14f946103da875f52600360205260405f2090565b5050519081529081906020820190565b0390a2005b5163a741a04560e01b8152600490fd5b51631eefc06360e31b8152600490fd5b3461031a575f36600319011261031a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b6024359065ffffffffffff8216820361031a57565b6044359065ffffffffffff8216820361031a57565b6064359065ffffffffffff8216820361031a57565b608090600319011261031a576004356105688161031e565b90602435906044356105798161031e565b9060643565ffffffffffff8116810361031a5790565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b3461031a576105e46105d06105c736610550565b929190916115b1565b60405191829160208352602083019061058f565b0390f35b3461031a57604036600319011261031a57602061062f61038460243561060d8161031e565b6004355f526004845260405f209060018060a01b03165f5260205260405f2090565b604051908152f35b3461031a575f36600319011261031a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461031a57604036600319011261031a57610694610511565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633036106f8576106db906004355f52600360205260405f20612124565b60408051941515855263ffffffff91909116602085015292915050f35b604051637ca475e560e11b8152600490fd5b3461031a575f36600319011261031a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461031a57604036600319011261031a576004356001600160601b038116810361031a576024359061077e612229565b6040516302910f8b60e31b81523360048201526020816024816001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165afa9081156108bd575f9161088e575b501561087c576001600160601b03166bffffffffffffffffffffffff193360601b16179080610808835f52600260205260405f2090565b54146103fe57610861817fc67e7929681aa1bccd63f52b3799bf5805f3009f197db6fdf584b14f7fbf608c92610846855f52600260205260405f2090565b556108518185612258565b6040519081529081906020820190565b0390a261087a60015f8051602061330e83398151915255565b005b6040516323d53b9760e21b8152600490fd5b6108b0915060203d6020116108b6575b6108a88183610d7e565b810190611649565b5f6107d1565b503d61089e565b61165d565b3461031a57602036600319011261031a576004355f525f805160206132ee8339815191526020526020600160405f200154604051908152f35b3461031a576105e46105d061090f36610550565b9291909161174e565b3461031a575f36600319011261031a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461031a57604036600319011261031a5761087a60243560043561097f8261031e565b805f525f805160206132ee8339815191526020526109a3600160405f200154611eb5565b612533565b3461031a57604036600319011261031a576024356109c58161031e565b336001600160a01b038216036109e15761087a90600435612569565b60405163334bd91960e11b8152600490fd5b3461031a57602036600319011261031a57600435610a108161031e565b610a18612229565b335f9081527f9ebbcbe0d2961d3fbe56ca6f679bc753bd848d3e6bb3eaf9041c51b286881d2c60205260409020547fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c9060ff1615610ace57506001546001600160a01b0391821691811682146103fe576001600160a01b03191681176001557f5bbb1d3ebb6a3ad2a0f17ff35e579a83af60604d1d3c2a4c83c62adecadf666d5f80a260015f8051602061330e83398151915255005b6044906040519063e2517d3f60e01b82523360048301526024820152fd5b3461031a57602036600319011261031a576004355f526003602052602061062f60405f206120b3565b9181601f8401121561031a578235916001600160401b03831161031a576020838186019501011161031a57565b3461031a57602036600319011261031a576001600160401b0360043581811161031a57610b73903690600401610b15565b5f8051602061332e833981519152549260ff8460401c1615931680159081610c72575b6001149081610c68575b159081610c5f575b50610c4d575f8051602061332e833981519152805467ffffffffffffffff19166001179055610bdb9183610c2957612631565b610be157005b5f8051602061332e833981519152805460ff60401b19169055604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a1005b5f8051602061332e833981519152805460ff60401b1916600160401b179055612631565b60405163f92ee8a960e01b8152600490fd5b9050155f610ba8565b303b159150610ba0565b849150610b96565b3461031a575f36600319011261031a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461031a575f36600319011261031a5760206040517f15e7c882d74e8821ebf34aaff46fd0e1d53b9393d91490019124113d28dc32a38152f35b3461031a575f36600319011261031a576020604051614e208152f35b634e487b7160e01b5f52604160045260245ffd5b604081019081106001600160401b03821117610d4357604052565b610d14565b606081019081106001600160401b03821117610d4357604052565b608081019081106001600160401b03821117610d4357604052565b90601f801991011681019081106001600160401b03821117610d4357604052565b60405190610dac82610d63565b565b60405190610dac82610d28565b6001600160401b038111610d4357601f01601f191660200190565b81601f8201121561031a57803590610ded82610dbb565b92610dfb6040519485610d7e565b8284526020838301011161031a57815f926020809301838601378301015290565b3461031a57606036600319011261031a57610e35610511565b6044356001600160401b03811161031a57602091610e5a61062f923690600401610dd6565b906004355f526003845260405f20612798565b3461031a575f36600319011261031a5760206040517fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c8152f35b3461031a575f36600319011261031a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461031a575f36600319011261031a5760206040517e8b9b1e5fa9cf3b14f87f435649268146305ddf689f082e5961a335b07a9abf8152f35b3461031a575f36600319011261031a576001546040516001600160a01b039091168152602090f35b3461031a57604036600319011261031a57602060ff610f9e602435610f708161031e565b6004355f525f805160206132ee833981519152845260405f209060018060a01b03165f5260205260405f2090565b54166040519015158152f35b90608060031983011261031a5760043591602435610fc78161031e565b9160443565ffffffffffff8116810361031a5791606435906001600160401b03821161031a57610ff991600401610dd6565b90565b3461031a57602061062f61103561101236610faa565b939190925f526004865260405f209060018060a01b03165f5260205260405f2090565b612798565b3461031a575f36600319011261031a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461031a57604036600319011261031a5760043561109b8161031e565b6024356001600160401b03811161031a575f916110bd83923690600401610b15565b90816040519283928337810184815203915af461110a6110db6119a3565b916110fc60405193849215156020840152604080840152606083019061058f565b03601f198101835282610d7e565b805190602001fd5b3461031a575f36600319011261031a5760206040515f8152f35b3461031a575f36600319011261031a5760206040516001600160401b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461031a575f36600319011261031a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461031a57602036600319011261031a576004355f526002602052602060405f2054604051908152f35b3461031a57604036600319011261031a5761087a6024356004356112008261031e565b805f525f805160206132ee833981519152602052611224600160405f200154611eb5565b612569565b3461031a57606036600319011261031a576105e46105d060043561124c8161031e565b611254610526565b90602435906119d2565b3461031a57602061062f61127136610faa565b92919091611ad1565b3461031a5760a036600319011261031a5760243560043561129a8261031e565b604435916112a661053b565b90608435906001600160401b03821161031a576112c860049236908401610dd6565b6112d0612229565b5f546020906112f5906112e9906001600160a01b031681565b6001600160a01b031690565b60405163b134427160e01b815294859182905afa9283156108bd575f93611434575b506001600160a01b039283163303611422576001546001600160a01b0316838116611397575b50506040805195865265ffffffffffff909316602086015216927f741a5de99085c0d660f3e4192217b0ffb0ea4e35a0480de48e857a4bc3ee36ed91819081015b0390a361087a60015f8051602061330e83398151915255565b9093604051946113ce866113c0602082019363724ab0f760e11b8552858c898d60248701611c5b565b03601f198101885287610d7e565b62042e305a10611410575f61137e938192827f741a5de99085c0d660f3e4192217b0ffb0ea4e35a0480de48e857a4bc3ee36ed9951926203d090f1509361133d565b604051638072475160e01b8152600490fd5b60405163dabc4ad960e01b8152600490fd5b61145791935060203d60201161145e575b61144f8183610d7e565b8101906116d3565b915f611317565b503d611445565b3461031a57606036600319011261031a576024356114828161031e565b61148a610526565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633036106f8576114e46106db926004355f52600460205260405f209060018060a01b03165f5260205260405f2090565b612124565b3461031a575f36600319011261031a575f546040516001600160a01b039091168152602090f35b3461031a57604036600319011261031a57602061062f6024356115328161031e565b600435611cd8565b3461031a575f36600319011261031a5760206040516203d0908152f35b3461031a575f36600319011261031a57602060405160018152f35b5190811515820361031a57565b519063ffffffff8216820361031a57565b919082604091031261031a57610ff960206115aa84611572565b930161157f565b91939265ffffffffffff906060956040519363f7b0554760e01b6020860152602485015260018060a01b031660448401521660648201526064815260a08101908082106001600160401b03831117610d4357611622926116139260405261201a565b60208082518301019101611590565b9061162a5750565b90915063ffffffff6040519116602082015260208152610ff981610d28565b9081602091031261031a57610ff990611572565b6040513d5f823e3d90fd5b81601f8201121561031a5780519061167f82610dbb565b9261168d6040519485610d7e565b8284526020838301011161031a57815f9260208093018386015e8301015290565b9060208282031261031a5781516001600160401b03811161031a57610ff99201611668565b9081602091031261031a5751610ff98161031e565b90610ff9916020815261170782516080602084015260a083019061058f565b906080606061173e61172b602087015195601f19968787830301604088015261058f565b604087015186868303018487015261058f565b940151928285030191015261058f565b604051630df8851f60e11b81526001600160a01b03828116600483015260248201849052848116604483015265ffffffffffff8616606483015295606095909491939091905f856084817f00000000000000000000000000000000000000000000000000000000000000008c165afa9485156108bd575f95611945575b5060405163fbfa77cf60e01b8152602081600481888d165afa9081156108bd57611837995f9286928491611926575b5060405163192c0ff760e21b81526001600160a01b03909116600482015265ffffffffffff909216602483015290998a9190829081906044820190565b03917f0000000000000000000000000000000000000000000000000000000000000000165afa9788156108bd575f986118fa575b50908161187d846118839594876119d2565b946115b1565b908251158015906118f0575b80156118e6575b80156118dc575b6118a957505050909150565b6110fc9450610ff993956118bb610d9f565b938452602084015260408301526060820152604051928391602083016116e8565b508151151561189d565b5080511515611896565b508551151561188f565b611883939291985061191d903d805f833e6119158183610d7e565b8101906116ae565b9790919261186b565b61193f915060203d60201161145e5761144f8183610d7e565b5f6117fa565b61195a9195503d805f833e6119158183610d7e565b935f6117cb565b90610ff992915f52600360205260405f20612798565b5f9081526004602090815260408083206001600160a01b03909416835292905220610ff9929190612798565b3d156119cd573d906119b482610dbb565b916119c26040519384610d7e565b82523d5f602084013e565b606090565b611622916116139194939465ffffffffffff60609660405193630cbd53f560e11b6020860152602485015216604483015260448252611a1082610d63565b61201a565b60405190611a2282610d28565b60606020838281520152565b9060208282031261031a5781516001600160401b039283821161031a57019060408282031261031a5760405192611a6484610d28565b825181811161031a5782611a79918501611668565b8452602083015190811161031a57611a919201611668565b602082015290565b6001600160a01b0391821681529116602082015265ffffffffffff9091166040820152608060608201819052610ff99291019061058f565b92611ae190929192828486612973565b929093611aec611a15565b93805180611c3f575b50508415938415611ba9575b8415611b18575b50505050611b135790565b505f90565b602080949550611b43910151604051958694859463530e1d4360e01b865260601c9060048601611a99565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa9081156108bd575f91611b8a575b50155f808080611b08565b611ba3915060203d6020116108b6576108a88183610d7e565b5f611b7f565b5f549094506001600160a01b0316602084865192611bdc604051948593849363530e1d4360e01b85528960048601611a99565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa9081156108bd575f91611c20575b501593611b01565b611c39915060203d6020116108b6576108a88183610d7e565b5f611c18565b611c53929550602080918301019101611a2e565b925f80611af5565b919360a093610ff9969565ffffffffffff938552600180871b031660208501526040840152166060820152816080820152019061058f565b634e487b7160e01b5f52601160045260245ffd5b8115611cb1570490565b634e487b7160e01b5f52601260045260245ffd5b9060018201809211611cd357565b611c93565b5f546040516308834cb560e21b8082526001600160a01b0385811660048401529283166024830152929392602092909183816044817f000000000000000000000000000000000000000000000000000000000000000086165afa9081156108bd575f91611de5575b5015918215611d61575b50509050611d5b57610ff991612a68565b50505f90565b6040519081526001600160a01b0385166004820152606086901c602482015291508290829060449082907f0000000000000000000000000000000000000000000000000000000000000000165afa9182156108bd575f92611dc8575b505015805f80611d4a565b611dde9250803d106108b6576108a88183610d7e565b5f80611dbd565b611dfc9150843d86116108b6576108a88183610d7e565b5f611d40565b335f9081527f24e48de785eeca8420b70f73d267a66970ccc187d459f2a4b53e74ed92a5ab86602052604090207f15e7c882d74e8821ebf34aaff46fd0e1d53b9393d91490019124113d28dc32a39060ff905b541615610ace5750565b335f9081527f72a65082a5691803ab2b62c9bc729b34205ba1b183d950896526b2fd8714d0c7602052604090207e8b9b1e5fa9cf3b14f87f435649268146305ddf689f082e5961a335b07a9abf9060ff90611e55565b5f8181525f805160206132ee83398151915260209081526040808320338452909152902060ff90611e55565b634e487b7160e01b5f52603260045260245ffd5b8054821015611f0a575f5260205f2001905f90565b611ee1565b90815491600160401b831015610d435782611f32916001610dac95018155611ef5565b90919082549060031b91821b915f19901b1916179055565b5f19810191908211611cd357565b90929192600182019081548015611fea575b5084611f7584612b40565b50949092845493611f85836120b3565b9681611fd5575b5015611fb2575050505f198101908111611cd357611f328591611fae93611ef5565b9190565b611fae949293611fce926001600160d01b0390911691906131a9565b5050611f0f565b65ffffffffffff83811691161490505f611f8c565b600160401b811015610d43578060016120069201845583611ef5565b8154905f199060031b1b191690555f611f6a565b5f9190829160405161204f816110fc6020820194639f86fd8560e01b865230602484015260406044840152606483019061058f565b51915afa5061205c6119a3565b8051810160408282031261031a5761207660208301611572565b916040810151916001600160401b03831161031a5761209c926020809201920101611668565b90156120a55790565b805190811561031a57602001fd5b8054806120e257505f5b6001600160d01b03811615611d5b5760016120d89201611ef5565b90549060031b1c90565b5f19908082810111611cd357825f5260205f2001015460301c6120bd565b9060405161210d81610d28565b915465ffffffffffff8116835260301c6020830152565b91908254905f8291600584116121c2575b612140935085612cc2565b9081156121b6576121af6121a66121a06120d861217261216d61216288611f4a565b895f5260205f200190565b612100565b966001612199602061218a8b5165ffffffffffff1690565b9a01516001600160d01b031690565b9101611ef5565b93611f4a565b63ffffffff1690565b6001939291565b5f925082915081908190565b91926121cd81612b8f565b8103908111611cd35761214093865f526122016121f68360205f200165ffffffffffff90541690565b65ffffffffffff1690565b65ffffffffffff85161015612217575091612135565b92915061222390611cc5565b90612135565b5f8051602061330e83398151915260028154146122465760029055565b604051633ee5aeb560e01b8152600490fd5b90815f52600360205260405f208161226f82612b40565b9193905083156122cd5761228f916001600160d01b031690600101611ef5565b90549060031b1c5b826122c3575b50506122a7575050565b6122bf915f52600360205260405f206103e342612b0e565b5050565b119050815f61229d565b50505f612297565b6001600160a01b0381165f9081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d60205260409020545f805160206132ee8339815191529060ff16611d5b575f808052602091825260408082206001600160a01b038516835290925220805460ff1916600117905533906001600160a01b03165f7f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d8180a4600190565b6001600160a01b0381165f9081527f9ebbcbe0d2961d3fbe56ca6f679bc753bd848d3e6bb3eaf9041c51b286881d2c602052604090207fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c905f805160206132ee8339815191529060ff905b541661244f575f828152602091825260408082206001600160a01b038616835290925220805460ff1916600117905533916001600160a01b0316907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d5f80a4600190565b5050505f90565b6001600160a01b0381165f9081527f72a65082a5691803ab2b62c9bc729b34205ba1b183d950896526b2fd8714d0c7602052604090207e8b9b1e5fa9cf3b14f87f435649268146305ddf689f082e5961a335b07a9abf905f805160206132ee8339815191529060ff906123eb565b6001600160a01b0381165f9081527f24e48de785eeca8420b70f73d267a66970ccc187d459f2a4b53e74ed92a5ab86602052604090207f15e7c882d74e8821ebf34aaff46fd0e1d53b9393d91490019124113d28dc32a3905f805160206132ee8339815191529060ff906123eb565b5f8181525f805160206132ee833981519152602081815260408084206001600160a01b038716855290915290912060ff906123eb565b5f8181525f805160206132ee833981519152602081815260408084206001600160a01b03871685529091529091205460ff161561244f575f828152602091825260408082206001600160a01b038616835290925220805460ff1916905533916001600160a01b0316907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b5f80a4600190565b91909160408184031261031a5780356126138161031e565b9260208201356001600160401b03811161031a57610ff99201610dd6565b61263d918101906125fb565b6040516302910f8b60e31b81526001600160a01b039283166004820181905291906020816024817f000000000000000000000000000000000000000000000000000000000000000088165afa9081156108bd575f91612750575b501561273e576126d26040916126cd612718946126b2612d24565b60018060a01b03166001600160601b0360a01b5f5416175f55565b612ea4565b6020810151600180546001600160a01b0319166001600160a01b0390921691909117905580516001600160a01b031684811661272e575b5001516001600160a01b031690565b9081166127225750565b61272b90612380565b50565b612737906122d5565b505f612709565b6040516362df054560e01b8152600490fd5b612769915060203d6020116108b6576108a88183610d7e565b5f612697565b9081602091031261031a57610ff99061157f565b90600163ffffffff80931601918211611cd357565b9180511561286657806020806127b39351830101910161276f565b916127be83826130d4565b926127cf845165ffffffffffff1690565b9065ffffffffffff808516921682811461285a5782119182612805575b50506127fc57610ff99250613004565b50506020015190565b9091506128128354611f4a565b63ffffffff83161491821561282b575b50505f806127ec565b6128529192506128466128406121f692612783565b856130d4565b5165ffffffffffff1690565b115f80612822565b50505050506020015190565b50610ff991613004565b60405190608082018281106001600160401b03821117610d4357604052606080838181528160208201528160408201520152565b9060208282031261031a5781516001600160401b039283821161031a57019060808282031261031a576128d5610d9f565b92825181811161031a57826128eb918501611668565b8452602083015181811161031a5782612905918501611668565b6020850152604083015181811161031a5782612922918501611668565b6040850152606083015190811161031a5761293d9201611668565b606082015290565b9081602091031261031a575190565b60409065ffffffffffff610ff99493168152816020820152019061058f565b9391909361297f612870565b93805180612a48575b50506129c992939460206129a86112e96112e95f5460018060a01b031690565b8188015190604051808098819463810da75d60e01b83528960048401612954565b03915afa9182156108bd57612a0a945f93612a0f575b50612a0490612a0493946129f860408a01518284611961565b9360608a015192611977565b9061313c565b915190565b612a04935090612a39612a049260203d602011612a41575b612a318183610d7e565b810190612945565b9350906129df565b503d612a27565b6129c994955090602080612a609383010191016128a4565b93925f612988565b5f5460405163bd49c35f60e01b8152929190602090849060049082906001600160a01b03165afa9081156108bd57610ff9935f92612ae3575b50612a04610384612a049394612ac2610384855f52600360205260405f2090565b935f52600460205260405f209060018060a01b03165f5260205260405f2090565b612a049250610384612b06612a049260203d602011612a4157612a318183610d7e565b935050612aa1565b65ffffffffffff90818111612b21571690565b604490604051906306dfcc6560e41b8252603060048301526024820152fd5b805480612b515750505f905f905f90565b5f19908082810111611cd357612b6e925f5260205f200101612100565b9065ffffffffffff82511691602060018060d01b0391015116906001929190565b8015611b135780612a04612c5a612c50612c46612c3c612c32612c28612c1e6001610ff99a5f908b60801c80612cb6575b508060401c80612ca9575b508060201c80612c9c575b508060101c80612c8f575b508060081c80612c82575b508060041c80612c75575b508060021c80612c68575b50821c612c61575b811c1b612c17818b611ca7565b0160011c90565b612c17818a611ca7565b612c178189611ca7565b612c178188611ca7565b612c178187611ca7565b612c178186611ca7565b612c178185611ca7565b8092611ca7565b8101612c0a565b600291509101905f612c02565b600491509101905f612bf7565b600891509101905f612bec565b601091509101905f612be1565b602091509101905f612bd6565b604091509101905f612bcb565b9150506080905f612bc0565b91905b838210612cd25750505090565b909192808316906001818518811c8301809311611cd357855f5265ffffffffffff808460205f20015416908516105f14612d11575050925b9190612cc5565b909493508101809111611cd35791612d0a565b612d2c6132bf565b612d346132bf565b60015f8051602061330e83398151915255565b60405190612d5482610d48565b5f6040838281528260208201520152565b81601f8201121561031a578051916020916001600160401b038411610d43578360051b9060405194612d9985840187610d7e565b8552838086019282010192831161031a578301905b828210612dbc575050505090565b8380918351612dca8161031e565b815201910190612dae565b9060208282031261031a5781516001600160401b039283821161031a5701908181039260a0841261031a57606060405194612e0f86610d48565b1261031a57604051612e2081610d48565b8351612e2b8161031e565b81526020840151612e3b8161031e565b60208201526040840151612e4e8161031e565b60408201528452606083015181811161031a5782612e6d918501612d65565b6020850152608083015190811161031a57612e889201612d65565b604082015290565b8051821015611f0a5760209160051b010190565b612ec090612eb0612d47565b5060208082518301019101612dd5565b8051519091906001600160a01b03161580612fea575b612fd8579060208101905f5b82518051821015612f5c576112e9612efd83612f0a93612e90565b516001600160a01b031690565b15612f4a57612f2c612f28612f23612efd848751612e90565b612456565b1590565b612f3857600101612ee2565b604051635140fefd60e11b8152600490fd5b6040516323cda06760e01b8152600490fd5b506040925050818101905f5b82518051821015612fcf576112e9612efd83612f8393612e90565b15612fbe57612fa1612f28612f9c612efd848751612e90565b6124c4565b612fad57600101612f68565b8351635140fefd60e11b8152600490fd5b83516323cda06760e01b8152600490fd5b50509150505190565b6040516303501f5960e11b8152600490fd5b506020820151511580612ed6575060408201515115612ed6565b908154905f82916005841161306e575b61301f935084612cc2565b8061304757505f905b6001600160d01b03821615611d5b57610ff99160016120d89201611ef5565b61306161305661306892611f4a565b835f5260205f200190565b5460301c90565b90613028565b919261307981612b8f565b8103908111611cd35761301f93855f5265ffffffffffff808360205f20015416908516105f146130aa575091613014565b9291506130b690611cc5565b90613014565b604051906130c982610d28565b5f6020838281520152565b906130fd6130f761311e926130e76130bc565b506130f06130bc565b5084611ef5565b50612100565b91600165ffffffffffff845116936020828060d01b03910151169101611ef5565b9054906040519261312e84610d28565b835260031b1c602082015290565b9080821015613149575090565b905090565b8054600160401b811015610d435761316b91600182018155611ef5565b61319657815160209092015160301b65ffffffffffff191665ffffffffffff92909216919091179055565b634e487b7160e01b5f525f60045260245ffd5b805492939291908215613296576131c561216d61305685611f4a565b906131d6825165ffffffffffff1690565b65ffffffffffff8481169116811061328457611fae9460209488926132046121f6875165ffffffffffff1690565b0361324c575061323e9261321a61322592611f4a565b905f5260205f200190565b9065ffffffffffff82549181199060301b169116179055565b01516001600160d01b031690565b91505061327f9161326c61325e610dae565b65ffffffffffff9093168352565b6001600160d01b0388168286015261314e565b61323e565b604051632520601d60e01b8152600490fd5b6132ba92506132a661325e610dae565b6001600160d01b038516602083015261314e565b5f9190565b60ff5f8051602061332e8339815191525460401c16156132db57565b604051631afcd79f60e31b8152600490fdfe02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268009b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a2646970667358221220b421717b7d05d309a1df30bec4959e6ea43c0ac83de4ab4b577f6f1e9cb2fa1664736f6c63430008190033","sourceMap":"7866:3473:86:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;;;;;-1:-1:-1;;7866:3473:86;;;;;;;;;;;;;;;;;;-1:-1:-1;;;3551:47:24;;;:87;;;;7866:3473:86;;;;;;;;;;3551:87:24;-1:-1:-1;;;1133:40:30;;-1:-1:-1;3551:87:24;;;7866:3473:86;-1:-1:-1;7866:3473:86;;;-1:-1:-1;;;;;7866:3473:86;;;;;:::o;:::-;;;;;;-1:-1:-1;;7866:3473:86;;;;;;;;;;;:::i;:::-;;;3202:4:24;;;:::i;:::-;7866:3473:86;-1:-1:-1;7866:3473:86;;;;;2662:52:82;:43;7866:3473:86;;-1:-1:-1;7866:3473:86;;;;;;;;;;;;;;;;;2662:43:82;:52;:::i;:::-;3458;3454:102;;7866:3473:86;3656:53:82;7866:3473:86;;-1:-1:-1;7866:3473:86;;;;3566:74:82;7866:3473:86;3566:43:82;7866:3473:86;;-1:-1:-1;7866:3473:86;;;;;;;;;;;;;;;;;3566:43:82;819:34:63;837:15;819:34;:::i;:::-;3566:74:82;;:::i;:::-;-1:-1:-1;;7866:3473:86;;;;;-1:-1:-1;;;;;7866:3473:86;;3656:53:82;7866:3473:86;3454:102:82;7866:3473:86;;-1:-1:-1;;;3533:12:82;;7866:3473:86;;3533:12:82;7866:3473:86;;;;;;;;;;;;;;;;;;3202:4:24;;;:::i;:::-;7866:3473:86;-1:-1:-1;7866:3473:86;2910:15:82;7866:3473:86;;;-1:-1:-1;7866:3473:86;;2901:36:82;;2897:98;;7866:3473:86;-1:-1:-1;7866:3473:86;2103:13:82;7866:3473:86;;;2103:34:82;7866:3473:86;-1:-1:-1;7866:3473:86;2103:34:82;:::i;:::-;3009;3005:84;;3099:25;3171:35;3099:25;:56;3171:35;3099:25;;;7866:3473:86;;2103:13:82;7866:3473:86;;;;;;;3099:56:82;-1:-1:-1;;7866:3473:86;;;;;;;;;;;;3171:35:82;;;;7866:3473:86;3005:84:82;7866:3473:86;-1:-1:-1;;;3066:12:82;;7866:3473:86;;3066:12:82;2897:98;7866:3473:86;-1:-1:-1;;;2960:24:82;;7866:3473:86;;2960:24:82;7866:3473:86;;;;;;-1:-1:-1;;7866:3473:86;;;;;;1537:38:81;-1:-1:-1;;;;;7866:3473:86;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;7866:3473:86;;;;;;;;-1:-1:-1;;7866:3473:86;;;;:::o;:::-;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;7866:3473:86;;;;;2662:52:82;:43;7866:3473:86;;;;;:::i;:::-;;;-1:-1:-1;7866:3473:86;;;;;-1:-1:-1;7866:3473:86;;;;;;;;;;;;;;;;;2662:52:82;7866:3473:86;;;;;;;;;;;;-1:-1:-1;;7866:3473:86;;;;;;1632:54:81;-1:-1:-1;;;;;7866:3473:86;;;;;;;;;;;;-1:-1:-1;;7866:3473:86;;;;;;:::i;:::-;449:5:87;-1:-1:-1;;;;;7866:3473:86;435:10:87;:19;431:71;;8670:64:86;7866:3473;;;-1:-1:-1;7866:3473:86;8670:13;7866:3473;;;-1:-1:-1;7866:3473:86;8670:64;:::i;:::-;7866:3473;;;;;;;;;;;;;;;;;;;-1:-1:-1;;7866:3473:86;431:71:87;7866:3473:86;;-1:-1:-1;;;477:14:87;;7866:3473:86;;477:14:87;7866:3473:86;;;;;;-1:-1:-1;;7866:3473:86;;;;;;1743:56:81;-1:-1:-1;;;;;7866:3473:86;;;;;;;;;;;;-1:-1:-1;;7866:3473:86;;;;;;-1:-1:-1;;;;;7866:3473:86;;;;;;;;3217:103:29;;;:::i;:::-;7866:3473:86;;-1:-1:-1;;;4285:48:81;;4322:10;7866:3473:86;4285:48:81;;7866:3473:86;;;;;-1:-1:-1;;;;;4295:16:81;7866:3473:86;4285:48:81;;;;;;;-1:-1:-1;4285:48:81;;;7866:3473:86;4284:49:81;;4280:99;;-1:-1:-1;;;;;7866:3473:86;-1:-1:-1;;4322:10:81;297:2:93;7866:3473:86;;267:46:93;4459:27:81;;;;7866:3473:86;;4459:15:81;7866:3473:86;;;;;;;4459:27:81;7866:3473:86;4459:37:81;4455:87;;4654:38;4552:27;4654:38;4552:27;;;7866:3473:86;;4459:15:81;7866:3473:86;;;;;;;4552:27:81;7866:3473:86;4631:6:81;;;;:::i;:::-;7866:3473:86;;;;;;;;;;;;;4654:38:81;;;;3282:1:29;1805;-1:-1:-1;;;;;;;;;;;7866:3473:86;3716:283:29;3282:1;7866:3473:86;4280:99:81;7866:3473:86;;-1:-1:-1;;;4356:12:81;;7866:3473:86;;4356:12:81;4285:48;;;;7866:3473:86;4285:48:81;7866:3473:86;4285:48:81;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;:::i;7866:3473:86:-;;;;;;-1:-1:-1;;7866:3473:86;;;;;;-1:-1:-1;7866:3473:86;-1:-1:-1;;;;;;;;;;;7866:3473:86;;;4919:24:24;7866:3473:86;-1:-1:-1;7866:3473:86;4919:24:24;7866:3473:86;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;-1:-1:-1;;7866:3473:86;;;;;;322:32:74;-1:-1:-1;;;;;7866:3473:86;;;;;;;;;;;;-1:-1:-1;;7866:3473:86;;;;5350:25:24;7866:3473:86;;;;;;;:::i;:::-;;-1:-1:-1;7866:3473:86;-1:-1:-1;;;;;;;;;;;7866:3473:86;;3202:4:24;4919:24;7866:3473:86;-1:-1:-1;7866:3473:86;4919:24:24;7866:3473:86;3202:4:24;:::i;:::-;5350:25;:::i;7866:3473:86:-;;;;;;-1:-1:-1;;7866:3473:86;;;;;;;;;:::i;:::-;966:10:28;-1:-1:-1;;;;;7866:3473:86;;6441:34:24;6437:102;;6549:37;7866:3473:86;;;6549:37:24;:::i;6437:102::-;7866:3473:86;;-1:-1:-1;;;6498:30:24;;7866:3473:86;;6498:30:24;7866:3473:86;;;;;;-1:-1:-1;;7866:3473:86;;;;;;;;;:::i;:::-;3217:103:29;;:::i;:::-;966:10:28;-1:-1:-1;7866:3473:86;;;;;;;;;;1356:26:81;;7866:3473:86;;4468:23:24;4464:108;;-1:-1:-1;4861:4:81;7866:3473:86;-1:-1:-1;;;;;7866:3473:86;;;;;;4861:13:81;;4857:63;;-1:-1:-1;;;;;;7866:3473:86;;;4861:4:81;7866:3473:86;4958:14:81;-1:-1:-1;;4958:14:81;4861:4;-1:-1:-1;;;;;;;;;;;7866:3473:86;;4464:108:24;7866:3473:86;;;;4514:47:24;;;;;;966:10:28;7866:3473:86;4514:47:24;;7866:3473:86;;;;;4514:47:24;7866:3473:86;;;;;;-1:-1:-1;;7866:3473:86;;;;;;-1:-1:-1;7866:3473:86;2103:13:82;7866:3473:86;;;2103:34:82;7866:3473:86;-1:-1:-1;7866:3473:86;2103:34:82;:::i;7866:3473:86:-;;;;;;;;;;;;;-1:-1:-1;;;;;7866:3473:86;;;;;;;;;;;;;;;:::o;:::-;;;;;;-1:-1:-1;;7866:3473:86;;;;-1:-1:-1;;;;;7866:3473:86;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;7866:3473:86;;;;;;;4301:16:26;7866:3473:86;;4726:16:26;;:34;;;;7866:3473:86;4805:1:26;4790:16;:50;;;;7866:3473:86;4855:13:26;:30;;;;7866:3473:86;4851:91:26;;;-1:-1:-1;;;;;;;;;;;7866:3473:86;;-1:-1:-1;;7866:3473:86;;;;;718:4:74;;4951:18:26;4979:67;;718:4:74;:::i;:::-;5066:101:26;;7866:3473:86;5066:101:26;-1:-1:-1;;;;;;;;;;;7866:3473:86;;-1:-1:-1;;;;7866:3473:86;;;;;-1:-1:-1;7866:3473:86;;5142:14:26;;7866:3473:86;;5142:14:26;7866:3473:86;4979:67:26;-1:-1:-1;;;;;;;;;;;7866:3473:86;;-1:-1:-1;;;;7866:3473:86;-1:-1:-1;;;7866:3473:86;;;718:4:74;:::i;4851:91:26:-;7866:3473:86;;-1:-1:-1;;;4908:23:26;;7866:3473:86;;4908:23:26;4855:30;4872:13;;;4855:30;;;4790:50;4818:4;4810:25;:30;;-1:-1:-1;4790:50:26;;4726:34;;;-1:-1:-1;4726:34:26;;7866:3473:86;;;;;;-1:-1:-1;;7866:3473:86;;;;;;8038:36;-1:-1:-1;;;;;7866:3473:86;;;;;;;;;;;;-1:-1:-1;;7866:3473:86;;;;;;;952:44:82;7866:3473:86;;;;;;;;;-1:-1:-1;;7866:3473:86;;;;;;;1253:6:81;7866:3473:86;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7866:3473:86;;;;;;;:::o;:::-;;:::i;:::-;;;;;;;-1:-1:-1;;;;;7866:3473:86;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;7866:3473:86;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;7866:3473:86;;;;;;;:::o;:::-;;;;;;;:::i;:::-;:::o;:::-;;;;;;;:::i;:::-;-1:-1:-1;;;;;7866:3473:86;;;;;;-1:-1:-1;;7866:3473:86;;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;7866:3473:86;;;;;;;;;;;;;;:::o;:::-;;;;;;-1:-1:-1;;7866:3473:86;;;;;;:::i;:::-;;;-1:-1:-1;;;;;7866:3473:86;;;;;;;1870:60:82;7866:3473:86;;;;;;:::i;:::-;;;;-1:-1:-1;7866:3473:86;1870:13:82;7866:3473:86;;;-1:-1:-1;7866:3473:86;1870:60:82;:::i;7866:3473:86:-;;;;;;-1:-1:-1;;7866:3473:86;;;;;;;1356:26:81;7866:3473:86;;;;;;;;;-1:-1:-1;;7866:3473:86;;;;;;7987:45;-1:-1:-1;;;;;7866:3473:86;;;;;;;;;;;;-1:-1:-1;;7866:3473:86;;;;;;;795:35:82;7866:3473:86;;;;;;;;;-1:-1:-1;;7866:3473:86;;;;;;;;-1:-1:-1;;;;;7866:3473:86;;;;;;;;;;;;;;-1:-1:-1;;7866:3473:86;;;;;;3901:31:24;7866:3473:86;;;;;:::i;:::-;;;-1:-1:-1;7866:3473:86;-1:-1:-1;;;;;;;;;;;7866:3473:86;;;-1:-1:-1;7866:3473:86;;;;;;;;;;;;;;;;;3901:31:24;7866:3473:86;;;;;;;;;;;;;-1:-1:-1;;7866:3473:86;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;-1:-1:-1;;;;;7866:3473:86;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;2399:78:82;:43;7866:3473:86;;;:::i;:::-;;;;;-1:-1:-1;7866:3473:86;;;;;-1:-1:-1;7866:3473:86;;;;;;;;;;;;;;;;;2399:43:82;:78;:::i;7866:3473:86:-;;;;;;-1:-1:-1;;7866:3473:86;;;;;;8080:45;-1:-1:-1;;;;;7866:3473:86;;;;;;;;;;;;-1:-1:-1;;7866:3473:86;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;7866:3473:86;;;;-1:-1:-1;7866:3473:86;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;416:25:80;;;;477:31;416:25;;:::i;:::-;7866:3473:86;;;;;;;;;;477:31:80;;7866:3473:86;;;;;;;;;;;:::i;:::-;477:31:80;7866:3473:86;;477:31:80;;;;;;:::i;:::-;518:79;;;7866:3473:86;518:79:80;;7866:3473:86;;;;;;-1:-1:-1;;7866:3473:86;;;;;;;;;;;;;;;;;-1:-1:-1;;7866:3473:86;;;;;;;-1:-1:-1;;;;;404:28:74;7866:3473:86;;;;;;;;;;-1:-1:-1;;7866:3473:86;;;;;;1439:41:81;-1:-1:-1;;;;;7866:3473:86;;;;;;;;;;;;-1:-1:-1;;7866:3473:86;;;;;;-1:-1:-1;7866:3473:86;2009:67:81;7866:3473:86;;;;-1:-1:-1;7866:3473:86;;;;;;;;;;;;;;-1:-1:-1;;7866:3473:86;;;;5767:26:24;7866:3473:86;;;;;;;:::i;:::-;;-1:-1:-1;7866:3473:86;-1:-1:-1;;;;;;;;;;;7866:3473:86;;3202:4:24;4919:24;7866:3473:86;-1:-1:-1;7866:3473:86;4919:24:24;7866:3473:86;3202:4:24;:::i;:::-;5767:26;:::i;7866:3473:86:-;;;;;;-1:-1:-1;;7866:3473:86;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;-1:-1:-1;;7866:3473:86;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;-1:-1:-1;;;;;7866:3473:86;;;;;;;;;;;;:::i;:::-;3217:103:29;;:::i;:::-;-1:-1:-1;7866:3473:86;;;5246:21:81;;:13;;-1:-1:-1;;;;;7866:3473:86;5246:13:81;7866:3473:86;;-1:-1:-1;;;;;7866:3473:86;;;5246:21:81;7866:3473:86;;-1:-1:-1;;;5246:23:81;;7866:3473:86;;;;;5246:23:81;;;;;;;-1:-1:-1;5246:23:81;;;7866:3473:86;-1:-1:-1;;;;;;7866:3473:86;;;5232:10:81;:37;5228:87;;5341:4;7866:3473:86;-1:-1:-1;;;;;7866:3473:86;;;;5355:469:81;;7866:3473:86;-1:-1:-1;;7866:3473:86;;;;;;;;;;;;;;;;5839:55:81;;7866:3473:86;;;;5839:55:81;;;;3282:1:29;1805;-1:-1:-1;;;;;;;;;;;7866:3473:86;3716:283:29;5355:469:81;7866:3473:86;;;;5435:94:81;;;;7866:3473:86;5435:94:81;;;;;;;;;;;;7866:3473:86;5435:94:81;;;:::i;:::-;;7866:3473:86;;5435:94:81;;;;;;:::i;:::-;7866:3473:86;5548:9:81;:51;5544:118;;-1:-1:-1;5839:55:81;5676:138;;;;5839:55;5676:138;;;1150:7;5676:138;;5355:469;;;5544:118;7866:3473:86;;-1:-1:-1;;;5626:21:81;;7866:3473:86;;5626:21:81;5228:87;7866:3473:86;;-1:-1:-1;;;5292:12:81;;7866:3473:86;;5292:12:81;5246:23;;;;;7866:3473:86;5246:23:81;7866:3473:86;5246:23:81;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;7866:3473:86;;;;;;-1:-1:-1;;7866:3473:86;;;;;;;;;:::i;:::-;;;:::i;:::-;449:5:87;-1:-1:-1;;;;;7866:3473:86;435:10:87;:19;431:71;;9461:43:86;:82;7866:3473;;;-1:-1:-1;7866:3473:86;;;;;-1:-1:-1;7866:3473:86;;;;;;;;;;;;;;;;;9461:43;:82;:::i;7866:3473::-;;;;;;-1:-1:-1;;7866:3473:86;;;;;;;;-1:-1:-1;;;;;7866:3473:86;;;;;;;;;;;;;;-1:-1:-1;;7866:3473:86;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;-1:-1:-1;;7866:3473:86;;;;;;;1150:7:81;7866:3473:86;;;;;;;;;-1:-1:-1;;7866:3473:86;;;;;;;2700:1:81;7866:3473:86;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;:::i;9556:591::-;;;;7866:3473;9556:591;7866:3473;;;;9870:147;;;;;;;;;;;7866:3473;;;;;;;;;;;;;;;;;9870:147;;7866:3473;;;;;;;-1:-1:-1;;;;;7866:3473:86;;;;;9778:291;7866:3473;9802:229;7866:3473;;;9802:229;:::i;:::-;9870:147;7866:3473;;;9778:291;;;;;;:::i;:::-;10080:61;;;9556:591;:::o;10080:61::-;7866:3473;;;;;;;;9870:147;10113:17;;7866:3473;9870:147;10113:17;;;;;:::i;7866:3473::-;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;7866:3473:86;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;;;;7866:3473:86;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;10153:1184::-;7866:3473;;-1:-1:-1;;;10370:99:86;;-1:-1:-1;;;;;7866:3473:86;;;10370:99;;;7866:3473;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;7866:3473:86;;;10389:20;7866:3473;;10370:99;;;;;;;;;;;10153:1184;-1:-1:-1;7866:3473:86;;-1:-1:-1;;;10563:32:86;;;7866:3473;10370:99;7866:3473;;;;10563:32;;;;;;;10523:84;10563:32;10370:99;10563:32;;;;;;;10153:1184;-1:-1:-1;7866:3473:86;;-1:-1:-1;;;10523:84:86;;-1:-1:-1;;;;;7866:3473:86;;;10370:99;10523:84;;7866:3473;;;;;;;;;;;;;-1:-1:-1;7866:3473:86;;;;;;;;;10523:84;;10534:11;;7866:3473;10523:84;;;;;;;10370:99;10523:84;;;10153:1184;10651:50;;;;;10752:68;10651:50;;;;:::i;:::-;10752:68;;:::i;:::-;7866:3473;;;10848:21;;;:52;;;10153:1184;10848:85;;;;10153:1184;10848:142;;;;10153:1184;10831:500;;10153:1184;;;;;;:::o;10831:500::-;11022:298;7866:3473;;11022:298;7866:3473;;;;:::i;:::-;;;;10563:32;11050:256;;7866:3473;;11050:256;;7866:3473;;11050:256;;7866:3473;;;11022:298;;;10563:32;11022:298;;;:::i;10848:142::-;7866:3473;;;10953:37;;10848:142;;:85;7866:3473;;;10904:29;;10848:85;;:52;7866:3473;;;10873:27;;10848:52;;10523:84;10752:68;10523:84;;;;;;;;;10370:99;10523:84;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;10563:32;;;;;;;;;;;;;;:::i;:::-;;;;10370:99;;;;;;;;;;;;;;:::i;:::-;;;;;1742:195:82;;1870:60;1742:195;;-1:-1:-1;7866:3473:86;1870:13:82;7866:3473:86;;;-1:-1:-1;7866:3473:86;1870:60:82;:::i;2207:277::-;-1:-1:-1;7866:3473:86;;;2399:21:82;7866:3473:86;;;;;;;;-1:-1:-1;;;;;7866:3473:86;;;;;;;;;2399:78:82;;2207:277;;2399:78;:::i;7866:3473:86:-;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;-1:-1:-1;7866:3473:86;;;;:::o;:::-;;;:::o;8747:485::-;8935:219;8747:485;8959:157;8747:485;;;;7866:3473;;;;;9011:91;;;;;;;;;;;7866:3473;;;;;;;9011:91;;;;;:::i;:::-;8959:157;:::i;7866:3473::-;;;;;;;:::i;:::-;;;;;;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;;;;7866:3473:86;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::o;:::-;-1:-1:-1;;;;;7866:3473:86;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;2764:920:81:-;;2978:48;2764:920;;;;2978:48;;;;:::i;:::-;3036:36;;;7866:3473:86;;:::i;:::-;;;;3086:20:81;3082:107;;2764:920;3216:11;;;;:193;;;;;2764:920;3216:394;;;;2764:920;3199:455;;;;;;2764:920;:::o;3199:455::-;3635:8;-1:-1:-1;3635:8:81;:::o;3216:394::-;3553:39;;;;;3430:180;3553:39;;;7866:3473:86;;;;;;;;;;3430:180:81;;467:2:93;7866:3473:86;3430:180:81;;;;;:::i;:::-;;7866:3473:86;3444:31:81;-1:-1:-1;;;;;7866:3473:86;3430:180:81;;;;;;;-1:-1:-1;3430:180:81;;;3216:394;3429:181;;3216:394;;;;;;3430:180;;;;3553:39;3430:180;3553:39;3430:180;;;;;;;:::i;:::-;;;;3216:193;-1:-1:-1;7866:3473:86;;;-1:-1:-1;;;;;;7866:3473:86;3248:161:81;3354:37;;;7866:3473:86;3248:161:81;7866:3473:86;;;;;;;;;;3248:161:81;;;;;;;:::i;:::-;;7866:3473:86;3262:29:81;-1:-1:-1;;;;;7866:3473:86;3248:161:81;;;;;;;-1:-1:-1;3248:161:81;;;3216:193;3247:162;;3216:193;;;3248:161;;;;;;;;;;;;;;:::i;:::-;;;;3082:107;3139:39;;;;;;;;;;;;;:::i;:::-;3082:107;;;;;7866:3473:86;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;8889:1:91;7866:3473:86;;;;;;;:::o;:::-;;:::i;3740:389:81:-;3918:5;7866:3473:86;;;-1:-1:-1;;;3853:71:81;;;-1:-1:-1;;;;;7866:3473:86;;;3853:71:81;;;7866:3473:86;;;;;;;;3740:389:81;;7866:3473:86;3853:71:81;;7866:3473:86;;3853:71:81;7866:3473:86;;;3867:29:81;7866:3473:86;;3853:71:81;;;;;;;3918:5;3853:71;;;3740:389;3852:72;;7866:3473:86;;;3852:181:81;;3740:389;3835:242;;;;;;4094:28;;;:::i;3835:242::-;4058:8;;3918:5;4058:8;:::o;3852:181::-;7866:3473:86;;3945:88:81;;;-1:-1:-1;;;;;7866:3473:86;;3853:71:81;3945:88;;7866:3473:86;467:2:93;7866:3473:86;;;;;;;;-1:-1:-1;7866:3473:86;;;;;;;;3959:31:81;7866:3473:86;3945:88:81;;;;;;;3918:5;3945:88;;;3852:181;3944:89;;;3852:181;;;;;3945:88;;;;;;-1:-1:-1;3945:88:81;;;;;;:::i;:::-;;;;;3853:71;;;;;;;;;;;;;;:::i;:::-;;;;4148:103:24;966:10:28;-1:-1:-1;7866:3473:86;;;;;;;;;952:44:82;;7866:3473:86;;3901:31:24;7866:3473:86;;4468:23:24;4464:108;;4148:103;:::o;:::-;966:10:28;-1:-1:-1;7866:3473:86;;;;;;;;;795:35:82;;7866:3473:86;;3901:31:24;7866:3473:86;4148:103:24;-1:-1:-1;7866:3473:86;;;-1:-1:-1;;;;;;;;;;;7866:3473:86;;;;;;;;966:10:28;7866:3473:86;;;;;;;;;3901:31:24;7866:3473:86;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;7866:3473:86;;-1:-1:-1;7866:3473:86;;;-1:-1:-1;7866:3473:86;:::o;:::-;;:::i;:::-;;;;;-1:-1:-1;;;7866:3473:86;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;7866:3473:86;;;;;;;;:::o;6246:584:91:-;;;;;6360:12;;;7866:3473:86;;;6360:24:91;;6356:75;;6246:584;6474:30;;;;;:::i;:::-;7866:3473:86;;;;;;6578:12:91;;;;:::i;:::-;6604:24;;;;6246:584;-1:-1:-1;6600:188:91;;;-1:-1:-1;;;;;7866:3473:86;;;;;;;6644:21:91;;;:29;:21;;:::i;:29::-;6798:25;6246:584;:::o;6600:188::-;6753:24;;7866:3473:86;;8167:38:61;;-1:-1:-1;;;;;7866:3473:86;;;;;8167:38:61;:::i;:::-;6753:24:91;;;:::i;6604:::-;7866:3473:86;;;;;;6614:14:91;;-1:-1:-1;6604:24:91;;;6356:75;-1:-1:-1;;;7866:3473:86;;;;;;6360:12:91;7866:3473:86;;;;;;;:::i;:::-;;;;;;;;;;;;;;6356:75:91;;;525:595:87;-1:-1:-1;525:595:87;;;;7866:3473:86;;716:88:87;;7866:3473:86;716:88:87;;;;;;;;;783:4;716:88;;;7866:3473:86;;;;;;;;;;;:::i;716:88:87:-;698:107;;;;;;;:::i;:::-;7866:3473:86;;857:45:87;;7866:3473:86;;;;;;;;716:88:87;857:45;;7866:3473:86;:::i;:::-;;;;;;;-1:-1:-1;;;;;7866:3473:86;;;;;857:45:87;716:88;857:45;;;7866:3473:86;;;;:::i;:::-;916:8:87;;912:175;;525:595;:::o;912:175::-;7866:3473:86;;944:22:87;;;940:36;;716:88;990:87;;10580:184:91;7866:3473:86;;10303:8:61;;;:63;-1:-1:-1;10303:63:61;-1:-1:-1;;;;;7866:3473:86;;10726:7:91;7866:3473:86;;10736:12:91;:17;:12;;:17;:::i;:::-;7866:3473:86;;;;;;10580:184:91;:::o;10303:63:61:-;7866:3473:86;;;;;;;;;;13267:109:91;-1:-1:-1;13267:109:91;;-1:-1:-1;13267:109:91;;;7866:3473:86;;;10303:63:61;;7866:3473:86;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::o;8406:869:91:-;;;7866:3473:86;;8620:15:91;8578:11;8645:18;8678:7;8684:1;8678:7;;8674:241;;8406:869;8939:60;;;;;:::i;:::-;9014:8;;;9010:62;;9252:15;9259:7;7866:3473:86;9219:31:91;7866:3473:86;9130:48:91;9170:7;;;:::i;:::-;9130:48;13267:109;;;;;;13089:293;;9130:48;7866:3473:86;:::i;:::-;;9176:1:91;7866:3473:86;9232:17:91;7866:3473:86;;;;;;;;9232:17:91;;7866:3473:86;-1:-1:-1;;;;;7866:3473:86;;;;9219:12:91;;:31;:::i;7866:3473:86:-;9259:7:91;;:::i;:::-;7866:3473:86;;;;9252:15:91;9176:1;;9188:80;;8406:869::o;9010:62::-;8578:11;;-1:-1:-1;8578:11:91;;-1:-1:-1;8578:11:91;;;;9038:23::o;8674:241::-;8721:14;;;;;:::i;:::-;7866:3473:86;;;;;;;8939:60:91;13267:109;;8578:11;13267:109;8753:55;8759:49;13267:109;;8578:11;13267:109;;7866:3473:86;;;;;;8759:49:91;7866:3473:86;;;;8753:55:91;7866:3473:86;;;8753:55:91;13267:109;;;8828:10;8749:156;8674:241;;8749:156;8883:7;;;;;;:::i;:::-;8749:156;8674:241;;3326:384:29;-1:-1:-1;;;;;;;;;;;1847:1:29;7866:3473:86;;3526:20:29;3522:88;;1847:1;7866:3473:86;;3326:384:29:o;3522:88::-;7866:3473:86;;-1:-1:-1;;;3569:30:29;;;;;4758:308:82;;7866:3473:86;-1:-1:-1;7866:3473:86;4889:13:82;7866:3473:86;;;-1:-1:-1;7866:3473:86;11124:30:91;;;;:::i;:::-;11173;;;-1:-1:-1;11173:30:91;;;;11182:17;;-1:-1:-1;;;;;7866:3473:86;;11182:12:91;;:17;:::i;:::-;7866:3473:86;;;4889:13:82;7866:3473:86;;11173:30:91;4947::82;;;11173::91;4943:117:82;;;;4758:308;;:::o;4943:117::-;4993:56;7866:3473:86;-1:-1:-1;7866:3473:86;4889:13:82;7866:3473:86;;;-1:-1:-1;7866:3473:86;819:34:63;837:15;819:34;:::i;4993:56:82:-;4758:308;;:::o;4947:30::-;4957:20;;-1:-1:-1;4947:30:82;;;;11173::91;;;-1:-1:-1;11173:30:91;;7270:387:24;-1:-1:-1;;;;;7866:3473:86;;-1:-1:-1;7866:3473:86;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2887:71:24;7866:3473:86;;;;-1:-1:-1;7866:3473:86;;;;;;;;;;;-1:-1:-1;;;;;7866:3473:86;;;;;;;;;;-1:-1:-1;;7866:3473:86;7509:4:24;7866:3473:86;;;966:10:28;;-1:-1:-1;;;;;7866:3473:86;-1:-1:-1;7532:40:24;-1:-1:-1;;7532:40:24;7509:4;7586:11;:::o;7270:387::-;-1:-1:-1;;;;;7866:3473:86;;-1:-1:-1;7866:3473:86;;;;;;;;;1356:26:81;;-1:-1:-1;;;;;;;;;;;2887:71:24;7866:3473:86;;3901:31:24;7866:3473:86;;;;-1:-1:-1;7866:3473:86;;;;;;;;;;;-1:-1:-1;;;;;7866:3473:86;;;;;;;;;;-1:-1:-1;;7866:3473:86;7509:4:24;7866:3473:86;;;966:10:28;;-1:-1:-1;;;;;7866:3473:86;;7532:40:24;-1:-1:-1;;7532:40:24;7509:4;7586:11;:::o;7432:219::-;7628:12;;;-1:-1:-1;7628:12:24;:::o;7270:387::-;-1:-1:-1;;;;;7866:3473:86;;-1:-1:-1;7866:3473:86;;;;;;;;;795:35:82;;-1:-1:-1;;;;;;;;;;;2887:71:24;7866:3473:86;;3901:31:24;7866:3473:86;7270:387:24;-1:-1:-1;;;;;7866:3473:86;;-1:-1:-1;7866:3473:86;;;;;;;;;952:44:82;;-1:-1:-1;;;;;;;;;;;2887:71:24;7866:3473:86;;3901:31:24;7866:3473:86;7270:387:24;-1:-1:-1;7866:3473:86;;;-1:-1:-1;;;;;;;;;;;7866:3473:86;;;;;;;;-1:-1:-1;;;;;7866:3473:86;;;;;;;;;;;;3901:31:24;7866:3473:86;7892:388:24;-1:-1:-1;7866:3473:86;;;-1:-1:-1;;;;;;;;;;;7866:3473:86;;;;;;;;-1:-1:-1;;;;;7866:3473:86;;;;;;;;;;;;;;;;-1:-1:-1;7866:3473:86;;;;;;;;;;;-1:-1:-1;;;;;7866:3473:86;;;;;;;;;;-1:-1:-1;;7866:3473:86;;;966:10:28;;-1:-1:-1;;;;;7866:3473:86;;8155:40:24;-1:-1:-1;;8155:40:24;7866:3473:86;8209:11:24;:::o;7866:3473:86:-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;7866:3473:86;;;;;;;;:::i;5907:716:81:-;6030:34;5907:716;6030:34;;;;:::i;:::-;7866:3473:86;;-1:-1:-1;;;6080:41:81;;-1:-1:-1;;;;;7866:3473:86;;;6080:41:81;;;7866:3473:86;;;;;6080:41:81;7866:3473:86;;;6090:13:81;7866:3473:86;;6080:41:81;;;;;;;-1:-1:-1;6080:41:81;;;5907:716;6079:42;;6075:90;;6266:27;7866:3473:86;2540:111:29;6210:14:81;7866:3473:86;2540:111:29;;;:::i;:::-;7866:3473:86;;;;;;-1:-1:-1;;;;;7866:3473:86;;-1:-1:-1;7866:3473:86;;;-1:-1:-1;7866:3473:86;;6210:14:81;6266:27;:::i;:::-;6080:41;6311:15;;7866:3473:86;;;;-1:-1:-1;;;;;;7866:3473:86;-1:-1:-1;;;;;7866:3473:86;;;;;;;;;;;-1:-1:-1;;;;;7866:3473:86;;;;6337:143:81;;5907:716;-1:-1:-1;6493:28:81;7866:3473:86;-1:-1:-1;;;;;7866:3473:86;;;;;;;6489:128:81;;5907:716;:::o;6489:128::-;6551:55;;;:::i;:::-;;5907:716::o;6337:143::-;6404:65;;;:::i;:::-;;6337:143;;;6075:90;7866:3473:86;;-1:-1:-1;;;6144:10:81;;6080:41;;6144:10;6080:41;;;;;;;;;;;;;;:::i;:::-;;;;7866:3473:86;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::o;7558:604:91:-;;7866:3473:86;;7686:17:91;7682:83;;7866:3473:86;7789:27:91;7866:3473:86;7789:27:91;7866:3473:86;;7789:27:91;;;;;;:::i;:::-;7860:14;;;;;:::i;:::-;7866:3473:86;;;;;;;;;;;;;;;;7888:22:91;;;7884:77;;7975:21;-1:-1:-1;7975:84:91;;;;7558:604;7971:139;;;;8127:28;;;;:::i;7971:139::-;8082:17;;7789:27;8082:17;7866:3473:86;8075:24:91;:::o;7975:84::-;7866:3473:86;;;8009:16:91;7866:3473:86;;8009:16:91;:::i;:::-;7866:3473:86;;;8001:24:91;:57;;;;;7975:84;;;;;;;8001:57;8029:29;8038:8;;;8029:18;8038:8;8029:23;8038:8;;:::i;:::-;8029:18;;:::i;:::-;7866:3473:86;;;;;8029:29:91;;8001:57;;;;7884:77;7933:17;;;;;7789:27;7933:17;7866:3473:86;7926:24:91;:::o;7682:83::-;7726:28;;;;:::i;7866:3473:86:-;;;;;;;;;;-1:-1:-1;;;;;7866:3473:86;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;;;;7866:3473:86;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;:::i;3722:766:82:-;;;;;7866:3473:86;;:::i;:::-;;;;3962:16:82;3958:92;;3722:766;7866:3473:86;;4107:67:82;7866:3473:86;;;4146:27:82;4107;:13;7866:3473:86;-1:-1:-1;7866:3473:86;;;;;;;;;4107:27:82;4146;;;;7866:3473:86;;;;;;;;;;;4107:67:82;;;;;;;:::i;:::-;;;;;;;;;;4081:355;4107:67;-1:-1:-1;4107:67:82;;;3722:766;4260:28;4311:93;4260:28;4192:230;4260:28;;4222:67;7866:3473:86;4260:28:82;;;4222:67;;;:::i;:::-;4367:36;;;;;4311:93;;:::i;:::-;4192:230;;:::i;4081:355::-;4450:21;;3722:766;:::o;4107:67::-;4192:230;4107:67;;;;4311:93;4107:67;4146:27;4107:67;4146:27;4107:67;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;3958:92;4107:67;4008:31;;;;;;;;;;;;;;:::i;:::-;3958:92;;;;;4494:258;4635:5;7866:3473:86;;;-1:-1:-1;;;4628:27:82;;7866:3473:86;4494:258:82;;4628:27;;7866:3473:86;;4628:27:82;;7866:3473:86;;-1:-1:-1;;;;;7866:3473:86;4628:27:82;;;;;;;4606:139;4628:27;4635:5;4628:27;;;4494:258;2103:25;2662:52;:43;4657:78;2103:25;;:34;:25;;7866:3473:86;;2103:13:82;7866:3473:86;;;;;;;2103:34:82;7866:3473:86;4635:5:82;7866:3473:86;4628:27:82;;7866:3473:86;;4635:5:82;7866:3473:86;;;;;;;;;;;;;;;;;4628:27:82;4657:78;4628:27;;2662:43;4628:27;2662:52;4628:27;;;;;;;;;;;:::i;:::-;;;;;;14291:213:59;7866:3473:86;14369:24:59;;;;14365:103;;7866:3473:86;14291:213:59;:::o;14365:103::-;7866:3473:86;;;;14416:41:59;;;;;;14447:2;14416:41;;;7866:3473:86;;;;;14416:41:59;10552:388:61;7866:3473:86;;10728:8:61;;;10752:20;;10690:17;10752:20;10690:17;10752:20;10690:17;10752:20;:::o;10724:210::-;7866:3473:86;;;;;;;;;;;13267:109:91;10690:17:61;13267:109:91;;10690:17:61;13267:109:91;;;7866:3473:86;:::i;:::-;;;;;;;13267:109:91;7866:3473:86;;;;;10911:11:61;;7866:3473:86;;10886:37:61;10870:1;10886:37;;;:::o;8587:1642:58:-;8658:6;;8654:45;;9401:7;10201:10;10142:26;10093;10044;9995;9946;9897;9848;7866:3473:86;10189:23:58;9401:7;8663:1;7866:3473:86;;;;10826:16:58;10822:99;;8587:1642;7866:3473:86;;;;10938:15:58;10934:96;;8587:1642;7866:3473:86;;;;11047:15:58;11043:96;;8587:1642;7866:3473:86;;;;11156:15:58;11152:96;;8587:1642;7866:3473:86;;;;11265:14:58;11261:93;;8587:1642;7866:3473:86;;;;11371:14:58;11367:93;;8587:1642;7866:3473:86;;;;11477:14:58;11473:93;;8587:1642;7866:3473:86;;;11579:64:58;;8587:1642;7866:3473:86;;;9858:10:58;;;;:::i;:::-;7866:3473:86;;;;;9848:26:58;9907:10;;;;:::i;9897:26::-;9956:10;;;;:::i;9946:26::-;10005:10;;;;:::i;9995:26::-;10054:10;;;;:::i;10044:26::-;10103:10;;;;:::i;10093:26::-;10152:10;;;;:::i;10142:26::-;10201:10;;;:::i;11579:64::-;7866:3473:86;;11579:64:58;;11473:93;7866:3473:86;11511:11:58;;7866:3473:86;;11473:93:58;;;;11367;7866:3473:86;11405:11:58;;7866:3473:86;;11367:93:58;;;;11261;7866:3473:86;11299:11:58;;7866:3473:86;;11261:93:58;;;;11152:96;7866:3473:86;11191:12:58;;7866:3473:86;;11152:96:58;;;;11043;7866:3473:86;11082:12:58;;7866:3473:86;;11043:96:58;;;;10934;7866:3473:86;10973:12:58;;7866:3473:86;;10934:96:58;;;;10822:99;10862:13;;;7866:3473:86;10822:99:58;;;;12497:447:91;;;12694:10;;;;;;12926:11;;;12497:447;:::o;12687:230::-;2900:5:58;;;;;;7866:3473:86;;2910:5:58;;;7866:3473:86;;;;;;;;;13267:109:91;-1:-1:-1;13267:109:91;7866:3473:86;13267:109:91;;;-1:-1:-1;13267:109:91;;7866:3473:86;;;;;-1:-1:-1;12771:136:91;7866:3473:86;;;12830:10:91;;12771:136;;12687:230;;;;12771:136;7866:3473:86;;;;;;;;;;;12771:136:91;;;6893:76:26;;;:::i;:::-;;;:::i;:::-;1805:1:29;-1:-1:-1;;;;;;;;;;;7866:3473:86;6893:76:26:o;7866:3473:86:-;;;;;;;:::i;:::-;-1:-1:-1;7866:3473:86;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;-1:-1:-1;;;;;7866:3473:86;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7866:3473:86;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;5072:1269:82:-;5220:30;5072:1269;7866:3473:86;;:::i;:::-;;5220:30:82;7866:3473:86;;;5220:30:82;;;;;;:::i;:::-;5278:17;;7866:3473:86;5278:17:82;;7866:3473:86;-1:-1:-1;;;;;7866:3473:86;5278:54:82;;:178;;5072:1269;5261:258;;5534:9;5220:30;5549:33;;;5278:17;5591:3;5549:33;;7866:3473:86;;5545:44:82;;;;;5614:36;;;:50;:36;;:::i;:::-;7866:3473:86;-1:-1:-1;;;;;7866:3473:86;;;5614:50:82;;5610:119;;5747:73;5748:72;5783:36;;:33;;;:36;:::i;:::-;5748:72;:::i;:::-;5747:73;;7866:3473:86;5747:73:82;5743:140;;7866:3473:86;;5534:9:82;;5743:140;7866:3473:86;;-1:-1:-1;;;5847:21:82;;;;;5610:119;7866:3473:86;;-1:-1:-1;;;5691:23:82;;;;;5545:44;-1:-1:-1;5923:41:82;;-1:-1:-1;;5923:41:82;;;;5278:17;5973:3;5923:41;;7866:3473:86;;5919:52:82;;;;;5996:44;;;:58;:44;;:::i;:58::-;;5992:127;;6137:90;6138:89;6182:44;;:41;;;:44;:::i;:::-;6138:89;:::i;6137:90::-;6133:157;;7866:3473:86;;5908:9:82;;6133:157;7866:3473:86;;-1:-1:-1;;;6254:21:82;;;;;5992:127;7866:3473:86;;-1:-1:-1;;;6081:23:82;;;;;5919:52;;;;;;6317:17;5072:1269;:::o;5261:258::-;7866:3473:86;;-1:-1:-1;;;5488:20:82;;;;;5278:178;5353:33;5220:30;5353:33;;;7866:3473:86;5353:45:82;:102;5278:178;5353:102;5402:41;;;;;7866:3473:86;5402:53:82;5278:178;;6999:207:91;;7866:3473:86;;9594:15:61;-1:-1:-1;9619:18:61;9652:7;9658:1;9652:7;;9648:234;;6999:207:91;9906:53:61;;;;;:::i;:::-;9977:8;;;:63;-1:-1:-1;9977:63:61;;-1:-1:-1;;;;;7866:3473:86;;7168:7:91;7866:3473:86;;;7178:12:91;;:17;:12;;:17;:::i;9977:63:61:-;9992:41;10025:7;9992:48;10025:7;;:::i;:::-;9992:41;13267:109:91;;;;;;13089:293;;9992:41:61;7866:3473:86;;;;;9992:48:61;9977:63;;;9648:234;9695:14;;;;;:::i;:::-;7866:3473:86;;;;;;;9906:53:61;13267:109:91;;-1:-1:-1;13267:109:91;7866:3473:86;13267:109:91;;;-1:-1:-1;13267:109:91;;7866:3473:86;;;;;9727:48:61;9723:149;7866:3473:86;;;9795:10:61;9723:149;9648:234;;9723:149;9850:7;;;;;;:::i;:::-;9723:149;9648:234;;7866:3473:86;;;;;;;:::i;:::-;-1:-1:-1;7866:3473:86;;;;;;;:::o;11486:272:91:-;;7866:3473:86;11308:22:61;11718:31:91;11486:272;7866:3473:86;;:::i;:::-;;;;:::i;:::-;;11308:22:61;;:::i;:::-;7866:3473:86;;:::i;:::-;;11718:12:91;7866:3473:86;;;;;11731:17:91;7866:3473:86;;;;;11731:17:91;;7866:3473:86;;11718:12:91;;:31;:::i;:::-;7866:3473:86;;;;;;;;;:::i;:::-;;;;;;11731:17:91;11672:79;;7866:3473:86;11486:272:91;:::o;2557:104:58:-;;2641:5;;;;;;:13;2557:104;:::o;2641:13::-;;;2557:104;:::o;7866:3473:86:-;;;-1:-1:-1;;;7866:3473:86;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;7866:3473:86;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;11513:870:61;7866:3473:86;;11513:870:61;;;7866:3473:86;11513:870:61;11672:7;;;;7866:3473:86;11775:28:61;11795:7;;;:::i;7866:3473:86:-;;;;;;;;;;;;;;;;11877:15:61;-1:-1:-1;11873:91:61;;7866:3473:86;;12233:11:61;7866:3473:86;;;12027:16:61;7866:3473:86;;;;;;;12027:16:61;;;;12083:7;12063:43;12083:7;;12063:28;12083:7;;:::i;:::-;12063:28;13267:109:91;;;;;;13089:293;;12063:28:61;7866:3473:86;;;;;;;;;;;;;;;;;12063:43:61;12233:11;7866:3473:86;-1:-1:-1;;;;;7866:3473:86;;;12023:189:61;7866:3473:86;;;12145:52:61;7866:3473:86;12155:41:61;7866:3473:86;;:::i;:::-;;;;;;;;12155:41:61;-1:-1:-1;;;;;7866:3473:86;;12155:41:61;;;7866:3473:86;12145:52:61;:::i;:::-;12023:189;;11873:91;7866:3473:86;;-1:-1:-1;;;11919:30:61;;;;;11668:709;12283:52;7866:3473:86;;12293:41:61;7866:3473:86;;:::i;12293:41:61:-;-1:-1:-1;;;;;7866:3473:86;;12293:41:61;;;7866:3473:86;12145:52:61;:::i;12283:::-;11678:1;12349:17;;:::o;7084:141:26:-;7866:3473:86;-1:-1:-1;;;;;;;;;;;7866:3473:86;;;;7150:18:26;7146:73;;7084:141::o;7146:73::-;7866:3473:86;;-1:-1:-1;;;7191:17:26;;;;","linkReferences":{},"immutableReferences":{"64520":[{"start":2349,"length":32}],"64523":[{"start":4427,"length":32}],"65474":[{"start":1953,"length":32},{"start":4484,"length":32}],"65477":[{"start":1250,"length":32},{"start":9830,"length":32}],"65480":[{"start":1612,"length":32},{"start":7136,"length":32},{"start":7439,"length":32}],"65483":[{"start":1823,"length":32},{"start":6983,"length":32},{"start":7565,"length":32}],"68374":[{"start":3772,"length":32},{"start":6042,"length":32}],"68376":[{"start":3215,"length":32},{"start":6203,"length":32}],"68378":[{"start":4175,"length":32}],"69080":[{"start":1686,"length":32},{"start":5260,"length":32}]}},"methodIdentifiers":{"BASE_DELEGATOR_HINTS()":"79d89614","DEFAULT_ADMIN_ROLE()":"a217fddf","FACTORY()":"2dd31000","HOOK_GAS_LIMIT()":"ff54740f","HOOK_RESERVE()":"557cab44","HOOK_SET_ROLE()":"6679191e","NETWORK_LIMIT_SET_ROLE()":"7d24bb27","NETWORK_REGISTRY()":"c0cd7c3e","OPERATOR_NETWORK_LIMIT_SET_ROLE()":"518504ba","OPERATOR_NETWORK_OPT_IN_SERVICE()":"1a80e500","OPERATOR_VAULT_OPT_IN_SERVICE()":"128e5d82","OPT_IN_SERVICE_HINTS()":"9b656b22","TYPE()":"bb24fe8a","VAULT_FACTORY()":"103f2907","VAULT_HINTS()":"45e78fcb","VERSION()":"ffa1ad74","getRoleAdmin(bytes32)":"248a9ca3","grantRole(bytes32,address)":"2f2ff15d","hasRole(bytes32,address)":"91d14854","hook()":"7f5a7c7b","initialize(bytes)":"439fab91","maxNetworkLimit(bytes32)":"d15b740e","networkLimit(bytes32)":"3eb22c0f","networkLimitAt(bytes32,uint48,bytes)":"5d32a1c9","networkLimitHint(address,bytes32,uint48)":"da749d2b","networkLimitHintInternal(bytes32,uint48)":"197aa7ea","onSlash(bytes32,address,uint256,uint48,bytes)":"e49561ee","operatorNetworkLimit(bytes32,address)":"11422095","operatorNetworkLimitAt(bytes32,address,uint48,bytes)":"94d2558a","operatorNetworkLimitHint(address,bytes32,address,uint48)":"10a28b5d","operatorNetworkLimitHintInternal(bytes32,address,uint48)":"f7b05547","renounceRole(bytes32,address)":"36568abe","revokeRole(bytes32,address)":"d547741f","setHook(address)":"3dfd3873","setMaxNetworkLimit(uint96,uint256)":"23f752d5","setNetworkLimit(bytes32,uint256)":"02145348","setOperatorNetworkLimit(bytes32,address,uint256)":"020cf0c2","stake(bytes32,address)":"fd4d447c","stakeAt(bytes32,address,uint48,bytes)":"e02f6937","stakeHints(address,bytes32,address,uint48)":"25dc9708","staticDelegateCall(address,bytes)":"9f86fd85","supportsInterface(bytes4)":"01ffc9a7","vault()":"fbfa77cf"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"baseDelegatorHints\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"vaultHints\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"optInServiceHints\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"AccessControlBadConfirmation\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"neededRole\",\"type\":\"bytes32\"}],\"name\":\"AccessControlUnauthorizedAccount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AlreadySet\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CheckpointUnorderedInsertion\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"DuplicateRoleHolder\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ExceedsMaxNetworkLimit\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ExternalCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientHookGas\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MissingRoleHolders\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotNetwork\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotSlasher\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotVault\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ReentrancyGuardReentrantCall\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"bits\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"SafeCastOverflowedUintDowncast\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ZeroAddressRoleHolder\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint48\",\"name\":\"captureTimestamp\",\"type\":\"uint48\"}],\"name\":\"OnSlash\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"previousAdminRole\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"newAdminRole\",\"type\":\"bytes32\"}],\"name\":\"RoleAdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleRevoked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"hook\",\"type\":\"address\"}],\"name\":\"SetHook\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"SetMaxNetworkLimit\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"SetNetworkLimit\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"SetOperatorNetworkLimit\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"BASE_DELEGATOR_HINTS\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"DEFAULT_ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"FACTORY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"HOOK_GAS_LIMIT\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"HOOK_RESERVE\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"HOOK_SET_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"NETWORK_LIMIT_SET_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"NETWORK_REGISTRY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"OPERATOR_NETWORK_LIMIT_SET_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"OPERATOR_NETWORK_OPT_IN_SERVICE\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"OPERATOR_VAULT_OPT_IN_SERVICE\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"OPT_IN_SERVICE_HINTS\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"TYPE\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"VAULT_FACTORY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"VAULT_HINTS\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"VERSION\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleAdmin\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"grantRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"hook\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"}],\"name\":\"maxNetworkLimit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"}],\"name\":\"networkLimit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hint\",\"type\":\"bytes\"}],\"name\":\"networkLimitAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"}],\"name\":\"networkLimitHint\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"}],\"name\":\"networkLimitHintInternal\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"exists\",\"type\":\"bool\"},{\"internalType\":\"uint32\",\"name\":\"hint\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint48\",\"name\":\"captureTimestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"onSlash\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"operatorNetworkLimit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hint\",\"type\":\"bytes\"}],\"name\":\"operatorNetworkLimitAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"}],\"name\":\"operatorNetworkLimitHint\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"}],\"name\":\"operatorNetworkLimitHintInternal\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"exists\",\"type\":\"bool\"},{\"internalType\":\"uint32\",\"name\":\"hint\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"callerConfirmation\",\"type\":\"address\"}],\"name\":\"renounceRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"hook_\",\"type\":\"address\"}],\"name\":\"setHook\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint96\",\"name\":\"identifier\",\"type\":\"uint96\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"setMaxNetworkLimit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"setNetworkLimit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"setOperatorNetworkLimit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"stake\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hints\",\"type\":\"bytes\"}],\"name\":\"stakeAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"}],\"name\":\"stakeHints\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"staticDelegateCall\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"vault\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"AccessControlBadConfirmation()\":[{\"details\":\"The caller of a function is not the expected one. NOTE: Don't confuse with {AccessControlUnauthorizedAccount}.\"}],\"AccessControlUnauthorizedAccount(address,bytes32)\":[{\"details\":\"The `account` is missing a role.\"}],\"CheckpointUnorderedInsertion()\":[{\"details\":\"A value was attempted to be inserted on a past checkpoint.\"}],\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"ReentrancyGuardReentrantCall()\":[{\"details\":\"Unauthorized reentrant call.\"}],\"SafeCastOverflowedUintDowncast(uint8,uint256)\":[{\"details\":\"Value doesn't fit in an uint of `bits` size.\"}]},\"events\":{\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"OnSlash(bytes32,address,uint256,uint48)\":{\"params\":{\"amount\":\"amount of the collateral to be slashed\",\"captureTimestamp\":\"time point when the stake was captured\",\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"}},\"RoleAdminChanged(bytes32,bytes32,bytes32)\":{\"details\":\"Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole` `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite {RoleAdminChanged} not being emitted signaling this.\"},\"RoleGranted(bytes32,address,address)\":{\"details\":\"Emitted when `account` is granted `role`. `sender` is the account that originated the contract call, an admin role bearer except when using {AccessControl-_setupRole}.\"},\"RoleRevoked(bytes32,address,address)\":{\"details\":\"Emitted when `account` is revoked `role`. `sender` is the account that originated the contract call: - if using `revokeRole`, it is the admin role bearer - if using `renounceRole`, it is the role bearer (i.e. `account`)\"},\"SetHook(address)\":{\"params\":{\"hook\":\"address of the hook\"}},\"SetMaxNetworkLimit(bytes32,uint256)\":{\"params\":{\"amount\":\"new maximum subnetwork's limit (how much stake the subnetwork is ready to get)\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"}},\"SetNetworkLimit(bytes32,uint256)\":{\"params\":{\"amount\":\"new subnetwork's limit (how much stake the vault curator is ready to give to the subnetwork)\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"}},\"SetOperatorNetworkLimit(bytes32,address,uint256)\":{\"params\":{\"amount\":\"new operator's limit for the subnetwork (how much stake the vault curator is ready to give to the operator for the subnetwork)\",\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"}}},\"kind\":\"dev\",\"methods\":{\"VERSION()\":{\"details\":\"Must return 1 for this one.\",\"returns\":{\"_0\":\"version of the delegator\"}},\"getRoleAdmin(bytes32)\":{\"details\":\"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}.\"},\"grantRole(bytes32,address)\":{\"details\":\"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event.\"},\"hasRole(bytes32,address)\":{\"details\":\"Returns `true` if `account` has been granted `role`.\"},\"initialize(bytes)\":{\"params\":{\"data\":\"some data to use\"}},\"networkLimit(bytes32)\":{\"params\":{\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"},\"returns\":{\"_0\":\"limit of the subnetwork\"}},\"networkLimitAt(bytes32,uint48,bytes)\":{\"params\":{\"hint\":\"hint for checkpoint index\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\",\"timestamp\":\"time point to get the subnetwork limit at\"},\"returns\":{\"_0\":\"limit of the subnetwork at the given timestamp\"}},\"onSlash(bytes32,address,uint256,uint48,bytes)\":{\"details\":\"Only the vault's slasher can call this function.\",\"params\":{\"amount\":\"amount of the collateral slashed\",\"captureTimestamp\":\"time point when the stake was captured\",\"data\":\"some additional data\",\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"}},\"operatorNetworkLimit(bytes32,address)\":{\"params\":{\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"},\"returns\":{\"_0\":\"limit of the operator for the subnetwork\"}},\"operatorNetworkLimitAt(bytes32,address,uint48,bytes)\":{\"params\":{\"hint\":\"hint for checkpoint index\",\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\",\"timestamp\":\"time point to get the operator's limit for the subnetwork at\"},\"returns\":{\"_0\":\"limit of the operator for the subnetwork at the given timestamp\"}},\"renounceRole(bytes32,address)\":{\"details\":\"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `callerConfirmation`. May emit a {RoleRevoked} event.\"},\"revokeRole(bytes32,address)\":{\"details\":\"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event.\"},\"setHook(address)\":{\"details\":\"Only a HOOK_SET_ROLE holder can call this function. The hook can have arbitrary logic under certain functions, however, it doesn't affect the stake guarantees.\",\"params\":{\"hook\":\"address of the hook\"}},\"setMaxNetworkLimit(uint96,uint256)\":{\"details\":\"Only a network can call this function.\",\"params\":{\"amount\":\"new maximum subnetwork's limit\"}},\"setNetworkLimit(bytes32,uint256)\":{\"details\":\"Only a NETWORK_LIMIT_SET_ROLE holder can call this function.\",\"params\":{\"amount\":\"new limit of the subnetwork\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"}},\"setOperatorNetworkLimit(bytes32,address,uint256)\":{\"details\":\"Only an OPERATOR_NETWORK_LIMIT_SET_ROLE holder can call this function.\",\"params\":{\"amount\":\"new limit of the operator for the subnetwork\",\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"}},\"stake(bytes32,address)\":{\"details\":\"Warning: this function is not safe to use for stake capturing, as it can change by the end of the block.\",\"params\":{\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"},\"returns\":{\"_0\":\"slashable stake until the end of the next epoch\"}},\"stakeAt(bytes32,address,uint48,bytes)\":{\"details\":\"Warning: it is not safe to use timestamp >= current one for the stake capturing, as it can change later.\",\"params\":{\"hints\":\"hints for the checkpoints' indexes\",\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\",\"timestamp\":\"time point to capture the stake at\"},\"returns\":{\"_0\":\"slashable stake at the given timestamp until the end of the consequent epoch\"}},\"staticDelegateCall(address,bytes)\":{\"details\":\"It allows to use this contract's storage on-chain.\",\"params\":{\"data\":\"data to make a delegatecall with\",\"target\":\"address of the contract to make a delegatecall to\"}},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"}},\"version\":1},\"userdoc\":{\"events\":{\"OnSlash(bytes32,address,uint256,uint48)\":{\"notice\":\"Emitted when a slash happens.\"},\"SetHook(address)\":{\"notice\":\"Emitted when a hook is set.\"},\"SetMaxNetworkLimit(bytes32,uint256)\":{\"notice\":\"Emitted when a subnetwork's maximum limit is set.\"},\"SetNetworkLimit(bytes32,uint256)\":{\"notice\":\"Emitted when a subnetwork's limit is set.\"},\"SetOperatorNetworkLimit(bytes32,address,uint256)\":{\"notice\":\"Emitted when an operator's limit for a subnetwork is set.\"}},\"kind\":\"user\",\"methods\":{\"FACTORY()\":{\"notice\":\"Get the factory's address.\"},\"HOOK_GAS_LIMIT()\":{\"notice\":\"Get a gas limit for the hook.\"},\"HOOK_RESERVE()\":{\"notice\":\"Get a reserve gas between the gas limit check and the hook's execution.\"},\"HOOK_SET_ROLE()\":{\"notice\":\"Get a hook setter's role.\"},\"NETWORK_LIMIT_SET_ROLE()\":{\"notice\":\"Get a subnetwork limit setter's role.\"},\"NETWORK_REGISTRY()\":{\"notice\":\"Get the network registry's address.\"},\"OPERATOR_NETWORK_LIMIT_SET_ROLE()\":{\"notice\":\"Get an operator-subnetwork limit setter's role.\"},\"OPERATOR_NETWORK_OPT_IN_SERVICE()\":{\"notice\":\"Get the operator-network opt-in service's address.\"},\"OPERATOR_VAULT_OPT_IN_SERVICE()\":{\"notice\":\"Get the operator-vault opt-in service's address.\"},\"TYPE()\":{\"notice\":\"Get the entity's type.\"},\"VAULT_FACTORY()\":{\"notice\":\"Get the vault factory's address.\"},\"VERSION()\":{\"notice\":\"Get a version of the delegator (different versions mean different interfaces).\"},\"hook()\":{\"notice\":\"Get the hook's address.\"},\"initialize(bytes)\":{\"notice\":\"Initialize this entity contract by using a given data.\"},\"maxNetworkLimit(bytes32)\":{\"notice\":\"Get a particular subnetwork's maximum limit (meaning the subnetwork is not ready to get more as a stake).\"},\"networkLimit(bytes32)\":{\"notice\":\"Get a subnetwork's limit (how much stake the vault curator is ready to give to the subnetwork).\"},\"networkLimitAt(bytes32,uint48,bytes)\":{\"notice\":\"Get a subnetwork's limit at a given timestamp using a hint (how much stake the vault curator is ready to give to the subnetwork).\"},\"onSlash(bytes32,address,uint256,uint48,bytes)\":{\"notice\":\"Called when a slash happens.\"},\"operatorNetworkLimit(bytes32,address)\":{\"notice\":\"Get an operator's limit for a subnetwork. (how much stake the vault curator is ready to give to the operator for the subnetwork)\"},\"operatorNetworkLimitAt(bytes32,address,uint48,bytes)\":{\"notice\":\"Get an operator's limit for a subnetwork at a given timestamp using a hint (how much stake the vault curator is ready to give to the operator for the subnetwork).\"},\"setHook(address)\":{\"notice\":\"Set a new hook.\"},\"setMaxNetworkLimit(uint96,uint256)\":{\"notice\":\"Set a maximum limit for a subnetwork (how much stake the subnetwork is ready to get). identifier identifier of the subnetwork\"},\"setNetworkLimit(bytes32,uint256)\":{\"notice\":\"Set a subnetwork's limit (how much stake the vault curator is ready to give to the subnetwork).\"},\"setOperatorNetworkLimit(bytes32,address,uint256)\":{\"notice\":\"Set an operator's limit for a subnetwork. (how much stake the vault curator is ready to give to the operator for the subnetwork)\"},\"stake(bytes32,address)\":{\"notice\":\"Get a stake that a given subnetwork will be able to slash for a certain operator until the end of the next epoch (if no cross-slashing and no slashings by the subnetwork).\"},\"stakeAt(bytes32,address,uint48,bytes)\":{\"notice\":\"Get a stake that a given subnetwork could be able to slash for a certain operator at a given timestamp until the end of the consequent epoch using hints (if no cross-slashing and no slashings by the subnetwork).\"},\"staticDelegateCall(address,bytes)\":{\"notice\":\"Make a delegatecall from this contract to a given target contract with a particular data (always reverts with a return data).\"},\"vault()\":{\"notice\":\"Get the vault's address.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/contracts/hints/DelegatorHints.sol\":\"FullRestakeDelegatorHints\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol\":{\"keccak256\":\"0x6662ec4e5cefca03eeadd073e9469df8d2944bb2ee8ec8f7622c2c46aab5f225\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4d8544c6f8daa4d1bc215c6a72fe0acdb748664a105b0e5efc19295667521d45\",\"dweb:/ipfs/QmdGWqdnXT8S3RgCR6aV8XHZrsybieMQLLnug1NtpSjEXN\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0xc163fcf9bb10138631a9ba5564df1fa25db9adff73bd9ee868a8ae1858fe093a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9706d43a0124053d9880f6e31a59f31bc0a6a3dc1acd66ce0a16e1111658c5f6\",\"dweb:/ipfs/QmUFmfowzkRwGtDu36cXV9SPTBHJ3n7dG9xQiK5B28jTf2\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609\",\"dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9\",\"dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardUpgradeable.sol\":{\"keccak256\":\"0xb44e086e941292cdc7f440de51478493894ef0b1aeccb0c4047445919f667f74\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://942dad22fbdc1669f025540ba63aa3ccfad5f8458fc5d4525b31ebf272e7af45\",\"dweb:/ipfs/Qmdo4X2M82aM3AMoW2kf2jhYkSCyC4T1pHNd6obdsDFnAB\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol\":{\"keccak256\":\"0xdaba3f7c42c55b2896353f32bd27d4d5f8bae741b3b05d4c53f67abc4dc47ce8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1fa2e61141c602510bcd2cd936ed9561922ac8772a9b9c9a9db091a74e354a45\",\"dweb:/ipfs/QmcHQDDoEBwJmwUbzoVkytvJsBx3KVHYFFnDkvRGWh9Wmh\"]},\"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0xb6b36edd6a2999fd243ff226d6cbf84bd71af2432bbd0dfe19392996a1d9cb41\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1fd2f35495652e57e3f99bc6c510bc5f7dd398a176ea2e72d8ed730aebc6ca26\",\"dweb:/ipfs/QmTQV6X4gkikTib49cho5iDX3JvSQbdsoEChoDwrk3CbbH\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC1271.sol\":{\"keccak256\":\"0x85a45f3f10014a0f8be41157a32b6a5f905753ea64a4b64e29fc12b7deeecf39\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c3c74009ce36136b36c77c23935b8e4a7b4f253be2da2be4fb4a916b1ce43743\",\"dweb:/ipfs/QmcH36v3iN7SJJuF73AunLR2LtNxhVJ1wm63ph4dPZ4pcL\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC5267.sol\":{\"keccak256\":\"0x92aa1df62dc3d33f1656d63bede0923e0df0b706ad4137c8b10b0a8fe549fd92\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c5c0f29195ad64cbe556da8e257dac8f05f78c53f90323c0d2accf8e6922d33a\",\"dweb:/ipfs/QmQ61TED8uaCZwcbh8KkgRSsCav7x7HbcGHwHts3U4DmUP\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c\",\"dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0x6008dabfe393240d73d7dd7688033f72740d570aa422254d29a7dce8568f3aff\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f5196ec75139918c6c7bb4251b36395e668f1fa6d206beba7e7520e74913940d\",\"dweb:/ipfs/QmSyqjksXxmm2mCG6qRd1yuwLykypkSVBbnBnGqJRcuJMi\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x37bb49513c49c87c4642a891b13b63571bc87013dde806617aa1efb54605f386\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b3036b3a83b7c48f96641f2a9002b9f2dcb6a5958dd670894ada21ae8229b3d0\",\"dweb:/ipfs/QmUNfSBdoVtjhETaUJCYcaC7pTMgbhht926tJ2uXJbiVd3\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0xaf28a975a78550e45f65e559a3ad6a5ad43b9b8a37366999abd1b7084eb70721\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b7bd24e224f67f65bfadf85dc2929fa965456bb2415478bd0125471b5ce35245\",\"dweb:/ipfs/QmRaydGr8BTHs1kvaZfsNU69pKzUAGFrvABn1KiRSbE51y\"]},\"lib/openzeppelin-contracts/contracts/utils/ShortStrings.sol\":{\"keccak256\":\"0x18a7171df639a934592915a520ecb97c5bbc9675a1105607aac8a94e72bf62c6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7478e1f13da69a2867ccd883001d836b75620362e743f196376d63ed0c422a1c\",\"dweb:/ipfs/QmWywcQ9TNfwtoqAxbn25d8C5VrV12PrPS9UjtGe6pL2BA\"]},\"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0x32ba59b4b7299237c8ba56319110989d7978a039faf754793064e967e5894418\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1ae50c8b562427df610cc4540c9bf104acca7ef8e2dcae567ae7e52272281e9c\",\"dweb:/ipfs/QmTHiadFCSJUPpRjNegc5SahmeU8bAoY8i9Aq6tVscbcKR\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0x55f102ea785d8399c0e58d1108e2d289506dde18abc6db1b7f68c1f9f9bc5792\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e52e0a7765c943ef14e5bcf11e46e6139fa044be564881378349236bf2e3453\",\"dweb:/ipfs/QmZEeeXoFPW47amyP35gfzomF9DixqqTEPwzBakv6cZw6i\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0xeed0a08b0b091f528356cbc7245891a4c748682d4f6a18055e8e6ca77d12a6cf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba80ba06c8e6be852847e4c5f4492cef801feb6558ae09ed705ff2e04ea8b13c\",\"dweb:/ipfs/QmXRJDv3xHLVQCVXg1ZvR35QS9sij5y9NDWYzMfUfAdTHF\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/EIP712.sol\":{\"keccak256\":\"0x999f705a027ed6dc2d4e0df2cc4a509852c6bfd11de1c8161bf88832d0503fd0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0798def67258d9a3cc20b2b4da7ebf351a5cefe0abfdd665d2d81f8e32f89b21\",\"dweb:/ipfs/QmPEvJosnPfzHNjKvCv2D3891mA2Ww8eUwkqrxBjuYdHCt\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol\":{\"keccak256\":\"0xba333517a3add42cd35fe877656fc3dfcc9de53baa4f3aabbd6d12a92e4ea435\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2ceacff44c0fdc81e48e0e0b1db87a2076d3c1fb497341de077bf1da9f6b406c\",\"dweb:/ipfs/QmRUo1muMRAewxrKQ7TkXUtknyRoR57AyEkoPpiuZQ8FzX\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/SignatureChecker.sol\":{\"keccak256\":\"0x6b11eb41a228cca35d4b662b4df69fcd75192851365102690f57b2ac01e83fe6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ab006a2983ed350d2af21ddcdd835dcae3b8340086cc4d088460da5abd041f69\",\"dweb:/ipfs/QmbEacDhkJZiGrgzLjB4pNtE8Z1uudjDw1DvcDUTVQFsLG\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875\",\"dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0xe19a4d5f31d2861e7344e8e535e2feafb913d806d3e2b5fe7782741a2a7094fe\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4aed79c0fa6f0546ed02f2f683e8f77f0fd2ed7eb34d8bbf3d373c9a6d95b13c\",\"dweb:/ipfs/QmWqVz6UAVqmnWU5pqYPt1o6iDEZyPaBraAA3rKfTTSfYj\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x5f7e4076e175393767754387c962926577f1660dd9b810187b9002407656be72\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7d533a1c97cd43a57cd9c465f7ee8dd0e39ae93a8fb8ff8e5303a356b081cdcc\",\"dweb:/ipfs/QmVBEei6aTnvYNZp2CHYVNKyZS4q1KkjANfY39WVXZXVoT\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/Checkpoints.sol\":{\"keccak256\":\"0xbdc5e074d7dd6678f67e92b1a51a20226801a407b0e1af3da367c5d1ff4519ad\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a36cca6b22fff3db16fc789ff6c60eea71d4b156065d4d0c83a0bc5e91a77a8b\",\"dweb:/ipfs/QmYN3exd5AemxjBrN8XMB1p5LbbE16uC3sjbYjwi8AjcGR\"]},\"lib/openzeppelin-contracts/contracts/utils/types/Time.sol\":{\"keccak256\":\"0xc7755af115020049e4140f224f9ee88d7e1799ffb0646f37bf0df24bf6213f58\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7f09bf94d5274334ec021f61a04659db303f31e60460e14b709c9bf187740111\",\"dweb:/ipfs/QmNvgomZYUwFAt4cZbPWAiTeSZQreGehY9BK5xyVJsUttb\"]},\"src/contracts/common/Entity.sol\":{\"keccak256\":\"0x3d61a932995b8443381f3950542d388223a2c26dd5d29a3274dea3baa7388bd7\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://7cdf5f03ca72fd263fd32ff59c8d88ddca911ae83896a287d10772c1bbe9b138\",\"dweb:/ipfs/QmbP84r5BWT1Rn9AYTntWSf3xUMTTCohTZJFhbBhDXFoHa\"]},\"src/contracts/common/MigratableEntity.sol\":{\"keccak256\":\"0x2d736f4dacd5d7e7697503bc426c78b8250fe1694ca157965ec178da6807de58\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://f1237acf96b4b9f9b69156e068eddd726a6e15bd8e87a18dc999cd4ba4da069c\",\"dweb:/ipfs/QmS6M8fiFFSeuJ4ZKKq1z8W7w4ybeHQSy5TLASGoc1LVic\"]},\"src/contracts/common/StaticDelegateCallable.sol\":{\"keccak256\":\"0x350029aa8955eacaffffaeb58babc5c98e80ebc5c5db388ed17ee6465f4a9d90\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://eb392a8ee9050e0af606897df63e3404e3829e8b688b580663892f9664195764\",\"dweb:/ipfs/QmaXC8jqV8UrrAFkzXTEv2fJF56sy33HhLxAzaRZmUxuXD\"]},\"src/contracts/delegator/BaseDelegator.sol\":{\"keccak256\":\"0x7c54d491fdd4415b764a9c8defa068e56d4c0c8c9419be0053a1d377669290e8\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://9238bfbad0f6eeb0dc7727724de14380f1980b395902269703d5e2ef07e52e10\",\"dweb:/ipfs/QmPJn1V4HNXcEghYvogGuSTF24dSQUPosR5qtsXcmNqRm3\"]},\"src/contracts/delegator/FullRestakeDelegator.sol\":{\"keccak256\":\"0x0a81c4f8e72914563a9cb771e93acf889c71ea36b7bec040e4eb562b199d5af1\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://6fc66b6ba02da77046a0bbbd1dd407a62c08f52e04486c9cbd2cb1cca3da555f\",\"dweb:/ipfs/QmZQivK1ZnMxfRQQ5aLpV9co5u55wQVNev5Rg1hzAqxhkE\"]},\"src/contracts/delegator/NetworkRestakeDelegator.sol\":{\"keccak256\":\"0xd3a8e6522f9c6fdcc2da837c9023afd6bdff2bce45a35590320c475519e3636d\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://58b17a87f6554f08376f9ea7fedf486a4aa75801bf0ad8b23ff5a46959b6b7a3\",\"dweb:/ipfs/QmSTmNh67tYt8CmjVZb57r8N3qX5yeYdMApKPJm3qvQgQw\"]},\"src/contracts/delegator/OperatorNetworkSpecificDelegator.sol\":{\"keccak256\":\"0x031a10722b9ec49048f0952710401131290adb87e71caf294e864e7ac3b98a16\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://72428febc875134b2f29205e6f294634a1c22a7d5c78d6a9cb2f8196f107c9b5\",\"dweb:/ipfs/QmTPwXR6h5oytckmkLrHdKeEMdphJxceDhYUR4zvQeWAwY\"]},\"src/contracts/delegator/OperatorSpecificDelegator.sol\":{\"keccak256\":\"0x630ce62fa30b9f3349ab7a8cf8dbf041319febc6dd757be2f94d3d25944ed328\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://c2ac59d47ce57d2a6819ae9833e1a618a371eccff93eb5ab367b201b01f42bfa\",\"dweb:/ipfs/QmdBpGMBivpNPv2WbH8vnCUy5xkVeaxQvGgqi33vKCz1kA\"]},\"src/contracts/hints/DelegatorHints.sol\":{\"keccak256\":\"0x44aa0c396311a54afbc7c73e8dadeed41e3165a4fd13f712b27d63d50fc3376d\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://2f255214f3531fc707d88be0d56a7a0aed4180439316d099d760d9118aa83093\",\"dweb:/ipfs/QmZD1w5p1ukJSXumUAjvxwGmkPhn7vsr21Y2atLGEZR2oi\"]},\"src/contracts/hints/Hints.sol\":{\"keccak256\":\"0x8b565df1ae35993c097a9e642002782a8f451f6fd01809cad6bcd345bdf1b99c\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://99a19adb01e350a92f534095b3078229df1f2f83077992d75d58d8684be45971\",\"dweb:/ipfs/QmbmwcuswVbzvwHQFTtrJG86oV98GnfxqYTb8cV8u1acox\"]},\"src/contracts/hints/OptInServiceHints.sol\":{\"keccak256\":\"0x95d9407900d27b9f4a1233b772aeed809c07b2dc5b31cfc9fa77ca26514c49e5\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://a13a8877e312d7e6b8b85bde3668c5d84ff5ecc83f762cd573f2b7104c64eb42\",\"dweb:/ipfs/QmYV2J55acuGzCNnS3juABuUHY5U1xc8g8o9jwEyFFdeG5\"]},\"src/contracts/hints/VaultHints.sol\":{\"keccak256\":\"0xccb505b7159b769cc114d67b87c2de6b106557f667fc8f3780114baad5c3c442\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://6d0c80a908fc16e96a8b5605a0bd53f9e89ad0ef0a738fbbae80ba4d3160749b\",\"dweb:/ipfs/QmXo5UtWoR8YmunqcbBU8rQMm1nvmvjNPoXcVrDhh4pEwR\"]},\"src/contracts/libraries/Checkpoints.sol\":{\"keccak256\":\"0xba90097c8bfe0a975499428b5f8ac5569483c7d92ccc28c12d70de416aae040c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://12f5d93ca94cd06d3147db68993165a58e17903ed53682560de61f3085ad4609\",\"dweb:/ipfs/QmePiuAqvXprMLmFZkGZeGjvGPAvsEDHfCDv7BoQhXu9xE\"]},\"src/contracts/libraries/ERC4626Math.sol\":{\"keccak256\":\"0x8441160513c1cbeb1c3b9ee077bcc7e7ce20006b52a77c8dd39ff0ef89699939\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://943f8cc3e26ddf649f465f40c909819f5c864717c4baa339e9e403b9374a4653\",\"dweb:/ipfs/QmXPxi1sUDsrGprZdUgCzoPEosaZMv9ZhygWQ1vAi1phAB\"]},\"src/contracts/libraries/Subnetwork.sol\":{\"keccak256\":\"0xf5ef5506fd66082b3c2e7f3df37529f5a8efad32ac62e7c8914bd63219190bfe\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba031a54ee0d0e9a270c2b9e18437f5668cfeb659cfd5fe0677459d7fcac2a56\",\"dweb:/ipfs/QmReP3H7qQ78tAfgLnJKsNEQNCQfF1X1Get38Ffd4kzq32\"]},\"src/contracts/service/OptInService.sol\":{\"keccak256\":\"0x4e0932077f2686b7990e10d59deb2535334c0d09e52ef6e57c6ab09eca21c4b1\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://7c00d311032ed4a1743aca7475f3c86ce15cdfc2218108efc3731c03d34a5278\",\"dweb:/ipfs/QmUGGfVwVhaHr5kS4177yKKYiLYzi5qZpkEmvYxBZqazxf\"]},\"src/contracts/vault/Vault.sol\":{\"keccak256\":\"0x2ceff6ed3298c4cad144c99fcc79b51cb9397d6ebef00285b915848b476f8c2e\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://11f2fb3581854f3ab6e82e8d4935d9eb510c903a13c3f022346c2956a58f5307\",\"dweb:/ipfs/QmdUnoXoyYoG9SGWyQZCFyLDRUUX3eXyXetkRvw6jxqqBz\"]},\"src/contracts/vault/VaultStorage.sol\":{\"keccak256\":\"0x57db25b127d77ea3472de53e3a4af3354399655b9268638b99ca5925fa364a56\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://aa763d9a6ec508ae3abfb8228b72b9fd9525279e5135d4962e79ff059feb1173\",\"dweb:/ipfs/QmcbDR6E9wyEpu6V2FkEC4hnWy47zXA9LSKJde6zSGd33Q\"]},\"src/interfaces/common/IEntity.sol\":{\"keccak256\":\"0x8ef4b63d6da63489778ccd5f8d13ebdd527dd4b62730b2c616df5af7474d2d21\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a8d69576a9219d85c50816a18ad53a4d53cfcb27ed38b8cccc808dc2734b71b\",\"dweb:/ipfs/QmYVN3P4Q4REvBWJ97TbAcaxm3uyB2anV6NSGa6ZtSwcEv\"]},\"src/interfaces/common/IMigratableEntity.sol\":{\"keccak256\":\"0x8f5f2809f3afbe8ebfbb365dd7b57b4dd3b6f9943a6187eaf648d45895b8e3c4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ffe640537d539e7a4fde70d30d3e4c57f4ba9c2c25c450cea713aae38e8fd5c\",\"dweb:/ipfs/QmSUTGzvdcn1R1KB7tLThMRtESsfPbeXDhhhKWGtntzBds\"]},\"src/interfaces/common/IRegistry.sol\":{\"keccak256\":\"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014\",\"dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK\"]},\"src/interfaces/common/IStaticDelegateCallable.sol\":{\"keccak256\":\"0xa335d4e81b9071b7de66ef92b43ff20671d86516eb1be46fef29a3483cd3f5d5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d464b9db863c14c05547d2b23352f2e9b7b784799cf09f6bbc4906a2a74e3516\",\"dweb:/ipfs/QmUVWzFvJz7eEbDQKiFTTzwi7TEbjcs3VmwdM4kuptAKvi\"]},\"src/interfaces/delegator/IBaseDelegator.sol\":{\"keccak256\":\"0x96bb312f032e17accce3f8f80936d99468029d6b37c9ca74acdb4b026a0148ee\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2a66dcb5b7d1a6ef6a363431ea98ebd78bc4fdd3d7a134d9b542dc66e7d025c2\",\"dweb:/ipfs/QmRhTPLd2ZAyRHmJUFUcWKs9b3if49QY17LYZuRqWmghw8\"]},\"src/interfaces/delegator/IDelegatorHook.sol\":{\"keccak256\":\"0xc51aa8d7d1f6c8043ee819b7aeb86da0e993912e1442098df897e299f01f9f46\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://adddf5cb2ba282aeb576b26efb28640f865a1721cc9b6eee8b3ee0457a2c9780\",\"dweb:/ipfs/QmNYgAmnLRwWZbhTuQhZs9rx4zcme1df5mEepkrniorSoW\"]},\"src/interfaces/delegator/IFullRestakeDelegator.sol\":{\"keccak256\":\"0xa3c8cb2e45d4d8ce90e95263bea40c01dc400f05ad65bc29597d878606be5e7d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://782cf5e201aa4cca037ebafd3807a68ff1cc721d5b8416a35244db0d0607369e\",\"dweb:/ipfs/QmQkJks6x7CKndeTPa9LxgTNygD5uEi7obhADhpq1Lsr9A\"]},\"src/interfaces/delegator/INetworkRestakeDelegator.sol\":{\"keccak256\":\"0xe7030fe30389a147fd710e3436ec346b4842695fd3e65a81b95375c9f1d633fc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://739c7e66d301778054f5c90bee45ec9438f68afba8a03eaaac52064c73b115ad\",\"dweb:/ipfs/QmfZ2ytKcTykAc76nxhg8ikUXV8NdBpetqb8W4YWPcox1Z\"]},\"src/interfaces/delegator/IOperatorNetworkSpecificDelegator.sol\":{\"keccak256\":\"0x74b95e64d29769202d45dd277bb830f623ff3d41ce77b80ce3ee4e318a5c71ec\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e512b903aae5c1b8a028c6e3f4f6223b5cb5d704503cfa6bd37b5346868f5c20\",\"dweb:/ipfs/QmZim9YExsPWtyxyeui993HTKAEmrg8MUcSkZ77Gp2JcuZ\"]},\"src/interfaces/delegator/IOperatorSpecificDelegator.sol\":{\"keccak256\":\"0x72075cab585dc17240cc3e32bc99b92f0d5627ddd988fed680e3e1a52d5a01e4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7448bc90699409ae61d85216b5efc2143a37f0f73354be2aea993bc54afca441\",\"dweb:/ipfs/QmXE4gAxM8pHosZK8mcTcj17puBx484meDCcmrDePskGHZ\"]},\"src/interfaces/service/IOptInService.sol\":{\"keccak256\":\"0x76fb5460a6d87a5705433d4fbeff7253cd75b8bbd0c888b2088f16e86ace146a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://990322019b3d11465f7024bae77ccbf7e2fe5d6fa3c754584778f37d04fa1337\",\"dweb:/ipfs/QmaSNHzcqxTkUCG9a4nqVfLECHLdjdrwAnDi3yDC7tDL24\"]},\"src/interfaces/slasher/IBaseSlasher.sol\":{\"keccak256\":\"0x7c82528b445659c313ab77335c407b0b6efe5e79027187bb287f7bc74202b404\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0274c90aa5df1aa6bb470a6aab53992fb14fd7e5472c9430416505b29647d9cf\",\"dweb:/ipfs/QmckbmJLDetPemVzCnnGcKYWAZV2BRFXGDsjiaec8jkHxx\"]},\"src/interfaces/vault/IVault.sol\":{\"keccak256\":\"0xffee01d383cd4e1a5530c614bf4360c1ef070c288abec9da1eb531b51bc07235\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://04f0046cac285d8ec44ebbb1f79dc94fab4495767190cad8364fbc1fafaadfb9\",\"dweb:/ipfs/QmUawAunwzXfCyShWfhKeThAgKtqe51hmrxvrXvM772M2R\"]},\"src/interfaces/vault/IVaultStorage.sol\":{\"keccak256\":\"0x592626f13754194f83047135de19229c49390bd59e34659b1bb38be71d973a22\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://06a6a9dfddd05e580b32bebe2cff4f63ba26a653180676d58225dd30d9c89d3e\",\"dweb:/ipfs/QmdgzBeY6Sxo8mGtyBxtv1tM1c2kU6J6zjeRd7vuXm4DU6\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.25+commit.b61c2a91"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"baseDelegatorHints","type":"address"},{"internalType":"address","name":"vaultHints","type":"address"},{"internalType":"address","name":"optInServiceHints","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"AccessControlBadConfirmation"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bytes32","name":"neededRole","type":"bytes32"}],"type":"error","name":"AccessControlUnauthorizedAccount"},{"inputs":[],"type":"error","name":"AlreadySet"},{"inputs":[],"type":"error","name":"CheckpointUnorderedInsertion"},{"inputs":[],"type":"error","name":"DuplicateRoleHolder"},{"inputs":[],"type":"error","name":"ExceedsMaxNetworkLimit"},{"inputs":[],"type":"error","name":"ExternalCall"},{"inputs":[],"type":"error","name":"InsufficientHookGas"},{"inputs":[],"type":"error","name":"InvalidInitialization"},{"inputs":[],"type":"error","name":"MissingRoleHolders"},{"inputs":[],"type":"error","name":"NotInitialized"},{"inputs":[],"type":"error","name":"NotInitializing"},{"inputs":[],"type":"error","name":"NotNetwork"},{"inputs":[],"type":"error","name":"NotSlasher"},{"inputs":[],"type":"error","name":"NotVault"},{"inputs":[],"type":"error","name":"ReentrancyGuardReentrantCall"},{"inputs":[{"internalType":"uint8","name":"bits","type":"uint8"},{"internalType":"uint256","name":"value","type":"uint256"}],"type":"error","name":"SafeCastOverflowedUintDowncast"},{"inputs":[],"type":"error","name":"ZeroAddressRoleHolder"},{"inputs":[{"internalType":"uint64","name":"version","type":"uint64","indexed":false}],"type":"event","name":"Initialized","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32","indexed":true},{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false},{"internalType":"uint48","name":"captureTimestamp","type":"uint48","indexed":false}],"type":"event","name":"OnSlash","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"bytes32","name":"previousAdminRole","type":"bytes32","indexed":true},{"internalType":"bytes32","name":"newAdminRole","type":"bytes32","indexed":true}],"type":"event","name":"RoleAdminChanged","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"address","name":"sender","type":"address","indexed":true}],"type":"event","name":"RoleGranted","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"address","name":"sender","type":"address","indexed":true}],"type":"event","name":"RoleRevoked","anonymous":false},{"inputs":[{"internalType":"address","name":"hook","type":"address","indexed":true}],"type":"event","name":"SetHook","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"SetMaxNetworkLimit","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"SetNetworkLimit","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32","indexed":true},{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"SetOperatorNetworkLimit","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"BASE_DELEGATOR_HINTS","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"DEFAULT_ADMIN_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"FACTORY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"HOOK_GAS_LIMIT","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"HOOK_RESERVE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"HOOK_SET_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"NETWORK_LIMIT_SET_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"NETWORK_REGISTRY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"OPERATOR_NETWORK_LIMIT_SET_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"OPERATOR_NETWORK_OPT_IN_SERVICE","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"OPERATOR_VAULT_OPT_IN_SERVICE","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"OPT_IN_SERVICE_HINTS","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"TYPE","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"VAULT_FACTORY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"VAULT_HINTS","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"VERSION","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getRoleAdmin","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"grantRole"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"hasRole","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"hook","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"}],"stateMutability":"view","type":"function","name":"maxNetworkLimit","outputs":[{"internalType":"uint256","name":"value","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"}],"stateMutability":"view","type":"function","name":"networkLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"uint48","name":"timestamp","type":"uint48"},{"internalType":"bytes","name":"hint","type":"bytes"}],"stateMutability":"view","type":"function","name":"networkLimitAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"delegator","type":"address"},{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"uint48","name":"timestamp","type":"uint48"}],"stateMutability":"view","type":"function","name":"networkLimitHint","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"uint48","name":"timestamp","type":"uint48"}],"stateMutability":"view","type":"function","name":"networkLimitHintInternal","outputs":[{"internalType":"bool","name":"exists","type":"bool"},{"internalType":"uint32","name":"hint","type":"uint32"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint48","name":"captureTimestamp","type":"uint48"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"onSlash"},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"operatorNetworkLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint48","name":"timestamp","type":"uint48"},{"internalType":"bytes","name":"hint","type":"bytes"}],"stateMutability":"view","type":"function","name":"operatorNetworkLimitAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"delegator","type":"address"},{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint48","name":"timestamp","type":"uint48"}],"stateMutability":"view","type":"function","name":"operatorNetworkLimitHint","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint48","name":"timestamp","type":"uint48"}],"stateMutability":"view","type":"function","name":"operatorNetworkLimitHintInternal","outputs":[{"internalType":"bool","name":"exists","type":"bool"},{"internalType":"uint32","name":"hint","type":"uint32"}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"callerConfirmation","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"renounceRole"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"revokeRole"},{"inputs":[{"internalType":"address","name":"hook_","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setHook"},{"inputs":[{"internalType":"uint96","name":"identifier","type":"uint96"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setMaxNetworkLimit"},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setNetworkLimit"},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setOperatorNetworkLimit"},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"stake","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint48","name":"timestamp","type":"uint48"},{"internalType":"bytes","name":"hints","type":"bytes"}],"stateMutability":"view","type":"function","name":"stakeAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"delegator","type":"address"},{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint48","name":"timestamp","type":"uint48"}],"stateMutability":"view","type":"function","name":"stakeHints","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"staticDelegateCall"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"vault","outputs":[{"internalType":"address","name":"","type":"address"}]}],"devdoc":{"kind":"dev","methods":{"VERSION()":{"details":"Must return 1 for this one.","returns":{"_0":"version of the delegator"}},"getRoleAdmin(bytes32)":{"details":"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}."},"grantRole(bytes32,address)":{"details":"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event."},"hasRole(bytes32,address)":{"details":"Returns `true` if `account` has been granted `role`."},"initialize(bytes)":{"params":{"data":"some data to use"}},"networkLimit(bytes32)":{"params":{"subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"},"returns":{"_0":"limit of the subnetwork"}},"networkLimitAt(bytes32,uint48,bytes)":{"params":{"hint":"hint for checkpoint index","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)","timestamp":"time point to get the subnetwork limit at"},"returns":{"_0":"limit of the subnetwork at the given timestamp"}},"onSlash(bytes32,address,uint256,uint48,bytes)":{"details":"Only the vault's slasher can call this function.","params":{"amount":"amount of the collateral slashed","captureTimestamp":"time point when the stake was captured","data":"some additional data","operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"}},"operatorNetworkLimit(bytes32,address)":{"params":{"operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"},"returns":{"_0":"limit of the operator for the subnetwork"}},"operatorNetworkLimitAt(bytes32,address,uint48,bytes)":{"params":{"hint":"hint for checkpoint index","operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)","timestamp":"time point to get the operator's limit for the subnetwork at"},"returns":{"_0":"limit of the operator for the subnetwork at the given timestamp"}},"renounceRole(bytes32,address)":{"details":"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `callerConfirmation`. May emit a {RoleRevoked} event."},"revokeRole(bytes32,address)":{"details":"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event."},"setHook(address)":{"details":"Only a HOOK_SET_ROLE holder can call this function. The hook can have arbitrary logic under certain functions, however, it doesn't affect the stake guarantees.","params":{"hook":"address of the hook"}},"setMaxNetworkLimit(uint96,uint256)":{"details":"Only a network can call this function.","params":{"amount":"new maximum subnetwork's limit"}},"setNetworkLimit(bytes32,uint256)":{"details":"Only a NETWORK_LIMIT_SET_ROLE holder can call this function.","params":{"amount":"new limit of the subnetwork","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"}},"setOperatorNetworkLimit(bytes32,address,uint256)":{"details":"Only an OPERATOR_NETWORK_LIMIT_SET_ROLE holder can call this function.","params":{"amount":"new limit of the operator for the subnetwork","operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"}},"stake(bytes32,address)":{"details":"Warning: this function is not safe to use for stake capturing, as it can change by the end of the block.","params":{"operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"},"returns":{"_0":"slashable stake until the end of the next epoch"}},"stakeAt(bytes32,address,uint48,bytes)":{"details":"Warning: it is not safe to use timestamp >= current one for the stake capturing, as it can change later.","params":{"hints":"hints for the checkpoints' indexes","operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)","timestamp":"time point to capture the stake at"},"returns":{"_0":"slashable stake at the given timestamp until the end of the consequent epoch"}},"staticDelegateCall(address,bytes)":{"details":"It allows to use this contract's storage on-chain.","params":{"data":"data to make a delegatecall with","target":"address of the contract to make a delegatecall to"}},"supportsInterface(bytes4)":{"details":"See {IERC165-supportsInterface}."}},"version":1},"userdoc":{"kind":"user","methods":{"FACTORY()":{"notice":"Get the factory's address."},"HOOK_GAS_LIMIT()":{"notice":"Get a gas limit for the hook."},"HOOK_RESERVE()":{"notice":"Get a reserve gas between the gas limit check and the hook's execution."},"HOOK_SET_ROLE()":{"notice":"Get a hook setter's role."},"NETWORK_LIMIT_SET_ROLE()":{"notice":"Get a subnetwork limit setter's role."},"NETWORK_REGISTRY()":{"notice":"Get the network registry's address."},"OPERATOR_NETWORK_LIMIT_SET_ROLE()":{"notice":"Get an operator-subnetwork limit setter's role."},"OPERATOR_NETWORK_OPT_IN_SERVICE()":{"notice":"Get the operator-network opt-in service's address."},"OPERATOR_VAULT_OPT_IN_SERVICE()":{"notice":"Get the operator-vault opt-in service's address."},"TYPE()":{"notice":"Get the entity's type."},"VAULT_FACTORY()":{"notice":"Get the vault factory's address."},"VERSION()":{"notice":"Get a version of the delegator (different versions mean different interfaces)."},"hook()":{"notice":"Get the hook's address."},"initialize(bytes)":{"notice":"Initialize this entity contract by using a given data."},"maxNetworkLimit(bytes32)":{"notice":"Get a particular subnetwork's maximum limit (meaning the subnetwork is not ready to get more as a stake)."},"networkLimit(bytes32)":{"notice":"Get a subnetwork's limit (how much stake the vault curator is ready to give to the subnetwork)."},"networkLimitAt(bytes32,uint48,bytes)":{"notice":"Get a subnetwork's limit at a given timestamp using a hint (how much stake the vault curator is ready to give to the subnetwork)."},"onSlash(bytes32,address,uint256,uint48,bytes)":{"notice":"Called when a slash happens."},"operatorNetworkLimit(bytes32,address)":{"notice":"Get an operator's limit for a subnetwork. (how much stake the vault curator is ready to give to the operator for the subnetwork)"},"operatorNetworkLimitAt(bytes32,address,uint48,bytes)":{"notice":"Get an operator's limit for a subnetwork at a given timestamp using a hint (how much stake the vault curator is ready to give to the operator for the subnetwork)."},"setHook(address)":{"notice":"Set a new hook."},"setMaxNetworkLimit(uint96,uint256)":{"notice":"Set a maximum limit for a subnetwork (how much stake the subnetwork is ready to get). identifier identifier of the subnetwork"},"setNetworkLimit(bytes32,uint256)":{"notice":"Set a subnetwork's limit (how much stake the vault curator is ready to give to the subnetwork)."},"setOperatorNetworkLimit(bytes32,address,uint256)":{"notice":"Set an operator's limit for a subnetwork. (how much stake the vault curator is ready to give to the operator for the subnetwork)"},"stake(bytes32,address)":{"notice":"Get a stake that a given subnetwork will be able to slash for a certain operator until the end of the next epoch (if no cross-slashing and no slashings by the subnetwork)."},"stakeAt(bytes32,address,uint48,bytes)":{"notice":"Get a stake that a given subnetwork could be able to slash for a certain operator at a given timestamp until the end of the consequent epoch using hints (if no cross-slashing and no slashings by the subnetwork)."},"staticDelegateCall(address,bytes)":{"notice":"Make a delegatecall from this contract to a given target contract with a particular data (always reverts with a return data)."},"vault()":{"notice":"Get the vault's address."}},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/contracts/hints/DelegatorHints.sol":"FullRestakeDelegatorHints"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol":{"keccak256":"0x6662ec4e5cefca03eeadd073e9469df8d2944bb2ee8ec8f7622c2c46aab5f225","urls":["bzz-raw://4d8544c6f8daa4d1bc215c6a72fe0acdb748664a105b0e5efc19295667521d45","dweb:/ipfs/QmdGWqdnXT8S3RgCR6aV8XHZrsybieMQLLnug1NtpSjEXN"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol":{"keccak256":"0xc163fcf9bb10138631a9ba5564df1fa25db9adff73bd9ee868a8ae1858fe093a","urls":["bzz-raw://9706d43a0124053d9880f6e31a59f31bc0a6a3dc1acd66ce0a16e1111658c5f6","dweb:/ipfs/QmUFmfowzkRwGtDu36cXV9SPTBHJ3n7dG9xQiK5B28jTf2"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b","urls":["bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609","dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol":{"keccak256":"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397","urls":["bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9","dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardUpgradeable.sol":{"keccak256":"0xb44e086e941292cdc7f440de51478493894ef0b1aeccb0c4047445919f667f74","urls":["bzz-raw://942dad22fbdc1669f025540ba63aa3ccfad5f8458fc5d4525b31ebf272e7af45","dweb:/ipfs/Qmdo4X2M82aM3AMoW2kf2jhYkSCyC4T1pHNd6obdsDFnAB"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol":{"keccak256":"0xdaba3f7c42c55b2896353f32bd27d4d5f8bae741b3b05d4c53f67abc4dc47ce8","urls":["bzz-raw://1fa2e61141c602510bcd2cd936ed9561922ac8772a9b9c9a9db091a74e354a45","dweb:/ipfs/QmcHQDDoEBwJmwUbzoVkytvJsBx3KVHYFFnDkvRGWh9Wmh"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol":{"keccak256":"0xb6b36edd6a2999fd243ff226d6cbf84bd71af2432bbd0dfe19392996a1d9cb41","urls":["bzz-raw://1fd2f35495652e57e3f99bc6c510bc5f7dd398a176ea2e72d8ed730aebc6ca26","dweb:/ipfs/QmTQV6X4gkikTib49cho5iDX3JvSQbdsoEChoDwrk3CbbH"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC1271.sol":{"keccak256":"0x85a45f3f10014a0f8be41157a32b6a5f905753ea64a4b64e29fc12b7deeecf39","urls":["bzz-raw://c3c74009ce36136b36c77c23935b8e4a7b4f253be2da2be4fb4a916b1ce43743","dweb:/ipfs/QmcH36v3iN7SJJuF73AunLR2LtNxhVJ1wm63ph4dPZ4pcL"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC5267.sol":{"keccak256":"0x92aa1df62dc3d33f1656d63bede0923e0df0b706ad4137c8b10b0a8fe549fd92","urls":["bzz-raw://c5c0f29195ad64cbe556da8e257dac8f05f78c53f90323c0d2accf8e6922d33a","dweb:/ipfs/QmQ61TED8uaCZwcbh8KkgRSsCav7x7HbcGHwHts3U4DmUP"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70","urls":["bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c","dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol":{"keccak256":"0x6008dabfe393240d73d7dd7688033f72740d570aa422254d29a7dce8568f3aff","urls":["bzz-raw://f5196ec75139918c6c7bb4251b36395e668f1fa6d206beba7e7520e74913940d","dweb:/ipfs/QmSyqjksXxmm2mCG6qRd1yuwLykypkSVBbnBnGqJRcuJMi"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0x37bb49513c49c87c4642a891b13b63571bc87013dde806617aa1efb54605f386","urls":["bzz-raw://b3036b3a83b7c48f96641f2a9002b9f2dcb6a5958dd670894ada21ae8229b3d0","dweb:/ipfs/QmUNfSBdoVtjhETaUJCYcaC7pTMgbhht926tJ2uXJbiVd3"],"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/ShortStrings.sol":{"keccak256":"0x18a7171df639a934592915a520ecb97c5bbc9675a1105607aac8a94e72bf62c6","urls":["bzz-raw://7478e1f13da69a2867ccd883001d836b75620362e743f196376d63ed0c422a1c","dweb:/ipfs/QmWywcQ9TNfwtoqAxbn25d8C5VrV12PrPS9UjtGe6pL2BA"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol":{"keccak256":"0x32ba59b4b7299237c8ba56319110989d7978a039faf754793064e967e5894418","urls":["bzz-raw://1ae50c8b562427df610cc4540c9bf104acca7ef8e2dcae567ae7e52272281e9c","dweb:/ipfs/QmTHiadFCSJUPpRjNegc5SahmeU8bAoY8i9Aq6tVscbcKR"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0x55f102ea785d8399c0e58d1108e2d289506dde18abc6db1b7f68c1f9f9bc5792","urls":["bzz-raw://6e52e0a7765c943ef14e5bcf11e46e6139fa044be564881378349236bf2e3453","dweb:/ipfs/QmZEeeXoFPW47amyP35gfzomF9DixqqTEPwzBakv6cZw6i"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol":{"keccak256":"0xeed0a08b0b091f528356cbc7245891a4c748682d4f6a18055e8e6ca77d12a6cf","urls":["bzz-raw://ba80ba06c8e6be852847e4c5f4492cef801feb6558ae09ed705ff2e04ea8b13c","dweb:/ipfs/QmXRJDv3xHLVQCVXg1ZvR35QS9sij5y9NDWYzMfUfAdTHF"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/EIP712.sol":{"keccak256":"0x999f705a027ed6dc2d4e0df2cc4a509852c6bfd11de1c8161bf88832d0503fd0","urls":["bzz-raw://0798def67258d9a3cc20b2b4da7ebf351a5cefe0abfdd665d2d81f8e32f89b21","dweb:/ipfs/QmPEvJosnPfzHNjKvCv2D3891mA2Ww8eUwkqrxBjuYdHCt"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol":{"keccak256":"0xba333517a3add42cd35fe877656fc3dfcc9de53baa4f3aabbd6d12a92e4ea435","urls":["bzz-raw://2ceacff44c0fdc81e48e0e0b1db87a2076d3c1fb497341de077bf1da9f6b406c","dweb:/ipfs/QmRUo1muMRAewxrKQ7TkXUtknyRoR57AyEkoPpiuZQ8FzX"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/SignatureChecker.sol":{"keccak256":"0x6b11eb41a228cca35d4b662b4df69fcd75192851365102690f57b2ac01e83fe6","urls":["bzz-raw://ab006a2983ed350d2af21ddcdd835dcae3b8340086cc4d088460da5abd041f69","dweb:/ipfs/QmbEacDhkJZiGrgzLjB4pNtE8Z1uudjDw1DvcDUTVQFsLG"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b","urls":["bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df","dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d","urls":["bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875","dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol":{"keccak256":"0xe19a4d5f31d2861e7344e8e535e2feafb913d806d3e2b5fe7782741a2a7094fe","urls":["bzz-raw://4aed79c0fa6f0546ed02f2f683e8f77f0fd2ed7eb34d8bbf3d373c9a6d95b13c","dweb:/ipfs/QmWqVz6UAVqmnWU5pqYPt1o6iDEZyPaBraAA3rKfTTSfYj"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0x5f7e4076e175393767754387c962926577f1660dd9b810187b9002407656be72","urls":["bzz-raw://7d533a1c97cd43a57cd9c465f7ee8dd0e39ae93a8fb8ff8e5303a356b081cdcc","dweb:/ipfs/QmVBEei6aTnvYNZp2CHYVNKyZS4q1KkjANfY39WVXZXVoT"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/Checkpoints.sol":{"keccak256":"0xbdc5e074d7dd6678f67e92b1a51a20226801a407b0e1af3da367c5d1ff4519ad","urls":["bzz-raw://a36cca6b22fff3db16fc789ff6c60eea71d4b156065d4d0c83a0bc5e91a77a8b","dweb:/ipfs/QmYN3exd5AemxjBrN8XMB1p5LbbE16uC3sjbYjwi8AjcGR"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/types/Time.sol":{"keccak256":"0xc7755af115020049e4140f224f9ee88d7e1799ffb0646f37bf0df24bf6213f58","urls":["bzz-raw://7f09bf94d5274334ec021f61a04659db303f31e60460e14b709c9bf187740111","dweb:/ipfs/QmNvgomZYUwFAt4cZbPWAiTeSZQreGehY9BK5xyVJsUttb"],"license":"MIT"},"src/contracts/common/Entity.sol":{"keccak256":"0x3d61a932995b8443381f3950542d388223a2c26dd5d29a3274dea3baa7388bd7","urls":["bzz-raw://7cdf5f03ca72fd263fd32ff59c8d88ddca911ae83896a287d10772c1bbe9b138","dweb:/ipfs/QmbP84r5BWT1Rn9AYTntWSf3xUMTTCohTZJFhbBhDXFoHa"],"license":"BUSL-1.1"},"src/contracts/common/MigratableEntity.sol":{"keccak256":"0x2d736f4dacd5d7e7697503bc426c78b8250fe1694ca157965ec178da6807de58","urls":["bzz-raw://f1237acf96b4b9f9b69156e068eddd726a6e15bd8e87a18dc999cd4ba4da069c","dweb:/ipfs/QmS6M8fiFFSeuJ4ZKKq1z8W7w4ybeHQSy5TLASGoc1LVic"],"license":"BUSL-1.1"},"src/contracts/common/StaticDelegateCallable.sol":{"keccak256":"0x350029aa8955eacaffffaeb58babc5c98e80ebc5c5db388ed17ee6465f4a9d90","urls":["bzz-raw://eb392a8ee9050e0af606897df63e3404e3829e8b688b580663892f9664195764","dweb:/ipfs/QmaXC8jqV8UrrAFkzXTEv2fJF56sy33HhLxAzaRZmUxuXD"],"license":"BUSL-1.1"},"src/contracts/delegator/BaseDelegator.sol":{"keccak256":"0x7c54d491fdd4415b764a9c8defa068e56d4c0c8c9419be0053a1d377669290e8","urls":["bzz-raw://9238bfbad0f6eeb0dc7727724de14380f1980b395902269703d5e2ef07e52e10","dweb:/ipfs/QmPJn1V4HNXcEghYvogGuSTF24dSQUPosR5qtsXcmNqRm3"],"license":"BUSL-1.1"},"src/contracts/delegator/FullRestakeDelegator.sol":{"keccak256":"0x0a81c4f8e72914563a9cb771e93acf889c71ea36b7bec040e4eb562b199d5af1","urls":["bzz-raw://6fc66b6ba02da77046a0bbbd1dd407a62c08f52e04486c9cbd2cb1cca3da555f","dweb:/ipfs/QmZQivK1ZnMxfRQQ5aLpV9co5u55wQVNev5Rg1hzAqxhkE"],"license":"BUSL-1.1"},"src/contracts/delegator/NetworkRestakeDelegator.sol":{"keccak256":"0xd3a8e6522f9c6fdcc2da837c9023afd6bdff2bce45a35590320c475519e3636d","urls":["bzz-raw://58b17a87f6554f08376f9ea7fedf486a4aa75801bf0ad8b23ff5a46959b6b7a3","dweb:/ipfs/QmSTmNh67tYt8CmjVZb57r8N3qX5yeYdMApKPJm3qvQgQw"],"license":"BUSL-1.1"},"src/contracts/delegator/OperatorNetworkSpecificDelegator.sol":{"keccak256":"0x031a10722b9ec49048f0952710401131290adb87e71caf294e864e7ac3b98a16","urls":["bzz-raw://72428febc875134b2f29205e6f294634a1c22a7d5c78d6a9cb2f8196f107c9b5","dweb:/ipfs/QmTPwXR6h5oytckmkLrHdKeEMdphJxceDhYUR4zvQeWAwY"],"license":"BUSL-1.1"},"src/contracts/delegator/OperatorSpecificDelegator.sol":{"keccak256":"0x630ce62fa30b9f3349ab7a8cf8dbf041319febc6dd757be2f94d3d25944ed328","urls":["bzz-raw://c2ac59d47ce57d2a6819ae9833e1a618a371eccff93eb5ab367b201b01f42bfa","dweb:/ipfs/QmdBpGMBivpNPv2WbH8vnCUy5xkVeaxQvGgqi33vKCz1kA"],"license":"BUSL-1.1"},"src/contracts/hints/DelegatorHints.sol":{"keccak256":"0x44aa0c396311a54afbc7c73e8dadeed41e3165a4fd13f712b27d63d50fc3376d","urls":["bzz-raw://2f255214f3531fc707d88be0d56a7a0aed4180439316d099d760d9118aa83093","dweb:/ipfs/QmZD1w5p1ukJSXumUAjvxwGmkPhn7vsr21Y2atLGEZR2oi"],"license":"BUSL-1.1"},"src/contracts/hints/Hints.sol":{"keccak256":"0x8b565df1ae35993c097a9e642002782a8f451f6fd01809cad6bcd345bdf1b99c","urls":["bzz-raw://99a19adb01e350a92f534095b3078229df1f2f83077992d75d58d8684be45971","dweb:/ipfs/QmbmwcuswVbzvwHQFTtrJG86oV98GnfxqYTb8cV8u1acox"],"license":"BUSL-1.1"},"src/contracts/hints/OptInServiceHints.sol":{"keccak256":"0x95d9407900d27b9f4a1233b772aeed809c07b2dc5b31cfc9fa77ca26514c49e5","urls":["bzz-raw://a13a8877e312d7e6b8b85bde3668c5d84ff5ecc83f762cd573f2b7104c64eb42","dweb:/ipfs/QmYV2J55acuGzCNnS3juABuUHY5U1xc8g8o9jwEyFFdeG5"],"license":"BUSL-1.1"},"src/contracts/hints/VaultHints.sol":{"keccak256":"0xccb505b7159b769cc114d67b87c2de6b106557f667fc8f3780114baad5c3c442","urls":["bzz-raw://6d0c80a908fc16e96a8b5605a0bd53f9e89ad0ef0a738fbbae80ba4d3160749b","dweb:/ipfs/QmXo5UtWoR8YmunqcbBU8rQMm1nvmvjNPoXcVrDhh4pEwR"],"license":"BUSL-1.1"},"src/contracts/libraries/Checkpoints.sol":{"keccak256":"0xba90097c8bfe0a975499428b5f8ac5569483c7d92ccc28c12d70de416aae040c","urls":["bzz-raw://12f5d93ca94cd06d3147db68993165a58e17903ed53682560de61f3085ad4609","dweb:/ipfs/QmePiuAqvXprMLmFZkGZeGjvGPAvsEDHfCDv7BoQhXu9xE"],"license":"MIT"},"src/contracts/libraries/ERC4626Math.sol":{"keccak256":"0x8441160513c1cbeb1c3b9ee077bcc7e7ce20006b52a77c8dd39ff0ef89699939","urls":["bzz-raw://943f8cc3e26ddf649f465f40c909819f5c864717c4baa339e9e403b9374a4653","dweb:/ipfs/QmXPxi1sUDsrGprZdUgCzoPEosaZMv9ZhygWQ1vAi1phAB"],"license":"MIT"},"src/contracts/libraries/Subnetwork.sol":{"keccak256":"0xf5ef5506fd66082b3c2e7f3df37529f5a8efad32ac62e7c8914bd63219190bfe","urls":["bzz-raw://ba031a54ee0d0e9a270c2b9e18437f5668cfeb659cfd5fe0677459d7fcac2a56","dweb:/ipfs/QmReP3H7qQ78tAfgLnJKsNEQNCQfF1X1Get38Ffd4kzq32"],"license":"MIT"},"src/contracts/service/OptInService.sol":{"keccak256":"0x4e0932077f2686b7990e10d59deb2535334c0d09e52ef6e57c6ab09eca21c4b1","urls":["bzz-raw://7c00d311032ed4a1743aca7475f3c86ce15cdfc2218108efc3731c03d34a5278","dweb:/ipfs/QmUGGfVwVhaHr5kS4177yKKYiLYzi5qZpkEmvYxBZqazxf"],"license":"BUSL-1.1"},"src/contracts/vault/Vault.sol":{"keccak256":"0x2ceff6ed3298c4cad144c99fcc79b51cb9397d6ebef00285b915848b476f8c2e","urls":["bzz-raw://11f2fb3581854f3ab6e82e8d4935d9eb510c903a13c3f022346c2956a58f5307","dweb:/ipfs/QmdUnoXoyYoG9SGWyQZCFyLDRUUX3eXyXetkRvw6jxqqBz"],"license":"BUSL-1.1"},"src/contracts/vault/VaultStorage.sol":{"keccak256":"0x57db25b127d77ea3472de53e3a4af3354399655b9268638b99ca5925fa364a56","urls":["bzz-raw://aa763d9a6ec508ae3abfb8228b72b9fd9525279e5135d4962e79ff059feb1173","dweb:/ipfs/QmcbDR6E9wyEpu6V2FkEC4hnWy47zXA9LSKJde6zSGd33Q"],"license":"BUSL-1.1"},"src/interfaces/common/IEntity.sol":{"keccak256":"0x8ef4b63d6da63489778ccd5f8d13ebdd527dd4b62730b2c616df5af7474d2d21","urls":["bzz-raw://5a8d69576a9219d85c50816a18ad53a4d53cfcb27ed38b8cccc808dc2734b71b","dweb:/ipfs/QmYVN3P4Q4REvBWJ97TbAcaxm3uyB2anV6NSGa6ZtSwcEv"],"license":"MIT"},"src/interfaces/common/IMigratableEntity.sol":{"keccak256":"0x8f5f2809f3afbe8ebfbb365dd7b57b4dd3b6f9943a6187eaf648d45895b8e3c4","urls":["bzz-raw://0ffe640537d539e7a4fde70d30d3e4c57f4ba9c2c25c450cea713aae38e8fd5c","dweb:/ipfs/QmSUTGzvdcn1R1KB7tLThMRtESsfPbeXDhhhKWGtntzBds"],"license":"MIT"},"src/interfaces/common/IRegistry.sol":{"keccak256":"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb","urls":["bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014","dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK"],"license":"MIT"},"src/interfaces/common/IStaticDelegateCallable.sol":{"keccak256":"0xa335d4e81b9071b7de66ef92b43ff20671d86516eb1be46fef29a3483cd3f5d5","urls":["bzz-raw://d464b9db863c14c05547d2b23352f2e9b7b784799cf09f6bbc4906a2a74e3516","dweb:/ipfs/QmUVWzFvJz7eEbDQKiFTTzwi7TEbjcs3VmwdM4kuptAKvi"],"license":"MIT"},"src/interfaces/delegator/IBaseDelegator.sol":{"keccak256":"0x96bb312f032e17accce3f8f80936d99468029d6b37c9ca74acdb4b026a0148ee","urls":["bzz-raw://2a66dcb5b7d1a6ef6a363431ea98ebd78bc4fdd3d7a134d9b542dc66e7d025c2","dweb:/ipfs/QmRhTPLd2ZAyRHmJUFUcWKs9b3if49QY17LYZuRqWmghw8"],"license":"MIT"},"src/interfaces/delegator/IDelegatorHook.sol":{"keccak256":"0xc51aa8d7d1f6c8043ee819b7aeb86da0e993912e1442098df897e299f01f9f46","urls":["bzz-raw://adddf5cb2ba282aeb576b26efb28640f865a1721cc9b6eee8b3ee0457a2c9780","dweb:/ipfs/QmNYgAmnLRwWZbhTuQhZs9rx4zcme1df5mEepkrniorSoW"],"license":"MIT"},"src/interfaces/delegator/IFullRestakeDelegator.sol":{"keccak256":"0xa3c8cb2e45d4d8ce90e95263bea40c01dc400f05ad65bc29597d878606be5e7d","urls":["bzz-raw://782cf5e201aa4cca037ebafd3807a68ff1cc721d5b8416a35244db0d0607369e","dweb:/ipfs/QmQkJks6x7CKndeTPa9LxgTNygD5uEi7obhADhpq1Lsr9A"],"license":"MIT"},"src/interfaces/delegator/INetworkRestakeDelegator.sol":{"keccak256":"0xe7030fe30389a147fd710e3436ec346b4842695fd3e65a81b95375c9f1d633fc","urls":["bzz-raw://739c7e66d301778054f5c90bee45ec9438f68afba8a03eaaac52064c73b115ad","dweb:/ipfs/QmfZ2ytKcTykAc76nxhg8ikUXV8NdBpetqb8W4YWPcox1Z"],"license":"MIT"},"src/interfaces/delegator/IOperatorNetworkSpecificDelegator.sol":{"keccak256":"0x74b95e64d29769202d45dd277bb830f623ff3d41ce77b80ce3ee4e318a5c71ec","urls":["bzz-raw://e512b903aae5c1b8a028c6e3f4f6223b5cb5d704503cfa6bd37b5346868f5c20","dweb:/ipfs/QmZim9YExsPWtyxyeui993HTKAEmrg8MUcSkZ77Gp2JcuZ"],"license":"MIT"},"src/interfaces/delegator/IOperatorSpecificDelegator.sol":{"keccak256":"0x72075cab585dc17240cc3e32bc99b92f0d5627ddd988fed680e3e1a52d5a01e4","urls":["bzz-raw://7448bc90699409ae61d85216b5efc2143a37f0f73354be2aea993bc54afca441","dweb:/ipfs/QmXE4gAxM8pHosZK8mcTcj17puBx484meDCcmrDePskGHZ"],"license":"MIT"},"src/interfaces/service/IOptInService.sol":{"keccak256":"0x76fb5460a6d87a5705433d4fbeff7253cd75b8bbd0c888b2088f16e86ace146a","urls":["bzz-raw://990322019b3d11465f7024bae77ccbf7e2fe5d6fa3c754584778f37d04fa1337","dweb:/ipfs/QmaSNHzcqxTkUCG9a4nqVfLECHLdjdrwAnDi3yDC7tDL24"],"license":"MIT"},"src/interfaces/slasher/IBaseSlasher.sol":{"keccak256":"0x7c82528b445659c313ab77335c407b0b6efe5e79027187bb287f7bc74202b404","urls":["bzz-raw://0274c90aa5df1aa6bb470a6aab53992fb14fd7e5472c9430416505b29647d9cf","dweb:/ipfs/QmckbmJLDetPemVzCnnGcKYWAZV2BRFXGDsjiaec8jkHxx"],"license":"MIT"},"src/interfaces/vault/IVault.sol":{"keccak256":"0xffee01d383cd4e1a5530c614bf4360c1ef070c288abec9da1eb531b51bc07235","urls":["bzz-raw://04f0046cac285d8ec44ebbb1f79dc94fab4495767190cad8364fbc1fafaadfb9","dweb:/ipfs/QmUawAunwzXfCyShWfhKeThAgKtqe51hmrxvrXvM772M2R"],"license":"MIT"},"src/interfaces/vault/IVaultStorage.sol":{"keccak256":"0x592626f13754194f83047135de19229c49390bd59e34659b1bb38be71d973a22","urls":["bzz-raw://06a6a9dfddd05e580b32bebe2cff4f63ba26a653180676d58225dd30d9c89d3e","dweb:/ipfs/QmdgzBeY6Sxo8mGtyBxtv1tM1c2kU6J6zjeRd7vuXm4DU6"],"license":"MIT"}},"version":1},"id":86} \ No newline at end of file diff --git a/out/DelegatorHints.sol/NetworkRestakeDelegatorHints.json b/out/DelegatorHints.sol/NetworkRestakeDelegatorHints.json index b826bb26..67f959e7 100644 --- a/out/DelegatorHints.sol/NetworkRestakeDelegatorHints.json +++ b/out/DelegatorHints.sol/NetworkRestakeDelegatorHints.json @@ -1 +1 @@ -{"abi":[{"type":"constructor","inputs":[{"name":"baseDelegatorHints","type":"address","internalType":"address"},{"name":"vaultHints","type":"address","internalType":"address"},{"name":"optInServiceHints","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"BASE_DELEGATOR_HINTS","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"DEFAULT_ADMIN_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"FACTORY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"HOOK_GAS_LIMIT","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"HOOK_RESERVE","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"HOOK_SET_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"NETWORK_LIMIT_SET_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"NETWORK_REGISTRY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"OPERATOR_NETWORK_OPT_IN_SERVICE","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"OPERATOR_NETWORK_SHARES_SET_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"OPERATOR_VAULT_OPT_IN_SERVICE","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"OPT_IN_SERVICE_HINTS","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"TYPE","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"VAULT_FACTORY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"VAULT_HINTS","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"VERSION","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"pure"},{"type":"function","name":"getRoleAdmin","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"grantRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"hasRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"hook","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"initialize","inputs":[{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"maxNetworkLimit","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"value","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"networkLimit","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"networkLimitAt","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"timestamp","type":"uint48","internalType":"uint48"},{"name":"hint","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"networkLimitHint","inputs":[{"name":"delegator","type":"address","internalType":"address"},{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"timestamp","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"networkLimitHintInternal","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"timestamp","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"exists","type":"bool","internalType":"bool"},{"name":"hint","type":"uint32","internalType":"uint32"}],"stateMutability":"view"},{"type":"function","name":"onSlash","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"captureTimestamp","type":"uint48","internalType":"uint48"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"operatorNetworkShares","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"operatorNetworkSharesAt","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"timestamp","type":"uint48","internalType":"uint48"},{"name":"hint","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"operatorNetworkSharesHint","inputs":[{"name":"delegator","type":"address","internalType":"address"},{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"timestamp","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"operatorNetworkSharesHintInternal","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"timestamp","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"exists","type":"bool","internalType":"bool"},{"name":"hint","type":"uint32","internalType":"uint32"}],"stateMutability":"view"},{"type":"function","name":"renounceRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"callerConfirmation","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"revokeRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setHook","inputs":[{"name":"hook_","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setMaxNetworkLimit","inputs":[{"name":"identifier","type":"uint96","internalType":"uint96"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setNetworkLimit","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setOperatorNetworkShares","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"shares","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"stake","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"stakeAt","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"timestamp","type":"uint48","internalType":"uint48"},{"name":"hints","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"stakeHints","inputs":[{"name":"delegator","type":"address","internalType":"address"},{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"timestamp","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"staticDelegateCall","inputs":[{"name":"target","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"totalOperatorNetworkShares","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"totalOperatorNetworkSharesAt","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"timestamp","type":"uint48","internalType":"uint48"},{"name":"hint","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"totalOperatorNetworkSharesHint","inputs":[{"name":"delegator","type":"address","internalType":"address"},{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"timestamp","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"totalOperatorNetworkSharesHintInternal","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"timestamp","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"exists","type":"bool","internalType":"bool"},{"name":"hint","type":"uint32","internalType":"uint32"}],"stateMutability":"view"},{"type":"function","name":"vault","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"OnSlash","inputs":[{"name":"subnetwork","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"captureTimestamp","type":"uint48","indexed":false,"internalType":"uint48"}],"anonymous":false},{"type":"event","name":"RoleAdminChanged","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"previousAdminRole","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"newAdminRole","type":"bytes32","indexed":true,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"RoleGranted","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"sender","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"RoleRevoked","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"sender","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"SetHook","inputs":[{"name":"hook","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"SetMaxNetworkLimit","inputs":[{"name":"subnetwork","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"SetNetworkLimit","inputs":[{"name":"subnetwork","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"SetOperatorNetworkShares","inputs":[{"name":"subnetwork","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"shares","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"error","name":"AccessControlBadConfirmation","inputs":[]},{"type":"error","name":"AccessControlUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"neededRole","type":"bytes32","internalType":"bytes32"}]},{"type":"error","name":"AlreadySet","inputs":[]},{"type":"error","name":"CheckpointUnorderedInsertion","inputs":[]},{"type":"error","name":"DuplicateRoleHolder","inputs":[]},{"type":"error","name":"ExceedsMaxNetworkLimit","inputs":[]},{"type":"error","name":"ExternalCall","inputs":[]},{"type":"error","name":"InsufficientHookGas","inputs":[]},{"type":"error","name":"InvalidInitialization","inputs":[]},{"type":"error","name":"MathOverflowedMulDiv","inputs":[]},{"type":"error","name":"MissingRoleHolders","inputs":[]},{"type":"error","name":"NotInitialized","inputs":[]},{"type":"error","name":"NotInitializing","inputs":[]},{"type":"error","name":"NotNetwork","inputs":[]},{"type":"error","name":"NotSlasher","inputs":[]},{"type":"error","name":"NotVault","inputs":[]},{"type":"error","name":"ReentrancyGuardReentrantCall","inputs":[]},{"type":"error","name":"SafeCastOverflowedUintDowncast","inputs":[{"name":"bits","type":"uint8","internalType":"uint8"},{"name":"value","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ZeroAddressRoleHolder","inputs":[]}],"bytecode":{"object":"0x6101c0346101cf57601f6138de38819003918201601f19168301916001600160401b0391828411858510176101d35781606092869260409687528339810103126101cf5761004c836101e7565b926100648361005d602084016101e7565b92016101e7565b91306080527ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a009081549060ff82871c166101be57808083160361017a575b5050505f60a0525f60c0525f60e052610100935f8552610120935f8552610140905f82526101609283526101809384526101a094855251946136e296876101fc88396080518781816105a001528181610fd70152611629015260a051876109e9015260c051876112ac015260e05187818161084b01526112e5015251868181610512015261298501525185818161055601528181611e330152611f3b0152518481816107c901528181611d9a0152611fb9015251838181610e95015261194d015251828181610d9701526119ee015251816110490152f35b6001600160401b0319909116811790915583519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a15f80806100a2565b855163f92ee8a960e01b8152600490fd5b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b51906001600160a01b03821682036101cf5756fe60806040526004361015610011575f80fd5b5f3560e01c806301ffc9a71461030457806302145348146102ff57806307f9d5fd146102fa578063103f2907146102f5578063128e5d82146102f0578063197aa7ea146102eb5780631a7a7044146102e65780631a80e500146102e157806323f752d5146102dc578063248a9ca3146102d757806325dc9708146102d25780632dd31000146102cd5780632f2ff15d146102c857806336568abe146102c35780633dfd3873146102be5780633eb22c0f146102b957806342c53e33146102b4578063439fab91146102af57806345e78fcb146102aa578063557cab44146102a55780635d32a1c9146102a05780636679191e1461029b57806379d89614146102965780637d24bb27146102915780637f5a7c7b1461028c5780638b3f10b01461028757806391d1485414610282578063987b3ee81461027d5780639b656b22146102785780639f86fd8514610273578063a217fddf1461026e578063a33bc28714610269578063b549ef1f14610264578063bb24fe8a1461025f578063c0cd7c3e1461025a578063c43dc03f14610255578063d15b740e14610250578063d547741f1461024b578063da749d2b14610246578063e02f693714610241578063e49561ee1461023c578063e78eb6ae14610237578063ed4d89e514610232578063fbfa77cf1461022d578063fd4d447c14610228578063ff54740f146102235763ffa1ad741461021e575f80fd5b6116dc565b6116bf565b611695565b61166e565b61160e565b6115d4565b6113e9565b6113cd565b6113b3565b611367565b61133d565b611314565b6112d0565b61128d565b611273565b611126565b61110c565b611078565b611034565b610fa6565b610f48565b610f25565b610efd565b610ec4565b610e80565b610e46565b610e23565b610dc6565b610d82565b610c4a565b610bd1565b610ba8565b610aaf565b610a64565b610a18565b6109d4565b6109b7565b61097e565b6107f8565b6107b4565b61076e565b610585565b610541565b6104fd565b6104c8565b61035e565b3461035a57602036600319011261035a5760043563ffffffff60e01b811680910361035a57602090637965db0b60e01b8114908115610349575b506040519015158152f35b6301ffc9a760e01b1490505f61033e565b5f80fd5b3461035a5760408060031936011261035a57600435906024359061038061202e565b825f526002602052805f2054821161041a57825f526003602052816103a6825f206128d7565b1461040a5781610405916103f57e899d104fc3d8820bd96540612bcc5c448c8837b13b9f7faa43ad0728f0c14f946103e6875f52600360205260405f2090565b6103ef42612d7a565b90612176565b5050519081529081906020820190565b0390a2005b5163a741a04560e01b8152600490fd5b51631eefc06360e31b8152600490fd5b6001600160a01b0381160361035a57565b6024359065ffffffffffff8216820361035a57565b6064359065ffffffffffff8216820361035a57565b608090600319011261035a5760043561047d8161042a565b906024359060443561048e8161042a565b9060643565ffffffffffff8116810361035a5790565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b3461035a576104f96104e56104dc36610465565b92919091611736565b6040519182916020835260208301906104a4565b0390f35b3461035a575f36600319011261035a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461035a575f36600319011261035a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461035a57604036600319011261035a5761059e61043b565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163303610602576105e5906004355f52600360205260405f206122f5565b60408051941515855263ffffffff91909116602085015292915050f35b604051637ca475e560e11b8152600490fd5b634e487b7160e01b5f52604160045260245ffd5b604081019081106001600160401b0382111761064357604052565b610614565b606081019081106001600160401b0382111761064357604052565b60a081019081106001600160401b0382111761064357604052565b90601f801991011681019081106001600160401b0382111761064357604052565b604051906106ac82610663565b565b604051906106ac82610628565b6001600160401b03811161064357601f01601f191660200190565b81601f8201121561035a578035906106ed826106bb565b926106fb604051948561067e565b8284526020838301011161035a57815f926020809301838601378301015290565b90608060031983011261035a57600435916024356107398161042a565b9160443565ffffffffffff8116810361035a5791606435906001600160401b03821161035a5761076b916004016106d6565b90565b3461035a5760206107ac6107a76107843661071c565b939190925f526005865260405f209060018060a01b03165f5260205260405f2090565b61242d565b604051908152f35b3461035a575f36600319011261035a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461035a57604036600319011261035a576004356001600160601b038116810361035a5760243590610828612505565b6040516302910f8b60e31b81523360048201526020816024816001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165afa908115610979575f9161094a575b5015610938576001600160601b03166bffffffffffffffffffffffff193360601b161790806108b2835f52600260205260405f2090565b54146109265761090b817fc67e7929681aa1bccd63f52b3799bf5805f3009f197db6fdf584b14f7fbf608c926108f0855f52600260205260405f2090565b556108fb8185612534565b6040519081529081906020820190565b0390a261092460015f8051602061366d83398151915255565b005b60405163a741a04560e01b8152600490fd5b6040516323d53b9760e21b8152600490fd5b61096c915060203d602011610972575b610964818361067e565b8101906117e8565b5f61087b565b503d61095a565b6117fc565b3461035a57602036600319011261035a576004355f525f8051602061364d8339815191526020526020600160405f200154604051908152f35b3461035a576104f96104e56109cb36610465565b92919091611904565b3461035a575f36600319011261035a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461035a57604036600319011261035a57610924602435600435610a3b8261042a565b805f525f8051602061364d833981519152602052610a5f600160405f2001546120e1565b61280f565b3461035a57604036600319011261035a57602435610a818161042a565b336001600160a01b03821603610a9d5761092490600435612845565b60405163334bd91960e11b8152600490fd5b3461035a57602036600319011261035a57600435610acc8161042a565b610ad4612505565b335f9081527f9ebbcbe0d2961d3fbe56ca6f679bc753bd848d3e6bb3eaf9041c51b286881d2c60205260409020547fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c9060ff1615610b8a57506001546001600160a01b039182169181168214610926576001600160a01b03191681176001557f5bbb1d3ebb6a3ad2a0f17ff35e579a83af60604d1d3c2a4c83c62adecadf666d5f80a260015f8051602061366d83398151915255005b6044906040519063e2517d3f60e01b82523360048301526024820152fd5b3461035a57602036600319011261035a576004355f52600360205260206107ac60405f206128d7565b3461035a57604036600319011261035a5760206107ac610c18602435610bf68161042a565b6004355f526005845260405f209060018060a01b03165f5260205260405f2090565b6128d7565b9181601f8401121561035a578235916001600160401b03831161035a576020838186019501011161035a57565b3461035a57602036600319011261035a576001600160401b0360043581811161035a57610c7b903690600401610c1d565b5f8051602061368d833981519152549260ff8460401c1615931680159081610d7a575b6001149081610d70575b159081610d67575b50610d55575f8051602061368d833981519152805467ffffffffffffffff19166001179055610ce39183610d3157612950565b610ce957005b5f8051602061368d833981519152805460ff60401b19169055604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a1005b5f8051602061368d833981519152805460ff60401b1916600160401b179055612950565b60405163f92ee8a960e01b8152600490fd5b9050155f610cb0565b303b159150610ca8565b849150610c9e565b3461035a575f36600319011261035a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461035a575f36600319011261035a576020604051614e208152f35b606060031982011261035a576004359160243565ffffffffffff8116810361035a5791604435906001600160401b03821161035a5761076b916004016106d6565b3461035a5760206107ac610e3636610de2565b915f526003845260405f2061242d565b3461035a575f36600319011261035a5760206040517fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c8152f35b3461035a575f36600319011261035a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461035a575f36600319011261035a5760206040517e8b9b1e5fa9cf3b14f87f435649268146305ddf689f082e5961a335b07a9abf8152f35b3461035a575f36600319011261035a576001546040516001600160a01b039091168152602090f35b3461035a5760206107ac610f3836610de2565b915f526004845260405f2061242d565b3461035a57604036600319011261035a57602060ff610f9a602435610f6c8161042a565b6004355f525f8051602061364d833981519152845260405f209060018060a01b03165f5260205260405f2090565b54166040519015158152f35b3461035a57606036600319011261035a57602435610fc38161042a565b60443565ffffffffffff8116810361035a577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633036106025761102f6105e5926004355f52600560205260405f209060018060a01b03165f5260205260405f2090565b6122f5565b3461035a575f36600319011261035a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461035a57604036600319011261035a576004356110958161042a565b6024356001600160401b03811161035a575f916110b783923690600401610c1d565b90816040519283928337810184815203915af46111046110d5611b60565b916110f66040519384921515602084015260408084015260608301906104a4565b03601f19810183528261067e565b805190602001fd5b3461035a575f36600319011261035a5760206040515f8152f35b3461035a57606036600319011261035a576024356004356111468261042a565b6044359161115261208a565b5f8281526005602090815260408083206001600160a01b0385168452909152902061117c906128d7565b838114610926577f739a5a3ec0ff71e2386d0013deac5f44e0935a98def2e2a5ddf9a709518c8294916111ef61123c92855f52600460205260405f20906111e9886111e46111c942612d7a565b936111df610c188c5f52600460205260405f2090565b611bb6565b611bd1565b91612176565b5050611220856103e68361120b885f52600560205260405f2090565b9060018060a01b03165f5260205260405f2090565b50506040519485526001600160a01b0316939081906020820190565b0390a3005b606090600319011261035a576004356112598161042a565b906024359060443565ffffffffffff8116810361035a5790565b3461035a576104f96104e561128736611241565b91611bde565b3461035a575f36600319011261035a5760206040516001600160401b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461035a575f36600319011261035a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461035a57602036600319011261035a576004355f52600460205260206107ac60405f206128d7565b3461035a57602036600319011261035a576004355f526002602052602060405f2054604051908152f35b3461035a57604036600319011261035a5761092460243560043561138a8261042a565b805f525f8051602061364d8339815191526020526113ae600160405f2001546120e1565b612845565b3461035a576104f96104e56113c736611241565b91611c28565b3461035a5760206107ac6113e03661071c565b92919091611d24565b3461035a5760a036600319011261035a576024356004356114098261042a565b60443591611415610450565b90608435906001600160401b03821161035a57611437600492369084016106d6565b61143f612505565b5f5460209061146490611458906001600160a01b031681565b6001600160a01b031690565b60405163b134427160e01b815294859182905afa928315610979575f936115a3575b506001600160a01b039283163303611591576001546001600160a01b0316838116611506575b50506040805195865265ffffffffffff909316602086015216927f741a5de99085c0d660f3e4192217b0ffb0ea4e35a0480de48e857a4bc3ee36ed91819081015b0390a361092460015f8051602061366d83398151915255565b90936040519461153d8661152f602082019363724ab0f760e11b8552858c898d60248701611eae565b03601f19810188528761067e565b62042e305a1061157f575f6114ed938192827f741a5de99085c0d660f3e4192217b0ffb0ea4e35a0480de48e857a4bc3ee36ed9951926203d090f150936114ac565b604051638072475160e01b8152600490fd5b60405163dabc4ad960e01b8152600490fd5b6115c691935060203d6020116115cd575b6115be818361067e565b810190611872565b915f611486565b503d6115b4565b3461035a575f36600319011261035a5760206040517f1312a1cf530e56add9be4fd84db9051dcc7635952f09f735f9a29405b55846258152f35b3461035a57604036600319011261035a5761162761043b565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163303610602576105e5906004355f52600460205260405f206122f5565b3461035a575f36600319011261035a575f546040516001600160a01b039091168152602090f35b3461035a57604036600319011261035a5760206107ac6024356116b78161042a565b600435611f04565b3461035a575f36600319011261035a5760206040516203d0908152f35b3461035a575f36600319011261035a57602060405160018152f35b5190811515820361035a57565b519063ffffffff8216820361035a57565b919082604091031261035a5761076b602061172f846116f7565b9301611704565b906117869165ffffffffffff6117959496956060976040519463130f67dd60e31b6020870152602486015260018060a01b031660448501521660648301526064825261178182610663565b612238565b60208082518301019101611715565b9061179d5750565b90915063ffffffff604051911660208201526020815261076b81610628565b5f9081526005602090815260408083206001600160a01b0390941683529290522061076b92919061242d565b9081602091031261035a5761076b906116f7565b6040513d5f823e3d90fd5b81601f8201121561035a5780519061181e826106bb565b9261182c604051948561067e565b8284526020838301011161035a57815f9260208093018386015e8301015290565b9060208282031261035a5781516001600160401b03811161035a5761076b9201611807565b9081602091031261035a575161076b8161042a565b9061076b91602081526118a6825160a0602084015260c08301906104a4565b9060a060806118f46118e16118cd602088015196601f1997888883030160408901526104a4565b6040880151878783030160608801526104a4565b60608701518686830301848701526104a4565b94015192828503019101526104a4565b604051630df8851f60e11b81526001600160a01b03828116600483015260248201849052848116604483015265ffffffffffff8616606483015295606095909491935f856084817f00000000000000000000000000000000000000000000000000000000000000008c165afa948515610979575f95611b18575b5060405163fbfa77cf60e01b8152602081600481888d165afa908115610979576119ea995f9285928491611af9575b5060405163192c0ff760e21b81526001600160a01b03909116600482015265ffffffffffff909216602483015290998a9190829081906044820190565b03917f0000000000000000000000000000000000000000000000000000000000000000165afa978815610979575f98611acf575b509081611a3b82611a3381611a419689611c28565b958388611736565b94611bde565b90835115801590611ac5575b8015611abb575b8015611ab1575b8015611aa7575b611a6f5750505050909150565b6110f6955061076b9496611a8161069f565b948552602085015260408401526060830152608082015260405192839160208301611887565b5081511515611a62565b5082511515611a5b565b5080511515611a54565b5086511515611a4d565b611a4192919850611af1903d805f833e611ae9818361067e565b81019061184d565b979091611a1e565b611b12915060203d6020116115cd576115be818361067e565b5f6119ad565b611b2d9195503d805f833e611ae9818361067e565b935f61197e565b9061076b92915f52600360205260405f2061242d565b9061076b92915f52600460205260405f2061242d565b3d15611b8a573d90611b71826106bb565b91611b7f604051938461067e565b82523d5f602084013e565b606090565b634e487b7160e01b5f52601160045260245ffd5b5f19810191908211611bb157565b611b8f565b91908203918211611bb157565b9060018201809211611bb157565b91908201809211611bb157565b60405163ed4d89e560e01b6020820152602481019290925265ffffffffffff909216604482015260609291611795916117869161178182606481015b03601f19810184528361067e565b604051630cbd53f560e11b6020820152602481019290925265ffffffffffff90921660448201526060929161179591611786916117818260648101611c1a565b60405190611c7582610628565b60606020838281520152565b9060208282031261035a5781516001600160401b039283821161035a57019060408282031261035a5760405192611cb784610628565b825181811161035a5782611ccc918501611807565b8452602083015190811161035a57611ce49201611807565b602082015290565b6001600160a01b0391821681529116602082015265ffffffffffff909116604082015260806060820181905261076b929101906104a4565b92611d3490929192828486612bb5565b929093611d3f611c68565b93805180611e92575b50508415938415611dfc575b8415611d6b575b50505050611d665790565b505f90565b602080949550611d96910151604051958694859463530e1d4360e01b865260601c9060048601611cec565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa908115610979575f91611ddd575b50155f808080611d5b565b611df6915060203d60201161097257610964818361067e565b5f611dd2565b5f549094506001600160a01b0316602084865192611e2f604051948593849363530e1d4360e01b85528960048601611cec565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa908115610979575f91611e73575b501593611d54565b611e8c915060203d60201161097257610964818361067e565b5f611e6b565b611ea6929550602080918301019101611c81565b925f80611d48565b919360a09361076b969565ffffffffffff938552600180871b03166020850152604084015216606082015281608082015201906104a4565b8115611ef0570490565b634e487b7160e01b5f52601260045260245ffd5b5f546040516308834cb560e21b8082526001600160a01b0385811660048401529283166024830152929392602092909183816044817f000000000000000000000000000000000000000000000000000000000000000086165afa908115610979575f91612011575b5015918215611f8d575b50509050611f875761076b91612cc5565b50505f90565b6040519081526001600160a01b0385166004820152606086901c602482015291508290829060449082907f0000000000000000000000000000000000000000000000000000000000000000165afa918215610979575f92611ff4575b505015805f80611f76565b61200a9250803d1061097257610964818361067e565b5f80611fe9565b6120289150843d861161097257610964818361067e565b5f611f6c565b335f9081527f72a65082a5691803ab2b62c9bc729b34205ba1b183d950896526b2fd8714d0c7602052604090207e8b9b1e5fa9cf3b14f87f435649268146305ddf689f082e5961a335b07a9abf9060ff905b541615610b8a5750565b335f9081527f8f2dae99798887da307a4daa2c2d11f840b0cb9a6a67822660c531e9ad14dd00602052604090207f1312a1cf530e56add9be4fd84db9051dcc7635952f09f735f9a29405b55846259060ff90612080565b5f8181525f8051602061364d83398151915260209081526040808320338452909152902060ff90612080565b634e487b7160e01b5f52603260045260245ffd5b8054821015612136575f5260205f2001905f90565b61210d565b90815491600160401b831015610643578261215e9160016106ac95018155612121565b90919082549060031b91821b915f19901b1916179055565b90929192600182019081548015612208575b508461219384612dac565b509490928454936121a3836128d7565b96816121f3575b50156121d0575050505f198101908111611bb15761215e85916121cc93612121565b9190565b6121cc9492936121ec926001600160d01b03909116919061349c565b505061213b565b65ffffffffffff83811691161490505f6121aa565b600160401b811015610643578060016122249201845583612121565b8154905f199060031b1b191690555f612188565b5f9190829160405161226d816110f66020820194639f86fd8560e01b86523060248401526040604484015260648301906104a4565b51915afa5061227a611b60565b8051810160408282031261035a57612294602083016116f7565b916040810151916001600160401b03831161035a576122ba926020809201920101611807565b90156122c35790565b805190811561035a57602001fd5b906040516122de81610628565b915465ffffffffffff8116835260301c6020830152565b91908254905f82916005841161239d575b612311935085612f2e565b9081156123915761238a61238161237b61237161234361233e61233388611ba3565b895f5260205f200190565b6122d1565b96600161236a602061235b8b5165ffffffffffff1690565b9a01516001600160d01b031690565b9101612121565b90549060031b1c90565b93611ba3565b63ffffffff1690565b6001939291565b5f925082915081908190565b91926123a881612dfb565b8103908111611bb15761231193865f526123dc6123d18360205f200165ffffffffffff90541690565b65ffffffffffff1690565b65ffffffffffff851610156123f2575091612306565b9291506123fe90611bc3565b90612306565b9081602091031261035a5761076b90611704565b90600163ffffffff80931601918211611bb157565b918051156124fb578060208061244893518301019101612404565b916124538382613055565b92612464845165ffffffffffff1690565b9065ffffffffffff80851692168281146124ef578211918261249a575b50506124915761076b9250612f85565b50506020015190565b9091506124a78354611ba3565b63ffffffff8316149182156124c0575b50505f80612481565b6124e79192506124db6124d56123d192612418565b85613055565b5165ffffffffffff1690565b115f806124b7565b50505050506020015190565b5061076b91612f85565b5f8051602061366d83398151915260028154146125225760029055565b604051633ee5aeb560e01b8152600490fd5b90815f52600360205260405f208161254b82612dac565b9193905083156125a95761256b916001600160d01b031690600101612121565b90549060031b1c5b8261259f575b5050612583575050565b61259b915f52600360205260405f206103ef42612d7a565b5050565b119050815f612579565b50505f612573565b6001600160a01b0381165f9081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d60205260409020545f8051602061364d8339815191529060ff16611f87575f808052602091825260408082206001600160a01b038516835290925220805460ff1916600117905533906001600160a01b03165f7f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d8180a4600190565b6001600160a01b0381165f9081527f9ebbcbe0d2961d3fbe56ca6f679bc753bd848d3e6bb3eaf9041c51b286881d2c602052604090207fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c905f8051602061364d8339815191529060ff905b541661272b575f828152602091825260408082206001600160a01b038616835290925220805460ff1916600117905533916001600160a01b0316907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d5f80a4600190565b5050505f90565b6001600160a01b0381165f9081527f72a65082a5691803ab2b62c9bc729b34205ba1b183d950896526b2fd8714d0c7602052604090207e8b9b1e5fa9cf3b14f87f435649268146305ddf689f082e5961a335b07a9abf905f8051602061364d8339815191529060ff906126c7565b6001600160a01b0381165f9081527f8f2dae99798887da307a4daa2c2d11f840b0cb9a6a67822660c531e9ad14dd00602052604090207f1312a1cf530e56add9be4fd84db9051dcc7635952f09f735f9a29405b5584625905f8051602061364d8339815191529060ff906126c7565b5f8181525f8051602061364d833981519152602081815260408084206001600160a01b038716855290915290912060ff906126c7565b5f8181525f8051602061364d833981519152602081815260408084206001600160a01b03871685529091529091205460ff161561272b575f828152602091825260408082206001600160a01b038616835290925220805460ff1916905533916001600160a01b0316907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b5f80a4600190565b8054806128fc57505f5b6001600160d01b03811615611f875760016123719201612121565b5f19908082810111611bb157825f5260205f2001015460301c6128e1565b91909160408184031261035a5780356129328161042a565b9260208201356001600160401b03811161035a5761076b92016106d6565b61295c9181019061291a565b6040516302910f8b60e31b81526001600160a01b039283166004820181905291906020816024817f000000000000000000000000000000000000000000000000000000000000000088165afa908115610979575f91612a6f575b5015612a5d576129f16040916129ec612a37946129d16130bd565b60018060a01b03166001600160601b0360a01b5f5416175f55565b61323d565b6020810151600180546001600160a01b0319166001600160a01b0390921691909117905580516001600160a01b0316848116612a4d575b5001516001600160a01b031690565b908116612a415750565b612a4a9061265c565b50565b612a56906125b1565b505f612a28565b6040516362df054560e01b8152600490fd5b612a88915060203d60201161097257610964818361067e565b5f6129b6565b6040519060a082018281106001600160401b038211176106435760405281608060609182815282602082015282604082015282808201520152565b9060208282031261035a5781516001600160401b039283821161035a57019060a08282031261035a57612afa61069f565b92825181811161035a5782612b10918501611807565b8452602083015181811161035a5782612b2a918501611807565b6020850152604083015181811161035a5782612b47918501611807565b6040850152606083015181811161035a5782612b64918501611807565b6060850152608083015190811161035a57612b7f9201611807565b608082015290565b9081602091031261035a575190565b60409065ffffffffffff61076b949316815281602082015201906104a4565b91939293612bc1612a8e565b94805180612ca9575b5050612bdb60608601518285611b4a565b9182612bed57505050509051905f9190565b612c01612c3b9183608089015191876117bc565b916020612c1a6114586114585f5460018060a01b031690565b8189015190604051808096819463810da75d60e01b83528760048401612b96565b03915afa801561097957612c7195612c6b935f92612c76575b50612c65919260408a015191611b34565b9061339d565b906133af565b915190565b612c659250612c9c9060203d602011612ca2575b612c94818361067e565b810190612b87565b91612c54565b503d612c8a565b612cbd929650602080918301019101612ac9565b935f80612bca565b90612cdb610c18835f52600460205260405f2090565b9081612ce8575050505f90565b610c18612d019161120b855f52600560205260405f2090565b5f5460405163bd49c35f60e01b815290602090829060049082906001600160a01b03165afa80156109795761076b94612c6b925f92612d51575b50610c18612c65915f52600360205260405f2090565b612c65919250612d72610c189160203d602011612ca257612c94818361067e565b929150612d3b565b65ffffffffffff90818111612d8d571690565b604490604051906306dfcc6560e41b8252603060048301526024820152fd5b805480612dbd5750505f905f905f90565b5f19908082810111611bb157612dda925f5260205f2001016122d1565b9065ffffffffffff82511691602060018060d01b0391015116906001929190565b8015611d665780612c65612ec6612ebc612eb2612ea8612e9e612e94612e8a600161076b9a5f908b60801c80612f22575b508060401c80612f15575b508060201c80612f08575b508060101c80612efb575b508060081c80612eee575b508060041c80612ee1575b508060021c80612ed4575b50821c612ecd575b811c1b612e83818b611ee6565b0160011c90565b612e83818a611ee6565b612e838189611ee6565b612e838188611ee6565b612e838187611ee6565b612e838186611ee6565b612e838185611ee6565b8092611ee6565b8101612e76565b600291509101905f612e6e565b600491509101905f612e63565b600891509101905f612e58565b601091509101905f612e4d565b602091509101905f612e42565b604091509101905f612e37565b9150506080905f612e2c565b905b838310612f3d5750505090565b909192612f4a81856135b2565b90835f5265ffffffffffff808360205f20015416908416105f14612f725750925b9190612f30565b93506001810180911115612f6b57611b8f565b908154905f829160058411612fef575b612fa09350846135f5565b80612fc857505f905b6001600160d01b03821615611f875761076b9160016123719201612121565b612fe2612fd7612fe992611ba3565b835f5260205f200190565b5460301c90565b90612fa9565b9192612ffa81612dfb565b8103908111611bb157612fa093855f5265ffffffffffff808360205f20015416908516105f1461302b575091612f95565b92915061303790611bc3565b90612f95565b6040519061304a82610628565b5f6020838281520152565b9061307e61307861309f9261306861303d565b5061307161303d565b5084612121565b506122d1565b91600165ffffffffffff845116936020828060d01b03910151169101612121565b905490604051926130af84610628565b835260031b1c602082015290565b6130c56135c7565b6130cd6135c7565b60015f8051602061366d83398151915255565b604051906130ed82610648565b5f6040838281528260208201520152565b81601f8201121561035a578051916020916001600160401b038411610643578360051b90604051946131328584018761067e565b8552838086019282010192831161035a578301905b828210613155575050505090565b83809183516131638161042a565b815201910190613147565b9060208282031261035a5781516001600160401b039283821161035a5701908181039260a0841261035a576060604051946131a886610648565b1261035a576040516131b981610648565b83516131c48161042a565b815260208401516131d48161042a565b602082015260408401516131e78161042a565b60408201528452606083015181811161035a57826132069185016130fe565b6020850152608083015190811161035a5761322192016130fe565b604082015290565b80518210156121365760209160051b010190565b613259906132496130e0565b506020808251830101910161316e565b8051519091906001600160a01b03161580613383575b613371579060208101905f5b825180518210156132f557611458613296836132a393613229565b516001600160a01b031690565b156132e3576132c56132c16132bc613296848751613229565b612732565b1590565b6132d15760010161327b565b604051635140fefd60e11b8152600490fd5b6040516323cda06760e01b8152600490fd5b506040925050818101905f5b82518051821015613368576114586132968361331c93613229565b156133575761333a6132c1613335613296848751613229565b6127a0565b61334657600101613301565b8351635140fefd60e11b8152600490fd5b83516323cda06760e01b8152600490fd5b50509150505190565b6040516303501f5960e11b8152600490fd5b50602082015151158061326f57506040820151511561326f565b90808210156133aa575090565b905090565b9091828202915f1984820993838086109503948086039514613434578483111561342257829109815f038216809204600280826003021880830282030280830282030280830282030280830282030280830282030280920290030293600183805f03040190848311900302920304170290565b60405163227bc15360e01b8152600490fd5b50509061076b9250611ee6565b8054600160401b8110156106435761345e91600182018155612121565b61348957815160209092015160301b65ffffffffffff191665ffffffffffff92909216919091179055565b634e487b7160e01b5f525f60045260245ffd5b805492939291908215613589576134b861233e612fd785611ba3565b906134c9825165ffffffffffff1690565b65ffffffffffff84811691168110613577576121cc9460209488926134f76123d1875165ffffffffffff1690565b0361353f57506135319261350d61351892611ba3565b905f5260205f200190565b9065ffffffffffff82549181199060301b169116179055565b01516001600160d01b031690565b9150506135729161355f6135516106ae565b65ffffffffffff9093168352565b6001600160d01b03881682860152613441565b613531565b604051632520601d60e01b8152600490fd5b6135ad92506135996135516106ae565b6001600160d01b0385166020830152613441565b5f9190565b90808216911860011c8101809111611bb15790565b60ff5f8051602061368d8339815191525460401c16156135e357565b604051631afcd79f60e31b8152600490fd5b905b8383106136045750505090565b90919261361181856135b2565b90835f5265ffffffffffff808360205f20015416908416105f146136395750925b91906135f7565b9350600181018091111561363257611b8f56fe02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268009b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a264697066735822122029f0973058268d4c15bb68cd12766d98013081e51e50292e237f8f15461e8b6864736f6c63430008190033","sourceMap":"3228:4636:81:-:0;;;;;;;;;;;;;-1:-1:-1;;3228:4636:81;;;;-1:-1:-1;;;;;3228:4636:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;:::i;:::-;348:4:82;;332:21;;8837:64:25;3228:4636:81;;;;;;;;;7896:76:25;;3228:4636:81;;;;7985:34:25;7981:146;;-1:-1:-1;525:17:69;;;-1:-1:-1;525:17:69;;-1:-1:-1;552:12:69;;-1:-1:-1;2360:34:76;;2404:28;;-1:-1:-1;2404:28:76;;2442:57;;-1:-1:-1;2442:57:76;;2509:61;;-1:-1:-1;2509:61:76;;3714:41:81;;;;3765:24;;;;3799:40;;;;3228:4636;;;;;;;;332:21:82;3228:4636:81;;;;;;;;;;;;;;;525:17:69;3228:4636:81;;;;;552:12:69;3228:4636:81;;;;;2360:34:76;3228:4636:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7981:146:25;-1:-1:-1;;;;;;3228:4636:81;;;;;;;;;;;;;8087:29:25;;3228:4636:81;;8087:29:25;7981:146;;;;;7896:76;3228:4636:81;;-1:-1:-1;;;7938:23:25;;;;;3228:4636:81;-1:-1:-1;3228:4636:81;;;;;;-1:-1:-1;3228:4636:81;;;;;-1:-1:-1;3228:4636:81;;;;-1:-1:-1;;;;;3228:4636:81;;;;;;:::o","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361015610011575f80fd5b5f3560e01c806301ffc9a71461030457806302145348146102ff57806307f9d5fd146102fa578063103f2907146102f5578063128e5d82146102f0578063197aa7ea146102eb5780631a7a7044146102e65780631a80e500146102e157806323f752d5146102dc578063248a9ca3146102d757806325dc9708146102d25780632dd31000146102cd5780632f2ff15d146102c857806336568abe146102c35780633dfd3873146102be5780633eb22c0f146102b957806342c53e33146102b4578063439fab91146102af57806345e78fcb146102aa578063557cab44146102a55780635d32a1c9146102a05780636679191e1461029b57806379d89614146102965780637d24bb27146102915780637f5a7c7b1461028c5780638b3f10b01461028757806391d1485414610282578063987b3ee81461027d5780639b656b22146102785780639f86fd8514610273578063a217fddf1461026e578063a33bc28714610269578063b549ef1f14610264578063bb24fe8a1461025f578063c0cd7c3e1461025a578063c43dc03f14610255578063d15b740e14610250578063d547741f1461024b578063da749d2b14610246578063e02f693714610241578063e49561ee1461023c578063e78eb6ae14610237578063ed4d89e514610232578063fbfa77cf1461022d578063fd4d447c14610228578063ff54740f146102235763ffa1ad741461021e575f80fd5b6116dc565b6116bf565b611695565b61166e565b61160e565b6115d4565b6113e9565b6113cd565b6113b3565b611367565b61133d565b611314565b6112d0565b61128d565b611273565b611126565b61110c565b611078565b611034565b610fa6565b610f48565b610f25565b610efd565b610ec4565b610e80565b610e46565b610e23565b610dc6565b610d82565b610c4a565b610bd1565b610ba8565b610aaf565b610a64565b610a18565b6109d4565b6109b7565b61097e565b6107f8565b6107b4565b61076e565b610585565b610541565b6104fd565b6104c8565b61035e565b3461035a57602036600319011261035a5760043563ffffffff60e01b811680910361035a57602090637965db0b60e01b8114908115610349575b506040519015158152f35b6301ffc9a760e01b1490505f61033e565b5f80fd5b3461035a5760408060031936011261035a57600435906024359061038061202e565b825f526002602052805f2054821161041a57825f526003602052816103a6825f206128d7565b1461040a5781610405916103f57e899d104fc3d8820bd96540612bcc5c448c8837b13b9f7faa43ad0728f0c14f946103e6875f52600360205260405f2090565b6103ef42612d7a565b90612176565b5050519081529081906020820190565b0390a2005b5163a741a04560e01b8152600490fd5b51631eefc06360e31b8152600490fd5b6001600160a01b0381160361035a57565b6024359065ffffffffffff8216820361035a57565b6064359065ffffffffffff8216820361035a57565b608090600319011261035a5760043561047d8161042a565b906024359060443561048e8161042a565b9060643565ffffffffffff8116810361035a5790565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b3461035a576104f96104e56104dc36610465565b92919091611736565b6040519182916020835260208301906104a4565b0390f35b3461035a575f36600319011261035a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461035a575f36600319011261035a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461035a57604036600319011261035a5761059e61043b565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163303610602576105e5906004355f52600360205260405f206122f5565b60408051941515855263ffffffff91909116602085015292915050f35b604051637ca475e560e11b8152600490fd5b634e487b7160e01b5f52604160045260245ffd5b604081019081106001600160401b0382111761064357604052565b610614565b606081019081106001600160401b0382111761064357604052565b60a081019081106001600160401b0382111761064357604052565b90601f801991011681019081106001600160401b0382111761064357604052565b604051906106ac82610663565b565b604051906106ac82610628565b6001600160401b03811161064357601f01601f191660200190565b81601f8201121561035a578035906106ed826106bb565b926106fb604051948561067e565b8284526020838301011161035a57815f926020809301838601378301015290565b90608060031983011261035a57600435916024356107398161042a565b9160443565ffffffffffff8116810361035a5791606435906001600160401b03821161035a5761076b916004016106d6565b90565b3461035a5760206107ac6107a76107843661071c565b939190925f526005865260405f209060018060a01b03165f5260205260405f2090565b61242d565b604051908152f35b3461035a575f36600319011261035a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461035a57604036600319011261035a576004356001600160601b038116810361035a5760243590610828612505565b6040516302910f8b60e31b81523360048201526020816024816001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165afa908115610979575f9161094a575b5015610938576001600160601b03166bffffffffffffffffffffffff193360601b161790806108b2835f52600260205260405f2090565b54146109265761090b817fc67e7929681aa1bccd63f52b3799bf5805f3009f197db6fdf584b14f7fbf608c926108f0855f52600260205260405f2090565b556108fb8185612534565b6040519081529081906020820190565b0390a261092460015f8051602061366d83398151915255565b005b60405163a741a04560e01b8152600490fd5b6040516323d53b9760e21b8152600490fd5b61096c915060203d602011610972575b610964818361067e565b8101906117e8565b5f61087b565b503d61095a565b6117fc565b3461035a57602036600319011261035a576004355f525f8051602061364d8339815191526020526020600160405f200154604051908152f35b3461035a576104f96104e56109cb36610465565b92919091611904565b3461035a575f36600319011261035a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461035a57604036600319011261035a57610924602435600435610a3b8261042a565b805f525f8051602061364d833981519152602052610a5f600160405f2001546120e1565b61280f565b3461035a57604036600319011261035a57602435610a818161042a565b336001600160a01b03821603610a9d5761092490600435612845565b60405163334bd91960e11b8152600490fd5b3461035a57602036600319011261035a57600435610acc8161042a565b610ad4612505565b335f9081527f9ebbcbe0d2961d3fbe56ca6f679bc753bd848d3e6bb3eaf9041c51b286881d2c60205260409020547fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c9060ff1615610b8a57506001546001600160a01b039182169181168214610926576001600160a01b03191681176001557f5bbb1d3ebb6a3ad2a0f17ff35e579a83af60604d1d3c2a4c83c62adecadf666d5f80a260015f8051602061366d83398151915255005b6044906040519063e2517d3f60e01b82523360048301526024820152fd5b3461035a57602036600319011261035a576004355f52600360205260206107ac60405f206128d7565b3461035a57604036600319011261035a5760206107ac610c18602435610bf68161042a565b6004355f526005845260405f209060018060a01b03165f5260205260405f2090565b6128d7565b9181601f8401121561035a578235916001600160401b03831161035a576020838186019501011161035a57565b3461035a57602036600319011261035a576001600160401b0360043581811161035a57610c7b903690600401610c1d565b5f8051602061368d833981519152549260ff8460401c1615931680159081610d7a575b6001149081610d70575b159081610d67575b50610d55575f8051602061368d833981519152805467ffffffffffffffff19166001179055610ce39183610d3157612950565b610ce957005b5f8051602061368d833981519152805460ff60401b19169055604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a1005b5f8051602061368d833981519152805460ff60401b1916600160401b179055612950565b60405163f92ee8a960e01b8152600490fd5b9050155f610cb0565b303b159150610ca8565b849150610c9e565b3461035a575f36600319011261035a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461035a575f36600319011261035a576020604051614e208152f35b606060031982011261035a576004359160243565ffffffffffff8116810361035a5791604435906001600160401b03821161035a5761076b916004016106d6565b3461035a5760206107ac610e3636610de2565b915f526003845260405f2061242d565b3461035a575f36600319011261035a5760206040517fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c8152f35b3461035a575f36600319011261035a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461035a575f36600319011261035a5760206040517e8b9b1e5fa9cf3b14f87f435649268146305ddf689f082e5961a335b07a9abf8152f35b3461035a575f36600319011261035a576001546040516001600160a01b039091168152602090f35b3461035a5760206107ac610f3836610de2565b915f526004845260405f2061242d565b3461035a57604036600319011261035a57602060ff610f9a602435610f6c8161042a565b6004355f525f8051602061364d833981519152845260405f209060018060a01b03165f5260205260405f2090565b54166040519015158152f35b3461035a57606036600319011261035a57602435610fc38161042a565b60443565ffffffffffff8116810361035a577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633036106025761102f6105e5926004355f52600560205260405f209060018060a01b03165f5260205260405f2090565b6122f5565b3461035a575f36600319011261035a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461035a57604036600319011261035a576004356110958161042a565b6024356001600160401b03811161035a575f916110b783923690600401610c1d565b90816040519283928337810184815203915af46111046110d5611b60565b916110f66040519384921515602084015260408084015260608301906104a4565b03601f19810183528261067e565b805190602001fd5b3461035a575f36600319011261035a5760206040515f8152f35b3461035a57606036600319011261035a576024356004356111468261042a565b6044359161115261208a565b5f8281526005602090815260408083206001600160a01b0385168452909152902061117c906128d7565b838114610926577f739a5a3ec0ff71e2386d0013deac5f44e0935a98def2e2a5ddf9a709518c8294916111ef61123c92855f52600460205260405f20906111e9886111e46111c942612d7a565b936111df610c188c5f52600460205260405f2090565b611bb6565b611bd1565b91612176565b5050611220856103e68361120b885f52600560205260405f2090565b9060018060a01b03165f5260205260405f2090565b50506040519485526001600160a01b0316939081906020820190565b0390a3005b606090600319011261035a576004356112598161042a565b906024359060443565ffffffffffff8116810361035a5790565b3461035a576104f96104e561128736611241565b91611bde565b3461035a575f36600319011261035a5760206040516001600160401b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461035a575f36600319011261035a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461035a57602036600319011261035a576004355f52600460205260206107ac60405f206128d7565b3461035a57602036600319011261035a576004355f526002602052602060405f2054604051908152f35b3461035a57604036600319011261035a5761092460243560043561138a8261042a565b805f525f8051602061364d8339815191526020526113ae600160405f2001546120e1565b612845565b3461035a576104f96104e56113c736611241565b91611c28565b3461035a5760206107ac6113e03661071c565b92919091611d24565b3461035a5760a036600319011261035a576024356004356114098261042a565b60443591611415610450565b90608435906001600160401b03821161035a57611437600492369084016106d6565b61143f612505565b5f5460209061146490611458906001600160a01b031681565b6001600160a01b031690565b60405163b134427160e01b815294859182905afa928315610979575f936115a3575b506001600160a01b039283163303611591576001546001600160a01b0316838116611506575b50506040805195865265ffffffffffff909316602086015216927f741a5de99085c0d660f3e4192217b0ffb0ea4e35a0480de48e857a4bc3ee36ed91819081015b0390a361092460015f8051602061366d83398151915255565b90936040519461153d8661152f602082019363724ab0f760e11b8552858c898d60248701611eae565b03601f19810188528761067e565b62042e305a1061157f575f6114ed938192827f741a5de99085c0d660f3e4192217b0ffb0ea4e35a0480de48e857a4bc3ee36ed9951926203d090f150936114ac565b604051638072475160e01b8152600490fd5b60405163dabc4ad960e01b8152600490fd5b6115c691935060203d6020116115cd575b6115be818361067e565b810190611872565b915f611486565b503d6115b4565b3461035a575f36600319011261035a5760206040517f1312a1cf530e56add9be4fd84db9051dcc7635952f09f735f9a29405b55846258152f35b3461035a57604036600319011261035a5761162761043b565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163303610602576105e5906004355f52600460205260405f206122f5565b3461035a575f36600319011261035a575f546040516001600160a01b039091168152602090f35b3461035a57604036600319011261035a5760206107ac6024356116b78161042a565b600435611f04565b3461035a575f36600319011261035a5760206040516203d0908152f35b3461035a575f36600319011261035a57602060405160018152f35b5190811515820361035a57565b519063ffffffff8216820361035a57565b919082604091031261035a5761076b602061172f846116f7565b9301611704565b906117869165ffffffffffff6117959496956060976040519463130f67dd60e31b6020870152602486015260018060a01b031660448501521660648301526064825261178182610663565b612238565b60208082518301019101611715565b9061179d5750565b90915063ffffffff604051911660208201526020815261076b81610628565b5f9081526005602090815260408083206001600160a01b0390941683529290522061076b92919061242d565b9081602091031261035a5761076b906116f7565b6040513d5f823e3d90fd5b81601f8201121561035a5780519061181e826106bb565b9261182c604051948561067e565b8284526020838301011161035a57815f9260208093018386015e8301015290565b9060208282031261035a5781516001600160401b03811161035a5761076b9201611807565b9081602091031261035a575161076b8161042a565b9061076b91602081526118a6825160a0602084015260c08301906104a4565b9060a060806118f46118e16118cd602088015196601f1997888883030160408901526104a4565b6040880151878783030160608801526104a4565b60608701518686830301848701526104a4565b94015192828503019101526104a4565b604051630df8851f60e11b81526001600160a01b03828116600483015260248201849052848116604483015265ffffffffffff8616606483015295606095909491935f856084817f00000000000000000000000000000000000000000000000000000000000000008c165afa948515610979575f95611b18575b5060405163fbfa77cf60e01b8152602081600481888d165afa908115610979576119ea995f9285928491611af9575b5060405163192c0ff760e21b81526001600160a01b03909116600482015265ffffffffffff909216602483015290998a9190829081906044820190565b03917f0000000000000000000000000000000000000000000000000000000000000000165afa978815610979575f98611acf575b509081611a3b82611a3381611a419689611c28565b958388611736565b94611bde565b90835115801590611ac5575b8015611abb575b8015611ab1575b8015611aa7575b611a6f5750505050909150565b6110f6955061076b9496611a8161069f565b948552602085015260408401526060830152608082015260405192839160208301611887565b5081511515611a62565b5082511515611a5b565b5080511515611a54565b5086511515611a4d565b611a4192919850611af1903d805f833e611ae9818361067e565b81019061184d565b979091611a1e565b611b12915060203d6020116115cd576115be818361067e565b5f6119ad565b611b2d9195503d805f833e611ae9818361067e565b935f61197e565b9061076b92915f52600360205260405f2061242d565b9061076b92915f52600460205260405f2061242d565b3d15611b8a573d90611b71826106bb565b91611b7f604051938461067e565b82523d5f602084013e565b606090565b634e487b7160e01b5f52601160045260245ffd5b5f19810191908211611bb157565b611b8f565b91908203918211611bb157565b9060018201809211611bb157565b91908201809211611bb157565b60405163ed4d89e560e01b6020820152602481019290925265ffffffffffff909216604482015260609291611795916117869161178182606481015b03601f19810184528361067e565b604051630cbd53f560e11b6020820152602481019290925265ffffffffffff90921660448201526060929161179591611786916117818260648101611c1a565b60405190611c7582610628565b60606020838281520152565b9060208282031261035a5781516001600160401b039283821161035a57019060408282031261035a5760405192611cb784610628565b825181811161035a5782611ccc918501611807565b8452602083015190811161035a57611ce49201611807565b602082015290565b6001600160a01b0391821681529116602082015265ffffffffffff909116604082015260806060820181905261076b929101906104a4565b92611d3490929192828486612bb5565b929093611d3f611c68565b93805180611e92575b50508415938415611dfc575b8415611d6b575b50505050611d665790565b505f90565b602080949550611d96910151604051958694859463530e1d4360e01b865260601c9060048601611cec565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa908115610979575f91611ddd575b50155f808080611d5b565b611df6915060203d60201161097257610964818361067e565b5f611dd2565b5f549094506001600160a01b0316602084865192611e2f604051948593849363530e1d4360e01b85528960048601611cec565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa908115610979575f91611e73575b501593611d54565b611e8c915060203d60201161097257610964818361067e565b5f611e6b565b611ea6929550602080918301019101611c81565b925f80611d48565b919360a09361076b969565ffffffffffff938552600180871b03166020850152604084015216606082015281608082015201906104a4565b8115611ef0570490565b634e487b7160e01b5f52601260045260245ffd5b5f546040516308834cb560e21b8082526001600160a01b0385811660048401529283166024830152929392602092909183816044817f000000000000000000000000000000000000000000000000000000000000000086165afa908115610979575f91612011575b5015918215611f8d575b50509050611f875761076b91612cc5565b50505f90565b6040519081526001600160a01b0385166004820152606086901c602482015291508290829060449082907f0000000000000000000000000000000000000000000000000000000000000000165afa918215610979575f92611ff4575b505015805f80611f76565b61200a9250803d1061097257610964818361067e565b5f80611fe9565b6120289150843d861161097257610964818361067e565b5f611f6c565b335f9081527f72a65082a5691803ab2b62c9bc729b34205ba1b183d950896526b2fd8714d0c7602052604090207e8b9b1e5fa9cf3b14f87f435649268146305ddf689f082e5961a335b07a9abf9060ff905b541615610b8a5750565b335f9081527f8f2dae99798887da307a4daa2c2d11f840b0cb9a6a67822660c531e9ad14dd00602052604090207f1312a1cf530e56add9be4fd84db9051dcc7635952f09f735f9a29405b55846259060ff90612080565b5f8181525f8051602061364d83398151915260209081526040808320338452909152902060ff90612080565b634e487b7160e01b5f52603260045260245ffd5b8054821015612136575f5260205f2001905f90565b61210d565b90815491600160401b831015610643578261215e9160016106ac95018155612121565b90919082549060031b91821b915f19901b1916179055565b90929192600182019081548015612208575b508461219384612dac565b509490928454936121a3836128d7565b96816121f3575b50156121d0575050505f198101908111611bb15761215e85916121cc93612121565b9190565b6121cc9492936121ec926001600160d01b03909116919061349c565b505061213b565b65ffffffffffff83811691161490505f6121aa565b600160401b811015610643578060016122249201845583612121565b8154905f199060031b1b191690555f612188565b5f9190829160405161226d816110f66020820194639f86fd8560e01b86523060248401526040604484015260648301906104a4565b51915afa5061227a611b60565b8051810160408282031261035a57612294602083016116f7565b916040810151916001600160401b03831161035a576122ba926020809201920101611807565b90156122c35790565b805190811561035a57602001fd5b906040516122de81610628565b915465ffffffffffff8116835260301c6020830152565b91908254905f82916005841161239d575b612311935085612f2e565b9081156123915761238a61238161237b61237161234361233e61233388611ba3565b895f5260205f200190565b6122d1565b96600161236a602061235b8b5165ffffffffffff1690565b9a01516001600160d01b031690565b9101612121565b90549060031b1c90565b93611ba3565b63ffffffff1690565b6001939291565b5f925082915081908190565b91926123a881612dfb565b8103908111611bb15761231193865f526123dc6123d18360205f200165ffffffffffff90541690565b65ffffffffffff1690565b65ffffffffffff851610156123f2575091612306565b9291506123fe90611bc3565b90612306565b9081602091031261035a5761076b90611704565b90600163ffffffff80931601918211611bb157565b918051156124fb578060208061244893518301019101612404565b916124538382613055565b92612464845165ffffffffffff1690565b9065ffffffffffff80851692168281146124ef578211918261249a575b50506124915761076b9250612f85565b50506020015190565b9091506124a78354611ba3565b63ffffffff8316149182156124c0575b50505f80612481565b6124e79192506124db6124d56123d192612418565b85613055565b5165ffffffffffff1690565b115f806124b7565b50505050506020015190565b5061076b91612f85565b5f8051602061366d83398151915260028154146125225760029055565b604051633ee5aeb560e01b8152600490fd5b90815f52600360205260405f208161254b82612dac565b9193905083156125a95761256b916001600160d01b031690600101612121565b90549060031b1c5b8261259f575b5050612583575050565b61259b915f52600360205260405f206103ef42612d7a565b5050565b119050815f612579565b50505f612573565b6001600160a01b0381165f9081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d60205260409020545f8051602061364d8339815191529060ff16611f87575f808052602091825260408082206001600160a01b038516835290925220805460ff1916600117905533906001600160a01b03165f7f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d8180a4600190565b6001600160a01b0381165f9081527f9ebbcbe0d2961d3fbe56ca6f679bc753bd848d3e6bb3eaf9041c51b286881d2c602052604090207fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c905f8051602061364d8339815191529060ff905b541661272b575f828152602091825260408082206001600160a01b038616835290925220805460ff1916600117905533916001600160a01b0316907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d5f80a4600190565b5050505f90565b6001600160a01b0381165f9081527f72a65082a5691803ab2b62c9bc729b34205ba1b183d950896526b2fd8714d0c7602052604090207e8b9b1e5fa9cf3b14f87f435649268146305ddf689f082e5961a335b07a9abf905f8051602061364d8339815191529060ff906126c7565b6001600160a01b0381165f9081527f8f2dae99798887da307a4daa2c2d11f840b0cb9a6a67822660c531e9ad14dd00602052604090207f1312a1cf530e56add9be4fd84db9051dcc7635952f09f735f9a29405b5584625905f8051602061364d8339815191529060ff906126c7565b5f8181525f8051602061364d833981519152602081815260408084206001600160a01b038716855290915290912060ff906126c7565b5f8181525f8051602061364d833981519152602081815260408084206001600160a01b03871685529091529091205460ff161561272b575f828152602091825260408082206001600160a01b038616835290925220805460ff1916905533916001600160a01b0316907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b5f80a4600190565b8054806128fc57505f5b6001600160d01b03811615611f875760016123719201612121565b5f19908082810111611bb157825f5260205f2001015460301c6128e1565b91909160408184031261035a5780356129328161042a565b9260208201356001600160401b03811161035a5761076b92016106d6565b61295c9181019061291a565b6040516302910f8b60e31b81526001600160a01b039283166004820181905291906020816024817f000000000000000000000000000000000000000000000000000000000000000088165afa908115610979575f91612a6f575b5015612a5d576129f16040916129ec612a37946129d16130bd565b60018060a01b03166001600160601b0360a01b5f5416175f55565b61323d565b6020810151600180546001600160a01b0319166001600160a01b0390921691909117905580516001600160a01b0316848116612a4d575b5001516001600160a01b031690565b908116612a415750565b612a4a9061265c565b50565b612a56906125b1565b505f612a28565b6040516362df054560e01b8152600490fd5b612a88915060203d60201161097257610964818361067e565b5f6129b6565b6040519060a082018281106001600160401b038211176106435760405281608060609182815282602082015282604082015282808201520152565b9060208282031261035a5781516001600160401b039283821161035a57019060a08282031261035a57612afa61069f565b92825181811161035a5782612b10918501611807565b8452602083015181811161035a5782612b2a918501611807565b6020850152604083015181811161035a5782612b47918501611807565b6040850152606083015181811161035a5782612b64918501611807565b6060850152608083015190811161035a57612b7f9201611807565b608082015290565b9081602091031261035a575190565b60409065ffffffffffff61076b949316815281602082015201906104a4565b91939293612bc1612a8e565b94805180612ca9575b5050612bdb60608601518285611b4a565b9182612bed57505050509051905f9190565b612c01612c3b9183608089015191876117bc565b916020612c1a6114586114585f5460018060a01b031690565b8189015190604051808096819463810da75d60e01b83528760048401612b96565b03915afa801561097957612c7195612c6b935f92612c76575b50612c65919260408a015191611b34565b9061339d565b906133af565b915190565b612c659250612c9c9060203d602011612ca2575b612c94818361067e565b810190612b87565b91612c54565b503d612c8a565b612cbd929650602080918301019101612ac9565b935f80612bca565b90612cdb610c18835f52600460205260405f2090565b9081612ce8575050505f90565b610c18612d019161120b855f52600560205260405f2090565b5f5460405163bd49c35f60e01b815290602090829060049082906001600160a01b03165afa80156109795761076b94612c6b925f92612d51575b50610c18612c65915f52600360205260405f2090565b612c65919250612d72610c189160203d602011612ca257612c94818361067e565b929150612d3b565b65ffffffffffff90818111612d8d571690565b604490604051906306dfcc6560e41b8252603060048301526024820152fd5b805480612dbd5750505f905f905f90565b5f19908082810111611bb157612dda925f5260205f2001016122d1565b9065ffffffffffff82511691602060018060d01b0391015116906001929190565b8015611d665780612c65612ec6612ebc612eb2612ea8612e9e612e94612e8a600161076b9a5f908b60801c80612f22575b508060401c80612f15575b508060201c80612f08575b508060101c80612efb575b508060081c80612eee575b508060041c80612ee1575b508060021c80612ed4575b50821c612ecd575b811c1b612e83818b611ee6565b0160011c90565b612e83818a611ee6565b612e838189611ee6565b612e838188611ee6565b612e838187611ee6565b612e838186611ee6565b612e838185611ee6565b8092611ee6565b8101612e76565b600291509101905f612e6e565b600491509101905f612e63565b600891509101905f612e58565b601091509101905f612e4d565b602091509101905f612e42565b604091509101905f612e37565b9150506080905f612e2c565b905b838310612f3d5750505090565b909192612f4a81856135b2565b90835f5265ffffffffffff808360205f20015416908416105f14612f725750925b9190612f30565b93506001810180911115612f6b57611b8f565b908154905f829160058411612fef575b612fa09350846135f5565b80612fc857505f905b6001600160d01b03821615611f875761076b9160016123719201612121565b612fe2612fd7612fe992611ba3565b835f5260205f200190565b5460301c90565b90612fa9565b9192612ffa81612dfb565b8103908111611bb157612fa093855f5265ffffffffffff808360205f20015416908516105f1461302b575091612f95565b92915061303790611bc3565b90612f95565b6040519061304a82610628565b5f6020838281520152565b9061307e61307861309f9261306861303d565b5061307161303d565b5084612121565b506122d1565b91600165ffffffffffff845116936020828060d01b03910151169101612121565b905490604051926130af84610628565b835260031b1c602082015290565b6130c56135c7565b6130cd6135c7565b60015f8051602061366d83398151915255565b604051906130ed82610648565b5f6040838281528260208201520152565b81601f8201121561035a578051916020916001600160401b038411610643578360051b90604051946131328584018761067e565b8552838086019282010192831161035a578301905b828210613155575050505090565b83809183516131638161042a565b815201910190613147565b9060208282031261035a5781516001600160401b039283821161035a5701908181039260a0841261035a576060604051946131a886610648565b1261035a576040516131b981610648565b83516131c48161042a565b815260208401516131d48161042a565b602082015260408401516131e78161042a565b60408201528452606083015181811161035a57826132069185016130fe565b6020850152608083015190811161035a5761322192016130fe565b604082015290565b80518210156121365760209160051b010190565b613259906132496130e0565b506020808251830101910161316e565b8051519091906001600160a01b03161580613383575b613371579060208101905f5b825180518210156132f557611458613296836132a393613229565b516001600160a01b031690565b156132e3576132c56132c16132bc613296848751613229565b612732565b1590565b6132d15760010161327b565b604051635140fefd60e11b8152600490fd5b6040516323cda06760e01b8152600490fd5b506040925050818101905f5b82518051821015613368576114586132968361331c93613229565b156133575761333a6132c1613335613296848751613229565b6127a0565b61334657600101613301565b8351635140fefd60e11b8152600490fd5b83516323cda06760e01b8152600490fd5b50509150505190565b6040516303501f5960e11b8152600490fd5b50602082015151158061326f57506040820151511561326f565b90808210156133aa575090565b905090565b9091828202915f1984820993838086109503948086039514613434578483111561342257829109815f038216809204600280826003021880830282030280830282030280830282030280830282030280830282030280920290030293600183805f03040190848311900302920304170290565b60405163227bc15360e01b8152600490fd5b50509061076b9250611ee6565b8054600160401b8110156106435761345e91600182018155612121565b61348957815160209092015160301b65ffffffffffff191665ffffffffffff92909216919091179055565b634e487b7160e01b5f525f60045260245ffd5b805492939291908215613589576134b861233e612fd785611ba3565b906134c9825165ffffffffffff1690565b65ffffffffffff84811691168110613577576121cc9460209488926134f76123d1875165ffffffffffff1690565b0361353f57506135319261350d61351892611ba3565b905f5260205f200190565b9065ffffffffffff82549181199060301b169116179055565b01516001600160d01b031690565b9150506135729161355f6135516106ae565b65ffffffffffff9093168352565b6001600160d01b03881682860152613441565b613531565b604051632520601d60e01b8152600490fd5b6135ad92506135996135516106ae565b6001600160d01b0385166020830152613441565b5f9190565b90808216911860011c8101809111611bb15790565b60ff5f8051602061368d8339815191525460401c16156135e357565b604051631afcd79f60e31b8152600490fd5b905b8383106136045750505090565b90919261361181856135b2565b90835f5265ffffffffffff808360205f20015416908416105f146136395750925b91906135f7565b9350600181018091111561363257611b8f56fe02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268009b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a264697066735822122029f0973058268d4c15bb68cd12766d98013081e51e50292e237f8f15461e8b6864736f6c63430008190033","sourceMap":"3228:4636:81:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;;;;;-1:-1:-1;;3228:4636:81;;;;;;;;;;;;;;;;;;-1:-1:-1;;;3551:47:23;;;:87;;;;3228:4636:81;;;;;;;;;;3551:87:23;-1:-1:-1;;;1133:40:29;;-1:-1:-1;3551:87:23;;;3228:4636:81;-1:-1:-1;3228:4636:81;;;;;;;;;;;;;;;;;;;;3202:4:23;;;:::i;:::-;3228:4636:81;-1:-1:-1;3228:4636:81;3610:15:78;3228:4636:81;;;-1:-1:-1;3228:4636:81;;3601:36:78;;3597:98;;3228:4636:81;-1:-1:-1;3228:4636:81;2233:13:78;3228:4636:81;;;2233:34:78;3228:4636:81;-1:-1:-1;3228:4636:81;2233:34:78;:::i;:::-;3709;3705:84;;3799:25;3871:35;3799:25;:56;3871:35;3799:25;;;3228:4636:81;;2233:13:78;3228:4636:81;;;;;;;3799:25:78;819:34:62;837:15;819:34;:::i;:::-;3799:56:78;;:::i;:::-;-1:-1:-1;;3228:4636:81;;;;;;;;;;;;3871:35:78;;;;3228:4636:81;3705:84:78;3228:4636:81;-1:-1:-1;;;3766:12:78;;3228:4636:81;;3766:12:78;3597:98;3228:4636:81;-1:-1:-1;;;3660:24:78;;3228:4636:81;;3660:24:78;3228:4636:81;-1:-1:-1;;;;;3228:4636:81;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;3228:4636:81;;;;;;;;-1:-1:-1;;3228:4636:81;;;;:::o;:::-;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;3228:4636:81;;;;;;1537:38:76;-1:-1:-1;;;;;3228:4636:81;;;;;;;;;;;;-1:-1:-1;;3228:4636:81;;;;;;1632:54:76;-1:-1:-1;;;;;3228:4636:81;;;;;;;;;;;;-1:-1:-1;;3228:4636:81;;;;;;:::i;:::-;449:5:82;-1:-1:-1;;;;;3228:4636:81;435:10:82;:19;431:71;;4041:64:81;3228:4636;;;-1:-1:-1;3228:4636:81;4041:13;3228:4636;;;-1:-1:-1;3228:4636:81;4041:64;:::i;:::-;3228:4636;;;;;;;;;;;;;;;;;;;-1:-1:-1;;3228:4636:81;431:71:82;3228:4636:81;;-1:-1:-1;;;477:14:82;;3228:4636:81;;477:14:82;3228:4636:81;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3228:4636:81;;;;;;;:::o;:::-;;:::i;:::-;;;;;;;-1:-1:-1;;;;;3228:4636:81;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;3228:4636:81;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;3228:4636:81;;;;;;;:::o;:::-;;;;;;;:::i;:::-;:::o;:::-;;;;;;;:::i;:::-;-1:-1:-1;;;;;3228:4636:81;;;;;;-1:-1:-1;;3228:4636:81;;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;3228:4636:81;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;3228:4636:81;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;-1:-1:-1;;;;;3228:4636:81;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;3090:79:78;:44;3228:4636:81;;;:::i;:::-;;;;;-1:-1:-1;3228:4636:81;3090:22:78;3228:4636:81;;;-1:-1:-1;3228:4636:81;;;;;;;;;;;;;;;;;3090:44:78;:79;:::i;:::-;3228:4636:81;;;;;;;;;;;;-1:-1:-1;;3228:4636:81;;;;;;1743:56:76;-1:-1:-1;;;;;3228:4636:81;;;;;;;;;;;;-1:-1:-1;;3228:4636:81;;;;;;-1:-1:-1;;;;;3228:4636:81;;;;;;;;3217:103:28;;;:::i;:::-;3228:4636:81;;-1:-1:-1;;;4285:48:76;;4322:10;3228:4636:81;4285:48:76;;3228:4636:81;;;;;-1:-1:-1;;;;;4295:16:76;3228:4636:81;4285:48:76;;;;;;;-1:-1:-1;4285:48:76;;;3228:4636:81;4284:49:76;;4280:99;;-1:-1:-1;;;;;3228:4636:81;-1:-1:-1;;4322:10:76;297:2:88;3228:4636:81;;267:46:88;4459:27:76;;;;3228:4636:81;;4459:15:76;3228:4636:81;;;;;;;4459:27:76;3228:4636:81;4459:37:76;4455:87;;4654:38;4552:27;4654:38;4552:27;;;3228:4636:81;;4459:15:76;3228:4636:81;;;;;;;4552:27:76;3228:4636:81;4631:6:76;;;;:::i;:::-;3228:4636:81;;;;;;;;;;;;;4654:38:76;;;;3282:1:28;1805;-1:-1:-1;;;;;;;;;;;3228:4636:81;3716:283:28;3282:1;3228:4636:81;4455:87:76;3228:4636:81;;-1:-1:-1;;;4519:12:76;;3228:4636:81;;4519:12:76;4280:99;3228:4636:81;;-1:-1:-1;;;4356:12:76;;3228:4636:81;;4356:12:76;4285:48;;;;3228:4636:81;4285:48:76;3228:4636:81;4285:48:76;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;:::i;3228:4636:81:-;;;;;;-1:-1:-1;;3228:4636:81;;;;;;-1:-1:-1;3228:4636:81;-1:-1:-1;;;;;;;;;;;3228:4636:81;;;4919:24:23;3228:4636:81;-1:-1:-1;3228:4636:81;4919:24:23;3228:4636:81;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;-1:-1:-1;;3228:4636:81;;;;;;322:32:69;-1:-1:-1;;;;;3228:4636:81;;;;;;;;;;;;-1:-1:-1;;3228:4636:81;;;;5350:25:23;3228:4636:81;;;;;;;:::i;:::-;;-1:-1:-1;3228:4636:81;-1:-1:-1;;;;;;;;;;;3228:4636:81;;3202:4:23;4919:24;3228:4636:81;-1:-1:-1;3228:4636:81;4919:24:23;3228:4636:81;3202:4:23;:::i;:::-;5350:25;:::i;3228:4636:81:-;;;;;;-1:-1:-1;;3228:4636:81;;;;;;;;;:::i;:::-;966:10:27;-1:-1:-1;;;;;3228:4636:81;;6441:34:23;6437:102;;6549:37;3228:4636:81;;;6549:37:23;:::i;6437:102::-;3228:4636:81;;-1:-1:-1;;;6498:30:23;;3228:4636:81;;6498:30:23;3228:4636:81;;;;;;-1:-1:-1;;3228:4636:81;;;;;;;;;:::i;:::-;3217:103:28;;:::i;:::-;966:10:27;-1:-1:-1;3228:4636:81;;;;;;;;;;1356:26:76;;3228:4636:81;;4468:23:23;4464:108;;-1:-1:-1;4861:4:76;3228:4636:81;-1:-1:-1;;;;;3228:4636:81;;;;;;4861:13:76;;4857:63;;-1:-1:-1;;;;;;3228:4636:81;;;4861:4:76;3228:4636:81;4958:14:76;-1:-1:-1;;4958:14:76;4861:4;-1:-1:-1;;;;;;;;;;;3228:4636:81;;4464:108:23;3228:4636:81;;;;4514:47:23;;;;;;966:10:27;3228:4636:81;4514:47:23;;3228:4636:81;;;;;4514:47:23;3228:4636:81;;;;;;-1:-1:-1;;3228:4636:81;;;;;;-1:-1:-1;3228:4636:81;2233:13:78;3228:4636:81;;;2233:34:78;3228:4636:81;-1:-1:-1;3228:4636:81;2233:34:78;:::i;3228:4636:81:-;;;;;;-1:-1:-1;;3228:4636:81;;;;;3358:53:78;:44;3228:4636:81;;;;;:::i;:::-;;;-1:-1:-1;3228:4636:81;3358:22:78;3228:4636:81;;;-1:-1:-1;3228:4636:81;;;;;;;;;;;;;;;;;3358:44:78;:53;:::i;3228:4636:81:-;;;;;;;;;;;;;-1:-1:-1;;;;;3228:4636:81;;;;;;;;;;;;;;;:::o;:::-;;;;;;-1:-1:-1;;3228:4636:81;;;;-1:-1:-1;;;;;3228:4636:81;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;3228:4636:81;;;;;;;4301:16:25;3228:4636:81;;4726:16:25;;:34;;;;3228:4636:81;4805:1:25;4790:16;:50;;;;3228:4636:81;4855:13:25;:30;;;;3228:4636:81;4851:91:25;;;-1:-1:-1;;;;;;;;;;;3228:4636:81;;-1:-1:-1;;3228:4636:81;;;;;718:4:69;;4951:18:25;4979:67;;718:4:69;:::i;:::-;5066:101:25;;3228:4636:81;5066:101:25;-1:-1:-1;;;;;;;;;;;3228:4636:81;;-1:-1:-1;;;;3228:4636:81;;;;;-1:-1:-1;3228:4636:81;;5142:14:25;;3228:4636:81;;5142:14:25;3228:4636:81;4979:67:25;-1:-1:-1;;;;;;;;;;;3228:4636:81;;-1:-1:-1;;;;3228:4636:81;-1:-1:-1;;;3228:4636:81;;;718:4:69;:::i;4851:91:25:-;3228:4636:81;;-1:-1:-1;;;4908:23:25;;3228:4636:81;;4908:23:25;4855:30;4872:13;;;4855:30;;;4790:50;4818:4;4810:25;:30;;-1:-1:-1;4790:50:25;;4726:34;;;-1:-1:-1;4726:34:25;;3228:4636:81;;;;;;-1:-1:-1;;3228:4636:81;;;;;;3406:36;-1:-1:-1;;;;;3228:4636:81;;;;;;;;;;;;-1:-1:-1;;3228:4636:81;;;;;;;1253:6:76;3228:4636:81;;;;;-1:-1:-1;;3228:4636:81;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3228:4636:81;;;;;;;;;:::i;:::-;;;;;1997:60:78;3228:4636:81;;;:::i;:::-;;-1:-1:-1;3228:4636:81;1997:13:78;3228:4636:81;;;-1:-1:-1;3228:4636:81;1997:60:78;:::i;3228:4636:81:-;;;;;;-1:-1:-1;;3228:4636:81;;;;;;;1356:26:76;3228:4636:81;;;;;;;;;-1:-1:-1;;3228:4636:81;;;;;;3355:45;-1:-1:-1;;;;;3228:4636:81;;;;;;;;;;;;-1:-1:-1;;3228:4636:81;;;;;;;810:35:78;3228:4636:81;;;;;;;;;-1:-1:-1;;3228:4636:81;;;;;;;;-1:-1:-1;;;;;3228:4636:81;;;;;;;;;;;;;2512:74:78;3228:4636:81;;;:::i;:::-;;-1:-1:-1;3228:4636:81;;;;;-1:-1:-1;3228:4636:81;2512:74:78;:::i;3228:4636:81:-;;;;;;-1:-1:-1;;3228:4636:81;;;;;;3901:31:23;3228:4636:81;;;;;:::i;:::-;;;-1:-1:-1;3228:4636:81;-1:-1:-1;;;;;;;;;;;3228:4636:81;;;-1:-1:-1;3228:4636:81;;;;;;;;;;;;;;;;;3901:31:23;3228:4636:81;;;;;;;;;;;;;;;;-1:-1:-1;;3228:4636:81;;;;;;;;;:::i;:::-;;;;;;;;;;449:5:82;-1:-1:-1;;;;;3228:4636:81;435:10:82;:19;431:71;;4852:44:81;:83;3228:4636;;;-1:-1:-1;3228:4636:81;4852:22;3228:4636;;;-1:-1:-1;3228:4636:81;;;;;;;;;;;;;;;;;4852:44;:83;:::i;3228:4636::-;;;;;;-1:-1:-1;;3228:4636:81;;;;;;3448:45;-1:-1:-1;;;;;3228:4636:81;;;;;;;;;;;;-1:-1:-1;;3228:4636:81;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;3228:4636:81;;;;-1:-1:-1;3228:4636:81;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;416:25:75;;;;477:31;416:25;;:::i;:::-;3228:4636:81;;;;;;;;;;477:31:75;;3228:4636:81;;;;;;;;;;;:::i;:::-;477:31:75;3228:4636:81;;477:31:75;;;;;;:::i;:::-;518:79;;;3228:4636:81;518:79:75;;3228:4636:81;;;;;;-1:-1:-1;;3228:4636:81;;;;;;;;;;;;;;;;;-1:-1:-1;;3228:4636:81;;;;;;;;;;;:::i;:::-;;;3202:4:23;;;:::i;:::-;-1:-1:-1;3228:4636:81;;;3358:22:78;3228:4636:81;;;;;;;;-1:-1:-1;;;;;3228:4636:81;;;;;;;;;3358:53:78;;;:::i;:::-;4249:32;;;4245:82;;4596:54;3228:4636:81;4337:158:78;4596:54;3228:4636:81;;-1:-1:-1;3228:4636:81;;;;;-1:-1:-1;3228:4636:81;837:15:62;4413:72:78;837:15:62;4413:63:78;819:34:62;837:15;819:34;:::i;:::-;2776:39:78;:48;:39;;3228:4636:81;;;;;;;;;;2776:48:78;4413:63;:::i;:::-;:72;:::i;:::-;4337:158;;:::i;:::-;4505:34;;:75;:34;:44;:34;;;3228:4636:81;;3358:22:78;3228:4636:81;;;;;;;4505:34:78;3228:4636:81;;;;;;;;;;;;;;;;4505:75:78;-1:-1:-1;;3228:4636:81;;;;;-1:-1:-1;;;;;3228:4636:81;;;;;;;;;;4596:54:78;;;;3228:4636:81;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;-1:-1:-1;;3228:4636:81;;;;;;;-1:-1:-1;;;;;404:28:69;3228:4636:81;;;;;;;;;;-1:-1:-1;;3228:4636:81;;;;;;1439:41:76;-1:-1:-1;;;;;3228:4636:81;;;;;;;;;;;;-1:-1:-1;;3228:4636:81;;;;;;-1:-1:-1;3228:4636:81;;;;;2776:48:78;3228:4636:81;-1:-1:-1;3228:4636:81;2776:48:78;:::i;3228:4636:81:-;;;;;;-1:-1:-1;;3228:4636:81;;;;;;-1:-1:-1;3228:4636:81;2009:67:76;3228:4636:81;;;;-1:-1:-1;3228:4636:81;;;;;;;;;;;;;;-1:-1:-1;;3228:4636:81;;;;5767:26:23;3228:4636:81;;;;;;;:::i;:::-;;-1:-1:-1;3228:4636:81;-1:-1:-1;;;;;;;;;;;3228:4636:81;;3202:4:23;4919:24;3228:4636:81;-1:-1:-1;3228:4636:81;4919:24:23;3228:4636:81;3202:4:23;:::i;:::-;5767:26;:::i;3228:4636:81:-;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;-1:-1:-1;;3228:4636:81;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;-1:-1:-1;;;;;3228:4636:81;;;;;;;;;;;;:::i;:::-;3217:103:28;;:::i;:::-;-1:-1:-1;3228:4636:81;;;5246:21:76;;:13;;-1:-1:-1;;;;;3228:4636:81;5246:13:76;3228:4636:81;;-1:-1:-1;;;;;3228:4636:81;;;5246:21:76;3228:4636:81;;-1:-1:-1;;;5246:23:76;;3228:4636:81;;;;;5246:23:76;;;;;;;-1:-1:-1;5246:23:76;;;3228:4636:81;-1:-1:-1;;;;;;3228:4636:81;;;5232:10:76;:37;5228:87;;5341:4;3228:4636:81;-1:-1:-1;;;;;3228:4636:81;;;;5355:469:76;;3228:4636:81;-1:-1:-1;;3228:4636:81;;;;;;;;;;;;;;;;5839:55:76;;3228:4636:81;;;;5839:55:76;;;;3282:1:28;1805;-1:-1:-1;;;;;;;;;;;3228:4636:81;3716:283:28;5355:469:76;3228:4636:81;;;;5435:94:76;;;;3228:4636:81;5435:94:76;;;;;;;;;;;;3228:4636:81;5435:94:76;;;:::i;:::-;;3228:4636:81;;5435:94:76;;;;;;:::i;:::-;3228:4636:81;5548:9:76;:51;5544:118;;-1:-1:-1;5839:55:76;5676:138;;;;5839:55;5676:138;;;1150:7;5676:138;;5355:469;;;5544:118;3228:4636:81;;-1:-1:-1;;;5626:21:76;;3228:4636:81;;5626:21:76;5228:87;3228:4636:81;;-1:-1:-1;;;5292:12:76;;3228:4636:81;;5292:12:76;5246:23;;;;;3228:4636:81;5246:23:76;3228:4636:81;5246:23:76;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;3228:4636:81;;;;;;-1:-1:-1;;3228:4636:81;;;;;;;971:45:78;3228:4636:81;;;;;;;;;-1:-1:-1;;3228:4636:81;;;;;;:::i;:::-;449:5:82;-1:-1:-1;;;;;3228:4636:81;435:10:82;:19;431:71;;5753:78:81;3228:4636;;;-1:-1:-1;3228:4636:81;;;;;-1:-1:-1;3228:4636:81;5753:78;:::i;3228:4636::-;;;;;;-1:-1:-1;;3228:4636:81;;;;;;;;-1:-1:-1;;;;;3228:4636:81;;;;;;;;;;;;;;-1:-1:-1;;3228:4636:81;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;-1:-1:-1;;3228:4636:81;;;;;;;1150:7:76;3228:4636:81;;;;;;;;;-1:-1:-1;;3228:4636:81;;;;;;;2700:1:76;3228:4636:81;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;:::i;4948:596::-;;5195:233;4948:596;3228:4636;5171:295;4948:596;;;3228:4636;;;;5263:151;;;;;;;;;;;3228:4636;;;;;;;;;;;;;;;;;5263:151;;;;;:::i;:::-;5195:233;:::i;:::-;5263:151;3228:4636;;;5171:295;;;;;;:::i;:::-;5477:61;;;4948:596;:::o;5477:61::-;3228:4636;;;;;;;;5263:151;5510:17;;3228:4636;5263:151;5510:17;;;;;:::i;2897:279:78:-;-1:-1:-1;3228:4636:81;;;3090:22:78;3228:4636:81;;;;;;;;-1:-1:-1;;;;;3228:4636:81;;;;;;;;;3090:79:78;;2897:279;;3090:79;:::i;3228:4636:81:-;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;3228:4636:81;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;;;;3228:4636:81;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;6420:1442::-;3228:4636;;-1:-1:-1;;;6637:99:81;;-1:-1:-1;;;;;3228:4636:81;;;6637:99;;;3228:4636;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3228:4636:81;;;6656:20;3228:4636;;6637:99;;;;;;;;;;;6420:1442;-1:-1:-1;3228:4636:81;;-1:-1:-1;;;6830:32:81;;;3228:4636;6637:99;3228:4636;;;;6830:32;;;;;;;6790:84;6830:32;6637:99;6830:32;;;;;;;6420:1442;-1:-1:-1;3228:4636:81;;-1:-1:-1;;;6790:84:81;;-1:-1:-1;;;;;3228:4636:81;;;6637:99;6790:84;;3228:4636;;;;;;;;;;;;;-1:-1:-1;3228:4636:81;;;;;;;;;6790:84;;6801:11;;3228:4636;6790:84;;;;;;;6637:99;6790:84;;;6420:1442;6918:50;;;7020:69;6918:50;;;7146:64;6918:50;;;:::i;:::-;7020:69;;;;:::i;:::-;7146:64;;:::i;:::-;3228:4636;;;7238:21;;;:52;;;6420:1442;7238:85;;;;6420:1442;7238:143;;;;6420:1442;7238:190;;;;6420:1442;7221:635;;6420:1442;;;;;;;:::o;7221:635::-;7460:385;3228:4636;;7460:385;3228:4636;;;;:::i;:::-;;;;6830:32;7488:343;;3228:4636;;7488:343;;3228:4636;;7488:343;;3228:4636;7488:343;;;3228:4636;;;7460:385;;;6830:32;7460:385;;;:::i;7238:190::-;3228:4636;;;7385:43;;7238:190;;:143;3228:4636;;;7343:38;;7238:143;;:85;3228:4636;;;7294:29;;7238:85;;:52;3228:4636;;;7263:27;;7238:52;;6790:84;7146:64;6790:84;;;;;;;;6637:99;6790:84;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;6830:32;;;;;;;;;;;;;;:::i;:::-;;;;6637:99;;;;;;;;;;;;;;:::i;:::-;;;;;1869:195:78;;1997:60;1869:195;;-1:-1:-1;3228:4636:81;1997:13:78;3228:4636:81;;;-1:-1:-1;3228:4636:81;1997:60:78;:::i;2340:253::-;;2512:74;2340:253;;-1:-1:-1;3228:4636:81;2512:27:78;3228:4636:81;;;-1:-1:-1;3228:4636:81;2512:74:78;:::i;3228:4636:81:-;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;-1:-1:-1;3228:4636:81;;;;:::o;:::-;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;3228:4636:81;;;;;;;;:::o;:::-;;:::i;:::-;;;;;;;;;;:::o;:::-;;8889:1:86;3228:4636:81;;;;;;;:::o;:::-;;;;;;;;;;:::o;5844:570::-;3228:4636;;-1:-1:-1;;;6138:146:81;;;;;;;3228:4636;;;;;;;;;;;;;;5844:570;6046:290;;6070:228;;6138:146;3228:4636;;;;6138:146;;3228:4636;;6138:146;;;;;;:::i;4118:504::-;3228:4636;;-1:-1:-1;;;4398:94:81;;;;;;;3228:4636;;;;;;;;;;;;;;4118:504;4306:238;;4330:176;;4398:94;3228:4636;;;;4398:94;3228:4636;;;;;;;;:::i;:::-;;;;;;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;;;;3228:4636:81;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::o;:::-;-1:-1:-1;;;;;3228:4636:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;2764:920:76:-;;2978:48;2764:920;;;;2978:48;;;;:::i;:::-;3036:36;;;3228:4636:81;;:::i;:::-;;;;3086:20:76;3082:107;;2764:920;3216:11;;;;:193;;;;;2764:920;3216:394;;;;2764:920;3199:455;;;;;;2764:920;:::o;3199:455::-;3635:8;-1:-1:-1;3635:8:76;:::o;3216:394::-;3553:39;;;;;3430:180;3553:39;;;3228:4636:81;;;;;;;;;;3430:180:76;;467:2:88;3228:4636:81;3430:180:76;;;;;:::i;:::-;;3228:4636:81;3444:31:76;-1:-1:-1;;;;;3228:4636:81;3430:180:76;;;;;;;-1:-1:-1;3430:180:76;;;3216:394;3429:181;;3216:394;;;;;;3430:180;;;;3553:39;3430:180;3553:39;3430:180;;;;;;;:::i;:::-;;;;3216:193;-1:-1:-1;3228:4636:81;;;-1:-1:-1;;;;;;3228:4636:81;3248:161:76;3354:37;;;3228:4636:81;3248:161:76;3228:4636:81;;;;;;;;;;3248:161:76;;;;;;;:::i;:::-;;3228:4636:81;3262:29:76;-1:-1:-1;;;;;3228:4636:81;3248:161:76;;;;;;;-1:-1:-1;3248:161:76;;;3216:193;3247:162;;3216:193;;;3248:161;;;;;;;;;;;;;;:::i;:::-;;;;3082:107;3139:39;;;;;;;;;;;;;:::i;:::-;3082:107;;;;;3228:4636:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::o;:::-;;;;;;;;;;;;3740:389:76;3918:5;3228:4636:81;;;-1:-1:-1;;;3853:71:76;;;-1:-1:-1;;;;;3228:4636:81;;;3853:71:76;;;3228:4636:81;;;;;;;;3740:389:76;;3228:4636:81;3853:71:76;;3228:4636:81;;3853:71:76;3228:4636:81;;;3867:29:76;3228:4636:81;;3853:71:76;;;;;;;3918:5;3853:71;;;3740:389;3852:72;;3228:4636:81;;;3852:181:76;;3740:389;3835:242;;;;;;4094:28;;;:::i;3835:242::-;4058:8;;3918:5;4058:8;:::o;3852:181::-;3228:4636:81;;3945:88:76;;;-1:-1:-1;;;;;3228:4636:81;;3853:71:76;3945:88;;3228:4636:81;467:2:88;3228:4636:81;;;;;;;;-1:-1:-1;3228:4636:81;;;;;;;;3959:31:76;3228:4636:81;3945:88:76;;;;;;;3918:5;3945:88;;;3852:181;3944:89;;;3852:181;;;;;3945:88;;;;;;-1:-1:-1;3945:88:76;;;;;;:::i;:::-;;;;;3853:71;;;;;;;;;;;;;;:::i;:::-;;;;4148:103:23;966:10:27;-1:-1:-1;3228:4636:81;;;;;;;;;810:35:78;;3228:4636:81;;3901:31:23;3228:4636:81;;4468:23:23;4464:108;;4148:103;:::o;:::-;966:10:27;-1:-1:-1;3228:4636:81;;;;;;;;;971:45:78;;3228:4636:81;;3901:31:23;3228:4636:81;4148:103:23;-1:-1:-1;3228:4636:81;;;-1:-1:-1;;;;;;;;;;;3228:4636:81;;;;;;;;966:10:27;3228:4636:81;;;;;;;;;3901:31:23;3228:4636:81;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3228:4636:81;;-1:-1:-1;3228:4636:81;;;-1:-1:-1;3228:4636:81;:::o;:::-;;:::i;:::-;;;;;-1:-1:-1;;;3228:4636:81;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;6246:584:86;;;;;6360:12;;;3228:4636:81;;;6360:24:86;;6356:75;;6246:584;6474:30;;;;;:::i;:::-;3228:4636:81;;;;;;6578:12:86;;;;:::i;:::-;6604:24;;;;6246:584;-1:-1:-1;6600:188:86;;;-1:-1:-1;;;;;3228:4636:81;;;;;;;6644:21:86;;;:29;:21;;:::i;:29::-;6798:25;6246:584;:::o;6600:188::-;6753:24;;3228:4636:81;;8167:38:60;;-1:-1:-1;;;;;3228:4636:81;;;;;8167:38:60;:::i;:::-;6753:24:86;;;:::i;6604:::-;3228:4636:81;;;;;;6614:14:86;;-1:-1:-1;6604:24:86;;;6356:75;-1:-1:-1;;;3228:4636:81;;;;;;6360:12:86;3228:4636:81;;;;;;;:::i;:::-;;;;;;;;;;;;;;6356:75:86;;;525:595:82;-1:-1:-1;525:595:82;;;;3228:4636:81;;716:88:82;;3228:4636:81;716:88:82;;;;;;;;;783:4;716:88;;;3228:4636:81;;;;;;;;;;;:::i;716:88:82:-;698:107;;;;;;;:::i;:::-;3228:4636:81;;857:45:82;;3228:4636:81;;;;;;;;716:88:82;857:45;;3228:4636:81;:::i;:::-;;;;;;;-1:-1:-1;;;;;3228:4636:81;;;;;857:45:82;716:88;857:45;;;3228:4636:81;;;;:::i;:::-;916:8:82;;912:175;;525:595;:::o;912:175::-;3228:4636:81;;944:22:82;;;940:36;;716:88;990:87;;3228:4636:81;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::o;8406:869:86:-;;;3228:4636:81;;8620:15:86;8578:11;8645:18;8678:7;8684:1;8678:7;;8674:241;;8406:869;8939:60;;;;;:::i;:::-;9014:8;;;9010:62;;9252:15;9259:7;3228:4636:81;9219:31:86;3228:4636:81;9130:48:86;9170:7;;;:::i;:::-;9130:48;13267:109;;;;;;13089:293;;9130:48;3228:4636:81;:::i;:::-;;9176:1:86;3228:4636:81;9232:17:86;3228:4636:81;;;;;;;;9232:17:86;;3228:4636:81;-1:-1:-1;;;;;3228:4636:81;;;;9219:12:86;;:31;:::i;:::-;3228:4636:81;;;;;;;;;9259:7:86;;:::i;:::-;3228:4636:81;;;;9252:15:86;9176:1;;9188:80;;8406:869::o;9010:62::-;8578:11;;-1:-1:-1;8578:11:86;;-1:-1:-1;8578:11:86;;;;9038:23::o;8674:241::-;8721:14;;;;;:::i;:::-;3228:4636:81;;;;;;;8939:60:86;13267:109;;8578:11;13267:109;8753:55;8759:49;13267:109;;8578:11;13267:109;;3228:4636:81;;;;;;8759:49:86;3228:4636:81;;;;8753:55:86;3228:4636:81;;;8753:55:86;13267:109;;;8828:10;8749:156;8674:241;;8749:156;8883:7;;;;;;:::i;:::-;8749:156;8674:241;;3228:4636:81;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::o;7558:604:86:-;;3228:4636:81;;7686:17:86;7682:83;;3228:4636:81;7789:27:86;3228:4636:81;7789:27:86;3228:4636:81;;7789:27:86;;;;;;:::i;:::-;7860:14;;;;;:::i;:::-;3228:4636:81;;;;;;;;;;;;;;;;7888:22:86;;;7884:77;;7975:21;-1:-1:-1;7975:84:86;;;;7558:604;7971:139;;;;8127:28;;;;:::i;7971:139::-;8082:17;;7789:27;8082:17;3228:4636:81;8075:24:86;:::o;7975:84::-;3228:4636:81;;;8009:16:86;3228:4636:81;;8009:16:86;:::i;:::-;3228:4636:81;;;8001:24:86;:57;;;;;7975:84;;;;;;;8001:57;8029:29;8038:8;;;8029:18;8038:8;8029:23;8038:8;;:::i;:::-;8029:18;;:::i;:::-;3228:4636:81;;;;;8029:29:86;;8001:57;;;;7884:77;7933:17;;;;;7789:27;7933:17;3228:4636:81;7926:24:86;:::o;7682:83::-;7726:28;;;;:::i;3326:384:28:-;-1:-1:-1;;;;;;;;;;;1847:1:28;3228:4636:81;;3526:20:28;3522:88;;1847:1;3228:4636:81;;3326:384:28:o;3522:88::-;3228:4636:81;;-1:-1:-1;;;3569:30:28;;;;;6196:308:78;;3228:4636:81;-1:-1:-1;3228:4636:81;6327:13:78;3228:4636:81;;;-1:-1:-1;3228:4636:81;11124:30:86;;;;:::i;:::-;11173;;;-1:-1:-1;11173:30:86;;;;11182:17;;-1:-1:-1;;;;;3228:4636:81;;11182:12:86;;:17;:::i;:::-;3228:4636:81;;;6327:13:78;3228:4636:81;;11173:30:86;6385::78;;;11173::86;6381:117:78;;;;6196:308;;:::o;6381:117::-;6431:56;3228:4636:81;-1:-1:-1;3228:4636:81;6327:13:78;3228:4636:81;;;-1:-1:-1;3228:4636:81;819:34:62;837:15;819:34;:::i;6431:56:78:-;6196:308;;:::o;6385:30::-;6395:20;;-1:-1:-1;6385:30:78;;;;11173::86;;;-1:-1:-1;11173:30:86;;7270:387:23;-1:-1:-1;;;;;3228:4636:81;;-1:-1:-1;3228:4636:81;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2887:71:23;3228:4636:81;;;;-1:-1:-1;3228:4636:81;;;;;;;;;;;-1:-1:-1;;;;;3228:4636:81;;;;;;;;;;-1:-1:-1;;3228:4636:81;7509:4:23;3228:4636:81;;;966:10:27;;-1:-1:-1;;;;;3228:4636:81;-1:-1:-1;7532:40:23;-1:-1:-1;;7532:40:23;7509:4;7586:11;:::o;7270:387::-;-1:-1:-1;;;;;3228:4636:81;;-1:-1:-1;3228:4636:81;;;;;;;;;1356:26:76;;-1:-1:-1;;;;;;;;;;;2887:71:23;3228:4636:81;;3901:31:23;3228:4636:81;;;;-1:-1:-1;3228:4636:81;;;;;;;;;;;-1:-1:-1;;;;;3228:4636:81;;;;;;;;;;-1:-1:-1;;3228:4636:81;7509:4:23;3228:4636:81;;;966:10:27;;-1:-1:-1;;;;;3228:4636:81;;7532:40:23;-1:-1:-1;;7532:40:23;7509:4;7586:11;:::o;7432:219::-;7628:12;;;-1:-1:-1;7628:12:23;:::o;7270:387::-;-1:-1:-1;;;;;3228:4636:81;;-1:-1:-1;3228:4636:81;;;;;;;;;810:35:78;;-1:-1:-1;;;;;;;;;;;2887:71:23;3228:4636:81;;3901:31:23;3228:4636:81;7270:387:23;-1:-1:-1;;;;;3228:4636:81;;-1:-1:-1;3228:4636:81;;;;;;;;;971:45:78;;-1:-1:-1;;;;;;;;;;;2887:71:23;3228:4636:81;;3901:31:23;3228:4636:81;7270:387:23;-1:-1:-1;3228:4636:81;;;-1:-1:-1;;;;;;;;;;;3228:4636:81;;;;;;;;-1:-1:-1;;;;;3228:4636:81;;;;;;;;;;;;3901:31:23;3228:4636:81;7892:388:23;-1:-1:-1;3228:4636:81;;;-1:-1:-1;;;;;;;;;;;3228:4636:81;;;;;;;;-1:-1:-1;;;;;3228:4636:81;;;;;;;;;;;;;;;;-1:-1:-1;3228:4636:81;;;;;;;;;;;-1:-1:-1;;;;;3228:4636:81;;;;;;;;;;-1:-1:-1;;3228:4636:81;;;966:10:27;;-1:-1:-1;;;;;3228:4636:81;;8155:40:23;-1:-1:-1;;8155:40:23;3228:4636:81;8209:11:23;:::o;10580:184:86:-;3228:4636:81;;10303:8:60;;;:63;-1:-1:-1;10303:63:60;-1:-1:-1;;;;;3228:4636:81;;10726:7:86;3228:4636:81;;10736:12:86;:17;:12;;:17;:::i;10303:63:60:-;3228:4636:81;;;;;;;;;;13267:109:86;-1:-1:-1;13267:109:86;;-1:-1:-1;13267:109:86;;;3228:4636:81;;;10303:63:60;;3228:4636:81;;;;;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;3228:4636:81;;;;;;;;:::i;5907:716:76:-;6030:34;5907:716;6030:34;;;;:::i;:::-;3228:4636:81;;-1:-1:-1;;;6080:41:76;;-1:-1:-1;;;;;3228:4636:81;;;6080:41:76;;;3228:4636:81;;;;;6080:41:76;3228:4636:81;;;6090:13:76;3228:4636:81;;6080:41:76;;;;;;;-1:-1:-1;6080:41:76;;;5907:716;6079:42;;6075:90;;6266:27;3228:4636:81;2540:111:28;6210:14:76;3228:4636:81;2540:111:28;;;:::i;:::-;3228:4636:81;;;;;;-1:-1:-1;;;;;3228:4636:81;;-1:-1:-1;3228:4636:81;;;-1:-1:-1;3228:4636:81;;6210:14:76;6266:27;:::i;:::-;6080:41;6311:15;;3228:4636:81;;;;-1:-1:-1;;;;;;3228:4636:81;-1:-1:-1;;;;;3228:4636:81;;;;;;;;;;;-1:-1:-1;;;;;3228:4636:81;;;;6337:143:76;;5907:716;-1:-1:-1;6493:28:76;3228:4636:81;-1:-1:-1;;;;;3228:4636:81;;;;;;;6489:128:76;;5907:716;:::o;6489:128::-;6551:55;;;:::i;:::-;;5907:716::o;6337:143::-;6404:65;;;:::i;:::-;;6337:143;;;6075:90;3228:4636:81;;-1:-1:-1;;;6144:10:76;;6080:41;;6144:10;6080:41;;;;;;;;;;;;;;:::i;:::-;;;;3228:4636:81;;;;;;;;;;-1:-1:-1;;;;;3228:4636:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;;;;3228:4636:81;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;:::i;4663:1079:78:-;;;;;3228:4636:81;;:::i;:::-;;;;4903:16:78;4899:92;;4663:1079;5105:42;;5053:95;5105:42;;;;5053:95;;;:::i;:::-;5165:570;:34;;;5218:21;;;;;;5165:570;-1:-1:-1;5158:577:78;4663:1079;:::o;5165:570::-;5273:95;5431:67;5330:37;;;;;;5273:95;;;:::i;:::-;3228:4636:81;5470:27:78;5431;:13;3228:4636:81;-1:-1:-1;3228:4636:81;;;;;;;;;5431:27:78;5470;;;;3228:4636:81;;;;;;;;;;;5431:67:78;;;;;;;:::i;:::-;;;;;;;;;5273:409;5431:67;5397:216;5431:67;-1:-1:-1;5431:67:78;;;5165:570;5562:28;5524:67;5562:28;;3228:4636:81;5562:28:78;;;5524:67;;:::i;:::-;5397:216;;:::i;:::-;5273:409;;:::i;:::-;5700:21;;4663:1079;:::o;5431:67::-;5524;5431;;;;5470:27;5431:67;5470:27;5431:67;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;4899:92;4949:31;;;;;;;;;;;;;:::i;:::-;4899:92;;;;;5748:442;;2776:48;:39;;3228:4636:81;;;;;;;;;;2776:48:78;5946:237;:32;;;:237;;;-1:-1:-1;5748:442:78;:::o;5946:237::-;3358:44;:53;:34;;;3228:4636:81;;3358:22:78;3228:4636:81;;;;;;;3358:53:78;-1:-1:-1;3228:4636:81;;;-1:-1:-1;;;6086:27:78;;3228:4636:81;6086:27:78;;3228:4636:81;;2776:27:78;;3228:4636:81;;-1:-1:-1;;;;;3228:4636:81;6086:27:78;;;;;;6009:174;6086:27;6077:63;6086:27;-1:-1:-1;6086:27:78;;;5946:237;2233:25;;:34;:25;3228:4636:81;;2233:13:78;3228:4636:81;;;;;;;6086:27:78;2233:34;6086:27;;;;2233:25;6086:27;;;;;;;;;;;:::i;:::-;;;;;;14291:213:58;3228:4636:81;14369:24:58;;;;14365:103;;3228:4636:81;14291:213:58;:::o;14365:103::-;3228:4636:81;;;;14416:41:58;;;;;;14447:2;14416:41;;;3228:4636:81;;;;;14416:41:58;10552:388:60;3228:4636:81;;10728:8:60;;;10752:20;;10690:17;10752:20;10690:17;10752:20;10690:17;10752:20;:::o;10724:210::-;3228:4636:81;;;;;;;;;;;13267:109:86;10690:17:60;13267:109:86;;10690:17:60;13267:109:86;;;3228:4636:81;:::i;:::-;;;;;;;13267:109:86;3228:4636:81;;;;;10911:11:60;;3228:4636:81;;10886:37:60;10870:1;10886:37;;;:::o;8587:1642:57:-;8658:6;;8654:45;;9401:7;10201:10;10142:26;10093;10044;9995;9946;9897;9848;3228:4636:81;10189:23:57;9401:7;8663:1;3228:4636:81;;;;10826:16:57;10822:99;;8587:1642;3228:4636:81;;;;10938:15:57;10934:96;;8587:1642;3228:4636:81;;;;11047:15:57;11043:96;;8587:1642;3228:4636:81;;;;11156:15:57;11152:96;;8587:1642;3228:4636:81;;;;11265:14:57;11261:93;;8587:1642;3228:4636:81;;;;11371:14:57;11367:93;;8587:1642;3228:4636:81;;;;11477:14:57;11473:93;;8587:1642;3228:4636:81;;;11579:64:57;;8587:1642;3228:4636:81;;;9858:10:57;;;;:::i;:::-;3228:4636:81;;;;;9848:26:57;9907:10;;;;:::i;9897:26::-;9956:10;;;;:::i;9946:26::-;10005:10;;;;:::i;9995:26::-;10054:10;;;;:::i;10044:26::-;10103:10;;;;:::i;10093:26::-;10152:10;;;;:::i;10142:26::-;10201:10;;;:::i;11579:64::-;3228:4636:81;;11579:64:57;;11473:93;3228:4636:81;11511:11:57;;3228:4636:81;;11473:93:57;;;;11367;3228:4636:81;11405:11:57;;3228:4636:81;;11367:93:57;;;;11261;3228:4636:81;11299:11:57;;3228:4636:81;;11261:93:57;;;;11152:96;3228:4636:81;11191:12:57;;3228:4636:81;;11152:96:57;;;;11043;3228:4636:81;11082:12:57;;3228:4636:81;;11043:96:57;;;;10934;3228:4636:81;10973:12:57;;3228:4636:81;;10934:96:57;;;;10822:99;10862:13;;;3228:4636:81;10822:99:57;;;;12497:447:86;;12694:10;;;;;;12926:11;;;12497:447;:::o;12687:230::-;12734:23;;;;;;;:::i;:::-;13267:109;;-1:-1:-1;13267:109:86;3228:4636:81;13267:109:86;;;-1:-1:-1;13267:109:86;;3228:4636:81;;;;;-1:-1:-1;12771:136:86;3228:4636:81;;;12830:10:86;12771:136;;12687:230;;;;12771:136;3228:4636:81;;12891:1:86;3228:4636:81;;;;;;12771:136:86;3228:4636:81;;:::i;6999:207:86:-;;3228:4636:81;;9594:15:60;-1:-1:-1;9619:18:60;9652:7;9658:1;9652:7;;9648:234;;6999:207:86;9906:53:60;;;;;:::i;:::-;9977:8;;;:63;-1:-1:-1;9977:63:60;;-1:-1:-1;;;;;3228:4636:81;;7168:7:86;3228:4636:81;;;7178:12:86;;:17;:12;;:17;:::i;9977:63:60:-;9992:41;10025:7;9992:48;10025:7;;:::i;:::-;9992:41;13267:109:86;;;;;;13089:293;;9992:41:60;3228:4636:81;;;;;9992:48:60;9977:63;;;9648:234;9695:14;;;;;:::i;:::-;3228:4636:81;;;;;;;9906:53:60;13267:109:86;;-1:-1:-1;13267:109:86;3228:4636:81;13267:109:86;;;-1:-1:-1;13267:109:86;;3228:4636:81;;;;;9727:48:60;9723:149;3228:4636:81;;;9795:10:60;9723:149;9648:234;;9723:149;9850:7;;;;;;:::i;:::-;9723:149;9648:234;;3228:4636:81;;;;;;;:::i;:::-;-1:-1:-1;3228:4636:81;;;;;;;:::o;11486:272:86:-;;3228:4636:81;11308:22:60;11718:31:86;11486:272;3228:4636:81;;:::i;:::-;;;;:::i;:::-;;11308:22:60;;:::i;:::-;3228:4636:81;;:::i;:::-;;11718:12:86;3228:4636:81;;;;;11731:17:86;3228:4636:81;;;;;11731:17:86;;3228:4636:81;;11718:12:86;;:31;:::i;:::-;3228:4636:81;;;;;;;;;:::i;:::-;;;;;;11731:17:86;11672:79;;3228:4636:81;11486:272:86;:::o;6893:76:25:-;;;:::i;:::-;;;:::i;:::-;1805:1:28;-1:-1:-1;;;;;;;;;;;3228:4636:81;6893:76:25:o;3228:4636:81:-;;;;;;;:::i;:::-;-1:-1:-1;3228:4636:81;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;-1:-1:-1;;;;;3228:4636:81;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3228:4636:81;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;6510:1274:78:-;6658:30;6510:1274;3228:4636:81;;:::i;:::-;;6658:30:78;3228:4636:81;;;6658:30:78;;;;;;:::i;:::-;6716:17;;3228:4636:81;6716:17:78;;3228:4636:81;-1:-1:-1;;;;;3228:4636:81;6716:54:78;;:179;;6510:1274;6699:259;;6973:9;6658:30;6988:33;;;6716:17;7030:3;6988:33;;3228:4636:81;;6984:44:78;;;;;7053:36;;;:50;:36;;:::i;:::-;3228:4636:81;-1:-1:-1;;;;;3228:4636:81;;;7053:50:78;;7049:119;;7186:73;7187:72;7222:36;;:33;;;:36;:::i;:::-;7187:72;:::i;:::-;7186:73;;3228:4636:81;7186:73:78;7182:140;;3228:4636:81;;6973:9:78;;7182:140;3228:4636:81;;-1:-1:-1;;;7286:21:78;;;;;7049:119;3228:4636:81;;-1:-1:-1;;;7130:23:78;;;;;6984:44;-1:-1:-1;7362:42:78;;-1:-1:-1;;7362:42:78;;;;6716:17;7413:3;7362:42;;3228:4636:81;;7358:53:78;;;;;7436:45;;;:59;:45;;:::i;:59::-;;7432:128;;7578:92;7579:91;7624:45;;:42;;;:45;:::i;:::-;7579:91;:::i;7578:92::-;7574:159;;3228:4636:81;;7347:9:78;;7574:159;3228:4636:81;;-1:-1:-1;;;7697:21:78;;;;;7432:128;3228:4636:81;;-1:-1:-1;;;7522:23:78;;;;;7358:53;;;;;;7760:17;6510:1274;:::o;6699:259::-;3228:4636:81;;-1:-1:-1;;;6927:20:78;;;;;6716:179;6791:33;6658:30;6791:33;;;3228:4636:81;6791:45:78;:103;6716:179;6791:103;6840:42;;;;;3228:4636:81;6840:54:78;6716:179;;2557:104:57;;2641:5;;;;;;:13;2557:104;:::o;2641:13::-;;;2557:104;:::o;3803:4116::-;;;3228:4636:81;;;;-1:-1:-1;;3803:4116:57;;4383:131;;;;;;;;;;;;4595:10;;4591:368;;5065:20;;;;5061:88;;5435:300;;;3228:4636:81;-1:-1:-1;3228:4636:81;5954:31:57;;5999:371;;;6813:1;3228:4636:81;;6794:1:57;3228:4636:81;6793:21:57;3228:4636:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5999:371:57;;;;-1:-1:-1;5999:371:57;;;5435:300;;;;;;3228:4636:81;5435:300:57;;5999:371;6436:21;3228:4636:81;3803:4116:57;:::o;5061:88::-;3228:4636:81;;-1:-1:-1;;;5112:22:57;;;;;4591:368;4925:19;;;;;;;:::i;3228:4636:81:-;;;-1:-1:-1;;;3228:4636:81;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;3228:4636:81;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;11513:870:60;3228:4636:81;;11513:870:60;;;3228:4636:81;11513:870:60;11672:7;;;;3228:4636:81;11775:28:60;11795:7;;;:::i;3228:4636:81:-;;;;;;;;;;;;;;;;11877:15:60;-1:-1:-1;11873:91:60;;3228:4636:81;;12233:11:60;3228:4636:81;;;12027:16:60;3228:4636:81;;;;;;;12027:16:60;;;;12083:7;12063:43;12083:7;;12063:28;12083:7;;:::i;:::-;12063:28;13267:109:86;;;;;;13089:293;;12063:28:60;3228:4636:81;;;;;;;;;;;;;;;;;12063:43:60;12233:11;3228:4636:81;-1:-1:-1;;;;;3228:4636:81;;;12023:189:60;3228:4636:81;;;12145:52:60;3228:4636:81;12155:41:60;3228:4636:81;;:::i;:::-;;;;;;;;12155:41:60;-1:-1:-1;;;;;3228:4636:81;;12155:41:60;;;3228:4636:81;12145:52:60;:::i;:::-;12023:189;;11873:91;3228:4636:81;;-1:-1:-1;;;11919:30:60;;;;;11668:709;12283:52;3228:4636:81;;12293:41:60;3228:4636:81;;:::i;12293:41:60:-;-1:-1:-1;;;;;3228:4636:81;;12293:41:60;;;3228:4636:81;12145:52:60;:::i;12283:::-;11678:1;12349:17;;:::o;2774:153:57:-;;2900:5;;;2910;;3228:4636:81;;;;;;;;;2774:153:57;:::o;7084:141:25:-;3228:4636:81;-1:-1:-1;;;;;;;;;;;3228:4636:81;;;;7150:18:25;7146:73;;7084:141::o;7146:73::-;3228:4636:81;;-1:-1:-1;;;7191:17:25;;;;;12736:433:60;;12919:10;;;;;;13151:11;;;12736:433;:::o;12912:230::-;12959:23;;;;;;;:::i;:::-;13267:109:86;;-1:-1:-1;13267:109:86;3228:4636:81;13267:109:86;;;-1:-1:-1;13267:109:86;;3228:4636:81;;;;;-1:-1:-1;12996:136:60;3228:4636:81;;;13055:10:60;12996:136;;12912:230;;;;12996:136;3228:4636:81;;13116:1:60;3228:4636:81;;;;;;12996:136:60;3228:4636:81;;:::i","linkReferences":{},"immutableReferences":{"57808":[{"start":2537,"length":32}],"57811":[{"start":4780,"length":32}],"58762":[{"start":2123,"length":32},{"start":4837,"length":32}],"58765":[{"start":1298,"length":32},{"start":10629,"length":32}],"58768":[{"start":1366,"length":32},{"start":7731,"length":32},{"start":7995,"length":32}],"58771":[{"start":1993,"length":32},{"start":7578,"length":32},{"start":8121,"length":32}],"61286":[{"start":3733,"length":32},{"start":6477,"length":32}],"61288":[{"start":3479,"length":32},{"start":6638,"length":32}],"61290":[{"start":4169,"length":32}],"62368":[{"start":1440,"length":32},{"start":4055,"length":32},{"start":5673,"length":32}]}},"methodIdentifiers":{"BASE_DELEGATOR_HINTS()":"79d89614","DEFAULT_ADMIN_ROLE()":"a217fddf","FACTORY()":"2dd31000","HOOK_GAS_LIMIT()":"ff54740f","HOOK_RESERVE()":"557cab44","HOOK_SET_ROLE()":"6679191e","NETWORK_LIMIT_SET_ROLE()":"7d24bb27","NETWORK_REGISTRY()":"c0cd7c3e","OPERATOR_NETWORK_OPT_IN_SERVICE()":"1a80e500","OPERATOR_NETWORK_SHARES_SET_ROLE()":"e78eb6ae","OPERATOR_VAULT_OPT_IN_SERVICE()":"128e5d82","OPT_IN_SERVICE_HINTS()":"9b656b22","TYPE()":"bb24fe8a","VAULT_FACTORY()":"103f2907","VAULT_HINTS()":"45e78fcb","VERSION()":"ffa1ad74","getRoleAdmin(bytes32)":"248a9ca3","grantRole(bytes32,address)":"2f2ff15d","hasRole(bytes32,address)":"91d14854","hook()":"7f5a7c7b","initialize(bytes)":"439fab91","maxNetworkLimit(bytes32)":"d15b740e","networkLimit(bytes32)":"3eb22c0f","networkLimitAt(bytes32,uint48,bytes)":"5d32a1c9","networkLimitHint(address,bytes32,uint48)":"da749d2b","networkLimitHintInternal(bytes32,uint48)":"197aa7ea","onSlash(bytes32,address,uint256,uint48,bytes)":"e49561ee","operatorNetworkShares(bytes32,address)":"42c53e33","operatorNetworkSharesAt(bytes32,address,uint48,bytes)":"1a7a7044","operatorNetworkSharesHint(address,bytes32,address,uint48)":"07f9d5fd","operatorNetworkSharesHintInternal(bytes32,address,uint48)":"987b3ee8","renounceRole(bytes32,address)":"36568abe","revokeRole(bytes32,address)":"d547741f","setHook(address)":"3dfd3873","setMaxNetworkLimit(uint96,uint256)":"23f752d5","setNetworkLimit(bytes32,uint256)":"02145348","setOperatorNetworkShares(bytes32,address,uint256)":"a33bc287","stake(bytes32,address)":"fd4d447c","stakeAt(bytes32,address,uint48,bytes)":"e02f6937","stakeHints(address,bytes32,address,uint48)":"25dc9708","staticDelegateCall(address,bytes)":"9f86fd85","supportsInterface(bytes4)":"01ffc9a7","totalOperatorNetworkShares(bytes32)":"c43dc03f","totalOperatorNetworkSharesAt(bytes32,uint48,bytes)":"8b3f10b0","totalOperatorNetworkSharesHint(address,bytes32,uint48)":"b549ef1f","totalOperatorNetworkSharesHintInternal(bytes32,uint48)":"ed4d89e5","vault()":"fbfa77cf"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"baseDelegatorHints\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"vaultHints\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"optInServiceHints\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"AccessControlBadConfirmation\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"neededRole\",\"type\":\"bytes32\"}],\"name\":\"AccessControlUnauthorizedAccount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AlreadySet\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CheckpointUnorderedInsertion\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"DuplicateRoleHolder\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ExceedsMaxNetworkLimit\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ExternalCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientHookGas\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MathOverflowedMulDiv\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MissingRoleHolders\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotNetwork\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotSlasher\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotVault\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ReentrancyGuardReentrantCall\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"bits\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"SafeCastOverflowedUintDowncast\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ZeroAddressRoleHolder\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint48\",\"name\":\"captureTimestamp\",\"type\":\"uint48\"}],\"name\":\"OnSlash\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"previousAdminRole\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"newAdminRole\",\"type\":\"bytes32\"}],\"name\":\"RoleAdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleRevoked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"hook\",\"type\":\"address\"}],\"name\":\"SetHook\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"SetMaxNetworkLimit\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"SetNetworkLimit\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"}],\"name\":\"SetOperatorNetworkShares\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"BASE_DELEGATOR_HINTS\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"DEFAULT_ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"FACTORY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"HOOK_GAS_LIMIT\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"HOOK_RESERVE\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"HOOK_SET_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"NETWORK_LIMIT_SET_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"NETWORK_REGISTRY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"OPERATOR_NETWORK_OPT_IN_SERVICE\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"OPERATOR_NETWORK_SHARES_SET_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"OPERATOR_VAULT_OPT_IN_SERVICE\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"OPT_IN_SERVICE_HINTS\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"TYPE\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"VAULT_FACTORY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"VAULT_HINTS\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"VERSION\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleAdmin\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"grantRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"hook\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"}],\"name\":\"maxNetworkLimit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"}],\"name\":\"networkLimit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hint\",\"type\":\"bytes\"}],\"name\":\"networkLimitAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"}],\"name\":\"networkLimitHint\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"}],\"name\":\"networkLimitHintInternal\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"exists\",\"type\":\"bool\"},{\"internalType\":\"uint32\",\"name\":\"hint\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint48\",\"name\":\"captureTimestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"onSlash\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"operatorNetworkShares\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hint\",\"type\":\"bytes\"}],\"name\":\"operatorNetworkSharesAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"}],\"name\":\"operatorNetworkSharesHint\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"}],\"name\":\"operatorNetworkSharesHintInternal\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"exists\",\"type\":\"bool\"},{\"internalType\":\"uint32\",\"name\":\"hint\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"callerConfirmation\",\"type\":\"address\"}],\"name\":\"renounceRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"hook_\",\"type\":\"address\"}],\"name\":\"setHook\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint96\",\"name\":\"identifier\",\"type\":\"uint96\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"setMaxNetworkLimit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"setNetworkLimit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"}],\"name\":\"setOperatorNetworkShares\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"stake\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hints\",\"type\":\"bytes\"}],\"name\":\"stakeAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"}],\"name\":\"stakeHints\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"staticDelegateCall\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"}],\"name\":\"totalOperatorNetworkShares\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hint\",\"type\":\"bytes\"}],\"name\":\"totalOperatorNetworkSharesAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"}],\"name\":\"totalOperatorNetworkSharesHint\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"}],\"name\":\"totalOperatorNetworkSharesHintInternal\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"exists\",\"type\":\"bool\"},{\"internalType\":\"uint32\",\"name\":\"hint\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"vault\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"AccessControlBadConfirmation()\":[{\"details\":\"The caller of a function is not the expected one. NOTE: Don't confuse with {AccessControlUnauthorizedAccount}.\"}],\"AccessControlUnauthorizedAccount(address,bytes32)\":[{\"details\":\"The `account` is missing a role.\"}],\"CheckpointUnorderedInsertion()\":[{\"details\":\"A value was attempted to be inserted on a past checkpoint.\"}],\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"MathOverflowedMulDiv()\":[{\"details\":\"Muldiv operation overflow.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"ReentrancyGuardReentrantCall()\":[{\"details\":\"Unauthorized reentrant call.\"}],\"SafeCastOverflowedUintDowncast(uint8,uint256)\":[{\"details\":\"Value doesn't fit in an uint of `bits` size.\"}]},\"events\":{\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"OnSlash(bytes32,address,uint256,uint48)\":{\"params\":{\"amount\":\"amount of the collateral to be slashed\",\"captureTimestamp\":\"time point when the stake was captured\",\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"}},\"RoleAdminChanged(bytes32,bytes32,bytes32)\":{\"details\":\"Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole` `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite {RoleAdminChanged} not being emitted signaling this.\"},\"RoleGranted(bytes32,address,address)\":{\"details\":\"Emitted when `account` is granted `role`. `sender` is the account that originated the contract call, an admin role bearer except when using {AccessControl-_setupRole}.\"},\"RoleRevoked(bytes32,address,address)\":{\"details\":\"Emitted when `account` is revoked `role`. `sender` is the account that originated the contract call: - if using `revokeRole`, it is the admin role bearer - if using `renounceRole`, it is the role bearer (i.e. `account`)\"},\"SetHook(address)\":{\"params\":{\"hook\":\"address of the hook\"}},\"SetMaxNetworkLimit(bytes32,uint256)\":{\"params\":{\"amount\":\"new maximum subnetwork's limit (how much stake the subnetwork is ready to get)\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"}},\"SetNetworkLimit(bytes32,uint256)\":{\"params\":{\"amount\":\"new subnetwork's limit (how much stake the vault curator is ready to give to the subnetwork)\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"}},\"SetOperatorNetworkShares(bytes32,address,uint256)\":{\"params\":{\"operator\":\"address of the operator\",\"shares\":\"new operator's shares inside the subnetwork (what percentage, which is equal to the shares divided by the total operators' shares, of the subnetwork's stake the vault curator is ready to give to the operator)\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"}}},\"kind\":\"dev\",\"methods\":{\"VERSION()\":{\"details\":\"Must return 1 for this one.\",\"returns\":{\"_0\":\"version of the delegator\"}},\"getRoleAdmin(bytes32)\":{\"details\":\"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}.\"},\"grantRole(bytes32,address)\":{\"details\":\"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event.\"},\"hasRole(bytes32,address)\":{\"details\":\"Returns `true` if `account` has been granted `role`.\"},\"initialize(bytes)\":{\"params\":{\"data\":\"some data to use\"}},\"networkLimit(bytes32)\":{\"params\":{\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"},\"returns\":{\"_0\":\"limit of the subnetwork\"}},\"networkLimitAt(bytes32,uint48,bytes)\":{\"params\":{\"hint\":\"hint for checkpoint index\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\",\"timestamp\":\"time point to get the subnetwork limit at\"},\"returns\":{\"_0\":\"limit of the subnetwork at the given timestamp\"}},\"onSlash(bytes32,address,uint256,uint48,bytes)\":{\"details\":\"Only the vault's slasher can call this function.\",\"params\":{\"amount\":\"amount of the collateral slashed\",\"captureTimestamp\":\"time point when the stake was captured\",\"data\":\"some additional data\",\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"}},\"operatorNetworkShares(bytes32,address)\":{\"params\":{\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"},\"returns\":{\"_0\":\"shares of the operator for the subnetwork\"}},\"operatorNetworkSharesAt(bytes32,address,uint48,bytes)\":{\"params\":{\"hint\":\"hint for checkpoint index\",\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\",\"timestamp\":\"time point to get the operator's shares at\"},\"returns\":{\"_0\":\"shares of the operator for the subnetwork at the given timestamp\"}},\"renounceRole(bytes32,address)\":{\"details\":\"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `callerConfirmation`. May emit a {RoleRevoked} event.\"},\"revokeRole(bytes32,address)\":{\"details\":\"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event.\"},\"setHook(address)\":{\"details\":\"Only a HOOK_SET_ROLE holder can call this function. The hook can have arbitrary logic under certain functions, however, it doesn't affect the stake guarantees.\",\"params\":{\"hook\":\"address of the hook\"}},\"setMaxNetworkLimit(uint96,uint256)\":{\"details\":\"Only a network can call this function.\",\"params\":{\"amount\":\"new maximum subnetwork's limit\"}},\"setNetworkLimit(bytes32,uint256)\":{\"details\":\"Only a NETWORK_LIMIT_SET_ROLE holder can call this function.\",\"params\":{\"amount\":\"new limit of the subnetwork\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"}},\"setOperatorNetworkShares(bytes32,address,uint256)\":{\"details\":\"Only an OPERATOR_NETWORK_SHARES_SET_ROLE holder can call this function.\",\"params\":{\"operator\":\"address of the operator\",\"shares\":\"new shares of the operator for the subnetwork\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"}},\"stake(bytes32,address)\":{\"details\":\"Warning: this function is not safe to use for stake capturing, as it can change by the end of the block.\",\"params\":{\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"},\"returns\":{\"_0\":\"slashable stake until the end of the next epoch\"}},\"stakeAt(bytes32,address,uint48,bytes)\":{\"details\":\"Warning: it is not safe to use timestamp >= current one for the stake capturing, as it can change later.\",\"params\":{\"hints\":\"hints for the checkpoints' indexes\",\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\",\"timestamp\":\"time point to capture the stake at\"},\"returns\":{\"_0\":\"slashable stake at the given timestamp until the end of the consequent epoch\"}},\"staticDelegateCall(address,bytes)\":{\"details\":\"It allows to use this contract's storage on-chain.\",\"params\":{\"data\":\"data to make a delegatecall with\",\"target\":\"address of the contract to make a delegatecall to\"}},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"},\"totalOperatorNetworkShares(bytes32)\":{\"params\":{\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"},\"returns\":{\"_0\":\"total shares of the operators for the subnetwork\"}},\"totalOperatorNetworkSharesAt(bytes32,uint48,bytes)\":{\"params\":{\"hint\":\"hint for checkpoint index\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\",\"timestamp\":\"time point to get the total operators' shares at\"},\"returns\":{\"_0\":\"total shares of the operators for the subnetwork at the given timestamp\"}}},\"version\":1},\"userdoc\":{\"events\":{\"OnSlash(bytes32,address,uint256,uint48)\":{\"notice\":\"Emitted when a slash happens.\"},\"SetHook(address)\":{\"notice\":\"Emitted when a hook is set.\"},\"SetMaxNetworkLimit(bytes32,uint256)\":{\"notice\":\"Emitted when a subnetwork's maximum limit is set.\"},\"SetNetworkLimit(bytes32,uint256)\":{\"notice\":\"Emitted when a subnetwork's limit is set.\"},\"SetOperatorNetworkShares(bytes32,address,uint256)\":{\"notice\":\"Emitted when an operator's shares inside a subnetwork are set.\"}},\"kind\":\"user\",\"methods\":{\"FACTORY()\":{\"notice\":\"Get the factory's address.\"},\"HOOK_GAS_LIMIT()\":{\"notice\":\"Get a gas limit for the hook.\"},\"HOOK_RESERVE()\":{\"notice\":\"Get a reserve gas between the gas limit check and the hook's execution.\"},\"HOOK_SET_ROLE()\":{\"notice\":\"Get a hook setter's role.\"},\"NETWORK_LIMIT_SET_ROLE()\":{\"notice\":\"Get a subnetwork limit setter's role.\"},\"NETWORK_REGISTRY()\":{\"notice\":\"Get the network registry's address.\"},\"OPERATOR_NETWORK_OPT_IN_SERVICE()\":{\"notice\":\"Get the operator-network opt-in service's address.\"},\"OPERATOR_NETWORK_SHARES_SET_ROLE()\":{\"notice\":\"Get an operator-subnetwork shares setter's role.\"},\"OPERATOR_VAULT_OPT_IN_SERVICE()\":{\"notice\":\"Get the operator-vault opt-in service's address.\"},\"TYPE()\":{\"notice\":\"Get the entity's type.\"},\"VAULT_FACTORY()\":{\"notice\":\"Get the vault factory's address.\"},\"VERSION()\":{\"notice\":\"Get a version of the delegator (different versions mean different interfaces).\"},\"hook()\":{\"notice\":\"Get the hook's address.\"},\"initialize(bytes)\":{\"notice\":\"Initialize this entity contract by using a given data.\"},\"maxNetworkLimit(bytes32)\":{\"notice\":\"Get a particular subnetwork's maximum limit (meaning the subnetwork is not ready to get more as a stake).\"},\"networkLimit(bytes32)\":{\"notice\":\"Get a subnetwork's limit (how much stake the vault curator is ready to give to the subnetwork).\"},\"networkLimitAt(bytes32,uint48,bytes)\":{\"notice\":\"Get a subnetwork's limit at a given timestamp using a hint (how much stake the vault curator is ready to give to the subnetwork).\"},\"onSlash(bytes32,address,uint256,uint48,bytes)\":{\"notice\":\"Called when a slash happens.\"},\"operatorNetworkShares(bytes32,address)\":{\"notice\":\"Get an operator's shares for a subnetwork (what percentage, which is equal to the shares divided by the total operators' shares, of the subnetwork's stake the vault curator is ready to give to the operator).\"},\"operatorNetworkSharesAt(bytes32,address,uint48,bytes)\":{\"notice\":\"Get an operator's shares for a subnetwork at a given timestamp using a hint (what percentage, which is equal to the shares divided by the total operators' shares, of the subnetwork's stake the vault curator is ready to give to the operator).\"},\"setHook(address)\":{\"notice\":\"Set a new hook.\"},\"setMaxNetworkLimit(uint96,uint256)\":{\"notice\":\"Set a maximum limit for a subnetwork (how much stake the subnetwork is ready to get). identifier identifier of the subnetwork\"},\"setNetworkLimit(bytes32,uint256)\":{\"notice\":\"Set a subnetwork's limit (how much stake the vault curator is ready to give to the subnetwork).\"},\"setOperatorNetworkShares(bytes32,address,uint256)\":{\"notice\":\"Set an operator's shares for a subnetwork (what percentage, which is equal to the shares divided by the total operators' shares, of the subnetwork's stake the vault curator is ready to give to the operator).\"},\"stake(bytes32,address)\":{\"notice\":\"Get a stake that a given subnetwork will be able to slash for a certain operator until the end of the next epoch (if no cross-slashing and no slashings by the subnetwork).\"},\"stakeAt(bytes32,address,uint48,bytes)\":{\"notice\":\"Get a stake that a given subnetwork could be able to slash for a certain operator at a given timestamp until the end of the consequent epoch using hints (if no cross-slashing and no slashings by the subnetwork).\"},\"staticDelegateCall(address,bytes)\":{\"notice\":\"Make a delegatecall from this contract to a given target contract with a particular data (always reverts with a return data).\"},\"totalOperatorNetworkShares(bytes32)\":{\"notice\":\"Get a sum of operators' shares for a subnetwork.\"},\"totalOperatorNetworkSharesAt(bytes32,uint48,bytes)\":{\"notice\":\"Get a sum of operators' shares for a subnetwork at a given timestamp using a hint.\"},\"vault()\":{\"notice\":\"Get the vault's address.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/contracts/hints/DelegatorHints.sol\":\"NetworkRestakeDelegatorHints\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol\":{\"keccak256\":\"0x6662ec4e5cefca03eeadd073e9469df8d2944bb2ee8ec8f7622c2c46aab5f225\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4d8544c6f8daa4d1bc215c6a72fe0acdb748664a105b0e5efc19295667521d45\",\"dweb:/ipfs/QmdGWqdnXT8S3RgCR6aV8XHZrsybieMQLLnug1NtpSjEXN\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0xc163fcf9bb10138631a9ba5564df1fa25db9adff73bd9ee868a8ae1858fe093a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9706d43a0124053d9880f6e31a59f31bc0a6a3dc1acd66ce0a16e1111658c5f6\",\"dweb:/ipfs/QmUFmfowzkRwGtDu36cXV9SPTBHJ3n7dG9xQiK5B28jTf2\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609\",\"dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9\",\"dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardUpgradeable.sol\":{\"keccak256\":\"0xb44e086e941292cdc7f440de51478493894ef0b1aeccb0c4047445919f667f74\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://942dad22fbdc1669f025540ba63aa3ccfad5f8458fc5d4525b31ebf272e7af45\",\"dweb:/ipfs/Qmdo4X2M82aM3AMoW2kf2jhYkSCyC4T1pHNd6obdsDFnAB\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol\":{\"keccak256\":\"0xdaba3f7c42c55b2896353f32bd27d4d5f8bae741b3b05d4c53f67abc4dc47ce8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1fa2e61141c602510bcd2cd936ed9561922ac8772a9b9c9a9db091a74e354a45\",\"dweb:/ipfs/QmcHQDDoEBwJmwUbzoVkytvJsBx3KVHYFFnDkvRGWh9Wmh\"]},\"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0xb6b36edd6a2999fd243ff226d6cbf84bd71af2432bbd0dfe19392996a1d9cb41\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1fd2f35495652e57e3f99bc6c510bc5f7dd398a176ea2e72d8ed730aebc6ca26\",\"dweb:/ipfs/QmTQV6X4gkikTib49cho5iDX3JvSQbdsoEChoDwrk3CbbH\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC1271.sol\":{\"keccak256\":\"0x85a45f3f10014a0f8be41157a32b6a5f905753ea64a4b64e29fc12b7deeecf39\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c3c74009ce36136b36c77c23935b8e4a7b4f253be2da2be4fb4a916b1ce43743\",\"dweb:/ipfs/QmcH36v3iN7SJJuF73AunLR2LtNxhVJ1wm63ph4dPZ4pcL\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC5267.sol\":{\"keccak256\":\"0x92aa1df62dc3d33f1656d63bede0923e0df0b706ad4137c8b10b0a8fe549fd92\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c5c0f29195ad64cbe556da8e257dac8f05f78c53f90323c0d2accf8e6922d33a\",\"dweb:/ipfs/QmQ61TED8uaCZwcbh8KkgRSsCav7x7HbcGHwHts3U4DmUP\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c\",\"dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0x6008dabfe393240d73d7dd7688033f72740d570aa422254d29a7dce8568f3aff\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f5196ec75139918c6c7bb4251b36395e668f1fa6d206beba7e7520e74913940d\",\"dweb:/ipfs/QmSyqjksXxmm2mCG6qRd1yuwLykypkSVBbnBnGqJRcuJMi\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x37bb49513c49c87c4642a891b13b63571bc87013dde806617aa1efb54605f386\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b3036b3a83b7c48f96641f2a9002b9f2dcb6a5958dd670894ada21ae8229b3d0\",\"dweb:/ipfs/QmUNfSBdoVtjhETaUJCYcaC7pTMgbhht926tJ2uXJbiVd3\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0xaf28a975a78550e45f65e559a3ad6a5ad43b9b8a37366999abd1b7084eb70721\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b7bd24e224f67f65bfadf85dc2929fa965456bb2415478bd0125471b5ce35245\",\"dweb:/ipfs/QmRaydGr8BTHs1kvaZfsNU69pKzUAGFrvABn1KiRSbE51y\"]},\"lib/openzeppelin-contracts/contracts/utils/ShortStrings.sol\":{\"keccak256\":\"0x18a7171df639a934592915a520ecb97c5bbc9675a1105607aac8a94e72bf62c6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7478e1f13da69a2867ccd883001d836b75620362e743f196376d63ed0c422a1c\",\"dweb:/ipfs/QmWywcQ9TNfwtoqAxbn25d8C5VrV12PrPS9UjtGe6pL2BA\"]},\"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0x32ba59b4b7299237c8ba56319110989d7978a039faf754793064e967e5894418\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1ae50c8b562427df610cc4540c9bf104acca7ef8e2dcae567ae7e52272281e9c\",\"dweb:/ipfs/QmTHiadFCSJUPpRjNegc5SahmeU8bAoY8i9Aq6tVscbcKR\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0x55f102ea785d8399c0e58d1108e2d289506dde18abc6db1b7f68c1f9f9bc5792\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e52e0a7765c943ef14e5bcf11e46e6139fa044be564881378349236bf2e3453\",\"dweb:/ipfs/QmZEeeXoFPW47amyP35gfzomF9DixqqTEPwzBakv6cZw6i\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0xeed0a08b0b091f528356cbc7245891a4c748682d4f6a18055e8e6ca77d12a6cf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba80ba06c8e6be852847e4c5f4492cef801feb6558ae09ed705ff2e04ea8b13c\",\"dweb:/ipfs/QmXRJDv3xHLVQCVXg1ZvR35QS9sij5y9NDWYzMfUfAdTHF\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/EIP712.sol\":{\"keccak256\":\"0x999f705a027ed6dc2d4e0df2cc4a509852c6bfd11de1c8161bf88832d0503fd0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0798def67258d9a3cc20b2b4da7ebf351a5cefe0abfdd665d2d81f8e32f89b21\",\"dweb:/ipfs/QmPEvJosnPfzHNjKvCv2D3891mA2Ww8eUwkqrxBjuYdHCt\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol\":{\"keccak256\":\"0xba333517a3add42cd35fe877656fc3dfcc9de53baa4f3aabbd6d12a92e4ea435\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2ceacff44c0fdc81e48e0e0b1db87a2076d3c1fb497341de077bf1da9f6b406c\",\"dweb:/ipfs/QmRUo1muMRAewxrKQ7TkXUtknyRoR57AyEkoPpiuZQ8FzX\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/SignatureChecker.sol\":{\"keccak256\":\"0x6b11eb41a228cca35d4b662b4df69fcd75192851365102690f57b2ac01e83fe6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ab006a2983ed350d2af21ddcdd835dcae3b8340086cc4d088460da5abd041f69\",\"dweb:/ipfs/QmbEacDhkJZiGrgzLjB4pNtE8Z1uudjDw1DvcDUTVQFsLG\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875\",\"dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0xe19a4d5f31d2861e7344e8e535e2feafb913d806d3e2b5fe7782741a2a7094fe\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4aed79c0fa6f0546ed02f2f683e8f77f0fd2ed7eb34d8bbf3d373c9a6d95b13c\",\"dweb:/ipfs/QmWqVz6UAVqmnWU5pqYPt1o6iDEZyPaBraAA3rKfTTSfYj\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x5f7e4076e175393767754387c962926577f1660dd9b810187b9002407656be72\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7d533a1c97cd43a57cd9c465f7ee8dd0e39ae93a8fb8ff8e5303a356b081cdcc\",\"dweb:/ipfs/QmVBEei6aTnvYNZp2CHYVNKyZS4q1KkjANfY39WVXZXVoT\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/Checkpoints.sol\":{\"keccak256\":\"0xbdc5e074d7dd6678f67e92b1a51a20226801a407b0e1af3da367c5d1ff4519ad\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a36cca6b22fff3db16fc789ff6c60eea71d4b156065d4d0c83a0bc5e91a77a8b\",\"dweb:/ipfs/QmYN3exd5AemxjBrN8XMB1p5LbbE16uC3sjbYjwi8AjcGR\"]},\"lib/openzeppelin-contracts/contracts/utils/types/Time.sol\":{\"keccak256\":\"0xc7755af115020049e4140f224f9ee88d7e1799ffb0646f37bf0df24bf6213f58\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7f09bf94d5274334ec021f61a04659db303f31e60460e14b709c9bf187740111\",\"dweb:/ipfs/QmNvgomZYUwFAt4cZbPWAiTeSZQreGehY9BK5xyVJsUttb\"]},\"src/contracts/common/Entity.sol\":{\"keccak256\":\"0x3d61a932995b8443381f3950542d388223a2c26dd5d29a3274dea3baa7388bd7\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://7cdf5f03ca72fd263fd32ff59c8d88ddca911ae83896a287d10772c1bbe9b138\",\"dweb:/ipfs/QmbP84r5BWT1Rn9AYTntWSf3xUMTTCohTZJFhbBhDXFoHa\"]},\"src/contracts/common/MigratableEntity.sol\":{\"keccak256\":\"0x2d736f4dacd5d7e7697503bc426c78b8250fe1694ca157965ec178da6807de58\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://f1237acf96b4b9f9b69156e068eddd726a6e15bd8e87a18dc999cd4ba4da069c\",\"dweb:/ipfs/QmS6M8fiFFSeuJ4ZKKq1z8W7w4ybeHQSy5TLASGoc1LVic\"]},\"src/contracts/common/StaticDelegateCallable.sol\":{\"keccak256\":\"0x350029aa8955eacaffffaeb58babc5c98e80ebc5c5db388ed17ee6465f4a9d90\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://eb392a8ee9050e0af606897df63e3404e3829e8b688b580663892f9664195764\",\"dweb:/ipfs/QmaXC8jqV8UrrAFkzXTEv2fJF56sy33HhLxAzaRZmUxuXD\"]},\"src/contracts/delegator/BaseDelegator.sol\":{\"keccak256\":\"0x7c54d491fdd4415b764a9c8defa068e56d4c0c8c9419be0053a1d377669290e8\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://9238bfbad0f6eeb0dc7727724de14380f1980b395902269703d5e2ef07e52e10\",\"dweb:/ipfs/QmPJn1V4HNXcEghYvogGuSTF24dSQUPosR5qtsXcmNqRm3\"]},\"src/contracts/delegator/FullRestakeDelegator.sol\":{\"keccak256\":\"0x0a81c4f8e72914563a9cb771e93acf889c71ea36b7bec040e4eb562b199d5af1\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://6fc66b6ba02da77046a0bbbd1dd407a62c08f52e04486c9cbd2cb1cca3da555f\",\"dweb:/ipfs/QmZQivK1ZnMxfRQQ5aLpV9co5u55wQVNev5Rg1hzAqxhkE\"]},\"src/contracts/delegator/NetworkRestakeDelegator.sol\":{\"keccak256\":\"0xd3a8e6522f9c6fdcc2da837c9023afd6bdff2bce45a35590320c475519e3636d\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://58b17a87f6554f08376f9ea7fedf486a4aa75801bf0ad8b23ff5a46959b6b7a3\",\"dweb:/ipfs/QmSTmNh67tYt8CmjVZb57r8N3qX5yeYdMApKPJm3qvQgQw\"]},\"src/contracts/delegator/OperatorNetworkSpecificDelegator.sol\":{\"keccak256\":\"0x031a10722b9ec49048f0952710401131290adb87e71caf294e864e7ac3b98a16\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://72428febc875134b2f29205e6f294634a1c22a7d5c78d6a9cb2f8196f107c9b5\",\"dweb:/ipfs/QmTPwXR6h5oytckmkLrHdKeEMdphJxceDhYUR4zvQeWAwY\"]},\"src/contracts/delegator/OperatorSpecificDelegator.sol\":{\"keccak256\":\"0x630ce62fa30b9f3349ab7a8cf8dbf041319febc6dd757be2f94d3d25944ed328\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://c2ac59d47ce57d2a6819ae9833e1a618a371eccff93eb5ab367b201b01f42bfa\",\"dweb:/ipfs/QmdBpGMBivpNPv2WbH8vnCUy5xkVeaxQvGgqi33vKCz1kA\"]},\"src/contracts/hints/DelegatorHints.sol\":{\"keccak256\":\"0x44aa0c396311a54afbc7c73e8dadeed41e3165a4fd13f712b27d63d50fc3376d\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://2f255214f3531fc707d88be0d56a7a0aed4180439316d099d760d9118aa83093\",\"dweb:/ipfs/QmZD1w5p1ukJSXumUAjvxwGmkPhn7vsr21Y2atLGEZR2oi\"]},\"src/contracts/hints/Hints.sol\":{\"keccak256\":\"0x8b565df1ae35993c097a9e642002782a8f451f6fd01809cad6bcd345bdf1b99c\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://99a19adb01e350a92f534095b3078229df1f2f83077992d75d58d8684be45971\",\"dweb:/ipfs/QmbmwcuswVbzvwHQFTtrJG86oV98GnfxqYTb8cV8u1acox\"]},\"src/contracts/hints/OptInServiceHints.sol\":{\"keccak256\":\"0x95d9407900d27b9f4a1233b772aeed809c07b2dc5b31cfc9fa77ca26514c49e5\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://a13a8877e312d7e6b8b85bde3668c5d84ff5ecc83f762cd573f2b7104c64eb42\",\"dweb:/ipfs/QmYV2J55acuGzCNnS3juABuUHY5U1xc8g8o9jwEyFFdeG5\"]},\"src/contracts/hints/VaultHints.sol\":{\"keccak256\":\"0xccb505b7159b769cc114d67b87c2de6b106557f667fc8f3780114baad5c3c442\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://6d0c80a908fc16e96a8b5605a0bd53f9e89ad0ef0a738fbbae80ba4d3160749b\",\"dweb:/ipfs/QmXo5UtWoR8YmunqcbBU8rQMm1nvmvjNPoXcVrDhh4pEwR\"]},\"src/contracts/libraries/Checkpoints.sol\":{\"keccak256\":\"0xba90097c8bfe0a975499428b5f8ac5569483c7d92ccc28c12d70de416aae040c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://12f5d93ca94cd06d3147db68993165a58e17903ed53682560de61f3085ad4609\",\"dweb:/ipfs/QmePiuAqvXprMLmFZkGZeGjvGPAvsEDHfCDv7BoQhXu9xE\"]},\"src/contracts/libraries/ERC4626Math.sol\":{\"keccak256\":\"0x8441160513c1cbeb1c3b9ee077bcc7e7ce20006b52a77c8dd39ff0ef89699939\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://943f8cc3e26ddf649f465f40c909819f5c864717c4baa339e9e403b9374a4653\",\"dweb:/ipfs/QmXPxi1sUDsrGprZdUgCzoPEosaZMv9ZhygWQ1vAi1phAB\"]},\"src/contracts/libraries/Subnetwork.sol\":{\"keccak256\":\"0xf5ef5506fd66082b3c2e7f3df37529f5a8efad32ac62e7c8914bd63219190bfe\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba031a54ee0d0e9a270c2b9e18437f5668cfeb659cfd5fe0677459d7fcac2a56\",\"dweb:/ipfs/QmReP3H7qQ78tAfgLnJKsNEQNCQfF1X1Get38Ffd4kzq32\"]},\"src/contracts/service/OptInService.sol\":{\"keccak256\":\"0x4e0932077f2686b7990e10d59deb2535334c0d09e52ef6e57c6ab09eca21c4b1\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://7c00d311032ed4a1743aca7475f3c86ce15cdfc2218108efc3731c03d34a5278\",\"dweb:/ipfs/QmUGGfVwVhaHr5kS4177yKKYiLYzi5qZpkEmvYxBZqazxf\"]},\"src/contracts/vault/Vault.sol\":{\"keccak256\":\"0x2ceff6ed3298c4cad144c99fcc79b51cb9397d6ebef00285b915848b476f8c2e\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://11f2fb3581854f3ab6e82e8d4935d9eb510c903a13c3f022346c2956a58f5307\",\"dweb:/ipfs/QmdUnoXoyYoG9SGWyQZCFyLDRUUX3eXyXetkRvw6jxqqBz\"]},\"src/contracts/vault/VaultStorage.sol\":{\"keccak256\":\"0x57db25b127d77ea3472de53e3a4af3354399655b9268638b99ca5925fa364a56\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://aa763d9a6ec508ae3abfb8228b72b9fd9525279e5135d4962e79ff059feb1173\",\"dweb:/ipfs/QmcbDR6E9wyEpu6V2FkEC4hnWy47zXA9LSKJde6zSGd33Q\"]},\"src/interfaces/common/IEntity.sol\":{\"keccak256\":\"0x8ef4b63d6da63489778ccd5f8d13ebdd527dd4b62730b2c616df5af7474d2d21\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a8d69576a9219d85c50816a18ad53a4d53cfcb27ed38b8cccc808dc2734b71b\",\"dweb:/ipfs/QmYVN3P4Q4REvBWJ97TbAcaxm3uyB2anV6NSGa6ZtSwcEv\"]},\"src/interfaces/common/IMigratableEntity.sol\":{\"keccak256\":\"0x8f5f2809f3afbe8ebfbb365dd7b57b4dd3b6f9943a6187eaf648d45895b8e3c4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ffe640537d539e7a4fde70d30d3e4c57f4ba9c2c25c450cea713aae38e8fd5c\",\"dweb:/ipfs/QmSUTGzvdcn1R1KB7tLThMRtESsfPbeXDhhhKWGtntzBds\"]},\"src/interfaces/common/IRegistry.sol\":{\"keccak256\":\"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014\",\"dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK\"]},\"src/interfaces/common/IStaticDelegateCallable.sol\":{\"keccak256\":\"0xa335d4e81b9071b7de66ef92b43ff20671d86516eb1be46fef29a3483cd3f5d5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d464b9db863c14c05547d2b23352f2e9b7b784799cf09f6bbc4906a2a74e3516\",\"dweb:/ipfs/QmUVWzFvJz7eEbDQKiFTTzwi7TEbjcs3VmwdM4kuptAKvi\"]},\"src/interfaces/delegator/IBaseDelegator.sol\":{\"keccak256\":\"0x96bb312f032e17accce3f8f80936d99468029d6b37c9ca74acdb4b026a0148ee\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2a66dcb5b7d1a6ef6a363431ea98ebd78bc4fdd3d7a134d9b542dc66e7d025c2\",\"dweb:/ipfs/QmRhTPLd2ZAyRHmJUFUcWKs9b3if49QY17LYZuRqWmghw8\"]},\"src/interfaces/delegator/IDelegatorHook.sol\":{\"keccak256\":\"0xc51aa8d7d1f6c8043ee819b7aeb86da0e993912e1442098df897e299f01f9f46\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://adddf5cb2ba282aeb576b26efb28640f865a1721cc9b6eee8b3ee0457a2c9780\",\"dweb:/ipfs/QmNYgAmnLRwWZbhTuQhZs9rx4zcme1df5mEepkrniorSoW\"]},\"src/interfaces/delegator/IFullRestakeDelegator.sol\":{\"keccak256\":\"0xa3c8cb2e45d4d8ce90e95263bea40c01dc400f05ad65bc29597d878606be5e7d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://782cf5e201aa4cca037ebafd3807a68ff1cc721d5b8416a35244db0d0607369e\",\"dweb:/ipfs/QmQkJks6x7CKndeTPa9LxgTNygD5uEi7obhADhpq1Lsr9A\"]},\"src/interfaces/delegator/INetworkRestakeDelegator.sol\":{\"keccak256\":\"0xe7030fe30389a147fd710e3436ec346b4842695fd3e65a81b95375c9f1d633fc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://739c7e66d301778054f5c90bee45ec9438f68afba8a03eaaac52064c73b115ad\",\"dweb:/ipfs/QmfZ2ytKcTykAc76nxhg8ikUXV8NdBpetqb8W4YWPcox1Z\"]},\"src/interfaces/delegator/IOperatorNetworkSpecificDelegator.sol\":{\"keccak256\":\"0x74b95e64d29769202d45dd277bb830f623ff3d41ce77b80ce3ee4e318a5c71ec\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e512b903aae5c1b8a028c6e3f4f6223b5cb5d704503cfa6bd37b5346868f5c20\",\"dweb:/ipfs/QmZim9YExsPWtyxyeui993HTKAEmrg8MUcSkZ77Gp2JcuZ\"]},\"src/interfaces/delegator/IOperatorSpecificDelegator.sol\":{\"keccak256\":\"0x72075cab585dc17240cc3e32bc99b92f0d5627ddd988fed680e3e1a52d5a01e4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7448bc90699409ae61d85216b5efc2143a37f0f73354be2aea993bc54afca441\",\"dweb:/ipfs/QmXE4gAxM8pHosZK8mcTcj17puBx484meDCcmrDePskGHZ\"]},\"src/interfaces/service/IOptInService.sol\":{\"keccak256\":\"0x76fb5460a6d87a5705433d4fbeff7253cd75b8bbd0c888b2088f16e86ace146a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://990322019b3d11465f7024bae77ccbf7e2fe5d6fa3c754584778f37d04fa1337\",\"dweb:/ipfs/QmaSNHzcqxTkUCG9a4nqVfLECHLdjdrwAnDi3yDC7tDL24\"]},\"src/interfaces/slasher/IBaseSlasher.sol\":{\"keccak256\":\"0x7c82528b445659c313ab77335c407b0b6efe5e79027187bb287f7bc74202b404\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0274c90aa5df1aa6bb470a6aab53992fb14fd7e5472c9430416505b29647d9cf\",\"dweb:/ipfs/QmckbmJLDetPemVzCnnGcKYWAZV2BRFXGDsjiaec8jkHxx\"]},\"src/interfaces/vault/IVault.sol\":{\"keccak256\":\"0xffee01d383cd4e1a5530c614bf4360c1ef070c288abec9da1eb531b51bc07235\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://04f0046cac285d8ec44ebbb1f79dc94fab4495767190cad8364fbc1fafaadfb9\",\"dweb:/ipfs/QmUawAunwzXfCyShWfhKeThAgKtqe51hmrxvrXvM772M2R\"]},\"src/interfaces/vault/IVaultStorage.sol\":{\"keccak256\":\"0x592626f13754194f83047135de19229c49390bd59e34659b1bb38be71d973a22\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://06a6a9dfddd05e580b32bebe2cff4f63ba26a653180676d58225dd30d9c89d3e\",\"dweb:/ipfs/QmdgzBeY6Sxo8mGtyBxtv1tM1c2kU6J6zjeRd7vuXm4DU6\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.25+commit.b61c2a91"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"baseDelegatorHints","type":"address"},{"internalType":"address","name":"vaultHints","type":"address"},{"internalType":"address","name":"optInServiceHints","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"AccessControlBadConfirmation"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bytes32","name":"neededRole","type":"bytes32"}],"type":"error","name":"AccessControlUnauthorizedAccount"},{"inputs":[],"type":"error","name":"AlreadySet"},{"inputs":[],"type":"error","name":"CheckpointUnorderedInsertion"},{"inputs":[],"type":"error","name":"DuplicateRoleHolder"},{"inputs":[],"type":"error","name":"ExceedsMaxNetworkLimit"},{"inputs":[],"type":"error","name":"ExternalCall"},{"inputs":[],"type":"error","name":"InsufficientHookGas"},{"inputs":[],"type":"error","name":"InvalidInitialization"},{"inputs":[],"type":"error","name":"MathOverflowedMulDiv"},{"inputs":[],"type":"error","name":"MissingRoleHolders"},{"inputs":[],"type":"error","name":"NotInitialized"},{"inputs":[],"type":"error","name":"NotInitializing"},{"inputs":[],"type":"error","name":"NotNetwork"},{"inputs":[],"type":"error","name":"NotSlasher"},{"inputs":[],"type":"error","name":"NotVault"},{"inputs":[],"type":"error","name":"ReentrancyGuardReentrantCall"},{"inputs":[{"internalType":"uint8","name":"bits","type":"uint8"},{"internalType":"uint256","name":"value","type":"uint256"}],"type":"error","name":"SafeCastOverflowedUintDowncast"},{"inputs":[],"type":"error","name":"ZeroAddressRoleHolder"},{"inputs":[{"internalType":"uint64","name":"version","type":"uint64","indexed":false}],"type":"event","name":"Initialized","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32","indexed":true},{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false},{"internalType":"uint48","name":"captureTimestamp","type":"uint48","indexed":false}],"type":"event","name":"OnSlash","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"bytes32","name":"previousAdminRole","type":"bytes32","indexed":true},{"internalType":"bytes32","name":"newAdminRole","type":"bytes32","indexed":true}],"type":"event","name":"RoleAdminChanged","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"address","name":"sender","type":"address","indexed":true}],"type":"event","name":"RoleGranted","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"address","name":"sender","type":"address","indexed":true}],"type":"event","name":"RoleRevoked","anonymous":false},{"inputs":[{"internalType":"address","name":"hook","type":"address","indexed":true}],"type":"event","name":"SetHook","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"SetMaxNetworkLimit","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"SetNetworkLimit","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32","indexed":true},{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"uint256","name":"shares","type":"uint256","indexed":false}],"type":"event","name":"SetOperatorNetworkShares","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"BASE_DELEGATOR_HINTS","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"DEFAULT_ADMIN_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"FACTORY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"HOOK_GAS_LIMIT","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"HOOK_RESERVE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"HOOK_SET_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"NETWORK_LIMIT_SET_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"NETWORK_REGISTRY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"OPERATOR_NETWORK_OPT_IN_SERVICE","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"OPERATOR_NETWORK_SHARES_SET_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"OPERATOR_VAULT_OPT_IN_SERVICE","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"OPT_IN_SERVICE_HINTS","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"TYPE","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"VAULT_FACTORY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"VAULT_HINTS","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"VERSION","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getRoleAdmin","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"grantRole"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"hasRole","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"hook","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"}],"stateMutability":"view","type":"function","name":"maxNetworkLimit","outputs":[{"internalType":"uint256","name":"value","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"}],"stateMutability":"view","type":"function","name":"networkLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"uint48","name":"timestamp","type":"uint48"},{"internalType":"bytes","name":"hint","type":"bytes"}],"stateMutability":"view","type":"function","name":"networkLimitAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"delegator","type":"address"},{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"uint48","name":"timestamp","type":"uint48"}],"stateMutability":"view","type":"function","name":"networkLimitHint","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"uint48","name":"timestamp","type":"uint48"}],"stateMutability":"view","type":"function","name":"networkLimitHintInternal","outputs":[{"internalType":"bool","name":"exists","type":"bool"},{"internalType":"uint32","name":"hint","type":"uint32"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint48","name":"captureTimestamp","type":"uint48"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"onSlash"},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"operatorNetworkShares","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint48","name":"timestamp","type":"uint48"},{"internalType":"bytes","name":"hint","type":"bytes"}],"stateMutability":"view","type":"function","name":"operatorNetworkSharesAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"delegator","type":"address"},{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint48","name":"timestamp","type":"uint48"}],"stateMutability":"view","type":"function","name":"operatorNetworkSharesHint","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint48","name":"timestamp","type":"uint48"}],"stateMutability":"view","type":"function","name":"operatorNetworkSharesHintInternal","outputs":[{"internalType":"bool","name":"exists","type":"bool"},{"internalType":"uint32","name":"hint","type":"uint32"}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"callerConfirmation","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"renounceRole"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"revokeRole"},{"inputs":[{"internalType":"address","name":"hook_","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setHook"},{"inputs":[{"internalType":"uint96","name":"identifier","type":"uint96"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setMaxNetworkLimit"},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setNetworkLimit"},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint256","name":"shares","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setOperatorNetworkShares"},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"stake","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint48","name":"timestamp","type":"uint48"},{"internalType":"bytes","name":"hints","type":"bytes"}],"stateMutability":"view","type":"function","name":"stakeAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"delegator","type":"address"},{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint48","name":"timestamp","type":"uint48"}],"stateMutability":"view","type":"function","name":"stakeHints","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"staticDelegateCall"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"}],"stateMutability":"view","type":"function","name":"totalOperatorNetworkShares","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"uint48","name":"timestamp","type":"uint48"},{"internalType":"bytes","name":"hint","type":"bytes"}],"stateMutability":"view","type":"function","name":"totalOperatorNetworkSharesAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"delegator","type":"address"},{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"uint48","name":"timestamp","type":"uint48"}],"stateMutability":"view","type":"function","name":"totalOperatorNetworkSharesHint","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"uint48","name":"timestamp","type":"uint48"}],"stateMutability":"view","type":"function","name":"totalOperatorNetworkSharesHintInternal","outputs":[{"internalType":"bool","name":"exists","type":"bool"},{"internalType":"uint32","name":"hint","type":"uint32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"vault","outputs":[{"internalType":"address","name":"","type":"address"}]}],"devdoc":{"kind":"dev","methods":{"VERSION()":{"details":"Must return 1 for this one.","returns":{"_0":"version of the delegator"}},"getRoleAdmin(bytes32)":{"details":"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}."},"grantRole(bytes32,address)":{"details":"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event."},"hasRole(bytes32,address)":{"details":"Returns `true` if `account` has been granted `role`."},"initialize(bytes)":{"params":{"data":"some data to use"}},"networkLimit(bytes32)":{"params":{"subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"},"returns":{"_0":"limit of the subnetwork"}},"networkLimitAt(bytes32,uint48,bytes)":{"params":{"hint":"hint for checkpoint index","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)","timestamp":"time point to get the subnetwork limit at"},"returns":{"_0":"limit of the subnetwork at the given timestamp"}},"onSlash(bytes32,address,uint256,uint48,bytes)":{"details":"Only the vault's slasher can call this function.","params":{"amount":"amount of the collateral slashed","captureTimestamp":"time point when the stake was captured","data":"some additional data","operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"}},"operatorNetworkShares(bytes32,address)":{"params":{"operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"},"returns":{"_0":"shares of the operator for the subnetwork"}},"operatorNetworkSharesAt(bytes32,address,uint48,bytes)":{"params":{"hint":"hint for checkpoint index","operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)","timestamp":"time point to get the operator's shares at"},"returns":{"_0":"shares of the operator for the subnetwork at the given timestamp"}},"renounceRole(bytes32,address)":{"details":"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `callerConfirmation`. May emit a {RoleRevoked} event."},"revokeRole(bytes32,address)":{"details":"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event."},"setHook(address)":{"details":"Only a HOOK_SET_ROLE holder can call this function. The hook can have arbitrary logic under certain functions, however, it doesn't affect the stake guarantees.","params":{"hook":"address of the hook"}},"setMaxNetworkLimit(uint96,uint256)":{"details":"Only a network can call this function.","params":{"amount":"new maximum subnetwork's limit"}},"setNetworkLimit(bytes32,uint256)":{"details":"Only a NETWORK_LIMIT_SET_ROLE holder can call this function.","params":{"amount":"new limit of the subnetwork","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"}},"setOperatorNetworkShares(bytes32,address,uint256)":{"details":"Only an OPERATOR_NETWORK_SHARES_SET_ROLE holder can call this function.","params":{"operator":"address of the operator","shares":"new shares of the operator for the subnetwork","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"}},"stake(bytes32,address)":{"details":"Warning: this function is not safe to use for stake capturing, as it can change by the end of the block.","params":{"operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"},"returns":{"_0":"slashable stake until the end of the next epoch"}},"stakeAt(bytes32,address,uint48,bytes)":{"details":"Warning: it is not safe to use timestamp >= current one for the stake capturing, as it can change later.","params":{"hints":"hints for the checkpoints' indexes","operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)","timestamp":"time point to capture the stake at"},"returns":{"_0":"slashable stake at the given timestamp until the end of the consequent epoch"}},"staticDelegateCall(address,bytes)":{"details":"It allows to use this contract's storage on-chain.","params":{"data":"data to make a delegatecall with","target":"address of the contract to make a delegatecall to"}},"supportsInterface(bytes4)":{"details":"See {IERC165-supportsInterface}."},"totalOperatorNetworkShares(bytes32)":{"params":{"subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"},"returns":{"_0":"total shares of the operators for the subnetwork"}},"totalOperatorNetworkSharesAt(bytes32,uint48,bytes)":{"params":{"hint":"hint for checkpoint index","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)","timestamp":"time point to get the total operators' shares at"},"returns":{"_0":"total shares of the operators for the subnetwork at the given timestamp"}}},"version":1},"userdoc":{"kind":"user","methods":{"FACTORY()":{"notice":"Get the factory's address."},"HOOK_GAS_LIMIT()":{"notice":"Get a gas limit for the hook."},"HOOK_RESERVE()":{"notice":"Get a reserve gas between the gas limit check and the hook's execution."},"HOOK_SET_ROLE()":{"notice":"Get a hook setter's role."},"NETWORK_LIMIT_SET_ROLE()":{"notice":"Get a subnetwork limit setter's role."},"NETWORK_REGISTRY()":{"notice":"Get the network registry's address."},"OPERATOR_NETWORK_OPT_IN_SERVICE()":{"notice":"Get the operator-network opt-in service's address."},"OPERATOR_NETWORK_SHARES_SET_ROLE()":{"notice":"Get an operator-subnetwork shares setter's role."},"OPERATOR_VAULT_OPT_IN_SERVICE()":{"notice":"Get the operator-vault opt-in service's address."},"TYPE()":{"notice":"Get the entity's type."},"VAULT_FACTORY()":{"notice":"Get the vault factory's address."},"VERSION()":{"notice":"Get a version of the delegator (different versions mean different interfaces)."},"hook()":{"notice":"Get the hook's address."},"initialize(bytes)":{"notice":"Initialize this entity contract by using a given data."},"maxNetworkLimit(bytes32)":{"notice":"Get a particular subnetwork's maximum limit (meaning the subnetwork is not ready to get more as a stake)."},"networkLimit(bytes32)":{"notice":"Get a subnetwork's limit (how much stake the vault curator is ready to give to the subnetwork)."},"networkLimitAt(bytes32,uint48,bytes)":{"notice":"Get a subnetwork's limit at a given timestamp using a hint (how much stake the vault curator is ready to give to the subnetwork)."},"onSlash(bytes32,address,uint256,uint48,bytes)":{"notice":"Called when a slash happens."},"operatorNetworkShares(bytes32,address)":{"notice":"Get an operator's shares for a subnetwork (what percentage, which is equal to the shares divided by the total operators' shares, of the subnetwork's stake the vault curator is ready to give to the operator)."},"operatorNetworkSharesAt(bytes32,address,uint48,bytes)":{"notice":"Get an operator's shares for a subnetwork at a given timestamp using a hint (what percentage, which is equal to the shares divided by the total operators' shares, of the subnetwork's stake the vault curator is ready to give to the operator)."},"setHook(address)":{"notice":"Set a new hook."},"setMaxNetworkLimit(uint96,uint256)":{"notice":"Set a maximum limit for a subnetwork (how much stake the subnetwork is ready to get). identifier identifier of the subnetwork"},"setNetworkLimit(bytes32,uint256)":{"notice":"Set a subnetwork's limit (how much stake the vault curator is ready to give to the subnetwork)."},"setOperatorNetworkShares(bytes32,address,uint256)":{"notice":"Set an operator's shares for a subnetwork (what percentage, which is equal to the shares divided by the total operators' shares, of the subnetwork's stake the vault curator is ready to give to the operator)."},"stake(bytes32,address)":{"notice":"Get a stake that a given subnetwork will be able to slash for a certain operator until the end of the next epoch (if no cross-slashing and no slashings by the subnetwork)."},"stakeAt(bytes32,address,uint48,bytes)":{"notice":"Get a stake that a given subnetwork could be able to slash for a certain operator at a given timestamp until the end of the consequent epoch using hints (if no cross-slashing and no slashings by the subnetwork)."},"staticDelegateCall(address,bytes)":{"notice":"Make a delegatecall from this contract to a given target contract with a particular data (always reverts with a return data)."},"totalOperatorNetworkShares(bytes32)":{"notice":"Get a sum of operators' shares for a subnetwork."},"totalOperatorNetworkSharesAt(bytes32,uint48,bytes)":{"notice":"Get a sum of operators' shares for a subnetwork at a given timestamp using a hint."},"vault()":{"notice":"Get the vault's address."}},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/contracts/hints/DelegatorHints.sol":"NetworkRestakeDelegatorHints"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol":{"keccak256":"0x6662ec4e5cefca03eeadd073e9469df8d2944bb2ee8ec8f7622c2c46aab5f225","urls":["bzz-raw://4d8544c6f8daa4d1bc215c6a72fe0acdb748664a105b0e5efc19295667521d45","dweb:/ipfs/QmdGWqdnXT8S3RgCR6aV8XHZrsybieMQLLnug1NtpSjEXN"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol":{"keccak256":"0xc163fcf9bb10138631a9ba5564df1fa25db9adff73bd9ee868a8ae1858fe093a","urls":["bzz-raw://9706d43a0124053d9880f6e31a59f31bc0a6a3dc1acd66ce0a16e1111658c5f6","dweb:/ipfs/QmUFmfowzkRwGtDu36cXV9SPTBHJ3n7dG9xQiK5B28jTf2"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b","urls":["bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609","dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol":{"keccak256":"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397","urls":["bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9","dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardUpgradeable.sol":{"keccak256":"0xb44e086e941292cdc7f440de51478493894ef0b1aeccb0c4047445919f667f74","urls":["bzz-raw://942dad22fbdc1669f025540ba63aa3ccfad5f8458fc5d4525b31ebf272e7af45","dweb:/ipfs/Qmdo4X2M82aM3AMoW2kf2jhYkSCyC4T1pHNd6obdsDFnAB"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol":{"keccak256":"0xdaba3f7c42c55b2896353f32bd27d4d5f8bae741b3b05d4c53f67abc4dc47ce8","urls":["bzz-raw://1fa2e61141c602510bcd2cd936ed9561922ac8772a9b9c9a9db091a74e354a45","dweb:/ipfs/QmcHQDDoEBwJmwUbzoVkytvJsBx3KVHYFFnDkvRGWh9Wmh"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol":{"keccak256":"0xb6b36edd6a2999fd243ff226d6cbf84bd71af2432bbd0dfe19392996a1d9cb41","urls":["bzz-raw://1fd2f35495652e57e3f99bc6c510bc5f7dd398a176ea2e72d8ed730aebc6ca26","dweb:/ipfs/QmTQV6X4gkikTib49cho5iDX3JvSQbdsoEChoDwrk3CbbH"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC1271.sol":{"keccak256":"0x85a45f3f10014a0f8be41157a32b6a5f905753ea64a4b64e29fc12b7deeecf39","urls":["bzz-raw://c3c74009ce36136b36c77c23935b8e4a7b4f253be2da2be4fb4a916b1ce43743","dweb:/ipfs/QmcH36v3iN7SJJuF73AunLR2LtNxhVJ1wm63ph4dPZ4pcL"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC5267.sol":{"keccak256":"0x92aa1df62dc3d33f1656d63bede0923e0df0b706ad4137c8b10b0a8fe549fd92","urls":["bzz-raw://c5c0f29195ad64cbe556da8e257dac8f05f78c53f90323c0d2accf8e6922d33a","dweb:/ipfs/QmQ61TED8uaCZwcbh8KkgRSsCav7x7HbcGHwHts3U4DmUP"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70","urls":["bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c","dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol":{"keccak256":"0x6008dabfe393240d73d7dd7688033f72740d570aa422254d29a7dce8568f3aff","urls":["bzz-raw://f5196ec75139918c6c7bb4251b36395e668f1fa6d206beba7e7520e74913940d","dweb:/ipfs/QmSyqjksXxmm2mCG6qRd1yuwLykypkSVBbnBnGqJRcuJMi"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0x37bb49513c49c87c4642a891b13b63571bc87013dde806617aa1efb54605f386","urls":["bzz-raw://b3036b3a83b7c48f96641f2a9002b9f2dcb6a5958dd670894ada21ae8229b3d0","dweb:/ipfs/QmUNfSBdoVtjhETaUJCYcaC7pTMgbhht926tJ2uXJbiVd3"],"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/ShortStrings.sol":{"keccak256":"0x18a7171df639a934592915a520ecb97c5bbc9675a1105607aac8a94e72bf62c6","urls":["bzz-raw://7478e1f13da69a2867ccd883001d836b75620362e743f196376d63ed0c422a1c","dweb:/ipfs/QmWywcQ9TNfwtoqAxbn25d8C5VrV12PrPS9UjtGe6pL2BA"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol":{"keccak256":"0x32ba59b4b7299237c8ba56319110989d7978a039faf754793064e967e5894418","urls":["bzz-raw://1ae50c8b562427df610cc4540c9bf104acca7ef8e2dcae567ae7e52272281e9c","dweb:/ipfs/QmTHiadFCSJUPpRjNegc5SahmeU8bAoY8i9Aq6tVscbcKR"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0x55f102ea785d8399c0e58d1108e2d289506dde18abc6db1b7f68c1f9f9bc5792","urls":["bzz-raw://6e52e0a7765c943ef14e5bcf11e46e6139fa044be564881378349236bf2e3453","dweb:/ipfs/QmZEeeXoFPW47amyP35gfzomF9DixqqTEPwzBakv6cZw6i"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol":{"keccak256":"0xeed0a08b0b091f528356cbc7245891a4c748682d4f6a18055e8e6ca77d12a6cf","urls":["bzz-raw://ba80ba06c8e6be852847e4c5f4492cef801feb6558ae09ed705ff2e04ea8b13c","dweb:/ipfs/QmXRJDv3xHLVQCVXg1ZvR35QS9sij5y9NDWYzMfUfAdTHF"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/EIP712.sol":{"keccak256":"0x999f705a027ed6dc2d4e0df2cc4a509852c6bfd11de1c8161bf88832d0503fd0","urls":["bzz-raw://0798def67258d9a3cc20b2b4da7ebf351a5cefe0abfdd665d2d81f8e32f89b21","dweb:/ipfs/QmPEvJosnPfzHNjKvCv2D3891mA2Ww8eUwkqrxBjuYdHCt"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol":{"keccak256":"0xba333517a3add42cd35fe877656fc3dfcc9de53baa4f3aabbd6d12a92e4ea435","urls":["bzz-raw://2ceacff44c0fdc81e48e0e0b1db87a2076d3c1fb497341de077bf1da9f6b406c","dweb:/ipfs/QmRUo1muMRAewxrKQ7TkXUtknyRoR57AyEkoPpiuZQ8FzX"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/SignatureChecker.sol":{"keccak256":"0x6b11eb41a228cca35d4b662b4df69fcd75192851365102690f57b2ac01e83fe6","urls":["bzz-raw://ab006a2983ed350d2af21ddcdd835dcae3b8340086cc4d088460da5abd041f69","dweb:/ipfs/QmbEacDhkJZiGrgzLjB4pNtE8Z1uudjDw1DvcDUTVQFsLG"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b","urls":["bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df","dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d","urls":["bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875","dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol":{"keccak256":"0xe19a4d5f31d2861e7344e8e535e2feafb913d806d3e2b5fe7782741a2a7094fe","urls":["bzz-raw://4aed79c0fa6f0546ed02f2f683e8f77f0fd2ed7eb34d8bbf3d373c9a6d95b13c","dweb:/ipfs/QmWqVz6UAVqmnWU5pqYPt1o6iDEZyPaBraAA3rKfTTSfYj"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0x5f7e4076e175393767754387c962926577f1660dd9b810187b9002407656be72","urls":["bzz-raw://7d533a1c97cd43a57cd9c465f7ee8dd0e39ae93a8fb8ff8e5303a356b081cdcc","dweb:/ipfs/QmVBEei6aTnvYNZp2CHYVNKyZS4q1KkjANfY39WVXZXVoT"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/Checkpoints.sol":{"keccak256":"0xbdc5e074d7dd6678f67e92b1a51a20226801a407b0e1af3da367c5d1ff4519ad","urls":["bzz-raw://a36cca6b22fff3db16fc789ff6c60eea71d4b156065d4d0c83a0bc5e91a77a8b","dweb:/ipfs/QmYN3exd5AemxjBrN8XMB1p5LbbE16uC3sjbYjwi8AjcGR"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/types/Time.sol":{"keccak256":"0xc7755af115020049e4140f224f9ee88d7e1799ffb0646f37bf0df24bf6213f58","urls":["bzz-raw://7f09bf94d5274334ec021f61a04659db303f31e60460e14b709c9bf187740111","dweb:/ipfs/QmNvgomZYUwFAt4cZbPWAiTeSZQreGehY9BK5xyVJsUttb"],"license":"MIT"},"src/contracts/common/Entity.sol":{"keccak256":"0x3d61a932995b8443381f3950542d388223a2c26dd5d29a3274dea3baa7388bd7","urls":["bzz-raw://7cdf5f03ca72fd263fd32ff59c8d88ddca911ae83896a287d10772c1bbe9b138","dweb:/ipfs/QmbP84r5BWT1Rn9AYTntWSf3xUMTTCohTZJFhbBhDXFoHa"],"license":"BUSL-1.1"},"src/contracts/common/MigratableEntity.sol":{"keccak256":"0x2d736f4dacd5d7e7697503bc426c78b8250fe1694ca157965ec178da6807de58","urls":["bzz-raw://f1237acf96b4b9f9b69156e068eddd726a6e15bd8e87a18dc999cd4ba4da069c","dweb:/ipfs/QmS6M8fiFFSeuJ4ZKKq1z8W7w4ybeHQSy5TLASGoc1LVic"],"license":"BUSL-1.1"},"src/contracts/common/StaticDelegateCallable.sol":{"keccak256":"0x350029aa8955eacaffffaeb58babc5c98e80ebc5c5db388ed17ee6465f4a9d90","urls":["bzz-raw://eb392a8ee9050e0af606897df63e3404e3829e8b688b580663892f9664195764","dweb:/ipfs/QmaXC8jqV8UrrAFkzXTEv2fJF56sy33HhLxAzaRZmUxuXD"],"license":"BUSL-1.1"},"src/contracts/delegator/BaseDelegator.sol":{"keccak256":"0x7c54d491fdd4415b764a9c8defa068e56d4c0c8c9419be0053a1d377669290e8","urls":["bzz-raw://9238bfbad0f6eeb0dc7727724de14380f1980b395902269703d5e2ef07e52e10","dweb:/ipfs/QmPJn1V4HNXcEghYvogGuSTF24dSQUPosR5qtsXcmNqRm3"],"license":"BUSL-1.1"},"src/contracts/delegator/FullRestakeDelegator.sol":{"keccak256":"0x0a81c4f8e72914563a9cb771e93acf889c71ea36b7bec040e4eb562b199d5af1","urls":["bzz-raw://6fc66b6ba02da77046a0bbbd1dd407a62c08f52e04486c9cbd2cb1cca3da555f","dweb:/ipfs/QmZQivK1ZnMxfRQQ5aLpV9co5u55wQVNev5Rg1hzAqxhkE"],"license":"BUSL-1.1"},"src/contracts/delegator/NetworkRestakeDelegator.sol":{"keccak256":"0xd3a8e6522f9c6fdcc2da837c9023afd6bdff2bce45a35590320c475519e3636d","urls":["bzz-raw://58b17a87f6554f08376f9ea7fedf486a4aa75801bf0ad8b23ff5a46959b6b7a3","dweb:/ipfs/QmSTmNh67tYt8CmjVZb57r8N3qX5yeYdMApKPJm3qvQgQw"],"license":"BUSL-1.1"},"src/contracts/delegator/OperatorNetworkSpecificDelegator.sol":{"keccak256":"0x031a10722b9ec49048f0952710401131290adb87e71caf294e864e7ac3b98a16","urls":["bzz-raw://72428febc875134b2f29205e6f294634a1c22a7d5c78d6a9cb2f8196f107c9b5","dweb:/ipfs/QmTPwXR6h5oytckmkLrHdKeEMdphJxceDhYUR4zvQeWAwY"],"license":"BUSL-1.1"},"src/contracts/delegator/OperatorSpecificDelegator.sol":{"keccak256":"0x630ce62fa30b9f3349ab7a8cf8dbf041319febc6dd757be2f94d3d25944ed328","urls":["bzz-raw://c2ac59d47ce57d2a6819ae9833e1a618a371eccff93eb5ab367b201b01f42bfa","dweb:/ipfs/QmdBpGMBivpNPv2WbH8vnCUy5xkVeaxQvGgqi33vKCz1kA"],"license":"BUSL-1.1"},"src/contracts/hints/DelegatorHints.sol":{"keccak256":"0x44aa0c396311a54afbc7c73e8dadeed41e3165a4fd13f712b27d63d50fc3376d","urls":["bzz-raw://2f255214f3531fc707d88be0d56a7a0aed4180439316d099d760d9118aa83093","dweb:/ipfs/QmZD1w5p1ukJSXumUAjvxwGmkPhn7vsr21Y2atLGEZR2oi"],"license":"BUSL-1.1"},"src/contracts/hints/Hints.sol":{"keccak256":"0x8b565df1ae35993c097a9e642002782a8f451f6fd01809cad6bcd345bdf1b99c","urls":["bzz-raw://99a19adb01e350a92f534095b3078229df1f2f83077992d75d58d8684be45971","dweb:/ipfs/QmbmwcuswVbzvwHQFTtrJG86oV98GnfxqYTb8cV8u1acox"],"license":"BUSL-1.1"},"src/contracts/hints/OptInServiceHints.sol":{"keccak256":"0x95d9407900d27b9f4a1233b772aeed809c07b2dc5b31cfc9fa77ca26514c49e5","urls":["bzz-raw://a13a8877e312d7e6b8b85bde3668c5d84ff5ecc83f762cd573f2b7104c64eb42","dweb:/ipfs/QmYV2J55acuGzCNnS3juABuUHY5U1xc8g8o9jwEyFFdeG5"],"license":"BUSL-1.1"},"src/contracts/hints/VaultHints.sol":{"keccak256":"0xccb505b7159b769cc114d67b87c2de6b106557f667fc8f3780114baad5c3c442","urls":["bzz-raw://6d0c80a908fc16e96a8b5605a0bd53f9e89ad0ef0a738fbbae80ba4d3160749b","dweb:/ipfs/QmXo5UtWoR8YmunqcbBU8rQMm1nvmvjNPoXcVrDhh4pEwR"],"license":"BUSL-1.1"},"src/contracts/libraries/Checkpoints.sol":{"keccak256":"0xba90097c8bfe0a975499428b5f8ac5569483c7d92ccc28c12d70de416aae040c","urls":["bzz-raw://12f5d93ca94cd06d3147db68993165a58e17903ed53682560de61f3085ad4609","dweb:/ipfs/QmePiuAqvXprMLmFZkGZeGjvGPAvsEDHfCDv7BoQhXu9xE"],"license":"MIT"},"src/contracts/libraries/ERC4626Math.sol":{"keccak256":"0x8441160513c1cbeb1c3b9ee077bcc7e7ce20006b52a77c8dd39ff0ef89699939","urls":["bzz-raw://943f8cc3e26ddf649f465f40c909819f5c864717c4baa339e9e403b9374a4653","dweb:/ipfs/QmXPxi1sUDsrGprZdUgCzoPEosaZMv9ZhygWQ1vAi1phAB"],"license":"MIT"},"src/contracts/libraries/Subnetwork.sol":{"keccak256":"0xf5ef5506fd66082b3c2e7f3df37529f5a8efad32ac62e7c8914bd63219190bfe","urls":["bzz-raw://ba031a54ee0d0e9a270c2b9e18437f5668cfeb659cfd5fe0677459d7fcac2a56","dweb:/ipfs/QmReP3H7qQ78tAfgLnJKsNEQNCQfF1X1Get38Ffd4kzq32"],"license":"MIT"},"src/contracts/service/OptInService.sol":{"keccak256":"0x4e0932077f2686b7990e10d59deb2535334c0d09e52ef6e57c6ab09eca21c4b1","urls":["bzz-raw://7c00d311032ed4a1743aca7475f3c86ce15cdfc2218108efc3731c03d34a5278","dweb:/ipfs/QmUGGfVwVhaHr5kS4177yKKYiLYzi5qZpkEmvYxBZqazxf"],"license":"BUSL-1.1"},"src/contracts/vault/Vault.sol":{"keccak256":"0x2ceff6ed3298c4cad144c99fcc79b51cb9397d6ebef00285b915848b476f8c2e","urls":["bzz-raw://11f2fb3581854f3ab6e82e8d4935d9eb510c903a13c3f022346c2956a58f5307","dweb:/ipfs/QmdUnoXoyYoG9SGWyQZCFyLDRUUX3eXyXetkRvw6jxqqBz"],"license":"BUSL-1.1"},"src/contracts/vault/VaultStorage.sol":{"keccak256":"0x57db25b127d77ea3472de53e3a4af3354399655b9268638b99ca5925fa364a56","urls":["bzz-raw://aa763d9a6ec508ae3abfb8228b72b9fd9525279e5135d4962e79ff059feb1173","dweb:/ipfs/QmcbDR6E9wyEpu6V2FkEC4hnWy47zXA9LSKJde6zSGd33Q"],"license":"BUSL-1.1"},"src/interfaces/common/IEntity.sol":{"keccak256":"0x8ef4b63d6da63489778ccd5f8d13ebdd527dd4b62730b2c616df5af7474d2d21","urls":["bzz-raw://5a8d69576a9219d85c50816a18ad53a4d53cfcb27ed38b8cccc808dc2734b71b","dweb:/ipfs/QmYVN3P4Q4REvBWJ97TbAcaxm3uyB2anV6NSGa6ZtSwcEv"],"license":"MIT"},"src/interfaces/common/IMigratableEntity.sol":{"keccak256":"0x8f5f2809f3afbe8ebfbb365dd7b57b4dd3b6f9943a6187eaf648d45895b8e3c4","urls":["bzz-raw://0ffe640537d539e7a4fde70d30d3e4c57f4ba9c2c25c450cea713aae38e8fd5c","dweb:/ipfs/QmSUTGzvdcn1R1KB7tLThMRtESsfPbeXDhhhKWGtntzBds"],"license":"MIT"},"src/interfaces/common/IRegistry.sol":{"keccak256":"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb","urls":["bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014","dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK"],"license":"MIT"},"src/interfaces/common/IStaticDelegateCallable.sol":{"keccak256":"0xa335d4e81b9071b7de66ef92b43ff20671d86516eb1be46fef29a3483cd3f5d5","urls":["bzz-raw://d464b9db863c14c05547d2b23352f2e9b7b784799cf09f6bbc4906a2a74e3516","dweb:/ipfs/QmUVWzFvJz7eEbDQKiFTTzwi7TEbjcs3VmwdM4kuptAKvi"],"license":"MIT"},"src/interfaces/delegator/IBaseDelegator.sol":{"keccak256":"0x96bb312f032e17accce3f8f80936d99468029d6b37c9ca74acdb4b026a0148ee","urls":["bzz-raw://2a66dcb5b7d1a6ef6a363431ea98ebd78bc4fdd3d7a134d9b542dc66e7d025c2","dweb:/ipfs/QmRhTPLd2ZAyRHmJUFUcWKs9b3if49QY17LYZuRqWmghw8"],"license":"MIT"},"src/interfaces/delegator/IDelegatorHook.sol":{"keccak256":"0xc51aa8d7d1f6c8043ee819b7aeb86da0e993912e1442098df897e299f01f9f46","urls":["bzz-raw://adddf5cb2ba282aeb576b26efb28640f865a1721cc9b6eee8b3ee0457a2c9780","dweb:/ipfs/QmNYgAmnLRwWZbhTuQhZs9rx4zcme1df5mEepkrniorSoW"],"license":"MIT"},"src/interfaces/delegator/IFullRestakeDelegator.sol":{"keccak256":"0xa3c8cb2e45d4d8ce90e95263bea40c01dc400f05ad65bc29597d878606be5e7d","urls":["bzz-raw://782cf5e201aa4cca037ebafd3807a68ff1cc721d5b8416a35244db0d0607369e","dweb:/ipfs/QmQkJks6x7CKndeTPa9LxgTNygD5uEi7obhADhpq1Lsr9A"],"license":"MIT"},"src/interfaces/delegator/INetworkRestakeDelegator.sol":{"keccak256":"0xe7030fe30389a147fd710e3436ec346b4842695fd3e65a81b95375c9f1d633fc","urls":["bzz-raw://739c7e66d301778054f5c90bee45ec9438f68afba8a03eaaac52064c73b115ad","dweb:/ipfs/QmfZ2ytKcTykAc76nxhg8ikUXV8NdBpetqb8W4YWPcox1Z"],"license":"MIT"},"src/interfaces/delegator/IOperatorNetworkSpecificDelegator.sol":{"keccak256":"0x74b95e64d29769202d45dd277bb830f623ff3d41ce77b80ce3ee4e318a5c71ec","urls":["bzz-raw://e512b903aae5c1b8a028c6e3f4f6223b5cb5d704503cfa6bd37b5346868f5c20","dweb:/ipfs/QmZim9YExsPWtyxyeui993HTKAEmrg8MUcSkZ77Gp2JcuZ"],"license":"MIT"},"src/interfaces/delegator/IOperatorSpecificDelegator.sol":{"keccak256":"0x72075cab585dc17240cc3e32bc99b92f0d5627ddd988fed680e3e1a52d5a01e4","urls":["bzz-raw://7448bc90699409ae61d85216b5efc2143a37f0f73354be2aea993bc54afca441","dweb:/ipfs/QmXE4gAxM8pHosZK8mcTcj17puBx484meDCcmrDePskGHZ"],"license":"MIT"},"src/interfaces/service/IOptInService.sol":{"keccak256":"0x76fb5460a6d87a5705433d4fbeff7253cd75b8bbd0c888b2088f16e86ace146a","urls":["bzz-raw://990322019b3d11465f7024bae77ccbf7e2fe5d6fa3c754584778f37d04fa1337","dweb:/ipfs/QmaSNHzcqxTkUCG9a4nqVfLECHLdjdrwAnDi3yDC7tDL24"],"license":"MIT"},"src/interfaces/slasher/IBaseSlasher.sol":{"keccak256":"0x7c82528b445659c313ab77335c407b0b6efe5e79027187bb287f7bc74202b404","urls":["bzz-raw://0274c90aa5df1aa6bb470a6aab53992fb14fd7e5472c9430416505b29647d9cf","dweb:/ipfs/QmckbmJLDetPemVzCnnGcKYWAZV2BRFXGDsjiaec8jkHxx"],"license":"MIT"},"src/interfaces/vault/IVault.sol":{"keccak256":"0xffee01d383cd4e1a5530c614bf4360c1ef070c288abec9da1eb531b51bc07235","urls":["bzz-raw://04f0046cac285d8ec44ebbb1f79dc94fab4495767190cad8364fbc1fafaadfb9","dweb:/ipfs/QmUawAunwzXfCyShWfhKeThAgKtqe51hmrxvrXvM772M2R"],"license":"MIT"},"src/interfaces/vault/IVaultStorage.sol":{"keccak256":"0x592626f13754194f83047135de19229c49390bd59e34659b1bb38be71d973a22","urls":["bzz-raw://06a6a9dfddd05e580b32bebe2cff4f63ba26a653180676d58225dd30d9c89d3e","dweb:/ipfs/QmdgzBeY6Sxo8mGtyBxtv1tM1c2kU6J6zjeRd7vuXm4DU6"],"license":"MIT"}},"version":1},"id":81} \ No newline at end of file +{"abi":[{"type":"constructor","inputs":[{"name":"baseDelegatorHints","type":"address","internalType":"address"},{"name":"vaultHints","type":"address","internalType":"address"},{"name":"optInServiceHints","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"BASE_DELEGATOR_HINTS","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"DEFAULT_ADMIN_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"FACTORY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"HOOK_GAS_LIMIT","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"HOOK_RESERVE","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"HOOK_SET_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"NETWORK_LIMIT_SET_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"NETWORK_REGISTRY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"OPERATOR_NETWORK_OPT_IN_SERVICE","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"OPERATOR_NETWORK_SHARES_SET_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"OPERATOR_VAULT_OPT_IN_SERVICE","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"OPT_IN_SERVICE_HINTS","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"TYPE","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"VAULT_FACTORY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"VAULT_HINTS","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"VERSION","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"pure"},{"type":"function","name":"getRoleAdmin","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"grantRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"hasRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"hook","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"initialize","inputs":[{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"maxNetworkLimit","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"value","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"networkLimit","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"networkLimitAt","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"timestamp","type":"uint48","internalType":"uint48"},{"name":"hint","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"networkLimitHint","inputs":[{"name":"delegator","type":"address","internalType":"address"},{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"timestamp","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"networkLimitHintInternal","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"timestamp","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"exists","type":"bool","internalType":"bool"},{"name":"hint","type":"uint32","internalType":"uint32"}],"stateMutability":"view"},{"type":"function","name":"onSlash","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"captureTimestamp","type":"uint48","internalType":"uint48"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"operatorNetworkShares","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"operatorNetworkSharesAt","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"timestamp","type":"uint48","internalType":"uint48"},{"name":"hint","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"operatorNetworkSharesHint","inputs":[{"name":"delegator","type":"address","internalType":"address"},{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"timestamp","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"operatorNetworkSharesHintInternal","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"timestamp","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"exists","type":"bool","internalType":"bool"},{"name":"hint","type":"uint32","internalType":"uint32"}],"stateMutability":"view"},{"type":"function","name":"renounceRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"callerConfirmation","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"revokeRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setHook","inputs":[{"name":"hook_","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setMaxNetworkLimit","inputs":[{"name":"identifier","type":"uint96","internalType":"uint96"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setNetworkLimit","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setOperatorNetworkShares","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"shares","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"stake","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"stakeAt","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"timestamp","type":"uint48","internalType":"uint48"},{"name":"hints","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"stakeHints","inputs":[{"name":"delegator","type":"address","internalType":"address"},{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"timestamp","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"staticDelegateCall","inputs":[{"name":"target","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"totalOperatorNetworkShares","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"totalOperatorNetworkSharesAt","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"timestamp","type":"uint48","internalType":"uint48"},{"name":"hint","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"totalOperatorNetworkSharesHint","inputs":[{"name":"delegator","type":"address","internalType":"address"},{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"timestamp","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"totalOperatorNetworkSharesHintInternal","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"timestamp","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"exists","type":"bool","internalType":"bool"},{"name":"hint","type":"uint32","internalType":"uint32"}],"stateMutability":"view"},{"type":"function","name":"vault","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"OnSlash","inputs":[{"name":"subnetwork","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"captureTimestamp","type":"uint48","indexed":false,"internalType":"uint48"}],"anonymous":false},{"type":"event","name":"RoleAdminChanged","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"previousAdminRole","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"newAdminRole","type":"bytes32","indexed":true,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"RoleGranted","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"sender","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"RoleRevoked","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"sender","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"SetHook","inputs":[{"name":"hook","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"SetMaxNetworkLimit","inputs":[{"name":"subnetwork","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"SetNetworkLimit","inputs":[{"name":"subnetwork","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"SetOperatorNetworkShares","inputs":[{"name":"subnetwork","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"shares","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"error","name":"AccessControlBadConfirmation","inputs":[]},{"type":"error","name":"AccessControlUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"neededRole","type":"bytes32","internalType":"bytes32"}]},{"type":"error","name":"AlreadySet","inputs":[]},{"type":"error","name":"CheckpointUnorderedInsertion","inputs":[]},{"type":"error","name":"DuplicateRoleHolder","inputs":[]},{"type":"error","name":"ExceedsMaxNetworkLimit","inputs":[]},{"type":"error","name":"ExternalCall","inputs":[]},{"type":"error","name":"InsufficientHookGas","inputs":[]},{"type":"error","name":"InvalidInitialization","inputs":[]},{"type":"error","name":"MathOverflowedMulDiv","inputs":[]},{"type":"error","name":"MissingRoleHolders","inputs":[]},{"type":"error","name":"NotInitialized","inputs":[]},{"type":"error","name":"NotInitializing","inputs":[]},{"type":"error","name":"NotNetwork","inputs":[]},{"type":"error","name":"NotSlasher","inputs":[]},{"type":"error","name":"NotVault","inputs":[]},{"type":"error","name":"ReentrancyGuardReentrantCall","inputs":[]},{"type":"error","name":"SafeCastOverflowedUintDowncast","inputs":[{"name":"bits","type":"uint8","internalType":"uint8"},{"name":"value","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ZeroAddressRoleHolder","inputs":[]}],"bytecode":{"object":"0x6101c0346101cf57601f61387d38819003918201601f19168301916001600160401b0391828411858510176101d35781606092869260409687528339810103126101cf5761004c836101e7565b926100648361005d602084016101e7565b92016101e7565b91306080527ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a009081549060ff82871c166101be57808083160361017a575b5050505f60a0525f60c0525f60e052610100935f8552610120935f8552610140905f82526101609283526101809384526101a0948552519461368196876101fc88396080518781816105a001528181610fd70152611629015260a051876109e9015260c051876112ac015260e05187818161084b01526112e5015251868181610512015261298501525185818161055601528181611e330152611f3b0152518481816107c901528181611d9a0152611fb9015251838181610e95015261194d015251828181610d9701526119ee015251816110490152f35b6001600160401b0319909116811790915583519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a15f80806100a2565b855163f92ee8a960e01b8152600490fd5b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b51906001600160a01b03821682036101cf5756fe60806040526004361015610011575f80fd5b5f3560e01c806301ffc9a71461030457806302145348146102ff57806307f9d5fd146102fa578063103f2907146102f5578063128e5d82146102f0578063197aa7ea146102eb5780631a7a7044146102e65780631a80e500146102e157806323f752d5146102dc578063248a9ca3146102d757806325dc9708146102d25780632dd31000146102cd5780632f2ff15d146102c857806336568abe146102c35780633dfd3873146102be5780633eb22c0f146102b957806342c53e33146102b4578063439fab91146102af57806345e78fcb146102aa578063557cab44146102a55780635d32a1c9146102a05780636679191e1461029b57806379d89614146102965780637d24bb27146102915780637f5a7c7b1461028c5780638b3f10b01461028757806391d1485414610282578063987b3ee81461027d5780639b656b22146102785780639f86fd8514610273578063a217fddf1461026e578063a33bc28714610269578063b549ef1f14610264578063bb24fe8a1461025f578063c0cd7c3e1461025a578063c43dc03f14610255578063d15b740e14610250578063d547741f1461024b578063da749d2b14610246578063e02f693714610241578063e49561ee1461023c578063e78eb6ae14610237578063ed4d89e514610232578063fbfa77cf1461022d578063fd4d447c14610228578063ff54740f146102235763ffa1ad741461021e575f80fd5b6116dc565b6116bf565b611695565b61166e565b61160e565b6115d4565b6113e9565b6113cd565b6113b3565b611367565b61133d565b611314565b6112d0565b61128d565b611273565b611126565b61110c565b611078565b611034565b610fa6565b610f48565b610f25565b610efd565b610ec4565b610e80565b610e46565b610e23565b610dc6565b610d82565b610c4a565b610bd1565b610ba8565b610aaf565b610a64565b610a18565b6109d4565b6109b7565b61097e565b6107f8565b6107b4565b61076e565b610585565b610541565b6104fd565b6104c8565b61035e565b3461035a57602036600319011261035a5760043563ffffffff60e01b811680910361035a57602090637965db0b60e01b8114908115610349575b506040519015158152f35b6301ffc9a760e01b1490505f61033e565b5f80fd5b3461035a5760408060031936011261035a57600435906024359061038061202e565b825f526002602052805f2054821161041a57825f526003602052816103a6825f206128d7565b1461040a5781610405916103f57e899d104fc3d8820bd96540612bcc5c448c8837b13b9f7faa43ad0728f0c14f946103e6875f52600360205260405f2090565b6103ef42612d7a565b90612176565b5050519081529081906020820190565b0390a2005b5163a741a04560e01b8152600490fd5b51631eefc06360e31b8152600490fd5b6001600160a01b0381160361035a57565b6024359065ffffffffffff8216820361035a57565b6064359065ffffffffffff8216820361035a57565b608090600319011261035a5760043561047d8161042a565b906024359060443561048e8161042a565b9060643565ffffffffffff8116810361035a5790565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b3461035a576104f96104e56104dc36610465565b92919091611736565b6040519182916020835260208301906104a4565b0390f35b3461035a575f36600319011261035a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461035a575f36600319011261035a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461035a57604036600319011261035a5761059e61043b565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163303610602576105e5906004355f52600360205260405f206122f5565b60408051941515855263ffffffff91909116602085015292915050f35b604051637ca475e560e11b8152600490fd5b634e487b7160e01b5f52604160045260245ffd5b604081019081106001600160401b0382111761064357604052565b610614565b606081019081106001600160401b0382111761064357604052565b60a081019081106001600160401b0382111761064357604052565b90601f801991011681019081106001600160401b0382111761064357604052565b604051906106ac82610663565b565b604051906106ac82610628565b6001600160401b03811161064357601f01601f191660200190565b81601f8201121561035a578035906106ed826106bb565b926106fb604051948561067e565b8284526020838301011161035a57815f926020809301838601378301015290565b90608060031983011261035a57600435916024356107398161042a565b9160443565ffffffffffff8116810361035a5791606435906001600160401b03821161035a5761076b916004016106d6565b90565b3461035a5760206107ac6107a76107843661071c565b939190925f526005865260405f209060018060a01b03165f5260205260405f2090565b61242d565b604051908152f35b3461035a575f36600319011261035a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461035a57604036600319011261035a576004356001600160601b038116810361035a5760243590610828612505565b6040516302910f8b60e31b81523360048201526020816024816001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165afa908115610979575f9161094a575b5015610938576001600160601b03166bffffffffffffffffffffffff193360601b161790806108b2835f52600260205260405f2090565b54146109265761090b817fc67e7929681aa1bccd63f52b3799bf5805f3009f197db6fdf584b14f7fbf608c926108f0855f52600260205260405f2090565b556108fb8185612534565b6040519081529081906020820190565b0390a261092460015f8051602061360c83398151915255565b005b60405163a741a04560e01b8152600490fd5b6040516323d53b9760e21b8152600490fd5b61096c915060203d602011610972575b610964818361067e565b8101906117e8565b5f61087b565b503d61095a565b6117fc565b3461035a57602036600319011261035a576004355f525f805160206135ec8339815191526020526020600160405f200154604051908152f35b3461035a576104f96104e56109cb36610465565b92919091611904565b3461035a575f36600319011261035a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461035a57604036600319011261035a57610924602435600435610a3b8261042a565b805f525f805160206135ec833981519152602052610a5f600160405f2001546120e1565b61280f565b3461035a57604036600319011261035a57602435610a818161042a565b336001600160a01b03821603610a9d5761092490600435612845565b60405163334bd91960e11b8152600490fd5b3461035a57602036600319011261035a57600435610acc8161042a565b610ad4612505565b335f9081527f9ebbcbe0d2961d3fbe56ca6f679bc753bd848d3e6bb3eaf9041c51b286881d2c60205260409020547fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c9060ff1615610b8a57506001546001600160a01b039182169181168214610926576001600160a01b03191681176001557f5bbb1d3ebb6a3ad2a0f17ff35e579a83af60604d1d3c2a4c83c62adecadf666d5f80a260015f8051602061360c83398151915255005b6044906040519063e2517d3f60e01b82523360048301526024820152fd5b3461035a57602036600319011261035a576004355f52600360205260206107ac60405f206128d7565b3461035a57604036600319011261035a5760206107ac610c18602435610bf68161042a565b6004355f526005845260405f209060018060a01b03165f5260205260405f2090565b6128d7565b9181601f8401121561035a578235916001600160401b03831161035a576020838186019501011161035a57565b3461035a57602036600319011261035a576001600160401b0360043581811161035a57610c7b903690600401610c1d565b5f8051602061362c833981519152549260ff8460401c1615931680159081610d7a575b6001149081610d70575b159081610d67575b50610d55575f8051602061362c833981519152805467ffffffffffffffff19166001179055610ce39183610d3157612950565b610ce957005b5f8051602061362c833981519152805460ff60401b19169055604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a1005b5f8051602061362c833981519152805460ff60401b1916600160401b179055612950565b60405163f92ee8a960e01b8152600490fd5b9050155f610cb0565b303b159150610ca8565b849150610c9e565b3461035a575f36600319011261035a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461035a575f36600319011261035a576020604051614e208152f35b606060031982011261035a576004359160243565ffffffffffff8116810361035a5791604435906001600160401b03821161035a5761076b916004016106d6565b3461035a5760206107ac610e3636610de2565b915f526003845260405f2061242d565b3461035a575f36600319011261035a5760206040517fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c8152f35b3461035a575f36600319011261035a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461035a575f36600319011261035a5760206040517e8b9b1e5fa9cf3b14f87f435649268146305ddf689f082e5961a335b07a9abf8152f35b3461035a575f36600319011261035a576001546040516001600160a01b039091168152602090f35b3461035a5760206107ac610f3836610de2565b915f526004845260405f2061242d565b3461035a57604036600319011261035a57602060ff610f9a602435610f6c8161042a565b6004355f525f805160206135ec833981519152845260405f209060018060a01b03165f5260205260405f2090565b54166040519015158152f35b3461035a57606036600319011261035a57602435610fc38161042a565b60443565ffffffffffff8116810361035a577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633036106025761102f6105e5926004355f52600560205260405f209060018060a01b03165f5260205260405f2090565b6122f5565b3461035a575f36600319011261035a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461035a57604036600319011261035a576004356110958161042a565b6024356001600160401b03811161035a575f916110b783923690600401610c1d565b90816040519283928337810184815203915af46111046110d5611b60565b916110f66040519384921515602084015260408084015260608301906104a4565b03601f19810183528261067e565b805190602001fd5b3461035a575f36600319011261035a5760206040515f8152f35b3461035a57606036600319011261035a576024356004356111468261042a565b6044359161115261208a565b5f8281526005602090815260408083206001600160a01b0385168452909152902061117c906128d7565b838114610926577f739a5a3ec0ff71e2386d0013deac5f44e0935a98def2e2a5ddf9a709518c8294916111ef61123c92855f52600460205260405f20906111e9886111e46111c942612d7a565b936111df610c188c5f52600460205260405f2090565b611bb6565b611bd1565b91612176565b5050611220856103e68361120b885f52600560205260405f2090565b9060018060a01b03165f5260205260405f2090565b50506040519485526001600160a01b0316939081906020820190565b0390a3005b606090600319011261035a576004356112598161042a565b906024359060443565ffffffffffff8116810361035a5790565b3461035a576104f96104e561128736611241565b91611bde565b3461035a575f36600319011261035a5760206040516001600160401b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461035a575f36600319011261035a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461035a57602036600319011261035a576004355f52600460205260206107ac60405f206128d7565b3461035a57602036600319011261035a576004355f526002602052602060405f2054604051908152f35b3461035a57604036600319011261035a5761092460243560043561138a8261042a565b805f525f805160206135ec8339815191526020526113ae600160405f2001546120e1565b612845565b3461035a576104f96104e56113c736611241565b91611c28565b3461035a5760206107ac6113e03661071c565b92919091611d24565b3461035a5760a036600319011261035a576024356004356114098261042a565b60443591611415610450565b90608435906001600160401b03821161035a57611437600492369084016106d6565b61143f612505565b5f5460209061146490611458906001600160a01b031681565b6001600160a01b031690565b60405163b134427160e01b815294859182905afa928315610979575f936115a3575b506001600160a01b039283163303611591576001546001600160a01b0316838116611506575b50506040805195865265ffffffffffff909316602086015216927f741a5de99085c0d660f3e4192217b0ffb0ea4e35a0480de48e857a4bc3ee36ed91819081015b0390a361092460015f8051602061360c83398151915255565b90936040519461153d8661152f602082019363724ab0f760e11b8552858c898d60248701611eae565b03601f19810188528761067e565b62042e305a1061157f575f6114ed938192827f741a5de99085c0d660f3e4192217b0ffb0ea4e35a0480de48e857a4bc3ee36ed9951926203d090f150936114ac565b604051638072475160e01b8152600490fd5b60405163dabc4ad960e01b8152600490fd5b6115c691935060203d6020116115cd575b6115be818361067e565b810190611872565b915f611486565b503d6115b4565b3461035a575f36600319011261035a5760206040517f1312a1cf530e56add9be4fd84db9051dcc7635952f09f735f9a29405b55846258152f35b3461035a57604036600319011261035a5761162761043b565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163303610602576105e5906004355f52600460205260405f206122f5565b3461035a575f36600319011261035a575f546040516001600160a01b039091168152602090f35b3461035a57604036600319011261035a5760206107ac6024356116b78161042a565b600435611f04565b3461035a575f36600319011261035a5760206040516203d0908152f35b3461035a575f36600319011261035a57602060405160018152f35b5190811515820361035a57565b519063ffffffff8216820361035a57565b919082604091031261035a5761076b602061172f846116f7565b9301611704565b906117869165ffffffffffff6117959496956060976040519463130f67dd60e31b6020870152602486015260018060a01b031660448501521660648301526064825261178182610663565b612238565b60208082518301019101611715565b9061179d5750565b90915063ffffffff604051911660208201526020815261076b81610628565b5f9081526005602090815260408083206001600160a01b0390941683529290522061076b92919061242d565b9081602091031261035a5761076b906116f7565b6040513d5f823e3d90fd5b81601f8201121561035a5780519061181e826106bb565b9261182c604051948561067e565b8284526020838301011161035a57815f9260208093018386015e8301015290565b9060208282031261035a5781516001600160401b03811161035a5761076b9201611807565b9081602091031261035a575161076b8161042a565b9061076b91602081526118a6825160a0602084015260c08301906104a4565b9060a060806118f46118e16118cd602088015196601f1997888883030160408901526104a4565b6040880151878783030160608801526104a4565b60608701518686830301848701526104a4565b94015192828503019101526104a4565b604051630df8851f60e11b81526001600160a01b03828116600483015260248201849052848116604483015265ffffffffffff8616606483015295606095909491935f856084817f00000000000000000000000000000000000000000000000000000000000000008c165afa948515610979575f95611b18575b5060405163fbfa77cf60e01b8152602081600481888d165afa908115610979576119ea995f9285928491611af9575b5060405163192c0ff760e21b81526001600160a01b03909116600482015265ffffffffffff909216602483015290998a9190829081906044820190565b03917f0000000000000000000000000000000000000000000000000000000000000000165afa978815610979575f98611acf575b509081611a3b82611a3381611a419689611c28565b958388611736565b94611bde565b90835115801590611ac5575b8015611abb575b8015611ab1575b8015611aa7575b611a6f5750505050909150565b6110f6955061076b9496611a8161069f565b948552602085015260408401526060830152608082015260405192839160208301611887565b5081511515611a62565b5082511515611a5b565b5080511515611a54565b5086511515611a4d565b611a4192919850611af1903d805f833e611ae9818361067e565b81019061184d565b979091611a1e565b611b12915060203d6020116115cd576115be818361067e565b5f6119ad565b611b2d9195503d805f833e611ae9818361067e565b935f61197e565b9061076b92915f52600360205260405f2061242d565b9061076b92915f52600460205260405f2061242d565b3d15611b8a573d90611b71826106bb565b91611b7f604051938461067e565b82523d5f602084013e565b606090565b634e487b7160e01b5f52601160045260245ffd5b5f19810191908211611bb157565b611b8f565b91908203918211611bb157565b9060018201809211611bb157565b91908201809211611bb157565b60405163ed4d89e560e01b6020820152602481019290925265ffffffffffff909216604482015260609291611795916117869161178182606481015b03601f19810184528361067e565b604051630cbd53f560e11b6020820152602481019290925265ffffffffffff90921660448201526060929161179591611786916117818260648101611c1a565b60405190611c7582610628565b60606020838281520152565b9060208282031261035a5781516001600160401b039283821161035a57019060408282031261035a5760405192611cb784610628565b825181811161035a5782611ccc918501611807565b8452602083015190811161035a57611ce49201611807565b602082015290565b6001600160a01b0391821681529116602082015265ffffffffffff909116604082015260806060820181905261076b929101906104a4565b92611d3490929192828486612bb5565b929093611d3f611c68565b93805180611e92575b50508415938415611dfc575b8415611d6b575b50505050611d665790565b505f90565b602080949550611d96910151604051958694859463530e1d4360e01b865260601c9060048601611cec565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa908115610979575f91611ddd575b50155f808080611d5b565b611df6915060203d60201161097257610964818361067e565b5f611dd2565b5f549094506001600160a01b0316602084865192611e2f604051948593849363530e1d4360e01b85528960048601611cec565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa908115610979575f91611e73575b501593611d54565b611e8c915060203d60201161097257610964818361067e565b5f611e6b565b611ea6929550602080918301019101611c81565b925f80611d48565b919360a09361076b969565ffffffffffff938552600180871b03166020850152604084015216606082015281608082015201906104a4565b8115611ef0570490565b634e487b7160e01b5f52601260045260245ffd5b5f546040516308834cb560e21b8082526001600160a01b0385811660048401529283166024830152929392602092909183816044817f000000000000000000000000000000000000000000000000000000000000000086165afa908115610979575f91612011575b5015918215611f8d575b50509050611f875761076b91612cc5565b50505f90565b6040519081526001600160a01b0385166004820152606086901c602482015291508290829060449082907f0000000000000000000000000000000000000000000000000000000000000000165afa918215610979575f92611ff4575b505015805f80611f76565b61200a9250803d1061097257610964818361067e565b5f80611fe9565b6120289150843d861161097257610964818361067e565b5f611f6c565b335f9081527f72a65082a5691803ab2b62c9bc729b34205ba1b183d950896526b2fd8714d0c7602052604090207e8b9b1e5fa9cf3b14f87f435649268146305ddf689f082e5961a335b07a9abf9060ff905b541615610b8a5750565b335f9081527f8f2dae99798887da307a4daa2c2d11f840b0cb9a6a67822660c531e9ad14dd00602052604090207f1312a1cf530e56add9be4fd84db9051dcc7635952f09f735f9a29405b55846259060ff90612080565b5f8181525f805160206135ec83398151915260209081526040808320338452909152902060ff90612080565b634e487b7160e01b5f52603260045260245ffd5b8054821015612136575f5260205f2001905f90565b61210d565b90815491600160401b831015610643578261215e9160016106ac95018155612121565b90919082549060031b91821b915f19901b1916179055565b90929192600182019081548015612208575b508461219384612dac565b509490928454936121a3836128d7565b96816121f3575b50156121d0575050505f198101908111611bb15761215e85916121cc93612121565b9190565b6121cc9492936121ec926001600160d01b0390911691906134a7565b505061213b565b65ffffffffffff83811691161490505f6121aa565b600160401b811015610643578060016122249201845583612121565b8154905f199060031b1b191690555f612188565b5f9190829160405161226d816110f66020820194639f86fd8560e01b86523060248401526040604484015260648301906104a4565b51915afa5061227a611b60565b8051810160408282031261035a57612294602083016116f7565b916040810151916001600160401b03831161035a576122ba926020809201920101611807565b90156122c35790565b805190811561035a57602001fd5b906040516122de81610628565b915465ffffffffffff8116835260301c6020830152565b91908254905f82916005841161239d575b612311935085612f2e565b9081156123915761238a61238161237b61237161234361233e61233388611ba3565b895f5260205f200190565b6122d1565b96600161236a602061235b8b5165ffffffffffff1690565b9a01516001600160d01b031690565b9101612121565b90549060031b1c90565b93611ba3565b63ffffffff1690565b6001939291565b5f925082915081908190565b91926123a881612dfb565b8103908111611bb15761231193865f526123dc6123d18360205f200165ffffffffffff90541690565b65ffffffffffff1690565b65ffffffffffff851610156123f2575091612306565b9291506123fe90611bc3565b90612306565b9081602091031261035a5761076b90611704565b90600163ffffffff80931601918211611bb157565b918051156124fb578060208061244893518301019101612404565b916124538382613060565b92612464845165ffffffffffff1690565b9065ffffffffffff80851692168281146124ef578211918261249a575b50506124915761076b9250612f90565b50506020015190565b9091506124a78354611ba3565b63ffffffff8316149182156124c0575b50505f80612481565b6124e79192506124db6124d56123d192612418565b85613060565b5165ffffffffffff1690565b115f806124b7565b50505050506020015190565b5061076b91612f90565b5f8051602061360c83398151915260028154146125225760029055565b604051633ee5aeb560e01b8152600490fd5b90815f52600360205260405f208161254b82612dac565b9193905083156125a95761256b916001600160d01b031690600101612121565b90549060031b1c5b8261259f575b5050612583575050565b61259b915f52600360205260405f206103ef42612d7a565b5050565b119050815f612579565b50505f612573565b6001600160a01b0381165f9081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d60205260409020545f805160206135ec8339815191529060ff16611f87575f808052602091825260408082206001600160a01b038516835290925220805460ff1916600117905533906001600160a01b03165f7f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d8180a4600190565b6001600160a01b0381165f9081527f9ebbcbe0d2961d3fbe56ca6f679bc753bd848d3e6bb3eaf9041c51b286881d2c602052604090207fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c905f805160206135ec8339815191529060ff905b541661272b575f828152602091825260408082206001600160a01b038616835290925220805460ff1916600117905533916001600160a01b0316907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d5f80a4600190565b5050505f90565b6001600160a01b0381165f9081527f72a65082a5691803ab2b62c9bc729b34205ba1b183d950896526b2fd8714d0c7602052604090207e8b9b1e5fa9cf3b14f87f435649268146305ddf689f082e5961a335b07a9abf905f805160206135ec8339815191529060ff906126c7565b6001600160a01b0381165f9081527f8f2dae99798887da307a4daa2c2d11f840b0cb9a6a67822660c531e9ad14dd00602052604090207f1312a1cf530e56add9be4fd84db9051dcc7635952f09f735f9a29405b5584625905f805160206135ec8339815191529060ff906126c7565b5f8181525f805160206135ec833981519152602081815260408084206001600160a01b038716855290915290912060ff906126c7565b5f8181525f805160206135ec833981519152602081815260408084206001600160a01b03871685529091529091205460ff161561272b575f828152602091825260408082206001600160a01b038616835290925220805460ff1916905533916001600160a01b0316907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b5f80a4600190565b8054806128fc57505f5b6001600160d01b03811615611f875760016123719201612121565b5f19908082810111611bb157825f5260205f2001015460301c6128e1565b91909160408184031261035a5780356129328161042a565b9260208201356001600160401b03811161035a5761076b92016106d6565b61295c9181019061291a565b6040516302910f8b60e31b81526001600160a01b039283166004820181905291906020816024817f000000000000000000000000000000000000000000000000000000000000000088165afa908115610979575f91612a6f575b5015612a5d576129f16040916129ec612a37946129d16130c8565b60018060a01b03166001600160601b0360a01b5f5416175f55565b613248565b6020810151600180546001600160a01b0319166001600160a01b0390921691909117905580516001600160a01b0316848116612a4d575b5001516001600160a01b031690565b908116612a415750565b612a4a9061265c565b50565b612a56906125b1565b505f612a28565b6040516362df054560e01b8152600490fd5b612a88915060203d60201161097257610964818361067e565b5f6129b6565b6040519060a082018281106001600160401b038211176106435760405281608060609182815282602082015282604082015282808201520152565b9060208282031261035a5781516001600160401b039283821161035a57019060a08282031261035a57612afa61069f565b92825181811161035a5782612b10918501611807565b8452602083015181811161035a5782612b2a918501611807565b6020850152604083015181811161035a5782612b47918501611807565b6040850152606083015181811161035a5782612b64918501611807565b6060850152608083015190811161035a57612b7f9201611807565b608082015290565b9081602091031261035a575190565b60409065ffffffffffff61076b949316815281602082015201906104a4565b91939293612bc1612a8e565b94805180612ca9575b5050612bdb60608601518285611b4a565b9182612bed57505050509051905f9190565b612c01612c3b9183608089015191876117bc565b916020612c1a6114586114585f5460018060a01b031690565b8189015190604051808096819463810da75d60e01b83528760048401612b96565b03915afa801561097957612c7195612c6b935f92612c76575b50612c65919260408a015191611b34565b906133a8565b906133ba565b915190565b612c659250612c9c9060203d602011612ca2575b612c94818361067e565b810190612b87565b91612c54565b503d612c8a565b612cbd929650602080918301019101612ac9565b935f80612bca565b90612cdb610c18835f52600460205260405f2090565b9081612ce8575050505f90565b610c18612d019161120b855f52600560205260405f2090565b5f5460405163bd49c35f60e01b815290602090829060049082906001600160a01b03165afa80156109795761076b94612c6b925f92612d51575b50610c18612c65915f52600360205260405f2090565b612c65919250612d72610c189160203d602011612ca257612c94818361067e565b929150612d3b565b65ffffffffffff90818111612d8d571690565b604490604051906306dfcc6560e41b8252603060048301526024820152fd5b805480612dbd5750505f905f905f90565b5f19908082810111611bb157612dda925f5260205f2001016122d1565b9065ffffffffffff82511691602060018060d01b0391015116906001929190565b8015611d665780612c65612ec6612ebc612eb2612ea8612e9e612e94612e8a600161076b9a5f908b60801c80612f22575b508060401c80612f15575b508060201c80612f08575b508060101c80612efb575b508060081c80612eee575b508060041c80612ee1575b508060021c80612ed4575b50821c612ecd575b811c1b612e83818b611ee6565b0160011c90565b612e83818a611ee6565b612e838189611ee6565b612e838188611ee6565b612e838187611ee6565b612e838186611ee6565b612e838185611ee6565b8092611ee6565b8101612e76565b600291509101905f612e6e565b600491509101905f612e63565b600891509101905f612e58565b601091509101905f612e4d565b602091509101905f612e42565b604091509101905f612e37565b9150506080905f612e2c565b91905b838210612f3e5750505090565b909192808316906001818518811c8301809311611bb157855f5265ffffffffffff808460205f20015416908516105f14612f7d575050925b9190612f31565b909493508101809111611bb15791612f76565b908154905f829160058411612ffa575b612fab935084612f2e565b80612fd357505f905b6001600160d01b03821615611f875761076b9160016123719201612121565b612fed612fe2612ff492611ba3565b835f5260205f200190565b5460301c90565b90612fb4565b919261300581612dfb565b8103908111611bb157612fab93855f5265ffffffffffff808360205f20015416908516105f14613036575091612fa0565b92915061304290611bc3565b90612fa0565b6040519061305582610628565b5f6020838281520152565b906130896130836130aa92613073613048565b5061307c613048565b5084612121565b506122d1565b91600165ffffffffffff845116936020828060d01b03910151169101612121565b905490604051926130ba84610628565b835260031b1c602082015290565b6130d06135bd565b6130d86135bd565b60015f8051602061360c83398151915255565b604051906130f882610648565b5f6040838281528260208201520152565b81601f8201121561035a578051916020916001600160401b038411610643578360051b906040519461313d8584018761067e565b8552838086019282010192831161035a578301905b828210613160575050505090565b838091835161316e8161042a565b815201910190613152565b9060208282031261035a5781516001600160401b039283821161035a5701908181039260a0841261035a576060604051946131b386610648565b1261035a576040516131c481610648565b83516131cf8161042a565b815260208401516131df8161042a565b602082015260408401516131f28161042a565b60408201528452606083015181811161035a5782613211918501613109565b6020850152608083015190811161035a5761322c9201613109565b604082015290565b80518210156121365760209160051b010190565b613264906132546130eb565b5060208082518301019101613179565b8051519091906001600160a01b0316158061338e575b61337c579060208101905f5b82518051821015613300576114586132a1836132ae93613234565b516001600160a01b031690565b156132ee576132d06132cc6132c76132a1848751613234565b612732565b1590565b6132dc57600101613286565b604051635140fefd60e11b8152600490fd5b6040516323cda06760e01b8152600490fd5b506040925050818101905f5b82518051821015613373576114586132a18361332793613234565b15613362576133456132cc6133406132a1848751613234565b6127a0565b6133515760010161330c565b8351635140fefd60e11b8152600490fd5b83516323cda06760e01b8152600490fd5b50509150505190565b6040516303501f5960e11b8152600490fd5b50602082015151158061327a57506040820151511561327a565b90808210156133b5575090565b905090565b9091828202915f198482099383808610950394808603951461343f578483111561342d57829109815f038216809204600280826003021880830282030280830282030280830282030280830282030280830282030280920290030293600183805f03040190848311900302920304170290565b60405163227bc15360e01b8152600490fd5b50509061076b9250611ee6565b8054600160401b8110156106435761346991600182018155612121565b61349457815160209092015160301b65ffffffffffff191665ffffffffffff92909216919091179055565b634e487b7160e01b5f525f60045260245ffd5b805492939291908215613594576134c361233e612fe285611ba3565b906134d4825165ffffffffffff1690565b65ffffffffffff84811691168110613582576121cc9460209488926135026123d1875165ffffffffffff1690565b0361354a575061353c9261351861352392611ba3565b905f5260205f200190565b9065ffffffffffff82549181199060301b169116179055565b01516001600160d01b031690565b91505061357d9161356a61355c6106ae565b65ffffffffffff9093168352565b6001600160d01b0388168286015261344c565b61353c565b604051632520601d60e01b8152600490fd5b6135b892506135a461355c6106ae565b6001600160d01b038516602083015261344c565b5f9190565b60ff5f8051602061362c8339815191525460401c16156135d957565b604051631afcd79f60e31b8152600490fdfe02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268009b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a2646970667358221220dc71151e359446372f65ddedaab6f31862570ef5d8ce33546dbf0285e530953a64736f6c63430008190033","sourceMap":"3228:4636:86:-:0;;;;;;;;;;;;;-1:-1:-1;;3228:4636:86;;;;-1:-1:-1;;;;;3228:4636:86;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;:::i;:::-;348:4:87;;332:21;;8837:64:26;3228:4636:86;;;;;;;;;7896:76:26;;3228:4636:86;;;;7985:34:26;7981:146;;-1:-1:-1;525:17:74;;;-1:-1:-1;525:17:74;;-1:-1:-1;552:12:74;;-1:-1:-1;2360:34:81;;2404:28;;-1:-1:-1;2404:28:81;;2442:57;;-1:-1:-1;2442:57:81;;2509:61;;-1:-1:-1;2509:61:81;;3714:41:86;;;;3765:24;;;;3799:40;;;;3228:4636;;;;;;;;332:21:87;3228:4636:86;;;;;;;;;;;;;;;525:17:74;3228:4636:86;;;;;552:12:74;3228:4636:86;;;;;2360:34:81;3228:4636:86;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7981:146:26;-1:-1:-1;;;;;;3228:4636:86;;;;;;;;;;;;;8087:29:26;;3228:4636:86;;8087:29:26;7981:146;;;;;7896:76;3228:4636:86;;-1:-1:-1;;;7938:23:26;;;;;3228:4636:86;-1:-1:-1;3228:4636:86;;;;;;-1:-1:-1;3228:4636:86;;;;;-1:-1:-1;3228:4636:86;;;;-1:-1:-1;;;;;3228:4636:86;;;;;;:::o","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361015610011575f80fd5b5f3560e01c806301ffc9a71461030457806302145348146102ff57806307f9d5fd146102fa578063103f2907146102f5578063128e5d82146102f0578063197aa7ea146102eb5780631a7a7044146102e65780631a80e500146102e157806323f752d5146102dc578063248a9ca3146102d757806325dc9708146102d25780632dd31000146102cd5780632f2ff15d146102c857806336568abe146102c35780633dfd3873146102be5780633eb22c0f146102b957806342c53e33146102b4578063439fab91146102af57806345e78fcb146102aa578063557cab44146102a55780635d32a1c9146102a05780636679191e1461029b57806379d89614146102965780637d24bb27146102915780637f5a7c7b1461028c5780638b3f10b01461028757806391d1485414610282578063987b3ee81461027d5780639b656b22146102785780639f86fd8514610273578063a217fddf1461026e578063a33bc28714610269578063b549ef1f14610264578063bb24fe8a1461025f578063c0cd7c3e1461025a578063c43dc03f14610255578063d15b740e14610250578063d547741f1461024b578063da749d2b14610246578063e02f693714610241578063e49561ee1461023c578063e78eb6ae14610237578063ed4d89e514610232578063fbfa77cf1461022d578063fd4d447c14610228578063ff54740f146102235763ffa1ad741461021e575f80fd5b6116dc565b6116bf565b611695565b61166e565b61160e565b6115d4565b6113e9565b6113cd565b6113b3565b611367565b61133d565b611314565b6112d0565b61128d565b611273565b611126565b61110c565b611078565b611034565b610fa6565b610f48565b610f25565b610efd565b610ec4565b610e80565b610e46565b610e23565b610dc6565b610d82565b610c4a565b610bd1565b610ba8565b610aaf565b610a64565b610a18565b6109d4565b6109b7565b61097e565b6107f8565b6107b4565b61076e565b610585565b610541565b6104fd565b6104c8565b61035e565b3461035a57602036600319011261035a5760043563ffffffff60e01b811680910361035a57602090637965db0b60e01b8114908115610349575b506040519015158152f35b6301ffc9a760e01b1490505f61033e565b5f80fd5b3461035a5760408060031936011261035a57600435906024359061038061202e565b825f526002602052805f2054821161041a57825f526003602052816103a6825f206128d7565b1461040a5781610405916103f57e899d104fc3d8820bd96540612bcc5c448c8837b13b9f7faa43ad0728f0c14f946103e6875f52600360205260405f2090565b6103ef42612d7a565b90612176565b5050519081529081906020820190565b0390a2005b5163a741a04560e01b8152600490fd5b51631eefc06360e31b8152600490fd5b6001600160a01b0381160361035a57565b6024359065ffffffffffff8216820361035a57565b6064359065ffffffffffff8216820361035a57565b608090600319011261035a5760043561047d8161042a565b906024359060443561048e8161042a565b9060643565ffffffffffff8116810361035a5790565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b3461035a576104f96104e56104dc36610465565b92919091611736565b6040519182916020835260208301906104a4565b0390f35b3461035a575f36600319011261035a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461035a575f36600319011261035a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461035a57604036600319011261035a5761059e61043b565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163303610602576105e5906004355f52600360205260405f206122f5565b60408051941515855263ffffffff91909116602085015292915050f35b604051637ca475e560e11b8152600490fd5b634e487b7160e01b5f52604160045260245ffd5b604081019081106001600160401b0382111761064357604052565b610614565b606081019081106001600160401b0382111761064357604052565b60a081019081106001600160401b0382111761064357604052565b90601f801991011681019081106001600160401b0382111761064357604052565b604051906106ac82610663565b565b604051906106ac82610628565b6001600160401b03811161064357601f01601f191660200190565b81601f8201121561035a578035906106ed826106bb565b926106fb604051948561067e565b8284526020838301011161035a57815f926020809301838601378301015290565b90608060031983011261035a57600435916024356107398161042a565b9160443565ffffffffffff8116810361035a5791606435906001600160401b03821161035a5761076b916004016106d6565b90565b3461035a5760206107ac6107a76107843661071c565b939190925f526005865260405f209060018060a01b03165f5260205260405f2090565b61242d565b604051908152f35b3461035a575f36600319011261035a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461035a57604036600319011261035a576004356001600160601b038116810361035a5760243590610828612505565b6040516302910f8b60e31b81523360048201526020816024816001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165afa908115610979575f9161094a575b5015610938576001600160601b03166bffffffffffffffffffffffff193360601b161790806108b2835f52600260205260405f2090565b54146109265761090b817fc67e7929681aa1bccd63f52b3799bf5805f3009f197db6fdf584b14f7fbf608c926108f0855f52600260205260405f2090565b556108fb8185612534565b6040519081529081906020820190565b0390a261092460015f8051602061360c83398151915255565b005b60405163a741a04560e01b8152600490fd5b6040516323d53b9760e21b8152600490fd5b61096c915060203d602011610972575b610964818361067e565b8101906117e8565b5f61087b565b503d61095a565b6117fc565b3461035a57602036600319011261035a576004355f525f805160206135ec8339815191526020526020600160405f200154604051908152f35b3461035a576104f96104e56109cb36610465565b92919091611904565b3461035a575f36600319011261035a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461035a57604036600319011261035a57610924602435600435610a3b8261042a565b805f525f805160206135ec833981519152602052610a5f600160405f2001546120e1565b61280f565b3461035a57604036600319011261035a57602435610a818161042a565b336001600160a01b03821603610a9d5761092490600435612845565b60405163334bd91960e11b8152600490fd5b3461035a57602036600319011261035a57600435610acc8161042a565b610ad4612505565b335f9081527f9ebbcbe0d2961d3fbe56ca6f679bc753bd848d3e6bb3eaf9041c51b286881d2c60205260409020547fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c9060ff1615610b8a57506001546001600160a01b039182169181168214610926576001600160a01b03191681176001557f5bbb1d3ebb6a3ad2a0f17ff35e579a83af60604d1d3c2a4c83c62adecadf666d5f80a260015f8051602061360c83398151915255005b6044906040519063e2517d3f60e01b82523360048301526024820152fd5b3461035a57602036600319011261035a576004355f52600360205260206107ac60405f206128d7565b3461035a57604036600319011261035a5760206107ac610c18602435610bf68161042a565b6004355f526005845260405f209060018060a01b03165f5260205260405f2090565b6128d7565b9181601f8401121561035a578235916001600160401b03831161035a576020838186019501011161035a57565b3461035a57602036600319011261035a576001600160401b0360043581811161035a57610c7b903690600401610c1d565b5f8051602061362c833981519152549260ff8460401c1615931680159081610d7a575b6001149081610d70575b159081610d67575b50610d55575f8051602061362c833981519152805467ffffffffffffffff19166001179055610ce39183610d3157612950565b610ce957005b5f8051602061362c833981519152805460ff60401b19169055604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a1005b5f8051602061362c833981519152805460ff60401b1916600160401b179055612950565b60405163f92ee8a960e01b8152600490fd5b9050155f610cb0565b303b159150610ca8565b849150610c9e565b3461035a575f36600319011261035a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461035a575f36600319011261035a576020604051614e208152f35b606060031982011261035a576004359160243565ffffffffffff8116810361035a5791604435906001600160401b03821161035a5761076b916004016106d6565b3461035a5760206107ac610e3636610de2565b915f526003845260405f2061242d565b3461035a575f36600319011261035a5760206040517fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c8152f35b3461035a575f36600319011261035a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461035a575f36600319011261035a5760206040517e8b9b1e5fa9cf3b14f87f435649268146305ddf689f082e5961a335b07a9abf8152f35b3461035a575f36600319011261035a576001546040516001600160a01b039091168152602090f35b3461035a5760206107ac610f3836610de2565b915f526004845260405f2061242d565b3461035a57604036600319011261035a57602060ff610f9a602435610f6c8161042a565b6004355f525f805160206135ec833981519152845260405f209060018060a01b03165f5260205260405f2090565b54166040519015158152f35b3461035a57606036600319011261035a57602435610fc38161042a565b60443565ffffffffffff8116810361035a577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633036106025761102f6105e5926004355f52600560205260405f209060018060a01b03165f5260205260405f2090565b6122f5565b3461035a575f36600319011261035a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461035a57604036600319011261035a576004356110958161042a565b6024356001600160401b03811161035a575f916110b783923690600401610c1d565b90816040519283928337810184815203915af46111046110d5611b60565b916110f66040519384921515602084015260408084015260608301906104a4565b03601f19810183528261067e565b805190602001fd5b3461035a575f36600319011261035a5760206040515f8152f35b3461035a57606036600319011261035a576024356004356111468261042a565b6044359161115261208a565b5f8281526005602090815260408083206001600160a01b0385168452909152902061117c906128d7565b838114610926577f739a5a3ec0ff71e2386d0013deac5f44e0935a98def2e2a5ddf9a709518c8294916111ef61123c92855f52600460205260405f20906111e9886111e46111c942612d7a565b936111df610c188c5f52600460205260405f2090565b611bb6565b611bd1565b91612176565b5050611220856103e68361120b885f52600560205260405f2090565b9060018060a01b03165f5260205260405f2090565b50506040519485526001600160a01b0316939081906020820190565b0390a3005b606090600319011261035a576004356112598161042a565b906024359060443565ffffffffffff8116810361035a5790565b3461035a576104f96104e561128736611241565b91611bde565b3461035a575f36600319011261035a5760206040516001600160401b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461035a575f36600319011261035a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461035a57602036600319011261035a576004355f52600460205260206107ac60405f206128d7565b3461035a57602036600319011261035a576004355f526002602052602060405f2054604051908152f35b3461035a57604036600319011261035a5761092460243560043561138a8261042a565b805f525f805160206135ec8339815191526020526113ae600160405f2001546120e1565b612845565b3461035a576104f96104e56113c736611241565b91611c28565b3461035a5760206107ac6113e03661071c565b92919091611d24565b3461035a5760a036600319011261035a576024356004356114098261042a565b60443591611415610450565b90608435906001600160401b03821161035a57611437600492369084016106d6565b61143f612505565b5f5460209061146490611458906001600160a01b031681565b6001600160a01b031690565b60405163b134427160e01b815294859182905afa928315610979575f936115a3575b506001600160a01b039283163303611591576001546001600160a01b0316838116611506575b50506040805195865265ffffffffffff909316602086015216927f741a5de99085c0d660f3e4192217b0ffb0ea4e35a0480de48e857a4bc3ee36ed91819081015b0390a361092460015f8051602061360c83398151915255565b90936040519461153d8661152f602082019363724ab0f760e11b8552858c898d60248701611eae565b03601f19810188528761067e565b62042e305a1061157f575f6114ed938192827f741a5de99085c0d660f3e4192217b0ffb0ea4e35a0480de48e857a4bc3ee36ed9951926203d090f150936114ac565b604051638072475160e01b8152600490fd5b60405163dabc4ad960e01b8152600490fd5b6115c691935060203d6020116115cd575b6115be818361067e565b810190611872565b915f611486565b503d6115b4565b3461035a575f36600319011261035a5760206040517f1312a1cf530e56add9be4fd84db9051dcc7635952f09f735f9a29405b55846258152f35b3461035a57604036600319011261035a5761162761043b565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163303610602576105e5906004355f52600460205260405f206122f5565b3461035a575f36600319011261035a575f546040516001600160a01b039091168152602090f35b3461035a57604036600319011261035a5760206107ac6024356116b78161042a565b600435611f04565b3461035a575f36600319011261035a5760206040516203d0908152f35b3461035a575f36600319011261035a57602060405160018152f35b5190811515820361035a57565b519063ffffffff8216820361035a57565b919082604091031261035a5761076b602061172f846116f7565b9301611704565b906117869165ffffffffffff6117959496956060976040519463130f67dd60e31b6020870152602486015260018060a01b031660448501521660648301526064825261178182610663565b612238565b60208082518301019101611715565b9061179d5750565b90915063ffffffff604051911660208201526020815261076b81610628565b5f9081526005602090815260408083206001600160a01b0390941683529290522061076b92919061242d565b9081602091031261035a5761076b906116f7565b6040513d5f823e3d90fd5b81601f8201121561035a5780519061181e826106bb565b9261182c604051948561067e565b8284526020838301011161035a57815f9260208093018386015e8301015290565b9060208282031261035a5781516001600160401b03811161035a5761076b9201611807565b9081602091031261035a575161076b8161042a565b9061076b91602081526118a6825160a0602084015260c08301906104a4565b9060a060806118f46118e16118cd602088015196601f1997888883030160408901526104a4565b6040880151878783030160608801526104a4565b60608701518686830301848701526104a4565b94015192828503019101526104a4565b604051630df8851f60e11b81526001600160a01b03828116600483015260248201849052848116604483015265ffffffffffff8616606483015295606095909491935f856084817f00000000000000000000000000000000000000000000000000000000000000008c165afa948515610979575f95611b18575b5060405163fbfa77cf60e01b8152602081600481888d165afa908115610979576119ea995f9285928491611af9575b5060405163192c0ff760e21b81526001600160a01b03909116600482015265ffffffffffff909216602483015290998a9190829081906044820190565b03917f0000000000000000000000000000000000000000000000000000000000000000165afa978815610979575f98611acf575b509081611a3b82611a3381611a419689611c28565b958388611736565b94611bde565b90835115801590611ac5575b8015611abb575b8015611ab1575b8015611aa7575b611a6f5750505050909150565b6110f6955061076b9496611a8161069f565b948552602085015260408401526060830152608082015260405192839160208301611887565b5081511515611a62565b5082511515611a5b565b5080511515611a54565b5086511515611a4d565b611a4192919850611af1903d805f833e611ae9818361067e565b81019061184d565b979091611a1e565b611b12915060203d6020116115cd576115be818361067e565b5f6119ad565b611b2d9195503d805f833e611ae9818361067e565b935f61197e565b9061076b92915f52600360205260405f2061242d565b9061076b92915f52600460205260405f2061242d565b3d15611b8a573d90611b71826106bb565b91611b7f604051938461067e565b82523d5f602084013e565b606090565b634e487b7160e01b5f52601160045260245ffd5b5f19810191908211611bb157565b611b8f565b91908203918211611bb157565b9060018201809211611bb157565b91908201809211611bb157565b60405163ed4d89e560e01b6020820152602481019290925265ffffffffffff909216604482015260609291611795916117869161178182606481015b03601f19810184528361067e565b604051630cbd53f560e11b6020820152602481019290925265ffffffffffff90921660448201526060929161179591611786916117818260648101611c1a565b60405190611c7582610628565b60606020838281520152565b9060208282031261035a5781516001600160401b039283821161035a57019060408282031261035a5760405192611cb784610628565b825181811161035a5782611ccc918501611807565b8452602083015190811161035a57611ce49201611807565b602082015290565b6001600160a01b0391821681529116602082015265ffffffffffff909116604082015260806060820181905261076b929101906104a4565b92611d3490929192828486612bb5565b929093611d3f611c68565b93805180611e92575b50508415938415611dfc575b8415611d6b575b50505050611d665790565b505f90565b602080949550611d96910151604051958694859463530e1d4360e01b865260601c9060048601611cec565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa908115610979575f91611ddd575b50155f808080611d5b565b611df6915060203d60201161097257610964818361067e565b5f611dd2565b5f549094506001600160a01b0316602084865192611e2f604051948593849363530e1d4360e01b85528960048601611cec565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa908115610979575f91611e73575b501593611d54565b611e8c915060203d60201161097257610964818361067e565b5f611e6b565b611ea6929550602080918301019101611c81565b925f80611d48565b919360a09361076b969565ffffffffffff938552600180871b03166020850152604084015216606082015281608082015201906104a4565b8115611ef0570490565b634e487b7160e01b5f52601260045260245ffd5b5f546040516308834cb560e21b8082526001600160a01b0385811660048401529283166024830152929392602092909183816044817f000000000000000000000000000000000000000000000000000000000000000086165afa908115610979575f91612011575b5015918215611f8d575b50509050611f875761076b91612cc5565b50505f90565b6040519081526001600160a01b0385166004820152606086901c602482015291508290829060449082907f0000000000000000000000000000000000000000000000000000000000000000165afa918215610979575f92611ff4575b505015805f80611f76565b61200a9250803d1061097257610964818361067e565b5f80611fe9565b6120289150843d861161097257610964818361067e565b5f611f6c565b335f9081527f72a65082a5691803ab2b62c9bc729b34205ba1b183d950896526b2fd8714d0c7602052604090207e8b9b1e5fa9cf3b14f87f435649268146305ddf689f082e5961a335b07a9abf9060ff905b541615610b8a5750565b335f9081527f8f2dae99798887da307a4daa2c2d11f840b0cb9a6a67822660c531e9ad14dd00602052604090207f1312a1cf530e56add9be4fd84db9051dcc7635952f09f735f9a29405b55846259060ff90612080565b5f8181525f805160206135ec83398151915260209081526040808320338452909152902060ff90612080565b634e487b7160e01b5f52603260045260245ffd5b8054821015612136575f5260205f2001905f90565b61210d565b90815491600160401b831015610643578261215e9160016106ac95018155612121565b90919082549060031b91821b915f19901b1916179055565b90929192600182019081548015612208575b508461219384612dac565b509490928454936121a3836128d7565b96816121f3575b50156121d0575050505f198101908111611bb15761215e85916121cc93612121565b9190565b6121cc9492936121ec926001600160d01b0390911691906134a7565b505061213b565b65ffffffffffff83811691161490505f6121aa565b600160401b811015610643578060016122249201845583612121565b8154905f199060031b1b191690555f612188565b5f9190829160405161226d816110f66020820194639f86fd8560e01b86523060248401526040604484015260648301906104a4565b51915afa5061227a611b60565b8051810160408282031261035a57612294602083016116f7565b916040810151916001600160401b03831161035a576122ba926020809201920101611807565b90156122c35790565b805190811561035a57602001fd5b906040516122de81610628565b915465ffffffffffff8116835260301c6020830152565b91908254905f82916005841161239d575b612311935085612f2e565b9081156123915761238a61238161237b61237161234361233e61233388611ba3565b895f5260205f200190565b6122d1565b96600161236a602061235b8b5165ffffffffffff1690565b9a01516001600160d01b031690565b9101612121565b90549060031b1c90565b93611ba3565b63ffffffff1690565b6001939291565b5f925082915081908190565b91926123a881612dfb565b8103908111611bb15761231193865f526123dc6123d18360205f200165ffffffffffff90541690565b65ffffffffffff1690565b65ffffffffffff851610156123f2575091612306565b9291506123fe90611bc3565b90612306565b9081602091031261035a5761076b90611704565b90600163ffffffff80931601918211611bb157565b918051156124fb578060208061244893518301019101612404565b916124538382613060565b92612464845165ffffffffffff1690565b9065ffffffffffff80851692168281146124ef578211918261249a575b50506124915761076b9250612f90565b50506020015190565b9091506124a78354611ba3565b63ffffffff8316149182156124c0575b50505f80612481565b6124e79192506124db6124d56123d192612418565b85613060565b5165ffffffffffff1690565b115f806124b7565b50505050506020015190565b5061076b91612f90565b5f8051602061360c83398151915260028154146125225760029055565b604051633ee5aeb560e01b8152600490fd5b90815f52600360205260405f208161254b82612dac565b9193905083156125a95761256b916001600160d01b031690600101612121565b90549060031b1c5b8261259f575b5050612583575050565b61259b915f52600360205260405f206103ef42612d7a565b5050565b119050815f612579565b50505f612573565b6001600160a01b0381165f9081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d60205260409020545f805160206135ec8339815191529060ff16611f87575f808052602091825260408082206001600160a01b038516835290925220805460ff1916600117905533906001600160a01b03165f7f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d8180a4600190565b6001600160a01b0381165f9081527f9ebbcbe0d2961d3fbe56ca6f679bc753bd848d3e6bb3eaf9041c51b286881d2c602052604090207fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c905f805160206135ec8339815191529060ff905b541661272b575f828152602091825260408082206001600160a01b038616835290925220805460ff1916600117905533916001600160a01b0316907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d5f80a4600190565b5050505f90565b6001600160a01b0381165f9081527f72a65082a5691803ab2b62c9bc729b34205ba1b183d950896526b2fd8714d0c7602052604090207e8b9b1e5fa9cf3b14f87f435649268146305ddf689f082e5961a335b07a9abf905f805160206135ec8339815191529060ff906126c7565b6001600160a01b0381165f9081527f8f2dae99798887da307a4daa2c2d11f840b0cb9a6a67822660c531e9ad14dd00602052604090207f1312a1cf530e56add9be4fd84db9051dcc7635952f09f735f9a29405b5584625905f805160206135ec8339815191529060ff906126c7565b5f8181525f805160206135ec833981519152602081815260408084206001600160a01b038716855290915290912060ff906126c7565b5f8181525f805160206135ec833981519152602081815260408084206001600160a01b03871685529091529091205460ff161561272b575f828152602091825260408082206001600160a01b038616835290925220805460ff1916905533916001600160a01b0316907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b5f80a4600190565b8054806128fc57505f5b6001600160d01b03811615611f875760016123719201612121565b5f19908082810111611bb157825f5260205f2001015460301c6128e1565b91909160408184031261035a5780356129328161042a565b9260208201356001600160401b03811161035a5761076b92016106d6565b61295c9181019061291a565b6040516302910f8b60e31b81526001600160a01b039283166004820181905291906020816024817f000000000000000000000000000000000000000000000000000000000000000088165afa908115610979575f91612a6f575b5015612a5d576129f16040916129ec612a37946129d16130c8565b60018060a01b03166001600160601b0360a01b5f5416175f55565b613248565b6020810151600180546001600160a01b0319166001600160a01b0390921691909117905580516001600160a01b0316848116612a4d575b5001516001600160a01b031690565b908116612a415750565b612a4a9061265c565b50565b612a56906125b1565b505f612a28565b6040516362df054560e01b8152600490fd5b612a88915060203d60201161097257610964818361067e565b5f6129b6565b6040519060a082018281106001600160401b038211176106435760405281608060609182815282602082015282604082015282808201520152565b9060208282031261035a5781516001600160401b039283821161035a57019060a08282031261035a57612afa61069f565b92825181811161035a5782612b10918501611807565b8452602083015181811161035a5782612b2a918501611807565b6020850152604083015181811161035a5782612b47918501611807565b6040850152606083015181811161035a5782612b64918501611807565b6060850152608083015190811161035a57612b7f9201611807565b608082015290565b9081602091031261035a575190565b60409065ffffffffffff61076b949316815281602082015201906104a4565b91939293612bc1612a8e565b94805180612ca9575b5050612bdb60608601518285611b4a565b9182612bed57505050509051905f9190565b612c01612c3b9183608089015191876117bc565b916020612c1a6114586114585f5460018060a01b031690565b8189015190604051808096819463810da75d60e01b83528760048401612b96565b03915afa801561097957612c7195612c6b935f92612c76575b50612c65919260408a015191611b34565b906133a8565b906133ba565b915190565b612c659250612c9c9060203d602011612ca2575b612c94818361067e565b810190612b87565b91612c54565b503d612c8a565b612cbd929650602080918301019101612ac9565b935f80612bca565b90612cdb610c18835f52600460205260405f2090565b9081612ce8575050505f90565b610c18612d019161120b855f52600560205260405f2090565b5f5460405163bd49c35f60e01b815290602090829060049082906001600160a01b03165afa80156109795761076b94612c6b925f92612d51575b50610c18612c65915f52600360205260405f2090565b612c65919250612d72610c189160203d602011612ca257612c94818361067e565b929150612d3b565b65ffffffffffff90818111612d8d571690565b604490604051906306dfcc6560e41b8252603060048301526024820152fd5b805480612dbd5750505f905f905f90565b5f19908082810111611bb157612dda925f5260205f2001016122d1565b9065ffffffffffff82511691602060018060d01b0391015116906001929190565b8015611d665780612c65612ec6612ebc612eb2612ea8612e9e612e94612e8a600161076b9a5f908b60801c80612f22575b508060401c80612f15575b508060201c80612f08575b508060101c80612efb575b508060081c80612eee575b508060041c80612ee1575b508060021c80612ed4575b50821c612ecd575b811c1b612e83818b611ee6565b0160011c90565b612e83818a611ee6565b612e838189611ee6565b612e838188611ee6565b612e838187611ee6565b612e838186611ee6565b612e838185611ee6565b8092611ee6565b8101612e76565b600291509101905f612e6e565b600491509101905f612e63565b600891509101905f612e58565b601091509101905f612e4d565b602091509101905f612e42565b604091509101905f612e37565b9150506080905f612e2c565b91905b838210612f3e5750505090565b909192808316906001818518811c8301809311611bb157855f5265ffffffffffff808460205f20015416908516105f14612f7d575050925b9190612f31565b909493508101809111611bb15791612f76565b908154905f829160058411612ffa575b612fab935084612f2e565b80612fd357505f905b6001600160d01b03821615611f875761076b9160016123719201612121565b612fed612fe2612ff492611ba3565b835f5260205f200190565b5460301c90565b90612fb4565b919261300581612dfb565b8103908111611bb157612fab93855f5265ffffffffffff808360205f20015416908516105f14613036575091612fa0565b92915061304290611bc3565b90612fa0565b6040519061305582610628565b5f6020838281520152565b906130896130836130aa92613073613048565b5061307c613048565b5084612121565b506122d1565b91600165ffffffffffff845116936020828060d01b03910151169101612121565b905490604051926130ba84610628565b835260031b1c602082015290565b6130d06135bd565b6130d86135bd565b60015f8051602061360c83398151915255565b604051906130f882610648565b5f6040838281528260208201520152565b81601f8201121561035a578051916020916001600160401b038411610643578360051b906040519461313d8584018761067e565b8552838086019282010192831161035a578301905b828210613160575050505090565b838091835161316e8161042a565b815201910190613152565b9060208282031261035a5781516001600160401b039283821161035a5701908181039260a0841261035a576060604051946131b386610648565b1261035a576040516131c481610648565b83516131cf8161042a565b815260208401516131df8161042a565b602082015260408401516131f28161042a565b60408201528452606083015181811161035a5782613211918501613109565b6020850152608083015190811161035a5761322c9201613109565b604082015290565b80518210156121365760209160051b010190565b613264906132546130eb565b5060208082518301019101613179565b8051519091906001600160a01b0316158061338e575b61337c579060208101905f5b82518051821015613300576114586132a1836132ae93613234565b516001600160a01b031690565b156132ee576132d06132cc6132c76132a1848751613234565b612732565b1590565b6132dc57600101613286565b604051635140fefd60e11b8152600490fd5b6040516323cda06760e01b8152600490fd5b506040925050818101905f5b82518051821015613373576114586132a18361332793613234565b15613362576133456132cc6133406132a1848751613234565b6127a0565b6133515760010161330c565b8351635140fefd60e11b8152600490fd5b83516323cda06760e01b8152600490fd5b50509150505190565b6040516303501f5960e11b8152600490fd5b50602082015151158061327a57506040820151511561327a565b90808210156133b5575090565b905090565b9091828202915f198482099383808610950394808603951461343f578483111561342d57829109815f038216809204600280826003021880830282030280830282030280830282030280830282030280830282030280920290030293600183805f03040190848311900302920304170290565b60405163227bc15360e01b8152600490fd5b50509061076b9250611ee6565b8054600160401b8110156106435761346991600182018155612121565b61349457815160209092015160301b65ffffffffffff191665ffffffffffff92909216919091179055565b634e487b7160e01b5f525f60045260245ffd5b805492939291908215613594576134c361233e612fe285611ba3565b906134d4825165ffffffffffff1690565b65ffffffffffff84811691168110613582576121cc9460209488926135026123d1875165ffffffffffff1690565b0361354a575061353c9261351861352392611ba3565b905f5260205f200190565b9065ffffffffffff82549181199060301b169116179055565b01516001600160d01b031690565b91505061357d9161356a61355c6106ae565b65ffffffffffff9093168352565b6001600160d01b0388168286015261344c565b61353c565b604051632520601d60e01b8152600490fd5b6135b892506135a461355c6106ae565b6001600160d01b038516602083015261344c565b5f9190565b60ff5f8051602061362c8339815191525460401c16156135d957565b604051631afcd79f60e31b8152600490fdfe02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268009b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a2646970667358221220dc71151e359446372f65ddedaab6f31862570ef5d8ce33546dbf0285e530953a64736f6c63430008190033","sourceMap":"3228:4636:86:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;;;;;-1:-1:-1;;3228:4636:86;;;;;;;;;;;;;;;;;;-1:-1:-1;;;3551:47:24;;;:87;;;;3228:4636:86;;;;;;;;;;3551:87:24;-1:-1:-1;;;1133:40:30;;-1:-1:-1;3551:87:24;;;3228:4636:86;-1:-1:-1;3228:4636:86;;;;;;;;;;;;;;;;;;;;3202:4:24;;;:::i;:::-;3228:4636:86;-1:-1:-1;3228:4636:86;3610:15:83;3228:4636:86;;;-1:-1:-1;3228:4636:86;;3601:36:83;;3597:98;;3228:4636:86;-1:-1:-1;3228:4636:86;2233:13:83;3228:4636:86;;;2233:34:83;3228:4636:86;-1:-1:-1;3228:4636:86;2233:34:83;:::i;:::-;3709;3705:84;;3799:25;3871:35;3799:25;:56;3871:35;3799:25;;;3228:4636:86;;2233:13:83;3228:4636:86;;;;;;;3799:25:83;819:34:63;837:15;819:34;:::i;:::-;3799:56:83;;:::i;:::-;-1:-1:-1;;3228:4636:86;;;;;;;;;;;;3871:35:83;;;;3228:4636:86;3705:84:83;3228:4636:86;-1:-1:-1;;;3766:12:83;;3228:4636:86;;3766:12:83;3597:98;3228:4636:86;-1:-1:-1;;;3660:24:83;;3228:4636:86;;3660:24:83;3228:4636:86;-1:-1:-1;;;;;3228:4636:86;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;3228:4636:86;;;;;;;;-1:-1:-1;;3228:4636:86;;;;:::o;:::-;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;3228:4636:86;;;;;;1537:38:81;-1:-1:-1;;;;;3228:4636:86;;;;;;;;;;;;-1:-1:-1;;3228:4636:86;;;;;;1632:54:81;-1:-1:-1;;;;;3228:4636:86;;;;;;;;;;;;-1:-1:-1;;3228:4636:86;;;;;;:::i;:::-;449:5:87;-1:-1:-1;;;;;3228:4636:86;435:10:87;:19;431:71;;4041:64:86;3228:4636;;;-1:-1:-1;3228:4636:86;4041:13;3228:4636;;;-1:-1:-1;3228:4636:86;4041:64;:::i;:::-;3228:4636;;;;;;;;;;;;;;;;;;;-1:-1:-1;;3228:4636:86;431:71:87;3228:4636:86;;-1:-1:-1;;;477:14:87;;3228:4636:86;;477:14:87;3228:4636:86;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3228:4636:86;;;;;;;:::o;:::-;;:::i;:::-;;;;;;;-1:-1:-1;;;;;3228:4636:86;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;3228:4636:86;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;3228:4636:86;;;;;;;:::o;:::-;;;;;;;:::i;:::-;:::o;:::-;;;;;;;:::i;:::-;-1:-1:-1;;;;;3228:4636:86;;;;;;-1:-1:-1;;3228:4636:86;;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;3228:4636:86;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;3228:4636:86;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;-1:-1:-1;;;;;3228:4636:86;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;3090:79:83;:44;3228:4636:86;;;:::i;:::-;;;;;-1:-1:-1;3228:4636:86;3090:22:83;3228:4636:86;;;-1:-1:-1;3228:4636:86;;;;;;;;;;;;;;;;;3090:44:83;:79;:::i;:::-;3228:4636:86;;;;;;;;;;;;-1:-1:-1;;3228:4636:86;;;;;;1743:56:81;-1:-1:-1;;;;;3228:4636:86;;;;;;;;;;;;-1:-1:-1;;3228:4636:86;;;;;;-1:-1:-1;;;;;3228:4636:86;;;;;;;;3217:103:29;;;:::i;:::-;3228:4636:86;;-1:-1:-1;;;4285:48:81;;4322:10;3228:4636:86;4285:48:81;;3228:4636:86;;;;;-1:-1:-1;;;;;4295:16:81;3228:4636:86;4285:48:81;;;;;;;-1:-1:-1;4285:48:81;;;3228:4636:86;4284:49:81;;4280:99;;-1:-1:-1;;;;;3228:4636:86;-1:-1:-1;;4322:10:81;297:2:93;3228:4636:86;;267:46:93;4459:27:81;;;;3228:4636:86;;4459:15:81;3228:4636:86;;;;;;;4459:27:81;3228:4636:86;4459:37:81;4455:87;;4654:38;4552:27;4654:38;4552:27;;;3228:4636:86;;4459:15:81;3228:4636:86;;;;;;;4552:27:81;3228:4636:86;4631:6:81;;;;:::i;:::-;3228:4636:86;;;;;;;;;;;;;4654:38:81;;;;3282:1:29;1805;-1:-1:-1;;;;;;;;;;;3228:4636:86;3716:283:29;3282:1;3228:4636:86;4455:87:81;3228:4636:86;;-1:-1:-1;;;4519:12:81;;3228:4636:86;;4519:12:81;4280:99;3228:4636:86;;-1:-1:-1;;;4356:12:81;;3228:4636:86;;4356:12:81;4285:48;;;;3228:4636:86;4285:48:81;3228:4636:86;4285:48:81;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;:::i;3228:4636:86:-;;;;;;-1:-1:-1;;3228:4636:86;;;;;;-1:-1:-1;3228:4636:86;-1:-1:-1;;;;;;;;;;;3228:4636:86;;;4919:24:24;3228:4636:86;-1:-1:-1;3228:4636:86;4919:24:24;3228:4636:86;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;-1:-1:-1;;3228:4636:86;;;;;;322:32:74;-1:-1:-1;;;;;3228:4636:86;;;;;;;;;;;;-1:-1:-1;;3228:4636:86;;;;5350:25:24;3228:4636:86;;;;;;;:::i;:::-;;-1:-1:-1;3228:4636:86;-1:-1:-1;;;;;;;;;;;3228:4636:86;;3202:4:24;4919:24;3228:4636:86;-1:-1:-1;3228:4636:86;4919:24:24;3228:4636:86;3202:4:24;:::i;:::-;5350:25;:::i;3228:4636:86:-;;;;;;-1:-1:-1;;3228:4636:86;;;;;;;;;:::i;:::-;966:10:28;-1:-1:-1;;;;;3228:4636:86;;6441:34:24;6437:102;;6549:37;3228:4636:86;;;6549:37:24;:::i;6437:102::-;3228:4636:86;;-1:-1:-1;;;6498:30:24;;3228:4636:86;;6498:30:24;3228:4636:86;;;;;;-1:-1:-1;;3228:4636:86;;;;;;;;;:::i;:::-;3217:103:29;;:::i;:::-;966:10:28;-1:-1:-1;3228:4636:86;;;;;;;;;;1356:26:81;;3228:4636:86;;4468:23:24;4464:108;;-1:-1:-1;4861:4:81;3228:4636:86;-1:-1:-1;;;;;3228:4636:86;;;;;;4861:13:81;;4857:63;;-1:-1:-1;;;;;;3228:4636:86;;;4861:4:81;3228:4636:86;4958:14:81;-1:-1:-1;;4958:14:81;4861:4;-1:-1:-1;;;;;;;;;;;3228:4636:86;;4464:108:24;3228:4636:86;;;;4514:47:24;;;;;;966:10:28;3228:4636:86;4514:47:24;;3228:4636:86;;;;;4514:47:24;3228:4636:86;;;;;;-1:-1:-1;;3228:4636:86;;;;;;-1:-1:-1;3228:4636:86;2233:13:83;3228:4636:86;;;2233:34:83;3228:4636:86;-1:-1:-1;3228:4636:86;2233:34:83;:::i;3228:4636:86:-;;;;;;-1:-1:-1;;3228:4636:86;;;;;3358:53:83;:44;3228:4636:86;;;;;:::i;:::-;;;-1:-1:-1;3228:4636:86;3358:22:83;3228:4636:86;;;-1:-1:-1;3228:4636:86;;;;;;;;;;;;;;;;;3358:44:83;:53;:::i;3228:4636:86:-;;;;;;;;;;;;;-1:-1:-1;;;;;3228:4636:86;;;;;;;;;;;;;;;:::o;:::-;;;;;;-1:-1:-1;;3228:4636:86;;;;-1:-1:-1;;;;;3228:4636:86;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;3228:4636:86;;;;;;;4301:16:26;3228:4636:86;;4726:16:26;;:34;;;;3228:4636:86;4805:1:26;4790:16;:50;;;;3228:4636:86;4855:13:26;:30;;;;3228:4636:86;4851:91:26;;;-1:-1:-1;;;;;;;;;;;3228:4636:86;;-1:-1:-1;;3228:4636:86;;;;;718:4:74;;4951:18:26;4979:67;;718:4:74;:::i;:::-;5066:101:26;;3228:4636:86;5066:101:26;-1:-1:-1;;;;;;;;;;;3228:4636:86;;-1:-1:-1;;;;3228:4636:86;;;;;-1:-1:-1;3228:4636:86;;5142:14:26;;3228:4636:86;;5142:14:26;3228:4636:86;4979:67:26;-1:-1:-1;;;;;;;;;;;3228:4636:86;;-1:-1:-1;;;;3228:4636:86;-1:-1:-1;;;3228:4636:86;;;718:4:74;:::i;4851:91:26:-;3228:4636:86;;-1:-1:-1;;;4908:23:26;;3228:4636:86;;4908:23:26;4855:30;4872:13;;;4855:30;;;4790:50;4818:4;4810:25;:30;;-1:-1:-1;4790:50:26;;4726:34;;;-1:-1:-1;4726:34:26;;3228:4636:86;;;;;;-1:-1:-1;;3228:4636:86;;;;;;3406:36;-1:-1:-1;;;;;3228:4636:86;;;;;;;;;;;;-1:-1:-1;;3228:4636:86;;;;;;;1253:6:81;3228:4636:86;;;;;-1:-1:-1;;3228:4636:86;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3228:4636:86;;;;;;;;;:::i;:::-;;;;;1997:60:83;3228:4636:86;;;:::i;:::-;;-1:-1:-1;3228:4636:86;1997:13:83;3228:4636:86;;;-1:-1:-1;3228:4636:86;1997:60:83;:::i;3228:4636:86:-;;;;;;-1:-1:-1;;3228:4636:86;;;;;;;1356:26:81;3228:4636:86;;;;;;;;;-1:-1:-1;;3228:4636:86;;;;;;3355:45;-1:-1:-1;;;;;3228:4636:86;;;;;;;;;;;;-1:-1:-1;;3228:4636:86;;;;;;;810:35:83;3228:4636:86;;;;;;;;;-1:-1:-1;;3228:4636:86;;;;;;;;-1:-1:-1;;;;;3228:4636:86;;;;;;;;;;;;;2512:74:83;3228:4636:86;;;:::i;:::-;;-1:-1:-1;3228:4636:86;;;;;-1:-1:-1;3228:4636:86;2512:74:83;:::i;3228:4636:86:-;;;;;;-1:-1:-1;;3228:4636:86;;;;;;3901:31:24;3228:4636:86;;;;;:::i;:::-;;;-1:-1:-1;3228:4636:86;-1:-1:-1;;;;;;;;;;;3228:4636:86;;;-1:-1:-1;3228:4636:86;;;;;;;;;;;;;;;;;3901:31:24;3228:4636:86;;;;;;;;;;;;;;;;-1:-1:-1;;3228:4636:86;;;;;;;;;:::i;:::-;;;;;;;;;;449:5:87;-1:-1:-1;;;;;3228:4636:86;435:10:87;:19;431:71;;4852:44:86;:83;3228:4636;;;-1:-1:-1;3228:4636:86;4852:22;3228:4636;;;-1:-1:-1;3228:4636:86;;;;;;;;;;;;;;;;;4852:44;:83;:::i;3228:4636::-;;;;;;-1:-1:-1;;3228:4636:86;;;;;;3448:45;-1:-1:-1;;;;;3228:4636:86;;;;;;;;;;;;-1:-1:-1;;3228:4636:86;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;3228:4636:86;;;;-1:-1:-1;3228:4636:86;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;416:25:80;;;;477:31;416:25;;:::i;:::-;3228:4636:86;;;;;;;;;;477:31:80;;3228:4636:86;;;;;;;;;;;:::i;:::-;477:31:80;3228:4636:86;;477:31:80;;;;;;:::i;:::-;518:79;;;3228:4636:86;518:79:80;;3228:4636:86;;;;;;-1:-1:-1;;3228:4636:86;;;;;;;;;;;;;;;;;-1:-1:-1;;3228:4636:86;;;;;;;;;;;:::i;:::-;;;3202:4:24;;;:::i;:::-;-1:-1:-1;3228:4636:86;;;3358:22:83;3228:4636:86;;;;;;;;-1:-1:-1;;;;;3228:4636:86;;;;;;;;;3358:53:83;;;:::i;:::-;4249:32;;;4245:82;;4596:54;3228:4636:86;4337:158:83;4596:54;3228:4636:86;;-1:-1:-1;3228:4636:86;;;;;-1:-1:-1;3228:4636:86;837:15:63;4413:72:83;837:15:63;4413:63:83;819:34:63;837:15;819:34;:::i;:::-;2776:39:83;:48;:39;;3228:4636:86;;;;;;;;;;2776:48:83;4413:63;:::i;:::-;:72;:::i;:::-;4337:158;;:::i;:::-;4505:34;;:75;:34;:44;:34;;;3228:4636:86;;3358:22:83;3228:4636:86;;;;;;;4505:34:83;3228:4636:86;;;;;;;;;;;;;;;;4505:75:83;-1:-1:-1;;3228:4636:86;;;;;-1:-1:-1;;;;;3228:4636:86;;;;;;;;;;4596:54:83;;;;3228:4636:86;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;-1:-1:-1;;3228:4636:86;;;;;;;-1:-1:-1;;;;;404:28:74;3228:4636:86;;;;;;;;;;-1:-1:-1;;3228:4636:86;;;;;;1439:41:81;-1:-1:-1;;;;;3228:4636:86;;;;;;;;;;;;-1:-1:-1;;3228:4636:86;;;;;;-1:-1:-1;3228:4636:86;;;;;2776:48:83;3228:4636:86;-1:-1:-1;3228:4636:86;2776:48:83;:::i;3228:4636:86:-;;;;;;-1:-1:-1;;3228:4636:86;;;;;;-1:-1:-1;3228:4636:86;2009:67:81;3228:4636:86;;;;-1:-1:-1;3228:4636:86;;;;;;;;;;;;;;-1:-1:-1;;3228:4636:86;;;;5767:26:24;3228:4636:86;;;;;;;:::i;:::-;;-1:-1:-1;3228:4636:86;-1:-1:-1;;;;;;;;;;;3228:4636:86;;3202:4:24;4919:24;3228:4636:86;-1:-1:-1;3228:4636:86;4919:24:24;3228:4636:86;3202:4:24;:::i;:::-;5767:26;:::i;3228:4636:86:-;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;-1:-1:-1;;3228:4636:86;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;-1:-1:-1;;;;;3228:4636:86;;;;;;;;;;;;:::i;:::-;3217:103:29;;:::i;:::-;-1:-1:-1;3228:4636:86;;;5246:21:81;;:13;;-1:-1:-1;;;;;3228:4636:86;5246:13:81;3228:4636:86;;-1:-1:-1;;;;;3228:4636:86;;;5246:21:81;3228:4636:86;;-1:-1:-1;;;5246:23:81;;3228:4636:86;;;;;5246:23:81;;;;;;;-1:-1:-1;5246:23:81;;;3228:4636:86;-1:-1:-1;;;;;;3228:4636:86;;;5232:10:81;:37;5228:87;;5341:4;3228:4636:86;-1:-1:-1;;;;;3228:4636:86;;;;5355:469:81;;3228:4636:86;-1:-1:-1;;3228:4636:86;;;;;;;;;;;;;;;;5839:55:81;;3228:4636:86;;;;5839:55:81;;;;3282:1:29;1805;-1:-1:-1;;;;;;;;;;;3228:4636:86;3716:283:29;5355:469:81;3228:4636:86;;;;5435:94:81;;;;3228:4636:86;5435:94:81;;;;;;;;;;;;3228:4636:86;5435:94:81;;;:::i;:::-;;3228:4636:86;;5435:94:81;;;;;;:::i;:::-;3228:4636:86;5548:9:81;:51;5544:118;;-1:-1:-1;5839:55:81;5676:138;;;;5839:55;5676:138;;;1150:7;5676:138;;5355:469;;;5544:118;3228:4636:86;;-1:-1:-1;;;5626:21:81;;3228:4636:86;;5626:21:81;5228:87;3228:4636:86;;-1:-1:-1;;;5292:12:81;;3228:4636:86;;5292:12:81;5246:23;;;;;3228:4636:86;5246:23:81;3228:4636:86;5246:23:81;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;3228:4636:86;;;;;;-1:-1:-1;;3228:4636:86;;;;;;;971:45:83;3228:4636:86;;;;;;;;;-1:-1:-1;;3228:4636:86;;;;;;:::i;:::-;449:5:87;-1:-1:-1;;;;;3228:4636:86;435:10:87;:19;431:71;;5753:78:86;3228:4636;;;-1:-1:-1;3228:4636:86;;;;;-1:-1:-1;3228:4636:86;5753:78;:::i;3228:4636::-;;;;;;-1:-1:-1;;3228:4636:86;;;;;;;;-1:-1:-1;;;;;3228:4636:86;;;;;;;;;;;;;;-1:-1:-1;;3228:4636:86;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;-1:-1:-1;;3228:4636:86;;;;;;;1150:7:81;3228:4636:86;;;;;;;;;-1:-1:-1;;3228:4636:86;;;;;;;2700:1:81;3228:4636:86;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;:::i;4948:596::-;;5195:233;4948:596;3228:4636;5171:295;4948:596;;;3228:4636;;;;5263:151;;;;;;;;;;;3228:4636;;;;;;;;;;;;;;;;;5263:151;;;;;:::i;:::-;5195:233;:::i;:::-;5263:151;3228:4636;;;5171:295;;;;;;:::i;:::-;5477:61;;;4948:596;:::o;5477:61::-;3228:4636;;;;;;;;5263:151;5510:17;;3228:4636;5263:151;5510:17;;;;;:::i;2897:279:83:-;-1:-1:-1;3228:4636:86;;;3090:22:83;3228:4636:86;;;;;;;;-1:-1:-1;;;;;3228:4636:86;;;;;;;;;3090:79:83;;2897:279;;3090:79;:::i;3228:4636:86:-;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;3228:4636:86;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;;;;3228:4636:86;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;6420:1442::-;3228:4636;;-1:-1:-1;;;6637:99:86;;-1:-1:-1;;;;;3228:4636:86;;;6637:99;;;3228:4636;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3228:4636:86;;;6656:20;3228:4636;;6637:99;;;;;;;;;;;6420:1442;-1:-1:-1;3228:4636:86;;-1:-1:-1;;;6830:32:86;;;3228:4636;6637:99;3228:4636;;;;6830:32;;;;;;;6790:84;6830:32;6637:99;6830:32;;;;;;;6420:1442;-1:-1:-1;3228:4636:86;;-1:-1:-1;;;6790:84:86;;-1:-1:-1;;;;;3228:4636:86;;;6637:99;6790:84;;3228:4636;;;;;;;;;;;;;-1:-1:-1;3228:4636:86;;;;;;;;;6790:84;;6801:11;;3228:4636;6790:84;;;;;;;6637:99;6790:84;;;6420:1442;6918:50;;;7020:69;6918:50;;;7146:64;6918:50;;;:::i;:::-;7020:69;;;;:::i;:::-;7146:64;;:::i;:::-;3228:4636;;;7238:21;;;:52;;;6420:1442;7238:85;;;;6420:1442;7238:143;;;;6420:1442;7238:190;;;;6420:1442;7221:635;;6420:1442;;;;;;;:::o;7221:635::-;7460:385;3228:4636;;7460:385;3228:4636;;;;:::i;:::-;;;;6830:32;7488:343;;3228:4636;;7488:343;;3228:4636;;7488:343;;3228:4636;7488:343;;;3228:4636;;;7460:385;;;6830:32;7460:385;;;:::i;7238:190::-;3228:4636;;;7385:43;;7238:190;;:143;3228:4636;;;7343:38;;7238:143;;:85;3228:4636;;;7294:29;;7238:85;;:52;3228:4636;;;7263:27;;7238:52;;6790:84;7146:64;6790:84;;;;;;;;6637:99;6790:84;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;6830:32;;;;;;;;;;;;;;:::i;:::-;;;;6637:99;;;;;;;;;;;;;;:::i;:::-;;;;;1869:195:83;;1997:60;1869:195;;-1:-1:-1;3228:4636:86;1997:13:83;3228:4636:86;;;-1:-1:-1;3228:4636:86;1997:60:83;:::i;2340:253::-;;2512:74;2340:253;;-1:-1:-1;3228:4636:86;2512:27:83;3228:4636:86;;;-1:-1:-1;3228:4636:86;2512:74:83;:::i;3228:4636:86:-;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;-1:-1:-1;3228:4636:86;;;;:::o;:::-;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;3228:4636:86;;;;;;;;:::o;:::-;;:::i;:::-;;;;;;;;;;:::o;:::-;;8889:1:91;3228:4636:86;;;;;;;:::o;:::-;;;;;;;;;;:::o;5844:570::-;3228:4636;;-1:-1:-1;;;6138:146:86;;;;;;;3228:4636;;;;;;;;;;;;;;5844:570;6046:290;;6070:228;;6138:146;3228:4636;;;;6138:146;;3228:4636;;6138:146;;;;;;:::i;4118:504::-;3228:4636;;-1:-1:-1;;;4398:94:86;;;;;;;3228:4636;;;;;;;;;;;;;;4118:504;4306:238;;4330:176;;4398:94;3228:4636;;;;4398:94;3228:4636;;;;;;;;:::i;:::-;;;;;;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;;;;3228:4636:86;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::o;:::-;-1:-1:-1;;;;;3228:4636:86;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;2764:920:81:-;;2978:48;2764:920;;;;2978:48;;;;:::i;:::-;3036:36;;;3228:4636:86;;:::i;:::-;;;;3086:20:81;3082:107;;2764:920;3216:11;;;;:193;;;;;2764:920;3216:394;;;;2764:920;3199:455;;;;;;2764:920;:::o;3199:455::-;3635:8;-1:-1:-1;3635:8:81;:::o;3216:394::-;3553:39;;;;;3430:180;3553:39;;;3228:4636:86;;;;;;;;;;3430:180:81;;467:2:93;3228:4636:86;3430:180:81;;;;;:::i;:::-;;3228:4636:86;3444:31:81;-1:-1:-1;;;;;3228:4636:86;3430:180:81;;;;;;;-1:-1:-1;3430:180:81;;;3216:394;3429:181;;3216:394;;;;;;3430:180;;;;3553:39;3430:180;3553:39;3430:180;;;;;;;:::i;:::-;;;;3216:193;-1:-1:-1;3228:4636:86;;;-1:-1:-1;;;;;;3228:4636:86;3248:161:81;3354:37;;;3228:4636:86;3248:161:81;3228:4636:86;;;;;;;;;;3248:161:81;;;;;;;:::i;:::-;;3228:4636:86;3262:29:81;-1:-1:-1;;;;;3228:4636:86;3248:161:81;;;;;;;-1:-1:-1;3248:161:81;;;3216:193;3247:162;;3216:193;;;3248:161;;;;;;;;;;;;;;:::i;:::-;;;;3082:107;3139:39;;;;;;;;;;;;;:::i;:::-;3082:107;;;;;3228:4636:86;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::o;:::-;;;;;;;;;;;;3740:389:81;3918:5;3228:4636:86;;;-1:-1:-1;;;3853:71:81;;;-1:-1:-1;;;;;3228:4636:86;;;3853:71:81;;;3228:4636:86;;;;;;;;3740:389:81;;3228:4636:86;3853:71:81;;3228:4636:86;;3853:71:81;3228:4636:86;;;3867:29:81;3228:4636:86;;3853:71:81;;;;;;;3918:5;3853:71;;;3740:389;3852:72;;3228:4636:86;;;3852:181:81;;3740:389;3835:242;;;;;;4094:28;;;:::i;3835:242::-;4058:8;;3918:5;4058:8;:::o;3852:181::-;3228:4636:86;;3945:88:81;;;-1:-1:-1;;;;;3228:4636:86;;3853:71:81;3945:88;;3228:4636:86;467:2:93;3228:4636:86;;;;;;;;-1:-1:-1;3228:4636:86;;;;;;;;3959:31:81;3228:4636:86;3945:88:81;;;;;;;3918:5;3945:88;;;3852:181;3944:89;;;3852:181;;;;;3945:88;;;;;;-1:-1:-1;3945:88:81;;;;;;:::i;:::-;;;;;3853:71;;;;;;;;;;;;;;:::i;:::-;;;;4148:103:24;966:10:28;-1:-1:-1;3228:4636:86;;;;;;;;;810:35:83;;3228:4636:86;;3901:31:24;3228:4636:86;;4468:23:24;4464:108;;4148:103;:::o;:::-;966:10:28;-1:-1:-1;3228:4636:86;;;;;;;;;971:45:83;;3228:4636:86;;3901:31:24;3228:4636:86;4148:103:24;-1:-1:-1;3228:4636:86;;;-1:-1:-1;;;;;;;;;;;3228:4636:86;;;;;;;;966:10:28;3228:4636:86;;;;;;;;;3901:31:24;3228:4636:86;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3228:4636:86;;-1:-1:-1;3228:4636:86;;;-1:-1:-1;3228:4636:86;:::o;:::-;;:::i;:::-;;;;;-1:-1:-1;;;3228:4636:86;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;6246:584:91;;;;;6360:12;;;3228:4636:86;;;6360:24:91;;6356:75;;6246:584;6474:30;;;;;:::i;:::-;3228:4636:86;;;;;;6578:12:91;;;;:::i;:::-;6604:24;;;;6246:584;-1:-1:-1;6600:188:91;;;-1:-1:-1;;;;;3228:4636:86;;;;;;;6644:21:91;;;:29;:21;;:::i;:29::-;6798:25;6246:584;:::o;6600:188::-;6753:24;;3228:4636:86;;8167:38:61;;-1:-1:-1;;;;;3228:4636:86;;;;;8167:38:61;:::i;:::-;6753:24:91;;;:::i;6604:::-;3228:4636:86;;;;;;6614:14:91;;-1:-1:-1;6604:24:91;;;6356:75;-1:-1:-1;;;3228:4636:86;;;;;;6360:12:91;3228:4636:86;;;;;;;:::i;:::-;;;;;;;;;;;;;;6356:75:91;;;525:595:87;-1:-1:-1;525:595:87;;;;3228:4636:86;;716:88:87;;3228:4636:86;716:88:87;;;;;;;;;783:4;716:88;;;3228:4636:86;;;;;;;;;;;:::i;716:88:87:-;698:107;;;;;;;:::i;:::-;3228:4636:86;;857:45:87;;3228:4636:86;;;;;;;;716:88:87;857:45;;3228:4636:86;:::i;:::-;;;;;;;-1:-1:-1;;;;;3228:4636:86;;;;;857:45:87;716:88;857:45;;;3228:4636:86;;;;:::i;:::-;916:8:87;;912:175;;525:595;:::o;912:175::-;3228:4636:86;;944:22:87;;;940:36;;716:88;990:87;;3228:4636:86;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::o;8406:869:91:-;;;3228:4636:86;;8620:15:91;8578:11;8645:18;8678:7;8684:1;8678:7;;8674:241;;8406:869;8939:60;;;;;:::i;:::-;9014:8;;;9010:62;;9252:15;9259:7;3228:4636:86;9219:31:91;3228:4636:86;9130:48:91;9170:7;;;:::i;:::-;9130:48;13267:109;;;;;;13089:293;;9130:48;3228:4636:86;:::i;:::-;;9176:1:91;3228:4636:86;9232:17:91;3228:4636:86;;;;;;;;9232:17:91;;3228:4636:86;-1:-1:-1;;;;;3228:4636:86;;;;9219:12:91;;:31;:::i;:::-;3228:4636:86;;;;;;;;;9259:7:91;;:::i;:::-;3228:4636:86;;;;9252:15:91;9176:1;;9188:80;;8406:869::o;9010:62::-;8578:11;;-1:-1:-1;8578:11:91;;-1:-1:-1;8578:11:91;;;;9038:23::o;8674:241::-;8721:14;;;;;:::i;:::-;3228:4636:86;;;;;;;8939:60:91;13267:109;;8578:11;13267:109;8753:55;8759:49;13267:109;;8578:11;13267:109;;3228:4636:86;;;;;;8759:49:91;3228:4636:86;;;;8753:55:91;3228:4636:86;;;8753:55:91;13267:109;;;8828:10;8749:156;8674:241;;8749:156;8883:7;;;;;;:::i;:::-;8749:156;8674:241;;3228:4636:86;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::o;7558:604:91:-;;3228:4636:86;;7686:17:91;7682:83;;3228:4636:86;7789:27:91;3228:4636:86;7789:27:91;3228:4636:86;;7789:27:91;;;;;;:::i;:::-;7860:14;;;;;:::i;:::-;3228:4636:86;;;;;;;;;;;;;;;;7888:22:91;;;7884:77;;7975:21;-1:-1:-1;7975:84:91;;;;7558:604;7971:139;;;;8127:28;;;;:::i;7971:139::-;8082:17;;7789:27;8082:17;3228:4636:86;8075:24:91;:::o;7975:84::-;3228:4636:86;;;8009:16:91;3228:4636:86;;8009:16:91;:::i;:::-;3228:4636:86;;;8001:24:91;:57;;;;;7975:84;;;;;;;8001:57;8029:29;8038:8;;;8029:18;8038:8;8029:23;8038:8;;:::i;:::-;8029:18;;:::i;:::-;3228:4636:86;;;;;8029:29:91;;8001:57;;;;7884:77;7933:17;;;;;7789:27;7933:17;3228:4636:86;7926:24:91;:::o;7682:83::-;7726:28;;;;:::i;3326:384:29:-;-1:-1:-1;;;;;;;;;;;1847:1:29;3228:4636:86;;3526:20:29;3522:88;;1847:1;3228:4636:86;;3326:384:29:o;3522:88::-;3228:4636:86;;-1:-1:-1;;;3569:30:29;;;;;6196:308:83;;3228:4636:86;-1:-1:-1;3228:4636:86;6327:13:83;3228:4636:86;;;-1:-1:-1;3228:4636:86;11124:30:91;;;;:::i;:::-;11173;;;-1:-1:-1;11173:30:91;;;;11182:17;;-1:-1:-1;;;;;3228:4636:86;;11182:12:91;;:17;:::i;:::-;3228:4636:86;;;6327:13:83;3228:4636:86;;11173:30:91;6385::83;;;11173::91;6381:117:83;;;;6196:308;;:::o;6381:117::-;6431:56;3228:4636:86;-1:-1:-1;3228:4636:86;6327:13:83;3228:4636:86;;;-1:-1:-1;3228:4636:86;819:34:63;837:15;819:34;:::i;6431:56:83:-;6196:308;;:::o;6385:30::-;6395:20;;-1:-1:-1;6385:30:83;;;;11173::91;;;-1:-1:-1;11173:30:91;;7270:387:24;-1:-1:-1;;;;;3228:4636:86;;-1:-1:-1;3228:4636:86;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2887:71:24;3228:4636:86;;;;-1:-1:-1;3228:4636:86;;;;;;;;;;;-1:-1:-1;;;;;3228:4636:86;;;;;;;;;;-1:-1:-1;;3228:4636:86;7509:4:24;3228:4636:86;;;966:10:28;;-1:-1:-1;;;;;3228:4636:86;-1:-1:-1;7532:40:24;-1:-1:-1;;7532:40:24;7509:4;7586:11;:::o;7270:387::-;-1:-1:-1;;;;;3228:4636:86;;-1:-1:-1;3228:4636:86;;;;;;;;;1356:26:81;;-1:-1:-1;;;;;;;;;;;2887:71:24;3228:4636:86;;3901:31:24;3228:4636:86;;;;-1:-1:-1;3228:4636:86;;;;;;;;;;;-1:-1:-1;;;;;3228:4636:86;;;;;;;;;;-1:-1:-1;;3228:4636:86;7509:4:24;3228:4636:86;;;966:10:28;;-1:-1:-1;;;;;3228:4636:86;;7532:40:24;-1:-1:-1;;7532:40:24;7509:4;7586:11;:::o;7432:219::-;7628:12;;;-1:-1:-1;7628:12:24;:::o;7270:387::-;-1:-1:-1;;;;;3228:4636:86;;-1:-1:-1;3228:4636:86;;;;;;;;;810:35:83;;-1:-1:-1;;;;;;;;;;;2887:71:24;3228:4636:86;;3901:31:24;3228:4636:86;7270:387:24;-1:-1:-1;;;;;3228:4636:86;;-1:-1:-1;3228:4636:86;;;;;;;;;971:45:83;;-1:-1:-1;;;;;;;;;;;2887:71:24;3228:4636:86;;3901:31:24;3228:4636:86;7270:387:24;-1:-1:-1;3228:4636:86;;;-1:-1:-1;;;;;;;;;;;3228:4636:86;;;;;;;;-1:-1:-1;;;;;3228:4636:86;;;;;;;;;;;;3901:31:24;3228:4636:86;7892:388:24;-1:-1:-1;3228:4636:86;;;-1:-1:-1;;;;;;;;;;;3228:4636:86;;;;;;;;-1:-1:-1;;;;;3228:4636:86;;;;;;;;;;;;;;;;-1:-1:-1;3228:4636:86;;;;;;;;;;;-1:-1:-1;;;;;3228:4636:86;;;;;;;;;;-1:-1:-1;;3228:4636:86;;;966:10:28;;-1:-1:-1;;;;;3228:4636:86;;8155:40:24;-1:-1:-1;;8155:40:24;3228:4636:86;8209:11:24;:::o;10580:184:91:-;3228:4636:86;;10303:8:61;;;:63;-1:-1:-1;10303:63:61;-1:-1:-1;;;;;3228:4636:86;;10726:7:91;3228:4636:86;;10736:12:91;:17;:12;;:17;:::i;10303:63:61:-;3228:4636:86;;;;;;;;;;13267:109:91;-1:-1:-1;13267:109:91;;-1:-1:-1;13267:109:91;;;3228:4636:86;;;10303:63:61;;3228:4636:86;;;;;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;3228:4636:86;;;;;;;;:::i;5907:716:81:-;6030:34;5907:716;6030:34;;;;:::i;:::-;3228:4636:86;;-1:-1:-1;;;6080:41:81;;-1:-1:-1;;;;;3228:4636:86;;;6080:41:81;;;3228:4636:86;;;;;6080:41:81;3228:4636:86;;;6090:13:81;3228:4636:86;;6080:41:81;;;;;;;-1:-1:-1;6080:41:81;;;5907:716;6079:42;;6075:90;;6266:27;3228:4636:86;2540:111:29;6210:14:81;3228:4636:86;2540:111:29;;;:::i;:::-;3228:4636:86;;;;;;-1:-1:-1;;;;;3228:4636:86;;-1:-1:-1;3228:4636:86;;;-1:-1:-1;3228:4636:86;;6210:14:81;6266:27;:::i;:::-;6080:41;6311:15;;3228:4636:86;;;;-1:-1:-1;;;;;;3228:4636:86;-1:-1:-1;;;;;3228:4636:86;;;;;;;;;;;-1:-1:-1;;;;;3228:4636:86;;;;6337:143:81;;5907:716;-1:-1:-1;6493:28:81;3228:4636:86;-1:-1:-1;;;;;3228:4636:86;;;;;;;6489:128:81;;5907:716;:::o;6489:128::-;6551:55;;;:::i;:::-;;5907:716::o;6337:143::-;6404:65;;;:::i;:::-;;6337:143;;;6075:90;3228:4636:86;;-1:-1:-1;;;6144:10:81;;6080:41;;6144:10;6080:41;;;;;;;;;;;;;;:::i;:::-;;;;3228:4636:86;;;;;;;;;;-1:-1:-1;;;;;3228:4636:86;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;;;;3228:4636:86;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;:::i;4663:1079:83:-;;;;;3228:4636:86;;:::i;:::-;;;;4903:16:83;4899:92;;4663:1079;5105:42;;5053:95;5105:42;;;;5053:95;;;:::i;:::-;5165:570;:34;;;5218:21;;;;;;5165:570;-1:-1:-1;5158:577:83;4663:1079;:::o;5165:570::-;5273:95;5431:67;5330:37;;;;;;5273:95;;;:::i;:::-;3228:4636:86;5470:27:83;5431;:13;3228:4636:86;-1:-1:-1;3228:4636:86;;;;;;;;;5431:27:83;5470;;;;3228:4636:86;;;;;;;;;;;5431:67:83;;;;;;;:::i;:::-;;;;;;;;;5273:409;5431:67;5397:216;5431:67;-1:-1:-1;5431:67:83;;;5165:570;5562:28;5524:67;5562:28;;3228:4636:86;5562:28:83;;;5524:67;;:::i;:::-;5397:216;;:::i;:::-;5273:409;;:::i;:::-;5700:21;;4663:1079;:::o;5431:67::-;5524;5431;;;;5470:27;5431:67;5470:27;5431:67;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;4899:92;4949:31;;;;;;;;;;;;;:::i;:::-;4899:92;;;;;5748:442;;2776:48;:39;;3228:4636:86;;;;;;;;;;2776:48:83;5946:237;:32;;;:237;;;-1:-1:-1;5748:442:83;:::o;5946:237::-;3358:44;:53;:34;;;3228:4636:86;;3358:22:83;3228:4636:86;;;;;;;3358:53:83;-1:-1:-1;3228:4636:86;;;-1:-1:-1;;;6086:27:83;;3228:4636:86;6086:27:83;;3228:4636:86;;2776:27:83;;3228:4636:86;;-1:-1:-1;;;;;3228:4636:86;6086:27:83;;;;;;6009:174;6086:27;6077:63;6086:27;-1:-1:-1;6086:27:83;;;5946:237;2233:25;;:34;:25;3228:4636:86;;2233:13:83;3228:4636:86;;;;;;;6086:27:83;2233:34;6086:27;;;;2233:25;6086:27;;;;;;;;;;;:::i;:::-;;;;;;14291:213:59;3228:4636:86;14369:24:59;;;;14365:103;;3228:4636:86;14291:213:59;:::o;14365:103::-;3228:4636:86;;;;14416:41:59;;;;;;14447:2;14416:41;;;3228:4636:86;;;;;14416:41:59;10552:388:61;3228:4636:86;;10728:8:61;;;10752:20;;10690:17;10752:20;10690:17;10752:20;10690:17;10752:20;:::o;10724:210::-;3228:4636:86;;;;;;;;;;;13267:109:91;10690:17:61;13267:109:91;;10690:17:61;13267:109:91;;;3228:4636:86;:::i;:::-;;;;;;;13267:109:91;3228:4636:86;;;;;10911:11:61;;3228:4636:86;;10886:37:61;10870:1;10886:37;;;:::o;8587:1642:58:-;8658:6;;8654:45;;9401:7;10201:10;10142:26;10093;10044;9995;9946;9897;9848;3228:4636:86;10189:23:58;9401:7;8663:1;3228:4636:86;;;;10826:16:58;10822:99;;8587:1642;3228:4636:86;;;;10938:15:58;10934:96;;8587:1642;3228:4636:86;;;;11047:15:58;11043:96;;8587:1642;3228:4636:86;;;;11156:15:58;11152:96;;8587:1642;3228:4636:86;;;;11265:14:58;11261:93;;8587:1642;3228:4636:86;;;;11371:14:58;11367:93;;8587:1642;3228:4636:86;;;;11477:14:58;11473:93;;8587:1642;3228:4636:86;;;11579:64:58;;8587:1642;3228:4636:86;;;9858:10:58;;;;:::i;:::-;3228:4636:86;;;;;9848:26:58;9907:10;;;;:::i;9897:26::-;9956:10;;;;:::i;9946:26::-;10005:10;;;;:::i;9995:26::-;10054:10;;;;:::i;10044:26::-;10103:10;;;;:::i;10093:26::-;10152:10;;;;:::i;10142:26::-;10201:10;;;:::i;11579:64::-;3228:4636:86;;11579:64:58;;11473:93;3228:4636:86;11511:11:58;;3228:4636:86;;11473:93:58;;;;11367;3228:4636:86;11405:11:58;;3228:4636:86;;11367:93:58;;;;11261;3228:4636:86;11299:11:58;;3228:4636:86;;11261:93:58;;;;11152:96;3228:4636:86;11191:12:58;;3228:4636:86;;11152:96:58;;;;11043;3228:4636:86;11082:12:58;;3228:4636:86;;11043:96:58;;;;10934;3228:4636:86;10973:12:58;;3228:4636:86;;10934:96:58;;;;10822:99;10862:13;;;3228:4636:86;10822:99:58;;;;12497:447:91;;;12694:10;;;;;;12926:11;;;12497:447;:::o;12687:230::-;2900:5:58;;;;;;3228:4636:86;;2910:5:58;;;3228:4636:86;;;;;;;;;13267:109:91;-1:-1:-1;13267:109:91;3228:4636:86;13267:109:91;;;-1:-1:-1;13267:109:91;;3228:4636:86;;;;;-1:-1:-1;12771:136:91;3228:4636:86;;;12830:10:91;;12771:136;;12687:230;;;;12771:136;3228:4636:86;;;;;;;;;;;12771:136:91;;;6999:207;;3228:4636:86;;9594:15:61;-1:-1:-1;9619:18:61;9652:7;9658:1;9652:7;;9648:234;;6999:207:91;9906:53:61;;;;;:::i;:::-;9977:8;;;:63;-1:-1:-1;9977:63:61;;-1:-1:-1;;;;;3228:4636:86;;7168:7:91;3228:4636:86;;;7178:12:91;;:17;:12;;:17;:::i;9977:63:61:-;9992:41;10025:7;9992:48;10025:7;;:::i;:::-;9992:41;13267:109:91;;;;;;13089:293;;9992:41:61;3228:4636:86;;;;;9992:48:61;9977:63;;;9648:234;9695:14;;;;;:::i;:::-;3228:4636:86;;;;;;;9906:53:61;13267:109:91;;-1:-1:-1;13267:109:91;3228:4636:86;13267:109:91;;;-1:-1:-1;13267:109:91;;3228:4636:86;;;;;9727:48:61;9723:149;3228:4636:86;;;9795:10:61;9723:149;9648:234;;9723:149;9850:7;;;;;;:::i;:::-;9723:149;9648:234;;3228:4636:86;;;;;;;:::i;:::-;-1:-1:-1;3228:4636:86;;;;;;;:::o;11486:272:91:-;;3228:4636:86;11308:22:61;11718:31:91;11486:272;3228:4636:86;;:::i;:::-;;;;:::i;:::-;;11308:22:61;;:::i;:::-;3228:4636:86;;:::i;:::-;;11718:12:91;3228:4636:86;;;;;11731:17:91;3228:4636:86;;;;;11731:17:91;;3228:4636:86;;11718:12:91;;:31;:::i;:::-;3228:4636:86;;;;;;;;;:::i;:::-;;;;;;11731:17:91;11672:79;;3228:4636:86;11486:272:91;:::o;6893:76:26:-;;;:::i;:::-;;;:::i;:::-;1805:1:29;-1:-1:-1;;;;;;;;;;;3228:4636:86;6893:76:26:o;3228:4636:86:-;;;;;;;:::i;:::-;-1:-1:-1;3228:4636:86;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;-1:-1:-1;;;;;3228:4636:86;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3228:4636:86;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;6510:1274:83:-;6658:30;6510:1274;3228:4636:86;;:::i;:::-;;6658:30:83;3228:4636:86;;;6658:30:83;;;;;;:::i;:::-;6716:17;;3228:4636:86;6716:17:83;;3228:4636:86;-1:-1:-1;;;;;3228:4636:86;6716:54:83;;:179;;6510:1274;6699:259;;6973:9;6658:30;6988:33;;;6716:17;7030:3;6988:33;;3228:4636:86;;6984:44:83;;;;;7053:36;;;:50;:36;;:::i;:::-;3228:4636:86;-1:-1:-1;;;;;3228:4636:86;;;7053:50:83;;7049:119;;7186:73;7187:72;7222:36;;:33;;;:36;:::i;:::-;7187:72;:::i;:::-;7186:73;;3228:4636:86;7186:73:83;7182:140;;3228:4636:86;;6973:9:83;;7182:140;3228:4636:86;;-1:-1:-1;;;7286:21:83;;;;;7049:119;3228:4636:86;;-1:-1:-1;;;7130:23:83;;;;;6984:44;-1:-1:-1;7362:42:83;;-1:-1:-1;;7362:42:83;;;;6716:17;7413:3;7362:42;;3228:4636:86;;7358:53:83;;;;;7436:45;;;:59;:45;;:::i;:59::-;;7432:128;;7578:92;7579:91;7624:45;;:42;;;:45;:::i;:::-;7579:91;:::i;7578:92::-;7574:159;;3228:4636:86;;7347:9:83;;7574:159;3228:4636:86;;-1:-1:-1;;;7697:21:83;;;;;7432:128;3228:4636:86;;-1:-1:-1;;;7522:23:83;;;;;7358:53;;;;;;7760:17;6510:1274;:::o;6699:259::-;3228:4636:86;;-1:-1:-1;;;6927:20:83;;;;;6716:179;6791:33;6658:30;6791:33;;;3228:4636:86;6791:45:83;:103;6716:179;6791:103;6840:42;;;;;3228:4636:86;6840:54:83;6716:179;;2557:104:58;;2641:5;;;;;;:13;2557:104;:::o;2641:13::-;;;2557:104;:::o;3803:4116::-;;;3228:4636:86;;;;-1:-1:-1;;3803:4116:58;;4383:131;;;;;;;;;;;;4595:10;;4591:368;;5065:20;;;;5061:88;;5435:300;;;3228:4636:86;-1:-1:-1;3228:4636:86;5954:31:58;;5999:371;;;6813:1;3228:4636:86;;6794:1:58;3228:4636:86;6793:21:58;3228:4636:86;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5999:371:58;;;;-1:-1:-1;5999:371:58;;;5435:300;;;;;;3228:4636:86;5435:300:58;;5999:371;6436:21;3228:4636:86;3803:4116:58;:::o;5061:88::-;3228:4636:86;;-1:-1:-1;;;5112:22:58;;;;;4591:368;4925:19;;;;;;;:::i;3228:4636:86:-;;;-1:-1:-1;;;3228:4636:86;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;3228:4636:86;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;11513:870:61;3228:4636:86;;11513:870:61;;;3228:4636:86;11513:870:61;11672:7;;;;3228:4636:86;11775:28:61;11795:7;;;:::i;3228:4636:86:-;;;;;;;;;;;;;;;;11877:15:61;-1:-1:-1;11873:91:61;;3228:4636:86;;12233:11:61;3228:4636:86;;;12027:16:61;3228:4636:86;;;;;;;12027:16:61;;;;12083:7;12063:43;12083:7;;12063:28;12083:7;;:::i;:::-;12063:28;13267:109:91;;;;;;13089:293;;12063:28:61;3228:4636:86;;;;;;;;;;;;;;;;;12063:43:61;12233:11;3228:4636:86;-1:-1:-1;;;;;3228:4636:86;;;12023:189:61;3228:4636:86;;;12145:52:61;3228:4636:86;12155:41:61;3228:4636:86;;:::i;:::-;;;;;;;;12155:41:61;-1:-1:-1;;;;;3228:4636:86;;12155:41:61;;;3228:4636:86;12145:52:61;:::i;:::-;12023:189;;11873:91;3228:4636:86;;-1:-1:-1;;;11919:30:61;;;;;11668:709;12283:52;3228:4636:86;;12293:41:61;3228:4636:86;;:::i;12293:41:61:-;-1:-1:-1;;;;;3228:4636:86;;12293:41:61;;;3228:4636:86;12145:52:61;:::i;12283:::-;11678:1;12349:17;;:::o;7084:141:26:-;3228:4636:86;-1:-1:-1;;;;;;;;;;;3228:4636:86;;;;7150:18:26;7146:73;;7084:141::o;7146:73::-;3228:4636:86;;-1:-1:-1;;;7191:17:26;;;;","linkReferences":{},"immutableReferences":{"64520":[{"start":2537,"length":32}],"64523":[{"start":4780,"length":32}],"65474":[{"start":2123,"length":32},{"start":4837,"length":32}],"65477":[{"start":1298,"length":32},{"start":10629,"length":32}],"65480":[{"start":1366,"length":32},{"start":7731,"length":32},{"start":7995,"length":32}],"65483":[{"start":1993,"length":32},{"start":7578,"length":32},{"start":8121,"length":32}],"67998":[{"start":3733,"length":32},{"start":6477,"length":32}],"68000":[{"start":3479,"length":32},{"start":6638,"length":32}],"68002":[{"start":4169,"length":32}],"69080":[{"start":1440,"length":32},{"start":4055,"length":32},{"start":5673,"length":32}]}},"methodIdentifiers":{"BASE_DELEGATOR_HINTS()":"79d89614","DEFAULT_ADMIN_ROLE()":"a217fddf","FACTORY()":"2dd31000","HOOK_GAS_LIMIT()":"ff54740f","HOOK_RESERVE()":"557cab44","HOOK_SET_ROLE()":"6679191e","NETWORK_LIMIT_SET_ROLE()":"7d24bb27","NETWORK_REGISTRY()":"c0cd7c3e","OPERATOR_NETWORK_OPT_IN_SERVICE()":"1a80e500","OPERATOR_NETWORK_SHARES_SET_ROLE()":"e78eb6ae","OPERATOR_VAULT_OPT_IN_SERVICE()":"128e5d82","OPT_IN_SERVICE_HINTS()":"9b656b22","TYPE()":"bb24fe8a","VAULT_FACTORY()":"103f2907","VAULT_HINTS()":"45e78fcb","VERSION()":"ffa1ad74","getRoleAdmin(bytes32)":"248a9ca3","grantRole(bytes32,address)":"2f2ff15d","hasRole(bytes32,address)":"91d14854","hook()":"7f5a7c7b","initialize(bytes)":"439fab91","maxNetworkLimit(bytes32)":"d15b740e","networkLimit(bytes32)":"3eb22c0f","networkLimitAt(bytes32,uint48,bytes)":"5d32a1c9","networkLimitHint(address,bytes32,uint48)":"da749d2b","networkLimitHintInternal(bytes32,uint48)":"197aa7ea","onSlash(bytes32,address,uint256,uint48,bytes)":"e49561ee","operatorNetworkShares(bytes32,address)":"42c53e33","operatorNetworkSharesAt(bytes32,address,uint48,bytes)":"1a7a7044","operatorNetworkSharesHint(address,bytes32,address,uint48)":"07f9d5fd","operatorNetworkSharesHintInternal(bytes32,address,uint48)":"987b3ee8","renounceRole(bytes32,address)":"36568abe","revokeRole(bytes32,address)":"d547741f","setHook(address)":"3dfd3873","setMaxNetworkLimit(uint96,uint256)":"23f752d5","setNetworkLimit(bytes32,uint256)":"02145348","setOperatorNetworkShares(bytes32,address,uint256)":"a33bc287","stake(bytes32,address)":"fd4d447c","stakeAt(bytes32,address,uint48,bytes)":"e02f6937","stakeHints(address,bytes32,address,uint48)":"25dc9708","staticDelegateCall(address,bytes)":"9f86fd85","supportsInterface(bytes4)":"01ffc9a7","totalOperatorNetworkShares(bytes32)":"c43dc03f","totalOperatorNetworkSharesAt(bytes32,uint48,bytes)":"8b3f10b0","totalOperatorNetworkSharesHint(address,bytes32,uint48)":"b549ef1f","totalOperatorNetworkSharesHintInternal(bytes32,uint48)":"ed4d89e5","vault()":"fbfa77cf"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"baseDelegatorHints\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"vaultHints\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"optInServiceHints\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"AccessControlBadConfirmation\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"neededRole\",\"type\":\"bytes32\"}],\"name\":\"AccessControlUnauthorizedAccount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AlreadySet\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CheckpointUnorderedInsertion\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"DuplicateRoleHolder\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ExceedsMaxNetworkLimit\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ExternalCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientHookGas\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MathOverflowedMulDiv\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MissingRoleHolders\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotNetwork\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotSlasher\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotVault\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ReentrancyGuardReentrantCall\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"bits\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"SafeCastOverflowedUintDowncast\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ZeroAddressRoleHolder\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint48\",\"name\":\"captureTimestamp\",\"type\":\"uint48\"}],\"name\":\"OnSlash\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"previousAdminRole\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"newAdminRole\",\"type\":\"bytes32\"}],\"name\":\"RoleAdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleRevoked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"hook\",\"type\":\"address\"}],\"name\":\"SetHook\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"SetMaxNetworkLimit\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"SetNetworkLimit\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"}],\"name\":\"SetOperatorNetworkShares\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"BASE_DELEGATOR_HINTS\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"DEFAULT_ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"FACTORY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"HOOK_GAS_LIMIT\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"HOOK_RESERVE\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"HOOK_SET_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"NETWORK_LIMIT_SET_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"NETWORK_REGISTRY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"OPERATOR_NETWORK_OPT_IN_SERVICE\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"OPERATOR_NETWORK_SHARES_SET_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"OPERATOR_VAULT_OPT_IN_SERVICE\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"OPT_IN_SERVICE_HINTS\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"TYPE\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"VAULT_FACTORY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"VAULT_HINTS\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"VERSION\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleAdmin\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"grantRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"hook\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"}],\"name\":\"maxNetworkLimit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"}],\"name\":\"networkLimit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hint\",\"type\":\"bytes\"}],\"name\":\"networkLimitAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"}],\"name\":\"networkLimitHint\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"}],\"name\":\"networkLimitHintInternal\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"exists\",\"type\":\"bool\"},{\"internalType\":\"uint32\",\"name\":\"hint\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint48\",\"name\":\"captureTimestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"onSlash\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"operatorNetworkShares\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hint\",\"type\":\"bytes\"}],\"name\":\"operatorNetworkSharesAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"}],\"name\":\"operatorNetworkSharesHint\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"}],\"name\":\"operatorNetworkSharesHintInternal\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"exists\",\"type\":\"bool\"},{\"internalType\":\"uint32\",\"name\":\"hint\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"callerConfirmation\",\"type\":\"address\"}],\"name\":\"renounceRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"hook_\",\"type\":\"address\"}],\"name\":\"setHook\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint96\",\"name\":\"identifier\",\"type\":\"uint96\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"setMaxNetworkLimit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"setNetworkLimit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"}],\"name\":\"setOperatorNetworkShares\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"stake\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hints\",\"type\":\"bytes\"}],\"name\":\"stakeAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"}],\"name\":\"stakeHints\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"staticDelegateCall\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"}],\"name\":\"totalOperatorNetworkShares\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hint\",\"type\":\"bytes\"}],\"name\":\"totalOperatorNetworkSharesAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"}],\"name\":\"totalOperatorNetworkSharesHint\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"}],\"name\":\"totalOperatorNetworkSharesHintInternal\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"exists\",\"type\":\"bool\"},{\"internalType\":\"uint32\",\"name\":\"hint\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"vault\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"AccessControlBadConfirmation()\":[{\"details\":\"The caller of a function is not the expected one. NOTE: Don't confuse with {AccessControlUnauthorizedAccount}.\"}],\"AccessControlUnauthorizedAccount(address,bytes32)\":[{\"details\":\"The `account` is missing a role.\"}],\"CheckpointUnorderedInsertion()\":[{\"details\":\"A value was attempted to be inserted on a past checkpoint.\"}],\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"MathOverflowedMulDiv()\":[{\"details\":\"Muldiv operation overflow.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"ReentrancyGuardReentrantCall()\":[{\"details\":\"Unauthorized reentrant call.\"}],\"SafeCastOverflowedUintDowncast(uint8,uint256)\":[{\"details\":\"Value doesn't fit in an uint of `bits` size.\"}]},\"events\":{\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"OnSlash(bytes32,address,uint256,uint48)\":{\"params\":{\"amount\":\"amount of the collateral to be slashed\",\"captureTimestamp\":\"time point when the stake was captured\",\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"}},\"RoleAdminChanged(bytes32,bytes32,bytes32)\":{\"details\":\"Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole` `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite {RoleAdminChanged} not being emitted signaling this.\"},\"RoleGranted(bytes32,address,address)\":{\"details\":\"Emitted when `account` is granted `role`. `sender` is the account that originated the contract call, an admin role bearer except when using {AccessControl-_setupRole}.\"},\"RoleRevoked(bytes32,address,address)\":{\"details\":\"Emitted when `account` is revoked `role`. `sender` is the account that originated the contract call: - if using `revokeRole`, it is the admin role bearer - if using `renounceRole`, it is the role bearer (i.e. `account`)\"},\"SetHook(address)\":{\"params\":{\"hook\":\"address of the hook\"}},\"SetMaxNetworkLimit(bytes32,uint256)\":{\"params\":{\"amount\":\"new maximum subnetwork's limit (how much stake the subnetwork is ready to get)\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"}},\"SetNetworkLimit(bytes32,uint256)\":{\"params\":{\"amount\":\"new subnetwork's limit (how much stake the vault curator is ready to give to the subnetwork)\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"}},\"SetOperatorNetworkShares(bytes32,address,uint256)\":{\"params\":{\"operator\":\"address of the operator\",\"shares\":\"new operator's shares inside the subnetwork (what percentage, which is equal to the shares divided by the total operators' shares, of the subnetwork's stake the vault curator is ready to give to the operator)\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"}}},\"kind\":\"dev\",\"methods\":{\"VERSION()\":{\"details\":\"Must return 1 for this one.\",\"returns\":{\"_0\":\"version of the delegator\"}},\"getRoleAdmin(bytes32)\":{\"details\":\"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}.\"},\"grantRole(bytes32,address)\":{\"details\":\"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event.\"},\"hasRole(bytes32,address)\":{\"details\":\"Returns `true` if `account` has been granted `role`.\"},\"initialize(bytes)\":{\"params\":{\"data\":\"some data to use\"}},\"networkLimit(bytes32)\":{\"params\":{\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"},\"returns\":{\"_0\":\"limit of the subnetwork\"}},\"networkLimitAt(bytes32,uint48,bytes)\":{\"params\":{\"hint\":\"hint for checkpoint index\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\",\"timestamp\":\"time point to get the subnetwork limit at\"},\"returns\":{\"_0\":\"limit of the subnetwork at the given timestamp\"}},\"onSlash(bytes32,address,uint256,uint48,bytes)\":{\"details\":\"Only the vault's slasher can call this function.\",\"params\":{\"amount\":\"amount of the collateral slashed\",\"captureTimestamp\":\"time point when the stake was captured\",\"data\":\"some additional data\",\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"}},\"operatorNetworkShares(bytes32,address)\":{\"params\":{\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"},\"returns\":{\"_0\":\"shares of the operator for the subnetwork\"}},\"operatorNetworkSharesAt(bytes32,address,uint48,bytes)\":{\"params\":{\"hint\":\"hint for checkpoint index\",\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\",\"timestamp\":\"time point to get the operator's shares at\"},\"returns\":{\"_0\":\"shares of the operator for the subnetwork at the given timestamp\"}},\"renounceRole(bytes32,address)\":{\"details\":\"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `callerConfirmation`. May emit a {RoleRevoked} event.\"},\"revokeRole(bytes32,address)\":{\"details\":\"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event.\"},\"setHook(address)\":{\"details\":\"Only a HOOK_SET_ROLE holder can call this function. The hook can have arbitrary logic under certain functions, however, it doesn't affect the stake guarantees.\",\"params\":{\"hook\":\"address of the hook\"}},\"setMaxNetworkLimit(uint96,uint256)\":{\"details\":\"Only a network can call this function.\",\"params\":{\"amount\":\"new maximum subnetwork's limit\"}},\"setNetworkLimit(bytes32,uint256)\":{\"details\":\"Only a NETWORK_LIMIT_SET_ROLE holder can call this function.\",\"params\":{\"amount\":\"new limit of the subnetwork\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"}},\"setOperatorNetworkShares(bytes32,address,uint256)\":{\"details\":\"Only an OPERATOR_NETWORK_SHARES_SET_ROLE holder can call this function.\",\"params\":{\"operator\":\"address of the operator\",\"shares\":\"new shares of the operator for the subnetwork\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"}},\"stake(bytes32,address)\":{\"details\":\"Warning: this function is not safe to use for stake capturing, as it can change by the end of the block.\",\"params\":{\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"},\"returns\":{\"_0\":\"slashable stake until the end of the next epoch\"}},\"stakeAt(bytes32,address,uint48,bytes)\":{\"details\":\"Warning: it is not safe to use timestamp >= current one for the stake capturing, as it can change later.\",\"params\":{\"hints\":\"hints for the checkpoints' indexes\",\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\",\"timestamp\":\"time point to capture the stake at\"},\"returns\":{\"_0\":\"slashable stake at the given timestamp until the end of the consequent epoch\"}},\"staticDelegateCall(address,bytes)\":{\"details\":\"It allows to use this contract's storage on-chain.\",\"params\":{\"data\":\"data to make a delegatecall with\",\"target\":\"address of the contract to make a delegatecall to\"}},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"},\"totalOperatorNetworkShares(bytes32)\":{\"params\":{\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"},\"returns\":{\"_0\":\"total shares of the operators for the subnetwork\"}},\"totalOperatorNetworkSharesAt(bytes32,uint48,bytes)\":{\"params\":{\"hint\":\"hint for checkpoint index\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\",\"timestamp\":\"time point to get the total operators' shares at\"},\"returns\":{\"_0\":\"total shares of the operators for the subnetwork at the given timestamp\"}}},\"version\":1},\"userdoc\":{\"events\":{\"OnSlash(bytes32,address,uint256,uint48)\":{\"notice\":\"Emitted when a slash happens.\"},\"SetHook(address)\":{\"notice\":\"Emitted when a hook is set.\"},\"SetMaxNetworkLimit(bytes32,uint256)\":{\"notice\":\"Emitted when a subnetwork's maximum limit is set.\"},\"SetNetworkLimit(bytes32,uint256)\":{\"notice\":\"Emitted when a subnetwork's limit is set.\"},\"SetOperatorNetworkShares(bytes32,address,uint256)\":{\"notice\":\"Emitted when an operator's shares inside a subnetwork are set.\"}},\"kind\":\"user\",\"methods\":{\"FACTORY()\":{\"notice\":\"Get the factory's address.\"},\"HOOK_GAS_LIMIT()\":{\"notice\":\"Get a gas limit for the hook.\"},\"HOOK_RESERVE()\":{\"notice\":\"Get a reserve gas between the gas limit check and the hook's execution.\"},\"HOOK_SET_ROLE()\":{\"notice\":\"Get a hook setter's role.\"},\"NETWORK_LIMIT_SET_ROLE()\":{\"notice\":\"Get a subnetwork limit setter's role.\"},\"NETWORK_REGISTRY()\":{\"notice\":\"Get the network registry's address.\"},\"OPERATOR_NETWORK_OPT_IN_SERVICE()\":{\"notice\":\"Get the operator-network opt-in service's address.\"},\"OPERATOR_NETWORK_SHARES_SET_ROLE()\":{\"notice\":\"Get an operator-subnetwork shares setter's role.\"},\"OPERATOR_VAULT_OPT_IN_SERVICE()\":{\"notice\":\"Get the operator-vault opt-in service's address.\"},\"TYPE()\":{\"notice\":\"Get the entity's type.\"},\"VAULT_FACTORY()\":{\"notice\":\"Get the vault factory's address.\"},\"VERSION()\":{\"notice\":\"Get a version of the delegator (different versions mean different interfaces).\"},\"hook()\":{\"notice\":\"Get the hook's address.\"},\"initialize(bytes)\":{\"notice\":\"Initialize this entity contract by using a given data.\"},\"maxNetworkLimit(bytes32)\":{\"notice\":\"Get a particular subnetwork's maximum limit (meaning the subnetwork is not ready to get more as a stake).\"},\"networkLimit(bytes32)\":{\"notice\":\"Get a subnetwork's limit (how much stake the vault curator is ready to give to the subnetwork).\"},\"networkLimitAt(bytes32,uint48,bytes)\":{\"notice\":\"Get a subnetwork's limit at a given timestamp using a hint (how much stake the vault curator is ready to give to the subnetwork).\"},\"onSlash(bytes32,address,uint256,uint48,bytes)\":{\"notice\":\"Called when a slash happens.\"},\"operatorNetworkShares(bytes32,address)\":{\"notice\":\"Get an operator's shares for a subnetwork (what percentage, which is equal to the shares divided by the total operators' shares, of the subnetwork's stake the vault curator is ready to give to the operator).\"},\"operatorNetworkSharesAt(bytes32,address,uint48,bytes)\":{\"notice\":\"Get an operator's shares for a subnetwork at a given timestamp using a hint (what percentage, which is equal to the shares divided by the total operators' shares, of the subnetwork's stake the vault curator is ready to give to the operator).\"},\"setHook(address)\":{\"notice\":\"Set a new hook.\"},\"setMaxNetworkLimit(uint96,uint256)\":{\"notice\":\"Set a maximum limit for a subnetwork (how much stake the subnetwork is ready to get). identifier identifier of the subnetwork\"},\"setNetworkLimit(bytes32,uint256)\":{\"notice\":\"Set a subnetwork's limit (how much stake the vault curator is ready to give to the subnetwork).\"},\"setOperatorNetworkShares(bytes32,address,uint256)\":{\"notice\":\"Set an operator's shares for a subnetwork (what percentage, which is equal to the shares divided by the total operators' shares, of the subnetwork's stake the vault curator is ready to give to the operator).\"},\"stake(bytes32,address)\":{\"notice\":\"Get a stake that a given subnetwork will be able to slash for a certain operator until the end of the next epoch (if no cross-slashing and no slashings by the subnetwork).\"},\"stakeAt(bytes32,address,uint48,bytes)\":{\"notice\":\"Get a stake that a given subnetwork could be able to slash for a certain operator at a given timestamp until the end of the consequent epoch using hints (if no cross-slashing and no slashings by the subnetwork).\"},\"staticDelegateCall(address,bytes)\":{\"notice\":\"Make a delegatecall from this contract to a given target contract with a particular data (always reverts with a return data).\"},\"totalOperatorNetworkShares(bytes32)\":{\"notice\":\"Get a sum of operators' shares for a subnetwork.\"},\"totalOperatorNetworkSharesAt(bytes32,uint48,bytes)\":{\"notice\":\"Get a sum of operators' shares for a subnetwork at a given timestamp using a hint.\"},\"vault()\":{\"notice\":\"Get the vault's address.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/contracts/hints/DelegatorHints.sol\":\"NetworkRestakeDelegatorHints\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol\":{\"keccak256\":\"0x6662ec4e5cefca03eeadd073e9469df8d2944bb2ee8ec8f7622c2c46aab5f225\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4d8544c6f8daa4d1bc215c6a72fe0acdb748664a105b0e5efc19295667521d45\",\"dweb:/ipfs/QmdGWqdnXT8S3RgCR6aV8XHZrsybieMQLLnug1NtpSjEXN\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0xc163fcf9bb10138631a9ba5564df1fa25db9adff73bd9ee868a8ae1858fe093a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9706d43a0124053d9880f6e31a59f31bc0a6a3dc1acd66ce0a16e1111658c5f6\",\"dweb:/ipfs/QmUFmfowzkRwGtDu36cXV9SPTBHJ3n7dG9xQiK5B28jTf2\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609\",\"dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9\",\"dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardUpgradeable.sol\":{\"keccak256\":\"0xb44e086e941292cdc7f440de51478493894ef0b1aeccb0c4047445919f667f74\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://942dad22fbdc1669f025540ba63aa3ccfad5f8458fc5d4525b31ebf272e7af45\",\"dweb:/ipfs/Qmdo4X2M82aM3AMoW2kf2jhYkSCyC4T1pHNd6obdsDFnAB\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol\":{\"keccak256\":\"0xdaba3f7c42c55b2896353f32bd27d4d5f8bae741b3b05d4c53f67abc4dc47ce8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1fa2e61141c602510bcd2cd936ed9561922ac8772a9b9c9a9db091a74e354a45\",\"dweb:/ipfs/QmcHQDDoEBwJmwUbzoVkytvJsBx3KVHYFFnDkvRGWh9Wmh\"]},\"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0xb6b36edd6a2999fd243ff226d6cbf84bd71af2432bbd0dfe19392996a1d9cb41\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1fd2f35495652e57e3f99bc6c510bc5f7dd398a176ea2e72d8ed730aebc6ca26\",\"dweb:/ipfs/QmTQV6X4gkikTib49cho5iDX3JvSQbdsoEChoDwrk3CbbH\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC1271.sol\":{\"keccak256\":\"0x85a45f3f10014a0f8be41157a32b6a5f905753ea64a4b64e29fc12b7deeecf39\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c3c74009ce36136b36c77c23935b8e4a7b4f253be2da2be4fb4a916b1ce43743\",\"dweb:/ipfs/QmcH36v3iN7SJJuF73AunLR2LtNxhVJ1wm63ph4dPZ4pcL\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC5267.sol\":{\"keccak256\":\"0x92aa1df62dc3d33f1656d63bede0923e0df0b706ad4137c8b10b0a8fe549fd92\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c5c0f29195ad64cbe556da8e257dac8f05f78c53f90323c0d2accf8e6922d33a\",\"dweb:/ipfs/QmQ61TED8uaCZwcbh8KkgRSsCav7x7HbcGHwHts3U4DmUP\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c\",\"dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0x6008dabfe393240d73d7dd7688033f72740d570aa422254d29a7dce8568f3aff\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f5196ec75139918c6c7bb4251b36395e668f1fa6d206beba7e7520e74913940d\",\"dweb:/ipfs/QmSyqjksXxmm2mCG6qRd1yuwLykypkSVBbnBnGqJRcuJMi\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x37bb49513c49c87c4642a891b13b63571bc87013dde806617aa1efb54605f386\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b3036b3a83b7c48f96641f2a9002b9f2dcb6a5958dd670894ada21ae8229b3d0\",\"dweb:/ipfs/QmUNfSBdoVtjhETaUJCYcaC7pTMgbhht926tJ2uXJbiVd3\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0xaf28a975a78550e45f65e559a3ad6a5ad43b9b8a37366999abd1b7084eb70721\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b7bd24e224f67f65bfadf85dc2929fa965456bb2415478bd0125471b5ce35245\",\"dweb:/ipfs/QmRaydGr8BTHs1kvaZfsNU69pKzUAGFrvABn1KiRSbE51y\"]},\"lib/openzeppelin-contracts/contracts/utils/ShortStrings.sol\":{\"keccak256\":\"0x18a7171df639a934592915a520ecb97c5bbc9675a1105607aac8a94e72bf62c6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7478e1f13da69a2867ccd883001d836b75620362e743f196376d63ed0c422a1c\",\"dweb:/ipfs/QmWywcQ9TNfwtoqAxbn25d8C5VrV12PrPS9UjtGe6pL2BA\"]},\"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0x32ba59b4b7299237c8ba56319110989d7978a039faf754793064e967e5894418\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1ae50c8b562427df610cc4540c9bf104acca7ef8e2dcae567ae7e52272281e9c\",\"dweb:/ipfs/QmTHiadFCSJUPpRjNegc5SahmeU8bAoY8i9Aq6tVscbcKR\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0x55f102ea785d8399c0e58d1108e2d289506dde18abc6db1b7f68c1f9f9bc5792\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e52e0a7765c943ef14e5bcf11e46e6139fa044be564881378349236bf2e3453\",\"dweb:/ipfs/QmZEeeXoFPW47amyP35gfzomF9DixqqTEPwzBakv6cZw6i\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0xeed0a08b0b091f528356cbc7245891a4c748682d4f6a18055e8e6ca77d12a6cf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba80ba06c8e6be852847e4c5f4492cef801feb6558ae09ed705ff2e04ea8b13c\",\"dweb:/ipfs/QmXRJDv3xHLVQCVXg1ZvR35QS9sij5y9NDWYzMfUfAdTHF\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/EIP712.sol\":{\"keccak256\":\"0x999f705a027ed6dc2d4e0df2cc4a509852c6bfd11de1c8161bf88832d0503fd0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0798def67258d9a3cc20b2b4da7ebf351a5cefe0abfdd665d2d81f8e32f89b21\",\"dweb:/ipfs/QmPEvJosnPfzHNjKvCv2D3891mA2Ww8eUwkqrxBjuYdHCt\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol\":{\"keccak256\":\"0xba333517a3add42cd35fe877656fc3dfcc9de53baa4f3aabbd6d12a92e4ea435\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2ceacff44c0fdc81e48e0e0b1db87a2076d3c1fb497341de077bf1da9f6b406c\",\"dweb:/ipfs/QmRUo1muMRAewxrKQ7TkXUtknyRoR57AyEkoPpiuZQ8FzX\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/SignatureChecker.sol\":{\"keccak256\":\"0x6b11eb41a228cca35d4b662b4df69fcd75192851365102690f57b2ac01e83fe6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ab006a2983ed350d2af21ddcdd835dcae3b8340086cc4d088460da5abd041f69\",\"dweb:/ipfs/QmbEacDhkJZiGrgzLjB4pNtE8Z1uudjDw1DvcDUTVQFsLG\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875\",\"dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0xe19a4d5f31d2861e7344e8e535e2feafb913d806d3e2b5fe7782741a2a7094fe\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4aed79c0fa6f0546ed02f2f683e8f77f0fd2ed7eb34d8bbf3d373c9a6d95b13c\",\"dweb:/ipfs/QmWqVz6UAVqmnWU5pqYPt1o6iDEZyPaBraAA3rKfTTSfYj\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x5f7e4076e175393767754387c962926577f1660dd9b810187b9002407656be72\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7d533a1c97cd43a57cd9c465f7ee8dd0e39ae93a8fb8ff8e5303a356b081cdcc\",\"dweb:/ipfs/QmVBEei6aTnvYNZp2CHYVNKyZS4q1KkjANfY39WVXZXVoT\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/Checkpoints.sol\":{\"keccak256\":\"0xbdc5e074d7dd6678f67e92b1a51a20226801a407b0e1af3da367c5d1ff4519ad\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a36cca6b22fff3db16fc789ff6c60eea71d4b156065d4d0c83a0bc5e91a77a8b\",\"dweb:/ipfs/QmYN3exd5AemxjBrN8XMB1p5LbbE16uC3sjbYjwi8AjcGR\"]},\"lib/openzeppelin-contracts/contracts/utils/types/Time.sol\":{\"keccak256\":\"0xc7755af115020049e4140f224f9ee88d7e1799ffb0646f37bf0df24bf6213f58\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7f09bf94d5274334ec021f61a04659db303f31e60460e14b709c9bf187740111\",\"dweb:/ipfs/QmNvgomZYUwFAt4cZbPWAiTeSZQreGehY9BK5xyVJsUttb\"]},\"src/contracts/common/Entity.sol\":{\"keccak256\":\"0x3d61a932995b8443381f3950542d388223a2c26dd5d29a3274dea3baa7388bd7\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://7cdf5f03ca72fd263fd32ff59c8d88ddca911ae83896a287d10772c1bbe9b138\",\"dweb:/ipfs/QmbP84r5BWT1Rn9AYTntWSf3xUMTTCohTZJFhbBhDXFoHa\"]},\"src/contracts/common/MigratableEntity.sol\":{\"keccak256\":\"0x2d736f4dacd5d7e7697503bc426c78b8250fe1694ca157965ec178da6807de58\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://f1237acf96b4b9f9b69156e068eddd726a6e15bd8e87a18dc999cd4ba4da069c\",\"dweb:/ipfs/QmS6M8fiFFSeuJ4ZKKq1z8W7w4ybeHQSy5TLASGoc1LVic\"]},\"src/contracts/common/StaticDelegateCallable.sol\":{\"keccak256\":\"0x350029aa8955eacaffffaeb58babc5c98e80ebc5c5db388ed17ee6465f4a9d90\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://eb392a8ee9050e0af606897df63e3404e3829e8b688b580663892f9664195764\",\"dweb:/ipfs/QmaXC8jqV8UrrAFkzXTEv2fJF56sy33HhLxAzaRZmUxuXD\"]},\"src/contracts/delegator/BaseDelegator.sol\":{\"keccak256\":\"0x7c54d491fdd4415b764a9c8defa068e56d4c0c8c9419be0053a1d377669290e8\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://9238bfbad0f6eeb0dc7727724de14380f1980b395902269703d5e2ef07e52e10\",\"dweb:/ipfs/QmPJn1V4HNXcEghYvogGuSTF24dSQUPosR5qtsXcmNqRm3\"]},\"src/contracts/delegator/FullRestakeDelegator.sol\":{\"keccak256\":\"0x0a81c4f8e72914563a9cb771e93acf889c71ea36b7bec040e4eb562b199d5af1\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://6fc66b6ba02da77046a0bbbd1dd407a62c08f52e04486c9cbd2cb1cca3da555f\",\"dweb:/ipfs/QmZQivK1ZnMxfRQQ5aLpV9co5u55wQVNev5Rg1hzAqxhkE\"]},\"src/contracts/delegator/NetworkRestakeDelegator.sol\":{\"keccak256\":\"0xd3a8e6522f9c6fdcc2da837c9023afd6bdff2bce45a35590320c475519e3636d\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://58b17a87f6554f08376f9ea7fedf486a4aa75801bf0ad8b23ff5a46959b6b7a3\",\"dweb:/ipfs/QmSTmNh67tYt8CmjVZb57r8N3qX5yeYdMApKPJm3qvQgQw\"]},\"src/contracts/delegator/OperatorNetworkSpecificDelegator.sol\":{\"keccak256\":\"0x031a10722b9ec49048f0952710401131290adb87e71caf294e864e7ac3b98a16\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://72428febc875134b2f29205e6f294634a1c22a7d5c78d6a9cb2f8196f107c9b5\",\"dweb:/ipfs/QmTPwXR6h5oytckmkLrHdKeEMdphJxceDhYUR4zvQeWAwY\"]},\"src/contracts/delegator/OperatorSpecificDelegator.sol\":{\"keccak256\":\"0x630ce62fa30b9f3349ab7a8cf8dbf041319febc6dd757be2f94d3d25944ed328\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://c2ac59d47ce57d2a6819ae9833e1a618a371eccff93eb5ab367b201b01f42bfa\",\"dweb:/ipfs/QmdBpGMBivpNPv2WbH8vnCUy5xkVeaxQvGgqi33vKCz1kA\"]},\"src/contracts/hints/DelegatorHints.sol\":{\"keccak256\":\"0x44aa0c396311a54afbc7c73e8dadeed41e3165a4fd13f712b27d63d50fc3376d\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://2f255214f3531fc707d88be0d56a7a0aed4180439316d099d760d9118aa83093\",\"dweb:/ipfs/QmZD1w5p1ukJSXumUAjvxwGmkPhn7vsr21Y2atLGEZR2oi\"]},\"src/contracts/hints/Hints.sol\":{\"keccak256\":\"0x8b565df1ae35993c097a9e642002782a8f451f6fd01809cad6bcd345bdf1b99c\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://99a19adb01e350a92f534095b3078229df1f2f83077992d75d58d8684be45971\",\"dweb:/ipfs/QmbmwcuswVbzvwHQFTtrJG86oV98GnfxqYTb8cV8u1acox\"]},\"src/contracts/hints/OptInServiceHints.sol\":{\"keccak256\":\"0x95d9407900d27b9f4a1233b772aeed809c07b2dc5b31cfc9fa77ca26514c49e5\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://a13a8877e312d7e6b8b85bde3668c5d84ff5ecc83f762cd573f2b7104c64eb42\",\"dweb:/ipfs/QmYV2J55acuGzCNnS3juABuUHY5U1xc8g8o9jwEyFFdeG5\"]},\"src/contracts/hints/VaultHints.sol\":{\"keccak256\":\"0xccb505b7159b769cc114d67b87c2de6b106557f667fc8f3780114baad5c3c442\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://6d0c80a908fc16e96a8b5605a0bd53f9e89ad0ef0a738fbbae80ba4d3160749b\",\"dweb:/ipfs/QmXo5UtWoR8YmunqcbBU8rQMm1nvmvjNPoXcVrDhh4pEwR\"]},\"src/contracts/libraries/Checkpoints.sol\":{\"keccak256\":\"0xba90097c8bfe0a975499428b5f8ac5569483c7d92ccc28c12d70de416aae040c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://12f5d93ca94cd06d3147db68993165a58e17903ed53682560de61f3085ad4609\",\"dweb:/ipfs/QmePiuAqvXprMLmFZkGZeGjvGPAvsEDHfCDv7BoQhXu9xE\"]},\"src/contracts/libraries/ERC4626Math.sol\":{\"keccak256\":\"0x8441160513c1cbeb1c3b9ee077bcc7e7ce20006b52a77c8dd39ff0ef89699939\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://943f8cc3e26ddf649f465f40c909819f5c864717c4baa339e9e403b9374a4653\",\"dweb:/ipfs/QmXPxi1sUDsrGprZdUgCzoPEosaZMv9ZhygWQ1vAi1phAB\"]},\"src/contracts/libraries/Subnetwork.sol\":{\"keccak256\":\"0xf5ef5506fd66082b3c2e7f3df37529f5a8efad32ac62e7c8914bd63219190bfe\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba031a54ee0d0e9a270c2b9e18437f5668cfeb659cfd5fe0677459d7fcac2a56\",\"dweb:/ipfs/QmReP3H7qQ78tAfgLnJKsNEQNCQfF1X1Get38Ffd4kzq32\"]},\"src/contracts/service/OptInService.sol\":{\"keccak256\":\"0x4e0932077f2686b7990e10d59deb2535334c0d09e52ef6e57c6ab09eca21c4b1\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://7c00d311032ed4a1743aca7475f3c86ce15cdfc2218108efc3731c03d34a5278\",\"dweb:/ipfs/QmUGGfVwVhaHr5kS4177yKKYiLYzi5qZpkEmvYxBZqazxf\"]},\"src/contracts/vault/Vault.sol\":{\"keccak256\":\"0x2ceff6ed3298c4cad144c99fcc79b51cb9397d6ebef00285b915848b476f8c2e\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://11f2fb3581854f3ab6e82e8d4935d9eb510c903a13c3f022346c2956a58f5307\",\"dweb:/ipfs/QmdUnoXoyYoG9SGWyQZCFyLDRUUX3eXyXetkRvw6jxqqBz\"]},\"src/contracts/vault/VaultStorage.sol\":{\"keccak256\":\"0x57db25b127d77ea3472de53e3a4af3354399655b9268638b99ca5925fa364a56\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://aa763d9a6ec508ae3abfb8228b72b9fd9525279e5135d4962e79ff059feb1173\",\"dweb:/ipfs/QmcbDR6E9wyEpu6V2FkEC4hnWy47zXA9LSKJde6zSGd33Q\"]},\"src/interfaces/common/IEntity.sol\":{\"keccak256\":\"0x8ef4b63d6da63489778ccd5f8d13ebdd527dd4b62730b2c616df5af7474d2d21\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a8d69576a9219d85c50816a18ad53a4d53cfcb27ed38b8cccc808dc2734b71b\",\"dweb:/ipfs/QmYVN3P4Q4REvBWJ97TbAcaxm3uyB2anV6NSGa6ZtSwcEv\"]},\"src/interfaces/common/IMigratableEntity.sol\":{\"keccak256\":\"0x8f5f2809f3afbe8ebfbb365dd7b57b4dd3b6f9943a6187eaf648d45895b8e3c4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ffe640537d539e7a4fde70d30d3e4c57f4ba9c2c25c450cea713aae38e8fd5c\",\"dweb:/ipfs/QmSUTGzvdcn1R1KB7tLThMRtESsfPbeXDhhhKWGtntzBds\"]},\"src/interfaces/common/IRegistry.sol\":{\"keccak256\":\"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014\",\"dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK\"]},\"src/interfaces/common/IStaticDelegateCallable.sol\":{\"keccak256\":\"0xa335d4e81b9071b7de66ef92b43ff20671d86516eb1be46fef29a3483cd3f5d5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d464b9db863c14c05547d2b23352f2e9b7b784799cf09f6bbc4906a2a74e3516\",\"dweb:/ipfs/QmUVWzFvJz7eEbDQKiFTTzwi7TEbjcs3VmwdM4kuptAKvi\"]},\"src/interfaces/delegator/IBaseDelegator.sol\":{\"keccak256\":\"0x96bb312f032e17accce3f8f80936d99468029d6b37c9ca74acdb4b026a0148ee\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2a66dcb5b7d1a6ef6a363431ea98ebd78bc4fdd3d7a134d9b542dc66e7d025c2\",\"dweb:/ipfs/QmRhTPLd2ZAyRHmJUFUcWKs9b3if49QY17LYZuRqWmghw8\"]},\"src/interfaces/delegator/IDelegatorHook.sol\":{\"keccak256\":\"0xc51aa8d7d1f6c8043ee819b7aeb86da0e993912e1442098df897e299f01f9f46\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://adddf5cb2ba282aeb576b26efb28640f865a1721cc9b6eee8b3ee0457a2c9780\",\"dweb:/ipfs/QmNYgAmnLRwWZbhTuQhZs9rx4zcme1df5mEepkrniorSoW\"]},\"src/interfaces/delegator/IFullRestakeDelegator.sol\":{\"keccak256\":\"0xa3c8cb2e45d4d8ce90e95263bea40c01dc400f05ad65bc29597d878606be5e7d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://782cf5e201aa4cca037ebafd3807a68ff1cc721d5b8416a35244db0d0607369e\",\"dweb:/ipfs/QmQkJks6x7CKndeTPa9LxgTNygD5uEi7obhADhpq1Lsr9A\"]},\"src/interfaces/delegator/INetworkRestakeDelegator.sol\":{\"keccak256\":\"0xe7030fe30389a147fd710e3436ec346b4842695fd3e65a81b95375c9f1d633fc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://739c7e66d301778054f5c90bee45ec9438f68afba8a03eaaac52064c73b115ad\",\"dweb:/ipfs/QmfZ2ytKcTykAc76nxhg8ikUXV8NdBpetqb8W4YWPcox1Z\"]},\"src/interfaces/delegator/IOperatorNetworkSpecificDelegator.sol\":{\"keccak256\":\"0x74b95e64d29769202d45dd277bb830f623ff3d41ce77b80ce3ee4e318a5c71ec\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e512b903aae5c1b8a028c6e3f4f6223b5cb5d704503cfa6bd37b5346868f5c20\",\"dweb:/ipfs/QmZim9YExsPWtyxyeui993HTKAEmrg8MUcSkZ77Gp2JcuZ\"]},\"src/interfaces/delegator/IOperatorSpecificDelegator.sol\":{\"keccak256\":\"0x72075cab585dc17240cc3e32bc99b92f0d5627ddd988fed680e3e1a52d5a01e4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7448bc90699409ae61d85216b5efc2143a37f0f73354be2aea993bc54afca441\",\"dweb:/ipfs/QmXE4gAxM8pHosZK8mcTcj17puBx484meDCcmrDePskGHZ\"]},\"src/interfaces/service/IOptInService.sol\":{\"keccak256\":\"0x76fb5460a6d87a5705433d4fbeff7253cd75b8bbd0c888b2088f16e86ace146a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://990322019b3d11465f7024bae77ccbf7e2fe5d6fa3c754584778f37d04fa1337\",\"dweb:/ipfs/QmaSNHzcqxTkUCG9a4nqVfLECHLdjdrwAnDi3yDC7tDL24\"]},\"src/interfaces/slasher/IBaseSlasher.sol\":{\"keccak256\":\"0x7c82528b445659c313ab77335c407b0b6efe5e79027187bb287f7bc74202b404\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0274c90aa5df1aa6bb470a6aab53992fb14fd7e5472c9430416505b29647d9cf\",\"dweb:/ipfs/QmckbmJLDetPemVzCnnGcKYWAZV2BRFXGDsjiaec8jkHxx\"]},\"src/interfaces/vault/IVault.sol\":{\"keccak256\":\"0xffee01d383cd4e1a5530c614bf4360c1ef070c288abec9da1eb531b51bc07235\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://04f0046cac285d8ec44ebbb1f79dc94fab4495767190cad8364fbc1fafaadfb9\",\"dweb:/ipfs/QmUawAunwzXfCyShWfhKeThAgKtqe51hmrxvrXvM772M2R\"]},\"src/interfaces/vault/IVaultStorage.sol\":{\"keccak256\":\"0x592626f13754194f83047135de19229c49390bd59e34659b1bb38be71d973a22\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://06a6a9dfddd05e580b32bebe2cff4f63ba26a653180676d58225dd30d9c89d3e\",\"dweb:/ipfs/QmdgzBeY6Sxo8mGtyBxtv1tM1c2kU6J6zjeRd7vuXm4DU6\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.25+commit.b61c2a91"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"baseDelegatorHints","type":"address"},{"internalType":"address","name":"vaultHints","type":"address"},{"internalType":"address","name":"optInServiceHints","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"AccessControlBadConfirmation"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bytes32","name":"neededRole","type":"bytes32"}],"type":"error","name":"AccessControlUnauthorizedAccount"},{"inputs":[],"type":"error","name":"AlreadySet"},{"inputs":[],"type":"error","name":"CheckpointUnorderedInsertion"},{"inputs":[],"type":"error","name":"DuplicateRoleHolder"},{"inputs":[],"type":"error","name":"ExceedsMaxNetworkLimit"},{"inputs":[],"type":"error","name":"ExternalCall"},{"inputs":[],"type":"error","name":"InsufficientHookGas"},{"inputs":[],"type":"error","name":"InvalidInitialization"},{"inputs":[],"type":"error","name":"MathOverflowedMulDiv"},{"inputs":[],"type":"error","name":"MissingRoleHolders"},{"inputs":[],"type":"error","name":"NotInitialized"},{"inputs":[],"type":"error","name":"NotInitializing"},{"inputs":[],"type":"error","name":"NotNetwork"},{"inputs":[],"type":"error","name":"NotSlasher"},{"inputs":[],"type":"error","name":"NotVault"},{"inputs":[],"type":"error","name":"ReentrancyGuardReentrantCall"},{"inputs":[{"internalType":"uint8","name":"bits","type":"uint8"},{"internalType":"uint256","name":"value","type":"uint256"}],"type":"error","name":"SafeCastOverflowedUintDowncast"},{"inputs":[],"type":"error","name":"ZeroAddressRoleHolder"},{"inputs":[{"internalType":"uint64","name":"version","type":"uint64","indexed":false}],"type":"event","name":"Initialized","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32","indexed":true},{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false},{"internalType":"uint48","name":"captureTimestamp","type":"uint48","indexed":false}],"type":"event","name":"OnSlash","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"bytes32","name":"previousAdminRole","type":"bytes32","indexed":true},{"internalType":"bytes32","name":"newAdminRole","type":"bytes32","indexed":true}],"type":"event","name":"RoleAdminChanged","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"address","name":"sender","type":"address","indexed":true}],"type":"event","name":"RoleGranted","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"address","name":"sender","type":"address","indexed":true}],"type":"event","name":"RoleRevoked","anonymous":false},{"inputs":[{"internalType":"address","name":"hook","type":"address","indexed":true}],"type":"event","name":"SetHook","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"SetMaxNetworkLimit","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"SetNetworkLimit","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32","indexed":true},{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"uint256","name":"shares","type":"uint256","indexed":false}],"type":"event","name":"SetOperatorNetworkShares","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"BASE_DELEGATOR_HINTS","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"DEFAULT_ADMIN_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"FACTORY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"HOOK_GAS_LIMIT","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"HOOK_RESERVE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"HOOK_SET_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"NETWORK_LIMIT_SET_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"NETWORK_REGISTRY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"OPERATOR_NETWORK_OPT_IN_SERVICE","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"OPERATOR_NETWORK_SHARES_SET_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"OPERATOR_VAULT_OPT_IN_SERVICE","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"OPT_IN_SERVICE_HINTS","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"TYPE","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"VAULT_FACTORY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"VAULT_HINTS","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"VERSION","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getRoleAdmin","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"grantRole"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"hasRole","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"hook","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"}],"stateMutability":"view","type":"function","name":"maxNetworkLimit","outputs":[{"internalType":"uint256","name":"value","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"}],"stateMutability":"view","type":"function","name":"networkLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"uint48","name":"timestamp","type":"uint48"},{"internalType":"bytes","name":"hint","type":"bytes"}],"stateMutability":"view","type":"function","name":"networkLimitAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"delegator","type":"address"},{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"uint48","name":"timestamp","type":"uint48"}],"stateMutability":"view","type":"function","name":"networkLimitHint","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"uint48","name":"timestamp","type":"uint48"}],"stateMutability":"view","type":"function","name":"networkLimitHintInternal","outputs":[{"internalType":"bool","name":"exists","type":"bool"},{"internalType":"uint32","name":"hint","type":"uint32"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint48","name":"captureTimestamp","type":"uint48"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"onSlash"},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"operatorNetworkShares","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint48","name":"timestamp","type":"uint48"},{"internalType":"bytes","name":"hint","type":"bytes"}],"stateMutability":"view","type":"function","name":"operatorNetworkSharesAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"delegator","type":"address"},{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint48","name":"timestamp","type":"uint48"}],"stateMutability":"view","type":"function","name":"operatorNetworkSharesHint","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint48","name":"timestamp","type":"uint48"}],"stateMutability":"view","type":"function","name":"operatorNetworkSharesHintInternal","outputs":[{"internalType":"bool","name":"exists","type":"bool"},{"internalType":"uint32","name":"hint","type":"uint32"}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"callerConfirmation","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"renounceRole"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"revokeRole"},{"inputs":[{"internalType":"address","name":"hook_","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setHook"},{"inputs":[{"internalType":"uint96","name":"identifier","type":"uint96"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setMaxNetworkLimit"},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setNetworkLimit"},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint256","name":"shares","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setOperatorNetworkShares"},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"stake","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint48","name":"timestamp","type":"uint48"},{"internalType":"bytes","name":"hints","type":"bytes"}],"stateMutability":"view","type":"function","name":"stakeAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"delegator","type":"address"},{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint48","name":"timestamp","type":"uint48"}],"stateMutability":"view","type":"function","name":"stakeHints","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"staticDelegateCall"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"}],"stateMutability":"view","type":"function","name":"totalOperatorNetworkShares","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"uint48","name":"timestamp","type":"uint48"},{"internalType":"bytes","name":"hint","type":"bytes"}],"stateMutability":"view","type":"function","name":"totalOperatorNetworkSharesAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"delegator","type":"address"},{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"uint48","name":"timestamp","type":"uint48"}],"stateMutability":"view","type":"function","name":"totalOperatorNetworkSharesHint","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"uint48","name":"timestamp","type":"uint48"}],"stateMutability":"view","type":"function","name":"totalOperatorNetworkSharesHintInternal","outputs":[{"internalType":"bool","name":"exists","type":"bool"},{"internalType":"uint32","name":"hint","type":"uint32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"vault","outputs":[{"internalType":"address","name":"","type":"address"}]}],"devdoc":{"kind":"dev","methods":{"VERSION()":{"details":"Must return 1 for this one.","returns":{"_0":"version of the delegator"}},"getRoleAdmin(bytes32)":{"details":"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}."},"grantRole(bytes32,address)":{"details":"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event."},"hasRole(bytes32,address)":{"details":"Returns `true` if `account` has been granted `role`."},"initialize(bytes)":{"params":{"data":"some data to use"}},"networkLimit(bytes32)":{"params":{"subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"},"returns":{"_0":"limit of the subnetwork"}},"networkLimitAt(bytes32,uint48,bytes)":{"params":{"hint":"hint for checkpoint index","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)","timestamp":"time point to get the subnetwork limit at"},"returns":{"_0":"limit of the subnetwork at the given timestamp"}},"onSlash(bytes32,address,uint256,uint48,bytes)":{"details":"Only the vault's slasher can call this function.","params":{"amount":"amount of the collateral slashed","captureTimestamp":"time point when the stake was captured","data":"some additional data","operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"}},"operatorNetworkShares(bytes32,address)":{"params":{"operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"},"returns":{"_0":"shares of the operator for the subnetwork"}},"operatorNetworkSharesAt(bytes32,address,uint48,bytes)":{"params":{"hint":"hint for checkpoint index","operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)","timestamp":"time point to get the operator's shares at"},"returns":{"_0":"shares of the operator for the subnetwork at the given timestamp"}},"renounceRole(bytes32,address)":{"details":"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `callerConfirmation`. May emit a {RoleRevoked} event."},"revokeRole(bytes32,address)":{"details":"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event."},"setHook(address)":{"details":"Only a HOOK_SET_ROLE holder can call this function. The hook can have arbitrary logic under certain functions, however, it doesn't affect the stake guarantees.","params":{"hook":"address of the hook"}},"setMaxNetworkLimit(uint96,uint256)":{"details":"Only a network can call this function.","params":{"amount":"new maximum subnetwork's limit"}},"setNetworkLimit(bytes32,uint256)":{"details":"Only a NETWORK_LIMIT_SET_ROLE holder can call this function.","params":{"amount":"new limit of the subnetwork","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"}},"setOperatorNetworkShares(bytes32,address,uint256)":{"details":"Only an OPERATOR_NETWORK_SHARES_SET_ROLE holder can call this function.","params":{"operator":"address of the operator","shares":"new shares of the operator for the subnetwork","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"}},"stake(bytes32,address)":{"details":"Warning: this function is not safe to use for stake capturing, as it can change by the end of the block.","params":{"operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"},"returns":{"_0":"slashable stake until the end of the next epoch"}},"stakeAt(bytes32,address,uint48,bytes)":{"details":"Warning: it is not safe to use timestamp >= current one for the stake capturing, as it can change later.","params":{"hints":"hints for the checkpoints' indexes","operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)","timestamp":"time point to capture the stake at"},"returns":{"_0":"slashable stake at the given timestamp until the end of the consequent epoch"}},"staticDelegateCall(address,bytes)":{"details":"It allows to use this contract's storage on-chain.","params":{"data":"data to make a delegatecall with","target":"address of the contract to make a delegatecall to"}},"supportsInterface(bytes4)":{"details":"See {IERC165-supportsInterface}."},"totalOperatorNetworkShares(bytes32)":{"params":{"subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"},"returns":{"_0":"total shares of the operators for the subnetwork"}},"totalOperatorNetworkSharesAt(bytes32,uint48,bytes)":{"params":{"hint":"hint for checkpoint index","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)","timestamp":"time point to get the total operators' shares at"},"returns":{"_0":"total shares of the operators for the subnetwork at the given timestamp"}}},"version":1},"userdoc":{"kind":"user","methods":{"FACTORY()":{"notice":"Get the factory's address."},"HOOK_GAS_LIMIT()":{"notice":"Get a gas limit for the hook."},"HOOK_RESERVE()":{"notice":"Get a reserve gas between the gas limit check and the hook's execution."},"HOOK_SET_ROLE()":{"notice":"Get a hook setter's role."},"NETWORK_LIMIT_SET_ROLE()":{"notice":"Get a subnetwork limit setter's role."},"NETWORK_REGISTRY()":{"notice":"Get the network registry's address."},"OPERATOR_NETWORK_OPT_IN_SERVICE()":{"notice":"Get the operator-network opt-in service's address."},"OPERATOR_NETWORK_SHARES_SET_ROLE()":{"notice":"Get an operator-subnetwork shares setter's role."},"OPERATOR_VAULT_OPT_IN_SERVICE()":{"notice":"Get the operator-vault opt-in service's address."},"TYPE()":{"notice":"Get the entity's type."},"VAULT_FACTORY()":{"notice":"Get the vault factory's address."},"VERSION()":{"notice":"Get a version of the delegator (different versions mean different interfaces)."},"hook()":{"notice":"Get the hook's address."},"initialize(bytes)":{"notice":"Initialize this entity contract by using a given data."},"maxNetworkLimit(bytes32)":{"notice":"Get a particular subnetwork's maximum limit (meaning the subnetwork is not ready to get more as a stake)."},"networkLimit(bytes32)":{"notice":"Get a subnetwork's limit (how much stake the vault curator is ready to give to the subnetwork)."},"networkLimitAt(bytes32,uint48,bytes)":{"notice":"Get a subnetwork's limit at a given timestamp using a hint (how much stake the vault curator is ready to give to the subnetwork)."},"onSlash(bytes32,address,uint256,uint48,bytes)":{"notice":"Called when a slash happens."},"operatorNetworkShares(bytes32,address)":{"notice":"Get an operator's shares for a subnetwork (what percentage, which is equal to the shares divided by the total operators' shares, of the subnetwork's stake the vault curator is ready to give to the operator)."},"operatorNetworkSharesAt(bytes32,address,uint48,bytes)":{"notice":"Get an operator's shares for a subnetwork at a given timestamp using a hint (what percentage, which is equal to the shares divided by the total operators' shares, of the subnetwork's stake the vault curator is ready to give to the operator)."},"setHook(address)":{"notice":"Set a new hook."},"setMaxNetworkLimit(uint96,uint256)":{"notice":"Set a maximum limit for a subnetwork (how much stake the subnetwork is ready to get). identifier identifier of the subnetwork"},"setNetworkLimit(bytes32,uint256)":{"notice":"Set a subnetwork's limit (how much stake the vault curator is ready to give to the subnetwork)."},"setOperatorNetworkShares(bytes32,address,uint256)":{"notice":"Set an operator's shares for a subnetwork (what percentage, which is equal to the shares divided by the total operators' shares, of the subnetwork's stake the vault curator is ready to give to the operator)."},"stake(bytes32,address)":{"notice":"Get a stake that a given subnetwork will be able to slash for a certain operator until the end of the next epoch (if no cross-slashing and no slashings by the subnetwork)."},"stakeAt(bytes32,address,uint48,bytes)":{"notice":"Get a stake that a given subnetwork could be able to slash for a certain operator at a given timestamp until the end of the consequent epoch using hints (if no cross-slashing and no slashings by the subnetwork)."},"staticDelegateCall(address,bytes)":{"notice":"Make a delegatecall from this contract to a given target contract with a particular data (always reverts with a return data)."},"totalOperatorNetworkShares(bytes32)":{"notice":"Get a sum of operators' shares for a subnetwork."},"totalOperatorNetworkSharesAt(bytes32,uint48,bytes)":{"notice":"Get a sum of operators' shares for a subnetwork at a given timestamp using a hint."},"vault()":{"notice":"Get the vault's address."}},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/contracts/hints/DelegatorHints.sol":"NetworkRestakeDelegatorHints"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol":{"keccak256":"0x6662ec4e5cefca03eeadd073e9469df8d2944bb2ee8ec8f7622c2c46aab5f225","urls":["bzz-raw://4d8544c6f8daa4d1bc215c6a72fe0acdb748664a105b0e5efc19295667521d45","dweb:/ipfs/QmdGWqdnXT8S3RgCR6aV8XHZrsybieMQLLnug1NtpSjEXN"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol":{"keccak256":"0xc163fcf9bb10138631a9ba5564df1fa25db9adff73bd9ee868a8ae1858fe093a","urls":["bzz-raw://9706d43a0124053d9880f6e31a59f31bc0a6a3dc1acd66ce0a16e1111658c5f6","dweb:/ipfs/QmUFmfowzkRwGtDu36cXV9SPTBHJ3n7dG9xQiK5B28jTf2"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b","urls":["bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609","dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol":{"keccak256":"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397","urls":["bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9","dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardUpgradeable.sol":{"keccak256":"0xb44e086e941292cdc7f440de51478493894ef0b1aeccb0c4047445919f667f74","urls":["bzz-raw://942dad22fbdc1669f025540ba63aa3ccfad5f8458fc5d4525b31ebf272e7af45","dweb:/ipfs/Qmdo4X2M82aM3AMoW2kf2jhYkSCyC4T1pHNd6obdsDFnAB"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol":{"keccak256":"0xdaba3f7c42c55b2896353f32bd27d4d5f8bae741b3b05d4c53f67abc4dc47ce8","urls":["bzz-raw://1fa2e61141c602510bcd2cd936ed9561922ac8772a9b9c9a9db091a74e354a45","dweb:/ipfs/QmcHQDDoEBwJmwUbzoVkytvJsBx3KVHYFFnDkvRGWh9Wmh"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol":{"keccak256":"0xb6b36edd6a2999fd243ff226d6cbf84bd71af2432bbd0dfe19392996a1d9cb41","urls":["bzz-raw://1fd2f35495652e57e3f99bc6c510bc5f7dd398a176ea2e72d8ed730aebc6ca26","dweb:/ipfs/QmTQV6X4gkikTib49cho5iDX3JvSQbdsoEChoDwrk3CbbH"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC1271.sol":{"keccak256":"0x85a45f3f10014a0f8be41157a32b6a5f905753ea64a4b64e29fc12b7deeecf39","urls":["bzz-raw://c3c74009ce36136b36c77c23935b8e4a7b4f253be2da2be4fb4a916b1ce43743","dweb:/ipfs/QmcH36v3iN7SJJuF73AunLR2LtNxhVJ1wm63ph4dPZ4pcL"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC5267.sol":{"keccak256":"0x92aa1df62dc3d33f1656d63bede0923e0df0b706ad4137c8b10b0a8fe549fd92","urls":["bzz-raw://c5c0f29195ad64cbe556da8e257dac8f05f78c53f90323c0d2accf8e6922d33a","dweb:/ipfs/QmQ61TED8uaCZwcbh8KkgRSsCav7x7HbcGHwHts3U4DmUP"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70","urls":["bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c","dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol":{"keccak256":"0x6008dabfe393240d73d7dd7688033f72740d570aa422254d29a7dce8568f3aff","urls":["bzz-raw://f5196ec75139918c6c7bb4251b36395e668f1fa6d206beba7e7520e74913940d","dweb:/ipfs/QmSyqjksXxmm2mCG6qRd1yuwLykypkSVBbnBnGqJRcuJMi"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0x37bb49513c49c87c4642a891b13b63571bc87013dde806617aa1efb54605f386","urls":["bzz-raw://b3036b3a83b7c48f96641f2a9002b9f2dcb6a5958dd670894ada21ae8229b3d0","dweb:/ipfs/QmUNfSBdoVtjhETaUJCYcaC7pTMgbhht926tJ2uXJbiVd3"],"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/ShortStrings.sol":{"keccak256":"0x18a7171df639a934592915a520ecb97c5bbc9675a1105607aac8a94e72bf62c6","urls":["bzz-raw://7478e1f13da69a2867ccd883001d836b75620362e743f196376d63ed0c422a1c","dweb:/ipfs/QmWywcQ9TNfwtoqAxbn25d8C5VrV12PrPS9UjtGe6pL2BA"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol":{"keccak256":"0x32ba59b4b7299237c8ba56319110989d7978a039faf754793064e967e5894418","urls":["bzz-raw://1ae50c8b562427df610cc4540c9bf104acca7ef8e2dcae567ae7e52272281e9c","dweb:/ipfs/QmTHiadFCSJUPpRjNegc5SahmeU8bAoY8i9Aq6tVscbcKR"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0x55f102ea785d8399c0e58d1108e2d289506dde18abc6db1b7f68c1f9f9bc5792","urls":["bzz-raw://6e52e0a7765c943ef14e5bcf11e46e6139fa044be564881378349236bf2e3453","dweb:/ipfs/QmZEeeXoFPW47amyP35gfzomF9DixqqTEPwzBakv6cZw6i"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol":{"keccak256":"0xeed0a08b0b091f528356cbc7245891a4c748682d4f6a18055e8e6ca77d12a6cf","urls":["bzz-raw://ba80ba06c8e6be852847e4c5f4492cef801feb6558ae09ed705ff2e04ea8b13c","dweb:/ipfs/QmXRJDv3xHLVQCVXg1ZvR35QS9sij5y9NDWYzMfUfAdTHF"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/EIP712.sol":{"keccak256":"0x999f705a027ed6dc2d4e0df2cc4a509852c6bfd11de1c8161bf88832d0503fd0","urls":["bzz-raw://0798def67258d9a3cc20b2b4da7ebf351a5cefe0abfdd665d2d81f8e32f89b21","dweb:/ipfs/QmPEvJosnPfzHNjKvCv2D3891mA2Ww8eUwkqrxBjuYdHCt"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol":{"keccak256":"0xba333517a3add42cd35fe877656fc3dfcc9de53baa4f3aabbd6d12a92e4ea435","urls":["bzz-raw://2ceacff44c0fdc81e48e0e0b1db87a2076d3c1fb497341de077bf1da9f6b406c","dweb:/ipfs/QmRUo1muMRAewxrKQ7TkXUtknyRoR57AyEkoPpiuZQ8FzX"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/SignatureChecker.sol":{"keccak256":"0x6b11eb41a228cca35d4b662b4df69fcd75192851365102690f57b2ac01e83fe6","urls":["bzz-raw://ab006a2983ed350d2af21ddcdd835dcae3b8340086cc4d088460da5abd041f69","dweb:/ipfs/QmbEacDhkJZiGrgzLjB4pNtE8Z1uudjDw1DvcDUTVQFsLG"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b","urls":["bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df","dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d","urls":["bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875","dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol":{"keccak256":"0xe19a4d5f31d2861e7344e8e535e2feafb913d806d3e2b5fe7782741a2a7094fe","urls":["bzz-raw://4aed79c0fa6f0546ed02f2f683e8f77f0fd2ed7eb34d8bbf3d373c9a6d95b13c","dweb:/ipfs/QmWqVz6UAVqmnWU5pqYPt1o6iDEZyPaBraAA3rKfTTSfYj"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0x5f7e4076e175393767754387c962926577f1660dd9b810187b9002407656be72","urls":["bzz-raw://7d533a1c97cd43a57cd9c465f7ee8dd0e39ae93a8fb8ff8e5303a356b081cdcc","dweb:/ipfs/QmVBEei6aTnvYNZp2CHYVNKyZS4q1KkjANfY39WVXZXVoT"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/Checkpoints.sol":{"keccak256":"0xbdc5e074d7dd6678f67e92b1a51a20226801a407b0e1af3da367c5d1ff4519ad","urls":["bzz-raw://a36cca6b22fff3db16fc789ff6c60eea71d4b156065d4d0c83a0bc5e91a77a8b","dweb:/ipfs/QmYN3exd5AemxjBrN8XMB1p5LbbE16uC3sjbYjwi8AjcGR"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/types/Time.sol":{"keccak256":"0xc7755af115020049e4140f224f9ee88d7e1799ffb0646f37bf0df24bf6213f58","urls":["bzz-raw://7f09bf94d5274334ec021f61a04659db303f31e60460e14b709c9bf187740111","dweb:/ipfs/QmNvgomZYUwFAt4cZbPWAiTeSZQreGehY9BK5xyVJsUttb"],"license":"MIT"},"src/contracts/common/Entity.sol":{"keccak256":"0x3d61a932995b8443381f3950542d388223a2c26dd5d29a3274dea3baa7388bd7","urls":["bzz-raw://7cdf5f03ca72fd263fd32ff59c8d88ddca911ae83896a287d10772c1bbe9b138","dweb:/ipfs/QmbP84r5BWT1Rn9AYTntWSf3xUMTTCohTZJFhbBhDXFoHa"],"license":"BUSL-1.1"},"src/contracts/common/MigratableEntity.sol":{"keccak256":"0x2d736f4dacd5d7e7697503bc426c78b8250fe1694ca157965ec178da6807de58","urls":["bzz-raw://f1237acf96b4b9f9b69156e068eddd726a6e15bd8e87a18dc999cd4ba4da069c","dweb:/ipfs/QmS6M8fiFFSeuJ4ZKKq1z8W7w4ybeHQSy5TLASGoc1LVic"],"license":"BUSL-1.1"},"src/contracts/common/StaticDelegateCallable.sol":{"keccak256":"0x350029aa8955eacaffffaeb58babc5c98e80ebc5c5db388ed17ee6465f4a9d90","urls":["bzz-raw://eb392a8ee9050e0af606897df63e3404e3829e8b688b580663892f9664195764","dweb:/ipfs/QmaXC8jqV8UrrAFkzXTEv2fJF56sy33HhLxAzaRZmUxuXD"],"license":"BUSL-1.1"},"src/contracts/delegator/BaseDelegator.sol":{"keccak256":"0x7c54d491fdd4415b764a9c8defa068e56d4c0c8c9419be0053a1d377669290e8","urls":["bzz-raw://9238bfbad0f6eeb0dc7727724de14380f1980b395902269703d5e2ef07e52e10","dweb:/ipfs/QmPJn1V4HNXcEghYvogGuSTF24dSQUPosR5qtsXcmNqRm3"],"license":"BUSL-1.1"},"src/contracts/delegator/FullRestakeDelegator.sol":{"keccak256":"0x0a81c4f8e72914563a9cb771e93acf889c71ea36b7bec040e4eb562b199d5af1","urls":["bzz-raw://6fc66b6ba02da77046a0bbbd1dd407a62c08f52e04486c9cbd2cb1cca3da555f","dweb:/ipfs/QmZQivK1ZnMxfRQQ5aLpV9co5u55wQVNev5Rg1hzAqxhkE"],"license":"BUSL-1.1"},"src/contracts/delegator/NetworkRestakeDelegator.sol":{"keccak256":"0xd3a8e6522f9c6fdcc2da837c9023afd6bdff2bce45a35590320c475519e3636d","urls":["bzz-raw://58b17a87f6554f08376f9ea7fedf486a4aa75801bf0ad8b23ff5a46959b6b7a3","dweb:/ipfs/QmSTmNh67tYt8CmjVZb57r8N3qX5yeYdMApKPJm3qvQgQw"],"license":"BUSL-1.1"},"src/contracts/delegator/OperatorNetworkSpecificDelegator.sol":{"keccak256":"0x031a10722b9ec49048f0952710401131290adb87e71caf294e864e7ac3b98a16","urls":["bzz-raw://72428febc875134b2f29205e6f294634a1c22a7d5c78d6a9cb2f8196f107c9b5","dweb:/ipfs/QmTPwXR6h5oytckmkLrHdKeEMdphJxceDhYUR4zvQeWAwY"],"license":"BUSL-1.1"},"src/contracts/delegator/OperatorSpecificDelegator.sol":{"keccak256":"0x630ce62fa30b9f3349ab7a8cf8dbf041319febc6dd757be2f94d3d25944ed328","urls":["bzz-raw://c2ac59d47ce57d2a6819ae9833e1a618a371eccff93eb5ab367b201b01f42bfa","dweb:/ipfs/QmdBpGMBivpNPv2WbH8vnCUy5xkVeaxQvGgqi33vKCz1kA"],"license":"BUSL-1.1"},"src/contracts/hints/DelegatorHints.sol":{"keccak256":"0x44aa0c396311a54afbc7c73e8dadeed41e3165a4fd13f712b27d63d50fc3376d","urls":["bzz-raw://2f255214f3531fc707d88be0d56a7a0aed4180439316d099d760d9118aa83093","dweb:/ipfs/QmZD1w5p1ukJSXumUAjvxwGmkPhn7vsr21Y2atLGEZR2oi"],"license":"BUSL-1.1"},"src/contracts/hints/Hints.sol":{"keccak256":"0x8b565df1ae35993c097a9e642002782a8f451f6fd01809cad6bcd345bdf1b99c","urls":["bzz-raw://99a19adb01e350a92f534095b3078229df1f2f83077992d75d58d8684be45971","dweb:/ipfs/QmbmwcuswVbzvwHQFTtrJG86oV98GnfxqYTb8cV8u1acox"],"license":"BUSL-1.1"},"src/contracts/hints/OptInServiceHints.sol":{"keccak256":"0x95d9407900d27b9f4a1233b772aeed809c07b2dc5b31cfc9fa77ca26514c49e5","urls":["bzz-raw://a13a8877e312d7e6b8b85bde3668c5d84ff5ecc83f762cd573f2b7104c64eb42","dweb:/ipfs/QmYV2J55acuGzCNnS3juABuUHY5U1xc8g8o9jwEyFFdeG5"],"license":"BUSL-1.1"},"src/contracts/hints/VaultHints.sol":{"keccak256":"0xccb505b7159b769cc114d67b87c2de6b106557f667fc8f3780114baad5c3c442","urls":["bzz-raw://6d0c80a908fc16e96a8b5605a0bd53f9e89ad0ef0a738fbbae80ba4d3160749b","dweb:/ipfs/QmXo5UtWoR8YmunqcbBU8rQMm1nvmvjNPoXcVrDhh4pEwR"],"license":"BUSL-1.1"},"src/contracts/libraries/Checkpoints.sol":{"keccak256":"0xba90097c8bfe0a975499428b5f8ac5569483c7d92ccc28c12d70de416aae040c","urls":["bzz-raw://12f5d93ca94cd06d3147db68993165a58e17903ed53682560de61f3085ad4609","dweb:/ipfs/QmePiuAqvXprMLmFZkGZeGjvGPAvsEDHfCDv7BoQhXu9xE"],"license":"MIT"},"src/contracts/libraries/ERC4626Math.sol":{"keccak256":"0x8441160513c1cbeb1c3b9ee077bcc7e7ce20006b52a77c8dd39ff0ef89699939","urls":["bzz-raw://943f8cc3e26ddf649f465f40c909819f5c864717c4baa339e9e403b9374a4653","dweb:/ipfs/QmXPxi1sUDsrGprZdUgCzoPEosaZMv9ZhygWQ1vAi1phAB"],"license":"MIT"},"src/contracts/libraries/Subnetwork.sol":{"keccak256":"0xf5ef5506fd66082b3c2e7f3df37529f5a8efad32ac62e7c8914bd63219190bfe","urls":["bzz-raw://ba031a54ee0d0e9a270c2b9e18437f5668cfeb659cfd5fe0677459d7fcac2a56","dweb:/ipfs/QmReP3H7qQ78tAfgLnJKsNEQNCQfF1X1Get38Ffd4kzq32"],"license":"MIT"},"src/contracts/service/OptInService.sol":{"keccak256":"0x4e0932077f2686b7990e10d59deb2535334c0d09e52ef6e57c6ab09eca21c4b1","urls":["bzz-raw://7c00d311032ed4a1743aca7475f3c86ce15cdfc2218108efc3731c03d34a5278","dweb:/ipfs/QmUGGfVwVhaHr5kS4177yKKYiLYzi5qZpkEmvYxBZqazxf"],"license":"BUSL-1.1"},"src/contracts/vault/Vault.sol":{"keccak256":"0x2ceff6ed3298c4cad144c99fcc79b51cb9397d6ebef00285b915848b476f8c2e","urls":["bzz-raw://11f2fb3581854f3ab6e82e8d4935d9eb510c903a13c3f022346c2956a58f5307","dweb:/ipfs/QmdUnoXoyYoG9SGWyQZCFyLDRUUX3eXyXetkRvw6jxqqBz"],"license":"BUSL-1.1"},"src/contracts/vault/VaultStorage.sol":{"keccak256":"0x57db25b127d77ea3472de53e3a4af3354399655b9268638b99ca5925fa364a56","urls":["bzz-raw://aa763d9a6ec508ae3abfb8228b72b9fd9525279e5135d4962e79ff059feb1173","dweb:/ipfs/QmcbDR6E9wyEpu6V2FkEC4hnWy47zXA9LSKJde6zSGd33Q"],"license":"BUSL-1.1"},"src/interfaces/common/IEntity.sol":{"keccak256":"0x8ef4b63d6da63489778ccd5f8d13ebdd527dd4b62730b2c616df5af7474d2d21","urls":["bzz-raw://5a8d69576a9219d85c50816a18ad53a4d53cfcb27ed38b8cccc808dc2734b71b","dweb:/ipfs/QmYVN3P4Q4REvBWJ97TbAcaxm3uyB2anV6NSGa6ZtSwcEv"],"license":"MIT"},"src/interfaces/common/IMigratableEntity.sol":{"keccak256":"0x8f5f2809f3afbe8ebfbb365dd7b57b4dd3b6f9943a6187eaf648d45895b8e3c4","urls":["bzz-raw://0ffe640537d539e7a4fde70d30d3e4c57f4ba9c2c25c450cea713aae38e8fd5c","dweb:/ipfs/QmSUTGzvdcn1R1KB7tLThMRtESsfPbeXDhhhKWGtntzBds"],"license":"MIT"},"src/interfaces/common/IRegistry.sol":{"keccak256":"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb","urls":["bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014","dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK"],"license":"MIT"},"src/interfaces/common/IStaticDelegateCallable.sol":{"keccak256":"0xa335d4e81b9071b7de66ef92b43ff20671d86516eb1be46fef29a3483cd3f5d5","urls":["bzz-raw://d464b9db863c14c05547d2b23352f2e9b7b784799cf09f6bbc4906a2a74e3516","dweb:/ipfs/QmUVWzFvJz7eEbDQKiFTTzwi7TEbjcs3VmwdM4kuptAKvi"],"license":"MIT"},"src/interfaces/delegator/IBaseDelegator.sol":{"keccak256":"0x96bb312f032e17accce3f8f80936d99468029d6b37c9ca74acdb4b026a0148ee","urls":["bzz-raw://2a66dcb5b7d1a6ef6a363431ea98ebd78bc4fdd3d7a134d9b542dc66e7d025c2","dweb:/ipfs/QmRhTPLd2ZAyRHmJUFUcWKs9b3if49QY17LYZuRqWmghw8"],"license":"MIT"},"src/interfaces/delegator/IDelegatorHook.sol":{"keccak256":"0xc51aa8d7d1f6c8043ee819b7aeb86da0e993912e1442098df897e299f01f9f46","urls":["bzz-raw://adddf5cb2ba282aeb576b26efb28640f865a1721cc9b6eee8b3ee0457a2c9780","dweb:/ipfs/QmNYgAmnLRwWZbhTuQhZs9rx4zcme1df5mEepkrniorSoW"],"license":"MIT"},"src/interfaces/delegator/IFullRestakeDelegator.sol":{"keccak256":"0xa3c8cb2e45d4d8ce90e95263bea40c01dc400f05ad65bc29597d878606be5e7d","urls":["bzz-raw://782cf5e201aa4cca037ebafd3807a68ff1cc721d5b8416a35244db0d0607369e","dweb:/ipfs/QmQkJks6x7CKndeTPa9LxgTNygD5uEi7obhADhpq1Lsr9A"],"license":"MIT"},"src/interfaces/delegator/INetworkRestakeDelegator.sol":{"keccak256":"0xe7030fe30389a147fd710e3436ec346b4842695fd3e65a81b95375c9f1d633fc","urls":["bzz-raw://739c7e66d301778054f5c90bee45ec9438f68afba8a03eaaac52064c73b115ad","dweb:/ipfs/QmfZ2ytKcTykAc76nxhg8ikUXV8NdBpetqb8W4YWPcox1Z"],"license":"MIT"},"src/interfaces/delegator/IOperatorNetworkSpecificDelegator.sol":{"keccak256":"0x74b95e64d29769202d45dd277bb830f623ff3d41ce77b80ce3ee4e318a5c71ec","urls":["bzz-raw://e512b903aae5c1b8a028c6e3f4f6223b5cb5d704503cfa6bd37b5346868f5c20","dweb:/ipfs/QmZim9YExsPWtyxyeui993HTKAEmrg8MUcSkZ77Gp2JcuZ"],"license":"MIT"},"src/interfaces/delegator/IOperatorSpecificDelegator.sol":{"keccak256":"0x72075cab585dc17240cc3e32bc99b92f0d5627ddd988fed680e3e1a52d5a01e4","urls":["bzz-raw://7448bc90699409ae61d85216b5efc2143a37f0f73354be2aea993bc54afca441","dweb:/ipfs/QmXE4gAxM8pHosZK8mcTcj17puBx484meDCcmrDePskGHZ"],"license":"MIT"},"src/interfaces/service/IOptInService.sol":{"keccak256":"0x76fb5460a6d87a5705433d4fbeff7253cd75b8bbd0c888b2088f16e86ace146a","urls":["bzz-raw://990322019b3d11465f7024bae77ccbf7e2fe5d6fa3c754584778f37d04fa1337","dweb:/ipfs/QmaSNHzcqxTkUCG9a4nqVfLECHLdjdrwAnDi3yDC7tDL24"],"license":"MIT"},"src/interfaces/slasher/IBaseSlasher.sol":{"keccak256":"0x7c82528b445659c313ab77335c407b0b6efe5e79027187bb287f7bc74202b404","urls":["bzz-raw://0274c90aa5df1aa6bb470a6aab53992fb14fd7e5472c9430416505b29647d9cf","dweb:/ipfs/QmckbmJLDetPemVzCnnGcKYWAZV2BRFXGDsjiaec8jkHxx"],"license":"MIT"},"src/interfaces/vault/IVault.sol":{"keccak256":"0xffee01d383cd4e1a5530c614bf4360c1ef070c288abec9da1eb531b51bc07235","urls":["bzz-raw://04f0046cac285d8ec44ebbb1f79dc94fab4495767190cad8364fbc1fafaadfb9","dweb:/ipfs/QmUawAunwzXfCyShWfhKeThAgKtqe51hmrxvrXvM772M2R"],"license":"MIT"},"src/interfaces/vault/IVaultStorage.sol":{"keccak256":"0x592626f13754194f83047135de19229c49390bd59e34659b1bb38be71d973a22","urls":["bzz-raw://06a6a9dfddd05e580b32bebe2cff4f63ba26a653180676d58225dd30d9c89d3e","dweb:/ipfs/QmdgzBeY6Sxo8mGtyBxtv1tM1c2kU6J6zjeRd7vuXm4DU6"],"license":"MIT"}},"version":1},"id":86} \ No newline at end of file diff --git a/out/DelegatorHints.sol/OperatorNetworkSpecificDelegatorHints.json b/out/DelegatorHints.sol/OperatorNetworkSpecificDelegatorHints.json index 1883f667..2d0c9812 100644 --- a/out/DelegatorHints.sol/OperatorNetworkSpecificDelegatorHints.json +++ b/out/DelegatorHints.sol/OperatorNetworkSpecificDelegatorHints.json @@ -1 +1 @@ -{"abi":[{"type":"constructor","inputs":[{"name":"baseDelegatorHints","type":"address","internalType":"address"},{"name":"vaultHints","type":"address","internalType":"address"},{"name":"optInServiceHints","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"BASE_DELEGATOR_HINTS","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"DEFAULT_ADMIN_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"FACTORY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"HOOK_GAS_LIMIT","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"HOOK_RESERVE","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"HOOK_SET_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"NETWORK_REGISTRY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"OPERATOR_NETWORK_OPT_IN_SERVICE","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"OPERATOR_REGISTRY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"OPERATOR_VAULT_OPT_IN_SERVICE","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"OPT_IN_SERVICE_HINTS","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"TYPE","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"VAULT_FACTORY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"VAULT_HINTS","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"VERSION","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"pure"},{"type":"function","name":"getRoleAdmin","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"grantRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"hasRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"hook","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"initialize","inputs":[{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"maxNetworkLimit","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"value","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"maxNetworkLimitAt","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"timestamp","type":"uint48","internalType":"uint48"},{"name":"hint","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"maxNetworkLimitHint","inputs":[{"name":"delegator","type":"address","internalType":"address"},{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"timestamp","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"maxNetworkLimitHintInternal","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"timestamp","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"exists","type":"bool","internalType":"bool"},{"name":"hint","type":"uint32","internalType":"uint32"}],"stateMutability":"view"},{"type":"function","name":"network","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"onSlash","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"captureTimestamp","type":"uint48","internalType":"uint48"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"operator","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"renounceRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"callerConfirmation","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"revokeRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setHook","inputs":[{"name":"hook_","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setMaxNetworkLimit","inputs":[{"name":"identifier","type":"uint96","internalType":"uint96"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"stake","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"stakeAt","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"timestamp","type":"uint48","internalType":"uint48"},{"name":"hints","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"stakeHints","inputs":[{"name":"delegator","type":"address","internalType":"address"},{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"timestamp","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"staticDelegateCall","inputs":[{"name":"target","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"vault","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"OnSlash","inputs":[{"name":"subnetwork","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"captureTimestamp","type":"uint48","indexed":false,"internalType":"uint48"}],"anonymous":false},{"type":"event","name":"RoleAdminChanged","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"previousAdminRole","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"newAdminRole","type":"bytes32","indexed":true,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"RoleGranted","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"sender","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"RoleRevoked","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"sender","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"SetHook","inputs":[{"name":"hook","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"SetMaxNetworkLimit","inputs":[{"name":"subnetwork","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"error","name":"AccessControlBadConfirmation","inputs":[]},{"type":"error","name":"AccessControlUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"neededRole","type":"bytes32","internalType":"bytes32"}]},{"type":"error","name":"AlreadySet","inputs":[]},{"type":"error","name":"CheckpointUnorderedInsertion","inputs":[]},{"type":"error","name":"ExternalCall","inputs":[]},{"type":"error","name":"InsufficientHookGas","inputs":[]},{"type":"error","name":"InvalidInitialization","inputs":[]},{"type":"error","name":"InvalidNetwork","inputs":[]},{"type":"error","name":"NotInitialized","inputs":[]},{"type":"error","name":"NotInitializing","inputs":[]},{"type":"error","name":"NotNetwork","inputs":[]},{"type":"error","name":"NotOperator","inputs":[]},{"type":"error","name":"NotSlasher","inputs":[]},{"type":"error","name":"NotVault","inputs":[]},{"type":"error","name":"ReentrancyGuardReentrantCall","inputs":[]},{"type":"error","name":"SafeCastOverflowedUintDowncast","inputs":[{"name":"bits","type":"uint8","internalType":"uint8"},{"name":"value","type":"uint256","internalType":"uint256"}]}],"bytecode":{"object":"0x6101e0346101dc57601f612f7538819003918201601f19168301916001600160401b0391828411858510176101e05781606092869260409687528339810103126101dc5761004c836101f4565b926100648361005d602084016101f4565b92016101f4565b91306080527ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a009081549060ff82871c166101cb578080831603610187575b5050505f60a0525f60c0525f60e052610100935f8552610120935f85526101405f8152610160915f83526101809384526101a09485526101c09586525195612d6c9788610209893960805188610e71015260a0518861062b015260c05188610dee015260e0518881816103dd01528181610e2701526127ae0152518781816102d30152611fd201525186818161031701528181611841015261197001525185818161035b015281816117a801526119ee015251848181610c1b0152612827015251838181610baf0152611369015251828181610ac5015261140a01525181610cf20152f35b6001600160401b0319909116811790915583519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a15f80806100a2565b855163f92ee8a960e01b8152600490fd5b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b51906001600160a01b03821682036101dc5756fe60806040526004361015610011575f80fd5b5f3560e01c806301ffc9a714610264578063103f29071461025f578063128e5d821461025a5780631a80e5001461025557806323f752d514610250578063248a9ca31461024b57806325dc9708146102465780632dd31000146102415780632f2ff15d1461023c57806336568abe146102375780633dfd387314610232578063437224a31461022d578063439fab911461022857806345e78fcb14610223578063557cab441461021e578063570ca735146102195780636679191e146102145780636739afca1461020f57806379d896141461020a5780637f5a7c7b1461020557806383ce03221461020057806391d14854146101fb578063991d1162146101f65780639b656b22146101f15780639f86fd85146101ec578063a217fddf146101e7578063bb24fe8a146101e2578063c0cd7c3e146101dd578063d0f1f901146101d8578063d15b740e146101d3578063d547741f146101ce578063e02f6937146101c9578063e49561ee146101c4578063fbfa77cf146101bf578063fd4d447c146101ba578063ff54740f146101b55763ffa1ad74146101b0575f80fd5b611207565b6111ea565b6111c0565b611199565b610fae565b610f59565b610f0d565b610ee3565b610e56565b610e12565b610dcf565b610db5565b610d21565b610cdd565b610ca8565b610c4a565b610c06565b610bde565b610b9a565b610b72565b610b38565b610b10565b610af4565b610ab0565b610978565b6108f2565b6106f1565b6106a6565b61065a565b610616565b6105bd565b610510565b61038a565b610346565b610302565b6102be565b346102ba5760203660031901126102ba5760043563ffffffff60e01b81168091036102ba57602090637965db0b60e01b81149081156102a9575b506040519015158152f35b6301ffc9a760e01b1490505f61029e565b5f80fd5b346102ba575f3660031901126102ba576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346102ba575f3660031901126102ba576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346102ba575f3660031901126102ba576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346102ba5760403660031901126102ba576004356001600160601b03811681036102ba57602435906103ba611a63565b6040516302910f8b60e31b81523360048201526020816024816001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165afa90811561050b575f916104dc575b50156104ca576001600160601b03166bffffffffffffffffffffffff193360601b16179080610444835f52600260205260405f2090565b54146104b85761049d817fc67e7929681aa1bccd63f52b3799bf5805f3009f197db6fdf584b14f7fbf608c92610482855f52600260205260405f2090565b5561048d8185611a92565b6040519081529081906020820190565b0390a26104b660015f80516020612cf783398151915255565b005b60405163a741a04560e01b8152600490fd5b6040516323d53b9760e21b8152600490fd5b6104fe915060203d602011610504575b6104f68183610854565b81019061122f565b5f61040d565b503d6104ec565b611246565b346102ba5760203660031901126102ba576004355f525f80516020612cd78339815191526020526020600160405f200154604051908152f35b6001600160a01b038116036102ba57565b6064359065ffffffffffff821682036102ba57565b6024359065ffffffffffff821682036102ba57565b6044359065ffffffffffff821682036102ba57565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b346102ba5760803660031901126102ba576106126105fe6004356105e081610549565b6044356105ec81610549565b6105f461055a565b9160243590611320565b604051918291602083526020830190610599565b0390f35b346102ba575f3660031901126102ba576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346102ba5760403660031901126102ba576104b660243560043561067d82610549565b805f525f80516020612cd78339815191526020526106a1600160405f200154611bd4565b611d85565b346102ba5760403660031901126102ba576024356106c381610549565b336001600160a01b038216036106df576104b690600435611dbb565b60405163334bd91960e11b8152600490fd5b346102ba5760203660031901126102ba5760043561070e81610549565b610716611a63565b335f9081527f9ebbcbe0d2961d3fbe56ca6f679bc753bd848d3e6bb3eaf9041c51b286881d2c60205260409020547fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c9060ff16156107cc57506001546001600160a01b0391821691811682146104b8576001600160a01b03191681176001557f5bbb1d3ebb6a3ad2a0f17ff35e579a83af60604d1d3c2a4c83c62adecadf666d5f80a260015f80516020612cf783398151915255005b6044906040519063e2517d3f60e01b82523360048301526024820152fd5b634e487b7160e01b5f52604160045260245ffd5b604081019081106001600160401b0382111761081957604052565b6107ea565b606081019081106001600160401b0382111761081957604052565b608081019081106001600160401b0382111761081957604052565b90601f801991011681019081106001600160401b0382111761081957604052565b604051906108828261081e565b565b60405190610882826107fe565b6001600160401b03811161081957601f01601f191660200190565b81601f820112156102ba578035906108c382610891565b926108d16040519485610854565b828452602083830101116102ba57815f926020809301838601378301015290565b346102ba5760603660031901126102ba5761090b61056f565b6044356001600160401b0381116102ba576020916109306109439236906004016108ac565b906004355f526003845260405f20611e84565b604051908152f35b9181601f840112156102ba578235916001600160401b0383116102ba57602083818601950101116102ba57565b346102ba5760203660031901126102ba576001600160401b036004358181116102ba576109a990369060040161094b565b5f80516020612d17833981519152549260ff8460401c1615931680159081610aa8575b6001149081610a9e575b159081610a95575b50610a83575f80516020612d17833981519152805467ffffffffffffffff19166001179055610a119183610a5f57611f9d565b610a1757005b5f80516020612d17833981519152805460ff60401b19169055604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a1005b5f80516020612d17833981519152805460ff60401b1916600160401b179055611f9d565b60405163f92ee8a960e01b8152600490fd5b9050155f6109de565b303b1591506109d6565b8491506109cc565b346102ba575f3660031901126102ba576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346102ba575f3660031901126102ba576020604051614e208152f35b346102ba575f3660031901126102ba576005546040516001600160a01b039091168152602090f35b346102ba575f3660031901126102ba5760206040517fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c8152f35b346102ba575f3660031901126102ba576004546040516001600160a01b039091168152602090f35b346102ba575f3660031901126102ba576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346102ba575f3660031901126102ba576001546040516001600160a01b039091168152602090f35b346102ba575f3660031901126102ba576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346102ba5760403660031901126102ba57602060ff610c9c602435610c6e81610549565b6004355f525f80516020612cd7833981519152845260405f209060018060a01b03165f5260205260405f2090565b54166040519015158152f35b346102ba5760603660031901126102ba576106126105fe600435610ccb81610549565b610cd3610584565b906024359061154e565b346102ba575f3660031901126102ba576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346102ba5760403660031901126102ba57600435610d3e81610549565b6024356001600160401b0381116102ba575f91610d608392369060040161094b565b90816040519283928337810184815203915af4610dad610d7e611647565b91610d9f604051938492151560208401526040808401526060830190610599565b03601f198101835282610854565b805190602001fd5b346102ba575f3660031901126102ba5760206040515f8152f35b346102ba575f3660031901126102ba5760206040516001600160401b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b346102ba575f3660031901126102ba576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346102ba5760403660031901126102ba57610e6f61056f565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163303610ed15763ffffffff610ebc6040926004355f526003602052835f2061215c565b91505083929192519215158352166020820152f35b604051637ca475e560e11b8152600490fd5b346102ba5760203660031901126102ba576004355f526002602052602060405f2054604051908152f35b346102ba5760403660031901126102ba576104b6602435600435610f3082610549565b805f525f80516020612cd7833981519152602052610f54600160405f200154611bd4565b611dbb565b346102ba5760803660031901126102ba57602435610f7681610549565b610f7e610584565b90606435906001600160401b0382116102ba57602092610fa56109439336906004016108ac565b91600435611732565b346102ba5760a03660031901126102ba57602435600435610fce82610549565b60443591610fda61055a565b90608435906001600160401b0382116102ba57610ffc600492369084016108ac565b611004611a63565b5f546020906110299061101d906001600160a01b031681565b6001600160a01b031690565b60405163b134427160e01b815294859182905afa92831561050b575f93611168575b506001600160a01b039283163303611156576001546001600160a01b03168381166110cb575b50506040805195865265ffffffffffff909316602086015216927f741a5de99085c0d660f3e4192217b0ffb0ea4e35a0480de48e857a4bc3ee36ed91819081015b0390a36104b660015f80516020612cf783398151915255565b909360405194611102866110f4602082019363724ab0f760e11b8552858c898d602487016118bc565b03601f198101885287610854565b62042e305a10611144575f6110b2938192827f741a5de99085c0d660f3e4192217b0ffb0ea4e35a0480de48e857a4bc3ee36ed9951926203d090f15093611071565b604051638072475160e01b8152600490fd5b60405163dabc4ad960e01b8152600490fd5b61118b91935060203d602011611192575b6111838183610854565b8101906112bc565b915f61104b565b503d611179565b346102ba575f3660031901126102ba575f546040516001600160a01b039091168152602090f35b346102ba5760403660031901126102ba5760206109436024356111e281610549565b600435611939565b346102ba575f3660031901126102ba5760206040516203d0908152f35b346102ba575f3660031901126102ba57602060405160018152f35b519081151582036102ba57565b908160209103126102ba5761124390611222565b90565b6040513d5f823e3d90fd5b81601f820112156102ba5780519061126882610891565b926112766040519485610854565b828452602083830101116102ba57815f9260208093018386015e8301015290565b906020828203126102ba5781516001600160401b0381116102ba576112439201611251565b908160209103126102ba575161124381610549565b9061124391602081526112f08251606060208401526080830190610599565b9060606040611310602086015194601f1995868683030184870152610599565b9401519282850301910152610599565b604051630df8851f60e11b81526001600160a01b03828116600483015260248201849052938416604482015265ffffffffffff8516606482015260609594909391925f856084817f000000000000000000000000000000000000000000000000000000000000000087165afa94851561050b575f956114ea575b5060405163fbfa77cf60e01b81526020816004818888165afa90811561050b57611406945f92859284916114cb575b5060405163192c0ff760e21b81526001600160a01b03909116600482015265ffffffffffff90921660248301529094859190829081906044820190565b03917f0000000000000000000000000000000000000000000000000000000000000000165afa92831561050b575f936114a5575b50611445929361154e565b9082511580159061149b575b8015611491575b61146157505050565b610d9f939450906112439291611475610875565b92835260208301526040820152604051928391602083016112d1565b5081511515611458565b5080511515611451565b61144593506114c5903d805f833e6114bd8183610854565b810190611297565b9261143a565b6114e4915060203d602011611192576111838183610854565b5f6113c9565b6114ff9195503d805f833e6114bd8183610854565b935f61139a565b9061124392915f52600360205260405f20611e84565b519063ffffffff821682036102ba57565b91908260409103126102ba57611243602061154784611222565b930161151c565b92915f8060609565ffffffffffff6040519460209663d0f1f90160e01b8888015260248701521660448501526044845261158784610839565b60405193846115b487820192639f86fd8560e01b8452306024840152604060448401526064830190610599565b03946115c8601f1996878101835282610854565b51915afa506115e66115d8611647565b8380825183010191016120db565b9015611639578083806115fe9351830101910161152d565b929061160957505050565b6112439293945061162d604051948592830191909163ffffffff6020820193169052565b03908101835282610854565b809150519182156102ba5701fd5b3d15611671573d9061165882610891565b916116666040519384610854565b82523d5f602084013e565b606090565b60405190611683826107fe565b60606020838281520152565b906020828203126102ba5781516001600160401b03928382116102ba5701906040828203126102ba57604051926116c5846107fe565b82518181116102ba57826116da918501611251565b845260208301519081116102ba576116f29201611251565b602082015290565b6001600160a01b0391821681529116602082015265ffffffffffff909116604082015260806060820181905261124392910190610599565b9261174290929192828486612335565b92909361174d611676565b938051806118a0575b5050841593841561180a575b8415611779575b505050506117745790565b505f90565b6020809495506117a4910151604051958694859463530e1d4360e01b865260601c90600486016116fa565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa90811561050b575f916117eb575b50155f808080611769565b611804915060203d602011610504576104f68183610854565b5f6117e0565b5f549094506001600160a01b031660208486519261183d604051948593849363530e1d4360e01b855289600486016116fa565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa90811561050b575f91611881575b501593611762565b61189a915060203d602011610504576104f68183610854565b5f611879565b6118b492955060208091830101910161168f565b925f80611756565b919360a093611243969565ffffffffffff938552600180871b0316602085015260408401521660608201528160808201520190610599565b634e487b7160e01b5f52601160045260245ffd5b8115611912570490565b634e487b7160e01b5f52601260045260245ffd5b906001820180921161193457565b6118f4565b5f546040516308834cb560e21b8082526001600160a01b0385811660048401529283166024830152929392602092909183816044817f000000000000000000000000000000000000000000000000000000000000000086165afa90811561050b575f91611a46575b50159182156119c2575b505090506119bc5761124391612454565b50505f90565b6040519081526001600160a01b0385166004820152606086901c602482015291508290829060449082907f0000000000000000000000000000000000000000000000000000000000000000165afa91821561050b575f92611a29575b505015805f806119ab565b611a3f9250803d10610504576104f68183610854565b5f80611a1e565b611a5d9150843d8611610504576104f68183610854565b5f6119a1565b5f80516020612cf78339815191526002815414611a805760029055565b604051633ee5aeb560e01b8152600490fd5b6004546001600160a01b0316606082901c03611bc2575f52600360205260405f209065ffffffffffff91824211611ba357824216926001820191825415611b95575b611add81612a78565b509590845493835480155f14611b7657505f975b6001600160d01b0398808a1615611b7057611b0c9088612133565b50505b82611b64575b505015611b4e575050610882935090611b30611b3692611e61565b90612133565b90919082549060031b91821b915f19901b1916179055565b61088295611b5d931691612b65565b5050612543565b16821490505f80611b15565b50611b0f565b5f1990808281011161193457855f5260205f2001015460301c97611af1565b611b9e83612516565b611ad4565b6040516306dfcc6560e41b815260306004820152426024820152604490fd5b6040516386eab41b60e01b8152600490fd5b5f8181525f80516020612cd78339815191526020908152604080832033845290915290205460ff16156107cc5750565b6001600160a01b0381165f9081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d60205260409020545f80516020612cd78339815191529060ff166119bc575f808052602091825260408082206001600160a01b038516835290925220805460ff1916600117905533906001600160a01b03165f7f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d8180a4600190565b6001600160a01b0381165f9081527f9ebbcbe0d2961d3fbe56ca6f679bc753bd848d3e6bb3eaf9041c51b286881d2c602052604090207fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c905f80516020612cd78339815191529060ff905b5416611d7e575f828152602091825260408082206001600160a01b038616835290925220805460ff1916600117905533916001600160a01b0316907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d5f80a4600190565b5050505f90565b5f8181525f80516020612cd7833981519152602081815260408084206001600160a01b038716855290915290912060ff90611d1a565b5f8181525f80516020612cd7833981519152602081815260408084206001600160a01b03871685529091529091205460ff1615611d7e575f828152602091825260408082206001600160a01b038616835290925220805460ff1916905533916001600160a01b0316907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b5f80a4600190565b908160209103126102ba576112439061151c565b5f1981019190821161193457565b90600163ffffffff8093160191821161193457565b91805115611f5d5780602080611e9f93518301019101611e4d565b91611eaa8382612636565b92611ebb845165ffffffffffff1690565b9065ffffffffffff8085169216828114611f515782119182611ef1575b5050611ee8576112439250612566565b50506020015190565b909150611efe8354611e61565b63ffffffff831614918215611f17575b50505f80611ed8565b611f49919250611f32611f2c611f3e92611e6f565b85612636565b5165ffffffffffff1690565b65ffffffffffff1690565b115f80611f0e565b50505050506020015190565b5061124391612566565b9190916040818403126102ba578035611f7f81610549565b9260208201356001600160401b0381116102ba5761124392016108ac565b611fa991810190611f67565b6040516302910f8b60e31b81526001600160a01b039283166004820181905291906020816024817f000000000000000000000000000000000000000000000000000000000000000088165afa90811561050b575f916120bc575b50156120aa5761203e6040916120396120849461201e61269e565b60018060a01b03166001600160601b0360a01b5f5416175f55565b612761565b6020810151600180546001600160a01b0319166001600160a01b0390921691909117905580516001600160a01b031684811661209a575b5001516001600160a01b031690565b90811661208e5750565b61209790611caf565b50565b6120a390611c04565b505f612075565b6040516362df054560e01b8152600490fd5b6120d5915060203d602011610504576104f68183610854565b5f612003565b9190916040818403126102ba576120f181611222565b9260208201516001600160401b0381116102ba576112439201611251565b9060405161211c816107fe565b915465ffffffffffff8116835260301c6020830152565b8054821015612148575f5260205f2001905f90565b634e487b7160e01b5f52603260045260245ffd5b91908254905f829160058411612204575b612178935085612a0f565b9081156121f8576121f16121e86121e26121d86121aa6121a561219a88611e61565b895f5260205f200190565b61210f565b9660016121d160206121c28b5165ffffffffffff1690565b9a01516001600160d01b031690565b9101612133565b90549060031b1c90565b93611e61565b63ffffffff1690565b6001939291565b5f925082915081908190565b919261220f816128dc565b81039081116119345761217893865f52612238611f3e8360205f200165ffffffffffff90541690565b65ffffffffffff8516101561224e57509161216d565b92915061225a90611926565b9061216d565b6040519061226d8261081e565b60606040838281528260208201520152565b906020828203126102ba5781516001600160401b03928382116102ba5701906060828203126102ba57604051926122b58461081e565b82518181116102ba57826122ca918501611251565b845260208301518181116102ba57826122e4918501611251565b602085015260408301519081116102ba576122ff9201611251565b604082015290565b908160209103126102ba575190565b60409065ffffffffffff61124394931681528160208201520190610599565b90939293612341612260565b94805180612438575b5050600454606083901c6001600160a01b0391821614801592919061241d575b5050612415575f546123b092919060209061238f9061101d906001600160a01b031681565b8187015190604051808097819463810da75d60e01b83528860048401612316565b03915afa90811561050b576123dd935f926123e2575b506123d79192604087015191611506565b90612a66565b915190565b6123d792506124089060203d60201161240e575b6124008183610854565b810190612307565b916123c6565b503d6123f6565b505090515f91565b60055481166001600160a01b03169116141590505f8061236a565b61244c92965060208091830101910161227f565b935f8061234a565b6004549091606083901c6001600160a01b0392831614801592906124fb575b5050611774575f54600491906020906124969061101d906001600160a01b031681565b60405163bd49c35f60e01b815293849182905afa90811561050b57611243925f926124d6575b506124cf905f52600260205260405f2090565b5490612a66565b6124cf9192506124f49060203d60201161240e576124008183610854565b91906124bc565b60055481166001600160a01b03169116141590505f80612473565b8054600160401b8110156108195761253391600182018155612133565b8154905f199060031b1b19169055565b90815491600160401b8310156108195782611b3691600161088295018155612133565b908154905f8291600584116125d0575b612581935084612c7f565b806125a957505f905b6001600160d01b038216156119bc576112439160016121d89201612133565b6125c36125b86125ca92611e61565b835f5260205f200190565b5460301c90565b9061258a565b91926125db816128dc565b81039081116119345761258193855f5265ffffffffffff808360205f20015416908516105f1461260c575091612576565b92915061261890611926565b90612576565b6040519061262b826107fe565b5f6020838281520152565b9061265f6126596126809261264961261e565b5061265261261e565b5084612133565b5061210f565b91600165ffffffffffff845116936020828060d01b03910151169101612133565b90549060405192612690846107fe565b835260031b1c602082015290565b6126a6612ac7565b6126ae612ac7565b60015f80516020612cf783398151915255565b604051906126ce8261081e565b5f6040838281528260208201520152565b8091039060a082126102ba576060604051926126fa8461081e565b126102ba5760809060405161270e8161081e565b815161271981610549565b8152602082015161272981610549565b6020820152604082015161273c81610549565b60408201528352606081015161275181610549565b602084015201516122ff81610549565b6127696126c1565b5061277f815191602080809483010191016126df565b80820180516040516302910f8b60e31b8082526001600160a01b039283166004830152939491939082816024817f000000000000000000000000000000000000000000000000000000000000000089165afa90811561050b575f916128bf575b50156104ca57816128239160408701956127ff875160018060a01b031690565b6040519283526001600160a01b031660048301529092839190829081906024820190565b03917f0000000000000000000000000000000000000000000000000000000000000000165afa91821561050b575f926128a2575b5050156128905751600480546001600160a01b039283166001600160a01b03199182161790915591516005805490931691161790555190565b604051631f0853c160e21b8152600490fd5b6128b89250803d10610504576104f68183610854565b5f80612857565b6128d69150833d8511610504576104f68183610854565b5f6127df565b801561177457806123d76129a761299d61299361298961297f61297561296b60016112439a5f908b60801c80612a03575b508060401c806129f6575b508060201c806129e9575b508060101c806129dc575b508060081c806129cf575b508060041c806129c2575b508060021c806129b5575b50821c6129ae575b811c1b612964818b611908565b0160011c90565b612964818a611908565b6129648189611908565b6129648188611908565b6129648187611908565b6129648186611908565b6129648185611908565b8092611908565b8101612957565b600291509101905f61294f565b600491509101905f612944565b600891509101905f612939565b601091509101905f61292e565b602091509101905f612923565b604091509101905f612918565b9150506080905f61290d565b905b838310612a1e5750505090565b909192612a2b8185612af5565b90835f5265ffffffffffff808360205f20015416908416105f14612a535750925b9190612a11565b93506001810180911115612a4c576118f4565b9080821015612a73575090565b905090565b805480612a895750505f905f905f90565b5f1990808281011161193457612aa6925f5260205f20010161210f565b9065ffffffffffff82511691602060018060d01b0391015116906001929190565b60ff5f80516020612d178339815191525460401c1615612ae357565b604051631afcd79f60e31b8152600490fd5b90808216911860011c81018091116119345790565b8054600160401b81101561081957612b2791600182018155612133565b612b5257815160209092015160301b65ffffffffffff191665ffffffffffff92909216919091179055565b634e487b7160e01b5f525f60045260245ffd5b805492939291908215612c5657612b816121a56125b885611e61565b90612b92825165ffffffffffff1690565b65ffffffffffff84811691168110612c4457612c08946020948892612bc0611f3e875165ffffffffffff1690565b03612c0c5750612bfa92612bd6612be192611e61565b905f5260205f200190565b9065ffffffffffff82549181199060301b169116179055565b01516001600160d01b031690565b9190565b915050612c3f91612c2c612c1e610884565b65ffffffffffff9093168352565b6001600160d01b03881682860152612b0a565b612bfa565b604051632520601d60e01b8152600490fd5b612c7a9250612c66612c1e610884565b6001600160d01b0385166020830152612b0a565b5f9190565b905b838310612c8e5750505090565b909192612c9b8185612af5565b90835f5265ffffffffffff808360205f20015416908416105f14612cc35750925b9190612c81565b93506001810180911115612cbc576118f456fe02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268009b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a2646970667358221220b3d48f3b18b846e419493dd0360a4608f48b3385c35e3d4c6be558d241bcf96364736f6c63430008190033","sourceMap":"13653:2443:81:-:0;;;;;;;;;;;;;-1:-1:-1;;13653:2443:81;;;;-1:-1:-1;;;;;13653:2443:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;:::i;:::-;348:4:82;;332:21;;8837:64:25;13653:2443:81;;;;;;;;;7896:76:25;;13653:2443:81;;;;7985:34:25;7981:146;;-1:-1:-1;525:17:69;;;-1:-1:-1;525:17:69;;-1:-1:-1;552:12:69;;-1:-1:-1;2360:34:76;;2404:28;;-1:-1:-1;2404:28:76;;2442:57;;-1:-1:-1;2442:57:76;;2509:61;-1:-1:-1;2509:61:76;;1796:36:79;;-1:-1:-1;1796:36:79;;14178:41:81;;;;14229:24;;;;14263:40;;;;13653:2443;;;;;;;;332:21:82;13653:2443:81;;;;;525:17:69;13653:2443:81;;;;;552:12:69;13653:2443:81;;;;;2360:34:76;13653:2443:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7981:146:25;-1:-1:-1;;;;;;13653:2443:81;;;;;;;;;;;;;8087:29:25;;13653:2443:81;;8087:29:25;7981:146;;;;;7896:76;13653:2443:81;;-1:-1:-1;;;7938:23:25;;;;;13653:2443:81;-1:-1:-1;13653:2443:81;;;;;;-1:-1:-1;13653:2443:81;;;;;-1:-1:-1;13653:2443:81;;;;-1:-1:-1;;;;;13653:2443:81;;;;;;:::o","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361015610011575f80fd5b5f3560e01c806301ffc9a714610264578063103f29071461025f578063128e5d821461025a5780631a80e5001461025557806323f752d514610250578063248a9ca31461024b57806325dc9708146102465780632dd31000146102415780632f2ff15d1461023c57806336568abe146102375780633dfd387314610232578063437224a31461022d578063439fab911461022857806345e78fcb14610223578063557cab441461021e578063570ca735146102195780636679191e146102145780636739afca1461020f57806379d896141461020a5780637f5a7c7b1461020557806383ce03221461020057806391d14854146101fb578063991d1162146101f65780639b656b22146101f15780639f86fd85146101ec578063a217fddf146101e7578063bb24fe8a146101e2578063c0cd7c3e146101dd578063d0f1f901146101d8578063d15b740e146101d3578063d547741f146101ce578063e02f6937146101c9578063e49561ee146101c4578063fbfa77cf146101bf578063fd4d447c146101ba578063ff54740f146101b55763ffa1ad74146101b0575f80fd5b611207565b6111ea565b6111c0565b611199565b610fae565b610f59565b610f0d565b610ee3565b610e56565b610e12565b610dcf565b610db5565b610d21565b610cdd565b610ca8565b610c4a565b610c06565b610bde565b610b9a565b610b72565b610b38565b610b10565b610af4565b610ab0565b610978565b6108f2565b6106f1565b6106a6565b61065a565b610616565b6105bd565b610510565b61038a565b610346565b610302565b6102be565b346102ba5760203660031901126102ba5760043563ffffffff60e01b81168091036102ba57602090637965db0b60e01b81149081156102a9575b506040519015158152f35b6301ffc9a760e01b1490505f61029e565b5f80fd5b346102ba575f3660031901126102ba576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346102ba575f3660031901126102ba576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346102ba575f3660031901126102ba576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346102ba5760403660031901126102ba576004356001600160601b03811681036102ba57602435906103ba611a63565b6040516302910f8b60e31b81523360048201526020816024816001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165afa90811561050b575f916104dc575b50156104ca576001600160601b03166bffffffffffffffffffffffff193360601b16179080610444835f52600260205260405f2090565b54146104b85761049d817fc67e7929681aa1bccd63f52b3799bf5805f3009f197db6fdf584b14f7fbf608c92610482855f52600260205260405f2090565b5561048d8185611a92565b6040519081529081906020820190565b0390a26104b660015f80516020612cf783398151915255565b005b60405163a741a04560e01b8152600490fd5b6040516323d53b9760e21b8152600490fd5b6104fe915060203d602011610504575b6104f68183610854565b81019061122f565b5f61040d565b503d6104ec565b611246565b346102ba5760203660031901126102ba576004355f525f80516020612cd78339815191526020526020600160405f200154604051908152f35b6001600160a01b038116036102ba57565b6064359065ffffffffffff821682036102ba57565b6024359065ffffffffffff821682036102ba57565b6044359065ffffffffffff821682036102ba57565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b346102ba5760803660031901126102ba576106126105fe6004356105e081610549565b6044356105ec81610549565b6105f461055a565b9160243590611320565b604051918291602083526020830190610599565b0390f35b346102ba575f3660031901126102ba576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346102ba5760403660031901126102ba576104b660243560043561067d82610549565b805f525f80516020612cd78339815191526020526106a1600160405f200154611bd4565b611d85565b346102ba5760403660031901126102ba576024356106c381610549565b336001600160a01b038216036106df576104b690600435611dbb565b60405163334bd91960e11b8152600490fd5b346102ba5760203660031901126102ba5760043561070e81610549565b610716611a63565b335f9081527f9ebbcbe0d2961d3fbe56ca6f679bc753bd848d3e6bb3eaf9041c51b286881d2c60205260409020547fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c9060ff16156107cc57506001546001600160a01b0391821691811682146104b8576001600160a01b03191681176001557f5bbb1d3ebb6a3ad2a0f17ff35e579a83af60604d1d3c2a4c83c62adecadf666d5f80a260015f80516020612cf783398151915255005b6044906040519063e2517d3f60e01b82523360048301526024820152fd5b634e487b7160e01b5f52604160045260245ffd5b604081019081106001600160401b0382111761081957604052565b6107ea565b606081019081106001600160401b0382111761081957604052565b608081019081106001600160401b0382111761081957604052565b90601f801991011681019081106001600160401b0382111761081957604052565b604051906108828261081e565b565b60405190610882826107fe565b6001600160401b03811161081957601f01601f191660200190565b81601f820112156102ba578035906108c382610891565b926108d16040519485610854565b828452602083830101116102ba57815f926020809301838601378301015290565b346102ba5760603660031901126102ba5761090b61056f565b6044356001600160401b0381116102ba576020916109306109439236906004016108ac565b906004355f526003845260405f20611e84565b604051908152f35b9181601f840112156102ba578235916001600160401b0383116102ba57602083818601950101116102ba57565b346102ba5760203660031901126102ba576001600160401b036004358181116102ba576109a990369060040161094b565b5f80516020612d17833981519152549260ff8460401c1615931680159081610aa8575b6001149081610a9e575b159081610a95575b50610a83575f80516020612d17833981519152805467ffffffffffffffff19166001179055610a119183610a5f57611f9d565b610a1757005b5f80516020612d17833981519152805460ff60401b19169055604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a1005b5f80516020612d17833981519152805460ff60401b1916600160401b179055611f9d565b60405163f92ee8a960e01b8152600490fd5b9050155f6109de565b303b1591506109d6565b8491506109cc565b346102ba575f3660031901126102ba576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346102ba575f3660031901126102ba576020604051614e208152f35b346102ba575f3660031901126102ba576005546040516001600160a01b039091168152602090f35b346102ba575f3660031901126102ba5760206040517fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c8152f35b346102ba575f3660031901126102ba576004546040516001600160a01b039091168152602090f35b346102ba575f3660031901126102ba576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346102ba575f3660031901126102ba576001546040516001600160a01b039091168152602090f35b346102ba575f3660031901126102ba576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346102ba5760403660031901126102ba57602060ff610c9c602435610c6e81610549565b6004355f525f80516020612cd7833981519152845260405f209060018060a01b03165f5260205260405f2090565b54166040519015158152f35b346102ba5760603660031901126102ba576106126105fe600435610ccb81610549565b610cd3610584565b906024359061154e565b346102ba575f3660031901126102ba576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346102ba5760403660031901126102ba57600435610d3e81610549565b6024356001600160401b0381116102ba575f91610d608392369060040161094b565b90816040519283928337810184815203915af4610dad610d7e611647565b91610d9f604051938492151560208401526040808401526060830190610599565b03601f198101835282610854565b805190602001fd5b346102ba575f3660031901126102ba5760206040515f8152f35b346102ba575f3660031901126102ba5760206040516001600160401b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b346102ba575f3660031901126102ba576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346102ba5760403660031901126102ba57610e6f61056f565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163303610ed15763ffffffff610ebc6040926004355f526003602052835f2061215c565b91505083929192519215158352166020820152f35b604051637ca475e560e11b8152600490fd5b346102ba5760203660031901126102ba576004355f526002602052602060405f2054604051908152f35b346102ba5760403660031901126102ba576104b6602435600435610f3082610549565b805f525f80516020612cd7833981519152602052610f54600160405f200154611bd4565b611dbb565b346102ba5760803660031901126102ba57602435610f7681610549565b610f7e610584565b90606435906001600160401b0382116102ba57602092610fa56109439336906004016108ac565b91600435611732565b346102ba5760a03660031901126102ba57602435600435610fce82610549565b60443591610fda61055a565b90608435906001600160401b0382116102ba57610ffc600492369084016108ac565b611004611a63565b5f546020906110299061101d906001600160a01b031681565b6001600160a01b031690565b60405163b134427160e01b815294859182905afa92831561050b575f93611168575b506001600160a01b039283163303611156576001546001600160a01b03168381166110cb575b50506040805195865265ffffffffffff909316602086015216927f741a5de99085c0d660f3e4192217b0ffb0ea4e35a0480de48e857a4bc3ee36ed91819081015b0390a36104b660015f80516020612cf783398151915255565b909360405194611102866110f4602082019363724ab0f760e11b8552858c898d602487016118bc565b03601f198101885287610854565b62042e305a10611144575f6110b2938192827f741a5de99085c0d660f3e4192217b0ffb0ea4e35a0480de48e857a4bc3ee36ed9951926203d090f15093611071565b604051638072475160e01b8152600490fd5b60405163dabc4ad960e01b8152600490fd5b61118b91935060203d602011611192575b6111838183610854565b8101906112bc565b915f61104b565b503d611179565b346102ba575f3660031901126102ba575f546040516001600160a01b039091168152602090f35b346102ba5760403660031901126102ba5760206109436024356111e281610549565b600435611939565b346102ba575f3660031901126102ba5760206040516203d0908152f35b346102ba575f3660031901126102ba57602060405160018152f35b519081151582036102ba57565b908160209103126102ba5761124390611222565b90565b6040513d5f823e3d90fd5b81601f820112156102ba5780519061126882610891565b926112766040519485610854565b828452602083830101116102ba57815f9260208093018386015e8301015290565b906020828203126102ba5781516001600160401b0381116102ba576112439201611251565b908160209103126102ba575161124381610549565b9061124391602081526112f08251606060208401526080830190610599565b9060606040611310602086015194601f1995868683030184870152610599565b9401519282850301910152610599565b604051630df8851f60e11b81526001600160a01b03828116600483015260248201849052938416604482015265ffffffffffff8516606482015260609594909391925f856084817f000000000000000000000000000000000000000000000000000000000000000087165afa94851561050b575f956114ea575b5060405163fbfa77cf60e01b81526020816004818888165afa90811561050b57611406945f92859284916114cb575b5060405163192c0ff760e21b81526001600160a01b03909116600482015265ffffffffffff90921660248301529094859190829081906044820190565b03917f0000000000000000000000000000000000000000000000000000000000000000165afa92831561050b575f936114a5575b50611445929361154e565b9082511580159061149b575b8015611491575b61146157505050565b610d9f939450906112439291611475610875565b92835260208301526040820152604051928391602083016112d1565b5081511515611458565b5080511515611451565b61144593506114c5903d805f833e6114bd8183610854565b810190611297565b9261143a565b6114e4915060203d602011611192576111838183610854565b5f6113c9565b6114ff9195503d805f833e6114bd8183610854565b935f61139a565b9061124392915f52600360205260405f20611e84565b519063ffffffff821682036102ba57565b91908260409103126102ba57611243602061154784611222565b930161151c565b92915f8060609565ffffffffffff6040519460209663d0f1f90160e01b8888015260248701521660448501526044845261158784610839565b60405193846115b487820192639f86fd8560e01b8452306024840152604060448401526064830190610599565b03946115c8601f1996878101835282610854565b51915afa506115e66115d8611647565b8380825183010191016120db565b9015611639578083806115fe9351830101910161152d565b929061160957505050565b6112439293945061162d604051948592830191909163ffffffff6020820193169052565b03908101835282610854565b809150519182156102ba5701fd5b3d15611671573d9061165882610891565b916116666040519384610854565b82523d5f602084013e565b606090565b60405190611683826107fe565b60606020838281520152565b906020828203126102ba5781516001600160401b03928382116102ba5701906040828203126102ba57604051926116c5846107fe565b82518181116102ba57826116da918501611251565b845260208301519081116102ba576116f29201611251565b602082015290565b6001600160a01b0391821681529116602082015265ffffffffffff909116604082015260806060820181905261124392910190610599565b9261174290929192828486612335565b92909361174d611676565b938051806118a0575b5050841593841561180a575b8415611779575b505050506117745790565b505f90565b6020809495506117a4910151604051958694859463530e1d4360e01b865260601c90600486016116fa565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa90811561050b575f916117eb575b50155f808080611769565b611804915060203d602011610504576104f68183610854565b5f6117e0565b5f549094506001600160a01b031660208486519261183d604051948593849363530e1d4360e01b855289600486016116fa565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa90811561050b575f91611881575b501593611762565b61189a915060203d602011610504576104f68183610854565b5f611879565b6118b492955060208091830101910161168f565b925f80611756565b919360a093611243969565ffffffffffff938552600180871b0316602085015260408401521660608201528160808201520190610599565b634e487b7160e01b5f52601160045260245ffd5b8115611912570490565b634e487b7160e01b5f52601260045260245ffd5b906001820180921161193457565b6118f4565b5f546040516308834cb560e21b8082526001600160a01b0385811660048401529283166024830152929392602092909183816044817f000000000000000000000000000000000000000000000000000000000000000086165afa90811561050b575f91611a46575b50159182156119c2575b505090506119bc5761124391612454565b50505f90565b6040519081526001600160a01b0385166004820152606086901c602482015291508290829060449082907f0000000000000000000000000000000000000000000000000000000000000000165afa91821561050b575f92611a29575b505015805f806119ab565b611a3f9250803d10610504576104f68183610854565b5f80611a1e565b611a5d9150843d8611610504576104f68183610854565b5f6119a1565b5f80516020612cf78339815191526002815414611a805760029055565b604051633ee5aeb560e01b8152600490fd5b6004546001600160a01b0316606082901c03611bc2575f52600360205260405f209065ffffffffffff91824211611ba357824216926001820191825415611b95575b611add81612a78565b509590845493835480155f14611b7657505f975b6001600160d01b0398808a1615611b7057611b0c9088612133565b50505b82611b64575b505015611b4e575050610882935090611b30611b3692611e61565b90612133565b90919082549060031b91821b915f19901b1916179055565b61088295611b5d931691612b65565b5050612543565b16821490505f80611b15565b50611b0f565b5f1990808281011161193457855f5260205f2001015460301c97611af1565b611b9e83612516565b611ad4565b6040516306dfcc6560e41b815260306004820152426024820152604490fd5b6040516386eab41b60e01b8152600490fd5b5f8181525f80516020612cd78339815191526020908152604080832033845290915290205460ff16156107cc5750565b6001600160a01b0381165f9081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d60205260409020545f80516020612cd78339815191529060ff166119bc575f808052602091825260408082206001600160a01b038516835290925220805460ff1916600117905533906001600160a01b03165f7f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d8180a4600190565b6001600160a01b0381165f9081527f9ebbcbe0d2961d3fbe56ca6f679bc753bd848d3e6bb3eaf9041c51b286881d2c602052604090207fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c905f80516020612cd78339815191529060ff905b5416611d7e575f828152602091825260408082206001600160a01b038616835290925220805460ff1916600117905533916001600160a01b0316907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d5f80a4600190565b5050505f90565b5f8181525f80516020612cd7833981519152602081815260408084206001600160a01b038716855290915290912060ff90611d1a565b5f8181525f80516020612cd7833981519152602081815260408084206001600160a01b03871685529091529091205460ff1615611d7e575f828152602091825260408082206001600160a01b038616835290925220805460ff1916905533916001600160a01b0316907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b5f80a4600190565b908160209103126102ba576112439061151c565b5f1981019190821161193457565b90600163ffffffff8093160191821161193457565b91805115611f5d5780602080611e9f93518301019101611e4d565b91611eaa8382612636565b92611ebb845165ffffffffffff1690565b9065ffffffffffff8085169216828114611f515782119182611ef1575b5050611ee8576112439250612566565b50506020015190565b909150611efe8354611e61565b63ffffffff831614918215611f17575b50505f80611ed8565b611f49919250611f32611f2c611f3e92611e6f565b85612636565b5165ffffffffffff1690565b65ffffffffffff1690565b115f80611f0e565b50505050506020015190565b5061124391612566565b9190916040818403126102ba578035611f7f81610549565b9260208201356001600160401b0381116102ba5761124392016108ac565b611fa991810190611f67565b6040516302910f8b60e31b81526001600160a01b039283166004820181905291906020816024817f000000000000000000000000000000000000000000000000000000000000000088165afa90811561050b575f916120bc575b50156120aa5761203e6040916120396120849461201e61269e565b60018060a01b03166001600160601b0360a01b5f5416175f55565b612761565b6020810151600180546001600160a01b0319166001600160a01b0390921691909117905580516001600160a01b031684811661209a575b5001516001600160a01b031690565b90811661208e5750565b61209790611caf565b50565b6120a390611c04565b505f612075565b6040516362df054560e01b8152600490fd5b6120d5915060203d602011610504576104f68183610854565b5f612003565b9190916040818403126102ba576120f181611222565b9260208201516001600160401b0381116102ba576112439201611251565b9060405161211c816107fe565b915465ffffffffffff8116835260301c6020830152565b8054821015612148575f5260205f2001905f90565b634e487b7160e01b5f52603260045260245ffd5b91908254905f829160058411612204575b612178935085612a0f565b9081156121f8576121f16121e86121e26121d86121aa6121a561219a88611e61565b895f5260205f200190565b61210f565b9660016121d160206121c28b5165ffffffffffff1690565b9a01516001600160d01b031690565b9101612133565b90549060031b1c90565b93611e61565b63ffffffff1690565b6001939291565b5f925082915081908190565b919261220f816128dc565b81039081116119345761217893865f52612238611f3e8360205f200165ffffffffffff90541690565b65ffffffffffff8516101561224e57509161216d565b92915061225a90611926565b9061216d565b6040519061226d8261081e565b60606040838281528260208201520152565b906020828203126102ba5781516001600160401b03928382116102ba5701906060828203126102ba57604051926122b58461081e565b82518181116102ba57826122ca918501611251565b845260208301518181116102ba57826122e4918501611251565b602085015260408301519081116102ba576122ff9201611251565b604082015290565b908160209103126102ba575190565b60409065ffffffffffff61124394931681528160208201520190610599565b90939293612341612260565b94805180612438575b5050600454606083901c6001600160a01b0391821614801592919061241d575b5050612415575f546123b092919060209061238f9061101d906001600160a01b031681565b8187015190604051808097819463810da75d60e01b83528860048401612316565b03915afa90811561050b576123dd935f926123e2575b506123d79192604087015191611506565b90612a66565b915190565b6123d792506124089060203d60201161240e575b6124008183610854565b810190612307565b916123c6565b503d6123f6565b505090515f91565b60055481166001600160a01b03169116141590505f8061236a565b61244c92965060208091830101910161227f565b935f8061234a565b6004549091606083901c6001600160a01b0392831614801592906124fb575b5050611774575f54600491906020906124969061101d906001600160a01b031681565b60405163bd49c35f60e01b815293849182905afa90811561050b57611243925f926124d6575b506124cf905f52600260205260405f2090565b5490612a66565b6124cf9192506124f49060203d60201161240e576124008183610854565b91906124bc565b60055481166001600160a01b03169116141590505f80612473565b8054600160401b8110156108195761253391600182018155612133565b8154905f199060031b1b19169055565b90815491600160401b8310156108195782611b3691600161088295018155612133565b908154905f8291600584116125d0575b612581935084612c7f565b806125a957505f905b6001600160d01b038216156119bc576112439160016121d89201612133565b6125c36125b86125ca92611e61565b835f5260205f200190565b5460301c90565b9061258a565b91926125db816128dc565b81039081116119345761258193855f5265ffffffffffff808360205f20015416908516105f1461260c575091612576565b92915061261890611926565b90612576565b6040519061262b826107fe565b5f6020838281520152565b9061265f6126596126809261264961261e565b5061265261261e565b5084612133565b5061210f565b91600165ffffffffffff845116936020828060d01b03910151169101612133565b90549060405192612690846107fe565b835260031b1c602082015290565b6126a6612ac7565b6126ae612ac7565b60015f80516020612cf783398151915255565b604051906126ce8261081e565b5f6040838281528260208201520152565b8091039060a082126102ba576060604051926126fa8461081e565b126102ba5760809060405161270e8161081e565b815161271981610549565b8152602082015161272981610549565b6020820152604082015161273c81610549565b60408201528352606081015161275181610549565b602084015201516122ff81610549565b6127696126c1565b5061277f815191602080809483010191016126df565b80820180516040516302910f8b60e31b8082526001600160a01b039283166004830152939491939082816024817f000000000000000000000000000000000000000000000000000000000000000089165afa90811561050b575f916128bf575b50156104ca57816128239160408701956127ff875160018060a01b031690565b6040519283526001600160a01b031660048301529092839190829081906024820190565b03917f0000000000000000000000000000000000000000000000000000000000000000165afa91821561050b575f926128a2575b5050156128905751600480546001600160a01b039283166001600160a01b03199182161790915591516005805490931691161790555190565b604051631f0853c160e21b8152600490fd5b6128b89250803d10610504576104f68183610854565b5f80612857565b6128d69150833d8511610504576104f68183610854565b5f6127df565b801561177457806123d76129a761299d61299361298961297f61297561296b60016112439a5f908b60801c80612a03575b508060401c806129f6575b508060201c806129e9575b508060101c806129dc575b508060081c806129cf575b508060041c806129c2575b508060021c806129b5575b50821c6129ae575b811c1b612964818b611908565b0160011c90565b612964818a611908565b6129648189611908565b6129648188611908565b6129648187611908565b6129648186611908565b6129648185611908565b8092611908565b8101612957565b600291509101905f61294f565b600491509101905f612944565b600891509101905f612939565b601091509101905f61292e565b602091509101905f612923565b604091509101905f612918565b9150506080905f61290d565b905b838310612a1e5750505090565b909192612a2b8185612af5565b90835f5265ffffffffffff808360205f20015416908416105f14612a535750925b9190612a11565b93506001810180911115612a4c576118f4565b9080821015612a73575090565b905090565b805480612a895750505f905f905f90565b5f1990808281011161193457612aa6925f5260205f20010161210f565b9065ffffffffffff82511691602060018060d01b0391015116906001929190565b60ff5f80516020612d178339815191525460401c1615612ae357565b604051631afcd79f60e31b8152600490fd5b90808216911860011c81018091116119345790565b8054600160401b81101561081957612b2791600182018155612133565b612b5257815160209092015160301b65ffffffffffff191665ffffffffffff92909216919091179055565b634e487b7160e01b5f525f60045260245ffd5b805492939291908215612c5657612b816121a56125b885611e61565b90612b92825165ffffffffffff1690565b65ffffffffffff84811691168110612c4457612c08946020948892612bc0611f3e875165ffffffffffff1690565b03612c0c5750612bfa92612bd6612be192611e61565b905f5260205f200190565b9065ffffffffffff82549181199060301b169116179055565b01516001600160d01b031690565b9190565b915050612c3f91612c2c612c1e610884565b65ffffffffffff9093168352565b6001600160d01b03881682860152612b0a565b612bfa565b604051632520601d60e01b8152600490fd5b612c7a9250612c66612c1e610884565b6001600160d01b0385166020830152612b0a565b5f9190565b905b838310612c8e5750505090565b909192612c9b8185612af5565b90835f5265ffffffffffff808360205f20015416908416105f14612cc35750925b9190612c81565b93506001810180911115612cbc576118f456fe02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268009b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a2646970667358221220b3d48f3b18b846e419493dd0360a4608f48b3385c35e3d4c6be558d241bcf96364736f6c63430008190033","sourceMap":"13653:2443:81:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;;;;;-1:-1:-1;;13653:2443:81;;;;;;;;;;;;;;;;;;-1:-1:-1;;;3551:47:23;;;:87;;;;13653:2443:81;;;;;;;;;;3551:87:23;-1:-1:-1;;;1133:40:29;;-1:-1:-1;3551:87:23;;;13653:2443:81;-1:-1:-1;13653:2443:81;;;;;;;;-1:-1:-1;;13653:2443:81;;;;;;1537:38:76;-1:-1:-1;;;;;13653:2443:81;;;;;;;;;;;;-1:-1:-1;;13653:2443:81;;;;;;1632:54:76;-1:-1:-1;;;;;13653:2443:81;;;;;;;;;;;;-1:-1:-1;;13653:2443:81;;;;;;1743:56:76;-1:-1:-1;;;;;13653:2443:81;;;;;;;;;;;;-1:-1:-1;;13653:2443:81;;;;;;-1:-1:-1;;;;;13653:2443:81;;;;;;;;3217:103:28;;;:::i;:::-;13653:2443:81;;-1:-1:-1;;;4285:48:76;;4322:10;13653:2443:81;4285:48:76;;13653:2443:81;;;;;-1:-1:-1;;;;;4295:16:76;13653:2443:81;4285:48:76;;;;;;;-1:-1:-1;4285:48:76;;;13653:2443:81;4284:49:76;;4280:99;;-1:-1:-1;;;;;13653:2443:81;-1:-1:-1;;4322:10:76;297:2:88;13653:2443:81;;267:46:88;4459:27:76;;;;13653:2443:81;;4459:15:76;13653:2443:81;;;;;;;4459:27:76;13653:2443:81;4459:37:76;4455:87;;4654:38;4552:27;4654:38;4552:27;;;13653:2443:81;;4459:15:76;13653:2443:81;;;;;;;4552:27:76;13653:2443:81;4631:6:76;;;;:::i;:::-;13653:2443:81;;;;;;;;;;;;;4654:38:76;;;;3282:1:28;1805;-1:-1:-1;;;;;;;;;;;13653:2443:81;3716:283:28;3282:1;13653:2443:81;4455:87:76;13653:2443:81;;-1:-1:-1;;;4519:12:76;;13653:2443:81;;4519:12:76;4280:99;13653:2443:81;;-1:-1:-1;;;4356:12:76;;13653:2443:81;;4356:12:76;4285:48;;;;13653:2443:81;4285:48:76;13653:2443:81;4285:48:76;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;:::i;13653:2443:81:-;;;;;;-1:-1:-1;;13653:2443:81;;;;;;-1:-1:-1;13653:2443:81;-1:-1:-1;;;;;;;;;;;13653:2443:81;;;4919:24:23;13653:2443:81;-1:-1:-1;13653:2443:81;4919:24:23;13653:2443:81;;;;;;;;-1:-1:-1;;;;;13653:2443:81;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;13653:2443:81;;;;;;;;-1:-1:-1;;13653:2443:81;;;;:::o;:::-;;;;;;-1:-1:-1;;13653:2443:81;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;13653:2443:81;;;;;;322:32:69;-1:-1:-1;;;;;13653:2443:81;;;;;;;;;;;;-1:-1:-1;;13653:2443:81;;;;5350:25:23;13653:2443:81;;;;;;;:::i;:::-;;-1:-1:-1;13653:2443:81;-1:-1:-1;;;;;;;;;;;13653:2443:81;;3202:4:23;4919:24;13653:2443:81;-1:-1:-1;13653:2443:81;4919:24:23;13653:2443:81;3202:4:23;:::i;:::-;5350:25;:::i;13653:2443:81:-;;;;;;-1:-1:-1;;13653:2443:81;;;;;;;;;:::i;:::-;966:10:27;-1:-1:-1;;;;;13653:2443:81;;6441:34:23;6437:102;;6549:37;13653:2443:81;;;6549:37:23;:::i;6437:102::-;13653:2443:81;;-1:-1:-1;;;6498:30:23;;13653:2443:81;;6498:30:23;13653:2443:81;;;;;;-1:-1:-1;;13653:2443:81;;;;;;;;;:::i;:::-;3217:103:28;;:::i;:::-;966:10:27;-1:-1:-1;13653:2443:81;;;;;;;;;;1356:26:76;;13653:2443:81;;4468:23:23;4464:108;;-1:-1:-1;4861:4:76;13653:2443:81;-1:-1:-1;;;;;13653:2443:81;;;;;;4861:13:76;;4857:63;;-1:-1:-1;;;;;;13653:2443:81;;;4861:4:76;13653:2443:81;4958:14:76;-1:-1:-1;;4958:14:76;4861:4;-1:-1:-1;;;;;;;;;;;13653:2443:81;;4464:108:23;13653:2443:81;;;;4514:47:23;;;;;;966:10:27;13653:2443:81;4514:47:23;;13653:2443:81;;;;;4514:47:23;13653:2443:81;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;13653:2443:81;;;;;;;:::o;:::-;;:::i;:::-;;;;;;;-1:-1:-1;;;;;13653:2443:81;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;13653:2443:81;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;13653:2443:81;;;;;;;:::o;:::-;;;;;;;:::i;:::-;:::o;:::-;;;;;;;:::i;:::-;-1:-1:-1;;;;;13653:2443:81;;;;;;-1:-1:-1;;13653:2443:81;;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;13653:2443:81;;;;;;;;;;;;;;:::o;:::-;;;;;;-1:-1:-1;;13653:2443:81;;;;;;:::i;:::-;;;-1:-1:-1;;;;;13653:2443:81;;;;;;;2045:63:79;13653:2443:81;;;;;;:::i;:::-;;;;-1:-1:-1;13653:2443:81;2045:16:79;13653:2443:81;;;-1:-1:-1;13653:2443:81;2045:63:79;:::i;:::-;13653:2443:81;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;13653:2443:81;;;;;;;;;;;;;;;:::o;:::-;;;;;;-1:-1:-1;;13653:2443:81;;;;-1:-1:-1;;;;;13653:2443:81;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;13653:2443:81;;;;;;;4301:16:25;13653:2443:81;;4726:16:25;;:34;;;;13653:2443:81;4805:1:25;4790:16;:50;;;;13653:2443:81;4855:13:25;:30;;;;13653:2443:81;4851:91:25;;;-1:-1:-1;;;;;;;;;;;13653:2443:81;;-1:-1:-1;;13653:2443:81;;;;;718:4:69;;4951:18:25;4979:67;;718:4:69;:::i;:::-;5066:101:25;;13653:2443:81;5066:101:25;-1:-1:-1;;;;;;;;;;;13653:2443:81;;-1:-1:-1;;;;13653:2443:81;;;;;-1:-1:-1;13653:2443:81;;5142:14:25;;13653:2443:81;;5142:14:25;13653:2443:81;4979:67:25;-1:-1:-1;;;;;;;;;;;13653:2443:81;;-1:-1:-1;;;;13653:2443:81;-1:-1:-1;;;13653:2443:81;;;718:4:69;:::i;4851:91:25:-;13653:2443:81;;-1:-1:-1;;;4908:23:25;;13653:2443:81;;4908:23:25;4855:30;4872:13;;;4855:30;;;4790:50;4818:4;4810:25;:30;;-1:-1:-1;4790:50:25;;4726:34;;;-1:-1:-1;4726:34:25;;13653:2443:81;;;;;;-1:-1:-1;;13653:2443:81;;;;;;13849:36;-1:-1:-1;;;;;13653:2443:81;;;;;;;;;;;;-1:-1:-1;;13653:2443:81;;;;;;;1253:6:76;13653:2443:81;;;;;;;;;-1:-1:-1;;13653:2443:81;;;;1267:23:79;13653:2443:81;;;-1:-1:-1;;;;;13653:2443:81;;;;;;;;;;;;;;-1:-1:-1;;13653:2443:81;;;;;;;1356:26:76;13653:2443:81;;;;;;;;;-1:-1:-1;;13653:2443:81;;;;;;;;-1:-1:-1;;;;;13653:2443:81;;;;;;;;;;;;;;-1:-1:-1;;13653:2443:81;;;;;;13798:45;-1:-1:-1;;;;;13653:2443:81;;;;;;;;;;;;-1:-1:-1;;13653:2443:81;;;;;;;;-1:-1:-1;;;;;13653:2443:81;;;;;;;;;;;;;;-1:-1:-1;;13653:2443:81;;;;;;961:42:79;-1:-1:-1;;;;;13653:2443:81;;;;;;;;;;;;-1:-1:-1;;13653:2443:81;;;;;;3901:31:23;13653:2443:81;;;;;:::i;:::-;;;-1:-1:-1;13653:2443:81;-1:-1:-1;;;;;;;;;;;13653:2443:81;;;-1:-1:-1;13653:2443:81;;;;;;;;;;;;;;;;;3901:31:23;13653:2443:81;;;;;;;;;;;;;;;;-1:-1:-1;;13653:2443:81;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;:::i;:::-;;;;;;-1:-1:-1;;13653:2443:81;;;;;;13891:45;-1:-1:-1;;;;;13653:2443:81;;;;;;;;;;;;-1:-1:-1;;13653:2443:81;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;13653:2443:81;;;;-1:-1:-1;13653:2443:81;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;416:25:75;;;;477:31;416:25;;:::i;:::-;13653:2443:81;;;;;;;;;;477:31:75;;13653:2443:81;;;;;;;;;;;:::i;:::-;477:31:75;13653:2443:81;;477:31:75;;;;;;:::i;:::-;518:79;;;13653:2443:81;518:79:75;;13653:2443:81;;;;;;-1:-1:-1;;13653:2443:81;;;;;;;;;;;;;;;;;-1:-1:-1;;13653:2443:81;;;;;;;-1:-1:-1;;;;;404:28:69;13653:2443:81;;;;;;;;;;-1:-1:-1;;13653:2443:81;;;;;;1439:41:76;-1:-1:-1;;;;;13653:2443:81;;;;;;;;;;;;-1:-1:-1;;13653:2443:81;;;;;;:::i;:::-;449:5:82;-1:-1:-1;;;;;13653:2443:81;435:10:82;:19;431:71;;13653:2443:81;14508:67;13653:2443;;;;-1:-1:-1;13653:2443:81;14508:16;13653:2443;;;-1:-1:-1;13653:2443:81;14508:67;:::i;:::-;13653:2443;;;;;;;;;;;;;;;;;;;431:71:82;13653:2443:81;;-1:-1:-1;;;477:14:82;;13653:2443:81;;477:14:82;13653:2443:81;;;;;;-1:-1:-1;;13653:2443:81;;;;;;-1:-1:-1;13653:2443:81;2009:67:76;13653:2443:81;;;;-1:-1:-1;13653:2443:81;;;;;;;;;;;;;;-1:-1:-1;;13653:2443:81;;;;5767:26:23;13653:2443:81;;;;;;;:::i;:::-;;-1:-1:-1;13653:2443:81;-1:-1:-1;;;;;;;;;;;13653:2443:81;;3202:4:23;4919:24;13653:2443:81;-1:-1:-1;13653:2443:81;4919:24:23;13653:2443:81;3202:4:23;:::i;:::-;5767:26;:::i;13653:2443:81:-;;;;;;-1:-1:-1;;13653:2443:81;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;-1:-1:-1;;;;;13653:2443:81;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;-1:-1:-1;;13653:2443:81;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;-1:-1:-1;;;;;13653:2443:81;;;;;;;;;;;;:::i;:::-;3217:103:28;;:::i;:::-;-1:-1:-1;13653:2443:81;;;5246:21:76;;:13;;-1:-1:-1;;;;;13653:2443:81;5246:13:76;13653:2443:81;;-1:-1:-1;;;;;13653:2443:81;;;5246:21:76;13653:2443:81;;-1:-1:-1;;;5246:23:76;;13653:2443:81;;;;;5246:23:76;;;;;;;-1:-1:-1;5246:23:76;;;13653:2443:81;-1:-1:-1;;;;;;13653:2443:81;;;5232:10:76;:37;5228:87;;5341:4;13653:2443:81;-1:-1:-1;;;;;13653:2443:81;;;;5355:469:76;;13653:2443:81;-1:-1:-1;;13653:2443:81;;;;;;;;;;;;;;;;5839:55:76;;13653:2443:81;;;;5839:55:76;;;;3282:1:28;1805;-1:-1:-1;;;;;;;;;;;13653:2443:81;3716:283:28;5355:469:76;13653:2443:81;;;;5435:94:76;;;;13653:2443:81;5435:94:76;;;;;;;;;;;;13653:2443:81;5435:94:76;;;:::i;:::-;;13653:2443:81;;5435:94:76;;;;;;:::i;:::-;13653:2443:81;5548:9:76;:51;5544:118;;-1:-1:-1;5839:55:76;5676:138;;;;5839:55;5676:138;;;1150:7;5676:138;;5355:469;;;5544:118;13653:2443:81;;-1:-1:-1;;;5626:21:76;;13653:2443:81;;5626:21:76;5228:87;13653:2443:81;;-1:-1:-1;;;5292:12:76;;13653:2443:81;;5292:12:76;5246:23;;;;;13653:2443:81;5246:23:76;13653:2443:81;5246:23:76;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;13653:2443:81;;;;;;-1:-1:-1;;13653:2443:81;;;;;;;;-1:-1:-1;;;;;13653:2443:81;;;;;;;;;;;;;;-1:-1:-1;;13653:2443:81;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;-1:-1:-1;;13653:2443:81;;;;;;;1150:7:76;13653:2443:81;;;;;;;;;-1:-1:-1;;13653:2443:81;;;;;;;2700:1:76;13653:2443:81;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;13653:2443:81;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;;;;13653:2443:81;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;15166:928::-;13653:2443;;-1:-1:-1;;;15383:99:81;;-1:-1:-1;;;;;13653:2443:81;;;15383:99;;;13653:2443;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;13653:2443:81;;;15402:20;13653:2443;;15383:99;;;;;;;;;;;15166:928;-1:-1:-1;13653:2443:81;;-1:-1:-1;;;15576:32:81;;;13653:2443;15383:99;13653:2443;;;;15576:32;;;;;;;15536:84;15576:32;15383:99;15576:32;;;;;;;15166:928;-1:-1:-1;13653:2443:81;;-1:-1:-1;;;15536:84:81;;-1:-1:-1;;;;;13653:2443:81;;;15383:99;15536:84;;13653:2443;;;;;;;;;;;;;-1:-1:-1;13653:2443:81;;;;;;;;;15536:84;;15547:11;;13653:2443;15536:84;;;;;;;15383:99;15536:84;;;15166:928;15667:53;;;;;:::i;:::-;13653:2443;;;15735:21;;;:52;;;15166:928;15735:88;;;;15166:928;15731:357;;15166:928;;;:::o;15731:357::-;15846:231;13653:2443;;;;15846:231;13653:2443;;;;:::i;:::-;;;;15576:32;15874:189;;13653:2443;;15874:189;;13653:2443;;;15846:231;;;15576:32;15846:231;;;:::i;15735:88::-;13653:2443;;;15791:32;;15735:88;;:52;13653:2443;;;15760:27;;15735:52;;15536:84;15667:53;15536:84;;;;;;15383:99;15536:84;;;;;;:::i;:::-;;;;;:::i;:::-;;;;15576:32;;;;;;;;;;;;;;:::i;:::-;;;;15383:99;;;;;;;;;;;;;;:::i;:::-;;;;;1914:201:79;;2045:63;1914:201;;-1:-1:-1;13653:2443:81;2045:16:79;13653:2443:81;;;-1:-1:-1;13653:2443:81;2045:63:79;:::i;13653:2443:81:-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;:::i;14588:572::-;;;-1:-1:-1;14725:12:81;13653:2443;;;;;14871:159;;14915:74;;;;14871:159;;;;;;;13653:2443;;;;;;;14871:159;;;;;:::i;:::-;13653:2443;;716:88:82;;13653:2443:81;716:88:82;;;;;;;;;783:4;14871:159:81;716:88:82;;13653:2443:81;;;;;;;;;;;:::i;:::-;716:88:82;13653:2443:81;716:88:82;13653:2443:81;;716:88:82;;;;;;;;:::i;:::-;698:107;;;;;857:45;698:107;;:::i;:::-;13653:2443:81;;;;857:45:82;;;;;;:::i;:::-;916:8;;912:175;;13653:2443:81;;;14779:303;13653:2443;;14779:303;;;;;;:::i;:::-;15093:61;;;;14588:572;;;:::o;15093:61::-;15126:17;13653:2443;;;;15126:17;13653:2443;;15126:17;;;;;13653:2443;;;;;;;;;;;;15126:17;;;;;;;;;:::i;912:175:82:-;13653:2443:81;;;;944:22:82;;;940:36;;990:87;;13653:2443:81;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;-1:-1:-1;13653:2443:81;;;;:::o;:::-;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;;;;13653:2443:81;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::o;:::-;-1:-1:-1;;;;;13653:2443:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;2764:920:76:-;;2978:48;2764:920;;;;2978:48;;;;:::i;:::-;3036:36;;;13653:2443:81;;:::i;:::-;;;;3086:20:76;3082:107;;2764:920;3216:11;;;;:193;;;;;2764:920;3216:394;;;;2764:920;3199:455;;;;;;2764:920;:::o;3199:455::-;3635:8;-1:-1:-1;3635:8:76;:::o;3216:394::-;3553:39;;;;;3430:180;3553:39;;;13653:2443:81;;;;;;;;;;3430:180:76;;467:2:88;13653:2443:81;3430:180:76;;;;;:::i;:::-;;13653:2443:81;3444:31:76;-1:-1:-1;;;;;13653:2443:81;3430:180:76;;;;;;;-1:-1:-1;3430:180:76;;;3216:394;3429:181;;3216:394;;;;;;3430:180;;;;3553:39;3430:180;3553:39;3430:180;;;;;;;:::i;:::-;;;;3216:193;-1:-1:-1;13653:2443:81;;;-1:-1:-1;;;;;;13653:2443:81;3248:161:76;3354:37;;;13653:2443:81;3248:161:76;13653:2443:81;;;;;;;;;;3248:161:76;;;;;;;:::i;:::-;;13653:2443:81;3262:29:76;-1:-1:-1;;;;;13653:2443:81;3248:161:76;;;;;;;-1:-1:-1;3248:161:76;;;3216:193;3247:162;;3216:193;;;3248:161;;;;;;;;;;;;;;:::i;:::-;;;;3082:107;3139:39;;;;;;;;;;;;;:::i;:::-;3082:107;;;;;13653:2443:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;8889:1:86;13653:2443:81;;;;;;;:::o;:::-;;:::i;3740:389:76:-;3918:5;13653:2443:81;;;-1:-1:-1;;;3853:71:76;;;-1:-1:-1;;;;;13653:2443:81;;;3853:71:76;;;13653:2443:81;;;;;;;;3740:389:76;;13653:2443:81;3853:71:76;;13653:2443:81;;3853:71:76;13653:2443:81;;;3867:29:76;13653:2443:81;;3853:71:76;;;;;;;3918:5;3853:71;;;3740:389;3852:72;;13653:2443:81;;;3852:181:76;;3740:389;3835:242;;;;;;4094:28;;;:::i;3835:242::-;4058:8;;3918:5;4058:8;:::o;3852:181::-;13653:2443:81;;3945:88:76;;;-1:-1:-1;;;;;13653:2443:81;;3853:71:76;3945:88;;13653:2443:81;467:2:88;13653:2443:81;;;;;;;;-1:-1:-1;13653:2443:81;;;;;;;;3959:31:76;13653:2443:81;3945:88:76;;;;;;;3918:5;3945:88;;;3852:181;3944:89;;;3852:181;;;;;3945:88;;;;;;-1:-1:-1;3945:88:76;;;;;;:::i;:::-;;;;;3853:71;;;;;;;;;;;;;;:::i;:::-;;;;3326:384:28;-1:-1:-1;;;;;;;;;;;1847:1:28;13653:2443:81;;3526:20:28;3522:88;;1847:1;13653:2443:81;;3326:384:28:o;3522:88::-;13653:2443:81;;-1:-1:-1;;;3569:30:28;;;;;3164:253:79;3261:7;13653:2443:81;-1:-1:-1;;;;;13653:2443:81;467:2:88;13653:2443:81;;;3261:31:79;3257:85;;-1:-1:-1;13653:2443:81;3351:16:79;13653:2443:81;;;-1:-1:-1;13653:2443:81;;;837:15:62;;;14369:24:58;14365:103;;837:15:62;;13653:2443:81;6360:12:86;;;;13653:2443:81;;;6360:24:86;6356:75;;3164:253:79;6474:30:86;;;:::i;:::-;13653:2443:81;;;;;;;;10303:8:60;;:63;:8;;;:63;-1:-1:-1;10303:63:60;;-1:-1:-1;;;;;13653:2443:81;;;;10726:7:86;13653:2443:81;;10736:17:86;;;;:::i;:::-;10726:31;;;6604:24;;;10726:31;-1:-1:-1;;6600:188:86;;;6657:7;;6644:29;6657:7;;;;6644:21;6657:7;;:::i;:::-;6644:21;;:::i;:::-;:29;13653:2443:81;;;;;;;;;;;;;;;;;;;;;6600:188:86;6753:24;13653:2443:81;8167:38:60;13653:2443:81;;8167:38:60;;:::i;:::-;6753:24:86;;;:::i;6604:::-;13653:2443:81;6614:14:86;;;-1:-1:-1;6604:24:86;;;;10726:31;;;;10303:63:60;13653:2443:81;;;;;;;;;;13267:109:86;-1:-1:-1;13267:109:86;13653:2443:81;-1:-1:-1;13267:109:86;;;13653:2443:81;;;10303:63:60;;;6356:75:86;6400:20;;;:::i;:::-;6356:75;;14365:103:58;13653:2443:81;;-1:-1:-1;;;14416:41:58;;14447:2;3261:7:79;14416:41:58;;13653:2443:81;837:15:62;13653:2443:81;;;;;;14416:41:58;3257:85:79;13653:2443:81;;-1:-1:-1;;;3315:16:79;;3261:7;;3315:16;4148:103:23;-1:-1:-1;13653:2443:81;;;-1:-1:-1;;;;;;;;;;;13653:2443:81;;;;;;;;966:10:27;13653:2443:81;;;;;;;;;;4468:23:23;4464:108;;4148:103;:::o;7270:387::-;-1:-1:-1;;;;;13653:2443:81;;-1:-1:-1;13653:2443:81;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2887:71:23;13653:2443:81;;;;-1:-1:-1;13653:2443:81;;;;;;;;;;;-1:-1:-1;;;;;13653:2443:81;;;;;;;;;;-1:-1:-1;;13653:2443:81;7509:4:23;13653:2443:81;;;966:10:27;;-1:-1:-1;;;;;13653:2443:81;-1:-1:-1;7532:40:23;-1:-1:-1;;7532:40:23;7509:4;7586:11;:::o;7270:387::-;-1:-1:-1;;;;;13653:2443:81;;-1:-1:-1;13653:2443:81;;;;;;;;;1356:26:76;;-1:-1:-1;;;;;;;;;;;2887:71:23;13653:2443:81;;3901:31:23;13653:2443:81;;;;-1:-1:-1;13653:2443:81;;;;;;;;;;;-1:-1:-1;;;;;13653:2443:81;;;;;;;;;;-1:-1:-1;;13653:2443:81;7509:4:23;13653:2443:81;;;966:10:27;;-1:-1:-1;;;;;13653:2443:81;;7532:40:23;-1:-1:-1;;7532:40:23;7509:4;7586:11;:::o;7432:219::-;7628:12;;;-1:-1:-1;7628:12:23;:::o;7270:387::-;-1:-1:-1;13653:2443:81;;;-1:-1:-1;;;;;;;;;;;13653:2443:81;;;;;;;;-1:-1:-1;;;;;13653:2443:81;;;;;;;;;;;;3901:31:23;13653:2443:81;7892:388:23;-1:-1:-1;13653:2443:81;;;-1:-1:-1;;;;;;;;;;;13653:2443:81;;;;;;;;-1:-1:-1;;;;;13653:2443:81;;;;;;;;;;;;;;;;-1:-1:-1;13653:2443:81;;;;;;;;;;;-1:-1:-1;;;;;13653:2443:81;;;;;;;;;;-1:-1:-1;;13653:2443:81;;;966:10:27;;-1:-1:-1;;;;;13653:2443:81;;8155:40:23;-1:-1:-1;;8155:40:23;13653:2443:81;8209:11:23;:::o;13653:2443:81:-;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;13653:2443:81;;;;;;;;:::o;:::-;;;;;;;;;;;;;:::o;7558:604:86:-;;13653:2443:81;;7686:17:86;7682:83;;13653:2443:81;7789:27:86;13653:2443:81;7789:27:86;13653:2443:81;;7789:27:86;;;;;;:::i;:::-;7860:14;;;;;:::i;:::-;13653:2443:81;;;;;;;;;;;;;;;;7888:22:86;;;7884:77;;7975:21;-1:-1:-1;7975:84:86;;;;7558:604;7971:139;;;;8127:28;;;;:::i;7971:139::-;8082:17;;7789:27;8082:17;13653:2443:81;8075:24:86;:::o;7975:84::-;13653:2443:81;;;8009:16:86;13653:2443:81;;8009:16:86;:::i;:::-;13653:2443:81;;;8001:24:86;:57;;;;;7975:84;;;;;;;8001:57;8029:29;8038:8;;;8029:18;8038:8;8029:23;8038:8;;:::i;:::-;8029:18;;:::i;:::-;13653:2443:81;;;;;8029:23:86;13653:2443:81;;;;8029:29:86;;8001:57;;;;7884:77;7933:17;;;;;7789:27;7933:17;13653:2443:81;7926:24:86;:::o;7682:83::-;7726:28;;;;:::i;13653:2443:81:-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;13653:2443:81;;;;;;;;:::i;5907:716:76:-;6030:34;5907:716;6030:34;;;;:::i;:::-;13653:2443:81;;-1:-1:-1;;;6080:41:76;;-1:-1:-1;;;;;13653:2443:81;;;6080:41:76;;;13653:2443:81;;;;;6080:41:76;13653:2443:81;;;6090:13:76;13653:2443:81;;6080:41:76;;;;;;;-1:-1:-1;6080:41:76;;;5907:716;6079:42;;6075:90;;6266:27;13653:2443:81;2540:111:28;6210:14:76;13653:2443:81;2540:111:28;;;:::i;:::-;13653:2443:81;;;;;;-1:-1:-1;;;;;13653:2443:81;;-1:-1:-1;13653:2443:81;;;-1:-1:-1;13653:2443:81;;6210:14:76;6266:27;:::i;:::-;6080:41;6311:15;;13653:2443:81;;;;-1:-1:-1;;;;;;13653:2443:81;-1:-1:-1;;;;;13653:2443:81;;;;;;;;;;;-1:-1:-1;;;;;13653:2443:81;;;;6337:143:76;;5907:716;-1:-1:-1;6493:28:76;13653:2443:81;-1:-1:-1;;;;;13653:2443:81;;;;;;;6489:128:76;;5907:716;:::o;6489:128::-;6551:55;;;:::i;:::-;;5907:716::o;6337:143::-;6404:65;;;:::i;:::-;;6337:143;;;6075:90;13653:2443:81;;-1:-1:-1;;;6144:10:76;;6080:41;;6144:10;6080:41;;;;;;;;;;;;;;:::i;:::-;;;;13653:2443:81;;;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;13653:2443:81;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::o;:::-;;;;;;;;-1:-1:-1;13653:2443:81;;-1:-1:-1;13653:2443:81;;;-1:-1:-1;13653:2443:81;:::o;:::-;;;;;;;;;;;;8406:869:86;;;13653:2443:81;;8620:15:86;8578:11;8645:18;8678:7;8684:1;8678:7;;8674:241;;8406:869;8939:60;;;;;:::i;:::-;9014:8;;;9010:62;;9252:15;9259:7;13653:2443:81;9219:31:86;13653:2443:81;9130:48:86;9170:7;;;:::i;:::-;9130:48;13267:109;;;;;;13089:293;;9130:48;13653:2443:81;:::i;:::-;;9176:1:86;13653:2443:81;9232:17:86;13653:2443:81;;;;;;;;9232:17:86;;13653:2443:81;-1:-1:-1;;;;;13653:2443:81;;;;9219:12:86;;:31;:::i;:::-;13653:2443:81;;;;;;;;;9259:7:86;;:::i;:::-;13653:2443:81;;;;9252:15:86;9176:1;;9188:80;;8406:869::o;9010:62::-;8578:11;;-1:-1:-1;8578:11:86;;-1:-1:-1;8578:11:86;;;;9038:23::o;8674:241::-;8721:14;;;;;:::i;:::-;13653:2443:81;;;;;;;8939:60:86;13267:109;;8578:11;13267:109;8753:55;8759:49;13267:109;;8578:11;13267:109;;13653:2443:81;;;;;;8753:55:86;13653:2443:81;;;8753:55:86;13267:109;;;8828:10;8749:156;8674:241;;8749:156;8883:7;;;;;;:::i;:::-;8749:156;8674:241;;13653:2443:81;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;;;;13653:2443:81;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;:::i;2121:740:79:-;;;;;13653:2443:81;;:::i;:::-;;;;2362:16:79;2358:92;;2121:740;-1:-1:-1;;2464:7:79;13653:2443:81;467:2:88;13653:2443:81;;;-1:-1:-1;;;;;13653:2443:81;;;2464:31:79;;;;;13653:2443:81;2464:56:79;;2121:740;2460:120;;;;-1:-1:-1;13653:2443:81;2637:67:79;;13653:2443:81;;2676:27:79;;2637;;:13;;-1:-1:-1;;;;;13653:2443:81;2637:13:79;13653:2443:81;2637:27:79;2676;;;;13653:2443:81;;;;;;;;;;;2637:67:79;;;2464:7;2637:67;;;:::i;:::-;;;;;;;;;;2611:198;2637:67;-1:-1:-1;2637:67:79;;;2121:740;2763:31;2722:73;2763:31;;13653:2443:81;2763:31:79;;;2722:73;;:::i;:::-;2611:198;;:::i;:::-;2823:21;;2121:740;:::o;2637:67::-;2722:73;2637:67;;;;2676:27;2637:67;2676:27;2637:67;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;2460:120;-1:-1:-1;;2547:21:79;;-1:-1:-1;;2536:33:79:o;2464:56::-;2499:8;13653:2443:81;;;-1:-1:-1;;;;;13653:2443:81;;;2499:21:79;;;-1:-1:-1;2464:56:79;;;;2358:92;2408:31;;;;;;;;;;;;;:::i;:::-;2358:92;;;;;2867:291;2977:7;13653:2443:81;2867:291:79;;13653:2443:81;;;;-1:-1:-1;;;;;13653:2443:81;;;2977:31:79;;;;13653:2443:81;2977:56:79;;2867:291;2973:95;;;;-1:-1:-1;13653:2443:81;2977:7:79;;13653:2443:81;3094:27:79;;:25;;:13;;-1:-1:-1;;;;;13653:2443:81;3094:13:79;13653:2443:81;3094:25:79;13653:2443:81;;-1:-1:-1;;;3094:27:79;;13653:2443:81;;;;;3094:27:79;;;;;;;3085:66;3094:27;-1:-1:-1;3094:27:79;;;2867:291;3123:27;;;13653:2443:81;;4459:15:76;13653:2443:81;;;;;;;3123:27:79;13653:2443:81;3085:66:79;;:::i;3094:27::-;3123;3094;;;;;;;;;;;;;;;:::i;:::-;;;;;2977:56;3012:8;13653:2443:81;;;-1:-1:-1;;;;;13653:2443:81;;;3012:21:79;;;-1:-1:-1;2977:56:79;;;;13653:2443:81;;;-1:-1:-1;;;13653:2443:81;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::o;:::-;;;;;-1:-1:-1;;;13653:2443:81;;;;;;;;;;;;;;;:::i;6999:207:86:-;;13653:2443:81;;9594:15:60;-1:-1:-1;9619:18:60;9652:7;9658:1;9652:7;;9648:234;;6999:207:86;9906:53:60;;;;;:::i;:::-;9977:8;;;:63;-1:-1:-1;9977:63:60;;-1:-1:-1;;;;;13653:2443:81;;7168:7:86;13653:2443:81;;;7178:12:86;;:17;:12;;:17;:::i;9977:63:60:-;9992:41;10025:7;9992:48;10025:7;;:::i;:::-;9992:41;13267:109:86;;;;;;13089:293;;9992:41:60;13653:2443:81;;;;;9992:48:60;9977:63;;;9648:234;9695:14;;;;;:::i;:::-;13653:2443:81;;;;;;;9906:53:60;13267:109:86;;-1:-1:-1;13267:109:86;13653:2443:81;13267:109:86;;;-1:-1:-1;13267:109:86;;13653:2443:81;;;;;9727:48:60;9723:149;13653:2443:81;;;9795:10:60;9723:149;9648:234;;9723:149;9850:7;;;;;;:::i;:::-;9723:149;9648:234;;13653:2443:81;;;;;;;:::i;:::-;-1:-1:-1;13653:2443:81;;;;;;;:::o;11486:272:86:-;;13653:2443:81;11308:22:60;11718:31:86;11486:272;13653:2443:81;;:::i;:::-;;;;:::i;:::-;;11308:22:60;;:::i;:::-;13653:2443:81;;:::i;:::-;;11718:12:86;13653:2443:81;;;;;11731:17:86;13653:2443:81;;;;;11731:17:86;;13653:2443:81;;11718:12:86;;:31;:::i;:::-;13653:2443:81;;;;;;;;;:::i;:::-;;;;;;11731:17:86;11672:79;;13653:2443:81;11486:272:86;:::o;6893:76:25:-;;;:::i;:::-;;;:::i;:::-;1805:1:28;-1:-1:-1;;;;;;;;;;;13653:2443:81;6893:76:25:o;13653:2443:81:-;;;;;;;:::i;:::-;-1:-1:-1;13653:2443:81;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;3423:520:79:-;13653:2443:81;;:::i;:::-;;3571:30:79;13653:2443:81;;3571:30:79;;;;;;;;;;;:::i;:::-;3654:14;;;13653:2443:81;;;;-1:-1:-1;;;3617:52:79;;;-1:-1:-1;;;;;13653:2443:81;;;3617:52:79;;;13653:2443:81;3654:14:79;;13653:2443:81;;;3654:14:79;13653:2443:81;;;3627:16:79;13653:2443:81;;3617:52:79;;;;;;;-1:-1:-1;3617:52:79;;;3423:520;3616:53;;3612:103;;3768:15;3730:54;3768:15;13653:2443:81;3768:15:79;;13653:2443:81;;;;;;;;;;;;;;;3730:54:79;;;-1:-1:-1;;;;;13653:2443:81;3617:52:79;3730:54;;13653:2443:81;;;;;-1:-1:-1;13653:2443:81;;;;;;;;;3730:54:79;;3740:17;;13653:2443:81;3730:54:79;;;;;;;-1:-1:-1;3730:54:79;;;3423:520;3729:55;;;3725:106;;13653:2443:81;3617:52:79;13653:2443:81;;-1:-1:-1;;;;;13653:2443:81;;;-1:-1:-1;;;;;;13653:2443:81;;;;;;;;;3875:26:79;13653:2443:81;;;;;;;;;;3919:17:79;3423:520;:::o;3725:106::-;13653:2443:81;;-1:-1:-1;;;3807:13:79;;3617:52;;3807:13;3730:54;;;;;;-1:-1:-1;3730:54:79;;;;;;:::i;:::-;;;;;3617:52;;;;;;;;;;;;;;:::i;:::-;;;;8587:1642:57;8658:6;;8654:45;;9401:7;10201:10;10142:26;10093;10044;9995;9946;9897;9848;13653:2443:81;10189:23:57;9401:7;8663:1;13653:2443:81;;;;10826:16:57;10822:99;;8587:1642;13653:2443:81;;;;10938:15:57;10934:96;;8587:1642;13653:2443:81;;;;11047:15:57;11043:96;;8587:1642;13653:2443:81;;;;11156:15:57;11152:96;;8587:1642;13653:2443:81;;;;11265:14:57;11261:93;;8587:1642;13653:2443:81;;;;11371:14:57;11367:93;;8587:1642;13653:2443:81;;;;11477:14:57;11473:93;;8587:1642;13653:2443:81;;;11579:64:57;;8587:1642;13653:2443:81;;;9858:10:57;;;;:::i;:::-;13653:2443:81;;;;;9848:26:57;9907:10;;;;:::i;9897:26::-;9956:10;;;;:::i;9946:26::-;10005:10;;;;:::i;9995:26::-;10054:10;;;;:::i;10044:26::-;10103:10;;;;:::i;10093:26::-;10152:10;;;;:::i;10142:26::-;10201:10;;;:::i;11579:64::-;13653:2443:81;;11579:64:57;;11473:93;13653:2443:81;11511:11:57;;13653:2443:81;;11473:93:57;;;;11367;13653:2443:81;11405:11:57;;13653:2443:81;;11367:93:57;;;;11261;13653:2443:81;11299:11:57;;13653:2443:81;;11261:93:57;;;;11152:96;13653:2443:81;11191:12:57;;13653:2443:81;;11152:96:57;;;;11043;13653:2443:81;11082:12:57;;13653:2443:81;;11043:96:57;;;;10934;13653:2443:81;10973:12:57;;13653:2443:81;;10934:96:57;;;;10822:99;10862:13;;;13653:2443:81;10822:99:57;;;;12497:447:86;;12694:10;;;;;;12926:11;;;12497:447;:::o;12687:230::-;12734:23;;;;;;;:::i;:::-;13267:109;;-1:-1:-1;13267:109:86;13653:2443:81;13267:109:86;;;-1:-1:-1;13267:109:86;;13653:2443:81;;;;;-1:-1:-1;12771:136:86;13653:2443:81;;;12830:10:86;12771:136;;12687:230;;;;12771:136;13653:2443:81;;12891:1:86;13653:2443:81;;;;;;12771:136:86;13653:2443:81;;:::i;2557:104:57:-;;2641:5;;;;;;:13;2557:104;:::o;2641:13::-;;;2557:104;:::o;10552:388:60:-;13653:2443:81;;10728:8:60;;;10752:20;;10690:17;10752:20;10690:17;10752:20;10690:17;10752:20;:::o;10724:210::-;13653:2443:81;;;;;;;;;;;13267:109:86;10690:17:60;13267:109:86;;10690:17:60;13267:109:86;;;13653:2443:81;:::i;:::-;;;;;;;13267:109:86;13653:2443:81;;;;;10911:11:60;;13653:2443:81;;10886:37:60;10870:1;10886:37;;;:::o;7084:141:25:-;13653:2443:81;-1:-1:-1;;;;;;;;;;;13653:2443:81;;;;7150:18:25;7146:73;;7084:141::o;7146:73::-;13653:2443:81;;-1:-1:-1;;;7191:17:25;;;;;2774:153:57;;2900:5;;;2910;;13653:2443:81;;;;;;;;;2774:153:57;:::o;13653:2443:81:-;;;-1:-1:-1;;;13653:2443:81;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;13653:2443:81;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;11513:870:60;13653:2443:81;;11513:870:60;;;13653:2443:81;11513:870:60;11672:7;;;;13653:2443:81;11775:28:60;11795:7;;;:::i;13653:2443:81:-;;;;;;;;;;;;;;;;11877:15:60;-1:-1:-1;11873:91:60;;13653:2443:81;;12233:11:60;13653:2443:81;;;12027:16:60;13653:2443:81;;;;;;;12027:16:60;;;;12083:7;12063:43;12083:7;;12063:28;12083:7;;:::i;:::-;12063:28;13267:109:86;;;;;;13089:293;;12063:28:60;13653:2443:81;;;;;;;;;;;;;;;;;12063:43:60;12233:11;13653:2443:81;-1:-1:-1;;;;;13653:2443:81;;;;12225:27:60;;:::o;12023:189::-;13653:2443:81;;;12145:52:60;13653:2443:81;12155:41:60;13653:2443:81;;:::i;:::-;;;;;;;;12155:41:60;-1:-1:-1;;;;;13653:2443:81;;12155:41:60;;;13653:2443:81;12145:52:60;:::i;:::-;12023:189;;11873:91;13653:2443:81;;-1:-1:-1;;;11919:30:60;;;;;11668:709;12283:52;13653:2443:81;;12293:41:60;13653:2443:81;;:::i;12293:41:60:-;-1:-1:-1;;;;;13653:2443:81;;12293:41:60;;;13653:2443:81;12145:52:60;:::i;12283:::-;11678:1;12349:17;;:::o;12736:433::-;;12919:10;;;;;;13151:11;;;12736:433;:::o;12912:230::-;12959:23;;;;;;;:::i;:::-;13267:109:86;;-1:-1:-1;13267:109:86;13653:2443:81;13267:109:86;;;-1:-1:-1;13267:109:86;;13653:2443:81;;;;;-1:-1:-1;12996:136:60;13653:2443:81;;;13055:10:60;12996:136;;12912:230;;;;12996:136;13653:2443:81;;13116:1:60;13653:2443:81;;;;;;12996:136:60;13653:2443:81;;:::i","linkReferences":{},"immutableReferences":{"57808":[{"start":1579,"length":32}],"57811":[{"start":3566,"length":32}],"58762":[{"start":989,"length":32},{"start":3623,"length":32},{"start":10158,"length":32}],"58765":[{"start":723,"length":32},{"start":8146,"length":32}],"58768":[{"start":791,"length":32},{"start":6209,"length":32},{"start":6512,"length":32}],"58771":[{"start":859,"length":32},{"start":6056,"length":32},{"start":6638,"length":32}],"60387":[{"start":3099,"length":32},{"start":10279,"length":32}],"62161":[{"start":2991,"length":32},{"start":4969,"length":32}],"62163":[{"start":2757,"length":32},{"start":5130,"length":32}],"62165":[{"start":3314,"length":32}],"62368":[{"start":3697,"length":32}]}},"methodIdentifiers":{"BASE_DELEGATOR_HINTS()":"79d89614","DEFAULT_ADMIN_ROLE()":"a217fddf","FACTORY()":"2dd31000","HOOK_GAS_LIMIT()":"ff54740f","HOOK_RESERVE()":"557cab44","HOOK_SET_ROLE()":"6679191e","NETWORK_REGISTRY()":"c0cd7c3e","OPERATOR_NETWORK_OPT_IN_SERVICE()":"1a80e500","OPERATOR_REGISTRY()":"83ce0322","OPERATOR_VAULT_OPT_IN_SERVICE()":"128e5d82","OPT_IN_SERVICE_HINTS()":"9b656b22","TYPE()":"bb24fe8a","VAULT_FACTORY()":"103f2907","VAULT_HINTS()":"45e78fcb","VERSION()":"ffa1ad74","getRoleAdmin(bytes32)":"248a9ca3","grantRole(bytes32,address)":"2f2ff15d","hasRole(bytes32,address)":"91d14854","hook()":"7f5a7c7b","initialize(bytes)":"439fab91","maxNetworkLimit(bytes32)":"d15b740e","maxNetworkLimitAt(bytes32,uint48,bytes)":"437224a3","maxNetworkLimitHint(address,bytes32,uint48)":"991d1162","maxNetworkLimitHintInternal(bytes32,uint48)":"d0f1f901","network()":"6739afca","onSlash(bytes32,address,uint256,uint48,bytes)":"e49561ee","operator()":"570ca735","renounceRole(bytes32,address)":"36568abe","revokeRole(bytes32,address)":"d547741f","setHook(address)":"3dfd3873","setMaxNetworkLimit(uint96,uint256)":"23f752d5","stake(bytes32,address)":"fd4d447c","stakeAt(bytes32,address,uint48,bytes)":"e02f6937","stakeHints(address,bytes32,address,uint48)":"25dc9708","staticDelegateCall(address,bytes)":"9f86fd85","supportsInterface(bytes4)":"01ffc9a7","vault()":"fbfa77cf"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"baseDelegatorHints\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"vaultHints\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"optInServiceHints\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"AccessControlBadConfirmation\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"neededRole\",\"type\":\"bytes32\"}],\"name\":\"AccessControlUnauthorizedAccount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AlreadySet\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CheckpointUnorderedInsertion\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ExternalCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientHookGas\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidNetwork\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotNetwork\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotOperator\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotSlasher\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotVault\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ReentrancyGuardReentrantCall\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"bits\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"SafeCastOverflowedUintDowncast\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint48\",\"name\":\"captureTimestamp\",\"type\":\"uint48\"}],\"name\":\"OnSlash\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"previousAdminRole\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"newAdminRole\",\"type\":\"bytes32\"}],\"name\":\"RoleAdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleRevoked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"hook\",\"type\":\"address\"}],\"name\":\"SetHook\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"SetMaxNetworkLimit\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"BASE_DELEGATOR_HINTS\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"DEFAULT_ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"FACTORY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"HOOK_GAS_LIMIT\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"HOOK_RESERVE\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"HOOK_SET_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"NETWORK_REGISTRY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"OPERATOR_NETWORK_OPT_IN_SERVICE\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"OPERATOR_REGISTRY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"OPERATOR_VAULT_OPT_IN_SERVICE\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"OPT_IN_SERVICE_HINTS\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"TYPE\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"VAULT_FACTORY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"VAULT_HINTS\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"VERSION\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleAdmin\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"grantRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"hook\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"}],\"name\":\"maxNetworkLimit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hint\",\"type\":\"bytes\"}],\"name\":\"maxNetworkLimitAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"}],\"name\":\"maxNetworkLimitHint\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"}],\"name\":\"maxNetworkLimitHintInternal\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"exists\",\"type\":\"bool\"},{\"internalType\":\"uint32\",\"name\":\"hint\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"network\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint48\",\"name\":\"captureTimestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"onSlash\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"operator\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"callerConfirmation\",\"type\":\"address\"}],\"name\":\"renounceRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"hook_\",\"type\":\"address\"}],\"name\":\"setHook\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint96\",\"name\":\"identifier\",\"type\":\"uint96\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"setMaxNetworkLimit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"stake\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hints\",\"type\":\"bytes\"}],\"name\":\"stakeAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"}],\"name\":\"stakeHints\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"staticDelegateCall\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"vault\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"AccessControlBadConfirmation()\":[{\"details\":\"The caller of a function is not the expected one. NOTE: Don't confuse with {AccessControlUnauthorizedAccount}.\"}],\"AccessControlUnauthorizedAccount(address,bytes32)\":[{\"details\":\"The `account` is missing a role.\"}],\"CheckpointUnorderedInsertion()\":[{\"details\":\"A value was attempted to be inserted on a past checkpoint.\"}],\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"ReentrancyGuardReentrantCall()\":[{\"details\":\"Unauthorized reentrant call.\"}],\"SafeCastOverflowedUintDowncast(uint8,uint256)\":[{\"details\":\"Value doesn't fit in an uint of `bits` size.\"}]},\"events\":{\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"OnSlash(bytes32,address,uint256,uint48)\":{\"params\":{\"amount\":\"amount of the collateral to be slashed\",\"captureTimestamp\":\"time point when the stake was captured\",\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"}},\"RoleAdminChanged(bytes32,bytes32,bytes32)\":{\"details\":\"Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole` `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite {RoleAdminChanged} not being emitted signaling this.\"},\"RoleGranted(bytes32,address,address)\":{\"details\":\"Emitted when `account` is granted `role`. `sender` is the account that originated the contract call, an admin role bearer except when using {AccessControl-_setupRole}.\"},\"RoleRevoked(bytes32,address,address)\":{\"details\":\"Emitted when `account` is revoked `role`. `sender` is the account that originated the contract call: - if using `revokeRole`, it is the admin role bearer - if using `renounceRole`, it is the role bearer (i.e. `account`)\"},\"SetHook(address)\":{\"params\":{\"hook\":\"address of the hook\"}},\"SetMaxNetworkLimit(bytes32,uint256)\":{\"params\":{\"amount\":\"new maximum subnetwork's limit (how much stake the subnetwork is ready to get)\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"}}},\"kind\":\"dev\",\"methods\":{\"VERSION()\":{\"details\":\"Must return 1 for this one.\",\"returns\":{\"_0\":\"version of the delegator\"}},\"getRoleAdmin(bytes32)\":{\"details\":\"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}.\"},\"grantRole(bytes32,address)\":{\"details\":\"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event.\"},\"hasRole(bytes32,address)\":{\"details\":\"Returns `true` if `account` has been granted `role`.\"},\"initialize(bytes)\":{\"params\":{\"data\":\"some data to use\"}},\"maxNetworkLimitAt(bytes32,uint48,bytes)\":{\"params\":{\"hint\":\"hint for checkpoint index\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\",\"timestamp\":\"time point to get the maximum subnetwork limit at\"},\"returns\":{\"_0\":\"maximum limit of the subnetwork\"}},\"onSlash(bytes32,address,uint256,uint48,bytes)\":{\"details\":\"Only the vault's slasher can call this function.\",\"params\":{\"amount\":\"amount of the collateral slashed\",\"captureTimestamp\":\"time point when the stake was captured\",\"data\":\"some additional data\",\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"}},\"renounceRole(bytes32,address)\":{\"details\":\"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `callerConfirmation`. May emit a {RoleRevoked} event.\"},\"revokeRole(bytes32,address)\":{\"details\":\"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event.\"},\"setHook(address)\":{\"details\":\"Only a HOOK_SET_ROLE holder can call this function. The hook can have arbitrary logic under certain functions, however, it doesn't affect the stake guarantees.\",\"params\":{\"hook\":\"address of the hook\"}},\"setMaxNetworkLimit(uint96,uint256)\":{\"details\":\"Only a network can call this function.\",\"params\":{\"amount\":\"new maximum subnetwork's limit\"}},\"stake(bytes32,address)\":{\"details\":\"Warning: this function is not safe to use for stake capturing, as it can change by the end of the block.\",\"params\":{\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"},\"returns\":{\"_0\":\"slashable stake until the end of the next epoch\"}},\"stakeAt(bytes32,address,uint48,bytes)\":{\"details\":\"Warning: it is not safe to use timestamp >= current one for the stake capturing, as it can change later.\",\"params\":{\"hints\":\"hints for the checkpoints' indexes\",\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\",\"timestamp\":\"time point to capture the stake at\"},\"returns\":{\"_0\":\"slashable stake at the given timestamp until the end of the consequent epoch\"}},\"staticDelegateCall(address,bytes)\":{\"details\":\"It allows to use this contract's storage on-chain.\",\"params\":{\"data\":\"data to make a delegatecall with\",\"target\":\"address of the contract to make a delegatecall to\"}},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"}},\"version\":1},\"userdoc\":{\"events\":{\"OnSlash(bytes32,address,uint256,uint48)\":{\"notice\":\"Emitted when a slash happens.\"},\"SetHook(address)\":{\"notice\":\"Emitted when a hook is set.\"},\"SetMaxNetworkLimit(bytes32,uint256)\":{\"notice\":\"Emitted when a subnetwork's maximum limit is set.\"}},\"kind\":\"user\",\"methods\":{\"FACTORY()\":{\"notice\":\"Get the factory's address.\"},\"HOOK_GAS_LIMIT()\":{\"notice\":\"Get a gas limit for the hook.\"},\"HOOK_RESERVE()\":{\"notice\":\"Get a reserve gas between the gas limit check and the hook's execution.\"},\"HOOK_SET_ROLE()\":{\"notice\":\"Get a hook setter's role.\"},\"NETWORK_REGISTRY()\":{\"notice\":\"Get the network registry's address.\"},\"OPERATOR_NETWORK_OPT_IN_SERVICE()\":{\"notice\":\"Get the operator-network opt-in service's address.\"},\"OPERATOR_REGISTRY()\":{\"notice\":\"Get the operator registry's address.\"},\"OPERATOR_VAULT_OPT_IN_SERVICE()\":{\"notice\":\"Get the operator-vault opt-in service's address.\"},\"TYPE()\":{\"notice\":\"Get the entity's type.\"},\"VAULT_FACTORY()\":{\"notice\":\"Get the vault factory's address.\"},\"VERSION()\":{\"notice\":\"Get a version of the delegator (different versions mean different interfaces).\"},\"hook()\":{\"notice\":\"Get the hook's address.\"},\"initialize(bytes)\":{\"notice\":\"Initialize this entity contract by using a given data.\"},\"maxNetworkLimit(bytes32)\":{\"notice\":\"Get a particular subnetwork's maximum limit (meaning the subnetwork is not ready to get more as a stake).\"},\"maxNetworkLimitAt(bytes32,uint48,bytes)\":{\"notice\":\"Get a particular subnetwork's maximum limit at a given timestamp using a hint (meaning the subnetwork is not ready to get more as a stake).\"},\"network()\":{\"notice\":\"Get a network the vault delegates funds to.\"},\"onSlash(bytes32,address,uint256,uint48,bytes)\":{\"notice\":\"Called when a slash happens.\"},\"operator()\":{\"notice\":\"Get an operator managing the vault's funds.\"},\"setHook(address)\":{\"notice\":\"Set a new hook.\"},\"setMaxNetworkLimit(uint96,uint256)\":{\"notice\":\"Set a maximum limit for a subnetwork (how much stake the subnetwork is ready to get). identifier identifier of the subnetwork\"},\"stake(bytes32,address)\":{\"notice\":\"Get a stake that a given subnetwork will be able to slash for a certain operator until the end of the next epoch (if no cross-slashing and no slashings by the subnetwork).\"},\"stakeAt(bytes32,address,uint48,bytes)\":{\"notice\":\"Get a stake that a given subnetwork could be able to slash for a certain operator at a given timestamp until the end of the consequent epoch using hints (if no cross-slashing and no slashings by the subnetwork).\"},\"staticDelegateCall(address,bytes)\":{\"notice\":\"Make a delegatecall from this contract to a given target contract with a particular data (always reverts with a return data).\"},\"vault()\":{\"notice\":\"Get the vault's address.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/contracts/hints/DelegatorHints.sol\":\"OperatorNetworkSpecificDelegatorHints\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol\":{\"keccak256\":\"0x6662ec4e5cefca03eeadd073e9469df8d2944bb2ee8ec8f7622c2c46aab5f225\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4d8544c6f8daa4d1bc215c6a72fe0acdb748664a105b0e5efc19295667521d45\",\"dweb:/ipfs/QmdGWqdnXT8S3RgCR6aV8XHZrsybieMQLLnug1NtpSjEXN\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0xc163fcf9bb10138631a9ba5564df1fa25db9adff73bd9ee868a8ae1858fe093a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9706d43a0124053d9880f6e31a59f31bc0a6a3dc1acd66ce0a16e1111658c5f6\",\"dweb:/ipfs/QmUFmfowzkRwGtDu36cXV9SPTBHJ3n7dG9xQiK5B28jTf2\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609\",\"dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9\",\"dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardUpgradeable.sol\":{\"keccak256\":\"0xb44e086e941292cdc7f440de51478493894ef0b1aeccb0c4047445919f667f74\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://942dad22fbdc1669f025540ba63aa3ccfad5f8458fc5d4525b31ebf272e7af45\",\"dweb:/ipfs/Qmdo4X2M82aM3AMoW2kf2jhYkSCyC4T1pHNd6obdsDFnAB\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol\":{\"keccak256\":\"0xdaba3f7c42c55b2896353f32bd27d4d5f8bae741b3b05d4c53f67abc4dc47ce8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1fa2e61141c602510bcd2cd936ed9561922ac8772a9b9c9a9db091a74e354a45\",\"dweb:/ipfs/QmcHQDDoEBwJmwUbzoVkytvJsBx3KVHYFFnDkvRGWh9Wmh\"]},\"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0xb6b36edd6a2999fd243ff226d6cbf84bd71af2432bbd0dfe19392996a1d9cb41\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1fd2f35495652e57e3f99bc6c510bc5f7dd398a176ea2e72d8ed730aebc6ca26\",\"dweb:/ipfs/QmTQV6X4gkikTib49cho5iDX3JvSQbdsoEChoDwrk3CbbH\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC1271.sol\":{\"keccak256\":\"0x85a45f3f10014a0f8be41157a32b6a5f905753ea64a4b64e29fc12b7deeecf39\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c3c74009ce36136b36c77c23935b8e4a7b4f253be2da2be4fb4a916b1ce43743\",\"dweb:/ipfs/QmcH36v3iN7SJJuF73AunLR2LtNxhVJ1wm63ph4dPZ4pcL\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC5267.sol\":{\"keccak256\":\"0x92aa1df62dc3d33f1656d63bede0923e0df0b706ad4137c8b10b0a8fe549fd92\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c5c0f29195ad64cbe556da8e257dac8f05f78c53f90323c0d2accf8e6922d33a\",\"dweb:/ipfs/QmQ61TED8uaCZwcbh8KkgRSsCav7x7HbcGHwHts3U4DmUP\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c\",\"dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0x6008dabfe393240d73d7dd7688033f72740d570aa422254d29a7dce8568f3aff\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f5196ec75139918c6c7bb4251b36395e668f1fa6d206beba7e7520e74913940d\",\"dweb:/ipfs/QmSyqjksXxmm2mCG6qRd1yuwLykypkSVBbnBnGqJRcuJMi\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x37bb49513c49c87c4642a891b13b63571bc87013dde806617aa1efb54605f386\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b3036b3a83b7c48f96641f2a9002b9f2dcb6a5958dd670894ada21ae8229b3d0\",\"dweb:/ipfs/QmUNfSBdoVtjhETaUJCYcaC7pTMgbhht926tJ2uXJbiVd3\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0xaf28a975a78550e45f65e559a3ad6a5ad43b9b8a37366999abd1b7084eb70721\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b7bd24e224f67f65bfadf85dc2929fa965456bb2415478bd0125471b5ce35245\",\"dweb:/ipfs/QmRaydGr8BTHs1kvaZfsNU69pKzUAGFrvABn1KiRSbE51y\"]},\"lib/openzeppelin-contracts/contracts/utils/ShortStrings.sol\":{\"keccak256\":\"0x18a7171df639a934592915a520ecb97c5bbc9675a1105607aac8a94e72bf62c6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7478e1f13da69a2867ccd883001d836b75620362e743f196376d63ed0c422a1c\",\"dweb:/ipfs/QmWywcQ9TNfwtoqAxbn25d8C5VrV12PrPS9UjtGe6pL2BA\"]},\"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0x32ba59b4b7299237c8ba56319110989d7978a039faf754793064e967e5894418\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1ae50c8b562427df610cc4540c9bf104acca7ef8e2dcae567ae7e52272281e9c\",\"dweb:/ipfs/QmTHiadFCSJUPpRjNegc5SahmeU8bAoY8i9Aq6tVscbcKR\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0x55f102ea785d8399c0e58d1108e2d289506dde18abc6db1b7f68c1f9f9bc5792\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e52e0a7765c943ef14e5bcf11e46e6139fa044be564881378349236bf2e3453\",\"dweb:/ipfs/QmZEeeXoFPW47amyP35gfzomF9DixqqTEPwzBakv6cZw6i\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0xeed0a08b0b091f528356cbc7245891a4c748682d4f6a18055e8e6ca77d12a6cf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba80ba06c8e6be852847e4c5f4492cef801feb6558ae09ed705ff2e04ea8b13c\",\"dweb:/ipfs/QmXRJDv3xHLVQCVXg1ZvR35QS9sij5y9NDWYzMfUfAdTHF\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/EIP712.sol\":{\"keccak256\":\"0x999f705a027ed6dc2d4e0df2cc4a509852c6bfd11de1c8161bf88832d0503fd0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0798def67258d9a3cc20b2b4da7ebf351a5cefe0abfdd665d2d81f8e32f89b21\",\"dweb:/ipfs/QmPEvJosnPfzHNjKvCv2D3891mA2Ww8eUwkqrxBjuYdHCt\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol\":{\"keccak256\":\"0xba333517a3add42cd35fe877656fc3dfcc9de53baa4f3aabbd6d12a92e4ea435\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2ceacff44c0fdc81e48e0e0b1db87a2076d3c1fb497341de077bf1da9f6b406c\",\"dweb:/ipfs/QmRUo1muMRAewxrKQ7TkXUtknyRoR57AyEkoPpiuZQ8FzX\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/SignatureChecker.sol\":{\"keccak256\":\"0x6b11eb41a228cca35d4b662b4df69fcd75192851365102690f57b2ac01e83fe6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ab006a2983ed350d2af21ddcdd835dcae3b8340086cc4d088460da5abd041f69\",\"dweb:/ipfs/QmbEacDhkJZiGrgzLjB4pNtE8Z1uudjDw1DvcDUTVQFsLG\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875\",\"dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0xe19a4d5f31d2861e7344e8e535e2feafb913d806d3e2b5fe7782741a2a7094fe\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4aed79c0fa6f0546ed02f2f683e8f77f0fd2ed7eb34d8bbf3d373c9a6d95b13c\",\"dweb:/ipfs/QmWqVz6UAVqmnWU5pqYPt1o6iDEZyPaBraAA3rKfTTSfYj\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x5f7e4076e175393767754387c962926577f1660dd9b810187b9002407656be72\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7d533a1c97cd43a57cd9c465f7ee8dd0e39ae93a8fb8ff8e5303a356b081cdcc\",\"dweb:/ipfs/QmVBEei6aTnvYNZp2CHYVNKyZS4q1KkjANfY39WVXZXVoT\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/Checkpoints.sol\":{\"keccak256\":\"0xbdc5e074d7dd6678f67e92b1a51a20226801a407b0e1af3da367c5d1ff4519ad\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a36cca6b22fff3db16fc789ff6c60eea71d4b156065d4d0c83a0bc5e91a77a8b\",\"dweb:/ipfs/QmYN3exd5AemxjBrN8XMB1p5LbbE16uC3sjbYjwi8AjcGR\"]},\"lib/openzeppelin-contracts/contracts/utils/types/Time.sol\":{\"keccak256\":\"0xc7755af115020049e4140f224f9ee88d7e1799ffb0646f37bf0df24bf6213f58\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7f09bf94d5274334ec021f61a04659db303f31e60460e14b709c9bf187740111\",\"dweb:/ipfs/QmNvgomZYUwFAt4cZbPWAiTeSZQreGehY9BK5xyVJsUttb\"]},\"src/contracts/common/Entity.sol\":{\"keccak256\":\"0x3d61a932995b8443381f3950542d388223a2c26dd5d29a3274dea3baa7388bd7\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://7cdf5f03ca72fd263fd32ff59c8d88ddca911ae83896a287d10772c1bbe9b138\",\"dweb:/ipfs/QmbP84r5BWT1Rn9AYTntWSf3xUMTTCohTZJFhbBhDXFoHa\"]},\"src/contracts/common/MigratableEntity.sol\":{\"keccak256\":\"0x2d736f4dacd5d7e7697503bc426c78b8250fe1694ca157965ec178da6807de58\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://f1237acf96b4b9f9b69156e068eddd726a6e15bd8e87a18dc999cd4ba4da069c\",\"dweb:/ipfs/QmS6M8fiFFSeuJ4ZKKq1z8W7w4ybeHQSy5TLASGoc1LVic\"]},\"src/contracts/common/StaticDelegateCallable.sol\":{\"keccak256\":\"0x350029aa8955eacaffffaeb58babc5c98e80ebc5c5db388ed17ee6465f4a9d90\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://eb392a8ee9050e0af606897df63e3404e3829e8b688b580663892f9664195764\",\"dweb:/ipfs/QmaXC8jqV8UrrAFkzXTEv2fJF56sy33HhLxAzaRZmUxuXD\"]},\"src/contracts/delegator/BaseDelegator.sol\":{\"keccak256\":\"0x7c54d491fdd4415b764a9c8defa068e56d4c0c8c9419be0053a1d377669290e8\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://9238bfbad0f6eeb0dc7727724de14380f1980b395902269703d5e2ef07e52e10\",\"dweb:/ipfs/QmPJn1V4HNXcEghYvogGuSTF24dSQUPosR5qtsXcmNqRm3\"]},\"src/contracts/delegator/FullRestakeDelegator.sol\":{\"keccak256\":\"0x0a81c4f8e72914563a9cb771e93acf889c71ea36b7bec040e4eb562b199d5af1\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://6fc66b6ba02da77046a0bbbd1dd407a62c08f52e04486c9cbd2cb1cca3da555f\",\"dweb:/ipfs/QmZQivK1ZnMxfRQQ5aLpV9co5u55wQVNev5Rg1hzAqxhkE\"]},\"src/contracts/delegator/NetworkRestakeDelegator.sol\":{\"keccak256\":\"0xd3a8e6522f9c6fdcc2da837c9023afd6bdff2bce45a35590320c475519e3636d\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://58b17a87f6554f08376f9ea7fedf486a4aa75801bf0ad8b23ff5a46959b6b7a3\",\"dweb:/ipfs/QmSTmNh67tYt8CmjVZb57r8N3qX5yeYdMApKPJm3qvQgQw\"]},\"src/contracts/delegator/OperatorNetworkSpecificDelegator.sol\":{\"keccak256\":\"0x031a10722b9ec49048f0952710401131290adb87e71caf294e864e7ac3b98a16\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://72428febc875134b2f29205e6f294634a1c22a7d5c78d6a9cb2f8196f107c9b5\",\"dweb:/ipfs/QmTPwXR6h5oytckmkLrHdKeEMdphJxceDhYUR4zvQeWAwY\"]},\"src/contracts/delegator/OperatorSpecificDelegator.sol\":{\"keccak256\":\"0x630ce62fa30b9f3349ab7a8cf8dbf041319febc6dd757be2f94d3d25944ed328\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://c2ac59d47ce57d2a6819ae9833e1a618a371eccff93eb5ab367b201b01f42bfa\",\"dweb:/ipfs/QmdBpGMBivpNPv2WbH8vnCUy5xkVeaxQvGgqi33vKCz1kA\"]},\"src/contracts/hints/DelegatorHints.sol\":{\"keccak256\":\"0x44aa0c396311a54afbc7c73e8dadeed41e3165a4fd13f712b27d63d50fc3376d\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://2f255214f3531fc707d88be0d56a7a0aed4180439316d099d760d9118aa83093\",\"dweb:/ipfs/QmZD1w5p1ukJSXumUAjvxwGmkPhn7vsr21Y2atLGEZR2oi\"]},\"src/contracts/hints/Hints.sol\":{\"keccak256\":\"0x8b565df1ae35993c097a9e642002782a8f451f6fd01809cad6bcd345bdf1b99c\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://99a19adb01e350a92f534095b3078229df1f2f83077992d75d58d8684be45971\",\"dweb:/ipfs/QmbmwcuswVbzvwHQFTtrJG86oV98GnfxqYTb8cV8u1acox\"]},\"src/contracts/hints/OptInServiceHints.sol\":{\"keccak256\":\"0x95d9407900d27b9f4a1233b772aeed809c07b2dc5b31cfc9fa77ca26514c49e5\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://a13a8877e312d7e6b8b85bde3668c5d84ff5ecc83f762cd573f2b7104c64eb42\",\"dweb:/ipfs/QmYV2J55acuGzCNnS3juABuUHY5U1xc8g8o9jwEyFFdeG5\"]},\"src/contracts/hints/VaultHints.sol\":{\"keccak256\":\"0xccb505b7159b769cc114d67b87c2de6b106557f667fc8f3780114baad5c3c442\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://6d0c80a908fc16e96a8b5605a0bd53f9e89ad0ef0a738fbbae80ba4d3160749b\",\"dweb:/ipfs/QmXo5UtWoR8YmunqcbBU8rQMm1nvmvjNPoXcVrDhh4pEwR\"]},\"src/contracts/libraries/Checkpoints.sol\":{\"keccak256\":\"0xba90097c8bfe0a975499428b5f8ac5569483c7d92ccc28c12d70de416aae040c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://12f5d93ca94cd06d3147db68993165a58e17903ed53682560de61f3085ad4609\",\"dweb:/ipfs/QmePiuAqvXprMLmFZkGZeGjvGPAvsEDHfCDv7BoQhXu9xE\"]},\"src/contracts/libraries/ERC4626Math.sol\":{\"keccak256\":\"0x8441160513c1cbeb1c3b9ee077bcc7e7ce20006b52a77c8dd39ff0ef89699939\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://943f8cc3e26ddf649f465f40c909819f5c864717c4baa339e9e403b9374a4653\",\"dweb:/ipfs/QmXPxi1sUDsrGprZdUgCzoPEosaZMv9ZhygWQ1vAi1phAB\"]},\"src/contracts/libraries/Subnetwork.sol\":{\"keccak256\":\"0xf5ef5506fd66082b3c2e7f3df37529f5a8efad32ac62e7c8914bd63219190bfe\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba031a54ee0d0e9a270c2b9e18437f5668cfeb659cfd5fe0677459d7fcac2a56\",\"dweb:/ipfs/QmReP3H7qQ78tAfgLnJKsNEQNCQfF1X1Get38Ffd4kzq32\"]},\"src/contracts/service/OptInService.sol\":{\"keccak256\":\"0x4e0932077f2686b7990e10d59deb2535334c0d09e52ef6e57c6ab09eca21c4b1\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://7c00d311032ed4a1743aca7475f3c86ce15cdfc2218108efc3731c03d34a5278\",\"dweb:/ipfs/QmUGGfVwVhaHr5kS4177yKKYiLYzi5qZpkEmvYxBZqazxf\"]},\"src/contracts/vault/Vault.sol\":{\"keccak256\":\"0x2ceff6ed3298c4cad144c99fcc79b51cb9397d6ebef00285b915848b476f8c2e\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://11f2fb3581854f3ab6e82e8d4935d9eb510c903a13c3f022346c2956a58f5307\",\"dweb:/ipfs/QmdUnoXoyYoG9SGWyQZCFyLDRUUX3eXyXetkRvw6jxqqBz\"]},\"src/contracts/vault/VaultStorage.sol\":{\"keccak256\":\"0x57db25b127d77ea3472de53e3a4af3354399655b9268638b99ca5925fa364a56\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://aa763d9a6ec508ae3abfb8228b72b9fd9525279e5135d4962e79ff059feb1173\",\"dweb:/ipfs/QmcbDR6E9wyEpu6V2FkEC4hnWy47zXA9LSKJde6zSGd33Q\"]},\"src/interfaces/common/IEntity.sol\":{\"keccak256\":\"0x8ef4b63d6da63489778ccd5f8d13ebdd527dd4b62730b2c616df5af7474d2d21\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a8d69576a9219d85c50816a18ad53a4d53cfcb27ed38b8cccc808dc2734b71b\",\"dweb:/ipfs/QmYVN3P4Q4REvBWJ97TbAcaxm3uyB2anV6NSGa6ZtSwcEv\"]},\"src/interfaces/common/IMigratableEntity.sol\":{\"keccak256\":\"0x8f5f2809f3afbe8ebfbb365dd7b57b4dd3b6f9943a6187eaf648d45895b8e3c4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ffe640537d539e7a4fde70d30d3e4c57f4ba9c2c25c450cea713aae38e8fd5c\",\"dweb:/ipfs/QmSUTGzvdcn1R1KB7tLThMRtESsfPbeXDhhhKWGtntzBds\"]},\"src/interfaces/common/IRegistry.sol\":{\"keccak256\":\"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014\",\"dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK\"]},\"src/interfaces/common/IStaticDelegateCallable.sol\":{\"keccak256\":\"0xa335d4e81b9071b7de66ef92b43ff20671d86516eb1be46fef29a3483cd3f5d5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d464b9db863c14c05547d2b23352f2e9b7b784799cf09f6bbc4906a2a74e3516\",\"dweb:/ipfs/QmUVWzFvJz7eEbDQKiFTTzwi7TEbjcs3VmwdM4kuptAKvi\"]},\"src/interfaces/delegator/IBaseDelegator.sol\":{\"keccak256\":\"0x96bb312f032e17accce3f8f80936d99468029d6b37c9ca74acdb4b026a0148ee\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2a66dcb5b7d1a6ef6a363431ea98ebd78bc4fdd3d7a134d9b542dc66e7d025c2\",\"dweb:/ipfs/QmRhTPLd2ZAyRHmJUFUcWKs9b3if49QY17LYZuRqWmghw8\"]},\"src/interfaces/delegator/IDelegatorHook.sol\":{\"keccak256\":\"0xc51aa8d7d1f6c8043ee819b7aeb86da0e993912e1442098df897e299f01f9f46\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://adddf5cb2ba282aeb576b26efb28640f865a1721cc9b6eee8b3ee0457a2c9780\",\"dweb:/ipfs/QmNYgAmnLRwWZbhTuQhZs9rx4zcme1df5mEepkrniorSoW\"]},\"src/interfaces/delegator/IFullRestakeDelegator.sol\":{\"keccak256\":\"0xa3c8cb2e45d4d8ce90e95263bea40c01dc400f05ad65bc29597d878606be5e7d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://782cf5e201aa4cca037ebafd3807a68ff1cc721d5b8416a35244db0d0607369e\",\"dweb:/ipfs/QmQkJks6x7CKndeTPa9LxgTNygD5uEi7obhADhpq1Lsr9A\"]},\"src/interfaces/delegator/INetworkRestakeDelegator.sol\":{\"keccak256\":\"0xe7030fe30389a147fd710e3436ec346b4842695fd3e65a81b95375c9f1d633fc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://739c7e66d301778054f5c90bee45ec9438f68afba8a03eaaac52064c73b115ad\",\"dweb:/ipfs/QmfZ2ytKcTykAc76nxhg8ikUXV8NdBpetqb8W4YWPcox1Z\"]},\"src/interfaces/delegator/IOperatorNetworkSpecificDelegator.sol\":{\"keccak256\":\"0x74b95e64d29769202d45dd277bb830f623ff3d41ce77b80ce3ee4e318a5c71ec\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e512b903aae5c1b8a028c6e3f4f6223b5cb5d704503cfa6bd37b5346868f5c20\",\"dweb:/ipfs/QmZim9YExsPWtyxyeui993HTKAEmrg8MUcSkZ77Gp2JcuZ\"]},\"src/interfaces/delegator/IOperatorSpecificDelegator.sol\":{\"keccak256\":\"0x72075cab585dc17240cc3e32bc99b92f0d5627ddd988fed680e3e1a52d5a01e4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7448bc90699409ae61d85216b5efc2143a37f0f73354be2aea993bc54afca441\",\"dweb:/ipfs/QmXE4gAxM8pHosZK8mcTcj17puBx484meDCcmrDePskGHZ\"]},\"src/interfaces/service/IOptInService.sol\":{\"keccak256\":\"0x76fb5460a6d87a5705433d4fbeff7253cd75b8bbd0c888b2088f16e86ace146a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://990322019b3d11465f7024bae77ccbf7e2fe5d6fa3c754584778f37d04fa1337\",\"dweb:/ipfs/QmaSNHzcqxTkUCG9a4nqVfLECHLdjdrwAnDi3yDC7tDL24\"]},\"src/interfaces/slasher/IBaseSlasher.sol\":{\"keccak256\":\"0x7c82528b445659c313ab77335c407b0b6efe5e79027187bb287f7bc74202b404\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0274c90aa5df1aa6bb470a6aab53992fb14fd7e5472c9430416505b29647d9cf\",\"dweb:/ipfs/QmckbmJLDetPemVzCnnGcKYWAZV2BRFXGDsjiaec8jkHxx\"]},\"src/interfaces/vault/IVault.sol\":{\"keccak256\":\"0xffee01d383cd4e1a5530c614bf4360c1ef070c288abec9da1eb531b51bc07235\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://04f0046cac285d8ec44ebbb1f79dc94fab4495767190cad8364fbc1fafaadfb9\",\"dweb:/ipfs/QmUawAunwzXfCyShWfhKeThAgKtqe51hmrxvrXvM772M2R\"]},\"src/interfaces/vault/IVaultStorage.sol\":{\"keccak256\":\"0x592626f13754194f83047135de19229c49390bd59e34659b1bb38be71d973a22\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://06a6a9dfddd05e580b32bebe2cff4f63ba26a653180676d58225dd30d9c89d3e\",\"dweb:/ipfs/QmdgzBeY6Sxo8mGtyBxtv1tM1c2kU6J6zjeRd7vuXm4DU6\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.25+commit.b61c2a91"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"baseDelegatorHints","type":"address"},{"internalType":"address","name":"vaultHints","type":"address"},{"internalType":"address","name":"optInServiceHints","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"AccessControlBadConfirmation"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bytes32","name":"neededRole","type":"bytes32"}],"type":"error","name":"AccessControlUnauthorizedAccount"},{"inputs":[],"type":"error","name":"AlreadySet"},{"inputs":[],"type":"error","name":"CheckpointUnorderedInsertion"},{"inputs":[],"type":"error","name":"ExternalCall"},{"inputs":[],"type":"error","name":"InsufficientHookGas"},{"inputs":[],"type":"error","name":"InvalidInitialization"},{"inputs":[],"type":"error","name":"InvalidNetwork"},{"inputs":[],"type":"error","name":"NotInitialized"},{"inputs":[],"type":"error","name":"NotInitializing"},{"inputs":[],"type":"error","name":"NotNetwork"},{"inputs":[],"type":"error","name":"NotOperator"},{"inputs":[],"type":"error","name":"NotSlasher"},{"inputs":[],"type":"error","name":"NotVault"},{"inputs":[],"type":"error","name":"ReentrancyGuardReentrantCall"},{"inputs":[{"internalType":"uint8","name":"bits","type":"uint8"},{"internalType":"uint256","name":"value","type":"uint256"}],"type":"error","name":"SafeCastOverflowedUintDowncast"},{"inputs":[{"internalType":"uint64","name":"version","type":"uint64","indexed":false}],"type":"event","name":"Initialized","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32","indexed":true},{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false},{"internalType":"uint48","name":"captureTimestamp","type":"uint48","indexed":false}],"type":"event","name":"OnSlash","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"bytes32","name":"previousAdminRole","type":"bytes32","indexed":true},{"internalType":"bytes32","name":"newAdminRole","type":"bytes32","indexed":true}],"type":"event","name":"RoleAdminChanged","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"address","name":"sender","type":"address","indexed":true}],"type":"event","name":"RoleGranted","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"address","name":"sender","type":"address","indexed":true}],"type":"event","name":"RoleRevoked","anonymous":false},{"inputs":[{"internalType":"address","name":"hook","type":"address","indexed":true}],"type":"event","name":"SetHook","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"SetMaxNetworkLimit","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"BASE_DELEGATOR_HINTS","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"DEFAULT_ADMIN_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"FACTORY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"HOOK_GAS_LIMIT","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"HOOK_RESERVE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"HOOK_SET_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"NETWORK_REGISTRY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"OPERATOR_NETWORK_OPT_IN_SERVICE","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"OPERATOR_REGISTRY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"OPERATOR_VAULT_OPT_IN_SERVICE","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"OPT_IN_SERVICE_HINTS","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"TYPE","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"VAULT_FACTORY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"VAULT_HINTS","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"VERSION","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getRoleAdmin","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"grantRole"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"hasRole","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"hook","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"}],"stateMutability":"view","type":"function","name":"maxNetworkLimit","outputs":[{"internalType":"uint256","name":"value","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"uint48","name":"timestamp","type":"uint48"},{"internalType":"bytes","name":"hint","type":"bytes"}],"stateMutability":"view","type":"function","name":"maxNetworkLimitAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"delegator","type":"address"},{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"uint48","name":"timestamp","type":"uint48"}],"stateMutability":"view","type":"function","name":"maxNetworkLimitHint","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"uint48","name":"timestamp","type":"uint48"}],"stateMutability":"view","type":"function","name":"maxNetworkLimitHintInternal","outputs":[{"internalType":"bool","name":"exists","type":"bool"},{"internalType":"uint32","name":"hint","type":"uint32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"network","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint48","name":"captureTimestamp","type":"uint48"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"onSlash"},{"inputs":[],"stateMutability":"view","type":"function","name":"operator","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"callerConfirmation","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"renounceRole"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"revokeRole"},{"inputs":[{"internalType":"address","name":"hook_","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setHook"},{"inputs":[{"internalType":"uint96","name":"identifier","type":"uint96"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setMaxNetworkLimit"},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"stake","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint48","name":"timestamp","type":"uint48"},{"internalType":"bytes","name":"hints","type":"bytes"}],"stateMutability":"view","type":"function","name":"stakeAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"delegator","type":"address"},{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint48","name":"timestamp","type":"uint48"}],"stateMutability":"view","type":"function","name":"stakeHints","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"staticDelegateCall"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"vault","outputs":[{"internalType":"address","name":"","type":"address"}]}],"devdoc":{"kind":"dev","methods":{"VERSION()":{"details":"Must return 1 for this one.","returns":{"_0":"version of the delegator"}},"getRoleAdmin(bytes32)":{"details":"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}."},"grantRole(bytes32,address)":{"details":"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event."},"hasRole(bytes32,address)":{"details":"Returns `true` if `account` has been granted `role`."},"initialize(bytes)":{"params":{"data":"some data to use"}},"maxNetworkLimitAt(bytes32,uint48,bytes)":{"params":{"hint":"hint for checkpoint index","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)","timestamp":"time point to get the maximum subnetwork limit at"},"returns":{"_0":"maximum limit of the subnetwork"}},"onSlash(bytes32,address,uint256,uint48,bytes)":{"details":"Only the vault's slasher can call this function.","params":{"amount":"amount of the collateral slashed","captureTimestamp":"time point when the stake was captured","data":"some additional data","operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"}},"renounceRole(bytes32,address)":{"details":"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `callerConfirmation`. May emit a {RoleRevoked} event."},"revokeRole(bytes32,address)":{"details":"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event."},"setHook(address)":{"details":"Only a HOOK_SET_ROLE holder can call this function. The hook can have arbitrary logic under certain functions, however, it doesn't affect the stake guarantees.","params":{"hook":"address of the hook"}},"setMaxNetworkLimit(uint96,uint256)":{"details":"Only a network can call this function.","params":{"amount":"new maximum subnetwork's limit"}},"stake(bytes32,address)":{"details":"Warning: this function is not safe to use for stake capturing, as it can change by the end of the block.","params":{"operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"},"returns":{"_0":"slashable stake until the end of the next epoch"}},"stakeAt(bytes32,address,uint48,bytes)":{"details":"Warning: it is not safe to use timestamp >= current one for the stake capturing, as it can change later.","params":{"hints":"hints for the checkpoints' indexes","operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)","timestamp":"time point to capture the stake at"},"returns":{"_0":"slashable stake at the given timestamp until the end of the consequent epoch"}},"staticDelegateCall(address,bytes)":{"details":"It allows to use this contract's storage on-chain.","params":{"data":"data to make a delegatecall with","target":"address of the contract to make a delegatecall to"}},"supportsInterface(bytes4)":{"details":"See {IERC165-supportsInterface}."}},"version":1},"userdoc":{"kind":"user","methods":{"FACTORY()":{"notice":"Get the factory's address."},"HOOK_GAS_LIMIT()":{"notice":"Get a gas limit for the hook."},"HOOK_RESERVE()":{"notice":"Get a reserve gas between the gas limit check and the hook's execution."},"HOOK_SET_ROLE()":{"notice":"Get a hook setter's role."},"NETWORK_REGISTRY()":{"notice":"Get the network registry's address."},"OPERATOR_NETWORK_OPT_IN_SERVICE()":{"notice":"Get the operator-network opt-in service's address."},"OPERATOR_REGISTRY()":{"notice":"Get the operator registry's address."},"OPERATOR_VAULT_OPT_IN_SERVICE()":{"notice":"Get the operator-vault opt-in service's address."},"TYPE()":{"notice":"Get the entity's type."},"VAULT_FACTORY()":{"notice":"Get the vault factory's address."},"VERSION()":{"notice":"Get a version of the delegator (different versions mean different interfaces)."},"hook()":{"notice":"Get the hook's address."},"initialize(bytes)":{"notice":"Initialize this entity contract by using a given data."},"maxNetworkLimit(bytes32)":{"notice":"Get a particular subnetwork's maximum limit (meaning the subnetwork is not ready to get more as a stake)."},"maxNetworkLimitAt(bytes32,uint48,bytes)":{"notice":"Get a particular subnetwork's maximum limit at a given timestamp using a hint (meaning the subnetwork is not ready to get more as a stake)."},"network()":{"notice":"Get a network the vault delegates funds to."},"onSlash(bytes32,address,uint256,uint48,bytes)":{"notice":"Called when a slash happens."},"operator()":{"notice":"Get an operator managing the vault's funds."},"setHook(address)":{"notice":"Set a new hook."},"setMaxNetworkLimit(uint96,uint256)":{"notice":"Set a maximum limit for a subnetwork (how much stake the subnetwork is ready to get). identifier identifier of the subnetwork"},"stake(bytes32,address)":{"notice":"Get a stake that a given subnetwork will be able to slash for a certain operator until the end of the next epoch (if no cross-slashing and no slashings by the subnetwork)."},"stakeAt(bytes32,address,uint48,bytes)":{"notice":"Get a stake that a given subnetwork could be able to slash for a certain operator at a given timestamp until the end of the consequent epoch using hints (if no cross-slashing and no slashings by the subnetwork)."},"staticDelegateCall(address,bytes)":{"notice":"Make a delegatecall from this contract to a given target contract with a particular data (always reverts with a return data)."},"vault()":{"notice":"Get the vault's address."}},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/contracts/hints/DelegatorHints.sol":"OperatorNetworkSpecificDelegatorHints"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol":{"keccak256":"0x6662ec4e5cefca03eeadd073e9469df8d2944bb2ee8ec8f7622c2c46aab5f225","urls":["bzz-raw://4d8544c6f8daa4d1bc215c6a72fe0acdb748664a105b0e5efc19295667521d45","dweb:/ipfs/QmdGWqdnXT8S3RgCR6aV8XHZrsybieMQLLnug1NtpSjEXN"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol":{"keccak256":"0xc163fcf9bb10138631a9ba5564df1fa25db9adff73bd9ee868a8ae1858fe093a","urls":["bzz-raw://9706d43a0124053d9880f6e31a59f31bc0a6a3dc1acd66ce0a16e1111658c5f6","dweb:/ipfs/QmUFmfowzkRwGtDu36cXV9SPTBHJ3n7dG9xQiK5B28jTf2"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b","urls":["bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609","dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol":{"keccak256":"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397","urls":["bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9","dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardUpgradeable.sol":{"keccak256":"0xb44e086e941292cdc7f440de51478493894ef0b1aeccb0c4047445919f667f74","urls":["bzz-raw://942dad22fbdc1669f025540ba63aa3ccfad5f8458fc5d4525b31ebf272e7af45","dweb:/ipfs/Qmdo4X2M82aM3AMoW2kf2jhYkSCyC4T1pHNd6obdsDFnAB"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol":{"keccak256":"0xdaba3f7c42c55b2896353f32bd27d4d5f8bae741b3b05d4c53f67abc4dc47ce8","urls":["bzz-raw://1fa2e61141c602510bcd2cd936ed9561922ac8772a9b9c9a9db091a74e354a45","dweb:/ipfs/QmcHQDDoEBwJmwUbzoVkytvJsBx3KVHYFFnDkvRGWh9Wmh"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol":{"keccak256":"0xb6b36edd6a2999fd243ff226d6cbf84bd71af2432bbd0dfe19392996a1d9cb41","urls":["bzz-raw://1fd2f35495652e57e3f99bc6c510bc5f7dd398a176ea2e72d8ed730aebc6ca26","dweb:/ipfs/QmTQV6X4gkikTib49cho5iDX3JvSQbdsoEChoDwrk3CbbH"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC1271.sol":{"keccak256":"0x85a45f3f10014a0f8be41157a32b6a5f905753ea64a4b64e29fc12b7deeecf39","urls":["bzz-raw://c3c74009ce36136b36c77c23935b8e4a7b4f253be2da2be4fb4a916b1ce43743","dweb:/ipfs/QmcH36v3iN7SJJuF73AunLR2LtNxhVJ1wm63ph4dPZ4pcL"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC5267.sol":{"keccak256":"0x92aa1df62dc3d33f1656d63bede0923e0df0b706ad4137c8b10b0a8fe549fd92","urls":["bzz-raw://c5c0f29195ad64cbe556da8e257dac8f05f78c53f90323c0d2accf8e6922d33a","dweb:/ipfs/QmQ61TED8uaCZwcbh8KkgRSsCav7x7HbcGHwHts3U4DmUP"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70","urls":["bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c","dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol":{"keccak256":"0x6008dabfe393240d73d7dd7688033f72740d570aa422254d29a7dce8568f3aff","urls":["bzz-raw://f5196ec75139918c6c7bb4251b36395e668f1fa6d206beba7e7520e74913940d","dweb:/ipfs/QmSyqjksXxmm2mCG6qRd1yuwLykypkSVBbnBnGqJRcuJMi"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0x37bb49513c49c87c4642a891b13b63571bc87013dde806617aa1efb54605f386","urls":["bzz-raw://b3036b3a83b7c48f96641f2a9002b9f2dcb6a5958dd670894ada21ae8229b3d0","dweb:/ipfs/QmUNfSBdoVtjhETaUJCYcaC7pTMgbhht926tJ2uXJbiVd3"],"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/ShortStrings.sol":{"keccak256":"0x18a7171df639a934592915a520ecb97c5bbc9675a1105607aac8a94e72bf62c6","urls":["bzz-raw://7478e1f13da69a2867ccd883001d836b75620362e743f196376d63ed0c422a1c","dweb:/ipfs/QmWywcQ9TNfwtoqAxbn25d8C5VrV12PrPS9UjtGe6pL2BA"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol":{"keccak256":"0x32ba59b4b7299237c8ba56319110989d7978a039faf754793064e967e5894418","urls":["bzz-raw://1ae50c8b562427df610cc4540c9bf104acca7ef8e2dcae567ae7e52272281e9c","dweb:/ipfs/QmTHiadFCSJUPpRjNegc5SahmeU8bAoY8i9Aq6tVscbcKR"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0x55f102ea785d8399c0e58d1108e2d289506dde18abc6db1b7f68c1f9f9bc5792","urls":["bzz-raw://6e52e0a7765c943ef14e5bcf11e46e6139fa044be564881378349236bf2e3453","dweb:/ipfs/QmZEeeXoFPW47amyP35gfzomF9DixqqTEPwzBakv6cZw6i"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol":{"keccak256":"0xeed0a08b0b091f528356cbc7245891a4c748682d4f6a18055e8e6ca77d12a6cf","urls":["bzz-raw://ba80ba06c8e6be852847e4c5f4492cef801feb6558ae09ed705ff2e04ea8b13c","dweb:/ipfs/QmXRJDv3xHLVQCVXg1ZvR35QS9sij5y9NDWYzMfUfAdTHF"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/EIP712.sol":{"keccak256":"0x999f705a027ed6dc2d4e0df2cc4a509852c6bfd11de1c8161bf88832d0503fd0","urls":["bzz-raw://0798def67258d9a3cc20b2b4da7ebf351a5cefe0abfdd665d2d81f8e32f89b21","dweb:/ipfs/QmPEvJosnPfzHNjKvCv2D3891mA2Ww8eUwkqrxBjuYdHCt"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol":{"keccak256":"0xba333517a3add42cd35fe877656fc3dfcc9de53baa4f3aabbd6d12a92e4ea435","urls":["bzz-raw://2ceacff44c0fdc81e48e0e0b1db87a2076d3c1fb497341de077bf1da9f6b406c","dweb:/ipfs/QmRUo1muMRAewxrKQ7TkXUtknyRoR57AyEkoPpiuZQ8FzX"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/SignatureChecker.sol":{"keccak256":"0x6b11eb41a228cca35d4b662b4df69fcd75192851365102690f57b2ac01e83fe6","urls":["bzz-raw://ab006a2983ed350d2af21ddcdd835dcae3b8340086cc4d088460da5abd041f69","dweb:/ipfs/QmbEacDhkJZiGrgzLjB4pNtE8Z1uudjDw1DvcDUTVQFsLG"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b","urls":["bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df","dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d","urls":["bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875","dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol":{"keccak256":"0xe19a4d5f31d2861e7344e8e535e2feafb913d806d3e2b5fe7782741a2a7094fe","urls":["bzz-raw://4aed79c0fa6f0546ed02f2f683e8f77f0fd2ed7eb34d8bbf3d373c9a6d95b13c","dweb:/ipfs/QmWqVz6UAVqmnWU5pqYPt1o6iDEZyPaBraAA3rKfTTSfYj"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0x5f7e4076e175393767754387c962926577f1660dd9b810187b9002407656be72","urls":["bzz-raw://7d533a1c97cd43a57cd9c465f7ee8dd0e39ae93a8fb8ff8e5303a356b081cdcc","dweb:/ipfs/QmVBEei6aTnvYNZp2CHYVNKyZS4q1KkjANfY39WVXZXVoT"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/Checkpoints.sol":{"keccak256":"0xbdc5e074d7dd6678f67e92b1a51a20226801a407b0e1af3da367c5d1ff4519ad","urls":["bzz-raw://a36cca6b22fff3db16fc789ff6c60eea71d4b156065d4d0c83a0bc5e91a77a8b","dweb:/ipfs/QmYN3exd5AemxjBrN8XMB1p5LbbE16uC3sjbYjwi8AjcGR"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/types/Time.sol":{"keccak256":"0xc7755af115020049e4140f224f9ee88d7e1799ffb0646f37bf0df24bf6213f58","urls":["bzz-raw://7f09bf94d5274334ec021f61a04659db303f31e60460e14b709c9bf187740111","dweb:/ipfs/QmNvgomZYUwFAt4cZbPWAiTeSZQreGehY9BK5xyVJsUttb"],"license":"MIT"},"src/contracts/common/Entity.sol":{"keccak256":"0x3d61a932995b8443381f3950542d388223a2c26dd5d29a3274dea3baa7388bd7","urls":["bzz-raw://7cdf5f03ca72fd263fd32ff59c8d88ddca911ae83896a287d10772c1bbe9b138","dweb:/ipfs/QmbP84r5BWT1Rn9AYTntWSf3xUMTTCohTZJFhbBhDXFoHa"],"license":"BUSL-1.1"},"src/contracts/common/MigratableEntity.sol":{"keccak256":"0x2d736f4dacd5d7e7697503bc426c78b8250fe1694ca157965ec178da6807de58","urls":["bzz-raw://f1237acf96b4b9f9b69156e068eddd726a6e15bd8e87a18dc999cd4ba4da069c","dweb:/ipfs/QmS6M8fiFFSeuJ4ZKKq1z8W7w4ybeHQSy5TLASGoc1LVic"],"license":"BUSL-1.1"},"src/contracts/common/StaticDelegateCallable.sol":{"keccak256":"0x350029aa8955eacaffffaeb58babc5c98e80ebc5c5db388ed17ee6465f4a9d90","urls":["bzz-raw://eb392a8ee9050e0af606897df63e3404e3829e8b688b580663892f9664195764","dweb:/ipfs/QmaXC8jqV8UrrAFkzXTEv2fJF56sy33HhLxAzaRZmUxuXD"],"license":"BUSL-1.1"},"src/contracts/delegator/BaseDelegator.sol":{"keccak256":"0x7c54d491fdd4415b764a9c8defa068e56d4c0c8c9419be0053a1d377669290e8","urls":["bzz-raw://9238bfbad0f6eeb0dc7727724de14380f1980b395902269703d5e2ef07e52e10","dweb:/ipfs/QmPJn1V4HNXcEghYvogGuSTF24dSQUPosR5qtsXcmNqRm3"],"license":"BUSL-1.1"},"src/contracts/delegator/FullRestakeDelegator.sol":{"keccak256":"0x0a81c4f8e72914563a9cb771e93acf889c71ea36b7bec040e4eb562b199d5af1","urls":["bzz-raw://6fc66b6ba02da77046a0bbbd1dd407a62c08f52e04486c9cbd2cb1cca3da555f","dweb:/ipfs/QmZQivK1ZnMxfRQQ5aLpV9co5u55wQVNev5Rg1hzAqxhkE"],"license":"BUSL-1.1"},"src/contracts/delegator/NetworkRestakeDelegator.sol":{"keccak256":"0xd3a8e6522f9c6fdcc2da837c9023afd6bdff2bce45a35590320c475519e3636d","urls":["bzz-raw://58b17a87f6554f08376f9ea7fedf486a4aa75801bf0ad8b23ff5a46959b6b7a3","dweb:/ipfs/QmSTmNh67tYt8CmjVZb57r8N3qX5yeYdMApKPJm3qvQgQw"],"license":"BUSL-1.1"},"src/contracts/delegator/OperatorNetworkSpecificDelegator.sol":{"keccak256":"0x031a10722b9ec49048f0952710401131290adb87e71caf294e864e7ac3b98a16","urls":["bzz-raw://72428febc875134b2f29205e6f294634a1c22a7d5c78d6a9cb2f8196f107c9b5","dweb:/ipfs/QmTPwXR6h5oytckmkLrHdKeEMdphJxceDhYUR4zvQeWAwY"],"license":"BUSL-1.1"},"src/contracts/delegator/OperatorSpecificDelegator.sol":{"keccak256":"0x630ce62fa30b9f3349ab7a8cf8dbf041319febc6dd757be2f94d3d25944ed328","urls":["bzz-raw://c2ac59d47ce57d2a6819ae9833e1a618a371eccff93eb5ab367b201b01f42bfa","dweb:/ipfs/QmdBpGMBivpNPv2WbH8vnCUy5xkVeaxQvGgqi33vKCz1kA"],"license":"BUSL-1.1"},"src/contracts/hints/DelegatorHints.sol":{"keccak256":"0x44aa0c396311a54afbc7c73e8dadeed41e3165a4fd13f712b27d63d50fc3376d","urls":["bzz-raw://2f255214f3531fc707d88be0d56a7a0aed4180439316d099d760d9118aa83093","dweb:/ipfs/QmZD1w5p1ukJSXumUAjvxwGmkPhn7vsr21Y2atLGEZR2oi"],"license":"BUSL-1.1"},"src/contracts/hints/Hints.sol":{"keccak256":"0x8b565df1ae35993c097a9e642002782a8f451f6fd01809cad6bcd345bdf1b99c","urls":["bzz-raw://99a19adb01e350a92f534095b3078229df1f2f83077992d75d58d8684be45971","dweb:/ipfs/QmbmwcuswVbzvwHQFTtrJG86oV98GnfxqYTb8cV8u1acox"],"license":"BUSL-1.1"},"src/contracts/hints/OptInServiceHints.sol":{"keccak256":"0x95d9407900d27b9f4a1233b772aeed809c07b2dc5b31cfc9fa77ca26514c49e5","urls":["bzz-raw://a13a8877e312d7e6b8b85bde3668c5d84ff5ecc83f762cd573f2b7104c64eb42","dweb:/ipfs/QmYV2J55acuGzCNnS3juABuUHY5U1xc8g8o9jwEyFFdeG5"],"license":"BUSL-1.1"},"src/contracts/hints/VaultHints.sol":{"keccak256":"0xccb505b7159b769cc114d67b87c2de6b106557f667fc8f3780114baad5c3c442","urls":["bzz-raw://6d0c80a908fc16e96a8b5605a0bd53f9e89ad0ef0a738fbbae80ba4d3160749b","dweb:/ipfs/QmXo5UtWoR8YmunqcbBU8rQMm1nvmvjNPoXcVrDhh4pEwR"],"license":"BUSL-1.1"},"src/contracts/libraries/Checkpoints.sol":{"keccak256":"0xba90097c8bfe0a975499428b5f8ac5569483c7d92ccc28c12d70de416aae040c","urls":["bzz-raw://12f5d93ca94cd06d3147db68993165a58e17903ed53682560de61f3085ad4609","dweb:/ipfs/QmePiuAqvXprMLmFZkGZeGjvGPAvsEDHfCDv7BoQhXu9xE"],"license":"MIT"},"src/contracts/libraries/ERC4626Math.sol":{"keccak256":"0x8441160513c1cbeb1c3b9ee077bcc7e7ce20006b52a77c8dd39ff0ef89699939","urls":["bzz-raw://943f8cc3e26ddf649f465f40c909819f5c864717c4baa339e9e403b9374a4653","dweb:/ipfs/QmXPxi1sUDsrGprZdUgCzoPEosaZMv9ZhygWQ1vAi1phAB"],"license":"MIT"},"src/contracts/libraries/Subnetwork.sol":{"keccak256":"0xf5ef5506fd66082b3c2e7f3df37529f5a8efad32ac62e7c8914bd63219190bfe","urls":["bzz-raw://ba031a54ee0d0e9a270c2b9e18437f5668cfeb659cfd5fe0677459d7fcac2a56","dweb:/ipfs/QmReP3H7qQ78tAfgLnJKsNEQNCQfF1X1Get38Ffd4kzq32"],"license":"MIT"},"src/contracts/service/OptInService.sol":{"keccak256":"0x4e0932077f2686b7990e10d59deb2535334c0d09e52ef6e57c6ab09eca21c4b1","urls":["bzz-raw://7c00d311032ed4a1743aca7475f3c86ce15cdfc2218108efc3731c03d34a5278","dweb:/ipfs/QmUGGfVwVhaHr5kS4177yKKYiLYzi5qZpkEmvYxBZqazxf"],"license":"BUSL-1.1"},"src/contracts/vault/Vault.sol":{"keccak256":"0x2ceff6ed3298c4cad144c99fcc79b51cb9397d6ebef00285b915848b476f8c2e","urls":["bzz-raw://11f2fb3581854f3ab6e82e8d4935d9eb510c903a13c3f022346c2956a58f5307","dweb:/ipfs/QmdUnoXoyYoG9SGWyQZCFyLDRUUX3eXyXetkRvw6jxqqBz"],"license":"BUSL-1.1"},"src/contracts/vault/VaultStorage.sol":{"keccak256":"0x57db25b127d77ea3472de53e3a4af3354399655b9268638b99ca5925fa364a56","urls":["bzz-raw://aa763d9a6ec508ae3abfb8228b72b9fd9525279e5135d4962e79ff059feb1173","dweb:/ipfs/QmcbDR6E9wyEpu6V2FkEC4hnWy47zXA9LSKJde6zSGd33Q"],"license":"BUSL-1.1"},"src/interfaces/common/IEntity.sol":{"keccak256":"0x8ef4b63d6da63489778ccd5f8d13ebdd527dd4b62730b2c616df5af7474d2d21","urls":["bzz-raw://5a8d69576a9219d85c50816a18ad53a4d53cfcb27ed38b8cccc808dc2734b71b","dweb:/ipfs/QmYVN3P4Q4REvBWJ97TbAcaxm3uyB2anV6NSGa6ZtSwcEv"],"license":"MIT"},"src/interfaces/common/IMigratableEntity.sol":{"keccak256":"0x8f5f2809f3afbe8ebfbb365dd7b57b4dd3b6f9943a6187eaf648d45895b8e3c4","urls":["bzz-raw://0ffe640537d539e7a4fde70d30d3e4c57f4ba9c2c25c450cea713aae38e8fd5c","dweb:/ipfs/QmSUTGzvdcn1R1KB7tLThMRtESsfPbeXDhhhKWGtntzBds"],"license":"MIT"},"src/interfaces/common/IRegistry.sol":{"keccak256":"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb","urls":["bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014","dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK"],"license":"MIT"},"src/interfaces/common/IStaticDelegateCallable.sol":{"keccak256":"0xa335d4e81b9071b7de66ef92b43ff20671d86516eb1be46fef29a3483cd3f5d5","urls":["bzz-raw://d464b9db863c14c05547d2b23352f2e9b7b784799cf09f6bbc4906a2a74e3516","dweb:/ipfs/QmUVWzFvJz7eEbDQKiFTTzwi7TEbjcs3VmwdM4kuptAKvi"],"license":"MIT"},"src/interfaces/delegator/IBaseDelegator.sol":{"keccak256":"0x96bb312f032e17accce3f8f80936d99468029d6b37c9ca74acdb4b026a0148ee","urls":["bzz-raw://2a66dcb5b7d1a6ef6a363431ea98ebd78bc4fdd3d7a134d9b542dc66e7d025c2","dweb:/ipfs/QmRhTPLd2ZAyRHmJUFUcWKs9b3if49QY17LYZuRqWmghw8"],"license":"MIT"},"src/interfaces/delegator/IDelegatorHook.sol":{"keccak256":"0xc51aa8d7d1f6c8043ee819b7aeb86da0e993912e1442098df897e299f01f9f46","urls":["bzz-raw://adddf5cb2ba282aeb576b26efb28640f865a1721cc9b6eee8b3ee0457a2c9780","dweb:/ipfs/QmNYgAmnLRwWZbhTuQhZs9rx4zcme1df5mEepkrniorSoW"],"license":"MIT"},"src/interfaces/delegator/IFullRestakeDelegator.sol":{"keccak256":"0xa3c8cb2e45d4d8ce90e95263bea40c01dc400f05ad65bc29597d878606be5e7d","urls":["bzz-raw://782cf5e201aa4cca037ebafd3807a68ff1cc721d5b8416a35244db0d0607369e","dweb:/ipfs/QmQkJks6x7CKndeTPa9LxgTNygD5uEi7obhADhpq1Lsr9A"],"license":"MIT"},"src/interfaces/delegator/INetworkRestakeDelegator.sol":{"keccak256":"0xe7030fe30389a147fd710e3436ec346b4842695fd3e65a81b95375c9f1d633fc","urls":["bzz-raw://739c7e66d301778054f5c90bee45ec9438f68afba8a03eaaac52064c73b115ad","dweb:/ipfs/QmfZ2ytKcTykAc76nxhg8ikUXV8NdBpetqb8W4YWPcox1Z"],"license":"MIT"},"src/interfaces/delegator/IOperatorNetworkSpecificDelegator.sol":{"keccak256":"0x74b95e64d29769202d45dd277bb830f623ff3d41ce77b80ce3ee4e318a5c71ec","urls":["bzz-raw://e512b903aae5c1b8a028c6e3f4f6223b5cb5d704503cfa6bd37b5346868f5c20","dweb:/ipfs/QmZim9YExsPWtyxyeui993HTKAEmrg8MUcSkZ77Gp2JcuZ"],"license":"MIT"},"src/interfaces/delegator/IOperatorSpecificDelegator.sol":{"keccak256":"0x72075cab585dc17240cc3e32bc99b92f0d5627ddd988fed680e3e1a52d5a01e4","urls":["bzz-raw://7448bc90699409ae61d85216b5efc2143a37f0f73354be2aea993bc54afca441","dweb:/ipfs/QmXE4gAxM8pHosZK8mcTcj17puBx484meDCcmrDePskGHZ"],"license":"MIT"},"src/interfaces/service/IOptInService.sol":{"keccak256":"0x76fb5460a6d87a5705433d4fbeff7253cd75b8bbd0c888b2088f16e86ace146a","urls":["bzz-raw://990322019b3d11465f7024bae77ccbf7e2fe5d6fa3c754584778f37d04fa1337","dweb:/ipfs/QmaSNHzcqxTkUCG9a4nqVfLECHLdjdrwAnDi3yDC7tDL24"],"license":"MIT"},"src/interfaces/slasher/IBaseSlasher.sol":{"keccak256":"0x7c82528b445659c313ab77335c407b0b6efe5e79027187bb287f7bc74202b404","urls":["bzz-raw://0274c90aa5df1aa6bb470a6aab53992fb14fd7e5472c9430416505b29647d9cf","dweb:/ipfs/QmckbmJLDetPemVzCnnGcKYWAZV2BRFXGDsjiaec8jkHxx"],"license":"MIT"},"src/interfaces/vault/IVault.sol":{"keccak256":"0xffee01d383cd4e1a5530c614bf4360c1ef070c288abec9da1eb531b51bc07235","urls":["bzz-raw://04f0046cac285d8ec44ebbb1f79dc94fab4495767190cad8364fbc1fafaadfb9","dweb:/ipfs/QmUawAunwzXfCyShWfhKeThAgKtqe51hmrxvrXvM772M2R"],"license":"MIT"},"src/interfaces/vault/IVaultStorage.sol":{"keccak256":"0x592626f13754194f83047135de19229c49390bd59e34659b1bb38be71d973a22","urls":["bzz-raw://06a6a9dfddd05e580b32bebe2cff4f63ba26a653180676d58225dd30d9c89d3e","dweb:/ipfs/QmdgzBeY6Sxo8mGtyBxtv1tM1c2kU6J6zjeRd7vuXm4DU6"],"license":"MIT"}},"version":1},"id":81} \ No newline at end of file +{"abi":[{"type":"constructor","inputs":[{"name":"baseDelegatorHints","type":"address","internalType":"address"},{"name":"vaultHints","type":"address","internalType":"address"},{"name":"optInServiceHints","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"BASE_DELEGATOR_HINTS","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"DEFAULT_ADMIN_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"FACTORY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"HOOK_GAS_LIMIT","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"HOOK_RESERVE","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"HOOK_SET_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"NETWORK_REGISTRY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"OPERATOR_NETWORK_OPT_IN_SERVICE","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"OPERATOR_REGISTRY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"OPERATOR_VAULT_OPT_IN_SERVICE","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"OPT_IN_SERVICE_HINTS","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"TYPE","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"VAULT_FACTORY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"VAULT_HINTS","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"VERSION","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"pure"},{"type":"function","name":"getRoleAdmin","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"grantRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"hasRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"hook","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"initialize","inputs":[{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"maxNetworkLimit","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"value","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"maxNetworkLimitAt","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"timestamp","type":"uint48","internalType":"uint48"},{"name":"hint","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"maxNetworkLimitHint","inputs":[{"name":"delegator","type":"address","internalType":"address"},{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"timestamp","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"maxNetworkLimitHintInternal","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"timestamp","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"exists","type":"bool","internalType":"bool"},{"name":"hint","type":"uint32","internalType":"uint32"}],"stateMutability":"view"},{"type":"function","name":"network","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"onSlash","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"captureTimestamp","type":"uint48","internalType":"uint48"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"operator","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"renounceRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"callerConfirmation","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"revokeRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setHook","inputs":[{"name":"hook_","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setMaxNetworkLimit","inputs":[{"name":"identifier","type":"uint96","internalType":"uint96"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"stake","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"stakeAt","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"timestamp","type":"uint48","internalType":"uint48"},{"name":"hints","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"stakeHints","inputs":[{"name":"delegator","type":"address","internalType":"address"},{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"timestamp","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"staticDelegateCall","inputs":[{"name":"target","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"vault","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"OnSlash","inputs":[{"name":"subnetwork","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"captureTimestamp","type":"uint48","indexed":false,"internalType":"uint48"}],"anonymous":false},{"type":"event","name":"RoleAdminChanged","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"previousAdminRole","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"newAdminRole","type":"bytes32","indexed":true,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"RoleGranted","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"sender","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"RoleRevoked","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"sender","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"SetHook","inputs":[{"name":"hook","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"SetMaxNetworkLimit","inputs":[{"name":"subnetwork","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"error","name":"AccessControlBadConfirmation","inputs":[]},{"type":"error","name":"AccessControlUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"neededRole","type":"bytes32","internalType":"bytes32"}]},{"type":"error","name":"AlreadySet","inputs":[]},{"type":"error","name":"CheckpointUnorderedInsertion","inputs":[]},{"type":"error","name":"ExternalCall","inputs":[]},{"type":"error","name":"InsufficientHookGas","inputs":[]},{"type":"error","name":"InvalidInitialization","inputs":[]},{"type":"error","name":"InvalidNetwork","inputs":[]},{"type":"error","name":"NotInitialized","inputs":[]},{"type":"error","name":"NotInitializing","inputs":[]},{"type":"error","name":"NotNetwork","inputs":[]},{"type":"error","name":"NotOperator","inputs":[]},{"type":"error","name":"NotSlasher","inputs":[]},{"type":"error","name":"NotVault","inputs":[]},{"type":"error","name":"ReentrancyGuardReentrantCall","inputs":[]},{"type":"error","name":"SafeCastOverflowedUintDowncast","inputs":[{"name":"bits","type":"uint8","internalType":"uint8"},{"name":"value","type":"uint256","internalType":"uint256"}]}],"bytecode":{"object":"0x6101e0346101dc57601f612f1438819003918201601f19168301916001600160401b0391828411858510176101e05781606092869260409687528339810103126101dc5761004c836101f4565b926100648361005d602084016101f4565b92016101f4565b91306080527ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a009081549060ff82871c166101cb578080831603610187575b5050505f60a0525f60c0525f60e052610100935f8552610120935f85526101405f8152610160915f83526101809384526101a09485526101c09586525195612d0b9788610209893960805188610e71015260a0518861062b015260c05188610dee015260e0518881816103dd01528181610e2701526127ae0152518781816102d30152611fd201525186818161031701528181611841015261197001525185818161035b015281816117a801526119ee015251848181610c1b0152612827015251838181610baf0152611369015251828181610ac5015261140a01525181610cf20152f35b6001600160401b0319909116811790915583519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a15f80806100a2565b855163f92ee8a960e01b8152600490fd5b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b51906001600160a01b03821682036101dc5756fe60806040526004361015610011575f80fd5b5f3560e01c806301ffc9a714610264578063103f29071461025f578063128e5d821461025a5780631a80e5001461025557806323f752d514610250578063248a9ca31461024b57806325dc9708146102465780632dd31000146102415780632f2ff15d1461023c57806336568abe146102375780633dfd387314610232578063437224a31461022d578063439fab911461022857806345e78fcb14610223578063557cab441461021e578063570ca735146102195780636679191e146102145780636739afca1461020f57806379d896141461020a5780637f5a7c7b1461020557806383ce03221461020057806391d14854146101fb578063991d1162146101f65780639b656b22146101f15780639f86fd85146101ec578063a217fddf146101e7578063bb24fe8a146101e2578063c0cd7c3e146101dd578063d0f1f901146101d8578063d15b740e146101d3578063d547741f146101ce578063e02f6937146101c9578063e49561ee146101c4578063fbfa77cf146101bf578063fd4d447c146101ba578063ff54740f146101b55763ffa1ad74146101b0575f80fd5b611207565b6111ea565b6111c0565b611199565b610fae565b610f59565b610f0d565b610ee3565b610e56565b610e12565b610dcf565b610db5565b610d21565b610cdd565b610ca8565b610c4a565b610c06565b610bde565b610b9a565b610b72565b610b38565b610b10565b610af4565b610ab0565b610978565b6108f2565b6106f1565b6106a6565b61065a565b610616565b6105bd565b610510565b61038a565b610346565b610302565b6102be565b346102ba5760203660031901126102ba5760043563ffffffff60e01b81168091036102ba57602090637965db0b60e01b81149081156102a9575b506040519015158152f35b6301ffc9a760e01b1490505f61029e565b5f80fd5b346102ba575f3660031901126102ba576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346102ba575f3660031901126102ba576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346102ba575f3660031901126102ba576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346102ba5760403660031901126102ba576004356001600160601b03811681036102ba57602435906103ba611a63565b6040516302910f8b60e31b81523360048201526020816024816001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165afa90811561050b575f916104dc575b50156104ca576001600160601b03166bffffffffffffffffffffffff193360601b16179080610444835f52600260205260405f2090565b54146104b85761049d817fc67e7929681aa1bccd63f52b3799bf5805f3009f197db6fdf584b14f7fbf608c92610482855f52600260205260405f2090565b5561048d8185611a92565b6040519081529081906020820190565b0390a26104b660015f80516020612c9683398151915255565b005b60405163a741a04560e01b8152600490fd5b6040516323d53b9760e21b8152600490fd5b6104fe915060203d602011610504575b6104f68183610854565b81019061122f565b5f61040d565b503d6104ec565b611246565b346102ba5760203660031901126102ba576004355f525f80516020612c768339815191526020526020600160405f200154604051908152f35b6001600160a01b038116036102ba57565b6064359065ffffffffffff821682036102ba57565b6024359065ffffffffffff821682036102ba57565b6044359065ffffffffffff821682036102ba57565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b346102ba5760803660031901126102ba576106126105fe6004356105e081610549565b6044356105ec81610549565b6105f461055a565b9160243590611320565b604051918291602083526020830190610599565b0390f35b346102ba575f3660031901126102ba576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346102ba5760403660031901126102ba576104b660243560043561067d82610549565b805f525f80516020612c768339815191526020526106a1600160405f200154611bd4565b611d85565b346102ba5760403660031901126102ba576024356106c381610549565b336001600160a01b038216036106df576104b690600435611dbb565b60405163334bd91960e11b8152600490fd5b346102ba5760203660031901126102ba5760043561070e81610549565b610716611a63565b335f9081527f9ebbcbe0d2961d3fbe56ca6f679bc753bd848d3e6bb3eaf9041c51b286881d2c60205260409020547fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c9060ff16156107cc57506001546001600160a01b0391821691811682146104b8576001600160a01b03191681176001557f5bbb1d3ebb6a3ad2a0f17ff35e579a83af60604d1d3c2a4c83c62adecadf666d5f80a260015f80516020612c9683398151915255005b6044906040519063e2517d3f60e01b82523360048301526024820152fd5b634e487b7160e01b5f52604160045260245ffd5b604081019081106001600160401b0382111761081957604052565b6107ea565b606081019081106001600160401b0382111761081957604052565b608081019081106001600160401b0382111761081957604052565b90601f801991011681019081106001600160401b0382111761081957604052565b604051906108828261081e565b565b60405190610882826107fe565b6001600160401b03811161081957601f01601f191660200190565b81601f820112156102ba578035906108c382610891565b926108d16040519485610854565b828452602083830101116102ba57815f926020809301838601378301015290565b346102ba5760603660031901126102ba5761090b61056f565b6044356001600160401b0381116102ba576020916109306109439236906004016108ac565b906004355f526003845260405f20611e84565b604051908152f35b9181601f840112156102ba578235916001600160401b0383116102ba57602083818601950101116102ba57565b346102ba5760203660031901126102ba576001600160401b036004358181116102ba576109a990369060040161094b565b5f80516020612cb6833981519152549260ff8460401c1615931680159081610aa8575b6001149081610a9e575b159081610a95575b50610a83575f80516020612cb6833981519152805467ffffffffffffffff19166001179055610a119183610a5f57611f9d565b610a1757005b5f80516020612cb6833981519152805460ff60401b19169055604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a1005b5f80516020612cb6833981519152805460ff60401b1916600160401b179055611f9d565b60405163f92ee8a960e01b8152600490fd5b9050155f6109de565b303b1591506109d6565b8491506109cc565b346102ba575f3660031901126102ba576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346102ba575f3660031901126102ba576020604051614e208152f35b346102ba575f3660031901126102ba576005546040516001600160a01b039091168152602090f35b346102ba575f3660031901126102ba5760206040517fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c8152f35b346102ba575f3660031901126102ba576004546040516001600160a01b039091168152602090f35b346102ba575f3660031901126102ba576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346102ba575f3660031901126102ba576001546040516001600160a01b039091168152602090f35b346102ba575f3660031901126102ba576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346102ba5760403660031901126102ba57602060ff610c9c602435610c6e81610549565b6004355f525f80516020612c76833981519152845260405f209060018060a01b03165f5260205260405f2090565b54166040519015158152f35b346102ba5760603660031901126102ba576106126105fe600435610ccb81610549565b610cd3610584565b906024359061154e565b346102ba575f3660031901126102ba576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346102ba5760403660031901126102ba57600435610d3e81610549565b6024356001600160401b0381116102ba575f91610d608392369060040161094b565b90816040519283928337810184815203915af4610dad610d7e611647565b91610d9f604051938492151560208401526040808401526060830190610599565b03601f198101835282610854565b805190602001fd5b346102ba575f3660031901126102ba5760206040515f8152f35b346102ba575f3660031901126102ba5760206040516001600160401b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b346102ba575f3660031901126102ba576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346102ba5760403660031901126102ba57610e6f61056f565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163303610ed15763ffffffff610ebc6040926004355f526003602052835f2061215c565b91505083929192519215158352166020820152f35b604051637ca475e560e11b8152600490fd5b346102ba5760203660031901126102ba576004355f526002602052602060405f2054604051908152f35b346102ba5760403660031901126102ba576104b6602435600435610f3082610549565b805f525f80516020612c76833981519152602052610f54600160405f200154611bd4565b611dbb565b346102ba5760803660031901126102ba57602435610f7681610549565b610f7e610584565b90606435906001600160401b0382116102ba57602092610fa56109439336906004016108ac565b91600435611732565b346102ba5760a03660031901126102ba57602435600435610fce82610549565b60443591610fda61055a565b90608435906001600160401b0382116102ba57610ffc600492369084016108ac565b611004611a63565b5f546020906110299061101d906001600160a01b031681565b6001600160a01b031690565b60405163b134427160e01b815294859182905afa92831561050b575f93611168575b506001600160a01b039283163303611156576001546001600160a01b03168381166110cb575b50506040805195865265ffffffffffff909316602086015216927f741a5de99085c0d660f3e4192217b0ffb0ea4e35a0480de48e857a4bc3ee36ed91819081015b0390a36104b660015f80516020612c9683398151915255565b909360405194611102866110f4602082019363724ab0f760e11b8552858c898d602487016118bc565b03601f198101885287610854565b62042e305a10611144575f6110b2938192827f741a5de99085c0d660f3e4192217b0ffb0ea4e35a0480de48e857a4bc3ee36ed9951926203d090f15093611071565b604051638072475160e01b8152600490fd5b60405163dabc4ad960e01b8152600490fd5b61118b91935060203d602011611192575b6111838183610854565b8101906112bc565b915f61104b565b503d611179565b346102ba575f3660031901126102ba575f546040516001600160a01b039091168152602090f35b346102ba5760403660031901126102ba5760206109436024356111e281610549565b600435611939565b346102ba575f3660031901126102ba5760206040516203d0908152f35b346102ba575f3660031901126102ba57602060405160018152f35b519081151582036102ba57565b908160209103126102ba5761124390611222565b90565b6040513d5f823e3d90fd5b81601f820112156102ba5780519061126882610891565b926112766040519485610854565b828452602083830101116102ba57815f9260208093018386015e8301015290565b906020828203126102ba5781516001600160401b0381116102ba576112439201611251565b908160209103126102ba575161124381610549565b9061124391602081526112f08251606060208401526080830190610599565b9060606040611310602086015194601f1995868683030184870152610599565b9401519282850301910152610599565b604051630df8851f60e11b81526001600160a01b03828116600483015260248201849052938416604482015265ffffffffffff8516606482015260609594909391925f856084817f000000000000000000000000000000000000000000000000000000000000000087165afa94851561050b575f956114ea575b5060405163fbfa77cf60e01b81526020816004818888165afa90811561050b57611406945f92859284916114cb575b5060405163192c0ff760e21b81526001600160a01b03909116600482015265ffffffffffff90921660248301529094859190829081906044820190565b03917f0000000000000000000000000000000000000000000000000000000000000000165afa92831561050b575f936114a5575b50611445929361154e565b9082511580159061149b575b8015611491575b61146157505050565b610d9f939450906112439291611475610875565b92835260208301526040820152604051928391602083016112d1565b5081511515611458565b5080511515611451565b61144593506114c5903d805f833e6114bd8183610854565b810190611297565b9261143a565b6114e4915060203d602011611192576111838183610854565b5f6113c9565b6114ff9195503d805f833e6114bd8183610854565b935f61139a565b9061124392915f52600360205260405f20611e84565b519063ffffffff821682036102ba57565b91908260409103126102ba57611243602061154784611222565b930161151c565b92915f8060609565ffffffffffff6040519460209663d0f1f90160e01b8888015260248701521660448501526044845261158784610839565b60405193846115b487820192639f86fd8560e01b8452306024840152604060448401526064830190610599565b03946115c8601f1996878101835282610854565b51915afa506115e66115d8611647565b8380825183010191016120db565b9015611639578083806115fe9351830101910161152d565b929061160957505050565b6112439293945061162d604051948592830191909163ffffffff6020820193169052565b03908101835282610854565b809150519182156102ba5701fd5b3d15611671573d9061165882610891565b916116666040519384610854565b82523d5f602084013e565b606090565b60405190611683826107fe565b60606020838281520152565b906020828203126102ba5781516001600160401b03928382116102ba5701906040828203126102ba57604051926116c5846107fe565b82518181116102ba57826116da918501611251565b845260208301519081116102ba576116f29201611251565b602082015290565b6001600160a01b0391821681529116602082015265ffffffffffff909116604082015260806060820181905261124392910190610599565b9261174290929192828486612335565b92909361174d611676565b938051806118a0575b5050841593841561180a575b8415611779575b505050506117745790565b505f90565b6020809495506117a4910151604051958694859463530e1d4360e01b865260601c90600486016116fa565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa90811561050b575f916117eb575b50155f808080611769565b611804915060203d602011610504576104f68183610854565b5f6117e0565b5f549094506001600160a01b031660208486519261183d604051948593849363530e1d4360e01b855289600486016116fa565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa90811561050b575f91611881575b501593611762565b61189a915060203d602011610504576104f68183610854565b5f611879565b6118b492955060208091830101910161168f565b925f80611756565b919360a093611243969565ffffffffffff938552600180871b0316602085015260408401521660608201528160808201520190610599565b634e487b7160e01b5f52601160045260245ffd5b8115611912570490565b634e487b7160e01b5f52601260045260245ffd5b906001820180921161193457565b6118f4565b5f546040516308834cb560e21b8082526001600160a01b0385811660048401529283166024830152929392602092909183816044817f000000000000000000000000000000000000000000000000000000000000000086165afa90811561050b575f91611a46575b50159182156119c2575b505090506119bc5761124391612454565b50505f90565b6040519081526001600160a01b0385166004820152606086901c602482015291508290829060449082907f0000000000000000000000000000000000000000000000000000000000000000165afa91821561050b575f92611a29575b505015805f806119ab565b611a3f9250803d10610504576104f68183610854565b5f80611a1e565b611a5d9150843d8611610504576104f68183610854565b5f6119a1565b5f80516020612c968339815191526002815414611a805760029055565b604051633ee5aeb560e01b8152600490fd5b6004546001600160a01b0316606082901c03611bc2575f52600360205260405f209065ffffffffffff91824211611ba357824216926001820191825415611b95575b611add81612a83565b509590845493835480155f14611b7657505f975b6001600160d01b0398808a1615611b7057611b0c9088612133565b50505b82611b64575b505015611b4e575050610882935090611b30611b3692611e61565b90612133565b90919082549060031b91821b915f19901b1916179055565b61088295611b5d931691612b5b565b5050612543565b16821490505f80611b15565b50611b0f565b5f1990808281011161193457855f5260205f2001015460301c97611af1565b611b9e83612516565b611ad4565b6040516306dfcc6560e41b815260306004820152426024820152604490fd5b6040516386eab41b60e01b8152600490fd5b5f8181525f80516020612c768339815191526020908152604080832033845290915290205460ff16156107cc5750565b6001600160a01b0381165f9081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d60205260409020545f80516020612c768339815191529060ff166119bc575f808052602091825260408082206001600160a01b038516835290925220805460ff1916600117905533906001600160a01b03165f7f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d8180a4600190565b6001600160a01b0381165f9081527f9ebbcbe0d2961d3fbe56ca6f679bc753bd848d3e6bb3eaf9041c51b286881d2c602052604090207fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c905f80516020612c768339815191529060ff905b5416611d7e575f828152602091825260408082206001600160a01b038616835290925220805460ff1916600117905533916001600160a01b0316907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d5f80a4600190565b5050505f90565b5f8181525f80516020612c76833981519152602081815260408084206001600160a01b038716855290915290912060ff90611d1a565b5f8181525f80516020612c76833981519152602081815260408084206001600160a01b03871685529091529091205460ff1615611d7e575f828152602091825260408082206001600160a01b038616835290925220805460ff1916905533916001600160a01b0316907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b5f80a4600190565b908160209103126102ba576112439061151c565b5f1981019190821161193457565b90600163ffffffff8093160191821161193457565b91805115611f5d5780602080611e9f93518301019101611e4d565b91611eaa8382612636565b92611ebb845165ffffffffffff1690565b9065ffffffffffff8085169216828114611f515782119182611ef1575b5050611ee8576112439250612566565b50506020015190565b909150611efe8354611e61565b63ffffffff831614918215611f17575b50505f80611ed8565b611f49919250611f32611f2c611f3e92611e6f565b85612636565b5165ffffffffffff1690565b65ffffffffffff1690565b115f80611f0e565b50505050506020015190565b5061124391612566565b9190916040818403126102ba578035611f7f81610549565b9260208201356001600160401b0381116102ba5761124392016108ac565b611fa991810190611f67565b6040516302910f8b60e31b81526001600160a01b039283166004820181905291906020816024817f000000000000000000000000000000000000000000000000000000000000000088165afa90811561050b575f916120bc575b50156120aa5761203e6040916120396120849461201e61269e565b60018060a01b03166001600160601b0360a01b5f5416175f55565b612761565b6020810151600180546001600160a01b0319166001600160a01b0390921691909117905580516001600160a01b031684811661209a575b5001516001600160a01b031690565b90811661208e5750565b61209790611caf565b50565b6120a390611c04565b505f612075565b6040516362df054560e01b8152600490fd5b6120d5915060203d602011610504576104f68183610854565b5f612003565b9190916040818403126102ba576120f181611222565b9260208201516001600160401b0381116102ba576112439201611251565b9060405161211c816107fe565b915465ffffffffffff8116835260301c6020830152565b8054821015612148575f5260205f2001905f90565b634e487b7160e01b5f52603260045260245ffd5b91908254905f829160058411612204575b612178935085612a0f565b9081156121f8576121f16121e86121e26121d86121aa6121a561219a88611e61565b895f5260205f200190565b61210f565b9660016121d160206121c28b5165ffffffffffff1690565b9a01516001600160d01b031690565b9101612133565b90549060031b1c90565b93611e61565b63ffffffff1690565b6001939291565b5f925082915081908190565b919261220f816128dc565b81039081116119345761217893865f52612238611f3e8360205f200165ffffffffffff90541690565b65ffffffffffff8516101561224e57509161216d565b92915061225a90611926565b9061216d565b6040519061226d8261081e565b60606040838281528260208201520152565b906020828203126102ba5781516001600160401b03928382116102ba5701906060828203126102ba57604051926122b58461081e565b82518181116102ba57826122ca918501611251565b845260208301518181116102ba57826122e4918501611251565b602085015260408301519081116102ba576122ff9201611251565b604082015290565b908160209103126102ba575190565b60409065ffffffffffff61124394931681528160208201520190610599565b90939293612341612260565b94805180612438575b5050600454606083901c6001600160a01b0391821614801592919061241d575b5050612415575f546123b092919060209061238f9061101d906001600160a01b031681565b8187015190604051808097819463810da75d60e01b83528860048401612316565b03915afa90811561050b576123dd935f926123e2575b506123d79192604087015191611506565b90612a71565b915190565b6123d792506124089060203d60201161240e575b6124008183610854565b810190612307565b916123c6565b503d6123f6565b505090515f91565b60055481166001600160a01b03169116141590505f8061236a565b61244c92965060208091830101910161227f565b935f8061234a565b6004549091606083901c6001600160a01b0392831614801592906124fb575b5050611774575f54600491906020906124969061101d906001600160a01b031681565b60405163bd49c35f60e01b815293849182905afa90811561050b57611243925f926124d6575b506124cf905f52600260205260405f2090565b5490612a71565b6124cf9192506124f49060203d60201161240e576124008183610854565b91906124bc565b60055481166001600160a01b03169116141590505f80612473565b8054600160401b8110156108195761253391600182018155612133565b8154905f199060031b1b19169055565b90815491600160401b8310156108195782611b3691600161088295018155612133565b908154905f8291600584116125d0575b612581935084612a0f565b806125a957505f905b6001600160d01b038216156119bc576112439160016121d89201612133565b6125c36125b86125ca92611e61565b835f5260205f200190565b5460301c90565b9061258a565b91926125db816128dc565b81039081116119345761258193855f5265ffffffffffff808360205f20015416908516105f1461260c575091612576565b92915061261890611926565b90612576565b6040519061262b826107fe565b5f6020838281520152565b9061265f6126596126809261264961261e565b5061265261261e565b5084612133565b5061210f565b91600165ffffffffffff845116936020828060d01b03910151169101612133565b90549060405192612690846107fe565b835260031b1c602082015290565b6126a6612ad2565b6126ae612ad2565b60015f80516020612c9683398151915255565b604051906126ce8261081e565b5f6040838281528260208201520152565b8091039060a082126102ba576060604051926126fa8461081e565b126102ba5760809060405161270e8161081e565b815161271981610549565b8152602082015161272981610549565b6020820152604082015161273c81610549565b60408201528352606081015161275181610549565b602084015201516122ff81610549565b6127696126c1565b5061277f815191602080809483010191016126df565b80820180516040516302910f8b60e31b8082526001600160a01b039283166004830152939491939082816024817f000000000000000000000000000000000000000000000000000000000000000089165afa90811561050b575f916128bf575b50156104ca57816128239160408701956127ff875160018060a01b031690565b6040519283526001600160a01b031660048301529092839190829081906024820190565b03917f0000000000000000000000000000000000000000000000000000000000000000165afa91821561050b575f926128a2575b5050156128905751600480546001600160a01b039283166001600160a01b03199182161790915591516005805490931691161790555190565b604051631f0853c160e21b8152600490fd5b6128b89250803d10610504576104f68183610854565b5f80612857565b6128d69150833d8511610504576104f68183610854565b5f6127df565b801561177457806123d76129a761299d61299361298961297f61297561296b60016112439a5f908b60801c80612a03575b508060401c806129f6575b508060201c806129e9575b508060101c806129dc575b508060081c806129cf575b508060041c806129c2575b508060021c806129b5575b50821c6129ae575b811c1b612964818b611908565b0160011c90565b612964818a611908565b6129648189611908565b6129648188611908565b6129648187611908565b6129648186611908565b6129648185611908565b8092611908565b8101612957565b600291509101905f61294f565b600491509101905f612944565b600891509101905f612939565b601091509101905f61292e565b602091509101905f612923565b604091509101905f612918565b9150506080905f61290d565b91905b838210612a1f5750505090565b909192808316906001818518811c830180931161193457855f5265ffffffffffff808460205f20015416908516105f14612a5e575050925b9190612a12565b9094935081018091116119345791612a57565b9080821015612a7e575090565b905090565b805480612a945750505f905f905f90565b5f1990808281011161193457612ab1925f5260205f20010161210f565b9065ffffffffffff82511691602060018060d01b0391015116906001929190565b60ff5f80516020612cb68339815191525460401c1615612aee57565b604051631afcd79f60e31b8152600490fd5b8054600160401b81101561081957612b1d91600182018155612133565b612b4857815160209092015160301b65ffffffffffff191665ffffffffffff92909216919091179055565b634e487b7160e01b5f525f60045260245ffd5b805492939291908215612c4c57612b776121a56125b885611e61565b90612b88825165ffffffffffff1690565b65ffffffffffff84811691168110612c3a57612bfe946020948892612bb6611f3e875165ffffffffffff1690565b03612c025750612bf092612bcc612bd792611e61565b905f5260205f200190565b9065ffffffffffff82549181199060301b169116179055565b01516001600160d01b031690565b9190565b915050612c3591612c22612c14610884565b65ffffffffffff9093168352565b6001600160d01b03881682860152612b00565b612bf0565b604051632520601d60e01b8152600490fd5b612c709250612c5c612c14610884565b6001600160d01b0385166020830152612b00565b5f919056fe02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268009b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a2646970667358221220b429c7bca684dfb2f61f82de0ac89efce21c9bbd39e89867846fcc10df363dbb64736f6c63430008190033","sourceMap":"13653:2443:86:-:0;;;;;;;;;;;;;-1:-1:-1;;13653:2443:86;;;;-1:-1:-1;;;;;13653:2443:86;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;:::i;:::-;348:4:87;;332:21;;8837:64:26;13653:2443:86;;;;;;;;;7896:76:26;;13653:2443:86;;;;7985:34:26;7981:146;;-1:-1:-1;525:17:74;;;-1:-1:-1;525:17:74;;-1:-1:-1;552:12:74;;-1:-1:-1;2360:34:81;;2404:28;;-1:-1:-1;2404:28:81;;2442:57;;-1:-1:-1;2442:57:81;;2509:61;-1:-1:-1;2509:61:81;;1796:36:84;;-1:-1:-1;1796:36:84;;14178:41:86;;;;14229:24;;;;14263:40;;;;13653:2443;;;;;;;;332:21:87;13653:2443:86;;;;;525:17:74;13653:2443:86;;;;;552:12:74;13653:2443:86;;;;;2360:34:81;13653:2443:86;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7981:146:26;-1:-1:-1;;;;;;13653:2443:86;;;;;;;;;;;;;8087:29:26;;13653:2443:86;;8087:29:26;7981:146;;;;;7896:76;13653:2443:86;;-1:-1:-1;;;7938:23:26;;;;;13653:2443:86;-1:-1:-1;13653:2443:86;;;;;;-1:-1:-1;13653:2443:86;;;;;-1:-1:-1;13653:2443:86;;;;-1:-1:-1;;;;;13653:2443:86;;;;;;:::o","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361015610011575f80fd5b5f3560e01c806301ffc9a714610264578063103f29071461025f578063128e5d821461025a5780631a80e5001461025557806323f752d514610250578063248a9ca31461024b57806325dc9708146102465780632dd31000146102415780632f2ff15d1461023c57806336568abe146102375780633dfd387314610232578063437224a31461022d578063439fab911461022857806345e78fcb14610223578063557cab441461021e578063570ca735146102195780636679191e146102145780636739afca1461020f57806379d896141461020a5780637f5a7c7b1461020557806383ce03221461020057806391d14854146101fb578063991d1162146101f65780639b656b22146101f15780639f86fd85146101ec578063a217fddf146101e7578063bb24fe8a146101e2578063c0cd7c3e146101dd578063d0f1f901146101d8578063d15b740e146101d3578063d547741f146101ce578063e02f6937146101c9578063e49561ee146101c4578063fbfa77cf146101bf578063fd4d447c146101ba578063ff54740f146101b55763ffa1ad74146101b0575f80fd5b611207565b6111ea565b6111c0565b611199565b610fae565b610f59565b610f0d565b610ee3565b610e56565b610e12565b610dcf565b610db5565b610d21565b610cdd565b610ca8565b610c4a565b610c06565b610bde565b610b9a565b610b72565b610b38565b610b10565b610af4565b610ab0565b610978565b6108f2565b6106f1565b6106a6565b61065a565b610616565b6105bd565b610510565b61038a565b610346565b610302565b6102be565b346102ba5760203660031901126102ba5760043563ffffffff60e01b81168091036102ba57602090637965db0b60e01b81149081156102a9575b506040519015158152f35b6301ffc9a760e01b1490505f61029e565b5f80fd5b346102ba575f3660031901126102ba576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346102ba575f3660031901126102ba576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346102ba575f3660031901126102ba576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346102ba5760403660031901126102ba576004356001600160601b03811681036102ba57602435906103ba611a63565b6040516302910f8b60e31b81523360048201526020816024816001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165afa90811561050b575f916104dc575b50156104ca576001600160601b03166bffffffffffffffffffffffff193360601b16179080610444835f52600260205260405f2090565b54146104b85761049d817fc67e7929681aa1bccd63f52b3799bf5805f3009f197db6fdf584b14f7fbf608c92610482855f52600260205260405f2090565b5561048d8185611a92565b6040519081529081906020820190565b0390a26104b660015f80516020612c9683398151915255565b005b60405163a741a04560e01b8152600490fd5b6040516323d53b9760e21b8152600490fd5b6104fe915060203d602011610504575b6104f68183610854565b81019061122f565b5f61040d565b503d6104ec565b611246565b346102ba5760203660031901126102ba576004355f525f80516020612c768339815191526020526020600160405f200154604051908152f35b6001600160a01b038116036102ba57565b6064359065ffffffffffff821682036102ba57565b6024359065ffffffffffff821682036102ba57565b6044359065ffffffffffff821682036102ba57565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b346102ba5760803660031901126102ba576106126105fe6004356105e081610549565b6044356105ec81610549565b6105f461055a565b9160243590611320565b604051918291602083526020830190610599565b0390f35b346102ba575f3660031901126102ba576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346102ba5760403660031901126102ba576104b660243560043561067d82610549565b805f525f80516020612c768339815191526020526106a1600160405f200154611bd4565b611d85565b346102ba5760403660031901126102ba576024356106c381610549565b336001600160a01b038216036106df576104b690600435611dbb565b60405163334bd91960e11b8152600490fd5b346102ba5760203660031901126102ba5760043561070e81610549565b610716611a63565b335f9081527f9ebbcbe0d2961d3fbe56ca6f679bc753bd848d3e6bb3eaf9041c51b286881d2c60205260409020547fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c9060ff16156107cc57506001546001600160a01b0391821691811682146104b8576001600160a01b03191681176001557f5bbb1d3ebb6a3ad2a0f17ff35e579a83af60604d1d3c2a4c83c62adecadf666d5f80a260015f80516020612c9683398151915255005b6044906040519063e2517d3f60e01b82523360048301526024820152fd5b634e487b7160e01b5f52604160045260245ffd5b604081019081106001600160401b0382111761081957604052565b6107ea565b606081019081106001600160401b0382111761081957604052565b608081019081106001600160401b0382111761081957604052565b90601f801991011681019081106001600160401b0382111761081957604052565b604051906108828261081e565b565b60405190610882826107fe565b6001600160401b03811161081957601f01601f191660200190565b81601f820112156102ba578035906108c382610891565b926108d16040519485610854565b828452602083830101116102ba57815f926020809301838601378301015290565b346102ba5760603660031901126102ba5761090b61056f565b6044356001600160401b0381116102ba576020916109306109439236906004016108ac565b906004355f526003845260405f20611e84565b604051908152f35b9181601f840112156102ba578235916001600160401b0383116102ba57602083818601950101116102ba57565b346102ba5760203660031901126102ba576001600160401b036004358181116102ba576109a990369060040161094b565b5f80516020612cb6833981519152549260ff8460401c1615931680159081610aa8575b6001149081610a9e575b159081610a95575b50610a83575f80516020612cb6833981519152805467ffffffffffffffff19166001179055610a119183610a5f57611f9d565b610a1757005b5f80516020612cb6833981519152805460ff60401b19169055604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a1005b5f80516020612cb6833981519152805460ff60401b1916600160401b179055611f9d565b60405163f92ee8a960e01b8152600490fd5b9050155f6109de565b303b1591506109d6565b8491506109cc565b346102ba575f3660031901126102ba576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346102ba575f3660031901126102ba576020604051614e208152f35b346102ba575f3660031901126102ba576005546040516001600160a01b039091168152602090f35b346102ba575f3660031901126102ba5760206040517fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c8152f35b346102ba575f3660031901126102ba576004546040516001600160a01b039091168152602090f35b346102ba575f3660031901126102ba576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346102ba575f3660031901126102ba576001546040516001600160a01b039091168152602090f35b346102ba575f3660031901126102ba576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346102ba5760403660031901126102ba57602060ff610c9c602435610c6e81610549565b6004355f525f80516020612c76833981519152845260405f209060018060a01b03165f5260205260405f2090565b54166040519015158152f35b346102ba5760603660031901126102ba576106126105fe600435610ccb81610549565b610cd3610584565b906024359061154e565b346102ba575f3660031901126102ba576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346102ba5760403660031901126102ba57600435610d3e81610549565b6024356001600160401b0381116102ba575f91610d608392369060040161094b565b90816040519283928337810184815203915af4610dad610d7e611647565b91610d9f604051938492151560208401526040808401526060830190610599565b03601f198101835282610854565b805190602001fd5b346102ba575f3660031901126102ba5760206040515f8152f35b346102ba575f3660031901126102ba5760206040516001600160401b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b346102ba575f3660031901126102ba576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346102ba5760403660031901126102ba57610e6f61056f565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163303610ed15763ffffffff610ebc6040926004355f526003602052835f2061215c565b91505083929192519215158352166020820152f35b604051637ca475e560e11b8152600490fd5b346102ba5760203660031901126102ba576004355f526002602052602060405f2054604051908152f35b346102ba5760403660031901126102ba576104b6602435600435610f3082610549565b805f525f80516020612c76833981519152602052610f54600160405f200154611bd4565b611dbb565b346102ba5760803660031901126102ba57602435610f7681610549565b610f7e610584565b90606435906001600160401b0382116102ba57602092610fa56109439336906004016108ac565b91600435611732565b346102ba5760a03660031901126102ba57602435600435610fce82610549565b60443591610fda61055a565b90608435906001600160401b0382116102ba57610ffc600492369084016108ac565b611004611a63565b5f546020906110299061101d906001600160a01b031681565b6001600160a01b031690565b60405163b134427160e01b815294859182905afa92831561050b575f93611168575b506001600160a01b039283163303611156576001546001600160a01b03168381166110cb575b50506040805195865265ffffffffffff909316602086015216927f741a5de99085c0d660f3e4192217b0ffb0ea4e35a0480de48e857a4bc3ee36ed91819081015b0390a36104b660015f80516020612c9683398151915255565b909360405194611102866110f4602082019363724ab0f760e11b8552858c898d602487016118bc565b03601f198101885287610854565b62042e305a10611144575f6110b2938192827f741a5de99085c0d660f3e4192217b0ffb0ea4e35a0480de48e857a4bc3ee36ed9951926203d090f15093611071565b604051638072475160e01b8152600490fd5b60405163dabc4ad960e01b8152600490fd5b61118b91935060203d602011611192575b6111838183610854565b8101906112bc565b915f61104b565b503d611179565b346102ba575f3660031901126102ba575f546040516001600160a01b039091168152602090f35b346102ba5760403660031901126102ba5760206109436024356111e281610549565b600435611939565b346102ba575f3660031901126102ba5760206040516203d0908152f35b346102ba575f3660031901126102ba57602060405160018152f35b519081151582036102ba57565b908160209103126102ba5761124390611222565b90565b6040513d5f823e3d90fd5b81601f820112156102ba5780519061126882610891565b926112766040519485610854565b828452602083830101116102ba57815f9260208093018386015e8301015290565b906020828203126102ba5781516001600160401b0381116102ba576112439201611251565b908160209103126102ba575161124381610549565b9061124391602081526112f08251606060208401526080830190610599565b9060606040611310602086015194601f1995868683030184870152610599565b9401519282850301910152610599565b604051630df8851f60e11b81526001600160a01b03828116600483015260248201849052938416604482015265ffffffffffff8516606482015260609594909391925f856084817f000000000000000000000000000000000000000000000000000000000000000087165afa94851561050b575f956114ea575b5060405163fbfa77cf60e01b81526020816004818888165afa90811561050b57611406945f92859284916114cb575b5060405163192c0ff760e21b81526001600160a01b03909116600482015265ffffffffffff90921660248301529094859190829081906044820190565b03917f0000000000000000000000000000000000000000000000000000000000000000165afa92831561050b575f936114a5575b50611445929361154e565b9082511580159061149b575b8015611491575b61146157505050565b610d9f939450906112439291611475610875565b92835260208301526040820152604051928391602083016112d1565b5081511515611458565b5080511515611451565b61144593506114c5903d805f833e6114bd8183610854565b810190611297565b9261143a565b6114e4915060203d602011611192576111838183610854565b5f6113c9565b6114ff9195503d805f833e6114bd8183610854565b935f61139a565b9061124392915f52600360205260405f20611e84565b519063ffffffff821682036102ba57565b91908260409103126102ba57611243602061154784611222565b930161151c565b92915f8060609565ffffffffffff6040519460209663d0f1f90160e01b8888015260248701521660448501526044845261158784610839565b60405193846115b487820192639f86fd8560e01b8452306024840152604060448401526064830190610599565b03946115c8601f1996878101835282610854565b51915afa506115e66115d8611647565b8380825183010191016120db565b9015611639578083806115fe9351830101910161152d565b929061160957505050565b6112439293945061162d604051948592830191909163ffffffff6020820193169052565b03908101835282610854565b809150519182156102ba5701fd5b3d15611671573d9061165882610891565b916116666040519384610854565b82523d5f602084013e565b606090565b60405190611683826107fe565b60606020838281520152565b906020828203126102ba5781516001600160401b03928382116102ba5701906040828203126102ba57604051926116c5846107fe565b82518181116102ba57826116da918501611251565b845260208301519081116102ba576116f29201611251565b602082015290565b6001600160a01b0391821681529116602082015265ffffffffffff909116604082015260806060820181905261124392910190610599565b9261174290929192828486612335565b92909361174d611676565b938051806118a0575b5050841593841561180a575b8415611779575b505050506117745790565b505f90565b6020809495506117a4910151604051958694859463530e1d4360e01b865260601c90600486016116fa565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa90811561050b575f916117eb575b50155f808080611769565b611804915060203d602011610504576104f68183610854565b5f6117e0565b5f549094506001600160a01b031660208486519261183d604051948593849363530e1d4360e01b855289600486016116fa565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa90811561050b575f91611881575b501593611762565b61189a915060203d602011610504576104f68183610854565b5f611879565b6118b492955060208091830101910161168f565b925f80611756565b919360a093611243969565ffffffffffff938552600180871b0316602085015260408401521660608201528160808201520190610599565b634e487b7160e01b5f52601160045260245ffd5b8115611912570490565b634e487b7160e01b5f52601260045260245ffd5b906001820180921161193457565b6118f4565b5f546040516308834cb560e21b8082526001600160a01b0385811660048401529283166024830152929392602092909183816044817f000000000000000000000000000000000000000000000000000000000000000086165afa90811561050b575f91611a46575b50159182156119c2575b505090506119bc5761124391612454565b50505f90565b6040519081526001600160a01b0385166004820152606086901c602482015291508290829060449082907f0000000000000000000000000000000000000000000000000000000000000000165afa91821561050b575f92611a29575b505015805f806119ab565b611a3f9250803d10610504576104f68183610854565b5f80611a1e565b611a5d9150843d8611610504576104f68183610854565b5f6119a1565b5f80516020612c968339815191526002815414611a805760029055565b604051633ee5aeb560e01b8152600490fd5b6004546001600160a01b0316606082901c03611bc2575f52600360205260405f209065ffffffffffff91824211611ba357824216926001820191825415611b95575b611add81612a83565b509590845493835480155f14611b7657505f975b6001600160d01b0398808a1615611b7057611b0c9088612133565b50505b82611b64575b505015611b4e575050610882935090611b30611b3692611e61565b90612133565b90919082549060031b91821b915f19901b1916179055565b61088295611b5d931691612b5b565b5050612543565b16821490505f80611b15565b50611b0f565b5f1990808281011161193457855f5260205f2001015460301c97611af1565b611b9e83612516565b611ad4565b6040516306dfcc6560e41b815260306004820152426024820152604490fd5b6040516386eab41b60e01b8152600490fd5b5f8181525f80516020612c768339815191526020908152604080832033845290915290205460ff16156107cc5750565b6001600160a01b0381165f9081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d60205260409020545f80516020612c768339815191529060ff166119bc575f808052602091825260408082206001600160a01b038516835290925220805460ff1916600117905533906001600160a01b03165f7f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d8180a4600190565b6001600160a01b0381165f9081527f9ebbcbe0d2961d3fbe56ca6f679bc753bd848d3e6bb3eaf9041c51b286881d2c602052604090207fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c905f80516020612c768339815191529060ff905b5416611d7e575f828152602091825260408082206001600160a01b038616835290925220805460ff1916600117905533916001600160a01b0316907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d5f80a4600190565b5050505f90565b5f8181525f80516020612c76833981519152602081815260408084206001600160a01b038716855290915290912060ff90611d1a565b5f8181525f80516020612c76833981519152602081815260408084206001600160a01b03871685529091529091205460ff1615611d7e575f828152602091825260408082206001600160a01b038616835290925220805460ff1916905533916001600160a01b0316907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b5f80a4600190565b908160209103126102ba576112439061151c565b5f1981019190821161193457565b90600163ffffffff8093160191821161193457565b91805115611f5d5780602080611e9f93518301019101611e4d565b91611eaa8382612636565b92611ebb845165ffffffffffff1690565b9065ffffffffffff8085169216828114611f515782119182611ef1575b5050611ee8576112439250612566565b50506020015190565b909150611efe8354611e61565b63ffffffff831614918215611f17575b50505f80611ed8565b611f49919250611f32611f2c611f3e92611e6f565b85612636565b5165ffffffffffff1690565b65ffffffffffff1690565b115f80611f0e565b50505050506020015190565b5061124391612566565b9190916040818403126102ba578035611f7f81610549565b9260208201356001600160401b0381116102ba5761124392016108ac565b611fa991810190611f67565b6040516302910f8b60e31b81526001600160a01b039283166004820181905291906020816024817f000000000000000000000000000000000000000000000000000000000000000088165afa90811561050b575f916120bc575b50156120aa5761203e6040916120396120849461201e61269e565b60018060a01b03166001600160601b0360a01b5f5416175f55565b612761565b6020810151600180546001600160a01b0319166001600160a01b0390921691909117905580516001600160a01b031684811661209a575b5001516001600160a01b031690565b90811661208e5750565b61209790611caf565b50565b6120a390611c04565b505f612075565b6040516362df054560e01b8152600490fd5b6120d5915060203d602011610504576104f68183610854565b5f612003565b9190916040818403126102ba576120f181611222565b9260208201516001600160401b0381116102ba576112439201611251565b9060405161211c816107fe565b915465ffffffffffff8116835260301c6020830152565b8054821015612148575f5260205f2001905f90565b634e487b7160e01b5f52603260045260245ffd5b91908254905f829160058411612204575b612178935085612a0f565b9081156121f8576121f16121e86121e26121d86121aa6121a561219a88611e61565b895f5260205f200190565b61210f565b9660016121d160206121c28b5165ffffffffffff1690565b9a01516001600160d01b031690565b9101612133565b90549060031b1c90565b93611e61565b63ffffffff1690565b6001939291565b5f925082915081908190565b919261220f816128dc565b81039081116119345761217893865f52612238611f3e8360205f200165ffffffffffff90541690565b65ffffffffffff8516101561224e57509161216d565b92915061225a90611926565b9061216d565b6040519061226d8261081e565b60606040838281528260208201520152565b906020828203126102ba5781516001600160401b03928382116102ba5701906060828203126102ba57604051926122b58461081e565b82518181116102ba57826122ca918501611251565b845260208301518181116102ba57826122e4918501611251565b602085015260408301519081116102ba576122ff9201611251565b604082015290565b908160209103126102ba575190565b60409065ffffffffffff61124394931681528160208201520190610599565b90939293612341612260565b94805180612438575b5050600454606083901c6001600160a01b0391821614801592919061241d575b5050612415575f546123b092919060209061238f9061101d906001600160a01b031681565b8187015190604051808097819463810da75d60e01b83528860048401612316565b03915afa90811561050b576123dd935f926123e2575b506123d79192604087015191611506565b90612a71565b915190565b6123d792506124089060203d60201161240e575b6124008183610854565b810190612307565b916123c6565b503d6123f6565b505090515f91565b60055481166001600160a01b03169116141590505f8061236a565b61244c92965060208091830101910161227f565b935f8061234a565b6004549091606083901c6001600160a01b0392831614801592906124fb575b5050611774575f54600491906020906124969061101d906001600160a01b031681565b60405163bd49c35f60e01b815293849182905afa90811561050b57611243925f926124d6575b506124cf905f52600260205260405f2090565b5490612a71565b6124cf9192506124f49060203d60201161240e576124008183610854565b91906124bc565b60055481166001600160a01b03169116141590505f80612473565b8054600160401b8110156108195761253391600182018155612133565b8154905f199060031b1b19169055565b90815491600160401b8310156108195782611b3691600161088295018155612133565b908154905f8291600584116125d0575b612581935084612a0f565b806125a957505f905b6001600160d01b038216156119bc576112439160016121d89201612133565b6125c36125b86125ca92611e61565b835f5260205f200190565b5460301c90565b9061258a565b91926125db816128dc565b81039081116119345761258193855f5265ffffffffffff808360205f20015416908516105f1461260c575091612576565b92915061261890611926565b90612576565b6040519061262b826107fe565b5f6020838281520152565b9061265f6126596126809261264961261e565b5061265261261e565b5084612133565b5061210f565b91600165ffffffffffff845116936020828060d01b03910151169101612133565b90549060405192612690846107fe565b835260031b1c602082015290565b6126a6612ad2565b6126ae612ad2565b60015f80516020612c9683398151915255565b604051906126ce8261081e565b5f6040838281528260208201520152565b8091039060a082126102ba576060604051926126fa8461081e565b126102ba5760809060405161270e8161081e565b815161271981610549565b8152602082015161272981610549565b6020820152604082015161273c81610549565b60408201528352606081015161275181610549565b602084015201516122ff81610549565b6127696126c1565b5061277f815191602080809483010191016126df565b80820180516040516302910f8b60e31b8082526001600160a01b039283166004830152939491939082816024817f000000000000000000000000000000000000000000000000000000000000000089165afa90811561050b575f916128bf575b50156104ca57816128239160408701956127ff875160018060a01b031690565b6040519283526001600160a01b031660048301529092839190829081906024820190565b03917f0000000000000000000000000000000000000000000000000000000000000000165afa91821561050b575f926128a2575b5050156128905751600480546001600160a01b039283166001600160a01b03199182161790915591516005805490931691161790555190565b604051631f0853c160e21b8152600490fd5b6128b89250803d10610504576104f68183610854565b5f80612857565b6128d69150833d8511610504576104f68183610854565b5f6127df565b801561177457806123d76129a761299d61299361298961297f61297561296b60016112439a5f908b60801c80612a03575b508060401c806129f6575b508060201c806129e9575b508060101c806129dc575b508060081c806129cf575b508060041c806129c2575b508060021c806129b5575b50821c6129ae575b811c1b612964818b611908565b0160011c90565b612964818a611908565b6129648189611908565b6129648188611908565b6129648187611908565b6129648186611908565b6129648185611908565b8092611908565b8101612957565b600291509101905f61294f565b600491509101905f612944565b600891509101905f612939565b601091509101905f61292e565b602091509101905f612923565b604091509101905f612918565b9150506080905f61290d565b91905b838210612a1f5750505090565b909192808316906001818518811c830180931161193457855f5265ffffffffffff808460205f20015416908516105f14612a5e575050925b9190612a12565b9094935081018091116119345791612a57565b9080821015612a7e575090565b905090565b805480612a945750505f905f905f90565b5f1990808281011161193457612ab1925f5260205f20010161210f565b9065ffffffffffff82511691602060018060d01b0391015116906001929190565b60ff5f80516020612cb68339815191525460401c1615612aee57565b604051631afcd79f60e31b8152600490fd5b8054600160401b81101561081957612b1d91600182018155612133565b612b4857815160209092015160301b65ffffffffffff191665ffffffffffff92909216919091179055565b634e487b7160e01b5f525f60045260245ffd5b805492939291908215612c4c57612b776121a56125b885611e61565b90612b88825165ffffffffffff1690565b65ffffffffffff84811691168110612c3a57612bfe946020948892612bb6611f3e875165ffffffffffff1690565b03612c025750612bf092612bcc612bd792611e61565b905f5260205f200190565b9065ffffffffffff82549181199060301b169116179055565b01516001600160d01b031690565b9190565b915050612c3591612c22612c14610884565b65ffffffffffff9093168352565b6001600160d01b03881682860152612b00565b612bf0565b604051632520601d60e01b8152600490fd5b612c709250612c5c612c14610884565b6001600160d01b0385166020830152612b00565b5f919056fe02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268009b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a2646970667358221220b429c7bca684dfb2f61f82de0ac89efce21c9bbd39e89867846fcc10df363dbb64736f6c63430008190033","sourceMap":"13653:2443:86:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;;;;;-1:-1:-1;;13653:2443:86;;;;;;;;;;;;;;;;;;-1:-1:-1;;;3551:47:24;;;:87;;;;13653:2443:86;;;;;;;;;;3551:87:24;-1:-1:-1;;;1133:40:30;;-1:-1:-1;3551:87:24;;;13653:2443:86;-1:-1:-1;13653:2443:86;;;;;;;;-1:-1:-1;;13653:2443:86;;;;;;1537:38:81;-1:-1:-1;;;;;13653:2443:86;;;;;;;;;;;;-1:-1:-1;;13653:2443:86;;;;;;1632:54:81;-1:-1:-1;;;;;13653:2443:86;;;;;;;;;;;;-1:-1:-1;;13653:2443:86;;;;;;1743:56:81;-1:-1:-1;;;;;13653:2443:86;;;;;;;;;;;;-1:-1:-1;;13653:2443:86;;;;;;-1:-1:-1;;;;;13653:2443:86;;;;;;;;3217:103:29;;;:::i;:::-;13653:2443:86;;-1:-1:-1;;;4285:48:81;;4322:10;13653:2443:86;4285:48:81;;13653:2443:86;;;;;-1:-1:-1;;;;;4295:16:81;13653:2443:86;4285:48:81;;;;;;;-1:-1:-1;4285:48:81;;;13653:2443:86;4284:49:81;;4280:99;;-1:-1:-1;;;;;13653:2443:86;-1:-1:-1;;4322:10:81;297:2:93;13653:2443:86;;267:46:93;4459:27:81;;;;13653:2443:86;;4459:15:81;13653:2443:86;;;;;;;4459:27:81;13653:2443:86;4459:37:81;4455:87;;4654:38;4552:27;4654:38;4552:27;;;13653:2443:86;;4459:15:81;13653:2443:86;;;;;;;4552:27:81;13653:2443:86;4631:6:81;;;;:::i;:::-;13653:2443:86;;;;;;;;;;;;;4654:38:81;;;;3282:1:29;1805;-1:-1:-1;;;;;;;;;;;13653:2443:86;3716:283:29;3282:1;13653:2443:86;4455:87:81;13653:2443:86;;-1:-1:-1;;;4519:12:81;;13653:2443:86;;4519:12:81;4280:99;13653:2443:86;;-1:-1:-1;;;4356:12:81;;13653:2443:86;;4356:12:81;4285:48;;;;13653:2443:86;4285:48:81;13653:2443:86;4285:48:81;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;:::i;13653:2443:86:-;;;;;;-1:-1:-1;;13653:2443:86;;;;;;-1:-1:-1;13653:2443:86;-1:-1:-1;;;;;;;;;;;13653:2443:86;;;4919:24:24;13653:2443:86;-1:-1:-1;13653:2443:86;4919:24:24;13653:2443:86;;;;;;;;-1:-1:-1;;;;;13653:2443:86;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;13653:2443:86;;;;;;;;-1:-1:-1;;13653:2443:86;;;;:::o;:::-;;;;;;-1:-1:-1;;13653:2443:86;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;13653:2443:86;;;;;;322:32:74;-1:-1:-1;;;;;13653:2443:86;;;;;;;;;;;;-1:-1:-1;;13653:2443:86;;;;5350:25:24;13653:2443:86;;;;;;;:::i;:::-;;-1:-1:-1;13653:2443:86;-1:-1:-1;;;;;;;;;;;13653:2443:86;;3202:4:24;4919:24;13653:2443:86;-1:-1:-1;13653:2443:86;4919:24:24;13653:2443:86;3202:4:24;:::i;:::-;5350:25;:::i;13653:2443:86:-;;;;;;-1:-1:-1;;13653:2443:86;;;;;;;;;:::i;:::-;966:10:28;-1:-1:-1;;;;;13653:2443:86;;6441:34:24;6437:102;;6549:37;13653:2443:86;;;6549:37:24;:::i;6437:102::-;13653:2443:86;;-1:-1:-1;;;6498:30:24;;13653:2443:86;;6498:30:24;13653:2443:86;;;;;;-1:-1:-1;;13653:2443:86;;;;;;;;;:::i;:::-;3217:103:29;;:::i;:::-;966:10:28;-1:-1:-1;13653:2443:86;;;;;;;;;;1356:26:81;;13653:2443:86;;4468:23:24;4464:108;;-1:-1:-1;4861:4:81;13653:2443:86;-1:-1:-1;;;;;13653:2443:86;;;;;;4861:13:81;;4857:63;;-1:-1:-1;;;;;;13653:2443:86;;;4861:4:81;13653:2443:86;4958:14:81;-1:-1:-1;;4958:14:81;4861:4;-1:-1:-1;;;;;;;;;;;13653:2443:86;;4464:108:24;13653:2443:86;;;;4514:47:24;;;;;;966:10:28;13653:2443:86;4514:47:24;;13653:2443:86;;;;;4514:47:24;13653:2443:86;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;13653:2443:86;;;;;;;:::o;:::-;;:::i;:::-;;;;;;;-1:-1:-1;;;;;13653:2443:86;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;13653:2443:86;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;13653:2443:86;;;;;;;:::o;:::-;;;;;;;:::i;:::-;:::o;:::-;;;;;;;:::i;:::-;-1:-1:-1;;;;;13653:2443:86;;;;;;-1:-1:-1;;13653:2443:86;;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;13653:2443:86;;;;;;;;;;;;;;:::o;:::-;;;;;;-1:-1:-1;;13653:2443:86;;;;;;:::i;:::-;;;-1:-1:-1;;;;;13653:2443:86;;;;;;;2045:63:84;13653:2443:86;;;;;;:::i;:::-;;;;-1:-1:-1;13653:2443:86;2045:16:84;13653:2443:86;;;-1:-1:-1;13653:2443:86;2045:63:84;:::i;:::-;13653:2443:86;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;13653:2443:86;;;;;;;;;;;;;;;:::o;:::-;;;;;;-1:-1:-1;;13653:2443:86;;;;-1:-1:-1;;;;;13653:2443:86;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;13653:2443:86;;;;;;;4301:16:26;13653:2443:86;;4726:16:26;;:34;;;;13653:2443:86;4805:1:26;4790:16;:50;;;;13653:2443:86;4855:13:26;:30;;;;13653:2443:86;4851:91:26;;;-1:-1:-1;;;;;;;;;;;13653:2443:86;;-1:-1:-1;;13653:2443:86;;;;;718:4:74;;4951:18:26;4979:67;;718:4:74;:::i;:::-;5066:101:26;;13653:2443:86;5066:101:26;-1:-1:-1;;;;;;;;;;;13653:2443:86;;-1:-1:-1;;;;13653:2443:86;;;;;-1:-1:-1;13653:2443:86;;5142:14:26;;13653:2443:86;;5142:14:26;13653:2443:86;4979:67:26;-1:-1:-1;;;;;;;;;;;13653:2443:86;;-1:-1:-1;;;;13653:2443:86;-1:-1:-1;;;13653:2443:86;;;718:4:74;:::i;4851:91:26:-;13653:2443:86;;-1:-1:-1;;;4908:23:26;;13653:2443:86;;4908:23:26;4855:30;4872:13;;;4855:30;;;4790:50;4818:4;4810:25;:30;;-1:-1:-1;4790:50:26;;4726:34;;;-1:-1:-1;4726:34:26;;13653:2443:86;;;;;;-1:-1:-1;;13653:2443:86;;;;;;13849:36;-1:-1:-1;;;;;13653:2443:86;;;;;;;;;;;;-1:-1:-1;;13653:2443:86;;;;;;;1253:6:81;13653:2443:86;;;;;;;;;-1:-1:-1;;13653:2443:86;;;;1267:23:84;13653:2443:86;;;-1:-1:-1;;;;;13653:2443:86;;;;;;;;;;;;;;-1:-1:-1;;13653:2443:86;;;;;;;1356:26:81;13653:2443:86;;;;;;;;;-1:-1:-1;;13653:2443:86;;;;;;;;-1:-1:-1;;;;;13653:2443:86;;;;;;;;;;;;;;-1:-1:-1;;13653:2443:86;;;;;;13798:45;-1:-1:-1;;;;;13653:2443:86;;;;;;;;;;;;-1:-1:-1;;13653:2443:86;;;;;;;;-1:-1:-1;;;;;13653:2443:86;;;;;;;;;;;;;;-1:-1:-1;;13653:2443:86;;;;;;961:42:84;-1:-1:-1;;;;;13653:2443:86;;;;;;;;;;;;-1:-1:-1;;13653:2443:86;;;;;;3901:31:24;13653:2443:86;;;;;:::i;:::-;;;-1:-1:-1;13653:2443:86;-1:-1:-1;;;;;;;;;;;13653:2443:86;;;-1:-1:-1;13653:2443:86;;;;;;;;;;;;;;;;;3901:31:24;13653:2443:86;;;;;;;;;;;;;;;;-1:-1:-1;;13653:2443:86;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;:::i;:::-;;;;;;-1:-1:-1;;13653:2443:86;;;;;;13891:45;-1:-1:-1;;;;;13653:2443:86;;;;;;;;;;;;-1:-1:-1;;13653:2443:86;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;13653:2443:86;;;;-1:-1:-1;13653:2443:86;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;416:25:80;;;;477:31;416:25;;:::i;:::-;13653:2443:86;;;;;;;;;;477:31:80;;13653:2443:86;;;;;;;;;;;:::i;:::-;477:31:80;13653:2443:86;;477:31:80;;;;;;:::i;:::-;518:79;;;13653:2443:86;518:79:80;;13653:2443:86;;;;;;-1:-1:-1;;13653:2443:86;;;;;;;;;;;;;;;;;-1:-1:-1;;13653:2443:86;;;;;;;-1:-1:-1;;;;;404:28:74;13653:2443:86;;;;;;;;;;-1:-1:-1;;13653:2443:86;;;;;;1439:41:81;-1:-1:-1;;;;;13653:2443:86;;;;;;;;;;;;-1:-1:-1;;13653:2443:86;;;;;;:::i;:::-;449:5:87;-1:-1:-1;;;;;13653:2443:86;435:10:87;:19;431:71;;13653:2443:86;14508:67;13653:2443;;;;-1:-1:-1;13653:2443:86;14508:16;13653:2443;;;-1:-1:-1;13653:2443:86;14508:67;:::i;:::-;13653:2443;;;;;;;;;;;;;;;;;;;431:71:87;13653:2443:86;;-1:-1:-1;;;477:14:87;;13653:2443:86;;477:14:87;13653:2443:86;;;;;;-1:-1:-1;;13653:2443:86;;;;;;-1:-1:-1;13653:2443:86;2009:67:81;13653:2443:86;;;;-1:-1:-1;13653:2443:86;;;;;;;;;;;;;;-1:-1:-1;;13653:2443:86;;;;5767:26:24;13653:2443:86;;;;;;;:::i;:::-;;-1:-1:-1;13653:2443:86;-1:-1:-1;;;;;;;;;;;13653:2443:86;;3202:4:24;4919:24;13653:2443:86;-1:-1:-1;13653:2443:86;4919:24:24;13653:2443:86;3202:4:24;:::i;:::-;5767:26;:::i;13653:2443:86:-;;;;;;-1:-1:-1;;13653:2443:86;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;-1:-1:-1;;;;;13653:2443:86;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;-1:-1:-1;;13653:2443:86;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;-1:-1:-1;;;;;13653:2443:86;;;;;;;;;;;;:::i;:::-;3217:103:29;;:::i;:::-;-1:-1:-1;13653:2443:86;;;5246:21:81;;:13;;-1:-1:-1;;;;;13653:2443:86;5246:13:81;13653:2443:86;;-1:-1:-1;;;;;13653:2443:86;;;5246:21:81;13653:2443:86;;-1:-1:-1;;;5246:23:81;;13653:2443:86;;;;;5246:23:81;;;;;;;-1:-1:-1;5246:23:81;;;13653:2443:86;-1:-1:-1;;;;;;13653:2443:86;;;5232:10:81;:37;5228:87;;5341:4;13653:2443:86;-1:-1:-1;;;;;13653:2443:86;;;;5355:469:81;;13653:2443:86;-1:-1:-1;;13653:2443:86;;;;;;;;;;;;;;;;5839:55:81;;13653:2443:86;;;;5839:55:81;;;;3282:1:29;1805;-1:-1:-1;;;;;;;;;;;13653:2443:86;3716:283:29;5355:469:81;13653:2443:86;;;;5435:94:81;;;;13653:2443:86;5435:94:81;;;;;;;;;;;;13653:2443:86;5435:94:81;;;:::i;:::-;;13653:2443:86;;5435:94:81;;;;;;:::i;:::-;13653:2443:86;5548:9:81;:51;5544:118;;-1:-1:-1;5839:55:81;5676:138;;;;5839:55;5676:138;;;1150:7;5676:138;;5355:469;;;5544:118;13653:2443:86;;-1:-1:-1;;;5626:21:81;;13653:2443:86;;5626:21:81;5228:87;13653:2443:86;;-1:-1:-1;;;5292:12:81;;13653:2443:86;;5292:12:81;5246:23;;;;;13653:2443:86;5246:23:81;13653:2443:86;5246:23:81;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;13653:2443:86;;;;;;-1:-1:-1;;13653:2443:86;;;;;;;;-1:-1:-1;;;;;13653:2443:86;;;;;;;;;;;;;;-1:-1:-1;;13653:2443:86;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;-1:-1:-1;;13653:2443:86;;;;;;;1150:7:81;13653:2443:86;;;;;;;;;-1:-1:-1;;13653:2443:86;;;;;;;2700:1:81;13653:2443:86;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;13653:2443:86;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;;;;13653:2443:86;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;15166:928::-;13653:2443;;-1:-1:-1;;;15383:99:86;;-1:-1:-1;;;;;13653:2443:86;;;15383:99;;;13653:2443;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;13653:2443:86;;;15402:20;13653:2443;;15383:99;;;;;;;;;;;15166:928;-1:-1:-1;13653:2443:86;;-1:-1:-1;;;15576:32:86;;;13653:2443;15383:99;13653:2443;;;;15576:32;;;;;;;15536:84;15576:32;15383:99;15576:32;;;;;;;15166:928;-1:-1:-1;13653:2443:86;;-1:-1:-1;;;15536:84:86;;-1:-1:-1;;;;;13653:2443:86;;;15383:99;15536:84;;13653:2443;;;;;;;;;;;;;-1:-1:-1;13653:2443:86;;;;;;;;;15536:84;;15547:11;;13653:2443;15536:84;;;;;;;15383:99;15536:84;;;15166:928;15667:53;;;;;:::i;:::-;13653:2443;;;15735:21;;;:52;;;15166:928;15735:88;;;;15166:928;15731:357;;15166:928;;;:::o;15731:357::-;15846:231;13653:2443;;;;15846:231;13653:2443;;;;:::i;:::-;;;;15576:32;15874:189;;13653:2443;;15874:189;;13653:2443;;;15846:231;;;15576:32;15846:231;;;:::i;15735:88::-;13653:2443;;;15791:32;;15735:88;;:52;13653:2443;;;15760:27;;15735:52;;15536:84;15667:53;15536:84;;;;;;15383:99;15536:84;;;;;;:::i;:::-;;;;;:::i;:::-;;;;15576:32;;;;;;;;;;;;;;:::i;:::-;;;;15383:99;;;;;;;;;;;;;;:::i;:::-;;;;;1914:201:84;;2045:63;1914:201;;-1:-1:-1;13653:2443:86;2045:16:84;13653:2443:86;;;-1:-1:-1;13653:2443:86;2045:63:84;:::i;13653:2443:86:-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;:::i;14588:572::-;;;-1:-1:-1;14725:12:86;13653:2443;;;;;14871:159;;14915:74;;;;14871:159;;;;;;;13653:2443;;;;;;;14871:159;;;;;:::i;:::-;13653:2443;;716:88:87;;13653:2443:86;716:88:87;;;;;;;;;783:4;14871:159:86;716:88:87;;13653:2443:86;;;;;;;;;;;:::i;:::-;716:88:87;13653:2443:86;716:88:87;13653:2443:86;;716:88:87;;;;;;;;:::i;:::-;698:107;;;;;857:45;698:107;;:::i;:::-;13653:2443:86;;;;857:45:87;;;;;;:::i;:::-;916:8;;912:175;;13653:2443:86;;;14779:303;13653:2443;;14779:303;;;;;;:::i;:::-;15093:61;;;;14588:572;;;:::o;15093:61::-;15126:17;13653:2443;;;;15126:17;13653:2443;;15126:17;;;;;13653:2443;;;;;;;;;;;;15126:17;;;;;;;;;:::i;912:175:87:-;13653:2443:86;;;;944:22:87;;;940:36;;990:87;;13653:2443:86;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;-1:-1:-1;13653:2443:86;;;;:::o;:::-;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;;;;13653:2443:86;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::o;:::-;-1:-1:-1;;;;;13653:2443:86;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;2764:920:81:-;;2978:48;2764:920;;;;2978:48;;;;:::i;:::-;3036:36;;;13653:2443:86;;:::i;:::-;;;;3086:20:81;3082:107;;2764:920;3216:11;;;;:193;;;;;2764:920;3216:394;;;;2764:920;3199:455;;;;;;2764:920;:::o;3199:455::-;3635:8;-1:-1:-1;3635:8:81;:::o;3216:394::-;3553:39;;;;;3430:180;3553:39;;;13653:2443:86;;;;;;;;;;3430:180:81;;467:2:93;13653:2443:86;3430:180:81;;;;;:::i;:::-;;13653:2443:86;3444:31:81;-1:-1:-1;;;;;13653:2443:86;3430:180:81;;;;;;;-1:-1:-1;3430:180:81;;;3216:394;3429:181;;3216:394;;;;;;3430:180;;;;3553:39;3430:180;3553:39;3430:180;;;;;;;:::i;:::-;;;;3216:193;-1:-1:-1;13653:2443:86;;;-1:-1:-1;;;;;;13653:2443:86;3248:161:81;3354:37;;;13653:2443:86;3248:161:81;13653:2443:86;;;;;;;;;;3248:161:81;;;;;;;:::i;:::-;;13653:2443:86;3262:29:81;-1:-1:-1;;;;;13653:2443:86;3248:161:81;;;;;;;-1:-1:-1;3248:161:81;;;3216:193;3247:162;;3216:193;;;3248:161;;;;;;;;;;;;;;:::i;:::-;;;;3082:107;3139:39;;;;;;;;;;;;;:::i;:::-;3082:107;;;;;13653:2443:86;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;8889:1:91;13653:2443:86;;;;;;;:::o;:::-;;:::i;3740:389:81:-;3918:5;13653:2443:86;;;-1:-1:-1;;;3853:71:81;;;-1:-1:-1;;;;;13653:2443:86;;;3853:71:81;;;13653:2443:86;;;;;;;;3740:389:81;;13653:2443:86;3853:71:81;;13653:2443:86;;3853:71:81;13653:2443:86;;;3867:29:81;13653:2443:86;;3853:71:81;;;;;;;3918:5;3853:71;;;3740:389;3852:72;;13653:2443:86;;;3852:181:81;;3740:389;3835:242;;;;;;4094:28;;;:::i;3835:242::-;4058:8;;3918:5;4058:8;:::o;3852:181::-;13653:2443:86;;3945:88:81;;;-1:-1:-1;;;;;13653:2443:86;;3853:71:81;3945:88;;13653:2443:86;467:2:93;13653:2443:86;;;;;;;;-1:-1:-1;13653:2443:86;;;;;;;;3959:31:81;13653:2443:86;3945:88:81;;;;;;;3918:5;3945:88;;;3852:181;3944:89;;;3852:181;;;;;3945:88;;;;;;-1:-1:-1;3945:88:81;;;;;;:::i;:::-;;;;;3853:71;;;;;;;;;;;;;;:::i;:::-;;;;3326:384:29;-1:-1:-1;;;;;;;;;;;1847:1:29;13653:2443:86;;3526:20:29;3522:88;;1847:1;13653:2443:86;;3326:384:29:o;3522:88::-;13653:2443:86;;-1:-1:-1;;;3569:30:29;;;;;3164:253:84;3261:7;13653:2443:86;-1:-1:-1;;;;;13653:2443:86;467:2:93;13653:2443:86;;;3261:31:84;3257:85;;-1:-1:-1;13653:2443:86;3351:16:84;13653:2443:86;;;-1:-1:-1;13653:2443:86;;;837:15:63;;;14369:24:59;14365:103;;837:15:63;;13653:2443:86;6360:12:91;;;;13653:2443:86;;;6360:24:91;6356:75;;3164:253:84;6474:30:91;;;:::i;:::-;13653:2443:86;;;;;;;;10303:8:61;;:63;:8;;;:63;-1:-1:-1;10303:63:61;;-1:-1:-1;;;;;13653:2443:86;;;;10726:7:91;13653:2443:86;;10736:17:91;;;;:::i;:::-;10726:31;;;6604:24;;;10726:31;-1:-1:-1;;6600:188:91;;;6657:7;;6644:29;6657:7;;;;6644:21;6657:7;;:::i;:::-;6644:21;;:::i;:::-;:29;13653:2443:86;;;;;;;;;;;;;;;;;;;;;6600:188:91;6753:24;13653:2443:86;8167:38:61;13653:2443:86;;8167:38:61;;:::i;:::-;6753:24:91;;;:::i;6604:::-;13653:2443:86;6614:14:91;;;-1:-1:-1;6604:24:91;;;;10726:31;;;;10303:63:61;13653:2443:86;;;;;;;;;;13267:109:91;-1:-1:-1;13267:109:91;13653:2443:86;-1:-1:-1;13267:109:91;;;13653:2443:86;;;10303:63:61;;;6356:75:91;6400:20;;;:::i;:::-;6356:75;;14365:103:59;13653:2443:86;;-1:-1:-1;;;14416:41:59;;14447:2;3261:7:84;14416:41:59;;13653:2443:86;837:15:63;13653:2443:86;;;;;;14416:41:59;3257:85:84;13653:2443:86;;-1:-1:-1;;;3315:16:84;;3261:7;;3315:16;4148:103:24;-1:-1:-1;13653:2443:86;;;-1:-1:-1;;;;;;;;;;;13653:2443:86;;;;;;;;966:10:28;13653:2443:86;;;;;;;;;;4468:23:24;4464:108;;4148:103;:::o;7270:387::-;-1:-1:-1;;;;;13653:2443:86;;-1:-1:-1;13653:2443:86;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2887:71:24;13653:2443:86;;;;-1:-1:-1;13653:2443:86;;;;;;;;;;;-1:-1:-1;;;;;13653:2443:86;;;;;;;;;;-1:-1:-1;;13653:2443:86;7509:4:24;13653:2443:86;;;966:10:28;;-1:-1:-1;;;;;13653:2443:86;-1:-1:-1;7532:40:24;-1:-1:-1;;7532:40:24;7509:4;7586:11;:::o;7270:387::-;-1:-1:-1;;;;;13653:2443:86;;-1:-1:-1;13653:2443:86;;;;;;;;;1356:26:81;;-1:-1:-1;;;;;;;;;;;2887:71:24;13653:2443:86;;3901:31:24;13653:2443:86;;;;-1:-1:-1;13653:2443:86;;;;;;;;;;;-1:-1:-1;;;;;13653:2443:86;;;;;;;;;;-1:-1:-1;;13653:2443:86;7509:4:24;13653:2443:86;;;966:10:28;;-1:-1:-1;;;;;13653:2443:86;;7532:40:24;-1:-1:-1;;7532:40:24;7509:4;7586:11;:::o;7432:219::-;7628:12;;;-1:-1:-1;7628:12:24;:::o;7270:387::-;-1:-1:-1;13653:2443:86;;;-1:-1:-1;;;;;;;;;;;13653:2443:86;;;;;;;;-1:-1:-1;;;;;13653:2443:86;;;;;;;;;;;;3901:31:24;13653:2443:86;7892:388:24;-1:-1:-1;13653:2443:86;;;-1:-1:-1;;;;;;;;;;;13653:2443:86;;;;;;;;-1:-1:-1;;;;;13653:2443:86;;;;;;;;;;;;;;;;-1:-1:-1;13653:2443:86;;;;;;;;;;;-1:-1:-1;;;;;13653:2443:86;;;;;;;;;;-1:-1:-1;;13653:2443:86;;;966:10:28;;-1:-1:-1;;;;;13653:2443:86;;8155:40:24;-1:-1:-1;;8155:40:24;13653:2443:86;8209:11:24;:::o;13653:2443:86:-;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;13653:2443:86;;;;;;;;:::o;:::-;;;;;;;;;;;;;:::o;7558:604:91:-;;13653:2443:86;;7686:17:91;7682:83;;13653:2443:86;7789:27:91;13653:2443:86;7789:27:91;13653:2443:86;;7789:27:91;;;;;;:::i;:::-;7860:14;;;;;:::i;:::-;13653:2443:86;;;;;;;;;;;;;;;;7888:22:91;;;7884:77;;7975:21;-1:-1:-1;7975:84:91;;;;7558:604;7971:139;;;;8127:28;;;;:::i;7971:139::-;8082:17;;7789:27;8082:17;13653:2443:86;8075:24:91;:::o;7975:84::-;13653:2443:86;;;8009:16:91;13653:2443:86;;8009:16:91;:::i;:::-;13653:2443:86;;;8001:24:91;:57;;;;;7975:84;;;;;;;8001:57;8029:29;8038:8;;;8029:18;8038:8;8029:23;8038:8;;:::i;:::-;8029:18;;:::i;:::-;13653:2443:86;;;;;8029:23:91;13653:2443:86;;;;8029:29:91;;8001:57;;;;7884:77;7933:17;;;;;7789:27;7933:17;13653:2443:86;7926:24:91;:::o;7682:83::-;7726:28;;;;:::i;13653:2443:86:-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;13653:2443:86;;;;;;;;:::i;5907:716:81:-;6030:34;5907:716;6030:34;;;;:::i;:::-;13653:2443:86;;-1:-1:-1;;;6080:41:81;;-1:-1:-1;;;;;13653:2443:86;;;6080:41:81;;;13653:2443:86;;;;;6080:41:81;13653:2443:86;;;6090:13:81;13653:2443:86;;6080:41:81;;;;;;;-1:-1:-1;6080:41:81;;;5907:716;6079:42;;6075:90;;6266:27;13653:2443:86;2540:111:29;6210:14:81;13653:2443:86;2540:111:29;;;:::i;:::-;13653:2443:86;;;;;;-1:-1:-1;;;;;13653:2443:86;;-1:-1:-1;13653:2443:86;;;-1:-1:-1;13653:2443:86;;6210:14:81;6266:27;:::i;:::-;6080:41;6311:15;;13653:2443:86;;;;-1:-1:-1;;;;;;13653:2443:86;-1:-1:-1;;;;;13653:2443:86;;;;;;;;;;;-1:-1:-1;;;;;13653:2443:86;;;;6337:143:81;;5907:716;-1:-1:-1;6493:28:81;13653:2443:86;-1:-1:-1;;;;;13653:2443:86;;;;;;;6489:128:81;;5907:716;:::o;6489:128::-;6551:55;;;:::i;:::-;;5907:716::o;6337:143::-;6404:65;;;:::i;:::-;;6337:143;;;6075:90;13653:2443:86;;-1:-1:-1;;;6144:10:81;;6080:41;;6144:10;6080:41;;;;;;;;;;;;;;:::i;:::-;;;;13653:2443:86;;;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;13653:2443:86;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::o;:::-;;;;;;;;-1:-1:-1;13653:2443:86;;-1:-1:-1;13653:2443:86;;;-1:-1:-1;13653:2443:86;:::o;:::-;;;;;;;;;;;;8406:869:91;;;13653:2443:86;;8620:15:91;8578:11;8645:18;8678:7;8684:1;8678:7;;8674:241;;8406:869;8939:60;;;;;:::i;:::-;9014:8;;;9010:62;;9252:15;9259:7;13653:2443:86;9219:31:91;13653:2443:86;9130:48:91;9170:7;;;:::i;:::-;9130:48;13267:109;;;;;;13089:293;;9130:48;13653:2443:86;:::i;:::-;;9176:1:91;13653:2443:86;9232:17:91;13653:2443:86;;;;;;;;9232:17:91;;13653:2443:86;-1:-1:-1;;;;;13653:2443:86;;;;9219:12:91;;:31;:::i;:::-;13653:2443:86;;;;;;;;;9259:7:91;;:::i;:::-;13653:2443:86;;;;9252:15:91;9176:1;;9188:80;;8406:869::o;9010:62::-;8578:11;;-1:-1:-1;8578:11:91;;-1:-1:-1;8578:11:91;;;;9038:23::o;8674:241::-;8721:14;;;;;:::i;:::-;13653:2443:86;;;;;;;8939:60:91;13267:109;;8578:11;13267:109;8753:55;8759:49;13267:109;;8578:11;13267:109;;13653:2443:86;;;;;;8753:55:91;13653:2443:86;;;8753:55:91;13267:109;;;8828:10;8749:156;8674:241;;8749:156;8883:7;;;;;;:::i;:::-;8749:156;8674:241;;13653:2443:86;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;;;;13653:2443:86;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;:::i;2121:740:84:-;;;;;13653:2443:86;;:::i;:::-;;;;2362:16:84;2358:92;;2121:740;-1:-1:-1;;2464:7:84;13653:2443:86;467:2:93;13653:2443:86;;;-1:-1:-1;;;;;13653:2443:86;;;2464:31:84;;;;;13653:2443:86;2464:56:84;;2121:740;2460:120;;;;-1:-1:-1;13653:2443:86;2637:67:84;;13653:2443:86;;2676:27:84;;2637;;:13;;-1:-1:-1;;;;;13653:2443:86;2637:13:84;13653:2443:86;2637:27:84;2676;;;;13653:2443:86;;;;;;;;;;;2637:67:84;;;2464:7;2637:67;;;:::i;:::-;;;;;;;;;;2611:198;2637:67;-1:-1:-1;2637:67:84;;;2121:740;2763:31;2722:73;2763:31;;13653:2443:86;2763:31:84;;;2722:73;;:::i;:::-;2611:198;;:::i;:::-;2823:21;;2121:740;:::o;2637:67::-;2722:73;2637:67;;;;2676:27;2637:67;2676:27;2637:67;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;2460:120;-1:-1:-1;;2547:21:84;;-1:-1:-1;;2536:33:84:o;2464:56::-;2499:8;13653:2443:86;;;-1:-1:-1;;;;;13653:2443:86;;;2499:21:84;;;-1:-1:-1;2464:56:84;;;;2358:92;2408:31;;;;;;;;;;;;;:::i;:::-;2358:92;;;;;2867:291;2977:7;13653:2443:86;2867:291:84;;13653:2443:86;;;;-1:-1:-1;;;;;13653:2443:86;;;2977:31:84;;;;13653:2443:86;2977:56:84;;2867:291;2973:95;;;;-1:-1:-1;13653:2443:86;2977:7:84;;13653:2443:86;3094:27:84;;:25;;:13;;-1:-1:-1;;;;;13653:2443:86;3094:13:84;13653:2443:86;3094:25:84;13653:2443:86;;-1:-1:-1;;;3094:27:84;;13653:2443:86;;;;;3094:27:84;;;;;;;3085:66;3094:27;-1:-1:-1;3094:27:84;;;2867:291;3123:27;;;13653:2443:86;;4459:15:81;13653:2443:86;;;;;;;3123:27:84;13653:2443:86;3085:66:84;;:::i;3094:27::-;3123;3094;;;;;;;;;;;;;;;:::i;:::-;;;;;2977:56;3012:8;13653:2443:86;;;-1:-1:-1;;;;;13653:2443:86;;;3012:21:84;;;-1:-1:-1;2977:56:84;;;;13653:2443:86;;;-1:-1:-1;;;13653:2443:86;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::o;:::-;;;;;-1:-1:-1;;;13653:2443:86;;;;;;;;;;;;;;;:::i;6999:207:91:-;;13653:2443:86;;9594:15:61;-1:-1:-1;9619:18:61;9652:7;9658:1;9652:7;;9648:234;;6999:207:91;9906:53:61;;;;;:::i;:::-;9977:8;;;:63;-1:-1:-1;9977:63:61;;-1:-1:-1;;;;;13653:2443:86;;7168:7:91;13653:2443:86;;;7178:12:91;;:17;:12;;:17;:::i;9977:63:61:-;9992:41;10025:7;9992:48;10025:7;;:::i;:::-;9992:41;13267:109:91;;;;;;13089:293;;9992:41:61;13653:2443:86;;;;;9992:48:61;9977:63;;;9648:234;9695:14;;;;;:::i;:::-;13653:2443:86;;;;;;;9906:53:61;13267:109:91;;-1:-1:-1;13267:109:91;13653:2443:86;13267:109:91;;;-1:-1:-1;13267:109:91;;13653:2443:86;;;;;9727:48:61;9723:149;13653:2443:86;;;9795:10:61;9723:149;9648:234;;9723:149;9850:7;;;;;;:::i;:::-;9723:149;9648:234;;13653:2443:86;;;;;;;:::i;:::-;-1:-1:-1;13653:2443:86;;;;;;;:::o;11486:272:91:-;;13653:2443:86;11308:22:61;11718:31:91;11486:272;13653:2443:86;;:::i;:::-;;;;:::i;:::-;;11308:22:61;;:::i;:::-;13653:2443:86;;:::i;:::-;;11718:12:91;13653:2443:86;;;;;11731:17:91;13653:2443:86;;;;;11731:17:91;;13653:2443:86;;11718:12:91;;:31;:::i;:::-;13653:2443:86;;;;;;;;;:::i;:::-;;;;;;11731:17:91;11672:79;;13653:2443:86;11486:272:91;:::o;6893:76:26:-;;;:::i;:::-;;;:::i;:::-;1805:1:29;-1:-1:-1;;;;;;;;;;;13653:2443:86;6893:76:26:o;13653:2443:86:-;;;;;;;:::i;:::-;-1:-1:-1;13653:2443:86;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;3423:520:84:-;13653:2443:86;;:::i;:::-;;3571:30:84;13653:2443:86;;3571:30:84;;;;;;;;;;;:::i;:::-;3654:14;;;13653:2443:86;;;;-1:-1:-1;;;3617:52:84;;;-1:-1:-1;;;;;13653:2443:86;;;3617:52:84;;;13653:2443:86;3654:14:84;;13653:2443:86;;;3654:14:84;13653:2443:86;;;3627:16:84;13653:2443:86;;3617:52:84;;;;;;;-1:-1:-1;3617:52:84;;;3423:520;3616:53;;3612:103;;3768:15;3730:54;3768:15;13653:2443:86;3768:15:84;;13653:2443:86;;;;;;;;;;;;;;;3730:54:84;;;-1:-1:-1;;;;;13653:2443:86;3617:52:84;3730:54;;13653:2443:86;;;;;-1:-1:-1;13653:2443:86;;;;;;;;;3730:54:84;;3740:17;;13653:2443:86;3730:54:84;;;;;;;-1:-1:-1;3730:54:84;;;3423:520;3729:55;;;3725:106;;13653:2443:86;3617:52:84;13653:2443:86;;-1:-1:-1;;;;;13653:2443:86;;;-1:-1:-1;;;;;;13653:2443:86;;;;;;;;;3875:26:84;13653:2443:86;;;;;;;;;;3919:17:84;3423:520;:::o;3725:106::-;13653:2443:86;;-1:-1:-1;;;3807:13:84;;3617:52;;3807:13;3730:54;;;;;;-1:-1:-1;3730:54:84;;;;;;:::i;:::-;;;;;3617:52;;;;;;;;;;;;;;:::i;:::-;;;;8587:1642:58;8658:6;;8654:45;;9401:7;10201:10;10142:26;10093;10044;9995;9946;9897;9848;13653:2443:86;10189:23:58;9401:7;8663:1;13653:2443:86;;;;10826:16:58;10822:99;;8587:1642;13653:2443:86;;;;10938:15:58;10934:96;;8587:1642;13653:2443:86;;;;11047:15:58;11043:96;;8587:1642;13653:2443:86;;;;11156:15:58;11152:96;;8587:1642;13653:2443:86;;;;11265:14:58;11261:93;;8587:1642;13653:2443:86;;;;11371:14:58;11367:93;;8587:1642;13653:2443:86;;;;11477:14:58;11473:93;;8587:1642;13653:2443:86;;;11579:64:58;;8587:1642;13653:2443:86;;;9858:10:58;;;;:::i;:::-;13653:2443:86;;;;;9848:26:58;9907:10;;;;:::i;9897:26::-;9956:10;;;;:::i;9946:26::-;10005:10;;;;:::i;9995:26::-;10054:10;;;;:::i;10044:26::-;10103:10;;;;:::i;10093:26::-;10152:10;;;;:::i;10142:26::-;10201:10;;;:::i;11579:64::-;13653:2443:86;;11579:64:58;;11473:93;13653:2443:86;11511:11:58;;13653:2443:86;;11473:93:58;;;;11367;13653:2443:86;11405:11:58;;13653:2443:86;;11367:93:58;;;;11261;13653:2443:86;11299:11:58;;13653:2443:86;;11261:93:58;;;;11152:96;13653:2443:86;11191:12:58;;13653:2443:86;;11152:96:58;;;;11043;13653:2443:86;11082:12:58;;13653:2443:86;;11043:96:58;;;;10934;13653:2443:86;10973:12:58;;13653:2443:86;;10934:96:58;;;;10822:99;10862:13;;;13653:2443:86;10822:99:58;;;;12497:447:91;;;12694:10;;;;;;12926:11;;;12497:447;:::o;12687:230::-;2900:5:58;;;;;;13653:2443:86;;2910:5:58;;;13653:2443:86;;;;;;;;;13267:109:91;-1:-1:-1;13267:109:91;13653:2443:86;13267:109:91;;;-1:-1:-1;13267:109:91;;13653:2443:86;;;;;-1:-1:-1;12771:136:91;13653:2443:86;;;12830:10:91;;12771:136;;12687:230;;;;12771:136;13653:2443:86;;;;;;;;;;;12771:136:91;;;2557:104:58;;2641:5;;;;;;:13;2557:104;:::o;2641:13::-;;;2557:104;:::o;10552:388:61:-;13653:2443:86;;10728:8:61;;;10752:20;;10690:17;10752:20;10690:17;10752:20;10690:17;10752:20;:::o;10724:210::-;13653:2443:86;;;;;;;;;;;13267:109:91;10690:17:61;13267:109:91;;10690:17:61;13267:109:91;;;13653:2443:86;:::i;:::-;;;;;;;13267:109:91;13653:2443:86;;;;;10911:11:61;;13653:2443:86;;10886:37:61;10870:1;10886:37;;;:::o;7084:141:26:-;13653:2443:86;-1:-1:-1;;;;;;;;;;;13653:2443:86;;;;7150:18:26;7146:73;;7084:141::o;7146:73::-;13653:2443:86;;-1:-1:-1;;;7191:17:26;;;;;13653:2443:86;;;-1:-1:-1;;;13653:2443:86;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;13653:2443:86;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;11513:870:61;13653:2443:86;;11513:870:61;;;13653:2443:86;11513:870:61;11672:7;;;;13653:2443:86;11775:28:61;11795:7;;;:::i;13653:2443:86:-;;;;;;;;;;;;;;;;11877:15:61;-1:-1:-1;11873:91:61;;13653:2443:86;;12233:11:61;13653:2443:86;;;12027:16:61;13653:2443:86;;;;;;;12027:16:61;;;;12083:7;12063:43;12083:7;;12063:28;12083:7;;:::i;:::-;12063:28;13267:109:91;;;;;;13089:293;;12063:28:61;13653:2443:86;;;;;;;;;;;;;;;;;12063:43:61;12233:11;13653:2443:86;-1:-1:-1;;;;;13653:2443:86;;;;12225:27:61;;:::o;12023:189::-;13653:2443:86;;;12145:52:61;13653:2443:86;12155:41:61;13653:2443:86;;:::i;:::-;;;;;;;;12155:41:61;-1:-1:-1;;;;;13653:2443:86;;12155:41:61;;;13653:2443:86;12145:52:61;:::i;:::-;12023:189;;11873:91;13653:2443:86;;-1:-1:-1;;;11919:30:61;;;;;11668:709;12283:52;13653:2443:86;;12293:41:61;13653:2443:86;;:::i;12293:41:61:-;-1:-1:-1;;;;;13653:2443:86;;12293:41:61;;;13653:2443:86;12145:52:61;:::i;12283:::-;11678:1;12349:17;;:::o","linkReferences":{},"immutableReferences":{"64520":[{"start":1579,"length":32}],"64523":[{"start":3566,"length":32}],"65474":[{"start":989,"length":32},{"start":3623,"length":32},{"start":10158,"length":32}],"65477":[{"start":723,"length":32},{"start":8146,"length":32}],"65480":[{"start":791,"length":32},{"start":6209,"length":32},{"start":6512,"length":32}],"65483":[{"start":859,"length":32},{"start":6056,"length":32},{"start":6638,"length":32}],"67099":[{"start":3099,"length":32},{"start":10279,"length":32}],"68873":[{"start":2991,"length":32},{"start":4969,"length":32}],"68875":[{"start":2757,"length":32},{"start":5130,"length":32}],"68877":[{"start":3314,"length":32}],"69080":[{"start":3697,"length":32}]}},"methodIdentifiers":{"BASE_DELEGATOR_HINTS()":"79d89614","DEFAULT_ADMIN_ROLE()":"a217fddf","FACTORY()":"2dd31000","HOOK_GAS_LIMIT()":"ff54740f","HOOK_RESERVE()":"557cab44","HOOK_SET_ROLE()":"6679191e","NETWORK_REGISTRY()":"c0cd7c3e","OPERATOR_NETWORK_OPT_IN_SERVICE()":"1a80e500","OPERATOR_REGISTRY()":"83ce0322","OPERATOR_VAULT_OPT_IN_SERVICE()":"128e5d82","OPT_IN_SERVICE_HINTS()":"9b656b22","TYPE()":"bb24fe8a","VAULT_FACTORY()":"103f2907","VAULT_HINTS()":"45e78fcb","VERSION()":"ffa1ad74","getRoleAdmin(bytes32)":"248a9ca3","grantRole(bytes32,address)":"2f2ff15d","hasRole(bytes32,address)":"91d14854","hook()":"7f5a7c7b","initialize(bytes)":"439fab91","maxNetworkLimit(bytes32)":"d15b740e","maxNetworkLimitAt(bytes32,uint48,bytes)":"437224a3","maxNetworkLimitHint(address,bytes32,uint48)":"991d1162","maxNetworkLimitHintInternal(bytes32,uint48)":"d0f1f901","network()":"6739afca","onSlash(bytes32,address,uint256,uint48,bytes)":"e49561ee","operator()":"570ca735","renounceRole(bytes32,address)":"36568abe","revokeRole(bytes32,address)":"d547741f","setHook(address)":"3dfd3873","setMaxNetworkLimit(uint96,uint256)":"23f752d5","stake(bytes32,address)":"fd4d447c","stakeAt(bytes32,address,uint48,bytes)":"e02f6937","stakeHints(address,bytes32,address,uint48)":"25dc9708","staticDelegateCall(address,bytes)":"9f86fd85","supportsInterface(bytes4)":"01ffc9a7","vault()":"fbfa77cf"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"baseDelegatorHints\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"vaultHints\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"optInServiceHints\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"AccessControlBadConfirmation\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"neededRole\",\"type\":\"bytes32\"}],\"name\":\"AccessControlUnauthorizedAccount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AlreadySet\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CheckpointUnorderedInsertion\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ExternalCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientHookGas\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidNetwork\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotNetwork\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotOperator\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotSlasher\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotVault\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ReentrancyGuardReentrantCall\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"bits\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"SafeCastOverflowedUintDowncast\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint48\",\"name\":\"captureTimestamp\",\"type\":\"uint48\"}],\"name\":\"OnSlash\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"previousAdminRole\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"newAdminRole\",\"type\":\"bytes32\"}],\"name\":\"RoleAdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleRevoked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"hook\",\"type\":\"address\"}],\"name\":\"SetHook\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"SetMaxNetworkLimit\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"BASE_DELEGATOR_HINTS\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"DEFAULT_ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"FACTORY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"HOOK_GAS_LIMIT\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"HOOK_RESERVE\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"HOOK_SET_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"NETWORK_REGISTRY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"OPERATOR_NETWORK_OPT_IN_SERVICE\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"OPERATOR_REGISTRY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"OPERATOR_VAULT_OPT_IN_SERVICE\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"OPT_IN_SERVICE_HINTS\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"TYPE\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"VAULT_FACTORY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"VAULT_HINTS\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"VERSION\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleAdmin\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"grantRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"hook\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"}],\"name\":\"maxNetworkLimit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hint\",\"type\":\"bytes\"}],\"name\":\"maxNetworkLimitAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"}],\"name\":\"maxNetworkLimitHint\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"}],\"name\":\"maxNetworkLimitHintInternal\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"exists\",\"type\":\"bool\"},{\"internalType\":\"uint32\",\"name\":\"hint\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"network\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint48\",\"name\":\"captureTimestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"onSlash\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"operator\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"callerConfirmation\",\"type\":\"address\"}],\"name\":\"renounceRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"hook_\",\"type\":\"address\"}],\"name\":\"setHook\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint96\",\"name\":\"identifier\",\"type\":\"uint96\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"setMaxNetworkLimit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"stake\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hints\",\"type\":\"bytes\"}],\"name\":\"stakeAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"}],\"name\":\"stakeHints\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"staticDelegateCall\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"vault\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"AccessControlBadConfirmation()\":[{\"details\":\"The caller of a function is not the expected one. NOTE: Don't confuse with {AccessControlUnauthorizedAccount}.\"}],\"AccessControlUnauthorizedAccount(address,bytes32)\":[{\"details\":\"The `account` is missing a role.\"}],\"CheckpointUnorderedInsertion()\":[{\"details\":\"A value was attempted to be inserted on a past checkpoint.\"}],\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"ReentrancyGuardReentrantCall()\":[{\"details\":\"Unauthorized reentrant call.\"}],\"SafeCastOverflowedUintDowncast(uint8,uint256)\":[{\"details\":\"Value doesn't fit in an uint of `bits` size.\"}]},\"events\":{\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"OnSlash(bytes32,address,uint256,uint48)\":{\"params\":{\"amount\":\"amount of the collateral to be slashed\",\"captureTimestamp\":\"time point when the stake was captured\",\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"}},\"RoleAdminChanged(bytes32,bytes32,bytes32)\":{\"details\":\"Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole` `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite {RoleAdminChanged} not being emitted signaling this.\"},\"RoleGranted(bytes32,address,address)\":{\"details\":\"Emitted when `account` is granted `role`. `sender` is the account that originated the contract call, an admin role bearer except when using {AccessControl-_setupRole}.\"},\"RoleRevoked(bytes32,address,address)\":{\"details\":\"Emitted when `account` is revoked `role`. `sender` is the account that originated the contract call: - if using `revokeRole`, it is the admin role bearer - if using `renounceRole`, it is the role bearer (i.e. `account`)\"},\"SetHook(address)\":{\"params\":{\"hook\":\"address of the hook\"}},\"SetMaxNetworkLimit(bytes32,uint256)\":{\"params\":{\"amount\":\"new maximum subnetwork's limit (how much stake the subnetwork is ready to get)\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"}}},\"kind\":\"dev\",\"methods\":{\"VERSION()\":{\"details\":\"Must return 1 for this one.\",\"returns\":{\"_0\":\"version of the delegator\"}},\"getRoleAdmin(bytes32)\":{\"details\":\"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}.\"},\"grantRole(bytes32,address)\":{\"details\":\"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event.\"},\"hasRole(bytes32,address)\":{\"details\":\"Returns `true` if `account` has been granted `role`.\"},\"initialize(bytes)\":{\"params\":{\"data\":\"some data to use\"}},\"maxNetworkLimitAt(bytes32,uint48,bytes)\":{\"params\":{\"hint\":\"hint for checkpoint index\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\",\"timestamp\":\"time point to get the maximum subnetwork limit at\"},\"returns\":{\"_0\":\"maximum limit of the subnetwork\"}},\"onSlash(bytes32,address,uint256,uint48,bytes)\":{\"details\":\"Only the vault's slasher can call this function.\",\"params\":{\"amount\":\"amount of the collateral slashed\",\"captureTimestamp\":\"time point when the stake was captured\",\"data\":\"some additional data\",\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"}},\"renounceRole(bytes32,address)\":{\"details\":\"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `callerConfirmation`. May emit a {RoleRevoked} event.\"},\"revokeRole(bytes32,address)\":{\"details\":\"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event.\"},\"setHook(address)\":{\"details\":\"Only a HOOK_SET_ROLE holder can call this function. The hook can have arbitrary logic under certain functions, however, it doesn't affect the stake guarantees.\",\"params\":{\"hook\":\"address of the hook\"}},\"setMaxNetworkLimit(uint96,uint256)\":{\"details\":\"Only a network can call this function.\",\"params\":{\"amount\":\"new maximum subnetwork's limit\"}},\"stake(bytes32,address)\":{\"details\":\"Warning: this function is not safe to use for stake capturing, as it can change by the end of the block.\",\"params\":{\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"},\"returns\":{\"_0\":\"slashable stake until the end of the next epoch\"}},\"stakeAt(bytes32,address,uint48,bytes)\":{\"details\":\"Warning: it is not safe to use timestamp >= current one for the stake capturing, as it can change later.\",\"params\":{\"hints\":\"hints for the checkpoints' indexes\",\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\",\"timestamp\":\"time point to capture the stake at\"},\"returns\":{\"_0\":\"slashable stake at the given timestamp until the end of the consequent epoch\"}},\"staticDelegateCall(address,bytes)\":{\"details\":\"It allows to use this contract's storage on-chain.\",\"params\":{\"data\":\"data to make a delegatecall with\",\"target\":\"address of the contract to make a delegatecall to\"}},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"}},\"version\":1},\"userdoc\":{\"events\":{\"OnSlash(bytes32,address,uint256,uint48)\":{\"notice\":\"Emitted when a slash happens.\"},\"SetHook(address)\":{\"notice\":\"Emitted when a hook is set.\"},\"SetMaxNetworkLimit(bytes32,uint256)\":{\"notice\":\"Emitted when a subnetwork's maximum limit is set.\"}},\"kind\":\"user\",\"methods\":{\"FACTORY()\":{\"notice\":\"Get the factory's address.\"},\"HOOK_GAS_LIMIT()\":{\"notice\":\"Get a gas limit for the hook.\"},\"HOOK_RESERVE()\":{\"notice\":\"Get a reserve gas between the gas limit check and the hook's execution.\"},\"HOOK_SET_ROLE()\":{\"notice\":\"Get a hook setter's role.\"},\"NETWORK_REGISTRY()\":{\"notice\":\"Get the network registry's address.\"},\"OPERATOR_NETWORK_OPT_IN_SERVICE()\":{\"notice\":\"Get the operator-network opt-in service's address.\"},\"OPERATOR_REGISTRY()\":{\"notice\":\"Get the operator registry's address.\"},\"OPERATOR_VAULT_OPT_IN_SERVICE()\":{\"notice\":\"Get the operator-vault opt-in service's address.\"},\"TYPE()\":{\"notice\":\"Get the entity's type.\"},\"VAULT_FACTORY()\":{\"notice\":\"Get the vault factory's address.\"},\"VERSION()\":{\"notice\":\"Get a version of the delegator (different versions mean different interfaces).\"},\"hook()\":{\"notice\":\"Get the hook's address.\"},\"initialize(bytes)\":{\"notice\":\"Initialize this entity contract by using a given data.\"},\"maxNetworkLimit(bytes32)\":{\"notice\":\"Get a particular subnetwork's maximum limit (meaning the subnetwork is not ready to get more as a stake).\"},\"maxNetworkLimitAt(bytes32,uint48,bytes)\":{\"notice\":\"Get a particular subnetwork's maximum limit at a given timestamp using a hint (meaning the subnetwork is not ready to get more as a stake).\"},\"network()\":{\"notice\":\"Get a network the vault delegates funds to.\"},\"onSlash(bytes32,address,uint256,uint48,bytes)\":{\"notice\":\"Called when a slash happens.\"},\"operator()\":{\"notice\":\"Get an operator managing the vault's funds.\"},\"setHook(address)\":{\"notice\":\"Set a new hook.\"},\"setMaxNetworkLimit(uint96,uint256)\":{\"notice\":\"Set a maximum limit for a subnetwork (how much stake the subnetwork is ready to get). identifier identifier of the subnetwork\"},\"stake(bytes32,address)\":{\"notice\":\"Get a stake that a given subnetwork will be able to slash for a certain operator until the end of the next epoch (if no cross-slashing and no slashings by the subnetwork).\"},\"stakeAt(bytes32,address,uint48,bytes)\":{\"notice\":\"Get a stake that a given subnetwork could be able to slash for a certain operator at a given timestamp until the end of the consequent epoch using hints (if no cross-slashing and no slashings by the subnetwork).\"},\"staticDelegateCall(address,bytes)\":{\"notice\":\"Make a delegatecall from this contract to a given target contract with a particular data (always reverts with a return data).\"},\"vault()\":{\"notice\":\"Get the vault's address.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/contracts/hints/DelegatorHints.sol\":\"OperatorNetworkSpecificDelegatorHints\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol\":{\"keccak256\":\"0x6662ec4e5cefca03eeadd073e9469df8d2944bb2ee8ec8f7622c2c46aab5f225\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4d8544c6f8daa4d1bc215c6a72fe0acdb748664a105b0e5efc19295667521d45\",\"dweb:/ipfs/QmdGWqdnXT8S3RgCR6aV8XHZrsybieMQLLnug1NtpSjEXN\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0xc163fcf9bb10138631a9ba5564df1fa25db9adff73bd9ee868a8ae1858fe093a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9706d43a0124053d9880f6e31a59f31bc0a6a3dc1acd66ce0a16e1111658c5f6\",\"dweb:/ipfs/QmUFmfowzkRwGtDu36cXV9SPTBHJ3n7dG9xQiK5B28jTf2\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609\",\"dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9\",\"dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardUpgradeable.sol\":{\"keccak256\":\"0xb44e086e941292cdc7f440de51478493894ef0b1aeccb0c4047445919f667f74\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://942dad22fbdc1669f025540ba63aa3ccfad5f8458fc5d4525b31ebf272e7af45\",\"dweb:/ipfs/Qmdo4X2M82aM3AMoW2kf2jhYkSCyC4T1pHNd6obdsDFnAB\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol\":{\"keccak256\":\"0xdaba3f7c42c55b2896353f32bd27d4d5f8bae741b3b05d4c53f67abc4dc47ce8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1fa2e61141c602510bcd2cd936ed9561922ac8772a9b9c9a9db091a74e354a45\",\"dweb:/ipfs/QmcHQDDoEBwJmwUbzoVkytvJsBx3KVHYFFnDkvRGWh9Wmh\"]},\"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0xb6b36edd6a2999fd243ff226d6cbf84bd71af2432bbd0dfe19392996a1d9cb41\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1fd2f35495652e57e3f99bc6c510bc5f7dd398a176ea2e72d8ed730aebc6ca26\",\"dweb:/ipfs/QmTQV6X4gkikTib49cho5iDX3JvSQbdsoEChoDwrk3CbbH\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC1271.sol\":{\"keccak256\":\"0x85a45f3f10014a0f8be41157a32b6a5f905753ea64a4b64e29fc12b7deeecf39\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c3c74009ce36136b36c77c23935b8e4a7b4f253be2da2be4fb4a916b1ce43743\",\"dweb:/ipfs/QmcH36v3iN7SJJuF73AunLR2LtNxhVJ1wm63ph4dPZ4pcL\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC5267.sol\":{\"keccak256\":\"0x92aa1df62dc3d33f1656d63bede0923e0df0b706ad4137c8b10b0a8fe549fd92\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c5c0f29195ad64cbe556da8e257dac8f05f78c53f90323c0d2accf8e6922d33a\",\"dweb:/ipfs/QmQ61TED8uaCZwcbh8KkgRSsCav7x7HbcGHwHts3U4DmUP\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c\",\"dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0x6008dabfe393240d73d7dd7688033f72740d570aa422254d29a7dce8568f3aff\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f5196ec75139918c6c7bb4251b36395e668f1fa6d206beba7e7520e74913940d\",\"dweb:/ipfs/QmSyqjksXxmm2mCG6qRd1yuwLykypkSVBbnBnGqJRcuJMi\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x37bb49513c49c87c4642a891b13b63571bc87013dde806617aa1efb54605f386\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b3036b3a83b7c48f96641f2a9002b9f2dcb6a5958dd670894ada21ae8229b3d0\",\"dweb:/ipfs/QmUNfSBdoVtjhETaUJCYcaC7pTMgbhht926tJ2uXJbiVd3\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0xaf28a975a78550e45f65e559a3ad6a5ad43b9b8a37366999abd1b7084eb70721\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b7bd24e224f67f65bfadf85dc2929fa965456bb2415478bd0125471b5ce35245\",\"dweb:/ipfs/QmRaydGr8BTHs1kvaZfsNU69pKzUAGFrvABn1KiRSbE51y\"]},\"lib/openzeppelin-contracts/contracts/utils/ShortStrings.sol\":{\"keccak256\":\"0x18a7171df639a934592915a520ecb97c5bbc9675a1105607aac8a94e72bf62c6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7478e1f13da69a2867ccd883001d836b75620362e743f196376d63ed0c422a1c\",\"dweb:/ipfs/QmWywcQ9TNfwtoqAxbn25d8C5VrV12PrPS9UjtGe6pL2BA\"]},\"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0x32ba59b4b7299237c8ba56319110989d7978a039faf754793064e967e5894418\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1ae50c8b562427df610cc4540c9bf104acca7ef8e2dcae567ae7e52272281e9c\",\"dweb:/ipfs/QmTHiadFCSJUPpRjNegc5SahmeU8bAoY8i9Aq6tVscbcKR\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0x55f102ea785d8399c0e58d1108e2d289506dde18abc6db1b7f68c1f9f9bc5792\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e52e0a7765c943ef14e5bcf11e46e6139fa044be564881378349236bf2e3453\",\"dweb:/ipfs/QmZEeeXoFPW47amyP35gfzomF9DixqqTEPwzBakv6cZw6i\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0xeed0a08b0b091f528356cbc7245891a4c748682d4f6a18055e8e6ca77d12a6cf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba80ba06c8e6be852847e4c5f4492cef801feb6558ae09ed705ff2e04ea8b13c\",\"dweb:/ipfs/QmXRJDv3xHLVQCVXg1ZvR35QS9sij5y9NDWYzMfUfAdTHF\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/EIP712.sol\":{\"keccak256\":\"0x999f705a027ed6dc2d4e0df2cc4a509852c6bfd11de1c8161bf88832d0503fd0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0798def67258d9a3cc20b2b4da7ebf351a5cefe0abfdd665d2d81f8e32f89b21\",\"dweb:/ipfs/QmPEvJosnPfzHNjKvCv2D3891mA2Ww8eUwkqrxBjuYdHCt\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol\":{\"keccak256\":\"0xba333517a3add42cd35fe877656fc3dfcc9de53baa4f3aabbd6d12a92e4ea435\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2ceacff44c0fdc81e48e0e0b1db87a2076d3c1fb497341de077bf1da9f6b406c\",\"dweb:/ipfs/QmRUo1muMRAewxrKQ7TkXUtknyRoR57AyEkoPpiuZQ8FzX\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/SignatureChecker.sol\":{\"keccak256\":\"0x6b11eb41a228cca35d4b662b4df69fcd75192851365102690f57b2ac01e83fe6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ab006a2983ed350d2af21ddcdd835dcae3b8340086cc4d088460da5abd041f69\",\"dweb:/ipfs/QmbEacDhkJZiGrgzLjB4pNtE8Z1uudjDw1DvcDUTVQFsLG\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875\",\"dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0xe19a4d5f31d2861e7344e8e535e2feafb913d806d3e2b5fe7782741a2a7094fe\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4aed79c0fa6f0546ed02f2f683e8f77f0fd2ed7eb34d8bbf3d373c9a6d95b13c\",\"dweb:/ipfs/QmWqVz6UAVqmnWU5pqYPt1o6iDEZyPaBraAA3rKfTTSfYj\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x5f7e4076e175393767754387c962926577f1660dd9b810187b9002407656be72\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7d533a1c97cd43a57cd9c465f7ee8dd0e39ae93a8fb8ff8e5303a356b081cdcc\",\"dweb:/ipfs/QmVBEei6aTnvYNZp2CHYVNKyZS4q1KkjANfY39WVXZXVoT\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/Checkpoints.sol\":{\"keccak256\":\"0xbdc5e074d7dd6678f67e92b1a51a20226801a407b0e1af3da367c5d1ff4519ad\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a36cca6b22fff3db16fc789ff6c60eea71d4b156065d4d0c83a0bc5e91a77a8b\",\"dweb:/ipfs/QmYN3exd5AemxjBrN8XMB1p5LbbE16uC3sjbYjwi8AjcGR\"]},\"lib/openzeppelin-contracts/contracts/utils/types/Time.sol\":{\"keccak256\":\"0xc7755af115020049e4140f224f9ee88d7e1799ffb0646f37bf0df24bf6213f58\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7f09bf94d5274334ec021f61a04659db303f31e60460e14b709c9bf187740111\",\"dweb:/ipfs/QmNvgomZYUwFAt4cZbPWAiTeSZQreGehY9BK5xyVJsUttb\"]},\"src/contracts/common/Entity.sol\":{\"keccak256\":\"0x3d61a932995b8443381f3950542d388223a2c26dd5d29a3274dea3baa7388bd7\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://7cdf5f03ca72fd263fd32ff59c8d88ddca911ae83896a287d10772c1bbe9b138\",\"dweb:/ipfs/QmbP84r5BWT1Rn9AYTntWSf3xUMTTCohTZJFhbBhDXFoHa\"]},\"src/contracts/common/MigratableEntity.sol\":{\"keccak256\":\"0x2d736f4dacd5d7e7697503bc426c78b8250fe1694ca157965ec178da6807de58\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://f1237acf96b4b9f9b69156e068eddd726a6e15bd8e87a18dc999cd4ba4da069c\",\"dweb:/ipfs/QmS6M8fiFFSeuJ4ZKKq1z8W7w4ybeHQSy5TLASGoc1LVic\"]},\"src/contracts/common/StaticDelegateCallable.sol\":{\"keccak256\":\"0x350029aa8955eacaffffaeb58babc5c98e80ebc5c5db388ed17ee6465f4a9d90\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://eb392a8ee9050e0af606897df63e3404e3829e8b688b580663892f9664195764\",\"dweb:/ipfs/QmaXC8jqV8UrrAFkzXTEv2fJF56sy33HhLxAzaRZmUxuXD\"]},\"src/contracts/delegator/BaseDelegator.sol\":{\"keccak256\":\"0x7c54d491fdd4415b764a9c8defa068e56d4c0c8c9419be0053a1d377669290e8\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://9238bfbad0f6eeb0dc7727724de14380f1980b395902269703d5e2ef07e52e10\",\"dweb:/ipfs/QmPJn1V4HNXcEghYvogGuSTF24dSQUPosR5qtsXcmNqRm3\"]},\"src/contracts/delegator/FullRestakeDelegator.sol\":{\"keccak256\":\"0x0a81c4f8e72914563a9cb771e93acf889c71ea36b7bec040e4eb562b199d5af1\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://6fc66b6ba02da77046a0bbbd1dd407a62c08f52e04486c9cbd2cb1cca3da555f\",\"dweb:/ipfs/QmZQivK1ZnMxfRQQ5aLpV9co5u55wQVNev5Rg1hzAqxhkE\"]},\"src/contracts/delegator/NetworkRestakeDelegator.sol\":{\"keccak256\":\"0xd3a8e6522f9c6fdcc2da837c9023afd6bdff2bce45a35590320c475519e3636d\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://58b17a87f6554f08376f9ea7fedf486a4aa75801bf0ad8b23ff5a46959b6b7a3\",\"dweb:/ipfs/QmSTmNh67tYt8CmjVZb57r8N3qX5yeYdMApKPJm3qvQgQw\"]},\"src/contracts/delegator/OperatorNetworkSpecificDelegator.sol\":{\"keccak256\":\"0x031a10722b9ec49048f0952710401131290adb87e71caf294e864e7ac3b98a16\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://72428febc875134b2f29205e6f294634a1c22a7d5c78d6a9cb2f8196f107c9b5\",\"dweb:/ipfs/QmTPwXR6h5oytckmkLrHdKeEMdphJxceDhYUR4zvQeWAwY\"]},\"src/contracts/delegator/OperatorSpecificDelegator.sol\":{\"keccak256\":\"0x630ce62fa30b9f3349ab7a8cf8dbf041319febc6dd757be2f94d3d25944ed328\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://c2ac59d47ce57d2a6819ae9833e1a618a371eccff93eb5ab367b201b01f42bfa\",\"dweb:/ipfs/QmdBpGMBivpNPv2WbH8vnCUy5xkVeaxQvGgqi33vKCz1kA\"]},\"src/contracts/hints/DelegatorHints.sol\":{\"keccak256\":\"0x44aa0c396311a54afbc7c73e8dadeed41e3165a4fd13f712b27d63d50fc3376d\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://2f255214f3531fc707d88be0d56a7a0aed4180439316d099d760d9118aa83093\",\"dweb:/ipfs/QmZD1w5p1ukJSXumUAjvxwGmkPhn7vsr21Y2atLGEZR2oi\"]},\"src/contracts/hints/Hints.sol\":{\"keccak256\":\"0x8b565df1ae35993c097a9e642002782a8f451f6fd01809cad6bcd345bdf1b99c\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://99a19adb01e350a92f534095b3078229df1f2f83077992d75d58d8684be45971\",\"dweb:/ipfs/QmbmwcuswVbzvwHQFTtrJG86oV98GnfxqYTb8cV8u1acox\"]},\"src/contracts/hints/OptInServiceHints.sol\":{\"keccak256\":\"0x95d9407900d27b9f4a1233b772aeed809c07b2dc5b31cfc9fa77ca26514c49e5\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://a13a8877e312d7e6b8b85bde3668c5d84ff5ecc83f762cd573f2b7104c64eb42\",\"dweb:/ipfs/QmYV2J55acuGzCNnS3juABuUHY5U1xc8g8o9jwEyFFdeG5\"]},\"src/contracts/hints/VaultHints.sol\":{\"keccak256\":\"0xccb505b7159b769cc114d67b87c2de6b106557f667fc8f3780114baad5c3c442\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://6d0c80a908fc16e96a8b5605a0bd53f9e89ad0ef0a738fbbae80ba4d3160749b\",\"dweb:/ipfs/QmXo5UtWoR8YmunqcbBU8rQMm1nvmvjNPoXcVrDhh4pEwR\"]},\"src/contracts/libraries/Checkpoints.sol\":{\"keccak256\":\"0xba90097c8bfe0a975499428b5f8ac5569483c7d92ccc28c12d70de416aae040c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://12f5d93ca94cd06d3147db68993165a58e17903ed53682560de61f3085ad4609\",\"dweb:/ipfs/QmePiuAqvXprMLmFZkGZeGjvGPAvsEDHfCDv7BoQhXu9xE\"]},\"src/contracts/libraries/ERC4626Math.sol\":{\"keccak256\":\"0x8441160513c1cbeb1c3b9ee077bcc7e7ce20006b52a77c8dd39ff0ef89699939\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://943f8cc3e26ddf649f465f40c909819f5c864717c4baa339e9e403b9374a4653\",\"dweb:/ipfs/QmXPxi1sUDsrGprZdUgCzoPEosaZMv9ZhygWQ1vAi1phAB\"]},\"src/contracts/libraries/Subnetwork.sol\":{\"keccak256\":\"0xf5ef5506fd66082b3c2e7f3df37529f5a8efad32ac62e7c8914bd63219190bfe\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba031a54ee0d0e9a270c2b9e18437f5668cfeb659cfd5fe0677459d7fcac2a56\",\"dweb:/ipfs/QmReP3H7qQ78tAfgLnJKsNEQNCQfF1X1Get38Ffd4kzq32\"]},\"src/contracts/service/OptInService.sol\":{\"keccak256\":\"0x4e0932077f2686b7990e10d59deb2535334c0d09e52ef6e57c6ab09eca21c4b1\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://7c00d311032ed4a1743aca7475f3c86ce15cdfc2218108efc3731c03d34a5278\",\"dweb:/ipfs/QmUGGfVwVhaHr5kS4177yKKYiLYzi5qZpkEmvYxBZqazxf\"]},\"src/contracts/vault/Vault.sol\":{\"keccak256\":\"0x2ceff6ed3298c4cad144c99fcc79b51cb9397d6ebef00285b915848b476f8c2e\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://11f2fb3581854f3ab6e82e8d4935d9eb510c903a13c3f022346c2956a58f5307\",\"dweb:/ipfs/QmdUnoXoyYoG9SGWyQZCFyLDRUUX3eXyXetkRvw6jxqqBz\"]},\"src/contracts/vault/VaultStorage.sol\":{\"keccak256\":\"0x57db25b127d77ea3472de53e3a4af3354399655b9268638b99ca5925fa364a56\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://aa763d9a6ec508ae3abfb8228b72b9fd9525279e5135d4962e79ff059feb1173\",\"dweb:/ipfs/QmcbDR6E9wyEpu6V2FkEC4hnWy47zXA9LSKJde6zSGd33Q\"]},\"src/interfaces/common/IEntity.sol\":{\"keccak256\":\"0x8ef4b63d6da63489778ccd5f8d13ebdd527dd4b62730b2c616df5af7474d2d21\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a8d69576a9219d85c50816a18ad53a4d53cfcb27ed38b8cccc808dc2734b71b\",\"dweb:/ipfs/QmYVN3P4Q4REvBWJ97TbAcaxm3uyB2anV6NSGa6ZtSwcEv\"]},\"src/interfaces/common/IMigratableEntity.sol\":{\"keccak256\":\"0x8f5f2809f3afbe8ebfbb365dd7b57b4dd3b6f9943a6187eaf648d45895b8e3c4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ffe640537d539e7a4fde70d30d3e4c57f4ba9c2c25c450cea713aae38e8fd5c\",\"dweb:/ipfs/QmSUTGzvdcn1R1KB7tLThMRtESsfPbeXDhhhKWGtntzBds\"]},\"src/interfaces/common/IRegistry.sol\":{\"keccak256\":\"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014\",\"dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK\"]},\"src/interfaces/common/IStaticDelegateCallable.sol\":{\"keccak256\":\"0xa335d4e81b9071b7de66ef92b43ff20671d86516eb1be46fef29a3483cd3f5d5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d464b9db863c14c05547d2b23352f2e9b7b784799cf09f6bbc4906a2a74e3516\",\"dweb:/ipfs/QmUVWzFvJz7eEbDQKiFTTzwi7TEbjcs3VmwdM4kuptAKvi\"]},\"src/interfaces/delegator/IBaseDelegator.sol\":{\"keccak256\":\"0x96bb312f032e17accce3f8f80936d99468029d6b37c9ca74acdb4b026a0148ee\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2a66dcb5b7d1a6ef6a363431ea98ebd78bc4fdd3d7a134d9b542dc66e7d025c2\",\"dweb:/ipfs/QmRhTPLd2ZAyRHmJUFUcWKs9b3if49QY17LYZuRqWmghw8\"]},\"src/interfaces/delegator/IDelegatorHook.sol\":{\"keccak256\":\"0xc51aa8d7d1f6c8043ee819b7aeb86da0e993912e1442098df897e299f01f9f46\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://adddf5cb2ba282aeb576b26efb28640f865a1721cc9b6eee8b3ee0457a2c9780\",\"dweb:/ipfs/QmNYgAmnLRwWZbhTuQhZs9rx4zcme1df5mEepkrniorSoW\"]},\"src/interfaces/delegator/IFullRestakeDelegator.sol\":{\"keccak256\":\"0xa3c8cb2e45d4d8ce90e95263bea40c01dc400f05ad65bc29597d878606be5e7d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://782cf5e201aa4cca037ebafd3807a68ff1cc721d5b8416a35244db0d0607369e\",\"dweb:/ipfs/QmQkJks6x7CKndeTPa9LxgTNygD5uEi7obhADhpq1Lsr9A\"]},\"src/interfaces/delegator/INetworkRestakeDelegator.sol\":{\"keccak256\":\"0xe7030fe30389a147fd710e3436ec346b4842695fd3e65a81b95375c9f1d633fc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://739c7e66d301778054f5c90bee45ec9438f68afba8a03eaaac52064c73b115ad\",\"dweb:/ipfs/QmfZ2ytKcTykAc76nxhg8ikUXV8NdBpetqb8W4YWPcox1Z\"]},\"src/interfaces/delegator/IOperatorNetworkSpecificDelegator.sol\":{\"keccak256\":\"0x74b95e64d29769202d45dd277bb830f623ff3d41ce77b80ce3ee4e318a5c71ec\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e512b903aae5c1b8a028c6e3f4f6223b5cb5d704503cfa6bd37b5346868f5c20\",\"dweb:/ipfs/QmZim9YExsPWtyxyeui993HTKAEmrg8MUcSkZ77Gp2JcuZ\"]},\"src/interfaces/delegator/IOperatorSpecificDelegator.sol\":{\"keccak256\":\"0x72075cab585dc17240cc3e32bc99b92f0d5627ddd988fed680e3e1a52d5a01e4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7448bc90699409ae61d85216b5efc2143a37f0f73354be2aea993bc54afca441\",\"dweb:/ipfs/QmXE4gAxM8pHosZK8mcTcj17puBx484meDCcmrDePskGHZ\"]},\"src/interfaces/service/IOptInService.sol\":{\"keccak256\":\"0x76fb5460a6d87a5705433d4fbeff7253cd75b8bbd0c888b2088f16e86ace146a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://990322019b3d11465f7024bae77ccbf7e2fe5d6fa3c754584778f37d04fa1337\",\"dweb:/ipfs/QmaSNHzcqxTkUCG9a4nqVfLECHLdjdrwAnDi3yDC7tDL24\"]},\"src/interfaces/slasher/IBaseSlasher.sol\":{\"keccak256\":\"0x7c82528b445659c313ab77335c407b0b6efe5e79027187bb287f7bc74202b404\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0274c90aa5df1aa6bb470a6aab53992fb14fd7e5472c9430416505b29647d9cf\",\"dweb:/ipfs/QmckbmJLDetPemVzCnnGcKYWAZV2BRFXGDsjiaec8jkHxx\"]},\"src/interfaces/vault/IVault.sol\":{\"keccak256\":\"0xffee01d383cd4e1a5530c614bf4360c1ef070c288abec9da1eb531b51bc07235\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://04f0046cac285d8ec44ebbb1f79dc94fab4495767190cad8364fbc1fafaadfb9\",\"dweb:/ipfs/QmUawAunwzXfCyShWfhKeThAgKtqe51hmrxvrXvM772M2R\"]},\"src/interfaces/vault/IVaultStorage.sol\":{\"keccak256\":\"0x592626f13754194f83047135de19229c49390bd59e34659b1bb38be71d973a22\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://06a6a9dfddd05e580b32bebe2cff4f63ba26a653180676d58225dd30d9c89d3e\",\"dweb:/ipfs/QmdgzBeY6Sxo8mGtyBxtv1tM1c2kU6J6zjeRd7vuXm4DU6\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.25+commit.b61c2a91"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"baseDelegatorHints","type":"address"},{"internalType":"address","name":"vaultHints","type":"address"},{"internalType":"address","name":"optInServiceHints","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"AccessControlBadConfirmation"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bytes32","name":"neededRole","type":"bytes32"}],"type":"error","name":"AccessControlUnauthorizedAccount"},{"inputs":[],"type":"error","name":"AlreadySet"},{"inputs":[],"type":"error","name":"CheckpointUnorderedInsertion"},{"inputs":[],"type":"error","name":"ExternalCall"},{"inputs":[],"type":"error","name":"InsufficientHookGas"},{"inputs":[],"type":"error","name":"InvalidInitialization"},{"inputs":[],"type":"error","name":"InvalidNetwork"},{"inputs":[],"type":"error","name":"NotInitialized"},{"inputs":[],"type":"error","name":"NotInitializing"},{"inputs":[],"type":"error","name":"NotNetwork"},{"inputs":[],"type":"error","name":"NotOperator"},{"inputs":[],"type":"error","name":"NotSlasher"},{"inputs":[],"type":"error","name":"NotVault"},{"inputs":[],"type":"error","name":"ReentrancyGuardReentrantCall"},{"inputs":[{"internalType":"uint8","name":"bits","type":"uint8"},{"internalType":"uint256","name":"value","type":"uint256"}],"type":"error","name":"SafeCastOverflowedUintDowncast"},{"inputs":[{"internalType":"uint64","name":"version","type":"uint64","indexed":false}],"type":"event","name":"Initialized","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32","indexed":true},{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false},{"internalType":"uint48","name":"captureTimestamp","type":"uint48","indexed":false}],"type":"event","name":"OnSlash","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"bytes32","name":"previousAdminRole","type":"bytes32","indexed":true},{"internalType":"bytes32","name":"newAdminRole","type":"bytes32","indexed":true}],"type":"event","name":"RoleAdminChanged","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"address","name":"sender","type":"address","indexed":true}],"type":"event","name":"RoleGranted","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"address","name":"sender","type":"address","indexed":true}],"type":"event","name":"RoleRevoked","anonymous":false},{"inputs":[{"internalType":"address","name":"hook","type":"address","indexed":true}],"type":"event","name":"SetHook","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"SetMaxNetworkLimit","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"BASE_DELEGATOR_HINTS","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"DEFAULT_ADMIN_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"FACTORY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"HOOK_GAS_LIMIT","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"HOOK_RESERVE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"HOOK_SET_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"NETWORK_REGISTRY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"OPERATOR_NETWORK_OPT_IN_SERVICE","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"OPERATOR_REGISTRY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"OPERATOR_VAULT_OPT_IN_SERVICE","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"OPT_IN_SERVICE_HINTS","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"TYPE","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"VAULT_FACTORY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"VAULT_HINTS","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"VERSION","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getRoleAdmin","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"grantRole"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"hasRole","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"hook","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"}],"stateMutability":"view","type":"function","name":"maxNetworkLimit","outputs":[{"internalType":"uint256","name":"value","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"uint48","name":"timestamp","type":"uint48"},{"internalType":"bytes","name":"hint","type":"bytes"}],"stateMutability":"view","type":"function","name":"maxNetworkLimitAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"delegator","type":"address"},{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"uint48","name":"timestamp","type":"uint48"}],"stateMutability":"view","type":"function","name":"maxNetworkLimitHint","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"uint48","name":"timestamp","type":"uint48"}],"stateMutability":"view","type":"function","name":"maxNetworkLimitHintInternal","outputs":[{"internalType":"bool","name":"exists","type":"bool"},{"internalType":"uint32","name":"hint","type":"uint32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"network","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint48","name":"captureTimestamp","type":"uint48"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"onSlash"},{"inputs":[],"stateMutability":"view","type":"function","name":"operator","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"callerConfirmation","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"renounceRole"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"revokeRole"},{"inputs":[{"internalType":"address","name":"hook_","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setHook"},{"inputs":[{"internalType":"uint96","name":"identifier","type":"uint96"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setMaxNetworkLimit"},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"stake","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint48","name":"timestamp","type":"uint48"},{"internalType":"bytes","name":"hints","type":"bytes"}],"stateMutability":"view","type":"function","name":"stakeAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"delegator","type":"address"},{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint48","name":"timestamp","type":"uint48"}],"stateMutability":"view","type":"function","name":"stakeHints","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"staticDelegateCall"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"vault","outputs":[{"internalType":"address","name":"","type":"address"}]}],"devdoc":{"kind":"dev","methods":{"VERSION()":{"details":"Must return 1 for this one.","returns":{"_0":"version of the delegator"}},"getRoleAdmin(bytes32)":{"details":"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}."},"grantRole(bytes32,address)":{"details":"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event."},"hasRole(bytes32,address)":{"details":"Returns `true` if `account` has been granted `role`."},"initialize(bytes)":{"params":{"data":"some data to use"}},"maxNetworkLimitAt(bytes32,uint48,bytes)":{"params":{"hint":"hint for checkpoint index","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)","timestamp":"time point to get the maximum subnetwork limit at"},"returns":{"_0":"maximum limit of the subnetwork"}},"onSlash(bytes32,address,uint256,uint48,bytes)":{"details":"Only the vault's slasher can call this function.","params":{"amount":"amount of the collateral slashed","captureTimestamp":"time point when the stake was captured","data":"some additional data","operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"}},"renounceRole(bytes32,address)":{"details":"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `callerConfirmation`. May emit a {RoleRevoked} event."},"revokeRole(bytes32,address)":{"details":"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event."},"setHook(address)":{"details":"Only a HOOK_SET_ROLE holder can call this function. The hook can have arbitrary logic under certain functions, however, it doesn't affect the stake guarantees.","params":{"hook":"address of the hook"}},"setMaxNetworkLimit(uint96,uint256)":{"details":"Only a network can call this function.","params":{"amount":"new maximum subnetwork's limit"}},"stake(bytes32,address)":{"details":"Warning: this function is not safe to use for stake capturing, as it can change by the end of the block.","params":{"operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"},"returns":{"_0":"slashable stake until the end of the next epoch"}},"stakeAt(bytes32,address,uint48,bytes)":{"details":"Warning: it is not safe to use timestamp >= current one for the stake capturing, as it can change later.","params":{"hints":"hints for the checkpoints' indexes","operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)","timestamp":"time point to capture the stake at"},"returns":{"_0":"slashable stake at the given timestamp until the end of the consequent epoch"}},"staticDelegateCall(address,bytes)":{"details":"It allows to use this contract's storage on-chain.","params":{"data":"data to make a delegatecall with","target":"address of the contract to make a delegatecall to"}},"supportsInterface(bytes4)":{"details":"See {IERC165-supportsInterface}."}},"version":1},"userdoc":{"kind":"user","methods":{"FACTORY()":{"notice":"Get the factory's address."},"HOOK_GAS_LIMIT()":{"notice":"Get a gas limit for the hook."},"HOOK_RESERVE()":{"notice":"Get a reserve gas between the gas limit check and the hook's execution."},"HOOK_SET_ROLE()":{"notice":"Get a hook setter's role."},"NETWORK_REGISTRY()":{"notice":"Get the network registry's address."},"OPERATOR_NETWORK_OPT_IN_SERVICE()":{"notice":"Get the operator-network opt-in service's address."},"OPERATOR_REGISTRY()":{"notice":"Get the operator registry's address."},"OPERATOR_VAULT_OPT_IN_SERVICE()":{"notice":"Get the operator-vault opt-in service's address."},"TYPE()":{"notice":"Get the entity's type."},"VAULT_FACTORY()":{"notice":"Get the vault factory's address."},"VERSION()":{"notice":"Get a version of the delegator (different versions mean different interfaces)."},"hook()":{"notice":"Get the hook's address."},"initialize(bytes)":{"notice":"Initialize this entity contract by using a given data."},"maxNetworkLimit(bytes32)":{"notice":"Get a particular subnetwork's maximum limit (meaning the subnetwork is not ready to get more as a stake)."},"maxNetworkLimitAt(bytes32,uint48,bytes)":{"notice":"Get a particular subnetwork's maximum limit at a given timestamp using a hint (meaning the subnetwork is not ready to get more as a stake)."},"network()":{"notice":"Get a network the vault delegates funds to."},"onSlash(bytes32,address,uint256,uint48,bytes)":{"notice":"Called when a slash happens."},"operator()":{"notice":"Get an operator managing the vault's funds."},"setHook(address)":{"notice":"Set a new hook."},"setMaxNetworkLimit(uint96,uint256)":{"notice":"Set a maximum limit for a subnetwork (how much stake the subnetwork is ready to get). identifier identifier of the subnetwork"},"stake(bytes32,address)":{"notice":"Get a stake that a given subnetwork will be able to slash for a certain operator until the end of the next epoch (if no cross-slashing and no slashings by the subnetwork)."},"stakeAt(bytes32,address,uint48,bytes)":{"notice":"Get a stake that a given subnetwork could be able to slash for a certain operator at a given timestamp until the end of the consequent epoch using hints (if no cross-slashing and no slashings by the subnetwork)."},"staticDelegateCall(address,bytes)":{"notice":"Make a delegatecall from this contract to a given target contract with a particular data (always reverts with a return data)."},"vault()":{"notice":"Get the vault's address."}},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/contracts/hints/DelegatorHints.sol":"OperatorNetworkSpecificDelegatorHints"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol":{"keccak256":"0x6662ec4e5cefca03eeadd073e9469df8d2944bb2ee8ec8f7622c2c46aab5f225","urls":["bzz-raw://4d8544c6f8daa4d1bc215c6a72fe0acdb748664a105b0e5efc19295667521d45","dweb:/ipfs/QmdGWqdnXT8S3RgCR6aV8XHZrsybieMQLLnug1NtpSjEXN"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol":{"keccak256":"0xc163fcf9bb10138631a9ba5564df1fa25db9adff73bd9ee868a8ae1858fe093a","urls":["bzz-raw://9706d43a0124053d9880f6e31a59f31bc0a6a3dc1acd66ce0a16e1111658c5f6","dweb:/ipfs/QmUFmfowzkRwGtDu36cXV9SPTBHJ3n7dG9xQiK5B28jTf2"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b","urls":["bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609","dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol":{"keccak256":"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397","urls":["bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9","dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardUpgradeable.sol":{"keccak256":"0xb44e086e941292cdc7f440de51478493894ef0b1aeccb0c4047445919f667f74","urls":["bzz-raw://942dad22fbdc1669f025540ba63aa3ccfad5f8458fc5d4525b31ebf272e7af45","dweb:/ipfs/Qmdo4X2M82aM3AMoW2kf2jhYkSCyC4T1pHNd6obdsDFnAB"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol":{"keccak256":"0xdaba3f7c42c55b2896353f32bd27d4d5f8bae741b3b05d4c53f67abc4dc47ce8","urls":["bzz-raw://1fa2e61141c602510bcd2cd936ed9561922ac8772a9b9c9a9db091a74e354a45","dweb:/ipfs/QmcHQDDoEBwJmwUbzoVkytvJsBx3KVHYFFnDkvRGWh9Wmh"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol":{"keccak256":"0xb6b36edd6a2999fd243ff226d6cbf84bd71af2432bbd0dfe19392996a1d9cb41","urls":["bzz-raw://1fd2f35495652e57e3f99bc6c510bc5f7dd398a176ea2e72d8ed730aebc6ca26","dweb:/ipfs/QmTQV6X4gkikTib49cho5iDX3JvSQbdsoEChoDwrk3CbbH"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC1271.sol":{"keccak256":"0x85a45f3f10014a0f8be41157a32b6a5f905753ea64a4b64e29fc12b7deeecf39","urls":["bzz-raw://c3c74009ce36136b36c77c23935b8e4a7b4f253be2da2be4fb4a916b1ce43743","dweb:/ipfs/QmcH36v3iN7SJJuF73AunLR2LtNxhVJ1wm63ph4dPZ4pcL"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC5267.sol":{"keccak256":"0x92aa1df62dc3d33f1656d63bede0923e0df0b706ad4137c8b10b0a8fe549fd92","urls":["bzz-raw://c5c0f29195ad64cbe556da8e257dac8f05f78c53f90323c0d2accf8e6922d33a","dweb:/ipfs/QmQ61TED8uaCZwcbh8KkgRSsCav7x7HbcGHwHts3U4DmUP"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70","urls":["bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c","dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol":{"keccak256":"0x6008dabfe393240d73d7dd7688033f72740d570aa422254d29a7dce8568f3aff","urls":["bzz-raw://f5196ec75139918c6c7bb4251b36395e668f1fa6d206beba7e7520e74913940d","dweb:/ipfs/QmSyqjksXxmm2mCG6qRd1yuwLykypkSVBbnBnGqJRcuJMi"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0x37bb49513c49c87c4642a891b13b63571bc87013dde806617aa1efb54605f386","urls":["bzz-raw://b3036b3a83b7c48f96641f2a9002b9f2dcb6a5958dd670894ada21ae8229b3d0","dweb:/ipfs/QmUNfSBdoVtjhETaUJCYcaC7pTMgbhht926tJ2uXJbiVd3"],"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/ShortStrings.sol":{"keccak256":"0x18a7171df639a934592915a520ecb97c5bbc9675a1105607aac8a94e72bf62c6","urls":["bzz-raw://7478e1f13da69a2867ccd883001d836b75620362e743f196376d63ed0c422a1c","dweb:/ipfs/QmWywcQ9TNfwtoqAxbn25d8C5VrV12PrPS9UjtGe6pL2BA"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol":{"keccak256":"0x32ba59b4b7299237c8ba56319110989d7978a039faf754793064e967e5894418","urls":["bzz-raw://1ae50c8b562427df610cc4540c9bf104acca7ef8e2dcae567ae7e52272281e9c","dweb:/ipfs/QmTHiadFCSJUPpRjNegc5SahmeU8bAoY8i9Aq6tVscbcKR"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0x55f102ea785d8399c0e58d1108e2d289506dde18abc6db1b7f68c1f9f9bc5792","urls":["bzz-raw://6e52e0a7765c943ef14e5bcf11e46e6139fa044be564881378349236bf2e3453","dweb:/ipfs/QmZEeeXoFPW47amyP35gfzomF9DixqqTEPwzBakv6cZw6i"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol":{"keccak256":"0xeed0a08b0b091f528356cbc7245891a4c748682d4f6a18055e8e6ca77d12a6cf","urls":["bzz-raw://ba80ba06c8e6be852847e4c5f4492cef801feb6558ae09ed705ff2e04ea8b13c","dweb:/ipfs/QmXRJDv3xHLVQCVXg1ZvR35QS9sij5y9NDWYzMfUfAdTHF"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/EIP712.sol":{"keccak256":"0x999f705a027ed6dc2d4e0df2cc4a509852c6bfd11de1c8161bf88832d0503fd0","urls":["bzz-raw://0798def67258d9a3cc20b2b4da7ebf351a5cefe0abfdd665d2d81f8e32f89b21","dweb:/ipfs/QmPEvJosnPfzHNjKvCv2D3891mA2Ww8eUwkqrxBjuYdHCt"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol":{"keccak256":"0xba333517a3add42cd35fe877656fc3dfcc9de53baa4f3aabbd6d12a92e4ea435","urls":["bzz-raw://2ceacff44c0fdc81e48e0e0b1db87a2076d3c1fb497341de077bf1da9f6b406c","dweb:/ipfs/QmRUo1muMRAewxrKQ7TkXUtknyRoR57AyEkoPpiuZQ8FzX"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/SignatureChecker.sol":{"keccak256":"0x6b11eb41a228cca35d4b662b4df69fcd75192851365102690f57b2ac01e83fe6","urls":["bzz-raw://ab006a2983ed350d2af21ddcdd835dcae3b8340086cc4d088460da5abd041f69","dweb:/ipfs/QmbEacDhkJZiGrgzLjB4pNtE8Z1uudjDw1DvcDUTVQFsLG"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b","urls":["bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df","dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d","urls":["bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875","dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol":{"keccak256":"0xe19a4d5f31d2861e7344e8e535e2feafb913d806d3e2b5fe7782741a2a7094fe","urls":["bzz-raw://4aed79c0fa6f0546ed02f2f683e8f77f0fd2ed7eb34d8bbf3d373c9a6d95b13c","dweb:/ipfs/QmWqVz6UAVqmnWU5pqYPt1o6iDEZyPaBraAA3rKfTTSfYj"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0x5f7e4076e175393767754387c962926577f1660dd9b810187b9002407656be72","urls":["bzz-raw://7d533a1c97cd43a57cd9c465f7ee8dd0e39ae93a8fb8ff8e5303a356b081cdcc","dweb:/ipfs/QmVBEei6aTnvYNZp2CHYVNKyZS4q1KkjANfY39WVXZXVoT"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/Checkpoints.sol":{"keccak256":"0xbdc5e074d7dd6678f67e92b1a51a20226801a407b0e1af3da367c5d1ff4519ad","urls":["bzz-raw://a36cca6b22fff3db16fc789ff6c60eea71d4b156065d4d0c83a0bc5e91a77a8b","dweb:/ipfs/QmYN3exd5AemxjBrN8XMB1p5LbbE16uC3sjbYjwi8AjcGR"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/types/Time.sol":{"keccak256":"0xc7755af115020049e4140f224f9ee88d7e1799ffb0646f37bf0df24bf6213f58","urls":["bzz-raw://7f09bf94d5274334ec021f61a04659db303f31e60460e14b709c9bf187740111","dweb:/ipfs/QmNvgomZYUwFAt4cZbPWAiTeSZQreGehY9BK5xyVJsUttb"],"license":"MIT"},"src/contracts/common/Entity.sol":{"keccak256":"0x3d61a932995b8443381f3950542d388223a2c26dd5d29a3274dea3baa7388bd7","urls":["bzz-raw://7cdf5f03ca72fd263fd32ff59c8d88ddca911ae83896a287d10772c1bbe9b138","dweb:/ipfs/QmbP84r5BWT1Rn9AYTntWSf3xUMTTCohTZJFhbBhDXFoHa"],"license":"BUSL-1.1"},"src/contracts/common/MigratableEntity.sol":{"keccak256":"0x2d736f4dacd5d7e7697503bc426c78b8250fe1694ca157965ec178da6807de58","urls":["bzz-raw://f1237acf96b4b9f9b69156e068eddd726a6e15bd8e87a18dc999cd4ba4da069c","dweb:/ipfs/QmS6M8fiFFSeuJ4ZKKq1z8W7w4ybeHQSy5TLASGoc1LVic"],"license":"BUSL-1.1"},"src/contracts/common/StaticDelegateCallable.sol":{"keccak256":"0x350029aa8955eacaffffaeb58babc5c98e80ebc5c5db388ed17ee6465f4a9d90","urls":["bzz-raw://eb392a8ee9050e0af606897df63e3404e3829e8b688b580663892f9664195764","dweb:/ipfs/QmaXC8jqV8UrrAFkzXTEv2fJF56sy33HhLxAzaRZmUxuXD"],"license":"BUSL-1.1"},"src/contracts/delegator/BaseDelegator.sol":{"keccak256":"0x7c54d491fdd4415b764a9c8defa068e56d4c0c8c9419be0053a1d377669290e8","urls":["bzz-raw://9238bfbad0f6eeb0dc7727724de14380f1980b395902269703d5e2ef07e52e10","dweb:/ipfs/QmPJn1V4HNXcEghYvogGuSTF24dSQUPosR5qtsXcmNqRm3"],"license":"BUSL-1.1"},"src/contracts/delegator/FullRestakeDelegator.sol":{"keccak256":"0x0a81c4f8e72914563a9cb771e93acf889c71ea36b7bec040e4eb562b199d5af1","urls":["bzz-raw://6fc66b6ba02da77046a0bbbd1dd407a62c08f52e04486c9cbd2cb1cca3da555f","dweb:/ipfs/QmZQivK1ZnMxfRQQ5aLpV9co5u55wQVNev5Rg1hzAqxhkE"],"license":"BUSL-1.1"},"src/contracts/delegator/NetworkRestakeDelegator.sol":{"keccak256":"0xd3a8e6522f9c6fdcc2da837c9023afd6bdff2bce45a35590320c475519e3636d","urls":["bzz-raw://58b17a87f6554f08376f9ea7fedf486a4aa75801bf0ad8b23ff5a46959b6b7a3","dweb:/ipfs/QmSTmNh67tYt8CmjVZb57r8N3qX5yeYdMApKPJm3qvQgQw"],"license":"BUSL-1.1"},"src/contracts/delegator/OperatorNetworkSpecificDelegator.sol":{"keccak256":"0x031a10722b9ec49048f0952710401131290adb87e71caf294e864e7ac3b98a16","urls":["bzz-raw://72428febc875134b2f29205e6f294634a1c22a7d5c78d6a9cb2f8196f107c9b5","dweb:/ipfs/QmTPwXR6h5oytckmkLrHdKeEMdphJxceDhYUR4zvQeWAwY"],"license":"BUSL-1.1"},"src/contracts/delegator/OperatorSpecificDelegator.sol":{"keccak256":"0x630ce62fa30b9f3349ab7a8cf8dbf041319febc6dd757be2f94d3d25944ed328","urls":["bzz-raw://c2ac59d47ce57d2a6819ae9833e1a618a371eccff93eb5ab367b201b01f42bfa","dweb:/ipfs/QmdBpGMBivpNPv2WbH8vnCUy5xkVeaxQvGgqi33vKCz1kA"],"license":"BUSL-1.1"},"src/contracts/hints/DelegatorHints.sol":{"keccak256":"0x44aa0c396311a54afbc7c73e8dadeed41e3165a4fd13f712b27d63d50fc3376d","urls":["bzz-raw://2f255214f3531fc707d88be0d56a7a0aed4180439316d099d760d9118aa83093","dweb:/ipfs/QmZD1w5p1ukJSXumUAjvxwGmkPhn7vsr21Y2atLGEZR2oi"],"license":"BUSL-1.1"},"src/contracts/hints/Hints.sol":{"keccak256":"0x8b565df1ae35993c097a9e642002782a8f451f6fd01809cad6bcd345bdf1b99c","urls":["bzz-raw://99a19adb01e350a92f534095b3078229df1f2f83077992d75d58d8684be45971","dweb:/ipfs/QmbmwcuswVbzvwHQFTtrJG86oV98GnfxqYTb8cV8u1acox"],"license":"BUSL-1.1"},"src/contracts/hints/OptInServiceHints.sol":{"keccak256":"0x95d9407900d27b9f4a1233b772aeed809c07b2dc5b31cfc9fa77ca26514c49e5","urls":["bzz-raw://a13a8877e312d7e6b8b85bde3668c5d84ff5ecc83f762cd573f2b7104c64eb42","dweb:/ipfs/QmYV2J55acuGzCNnS3juABuUHY5U1xc8g8o9jwEyFFdeG5"],"license":"BUSL-1.1"},"src/contracts/hints/VaultHints.sol":{"keccak256":"0xccb505b7159b769cc114d67b87c2de6b106557f667fc8f3780114baad5c3c442","urls":["bzz-raw://6d0c80a908fc16e96a8b5605a0bd53f9e89ad0ef0a738fbbae80ba4d3160749b","dweb:/ipfs/QmXo5UtWoR8YmunqcbBU8rQMm1nvmvjNPoXcVrDhh4pEwR"],"license":"BUSL-1.1"},"src/contracts/libraries/Checkpoints.sol":{"keccak256":"0xba90097c8bfe0a975499428b5f8ac5569483c7d92ccc28c12d70de416aae040c","urls":["bzz-raw://12f5d93ca94cd06d3147db68993165a58e17903ed53682560de61f3085ad4609","dweb:/ipfs/QmePiuAqvXprMLmFZkGZeGjvGPAvsEDHfCDv7BoQhXu9xE"],"license":"MIT"},"src/contracts/libraries/ERC4626Math.sol":{"keccak256":"0x8441160513c1cbeb1c3b9ee077bcc7e7ce20006b52a77c8dd39ff0ef89699939","urls":["bzz-raw://943f8cc3e26ddf649f465f40c909819f5c864717c4baa339e9e403b9374a4653","dweb:/ipfs/QmXPxi1sUDsrGprZdUgCzoPEosaZMv9ZhygWQ1vAi1phAB"],"license":"MIT"},"src/contracts/libraries/Subnetwork.sol":{"keccak256":"0xf5ef5506fd66082b3c2e7f3df37529f5a8efad32ac62e7c8914bd63219190bfe","urls":["bzz-raw://ba031a54ee0d0e9a270c2b9e18437f5668cfeb659cfd5fe0677459d7fcac2a56","dweb:/ipfs/QmReP3H7qQ78tAfgLnJKsNEQNCQfF1X1Get38Ffd4kzq32"],"license":"MIT"},"src/contracts/service/OptInService.sol":{"keccak256":"0x4e0932077f2686b7990e10d59deb2535334c0d09e52ef6e57c6ab09eca21c4b1","urls":["bzz-raw://7c00d311032ed4a1743aca7475f3c86ce15cdfc2218108efc3731c03d34a5278","dweb:/ipfs/QmUGGfVwVhaHr5kS4177yKKYiLYzi5qZpkEmvYxBZqazxf"],"license":"BUSL-1.1"},"src/contracts/vault/Vault.sol":{"keccak256":"0x2ceff6ed3298c4cad144c99fcc79b51cb9397d6ebef00285b915848b476f8c2e","urls":["bzz-raw://11f2fb3581854f3ab6e82e8d4935d9eb510c903a13c3f022346c2956a58f5307","dweb:/ipfs/QmdUnoXoyYoG9SGWyQZCFyLDRUUX3eXyXetkRvw6jxqqBz"],"license":"BUSL-1.1"},"src/contracts/vault/VaultStorage.sol":{"keccak256":"0x57db25b127d77ea3472de53e3a4af3354399655b9268638b99ca5925fa364a56","urls":["bzz-raw://aa763d9a6ec508ae3abfb8228b72b9fd9525279e5135d4962e79ff059feb1173","dweb:/ipfs/QmcbDR6E9wyEpu6V2FkEC4hnWy47zXA9LSKJde6zSGd33Q"],"license":"BUSL-1.1"},"src/interfaces/common/IEntity.sol":{"keccak256":"0x8ef4b63d6da63489778ccd5f8d13ebdd527dd4b62730b2c616df5af7474d2d21","urls":["bzz-raw://5a8d69576a9219d85c50816a18ad53a4d53cfcb27ed38b8cccc808dc2734b71b","dweb:/ipfs/QmYVN3P4Q4REvBWJ97TbAcaxm3uyB2anV6NSGa6ZtSwcEv"],"license":"MIT"},"src/interfaces/common/IMigratableEntity.sol":{"keccak256":"0x8f5f2809f3afbe8ebfbb365dd7b57b4dd3b6f9943a6187eaf648d45895b8e3c4","urls":["bzz-raw://0ffe640537d539e7a4fde70d30d3e4c57f4ba9c2c25c450cea713aae38e8fd5c","dweb:/ipfs/QmSUTGzvdcn1R1KB7tLThMRtESsfPbeXDhhhKWGtntzBds"],"license":"MIT"},"src/interfaces/common/IRegistry.sol":{"keccak256":"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb","urls":["bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014","dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK"],"license":"MIT"},"src/interfaces/common/IStaticDelegateCallable.sol":{"keccak256":"0xa335d4e81b9071b7de66ef92b43ff20671d86516eb1be46fef29a3483cd3f5d5","urls":["bzz-raw://d464b9db863c14c05547d2b23352f2e9b7b784799cf09f6bbc4906a2a74e3516","dweb:/ipfs/QmUVWzFvJz7eEbDQKiFTTzwi7TEbjcs3VmwdM4kuptAKvi"],"license":"MIT"},"src/interfaces/delegator/IBaseDelegator.sol":{"keccak256":"0x96bb312f032e17accce3f8f80936d99468029d6b37c9ca74acdb4b026a0148ee","urls":["bzz-raw://2a66dcb5b7d1a6ef6a363431ea98ebd78bc4fdd3d7a134d9b542dc66e7d025c2","dweb:/ipfs/QmRhTPLd2ZAyRHmJUFUcWKs9b3if49QY17LYZuRqWmghw8"],"license":"MIT"},"src/interfaces/delegator/IDelegatorHook.sol":{"keccak256":"0xc51aa8d7d1f6c8043ee819b7aeb86da0e993912e1442098df897e299f01f9f46","urls":["bzz-raw://adddf5cb2ba282aeb576b26efb28640f865a1721cc9b6eee8b3ee0457a2c9780","dweb:/ipfs/QmNYgAmnLRwWZbhTuQhZs9rx4zcme1df5mEepkrniorSoW"],"license":"MIT"},"src/interfaces/delegator/IFullRestakeDelegator.sol":{"keccak256":"0xa3c8cb2e45d4d8ce90e95263bea40c01dc400f05ad65bc29597d878606be5e7d","urls":["bzz-raw://782cf5e201aa4cca037ebafd3807a68ff1cc721d5b8416a35244db0d0607369e","dweb:/ipfs/QmQkJks6x7CKndeTPa9LxgTNygD5uEi7obhADhpq1Lsr9A"],"license":"MIT"},"src/interfaces/delegator/INetworkRestakeDelegator.sol":{"keccak256":"0xe7030fe30389a147fd710e3436ec346b4842695fd3e65a81b95375c9f1d633fc","urls":["bzz-raw://739c7e66d301778054f5c90bee45ec9438f68afba8a03eaaac52064c73b115ad","dweb:/ipfs/QmfZ2ytKcTykAc76nxhg8ikUXV8NdBpetqb8W4YWPcox1Z"],"license":"MIT"},"src/interfaces/delegator/IOperatorNetworkSpecificDelegator.sol":{"keccak256":"0x74b95e64d29769202d45dd277bb830f623ff3d41ce77b80ce3ee4e318a5c71ec","urls":["bzz-raw://e512b903aae5c1b8a028c6e3f4f6223b5cb5d704503cfa6bd37b5346868f5c20","dweb:/ipfs/QmZim9YExsPWtyxyeui993HTKAEmrg8MUcSkZ77Gp2JcuZ"],"license":"MIT"},"src/interfaces/delegator/IOperatorSpecificDelegator.sol":{"keccak256":"0x72075cab585dc17240cc3e32bc99b92f0d5627ddd988fed680e3e1a52d5a01e4","urls":["bzz-raw://7448bc90699409ae61d85216b5efc2143a37f0f73354be2aea993bc54afca441","dweb:/ipfs/QmXE4gAxM8pHosZK8mcTcj17puBx484meDCcmrDePskGHZ"],"license":"MIT"},"src/interfaces/service/IOptInService.sol":{"keccak256":"0x76fb5460a6d87a5705433d4fbeff7253cd75b8bbd0c888b2088f16e86ace146a","urls":["bzz-raw://990322019b3d11465f7024bae77ccbf7e2fe5d6fa3c754584778f37d04fa1337","dweb:/ipfs/QmaSNHzcqxTkUCG9a4nqVfLECHLdjdrwAnDi3yDC7tDL24"],"license":"MIT"},"src/interfaces/slasher/IBaseSlasher.sol":{"keccak256":"0x7c82528b445659c313ab77335c407b0b6efe5e79027187bb287f7bc74202b404","urls":["bzz-raw://0274c90aa5df1aa6bb470a6aab53992fb14fd7e5472c9430416505b29647d9cf","dweb:/ipfs/QmckbmJLDetPemVzCnnGcKYWAZV2BRFXGDsjiaec8jkHxx"],"license":"MIT"},"src/interfaces/vault/IVault.sol":{"keccak256":"0xffee01d383cd4e1a5530c614bf4360c1ef070c288abec9da1eb531b51bc07235","urls":["bzz-raw://04f0046cac285d8ec44ebbb1f79dc94fab4495767190cad8364fbc1fafaadfb9","dweb:/ipfs/QmUawAunwzXfCyShWfhKeThAgKtqe51hmrxvrXvM772M2R"],"license":"MIT"},"src/interfaces/vault/IVaultStorage.sol":{"keccak256":"0x592626f13754194f83047135de19229c49390bd59e34659b1bb38be71d973a22","urls":["bzz-raw://06a6a9dfddd05e580b32bebe2cff4f63ba26a653180676d58225dd30d9c89d3e","dweb:/ipfs/QmdgzBeY6Sxo8mGtyBxtv1tM1c2kU6J6zjeRd7vuXm4DU6"],"license":"MIT"}},"version":1},"id":86} \ No newline at end of file diff --git a/out/DelegatorHints.sol/OperatorSpecificDelegatorHints.json b/out/DelegatorHints.sol/OperatorSpecificDelegatorHints.json index 874ccf82..d09eee0a 100644 --- a/out/DelegatorHints.sol/OperatorSpecificDelegatorHints.json +++ b/out/DelegatorHints.sol/OperatorSpecificDelegatorHints.json @@ -1 +1 @@ -{"abi":[{"type":"constructor","inputs":[{"name":"baseDelegatorHints","type":"address","internalType":"address"},{"name":"vaultHints","type":"address","internalType":"address"},{"name":"optInServiceHints","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"BASE_DELEGATOR_HINTS","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"DEFAULT_ADMIN_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"FACTORY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"HOOK_GAS_LIMIT","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"HOOK_RESERVE","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"HOOK_SET_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"NETWORK_LIMIT_SET_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"NETWORK_REGISTRY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"OPERATOR_NETWORK_OPT_IN_SERVICE","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"OPERATOR_REGISTRY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"OPERATOR_VAULT_OPT_IN_SERVICE","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"OPT_IN_SERVICE_HINTS","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"TYPE","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"VAULT_FACTORY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"VAULT_HINTS","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"VERSION","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"pure"},{"type":"function","name":"getRoleAdmin","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"grantRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"hasRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"hook","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"initialize","inputs":[{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"maxNetworkLimit","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"value","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"networkLimit","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"networkLimitAt","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"timestamp","type":"uint48","internalType":"uint48"},{"name":"hint","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"networkLimitHint","inputs":[{"name":"delegator","type":"address","internalType":"address"},{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"timestamp","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"networkLimitHintInternal","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"timestamp","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"exists","type":"bool","internalType":"bool"},{"name":"hint","type":"uint32","internalType":"uint32"}],"stateMutability":"view"},{"type":"function","name":"onSlash","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"captureTimestamp","type":"uint48","internalType":"uint48"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"operator","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"renounceRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"callerConfirmation","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"revokeRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setHook","inputs":[{"name":"hook_","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setMaxNetworkLimit","inputs":[{"name":"identifier","type":"uint96","internalType":"uint96"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setNetworkLimit","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"stake","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"stakeAt","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"timestamp","type":"uint48","internalType":"uint48"},{"name":"hints","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"stakeHints","inputs":[{"name":"delegator","type":"address","internalType":"address"},{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"timestamp","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"staticDelegateCall","inputs":[{"name":"target","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"vault","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"OnSlash","inputs":[{"name":"subnetwork","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"captureTimestamp","type":"uint48","indexed":false,"internalType":"uint48"}],"anonymous":false},{"type":"event","name":"RoleAdminChanged","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"previousAdminRole","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"newAdminRole","type":"bytes32","indexed":true,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"RoleGranted","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"sender","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"RoleRevoked","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"sender","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"SetHook","inputs":[{"name":"hook","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"SetMaxNetworkLimit","inputs":[{"name":"subnetwork","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"SetNetworkLimit","inputs":[{"name":"subnetwork","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"error","name":"AccessControlBadConfirmation","inputs":[]},{"type":"error","name":"AccessControlUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"neededRole","type":"bytes32","internalType":"bytes32"}]},{"type":"error","name":"AlreadySet","inputs":[]},{"type":"error","name":"CheckpointUnorderedInsertion","inputs":[]},{"type":"error","name":"DuplicateRoleHolder","inputs":[]},{"type":"error","name":"ExceedsMaxNetworkLimit","inputs":[]},{"type":"error","name":"ExternalCall","inputs":[]},{"type":"error","name":"InsufficientHookGas","inputs":[]},{"type":"error","name":"InvalidInitialization","inputs":[]},{"type":"error","name":"MissingRoleHolders","inputs":[]},{"type":"error","name":"NotInitialized","inputs":[]},{"type":"error","name":"NotInitializing","inputs":[]},{"type":"error","name":"NotNetwork","inputs":[]},{"type":"error","name":"NotOperator","inputs":[]},{"type":"error","name":"NotSlasher","inputs":[]},{"type":"error","name":"NotVault","inputs":[]},{"type":"error","name":"ReentrancyGuardReentrantCall","inputs":[]},{"type":"error","name":"SafeCastOverflowedUintDowncast","inputs":[{"name":"bits","type":"uint8","internalType":"uint8"},{"name":"value","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ZeroAddressRoleHolder","inputs":[]}],"bytecode":{"object":"0x6101e0346101d557601f61322e38819003918201601f19168301916001600160401b0391828411858510176101d95781606092869260409687528339810103126101d55761004c836101ed565b926100648361005d602084016101ed565b92016101ed565b91306080527ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a009081549060ff82871c166101c4578080831603610180575b5050505f60a0525f60c0525f60e052610100935f8552610120935f85526101405f8152610160915f83526101809384526101a09485526101c0958652519561302c978861020289396080518861048c015260a051886107a4015260c05188610f6c015260e0518881816105950152610fa50152518781816103bf0152612299015251868181610403015281816119720152611aa1015251858181610513015281816118d90152611b1f015251848181610dce0152612b10015251838181610d29015261149a015251828181610b0e015261153b01525181610e700152f35b6001600160401b0319909116811790915583519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a15f80806100a2565b855163f92ee8a960e01b8152600490fd5b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b51906001600160a01b03821682036101d55756fe60806040526004361015610011575f80fd5b5f3560e01c806301ffc9a714610284578063021453481461027f578063103f29071461027a578063128e5d8214610275578063197aa7ea146102705780631a80e5001461026b57806323f752d514610266578063248a9ca31461026157806325dc97081461025c5780632dd31000146102575780632f2ff15d1461025257806336568abe1461024d5780633dfd3873146102485780633eb22c0f14610243578063439fab911461023e57806345e78fcb14610239578063557cab4414610234578063570ca7351461022f5780635d32a1c91461022a5780636679191e1461022557806379d89614146102205780637d24bb271461021b5780637f5a7c7b1461021657806383ce03221461021157806391d148541461020c5780639b656b22146102075780639f86fd8514610202578063a217fddf146101fd578063bb24fe8a146101f8578063c0cd7c3e146101f3578063d15b740e146101ee578063d547741f146101e9578063da749d2b146101e4578063e02f6937146101df578063e49561ee146101da578063fbfa77cf146101d5578063fd4d447c146101d0578063ff54740f146101cb5763ffa1ad74146101c6575f80fd5b61132d565b611310565b6112e6565b6112bf565b6110d4565b61107f565b61104a565b610ffe565b610fd4565b610f90565b610f4d565b610f33565b610e9f565b610e5b565b610dfd565b610db9565b610d91565b610d58565b610d14565b610cda565b610c89565b610b59565b610b3d565b610af9565b6109c1565b610963565b61086a565b61081f565b6107d3565b61078f565b610736565b6106c8565b610542565b6104fe565b610471565b6103ee565b6103aa565b6102de565b346102da5760203660031901126102da5760043563ffffffff60e01b81168091036102da57602090637965db0b60e01b81149081156102c9575b506040519015158152f35b6301ffc9a760e01b1490505f6102be565b5f80fd5b346102da576040806003193601126102da576004359060243590610300611b94565b825f526002602052805f2054821161039a57825f52600360205281610326825f206121eb565b1461038a5781610385916103757e899d104fc3d8820bd96540612bcc5c448c8837b13b9f7faa43ad0728f0c14f94610366875f52600360205260405f2090565b61036f42612729565b90611c93565b5050519081529081906020820190565b0390a2005b5163a741a04560e01b8152600490fd5b51631eefc06360e31b8152600490fd5b346102da575f3660031901126102da576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346102da575f3660031901126102da576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b6024359065ffffffffffff821682036102da57565b6064359065ffffffffffff821682036102da57565b6044359065ffffffffffff821682036102da57565b346102da5760403660031901126102da5761048a610432565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633036104ec5763ffffffff6104d76040926004355f526003602052835f20611d79565b91505083929192519215158352166020820152f35b604051637ca475e560e11b8152600490fd5b346102da575f3660031901126102da576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346102da5760403660031901126102da576004356001600160601b03811681036102da5760243590610572611e88565b6040516302910f8b60e31b81523360048201526020816024816001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165afa9081156106c3575f91610694575b5015610682576001600160601b03166bffffffffffffffffffffffff193360601b161790806105fc835f52600260205260405f2090565b541461067057610655817fc67e7929681aa1bccd63f52b3799bf5805f3009f197db6fdf584b14f7fbf608c9261063a855f52600260205260405f2090565b556106458185611eb7565b6040519081529081906020820190565b0390a261066e60015f80516020612fb783398151915255565b005b60405163a741a04560e01b8152600490fd5b6040516323d53b9760e21b8152600490fd5b6106b6915060203d6020116106bc575b6106ae8183610beb565b810190611355565b5f6105c5565b503d6106a4565b61136c565b346102da5760203660031901126102da576004355f525f80516020612f978339815191526020526020600160405f200154604051908152f35b6001600160a01b038116036102da57565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b346102da5760803660031901126102da5761078b61077760043561075981610701565b60443561076581610701565b61076d610447565b9160243590611451565b604051918291602083526020830190610712565b0390f35b346102da575f3660031901126102da576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346102da5760403660031901126102da5761066e6024356004356107f682610701565b805f525f80516020612f9783398151915260205261081a600160405f200154611bf0565b612123565b346102da5760403660031901126102da5760243561083c81610701565b336001600160a01b038216036108585761066e90600435612159565b60405163334bd91960e11b8152600490fd5b346102da5760203660031901126102da5760043561088781610701565b61088f611e88565b335f9081527f9ebbcbe0d2961d3fbe56ca6f679bc753bd848d3e6bb3eaf9041c51b286881d2c60205260409020547fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c9060ff161561094557506001546001600160a01b039182169181168214610670576001600160a01b03191681176001557f5bbb1d3ebb6a3ad2a0f17ff35e579a83af60604d1d3c2a4c83c62adecadf666d5f80a260015f80516020612fb783398151915255005b6044906040519063e2517d3f60e01b82523360048301526024820152fd5b346102da5760203660031901126102da576004355f526003602052602061098c60405f206121eb565b604051908152f35b9181601f840112156102da578235916001600160401b0383116102da57602083818601950101116102da57565b346102da5760203660031901126102da576001600160401b036004358181116102da576109f2903690600401610994565b5f80516020612fd7833981519152549260ff8460401c1615931680159081610af1575b6001149081610ae7575b159081610ade575b50610acc575f80516020612fd7833981519152805467ffffffffffffffff19166001179055610a5a9183610aa857612264565b610a6057005b5f80516020612fd7833981519152805460ff60401b19169055604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a1005b5f80516020612fd7833981519152805460ff60401b1916600160401b179055612264565b60405163f92ee8a960e01b8152600490fd5b9050155f610a27565b303b159150610a1f565b849150610a15565b346102da575f3660031901126102da576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346102da575f3660031901126102da576020604051614e208152f35b346102da575f3660031901126102da576004546040516001600160a01b039091168152602090f35b634e487b7160e01b5f52604160045260245ffd5b604081019081106001600160401b03821117610bb057604052565b610b81565b606081019081106001600160401b03821117610bb057604052565b608081019081106001600160401b03821117610bb057604052565b90601f801991011681019081106001600160401b03821117610bb057604052565b60405190610c1982610bb5565b565b60405190610c1982610b95565b6001600160401b038111610bb057601f01601f191660200190565b81601f820112156102da57803590610c5a82610c28565b92610c686040519485610beb565b828452602083830101116102da57815f926020809301838601378301015290565b346102da5760603660031901126102da57610ca2610432565b6044356001600160401b0381116102da57602091610cc761098c923690600401610c43565b906004355f526003845260405f206123cb565b346102da575f3660031901126102da5760206040517fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c8152f35b346102da575f3660031901126102da576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346102da575f3660031901126102da5760206040517e8b9b1e5fa9cf3b14f87f435649268146305ddf689f082e5961a335b07a9abf8152f35b346102da575f3660031901126102da576001546040516001600160a01b039091168152602090f35b346102da575f3660031901126102da576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346102da5760403660031901126102da57602060ff610e4f602435610e2181610701565b6004355f525f80516020612f97833981519152845260405f209060018060a01b03165f5260205260405f2090565b54166040519015158152f35b346102da575f3660031901126102da576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346102da5760403660031901126102da57600435610ebc81610701565b6024356001600160401b0381116102da575f91610ede83923690600401610994565b90816040519283928337810184815203915af4610f2b610efc61164d565b91610f1d604051938492151560208401526040808401526060830190610712565b03601f198101835282610beb565b805190602001fd5b346102da575f3660031901126102da5760206040515f8152f35b346102da575f3660031901126102da5760206040516001600160401b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b346102da575f3660031901126102da576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346102da5760203660031901126102da576004355f526002602052602060405f2054604051908152f35b346102da5760403660031901126102da5761066e60243560043561102182610701565b805f525f80516020612f97833981519152602052611045600160405f200154611bf0565b612159565b346102da5760603660031901126102da5761078b61077760043561106d81610701565b61107561045c565b90602435906116ae565b346102da5760803660031901126102da5760243561109c81610701565b6110a461045c565b90606435906001600160401b0382116102da576020926110cb61098c933690600401610c43565b91600435611863565b346102da5760a03660031901126102da576024356004356110f482610701565b60443591611100610447565b90608435906001600160401b0382116102da5761112260049236908401610c43565b61112a611e88565b5f5460209061114f90611143906001600160a01b031681565b6001600160a01b031690565b60405163b134427160e01b815294859182905afa9283156106c3575f9361128e575b506001600160a01b03928316330361127c576001546001600160a01b03168381166111f1575b50506040805195865265ffffffffffff909316602086015216927f741a5de99085c0d660f3e4192217b0ffb0ea4e35a0480de48e857a4bc3ee36ed91819081015b0390a361066e60015f80516020612fb783398151915255565b9093604051946112288661121a602082019363724ab0f760e11b8552858c898d602487016119ed565b03601f198101885287610beb565b62042e305a1061126a575f6111d8938192827f741a5de99085c0d660f3e4192217b0ffb0ea4e35a0480de48e857a4bc3ee36ed9951926203d090f15093611197565b604051638072475160e01b8152600490fd5b60405163dabc4ad960e01b8152600490fd5b6112b191935060203d6020116112b8575b6112a98183610beb565b8101906113ed565b915f611171565b503d61129f565b346102da575f3660031901126102da575f546040516001600160a01b039091168152602090f35b346102da5760403660031901126102da57602061098c60243561130881610701565b600435611a6a565b346102da575f3660031901126102da5760206040516203d0908152f35b346102da575f3660031901126102da57602060405160018152f35b519081151582036102da57565b908160209103126102da5761136990611348565b90565b6040513d5f823e3d90fd5b81601f820112156102da5780519061138e82610c28565b9261139c6040519485610beb565b828452602083830101116102da57815f9260208093018386015e8301015290565b906020828203126102da5781516001600160401b0381116102da576113699201611377565b5190610c1982610701565b908160209103126102da575161136981610701565b9061136991602081526114218251606060208401526080830190610712565b9060606040611441602086015194601f1995868683030184870152610712565b9401519282850301910152610712565b604051630df8851f60e11b81526001600160a01b03828116600483015260248201849052938416604482015265ffffffffffff8516606482015260609594909391925f856084817f000000000000000000000000000000000000000000000000000000000000000087165afa9485156106c3575f9561161b575b5060405163fbfa77cf60e01b81526020816004818888165afa9081156106c357611537945f92859284916115fc575b5060405163192c0ff760e21b81526001600160a01b03909116600482015265ffffffffffff90921660248301529094859190829081906044820190565b03917f0000000000000000000000000000000000000000000000000000000000000000165afa9283156106c3575f936115d6575b5061157692936116ae565b908251158015906115cc575b80156115c2575b61159257505050565b610f1d9394509061136992916115a6610c0c565b9283526020830152604082015260405192839160208301611402565b5081511515611589565b5080511515611582565b61157693506115f6903d805f833e6115ee8183610beb565b8101906113bd565b9261156b565b611615915060203d6020116112b8576112a98183610beb565b5f6114fa565b6116309195503d805f833e6115ee8183610beb565b935f6114cb565b9061136992915f52600360205260405f206123cb565b3d15611677573d9061165e82610c28565b9161166c6040519384610beb565b82523d5f602084013e565b606090565b519063ffffffff821682036102da57565b91908260409103126102da5761136960206116a784611348565b930161167c565b92915f8060609565ffffffffffff60405194602096630cbd53f560e11b888801526024870152166044850152604484526116e784610bd0565b604051938461171487820192639f86fd8560e01b8452306024840152604060448401526064830190610712565b0394611728601f1996878101835282610beb565b51915afa5061174661173861164d565b8380825183010191016124a3565b90156117995780838061175e9351830101910161168d565b929061176957505050565b6113699293945061178d604051948592830191909163ffffffff6020820193169052565b03908101835282610beb565b809150519182156102da5701fd5b604051906117b482610b95565b60606020838281520152565b906020828203126102da5781516001600160401b03928382116102da5701906040828203126102da57604051926117f684610b95565b82518181116102da578261180b918501611377565b845260208301519081116102da576118239201611377565b602082015290565b6001600160a01b0391821681529116602082015265ffffffffffff909116604082015260806060820181905261136992910190610712565b92611873909291928284866125ac565b92909361187e6117a7565b938051806119d1575b5050841593841561193b575b84156118aa575b505050506118a55790565b505f90565b6020809495506118d5910151604051958694859463530e1d4360e01b865260601c906004860161182b565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa9081156106c3575f9161191c575b50155f80808061189a565b611935915060203d6020116106bc576106ae8183610beb565b5f611911565b5f549094506001600160a01b031660208486519261196e604051948593849363530e1d4360e01b8552896004860161182b565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa9081156106c3575f916119b2575b501593611893565b6119cb915060203d6020116106bc576106ae8183610beb565b5f6119aa565b6119e59295506020809183010191016117c0565b925f80611887565b919360a093611369969565ffffffffffff938552600180871b0316602085015260408401521660608201528160808201520190610712565b634e487b7160e01b5f52601160045260245ffd5b8115611a43570490565b634e487b7160e01b5f52601260045260245ffd5b9060018201809211611a6557565b611a25565b5f546040516308834cb560e21b8082526001600160a01b0385811660048401529283166024830152929392602092909183816044817f000000000000000000000000000000000000000000000000000000000000000086165afa9081156106c3575f91611b77575b5015918215611af3575b50509050611aed57611369916126a1565b50505f90565b6040519081526001600160a01b0385166004820152606086901c602482015291508290829060449082907f0000000000000000000000000000000000000000000000000000000000000000165afa9182156106c3575f92611b5a575b505015805f80611adc565b611b709250803d106106bc576106ae8183610beb565b5f80611b4f565b611b8e9150843d86116106bc576106ae8183610beb565b5f611ad2565b335f9081527f72a65082a5691803ab2b62c9bc729b34205ba1b183d950896526b2fd8714d0c7602052604090207e8b9b1e5fa9cf3b14f87f435649268146305ddf689f082e5961a335b07a9abf9060ff905b5416156109455750565b5f8181525f80516020612f9783398151915260209081526040808320338452909152902060ff90611be6565b634e487b7160e01b5f52603260045260245ffd5b8054821015611c45575f5260205f2001905f90565b611c1c565b90815491600160401b831015610bb05782611c6d916001610c1995018155611c30565b90919082549060031b91821b915f19901b1916179055565b5f19810191908211611a6557565b90929192600182019081548015611d25575b5084611cb08461275b565b50949092845493611cc0836121eb565b9681611d10575b5015611ced575050505f198101908111611a6557611c6d8591611ce993611c30565b9190565b611ce9949293611d09926001600160d01b039091169190612de6565b5050611c4a565b65ffffffffffff83811691161490505f611cc7565b600160401b811015610bb057806001611d419201845583611c30565b8154905f199060031b1b191690555f611ca5565b90604051611d6281610b95565b915465ffffffffffff8116835260301c6020830152565b91908254905f829160058411611e21575b611d959350856128dd565b908115611e1557611e0e611e05611dff611df5611dc7611dc2611db788611c85565b895f5260205f200190565b611d55565b966001611dee6020611ddf8b5165ffffffffffff1690565b9a01516001600160d01b031690565b9101611c30565b90549060031b1c90565b93611c85565b63ffffffff1690565b6001939291565b5f925082915081908190565b9192611e2c816127aa565b8103908111611a6557611d9593865f52611e60611e558360205f200165ffffffffffff90541690565b65ffffffffffff1690565b65ffffffffffff85161015611e76575091611d8a565b929150611e8290611a57565b90611d8a565b5f80516020612fb78339815191526002815414611ea55760029055565b604051633ee5aeb560e01b8152600490fd5b90815f52600360205260405f2081611ece8261275b565b919390508315611f2c57611eee916001600160d01b031690600101611c30565b90549060031b1c5b82611f22575b5050611f06575050565b611f1e915f52600360205260405f2061036f42612729565b5050565b119050815f611efc565b50505f611ef6565b6001600160a01b0381165f9081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d60205260409020545f80516020612f978339815191529060ff16611aed575f808052602091825260408082206001600160a01b038516835290925220805460ff1916600117905533906001600160a01b03165f7f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d8180a4600190565b6001600160a01b0381165f9081527f9ebbcbe0d2961d3fbe56ca6f679bc753bd848d3e6bb3eaf9041c51b286881d2c602052604090207fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c905f80516020612f978339815191529060ff905b54166120ae575f828152602091825260408082206001600160a01b038616835290925220805460ff1916600117905533916001600160a01b0316907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d5f80a4600190565b5050505f90565b6001600160a01b0381165f9081527f72a65082a5691803ab2b62c9bc729b34205ba1b183d950896526b2fd8714d0c7602052604090207e8b9b1e5fa9cf3b14f87f435649268146305ddf689f082e5961a335b07a9abf905f80516020612f978339815191529060ff9061204a565b5f8181525f80516020612f97833981519152602081815260408084206001600160a01b038716855290915290912060ff9061204a565b5f8181525f80516020612f97833981519152602081815260408084206001600160a01b03871685529091529091205460ff16156120ae575f828152602091825260408082206001600160a01b038616835290925220805460ff1916905533916001600160a01b0316907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b5f80a4600190565b80548061221057505f5b6001600160d01b03811615611aed576001611df59201611c30565b5f19908082810111611a6557825f5260205f2001015460301c6121f5565b9190916040818403126102da57803561224681610701565b9260208201356001600160401b0381116102da576113699201610c43565b6122709181019061222e565b6040516302910f8b60e31b81526001600160a01b039283166004820181905291906020816024817f000000000000000000000000000000000000000000000000000000000000000088165afa9081156106c3575f91612383575b50156123715761230560409161230061234b946122e5612934565b60018060a01b03166001600160601b0360a01b5f5416175f55565b612aa0565b6020810151600180546001600160a01b0319166001600160a01b0390921691909117905580516001600160a01b0316848116612361575b5001516001600160a01b031690565b9081166123555750565b61235e90611fdf565b50565b61236a90611f34565b505f61233c565b6040516362df054560e01b8152600490fd5b61239c915060203d6020116106bc576106ae8183610beb565b5f6122ca565b908160209103126102da576113699061167c565b90600163ffffffff80931601918211611a6557565b9180511561249957806020806123e6935183010191016123a2565b916123f18382612d11565b92612402845165ffffffffffff1690565b9065ffffffffffff808516921682811461248d5782119182612438575b505061242f576113699250612c41565b50506020015190565b9091506124458354611c85565b63ffffffff83161491821561245e575b50505f8061241f565b612485919250612479612473611e55926123b6565b85612d11565b5165ffffffffffff1690565b115f80612455565b50505050506020015190565b5061136991612c41565b9190916040818403126102da576124b981611348565b9260208201516001600160401b0381116102da576113699201611377565b604051906124e482610bb5565b60606040838281528260208201520152565b906020828203126102da5781516001600160401b03928382116102da5701906060828203126102da576040519261252c84610bb5565b82518181116102da5782612541918501611377565b845260208301518181116102da578261255b918501611377565b602085015260408301519081116102da576125769201611377565b604082015290565b908160209103126102da575190565b60409065ffffffffffff61136994931681528160208201520190610712565b909392936125b86124d7565b94805180612685575b50506004546001600160a01b0391821691160361267d575f546126189291906020906125f790611143906001600160a01b031681565b8187015190604051808097819463810da75d60e01b8352886004840161258d565b03915afa9081156106c357612645935f9261264a575b5061263f9192604087015191611637565b90612d79565b915190565b61263f92506126709060203d602011612676575b6126688183610beb565b81019061257e565b9161262e565b503d61265e565b505090515f91565b6126999296506020809183010191016124f6565b935f806125c1565b6004546001600160a01b039290831690831603611aed5760206004925f54166040519384809263bd49c35f60e01b82525afa9081156106c357611369925f92612700575b506126fb61263f915f52600360205260405f2090565b6121eb565b61263f9192506127216126fb9160203d602011612676576126688183610beb565b9291506126e5565b65ffffffffffff9081811161273c571690565b604490604051906306dfcc6560e41b8252603060048301526024820152fd5b80548061276c5750505f905f905f90565b5f19908082810111611a6557612789925f5260205f200101611d55565b9065ffffffffffff82511691602060018060d01b0391015116906001929190565b80156118a5578061263f61287561286b61286161285761284d61284361283960016113699a5f908b60801c806128d1575b508060401c806128c4575b508060201c806128b7575b508060101c806128aa575b508060081c8061289d575b508060041c80612890575b508060021c80612883575b50821c61287c575b811c1b612832818b611a39565b0160011c90565b612832818a611a39565b6128328189611a39565b6128328188611a39565b6128328187611a39565b6128328186611a39565b6128328185611a39565b8092611a39565b8101612825565b600291509101905f61281d565b600491509101905f612812565b600891509101905f612807565b601091509101905f6127fc565b602091509101905f6127f1565b604091509101905f6127e6565b9150506080905f6127db565b905b8383106128ec5750505090565b9091926128f98185612efc565b90835f5265ffffffffffff808360205f20015416908416105f146129215750925b91906128df565b9350600181018091111561291a57611a25565b61293c612f11565b612944612f11565b60015f80516020612fb783398151915255565b6040519061296482610bb5565b5f6040838281528260208201520152565b81601f820112156102da578051916020916001600160401b038411610bb0578360051b90604051946129a985840187610beb565b855283808601928201019283116102da578301905b8282106129cc575050505090565b83809183516129da81610701565b8152019101906129be565b6020818303126102da5780516001600160401b03918282116102da5701918281039260a084126102da57606060405194612a1e86610bb5565b126102da57604051612a2f81610bb5565b8151612a3a81610701565b81526020820151612a4a81610701565b60208201526040820151612a5d81610701565b6040820152845260608101519283116102da57612a81608092612576948301612975565b6020850152016113e2565b8051821015611c455760209160051b010190565b612aa8612957565b50612abe815191602080809483010191016129e5565b8051516001600160a01b0393919084161580612c35575b612c23576040818101805182516302910f8b60e31b81526001600160a01b0390911660048083019190915296929491928690829060249082907f0000000000000000000000000000000000000000000000000000000000000000165afa9081156106c3575f91612c06575b5015612bf45791938401915f5b83518051821015612bc357611143612b6883612b7593612a8c565b516001600160a01b031690565b15612bb357612b97612b93612b8e612b68848851612a8c565b6120b5565b1590565b612ba357600101612b4d565b8451635140fefd60e11b81528790fd5b84516323cda06760e01b81528790fd5b50509051600480546001600160a01b0319166001600160a01b039092169190911790559350612bf0915050565b5190565b604051631f0853c160e21b8152600490fd5b612c1d9150863d88116106bc576106ae8183610beb565b5f612b40565b6040516303501f5960e11b8152600490fd5b50828101515115612ad5565b908154905f829160058411612cab575b612c5c935084612f3f565b80612c8457505f905b6001600160d01b03821615611aed57611369916001611df59201611c30565b612c9e612c93612ca592611c85565b835f5260205f200190565b5460301c90565b90612c65565b9192612cb6816127aa565b8103908111611a6557612c5c93855f5265ffffffffffff808360205f20015416908516105f14612ce7575091612c51565b929150612cf390611a57565b90612c51565b60405190612d0682610b95565b5f6020838281520152565b90612d3a612d34612d5b92612d24612cf9565b50612d2d612cf9565b5084611c30565b50611d55565b91600165ffffffffffff845116936020828060d01b03910151169101611c30565b90549060405192612d6b84610b95565b835260031b1c602082015290565b9080821015612d86575090565b905090565b8054600160401b811015610bb057612da891600182018155611c30565b612dd357815160209092015160301b65ffffffffffff191665ffffffffffff92909216919091179055565b634e487b7160e01b5f525f60045260245ffd5b805492939291908215612ed357612e02611dc2612c9385611c85565b90612e13825165ffffffffffff1690565b65ffffffffffff84811691168110612ec157611ce9946020948892612e41611e55875165ffffffffffff1690565b03612e895750612e7b92612e57612e6292611c85565b905f5260205f200190565b9065ffffffffffff82549181199060301b169116179055565b01516001600160d01b031690565b915050612ebc91612ea9612e9b610c1b565b65ffffffffffff9093168352565b6001600160d01b03881682860152612d8b565b612e7b565b604051632520601d60e01b8152600490fd5b612ef79250612ee3612e9b610c1b565b6001600160d01b0385166020830152612d8b565b5f9190565b90808216911860011c8101809111611a655790565b60ff5f80516020612fd78339815191525460401c1615612f2d57565b604051631afcd79f60e31b8152600490fd5b905b838310612f4e5750505090565b909192612f5b8185612efc565b90835f5265ffffffffffff808360205f20015416908416105f14612f835750925b9190612f41565b93506001810180911115612f7c57611a2556fe02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268009b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a26469706673582212202077fedb9993c6133279d30f1d446f0f32fbff7e0bf1efb91c3d996684e117c464736f6c63430008190033","sourceMap":"11341:2310:81:-:0;;;;;;;;;;;;;-1:-1:-1;;11341:2310:81;;;;-1:-1:-1;;;;;11341:2310:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;:::i;:::-;348:4:82;;332:21;;8837:64:25;11341:2310:81;;;;;;;;;7896:76:25;;11341:2310:81;;;;7985:34:25;7981:146;;-1:-1:-1;525:17:69;;;-1:-1:-1;525:17:69;;-1:-1:-1;552:12:69;;-1:-1:-1;2360:34:76;;2404:28;;-1:-1:-1;2404:28:76;;2442:57;;-1:-1:-1;2442:57:76;;2509:61;-1:-1:-1;2509:61:76;;1716:36:80;;-1:-1:-1;1716:36:80;;11845:41:81;;;;11896:24;;;;11930:40;;;;11341:2310;;;;;;;;332:21:82;11341:2310:81;;;;;525:17:69;11341:2310:81;;;;;552:12:69;11341:2310:81;;;;;2360:34:76;11341:2310:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7981:146:25;-1:-1:-1;;;;;;11341:2310:81;;;;;;;;;;;;;8087:29:25;;11341:2310:81;;8087:29:25;7981:146;;;;;7896:76;11341:2310:81;;-1:-1:-1;;;7938:23:25;;;;;11341:2310:81;-1:-1:-1;11341:2310:81;;;;;;-1:-1:-1;11341:2310:81;;;;;-1:-1:-1;11341:2310:81;;;;-1:-1:-1;;;;;11341:2310:81;;;;;;:::o","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361015610011575f80fd5b5f3560e01c806301ffc9a714610284578063021453481461027f578063103f29071461027a578063128e5d8214610275578063197aa7ea146102705780631a80e5001461026b57806323f752d514610266578063248a9ca31461026157806325dc97081461025c5780632dd31000146102575780632f2ff15d1461025257806336568abe1461024d5780633dfd3873146102485780633eb22c0f14610243578063439fab911461023e57806345e78fcb14610239578063557cab4414610234578063570ca7351461022f5780635d32a1c91461022a5780636679191e1461022557806379d89614146102205780637d24bb271461021b5780637f5a7c7b1461021657806383ce03221461021157806391d148541461020c5780639b656b22146102075780639f86fd8514610202578063a217fddf146101fd578063bb24fe8a146101f8578063c0cd7c3e146101f3578063d15b740e146101ee578063d547741f146101e9578063da749d2b146101e4578063e02f6937146101df578063e49561ee146101da578063fbfa77cf146101d5578063fd4d447c146101d0578063ff54740f146101cb5763ffa1ad74146101c6575f80fd5b61132d565b611310565b6112e6565b6112bf565b6110d4565b61107f565b61104a565b610ffe565b610fd4565b610f90565b610f4d565b610f33565b610e9f565b610e5b565b610dfd565b610db9565b610d91565b610d58565b610d14565b610cda565b610c89565b610b59565b610b3d565b610af9565b6109c1565b610963565b61086a565b61081f565b6107d3565b61078f565b610736565b6106c8565b610542565b6104fe565b610471565b6103ee565b6103aa565b6102de565b346102da5760203660031901126102da5760043563ffffffff60e01b81168091036102da57602090637965db0b60e01b81149081156102c9575b506040519015158152f35b6301ffc9a760e01b1490505f6102be565b5f80fd5b346102da576040806003193601126102da576004359060243590610300611b94565b825f526002602052805f2054821161039a57825f52600360205281610326825f206121eb565b1461038a5781610385916103757e899d104fc3d8820bd96540612bcc5c448c8837b13b9f7faa43ad0728f0c14f94610366875f52600360205260405f2090565b61036f42612729565b90611c93565b5050519081529081906020820190565b0390a2005b5163a741a04560e01b8152600490fd5b51631eefc06360e31b8152600490fd5b346102da575f3660031901126102da576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346102da575f3660031901126102da576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b6024359065ffffffffffff821682036102da57565b6064359065ffffffffffff821682036102da57565b6044359065ffffffffffff821682036102da57565b346102da5760403660031901126102da5761048a610432565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633036104ec5763ffffffff6104d76040926004355f526003602052835f20611d79565b91505083929192519215158352166020820152f35b604051637ca475e560e11b8152600490fd5b346102da575f3660031901126102da576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346102da5760403660031901126102da576004356001600160601b03811681036102da5760243590610572611e88565b6040516302910f8b60e31b81523360048201526020816024816001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165afa9081156106c3575f91610694575b5015610682576001600160601b03166bffffffffffffffffffffffff193360601b161790806105fc835f52600260205260405f2090565b541461067057610655817fc67e7929681aa1bccd63f52b3799bf5805f3009f197db6fdf584b14f7fbf608c9261063a855f52600260205260405f2090565b556106458185611eb7565b6040519081529081906020820190565b0390a261066e60015f80516020612fb783398151915255565b005b60405163a741a04560e01b8152600490fd5b6040516323d53b9760e21b8152600490fd5b6106b6915060203d6020116106bc575b6106ae8183610beb565b810190611355565b5f6105c5565b503d6106a4565b61136c565b346102da5760203660031901126102da576004355f525f80516020612f978339815191526020526020600160405f200154604051908152f35b6001600160a01b038116036102da57565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b346102da5760803660031901126102da5761078b61077760043561075981610701565b60443561076581610701565b61076d610447565b9160243590611451565b604051918291602083526020830190610712565b0390f35b346102da575f3660031901126102da576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346102da5760403660031901126102da5761066e6024356004356107f682610701565b805f525f80516020612f9783398151915260205261081a600160405f200154611bf0565b612123565b346102da5760403660031901126102da5760243561083c81610701565b336001600160a01b038216036108585761066e90600435612159565b60405163334bd91960e11b8152600490fd5b346102da5760203660031901126102da5760043561088781610701565b61088f611e88565b335f9081527f9ebbcbe0d2961d3fbe56ca6f679bc753bd848d3e6bb3eaf9041c51b286881d2c60205260409020547fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c9060ff161561094557506001546001600160a01b039182169181168214610670576001600160a01b03191681176001557f5bbb1d3ebb6a3ad2a0f17ff35e579a83af60604d1d3c2a4c83c62adecadf666d5f80a260015f80516020612fb783398151915255005b6044906040519063e2517d3f60e01b82523360048301526024820152fd5b346102da5760203660031901126102da576004355f526003602052602061098c60405f206121eb565b604051908152f35b9181601f840112156102da578235916001600160401b0383116102da57602083818601950101116102da57565b346102da5760203660031901126102da576001600160401b036004358181116102da576109f2903690600401610994565b5f80516020612fd7833981519152549260ff8460401c1615931680159081610af1575b6001149081610ae7575b159081610ade575b50610acc575f80516020612fd7833981519152805467ffffffffffffffff19166001179055610a5a9183610aa857612264565b610a6057005b5f80516020612fd7833981519152805460ff60401b19169055604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a1005b5f80516020612fd7833981519152805460ff60401b1916600160401b179055612264565b60405163f92ee8a960e01b8152600490fd5b9050155f610a27565b303b159150610a1f565b849150610a15565b346102da575f3660031901126102da576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346102da575f3660031901126102da576020604051614e208152f35b346102da575f3660031901126102da576004546040516001600160a01b039091168152602090f35b634e487b7160e01b5f52604160045260245ffd5b604081019081106001600160401b03821117610bb057604052565b610b81565b606081019081106001600160401b03821117610bb057604052565b608081019081106001600160401b03821117610bb057604052565b90601f801991011681019081106001600160401b03821117610bb057604052565b60405190610c1982610bb5565b565b60405190610c1982610b95565b6001600160401b038111610bb057601f01601f191660200190565b81601f820112156102da57803590610c5a82610c28565b92610c686040519485610beb565b828452602083830101116102da57815f926020809301838601378301015290565b346102da5760603660031901126102da57610ca2610432565b6044356001600160401b0381116102da57602091610cc761098c923690600401610c43565b906004355f526003845260405f206123cb565b346102da575f3660031901126102da5760206040517fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c8152f35b346102da575f3660031901126102da576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346102da575f3660031901126102da5760206040517e8b9b1e5fa9cf3b14f87f435649268146305ddf689f082e5961a335b07a9abf8152f35b346102da575f3660031901126102da576001546040516001600160a01b039091168152602090f35b346102da575f3660031901126102da576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346102da5760403660031901126102da57602060ff610e4f602435610e2181610701565b6004355f525f80516020612f97833981519152845260405f209060018060a01b03165f5260205260405f2090565b54166040519015158152f35b346102da575f3660031901126102da576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346102da5760403660031901126102da57600435610ebc81610701565b6024356001600160401b0381116102da575f91610ede83923690600401610994565b90816040519283928337810184815203915af4610f2b610efc61164d565b91610f1d604051938492151560208401526040808401526060830190610712565b03601f198101835282610beb565b805190602001fd5b346102da575f3660031901126102da5760206040515f8152f35b346102da575f3660031901126102da5760206040516001600160401b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b346102da575f3660031901126102da576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346102da5760203660031901126102da576004355f526002602052602060405f2054604051908152f35b346102da5760403660031901126102da5761066e60243560043561102182610701565b805f525f80516020612f97833981519152602052611045600160405f200154611bf0565b612159565b346102da5760603660031901126102da5761078b61077760043561106d81610701565b61107561045c565b90602435906116ae565b346102da5760803660031901126102da5760243561109c81610701565b6110a461045c565b90606435906001600160401b0382116102da576020926110cb61098c933690600401610c43565b91600435611863565b346102da5760a03660031901126102da576024356004356110f482610701565b60443591611100610447565b90608435906001600160401b0382116102da5761112260049236908401610c43565b61112a611e88565b5f5460209061114f90611143906001600160a01b031681565b6001600160a01b031690565b60405163b134427160e01b815294859182905afa9283156106c3575f9361128e575b506001600160a01b03928316330361127c576001546001600160a01b03168381166111f1575b50506040805195865265ffffffffffff909316602086015216927f741a5de99085c0d660f3e4192217b0ffb0ea4e35a0480de48e857a4bc3ee36ed91819081015b0390a361066e60015f80516020612fb783398151915255565b9093604051946112288661121a602082019363724ab0f760e11b8552858c898d602487016119ed565b03601f198101885287610beb565b62042e305a1061126a575f6111d8938192827f741a5de99085c0d660f3e4192217b0ffb0ea4e35a0480de48e857a4bc3ee36ed9951926203d090f15093611197565b604051638072475160e01b8152600490fd5b60405163dabc4ad960e01b8152600490fd5b6112b191935060203d6020116112b8575b6112a98183610beb565b8101906113ed565b915f611171565b503d61129f565b346102da575f3660031901126102da575f546040516001600160a01b039091168152602090f35b346102da5760403660031901126102da57602061098c60243561130881610701565b600435611a6a565b346102da575f3660031901126102da5760206040516203d0908152f35b346102da575f3660031901126102da57602060405160018152f35b519081151582036102da57565b908160209103126102da5761136990611348565b90565b6040513d5f823e3d90fd5b81601f820112156102da5780519061138e82610c28565b9261139c6040519485610beb565b828452602083830101116102da57815f9260208093018386015e8301015290565b906020828203126102da5781516001600160401b0381116102da576113699201611377565b5190610c1982610701565b908160209103126102da575161136981610701565b9061136991602081526114218251606060208401526080830190610712565b9060606040611441602086015194601f1995868683030184870152610712565b9401519282850301910152610712565b604051630df8851f60e11b81526001600160a01b03828116600483015260248201849052938416604482015265ffffffffffff8516606482015260609594909391925f856084817f000000000000000000000000000000000000000000000000000000000000000087165afa9485156106c3575f9561161b575b5060405163fbfa77cf60e01b81526020816004818888165afa9081156106c357611537945f92859284916115fc575b5060405163192c0ff760e21b81526001600160a01b03909116600482015265ffffffffffff90921660248301529094859190829081906044820190565b03917f0000000000000000000000000000000000000000000000000000000000000000165afa9283156106c3575f936115d6575b5061157692936116ae565b908251158015906115cc575b80156115c2575b61159257505050565b610f1d9394509061136992916115a6610c0c565b9283526020830152604082015260405192839160208301611402565b5081511515611589565b5080511515611582565b61157693506115f6903d805f833e6115ee8183610beb565b8101906113bd565b9261156b565b611615915060203d6020116112b8576112a98183610beb565b5f6114fa565b6116309195503d805f833e6115ee8183610beb565b935f6114cb565b9061136992915f52600360205260405f206123cb565b3d15611677573d9061165e82610c28565b9161166c6040519384610beb565b82523d5f602084013e565b606090565b519063ffffffff821682036102da57565b91908260409103126102da5761136960206116a784611348565b930161167c565b92915f8060609565ffffffffffff60405194602096630cbd53f560e11b888801526024870152166044850152604484526116e784610bd0565b604051938461171487820192639f86fd8560e01b8452306024840152604060448401526064830190610712565b0394611728601f1996878101835282610beb565b51915afa5061174661173861164d565b8380825183010191016124a3565b90156117995780838061175e9351830101910161168d565b929061176957505050565b6113699293945061178d604051948592830191909163ffffffff6020820193169052565b03908101835282610beb565b809150519182156102da5701fd5b604051906117b482610b95565b60606020838281520152565b906020828203126102da5781516001600160401b03928382116102da5701906040828203126102da57604051926117f684610b95565b82518181116102da578261180b918501611377565b845260208301519081116102da576118239201611377565b602082015290565b6001600160a01b0391821681529116602082015265ffffffffffff909116604082015260806060820181905261136992910190610712565b92611873909291928284866125ac565b92909361187e6117a7565b938051806119d1575b5050841593841561193b575b84156118aa575b505050506118a55790565b505f90565b6020809495506118d5910151604051958694859463530e1d4360e01b865260601c906004860161182b565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa9081156106c3575f9161191c575b50155f80808061189a565b611935915060203d6020116106bc576106ae8183610beb565b5f611911565b5f549094506001600160a01b031660208486519261196e604051948593849363530e1d4360e01b8552896004860161182b565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa9081156106c3575f916119b2575b501593611893565b6119cb915060203d6020116106bc576106ae8183610beb565b5f6119aa565b6119e59295506020809183010191016117c0565b925f80611887565b919360a093611369969565ffffffffffff938552600180871b0316602085015260408401521660608201528160808201520190610712565b634e487b7160e01b5f52601160045260245ffd5b8115611a43570490565b634e487b7160e01b5f52601260045260245ffd5b9060018201809211611a6557565b611a25565b5f546040516308834cb560e21b8082526001600160a01b0385811660048401529283166024830152929392602092909183816044817f000000000000000000000000000000000000000000000000000000000000000086165afa9081156106c3575f91611b77575b5015918215611af3575b50509050611aed57611369916126a1565b50505f90565b6040519081526001600160a01b0385166004820152606086901c602482015291508290829060449082907f0000000000000000000000000000000000000000000000000000000000000000165afa9182156106c3575f92611b5a575b505015805f80611adc565b611b709250803d106106bc576106ae8183610beb565b5f80611b4f565b611b8e9150843d86116106bc576106ae8183610beb565b5f611ad2565b335f9081527f72a65082a5691803ab2b62c9bc729b34205ba1b183d950896526b2fd8714d0c7602052604090207e8b9b1e5fa9cf3b14f87f435649268146305ddf689f082e5961a335b07a9abf9060ff905b5416156109455750565b5f8181525f80516020612f9783398151915260209081526040808320338452909152902060ff90611be6565b634e487b7160e01b5f52603260045260245ffd5b8054821015611c45575f5260205f2001905f90565b611c1c565b90815491600160401b831015610bb05782611c6d916001610c1995018155611c30565b90919082549060031b91821b915f19901b1916179055565b5f19810191908211611a6557565b90929192600182019081548015611d25575b5084611cb08461275b565b50949092845493611cc0836121eb565b9681611d10575b5015611ced575050505f198101908111611a6557611c6d8591611ce993611c30565b9190565b611ce9949293611d09926001600160d01b039091169190612de6565b5050611c4a565b65ffffffffffff83811691161490505f611cc7565b600160401b811015610bb057806001611d419201845583611c30565b8154905f199060031b1b191690555f611ca5565b90604051611d6281610b95565b915465ffffffffffff8116835260301c6020830152565b91908254905f829160058411611e21575b611d959350856128dd565b908115611e1557611e0e611e05611dff611df5611dc7611dc2611db788611c85565b895f5260205f200190565b611d55565b966001611dee6020611ddf8b5165ffffffffffff1690565b9a01516001600160d01b031690565b9101611c30565b90549060031b1c90565b93611c85565b63ffffffff1690565b6001939291565b5f925082915081908190565b9192611e2c816127aa565b8103908111611a6557611d9593865f52611e60611e558360205f200165ffffffffffff90541690565b65ffffffffffff1690565b65ffffffffffff85161015611e76575091611d8a565b929150611e8290611a57565b90611d8a565b5f80516020612fb78339815191526002815414611ea55760029055565b604051633ee5aeb560e01b8152600490fd5b90815f52600360205260405f2081611ece8261275b565b919390508315611f2c57611eee916001600160d01b031690600101611c30565b90549060031b1c5b82611f22575b5050611f06575050565b611f1e915f52600360205260405f2061036f42612729565b5050565b119050815f611efc565b50505f611ef6565b6001600160a01b0381165f9081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d60205260409020545f80516020612f978339815191529060ff16611aed575f808052602091825260408082206001600160a01b038516835290925220805460ff1916600117905533906001600160a01b03165f7f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d8180a4600190565b6001600160a01b0381165f9081527f9ebbcbe0d2961d3fbe56ca6f679bc753bd848d3e6bb3eaf9041c51b286881d2c602052604090207fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c905f80516020612f978339815191529060ff905b54166120ae575f828152602091825260408082206001600160a01b038616835290925220805460ff1916600117905533916001600160a01b0316907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d5f80a4600190565b5050505f90565b6001600160a01b0381165f9081527f72a65082a5691803ab2b62c9bc729b34205ba1b183d950896526b2fd8714d0c7602052604090207e8b9b1e5fa9cf3b14f87f435649268146305ddf689f082e5961a335b07a9abf905f80516020612f978339815191529060ff9061204a565b5f8181525f80516020612f97833981519152602081815260408084206001600160a01b038716855290915290912060ff9061204a565b5f8181525f80516020612f97833981519152602081815260408084206001600160a01b03871685529091529091205460ff16156120ae575f828152602091825260408082206001600160a01b038616835290925220805460ff1916905533916001600160a01b0316907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b5f80a4600190565b80548061221057505f5b6001600160d01b03811615611aed576001611df59201611c30565b5f19908082810111611a6557825f5260205f2001015460301c6121f5565b9190916040818403126102da57803561224681610701565b9260208201356001600160401b0381116102da576113699201610c43565b6122709181019061222e565b6040516302910f8b60e31b81526001600160a01b039283166004820181905291906020816024817f000000000000000000000000000000000000000000000000000000000000000088165afa9081156106c3575f91612383575b50156123715761230560409161230061234b946122e5612934565b60018060a01b03166001600160601b0360a01b5f5416175f55565b612aa0565b6020810151600180546001600160a01b0319166001600160a01b0390921691909117905580516001600160a01b0316848116612361575b5001516001600160a01b031690565b9081166123555750565b61235e90611fdf565b50565b61236a90611f34565b505f61233c565b6040516362df054560e01b8152600490fd5b61239c915060203d6020116106bc576106ae8183610beb565b5f6122ca565b908160209103126102da576113699061167c565b90600163ffffffff80931601918211611a6557565b9180511561249957806020806123e6935183010191016123a2565b916123f18382612d11565b92612402845165ffffffffffff1690565b9065ffffffffffff808516921682811461248d5782119182612438575b505061242f576113699250612c41565b50506020015190565b9091506124458354611c85565b63ffffffff83161491821561245e575b50505f8061241f565b612485919250612479612473611e55926123b6565b85612d11565b5165ffffffffffff1690565b115f80612455565b50505050506020015190565b5061136991612c41565b9190916040818403126102da576124b981611348565b9260208201516001600160401b0381116102da576113699201611377565b604051906124e482610bb5565b60606040838281528260208201520152565b906020828203126102da5781516001600160401b03928382116102da5701906060828203126102da576040519261252c84610bb5565b82518181116102da5782612541918501611377565b845260208301518181116102da578261255b918501611377565b602085015260408301519081116102da576125769201611377565b604082015290565b908160209103126102da575190565b60409065ffffffffffff61136994931681528160208201520190610712565b909392936125b86124d7565b94805180612685575b50506004546001600160a01b0391821691160361267d575f546126189291906020906125f790611143906001600160a01b031681565b8187015190604051808097819463810da75d60e01b8352886004840161258d565b03915afa9081156106c357612645935f9261264a575b5061263f9192604087015191611637565b90612d79565b915190565b61263f92506126709060203d602011612676575b6126688183610beb565b81019061257e565b9161262e565b503d61265e565b505090515f91565b6126999296506020809183010191016124f6565b935f806125c1565b6004546001600160a01b039290831690831603611aed5760206004925f54166040519384809263bd49c35f60e01b82525afa9081156106c357611369925f92612700575b506126fb61263f915f52600360205260405f2090565b6121eb565b61263f9192506127216126fb9160203d602011612676576126688183610beb565b9291506126e5565b65ffffffffffff9081811161273c571690565b604490604051906306dfcc6560e41b8252603060048301526024820152fd5b80548061276c5750505f905f905f90565b5f19908082810111611a6557612789925f5260205f200101611d55565b9065ffffffffffff82511691602060018060d01b0391015116906001929190565b80156118a5578061263f61287561286b61286161285761284d61284361283960016113699a5f908b60801c806128d1575b508060401c806128c4575b508060201c806128b7575b508060101c806128aa575b508060081c8061289d575b508060041c80612890575b508060021c80612883575b50821c61287c575b811c1b612832818b611a39565b0160011c90565b612832818a611a39565b6128328189611a39565b6128328188611a39565b6128328187611a39565b6128328186611a39565b6128328185611a39565b8092611a39565b8101612825565b600291509101905f61281d565b600491509101905f612812565b600891509101905f612807565b601091509101905f6127fc565b602091509101905f6127f1565b604091509101905f6127e6565b9150506080905f6127db565b905b8383106128ec5750505090565b9091926128f98185612efc565b90835f5265ffffffffffff808360205f20015416908416105f146129215750925b91906128df565b9350600181018091111561291a57611a25565b61293c612f11565b612944612f11565b60015f80516020612fb783398151915255565b6040519061296482610bb5565b5f6040838281528260208201520152565b81601f820112156102da578051916020916001600160401b038411610bb0578360051b90604051946129a985840187610beb565b855283808601928201019283116102da578301905b8282106129cc575050505090565b83809183516129da81610701565b8152019101906129be565b6020818303126102da5780516001600160401b03918282116102da5701918281039260a084126102da57606060405194612a1e86610bb5565b126102da57604051612a2f81610bb5565b8151612a3a81610701565b81526020820151612a4a81610701565b60208201526040820151612a5d81610701565b6040820152845260608101519283116102da57612a81608092612576948301612975565b6020850152016113e2565b8051821015611c455760209160051b010190565b612aa8612957565b50612abe815191602080809483010191016129e5565b8051516001600160a01b0393919084161580612c35575b612c23576040818101805182516302910f8b60e31b81526001600160a01b0390911660048083019190915296929491928690829060249082907f0000000000000000000000000000000000000000000000000000000000000000165afa9081156106c3575f91612c06575b5015612bf45791938401915f5b83518051821015612bc357611143612b6883612b7593612a8c565b516001600160a01b031690565b15612bb357612b97612b93612b8e612b68848851612a8c565b6120b5565b1590565b612ba357600101612b4d565b8451635140fefd60e11b81528790fd5b84516323cda06760e01b81528790fd5b50509051600480546001600160a01b0319166001600160a01b039092169190911790559350612bf0915050565b5190565b604051631f0853c160e21b8152600490fd5b612c1d9150863d88116106bc576106ae8183610beb565b5f612b40565b6040516303501f5960e11b8152600490fd5b50828101515115612ad5565b908154905f829160058411612cab575b612c5c935084612f3f565b80612c8457505f905b6001600160d01b03821615611aed57611369916001611df59201611c30565b612c9e612c93612ca592611c85565b835f5260205f200190565b5460301c90565b90612c65565b9192612cb6816127aa565b8103908111611a6557612c5c93855f5265ffffffffffff808360205f20015416908516105f14612ce7575091612c51565b929150612cf390611a57565b90612c51565b60405190612d0682610b95565b5f6020838281520152565b90612d3a612d34612d5b92612d24612cf9565b50612d2d612cf9565b5084611c30565b50611d55565b91600165ffffffffffff845116936020828060d01b03910151169101611c30565b90549060405192612d6b84610b95565b835260031b1c602082015290565b9080821015612d86575090565b905090565b8054600160401b811015610bb057612da891600182018155611c30565b612dd357815160209092015160301b65ffffffffffff191665ffffffffffff92909216919091179055565b634e487b7160e01b5f525f60045260245ffd5b805492939291908215612ed357612e02611dc2612c9385611c85565b90612e13825165ffffffffffff1690565b65ffffffffffff84811691168110612ec157611ce9946020948892612e41611e55875165ffffffffffff1690565b03612e895750612e7b92612e57612e6292611c85565b905f5260205f200190565b9065ffffffffffff82549181199060301b169116179055565b01516001600160d01b031690565b915050612ebc91612ea9612e9b610c1b565b65ffffffffffff9093168352565b6001600160d01b03881682860152612d8b565b612e7b565b604051632520601d60e01b8152600490fd5b612ef79250612ee3612e9b610c1b565b6001600160d01b0385166020830152612d8b565b5f9190565b90808216911860011c8101809111611a655790565b60ff5f80516020612fd78339815191525460401c1615612f2d57565b604051631afcd79f60e31b8152600490fd5b905b838310612f4e5750505090565b909192612f5b8185612efc565b90835f5265ffffffffffff808360205f20015416908416105f14612f835750925b9190612f41565b93506001810180911115612f7c57611a2556fe02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268009b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a26469706673582212202077fedb9993c6133279d30f1d446f0f32fbff7e0bf1efb91c3d996684e117c464736f6c63430008190033","sourceMap":"11341:2310:81:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;;;;;-1:-1:-1;;11341:2310:81;;;;;;;;;;;;;;;;;;-1:-1:-1;;;3551:47:23;;;:87;;;;11341:2310:81;;;;;;;;;;3551:87:23;-1:-1:-1;;;1133:40:29;;-1:-1:-1;3551:87:23;;;11341:2310:81;-1:-1:-1;11341:2310:81;;;;;;;;;;;;;;;;;;;;3202:4:23;;;:::i;:::-;11341:2310:81;-1:-1:-1;11341:2310:81;2428:15:80;11341:2310:81;;;-1:-1:-1;11341:2310:81;;2419:36:80;;2415:98;;11341:2310:81;-1:-1:-1;11341:2310:81;2193:13:80;11341:2310:81;;;2193:34:80;11341:2310:81;-1:-1:-1;11341:2310:81;2193:34:80;:::i;:::-;2527;2523:84;;2617:25;2689:35;2617:25;:56;2689:35;2617:25;;;11341:2310:81;;2193:13:80;11341:2310:81;;;;;;;2617:25:80;819:34:62;837:15;819:34;:::i;:::-;2617:56:80;;:::i;:::-;-1:-1:-1;;11341:2310:81;;;;;;;;;;;;2689:35:80;;;;11341:2310:81;2523:84:80;11341:2310:81;-1:-1:-1;;;2584:12:80;;11341:2310:81;;2584:12:80;2415:98;11341:2310:81;-1:-1:-1;;;2478:24:80;;11341:2310:81;;2478:24:80;11341:2310:81;;;;;;-1:-1:-1;;11341:2310:81;;;;;;1537:38:76;-1:-1:-1;;;;;11341:2310:81;;;;;;;;;;;;-1:-1:-1;;11341:2310:81;;;;;;1632:54:76;-1:-1:-1;;;;;11341:2310:81;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;-1:-1:-1;;11341:2310:81;;;;;;:::i;:::-;449:5:82;-1:-1:-1;;;;;11341:2310:81;435:10:82;:19;431:71;;11341:2310:81;12172:64;11341:2310;;;;-1:-1:-1;11341:2310:81;12172:13;11341:2310;;;-1:-1:-1;11341:2310:81;12172:64;:::i;:::-;11341:2310;;;;;;;;;;;;;;;;;;;431:71:82;11341:2310:81;;-1:-1:-1;;;477:14:82;;11341:2310:81;;477:14:82;11341:2310:81;;;;;;-1:-1:-1;;11341:2310:81;;;;;;1743:56:76;-1:-1:-1;;;;;11341:2310:81;;;;;;;;;;;;-1:-1:-1;;11341:2310:81;;;;;;-1:-1:-1;;;;;11341:2310:81;;;;;;;;3217:103:28;;;:::i;:::-;11341:2310:81;;-1:-1:-1;;;4285:48:76;;4322:10;11341:2310:81;4285:48:76;;11341:2310:81;;;;;-1:-1:-1;;;;;4295:16:76;11341:2310:81;4285:48:76;;;;;;;-1:-1:-1;4285:48:76;;;11341:2310:81;4284:49:76;;4280:99;;-1:-1:-1;;;;;11341:2310:81;-1:-1:-1;;4322:10:76;297:2:88;11341:2310:81;;267:46:88;4459:27:76;;;;11341:2310:81;;4459:15:76;11341:2310:81;;;;;;;4459:27:76;11341:2310:81;4459:37:76;4455:87;;4654:38;4552:27;4654:38;4552:27;;;11341:2310:81;;4459:15:76;11341:2310:81;;;;;;;4552:27:76;11341:2310:81;4631:6:76;;;;:::i;:::-;11341:2310:81;;;;;;;;;;;;;4654:38:76;;;;3282:1:28;1805;-1:-1:-1;;;;;;;;;;;11341:2310:81;3716:283:28;3282:1;11341:2310:81;4455:87:76;11341:2310:81;;-1:-1:-1;;;4519:12:76;;11341:2310:81;;4519:12:76;4280:99;11341:2310:81;;-1:-1:-1;;;4356:12:76;;11341:2310:81;;4356:12:76;4285:48;;;;11341:2310:81;4285:48:76;11341:2310:81;4285:48:76;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;:::i;11341:2310:81:-;;;;;;-1:-1:-1;;11341:2310:81;;;;;;-1:-1:-1;11341:2310:81;-1:-1:-1;;;;;;;;;;;11341:2310:81;;;4919:24:23;11341:2310:81;-1:-1:-1;11341:2310:81;4919:24:23;11341:2310:81;;;;;;;;-1:-1:-1;;;;;11341:2310:81;;;;;:::o;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;11341:2310:81;;;;;;;;-1:-1:-1;;11341:2310:81;;;;:::o;:::-;;;;;;-1:-1:-1;;11341:2310:81;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;11341:2310:81;;;;;;322:32:69;-1:-1:-1;;;;;11341:2310:81;;;;;;;;;;;;-1:-1:-1;;11341:2310:81;;;;5350:25:23;11341:2310:81;;;;;;;:::i;:::-;;-1:-1:-1;11341:2310:81;-1:-1:-1;;;;;;;;;;;11341:2310:81;;3202:4:23;4919:24;11341:2310:81;-1:-1:-1;11341:2310:81;4919:24:23;11341:2310:81;3202:4:23;:::i;:::-;5350:25;:::i;11341:2310:81:-;;;;;;-1:-1:-1;;11341:2310:81;;;;;;;;;:::i;:::-;966:10:27;-1:-1:-1;;;;;11341:2310:81;;6441:34:23;6437:102;;6549:37;11341:2310:81;;;6549:37:23;:::i;6437:102::-;11341:2310:81;;-1:-1:-1;;;6498:30:23;;11341:2310:81;;6498:30:23;11341:2310:81;;;;;;-1:-1:-1;;11341:2310:81;;;;;;;;;:::i;:::-;3217:103:28;;:::i;:::-;966:10:27;-1:-1:-1;11341:2310:81;;;;;;;;;;1356:26:76;;11341:2310:81;;4468:23:23;4464:108;;-1:-1:-1;4861:4:76;11341:2310:81;-1:-1:-1;;;;;11341:2310:81;;;;;;4861:13:76;;4857:63;;-1:-1:-1;;;;;;11341:2310:81;;;4861:4:76;11341:2310:81;4958:14:76;-1:-1:-1;;4958:14:76;4861:4;-1:-1:-1;;;;;;;;;;;11341:2310:81;;4464:108:23;11341:2310:81;;;;4514:47:23;;;;;;966:10:27;11341:2310:81;4514:47:23;;11341:2310:81;;;;;4514:47:23;11341:2310:81;;;;;;-1:-1:-1;;11341:2310:81;;;;;;-1:-1:-1;11341:2310:81;2193:13:80;11341:2310:81;;;2193:34:80;11341:2310:81;-1:-1:-1;11341:2310:81;2193:34:80;:::i;:::-;11341:2310:81;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;11341:2310:81;;;;;;;;;;;;;;;:::o;:::-;;;;;;-1:-1:-1;;11341:2310:81;;;;-1:-1:-1;;;;;11341:2310:81;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;11341:2310:81;;;;;;;4301:16:25;11341:2310:81;;4726:16:25;;:34;;;;11341:2310:81;4805:1:25;4790:16;:50;;;;11341:2310:81;4855:13:25;:30;;;;11341:2310:81;4851:91:25;;;-1:-1:-1;;;;;;;;;;;11341:2310:81;;-1:-1:-1;;11341:2310:81;;;;;718:4:69;;4951:18:25;4979:67;;718:4:69;:::i;:::-;5066:101:25;;11341:2310:81;5066:101:25;-1:-1:-1;;;;;;;;;;;11341:2310:81;;-1:-1:-1;;;;11341:2310:81;;;;;-1:-1:-1;11341:2310:81;;5142:14:25;;11341:2310:81;;5142:14:25;11341:2310:81;4979:67:25;-1:-1:-1;;;;;;;;;;;11341:2310:81;;-1:-1:-1;;;;11341:2310:81;-1:-1:-1;;;11341:2310:81;;;718:4:69;:::i;4851:91:25:-;11341:2310:81;;-1:-1:-1;;;4908:23:25;;11341:2310:81;;4908:23:25;4855:30;4872:13;;;4855:30;;;4790:50;4818:4;4810:25;:30;;-1:-1:-1;4790:50:25;;4726:34;;;-1:-1:-1;4726:34:25;;11341:2310:81;;;;;;-1:-1:-1;;11341:2310:81;;;;;;11523:36;-1:-1:-1;;;;;11341:2310:81;;;;;;;;;;;;-1:-1:-1;;11341:2310:81;;;;;;;1253:6:76;11341:2310:81;;;;;;;;;-1:-1:-1;;11341:2310:81;;;;;;;;-1:-1:-1;;;;;11341:2310:81;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;11341:2310:81;;;;;;;:::o;:::-;;:::i;:::-;;;;;;;-1:-1:-1;;;;;11341:2310:81;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;11341:2310:81;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;11341:2310:81;;;;;;;:::o;:::-;;;;;;;:::i;:::-;:::o;:::-;;;;;;;:::i;:::-;-1:-1:-1;;;;;11341:2310:81;;;;;;-1:-1:-1;;11341:2310:81;;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;11341:2310:81;;;;;;;;;;;;;;:::o;:::-;;;;;;-1:-1:-1;;11341:2310:81;;;;;;:::i;:::-;;;-1:-1:-1;;;;;11341:2310:81;;;;;;;1955:60:80;11341:2310:81;;;;;;:::i;:::-;;;;-1:-1:-1;11341:2310:81;1955:13:80;11341:2310:81;;;-1:-1:-1;11341:2310:81;1955:60:80;:::i;11341:2310:81:-;;;;;;-1:-1:-1;;11341:2310:81;;;;;;;1356:26:76;11341:2310:81;;;;;;;;;-1:-1:-1;;11341:2310:81;;;;;;11472:45;-1:-1:-1;;;;;11341:2310:81;;;;;;;;;;;;-1:-1:-1;;11341:2310:81;;;;;;;885:35:80;11341:2310:81;;;;;;;;;-1:-1:-1;;11341:2310:81;;;;;;;;-1:-1:-1;;;;;11341:2310:81;;;;;;;;;;;;;;-1:-1:-1;;11341:2310:81;;;;;;989:42:80;-1:-1:-1;;;;;11341:2310:81;;;;;;;;;;;;-1:-1:-1;;11341:2310:81;;;;;;3901:31:23;11341:2310:81;;;;;:::i;:::-;;;-1:-1:-1;11341:2310:81;-1:-1:-1;;;;;;;;;;;11341:2310:81;;;-1:-1:-1;11341:2310:81;;;;;;;;;;;;;;;;;3901:31:23;11341:2310:81;;;;;;;;;;;;;;;;-1:-1:-1;;11341:2310:81;;;;;;11565:45;-1:-1:-1;;;;;11341:2310:81;;;;;;;;;;;;-1:-1:-1;;11341:2310:81;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;11341:2310:81;;;;-1:-1:-1;11341:2310:81;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;416:25:75;;;;477:31;416:25;;:::i;:::-;11341:2310:81;;;;;;;;;;477:31:75;;11341:2310:81;;;;;;;;;;;:::i;:::-;477:31:75;11341:2310:81;;477:31:75;;;;;;:::i;:::-;518:79;;;11341:2310:81;518:79:75;;11341:2310:81;;;;;;-1:-1:-1;;11341:2310:81;;;;;;;;;;;;;;;;;-1:-1:-1;;11341:2310:81;;;;;;;-1:-1:-1;;;;;404:28:69;11341:2310:81;;;;;;;;;;-1:-1:-1;;11341:2310:81;;;;;;1439:41:76;-1:-1:-1;;;;;11341:2310:81;;;;;;;;;;;;-1:-1:-1;;11341:2310:81;;;;;;-1:-1:-1;11341:2310:81;2009:67:76;11341:2310:81;;;;-1:-1:-1;11341:2310:81;;;;;;;;;;;;;;-1:-1:-1;;11341:2310:81;;;;5767:26:23;11341:2310:81;;;;;;;:::i;:::-;;-1:-1:-1;11341:2310:81;-1:-1:-1;;;;;;;;;;;11341:2310:81;;3202:4:23;4919:24;11341:2310:81;-1:-1:-1;11341:2310:81;4919:24:23;11341:2310:81;3202:4:23;:::i;:::-;5767:26;:::i;11341:2310:81:-;;;;;;-1:-1:-1;;11341:2310:81;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;:::i;:::-;;;;;;-1:-1:-1;;11341:2310:81;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;-1:-1:-1;;;;;11341:2310:81;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;-1:-1:-1;;11341:2310:81;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;-1:-1:-1;;;;;11341:2310:81;;;;;;;;;;;;:::i;:::-;3217:103:28;;:::i;:::-;-1:-1:-1;11341:2310:81;;;5246:21:76;;:13;;-1:-1:-1;;;;;11341:2310:81;5246:13:76;11341:2310:81;;-1:-1:-1;;;;;11341:2310:81;;;5246:21:76;11341:2310:81;;-1:-1:-1;;;5246:23:76;;11341:2310:81;;;;;5246:23:76;;;;;;;-1:-1:-1;5246:23:76;;;11341:2310:81;-1:-1:-1;;;;;;11341:2310:81;;;5232:10:76;:37;5228:87;;5341:4;11341:2310:81;-1:-1:-1;;;;;11341:2310:81;;;;5355:469:76;;11341:2310:81;-1:-1:-1;;11341:2310:81;;;;;;;;;;;;;;;;5839:55:76;;11341:2310:81;;;;5839:55:76;;;;3282:1:28;1805;-1:-1:-1;;;;;;;;;;;11341:2310:81;3716:283:28;5355:469:76;11341:2310:81;;;;5435:94:76;;;;11341:2310:81;5435:94:76;;;;;;;;;;;;11341:2310:81;5435:94:76;;;:::i;:::-;;11341:2310:81;;5435:94:76;;;;;;:::i;:::-;11341:2310:81;5548:9:76;:51;5544:118;;-1:-1:-1;5839:55:76;5676:138;;;;5839:55;5676:138;;;1150:7;5676:138;;5355:469;;;5544:118;11341:2310:81;;-1:-1:-1;;;5626:21:76;;11341:2310:81;;5626:21:76;5228:87;11341:2310:81;;-1:-1:-1;;;5292:12:76;;11341:2310:81;;5292:12:76;5246:23;;;;;11341:2310:81;5246:23:76;11341:2310:81;5246:23:76;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;11341:2310:81;;;;;;-1:-1:-1;;11341:2310:81;;;;;;;;-1:-1:-1;;;;;11341:2310:81;;;;;;;;;;;;;;-1:-1:-1;;11341:2310:81;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;-1:-1:-1;;11341:2310:81;;;;;;;1150:7:76;11341:2310:81;;;;;;;;;-1:-1:-1;;11341:2310:81;;;;;;;2700:1:76;11341:2310:81;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;11341:2310:81;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;;;;11341:2310:81;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;12814:835::-;11341:2310;;-1:-1:-1;;;13031:99:81;;-1:-1:-1;;;;;11341:2310:81;;;13031:99;;;11341:2310;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;11341:2310:81;;;13050:20;11341:2310;;13031:99;;;;;;;;;;;12814:835;-1:-1:-1;11341:2310:81;;-1:-1:-1;;;13224:32:81;;;11341:2310;13031:99;11341:2310;;;;13224:32;;;;;;;13184:84;13224:32;13031:99;13224:32;;;;;;;12814:835;-1:-1:-1;11341:2310:81;;-1:-1:-1;;;13184:84:81;;-1:-1:-1;;;;;11341:2310:81;;;13031:99;13184:84;;11341:2310;;;;;;;;;;;;;-1:-1:-1;11341:2310:81;;;;;;;;;13184:84;;13195:11;;11341:2310;13184:84;;;;;;;13031:99;13184:84;;;12814:835;13312:50;;;;;:::i;:::-;11341:2310;;;13377:21;;;:52;;;12814:835;13377:85;;;;12814:835;13373:270;;12814:835;;;:::o;13373:270::-;13485:147;11341:2310;;;;13485:147;11341:2310;;;;:::i;:::-;;;;13224:32;13513:105;;11341:2310;;13513:105;;11341:2310;;;13485:147;;;13224:32;13485:147;;;:::i;13377:85::-;11341:2310;;;13433:29;;13377:85;;:52;11341:2310;;;13402:27;;13377:52;;13184:84;13312:50;13184:84;;;;;;13031:99;13184:84;;;;;;:::i;:::-;;;;;:::i;:::-;;;;13224:32;;;;;;;;;;;;;;:::i;:::-;;;;13031:99;;;;;;;;;;;;;;:::i;:::-;;;;;1827:195:80;;1955:60;1827:195;;-1:-1:-1;11341:2310:81;1955:13:80;11341:2310:81;;;-1:-1:-1;11341:2310:81;1955:60:80;:::i;11341:2310:81:-;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;-1:-1:-1;11341:2310:81;;;;:::o;:::-;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;:::i;12249:559::-;;;-1:-1:-1;12383:12:81;11341:2310;;;;;12529:149;;12573:64;;;;12529:149;;;;;;;11341:2310;;;;;;;12529:149;;;;;:::i;:::-;11341:2310;;716:88:82;;11341:2310:81;716:88:82;;;;;;;;;783:4;12529:149:81;716:88:82;;11341:2310:81;;;;;;;;;;;:::i;:::-;716:88:82;11341:2310:81;716:88:82;11341:2310:81;;716:88:82;;;;;;;;:::i;:::-;698:107;;;;;857:45;698:107;;:::i;:::-;11341:2310:81;;;;857:45:82;;;;;;:::i;:::-;916:8;;912:175;;11341:2310:81;;;12437:293;11341:2310;;12437:293;;;;;;:::i;:::-;12741:61;;;;12249:559;;;:::o;12741:61::-;12774:17;11341:2310;;;;12774:17;11341:2310;;12774:17;;;;;11341:2310;;;;;;;;;;;;12774:17;;;;;;;;;:::i;912:175:82:-;11341:2310:81;;;;944:22:82;;;940:36;;990:87;;11341:2310:81;;;;;;;:::i;:::-;;;;;;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;;;;11341:2310:81;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::o;:::-;-1:-1:-1;;;;;11341:2310:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;2764:920:76:-;;2978:48;2764:920;;;;2978:48;;;;:::i;:::-;3036:36;;;11341:2310:81;;:::i;:::-;;;;3086:20:76;3082:107;;2764:920;3216:11;;;;:193;;;;;2764:920;3216:394;;;;2764:920;3199:455;;;;;;2764:920;:::o;3199:455::-;3635:8;-1:-1:-1;3635:8:76;:::o;3216:394::-;3553:39;;;;;3430:180;3553:39;;;11341:2310:81;;;;;;;;;;3430:180:76;;467:2:88;11341:2310:81;3430:180:76;;;;;:::i;:::-;;11341:2310:81;3444:31:76;-1:-1:-1;;;;;11341:2310:81;3430:180:76;;;;;;;-1:-1:-1;3430:180:76;;;3216:394;3429:181;;3216:394;;;;;;3430:180;;;;3553:39;3430:180;3553:39;3430:180;;;;;;;:::i;:::-;;;;3216:193;-1:-1:-1;11341:2310:81;;;-1:-1:-1;;;;;;11341:2310:81;3248:161:76;3354:37;;;11341:2310:81;3248:161:76;11341:2310:81;;;;;;;;;;3248:161:76;;;;;;;:::i;:::-;;11341:2310:81;3262:29:76;-1:-1:-1;;;;;11341:2310:81;3248:161:76;;;;;;;-1:-1:-1;3248:161:76;;;3216:193;3247:162;;3216:193;;;3248:161;;;;;;;;;;;;;;:::i;:::-;;;;3082:107;3139:39;;;;;;;;;;;;;:::i;:::-;3082:107;;;;;11341:2310:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;8889:1:86;11341:2310:81;;;;;;;:::o;:::-;;:::i;3740:389:76:-;3918:5;11341:2310:81;;;-1:-1:-1;;;3853:71:76;;;-1:-1:-1;;;;;11341:2310:81;;;3853:71:76;;;11341:2310:81;;;;;;;;3740:389:76;;11341:2310:81;3853:71:76;;11341:2310:81;;3853:71:76;11341:2310:81;;;3867:29:76;11341:2310:81;;3853:71:76;;;;;;;3918:5;3853:71;;;3740:389;3852:72;;11341:2310:81;;;3852:181:76;;3740:389;3835:242;;;;;;4094:28;;;:::i;3835:242::-;4058:8;;3918:5;4058:8;:::o;3852:181::-;11341:2310:81;;3945:88:76;;;-1:-1:-1;;;;;11341:2310:81;;3853:71:76;3945:88;;11341:2310:81;467:2:88;11341:2310:81;;;;;;;;-1:-1:-1;11341:2310:81;;;;;;;;3959:31:76;11341:2310:81;3945:88:76;;;;;;;3918:5;3945:88;;;3852:181;3944:89;;;3852:181;;;;;3945:88;;;;;;-1:-1:-1;3945:88:76;;;;;;:::i;:::-;;;;;3853:71;;;;;;;;;;;;;;:::i;:::-;;;;4148:103:23;966:10:27;-1:-1:-1;11341:2310:81;;;;;;;;;885:35:80;;11341:2310:81;;3901:31:23;11341:2310:81;;4468:23:23;4464:108;;4148:103;:::o;:::-;-1:-1:-1;11341:2310:81;;;-1:-1:-1;;;;;;;;;;;11341:2310:81;;;;;;;;966:10:27;11341:2310:81;;;;;;;;;3901:31:23;11341:2310:81;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;11341:2310:81;;-1:-1:-1;11341:2310:81;;;-1:-1:-1;11341:2310:81;:::o;:::-;;:::i;:::-;;;;;-1:-1:-1;;;11341:2310:81;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;11341:2310:81;;;;;;;;:::o;6246:584:86:-;;;;;6360:12;;;11341:2310:81;;;6360:24:86;;6356:75;;6246:584;6474:30;;;;;:::i;:::-;11341:2310:81;;;;;;6578:12:86;;;;:::i;:::-;6604:24;;;;6246:584;-1:-1:-1;6600:188:86;;;-1:-1:-1;;;;;11341:2310:81;;;;;;;6644:21:86;;;:29;:21;;:::i;:29::-;6798:25;6246:584;:::o;6600:188::-;6753:24;;11341:2310:81;;8167:38:60;;-1:-1:-1;;;;;11341:2310:81;;;;;8167:38:60;:::i;:::-;6753:24:86;;;:::i;6604:::-;11341:2310:81;;;;;;6614:14:86;;-1:-1:-1;6604:24:86;;;6356:75;-1:-1:-1;;;11341:2310:81;;;;;;6360:12:86;11341:2310:81;;;;;;;:::i;:::-;;;;;;;;;;;;;;6356:75:86;;;11341:2310:81;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::o;8406:869:86:-;;;11341:2310:81;;8620:15:86;8578:11;8645:18;8678:7;8684:1;8678:7;;8674:241;;8406:869;8939:60;;;;;:::i;:::-;9014:8;;;9010:62;;9252:15;9259:7;11341:2310:81;9219:31:86;11341:2310:81;9130:48:86;9170:7;;;:::i;:::-;9130:48;13267:109;;;;;;13089:293;;9130:48;11341:2310:81;:::i;:::-;;9176:1:86;11341:2310:81;9232:17:86;11341:2310:81;;;;;;;;9232:17:86;;11341:2310:81;-1:-1:-1;;;;;11341:2310:81;;;;9219:12:86;;:31;:::i;:::-;11341:2310:81;;;;;;;;;9259:7:86;;:::i;:::-;11341:2310:81;;;;9252:15:86;9176:1;;9188:80;;8406:869::o;9010:62::-;8578:11;;-1:-1:-1;8578:11:86;;-1:-1:-1;8578:11:86;;;;9038:23::o;8674:241::-;8721:14;;;;;:::i;:::-;11341:2310:81;;;;;;;8939:60:86;13267:109;;8578:11;13267:109;8753:55;8759:49;13267:109;;8578:11;13267:109;;11341:2310:81;;;;;;8759:49:86;11341:2310:81;;;;8753:55:86;11341:2310:81;;;8753:55:86;13267:109;;;8828:10;8749:156;8674:241;;8749:156;8883:7;;;;;;:::i;:::-;8749:156;8674:241;;3326:384:28;-1:-1:-1;;;;;;;;;;;1847:1:28;11341:2310:81;;3526:20:28;3522:88;;1847:1;11341:2310:81;;3326:384:28:o;3522:88::-;11341:2310:81;;-1:-1:-1;;;3569:30:28;;;;;3701:308:80;;11341:2310:81;-1:-1:-1;11341:2310:81;3832:13:80;11341:2310:81;;;-1:-1:-1;11341:2310:81;11124:30:86;;;;:::i;:::-;11173;;;-1:-1:-1;11173:30:86;;;;11182:17;;-1:-1:-1;;;;;11341:2310:81;;11182:12:86;;:17;:::i;:::-;11341:2310:81;;;3832:13:80;11341:2310:81;;11173:30:86;3890::80;;;11173::86;3886:117:80;;;;3701:308;;:::o;3886:117::-;3936:56;11341:2310:81;-1:-1:-1;11341:2310:81;3832:13:80;11341:2310:81;;;-1:-1:-1;11341:2310:81;819:34:62;837:15;819:34;:::i;3936:56:80:-;3701:308;;:::o;3890:30::-;3900:20;;-1:-1:-1;3890:30:80;;;;11173::86;;;-1:-1:-1;11173:30:86;;7270:387:23;-1:-1:-1;;;;;11341:2310:81;;-1:-1:-1;11341:2310:81;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2887:71:23;11341:2310:81;;;;-1:-1:-1;11341:2310:81;;;;;;;;;;;-1:-1:-1;;;;;11341:2310:81;;;;;;;;;;-1:-1:-1;;11341:2310:81;7509:4:23;11341:2310:81;;;966:10:27;;-1:-1:-1;;;;;11341:2310:81;-1:-1:-1;7532:40:23;-1:-1:-1;;7532:40:23;7509:4;7586:11;:::o;7270:387::-;-1:-1:-1;;;;;11341:2310:81;;-1:-1:-1;11341:2310:81;;;;;;;;;1356:26:76;;-1:-1:-1;;;;;;;;;;;2887:71:23;11341:2310:81;;3901:31:23;11341:2310:81;;;;-1:-1:-1;11341:2310:81;;;;;;;;;;;-1:-1:-1;;;;;11341:2310:81;;;;;;;;;;-1:-1:-1;;11341:2310:81;7509:4:23;11341:2310:81;;;966:10:27;;-1:-1:-1;;;;;11341:2310:81;;7532:40:23;-1:-1:-1;;7532:40:23;7509:4;7586:11;:::o;7432:219::-;7628:12;;;-1:-1:-1;7628:12:23;:::o;7270:387::-;-1:-1:-1;;;;;11341:2310:81;;-1:-1:-1;11341:2310:81;;;;;;;;;885:35:80;;-1:-1:-1;;;;;;;;;;;2887:71:23;11341:2310:81;;3901:31:23;11341:2310:81;7270:387:23;-1:-1:-1;11341:2310:81;;;-1:-1:-1;;;;;;;;;;;11341:2310:81;;;;;;;;-1:-1:-1;;;;;11341:2310:81;;;;;;;;;;;;3901:31:23;11341:2310:81;7892:388:23;-1:-1:-1;11341:2310:81;;;-1:-1:-1;;;;;;;;;;;11341:2310:81;;;;;;;;-1:-1:-1;;;;;11341:2310:81;;;;;;;;;;;;;;;;-1:-1:-1;11341:2310:81;;;;;;;;;;;-1:-1:-1;;;;;11341:2310:81;;;;;;;;;;-1:-1:-1;;11341:2310:81;;;966:10:27;;-1:-1:-1;;;;;11341:2310:81;;8155:40:23;-1:-1:-1;;8155:40:23;11341:2310:81;8209:11:23;:::o;10580:184:86:-;11341:2310:81;;10303:8:60;;;:63;-1:-1:-1;10303:63:60;-1:-1:-1;;;;;11341:2310:81;;10726:7:86;11341:2310:81;;10736:12:86;:17;:12;;:17;:::i;10303:63:60:-;11341:2310:81;;;;;;;;;;13267:109:86;-1:-1:-1;13267:109:86;;-1:-1:-1;13267:109:86;;;11341:2310:81;;;10303:63:60;;11341:2310:81;;;;;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;11341:2310:81;;;;;;;;:::i;5907:716:76:-;6030:34;5907:716;6030:34;;;;:::i;:::-;11341:2310:81;;-1:-1:-1;;;6080:41:76;;-1:-1:-1;;;;;11341:2310:81;;;6080:41:76;;;11341:2310:81;;;;;6080:41:76;11341:2310:81;;;6090:13:76;11341:2310:81;;6080:41:76;;;;;;;-1:-1:-1;6080:41:76;;;5907:716;6079:42;;6075:90;;6266:27;11341:2310:81;2540:111:28;6210:14:76;11341:2310:81;2540:111:28;;;:::i;:::-;11341:2310:81;;;;;;-1:-1:-1;;;;;11341:2310:81;;-1:-1:-1;11341:2310:81;;;-1:-1:-1;11341:2310:81;;6210:14:76;6266:27;:::i;:::-;6080:41;6311:15;;11341:2310:81;;;;-1:-1:-1;;;;;;11341:2310:81;-1:-1:-1;;;;;11341:2310:81;;;;;;;;;;;-1:-1:-1;;;;;11341:2310:81;;;;6337:143:76;;5907:716;-1:-1:-1;6493:28:76;11341:2310:81;-1:-1:-1;;;;;11341:2310:81;;;;;;;6489:128:76;;5907:716;:::o;6489:128::-;6551:55;;;:::i;:::-;;5907:716::o;6337:143::-;6404:65;;;:::i;:::-;;6337:143;;;6075:90;11341:2310:81;;-1:-1:-1;;;6144:10:76;;6080:41;;6144:10;6080:41;;;;;;;;;;;;;;:::i;:::-;;;;11341:2310:81;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::o;7558:604:86:-;;11341:2310:81;;7686:17:86;7682:83;;11341:2310:81;7789:27:86;11341:2310:81;7789:27:86;11341:2310:81;;7789:27:86;;;;;;:::i;:::-;7860:14;;;;;:::i;:::-;11341:2310:81;;;;;;;;;;;;;;;;7888:22:86;;;7884:77;;7975:21;-1:-1:-1;7975:84:86;;;;7558:604;7971:139;;;;8127:28;;;;:::i;7971:139::-;8082:17;;7789:27;8082:17;11341:2310:81;8075:24:86;:::o;7975:84::-;11341:2310:81;;;8009:16:86;11341:2310:81;;8009:16:86;:::i;:::-;11341:2310:81;;;8001:24:86;:57;;;;;7975:84;;;;;;;8001:57;8029:29;8038:8;;;8029:18;8038:8;8029:23;8038:8;;:::i;:::-;8029:18;;:::i;:::-;11341:2310:81;;;;;8029:29:86;;8001:57;;;;7884:77;7933:17;;;;;7789:27;7933:17;11341:2310:81;7926:24:86;:::o;7682:83::-;7726:28;;;;:::i;11341:2310:81:-;;;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;11341:2310:81;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;;;;11341:2310:81;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;:::i;2737:699:80:-;;;;;11341:2310:81;;:::i;:::-;;;;2978:16:80;2974:92;;2737:699;-1:-1:-1;;3080:8:80;11341:2310:81;-1:-1:-1;;;;;11341:2310:81;;;;;3080:21:80;3076:85;;-1:-1:-1;11341:2310:81;3218:67:80;;11341:2310:81;;3257:27:80;;3218;;:13;;-1:-1:-1;;;;;11341:2310:81;3218:13:80;11341:2310:81;3218:27:80;3257;;;;11341:2310:81;;;;;;;;;;;3218:67:80;;;3080:8;3218:67;;;:::i;:::-;;;;;;;;;;3192:192;3218:67;-1:-1:-1;3218:67:80;;;2737:699;3341:28;3303:67;3341:28;;11341:2310:81;3341:28:80;;;3303:67;;:::i;:::-;3192:192;;:::i;:::-;3398:21;;2737:699;:::o;3218:67::-;3303;3218;;;;3257:27;3218:67;3257:27;3218:67;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;3076:85;-1:-1:-1;;3128:21:80;;-1:-1:-1;;3117:33:80:o;2974:92::-;3024:31;;;;;;;;;;;;;:::i;:::-;2974:92;;;;;3442:253;3552:8;11341:2310:81;-1:-1:-1;;;;;11341:2310:81;;;;;;;3552:21:80;3548:60;;3634:27;3552:8;11341:2310:81;-1:-1:-1;11341:2310:81;;;;;;;;;;;3634:27:80;;;;;;;;;3625:63;3634:27;-1:-1:-1;3634:27:80;;;3442:253;2193:25;;:34;:25;11341:2310:81;;2193:13:80;11341:2310:81;;;;;;;2193:25:80;:34;:::i;3634:27::-;2193:34;3634:27;;;;2193:25;3634:27;;;;;;;;;;;:::i;:::-;;;;;;14291:213:58;11341:2310:81;14369:24:58;;;;14365:103;;11341:2310:81;14291:213:58;:::o;14365:103::-;11341:2310:81;;;;14416:41:58;;;;;;14447:2;14416:41;;;11341:2310:81;;;;;14416:41:58;10552:388:60;11341:2310:81;;10728:8:60;;;10752:20;;10690:17;10752:20;10690:17;10752:20;10690:17;10752:20;:::o;10724:210::-;11341:2310:81;;;;;;;;;;;13267:109:86;10690:17:60;13267:109:86;;10690:17:60;13267:109:86;;;11341:2310:81;:::i;:::-;;;;;;;13267:109:86;11341:2310:81;;;;;10911:11:60;;11341:2310:81;;10886:37:60;10870:1;10886:37;;;:::o;8587:1642:57:-;8658:6;;8654:45;;9401:7;10201:10;10142:26;10093;10044;9995;9946;9897;9848;11341:2310:81;10189:23:57;9401:7;8663:1;11341:2310:81;;;;10826:16:57;10822:99;;8587:1642;11341:2310:81;;;;10938:15:57;10934:96;;8587:1642;11341:2310:81;;;;11047:15:57;11043:96;;8587:1642;11341:2310:81;;;;11156:15:57;11152:96;;8587:1642;11341:2310:81;;;;11265:14:57;11261:93;;8587:1642;11341:2310:81;;;;11371:14:57;11367:93;;8587:1642;11341:2310:81;;;;11477:14:57;11473:93;;8587:1642;11341:2310:81;;;11579:64:57;;8587:1642;11341:2310:81;;;9858:10:57;;;;:::i;:::-;11341:2310:81;;;;;9848:26:57;9907:10;;;;:::i;9897:26::-;9956:10;;;;:::i;9946:26::-;10005:10;;;;:::i;9995:26::-;10054:10;;;;:::i;10044:26::-;10103:10;;;;:::i;10093:26::-;10152:10;;;;:::i;10142:26::-;10201:10;;;:::i;11579:64::-;11341:2310:81;;11579:64:57;;11473:93;11341:2310:81;11511:11:57;;11341:2310:81;;11473:93:57;;;;11367;11341:2310:81;11405:11:57;;11341:2310:81;;11367:93:57;;;;11261;11341:2310:81;11299:11:57;;11341:2310:81;;11261:93:57;;;;11152:96;11341:2310:81;11191:12:57;;11341:2310:81;;11152:96:57;;;;11043;11341:2310:81;11082:12:57;;11341:2310:81;;11043:96:57;;;;10934;11341:2310:81;10973:12:57;;11341:2310:81;;10934:96:57;;;;10822:99;10862:13;;;11341:2310:81;10822:99:57;;;;12497:447:86;;12694:10;;;;;;12926:11;;;12497:447;:::o;12687:230::-;12734:23;;;;;;;:::i;:::-;13267:109;;-1:-1:-1;13267:109:86;11341:2310:81;13267:109:86;;;-1:-1:-1;13267:109:86;;11341:2310:81;;;;;-1:-1:-1;12771:136:86;11341:2310:81;;;12830:10:86;12771:136;;12687:230;;;;12771:136;11341:2310:81;;12891:1:86;11341:2310:81;;;;;;12771:136:86;11341:2310:81;;:::i;6893:76:25:-;;;:::i;:::-;;;:::i;:::-;1805:1:28;-1:-1:-1;;;;;;;;;;;11341:2310:81;6893:76:25:o;11341:2310:81:-;;;;;;;:::i;:::-;-1:-1:-1;11341:2310:81;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;-1:-1:-1;;;;;11341:2310:81;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;11341:2310:81;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::o;4015:918:80:-;11341:2310:81;;:::i;:::-;;4163:30:80;11341:2310:81;;4163:30:80;;;;;;;;;;;:::i;:::-;4208:17;;11341:2310:81;-1:-1:-1;;;;;11341:2310:81;;4208:17:80;11341:2310:81;;4208:54:80;;:103;;4015:918;4204:161;;4418:15;;;;11341:2310:81;;;;-1:-1:-1;;;4380:54:80;;-1:-1:-1;;;;;11341:2310:81;;;4380:54:80;;;;11341:2310:81;;;;4380:54:80;4418:15;;;;11341:2310:81;;;;;;;;4390:17:80;11341:2310:81;4380:54:80;;;;;;;4208:17;4380:54;;;4015:918;4379:55;;4375:106;;4496:9;;4511:33;;;4208:17;4553:3;4511:33;;11341:2310:81;;4507:44:80;;;;;4576:36;;;:50;:36;;:::i;:::-;11341:2310:81;-1:-1:-1;;;;;11341:2310:81;;;4576:50:80;;4572:119;;4709:73;4710:72;4745:36;;:33;;;:36;:::i;:::-;4710:72;:::i;:::-;4709:73;;11341:2310:81;4709:73:80;4705:140;;11341:2310:81;;4496:9:80;;4705:140;11341:2310:81;;-1:-1:-1;;;4809:21:80;;11341:2310:81;;4809:21:80;4572:119;11341:2310:81;;-1:-1:-1;;;4653:23:80;;11341:2310:81;;4653:23:80;4507:44;-1:-1:-1;;11341:2310:81;;4380:54:80;11341:2310:81;;-1:-1:-1;;;;;;11341:2310:81;-1:-1:-1;;;;;11341:2310:81;;;;;;;;;;-1:-1:-1;4865:26:80;;-1:-1:-1;;11341:2310:81;4865:26:80;4909:17;4015:918;:::o;4375:106::-;4418:15;11341:2310:81;-1:-1:-1;;;4457:13:80;;4380:54;;4457:13;4380:54;;;;;;;;;;;;;;:::i;:::-;;;;4204:161;11341:2310:81;;-1:-1:-1;;;4334:20:80;;;;;4208:103;4266:33;;;;;11341:2310:81;4266:45:80;4208:103;;6999:207:86;;11341:2310:81;;9594:15:60;-1:-1:-1;9619:18:60;9652:7;9658:1;9652:7;;9648:234;;6999:207:86;9906:53:60;;;;;:::i;:::-;9977:8;;;:63;-1:-1:-1;9977:63:60;;-1:-1:-1;;;;;11341:2310:81;;7168:7:86;11341:2310:81;;;7178:12:86;;:17;:12;;:17;:::i;9977:63:60:-;9992:41;10025:7;9992:48;10025:7;;:::i;:::-;9992:41;13267:109:86;;;;;;13089:293;;9992:41:60;11341:2310:81;;;;;9992:48:60;9977:63;;;9648:234;9695:14;;;;;:::i;:::-;11341:2310:81;;;;;;;9906:53:60;13267:109:86;;-1:-1:-1;13267:109:86;11341:2310:81;13267:109:86;;;-1:-1:-1;13267:109:86;;11341:2310:81;;;;;9727:48:60;9723:149;11341:2310:81;;;9795:10:60;9723:149;9648:234;;9723:149;9850:7;;;;;;:::i;:::-;9723:149;9648:234;;11341:2310:81;;;;;;;:::i;:::-;-1:-1:-1;11341:2310:81;;;;;;;:::o;11486:272:86:-;;11341:2310:81;11308:22:60;11718:31:86;11486:272;11341:2310:81;;:::i;:::-;;;;:::i;:::-;;11308:22:60;;:::i;:::-;11341:2310:81;;:::i;:::-;;11718:12:86;11341:2310:81;;;;;11731:17:86;11341:2310:81;;;;;11731:17:86;;11341:2310:81;;11718:12:86;;:31;:::i;:::-;11341:2310:81;;;;;;;;;:::i;:::-;;;;;;11731:17:86;11672:79;;11341:2310:81;11486:272:86;:::o;2557:104:57:-;;2641:5;;;;;;:13;2557:104;:::o;2641:13::-;;;2557:104;:::o;11341:2310:81:-;;;-1:-1:-1;;;11341:2310:81;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;11341:2310:81;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;11513:870:60;11341:2310:81;;11513:870:60;;;11341:2310:81;11513:870:60;11672:7;;;;11341:2310:81;11775:28:60;11795:7;;;:::i;11341:2310:81:-;;;;;;;;;;;;;;;;11877:15:60;-1:-1:-1;11873:91:60;;11341:2310:81;;12233:11:60;11341:2310:81;;;12027:16:60;11341:2310:81;;;;;;;12027:16:60;;;;12083:7;12063:43;12083:7;;12063:28;12083:7;;:::i;:::-;12063:28;13267:109:86;;;;;;13089:293;;12063:28:60;11341:2310:81;;;;;;;;;;;;;;;;;12063:43:60;12233:11;11341:2310:81;-1:-1:-1;;;;;11341:2310:81;;;12023:189:60;11341:2310:81;;;12145:52:60;11341:2310:81;12155:41:60;11341:2310:81;;:::i;:::-;;;;;;;;12155:41:60;-1:-1:-1;;;;;11341:2310:81;;12155:41:60;;;11341:2310:81;12145:52:60;:::i;:::-;12023:189;;11873:91;11341:2310:81;;-1:-1:-1;;;11919:30:60;;;;;11668:709;12283:52;11341:2310:81;;12293:41:60;11341:2310:81;;:::i;12293:41:60:-;-1:-1:-1;;;;;11341:2310:81;;12293:41:60;;;11341:2310:81;12145:52:60;:::i;12283:::-;11678:1;12349:17;;:::o;2774:153:57:-;;2900:5;;;2910;;11341:2310:81;;;;;;;;;2774:153:57;:::o;7084:141:25:-;11341:2310:81;-1:-1:-1;;;;;;;;;;;11341:2310:81;;;;7150:18:25;7146:73;;7084:141::o;7146:73::-;11341:2310:81;;-1:-1:-1;;;7191:17:25;;;;;12736:433:60;;12919:10;;;;;;13151:11;;;12736:433;:::o;12912:230::-;12959:23;;;;;;;:::i;:::-;13267:109:86;;-1:-1:-1;13267:109:86;11341:2310:81;13267:109:86;;;-1:-1:-1;13267:109:86;;11341:2310:81;;;;;-1:-1:-1;12996:136:60;11341:2310:81;;;13055:10:60;12996:136;;12912:230;;;;12996:136;11341:2310:81;;13116:1:60;11341:2310:81;;;;;;12996:136:60;11341:2310:81;;:::i","linkReferences":{},"immutableReferences":{"57808":[{"start":1956,"length":32}],"57811":[{"start":3948,"length":32}],"58762":[{"start":1429,"length":32},{"start":4005,"length":32}],"58765":[{"start":959,"length":32},{"start":8857,"length":32}],"58768":[{"start":1027,"length":32},{"start":6514,"length":32},{"start":6817,"length":32}],"58771":[{"start":1299,"length":32},{"start":6361,"length":32},{"start":6943,"length":32}],"60687":[{"start":3534,"length":32},{"start":11024,"length":32}],"61955":[{"start":3369,"length":32},{"start":5274,"length":32}],"61957":[{"start":2830,"length":32},{"start":5435,"length":32}],"61959":[{"start":3696,"length":32}],"62368":[{"start":1164,"length":32}]}},"methodIdentifiers":{"BASE_DELEGATOR_HINTS()":"79d89614","DEFAULT_ADMIN_ROLE()":"a217fddf","FACTORY()":"2dd31000","HOOK_GAS_LIMIT()":"ff54740f","HOOK_RESERVE()":"557cab44","HOOK_SET_ROLE()":"6679191e","NETWORK_LIMIT_SET_ROLE()":"7d24bb27","NETWORK_REGISTRY()":"c0cd7c3e","OPERATOR_NETWORK_OPT_IN_SERVICE()":"1a80e500","OPERATOR_REGISTRY()":"83ce0322","OPERATOR_VAULT_OPT_IN_SERVICE()":"128e5d82","OPT_IN_SERVICE_HINTS()":"9b656b22","TYPE()":"bb24fe8a","VAULT_FACTORY()":"103f2907","VAULT_HINTS()":"45e78fcb","VERSION()":"ffa1ad74","getRoleAdmin(bytes32)":"248a9ca3","grantRole(bytes32,address)":"2f2ff15d","hasRole(bytes32,address)":"91d14854","hook()":"7f5a7c7b","initialize(bytes)":"439fab91","maxNetworkLimit(bytes32)":"d15b740e","networkLimit(bytes32)":"3eb22c0f","networkLimitAt(bytes32,uint48,bytes)":"5d32a1c9","networkLimitHint(address,bytes32,uint48)":"da749d2b","networkLimitHintInternal(bytes32,uint48)":"197aa7ea","onSlash(bytes32,address,uint256,uint48,bytes)":"e49561ee","operator()":"570ca735","renounceRole(bytes32,address)":"36568abe","revokeRole(bytes32,address)":"d547741f","setHook(address)":"3dfd3873","setMaxNetworkLimit(uint96,uint256)":"23f752d5","setNetworkLimit(bytes32,uint256)":"02145348","stake(bytes32,address)":"fd4d447c","stakeAt(bytes32,address,uint48,bytes)":"e02f6937","stakeHints(address,bytes32,address,uint48)":"25dc9708","staticDelegateCall(address,bytes)":"9f86fd85","supportsInterface(bytes4)":"01ffc9a7","vault()":"fbfa77cf"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"baseDelegatorHints\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"vaultHints\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"optInServiceHints\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"AccessControlBadConfirmation\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"neededRole\",\"type\":\"bytes32\"}],\"name\":\"AccessControlUnauthorizedAccount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AlreadySet\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CheckpointUnorderedInsertion\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"DuplicateRoleHolder\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ExceedsMaxNetworkLimit\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ExternalCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientHookGas\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MissingRoleHolders\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotNetwork\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotOperator\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotSlasher\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotVault\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ReentrancyGuardReentrantCall\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"bits\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"SafeCastOverflowedUintDowncast\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ZeroAddressRoleHolder\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint48\",\"name\":\"captureTimestamp\",\"type\":\"uint48\"}],\"name\":\"OnSlash\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"previousAdminRole\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"newAdminRole\",\"type\":\"bytes32\"}],\"name\":\"RoleAdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleRevoked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"hook\",\"type\":\"address\"}],\"name\":\"SetHook\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"SetMaxNetworkLimit\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"SetNetworkLimit\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"BASE_DELEGATOR_HINTS\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"DEFAULT_ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"FACTORY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"HOOK_GAS_LIMIT\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"HOOK_RESERVE\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"HOOK_SET_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"NETWORK_LIMIT_SET_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"NETWORK_REGISTRY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"OPERATOR_NETWORK_OPT_IN_SERVICE\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"OPERATOR_REGISTRY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"OPERATOR_VAULT_OPT_IN_SERVICE\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"OPT_IN_SERVICE_HINTS\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"TYPE\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"VAULT_FACTORY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"VAULT_HINTS\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"VERSION\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleAdmin\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"grantRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"hook\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"}],\"name\":\"maxNetworkLimit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"}],\"name\":\"networkLimit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hint\",\"type\":\"bytes\"}],\"name\":\"networkLimitAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"}],\"name\":\"networkLimitHint\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"}],\"name\":\"networkLimitHintInternal\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"exists\",\"type\":\"bool\"},{\"internalType\":\"uint32\",\"name\":\"hint\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint48\",\"name\":\"captureTimestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"onSlash\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"operator\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"callerConfirmation\",\"type\":\"address\"}],\"name\":\"renounceRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"hook_\",\"type\":\"address\"}],\"name\":\"setHook\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint96\",\"name\":\"identifier\",\"type\":\"uint96\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"setMaxNetworkLimit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"setNetworkLimit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"stake\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hints\",\"type\":\"bytes\"}],\"name\":\"stakeAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"}],\"name\":\"stakeHints\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"staticDelegateCall\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"vault\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"AccessControlBadConfirmation()\":[{\"details\":\"The caller of a function is not the expected one. NOTE: Don't confuse with {AccessControlUnauthorizedAccount}.\"}],\"AccessControlUnauthorizedAccount(address,bytes32)\":[{\"details\":\"The `account` is missing a role.\"}],\"CheckpointUnorderedInsertion()\":[{\"details\":\"A value was attempted to be inserted on a past checkpoint.\"}],\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"ReentrancyGuardReentrantCall()\":[{\"details\":\"Unauthorized reentrant call.\"}],\"SafeCastOverflowedUintDowncast(uint8,uint256)\":[{\"details\":\"Value doesn't fit in an uint of `bits` size.\"}]},\"events\":{\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"OnSlash(bytes32,address,uint256,uint48)\":{\"params\":{\"amount\":\"amount of the collateral to be slashed\",\"captureTimestamp\":\"time point when the stake was captured\",\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"}},\"RoleAdminChanged(bytes32,bytes32,bytes32)\":{\"details\":\"Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole` `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite {RoleAdminChanged} not being emitted signaling this.\"},\"RoleGranted(bytes32,address,address)\":{\"details\":\"Emitted when `account` is granted `role`. `sender` is the account that originated the contract call, an admin role bearer except when using {AccessControl-_setupRole}.\"},\"RoleRevoked(bytes32,address,address)\":{\"details\":\"Emitted when `account` is revoked `role`. `sender` is the account that originated the contract call: - if using `revokeRole`, it is the admin role bearer - if using `renounceRole`, it is the role bearer (i.e. `account`)\"},\"SetHook(address)\":{\"params\":{\"hook\":\"address of the hook\"}},\"SetMaxNetworkLimit(bytes32,uint256)\":{\"params\":{\"amount\":\"new maximum subnetwork's limit (how much stake the subnetwork is ready to get)\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"}},\"SetNetworkLimit(bytes32,uint256)\":{\"params\":{\"amount\":\"new subnetwork's limit (how much stake the vault curator is ready to give to the subnetwork)\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"}}},\"kind\":\"dev\",\"methods\":{\"VERSION()\":{\"details\":\"Must return 1 for this one.\",\"returns\":{\"_0\":\"version of the delegator\"}},\"getRoleAdmin(bytes32)\":{\"details\":\"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}.\"},\"grantRole(bytes32,address)\":{\"details\":\"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event.\"},\"hasRole(bytes32,address)\":{\"details\":\"Returns `true` if `account` has been granted `role`.\"},\"initialize(bytes)\":{\"params\":{\"data\":\"some data to use\"}},\"networkLimit(bytes32)\":{\"params\":{\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"},\"returns\":{\"_0\":\"limit of the subnetwork\"}},\"networkLimitAt(bytes32,uint48,bytes)\":{\"params\":{\"hint\":\"hint for checkpoint index\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\",\"timestamp\":\"time point to get the subnetwork limit at\"},\"returns\":{\"_0\":\"limit of the subnetwork at the given timestamp\"}},\"onSlash(bytes32,address,uint256,uint48,bytes)\":{\"details\":\"Only the vault's slasher can call this function.\",\"params\":{\"amount\":\"amount of the collateral slashed\",\"captureTimestamp\":\"time point when the stake was captured\",\"data\":\"some additional data\",\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"}},\"renounceRole(bytes32,address)\":{\"details\":\"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `callerConfirmation`. May emit a {RoleRevoked} event.\"},\"revokeRole(bytes32,address)\":{\"details\":\"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event.\"},\"setHook(address)\":{\"details\":\"Only a HOOK_SET_ROLE holder can call this function. The hook can have arbitrary logic under certain functions, however, it doesn't affect the stake guarantees.\",\"params\":{\"hook\":\"address of the hook\"}},\"setMaxNetworkLimit(uint96,uint256)\":{\"details\":\"Only a network can call this function.\",\"params\":{\"amount\":\"new maximum subnetwork's limit\"}},\"setNetworkLimit(bytes32,uint256)\":{\"details\":\"Only a NETWORK_LIMIT_SET_ROLE holder can call this function.\",\"params\":{\"amount\":\"new limit of the subnetwork\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"}},\"stake(bytes32,address)\":{\"details\":\"Warning: this function is not safe to use for stake capturing, as it can change by the end of the block.\",\"params\":{\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"},\"returns\":{\"_0\":\"slashable stake until the end of the next epoch\"}},\"stakeAt(bytes32,address,uint48,bytes)\":{\"details\":\"Warning: it is not safe to use timestamp >= current one for the stake capturing, as it can change later.\",\"params\":{\"hints\":\"hints for the checkpoints' indexes\",\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\",\"timestamp\":\"time point to capture the stake at\"},\"returns\":{\"_0\":\"slashable stake at the given timestamp until the end of the consequent epoch\"}},\"staticDelegateCall(address,bytes)\":{\"details\":\"It allows to use this contract's storage on-chain.\",\"params\":{\"data\":\"data to make a delegatecall with\",\"target\":\"address of the contract to make a delegatecall to\"}},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"}},\"version\":1},\"userdoc\":{\"events\":{\"OnSlash(bytes32,address,uint256,uint48)\":{\"notice\":\"Emitted when a slash happens.\"},\"SetHook(address)\":{\"notice\":\"Emitted when a hook is set.\"},\"SetMaxNetworkLimit(bytes32,uint256)\":{\"notice\":\"Emitted when a subnetwork's maximum limit is set.\"},\"SetNetworkLimit(bytes32,uint256)\":{\"notice\":\"Emitted when a subnetwork's limit is set.\"}},\"kind\":\"user\",\"methods\":{\"FACTORY()\":{\"notice\":\"Get the factory's address.\"},\"HOOK_GAS_LIMIT()\":{\"notice\":\"Get a gas limit for the hook.\"},\"HOOK_RESERVE()\":{\"notice\":\"Get a reserve gas between the gas limit check and the hook's execution.\"},\"HOOK_SET_ROLE()\":{\"notice\":\"Get a hook setter's role.\"},\"NETWORK_LIMIT_SET_ROLE()\":{\"notice\":\"Get a subnetwork limit setter's role.\"},\"NETWORK_REGISTRY()\":{\"notice\":\"Get the network registry's address.\"},\"OPERATOR_NETWORK_OPT_IN_SERVICE()\":{\"notice\":\"Get the operator-network opt-in service's address.\"},\"OPERATOR_REGISTRY()\":{\"notice\":\"Get the operator registry's address.\"},\"OPERATOR_VAULT_OPT_IN_SERVICE()\":{\"notice\":\"Get the operator-vault opt-in service's address.\"},\"TYPE()\":{\"notice\":\"Get the entity's type.\"},\"VAULT_FACTORY()\":{\"notice\":\"Get the vault factory's address.\"},\"VERSION()\":{\"notice\":\"Get a version of the delegator (different versions mean different interfaces).\"},\"hook()\":{\"notice\":\"Get the hook's address.\"},\"initialize(bytes)\":{\"notice\":\"Initialize this entity contract by using a given data.\"},\"maxNetworkLimit(bytes32)\":{\"notice\":\"Get a particular subnetwork's maximum limit (meaning the subnetwork is not ready to get more as a stake).\"},\"networkLimit(bytes32)\":{\"notice\":\"Get a subnetwork's limit (how much stake the vault curator is ready to give to the subnetwork).\"},\"networkLimitAt(bytes32,uint48,bytes)\":{\"notice\":\"Get a subnetwork's limit at a given timestamp using a hint (how much stake the vault curator is ready to give to the subnetwork).\"},\"onSlash(bytes32,address,uint256,uint48,bytes)\":{\"notice\":\"Called when a slash happens.\"},\"operator()\":{\"notice\":\"Get an operator managing the vault's funds.\"},\"setHook(address)\":{\"notice\":\"Set a new hook.\"},\"setMaxNetworkLimit(uint96,uint256)\":{\"notice\":\"Set a maximum limit for a subnetwork (how much stake the subnetwork is ready to get). identifier identifier of the subnetwork\"},\"setNetworkLimit(bytes32,uint256)\":{\"notice\":\"Set a subnetwork's limit (how much stake the vault curator is ready to give to the subnetwork).\"},\"stake(bytes32,address)\":{\"notice\":\"Get a stake that a given subnetwork will be able to slash for a certain operator until the end of the next epoch (if no cross-slashing and no slashings by the subnetwork).\"},\"stakeAt(bytes32,address,uint48,bytes)\":{\"notice\":\"Get a stake that a given subnetwork could be able to slash for a certain operator at a given timestamp until the end of the consequent epoch using hints (if no cross-slashing and no slashings by the subnetwork).\"},\"staticDelegateCall(address,bytes)\":{\"notice\":\"Make a delegatecall from this contract to a given target contract with a particular data (always reverts with a return data).\"},\"vault()\":{\"notice\":\"Get the vault's address.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/contracts/hints/DelegatorHints.sol\":\"OperatorSpecificDelegatorHints\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol\":{\"keccak256\":\"0x6662ec4e5cefca03eeadd073e9469df8d2944bb2ee8ec8f7622c2c46aab5f225\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4d8544c6f8daa4d1bc215c6a72fe0acdb748664a105b0e5efc19295667521d45\",\"dweb:/ipfs/QmdGWqdnXT8S3RgCR6aV8XHZrsybieMQLLnug1NtpSjEXN\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0xc163fcf9bb10138631a9ba5564df1fa25db9adff73bd9ee868a8ae1858fe093a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9706d43a0124053d9880f6e31a59f31bc0a6a3dc1acd66ce0a16e1111658c5f6\",\"dweb:/ipfs/QmUFmfowzkRwGtDu36cXV9SPTBHJ3n7dG9xQiK5B28jTf2\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609\",\"dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9\",\"dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardUpgradeable.sol\":{\"keccak256\":\"0xb44e086e941292cdc7f440de51478493894ef0b1aeccb0c4047445919f667f74\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://942dad22fbdc1669f025540ba63aa3ccfad5f8458fc5d4525b31ebf272e7af45\",\"dweb:/ipfs/Qmdo4X2M82aM3AMoW2kf2jhYkSCyC4T1pHNd6obdsDFnAB\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol\":{\"keccak256\":\"0xdaba3f7c42c55b2896353f32bd27d4d5f8bae741b3b05d4c53f67abc4dc47ce8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1fa2e61141c602510bcd2cd936ed9561922ac8772a9b9c9a9db091a74e354a45\",\"dweb:/ipfs/QmcHQDDoEBwJmwUbzoVkytvJsBx3KVHYFFnDkvRGWh9Wmh\"]},\"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0xb6b36edd6a2999fd243ff226d6cbf84bd71af2432bbd0dfe19392996a1d9cb41\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1fd2f35495652e57e3f99bc6c510bc5f7dd398a176ea2e72d8ed730aebc6ca26\",\"dweb:/ipfs/QmTQV6X4gkikTib49cho5iDX3JvSQbdsoEChoDwrk3CbbH\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC1271.sol\":{\"keccak256\":\"0x85a45f3f10014a0f8be41157a32b6a5f905753ea64a4b64e29fc12b7deeecf39\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c3c74009ce36136b36c77c23935b8e4a7b4f253be2da2be4fb4a916b1ce43743\",\"dweb:/ipfs/QmcH36v3iN7SJJuF73AunLR2LtNxhVJ1wm63ph4dPZ4pcL\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC5267.sol\":{\"keccak256\":\"0x92aa1df62dc3d33f1656d63bede0923e0df0b706ad4137c8b10b0a8fe549fd92\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c5c0f29195ad64cbe556da8e257dac8f05f78c53f90323c0d2accf8e6922d33a\",\"dweb:/ipfs/QmQ61TED8uaCZwcbh8KkgRSsCav7x7HbcGHwHts3U4DmUP\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c\",\"dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0x6008dabfe393240d73d7dd7688033f72740d570aa422254d29a7dce8568f3aff\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f5196ec75139918c6c7bb4251b36395e668f1fa6d206beba7e7520e74913940d\",\"dweb:/ipfs/QmSyqjksXxmm2mCG6qRd1yuwLykypkSVBbnBnGqJRcuJMi\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x37bb49513c49c87c4642a891b13b63571bc87013dde806617aa1efb54605f386\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b3036b3a83b7c48f96641f2a9002b9f2dcb6a5958dd670894ada21ae8229b3d0\",\"dweb:/ipfs/QmUNfSBdoVtjhETaUJCYcaC7pTMgbhht926tJ2uXJbiVd3\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0xaf28a975a78550e45f65e559a3ad6a5ad43b9b8a37366999abd1b7084eb70721\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b7bd24e224f67f65bfadf85dc2929fa965456bb2415478bd0125471b5ce35245\",\"dweb:/ipfs/QmRaydGr8BTHs1kvaZfsNU69pKzUAGFrvABn1KiRSbE51y\"]},\"lib/openzeppelin-contracts/contracts/utils/ShortStrings.sol\":{\"keccak256\":\"0x18a7171df639a934592915a520ecb97c5bbc9675a1105607aac8a94e72bf62c6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7478e1f13da69a2867ccd883001d836b75620362e743f196376d63ed0c422a1c\",\"dweb:/ipfs/QmWywcQ9TNfwtoqAxbn25d8C5VrV12PrPS9UjtGe6pL2BA\"]},\"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0x32ba59b4b7299237c8ba56319110989d7978a039faf754793064e967e5894418\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1ae50c8b562427df610cc4540c9bf104acca7ef8e2dcae567ae7e52272281e9c\",\"dweb:/ipfs/QmTHiadFCSJUPpRjNegc5SahmeU8bAoY8i9Aq6tVscbcKR\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0x55f102ea785d8399c0e58d1108e2d289506dde18abc6db1b7f68c1f9f9bc5792\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e52e0a7765c943ef14e5bcf11e46e6139fa044be564881378349236bf2e3453\",\"dweb:/ipfs/QmZEeeXoFPW47amyP35gfzomF9DixqqTEPwzBakv6cZw6i\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0xeed0a08b0b091f528356cbc7245891a4c748682d4f6a18055e8e6ca77d12a6cf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba80ba06c8e6be852847e4c5f4492cef801feb6558ae09ed705ff2e04ea8b13c\",\"dweb:/ipfs/QmXRJDv3xHLVQCVXg1ZvR35QS9sij5y9NDWYzMfUfAdTHF\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/EIP712.sol\":{\"keccak256\":\"0x999f705a027ed6dc2d4e0df2cc4a509852c6bfd11de1c8161bf88832d0503fd0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0798def67258d9a3cc20b2b4da7ebf351a5cefe0abfdd665d2d81f8e32f89b21\",\"dweb:/ipfs/QmPEvJosnPfzHNjKvCv2D3891mA2Ww8eUwkqrxBjuYdHCt\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol\":{\"keccak256\":\"0xba333517a3add42cd35fe877656fc3dfcc9de53baa4f3aabbd6d12a92e4ea435\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2ceacff44c0fdc81e48e0e0b1db87a2076d3c1fb497341de077bf1da9f6b406c\",\"dweb:/ipfs/QmRUo1muMRAewxrKQ7TkXUtknyRoR57AyEkoPpiuZQ8FzX\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/SignatureChecker.sol\":{\"keccak256\":\"0x6b11eb41a228cca35d4b662b4df69fcd75192851365102690f57b2ac01e83fe6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ab006a2983ed350d2af21ddcdd835dcae3b8340086cc4d088460da5abd041f69\",\"dweb:/ipfs/QmbEacDhkJZiGrgzLjB4pNtE8Z1uudjDw1DvcDUTVQFsLG\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875\",\"dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0xe19a4d5f31d2861e7344e8e535e2feafb913d806d3e2b5fe7782741a2a7094fe\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4aed79c0fa6f0546ed02f2f683e8f77f0fd2ed7eb34d8bbf3d373c9a6d95b13c\",\"dweb:/ipfs/QmWqVz6UAVqmnWU5pqYPt1o6iDEZyPaBraAA3rKfTTSfYj\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x5f7e4076e175393767754387c962926577f1660dd9b810187b9002407656be72\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7d533a1c97cd43a57cd9c465f7ee8dd0e39ae93a8fb8ff8e5303a356b081cdcc\",\"dweb:/ipfs/QmVBEei6aTnvYNZp2CHYVNKyZS4q1KkjANfY39WVXZXVoT\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/Checkpoints.sol\":{\"keccak256\":\"0xbdc5e074d7dd6678f67e92b1a51a20226801a407b0e1af3da367c5d1ff4519ad\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a36cca6b22fff3db16fc789ff6c60eea71d4b156065d4d0c83a0bc5e91a77a8b\",\"dweb:/ipfs/QmYN3exd5AemxjBrN8XMB1p5LbbE16uC3sjbYjwi8AjcGR\"]},\"lib/openzeppelin-contracts/contracts/utils/types/Time.sol\":{\"keccak256\":\"0xc7755af115020049e4140f224f9ee88d7e1799ffb0646f37bf0df24bf6213f58\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7f09bf94d5274334ec021f61a04659db303f31e60460e14b709c9bf187740111\",\"dweb:/ipfs/QmNvgomZYUwFAt4cZbPWAiTeSZQreGehY9BK5xyVJsUttb\"]},\"src/contracts/common/Entity.sol\":{\"keccak256\":\"0x3d61a932995b8443381f3950542d388223a2c26dd5d29a3274dea3baa7388bd7\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://7cdf5f03ca72fd263fd32ff59c8d88ddca911ae83896a287d10772c1bbe9b138\",\"dweb:/ipfs/QmbP84r5BWT1Rn9AYTntWSf3xUMTTCohTZJFhbBhDXFoHa\"]},\"src/contracts/common/MigratableEntity.sol\":{\"keccak256\":\"0x2d736f4dacd5d7e7697503bc426c78b8250fe1694ca157965ec178da6807de58\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://f1237acf96b4b9f9b69156e068eddd726a6e15bd8e87a18dc999cd4ba4da069c\",\"dweb:/ipfs/QmS6M8fiFFSeuJ4ZKKq1z8W7w4ybeHQSy5TLASGoc1LVic\"]},\"src/contracts/common/StaticDelegateCallable.sol\":{\"keccak256\":\"0x350029aa8955eacaffffaeb58babc5c98e80ebc5c5db388ed17ee6465f4a9d90\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://eb392a8ee9050e0af606897df63e3404e3829e8b688b580663892f9664195764\",\"dweb:/ipfs/QmaXC8jqV8UrrAFkzXTEv2fJF56sy33HhLxAzaRZmUxuXD\"]},\"src/contracts/delegator/BaseDelegator.sol\":{\"keccak256\":\"0x7c54d491fdd4415b764a9c8defa068e56d4c0c8c9419be0053a1d377669290e8\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://9238bfbad0f6eeb0dc7727724de14380f1980b395902269703d5e2ef07e52e10\",\"dweb:/ipfs/QmPJn1V4HNXcEghYvogGuSTF24dSQUPosR5qtsXcmNqRm3\"]},\"src/contracts/delegator/FullRestakeDelegator.sol\":{\"keccak256\":\"0x0a81c4f8e72914563a9cb771e93acf889c71ea36b7bec040e4eb562b199d5af1\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://6fc66b6ba02da77046a0bbbd1dd407a62c08f52e04486c9cbd2cb1cca3da555f\",\"dweb:/ipfs/QmZQivK1ZnMxfRQQ5aLpV9co5u55wQVNev5Rg1hzAqxhkE\"]},\"src/contracts/delegator/NetworkRestakeDelegator.sol\":{\"keccak256\":\"0xd3a8e6522f9c6fdcc2da837c9023afd6bdff2bce45a35590320c475519e3636d\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://58b17a87f6554f08376f9ea7fedf486a4aa75801bf0ad8b23ff5a46959b6b7a3\",\"dweb:/ipfs/QmSTmNh67tYt8CmjVZb57r8N3qX5yeYdMApKPJm3qvQgQw\"]},\"src/contracts/delegator/OperatorNetworkSpecificDelegator.sol\":{\"keccak256\":\"0x031a10722b9ec49048f0952710401131290adb87e71caf294e864e7ac3b98a16\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://72428febc875134b2f29205e6f294634a1c22a7d5c78d6a9cb2f8196f107c9b5\",\"dweb:/ipfs/QmTPwXR6h5oytckmkLrHdKeEMdphJxceDhYUR4zvQeWAwY\"]},\"src/contracts/delegator/OperatorSpecificDelegator.sol\":{\"keccak256\":\"0x630ce62fa30b9f3349ab7a8cf8dbf041319febc6dd757be2f94d3d25944ed328\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://c2ac59d47ce57d2a6819ae9833e1a618a371eccff93eb5ab367b201b01f42bfa\",\"dweb:/ipfs/QmdBpGMBivpNPv2WbH8vnCUy5xkVeaxQvGgqi33vKCz1kA\"]},\"src/contracts/hints/DelegatorHints.sol\":{\"keccak256\":\"0x44aa0c396311a54afbc7c73e8dadeed41e3165a4fd13f712b27d63d50fc3376d\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://2f255214f3531fc707d88be0d56a7a0aed4180439316d099d760d9118aa83093\",\"dweb:/ipfs/QmZD1w5p1ukJSXumUAjvxwGmkPhn7vsr21Y2atLGEZR2oi\"]},\"src/contracts/hints/Hints.sol\":{\"keccak256\":\"0x8b565df1ae35993c097a9e642002782a8f451f6fd01809cad6bcd345bdf1b99c\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://99a19adb01e350a92f534095b3078229df1f2f83077992d75d58d8684be45971\",\"dweb:/ipfs/QmbmwcuswVbzvwHQFTtrJG86oV98GnfxqYTb8cV8u1acox\"]},\"src/contracts/hints/OptInServiceHints.sol\":{\"keccak256\":\"0x95d9407900d27b9f4a1233b772aeed809c07b2dc5b31cfc9fa77ca26514c49e5\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://a13a8877e312d7e6b8b85bde3668c5d84ff5ecc83f762cd573f2b7104c64eb42\",\"dweb:/ipfs/QmYV2J55acuGzCNnS3juABuUHY5U1xc8g8o9jwEyFFdeG5\"]},\"src/contracts/hints/VaultHints.sol\":{\"keccak256\":\"0xccb505b7159b769cc114d67b87c2de6b106557f667fc8f3780114baad5c3c442\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://6d0c80a908fc16e96a8b5605a0bd53f9e89ad0ef0a738fbbae80ba4d3160749b\",\"dweb:/ipfs/QmXo5UtWoR8YmunqcbBU8rQMm1nvmvjNPoXcVrDhh4pEwR\"]},\"src/contracts/libraries/Checkpoints.sol\":{\"keccak256\":\"0xba90097c8bfe0a975499428b5f8ac5569483c7d92ccc28c12d70de416aae040c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://12f5d93ca94cd06d3147db68993165a58e17903ed53682560de61f3085ad4609\",\"dweb:/ipfs/QmePiuAqvXprMLmFZkGZeGjvGPAvsEDHfCDv7BoQhXu9xE\"]},\"src/contracts/libraries/ERC4626Math.sol\":{\"keccak256\":\"0x8441160513c1cbeb1c3b9ee077bcc7e7ce20006b52a77c8dd39ff0ef89699939\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://943f8cc3e26ddf649f465f40c909819f5c864717c4baa339e9e403b9374a4653\",\"dweb:/ipfs/QmXPxi1sUDsrGprZdUgCzoPEosaZMv9ZhygWQ1vAi1phAB\"]},\"src/contracts/libraries/Subnetwork.sol\":{\"keccak256\":\"0xf5ef5506fd66082b3c2e7f3df37529f5a8efad32ac62e7c8914bd63219190bfe\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba031a54ee0d0e9a270c2b9e18437f5668cfeb659cfd5fe0677459d7fcac2a56\",\"dweb:/ipfs/QmReP3H7qQ78tAfgLnJKsNEQNCQfF1X1Get38Ffd4kzq32\"]},\"src/contracts/service/OptInService.sol\":{\"keccak256\":\"0x4e0932077f2686b7990e10d59deb2535334c0d09e52ef6e57c6ab09eca21c4b1\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://7c00d311032ed4a1743aca7475f3c86ce15cdfc2218108efc3731c03d34a5278\",\"dweb:/ipfs/QmUGGfVwVhaHr5kS4177yKKYiLYzi5qZpkEmvYxBZqazxf\"]},\"src/contracts/vault/Vault.sol\":{\"keccak256\":\"0x2ceff6ed3298c4cad144c99fcc79b51cb9397d6ebef00285b915848b476f8c2e\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://11f2fb3581854f3ab6e82e8d4935d9eb510c903a13c3f022346c2956a58f5307\",\"dweb:/ipfs/QmdUnoXoyYoG9SGWyQZCFyLDRUUX3eXyXetkRvw6jxqqBz\"]},\"src/contracts/vault/VaultStorage.sol\":{\"keccak256\":\"0x57db25b127d77ea3472de53e3a4af3354399655b9268638b99ca5925fa364a56\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://aa763d9a6ec508ae3abfb8228b72b9fd9525279e5135d4962e79ff059feb1173\",\"dweb:/ipfs/QmcbDR6E9wyEpu6V2FkEC4hnWy47zXA9LSKJde6zSGd33Q\"]},\"src/interfaces/common/IEntity.sol\":{\"keccak256\":\"0x8ef4b63d6da63489778ccd5f8d13ebdd527dd4b62730b2c616df5af7474d2d21\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a8d69576a9219d85c50816a18ad53a4d53cfcb27ed38b8cccc808dc2734b71b\",\"dweb:/ipfs/QmYVN3P4Q4REvBWJ97TbAcaxm3uyB2anV6NSGa6ZtSwcEv\"]},\"src/interfaces/common/IMigratableEntity.sol\":{\"keccak256\":\"0x8f5f2809f3afbe8ebfbb365dd7b57b4dd3b6f9943a6187eaf648d45895b8e3c4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ffe640537d539e7a4fde70d30d3e4c57f4ba9c2c25c450cea713aae38e8fd5c\",\"dweb:/ipfs/QmSUTGzvdcn1R1KB7tLThMRtESsfPbeXDhhhKWGtntzBds\"]},\"src/interfaces/common/IRegistry.sol\":{\"keccak256\":\"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014\",\"dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK\"]},\"src/interfaces/common/IStaticDelegateCallable.sol\":{\"keccak256\":\"0xa335d4e81b9071b7de66ef92b43ff20671d86516eb1be46fef29a3483cd3f5d5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d464b9db863c14c05547d2b23352f2e9b7b784799cf09f6bbc4906a2a74e3516\",\"dweb:/ipfs/QmUVWzFvJz7eEbDQKiFTTzwi7TEbjcs3VmwdM4kuptAKvi\"]},\"src/interfaces/delegator/IBaseDelegator.sol\":{\"keccak256\":\"0x96bb312f032e17accce3f8f80936d99468029d6b37c9ca74acdb4b026a0148ee\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2a66dcb5b7d1a6ef6a363431ea98ebd78bc4fdd3d7a134d9b542dc66e7d025c2\",\"dweb:/ipfs/QmRhTPLd2ZAyRHmJUFUcWKs9b3if49QY17LYZuRqWmghw8\"]},\"src/interfaces/delegator/IDelegatorHook.sol\":{\"keccak256\":\"0xc51aa8d7d1f6c8043ee819b7aeb86da0e993912e1442098df897e299f01f9f46\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://adddf5cb2ba282aeb576b26efb28640f865a1721cc9b6eee8b3ee0457a2c9780\",\"dweb:/ipfs/QmNYgAmnLRwWZbhTuQhZs9rx4zcme1df5mEepkrniorSoW\"]},\"src/interfaces/delegator/IFullRestakeDelegator.sol\":{\"keccak256\":\"0xa3c8cb2e45d4d8ce90e95263bea40c01dc400f05ad65bc29597d878606be5e7d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://782cf5e201aa4cca037ebafd3807a68ff1cc721d5b8416a35244db0d0607369e\",\"dweb:/ipfs/QmQkJks6x7CKndeTPa9LxgTNygD5uEi7obhADhpq1Lsr9A\"]},\"src/interfaces/delegator/INetworkRestakeDelegator.sol\":{\"keccak256\":\"0xe7030fe30389a147fd710e3436ec346b4842695fd3e65a81b95375c9f1d633fc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://739c7e66d301778054f5c90bee45ec9438f68afba8a03eaaac52064c73b115ad\",\"dweb:/ipfs/QmfZ2ytKcTykAc76nxhg8ikUXV8NdBpetqb8W4YWPcox1Z\"]},\"src/interfaces/delegator/IOperatorNetworkSpecificDelegator.sol\":{\"keccak256\":\"0x74b95e64d29769202d45dd277bb830f623ff3d41ce77b80ce3ee4e318a5c71ec\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e512b903aae5c1b8a028c6e3f4f6223b5cb5d704503cfa6bd37b5346868f5c20\",\"dweb:/ipfs/QmZim9YExsPWtyxyeui993HTKAEmrg8MUcSkZ77Gp2JcuZ\"]},\"src/interfaces/delegator/IOperatorSpecificDelegator.sol\":{\"keccak256\":\"0x72075cab585dc17240cc3e32bc99b92f0d5627ddd988fed680e3e1a52d5a01e4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7448bc90699409ae61d85216b5efc2143a37f0f73354be2aea993bc54afca441\",\"dweb:/ipfs/QmXE4gAxM8pHosZK8mcTcj17puBx484meDCcmrDePskGHZ\"]},\"src/interfaces/service/IOptInService.sol\":{\"keccak256\":\"0x76fb5460a6d87a5705433d4fbeff7253cd75b8bbd0c888b2088f16e86ace146a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://990322019b3d11465f7024bae77ccbf7e2fe5d6fa3c754584778f37d04fa1337\",\"dweb:/ipfs/QmaSNHzcqxTkUCG9a4nqVfLECHLdjdrwAnDi3yDC7tDL24\"]},\"src/interfaces/slasher/IBaseSlasher.sol\":{\"keccak256\":\"0x7c82528b445659c313ab77335c407b0b6efe5e79027187bb287f7bc74202b404\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0274c90aa5df1aa6bb470a6aab53992fb14fd7e5472c9430416505b29647d9cf\",\"dweb:/ipfs/QmckbmJLDetPemVzCnnGcKYWAZV2BRFXGDsjiaec8jkHxx\"]},\"src/interfaces/vault/IVault.sol\":{\"keccak256\":\"0xffee01d383cd4e1a5530c614bf4360c1ef070c288abec9da1eb531b51bc07235\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://04f0046cac285d8ec44ebbb1f79dc94fab4495767190cad8364fbc1fafaadfb9\",\"dweb:/ipfs/QmUawAunwzXfCyShWfhKeThAgKtqe51hmrxvrXvM772M2R\"]},\"src/interfaces/vault/IVaultStorage.sol\":{\"keccak256\":\"0x592626f13754194f83047135de19229c49390bd59e34659b1bb38be71d973a22\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://06a6a9dfddd05e580b32bebe2cff4f63ba26a653180676d58225dd30d9c89d3e\",\"dweb:/ipfs/QmdgzBeY6Sxo8mGtyBxtv1tM1c2kU6J6zjeRd7vuXm4DU6\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.25+commit.b61c2a91"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"baseDelegatorHints","type":"address"},{"internalType":"address","name":"vaultHints","type":"address"},{"internalType":"address","name":"optInServiceHints","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"AccessControlBadConfirmation"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bytes32","name":"neededRole","type":"bytes32"}],"type":"error","name":"AccessControlUnauthorizedAccount"},{"inputs":[],"type":"error","name":"AlreadySet"},{"inputs":[],"type":"error","name":"CheckpointUnorderedInsertion"},{"inputs":[],"type":"error","name":"DuplicateRoleHolder"},{"inputs":[],"type":"error","name":"ExceedsMaxNetworkLimit"},{"inputs":[],"type":"error","name":"ExternalCall"},{"inputs":[],"type":"error","name":"InsufficientHookGas"},{"inputs":[],"type":"error","name":"InvalidInitialization"},{"inputs":[],"type":"error","name":"MissingRoleHolders"},{"inputs":[],"type":"error","name":"NotInitialized"},{"inputs":[],"type":"error","name":"NotInitializing"},{"inputs":[],"type":"error","name":"NotNetwork"},{"inputs":[],"type":"error","name":"NotOperator"},{"inputs":[],"type":"error","name":"NotSlasher"},{"inputs":[],"type":"error","name":"NotVault"},{"inputs":[],"type":"error","name":"ReentrancyGuardReentrantCall"},{"inputs":[{"internalType":"uint8","name":"bits","type":"uint8"},{"internalType":"uint256","name":"value","type":"uint256"}],"type":"error","name":"SafeCastOverflowedUintDowncast"},{"inputs":[],"type":"error","name":"ZeroAddressRoleHolder"},{"inputs":[{"internalType":"uint64","name":"version","type":"uint64","indexed":false}],"type":"event","name":"Initialized","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32","indexed":true},{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false},{"internalType":"uint48","name":"captureTimestamp","type":"uint48","indexed":false}],"type":"event","name":"OnSlash","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"bytes32","name":"previousAdminRole","type":"bytes32","indexed":true},{"internalType":"bytes32","name":"newAdminRole","type":"bytes32","indexed":true}],"type":"event","name":"RoleAdminChanged","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"address","name":"sender","type":"address","indexed":true}],"type":"event","name":"RoleGranted","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"address","name":"sender","type":"address","indexed":true}],"type":"event","name":"RoleRevoked","anonymous":false},{"inputs":[{"internalType":"address","name":"hook","type":"address","indexed":true}],"type":"event","name":"SetHook","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"SetMaxNetworkLimit","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"SetNetworkLimit","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"BASE_DELEGATOR_HINTS","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"DEFAULT_ADMIN_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"FACTORY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"HOOK_GAS_LIMIT","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"HOOK_RESERVE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"HOOK_SET_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"NETWORK_LIMIT_SET_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"NETWORK_REGISTRY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"OPERATOR_NETWORK_OPT_IN_SERVICE","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"OPERATOR_REGISTRY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"OPERATOR_VAULT_OPT_IN_SERVICE","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"OPT_IN_SERVICE_HINTS","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"TYPE","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"VAULT_FACTORY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"VAULT_HINTS","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"VERSION","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getRoleAdmin","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"grantRole"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"hasRole","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"hook","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"}],"stateMutability":"view","type":"function","name":"maxNetworkLimit","outputs":[{"internalType":"uint256","name":"value","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"}],"stateMutability":"view","type":"function","name":"networkLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"uint48","name":"timestamp","type":"uint48"},{"internalType":"bytes","name":"hint","type":"bytes"}],"stateMutability":"view","type":"function","name":"networkLimitAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"delegator","type":"address"},{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"uint48","name":"timestamp","type":"uint48"}],"stateMutability":"view","type":"function","name":"networkLimitHint","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"uint48","name":"timestamp","type":"uint48"}],"stateMutability":"view","type":"function","name":"networkLimitHintInternal","outputs":[{"internalType":"bool","name":"exists","type":"bool"},{"internalType":"uint32","name":"hint","type":"uint32"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint48","name":"captureTimestamp","type":"uint48"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"onSlash"},{"inputs":[],"stateMutability":"view","type":"function","name":"operator","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"callerConfirmation","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"renounceRole"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"revokeRole"},{"inputs":[{"internalType":"address","name":"hook_","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setHook"},{"inputs":[{"internalType":"uint96","name":"identifier","type":"uint96"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setMaxNetworkLimit"},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setNetworkLimit"},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"stake","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint48","name":"timestamp","type":"uint48"},{"internalType":"bytes","name":"hints","type":"bytes"}],"stateMutability":"view","type":"function","name":"stakeAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"delegator","type":"address"},{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint48","name":"timestamp","type":"uint48"}],"stateMutability":"view","type":"function","name":"stakeHints","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"staticDelegateCall"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"vault","outputs":[{"internalType":"address","name":"","type":"address"}]}],"devdoc":{"kind":"dev","methods":{"VERSION()":{"details":"Must return 1 for this one.","returns":{"_0":"version of the delegator"}},"getRoleAdmin(bytes32)":{"details":"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}."},"grantRole(bytes32,address)":{"details":"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event."},"hasRole(bytes32,address)":{"details":"Returns `true` if `account` has been granted `role`."},"initialize(bytes)":{"params":{"data":"some data to use"}},"networkLimit(bytes32)":{"params":{"subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"},"returns":{"_0":"limit of the subnetwork"}},"networkLimitAt(bytes32,uint48,bytes)":{"params":{"hint":"hint for checkpoint index","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)","timestamp":"time point to get the subnetwork limit at"},"returns":{"_0":"limit of the subnetwork at the given timestamp"}},"onSlash(bytes32,address,uint256,uint48,bytes)":{"details":"Only the vault's slasher can call this function.","params":{"amount":"amount of the collateral slashed","captureTimestamp":"time point when the stake was captured","data":"some additional data","operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"}},"renounceRole(bytes32,address)":{"details":"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `callerConfirmation`. May emit a {RoleRevoked} event."},"revokeRole(bytes32,address)":{"details":"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event."},"setHook(address)":{"details":"Only a HOOK_SET_ROLE holder can call this function. The hook can have arbitrary logic under certain functions, however, it doesn't affect the stake guarantees.","params":{"hook":"address of the hook"}},"setMaxNetworkLimit(uint96,uint256)":{"details":"Only a network can call this function.","params":{"amount":"new maximum subnetwork's limit"}},"setNetworkLimit(bytes32,uint256)":{"details":"Only a NETWORK_LIMIT_SET_ROLE holder can call this function.","params":{"amount":"new limit of the subnetwork","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"}},"stake(bytes32,address)":{"details":"Warning: this function is not safe to use for stake capturing, as it can change by the end of the block.","params":{"operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"},"returns":{"_0":"slashable stake until the end of the next epoch"}},"stakeAt(bytes32,address,uint48,bytes)":{"details":"Warning: it is not safe to use timestamp >= current one for the stake capturing, as it can change later.","params":{"hints":"hints for the checkpoints' indexes","operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)","timestamp":"time point to capture the stake at"},"returns":{"_0":"slashable stake at the given timestamp until the end of the consequent epoch"}},"staticDelegateCall(address,bytes)":{"details":"It allows to use this contract's storage on-chain.","params":{"data":"data to make a delegatecall with","target":"address of the contract to make a delegatecall to"}},"supportsInterface(bytes4)":{"details":"See {IERC165-supportsInterface}."}},"version":1},"userdoc":{"kind":"user","methods":{"FACTORY()":{"notice":"Get the factory's address."},"HOOK_GAS_LIMIT()":{"notice":"Get a gas limit for the hook."},"HOOK_RESERVE()":{"notice":"Get a reserve gas between the gas limit check and the hook's execution."},"HOOK_SET_ROLE()":{"notice":"Get a hook setter's role."},"NETWORK_LIMIT_SET_ROLE()":{"notice":"Get a subnetwork limit setter's role."},"NETWORK_REGISTRY()":{"notice":"Get the network registry's address."},"OPERATOR_NETWORK_OPT_IN_SERVICE()":{"notice":"Get the operator-network opt-in service's address."},"OPERATOR_REGISTRY()":{"notice":"Get the operator registry's address."},"OPERATOR_VAULT_OPT_IN_SERVICE()":{"notice":"Get the operator-vault opt-in service's address."},"TYPE()":{"notice":"Get the entity's type."},"VAULT_FACTORY()":{"notice":"Get the vault factory's address."},"VERSION()":{"notice":"Get a version of the delegator (different versions mean different interfaces)."},"hook()":{"notice":"Get the hook's address."},"initialize(bytes)":{"notice":"Initialize this entity contract by using a given data."},"maxNetworkLimit(bytes32)":{"notice":"Get a particular subnetwork's maximum limit (meaning the subnetwork is not ready to get more as a stake)."},"networkLimit(bytes32)":{"notice":"Get a subnetwork's limit (how much stake the vault curator is ready to give to the subnetwork)."},"networkLimitAt(bytes32,uint48,bytes)":{"notice":"Get a subnetwork's limit at a given timestamp using a hint (how much stake the vault curator is ready to give to the subnetwork)."},"onSlash(bytes32,address,uint256,uint48,bytes)":{"notice":"Called when a slash happens."},"operator()":{"notice":"Get an operator managing the vault's funds."},"setHook(address)":{"notice":"Set a new hook."},"setMaxNetworkLimit(uint96,uint256)":{"notice":"Set a maximum limit for a subnetwork (how much stake the subnetwork is ready to get). identifier identifier of the subnetwork"},"setNetworkLimit(bytes32,uint256)":{"notice":"Set a subnetwork's limit (how much stake the vault curator is ready to give to the subnetwork)."},"stake(bytes32,address)":{"notice":"Get a stake that a given subnetwork will be able to slash for a certain operator until the end of the next epoch (if no cross-slashing and no slashings by the subnetwork)."},"stakeAt(bytes32,address,uint48,bytes)":{"notice":"Get a stake that a given subnetwork could be able to slash for a certain operator at a given timestamp until the end of the consequent epoch using hints (if no cross-slashing and no slashings by the subnetwork)."},"staticDelegateCall(address,bytes)":{"notice":"Make a delegatecall from this contract to a given target contract with a particular data (always reverts with a return data)."},"vault()":{"notice":"Get the vault's address."}},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/contracts/hints/DelegatorHints.sol":"OperatorSpecificDelegatorHints"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol":{"keccak256":"0x6662ec4e5cefca03eeadd073e9469df8d2944bb2ee8ec8f7622c2c46aab5f225","urls":["bzz-raw://4d8544c6f8daa4d1bc215c6a72fe0acdb748664a105b0e5efc19295667521d45","dweb:/ipfs/QmdGWqdnXT8S3RgCR6aV8XHZrsybieMQLLnug1NtpSjEXN"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol":{"keccak256":"0xc163fcf9bb10138631a9ba5564df1fa25db9adff73bd9ee868a8ae1858fe093a","urls":["bzz-raw://9706d43a0124053d9880f6e31a59f31bc0a6a3dc1acd66ce0a16e1111658c5f6","dweb:/ipfs/QmUFmfowzkRwGtDu36cXV9SPTBHJ3n7dG9xQiK5B28jTf2"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b","urls":["bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609","dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol":{"keccak256":"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397","urls":["bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9","dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardUpgradeable.sol":{"keccak256":"0xb44e086e941292cdc7f440de51478493894ef0b1aeccb0c4047445919f667f74","urls":["bzz-raw://942dad22fbdc1669f025540ba63aa3ccfad5f8458fc5d4525b31ebf272e7af45","dweb:/ipfs/Qmdo4X2M82aM3AMoW2kf2jhYkSCyC4T1pHNd6obdsDFnAB"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol":{"keccak256":"0xdaba3f7c42c55b2896353f32bd27d4d5f8bae741b3b05d4c53f67abc4dc47ce8","urls":["bzz-raw://1fa2e61141c602510bcd2cd936ed9561922ac8772a9b9c9a9db091a74e354a45","dweb:/ipfs/QmcHQDDoEBwJmwUbzoVkytvJsBx3KVHYFFnDkvRGWh9Wmh"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol":{"keccak256":"0xb6b36edd6a2999fd243ff226d6cbf84bd71af2432bbd0dfe19392996a1d9cb41","urls":["bzz-raw://1fd2f35495652e57e3f99bc6c510bc5f7dd398a176ea2e72d8ed730aebc6ca26","dweb:/ipfs/QmTQV6X4gkikTib49cho5iDX3JvSQbdsoEChoDwrk3CbbH"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC1271.sol":{"keccak256":"0x85a45f3f10014a0f8be41157a32b6a5f905753ea64a4b64e29fc12b7deeecf39","urls":["bzz-raw://c3c74009ce36136b36c77c23935b8e4a7b4f253be2da2be4fb4a916b1ce43743","dweb:/ipfs/QmcH36v3iN7SJJuF73AunLR2LtNxhVJ1wm63ph4dPZ4pcL"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC5267.sol":{"keccak256":"0x92aa1df62dc3d33f1656d63bede0923e0df0b706ad4137c8b10b0a8fe549fd92","urls":["bzz-raw://c5c0f29195ad64cbe556da8e257dac8f05f78c53f90323c0d2accf8e6922d33a","dweb:/ipfs/QmQ61TED8uaCZwcbh8KkgRSsCav7x7HbcGHwHts3U4DmUP"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70","urls":["bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c","dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol":{"keccak256":"0x6008dabfe393240d73d7dd7688033f72740d570aa422254d29a7dce8568f3aff","urls":["bzz-raw://f5196ec75139918c6c7bb4251b36395e668f1fa6d206beba7e7520e74913940d","dweb:/ipfs/QmSyqjksXxmm2mCG6qRd1yuwLykypkSVBbnBnGqJRcuJMi"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0x37bb49513c49c87c4642a891b13b63571bc87013dde806617aa1efb54605f386","urls":["bzz-raw://b3036b3a83b7c48f96641f2a9002b9f2dcb6a5958dd670894ada21ae8229b3d0","dweb:/ipfs/QmUNfSBdoVtjhETaUJCYcaC7pTMgbhht926tJ2uXJbiVd3"],"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/ShortStrings.sol":{"keccak256":"0x18a7171df639a934592915a520ecb97c5bbc9675a1105607aac8a94e72bf62c6","urls":["bzz-raw://7478e1f13da69a2867ccd883001d836b75620362e743f196376d63ed0c422a1c","dweb:/ipfs/QmWywcQ9TNfwtoqAxbn25d8C5VrV12PrPS9UjtGe6pL2BA"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol":{"keccak256":"0x32ba59b4b7299237c8ba56319110989d7978a039faf754793064e967e5894418","urls":["bzz-raw://1ae50c8b562427df610cc4540c9bf104acca7ef8e2dcae567ae7e52272281e9c","dweb:/ipfs/QmTHiadFCSJUPpRjNegc5SahmeU8bAoY8i9Aq6tVscbcKR"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0x55f102ea785d8399c0e58d1108e2d289506dde18abc6db1b7f68c1f9f9bc5792","urls":["bzz-raw://6e52e0a7765c943ef14e5bcf11e46e6139fa044be564881378349236bf2e3453","dweb:/ipfs/QmZEeeXoFPW47amyP35gfzomF9DixqqTEPwzBakv6cZw6i"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol":{"keccak256":"0xeed0a08b0b091f528356cbc7245891a4c748682d4f6a18055e8e6ca77d12a6cf","urls":["bzz-raw://ba80ba06c8e6be852847e4c5f4492cef801feb6558ae09ed705ff2e04ea8b13c","dweb:/ipfs/QmXRJDv3xHLVQCVXg1ZvR35QS9sij5y9NDWYzMfUfAdTHF"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/EIP712.sol":{"keccak256":"0x999f705a027ed6dc2d4e0df2cc4a509852c6bfd11de1c8161bf88832d0503fd0","urls":["bzz-raw://0798def67258d9a3cc20b2b4da7ebf351a5cefe0abfdd665d2d81f8e32f89b21","dweb:/ipfs/QmPEvJosnPfzHNjKvCv2D3891mA2Ww8eUwkqrxBjuYdHCt"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol":{"keccak256":"0xba333517a3add42cd35fe877656fc3dfcc9de53baa4f3aabbd6d12a92e4ea435","urls":["bzz-raw://2ceacff44c0fdc81e48e0e0b1db87a2076d3c1fb497341de077bf1da9f6b406c","dweb:/ipfs/QmRUo1muMRAewxrKQ7TkXUtknyRoR57AyEkoPpiuZQ8FzX"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/SignatureChecker.sol":{"keccak256":"0x6b11eb41a228cca35d4b662b4df69fcd75192851365102690f57b2ac01e83fe6","urls":["bzz-raw://ab006a2983ed350d2af21ddcdd835dcae3b8340086cc4d088460da5abd041f69","dweb:/ipfs/QmbEacDhkJZiGrgzLjB4pNtE8Z1uudjDw1DvcDUTVQFsLG"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b","urls":["bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df","dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d","urls":["bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875","dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol":{"keccak256":"0xe19a4d5f31d2861e7344e8e535e2feafb913d806d3e2b5fe7782741a2a7094fe","urls":["bzz-raw://4aed79c0fa6f0546ed02f2f683e8f77f0fd2ed7eb34d8bbf3d373c9a6d95b13c","dweb:/ipfs/QmWqVz6UAVqmnWU5pqYPt1o6iDEZyPaBraAA3rKfTTSfYj"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0x5f7e4076e175393767754387c962926577f1660dd9b810187b9002407656be72","urls":["bzz-raw://7d533a1c97cd43a57cd9c465f7ee8dd0e39ae93a8fb8ff8e5303a356b081cdcc","dweb:/ipfs/QmVBEei6aTnvYNZp2CHYVNKyZS4q1KkjANfY39WVXZXVoT"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/Checkpoints.sol":{"keccak256":"0xbdc5e074d7dd6678f67e92b1a51a20226801a407b0e1af3da367c5d1ff4519ad","urls":["bzz-raw://a36cca6b22fff3db16fc789ff6c60eea71d4b156065d4d0c83a0bc5e91a77a8b","dweb:/ipfs/QmYN3exd5AemxjBrN8XMB1p5LbbE16uC3sjbYjwi8AjcGR"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/types/Time.sol":{"keccak256":"0xc7755af115020049e4140f224f9ee88d7e1799ffb0646f37bf0df24bf6213f58","urls":["bzz-raw://7f09bf94d5274334ec021f61a04659db303f31e60460e14b709c9bf187740111","dweb:/ipfs/QmNvgomZYUwFAt4cZbPWAiTeSZQreGehY9BK5xyVJsUttb"],"license":"MIT"},"src/contracts/common/Entity.sol":{"keccak256":"0x3d61a932995b8443381f3950542d388223a2c26dd5d29a3274dea3baa7388bd7","urls":["bzz-raw://7cdf5f03ca72fd263fd32ff59c8d88ddca911ae83896a287d10772c1bbe9b138","dweb:/ipfs/QmbP84r5BWT1Rn9AYTntWSf3xUMTTCohTZJFhbBhDXFoHa"],"license":"BUSL-1.1"},"src/contracts/common/MigratableEntity.sol":{"keccak256":"0x2d736f4dacd5d7e7697503bc426c78b8250fe1694ca157965ec178da6807de58","urls":["bzz-raw://f1237acf96b4b9f9b69156e068eddd726a6e15bd8e87a18dc999cd4ba4da069c","dweb:/ipfs/QmS6M8fiFFSeuJ4ZKKq1z8W7w4ybeHQSy5TLASGoc1LVic"],"license":"BUSL-1.1"},"src/contracts/common/StaticDelegateCallable.sol":{"keccak256":"0x350029aa8955eacaffffaeb58babc5c98e80ebc5c5db388ed17ee6465f4a9d90","urls":["bzz-raw://eb392a8ee9050e0af606897df63e3404e3829e8b688b580663892f9664195764","dweb:/ipfs/QmaXC8jqV8UrrAFkzXTEv2fJF56sy33HhLxAzaRZmUxuXD"],"license":"BUSL-1.1"},"src/contracts/delegator/BaseDelegator.sol":{"keccak256":"0x7c54d491fdd4415b764a9c8defa068e56d4c0c8c9419be0053a1d377669290e8","urls":["bzz-raw://9238bfbad0f6eeb0dc7727724de14380f1980b395902269703d5e2ef07e52e10","dweb:/ipfs/QmPJn1V4HNXcEghYvogGuSTF24dSQUPosR5qtsXcmNqRm3"],"license":"BUSL-1.1"},"src/contracts/delegator/FullRestakeDelegator.sol":{"keccak256":"0x0a81c4f8e72914563a9cb771e93acf889c71ea36b7bec040e4eb562b199d5af1","urls":["bzz-raw://6fc66b6ba02da77046a0bbbd1dd407a62c08f52e04486c9cbd2cb1cca3da555f","dweb:/ipfs/QmZQivK1ZnMxfRQQ5aLpV9co5u55wQVNev5Rg1hzAqxhkE"],"license":"BUSL-1.1"},"src/contracts/delegator/NetworkRestakeDelegator.sol":{"keccak256":"0xd3a8e6522f9c6fdcc2da837c9023afd6bdff2bce45a35590320c475519e3636d","urls":["bzz-raw://58b17a87f6554f08376f9ea7fedf486a4aa75801bf0ad8b23ff5a46959b6b7a3","dweb:/ipfs/QmSTmNh67tYt8CmjVZb57r8N3qX5yeYdMApKPJm3qvQgQw"],"license":"BUSL-1.1"},"src/contracts/delegator/OperatorNetworkSpecificDelegator.sol":{"keccak256":"0x031a10722b9ec49048f0952710401131290adb87e71caf294e864e7ac3b98a16","urls":["bzz-raw://72428febc875134b2f29205e6f294634a1c22a7d5c78d6a9cb2f8196f107c9b5","dweb:/ipfs/QmTPwXR6h5oytckmkLrHdKeEMdphJxceDhYUR4zvQeWAwY"],"license":"BUSL-1.1"},"src/contracts/delegator/OperatorSpecificDelegator.sol":{"keccak256":"0x630ce62fa30b9f3349ab7a8cf8dbf041319febc6dd757be2f94d3d25944ed328","urls":["bzz-raw://c2ac59d47ce57d2a6819ae9833e1a618a371eccff93eb5ab367b201b01f42bfa","dweb:/ipfs/QmdBpGMBivpNPv2WbH8vnCUy5xkVeaxQvGgqi33vKCz1kA"],"license":"BUSL-1.1"},"src/contracts/hints/DelegatorHints.sol":{"keccak256":"0x44aa0c396311a54afbc7c73e8dadeed41e3165a4fd13f712b27d63d50fc3376d","urls":["bzz-raw://2f255214f3531fc707d88be0d56a7a0aed4180439316d099d760d9118aa83093","dweb:/ipfs/QmZD1w5p1ukJSXumUAjvxwGmkPhn7vsr21Y2atLGEZR2oi"],"license":"BUSL-1.1"},"src/contracts/hints/Hints.sol":{"keccak256":"0x8b565df1ae35993c097a9e642002782a8f451f6fd01809cad6bcd345bdf1b99c","urls":["bzz-raw://99a19adb01e350a92f534095b3078229df1f2f83077992d75d58d8684be45971","dweb:/ipfs/QmbmwcuswVbzvwHQFTtrJG86oV98GnfxqYTb8cV8u1acox"],"license":"BUSL-1.1"},"src/contracts/hints/OptInServiceHints.sol":{"keccak256":"0x95d9407900d27b9f4a1233b772aeed809c07b2dc5b31cfc9fa77ca26514c49e5","urls":["bzz-raw://a13a8877e312d7e6b8b85bde3668c5d84ff5ecc83f762cd573f2b7104c64eb42","dweb:/ipfs/QmYV2J55acuGzCNnS3juABuUHY5U1xc8g8o9jwEyFFdeG5"],"license":"BUSL-1.1"},"src/contracts/hints/VaultHints.sol":{"keccak256":"0xccb505b7159b769cc114d67b87c2de6b106557f667fc8f3780114baad5c3c442","urls":["bzz-raw://6d0c80a908fc16e96a8b5605a0bd53f9e89ad0ef0a738fbbae80ba4d3160749b","dweb:/ipfs/QmXo5UtWoR8YmunqcbBU8rQMm1nvmvjNPoXcVrDhh4pEwR"],"license":"BUSL-1.1"},"src/contracts/libraries/Checkpoints.sol":{"keccak256":"0xba90097c8bfe0a975499428b5f8ac5569483c7d92ccc28c12d70de416aae040c","urls":["bzz-raw://12f5d93ca94cd06d3147db68993165a58e17903ed53682560de61f3085ad4609","dweb:/ipfs/QmePiuAqvXprMLmFZkGZeGjvGPAvsEDHfCDv7BoQhXu9xE"],"license":"MIT"},"src/contracts/libraries/ERC4626Math.sol":{"keccak256":"0x8441160513c1cbeb1c3b9ee077bcc7e7ce20006b52a77c8dd39ff0ef89699939","urls":["bzz-raw://943f8cc3e26ddf649f465f40c909819f5c864717c4baa339e9e403b9374a4653","dweb:/ipfs/QmXPxi1sUDsrGprZdUgCzoPEosaZMv9ZhygWQ1vAi1phAB"],"license":"MIT"},"src/contracts/libraries/Subnetwork.sol":{"keccak256":"0xf5ef5506fd66082b3c2e7f3df37529f5a8efad32ac62e7c8914bd63219190bfe","urls":["bzz-raw://ba031a54ee0d0e9a270c2b9e18437f5668cfeb659cfd5fe0677459d7fcac2a56","dweb:/ipfs/QmReP3H7qQ78tAfgLnJKsNEQNCQfF1X1Get38Ffd4kzq32"],"license":"MIT"},"src/contracts/service/OptInService.sol":{"keccak256":"0x4e0932077f2686b7990e10d59deb2535334c0d09e52ef6e57c6ab09eca21c4b1","urls":["bzz-raw://7c00d311032ed4a1743aca7475f3c86ce15cdfc2218108efc3731c03d34a5278","dweb:/ipfs/QmUGGfVwVhaHr5kS4177yKKYiLYzi5qZpkEmvYxBZqazxf"],"license":"BUSL-1.1"},"src/contracts/vault/Vault.sol":{"keccak256":"0x2ceff6ed3298c4cad144c99fcc79b51cb9397d6ebef00285b915848b476f8c2e","urls":["bzz-raw://11f2fb3581854f3ab6e82e8d4935d9eb510c903a13c3f022346c2956a58f5307","dweb:/ipfs/QmdUnoXoyYoG9SGWyQZCFyLDRUUX3eXyXetkRvw6jxqqBz"],"license":"BUSL-1.1"},"src/contracts/vault/VaultStorage.sol":{"keccak256":"0x57db25b127d77ea3472de53e3a4af3354399655b9268638b99ca5925fa364a56","urls":["bzz-raw://aa763d9a6ec508ae3abfb8228b72b9fd9525279e5135d4962e79ff059feb1173","dweb:/ipfs/QmcbDR6E9wyEpu6V2FkEC4hnWy47zXA9LSKJde6zSGd33Q"],"license":"BUSL-1.1"},"src/interfaces/common/IEntity.sol":{"keccak256":"0x8ef4b63d6da63489778ccd5f8d13ebdd527dd4b62730b2c616df5af7474d2d21","urls":["bzz-raw://5a8d69576a9219d85c50816a18ad53a4d53cfcb27ed38b8cccc808dc2734b71b","dweb:/ipfs/QmYVN3P4Q4REvBWJ97TbAcaxm3uyB2anV6NSGa6ZtSwcEv"],"license":"MIT"},"src/interfaces/common/IMigratableEntity.sol":{"keccak256":"0x8f5f2809f3afbe8ebfbb365dd7b57b4dd3b6f9943a6187eaf648d45895b8e3c4","urls":["bzz-raw://0ffe640537d539e7a4fde70d30d3e4c57f4ba9c2c25c450cea713aae38e8fd5c","dweb:/ipfs/QmSUTGzvdcn1R1KB7tLThMRtESsfPbeXDhhhKWGtntzBds"],"license":"MIT"},"src/interfaces/common/IRegistry.sol":{"keccak256":"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb","urls":["bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014","dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK"],"license":"MIT"},"src/interfaces/common/IStaticDelegateCallable.sol":{"keccak256":"0xa335d4e81b9071b7de66ef92b43ff20671d86516eb1be46fef29a3483cd3f5d5","urls":["bzz-raw://d464b9db863c14c05547d2b23352f2e9b7b784799cf09f6bbc4906a2a74e3516","dweb:/ipfs/QmUVWzFvJz7eEbDQKiFTTzwi7TEbjcs3VmwdM4kuptAKvi"],"license":"MIT"},"src/interfaces/delegator/IBaseDelegator.sol":{"keccak256":"0x96bb312f032e17accce3f8f80936d99468029d6b37c9ca74acdb4b026a0148ee","urls":["bzz-raw://2a66dcb5b7d1a6ef6a363431ea98ebd78bc4fdd3d7a134d9b542dc66e7d025c2","dweb:/ipfs/QmRhTPLd2ZAyRHmJUFUcWKs9b3if49QY17LYZuRqWmghw8"],"license":"MIT"},"src/interfaces/delegator/IDelegatorHook.sol":{"keccak256":"0xc51aa8d7d1f6c8043ee819b7aeb86da0e993912e1442098df897e299f01f9f46","urls":["bzz-raw://adddf5cb2ba282aeb576b26efb28640f865a1721cc9b6eee8b3ee0457a2c9780","dweb:/ipfs/QmNYgAmnLRwWZbhTuQhZs9rx4zcme1df5mEepkrniorSoW"],"license":"MIT"},"src/interfaces/delegator/IFullRestakeDelegator.sol":{"keccak256":"0xa3c8cb2e45d4d8ce90e95263bea40c01dc400f05ad65bc29597d878606be5e7d","urls":["bzz-raw://782cf5e201aa4cca037ebafd3807a68ff1cc721d5b8416a35244db0d0607369e","dweb:/ipfs/QmQkJks6x7CKndeTPa9LxgTNygD5uEi7obhADhpq1Lsr9A"],"license":"MIT"},"src/interfaces/delegator/INetworkRestakeDelegator.sol":{"keccak256":"0xe7030fe30389a147fd710e3436ec346b4842695fd3e65a81b95375c9f1d633fc","urls":["bzz-raw://739c7e66d301778054f5c90bee45ec9438f68afba8a03eaaac52064c73b115ad","dweb:/ipfs/QmfZ2ytKcTykAc76nxhg8ikUXV8NdBpetqb8W4YWPcox1Z"],"license":"MIT"},"src/interfaces/delegator/IOperatorNetworkSpecificDelegator.sol":{"keccak256":"0x74b95e64d29769202d45dd277bb830f623ff3d41ce77b80ce3ee4e318a5c71ec","urls":["bzz-raw://e512b903aae5c1b8a028c6e3f4f6223b5cb5d704503cfa6bd37b5346868f5c20","dweb:/ipfs/QmZim9YExsPWtyxyeui993HTKAEmrg8MUcSkZ77Gp2JcuZ"],"license":"MIT"},"src/interfaces/delegator/IOperatorSpecificDelegator.sol":{"keccak256":"0x72075cab585dc17240cc3e32bc99b92f0d5627ddd988fed680e3e1a52d5a01e4","urls":["bzz-raw://7448bc90699409ae61d85216b5efc2143a37f0f73354be2aea993bc54afca441","dweb:/ipfs/QmXE4gAxM8pHosZK8mcTcj17puBx484meDCcmrDePskGHZ"],"license":"MIT"},"src/interfaces/service/IOptInService.sol":{"keccak256":"0x76fb5460a6d87a5705433d4fbeff7253cd75b8bbd0c888b2088f16e86ace146a","urls":["bzz-raw://990322019b3d11465f7024bae77ccbf7e2fe5d6fa3c754584778f37d04fa1337","dweb:/ipfs/QmaSNHzcqxTkUCG9a4nqVfLECHLdjdrwAnDi3yDC7tDL24"],"license":"MIT"},"src/interfaces/slasher/IBaseSlasher.sol":{"keccak256":"0x7c82528b445659c313ab77335c407b0b6efe5e79027187bb287f7bc74202b404","urls":["bzz-raw://0274c90aa5df1aa6bb470a6aab53992fb14fd7e5472c9430416505b29647d9cf","dweb:/ipfs/QmckbmJLDetPemVzCnnGcKYWAZV2BRFXGDsjiaec8jkHxx"],"license":"MIT"},"src/interfaces/vault/IVault.sol":{"keccak256":"0xffee01d383cd4e1a5530c614bf4360c1ef070c288abec9da1eb531b51bc07235","urls":["bzz-raw://04f0046cac285d8ec44ebbb1f79dc94fab4495767190cad8364fbc1fafaadfb9","dweb:/ipfs/QmUawAunwzXfCyShWfhKeThAgKtqe51hmrxvrXvM772M2R"],"license":"MIT"},"src/interfaces/vault/IVaultStorage.sol":{"keccak256":"0x592626f13754194f83047135de19229c49390bd59e34659b1bb38be71d973a22","urls":["bzz-raw://06a6a9dfddd05e580b32bebe2cff4f63ba26a653180676d58225dd30d9c89d3e","dweb:/ipfs/QmdgzBeY6Sxo8mGtyBxtv1tM1c2kU6J6zjeRd7vuXm4DU6"],"license":"MIT"}},"version":1},"id":81} \ No newline at end of file +{"abi":[{"type":"constructor","inputs":[{"name":"baseDelegatorHints","type":"address","internalType":"address"},{"name":"vaultHints","type":"address","internalType":"address"},{"name":"optInServiceHints","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"BASE_DELEGATOR_HINTS","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"DEFAULT_ADMIN_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"FACTORY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"HOOK_GAS_LIMIT","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"HOOK_RESERVE","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"HOOK_SET_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"NETWORK_LIMIT_SET_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"NETWORK_REGISTRY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"OPERATOR_NETWORK_OPT_IN_SERVICE","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"OPERATOR_REGISTRY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"OPERATOR_VAULT_OPT_IN_SERVICE","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"OPT_IN_SERVICE_HINTS","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"TYPE","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"VAULT_FACTORY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"VAULT_HINTS","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"VERSION","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"pure"},{"type":"function","name":"getRoleAdmin","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"grantRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"hasRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"hook","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"initialize","inputs":[{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"maxNetworkLimit","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"value","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"networkLimit","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"networkLimitAt","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"timestamp","type":"uint48","internalType":"uint48"},{"name":"hint","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"networkLimitHint","inputs":[{"name":"delegator","type":"address","internalType":"address"},{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"timestamp","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"networkLimitHintInternal","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"timestamp","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"exists","type":"bool","internalType":"bool"},{"name":"hint","type":"uint32","internalType":"uint32"}],"stateMutability":"view"},{"type":"function","name":"onSlash","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"captureTimestamp","type":"uint48","internalType":"uint48"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"operator","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"renounceRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"callerConfirmation","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"revokeRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setHook","inputs":[{"name":"hook_","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setMaxNetworkLimit","inputs":[{"name":"identifier","type":"uint96","internalType":"uint96"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setNetworkLimit","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"stake","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"stakeAt","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"timestamp","type":"uint48","internalType":"uint48"},{"name":"hints","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"stakeHints","inputs":[{"name":"delegator","type":"address","internalType":"address"},{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"timestamp","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"staticDelegateCall","inputs":[{"name":"target","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"vault","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"OnSlash","inputs":[{"name":"subnetwork","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"captureTimestamp","type":"uint48","indexed":false,"internalType":"uint48"}],"anonymous":false},{"type":"event","name":"RoleAdminChanged","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"previousAdminRole","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"newAdminRole","type":"bytes32","indexed":true,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"RoleGranted","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"sender","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"RoleRevoked","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"sender","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"SetHook","inputs":[{"name":"hook","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"SetMaxNetworkLimit","inputs":[{"name":"subnetwork","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"SetNetworkLimit","inputs":[{"name":"subnetwork","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"error","name":"AccessControlBadConfirmation","inputs":[]},{"type":"error","name":"AccessControlUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"neededRole","type":"bytes32","internalType":"bytes32"}]},{"type":"error","name":"AlreadySet","inputs":[]},{"type":"error","name":"CheckpointUnorderedInsertion","inputs":[]},{"type":"error","name":"DuplicateRoleHolder","inputs":[]},{"type":"error","name":"ExceedsMaxNetworkLimit","inputs":[]},{"type":"error","name":"ExternalCall","inputs":[]},{"type":"error","name":"InsufficientHookGas","inputs":[]},{"type":"error","name":"InvalidInitialization","inputs":[]},{"type":"error","name":"MissingRoleHolders","inputs":[]},{"type":"error","name":"NotInitialized","inputs":[]},{"type":"error","name":"NotInitializing","inputs":[]},{"type":"error","name":"NotNetwork","inputs":[]},{"type":"error","name":"NotOperator","inputs":[]},{"type":"error","name":"NotSlasher","inputs":[]},{"type":"error","name":"NotVault","inputs":[]},{"type":"error","name":"ReentrancyGuardReentrantCall","inputs":[]},{"type":"error","name":"SafeCastOverflowedUintDowncast","inputs":[{"name":"bits","type":"uint8","internalType":"uint8"},{"name":"value","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ZeroAddressRoleHolder","inputs":[]}],"bytecode":{"object":"0x6101e0346101d557601f6131cd38819003918201601f19168301916001600160401b0391828411858510176101d95781606092869260409687528339810103126101d55761004c836101ed565b926100648361005d602084016101ed565b92016101ed565b91306080527ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a009081549060ff82871c166101c4578080831603610180575b5050505f60a0525f60c0525f60e052610100935f8552610120935f85526101405f8152610160915f83526101809384526101a09485526101c09586525195612fcb978861020289396080518861048c015260a051886107a4015260c05188610f6c015260e0518881816105950152610fa50152518781816103bf0152612299015251868181610403015281816119720152611aa1015251858181610513015281816118d90152611b1f015251848181610dce0152612b1b015251838181610d29015261149a015251828181610b0e015261153b01525181610e700152f35b6001600160401b0319909116811790915583519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a15f80806100a2565b855163f92ee8a960e01b8152600490fd5b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b51906001600160a01b03821682036101d55756fe60806040526004361015610011575f80fd5b5f3560e01c806301ffc9a714610284578063021453481461027f578063103f29071461027a578063128e5d8214610275578063197aa7ea146102705780631a80e5001461026b57806323f752d514610266578063248a9ca31461026157806325dc97081461025c5780632dd31000146102575780632f2ff15d1461025257806336568abe1461024d5780633dfd3873146102485780633eb22c0f14610243578063439fab911461023e57806345e78fcb14610239578063557cab4414610234578063570ca7351461022f5780635d32a1c91461022a5780636679191e1461022557806379d89614146102205780637d24bb271461021b5780637f5a7c7b1461021657806383ce03221461021157806391d148541461020c5780639b656b22146102075780639f86fd8514610202578063a217fddf146101fd578063bb24fe8a146101f8578063c0cd7c3e146101f3578063d15b740e146101ee578063d547741f146101e9578063da749d2b146101e4578063e02f6937146101df578063e49561ee146101da578063fbfa77cf146101d5578063fd4d447c146101d0578063ff54740f146101cb5763ffa1ad74146101c6575f80fd5b61132d565b611310565b6112e6565b6112bf565b6110d4565b61107f565b61104a565b610ffe565b610fd4565b610f90565b610f4d565b610f33565b610e9f565b610e5b565b610dfd565b610db9565b610d91565b610d58565b610d14565b610cda565b610c89565b610b59565b610b3d565b610af9565b6109c1565b610963565b61086a565b61081f565b6107d3565b61078f565b610736565b6106c8565b610542565b6104fe565b610471565b6103ee565b6103aa565b6102de565b346102da5760203660031901126102da5760043563ffffffff60e01b81168091036102da57602090637965db0b60e01b81149081156102c9575b506040519015158152f35b6301ffc9a760e01b1490505f6102be565b5f80fd5b346102da576040806003193601126102da576004359060243590610300611b94565b825f526002602052805f2054821161039a57825f52600360205281610326825f206121eb565b1461038a5781610385916103757e899d104fc3d8820bd96540612bcc5c448c8837b13b9f7faa43ad0728f0c14f94610366875f52600360205260405f2090565b61036f42612729565b90611c93565b5050519081529081906020820190565b0390a2005b5163a741a04560e01b8152600490fd5b51631eefc06360e31b8152600490fd5b346102da575f3660031901126102da576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346102da575f3660031901126102da576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b6024359065ffffffffffff821682036102da57565b6064359065ffffffffffff821682036102da57565b6044359065ffffffffffff821682036102da57565b346102da5760403660031901126102da5761048a610432565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633036104ec5763ffffffff6104d76040926004355f526003602052835f20611d79565b91505083929192519215158352166020820152f35b604051637ca475e560e11b8152600490fd5b346102da575f3660031901126102da576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346102da5760403660031901126102da576004356001600160601b03811681036102da5760243590610572611e88565b6040516302910f8b60e31b81523360048201526020816024816001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165afa9081156106c3575f91610694575b5015610682576001600160601b03166bffffffffffffffffffffffff193360601b161790806105fc835f52600260205260405f2090565b541461067057610655817fc67e7929681aa1bccd63f52b3799bf5805f3009f197db6fdf584b14f7fbf608c9261063a855f52600260205260405f2090565b556106458185611eb7565b6040519081529081906020820190565b0390a261066e60015f80516020612f5683398151915255565b005b60405163a741a04560e01b8152600490fd5b6040516323d53b9760e21b8152600490fd5b6106b6915060203d6020116106bc575b6106ae8183610beb565b810190611355565b5f6105c5565b503d6106a4565b61136c565b346102da5760203660031901126102da576004355f525f80516020612f368339815191526020526020600160405f200154604051908152f35b6001600160a01b038116036102da57565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b346102da5760803660031901126102da5761078b61077760043561075981610701565b60443561076581610701565b61076d610447565b9160243590611451565b604051918291602083526020830190610712565b0390f35b346102da575f3660031901126102da576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346102da5760403660031901126102da5761066e6024356004356107f682610701565b805f525f80516020612f3683398151915260205261081a600160405f200154611bf0565b612123565b346102da5760403660031901126102da5760243561083c81610701565b336001600160a01b038216036108585761066e90600435612159565b60405163334bd91960e11b8152600490fd5b346102da5760203660031901126102da5760043561088781610701565b61088f611e88565b335f9081527f9ebbcbe0d2961d3fbe56ca6f679bc753bd848d3e6bb3eaf9041c51b286881d2c60205260409020547fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c9060ff161561094557506001546001600160a01b039182169181168214610670576001600160a01b03191681176001557f5bbb1d3ebb6a3ad2a0f17ff35e579a83af60604d1d3c2a4c83c62adecadf666d5f80a260015f80516020612f5683398151915255005b6044906040519063e2517d3f60e01b82523360048301526024820152fd5b346102da5760203660031901126102da576004355f526003602052602061098c60405f206121eb565b604051908152f35b9181601f840112156102da578235916001600160401b0383116102da57602083818601950101116102da57565b346102da5760203660031901126102da576001600160401b036004358181116102da576109f2903690600401610994565b5f80516020612f76833981519152549260ff8460401c1615931680159081610af1575b6001149081610ae7575b159081610ade575b50610acc575f80516020612f76833981519152805467ffffffffffffffff19166001179055610a5a9183610aa857612264565b610a6057005b5f80516020612f76833981519152805460ff60401b19169055604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a1005b5f80516020612f76833981519152805460ff60401b1916600160401b179055612264565b60405163f92ee8a960e01b8152600490fd5b9050155f610a27565b303b159150610a1f565b849150610a15565b346102da575f3660031901126102da576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346102da575f3660031901126102da576020604051614e208152f35b346102da575f3660031901126102da576004546040516001600160a01b039091168152602090f35b634e487b7160e01b5f52604160045260245ffd5b604081019081106001600160401b03821117610bb057604052565b610b81565b606081019081106001600160401b03821117610bb057604052565b608081019081106001600160401b03821117610bb057604052565b90601f801991011681019081106001600160401b03821117610bb057604052565b60405190610c1982610bb5565b565b60405190610c1982610b95565b6001600160401b038111610bb057601f01601f191660200190565b81601f820112156102da57803590610c5a82610c28565b92610c686040519485610beb565b828452602083830101116102da57815f926020809301838601378301015290565b346102da5760603660031901126102da57610ca2610432565b6044356001600160401b0381116102da57602091610cc761098c923690600401610c43565b906004355f526003845260405f206123cb565b346102da575f3660031901126102da5760206040517fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c8152f35b346102da575f3660031901126102da576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346102da575f3660031901126102da5760206040517e8b9b1e5fa9cf3b14f87f435649268146305ddf689f082e5961a335b07a9abf8152f35b346102da575f3660031901126102da576001546040516001600160a01b039091168152602090f35b346102da575f3660031901126102da576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346102da5760403660031901126102da57602060ff610e4f602435610e2181610701565b6004355f525f80516020612f36833981519152845260405f209060018060a01b03165f5260205260405f2090565b54166040519015158152f35b346102da575f3660031901126102da576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346102da5760403660031901126102da57600435610ebc81610701565b6024356001600160401b0381116102da575f91610ede83923690600401610994565b90816040519283928337810184815203915af4610f2b610efc61164d565b91610f1d604051938492151560208401526040808401526060830190610712565b03601f198101835282610beb565b805190602001fd5b346102da575f3660031901126102da5760206040515f8152f35b346102da575f3660031901126102da5760206040516001600160401b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b346102da575f3660031901126102da576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346102da5760203660031901126102da576004355f526002602052602060405f2054604051908152f35b346102da5760403660031901126102da5761066e60243560043561102182610701565b805f525f80516020612f36833981519152602052611045600160405f200154611bf0565b612159565b346102da5760603660031901126102da5761078b61077760043561106d81610701565b61107561045c565b90602435906116ae565b346102da5760803660031901126102da5760243561109c81610701565b6110a461045c565b90606435906001600160401b0382116102da576020926110cb61098c933690600401610c43565b91600435611863565b346102da5760a03660031901126102da576024356004356110f482610701565b60443591611100610447565b90608435906001600160401b0382116102da5761112260049236908401610c43565b61112a611e88565b5f5460209061114f90611143906001600160a01b031681565b6001600160a01b031690565b60405163b134427160e01b815294859182905afa9283156106c3575f9361128e575b506001600160a01b03928316330361127c576001546001600160a01b03168381166111f1575b50506040805195865265ffffffffffff909316602086015216927f741a5de99085c0d660f3e4192217b0ffb0ea4e35a0480de48e857a4bc3ee36ed91819081015b0390a361066e60015f80516020612f5683398151915255565b9093604051946112288661121a602082019363724ab0f760e11b8552858c898d602487016119ed565b03601f198101885287610beb565b62042e305a1061126a575f6111d8938192827f741a5de99085c0d660f3e4192217b0ffb0ea4e35a0480de48e857a4bc3ee36ed9951926203d090f15093611197565b604051638072475160e01b8152600490fd5b60405163dabc4ad960e01b8152600490fd5b6112b191935060203d6020116112b8575b6112a98183610beb565b8101906113ed565b915f611171565b503d61129f565b346102da575f3660031901126102da575f546040516001600160a01b039091168152602090f35b346102da5760403660031901126102da57602061098c60243561130881610701565b600435611a6a565b346102da575f3660031901126102da5760206040516203d0908152f35b346102da575f3660031901126102da57602060405160018152f35b519081151582036102da57565b908160209103126102da5761136990611348565b90565b6040513d5f823e3d90fd5b81601f820112156102da5780519061138e82610c28565b9261139c6040519485610beb565b828452602083830101116102da57815f9260208093018386015e8301015290565b906020828203126102da5781516001600160401b0381116102da576113699201611377565b5190610c1982610701565b908160209103126102da575161136981610701565b9061136991602081526114218251606060208401526080830190610712565b9060606040611441602086015194601f1995868683030184870152610712565b9401519282850301910152610712565b604051630df8851f60e11b81526001600160a01b03828116600483015260248201849052938416604482015265ffffffffffff8516606482015260609594909391925f856084817f000000000000000000000000000000000000000000000000000000000000000087165afa9485156106c3575f9561161b575b5060405163fbfa77cf60e01b81526020816004818888165afa9081156106c357611537945f92859284916115fc575b5060405163192c0ff760e21b81526001600160a01b03909116600482015265ffffffffffff90921660248301529094859190829081906044820190565b03917f0000000000000000000000000000000000000000000000000000000000000000165afa9283156106c3575f936115d6575b5061157692936116ae565b908251158015906115cc575b80156115c2575b61159257505050565b610f1d9394509061136992916115a6610c0c565b9283526020830152604082015260405192839160208301611402565b5081511515611589565b5080511515611582565b61157693506115f6903d805f833e6115ee8183610beb565b8101906113bd565b9261156b565b611615915060203d6020116112b8576112a98183610beb565b5f6114fa565b6116309195503d805f833e6115ee8183610beb565b935f6114cb565b9061136992915f52600360205260405f206123cb565b3d15611677573d9061165e82610c28565b9161166c6040519384610beb565b82523d5f602084013e565b606090565b519063ffffffff821682036102da57565b91908260409103126102da5761136960206116a784611348565b930161167c565b92915f8060609565ffffffffffff60405194602096630cbd53f560e11b888801526024870152166044850152604484526116e784610bd0565b604051938461171487820192639f86fd8560e01b8452306024840152604060448401526064830190610712565b0394611728601f1996878101835282610beb565b51915afa5061174661173861164d565b8380825183010191016124a3565b90156117995780838061175e9351830101910161168d565b929061176957505050565b6113699293945061178d604051948592830191909163ffffffff6020820193169052565b03908101835282610beb565b809150519182156102da5701fd5b604051906117b482610b95565b60606020838281520152565b906020828203126102da5781516001600160401b03928382116102da5701906040828203126102da57604051926117f684610b95565b82518181116102da578261180b918501611377565b845260208301519081116102da576118239201611377565b602082015290565b6001600160a01b0391821681529116602082015265ffffffffffff909116604082015260806060820181905261136992910190610712565b92611873909291928284866125ac565b92909361187e6117a7565b938051806119d1575b5050841593841561193b575b84156118aa575b505050506118a55790565b505f90565b6020809495506118d5910151604051958694859463530e1d4360e01b865260601c906004860161182b565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa9081156106c3575f9161191c575b50155f80808061189a565b611935915060203d6020116106bc576106ae8183610beb565b5f611911565b5f549094506001600160a01b031660208486519261196e604051948593849363530e1d4360e01b8552896004860161182b565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa9081156106c3575f916119b2575b501593611893565b6119cb915060203d6020116106bc576106ae8183610beb565b5f6119aa565b6119e59295506020809183010191016117c0565b925f80611887565b919360a093611369969565ffffffffffff938552600180871b0316602085015260408401521660608201528160808201520190610712565b634e487b7160e01b5f52601160045260245ffd5b8115611a43570490565b634e487b7160e01b5f52601260045260245ffd5b9060018201809211611a6557565b611a25565b5f546040516308834cb560e21b8082526001600160a01b0385811660048401529283166024830152929392602092909183816044817f000000000000000000000000000000000000000000000000000000000000000086165afa9081156106c3575f91611b77575b5015918215611af3575b50509050611aed57611369916126a1565b50505f90565b6040519081526001600160a01b0385166004820152606086901c602482015291508290829060449082907f0000000000000000000000000000000000000000000000000000000000000000165afa9182156106c3575f92611b5a575b505015805f80611adc565b611b709250803d106106bc576106ae8183610beb565b5f80611b4f565b611b8e9150843d86116106bc576106ae8183610beb565b5f611ad2565b335f9081527f72a65082a5691803ab2b62c9bc729b34205ba1b183d950896526b2fd8714d0c7602052604090207e8b9b1e5fa9cf3b14f87f435649268146305ddf689f082e5961a335b07a9abf9060ff905b5416156109455750565b5f8181525f80516020612f3683398151915260209081526040808320338452909152902060ff90611be6565b634e487b7160e01b5f52603260045260245ffd5b8054821015611c45575f5260205f2001905f90565b611c1c565b90815491600160401b831015610bb05782611c6d916001610c1995018155611c30565b90919082549060031b91821b915f19901b1916179055565b5f19810191908211611a6557565b90929192600182019081548015611d25575b5084611cb08461275b565b50949092845493611cc0836121eb565b9681611d10575b5015611ced575050505f198101908111611a6557611c6d8591611ce993611c30565b9190565b611ce9949293611d09926001600160d01b039091169190612df1565b5050611c4a565b65ffffffffffff83811691161490505f611cc7565b600160401b811015610bb057806001611d419201845583611c30565b8154905f199060031b1b191690555f611ca5565b90604051611d6281610b95565b915465ffffffffffff8116835260301c6020830152565b91908254905f829160058411611e21575b611d959350856128dd565b908115611e1557611e0e611e05611dff611df5611dc7611dc2611db788611c85565b895f5260205f200190565b611d55565b966001611dee6020611ddf8b5165ffffffffffff1690565b9a01516001600160d01b031690565b9101611c30565b90549060031b1c90565b93611c85565b63ffffffff1690565b6001939291565b5f925082915081908190565b9192611e2c816127aa565b8103908111611a6557611d9593865f52611e60611e558360205f200165ffffffffffff90541690565b65ffffffffffff1690565b65ffffffffffff85161015611e76575091611d8a565b929150611e8290611a57565b90611d8a565b5f80516020612f568339815191526002815414611ea55760029055565b604051633ee5aeb560e01b8152600490fd5b90815f52600360205260405f2081611ece8261275b565b919390508315611f2c57611eee916001600160d01b031690600101611c30565b90549060031b1c5b82611f22575b5050611f06575050565b611f1e915f52600360205260405f2061036f42612729565b5050565b119050815f611efc565b50505f611ef6565b6001600160a01b0381165f9081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d60205260409020545f80516020612f368339815191529060ff16611aed575f808052602091825260408082206001600160a01b038516835290925220805460ff1916600117905533906001600160a01b03165f7f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d8180a4600190565b6001600160a01b0381165f9081527f9ebbcbe0d2961d3fbe56ca6f679bc753bd848d3e6bb3eaf9041c51b286881d2c602052604090207fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c905f80516020612f368339815191529060ff905b54166120ae575f828152602091825260408082206001600160a01b038616835290925220805460ff1916600117905533916001600160a01b0316907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d5f80a4600190565b5050505f90565b6001600160a01b0381165f9081527f72a65082a5691803ab2b62c9bc729b34205ba1b183d950896526b2fd8714d0c7602052604090207e8b9b1e5fa9cf3b14f87f435649268146305ddf689f082e5961a335b07a9abf905f80516020612f368339815191529060ff9061204a565b5f8181525f80516020612f36833981519152602081815260408084206001600160a01b038716855290915290912060ff9061204a565b5f8181525f80516020612f36833981519152602081815260408084206001600160a01b03871685529091529091205460ff16156120ae575f828152602091825260408082206001600160a01b038616835290925220805460ff1916905533916001600160a01b0316907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b5f80a4600190565b80548061221057505f5b6001600160d01b03811615611aed576001611df59201611c30565b5f19908082810111611a6557825f5260205f2001015460301c6121f5565b9190916040818403126102da57803561224681610701565b9260208201356001600160401b0381116102da576113699201610c43565b6122709181019061222e565b6040516302910f8b60e31b81526001600160a01b039283166004820181905291906020816024817f000000000000000000000000000000000000000000000000000000000000000088165afa9081156106c3575f91612383575b50156123715761230560409161230061234b946122e561293f565b60018060a01b03166001600160601b0360a01b5f5416175f55565b612aab565b6020810151600180546001600160a01b0319166001600160a01b0390921691909117905580516001600160a01b0316848116612361575b5001516001600160a01b031690565b9081166123555750565b61235e90611fdf565b50565b61236a90611f34565b505f61233c565b6040516362df054560e01b8152600490fd5b61239c915060203d6020116106bc576106ae8183610beb565b5f6122ca565b908160209103126102da576113699061167c565b90600163ffffffff80931601918211611a6557565b9180511561249957806020806123e6935183010191016123a2565b916123f18382612d1c565b92612402845165ffffffffffff1690565b9065ffffffffffff808516921682811461248d5782119182612438575b505061242f576113699250612c4c565b50506020015190565b9091506124458354611c85565b63ffffffff83161491821561245e575b50505f8061241f565b612485919250612479612473611e55926123b6565b85612d1c565b5165ffffffffffff1690565b115f80612455565b50505050506020015190565b5061136991612c4c565b9190916040818403126102da576124b981611348565b9260208201516001600160401b0381116102da576113699201611377565b604051906124e482610bb5565b60606040838281528260208201520152565b906020828203126102da5781516001600160401b03928382116102da5701906060828203126102da576040519261252c84610bb5565b82518181116102da5782612541918501611377565b845260208301518181116102da578261255b918501611377565b602085015260408301519081116102da576125769201611377565b604082015290565b908160209103126102da575190565b60409065ffffffffffff61136994931681528160208201520190610712565b909392936125b86124d7565b94805180612685575b50506004546001600160a01b0391821691160361267d575f546126189291906020906125f790611143906001600160a01b031681565b8187015190604051808097819463810da75d60e01b8352886004840161258d565b03915afa9081156106c357612645935f9261264a575b5061263f9192604087015191611637565b90612d84565b915190565b61263f92506126709060203d602011612676575b6126688183610beb565b81019061257e565b9161262e565b503d61265e565b505090515f91565b6126999296506020809183010191016124f6565b935f806125c1565b6004546001600160a01b039290831690831603611aed5760206004925f54166040519384809263bd49c35f60e01b82525afa9081156106c357611369925f92612700575b506126fb61263f915f52600360205260405f2090565b6121eb565b61263f9192506127216126fb9160203d602011612676576126688183610beb565b9291506126e5565b65ffffffffffff9081811161273c571690565b604490604051906306dfcc6560e41b8252603060048301526024820152fd5b80548061276c5750505f905f905f90565b5f19908082810111611a6557612789925f5260205f200101611d55565b9065ffffffffffff82511691602060018060d01b0391015116906001929190565b80156118a5578061263f61287561286b61286161285761284d61284361283960016113699a5f908b60801c806128d1575b508060401c806128c4575b508060201c806128b7575b508060101c806128aa575b508060081c8061289d575b508060041c80612890575b508060021c80612883575b50821c61287c575b811c1b612832818b611a39565b0160011c90565b612832818a611a39565b6128328189611a39565b6128328188611a39565b6128328187611a39565b6128328186611a39565b6128328185611a39565b8092611a39565b8101612825565b600291509101905f61281d565b600491509101905f612812565b600891509101905f612807565b601091509101905f6127fc565b602091509101905f6127f1565b604091509101905f6127e6565b9150506080905f6127db565b91905b8382106128ed5750505090565b909192808316906001818518811c8301809311611a6557855f5265ffffffffffff808460205f20015416908516105f1461292c575050925b91906128e0565b909493508101809111611a655791612925565b612947612f07565b61294f612f07565b60015f80516020612f5683398151915255565b6040519061296f82610bb5565b5f6040838281528260208201520152565b81601f820112156102da578051916020916001600160401b038411610bb0578360051b90604051946129b485840187610beb565b855283808601928201019283116102da578301905b8282106129d7575050505090565b83809183516129e581610701565b8152019101906129c9565b6020818303126102da5780516001600160401b03918282116102da5701918281039260a084126102da57606060405194612a2986610bb5565b126102da57604051612a3a81610bb5565b8151612a4581610701565b81526020820151612a5581610701565b60208201526040820151612a6881610701565b6040820152845260608101519283116102da57612a8c608092612576948301612980565b6020850152016113e2565b8051821015611c455760209160051b010190565b612ab3612962565b50612ac9815191602080809483010191016129f0565b8051516001600160a01b0393919084161580612c40575b612c2e576040818101805182516302910f8b60e31b81526001600160a01b0390911660048083019190915296929491928690829060249082907f0000000000000000000000000000000000000000000000000000000000000000165afa9081156106c3575f91612c11575b5015612bff5791938401915f5b83518051821015612bce57611143612b7383612b8093612a97565b516001600160a01b031690565b15612bbe57612ba2612b9e612b99612b73848851612a97565b6120b5565b1590565b612bae57600101612b58565b8451635140fefd60e11b81528790fd5b84516323cda06760e01b81528790fd5b50509051600480546001600160a01b0319166001600160a01b039092169190911790559350612bfb915050565b5190565b604051631f0853c160e21b8152600490fd5b612c289150863d88116106bc576106ae8183610beb565b5f612b4b565b6040516303501f5960e11b8152600490fd5b50828101515115612ae0565b908154905f829160058411612cb6575b612c679350846128dd565b80612c8f57505f905b6001600160d01b03821615611aed57611369916001611df59201611c30565b612ca9612c9e612cb092611c85565b835f5260205f200190565b5460301c90565b90612c70565b9192612cc1816127aa565b8103908111611a6557612c6793855f5265ffffffffffff808360205f20015416908516105f14612cf2575091612c5c565b929150612cfe90611a57565b90612c5c565b60405190612d1182610b95565b5f6020838281520152565b90612d45612d3f612d6692612d2f612d04565b50612d38612d04565b5084611c30565b50611d55565b91600165ffffffffffff845116936020828060d01b03910151169101611c30565b90549060405192612d7684610b95565b835260031b1c602082015290565b9080821015612d91575090565b905090565b8054600160401b811015610bb057612db391600182018155611c30565b612dde57815160209092015160301b65ffffffffffff191665ffffffffffff92909216919091179055565b634e487b7160e01b5f525f60045260245ffd5b805492939291908215612ede57612e0d611dc2612c9e85611c85565b90612e1e825165ffffffffffff1690565b65ffffffffffff84811691168110612ecc57611ce9946020948892612e4c611e55875165ffffffffffff1690565b03612e945750612e8692612e62612e6d92611c85565b905f5260205f200190565b9065ffffffffffff82549181199060301b169116179055565b01516001600160d01b031690565b915050612ec791612eb4612ea6610c1b565b65ffffffffffff9093168352565b6001600160d01b03881682860152612d96565b612e86565b604051632520601d60e01b8152600490fd5b612f029250612eee612ea6610c1b565b6001600160d01b0385166020830152612d96565b5f9190565b60ff5f80516020612f768339815191525460401c1615612f2357565b604051631afcd79f60e31b8152600490fdfe02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268009b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a264697066735822122089d73316305ab9c3a653dfde65e2f393eca68e4db958a734afd5e3f53e84cdbc64736f6c63430008190033","sourceMap":"11341:2310:86:-:0;;;;;;;;;;;;;-1:-1:-1;;11341:2310:86;;;;-1:-1:-1;;;;;11341:2310:86;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;:::i;:::-;348:4:87;;332:21;;8837:64:26;11341:2310:86;;;;;;;;;7896:76:26;;11341:2310:86;;;;7985:34:26;7981:146;;-1:-1:-1;525:17:74;;;-1:-1:-1;525:17:74;;-1:-1:-1;552:12:74;;-1:-1:-1;2360:34:81;;2404:28;;-1:-1:-1;2404:28:81;;2442:57;;-1:-1:-1;2442:57:81;;2509:61;-1:-1:-1;2509:61:81;;1716:36:85;;-1:-1:-1;1716:36:85;;11845:41:86;;;;11896:24;;;;11930:40;;;;11341:2310;;;;;;;;332:21:87;11341:2310:86;;;;;525:17:74;11341:2310:86;;;;;552:12:74;11341:2310:86;;;;;2360:34:81;11341:2310:86;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7981:146:26;-1:-1:-1;;;;;;11341:2310:86;;;;;;;;;;;;;8087:29:26;;11341:2310:86;;8087:29:26;7981:146;;;;;7896:76;11341:2310:86;;-1:-1:-1;;;7938:23:26;;;;;11341:2310:86;-1:-1:-1;11341:2310:86;;;;;;-1:-1:-1;11341:2310:86;;;;;-1:-1:-1;11341:2310:86;;;;-1:-1:-1;;;;;11341:2310:86;;;;;;:::o","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361015610011575f80fd5b5f3560e01c806301ffc9a714610284578063021453481461027f578063103f29071461027a578063128e5d8214610275578063197aa7ea146102705780631a80e5001461026b57806323f752d514610266578063248a9ca31461026157806325dc97081461025c5780632dd31000146102575780632f2ff15d1461025257806336568abe1461024d5780633dfd3873146102485780633eb22c0f14610243578063439fab911461023e57806345e78fcb14610239578063557cab4414610234578063570ca7351461022f5780635d32a1c91461022a5780636679191e1461022557806379d89614146102205780637d24bb271461021b5780637f5a7c7b1461021657806383ce03221461021157806391d148541461020c5780639b656b22146102075780639f86fd8514610202578063a217fddf146101fd578063bb24fe8a146101f8578063c0cd7c3e146101f3578063d15b740e146101ee578063d547741f146101e9578063da749d2b146101e4578063e02f6937146101df578063e49561ee146101da578063fbfa77cf146101d5578063fd4d447c146101d0578063ff54740f146101cb5763ffa1ad74146101c6575f80fd5b61132d565b611310565b6112e6565b6112bf565b6110d4565b61107f565b61104a565b610ffe565b610fd4565b610f90565b610f4d565b610f33565b610e9f565b610e5b565b610dfd565b610db9565b610d91565b610d58565b610d14565b610cda565b610c89565b610b59565b610b3d565b610af9565b6109c1565b610963565b61086a565b61081f565b6107d3565b61078f565b610736565b6106c8565b610542565b6104fe565b610471565b6103ee565b6103aa565b6102de565b346102da5760203660031901126102da5760043563ffffffff60e01b81168091036102da57602090637965db0b60e01b81149081156102c9575b506040519015158152f35b6301ffc9a760e01b1490505f6102be565b5f80fd5b346102da576040806003193601126102da576004359060243590610300611b94565b825f526002602052805f2054821161039a57825f52600360205281610326825f206121eb565b1461038a5781610385916103757e899d104fc3d8820bd96540612bcc5c448c8837b13b9f7faa43ad0728f0c14f94610366875f52600360205260405f2090565b61036f42612729565b90611c93565b5050519081529081906020820190565b0390a2005b5163a741a04560e01b8152600490fd5b51631eefc06360e31b8152600490fd5b346102da575f3660031901126102da576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346102da575f3660031901126102da576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b6024359065ffffffffffff821682036102da57565b6064359065ffffffffffff821682036102da57565b6044359065ffffffffffff821682036102da57565b346102da5760403660031901126102da5761048a610432565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633036104ec5763ffffffff6104d76040926004355f526003602052835f20611d79565b91505083929192519215158352166020820152f35b604051637ca475e560e11b8152600490fd5b346102da575f3660031901126102da576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346102da5760403660031901126102da576004356001600160601b03811681036102da5760243590610572611e88565b6040516302910f8b60e31b81523360048201526020816024816001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165afa9081156106c3575f91610694575b5015610682576001600160601b03166bffffffffffffffffffffffff193360601b161790806105fc835f52600260205260405f2090565b541461067057610655817fc67e7929681aa1bccd63f52b3799bf5805f3009f197db6fdf584b14f7fbf608c9261063a855f52600260205260405f2090565b556106458185611eb7565b6040519081529081906020820190565b0390a261066e60015f80516020612f5683398151915255565b005b60405163a741a04560e01b8152600490fd5b6040516323d53b9760e21b8152600490fd5b6106b6915060203d6020116106bc575b6106ae8183610beb565b810190611355565b5f6105c5565b503d6106a4565b61136c565b346102da5760203660031901126102da576004355f525f80516020612f368339815191526020526020600160405f200154604051908152f35b6001600160a01b038116036102da57565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b346102da5760803660031901126102da5761078b61077760043561075981610701565b60443561076581610701565b61076d610447565b9160243590611451565b604051918291602083526020830190610712565b0390f35b346102da575f3660031901126102da576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346102da5760403660031901126102da5761066e6024356004356107f682610701565b805f525f80516020612f3683398151915260205261081a600160405f200154611bf0565b612123565b346102da5760403660031901126102da5760243561083c81610701565b336001600160a01b038216036108585761066e90600435612159565b60405163334bd91960e11b8152600490fd5b346102da5760203660031901126102da5760043561088781610701565b61088f611e88565b335f9081527f9ebbcbe0d2961d3fbe56ca6f679bc753bd848d3e6bb3eaf9041c51b286881d2c60205260409020547fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c9060ff161561094557506001546001600160a01b039182169181168214610670576001600160a01b03191681176001557f5bbb1d3ebb6a3ad2a0f17ff35e579a83af60604d1d3c2a4c83c62adecadf666d5f80a260015f80516020612f5683398151915255005b6044906040519063e2517d3f60e01b82523360048301526024820152fd5b346102da5760203660031901126102da576004355f526003602052602061098c60405f206121eb565b604051908152f35b9181601f840112156102da578235916001600160401b0383116102da57602083818601950101116102da57565b346102da5760203660031901126102da576001600160401b036004358181116102da576109f2903690600401610994565b5f80516020612f76833981519152549260ff8460401c1615931680159081610af1575b6001149081610ae7575b159081610ade575b50610acc575f80516020612f76833981519152805467ffffffffffffffff19166001179055610a5a9183610aa857612264565b610a6057005b5f80516020612f76833981519152805460ff60401b19169055604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a1005b5f80516020612f76833981519152805460ff60401b1916600160401b179055612264565b60405163f92ee8a960e01b8152600490fd5b9050155f610a27565b303b159150610a1f565b849150610a15565b346102da575f3660031901126102da576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346102da575f3660031901126102da576020604051614e208152f35b346102da575f3660031901126102da576004546040516001600160a01b039091168152602090f35b634e487b7160e01b5f52604160045260245ffd5b604081019081106001600160401b03821117610bb057604052565b610b81565b606081019081106001600160401b03821117610bb057604052565b608081019081106001600160401b03821117610bb057604052565b90601f801991011681019081106001600160401b03821117610bb057604052565b60405190610c1982610bb5565b565b60405190610c1982610b95565b6001600160401b038111610bb057601f01601f191660200190565b81601f820112156102da57803590610c5a82610c28565b92610c686040519485610beb565b828452602083830101116102da57815f926020809301838601378301015290565b346102da5760603660031901126102da57610ca2610432565b6044356001600160401b0381116102da57602091610cc761098c923690600401610c43565b906004355f526003845260405f206123cb565b346102da575f3660031901126102da5760206040517fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c8152f35b346102da575f3660031901126102da576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346102da575f3660031901126102da5760206040517e8b9b1e5fa9cf3b14f87f435649268146305ddf689f082e5961a335b07a9abf8152f35b346102da575f3660031901126102da576001546040516001600160a01b039091168152602090f35b346102da575f3660031901126102da576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346102da5760403660031901126102da57602060ff610e4f602435610e2181610701565b6004355f525f80516020612f36833981519152845260405f209060018060a01b03165f5260205260405f2090565b54166040519015158152f35b346102da575f3660031901126102da576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346102da5760403660031901126102da57600435610ebc81610701565b6024356001600160401b0381116102da575f91610ede83923690600401610994565b90816040519283928337810184815203915af4610f2b610efc61164d565b91610f1d604051938492151560208401526040808401526060830190610712565b03601f198101835282610beb565b805190602001fd5b346102da575f3660031901126102da5760206040515f8152f35b346102da575f3660031901126102da5760206040516001600160401b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b346102da575f3660031901126102da576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346102da5760203660031901126102da576004355f526002602052602060405f2054604051908152f35b346102da5760403660031901126102da5761066e60243560043561102182610701565b805f525f80516020612f36833981519152602052611045600160405f200154611bf0565b612159565b346102da5760603660031901126102da5761078b61077760043561106d81610701565b61107561045c565b90602435906116ae565b346102da5760803660031901126102da5760243561109c81610701565b6110a461045c565b90606435906001600160401b0382116102da576020926110cb61098c933690600401610c43565b91600435611863565b346102da5760a03660031901126102da576024356004356110f482610701565b60443591611100610447565b90608435906001600160401b0382116102da5761112260049236908401610c43565b61112a611e88565b5f5460209061114f90611143906001600160a01b031681565b6001600160a01b031690565b60405163b134427160e01b815294859182905afa9283156106c3575f9361128e575b506001600160a01b03928316330361127c576001546001600160a01b03168381166111f1575b50506040805195865265ffffffffffff909316602086015216927f741a5de99085c0d660f3e4192217b0ffb0ea4e35a0480de48e857a4bc3ee36ed91819081015b0390a361066e60015f80516020612f5683398151915255565b9093604051946112288661121a602082019363724ab0f760e11b8552858c898d602487016119ed565b03601f198101885287610beb565b62042e305a1061126a575f6111d8938192827f741a5de99085c0d660f3e4192217b0ffb0ea4e35a0480de48e857a4bc3ee36ed9951926203d090f15093611197565b604051638072475160e01b8152600490fd5b60405163dabc4ad960e01b8152600490fd5b6112b191935060203d6020116112b8575b6112a98183610beb565b8101906113ed565b915f611171565b503d61129f565b346102da575f3660031901126102da575f546040516001600160a01b039091168152602090f35b346102da5760403660031901126102da57602061098c60243561130881610701565b600435611a6a565b346102da575f3660031901126102da5760206040516203d0908152f35b346102da575f3660031901126102da57602060405160018152f35b519081151582036102da57565b908160209103126102da5761136990611348565b90565b6040513d5f823e3d90fd5b81601f820112156102da5780519061138e82610c28565b9261139c6040519485610beb565b828452602083830101116102da57815f9260208093018386015e8301015290565b906020828203126102da5781516001600160401b0381116102da576113699201611377565b5190610c1982610701565b908160209103126102da575161136981610701565b9061136991602081526114218251606060208401526080830190610712565b9060606040611441602086015194601f1995868683030184870152610712565b9401519282850301910152610712565b604051630df8851f60e11b81526001600160a01b03828116600483015260248201849052938416604482015265ffffffffffff8516606482015260609594909391925f856084817f000000000000000000000000000000000000000000000000000000000000000087165afa9485156106c3575f9561161b575b5060405163fbfa77cf60e01b81526020816004818888165afa9081156106c357611537945f92859284916115fc575b5060405163192c0ff760e21b81526001600160a01b03909116600482015265ffffffffffff90921660248301529094859190829081906044820190565b03917f0000000000000000000000000000000000000000000000000000000000000000165afa9283156106c3575f936115d6575b5061157692936116ae565b908251158015906115cc575b80156115c2575b61159257505050565b610f1d9394509061136992916115a6610c0c565b9283526020830152604082015260405192839160208301611402565b5081511515611589565b5080511515611582565b61157693506115f6903d805f833e6115ee8183610beb565b8101906113bd565b9261156b565b611615915060203d6020116112b8576112a98183610beb565b5f6114fa565b6116309195503d805f833e6115ee8183610beb565b935f6114cb565b9061136992915f52600360205260405f206123cb565b3d15611677573d9061165e82610c28565b9161166c6040519384610beb565b82523d5f602084013e565b606090565b519063ffffffff821682036102da57565b91908260409103126102da5761136960206116a784611348565b930161167c565b92915f8060609565ffffffffffff60405194602096630cbd53f560e11b888801526024870152166044850152604484526116e784610bd0565b604051938461171487820192639f86fd8560e01b8452306024840152604060448401526064830190610712565b0394611728601f1996878101835282610beb565b51915afa5061174661173861164d565b8380825183010191016124a3565b90156117995780838061175e9351830101910161168d565b929061176957505050565b6113699293945061178d604051948592830191909163ffffffff6020820193169052565b03908101835282610beb565b809150519182156102da5701fd5b604051906117b482610b95565b60606020838281520152565b906020828203126102da5781516001600160401b03928382116102da5701906040828203126102da57604051926117f684610b95565b82518181116102da578261180b918501611377565b845260208301519081116102da576118239201611377565b602082015290565b6001600160a01b0391821681529116602082015265ffffffffffff909116604082015260806060820181905261136992910190610712565b92611873909291928284866125ac565b92909361187e6117a7565b938051806119d1575b5050841593841561193b575b84156118aa575b505050506118a55790565b505f90565b6020809495506118d5910151604051958694859463530e1d4360e01b865260601c906004860161182b565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa9081156106c3575f9161191c575b50155f80808061189a565b611935915060203d6020116106bc576106ae8183610beb565b5f611911565b5f549094506001600160a01b031660208486519261196e604051948593849363530e1d4360e01b8552896004860161182b565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa9081156106c3575f916119b2575b501593611893565b6119cb915060203d6020116106bc576106ae8183610beb565b5f6119aa565b6119e59295506020809183010191016117c0565b925f80611887565b919360a093611369969565ffffffffffff938552600180871b0316602085015260408401521660608201528160808201520190610712565b634e487b7160e01b5f52601160045260245ffd5b8115611a43570490565b634e487b7160e01b5f52601260045260245ffd5b9060018201809211611a6557565b611a25565b5f546040516308834cb560e21b8082526001600160a01b0385811660048401529283166024830152929392602092909183816044817f000000000000000000000000000000000000000000000000000000000000000086165afa9081156106c3575f91611b77575b5015918215611af3575b50509050611aed57611369916126a1565b50505f90565b6040519081526001600160a01b0385166004820152606086901c602482015291508290829060449082907f0000000000000000000000000000000000000000000000000000000000000000165afa9182156106c3575f92611b5a575b505015805f80611adc565b611b709250803d106106bc576106ae8183610beb565b5f80611b4f565b611b8e9150843d86116106bc576106ae8183610beb565b5f611ad2565b335f9081527f72a65082a5691803ab2b62c9bc729b34205ba1b183d950896526b2fd8714d0c7602052604090207e8b9b1e5fa9cf3b14f87f435649268146305ddf689f082e5961a335b07a9abf9060ff905b5416156109455750565b5f8181525f80516020612f3683398151915260209081526040808320338452909152902060ff90611be6565b634e487b7160e01b5f52603260045260245ffd5b8054821015611c45575f5260205f2001905f90565b611c1c565b90815491600160401b831015610bb05782611c6d916001610c1995018155611c30565b90919082549060031b91821b915f19901b1916179055565b5f19810191908211611a6557565b90929192600182019081548015611d25575b5084611cb08461275b565b50949092845493611cc0836121eb565b9681611d10575b5015611ced575050505f198101908111611a6557611c6d8591611ce993611c30565b9190565b611ce9949293611d09926001600160d01b039091169190612df1565b5050611c4a565b65ffffffffffff83811691161490505f611cc7565b600160401b811015610bb057806001611d419201845583611c30565b8154905f199060031b1b191690555f611ca5565b90604051611d6281610b95565b915465ffffffffffff8116835260301c6020830152565b91908254905f829160058411611e21575b611d959350856128dd565b908115611e1557611e0e611e05611dff611df5611dc7611dc2611db788611c85565b895f5260205f200190565b611d55565b966001611dee6020611ddf8b5165ffffffffffff1690565b9a01516001600160d01b031690565b9101611c30565b90549060031b1c90565b93611c85565b63ffffffff1690565b6001939291565b5f925082915081908190565b9192611e2c816127aa565b8103908111611a6557611d9593865f52611e60611e558360205f200165ffffffffffff90541690565b65ffffffffffff1690565b65ffffffffffff85161015611e76575091611d8a565b929150611e8290611a57565b90611d8a565b5f80516020612f568339815191526002815414611ea55760029055565b604051633ee5aeb560e01b8152600490fd5b90815f52600360205260405f2081611ece8261275b565b919390508315611f2c57611eee916001600160d01b031690600101611c30565b90549060031b1c5b82611f22575b5050611f06575050565b611f1e915f52600360205260405f2061036f42612729565b5050565b119050815f611efc565b50505f611ef6565b6001600160a01b0381165f9081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d60205260409020545f80516020612f368339815191529060ff16611aed575f808052602091825260408082206001600160a01b038516835290925220805460ff1916600117905533906001600160a01b03165f7f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d8180a4600190565b6001600160a01b0381165f9081527f9ebbcbe0d2961d3fbe56ca6f679bc753bd848d3e6bb3eaf9041c51b286881d2c602052604090207fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c905f80516020612f368339815191529060ff905b54166120ae575f828152602091825260408082206001600160a01b038616835290925220805460ff1916600117905533916001600160a01b0316907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d5f80a4600190565b5050505f90565b6001600160a01b0381165f9081527f72a65082a5691803ab2b62c9bc729b34205ba1b183d950896526b2fd8714d0c7602052604090207e8b9b1e5fa9cf3b14f87f435649268146305ddf689f082e5961a335b07a9abf905f80516020612f368339815191529060ff9061204a565b5f8181525f80516020612f36833981519152602081815260408084206001600160a01b038716855290915290912060ff9061204a565b5f8181525f80516020612f36833981519152602081815260408084206001600160a01b03871685529091529091205460ff16156120ae575f828152602091825260408082206001600160a01b038616835290925220805460ff1916905533916001600160a01b0316907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b5f80a4600190565b80548061221057505f5b6001600160d01b03811615611aed576001611df59201611c30565b5f19908082810111611a6557825f5260205f2001015460301c6121f5565b9190916040818403126102da57803561224681610701565b9260208201356001600160401b0381116102da576113699201610c43565b6122709181019061222e565b6040516302910f8b60e31b81526001600160a01b039283166004820181905291906020816024817f000000000000000000000000000000000000000000000000000000000000000088165afa9081156106c3575f91612383575b50156123715761230560409161230061234b946122e561293f565b60018060a01b03166001600160601b0360a01b5f5416175f55565b612aab565b6020810151600180546001600160a01b0319166001600160a01b0390921691909117905580516001600160a01b0316848116612361575b5001516001600160a01b031690565b9081166123555750565b61235e90611fdf565b50565b61236a90611f34565b505f61233c565b6040516362df054560e01b8152600490fd5b61239c915060203d6020116106bc576106ae8183610beb565b5f6122ca565b908160209103126102da576113699061167c565b90600163ffffffff80931601918211611a6557565b9180511561249957806020806123e6935183010191016123a2565b916123f18382612d1c565b92612402845165ffffffffffff1690565b9065ffffffffffff808516921682811461248d5782119182612438575b505061242f576113699250612c4c565b50506020015190565b9091506124458354611c85565b63ffffffff83161491821561245e575b50505f8061241f565b612485919250612479612473611e55926123b6565b85612d1c565b5165ffffffffffff1690565b115f80612455565b50505050506020015190565b5061136991612c4c565b9190916040818403126102da576124b981611348565b9260208201516001600160401b0381116102da576113699201611377565b604051906124e482610bb5565b60606040838281528260208201520152565b906020828203126102da5781516001600160401b03928382116102da5701906060828203126102da576040519261252c84610bb5565b82518181116102da5782612541918501611377565b845260208301518181116102da578261255b918501611377565b602085015260408301519081116102da576125769201611377565b604082015290565b908160209103126102da575190565b60409065ffffffffffff61136994931681528160208201520190610712565b909392936125b86124d7565b94805180612685575b50506004546001600160a01b0391821691160361267d575f546126189291906020906125f790611143906001600160a01b031681565b8187015190604051808097819463810da75d60e01b8352886004840161258d565b03915afa9081156106c357612645935f9261264a575b5061263f9192604087015191611637565b90612d84565b915190565b61263f92506126709060203d602011612676575b6126688183610beb565b81019061257e565b9161262e565b503d61265e565b505090515f91565b6126999296506020809183010191016124f6565b935f806125c1565b6004546001600160a01b039290831690831603611aed5760206004925f54166040519384809263bd49c35f60e01b82525afa9081156106c357611369925f92612700575b506126fb61263f915f52600360205260405f2090565b6121eb565b61263f9192506127216126fb9160203d602011612676576126688183610beb565b9291506126e5565b65ffffffffffff9081811161273c571690565b604490604051906306dfcc6560e41b8252603060048301526024820152fd5b80548061276c5750505f905f905f90565b5f19908082810111611a6557612789925f5260205f200101611d55565b9065ffffffffffff82511691602060018060d01b0391015116906001929190565b80156118a5578061263f61287561286b61286161285761284d61284361283960016113699a5f908b60801c806128d1575b508060401c806128c4575b508060201c806128b7575b508060101c806128aa575b508060081c8061289d575b508060041c80612890575b508060021c80612883575b50821c61287c575b811c1b612832818b611a39565b0160011c90565b612832818a611a39565b6128328189611a39565b6128328188611a39565b6128328187611a39565b6128328186611a39565b6128328185611a39565b8092611a39565b8101612825565b600291509101905f61281d565b600491509101905f612812565b600891509101905f612807565b601091509101905f6127fc565b602091509101905f6127f1565b604091509101905f6127e6565b9150506080905f6127db565b91905b8382106128ed5750505090565b909192808316906001818518811c8301809311611a6557855f5265ffffffffffff808460205f20015416908516105f1461292c575050925b91906128e0565b909493508101809111611a655791612925565b612947612f07565b61294f612f07565b60015f80516020612f5683398151915255565b6040519061296f82610bb5565b5f6040838281528260208201520152565b81601f820112156102da578051916020916001600160401b038411610bb0578360051b90604051946129b485840187610beb565b855283808601928201019283116102da578301905b8282106129d7575050505090565b83809183516129e581610701565b8152019101906129c9565b6020818303126102da5780516001600160401b03918282116102da5701918281039260a084126102da57606060405194612a2986610bb5565b126102da57604051612a3a81610bb5565b8151612a4581610701565b81526020820151612a5581610701565b60208201526040820151612a6881610701565b6040820152845260608101519283116102da57612a8c608092612576948301612980565b6020850152016113e2565b8051821015611c455760209160051b010190565b612ab3612962565b50612ac9815191602080809483010191016129f0565b8051516001600160a01b0393919084161580612c40575b612c2e576040818101805182516302910f8b60e31b81526001600160a01b0390911660048083019190915296929491928690829060249082907f0000000000000000000000000000000000000000000000000000000000000000165afa9081156106c3575f91612c11575b5015612bff5791938401915f5b83518051821015612bce57611143612b7383612b8093612a97565b516001600160a01b031690565b15612bbe57612ba2612b9e612b99612b73848851612a97565b6120b5565b1590565b612bae57600101612b58565b8451635140fefd60e11b81528790fd5b84516323cda06760e01b81528790fd5b50509051600480546001600160a01b0319166001600160a01b039092169190911790559350612bfb915050565b5190565b604051631f0853c160e21b8152600490fd5b612c289150863d88116106bc576106ae8183610beb565b5f612b4b565b6040516303501f5960e11b8152600490fd5b50828101515115612ae0565b908154905f829160058411612cb6575b612c679350846128dd565b80612c8f57505f905b6001600160d01b03821615611aed57611369916001611df59201611c30565b612ca9612c9e612cb092611c85565b835f5260205f200190565b5460301c90565b90612c70565b9192612cc1816127aa565b8103908111611a6557612c6793855f5265ffffffffffff808360205f20015416908516105f14612cf2575091612c5c565b929150612cfe90611a57565b90612c5c565b60405190612d1182610b95565b5f6020838281520152565b90612d45612d3f612d6692612d2f612d04565b50612d38612d04565b5084611c30565b50611d55565b91600165ffffffffffff845116936020828060d01b03910151169101611c30565b90549060405192612d7684610b95565b835260031b1c602082015290565b9080821015612d91575090565b905090565b8054600160401b811015610bb057612db391600182018155611c30565b612dde57815160209092015160301b65ffffffffffff191665ffffffffffff92909216919091179055565b634e487b7160e01b5f525f60045260245ffd5b805492939291908215612ede57612e0d611dc2612c9e85611c85565b90612e1e825165ffffffffffff1690565b65ffffffffffff84811691168110612ecc57611ce9946020948892612e4c611e55875165ffffffffffff1690565b03612e945750612e8692612e62612e6d92611c85565b905f5260205f200190565b9065ffffffffffff82549181199060301b169116179055565b01516001600160d01b031690565b915050612ec791612eb4612ea6610c1b565b65ffffffffffff9093168352565b6001600160d01b03881682860152612d96565b612e86565b604051632520601d60e01b8152600490fd5b612f029250612eee612ea6610c1b565b6001600160d01b0385166020830152612d96565b5f9190565b60ff5f80516020612f768339815191525460401c1615612f2357565b604051631afcd79f60e31b8152600490fdfe02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268009b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a264697066735822122089d73316305ab9c3a653dfde65e2f393eca68e4db958a734afd5e3f53e84cdbc64736f6c63430008190033","sourceMap":"11341:2310:86:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;;;;;-1:-1:-1;;11341:2310:86;;;;;;;;;;;;;;;;;;-1:-1:-1;;;3551:47:24;;;:87;;;;11341:2310:86;;;;;;;;;;3551:87:24;-1:-1:-1;;;1133:40:30;;-1:-1:-1;3551:87:24;;;11341:2310:86;-1:-1:-1;11341:2310:86;;;;;;;;;;;;;;;;;;;;3202:4:24;;;:::i;:::-;11341:2310:86;-1:-1:-1;11341:2310:86;2428:15:85;11341:2310:86;;;-1:-1:-1;11341:2310:86;;2419:36:85;;2415:98;;11341:2310:86;-1:-1:-1;11341:2310:86;2193:13:85;11341:2310:86;;;2193:34:85;11341:2310:86;-1:-1:-1;11341:2310:86;2193:34:85;:::i;:::-;2527;2523:84;;2617:25;2689:35;2617:25;:56;2689:35;2617:25;;;11341:2310:86;;2193:13:85;11341:2310:86;;;;;;;2617:25:85;819:34:63;837:15;819:34;:::i;:::-;2617:56:85;;:::i;:::-;-1:-1:-1;;11341:2310:86;;;;;;;;;;;;2689:35:85;;;;11341:2310:86;2523:84:85;11341:2310:86;-1:-1:-1;;;2584:12:85;;11341:2310:86;;2584:12:85;2415:98;11341:2310:86;-1:-1:-1;;;2478:24:85;;11341:2310:86;;2478:24:85;11341:2310:86;;;;;;-1:-1:-1;;11341:2310:86;;;;;;1537:38:81;-1:-1:-1;;;;;11341:2310:86;;;;;;;;;;;;-1:-1:-1;;11341:2310:86;;;;;;1632:54:81;-1:-1:-1;;;;;11341:2310:86;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;-1:-1:-1;;11341:2310:86;;;;;;:::i;:::-;449:5:87;-1:-1:-1;;;;;11341:2310:86;435:10:87;:19;431:71;;11341:2310:86;12172:64;11341:2310;;;;-1:-1:-1;11341:2310:86;12172:13;11341:2310;;;-1:-1:-1;11341:2310:86;12172:64;:::i;:::-;11341:2310;;;;;;;;;;;;;;;;;;;431:71:87;11341:2310:86;;-1:-1:-1;;;477:14:87;;11341:2310:86;;477:14:87;11341:2310:86;;;;;;-1:-1:-1;;11341:2310:86;;;;;;1743:56:81;-1:-1:-1;;;;;11341:2310:86;;;;;;;;;;;;-1:-1:-1;;11341:2310:86;;;;;;-1:-1:-1;;;;;11341:2310:86;;;;;;;;3217:103:29;;;:::i;:::-;11341:2310:86;;-1:-1:-1;;;4285:48:81;;4322:10;11341:2310:86;4285:48:81;;11341:2310:86;;;;;-1:-1:-1;;;;;4295:16:81;11341:2310:86;4285:48:81;;;;;;;-1:-1:-1;4285:48:81;;;11341:2310:86;4284:49:81;;4280:99;;-1:-1:-1;;;;;11341:2310:86;-1:-1:-1;;4322:10:81;297:2:93;11341:2310:86;;267:46:93;4459:27:81;;;;11341:2310:86;;4459:15:81;11341:2310:86;;;;;;;4459:27:81;11341:2310:86;4459:37:81;4455:87;;4654:38;4552:27;4654:38;4552:27;;;11341:2310:86;;4459:15:81;11341:2310:86;;;;;;;4552:27:81;11341:2310:86;4631:6:81;;;;:::i;:::-;11341:2310:86;;;;;;;;;;;;;4654:38:81;;;;3282:1:29;1805;-1:-1:-1;;;;;;;;;;;11341:2310:86;3716:283:29;3282:1;11341:2310:86;4455:87:81;11341:2310:86;;-1:-1:-1;;;4519:12:81;;11341:2310:86;;4519:12:81;4280:99;11341:2310:86;;-1:-1:-1;;;4356:12:81;;11341:2310:86;;4356:12:81;4285:48;;;;11341:2310:86;4285:48:81;11341:2310:86;4285:48:81;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;:::i;11341:2310:86:-;;;;;;-1:-1:-1;;11341:2310:86;;;;;;-1:-1:-1;11341:2310:86;-1:-1:-1;;;;;;;;;;;11341:2310:86;;;4919:24:24;11341:2310:86;-1:-1:-1;11341:2310:86;4919:24:24;11341:2310:86;;;;;;;;-1:-1:-1;;;;;11341:2310:86;;;;;:::o;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;11341:2310:86;;;;;;;;-1:-1:-1;;11341:2310:86;;;;:::o;:::-;;;;;;-1:-1:-1;;11341:2310:86;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;11341:2310:86;;;;;;322:32:74;-1:-1:-1;;;;;11341:2310:86;;;;;;;;;;;;-1:-1:-1;;11341:2310:86;;;;5350:25:24;11341:2310:86;;;;;;;:::i;:::-;;-1:-1:-1;11341:2310:86;-1:-1:-1;;;;;;;;;;;11341:2310:86;;3202:4:24;4919:24;11341:2310:86;-1:-1:-1;11341:2310:86;4919:24:24;11341:2310:86;3202:4:24;:::i;:::-;5350:25;:::i;11341:2310:86:-;;;;;;-1:-1:-1;;11341:2310:86;;;;;;;;;:::i;:::-;966:10:28;-1:-1:-1;;;;;11341:2310:86;;6441:34:24;6437:102;;6549:37;11341:2310:86;;;6549:37:24;:::i;6437:102::-;11341:2310:86;;-1:-1:-1;;;6498:30:24;;11341:2310:86;;6498:30:24;11341:2310:86;;;;;;-1:-1:-1;;11341:2310:86;;;;;;;;;:::i;:::-;3217:103:29;;:::i;:::-;966:10:28;-1:-1:-1;11341:2310:86;;;;;;;;;;1356:26:81;;11341:2310:86;;4468:23:24;4464:108;;-1:-1:-1;4861:4:81;11341:2310:86;-1:-1:-1;;;;;11341:2310:86;;;;;;4861:13:81;;4857:63;;-1:-1:-1;;;;;;11341:2310:86;;;4861:4:81;11341:2310:86;4958:14:81;-1:-1:-1;;4958:14:81;4861:4;-1:-1:-1;;;;;;;;;;;11341:2310:86;;4464:108:24;11341:2310:86;;;;4514:47:24;;;;;;966:10:28;11341:2310:86;4514:47:24;;11341:2310:86;;;;;4514:47:24;11341:2310:86;;;;;;-1:-1:-1;;11341:2310:86;;;;;;-1:-1:-1;11341:2310:86;2193:13:85;11341:2310:86;;;2193:34:85;11341:2310:86;-1:-1:-1;11341:2310:86;2193:34:85;:::i;:::-;11341:2310:86;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;11341:2310:86;;;;;;;;;;;;;;;:::o;:::-;;;;;;-1:-1:-1;;11341:2310:86;;;;-1:-1:-1;;;;;11341:2310:86;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;11341:2310:86;;;;;;;4301:16:26;11341:2310:86;;4726:16:26;;:34;;;;11341:2310:86;4805:1:26;4790:16;:50;;;;11341:2310:86;4855:13:26;:30;;;;11341:2310:86;4851:91:26;;;-1:-1:-1;;;;;;;;;;;11341:2310:86;;-1:-1:-1;;11341:2310:86;;;;;718:4:74;;4951:18:26;4979:67;;718:4:74;:::i;:::-;5066:101:26;;11341:2310:86;5066:101:26;-1:-1:-1;;;;;;;;;;;11341:2310:86;;-1:-1:-1;;;;11341:2310:86;;;;;-1:-1:-1;11341:2310:86;;5142:14:26;;11341:2310:86;;5142:14:26;11341:2310:86;4979:67:26;-1:-1:-1;;;;;;;;;;;11341:2310:86;;-1:-1:-1;;;;11341:2310:86;-1:-1:-1;;;11341:2310:86;;;718:4:74;:::i;4851:91:26:-;11341:2310:86;;-1:-1:-1;;;4908:23:26;;11341:2310:86;;4908:23:26;4855:30;4872:13;;;4855:30;;;4790:50;4818:4;4810:25;:30;;-1:-1:-1;4790:50:26;;4726:34;;;-1:-1:-1;4726:34:26;;11341:2310:86;;;;;;-1:-1:-1;;11341:2310:86;;;;;;11523:36;-1:-1:-1;;;;;11341:2310:86;;;;;;;;;;;;-1:-1:-1;;11341:2310:86;;;;;;;1253:6:81;11341:2310:86;;;;;;;;;-1:-1:-1;;11341:2310:86;;;;;;;;-1:-1:-1;;;;;11341:2310:86;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;11341:2310:86;;;;;;;:::o;:::-;;:::i;:::-;;;;;;;-1:-1:-1;;;;;11341:2310:86;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;11341:2310:86;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;11341:2310:86;;;;;;;:::o;:::-;;;;;;;:::i;:::-;:::o;:::-;;;;;;;:::i;:::-;-1:-1:-1;;;;;11341:2310:86;;;;;;-1:-1:-1;;11341:2310:86;;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;11341:2310:86;;;;;;;;;;;;;;:::o;:::-;;;;;;-1:-1:-1;;11341:2310:86;;;;;;:::i;:::-;;;-1:-1:-1;;;;;11341:2310:86;;;;;;;1955:60:85;11341:2310:86;;;;;;:::i;:::-;;;;-1:-1:-1;11341:2310:86;1955:13:85;11341:2310:86;;;-1:-1:-1;11341:2310:86;1955:60:85;:::i;11341:2310:86:-;;;;;;-1:-1:-1;;11341:2310:86;;;;;;;1356:26:81;11341:2310:86;;;;;;;;;-1:-1:-1;;11341:2310:86;;;;;;11472:45;-1:-1:-1;;;;;11341:2310:86;;;;;;;;;;;;-1:-1:-1;;11341:2310:86;;;;;;;885:35:85;11341:2310:86;;;;;;;;;-1:-1:-1;;11341:2310:86;;;;;;;;-1:-1:-1;;;;;11341:2310:86;;;;;;;;;;;;;;-1:-1:-1;;11341:2310:86;;;;;;989:42:85;-1:-1:-1;;;;;11341:2310:86;;;;;;;;;;;;-1:-1:-1;;11341:2310:86;;;;;;3901:31:24;11341:2310:86;;;;;:::i;:::-;;;-1:-1:-1;11341:2310:86;-1:-1:-1;;;;;;;;;;;11341:2310:86;;;-1:-1:-1;11341:2310:86;;;;;;;;;;;;;;;;;3901:31:24;11341:2310:86;;;;;;;;;;;;;;;;-1:-1:-1;;11341:2310:86;;;;;;11565:45;-1:-1:-1;;;;;11341:2310:86;;;;;;;;;;;;-1:-1:-1;;11341:2310:86;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;11341:2310:86;;;;-1:-1:-1;11341:2310:86;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;416:25:80;;;;477:31;416:25;;:::i;:::-;11341:2310:86;;;;;;;;;;477:31:80;;11341:2310:86;;;;;;;;;;;:::i;:::-;477:31:80;11341:2310:86;;477:31:80;;;;;;:::i;:::-;518:79;;;11341:2310:86;518:79:80;;11341:2310:86;;;;;;-1:-1:-1;;11341:2310:86;;;;;;;;;;;;;;;;;-1:-1:-1;;11341:2310:86;;;;;;;-1:-1:-1;;;;;404:28:74;11341:2310:86;;;;;;;;;;-1:-1:-1;;11341:2310:86;;;;;;1439:41:81;-1:-1:-1;;;;;11341:2310:86;;;;;;;;;;;;-1:-1:-1;;11341:2310:86;;;;;;-1:-1:-1;11341:2310:86;2009:67:81;11341:2310:86;;;;-1:-1:-1;11341:2310:86;;;;;;;;;;;;;;-1:-1:-1;;11341:2310:86;;;;5767:26:24;11341:2310:86;;;;;;;:::i;:::-;;-1:-1:-1;11341:2310:86;-1:-1:-1;;;;;;;;;;;11341:2310:86;;3202:4:24;4919:24;11341:2310:86;-1:-1:-1;11341:2310:86;4919:24:24;11341:2310:86;3202:4:24;:::i;:::-;5767:26;:::i;11341:2310:86:-;;;;;;-1:-1:-1;;11341:2310:86;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;:::i;:::-;;;;;;-1:-1:-1;;11341:2310:86;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;-1:-1:-1;;;;;11341:2310:86;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;-1:-1:-1;;11341:2310:86;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;-1:-1:-1;;;;;11341:2310:86;;;;;;;;;;;;:::i;:::-;3217:103:29;;:::i;:::-;-1:-1:-1;11341:2310:86;;;5246:21:81;;:13;;-1:-1:-1;;;;;11341:2310:86;5246:13:81;11341:2310:86;;-1:-1:-1;;;;;11341:2310:86;;;5246:21:81;11341:2310:86;;-1:-1:-1;;;5246:23:81;;11341:2310:86;;;;;5246:23:81;;;;;;;-1:-1:-1;5246:23:81;;;11341:2310:86;-1:-1:-1;;;;;;11341:2310:86;;;5232:10:81;:37;5228:87;;5341:4;11341:2310:86;-1:-1:-1;;;;;11341:2310:86;;;;5355:469:81;;11341:2310:86;-1:-1:-1;;11341:2310:86;;;;;;;;;;;;;;;;5839:55:81;;11341:2310:86;;;;5839:55:81;;;;3282:1:29;1805;-1:-1:-1;;;;;;;;;;;11341:2310:86;3716:283:29;5355:469:81;11341:2310:86;;;;5435:94:81;;;;11341:2310:86;5435:94:81;;;;;;;;;;;;11341:2310:86;5435:94:81;;;:::i;:::-;;11341:2310:86;;5435:94:81;;;;;;:::i;:::-;11341:2310:86;5548:9:81;:51;5544:118;;-1:-1:-1;5839:55:81;5676:138;;;;5839:55;5676:138;;;1150:7;5676:138;;5355:469;;;5544:118;11341:2310:86;;-1:-1:-1;;;5626:21:81;;11341:2310:86;;5626:21:81;5228:87;11341:2310:86;;-1:-1:-1;;;5292:12:81;;11341:2310:86;;5292:12:81;5246:23;;;;;11341:2310:86;5246:23:81;11341:2310:86;5246:23:81;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;11341:2310:86;;;;;;-1:-1:-1;;11341:2310:86;;;;;;;;-1:-1:-1;;;;;11341:2310:86;;;;;;;;;;;;;;-1:-1:-1;;11341:2310:86;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;-1:-1:-1;;11341:2310:86;;;;;;;1150:7:81;11341:2310:86;;;;;;;;;-1:-1:-1;;11341:2310:86;;;;;;;2700:1:81;11341:2310:86;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;11341:2310:86;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;;;;11341:2310:86;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;12814:835::-;11341:2310;;-1:-1:-1;;;13031:99:86;;-1:-1:-1;;;;;11341:2310:86;;;13031:99;;;11341:2310;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;11341:2310:86;;;13050:20;11341:2310;;13031:99;;;;;;;;;;;12814:835;-1:-1:-1;11341:2310:86;;-1:-1:-1;;;13224:32:86;;;11341:2310;13031:99;11341:2310;;;;13224:32;;;;;;;13184:84;13224:32;13031:99;13224:32;;;;;;;12814:835;-1:-1:-1;11341:2310:86;;-1:-1:-1;;;13184:84:86;;-1:-1:-1;;;;;11341:2310:86;;;13031:99;13184:84;;11341:2310;;;;;;;;;;;;;-1:-1:-1;11341:2310:86;;;;;;;;;13184:84;;13195:11;;11341:2310;13184:84;;;;;;;13031:99;13184:84;;;12814:835;13312:50;;;;;:::i;:::-;11341:2310;;;13377:21;;;:52;;;12814:835;13377:85;;;;12814:835;13373:270;;12814:835;;;:::o;13373:270::-;13485:147;11341:2310;;;;13485:147;11341:2310;;;;:::i;:::-;;;;13224:32;13513:105;;11341:2310;;13513:105;;11341:2310;;;13485:147;;;13224:32;13485:147;;;:::i;13377:85::-;11341:2310;;;13433:29;;13377:85;;:52;11341:2310;;;13402:27;;13377:52;;13184:84;13312:50;13184:84;;;;;;13031:99;13184:84;;;;;;:::i;:::-;;;;;:::i;:::-;;;;13224:32;;;;;;;;;;;;;;:::i;:::-;;;;13031:99;;;;;;;;;;;;;;:::i;:::-;;;;;1827:195:85;;1955:60;1827:195;;-1:-1:-1;11341:2310:86;1955:13:85;11341:2310:86;;;-1:-1:-1;11341:2310:86;1955:60:85;:::i;11341:2310:86:-;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;-1:-1:-1;11341:2310:86;;;;:::o;:::-;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;:::i;12249:559::-;;;-1:-1:-1;12383:12:86;11341:2310;;;;;12529:149;;12573:64;;;;12529:149;;;;;;;11341:2310;;;;;;;12529:149;;;;;:::i;:::-;11341:2310;;716:88:87;;11341:2310:86;716:88:87;;;;;;;;;783:4;12529:149:86;716:88:87;;11341:2310:86;;;;;;;;;;;:::i;:::-;716:88:87;11341:2310:86;716:88:87;11341:2310:86;;716:88:87;;;;;;;;:::i;:::-;698:107;;;;;857:45;698:107;;:::i;:::-;11341:2310:86;;;;857:45:87;;;;;;:::i;:::-;916:8;;912:175;;11341:2310:86;;;12437:293;11341:2310;;12437:293;;;;;;:::i;:::-;12741:61;;;;12249:559;;;:::o;12741:61::-;12774:17;11341:2310;;;;12774:17;11341:2310;;12774:17;;;;;11341:2310;;;;;;;;;;;;12774:17;;;;;;;;;:::i;912:175:87:-;11341:2310:86;;;;944:22:87;;;940:36;;990:87;;11341:2310:86;;;;;;;:::i;:::-;;;;;;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;;;;11341:2310:86;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::o;:::-;-1:-1:-1;;;;;11341:2310:86;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;2764:920:81:-;;2978:48;2764:920;;;;2978:48;;;;:::i;:::-;3036:36;;;11341:2310:86;;:::i;:::-;;;;3086:20:81;3082:107;;2764:920;3216:11;;;;:193;;;;;2764:920;3216:394;;;;2764:920;3199:455;;;;;;2764:920;:::o;3199:455::-;3635:8;-1:-1:-1;3635:8:81;:::o;3216:394::-;3553:39;;;;;3430:180;3553:39;;;11341:2310:86;;;;;;;;;;3430:180:81;;467:2:93;11341:2310:86;3430:180:81;;;;;:::i;:::-;;11341:2310:86;3444:31:81;-1:-1:-1;;;;;11341:2310:86;3430:180:81;;;;;;;-1:-1:-1;3430:180:81;;;3216:394;3429:181;;3216:394;;;;;;3430:180;;;;3553:39;3430:180;3553:39;3430:180;;;;;;;:::i;:::-;;;;3216:193;-1:-1:-1;11341:2310:86;;;-1:-1:-1;;;;;;11341:2310:86;3248:161:81;3354:37;;;11341:2310:86;3248:161:81;11341:2310:86;;;;;;;;;;3248:161:81;;;;;;;:::i;:::-;;11341:2310:86;3262:29:81;-1:-1:-1;;;;;11341:2310:86;3248:161:81;;;;;;;-1:-1:-1;3248:161:81;;;3216:193;3247:162;;3216:193;;;3248:161;;;;;;;;;;;;;;:::i;:::-;;;;3082:107;3139:39;;;;;;;;;;;;;:::i;:::-;3082:107;;;;;11341:2310:86;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;8889:1:91;11341:2310:86;;;;;;;:::o;:::-;;:::i;3740:389:81:-;3918:5;11341:2310:86;;;-1:-1:-1;;;3853:71:81;;;-1:-1:-1;;;;;11341:2310:86;;;3853:71:81;;;11341:2310:86;;;;;;;;3740:389:81;;11341:2310:86;3853:71:81;;11341:2310:86;;3853:71:81;11341:2310:86;;;3867:29:81;11341:2310:86;;3853:71:81;;;;;;;3918:5;3853:71;;;3740:389;3852:72;;11341:2310:86;;;3852:181:81;;3740:389;3835:242;;;;;;4094:28;;;:::i;3835:242::-;4058:8;;3918:5;4058:8;:::o;3852:181::-;11341:2310:86;;3945:88:81;;;-1:-1:-1;;;;;11341:2310:86;;3853:71:81;3945:88;;11341:2310:86;467:2:93;11341:2310:86;;;;;;;;-1:-1:-1;11341:2310:86;;;;;;;;3959:31:81;11341:2310:86;3945:88:81;;;;;;;3918:5;3945:88;;;3852:181;3944:89;;;3852:181;;;;;3945:88;;;;;;-1:-1:-1;3945:88:81;;;;;;:::i;:::-;;;;;3853:71;;;;;;;;;;;;;;:::i;:::-;;;;4148:103:24;966:10:28;-1:-1:-1;11341:2310:86;;;;;;;;;885:35:85;;11341:2310:86;;3901:31:24;11341:2310:86;;4468:23:24;4464:108;;4148:103;:::o;:::-;-1:-1:-1;11341:2310:86;;;-1:-1:-1;;;;;;;;;;;11341:2310:86;;;;;;;;966:10:28;11341:2310:86;;;;;;;;;3901:31:24;11341:2310:86;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;11341:2310:86;;-1:-1:-1;11341:2310:86;;;-1:-1:-1;11341:2310:86;:::o;:::-;;:::i;:::-;;;;;-1:-1:-1;;;11341:2310:86;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;11341:2310:86;;;;;;;;:::o;6246:584:91:-;;;;;6360:12;;;11341:2310:86;;;6360:24:91;;6356:75;;6246:584;6474:30;;;;;:::i;:::-;11341:2310:86;;;;;;6578:12:91;;;;:::i;:::-;6604:24;;;;6246:584;-1:-1:-1;6600:188:91;;;-1:-1:-1;;;;;11341:2310:86;;;;;;;6644:21:91;;;:29;:21;;:::i;:29::-;6798:25;6246:584;:::o;6600:188::-;6753:24;;11341:2310:86;;8167:38:61;;-1:-1:-1;;;;;11341:2310:86;;;;;8167:38:61;:::i;:::-;6753:24:91;;;:::i;6604:::-;11341:2310:86;;;;;;6614:14:91;;-1:-1:-1;6604:24:91;;;6356:75;-1:-1:-1;;;11341:2310:86;;;;;;6360:12:91;11341:2310:86;;;;;;;:::i;:::-;;;;;;;;;;;;;;6356:75:91;;;11341:2310:86;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::o;8406:869:91:-;;;11341:2310:86;;8620:15:91;8578:11;8645:18;8678:7;8684:1;8678:7;;8674:241;;8406:869;8939:60;;;;;:::i;:::-;9014:8;;;9010:62;;9252:15;9259:7;11341:2310:86;9219:31:91;11341:2310:86;9130:48:91;9170:7;;;:::i;:::-;9130:48;13267:109;;;;;;13089:293;;9130:48;11341:2310:86;:::i;:::-;;9176:1:91;11341:2310:86;9232:17:91;11341:2310:86;;;;;;;;9232:17:91;;11341:2310:86;-1:-1:-1;;;;;11341:2310:86;;;;9219:12:91;;:31;:::i;:::-;11341:2310:86;;;;;;;;;9259:7:91;;:::i;:::-;11341:2310:86;;;;9252:15:91;9176:1;;9188:80;;8406:869::o;9010:62::-;8578:11;;-1:-1:-1;8578:11:91;;-1:-1:-1;8578:11:91;;;;9038:23::o;8674:241::-;8721:14;;;;;:::i;:::-;11341:2310:86;;;;;;;8939:60:91;13267:109;;8578:11;13267:109;8753:55;8759:49;13267:109;;8578:11;13267:109;;11341:2310:86;;;;;;8759:49:91;11341:2310:86;;;;8753:55:91;11341:2310:86;;;8753:55:91;13267:109;;;8828:10;8749:156;8674:241;;8749:156;8883:7;;;;;;:::i;:::-;8749:156;8674:241;;3326:384:29;-1:-1:-1;;;;;;;;;;;1847:1:29;11341:2310:86;;3526:20:29;3522:88;;1847:1;11341:2310:86;;3326:384:29:o;3522:88::-;11341:2310:86;;-1:-1:-1;;;3569:30:29;;;;;3701:308:85;;11341:2310:86;-1:-1:-1;11341:2310:86;3832:13:85;11341:2310:86;;;-1:-1:-1;11341:2310:86;11124:30:91;;;;:::i;:::-;11173;;;-1:-1:-1;11173:30:91;;;;11182:17;;-1:-1:-1;;;;;11341:2310:86;;11182:12:91;;:17;:::i;:::-;11341:2310:86;;;3832:13:85;11341:2310:86;;11173:30:91;3890::85;;;11173::91;3886:117:85;;;;3701:308;;:::o;3886:117::-;3936:56;11341:2310:86;-1:-1:-1;11341:2310:86;3832:13:85;11341:2310:86;;;-1:-1:-1;11341:2310:86;819:34:63;837:15;819:34;:::i;3936:56:85:-;3701:308;;:::o;3890:30::-;3900:20;;-1:-1:-1;3890:30:85;;;;11173::91;;;-1:-1:-1;11173:30:91;;7270:387:24;-1:-1:-1;;;;;11341:2310:86;;-1:-1:-1;11341:2310:86;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2887:71:24;11341:2310:86;;;;-1:-1:-1;11341:2310:86;;;;;;;;;;;-1:-1:-1;;;;;11341:2310:86;;;;;;;;;;-1:-1:-1;;11341:2310:86;7509:4:24;11341:2310:86;;;966:10:28;;-1:-1:-1;;;;;11341:2310:86;-1:-1:-1;7532:40:24;-1:-1:-1;;7532:40:24;7509:4;7586:11;:::o;7270:387::-;-1:-1:-1;;;;;11341:2310:86;;-1:-1:-1;11341:2310:86;;;;;;;;;1356:26:81;;-1:-1:-1;;;;;;;;;;;2887:71:24;11341:2310:86;;3901:31:24;11341:2310:86;;;;-1:-1:-1;11341:2310:86;;;;;;;;;;;-1:-1:-1;;;;;11341:2310:86;;;;;;;;;;-1:-1:-1;;11341:2310:86;7509:4:24;11341:2310:86;;;966:10:28;;-1:-1:-1;;;;;11341:2310:86;;7532:40:24;-1:-1:-1;;7532:40:24;7509:4;7586:11;:::o;7432:219::-;7628:12;;;-1:-1:-1;7628:12:24;:::o;7270:387::-;-1:-1:-1;;;;;11341:2310:86;;-1:-1:-1;11341:2310:86;;;;;;;;;885:35:85;;-1:-1:-1;;;;;;;;;;;2887:71:24;11341:2310:86;;3901:31:24;11341:2310:86;7270:387:24;-1:-1:-1;11341:2310:86;;;-1:-1:-1;;;;;;;;;;;11341:2310:86;;;;;;;;-1:-1:-1;;;;;11341:2310:86;;;;;;;;;;;;3901:31:24;11341:2310:86;7892:388:24;-1:-1:-1;11341:2310:86;;;-1:-1:-1;;;;;;;;;;;11341:2310:86;;;;;;;;-1:-1:-1;;;;;11341:2310:86;;;;;;;;;;;;;;;;-1:-1:-1;11341:2310:86;;;;;;;;;;;-1:-1:-1;;;;;11341:2310:86;;;;;;;;;;-1:-1:-1;;11341:2310:86;;;966:10:28;;-1:-1:-1;;;;;11341:2310:86;;8155:40:24;-1:-1:-1;;8155:40:24;11341:2310:86;8209:11:24;:::o;10580:184:91:-;11341:2310:86;;10303:8:61;;;:63;-1:-1:-1;10303:63:61;-1:-1:-1;;;;;11341:2310:86;;10726:7:91;11341:2310:86;;10736:12:91;:17;:12;;:17;:::i;10303:63:61:-;11341:2310:86;;;;;;;;;;13267:109:91;-1:-1:-1;13267:109:91;;-1:-1:-1;13267:109:91;;;11341:2310:86;;;10303:63:61;;11341:2310:86;;;;;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;11341:2310:86;;;;;;;;:::i;5907:716:81:-;6030:34;5907:716;6030:34;;;;:::i;:::-;11341:2310:86;;-1:-1:-1;;;6080:41:81;;-1:-1:-1;;;;;11341:2310:86;;;6080:41:81;;;11341:2310:86;;;;;6080:41:81;11341:2310:86;;;6090:13:81;11341:2310:86;;6080:41:81;;;;;;;-1:-1:-1;6080:41:81;;;5907:716;6079:42;;6075:90;;6266:27;11341:2310:86;2540:111:29;6210:14:81;11341:2310:86;2540:111:29;;;:::i;:::-;11341:2310:86;;;;;;-1:-1:-1;;;;;11341:2310:86;;-1:-1:-1;11341:2310:86;;;-1:-1:-1;11341:2310:86;;6210:14:81;6266:27;:::i;:::-;6080:41;6311:15;;11341:2310:86;;;;-1:-1:-1;;;;;;11341:2310:86;-1:-1:-1;;;;;11341:2310:86;;;;;;;;;;;-1:-1:-1;;;;;11341:2310:86;;;;6337:143:81;;5907:716;-1:-1:-1;6493:28:81;11341:2310:86;-1:-1:-1;;;;;11341:2310:86;;;;;;;6489:128:81;;5907:716;:::o;6489:128::-;6551:55;;;:::i;:::-;;5907:716::o;6337:143::-;6404:65;;;:::i;:::-;;6337:143;;;6075:90;11341:2310:86;;-1:-1:-1;;;6144:10:81;;6080:41;;6144:10;6080:41;;;;;;;;;;;;;;:::i;:::-;;;;11341:2310:86;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::o;7558:604:91:-;;11341:2310:86;;7686:17:91;7682:83;;11341:2310:86;7789:27:91;11341:2310:86;7789:27:91;11341:2310:86;;7789:27:91;;;;;;:::i;:::-;7860:14;;;;;:::i;:::-;11341:2310:86;;;;;;;;;;;;;;;;7888:22:91;;;7884:77;;7975:21;-1:-1:-1;7975:84:91;;;;7558:604;7971:139;;;;8127:28;;;;:::i;7971:139::-;8082:17;;7789:27;8082:17;11341:2310:86;8075:24:91;:::o;7975:84::-;11341:2310:86;;;8009:16:91;11341:2310:86;;8009:16:91;:::i;:::-;11341:2310:86;;;8001:24:91;:57;;;;;7975:84;;;;;;;8001:57;8029:29;8038:8;;;8029:18;8038:8;8029:23;8038:8;;:::i;:::-;8029:18;;:::i;:::-;11341:2310:86;;;;;8029:29:91;;8001:57;;;;7884:77;7933:17;;;;;7789:27;7933:17;11341:2310:86;7926:24:91;:::o;7682:83::-;7726:28;;;;:::i;11341:2310:86:-;;;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;11341:2310:86;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;;;;11341:2310:86;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;:::i;2737:699:85:-;;;;;11341:2310:86;;:::i;:::-;;;;2978:16:85;2974:92;;2737:699;-1:-1:-1;;3080:8:85;11341:2310:86;-1:-1:-1;;;;;11341:2310:86;;;;;3080:21:85;3076:85;;-1:-1:-1;11341:2310:86;3218:67:85;;11341:2310:86;;3257:27:85;;3218;;:13;;-1:-1:-1;;;;;11341:2310:86;3218:13:85;11341:2310:86;3218:27:85;3257;;;;11341:2310:86;;;;;;;;;;;3218:67:85;;;3080:8;3218:67;;;:::i;:::-;;;;;;;;;;3192:192;3218:67;-1:-1:-1;3218:67:85;;;2737:699;3341:28;3303:67;3341:28;;11341:2310:86;3341:28:85;;;3303:67;;:::i;:::-;3192:192;;:::i;:::-;3398:21;;2737:699;:::o;3218:67::-;3303;3218;;;;3257:27;3218:67;3257:27;3218:67;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;3076:85;-1:-1:-1;;3128:21:85;;-1:-1:-1;;3117:33:85:o;2974:92::-;3024:31;;;;;;;;;;;;;:::i;:::-;2974:92;;;;;3442:253;3552:8;11341:2310:86;-1:-1:-1;;;;;11341:2310:86;;;;;;;3552:21:85;3548:60;;3634:27;3552:8;11341:2310:86;-1:-1:-1;11341:2310:86;;;;;;;;;;;3634:27:85;;;;;;;;;3625:63;3634:27;-1:-1:-1;3634:27:85;;;3442:253;2193:25;;:34;:25;11341:2310:86;;2193:13:85;11341:2310:86;;;;;;;2193:25:85;:34;:::i;3634:27::-;2193:34;3634:27;;;;2193:25;3634:27;;;;;;;;;;;:::i;:::-;;;;;;14291:213:59;11341:2310:86;14369:24:59;;;;14365:103;;11341:2310:86;14291:213:59;:::o;14365:103::-;11341:2310:86;;;;14416:41:59;;;;;;14447:2;14416:41;;;11341:2310:86;;;;;14416:41:59;10552:388:61;11341:2310:86;;10728:8:61;;;10752:20;;10690:17;10752:20;10690:17;10752:20;10690:17;10752:20;:::o;10724:210::-;11341:2310:86;;;;;;;;;;;13267:109:91;10690:17:61;13267:109:91;;10690:17:61;13267:109:91;;;11341:2310:86;:::i;:::-;;;;;;;13267:109:91;11341:2310:86;;;;;10911:11:61;;11341:2310:86;;10886:37:61;10870:1;10886:37;;;:::o;8587:1642:58:-;8658:6;;8654:45;;9401:7;10201:10;10142:26;10093;10044;9995;9946;9897;9848;11341:2310:86;10189:23:58;9401:7;8663:1;11341:2310:86;;;;10826:16:58;10822:99;;8587:1642;11341:2310:86;;;;10938:15:58;10934:96;;8587:1642;11341:2310:86;;;;11047:15:58;11043:96;;8587:1642;11341:2310:86;;;;11156:15:58;11152:96;;8587:1642;11341:2310:86;;;;11265:14:58;11261:93;;8587:1642;11341:2310:86;;;;11371:14:58;11367:93;;8587:1642;11341:2310:86;;;;11477:14:58;11473:93;;8587:1642;11341:2310:86;;;11579:64:58;;8587:1642;11341:2310:86;;;9858:10:58;;;;:::i;:::-;11341:2310:86;;;;;9848:26:58;9907:10;;;;:::i;9897:26::-;9956:10;;;;:::i;9946:26::-;10005:10;;;;:::i;9995:26::-;10054:10;;;;:::i;10044:26::-;10103:10;;;;:::i;10093:26::-;10152:10;;;;:::i;10142:26::-;10201:10;;;:::i;11579:64::-;11341:2310:86;;11579:64:58;;11473:93;11341:2310:86;11511:11:58;;11341:2310:86;;11473:93:58;;;;11367;11341:2310:86;11405:11:58;;11341:2310:86;;11367:93:58;;;;11261;11341:2310:86;11299:11:58;;11341:2310:86;;11261:93:58;;;;11152:96;11341:2310:86;11191:12:58;;11341:2310:86;;11152:96:58;;;;11043;11341:2310:86;11082:12:58;;11341:2310:86;;11043:96:58;;;;10934;11341:2310:86;10973:12:58;;11341:2310:86;;10934:96:58;;;;10822:99;10862:13;;;11341:2310:86;10822:99:58;;;;12497:447:91;;;12694:10;;;;;;12926:11;;;12497:447;:::o;12687:230::-;2900:5:58;;;;;;11341:2310:86;;2910:5:58;;;11341:2310:86;;;;;;;;;13267:109:91;-1:-1:-1;13267:109:91;11341:2310:86;13267:109:91;;;-1:-1:-1;13267:109:91;;11341:2310:86;;;;;-1:-1:-1;12771:136:91;11341:2310:86;;;12830:10:91;;12771:136;;12687:230;;;;12771:136;11341:2310:86;;;;;;;;;;;12771:136:91;;;6893:76:26;;;:::i;:::-;;;:::i;:::-;1805:1:29;-1:-1:-1;;;;;;;;;;;11341:2310:86;6893:76:26:o;11341:2310:86:-;;;;;;;:::i;:::-;-1:-1:-1;11341:2310:86;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;-1:-1:-1;;;;;11341:2310:86;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;11341:2310:86;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::o;4015:918:85:-;11341:2310:86;;:::i;:::-;;4163:30:85;11341:2310:86;;4163:30:85;;;;;;;;;;;:::i;:::-;4208:17;;11341:2310:86;-1:-1:-1;;;;;11341:2310:86;;4208:17:85;11341:2310:86;;4208:54:85;;:103;;4015:918;4204:161;;4418:15;;;;11341:2310:86;;;;-1:-1:-1;;;4380:54:85;;-1:-1:-1;;;;;11341:2310:86;;;4380:54:85;;;;11341:2310:86;;;;4380:54:85;4418:15;;;;11341:2310:86;;;;;;;;4390:17:85;11341:2310:86;4380:54:85;;;;;;;4208:17;4380:54;;;4015:918;4379:55;;4375:106;;4496:9;;4511:33;;;4208:17;4553:3;4511:33;;11341:2310:86;;4507:44:85;;;;;4576:36;;;:50;:36;;:::i;:::-;11341:2310:86;-1:-1:-1;;;;;11341:2310:86;;;4576:50:85;;4572:119;;4709:73;4710:72;4745:36;;:33;;;:36;:::i;:::-;4710:72;:::i;:::-;4709:73;;11341:2310:86;4709:73:85;4705:140;;11341:2310:86;;4496:9:85;;4705:140;11341:2310:86;;-1:-1:-1;;;4809:21:85;;11341:2310:86;;4809:21:85;4572:119;11341:2310:86;;-1:-1:-1;;;4653:23:85;;11341:2310:86;;4653:23:85;4507:44;-1:-1:-1;;11341:2310:86;;4380:54:85;11341:2310:86;;-1:-1:-1;;;;;;11341:2310:86;-1:-1:-1;;;;;11341:2310:86;;;;;;;;;;-1:-1:-1;4865:26:85;;-1:-1:-1;;11341:2310:86;4865:26:85;4909:17;4015:918;:::o;4375:106::-;4418:15;11341:2310:86;-1:-1:-1;;;4457:13:85;;4380:54;;4457:13;4380:54;;;;;;;;;;;;;;:::i;:::-;;;;4204:161;11341:2310:86;;-1:-1:-1;;;4334:20:85;;;;;4208:103;4266:33;;;;;11341:2310:86;4266:45:85;4208:103;;6999:207:91;;11341:2310:86;;9594:15:61;-1:-1:-1;9619:18:61;9652:7;9658:1;9652:7;;9648:234;;6999:207:91;9906:53:61;;;;;:::i;:::-;9977:8;;;:63;-1:-1:-1;9977:63:61;;-1:-1:-1;;;;;11341:2310:86;;7168:7:91;11341:2310:86;;;7178:12:91;;:17;:12;;:17;:::i;9977:63:61:-;9992:41;10025:7;9992:48;10025:7;;:::i;:::-;9992:41;13267:109:91;;;;;;13089:293;;9992:41:61;11341:2310:86;;;;;9992:48:61;9977:63;;;9648:234;9695:14;;;;;:::i;:::-;11341:2310:86;;;;;;;9906:53:61;13267:109:91;;-1:-1:-1;13267:109:91;11341:2310:86;13267:109:91;;;-1:-1:-1;13267:109:91;;11341:2310:86;;;;;9727:48:61;9723:149;11341:2310:86;;;9795:10:61;9723:149;9648:234;;9723:149;9850:7;;;;;;:::i;:::-;9723:149;9648:234;;11341:2310:86;;;;;;;:::i;:::-;-1:-1:-1;11341:2310:86;;;;;;;:::o;11486:272:91:-;;11341:2310:86;11308:22:61;11718:31:91;11486:272;11341:2310:86;;:::i;:::-;;;;:::i;:::-;;11308:22:61;;:::i;:::-;11341:2310:86;;:::i;:::-;;11718:12:91;11341:2310:86;;;;;11731:17:91;11341:2310:86;;;;;11731:17:91;;11341:2310:86;;11718:12:91;;:31;:::i;:::-;11341:2310:86;;;;;;;;;:::i;:::-;;;;;;11731:17:91;11672:79;;11341:2310:86;11486:272:91;:::o;2557:104:58:-;;2641:5;;;;;;:13;2557:104;:::o;2641:13::-;;;2557:104;:::o;11341:2310:86:-;;;-1:-1:-1;;;11341:2310:86;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;11341:2310:86;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;11513:870:61;11341:2310:86;;11513:870:61;;;11341:2310:86;11513:870:61;11672:7;;;;11341:2310:86;11775:28:61;11795:7;;;:::i;11341:2310:86:-;;;;;;;;;;;;;;;;11877:15:61;-1:-1:-1;11873:91:61;;11341:2310:86;;12233:11:61;11341:2310:86;;;12027:16:61;11341:2310:86;;;;;;;12027:16:61;;;;12083:7;12063:43;12083:7;;12063:28;12083:7;;:::i;:::-;12063:28;13267:109:91;;;;;;13089:293;;12063:28:61;11341:2310:86;;;;;;;;;;;;;;;;;12063:43:61;12233:11;11341:2310:86;-1:-1:-1;;;;;11341:2310:86;;;12023:189:61;11341:2310:86;;;12145:52:61;11341:2310:86;12155:41:61;11341:2310:86;;:::i;:::-;;;;;;;;12155:41:61;-1:-1:-1;;;;;11341:2310:86;;12155:41:61;;;11341:2310:86;12145:52:61;:::i;:::-;12023:189;;11873:91;11341:2310:86;;-1:-1:-1;;;11919:30:61;;;;;11668:709;12283:52;11341:2310:86;;12293:41:61;11341:2310:86;;:::i;12293:41:61:-;-1:-1:-1;;;;;11341:2310:86;;12293:41:61;;;11341:2310:86;12145:52:61;:::i;12283:::-;11678:1;12349:17;;:::o;7084:141:26:-;11341:2310:86;-1:-1:-1;;;;;;;;;;;11341:2310:86;;;;7150:18:26;7146:73;;7084:141::o;7146:73::-;11341:2310:86;;-1:-1:-1;;;7191:17:26;;;;","linkReferences":{},"immutableReferences":{"64520":[{"start":1956,"length":32}],"64523":[{"start":3948,"length":32}],"65474":[{"start":1429,"length":32},{"start":4005,"length":32}],"65477":[{"start":959,"length":32},{"start":8857,"length":32}],"65480":[{"start":1027,"length":32},{"start":6514,"length":32},{"start":6817,"length":32}],"65483":[{"start":1299,"length":32},{"start":6361,"length":32},{"start":6943,"length":32}],"67399":[{"start":3534,"length":32},{"start":11035,"length":32}],"68667":[{"start":3369,"length":32},{"start":5274,"length":32}],"68669":[{"start":2830,"length":32},{"start":5435,"length":32}],"68671":[{"start":3696,"length":32}],"69080":[{"start":1164,"length":32}]}},"methodIdentifiers":{"BASE_DELEGATOR_HINTS()":"79d89614","DEFAULT_ADMIN_ROLE()":"a217fddf","FACTORY()":"2dd31000","HOOK_GAS_LIMIT()":"ff54740f","HOOK_RESERVE()":"557cab44","HOOK_SET_ROLE()":"6679191e","NETWORK_LIMIT_SET_ROLE()":"7d24bb27","NETWORK_REGISTRY()":"c0cd7c3e","OPERATOR_NETWORK_OPT_IN_SERVICE()":"1a80e500","OPERATOR_REGISTRY()":"83ce0322","OPERATOR_VAULT_OPT_IN_SERVICE()":"128e5d82","OPT_IN_SERVICE_HINTS()":"9b656b22","TYPE()":"bb24fe8a","VAULT_FACTORY()":"103f2907","VAULT_HINTS()":"45e78fcb","VERSION()":"ffa1ad74","getRoleAdmin(bytes32)":"248a9ca3","grantRole(bytes32,address)":"2f2ff15d","hasRole(bytes32,address)":"91d14854","hook()":"7f5a7c7b","initialize(bytes)":"439fab91","maxNetworkLimit(bytes32)":"d15b740e","networkLimit(bytes32)":"3eb22c0f","networkLimitAt(bytes32,uint48,bytes)":"5d32a1c9","networkLimitHint(address,bytes32,uint48)":"da749d2b","networkLimitHintInternal(bytes32,uint48)":"197aa7ea","onSlash(bytes32,address,uint256,uint48,bytes)":"e49561ee","operator()":"570ca735","renounceRole(bytes32,address)":"36568abe","revokeRole(bytes32,address)":"d547741f","setHook(address)":"3dfd3873","setMaxNetworkLimit(uint96,uint256)":"23f752d5","setNetworkLimit(bytes32,uint256)":"02145348","stake(bytes32,address)":"fd4d447c","stakeAt(bytes32,address,uint48,bytes)":"e02f6937","stakeHints(address,bytes32,address,uint48)":"25dc9708","staticDelegateCall(address,bytes)":"9f86fd85","supportsInterface(bytes4)":"01ffc9a7","vault()":"fbfa77cf"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"baseDelegatorHints\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"vaultHints\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"optInServiceHints\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"AccessControlBadConfirmation\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"neededRole\",\"type\":\"bytes32\"}],\"name\":\"AccessControlUnauthorizedAccount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AlreadySet\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CheckpointUnorderedInsertion\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"DuplicateRoleHolder\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ExceedsMaxNetworkLimit\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ExternalCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientHookGas\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MissingRoleHolders\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotNetwork\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotOperator\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotSlasher\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotVault\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ReentrancyGuardReentrantCall\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"bits\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"SafeCastOverflowedUintDowncast\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ZeroAddressRoleHolder\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint48\",\"name\":\"captureTimestamp\",\"type\":\"uint48\"}],\"name\":\"OnSlash\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"previousAdminRole\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"newAdminRole\",\"type\":\"bytes32\"}],\"name\":\"RoleAdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleRevoked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"hook\",\"type\":\"address\"}],\"name\":\"SetHook\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"SetMaxNetworkLimit\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"SetNetworkLimit\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"BASE_DELEGATOR_HINTS\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"DEFAULT_ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"FACTORY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"HOOK_GAS_LIMIT\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"HOOK_RESERVE\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"HOOK_SET_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"NETWORK_LIMIT_SET_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"NETWORK_REGISTRY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"OPERATOR_NETWORK_OPT_IN_SERVICE\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"OPERATOR_REGISTRY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"OPERATOR_VAULT_OPT_IN_SERVICE\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"OPT_IN_SERVICE_HINTS\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"TYPE\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"VAULT_FACTORY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"VAULT_HINTS\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"VERSION\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleAdmin\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"grantRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"hook\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"}],\"name\":\"maxNetworkLimit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"}],\"name\":\"networkLimit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hint\",\"type\":\"bytes\"}],\"name\":\"networkLimitAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"}],\"name\":\"networkLimitHint\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"}],\"name\":\"networkLimitHintInternal\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"exists\",\"type\":\"bool\"},{\"internalType\":\"uint32\",\"name\":\"hint\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint48\",\"name\":\"captureTimestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"onSlash\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"operator\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"callerConfirmation\",\"type\":\"address\"}],\"name\":\"renounceRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"hook_\",\"type\":\"address\"}],\"name\":\"setHook\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint96\",\"name\":\"identifier\",\"type\":\"uint96\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"setMaxNetworkLimit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"setNetworkLimit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"stake\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hints\",\"type\":\"bytes\"}],\"name\":\"stakeAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"}],\"name\":\"stakeHints\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"staticDelegateCall\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"vault\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"AccessControlBadConfirmation()\":[{\"details\":\"The caller of a function is not the expected one. NOTE: Don't confuse with {AccessControlUnauthorizedAccount}.\"}],\"AccessControlUnauthorizedAccount(address,bytes32)\":[{\"details\":\"The `account` is missing a role.\"}],\"CheckpointUnorderedInsertion()\":[{\"details\":\"A value was attempted to be inserted on a past checkpoint.\"}],\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"ReentrancyGuardReentrantCall()\":[{\"details\":\"Unauthorized reentrant call.\"}],\"SafeCastOverflowedUintDowncast(uint8,uint256)\":[{\"details\":\"Value doesn't fit in an uint of `bits` size.\"}]},\"events\":{\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"OnSlash(bytes32,address,uint256,uint48)\":{\"params\":{\"amount\":\"amount of the collateral to be slashed\",\"captureTimestamp\":\"time point when the stake was captured\",\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"}},\"RoleAdminChanged(bytes32,bytes32,bytes32)\":{\"details\":\"Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole` `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite {RoleAdminChanged} not being emitted signaling this.\"},\"RoleGranted(bytes32,address,address)\":{\"details\":\"Emitted when `account` is granted `role`. `sender` is the account that originated the contract call, an admin role bearer except when using {AccessControl-_setupRole}.\"},\"RoleRevoked(bytes32,address,address)\":{\"details\":\"Emitted when `account` is revoked `role`. `sender` is the account that originated the contract call: - if using `revokeRole`, it is the admin role bearer - if using `renounceRole`, it is the role bearer (i.e. `account`)\"},\"SetHook(address)\":{\"params\":{\"hook\":\"address of the hook\"}},\"SetMaxNetworkLimit(bytes32,uint256)\":{\"params\":{\"amount\":\"new maximum subnetwork's limit (how much stake the subnetwork is ready to get)\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"}},\"SetNetworkLimit(bytes32,uint256)\":{\"params\":{\"amount\":\"new subnetwork's limit (how much stake the vault curator is ready to give to the subnetwork)\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"}}},\"kind\":\"dev\",\"methods\":{\"VERSION()\":{\"details\":\"Must return 1 for this one.\",\"returns\":{\"_0\":\"version of the delegator\"}},\"getRoleAdmin(bytes32)\":{\"details\":\"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}.\"},\"grantRole(bytes32,address)\":{\"details\":\"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event.\"},\"hasRole(bytes32,address)\":{\"details\":\"Returns `true` if `account` has been granted `role`.\"},\"initialize(bytes)\":{\"params\":{\"data\":\"some data to use\"}},\"networkLimit(bytes32)\":{\"params\":{\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"},\"returns\":{\"_0\":\"limit of the subnetwork\"}},\"networkLimitAt(bytes32,uint48,bytes)\":{\"params\":{\"hint\":\"hint for checkpoint index\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\",\"timestamp\":\"time point to get the subnetwork limit at\"},\"returns\":{\"_0\":\"limit of the subnetwork at the given timestamp\"}},\"onSlash(bytes32,address,uint256,uint48,bytes)\":{\"details\":\"Only the vault's slasher can call this function.\",\"params\":{\"amount\":\"amount of the collateral slashed\",\"captureTimestamp\":\"time point when the stake was captured\",\"data\":\"some additional data\",\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"}},\"renounceRole(bytes32,address)\":{\"details\":\"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `callerConfirmation`. May emit a {RoleRevoked} event.\"},\"revokeRole(bytes32,address)\":{\"details\":\"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event.\"},\"setHook(address)\":{\"details\":\"Only a HOOK_SET_ROLE holder can call this function. The hook can have arbitrary logic under certain functions, however, it doesn't affect the stake guarantees.\",\"params\":{\"hook\":\"address of the hook\"}},\"setMaxNetworkLimit(uint96,uint256)\":{\"details\":\"Only a network can call this function.\",\"params\":{\"amount\":\"new maximum subnetwork's limit\"}},\"setNetworkLimit(bytes32,uint256)\":{\"details\":\"Only a NETWORK_LIMIT_SET_ROLE holder can call this function.\",\"params\":{\"amount\":\"new limit of the subnetwork\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"}},\"stake(bytes32,address)\":{\"details\":\"Warning: this function is not safe to use for stake capturing, as it can change by the end of the block.\",\"params\":{\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"},\"returns\":{\"_0\":\"slashable stake until the end of the next epoch\"}},\"stakeAt(bytes32,address,uint48,bytes)\":{\"details\":\"Warning: it is not safe to use timestamp >= current one for the stake capturing, as it can change later.\",\"params\":{\"hints\":\"hints for the checkpoints' indexes\",\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\",\"timestamp\":\"time point to capture the stake at\"},\"returns\":{\"_0\":\"slashable stake at the given timestamp until the end of the consequent epoch\"}},\"staticDelegateCall(address,bytes)\":{\"details\":\"It allows to use this contract's storage on-chain.\",\"params\":{\"data\":\"data to make a delegatecall with\",\"target\":\"address of the contract to make a delegatecall to\"}},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"}},\"version\":1},\"userdoc\":{\"events\":{\"OnSlash(bytes32,address,uint256,uint48)\":{\"notice\":\"Emitted when a slash happens.\"},\"SetHook(address)\":{\"notice\":\"Emitted when a hook is set.\"},\"SetMaxNetworkLimit(bytes32,uint256)\":{\"notice\":\"Emitted when a subnetwork's maximum limit is set.\"},\"SetNetworkLimit(bytes32,uint256)\":{\"notice\":\"Emitted when a subnetwork's limit is set.\"}},\"kind\":\"user\",\"methods\":{\"FACTORY()\":{\"notice\":\"Get the factory's address.\"},\"HOOK_GAS_LIMIT()\":{\"notice\":\"Get a gas limit for the hook.\"},\"HOOK_RESERVE()\":{\"notice\":\"Get a reserve gas between the gas limit check and the hook's execution.\"},\"HOOK_SET_ROLE()\":{\"notice\":\"Get a hook setter's role.\"},\"NETWORK_LIMIT_SET_ROLE()\":{\"notice\":\"Get a subnetwork limit setter's role.\"},\"NETWORK_REGISTRY()\":{\"notice\":\"Get the network registry's address.\"},\"OPERATOR_NETWORK_OPT_IN_SERVICE()\":{\"notice\":\"Get the operator-network opt-in service's address.\"},\"OPERATOR_REGISTRY()\":{\"notice\":\"Get the operator registry's address.\"},\"OPERATOR_VAULT_OPT_IN_SERVICE()\":{\"notice\":\"Get the operator-vault opt-in service's address.\"},\"TYPE()\":{\"notice\":\"Get the entity's type.\"},\"VAULT_FACTORY()\":{\"notice\":\"Get the vault factory's address.\"},\"VERSION()\":{\"notice\":\"Get a version of the delegator (different versions mean different interfaces).\"},\"hook()\":{\"notice\":\"Get the hook's address.\"},\"initialize(bytes)\":{\"notice\":\"Initialize this entity contract by using a given data.\"},\"maxNetworkLimit(bytes32)\":{\"notice\":\"Get a particular subnetwork's maximum limit (meaning the subnetwork is not ready to get more as a stake).\"},\"networkLimit(bytes32)\":{\"notice\":\"Get a subnetwork's limit (how much stake the vault curator is ready to give to the subnetwork).\"},\"networkLimitAt(bytes32,uint48,bytes)\":{\"notice\":\"Get a subnetwork's limit at a given timestamp using a hint (how much stake the vault curator is ready to give to the subnetwork).\"},\"onSlash(bytes32,address,uint256,uint48,bytes)\":{\"notice\":\"Called when a slash happens.\"},\"operator()\":{\"notice\":\"Get an operator managing the vault's funds.\"},\"setHook(address)\":{\"notice\":\"Set a new hook.\"},\"setMaxNetworkLimit(uint96,uint256)\":{\"notice\":\"Set a maximum limit for a subnetwork (how much stake the subnetwork is ready to get). identifier identifier of the subnetwork\"},\"setNetworkLimit(bytes32,uint256)\":{\"notice\":\"Set a subnetwork's limit (how much stake the vault curator is ready to give to the subnetwork).\"},\"stake(bytes32,address)\":{\"notice\":\"Get a stake that a given subnetwork will be able to slash for a certain operator until the end of the next epoch (if no cross-slashing and no slashings by the subnetwork).\"},\"stakeAt(bytes32,address,uint48,bytes)\":{\"notice\":\"Get a stake that a given subnetwork could be able to slash for a certain operator at a given timestamp until the end of the consequent epoch using hints (if no cross-slashing and no slashings by the subnetwork).\"},\"staticDelegateCall(address,bytes)\":{\"notice\":\"Make a delegatecall from this contract to a given target contract with a particular data (always reverts with a return data).\"},\"vault()\":{\"notice\":\"Get the vault's address.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/contracts/hints/DelegatorHints.sol\":\"OperatorSpecificDelegatorHints\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol\":{\"keccak256\":\"0x6662ec4e5cefca03eeadd073e9469df8d2944bb2ee8ec8f7622c2c46aab5f225\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4d8544c6f8daa4d1bc215c6a72fe0acdb748664a105b0e5efc19295667521d45\",\"dweb:/ipfs/QmdGWqdnXT8S3RgCR6aV8XHZrsybieMQLLnug1NtpSjEXN\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0xc163fcf9bb10138631a9ba5564df1fa25db9adff73bd9ee868a8ae1858fe093a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9706d43a0124053d9880f6e31a59f31bc0a6a3dc1acd66ce0a16e1111658c5f6\",\"dweb:/ipfs/QmUFmfowzkRwGtDu36cXV9SPTBHJ3n7dG9xQiK5B28jTf2\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609\",\"dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9\",\"dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardUpgradeable.sol\":{\"keccak256\":\"0xb44e086e941292cdc7f440de51478493894ef0b1aeccb0c4047445919f667f74\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://942dad22fbdc1669f025540ba63aa3ccfad5f8458fc5d4525b31ebf272e7af45\",\"dweb:/ipfs/Qmdo4X2M82aM3AMoW2kf2jhYkSCyC4T1pHNd6obdsDFnAB\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol\":{\"keccak256\":\"0xdaba3f7c42c55b2896353f32bd27d4d5f8bae741b3b05d4c53f67abc4dc47ce8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1fa2e61141c602510bcd2cd936ed9561922ac8772a9b9c9a9db091a74e354a45\",\"dweb:/ipfs/QmcHQDDoEBwJmwUbzoVkytvJsBx3KVHYFFnDkvRGWh9Wmh\"]},\"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0xb6b36edd6a2999fd243ff226d6cbf84bd71af2432bbd0dfe19392996a1d9cb41\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1fd2f35495652e57e3f99bc6c510bc5f7dd398a176ea2e72d8ed730aebc6ca26\",\"dweb:/ipfs/QmTQV6X4gkikTib49cho5iDX3JvSQbdsoEChoDwrk3CbbH\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC1271.sol\":{\"keccak256\":\"0x85a45f3f10014a0f8be41157a32b6a5f905753ea64a4b64e29fc12b7deeecf39\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c3c74009ce36136b36c77c23935b8e4a7b4f253be2da2be4fb4a916b1ce43743\",\"dweb:/ipfs/QmcH36v3iN7SJJuF73AunLR2LtNxhVJ1wm63ph4dPZ4pcL\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC5267.sol\":{\"keccak256\":\"0x92aa1df62dc3d33f1656d63bede0923e0df0b706ad4137c8b10b0a8fe549fd92\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c5c0f29195ad64cbe556da8e257dac8f05f78c53f90323c0d2accf8e6922d33a\",\"dweb:/ipfs/QmQ61TED8uaCZwcbh8KkgRSsCav7x7HbcGHwHts3U4DmUP\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c\",\"dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0x6008dabfe393240d73d7dd7688033f72740d570aa422254d29a7dce8568f3aff\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f5196ec75139918c6c7bb4251b36395e668f1fa6d206beba7e7520e74913940d\",\"dweb:/ipfs/QmSyqjksXxmm2mCG6qRd1yuwLykypkSVBbnBnGqJRcuJMi\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x37bb49513c49c87c4642a891b13b63571bc87013dde806617aa1efb54605f386\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b3036b3a83b7c48f96641f2a9002b9f2dcb6a5958dd670894ada21ae8229b3d0\",\"dweb:/ipfs/QmUNfSBdoVtjhETaUJCYcaC7pTMgbhht926tJ2uXJbiVd3\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0xaf28a975a78550e45f65e559a3ad6a5ad43b9b8a37366999abd1b7084eb70721\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b7bd24e224f67f65bfadf85dc2929fa965456bb2415478bd0125471b5ce35245\",\"dweb:/ipfs/QmRaydGr8BTHs1kvaZfsNU69pKzUAGFrvABn1KiRSbE51y\"]},\"lib/openzeppelin-contracts/contracts/utils/ShortStrings.sol\":{\"keccak256\":\"0x18a7171df639a934592915a520ecb97c5bbc9675a1105607aac8a94e72bf62c6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7478e1f13da69a2867ccd883001d836b75620362e743f196376d63ed0c422a1c\",\"dweb:/ipfs/QmWywcQ9TNfwtoqAxbn25d8C5VrV12PrPS9UjtGe6pL2BA\"]},\"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0x32ba59b4b7299237c8ba56319110989d7978a039faf754793064e967e5894418\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1ae50c8b562427df610cc4540c9bf104acca7ef8e2dcae567ae7e52272281e9c\",\"dweb:/ipfs/QmTHiadFCSJUPpRjNegc5SahmeU8bAoY8i9Aq6tVscbcKR\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0x55f102ea785d8399c0e58d1108e2d289506dde18abc6db1b7f68c1f9f9bc5792\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e52e0a7765c943ef14e5bcf11e46e6139fa044be564881378349236bf2e3453\",\"dweb:/ipfs/QmZEeeXoFPW47amyP35gfzomF9DixqqTEPwzBakv6cZw6i\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0xeed0a08b0b091f528356cbc7245891a4c748682d4f6a18055e8e6ca77d12a6cf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba80ba06c8e6be852847e4c5f4492cef801feb6558ae09ed705ff2e04ea8b13c\",\"dweb:/ipfs/QmXRJDv3xHLVQCVXg1ZvR35QS9sij5y9NDWYzMfUfAdTHF\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/EIP712.sol\":{\"keccak256\":\"0x999f705a027ed6dc2d4e0df2cc4a509852c6bfd11de1c8161bf88832d0503fd0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0798def67258d9a3cc20b2b4da7ebf351a5cefe0abfdd665d2d81f8e32f89b21\",\"dweb:/ipfs/QmPEvJosnPfzHNjKvCv2D3891mA2Ww8eUwkqrxBjuYdHCt\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol\":{\"keccak256\":\"0xba333517a3add42cd35fe877656fc3dfcc9de53baa4f3aabbd6d12a92e4ea435\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2ceacff44c0fdc81e48e0e0b1db87a2076d3c1fb497341de077bf1da9f6b406c\",\"dweb:/ipfs/QmRUo1muMRAewxrKQ7TkXUtknyRoR57AyEkoPpiuZQ8FzX\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/SignatureChecker.sol\":{\"keccak256\":\"0x6b11eb41a228cca35d4b662b4df69fcd75192851365102690f57b2ac01e83fe6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ab006a2983ed350d2af21ddcdd835dcae3b8340086cc4d088460da5abd041f69\",\"dweb:/ipfs/QmbEacDhkJZiGrgzLjB4pNtE8Z1uudjDw1DvcDUTVQFsLG\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875\",\"dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0xe19a4d5f31d2861e7344e8e535e2feafb913d806d3e2b5fe7782741a2a7094fe\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4aed79c0fa6f0546ed02f2f683e8f77f0fd2ed7eb34d8bbf3d373c9a6d95b13c\",\"dweb:/ipfs/QmWqVz6UAVqmnWU5pqYPt1o6iDEZyPaBraAA3rKfTTSfYj\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x5f7e4076e175393767754387c962926577f1660dd9b810187b9002407656be72\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7d533a1c97cd43a57cd9c465f7ee8dd0e39ae93a8fb8ff8e5303a356b081cdcc\",\"dweb:/ipfs/QmVBEei6aTnvYNZp2CHYVNKyZS4q1KkjANfY39WVXZXVoT\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/Checkpoints.sol\":{\"keccak256\":\"0xbdc5e074d7dd6678f67e92b1a51a20226801a407b0e1af3da367c5d1ff4519ad\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a36cca6b22fff3db16fc789ff6c60eea71d4b156065d4d0c83a0bc5e91a77a8b\",\"dweb:/ipfs/QmYN3exd5AemxjBrN8XMB1p5LbbE16uC3sjbYjwi8AjcGR\"]},\"lib/openzeppelin-contracts/contracts/utils/types/Time.sol\":{\"keccak256\":\"0xc7755af115020049e4140f224f9ee88d7e1799ffb0646f37bf0df24bf6213f58\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7f09bf94d5274334ec021f61a04659db303f31e60460e14b709c9bf187740111\",\"dweb:/ipfs/QmNvgomZYUwFAt4cZbPWAiTeSZQreGehY9BK5xyVJsUttb\"]},\"src/contracts/common/Entity.sol\":{\"keccak256\":\"0x3d61a932995b8443381f3950542d388223a2c26dd5d29a3274dea3baa7388bd7\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://7cdf5f03ca72fd263fd32ff59c8d88ddca911ae83896a287d10772c1bbe9b138\",\"dweb:/ipfs/QmbP84r5BWT1Rn9AYTntWSf3xUMTTCohTZJFhbBhDXFoHa\"]},\"src/contracts/common/MigratableEntity.sol\":{\"keccak256\":\"0x2d736f4dacd5d7e7697503bc426c78b8250fe1694ca157965ec178da6807de58\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://f1237acf96b4b9f9b69156e068eddd726a6e15bd8e87a18dc999cd4ba4da069c\",\"dweb:/ipfs/QmS6M8fiFFSeuJ4ZKKq1z8W7w4ybeHQSy5TLASGoc1LVic\"]},\"src/contracts/common/StaticDelegateCallable.sol\":{\"keccak256\":\"0x350029aa8955eacaffffaeb58babc5c98e80ebc5c5db388ed17ee6465f4a9d90\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://eb392a8ee9050e0af606897df63e3404e3829e8b688b580663892f9664195764\",\"dweb:/ipfs/QmaXC8jqV8UrrAFkzXTEv2fJF56sy33HhLxAzaRZmUxuXD\"]},\"src/contracts/delegator/BaseDelegator.sol\":{\"keccak256\":\"0x7c54d491fdd4415b764a9c8defa068e56d4c0c8c9419be0053a1d377669290e8\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://9238bfbad0f6eeb0dc7727724de14380f1980b395902269703d5e2ef07e52e10\",\"dweb:/ipfs/QmPJn1V4HNXcEghYvogGuSTF24dSQUPosR5qtsXcmNqRm3\"]},\"src/contracts/delegator/FullRestakeDelegator.sol\":{\"keccak256\":\"0x0a81c4f8e72914563a9cb771e93acf889c71ea36b7bec040e4eb562b199d5af1\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://6fc66b6ba02da77046a0bbbd1dd407a62c08f52e04486c9cbd2cb1cca3da555f\",\"dweb:/ipfs/QmZQivK1ZnMxfRQQ5aLpV9co5u55wQVNev5Rg1hzAqxhkE\"]},\"src/contracts/delegator/NetworkRestakeDelegator.sol\":{\"keccak256\":\"0xd3a8e6522f9c6fdcc2da837c9023afd6bdff2bce45a35590320c475519e3636d\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://58b17a87f6554f08376f9ea7fedf486a4aa75801bf0ad8b23ff5a46959b6b7a3\",\"dweb:/ipfs/QmSTmNh67tYt8CmjVZb57r8N3qX5yeYdMApKPJm3qvQgQw\"]},\"src/contracts/delegator/OperatorNetworkSpecificDelegator.sol\":{\"keccak256\":\"0x031a10722b9ec49048f0952710401131290adb87e71caf294e864e7ac3b98a16\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://72428febc875134b2f29205e6f294634a1c22a7d5c78d6a9cb2f8196f107c9b5\",\"dweb:/ipfs/QmTPwXR6h5oytckmkLrHdKeEMdphJxceDhYUR4zvQeWAwY\"]},\"src/contracts/delegator/OperatorSpecificDelegator.sol\":{\"keccak256\":\"0x630ce62fa30b9f3349ab7a8cf8dbf041319febc6dd757be2f94d3d25944ed328\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://c2ac59d47ce57d2a6819ae9833e1a618a371eccff93eb5ab367b201b01f42bfa\",\"dweb:/ipfs/QmdBpGMBivpNPv2WbH8vnCUy5xkVeaxQvGgqi33vKCz1kA\"]},\"src/contracts/hints/DelegatorHints.sol\":{\"keccak256\":\"0x44aa0c396311a54afbc7c73e8dadeed41e3165a4fd13f712b27d63d50fc3376d\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://2f255214f3531fc707d88be0d56a7a0aed4180439316d099d760d9118aa83093\",\"dweb:/ipfs/QmZD1w5p1ukJSXumUAjvxwGmkPhn7vsr21Y2atLGEZR2oi\"]},\"src/contracts/hints/Hints.sol\":{\"keccak256\":\"0x8b565df1ae35993c097a9e642002782a8f451f6fd01809cad6bcd345bdf1b99c\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://99a19adb01e350a92f534095b3078229df1f2f83077992d75d58d8684be45971\",\"dweb:/ipfs/QmbmwcuswVbzvwHQFTtrJG86oV98GnfxqYTb8cV8u1acox\"]},\"src/contracts/hints/OptInServiceHints.sol\":{\"keccak256\":\"0x95d9407900d27b9f4a1233b772aeed809c07b2dc5b31cfc9fa77ca26514c49e5\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://a13a8877e312d7e6b8b85bde3668c5d84ff5ecc83f762cd573f2b7104c64eb42\",\"dweb:/ipfs/QmYV2J55acuGzCNnS3juABuUHY5U1xc8g8o9jwEyFFdeG5\"]},\"src/contracts/hints/VaultHints.sol\":{\"keccak256\":\"0xccb505b7159b769cc114d67b87c2de6b106557f667fc8f3780114baad5c3c442\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://6d0c80a908fc16e96a8b5605a0bd53f9e89ad0ef0a738fbbae80ba4d3160749b\",\"dweb:/ipfs/QmXo5UtWoR8YmunqcbBU8rQMm1nvmvjNPoXcVrDhh4pEwR\"]},\"src/contracts/libraries/Checkpoints.sol\":{\"keccak256\":\"0xba90097c8bfe0a975499428b5f8ac5569483c7d92ccc28c12d70de416aae040c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://12f5d93ca94cd06d3147db68993165a58e17903ed53682560de61f3085ad4609\",\"dweb:/ipfs/QmePiuAqvXprMLmFZkGZeGjvGPAvsEDHfCDv7BoQhXu9xE\"]},\"src/contracts/libraries/ERC4626Math.sol\":{\"keccak256\":\"0x8441160513c1cbeb1c3b9ee077bcc7e7ce20006b52a77c8dd39ff0ef89699939\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://943f8cc3e26ddf649f465f40c909819f5c864717c4baa339e9e403b9374a4653\",\"dweb:/ipfs/QmXPxi1sUDsrGprZdUgCzoPEosaZMv9ZhygWQ1vAi1phAB\"]},\"src/contracts/libraries/Subnetwork.sol\":{\"keccak256\":\"0xf5ef5506fd66082b3c2e7f3df37529f5a8efad32ac62e7c8914bd63219190bfe\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba031a54ee0d0e9a270c2b9e18437f5668cfeb659cfd5fe0677459d7fcac2a56\",\"dweb:/ipfs/QmReP3H7qQ78tAfgLnJKsNEQNCQfF1X1Get38Ffd4kzq32\"]},\"src/contracts/service/OptInService.sol\":{\"keccak256\":\"0x4e0932077f2686b7990e10d59deb2535334c0d09e52ef6e57c6ab09eca21c4b1\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://7c00d311032ed4a1743aca7475f3c86ce15cdfc2218108efc3731c03d34a5278\",\"dweb:/ipfs/QmUGGfVwVhaHr5kS4177yKKYiLYzi5qZpkEmvYxBZqazxf\"]},\"src/contracts/vault/Vault.sol\":{\"keccak256\":\"0x2ceff6ed3298c4cad144c99fcc79b51cb9397d6ebef00285b915848b476f8c2e\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://11f2fb3581854f3ab6e82e8d4935d9eb510c903a13c3f022346c2956a58f5307\",\"dweb:/ipfs/QmdUnoXoyYoG9SGWyQZCFyLDRUUX3eXyXetkRvw6jxqqBz\"]},\"src/contracts/vault/VaultStorage.sol\":{\"keccak256\":\"0x57db25b127d77ea3472de53e3a4af3354399655b9268638b99ca5925fa364a56\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://aa763d9a6ec508ae3abfb8228b72b9fd9525279e5135d4962e79ff059feb1173\",\"dweb:/ipfs/QmcbDR6E9wyEpu6V2FkEC4hnWy47zXA9LSKJde6zSGd33Q\"]},\"src/interfaces/common/IEntity.sol\":{\"keccak256\":\"0x8ef4b63d6da63489778ccd5f8d13ebdd527dd4b62730b2c616df5af7474d2d21\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a8d69576a9219d85c50816a18ad53a4d53cfcb27ed38b8cccc808dc2734b71b\",\"dweb:/ipfs/QmYVN3P4Q4REvBWJ97TbAcaxm3uyB2anV6NSGa6ZtSwcEv\"]},\"src/interfaces/common/IMigratableEntity.sol\":{\"keccak256\":\"0x8f5f2809f3afbe8ebfbb365dd7b57b4dd3b6f9943a6187eaf648d45895b8e3c4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ffe640537d539e7a4fde70d30d3e4c57f4ba9c2c25c450cea713aae38e8fd5c\",\"dweb:/ipfs/QmSUTGzvdcn1R1KB7tLThMRtESsfPbeXDhhhKWGtntzBds\"]},\"src/interfaces/common/IRegistry.sol\":{\"keccak256\":\"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014\",\"dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK\"]},\"src/interfaces/common/IStaticDelegateCallable.sol\":{\"keccak256\":\"0xa335d4e81b9071b7de66ef92b43ff20671d86516eb1be46fef29a3483cd3f5d5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d464b9db863c14c05547d2b23352f2e9b7b784799cf09f6bbc4906a2a74e3516\",\"dweb:/ipfs/QmUVWzFvJz7eEbDQKiFTTzwi7TEbjcs3VmwdM4kuptAKvi\"]},\"src/interfaces/delegator/IBaseDelegator.sol\":{\"keccak256\":\"0x96bb312f032e17accce3f8f80936d99468029d6b37c9ca74acdb4b026a0148ee\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2a66dcb5b7d1a6ef6a363431ea98ebd78bc4fdd3d7a134d9b542dc66e7d025c2\",\"dweb:/ipfs/QmRhTPLd2ZAyRHmJUFUcWKs9b3if49QY17LYZuRqWmghw8\"]},\"src/interfaces/delegator/IDelegatorHook.sol\":{\"keccak256\":\"0xc51aa8d7d1f6c8043ee819b7aeb86da0e993912e1442098df897e299f01f9f46\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://adddf5cb2ba282aeb576b26efb28640f865a1721cc9b6eee8b3ee0457a2c9780\",\"dweb:/ipfs/QmNYgAmnLRwWZbhTuQhZs9rx4zcme1df5mEepkrniorSoW\"]},\"src/interfaces/delegator/IFullRestakeDelegator.sol\":{\"keccak256\":\"0xa3c8cb2e45d4d8ce90e95263bea40c01dc400f05ad65bc29597d878606be5e7d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://782cf5e201aa4cca037ebafd3807a68ff1cc721d5b8416a35244db0d0607369e\",\"dweb:/ipfs/QmQkJks6x7CKndeTPa9LxgTNygD5uEi7obhADhpq1Lsr9A\"]},\"src/interfaces/delegator/INetworkRestakeDelegator.sol\":{\"keccak256\":\"0xe7030fe30389a147fd710e3436ec346b4842695fd3e65a81b95375c9f1d633fc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://739c7e66d301778054f5c90bee45ec9438f68afba8a03eaaac52064c73b115ad\",\"dweb:/ipfs/QmfZ2ytKcTykAc76nxhg8ikUXV8NdBpetqb8W4YWPcox1Z\"]},\"src/interfaces/delegator/IOperatorNetworkSpecificDelegator.sol\":{\"keccak256\":\"0x74b95e64d29769202d45dd277bb830f623ff3d41ce77b80ce3ee4e318a5c71ec\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e512b903aae5c1b8a028c6e3f4f6223b5cb5d704503cfa6bd37b5346868f5c20\",\"dweb:/ipfs/QmZim9YExsPWtyxyeui993HTKAEmrg8MUcSkZ77Gp2JcuZ\"]},\"src/interfaces/delegator/IOperatorSpecificDelegator.sol\":{\"keccak256\":\"0x72075cab585dc17240cc3e32bc99b92f0d5627ddd988fed680e3e1a52d5a01e4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7448bc90699409ae61d85216b5efc2143a37f0f73354be2aea993bc54afca441\",\"dweb:/ipfs/QmXE4gAxM8pHosZK8mcTcj17puBx484meDCcmrDePskGHZ\"]},\"src/interfaces/service/IOptInService.sol\":{\"keccak256\":\"0x76fb5460a6d87a5705433d4fbeff7253cd75b8bbd0c888b2088f16e86ace146a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://990322019b3d11465f7024bae77ccbf7e2fe5d6fa3c754584778f37d04fa1337\",\"dweb:/ipfs/QmaSNHzcqxTkUCG9a4nqVfLECHLdjdrwAnDi3yDC7tDL24\"]},\"src/interfaces/slasher/IBaseSlasher.sol\":{\"keccak256\":\"0x7c82528b445659c313ab77335c407b0b6efe5e79027187bb287f7bc74202b404\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0274c90aa5df1aa6bb470a6aab53992fb14fd7e5472c9430416505b29647d9cf\",\"dweb:/ipfs/QmckbmJLDetPemVzCnnGcKYWAZV2BRFXGDsjiaec8jkHxx\"]},\"src/interfaces/vault/IVault.sol\":{\"keccak256\":\"0xffee01d383cd4e1a5530c614bf4360c1ef070c288abec9da1eb531b51bc07235\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://04f0046cac285d8ec44ebbb1f79dc94fab4495767190cad8364fbc1fafaadfb9\",\"dweb:/ipfs/QmUawAunwzXfCyShWfhKeThAgKtqe51hmrxvrXvM772M2R\"]},\"src/interfaces/vault/IVaultStorage.sol\":{\"keccak256\":\"0x592626f13754194f83047135de19229c49390bd59e34659b1bb38be71d973a22\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://06a6a9dfddd05e580b32bebe2cff4f63ba26a653180676d58225dd30d9c89d3e\",\"dweb:/ipfs/QmdgzBeY6Sxo8mGtyBxtv1tM1c2kU6J6zjeRd7vuXm4DU6\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.25+commit.b61c2a91"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"baseDelegatorHints","type":"address"},{"internalType":"address","name":"vaultHints","type":"address"},{"internalType":"address","name":"optInServiceHints","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"AccessControlBadConfirmation"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bytes32","name":"neededRole","type":"bytes32"}],"type":"error","name":"AccessControlUnauthorizedAccount"},{"inputs":[],"type":"error","name":"AlreadySet"},{"inputs":[],"type":"error","name":"CheckpointUnorderedInsertion"},{"inputs":[],"type":"error","name":"DuplicateRoleHolder"},{"inputs":[],"type":"error","name":"ExceedsMaxNetworkLimit"},{"inputs":[],"type":"error","name":"ExternalCall"},{"inputs":[],"type":"error","name":"InsufficientHookGas"},{"inputs":[],"type":"error","name":"InvalidInitialization"},{"inputs":[],"type":"error","name":"MissingRoleHolders"},{"inputs":[],"type":"error","name":"NotInitialized"},{"inputs":[],"type":"error","name":"NotInitializing"},{"inputs":[],"type":"error","name":"NotNetwork"},{"inputs":[],"type":"error","name":"NotOperator"},{"inputs":[],"type":"error","name":"NotSlasher"},{"inputs":[],"type":"error","name":"NotVault"},{"inputs":[],"type":"error","name":"ReentrancyGuardReentrantCall"},{"inputs":[{"internalType":"uint8","name":"bits","type":"uint8"},{"internalType":"uint256","name":"value","type":"uint256"}],"type":"error","name":"SafeCastOverflowedUintDowncast"},{"inputs":[],"type":"error","name":"ZeroAddressRoleHolder"},{"inputs":[{"internalType":"uint64","name":"version","type":"uint64","indexed":false}],"type":"event","name":"Initialized","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32","indexed":true},{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false},{"internalType":"uint48","name":"captureTimestamp","type":"uint48","indexed":false}],"type":"event","name":"OnSlash","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"bytes32","name":"previousAdminRole","type":"bytes32","indexed":true},{"internalType":"bytes32","name":"newAdminRole","type":"bytes32","indexed":true}],"type":"event","name":"RoleAdminChanged","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"address","name":"sender","type":"address","indexed":true}],"type":"event","name":"RoleGranted","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"address","name":"sender","type":"address","indexed":true}],"type":"event","name":"RoleRevoked","anonymous":false},{"inputs":[{"internalType":"address","name":"hook","type":"address","indexed":true}],"type":"event","name":"SetHook","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"SetMaxNetworkLimit","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"SetNetworkLimit","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"BASE_DELEGATOR_HINTS","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"DEFAULT_ADMIN_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"FACTORY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"HOOK_GAS_LIMIT","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"HOOK_RESERVE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"HOOK_SET_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"NETWORK_LIMIT_SET_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"NETWORK_REGISTRY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"OPERATOR_NETWORK_OPT_IN_SERVICE","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"OPERATOR_REGISTRY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"OPERATOR_VAULT_OPT_IN_SERVICE","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"OPT_IN_SERVICE_HINTS","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"TYPE","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"VAULT_FACTORY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"VAULT_HINTS","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"VERSION","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getRoleAdmin","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"grantRole"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"hasRole","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"hook","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"}],"stateMutability":"view","type":"function","name":"maxNetworkLimit","outputs":[{"internalType":"uint256","name":"value","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"}],"stateMutability":"view","type":"function","name":"networkLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"uint48","name":"timestamp","type":"uint48"},{"internalType":"bytes","name":"hint","type":"bytes"}],"stateMutability":"view","type":"function","name":"networkLimitAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"delegator","type":"address"},{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"uint48","name":"timestamp","type":"uint48"}],"stateMutability":"view","type":"function","name":"networkLimitHint","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"uint48","name":"timestamp","type":"uint48"}],"stateMutability":"view","type":"function","name":"networkLimitHintInternal","outputs":[{"internalType":"bool","name":"exists","type":"bool"},{"internalType":"uint32","name":"hint","type":"uint32"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint48","name":"captureTimestamp","type":"uint48"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"onSlash"},{"inputs":[],"stateMutability":"view","type":"function","name":"operator","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"callerConfirmation","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"renounceRole"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"revokeRole"},{"inputs":[{"internalType":"address","name":"hook_","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setHook"},{"inputs":[{"internalType":"uint96","name":"identifier","type":"uint96"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setMaxNetworkLimit"},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setNetworkLimit"},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"stake","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint48","name":"timestamp","type":"uint48"},{"internalType":"bytes","name":"hints","type":"bytes"}],"stateMutability":"view","type":"function","name":"stakeAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"delegator","type":"address"},{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint48","name":"timestamp","type":"uint48"}],"stateMutability":"view","type":"function","name":"stakeHints","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"staticDelegateCall"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"vault","outputs":[{"internalType":"address","name":"","type":"address"}]}],"devdoc":{"kind":"dev","methods":{"VERSION()":{"details":"Must return 1 for this one.","returns":{"_0":"version of the delegator"}},"getRoleAdmin(bytes32)":{"details":"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}."},"grantRole(bytes32,address)":{"details":"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event."},"hasRole(bytes32,address)":{"details":"Returns `true` if `account` has been granted `role`."},"initialize(bytes)":{"params":{"data":"some data to use"}},"networkLimit(bytes32)":{"params":{"subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"},"returns":{"_0":"limit of the subnetwork"}},"networkLimitAt(bytes32,uint48,bytes)":{"params":{"hint":"hint for checkpoint index","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)","timestamp":"time point to get the subnetwork limit at"},"returns":{"_0":"limit of the subnetwork at the given timestamp"}},"onSlash(bytes32,address,uint256,uint48,bytes)":{"details":"Only the vault's slasher can call this function.","params":{"amount":"amount of the collateral slashed","captureTimestamp":"time point when the stake was captured","data":"some additional data","operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"}},"renounceRole(bytes32,address)":{"details":"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `callerConfirmation`. May emit a {RoleRevoked} event."},"revokeRole(bytes32,address)":{"details":"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event."},"setHook(address)":{"details":"Only a HOOK_SET_ROLE holder can call this function. The hook can have arbitrary logic under certain functions, however, it doesn't affect the stake guarantees.","params":{"hook":"address of the hook"}},"setMaxNetworkLimit(uint96,uint256)":{"details":"Only a network can call this function.","params":{"amount":"new maximum subnetwork's limit"}},"setNetworkLimit(bytes32,uint256)":{"details":"Only a NETWORK_LIMIT_SET_ROLE holder can call this function.","params":{"amount":"new limit of the subnetwork","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"}},"stake(bytes32,address)":{"details":"Warning: this function is not safe to use for stake capturing, as it can change by the end of the block.","params":{"operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"},"returns":{"_0":"slashable stake until the end of the next epoch"}},"stakeAt(bytes32,address,uint48,bytes)":{"details":"Warning: it is not safe to use timestamp >= current one for the stake capturing, as it can change later.","params":{"hints":"hints for the checkpoints' indexes","operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)","timestamp":"time point to capture the stake at"},"returns":{"_0":"slashable stake at the given timestamp until the end of the consequent epoch"}},"staticDelegateCall(address,bytes)":{"details":"It allows to use this contract's storage on-chain.","params":{"data":"data to make a delegatecall with","target":"address of the contract to make a delegatecall to"}},"supportsInterface(bytes4)":{"details":"See {IERC165-supportsInterface}."}},"version":1},"userdoc":{"kind":"user","methods":{"FACTORY()":{"notice":"Get the factory's address."},"HOOK_GAS_LIMIT()":{"notice":"Get a gas limit for the hook."},"HOOK_RESERVE()":{"notice":"Get a reserve gas between the gas limit check and the hook's execution."},"HOOK_SET_ROLE()":{"notice":"Get a hook setter's role."},"NETWORK_LIMIT_SET_ROLE()":{"notice":"Get a subnetwork limit setter's role."},"NETWORK_REGISTRY()":{"notice":"Get the network registry's address."},"OPERATOR_NETWORK_OPT_IN_SERVICE()":{"notice":"Get the operator-network opt-in service's address."},"OPERATOR_REGISTRY()":{"notice":"Get the operator registry's address."},"OPERATOR_VAULT_OPT_IN_SERVICE()":{"notice":"Get the operator-vault opt-in service's address."},"TYPE()":{"notice":"Get the entity's type."},"VAULT_FACTORY()":{"notice":"Get the vault factory's address."},"VERSION()":{"notice":"Get a version of the delegator (different versions mean different interfaces)."},"hook()":{"notice":"Get the hook's address."},"initialize(bytes)":{"notice":"Initialize this entity contract by using a given data."},"maxNetworkLimit(bytes32)":{"notice":"Get a particular subnetwork's maximum limit (meaning the subnetwork is not ready to get more as a stake)."},"networkLimit(bytes32)":{"notice":"Get a subnetwork's limit (how much stake the vault curator is ready to give to the subnetwork)."},"networkLimitAt(bytes32,uint48,bytes)":{"notice":"Get a subnetwork's limit at a given timestamp using a hint (how much stake the vault curator is ready to give to the subnetwork)."},"onSlash(bytes32,address,uint256,uint48,bytes)":{"notice":"Called when a slash happens."},"operator()":{"notice":"Get an operator managing the vault's funds."},"setHook(address)":{"notice":"Set a new hook."},"setMaxNetworkLimit(uint96,uint256)":{"notice":"Set a maximum limit for a subnetwork (how much stake the subnetwork is ready to get). identifier identifier of the subnetwork"},"setNetworkLimit(bytes32,uint256)":{"notice":"Set a subnetwork's limit (how much stake the vault curator is ready to give to the subnetwork)."},"stake(bytes32,address)":{"notice":"Get a stake that a given subnetwork will be able to slash for a certain operator until the end of the next epoch (if no cross-slashing and no slashings by the subnetwork)."},"stakeAt(bytes32,address,uint48,bytes)":{"notice":"Get a stake that a given subnetwork could be able to slash for a certain operator at a given timestamp until the end of the consequent epoch using hints (if no cross-slashing and no slashings by the subnetwork)."},"staticDelegateCall(address,bytes)":{"notice":"Make a delegatecall from this contract to a given target contract with a particular data (always reverts with a return data)."},"vault()":{"notice":"Get the vault's address."}},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/contracts/hints/DelegatorHints.sol":"OperatorSpecificDelegatorHints"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol":{"keccak256":"0x6662ec4e5cefca03eeadd073e9469df8d2944bb2ee8ec8f7622c2c46aab5f225","urls":["bzz-raw://4d8544c6f8daa4d1bc215c6a72fe0acdb748664a105b0e5efc19295667521d45","dweb:/ipfs/QmdGWqdnXT8S3RgCR6aV8XHZrsybieMQLLnug1NtpSjEXN"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol":{"keccak256":"0xc163fcf9bb10138631a9ba5564df1fa25db9adff73bd9ee868a8ae1858fe093a","urls":["bzz-raw://9706d43a0124053d9880f6e31a59f31bc0a6a3dc1acd66ce0a16e1111658c5f6","dweb:/ipfs/QmUFmfowzkRwGtDu36cXV9SPTBHJ3n7dG9xQiK5B28jTf2"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b","urls":["bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609","dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol":{"keccak256":"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397","urls":["bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9","dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardUpgradeable.sol":{"keccak256":"0xb44e086e941292cdc7f440de51478493894ef0b1aeccb0c4047445919f667f74","urls":["bzz-raw://942dad22fbdc1669f025540ba63aa3ccfad5f8458fc5d4525b31ebf272e7af45","dweb:/ipfs/Qmdo4X2M82aM3AMoW2kf2jhYkSCyC4T1pHNd6obdsDFnAB"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol":{"keccak256":"0xdaba3f7c42c55b2896353f32bd27d4d5f8bae741b3b05d4c53f67abc4dc47ce8","urls":["bzz-raw://1fa2e61141c602510bcd2cd936ed9561922ac8772a9b9c9a9db091a74e354a45","dweb:/ipfs/QmcHQDDoEBwJmwUbzoVkytvJsBx3KVHYFFnDkvRGWh9Wmh"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol":{"keccak256":"0xb6b36edd6a2999fd243ff226d6cbf84bd71af2432bbd0dfe19392996a1d9cb41","urls":["bzz-raw://1fd2f35495652e57e3f99bc6c510bc5f7dd398a176ea2e72d8ed730aebc6ca26","dweb:/ipfs/QmTQV6X4gkikTib49cho5iDX3JvSQbdsoEChoDwrk3CbbH"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC1271.sol":{"keccak256":"0x85a45f3f10014a0f8be41157a32b6a5f905753ea64a4b64e29fc12b7deeecf39","urls":["bzz-raw://c3c74009ce36136b36c77c23935b8e4a7b4f253be2da2be4fb4a916b1ce43743","dweb:/ipfs/QmcH36v3iN7SJJuF73AunLR2LtNxhVJ1wm63ph4dPZ4pcL"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC5267.sol":{"keccak256":"0x92aa1df62dc3d33f1656d63bede0923e0df0b706ad4137c8b10b0a8fe549fd92","urls":["bzz-raw://c5c0f29195ad64cbe556da8e257dac8f05f78c53f90323c0d2accf8e6922d33a","dweb:/ipfs/QmQ61TED8uaCZwcbh8KkgRSsCav7x7HbcGHwHts3U4DmUP"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70","urls":["bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c","dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol":{"keccak256":"0x6008dabfe393240d73d7dd7688033f72740d570aa422254d29a7dce8568f3aff","urls":["bzz-raw://f5196ec75139918c6c7bb4251b36395e668f1fa6d206beba7e7520e74913940d","dweb:/ipfs/QmSyqjksXxmm2mCG6qRd1yuwLykypkSVBbnBnGqJRcuJMi"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0x37bb49513c49c87c4642a891b13b63571bc87013dde806617aa1efb54605f386","urls":["bzz-raw://b3036b3a83b7c48f96641f2a9002b9f2dcb6a5958dd670894ada21ae8229b3d0","dweb:/ipfs/QmUNfSBdoVtjhETaUJCYcaC7pTMgbhht926tJ2uXJbiVd3"],"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/ShortStrings.sol":{"keccak256":"0x18a7171df639a934592915a520ecb97c5bbc9675a1105607aac8a94e72bf62c6","urls":["bzz-raw://7478e1f13da69a2867ccd883001d836b75620362e743f196376d63ed0c422a1c","dweb:/ipfs/QmWywcQ9TNfwtoqAxbn25d8C5VrV12PrPS9UjtGe6pL2BA"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol":{"keccak256":"0x32ba59b4b7299237c8ba56319110989d7978a039faf754793064e967e5894418","urls":["bzz-raw://1ae50c8b562427df610cc4540c9bf104acca7ef8e2dcae567ae7e52272281e9c","dweb:/ipfs/QmTHiadFCSJUPpRjNegc5SahmeU8bAoY8i9Aq6tVscbcKR"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0x55f102ea785d8399c0e58d1108e2d289506dde18abc6db1b7f68c1f9f9bc5792","urls":["bzz-raw://6e52e0a7765c943ef14e5bcf11e46e6139fa044be564881378349236bf2e3453","dweb:/ipfs/QmZEeeXoFPW47amyP35gfzomF9DixqqTEPwzBakv6cZw6i"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol":{"keccak256":"0xeed0a08b0b091f528356cbc7245891a4c748682d4f6a18055e8e6ca77d12a6cf","urls":["bzz-raw://ba80ba06c8e6be852847e4c5f4492cef801feb6558ae09ed705ff2e04ea8b13c","dweb:/ipfs/QmXRJDv3xHLVQCVXg1ZvR35QS9sij5y9NDWYzMfUfAdTHF"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/EIP712.sol":{"keccak256":"0x999f705a027ed6dc2d4e0df2cc4a509852c6bfd11de1c8161bf88832d0503fd0","urls":["bzz-raw://0798def67258d9a3cc20b2b4da7ebf351a5cefe0abfdd665d2d81f8e32f89b21","dweb:/ipfs/QmPEvJosnPfzHNjKvCv2D3891mA2Ww8eUwkqrxBjuYdHCt"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol":{"keccak256":"0xba333517a3add42cd35fe877656fc3dfcc9de53baa4f3aabbd6d12a92e4ea435","urls":["bzz-raw://2ceacff44c0fdc81e48e0e0b1db87a2076d3c1fb497341de077bf1da9f6b406c","dweb:/ipfs/QmRUo1muMRAewxrKQ7TkXUtknyRoR57AyEkoPpiuZQ8FzX"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/SignatureChecker.sol":{"keccak256":"0x6b11eb41a228cca35d4b662b4df69fcd75192851365102690f57b2ac01e83fe6","urls":["bzz-raw://ab006a2983ed350d2af21ddcdd835dcae3b8340086cc4d088460da5abd041f69","dweb:/ipfs/QmbEacDhkJZiGrgzLjB4pNtE8Z1uudjDw1DvcDUTVQFsLG"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b","urls":["bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df","dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d","urls":["bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875","dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol":{"keccak256":"0xe19a4d5f31d2861e7344e8e535e2feafb913d806d3e2b5fe7782741a2a7094fe","urls":["bzz-raw://4aed79c0fa6f0546ed02f2f683e8f77f0fd2ed7eb34d8bbf3d373c9a6d95b13c","dweb:/ipfs/QmWqVz6UAVqmnWU5pqYPt1o6iDEZyPaBraAA3rKfTTSfYj"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0x5f7e4076e175393767754387c962926577f1660dd9b810187b9002407656be72","urls":["bzz-raw://7d533a1c97cd43a57cd9c465f7ee8dd0e39ae93a8fb8ff8e5303a356b081cdcc","dweb:/ipfs/QmVBEei6aTnvYNZp2CHYVNKyZS4q1KkjANfY39WVXZXVoT"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/Checkpoints.sol":{"keccak256":"0xbdc5e074d7dd6678f67e92b1a51a20226801a407b0e1af3da367c5d1ff4519ad","urls":["bzz-raw://a36cca6b22fff3db16fc789ff6c60eea71d4b156065d4d0c83a0bc5e91a77a8b","dweb:/ipfs/QmYN3exd5AemxjBrN8XMB1p5LbbE16uC3sjbYjwi8AjcGR"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/types/Time.sol":{"keccak256":"0xc7755af115020049e4140f224f9ee88d7e1799ffb0646f37bf0df24bf6213f58","urls":["bzz-raw://7f09bf94d5274334ec021f61a04659db303f31e60460e14b709c9bf187740111","dweb:/ipfs/QmNvgomZYUwFAt4cZbPWAiTeSZQreGehY9BK5xyVJsUttb"],"license":"MIT"},"src/contracts/common/Entity.sol":{"keccak256":"0x3d61a932995b8443381f3950542d388223a2c26dd5d29a3274dea3baa7388bd7","urls":["bzz-raw://7cdf5f03ca72fd263fd32ff59c8d88ddca911ae83896a287d10772c1bbe9b138","dweb:/ipfs/QmbP84r5BWT1Rn9AYTntWSf3xUMTTCohTZJFhbBhDXFoHa"],"license":"BUSL-1.1"},"src/contracts/common/MigratableEntity.sol":{"keccak256":"0x2d736f4dacd5d7e7697503bc426c78b8250fe1694ca157965ec178da6807de58","urls":["bzz-raw://f1237acf96b4b9f9b69156e068eddd726a6e15bd8e87a18dc999cd4ba4da069c","dweb:/ipfs/QmS6M8fiFFSeuJ4ZKKq1z8W7w4ybeHQSy5TLASGoc1LVic"],"license":"BUSL-1.1"},"src/contracts/common/StaticDelegateCallable.sol":{"keccak256":"0x350029aa8955eacaffffaeb58babc5c98e80ebc5c5db388ed17ee6465f4a9d90","urls":["bzz-raw://eb392a8ee9050e0af606897df63e3404e3829e8b688b580663892f9664195764","dweb:/ipfs/QmaXC8jqV8UrrAFkzXTEv2fJF56sy33HhLxAzaRZmUxuXD"],"license":"BUSL-1.1"},"src/contracts/delegator/BaseDelegator.sol":{"keccak256":"0x7c54d491fdd4415b764a9c8defa068e56d4c0c8c9419be0053a1d377669290e8","urls":["bzz-raw://9238bfbad0f6eeb0dc7727724de14380f1980b395902269703d5e2ef07e52e10","dweb:/ipfs/QmPJn1V4HNXcEghYvogGuSTF24dSQUPosR5qtsXcmNqRm3"],"license":"BUSL-1.1"},"src/contracts/delegator/FullRestakeDelegator.sol":{"keccak256":"0x0a81c4f8e72914563a9cb771e93acf889c71ea36b7bec040e4eb562b199d5af1","urls":["bzz-raw://6fc66b6ba02da77046a0bbbd1dd407a62c08f52e04486c9cbd2cb1cca3da555f","dweb:/ipfs/QmZQivK1ZnMxfRQQ5aLpV9co5u55wQVNev5Rg1hzAqxhkE"],"license":"BUSL-1.1"},"src/contracts/delegator/NetworkRestakeDelegator.sol":{"keccak256":"0xd3a8e6522f9c6fdcc2da837c9023afd6bdff2bce45a35590320c475519e3636d","urls":["bzz-raw://58b17a87f6554f08376f9ea7fedf486a4aa75801bf0ad8b23ff5a46959b6b7a3","dweb:/ipfs/QmSTmNh67tYt8CmjVZb57r8N3qX5yeYdMApKPJm3qvQgQw"],"license":"BUSL-1.1"},"src/contracts/delegator/OperatorNetworkSpecificDelegator.sol":{"keccak256":"0x031a10722b9ec49048f0952710401131290adb87e71caf294e864e7ac3b98a16","urls":["bzz-raw://72428febc875134b2f29205e6f294634a1c22a7d5c78d6a9cb2f8196f107c9b5","dweb:/ipfs/QmTPwXR6h5oytckmkLrHdKeEMdphJxceDhYUR4zvQeWAwY"],"license":"BUSL-1.1"},"src/contracts/delegator/OperatorSpecificDelegator.sol":{"keccak256":"0x630ce62fa30b9f3349ab7a8cf8dbf041319febc6dd757be2f94d3d25944ed328","urls":["bzz-raw://c2ac59d47ce57d2a6819ae9833e1a618a371eccff93eb5ab367b201b01f42bfa","dweb:/ipfs/QmdBpGMBivpNPv2WbH8vnCUy5xkVeaxQvGgqi33vKCz1kA"],"license":"BUSL-1.1"},"src/contracts/hints/DelegatorHints.sol":{"keccak256":"0x44aa0c396311a54afbc7c73e8dadeed41e3165a4fd13f712b27d63d50fc3376d","urls":["bzz-raw://2f255214f3531fc707d88be0d56a7a0aed4180439316d099d760d9118aa83093","dweb:/ipfs/QmZD1w5p1ukJSXumUAjvxwGmkPhn7vsr21Y2atLGEZR2oi"],"license":"BUSL-1.1"},"src/contracts/hints/Hints.sol":{"keccak256":"0x8b565df1ae35993c097a9e642002782a8f451f6fd01809cad6bcd345bdf1b99c","urls":["bzz-raw://99a19adb01e350a92f534095b3078229df1f2f83077992d75d58d8684be45971","dweb:/ipfs/QmbmwcuswVbzvwHQFTtrJG86oV98GnfxqYTb8cV8u1acox"],"license":"BUSL-1.1"},"src/contracts/hints/OptInServiceHints.sol":{"keccak256":"0x95d9407900d27b9f4a1233b772aeed809c07b2dc5b31cfc9fa77ca26514c49e5","urls":["bzz-raw://a13a8877e312d7e6b8b85bde3668c5d84ff5ecc83f762cd573f2b7104c64eb42","dweb:/ipfs/QmYV2J55acuGzCNnS3juABuUHY5U1xc8g8o9jwEyFFdeG5"],"license":"BUSL-1.1"},"src/contracts/hints/VaultHints.sol":{"keccak256":"0xccb505b7159b769cc114d67b87c2de6b106557f667fc8f3780114baad5c3c442","urls":["bzz-raw://6d0c80a908fc16e96a8b5605a0bd53f9e89ad0ef0a738fbbae80ba4d3160749b","dweb:/ipfs/QmXo5UtWoR8YmunqcbBU8rQMm1nvmvjNPoXcVrDhh4pEwR"],"license":"BUSL-1.1"},"src/contracts/libraries/Checkpoints.sol":{"keccak256":"0xba90097c8bfe0a975499428b5f8ac5569483c7d92ccc28c12d70de416aae040c","urls":["bzz-raw://12f5d93ca94cd06d3147db68993165a58e17903ed53682560de61f3085ad4609","dweb:/ipfs/QmePiuAqvXprMLmFZkGZeGjvGPAvsEDHfCDv7BoQhXu9xE"],"license":"MIT"},"src/contracts/libraries/ERC4626Math.sol":{"keccak256":"0x8441160513c1cbeb1c3b9ee077bcc7e7ce20006b52a77c8dd39ff0ef89699939","urls":["bzz-raw://943f8cc3e26ddf649f465f40c909819f5c864717c4baa339e9e403b9374a4653","dweb:/ipfs/QmXPxi1sUDsrGprZdUgCzoPEosaZMv9ZhygWQ1vAi1phAB"],"license":"MIT"},"src/contracts/libraries/Subnetwork.sol":{"keccak256":"0xf5ef5506fd66082b3c2e7f3df37529f5a8efad32ac62e7c8914bd63219190bfe","urls":["bzz-raw://ba031a54ee0d0e9a270c2b9e18437f5668cfeb659cfd5fe0677459d7fcac2a56","dweb:/ipfs/QmReP3H7qQ78tAfgLnJKsNEQNCQfF1X1Get38Ffd4kzq32"],"license":"MIT"},"src/contracts/service/OptInService.sol":{"keccak256":"0x4e0932077f2686b7990e10d59deb2535334c0d09e52ef6e57c6ab09eca21c4b1","urls":["bzz-raw://7c00d311032ed4a1743aca7475f3c86ce15cdfc2218108efc3731c03d34a5278","dweb:/ipfs/QmUGGfVwVhaHr5kS4177yKKYiLYzi5qZpkEmvYxBZqazxf"],"license":"BUSL-1.1"},"src/contracts/vault/Vault.sol":{"keccak256":"0x2ceff6ed3298c4cad144c99fcc79b51cb9397d6ebef00285b915848b476f8c2e","urls":["bzz-raw://11f2fb3581854f3ab6e82e8d4935d9eb510c903a13c3f022346c2956a58f5307","dweb:/ipfs/QmdUnoXoyYoG9SGWyQZCFyLDRUUX3eXyXetkRvw6jxqqBz"],"license":"BUSL-1.1"},"src/contracts/vault/VaultStorage.sol":{"keccak256":"0x57db25b127d77ea3472de53e3a4af3354399655b9268638b99ca5925fa364a56","urls":["bzz-raw://aa763d9a6ec508ae3abfb8228b72b9fd9525279e5135d4962e79ff059feb1173","dweb:/ipfs/QmcbDR6E9wyEpu6V2FkEC4hnWy47zXA9LSKJde6zSGd33Q"],"license":"BUSL-1.1"},"src/interfaces/common/IEntity.sol":{"keccak256":"0x8ef4b63d6da63489778ccd5f8d13ebdd527dd4b62730b2c616df5af7474d2d21","urls":["bzz-raw://5a8d69576a9219d85c50816a18ad53a4d53cfcb27ed38b8cccc808dc2734b71b","dweb:/ipfs/QmYVN3P4Q4REvBWJ97TbAcaxm3uyB2anV6NSGa6ZtSwcEv"],"license":"MIT"},"src/interfaces/common/IMigratableEntity.sol":{"keccak256":"0x8f5f2809f3afbe8ebfbb365dd7b57b4dd3b6f9943a6187eaf648d45895b8e3c4","urls":["bzz-raw://0ffe640537d539e7a4fde70d30d3e4c57f4ba9c2c25c450cea713aae38e8fd5c","dweb:/ipfs/QmSUTGzvdcn1R1KB7tLThMRtESsfPbeXDhhhKWGtntzBds"],"license":"MIT"},"src/interfaces/common/IRegistry.sol":{"keccak256":"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb","urls":["bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014","dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK"],"license":"MIT"},"src/interfaces/common/IStaticDelegateCallable.sol":{"keccak256":"0xa335d4e81b9071b7de66ef92b43ff20671d86516eb1be46fef29a3483cd3f5d5","urls":["bzz-raw://d464b9db863c14c05547d2b23352f2e9b7b784799cf09f6bbc4906a2a74e3516","dweb:/ipfs/QmUVWzFvJz7eEbDQKiFTTzwi7TEbjcs3VmwdM4kuptAKvi"],"license":"MIT"},"src/interfaces/delegator/IBaseDelegator.sol":{"keccak256":"0x96bb312f032e17accce3f8f80936d99468029d6b37c9ca74acdb4b026a0148ee","urls":["bzz-raw://2a66dcb5b7d1a6ef6a363431ea98ebd78bc4fdd3d7a134d9b542dc66e7d025c2","dweb:/ipfs/QmRhTPLd2ZAyRHmJUFUcWKs9b3if49QY17LYZuRqWmghw8"],"license":"MIT"},"src/interfaces/delegator/IDelegatorHook.sol":{"keccak256":"0xc51aa8d7d1f6c8043ee819b7aeb86da0e993912e1442098df897e299f01f9f46","urls":["bzz-raw://adddf5cb2ba282aeb576b26efb28640f865a1721cc9b6eee8b3ee0457a2c9780","dweb:/ipfs/QmNYgAmnLRwWZbhTuQhZs9rx4zcme1df5mEepkrniorSoW"],"license":"MIT"},"src/interfaces/delegator/IFullRestakeDelegator.sol":{"keccak256":"0xa3c8cb2e45d4d8ce90e95263bea40c01dc400f05ad65bc29597d878606be5e7d","urls":["bzz-raw://782cf5e201aa4cca037ebafd3807a68ff1cc721d5b8416a35244db0d0607369e","dweb:/ipfs/QmQkJks6x7CKndeTPa9LxgTNygD5uEi7obhADhpq1Lsr9A"],"license":"MIT"},"src/interfaces/delegator/INetworkRestakeDelegator.sol":{"keccak256":"0xe7030fe30389a147fd710e3436ec346b4842695fd3e65a81b95375c9f1d633fc","urls":["bzz-raw://739c7e66d301778054f5c90bee45ec9438f68afba8a03eaaac52064c73b115ad","dweb:/ipfs/QmfZ2ytKcTykAc76nxhg8ikUXV8NdBpetqb8W4YWPcox1Z"],"license":"MIT"},"src/interfaces/delegator/IOperatorNetworkSpecificDelegator.sol":{"keccak256":"0x74b95e64d29769202d45dd277bb830f623ff3d41ce77b80ce3ee4e318a5c71ec","urls":["bzz-raw://e512b903aae5c1b8a028c6e3f4f6223b5cb5d704503cfa6bd37b5346868f5c20","dweb:/ipfs/QmZim9YExsPWtyxyeui993HTKAEmrg8MUcSkZ77Gp2JcuZ"],"license":"MIT"},"src/interfaces/delegator/IOperatorSpecificDelegator.sol":{"keccak256":"0x72075cab585dc17240cc3e32bc99b92f0d5627ddd988fed680e3e1a52d5a01e4","urls":["bzz-raw://7448bc90699409ae61d85216b5efc2143a37f0f73354be2aea993bc54afca441","dweb:/ipfs/QmXE4gAxM8pHosZK8mcTcj17puBx484meDCcmrDePskGHZ"],"license":"MIT"},"src/interfaces/service/IOptInService.sol":{"keccak256":"0x76fb5460a6d87a5705433d4fbeff7253cd75b8bbd0c888b2088f16e86ace146a","urls":["bzz-raw://990322019b3d11465f7024bae77ccbf7e2fe5d6fa3c754584778f37d04fa1337","dweb:/ipfs/QmaSNHzcqxTkUCG9a4nqVfLECHLdjdrwAnDi3yDC7tDL24"],"license":"MIT"},"src/interfaces/slasher/IBaseSlasher.sol":{"keccak256":"0x7c82528b445659c313ab77335c407b0b6efe5e79027187bb287f7bc74202b404","urls":["bzz-raw://0274c90aa5df1aa6bb470a6aab53992fb14fd7e5472c9430416505b29647d9cf","dweb:/ipfs/QmckbmJLDetPemVzCnnGcKYWAZV2BRFXGDsjiaec8jkHxx"],"license":"MIT"},"src/interfaces/vault/IVault.sol":{"keccak256":"0xffee01d383cd4e1a5530c614bf4360c1ef070c288abec9da1eb531b51bc07235","urls":["bzz-raw://04f0046cac285d8ec44ebbb1f79dc94fab4495767190cad8364fbc1fafaadfb9","dweb:/ipfs/QmUawAunwzXfCyShWfhKeThAgKtqe51hmrxvrXvM772M2R"],"license":"MIT"},"src/interfaces/vault/IVaultStorage.sol":{"keccak256":"0x592626f13754194f83047135de19229c49390bd59e34659b1bb38be71d973a22","urls":["bzz-raw://06a6a9dfddd05e580b32bebe2cff4f63ba26a653180676d58225dd30d9c89d3e","dweb:/ipfs/QmdgzBeY6Sxo8mGtyBxtv1tM1c2kU6J6zjeRd7vuXm4DU6"],"license":"MIT"}},"version":1},"id":86} \ No newline at end of file diff --git a/out/FullRestakeDelegator.sol/FullRestakeDelegator.json b/out/FullRestakeDelegator.sol/FullRestakeDelegator.json index c9e0ec0f..773fe4ed 100644 --- a/out/FullRestakeDelegator.sol/FullRestakeDelegator.json +++ b/out/FullRestakeDelegator.sol/FullRestakeDelegator.json @@ -1 +1 @@ -{"abi":[{"type":"constructor","inputs":[{"name":"networkRegistry","type":"address","internalType":"address"},{"name":"vaultFactory","type":"address","internalType":"address"},{"name":"operatorVaultOptInService","type":"address","internalType":"address"},{"name":"operatorNetworkOptInService","type":"address","internalType":"address"},{"name":"delegatorFactory","type":"address","internalType":"address"},{"name":"entityType","type":"uint64","internalType":"uint64"}],"stateMutability":"nonpayable"},{"type":"function","name":"DEFAULT_ADMIN_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"FACTORY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"HOOK_GAS_LIMIT","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"HOOK_RESERVE","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"HOOK_SET_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"NETWORK_LIMIT_SET_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"NETWORK_REGISTRY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"OPERATOR_NETWORK_LIMIT_SET_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"OPERATOR_NETWORK_OPT_IN_SERVICE","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"OPERATOR_VAULT_OPT_IN_SERVICE","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"TYPE","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"VAULT_FACTORY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"VERSION","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"pure"},{"type":"function","name":"getRoleAdmin","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"grantRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"hasRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"hook","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"initialize","inputs":[{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"maxNetworkLimit","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"value","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"networkLimit","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"networkLimitAt","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"timestamp","type":"uint48","internalType":"uint48"},{"name":"hint","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"onSlash","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"captureTimestamp","type":"uint48","internalType":"uint48"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"operatorNetworkLimit","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"operatorNetworkLimitAt","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"timestamp","type":"uint48","internalType":"uint48"},{"name":"hint","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"renounceRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"callerConfirmation","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"revokeRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setHook","inputs":[{"name":"hook_","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setMaxNetworkLimit","inputs":[{"name":"identifier","type":"uint96","internalType":"uint96"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setNetworkLimit","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setOperatorNetworkLimit","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"stake","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"stakeAt","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"timestamp","type":"uint48","internalType":"uint48"},{"name":"hints","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"staticDelegateCall","inputs":[{"name":"target","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"vault","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"OnSlash","inputs":[{"name":"subnetwork","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"captureTimestamp","type":"uint48","indexed":false,"internalType":"uint48"}],"anonymous":false},{"type":"event","name":"RoleAdminChanged","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"previousAdminRole","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"newAdminRole","type":"bytes32","indexed":true,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"RoleGranted","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"sender","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"RoleRevoked","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"sender","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"SetHook","inputs":[{"name":"hook","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"SetMaxNetworkLimit","inputs":[{"name":"subnetwork","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"SetNetworkLimit","inputs":[{"name":"subnetwork","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"SetOperatorNetworkLimit","inputs":[{"name":"subnetwork","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"error","name":"AccessControlBadConfirmation","inputs":[]},{"type":"error","name":"AccessControlUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"neededRole","type":"bytes32","internalType":"bytes32"}]},{"type":"error","name":"AlreadySet","inputs":[]},{"type":"error","name":"CheckpointUnorderedInsertion","inputs":[]},{"type":"error","name":"DuplicateRoleHolder","inputs":[]},{"type":"error","name":"ExceedsMaxNetworkLimit","inputs":[]},{"type":"error","name":"InsufficientHookGas","inputs":[]},{"type":"error","name":"InvalidInitialization","inputs":[]},{"type":"error","name":"MissingRoleHolders","inputs":[]},{"type":"error","name":"NotInitialized","inputs":[]},{"type":"error","name":"NotInitializing","inputs":[]},{"type":"error","name":"NotNetwork","inputs":[]},{"type":"error","name":"NotSlasher","inputs":[]},{"type":"error","name":"NotVault","inputs":[]},{"type":"error","name":"ReentrancyGuardReentrantCall","inputs":[]},{"type":"error","name":"SafeCastOverflowedUintDowncast","inputs":[{"name":"bits","type":"uint8","internalType":"uint8"},{"name":"value","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ZeroAddressRoleHolder","inputs":[]}],"bytecode":{"object":"0x610140346101a1576001600160401b0390601f612cbd38819003918201601f191683019190848311848410176101a5578160c092859260409586528339810103126101a15761004d826101b9565b610059602084016101b9565b906100658385016101b9565b94610072606086016101b9565b9460a0610081608083016101b9565b9101519180831683036101a1577ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a009081549060ff82891c1661019057808083160361014c575b50505060805260a05260c05260e0526101009283526101209182525190612aef92836101ce84396080518361072a015260a05183610eb8015260c0518381816105bb0152610ef1015260e0518381816104620152611d990152518281816104f5015281816114c001526116040152518181816105390152818161142701526116820152f35b6001600160401b0319909116811790915585519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a15f80806100c7565b875163f92ee8a960e01b8152600490fd5b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b51906001600160a01b03821682036101a15756fe60806040526004361015610011575f80fd5b5f3560e01c806301ffc9a714610244578063020cf0c21461023f578063021453481461023a578063103f2907146102355780631142209514610230578063128e5d821461022b5780631a80e5001461022657806323f752d514610221578063248a9ca31461021c5780632dd31000146102175780632f2ff15d1461021257806336568abe1461020d5780633dfd3873146102085780633eb22c0f14610203578063439fab91146101fe578063518504ba146101f9578063557cab44146101f45780635d32a1c9146101ef5780636679191e146101ea5780637d24bb27146101e55780637f5a7c7b146101e057806391d14854146101db57806394d2558a146101d65780639f86fd85146101d1578063a217fddf146101cc578063bb24fe8a146101c7578063c0cd7c3e146101c2578063d15b740e146101bd578063d547741f146101b8578063e02f6937146101b3578063e49561ee146101ae578063fbfa77cf146101a9578063fd4d447c146101a4578063ff54740f1461019f5763ffa1ad741461019a575f80fd5b61120b565b6111ee565b6111c4565b61119d565b610fb2565b610f96565b610f4a565b610f20565b610edc565b610e99565b610e7f565b610dc5565b610d87565b610cd7565b610caf565b610c76565b610c3c565b610be1565b610ab1565b610a77565b61093f565b6108e9565b6107f0565b6107a5565b610759565b610715565b6106dc565b610568565b610524565b6104e0565b610491565b61044d565b610390565b6102af565b3461029a57602036600319011261029a5760043563ffffffff60e01b811680910361029a57602090637965db0b60e01b8114908115610289575b506040519015158152f35b6301ffc9a760e01b1490505f61027e565b5f80fd5b6001600160a01b0381160361029a57565b3461029a57606036600319011261029a576024356004356102cf8261029e565b604435916102db6116f7565b815f526004602052826103096103048360405f209060018060a01b03165f5260205260405f2090565b61190f565b1461037e5760207ffc9545f07ffadfb668efd0144cdcaf2d6e2c8192dce1ea9fc131934f9c90fc7e91835f52600482526103698561035a8360405f209060018060a01b03165f5260205260405f2090565b61036342612254565b9061184d565b50506040519485526001600160a01b031693a3005b60405163a741a04560e01b8152600490fd5b3461029a5760408060031936011261029a5760043590602435906103b2611754565b825f526002602052805f2054821161043d57825f526003602052816103d8825f2061190f565b1461042d5781610428916104187e899d104fc3d8820bd96540612bcc5c448c8837b13b9f7faa43ad0728f0c14f9461035a875f52600360205260405f2090565b5050519081529081906020820190565b0390a2005b5163a741a04560e01b8152600490fd5b51631eefc06360e31b8152600490fd5b3461029a575f36600319011261029a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461029a57604036600319011261029a5760206104d86103046024356104b68161029e565b6004355f526004845260405f209060018060a01b03165f5260205260405f2090565b604051908152f35b3461029a575f36600319011261029a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461029a575f36600319011261029a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461029a57604036600319011261029a576004356001600160601b038116810361029a576024359061059861195c565b6040516302910f8b60e31b81523360048201526020816024816001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165afa9081156106d7575f916106a8575b5015610696576001600160601b03166bffffffffffffffffffffffff193360601b16179080610622835f52600260205260405f2090565b541461037e5761067b817fc67e7929681aa1bccd63f52b3799bf5805f3009f197db6fdf584b14f7fbf608c92610660855f52600260205260405f2090565b5561066b818561198b565b6040519081529081906020820190565b0390a261069460015f80516020612a7a83398151915255565b005b6040516323d53b9760e21b8152600490fd5b6106ca915060203d6020116106d0575b6106c28183610b31565b810190611226565b5f6105eb565b503d6106b8565b61123e565b3461029a57602036600319011261029a576004355f525f80516020612a5a8339815191526020526020600160405f200154604051908152f35b3461029a575f36600319011261029a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461029a57604036600319011261029a5761069460243560043561077c8261029e565b805f525f80516020612a5a8339815191526020526107a0600160405f2001546117aa565b611c66565b3461029a57604036600319011261029a576024356107c28161029e565b336001600160a01b038216036107de5761069490600435611c9c565b60405163334bd91960e11b8152600490fd5b3461029a57602036600319011261029a5760043561080d8161029e565b61081561195c565b335f9081527f9ebbcbe0d2961d3fbe56ca6f679bc753bd848d3e6bb3eaf9041c51b286881d2c60205260409020547fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c9060ff16156108cb57506001546001600160a01b03918216918116821461037e576001600160a01b03191681176001557f5bbb1d3ebb6a3ad2a0f17ff35e579a83af60604d1d3c2a4c83c62adecadf666d5f80a260015f80516020612a7a83398151915255005b6044906040519063e2517d3f60e01b82523360048301526024820152fd5b3461029a57602036600319011261029a576004355f52600360205260206104d860405f2061190f565b9181601f8401121561029a578235916001600160401b03831161029a576020838186019501011161029a57565b3461029a57602036600319011261029a576001600160401b0360043581811161029a57610970903690600401610912565b5f80516020612a9a833981519152549260ff8460401c1615931680159081610a6f575b6001149081610a65575b159081610a5c575b50610a4a575f80516020612a9a833981519152805467ffffffffffffffff191660011790556109d89183610a2657611d64565b6109de57005b5f80516020612a9a833981519152805460ff60401b19169055604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a1005b5f80516020612a9a833981519152805460ff60401b1916600160401b179055611d64565b60405163f92ee8a960e01b8152600490fd5b9050155f6109a5565b303b15915061099d565b849150610993565b3461029a575f36600319011261029a5760206040517f15e7c882d74e8821ebf34aaff46fd0e1d53b9393d91490019124113d28dc32a38152f35b3461029a575f36600319011261029a576020604051614e208152f35b6064359065ffffffffffff8216820361029a57565b634e487b7160e01b5f52604160045260245ffd5b604081019081106001600160401b03821117610b1157604052565b610ae2565b606081019081106001600160401b03821117610b1157604052565b90601f801991011681019081106001600160401b03821117610b1157604052565b60405190608082018281106001600160401b03821117610b1157604052565b60405190610b7e82610af6565b565b6001600160401b038111610b1157601f01601f191660200190565b81601f8201121561029a57803590610bb282610b80565b92610bc06040519485610b31565b8284526020838301011161029a57815f926020809301838601378301015290565b3461029a57606036600319011261029a5760243565ffffffffffff8116810361029a576044356001600160401b03811161029a57602091610c296104d8923690600401610b9b565b906004355f526003845260405f20611ed3565b3461029a575f36600319011261029a5760206040517fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c8152f35b3461029a575f36600319011261029a5760206040517e8b9b1e5fa9cf3b14f87f435649268146305ddf689f082e5961a335b07a9abf8152f35b3461029a575f36600319011261029a576001546040516001600160a01b039091168152602090f35b3461029a57604036600319011261029a57602060ff610d29602435610cfb8161029e565b6004355f525f80516020612a5a833981519152845260405f209060018060a01b03165f5260205260405f2090565b54166040519015158152f35b90608060031983011261029a5760043591602435610d528161029e565b9160443565ffffffffffff8116810361029a5791606435906001600160401b03821161029a57610d8491600401610b9b565b90565b3461029a5760206104d8610dc0610d9d36610d35565b939190925f526004865260405f209060018060a01b03165f5260205260405f2090565b611ed3565b3461029a5760408060031936011261029a57600435610de38161029e565b602435906001600160401b03821161029a575f8091610e09610e6d943690600401610912565b908187519283928337810184815203915af43d15610e7557610e5f3d610e2e81610b80565b90610e3b86519283610b31565b81523d5f602083013e5b84519485931515602085015280840152606083019061128b565b03601f198101835282610b31565b805190602001fd5b610e5f6060610e45565b3461029a575f36600319011261029a5760206040515f8152f35b3461029a575f36600319011261029a5760206040516001600160401b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461029a575f36600319011261029a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461029a57602036600319011261029a576004355f526002602052602060405f2054604051908152f35b3461029a57604036600319011261029a57610694602435600435610f6d8261029e565b805f525f80516020612a5a833981519152602052610f91600160405f2001546117aa565b611c9c565b3461029a5760206104d8610fa936610d35565b929190916113b1565b3461029a5760a036600319011261029a57602435600435610fd28261029e565b60443591610fde610acd565b90608435906001600160401b03821161029a5761100060049236908401610b9b565b61100861195c565b5f5460209061102d90611021906001600160a01b031681565b6001600160a01b031690565b60405163b134427160e01b815294859182905afa9283156106d7575f9361116c575b506001600160a01b03928316330361115a576001546001600160a01b03168381166110cf575b50506040805195865265ffffffffffff909316602086015216927f741a5de99085c0d660f3e4192217b0ffb0ea4e35a0480de48e857a4bc3ee36ed91819081015b0390a361069460015f80516020612a7a83398151915255565b909360405194611106866110f8602082019363724ab0f760e11b8552858c898d60248701611550565b03601f198101885287610b31565b62042e305a10611148575f6110b6938192827f741a5de99085c0d660f3e4192217b0ffb0ea4e35a0480de48e857a4bc3ee36ed9951926203d090f15093611075565b604051638072475160e01b8152600490fd5b60405163dabc4ad960e01b8152600490fd5b61118f91935060203d602011611196575b6111878183610b31565b81019061153b565b915f61104f565b503d61117d565b3461029a575f36600319011261029a575f546040516001600160a01b039091168152602090f35b3461029a57604036600319011261029a5760206104d86024356111e68161029e565b6004356115cd565b3461029a575f36600319011261029a5760206040516203d0908152f35b3461029a575f36600319011261029a57602060405160018152f35b9081602091031261029a5751801515810361029a5790565b6040513d5f823e3d90fd5b90610d8492915f52600360205260405f20611ed3565b5f9081526004602090815260408083206001600160a01b03909416835292905220610d84929190611ed3565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b604051906112bc82610af6565b60606020838281520152565b81601f8201121561029a578051906112df82610b80565b926112ed6040519485610b31565b8284526020838301011161029a57815f9260208093018386015e8301015290565b9060208282031261029a5781516001600160401b039283821161029a57019060408282031261029a576040519261134484610af6565b825181811161029a57826113599185016112c8565b8452602083015190811161029a5761137192016112c8565b602082015290565b6001600160a01b0391821681529116602082015265ffffffffffff9091166040820152608060608201819052610d849291019061128b565b926113c1909291928284866120b9565b9290936113cc6112af565b9380518061151f575b50508415938415611489575b84156113f8575b505050506113f35790565b505f90565b602080949550611423910151604051958694859463530e1d4360e01b865260601c9060048601611379565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa9081156106d7575f9161146a575b50155f8080806113e8565b611483915060203d6020116106d0576106c28183610b31565b5f61145f565b5f549094506001600160a01b03166020848651926114bc604051948593849363530e1d4360e01b85528960048601611379565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa9081156106d7575f91611500575b5015936113e1565b611519915060203d6020116106d0576106c28183610b31565b5f6114f8565b61153392955060208091830101910161130e565b925f806113d5565b9081602091031261029a5751610d848161029e565b919360a093610d84969565ffffffffffff938552600180871b031660208501526040840152166060820152816080820152019061128b565b634e487b7160e01b5f52601160045260245ffd5b81156115a6570490565b634e487b7160e01b5f52601260045260245ffd5b90600182018092116115c857565b611588565b5f546040516308834cb560e21b8082526001600160a01b0385811660048401529283166024830152929392602092909183816044817f000000000000000000000000000000000000000000000000000000000000000086165afa9081156106d7575f916116da575b5015918215611656575b5050905061165057610d84916121ae565b50505f90565b6040519081526001600160a01b0385166004820152606086901c602482015291508290829060449082907f0000000000000000000000000000000000000000000000000000000000000000165afa9182156106d7575f926116bd575b505015805f8061163f565b6116d39250803d106106d0576106c28183610b31565b5f806116b2565b6116f19150843d86116106d0576106c28183610b31565b5f611635565b335f9081527f24e48de785eeca8420b70f73d267a66970ccc187d459f2a4b53e74ed92a5ab86602052604090207f15e7c882d74e8821ebf34aaff46fd0e1d53b9393d91490019124113d28dc32a39060ff905b5416156108cb5750565b335f9081527f72a65082a5691803ab2b62c9bc729b34205ba1b183d950896526b2fd8714d0c7602052604090207e8b9b1e5fa9cf3b14f87f435649268146305ddf689f082e5961a335b07a9abf9060ff9061174a565b5f8181525f80516020612a5a83398151915260209081526040808320338452909152902060ff9061174a565b634e487b7160e01b5f52603260045260245ffd5b80548210156117ff575f5260205f2001905f90565b6117d6565b90815491600160401b831015610b115782611827916001610b7e950181556117ea565b90919082549060031b91821b915f19901b1916179055565b5f198101919082116115c857565b909291926001820190815480156118df575b508461186a846122aa565b5094909284549361187a8361190f565b96816118ca575b50156118a7575050505f1981019081116115c85761182785916118a3936117ea565b9190565b6118a39492936118c3926001600160d01b03909116919061277e565b5050611804565b65ffffffffffff83811691161490505f611881565b600160401b811015610b11578060016118fb92018455836117ea565b8154905f199060031b1b191690555f61185f565b80548061193e57505f5b6001600160d01b0381161561165057600161193492016117ea565b90549060031b1c90565b5f199080828101116115c857825f5260205f2001015460301c611919565b5f80516020612a7a83398151915260028154146119795760029055565b604051633ee5aeb560e01b8152600490fd5b90815f52600360205260405f20816119a2826122aa565b919390508315611a00576119c2916001600160d01b0316906001016117ea565b90549060031b1c5b826119f6575b50506119da575050565b6119f2915f52600360205260405f2061036342612254565b5050565b119050815f6119d0565b50505f6119ca565b6001600160a01b0381165f9081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d60205260409020545f80516020612a5a8339815191529060ff16611650575f808052602091825260408082206001600160a01b038516835290925220805460ff1916600117905533906001600160a01b03165f7f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d8180a4600190565b6001600160a01b0381165f9081527f9ebbcbe0d2961d3fbe56ca6f679bc753bd848d3e6bb3eaf9041c51b286881d2c602052604090207fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c905f80516020612a5a8339815191529060ff905b5416611b82575f828152602091825260408082206001600160a01b038616835290925220805460ff1916600117905533916001600160a01b0316907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d5f80a4600190565b5050505f90565b6001600160a01b0381165f9081527f72a65082a5691803ab2b62c9bc729b34205ba1b183d950896526b2fd8714d0c7602052604090207e8b9b1e5fa9cf3b14f87f435649268146305ddf689f082e5961a335b07a9abf905f80516020612a5a8339815191529060ff90611b1e565b6001600160a01b0381165f9081527f24e48de785eeca8420b70f73d267a66970ccc187d459f2a4b53e74ed92a5ab86602052604090207f15e7c882d74e8821ebf34aaff46fd0e1d53b9393d91490019124113d28dc32a3905f80516020612a5a8339815191529060ff90611b1e565b5f8181525f80516020612a5a833981519152602081815260408084206001600160a01b038716855290915290912060ff90611b1e565b5f8181525f80516020612a5a833981519152602081815260408084206001600160a01b03871685529091529091205460ff1615611b82575f828152602091825260408082206001600160a01b038616835290925220805460ff1916905533916001600160a01b0316907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b5f80a4600190565b91909160408184031261029a578035611d468161029e565b9260208201356001600160401b03811161029a57610d849201610b9b565b611d7091810190611d2e565b6040516302910f8b60e31b81526001600160a01b039283166004820181905291906020816024817f000000000000000000000000000000000000000000000000000000000000000088165afa9081156106d7575f91611e83575b5015611e7157611e05604091611e00611e4b94611de56122f9565b60018060a01b03166001600160601b0360a01b5f5416175f55565b612479565b6020810151600180546001600160a01b0319166001600160a01b0390921691909117905580516001600160a01b0316848116611e61575b5001516001600160a01b031690565b908116611e555750565b611e5e90611ab3565b50565b611e6a90611a08565b505f611e3c565b6040516362df054560e01b8152600490fd5b611e9c915060203d6020116106d0576106c28183610b31565b5f611dca565b9081602091031261029a575163ffffffff8116810361029a5790565b90600163ffffffff809316019182116115c857565b91805115611fac5780602080611eee93518301019101611ea2565b91611ef983826126a9565b92611f0a845165ffffffffffff1690565b9065ffffffffffff8085169216828114611fa05782119182611f40575b5050611f3757610d8492506125d9565b50506020015190565b909150611f4d835461183f565b63ffffffff831614918215611f66575b50505f80611f27565b611f98919250611f81611f7b611f8d92611ebe565b856126a9565b5165ffffffffffff1690565b65ffffffffffff1690565b115f80611f5d565b50505050506020015190565b50610d84916125d9565b60405190608082018281106001600160401b03821117610b1157604052606080838181528160208201528160408201520152565b9060208282031261029a5781516001600160401b039283821161029a57019060808282031261029a5761201b610b52565b92825181811161029a57826120319185016112c8565b8452602083015181811161029a578261204b9185016112c8565b6020850152604083015181811161029a57826120689185016112c8565b6040850152606083015190811161029a5761208392016112c8565b606082015290565b9081602091031261029a575190565b60409065ffffffffffff610d849493168152816020820152019061128b565b939190936120c5611fb6565b9380518061218e575b505061210f92939460206120ee6110216110215f5460018060a01b031690565b8188015190604051808098819463810da75d60e01b8352896004840161209a565b03915afa9182156106d757612150945f93612155575b5061214a9061214a939461213e60408a01518284611249565b9360608a01519261125f565b90612711565b915190565b61214a93509061217f61214a9260203d602011612187575b6121778183610b31565b81019061208b565b935090612125565b503d61216d565b61210f949550906020806121a6938301019101611fea565b93925f6120ce565b5f5460405163bd49c35f60e01b8152929190602090849060049082906001600160a01b03165afa9081156106d757610d84935f92612229575b5061214a61030461214a9394612208610304855f52600360205260405f2090565b935f52600460205260405f209060018060a01b03165f5260205260405f2090565b61214a925061030461224c61214a9260203d602011612187576121778183610b31565b9350506121e7565b65ffffffffffff90818111612267571690565b604490604051906306dfcc6560e41b8252603060048301526024820152fd5b9060405161229381610af6565b915465ffffffffffff8116835260301c6020830152565b8054806122bb5750505f905f905f90565b5f199080828101116115c8576122d8925f5260205f200101612286565b9065ffffffffffff82511691602060018060d01b0391015116906001929190565b612301612899565b612309612899565b60015f80516020612a7a83398151915255565b6040519061232982610b16565b5f6040838281528260208201520152565b81601f8201121561029a578051916020916001600160401b038411610b11578360051b906040519461236e85840187610b31565b8552838086019282010192831161029a578301905b828210612391575050505090565b838091835161239f8161029e565b815201910190612383565b9060208282031261029a5781516001600160401b039283821161029a5701908181039260a0841261029a576060604051946123e486610b16565b1261029a576040516123f581610b16565b83516124008161029e565b815260208401516124108161029e565b602082015260408401516124238161029e565b60408201528452606083015181811161029a578261244291850161233a565b6020850152608083015190811161029a5761245d920161233a565b604082015290565b80518210156117ff5760209160051b010190565b6124959061248561231c565b50602080825183010191016123aa565b8051519091906001600160a01b031615806125bf575b6125ad579060208101905f5b82518051821015612531576110216124d2836124df93612465565b516001600160a01b031690565b1561251f576125016124fd6124f86124d2848751612465565b611b89565b1590565b61250d576001016124b7565b604051635140fefd60e11b8152600490fd5b6040516323cda06760e01b8152600490fd5b506040925050818101905f5b825180518210156125a4576110216124d28361255893612465565b15612593576125766124fd6125716124d2848751612465565b611bf7565b6125825760010161253d565b8351635140fefd60e11b8152600490fd5b83516323cda06760e01b8152600490fd5b50509150505190565b6040516303501f5960e11b8152600490fd5b5060208201515115806124ab5750604082015151156124ab565b908154905f829160058411612643575b6125f49350846129fa565b8061261c57505f905b6001600160d01b0382161561165057610d8491600161193492016117ea565b61263661262b61263d9261183f565b835f5260205f200190565b5460301c90565b906125fd565b919261264e816128c7565b81039081116115c8576125f493855f5265ffffffffffff808360205f20015416908516105f1461267f5750916125e9565b92915061268b906115ba565b906125e9565b6040519061269e82610af6565b5f6020838281520152565b906126d26126cc6126f3926126bc612691565b506126c5612691565b50846117ea565b50612286565b91600165ffffffffffff845116936020828060d01b039101511691016117ea565b9054906040519261270384610af6565b835260031b1c602082015290565b908082101561271e575090565b905090565b8054600160401b811015610b1157612740916001820181556117ea565b61276b57815160209092015160301b65ffffffffffff191665ffffffffffff92909216919091179055565b634e487b7160e01b5f525f60045260245ffd5b8054929392919082156128705761279f61279a61262b8561183f565b612286565b906127b0825165ffffffffffff1690565b65ffffffffffff8481169116811061285e576118a39460209488926127de611f8d875165ffffffffffff1690565b036128265750612818926127f46127ff9261183f565b905f5260205f200190565b9065ffffffffffff82549181199060301b169116179055565b01516001600160d01b031690565b91505061285991612846612838610b71565b65ffffffffffff9093168352565b6001600160d01b03881682860152612723565b612818565b604051632520601d60e01b8152600490fd5b6128949250612880612838610b71565b6001600160d01b0385166020830152612723565b5f9190565b60ff5f80516020612a9a8339815191525460401c16156128b557565b604051631afcd79f60e31b8152600490fd5b80156113f3578061214a61299261298861297e61297461296a6129606129566001610d849a5f908b60801c806129ee575b508060401c806129e1575b508060201c806129d4575b508060101c806129c7575b508060081c806129ba575b508060041c806129ad575b508060021c806129a0575b50821c612999575b811c1b61294f818b61159c565b0160011c90565b61294f818a61159c565b61294f818961159c565b61294f818861159c565b61294f818761159c565b61294f818661159c565b61294f818561159c565b809261159c565b8101612942565b600291509101905f61293a565b600491509101905f61292f565b600891509101905f612924565b601091509101905f612919565b602091509101905f61290e565b604091509101905f612903565b9150506080905f6128f8565b91905b838210612a0a5750505090565b9091928083169080841860011c82018092116115c857845f5265ffffffffffff808360205f20015416908416105f14612a475750925b91906129fd565b939250612a53906115ba565b91612a4056fe02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268009b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a26469706673582212205a47ef0800ec8586221910bfda595b4c0690e3271bc72e3aaf2a5da09d84aada64736f6c63430008190033","sourceMap":"536:5807:77:-:0;;;;-1:-1:-1;;;;;536:5807:77;;;;;;;;;;-1:-1:-1;;536:5807:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;8837:64:25;536:5807:77;;;;;;;;;7896:76:25;;536:5807:77;;;;7985:34:25;7981:146;;-1:-1:-1;525:17:69;;;536:5807:77;525:17:69;536:5807:77;552:12:69;536:5807:77;2360:34:76;2404:28;;2442:57;;;;2509:61;;;;536:5807:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2404:28:76;536:5807:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7981:146:25;-1:-1:-1;;;;;;536:5807:77;;;;;;;;;;;;;8087:29:25;;536:5807:77;;8087:29:25;7981:146;;;;;7896:76;536:5807:77;;-1:-1:-1;;;7938:23:25;;;;;536:5807:77;-1:-1:-1;536:5807:77;;;;;;-1:-1:-1;536:5807:77;;;;;-1:-1:-1;536:5807:77;;;;-1:-1:-1;;;;;536:5807:77;;;;;;:::o","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361015610011575f80fd5b5f3560e01c806301ffc9a714610244578063020cf0c21461023f578063021453481461023a578063103f2907146102355780631142209514610230578063128e5d821461022b5780631a80e5001461022657806323f752d514610221578063248a9ca31461021c5780632dd31000146102175780632f2ff15d1461021257806336568abe1461020d5780633dfd3873146102085780633eb22c0f14610203578063439fab91146101fe578063518504ba146101f9578063557cab44146101f45780635d32a1c9146101ef5780636679191e146101ea5780637d24bb27146101e55780637f5a7c7b146101e057806391d14854146101db57806394d2558a146101d65780639f86fd85146101d1578063a217fddf146101cc578063bb24fe8a146101c7578063c0cd7c3e146101c2578063d15b740e146101bd578063d547741f146101b8578063e02f6937146101b3578063e49561ee146101ae578063fbfa77cf146101a9578063fd4d447c146101a4578063ff54740f1461019f5763ffa1ad741461019a575f80fd5b61120b565b6111ee565b6111c4565b61119d565b610fb2565b610f96565b610f4a565b610f20565b610edc565b610e99565b610e7f565b610dc5565b610d87565b610cd7565b610caf565b610c76565b610c3c565b610be1565b610ab1565b610a77565b61093f565b6108e9565b6107f0565b6107a5565b610759565b610715565b6106dc565b610568565b610524565b6104e0565b610491565b61044d565b610390565b6102af565b3461029a57602036600319011261029a5760043563ffffffff60e01b811680910361029a57602090637965db0b60e01b8114908115610289575b506040519015158152f35b6301ffc9a760e01b1490505f61027e565b5f80fd5b6001600160a01b0381160361029a57565b3461029a57606036600319011261029a576024356004356102cf8261029e565b604435916102db6116f7565b815f526004602052826103096103048360405f209060018060a01b03165f5260205260405f2090565b61190f565b1461037e5760207ffc9545f07ffadfb668efd0144cdcaf2d6e2c8192dce1ea9fc131934f9c90fc7e91835f52600482526103698561035a8360405f209060018060a01b03165f5260205260405f2090565b61036342612254565b9061184d565b50506040519485526001600160a01b031693a3005b60405163a741a04560e01b8152600490fd5b3461029a5760408060031936011261029a5760043590602435906103b2611754565b825f526002602052805f2054821161043d57825f526003602052816103d8825f2061190f565b1461042d5781610428916104187e899d104fc3d8820bd96540612bcc5c448c8837b13b9f7faa43ad0728f0c14f9461035a875f52600360205260405f2090565b5050519081529081906020820190565b0390a2005b5163a741a04560e01b8152600490fd5b51631eefc06360e31b8152600490fd5b3461029a575f36600319011261029a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461029a57604036600319011261029a5760206104d86103046024356104b68161029e565b6004355f526004845260405f209060018060a01b03165f5260205260405f2090565b604051908152f35b3461029a575f36600319011261029a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461029a575f36600319011261029a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461029a57604036600319011261029a576004356001600160601b038116810361029a576024359061059861195c565b6040516302910f8b60e31b81523360048201526020816024816001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165afa9081156106d7575f916106a8575b5015610696576001600160601b03166bffffffffffffffffffffffff193360601b16179080610622835f52600260205260405f2090565b541461037e5761067b817fc67e7929681aa1bccd63f52b3799bf5805f3009f197db6fdf584b14f7fbf608c92610660855f52600260205260405f2090565b5561066b818561198b565b6040519081529081906020820190565b0390a261069460015f80516020612a7a83398151915255565b005b6040516323d53b9760e21b8152600490fd5b6106ca915060203d6020116106d0575b6106c28183610b31565b810190611226565b5f6105eb565b503d6106b8565b61123e565b3461029a57602036600319011261029a576004355f525f80516020612a5a8339815191526020526020600160405f200154604051908152f35b3461029a575f36600319011261029a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461029a57604036600319011261029a5761069460243560043561077c8261029e565b805f525f80516020612a5a8339815191526020526107a0600160405f2001546117aa565b611c66565b3461029a57604036600319011261029a576024356107c28161029e565b336001600160a01b038216036107de5761069490600435611c9c565b60405163334bd91960e11b8152600490fd5b3461029a57602036600319011261029a5760043561080d8161029e565b61081561195c565b335f9081527f9ebbcbe0d2961d3fbe56ca6f679bc753bd848d3e6bb3eaf9041c51b286881d2c60205260409020547fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c9060ff16156108cb57506001546001600160a01b03918216918116821461037e576001600160a01b03191681176001557f5bbb1d3ebb6a3ad2a0f17ff35e579a83af60604d1d3c2a4c83c62adecadf666d5f80a260015f80516020612a7a83398151915255005b6044906040519063e2517d3f60e01b82523360048301526024820152fd5b3461029a57602036600319011261029a576004355f52600360205260206104d860405f2061190f565b9181601f8401121561029a578235916001600160401b03831161029a576020838186019501011161029a57565b3461029a57602036600319011261029a576001600160401b0360043581811161029a57610970903690600401610912565b5f80516020612a9a833981519152549260ff8460401c1615931680159081610a6f575b6001149081610a65575b159081610a5c575b50610a4a575f80516020612a9a833981519152805467ffffffffffffffff191660011790556109d89183610a2657611d64565b6109de57005b5f80516020612a9a833981519152805460ff60401b19169055604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a1005b5f80516020612a9a833981519152805460ff60401b1916600160401b179055611d64565b60405163f92ee8a960e01b8152600490fd5b9050155f6109a5565b303b15915061099d565b849150610993565b3461029a575f36600319011261029a5760206040517f15e7c882d74e8821ebf34aaff46fd0e1d53b9393d91490019124113d28dc32a38152f35b3461029a575f36600319011261029a576020604051614e208152f35b6064359065ffffffffffff8216820361029a57565b634e487b7160e01b5f52604160045260245ffd5b604081019081106001600160401b03821117610b1157604052565b610ae2565b606081019081106001600160401b03821117610b1157604052565b90601f801991011681019081106001600160401b03821117610b1157604052565b60405190608082018281106001600160401b03821117610b1157604052565b60405190610b7e82610af6565b565b6001600160401b038111610b1157601f01601f191660200190565b81601f8201121561029a57803590610bb282610b80565b92610bc06040519485610b31565b8284526020838301011161029a57815f926020809301838601378301015290565b3461029a57606036600319011261029a5760243565ffffffffffff8116810361029a576044356001600160401b03811161029a57602091610c296104d8923690600401610b9b565b906004355f526003845260405f20611ed3565b3461029a575f36600319011261029a5760206040517fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c8152f35b3461029a575f36600319011261029a5760206040517e8b9b1e5fa9cf3b14f87f435649268146305ddf689f082e5961a335b07a9abf8152f35b3461029a575f36600319011261029a576001546040516001600160a01b039091168152602090f35b3461029a57604036600319011261029a57602060ff610d29602435610cfb8161029e565b6004355f525f80516020612a5a833981519152845260405f209060018060a01b03165f5260205260405f2090565b54166040519015158152f35b90608060031983011261029a5760043591602435610d528161029e565b9160443565ffffffffffff8116810361029a5791606435906001600160401b03821161029a57610d8491600401610b9b565b90565b3461029a5760206104d8610dc0610d9d36610d35565b939190925f526004865260405f209060018060a01b03165f5260205260405f2090565b611ed3565b3461029a5760408060031936011261029a57600435610de38161029e565b602435906001600160401b03821161029a575f8091610e09610e6d943690600401610912565b908187519283928337810184815203915af43d15610e7557610e5f3d610e2e81610b80565b90610e3b86519283610b31565b81523d5f602083013e5b84519485931515602085015280840152606083019061128b565b03601f198101835282610b31565b805190602001fd5b610e5f6060610e45565b3461029a575f36600319011261029a5760206040515f8152f35b3461029a575f36600319011261029a5760206040516001600160401b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461029a575f36600319011261029a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461029a57602036600319011261029a576004355f526002602052602060405f2054604051908152f35b3461029a57604036600319011261029a57610694602435600435610f6d8261029e565b805f525f80516020612a5a833981519152602052610f91600160405f2001546117aa565b611c9c565b3461029a5760206104d8610fa936610d35565b929190916113b1565b3461029a5760a036600319011261029a57602435600435610fd28261029e565b60443591610fde610acd565b90608435906001600160401b03821161029a5761100060049236908401610b9b565b61100861195c565b5f5460209061102d90611021906001600160a01b031681565b6001600160a01b031690565b60405163b134427160e01b815294859182905afa9283156106d7575f9361116c575b506001600160a01b03928316330361115a576001546001600160a01b03168381166110cf575b50506040805195865265ffffffffffff909316602086015216927f741a5de99085c0d660f3e4192217b0ffb0ea4e35a0480de48e857a4bc3ee36ed91819081015b0390a361069460015f80516020612a7a83398151915255565b909360405194611106866110f8602082019363724ab0f760e11b8552858c898d60248701611550565b03601f198101885287610b31565b62042e305a10611148575f6110b6938192827f741a5de99085c0d660f3e4192217b0ffb0ea4e35a0480de48e857a4bc3ee36ed9951926203d090f15093611075565b604051638072475160e01b8152600490fd5b60405163dabc4ad960e01b8152600490fd5b61118f91935060203d602011611196575b6111878183610b31565b81019061153b565b915f61104f565b503d61117d565b3461029a575f36600319011261029a575f546040516001600160a01b039091168152602090f35b3461029a57604036600319011261029a5760206104d86024356111e68161029e565b6004356115cd565b3461029a575f36600319011261029a5760206040516203d0908152f35b3461029a575f36600319011261029a57602060405160018152f35b9081602091031261029a5751801515810361029a5790565b6040513d5f823e3d90fd5b90610d8492915f52600360205260405f20611ed3565b5f9081526004602090815260408083206001600160a01b03909416835292905220610d84929190611ed3565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b604051906112bc82610af6565b60606020838281520152565b81601f8201121561029a578051906112df82610b80565b926112ed6040519485610b31565b8284526020838301011161029a57815f9260208093018386015e8301015290565b9060208282031261029a5781516001600160401b039283821161029a57019060408282031261029a576040519261134484610af6565b825181811161029a57826113599185016112c8565b8452602083015190811161029a5761137192016112c8565b602082015290565b6001600160a01b0391821681529116602082015265ffffffffffff9091166040820152608060608201819052610d849291019061128b565b926113c1909291928284866120b9565b9290936113cc6112af565b9380518061151f575b50508415938415611489575b84156113f8575b505050506113f35790565b505f90565b602080949550611423910151604051958694859463530e1d4360e01b865260601c9060048601611379565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa9081156106d7575f9161146a575b50155f8080806113e8565b611483915060203d6020116106d0576106c28183610b31565b5f61145f565b5f549094506001600160a01b03166020848651926114bc604051948593849363530e1d4360e01b85528960048601611379565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa9081156106d7575f91611500575b5015936113e1565b611519915060203d6020116106d0576106c28183610b31565b5f6114f8565b61153392955060208091830101910161130e565b925f806113d5565b9081602091031261029a5751610d848161029e565b919360a093610d84969565ffffffffffff938552600180871b031660208501526040840152166060820152816080820152019061128b565b634e487b7160e01b5f52601160045260245ffd5b81156115a6570490565b634e487b7160e01b5f52601260045260245ffd5b90600182018092116115c857565b611588565b5f546040516308834cb560e21b8082526001600160a01b0385811660048401529283166024830152929392602092909183816044817f000000000000000000000000000000000000000000000000000000000000000086165afa9081156106d7575f916116da575b5015918215611656575b5050905061165057610d84916121ae565b50505f90565b6040519081526001600160a01b0385166004820152606086901c602482015291508290829060449082907f0000000000000000000000000000000000000000000000000000000000000000165afa9182156106d7575f926116bd575b505015805f8061163f565b6116d39250803d106106d0576106c28183610b31565b5f806116b2565b6116f19150843d86116106d0576106c28183610b31565b5f611635565b335f9081527f24e48de785eeca8420b70f73d267a66970ccc187d459f2a4b53e74ed92a5ab86602052604090207f15e7c882d74e8821ebf34aaff46fd0e1d53b9393d91490019124113d28dc32a39060ff905b5416156108cb5750565b335f9081527f72a65082a5691803ab2b62c9bc729b34205ba1b183d950896526b2fd8714d0c7602052604090207e8b9b1e5fa9cf3b14f87f435649268146305ddf689f082e5961a335b07a9abf9060ff9061174a565b5f8181525f80516020612a5a83398151915260209081526040808320338452909152902060ff9061174a565b634e487b7160e01b5f52603260045260245ffd5b80548210156117ff575f5260205f2001905f90565b6117d6565b90815491600160401b831015610b115782611827916001610b7e950181556117ea565b90919082549060031b91821b915f19901b1916179055565b5f198101919082116115c857565b909291926001820190815480156118df575b508461186a846122aa565b5094909284549361187a8361190f565b96816118ca575b50156118a7575050505f1981019081116115c85761182785916118a3936117ea565b9190565b6118a39492936118c3926001600160d01b03909116919061277e565b5050611804565b65ffffffffffff83811691161490505f611881565b600160401b811015610b11578060016118fb92018455836117ea565b8154905f199060031b1b191690555f61185f565b80548061193e57505f5b6001600160d01b0381161561165057600161193492016117ea565b90549060031b1c90565b5f199080828101116115c857825f5260205f2001015460301c611919565b5f80516020612a7a83398151915260028154146119795760029055565b604051633ee5aeb560e01b8152600490fd5b90815f52600360205260405f20816119a2826122aa565b919390508315611a00576119c2916001600160d01b0316906001016117ea565b90549060031b1c5b826119f6575b50506119da575050565b6119f2915f52600360205260405f2061036342612254565b5050565b119050815f6119d0565b50505f6119ca565b6001600160a01b0381165f9081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d60205260409020545f80516020612a5a8339815191529060ff16611650575f808052602091825260408082206001600160a01b038516835290925220805460ff1916600117905533906001600160a01b03165f7f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d8180a4600190565b6001600160a01b0381165f9081527f9ebbcbe0d2961d3fbe56ca6f679bc753bd848d3e6bb3eaf9041c51b286881d2c602052604090207fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c905f80516020612a5a8339815191529060ff905b5416611b82575f828152602091825260408082206001600160a01b038616835290925220805460ff1916600117905533916001600160a01b0316907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d5f80a4600190565b5050505f90565b6001600160a01b0381165f9081527f72a65082a5691803ab2b62c9bc729b34205ba1b183d950896526b2fd8714d0c7602052604090207e8b9b1e5fa9cf3b14f87f435649268146305ddf689f082e5961a335b07a9abf905f80516020612a5a8339815191529060ff90611b1e565b6001600160a01b0381165f9081527f24e48de785eeca8420b70f73d267a66970ccc187d459f2a4b53e74ed92a5ab86602052604090207f15e7c882d74e8821ebf34aaff46fd0e1d53b9393d91490019124113d28dc32a3905f80516020612a5a8339815191529060ff90611b1e565b5f8181525f80516020612a5a833981519152602081815260408084206001600160a01b038716855290915290912060ff90611b1e565b5f8181525f80516020612a5a833981519152602081815260408084206001600160a01b03871685529091529091205460ff1615611b82575f828152602091825260408082206001600160a01b038616835290925220805460ff1916905533916001600160a01b0316907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b5f80a4600190565b91909160408184031261029a578035611d468161029e565b9260208201356001600160401b03811161029a57610d849201610b9b565b611d7091810190611d2e565b6040516302910f8b60e31b81526001600160a01b039283166004820181905291906020816024817f000000000000000000000000000000000000000000000000000000000000000088165afa9081156106d7575f91611e83575b5015611e7157611e05604091611e00611e4b94611de56122f9565b60018060a01b03166001600160601b0360a01b5f5416175f55565b612479565b6020810151600180546001600160a01b0319166001600160a01b0390921691909117905580516001600160a01b0316848116611e61575b5001516001600160a01b031690565b908116611e555750565b611e5e90611ab3565b50565b611e6a90611a08565b505f611e3c565b6040516362df054560e01b8152600490fd5b611e9c915060203d6020116106d0576106c28183610b31565b5f611dca565b9081602091031261029a575163ffffffff8116810361029a5790565b90600163ffffffff809316019182116115c857565b91805115611fac5780602080611eee93518301019101611ea2565b91611ef983826126a9565b92611f0a845165ffffffffffff1690565b9065ffffffffffff8085169216828114611fa05782119182611f40575b5050611f3757610d8492506125d9565b50506020015190565b909150611f4d835461183f565b63ffffffff831614918215611f66575b50505f80611f27565b611f98919250611f81611f7b611f8d92611ebe565b856126a9565b5165ffffffffffff1690565b65ffffffffffff1690565b115f80611f5d565b50505050506020015190565b50610d84916125d9565b60405190608082018281106001600160401b03821117610b1157604052606080838181528160208201528160408201520152565b9060208282031261029a5781516001600160401b039283821161029a57019060808282031261029a5761201b610b52565b92825181811161029a57826120319185016112c8565b8452602083015181811161029a578261204b9185016112c8565b6020850152604083015181811161029a57826120689185016112c8565b6040850152606083015190811161029a5761208392016112c8565b606082015290565b9081602091031261029a575190565b60409065ffffffffffff610d849493168152816020820152019061128b565b939190936120c5611fb6565b9380518061218e575b505061210f92939460206120ee6110216110215f5460018060a01b031690565b8188015190604051808098819463810da75d60e01b8352896004840161209a565b03915afa9182156106d757612150945f93612155575b5061214a9061214a939461213e60408a01518284611249565b9360608a01519261125f565b90612711565b915190565b61214a93509061217f61214a9260203d602011612187575b6121778183610b31565b81019061208b565b935090612125565b503d61216d565b61210f949550906020806121a6938301019101611fea565b93925f6120ce565b5f5460405163bd49c35f60e01b8152929190602090849060049082906001600160a01b03165afa9081156106d757610d84935f92612229575b5061214a61030461214a9394612208610304855f52600360205260405f2090565b935f52600460205260405f209060018060a01b03165f5260205260405f2090565b61214a925061030461224c61214a9260203d602011612187576121778183610b31565b9350506121e7565b65ffffffffffff90818111612267571690565b604490604051906306dfcc6560e41b8252603060048301526024820152fd5b9060405161229381610af6565b915465ffffffffffff8116835260301c6020830152565b8054806122bb5750505f905f905f90565b5f199080828101116115c8576122d8925f5260205f200101612286565b9065ffffffffffff82511691602060018060d01b0391015116906001929190565b612301612899565b612309612899565b60015f80516020612a7a83398151915255565b6040519061232982610b16565b5f6040838281528260208201520152565b81601f8201121561029a578051916020916001600160401b038411610b11578360051b906040519461236e85840187610b31565b8552838086019282010192831161029a578301905b828210612391575050505090565b838091835161239f8161029e565b815201910190612383565b9060208282031261029a5781516001600160401b039283821161029a5701908181039260a0841261029a576060604051946123e486610b16565b1261029a576040516123f581610b16565b83516124008161029e565b815260208401516124108161029e565b602082015260408401516124238161029e565b60408201528452606083015181811161029a578261244291850161233a565b6020850152608083015190811161029a5761245d920161233a565b604082015290565b80518210156117ff5760209160051b010190565b6124959061248561231c565b50602080825183010191016123aa565b8051519091906001600160a01b031615806125bf575b6125ad579060208101905f5b82518051821015612531576110216124d2836124df93612465565b516001600160a01b031690565b1561251f576125016124fd6124f86124d2848751612465565b611b89565b1590565b61250d576001016124b7565b604051635140fefd60e11b8152600490fd5b6040516323cda06760e01b8152600490fd5b506040925050818101905f5b825180518210156125a4576110216124d28361255893612465565b15612593576125766124fd6125716124d2848751612465565b611bf7565b6125825760010161253d565b8351635140fefd60e11b8152600490fd5b83516323cda06760e01b8152600490fd5b50509150505190565b6040516303501f5960e11b8152600490fd5b5060208201515115806124ab5750604082015151156124ab565b908154905f829160058411612643575b6125f49350846129fa565b8061261c57505f905b6001600160d01b0382161561165057610d8491600161193492016117ea565b61263661262b61263d9261183f565b835f5260205f200190565b5460301c90565b906125fd565b919261264e816128c7565b81039081116115c8576125f493855f5265ffffffffffff808360205f20015416908516105f1461267f5750916125e9565b92915061268b906115ba565b906125e9565b6040519061269e82610af6565b5f6020838281520152565b906126d26126cc6126f3926126bc612691565b506126c5612691565b50846117ea565b50612286565b91600165ffffffffffff845116936020828060d01b039101511691016117ea565b9054906040519261270384610af6565b835260031b1c602082015290565b908082101561271e575090565b905090565b8054600160401b811015610b1157612740916001820181556117ea565b61276b57815160209092015160301b65ffffffffffff191665ffffffffffff92909216919091179055565b634e487b7160e01b5f525f60045260245ffd5b8054929392919082156128705761279f61279a61262b8561183f565b612286565b906127b0825165ffffffffffff1690565b65ffffffffffff8481169116811061285e576118a39460209488926127de611f8d875165ffffffffffff1690565b036128265750612818926127f46127ff9261183f565b905f5260205f200190565b9065ffffffffffff82549181199060301b169116179055565b01516001600160d01b031690565b91505061285991612846612838610b71565b65ffffffffffff9093168352565b6001600160d01b03881682860152612723565b612818565b604051632520601d60e01b8152600490fd5b6128949250612880612838610b71565b6001600160d01b0385166020830152612723565b5f9190565b60ff5f80516020612a9a8339815191525460401c16156128b557565b604051631afcd79f60e31b8152600490fd5b80156113f3578061214a61299261298861297e61297461296a6129606129566001610d849a5f908b60801c806129ee575b508060401c806129e1575b508060201c806129d4575b508060101c806129c7575b508060081c806129ba575b508060041c806129ad575b508060021c806129a0575b50821c612999575b811c1b61294f818b61159c565b0160011c90565b61294f818a61159c565b61294f818961159c565b61294f818861159c565b61294f818761159c565b61294f818661159c565b61294f818561159c565b809261159c565b8101612942565b600291509101905f61293a565b600491509101905f61292f565b600891509101905f612924565b601091509101905f612919565b602091509101905f61290e565b604091509101905f612903565b9150506080905f6128f8565b91905b838210612a0a5750505090565b9091928083169080841860011c82018092116115c857845f5265ffffffffffff808360205f20015416908416105f14612a475750925b91906129fd565b939250612a53906115ba565b91612a4056fe02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268009b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a26469706673582212205a47ef0800ec8586221910bfda595b4c0690e3271bc72e3aaf2a5da09d84aada64736f6c63430008190033","sourceMap":"536:5807:77:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;;;;;-1:-1:-1;;536:5807:77;;;;;;;;;;;;;;;;;;-1:-1:-1;;;3551:47:23;;;:87;;;;536:5807:77;;;;;;;;;;3551:87:23;-1:-1:-1;;;1133:40:29;;-1:-1:-1;3551:87:23;;;536:5807:77;-1:-1:-1;536:5807:77;;;-1:-1:-1;;;;;536:5807:77;;;;;:::o;:::-;;;;;;-1:-1:-1;;536:5807:77;;;;;;;;;;;:::i;:::-;;;3202:4:23;;;:::i;:::-;536:5807:77;-1:-1:-1;536:5807:77;;;;;2662:52;:43;536:5807;;-1:-1:-1;536:5807:77;;;;;;;;;;;;;;;;;2662:43;:52;:::i;:::-;3458;3454:102;;536:5807;3656:53;536:5807;;-1:-1:-1;536:5807:77;;;;3566:74;536:5807;3566:43;536:5807;;-1:-1:-1;536:5807:77;;;;;;;;;;;;;;;;;3566:43;819:34:62;837:15;819:34;:::i;:::-;3566:74:77;;:::i;:::-;-1:-1:-1;;536:5807:77;;;;;-1:-1:-1;;;;;536:5807:77;;3656:53;536:5807;3454:102;536:5807;;-1:-1:-1;;;3533:12:77;;536:5807;;3533:12;536:5807;;;;;;;;;;;;;;;;;;3202:4:23;;;:::i;:::-;536:5807:77;-1:-1:-1;536:5807:77;2910:15;536:5807;;;-1:-1:-1;536:5807:77;;2901:36;;2897:98;;536:5807;-1:-1:-1;536:5807:77;2103:13;536:5807;;;2103:34;536:5807;-1:-1:-1;536:5807:77;2103:34;:::i;:::-;3009;3005:84;;3099:25;3171:35;3099:25;:56;3171:35;3099:25;;;536:5807;;2103:13;536:5807;;;;;;;3099:56;-1:-1:-1;;536:5807:77;;;;;;;;;;;;3171:35;;;;536:5807;3005:84;536:5807;-1:-1:-1;;;3066:12:77;;536:5807;;3066:12;2897:98;536:5807;-1:-1:-1;;;2960:24:77;;536:5807;;2960:24;536:5807;;;;;;-1:-1:-1;;536:5807:77;;;;;;1537:38:76;-1:-1:-1;;;;;536:5807:77;;;;;;;;;;;;-1:-1:-1;;536:5807:77;;;;;2662:52;:43;536:5807;;;;;:::i;:::-;;;-1:-1:-1;536:5807:77;;;;;-1:-1:-1;536:5807:77;;;;;;;;;;;;;;;;;2662:52;536:5807;;;;;;;;;;;;-1:-1:-1;;536:5807:77;;;;;;1632:54:76;-1:-1:-1;;;;;536:5807:77;;;;;;;;;;;;-1:-1:-1;;536:5807:77;;;;;;1743:56:76;-1:-1:-1;;;;;536:5807:77;;;;;;;;;;;;-1:-1:-1;;536:5807:77;;;;;;-1:-1:-1;;;;;536:5807:77;;;;;;;;3217:103:28;;;:::i;:::-;536:5807:77;;-1:-1:-1;;;4285:48:76;;4322:10;536:5807:77;4285:48:76;;536:5807:77;;;;;-1:-1:-1;;;;;4295:16:76;536:5807:77;4285:48:76;;;;;;;-1:-1:-1;4285:48:76;;;536:5807:77;4284:49:76;;4280:99;;-1:-1:-1;;;;;536:5807:77;-1:-1:-1;;4322:10:76;297:2:88;536:5807:77;;267:46:88;4459:27:76;;;;536:5807:77;;4459:15:76;536:5807:77;;;;;;;4459:27:76;536:5807:77;4459:37:76;4455:87;;4654:38;4552:27;4654:38;4552:27;;;536:5807:77;;4459:15:76;536:5807:77;;;;;;;4552:27:76;536:5807:77;4631:6:76;;;;:::i;:::-;536:5807:77;;;;;;;;;;;;;4654:38:76;;;;3282:1:28;1805;-1:-1:-1;;;;;;;;;;;536:5807:77;3716:283:28;3282:1;536:5807:77;4280:99:76;536:5807:77;;-1:-1:-1;;;4356:12:76;;536:5807:77;;4356:12:76;4285:48;;;;536:5807:77;4285:48:76;536:5807:77;4285:48:76;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;:::i;536:5807:77:-;;;;;;-1:-1:-1;;536:5807:77;;;;;;-1:-1:-1;536:5807:77;-1:-1:-1;;;;;;;;;;;536:5807:77;;;4919:24:23;536:5807:77;-1:-1:-1;536:5807:77;4919:24:23;536:5807:77;;;;;;;;;;;;;-1:-1:-1;;536:5807:77;;;;;;322:32:69;-1:-1:-1;;;;;536:5807:77;;;;;;;;;;;;-1:-1:-1;;536:5807:77;;;;5350:25:23;536:5807:77;;;;;;;:::i;:::-;;-1:-1:-1;536:5807:77;-1:-1:-1;;;;;;;;;;;536:5807:77;;3202:4:23;4919:24;536:5807:77;-1:-1:-1;536:5807:77;4919:24:23;536:5807:77;3202:4:23;:::i;:::-;5350:25;:::i;536:5807:77:-;;;;;;-1:-1:-1;;536:5807:77;;;;;;;;;:::i;:::-;966:10:27;-1:-1:-1;;;;;536:5807:77;;6441:34:23;6437:102;;6549:37;536:5807:77;;;6549:37:23;:::i;6437:102::-;536:5807:77;;-1:-1:-1;;;6498:30:23;;536:5807:77;;6498:30:23;536:5807:77;;;;;;-1:-1:-1;;536:5807:77;;;;;;;;;:::i;:::-;3217:103:28;;:::i;:::-;966:10:27;-1:-1:-1;536:5807:77;;;;;;;;;;1356:26:76;;536:5807:77;;4468:23:23;4464:108;;-1:-1:-1;4861:4:76;536:5807:77;-1:-1:-1;;;;;536:5807:77;;;;;;4861:13:76;;4857:63;;-1:-1:-1;;;;;;536:5807:77;;;4861:4:76;536:5807:77;4958:14:76;-1:-1:-1;;4958:14:76;4861:4;-1:-1:-1;;;;;;;;;;;536:5807:77;;4464:108:23;536:5807:77;;;;4514:47:23;;;;;;966:10:27;536:5807:77;4514:47:23;;536:5807:77;;;;;4514:47:23;536:5807:77;;;;;;-1:-1:-1;;536:5807:77;;;;;;-1:-1:-1;536:5807:77;2103:13;536:5807;;;2103:34;536:5807;-1:-1:-1;536:5807:77;2103:34;:::i;536:5807::-;;;;;;;;;;;;;-1:-1:-1;;;;;536:5807:77;;;;;;;;;;;;;;;:::o;:::-;;;;;;-1:-1:-1;;536:5807:77;;;;-1:-1:-1;;;;;536:5807:77;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;536:5807:77;;;;;;;4301:16:25;536:5807:77;;4726:16:25;;:34;;;;536:5807:77;4805:1:25;4790:16;:50;;;;536:5807:77;4855:13:25;:30;;;;536:5807:77;4851:91:25;;;-1:-1:-1;;;;;;;;;;;536:5807:77;;-1:-1:-1;;536:5807:77;;;;;718:4:69;;4951:18:25;4979:67;;718:4:69;:::i;:::-;5066:101:25;;536:5807:77;5066:101:25;-1:-1:-1;;;;;;;;;;;536:5807:77;;-1:-1:-1;;;;536:5807:77;;;;;-1:-1:-1;536:5807:77;;5142:14:25;;536:5807:77;;5142:14:25;536:5807:77;4979:67:25;-1:-1:-1;;;;;;;;;;;536:5807:77;;-1:-1:-1;;;;536:5807:77;-1:-1:-1;;;536:5807:77;;;718:4:69;:::i;4851:91:25:-;536:5807:77;;-1:-1:-1;;;4908:23:25;;536:5807:77;;4908:23:25;4855:30;4872:13;;;4855:30;;;4790:50;4818:4;4810:25;:30;;-1:-1:-1;4790:50:25;;4726:34;;;-1:-1:-1;4726:34:25;;536:5807:77;;;;;;-1:-1:-1;;536:5807:77;;;;;;;952:44;536:5807;;;;;;;;;-1:-1:-1;;536:5807:77;;;;;;;1253:6:76;536:5807:77;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;536:5807:77;;;;;;;:::o;:::-;;:::i;:::-;;;;;;;-1:-1:-1;;;;;536:5807:77;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;536:5807:77;;;;;;;:::o;:::-;;;;;;;;;;-1:-1:-1;;;;;536:5807:77;;;;;;;:::o;:::-;;;;;;;:::i;:::-;:::o;:::-;-1:-1:-1;;;;;536:5807:77;;;;;;-1:-1:-1;;536:5807:77;;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;536:5807:77;;;;;;;;;;;;;;:::o;:::-;;;;;;-1:-1:-1;;536:5807:77;;;;;;;;;;;;;;;-1:-1:-1;;;;;536:5807:77;;;;;;;1870:60;536:5807;;;;;;:::i;:::-;;;;-1:-1:-1;536:5807:77;1870:13;536:5807;;;-1:-1:-1;536:5807:77;1870:60;:::i;536:5807::-;;;;;;-1:-1:-1;;536:5807:77;;;;;;;1356:26:76;536:5807:77;;;;;;;;;-1:-1:-1;;536:5807:77;;;;;;;795:35;536:5807;;;;;;;;;-1:-1:-1;;536:5807:77;;;;;;;;-1:-1:-1;;;;;536:5807:77;;;;;;;;;;;;;;-1:-1:-1;;536:5807:77;;;;;;3901:31:23;536:5807:77;;;;;:::i;:::-;;;-1:-1:-1;536:5807:77;-1:-1:-1;;;;;;;;;;;536:5807:77;;;-1:-1:-1;536:5807:77;;;;;;;;;;;;;;;;;3901:31:23;536:5807:77;;;;;;;;;;;;;-1:-1:-1;;536:5807:77;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;-1:-1:-1;;;;;536:5807:77;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;2399:78;:43;536:5807;;;:::i;:::-;;;;;-1:-1:-1;536:5807:77;;;;;-1:-1:-1;536:5807:77;;;;;;;;;;;;;;;;;2399:43;:78;:::i;536:5807::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;536:5807:77;;;;-1:-1:-1;536:5807:77;;;477:31:75;536:5807:77;;;;;;:::i;:::-;;;;;;;;;;;;;;;416:25:75;;;;536:5807:77;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;-1:-1:-1;536:5807:77;;;;;;;;;;;;;477:31:75;;536:5807:77;;;;;;;;;;:::i;:::-;477:31:75;536:5807:77;;477:31:75;;;;;;:::i;:::-;518:79;;;536:5807:77;518:79:75;;536:5807:77;;;;;;;;;;;-1:-1:-1;;536:5807:77;;;;;;;;;;;;;;;;;-1:-1:-1;;536:5807:77;;;;;;;-1:-1:-1;;;;;404:28:69;536:5807:77;;;;;;;;;;-1:-1:-1;;536:5807:77;;;;;;1439:41:76;-1:-1:-1;;;;;536:5807:77;;;;;;;;;;;;-1:-1:-1;;536:5807:77;;;;;;-1:-1:-1;536:5807:77;2009:67:76;536:5807:77;;;;-1:-1:-1;536:5807:77;;;;;;;;;;;;;;-1:-1:-1;;536:5807:77;;;;5767:26:23;536:5807:77;;;;;;;:::i;:::-;;-1:-1:-1;536:5807:77;-1:-1:-1;;;;;;;;;;;536:5807:77;;3202:4:23;4919:24;536:5807:77;-1:-1:-1;536:5807:77;4919:24:23;536:5807:77;3202:4:23;:::i;:::-;5767:26;:::i;536:5807:77:-;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;-1:-1:-1;;536:5807:77;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;-1:-1:-1;;;;;536:5807:77;;;;;;;;;;;;:::i;:::-;3217:103:28;;:::i;:::-;-1:-1:-1;536:5807:77;;;5246:21:76;;:13;;-1:-1:-1;;;;;536:5807:77;5246:13:76;536:5807:77;;-1:-1:-1;;;;;536:5807:77;;;5246:21:76;536:5807:77;;-1:-1:-1;;;5246:23:76;;536:5807:77;;;;;5246:23:76;;;;;;;-1:-1:-1;5246:23:76;;;536:5807:77;-1:-1:-1;;;;;;536:5807:77;;;5232:10:76;:37;5228:87;;5341:4;536:5807:77;-1:-1:-1;;;;;536:5807:77;;;;5355:469:76;;536:5807:77;-1:-1:-1;;536:5807:77;;;;;;;;;;;;;;;;5839:55:76;;536:5807:77;;;;5839:55:76;;;;3282:1:28;1805;-1:-1:-1;;;;;;;;;;;536:5807:77;3716:283:28;5355:469:76;536:5807:77;;;;5435:94:76;;;;536:5807:77;5435:94:76;;;;;;;;;;;;536:5807:77;5435:94:76;;;:::i;:::-;;536:5807:77;;5435:94:76;;;;;;:::i;:::-;536:5807:77;5548:9:76;:51;5544:118;;-1:-1:-1;5839:55:76;5676:138;;;;5839:55;5676:138;;;1150:7;5676:138;;5355:469;;;5544:118;536:5807:77;;-1:-1:-1;;;5626:21:76;;536:5807:77;;5626:21:76;5228:87;536:5807:77;;-1:-1:-1;;;5292:12:76;;536:5807:77;;5292:12:76;5246:23;;;;;536:5807:77;5246:23:76;536:5807:77;5246:23:76;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;536:5807:77;;;;;;-1:-1:-1;;536:5807:77;;;;;;;;-1:-1:-1;;;;;536:5807:77;;;;;;;;;;;;;;-1:-1:-1;;536:5807:77;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;-1:-1:-1;;536:5807:77;;;;;;;1150:7:76;536:5807:77;;;;;;;;;-1:-1:-1;;536:5807:77;;;;;;;2700:1:76;536:5807:77;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;1742:195;;1870:60;1742:195;;-1:-1:-1;536:5807:77;1870:13;536:5807;;;-1:-1:-1;536:5807:77;1870:60;:::i;2207:277::-;-1:-1:-1;536:5807:77;;;2399:21;536:5807;;;;;;;;-1:-1:-1;;;;;536:5807:77;;;;;;;;;2399:78;;2207:277;;2399:78;:::i;536:5807::-;;;;;;;;;;;;;;;;;-1:-1:-1;536:5807:77;;;;;;;;-1:-1:-1;;536:5807:77;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;536:5807:77;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;;;;536:5807:77;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::o;:::-;-1:-1:-1;;;;;536:5807:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;2764:920:76:-;;2978:48;2764:920;;;;2978:48;;;;:::i;:::-;3036:36;;;536:5807:77;;:::i;:::-;;;;3086:20:76;3082:107;;2764:920;3216:11;;;;:193;;;;;2764:920;3216:394;;;;2764:920;3199:455;;;;;;2764:920;:::o;3199:455::-;3635:8;-1:-1:-1;3635:8:76;:::o;3216:394::-;3553:39;;;;;3430:180;3553:39;;;536:5807:77;;;;;;;;;;3430:180:76;;467:2:88;536:5807:77;3430:180:76;;;;;:::i;:::-;;536:5807:77;3444:31:76;-1:-1:-1;;;;;536:5807:77;3430:180:76;;;;;;;-1:-1:-1;3430:180:76;;;3216:394;3429:181;;3216:394;;;;;;3430:180;;;;3553:39;3430:180;3553:39;3430:180;;;;;;;:::i;:::-;;;;3216:193;-1:-1:-1;536:5807:77;;;-1:-1:-1;;;;;;536:5807:77;3248:161:76;3354:37;;;536:5807:77;3248:161:76;536:5807:77;;;;;;;;;;3248:161:76;;;;;;;:::i;:::-;;536:5807:77;3262:29:76;-1:-1:-1;;;;;536:5807:77;3248:161:76;;;;;;;-1:-1:-1;3248:161:76;;;3216:193;3247:162;;3216:193;;;3248:161;;;;;;;;;;;;;;:::i;:::-;;;;3082:107;3139:39;;;;;;;;;;;;;:::i;:::-;3082:107;;;;;536:5807:77;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;9856:1:60;536:5807:77;;;;;;;:::o;:::-;;:::i;3740:389:76:-;3918:5;536:5807:77;;;-1:-1:-1;;;3853:71:76;;;-1:-1:-1;;;;;536:5807:77;;;3853:71:76;;;536:5807:77;;;;;;;;3740:389:76;;536:5807:77;3853:71:76;;536:5807:77;;3853:71:76;536:5807:77;;;3867:29:76;536:5807:77;;3853:71:76;;;;;;;3918:5;3853:71;;;3740:389;3852:72;;536:5807:77;;;3852:181:76;;3740:389;3835:242;;;;;;4094:28;;;:::i;3835:242::-;4058:8;;3918:5;4058:8;:::o;3852:181::-;536:5807:77;;3945:88:76;;;-1:-1:-1;;;;;536:5807:77;;3853:71:76;3945:88;;536:5807:77;467:2:88;536:5807:77;;;;;;;;-1:-1:-1;536:5807:77;;;;;;;;3959:31:76;536:5807:77;3945:88:76;;;;;;;3918:5;3945:88;;;3852:181;3944:89;;;3852:181;;;;;3945:88;;;;;;-1:-1:-1;3945:88:76;;;;;;:::i;:::-;;;;;3853:71;;;;;;;;;;;;;;:::i;:::-;;;;4148:103:23;966:10:27;-1:-1:-1;536:5807:77;;;;;;;;;952:44;;536:5807;;3901:31:23;536:5807:77;;4468:23:23;4464:108;;4148:103;:::o;:::-;966:10:27;-1:-1:-1;536:5807:77;;;;;;;;;795:35;;536:5807;;3901:31:23;536:5807:77;4148:103:23;-1:-1:-1;536:5807:77;;;-1:-1:-1;;;;;;;;;;;536:5807:77;;;;;;;;966:10:27;536:5807:77;;;;;;;;;3901:31:23;536:5807:77;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;536:5807:77;;-1:-1:-1;536:5807:77;;;-1:-1:-1;536:5807:77;:::o;:::-;;:::i;:::-;;;;;-1:-1:-1;;;536:5807:77;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;536:5807:77;;;;;;;;:::o;6246:584:86:-;;;;;6360:12;;;536:5807:77;;;6360:24:86;;6356:75;;6246:584;6474:30;;;;;:::i;:::-;536:5807:77;;;;;;6578:12:86;;;;:::i;:::-;6604:24;;;;6246:584;-1:-1:-1;6600:188:86;;;-1:-1:-1;;;;;536:5807:77;;;;;;;6644:21:86;;;:29;:21;;:::i;:29::-;6798:25;6246:584;:::o;6600:188::-;6753:24;;536:5807:77;;8167:38:60;;-1:-1:-1;;;;;536:5807:77;;;;;8167:38:60;:::i;:::-;6753:24:86;;;:::i;6604:::-;536:5807:77;;;;;;6614:14:86;;-1:-1:-1;6604:24:86;;;6356:75;-1:-1:-1;;;536:5807:77;;;;;;6360:12:86;536:5807:77;;;;;;;:::i;:::-;;;;;;;;;;;;;;6356:75:86;;;10580:184;536:5807:77;;10303:8:60;;;:63;-1:-1:-1;10303:63:60;-1:-1:-1;;;;;536:5807:77;;10726:7:86;536:5807:77;;10736:12:86;:17;:12;;:17;:::i;:::-;536:5807:77;;;;;;10580:184:86;:::o;10303:63:60:-;536:5807:77;;;;;;;;;;14249:109:60;-1:-1:-1;14249:109:60;;-1:-1:-1;14249:109:60;;;536:5807:77;;;10303:63:60;;3326:384:28;-1:-1:-1;;;;;;;;;;;1847:1:28;536:5807:77;;3526:20:28;3522:88;;1847:1;536:5807:77;;3326:384:28:o;3522:88::-;536:5807:77;;-1:-1:-1;;;3569:30:28;;;;;4758:308:77;;536:5807;-1:-1:-1;536:5807:77;4889:13;536:5807;;;-1:-1:-1;536:5807:77;11124:30:86;;;;:::i;:::-;11173;;;-1:-1:-1;11173:30:86;;;;11182:17;;-1:-1:-1;;;;;536:5807:77;;11182:12:86;;:17;:::i;:::-;536:5807:77;;;4889:13;536:5807;;11173:30:86;4947::77;;;11173::86;4943:117:77;;;;4758:308;;:::o;4943:117::-;4993:56;536:5807;-1:-1:-1;536:5807:77;4889:13;536:5807;;;-1:-1:-1;536:5807:77;819:34:62;837:15;819:34;:::i;4993:56:77:-;4758:308;;:::o;4947:30::-;4957:20;;-1:-1:-1;4947:30:77;;;;11173::86;;;-1:-1:-1;11173:30:86;;7270:387:23;-1:-1:-1;;;;;536:5807:77;;-1:-1:-1;536:5807:77;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2887:71:23;536:5807:77;;;;-1:-1:-1;536:5807:77;;;;;;;;;;;-1:-1:-1;;;;;536:5807:77;;;;;;;;;;-1:-1:-1;;536:5807:77;7509:4:23;536:5807:77;;;966:10:27;;-1:-1:-1;;;;;536:5807:77;-1:-1:-1;7532:40:23;-1:-1:-1;;7532:40:23;7509:4;7586:11;:::o;7270:387::-;-1:-1:-1;;;;;536:5807:77;;-1:-1:-1;536:5807:77;;;;;;;;;1356:26:76;;-1:-1:-1;;;;;;;;;;;2887:71:23;536:5807:77;;3901:31:23;536:5807:77;;;;-1:-1:-1;536:5807:77;;;;;;;;;;;-1:-1:-1;;;;;536:5807:77;;;;;;;;;;-1:-1:-1;;536:5807:77;7509:4:23;536:5807:77;;;966:10:27;;-1:-1:-1;;;;;536:5807:77;;7532:40:23;-1:-1:-1;;7532:40:23;7509:4;7586:11;:::o;7432:219::-;7628:12;;;-1:-1:-1;7628:12:23;:::o;7270:387::-;-1:-1:-1;;;;;536:5807:77;;-1:-1:-1;536:5807:77;;;;;;;;;795:35;;-1:-1:-1;;;;;;;;;;;2887:71:23;536:5807:77;;3901:31:23;536:5807:77;7270:387:23;-1:-1:-1;;;;;536:5807:77;;-1:-1:-1;536:5807:77;;;;;;;;;952:44;;-1:-1:-1;;;;;;;;;;;2887:71:23;536:5807:77;;3901:31:23;536:5807:77;7270:387:23;-1:-1:-1;536:5807:77;;;-1:-1:-1;;;;;;;;;;;536:5807:77;;;;;;;;-1:-1:-1;;;;;536:5807:77;;;;;;;;;;;;3901:31:23;536:5807:77;7892:388:23;-1:-1:-1;536:5807:77;;;-1:-1:-1;;;;;;;;;;;536:5807:77;;;;;;;;-1:-1:-1;;;;;536:5807:77;;;;;;;;;;;;;;;;-1:-1:-1;536:5807:77;;;;;;;;;;;-1:-1:-1;;;;;536:5807:77;;;;;;;;;;-1:-1:-1;;536:5807:77;;;966:10:27;;-1:-1:-1;;;;;536:5807:77;;8155:40:23;-1:-1:-1;;8155:40:23;536:5807:77;8209:11:23;:::o;536:5807:77:-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;536:5807:77;;;;;;;;:::i;5907:716:76:-;6030:34;5907:716;6030:34;;;;:::i;:::-;536:5807:77;;-1:-1:-1;;;6080:41:76;;-1:-1:-1;;;;;536:5807:77;;;6080:41:76;;;536:5807:77;;;;;6080:41:76;536:5807:77;;;6090:13:76;536:5807:77;;6080:41:76;;;;;;;-1:-1:-1;6080:41:76;;;5907:716;6079:42;;6075:90;;6266:27;536:5807:77;2540:111:28;6210:14:76;536:5807:77;2540:111:28;;;:::i;:::-;536:5807:77;;;;;;-1:-1:-1;;;;;536:5807:77;;-1:-1:-1;536:5807:77;;;-1:-1:-1;536:5807:77;;6210:14:76;6266:27;:::i;:::-;6080:41;6311:15;;536:5807:77;;;;-1:-1:-1;;;;;;536:5807:77;-1:-1:-1;;;;;536:5807:77;;;;;;;;;;;-1:-1:-1;;;;;536:5807:77;;;;6337:143:76;;5907:716;-1:-1:-1;6493:28:76;536:5807:77;-1:-1:-1;;;;;536:5807:77;;;;;;;6489:128:76;;5907:716;:::o;6489:128::-;6551:55;;;:::i;:::-;;5907:716::o;6337:143::-;6404:65;;;:::i;:::-;;6337:143;;;6075:90;536:5807:77;;-1:-1:-1;;;6144:10:76;;6080:41;;6144:10;6080:41;;;;;;;;;;;;;;:::i;:::-;;;;536:5807:77;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;:::o;7558:604:86:-;;536:5807:77;;7686:17:86;7682:83;;536:5807:77;7789:27:86;536:5807:77;7789:27:86;536:5807:77;;7789:27:86;;;;;;:::i;:::-;7860:14;;;;;:::i;:::-;536:5807:77;;;;;;;;;;;;;;;;7888:22:86;;;7884:77;;7975:21;-1:-1:-1;7975:84:86;;;;7558:604;7971:139;;;;8127:28;;;;:::i;7971:139::-;8082:17;;7789:27;8082:17;536:5807:77;8075:24:86;:::o;7975:84::-;536:5807:77;;;8009:16:86;536:5807:77;;8009:16:86;:::i;:::-;536:5807:77;;;8001:24:86;:57;;;;;7975:84;;;;;;;8001:57;8029:29;8038:8;;;8029:18;8038:8;8029:23;8038:8;;:::i;:::-;8029:18;;:::i;:::-;536:5807:77;;;;;8029:23:86;536:5807:77;;;;8029:29:86;;8001:57;;;;7884:77;7933:17;;;;;7789:27;7933:17;536:5807:77;7926:24:86;:::o;7682:83::-;7726:28;;;;:::i;536:5807:77:-;;;;;;;;;;-1:-1:-1;;;;;536:5807:77;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;;;;536:5807:77;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;:::i;3722:766::-;;;;;536:5807;;:::i;:::-;;;;3962:16;3958:92;;3722:766;536:5807;;4107:67;536:5807;;;4146:27;4107;:13;536:5807;-1:-1:-1;536:5807:77;;;;;;;;;4107:27;4146;;;;536:5807;;;;;;;;;;;4107:67;;;;;;;:::i;:::-;;;;;;;;;;4081:355;4107:67;-1:-1:-1;4107:67:77;;;3722:766;4260:28;4311:93;4260:28;4192:230;4260:28;;4222:67;536:5807;4260:28;;;4222:67;;;:::i;:::-;4367:36;;;;;4311:93;;:::i;:::-;4192:230;;:::i;4081:355::-;4450:21;;3722:766;:::o;4107:67::-;4192:230;4107:67;;;;4311:93;4107:67;4146:27;4107:67;4146:27;4107:67;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;3958:92;4107:67;4008:31;;;;;;;;;;;;;;:::i;:::-;3958:92;;;;;4494:258;4635:5;536:5807;;;-1:-1:-1;;;4628:27:77;;536:5807;4494:258;;4628:27;;536:5807;;4628:27;;536:5807;;-1:-1:-1;;;;;536:5807:77;4628:27;;;;;;;4606:139;4628:27;4635:5;4628:27;;;4494:258;2103:25;2662:52;:43;4657:78;2103:25;;:34;:25;;536:5807;;2103:13;536:5807;;;;;;;2103:34;536:5807;4635:5;536:5807;4628:27;;536:5807;;4635:5;536:5807;;;;;;;;;;;;;;;;;4628:27;4657:78;4628:27;;2662:43;4628:27;2662:52;4628:27;;;;;;;;;;;:::i;:::-;;;;;;14291:213:58;536:5807:77;14369:24:58;;;;14365:103;;536:5807:77;14291:213:58;:::o;14365:103::-;536:5807:77;;;;14416:41:58;;;;;;14447:2;14416:41;;;536:5807:77;;;;;14416:41:58;536:5807:77;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::o;10552:388:60:-;536:5807:77;;10728:8:60;;;10752:20;;10690:17;10752:20;10690:17;10752:20;10690:17;10752:20;:::o;10724:210::-;536:5807:77;;;;;;;;;;;14249:109:60;10690:17;14249:109;;10690:17;14249:109;;;536:5807:77;:::i;:::-;;;;;;;14249:109:60;536:5807:77;;;;;10911:11:60;;536:5807:77;;10886:37:60;10870:1;10886:37;;;:::o;6893:76:25:-;;;:::i;:::-;;;:::i;:::-;1805:1:28;-1:-1:-1;;;;;;;;;;;536:5807:77;6893:76:25:o;536:5807:77:-;;;;;;;:::i;:::-;-1:-1:-1;536:5807:77;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;-1:-1:-1;;;;;536:5807:77;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;536:5807:77;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;5072:1269::-;5220:30;5072:1269;536:5807;;:::i;:::-;;5220:30;536:5807;;;5220:30;;;;;;:::i;:::-;5278:17;;536:5807;5278:17;;536:5807;-1:-1:-1;;;;;536:5807:77;5278:54;;:178;;5072:1269;5261:258;;5534:9;5220:30;5549:33;;;5278:17;5591:3;5549:33;;536:5807;;5545:44;;;;;5614:36;;;:50;:36;;:::i;:::-;536:5807;-1:-1:-1;;;;;536:5807:77;;;5614:50;;5610:119;;5747:73;5748:72;5783:36;;:33;;;:36;:::i;:::-;5748:72;:::i;:::-;5747:73;;536:5807;5747:73;5743:140;;536:5807;;5534:9;;5743:140;536:5807;;-1:-1:-1;;;5847:21:77;;;;;5610:119;536:5807;;-1:-1:-1;;;5691:23:77;;;;;5545:44;-1:-1:-1;5923:41:77;;-1:-1:-1;;5923:41:77;;;;5278:17;5973:3;5923:41;;536:5807;;5919:52;;;;;5996:44;;;:58;:44;;:::i;:58::-;;5992:127;;6137:90;6138:89;6182:44;;:41;;;:44;:::i;:::-;6138:89;:::i;6137:90::-;6133:157;;536:5807;;5908:9;;6133:157;536:5807;;-1:-1:-1;;;6254:21:77;;;;;5992:127;536:5807;;-1:-1:-1;;;6081:23:77;;;;;5919:52;;;;;;6317:17;5072:1269;:::o;5261:258::-;536:5807;;-1:-1:-1;;;5488:20:77;;;;;5278:178;5353:33;5220:30;5353:33;;;536:5807;5353:45;:102;5278:178;5353:102;5402:41;;;;;536:5807;5402:53;5278:178;;6999:207:86;;536:5807:77;;9594:15:60;-1:-1:-1;9619:18:60;9652:7;9658:1;9652:7;;9648:234;;6999:207:86;9906:53:60;;;;;:::i;:::-;9977:8;;;:63;-1:-1:-1;9977:63:60;;-1:-1:-1;;;;;536:5807:77;;7168:7:86;536:5807:77;;;7178:12:86;;:17;:12;;:17;:::i;9977:63:60:-;9992:41;10025:7;9992:48;10025:7;;:::i;:::-;9992:41;14249:109;;;;;;14099:265;;9992:41;536:5807:77;;;;;9992:48:60;9977:63;;;9648:234;9695:14;;;;;:::i;:::-;536:5807:77;;;;;;;9906:53:60;14249:109;;-1:-1:-1;14249:109:60;536:5807:77;14249:109:60;;;-1:-1:-1;14249:109:60;;536:5807:77;;;;;9727:48:60;9723:149;536:5807:77;;;9795:10:60;9723:149;9648:234;;9723:149;9850:7;;;;;;:::i;:::-;9723:149;9648:234;;536:5807:77;;;;;;;:::i;:::-;-1:-1:-1;536:5807:77;;;;;;;:::o;11486:272:86:-;;536:5807:77;11308:22:60;11718:31:86;11486:272;536:5807:77;;:::i;:::-;;;;:::i;:::-;;11308:22:60;;:::i;:::-;536:5807:77;;:::i;:::-;;11718:12:86;536:5807:77;;;;;11731:17:86;536:5807:77;;;;;11731:17:86;;536:5807:77;;11718:12:86;;:31;:::i;:::-;536:5807:77;;;;;;;;;:::i;:::-;;;;;;11731:17:86;11672:79;;536:5807:77;11486:272:86;:::o;2557:104:57:-;;2641:5;;;;;;:13;2557:104;:::o;2641:13::-;;;2557:104;:::o;536:5807:77:-;;;-1:-1:-1;;;536:5807:77;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;536:5807:77;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;11513:870:60;536:5807:77;;11513:870:60;;;536:5807:77;11513:870:60;11672:7;;;;536:5807:77;11775:28:60;11795:7;;;:::i;11775:28::-;536:5807:77;:::i;:::-;;;;;;;;;;;;;;;;11877:15:60;-1:-1:-1;11873:91:60;;536:5807:77;;12233:11:60;536:5807:77;;;12027:16:60;536:5807:77;;;;;;;12027:16:60;;;;12083:7;12063:43;12083:7;;12063:28;12083:7;;:::i;:::-;12063:28;14249:109;;;;;;14099:265;;12063:28;536:5807:77;;;;;;;;;;;;;;;;;12063:43:60;12233:11;536:5807:77;-1:-1:-1;;;;;536:5807:77;;;12023:189:60;536:5807:77;;;12145:52:60;536:5807:77;12155:41:60;536:5807:77;;:::i;:::-;;;;;;;;12155:41:60;-1:-1:-1;;;;;536:5807:77;;12155:41:60;;;536:5807:77;12145:52:60;:::i;:::-;12023:189;;11873:91;536:5807:77;;-1:-1:-1;;;11919:30:60;;;;;11668:709;12283:52;536:5807:77;;12293:41:60;536:5807:77;;:::i;12293:41:60:-;-1:-1:-1;;;;;536:5807:77;;12293:41:60;;;536:5807:77;12145:52:60;:::i;12283:::-;11678:1;12349:17;;:::o;7084:141:25:-;536:5807:77;-1:-1:-1;;;;;;;;;;;536:5807:77;;;;7150:18:25;7146:73;;7084:141::o;7146:73::-;536:5807:77;;-1:-1:-1;;;7191:17:25;;;;;8587:1642:57;8658:6;;8654:45;;9401:7;10201:10;10142:26;10093;10044;9995;9946;9897;9848;536:5807:77;10189:23:57;9401:7;8663:1;536:5807:77;;;;10826:16:57;10822:99;;8587:1642;536:5807:77;;;;10938:15:57;10934:96;;8587:1642;536:5807:77;;;;11047:15:57;11043:96;;8587:1642;536:5807:77;;;;11156:15:57;11152:96;;8587:1642;536:5807:77;;;;11265:14:57;11261:93;;8587:1642;536:5807:77;;;;11371:14:57;11367:93;;8587:1642;536:5807:77;;;;11477:14:57;11473:93;;8587:1642;536:5807:77;;;11579:64:57;;8587:1642;536:5807:77;;;9858:10:57;;;;:::i;:::-;536:5807:77;;;;;9848:26:57;9907:10;;;;:::i;9897:26::-;9956:10;;;;:::i;9946:26::-;10005:10;;;;:::i;9995:26::-;10054:10;;;;:::i;10044:26::-;10103:10;;;;:::i;10093:26::-;10152:10;;;;:::i;10142:26::-;10201:10;;;:::i;11579:64::-;536:5807:77;;11579:64:57;;11473:93;536:5807:77;11511:11:57;;536:5807:77;;11473:93:57;;;;11367;536:5807:77;11405:11:57;;536:5807:77;;11367:93:57;;;;11261;536:5807:77;11299:11:57;;536:5807:77;;11261:93:57;;;;11152:96;536:5807:77;11191:12:57;;536:5807:77;;11152:96:57;;;;11043;536:5807:77;11082:12:57;;536:5807:77;;11043:96:57;;;;10934;536:5807:77;10973:12:57;;536:5807:77;;10934:96:57;;;;10822:99;10862:13;;;536:5807:77;10822:99:57;;;;12736:433:60;;;12919:10;;;;;;13151:11;;;12736:433;:::o;12912:230::-;2900:5:57;;;;;;2910;;;;536:5807:77;;;;;;;;;14249:109:60;-1:-1:-1;14249:109:60;536:5807:77;14249:109:60;;;-1:-1:-1;14249:109:60;;536:5807:77;;;;;-1:-1:-1;12996:136:60;536:5807:77;;;13055:10:60;12996:136;;12912:230;;;;12996:136;13110:7;;;;;;:::i;:::-;12996:136;;","linkReferences":{},"immutableReferences":{"57808":[{"start":1834,"length":32}],"57811":[{"start":3768,"length":32}],"58762":[{"start":1467,"length":32},{"start":3825,"length":32}],"58765":[{"start":1122,"length":32},{"start":7577,"length":32}],"58768":[{"start":1269,"length":32},{"start":5312,"length":32},{"start":5636,"length":32}],"58771":[{"start":1337,"length":32},{"start":5159,"length":32},{"start":5762,"length":32}]}},"methodIdentifiers":{"DEFAULT_ADMIN_ROLE()":"a217fddf","FACTORY()":"2dd31000","HOOK_GAS_LIMIT()":"ff54740f","HOOK_RESERVE()":"557cab44","HOOK_SET_ROLE()":"6679191e","NETWORK_LIMIT_SET_ROLE()":"7d24bb27","NETWORK_REGISTRY()":"c0cd7c3e","OPERATOR_NETWORK_LIMIT_SET_ROLE()":"518504ba","OPERATOR_NETWORK_OPT_IN_SERVICE()":"1a80e500","OPERATOR_VAULT_OPT_IN_SERVICE()":"128e5d82","TYPE()":"bb24fe8a","VAULT_FACTORY()":"103f2907","VERSION()":"ffa1ad74","getRoleAdmin(bytes32)":"248a9ca3","grantRole(bytes32,address)":"2f2ff15d","hasRole(bytes32,address)":"91d14854","hook()":"7f5a7c7b","initialize(bytes)":"439fab91","maxNetworkLimit(bytes32)":"d15b740e","networkLimit(bytes32)":"3eb22c0f","networkLimitAt(bytes32,uint48,bytes)":"5d32a1c9","onSlash(bytes32,address,uint256,uint48,bytes)":"e49561ee","operatorNetworkLimit(bytes32,address)":"11422095","operatorNetworkLimitAt(bytes32,address,uint48,bytes)":"94d2558a","renounceRole(bytes32,address)":"36568abe","revokeRole(bytes32,address)":"d547741f","setHook(address)":"3dfd3873","setMaxNetworkLimit(uint96,uint256)":"23f752d5","setNetworkLimit(bytes32,uint256)":"02145348","setOperatorNetworkLimit(bytes32,address,uint256)":"020cf0c2","stake(bytes32,address)":"fd4d447c","stakeAt(bytes32,address,uint48,bytes)":"e02f6937","staticDelegateCall(address,bytes)":"9f86fd85","supportsInterface(bytes4)":"01ffc9a7","vault()":"fbfa77cf"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"networkRegistry\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"vaultFactory\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operatorVaultOptInService\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operatorNetworkOptInService\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"delegatorFactory\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"entityType\",\"type\":\"uint64\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"AccessControlBadConfirmation\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"neededRole\",\"type\":\"bytes32\"}],\"name\":\"AccessControlUnauthorizedAccount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AlreadySet\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CheckpointUnorderedInsertion\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"DuplicateRoleHolder\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ExceedsMaxNetworkLimit\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientHookGas\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MissingRoleHolders\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotNetwork\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotSlasher\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotVault\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ReentrancyGuardReentrantCall\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"bits\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"SafeCastOverflowedUintDowncast\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ZeroAddressRoleHolder\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint48\",\"name\":\"captureTimestamp\",\"type\":\"uint48\"}],\"name\":\"OnSlash\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"previousAdminRole\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"newAdminRole\",\"type\":\"bytes32\"}],\"name\":\"RoleAdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleRevoked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"hook\",\"type\":\"address\"}],\"name\":\"SetHook\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"SetMaxNetworkLimit\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"SetNetworkLimit\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"SetOperatorNetworkLimit\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DEFAULT_ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"FACTORY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"HOOK_GAS_LIMIT\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"HOOK_RESERVE\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"HOOK_SET_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"NETWORK_LIMIT_SET_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"NETWORK_REGISTRY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"OPERATOR_NETWORK_LIMIT_SET_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"OPERATOR_NETWORK_OPT_IN_SERVICE\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"OPERATOR_VAULT_OPT_IN_SERVICE\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"TYPE\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"VAULT_FACTORY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"VERSION\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleAdmin\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"grantRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"hook\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"}],\"name\":\"maxNetworkLimit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"}],\"name\":\"networkLimit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hint\",\"type\":\"bytes\"}],\"name\":\"networkLimitAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint48\",\"name\":\"captureTimestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"onSlash\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"operatorNetworkLimit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hint\",\"type\":\"bytes\"}],\"name\":\"operatorNetworkLimitAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"callerConfirmation\",\"type\":\"address\"}],\"name\":\"renounceRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"hook_\",\"type\":\"address\"}],\"name\":\"setHook\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint96\",\"name\":\"identifier\",\"type\":\"uint96\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"setMaxNetworkLimit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"setNetworkLimit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"setOperatorNetworkLimit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"stake\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hints\",\"type\":\"bytes\"}],\"name\":\"stakeAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"staticDelegateCall\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"vault\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"AccessControlBadConfirmation()\":[{\"details\":\"The caller of a function is not the expected one. NOTE: Don't confuse with {AccessControlUnauthorizedAccount}.\"}],\"AccessControlUnauthorizedAccount(address,bytes32)\":[{\"details\":\"The `account` is missing a role.\"}],\"CheckpointUnorderedInsertion()\":[{\"details\":\"A value was attempted to be inserted on a past checkpoint.\"}],\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"ReentrancyGuardReentrantCall()\":[{\"details\":\"Unauthorized reentrant call.\"}],\"SafeCastOverflowedUintDowncast(uint8,uint256)\":[{\"details\":\"Value doesn't fit in an uint of `bits` size.\"}]},\"events\":{\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"OnSlash(bytes32,address,uint256,uint48)\":{\"params\":{\"amount\":\"amount of the collateral to be slashed\",\"captureTimestamp\":\"time point when the stake was captured\",\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"}},\"RoleAdminChanged(bytes32,bytes32,bytes32)\":{\"details\":\"Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole` `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite {RoleAdminChanged} not being emitted signaling this.\"},\"RoleGranted(bytes32,address,address)\":{\"details\":\"Emitted when `account` is granted `role`. `sender` is the account that originated the contract call, an admin role bearer except when using {AccessControl-_setupRole}.\"},\"RoleRevoked(bytes32,address,address)\":{\"details\":\"Emitted when `account` is revoked `role`. `sender` is the account that originated the contract call: - if using `revokeRole`, it is the admin role bearer - if using `renounceRole`, it is the role bearer (i.e. `account`)\"},\"SetHook(address)\":{\"params\":{\"hook\":\"address of the hook\"}},\"SetMaxNetworkLimit(bytes32,uint256)\":{\"params\":{\"amount\":\"new maximum subnetwork's limit (how much stake the subnetwork is ready to get)\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"}},\"SetNetworkLimit(bytes32,uint256)\":{\"params\":{\"amount\":\"new subnetwork's limit (how much stake the vault curator is ready to give to the subnetwork)\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"}},\"SetOperatorNetworkLimit(bytes32,address,uint256)\":{\"params\":{\"amount\":\"new operator's limit for the subnetwork (how much stake the vault curator is ready to give to the operator for the subnetwork)\",\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"}}},\"kind\":\"dev\",\"methods\":{\"VERSION()\":{\"details\":\"Must return 1 for this one.\",\"returns\":{\"_0\":\"version of the delegator\"}},\"getRoleAdmin(bytes32)\":{\"details\":\"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}.\"},\"grantRole(bytes32,address)\":{\"details\":\"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event.\"},\"hasRole(bytes32,address)\":{\"details\":\"Returns `true` if `account` has been granted `role`.\"},\"initialize(bytes)\":{\"params\":{\"data\":\"some data to use\"}},\"networkLimit(bytes32)\":{\"params\":{\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"},\"returns\":{\"_0\":\"limit of the subnetwork\"}},\"networkLimitAt(bytes32,uint48,bytes)\":{\"params\":{\"hint\":\"hint for checkpoint index\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\",\"timestamp\":\"time point to get the subnetwork limit at\"},\"returns\":{\"_0\":\"limit of the subnetwork at the given timestamp\"}},\"onSlash(bytes32,address,uint256,uint48,bytes)\":{\"details\":\"Only the vault's slasher can call this function.\",\"params\":{\"amount\":\"amount of the collateral slashed\",\"captureTimestamp\":\"time point when the stake was captured\",\"data\":\"some additional data\",\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"}},\"operatorNetworkLimit(bytes32,address)\":{\"params\":{\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"},\"returns\":{\"_0\":\"limit of the operator for the subnetwork\"}},\"operatorNetworkLimitAt(bytes32,address,uint48,bytes)\":{\"params\":{\"hint\":\"hint for checkpoint index\",\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\",\"timestamp\":\"time point to get the operator's limit for the subnetwork at\"},\"returns\":{\"_0\":\"limit of the operator for the subnetwork at the given timestamp\"}},\"renounceRole(bytes32,address)\":{\"details\":\"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `callerConfirmation`. May emit a {RoleRevoked} event.\"},\"revokeRole(bytes32,address)\":{\"details\":\"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event.\"},\"setHook(address)\":{\"details\":\"Only a HOOK_SET_ROLE holder can call this function. The hook can have arbitrary logic under certain functions, however, it doesn't affect the stake guarantees.\",\"params\":{\"hook\":\"address of the hook\"}},\"setMaxNetworkLimit(uint96,uint256)\":{\"details\":\"Only a network can call this function.\",\"params\":{\"amount\":\"new maximum subnetwork's limit\"}},\"setNetworkLimit(bytes32,uint256)\":{\"details\":\"Only a NETWORK_LIMIT_SET_ROLE holder can call this function.\",\"params\":{\"amount\":\"new limit of the subnetwork\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"}},\"setOperatorNetworkLimit(bytes32,address,uint256)\":{\"details\":\"Only an OPERATOR_NETWORK_LIMIT_SET_ROLE holder can call this function.\",\"params\":{\"amount\":\"new limit of the operator for the subnetwork\",\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"}},\"stake(bytes32,address)\":{\"details\":\"Warning: this function is not safe to use for stake capturing, as it can change by the end of the block.\",\"params\":{\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"},\"returns\":{\"_0\":\"slashable stake until the end of the next epoch\"}},\"stakeAt(bytes32,address,uint48,bytes)\":{\"details\":\"Warning: it is not safe to use timestamp >= current one for the stake capturing, as it can change later.\",\"params\":{\"hints\":\"hints for the checkpoints' indexes\",\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\",\"timestamp\":\"time point to capture the stake at\"},\"returns\":{\"_0\":\"slashable stake at the given timestamp until the end of the consequent epoch\"}},\"staticDelegateCall(address,bytes)\":{\"details\":\"It allows to use this contract's storage on-chain.\",\"params\":{\"data\":\"data to make a delegatecall with\",\"target\":\"address of the contract to make a delegatecall to\"}},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"}},\"stateVariables\":{\"NETWORK_LIMIT_SET_ROLE\":{\"return\":\"identifier of the subnetwork limit setter role\",\"returns\":{\"_0\":\"identifier of the subnetwork limit setter role\"}},\"OPERATOR_NETWORK_LIMIT_SET_ROLE\":{\"return\":\"identifier of the operator-subnetwork limit setter role\",\"returns\":{\"_0\":\"identifier of the operator-subnetwork limit setter role\"}}},\"version\":1},\"userdoc\":{\"events\":{\"OnSlash(bytes32,address,uint256,uint48)\":{\"notice\":\"Emitted when a slash happens.\"},\"SetHook(address)\":{\"notice\":\"Emitted when a hook is set.\"},\"SetMaxNetworkLimit(bytes32,uint256)\":{\"notice\":\"Emitted when a subnetwork's maximum limit is set.\"},\"SetNetworkLimit(bytes32,uint256)\":{\"notice\":\"Emitted when a subnetwork's limit is set.\"},\"SetOperatorNetworkLimit(bytes32,address,uint256)\":{\"notice\":\"Emitted when an operator's limit for a subnetwork is set.\"}},\"kind\":\"user\",\"methods\":{\"FACTORY()\":{\"notice\":\"Get the factory's address.\"},\"HOOK_GAS_LIMIT()\":{\"notice\":\"Get a gas limit for the hook.\"},\"HOOK_RESERVE()\":{\"notice\":\"Get a reserve gas between the gas limit check and the hook's execution.\"},\"HOOK_SET_ROLE()\":{\"notice\":\"Get a hook setter's role.\"},\"NETWORK_LIMIT_SET_ROLE()\":{\"notice\":\"Get a subnetwork limit setter's role.\"},\"NETWORK_REGISTRY()\":{\"notice\":\"Get the network registry's address.\"},\"OPERATOR_NETWORK_LIMIT_SET_ROLE()\":{\"notice\":\"Get an operator-subnetwork limit setter's role.\"},\"OPERATOR_NETWORK_OPT_IN_SERVICE()\":{\"notice\":\"Get the operator-network opt-in service's address.\"},\"OPERATOR_VAULT_OPT_IN_SERVICE()\":{\"notice\":\"Get the operator-vault opt-in service's address.\"},\"TYPE()\":{\"notice\":\"Get the entity's type.\"},\"VAULT_FACTORY()\":{\"notice\":\"Get the vault factory's address.\"},\"VERSION()\":{\"notice\":\"Get a version of the delegator (different versions mean different interfaces).\"},\"hook()\":{\"notice\":\"Get the hook's address.\"},\"initialize(bytes)\":{\"notice\":\"Initialize this entity contract by using a given data.\"},\"maxNetworkLimit(bytes32)\":{\"notice\":\"Get a particular subnetwork's maximum limit (meaning the subnetwork is not ready to get more as a stake).\"},\"networkLimit(bytes32)\":{\"notice\":\"Get a subnetwork's limit (how much stake the vault curator is ready to give to the subnetwork).\"},\"networkLimitAt(bytes32,uint48,bytes)\":{\"notice\":\"Get a subnetwork's limit at a given timestamp using a hint (how much stake the vault curator is ready to give to the subnetwork).\"},\"onSlash(bytes32,address,uint256,uint48,bytes)\":{\"notice\":\"Called when a slash happens.\"},\"operatorNetworkLimit(bytes32,address)\":{\"notice\":\"Get an operator's limit for a subnetwork. (how much stake the vault curator is ready to give to the operator for the subnetwork)\"},\"operatorNetworkLimitAt(bytes32,address,uint48,bytes)\":{\"notice\":\"Get an operator's limit for a subnetwork at a given timestamp using a hint (how much stake the vault curator is ready to give to the operator for the subnetwork).\"},\"setHook(address)\":{\"notice\":\"Set a new hook.\"},\"setMaxNetworkLimit(uint96,uint256)\":{\"notice\":\"Set a maximum limit for a subnetwork (how much stake the subnetwork is ready to get). identifier identifier of the subnetwork\"},\"setNetworkLimit(bytes32,uint256)\":{\"notice\":\"Set a subnetwork's limit (how much stake the vault curator is ready to give to the subnetwork).\"},\"setOperatorNetworkLimit(bytes32,address,uint256)\":{\"notice\":\"Set an operator's limit for a subnetwork. (how much stake the vault curator is ready to give to the operator for the subnetwork)\"},\"stake(bytes32,address)\":{\"notice\":\"Get a stake that a given subnetwork will be able to slash for a certain operator until the end of the next epoch (if no cross-slashing and no slashings by the subnetwork).\"},\"stakeAt(bytes32,address,uint48,bytes)\":{\"notice\":\"Get a stake that a given subnetwork could be able to slash for a certain operator at a given timestamp until the end of the consequent epoch using hints (if no cross-slashing and no slashings by the subnetwork).\"},\"staticDelegateCall(address,bytes)\":{\"notice\":\"Make a delegatecall from this contract to a given target contract with a particular data (always reverts with a return data).\"},\"vault()\":{\"notice\":\"Get the vault's address.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/contracts/delegator/FullRestakeDelegator.sol\":\"FullRestakeDelegator\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol\":{\"keccak256\":\"0x6662ec4e5cefca03eeadd073e9469df8d2944bb2ee8ec8f7622c2c46aab5f225\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4d8544c6f8daa4d1bc215c6a72fe0acdb748664a105b0e5efc19295667521d45\",\"dweb:/ipfs/QmdGWqdnXT8S3RgCR6aV8XHZrsybieMQLLnug1NtpSjEXN\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609\",\"dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9\",\"dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardUpgradeable.sol\":{\"keccak256\":\"0xb44e086e941292cdc7f440de51478493894ef0b1aeccb0c4047445919f667f74\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://942dad22fbdc1669f025540ba63aa3ccfad5f8458fc5d4525b31ebf272e7af45\",\"dweb:/ipfs/Qmdo4X2M82aM3AMoW2kf2jhYkSCyC4T1pHNd6obdsDFnAB\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol\":{\"keccak256\":\"0xdaba3f7c42c55b2896353f32bd27d4d5f8bae741b3b05d4c53f67abc4dc47ce8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1fa2e61141c602510bcd2cd936ed9561922ac8772a9b9c9a9db091a74e354a45\",\"dweb:/ipfs/QmcHQDDoEBwJmwUbzoVkytvJsBx3KVHYFFnDkvRGWh9Wmh\"]},\"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0xb6b36edd6a2999fd243ff226d6cbf84bd71af2432bbd0dfe19392996a1d9cb41\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1fd2f35495652e57e3f99bc6c510bc5f7dd398a176ea2e72d8ed730aebc6ca26\",\"dweb:/ipfs/QmTQV6X4gkikTib49cho5iDX3JvSQbdsoEChoDwrk3CbbH\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875\",\"dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0xe19a4d5f31d2861e7344e8e535e2feafb913d806d3e2b5fe7782741a2a7094fe\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4aed79c0fa6f0546ed02f2f683e8f77f0fd2ed7eb34d8bbf3d373c9a6d95b13c\",\"dweb:/ipfs/QmWqVz6UAVqmnWU5pqYPt1o6iDEZyPaBraAA3rKfTTSfYj\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/Checkpoints.sol\":{\"keccak256\":\"0xbdc5e074d7dd6678f67e92b1a51a20226801a407b0e1af3da367c5d1ff4519ad\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a36cca6b22fff3db16fc789ff6c60eea71d4b156065d4d0c83a0bc5e91a77a8b\",\"dweb:/ipfs/QmYN3exd5AemxjBrN8XMB1p5LbbE16uC3sjbYjwi8AjcGR\"]},\"lib/openzeppelin-contracts/contracts/utils/types/Time.sol\":{\"keccak256\":\"0xc7755af115020049e4140f224f9ee88d7e1799ffb0646f37bf0df24bf6213f58\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7f09bf94d5274334ec021f61a04659db303f31e60460e14b709c9bf187740111\",\"dweb:/ipfs/QmNvgomZYUwFAt4cZbPWAiTeSZQreGehY9BK5xyVJsUttb\"]},\"src/contracts/common/Entity.sol\":{\"keccak256\":\"0x3d61a932995b8443381f3950542d388223a2c26dd5d29a3274dea3baa7388bd7\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://7cdf5f03ca72fd263fd32ff59c8d88ddca911ae83896a287d10772c1bbe9b138\",\"dweb:/ipfs/QmbP84r5BWT1Rn9AYTntWSf3xUMTTCohTZJFhbBhDXFoHa\"]},\"src/contracts/common/StaticDelegateCallable.sol\":{\"keccak256\":\"0x350029aa8955eacaffffaeb58babc5c98e80ebc5c5db388ed17ee6465f4a9d90\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://eb392a8ee9050e0af606897df63e3404e3829e8b688b580663892f9664195764\",\"dweb:/ipfs/QmaXC8jqV8UrrAFkzXTEv2fJF56sy33HhLxAzaRZmUxuXD\"]},\"src/contracts/delegator/BaseDelegator.sol\":{\"keccak256\":\"0x7c54d491fdd4415b764a9c8defa068e56d4c0c8c9419be0053a1d377669290e8\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://9238bfbad0f6eeb0dc7727724de14380f1980b395902269703d5e2ef07e52e10\",\"dweb:/ipfs/QmPJn1V4HNXcEghYvogGuSTF24dSQUPosR5qtsXcmNqRm3\"]},\"src/contracts/delegator/FullRestakeDelegator.sol\":{\"keccak256\":\"0x0a81c4f8e72914563a9cb771e93acf889c71ea36b7bec040e4eb562b199d5af1\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://6fc66b6ba02da77046a0bbbd1dd407a62c08f52e04486c9cbd2cb1cca3da555f\",\"dweb:/ipfs/QmZQivK1ZnMxfRQQ5aLpV9co5u55wQVNev5Rg1hzAqxhkE\"]},\"src/contracts/libraries/Checkpoints.sol\":{\"keccak256\":\"0xba90097c8bfe0a975499428b5f8ac5569483c7d92ccc28c12d70de416aae040c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://12f5d93ca94cd06d3147db68993165a58e17903ed53682560de61f3085ad4609\",\"dweb:/ipfs/QmePiuAqvXprMLmFZkGZeGjvGPAvsEDHfCDv7BoQhXu9xE\"]},\"src/contracts/libraries/Subnetwork.sol\":{\"keccak256\":\"0xf5ef5506fd66082b3c2e7f3df37529f5a8efad32ac62e7c8914bd63219190bfe\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba031a54ee0d0e9a270c2b9e18437f5668cfeb659cfd5fe0677459d7fcac2a56\",\"dweb:/ipfs/QmReP3H7qQ78tAfgLnJKsNEQNCQfF1X1Get38Ffd4kzq32\"]},\"src/interfaces/common/IEntity.sol\":{\"keccak256\":\"0x8ef4b63d6da63489778ccd5f8d13ebdd527dd4b62730b2c616df5af7474d2d21\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a8d69576a9219d85c50816a18ad53a4d53cfcb27ed38b8cccc808dc2734b71b\",\"dweb:/ipfs/QmYVN3P4Q4REvBWJ97TbAcaxm3uyB2anV6NSGa6ZtSwcEv\"]},\"src/interfaces/common/IMigratableEntity.sol\":{\"keccak256\":\"0x8f5f2809f3afbe8ebfbb365dd7b57b4dd3b6f9943a6187eaf648d45895b8e3c4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ffe640537d539e7a4fde70d30d3e4c57f4ba9c2c25c450cea713aae38e8fd5c\",\"dweb:/ipfs/QmSUTGzvdcn1R1KB7tLThMRtESsfPbeXDhhhKWGtntzBds\"]},\"src/interfaces/common/IRegistry.sol\":{\"keccak256\":\"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014\",\"dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK\"]},\"src/interfaces/common/IStaticDelegateCallable.sol\":{\"keccak256\":\"0xa335d4e81b9071b7de66ef92b43ff20671d86516eb1be46fef29a3483cd3f5d5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d464b9db863c14c05547d2b23352f2e9b7b784799cf09f6bbc4906a2a74e3516\",\"dweb:/ipfs/QmUVWzFvJz7eEbDQKiFTTzwi7TEbjcs3VmwdM4kuptAKvi\"]},\"src/interfaces/delegator/IBaseDelegator.sol\":{\"keccak256\":\"0x96bb312f032e17accce3f8f80936d99468029d6b37c9ca74acdb4b026a0148ee\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2a66dcb5b7d1a6ef6a363431ea98ebd78bc4fdd3d7a134d9b542dc66e7d025c2\",\"dweb:/ipfs/QmRhTPLd2ZAyRHmJUFUcWKs9b3if49QY17LYZuRqWmghw8\"]},\"src/interfaces/delegator/IDelegatorHook.sol\":{\"keccak256\":\"0xc51aa8d7d1f6c8043ee819b7aeb86da0e993912e1442098df897e299f01f9f46\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://adddf5cb2ba282aeb576b26efb28640f865a1721cc9b6eee8b3ee0457a2c9780\",\"dweb:/ipfs/QmNYgAmnLRwWZbhTuQhZs9rx4zcme1df5mEepkrniorSoW\"]},\"src/interfaces/delegator/IFullRestakeDelegator.sol\":{\"keccak256\":\"0xa3c8cb2e45d4d8ce90e95263bea40c01dc400f05ad65bc29597d878606be5e7d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://782cf5e201aa4cca037ebafd3807a68ff1cc721d5b8416a35244db0d0607369e\",\"dweb:/ipfs/QmQkJks6x7CKndeTPa9LxgTNygD5uEi7obhADhpq1Lsr9A\"]},\"src/interfaces/service/IOptInService.sol\":{\"keccak256\":\"0x76fb5460a6d87a5705433d4fbeff7253cd75b8bbd0c888b2088f16e86ace146a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://990322019b3d11465f7024bae77ccbf7e2fe5d6fa3c754584778f37d04fa1337\",\"dweb:/ipfs/QmaSNHzcqxTkUCG9a4nqVfLECHLdjdrwAnDi3yDC7tDL24\"]},\"src/interfaces/vault/IVault.sol\":{\"keccak256\":\"0xffee01d383cd4e1a5530c614bf4360c1ef070c288abec9da1eb531b51bc07235\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://04f0046cac285d8ec44ebbb1f79dc94fab4495767190cad8364fbc1fafaadfb9\",\"dweb:/ipfs/QmUawAunwzXfCyShWfhKeThAgKtqe51hmrxvrXvM772M2R\"]},\"src/interfaces/vault/IVaultStorage.sol\":{\"keccak256\":\"0x592626f13754194f83047135de19229c49390bd59e34659b1bb38be71d973a22\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://06a6a9dfddd05e580b32bebe2cff4f63ba26a653180676d58225dd30d9c89d3e\",\"dweb:/ipfs/QmdgzBeY6Sxo8mGtyBxtv1tM1c2kU6J6zjeRd7vuXm4DU6\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.25+commit.b61c2a91"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"networkRegistry","type":"address"},{"internalType":"address","name":"vaultFactory","type":"address"},{"internalType":"address","name":"operatorVaultOptInService","type":"address"},{"internalType":"address","name":"operatorNetworkOptInService","type":"address"},{"internalType":"address","name":"delegatorFactory","type":"address"},{"internalType":"uint64","name":"entityType","type":"uint64"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"AccessControlBadConfirmation"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bytes32","name":"neededRole","type":"bytes32"}],"type":"error","name":"AccessControlUnauthorizedAccount"},{"inputs":[],"type":"error","name":"AlreadySet"},{"inputs":[],"type":"error","name":"CheckpointUnorderedInsertion"},{"inputs":[],"type":"error","name":"DuplicateRoleHolder"},{"inputs":[],"type":"error","name":"ExceedsMaxNetworkLimit"},{"inputs":[],"type":"error","name":"InsufficientHookGas"},{"inputs":[],"type":"error","name":"InvalidInitialization"},{"inputs":[],"type":"error","name":"MissingRoleHolders"},{"inputs":[],"type":"error","name":"NotInitialized"},{"inputs":[],"type":"error","name":"NotInitializing"},{"inputs":[],"type":"error","name":"NotNetwork"},{"inputs":[],"type":"error","name":"NotSlasher"},{"inputs":[],"type":"error","name":"NotVault"},{"inputs":[],"type":"error","name":"ReentrancyGuardReentrantCall"},{"inputs":[{"internalType":"uint8","name":"bits","type":"uint8"},{"internalType":"uint256","name":"value","type":"uint256"}],"type":"error","name":"SafeCastOverflowedUintDowncast"},{"inputs":[],"type":"error","name":"ZeroAddressRoleHolder"},{"inputs":[{"internalType":"uint64","name":"version","type":"uint64","indexed":false}],"type":"event","name":"Initialized","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32","indexed":true},{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false},{"internalType":"uint48","name":"captureTimestamp","type":"uint48","indexed":false}],"type":"event","name":"OnSlash","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"bytes32","name":"previousAdminRole","type":"bytes32","indexed":true},{"internalType":"bytes32","name":"newAdminRole","type":"bytes32","indexed":true}],"type":"event","name":"RoleAdminChanged","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"address","name":"sender","type":"address","indexed":true}],"type":"event","name":"RoleGranted","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"address","name":"sender","type":"address","indexed":true}],"type":"event","name":"RoleRevoked","anonymous":false},{"inputs":[{"internalType":"address","name":"hook","type":"address","indexed":true}],"type":"event","name":"SetHook","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"SetMaxNetworkLimit","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"SetNetworkLimit","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32","indexed":true},{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"SetOperatorNetworkLimit","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"DEFAULT_ADMIN_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"FACTORY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"HOOK_GAS_LIMIT","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"HOOK_RESERVE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"HOOK_SET_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"NETWORK_LIMIT_SET_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"NETWORK_REGISTRY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"OPERATOR_NETWORK_LIMIT_SET_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"OPERATOR_NETWORK_OPT_IN_SERVICE","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"OPERATOR_VAULT_OPT_IN_SERVICE","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"TYPE","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"VAULT_FACTORY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"VERSION","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getRoleAdmin","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"grantRole"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"hasRole","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"hook","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"}],"stateMutability":"view","type":"function","name":"maxNetworkLimit","outputs":[{"internalType":"uint256","name":"value","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"}],"stateMutability":"view","type":"function","name":"networkLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"uint48","name":"timestamp","type":"uint48"},{"internalType":"bytes","name":"hint","type":"bytes"}],"stateMutability":"view","type":"function","name":"networkLimitAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint48","name":"captureTimestamp","type":"uint48"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"onSlash"},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"operatorNetworkLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint48","name":"timestamp","type":"uint48"},{"internalType":"bytes","name":"hint","type":"bytes"}],"stateMutability":"view","type":"function","name":"operatorNetworkLimitAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"callerConfirmation","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"renounceRole"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"revokeRole"},{"inputs":[{"internalType":"address","name":"hook_","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setHook"},{"inputs":[{"internalType":"uint96","name":"identifier","type":"uint96"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setMaxNetworkLimit"},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setNetworkLimit"},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setOperatorNetworkLimit"},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"stake","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint48","name":"timestamp","type":"uint48"},{"internalType":"bytes","name":"hints","type":"bytes"}],"stateMutability":"view","type":"function","name":"stakeAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"staticDelegateCall"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"vault","outputs":[{"internalType":"address","name":"","type":"address"}]}],"devdoc":{"kind":"dev","methods":{"VERSION()":{"details":"Must return 1 for this one.","returns":{"_0":"version of the delegator"}},"getRoleAdmin(bytes32)":{"details":"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}."},"grantRole(bytes32,address)":{"details":"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event."},"hasRole(bytes32,address)":{"details":"Returns `true` if `account` has been granted `role`."},"initialize(bytes)":{"params":{"data":"some data to use"}},"networkLimit(bytes32)":{"params":{"subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"},"returns":{"_0":"limit of the subnetwork"}},"networkLimitAt(bytes32,uint48,bytes)":{"params":{"hint":"hint for checkpoint index","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)","timestamp":"time point to get the subnetwork limit at"},"returns":{"_0":"limit of the subnetwork at the given timestamp"}},"onSlash(bytes32,address,uint256,uint48,bytes)":{"details":"Only the vault's slasher can call this function.","params":{"amount":"amount of the collateral slashed","captureTimestamp":"time point when the stake was captured","data":"some additional data","operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"}},"operatorNetworkLimit(bytes32,address)":{"params":{"operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"},"returns":{"_0":"limit of the operator for the subnetwork"}},"operatorNetworkLimitAt(bytes32,address,uint48,bytes)":{"params":{"hint":"hint for checkpoint index","operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)","timestamp":"time point to get the operator's limit for the subnetwork at"},"returns":{"_0":"limit of the operator for the subnetwork at the given timestamp"}},"renounceRole(bytes32,address)":{"details":"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `callerConfirmation`. May emit a {RoleRevoked} event."},"revokeRole(bytes32,address)":{"details":"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event."},"setHook(address)":{"details":"Only a HOOK_SET_ROLE holder can call this function. The hook can have arbitrary logic under certain functions, however, it doesn't affect the stake guarantees.","params":{"hook":"address of the hook"}},"setMaxNetworkLimit(uint96,uint256)":{"details":"Only a network can call this function.","params":{"amount":"new maximum subnetwork's limit"}},"setNetworkLimit(bytes32,uint256)":{"details":"Only a NETWORK_LIMIT_SET_ROLE holder can call this function.","params":{"amount":"new limit of the subnetwork","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"}},"setOperatorNetworkLimit(bytes32,address,uint256)":{"details":"Only an OPERATOR_NETWORK_LIMIT_SET_ROLE holder can call this function.","params":{"amount":"new limit of the operator for the subnetwork","operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"}},"stake(bytes32,address)":{"details":"Warning: this function is not safe to use for stake capturing, as it can change by the end of the block.","params":{"operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"},"returns":{"_0":"slashable stake until the end of the next epoch"}},"stakeAt(bytes32,address,uint48,bytes)":{"details":"Warning: it is not safe to use timestamp >= current one for the stake capturing, as it can change later.","params":{"hints":"hints for the checkpoints' indexes","operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)","timestamp":"time point to capture the stake at"},"returns":{"_0":"slashable stake at the given timestamp until the end of the consequent epoch"}},"staticDelegateCall(address,bytes)":{"details":"It allows to use this contract's storage on-chain.","params":{"data":"data to make a delegatecall with","target":"address of the contract to make a delegatecall to"}},"supportsInterface(bytes4)":{"details":"See {IERC165-supportsInterface}."}},"version":1},"userdoc":{"kind":"user","methods":{"FACTORY()":{"notice":"Get the factory's address."},"HOOK_GAS_LIMIT()":{"notice":"Get a gas limit for the hook."},"HOOK_RESERVE()":{"notice":"Get a reserve gas between the gas limit check and the hook's execution."},"HOOK_SET_ROLE()":{"notice":"Get a hook setter's role."},"NETWORK_LIMIT_SET_ROLE()":{"notice":"Get a subnetwork limit setter's role."},"NETWORK_REGISTRY()":{"notice":"Get the network registry's address."},"OPERATOR_NETWORK_LIMIT_SET_ROLE()":{"notice":"Get an operator-subnetwork limit setter's role."},"OPERATOR_NETWORK_OPT_IN_SERVICE()":{"notice":"Get the operator-network opt-in service's address."},"OPERATOR_VAULT_OPT_IN_SERVICE()":{"notice":"Get the operator-vault opt-in service's address."},"TYPE()":{"notice":"Get the entity's type."},"VAULT_FACTORY()":{"notice":"Get the vault factory's address."},"VERSION()":{"notice":"Get a version of the delegator (different versions mean different interfaces)."},"hook()":{"notice":"Get the hook's address."},"initialize(bytes)":{"notice":"Initialize this entity contract by using a given data."},"maxNetworkLimit(bytes32)":{"notice":"Get a particular subnetwork's maximum limit (meaning the subnetwork is not ready to get more as a stake)."},"networkLimit(bytes32)":{"notice":"Get a subnetwork's limit (how much stake the vault curator is ready to give to the subnetwork)."},"networkLimitAt(bytes32,uint48,bytes)":{"notice":"Get a subnetwork's limit at a given timestamp using a hint (how much stake the vault curator is ready to give to the subnetwork)."},"onSlash(bytes32,address,uint256,uint48,bytes)":{"notice":"Called when a slash happens."},"operatorNetworkLimit(bytes32,address)":{"notice":"Get an operator's limit for a subnetwork. (how much stake the vault curator is ready to give to the operator for the subnetwork)"},"operatorNetworkLimitAt(bytes32,address,uint48,bytes)":{"notice":"Get an operator's limit for a subnetwork at a given timestamp using a hint (how much stake the vault curator is ready to give to the operator for the subnetwork)."},"setHook(address)":{"notice":"Set a new hook."},"setMaxNetworkLimit(uint96,uint256)":{"notice":"Set a maximum limit for a subnetwork (how much stake the subnetwork is ready to get). identifier identifier of the subnetwork"},"setNetworkLimit(bytes32,uint256)":{"notice":"Set a subnetwork's limit (how much stake the vault curator is ready to give to the subnetwork)."},"setOperatorNetworkLimit(bytes32,address,uint256)":{"notice":"Set an operator's limit for a subnetwork. (how much stake the vault curator is ready to give to the operator for the subnetwork)"},"stake(bytes32,address)":{"notice":"Get a stake that a given subnetwork will be able to slash for a certain operator until the end of the next epoch (if no cross-slashing and no slashings by the subnetwork)."},"stakeAt(bytes32,address,uint48,bytes)":{"notice":"Get a stake that a given subnetwork could be able to slash for a certain operator at a given timestamp until the end of the consequent epoch using hints (if no cross-slashing and no slashings by the subnetwork)."},"staticDelegateCall(address,bytes)":{"notice":"Make a delegatecall from this contract to a given target contract with a particular data (always reverts with a return data)."},"vault()":{"notice":"Get the vault's address."}},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/contracts/delegator/FullRestakeDelegator.sol":"FullRestakeDelegator"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol":{"keccak256":"0x6662ec4e5cefca03eeadd073e9469df8d2944bb2ee8ec8f7622c2c46aab5f225","urls":["bzz-raw://4d8544c6f8daa4d1bc215c6a72fe0acdb748664a105b0e5efc19295667521d45","dweb:/ipfs/QmdGWqdnXT8S3RgCR6aV8XHZrsybieMQLLnug1NtpSjEXN"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b","urls":["bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609","dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol":{"keccak256":"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397","urls":["bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9","dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardUpgradeable.sol":{"keccak256":"0xb44e086e941292cdc7f440de51478493894ef0b1aeccb0c4047445919f667f74","urls":["bzz-raw://942dad22fbdc1669f025540ba63aa3ccfad5f8458fc5d4525b31ebf272e7af45","dweb:/ipfs/Qmdo4X2M82aM3AMoW2kf2jhYkSCyC4T1pHNd6obdsDFnAB"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol":{"keccak256":"0xdaba3f7c42c55b2896353f32bd27d4d5f8bae741b3b05d4c53f67abc4dc47ce8","urls":["bzz-raw://1fa2e61141c602510bcd2cd936ed9561922ac8772a9b9c9a9db091a74e354a45","dweb:/ipfs/QmcHQDDoEBwJmwUbzoVkytvJsBx3KVHYFFnDkvRGWh9Wmh"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol":{"keccak256":"0xb6b36edd6a2999fd243ff226d6cbf84bd71af2432bbd0dfe19392996a1d9cb41","urls":["bzz-raw://1fd2f35495652e57e3f99bc6c510bc5f7dd398a176ea2e72d8ed730aebc6ca26","dweb:/ipfs/QmTQV6X4gkikTib49cho5iDX3JvSQbdsoEChoDwrk3CbbH"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b","urls":["bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df","dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d","urls":["bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875","dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol":{"keccak256":"0xe19a4d5f31d2861e7344e8e535e2feafb913d806d3e2b5fe7782741a2a7094fe","urls":["bzz-raw://4aed79c0fa6f0546ed02f2f683e8f77f0fd2ed7eb34d8bbf3d373c9a6d95b13c","dweb:/ipfs/QmWqVz6UAVqmnWU5pqYPt1o6iDEZyPaBraAA3rKfTTSfYj"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/Checkpoints.sol":{"keccak256":"0xbdc5e074d7dd6678f67e92b1a51a20226801a407b0e1af3da367c5d1ff4519ad","urls":["bzz-raw://a36cca6b22fff3db16fc789ff6c60eea71d4b156065d4d0c83a0bc5e91a77a8b","dweb:/ipfs/QmYN3exd5AemxjBrN8XMB1p5LbbE16uC3sjbYjwi8AjcGR"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/types/Time.sol":{"keccak256":"0xc7755af115020049e4140f224f9ee88d7e1799ffb0646f37bf0df24bf6213f58","urls":["bzz-raw://7f09bf94d5274334ec021f61a04659db303f31e60460e14b709c9bf187740111","dweb:/ipfs/QmNvgomZYUwFAt4cZbPWAiTeSZQreGehY9BK5xyVJsUttb"],"license":"MIT"},"src/contracts/common/Entity.sol":{"keccak256":"0x3d61a932995b8443381f3950542d388223a2c26dd5d29a3274dea3baa7388bd7","urls":["bzz-raw://7cdf5f03ca72fd263fd32ff59c8d88ddca911ae83896a287d10772c1bbe9b138","dweb:/ipfs/QmbP84r5BWT1Rn9AYTntWSf3xUMTTCohTZJFhbBhDXFoHa"],"license":"BUSL-1.1"},"src/contracts/common/StaticDelegateCallable.sol":{"keccak256":"0x350029aa8955eacaffffaeb58babc5c98e80ebc5c5db388ed17ee6465f4a9d90","urls":["bzz-raw://eb392a8ee9050e0af606897df63e3404e3829e8b688b580663892f9664195764","dweb:/ipfs/QmaXC8jqV8UrrAFkzXTEv2fJF56sy33HhLxAzaRZmUxuXD"],"license":"BUSL-1.1"},"src/contracts/delegator/BaseDelegator.sol":{"keccak256":"0x7c54d491fdd4415b764a9c8defa068e56d4c0c8c9419be0053a1d377669290e8","urls":["bzz-raw://9238bfbad0f6eeb0dc7727724de14380f1980b395902269703d5e2ef07e52e10","dweb:/ipfs/QmPJn1V4HNXcEghYvogGuSTF24dSQUPosR5qtsXcmNqRm3"],"license":"BUSL-1.1"},"src/contracts/delegator/FullRestakeDelegator.sol":{"keccak256":"0x0a81c4f8e72914563a9cb771e93acf889c71ea36b7bec040e4eb562b199d5af1","urls":["bzz-raw://6fc66b6ba02da77046a0bbbd1dd407a62c08f52e04486c9cbd2cb1cca3da555f","dweb:/ipfs/QmZQivK1ZnMxfRQQ5aLpV9co5u55wQVNev5Rg1hzAqxhkE"],"license":"BUSL-1.1"},"src/contracts/libraries/Checkpoints.sol":{"keccak256":"0xba90097c8bfe0a975499428b5f8ac5569483c7d92ccc28c12d70de416aae040c","urls":["bzz-raw://12f5d93ca94cd06d3147db68993165a58e17903ed53682560de61f3085ad4609","dweb:/ipfs/QmePiuAqvXprMLmFZkGZeGjvGPAvsEDHfCDv7BoQhXu9xE"],"license":"MIT"},"src/contracts/libraries/Subnetwork.sol":{"keccak256":"0xf5ef5506fd66082b3c2e7f3df37529f5a8efad32ac62e7c8914bd63219190bfe","urls":["bzz-raw://ba031a54ee0d0e9a270c2b9e18437f5668cfeb659cfd5fe0677459d7fcac2a56","dweb:/ipfs/QmReP3H7qQ78tAfgLnJKsNEQNCQfF1X1Get38Ffd4kzq32"],"license":"MIT"},"src/interfaces/common/IEntity.sol":{"keccak256":"0x8ef4b63d6da63489778ccd5f8d13ebdd527dd4b62730b2c616df5af7474d2d21","urls":["bzz-raw://5a8d69576a9219d85c50816a18ad53a4d53cfcb27ed38b8cccc808dc2734b71b","dweb:/ipfs/QmYVN3P4Q4REvBWJ97TbAcaxm3uyB2anV6NSGa6ZtSwcEv"],"license":"MIT"},"src/interfaces/common/IMigratableEntity.sol":{"keccak256":"0x8f5f2809f3afbe8ebfbb365dd7b57b4dd3b6f9943a6187eaf648d45895b8e3c4","urls":["bzz-raw://0ffe640537d539e7a4fde70d30d3e4c57f4ba9c2c25c450cea713aae38e8fd5c","dweb:/ipfs/QmSUTGzvdcn1R1KB7tLThMRtESsfPbeXDhhhKWGtntzBds"],"license":"MIT"},"src/interfaces/common/IRegistry.sol":{"keccak256":"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb","urls":["bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014","dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK"],"license":"MIT"},"src/interfaces/common/IStaticDelegateCallable.sol":{"keccak256":"0xa335d4e81b9071b7de66ef92b43ff20671d86516eb1be46fef29a3483cd3f5d5","urls":["bzz-raw://d464b9db863c14c05547d2b23352f2e9b7b784799cf09f6bbc4906a2a74e3516","dweb:/ipfs/QmUVWzFvJz7eEbDQKiFTTzwi7TEbjcs3VmwdM4kuptAKvi"],"license":"MIT"},"src/interfaces/delegator/IBaseDelegator.sol":{"keccak256":"0x96bb312f032e17accce3f8f80936d99468029d6b37c9ca74acdb4b026a0148ee","urls":["bzz-raw://2a66dcb5b7d1a6ef6a363431ea98ebd78bc4fdd3d7a134d9b542dc66e7d025c2","dweb:/ipfs/QmRhTPLd2ZAyRHmJUFUcWKs9b3if49QY17LYZuRqWmghw8"],"license":"MIT"},"src/interfaces/delegator/IDelegatorHook.sol":{"keccak256":"0xc51aa8d7d1f6c8043ee819b7aeb86da0e993912e1442098df897e299f01f9f46","urls":["bzz-raw://adddf5cb2ba282aeb576b26efb28640f865a1721cc9b6eee8b3ee0457a2c9780","dweb:/ipfs/QmNYgAmnLRwWZbhTuQhZs9rx4zcme1df5mEepkrniorSoW"],"license":"MIT"},"src/interfaces/delegator/IFullRestakeDelegator.sol":{"keccak256":"0xa3c8cb2e45d4d8ce90e95263bea40c01dc400f05ad65bc29597d878606be5e7d","urls":["bzz-raw://782cf5e201aa4cca037ebafd3807a68ff1cc721d5b8416a35244db0d0607369e","dweb:/ipfs/QmQkJks6x7CKndeTPa9LxgTNygD5uEi7obhADhpq1Lsr9A"],"license":"MIT"},"src/interfaces/service/IOptInService.sol":{"keccak256":"0x76fb5460a6d87a5705433d4fbeff7253cd75b8bbd0c888b2088f16e86ace146a","urls":["bzz-raw://990322019b3d11465f7024bae77ccbf7e2fe5d6fa3c754584778f37d04fa1337","dweb:/ipfs/QmaSNHzcqxTkUCG9a4nqVfLECHLdjdrwAnDi3yDC7tDL24"],"license":"MIT"},"src/interfaces/vault/IVault.sol":{"keccak256":"0xffee01d383cd4e1a5530c614bf4360c1ef070c288abec9da1eb531b51bc07235","urls":["bzz-raw://04f0046cac285d8ec44ebbb1f79dc94fab4495767190cad8364fbc1fafaadfb9","dweb:/ipfs/QmUawAunwzXfCyShWfhKeThAgKtqe51hmrxvrXvM772M2R"],"license":"MIT"},"src/interfaces/vault/IVaultStorage.sol":{"keccak256":"0x592626f13754194f83047135de19229c49390bd59e34659b1bb38be71d973a22","urls":["bzz-raw://06a6a9dfddd05e580b32bebe2cff4f63ba26a653180676d58225dd30d9c89d3e","dweb:/ipfs/QmdgzBeY6Sxo8mGtyBxtv1tM1c2kU6J6zjeRd7vuXm4DU6"],"license":"MIT"}},"version":1},"id":77} \ No newline at end of file +{"abi":[{"type":"constructor","inputs":[{"name":"networkRegistry","type":"address","internalType":"address"},{"name":"vaultFactory","type":"address","internalType":"address"},{"name":"operatorVaultOptInService","type":"address","internalType":"address"},{"name":"operatorNetworkOptInService","type":"address","internalType":"address"},{"name":"delegatorFactory","type":"address","internalType":"address"},{"name":"entityType","type":"uint64","internalType":"uint64"}],"stateMutability":"nonpayable"},{"type":"function","name":"DEFAULT_ADMIN_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"FACTORY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"HOOK_GAS_LIMIT","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"HOOK_RESERVE","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"HOOK_SET_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"NETWORK_LIMIT_SET_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"NETWORK_REGISTRY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"OPERATOR_NETWORK_LIMIT_SET_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"OPERATOR_NETWORK_OPT_IN_SERVICE","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"OPERATOR_VAULT_OPT_IN_SERVICE","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"TYPE","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"VAULT_FACTORY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"VERSION","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"pure"},{"type":"function","name":"getRoleAdmin","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"grantRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"hasRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"hook","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"initialize","inputs":[{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"maxNetworkLimit","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"value","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"networkLimit","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"networkLimitAt","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"timestamp","type":"uint48","internalType":"uint48"},{"name":"hint","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"onSlash","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"captureTimestamp","type":"uint48","internalType":"uint48"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"operatorNetworkLimit","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"operatorNetworkLimitAt","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"timestamp","type":"uint48","internalType":"uint48"},{"name":"hint","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"renounceRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"callerConfirmation","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"revokeRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setHook","inputs":[{"name":"hook_","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setMaxNetworkLimit","inputs":[{"name":"identifier","type":"uint96","internalType":"uint96"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setNetworkLimit","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setOperatorNetworkLimit","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"stake","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"stakeAt","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"timestamp","type":"uint48","internalType":"uint48"},{"name":"hints","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"staticDelegateCall","inputs":[{"name":"target","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"vault","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"OnSlash","inputs":[{"name":"subnetwork","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"captureTimestamp","type":"uint48","indexed":false,"internalType":"uint48"}],"anonymous":false},{"type":"event","name":"RoleAdminChanged","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"previousAdminRole","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"newAdminRole","type":"bytes32","indexed":true,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"RoleGranted","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"sender","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"RoleRevoked","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"sender","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"SetHook","inputs":[{"name":"hook","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"SetMaxNetworkLimit","inputs":[{"name":"subnetwork","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"SetNetworkLimit","inputs":[{"name":"subnetwork","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"SetOperatorNetworkLimit","inputs":[{"name":"subnetwork","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"error","name":"AccessControlBadConfirmation","inputs":[]},{"type":"error","name":"AccessControlUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"neededRole","type":"bytes32","internalType":"bytes32"}]},{"type":"error","name":"AlreadySet","inputs":[]},{"type":"error","name":"CheckpointUnorderedInsertion","inputs":[]},{"type":"error","name":"DuplicateRoleHolder","inputs":[]},{"type":"error","name":"ExceedsMaxNetworkLimit","inputs":[]},{"type":"error","name":"InsufficientHookGas","inputs":[]},{"type":"error","name":"InvalidInitialization","inputs":[]},{"type":"error","name":"MissingRoleHolders","inputs":[]},{"type":"error","name":"NotInitialized","inputs":[]},{"type":"error","name":"NotInitializing","inputs":[]},{"type":"error","name":"NotNetwork","inputs":[]},{"type":"error","name":"NotSlasher","inputs":[]},{"type":"error","name":"NotVault","inputs":[]},{"type":"error","name":"ReentrancyGuardReentrantCall","inputs":[]},{"type":"error","name":"SafeCastOverflowedUintDowncast","inputs":[{"name":"bits","type":"uint8","internalType":"uint8"},{"name":"value","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ZeroAddressRoleHolder","inputs":[]}],"bytecode":{"object":"0x610140346101a1576001600160401b0390601f612cbd38819003918201601f191683019190848311848410176101a5578160c092859260409586528339810103126101a15761004d826101b9565b610059602084016101b9565b906100658385016101b9565b94610072606086016101b9565b9460a0610081608083016101b9565b9101519180831683036101a1577ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a009081549060ff82891c1661019057808083160361014c575b50505060805260a05260c05260e0526101009283526101209182525190612aef92836101ce84396080518361072a015260a05183610eb8015260c0518381816105bb0152610ef1015260e0518381816104620152611d990152518281816104f5015281816114c001526116040152518181816105390152818161142701526116820152f35b6001600160401b0319909116811790915585519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a15f80806100c7565b875163f92ee8a960e01b8152600490fd5b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b51906001600160a01b03821682036101a15756fe60806040526004361015610011575f80fd5b5f3560e01c806301ffc9a714610244578063020cf0c21461023f578063021453481461023a578063103f2907146102355780631142209514610230578063128e5d821461022b5780631a80e5001461022657806323f752d514610221578063248a9ca31461021c5780632dd31000146102175780632f2ff15d1461021257806336568abe1461020d5780633dfd3873146102085780633eb22c0f14610203578063439fab91146101fe578063518504ba146101f9578063557cab44146101f45780635d32a1c9146101ef5780636679191e146101ea5780637d24bb27146101e55780637f5a7c7b146101e057806391d14854146101db57806394d2558a146101d65780639f86fd85146101d1578063a217fddf146101cc578063bb24fe8a146101c7578063c0cd7c3e146101c2578063d15b740e146101bd578063d547741f146101b8578063e02f6937146101b3578063e49561ee146101ae578063fbfa77cf146101a9578063fd4d447c146101a4578063ff54740f1461019f5763ffa1ad741461019a575f80fd5b61120b565b6111ee565b6111c4565b61119d565b610fb2565b610f96565b610f4a565b610f20565b610edc565b610e99565b610e7f565b610dc5565b610d87565b610cd7565b610caf565b610c76565b610c3c565b610be1565b610ab1565b610a77565b61093f565b6108e9565b6107f0565b6107a5565b610759565b610715565b6106dc565b610568565b610524565b6104e0565b610491565b61044d565b610390565b6102af565b3461029a57602036600319011261029a5760043563ffffffff60e01b811680910361029a57602090637965db0b60e01b8114908115610289575b506040519015158152f35b6301ffc9a760e01b1490505f61027e565b5f80fd5b6001600160a01b0381160361029a57565b3461029a57606036600319011261029a576024356004356102cf8261029e565b604435916102db6116f7565b815f526004602052826103096103048360405f209060018060a01b03165f5260205260405f2090565b61190f565b1461037e5760207ffc9545f07ffadfb668efd0144cdcaf2d6e2c8192dce1ea9fc131934f9c90fc7e91835f52600482526103698561035a8360405f209060018060a01b03165f5260205260405f2090565b61036342612254565b9061184d565b50506040519485526001600160a01b031693a3005b60405163a741a04560e01b8152600490fd5b3461029a5760408060031936011261029a5760043590602435906103b2611754565b825f526002602052805f2054821161043d57825f526003602052816103d8825f2061190f565b1461042d5781610428916104187e899d104fc3d8820bd96540612bcc5c448c8837b13b9f7faa43ad0728f0c14f9461035a875f52600360205260405f2090565b5050519081529081906020820190565b0390a2005b5163a741a04560e01b8152600490fd5b51631eefc06360e31b8152600490fd5b3461029a575f36600319011261029a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461029a57604036600319011261029a5760206104d86103046024356104b68161029e565b6004355f526004845260405f209060018060a01b03165f5260205260405f2090565b604051908152f35b3461029a575f36600319011261029a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461029a575f36600319011261029a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461029a57604036600319011261029a576004356001600160601b038116810361029a576024359061059861195c565b6040516302910f8b60e31b81523360048201526020816024816001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165afa9081156106d7575f916106a8575b5015610696576001600160601b03166bffffffffffffffffffffffff193360601b16179080610622835f52600260205260405f2090565b541461037e5761067b817fc67e7929681aa1bccd63f52b3799bf5805f3009f197db6fdf584b14f7fbf608c92610660855f52600260205260405f2090565b5561066b818561198b565b6040519081529081906020820190565b0390a261069460015f80516020612a7a83398151915255565b005b6040516323d53b9760e21b8152600490fd5b6106ca915060203d6020116106d0575b6106c28183610b31565b810190611226565b5f6105eb565b503d6106b8565b61123e565b3461029a57602036600319011261029a576004355f525f80516020612a5a8339815191526020526020600160405f200154604051908152f35b3461029a575f36600319011261029a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461029a57604036600319011261029a5761069460243560043561077c8261029e565b805f525f80516020612a5a8339815191526020526107a0600160405f2001546117aa565b611c66565b3461029a57604036600319011261029a576024356107c28161029e565b336001600160a01b038216036107de5761069490600435611c9c565b60405163334bd91960e11b8152600490fd5b3461029a57602036600319011261029a5760043561080d8161029e565b61081561195c565b335f9081527f9ebbcbe0d2961d3fbe56ca6f679bc753bd848d3e6bb3eaf9041c51b286881d2c60205260409020547fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c9060ff16156108cb57506001546001600160a01b03918216918116821461037e576001600160a01b03191681176001557f5bbb1d3ebb6a3ad2a0f17ff35e579a83af60604d1d3c2a4c83c62adecadf666d5f80a260015f80516020612a7a83398151915255005b6044906040519063e2517d3f60e01b82523360048301526024820152fd5b3461029a57602036600319011261029a576004355f52600360205260206104d860405f2061190f565b9181601f8401121561029a578235916001600160401b03831161029a576020838186019501011161029a57565b3461029a57602036600319011261029a576001600160401b0360043581811161029a57610970903690600401610912565b5f80516020612a9a833981519152549260ff8460401c1615931680159081610a6f575b6001149081610a65575b159081610a5c575b50610a4a575f80516020612a9a833981519152805467ffffffffffffffff191660011790556109d89183610a2657611d64565b6109de57005b5f80516020612a9a833981519152805460ff60401b19169055604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a1005b5f80516020612a9a833981519152805460ff60401b1916600160401b179055611d64565b60405163f92ee8a960e01b8152600490fd5b9050155f6109a5565b303b15915061099d565b849150610993565b3461029a575f36600319011261029a5760206040517f15e7c882d74e8821ebf34aaff46fd0e1d53b9393d91490019124113d28dc32a38152f35b3461029a575f36600319011261029a576020604051614e208152f35b6064359065ffffffffffff8216820361029a57565b634e487b7160e01b5f52604160045260245ffd5b604081019081106001600160401b03821117610b1157604052565b610ae2565b606081019081106001600160401b03821117610b1157604052565b90601f801991011681019081106001600160401b03821117610b1157604052565b60405190608082018281106001600160401b03821117610b1157604052565b60405190610b7e82610af6565b565b6001600160401b038111610b1157601f01601f191660200190565b81601f8201121561029a57803590610bb282610b80565b92610bc06040519485610b31565b8284526020838301011161029a57815f926020809301838601378301015290565b3461029a57606036600319011261029a5760243565ffffffffffff8116810361029a576044356001600160401b03811161029a57602091610c296104d8923690600401610b9b565b906004355f526003845260405f20611ed3565b3461029a575f36600319011261029a5760206040517fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c8152f35b3461029a575f36600319011261029a5760206040517e8b9b1e5fa9cf3b14f87f435649268146305ddf689f082e5961a335b07a9abf8152f35b3461029a575f36600319011261029a576001546040516001600160a01b039091168152602090f35b3461029a57604036600319011261029a57602060ff610d29602435610cfb8161029e565b6004355f525f80516020612a5a833981519152845260405f209060018060a01b03165f5260205260405f2090565b54166040519015158152f35b90608060031983011261029a5760043591602435610d528161029e565b9160443565ffffffffffff8116810361029a5791606435906001600160401b03821161029a57610d8491600401610b9b565b90565b3461029a5760206104d8610dc0610d9d36610d35565b939190925f526004865260405f209060018060a01b03165f5260205260405f2090565b611ed3565b3461029a5760408060031936011261029a57600435610de38161029e565b602435906001600160401b03821161029a575f8091610e09610e6d943690600401610912565b908187519283928337810184815203915af43d15610e7557610e5f3d610e2e81610b80565b90610e3b86519283610b31565b81523d5f602083013e5b84519485931515602085015280840152606083019061128b565b03601f198101835282610b31565b805190602001fd5b610e5f6060610e45565b3461029a575f36600319011261029a5760206040515f8152f35b3461029a575f36600319011261029a5760206040516001600160401b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461029a575f36600319011261029a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461029a57602036600319011261029a576004355f526002602052602060405f2054604051908152f35b3461029a57604036600319011261029a57610694602435600435610f6d8261029e565b805f525f80516020612a5a833981519152602052610f91600160405f2001546117aa565b611c9c565b3461029a5760206104d8610fa936610d35565b929190916113b1565b3461029a5760a036600319011261029a57602435600435610fd28261029e565b60443591610fde610acd565b90608435906001600160401b03821161029a5761100060049236908401610b9b565b61100861195c565b5f5460209061102d90611021906001600160a01b031681565b6001600160a01b031690565b60405163b134427160e01b815294859182905afa9283156106d7575f9361116c575b506001600160a01b03928316330361115a576001546001600160a01b03168381166110cf575b50506040805195865265ffffffffffff909316602086015216927f741a5de99085c0d660f3e4192217b0ffb0ea4e35a0480de48e857a4bc3ee36ed91819081015b0390a361069460015f80516020612a7a83398151915255565b909360405194611106866110f8602082019363724ab0f760e11b8552858c898d60248701611550565b03601f198101885287610b31565b62042e305a10611148575f6110b6938192827f741a5de99085c0d660f3e4192217b0ffb0ea4e35a0480de48e857a4bc3ee36ed9951926203d090f15093611075565b604051638072475160e01b8152600490fd5b60405163dabc4ad960e01b8152600490fd5b61118f91935060203d602011611196575b6111878183610b31565b81019061153b565b915f61104f565b503d61117d565b3461029a575f36600319011261029a575f546040516001600160a01b039091168152602090f35b3461029a57604036600319011261029a5760206104d86024356111e68161029e565b6004356115cd565b3461029a575f36600319011261029a5760206040516203d0908152f35b3461029a575f36600319011261029a57602060405160018152f35b9081602091031261029a5751801515810361029a5790565b6040513d5f823e3d90fd5b90610d8492915f52600360205260405f20611ed3565b5f9081526004602090815260408083206001600160a01b03909416835292905220610d84929190611ed3565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b604051906112bc82610af6565b60606020838281520152565b81601f8201121561029a578051906112df82610b80565b926112ed6040519485610b31565b8284526020838301011161029a57815f9260208093018386015e8301015290565b9060208282031261029a5781516001600160401b039283821161029a57019060408282031261029a576040519261134484610af6565b825181811161029a57826113599185016112c8565b8452602083015190811161029a5761137192016112c8565b602082015290565b6001600160a01b0391821681529116602082015265ffffffffffff9091166040820152608060608201819052610d849291019061128b565b926113c1909291928284866120b9565b9290936113cc6112af565b9380518061151f575b50508415938415611489575b84156113f8575b505050506113f35790565b505f90565b602080949550611423910151604051958694859463530e1d4360e01b865260601c9060048601611379565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa9081156106d7575f9161146a575b50155f8080806113e8565b611483915060203d6020116106d0576106c28183610b31565b5f61145f565b5f549094506001600160a01b03166020848651926114bc604051948593849363530e1d4360e01b85528960048601611379565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa9081156106d7575f91611500575b5015936113e1565b611519915060203d6020116106d0576106c28183610b31565b5f6114f8565b61153392955060208091830101910161130e565b925f806113d5565b9081602091031261029a5751610d848161029e565b919360a093610d84969565ffffffffffff938552600180871b031660208501526040840152166060820152816080820152019061128b565b634e487b7160e01b5f52601160045260245ffd5b81156115a6570490565b634e487b7160e01b5f52601260045260245ffd5b90600182018092116115c857565b611588565b5f546040516308834cb560e21b8082526001600160a01b0385811660048401529283166024830152929392602092909183816044817f000000000000000000000000000000000000000000000000000000000000000086165afa9081156106d7575f916116da575b5015918215611656575b5050905061165057610d84916121ae565b50505f90565b6040519081526001600160a01b0385166004820152606086901c602482015291508290829060449082907f0000000000000000000000000000000000000000000000000000000000000000165afa9182156106d7575f926116bd575b505015805f8061163f565b6116d39250803d106106d0576106c28183610b31565b5f806116b2565b6116f19150843d86116106d0576106c28183610b31565b5f611635565b335f9081527f24e48de785eeca8420b70f73d267a66970ccc187d459f2a4b53e74ed92a5ab86602052604090207f15e7c882d74e8821ebf34aaff46fd0e1d53b9393d91490019124113d28dc32a39060ff905b5416156108cb5750565b335f9081527f72a65082a5691803ab2b62c9bc729b34205ba1b183d950896526b2fd8714d0c7602052604090207e8b9b1e5fa9cf3b14f87f435649268146305ddf689f082e5961a335b07a9abf9060ff9061174a565b5f8181525f80516020612a5a83398151915260209081526040808320338452909152902060ff9061174a565b634e487b7160e01b5f52603260045260245ffd5b80548210156117ff575f5260205f2001905f90565b6117d6565b90815491600160401b831015610b115782611827916001610b7e950181556117ea565b90919082549060031b91821b915f19901b1916179055565b5f198101919082116115c857565b909291926001820190815480156118df575b508461186a846122aa565b5094909284549361187a8361190f565b96816118ca575b50156118a7575050505f1981019081116115c85761182785916118a3936117ea565b9190565b6118a39492936118c3926001600160d01b03909116919061277e565b5050611804565b65ffffffffffff83811691161490505f611881565b600160401b811015610b11578060016118fb92018455836117ea565b8154905f199060031b1b191690555f61185f565b80548061193e57505f5b6001600160d01b0381161561165057600161193492016117ea565b90549060031b1c90565b5f199080828101116115c857825f5260205f2001015460301c611919565b5f80516020612a7a83398151915260028154146119795760029055565b604051633ee5aeb560e01b8152600490fd5b90815f52600360205260405f20816119a2826122aa565b919390508315611a00576119c2916001600160d01b0316906001016117ea565b90549060031b1c5b826119f6575b50506119da575050565b6119f2915f52600360205260405f2061036342612254565b5050565b119050815f6119d0565b50505f6119ca565b6001600160a01b0381165f9081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d60205260409020545f80516020612a5a8339815191529060ff16611650575f808052602091825260408082206001600160a01b038516835290925220805460ff1916600117905533906001600160a01b03165f7f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d8180a4600190565b6001600160a01b0381165f9081527f9ebbcbe0d2961d3fbe56ca6f679bc753bd848d3e6bb3eaf9041c51b286881d2c602052604090207fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c905f80516020612a5a8339815191529060ff905b5416611b82575f828152602091825260408082206001600160a01b038616835290925220805460ff1916600117905533916001600160a01b0316907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d5f80a4600190565b5050505f90565b6001600160a01b0381165f9081527f72a65082a5691803ab2b62c9bc729b34205ba1b183d950896526b2fd8714d0c7602052604090207e8b9b1e5fa9cf3b14f87f435649268146305ddf689f082e5961a335b07a9abf905f80516020612a5a8339815191529060ff90611b1e565b6001600160a01b0381165f9081527f24e48de785eeca8420b70f73d267a66970ccc187d459f2a4b53e74ed92a5ab86602052604090207f15e7c882d74e8821ebf34aaff46fd0e1d53b9393d91490019124113d28dc32a3905f80516020612a5a8339815191529060ff90611b1e565b5f8181525f80516020612a5a833981519152602081815260408084206001600160a01b038716855290915290912060ff90611b1e565b5f8181525f80516020612a5a833981519152602081815260408084206001600160a01b03871685529091529091205460ff1615611b82575f828152602091825260408082206001600160a01b038616835290925220805460ff1916905533916001600160a01b0316907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b5f80a4600190565b91909160408184031261029a578035611d468161029e565b9260208201356001600160401b03811161029a57610d849201610b9b565b611d7091810190611d2e565b6040516302910f8b60e31b81526001600160a01b039283166004820181905291906020816024817f000000000000000000000000000000000000000000000000000000000000000088165afa9081156106d7575f91611e83575b5015611e7157611e05604091611e00611e4b94611de56122f9565b60018060a01b03166001600160601b0360a01b5f5416175f55565b612479565b6020810151600180546001600160a01b0319166001600160a01b0390921691909117905580516001600160a01b0316848116611e61575b5001516001600160a01b031690565b908116611e555750565b611e5e90611ab3565b50565b611e6a90611a08565b505f611e3c565b6040516362df054560e01b8152600490fd5b611e9c915060203d6020116106d0576106c28183610b31565b5f611dca565b9081602091031261029a575163ffffffff8116810361029a5790565b90600163ffffffff809316019182116115c857565b91805115611fac5780602080611eee93518301019101611ea2565b91611ef983826126a9565b92611f0a845165ffffffffffff1690565b9065ffffffffffff8085169216828114611fa05782119182611f40575b5050611f3757610d8492506125d9565b50506020015190565b909150611f4d835461183f565b63ffffffff831614918215611f66575b50505f80611f27565b611f98919250611f81611f7b611f8d92611ebe565b856126a9565b5165ffffffffffff1690565b65ffffffffffff1690565b115f80611f5d565b50505050506020015190565b50610d84916125d9565b60405190608082018281106001600160401b03821117610b1157604052606080838181528160208201528160408201520152565b9060208282031261029a5781516001600160401b039283821161029a57019060808282031261029a5761201b610b52565b92825181811161029a57826120319185016112c8565b8452602083015181811161029a578261204b9185016112c8565b6020850152604083015181811161029a57826120689185016112c8565b6040850152606083015190811161029a5761208392016112c8565b606082015290565b9081602091031261029a575190565b60409065ffffffffffff610d849493168152816020820152019061128b565b939190936120c5611fb6565b9380518061218e575b505061210f92939460206120ee6110216110215f5460018060a01b031690565b8188015190604051808098819463810da75d60e01b8352896004840161209a565b03915afa9182156106d757612150945f93612155575b5061214a9061214a939461213e60408a01518284611249565b9360608a01519261125f565b90612711565b915190565b61214a93509061217f61214a9260203d602011612187575b6121778183610b31565b81019061208b565b935090612125565b503d61216d565b61210f949550906020806121a6938301019101611fea565b93925f6120ce565b5f5460405163bd49c35f60e01b8152929190602090849060049082906001600160a01b03165afa9081156106d757610d84935f92612229575b5061214a61030461214a9394612208610304855f52600360205260405f2090565b935f52600460205260405f209060018060a01b03165f5260205260405f2090565b61214a925061030461224c61214a9260203d602011612187576121778183610b31565b9350506121e7565b65ffffffffffff90818111612267571690565b604490604051906306dfcc6560e41b8252603060048301526024820152fd5b9060405161229381610af6565b915465ffffffffffff8116835260301c6020830152565b8054806122bb5750505f905f905f90565b5f199080828101116115c8576122d8925f5260205f200101612286565b9065ffffffffffff82511691602060018060d01b0391015116906001929190565b612301612899565b612309612899565b60015f80516020612a7a83398151915255565b6040519061232982610b16565b5f6040838281528260208201520152565b81601f8201121561029a578051916020916001600160401b038411610b11578360051b906040519461236e85840187610b31565b8552838086019282010192831161029a578301905b828210612391575050505090565b838091835161239f8161029e565b815201910190612383565b9060208282031261029a5781516001600160401b039283821161029a5701908181039260a0841261029a576060604051946123e486610b16565b1261029a576040516123f581610b16565b83516124008161029e565b815260208401516124108161029e565b602082015260408401516124238161029e565b60408201528452606083015181811161029a578261244291850161233a565b6020850152608083015190811161029a5761245d920161233a565b604082015290565b80518210156117ff5760209160051b010190565b6124959061248561231c565b50602080825183010191016123aa565b8051519091906001600160a01b031615806125bf575b6125ad579060208101905f5b82518051821015612531576110216124d2836124df93612465565b516001600160a01b031690565b1561251f576125016124fd6124f86124d2848751612465565b611b89565b1590565b61250d576001016124b7565b604051635140fefd60e11b8152600490fd5b6040516323cda06760e01b8152600490fd5b506040925050818101905f5b825180518210156125a4576110216124d28361255893612465565b15612593576125766124fd6125716124d2848751612465565b611bf7565b6125825760010161253d565b8351635140fefd60e11b8152600490fd5b83516323cda06760e01b8152600490fd5b50509150505190565b6040516303501f5960e11b8152600490fd5b5060208201515115806124ab5750604082015151156124ab565b908154905f829160058411612643575b6125f49350846129fa565b8061261c57505f905b6001600160d01b0382161561165057610d8491600161193492016117ea565b61263661262b61263d9261183f565b835f5260205f200190565b5460301c90565b906125fd565b919261264e816128c7565b81039081116115c8576125f493855f5265ffffffffffff808360205f20015416908516105f1461267f5750916125e9565b92915061268b906115ba565b906125e9565b6040519061269e82610af6565b5f6020838281520152565b906126d26126cc6126f3926126bc612691565b506126c5612691565b50846117ea565b50612286565b91600165ffffffffffff845116936020828060d01b039101511691016117ea565b9054906040519261270384610af6565b835260031b1c602082015290565b908082101561271e575090565b905090565b8054600160401b811015610b1157612740916001820181556117ea565b61276b57815160209092015160301b65ffffffffffff191665ffffffffffff92909216919091179055565b634e487b7160e01b5f525f60045260245ffd5b8054929392919082156128705761279f61279a61262b8561183f565b612286565b906127b0825165ffffffffffff1690565b65ffffffffffff8481169116811061285e576118a39460209488926127de611f8d875165ffffffffffff1690565b036128265750612818926127f46127ff9261183f565b905f5260205f200190565b9065ffffffffffff82549181199060301b169116179055565b01516001600160d01b031690565b91505061285991612846612838610b71565b65ffffffffffff9093168352565b6001600160d01b03881682860152612723565b612818565b604051632520601d60e01b8152600490fd5b6128949250612880612838610b71565b6001600160d01b0385166020830152612723565b5f9190565b60ff5f80516020612a9a8339815191525460401c16156128b557565b604051631afcd79f60e31b8152600490fd5b80156113f3578061214a61299261298861297e61297461296a6129606129566001610d849a5f908b60801c806129ee575b508060401c806129e1575b508060201c806129d4575b508060101c806129c7575b508060081c806129ba575b508060041c806129ad575b508060021c806129a0575b50821c612999575b811c1b61294f818b61159c565b0160011c90565b61294f818a61159c565b61294f818961159c565b61294f818861159c565b61294f818761159c565b61294f818661159c565b61294f818561159c565b809261159c565b8101612942565b600291509101905f61293a565b600491509101905f61292f565b600891509101905f612924565b601091509101905f612919565b602091509101905f61290e565b604091509101905f612903565b9150506080905f6128f8565b91905b838210612a0a5750505090565b9091928083169080841860011c82018092116115c857845f5265ffffffffffff808360205f20015416908416105f14612a475750925b91906129fd565b939250612a53906115ba565b91612a4056fe02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268009b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a2646970667358221220dd919c92c5c4e9880f5a51cce7ea94075f9e1664049d05ef4b127cb5a770ab1464736f6c63430008190033","sourceMap":"536:5807:82:-:0;;;;-1:-1:-1;;;;;536:5807:82;;;;;;;;;;-1:-1:-1;;536:5807:82;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;8837:64:26;536:5807:82;;;;;;;;;7896:76:26;;536:5807:82;;;;7985:34:26;7981:146;;-1:-1:-1;525:17:74;;;536:5807:82;525:17:74;536:5807:82;552:12:74;536:5807:82;2360:34:81;2404:28;;2442:57;;;;2509:61;;;;536:5807:82;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2404:28:81;536:5807:82;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7981:146:26;-1:-1:-1;;;;;;536:5807:82;;;;;;;;;;;;;8087:29:26;;536:5807:82;;8087:29:26;7981:146;;;;;7896:76;536:5807:82;;-1:-1:-1;;;7938:23:26;;;;;536:5807:82;-1:-1:-1;536:5807:82;;;;;;-1:-1:-1;536:5807:82;;;;;-1:-1:-1;536:5807:82;;;;-1:-1:-1;;;;;536:5807:82;;;;;;:::o","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361015610011575f80fd5b5f3560e01c806301ffc9a714610244578063020cf0c21461023f578063021453481461023a578063103f2907146102355780631142209514610230578063128e5d821461022b5780631a80e5001461022657806323f752d514610221578063248a9ca31461021c5780632dd31000146102175780632f2ff15d1461021257806336568abe1461020d5780633dfd3873146102085780633eb22c0f14610203578063439fab91146101fe578063518504ba146101f9578063557cab44146101f45780635d32a1c9146101ef5780636679191e146101ea5780637d24bb27146101e55780637f5a7c7b146101e057806391d14854146101db57806394d2558a146101d65780639f86fd85146101d1578063a217fddf146101cc578063bb24fe8a146101c7578063c0cd7c3e146101c2578063d15b740e146101bd578063d547741f146101b8578063e02f6937146101b3578063e49561ee146101ae578063fbfa77cf146101a9578063fd4d447c146101a4578063ff54740f1461019f5763ffa1ad741461019a575f80fd5b61120b565b6111ee565b6111c4565b61119d565b610fb2565b610f96565b610f4a565b610f20565b610edc565b610e99565b610e7f565b610dc5565b610d87565b610cd7565b610caf565b610c76565b610c3c565b610be1565b610ab1565b610a77565b61093f565b6108e9565b6107f0565b6107a5565b610759565b610715565b6106dc565b610568565b610524565b6104e0565b610491565b61044d565b610390565b6102af565b3461029a57602036600319011261029a5760043563ffffffff60e01b811680910361029a57602090637965db0b60e01b8114908115610289575b506040519015158152f35b6301ffc9a760e01b1490505f61027e565b5f80fd5b6001600160a01b0381160361029a57565b3461029a57606036600319011261029a576024356004356102cf8261029e565b604435916102db6116f7565b815f526004602052826103096103048360405f209060018060a01b03165f5260205260405f2090565b61190f565b1461037e5760207ffc9545f07ffadfb668efd0144cdcaf2d6e2c8192dce1ea9fc131934f9c90fc7e91835f52600482526103698561035a8360405f209060018060a01b03165f5260205260405f2090565b61036342612254565b9061184d565b50506040519485526001600160a01b031693a3005b60405163a741a04560e01b8152600490fd5b3461029a5760408060031936011261029a5760043590602435906103b2611754565b825f526002602052805f2054821161043d57825f526003602052816103d8825f2061190f565b1461042d5781610428916104187e899d104fc3d8820bd96540612bcc5c448c8837b13b9f7faa43ad0728f0c14f9461035a875f52600360205260405f2090565b5050519081529081906020820190565b0390a2005b5163a741a04560e01b8152600490fd5b51631eefc06360e31b8152600490fd5b3461029a575f36600319011261029a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461029a57604036600319011261029a5760206104d86103046024356104b68161029e565b6004355f526004845260405f209060018060a01b03165f5260205260405f2090565b604051908152f35b3461029a575f36600319011261029a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461029a575f36600319011261029a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461029a57604036600319011261029a576004356001600160601b038116810361029a576024359061059861195c565b6040516302910f8b60e31b81523360048201526020816024816001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165afa9081156106d7575f916106a8575b5015610696576001600160601b03166bffffffffffffffffffffffff193360601b16179080610622835f52600260205260405f2090565b541461037e5761067b817fc67e7929681aa1bccd63f52b3799bf5805f3009f197db6fdf584b14f7fbf608c92610660855f52600260205260405f2090565b5561066b818561198b565b6040519081529081906020820190565b0390a261069460015f80516020612a7a83398151915255565b005b6040516323d53b9760e21b8152600490fd5b6106ca915060203d6020116106d0575b6106c28183610b31565b810190611226565b5f6105eb565b503d6106b8565b61123e565b3461029a57602036600319011261029a576004355f525f80516020612a5a8339815191526020526020600160405f200154604051908152f35b3461029a575f36600319011261029a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461029a57604036600319011261029a5761069460243560043561077c8261029e565b805f525f80516020612a5a8339815191526020526107a0600160405f2001546117aa565b611c66565b3461029a57604036600319011261029a576024356107c28161029e565b336001600160a01b038216036107de5761069490600435611c9c565b60405163334bd91960e11b8152600490fd5b3461029a57602036600319011261029a5760043561080d8161029e565b61081561195c565b335f9081527f9ebbcbe0d2961d3fbe56ca6f679bc753bd848d3e6bb3eaf9041c51b286881d2c60205260409020547fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c9060ff16156108cb57506001546001600160a01b03918216918116821461037e576001600160a01b03191681176001557f5bbb1d3ebb6a3ad2a0f17ff35e579a83af60604d1d3c2a4c83c62adecadf666d5f80a260015f80516020612a7a83398151915255005b6044906040519063e2517d3f60e01b82523360048301526024820152fd5b3461029a57602036600319011261029a576004355f52600360205260206104d860405f2061190f565b9181601f8401121561029a578235916001600160401b03831161029a576020838186019501011161029a57565b3461029a57602036600319011261029a576001600160401b0360043581811161029a57610970903690600401610912565b5f80516020612a9a833981519152549260ff8460401c1615931680159081610a6f575b6001149081610a65575b159081610a5c575b50610a4a575f80516020612a9a833981519152805467ffffffffffffffff191660011790556109d89183610a2657611d64565b6109de57005b5f80516020612a9a833981519152805460ff60401b19169055604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a1005b5f80516020612a9a833981519152805460ff60401b1916600160401b179055611d64565b60405163f92ee8a960e01b8152600490fd5b9050155f6109a5565b303b15915061099d565b849150610993565b3461029a575f36600319011261029a5760206040517f15e7c882d74e8821ebf34aaff46fd0e1d53b9393d91490019124113d28dc32a38152f35b3461029a575f36600319011261029a576020604051614e208152f35b6064359065ffffffffffff8216820361029a57565b634e487b7160e01b5f52604160045260245ffd5b604081019081106001600160401b03821117610b1157604052565b610ae2565b606081019081106001600160401b03821117610b1157604052565b90601f801991011681019081106001600160401b03821117610b1157604052565b60405190608082018281106001600160401b03821117610b1157604052565b60405190610b7e82610af6565b565b6001600160401b038111610b1157601f01601f191660200190565b81601f8201121561029a57803590610bb282610b80565b92610bc06040519485610b31565b8284526020838301011161029a57815f926020809301838601378301015290565b3461029a57606036600319011261029a5760243565ffffffffffff8116810361029a576044356001600160401b03811161029a57602091610c296104d8923690600401610b9b565b906004355f526003845260405f20611ed3565b3461029a575f36600319011261029a5760206040517fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c8152f35b3461029a575f36600319011261029a5760206040517e8b9b1e5fa9cf3b14f87f435649268146305ddf689f082e5961a335b07a9abf8152f35b3461029a575f36600319011261029a576001546040516001600160a01b039091168152602090f35b3461029a57604036600319011261029a57602060ff610d29602435610cfb8161029e565b6004355f525f80516020612a5a833981519152845260405f209060018060a01b03165f5260205260405f2090565b54166040519015158152f35b90608060031983011261029a5760043591602435610d528161029e565b9160443565ffffffffffff8116810361029a5791606435906001600160401b03821161029a57610d8491600401610b9b565b90565b3461029a5760206104d8610dc0610d9d36610d35565b939190925f526004865260405f209060018060a01b03165f5260205260405f2090565b611ed3565b3461029a5760408060031936011261029a57600435610de38161029e565b602435906001600160401b03821161029a575f8091610e09610e6d943690600401610912565b908187519283928337810184815203915af43d15610e7557610e5f3d610e2e81610b80565b90610e3b86519283610b31565b81523d5f602083013e5b84519485931515602085015280840152606083019061128b565b03601f198101835282610b31565b805190602001fd5b610e5f6060610e45565b3461029a575f36600319011261029a5760206040515f8152f35b3461029a575f36600319011261029a5760206040516001600160401b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461029a575f36600319011261029a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461029a57602036600319011261029a576004355f526002602052602060405f2054604051908152f35b3461029a57604036600319011261029a57610694602435600435610f6d8261029e565b805f525f80516020612a5a833981519152602052610f91600160405f2001546117aa565b611c9c565b3461029a5760206104d8610fa936610d35565b929190916113b1565b3461029a5760a036600319011261029a57602435600435610fd28261029e565b60443591610fde610acd565b90608435906001600160401b03821161029a5761100060049236908401610b9b565b61100861195c565b5f5460209061102d90611021906001600160a01b031681565b6001600160a01b031690565b60405163b134427160e01b815294859182905afa9283156106d7575f9361116c575b506001600160a01b03928316330361115a576001546001600160a01b03168381166110cf575b50506040805195865265ffffffffffff909316602086015216927f741a5de99085c0d660f3e4192217b0ffb0ea4e35a0480de48e857a4bc3ee36ed91819081015b0390a361069460015f80516020612a7a83398151915255565b909360405194611106866110f8602082019363724ab0f760e11b8552858c898d60248701611550565b03601f198101885287610b31565b62042e305a10611148575f6110b6938192827f741a5de99085c0d660f3e4192217b0ffb0ea4e35a0480de48e857a4bc3ee36ed9951926203d090f15093611075565b604051638072475160e01b8152600490fd5b60405163dabc4ad960e01b8152600490fd5b61118f91935060203d602011611196575b6111878183610b31565b81019061153b565b915f61104f565b503d61117d565b3461029a575f36600319011261029a575f546040516001600160a01b039091168152602090f35b3461029a57604036600319011261029a5760206104d86024356111e68161029e565b6004356115cd565b3461029a575f36600319011261029a5760206040516203d0908152f35b3461029a575f36600319011261029a57602060405160018152f35b9081602091031261029a5751801515810361029a5790565b6040513d5f823e3d90fd5b90610d8492915f52600360205260405f20611ed3565b5f9081526004602090815260408083206001600160a01b03909416835292905220610d84929190611ed3565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b604051906112bc82610af6565b60606020838281520152565b81601f8201121561029a578051906112df82610b80565b926112ed6040519485610b31565b8284526020838301011161029a57815f9260208093018386015e8301015290565b9060208282031261029a5781516001600160401b039283821161029a57019060408282031261029a576040519261134484610af6565b825181811161029a57826113599185016112c8565b8452602083015190811161029a5761137192016112c8565b602082015290565b6001600160a01b0391821681529116602082015265ffffffffffff9091166040820152608060608201819052610d849291019061128b565b926113c1909291928284866120b9565b9290936113cc6112af565b9380518061151f575b50508415938415611489575b84156113f8575b505050506113f35790565b505f90565b602080949550611423910151604051958694859463530e1d4360e01b865260601c9060048601611379565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa9081156106d7575f9161146a575b50155f8080806113e8565b611483915060203d6020116106d0576106c28183610b31565b5f61145f565b5f549094506001600160a01b03166020848651926114bc604051948593849363530e1d4360e01b85528960048601611379565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa9081156106d7575f91611500575b5015936113e1565b611519915060203d6020116106d0576106c28183610b31565b5f6114f8565b61153392955060208091830101910161130e565b925f806113d5565b9081602091031261029a5751610d848161029e565b919360a093610d84969565ffffffffffff938552600180871b031660208501526040840152166060820152816080820152019061128b565b634e487b7160e01b5f52601160045260245ffd5b81156115a6570490565b634e487b7160e01b5f52601260045260245ffd5b90600182018092116115c857565b611588565b5f546040516308834cb560e21b8082526001600160a01b0385811660048401529283166024830152929392602092909183816044817f000000000000000000000000000000000000000000000000000000000000000086165afa9081156106d7575f916116da575b5015918215611656575b5050905061165057610d84916121ae565b50505f90565b6040519081526001600160a01b0385166004820152606086901c602482015291508290829060449082907f0000000000000000000000000000000000000000000000000000000000000000165afa9182156106d7575f926116bd575b505015805f8061163f565b6116d39250803d106106d0576106c28183610b31565b5f806116b2565b6116f19150843d86116106d0576106c28183610b31565b5f611635565b335f9081527f24e48de785eeca8420b70f73d267a66970ccc187d459f2a4b53e74ed92a5ab86602052604090207f15e7c882d74e8821ebf34aaff46fd0e1d53b9393d91490019124113d28dc32a39060ff905b5416156108cb5750565b335f9081527f72a65082a5691803ab2b62c9bc729b34205ba1b183d950896526b2fd8714d0c7602052604090207e8b9b1e5fa9cf3b14f87f435649268146305ddf689f082e5961a335b07a9abf9060ff9061174a565b5f8181525f80516020612a5a83398151915260209081526040808320338452909152902060ff9061174a565b634e487b7160e01b5f52603260045260245ffd5b80548210156117ff575f5260205f2001905f90565b6117d6565b90815491600160401b831015610b115782611827916001610b7e950181556117ea565b90919082549060031b91821b915f19901b1916179055565b5f198101919082116115c857565b909291926001820190815480156118df575b508461186a846122aa565b5094909284549361187a8361190f565b96816118ca575b50156118a7575050505f1981019081116115c85761182785916118a3936117ea565b9190565b6118a39492936118c3926001600160d01b03909116919061277e565b5050611804565b65ffffffffffff83811691161490505f611881565b600160401b811015610b11578060016118fb92018455836117ea565b8154905f199060031b1b191690555f61185f565b80548061193e57505f5b6001600160d01b0381161561165057600161193492016117ea565b90549060031b1c90565b5f199080828101116115c857825f5260205f2001015460301c611919565b5f80516020612a7a83398151915260028154146119795760029055565b604051633ee5aeb560e01b8152600490fd5b90815f52600360205260405f20816119a2826122aa565b919390508315611a00576119c2916001600160d01b0316906001016117ea565b90549060031b1c5b826119f6575b50506119da575050565b6119f2915f52600360205260405f2061036342612254565b5050565b119050815f6119d0565b50505f6119ca565b6001600160a01b0381165f9081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d60205260409020545f80516020612a5a8339815191529060ff16611650575f808052602091825260408082206001600160a01b038516835290925220805460ff1916600117905533906001600160a01b03165f7f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d8180a4600190565b6001600160a01b0381165f9081527f9ebbcbe0d2961d3fbe56ca6f679bc753bd848d3e6bb3eaf9041c51b286881d2c602052604090207fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c905f80516020612a5a8339815191529060ff905b5416611b82575f828152602091825260408082206001600160a01b038616835290925220805460ff1916600117905533916001600160a01b0316907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d5f80a4600190565b5050505f90565b6001600160a01b0381165f9081527f72a65082a5691803ab2b62c9bc729b34205ba1b183d950896526b2fd8714d0c7602052604090207e8b9b1e5fa9cf3b14f87f435649268146305ddf689f082e5961a335b07a9abf905f80516020612a5a8339815191529060ff90611b1e565b6001600160a01b0381165f9081527f24e48de785eeca8420b70f73d267a66970ccc187d459f2a4b53e74ed92a5ab86602052604090207f15e7c882d74e8821ebf34aaff46fd0e1d53b9393d91490019124113d28dc32a3905f80516020612a5a8339815191529060ff90611b1e565b5f8181525f80516020612a5a833981519152602081815260408084206001600160a01b038716855290915290912060ff90611b1e565b5f8181525f80516020612a5a833981519152602081815260408084206001600160a01b03871685529091529091205460ff1615611b82575f828152602091825260408082206001600160a01b038616835290925220805460ff1916905533916001600160a01b0316907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b5f80a4600190565b91909160408184031261029a578035611d468161029e565b9260208201356001600160401b03811161029a57610d849201610b9b565b611d7091810190611d2e565b6040516302910f8b60e31b81526001600160a01b039283166004820181905291906020816024817f000000000000000000000000000000000000000000000000000000000000000088165afa9081156106d7575f91611e83575b5015611e7157611e05604091611e00611e4b94611de56122f9565b60018060a01b03166001600160601b0360a01b5f5416175f55565b612479565b6020810151600180546001600160a01b0319166001600160a01b0390921691909117905580516001600160a01b0316848116611e61575b5001516001600160a01b031690565b908116611e555750565b611e5e90611ab3565b50565b611e6a90611a08565b505f611e3c565b6040516362df054560e01b8152600490fd5b611e9c915060203d6020116106d0576106c28183610b31565b5f611dca565b9081602091031261029a575163ffffffff8116810361029a5790565b90600163ffffffff809316019182116115c857565b91805115611fac5780602080611eee93518301019101611ea2565b91611ef983826126a9565b92611f0a845165ffffffffffff1690565b9065ffffffffffff8085169216828114611fa05782119182611f40575b5050611f3757610d8492506125d9565b50506020015190565b909150611f4d835461183f565b63ffffffff831614918215611f66575b50505f80611f27565b611f98919250611f81611f7b611f8d92611ebe565b856126a9565b5165ffffffffffff1690565b65ffffffffffff1690565b115f80611f5d565b50505050506020015190565b50610d84916125d9565b60405190608082018281106001600160401b03821117610b1157604052606080838181528160208201528160408201520152565b9060208282031261029a5781516001600160401b039283821161029a57019060808282031261029a5761201b610b52565b92825181811161029a57826120319185016112c8565b8452602083015181811161029a578261204b9185016112c8565b6020850152604083015181811161029a57826120689185016112c8565b6040850152606083015190811161029a5761208392016112c8565b606082015290565b9081602091031261029a575190565b60409065ffffffffffff610d849493168152816020820152019061128b565b939190936120c5611fb6565b9380518061218e575b505061210f92939460206120ee6110216110215f5460018060a01b031690565b8188015190604051808098819463810da75d60e01b8352896004840161209a565b03915afa9182156106d757612150945f93612155575b5061214a9061214a939461213e60408a01518284611249565b9360608a01519261125f565b90612711565b915190565b61214a93509061217f61214a9260203d602011612187575b6121778183610b31565b81019061208b565b935090612125565b503d61216d565b61210f949550906020806121a6938301019101611fea565b93925f6120ce565b5f5460405163bd49c35f60e01b8152929190602090849060049082906001600160a01b03165afa9081156106d757610d84935f92612229575b5061214a61030461214a9394612208610304855f52600360205260405f2090565b935f52600460205260405f209060018060a01b03165f5260205260405f2090565b61214a925061030461224c61214a9260203d602011612187576121778183610b31565b9350506121e7565b65ffffffffffff90818111612267571690565b604490604051906306dfcc6560e41b8252603060048301526024820152fd5b9060405161229381610af6565b915465ffffffffffff8116835260301c6020830152565b8054806122bb5750505f905f905f90565b5f199080828101116115c8576122d8925f5260205f200101612286565b9065ffffffffffff82511691602060018060d01b0391015116906001929190565b612301612899565b612309612899565b60015f80516020612a7a83398151915255565b6040519061232982610b16565b5f6040838281528260208201520152565b81601f8201121561029a578051916020916001600160401b038411610b11578360051b906040519461236e85840187610b31565b8552838086019282010192831161029a578301905b828210612391575050505090565b838091835161239f8161029e565b815201910190612383565b9060208282031261029a5781516001600160401b039283821161029a5701908181039260a0841261029a576060604051946123e486610b16565b1261029a576040516123f581610b16565b83516124008161029e565b815260208401516124108161029e565b602082015260408401516124238161029e565b60408201528452606083015181811161029a578261244291850161233a565b6020850152608083015190811161029a5761245d920161233a565b604082015290565b80518210156117ff5760209160051b010190565b6124959061248561231c565b50602080825183010191016123aa565b8051519091906001600160a01b031615806125bf575b6125ad579060208101905f5b82518051821015612531576110216124d2836124df93612465565b516001600160a01b031690565b1561251f576125016124fd6124f86124d2848751612465565b611b89565b1590565b61250d576001016124b7565b604051635140fefd60e11b8152600490fd5b6040516323cda06760e01b8152600490fd5b506040925050818101905f5b825180518210156125a4576110216124d28361255893612465565b15612593576125766124fd6125716124d2848751612465565b611bf7565b6125825760010161253d565b8351635140fefd60e11b8152600490fd5b83516323cda06760e01b8152600490fd5b50509150505190565b6040516303501f5960e11b8152600490fd5b5060208201515115806124ab5750604082015151156124ab565b908154905f829160058411612643575b6125f49350846129fa565b8061261c57505f905b6001600160d01b0382161561165057610d8491600161193492016117ea565b61263661262b61263d9261183f565b835f5260205f200190565b5460301c90565b906125fd565b919261264e816128c7565b81039081116115c8576125f493855f5265ffffffffffff808360205f20015416908516105f1461267f5750916125e9565b92915061268b906115ba565b906125e9565b6040519061269e82610af6565b5f6020838281520152565b906126d26126cc6126f3926126bc612691565b506126c5612691565b50846117ea565b50612286565b91600165ffffffffffff845116936020828060d01b039101511691016117ea565b9054906040519261270384610af6565b835260031b1c602082015290565b908082101561271e575090565b905090565b8054600160401b811015610b1157612740916001820181556117ea565b61276b57815160209092015160301b65ffffffffffff191665ffffffffffff92909216919091179055565b634e487b7160e01b5f525f60045260245ffd5b8054929392919082156128705761279f61279a61262b8561183f565b612286565b906127b0825165ffffffffffff1690565b65ffffffffffff8481169116811061285e576118a39460209488926127de611f8d875165ffffffffffff1690565b036128265750612818926127f46127ff9261183f565b905f5260205f200190565b9065ffffffffffff82549181199060301b169116179055565b01516001600160d01b031690565b91505061285991612846612838610b71565b65ffffffffffff9093168352565b6001600160d01b03881682860152612723565b612818565b604051632520601d60e01b8152600490fd5b6128949250612880612838610b71565b6001600160d01b0385166020830152612723565b5f9190565b60ff5f80516020612a9a8339815191525460401c16156128b557565b604051631afcd79f60e31b8152600490fd5b80156113f3578061214a61299261298861297e61297461296a6129606129566001610d849a5f908b60801c806129ee575b508060401c806129e1575b508060201c806129d4575b508060101c806129c7575b508060081c806129ba575b508060041c806129ad575b508060021c806129a0575b50821c612999575b811c1b61294f818b61159c565b0160011c90565b61294f818a61159c565b61294f818961159c565b61294f818861159c565b61294f818761159c565b61294f818661159c565b61294f818561159c565b809261159c565b8101612942565b600291509101905f61293a565b600491509101905f61292f565b600891509101905f612924565b601091509101905f612919565b602091509101905f61290e565b604091509101905f612903565b9150506080905f6128f8565b91905b838210612a0a5750505090565b9091928083169080841860011c82018092116115c857845f5265ffffffffffff808360205f20015416908416105f14612a475750925b91906129fd565b939250612a53906115ba565b91612a4056fe02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268009b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a2646970667358221220dd919c92c5c4e9880f5a51cce7ea94075f9e1664049d05ef4b127cb5a770ab1464736f6c63430008190033","sourceMap":"536:5807:82:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;;;;;-1:-1:-1;;536:5807:82;;;;;;;;;;;;;;;;;;-1:-1:-1;;;3551:47:24;;;:87;;;;536:5807:82;;;;;;;;;;3551:87:24;-1:-1:-1;;;1133:40:30;;-1:-1:-1;3551:87:24;;;536:5807:82;-1:-1:-1;536:5807:82;;;-1:-1:-1;;;;;536:5807:82;;;;;:::o;:::-;;;;;;-1:-1:-1;;536:5807:82;;;;;;;;;;;:::i;:::-;;;3202:4:24;;;:::i;:::-;536:5807:82;-1:-1:-1;536:5807:82;;;;;2662:52;:43;536:5807;;-1:-1:-1;536:5807:82;;;;;;;;;;;;;;;;;2662:43;:52;:::i;:::-;3458;3454:102;;536:5807;3656:53;536:5807;;-1:-1:-1;536:5807:82;;;;3566:74;536:5807;3566:43;536:5807;;-1:-1:-1;536:5807:82;;;;;;;;;;;;;;;;;3566:43;819:34:63;837:15;819:34;:::i;:::-;3566:74:82;;:::i;:::-;-1:-1:-1;;536:5807:82;;;;;-1:-1:-1;;;;;536:5807:82;;3656:53;536:5807;3454:102;536:5807;;-1:-1:-1;;;3533:12:82;;536:5807;;3533:12;536:5807;;;;;;;;;;;;;;;;;;3202:4:24;;;:::i;:::-;536:5807:82;-1:-1:-1;536:5807:82;2910:15;536:5807;;;-1:-1:-1;536:5807:82;;2901:36;;2897:98;;536:5807;-1:-1:-1;536:5807:82;2103:13;536:5807;;;2103:34;536:5807;-1:-1:-1;536:5807:82;2103:34;:::i;:::-;3009;3005:84;;3099:25;3171:35;3099:25;:56;3171:35;3099:25;;;536:5807;;2103:13;536:5807;;;;;;;3099:56;-1:-1:-1;;536:5807:82;;;;;;;;;;;;3171:35;;;;536:5807;3005:84;536:5807;-1:-1:-1;;;3066:12:82;;536:5807;;3066:12;2897:98;536:5807;-1:-1:-1;;;2960:24:82;;536:5807;;2960:24;536:5807;;;;;;-1:-1:-1;;536:5807:82;;;;;;1537:38:81;-1:-1:-1;;;;;536:5807:82;;;;;;;;;;;;-1:-1:-1;;536:5807:82;;;;;2662:52;:43;536:5807;;;;;:::i;:::-;;;-1:-1:-1;536:5807:82;;;;;-1:-1:-1;536:5807:82;;;;;;;;;;;;;;;;;2662:52;536:5807;;;;;;;;;;;;-1:-1:-1;;536:5807:82;;;;;;1632:54:81;-1:-1:-1;;;;;536:5807:82;;;;;;;;;;;;-1:-1:-1;;536:5807:82;;;;;;1743:56:81;-1:-1:-1;;;;;536:5807:82;;;;;;;;;;;;-1:-1:-1;;536:5807:82;;;;;;-1:-1:-1;;;;;536:5807:82;;;;;;;;3217:103:29;;;:::i;:::-;536:5807:82;;-1:-1:-1;;;4285:48:81;;4322:10;536:5807:82;4285:48:81;;536:5807:82;;;;;-1:-1:-1;;;;;4295:16:81;536:5807:82;4285:48:81;;;;;;;-1:-1:-1;4285:48:81;;;536:5807:82;4284:49:81;;4280:99;;-1:-1:-1;;;;;536:5807:82;-1:-1:-1;;4322:10:81;297:2:93;536:5807:82;;267:46:93;4459:27:81;;;;536:5807:82;;4459:15:81;536:5807:82;;;;;;;4459:27:81;536:5807:82;4459:37:81;4455:87;;4654:38;4552:27;4654:38;4552:27;;;536:5807:82;;4459:15:81;536:5807:82;;;;;;;4552:27:81;536:5807:82;4631:6:81;;;;:::i;:::-;536:5807:82;;;;;;;;;;;;;4654:38:81;;;;3282:1:29;1805;-1:-1:-1;;;;;;;;;;;536:5807:82;3716:283:29;3282:1;536:5807:82;4280:99:81;536:5807:82;;-1:-1:-1;;;4356:12:81;;536:5807:82;;4356:12:81;4285:48;;;;536:5807:82;4285:48:81;536:5807:82;4285:48:81;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;:::i;536:5807:82:-;;;;;;-1:-1:-1;;536:5807:82;;;;;;-1:-1:-1;536:5807:82;-1:-1:-1;;;;;;;;;;;536:5807:82;;;4919:24:24;536:5807:82;-1:-1:-1;536:5807:82;4919:24:24;536:5807:82;;;;;;;;;;;;;-1:-1:-1;;536:5807:82;;;;;;322:32:74;-1:-1:-1;;;;;536:5807:82;;;;;;;;;;;;-1:-1:-1;;536:5807:82;;;;5350:25:24;536:5807:82;;;;;;;:::i;:::-;;-1:-1:-1;536:5807:82;-1:-1:-1;;;;;;;;;;;536:5807:82;;3202:4:24;4919:24;536:5807:82;-1:-1:-1;536:5807:82;4919:24:24;536:5807:82;3202:4:24;:::i;:::-;5350:25;:::i;536:5807:82:-;;;;;;-1:-1:-1;;536:5807:82;;;;;;;;;:::i;:::-;966:10:28;-1:-1:-1;;;;;536:5807:82;;6441:34:24;6437:102;;6549:37;536:5807:82;;;6549:37:24;:::i;6437:102::-;536:5807:82;;-1:-1:-1;;;6498:30:24;;536:5807:82;;6498:30:24;536:5807:82;;;;;;-1:-1:-1;;536:5807:82;;;;;;;;;:::i;:::-;3217:103:29;;:::i;:::-;966:10:28;-1:-1:-1;536:5807:82;;;;;;;;;;1356:26:81;;536:5807:82;;4468:23:24;4464:108;;-1:-1:-1;4861:4:81;536:5807:82;-1:-1:-1;;;;;536:5807:82;;;;;;4861:13:81;;4857:63;;-1:-1:-1;;;;;;536:5807:82;;;4861:4:81;536:5807:82;4958:14:81;-1:-1:-1;;4958:14:81;4861:4;-1:-1:-1;;;;;;;;;;;536:5807:82;;4464:108:24;536:5807:82;;;;4514:47:24;;;;;;966:10:28;536:5807:82;4514:47:24;;536:5807:82;;;;;4514:47:24;536:5807:82;;;;;;-1:-1:-1;;536:5807:82;;;;;;-1:-1:-1;536:5807:82;2103:13;536:5807;;;2103:34;536:5807;-1:-1:-1;536:5807:82;2103:34;:::i;536:5807::-;;;;;;;;;;;;;-1:-1:-1;;;;;536:5807:82;;;;;;;;;;;;;;;:::o;:::-;;;;;;-1:-1:-1;;536:5807:82;;;;-1:-1:-1;;;;;536:5807:82;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;536:5807:82;;;;;;;4301:16:26;536:5807:82;;4726:16:26;;:34;;;;536:5807:82;4805:1:26;4790:16;:50;;;;536:5807:82;4855:13:26;:30;;;;536:5807:82;4851:91:26;;;-1:-1:-1;;;;;;;;;;;536:5807:82;;-1:-1:-1;;536:5807:82;;;;;718:4:74;;4951:18:26;4979:67;;718:4:74;:::i;:::-;5066:101:26;;536:5807:82;5066:101:26;-1:-1:-1;;;;;;;;;;;536:5807:82;;-1:-1:-1;;;;536:5807:82;;;;;-1:-1:-1;536:5807:82;;5142:14:26;;536:5807:82;;5142:14:26;536:5807:82;4979:67:26;-1:-1:-1;;;;;;;;;;;536:5807:82;;-1:-1:-1;;;;536:5807:82;-1:-1:-1;;;536:5807:82;;;718:4:74;:::i;4851:91:26:-;536:5807:82;;-1:-1:-1;;;4908:23:26;;536:5807:82;;4908:23:26;4855:30;4872:13;;;4855:30;;;4790:50;4818:4;4810:25;:30;;-1:-1:-1;4790:50:26;;4726:34;;;-1:-1:-1;4726:34:26;;536:5807:82;;;;;;-1:-1:-1;;536:5807:82;;;;;;;952:44;536:5807;;;;;;;;;-1:-1:-1;;536:5807:82;;;;;;;1253:6:81;536:5807:82;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;536:5807:82;;;;;;;:::o;:::-;;:::i;:::-;;;;;;;-1:-1:-1;;;;;536:5807:82;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;536:5807:82;;;;;;;:::o;:::-;;;;;;;;;;-1:-1:-1;;;;;536:5807:82;;;;;;;:::o;:::-;;;;;;;:::i;:::-;:::o;:::-;-1:-1:-1;;;;;536:5807:82;;;;;;-1:-1:-1;;536:5807:82;;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;536:5807:82;;;;;;;;;;;;;;:::o;:::-;;;;;;-1:-1:-1;;536:5807:82;;;;;;;;;;;;;;;-1:-1:-1;;;;;536:5807:82;;;;;;;1870:60;536:5807;;;;;;:::i;:::-;;;;-1:-1:-1;536:5807:82;1870:13;536:5807;;;-1:-1:-1;536:5807:82;1870:60;:::i;536:5807::-;;;;;;-1:-1:-1;;536:5807:82;;;;;;;1356:26:81;536:5807:82;;;;;;;;;-1:-1:-1;;536:5807:82;;;;;;;795:35;536:5807;;;;;;;;;-1:-1:-1;;536:5807:82;;;;;;;;-1:-1:-1;;;;;536:5807:82;;;;;;;;;;;;;;-1:-1:-1;;536:5807:82;;;;;;3901:31:24;536:5807:82;;;;;:::i;:::-;;;-1:-1:-1;536:5807:82;-1:-1:-1;;;;;;;;;;;536:5807:82;;;-1:-1:-1;536:5807:82;;;;;;;;;;;;;;;;;3901:31:24;536:5807:82;;;;;;;;;;;;;-1:-1:-1;;536:5807:82;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;-1:-1:-1;;;;;536:5807:82;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;2399:78;:43;536:5807;;;:::i;:::-;;;;;-1:-1:-1;536:5807:82;;;;;-1:-1:-1;536:5807:82;;;;;;;;;;;;;;;;;2399:43;:78;:::i;536:5807::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;536:5807:82;;;;-1:-1:-1;536:5807:82;;;477:31:80;536:5807:82;;;;;;:::i;:::-;;;;;;;;;;;;;;;416:25:80;;;;536:5807:82;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;-1:-1:-1;536:5807:82;;;;;;;;;;;;;477:31:80;;536:5807:82;;;;;;;;;;:::i;:::-;477:31:80;536:5807:82;;477:31:80;;;;;;:::i;:::-;518:79;;;536:5807:82;518:79:80;;536:5807:82;;;;;;;;;;;-1:-1:-1;;536:5807:82;;;;;;;;;;;;;;;;;-1:-1:-1;;536:5807:82;;;;;;;-1:-1:-1;;;;;404:28:74;536:5807:82;;;;;;;;;;-1:-1:-1;;536:5807:82;;;;;;1439:41:81;-1:-1:-1;;;;;536:5807:82;;;;;;;;;;;;-1:-1:-1;;536:5807:82;;;;;;-1:-1:-1;536:5807:82;2009:67:81;536:5807:82;;;;-1:-1:-1;536:5807:82;;;;;;;;;;;;;;-1:-1:-1;;536:5807:82;;;;5767:26:24;536:5807:82;;;;;;;:::i;:::-;;-1:-1:-1;536:5807:82;-1:-1:-1;;;;;;;;;;;536:5807:82;;3202:4:24;4919:24;536:5807:82;-1:-1:-1;536:5807:82;4919:24:24;536:5807:82;3202:4:24;:::i;:::-;5767:26;:::i;536:5807:82:-;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;-1:-1:-1;;536:5807:82;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;-1:-1:-1;;;;;536:5807:82;;;;;;;;;;;;:::i;:::-;3217:103:29;;:::i;:::-;-1:-1:-1;536:5807:82;;;5246:21:81;;:13;;-1:-1:-1;;;;;536:5807:82;5246:13:81;536:5807:82;;-1:-1:-1;;;;;536:5807:82;;;5246:21:81;536:5807:82;;-1:-1:-1;;;5246:23:81;;536:5807:82;;;;;5246:23:81;;;;;;;-1:-1:-1;5246:23:81;;;536:5807:82;-1:-1:-1;;;;;;536:5807:82;;;5232:10:81;:37;5228:87;;5341:4;536:5807:82;-1:-1:-1;;;;;536:5807:82;;;;5355:469:81;;536:5807:82;-1:-1:-1;;536:5807:82;;;;;;;;;;;;;;;;5839:55:81;;536:5807:82;;;;5839:55:81;;;;3282:1:29;1805;-1:-1:-1;;;;;;;;;;;536:5807:82;3716:283:29;5355:469:81;536:5807:82;;;;5435:94:81;;;;536:5807:82;5435:94:81;;;;;;;;;;;;536:5807:82;5435:94:81;;;:::i;:::-;;536:5807:82;;5435:94:81;;;;;;:::i;:::-;536:5807:82;5548:9:81;:51;5544:118;;-1:-1:-1;5839:55:81;5676:138;;;;5839:55;5676:138;;;1150:7;5676:138;;5355:469;;;5544:118;536:5807:82;;-1:-1:-1;;;5626:21:81;;536:5807:82;;5626:21:81;5228:87;536:5807:82;;-1:-1:-1;;;5292:12:81;;536:5807:82;;5292:12:81;5246:23;;;;;536:5807:82;5246:23:81;536:5807:82;5246:23:81;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;536:5807:82;;;;;;-1:-1:-1;;536:5807:82;;;;;;;;-1:-1:-1;;;;;536:5807:82;;;;;;;;;;;;;;-1:-1:-1;;536:5807:82;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;-1:-1:-1;;536:5807:82;;;;;;;1150:7:81;536:5807:82;;;;;;;;;-1:-1:-1;;536:5807:82;;;;;;;2700:1:81;536:5807:82;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;1742:195;;1870:60;1742:195;;-1:-1:-1;536:5807:82;1870:13;536:5807;;;-1:-1:-1;536:5807:82;1870:60;:::i;2207:277::-;-1:-1:-1;536:5807:82;;;2399:21;536:5807;;;;;;;;-1:-1:-1;;;;;536:5807:82;;;;;;;;;2399:78;;2207:277;;2399:78;:::i;536:5807::-;;;;;;;;;;;;;;;;;-1:-1:-1;536:5807:82;;;;;;;;-1:-1:-1;;536:5807:82;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;536:5807:82;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;;;;536:5807:82;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::o;:::-;-1:-1:-1;;;;;536:5807:82;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;2764:920:81:-;;2978:48;2764:920;;;;2978:48;;;;:::i;:::-;3036:36;;;536:5807:82;;:::i;:::-;;;;3086:20:81;3082:107;;2764:920;3216:11;;;;:193;;;;;2764:920;3216:394;;;;2764:920;3199:455;;;;;;2764:920;:::o;3199:455::-;3635:8;-1:-1:-1;3635:8:81;:::o;3216:394::-;3553:39;;;;;3430:180;3553:39;;;536:5807:82;;;;;;;;;;3430:180:81;;467:2:93;536:5807:82;3430:180:81;;;;;:::i;:::-;;536:5807:82;3444:31:81;-1:-1:-1;;;;;536:5807:82;3430:180:81;;;;;;;-1:-1:-1;3430:180:81;;;3216:394;3429:181;;3216:394;;;;;;3430:180;;;;3553:39;3430:180;3553:39;3430:180;;;;;;;:::i;:::-;;;;3216:193;-1:-1:-1;536:5807:82;;;-1:-1:-1;;;;;;536:5807:82;3248:161:81;3354:37;;;536:5807:82;3248:161:81;536:5807:82;;;;;;;;;;3248:161:81;;;;;;;:::i;:::-;;536:5807:82;3262:29:81;-1:-1:-1;;;;;536:5807:82;3248:161:81;;;;;;;-1:-1:-1;3248:161:81;;;3216:193;3247:162;;3216:193;;;3248:161;;;;;;;;;;;;;;:::i;:::-;;;;3082:107;3139:39;;;;;;;;;;;;;:::i;:::-;3082:107;;;;;536:5807:82;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;9856:1:61;536:5807:82;;;;;;;:::o;:::-;;:::i;3740:389:81:-;3918:5;536:5807:82;;;-1:-1:-1;;;3853:71:81;;;-1:-1:-1;;;;;536:5807:82;;;3853:71:81;;;536:5807:82;;;;;;;;3740:389:81;;536:5807:82;3853:71:81;;536:5807:82;;3853:71:81;536:5807:82;;;3867:29:81;536:5807:82;;3853:71:81;;;;;;;3918:5;3853:71;;;3740:389;3852:72;;536:5807:82;;;3852:181:81;;3740:389;3835:242;;;;;;4094:28;;;:::i;3835:242::-;4058:8;;3918:5;4058:8;:::o;3852:181::-;536:5807:82;;3945:88:81;;;-1:-1:-1;;;;;536:5807:82;;3853:71:81;3945:88;;536:5807:82;467:2:93;536:5807:82;;;;;;;;-1:-1:-1;536:5807:82;;;;;;;;3959:31:81;536:5807:82;3945:88:81;;;;;;;3918:5;3945:88;;;3852:181;3944:89;;;3852:181;;;;;3945:88;;;;;;-1:-1:-1;3945:88:81;;;;;;:::i;:::-;;;;;3853:71;;;;;;;;;;;;;;:::i;:::-;;;;4148:103:24;966:10:28;-1:-1:-1;536:5807:82;;;;;;;;;952:44;;536:5807;;3901:31:24;536:5807:82;;4468:23:24;4464:108;;4148:103;:::o;:::-;966:10:28;-1:-1:-1;536:5807:82;;;;;;;;;795:35;;536:5807;;3901:31:24;536:5807:82;4148:103:24;-1:-1:-1;536:5807:82;;;-1:-1:-1;;;;;;;;;;;536:5807:82;;;;;;;;966:10:28;536:5807:82;;;;;;;;;3901:31:24;536:5807:82;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;536:5807:82;;-1:-1:-1;536:5807:82;;;-1:-1:-1;536:5807:82;:::o;:::-;;:::i;:::-;;;;;-1:-1:-1;;;536:5807:82;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;536:5807:82;;;;;;;;:::o;6246:584:91:-;;;;;6360:12;;;536:5807:82;;;6360:24:91;;6356:75;;6246:584;6474:30;;;;;:::i;:::-;536:5807:82;;;;;;6578:12:91;;;;:::i;:::-;6604:24;;;;6246:584;-1:-1:-1;6600:188:91;;;-1:-1:-1;;;;;536:5807:82;;;;;;;6644:21:91;;;:29;:21;;:::i;:29::-;6798:25;6246:584;:::o;6600:188::-;6753:24;;536:5807:82;;8167:38:61;;-1:-1:-1;;;;;536:5807:82;;;;;8167:38:61;:::i;:::-;6753:24:91;;;:::i;6604:::-;536:5807:82;;;;;;6614:14:91;;-1:-1:-1;6604:24:91;;;6356:75;-1:-1:-1;;;536:5807:82;;;;;;6360:12:91;536:5807:82;;;;;;;:::i;:::-;;;;;;;;;;;;;;6356:75:91;;;10580:184;536:5807:82;;10303:8:61;;;:63;-1:-1:-1;10303:63:61;-1:-1:-1;;;;;536:5807:82;;10726:7:91;536:5807:82;;10736:12:91;:17;:12;;:17;:::i;:::-;536:5807:82;;;;;;10580:184:91;:::o;10303:63:61:-;536:5807:82;;;;;;;;;;14249:109:61;-1:-1:-1;14249:109:61;;-1:-1:-1;14249:109:61;;;536:5807:82;;;10303:63:61;;3326:384:29;-1:-1:-1;;;;;;;;;;;1847:1:29;536:5807:82;;3526:20:29;3522:88;;1847:1;536:5807:82;;3326:384:29:o;3522:88::-;536:5807:82;;-1:-1:-1;;;3569:30:29;;;;;4758:308:82;;536:5807;-1:-1:-1;536:5807:82;4889:13;536:5807;;;-1:-1:-1;536:5807:82;11124:30:91;;;;:::i;:::-;11173;;;-1:-1:-1;11173:30:91;;;;11182:17;;-1:-1:-1;;;;;536:5807:82;;11182:12:91;;:17;:::i;:::-;536:5807:82;;;4889:13;536:5807;;11173:30:91;4947::82;;;11173::91;4943:117:82;;;;4758:308;;:::o;4943:117::-;4993:56;536:5807;-1:-1:-1;536:5807:82;4889:13;536:5807;;;-1:-1:-1;536:5807:82;819:34:63;837:15;819:34;:::i;4993:56:82:-;4758:308;;:::o;4947:30::-;4957:20;;-1:-1:-1;4947:30:82;;;;11173::91;;;-1:-1:-1;11173:30:91;;7270:387:24;-1:-1:-1;;;;;536:5807:82;;-1:-1:-1;536:5807:82;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2887:71:24;536:5807:82;;;;-1:-1:-1;536:5807:82;;;;;;;;;;;-1:-1:-1;;;;;536:5807:82;;;;;;;;;;-1:-1:-1;;536:5807:82;7509:4:24;536:5807:82;;;966:10:28;;-1:-1:-1;;;;;536:5807:82;-1:-1:-1;7532:40:24;-1:-1:-1;;7532:40:24;7509:4;7586:11;:::o;7270:387::-;-1:-1:-1;;;;;536:5807:82;;-1:-1:-1;536:5807:82;;;;;;;;;1356:26:81;;-1:-1:-1;;;;;;;;;;;2887:71:24;536:5807:82;;3901:31:24;536:5807:82;;;;-1:-1:-1;536:5807:82;;;;;;;;;;;-1:-1:-1;;;;;536:5807:82;;;;;;;;;;-1:-1:-1;;536:5807:82;7509:4:24;536:5807:82;;;966:10:28;;-1:-1:-1;;;;;536:5807:82;;7532:40:24;-1:-1:-1;;7532:40:24;7509:4;7586:11;:::o;7432:219::-;7628:12;;;-1:-1:-1;7628:12:24;:::o;7270:387::-;-1:-1:-1;;;;;536:5807:82;;-1:-1:-1;536:5807:82;;;;;;;;;795:35;;-1:-1:-1;;;;;;;;;;;2887:71:24;536:5807:82;;3901:31:24;536:5807:82;7270:387:24;-1:-1:-1;;;;;536:5807:82;;-1:-1:-1;536:5807:82;;;;;;;;;952:44;;-1:-1:-1;;;;;;;;;;;2887:71:24;536:5807:82;;3901:31:24;536:5807:82;7270:387:24;-1:-1:-1;536:5807:82;;;-1:-1:-1;;;;;;;;;;;536:5807:82;;;;;;;;-1:-1:-1;;;;;536:5807:82;;;;;;;;;;;;3901:31:24;536:5807:82;7892:388:24;-1:-1:-1;536:5807:82;;;-1:-1:-1;;;;;;;;;;;536:5807:82;;;;;;;;-1:-1:-1;;;;;536:5807:82;;;;;;;;;;;;;;;;-1:-1:-1;536:5807:82;;;;;;;;;;;-1:-1:-1;;;;;536:5807:82;;;;;;;;;;-1:-1:-1;;536:5807:82;;;966:10:28;;-1:-1:-1;;;;;536:5807:82;;8155:40:24;-1:-1:-1;;8155:40:24;536:5807:82;8209:11:24;:::o;536:5807:82:-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;536:5807:82;;;;;;;;:::i;5907:716:81:-;6030:34;5907:716;6030:34;;;;:::i;:::-;536:5807:82;;-1:-1:-1;;;6080:41:81;;-1:-1:-1;;;;;536:5807:82;;;6080:41:81;;;536:5807:82;;;;;6080:41:81;536:5807:82;;;6090:13:81;536:5807:82;;6080:41:81;;;;;;;-1:-1:-1;6080:41:81;;;5907:716;6079:42;;6075:90;;6266:27;536:5807:82;2540:111:29;6210:14:81;536:5807:82;2540:111:29;;;:::i;:::-;536:5807:82;;;;;;-1:-1:-1;;;;;536:5807:82;;-1:-1:-1;536:5807:82;;;-1:-1:-1;536:5807:82;;6210:14:81;6266:27;:::i;:::-;6080:41;6311:15;;536:5807:82;;;;-1:-1:-1;;;;;;536:5807:82;-1:-1:-1;;;;;536:5807:82;;;;;;;;;;;-1:-1:-1;;;;;536:5807:82;;;;6337:143:81;;5907:716;-1:-1:-1;6493:28:81;536:5807:82;-1:-1:-1;;;;;536:5807:82;;;;;;;6489:128:81;;5907:716;:::o;6489:128::-;6551:55;;;:::i;:::-;;5907:716::o;6337:143::-;6404:65;;;:::i;:::-;;6337:143;;;6075:90;536:5807:82;;-1:-1:-1;;;6144:10:81;;6080:41;;6144:10;6080:41;;;;;;;;;;;;;;:::i;:::-;;;;536:5807:82;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;:::o;7558:604:91:-;;536:5807:82;;7686:17:91;7682:83;;536:5807:82;7789:27:91;536:5807:82;7789:27:91;536:5807:82;;7789:27:91;;;;;;:::i;:::-;7860:14;;;;;:::i;:::-;536:5807:82;;;;;;;;;;;;;;;;7888:22:91;;;7884:77;;7975:21;-1:-1:-1;7975:84:91;;;;7558:604;7971:139;;;;8127:28;;;;:::i;7971:139::-;8082:17;;7789:27;8082:17;536:5807:82;8075:24:91;:::o;7975:84::-;536:5807:82;;;8009:16:91;536:5807:82;;8009:16:91;:::i;:::-;536:5807:82;;;8001:24:91;:57;;;;;7975:84;;;;;;;8001:57;8029:29;8038:8;;;8029:18;8038:8;8029:23;8038:8;;:::i;:::-;8029:18;;:::i;:::-;536:5807:82;;;;;8029:23:91;536:5807:82;;;;8029:29:91;;8001:57;;;;7884:77;7933:17;;;;;7789:27;7933:17;536:5807:82;7926:24:91;:::o;7682:83::-;7726:28;;;;:::i;536:5807:82:-;;;;;;;;;;-1:-1:-1;;;;;536:5807:82;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;;;;536:5807:82;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;:::i;3722:766::-;;;;;536:5807;;:::i;:::-;;;;3962:16;3958:92;;3722:766;536:5807;;4107:67;536:5807;;;4146:27;4107;:13;536:5807;-1:-1:-1;536:5807:82;;;;;;;;;4107:27;4146;;;;536:5807;;;;;;;;;;;4107:67;;;;;;;:::i;:::-;;;;;;;;;;4081:355;4107:67;-1:-1:-1;4107:67:82;;;3722:766;4260:28;4311:93;4260:28;4192:230;4260:28;;4222:67;536:5807;4260:28;;;4222:67;;;:::i;:::-;4367:36;;;;;4311:93;;:::i;:::-;4192:230;;:::i;4081:355::-;4450:21;;3722:766;:::o;4107:67::-;4192:230;4107:67;;;;4311:93;4107:67;4146:27;4107:67;4146:27;4107:67;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;3958:92;4107:67;4008:31;;;;;;;;;;;;;;:::i;:::-;3958:92;;;;;4494:258;4635:5;536:5807;;;-1:-1:-1;;;4628:27:82;;536:5807;4494:258;;4628:27;;536:5807;;4628:27;;536:5807;;-1:-1:-1;;;;;536:5807:82;4628:27;;;;;;;4606:139;4628:27;4635:5;4628:27;;;4494:258;2103:25;2662:52;:43;4657:78;2103:25;;:34;:25;;536:5807;;2103:13;536:5807;;;;;;;2103:34;536:5807;4635:5;536:5807;4628:27;;536:5807;;4635:5;536:5807;;;;;;;;;;;;;;;;;4628:27;4657:78;4628:27;;2662:43;4628:27;2662:52;4628:27;;;;;;;;;;;:::i;:::-;;;;;;14291:213:59;536:5807:82;14369:24:59;;;;14365:103;;536:5807:82;14291:213:59;:::o;14365:103::-;536:5807:82;;;;14416:41:59;;;;;;14447:2;14416:41;;;536:5807:82;;;;;14416:41:59;536:5807:82;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::o;10552:388:61:-;536:5807:82;;10728:8:61;;;10752:20;;10690:17;10752:20;10690:17;10752:20;10690:17;10752:20;:::o;10724:210::-;536:5807:82;;;;;;;;;;;14249:109:61;10690:17;14249:109;;10690:17;14249:109;;;536:5807:82;:::i;:::-;;;;;;;14249:109:61;536:5807:82;;;;;10911:11:61;;536:5807:82;;10886:37:61;10870:1;10886:37;;;:::o;6893:76:26:-;;;:::i;:::-;;;:::i;:::-;1805:1:29;-1:-1:-1;;;;;;;;;;;536:5807:82;6893:76:26:o;536:5807:82:-;;;;;;;:::i;:::-;-1:-1:-1;536:5807:82;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;-1:-1:-1;;;;;536:5807:82;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;536:5807:82;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;5072:1269::-;5220:30;5072:1269;536:5807;;:::i;:::-;;5220:30;536:5807;;;5220:30;;;;;;:::i;:::-;5278:17;;536:5807;5278:17;;536:5807;-1:-1:-1;;;;;536:5807:82;5278:54;;:178;;5072:1269;5261:258;;5534:9;5220:30;5549:33;;;5278:17;5591:3;5549:33;;536:5807;;5545:44;;;;;5614:36;;;:50;:36;;:::i;:::-;536:5807;-1:-1:-1;;;;;536:5807:82;;;5614:50;;5610:119;;5747:73;5748:72;5783:36;;:33;;;:36;:::i;:::-;5748:72;:::i;:::-;5747:73;;536:5807;5747:73;5743:140;;536:5807;;5534:9;;5743:140;536:5807;;-1:-1:-1;;;5847:21:82;;;;;5610:119;536:5807;;-1:-1:-1;;;5691:23:82;;;;;5545:44;-1:-1:-1;5923:41:82;;-1:-1:-1;;5923:41:82;;;;5278:17;5973:3;5923:41;;536:5807;;5919:52;;;;;5996:44;;;:58;:44;;:::i;:58::-;;5992:127;;6137:90;6138:89;6182:44;;:41;;;:44;:::i;:::-;6138:89;:::i;6137:90::-;6133:157;;536:5807;;5908:9;;6133:157;536:5807;;-1:-1:-1;;;6254:21:82;;;;;5992:127;536:5807;;-1:-1:-1;;;6081:23:82;;;;;5919:52;;;;;;6317:17;5072:1269;:::o;5261:258::-;536:5807;;-1:-1:-1;;;5488:20:82;;;;;5278:178;5353:33;5220:30;5353:33;;;536:5807;5353:45;:102;5278:178;5353:102;5402:41;;;;;536:5807;5402:53;5278:178;;6999:207:91;;536:5807:82;;9594:15:61;-1:-1:-1;9619:18:61;9652:7;9658:1;9652:7;;9648:234;;6999:207:91;9906:53:61;;;;;:::i;:::-;9977:8;;;:63;-1:-1:-1;9977:63:61;;-1:-1:-1;;;;;536:5807:82;;7168:7:91;536:5807:82;;;7178:12:91;;:17;:12;;:17;:::i;9977:63:61:-;9992:41;10025:7;9992:48;10025:7;;:::i;:::-;9992:41;14249:109;;;;;;14099:265;;9992:41;536:5807:82;;;;;9992:48:61;9977:63;;;9648:234;9695:14;;;;;:::i;:::-;536:5807:82;;;;;;;9906:53:61;14249:109;;-1:-1:-1;14249:109:61;536:5807:82;14249:109:61;;;-1:-1:-1;14249:109:61;;536:5807:82;;;;;9727:48:61;9723:149;536:5807:82;;;9795:10:61;9723:149;9648:234;;9723:149;9850:7;;;;;;:::i;:::-;9723:149;9648:234;;536:5807:82;;;;;;;:::i;:::-;-1:-1:-1;536:5807:82;;;;;;;:::o;11486:272:91:-;;536:5807:82;11308:22:61;11718:31:91;11486:272;536:5807:82;;:::i;:::-;;;;:::i;:::-;;11308:22:61;;:::i;:::-;536:5807:82;;:::i;:::-;;11718:12:91;536:5807:82;;;;;11731:17:91;536:5807:82;;;;;11731:17:91;;536:5807:82;;11718:12:91;;:31;:::i;:::-;536:5807:82;;;;;;;;;:::i;:::-;;;;;;11731:17:91;11672:79;;536:5807:82;11486:272:91;:::o;2557:104:58:-;;2641:5;;;;;;:13;2557:104;:::o;2641:13::-;;;2557:104;:::o;536:5807:82:-;;;-1:-1:-1;;;536:5807:82;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;536:5807:82;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;11513:870:61;536:5807:82;;11513:870:61;;;536:5807:82;11513:870:61;11672:7;;;;536:5807:82;11775:28:61;11795:7;;;:::i;11775:28::-;536:5807:82;:::i;:::-;;;;;;;;;;;;;;;;11877:15:61;-1:-1:-1;11873:91:61;;536:5807:82;;12233:11:61;536:5807:82;;;12027:16:61;536:5807:82;;;;;;;12027:16:61;;;;12083:7;12063:43;12083:7;;12063:28;12083:7;;:::i;:::-;12063:28;14249:109;;;;;;14099:265;;12063:28;536:5807:82;;;;;;;;;;;;;;;;;12063:43:61;12233:11;536:5807:82;-1:-1:-1;;;;;536:5807:82;;;12023:189:61;536:5807:82;;;12145:52:61;536:5807:82;12155:41:61;536:5807:82;;:::i;:::-;;;;;;;;12155:41:61;-1:-1:-1;;;;;536:5807:82;;12155:41:61;;;536:5807:82;12145:52:61;:::i;:::-;12023:189;;11873:91;536:5807:82;;-1:-1:-1;;;11919:30:61;;;;;11668:709;12283:52;536:5807:82;;12293:41:61;536:5807:82;;:::i;12293:41:61:-;-1:-1:-1;;;;;536:5807:82;;12293:41:61;;;536:5807:82;12145:52:61;:::i;12283:::-;11678:1;12349:17;;:::o;7084:141:26:-;536:5807:82;-1:-1:-1;;;;;;;;;;;536:5807:82;;;;7150:18:26;7146:73;;7084:141::o;7146:73::-;536:5807:82;;-1:-1:-1;;;7191:17:26;;;;;8587:1642:58;8658:6;;8654:45;;9401:7;10201:10;10142:26;10093;10044;9995;9946;9897;9848;536:5807:82;10189:23:58;9401:7;8663:1;536:5807:82;;;;10826:16:58;10822:99;;8587:1642;536:5807:82;;;;10938:15:58;10934:96;;8587:1642;536:5807:82;;;;11047:15:58;11043:96;;8587:1642;536:5807:82;;;;11156:15:58;11152:96;;8587:1642;536:5807:82;;;;11265:14:58;11261:93;;8587:1642;536:5807:82;;;;11371:14:58;11367:93;;8587:1642;536:5807:82;;;;11477:14:58;11473:93;;8587:1642;536:5807:82;;;11579:64:58;;8587:1642;536:5807:82;;;9858:10:58;;;;:::i;:::-;536:5807:82;;;;;9848:26:58;9907:10;;;;:::i;9897:26::-;9956:10;;;;:::i;9946:26::-;10005:10;;;;:::i;9995:26::-;10054:10;;;;:::i;10044:26::-;10103:10;;;;:::i;10093:26::-;10152:10;;;;:::i;10142:26::-;10201:10;;;:::i;11579:64::-;536:5807:82;;11579:64:58;;11473:93;536:5807:82;11511:11:58;;536:5807:82;;11473:93:58;;;;11367;536:5807:82;11405:11:58;;536:5807:82;;11367:93:58;;;;11261;536:5807:82;11299:11:58;;536:5807:82;;11261:93:58;;;;11152:96;536:5807:82;11191:12:58;;536:5807:82;;11152:96:58;;;;11043;536:5807:82;11082:12:58;;536:5807:82;;11043:96:58;;;;10934;536:5807:82;10973:12:58;;536:5807:82;;10934:96:58;;;;10822:99;10862:13;;;536:5807:82;10822:99:58;;;;12736:433:61;;;12919:10;;;;;;13151:11;;;12736:433;:::o;12912:230::-;2900:5:58;;;;;;2910;;;;536:5807:82;;;;;;;;;14249:109:61;-1:-1:-1;14249:109:61;536:5807:82;14249:109:61;;;-1:-1:-1;14249:109:61;;536:5807:82;;;;;-1:-1:-1;12996:136:61;536:5807:82;;;13055:10:61;12996:136;;12912:230;;;;12996:136;13110:7;;;;;;:::i;:::-;12996:136;;","linkReferences":{},"immutableReferences":{"64520":[{"start":1834,"length":32}],"64523":[{"start":3768,"length":32}],"65474":[{"start":1467,"length":32},{"start":3825,"length":32}],"65477":[{"start":1122,"length":32},{"start":7577,"length":32}],"65480":[{"start":1269,"length":32},{"start":5312,"length":32},{"start":5636,"length":32}],"65483":[{"start":1337,"length":32},{"start":5159,"length":32},{"start":5762,"length":32}]}},"methodIdentifiers":{"DEFAULT_ADMIN_ROLE()":"a217fddf","FACTORY()":"2dd31000","HOOK_GAS_LIMIT()":"ff54740f","HOOK_RESERVE()":"557cab44","HOOK_SET_ROLE()":"6679191e","NETWORK_LIMIT_SET_ROLE()":"7d24bb27","NETWORK_REGISTRY()":"c0cd7c3e","OPERATOR_NETWORK_LIMIT_SET_ROLE()":"518504ba","OPERATOR_NETWORK_OPT_IN_SERVICE()":"1a80e500","OPERATOR_VAULT_OPT_IN_SERVICE()":"128e5d82","TYPE()":"bb24fe8a","VAULT_FACTORY()":"103f2907","VERSION()":"ffa1ad74","getRoleAdmin(bytes32)":"248a9ca3","grantRole(bytes32,address)":"2f2ff15d","hasRole(bytes32,address)":"91d14854","hook()":"7f5a7c7b","initialize(bytes)":"439fab91","maxNetworkLimit(bytes32)":"d15b740e","networkLimit(bytes32)":"3eb22c0f","networkLimitAt(bytes32,uint48,bytes)":"5d32a1c9","onSlash(bytes32,address,uint256,uint48,bytes)":"e49561ee","operatorNetworkLimit(bytes32,address)":"11422095","operatorNetworkLimitAt(bytes32,address,uint48,bytes)":"94d2558a","renounceRole(bytes32,address)":"36568abe","revokeRole(bytes32,address)":"d547741f","setHook(address)":"3dfd3873","setMaxNetworkLimit(uint96,uint256)":"23f752d5","setNetworkLimit(bytes32,uint256)":"02145348","setOperatorNetworkLimit(bytes32,address,uint256)":"020cf0c2","stake(bytes32,address)":"fd4d447c","stakeAt(bytes32,address,uint48,bytes)":"e02f6937","staticDelegateCall(address,bytes)":"9f86fd85","supportsInterface(bytes4)":"01ffc9a7","vault()":"fbfa77cf"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"networkRegistry\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"vaultFactory\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operatorVaultOptInService\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operatorNetworkOptInService\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"delegatorFactory\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"entityType\",\"type\":\"uint64\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"AccessControlBadConfirmation\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"neededRole\",\"type\":\"bytes32\"}],\"name\":\"AccessControlUnauthorizedAccount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AlreadySet\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CheckpointUnorderedInsertion\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"DuplicateRoleHolder\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ExceedsMaxNetworkLimit\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientHookGas\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MissingRoleHolders\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotNetwork\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotSlasher\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotVault\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ReentrancyGuardReentrantCall\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"bits\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"SafeCastOverflowedUintDowncast\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ZeroAddressRoleHolder\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint48\",\"name\":\"captureTimestamp\",\"type\":\"uint48\"}],\"name\":\"OnSlash\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"previousAdminRole\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"newAdminRole\",\"type\":\"bytes32\"}],\"name\":\"RoleAdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleRevoked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"hook\",\"type\":\"address\"}],\"name\":\"SetHook\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"SetMaxNetworkLimit\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"SetNetworkLimit\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"SetOperatorNetworkLimit\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DEFAULT_ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"FACTORY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"HOOK_GAS_LIMIT\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"HOOK_RESERVE\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"HOOK_SET_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"NETWORK_LIMIT_SET_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"NETWORK_REGISTRY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"OPERATOR_NETWORK_LIMIT_SET_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"OPERATOR_NETWORK_OPT_IN_SERVICE\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"OPERATOR_VAULT_OPT_IN_SERVICE\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"TYPE\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"VAULT_FACTORY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"VERSION\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleAdmin\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"grantRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"hook\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"}],\"name\":\"maxNetworkLimit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"}],\"name\":\"networkLimit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hint\",\"type\":\"bytes\"}],\"name\":\"networkLimitAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint48\",\"name\":\"captureTimestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"onSlash\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"operatorNetworkLimit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hint\",\"type\":\"bytes\"}],\"name\":\"operatorNetworkLimitAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"callerConfirmation\",\"type\":\"address\"}],\"name\":\"renounceRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"hook_\",\"type\":\"address\"}],\"name\":\"setHook\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint96\",\"name\":\"identifier\",\"type\":\"uint96\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"setMaxNetworkLimit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"setNetworkLimit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"setOperatorNetworkLimit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"stake\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hints\",\"type\":\"bytes\"}],\"name\":\"stakeAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"staticDelegateCall\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"vault\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"AccessControlBadConfirmation()\":[{\"details\":\"The caller of a function is not the expected one. NOTE: Don't confuse with {AccessControlUnauthorizedAccount}.\"}],\"AccessControlUnauthorizedAccount(address,bytes32)\":[{\"details\":\"The `account` is missing a role.\"}],\"CheckpointUnorderedInsertion()\":[{\"details\":\"A value was attempted to be inserted on a past checkpoint.\"}],\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"ReentrancyGuardReentrantCall()\":[{\"details\":\"Unauthorized reentrant call.\"}],\"SafeCastOverflowedUintDowncast(uint8,uint256)\":[{\"details\":\"Value doesn't fit in an uint of `bits` size.\"}]},\"events\":{\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"OnSlash(bytes32,address,uint256,uint48)\":{\"params\":{\"amount\":\"amount of the collateral to be slashed\",\"captureTimestamp\":\"time point when the stake was captured\",\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"}},\"RoleAdminChanged(bytes32,bytes32,bytes32)\":{\"details\":\"Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole` `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite {RoleAdminChanged} not being emitted signaling this.\"},\"RoleGranted(bytes32,address,address)\":{\"details\":\"Emitted when `account` is granted `role`. `sender` is the account that originated the contract call, an admin role bearer except when using {AccessControl-_setupRole}.\"},\"RoleRevoked(bytes32,address,address)\":{\"details\":\"Emitted when `account` is revoked `role`. `sender` is the account that originated the contract call: - if using `revokeRole`, it is the admin role bearer - if using `renounceRole`, it is the role bearer (i.e. `account`)\"},\"SetHook(address)\":{\"params\":{\"hook\":\"address of the hook\"}},\"SetMaxNetworkLimit(bytes32,uint256)\":{\"params\":{\"amount\":\"new maximum subnetwork's limit (how much stake the subnetwork is ready to get)\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"}},\"SetNetworkLimit(bytes32,uint256)\":{\"params\":{\"amount\":\"new subnetwork's limit (how much stake the vault curator is ready to give to the subnetwork)\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"}},\"SetOperatorNetworkLimit(bytes32,address,uint256)\":{\"params\":{\"amount\":\"new operator's limit for the subnetwork (how much stake the vault curator is ready to give to the operator for the subnetwork)\",\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"}}},\"kind\":\"dev\",\"methods\":{\"VERSION()\":{\"details\":\"Must return 1 for this one.\",\"returns\":{\"_0\":\"version of the delegator\"}},\"getRoleAdmin(bytes32)\":{\"details\":\"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}.\"},\"grantRole(bytes32,address)\":{\"details\":\"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event.\"},\"hasRole(bytes32,address)\":{\"details\":\"Returns `true` if `account` has been granted `role`.\"},\"initialize(bytes)\":{\"params\":{\"data\":\"some data to use\"}},\"networkLimit(bytes32)\":{\"params\":{\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"},\"returns\":{\"_0\":\"limit of the subnetwork\"}},\"networkLimitAt(bytes32,uint48,bytes)\":{\"params\":{\"hint\":\"hint for checkpoint index\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\",\"timestamp\":\"time point to get the subnetwork limit at\"},\"returns\":{\"_0\":\"limit of the subnetwork at the given timestamp\"}},\"onSlash(bytes32,address,uint256,uint48,bytes)\":{\"details\":\"Only the vault's slasher can call this function.\",\"params\":{\"amount\":\"amount of the collateral slashed\",\"captureTimestamp\":\"time point when the stake was captured\",\"data\":\"some additional data\",\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"}},\"operatorNetworkLimit(bytes32,address)\":{\"params\":{\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"},\"returns\":{\"_0\":\"limit of the operator for the subnetwork\"}},\"operatorNetworkLimitAt(bytes32,address,uint48,bytes)\":{\"params\":{\"hint\":\"hint for checkpoint index\",\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\",\"timestamp\":\"time point to get the operator's limit for the subnetwork at\"},\"returns\":{\"_0\":\"limit of the operator for the subnetwork at the given timestamp\"}},\"renounceRole(bytes32,address)\":{\"details\":\"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `callerConfirmation`. May emit a {RoleRevoked} event.\"},\"revokeRole(bytes32,address)\":{\"details\":\"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event.\"},\"setHook(address)\":{\"details\":\"Only a HOOK_SET_ROLE holder can call this function. The hook can have arbitrary logic under certain functions, however, it doesn't affect the stake guarantees.\",\"params\":{\"hook\":\"address of the hook\"}},\"setMaxNetworkLimit(uint96,uint256)\":{\"details\":\"Only a network can call this function.\",\"params\":{\"amount\":\"new maximum subnetwork's limit\"}},\"setNetworkLimit(bytes32,uint256)\":{\"details\":\"Only a NETWORK_LIMIT_SET_ROLE holder can call this function.\",\"params\":{\"amount\":\"new limit of the subnetwork\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"}},\"setOperatorNetworkLimit(bytes32,address,uint256)\":{\"details\":\"Only an OPERATOR_NETWORK_LIMIT_SET_ROLE holder can call this function.\",\"params\":{\"amount\":\"new limit of the operator for the subnetwork\",\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"}},\"stake(bytes32,address)\":{\"details\":\"Warning: this function is not safe to use for stake capturing, as it can change by the end of the block.\",\"params\":{\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"},\"returns\":{\"_0\":\"slashable stake until the end of the next epoch\"}},\"stakeAt(bytes32,address,uint48,bytes)\":{\"details\":\"Warning: it is not safe to use timestamp >= current one for the stake capturing, as it can change later.\",\"params\":{\"hints\":\"hints for the checkpoints' indexes\",\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\",\"timestamp\":\"time point to capture the stake at\"},\"returns\":{\"_0\":\"slashable stake at the given timestamp until the end of the consequent epoch\"}},\"staticDelegateCall(address,bytes)\":{\"details\":\"It allows to use this contract's storage on-chain.\",\"params\":{\"data\":\"data to make a delegatecall with\",\"target\":\"address of the contract to make a delegatecall to\"}},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"}},\"stateVariables\":{\"NETWORK_LIMIT_SET_ROLE\":{\"return\":\"identifier of the subnetwork limit setter role\",\"returns\":{\"_0\":\"identifier of the subnetwork limit setter role\"}},\"OPERATOR_NETWORK_LIMIT_SET_ROLE\":{\"return\":\"identifier of the operator-subnetwork limit setter role\",\"returns\":{\"_0\":\"identifier of the operator-subnetwork limit setter role\"}}},\"version\":1},\"userdoc\":{\"events\":{\"OnSlash(bytes32,address,uint256,uint48)\":{\"notice\":\"Emitted when a slash happens.\"},\"SetHook(address)\":{\"notice\":\"Emitted when a hook is set.\"},\"SetMaxNetworkLimit(bytes32,uint256)\":{\"notice\":\"Emitted when a subnetwork's maximum limit is set.\"},\"SetNetworkLimit(bytes32,uint256)\":{\"notice\":\"Emitted when a subnetwork's limit is set.\"},\"SetOperatorNetworkLimit(bytes32,address,uint256)\":{\"notice\":\"Emitted when an operator's limit for a subnetwork is set.\"}},\"kind\":\"user\",\"methods\":{\"FACTORY()\":{\"notice\":\"Get the factory's address.\"},\"HOOK_GAS_LIMIT()\":{\"notice\":\"Get a gas limit for the hook.\"},\"HOOK_RESERVE()\":{\"notice\":\"Get a reserve gas between the gas limit check and the hook's execution.\"},\"HOOK_SET_ROLE()\":{\"notice\":\"Get a hook setter's role.\"},\"NETWORK_LIMIT_SET_ROLE()\":{\"notice\":\"Get a subnetwork limit setter's role.\"},\"NETWORK_REGISTRY()\":{\"notice\":\"Get the network registry's address.\"},\"OPERATOR_NETWORK_LIMIT_SET_ROLE()\":{\"notice\":\"Get an operator-subnetwork limit setter's role.\"},\"OPERATOR_NETWORK_OPT_IN_SERVICE()\":{\"notice\":\"Get the operator-network opt-in service's address.\"},\"OPERATOR_VAULT_OPT_IN_SERVICE()\":{\"notice\":\"Get the operator-vault opt-in service's address.\"},\"TYPE()\":{\"notice\":\"Get the entity's type.\"},\"VAULT_FACTORY()\":{\"notice\":\"Get the vault factory's address.\"},\"VERSION()\":{\"notice\":\"Get a version of the delegator (different versions mean different interfaces).\"},\"hook()\":{\"notice\":\"Get the hook's address.\"},\"initialize(bytes)\":{\"notice\":\"Initialize this entity contract by using a given data.\"},\"maxNetworkLimit(bytes32)\":{\"notice\":\"Get a particular subnetwork's maximum limit (meaning the subnetwork is not ready to get more as a stake).\"},\"networkLimit(bytes32)\":{\"notice\":\"Get a subnetwork's limit (how much stake the vault curator is ready to give to the subnetwork).\"},\"networkLimitAt(bytes32,uint48,bytes)\":{\"notice\":\"Get a subnetwork's limit at a given timestamp using a hint (how much stake the vault curator is ready to give to the subnetwork).\"},\"onSlash(bytes32,address,uint256,uint48,bytes)\":{\"notice\":\"Called when a slash happens.\"},\"operatorNetworkLimit(bytes32,address)\":{\"notice\":\"Get an operator's limit for a subnetwork. (how much stake the vault curator is ready to give to the operator for the subnetwork)\"},\"operatorNetworkLimitAt(bytes32,address,uint48,bytes)\":{\"notice\":\"Get an operator's limit for a subnetwork at a given timestamp using a hint (how much stake the vault curator is ready to give to the operator for the subnetwork).\"},\"setHook(address)\":{\"notice\":\"Set a new hook.\"},\"setMaxNetworkLimit(uint96,uint256)\":{\"notice\":\"Set a maximum limit for a subnetwork (how much stake the subnetwork is ready to get). identifier identifier of the subnetwork\"},\"setNetworkLimit(bytes32,uint256)\":{\"notice\":\"Set a subnetwork's limit (how much stake the vault curator is ready to give to the subnetwork).\"},\"setOperatorNetworkLimit(bytes32,address,uint256)\":{\"notice\":\"Set an operator's limit for a subnetwork. (how much stake the vault curator is ready to give to the operator for the subnetwork)\"},\"stake(bytes32,address)\":{\"notice\":\"Get a stake that a given subnetwork will be able to slash for a certain operator until the end of the next epoch (if no cross-slashing and no slashings by the subnetwork).\"},\"stakeAt(bytes32,address,uint48,bytes)\":{\"notice\":\"Get a stake that a given subnetwork could be able to slash for a certain operator at a given timestamp until the end of the consequent epoch using hints (if no cross-slashing and no slashings by the subnetwork).\"},\"staticDelegateCall(address,bytes)\":{\"notice\":\"Make a delegatecall from this contract to a given target contract with a particular data (always reverts with a return data).\"},\"vault()\":{\"notice\":\"Get the vault's address.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/contracts/delegator/FullRestakeDelegator.sol\":\"FullRestakeDelegator\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol\":{\"keccak256\":\"0x6662ec4e5cefca03eeadd073e9469df8d2944bb2ee8ec8f7622c2c46aab5f225\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4d8544c6f8daa4d1bc215c6a72fe0acdb748664a105b0e5efc19295667521d45\",\"dweb:/ipfs/QmdGWqdnXT8S3RgCR6aV8XHZrsybieMQLLnug1NtpSjEXN\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609\",\"dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9\",\"dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardUpgradeable.sol\":{\"keccak256\":\"0xb44e086e941292cdc7f440de51478493894ef0b1aeccb0c4047445919f667f74\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://942dad22fbdc1669f025540ba63aa3ccfad5f8458fc5d4525b31ebf272e7af45\",\"dweb:/ipfs/Qmdo4X2M82aM3AMoW2kf2jhYkSCyC4T1pHNd6obdsDFnAB\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol\":{\"keccak256\":\"0xdaba3f7c42c55b2896353f32bd27d4d5f8bae741b3b05d4c53f67abc4dc47ce8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1fa2e61141c602510bcd2cd936ed9561922ac8772a9b9c9a9db091a74e354a45\",\"dweb:/ipfs/QmcHQDDoEBwJmwUbzoVkytvJsBx3KVHYFFnDkvRGWh9Wmh\"]},\"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0xb6b36edd6a2999fd243ff226d6cbf84bd71af2432bbd0dfe19392996a1d9cb41\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1fd2f35495652e57e3f99bc6c510bc5f7dd398a176ea2e72d8ed730aebc6ca26\",\"dweb:/ipfs/QmTQV6X4gkikTib49cho5iDX3JvSQbdsoEChoDwrk3CbbH\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875\",\"dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0xe19a4d5f31d2861e7344e8e535e2feafb913d806d3e2b5fe7782741a2a7094fe\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4aed79c0fa6f0546ed02f2f683e8f77f0fd2ed7eb34d8bbf3d373c9a6d95b13c\",\"dweb:/ipfs/QmWqVz6UAVqmnWU5pqYPt1o6iDEZyPaBraAA3rKfTTSfYj\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/Checkpoints.sol\":{\"keccak256\":\"0xbdc5e074d7dd6678f67e92b1a51a20226801a407b0e1af3da367c5d1ff4519ad\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a36cca6b22fff3db16fc789ff6c60eea71d4b156065d4d0c83a0bc5e91a77a8b\",\"dweb:/ipfs/QmYN3exd5AemxjBrN8XMB1p5LbbE16uC3sjbYjwi8AjcGR\"]},\"lib/openzeppelin-contracts/contracts/utils/types/Time.sol\":{\"keccak256\":\"0xc7755af115020049e4140f224f9ee88d7e1799ffb0646f37bf0df24bf6213f58\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7f09bf94d5274334ec021f61a04659db303f31e60460e14b709c9bf187740111\",\"dweb:/ipfs/QmNvgomZYUwFAt4cZbPWAiTeSZQreGehY9BK5xyVJsUttb\"]},\"src/contracts/common/Entity.sol\":{\"keccak256\":\"0x3d61a932995b8443381f3950542d388223a2c26dd5d29a3274dea3baa7388bd7\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://7cdf5f03ca72fd263fd32ff59c8d88ddca911ae83896a287d10772c1bbe9b138\",\"dweb:/ipfs/QmbP84r5BWT1Rn9AYTntWSf3xUMTTCohTZJFhbBhDXFoHa\"]},\"src/contracts/common/StaticDelegateCallable.sol\":{\"keccak256\":\"0x350029aa8955eacaffffaeb58babc5c98e80ebc5c5db388ed17ee6465f4a9d90\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://eb392a8ee9050e0af606897df63e3404e3829e8b688b580663892f9664195764\",\"dweb:/ipfs/QmaXC8jqV8UrrAFkzXTEv2fJF56sy33HhLxAzaRZmUxuXD\"]},\"src/contracts/delegator/BaseDelegator.sol\":{\"keccak256\":\"0x7c54d491fdd4415b764a9c8defa068e56d4c0c8c9419be0053a1d377669290e8\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://9238bfbad0f6eeb0dc7727724de14380f1980b395902269703d5e2ef07e52e10\",\"dweb:/ipfs/QmPJn1V4HNXcEghYvogGuSTF24dSQUPosR5qtsXcmNqRm3\"]},\"src/contracts/delegator/FullRestakeDelegator.sol\":{\"keccak256\":\"0x0a81c4f8e72914563a9cb771e93acf889c71ea36b7bec040e4eb562b199d5af1\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://6fc66b6ba02da77046a0bbbd1dd407a62c08f52e04486c9cbd2cb1cca3da555f\",\"dweb:/ipfs/QmZQivK1ZnMxfRQQ5aLpV9co5u55wQVNev5Rg1hzAqxhkE\"]},\"src/contracts/libraries/Checkpoints.sol\":{\"keccak256\":\"0xba90097c8bfe0a975499428b5f8ac5569483c7d92ccc28c12d70de416aae040c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://12f5d93ca94cd06d3147db68993165a58e17903ed53682560de61f3085ad4609\",\"dweb:/ipfs/QmePiuAqvXprMLmFZkGZeGjvGPAvsEDHfCDv7BoQhXu9xE\"]},\"src/contracts/libraries/Subnetwork.sol\":{\"keccak256\":\"0xf5ef5506fd66082b3c2e7f3df37529f5a8efad32ac62e7c8914bd63219190bfe\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba031a54ee0d0e9a270c2b9e18437f5668cfeb659cfd5fe0677459d7fcac2a56\",\"dweb:/ipfs/QmReP3H7qQ78tAfgLnJKsNEQNCQfF1X1Get38Ffd4kzq32\"]},\"src/interfaces/common/IEntity.sol\":{\"keccak256\":\"0x8ef4b63d6da63489778ccd5f8d13ebdd527dd4b62730b2c616df5af7474d2d21\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a8d69576a9219d85c50816a18ad53a4d53cfcb27ed38b8cccc808dc2734b71b\",\"dweb:/ipfs/QmYVN3P4Q4REvBWJ97TbAcaxm3uyB2anV6NSGa6ZtSwcEv\"]},\"src/interfaces/common/IMigratableEntity.sol\":{\"keccak256\":\"0x8f5f2809f3afbe8ebfbb365dd7b57b4dd3b6f9943a6187eaf648d45895b8e3c4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ffe640537d539e7a4fde70d30d3e4c57f4ba9c2c25c450cea713aae38e8fd5c\",\"dweb:/ipfs/QmSUTGzvdcn1R1KB7tLThMRtESsfPbeXDhhhKWGtntzBds\"]},\"src/interfaces/common/IRegistry.sol\":{\"keccak256\":\"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014\",\"dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK\"]},\"src/interfaces/common/IStaticDelegateCallable.sol\":{\"keccak256\":\"0xa335d4e81b9071b7de66ef92b43ff20671d86516eb1be46fef29a3483cd3f5d5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d464b9db863c14c05547d2b23352f2e9b7b784799cf09f6bbc4906a2a74e3516\",\"dweb:/ipfs/QmUVWzFvJz7eEbDQKiFTTzwi7TEbjcs3VmwdM4kuptAKvi\"]},\"src/interfaces/delegator/IBaseDelegator.sol\":{\"keccak256\":\"0x96bb312f032e17accce3f8f80936d99468029d6b37c9ca74acdb4b026a0148ee\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2a66dcb5b7d1a6ef6a363431ea98ebd78bc4fdd3d7a134d9b542dc66e7d025c2\",\"dweb:/ipfs/QmRhTPLd2ZAyRHmJUFUcWKs9b3if49QY17LYZuRqWmghw8\"]},\"src/interfaces/delegator/IDelegatorHook.sol\":{\"keccak256\":\"0xc51aa8d7d1f6c8043ee819b7aeb86da0e993912e1442098df897e299f01f9f46\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://adddf5cb2ba282aeb576b26efb28640f865a1721cc9b6eee8b3ee0457a2c9780\",\"dweb:/ipfs/QmNYgAmnLRwWZbhTuQhZs9rx4zcme1df5mEepkrniorSoW\"]},\"src/interfaces/delegator/IFullRestakeDelegator.sol\":{\"keccak256\":\"0xa3c8cb2e45d4d8ce90e95263bea40c01dc400f05ad65bc29597d878606be5e7d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://782cf5e201aa4cca037ebafd3807a68ff1cc721d5b8416a35244db0d0607369e\",\"dweb:/ipfs/QmQkJks6x7CKndeTPa9LxgTNygD5uEi7obhADhpq1Lsr9A\"]},\"src/interfaces/service/IOptInService.sol\":{\"keccak256\":\"0x76fb5460a6d87a5705433d4fbeff7253cd75b8bbd0c888b2088f16e86ace146a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://990322019b3d11465f7024bae77ccbf7e2fe5d6fa3c754584778f37d04fa1337\",\"dweb:/ipfs/QmaSNHzcqxTkUCG9a4nqVfLECHLdjdrwAnDi3yDC7tDL24\"]},\"src/interfaces/vault/IVault.sol\":{\"keccak256\":\"0xffee01d383cd4e1a5530c614bf4360c1ef070c288abec9da1eb531b51bc07235\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://04f0046cac285d8ec44ebbb1f79dc94fab4495767190cad8364fbc1fafaadfb9\",\"dweb:/ipfs/QmUawAunwzXfCyShWfhKeThAgKtqe51hmrxvrXvM772M2R\"]},\"src/interfaces/vault/IVaultStorage.sol\":{\"keccak256\":\"0x592626f13754194f83047135de19229c49390bd59e34659b1bb38be71d973a22\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://06a6a9dfddd05e580b32bebe2cff4f63ba26a653180676d58225dd30d9c89d3e\",\"dweb:/ipfs/QmdgzBeY6Sxo8mGtyBxtv1tM1c2kU6J6zjeRd7vuXm4DU6\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.25+commit.b61c2a91"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"networkRegistry","type":"address"},{"internalType":"address","name":"vaultFactory","type":"address"},{"internalType":"address","name":"operatorVaultOptInService","type":"address"},{"internalType":"address","name":"operatorNetworkOptInService","type":"address"},{"internalType":"address","name":"delegatorFactory","type":"address"},{"internalType":"uint64","name":"entityType","type":"uint64"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"AccessControlBadConfirmation"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bytes32","name":"neededRole","type":"bytes32"}],"type":"error","name":"AccessControlUnauthorizedAccount"},{"inputs":[],"type":"error","name":"AlreadySet"},{"inputs":[],"type":"error","name":"CheckpointUnorderedInsertion"},{"inputs":[],"type":"error","name":"DuplicateRoleHolder"},{"inputs":[],"type":"error","name":"ExceedsMaxNetworkLimit"},{"inputs":[],"type":"error","name":"InsufficientHookGas"},{"inputs":[],"type":"error","name":"InvalidInitialization"},{"inputs":[],"type":"error","name":"MissingRoleHolders"},{"inputs":[],"type":"error","name":"NotInitialized"},{"inputs":[],"type":"error","name":"NotInitializing"},{"inputs":[],"type":"error","name":"NotNetwork"},{"inputs":[],"type":"error","name":"NotSlasher"},{"inputs":[],"type":"error","name":"NotVault"},{"inputs":[],"type":"error","name":"ReentrancyGuardReentrantCall"},{"inputs":[{"internalType":"uint8","name":"bits","type":"uint8"},{"internalType":"uint256","name":"value","type":"uint256"}],"type":"error","name":"SafeCastOverflowedUintDowncast"},{"inputs":[],"type":"error","name":"ZeroAddressRoleHolder"},{"inputs":[{"internalType":"uint64","name":"version","type":"uint64","indexed":false}],"type":"event","name":"Initialized","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32","indexed":true},{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false},{"internalType":"uint48","name":"captureTimestamp","type":"uint48","indexed":false}],"type":"event","name":"OnSlash","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"bytes32","name":"previousAdminRole","type":"bytes32","indexed":true},{"internalType":"bytes32","name":"newAdminRole","type":"bytes32","indexed":true}],"type":"event","name":"RoleAdminChanged","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"address","name":"sender","type":"address","indexed":true}],"type":"event","name":"RoleGranted","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"address","name":"sender","type":"address","indexed":true}],"type":"event","name":"RoleRevoked","anonymous":false},{"inputs":[{"internalType":"address","name":"hook","type":"address","indexed":true}],"type":"event","name":"SetHook","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"SetMaxNetworkLimit","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"SetNetworkLimit","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32","indexed":true},{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"SetOperatorNetworkLimit","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"DEFAULT_ADMIN_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"FACTORY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"HOOK_GAS_LIMIT","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"HOOK_RESERVE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"HOOK_SET_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"NETWORK_LIMIT_SET_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"NETWORK_REGISTRY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"OPERATOR_NETWORK_LIMIT_SET_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"OPERATOR_NETWORK_OPT_IN_SERVICE","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"OPERATOR_VAULT_OPT_IN_SERVICE","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"TYPE","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"VAULT_FACTORY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"VERSION","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getRoleAdmin","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"grantRole"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"hasRole","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"hook","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"}],"stateMutability":"view","type":"function","name":"maxNetworkLimit","outputs":[{"internalType":"uint256","name":"value","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"}],"stateMutability":"view","type":"function","name":"networkLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"uint48","name":"timestamp","type":"uint48"},{"internalType":"bytes","name":"hint","type":"bytes"}],"stateMutability":"view","type":"function","name":"networkLimitAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint48","name":"captureTimestamp","type":"uint48"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"onSlash"},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"operatorNetworkLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint48","name":"timestamp","type":"uint48"},{"internalType":"bytes","name":"hint","type":"bytes"}],"stateMutability":"view","type":"function","name":"operatorNetworkLimitAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"callerConfirmation","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"renounceRole"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"revokeRole"},{"inputs":[{"internalType":"address","name":"hook_","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setHook"},{"inputs":[{"internalType":"uint96","name":"identifier","type":"uint96"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setMaxNetworkLimit"},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setNetworkLimit"},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setOperatorNetworkLimit"},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"stake","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint48","name":"timestamp","type":"uint48"},{"internalType":"bytes","name":"hints","type":"bytes"}],"stateMutability":"view","type":"function","name":"stakeAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"staticDelegateCall"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"vault","outputs":[{"internalType":"address","name":"","type":"address"}]}],"devdoc":{"kind":"dev","methods":{"VERSION()":{"details":"Must return 1 for this one.","returns":{"_0":"version of the delegator"}},"getRoleAdmin(bytes32)":{"details":"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}."},"grantRole(bytes32,address)":{"details":"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event."},"hasRole(bytes32,address)":{"details":"Returns `true` if `account` has been granted `role`."},"initialize(bytes)":{"params":{"data":"some data to use"}},"networkLimit(bytes32)":{"params":{"subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"},"returns":{"_0":"limit of the subnetwork"}},"networkLimitAt(bytes32,uint48,bytes)":{"params":{"hint":"hint for checkpoint index","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)","timestamp":"time point to get the subnetwork limit at"},"returns":{"_0":"limit of the subnetwork at the given timestamp"}},"onSlash(bytes32,address,uint256,uint48,bytes)":{"details":"Only the vault's slasher can call this function.","params":{"amount":"amount of the collateral slashed","captureTimestamp":"time point when the stake was captured","data":"some additional data","operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"}},"operatorNetworkLimit(bytes32,address)":{"params":{"operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"},"returns":{"_0":"limit of the operator for the subnetwork"}},"operatorNetworkLimitAt(bytes32,address,uint48,bytes)":{"params":{"hint":"hint for checkpoint index","operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)","timestamp":"time point to get the operator's limit for the subnetwork at"},"returns":{"_0":"limit of the operator for the subnetwork at the given timestamp"}},"renounceRole(bytes32,address)":{"details":"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `callerConfirmation`. May emit a {RoleRevoked} event."},"revokeRole(bytes32,address)":{"details":"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event."},"setHook(address)":{"details":"Only a HOOK_SET_ROLE holder can call this function. The hook can have arbitrary logic under certain functions, however, it doesn't affect the stake guarantees.","params":{"hook":"address of the hook"}},"setMaxNetworkLimit(uint96,uint256)":{"details":"Only a network can call this function.","params":{"amount":"new maximum subnetwork's limit"}},"setNetworkLimit(bytes32,uint256)":{"details":"Only a NETWORK_LIMIT_SET_ROLE holder can call this function.","params":{"amount":"new limit of the subnetwork","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"}},"setOperatorNetworkLimit(bytes32,address,uint256)":{"details":"Only an OPERATOR_NETWORK_LIMIT_SET_ROLE holder can call this function.","params":{"amount":"new limit of the operator for the subnetwork","operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"}},"stake(bytes32,address)":{"details":"Warning: this function is not safe to use for stake capturing, as it can change by the end of the block.","params":{"operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"},"returns":{"_0":"slashable stake until the end of the next epoch"}},"stakeAt(bytes32,address,uint48,bytes)":{"details":"Warning: it is not safe to use timestamp >= current one for the stake capturing, as it can change later.","params":{"hints":"hints for the checkpoints' indexes","operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)","timestamp":"time point to capture the stake at"},"returns":{"_0":"slashable stake at the given timestamp until the end of the consequent epoch"}},"staticDelegateCall(address,bytes)":{"details":"It allows to use this contract's storage on-chain.","params":{"data":"data to make a delegatecall with","target":"address of the contract to make a delegatecall to"}},"supportsInterface(bytes4)":{"details":"See {IERC165-supportsInterface}."}},"version":1},"userdoc":{"kind":"user","methods":{"FACTORY()":{"notice":"Get the factory's address."},"HOOK_GAS_LIMIT()":{"notice":"Get a gas limit for the hook."},"HOOK_RESERVE()":{"notice":"Get a reserve gas between the gas limit check and the hook's execution."},"HOOK_SET_ROLE()":{"notice":"Get a hook setter's role."},"NETWORK_LIMIT_SET_ROLE()":{"notice":"Get a subnetwork limit setter's role."},"NETWORK_REGISTRY()":{"notice":"Get the network registry's address."},"OPERATOR_NETWORK_LIMIT_SET_ROLE()":{"notice":"Get an operator-subnetwork limit setter's role."},"OPERATOR_NETWORK_OPT_IN_SERVICE()":{"notice":"Get the operator-network opt-in service's address."},"OPERATOR_VAULT_OPT_IN_SERVICE()":{"notice":"Get the operator-vault opt-in service's address."},"TYPE()":{"notice":"Get the entity's type."},"VAULT_FACTORY()":{"notice":"Get the vault factory's address."},"VERSION()":{"notice":"Get a version of the delegator (different versions mean different interfaces)."},"hook()":{"notice":"Get the hook's address."},"initialize(bytes)":{"notice":"Initialize this entity contract by using a given data."},"maxNetworkLimit(bytes32)":{"notice":"Get a particular subnetwork's maximum limit (meaning the subnetwork is not ready to get more as a stake)."},"networkLimit(bytes32)":{"notice":"Get a subnetwork's limit (how much stake the vault curator is ready to give to the subnetwork)."},"networkLimitAt(bytes32,uint48,bytes)":{"notice":"Get a subnetwork's limit at a given timestamp using a hint (how much stake the vault curator is ready to give to the subnetwork)."},"onSlash(bytes32,address,uint256,uint48,bytes)":{"notice":"Called when a slash happens."},"operatorNetworkLimit(bytes32,address)":{"notice":"Get an operator's limit for a subnetwork. (how much stake the vault curator is ready to give to the operator for the subnetwork)"},"operatorNetworkLimitAt(bytes32,address,uint48,bytes)":{"notice":"Get an operator's limit for a subnetwork at a given timestamp using a hint (how much stake the vault curator is ready to give to the operator for the subnetwork)."},"setHook(address)":{"notice":"Set a new hook."},"setMaxNetworkLimit(uint96,uint256)":{"notice":"Set a maximum limit for a subnetwork (how much stake the subnetwork is ready to get). identifier identifier of the subnetwork"},"setNetworkLimit(bytes32,uint256)":{"notice":"Set a subnetwork's limit (how much stake the vault curator is ready to give to the subnetwork)."},"setOperatorNetworkLimit(bytes32,address,uint256)":{"notice":"Set an operator's limit for a subnetwork. (how much stake the vault curator is ready to give to the operator for the subnetwork)"},"stake(bytes32,address)":{"notice":"Get a stake that a given subnetwork will be able to slash for a certain operator until the end of the next epoch (if no cross-slashing and no slashings by the subnetwork)."},"stakeAt(bytes32,address,uint48,bytes)":{"notice":"Get a stake that a given subnetwork could be able to slash for a certain operator at a given timestamp until the end of the consequent epoch using hints (if no cross-slashing and no slashings by the subnetwork)."},"staticDelegateCall(address,bytes)":{"notice":"Make a delegatecall from this contract to a given target contract with a particular data (always reverts with a return data)."},"vault()":{"notice":"Get the vault's address."}},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/contracts/delegator/FullRestakeDelegator.sol":"FullRestakeDelegator"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol":{"keccak256":"0x6662ec4e5cefca03eeadd073e9469df8d2944bb2ee8ec8f7622c2c46aab5f225","urls":["bzz-raw://4d8544c6f8daa4d1bc215c6a72fe0acdb748664a105b0e5efc19295667521d45","dweb:/ipfs/QmdGWqdnXT8S3RgCR6aV8XHZrsybieMQLLnug1NtpSjEXN"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b","urls":["bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609","dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol":{"keccak256":"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397","urls":["bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9","dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardUpgradeable.sol":{"keccak256":"0xb44e086e941292cdc7f440de51478493894ef0b1aeccb0c4047445919f667f74","urls":["bzz-raw://942dad22fbdc1669f025540ba63aa3ccfad5f8458fc5d4525b31ebf272e7af45","dweb:/ipfs/Qmdo4X2M82aM3AMoW2kf2jhYkSCyC4T1pHNd6obdsDFnAB"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol":{"keccak256":"0xdaba3f7c42c55b2896353f32bd27d4d5f8bae741b3b05d4c53f67abc4dc47ce8","urls":["bzz-raw://1fa2e61141c602510bcd2cd936ed9561922ac8772a9b9c9a9db091a74e354a45","dweb:/ipfs/QmcHQDDoEBwJmwUbzoVkytvJsBx3KVHYFFnDkvRGWh9Wmh"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol":{"keccak256":"0xb6b36edd6a2999fd243ff226d6cbf84bd71af2432bbd0dfe19392996a1d9cb41","urls":["bzz-raw://1fd2f35495652e57e3f99bc6c510bc5f7dd398a176ea2e72d8ed730aebc6ca26","dweb:/ipfs/QmTQV6X4gkikTib49cho5iDX3JvSQbdsoEChoDwrk3CbbH"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b","urls":["bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df","dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d","urls":["bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875","dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol":{"keccak256":"0xe19a4d5f31d2861e7344e8e535e2feafb913d806d3e2b5fe7782741a2a7094fe","urls":["bzz-raw://4aed79c0fa6f0546ed02f2f683e8f77f0fd2ed7eb34d8bbf3d373c9a6d95b13c","dweb:/ipfs/QmWqVz6UAVqmnWU5pqYPt1o6iDEZyPaBraAA3rKfTTSfYj"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/Checkpoints.sol":{"keccak256":"0xbdc5e074d7dd6678f67e92b1a51a20226801a407b0e1af3da367c5d1ff4519ad","urls":["bzz-raw://a36cca6b22fff3db16fc789ff6c60eea71d4b156065d4d0c83a0bc5e91a77a8b","dweb:/ipfs/QmYN3exd5AemxjBrN8XMB1p5LbbE16uC3sjbYjwi8AjcGR"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/types/Time.sol":{"keccak256":"0xc7755af115020049e4140f224f9ee88d7e1799ffb0646f37bf0df24bf6213f58","urls":["bzz-raw://7f09bf94d5274334ec021f61a04659db303f31e60460e14b709c9bf187740111","dweb:/ipfs/QmNvgomZYUwFAt4cZbPWAiTeSZQreGehY9BK5xyVJsUttb"],"license":"MIT"},"src/contracts/common/Entity.sol":{"keccak256":"0x3d61a932995b8443381f3950542d388223a2c26dd5d29a3274dea3baa7388bd7","urls":["bzz-raw://7cdf5f03ca72fd263fd32ff59c8d88ddca911ae83896a287d10772c1bbe9b138","dweb:/ipfs/QmbP84r5BWT1Rn9AYTntWSf3xUMTTCohTZJFhbBhDXFoHa"],"license":"BUSL-1.1"},"src/contracts/common/StaticDelegateCallable.sol":{"keccak256":"0x350029aa8955eacaffffaeb58babc5c98e80ebc5c5db388ed17ee6465f4a9d90","urls":["bzz-raw://eb392a8ee9050e0af606897df63e3404e3829e8b688b580663892f9664195764","dweb:/ipfs/QmaXC8jqV8UrrAFkzXTEv2fJF56sy33HhLxAzaRZmUxuXD"],"license":"BUSL-1.1"},"src/contracts/delegator/BaseDelegator.sol":{"keccak256":"0x7c54d491fdd4415b764a9c8defa068e56d4c0c8c9419be0053a1d377669290e8","urls":["bzz-raw://9238bfbad0f6eeb0dc7727724de14380f1980b395902269703d5e2ef07e52e10","dweb:/ipfs/QmPJn1V4HNXcEghYvogGuSTF24dSQUPosR5qtsXcmNqRm3"],"license":"BUSL-1.1"},"src/contracts/delegator/FullRestakeDelegator.sol":{"keccak256":"0x0a81c4f8e72914563a9cb771e93acf889c71ea36b7bec040e4eb562b199d5af1","urls":["bzz-raw://6fc66b6ba02da77046a0bbbd1dd407a62c08f52e04486c9cbd2cb1cca3da555f","dweb:/ipfs/QmZQivK1ZnMxfRQQ5aLpV9co5u55wQVNev5Rg1hzAqxhkE"],"license":"BUSL-1.1"},"src/contracts/libraries/Checkpoints.sol":{"keccak256":"0xba90097c8bfe0a975499428b5f8ac5569483c7d92ccc28c12d70de416aae040c","urls":["bzz-raw://12f5d93ca94cd06d3147db68993165a58e17903ed53682560de61f3085ad4609","dweb:/ipfs/QmePiuAqvXprMLmFZkGZeGjvGPAvsEDHfCDv7BoQhXu9xE"],"license":"MIT"},"src/contracts/libraries/Subnetwork.sol":{"keccak256":"0xf5ef5506fd66082b3c2e7f3df37529f5a8efad32ac62e7c8914bd63219190bfe","urls":["bzz-raw://ba031a54ee0d0e9a270c2b9e18437f5668cfeb659cfd5fe0677459d7fcac2a56","dweb:/ipfs/QmReP3H7qQ78tAfgLnJKsNEQNCQfF1X1Get38Ffd4kzq32"],"license":"MIT"},"src/interfaces/common/IEntity.sol":{"keccak256":"0x8ef4b63d6da63489778ccd5f8d13ebdd527dd4b62730b2c616df5af7474d2d21","urls":["bzz-raw://5a8d69576a9219d85c50816a18ad53a4d53cfcb27ed38b8cccc808dc2734b71b","dweb:/ipfs/QmYVN3P4Q4REvBWJ97TbAcaxm3uyB2anV6NSGa6ZtSwcEv"],"license":"MIT"},"src/interfaces/common/IMigratableEntity.sol":{"keccak256":"0x8f5f2809f3afbe8ebfbb365dd7b57b4dd3b6f9943a6187eaf648d45895b8e3c4","urls":["bzz-raw://0ffe640537d539e7a4fde70d30d3e4c57f4ba9c2c25c450cea713aae38e8fd5c","dweb:/ipfs/QmSUTGzvdcn1R1KB7tLThMRtESsfPbeXDhhhKWGtntzBds"],"license":"MIT"},"src/interfaces/common/IRegistry.sol":{"keccak256":"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb","urls":["bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014","dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK"],"license":"MIT"},"src/interfaces/common/IStaticDelegateCallable.sol":{"keccak256":"0xa335d4e81b9071b7de66ef92b43ff20671d86516eb1be46fef29a3483cd3f5d5","urls":["bzz-raw://d464b9db863c14c05547d2b23352f2e9b7b784799cf09f6bbc4906a2a74e3516","dweb:/ipfs/QmUVWzFvJz7eEbDQKiFTTzwi7TEbjcs3VmwdM4kuptAKvi"],"license":"MIT"},"src/interfaces/delegator/IBaseDelegator.sol":{"keccak256":"0x96bb312f032e17accce3f8f80936d99468029d6b37c9ca74acdb4b026a0148ee","urls":["bzz-raw://2a66dcb5b7d1a6ef6a363431ea98ebd78bc4fdd3d7a134d9b542dc66e7d025c2","dweb:/ipfs/QmRhTPLd2ZAyRHmJUFUcWKs9b3if49QY17LYZuRqWmghw8"],"license":"MIT"},"src/interfaces/delegator/IDelegatorHook.sol":{"keccak256":"0xc51aa8d7d1f6c8043ee819b7aeb86da0e993912e1442098df897e299f01f9f46","urls":["bzz-raw://adddf5cb2ba282aeb576b26efb28640f865a1721cc9b6eee8b3ee0457a2c9780","dweb:/ipfs/QmNYgAmnLRwWZbhTuQhZs9rx4zcme1df5mEepkrniorSoW"],"license":"MIT"},"src/interfaces/delegator/IFullRestakeDelegator.sol":{"keccak256":"0xa3c8cb2e45d4d8ce90e95263bea40c01dc400f05ad65bc29597d878606be5e7d","urls":["bzz-raw://782cf5e201aa4cca037ebafd3807a68ff1cc721d5b8416a35244db0d0607369e","dweb:/ipfs/QmQkJks6x7CKndeTPa9LxgTNygD5uEi7obhADhpq1Lsr9A"],"license":"MIT"},"src/interfaces/service/IOptInService.sol":{"keccak256":"0x76fb5460a6d87a5705433d4fbeff7253cd75b8bbd0c888b2088f16e86ace146a","urls":["bzz-raw://990322019b3d11465f7024bae77ccbf7e2fe5d6fa3c754584778f37d04fa1337","dweb:/ipfs/QmaSNHzcqxTkUCG9a4nqVfLECHLdjdrwAnDi3yDC7tDL24"],"license":"MIT"},"src/interfaces/vault/IVault.sol":{"keccak256":"0xffee01d383cd4e1a5530c614bf4360c1ef070c288abec9da1eb531b51bc07235","urls":["bzz-raw://04f0046cac285d8ec44ebbb1f79dc94fab4495767190cad8364fbc1fafaadfb9","dweb:/ipfs/QmUawAunwzXfCyShWfhKeThAgKtqe51hmrxvrXvM772M2R"],"license":"MIT"},"src/interfaces/vault/IVaultStorage.sol":{"keccak256":"0x592626f13754194f83047135de19229c49390bd59e34659b1bb38be71d973a22","urls":["bzz-raw://06a6a9dfddd05e580b32bebe2cff4f63ba26a653180676d58225dd30d9c89d3e","dweb:/ipfs/QmdgzBeY6Sxo8mGtyBxtv1tM1c2kU6J6zjeRd7vuXm4DU6"],"license":"MIT"}},"version":1},"id":82} \ No newline at end of file diff --git a/out/MetadataService.sol/MetadataService.json b/out/MetadataService.sol/MetadataService.json index 8cf03c99..3a88ea29 100644 --- a/out/MetadataService.sol/MetadataService.json +++ b/out/MetadataService.sol/MetadataService.json @@ -1 +1 @@ -{"abi":[{"type":"constructor","inputs":[{"name":"registry","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"REGISTRY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"metadataURL","inputs":[{"name":"entity","type":"address","internalType":"address"}],"outputs":[{"name":"value","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"setMetadataURL","inputs":[{"name":"metadataURL_","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"SetMetadataURL","inputs":[{"name":"entity","type":"address","indexed":true,"internalType":"address"},{"name":"metadataURL","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"error","name":"AlreadySet","inputs":[]},{"type":"error","name":"NotEntity","inputs":[]}],"bytecode":{"object":"0x60a034606c57601f61058b38819003918201601f19168301916001600160401b03831184841017607057808492602094604052833981010312606c57516001600160a01b0381168103606c576080526040516105069081610085823960805181818160a501526103910152f35b5f80fd5b634e487b7160e01b5f52604160045260245ffdfe608060409080825260049081361015610016575f80fd5b5f3560e01c90816306433b1b1461037f575080634edb8f391461031a5763747daec514610041575f80fd5b34610305576020806003193601126103055781359267ffffffffffffffff808511610305573660238601121561030557848401359081116103055760249485810190368784830101116103055783516302910f8b60e31b81523387820152858189817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa908115610310575f916102d6575b50156102c657335f525f85526100f4845f2061042e565b95601f840191601f19918284169887516101108a8c01826103f8565b87815289810190888883375f8b8a8301015282519051908b82821494856102b5575b50505050506102a75750335f525f8752855f209261015084546103c0565b90601f821161026c575b50505f91601f86116001146101dc5750928492837ff8dac27f20d622a0759394313683066cb713a406633a3a7dde8799654015ea64999a5f9794899789936101cf575b5050508360011b9087198560031b1c19161790555b8184519780895288015283870137840101528133948101030190a2005b01013590505f808061019d565b859991991691835f52875f20925f5b8181106102535750927ff8dac27f20d622a0759394313683066cb713a406633a3a7dde8799654015ea64999a889693889693875f9a9710610238575b50505050600183811b0190556101b2565b891960f88860031b161c19920101351690555f808080610227565b91938960018192868f89010135815501950192016101eb565b845f52885f209060051c81019189881061029d575b601f0160051c01905b8181101561015a575f815560010161028a565b9091508190610281565b865163a741a04560e01b8152fd5b012091201490505f80808b81610132565b835163184849cf60e01b81528690fd5b90508581813d8311610309575b6102ed81836103f8565b8101031261030557518015158103610305575f6100dd565b5f80fd5b503d6102e3565b85513d5f823e3d90fd5b503461030557602036600319011261030557356001600160a01b0381169190829003610305576020915f525f8252610353815f2061042e565b815192839181835280519182918282860152018484015e5f828201840152601f01601f19168101030190f35b34610305575f366003190112610305577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b90600182811c921680156103ee575b60208310146103da57565b634e487b7160e01b5f52602260045260245ffd5b91607f16916103cf565b90601f8019910116810190811067ffffffffffffffff82111761041a57604052565b634e487b7160e01b5f52604160045260245ffd5b9060405191825f8254610440816103c0565b908184526020946001916001811690815f146104ae5750600114610470575b50505061046e925003836103f8565b565b5f90815285812095935091905b81831061049657505061046e93508201015f808061045f565b8554888401850152948501948794509183019161047d565b9250505061046e94925060ff191682840152151560051b8201015f808061045f56fea2646970667358221220b3f8fcdf85ffa9ec7d50bd86823cb074384a705df32dfa8a52117fc6e9ab1b4964736f6c63430008190033","sourceMap":"276:822:89:-:0;;;;;;;;;;;;;-1:-1:-1;;276:822:89;;;;-1:-1:-1;;;;;276:822:89;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;276:822:89;;;;;;621:19;;276:822;;;;;;;;621:19;276:822;;;;;;;;;;;;-1:-1:-1;276:822:89;;;;;;-1:-1:-1;276:822:89;;;;;-1:-1:-1;276:822:89","linkReferences":{}},"deployedBytecode":{"object":"0x608060409080825260049081361015610016575f80fd5b5f3560e01c90816306433b1b1461037f575080634edb8f391461031a5763747daec514610041575f80fd5b34610305576020806003193601126103055781359267ffffffffffffffff808511610305573660238601121561030557848401359081116103055760249485810190368784830101116103055783516302910f8b60e31b81523387820152858189817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa908115610310575f916102d6575b50156102c657335f525f85526100f4845f2061042e565b95601f840191601f19918284169887516101108a8c01826103f8565b87815289810190888883375f8b8a8301015282519051908b82821494856102b5575b50505050506102a75750335f525f8752855f209261015084546103c0565b90601f821161026c575b50505f91601f86116001146101dc5750928492837ff8dac27f20d622a0759394313683066cb713a406633a3a7dde8799654015ea64999a5f9794899789936101cf575b5050508360011b9087198560031b1c19161790555b8184519780895288015283870137840101528133948101030190a2005b01013590505f808061019d565b859991991691835f52875f20925f5b8181106102535750927ff8dac27f20d622a0759394313683066cb713a406633a3a7dde8799654015ea64999a889693889693875f9a9710610238575b50505050600183811b0190556101b2565b891960f88860031b161c19920101351690555f808080610227565b91938960018192868f89010135815501950192016101eb565b845f52885f209060051c81019189881061029d575b601f0160051c01905b8181101561015a575f815560010161028a565b9091508190610281565b865163a741a04560e01b8152fd5b012091201490505f80808b81610132565b835163184849cf60e01b81528690fd5b90508581813d8311610309575b6102ed81836103f8565b8101031261030557518015158103610305575f6100dd565b5f80fd5b503d6102e3565b85513d5f823e3d90fd5b503461030557602036600319011261030557356001600160a01b0381169190829003610305576020915f525f8252610353815f2061042e565b815192839181835280519182918282860152018484015e5f828201840152601f01601f19168101030190f35b34610305575f366003190112610305577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b90600182811c921680156103ee575b60208310146103da57565b634e487b7160e01b5f52602260045260245ffd5b91607f16916103cf565b90601f8019910116810190811067ffffffffffffffff82111761041a57604052565b634e487b7160e01b5f52604160045260245ffd5b9060405191825f8254610440816103c0565b908184526020946001916001811690815f146104ae5750600114610470575b50505061046e925003836103f8565b565b5f90815285812095935091905b81831061049657505061046e93508201015f808061045f565b8554888401850152948501948794509183019161047d565b9250505061046e94925060ff191682840152151560051b8201015f808061045f56fea2646970667358221220b3f8fcdf85ffa9ec7d50bd86823cb074384a705df32dfa8a52117fc6e9ab1b4964736f6c63430008190033","sourceMap":"276:822:89:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;797:40:89;;826:10;797:40;;;276:822;;;;;807:8;-1:-1:-1;;;;;276:822:89;797:40;;;;;;;276:822;797:40;;;276:822;796:41;;792:90;;826:10;276:822;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;3009:34:50;;;;;:80;;;;276:822:89;892:93;;;;;;;826:10;;276:822;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;1049:40;276:822;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;826:10;;276:822;;;1049:40;;;;276:822;;;;;;-1:-1:-1;276:822:89;;;;;;;;;;;;;;;;;;;;;;;;;;;;1049:40;276:822;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;276:822:89;;;;892:93;276:822;;-1:-1:-1;;;962:12:89;;;3009:80:50;276:822:89;3047:19:50;3070;;3047:42;;-1:-1:-1;3009:80:50;;;;;;;792:90:89;276:822;;-1:-1:-1;;;860:11:89;;276:822;;860:11;797:40;;;;;;;;;;;;;;;;:::i;:::-;;;276:822;;;;;;;;;;;;797:40;;;276:822;;;;797:40;;;;;;276:822;;;;;;;;;;;;;;;;-1:-1:-1;;276:822:89;;;;;-1:-1:-1;;;;;276:822:89;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;276:822:89;;;;;;;;;;;;;-1:-1:-1;;276:822:89;;;;410:33;-1:-1:-1;;;;;276:822:89;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;-1:-1:-1;276:822:89;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:::o;:::-;-1:-1:-1;276:822:89;;;;;;;;-1:-1:-1;;276:822:89;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;276:822:89;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","linkReferences":{},"immutableReferences":{"64970":[{"start":165,"length":32},{"start":913,"length":32}]}},"methodIdentifiers":{"REGISTRY()":"06433b1b","metadataURL(address)":"4edb8f39","setMetadataURL(string)":"747daec5"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"registry\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"AlreadySet\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotEntity\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"entity\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"metadataURL\",\"type\":\"string\"}],\"name\":\"SetMetadataURL\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"REGISTRY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"entity\",\"type\":\"address\"}],\"name\":\"metadataURL\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"value\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"metadataURL_\",\"type\":\"string\"}],\"name\":\"setMetadataURL\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"events\":{\"SetMetadataURL(address,string)\":{\"params\":{\"entity\":\"address of the entity\",\"metadataURL\":\"new metadata URL of the entity\"}}},\"kind\":\"dev\",\"methods\":{\"setMetadataURL(string)\":{\"params\":{\"metadataURL\":\"new metadata URL of the entity\"}}},\"stateVariables\":{\"REGISTRY\":{\"return\":\"address of the registry\",\"returns\":{\"_0\":\"address of the registry\"}},\"metadataURL\":{\"params\":{\"entity\":\"address of the entity\"},\"return\":\"value metadata URL of the entity\",\"returns\":{\"value\":\"metadata URL of the entity\"}}},\"version\":1},\"userdoc\":{\"events\":{\"SetMetadataURL(address,string)\":{\"notice\":\"Emitted when a metadata URL is set for an entity.\"}},\"kind\":\"user\",\"methods\":{\"REGISTRY()\":{\"notice\":\"Get the registry's address.\"},\"metadataURL(address)\":{\"notice\":\"Get a URL with an entity's metadata.\"},\"setMetadataURL(string)\":{\"notice\":\"Set a new metadata URL for a calling entity.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/contracts/service/MetadataService.sol\":\"MetadataService\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0x55f102ea785d8399c0e58d1108e2d289506dde18abc6db1b7f68c1f9f9bc5792\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e52e0a7765c943ef14e5bcf11e46e6139fa044be564881378349236bf2e3453\",\"dweb:/ipfs/QmZEeeXoFPW47amyP35gfzomF9DixqqTEPwzBakv6cZw6i\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875\",\"dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x5f7e4076e175393767754387c962926577f1660dd9b810187b9002407656be72\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7d533a1c97cd43a57cd9c465f7ee8dd0e39ae93a8fb8ff8e5303a356b081cdcc\",\"dweb:/ipfs/QmVBEei6aTnvYNZp2CHYVNKyZS4q1KkjANfY39WVXZXVoT\"]},\"src/contracts/service/MetadataService.sol\":{\"keccak256\":\"0x0c6867f020aea3c5536de919032a286c701fce7ec2069935922c33595c3fbb7b\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://5f1e26b31957977e6e9ba3d81b8dcd478989ac3317f61e3c197e152db971ae39\",\"dweb:/ipfs/QmbN2rtWtzPsoBqjXR8B4RmcuDkh3kaZyjL4VMq6RibkvX\"]},\"src/interfaces/common/IRegistry.sol\":{\"keccak256\":\"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014\",\"dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK\"]},\"src/interfaces/service/IMetadataService.sol\":{\"keccak256\":\"0xadc4d573ffbacb9b81ae8bfbfe0bb709a90aa3c98e62a0106cb10abb2253e394\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bc2051cce94b6df7612b44061b3da656e3af473b3032384895ff6ec3a3dd86bd\",\"dweb:/ipfs/QmaJr5pU56eVfZNiL44dpXfb5Ze2HNiTXXMTSHsU4QBF3t\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.25+commit.b61c2a91"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"registry","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"AlreadySet"},{"inputs":[],"type":"error","name":"NotEntity"},{"inputs":[{"internalType":"address","name":"entity","type":"address","indexed":true},{"internalType":"string","name":"metadataURL","type":"string","indexed":false}],"type":"event","name":"SetMetadataURL","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"REGISTRY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"entity","type":"address"}],"stateMutability":"view","type":"function","name":"metadataURL","outputs":[{"internalType":"string","name":"value","type":"string"}]},{"inputs":[{"internalType":"string","name":"metadataURL_","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"setMetadataURL"}],"devdoc":{"kind":"dev","methods":{"setMetadataURL(string)":{"params":{"metadataURL":"new metadata URL of the entity"}}},"version":1},"userdoc":{"kind":"user","methods":{"REGISTRY()":{"notice":"Get the registry's address."},"metadataURL(address)":{"notice":"Get a URL with an entity's metadata."},"setMetadataURL(string)":{"notice":"Set a new metadata URL for a calling entity."}},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/contracts/service/MetadataService.sol":"MetadataService"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0x55f102ea785d8399c0e58d1108e2d289506dde18abc6db1b7f68c1f9f9bc5792","urls":["bzz-raw://6e52e0a7765c943ef14e5bcf11e46e6139fa044be564881378349236bf2e3453","dweb:/ipfs/QmZEeeXoFPW47amyP35gfzomF9DixqqTEPwzBakv6cZw6i"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d","urls":["bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875","dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0x5f7e4076e175393767754387c962926577f1660dd9b810187b9002407656be72","urls":["bzz-raw://7d533a1c97cd43a57cd9c465f7ee8dd0e39ae93a8fb8ff8e5303a356b081cdcc","dweb:/ipfs/QmVBEei6aTnvYNZp2CHYVNKyZS4q1KkjANfY39WVXZXVoT"],"license":"MIT"},"src/contracts/service/MetadataService.sol":{"keccak256":"0x0c6867f020aea3c5536de919032a286c701fce7ec2069935922c33595c3fbb7b","urls":["bzz-raw://5f1e26b31957977e6e9ba3d81b8dcd478989ac3317f61e3c197e152db971ae39","dweb:/ipfs/QmbN2rtWtzPsoBqjXR8B4RmcuDkh3kaZyjL4VMq6RibkvX"],"license":"BUSL-1.1"},"src/interfaces/common/IRegistry.sol":{"keccak256":"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb","urls":["bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014","dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK"],"license":"MIT"},"src/interfaces/service/IMetadataService.sol":{"keccak256":"0xadc4d573ffbacb9b81ae8bfbfe0bb709a90aa3c98e62a0106cb10abb2253e394","urls":["bzz-raw://bc2051cce94b6df7612b44061b3da656e3af473b3032384895ff6ec3a3dd86bd","dweb:/ipfs/QmaJr5pU56eVfZNiL44dpXfb5Ze2HNiTXXMTSHsU4QBF3t"],"license":"MIT"}},"version":1},"id":89} \ No newline at end of file +{"abi":[{"type":"constructor","inputs":[{"name":"registry","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"REGISTRY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"metadataURL","inputs":[{"name":"entity","type":"address","internalType":"address"}],"outputs":[{"name":"value","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"setMetadataURL","inputs":[{"name":"metadataURL_","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"SetMetadataURL","inputs":[{"name":"entity","type":"address","indexed":true,"internalType":"address"},{"name":"metadataURL","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"error","name":"AlreadySet","inputs":[]},{"type":"error","name":"NotEntity","inputs":[]}],"bytecode":{"object":"0x60a034606c57601f61058b38819003918201601f19168301916001600160401b03831184841017607057808492602094604052833981010312606c57516001600160a01b0381168103606c576080526040516105069081610085823960805181818160a501526103910152f35b5f80fd5b634e487b7160e01b5f52604160045260245ffdfe608060409080825260049081361015610016575f80fd5b5f3560e01c90816306433b1b1461037f575080634edb8f391461031a5763747daec514610041575f80fd5b34610305576020806003193601126103055781359267ffffffffffffffff808511610305573660238601121561030557848401359081116103055760249485810190368784830101116103055783516302910f8b60e31b81523387820152858189817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa908115610310575f916102d6575b50156102c657335f525f85526100f4845f2061042e565b95601f840191601f19918284169887516101108a8c01826103f8565b87815289810190888883375f8b8a8301015282519051908b82821494856102b5575b50505050506102a75750335f525f8752855f209261015084546103c0565b90601f821161026c575b50505f91601f86116001146101dc5750928492837ff8dac27f20d622a0759394313683066cb713a406633a3a7dde8799654015ea64999a5f9794899789936101cf575b5050508360011b9087198560031b1c19161790555b8184519780895288015283870137840101528133948101030190a2005b01013590505f808061019d565b859991991691835f52875f20925f5b8181106102535750927ff8dac27f20d622a0759394313683066cb713a406633a3a7dde8799654015ea64999a889693889693875f9a9710610238575b50505050600183811b0190556101b2565b891960f88860031b161c19920101351690555f808080610227565b91938960018192868f89010135815501950192016101eb565b845f52885f209060051c81019189881061029d575b601f0160051c01905b8181101561015a575f815560010161028a565b9091508190610281565b865163a741a04560e01b8152fd5b012091201490505f80808b81610132565b835163184849cf60e01b81528690fd5b90508581813d8311610309575b6102ed81836103f8565b8101031261030557518015158103610305575f6100dd565b5f80fd5b503d6102e3565b85513d5f823e3d90fd5b503461030557602036600319011261030557356001600160a01b0381169190829003610305576020915f525f8252610353815f2061042e565b815192839181835280519182918282860152018484015e5f828201840152601f01601f19168101030190f35b34610305575f366003190112610305577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b90600182811c921680156103ee575b60208310146103da57565b634e487b7160e01b5f52602260045260245ffd5b91607f16916103cf565b90601f8019910116810190811067ffffffffffffffff82111761041a57604052565b634e487b7160e01b5f52604160045260245ffd5b9060405191825f8254610440816103c0565b908184526020946001916001811690815f146104ae5750600114610470575b50505061046e925003836103f8565b565b5f90815285812095935091905b81831061049657505061046e93508201015f808061045f565b8554888401850152948501948794509183019161047d565b9250505061046e94925060ff191682840152151560051b8201015f808061045f56fea2646970667358221220f4bc091bd988455bdb09ec457ffd06e9cb593557a0d80a0aa1a63dd679ee71b764736f6c63430008190033","sourceMap":"276:822:94:-:0;;;;;;;;;;;;;-1:-1:-1;;276:822:94;;;;-1:-1:-1;;;;;276:822:94;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;276:822:94;;;;;;621:19;;276:822;;;;;;;;621:19;276:822;;;;;;;;;;;;-1:-1:-1;276:822:94;;;;;;-1:-1:-1;276:822:94;;;;;-1:-1:-1;276:822:94","linkReferences":{}},"deployedBytecode":{"object":"0x608060409080825260049081361015610016575f80fd5b5f3560e01c90816306433b1b1461037f575080634edb8f391461031a5763747daec514610041575f80fd5b34610305576020806003193601126103055781359267ffffffffffffffff808511610305573660238601121561030557848401359081116103055760249485810190368784830101116103055783516302910f8b60e31b81523387820152858189817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa908115610310575f916102d6575b50156102c657335f525f85526100f4845f2061042e565b95601f840191601f19918284169887516101108a8c01826103f8565b87815289810190888883375f8b8a8301015282519051908b82821494856102b5575b50505050506102a75750335f525f8752855f209261015084546103c0565b90601f821161026c575b50505f91601f86116001146101dc5750928492837ff8dac27f20d622a0759394313683066cb713a406633a3a7dde8799654015ea64999a5f9794899789936101cf575b5050508360011b9087198560031b1c19161790555b8184519780895288015283870137840101528133948101030190a2005b01013590505f808061019d565b859991991691835f52875f20925f5b8181106102535750927ff8dac27f20d622a0759394313683066cb713a406633a3a7dde8799654015ea64999a889693889693875f9a9710610238575b50505050600183811b0190556101b2565b891960f88860031b161c19920101351690555f808080610227565b91938960018192868f89010135815501950192016101eb565b845f52885f209060051c81019189881061029d575b601f0160051c01905b8181101561015a575f815560010161028a565b9091508190610281565b865163a741a04560e01b8152fd5b012091201490505f80808b81610132565b835163184849cf60e01b81528690fd5b90508581813d8311610309575b6102ed81836103f8565b8101031261030557518015158103610305575f6100dd565b5f80fd5b503d6102e3565b85513d5f823e3d90fd5b503461030557602036600319011261030557356001600160a01b0381169190829003610305576020915f525f8252610353815f2061042e565b815192839181835280519182918282860152018484015e5f828201840152601f01601f19168101030190f35b34610305575f366003190112610305577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b90600182811c921680156103ee575b60208310146103da57565b634e487b7160e01b5f52602260045260245ffd5b91607f16916103cf565b90601f8019910116810190811067ffffffffffffffff82111761041a57604052565b634e487b7160e01b5f52604160045260245ffd5b9060405191825f8254610440816103c0565b908184526020946001916001811690815f146104ae5750600114610470575b50505061046e925003836103f8565b565b5f90815285812095935091905b81831061049657505061046e93508201015f808061045f565b8554888401850152948501948794509183019161047d565b9250505061046e94925060ff191682840152151560051b8201015f808061045f56fea2646970667358221220f4bc091bd988455bdb09ec457ffd06e9cb593557a0d80a0aa1a63dd679ee71b764736f6c63430008190033","sourceMap":"276:822:94:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;797:40:94;;826:10;797:40;;;276:822;;;;;807:8;-1:-1:-1;;;;;276:822:94;797:40;;;;;;;276:822;797:40;;;276:822;796:41;;792:90;;826:10;276:822;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;3009:34:51;;;;;:80;;;;276:822:94;892:93;;;;;;;826:10;;276:822;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;1049:40;276:822;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;826:10;;276:822;;;1049:40;;;;276:822;;;;;;-1:-1:-1;276:822:94;;;;;;;;;;;;;;;;;;;;;;;;;;;;1049:40;276:822;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;276:822:94;;;;892:93;276:822;;-1:-1:-1;;;962:12:94;;;3009:80:51;276:822:94;3047:19:51;3070;;3047:42;;-1:-1:-1;3009:80:51;;;;;;;792:90:94;276:822;;-1:-1:-1;;;860:11:94;;276:822;;860:11;797:40;;;;;;;;;;;;;;;;:::i;:::-;;;276:822;;;;;;;;;;;;797:40;;;276:822;;;;797:40;;;;;;276:822;;;;;;;;;;;;;;;;-1:-1:-1;;276:822:94;;;;;-1:-1:-1;;;;;276:822:94;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;276:822:94;;;;;;;;;;;;;-1:-1:-1;;276:822:94;;;;410:33;-1:-1:-1;;;;;276:822:94;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;-1:-1:-1;276:822:94;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:::o;:::-;-1:-1:-1;276:822:94;;;;;;;;-1:-1:-1;;276:822:94;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;276:822:94;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","linkReferences":{},"immutableReferences":{"71682":[{"start":165,"length":32},{"start":913,"length":32}]}},"methodIdentifiers":{"REGISTRY()":"06433b1b","metadataURL(address)":"4edb8f39","setMetadataURL(string)":"747daec5"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"registry\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"AlreadySet\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotEntity\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"entity\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"metadataURL\",\"type\":\"string\"}],\"name\":\"SetMetadataURL\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"REGISTRY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"entity\",\"type\":\"address\"}],\"name\":\"metadataURL\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"value\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"metadataURL_\",\"type\":\"string\"}],\"name\":\"setMetadataURL\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"events\":{\"SetMetadataURL(address,string)\":{\"params\":{\"entity\":\"address of the entity\",\"metadataURL\":\"new metadata URL of the entity\"}}},\"kind\":\"dev\",\"methods\":{\"setMetadataURL(string)\":{\"params\":{\"metadataURL\":\"new metadata URL of the entity\"}}},\"stateVariables\":{\"REGISTRY\":{\"return\":\"address of the registry\",\"returns\":{\"_0\":\"address of the registry\"}},\"metadataURL\":{\"params\":{\"entity\":\"address of the entity\"},\"return\":\"value metadata URL of the entity\",\"returns\":{\"value\":\"metadata URL of the entity\"}}},\"version\":1},\"userdoc\":{\"events\":{\"SetMetadataURL(address,string)\":{\"notice\":\"Emitted when a metadata URL is set for an entity.\"}},\"kind\":\"user\",\"methods\":{\"REGISTRY()\":{\"notice\":\"Get the registry's address.\"},\"metadataURL(address)\":{\"notice\":\"Get a URL with an entity's metadata.\"},\"setMetadataURL(string)\":{\"notice\":\"Set a new metadata URL for a calling entity.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/contracts/service/MetadataService.sol\":\"MetadataService\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0x55f102ea785d8399c0e58d1108e2d289506dde18abc6db1b7f68c1f9f9bc5792\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e52e0a7765c943ef14e5bcf11e46e6139fa044be564881378349236bf2e3453\",\"dweb:/ipfs/QmZEeeXoFPW47amyP35gfzomF9DixqqTEPwzBakv6cZw6i\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875\",\"dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x5f7e4076e175393767754387c962926577f1660dd9b810187b9002407656be72\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7d533a1c97cd43a57cd9c465f7ee8dd0e39ae93a8fb8ff8e5303a356b081cdcc\",\"dweb:/ipfs/QmVBEei6aTnvYNZp2CHYVNKyZS4q1KkjANfY39WVXZXVoT\"]},\"src/contracts/service/MetadataService.sol\":{\"keccak256\":\"0x0c6867f020aea3c5536de919032a286c701fce7ec2069935922c33595c3fbb7b\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://5f1e26b31957977e6e9ba3d81b8dcd478989ac3317f61e3c197e152db971ae39\",\"dweb:/ipfs/QmbN2rtWtzPsoBqjXR8B4RmcuDkh3kaZyjL4VMq6RibkvX\"]},\"src/interfaces/common/IRegistry.sol\":{\"keccak256\":\"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014\",\"dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK\"]},\"src/interfaces/service/IMetadataService.sol\":{\"keccak256\":\"0xadc4d573ffbacb9b81ae8bfbfe0bb709a90aa3c98e62a0106cb10abb2253e394\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bc2051cce94b6df7612b44061b3da656e3af473b3032384895ff6ec3a3dd86bd\",\"dweb:/ipfs/QmaJr5pU56eVfZNiL44dpXfb5Ze2HNiTXXMTSHsU4QBF3t\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.25+commit.b61c2a91"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"registry","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"AlreadySet"},{"inputs":[],"type":"error","name":"NotEntity"},{"inputs":[{"internalType":"address","name":"entity","type":"address","indexed":true},{"internalType":"string","name":"metadataURL","type":"string","indexed":false}],"type":"event","name":"SetMetadataURL","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"REGISTRY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"entity","type":"address"}],"stateMutability":"view","type":"function","name":"metadataURL","outputs":[{"internalType":"string","name":"value","type":"string"}]},{"inputs":[{"internalType":"string","name":"metadataURL_","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"setMetadataURL"}],"devdoc":{"kind":"dev","methods":{"setMetadataURL(string)":{"params":{"metadataURL":"new metadata URL of the entity"}}},"version":1},"userdoc":{"kind":"user","methods":{"REGISTRY()":{"notice":"Get the registry's address."},"metadataURL(address)":{"notice":"Get a URL with an entity's metadata."},"setMetadataURL(string)":{"notice":"Set a new metadata URL for a calling entity."}},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/contracts/service/MetadataService.sol":"MetadataService"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0x55f102ea785d8399c0e58d1108e2d289506dde18abc6db1b7f68c1f9f9bc5792","urls":["bzz-raw://6e52e0a7765c943ef14e5bcf11e46e6139fa044be564881378349236bf2e3453","dweb:/ipfs/QmZEeeXoFPW47amyP35gfzomF9DixqqTEPwzBakv6cZw6i"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d","urls":["bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875","dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0x5f7e4076e175393767754387c962926577f1660dd9b810187b9002407656be72","urls":["bzz-raw://7d533a1c97cd43a57cd9c465f7ee8dd0e39ae93a8fb8ff8e5303a356b081cdcc","dweb:/ipfs/QmVBEei6aTnvYNZp2CHYVNKyZS4q1KkjANfY39WVXZXVoT"],"license":"MIT"},"src/contracts/service/MetadataService.sol":{"keccak256":"0x0c6867f020aea3c5536de919032a286c701fce7ec2069935922c33595c3fbb7b","urls":["bzz-raw://5f1e26b31957977e6e9ba3d81b8dcd478989ac3317f61e3c197e152db971ae39","dweb:/ipfs/QmbN2rtWtzPsoBqjXR8B4RmcuDkh3kaZyjL4VMq6RibkvX"],"license":"BUSL-1.1"},"src/interfaces/common/IRegistry.sol":{"keccak256":"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb","urls":["bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014","dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK"],"license":"MIT"},"src/interfaces/service/IMetadataService.sol":{"keccak256":"0xadc4d573ffbacb9b81ae8bfbfe0bb709a90aa3c98e62a0106cb10abb2253e394","urls":["bzz-raw://bc2051cce94b6df7612b44061b3da656e3af473b3032384895ff6ec3a3dd86bd","dweb:/ipfs/QmaJr5pU56eVfZNiL44dpXfb5Ze2HNiTXXMTSHsU4QBF3t"],"license":"MIT"}},"version":1},"id":94} \ No newline at end of file diff --git a/out/NetworkMiddlewareService.sol/NetworkMiddlewareService.json b/out/NetworkMiddlewareService.sol/NetworkMiddlewareService.json index 919728bc..773addc9 100644 --- a/out/NetworkMiddlewareService.sol/NetworkMiddlewareService.json +++ b/out/NetworkMiddlewareService.sol/NetworkMiddlewareService.json @@ -1 +1 @@ -{"abi":[{"type":"constructor","inputs":[{"name":"networkRegistry","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"NETWORK_REGISTRY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"middleware","inputs":[{"name":"network","type":"address","internalType":"address"}],"outputs":[{"name":"value","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"setMiddleware","inputs":[{"name":"middleware_","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"SetMiddleware","inputs":[{"name":"network","type":"address","indexed":true,"internalType":"address"},{"name":"middleware","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"error","name":"AlreadySet","inputs":[]},{"type":"error","name":"NotNetwork","inputs":[]}],"bytecode":{"object":"0x60a034606c57601f6102dc38819003918201601f19168301916001600160401b03831184841017607057808492602094604052833981010312606c57516001600160a01b0381168103606c5760805260405161025790816100858239608051818181605401526101030152f35b5f80fd5b634e487b7160e01b5f52604160045260245ffdfe6080604090808252600480361015610015575f80fd5b5f3560e01c918263b7d8e1a9146100c357508163bb5ed03214610087575063c0cd7c3e14610041575f80fd5b34610083575f36600319011261008357517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b5f80fd5b90503461008357602036600319011261008357356001600160a01b038181169291839003610083576020925f525f8352815f2054169051908152f35b83346100835760209081600319360112610083576001600160a01b0384358181169490859003610083576302910f8b60e31b8152338682015283816024817f000000000000000000000000000000000000000000000000000000000000000086165afa908115610217575f916101b7575b50156101a7578390335f525f8452825f2054161461019857907ff64e2a8734392e221de13f5e56deb22d308e292cad394052affa97dbaf41ec9891335f525f8252805f20846bffffffffffffffffffffffff60a01b825416179055519283523392a2005b5163a741a04560e01b81528390fd5b81516323d53b9760e21b81528590fd5b9050833d8511610210575b601f8101601f1916820167ffffffffffffffff8111838210176101fd5785918391865281010312610083575180151581036100835786610134565b604188634e487b7160e01b5f525260245ffd5b503d6101c2565b83513d5f823e3d90fdfea26469706673582212204f9d8e7d56920d88e2358268d67aed11c7bec9fb5cfaaed34c7210bbd86b22e464736f6c63430008190033","sourceMap":"226:856:90:-:0;;;;;;;;;;;;;-1:-1:-1;;226:856:90;;;;-1:-1:-1;;;;;226:856:90;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;226:856:90;;;;;;592:34;;226:856;;;;;;;;592:34;226:856;;;;;;;;;;;;-1:-1:-1;226:856:90;;;;;;-1:-1:-1;226:856:90;;;;;-1:-1:-1;226:856:90","linkReferences":{}},"deployedBytecode":{"object":"0x6080604090808252600480361015610015575f80fd5b5f3560e01c918263b7d8e1a9146100c357508163bb5ed03214610087575063c0cd7c3e14610041575f80fd5b34610083575f36600319011261008357517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b5f80fd5b90503461008357602036600319011261008357356001600160a01b038181169291839003610083576020925f525f8352815f2054169051908152f35b83346100835760209081600319360112610083576001600160a01b0384358181169490859003610083576302910f8b60e31b8152338682015283816024817f000000000000000000000000000000000000000000000000000000000000000086165afa908115610217575f916101b7575b50156101a7578390335f525f8452825f2054161461019857907ff64e2a8734392e221de13f5e56deb22d308e292cad394052affa97dbaf41ec9891335f525f8252805f20846bffffffffffffffffffffffff60a01b825416179055519283523392a2005b5163a741a04560e01b81528390fd5b81516323d53b9760e21b81528590fd5b9050833d8511610210575b601f8101601f1916820167ffffffffffffffff8111838210176101fd5785918391865281010312610083575180151581036100835786610134565b604188634e487b7160e01b5f525260245ffd5b503d6101c2565b83513d5f823e3d90fdfea26469706673582212204f9d8e7d56920d88e2358268d67aed11c7bec9fb5cfaaed34c7210bbd86b22e464736f6c63430008190033","sourceMap":"226:856:90:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;226:856:90;;;;;356:41;-1:-1:-1;;;;;226:856:90;;;;;;;;;;;;;;;;;;-1:-1:-1;;226:856:90;;;;;-1:-1:-1;;;;;226:856:90;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;226:856:90;;;;;;;;;;;;-1:-1:-1;;;782:48:90;;819:10;782:48;;;226:856;792:16;782:48;226:856;782:48;792:16;226:856;;782:48;;;;;;;226:856;782:48;;;226:856;781:49;;777:99;;819:10;;;226:856;;;;;;;;;;890:37;886:87;;819:10;1035:38;819:10;;226:856;;;;;;;;;;;;;;;;;;;;;;819:10;1035:38;;226:856;886:87;226:856;-1:-1:-1;;;950:12:90;;226:856;;950:12;777:99;226:856;;-1:-1:-1;;;853:12:90;;226:856;;853:12;782:48;;;;;;;;;;226:856;;;-1:-1:-1;;226:856:90;;;;;;;;;;;;;;;;;;782:48;;226:856;;;;;;;;;;;;782:48;;;226:856;;;;;;;;;;;;782:48;;;;;;226:856;;;;;;;;","linkReferences":{},"immutableReferences":{"65042":[{"start":84,"length":32},{"start":259,"length":32}]}},"methodIdentifiers":{"NETWORK_REGISTRY()":"c0cd7c3e","middleware(address)":"bb5ed032","setMiddleware(address)":"b7d8e1a9"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"networkRegistry\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"AlreadySet\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotNetwork\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"network\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"middleware\",\"type\":\"address\"}],\"name\":\"SetMiddleware\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"NETWORK_REGISTRY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"network\",\"type\":\"address\"}],\"name\":\"middleware\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"value\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"middleware_\",\"type\":\"address\"}],\"name\":\"setMiddleware\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"events\":{\"SetMiddleware(address,address)\":{\"params\":{\"middleware\":\"new middleware of the network\",\"network\":\"address of the network\"}}},\"kind\":\"dev\",\"methods\":{\"setMiddleware(address)\":{\"params\":{\"middleware\":\"new middleware of the network\"}}},\"stateVariables\":{\"NETWORK_REGISTRY\":{\"return\":\"address of the network registry\",\"returns\":{\"_0\":\"address of the network registry\"}},\"middleware\":{\"params\":{\"network\":\"address of the network\"},\"return\":\"value middleware of the network\",\"returns\":{\"value\":\"middleware of the network\"}}},\"version\":1},\"userdoc\":{\"events\":{\"SetMiddleware(address,address)\":{\"notice\":\"Emitted when a middleware is set for a network.\"}},\"kind\":\"user\",\"methods\":{\"NETWORK_REGISTRY()\":{\"notice\":\"Get the network registry's address.\"},\"middleware(address)\":{\"notice\":\"Get a given network's middleware.\"},\"setMiddleware(address)\":{\"notice\":\"Set a new middleware for a calling network.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/contracts/service/NetworkMiddlewareService.sol\":\"NetworkMiddlewareService\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"],\"viaIR\":true},\"sources\":{\"src/contracts/service/NetworkMiddlewareService.sol\":{\"keccak256\":\"0x37c47d77b514ba404d7e20bcd4d5d281474af2c6b79e465b9132e4827f078fc5\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://bac73b7feb32cb266f06314e71c04cbaf22bd1fcc1b0ca519b38e22c4e47b05c\",\"dweb:/ipfs/QmYN1WaKob9fQd5RkmMT6n72enPW5XkPashuYrFXppiCYK\"]},\"src/interfaces/common/IRegistry.sol\":{\"keccak256\":\"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014\",\"dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK\"]},\"src/interfaces/service/INetworkMiddlewareService.sol\":{\"keccak256\":\"0x347afc7fcf1fbcdb96d66162070ef6c78aed27b3af2c1d5dfb4e511840631783\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2d90b8ceb495159e8e4e95d76447719dd166443f67dfabdd942846162071595c\",\"dweb:/ipfs/QmVVuiAWYx92T6vBvNMKZfTvraCf1fa16BsUKkdNs3hdHA\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.25+commit.b61c2a91"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"networkRegistry","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"AlreadySet"},{"inputs":[],"type":"error","name":"NotNetwork"},{"inputs":[{"internalType":"address","name":"network","type":"address","indexed":true},{"internalType":"address","name":"middleware","type":"address","indexed":false}],"type":"event","name":"SetMiddleware","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"NETWORK_REGISTRY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"network","type":"address"}],"stateMutability":"view","type":"function","name":"middleware","outputs":[{"internalType":"address","name":"value","type":"address"}]},{"inputs":[{"internalType":"address","name":"middleware_","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setMiddleware"}],"devdoc":{"kind":"dev","methods":{"setMiddleware(address)":{"params":{"middleware":"new middleware of the network"}}},"version":1},"userdoc":{"kind":"user","methods":{"NETWORK_REGISTRY()":{"notice":"Get the network registry's address."},"middleware(address)":{"notice":"Get a given network's middleware."},"setMiddleware(address)":{"notice":"Set a new middleware for a calling network."}},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/contracts/service/NetworkMiddlewareService.sol":"NetworkMiddlewareService"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"src/contracts/service/NetworkMiddlewareService.sol":{"keccak256":"0x37c47d77b514ba404d7e20bcd4d5d281474af2c6b79e465b9132e4827f078fc5","urls":["bzz-raw://bac73b7feb32cb266f06314e71c04cbaf22bd1fcc1b0ca519b38e22c4e47b05c","dweb:/ipfs/QmYN1WaKob9fQd5RkmMT6n72enPW5XkPashuYrFXppiCYK"],"license":"BUSL-1.1"},"src/interfaces/common/IRegistry.sol":{"keccak256":"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb","urls":["bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014","dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK"],"license":"MIT"},"src/interfaces/service/INetworkMiddlewareService.sol":{"keccak256":"0x347afc7fcf1fbcdb96d66162070ef6c78aed27b3af2c1d5dfb4e511840631783","urls":["bzz-raw://2d90b8ceb495159e8e4e95d76447719dd166443f67dfabdd942846162071595c","dweb:/ipfs/QmVVuiAWYx92T6vBvNMKZfTvraCf1fa16BsUKkdNs3hdHA"],"license":"MIT"}},"version":1},"id":90} \ No newline at end of file +{"abi":[{"type":"constructor","inputs":[{"name":"networkRegistry","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"NETWORK_REGISTRY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"middleware","inputs":[{"name":"network","type":"address","internalType":"address"}],"outputs":[{"name":"value","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"setMiddleware","inputs":[{"name":"middleware_","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"SetMiddleware","inputs":[{"name":"network","type":"address","indexed":true,"internalType":"address"},{"name":"middleware","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"error","name":"AlreadySet","inputs":[]},{"type":"error","name":"NotNetwork","inputs":[]}],"bytecode":{"object":"0x60a034606c57601f6102dc38819003918201601f19168301916001600160401b03831184841017607057808492602094604052833981010312606c57516001600160a01b0381168103606c5760805260405161025790816100858239608051818181605401526101030152f35b5f80fd5b634e487b7160e01b5f52604160045260245ffdfe6080604090808252600480361015610015575f80fd5b5f3560e01c918263b7d8e1a9146100c357508163bb5ed03214610087575063c0cd7c3e14610041575f80fd5b34610083575f36600319011261008357517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b5f80fd5b90503461008357602036600319011261008357356001600160a01b038181169291839003610083576020925f525f8352815f2054169051908152f35b83346100835760209081600319360112610083576001600160a01b0384358181169490859003610083576302910f8b60e31b8152338682015283816024817f000000000000000000000000000000000000000000000000000000000000000086165afa908115610217575f916101b7575b50156101a7578390335f525f8452825f2054161461019857907ff64e2a8734392e221de13f5e56deb22d308e292cad394052affa97dbaf41ec9891335f525f8252805f20846bffffffffffffffffffffffff60a01b825416179055519283523392a2005b5163a741a04560e01b81528390fd5b81516323d53b9760e21b81528590fd5b9050833d8511610210575b601f8101601f1916820167ffffffffffffffff8111838210176101fd5785918391865281010312610083575180151581036100835786610134565b604188634e487b7160e01b5f525260245ffd5b503d6101c2565b83513d5f823e3d90fdfea2646970667358221220edefbf25e21854c550c2299b8ff4a53611aa3ce64b16ba939ee5df729cf4591564736f6c63430008190033","sourceMap":"226:856:95:-:0;;;;;;;;;;;;;-1:-1:-1;;226:856:95;;;;-1:-1:-1;;;;;226:856:95;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;226:856:95;;;;;;592:34;;226:856;;;;;;;;592:34;226:856;;;;;;;;;;;;-1:-1:-1;226:856:95;;;;;;-1:-1:-1;226:856:95;;;;;-1:-1:-1;226:856:95","linkReferences":{}},"deployedBytecode":{"object":"0x6080604090808252600480361015610015575f80fd5b5f3560e01c918263b7d8e1a9146100c357508163bb5ed03214610087575063c0cd7c3e14610041575f80fd5b34610083575f36600319011261008357517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b5f80fd5b90503461008357602036600319011261008357356001600160a01b038181169291839003610083576020925f525f8352815f2054169051908152f35b83346100835760209081600319360112610083576001600160a01b0384358181169490859003610083576302910f8b60e31b8152338682015283816024817f000000000000000000000000000000000000000000000000000000000000000086165afa908115610217575f916101b7575b50156101a7578390335f525f8452825f2054161461019857907ff64e2a8734392e221de13f5e56deb22d308e292cad394052affa97dbaf41ec9891335f525f8252805f20846bffffffffffffffffffffffff60a01b825416179055519283523392a2005b5163a741a04560e01b81528390fd5b81516323d53b9760e21b81528590fd5b9050833d8511610210575b601f8101601f1916820167ffffffffffffffff8111838210176101fd5785918391865281010312610083575180151581036100835786610134565b604188634e487b7160e01b5f525260245ffd5b503d6101c2565b83513d5f823e3d90fdfea2646970667358221220edefbf25e21854c550c2299b8ff4a53611aa3ce64b16ba939ee5df729cf4591564736f6c63430008190033","sourceMap":"226:856:95:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;226:856:95;;;;;356:41;-1:-1:-1;;;;;226:856:95;;;;;;;;;;;;;;;;;;-1:-1:-1;;226:856:95;;;;;-1:-1:-1;;;;;226:856:95;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;226:856:95;;;;;;;;;;;;-1:-1:-1;;;782:48:95;;819:10;782:48;;;226:856;792:16;782:48;226:856;782:48;792:16;226:856;;782:48;;;;;;;226:856;782:48;;;226:856;781:49;;777:99;;819:10;;;226:856;;;;;;;;;;890:37;886:87;;819:10;1035:38;819:10;;226:856;;;;;;;;;;;;;;;;;;;;;;819:10;1035:38;;226:856;886:87;226:856;-1:-1:-1;;;950:12:95;;226:856;;950:12;777:99;226:856;;-1:-1:-1;;;853:12:95;;226:856;;853:12;782:48;;;;;;;;;;226:856;;;-1:-1:-1;;226:856:95;;;;;;;;;;;;;;;;;;782:48;;226:856;;;;;;;;;;;;782:48;;;226:856;;;;;;;;;;;;782:48;;;;;;226:856;;;;;;;;","linkReferences":{},"immutableReferences":{"71754":[{"start":84,"length":32},{"start":259,"length":32}]}},"methodIdentifiers":{"NETWORK_REGISTRY()":"c0cd7c3e","middleware(address)":"bb5ed032","setMiddleware(address)":"b7d8e1a9"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"networkRegistry\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"AlreadySet\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotNetwork\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"network\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"middleware\",\"type\":\"address\"}],\"name\":\"SetMiddleware\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"NETWORK_REGISTRY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"network\",\"type\":\"address\"}],\"name\":\"middleware\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"value\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"middleware_\",\"type\":\"address\"}],\"name\":\"setMiddleware\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"events\":{\"SetMiddleware(address,address)\":{\"params\":{\"middleware\":\"new middleware of the network\",\"network\":\"address of the network\"}}},\"kind\":\"dev\",\"methods\":{\"setMiddleware(address)\":{\"params\":{\"middleware\":\"new middleware of the network\"}}},\"stateVariables\":{\"NETWORK_REGISTRY\":{\"return\":\"address of the network registry\",\"returns\":{\"_0\":\"address of the network registry\"}},\"middleware\":{\"params\":{\"network\":\"address of the network\"},\"return\":\"value middleware of the network\",\"returns\":{\"value\":\"middleware of the network\"}}},\"version\":1},\"userdoc\":{\"events\":{\"SetMiddleware(address,address)\":{\"notice\":\"Emitted when a middleware is set for a network.\"}},\"kind\":\"user\",\"methods\":{\"NETWORK_REGISTRY()\":{\"notice\":\"Get the network registry's address.\"},\"middleware(address)\":{\"notice\":\"Get a given network's middleware.\"},\"setMiddleware(address)\":{\"notice\":\"Set a new middleware for a calling network.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/contracts/service/NetworkMiddlewareService.sol\":\"NetworkMiddlewareService\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"],\"viaIR\":true},\"sources\":{\"src/contracts/service/NetworkMiddlewareService.sol\":{\"keccak256\":\"0x37c47d77b514ba404d7e20bcd4d5d281474af2c6b79e465b9132e4827f078fc5\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://bac73b7feb32cb266f06314e71c04cbaf22bd1fcc1b0ca519b38e22c4e47b05c\",\"dweb:/ipfs/QmYN1WaKob9fQd5RkmMT6n72enPW5XkPashuYrFXppiCYK\"]},\"src/interfaces/common/IRegistry.sol\":{\"keccak256\":\"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014\",\"dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK\"]},\"src/interfaces/service/INetworkMiddlewareService.sol\":{\"keccak256\":\"0x347afc7fcf1fbcdb96d66162070ef6c78aed27b3af2c1d5dfb4e511840631783\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2d90b8ceb495159e8e4e95d76447719dd166443f67dfabdd942846162071595c\",\"dweb:/ipfs/QmVVuiAWYx92T6vBvNMKZfTvraCf1fa16BsUKkdNs3hdHA\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.25+commit.b61c2a91"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"networkRegistry","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"AlreadySet"},{"inputs":[],"type":"error","name":"NotNetwork"},{"inputs":[{"internalType":"address","name":"network","type":"address","indexed":true},{"internalType":"address","name":"middleware","type":"address","indexed":false}],"type":"event","name":"SetMiddleware","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"NETWORK_REGISTRY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"network","type":"address"}],"stateMutability":"view","type":"function","name":"middleware","outputs":[{"internalType":"address","name":"value","type":"address"}]},{"inputs":[{"internalType":"address","name":"middleware_","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setMiddleware"}],"devdoc":{"kind":"dev","methods":{"setMiddleware(address)":{"params":{"middleware":"new middleware of the network"}}},"version":1},"userdoc":{"kind":"user","methods":{"NETWORK_REGISTRY()":{"notice":"Get the network registry's address."},"middleware(address)":{"notice":"Get a given network's middleware."},"setMiddleware(address)":{"notice":"Set a new middleware for a calling network."}},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/contracts/service/NetworkMiddlewareService.sol":"NetworkMiddlewareService"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"src/contracts/service/NetworkMiddlewareService.sol":{"keccak256":"0x37c47d77b514ba404d7e20bcd4d5d281474af2c6b79e465b9132e4827f078fc5","urls":["bzz-raw://bac73b7feb32cb266f06314e71c04cbaf22bd1fcc1b0ca519b38e22c4e47b05c","dweb:/ipfs/QmYN1WaKob9fQd5RkmMT6n72enPW5XkPashuYrFXppiCYK"],"license":"BUSL-1.1"},"src/interfaces/common/IRegistry.sol":{"keccak256":"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb","urls":["bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014","dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK"],"license":"MIT"},"src/interfaces/service/INetworkMiddlewareService.sol":{"keccak256":"0x347afc7fcf1fbcdb96d66162070ef6c78aed27b3af2c1d5dfb4e511840631783","urls":["bzz-raw://2d90b8ceb495159e8e4e95d76447719dd166443f67dfabdd942846162071595c","dweb:/ipfs/QmVVuiAWYx92T6vBvNMKZfTvraCf1fa16BsUKkdNs3hdHA"],"license":"MIT"}},"version":1},"id":95} \ No newline at end of file diff --git a/out/NetworkRegistry.sol/NetworkRegistry.json b/out/NetworkRegistry.sol/NetworkRegistry.json index 32aab214..c62d918e 100644 --- a/out/NetworkRegistry.sol/NetworkRegistry.json +++ b/out/NetworkRegistry.sol/NetworkRegistry.json @@ -1 +1 @@ -{"abi":[{"type":"function","name":"entity","inputs":[{"name":"index","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"isEntity","inputs":[{"name":"entity_","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"registerNetwork","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"totalEntities","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"event","name":"AddEntity","inputs":[{"name":"entity","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"error","name":"EntityNotExist","inputs":[]},{"type":"error","name":"NetworkAlreadyRegistered","inputs":[]}],"bytecode":{"object":"0x60808060405234601557610241908161001a8239f35b5f80fdfe60806040526004361015610011575f80fd5b5f3560e01c806314887c581461013d5780635cd8b15e1461012157806387140b5b146100b55763b42ba2a214610045575f80fd5b346100b15760203660031901126100b1576004355f5481101561009d575f80527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e56301546040516001600160a01b039091168152602090f35b634e487b7160e01b5f52603260045260245ffd5b5f80fd5b346100b1575f3660031901126100b1576100da335f52600160205260405f2054151590565b61010f576100e733610184565b50337fb919910dcefbf753bfd926ab3b1d3f85d877190c3d01ba1bd585047b99b99f0b5f80a2005b60405163ad5fcda560e01b8152600490fd5b346100b1575f3660031901126100b15760205f54604051908152f35b346100b15760203660031901126100b1576004356001600160a01b038116908190036100b15761017a6020915f52600160205260405f2054151590565b6040519015158152f35b805f52600160205260405f2054155f14610206575f54680100000000000000008110156101f25760018101805f5581101561009d5781907f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e56301555f54905f52600160205260405f2055600190565b634e487b7160e01b5f52604160045260245ffd5b505f9056fea2646970667358221220cc20ba223c75c11e4bd6429db6fcb715270e8a6175f384753dacda65f1f603d864736f6c63430008190033","sourceMap":"181:284:64:-:0;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361015610011575f80fd5b5f3560e01c806314887c581461013d5780635cd8b15e1461012157806387140b5b146100b55763b42ba2a214610045575f80fd5b346100b15760203660031901126100b1576004355f5481101561009d575f80527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e56301546040516001600160a01b039091168152602090f35b634e487b7160e01b5f52603260045260245ffd5b5f80fd5b346100b1575f3660031901126100b1576100da335f52600160205260405f2054151590565b61010f576100e733610184565b50337fb919910dcefbf753bfd926ab3b1d3f85d877190c3d01ba1bd585047b99b99f0b5f80a2005b60405163ad5fcda560e01b8152600490fd5b346100b1575f3660031901126100b15760205f54604051908152f35b346100b15760203660031901126100b1576004356001600160a01b038116908190036100b15761017a6020915f52600160205260405f2054151590565b6040519015158152f35b805f52600160205260405f2054155f14610206575f54680100000000000000008110156101f25760018101805f5581101561009d5781907f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e56301555f54905f52600160205260405f2055600190565b634e487b7160e01b5f52604160045260245ffd5b505f9056fea2646970667358221220cc20ba223c75c11e4bd6429db6fcb715270e8a6175f384753dacda65f1f603d864736f6c63430008190033","sourceMap":"181:284:64:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;181:284:64;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;181:284:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;181:284:64;;;;8974:55:61;353:10:64;181:284;;4360:14:61;181:284:64;;;;;;4360:26:61;;4264:129;;8974:55;340:84:64;;8409:50:61;353:10:64;8409:50:61;:::i;:::-;;353:10:64;1077:18:74;181:284:64;1077:18:74;;181:284:64;340:84;181:284;;-1:-1:-1;;;387:26:64;;181:284;;387:26;181:284;;;;;;-1:-1:-1;;181:284:64;;;;;;;;;;;;;;;;;;;-1:-1:-1;;181:284:64;;;;;;-1:-1:-1;;;;;181:284:64;;;;;;;;8974:55:61;181:284:64;8974:55:61;181:284:64;;4360:14:61;181:284:64;;;;;;4360:26:61;;4264:129;;8974:55;181:284:64;;;;;;;;2241:406:61;181:284:64;;;4360:14:61;181:284:64;;;;;;4360:26:61;2320:321;181:284:64;;;;;;;;;;;4360:14:61;181:284:64;;;;;;;;;;;;;;;;;;;;4360:14:61;181:284:64;;;;;;4360:14:61;2576:11;:::o;181:284:64:-;;;;;;;;;;;;2320:321:61;2618:12;181:284:64;2618:12:61;:::o","linkReferences":{}},"methodIdentifiers":{"entity(uint256)":"b42ba2a2","isEntity(address)":"14887c58","registerNetwork()":"87140b5b","totalEntities()":"5cd8b15e"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"EntityNotExist\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NetworkAlreadyRegistered\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"entity\",\"type\":\"address\"}],\"name\":\"AddEntity\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"entity\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"entity_\",\"type\":\"address\"}],\"name\":\"isEntity\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"registerNetwork\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalEntities\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"events\":{\"AddEntity(address)\":{\"params\":{\"entity\":\"address of the added entity\"}}},\"kind\":\"dev\",\"methods\":{\"entity(uint256)\":{\"params\":{\"index\":\"index of the entity to get\"},\"returns\":{\"_0\":\"address of the entity\"}},\"isEntity(address)\":{\"params\":{\"account\":\"address to check\"},\"returns\":{\"_0\":\"if the given address is an entity\"}},\"totalEntities()\":{\"returns\":{\"_0\":\"total number of entities added\"}}},\"version\":1},\"userdoc\":{\"events\":{\"AddEntity(address)\":{\"notice\":\"Emitted when an entity is added.\"}},\"kind\":\"user\",\"methods\":{\"entity(uint256)\":{\"notice\":\"Get an entity given its index.\"},\"isEntity(address)\":{\"notice\":\"Get if a given address is an entity.\"},\"registerNetwork()\":{\"notice\":\"Register the caller as a network.\"},\"totalEntities()\":{\"notice\":\"Get a total number of entities.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/contracts/NetworkRegistry.sol\":\"NetworkRegistry\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0x86c1470cbfd878491e5de030072b647352d36bd27122cffb928970b1945282aa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ad85dd393ee0a1917c57046abc5155f51f77844b2c6a42c05c1b8dd26d6ff3c1\",\"dweb:/ipfs/QmNqYc8To2NdnpP6E1tGz7t6A7beuENde5yovwov5pW1fA\"]},\"src/contracts/NetworkRegistry.sol\":{\"keccak256\":\"0x4b4c95351e9dc7aed572eed27ff3c1aba57c13c8b1f50fc0f07c1ec36c504970\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://ec74d6259a902cb663304fc797d025d175c17c4836fd29a099513ea001319567\",\"dweb:/ipfs/QmRcRCkuR7Ey5B4F8rCvXh1ApVbqteGY1cJjt5ik1wAYPd\"]},\"src/contracts/common/Registry.sol\":{\"keccak256\":\"0x4a4004836d920953a8ec6e223de9a330f43acf7a5b93c6b8b3e4a95e0f129889\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://e8bdda207f3852c683a2b481602239a914f7e26bcd042ade618e263a43b67652\",\"dweb:/ipfs/Qmb8GZykJWxZcfwNp3SqhFizDFydFuV6LXgemV3vnWyLyu\"]},\"src/interfaces/INetworkRegistry.sol\":{\"keccak256\":\"0x60dcd8ad04980a471f42b6ed57f6b96fbc4091db97b6314cb198914975327938\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fc207782fcb74a144ecb0c7dc1f427ee6de38710e0966c3cd43040493e11379f\",\"dweb:/ipfs/QmSa8LVejhmRr5T3pWYvUTrDr4fCfohfqyJfRyW2fV4zYy\"]},\"src/interfaces/common/IRegistry.sol\":{\"keccak256\":\"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014\",\"dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.25+commit.b61c2a91"},"language":"Solidity","output":{"abi":[{"inputs":[],"type":"error","name":"EntityNotExist"},{"inputs":[],"type":"error","name":"NetworkAlreadyRegistered"},{"inputs":[{"internalType":"address","name":"entity","type":"address","indexed":true}],"type":"event","name":"AddEntity","anonymous":false},{"inputs":[{"internalType":"uint256","name":"index","type":"uint256"}],"stateMutability":"view","type":"function","name":"entity","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"entity_","type":"address"}],"stateMutability":"view","type":"function","name":"isEntity","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"registerNetwork"},{"inputs":[],"stateMutability":"view","type":"function","name":"totalEntities","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]}],"devdoc":{"kind":"dev","methods":{"entity(uint256)":{"params":{"index":"index of the entity to get"},"returns":{"_0":"address of the entity"}},"isEntity(address)":{"params":{"account":"address to check"},"returns":{"_0":"if the given address is an entity"}},"totalEntities()":{"returns":{"_0":"total number of entities added"}}},"version":1},"userdoc":{"kind":"user","methods":{"entity(uint256)":{"notice":"Get an entity given its index."},"isEntity(address)":{"notice":"Get if a given address is an entity."},"registerNetwork()":{"notice":"Register the caller as a network."},"totalEntities()":{"notice":"Get a total number of entities."}},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/contracts/NetworkRegistry.sol":"NetworkRegistry"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0x86c1470cbfd878491e5de030072b647352d36bd27122cffb928970b1945282aa","urls":["bzz-raw://ad85dd393ee0a1917c57046abc5155f51f77844b2c6a42c05c1b8dd26d6ff3c1","dweb:/ipfs/QmNqYc8To2NdnpP6E1tGz7t6A7beuENde5yovwov5pW1fA"],"license":"MIT"},"src/contracts/NetworkRegistry.sol":{"keccak256":"0x4b4c95351e9dc7aed572eed27ff3c1aba57c13c8b1f50fc0f07c1ec36c504970","urls":["bzz-raw://ec74d6259a902cb663304fc797d025d175c17c4836fd29a099513ea001319567","dweb:/ipfs/QmRcRCkuR7Ey5B4F8rCvXh1ApVbqteGY1cJjt5ik1wAYPd"],"license":"BUSL-1.1"},"src/contracts/common/Registry.sol":{"keccak256":"0x4a4004836d920953a8ec6e223de9a330f43acf7a5b93c6b8b3e4a95e0f129889","urls":["bzz-raw://e8bdda207f3852c683a2b481602239a914f7e26bcd042ade618e263a43b67652","dweb:/ipfs/Qmb8GZykJWxZcfwNp3SqhFizDFydFuV6LXgemV3vnWyLyu"],"license":"BUSL-1.1"},"src/interfaces/INetworkRegistry.sol":{"keccak256":"0x60dcd8ad04980a471f42b6ed57f6b96fbc4091db97b6314cb198914975327938","urls":["bzz-raw://fc207782fcb74a144ecb0c7dc1f427ee6de38710e0966c3cd43040493e11379f","dweb:/ipfs/QmSa8LVejhmRr5T3pWYvUTrDr4fCfohfqyJfRyW2fV4zYy"],"license":"MIT"},"src/interfaces/common/IRegistry.sol":{"keccak256":"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb","urls":["bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014","dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK"],"license":"MIT"}},"version":1},"id":64} \ No newline at end of file +{"abi":[{"type":"function","name":"entity","inputs":[{"name":"index","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"isEntity","inputs":[{"name":"entity_","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"registerNetwork","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"totalEntities","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"event","name":"AddEntity","inputs":[{"name":"entity","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"error","name":"EntityNotExist","inputs":[]},{"type":"error","name":"NetworkAlreadyRegistered","inputs":[]}],"bytecode":{"object":"0x60808060405234601557610241908161001a8239f35b5f80fdfe60806040526004361015610011575f80fd5b5f3560e01c806314887c581461013d5780635cd8b15e1461012157806387140b5b146100b55763b42ba2a214610045575f80fd5b346100b15760203660031901126100b1576004355f5481101561009d575f80527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e56301546040516001600160a01b039091168152602090f35b634e487b7160e01b5f52603260045260245ffd5b5f80fd5b346100b1575f3660031901126100b1576100da335f52600160205260405f2054151590565b61010f576100e733610184565b50337fb919910dcefbf753bfd926ab3b1d3f85d877190c3d01ba1bd585047b99b99f0b5f80a2005b60405163ad5fcda560e01b8152600490fd5b346100b1575f3660031901126100b15760205f54604051908152f35b346100b15760203660031901126100b1576004356001600160a01b038116908190036100b15761017a6020915f52600160205260405f2054151590565b6040519015158152f35b805f52600160205260405f2054155f14610206575f54680100000000000000008110156101f25760018101805f5581101561009d5781907f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e56301555f54905f52600160205260405f2055600190565b634e487b7160e01b5f52604160045260245ffd5b505f9056fea264697066735822122090eb7e699b2d71a03df819f8fd21ac23ecd223b2d0c56f2835c6e092ca0962e364736f6c63430008190033","sourceMap":"181:284:69:-:0;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361015610011575f80fd5b5f3560e01c806314887c581461013d5780635cd8b15e1461012157806387140b5b146100b55763b42ba2a214610045575f80fd5b346100b15760203660031901126100b1576004355f5481101561009d575f80527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e56301546040516001600160a01b039091168152602090f35b634e487b7160e01b5f52603260045260245ffd5b5f80fd5b346100b1575f3660031901126100b1576100da335f52600160205260405f2054151590565b61010f576100e733610184565b50337fb919910dcefbf753bfd926ab3b1d3f85d877190c3d01ba1bd585047b99b99f0b5f80a2005b60405163ad5fcda560e01b8152600490fd5b346100b1575f3660031901126100b15760205f54604051908152f35b346100b15760203660031901126100b1576004356001600160a01b038116908190036100b15761017a6020915f52600160205260405f2054151590565b6040519015158152f35b805f52600160205260405f2054155f14610206575f54680100000000000000008110156101f25760018101805f5581101561009d5781907f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e56301555f54905f52600160205260405f2055600190565b634e487b7160e01b5f52604160045260245ffd5b505f9056fea264697066735822122090eb7e699b2d71a03df819f8fd21ac23ecd223b2d0c56f2835c6e092ca0962e364736f6c63430008190033","sourceMap":"181:284:69:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;181:284:69;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;181:284:69;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;181:284:69;;;;8974:55:62;353:10:69;181:284;;4360:14:62;181:284:69;;;;;;4360:26:62;;4264:129;;8974:55;340:84:69;;8409:50:62;353:10:69;8409:50:62;:::i;:::-;;353:10:69;1077:18:79;181:284:69;1077:18:79;;181:284:69;340:84;181:284;;-1:-1:-1;;;387:26:69;;181:284;;387:26;181:284;;;;;;-1:-1:-1;;181:284:69;;;;;;;;;;;;;;;;;;;-1:-1:-1;;181:284:69;;;;;;-1:-1:-1;;;;;181:284:69;;;;;;;;8974:55:62;181:284:69;8974:55:62;181:284:69;;4360:14:62;181:284:69;;;;;;4360:26:62;;4264:129;;8974:55;181:284:69;;;;;;;;2241:406:62;181:284:69;;;4360:14:62;181:284:69;;;;;;4360:26:62;2320:321;181:284:69;;;;;;;;;;;4360:14:62;181:284:69;;;;;;;;;;;;;;;;;;;;4360:14:62;181:284:69;;;;;;4360:14:62;2576:11;:::o;181:284:69:-;;;;;;;;;;;;2320:321:62;2618:12;181:284:69;2618:12:62;:::o","linkReferences":{}},"methodIdentifiers":{"entity(uint256)":"b42ba2a2","isEntity(address)":"14887c58","registerNetwork()":"87140b5b","totalEntities()":"5cd8b15e"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"EntityNotExist\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NetworkAlreadyRegistered\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"entity\",\"type\":\"address\"}],\"name\":\"AddEntity\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"entity\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"entity_\",\"type\":\"address\"}],\"name\":\"isEntity\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"registerNetwork\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalEntities\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"events\":{\"AddEntity(address)\":{\"params\":{\"entity\":\"address of the added entity\"}}},\"kind\":\"dev\",\"methods\":{\"entity(uint256)\":{\"params\":{\"index\":\"index of the entity to get\"},\"returns\":{\"_0\":\"address of the entity\"}},\"isEntity(address)\":{\"params\":{\"account\":\"address to check\"},\"returns\":{\"_0\":\"if the given address is an entity\"}},\"totalEntities()\":{\"returns\":{\"_0\":\"total number of entities added\"}}},\"version\":1},\"userdoc\":{\"events\":{\"AddEntity(address)\":{\"notice\":\"Emitted when an entity is added.\"}},\"kind\":\"user\",\"methods\":{\"entity(uint256)\":{\"notice\":\"Get an entity given its index.\"},\"isEntity(address)\":{\"notice\":\"Get if a given address is an entity.\"},\"registerNetwork()\":{\"notice\":\"Register the caller as a network.\"},\"totalEntities()\":{\"notice\":\"Get a total number of entities.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/contracts/NetworkRegistry.sol\":\"NetworkRegistry\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0x86c1470cbfd878491e5de030072b647352d36bd27122cffb928970b1945282aa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ad85dd393ee0a1917c57046abc5155f51f77844b2c6a42c05c1b8dd26d6ff3c1\",\"dweb:/ipfs/QmNqYc8To2NdnpP6E1tGz7t6A7beuENde5yovwov5pW1fA\"]},\"src/contracts/NetworkRegistry.sol\":{\"keccak256\":\"0x4b4c95351e9dc7aed572eed27ff3c1aba57c13c8b1f50fc0f07c1ec36c504970\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://ec74d6259a902cb663304fc797d025d175c17c4836fd29a099513ea001319567\",\"dweb:/ipfs/QmRcRCkuR7Ey5B4F8rCvXh1ApVbqteGY1cJjt5ik1wAYPd\"]},\"src/contracts/common/Registry.sol\":{\"keccak256\":\"0x4a4004836d920953a8ec6e223de9a330f43acf7a5b93c6b8b3e4a95e0f129889\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://e8bdda207f3852c683a2b481602239a914f7e26bcd042ade618e263a43b67652\",\"dweb:/ipfs/Qmb8GZykJWxZcfwNp3SqhFizDFydFuV6LXgemV3vnWyLyu\"]},\"src/interfaces/INetworkRegistry.sol\":{\"keccak256\":\"0x60dcd8ad04980a471f42b6ed57f6b96fbc4091db97b6314cb198914975327938\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fc207782fcb74a144ecb0c7dc1f427ee6de38710e0966c3cd43040493e11379f\",\"dweb:/ipfs/QmSa8LVejhmRr5T3pWYvUTrDr4fCfohfqyJfRyW2fV4zYy\"]},\"src/interfaces/common/IRegistry.sol\":{\"keccak256\":\"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014\",\"dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.25+commit.b61c2a91"},"language":"Solidity","output":{"abi":[{"inputs":[],"type":"error","name":"EntityNotExist"},{"inputs":[],"type":"error","name":"NetworkAlreadyRegistered"},{"inputs":[{"internalType":"address","name":"entity","type":"address","indexed":true}],"type":"event","name":"AddEntity","anonymous":false},{"inputs":[{"internalType":"uint256","name":"index","type":"uint256"}],"stateMutability":"view","type":"function","name":"entity","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"entity_","type":"address"}],"stateMutability":"view","type":"function","name":"isEntity","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"registerNetwork"},{"inputs":[],"stateMutability":"view","type":"function","name":"totalEntities","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]}],"devdoc":{"kind":"dev","methods":{"entity(uint256)":{"params":{"index":"index of the entity to get"},"returns":{"_0":"address of the entity"}},"isEntity(address)":{"params":{"account":"address to check"},"returns":{"_0":"if the given address is an entity"}},"totalEntities()":{"returns":{"_0":"total number of entities added"}}},"version":1},"userdoc":{"kind":"user","methods":{"entity(uint256)":{"notice":"Get an entity given its index."},"isEntity(address)":{"notice":"Get if a given address is an entity."},"registerNetwork()":{"notice":"Register the caller as a network."},"totalEntities()":{"notice":"Get a total number of entities."}},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/contracts/NetworkRegistry.sol":"NetworkRegistry"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0x86c1470cbfd878491e5de030072b647352d36bd27122cffb928970b1945282aa","urls":["bzz-raw://ad85dd393ee0a1917c57046abc5155f51f77844b2c6a42c05c1b8dd26d6ff3c1","dweb:/ipfs/QmNqYc8To2NdnpP6E1tGz7t6A7beuENde5yovwov5pW1fA"],"license":"MIT"},"src/contracts/NetworkRegistry.sol":{"keccak256":"0x4b4c95351e9dc7aed572eed27ff3c1aba57c13c8b1f50fc0f07c1ec36c504970","urls":["bzz-raw://ec74d6259a902cb663304fc797d025d175c17c4836fd29a099513ea001319567","dweb:/ipfs/QmRcRCkuR7Ey5B4F8rCvXh1ApVbqteGY1cJjt5ik1wAYPd"],"license":"BUSL-1.1"},"src/contracts/common/Registry.sol":{"keccak256":"0x4a4004836d920953a8ec6e223de9a330f43acf7a5b93c6b8b3e4a95e0f129889","urls":["bzz-raw://e8bdda207f3852c683a2b481602239a914f7e26bcd042ade618e263a43b67652","dweb:/ipfs/Qmb8GZykJWxZcfwNp3SqhFizDFydFuV6LXgemV3vnWyLyu"],"license":"BUSL-1.1"},"src/interfaces/INetworkRegistry.sol":{"keccak256":"0x60dcd8ad04980a471f42b6ed57f6b96fbc4091db97b6314cb198914975327938","urls":["bzz-raw://fc207782fcb74a144ecb0c7dc1f427ee6de38710e0966c3cd43040493e11379f","dweb:/ipfs/QmSa8LVejhmRr5T3pWYvUTrDr4fCfohfqyJfRyW2fV4zYy"],"license":"MIT"},"src/interfaces/common/IRegistry.sol":{"keccak256":"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb","urls":["bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014","dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK"],"license":"MIT"}},"version":1},"id":69} \ No newline at end of file diff --git a/out/NetworkRestakeDelegator.sol/NetworkRestakeDelegator.json b/out/NetworkRestakeDelegator.sol/NetworkRestakeDelegator.json index 64c3566d..710a5169 100644 --- a/out/NetworkRestakeDelegator.sol/NetworkRestakeDelegator.json +++ b/out/NetworkRestakeDelegator.sol/NetworkRestakeDelegator.json @@ -1 +1 @@ -{"abi":[{"type":"constructor","inputs":[{"name":"networkRegistry","type":"address","internalType":"address"},{"name":"vaultFactory","type":"address","internalType":"address"},{"name":"operatorVaultOptInService","type":"address","internalType":"address"},{"name":"operatorNetworkOptInService","type":"address","internalType":"address"},{"name":"delegatorFactory","type":"address","internalType":"address"},{"name":"entityType","type":"uint64","internalType":"uint64"}],"stateMutability":"nonpayable"},{"type":"function","name":"DEFAULT_ADMIN_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"FACTORY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"HOOK_GAS_LIMIT","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"HOOK_RESERVE","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"HOOK_SET_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"NETWORK_LIMIT_SET_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"NETWORK_REGISTRY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"OPERATOR_NETWORK_OPT_IN_SERVICE","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"OPERATOR_NETWORK_SHARES_SET_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"OPERATOR_VAULT_OPT_IN_SERVICE","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"TYPE","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"VAULT_FACTORY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"VERSION","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"pure"},{"type":"function","name":"getRoleAdmin","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"grantRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"hasRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"hook","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"initialize","inputs":[{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"maxNetworkLimit","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"value","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"networkLimit","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"networkLimitAt","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"timestamp","type":"uint48","internalType":"uint48"},{"name":"hint","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"onSlash","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"captureTimestamp","type":"uint48","internalType":"uint48"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"operatorNetworkShares","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"operatorNetworkSharesAt","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"timestamp","type":"uint48","internalType":"uint48"},{"name":"hint","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"renounceRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"callerConfirmation","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"revokeRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setHook","inputs":[{"name":"hook_","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setMaxNetworkLimit","inputs":[{"name":"identifier","type":"uint96","internalType":"uint96"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setNetworkLimit","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setOperatorNetworkShares","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"shares","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"stake","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"stakeAt","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"timestamp","type":"uint48","internalType":"uint48"},{"name":"hints","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"staticDelegateCall","inputs":[{"name":"target","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"totalOperatorNetworkShares","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"totalOperatorNetworkSharesAt","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"timestamp","type":"uint48","internalType":"uint48"},{"name":"hint","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"vault","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"OnSlash","inputs":[{"name":"subnetwork","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"captureTimestamp","type":"uint48","indexed":false,"internalType":"uint48"}],"anonymous":false},{"type":"event","name":"RoleAdminChanged","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"previousAdminRole","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"newAdminRole","type":"bytes32","indexed":true,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"RoleGranted","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"sender","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"RoleRevoked","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"sender","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"SetHook","inputs":[{"name":"hook","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"SetMaxNetworkLimit","inputs":[{"name":"subnetwork","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"SetNetworkLimit","inputs":[{"name":"subnetwork","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"SetOperatorNetworkShares","inputs":[{"name":"subnetwork","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"shares","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"error","name":"AccessControlBadConfirmation","inputs":[]},{"type":"error","name":"AccessControlUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"neededRole","type":"bytes32","internalType":"bytes32"}]},{"type":"error","name":"AlreadySet","inputs":[]},{"type":"error","name":"CheckpointUnorderedInsertion","inputs":[]},{"type":"error","name":"DuplicateRoleHolder","inputs":[]},{"type":"error","name":"ExceedsMaxNetworkLimit","inputs":[]},{"type":"error","name":"InsufficientHookGas","inputs":[]},{"type":"error","name":"InvalidInitialization","inputs":[]},{"type":"error","name":"MathOverflowedMulDiv","inputs":[]},{"type":"error","name":"MissingRoleHolders","inputs":[]},{"type":"error","name":"NotInitialized","inputs":[]},{"type":"error","name":"NotInitializing","inputs":[]},{"type":"error","name":"NotNetwork","inputs":[]},{"type":"error","name":"NotSlasher","inputs":[]},{"type":"error","name":"NotVault","inputs":[]},{"type":"error","name":"ReentrancyGuardReentrantCall","inputs":[]},{"type":"error","name":"SafeCastOverflowedUintDowncast","inputs":[{"name":"bits","type":"uint8","internalType":"uint8"},{"name":"value","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ZeroAddressRoleHolder","inputs":[]}],"bytecode":{"object":"0x610140346101a1576001600160401b0390601f612ea238819003918201601f191683019190848311848410176101a5578160c092859260409586528339810103126101a15761004d826101b9565b610059602084016101b9565b906100658385016101b9565b94610072606086016101b9565b9460a0610081608083016101b9565b9101519180831683036101a1577ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a009081549060ff82891c1661019057808083160361014c575b50505060805260a05260c05260e0526101009283526101209182525190612cd492836101ce8439608051836107e7015260a05183610f2a015260c0518381816106660152610f63015260e05183818161039f0152611fb20152518281816103e3015281816115fa01526117170152518181816105e40152818161156101526117950152f35b6001600160401b0319909116811790915585519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a15f80806100c7565b875163f92ee8a960e01b8152600490fd5b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b51906001600160a01b03821682036101a15756fe60806040526004361015610011575f80fd5b5f3560e01c806301ffc9a714610264578063021453481461025f578063103f29071461025a578063128e5d82146102555780631a7a7044146102505780631a80e5001461024b57806323f752d514610246578063248a9ca3146102415780632dd310001461023c5780632f2ff15d1461023757806336568abe146102325780633dfd38731461022d5780633eb22c0f1461022857806342c53e3314610223578063439fab911461021e578063557cab44146102195780635d32a1c9146102145780636679191e1461020f5780637d24bb271461020a5780637f5a7c7b146102055780638b3f10b01461020057806391d14854146101fb5780639f86fd85146101f6578063a217fddf146101f1578063a33bc287146101ec578063bb24fe8a146101e7578063c0cd7c3e146101e2578063c43dc03f146101dd578063d15b740e146101d8578063d547741f146101d3578063e02f6937146101ce578063e49561ee146101c9578063e78eb6ae146101c4578063fbfa77cf146101bf578063fd4d447c146101ba578063ff54740f146101b55763ffa1ad74146101b0575f80fd5b6112e0565b6112c3565b611299565b611272565b611238565b61104d565b611031565b610fe5565b610fbb565b610f92565b610f4e565b610f0b565b610df0565b610dd6565b610d1c565b610cbe565b610c9b565b610c73565b610c3a565b610c00565b610bdd565b610b80565b610a48565b6109cf565b6109a6565b6108ad565b610862565b610816565b6107d2565b610799565b610613565b6105cf565b610589565b6103ce565b61038a565b6102be565b346102ba5760203660031901126102ba5760043563ffffffff60e01b81168091036102ba57602090637965db0b60e01b81149081156102a9575b506040519015158152f35b6301ffc9a760e01b1490505f61029e565b5f80fd5b346102ba576040806003193601126102ba5760043590602435906102e061180a565b825f526002602052805f2054821161037a57825f52600360205281610306825f20611efa565b1461036a5781610365916103557e899d104fc3d8820bd96540612bcc5c448c8837b13b9f7faa43ad0728f0c14f94610346875f52600360205260405f2090565b61034f426123a7565b90611952565b5050519081529081906020820190565b0390a2005b5163a741a04560e01b8152600490fd5b51631eefc06360e31b8152600490fd5b346102ba575f3660031901126102ba576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346102ba575f3660031901126102ba576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b6001600160a01b038116036102ba57565b6064359065ffffffffffff821682036102ba57565b634e487b7160e01b5f52604160045260245ffd5b604081019081106001600160401b0382111761046757604052565b610438565b606081019081106001600160401b0382111761046757604052565b90601f801991011681019081106001600160401b0382111761046757604052565b6040519060a082018281106001600160401b0382111761046757604052565b604051906104d48261044c565b565b6001600160401b03811161046757601f01601f191660200190565b81601f820112156102ba57803590610508826104d6565b926105166040519485610487565b828452602083830101116102ba57815f926020809301838601378301015290565b9060806003198301126102ba576004359160243561055481610412565b9160443565ffffffffffff811681036102ba5791606435906001600160401b0382116102ba57610586916004016104f1565b90565b346102ba5760206105c76105c261059f36610537565b939190925f526005865260405f209060018060a01b03165f5260205260405f2090565b611a45565b604051908152f35b346102ba575f3660031901126102ba576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346102ba5760403660031901126102ba576004356001600160601b03811681036102ba5760243590610643611b28565b6040516302910f8b60e31b81523360048201526020816024816001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165afa908115610794575f91610765575b5015610753576001600160601b03166bffffffffffffffffffffffff193360601b161790806106cd835f52600260205260405f2090565b541461074157610726817fc67e7929681aa1bccd63f52b3799bf5805f3009f197db6fdf584b14f7fbf608c9261070b855f52600260205260405f2090565b556107168185611b57565b6040519081529081906020820190565b0390a261073f60015f80516020612c5f83398151915255565b005b60405163a741a04560e01b8152600490fd5b6040516323d53b9760e21b8152600490fd5b610787915060203d60201161078d575b61077f8183610487565b810190611327565b5f610696565b503d610775565b61133f565b346102ba5760203660031901126102ba576004355f525f80516020612c3f8339815191526020526020600160405f200154604051908152f35b346102ba575f3660031901126102ba576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346102ba5760403660031901126102ba5761073f60243560043561083982610412565b805f525f80516020612c3f83398151915260205261085d600160405f2001546118bd565b611e32565b346102ba5760403660031901126102ba5760243561087f81610412565b336001600160a01b0382160361089b5761073f90600435611e68565b60405163334bd91960e11b8152600490fd5b346102ba5760203660031901126102ba576004356108ca81610412565b6108d2611b28565b335f9081527f9ebbcbe0d2961d3fbe56ca6f679bc753bd848d3e6bb3eaf9041c51b286881d2c60205260409020547fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c9060ff161561098857506001546001600160a01b039182169181168214610741576001600160a01b03191681176001557f5bbb1d3ebb6a3ad2a0f17ff35e579a83af60604d1d3c2a4c83c62adecadf666d5f80a260015f80516020612c5f83398151915255005b6044906040519063e2517d3f60e01b82523360048301526024820152fd5b346102ba5760203660031901126102ba576004355f52600360205260206105c760405f20611efa565b346102ba5760403660031901126102ba5760206105c7610a166024356109f481610412565b6004355f526005845260405f209060018060a01b03165f5260205260405f2090565b611efa565b9181601f840112156102ba578235916001600160401b0383116102ba57602083818601950101116102ba57565b346102ba5760203660031901126102ba576001600160401b036004358181116102ba57610a79903690600401610a1b565b5f80516020612c7f833981519152549260ff8460401c1615931680159081610b78575b6001149081610b6e575b159081610b65575b50610b53575f80516020612c7f833981519152805467ffffffffffffffff19166001179055610ae19183610b2f57611f7d565b610ae757005b5f80516020612c7f833981519152805460ff60401b19169055604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a1005b5f80516020612c7f833981519152805460ff60401b1916600160401b179055611f7d565b60405163f92ee8a960e01b8152600490fd5b9050155f610aae565b303b159150610aa6565b849150610a9c565b346102ba575f3660031901126102ba576020604051614e208152f35b60606003198201126102ba576004359160243565ffffffffffff811681036102ba5791604435906001600160401b0382116102ba57610586916004016104f1565b346102ba5760206105c7610bf036610b9c565b915f526003845260405f20611a45565b346102ba575f3660031901126102ba5760206040517fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c8152f35b346102ba575f3660031901126102ba5760206040517e8b9b1e5fa9cf3b14f87f435649268146305ddf689f082e5961a335b07a9abf8152f35b346102ba575f3660031901126102ba576001546040516001600160a01b039091168152602090f35b346102ba5760206105c7610cae36610b9c565b915f526004845260405f20611a45565b346102ba5760403660031901126102ba57602060ff610d10602435610ce281610412565b6004355f525f80516020612c3f833981519152845260405f209060018060a01b03165f5260205260405f2090565b54166040519015158152f35b346102ba576040806003193601126102ba57600435610d3a81610412565b602435906001600160401b0382116102ba575f8091610d60610dc4943690600401610a1b565b908187519283928337810184815203915af43d15610dcc57610db63d610d85816104d6565b90610d9286519283610487565b81523d5f602083013e5b845194859315156020850152808401526060830190611376565b03601f198101835282610487565b805190602001fd5b610db66060610d9c565b346102ba575f3660031901126102ba5760206040515f8152f35b346102ba5760603660031901126102ba57602435600435610e1082610412565b60443591610e1c611866565b5f8281526005602090815260408083206001600160a01b03851684529091529020610e4690611efa565b838114610741577f739a5a3ec0ff71e2386d0013deac5f44e0935a98def2e2a5ddf9a709518c829491610eb9610f0692855f52600460205260405f2090610eb388610eae610e93426123a7565b93610ea9610a168c5f52600460205260405f2090565b6113c1565b6113dc565b91611952565b5050610eea8561034683610ed5885f52600560205260405f2090565b9060018060a01b03165f5260205260405f2090565b50506040519485526001600160a01b0316939081906020820190565b0390a3005b346102ba575f3660031901126102ba5760206040516001600160401b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b346102ba575f3660031901126102ba576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346102ba5760203660031901126102ba576004355f52600460205260206105c760405f20611efa565b346102ba5760203660031901126102ba576004355f526002602052602060405f2054604051908152f35b346102ba5760403660031901126102ba5761073f60243560043561100882610412565b805f525f80516020612c3f83398151915260205261102c600160405f2001546118bd565b611e68565b346102ba5760206105c761104436610537565b929190916114eb565b346102ba5760a03660031901126102ba5760243560043561106d82610412565b60443591611079610423565b90608435906001600160401b0382116102ba5761109b600492369084016104f1565b6110a3611b28565b5f546020906110c8906110bc906001600160a01b031681565b6001600160a01b031690565b60405163b134427160e01b815294859182905afa928315610794575f93611207575b506001600160a01b0392831633036111f5576001546001600160a01b031683811661116a575b50506040805195865265ffffffffffff909316602086015216927f741a5de99085c0d660f3e4192217b0ffb0ea4e35a0480de48e857a4bc3ee36ed91819081015b0390a361073f60015f80516020612c5f83398151915255565b9093604051946111a186611193602082019363724ab0f760e11b8552858c898d6024870161168a565b03601f198101885287610487565b62042e305a106111e3575f611151938192827f741a5de99085c0d660f3e4192217b0ffb0ea4e35a0480de48e857a4bc3ee36ed9951926203d090f15093611110565b604051638072475160e01b8152600490fd5b60405163dabc4ad960e01b8152600490fd5b61122a91935060203d602011611231575b6112228183610487565b810190611675565b915f6110ea565b503d611218565b346102ba575f3660031901126102ba5760206040517f1312a1cf530e56add9be4fd84db9051dcc7635952f09f735f9a29405b55846258152f35b346102ba575f3660031901126102ba575f546040516001600160a01b039091168152602090f35b346102ba5760403660031901126102ba5760206105c76024356112bb81610412565b6004356116e0565b346102ba575f3660031901126102ba5760206040516203d0908152f35b346102ba575f3660031901126102ba57602060405160018152f35b5f9081526005602090815260408083206001600160a01b03909416835292905220610586929190611a45565b908160209103126102ba575180151581036102ba5790565b6040513d5f823e3d90fd5b9061058692915f52600360205260405f20611a45565b9061058692915f52600460205260405f20611a45565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b634e487b7160e01b5f52601160045260245ffd5b5f198101919082116113bc57565b61139a565b919082039182116113bc57565b90600182018092116113bc57565b919082018092116113bc57565b604051906113f68261044c565b60606020838281520152565b81601f820112156102ba57805190611419826104d6565b926114276040519485610487565b828452602083830101116102ba57815f9260208093018386015e8301015290565b906020828203126102ba5781516001600160401b03928382116102ba5701906040828203126102ba576040519261147e8461044c565b82518181116102ba5782611493918501611402565b845260208301519081116102ba576114ab9201611402565b602082015290565b6001600160a01b0391821681529116602082015265ffffffffffff909116604082015260806060820181905261058692910190611376565b926114fb909291928284866121e2565b9290936115066113e9565b93805180611659575b505084159384156115c3575b8415611532575b5050505061152d5790565b505f90565b60208094955061155d910151604051958694859463530e1d4360e01b865260601c90600486016114b3565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa908115610794575f916115a4575b50155f808080611522565b6115bd915060203d60201161078d5761077f8183610487565b5f611599565b5f549094506001600160a01b03166020848651926115f6604051948593849363530e1d4360e01b855289600486016114b3565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa908115610794575f9161163a575b50159361151b565b611653915060203d60201161078d5761077f8183610487565b5f611632565b61166d929550602080918301019101611448565b925f8061150f565b908160209103126102ba575161058681610412565b919360a093610586969565ffffffffffff938552600180871b0316602085015260408401521660608201528160808201520190611376565b81156116cc570490565b634e487b7160e01b5f52601260045260245ffd5b5f546040516308834cb560e21b8082526001600160a01b0385811660048401529283166024830152929392602092909183816044817f000000000000000000000000000000000000000000000000000000000000000086165afa908115610794575f916117ed575b5015918215611769575b5050905061176357610586916122f2565b50505f90565b6040519081526001600160a01b0385166004820152606086901c602482015291508290829060449082907f0000000000000000000000000000000000000000000000000000000000000000165afa918215610794575f926117d0575b505015805f80611752565b6117e69250803d1061078d5761077f8183610487565b5f806117c5565b6118049150843d861161078d5761077f8183610487565b5f611748565b335f9081527f72a65082a5691803ab2b62c9bc729b34205ba1b183d950896526b2fd8714d0c7602052604090207e8b9b1e5fa9cf3b14f87f435649268146305ddf689f082e5961a335b07a9abf9060ff905b5416156109885750565b335f9081527f8f2dae99798887da307a4daa2c2d11f840b0cb9a6a67822660c531e9ad14dd00602052604090207f1312a1cf530e56add9be4fd84db9051dcc7635952f09f735f9a29405b55846259060ff9061185c565b5f8181525f80516020612c3f83398151915260209081526040808320338452909152902060ff9061185c565b634e487b7160e01b5f52603260045260245ffd5b8054821015611912575f5260205f2001905f90565b6118e9565b90815491600160401b831015610467578261193a9160016104d4950181556118fd565b90919082549060031b91821b915f19901b1916179055565b909291926001820190815480156119e4575b508461196f846123fd565b5094909284549361197f83611efa565b96816119cf575b50156119ac575050505f1981019081116113bc5761193a85916119a8936118fd565b9190565b6119a89492936119c8926001600160d01b039091169190612963565b5050611917565b65ffffffffffff83811691161490505f611986565b600160401b81101561046757806001611a0092018455836118fd565b8154905f199060031b1b191690555f611964565b908160209103126102ba575163ffffffff811681036102ba5790565b90600163ffffffff809316019182116113bc57565b91805115611b1e5780602080611a6093518301019101611a14565b91611a6b838261251c565b92611a7c845165ffffffffffff1690565b9065ffffffffffff8085169216828114611b125782119182611ab2575b5050611aa957610586925061244c565b50506020015190565b909150611abf83546113ae565b63ffffffff831614918215611ad8575b50505f80611a99565b611b0a919250611af3611aed611aff92611a30565b8561251c565b5165ffffffffffff1690565b65ffffffffffff1690565b115f80611acf565b50505050506020015190565b506105869161244c565b5f80516020612c5f8339815191526002815414611b455760029055565b604051633ee5aeb560e01b8152600490fd5b90815f52600360205260405f2081611b6e826123fd565b919390508315611bcc57611b8e916001600160d01b0316906001016118fd565b90549060031b1c5b82611bc2575b5050611ba6575050565b611bbe915f52600360205260405f2061034f426123a7565b5050565b119050815f611b9c565b50505f611b96565b6001600160a01b0381165f9081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d60205260409020545f80516020612c3f8339815191529060ff16611763575f808052602091825260408082206001600160a01b038516835290925220805460ff1916600117905533906001600160a01b03165f7f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d8180a4600190565b6001600160a01b0381165f9081527f9ebbcbe0d2961d3fbe56ca6f679bc753bd848d3e6bb3eaf9041c51b286881d2c602052604090207fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c905f80516020612c3f8339815191529060ff905b5416611d4e575f828152602091825260408082206001600160a01b038616835290925220805460ff1916600117905533916001600160a01b0316907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d5f80a4600190565b5050505f90565b6001600160a01b0381165f9081527f72a65082a5691803ab2b62c9bc729b34205ba1b183d950896526b2fd8714d0c7602052604090207e8b9b1e5fa9cf3b14f87f435649268146305ddf689f082e5961a335b07a9abf905f80516020612c3f8339815191529060ff90611cea565b6001600160a01b0381165f9081527f8f2dae99798887da307a4daa2c2d11f840b0cb9a6a67822660c531e9ad14dd00602052604090207f1312a1cf530e56add9be4fd84db9051dcc7635952f09f735f9a29405b5584625905f80516020612c3f8339815191529060ff90611cea565b5f8181525f80516020612c3f833981519152602081815260408084206001600160a01b038716855290915290912060ff90611cea565b5f8181525f80516020612c3f833981519152602081815260408084206001600160a01b03871685529091529091205460ff1615611d4e575f828152602091825260408082206001600160a01b038616835290925220805460ff1916905533916001600160a01b0316907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b5f80a4600190565b805480611f2957505f5b6001600160d01b03811615611763576001611f1f92016118fd565b90549060031b1c90565b5f199080828101116113bc57825f5260205f2001015460301c611f04565b9190916040818403126102ba578035611f5f81610412565b9260208201356001600160401b0381116102ba5761058692016104f1565b611f8991810190611f47565b6040516302910f8b60e31b81526001600160a01b039283166004820181905291906020816024817f000000000000000000000000000000000000000000000000000000000000000088165afa908115610794575f9161209c575b501561208a5761201e60409161201961206494611ffe612584565b60018060a01b03166001600160601b0360a01b5f5416175f55565b612704565b6020810151600180546001600160a01b0319166001600160a01b0390921691909117905580516001600160a01b031684811661207a575b5001516001600160a01b031690565b90811661206e5750565b61207790611c7f565b50565b61208390611bd4565b505f612055565b6040516362df054560e01b8152600490fd5b6120b5915060203d60201161078d5761077f8183610487565b5f611fe3565b6040519060a082018281106001600160401b038211176104675760405281608060609182815282602082015282604082015282808201520152565b906020828203126102ba5781516001600160401b03928382116102ba57019060a0828203126102ba576121276104a8565b9282518181116102ba578261213d918501611402565b845260208301518181116102ba5782612157918501611402565b602085015260408301518181116102ba5782612174918501611402565b604085015260608301518181116102ba5782612191918501611402565b606085015260808301519081116102ba576121ac9201611402565b608082015290565b908160209103126102ba575190565b60409065ffffffffffff61058694931681528160208201520190611376565b919392936121ee6120bb565b948051806122d6575b505061220860608601518285611360565b918261221a57505050509051905f9190565b61222e6122689183608089015191876112fb565b9160206122476110bc6110bc5f5460018060a01b031690565b8189015190604051808096819463810da75d60e01b835287600484016121c3565b03915afa80156107945761229e95612298935f926122a3575b50612292919260408a01519161134a565b90612864565b90612876565b915190565b61229292506122c99060203d6020116122cf575b6122c18183610487565b8101906121b4565b91612281565b503d6122b7565b6122ea9296506020809183010191016120f6565b935f806121f7565b90612308610a16835f52600460205260405f2090565b9081612315575050505f90565b610a1661232e91610ed5855f52600560205260405f2090565b5f5460405163bd49c35f60e01b815290602090829060049082906001600160a01b03165afa80156107945761058694612298925f9261237e575b50610a16612292915f52600360205260405f2090565b61229291925061239f610a169160203d6020116122cf576122c18183610487565b929150612368565b65ffffffffffff908181116123ba571690565b604490604051906306dfcc6560e41b8252603060048301526024820152fd5b906040516123e68161044c565b915465ffffffffffff8116835260301c6020830152565b80548061240e5750505f905f905f90565b5f199080828101116113bc5761242b925f5260205f2001016123d9565b9065ffffffffffff82511691602060018060d01b0391015116906001929190565b908154905f8291600584116124b6575b612467935084612bdf565b8061248f57505f905b6001600160d01b0382161561176357610586916001611f1f92016118fd565b6124a961249e6124b0926113ae565b835f5260205f200190565b5460301c90565b90612470565b91926124c181612aac565b81039081116113bc5761246793855f5265ffffffffffff808360205f20015416908516105f146124f257509161245c565b9291506124fe906113ce565b9061245c565b604051906125118261044c565b5f6020838281520152565b9061254561253f6125669261252f612504565b50612538612504565b50846118fd565b506123d9565b91600165ffffffffffff845116936020828060d01b039101511691016118fd565b905490604051926125768461044c565b835260031b1c602082015290565b61258c612a7e565b612594612a7e565b60015f80516020612c5f83398151915255565b604051906125b48261046c565b5f6040838281528260208201520152565b81601f820112156102ba578051916020916001600160401b038411610467578360051b90604051946125f985840187610487565b855283808601928201019283116102ba578301905b82821061261c575050505090565b838091835161262a81610412565b81520191019061260e565b906020828203126102ba5781516001600160401b03928382116102ba5701908181039260a084126102ba5760606040519461266f8661046c565b126102ba576040516126808161046c565b835161268b81610412565b8152602084015161269b81610412565b602082015260408401516126ae81610412565b6040820152845260608301518181116102ba57826126cd9185016125c5565b602085015260808301519081116102ba576126e892016125c5565b604082015290565b80518210156119125760209160051b010190565b612720906127106125a7565b5060208082518301019101612635565b8051519091906001600160a01b0316158061284a575b612838579060208101905f5b825180518210156127bc576110bc61275d8361276a936126f0565b516001600160a01b031690565b156127aa5761278c61278861278361275d8487516126f0565b611d55565b1590565b61279857600101612742565b604051635140fefd60e11b8152600490fd5b6040516323cda06760e01b8152600490fd5b506040925050818101905f5b8251805182101561282f576110bc61275d836127e3936126f0565b1561281e576128016127886127fc61275d8487516126f0565b611dc3565b61280d576001016127c8565b8351635140fefd60e11b8152600490fd5b83516323cda06760e01b8152600490fd5b50509150505190565b6040516303501f5960e11b8152600490fd5b506020820151511580612736575060408201515115612736565b9080821015612871575090565b905090565b9091828202915f19848209938380861095039480860395146128fb57848311156128e957829109815f038216809204600280826003021880830282030280830282030280830282030280830282030280830282030280920290030293600183805f03040190848311900302920304170290565b60405163227bc15360e01b8152600490fd5b50509061058692506116c2565b8054600160401b81101561046757612925916001820181556118fd565b61295057815160209092015160301b65ffffffffffff191665ffffffffffff92909216919091179055565b634e487b7160e01b5f525f60045260245ffd5b805492939291908215612a555761298461297f61249e856113ae565b6123d9565b90612995825165ffffffffffff1690565b65ffffffffffff84811691168110612a43576119a89460209488926129c3611aff875165ffffffffffff1690565b03612a0b57506129fd926129d96129e4926113ae565b905f5260205f200190565b9065ffffffffffff82549181199060301b169116179055565b01516001600160d01b031690565b915050612a3e91612a2b612a1d6104c7565b65ffffffffffff9093168352565b6001600160d01b03881682860152612908565b6129fd565b604051632520601d60e01b8152600490fd5b612a799250612a65612a1d6104c7565b6001600160d01b0385166020830152612908565b5f9190565b60ff5f80516020612c7f8339815191525460401c1615612a9a57565b604051631afcd79f60e31b8152600490fd5b801561152d5780612292612b77612b6d612b63612b59612b4f612b45612b3b60016105869a5f908b60801c80612bd3575b508060401c80612bc6575b508060201c80612bb9575b508060101c80612bac575b508060081c80612b9f575b508060041c80612b92575b508060021c80612b85575b50821c612b7e575b811c1b612b34818b6116c2565b0160011c90565b612b34818a6116c2565b612b3481896116c2565b612b3481886116c2565b612b3481876116c2565b612b3481866116c2565b612b3481856116c2565b80926116c2565b8101612b27565b600291509101905f612b1f565b600491509101905f612b14565b600891509101905f612b09565b601091509101905f612afe565b602091509101905f612af3565b604091509101905f612ae8565b9150506080905f612add565b91905b838210612bef5750505090565b9091928083169080841860011c82018092116113bc57845f5265ffffffffffff808360205f20015416908416105f14612c2c5750925b9190612be2565b939250612c38906113ce565b91612c2556fe02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268009b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a2646970667358221220b254b860c7c949491b5c7d1363cf98acdb518a309f471651f9f806b7024a05a764736f6c63430008190033","sourceMap":"542:7244:78:-:0;;;;-1:-1:-1;;;;;542:7244:78;;;;;;;;;;-1:-1:-1;;542:7244:78;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;8837:64:25;542:7244:78;;;;;;;;;7896:76:25;;542:7244:78;;;;7985:34:25;7981:146;;-1:-1:-1;525:17:69;;;542:7244:78;525:17:69;542:7244:78;552:12:69;542:7244:78;2360:34:76;2404:28;;2442:57;;;;2509:61;;;;542:7244:78;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2404:28:76;542:7244:78;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7981:146:25;-1:-1:-1;;;;;;542:7244:78;;;;;;;;;;;;;8087:29:25;;542:7244:78;;8087:29:25;7981:146;;;;;7896:76;542:7244:78;;-1:-1:-1;;;7938:23:25;;;;;542:7244:78;-1:-1:-1;542:7244:78;;;;;;-1:-1:-1;542:7244:78;;;;;-1:-1:-1;542:7244:78;;;;-1:-1:-1;;;;;542:7244:78;;;;;;:::o","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361015610011575f80fd5b5f3560e01c806301ffc9a714610264578063021453481461025f578063103f29071461025a578063128e5d82146102555780631a7a7044146102505780631a80e5001461024b57806323f752d514610246578063248a9ca3146102415780632dd310001461023c5780632f2ff15d1461023757806336568abe146102325780633dfd38731461022d5780633eb22c0f1461022857806342c53e3314610223578063439fab911461021e578063557cab44146102195780635d32a1c9146102145780636679191e1461020f5780637d24bb271461020a5780637f5a7c7b146102055780638b3f10b01461020057806391d14854146101fb5780639f86fd85146101f6578063a217fddf146101f1578063a33bc287146101ec578063bb24fe8a146101e7578063c0cd7c3e146101e2578063c43dc03f146101dd578063d15b740e146101d8578063d547741f146101d3578063e02f6937146101ce578063e49561ee146101c9578063e78eb6ae146101c4578063fbfa77cf146101bf578063fd4d447c146101ba578063ff54740f146101b55763ffa1ad74146101b0575f80fd5b6112e0565b6112c3565b611299565b611272565b611238565b61104d565b611031565b610fe5565b610fbb565b610f92565b610f4e565b610f0b565b610df0565b610dd6565b610d1c565b610cbe565b610c9b565b610c73565b610c3a565b610c00565b610bdd565b610b80565b610a48565b6109cf565b6109a6565b6108ad565b610862565b610816565b6107d2565b610799565b610613565b6105cf565b610589565b6103ce565b61038a565b6102be565b346102ba5760203660031901126102ba5760043563ffffffff60e01b81168091036102ba57602090637965db0b60e01b81149081156102a9575b506040519015158152f35b6301ffc9a760e01b1490505f61029e565b5f80fd5b346102ba576040806003193601126102ba5760043590602435906102e061180a565b825f526002602052805f2054821161037a57825f52600360205281610306825f20611efa565b1461036a5781610365916103557e899d104fc3d8820bd96540612bcc5c448c8837b13b9f7faa43ad0728f0c14f94610346875f52600360205260405f2090565b61034f426123a7565b90611952565b5050519081529081906020820190565b0390a2005b5163a741a04560e01b8152600490fd5b51631eefc06360e31b8152600490fd5b346102ba575f3660031901126102ba576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346102ba575f3660031901126102ba576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b6001600160a01b038116036102ba57565b6064359065ffffffffffff821682036102ba57565b634e487b7160e01b5f52604160045260245ffd5b604081019081106001600160401b0382111761046757604052565b610438565b606081019081106001600160401b0382111761046757604052565b90601f801991011681019081106001600160401b0382111761046757604052565b6040519060a082018281106001600160401b0382111761046757604052565b604051906104d48261044c565b565b6001600160401b03811161046757601f01601f191660200190565b81601f820112156102ba57803590610508826104d6565b926105166040519485610487565b828452602083830101116102ba57815f926020809301838601378301015290565b9060806003198301126102ba576004359160243561055481610412565b9160443565ffffffffffff811681036102ba5791606435906001600160401b0382116102ba57610586916004016104f1565b90565b346102ba5760206105c76105c261059f36610537565b939190925f526005865260405f209060018060a01b03165f5260205260405f2090565b611a45565b604051908152f35b346102ba575f3660031901126102ba576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346102ba5760403660031901126102ba576004356001600160601b03811681036102ba5760243590610643611b28565b6040516302910f8b60e31b81523360048201526020816024816001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165afa908115610794575f91610765575b5015610753576001600160601b03166bffffffffffffffffffffffff193360601b161790806106cd835f52600260205260405f2090565b541461074157610726817fc67e7929681aa1bccd63f52b3799bf5805f3009f197db6fdf584b14f7fbf608c9261070b855f52600260205260405f2090565b556107168185611b57565b6040519081529081906020820190565b0390a261073f60015f80516020612c5f83398151915255565b005b60405163a741a04560e01b8152600490fd5b6040516323d53b9760e21b8152600490fd5b610787915060203d60201161078d575b61077f8183610487565b810190611327565b5f610696565b503d610775565b61133f565b346102ba5760203660031901126102ba576004355f525f80516020612c3f8339815191526020526020600160405f200154604051908152f35b346102ba575f3660031901126102ba576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346102ba5760403660031901126102ba5761073f60243560043561083982610412565b805f525f80516020612c3f83398151915260205261085d600160405f2001546118bd565b611e32565b346102ba5760403660031901126102ba5760243561087f81610412565b336001600160a01b0382160361089b5761073f90600435611e68565b60405163334bd91960e11b8152600490fd5b346102ba5760203660031901126102ba576004356108ca81610412565b6108d2611b28565b335f9081527f9ebbcbe0d2961d3fbe56ca6f679bc753bd848d3e6bb3eaf9041c51b286881d2c60205260409020547fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c9060ff161561098857506001546001600160a01b039182169181168214610741576001600160a01b03191681176001557f5bbb1d3ebb6a3ad2a0f17ff35e579a83af60604d1d3c2a4c83c62adecadf666d5f80a260015f80516020612c5f83398151915255005b6044906040519063e2517d3f60e01b82523360048301526024820152fd5b346102ba5760203660031901126102ba576004355f52600360205260206105c760405f20611efa565b346102ba5760403660031901126102ba5760206105c7610a166024356109f481610412565b6004355f526005845260405f209060018060a01b03165f5260205260405f2090565b611efa565b9181601f840112156102ba578235916001600160401b0383116102ba57602083818601950101116102ba57565b346102ba5760203660031901126102ba576001600160401b036004358181116102ba57610a79903690600401610a1b565b5f80516020612c7f833981519152549260ff8460401c1615931680159081610b78575b6001149081610b6e575b159081610b65575b50610b53575f80516020612c7f833981519152805467ffffffffffffffff19166001179055610ae19183610b2f57611f7d565b610ae757005b5f80516020612c7f833981519152805460ff60401b19169055604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a1005b5f80516020612c7f833981519152805460ff60401b1916600160401b179055611f7d565b60405163f92ee8a960e01b8152600490fd5b9050155f610aae565b303b159150610aa6565b849150610a9c565b346102ba575f3660031901126102ba576020604051614e208152f35b60606003198201126102ba576004359160243565ffffffffffff811681036102ba5791604435906001600160401b0382116102ba57610586916004016104f1565b346102ba5760206105c7610bf036610b9c565b915f526003845260405f20611a45565b346102ba575f3660031901126102ba5760206040517fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c8152f35b346102ba575f3660031901126102ba5760206040517e8b9b1e5fa9cf3b14f87f435649268146305ddf689f082e5961a335b07a9abf8152f35b346102ba575f3660031901126102ba576001546040516001600160a01b039091168152602090f35b346102ba5760206105c7610cae36610b9c565b915f526004845260405f20611a45565b346102ba5760403660031901126102ba57602060ff610d10602435610ce281610412565b6004355f525f80516020612c3f833981519152845260405f209060018060a01b03165f5260205260405f2090565b54166040519015158152f35b346102ba576040806003193601126102ba57600435610d3a81610412565b602435906001600160401b0382116102ba575f8091610d60610dc4943690600401610a1b565b908187519283928337810184815203915af43d15610dcc57610db63d610d85816104d6565b90610d9286519283610487565b81523d5f602083013e5b845194859315156020850152808401526060830190611376565b03601f198101835282610487565b805190602001fd5b610db66060610d9c565b346102ba575f3660031901126102ba5760206040515f8152f35b346102ba5760603660031901126102ba57602435600435610e1082610412565b60443591610e1c611866565b5f8281526005602090815260408083206001600160a01b03851684529091529020610e4690611efa565b838114610741577f739a5a3ec0ff71e2386d0013deac5f44e0935a98def2e2a5ddf9a709518c829491610eb9610f0692855f52600460205260405f2090610eb388610eae610e93426123a7565b93610ea9610a168c5f52600460205260405f2090565b6113c1565b6113dc565b91611952565b5050610eea8561034683610ed5885f52600560205260405f2090565b9060018060a01b03165f5260205260405f2090565b50506040519485526001600160a01b0316939081906020820190565b0390a3005b346102ba575f3660031901126102ba5760206040516001600160401b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b346102ba575f3660031901126102ba576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346102ba5760203660031901126102ba576004355f52600460205260206105c760405f20611efa565b346102ba5760203660031901126102ba576004355f526002602052602060405f2054604051908152f35b346102ba5760403660031901126102ba5761073f60243560043561100882610412565b805f525f80516020612c3f83398151915260205261102c600160405f2001546118bd565b611e68565b346102ba5760206105c761104436610537565b929190916114eb565b346102ba5760a03660031901126102ba5760243560043561106d82610412565b60443591611079610423565b90608435906001600160401b0382116102ba5761109b600492369084016104f1565b6110a3611b28565b5f546020906110c8906110bc906001600160a01b031681565b6001600160a01b031690565b60405163b134427160e01b815294859182905afa928315610794575f93611207575b506001600160a01b0392831633036111f5576001546001600160a01b031683811661116a575b50506040805195865265ffffffffffff909316602086015216927f741a5de99085c0d660f3e4192217b0ffb0ea4e35a0480de48e857a4bc3ee36ed91819081015b0390a361073f60015f80516020612c5f83398151915255565b9093604051946111a186611193602082019363724ab0f760e11b8552858c898d6024870161168a565b03601f198101885287610487565b62042e305a106111e3575f611151938192827f741a5de99085c0d660f3e4192217b0ffb0ea4e35a0480de48e857a4bc3ee36ed9951926203d090f15093611110565b604051638072475160e01b8152600490fd5b60405163dabc4ad960e01b8152600490fd5b61122a91935060203d602011611231575b6112228183610487565b810190611675565b915f6110ea565b503d611218565b346102ba575f3660031901126102ba5760206040517f1312a1cf530e56add9be4fd84db9051dcc7635952f09f735f9a29405b55846258152f35b346102ba575f3660031901126102ba575f546040516001600160a01b039091168152602090f35b346102ba5760403660031901126102ba5760206105c76024356112bb81610412565b6004356116e0565b346102ba575f3660031901126102ba5760206040516203d0908152f35b346102ba575f3660031901126102ba57602060405160018152f35b5f9081526005602090815260408083206001600160a01b03909416835292905220610586929190611a45565b908160209103126102ba575180151581036102ba5790565b6040513d5f823e3d90fd5b9061058692915f52600360205260405f20611a45565b9061058692915f52600460205260405f20611a45565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b634e487b7160e01b5f52601160045260245ffd5b5f198101919082116113bc57565b61139a565b919082039182116113bc57565b90600182018092116113bc57565b919082018092116113bc57565b604051906113f68261044c565b60606020838281520152565b81601f820112156102ba57805190611419826104d6565b926114276040519485610487565b828452602083830101116102ba57815f9260208093018386015e8301015290565b906020828203126102ba5781516001600160401b03928382116102ba5701906040828203126102ba576040519261147e8461044c565b82518181116102ba5782611493918501611402565b845260208301519081116102ba576114ab9201611402565b602082015290565b6001600160a01b0391821681529116602082015265ffffffffffff909116604082015260806060820181905261058692910190611376565b926114fb909291928284866121e2565b9290936115066113e9565b93805180611659575b505084159384156115c3575b8415611532575b5050505061152d5790565b505f90565b60208094955061155d910151604051958694859463530e1d4360e01b865260601c90600486016114b3565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa908115610794575f916115a4575b50155f808080611522565b6115bd915060203d60201161078d5761077f8183610487565b5f611599565b5f549094506001600160a01b03166020848651926115f6604051948593849363530e1d4360e01b855289600486016114b3565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa908115610794575f9161163a575b50159361151b565b611653915060203d60201161078d5761077f8183610487565b5f611632565b61166d929550602080918301019101611448565b925f8061150f565b908160209103126102ba575161058681610412565b919360a093610586969565ffffffffffff938552600180871b0316602085015260408401521660608201528160808201520190611376565b81156116cc570490565b634e487b7160e01b5f52601260045260245ffd5b5f546040516308834cb560e21b8082526001600160a01b0385811660048401529283166024830152929392602092909183816044817f000000000000000000000000000000000000000000000000000000000000000086165afa908115610794575f916117ed575b5015918215611769575b5050905061176357610586916122f2565b50505f90565b6040519081526001600160a01b0385166004820152606086901c602482015291508290829060449082907f0000000000000000000000000000000000000000000000000000000000000000165afa918215610794575f926117d0575b505015805f80611752565b6117e69250803d1061078d5761077f8183610487565b5f806117c5565b6118049150843d861161078d5761077f8183610487565b5f611748565b335f9081527f72a65082a5691803ab2b62c9bc729b34205ba1b183d950896526b2fd8714d0c7602052604090207e8b9b1e5fa9cf3b14f87f435649268146305ddf689f082e5961a335b07a9abf9060ff905b5416156109885750565b335f9081527f8f2dae99798887da307a4daa2c2d11f840b0cb9a6a67822660c531e9ad14dd00602052604090207f1312a1cf530e56add9be4fd84db9051dcc7635952f09f735f9a29405b55846259060ff9061185c565b5f8181525f80516020612c3f83398151915260209081526040808320338452909152902060ff9061185c565b634e487b7160e01b5f52603260045260245ffd5b8054821015611912575f5260205f2001905f90565b6118e9565b90815491600160401b831015610467578261193a9160016104d4950181556118fd565b90919082549060031b91821b915f19901b1916179055565b909291926001820190815480156119e4575b508461196f846123fd565b5094909284549361197f83611efa565b96816119cf575b50156119ac575050505f1981019081116113bc5761193a85916119a8936118fd565b9190565b6119a89492936119c8926001600160d01b039091169190612963565b5050611917565b65ffffffffffff83811691161490505f611986565b600160401b81101561046757806001611a0092018455836118fd565b8154905f199060031b1b191690555f611964565b908160209103126102ba575163ffffffff811681036102ba5790565b90600163ffffffff809316019182116113bc57565b91805115611b1e5780602080611a6093518301019101611a14565b91611a6b838261251c565b92611a7c845165ffffffffffff1690565b9065ffffffffffff8085169216828114611b125782119182611ab2575b5050611aa957610586925061244c565b50506020015190565b909150611abf83546113ae565b63ffffffff831614918215611ad8575b50505f80611a99565b611b0a919250611af3611aed611aff92611a30565b8561251c565b5165ffffffffffff1690565b65ffffffffffff1690565b115f80611acf565b50505050506020015190565b506105869161244c565b5f80516020612c5f8339815191526002815414611b455760029055565b604051633ee5aeb560e01b8152600490fd5b90815f52600360205260405f2081611b6e826123fd565b919390508315611bcc57611b8e916001600160d01b0316906001016118fd565b90549060031b1c5b82611bc2575b5050611ba6575050565b611bbe915f52600360205260405f2061034f426123a7565b5050565b119050815f611b9c565b50505f611b96565b6001600160a01b0381165f9081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d60205260409020545f80516020612c3f8339815191529060ff16611763575f808052602091825260408082206001600160a01b038516835290925220805460ff1916600117905533906001600160a01b03165f7f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d8180a4600190565b6001600160a01b0381165f9081527f9ebbcbe0d2961d3fbe56ca6f679bc753bd848d3e6bb3eaf9041c51b286881d2c602052604090207fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c905f80516020612c3f8339815191529060ff905b5416611d4e575f828152602091825260408082206001600160a01b038616835290925220805460ff1916600117905533916001600160a01b0316907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d5f80a4600190565b5050505f90565b6001600160a01b0381165f9081527f72a65082a5691803ab2b62c9bc729b34205ba1b183d950896526b2fd8714d0c7602052604090207e8b9b1e5fa9cf3b14f87f435649268146305ddf689f082e5961a335b07a9abf905f80516020612c3f8339815191529060ff90611cea565b6001600160a01b0381165f9081527f8f2dae99798887da307a4daa2c2d11f840b0cb9a6a67822660c531e9ad14dd00602052604090207f1312a1cf530e56add9be4fd84db9051dcc7635952f09f735f9a29405b5584625905f80516020612c3f8339815191529060ff90611cea565b5f8181525f80516020612c3f833981519152602081815260408084206001600160a01b038716855290915290912060ff90611cea565b5f8181525f80516020612c3f833981519152602081815260408084206001600160a01b03871685529091529091205460ff1615611d4e575f828152602091825260408082206001600160a01b038616835290925220805460ff1916905533916001600160a01b0316907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b5f80a4600190565b805480611f2957505f5b6001600160d01b03811615611763576001611f1f92016118fd565b90549060031b1c90565b5f199080828101116113bc57825f5260205f2001015460301c611f04565b9190916040818403126102ba578035611f5f81610412565b9260208201356001600160401b0381116102ba5761058692016104f1565b611f8991810190611f47565b6040516302910f8b60e31b81526001600160a01b039283166004820181905291906020816024817f000000000000000000000000000000000000000000000000000000000000000088165afa908115610794575f9161209c575b501561208a5761201e60409161201961206494611ffe612584565b60018060a01b03166001600160601b0360a01b5f5416175f55565b612704565b6020810151600180546001600160a01b0319166001600160a01b0390921691909117905580516001600160a01b031684811661207a575b5001516001600160a01b031690565b90811661206e5750565b61207790611c7f565b50565b61208390611bd4565b505f612055565b6040516362df054560e01b8152600490fd5b6120b5915060203d60201161078d5761077f8183610487565b5f611fe3565b6040519060a082018281106001600160401b038211176104675760405281608060609182815282602082015282604082015282808201520152565b906020828203126102ba5781516001600160401b03928382116102ba57019060a0828203126102ba576121276104a8565b9282518181116102ba578261213d918501611402565b845260208301518181116102ba5782612157918501611402565b602085015260408301518181116102ba5782612174918501611402565b604085015260608301518181116102ba5782612191918501611402565b606085015260808301519081116102ba576121ac9201611402565b608082015290565b908160209103126102ba575190565b60409065ffffffffffff61058694931681528160208201520190611376565b919392936121ee6120bb565b948051806122d6575b505061220860608601518285611360565b918261221a57505050509051905f9190565b61222e6122689183608089015191876112fb565b9160206122476110bc6110bc5f5460018060a01b031690565b8189015190604051808096819463810da75d60e01b835287600484016121c3565b03915afa80156107945761229e95612298935f926122a3575b50612292919260408a01519161134a565b90612864565b90612876565b915190565b61229292506122c99060203d6020116122cf575b6122c18183610487565b8101906121b4565b91612281565b503d6122b7565b6122ea9296506020809183010191016120f6565b935f806121f7565b90612308610a16835f52600460205260405f2090565b9081612315575050505f90565b610a1661232e91610ed5855f52600560205260405f2090565b5f5460405163bd49c35f60e01b815290602090829060049082906001600160a01b03165afa80156107945761058694612298925f9261237e575b50610a16612292915f52600360205260405f2090565b61229291925061239f610a169160203d6020116122cf576122c18183610487565b929150612368565b65ffffffffffff908181116123ba571690565b604490604051906306dfcc6560e41b8252603060048301526024820152fd5b906040516123e68161044c565b915465ffffffffffff8116835260301c6020830152565b80548061240e5750505f905f905f90565b5f199080828101116113bc5761242b925f5260205f2001016123d9565b9065ffffffffffff82511691602060018060d01b0391015116906001929190565b908154905f8291600584116124b6575b612467935084612bdf565b8061248f57505f905b6001600160d01b0382161561176357610586916001611f1f92016118fd565b6124a961249e6124b0926113ae565b835f5260205f200190565b5460301c90565b90612470565b91926124c181612aac565b81039081116113bc5761246793855f5265ffffffffffff808360205f20015416908516105f146124f257509161245c565b9291506124fe906113ce565b9061245c565b604051906125118261044c565b5f6020838281520152565b9061254561253f6125669261252f612504565b50612538612504565b50846118fd565b506123d9565b91600165ffffffffffff845116936020828060d01b039101511691016118fd565b905490604051926125768461044c565b835260031b1c602082015290565b61258c612a7e565b612594612a7e565b60015f80516020612c5f83398151915255565b604051906125b48261046c565b5f6040838281528260208201520152565b81601f820112156102ba578051916020916001600160401b038411610467578360051b90604051946125f985840187610487565b855283808601928201019283116102ba578301905b82821061261c575050505090565b838091835161262a81610412565b81520191019061260e565b906020828203126102ba5781516001600160401b03928382116102ba5701908181039260a084126102ba5760606040519461266f8661046c565b126102ba576040516126808161046c565b835161268b81610412565b8152602084015161269b81610412565b602082015260408401516126ae81610412565b6040820152845260608301518181116102ba57826126cd9185016125c5565b602085015260808301519081116102ba576126e892016125c5565b604082015290565b80518210156119125760209160051b010190565b612720906127106125a7565b5060208082518301019101612635565b8051519091906001600160a01b0316158061284a575b612838579060208101905f5b825180518210156127bc576110bc61275d8361276a936126f0565b516001600160a01b031690565b156127aa5761278c61278861278361275d8487516126f0565b611d55565b1590565b61279857600101612742565b604051635140fefd60e11b8152600490fd5b6040516323cda06760e01b8152600490fd5b506040925050818101905f5b8251805182101561282f576110bc61275d836127e3936126f0565b1561281e576128016127886127fc61275d8487516126f0565b611dc3565b61280d576001016127c8565b8351635140fefd60e11b8152600490fd5b83516323cda06760e01b8152600490fd5b50509150505190565b6040516303501f5960e11b8152600490fd5b506020820151511580612736575060408201515115612736565b9080821015612871575090565b905090565b9091828202915f19848209938380861095039480860395146128fb57848311156128e957829109815f038216809204600280826003021880830282030280830282030280830282030280830282030280830282030280920290030293600183805f03040190848311900302920304170290565b60405163227bc15360e01b8152600490fd5b50509061058692506116c2565b8054600160401b81101561046757612925916001820181556118fd565b61295057815160209092015160301b65ffffffffffff191665ffffffffffff92909216919091179055565b634e487b7160e01b5f525f60045260245ffd5b805492939291908215612a555761298461297f61249e856113ae565b6123d9565b90612995825165ffffffffffff1690565b65ffffffffffff84811691168110612a43576119a89460209488926129c3611aff875165ffffffffffff1690565b03612a0b57506129fd926129d96129e4926113ae565b905f5260205f200190565b9065ffffffffffff82549181199060301b169116179055565b01516001600160d01b031690565b915050612a3e91612a2b612a1d6104c7565b65ffffffffffff9093168352565b6001600160d01b03881682860152612908565b6129fd565b604051632520601d60e01b8152600490fd5b612a799250612a65612a1d6104c7565b6001600160d01b0385166020830152612908565b5f9190565b60ff5f80516020612c7f8339815191525460401c1615612a9a57565b604051631afcd79f60e31b8152600490fd5b801561152d5780612292612b77612b6d612b63612b59612b4f612b45612b3b60016105869a5f908b60801c80612bd3575b508060401c80612bc6575b508060201c80612bb9575b508060101c80612bac575b508060081c80612b9f575b508060041c80612b92575b508060021c80612b85575b50821c612b7e575b811c1b612b34818b6116c2565b0160011c90565b612b34818a6116c2565b612b3481896116c2565b612b3481886116c2565b612b3481876116c2565b612b3481866116c2565b612b3481856116c2565b80926116c2565b8101612b27565b600291509101905f612b1f565b600491509101905f612b14565b600891509101905f612b09565b601091509101905f612afe565b602091509101905f612af3565b604091509101905f612ae8565b9150506080905f612add565b91905b838210612bef5750505090565b9091928083169080841860011c82018092116113bc57845f5265ffffffffffff808360205f20015416908416105f14612c2c5750925b9190612be2565b939250612c38906113ce565b91612c2556fe02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268009b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a2646970667358221220b254b860c7c949491b5c7d1363cf98acdb518a309f471651f9f806b7024a05a764736f6c63430008190033","sourceMap":"542:7244:78:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;;;;;-1:-1:-1;;542:7244:78;;;;;;;;;;;;;;;;;;-1:-1:-1;;;3551:47:23;;;:87;;;;542:7244:78;;;;;;;;;;3551:87:23;-1:-1:-1;;;1133:40:29;;-1:-1:-1;3551:87:23;;;542:7244:78;-1:-1:-1;542:7244:78;;;;;;;;;;;;;;;;;;;;3202:4:23;;;:::i;:::-;542:7244:78;-1:-1:-1;542:7244:78;3610:15;542:7244;;;-1:-1:-1;542:7244:78;;3601:36;;3597:98;;542:7244;-1:-1:-1;542:7244:78;2233:13;542:7244;;;2233:34;542:7244;-1:-1:-1;542:7244:78;2233:34;:::i;:::-;3709;3705:84;;3799:25;3871:35;3799:25;:56;3871:35;3799:25;;;542:7244;;2233:13;542:7244;;;;;;;3799:25;819:34:62;837:15;819:34;:::i;:::-;3799:56:78;;:::i;:::-;-1:-1:-1;;542:7244:78;;;;;;;;;;;;3871:35;;;;542:7244;3705:84;542:7244;-1:-1:-1;;;3766:12:78;;542:7244;;3766:12;3597:98;542:7244;-1:-1:-1;;;3660:24:78;;542:7244;;3660:24;542:7244;;;;;;-1:-1:-1;;542:7244:78;;;;;;1537:38:76;-1:-1:-1;;;;;542:7244:78;;;;;;;;;;;;-1:-1:-1;;542:7244:78;;;;;;1632:54:76;-1:-1:-1;;;;;542:7244:78;;;;;;;-1:-1:-1;;;;;542:7244:78;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;542:7244:78;;;;;;;:::o;:::-;;:::i;:::-;;;;;;;-1:-1:-1;;;;;542:7244:78;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;542:7244:78;;;;;;;:::o;:::-;;;;;;;;;;-1:-1:-1;;;;;542:7244:78;;;;;;;:::o;:::-;;;;;;;:::i;:::-;:::o;:::-;-1:-1:-1;;;;;542:7244:78;;;;;;-1:-1:-1;;542:7244:78;;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;542:7244:78;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;542:7244:78;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;-1:-1:-1;;;;;542:7244:78;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;3090:79;:44;542:7244;;;:::i;:::-;;;;;-1:-1:-1;542:7244:78;3090:22;542:7244;;;-1:-1:-1;542:7244:78;;;;;;;;;;;;;;;;;3090:44;:79;:::i;:::-;542:7244;;;;;;;;;;;;-1:-1:-1;;542:7244:78;;;;;;1743:56:76;-1:-1:-1;;;;;542:7244:78;;;;;;;;;;;;-1:-1:-1;;542:7244:78;;;;;;-1:-1:-1;;;;;542:7244:78;;;;;;;;3217:103:28;;;:::i;:::-;542:7244:78;;-1:-1:-1;;;4285:48:76;;4322:10;542:7244:78;4285:48:76;;542:7244:78;;;;;-1:-1:-1;;;;;4295:16:76;542:7244:78;4285:48:76;;;;;;;-1:-1:-1;4285:48:76;;;542:7244:78;4284:49:76;;4280:99;;-1:-1:-1;;;;;542:7244:78;-1:-1:-1;;4322:10:76;297:2:88;542:7244:78;;267:46:88;4459:27:76;;;;542:7244:78;;4459:15:76;542:7244:78;;;;;;;4459:27:76;542:7244:78;4459:37:76;4455:87;;4654:38;4552:27;4654:38;4552:27;;;542:7244:78;;4459:15:76;542:7244:78;;;;;;;4552:27:76;542:7244:78;4631:6:76;;;;:::i;:::-;542:7244:78;;;;;;;;;;;;;4654:38:76;;;;3282:1:28;1805;-1:-1:-1;;;;;;;;;;;542:7244:78;3716:283:28;3282:1;542:7244:78;4455:87:76;542:7244:78;;-1:-1:-1;;;4519:12:76;;542:7244:78;;4519:12:76;4280:99;542:7244:78;;-1:-1:-1;;;4356:12:76;;542:7244:78;;4356:12:76;4285:48;;;;542:7244:78;4285:48:76;542:7244:78;4285:48:76;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;:::i;542:7244:78:-;;;;;;-1:-1:-1;;542:7244:78;;;;;;-1:-1:-1;542:7244:78;-1:-1:-1;;;;;;;;;;;542:7244:78;;;4919:24:23;542:7244:78;-1:-1:-1;542:7244:78;4919:24:23;542:7244:78;;;;;;;;;;;;;-1:-1:-1;;542:7244:78;;;;;;322:32:69;-1:-1:-1;;;;;542:7244:78;;;;;;;;;;;;-1:-1:-1;;542:7244:78;;;;5350:25:23;542:7244:78;;;;;;;:::i;:::-;;-1:-1:-1;542:7244:78;-1:-1:-1;;;;;;;;;;;542:7244:78;;3202:4:23;4919:24;542:7244:78;-1:-1:-1;542:7244:78;4919:24:23;542:7244:78;3202:4:23;:::i;:::-;5350:25;:::i;542:7244:78:-;;;;;;-1:-1:-1;;542:7244:78;;;;;;;;;:::i;:::-;966:10:27;-1:-1:-1;;;;;542:7244:78;;6441:34:23;6437:102;;6549:37;542:7244:78;;;6549:37:23;:::i;6437:102::-;542:7244:78;;-1:-1:-1;;;6498:30:23;;542:7244:78;;6498:30:23;542:7244:78;;;;;;-1:-1:-1;;542:7244:78;;;;;;;;;:::i;:::-;3217:103:28;;:::i;:::-;966:10:27;-1:-1:-1;542:7244:78;;;;;;;;;;1356:26:76;;542:7244:78;;4468:23:23;4464:108;;-1:-1:-1;4861:4:76;542:7244:78;-1:-1:-1;;;;;542:7244:78;;;;;;4861:13:76;;4857:63;;-1:-1:-1;;;;;;542:7244:78;;;4861:4:76;542:7244:78;4958:14:76;-1:-1:-1;;4958:14:76;4861:4;-1:-1:-1;;;;;;;;;;;542:7244:78;;4464:108:23;542:7244:78;;;;4514:47:23;;;;;;966:10:27;542:7244:78;4514:47:23;;542:7244:78;;;;;4514:47:23;542:7244:78;;;;;;-1:-1:-1;;542:7244:78;;;;;;-1:-1:-1;542:7244:78;2233:13;542:7244;;;2233:34;542:7244;-1:-1:-1;542:7244:78;2233:34;:::i;542:7244::-;;;;;;-1:-1:-1;;542:7244:78;;;;;3358:53;:44;542:7244;;;;;:::i;:::-;;;-1:-1:-1;542:7244:78;3358:22;542:7244;;;-1:-1:-1;542:7244:78;;;;;;;;;;;;;;;;;3358:44;:53;:::i;542:7244::-;;;;;;;;;;;;;-1:-1:-1;;;;;542:7244:78;;;;;;;;;;;;;;;:::o;:::-;;;;;;-1:-1:-1;;542:7244:78;;;;-1:-1:-1;;;;;542:7244:78;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;542:7244:78;;;;;;;4301:16:25;542:7244:78;;4726:16:25;;:34;;;;542:7244:78;4805:1:25;4790:16;:50;;;;542:7244:78;4855:13:25;:30;;;;542:7244:78;4851:91:25;;;-1:-1:-1;;;;;;;;;;;542:7244:78;;-1:-1:-1;;542:7244:78;;;;;718:4:69;;4951:18:25;4979:67;;718:4:69;:::i;:::-;5066:101:25;;542:7244:78;5066:101:25;-1:-1:-1;;;;;;;;;;;542:7244:78;;-1:-1:-1;;;;542:7244:78;;;;;-1:-1:-1;542:7244:78;;5142:14:25;;542:7244:78;;5142:14:25;542:7244:78;4979:67:25;-1:-1:-1;;;;;;;;;;;542:7244:78;;-1:-1:-1;;;;542:7244:78;-1:-1:-1;;;542:7244:78;;;718:4:69;:::i;4851:91:25:-;542:7244:78;;-1:-1:-1;;;4908:23:25;;542:7244:78;;4908:23:25;4855:30;4872:13;;;4855:30;;;4790:50;4818:4;4810:25;:30;;-1:-1:-1;4790:50:25;;4726:34;;;-1:-1:-1;4726:34:25;;542:7244:78;;;;;;-1:-1:-1;;542:7244:78;;;;;;;1253:6:76;542:7244:78;;;;;-1:-1:-1;;542:7244:78;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;542:7244:78;;;;;;;;;:::i;:::-;;;;;1997:60;542:7244;;;:::i;:::-;;-1:-1:-1;542:7244:78;1997:13;542:7244;;;-1:-1:-1;542:7244:78;1997:60;:::i;542:7244::-;;;;;;-1:-1:-1;;542:7244:78;;;;;;;1356:26:76;542:7244:78;;;;;;;;;-1:-1:-1;;542:7244:78;;;;;;;810:35;542:7244;;;;;;;;;-1:-1:-1;;542:7244:78;;;;;;;;-1:-1:-1;;;;;542:7244:78;;;;;;;;;;;;;2512:74;542:7244;;;:::i;:::-;;-1:-1:-1;542:7244:78;;;;;-1:-1:-1;542:7244:78;2512:74;:::i;542:7244::-;;;;;;-1:-1:-1;;542:7244:78;;;;;;3901:31:23;542:7244:78;;;;;:::i;:::-;;;-1:-1:-1;542:7244:78;-1:-1:-1;;;;;;;;;;;542:7244:78;;;-1:-1:-1;542:7244:78;;;;;;;;;;;;;;;;;3901:31:23;542:7244:78;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;542:7244:78;;;;-1:-1:-1;542:7244:78;;;477:31:75;542:7244:78;;;;;;:::i;:::-;;;;;;;;;;;;;;;416:25:75;;;;542:7244:78;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;-1:-1:-1;542:7244:78;;;;;;;;;;;;;477:31:75;;542:7244:78;;;;;;;;;;:::i;:::-;477:31:75;542:7244:78;;477:31:75;;;;;;:::i;:::-;518:79;;;542:7244:78;518:79:75;;542:7244:78;;;;;;;;;;;-1:-1:-1;;542:7244:78;;;;;;;;;;;;;;;;;-1:-1:-1;;542:7244:78;;;;;;;;;;;:::i;:::-;;;3202:4:23;;;:::i;:::-;-1:-1:-1;542:7244:78;;;3358:22;542:7244;;;;;;;;-1:-1:-1;;;;;542:7244:78;;;;;;;;;3358:53;;;:::i;:::-;4249:32;;;4245:82;;4596:54;542:7244;4337:158;4596:54;542:7244;;-1:-1:-1;542:7244:78;;;;;-1:-1:-1;542:7244:78;837:15:62;4413:72:78;837:15:62;4413:63:78;819:34:62;837:15;819:34;:::i;:::-;2776:39:78;:48;:39;;542:7244;;;;;;;;;;2776:48;4413:63;:::i;:::-;:72;:::i;:::-;4337:158;;:::i;:::-;4505:34;;:75;:34;:44;:34;;;542:7244;;3358:22;542:7244;;;;;;;4505:34;542:7244;;;;;;;;;;;;;;;;4505:75;-1:-1:-1;;542:7244:78;;;;;-1:-1:-1;;;;;542:7244:78;;;;;;;;;;4596:54;;;;542:7244;;;;;;;-1:-1:-1;;542:7244:78;;;;;;;-1:-1:-1;;;;;404:28:69;542:7244:78;;;;;;;;;;-1:-1:-1;;542:7244:78;;;;;;1439:41:76;-1:-1:-1;;;;;542:7244:78;;;;;;;;;;;;-1:-1:-1;;542:7244:78;;;;;;-1:-1:-1;542:7244:78;;;;;2776:48;542:7244;-1:-1:-1;542:7244:78;2776:48;:::i;542:7244::-;;;;;;-1:-1:-1;;542:7244:78;;;;;;-1:-1:-1;542:7244:78;2009:67:76;542:7244:78;;;;-1:-1:-1;542:7244:78;;;;;;;;;;;;;;-1:-1:-1;;542:7244:78;;;;5767:26:23;542:7244:78;;;;;;;:::i;:::-;;-1:-1:-1;542:7244:78;-1:-1:-1;;;;;;;;;;;542:7244:78;;3202:4:23;4919:24;542:7244:78;-1:-1:-1;542:7244:78;4919:24:23;542:7244:78;3202:4:23;:::i;:::-;5767:26;:::i;542:7244:78:-;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;-1:-1:-1;;542:7244:78;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;-1:-1:-1;;;;;542:7244:78;;;;;;;;;;;;:::i;:::-;3217:103:28;;:::i;:::-;-1:-1:-1;542:7244:78;;;5246:21:76;;:13;;-1:-1:-1;;;;;542:7244:78;5246:13:76;542:7244:78;;-1:-1:-1;;;;;542:7244:78;;;5246:21:76;542:7244:78;;-1:-1:-1;;;5246:23:76;;542:7244:78;;;;;5246:23:76;;;;;;;-1:-1:-1;5246:23:76;;;542:7244:78;-1:-1:-1;;;;;;542:7244:78;;;5232:10:76;:37;5228:87;;5341:4;542:7244:78;-1:-1:-1;;;;;542:7244:78;;;;5355:469:76;;542:7244:78;-1:-1:-1;;542:7244:78;;;;;;;;;;;;;;;;5839:55:76;;542:7244:78;;;;5839:55:76;;;;3282:1:28;1805;-1:-1:-1;;;;;;;;;;;542:7244:78;3716:283:28;5355:469:76;542:7244:78;;;;5435:94:76;;;;542:7244:78;5435:94:76;;;;;;;;;;;;542:7244:78;5435:94:76;;;:::i;:::-;;542:7244:78;;5435:94:76;;;;;;:::i;:::-;542:7244:78;5548:9:76;:51;5544:118;;-1:-1:-1;5839:55:76;5676:138;;;;5839:55;5676:138;;;1150:7;5676:138;;5355:469;;;5544:118;542:7244:78;;-1:-1:-1;;;5626:21:76;;542:7244:78;;5626:21:76;5228:87;542:7244:78;;-1:-1:-1;;;5292:12:76;;542:7244:78;;5292:12:76;5246:23;;;;;542:7244:78;5246:23:76;542:7244:78;5246:23:76;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;542:7244:78;;;;;;-1:-1:-1;;542:7244:78;;;;;;;971:45;542:7244;;;;;;;;;-1:-1:-1;;542:7244:78;;;;;;;;-1:-1:-1;;;;;542:7244:78;;;;;;;;;;;;;;-1:-1:-1;;542:7244:78;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;-1:-1:-1;;542:7244:78;;;;;;;1150:7:76;542:7244:78;;;;;;;;;-1:-1:-1;;542:7244:78;;;;;;;2700:1:76;542:7244:78;;;2897:279;-1:-1:-1;542:7244:78;;;3090:22;542:7244;;;;;;;;-1:-1:-1;;;;;542:7244:78;;;;;;;;;3090:79;;2897:279;;3090:79;:::i;542:7244::-;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;1869:195;;1997:60;1869:195;;-1:-1:-1;542:7244:78;1997:13;542:7244;;;-1:-1:-1;542:7244:78;1997:60;:::i;2340:253::-;;2512:74;2340:253;;-1:-1:-1;542:7244:78;2512:27;542:7244;;;-1:-1:-1;542:7244:78;2512:74;:::i;542:7244::-;;;;;;;;;;;;;;;;;-1:-1:-1;542:7244:78;;;;;;;;-1:-1:-1;;542:7244:78;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;542:7244:78;;;;;;;;:::o;:::-;;:::i;:::-;;;;;;;;;;:::o;:::-;;9856:1:60;542:7244:78;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;542:7244:78;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;;;;542:7244:78;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::o;:::-;-1:-1:-1;;;;;542:7244:78;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;2764:920:76:-;;2978:48;2764:920;;;;2978:48;;;;:::i;:::-;3036:36;;;542:7244:78;;:::i;:::-;;;;3086:20:76;3082:107;;2764:920;3216:11;;;;:193;;;;;2764:920;3216:394;;;;2764:920;3199:455;;;;;;2764:920;:::o;3199:455::-;3635:8;-1:-1:-1;3635:8:76;:::o;3216:394::-;3553:39;;;;;3430:180;3553:39;;;542:7244:78;;;;;;;;;;3430:180:76;;467:2:88;542:7244:78;3430:180:76;;;;;:::i;:::-;;542:7244:78;3444:31:76;-1:-1:-1;;;;;542:7244:78;3430:180:76;;;;;;;-1:-1:-1;3430:180:76;;;3216:394;3429:181;;3216:394;;;;;;3430:180;;;;3553:39;3430:180;3553:39;3430:180;;;;;;;:::i;:::-;;;;3216:193;-1:-1:-1;542:7244:78;;;-1:-1:-1;;;;;;542:7244:78;3248:161:76;3354:37;;;542:7244:78;3248:161:76;542:7244:78;;;;;;;;;;3248:161:76;;;;;;;:::i;:::-;;542:7244:78;3262:29:76;-1:-1:-1;;;;;542:7244:78;3248:161:76;;;;;;;-1:-1:-1;3248:161:76;;;3216:193;3247:162;;3216:193;;;3248:161;;;;;;;;;;;;;;:::i;:::-;;;;3082:107;3139:39;;;;;;;;;;;;;:::i;:::-;3082:107;;;;;542:7244:78;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::o;:::-;;;;;;;;;;;;3740:389:76;3918:5;542:7244:78;;;-1:-1:-1;;;3853:71:76;;;-1:-1:-1;;;;;542:7244:78;;;3853:71:76;;;542:7244:78;;;;;;;;3740:389:76;;542:7244:78;3853:71:76;;542:7244:78;;3853:71:76;542:7244:78;;;3867:29:76;542:7244:78;;3853:71:76;;;;;;;3918:5;3853:71;;;3740:389;3852:72;;542:7244:78;;;3852:181:76;;3740:389;3835:242;;;;;;4094:28;;;:::i;3835:242::-;4058:8;;3918:5;4058:8;:::o;3852:181::-;542:7244:78;;3945:88:76;;;-1:-1:-1;;;;;542:7244:78;;3853:71:76;3945:88;;542:7244:78;467:2:88;542:7244:78;;;;;;;;-1:-1:-1;542:7244:78;;;;;;;;3959:31:76;542:7244:78;3945:88:76;;;;;;;3918:5;3945:88;;;3852:181;3944:89;;;3852:181;;;;;3945:88;;;;;;-1:-1:-1;3945:88:76;;;;;;:::i;:::-;;;;;3853:71;;;;;;;;;;;;;;:::i;:::-;;;;4148:103:23;966:10:27;-1:-1:-1;542:7244:78;;;;;;;;;810:35;;542:7244;;3901:31:23;542:7244:78;;4468:23:23;4464:108;;4148:103;:::o;:::-;966:10:27;-1:-1:-1;542:7244:78;;;;;;;;;971:45;;542:7244;;3901:31:23;542:7244:78;4148:103:23;-1:-1:-1;542:7244:78;;;-1:-1:-1;;;;;;;;;;;542:7244:78;;;;;;;;966:10:27;542:7244:78;;;;;;;;;3901:31:23;542:7244:78;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;542:7244:78;;-1:-1:-1;542:7244:78;;;-1:-1:-1;542:7244:78;:::o;:::-;;:::i;:::-;;;;;-1:-1:-1;;;542:7244:78;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;6246:584:86;;;;;6360:12;;;542:7244:78;;;6360:24:86;;6356:75;;6246:584;6474:30;;;;;:::i;:::-;542:7244:78;;;;;;6578:12:86;;;;:::i;:::-;6604:24;;;;6246:584;-1:-1:-1;6600:188:86;;;-1:-1:-1;;;;;542:7244:78;;;;;;;6644:21:86;;;:29;:21;;:::i;:29::-;6798:25;6246:584;:::o;6600:188::-;6753:24;;542:7244:78;;8167:38:60;;-1:-1:-1;;;;;542:7244:78;;;;;8167:38:60;:::i;:::-;6753:24:86;;;:::i;6604:::-;542:7244:78;;;;;;6614:14:86;;-1:-1:-1;6604:24:86;;;6356:75;-1:-1:-1;;;542:7244:78;;;;;;6360:12:86;542:7244:78;;;;;;;:::i;:::-;;;;;;;;;;;;;;6356:75:86;;;542:7244:78;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;:::o;7558:604:86:-;;542:7244:78;;7686:17:86;7682:83;;542:7244:78;7789:27:86;542:7244:78;7789:27:86;542:7244:78;;7789:27:86;;;;;;:::i;:::-;7860:14;;;;;:::i;:::-;542:7244:78;;;;;;;;;;;;;;;;7888:22:86;;;7884:77;;7975:21;-1:-1:-1;7975:84:86;;;;7558:604;7971:139;;;;8127:28;;;;:::i;7971:139::-;8082:17;;7789:27;8082:17;542:7244:78;8075:24:86;:::o;7975:84::-;542:7244:78;;;8009:16:86;542:7244:78;;8009:16:86;:::i;:::-;542:7244:78;;;8001:24:86;:57;;;;;7975:84;;;;;;;8001:57;8029:29;8038:8;;;8029:18;8038:8;8029:23;8038:8;;:::i;:::-;8029:18;;:::i;:::-;542:7244:78;;;;;8029:23:86;542:7244:78;;;;8029:29:86;;8001:57;;;;7884:77;7933:17;;;;;7789:27;7933:17;542:7244:78;7926:24:86;:::o;7682:83::-;7726:28;;;;:::i;3326:384:28:-;-1:-1:-1;;;;;;;;;;;1847:1:28;542:7244:78;;3526:20:28;3522:88;;1847:1;542:7244:78;;3326:384:28:o;3522:88::-;542:7244:78;;-1:-1:-1;;;3569:30:28;;;;;6196:308:78;;542:7244;-1:-1:-1;542:7244:78;6327:13;542:7244;;;-1:-1:-1;542:7244:78;11124:30:86;;;;:::i;:::-;11173;;;-1:-1:-1;11173:30:86;;;;11182:17;;-1:-1:-1;;;;;542:7244:78;;11182:12:86;;:17;:::i;:::-;542:7244:78;;;6327:13;542:7244;;11173:30:86;6385::78;;;11173::86;6381:117:78;;;;6196:308;;:::o;6381:117::-;6431:56;542:7244;-1:-1:-1;542:7244:78;6327:13;542:7244;;;-1:-1:-1;542:7244:78;819:34:62;837:15;819:34;:::i;6431:56:78:-;6196:308;;:::o;6385:30::-;6395:20;;-1:-1:-1;6385:30:78;;;;11173::86;;;-1:-1:-1;11173:30:86;;7270:387:23;-1:-1:-1;;;;;542:7244:78;;-1:-1:-1;542:7244:78;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2887:71:23;542:7244:78;;;;-1:-1:-1;542:7244:78;;;;;;;;;;;-1:-1:-1;;;;;542:7244:78;;;;;;;;;;-1:-1:-1;;542:7244:78;7509:4:23;542:7244:78;;;966:10:27;;-1:-1:-1;;;;;542:7244:78;-1:-1:-1;7532:40:23;-1:-1:-1;;7532:40:23;7509:4;7586:11;:::o;7270:387::-;-1:-1:-1;;;;;542:7244:78;;-1:-1:-1;542:7244:78;;;;;;;;;1356:26:76;;-1:-1:-1;;;;;;;;;;;2887:71:23;542:7244:78;;3901:31:23;542:7244:78;;;;-1:-1:-1;542:7244:78;;;;;;;;;;;-1:-1:-1;;;;;542:7244:78;;;;;;;;;;-1:-1:-1;;542:7244:78;7509:4:23;542:7244:78;;;966:10:27;;-1:-1:-1;;;;;542:7244:78;;7532:40:23;-1:-1:-1;;7532:40:23;7509:4;7586:11;:::o;7432:219::-;7628:12;;;-1:-1:-1;7628:12:23;:::o;7270:387::-;-1:-1:-1;;;;;542:7244:78;;-1:-1:-1;542:7244:78;;;;;;;;;810:35;;-1:-1:-1;;;;;;;;;;;2887:71:23;542:7244:78;;3901:31:23;542:7244:78;7270:387:23;-1:-1:-1;;;;;542:7244:78;;-1:-1:-1;542:7244:78;;;;;;;;;971:45;;-1:-1:-1;;;;;;;;;;;2887:71:23;542:7244:78;;3901:31:23;542:7244:78;7270:387:23;-1:-1:-1;542:7244:78;;;-1:-1:-1;;;;;;;;;;;542:7244:78;;;;;;;;-1:-1:-1;;;;;542:7244:78;;;;;;;;;;;;3901:31:23;542:7244:78;7892:388:23;-1:-1:-1;542:7244:78;;;-1:-1:-1;;;;;;;;;;;542:7244:78;;;;;;;;-1:-1:-1;;;;;542:7244:78;;;;;;;;;;;;;;;;-1:-1:-1;542:7244:78;;;;;;;;;;;-1:-1:-1;;;;;542:7244:78;;;;;;;;;;-1:-1:-1;;542:7244:78;;;966:10:27;;-1:-1:-1;;;;;542:7244:78;;8155:40:23;-1:-1:-1;;8155:40:23;542:7244:78;8209:11:23;:::o;10580:184:86:-;542:7244:78;;10303:8:60;;;:63;-1:-1:-1;10303:63:60;-1:-1:-1;;;;;542:7244:78;;10726:7:86;542:7244:78;;10736:12:86;:17;:12;;:17;:::i;:::-;542:7244:78;;;;;;10580:184:86;:::o;10303:63:60:-;542:7244:78;;;;;;;;;;14249:109:60;-1:-1:-1;14249:109:60;;-1:-1:-1;14249:109:60;;;542:7244:78;;;10303:63:60;;542:7244:78;;;;;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;542:7244:78;;;;;;;;:::i;5907:716:76:-;6030:34;5907:716;6030:34;;;;:::i;:::-;542:7244:78;;-1:-1:-1;;;6080:41:76;;-1:-1:-1;;;;;542:7244:78;;;6080:41:76;;;542:7244:78;;;;;6080:41:76;542:7244:78;;;6090:13:76;542:7244:78;;6080:41:76;;;;;;;-1:-1:-1;6080:41:76;;;5907:716;6079:42;;6075:90;;6266:27;542:7244:78;2540:111:28;6210:14:76;542:7244:78;2540:111:28;;;:::i;:::-;542:7244:78;;;;;;-1:-1:-1;;;;;542:7244:78;;-1:-1:-1;542:7244:78;;;-1:-1:-1;542:7244:78;;6210:14:76;6266:27;:::i;:::-;6080:41;6311:15;;542:7244:78;;;;-1:-1:-1;;;;;;542:7244:78;-1:-1:-1;;;;;542:7244:78;;;;;;;;;;;-1:-1:-1;;;;;542:7244:78;;;;6337:143:76;;5907:716;-1:-1:-1;6493:28:76;542:7244:78;-1:-1:-1;;;;;542:7244:78;;;;;;;6489:128:76;;5907:716;:::o;6489:128::-;6551:55;;;:::i;:::-;;5907:716::o;6337:143::-;6404:65;;;:::i;:::-;;6337:143;;;6075:90;542:7244:78;;-1:-1:-1;;;6144:10:76;;6080:41;;6144:10;6080:41;;;;;;;;;;;;;;:::i;:::-;;;;542:7244:78;;;;;;;;;;-1:-1:-1;;;;;542:7244:78;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;;;;542:7244:78;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;:::i;4663:1079::-;;;;;542:7244;;:::i;:::-;;;;4903:16;4899:92;;4663:1079;5105:42;;5053:95;5105:42;;;;5053:95;;;:::i;:::-;5165:570;:34;;;5218:21;;;;;;5165:570;-1:-1:-1;5158:577:78;4663:1079;:::o;5165:570::-;5273:95;5431:67;5330:37;;;;;;5273:95;;;:::i;:::-;542:7244;5470:27;5431;:13;542:7244;-1:-1:-1;542:7244:78;;;;;;;;;5431:27;5470;;;;542:7244;;;;;;;;;;;5431:67;;;;;;;:::i;:::-;;;;;;;;;5273:409;5431:67;5397:216;5431:67;-1:-1:-1;5431:67:78;;;5165:570;5562:28;5524:67;5562:28;;542:7244;5562:28;;;5524:67;;:::i;:::-;5397:216;;:::i;:::-;5273:409;;:::i;:::-;5700:21;;4663:1079;:::o;5431:67::-;5524;5431;;;;5470:27;5431:67;5470:27;5431:67;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;4899:92;4949:31;;;;;;;;;;;;;:::i;:::-;4899:92;;;;;5748:442;;2776:48;:39;;542:7244;;;;;;;;;;2776:48;5946:237;:32;;;:237;;;-1:-1:-1;5748:442:78;:::o;5946:237::-;3358:44;:53;:34;;;542:7244;;3358:22;542:7244;;;;;;;3358:53;-1:-1:-1;542:7244:78;;;-1:-1:-1;;;6086:27:78;;542:7244;6086:27;;542:7244;;2776:27;;542:7244;;-1:-1:-1;;;;;542:7244:78;6086:27;;;;;;6009:174;6086:27;6077:63;6086:27;-1:-1:-1;6086:27:78;;;5946:237;2233:25;;:34;:25;542:7244;;2233:13;542:7244;;;;;;;6086:27;2233:34;6086:27;;;;2233:25;6086:27;;;;;;;;;;;:::i;:::-;;;;;;14291:213:58;542:7244:78;14369:24:58;;;;14365:103;;542:7244:78;14291:213:58;:::o;14365:103::-;542:7244:78;;;;14416:41:58;;;;;;14447:2;14416:41;;;542:7244:78;;;;;14416:41:58;542:7244:78;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::o;10552:388:60:-;542:7244:78;;10728:8:60;;;10752:20;;10690:17;10752:20;10690:17;10752:20;10690:17;10752:20;:::o;10724:210::-;542:7244:78;;;;;;;;;;;14249:109:60;10690:17;14249:109;;10690:17;14249:109;;;542:7244:78;:::i;:::-;;;;;;;14249:109:60;542:7244:78;;;;;10911:11:60;;542:7244:78;;10886:37:60;10870:1;10886:37;;;:::o;6999:207:86:-;;542:7244:78;;9594:15:60;-1:-1:-1;9619:18:60;9652:7;9658:1;9652:7;;9648:234;;6999:207:86;9906:53:60;;;;;:::i;:::-;9977:8;;;:63;-1:-1:-1;9977:63:60;;-1:-1:-1;;;;;542:7244:78;;7168:7:86;542:7244:78;;;7178:12:86;;:17;:12;;:17;:::i;9977:63:60:-;9992:41;10025:7;9992:48;10025:7;;:::i;:::-;9992:41;14249:109;;;;;;14099:265;;9992:41;542:7244:78;;;;;9992:48:60;9977:63;;;9648:234;9695:14;;;;;:::i;:::-;542:7244:78;;;;;;;9906:53:60;14249:109;;-1:-1:-1;14249:109:60;542:7244:78;14249:109:60;;;-1:-1:-1;14249:109:60;;542:7244:78;;;;;9727:48:60;9723:149;542:7244:78;;;9795:10:60;9723:149;9648:234;;9723:149;9850:7;;;;;;:::i;:::-;9723:149;9648:234;;542:7244:78;;;;;;;:::i;:::-;-1:-1:-1;542:7244:78;;;;;;;:::o;11486:272:86:-;;542:7244:78;11308:22:60;11718:31:86;11486:272;542:7244:78;;:::i;:::-;;;;:::i;:::-;;11308:22:60;;:::i;:::-;542:7244:78;;:::i;:::-;;11718:12:86;542:7244:78;;;;;11731:17:86;542:7244:78;;;;;11731:17:86;;542:7244:78;;11718:12:86;;:31;:::i;:::-;542:7244:78;;;;;;;;;:::i;:::-;;;;;;11731:17:86;11672:79;;542:7244:78;11486:272:86;:::o;6893:76:25:-;;;:::i;:::-;;;:::i;:::-;1805:1:28;-1:-1:-1;;;;;;;;;;;542:7244:78;6893:76:25:o;542:7244:78:-;;;;;;;:::i;:::-;-1:-1:-1;542:7244:78;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;-1:-1:-1;;;;;542:7244:78;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;542:7244:78;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;6510:1274::-;6658:30;6510:1274;542:7244;;:::i;:::-;;6658:30;542:7244;;;6658:30;;;;;;:::i;:::-;6716:17;;542:7244;6716:17;;542:7244;-1:-1:-1;;;;;542:7244:78;6716:54;;:179;;6510:1274;6699:259;;6973:9;6658:30;6988:33;;;6716:17;7030:3;6988:33;;542:7244;;6984:44;;;;;7053:36;;;:50;:36;;:::i;:::-;542:7244;-1:-1:-1;;;;;542:7244:78;;;7053:50;;7049:119;;7186:73;7187:72;7222:36;;:33;;;:36;:::i;:::-;7187:72;:::i;:::-;7186:73;;542:7244;7186:73;7182:140;;542:7244;;6973:9;;7182:140;542:7244;;-1:-1:-1;;;7286:21:78;;;;;7049:119;542:7244;;-1:-1:-1;;;7130:23:78;;;;;6984:44;-1:-1:-1;7362:42:78;;-1:-1:-1;;7362:42:78;;;;6716:17;7413:3;7362:42;;542:7244;;7358:53;;;;;7436:45;;;:59;:45;;:::i;:59::-;;7432:128;;7578:92;7579:91;7624:45;;:42;;;:45;:::i;:::-;7579:91;:::i;7578:92::-;7574:159;;542:7244;;7347:9;;7574:159;542:7244;;-1:-1:-1;;;7697:21:78;;;;;7432:128;542:7244;;-1:-1:-1;;;7522:23:78;;;;;7358:53;;;;;;7760:17;6510:1274;:::o;6699:259::-;542:7244;;-1:-1:-1;;;6927:20:78;;;;;6716:179;6791:33;6658:30;6791:33;;;542:7244;6791:45;:103;6716:179;6791:103;6840:42;;;;;542:7244;6840:54;6716:179;;2557:104:57;;2641:5;;;;;;:13;2557:104;:::o;2641:13::-;;;2557:104;:::o;3803:4116::-;;;542:7244:78;;;;-1:-1:-1;;3803:4116:57;;4383:131;;;;;;;;;;;;4595:10;;4591:368;;5065:20;;;;5061:88;;5435:300;;;542:7244:78;-1:-1:-1;542:7244:78;5954:31:57;;5999:371;;;6813:1;542:7244:78;;6794:1:57;542:7244:78;6793:21:57;542:7244:78;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5999:371:57;;;;-1:-1:-1;5999:371:57;;;5435:300;;;;;;542:7244:78;5435:300:57;;5999:371;6436:21;542:7244:78;3803:4116:57;:::o;5061:88::-;542:7244:78;;-1:-1:-1;;;5112:22:57;;;;;4591:368;4925:19;;;;;;;:::i;542:7244:78:-;;;-1:-1:-1;;;542:7244:78;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;542:7244:78;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;11513:870:60;542:7244:78;;11513:870:60;;;542:7244:78;11513:870:60;11672:7;;;;542:7244:78;11775:28:60;11795:7;;;:::i;11775:28::-;542:7244:78;:::i;:::-;;;;;;;;;;;;;;;;11877:15:60;-1:-1:-1;11873:91:60;;542:7244:78;;12233:11:60;542:7244:78;;;12027:16:60;542:7244:78;;;;;;;12027:16:60;;;;12083:7;12063:43;12083:7;;12063:28;12083:7;;:::i;:::-;12063:28;14249:109;;;;;;14099:265;;12063:28;542:7244:78;;;;;;;;;;;;;;;;;12063:43:60;12233:11;542:7244:78;-1:-1:-1;;;;;542:7244:78;;;12023:189:60;542:7244:78;;;12145:52:60;542:7244:78;12155:41:60;542:7244:78;;:::i;:::-;;;;;;;;12155:41:60;-1:-1:-1;;;;;542:7244:78;;12155:41:60;;;542:7244:78;12145:52:60;:::i;:::-;12023:189;;11873:91;542:7244:78;;-1:-1:-1;;;11919:30:60;;;;;11668:709;12283:52;542:7244:78;;12293:41:60;542:7244:78;;:::i;12293:41:60:-;-1:-1:-1;;;;;542:7244:78;;12293:41:60;;;542:7244:78;12145:52:60;:::i;12283:::-;11678:1;12349:17;;:::o;7084:141:25:-;542:7244:78;-1:-1:-1;;;;;;;;;;;542:7244:78;;;;7150:18:25;7146:73;;7084:141::o;7146:73::-;542:7244:78;;-1:-1:-1;;;7191:17:25;;;;;8587:1642:57;8658:6;;8654:45;;9401:7;10201:10;10142:26;10093;10044;9995;9946;9897;9848;542:7244:78;10189:23:57;9401:7;8663:1;542:7244:78;;;;10826:16:57;10822:99;;8587:1642;542:7244:78;;;;10938:15:57;10934:96;;8587:1642;542:7244:78;;;;11047:15:57;11043:96;;8587:1642;542:7244:78;;;;11156:15:57;11152:96;;8587:1642;542:7244:78;;;;11265:14:57;11261:93;;8587:1642;542:7244:78;;;;11371:14:57;11367:93;;8587:1642;542:7244:78;;;;11477:14:57;11473:93;;8587:1642;542:7244:78;;;11579:64:57;;8587:1642;542:7244:78;;;9858:10:57;;;;:::i;:::-;542:7244:78;;;;;9848:26:57;9907:10;;;;:::i;9897:26::-;9956:10;;;;:::i;9946:26::-;10005:10;;;;:::i;9995:26::-;10054:10;;;;:::i;10044:26::-;10103:10;;;;:::i;10093:26::-;10152:10;;;;:::i;10142:26::-;10201:10;;;:::i;11579:64::-;542:7244:78;;11579:64:57;;11473:93;542:7244:78;11511:11:57;;542:7244:78;;11473:93:57;;;;11367;542:7244:78;11405:11:57;;542:7244:78;;11367:93:57;;;;11261;542:7244:78;11299:11:57;;542:7244:78;;11261:93:57;;;;11152:96;542:7244:78;11191:12:57;;542:7244:78;;11152:96:57;;;;11043;542:7244:78;11082:12:57;;542:7244:78;;11043:96:57;;;;10934;542:7244:78;10973:12:57;;542:7244:78;;10934:96:57;;;;10822:99;10862:13;;;542:7244:78;10822:99:57;;;;12736:433:60;;;12919:10;;;;;;13151:11;;;12736:433;:::o;12912:230::-;2900:5:57;;;;;;2910;;;;542:7244:78;;;;;;;;;14249:109:60;-1:-1:-1;14249:109:60;542:7244:78;14249:109:60;;;-1:-1:-1;14249:109:60;;542:7244:78;;;;;-1:-1:-1;12996:136:60;542:7244:78;;;13055:10:60;12996:136;;12912:230;;;;12996:136;13110:7;;;;;;:::i;:::-;12996:136;;","linkReferences":{},"immutableReferences":{"57808":[{"start":2023,"length":32}],"57811":[{"start":3882,"length":32}],"58762":[{"start":1638,"length":32},{"start":3939,"length":32}],"58765":[{"start":927,"length":32},{"start":8114,"length":32}],"58768":[{"start":995,"length":32},{"start":5626,"length":32},{"start":5911,"length":32}],"58771":[{"start":1508,"length":32},{"start":5473,"length":32},{"start":6037,"length":32}]}},"methodIdentifiers":{"DEFAULT_ADMIN_ROLE()":"a217fddf","FACTORY()":"2dd31000","HOOK_GAS_LIMIT()":"ff54740f","HOOK_RESERVE()":"557cab44","HOOK_SET_ROLE()":"6679191e","NETWORK_LIMIT_SET_ROLE()":"7d24bb27","NETWORK_REGISTRY()":"c0cd7c3e","OPERATOR_NETWORK_OPT_IN_SERVICE()":"1a80e500","OPERATOR_NETWORK_SHARES_SET_ROLE()":"e78eb6ae","OPERATOR_VAULT_OPT_IN_SERVICE()":"128e5d82","TYPE()":"bb24fe8a","VAULT_FACTORY()":"103f2907","VERSION()":"ffa1ad74","getRoleAdmin(bytes32)":"248a9ca3","grantRole(bytes32,address)":"2f2ff15d","hasRole(bytes32,address)":"91d14854","hook()":"7f5a7c7b","initialize(bytes)":"439fab91","maxNetworkLimit(bytes32)":"d15b740e","networkLimit(bytes32)":"3eb22c0f","networkLimitAt(bytes32,uint48,bytes)":"5d32a1c9","onSlash(bytes32,address,uint256,uint48,bytes)":"e49561ee","operatorNetworkShares(bytes32,address)":"42c53e33","operatorNetworkSharesAt(bytes32,address,uint48,bytes)":"1a7a7044","renounceRole(bytes32,address)":"36568abe","revokeRole(bytes32,address)":"d547741f","setHook(address)":"3dfd3873","setMaxNetworkLimit(uint96,uint256)":"23f752d5","setNetworkLimit(bytes32,uint256)":"02145348","setOperatorNetworkShares(bytes32,address,uint256)":"a33bc287","stake(bytes32,address)":"fd4d447c","stakeAt(bytes32,address,uint48,bytes)":"e02f6937","staticDelegateCall(address,bytes)":"9f86fd85","supportsInterface(bytes4)":"01ffc9a7","totalOperatorNetworkShares(bytes32)":"c43dc03f","totalOperatorNetworkSharesAt(bytes32,uint48,bytes)":"8b3f10b0","vault()":"fbfa77cf"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"networkRegistry\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"vaultFactory\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operatorVaultOptInService\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operatorNetworkOptInService\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"delegatorFactory\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"entityType\",\"type\":\"uint64\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"AccessControlBadConfirmation\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"neededRole\",\"type\":\"bytes32\"}],\"name\":\"AccessControlUnauthorizedAccount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AlreadySet\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CheckpointUnorderedInsertion\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"DuplicateRoleHolder\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ExceedsMaxNetworkLimit\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientHookGas\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MathOverflowedMulDiv\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MissingRoleHolders\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotNetwork\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotSlasher\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotVault\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ReentrancyGuardReentrantCall\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"bits\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"SafeCastOverflowedUintDowncast\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ZeroAddressRoleHolder\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint48\",\"name\":\"captureTimestamp\",\"type\":\"uint48\"}],\"name\":\"OnSlash\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"previousAdminRole\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"newAdminRole\",\"type\":\"bytes32\"}],\"name\":\"RoleAdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleRevoked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"hook\",\"type\":\"address\"}],\"name\":\"SetHook\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"SetMaxNetworkLimit\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"SetNetworkLimit\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"}],\"name\":\"SetOperatorNetworkShares\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DEFAULT_ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"FACTORY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"HOOK_GAS_LIMIT\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"HOOK_RESERVE\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"HOOK_SET_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"NETWORK_LIMIT_SET_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"NETWORK_REGISTRY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"OPERATOR_NETWORK_OPT_IN_SERVICE\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"OPERATOR_NETWORK_SHARES_SET_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"OPERATOR_VAULT_OPT_IN_SERVICE\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"TYPE\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"VAULT_FACTORY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"VERSION\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleAdmin\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"grantRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"hook\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"}],\"name\":\"maxNetworkLimit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"}],\"name\":\"networkLimit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hint\",\"type\":\"bytes\"}],\"name\":\"networkLimitAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint48\",\"name\":\"captureTimestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"onSlash\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"operatorNetworkShares\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hint\",\"type\":\"bytes\"}],\"name\":\"operatorNetworkSharesAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"callerConfirmation\",\"type\":\"address\"}],\"name\":\"renounceRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"hook_\",\"type\":\"address\"}],\"name\":\"setHook\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint96\",\"name\":\"identifier\",\"type\":\"uint96\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"setMaxNetworkLimit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"setNetworkLimit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"}],\"name\":\"setOperatorNetworkShares\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"stake\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hints\",\"type\":\"bytes\"}],\"name\":\"stakeAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"staticDelegateCall\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"}],\"name\":\"totalOperatorNetworkShares\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hint\",\"type\":\"bytes\"}],\"name\":\"totalOperatorNetworkSharesAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"vault\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"AccessControlBadConfirmation()\":[{\"details\":\"The caller of a function is not the expected one. NOTE: Don't confuse with {AccessControlUnauthorizedAccount}.\"}],\"AccessControlUnauthorizedAccount(address,bytes32)\":[{\"details\":\"The `account` is missing a role.\"}],\"CheckpointUnorderedInsertion()\":[{\"details\":\"A value was attempted to be inserted on a past checkpoint.\"}],\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"MathOverflowedMulDiv()\":[{\"details\":\"Muldiv operation overflow.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"ReentrancyGuardReentrantCall()\":[{\"details\":\"Unauthorized reentrant call.\"}],\"SafeCastOverflowedUintDowncast(uint8,uint256)\":[{\"details\":\"Value doesn't fit in an uint of `bits` size.\"}]},\"events\":{\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"OnSlash(bytes32,address,uint256,uint48)\":{\"params\":{\"amount\":\"amount of the collateral to be slashed\",\"captureTimestamp\":\"time point when the stake was captured\",\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"}},\"RoleAdminChanged(bytes32,bytes32,bytes32)\":{\"details\":\"Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole` `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite {RoleAdminChanged} not being emitted signaling this.\"},\"RoleGranted(bytes32,address,address)\":{\"details\":\"Emitted when `account` is granted `role`. `sender` is the account that originated the contract call, an admin role bearer except when using {AccessControl-_setupRole}.\"},\"RoleRevoked(bytes32,address,address)\":{\"details\":\"Emitted when `account` is revoked `role`. `sender` is the account that originated the contract call: - if using `revokeRole`, it is the admin role bearer - if using `renounceRole`, it is the role bearer (i.e. `account`)\"},\"SetHook(address)\":{\"params\":{\"hook\":\"address of the hook\"}},\"SetMaxNetworkLimit(bytes32,uint256)\":{\"params\":{\"amount\":\"new maximum subnetwork's limit (how much stake the subnetwork is ready to get)\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"}},\"SetNetworkLimit(bytes32,uint256)\":{\"params\":{\"amount\":\"new subnetwork's limit (how much stake the vault curator is ready to give to the subnetwork)\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"}},\"SetOperatorNetworkShares(bytes32,address,uint256)\":{\"params\":{\"operator\":\"address of the operator\",\"shares\":\"new operator's shares inside the subnetwork (what percentage, which is equal to the shares divided by the total operators' shares, of the subnetwork's stake the vault curator is ready to give to the operator)\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"}}},\"kind\":\"dev\",\"methods\":{\"VERSION()\":{\"details\":\"Must return 1 for this one.\",\"returns\":{\"_0\":\"version of the delegator\"}},\"getRoleAdmin(bytes32)\":{\"details\":\"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}.\"},\"grantRole(bytes32,address)\":{\"details\":\"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event.\"},\"hasRole(bytes32,address)\":{\"details\":\"Returns `true` if `account` has been granted `role`.\"},\"initialize(bytes)\":{\"params\":{\"data\":\"some data to use\"}},\"networkLimit(bytes32)\":{\"params\":{\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"},\"returns\":{\"_0\":\"limit of the subnetwork\"}},\"networkLimitAt(bytes32,uint48,bytes)\":{\"params\":{\"hint\":\"hint for checkpoint index\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\",\"timestamp\":\"time point to get the subnetwork limit at\"},\"returns\":{\"_0\":\"limit of the subnetwork at the given timestamp\"}},\"onSlash(bytes32,address,uint256,uint48,bytes)\":{\"details\":\"Only the vault's slasher can call this function.\",\"params\":{\"amount\":\"amount of the collateral slashed\",\"captureTimestamp\":\"time point when the stake was captured\",\"data\":\"some additional data\",\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"}},\"operatorNetworkShares(bytes32,address)\":{\"params\":{\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"},\"returns\":{\"_0\":\"shares of the operator for the subnetwork\"}},\"operatorNetworkSharesAt(bytes32,address,uint48,bytes)\":{\"params\":{\"hint\":\"hint for checkpoint index\",\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\",\"timestamp\":\"time point to get the operator's shares at\"},\"returns\":{\"_0\":\"shares of the operator for the subnetwork at the given timestamp\"}},\"renounceRole(bytes32,address)\":{\"details\":\"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `callerConfirmation`. May emit a {RoleRevoked} event.\"},\"revokeRole(bytes32,address)\":{\"details\":\"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event.\"},\"setHook(address)\":{\"details\":\"Only a HOOK_SET_ROLE holder can call this function. The hook can have arbitrary logic under certain functions, however, it doesn't affect the stake guarantees.\",\"params\":{\"hook\":\"address of the hook\"}},\"setMaxNetworkLimit(uint96,uint256)\":{\"details\":\"Only a network can call this function.\",\"params\":{\"amount\":\"new maximum subnetwork's limit\"}},\"setNetworkLimit(bytes32,uint256)\":{\"details\":\"Only a NETWORK_LIMIT_SET_ROLE holder can call this function.\",\"params\":{\"amount\":\"new limit of the subnetwork\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"}},\"setOperatorNetworkShares(bytes32,address,uint256)\":{\"details\":\"Only an OPERATOR_NETWORK_SHARES_SET_ROLE holder can call this function.\",\"params\":{\"operator\":\"address of the operator\",\"shares\":\"new shares of the operator for the subnetwork\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"}},\"stake(bytes32,address)\":{\"details\":\"Warning: this function is not safe to use for stake capturing, as it can change by the end of the block.\",\"params\":{\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"},\"returns\":{\"_0\":\"slashable stake until the end of the next epoch\"}},\"stakeAt(bytes32,address,uint48,bytes)\":{\"details\":\"Warning: it is not safe to use timestamp >= current one for the stake capturing, as it can change later.\",\"params\":{\"hints\":\"hints for the checkpoints' indexes\",\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\",\"timestamp\":\"time point to capture the stake at\"},\"returns\":{\"_0\":\"slashable stake at the given timestamp until the end of the consequent epoch\"}},\"staticDelegateCall(address,bytes)\":{\"details\":\"It allows to use this contract's storage on-chain.\",\"params\":{\"data\":\"data to make a delegatecall with\",\"target\":\"address of the contract to make a delegatecall to\"}},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"},\"totalOperatorNetworkShares(bytes32)\":{\"params\":{\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"},\"returns\":{\"_0\":\"total shares of the operators for the subnetwork\"}},\"totalOperatorNetworkSharesAt(bytes32,uint48,bytes)\":{\"params\":{\"hint\":\"hint for checkpoint index\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\",\"timestamp\":\"time point to get the total operators' shares at\"},\"returns\":{\"_0\":\"total shares of the operators for the subnetwork at the given timestamp\"}}},\"stateVariables\":{\"NETWORK_LIMIT_SET_ROLE\":{\"return\":\"identifier of the subnetwork limit setter role\",\"returns\":{\"_0\":\"identifier of the subnetwork limit setter role\"}},\"OPERATOR_NETWORK_SHARES_SET_ROLE\":{\"return\":\"identifier of the operator-subnetwork shares setter role\",\"returns\":{\"_0\":\"identifier of the operator-subnetwork shares setter role\"}}},\"version\":1},\"userdoc\":{\"events\":{\"OnSlash(bytes32,address,uint256,uint48)\":{\"notice\":\"Emitted when a slash happens.\"},\"SetHook(address)\":{\"notice\":\"Emitted when a hook is set.\"},\"SetMaxNetworkLimit(bytes32,uint256)\":{\"notice\":\"Emitted when a subnetwork's maximum limit is set.\"},\"SetNetworkLimit(bytes32,uint256)\":{\"notice\":\"Emitted when a subnetwork's limit is set.\"},\"SetOperatorNetworkShares(bytes32,address,uint256)\":{\"notice\":\"Emitted when an operator's shares inside a subnetwork are set.\"}},\"kind\":\"user\",\"methods\":{\"FACTORY()\":{\"notice\":\"Get the factory's address.\"},\"HOOK_GAS_LIMIT()\":{\"notice\":\"Get a gas limit for the hook.\"},\"HOOK_RESERVE()\":{\"notice\":\"Get a reserve gas between the gas limit check and the hook's execution.\"},\"HOOK_SET_ROLE()\":{\"notice\":\"Get a hook setter's role.\"},\"NETWORK_LIMIT_SET_ROLE()\":{\"notice\":\"Get a subnetwork limit setter's role.\"},\"NETWORK_REGISTRY()\":{\"notice\":\"Get the network registry's address.\"},\"OPERATOR_NETWORK_OPT_IN_SERVICE()\":{\"notice\":\"Get the operator-network opt-in service's address.\"},\"OPERATOR_NETWORK_SHARES_SET_ROLE()\":{\"notice\":\"Get an operator-subnetwork shares setter's role.\"},\"OPERATOR_VAULT_OPT_IN_SERVICE()\":{\"notice\":\"Get the operator-vault opt-in service's address.\"},\"TYPE()\":{\"notice\":\"Get the entity's type.\"},\"VAULT_FACTORY()\":{\"notice\":\"Get the vault factory's address.\"},\"VERSION()\":{\"notice\":\"Get a version of the delegator (different versions mean different interfaces).\"},\"hook()\":{\"notice\":\"Get the hook's address.\"},\"initialize(bytes)\":{\"notice\":\"Initialize this entity contract by using a given data.\"},\"maxNetworkLimit(bytes32)\":{\"notice\":\"Get a particular subnetwork's maximum limit (meaning the subnetwork is not ready to get more as a stake).\"},\"networkLimit(bytes32)\":{\"notice\":\"Get a subnetwork's limit (how much stake the vault curator is ready to give to the subnetwork).\"},\"networkLimitAt(bytes32,uint48,bytes)\":{\"notice\":\"Get a subnetwork's limit at a given timestamp using a hint (how much stake the vault curator is ready to give to the subnetwork).\"},\"onSlash(bytes32,address,uint256,uint48,bytes)\":{\"notice\":\"Called when a slash happens.\"},\"operatorNetworkShares(bytes32,address)\":{\"notice\":\"Get an operator's shares for a subnetwork (what percentage, which is equal to the shares divided by the total operators' shares, of the subnetwork's stake the vault curator is ready to give to the operator).\"},\"operatorNetworkSharesAt(bytes32,address,uint48,bytes)\":{\"notice\":\"Get an operator's shares for a subnetwork at a given timestamp using a hint (what percentage, which is equal to the shares divided by the total operators' shares, of the subnetwork's stake the vault curator is ready to give to the operator).\"},\"setHook(address)\":{\"notice\":\"Set a new hook.\"},\"setMaxNetworkLimit(uint96,uint256)\":{\"notice\":\"Set a maximum limit for a subnetwork (how much stake the subnetwork is ready to get). identifier identifier of the subnetwork\"},\"setNetworkLimit(bytes32,uint256)\":{\"notice\":\"Set a subnetwork's limit (how much stake the vault curator is ready to give to the subnetwork).\"},\"setOperatorNetworkShares(bytes32,address,uint256)\":{\"notice\":\"Set an operator's shares for a subnetwork (what percentage, which is equal to the shares divided by the total operators' shares, of the subnetwork's stake the vault curator is ready to give to the operator).\"},\"stake(bytes32,address)\":{\"notice\":\"Get a stake that a given subnetwork will be able to slash for a certain operator until the end of the next epoch (if no cross-slashing and no slashings by the subnetwork).\"},\"stakeAt(bytes32,address,uint48,bytes)\":{\"notice\":\"Get a stake that a given subnetwork could be able to slash for a certain operator at a given timestamp until the end of the consequent epoch using hints (if no cross-slashing and no slashings by the subnetwork).\"},\"staticDelegateCall(address,bytes)\":{\"notice\":\"Make a delegatecall from this contract to a given target contract with a particular data (always reverts with a return data).\"},\"totalOperatorNetworkShares(bytes32)\":{\"notice\":\"Get a sum of operators' shares for a subnetwork.\"},\"totalOperatorNetworkSharesAt(bytes32,uint48,bytes)\":{\"notice\":\"Get a sum of operators' shares for a subnetwork at a given timestamp using a hint.\"},\"vault()\":{\"notice\":\"Get the vault's address.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/contracts/delegator/NetworkRestakeDelegator.sol\":\"NetworkRestakeDelegator\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol\":{\"keccak256\":\"0x6662ec4e5cefca03eeadd073e9469df8d2944bb2ee8ec8f7622c2c46aab5f225\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4d8544c6f8daa4d1bc215c6a72fe0acdb748664a105b0e5efc19295667521d45\",\"dweb:/ipfs/QmdGWqdnXT8S3RgCR6aV8XHZrsybieMQLLnug1NtpSjEXN\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609\",\"dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9\",\"dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardUpgradeable.sol\":{\"keccak256\":\"0xb44e086e941292cdc7f440de51478493894ef0b1aeccb0c4047445919f667f74\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://942dad22fbdc1669f025540ba63aa3ccfad5f8458fc5d4525b31ebf272e7af45\",\"dweb:/ipfs/Qmdo4X2M82aM3AMoW2kf2jhYkSCyC4T1pHNd6obdsDFnAB\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol\":{\"keccak256\":\"0xdaba3f7c42c55b2896353f32bd27d4d5f8bae741b3b05d4c53f67abc4dc47ce8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1fa2e61141c602510bcd2cd936ed9561922ac8772a9b9c9a9db091a74e354a45\",\"dweb:/ipfs/QmcHQDDoEBwJmwUbzoVkytvJsBx3KVHYFFnDkvRGWh9Wmh\"]},\"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0xb6b36edd6a2999fd243ff226d6cbf84bd71af2432bbd0dfe19392996a1d9cb41\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1fd2f35495652e57e3f99bc6c510bc5f7dd398a176ea2e72d8ed730aebc6ca26\",\"dweb:/ipfs/QmTQV6X4gkikTib49cho5iDX3JvSQbdsoEChoDwrk3CbbH\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875\",\"dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0xe19a4d5f31d2861e7344e8e535e2feafb913d806d3e2b5fe7782741a2a7094fe\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4aed79c0fa6f0546ed02f2f683e8f77f0fd2ed7eb34d8bbf3d373c9a6d95b13c\",\"dweb:/ipfs/QmWqVz6UAVqmnWU5pqYPt1o6iDEZyPaBraAA3rKfTTSfYj\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/Checkpoints.sol\":{\"keccak256\":\"0xbdc5e074d7dd6678f67e92b1a51a20226801a407b0e1af3da367c5d1ff4519ad\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a36cca6b22fff3db16fc789ff6c60eea71d4b156065d4d0c83a0bc5e91a77a8b\",\"dweb:/ipfs/QmYN3exd5AemxjBrN8XMB1p5LbbE16uC3sjbYjwi8AjcGR\"]},\"lib/openzeppelin-contracts/contracts/utils/types/Time.sol\":{\"keccak256\":\"0xc7755af115020049e4140f224f9ee88d7e1799ffb0646f37bf0df24bf6213f58\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7f09bf94d5274334ec021f61a04659db303f31e60460e14b709c9bf187740111\",\"dweb:/ipfs/QmNvgomZYUwFAt4cZbPWAiTeSZQreGehY9BK5xyVJsUttb\"]},\"src/contracts/common/Entity.sol\":{\"keccak256\":\"0x3d61a932995b8443381f3950542d388223a2c26dd5d29a3274dea3baa7388bd7\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://7cdf5f03ca72fd263fd32ff59c8d88ddca911ae83896a287d10772c1bbe9b138\",\"dweb:/ipfs/QmbP84r5BWT1Rn9AYTntWSf3xUMTTCohTZJFhbBhDXFoHa\"]},\"src/contracts/common/StaticDelegateCallable.sol\":{\"keccak256\":\"0x350029aa8955eacaffffaeb58babc5c98e80ebc5c5db388ed17ee6465f4a9d90\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://eb392a8ee9050e0af606897df63e3404e3829e8b688b580663892f9664195764\",\"dweb:/ipfs/QmaXC8jqV8UrrAFkzXTEv2fJF56sy33HhLxAzaRZmUxuXD\"]},\"src/contracts/delegator/BaseDelegator.sol\":{\"keccak256\":\"0x7c54d491fdd4415b764a9c8defa068e56d4c0c8c9419be0053a1d377669290e8\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://9238bfbad0f6eeb0dc7727724de14380f1980b395902269703d5e2ef07e52e10\",\"dweb:/ipfs/QmPJn1V4HNXcEghYvogGuSTF24dSQUPosR5qtsXcmNqRm3\"]},\"src/contracts/delegator/NetworkRestakeDelegator.sol\":{\"keccak256\":\"0xd3a8e6522f9c6fdcc2da837c9023afd6bdff2bce45a35590320c475519e3636d\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://58b17a87f6554f08376f9ea7fedf486a4aa75801bf0ad8b23ff5a46959b6b7a3\",\"dweb:/ipfs/QmSTmNh67tYt8CmjVZb57r8N3qX5yeYdMApKPJm3qvQgQw\"]},\"src/contracts/libraries/Checkpoints.sol\":{\"keccak256\":\"0xba90097c8bfe0a975499428b5f8ac5569483c7d92ccc28c12d70de416aae040c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://12f5d93ca94cd06d3147db68993165a58e17903ed53682560de61f3085ad4609\",\"dweb:/ipfs/QmePiuAqvXprMLmFZkGZeGjvGPAvsEDHfCDv7BoQhXu9xE\"]},\"src/contracts/libraries/Subnetwork.sol\":{\"keccak256\":\"0xf5ef5506fd66082b3c2e7f3df37529f5a8efad32ac62e7c8914bd63219190bfe\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba031a54ee0d0e9a270c2b9e18437f5668cfeb659cfd5fe0677459d7fcac2a56\",\"dweb:/ipfs/QmReP3H7qQ78tAfgLnJKsNEQNCQfF1X1Get38Ffd4kzq32\"]},\"src/interfaces/common/IEntity.sol\":{\"keccak256\":\"0x8ef4b63d6da63489778ccd5f8d13ebdd527dd4b62730b2c616df5af7474d2d21\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a8d69576a9219d85c50816a18ad53a4d53cfcb27ed38b8cccc808dc2734b71b\",\"dweb:/ipfs/QmYVN3P4Q4REvBWJ97TbAcaxm3uyB2anV6NSGa6ZtSwcEv\"]},\"src/interfaces/common/IMigratableEntity.sol\":{\"keccak256\":\"0x8f5f2809f3afbe8ebfbb365dd7b57b4dd3b6f9943a6187eaf648d45895b8e3c4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ffe640537d539e7a4fde70d30d3e4c57f4ba9c2c25c450cea713aae38e8fd5c\",\"dweb:/ipfs/QmSUTGzvdcn1R1KB7tLThMRtESsfPbeXDhhhKWGtntzBds\"]},\"src/interfaces/common/IRegistry.sol\":{\"keccak256\":\"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014\",\"dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK\"]},\"src/interfaces/common/IStaticDelegateCallable.sol\":{\"keccak256\":\"0xa335d4e81b9071b7de66ef92b43ff20671d86516eb1be46fef29a3483cd3f5d5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d464b9db863c14c05547d2b23352f2e9b7b784799cf09f6bbc4906a2a74e3516\",\"dweb:/ipfs/QmUVWzFvJz7eEbDQKiFTTzwi7TEbjcs3VmwdM4kuptAKvi\"]},\"src/interfaces/delegator/IBaseDelegator.sol\":{\"keccak256\":\"0x96bb312f032e17accce3f8f80936d99468029d6b37c9ca74acdb4b026a0148ee\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2a66dcb5b7d1a6ef6a363431ea98ebd78bc4fdd3d7a134d9b542dc66e7d025c2\",\"dweb:/ipfs/QmRhTPLd2ZAyRHmJUFUcWKs9b3if49QY17LYZuRqWmghw8\"]},\"src/interfaces/delegator/IDelegatorHook.sol\":{\"keccak256\":\"0xc51aa8d7d1f6c8043ee819b7aeb86da0e993912e1442098df897e299f01f9f46\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://adddf5cb2ba282aeb576b26efb28640f865a1721cc9b6eee8b3ee0457a2c9780\",\"dweb:/ipfs/QmNYgAmnLRwWZbhTuQhZs9rx4zcme1df5mEepkrniorSoW\"]},\"src/interfaces/delegator/INetworkRestakeDelegator.sol\":{\"keccak256\":\"0xe7030fe30389a147fd710e3436ec346b4842695fd3e65a81b95375c9f1d633fc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://739c7e66d301778054f5c90bee45ec9438f68afba8a03eaaac52064c73b115ad\",\"dweb:/ipfs/QmfZ2ytKcTykAc76nxhg8ikUXV8NdBpetqb8W4YWPcox1Z\"]},\"src/interfaces/service/IOptInService.sol\":{\"keccak256\":\"0x76fb5460a6d87a5705433d4fbeff7253cd75b8bbd0c888b2088f16e86ace146a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://990322019b3d11465f7024bae77ccbf7e2fe5d6fa3c754584778f37d04fa1337\",\"dweb:/ipfs/QmaSNHzcqxTkUCG9a4nqVfLECHLdjdrwAnDi3yDC7tDL24\"]},\"src/interfaces/vault/IVault.sol\":{\"keccak256\":\"0xffee01d383cd4e1a5530c614bf4360c1ef070c288abec9da1eb531b51bc07235\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://04f0046cac285d8ec44ebbb1f79dc94fab4495767190cad8364fbc1fafaadfb9\",\"dweb:/ipfs/QmUawAunwzXfCyShWfhKeThAgKtqe51hmrxvrXvM772M2R\"]},\"src/interfaces/vault/IVaultStorage.sol\":{\"keccak256\":\"0x592626f13754194f83047135de19229c49390bd59e34659b1bb38be71d973a22\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://06a6a9dfddd05e580b32bebe2cff4f63ba26a653180676d58225dd30d9c89d3e\",\"dweb:/ipfs/QmdgzBeY6Sxo8mGtyBxtv1tM1c2kU6J6zjeRd7vuXm4DU6\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.25+commit.b61c2a91"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"networkRegistry","type":"address"},{"internalType":"address","name":"vaultFactory","type":"address"},{"internalType":"address","name":"operatorVaultOptInService","type":"address"},{"internalType":"address","name":"operatorNetworkOptInService","type":"address"},{"internalType":"address","name":"delegatorFactory","type":"address"},{"internalType":"uint64","name":"entityType","type":"uint64"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"AccessControlBadConfirmation"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bytes32","name":"neededRole","type":"bytes32"}],"type":"error","name":"AccessControlUnauthorizedAccount"},{"inputs":[],"type":"error","name":"AlreadySet"},{"inputs":[],"type":"error","name":"CheckpointUnorderedInsertion"},{"inputs":[],"type":"error","name":"DuplicateRoleHolder"},{"inputs":[],"type":"error","name":"ExceedsMaxNetworkLimit"},{"inputs":[],"type":"error","name":"InsufficientHookGas"},{"inputs":[],"type":"error","name":"InvalidInitialization"},{"inputs":[],"type":"error","name":"MathOverflowedMulDiv"},{"inputs":[],"type":"error","name":"MissingRoleHolders"},{"inputs":[],"type":"error","name":"NotInitialized"},{"inputs":[],"type":"error","name":"NotInitializing"},{"inputs":[],"type":"error","name":"NotNetwork"},{"inputs":[],"type":"error","name":"NotSlasher"},{"inputs":[],"type":"error","name":"NotVault"},{"inputs":[],"type":"error","name":"ReentrancyGuardReentrantCall"},{"inputs":[{"internalType":"uint8","name":"bits","type":"uint8"},{"internalType":"uint256","name":"value","type":"uint256"}],"type":"error","name":"SafeCastOverflowedUintDowncast"},{"inputs":[],"type":"error","name":"ZeroAddressRoleHolder"},{"inputs":[{"internalType":"uint64","name":"version","type":"uint64","indexed":false}],"type":"event","name":"Initialized","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32","indexed":true},{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false},{"internalType":"uint48","name":"captureTimestamp","type":"uint48","indexed":false}],"type":"event","name":"OnSlash","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"bytes32","name":"previousAdminRole","type":"bytes32","indexed":true},{"internalType":"bytes32","name":"newAdminRole","type":"bytes32","indexed":true}],"type":"event","name":"RoleAdminChanged","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"address","name":"sender","type":"address","indexed":true}],"type":"event","name":"RoleGranted","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"address","name":"sender","type":"address","indexed":true}],"type":"event","name":"RoleRevoked","anonymous":false},{"inputs":[{"internalType":"address","name":"hook","type":"address","indexed":true}],"type":"event","name":"SetHook","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"SetMaxNetworkLimit","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"SetNetworkLimit","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32","indexed":true},{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"uint256","name":"shares","type":"uint256","indexed":false}],"type":"event","name":"SetOperatorNetworkShares","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"DEFAULT_ADMIN_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"FACTORY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"HOOK_GAS_LIMIT","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"HOOK_RESERVE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"HOOK_SET_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"NETWORK_LIMIT_SET_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"NETWORK_REGISTRY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"OPERATOR_NETWORK_OPT_IN_SERVICE","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"OPERATOR_NETWORK_SHARES_SET_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"OPERATOR_VAULT_OPT_IN_SERVICE","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"TYPE","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"VAULT_FACTORY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"VERSION","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getRoleAdmin","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"grantRole"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"hasRole","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"hook","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"}],"stateMutability":"view","type":"function","name":"maxNetworkLimit","outputs":[{"internalType":"uint256","name":"value","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"}],"stateMutability":"view","type":"function","name":"networkLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"uint48","name":"timestamp","type":"uint48"},{"internalType":"bytes","name":"hint","type":"bytes"}],"stateMutability":"view","type":"function","name":"networkLimitAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint48","name":"captureTimestamp","type":"uint48"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"onSlash"},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"operatorNetworkShares","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint48","name":"timestamp","type":"uint48"},{"internalType":"bytes","name":"hint","type":"bytes"}],"stateMutability":"view","type":"function","name":"operatorNetworkSharesAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"callerConfirmation","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"renounceRole"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"revokeRole"},{"inputs":[{"internalType":"address","name":"hook_","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setHook"},{"inputs":[{"internalType":"uint96","name":"identifier","type":"uint96"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setMaxNetworkLimit"},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setNetworkLimit"},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint256","name":"shares","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setOperatorNetworkShares"},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"stake","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint48","name":"timestamp","type":"uint48"},{"internalType":"bytes","name":"hints","type":"bytes"}],"stateMutability":"view","type":"function","name":"stakeAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"staticDelegateCall"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"}],"stateMutability":"view","type":"function","name":"totalOperatorNetworkShares","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"uint48","name":"timestamp","type":"uint48"},{"internalType":"bytes","name":"hint","type":"bytes"}],"stateMutability":"view","type":"function","name":"totalOperatorNetworkSharesAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"vault","outputs":[{"internalType":"address","name":"","type":"address"}]}],"devdoc":{"kind":"dev","methods":{"VERSION()":{"details":"Must return 1 for this one.","returns":{"_0":"version of the delegator"}},"getRoleAdmin(bytes32)":{"details":"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}."},"grantRole(bytes32,address)":{"details":"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event."},"hasRole(bytes32,address)":{"details":"Returns `true` if `account` has been granted `role`."},"initialize(bytes)":{"params":{"data":"some data to use"}},"networkLimit(bytes32)":{"params":{"subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"},"returns":{"_0":"limit of the subnetwork"}},"networkLimitAt(bytes32,uint48,bytes)":{"params":{"hint":"hint for checkpoint index","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)","timestamp":"time point to get the subnetwork limit at"},"returns":{"_0":"limit of the subnetwork at the given timestamp"}},"onSlash(bytes32,address,uint256,uint48,bytes)":{"details":"Only the vault's slasher can call this function.","params":{"amount":"amount of the collateral slashed","captureTimestamp":"time point when the stake was captured","data":"some additional data","operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"}},"operatorNetworkShares(bytes32,address)":{"params":{"operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"},"returns":{"_0":"shares of the operator for the subnetwork"}},"operatorNetworkSharesAt(bytes32,address,uint48,bytes)":{"params":{"hint":"hint for checkpoint index","operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)","timestamp":"time point to get the operator's shares at"},"returns":{"_0":"shares of the operator for the subnetwork at the given timestamp"}},"renounceRole(bytes32,address)":{"details":"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `callerConfirmation`. May emit a {RoleRevoked} event."},"revokeRole(bytes32,address)":{"details":"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event."},"setHook(address)":{"details":"Only a HOOK_SET_ROLE holder can call this function. The hook can have arbitrary logic under certain functions, however, it doesn't affect the stake guarantees.","params":{"hook":"address of the hook"}},"setMaxNetworkLimit(uint96,uint256)":{"details":"Only a network can call this function.","params":{"amount":"new maximum subnetwork's limit"}},"setNetworkLimit(bytes32,uint256)":{"details":"Only a NETWORK_LIMIT_SET_ROLE holder can call this function.","params":{"amount":"new limit of the subnetwork","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"}},"setOperatorNetworkShares(bytes32,address,uint256)":{"details":"Only an OPERATOR_NETWORK_SHARES_SET_ROLE holder can call this function.","params":{"operator":"address of the operator","shares":"new shares of the operator for the subnetwork","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"}},"stake(bytes32,address)":{"details":"Warning: this function is not safe to use for stake capturing, as it can change by the end of the block.","params":{"operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"},"returns":{"_0":"slashable stake until the end of the next epoch"}},"stakeAt(bytes32,address,uint48,bytes)":{"details":"Warning: it is not safe to use timestamp >= current one for the stake capturing, as it can change later.","params":{"hints":"hints for the checkpoints' indexes","operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)","timestamp":"time point to capture the stake at"},"returns":{"_0":"slashable stake at the given timestamp until the end of the consequent epoch"}},"staticDelegateCall(address,bytes)":{"details":"It allows to use this contract's storage on-chain.","params":{"data":"data to make a delegatecall with","target":"address of the contract to make a delegatecall to"}},"supportsInterface(bytes4)":{"details":"See {IERC165-supportsInterface}."},"totalOperatorNetworkShares(bytes32)":{"params":{"subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"},"returns":{"_0":"total shares of the operators for the subnetwork"}},"totalOperatorNetworkSharesAt(bytes32,uint48,bytes)":{"params":{"hint":"hint for checkpoint index","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)","timestamp":"time point to get the total operators' shares at"},"returns":{"_0":"total shares of the operators for the subnetwork at the given timestamp"}}},"version":1},"userdoc":{"kind":"user","methods":{"FACTORY()":{"notice":"Get the factory's address."},"HOOK_GAS_LIMIT()":{"notice":"Get a gas limit for the hook."},"HOOK_RESERVE()":{"notice":"Get a reserve gas between the gas limit check and the hook's execution."},"HOOK_SET_ROLE()":{"notice":"Get a hook setter's role."},"NETWORK_LIMIT_SET_ROLE()":{"notice":"Get a subnetwork limit setter's role."},"NETWORK_REGISTRY()":{"notice":"Get the network registry's address."},"OPERATOR_NETWORK_OPT_IN_SERVICE()":{"notice":"Get the operator-network opt-in service's address."},"OPERATOR_NETWORK_SHARES_SET_ROLE()":{"notice":"Get an operator-subnetwork shares setter's role."},"OPERATOR_VAULT_OPT_IN_SERVICE()":{"notice":"Get the operator-vault opt-in service's address."},"TYPE()":{"notice":"Get the entity's type."},"VAULT_FACTORY()":{"notice":"Get the vault factory's address."},"VERSION()":{"notice":"Get a version of the delegator (different versions mean different interfaces)."},"hook()":{"notice":"Get the hook's address."},"initialize(bytes)":{"notice":"Initialize this entity contract by using a given data."},"maxNetworkLimit(bytes32)":{"notice":"Get a particular subnetwork's maximum limit (meaning the subnetwork is not ready to get more as a stake)."},"networkLimit(bytes32)":{"notice":"Get a subnetwork's limit (how much stake the vault curator is ready to give to the subnetwork)."},"networkLimitAt(bytes32,uint48,bytes)":{"notice":"Get a subnetwork's limit at a given timestamp using a hint (how much stake the vault curator is ready to give to the subnetwork)."},"onSlash(bytes32,address,uint256,uint48,bytes)":{"notice":"Called when a slash happens."},"operatorNetworkShares(bytes32,address)":{"notice":"Get an operator's shares for a subnetwork (what percentage, which is equal to the shares divided by the total operators' shares, of the subnetwork's stake the vault curator is ready to give to the operator)."},"operatorNetworkSharesAt(bytes32,address,uint48,bytes)":{"notice":"Get an operator's shares for a subnetwork at a given timestamp using a hint (what percentage, which is equal to the shares divided by the total operators' shares, of the subnetwork's stake the vault curator is ready to give to the operator)."},"setHook(address)":{"notice":"Set a new hook."},"setMaxNetworkLimit(uint96,uint256)":{"notice":"Set a maximum limit for a subnetwork (how much stake the subnetwork is ready to get). identifier identifier of the subnetwork"},"setNetworkLimit(bytes32,uint256)":{"notice":"Set a subnetwork's limit (how much stake the vault curator is ready to give to the subnetwork)."},"setOperatorNetworkShares(bytes32,address,uint256)":{"notice":"Set an operator's shares for a subnetwork (what percentage, which is equal to the shares divided by the total operators' shares, of the subnetwork's stake the vault curator is ready to give to the operator)."},"stake(bytes32,address)":{"notice":"Get a stake that a given subnetwork will be able to slash for a certain operator until the end of the next epoch (if no cross-slashing and no slashings by the subnetwork)."},"stakeAt(bytes32,address,uint48,bytes)":{"notice":"Get a stake that a given subnetwork could be able to slash for a certain operator at a given timestamp until the end of the consequent epoch using hints (if no cross-slashing and no slashings by the subnetwork)."},"staticDelegateCall(address,bytes)":{"notice":"Make a delegatecall from this contract to a given target contract with a particular data (always reverts with a return data)."},"totalOperatorNetworkShares(bytes32)":{"notice":"Get a sum of operators' shares for a subnetwork."},"totalOperatorNetworkSharesAt(bytes32,uint48,bytes)":{"notice":"Get a sum of operators' shares for a subnetwork at a given timestamp using a hint."},"vault()":{"notice":"Get the vault's address."}},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/contracts/delegator/NetworkRestakeDelegator.sol":"NetworkRestakeDelegator"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol":{"keccak256":"0x6662ec4e5cefca03eeadd073e9469df8d2944bb2ee8ec8f7622c2c46aab5f225","urls":["bzz-raw://4d8544c6f8daa4d1bc215c6a72fe0acdb748664a105b0e5efc19295667521d45","dweb:/ipfs/QmdGWqdnXT8S3RgCR6aV8XHZrsybieMQLLnug1NtpSjEXN"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b","urls":["bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609","dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol":{"keccak256":"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397","urls":["bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9","dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardUpgradeable.sol":{"keccak256":"0xb44e086e941292cdc7f440de51478493894ef0b1aeccb0c4047445919f667f74","urls":["bzz-raw://942dad22fbdc1669f025540ba63aa3ccfad5f8458fc5d4525b31ebf272e7af45","dweb:/ipfs/Qmdo4X2M82aM3AMoW2kf2jhYkSCyC4T1pHNd6obdsDFnAB"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol":{"keccak256":"0xdaba3f7c42c55b2896353f32bd27d4d5f8bae741b3b05d4c53f67abc4dc47ce8","urls":["bzz-raw://1fa2e61141c602510bcd2cd936ed9561922ac8772a9b9c9a9db091a74e354a45","dweb:/ipfs/QmcHQDDoEBwJmwUbzoVkytvJsBx3KVHYFFnDkvRGWh9Wmh"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol":{"keccak256":"0xb6b36edd6a2999fd243ff226d6cbf84bd71af2432bbd0dfe19392996a1d9cb41","urls":["bzz-raw://1fd2f35495652e57e3f99bc6c510bc5f7dd398a176ea2e72d8ed730aebc6ca26","dweb:/ipfs/QmTQV6X4gkikTib49cho5iDX3JvSQbdsoEChoDwrk3CbbH"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b","urls":["bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df","dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d","urls":["bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875","dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol":{"keccak256":"0xe19a4d5f31d2861e7344e8e535e2feafb913d806d3e2b5fe7782741a2a7094fe","urls":["bzz-raw://4aed79c0fa6f0546ed02f2f683e8f77f0fd2ed7eb34d8bbf3d373c9a6d95b13c","dweb:/ipfs/QmWqVz6UAVqmnWU5pqYPt1o6iDEZyPaBraAA3rKfTTSfYj"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/Checkpoints.sol":{"keccak256":"0xbdc5e074d7dd6678f67e92b1a51a20226801a407b0e1af3da367c5d1ff4519ad","urls":["bzz-raw://a36cca6b22fff3db16fc789ff6c60eea71d4b156065d4d0c83a0bc5e91a77a8b","dweb:/ipfs/QmYN3exd5AemxjBrN8XMB1p5LbbE16uC3sjbYjwi8AjcGR"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/types/Time.sol":{"keccak256":"0xc7755af115020049e4140f224f9ee88d7e1799ffb0646f37bf0df24bf6213f58","urls":["bzz-raw://7f09bf94d5274334ec021f61a04659db303f31e60460e14b709c9bf187740111","dweb:/ipfs/QmNvgomZYUwFAt4cZbPWAiTeSZQreGehY9BK5xyVJsUttb"],"license":"MIT"},"src/contracts/common/Entity.sol":{"keccak256":"0x3d61a932995b8443381f3950542d388223a2c26dd5d29a3274dea3baa7388bd7","urls":["bzz-raw://7cdf5f03ca72fd263fd32ff59c8d88ddca911ae83896a287d10772c1bbe9b138","dweb:/ipfs/QmbP84r5BWT1Rn9AYTntWSf3xUMTTCohTZJFhbBhDXFoHa"],"license":"BUSL-1.1"},"src/contracts/common/StaticDelegateCallable.sol":{"keccak256":"0x350029aa8955eacaffffaeb58babc5c98e80ebc5c5db388ed17ee6465f4a9d90","urls":["bzz-raw://eb392a8ee9050e0af606897df63e3404e3829e8b688b580663892f9664195764","dweb:/ipfs/QmaXC8jqV8UrrAFkzXTEv2fJF56sy33HhLxAzaRZmUxuXD"],"license":"BUSL-1.1"},"src/contracts/delegator/BaseDelegator.sol":{"keccak256":"0x7c54d491fdd4415b764a9c8defa068e56d4c0c8c9419be0053a1d377669290e8","urls":["bzz-raw://9238bfbad0f6eeb0dc7727724de14380f1980b395902269703d5e2ef07e52e10","dweb:/ipfs/QmPJn1V4HNXcEghYvogGuSTF24dSQUPosR5qtsXcmNqRm3"],"license":"BUSL-1.1"},"src/contracts/delegator/NetworkRestakeDelegator.sol":{"keccak256":"0xd3a8e6522f9c6fdcc2da837c9023afd6bdff2bce45a35590320c475519e3636d","urls":["bzz-raw://58b17a87f6554f08376f9ea7fedf486a4aa75801bf0ad8b23ff5a46959b6b7a3","dweb:/ipfs/QmSTmNh67tYt8CmjVZb57r8N3qX5yeYdMApKPJm3qvQgQw"],"license":"BUSL-1.1"},"src/contracts/libraries/Checkpoints.sol":{"keccak256":"0xba90097c8bfe0a975499428b5f8ac5569483c7d92ccc28c12d70de416aae040c","urls":["bzz-raw://12f5d93ca94cd06d3147db68993165a58e17903ed53682560de61f3085ad4609","dweb:/ipfs/QmePiuAqvXprMLmFZkGZeGjvGPAvsEDHfCDv7BoQhXu9xE"],"license":"MIT"},"src/contracts/libraries/Subnetwork.sol":{"keccak256":"0xf5ef5506fd66082b3c2e7f3df37529f5a8efad32ac62e7c8914bd63219190bfe","urls":["bzz-raw://ba031a54ee0d0e9a270c2b9e18437f5668cfeb659cfd5fe0677459d7fcac2a56","dweb:/ipfs/QmReP3H7qQ78tAfgLnJKsNEQNCQfF1X1Get38Ffd4kzq32"],"license":"MIT"},"src/interfaces/common/IEntity.sol":{"keccak256":"0x8ef4b63d6da63489778ccd5f8d13ebdd527dd4b62730b2c616df5af7474d2d21","urls":["bzz-raw://5a8d69576a9219d85c50816a18ad53a4d53cfcb27ed38b8cccc808dc2734b71b","dweb:/ipfs/QmYVN3P4Q4REvBWJ97TbAcaxm3uyB2anV6NSGa6ZtSwcEv"],"license":"MIT"},"src/interfaces/common/IMigratableEntity.sol":{"keccak256":"0x8f5f2809f3afbe8ebfbb365dd7b57b4dd3b6f9943a6187eaf648d45895b8e3c4","urls":["bzz-raw://0ffe640537d539e7a4fde70d30d3e4c57f4ba9c2c25c450cea713aae38e8fd5c","dweb:/ipfs/QmSUTGzvdcn1R1KB7tLThMRtESsfPbeXDhhhKWGtntzBds"],"license":"MIT"},"src/interfaces/common/IRegistry.sol":{"keccak256":"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb","urls":["bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014","dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK"],"license":"MIT"},"src/interfaces/common/IStaticDelegateCallable.sol":{"keccak256":"0xa335d4e81b9071b7de66ef92b43ff20671d86516eb1be46fef29a3483cd3f5d5","urls":["bzz-raw://d464b9db863c14c05547d2b23352f2e9b7b784799cf09f6bbc4906a2a74e3516","dweb:/ipfs/QmUVWzFvJz7eEbDQKiFTTzwi7TEbjcs3VmwdM4kuptAKvi"],"license":"MIT"},"src/interfaces/delegator/IBaseDelegator.sol":{"keccak256":"0x96bb312f032e17accce3f8f80936d99468029d6b37c9ca74acdb4b026a0148ee","urls":["bzz-raw://2a66dcb5b7d1a6ef6a363431ea98ebd78bc4fdd3d7a134d9b542dc66e7d025c2","dweb:/ipfs/QmRhTPLd2ZAyRHmJUFUcWKs9b3if49QY17LYZuRqWmghw8"],"license":"MIT"},"src/interfaces/delegator/IDelegatorHook.sol":{"keccak256":"0xc51aa8d7d1f6c8043ee819b7aeb86da0e993912e1442098df897e299f01f9f46","urls":["bzz-raw://adddf5cb2ba282aeb576b26efb28640f865a1721cc9b6eee8b3ee0457a2c9780","dweb:/ipfs/QmNYgAmnLRwWZbhTuQhZs9rx4zcme1df5mEepkrniorSoW"],"license":"MIT"},"src/interfaces/delegator/INetworkRestakeDelegator.sol":{"keccak256":"0xe7030fe30389a147fd710e3436ec346b4842695fd3e65a81b95375c9f1d633fc","urls":["bzz-raw://739c7e66d301778054f5c90bee45ec9438f68afba8a03eaaac52064c73b115ad","dweb:/ipfs/QmfZ2ytKcTykAc76nxhg8ikUXV8NdBpetqb8W4YWPcox1Z"],"license":"MIT"},"src/interfaces/service/IOptInService.sol":{"keccak256":"0x76fb5460a6d87a5705433d4fbeff7253cd75b8bbd0c888b2088f16e86ace146a","urls":["bzz-raw://990322019b3d11465f7024bae77ccbf7e2fe5d6fa3c754584778f37d04fa1337","dweb:/ipfs/QmaSNHzcqxTkUCG9a4nqVfLECHLdjdrwAnDi3yDC7tDL24"],"license":"MIT"},"src/interfaces/vault/IVault.sol":{"keccak256":"0xffee01d383cd4e1a5530c614bf4360c1ef070c288abec9da1eb531b51bc07235","urls":["bzz-raw://04f0046cac285d8ec44ebbb1f79dc94fab4495767190cad8364fbc1fafaadfb9","dweb:/ipfs/QmUawAunwzXfCyShWfhKeThAgKtqe51hmrxvrXvM772M2R"],"license":"MIT"},"src/interfaces/vault/IVaultStorage.sol":{"keccak256":"0x592626f13754194f83047135de19229c49390bd59e34659b1bb38be71d973a22","urls":["bzz-raw://06a6a9dfddd05e580b32bebe2cff4f63ba26a653180676d58225dd30d9c89d3e","dweb:/ipfs/QmdgzBeY6Sxo8mGtyBxtv1tM1c2kU6J6zjeRd7vuXm4DU6"],"license":"MIT"}},"version":1},"id":78} \ No newline at end of file +{"abi":[{"type":"constructor","inputs":[{"name":"networkRegistry","type":"address","internalType":"address"},{"name":"vaultFactory","type":"address","internalType":"address"},{"name":"operatorVaultOptInService","type":"address","internalType":"address"},{"name":"operatorNetworkOptInService","type":"address","internalType":"address"},{"name":"delegatorFactory","type":"address","internalType":"address"},{"name":"entityType","type":"uint64","internalType":"uint64"}],"stateMutability":"nonpayable"},{"type":"function","name":"DEFAULT_ADMIN_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"FACTORY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"HOOK_GAS_LIMIT","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"HOOK_RESERVE","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"HOOK_SET_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"NETWORK_LIMIT_SET_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"NETWORK_REGISTRY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"OPERATOR_NETWORK_OPT_IN_SERVICE","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"OPERATOR_NETWORK_SHARES_SET_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"OPERATOR_VAULT_OPT_IN_SERVICE","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"TYPE","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"VAULT_FACTORY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"VERSION","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"pure"},{"type":"function","name":"getRoleAdmin","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"grantRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"hasRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"hook","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"initialize","inputs":[{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"maxNetworkLimit","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"value","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"networkLimit","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"networkLimitAt","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"timestamp","type":"uint48","internalType":"uint48"},{"name":"hint","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"onSlash","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"captureTimestamp","type":"uint48","internalType":"uint48"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"operatorNetworkShares","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"operatorNetworkSharesAt","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"timestamp","type":"uint48","internalType":"uint48"},{"name":"hint","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"renounceRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"callerConfirmation","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"revokeRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setHook","inputs":[{"name":"hook_","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setMaxNetworkLimit","inputs":[{"name":"identifier","type":"uint96","internalType":"uint96"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setNetworkLimit","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setOperatorNetworkShares","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"shares","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"stake","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"stakeAt","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"timestamp","type":"uint48","internalType":"uint48"},{"name":"hints","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"staticDelegateCall","inputs":[{"name":"target","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"totalOperatorNetworkShares","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"totalOperatorNetworkSharesAt","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"timestamp","type":"uint48","internalType":"uint48"},{"name":"hint","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"vault","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"OnSlash","inputs":[{"name":"subnetwork","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"captureTimestamp","type":"uint48","indexed":false,"internalType":"uint48"}],"anonymous":false},{"type":"event","name":"RoleAdminChanged","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"previousAdminRole","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"newAdminRole","type":"bytes32","indexed":true,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"RoleGranted","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"sender","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"RoleRevoked","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"sender","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"SetHook","inputs":[{"name":"hook","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"SetMaxNetworkLimit","inputs":[{"name":"subnetwork","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"SetNetworkLimit","inputs":[{"name":"subnetwork","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"SetOperatorNetworkShares","inputs":[{"name":"subnetwork","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"shares","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"error","name":"AccessControlBadConfirmation","inputs":[]},{"type":"error","name":"AccessControlUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"neededRole","type":"bytes32","internalType":"bytes32"}]},{"type":"error","name":"AlreadySet","inputs":[]},{"type":"error","name":"CheckpointUnorderedInsertion","inputs":[]},{"type":"error","name":"DuplicateRoleHolder","inputs":[]},{"type":"error","name":"ExceedsMaxNetworkLimit","inputs":[]},{"type":"error","name":"InsufficientHookGas","inputs":[]},{"type":"error","name":"InvalidInitialization","inputs":[]},{"type":"error","name":"MathOverflowedMulDiv","inputs":[]},{"type":"error","name":"MissingRoleHolders","inputs":[]},{"type":"error","name":"NotInitialized","inputs":[]},{"type":"error","name":"NotInitializing","inputs":[]},{"type":"error","name":"NotNetwork","inputs":[]},{"type":"error","name":"NotSlasher","inputs":[]},{"type":"error","name":"NotVault","inputs":[]},{"type":"error","name":"ReentrancyGuardReentrantCall","inputs":[]},{"type":"error","name":"SafeCastOverflowedUintDowncast","inputs":[{"name":"bits","type":"uint8","internalType":"uint8"},{"name":"value","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ZeroAddressRoleHolder","inputs":[]}],"bytecode":{"object":"0x610140346101a1576001600160401b0390601f612ea238819003918201601f191683019190848311848410176101a5578160c092859260409586528339810103126101a15761004d826101b9565b610059602084016101b9565b906100658385016101b9565b94610072606086016101b9565b9460a0610081608083016101b9565b9101519180831683036101a1577ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a009081549060ff82891c1661019057808083160361014c575b50505060805260a05260c05260e0526101009283526101209182525190612cd492836101ce8439608051836107e7015260a05183610f2a015260c0518381816106660152610f63015260e05183818161039f0152611fb20152518281816103e3015281816115fa01526117170152518181816105e40152818161156101526117950152f35b6001600160401b0319909116811790915585519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a15f80806100c7565b875163f92ee8a960e01b8152600490fd5b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b51906001600160a01b03821682036101a15756fe60806040526004361015610011575f80fd5b5f3560e01c806301ffc9a714610264578063021453481461025f578063103f29071461025a578063128e5d82146102555780631a7a7044146102505780631a80e5001461024b57806323f752d514610246578063248a9ca3146102415780632dd310001461023c5780632f2ff15d1461023757806336568abe146102325780633dfd38731461022d5780633eb22c0f1461022857806342c53e3314610223578063439fab911461021e578063557cab44146102195780635d32a1c9146102145780636679191e1461020f5780637d24bb271461020a5780637f5a7c7b146102055780638b3f10b01461020057806391d14854146101fb5780639f86fd85146101f6578063a217fddf146101f1578063a33bc287146101ec578063bb24fe8a146101e7578063c0cd7c3e146101e2578063c43dc03f146101dd578063d15b740e146101d8578063d547741f146101d3578063e02f6937146101ce578063e49561ee146101c9578063e78eb6ae146101c4578063fbfa77cf146101bf578063fd4d447c146101ba578063ff54740f146101b55763ffa1ad74146101b0575f80fd5b6112e0565b6112c3565b611299565b611272565b611238565b61104d565b611031565b610fe5565b610fbb565b610f92565b610f4e565b610f0b565b610df0565b610dd6565b610d1c565b610cbe565b610c9b565b610c73565b610c3a565b610c00565b610bdd565b610b80565b610a48565b6109cf565b6109a6565b6108ad565b610862565b610816565b6107d2565b610799565b610613565b6105cf565b610589565b6103ce565b61038a565b6102be565b346102ba5760203660031901126102ba5760043563ffffffff60e01b81168091036102ba57602090637965db0b60e01b81149081156102a9575b506040519015158152f35b6301ffc9a760e01b1490505f61029e565b5f80fd5b346102ba576040806003193601126102ba5760043590602435906102e061180a565b825f526002602052805f2054821161037a57825f52600360205281610306825f20611efa565b1461036a5781610365916103557e899d104fc3d8820bd96540612bcc5c448c8837b13b9f7faa43ad0728f0c14f94610346875f52600360205260405f2090565b61034f426123a7565b90611952565b5050519081529081906020820190565b0390a2005b5163a741a04560e01b8152600490fd5b51631eefc06360e31b8152600490fd5b346102ba575f3660031901126102ba576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346102ba575f3660031901126102ba576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b6001600160a01b038116036102ba57565b6064359065ffffffffffff821682036102ba57565b634e487b7160e01b5f52604160045260245ffd5b604081019081106001600160401b0382111761046757604052565b610438565b606081019081106001600160401b0382111761046757604052565b90601f801991011681019081106001600160401b0382111761046757604052565b6040519060a082018281106001600160401b0382111761046757604052565b604051906104d48261044c565b565b6001600160401b03811161046757601f01601f191660200190565b81601f820112156102ba57803590610508826104d6565b926105166040519485610487565b828452602083830101116102ba57815f926020809301838601378301015290565b9060806003198301126102ba576004359160243561055481610412565b9160443565ffffffffffff811681036102ba5791606435906001600160401b0382116102ba57610586916004016104f1565b90565b346102ba5760206105c76105c261059f36610537565b939190925f526005865260405f209060018060a01b03165f5260205260405f2090565b611a45565b604051908152f35b346102ba575f3660031901126102ba576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346102ba5760403660031901126102ba576004356001600160601b03811681036102ba5760243590610643611b28565b6040516302910f8b60e31b81523360048201526020816024816001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165afa908115610794575f91610765575b5015610753576001600160601b03166bffffffffffffffffffffffff193360601b161790806106cd835f52600260205260405f2090565b541461074157610726817fc67e7929681aa1bccd63f52b3799bf5805f3009f197db6fdf584b14f7fbf608c9261070b855f52600260205260405f2090565b556107168185611b57565b6040519081529081906020820190565b0390a261073f60015f80516020612c5f83398151915255565b005b60405163a741a04560e01b8152600490fd5b6040516323d53b9760e21b8152600490fd5b610787915060203d60201161078d575b61077f8183610487565b810190611327565b5f610696565b503d610775565b61133f565b346102ba5760203660031901126102ba576004355f525f80516020612c3f8339815191526020526020600160405f200154604051908152f35b346102ba575f3660031901126102ba576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346102ba5760403660031901126102ba5761073f60243560043561083982610412565b805f525f80516020612c3f83398151915260205261085d600160405f2001546118bd565b611e32565b346102ba5760403660031901126102ba5760243561087f81610412565b336001600160a01b0382160361089b5761073f90600435611e68565b60405163334bd91960e11b8152600490fd5b346102ba5760203660031901126102ba576004356108ca81610412565b6108d2611b28565b335f9081527f9ebbcbe0d2961d3fbe56ca6f679bc753bd848d3e6bb3eaf9041c51b286881d2c60205260409020547fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c9060ff161561098857506001546001600160a01b039182169181168214610741576001600160a01b03191681176001557f5bbb1d3ebb6a3ad2a0f17ff35e579a83af60604d1d3c2a4c83c62adecadf666d5f80a260015f80516020612c5f83398151915255005b6044906040519063e2517d3f60e01b82523360048301526024820152fd5b346102ba5760203660031901126102ba576004355f52600360205260206105c760405f20611efa565b346102ba5760403660031901126102ba5760206105c7610a166024356109f481610412565b6004355f526005845260405f209060018060a01b03165f5260205260405f2090565b611efa565b9181601f840112156102ba578235916001600160401b0383116102ba57602083818601950101116102ba57565b346102ba5760203660031901126102ba576001600160401b036004358181116102ba57610a79903690600401610a1b565b5f80516020612c7f833981519152549260ff8460401c1615931680159081610b78575b6001149081610b6e575b159081610b65575b50610b53575f80516020612c7f833981519152805467ffffffffffffffff19166001179055610ae19183610b2f57611f7d565b610ae757005b5f80516020612c7f833981519152805460ff60401b19169055604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a1005b5f80516020612c7f833981519152805460ff60401b1916600160401b179055611f7d565b60405163f92ee8a960e01b8152600490fd5b9050155f610aae565b303b159150610aa6565b849150610a9c565b346102ba575f3660031901126102ba576020604051614e208152f35b60606003198201126102ba576004359160243565ffffffffffff811681036102ba5791604435906001600160401b0382116102ba57610586916004016104f1565b346102ba5760206105c7610bf036610b9c565b915f526003845260405f20611a45565b346102ba575f3660031901126102ba5760206040517fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c8152f35b346102ba575f3660031901126102ba5760206040517e8b9b1e5fa9cf3b14f87f435649268146305ddf689f082e5961a335b07a9abf8152f35b346102ba575f3660031901126102ba576001546040516001600160a01b039091168152602090f35b346102ba5760206105c7610cae36610b9c565b915f526004845260405f20611a45565b346102ba5760403660031901126102ba57602060ff610d10602435610ce281610412565b6004355f525f80516020612c3f833981519152845260405f209060018060a01b03165f5260205260405f2090565b54166040519015158152f35b346102ba576040806003193601126102ba57600435610d3a81610412565b602435906001600160401b0382116102ba575f8091610d60610dc4943690600401610a1b565b908187519283928337810184815203915af43d15610dcc57610db63d610d85816104d6565b90610d9286519283610487565b81523d5f602083013e5b845194859315156020850152808401526060830190611376565b03601f198101835282610487565b805190602001fd5b610db66060610d9c565b346102ba575f3660031901126102ba5760206040515f8152f35b346102ba5760603660031901126102ba57602435600435610e1082610412565b60443591610e1c611866565b5f8281526005602090815260408083206001600160a01b03851684529091529020610e4690611efa565b838114610741577f739a5a3ec0ff71e2386d0013deac5f44e0935a98def2e2a5ddf9a709518c829491610eb9610f0692855f52600460205260405f2090610eb388610eae610e93426123a7565b93610ea9610a168c5f52600460205260405f2090565b6113c1565b6113dc565b91611952565b5050610eea8561034683610ed5885f52600560205260405f2090565b9060018060a01b03165f5260205260405f2090565b50506040519485526001600160a01b0316939081906020820190565b0390a3005b346102ba575f3660031901126102ba5760206040516001600160401b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b346102ba575f3660031901126102ba576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346102ba5760203660031901126102ba576004355f52600460205260206105c760405f20611efa565b346102ba5760203660031901126102ba576004355f526002602052602060405f2054604051908152f35b346102ba5760403660031901126102ba5761073f60243560043561100882610412565b805f525f80516020612c3f83398151915260205261102c600160405f2001546118bd565b611e68565b346102ba5760206105c761104436610537565b929190916114eb565b346102ba5760a03660031901126102ba5760243560043561106d82610412565b60443591611079610423565b90608435906001600160401b0382116102ba5761109b600492369084016104f1565b6110a3611b28565b5f546020906110c8906110bc906001600160a01b031681565b6001600160a01b031690565b60405163b134427160e01b815294859182905afa928315610794575f93611207575b506001600160a01b0392831633036111f5576001546001600160a01b031683811661116a575b50506040805195865265ffffffffffff909316602086015216927f741a5de99085c0d660f3e4192217b0ffb0ea4e35a0480de48e857a4bc3ee36ed91819081015b0390a361073f60015f80516020612c5f83398151915255565b9093604051946111a186611193602082019363724ab0f760e11b8552858c898d6024870161168a565b03601f198101885287610487565b62042e305a106111e3575f611151938192827f741a5de99085c0d660f3e4192217b0ffb0ea4e35a0480de48e857a4bc3ee36ed9951926203d090f15093611110565b604051638072475160e01b8152600490fd5b60405163dabc4ad960e01b8152600490fd5b61122a91935060203d602011611231575b6112228183610487565b810190611675565b915f6110ea565b503d611218565b346102ba575f3660031901126102ba5760206040517f1312a1cf530e56add9be4fd84db9051dcc7635952f09f735f9a29405b55846258152f35b346102ba575f3660031901126102ba575f546040516001600160a01b039091168152602090f35b346102ba5760403660031901126102ba5760206105c76024356112bb81610412565b6004356116e0565b346102ba575f3660031901126102ba5760206040516203d0908152f35b346102ba575f3660031901126102ba57602060405160018152f35b5f9081526005602090815260408083206001600160a01b03909416835292905220610586929190611a45565b908160209103126102ba575180151581036102ba5790565b6040513d5f823e3d90fd5b9061058692915f52600360205260405f20611a45565b9061058692915f52600460205260405f20611a45565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b634e487b7160e01b5f52601160045260245ffd5b5f198101919082116113bc57565b61139a565b919082039182116113bc57565b90600182018092116113bc57565b919082018092116113bc57565b604051906113f68261044c565b60606020838281520152565b81601f820112156102ba57805190611419826104d6565b926114276040519485610487565b828452602083830101116102ba57815f9260208093018386015e8301015290565b906020828203126102ba5781516001600160401b03928382116102ba5701906040828203126102ba576040519261147e8461044c565b82518181116102ba5782611493918501611402565b845260208301519081116102ba576114ab9201611402565b602082015290565b6001600160a01b0391821681529116602082015265ffffffffffff909116604082015260806060820181905261058692910190611376565b926114fb909291928284866121e2565b9290936115066113e9565b93805180611659575b505084159384156115c3575b8415611532575b5050505061152d5790565b505f90565b60208094955061155d910151604051958694859463530e1d4360e01b865260601c90600486016114b3565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa908115610794575f916115a4575b50155f808080611522565b6115bd915060203d60201161078d5761077f8183610487565b5f611599565b5f549094506001600160a01b03166020848651926115f6604051948593849363530e1d4360e01b855289600486016114b3565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa908115610794575f9161163a575b50159361151b565b611653915060203d60201161078d5761077f8183610487565b5f611632565b61166d929550602080918301019101611448565b925f8061150f565b908160209103126102ba575161058681610412565b919360a093610586969565ffffffffffff938552600180871b0316602085015260408401521660608201528160808201520190611376565b81156116cc570490565b634e487b7160e01b5f52601260045260245ffd5b5f546040516308834cb560e21b8082526001600160a01b0385811660048401529283166024830152929392602092909183816044817f000000000000000000000000000000000000000000000000000000000000000086165afa908115610794575f916117ed575b5015918215611769575b5050905061176357610586916122f2565b50505f90565b6040519081526001600160a01b0385166004820152606086901c602482015291508290829060449082907f0000000000000000000000000000000000000000000000000000000000000000165afa918215610794575f926117d0575b505015805f80611752565b6117e69250803d1061078d5761077f8183610487565b5f806117c5565b6118049150843d861161078d5761077f8183610487565b5f611748565b335f9081527f72a65082a5691803ab2b62c9bc729b34205ba1b183d950896526b2fd8714d0c7602052604090207e8b9b1e5fa9cf3b14f87f435649268146305ddf689f082e5961a335b07a9abf9060ff905b5416156109885750565b335f9081527f8f2dae99798887da307a4daa2c2d11f840b0cb9a6a67822660c531e9ad14dd00602052604090207f1312a1cf530e56add9be4fd84db9051dcc7635952f09f735f9a29405b55846259060ff9061185c565b5f8181525f80516020612c3f83398151915260209081526040808320338452909152902060ff9061185c565b634e487b7160e01b5f52603260045260245ffd5b8054821015611912575f5260205f2001905f90565b6118e9565b90815491600160401b831015610467578261193a9160016104d4950181556118fd565b90919082549060031b91821b915f19901b1916179055565b909291926001820190815480156119e4575b508461196f846123fd565b5094909284549361197f83611efa565b96816119cf575b50156119ac575050505f1981019081116113bc5761193a85916119a8936118fd565b9190565b6119a89492936119c8926001600160d01b039091169190612963565b5050611917565b65ffffffffffff83811691161490505f611986565b600160401b81101561046757806001611a0092018455836118fd565b8154905f199060031b1b191690555f611964565b908160209103126102ba575163ffffffff811681036102ba5790565b90600163ffffffff809316019182116113bc57565b91805115611b1e5780602080611a6093518301019101611a14565b91611a6b838261251c565b92611a7c845165ffffffffffff1690565b9065ffffffffffff8085169216828114611b125782119182611ab2575b5050611aa957610586925061244c565b50506020015190565b909150611abf83546113ae565b63ffffffff831614918215611ad8575b50505f80611a99565b611b0a919250611af3611aed611aff92611a30565b8561251c565b5165ffffffffffff1690565b65ffffffffffff1690565b115f80611acf565b50505050506020015190565b506105869161244c565b5f80516020612c5f8339815191526002815414611b455760029055565b604051633ee5aeb560e01b8152600490fd5b90815f52600360205260405f2081611b6e826123fd565b919390508315611bcc57611b8e916001600160d01b0316906001016118fd565b90549060031b1c5b82611bc2575b5050611ba6575050565b611bbe915f52600360205260405f2061034f426123a7565b5050565b119050815f611b9c565b50505f611b96565b6001600160a01b0381165f9081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d60205260409020545f80516020612c3f8339815191529060ff16611763575f808052602091825260408082206001600160a01b038516835290925220805460ff1916600117905533906001600160a01b03165f7f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d8180a4600190565b6001600160a01b0381165f9081527f9ebbcbe0d2961d3fbe56ca6f679bc753bd848d3e6bb3eaf9041c51b286881d2c602052604090207fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c905f80516020612c3f8339815191529060ff905b5416611d4e575f828152602091825260408082206001600160a01b038616835290925220805460ff1916600117905533916001600160a01b0316907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d5f80a4600190565b5050505f90565b6001600160a01b0381165f9081527f72a65082a5691803ab2b62c9bc729b34205ba1b183d950896526b2fd8714d0c7602052604090207e8b9b1e5fa9cf3b14f87f435649268146305ddf689f082e5961a335b07a9abf905f80516020612c3f8339815191529060ff90611cea565b6001600160a01b0381165f9081527f8f2dae99798887da307a4daa2c2d11f840b0cb9a6a67822660c531e9ad14dd00602052604090207f1312a1cf530e56add9be4fd84db9051dcc7635952f09f735f9a29405b5584625905f80516020612c3f8339815191529060ff90611cea565b5f8181525f80516020612c3f833981519152602081815260408084206001600160a01b038716855290915290912060ff90611cea565b5f8181525f80516020612c3f833981519152602081815260408084206001600160a01b03871685529091529091205460ff1615611d4e575f828152602091825260408082206001600160a01b038616835290925220805460ff1916905533916001600160a01b0316907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b5f80a4600190565b805480611f2957505f5b6001600160d01b03811615611763576001611f1f92016118fd565b90549060031b1c90565b5f199080828101116113bc57825f5260205f2001015460301c611f04565b9190916040818403126102ba578035611f5f81610412565b9260208201356001600160401b0381116102ba5761058692016104f1565b611f8991810190611f47565b6040516302910f8b60e31b81526001600160a01b039283166004820181905291906020816024817f000000000000000000000000000000000000000000000000000000000000000088165afa908115610794575f9161209c575b501561208a5761201e60409161201961206494611ffe612584565b60018060a01b03166001600160601b0360a01b5f5416175f55565b612704565b6020810151600180546001600160a01b0319166001600160a01b0390921691909117905580516001600160a01b031684811661207a575b5001516001600160a01b031690565b90811661206e5750565b61207790611c7f565b50565b61208390611bd4565b505f612055565b6040516362df054560e01b8152600490fd5b6120b5915060203d60201161078d5761077f8183610487565b5f611fe3565b6040519060a082018281106001600160401b038211176104675760405281608060609182815282602082015282604082015282808201520152565b906020828203126102ba5781516001600160401b03928382116102ba57019060a0828203126102ba576121276104a8565b9282518181116102ba578261213d918501611402565b845260208301518181116102ba5782612157918501611402565b602085015260408301518181116102ba5782612174918501611402565b604085015260608301518181116102ba5782612191918501611402565b606085015260808301519081116102ba576121ac9201611402565b608082015290565b908160209103126102ba575190565b60409065ffffffffffff61058694931681528160208201520190611376565b919392936121ee6120bb565b948051806122d6575b505061220860608601518285611360565b918261221a57505050509051905f9190565b61222e6122689183608089015191876112fb565b9160206122476110bc6110bc5f5460018060a01b031690565b8189015190604051808096819463810da75d60e01b835287600484016121c3565b03915afa80156107945761229e95612298935f926122a3575b50612292919260408a01519161134a565b90612864565b90612876565b915190565b61229292506122c99060203d6020116122cf575b6122c18183610487565b8101906121b4565b91612281565b503d6122b7565b6122ea9296506020809183010191016120f6565b935f806121f7565b90612308610a16835f52600460205260405f2090565b9081612315575050505f90565b610a1661232e91610ed5855f52600560205260405f2090565b5f5460405163bd49c35f60e01b815290602090829060049082906001600160a01b03165afa80156107945761058694612298925f9261237e575b50610a16612292915f52600360205260405f2090565b61229291925061239f610a169160203d6020116122cf576122c18183610487565b929150612368565b65ffffffffffff908181116123ba571690565b604490604051906306dfcc6560e41b8252603060048301526024820152fd5b906040516123e68161044c565b915465ffffffffffff8116835260301c6020830152565b80548061240e5750505f905f905f90565b5f199080828101116113bc5761242b925f5260205f2001016123d9565b9065ffffffffffff82511691602060018060d01b0391015116906001929190565b908154905f8291600584116124b6575b612467935084612bdf565b8061248f57505f905b6001600160d01b0382161561176357610586916001611f1f92016118fd565b6124a961249e6124b0926113ae565b835f5260205f200190565b5460301c90565b90612470565b91926124c181612aac565b81039081116113bc5761246793855f5265ffffffffffff808360205f20015416908516105f146124f257509161245c565b9291506124fe906113ce565b9061245c565b604051906125118261044c565b5f6020838281520152565b9061254561253f6125669261252f612504565b50612538612504565b50846118fd565b506123d9565b91600165ffffffffffff845116936020828060d01b039101511691016118fd565b905490604051926125768461044c565b835260031b1c602082015290565b61258c612a7e565b612594612a7e565b60015f80516020612c5f83398151915255565b604051906125b48261046c565b5f6040838281528260208201520152565b81601f820112156102ba578051916020916001600160401b038411610467578360051b90604051946125f985840187610487565b855283808601928201019283116102ba578301905b82821061261c575050505090565b838091835161262a81610412565b81520191019061260e565b906020828203126102ba5781516001600160401b03928382116102ba5701908181039260a084126102ba5760606040519461266f8661046c565b126102ba576040516126808161046c565b835161268b81610412565b8152602084015161269b81610412565b602082015260408401516126ae81610412565b6040820152845260608301518181116102ba57826126cd9185016125c5565b602085015260808301519081116102ba576126e892016125c5565b604082015290565b80518210156119125760209160051b010190565b612720906127106125a7565b5060208082518301019101612635565b8051519091906001600160a01b0316158061284a575b612838579060208101905f5b825180518210156127bc576110bc61275d8361276a936126f0565b516001600160a01b031690565b156127aa5761278c61278861278361275d8487516126f0565b611d55565b1590565b61279857600101612742565b604051635140fefd60e11b8152600490fd5b6040516323cda06760e01b8152600490fd5b506040925050818101905f5b8251805182101561282f576110bc61275d836127e3936126f0565b1561281e576128016127886127fc61275d8487516126f0565b611dc3565b61280d576001016127c8565b8351635140fefd60e11b8152600490fd5b83516323cda06760e01b8152600490fd5b50509150505190565b6040516303501f5960e11b8152600490fd5b506020820151511580612736575060408201515115612736565b9080821015612871575090565b905090565b9091828202915f19848209938380861095039480860395146128fb57848311156128e957829109815f038216809204600280826003021880830282030280830282030280830282030280830282030280830282030280920290030293600183805f03040190848311900302920304170290565b60405163227bc15360e01b8152600490fd5b50509061058692506116c2565b8054600160401b81101561046757612925916001820181556118fd565b61295057815160209092015160301b65ffffffffffff191665ffffffffffff92909216919091179055565b634e487b7160e01b5f525f60045260245ffd5b805492939291908215612a555761298461297f61249e856113ae565b6123d9565b90612995825165ffffffffffff1690565b65ffffffffffff84811691168110612a43576119a89460209488926129c3611aff875165ffffffffffff1690565b03612a0b57506129fd926129d96129e4926113ae565b905f5260205f200190565b9065ffffffffffff82549181199060301b169116179055565b01516001600160d01b031690565b915050612a3e91612a2b612a1d6104c7565b65ffffffffffff9093168352565b6001600160d01b03881682860152612908565b6129fd565b604051632520601d60e01b8152600490fd5b612a799250612a65612a1d6104c7565b6001600160d01b0385166020830152612908565b5f9190565b60ff5f80516020612c7f8339815191525460401c1615612a9a57565b604051631afcd79f60e31b8152600490fd5b801561152d5780612292612b77612b6d612b63612b59612b4f612b45612b3b60016105869a5f908b60801c80612bd3575b508060401c80612bc6575b508060201c80612bb9575b508060101c80612bac575b508060081c80612b9f575b508060041c80612b92575b508060021c80612b85575b50821c612b7e575b811c1b612b34818b6116c2565b0160011c90565b612b34818a6116c2565b612b3481896116c2565b612b3481886116c2565b612b3481876116c2565b612b3481866116c2565b612b3481856116c2565b80926116c2565b8101612b27565b600291509101905f612b1f565b600491509101905f612b14565b600891509101905f612b09565b601091509101905f612afe565b602091509101905f612af3565b604091509101905f612ae8565b9150506080905f612add565b91905b838210612bef5750505090565b9091928083169080841860011c82018092116113bc57845f5265ffffffffffff808360205f20015416908416105f14612c2c5750925b9190612be2565b939250612c38906113ce565b91612c2556fe02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268009b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a26469706673582212207c0b67c843f77296f04a0b4a7f59c05f359258f77a9185191f16f67fbfab711f64736f6c63430008190033","sourceMap":"542:7244:83:-:0;;;;-1:-1:-1;;;;;542:7244:83;;;;;;;;;;-1:-1:-1;;542:7244:83;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;8837:64:26;542:7244:83;;;;;;;;;7896:76:26;;542:7244:83;;;;7985:34:26;7981:146;;-1:-1:-1;525:17:74;;;542:7244:83;525:17:74;542:7244:83;552:12:74;542:7244:83;2360:34:81;2404:28;;2442:57;;;;2509:61;;;;542:7244:83;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2404:28:81;542:7244:83;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7981:146:26;-1:-1:-1;;;;;;542:7244:83;;;;;;;;;;;;;8087:29:26;;542:7244:83;;8087:29:26;7981:146;;;;;7896:76;542:7244:83;;-1:-1:-1;;;7938:23:26;;;;;542:7244:83;-1:-1:-1;542:7244:83;;;;;;-1:-1:-1;542:7244:83;;;;;-1:-1:-1;542:7244:83;;;;-1:-1:-1;;;;;542:7244:83;;;;;;:::o","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361015610011575f80fd5b5f3560e01c806301ffc9a714610264578063021453481461025f578063103f29071461025a578063128e5d82146102555780631a7a7044146102505780631a80e5001461024b57806323f752d514610246578063248a9ca3146102415780632dd310001461023c5780632f2ff15d1461023757806336568abe146102325780633dfd38731461022d5780633eb22c0f1461022857806342c53e3314610223578063439fab911461021e578063557cab44146102195780635d32a1c9146102145780636679191e1461020f5780637d24bb271461020a5780637f5a7c7b146102055780638b3f10b01461020057806391d14854146101fb5780639f86fd85146101f6578063a217fddf146101f1578063a33bc287146101ec578063bb24fe8a146101e7578063c0cd7c3e146101e2578063c43dc03f146101dd578063d15b740e146101d8578063d547741f146101d3578063e02f6937146101ce578063e49561ee146101c9578063e78eb6ae146101c4578063fbfa77cf146101bf578063fd4d447c146101ba578063ff54740f146101b55763ffa1ad74146101b0575f80fd5b6112e0565b6112c3565b611299565b611272565b611238565b61104d565b611031565b610fe5565b610fbb565b610f92565b610f4e565b610f0b565b610df0565b610dd6565b610d1c565b610cbe565b610c9b565b610c73565b610c3a565b610c00565b610bdd565b610b80565b610a48565b6109cf565b6109a6565b6108ad565b610862565b610816565b6107d2565b610799565b610613565b6105cf565b610589565b6103ce565b61038a565b6102be565b346102ba5760203660031901126102ba5760043563ffffffff60e01b81168091036102ba57602090637965db0b60e01b81149081156102a9575b506040519015158152f35b6301ffc9a760e01b1490505f61029e565b5f80fd5b346102ba576040806003193601126102ba5760043590602435906102e061180a565b825f526002602052805f2054821161037a57825f52600360205281610306825f20611efa565b1461036a5781610365916103557e899d104fc3d8820bd96540612bcc5c448c8837b13b9f7faa43ad0728f0c14f94610346875f52600360205260405f2090565b61034f426123a7565b90611952565b5050519081529081906020820190565b0390a2005b5163a741a04560e01b8152600490fd5b51631eefc06360e31b8152600490fd5b346102ba575f3660031901126102ba576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346102ba575f3660031901126102ba576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b6001600160a01b038116036102ba57565b6064359065ffffffffffff821682036102ba57565b634e487b7160e01b5f52604160045260245ffd5b604081019081106001600160401b0382111761046757604052565b610438565b606081019081106001600160401b0382111761046757604052565b90601f801991011681019081106001600160401b0382111761046757604052565b6040519060a082018281106001600160401b0382111761046757604052565b604051906104d48261044c565b565b6001600160401b03811161046757601f01601f191660200190565b81601f820112156102ba57803590610508826104d6565b926105166040519485610487565b828452602083830101116102ba57815f926020809301838601378301015290565b9060806003198301126102ba576004359160243561055481610412565b9160443565ffffffffffff811681036102ba5791606435906001600160401b0382116102ba57610586916004016104f1565b90565b346102ba5760206105c76105c261059f36610537565b939190925f526005865260405f209060018060a01b03165f5260205260405f2090565b611a45565b604051908152f35b346102ba575f3660031901126102ba576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346102ba5760403660031901126102ba576004356001600160601b03811681036102ba5760243590610643611b28565b6040516302910f8b60e31b81523360048201526020816024816001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165afa908115610794575f91610765575b5015610753576001600160601b03166bffffffffffffffffffffffff193360601b161790806106cd835f52600260205260405f2090565b541461074157610726817fc67e7929681aa1bccd63f52b3799bf5805f3009f197db6fdf584b14f7fbf608c9261070b855f52600260205260405f2090565b556107168185611b57565b6040519081529081906020820190565b0390a261073f60015f80516020612c5f83398151915255565b005b60405163a741a04560e01b8152600490fd5b6040516323d53b9760e21b8152600490fd5b610787915060203d60201161078d575b61077f8183610487565b810190611327565b5f610696565b503d610775565b61133f565b346102ba5760203660031901126102ba576004355f525f80516020612c3f8339815191526020526020600160405f200154604051908152f35b346102ba575f3660031901126102ba576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346102ba5760403660031901126102ba5761073f60243560043561083982610412565b805f525f80516020612c3f83398151915260205261085d600160405f2001546118bd565b611e32565b346102ba5760403660031901126102ba5760243561087f81610412565b336001600160a01b0382160361089b5761073f90600435611e68565b60405163334bd91960e11b8152600490fd5b346102ba5760203660031901126102ba576004356108ca81610412565b6108d2611b28565b335f9081527f9ebbcbe0d2961d3fbe56ca6f679bc753bd848d3e6bb3eaf9041c51b286881d2c60205260409020547fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c9060ff161561098857506001546001600160a01b039182169181168214610741576001600160a01b03191681176001557f5bbb1d3ebb6a3ad2a0f17ff35e579a83af60604d1d3c2a4c83c62adecadf666d5f80a260015f80516020612c5f83398151915255005b6044906040519063e2517d3f60e01b82523360048301526024820152fd5b346102ba5760203660031901126102ba576004355f52600360205260206105c760405f20611efa565b346102ba5760403660031901126102ba5760206105c7610a166024356109f481610412565b6004355f526005845260405f209060018060a01b03165f5260205260405f2090565b611efa565b9181601f840112156102ba578235916001600160401b0383116102ba57602083818601950101116102ba57565b346102ba5760203660031901126102ba576001600160401b036004358181116102ba57610a79903690600401610a1b565b5f80516020612c7f833981519152549260ff8460401c1615931680159081610b78575b6001149081610b6e575b159081610b65575b50610b53575f80516020612c7f833981519152805467ffffffffffffffff19166001179055610ae19183610b2f57611f7d565b610ae757005b5f80516020612c7f833981519152805460ff60401b19169055604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a1005b5f80516020612c7f833981519152805460ff60401b1916600160401b179055611f7d565b60405163f92ee8a960e01b8152600490fd5b9050155f610aae565b303b159150610aa6565b849150610a9c565b346102ba575f3660031901126102ba576020604051614e208152f35b60606003198201126102ba576004359160243565ffffffffffff811681036102ba5791604435906001600160401b0382116102ba57610586916004016104f1565b346102ba5760206105c7610bf036610b9c565b915f526003845260405f20611a45565b346102ba575f3660031901126102ba5760206040517fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c8152f35b346102ba575f3660031901126102ba5760206040517e8b9b1e5fa9cf3b14f87f435649268146305ddf689f082e5961a335b07a9abf8152f35b346102ba575f3660031901126102ba576001546040516001600160a01b039091168152602090f35b346102ba5760206105c7610cae36610b9c565b915f526004845260405f20611a45565b346102ba5760403660031901126102ba57602060ff610d10602435610ce281610412565b6004355f525f80516020612c3f833981519152845260405f209060018060a01b03165f5260205260405f2090565b54166040519015158152f35b346102ba576040806003193601126102ba57600435610d3a81610412565b602435906001600160401b0382116102ba575f8091610d60610dc4943690600401610a1b565b908187519283928337810184815203915af43d15610dcc57610db63d610d85816104d6565b90610d9286519283610487565b81523d5f602083013e5b845194859315156020850152808401526060830190611376565b03601f198101835282610487565b805190602001fd5b610db66060610d9c565b346102ba575f3660031901126102ba5760206040515f8152f35b346102ba5760603660031901126102ba57602435600435610e1082610412565b60443591610e1c611866565b5f8281526005602090815260408083206001600160a01b03851684529091529020610e4690611efa565b838114610741577f739a5a3ec0ff71e2386d0013deac5f44e0935a98def2e2a5ddf9a709518c829491610eb9610f0692855f52600460205260405f2090610eb388610eae610e93426123a7565b93610ea9610a168c5f52600460205260405f2090565b6113c1565b6113dc565b91611952565b5050610eea8561034683610ed5885f52600560205260405f2090565b9060018060a01b03165f5260205260405f2090565b50506040519485526001600160a01b0316939081906020820190565b0390a3005b346102ba575f3660031901126102ba5760206040516001600160401b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b346102ba575f3660031901126102ba576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346102ba5760203660031901126102ba576004355f52600460205260206105c760405f20611efa565b346102ba5760203660031901126102ba576004355f526002602052602060405f2054604051908152f35b346102ba5760403660031901126102ba5761073f60243560043561100882610412565b805f525f80516020612c3f83398151915260205261102c600160405f2001546118bd565b611e68565b346102ba5760206105c761104436610537565b929190916114eb565b346102ba5760a03660031901126102ba5760243560043561106d82610412565b60443591611079610423565b90608435906001600160401b0382116102ba5761109b600492369084016104f1565b6110a3611b28565b5f546020906110c8906110bc906001600160a01b031681565b6001600160a01b031690565b60405163b134427160e01b815294859182905afa928315610794575f93611207575b506001600160a01b0392831633036111f5576001546001600160a01b031683811661116a575b50506040805195865265ffffffffffff909316602086015216927f741a5de99085c0d660f3e4192217b0ffb0ea4e35a0480de48e857a4bc3ee36ed91819081015b0390a361073f60015f80516020612c5f83398151915255565b9093604051946111a186611193602082019363724ab0f760e11b8552858c898d6024870161168a565b03601f198101885287610487565b62042e305a106111e3575f611151938192827f741a5de99085c0d660f3e4192217b0ffb0ea4e35a0480de48e857a4bc3ee36ed9951926203d090f15093611110565b604051638072475160e01b8152600490fd5b60405163dabc4ad960e01b8152600490fd5b61122a91935060203d602011611231575b6112228183610487565b810190611675565b915f6110ea565b503d611218565b346102ba575f3660031901126102ba5760206040517f1312a1cf530e56add9be4fd84db9051dcc7635952f09f735f9a29405b55846258152f35b346102ba575f3660031901126102ba575f546040516001600160a01b039091168152602090f35b346102ba5760403660031901126102ba5760206105c76024356112bb81610412565b6004356116e0565b346102ba575f3660031901126102ba5760206040516203d0908152f35b346102ba575f3660031901126102ba57602060405160018152f35b5f9081526005602090815260408083206001600160a01b03909416835292905220610586929190611a45565b908160209103126102ba575180151581036102ba5790565b6040513d5f823e3d90fd5b9061058692915f52600360205260405f20611a45565b9061058692915f52600460205260405f20611a45565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b634e487b7160e01b5f52601160045260245ffd5b5f198101919082116113bc57565b61139a565b919082039182116113bc57565b90600182018092116113bc57565b919082018092116113bc57565b604051906113f68261044c565b60606020838281520152565b81601f820112156102ba57805190611419826104d6565b926114276040519485610487565b828452602083830101116102ba57815f9260208093018386015e8301015290565b906020828203126102ba5781516001600160401b03928382116102ba5701906040828203126102ba576040519261147e8461044c565b82518181116102ba5782611493918501611402565b845260208301519081116102ba576114ab9201611402565b602082015290565b6001600160a01b0391821681529116602082015265ffffffffffff909116604082015260806060820181905261058692910190611376565b926114fb909291928284866121e2565b9290936115066113e9565b93805180611659575b505084159384156115c3575b8415611532575b5050505061152d5790565b505f90565b60208094955061155d910151604051958694859463530e1d4360e01b865260601c90600486016114b3565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa908115610794575f916115a4575b50155f808080611522565b6115bd915060203d60201161078d5761077f8183610487565b5f611599565b5f549094506001600160a01b03166020848651926115f6604051948593849363530e1d4360e01b855289600486016114b3565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa908115610794575f9161163a575b50159361151b565b611653915060203d60201161078d5761077f8183610487565b5f611632565b61166d929550602080918301019101611448565b925f8061150f565b908160209103126102ba575161058681610412565b919360a093610586969565ffffffffffff938552600180871b0316602085015260408401521660608201528160808201520190611376565b81156116cc570490565b634e487b7160e01b5f52601260045260245ffd5b5f546040516308834cb560e21b8082526001600160a01b0385811660048401529283166024830152929392602092909183816044817f000000000000000000000000000000000000000000000000000000000000000086165afa908115610794575f916117ed575b5015918215611769575b5050905061176357610586916122f2565b50505f90565b6040519081526001600160a01b0385166004820152606086901c602482015291508290829060449082907f0000000000000000000000000000000000000000000000000000000000000000165afa918215610794575f926117d0575b505015805f80611752565b6117e69250803d1061078d5761077f8183610487565b5f806117c5565b6118049150843d861161078d5761077f8183610487565b5f611748565b335f9081527f72a65082a5691803ab2b62c9bc729b34205ba1b183d950896526b2fd8714d0c7602052604090207e8b9b1e5fa9cf3b14f87f435649268146305ddf689f082e5961a335b07a9abf9060ff905b5416156109885750565b335f9081527f8f2dae99798887da307a4daa2c2d11f840b0cb9a6a67822660c531e9ad14dd00602052604090207f1312a1cf530e56add9be4fd84db9051dcc7635952f09f735f9a29405b55846259060ff9061185c565b5f8181525f80516020612c3f83398151915260209081526040808320338452909152902060ff9061185c565b634e487b7160e01b5f52603260045260245ffd5b8054821015611912575f5260205f2001905f90565b6118e9565b90815491600160401b831015610467578261193a9160016104d4950181556118fd565b90919082549060031b91821b915f19901b1916179055565b909291926001820190815480156119e4575b508461196f846123fd565b5094909284549361197f83611efa565b96816119cf575b50156119ac575050505f1981019081116113bc5761193a85916119a8936118fd565b9190565b6119a89492936119c8926001600160d01b039091169190612963565b5050611917565b65ffffffffffff83811691161490505f611986565b600160401b81101561046757806001611a0092018455836118fd565b8154905f199060031b1b191690555f611964565b908160209103126102ba575163ffffffff811681036102ba5790565b90600163ffffffff809316019182116113bc57565b91805115611b1e5780602080611a6093518301019101611a14565b91611a6b838261251c565b92611a7c845165ffffffffffff1690565b9065ffffffffffff8085169216828114611b125782119182611ab2575b5050611aa957610586925061244c565b50506020015190565b909150611abf83546113ae565b63ffffffff831614918215611ad8575b50505f80611a99565b611b0a919250611af3611aed611aff92611a30565b8561251c565b5165ffffffffffff1690565b65ffffffffffff1690565b115f80611acf565b50505050506020015190565b506105869161244c565b5f80516020612c5f8339815191526002815414611b455760029055565b604051633ee5aeb560e01b8152600490fd5b90815f52600360205260405f2081611b6e826123fd565b919390508315611bcc57611b8e916001600160d01b0316906001016118fd565b90549060031b1c5b82611bc2575b5050611ba6575050565b611bbe915f52600360205260405f2061034f426123a7565b5050565b119050815f611b9c565b50505f611b96565b6001600160a01b0381165f9081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d60205260409020545f80516020612c3f8339815191529060ff16611763575f808052602091825260408082206001600160a01b038516835290925220805460ff1916600117905533906001600160a01b03165f7f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d8180a4600190565b6001600160a01b0381165f9081527f9ebbcbe0d2961d3fbe56ca6f679bc753bd848d3e6bb3eaf9041c51b286881d2c602052604090207fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c905f80516020612c3f8339815191529060ff905b5416611d4e575f828152602091825260408082206001600160a01b038616835290925220805460ff1916600117905533916001600160a01b0316907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d5f80a4600190565b5050505f90565b6001600160a01b0381165f9081527f72a65082a5691803ab2b62c9bc729b34205ba1b183d950896526b2fd8714d0c7602052604090207e8b9b1e5fa9cf3b14f87f435649268146305ddf689f082e5961a335b07a9abf905f80516020612c3f8339815191529060ff90611cea565b6001600160a01b0381165f9081527f8f2dae99798887da307a4daa2c2d11f840b0cb9a6a67822660c531e9ad14dd00602052604090207f1312a1cf530e56add9be4fd84db9051dcc7635952f09f735f9a29405b5584625905f80516020612c3f8339815191529060ff90611cea565b5f8181525f80516020612c3f833981519152602081815260408084206001600160a01b038716855290915290912060ff90611cea565b5f8181525f80516020612c3f833981519152602081815260408084206001600160a01b03871685529091529091205460ff1615611d4e575f828152602091825260408082206001600160a01b038616835290925220805460ff1916905533916001600160a01b0316907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b5f80a4600190565b805480611f2957505f5b6001600160d01b03811615611763576001611f1f92016118fd565b90549060031b1c90565b5f199080828101116113bc57825f5260205f2001015460301c611f04565b9190916040818403126102ba578035611f5f81610412565b9260208201356001600160401b0381116102ba5761058692016104f1565b611f8991810190611f47565b6040516302910f8b60e31b81526001600160a01b039283166004820181905291906020816024817f000000000000000000000000000000000000000000000000000000000000000088165afa908115610794575f9161209c575b501561208a5761201e60409161201961206494611ffe612584565b60018060a01b03166001600160601b0360a01b5f5416175f55565b612704565b6020810151600180546001600160a01b0319166001600160a01b0390921691909117905580516001600160a01b031684811661207a575b5001516001600160a01b031690565b90811661206e5750565b61207790611c7f565b50565b61208390611bd4565b505f612055565b6040516362df054560e01b8152600490fd5b6120b5915060203d60201161078d5761077f8183610487565b5f611fe3565b6040519060a082018281106001600160401b038211176104675760405281608060609182815282602082015282604082015282808201520152565b906020828203126102ba5781516001600160401b03928382116102ba57019060a0828203126102ba576121276104a8565b9282518181116102ba578261213d918501611402565b845260208301518181116102ba5782612157918501611402565b602085015260408301518181116102ba5782612174918501611402565b604085015260608301518181116102ba5782612191918501611402565b606085015260808301519081116102ba576121ac9201611402565b608082015290565b908160209103126102ba575190565b60409065ffffffffffff61058694931681528160208201520190611376565b919392936121ee6120bb565b948051806122d6575b505061220860608601518285611360565b918261221a57505050509051905f9190565b61222e6122689183608089015191876112fb565b9160206122476110bc6110bc5f5460018060a01b031690565b8189015190604051808096819463810da75d60e01b835287600484016121c3565b03915afa80156107945761229e95612298935f926122a3575b50612292919260408a01519161134a565b90612864565b90612876565b915190565b61229292506122c99060203d6020116122cf575b6122c18183610487565b8101906121b4565b91612281565b503d6122b7565b6122ea9296506020809183010191016120f6565b935f806121f7565b90612308610a16835f52600460205260405f2090565b9081612315575050505f90565b610a1661232e91610ed5855f52600560205260405f2090565b5f5460405163bd49c35f60e01b815290602090829060049082906001600160a01b03165afa80156107945761058694612298925f9261237e575b50610a16612292915f52600360205260405f2090565b61229291925061239f610a169160203d6020116122cf576122c18183610487565b929150612368565b65ffffffffffff908181116123ba571690565b604490604051906306dfcc6560e41b8252603060048301526024820152fd5b906040516123e68161044c565b915465ffffffffffff8116835260301c6020830152565b80548061240e5750505f905f905f90565b5f199080828101116113bc5761242b925f5260205f2001016123d9565b9065ffffffffffff82511691602060018060d01b0391015116906001929190565b908154905f8291600584116124b6575b612467935084612bdf565b8061248f57505f905b6001600160d01b0382161561176357610586916001611f1f92016118fd565b6124a961249e6124b0926113ae565b835f5260205f200190565b5460301c90565b90612470565b91926124c181612aac565b81039081116113bc5761246793855f5265ffffffffffff808360205f20015416908516105f146124f257509161245c565b9291506124fe906113ce565b9061245c565b604051906125118261044c565b5f6020838281520152565b9061254561253f6125669261252f612504565b50612538612504565b50846118fd565b506123d9565b91600165ffffffffffff845116936020828060d01b039101511691016118fd565b905490604051926125768461044c565b835260031b1c602082015290565b61258c612a7e565b612594612a7e565b60015f80516020612c5f83398151915255565b604051906125b48261046c565b5f6040838281528260208201520152565b81601f820112156102ba578051916020916001600160401b038411610467578360051b90604051946125f985840187610487565b855283808601928201019283116102ba578301905b82821061261c575050505090565b838091835161262a81610412565b81520191019061260e565b906020828203126102ba5781516001600160401b03928382116102ba5701908181039260a084126102ba5760606040519461266f8661046c565b126102ba576040516126808161046c565b835161268b81610412565b8152602084015161269b81610412565b602082015260408401516126ae81610412565b6040820152845260608301518181116102ba57826126cd9185016125c5565b602085015260808301519081116102ba576126e892016125c5565b604082015290565b80518210156119125760209160051b010190565b612720906127106125a7565b5060208082518301019101612635565b8051519091906001600160a01b0316158061284a575b612838579060208101905f5b825180518210156127bc576110bc61275d8361276a936126f0565b516001600160a01b031690565b156127aa5761278c61278861278361275d8487516126f0565b611d55565b1590565b61279857600101612742565b604051635140fefd60e11b8152600490fd5b6040516323cda06760e01b8152600490fd5b506040925050818101905f5b8251805182101561282f576110bc61275d836127e3936126f0565b1561281e576128016127886127fc61275d8487516126f0565b611dc3565b61280d576001016127c8565b8351635140fefd60e11b8152600490fd5b83516323cda06760e01b8152600490fd5b50509150505190565b6040516303501f5960e11b8152600490fd5b506020820151511580612736575060408201515115612736565b9080821015612871575090565b905090565b9091828202915f19848209938380861095039480860395146128fb57848311156128e957829109815f038216809204600280826003021880830282030280830282030280830282030280830282030280830282030280920290030293600183805f03040190848311900302920304170290565b60405163227bc15360e01b8152600490fd5b50509061058692506116c2565b8054600160401b81101561046757612925916001820181556118fd565b61295057815160209092015160301b65ffffffffffff191665ffffffffffff92909216919091179055565b634e487b7160e01b5f525f60045260245ffd5b805492939291908215612a555761298461297f61249e856113ae565b6123d9565b90612995825165ffffffffffff1690565b65ffffffffffff84811691168110612a43576119a89460209488926129c3611aff875165ffffffffffff1690565b03612a0b57506129fd926129d96129e4926113ae565b905f5260205f200190565b9065ffffffffffff82549181199060301b169116179055565b01516001600160d01b031690565b915050612a3e91612a2b612a1d6104c7565b65ffffffffffff9093168352565b6001600160d01b03881682860152612908565b6129fd565b604051632520601d60e01b8152600490fd5b612a799250612a65612a1d6104c7565b6001600160d01b0385166020830152612908565b5f9190565b60ff5f80516020612c7f8339815191525460401c1615612a9a57565b604051631afcd79f60e31b8152600490fd5b801561152d5780612292612b77612b6d612b63612b59612b4f612b45612b3b60016105869a5f908b60801c80612bd3575b508060401c80612bc6575b508060201c80612bb9575b508060101c80612bac575b508060081c80612b9f575b508060041c80612b92575b508060021c80612b85575b50821c612b7e575b811c1b612b34818b6116c2565b0160011c90565b612b34818a6116c2565b612b3481896116c2565b612b3481886116c2565b612b3481876116c2565b612b3481866116c2565b612b3481856116c2565b80926116c2565b8101612b27565b600291509101905f612b1f565b600491509101905f612b14565b600891509101905f612b09565b601091509101905f612afe565b602091509101905f612af3565b604091509101905f612ae8565b9150506080905f612add565b91905b838210612bef5750505090565b9091928083169080841860011c82018092116113bc57845f5265ffffffffffff808360205f20015416908416105f14612c2c5750925b9190612be2565b939250612c38906113ce565b91612c2556fe02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268009b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a26469706673582212207c0b67c843f77296f04a0b4a7f59c05f359258f77a9185191f16f67fbfab711f64736f6c63430008190033","sourceMap":"542:7244:83:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;;;;;-1:-1:-1;;542:7244:83;;;;;;;;;;;;;;;;;;-1:-1:-1;;;3551:47:24;;;:87;;;;542:7244:83;;;;;;;;;;3551:87:24;-1:-1:-1;;;1133:40:30;;-1:-1:-1;3551:87:24;;;542:7244:83;-1:-1:-1;542:7244:83;;;;;;;;;;;;;;;;;;;;3202:4:24;;;:::i;:::-;542:7244:83;-1:-1:-1;542:7244:83;3610:15;542:7244;;;-1:-1:-1;542:7244:83;;3601:36;;3597:98;;542:7244;-1:-1:-1;542:7244:83;2233:13;542:7244;;;2233:34;542:7244;-1:-1:-1;542:7244:83;2233:34;:::i;:::-;3709;3705:84;;3799:25;3871:35;3799:25;:56;3871:35;3799:25;;;542:7244;;2233:13;542:7244;;;;;;;3799:25;819:34:63;837:15;819:34;:::i;:::-;3799:56:83;;:::i;:::-;-1:-1:-1;;542:7244:83;;;;;;;;;;;;3871:35;;;;542:7244;3705:84;542:7244;-1:-1:-1;;;3766:12:83;;542:7244;;3766:12;3597:98;542:7244;-1:-1:-1;;;3660:24:83;;542:7244;;3660:24;542:7244;;;;;;-1:-1:-1;;542:7244:83;;;;;;1537:38:81;-1:-1:-1;;;;;542:7244:83;;;;;;;;;;;;-1:-1:-1;;542:7244:83;;;;;;1632:54:81;-1:-1:-1;;;;;542:7244:83;;;;;;;-1:-1:-1;;;;;542:7244:83;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;542:7244:83;;;;;;;:::o;:::-;;:::i;:::-;;;;;;;-1:-1:-1;;;;;542:7244:83;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;542:7244:83;;;;;;;:::o;:::-;;;;;;;;;;-1:-1:-1;;;;;542:7244:83;;;;;;;:::o;:::-;;;;;;;:::i;:::-;:::o;:::-;-1:-1:-1;;;;;542:7244:83;;;;;;-1:-1:-1;;542:7244:83;;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;542:7244:83;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;542:7244:83;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;-1:-1:-1;;;;;542:7244:83;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;3090:79;:44;542:7244;;;:::i;:::-;;;;;-1:-1:-1;542:7244:83;3090:22;542:7244;;;-1:-1:-1;542:7244:83;;;;;;;;;;;;;;;;;3090:44;:79;:::i;:::-;542:7244;;;;;;;;;;;;-1:-1:-1;;542:7244:83;;;;;;1743:56:81;-1:-1:-1;;;;;542:7244:83;;;;;;;;;;;;-1:-1:-1;;542:7244:83;;;;;;-1:-1:-1;;;;;542:7244:83;;;;;;;;3217:103:29;;;:::i;:::-;542:7244:83;;-1:-1:-1;;;4285:48:81;;4322:10;542:7244:83;4285:48:81;;542:7244:83;;;;;-1:-1:-1;;;;;4295:16:81;542:7244:83;4285:48:81;;;;;;;-1:-1:-1;4285:48:81;;;542:7244:83;4284:49:81;;4280:99;;-1:-1:-1;;;;;542:7244:83;-1:-1:-1;;4322:10:81;297:2:93;542:7244:83;;267:46:93;4459:27:81;;;;542:7244:83;;4459:15:81;542:7244:83;;;;;;;4459:27:81;542:7244:83;4459:37:81;4455:87;;4654:38;4552:27;4654:38;4552:27;;;542:7244:83;;4459:15:81;542:7244:83;;;;;;;4552:27:81;542:7244:83;4631:6:81;;;;:::i;:::-;542:7244:83;;;;;;;;;;;;;4654:38:81;;;;3282:1:29;1805;-1:-1:-1;;;;;;;;;;;542:7244:83;3716:283:29;3282:1;542:7244:83;4455:87:81;542:7244:83;;-1:-1:-1;;;4519:12:81;;542:7244:83;;4519:12:81;4280:99;542:7244:83;;-1:-1:-1;;;4356:12:81;;542:7244:83;;4356:12:81;4285:48;;;;542:7244:83;4285:48:81;542:7244:83;4285:48:81;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;:::i;542:7244:83:-;;;;;;-1:-1:-1;;542:7244:83;;;;;;-1:-1:-1;542:7244:83;-1:-1:-1;;;;;;;;;;;542:7244:83;;;4919:24:24;542:7244:83;-1:-1:-1;542:7244:83;4919:24:24;542:7244:83;;;;;;;;;;;;;-1:-1:-1;;542:7244:83;;;;;;322:32:74;-1:-1:-1;;;;;542:7244:83;;;;;;;;;;;;-1:-1:-1;;542:7244:83;;;;5350:25:24;542:7244:83;;;;;;;:::i;:::-;;-1:-1:-1;542:7244:83;-1:-1:-1;;;;;;;;;;;542:7244:83;;3202:4:24;4919:24;542:7244:83;-1:-1:-1;542:7244:83;4919:24:24;542:7244:83;3202:4:24;:::i;:::-;5350:25;:::i;542:7244:83:-;;;;;;-1:-1:-1;;542:7244:83;;;;;;;;;:::i;:::-;966:10:28;-1:-1:-1;;;;;542:7244:83;;6441:34:24;6437:102;;6549:37;542:7244:83;;;6549:37:24;:::i;6437:102::-;542:7244:83;;-1:-1:-1;;;6498:30:24;;542:7244:83;;6498:30:24;542:7244:83;;;;;;-1:-1:-1;;542:7244:83;;;;;;;;;:::i;:::-;3217:103:29;;:::i;:::-;966:10:28;-1:-1:-1;542:7244:83;;;;;;;;;;1356:26:81;;542:7244:83;;4468:23:24;4464:108;;-1:-1:-1;4861:4:81;542:7244:83;-1:-1:-1;;;;;542:7244:83;;;;;;4861:13:81;;4857:63;;-1:-1:-1;;;;;;542:7244:83;;;4861:4:81;542:7244:83;4958:14:81;-1:-1:-1;;4958:14:81;4861:4;-1:-1:-1;;;;;;;;;;;542:7244:83;;4464:108:24;542:7244:83;;;;4514:47:24;;;;;;966:10:28;542:7244:83;4514:47:24;;542:7244:83;;;;;4514:47:24;542:7244:83;;;;;;-1:-1:-1;;542:7244:83;;;;;;-1:-1:-1;542:7244:83;2233:13;542:7244;;;2233:34;542:7244;-1:-1:-1;542:7244:83;2233:34;:::i;542:7244::-;;;;;;-1:-1:-1;;542:7244:83;;;;;3358:53;:44;542:7244;;;;;:::i;:::-;;;-1:-1:-1;542:7244:83;3358:22;542:7244;;;-1:-1:-1;542:7244:83;;;;;;;;;;;;;;;;;3358:44;:53;:::i;542:7244::-;;;;;;;;;;;;;-1:-1:-1;;;;;542:7244:83;;;;;;;;;;;;;;;:::o;:::-;;;;;;-1:-1:-1;;542:7244:83;;;;-1:-1:-1;;;;;542:7244:83;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;542:7244:83;;;;;;;4301:16:26;542:7244:83;;4726:16:26;;:34;;;;542:7244:83;4805:1:26;4790:16;:50;;;;542:7244:83;4855:13:26;:30;;;;542:7244:83;4851:91:26;;;-1:-1:-1;;;;;;;;;;;542:7244:83;;-1:-1:-1;;542:7244:83;;;;;718:4:74;;4951:18:26;4979:67;;718:4:74;:::i;:::-;5066:101:26;;542:7244:83;5066:101:26;-1:-1:-1;;;;;;;;;;;542:7244:83;;-1:-1:-1;;;;542:7244:83;;;;;-1:-1:-1;542:7244:83;;5142:14:26;;542:7244:83;;5142:14:26;542:7244:83;4979:67:26;-1:-1:-1;;;;;;;;;;;542:7244:83;;-1:-1:-1;;;;542:7244:83;-1:-1:-1;;;542:7244:83;;;718:4:74;:::i;4851:91:26:-;542:7244:83;;-1:-1:-1;;;4908:23:26;;542:7244:83;;4908:23:26;4855:30;4872:13;;;4855:30;;;4790:50;4818:4;4810:25;:30;;-1:-1:-1;4790:50:26;;4726:34;;;-1:-1:-1;4726:34:26;;542:7244:83;;;;;;-1:-1:-1;;542:7244:83;;;;;;;1253:6:81;542:7244:83;;;;;-1:-1:-1;;542:7244:83;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;542:7244:83;;;;;;;;;:::i;:::-;;;;;1997:60;542:7244;;;:::i;:::-;;-1:-1:-1;542:7244:83;1997:13;542:7244;;;-1:-1:-1;542:7244:83;1997:60;:::i;542:7244::-;;;;;;-1:-1:-1;;542:7244:83;;;;;;;1356:26:81;542:7244:83;;;;;;;;;-1:-1:-1;;542:7244:83;;;;;;;810:35;542:7244;;;;;;;;;-1:-1:-1;;542:7244:83;;;;;;;;-1:-1:-1;;;;;542:7244:83;;;;;;;;;;;;;2512:74;542:7244;;;:::i;:::-;;-1:-1:-1;542:7244:83;;;;;-1:-1:-1;542:7244:83;2512:74;:::i;542:7244::-;;;;;;-1:-1:-1;;542:7244:83;;;;;;3901:31:24;542:7244:83;;;;;:::i;:::-;;;-1:-1:-1;542:7244:83;-1:-1:-1;;;;;;;;;;;542:7244:83;;;-1:-1:-1;542:7244:83;;;;;;;;;;;;;;;;;3901:31:24;542:7244:83;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;542:7244:83;;;;-1:-1:-1;542:7244:83;;;477:31:80;542:7244:83;;;;;;:::i;:::-;;;;;;;;;;;;;;;416:25:80;;;;542:7244:83;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;-1:-1:-1;542:7244:83;;;;;;;;;;;;;477:31:80;;542:7244:83;;;;;;;;;;:::i;:::-;477:31:80;542:7244:83;;477:31:80;;;;;;:::i;:::-;518:79;;;542:7244:83;518:79:80;;542:7244:83;;;;;;;;;;;-1:-1:-1;;542:7244:83;;;;;;;;;;;;;;;;;-1:-1:-1;;542:7244:83;;;;;;;;;;;:::i;:::-;;;3202:4:24;;;:::i;:::-;-1:-1:-1;542:7244:83;;;3358:22;542:7244;;;;;;;;-1:-1:-1;;;;;542:7244:83;;;;;;;;;3358:53;;;:::i;:::-;4249:32;;;4245:82;;4596:54;542:7244;4337:158;4596:54;542:7244;;-1:-1:-1;542:7244:83;;;;;-1:-1:-1;542:7244:83;837:15:63;4413:72:83;837:15:63;4413:63:83;819:34:63;837:15;819:34;:::i;:::-;2776:39:83;:48;:39;;542:7244;;;;;;;;;;2776:48;4413:63;:::i;:::-;:72;:::i;:::-;4337:158;;:::i;:::-;4505:34;;:75;:34;:44;:34;;;542:7244;;3358:22;542:7244;;;;;;;4505:34;542:7244;;;;;;;;;;;;;;;;4505:75;-1:-1:-1;;542:7244:83;;;;;-1:-1:-1;;;;;542:7244:83;;;;;;;;;;4596:54;;;;542:7244;;;;;;;-1:-1:-1;;542:7244:83;;;;;;;-1:-1:-1;;;;;404:28:74;542:7244:83;;;;;;;;;;-1:-1:-1;;542:7244:83;;;;;;1439:41:81;-1:-1:-1;;;;;542:7244:83;;;;;;;;;;;;-1:-1:-1;;542:7244:83;;;;;;-1:-1:-1;542:7244:83;;;;;2776:48;542:7244;-1:-1:-1;542:7244:83;2776:48;:::i;542:7244::-;;;;;;-1:-1:-1;;542:7244:83;;;;;;-1:-1:-1;542:7244:83;2009:67:81;542:7244:83;;;;-1:-1:-1;542:7244:83;;;;;;;;;;;;;;-1:-1:-1;;542:7244:83;;;;5767:26:24;542:7244:83;;;;;;;:::i;:::-;;-1:-1:-1;542:7244:83;-1:-1:-1;;;;;;;;;;;542:7244:83;;3202:4:24;4919:24;542:7244:83;-1:-1:-1;542:7244:83;4919:24:24;542:7244:83;3202:4:24;:::i;:::-;5767:26;:::i;542:7244:83:-;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;-1:-1:-1;;542:7244:83;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;-1:-1:-1;;;;;542:7244:83;;;;;;;;;;;;:::i;:::-;3217:103:29;;:::i;:::-;-1:-1:-1;542:7244:83;;;5246:21:81;;:13;;-1:-1:-1;;;;;542:7244:83;5246:13:81;542:7244:83;;-1:-1:-1;;;;;542:7244:83;;;5246:21:81;542:7244:83;;-1:-1:-1;;;5246:23:81;;542:7244:83;;;;;5246:23:81;;;;;;;-1:-1:-1;5246:23:81;;;542:7244:83;-1:-1:-1;;;;;;542:7244:83;;;5232:10:81;:37;5228:87;;5341:4;542:7244:83;-1:-1:-1;;;;;542:7244:83;;;;5355:469:81;;542:7244:83;-1:-1:-1;;542:7244:83;;;;;;;;;;;;;;;;5839:55:81;;542:7244:83;;;;5839:55:81;;;;3282:1:29;1805;-1:-1:-1;;;;;;;;;;;542:7244:83;3716:283:29;5355:469:81;542:7244:83;;;;5435:94:81;;;;542:7244:83;5435:94:81;;;;;;;;;;;;542:7244:83;5435:94:81;;;:::i;:::-;;542:7244:83;;5435:94:81;;;;;;:::i;:::-;542:7244:83;5548:9:81;:51;5544:118;;-1:-1:-1;5839:55:81;5676:138;;;;5839:55;5676:138;;;1150:7;5676:138;;5355:469;;;5544:118;542:7244:83;;-1:-1:-1;;;5626:21:81;;542:7244:83;;5626:21:81;5228:87;542:7244:83;;-1:-1:-1;;;5292:12:81;;542:7244:83;;5292:12:81;5246:23;;;;;542:7244:83;5246:23:81;542:7244:83;5246:23:81;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;542:7244:83;;;;;;-1:-1:-1;;542:7244:83;;;;;;;971:45;542:7244;;;;;;;;;-1:-1:-1;;542:7244:83;;;;;;;;-1:-1:-1;;;;;542:7244:83;;;;;;;;;;;;;;-1:-1:-1;;542:7244:83;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;-1:-1:-1;;542:7244:83;;;;;;;1150:7:81;542:7244:83;;;;;;;;;-1:-1:-1;;542:7244:83;;;;;;;2700:1:81;542:7244:83;;;2897:279;-1:-1:-1;542:7244:83;;;3090:22;542:7244;;;;;;;;-1:-1:-1;;;;;542:7244:83;;;;;;;;;3090:79;;2897:279;;3090:79;:::i;542:7244::-;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;1869:195;;1997:60;1869:195;;-1:-1:-1;542:7244:83;1997:13;542:7244;;;-1:-1:-1;542:7244:83;1997:60;:::i;2340:253::-;;2512:74;2340:253;;-1:-1:-1;542:7244:83;2512:27;542:7244;;;-1:-1:-1;542:7244:83;2512:74;:::i;542:7244::-;;;;;;;;;;;;;;;;;-1:-1:-1;542:7244:83;;;;;;;;-1:-1:-1;;542:7244:83;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;542:7244:83;;;;;;;;:::o;:::-;;:::i;:::-;;;;;;;;;;:::o;:::-;;9856:1:61;542:7244:83;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;542:7244:83;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;;;;542:7244:83;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::o;:::-;-1:-1:-1;;;;;542:7244:83;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;2764:920:81:-;;2978:48;2764:920;;;;2978:48;;;;:::i;:::-;3036:36;;;542:7244:83;;:::i;:::-;;;;3086:20:81;3082:107;;2764:920;3216:11;;;;:193;;;;;2764:920;3216:394;;;;2764:920;3199:455;;;;;;2764:920;:::o;3199:455::-;3635:8;-1:-1:-1;3635:8:81;:::o;3216:394::-;3553:39;;;;;3430:180;3553:39;;;542:7244:83;;;;;;;;;;3430:180:81;;467:2:93;542:7244:83;3430:180:81;;;;;:::i;:::-;;542:7244:83;3444:31:81;-1:-1:-1;;;;;542:7244:83;3430:180:81;;;;;;;-1:-1:-1;3430:180:81;;;3216:394;3429:181;;3216:394;;;;;;3430:180;;;;3553:39;3430:180;3553:39;3430:180;;;;;;;:::i;:::-;;;;3216:193;-1:-1:-1;542:7244:83;;;-1:-1:-1;;;;;;542:7244:83;3248:161:81;3354:37;;;542:7244:83;3248:161:81;542:7244:83;;;;;;;;;;3248:161:81;;;;;;;:::i;:::-;;542:7244:83;3262:29:81;-1:-1:-1;;;;;542:7244:83;3248:161:81;;;;;;;-1:-1:-1;3248:161:81;;;3216:193;3247:162;;3216:193;;;3248:161;;;;;;;;;;;;;;:::i;:::-;;;;3082:107;3139:39;;;;;;;;;;;;;:::i;:::-;3082:107;;;;;542:7244:83;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::o;:::-;;;;;;;;;;;;3740:389:81;3918:5;542:7244:83;;;-1:-1:-1;;;3853:71:81;;;-1:-1:-1;;;;;542:7244:83;;;3853:71:81;;;542:7244:83;;;;;;;;3740:389:81;;542:7244:83;3853:71:81;;542:7244:83;;3853:71:81;542:7244:83;;;3867:29:81;542:7244:83;;3853:71:81;;;;;;;3918:5;3853:71;;;3740:389;3852:72;;542:7244:83;;;3852:181:81;;3740:389;3835:242;;;;;;4094:28;;;:::i;3835:242::-;4058:8;;3918:5;4058:8;:::o;3852:181::-;542:7244:83;;3945:88:81;;;-1:-1:-1;;;;;542:7244:83;;3853:71:81;3945:88;;542:7244:83;467:2:93;542:7244:83;;;;;;;;-1:-1:-1;542:7244:83;;;;;;;;3959:31:81;542:7244:83;3945:88:81;;;;;;;3918:5;3945:88;;;3852:181;3944:89;;;3852:181;;;;;3945:88;;;;;;-1:-1:-1;3945:88:81;;;;;;:::i;:::-;;;;;3853:71;;;;;;;;;;;;;;:::i;:::-;;;;4148:103:24;966:10:28;-1:-1:-1;542:7244:83;;;;;;;;;810:35;;542:7244;;3901:31:24;542:7244:83;;4468:23:24;4464:108;;4148:103;:::o;:::-;966:10:28;-1:-1:-1;542:7244:83;;;;;;;;;971:45;;542:7244;;3901:31:24;542:7244:83;4148:103:24;-1:-1:-1;542:7244:83;;;-1:-1:-1;;;;;;;;;;;542:7244:83;;;;;;;;966:10:28;542:7244:83;;;;;;;;;3901:31:24;542:7244:83;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;542:7244:83;;-1:-1:-1;542:7244:83;;;-1:-1:-1;542:7244:83;:::o;:::-;;:::i;:::-;;;;;-1:-1:-1;;;542:7244:83;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;6246:584:91;;;;;6360:12;;;542:7244:83;;;6360:24:91;;6356:75;;6246:584;6474:30;;;;;:::i;:::-;542:7244:83;;;;;;6578:12:91;;;;:::i;:::-;6604:24;;;;6246:584;-1:-1:-1;6600:188:91;;;-1:-1:-1;;;;;542:7244:83;;;;;;;6644:21:91;;;:29;:21;;:::i;:29::-;6798:25;6246:584;:::o;6600:188::-;6753:24;;542:7244:83;;8167:38:61;;-1:-1:-1;;;;;542:7244:83;;;;;8167:38:61;:::i;:::-;6753:24:91;;;:::i;6604:::-;542:7244:83;;;;;;6614:14:91;;-1:-1:-1;6604:24:91;;;6356:75;-1:-1:-1;;;542:7244:83;;;;;;6360:12:91;542:7244:83;;;;;;;:::i;:::-;;;;;;;;;;;;;;6356:75:91;;;542:7244:83;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;:::o;7558:604:91:-;;542:7244:83;;7686:17:91;7682:83;;542:7244:83;7789:27:91;542:7244:83;7789:27:91;542:7244:83;;7789:27:91;;;;;;:::i;:::-;7860:14;;;;;:::i;:::-;542:7244:83;;;;;;;;;;;;;;;;7888:22:91;;;7884:77;;7975:21;-1:-1:-1;7975:84:91;;;;7558:604;7971:139;;;;8127:28;;;;:::i;7971:139::-;8082:17;;7789:27;8082:17;542:7244:83;8075:24:91;:::o;7975:84::-;542:7244:83;;;8009:16:91;542:7244:83;;8009:16:91;:::i;:::-;542:7244:83;;;8001:24:91;:57;;;;;7975:84;;;;;;;8001:57;8029:29;8038:8;;;8029:18;8038:8;8029:23;8038:8;;:::i;:::-;8029:18;;:::i;:::-;542:7244:83;;;;;8029:23:91;542:7244:83;;;;8029:29:91;;8001:57;;;;7884:77;7933:17;;;;;7789:27;7933:17;542:7244:83;7926:24:91;:::o;7682:83::-;7726:28;;;;:::i;3326:384:29:-;-1:-1:-1;;;;;;;;;;;1847:1:29;542:7244:83;;3526:20:29;3522:88;;1847:1;542:7244:83;;3326:384:29:o;3522:88::-;542:7244:83;;-1:-1:-1;;;3569:30:29;;;;;6196:308:83;;542:7244;-1:-1:-1;542:7244:83;6327:13;542:7244;;;-1:-1:-1;542:7244:83;11124:30:91;;;;:::i;:::-;11173;;;-1:-1:-1;11173:30:91;;;;11182:17;;-1:-1:-1;;;;;542:7244:83;;11182:12:91;;:17;:::i;:::-;542:7244:83;;;6327:13;542:7244;;11173:30:91;6385::83;;;11173::91;6381:117:83;;;;6196:308;;:::o;6381:117::-;6431:56;542:7244;-1:-1:-1;542:7244:83;6327:13;542:7244;;;-1:-1:-1;542:7244:83;819:34:63;837:15;819:34;:::i;6431:56:83:-;6196:308;;:::o;6385:30::-;6395:20;;-1:-1:-1;6385:30:83;;;;11173::91;;;-1:-1:-1;11173:30:91;;7270:387:24;-1:-1:-1;;;;;542:7244:83;;-1:-1:-1;542:7244:83;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2887:71:24;542:7244:83;;;;-1:-1:-1;542:7244:83;;;;;;;;;;;-1:-1:-1;;;;;542:7244:83;;;;;;;;;;-1:-1:-1;;542:7244:83;7509:4:24;542:7244:83;;;966:10:28;;-1:-1:-1;;;;;542:7244:83;-1:-1:-1;7532:40:24;-1:-1:-1;;7532:40:24;7509:4;7586:11;:::o;7270:387::-;-1:-1:-1;;;;;542:7244:83;;-1:-1:-1;542:7244:83;;;;;;;;;1356:26:81;;-1:-1:-1;;;;;;;;;;;2887:71:24;542:7244:83;;3901:31:24;542:7244:83;;;;-1:-1:-1;542:7244:83;;;;;;;;;;;-1:-1:-1;;;;;542:7244:83;;;;;;;;;;-1:-1:-1;;542:7244:83;7509:4:24;542:7244:83;;;966:10:28;;-1:-1:-1;;;;;542:7244:83;;7532:40:24;-1:-1:-1;;7532:40:24;7509:4;7586:11;:::o;7432:219::-;7628:12;;;-1:-1:-1;7628:12:24;:::o;7270:387::-;-1:-1:-1;;;;;542:7244:83;;-1:-1:-1;542:7244:83;;;;;;;;;810:35;;-1:-1:-1;;;;;;;;;;;2887:71:24;542:7244:83;;3901:31:24;542:7244:83;7270:387:24;-1:-1:-1;;;;;542:7244:83;;-1:-1:-1;542:7244:83;;;;;;;;;971:45;;-1:-1:-1;;;;;;;;;;;2887:71:24;542:7244:83;;3901:31:24;542:7244:83;7270:387:24;-1:-1:-1;542:7244:83;;;-1:-1:-1;;;;;;;;;;;542:7244:83;;;;;;;;-1:-1:-1;;;;;542:7244:83;;;;;;;;;;;;3901:31:24;542:7244:83;7892:388:24;-1:-1:-1;542:7244:83;;;-1:-1:-1;;;;;;;;;;;542:7244:83;;;;;;;;-1:-1:-1;;;;;542:7244:83;;;;;;;;;;;;;;;;-1:-1:-1;542:7244:83;;;;;;;;;;;-1:-1:-1;;;;;542:7244:83;;;;;;;;;;-1:-1:-1;;542:7244:83;;;966:10:28;;-1:-1:-1;;;;;542:7244:83;;8155:40:24;-1:-1:-1;;8155:40:24;542:7244:83;8209:11:24;:::o;10580:184:91:-;542:7244:83;;10303:8:61;;;:63;-1:-1:-1;10303:63:61;-1:-1:-1;;;;;542:7244:83;;10726:7:91;542:7244:83;;10736:12:91;:17;:12;;:17;:::i;:::-;542:7244:83;;;;;;10580:184:91;:::o;10303:63:61:-;542:7244:83;;;;;;;;;;14249:109:61;-1:-1:-1;14249:109:61;;-1:-1:-1;14249:109:61;;;542:7244:83;;;10303:63:61;;542:7244:83;;;;;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;542:7244:83;;;;;;;;:::i;5907:716:81:-;6030:34;5907:716;6030:34;;;;:::i;:::-;542:7244:83;;-1:-1:-1;;;6080:41:81;;-1:-1:-1;;;;;542:7244:83;;;6080:41:81;;;542:7244:83;;;;;6080:41:81;542:7244:83;;;6090:13:81;542:7244:83;;6080:41:81;;;;;;;-1:-1:-1;6080:41:81;;;5907:716;6079:42;;6075:90;;6266:27;542:7244:83;2540:111:29;6210:14:81;542:7244:83;2540:111:29;;;:::i;:::-;542:7244:83;;;;;;-1:-1:-1;;;;;542:7244:83;;-1:-1:-1;542:7244:83;;;-1:-1:-1;542:7244:83;;6210:14:81;6266:27;:::i;:::-;6080:41;6311:15;;542:7244:83;;;;-1:-1:-1;;;;;;542:7244:83;-1:-1:-1;;;;;542:7244:83;;;;;;;;;;;-1:-1:-1;;;;;542:7244:83;;;;6337:143:81;;5907:716;-1:-1:-1;6493:28:81;542:7244:83;-1:-1:-1;;;;;542:7244:83;;;;;;;6489:128:81;;5907:716;:::o;6489:128::-;6551:55;;;:::i;:::-;;5907:716::o;6337:143::-;6404:65;;;:::i;:::-;;6337:143;;;6075:90;542:7244:83;;-1:-1:-1;;;6144:10:81;;6080:41;;6144:10;6080:41;;;;;;;;;;;;;;:::i;:::-;;;;542:7244:83;;;;;;;;;;-1:-1:-1;;;;;542:7244:83;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;;;;542:7244:83;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;:::i;4663:1079::-;;;;;542:7244;;:::i;:::-;;;;4903:16;4899:92;;4663:1079;5105:42;;5053:95;5105:42;;;;5053:95;;;:::i;:::-;5165:570;:34;;;5218:21;;;;;;5165:570;-1:-1:-1;5158:577:83;4663:1079;:::o;5165:570::-;5273:95;5431:67;5330:37;;;;;;5273:95;;;:::i;:::-;542:7244;5470:27;5431;:13;542:7244;-1:-1:-1;542:7244:83;;;;;;;;;5431:27;5470;;;;542:7244;;;;;;;;;;;5431:67;;;;;;;:::i;:::-;;;;;;;;;5273:409;5431:67;5397:216;5431:67;-1:-1:-1;5431:67:83;;;5165:570;5562:28;5524:67;5562:28;;542:7244;5562:28;;;5524:67;;:::i;:::-;5397:216;;:::i;:::-;5273:409;;:::i;:::-;5700:21;;4663:1079;:::o;5431:67::-;5524;5431;;;;5470:27;5431:67;5470:27;5431:67;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;4899:92;4949:31;;;;;;;;;;;;;:::i;:::-;4899:92;;;;;5748:442;;2776:48;:39;;542:7244;;;;;;;;;;2776:48;5946:237;:32;;;:237;;;-1:-1:-1;5748:442:83;:::o;5946:237::-;3358:44;:53;:34;;;542:7244;;3358:22;542:7244;;;;;;;3358:53;-1:-1:-1;542:7244:83;;;-1:-1:-1;;;6086:27:83;;542:7244;6086:27;;542:7244;;2776:27;;542:7244;;-1:-1:-1;;;;;542:7244:83;6086:27;;;;;;6009:174;6086:27;6077:63;6086:27;-1:-1:-1;6086:27:83;;;5946:237;2233:25;;:34;:25;542:7244;;2233:13;542:7244;;;;;;;6086:27;2233:34;6086:27;;;;2233:25;6086:27;;;;;;;;;;;:::i;:::-;;;;;;14291:213:59;542:7244:83;14369:24:59;;;;14365:103;;542:7244:83;14291:213:59;:::o;14365:103::-;542:7244:83;;;;14416:41:59;;;;;;14447:2;14416:41;;;542:7244:83;;;;;14416:41:59;542:7244:83;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::o;10552:388:61:-;542:7244:83;;10728:8:61;;;10752:20;;10690:17;10752:20;10690:17;10752:20;10690:17;10752:20;:::o;10724:210::-;542:7244:83;;;;;;;;;;;14249:109:61;10690:17;14249:109;;10690:17;14249:109;;;542:7244:83;:::i;:::-;;;;;;;14249:109:61;542:7244:83;;;;;10911:11:61;;542:7244:83;;10886:37:61;10870:1;10886:37;;;:::o;6999:207:91:-;;542:7244:83;;9594:15:61;-1:-1:-1;9619:18:61;9652:7;9658:1;9652:7;;9648:234;;6999:207:91;9906:53:61;;;;;:::i;:::-;9977:8;;;:63;-1:-1:-1;9977:63:61;;-1:-1:-1;;;;;542:7244:83;;7168:7:91;542:7244:83;;;7178:12:91;;:17;:12;;:17;:::i;9977:63:61:-;9992:41;10025:7;9992:48;10025:7;;:::i;:::-;9992:41;14249:109;;;;;;14099:265;;9992:41;542:7244:83;;;;;9992:48:61;9977:63;;;9648:234;9695:14;;;;;:::i;:::-;542:7244:83;;;;;;;9906:53:61;14249:109;;-1:-1:-1;14249:109:61;542:7244:83;14249:109:61;;;-1:-1:-1;14249:109:61;;542:7244:83;;;;;9727:48:61;9723:149;542:7244:83;;;9795:10:61;9723:149;9648:234;;9723:149;9850:7;;;;;;:::i;:::-;9723:149;9648:234;;542:7244:83;;;;;;;:::i;:::-;-1:-1:-1;542:7244:83;;;;;;;:::o;11486:272:91:-;;542:7244:83;11308:22:61;11718:31:91;11486:272;542:7244:83;;:::i;:::-;;;;:::i;:::-;;11308:22:61;;:::i;:::-;542:7244:83;;:::i;:::-;;11718:12:91;542:7244:83;;;;;11731:17:91;542:7244:83;;;;;11731:17:91;;542:7244:83;;11718:12:91;;:31;:::i;:::-;542:7244:83;;;;;;;;;:::i;:::-;;;;;;11731:17:91;11672:79;;542:7244:83;11486:272:91;:::o;6893:76:26:-;;;:::i;:::-;;;:::i;:::-;1805:1:29;-1:-1:-1;;;;;;;;;;;542:7244:83;6893:76:26:o;542:7244:83:-;;;;;;;:::i;:::-;-1:-1:-1;542:7244:83;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;-1:-1:-1;;;;;542:7244:83;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;542:7244:83;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;6510:1274::-;6658:30;6510:1274;542:7244;;:::i;:::-;;6658:30;542:7244;;;6658:30;;;;;;:::i;:::-;6716:17;;542:7244;6716:17;;542:7244;-1:-1:-1;;;;;542:7244:83;6716:54;;:179;;6510:1274;6699:259;;6973:9;6658:30;6988:33;;;6716:17;7030:3;6988:33;;542:7244;;6984:44;;;;;7053:36;;;:50;:36;;:::i;:::-;542:7244;-1:-1:-1;;;;;542:7244:83;;;7053:50;;7049:119;;7186:73;7187:72;7222:36;;:33;;;:36;:::i;:::-;7187:72;:::i;:::-;7186:73;;542:7244;7186:73;7182:140;;542:7244;;6973:9;;7182:140;542:7244;;-1:-1:-1;;;7286:21:83;;;;;7049:119;542:7244;;-1:-1:-1;;;7130:23:83;;;;;6984:44;-1:-1:-1;7362:42:83;;-1:-1:-1;;7362:42:83;;;;6716:17;7413:3;7362:42;;542:7244;;7358:53;;;;;7436:45;;;:59;:45;;:::i;:59::-;;7432:128;;7578:92;7579:91;7624:45;;:42;;;:45;:::i;:::-;7579:91;:::i;7578:92::-;7574:159;;542:7244;;7347:9;;7574:159;542:7244;;-1:-1:-1;;;7697:21:83;;;;;7432:128;542:7244;;-1:-1:-1;;;7522:23:83;;;;;7358:53;;;;;;7760:17;6510:1274;:::o;6699:259::-;542:7244;;-1:-1:-1;;;6927:20:83;;;;;6716:179;6791:33;6658:30;6791:33;;;542:7244;6791:45;:103;6716:179;6791:103;6840:42;;;;;542:7244;6840:54;6716:179;;2557:104:58;;2641:5;;;;;;:13;2557:104;:::o;2641:13::-;;;2557:104;:::o;3803:4116::-;;;542:7244:83;;;;-1:-1:-1;;3803:4116:58;;4383:131;;;;;;;;;;;;4595:10;;4591:368;;5065:20;;;;5061:88;;5435:300;;;542:7244:83;-1:-1:-1;542:7244:83;5954:31:58;;5999:371;;;6813:1;542:7244:83;;6794:1:58;542:7244:83;6793:21:58;542:7244:83;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5999:371:58;;;;-1:-1:-1;5999:371:58;;;5435:300;;;;;;542:7244:83;5435:300:58;;5999:371;6436:21;542:7244:83;3803:4116:58;:::o;5061:88::-;542:7244:83;;-1:-1:-1;;;5112:22:58;;;;;4591:368;4925:19;;;;;;;:::i;542:7244:83:-;;;-1:-1:-1;;;542:7244:83;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;542:7244:83;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;11513:870:61;542:7244:83;;11513:870:61;;;542:7244:83;11513:870:61;11672:7;;;;542:7244:83;11775:28:61;11795:7;;;:::i;11775:28::-;542:7244:83;:::i;:::-;;;;;;;;;;;;;;;;11877:15:61;-1:-1:-1;11873:91:61;;542:7244:83;;12233:11:61;542:7244:83;;;12027:16:61;542:7244:83;;;;;;;12027:16:61;;;;12083:7;12063:43;12083:7;;12063:28;12083:7;;:::i;:::-;12063:28;14249:109;;;;;;14099:265;;12063:28;542:7244:83;;;;;;;;;;;;;;;;;12063:43:61;12233:11;542:7244:83;-1:-1:-1;;;;;542:7244:83;;;12023:189:61;542:7244:83;;;12145:52:61;542:7244:83;12155:41:61;542:7244:83;;:::i;:::-;;;;;;;;12155:41:61;-1:-1:-1;;;;;542:7244:83;;12155:41:61;;;542:7244:83;12145:52:61;:::i;:::-;12023:189;;11873:91;542:7244:83;;-1:-1:-1;;;11919:30:61;;;;;11668:709;12283:52;542:7244:83;;12293:41:61;542:7244:83;;:::i;12293:41:61:-;-1:-1:-1;;;;;542:7244:83;;12293:41:61;;;542:7244:83;12145:52:61;:::i;12283:::-;11678:1;12349:17;;:::o;7084:141:26:-;542:7244:83;-1:-1:-1;;;;;;;;;;;542:7244:83;;;;7150:18:26;7146:73;;7084:141::o;7146:73::-;542:7244:83;;-1:-1:-1;;;7191:17:26;;;;;8587:1642:58;8658:6;;8654:45;;9401:7;10201:10;10142:26;10093;10044;9995;9946;9897;9848;542:7244:83;10189:23:58;9401:7;8663:1;542:7244:83;;;;10826:16:58;10822:99;;8587:1642;542:7244:83;;;;10938:15:58;10934:96;;8587:1642;542:7244:83;;;;11047:15:58;11043:96;;8587:1642;542:7244:83;;;;11156:15:58;11152:96;;8587:1642;542:7244:83;;;;11265:14:58;11261:93;;8587:1642;542:7244:83;;;;11371:14:58;11367:93;;8587:1642;542:7244:83;;;;11477:14:58;11473:93;;8587:1642;542:7244:83;;;11579:64:58;;8587:1642;542:7244:83;;;9858:10:58;;;;:::i;:::-;542:7244:83;;;;;9848:26:58;9907:10;;;;:::i;9897:26::-;9956:10;;;;:::i;9946:26::-;10005:10;;;;:::i;9995:26::-;10054:10;;;;:::i;10044:26::-;10103:10;;;;:::i;10093:26::-;10152:10;;;;:::i;10142:26::-;10201:10;;;:::i;11579:64::-;542:7244:83;;11579:64:58;;11473:93;542:7244:83;11511:11:58;;542:7244:83;;11473:93:58;;;;11367;542:7244:83;11405:11:58;;542:7244:83;;11367:93:58;;;;11261;542:7244:83;11299:11:58;;542:7244:83;;11261:93:58;;;;11152:96;542:7244:83;11191:12:58;;542:7244:83;;11152:96:58;;;;11043;542:7244:83;11082:12:58;;542:7244:83;;11043:96:58;;;;10934;542:7244:83;10973:12:58;;542:7244:83;;10934:96:58;;;;10822:99;10862:13;;;542:7244:83;10822:99:58;;;;12736:433:61;;;12919:10;;;;;;13151:11;;;12736:433;:::o;12912:230::-;2900:5:58;;;;;;2910;;;;542:7244:83;;;;;;;;;14249:109:61;-1:-1:-1;14249:109:61;542:7244:83;14249:109:61;;;-1:-1:-1;14249:109:61;;542:7244:83;;;;;-1:-1:-1;12996:136:61;542:7244:83;;;13055:10:61;12996:136;;12912:230;;;;12996:136;13110:7;;;;;;:::i;:::-;12996:136;;","linkReferences":{},"immutableReferences":{"64520":[{"start":2023,"length":32}],"64523":[{"start":3882,"length":32}],"65474":[{"start":1638,"length":32},{"start":3939,"length":32}],"65477":[{"start":927,"length":32},{"start":8114,"length":32}],"65480":[{"start":995,"length":32},{"start":5626,"length":32},{"start":5911,"length":32}],"65483":[{"start":1508,"length":32},{"start":5473,"length":32},{"start":6037,"length":32}]}},"methodIdentifiers":{"DEFAULT_ADMIN_ROLE()":"a217fddf","FACTORY()":"2dd31000","HOOK_GAS_LIMIT()":"ff54740f","HOOK_RESERVE()":"557cab44","HOOK_SET_ROLE()":"6679191e","NETWORK_LIMIT_SET_ROLE()":"7d24bb27","NETWORK_REGISTRY()":"c0cd7c3e","OPERATOR_NETWORK_OPT_IN_SERVICE()":"1a80e500","OPERATOR_NETWORK_SHARES_SET_ROLE()":"e78eb6ae","OPERATOR_VAULT_OPT_IN_SERVICE()":"128e5d82","TYPE()":"bb24fe8a","VAULT_FACTORY()":"103f2907","VERSION()":"ffa1ad74","getRoleAdmin(bytes32)":"248a9ca3","grantRole(bytes32,address)":"2f2ff15d","hasRole(bytes32,address)":"91d14854","hook()":"7f5a7c7b","initialize(bytes)":"439fab91","maxNetworkLimit(bytes32)":"d15b740e","networkLimit(bytes32)":"3eb22c0f","networkLimitAt(bytes32,uint48,bytes)":"5d32a1c9","onSlash(bytes32,address,uint256,uint48,bytes)":"e49561ee","operatorNetworkShares(bytes32,address)":"42c53e33","operatorNetworkSharesAt(bytes32,address,uint48,bytes)":"1a7a7044","renounceRole(bytes32,address)":"36568abe","revokeRole(bytes32,address)":"d547741f","setHook(address)":"3dfd3873","setMaxNetworkLimit(uint96,uint256)":"23f752d5","setNetworkLimit(bytes32,uint256)":"02145348","setOperatorNetworkShares(bytes32,address,uint256)":"a33bc287","stake(bytes32,address)":"fd4d447c","stakeAt(bytes32,address,uint48,bytes)":"e02f6937","staticDelegateCall(address,bytes)":"9f86fd85","supportsInterface(bytes4)":"01ffc9a7","totalOperatorNetworkShares(bytes32)":"c43dc03f","totalOperatorNetworkSharesAt(bytes32,uint48,bytes)":"8b3f10b0","vault()":"fbfa77cf"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"networkRegistry\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"vaultFactory\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operatorVaultOptInService\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operatorNetworkOptInService\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"delegatorFactory\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"entityType\",\"type\":\"uint64\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"AccessControlBadConfirmation\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"neededRole\",\"type\":\"bytes32\"}],\"name\":\"AccessControlUnauthorizedAccount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AlreadySet\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CheckpointUnorderedInsertion\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"DuplicateRoleHolder\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ExceedsMaxNetworkLimit\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientHookGas\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MathOverflowedMulDiv\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MissingRoleHolders\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotNetwork\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotSlasher\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotVault\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ReentrancyGuardReentrantCall\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"bits\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"SafeCastOverflowedUintDowncast\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ZeroAddressRoleHolder\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint48\",\"name\":\"captureTimestamp\",\"type\":\"uint48\"}],\"name\":\"OnSlash\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"previousAdminRole\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"newAdminRole\",\"type\":\"bytes32\"}],\"name\":\"RoleAdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleRevoked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"hook\",\"type\":\"address\"}],\"name\":\"SetHook\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"SetMaxNetworkLimit\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"SetNetworkLimit\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"}],\"name\":\"SetOperatorNetworkShares\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DEFAULT_ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"FACTORY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"HOOK_GAS_LIMIT\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"HOOK_RESERVE\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"HOOK_SET_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"NETWORK_LIMIT_SET_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"NETWORK_REGISTRY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"OPERATOR_NETWORK_OPT_IN_SERVICE\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"OPERATOR_NETWORK_SHARES_SET_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"OPERATOR_VAULT_OPT_IN_SERVICE\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"TYPE\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"VAULT_FACTORY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"VERSION\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleAdmin\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"grantRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"hook\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"}],\"name\":\"maxNetworkLimit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"}],\"name\":\"networkLimit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hint\",\"type\":\"bytes\"}],\"name\":\"networkLimitAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint48\",\"name\":\"captureTimestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"onSlash\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"operatorNetworkShares\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hint\",\"type\":\"bytes\"}],\"name\":\"operatorNetworkSharesAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"callerConfirmation\",\"type\":\"address\"}],\"name\":\"renounceRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"hook_\",\"type\":\"address\"}],\"name\":\"setHook\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint96\",\"name\":\"identifier\",\"type\":\"uint96\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"setMaxNetworkLimit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"setNetworkLimit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"}],\"name\":\"setOperatorNetworkShares\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"stake\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hints\",\"type\":\"bytes\"}],\"name\":\"stakeAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"staticDelegateCall\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"}],\"name\":\"totalOperatorNetworkShares\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hint\",\"type\":\"bytes\"}],\"name\":\"totalOperatorNetworkSharesAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"vault\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"AccessControlBadConfirmation()\":[{\"details\":\"The caller of a function is not the expected one. NOTE: Don't confuse with {AccessControlUnauthorizedAccount}.\"}],\"AccessControlUnauthorizedAccount(address,bytes32)\":[{\"details\":\"The `account` is missing a role.\"}],\"CheckpointUnorderedInsertion()\":[{\"details\":\"A value was attempted to be inserted on a past checkpoint.\"}],\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"MathOverflowedMulDiv()\":[{\"details\":\"Muldiv operation overflow.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"ReentrancyGuardReentrantCall()\":[{\"details\":\"Unauthorized reentrant call.\"}],\"SafeCastOverflowedUintDowncast(uint8,uint256)\":[{\"details\":\"Value doesn't fit in an uint of `bits` size.\"}]},\"events\":{\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"OnSlash(bytes32,address,uint256,uint48)\":{\"params\":{\"amount\":\"amount of the collateral to be slashed\",\"captureTimestamp\":\"time point when the stake was captured\",\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"}},\"RoleAdminChanged(bytes32,bytes32,bytes32)\":{\"details\":\"Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole` `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite {RoleAdminChanged} not being emitted signaling this.\"},\"RoleGranted(bytes32,address,address)\":{\"details\":\"Emitted when `account` is granted `role`. `sender` is the account that originated the contract call, an admin role bearer except when using {AccessControl-_setupRole}.\"},\"RoleRevoked(bytes32,address,address)\":{\"details\":\"Emitted when `account` is revoked `role`. `sender` is the account that originated the contract call: - if using `revokeRole`, it is the admin role bearer - if using `renounceRole`, it is the role bearer (i.e. `account`)\"},\"SetHook(address)\":{\"params\":{\"hook\":\"address of the hook\"}},\"SetMaxNetworkLimit(bytes32,uint256)\":{\"params\":{\"amount\":\"new maximum subnetwork's limit (how much stake the subnetwork is ready to get)\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"}},\"SetNetworkLimit(bytes32,uint256)\":{\"params\":{\"amount\":\"new subnetwork's limit (how much stake the vault curator is ready to give to the subnetwork)\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"}},\"SetOperatorNetworkShares(bytes32,address,uint256)\":{\"params\":{\"operator\":\"address of the operator\",\"shares\":\"new operator's shares inside the subnetwork (what percentage, which is equal to the shares divided by the total operators' shares, of the subnetwork's stake the vault curator is ready to give to the operator)\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"}}},\"kind\":\"dev\",\"methods\":{\"VERSION()\":{\"details\":\"Must return 1 for this one.\",\"returns\":{\"_0\":\"version of the delegator\"}},\"getRoleAdmin(bytes32)\":{\"details\":\"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}.\"},\"grantRole(bytes32,address)\":{\"details\":\"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event.\"},\"hasRole(bytes32,address)\":{\"details\":\"Returns `true` if `account` has been granted `role`.\"},\"initialize(bytes)\":{\"params\":{\"data\":\"some data to use\"}},\"networkLimit(bytes32)\":{\"params\":{\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"},\"returns\":{\"_0\":\"limit of the subnetwork\"}},\"networkLimitAt(bytes32,uint48,bytes)\":{\"params\":{\"hint\":\"hint for checkpoint index\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\",\"timestamp\":\"time point to get the subnetwork limit at\"},\"returns\":{\"_0\":\"limit of the subnetwork at the given timestamp\"}},\"onSlash(bytes32,address,uint256,uint48,bytes)\":{\"details\":\"Only the vault's slasher can call this function.\",\"params\":{\"amount\":\"amount of the collateral slashed\",\"captureTimestamp\":\"time point when the stake was captured\",\"data\":\"some additional data\",\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"}},\"operatorNetworkShares(bytes32,address)\":{\"params\":{\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"},\"returns\":{\"_0\":\"shares of the operator for the subnetwork\"}},\"operatorNetworkSharesAt(bytes32,address,uint48,bytes)\":{\"params\":{\"hint\":\"hint for checkpoint index\",\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\",\"timestamp\":\"time point to get the operator's shares at\"},\"returns\":{\"_0\":\"shares of the operator for the subnetwork at the given timestamp\"}},\"renounceRole(bytes32,address)\":{\"details\":\"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `callerConfirmation`. May emit a {RoleRevoked} event.\"},\"revokeRole(bytes32,address)\":{\"details\":\"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event.\"},\"setHook(address)\":{\"details\":\"Only a HOOK_SET_ROLE holder can call this function. The hook can have arbitrary logic under certain functions, however, it doesn't affect the stake guarantees.\",\"params\":{\"hook\":\"address of the hook\"}},\"setMaxNetworkLimit(uint96,uint256)\":{\"details\":\"Only a network can call this function.\",\"params\":{\"amount\":\"new maximum subnetwork's limit\"}},\"setNetworkLimit(bytes32,uint256)\":{\"details\":\"Only a NETWORK_LIMIT_SET_ROLE holder can call this function.\",\"params\":{\"amount\":\"new limit of the subnetwork\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"}},\"setOperatorNetworkShares(bytes32,address,uint256)\":{\"details\":\"Only an OPERATOR_NETWORK_SHARES_SET_ROLE holder can call this function.\",\"params\":{\"operator\":\"address of the operator\",\"shares\":\"new shares of the operator for the subnetwork\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"}},\"stake(bytes32,address)\":{\"details\":\"Warning: this function is not safe to use for stake capturing, as it can change by the end of the block.\",\"params\":{\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"},\"returns\":{\"_0\":\"slashable stake until the end of the next epoch\"}},\"stakeAt(bytes32,address,uint48,bytes)\":{\"details\":\"Warning: it is not safe to use timestamp >= current one for the stake capturing, as it can change later.\",\"params\":{\"hints\":\"hints for the checkpoints' indexes\",\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\",\"timestamp\":\"time point to capture the stake at\"},\"returns\":{\"_0\":\"slashable stake at the given timestamp until the end of the consequent epoch\"}},\"staticDelegateCall(address,bytes)\":{\"details\":\"It allows to use this contract's storage on-chain.\",\"params\":{\"data\":\"data to make a delegatecall with\",\"target\":\"address of the contract to make a delegatecall to\"}},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"},\"totalOperatorNetworkShares(bytes32)\":{\"params\":{\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"},\"returns\":{\"_0\":\"total shares of the operators for the subnetwork\"}},\"totalOperatorNetworkSharesAt(bytes32,uint48,bytes)\":{\"params\":{\"hint\":\"hint for checkpoint index\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\",\"timestamp\":\"time point to get the total operators' shares at\"},\"returns\":{\"_0\":\"total shares of the operators for the subnetwork at the given timestamp\"}}},\"stateVariables\":{\"NETWORK_LIMIT_SET_ROLE\":{\"return\":\"identifier of the subnetwork limit setter role\",\"returns\":{\"_0\":\"identifier of the subnetwork limit setter role\"}},\"OPERATOR_NETWORK_SHARES_SET_ROLE\":{\"return\":\"identifier of the operator-subnetwork shares setter role\",\"returns\":{\"_0\":\"identifier of the operator-subnetwork shares setter role\"}}},\"version\":1},\"userdoc\":{\"events\":{\"OnSlash(bytes32,address,uint256,uint48)\":{\"notice\":\"Emitted when a slash happens.\"},\"SetHook(address)\":{\"notice\":\"Emitted when a hook is set.\"},\"SetMaxNetworkLimit(bytes32,uint256)\":{\"notice\":\"Emitted when a subnetwork's maximum limit is set.\"},\"SetNetworkLimit(bytes32,uint256)\":{\"notice\":\"Emitted when a subnetwork's limit is set.\"},\"SetOperatorNetworkShares(bytes32,address,uint256)\":{\"notice\":\"Emitted when an operator's shares inside a subnetwork are set.\"}},\"kind\":\"user\",\"methods\":{\"FACTORY()\":{\"notice\":\"Get the factory's address.\"},\"HOOK_GAS_LIMIT()\":{\"notice\":\"Get a gas limit for the hook.\"},\"HOOK_RESERVE()\":{\"notice\":\"Get a reserve gas between the gas limit check and the hook's execution.\"},\"HOOK_SET_ROLE()\":{\"notice\":\"Get a hook setter's role.\"},\"NETWORK_LIMIT_SET_ROLE()\":{\"notice\":\"Get a subnetwork limit setter's role.\"},\"NETWORK_REGISTRY()\":{\"notice\":\"Get the network registry's address.\"},\"OPERATOR_NETWORK_OPT_IN_SERVICE()\":{\"notice\":\"Get the operator-network opt-in service's address.\"},\"OPERATOR_NETWORK_SHARES_SET_ROLE()\":{\"notice\":\"Get an operator-subnetwork shares setter's role.\"},\"OPERATOR_VAULT_OPT_IN_SERVICE()\":{\"notice\":\"Get the operator-vault opt-in service's address.\"},\"TYPE()\":{\"notice\":\"Get the entity's type.\"},\"VAULT_FACTORY()\":{\"notice\":\"Get the vault factory's address.\"},\"VERSION()\":{\"notice\":\"Get a version of the delegator (different versions mean different interfaces).\"},\"hook()\":{\"notice\":\"Get the hook's address.\"},\"initialize(bytes)\":{\"notice\":\"Initialize this entity contract by using a given data.\"},\"maxNetworkLimit(bytes32)\":{\"notice\":\"Get a particular subnetwork's maximum limit (meaning the subnetwork is not ready to get more as a stake).\"},\"networkLimit(bytes32)\":{\"notice\":\"Get a subnetwork's limit (how much stake the vault curator is ready to give to the subnetwork).\"},\"networkLimitAt(bytes32,uint48,bytes)\":{\"notice\":\"Get a subnetwork's limit at a given timestamp using a hint (how much stake the vault curator is ready to give to the subnetwork).\"},\"onSlash(bytes32,address,uint256,uint48,bytes)\":{\"notice\":\"Called when a slash happens.\"},\"operatorNetworkShares(bytes32,address)\":{\"notice\":\"Get an operator's shares for a subnetwork (what percentage, which is equal to the shares divided by the total operators' shares, of the subnetwork's stake the vault curator is ready to give to the operator).\"},\"operatorNetworkSharesAt(bytes32,address,uint48,bytes)\":{\"notice\":\"Get an operator's shares for a subnetwork at a given timestamp using a hint (what percentage, which is equal to the shares divided by the total operators' shares, of the subnetwork's stake the vault curator is ready to give to the operator).\"},\"setHook(address)\":{\"notice\":\"Set a new hook.\"},\"setMaxNetworkLimit(uint96,uint256)\":{\"notice\":\"Set a maximum limit for a subnetwork (how much stake the subnetwork is ready to get). identifier identifier of the subnetwork\"},\"setNetworkLimit(bytes32,uint256)\":{\"notice\":\"Set a subnetwork's limit (how much stake the vault curator is ready to give to the subnetwork).\"},\"setOperatorNetworkShares(bytes32,address,uint256)\":{\"notice\":\"Set an operator's shares for a subnetwork (what percentage, which is equal to the shares divided by the total operators' shares, of the subnetwork's stake the vault curator is ready to give to the operator).\"},\"stake(bytes32,address)\":{\"notice\":\"Get a stake that a given subnetwork will be able to slash for a certain operator until the end of the next epoch (if no cross-slashing and no slashings by the subnetwork).\"},\"stakeAt(bytes32,address,uint48,bytes)\":{\"notice\":\"Get a stake that a given subnetwork could be able to slash for a certain operator at a given timestamp until the end of the consequent epoch using hints (if no cross-slashing and no slashings by the subnetwork).\"},\"staticDelegateCall(address,bytes)\":{\"notice\":\"Make a delegatecall from this contract to a given target contract with a particular data (always reverts with a return data).\"},\"totalOperatorNetworkShares(bytes32)\":{\"notice\":\"Get a sum of operators' shares for a subnetwork.\"},\"totalOperatorNetworkSharesAt(bytes32,uint48,bytes)\":{\"notice\":\"Get a sum of operators' shares for a subnetwork at a given timestamp using a hint.\"},\"vault()\":{\"notice\":\"Get the vault's address.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/contracts/delegator/NetworkRestakeDelegator.sol\":\"NetworkRestakeDelegator\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol\":{\"keccak256\":\"0x6662ec4e5cefca03eeadd073e9469df8d2944bb2ee8ec8f7622c2c46aab5f225\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4d8544c6f8daa4d1bc215c6a72fe0acdb748664a105b0e5efc19295667521d45\",\"dweb:/ipfs/QmdGWqdnXT8S3RgCR6aV8XHZrsybieMQLLnug1NtpSjEXN\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609\",\"dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9\",\"dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardUpgradeable.sol\":{\"keccak256\":\"0xb44e086e941292cdc7f440de51478493894ef0b1aeccb0c4047445919f667f74\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://942dad22fbdc1669f025540ba63aa3ccfad5f8458fc5d4525b31ebf272e7af45\",\"dweb:/ipfs/Qmdo4X2M82aM3AMoW2kf2jhYkSCyC4T1pHNd6obdsDFnAB\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol\":{\"keccak256\":\"0xdaba3f7c42c55b2896353f32bd27d4d5f8bae741b3b05d4c53f67abc4dc47ce8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1fa2e61141c602510bcd2cd936ed9561922ac8772a9b9c9a9db091a74e354a45\",\"dweb:/ipfs/QmcHQDDoEBwJmwUbzoVkytvJsBx3KVHYFFnDkvRGWh9Wmh\"]},\"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0xb6b36edd6a2999fd243ff226d6cbf84bd71af2432bbd0dfe19392996a1d9cb41\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1fd2f35495652e57e3f99bc6c510bc5f7dd398a176ea2e72d8ed730aebc6ca26\",\"dweb:/ipfs/QmTQV6X4gkikTib49cho5iDX3JvSQbdsoEChoDwrk3CbbH\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875\",\"dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0xe19a4d5f31d2861e7344e8e535e2feafb913d806d3e2b5fe7782741a2a7094fe\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4aed79c0fa6f0546ed02f2f683e8f77f0fd2ed7eb34d8bbf3d373c9a6d95b13c\",\"dweb:/ipfs/QmWqVz6UAVqmnWU5pqYPt1o6iDEZyPaBraAA3rKfTTSfYj\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/Checkpoints.sol\":{\"keccak256\":\"0xbdc5e074d7dd6678f67e92b1a51a20226801a407b0e1af3da367c5d1ff4519ad\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a36cca6b22fff3db16fc789ff6c60eea71d4b156065d4d0c83a0bc5e91a77a8b\",\"dweb:/ipfs/QmYN3exd5AemxjBrN8XMB1p5LbbE16uC3sjbYjwi8AjcGR\"]},\"lib/openzeppelin-contracts/contracts/utils/types/Time.sol\":{\"keccak256\":\"0xc7755af115020049e4140f224f9ee88d7e1799ffb0646f37bf0df24bf6213f58\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7f09bf94d5274334ec021f61a04659db303f31e60460e14b709c9bf187740111\",\"dweb:/ipfs/QmNvgomZYUwFAt4cZbPWAiTeSZQreGehY9BK5xyVJsUttb\"]},\"src/contracts/common/Entity.sol\":{\"keccak256\":\"0x3d61a932995b8443381f3950542d388223a2c26dd5d29a3274dea3baa7388bd7\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://7cdf5f03ca72fd263fd32ff59c8d88ddca911ae83896a287d10772c1bbe9b138\",\"dweb:/ipfs/QmbP84r5BWT1Rn9AYTntWSf3xUMTTCohTZJFhbBhDXFoHa\"]},\"src/contracts/common/StaticDelegateCallable.sol\":{\"keccak256\":\"0x350029aa8955eacaffffaeb58babc5c98e80ebc5c5db388ed17ee6465f4a9d90\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://eb392a8ee9050e0af606897df63e3404e3829e8b688b580663892f9664195764\",\"dweb:/ipfs/QmaXC8jqV8UrrAFkzXTEv2fJF56sy33HhLxAzaRZmUxuXD\"]},\"src/contracts/delegator/BaseDelegator.sol\":{\"keccak256\":\"0x7c54d491fdd4415b764a9c8defa068e56d4c0c8c9419be0053a1d377669290e8\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://9238bfbad0f6eeb0dc7727724de14380f1980b395902269703d5e2ef07e52e10\",\"dweb:/ipfs/QmPJn1V4HNXcEghYvogGuSTF24dSQUPosR5qtsXcmNqRm3\"]},\"src/contracts/delegator/NetworkRestakeDelegator.sol\":{\"keccak256\":\"0xd3a8e6522f9c6fdcc2da837c9023afd6bdff2bce45a35590320c475519e3636d\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://58b17a87f6554f08376f9ea7fedf486a4aa75801bf0ad8b23ff5a46959b6b7a3\",\"dweb:/ipfs/QmSTmNh67tYt8CmjVZb57r8N3qX5yeYdMApKPJm3qvQgQw\"]},\"src/contracts/libraries/Checkpoints.sol\":{\"keccak256\":\"0xba90097c8bfe0a975499428b5f8ac5569483c7d92ccc28c12d70de416aae040c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://12f5d93ca94cd06d3147db68993165a58e17903ed53682560de61f3085ad4609\",\"dweb:/ipfs/QmePiuAqvXprMLmFZkGZeGjvGPAvsEDHfCDv7BoQhXu9xE\"]},\"src/contracts/libraries/Subnetwork.sol\":{\"keccak256\":\"0xf5ef5506fd66082b3c2e7f3df37529f5a8efad32ac62e7c8914bd63219190bfe\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba031a54ee0d0e9a270c2b9e18437f5668cfeb659cfd5fe0677459d7fcac2a56\",\"dweb:/ipfs/QmReP3H7qQ78tAfgLnJKsNEQNCQfF1X1Get38Ffd4kzq32\"]},\"src/interfaces/common/IEntity.sol\":{\"keccak256\":\"0x8ef4b63d6da63489778ccd5f8d13ebdd527dd4b62730b2c616df5af7474d2d21\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a8d69576a9219d85c50816a18ad53a4d53cfcb27ed38b8cccc808dc2734b71b\",\"dweb:/ipfs/QmYVN3P4Q4REvBWJ97TbAcaxm3uyB2anV6NSGa6ZtSwcEv\"]},\"src/interfaces/common/IMigratableEntity.sol\":{\"keccak256\":\"0x8f5f2809f3afbe8ebfbb365dd7b57b4dd3b6f9943a6187eaf648d45895b8e3c4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ffe640537d539e7a4fde70d30d3e4c57f4ba9c2c25c450cea713aae38e8fd5c\",\"dweb:/ipfs/QmSUTGzvdcn1R1KB7tLThMRtESsfPbeXDhhhKWGtntzBds\"]},\"src/interfaces/common/IRegistry.sol\":{\"keccak256\":\"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014\",\"dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK\"]},\"src/interfaces/common/IStaticDelegateCallable.sol\":{\"keccak256\":\"0xa335d4e81b9071b7de66ef92b43ff20671d86516eb1be46fef29a3483cd3f5d5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d464b9db863c14c05547d2b23352f2e9b7b784799cf09f6bbc4906a2a74e3516\",\"dweb:/ipfs/QmUVWzFvJz7eEbDQKiFTTzwi7TEbjcs3VmwdM4kuptAKvi\"]},\"src/interfaces/delegator/IBaseDelegator.sol\":{\"keccak256\":\"0x96bb312f032e17accce3f8f80936d99468029d6b37c9ca74acdb4b026a0148ee\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2a66dcb5b7d1a6ef6a363431ea98ebd78bc4fdd3d7a134d9b542dc66e7d025c2\",\"dweb:/ipfs/QmRhTPLd2ZAyRHmJUFUcWKs9b3if49QY17LYZuRqWmghw8\"]},\"src/interfaces/delegator/IDelegatorHook.sol\":{\"keccak256\":\"0xc51aa8d7d1f6c8043ee819b7aeb86da0e993912e1442098df897e299f01f9f46\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://adddf5cb2ba282aeb576b26efb28640f865a1721cc9b6eee8b3ee0457a2c9780\",\"dweb:/ipfs/QmNYgAmnLRwWZbhTuQhZs9rx4zcme1df5mEepkrniorSoW\"]},\"src/interfaces/delegator/INetworkRestakeDelegator.sol\":{\"keccak256\":\"0xe7030fe30389a147fd710e3436ec346b4842695fd3e65a81b95375c9f1d633fc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://739c7e66d301778054f5c90bee45ec9438f68afba8a03eaaac52064c73b115ad\",\"dweb:/ipfs/QmfZ2ytKcTykAc76nxhg8ikUXV8NdBpetqb8W4YWPcox1Z\"]},\"src/interfaces/service/IOptInService.sol\":{\"keccak256\":\"0x76fb5460a6d87a5705433d4fbeff7253cd75b8bbd0c888b2088f16e86ace146a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://990322019b3d11465f7024bae77ccbf7e2fe5d6fa3c754584778f37d04fa1337\",\"dweb:/ipfs/QmaSNHzcqxTkUCG9a4nqVfLECHLdjdrwAnDi3yDC7tDL24\"]},\"src/interfaces/vault/IVault.sol\":{\"keccak256\":\"0xffee01d383cd4e1a5530c614bf4360c1ef070c288abec9da1eb531b51bc07235\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://04f0046cac285d8ec44ebbb1f79dc94fab4495767190cad8364fbc1fafaadfb9\",\"dweb:/ipfs/QmUawAunwzXfCyShWfhKeThAgKtqe51hmrxvrXvM772M2R\"]},\"src/interfaces/vault/IVaultStorage.sol\":{\"keccak256\":\"0x592626f13754194f83047135de19229c49390bd59e34659b1bb38be71d973a22\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://06a6a9dfddd05e580b32bebe2cff4f63ba26a653180676d58225dd30d9c89d3e\",\"dweb:/ipfs/QmdgzBeY6Sxo8mGtyBxtv1tM1c2kU6J6zjeRd7vuXm4DU6\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.25+commit.b61c2a91"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"networkRegistry","type":"address"},{"internalType":"address","name":"vaultFactory","type":"address"},{"internalType":"address","name":"operatorVaultOptInService","type":"address"},{"internalType":"address","name":"operatorNetworkOptInService","type":"address"},{"internalType":"address","name":"delegatorFactory","type":"address"},{"internalType":"uint64","name":"entityType","type":"uint64"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"AccessControlBadConfirmation"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bytes32","name":"neededRole","type":"bytes32"}],"type":"error","name":"AccessControlUnauthorizedAccount"},{"inputs":[],"type":"error","name":"AlreadySet"},{"inputs":[],"type":"error","name":"CheckpointUnorderedInsertion"},{"inputs":[],"type":"error","name":"DuplicateRoleHolder"},{"inputs":[],"type":"error","name":"ExceedsMaxNetworkLimit"},{"inputs":[],"type":"error","name":"InsufficientHookGas"},{"inputs":[],"type":"error","name":"InvalidInitialization"},{"inputs":[],"type":"error","name":"MathOverflowedMulDiv"},{"inputs":[],"type":"error","name":"MissingRoleHolders"},{"inputs":[],"type":"error","name":"NotInitialized"},{"inputs":[],"type":"error","name":"NotInitializing"},{"inputs":[],"type":"error","name":"NotNetwork"},{"inputs":[],"type":"error","name":"NotSlasher"},{"inputs":[],"type":"error","name":"NotVault"},{"inputs":[],"type":"error","name":"ReentrancyGuardReentrantCall"},{"inputs":[{"internalType":"uint8","name":"bits","type":"uint8"},{"internalType":"uint256","name":"value","type":"uint256"}],"type":"error","name":"SafeCastOverflowedUintDowncast"},{"inputs":[],"type":"error","name":"ZeroAddressRoleHolder"},{"inputs":[{"internalType":"uint64","name":"version","type":"uint64","indexed":false}],"type":"event","name":"Initialized","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32","indexed":true},{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false},{"internalType":"uint48","name":"captureTimestamp","type":"uint48","indexed":false}],"type":"event","name":"OnSlash","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"bytes32","name":"previousAdminRole","type":"bytes32","indexed":true},{"internalType":"bytes32","name":"newAdminRole","type":"bytes32","indexed":true}],"type":"event","name":"RoleAdminChanged","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"address","name":"sender","type":"address","indexed":true}],"type":"event","name":"RoleGranted","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"address","name":"sender","type":"address","indexed":true}],"type":"event","name":"RoleRevoked","anonymous":false},{"inputs":[{"internalType":"address","name":"hook","type":"address","indexed":true}],"type":"event","name":"SetHook","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"SetMaxNetworkLimit","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"SetNetworkLimit","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32","indexed":true},{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"uint256","name":"shares","type":"uint256","indexed":false}],"type":"event","name":"SetOperatorNetworkShares","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"DEFAULT_ADMIN_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"FACTORY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"HOOK_GAS_LIMIT","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"HOOK_RESERVE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"HOOK_SET_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"NETWORK_LIMIT_SET_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"NETWORK_REGISTRY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"OPERATOR_NETWORK_OPT_IN_SERVICE","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"OPERATOR_NETWORK_SHARES_SET_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"OPERATOR_VAULT_OPT_IN_SERVICE","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"TYPE","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"VAULT_FACTORY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"VERSION","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getRoleAdmin","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"grantRole"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"hasRole","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"hook","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"}],"stateMutability":"view","type":"function","name":"maxNetworkLimit","outputs":[{"internalType":"uint256","name":"value","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"}],"stateMutability":"view","type":"function","name":"networkLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"uint48","name":"timestamp","type":"uint48"},{"internalType":"bytes","name":"hint","type":"bytes"}],"stateMutability":"view","type":"function","name":"networkLimitAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint48","name":"captureTimestamp","type":"uint48"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"onSlash"},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"operatorNetworkShares","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint48","name":"timestamp","type":"uint48"},{"internalType":"bytes","name":"hint","type":"bytes"}],"stateMutability":"view","type":"function","name":"operatorNetworkSharesAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"callerConfirmation","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"renounceRole"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"revokeRole"},{"inputs":[{"internalType":"address","name":"hook_","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setHook"},{"inputs":[{"internalType":"uint96","name":"identifier","type":"uint96"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setMaxNetworkLimit"},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setNetworkLimit"},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint256","name":"shares","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setOperatorNetworkShares"},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"stake","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint48","name":"timestamp","type":"uint48"},{"internalType":"bytes","name":"hints","type":"bytes"}],"stateMutability":"view","type":"function","name":"stakeAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"staticDelegateCall"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"}],"stateMutability":"view","type":"function","name":"totalOperatorNetworkShares","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"uint48","name":"timestamp","type":"uint48"},{"internalType":"bytes","name":"hint","type":"bytes"}],"stateMutability":"view","type":"function","name":"totalOperatorNetworkSharesAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"vault","outputs":[{"internalType":"address","name":"","type":"address"}]}],"devdoc":{"kind":"dev","methods":{"VERSION()":{"details":"Must return 1 for this one.","returns":{"_0":"version of the delegator"}},"getRoleAdmin(bytes32)":{"details":"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}."},"grantRole(bytes32,address)":{"details":"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event."},"hasRole(bytes32,address)":{"details":"Returns `true` if `account` has been granted `role`."},"initialize(bytes)":{"params":{"data":"some data to use"}},"networkLimit(bytes32)":{"params":{"subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"},"returns":{"_0":"limit of the subnetwork"}},"networkLimitAt(bytes32,uint48,bytes)":{"params":{"hint":"hint for checkpoint index","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)","timestamp":"time point to get the subnetwork limit at"},"returns":{"_0":"limit of the subnetwork at the given timestamp"}},"onSlash(bytes32,address,uint256,uint48,bytes)":{"details":"Only the vault's slasher can call this function.","params":{"amount":"amount of the collateral slashed","captureTimestamp":"time point when the stake was captured","data":"some additional data","operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"}},"operatorNetworkShares(bytes32,address)":{"params":{"operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"},"returns":{"_0":"shares of the operator for the subnetwork"}},"operatorNetworkSharesAt(bytes32,address,uint48,bytes)":{"params":{"hint":"hint for checkpoint index","operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)","timestamp":"time point to get the operator's shares at"},"returns":{"_0":"shares of the operator for the subnetwork at the given timestamp"}},"renounceRole(bytes32,address)":{"details":"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `callerConfirmation`. May emit a {RoleRevoked} event."},"revokeRole(bytes32,address)":{"details":"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event."},"setHook(address)":{"details":"Only a HOOK_SET_ROLE holder can call this function. The hook can have arbitrary logic under certain functions, however, it doesn't affect the stake guarantees.","params":{"hook":"address of the hook"}},"setMaxNetworkLimit(uint96,uint256)":{"details":"Only a network can call this function.","params":{"amount":"new maximum subnetwork's limit"}},"setNetworkLimit(bytes32,uint256)":{"details":"Only a NETWORK_LIMIT_SET_ROLE holder can call this function.","params":{"amount":"new limit of the subnetwork","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"}},"setOperatorNetworkShares(bytes32,address,uint256)":{"details":"Only an OPERATOR_NETWORK_SHARES_SET_ROLE holder can call this function.","params":{"operator":"address of the operator","shares":"new shares of the operator for the subnetwork","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"}},"stake(bytes32,address)":{"details":"Warning: this function is not safe to use for stake capturing, as it can change by the end of the block.","params":{"operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"},"returns":{"_0":"slashable stake until the end of the next epoch"}},"stakeAt(bytes32,address,uint48,bytes)":{"details":"Warning: it is not safe to use timestamp >= current one for the stake capturing, as it can change later.","params":{"hints":"hints for the checkpoints' indexes","operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)","timestamp":"time point to capture the stake at"},"returns":{"_0":"slashable stake at the given timestamp until the end of the consequent epoch"}},"staticDelegateCall(address,bytes)":{"details":"It allows to use this contract's storage on-chain.","params":{"data":"data to make a delegatecall with","target":"address of the contract to make a delegatecall to"}},"supportsInterface(bytes4)":{"details":"See {IERC165-supportsInterface}."},"totalOperatorNetworkShares(bytes32)":{"params":{"subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"},"returns":{"_0":"total shares of the operators for the subnetwork"}},"totalOperatorNetworkSharesAt(bytes32,uint48,bytes)":{"params":{"hint":"hint for checkpoint index","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)","timestamp":"time point to get the total operators' shares at"},"returns":{"_0":"total shares of the operators for the subnetwork at the given timestamp"}}},"version":1},"userdoc":{"kind":"user","methods":{"FACTORY()":{"notice":"Get the factory's address."},"HOOK_GAS_LIMIT()":{"notice":"Get a gas limit for the hook."},"HOOK_RESERVE()":{"notice":"Get a reserve gas between the gas limit check and the hook's execution."},"HOOK_SET_ROLE()":{"notice":"Get a hook setter's role."},"NETWORK_LIMIT_SET_ROLE()":{"notice":"Get a subnetwork limit setter's role."},"NETWORK_REGISTRY()":{"notice":"Get the network registry's address."},"OPERATOR_NETWORK_OPT_IN_SERVICE()":{"notice":"Get the operator-network opt-in service's address."},"OPERATOR_NETWORK_SHARES_SET_ROLE()":{"notice":"Get an operator-subnetwork shares setter's role."},"OPERATOR_VAULT_OPT_IN_SERVICE()":{"notice":"Get the operator-vault opt-in service's address."},"TYPE()":{"notice":"Get the entity's type."},"VAULT_FACTORY()":{"notice":"Get the vault factory's address."},"VERSION()":{"notice":"Get a version of the delegator (different versions mean different interfaces)."},"hook()":{"notice":"Get the hook's address."},"initialize(bytes)":{"notice":"Initialize this entity contract by using a given data."},"maxNetworkLimit(bytes32)":{"notice":"Get a particular subnetwork's maximum limit (meaning the subnetwork is not ready to get more as a stake)."},"networkLimit(bytes32)":{"notice":"Get a subnetwork's limit (how much stake the vault curator is ready to give to the subnetwork)."},"networkLimitAt(bytes32,uint48,bytes)":{"notice":"Get a subnetwork's limit at a given timestamp using a hint (how much stake the vault curator is ready to give to the subnetwork)."},"onSlash(bytes32,address,uint256,uint48,bytes)":{"notice":"Called when a slash happens."},"operatorNetworkShares(bytes32,address)":{"notice":"Get an operator's shares for a subnetwork (what percentage, which is equal to the shares divided by the total operators' shares, of the subnetwork's stake the vault curator is ready to give to the operator)."},"operatorNetworkSharesAt(bytes32,address,uint48,bytes)":{"notice":"Get an operator's shares for a subnetwork at a given timestamp using a hint (what percentage, which is equal to the shares divided by the total operators' shares, of the subnetwork's stake the vault curator is ready to give to the operator)."},"setHook(address)":{"notice":"Set a new hook."},"setMaxNetworkLimit(uint96,uint256)":{"notice":"Set a maximum limit for a subnetwork (how much stake the subnetwork is ready to get). identifier identifier of the subnetwork"},"setNetworkLimit(bytes32,uint256)":{"notice":"Set a subnetwork's limit (how much stake the vault curator is ready to give to the subnetwork)."},"setOperatorNetworkShares(bytes32,address,uint256)":{"notice":"Set an operator's shares for a subnetwork (what percentage, which is equal to the shares divided by the total operators' shares, of the subnetwork's stake the vault curator is ready to give to the operator)."},"stake(bytes32,address)":{"notice":"Get a stake that a given subnetwork will be able to slash for a certain operator until the end of the next epoch (if no cross-slashing and no slashings by the subnetwork)."},"stakeAt(bytes32,address,uint48,bytes)":{"notice":"Get a stake that a given subnetwork could be able to slash for a certain operator at a given timestamp until the end of the consequent epoch using hints (if no cross-slashing and no slashings by the subnetwork)."},"staticDelegateCall(address,bytes)":{"notice":"Make a delegatecall from this contract to a given target contract with a particular data (always reverts with a return data)."},"totalOperatorNetworkShares(bytes32)":{"notice":"Get a sum of operators' shares for a subnetwork."},"totalOperatorNetworkSharesAt(bytes32,uint48,bytes)":{"notice":"Get a sum of operators' shares for a subnetwork at a given timestamp using a hint."},"vault()":{"notice":"Get the vault's address."}},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/contracts/delegator/NetworkRestakeDelegator.sol":"NetworkRestakeDelegator"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol":{"keccak256":"0x6662ec4e5cefca03eeadd073e9469df8d2944bb2ee8ec8f7622c2c46aab5f225","urls":["bzz-raw://4d8544c6f8daa4d1bc215c6a72fe0acdb748664a105b0e5efc19295667521d45","dweb:/ipfs/QmdGWqdnXT8S3RgCR6aV8XHZrsybieMQLLnug1NtpSjEXN"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b","urls":["bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609","dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol":{"keccak256":"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397","urls":["bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9","dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardUpgradeable.sol":{"keccak256":"0xb44e086e941292cdc7f440de51478493894ef0b1aeccb0c4047445919f667f74","urls":["bzz-raw://942dad22fbdc1669f025540ba63aa3ccfad5f8458fc5d4525b31ebf272e7af45","dweb:/ipfs/Qmdo4X2M82aM3AMoW2kf2jhYkSCyC4T1pHNd6obdsDFnAB"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol":{"keccak256":"0xdaba3f7c42c55b2896353f32bd27d4d5f8bae741b3b05d4c53f67abc4dc47ce8","urls":["bzz-raw://1fa2e61141c602510bcd2cd936ed9561922ac8772a9b9c9a9db091a74e354a45","dweb:/ipfs/QmcHQDDoEBwJmwUbzoVkytvJsBx3KVHYFFnDkvRGWh9Wmh"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol":{"keccak256":"0xb6b36edd6a2999fd243ff226d6cbf84bd71af2432bbd0dfe19392996a1d9cb41","urls":["bzz-raw://1fd2f35495652e57e3f99bc6c510bc5f7dd398a176ea2e72d8ed730aebc6ca26","dweb:/ipfs/QmTQV6X4gkikTib49cho5iDX3JvSQbdsoEChoDwrk3CbbH"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b","urls":["bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df","dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d","urls":["bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875","dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol":{"keccak256":"0xe19a4d5f31d2861e7344e8e535e2feafb913d806d3e2b5fe7782741a2a7094fe","urls":["bzz-raw://4aed79c0fa6f0546ed02f2f683e8f77f0fd2ed7eb34d8bbf3d373c9a6d95b13c","dweb:/ipfs/QmWqVz6UAVqmnWU5pqYPt1o6iDEZyPaBraAA3rKfTTSfYj"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/Checkpoints.sol":{"keccak256":"0xbdc5e074d7dd6678f67e92b1a51a20226801a407b0e1af3da367c5d1ff4519ad","urls":["bzz-raw://a36cca6b22fff3db16fc789ff6c60eea71d4b156065d4d0c83a0bc5e91a77a8b","dweb:/ipfs/QmYN3exd5AemxjBrN8XMB1p5LbbE16uC3sjbYjwi8AjcGR"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/types/Time.sol":{"keccak256":"0xc7755af115020049e4140f224f9ee88d7e1799ffb0646f37bf0df24bf6213f58","urls":["bzz-raw://7f09bf94d5274334ec021f61a04659db303f31e60460e14b709c9bf187740111","dweb:/ipfs/QmNvgomZYUwFAt4cZbPWAiTeSZQreGehY9BK5xyVJsUttb"],"license":"MIT"},"src/contracts/common/Entity.sol":{"keccak256":"0x3d61a932995b8443381f3950542d388223a2c26dd5d29a3274dea3baa7388bd7","urls":["bzz-raw://7cdf5f03ca72fd263fd32ff59c8d88ddca911ae83896a287d10772c1bbe9b138","dweb:/ipfs/QmbP84r5BWT1Rn9AYTntWSf3xUMTTCohTZJFhbBhDXFoHa"],"license":"BUSL-1.1"},"src/contracts/common/StaticDelegateCallable.sol":{"keccak256":"0x350029aa8955eacaffffaeb58babc5c98e80ebc5c5db388ed17ee6465f4a9d90","urls":["bzz-raw://eb392a8ee9050e0af606897df63e3404e3829e8b688b580663892f9664195764","dweb:/ipfs/QmaXC8jqV8UrrAFkzXTEv2fJF56sy33HhLxAzaRZmUxuXD"],"license":"BUSL-1.1"},"src/contracts/delegator/BaseDelegator.sol":{"keccak256":"0x7c54d491fdd4415b764a9c8defa068e56d4c0c8c9419be0053a1d377669290e8","urls":["bzz-raw://9238bfbad0f6eeb0dc7727724de14380f1980b395902269703d5e2ef07e52e10","dweb:/ipfs/QmPJn1V4HNXcEghYvogGuSTF24dSQUPosR5qtsXcmNqRm3"],"license":"BUSL-1.1"},"src/contracts/delegator/NetworkRestakeDelegator.sol":{"keccak256":"0xd3a8e6522f9c6fdcc2da837c9023afd6bdff2bce45a35590320c475519e3636d","urls":["bzz-raw://58b17a87f6554f08376f9ea7fedf486a4aa75801bf0ad8b23ff5a46959b6b7a3","dweb:/ipfs/QmSTmNh67tYt8CmjVZb57r8N3qX5yeYdMApKPJm3qvQgQw"],"license":"BUSL-1.1"},"src/contracts/libraries/Checkpoints.sol":{"keccak256":"0xba90097c8bfe0a975499428b5f8ac5569483c7d92ccc28c12d70de416aae040c","urls":["bzz-raw://12f5d93ca94cd06d3147db68993165a58e17903ed53682560de61f3085ad4609","dweb:/ipfs/QmePiuAqvXprMLmFZkGZeGjvGPAvsEDHfCDv7BoQhXu9xE"],"license":"MIT"},"src/contracts/libraries/Subnetwork.sol":{"keccak256":"0xf5ef5506fd66082b3c2e7f3df37529f5a8efad32ac62e7c8914bd63219190bfe","urls":["bzz-raw://ba031a54ee0d0e9a270c2b9e18437f5668cfeb659cfd5fe0677459d7fcac2a56","dweb:/ipfs/QmReP3H7qQ78tAfgLnJKsNEQNCQfF1X1Get38Ffd4kzq32"],"license":"MIT"},"src/interfaces/common/IEntity.sol":{"keccak256":"0x8ef4b63d6da63489778ccd5f8d13ebdd527dd4b62730b2c616df5af7474d2d21","urls":["bzz-raw://5a8d69576a9219d85c50816a18ad53a4d53cfcb27ed38b8cccc808dc2734b71b","dweb:/ipfs/QmYVN3P4Q4REvBWJ97TbAcaxm3uyB2anV6NSGa6ZtSwcEv"],"license":"MIT"},"src/interfaces/common/IMigratableEntity.sol":{"keccak256":"0x8f5f2809f3afbe8ebfbb365dd7b57b4dd3b6f9943a6187eaf648d45895b8e3c4","urls":["bzz-raw://0ffe640537d539e7a4fde70d30d3e4c57f4ba9c2c25c450cea713aae38e8fd5c","dweb:/ipfs/QmSUTGzvdcn1R1KB7tLThMRtESsfPbeXDhhhKWGtntzBds"],"license":"MIT"},"src/interfaces/common/IRegistry.sol":{"keccak256":"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb","urls":["bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014","dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK"],"license":"MIT"},"src/interfaces/common/IStaticDelegateCallable.sol":{"keccak256":"0xa335d4e81b9071b7de66ef92b43ff20671d86516eb1be46fef29a3483cd3f5d5","urls":["bzz-raw://d464b9db863c14c05547d2b23352f2e9b7b784799cf09f6bbc4906a2a74e3516","dweb:/ipfs/QmUVWzFvJz7eEbDQKiFTTzwi7TEbjcs3VmwdM4kuptAKvi"],"license":"MIT"},"src/interfaces/delegator/IBaseDelegator.sol":{"keccak256":"0x96bb312f032e17accce3f8f80936d99468029d6b37c9ca74acdb4b026a0148ee","urls":["bzz-raw://2a66dcb5b7d1a6ef6a363431ea98ebd78bc4fdd3d7a134d9b542dc66e7d025c2","dweb:/ipfs/QmRhTPLd2ZAyRHmJUFUcWKs9b3if49QY17LYZuRqWmghw8"],"license":"MIT"},"src/interfaces/delegator/IDelegatorHook.sol":{"keccak256":"0xc51aa8d7d1f6c8043ee819b7aeb86da0e993912e1442098df897e299f01f9f46","urls":["bzz-raw://adddf5cb2ba282aeb576b26efb28640f865a1721cc9b6eee8b3ee0457a2c9780","dweb:/ipfs/QmNYgAmnLRwWZbhTuQhZs9rx4zcme1df5mEepkrniorSoW"],"license":"MIT"},"src/interfaces/delegator/INetworkRestakeDelegator.sol":{"keccak256":"0xe7030fe30389a147fd710e3436ec346b4842695fd3e65a81b95375c9f1d633fc","urls":["bzz-raw://739c7e66d301778054f5c90bee45ec9438f68afba8a03eaaac52064c73b115ad","dweb:/ipfs/QmfZ2ytKcTykAc76nxhg8ikUXV8NdBpetqb8W4YWPcox1Z"],"license":"MIT"},"src/interfaces/service/IOptInService.sol":{"keccak256":"0x76fb5460a6d87a5705433d4fbeff7253cd75b8bbd0c888b2088f16e86ace146a","urls":["bzz-raw://990322019b3d11465f7024bae77ccbf7e2fe5d6fa3c754584778f37d04fa1337","dweb:/ipfs/QmaSNHzcqxTkUCG9a4nqVfLECHLdjdrwAnDi3yDC7tDL24"],"license":"MIT"},"src/interfaces/vault/IVault.sol":{"keccak256":"0xffee01d383cd4e1a5530c614bf4360c1ef070c288abec9da1eb531b51bc07235","urls":["bzz-raw://04f0046cac285d8ec44ebbb1f79dc94fab4495767190cad8364fbc1fafaadfb9","dweb:/ipfs/QmUawAunwzXfCyShWfhKeThAgKtqe51hmrxvrXvM772M2R"],"license":"MIT"},"src/interfaces/vault/IVaultStorage.sol":{"keccak256":"0x592626f13754194f83047135de19229c49390bd59e34659b1bb38be71d973a22","urls":["bzz-raw://06a6a9dfddd05e580b32bebe2cff4f63ba26a653180676d58225dd30d9c89d3e","dweb:/ipfs/QmdgzBeY6Sxo8mGtyBxtv1tM1c2kU6J6zjeRd7vuXm4DU6"],"license":"MIT"}},"version":1},"id":83} \ No newline at end of file diff --git a/out/OperatorNetworkSpecificDelegator.sol/OperatorNetworkSpecificDelegator.json b/out/OperatorNetworkSpecificDelegator.sol/OperatorNetworkSpecificDelegator.json index 38ff684b..3dd45780 100644 --- a/out/OperatorNetworkSpecificDelegator.sol/OperatorNetworkSpecificDelegator.json +++ b/out/OperatorNetworkSpecificDelegator.sol/OperatorNetworkSpecificDelegator.json @@ -1 +1 @@ -{"abi":[{"type":"constructor","inputs":[{"name":"operatorRegistry","type":"address","internalType":"address"},{"name":"networkRegistry","type":"address","internalType":"address"},{"name":"vaultFactory","type":"address","internalType":"address"},{"name":"operatorVaultOptInService","type":"address","internalType":"address"},{"name":"operatorNetworkOptInService","type":"address","internalType":"address"},{"name":"delegatorFactory","type":"address","internalType":"address"},{"name":"entityType","type":"uint64","internalType":"uint64"}],"stateMutability":"nonpayable"},{"type":"function","name":"DEFAULT_ADMIN_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"FACTORY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"HOOK_GAS_LIMIT","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"HOOK_RESERVE","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"HOOK_SET_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"NETWORK_REGISTRY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"OPERATOR_NETWORK_OPT_IN_SERVICE","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"OPERATOR_REGISTRY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"OPERATOR_VAULT_OPT_IN_SERVICE","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"TYPE","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"VAULT_FACTORY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"VERSION","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"pure"},{"type":"function","name":"getRoleAdmin","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"grantRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"hasRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"hook","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"initialize","inputs":[{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"maxNetworkLimit","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"value","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"maxNetworkLimitAt","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"timestamp","type":"uint48","internalType":"uint48"},{"name":"hint","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"network","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"onSlash","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"captureTimestamp","type":"uint48","internalType":"uint48"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"operator","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"renounceRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"callerConfirmation","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"revokeRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setHook","inputs":[{"name":"hook_","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setMaxNetworkLimit","inputs":[{"name":"identifier","type":"uint96","internalType":"uint96"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"stake","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"stakeAt","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"timestamp","type":"uint48","internalType":"uint48"},{"name":"hints","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"staticDelegateCall","inputs":[{"name":"target","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"vault","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"OnSlash","inputs":[{"name":"subnetwork","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"captureTimestamp","type":"uint48","indexed":false,"internalType":"uint48"}],"anonymous":false},{"type":"event","name":"RoleAdminChanged","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"previousAdminRole","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"newAdminRole","type":"bytes32","indexed":true,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"RoleGranted","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"sender","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"RoleRevoked","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"sender","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"SetHook","inputs":[{"name":"hook","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"SetMaxNetworkLimit","inputs":[{"name":"subnetwork","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"error","name":"AccessControlBadConfirmation","inputs":[]},{"type":"error","name":"AccessControlUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"neededRole","type":"bytes32","internalType":"bytes32"}]},{"type":"error","name":"AlreadySet","inputs":[]},{"type":"error","name":"CheckpointUnorderedInsertion","inputs":[]},{"type":"error","name":"InsufficientHookGas","inputs":[]},{"type":"error","name":"InvalidInitialization","inputs":[]},{"type":"error","name":"InvalidNetwork","inputs":[]},{"type":"error","name":"NotInitialized","inputs":[]},{"type":"error","name":"NotInitializing","inputs":[]},{"type":"error","name":"NotNetwork","inputs":[]},{"type":"error","name":"NotOperator","inputs":[]},{"type":"error","name":"NotSlasher","inputs":[]},{"type":"error","name":"NotVault","inputs":[]},{"type":"error","name":"ReentrancyGuardReentrantCall","inputs":[]},{"type":"error","name":"SafeCastOverflowedUintDowncast","inputs":[{"name":"bits","type":"uint8","internalType":"uint8"},{"name":"value","type":"uint256","internalType":"uint256"}]}],"bytecode":{"object":"0x610160346101c9576001600160401b0390601f6127c138819003918201601f191683019190848311848410176101cd578160e092859260409586528339810103126101c95761004d826101e1565b9061005a602084016101e1565b6100658285016101e1565b90610072606086016101e1565b9561007f608087016101e1565b9560c061008e60a083016101e1565b9101519180831683036101c9577ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a009081549060ff82891c166101b8578080831603610174575b50505060805260a05260c05260e05261010093845261012092835261014091825251916125cb93846101f68539608051846104fe015260a05184610bee015260c05184818161037d01528181610c270152612048015260e05184818161027301526119be0152518381816102b70152818161121001526113540152518281816102fb0152818161117701526113d2015251818181610a6e01526120c10152f35b6001600160401b0319909116811790915585519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a15f80806100d4565b875163f92ee8a960e01b8152600490fd5b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b51906001600160a01b03821682036101c95756fe60806040526004361015610011575f80fd5b5f3560e01c806301ffc9a714610204578063103f2907146101ff578063128e5d82146101fa5780631a80e500146101f557806323f752d5146101f0578063248a9ca3146101eb5780632dd31000146101e65780632f2ff15d146101e157806336568abe146101dc5780633dfd3873146101d7578063437224a3146101d2578063439fab91146101cd578063557cab44146101c8578063570ca735146101c35780636679191e146101be5780636739afca146101b95780637f5a7c7b146101b457806383ce0322146101af57806391d14854146101aa5780639f86fd85146101a5578063a217fddf146101a0578063bb24fe8a1461019b578063c0cd7c3e14610196578063d15b740e14610191578063d547741f1461018c578063e02f693714610187578063e49561ee14610182578063fbfa77cf1461017d578063fd4d447c14610178578063ff54740f146101735763ffa1ad741461016e575f80fd5b610f84565b610f67565b610f3d565b610f16565b610d2b565b610ccc565b610c80565b610c56565b610c12565b610bcf565b610bb5565b610afb565b610a9d565b610a59565b610a31565b610a09565b6109cf565b6109a7565b61098b565b610853565b6107c3565b6105d5565b61058a565b61053e565b6104e9565b6104b0565b61032a565b6102e6565b6102a2565b61025e565b3461025a57602036600319011261025a5760043563ffffffff60e01b811680910361025a57602090637965db0b60e01b8114908115610249575b506040519015158152f35b6301ffc9a760e01b1490505f61023e565b5f80fd5b3461025a575f36600319011261025a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461025a575f36600319011261025a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461025a575f36600319011261025a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461025a57604036600319011261025a576004356001600160601b038116810361025a576024359061035a611447565b6040516302910f8b60e31b81523360048201526020816024816001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165afa9081156104ab575f9161047c575b501561046a576001600160601b03166bffffffffffffffffffffffff193360601b161790806103e4835f52600260205260405f2090565b54146104585761043d817fc67e7929681aa1bccd63f52b3799bf5805f3009f197db6fdf584b14f7fbf608c92610422855f52600260205260405f2090565b5561042d8185611476565b6040519081529081906020820190565b0390a261045660015f8051602061255683398151915255565b005b60405163a741a04560e01b8152600490fd5b6040516323d53b9760e21b8152600490fd5b61049e915060203d6020116104a4575b6104968183610732565b810190610f9f565b5f6103ad565b503d61048c565b610fb7565b3461025a57602036600319011261025a576004355f525f805160206125368339815191526020526020600160405f200154604051908152f35b3461025a575f36600319011261025a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b6001600160a01b0381160361025a57565b3461025a57604036600319011261025a576104566024356004356105618261052d565b805f525f80516020612536833981519152602052610585600160405f2001546115b8565b611769565b3461025a57604036600319011261025a576024356105a78161052d565b336001600160a01b038216036105c3576104569060043561179f565b60405163334bd91960e11b8152600490fd5b3461025a57602036600319011261025a576004356105f28161052d565b6105fa611447565b335f9081527f9ebbcbe0d2961d3fbe56ca6f679bc753bd848d3e6bb3eaf9041c51b286881d2c60205260409020547fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c9060ff16156106b057506001546001600160a01b039182169181168214610458576001600160a01b03191681176001557f5bbb1d3ebb6a3ad2a0f17ff35e579a83af60604d1d3c2a4c83c62adecadf666d5f80a260015f8051602061255683398151915255005b6044906040519063e2517d3f60e01b82523360048301526024820152fd5b6064359065ffffffffffff8216820361025a57565b634e487b7160e01b5f52604160045260245ffd5b604081019081106001600160401b0382111761071257604052565b6106e3565b606081019081106001600160401b0382111761071257604052565b90601f801991011681019081106001600160401b0382111761071257604052565b60405190610760826106f7565b565b6001600160401b03811161071257601f01601f191660200190565b81601f8201121561025a5780359061079482610762565b926107a26040519485610732565b8284526020838301011161025a57815f926020809301838601378301015290565b3461025a57606036600319011261025a5760243565ffffffffffff8116810361025a576044356001600160401b03811161025a5760209161080b61081e92369060040161077d565b906004355f526003845260405f20611870565b604051908152f35b9181601f8401121561025a578235916001600160401b03831161025a576020838186019501011161025a57565b3461025a57602036600319011261025a576001600160401b0360043581811161025a57610884903690600401610826565b5f80516020612576833981519152549260ff8460401c1615931680159081610983575b6001149081610979575b159081610970575b5061095e575f80516020612576833981519152805467ffffffffffffffff191660011790556108ec918361093a57611989565b6108f257005b5f80516020612576833981519152805460ff60401b19169055604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a1005b5f80516020612576833981519152805460ff60401b1916600160401b179055611989565b60405163f92ee8a960e01b8152600490fd5b9050155f6108b9565b303b1591506108b1565b8491506108a7565b3461025a575f36600319011261025a576020604051614e208152f35b3461025a575f36600319011261025a576005546040516001600160a01b039091168152602090f35b3461025a575f36600319011261025a5760206040517fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c8152f35b3461025a575f36600319011261025a576004546040516001600160a01b039091168152602090f35b3461025a575f36600319011261025a576001546040516001600160a01b039091168152602090f35b3461025a575f36600319011261025a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461025a57604036600319011261025a57602060ff610aef602435610ac18161052d565b6004355f525f80516020612536833981519152845260405f209060018060a01b03165f5260205260405f2090565b54166040519015158152f35b3461025a5760408060031936011261025a57600435610b198161052d565b602435906001600160401b03821161025a575f8091610b3f610ba3943690600401610826565b908187519283928337810184815203915af43d15610bab57610b953d610b6481610762565b90610b7186519283610732565b81523d5f602083013e5b845194859315156020850152808401526060830190610fdb565b03601f198101835282610732565b805190602001fd5b610b956060610b7b565b3461025a575f36600319011261025a5760206040515f8152f35b3461025a575f36600319011261025a5760206040516001600160401b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461025a575f36600319011261025a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461025a57602036600319011261025a576004355f526002602052602060405f2054604051908152f35b3461025a57604036600319011261025a57610456602435600435610ca38261052d565b805f525f80516020612536833981519152602052610cc7600160405f2001546115b8565b61179f565b3461025a57608036600319011261025a57602435610ce98161052d565b6044359065ffffffffffff8216820361025a57606435906001600160401b03821161025a57602092610d2261081e93369060040161077d565b91600435611101565b3461025a5760a036600319011261025a57602435600435610d4b8261052d565b60443591610d576106ce565b90608435906001600160401b03821161025a57610d796004923690840161077d565b610d81611447565b5f54602090610da690610d9a906001600160a01b031681565b6001600160a01b031690565b60405163b134427160e01b815294859182905afa9283156104ab575f93610ee5575b506001600160a01b039283163303610ed3576001546001600160a01b0316838116610e48575b50506040805195865265ffffffffffff909316602086015216927f741a5de99085c0d660f3e4192217b0ffb0ea4e35a0480de48e857a4bc3ee36ed91819081015b0390a361045660015f8051602061255683398151915255565b909360405194610e7f86610e71602082019363724ab0f760e11b8552858c898d602487016112a0565b03601f198101885287610732565b62042e305a10610ec1575f610e2f938192827f741a5de99085c0d660f3e4192217b0ffb0ea4e35a0480de48e857a4bc3ee36ed9951926203d090f15093610dee565b604051638072475160e01b8152600490fd5b60405163dabc4ad960e01b8152600490fd5b610f0891935060203d602011610f0f575b610f008183610732565b81019061128b565b915f610dc8565b503d610ef6565b3461025a575f36600319011261025a575f546040516001600160a01b039091168152602090f35b3461025a57604036600319011261025a57602061081e602435610f5f8161052d565b60043561131d565b3461025a575f36600319011261025a5760206040516203d0908152f35b3461025a575f36600319011261025a57602060405160018152f35b9081602091031261025a5751801515810361025a5790565b6040513d5f823e3d90fd5b90610fd892915f52600360205260405f20611870565b90565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b6040519061100c826106f7565b60606020838281520152565b81601f8201121561025a5780519061102f82610762565b9261103d6040519485610732565b8284526020838301011161025a57815f9260208093018386015e8301015290565b9060208282031261025a5781516001600160401b039283821161025a57019060408282031261025a5760405192611094846106f7565b825181811161025a57826110a9918501611018565b8452602083015190811161025a576110c19201611018565b602082015290565b6001600160a01b0391821681529116602082015265ffffffffffff9091166040820152608060608201819052610fd892910190610fdb565b9261111190929192828486611b9c565b92909361111c610fff565b9380518061126f575b505084159384156111d9575b8415611148575b505050506111435790565b505f90565b602080949550611173910151604051958694859463530e1d4360e01b865260601c90600486016110c9565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa9081156104ab575f916111ba575b50155f808080611138565b6111d3915060203d6020116104a4576104968183610732565b5f6111af565b5f549094506001600160a01b031660208486519261120c604051948593849363530e1d4360e01b855289600486016110c9565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa9081156104ab575f91611250575b501593611131565b611269915060203d6020116104a4576104968183610732565b5f611248565b61128392955060208091830101910161105e565b925f80611125565b9081602091031261025a5751610fd88161052d565b919360a093610fd8969565ffffffffffff938552600180871b0316602085015260408401521660608201528160808201520190610fdb565b634e487b7160e01b5f52601160045260245ffd5b81156112f6570490565b634e487b7160e01b5f52601260045260245ffd5b906001820180921161131857565b6112d8565b5f546040516308834cb560e21b8082526001600160a01b0385811660048401529283166024830152929392602092909183816044817f000000000000000000000000000000000000000000000000000000000000000086165afa9081156104ab575f9161142a575b50159182156113a6575b505090506113a057610fd891611cbb565b50505f90565b6040519081526001600160a01b0385166004820152606086901c602482015291508290829060449082907f0000000000000000000000000000000000000000000000000000000000000000165afa9182156104ab575f9261140d575b505015805f8061138f565b6114239250803d106104a4576104968183610732565b5f80611402565b6114419150843d86116104a4576104968183610732565b5f611385565b5f8051602061255683398151915260028154146114645760029055565b604051633ee5aeb560e01b8152600490fd5b6004546001600160a01b0316606082901c036115a6575f52600360205260405f209065ffffffffffff9182421161158757824216926001820191825415611579575b6114c1816121ac565b509590845493835480155f1461155a57505f975b6001600160d01b0398808a1615611554576114f09088611d7d565b50505b82611548575b50501561153257505061076093509061151461151a9261184d565b90611d7d565b90919082549060031b91821b915f19901b1916179055565b61076095611541931691612284565b5050611dd3565b16821490505f806114f9565b506114f3565b5f1990808281011161131857855f5260205f2001015460301c976114d5565b61158283611da6565b6114b8565b6040516306dfcc6560e41b815260306004820152426024820152604490fd5b6040516386eab41b60e01b8152600490fd5b5f8181525f805160206125368339815191526020908152604080832033845290915290205460ff16156106b05750565b6001600160a01b0381165f9081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d60205260409020545f805160206125368339815191529060ff166113a0575f808052602091825260408082206001600160a01b038516835290925220805460ff1916600117905533906001600160a01b03165f7f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d8180a4600190565b6001600160a01b0381165f9081527f9ebbcbe0d2961d3fbe56ca6f679bc753bd848d3e6bb3eaf9041c51b286881d2c602052604090207fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c905f805160206125368339815191529060ff905b5416611762575f828152602091825260408082206001600160a01b038616835290925220805460ff1916600117905533916001600160a01b0316907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d5f80a4600190565b5050505f90565b5f8181525f80516020612536833981519152602081815260408084206001600160a01b038716855290915290912060ff906116fe565b5f8181525f80516020612536833981519152602081815260408084206001600160a01b03871685529091529091205460ff1615611762575f828152602091825260408082206001600160a01b038616835290925220805460ff1916905533916001600160a01b0316907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b5f80a4600190565b9081602091031261025a575163ffffffff8116810361025a5790565b5f1981019190821161131857565b90600163ffffffff8093160191821161131857565b91805115611949578060208061188b93518301019101611831565b916118968382611ed0565b926118a7845165ffffffffffff1690565b9065ffffffffffff808516921682811461193d57821191826118dd575b50506118d457610fd89250611df6565b50506020015190565b9091506118ea835461184d565b63ffffffff831614918215611903575b50505f806118c4565b61193591925061191e61191861192a9261185b565b85611ed0565b5165ffffffffffff1690565b65ffffffffffff1690565b115f806118fa565b50505050506020015190565b50610fd891611df6565b91909160408184031261025a57803561196b8161052d565b9260208201356001600160401b03811161025a57610fd8920161077d565b61199591810190611953565b6040516302910f8b60e31b81526001600160a01b039283166004820181905291906020816024817f000000000000000000000000000000000000000000000000000000000000000088165afa9081156104ab575f91611aa8575b5015611a9657611a2a604091611a25611a7094611a0a611f38565b60018060a01b03166001600160601b0360a01b5f5416175f55565b611ffb565b6020810151600180546001600160a01b0319166001600160a01b0390921691909117905580516001600160a01b0316848116611a86575b5001516001600160a01b031690565b908116611a7a5750565b611a8390611693565b50565b611a8f906115e8565b505f611a61565b6040516362df054560e01b8152600490fd5b611ac1915060203d6020116104a4576104968183610732565b5f6119ef565b60405190611ad482610717565b60606040838281528260208201520152565b9060208282031261025a5781516001600160401b039283821161025a57019060608282031261025a5760405192611b1c84610717565b825181811161025a5782611b31918501611018565b8452602083015181811161025a5782611b4b918501611018565b6020850152604083015190811161025a57611b669201611018565b604082015290565b9081602091031261025a575190565b60409065ffffffffffff610fd894931681528160208201520190610fdb565b90939293611ba8611ac7565b94805180611c9f575b5050600454606083901c6001600160a01b03918216148015929190611c84575b5050611c7c575f54611c17929190602090611bf690610d9a906001600160a01b031681565b8187015190604051808097819463810da75d60e01b83528860048401611b7d565b03915afa9081156104ab57611c44935f92611c49575b50611c3e9192604087015191610fc2565b90612176565b915190565b611c3e9250611c6f9060203d602011611c75575b611c678183610732565b810190611b6e565b91611c2d565b503d611c5d565b505090515f91565b60055481166001600160a01b03169116141590505f80611bd1565b611cb3929650602080918301019101611ae6565b935f80611bb1565b6004549091606083901c6001600160a01b039283161480159290611d62575b5050611143575f5460049190602090611cfd90610d9a906001600160a01b031681565b60405163bd49c35f60e01b815293849182905afa9081156104ab57610fd8925f92611d3d575b50611d36905f52600260205260405f2090565b5490612176565b611d36919250611d5b9060203d602011611c7557611c678183610732565b9190611d23565b60055481166001600160a01b03169116141590505f80611cda565b8054821015611d92575f5260205f2001905f90565b634e487b7160e01b5f52603260045260245ffd5b8054600160401b81101561071257611dc391600182018155611d7d565b8154905f199060031b1b19169055565b90815491600160401b831015610712578261151a91600161076095018155611d7d565b908154905f829160058411611e6a575b611e119350846124d6565b80611e4357505f905b6001600160d01b038216156113a057610fd8916001611e399201611d7d565b90549060031b1c90565b611e5d611e52611e649261184d565b835f5260205f200190565b5460301c90565b90611e1a565b9192611e75816123a3565b810390811161131857611e1193855f5265ffffffffffff808360205f20015416908516105f14611ea6575091611e06565b929150611eb29061130a565b90611e06565b60405190611ec5826106f7565b5f6020838281520152565b90611ef9611ef3611f1a92611ee3611eb8565b50611eec611eb8565b5084611d7d565b50612188565b91600165ffffffffffff845116936020828060d01b03910151169101611d7d565b90549060405192611f2a846106f7565b835260031b1c602082015290565b611f406121fb565b611f486121fb565b60015f8051602061255683398151915255565b60405190611f6882610717565b5f6040838281528260208201520152565b8091039060a0821261025a57606060405192611f9484610717565b1261025a57608090604051611fa881610717565b8151611fb38161052d565b81526020820151611fc38161052d565b60208201526040820151611fd68161052d565b604082015283526060810151611feb8161052d565b60208401520151611b668161052d565b612003611f5b565b5061201981519160208080948301019101611f79565b80820180516040516302910f8b60e31b8082526001600160a01b039283166004830152939491939082816024817f000000000000000000000000000000000000000000000000000000000000000089165afa9081156104ab575f91612159575b501561046a57816120bd916040870195612099875160018060a01b031690565b6040519283526001600160a01b031660048301529092839190829081906024820190565b03917f0000000000000000000000000000000000000000000000000000000000000000165afa9182156104ab575f9261213c575b50501561212a5751600480546001600160a01b039283166001600160a01b03199182161790915591516005805490931691161790555190565b604051631f0853c160e21b8152600490fd5b6121529250803d106104a4576104968183610732565b5f806120f1565b6121709150833d85116104a4576104968183610732565b5f612079565b9080821015612183575090565b905090565b90604051612195816106f7565b915465ffffffffffff8116835260301c6020830152565b8054806121bd5750505f905f905f90565b5f19908082810111611318576121da925f5260205f200101612188565b9065ffffffffffff82511691602060018060d01b0391015116906001929190565b60ff5f805160206125768339815191525460401c161561221757565b604051631afcd79f60e31b8152600490fd5b8054600160401b8110156107125761224691600182018155611d7d565b61227157815160209092015160301b65ffffffffffff191665ffffffffffff92909216919091179055565b634e487b7160e01b5f525f60045260245ffd5b80549293929190821561237a576122a56122a0611e528561184d565b612188565b906122b6825165ffffffffffff1690565b65ffffffffffff848116911681106123685761232c9460209488926122e461192a875165ffffffffffff1690565b03612330575061231e926122fa6123059261184d565b905f5260205f200190565b9065ffffffffffff82549181199060301b169116179055565b01516001600160d01b031690565b9190565b91505061236391612350612342610753565b65ffffffffffff9093168352565b6001600160d01b03881682860152612229565b61231e565b604051632520601d60e01b8152600490fd5b61239e925061238a612342610753565b6001600160d01b0385166020830152612229565b5f9190565b80156111435780611c3e61246e61246461245a61245061244661243c6124326001610fd89a5f908b60801c806124ca575b508060401c806124bd575b508060201c806124b0575b508060101c806124a3575b508060081c80612496575b508060041c80612489575b508060021c8061247c575b50821c612475575b811c1b61242b818b6112ec565b0160011c90565b61242b818a6112ec565b61242b81896112ec565b61242b81886112ec565b61242b81876112ec565b61242b81866112ec565b61242b81856112ec565b80926112ec565b810161241e565b600291509101905f612416565b600491509101905f61240b565b600891509101905f612400565b601091509101905f6123f5565b602091509101905f6123ea565b604091509101905f6123df565b9150506080905f6123d4565b91905b8382106124e65750505090565b9091928083169080841860011c820180921161131857845f5265ffffffffffff808360205f20015416908416105f146125235750925b91906124d9565b93925061252f9061130a565b9161251c56fe02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268009b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a2646970667358221220dae242242ae38bf129200c0400461c817fd7d45e08b63cbee29f0e840f1e00d864736f6c63430008190033","sourceMap":"681:3264:79:-:0;;;;-1:-1:-1;;;;;681:3264:79;;;;;;;;;;-1:-1:-1;;681:3264:79;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;8837:64:25;681:3264:79;;;;;;;;;7896:76:25;;681:3264:79;;;;7985:34:25;7981:146;;-1:-1:-1;525:17:69;;;681:3264:79;525:17:69;681:3264:79;552:12:69;681:3264:79;2360:34:76;681:3264:79;2404:28:76;2442:57;;;;2509:61;;;;1796:36:79;;;;681:3264;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7981:146:25;-1:-1:-1;;;;;;681:3264:79;;;;;;;;;;;;;8087:29:25;;681:3264:79;;8087:29:25;7981:146;;;;;7896:76;681:3264:79;;-1:-1:-1;;;7938:23:25;;;;;681:3264:79;-1:-1:-1;681:3264:79;;;;;;-1:-1:-1;681:3264:79;;;;;-1:-1:-1;681:3264:79;;;;-1:-1:-1;;;;;681:3264:79;;;;;;:::o","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361015610011575f80fd5b5f3560e01c806301ffc9a714610204578063103f2907146101ff578063128e5d82146101fa5780631a80e500146101f557806323f752d5146101f0578063248a9ca3146101eb5780632dd31000146101e65780632f2ff15d146101e157806336568abe146101dc5780633dfd3873146101d7578063437224a3146101d2578063439fab91146101cd578063557cab44146101c8578063570ca735146101c35780636679191e146101be5780636739afca146101b95780637f5a7c7b146101b457806383ce0322146101af57806391d14854146101aa5780639f86fd85146101a5578063a217fddf146101a0578063bb24fe8a1461019b578063c0cd7c3e14610196578063d15b740e14610191578063d547741f1461018c578063e02f693714610187578063e49561ee14610182578063fbfa77cf1461017d578063fd4d447c14610178578063ff54740f146101735763ffa1ad741461016e575f80fd5b610f84565b610f67565b610f3d565b610f16565b610d2b565b610ccc565b610c80565b610c56565b610c12565b610bcf565b610bb5565b610afb565b610a9d565b610a59565b610a31565b610a09565b6109cf565b6109a7565b61098b565b610853565b6107c3565b6105d5565b61058a565b61053e565b6104e9565b6104b0565b61032a565b6102e6565b6102a2565b61025e565b3461025a57602036600319011261025a5760043563ffffffff60e01b811680910361025a57602090637965db0b60e01b8114908115610249575b506040519015158152f35b6301ffc9a760e01b1490505f61023e565b5f80fd5b3461025a575f36600319011261025a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461025a575f36600319011261025a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461025a575f36600319011261025a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461025a57604036600319011261025a576004356001600160601b038116810361025a576024359061035a611447565b6040516302910f8b60e31b81523360048201526020816024816001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165afa9081156104ab575f9161047c575b501561046a576001600160601b03166bffffffffffffffffffffffff193360601b161790806103e4835f52600260205260405f2090565b54146104585761043d817fc67e7929681aa1bccd63f52b3799bf5805f3009f197db6fdf584b14f7fbf608c92610422855f52600260205260405f2090565b5561042d8185611476565b6040519081529081906020820190565b0390a261045660015f8051602061255683398151915255565b005b60405163a741a04560e01b8152600490fd5b6040516323d53b9760e21b8152600490fd5b61049e915060203d6020116104a4575b6104968183610732565b810190610f9f565b5f6103ad565b503d61048c565b610fb7565b3461025a57602036600319011261025a576004355f525f805160206125368339815191526020526020600160405f200154604051908152f35b3461025a575f36600319011261025a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b6001600160a01b0381160361025a57565b3461025a57604036600319011261025a576104566024356004356105618261052d565b805f525f80516020612536833981519152602052610585600160405f2001546115b8565b611769565b3461025a57604036600319011261025a576024356105a78161052d565b336001600160a01b038216036105c3576104569060043561179f565b60405163334bd91960e11b8152600490fd5b3461025a57602036600319011261025a576004356105f28161052d565b6105fa611447565b335f9081527f9ebbcbe0d2961d3fbe56ca6f679bc753bd848d3e6bb3eaf9041c51b286881d2c60205260409020547fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c9060ff16156106b057506001546001600160a01b039182169181168214610458576001600160a01b03191681176001557f5bbb1d3ebb6a3ad2a0f17ff35e579a83af60604d1d3c2a4c83c62adecadf666d5f80a260015f8051602061255683398151915255005b6044906040519063e2517d3f60e01b82523360048301526024820152fd5b6064359065ffffffffffff8216820361025a57565b634e487b7160e01b5f52604160045260245ffd5b604081019081106001600160401b0382111761071257604052565b6106e3565b606081019081106001600160401b0382111761071257604052565b90601f801991011681019081106001600160401b0382111761071257604052565b60405190610760826106f7565b565b6001600160401b03811161071257601f01601f191660200190565b81601f8201121561025a5780359061079482610762565b926107a26040519485610732565b8284526020838301011161025a57815f926020809301838601378301015290565b3461025a57606036600319011261025a5760243565ffffffffffff8116810361025a576044356001600160401b03811161025a5760209161080b61081e92369060040161077d565b906004355f526003845260405f20611870565b604051908152f35b9181601f8401121561025a578235916001600160401b03831161025a576020838186019501011161025a57565b3461025a57602036600319011261025a576001600160401b0360043581811161025a57610884903690600401610826565b5f80516020612576833981519152549260ff8460401c1615931680159081610983575b6001149081610979575b159081610970575b5061095e575f80516020612576833981519152805467ffffffffffffffff191660011790556108ec918361093a57611989565b6108f257005b5f80516020612576833981519152805460ff60401b19169055604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a1005b5f80516020612576833981519152805460ff60401b1916600160401b179055611989565b60405163f92ee8a960e01b8152600490fd5b9050155f6108b9565b303b1591506108b1565b8491506108a7565b3461025a575f36600319011261025a576020604051614e208152f35b3461025a575f36600319011261025a576005546040516001600160a01b039091168152602090f35b3461025a575f36600319011261025a5760206040517fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c8152f35b3461025a575f36600319011261025a576004546040516001600160a01b039091168152602090f35b3461025a575f36600319011261025a576001546040516001600160a01b039091168152602090f35b3461025a575f36600319011261025a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461025a57604036600319011261025a57602060ff610aef602435610ac18161052d565b6004355f525f80516020612536833981519152845260405f209060018060a01b03165f5260205260405f2090565b54166040519015158152f35b3461025a5760408060031936011261025a57600435610b198161052d565b602435906001600160401b03821161025a575f8091610b3f610ba3943690600401610826565b908187519283928337810184815203915af43d15610bab57610b953d610b6481610762565b90610b7186519283610732565b81523d5f602083013e5b845194859315156020850152808401526060830190610fdb565b03601f198101835282610732565b805190602001fd5b610b956060610b7b565b3461025a575f36600319011261025a5760206040515f8152f35b3461025a575f36600319011261025a5760206040516001600160401b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461025a575f36600319011261025a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461025a57602036600319011261025a576004355f526002602052602060405f2054604051908152f35b3461025a57604036600319011261025a57610456602435600435610ca38261052d565b805f525f80516020612536833981519152602052610cc7600160405f2001546115b8565b61179f565b3461025a57608036600319011261025a57602435610ce98161052d565b6044359065ffffffffffff8216820361025a57606435906001600160401b03821161025a57602092610d2261081e93369060040161077d565b91600435611101565b3461025a5760a036600319011261025a57602435600435610d4b8261052d565b60443591610d576106ce565b90608435906001600160401b03821161025a57610d796004923690840161077d565b610d81611447565b5f54602090610da690610d9a906001600160a01b031681565b6001600160a01b031690565b60405163b134427160e01b815294859182905afa9283156104ab575f93610ee5575b506001600160a01b039283163303610ed3576001546001600160a01b0316838116610e48575b50506040805195865265ffffffffffff909316602086015216927f741a5de99085c0d660f3e4192217b0ffb0ea4e35a0480de48e857a4bc3ee36ed91819081015b0390a361045660015f8051602061255683398151915255565b909360405194610e7f86610e71602082019363724ab0f760e11b8552858c898d602487016112a0565b03601f198101885287610732565b62042e305a10610ec1575f610e2f938192827f741a5de99085c0d660f3e4192217b0ffb0ea4e35a0480de48e857a4bc3ee36ed9951926203d090f15093610dee565b604051638072475160e01b8152600490fd5b60405163dabc4ad960e01b8152600490fd5b610f0891935060203d602011610f0f575b610f008183610732565b81019061128b565b915f610dc8565b503d610ef6565b3461025a575f36600319011261025a575f546040516001600160a01b039091168152602090f35b3461025a57604036600319011261025a57602061081e602435610f5f8161052d565b60043561131d565b3461025a575f36600319011261025a5760206040516203d0908152f35b3461025a575f36600319011261025a57602060405160018152f35b9081602091031261025a5751801515810361025a5790565b6040513d5f823e3d90fd5b90610fd892915f52600360205260405f20611870565b90565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b6040519061100c826106f7565b60606020838281520152565b81601f8201121561025a5780519061102f82610762565b9261103d6040519485610732565b8284526020838301011161025a57815f9260208093018386015e8301015290565b9060208282031261025a5781516001600160401b039283821161025a57019060408282031261025a5760405192611094846106f7565b825181811161025a57826110a9918501611018565b8452602083015190811161025a576110c19201611018565b602082015290565b6001600160a01b0391821681529116602082015265ffffffffffff9091166040820152608060608201819052610fd892910190610fdb565b9261111190929192828486611b9c565b92909361111c610fff565b9380518061126f575b505084159384156111d9575b8415611148575b505050506111435790565b505f90565b602080949550611173910151604051958694859463530e1d4360e01b865260601c90600486016110c9565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa9081156104ab575f916111ba575b50155f808080611138565b6111d3915060203d6020116104a4576104968183610732565b5f6111af565b5f549094506001600160a01b031660208486519261120c604051948593849363530e1d4360e01b855289600486016110c9565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa9081156104ab575f91611250575b501593611131565b611269915060203d6020116104a4576104968183610732565b5f611248565b61128392955060208091830101910161105e565b925f80611125565b9081602091031261025a5751610fd88161052d565b919360a093610fd8969565ffffffffffff938552600180871b0316602085015260408401521660608201528160808201520190610fdb565b634e487b7160e01b5f52601160045260245ffd5b81156112f6570490565b634e487b7160e01b5f52601260045260245ffd5b906001820180921161131857565b6112d8565b5f546040516308834cb560e21b8082526001600160a01b0385811660048401529283166024830152929392602092909183816044817f000000000000000000000000000000000000000000000000000000000000000086165afa9081156104ab575f9161142a575b50159182156113a6575b505090506113a057610fd891611cbb565b50505f90565b6040519081526001600160a01b0385166004820152606086901c602482015291508290829060449082907f0000000000000000000000000000000000000000000000000000000000000000165afa9182156104ab575f9261140d575b505015805f8061138f565b6114239250803d106104a4576104968183610732565b5f80611402565b6114419150843d86116104a4576104968183610732565b5f611385565b5f8051602061255683398151915260028154146114645760029055565b604051633ee5aeb560e01b8152600490fd5b6004546001600160a01b0316606082901c036115a6575f52600360205260405f209065ffffffffffff9182421161158757824216926001820191825415611579575b6114c1816121ac565b509590845493835480155f1461155a57505f975b6001600160d01b0398808a1615611554576114f09088611d7d565b50505b82611548575b50501561153257505061076093509061151461151a9261184d565b90611d7d565b90919082549060031b91821b915f19901b1916179055565b61076095611541931691612284565b5050611dd3565b16821490505f806114f9565b506114f3565b5f1990808281011161131857855f5260205f2001015460301c976114d5565b61158283611da6565b6114b8565b6040516306dfcc6560e41b815260306004820152426024820152604490fd5b6040516386eab41b60e01b8152600490fd5b5f8181525f805160206125368339815191526020908152604080832033845290915290205460ff16156106b05750565b6001600160a01b0381165f9081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d60205260409020545f805160206125368339815191529060ff166113a0575f808052602091825260408082206001600160a01b038516835290925220805460ff1916600117905533906001600160a01b03165f7f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d8180a4600190565b6001600160a01b0381165f9081527f9ebbcbe0d2961d3fbe56ca6f679bc753bd848d3e6bb3eaf9041c51b286881d2c602052604090207fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c905f805160206125368339815191529060ff905b5416611762575f828152602091825260408082206001600160a01b038616835290925220805460ff1916600117905533916001600160a01b0316907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d5f80a4600190565b5050505f90565b5f8181525f80516020612536833981519152602081815260408084206001600160a01b038716855290915290912060ff906116fe565b5f8181525f80516020612536833981519152602081815260408084206001600160a01b03871685529091529091205460ff1615611762575f828152602091825260408082206001600160a01b038616835290925220805460ff1916905533916001600160a01b0316907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b5f80a4600190565b9081602091031261025a575163ffffffff8116810361025a5790565b5f1981019190821161131857565b90600163ffffffff8093160191821161131857565b91805115611949578060208061188b93518301019101611831565b916118968382611ed0565b926118a7845165ffffffffffff1690565b9065ffffffffffff808516921682811461193d57821191826118dd575b50506118d457610fd89250611df6565b50506020015190565b9091506118ea835461184d565b63ffffffff831614918215611903575b50505f806118c4565b61193591925061191e61191861192a9261185b565b85611ed0565b5165ffffffffffff1690565b65ffffffffffff1690565b115f806118fa565b50505050506020015190565b50610fd891611df6565b91909160408184031261025a57803561196b8161052d565b9260208201356001600160401b03811161025a57610fd8920161077d565b61199591810190611953565b6040516302910f8b60e31b81526001600160a01b039283166004820181905291906020816024817f000000000000000000000000000000000000000000000000000000000000000088165afa9081156104ab575f91611aa8575b5015611a9657611a2a604091611a25611a7094611a0a611f38565b60018060a01b03166001600160601b0360a01b5f5416175f55565b611ffb565b6020810151600180546001600160a01b0319166001600160a01b0390921691909117905580516001600160a01b0316848116611a86575b5001516001600160a01b031690565b908116611a7a5750565b611a8390611693565b50565b611a8f906115e8565b505f611a61565b6040516362df054560e01b8152600490fd5b611ac1915060203d6020116104a4576104968183610732565b5f6119ef565b60405190611ad482610717565b60606040838281528260208201520152565b9060208282031261025a5781516001600160401b039283821161025a57019060608282031261025a5760405192611b1c84610717565b825181811161025a5782611b31918501611018565b8452602083015181811161025a5782611b4b918501611018565b6020850152604083015190811161025a57611b669201611018565b604082015290565b9081602091031261025a575190565b60409065ffffffffffff610fd894931681528160208201520190610fdb565b90939293611ba8611ac7565b94805180611c9f575b5050600454606083901c6001600160a01b03918216148015929190611c84575b5050611c7c575f54611c17929190602090611bf690610d9a906001600160a01b031681565b8187015190604051808097819463810da75d60e01b83528860048401611b7d565b03915afa9081156104ab57611c44935f92611c49575b50611c3e9192604087015191610fc2565b90612176565b915190565b611c3e9250611c6f9060203d602011611c75575b611c678183610732565b810190611b6e565b91611c2d565b503d611c5d565b505090515f91565b60055481166001600160a01b03169116141590505f80611bd1565b611cb3929650602080918301019101611ae6565b935f80611bb1565b6004549091606083901c6001600160a01b039283161480159290611d62575b5050611143575f5460049190602090611cfd90610d9a906001600160a01b031681565b60405163bd49c35f60e01b815293849182905afa9081156104ab57610fd8925f92611d3d575b50611d36905f52600260205260405f2090565b5490612176565b611d36919250611d5b9060203d602011611c7557611c678183610732565b9190611d23565b60055481166001600160a01b03169116141590505f80611cda565b8054821015611d92575f5260205f2001905f90565b634e487b7160e01b5f52603260045260245ffd5b8054600160401b81101561071257611dc391600182018155611d7d565b8154905f199060031b1b19169055565b90815491600160401b831015610712578261151a91600161076095018155611d7d565b908154905f829160058411611e6a575b611e119350846124d6565b80611e4357505f905b6001600160d01b038216156113a057610fd8916001611e399201611d7d565b90549060031b1c90565b611e5d611e52611e649261184d565b835f5260205f200190565b5460301c90565b90611e1a565b9192611e75816123a3565b810390811161131857611e1193855f5265ffffffffffff808360205f20015416908516105f14611ea6575091611e06565b929150611eb29061130a565b90611e06565b60405190611ec5826106f7565b5f6020838281520152565b90611ef9611ef3611f1a92611ee3611eb8565b50611eec611eb8565b5084611d7d565b50612188565b91600165ffffffffffff845116936020828060d01b03910151169101611d7d565b90549060405192611f2a846106f7565b835260031b1c602082015290565b611f406121fb565b611f486121fb565b60015f8051602061255683398151915255565b60405190611f6882610717565b5f6040838281528260208201520152565b8091039060a0821261025a57606060405192611f9484610717565b1261025a57608090604051611fa881610717565b8151611fb38161052d565b81526020820151611fc38161052d565b60208201526040820151611fd68161052d565b604082015283526060810151611feb8161052d565b60208401520151611b668161052d565b612003611f5b565b5061201981519160208080948301019101611f79565b80820180516040516302910f8b60e31b8082526001600160a01b039283166004830152939491939082816024817f000000000000000000000000000000000000000000000000000000000000000089165afa9081156104ab575f91612159575b501561046a57816120bd916040870195612099875160018060a01b031690565b6040519283526001600160a01b031660048301529092839190829081906024820190565b03917f0000000000000000000000000000000000000000000000000000000000000000165afa9182156104ab575f9261213c575b50501561212a5751600480546001600160a01b039283166001600160a01b03199182161790915591516005805490931691161790555190565b604051631f0853c160e21b8152600490fd5b6121529250803d106104a4576104968183610732565b5f806120f1565b6121709150833d85116104a4576104968183610732565b5f612079565b9080821015612183575090565b905090565b90604051612195816106f7565b915465ffffffffffff8116835260301c6020830152565b8054806121bd5750505f905f905f90565b5f19908082810111611318576121da925f5260205f200101612188565b9065ffffffffffff82511691602060018060d01b0391015116906001929190565b60ff5f805160206125768339815191525460401c161561221757565b604051631afcd79f60e31b8152600490fd5b8054600160401b8110156107125761224691600182018155611d7d565b61227157815160209092015160301b65ffffffffffff191665ffffffffffff92909216919091179055565b634e487b7160e01b5f525f60045260245ffd5b80549293929190821561237a576122a56122a0611e528561184d565b612188565b906122b6825165ffffffffffff1690565b65ffffffffffff848116911681106123685761232c9460209488926122e461192a875165ffffffffffff1690565b03612330575061231e926122fa6123059261184d565b905f5260205f200190565b9065ffffffffffff82549181199060301b169116179055565b01516001600160d01b031690565b9190565b91505061236391612350612342610753565b65ffffffffffff9093168352565b6001600160d01b03881682860152612229565b61231e565b604051632520601d60e01b8152600490fd5b61239e925061238a612342610753565b6001600160d01b0385166020830152612229565b5f9190565b80156111435780611c3e61246e61246461245a61245061244661243c6124326001610fd89a5f908b60801c806124ca575b508060401c806124bd575b508060201c806124b0575b508060101c806124a3575b508060081c80612496575b508060041c80612489575b508060021c8061247c575b50821c612475575b811c1b61242b818b6112ec565b0160011c90565b61242b818a6112ec565b61242b81896112ec565b61242b81886112ec565b61242b81876112ec565b61242b81866112ec565b61242b81856112ec565b80926112ec565b810161241e565b600291509101905f612416565b600491509101905f61240b565b600891509101905f612400565b601091509101905f6123f5565b602091509101905f6123ea565b604091509101905f6123df565b9150506080905f6123d4565b91905b8382106124e65750505090565b9091928083169080841860011c820180921161131857845f5265ffffffffffff808360205f20015416908416105f146125235750925b91906124d9565b93925061252f9061130a565b9161251c56fe02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268009b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a2646970667358221220dae242242ae38bf129200c0400461c817fd7d45e08b63cbee29f0e840f1e00d864736f6c63430008190033","sourceMap":"681:3264:79:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;;;;;-1:-1:-1;;681:3264:79;;;;;;;;;;;;;;;;;;-1:-1:-1;;;3551:47:23;;;:87;;;;681:3264:79;;;;;;;;;;3551:87:23;-1:-1:-1;;;1133:40:29;;-1:-1:-1;3551:87:23;;;681:3264:79;-1:-1:-1;681:3264:79;;;;;;;;-1:-1:-1;;681:3264:79;;;;;;1537:38:76;-1:-1:-1;;;;;681:3264:79;;;;;;;;;;;;-1:-1:-1;;681:3264:79;;;;;;1632:54:76;-1:-1:-1;;;;;681:3264:79;;;;;;;;;;;;-1:-1:-1;;681:3264:79;;;;;;1743:56:76;-1:-1:-1;;;;;681:3264:79;;;;;;;;;;;;-1:-1:-1;;681:3264:79;;;;;;-1:-1:-1;;;;;681:3264:79;;;;;;;;3217:103:28;;;:::i;:::-;681:3264:79;;-1:-1:-1;;;4285:48:76;;4322:10;681:3264:79;4285:48:76;;681:3264:79;;;;;-1:-1:-1;;;;;4295:16:76;681:3264:79;4285:48:76;;;;;;;-1:-1:-1;4285:48:76;;;681:3264:79;4284:49:76;;4280:99;;-1:-1:-1;;;;;681:3264:79;-1:-1:-1;;4322:10:76;297:2:88;681:3264:79;;267:46:88;4459:27:76;;;;681:3264:79;;4459:15:76;681:3264:79;;;;;;;4459:27:76;681:3264:79;4459:37:76;4455:87;;4654:38;4552:27;4654:38;4552:27;;;681:3264:79;;4459:15:76;681:3264:79;;;;;;;4552:27:76;681:3264:79;4631:6:76;;;;:::i;:::-;681:3264:79;;;;;;;;;;;;;4654:38:76;;;;3282:1:28;1805;-1:-1:-1;;;;;;;;;;;681:3264:79;3716:283:28;3282:1;681:3264:79;4455:87:76;681:3264:79;;-1:-1:-1;;;4519:12:76;;681:3264:79;;4519:12:76;4280:99;681:3264:79;;-1:-1:-1;;;4356:12:76;;681:3264:79;;4356:12:76;4285:48;;;;681:3264:79;4285:48:76;681:3264:79;4285:48:76;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;:::i;681:3264:79:-;;;;;;-1:-1:-1;;681:3264:79;;;;;;-1:-1:-1;681:3264:79;-1:-1:-1;;;;;;;;;;;681:3264:79;;;4919:24:23;681:3264:79;-1:-1:-1;681:3264:79;4919:24:23;681:3264:79;;;;;;;;;;;;;-1:-1:-1;;681:3264:79;;;;;;322:32:69;-1:-1:-1;;;;;681:3264:79;;;;;;;-1:-1:-1;;;;;681:3264:79;;;;;:::o;:::-;;;;;;-1:-1:-1;;681:3264:79;;;;5350:25:23;681:3264:79;;;;;;;:::i;:::-;;-1:-1:-1;681:3264:79;-1:-1:-1;;;;;;;;;;;681:3264:79;;3202:4:23;4919:24;681:3264:79;-1:-1:-1;681:3264:79;4919:24:23;681:3264:79;3202:4:23;:::i;:::-;5350:25;:::i;681:3264:79:-;;;;;;-1:-1:-1;;681:3264:79;;;;;;;;;:::i;:::-;966:10:27;-1:-1:-1;;;;;681:3264:79;;6441:34:23;6437:102;;6549:37;681:3264:79;;;6549:37:23;:::i;6437:102::-;681:3264:79;;-1:-1:-1;;;6498:30:23;;681:3264:79;;6498:30:23;681:3264:79;;;;;;-1:-1:-1;;681:3264:79;;;;;;;;;:::i;:::-;3217:103:28;;:::i;:::-;966:10:27;-1:-1:-1;681:3264:79;;;;;;;;;;1356:26:76;;681:3264:79;;4468:23:23;4464:108;;-1:-1:-1;4861:4:76;681:3264:79;-1:-1:-1;;;;;681:3264:79;;;;;;4861:13:76;;4857:63;;-1:-1:-1;;;;;;681:3264:79;;;4861:4:76;681:3264:79;4958:14:76;-1:-1:-1;;4958:14:76;4861:4;-1:-1:-1;;;;;;;;;;;681:3264:79;;4464:108:23;681:3264:79;;;;4514:47:23;;;;;;966:10:27;681:3264:79;4514:47:23;;681:3264:79;;;;;4514:47:23;681:3264:79;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;681:3264:79;;;;;;;:::o;:::-;;:::i;:::-;;;;;;;-1:-1:-1;;;;;681:3264:79;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;681:3264:79;;;;;;;:::o;:::-;;;;;;;:::i;:::-;:::o;:::-;-1:-1:-1;;;;;681:3264:79;;;;;;-1:-1:-1;;681:3264:79;;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;681:3264:79;;;;;;;;;;;;;;:::o;:::-;;;;;;-1:-1:-1;;681:3264:79;;;;;;;;;;;;;;;-1:-1:-1;;;;;681:3264:79;;;;;;;2045:63;681:3264;;;;;;:::i;:::-;;;;-1:-1:-1;681:3264:79;2045:16;681:3264;;;-1:-1:-1;681:3264:79;2045:63;:::i;:::-;681:3264;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;681:3264:79;;;;;;;;;;;;;;;:::o;:::-;;;;;;-1:-1:-1;;681:3264:79;;;;-1:-1:-1;;;;;681:3264:79;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;681:3264:79;;;;;;;4301:16:25;681:3264:79;;4726:16:25;;:34;;;;681:3264:79;4805:1:25;4790:16;:50;;;;681:3264:79;4855:13:25;:30;;;;681:3264:79;4851:91:25;;;-1:-1:-1;;;;;;;;;;;681:3264:79;;-1:-1:-1;;681:3264:79;;;;;718:4:69;;4951:18:25;4979:67;;718:4:69;:::i;:::-;5066:101:25;;681:3264:79;5066:101:25;-1:-1:-1;;;;;;;;;;;681:3264:79;;-1:-1:-1;;;;681:3264:79;;;;;-1:-1:-1;681:3264:79;;5142:14:25;;681:3264:79;;5142:14:25;681:3264:79;4979:67:25;-1:-1:-1;;;;;;;;;;;681:3264:79;;-1:-1:-1;;;;681:3264:79;-1:-1:-1;;;681:3264:79;;;718:4:69;:::i;4851:91:25:-;681:3264:79;;-1:-1:-1;;;4908:23:25;;681:3264:79;;4908:23:25;4855:30;4872:13;;;4855:30;;;4790:50;4818:4;4810:25;:30;;-1:-1:-1;4790:50:25;;4726:34;;;-1:-1:-1;4726:34:25;;681:3264:79;;;;;;-1:-1:-1;;681:3264:79;;;;;;;1253:6:76;681:3264:79;;;;;;;;;-1:-1:-1;;681:3264:79;;;;1267:23;681:3264;;;-1:-1:-1;;;;;681:3264:79;;;;;;;;;;;;;;-1:-1:-1;;681:3264:79;;;;;;;1356:26:76;681:3264:79;;;;;;;;;-1:-1:-1;;681:3264:79;;;;;;;;-1:-1:-1;;;;;681:3264:79;;;;;;;;;;;;;;-1:-1:-1;;681:3264:79;;;;;;;;-1:-1:-1;;;;;681:3264:79;;;;;;;;;;;;;;-1:-1:-1;;681:3264:79;;;;;;961:42;-1:-1:-1;;;;;681:3264:79;;;;;;;;;;;;-1:-1:-1;;681:3264:79;;;;;;3901:31:23;681:3264:79;;;;;:::i;:::-;;;-1:-1:-1;681:3264:79;-1:-1:-1;;;;;;;;;;;681:3264:79;;;-1:-1:-1;681:3264:79;;;;;;;;;;;;;;;;;3901:31:23;681:3264:79;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;681:3264:79;;;;-1:-1:-1;681:3264:79;;;477:31:75;681:3264:79;;;;;;:::i;:::-;;;;;;;;;;;;;;;416:25:75;;;;681:3264:79;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;-1:-1:-1;681:3264:79;;;;;;;;;;;;;477:31:75;;681:3264:79;;;;;;;;;;:::i;:::-;477:31:75;681:3264:79;;477:31:75;;;;;;:::i;:::-;518:79;;;681:3264:79;518:79:75;;681:3264:79;;;;;;;;;;;-1:-1:-1;;681:3264:79;;;;;;;;;;;;;;;;;-1:-1:-1;;681:3264:79;;;;;;;-1:-1:-1;;;;;404:28:69;681:3264:79;;;;;;;;;;-1:-1:-1;;681:3264:79;;;;;;1439:41:76;-1:-1:-1;;;;;681:3264:79;;;;;;;;;;;;-1:-1:-1;;681:3264:79;;;;;;-1:-1:-1;681:3264:79;2009:67:76;681:3264:79;;;;-1:-1:-1;681:3264:79;;;;;;;;;;;;;;-1:-1:-1;;681:3264:79;;;;5767:26:23;681:3264:79;;;;;;;:::i;:::-;;-1:-1:-1;681:3264:79;-1:-1:-1;;;;;;;;;;;681:3264:79;;3202:4:23;4919:24;681:3264:79;-1:-1:-1;681:3264:79;4919:24:23;681:3264:79;3202:4:23;:::i;:::-;5767:26;:::i;681:3264:79:-;;;;;;-1:-1:-1;;681:3264:79;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;-1:-1:-1;;;;;681:3264:79;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;-1:-1:-1;;681:3264:79;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;-1:-1:-1;;;;;681:3264:79;;;;;;;;;;;;:::i;:::-;3217:103:28;;:::i;:::-;-1:-1:-1;681:3264:79;;;5246:21:76;;:13;;-1:-1:-1;;;;;681:3264:79;5246:13:76;681:3264:79;;-1:-1:-1;;;;;681:3264:79;;;5246:21:76;681:3264:79;;-1:-1:-1;;;5246:23:76;;681:3264:79;;;;;5246:23:76;;;;;;;-1:-1:-1;5246:23:76;;;681:3264:79;-1:-1:-1;;;;;;681:3264:79;;;5232:10:76;:37;5228:87;;5341:4;681:3264:79;-1:-1:-1;;;;;681:3264:79;;;;5355:469:76;;681:3264:79;-1:-1:-1;;681:3264:79;;;;;;;;;;;;;;;;5839:55:76;;681:3264:79;;;;5839:55:76;;;;3282:1:28;1805;-1:-1:-1;;;;;;;;;;;681:3264:79;3716:283:28;5355:469:76;681:3264:79;;;;5435:94:76;;;;681:3264:79;5435:94:76;;;;;;;;;;;;681:3264:79;5435:94:76;;;:::i;:::-;;681:3264:79;;5435:94:76;;;;;;:::i;:::-;681:3264:79;5548:9:76;:51;5544:118;;-1:-1:-1;5839:55:76;5676:138;;;;5839:55;5676:138;;;1150:7;5676:138;;5355:469;;;5544:118;681:3264:79;;-1:-1:-1;;;5626:21:76;;681:3264:79;;5626:21:76;5228:87;681:3264:79;;-1:-1:-1;;;5292:12:76;;681:3264:79;;5292:12:76;5246:23;;;;;681:3264:79;5246:23:76;681:3264:79;5246:23:76;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;681:3264:79;;;;;;-1:-1:-1;;681:3264:79;;;;;;;;-1:-1:-1;;;;;681:3264:79;;;;;;;;;;;;;;-1:-1:-1;;681:3264:79;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;-1:-1:-1;;681:3264:79;;;;;;;1150:7:76;681:3264:79;;;;;;;;;-1:-1:-1;;681:3264:79;;;;;;;2700:1:76;681:3264:79;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;1914:201;;2045:63;1914:201;;-1:-1:-1;681:3264:79;2045:16;681:3264;;;-1:-1:-1;681:3264:79;2045:63;:::i;:::-;1914:201;:::o;681:3264::-;;;;;;;;;;;;;;;;;-1:-1:-1;681:3264:79;;;;;;;;-1:-1:-1;;681:3264:79;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;681:3264:79;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;;;;681:3264:79;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::o;:::-;-1:-1:-1;;;;;681:3264:79;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;2764:920:76:-;;2978:48;2764:920;;;;2978:48;;;;:::i;:::-;3036:36;;;681:3264:79;;:::i;:::-;;;;3086:20:76;3082:107;;2764:920;3216:11;;;;:193;;;;;2764:920;3216:394;;;;2764:920;3199:455;;;;;;2764:920;:::o;3199:455::-;3635:8;-1:-1:-1;3635:8:76;:::o;3216:394::-;3553:39;;;;;3430:180;3553:39;;;681:3264:79;;;;;;;;;;3430:180:76;;467:2:88;681:3264:79;3430:180:76;;;;;:::i;:::-;;681:3264:79;3444:31:76;-1:-1:-1;;;;;681:3264:79;3430:180:76;;;;;;;-1:-1:-1;3430:180:76;;;3216:394;3429:181;;3216:394;;;;;;3430:180;;;;3553:39;3430:180;3553:39;3430:180;;;;;;;:::i;:::-;;;;3216:193;-1:-1:-1;681:3264:79;;;-1:-1:-1;;;;;;681:3264:79;3248:161:76;3354:37;;;681:3264:79;3248:161:76;681:3264:79;;;;;;;;;;3248:161:76;;;;;;;:::i;:::-;;681:3264:79;3262:29:76;-1:-1:-1;;;;;681:3264:79;3248:161:76;;;;;;;-1:-1:-1;3248:161:76;;;3216:193;3247:162;;3216:193;;;3248:161;;;;;;;;;;;;;;:::i;:::-;;;;3082:107;3139:39;;;;;;;;;;;;;:::i;:::-;3082:107;;;;;681:3264:79;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;9856:1:60;681:3264:79;;;;;;;:::o;:::-;;:::i;3740:389:76:-;3918:5;681:3264:79;;;-1:-1:-1;;;3853:71:76;;;-1:-1:-1;;;;;681:3264:79;;;3853:71:76;;;681:3264:79;;;;;;;;3740:389:76;;681:3264:79;3853:71:76;;681:3264:79;;3853:71:76;681:3264:79;;;3867:29:76;681:3264:79;;3853:71:76;;;;;;;3918:5;3853:71;;;3740:389;3852:72;;681:3264:79;;;3852:181:76;;3740:389;3835:242;;;;;;4094:28;;;:::i;3835:242::-;4058:8;;3918:5;4058:8;:::o;3852:181::-;681:3264:79;;3945:88:76;;;-1:-1:-1;;;;;681:3264:79;;3853:71:76;3945:88;;681:3264:79;467:2:88;681:3264:79;;;;;;;;-1:-1:-1;681:3264:79;;;;;;;;3959:31:76;681:3264:79;3945:88:76;;;;;;;3918:5;3945:88;;;3852:181;3944:89;;;3852:181;;;;;3945:88;;;;;;-1:-1:-1;3945:88:76;;;;;;:::i;:::-;;;;;3853:71;;;;;;;;;;;;;;:::i;:::-;;;;3326:384:28;-1:-1:-1;;;;;;;;;;;1847:1:28;681:3264:79;;3526:20:28;3522:88;;1847:1;681:3264:79;;3326:384:28:o;3522:88::-;681:3264:79;;-1:-1:-1;;;3569:30:28;;;;;3164:253:79;3261:7;681:3264;-1:-1:-1;;;;;681:3264:79;467:2:88;681:3264:79;;;3261:31;3257:85;;-1:-1:-1;681:3264:79;3351:16;681:3264;;;-1:-1:-1;681:3264:79;;;837:15:62;;;14369:24:58;14365:103;;837:15:62;;681:3264:79;6360:12:86;;;;681:3264:79;;;6360:24:86;6356:75;;3164:253:79;6474:30:86;;;:::i;:::-;681:3264:79;;;;;;;;10303:8:60;;:63;:8;;;:63;-1:-1:-1;10303:63:60;;-1:-1:-1;;;;;681:3264:79;;;;10726:7:86;681:3264:79;;10736:17:86;;;;:::i;:::-;10726:31;;;6604:24;;;10726:31;-1:-1:-1;;6600:188:86;;;6657:7;;6644:29;6657:7;;;;6644:21;6657:7;;:::i;:::-;6644:21;;:::i;:::-;:29;681:3264:79;;;;;;;;;;;;;;;;;;;;;6600:188:86;6753:24;681:3264:79;8167:38:60;681:3264:79;;8167:38:60;;:::i;:::-;6753:24:86;;;:::i;6604:::-;681:3264:79;6614:14:86;;;-1:-1:-1;6604:24:86;;;;10726:31;;;;10303:63:60;681:3264:79;;;;;;;;;;14249:109:60;-1:-1:-1;14249:109:60;681:3264:79;-1:-1:-1;14249:109:60;;;681:3264:79;;;10303:63:60;;;6356:75:86;6400:20;;;:::i;:::-;6356:75;;14365:103:58;681:3264:79;;-1:-1:-1;;;14416:41:58;;14447:2;3261:7:79;14416:41:58;;681:3264:79;837:15:62;681:3264:79;;;;;;14416:41:58;3257:85:79;681:3264;;-1:-1:-1;;;3315:16:79;;3261:7;;3315:16;4148:103:23;-1:-1:-1;681:3264:79;;;-1:-1:-1;;;;;;;;;;;681:3264:79;;;;;;;;966:10:27;681:3264:79;;;;;;;;;;4468:23:23;4464:108;;4148:103;:::o;7270:387::-;-1:-1:-1;;;;;681:3264:79;;-1:-1:-1;681:3264:79;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2887:71:23;681:3264:79;;;;-1:-1:-1;681:3264:79;;;;;;;;;;;-1:-1:-1;;;;;681:3264:79;;;;;;;;;;-1:-1:-1;;681:3264:79;7509:4:23;681:3264:79;;;966:10:27;;-1:-1:-1;;;;;681:3264:79;-1:-1:-1;7532:40:23;-1:-1:-1;;7532:40:23;7509:4;7586:11;:::o;7270:387::-;-1:-1:-1;;;;;681:3264:79;;-1:-1:-1;681:3264:79;;;;;;;;;1356:26:76;;-1:-1:-1;;;;;;;;;;;2887:71:23;681:3264:79;;3901:31:23;681:3264:79;;;;-1:-1:-1;681:3264:79;;;;;;;;;;;-1:-1:-1;;;;;681:3264:79;;;;;;;;;;-1:-1:-1;;681:3264:79;7509:4:23;681:3264:79;;;966:10:27;;-1:-1:-1;;;;;681:3264:79;;7532:40:23;-1:-1:-1;;7532:40:23;7509:4;7586:11;:::o;7432:219::-;7628:12;;;-1:-1:-1;7628:12:23;:::o;7270:387::-;-1:-1:-1;681:3264:79;;;-1:-1:-1;;;;;;;;;;;681:3264:79;;;;;;;;-1:-1:-1;;;;;681:3264:79;;;;;;;;;;;;3901:31:23;681:3264:79;7892:388:23;-1:-1:-1;681:3264:79;;;-1:-1:-1;;;;;;;;;;;681:3264:79;;;;;;;;-1:-1:-1;;;;;681:3264:79;;;;;;;;;;;;;;;;-1:-1:-1;681:3264:79;;;;;;;;;;;-1:-1:-1;;;;;681:3264:79;;;;;;;;;;-1:-1:-1;;681:3264:79;;;966:10:27;;-1:-1:-1;;;;;681:3264:79;;8155:40:23;-1:-1:-1;;8155:40:23;681:3264:79;8209:11:23;:::o;681:3264:79:-;;;;;;;;;;;;;;;;;;:::o;:::-;-1:-1:-1;;681:3264:79;;;;;;;;:::o;:::-;;;;;;;;;;;;;:::o;7558:604:86:-;;681:3264:79;;7686:17:86;7682:83;;681:3264:79;7789:27:86;681:3264:79;7789:27:86;681:3264:79;;7789:27:86;;;;;;:::i;:::-;7860:14;;;;;:::i;:::-;681:3264:79;;;;;;;;;;;;;;;;7888:22:86;;;7884:77;;7975:21;-1:-1:-1;7975:84:86;;;;7558:604;7971:139;;;;8127:28;;;;:::i;7971:139::-;8082:17;;7789:27;8082:17;681:3264:79;8075:24:86;:::o;7975:84::-;681:3264:79;;;8009:16:86;681:3264:79;;8009:16:86;:::i;:::-;681:3264:79;;;8001:24:86;:57;;;;;7975:84;;;;;;;8001:57;8029:29;8038:8;;;8029:18;8038:8;8029:23;8038:8;;:::i;:::-;8029:18;;:::i;:::-;681:3264:79;;;;;8029:23:86;681:3264:79;;;;8029:29:86;;8001:57;;;;7884:77;7933:17;;;;;7789:27;7933:17;681:3264:79;7926:24:86;:::o;7682:83::-;7726:28;;;;:::i;681:3264:79:-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;681:3264:79;;;;;;;;:::i;5907:716:76:-;6030:34;5907:716;6030:34;;;;:::i;:::-;681:3264:79;;-1:-1:-1;;;6080:41:76;;-1:-1:-1;;;;;681:3264:79;;;6080:41:76;;;681:3264:79;;;;;6080:41:76;681:3264:79;;;6090:13:76;681:3264:79;;6080:41:76;;;;;;;-1:-1:-1;6080:41:76;;;5907:716;6079:42;;6075:90;;6266:27;681:3264:79;2540:111:28;6210:14:76;681:3264:79;2540:111:28;;;:::i;:::-;681:3264:79;;;;;;-1:-1:-1;;;;;681:3264:79;;-1:-1:-1;681:3264:79;;;-1:-1:-1;681:3264:79;;6210:14:76;6266:27;:::i;:::-;6080:41;6311:15;;681:3264:79;;;;-1:-1:-1;;;;;;681:3264:79;-1:-1:-1;;;;;681:3264:79;;;;;;;;;;;-1:-1:-1;;;;;681:3264:79;;;;6337:143:76;;5907:716;-1:-1:-1;6493:28:76;681:3264:79;-1:-1:-1;;;;;681:3264:79;;;;;;;6489:128:76;;5907:716;:::o;6489:128::-;6551:55;;;:::i;:::-;;5907:716::o;6337:143::-;6404:65;;;:::i;:::-;;6337:143;;;6075:90;681:3264:79;;-1:-1:-1;;;6144:10:76;;6080:41;;6144:10;6080:41;;;;;;;;;;;;;;:::i;:::-;;;;681:3264:79;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;;;;681:3264:79;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;:::i;2121:740::-;;;;;681:3264;;:::i;:::-;;;;2362:16;2358:92;;2121:740;-1:-1:-1;;2464:7:79;681:3264;467:2:88;681:3264:79;;;-1:-1:-1;;;;;681:3264:79;;;2464:31;;;;;681:3264;2464:56;;2121:740;2460:120;;;;-1:-1:-1;681:3264:79;2637:67;;681:3264;;2676:27;;2637;;:13;;-1:-1:-1;;;;;681:3264:79;2637:13;681:3264;2637:27;2676;;;;681:3264;;;;;;;;;;;2637:67;;;2464:7;2637:67;;;:::i;:::-;;;;;;;;;;2611:198;2637:67;-1:-1:-1;2637:67:79;;;2121:740;2763:31;2722:73;2763:31;;681:3264;2763:31;;;2722:73;;:::i;:::-;2611:198;;:::i;:::-;2823:21;;2121:740;:::o;2637:67::-;2722:73;2637:67;;;;2676:27;2637:67;2676:27;2637:67;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;2460:120;-1:-1:-1;;2547:21:79;;-1:-1:-1;;2536:33:79:o;2464:56::-;2499:8;681:3264;;;-1:-1:-1;;;;;681:3264:79;;;2499:21;;;-1:-1:-1;2464:56:79;;;;2358:92;2408:31;;;;;;;;;;;;;:::i;:::-;2358:92;;;;;2867:291;2977:7;681:3264;2867:291;;681:3264;;;;-1:-1:-1;;;;;681:3264:79;;;2977:31;;;;681:3264;2977:56;;2867:291;2973:95;;;;-1:-1:-1;681:3264:79;2977:7;;681:3264;3094:27;;:25;;:13;;-1:-1:-1;;;;;681:3264:79;3094:13;681:3264;3094:25;681:3264;;-1:-1:-1;;;3094:27:79;;681:3264;;;;;3094:27;;;;;;;3085:66;3094:27;-1:-1:-1;3094:27:79;;;2867:291;3123:27;;;681:3264;;4459:15:76;681:3264:79;;;;;;;3123:27;681:3264;3085:66;;:::i;3094:27::-;3123;3094;;;;;;;;;;;;;;;:::i;:::-;;;;;2977:56;3012:8;681:3264;;;-1:-1:-1;;;;;681:3264:79;;;3012:21;;;-1:-1:-1;2977:56:79;;;;681:3264;;;;;;;;-1:-1:-1;681:3264:79;;-1:-1:-1;681:3264:79;;;-1:-1:-1;681:3264:79;:::o;:::-;;;;;;;;;;;;;;;-1:-1:-1;;;681:3264:79;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::o;:::-;;;;;-1:-1:-1;;;681:3264:79;;;;;;;;;;;;;;;:::i;6999:207:86:-;;681:3264:79;;9594:15:60;-1:-1:-1;9619:18:60;9652:7;9658:1;9652:7;;9648:234;;6999:207:86;9906:53:60;;;;;:::i;:::-;9977:8;;;:63;-1:-1:-1;9977:63:60;;-1:-1:-1;;;;;681:3264:79;;7168:7:86;681:3264:79;;;7178:12:86;;:17;:12;;:17;:::i;:::-;681:3264:79;;;;;;;;9977:63:60;9992:41;10025:7;9992:48;10025:7;;:::i;:::-;9992:41;14249:109;;;;;;14099:265;;9992:41;681:3264:79;;;;;9992:48:60;9977:63;;;9648:234;9695:14;;;;;:::i;:::-;681:3264:79;;;;;;;9906:53:60;14249:109;;-1:-1:-1;14249:109:60;681:3264:79;14249:109:60;;;-1:-1:-1;14249:109:60;;681:3264:79;;;;;9727:48:60;9723:149;681:3264:79;;;9795:10:60;9723:149;9648:234;;9723:149;9850:7;;;;;;:::i;:::-;9723:149;9648:234;;681:3264:79;;;;;;;:::i;:::-;-1:-1:-1;681:3264:79;;;;;;;:::o;11486:272:86:-;;681:3264:79;11308:22:60;11718:31:86;11486:272;681:3264:79;;:::i;:::-;;;;:::i;:::-;;11308:22:60;;:::i;:::-;681:3264:79;;:::i;:::-;;11718:12:86;681:3264:79;;;;;11731:17:86;681:3264:79;;;;;11731:17:86;;681:3264:79;;11718:12:86;;:31;:::i;:::-;681:3264:79;;;;;;;;;:::i;:::-;;;;;;11731:17:86;11672:79;;681:3264:79;11486:272:86;:::o;6893:76:25:-;;;:::i;:::-;;;:::i;:::-;1805:1:28;-1:-1:-1;;;;;;;;;;;681:3264:79;6893:76:25:o;681:3264:79:-;;;;;;;:::i;:::-;-1:-1:-1;681:3264:79;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;3423:520::-;681:3264;;:::i;:::-;;3571:30;681:3264;;3571:30;;;;;;;;;;;:::i;:::-;3654:14;;;681:3264;;;;-1:-1:-1;;;3617:52:79;;;-1:-1:-1;;;;;681:3264:79;;;3617:52;;;681:3264;3654:14;;681:3264;;;3654:14;681:3264;;;3627:16;681:3264;;3617:52;;;;;;;-1:-1:-1;3617:52:79;;;3423:520;3616:53;;3612:103;;3768:15;3730:54;3768:15;681:3264;3768:15;;681:3264;;;;;;;;;;;;;;;3730:54;;;-1:-1:-1;;;;;681:3264:79;3617:52;3730:54;;681:3264;;;;;-1:-1:-1;681:3264:79;;;;;;;;;3730:54;;3740:17;;681:3264;3730:54;;;;;;;-1:-1:-1;3730:54:79;;;3423:520;3729:55;;;3725:106;;681:3264;3617:52;681:3264;;-1:-1:-1;;;;;681:3264:79;;;-1:-1:-1;;;;;;681:3264:79;;;;;;;;;3875:26;681:3264;;;;;;;;;;3919:17;3423:520;:::o;3725:106::-;681:3264;;-1:-1:-1;;;3807:13:79;;3617:52;;3807:13;3730:54;;;;;;-1:-1:-1;3730:54:79;;;;;;:::i;:::-;;;;;3617:52;;;;;;;;;;;;;;:::i;:::-;;;;2557:104:57;;2641:5;;;;;;:13;2557:104;:::o;2641:13::-;;;2557:104;:::o;681:3264:79:-;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::o;10552:388:60:-;681:3264:79;;10728:8:60;;;10752:20;;10690:17;10752:20;10690:17;10752:20;10690:17;10752:20;:::o;10724:210::-;681:3264:79;;;;;;;;;;;14249:109:60;10690:17;14249:109;;10690:17;14249:109;;;681:3264:79;:::i;:::-;;;;;;;14249:109:60;681:3264:79;;;;;10911:11:60;;681:3264:79;;10886:37:60;10870:1;10886:37;;;:::o;7084:141:25:-;681:3264:79;-1:-1:-1;;;;;;;;;;;681:3264:79;;;;7150:18:25;7146:73;;7084:141::o;7146:73::-;681:3264:79;;-1:-1:-1;;;7191:17:25;;;;;681:3264:79;;;-1:-1:-1;;;681:3264:79;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;681:3264:79;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;11513:870:60;681:3264:79;;11513:870:60;;;681:3264:79;11513:870:60;11672:7;;;;681:3264:79;11775:28:60;11795:7;;;:::i;11775:28::-;681:3264:79;:::i;:::-;;;;;;;;;;;;;;;;11877:15:60;-1:-1:-1;11873:91:60;;681:3264:79;;12233:11:60;681:3264:79;;;12027:16:60;681:3264:79;;;;;;;12027:16:60;;;;12083:7;12063:43;12083:7;;12063:28;12083:7;;:::i;:::-;12063:28;14249:109;;;;;;14099:265;;12063:28;681:3264:79;;;;;;;;;;;;;;;;;12063:43:60;12233:11;681:3264:79;-1:-1:-1;;;;;681:3264:79;;;;12225:27:60;;:::o;12023:189::-;681:3264:79;;;12145:52:60;681:3264:79;12155:41:60;681:3264:79;;:::i;:::-;;;;;;;;12155:41:60;-1:-1:-1;;;;;681:3264:79;;12155:41:60;;;681:3264:79;12145:52:60;:::i;:::-;12023:189;;11873:91;681:3264:79;;-1:-1:-1;;;11919:30:60;;;;;11668:709;12283:52;681:3264:79;;12293:41:60;681:3264:79;;:::i;12293:41:60:-;-1:-1:-1;;;;;681:3264:79;;12293:41:60;;;681:3264:79;12145:52:60;:::i;12283:::-;11678:1;12349:17;;:::o;8587:1642:57:-;8658:6;;8654:45;;9401:7;10201:10;10142:26;10093;10044;9995;9946;9897;9848;681:3264:79;10189:23:57;9401:7;8663:1;681:3264:79;;;;10826:16:57;10822:99;;8587:1642;681:3264:79;;;;10938:15:57;10934:96;;8587:1642;681:3264:79;;;;11047:15:57;11043:96;;8587:1642;681:3264:79;;;;11156:15:57;11152:96;;8587:1642;681:3264:79;;;;11265:14:57;11261:93;;8587:1642;681:3264:79;;;;11371:14:57;11367:93;;8587:1642;681:3264:79;;;;11477:14:57;11473:93;;8587:1642;681:3264:79;;;11579:64:57;;8587:1642;681:3264:79;;;9858:10:57;;;;:::i;:::-;681:3264:79;;;;;9848:26:57;9907:10;;;;:::i;9897:26::-;9956:10;;;;:::i;9946:26::-;10005:10;;;;:::i;9995:26::-;10054:10;;;;:::i;10044:26::-;10103:10;;;;:::i;10093:26::-;10152:10;;;;:::i;10142:26::-;10201:10;;;:::i;11579:64::-;681:3264:79;;11579:64:57;;11473:93;681:3264:79;11511:11:57;;681:3264:79;;11473:93:57;;;;11367;681:3264:79;11405:11:57;;681:3264:79;;11367:93:57;;;;11261;681:3264:79;11299:11:57;;681:3264:79;;11261:93:57;;;;11152:96;681:3264:79;11191:12:57;;681:3264:79;;11152:96:57;;;;11043;681:3264:79;11082:12:57;;681:3264:79;;11043:96:57;;;;10934;681:3264:79;10973:12:57;;681:3264:79;;10934:96:57;;;;10822:99;10862:13;;;681:3264:79;10822:99:57;;;;12736:433:60;;;12919:10;;;;;;13151:11;;;12736:433;:::o;12912:230::-;2900:5:57;;;;;;2910;;;;681:3264:79;;;;;;;;;14249:109:60;-1:-1:-1;14249:109:60;681:3264:79;14249:109:60;;;-1:-1:-1;14249:109:60;;681:3264:79;;;;;-1:-1:-1;12996:136:60;681:3264:79;;;13055:10:60;12996:136;;12912:230;;;;12996:136;13110:7;;;;;;:::i;:::-;12996:136;;","linkReferences":{},"immutableReferences":{"57808":[{"start":1278,"length":32}],"57811":[{"start":3054,"length":32}],"58762":[{"start":893,"length":32},{"start":3111,"length":32},{"start":8264,"length":32}],"58765":[{"start":627,"length":32},{"start":6590,"length":32}],"58768":[{"start":695,"length":32},{"start":4624,"length":32},{"start":4948,"length":32}],"58771":[{"start":763,"length":32},{"start":4471,"length":32},{"start":5074,"length":32}],"60387":[{"start":2670,"length":32},{"start":8385,"length":32}]}},"methodIdentifiers":{"DEFAULT_ADMIN_ROLE()":"a217fddf","FACTORY()":"2dd31000","HOOK_GAS_LIMIT()":"ff54740f","HOOK_RESERVE()":"557cab44","HOOK_SET_ROLE()":"6679191e","NETWORK_REGISTRY()":"c0cd7c3e","OPERATOR_NETWORK_OPT_IN_SERVICE()":"1a80e500","OPERATOR_REGISTRY()":"83ce0322","OPERATOR_VAULT_OPT_IN_SERVICE()":"128e5d82","TYPE()":"bb24fe8a","VAULT_FACTORY()":"103f2907","VERSION()":"ffa1ad74","getRoleAdmin(bytes32)":"248a9ca3","grantRole(bytes32,address)":"2f2ff15d","hasRole(bytes32,address)":"91d14854","hook()":"7f5a7c7b","initialize(bytes)":"439fab91","maxNetworkLimit(bytes32)":"d15b740e","maxNetworkLimitAt(bytes32,uint48,bytes)":"437224a3","network()":"6739afca","onSlash(bytes32,address,uint256,uint48,bytes)":"e49561ee","operator()":"570ca735","renounceRole(bytes32,address)":"36568abe","revokeRole(bytes32,address)":"d547741f","setHook(address)":"3dfd3873","setMaxNetworkLimit(uint96,uint256)":"23f752d5","stake(bytes32,address)":"fd4d447c","stakeAt(bytes32,address,uint48,bytes)":"e02f6937","staticDelegateCall(address,bytes)":"9f86fd85","supportsInterface(bytes4)":"01ffc9a7","vault()":"fbfa77cf"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operatorRegistry\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"networkRegistry\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"vaultFactory\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operatorVaultOptInService\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operatorNetworkOptInService\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"delegatorFactory\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"entityType\",\"type\":\"uint64\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"AccessControlBadConfirmation\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"neededRole\",\"type\":\"bytes32\"}],\"name\":\"AccessControlUnauthorizedAccount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AlreadySet\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CheckpointUnorderedInsertion\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientHookGas\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidNetwork\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotNetwork\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotOperator\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotSlasher\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotVault\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ReentrancyGuardReentrantCall\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"bits\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"SafeCastOverflowedUintDowncast\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint48\",\"name\":\"captureTimestamp\",\"type\":\"uint48\"}],\"name\":\"OnSlash\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"previousAdminRole\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"newAdminRole\",\"type\":\"bytes32\"}],\"name\":\"RoleAdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleRevoked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"hook\",\"type\":\"address\"}],\"name\":\"SetHook\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"SetMaxNetworkLimit\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DEFAULT_ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"FACTORY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"HOOK_GAS_LIMIT\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"HOOK_RESERVE\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"HOOK_SET_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"NETWORK_REGISTRY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"OPERATOR_NETWORK_OPT_IN_SERVICE\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"OPERATOR_REGISTRY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"OPERATOR_VAULT_OPT_IN_SERVICE\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"TYPE\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"VAULT_FACTORY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"VERSION\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleAdmin\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"grantRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"hook\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"}],\"name\":\"maxNetworkLimit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hint\",\"type\":\"bytes\"}],\"name\":\"maxNetworkLimitAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"network\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint48\",\"name\":\"captureTimestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"onSlash\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"operator\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"callerConfirmation\",\"type\":\"address\"}],\"name\":\"renounceRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"hook_\",\"type\":\"address\"}],\"name\":\"setHook\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint96\",\"name\":\"identifier\",\"type\":\"uint96\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"setMaxNetworkLimit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"stake\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hints\",\"type\":\"bytes\"}],\"name\":\"stakeAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"staticDelegateCall\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"vault\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"AccessControlBadConfirmation()\":[{\"details\":\"The caller of a function is not the expected one. NOTE: Don't confuse with {AccessControlUnauthorizedAccount}.\"}],\"AccessControlUnauthorizedAccount(address,bytes32)\":[{\"details\":\"The `account` is missing a role.\"}],\"CheckpointUnorderedInsertion()\":[{\"details\":\"A value was attempted to be inserted on a past checkpoint.\"}],\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"ReentrancyGuardReentrantCall()\":[{\"details\":\"Unauthorized reentrant call.\"}],\"SafeCastOverflowedUintDowncast(uint8,uint256)\":[{\"details\":\"Value doesn't fit in an uint of `bits` size.\"}]},\"events\":{\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"OnSlash(bytes32,address,uint256,uint48)\":{\"params\":{\"amount\":\"amount of the collateral to be slashed\",\"captureTimestamp\":\"time point when the stake was captured\",\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"}},\"RoleAdminChanged(bytes32,bytes32,bytes32)\":{\"details\":\"Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole` `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite {RoleAdminChanged} not being emitted signaling this.\"},\"RoleGranted(bytes32,address,address)\":{\"details\":\"Emitted when `account` is granted `role`. `sender` is the account that originated the contract call, an admin role bearer except when using {AccessControl-_setupRole}.\"},\"RoleRevoked(bytes32,address,address)\":{\"details\":\"Emitted when `account` is revoked `role`. `sender` is the account that originated the contract call: - if using `revokeRole`, it is the admin role bearer - if using `renounceRole`, it is the role bearer (i.e. `account`)\"},\"SetHook(address)\":{\"params\":{\"hook\":\"address of the hook\"}},\"SetMaxNetworkLimit(bytes32,uint256)\":{\"params\":{\"amount\":\"new maximum subnetwork's limit (how much stake the subnetwork is ready to get)\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"}}},\"kind\":\"dev\",\"methods\":{\"VERSION()\":{\"details\":\"Must return 1 for this one.\",\"returns\":{\"_0\":\"version of the delegator\"}},\"getRoleAdmin(bytes32)\":{\"details\":\"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}.\"},\"grantRole(bytes32,address)\":{\"details\":\"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event.\"},\"hasRole(bytes32,address)\":{\"details\":\"Returns `true` if `account` has been granted `role`.\"},\"initialize(bytes)\":{\"params\":{\"data\":\"some data to use\"}},\"maxNetworkLimitAt(bytes32,uint48,bytes)\":{\"params\":{\"hint\":\"hint for checkpoint index\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\",\"timestamp\":\"time point to get the maximum subnetwork limit at\"},\"returns\":{\"_0\":\"maximum limit of the subnetwork\"}},\"onSlash(bytes32,address,uint256,uint48,bytes)\":{\"details\":\"Only the vault's slasher can call this function.\",\"params\":{\"amount\":\"amount of the collateral slashed\",\"captureTimestamp\":\"time point when the stake was captured\",\"data\":\"some additional data\",\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"}},\"renounceRole(bytes32,address)\":{\"details\":\"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `callerConfirmation`. May emit a {RoleRevoked} event.\"},\"revokeRole(bytes32,address)\":{\"details\":\"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event.\"},\"setHook(address)\":{\"details\":\"Only a HOOK_SET_ROLE holder can call this function. The hook can have arbitrary logic under certain functions, however, it doesn't affect the stake guarantees.\",\"params\":{\"hook\":\"address of the hook\"}},\"setMaxNetworkLimit(uint96,uint256)\":{\"details\":\"Only a network can call this function.\",\"params\":{\"amount\":\"new maximum subnetwork's limit\"}},\"stake(bytes32,address)\":{\"details\":\"Warning: this function is not safe to use for stake capturing, as it can change by the end of the block.\",\"params\":{\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"},\"returns\":{\"_0\":\"slashable stake until the end of the next epoch\"}},\"stakeAt(bytes32,address,uint48,bytes)\":{\"details\":\"Warning: it is not safe to use timestamp >= current one for the stake capturing, as it can change later.\",\"params\":{\"hints\":\"hints for the checkpoints' indexes\",\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\",\"timestamp\":\"time point to capture the stake at\"},\"returns\":{\"_0\":\"slashable stake at the given timestamp until the end of the consequent epoch\"}},\"staticDelegateCall(address,bytes)\":{\"details\":\"It allows to use this contract's storage on-chain.\",\"params\":{\"data\":\"data to make a delegatecall with\",\"target\":\"address of the contract to make a delegatecall to\"}},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"}},\"stateVariables\":{\"OPERATOR_REGISTRY\":{\"return\":\"address of the operator registry\",\"returns\":{\"_0\":\"address of the operator registry\"}},\"network\":{\"return\":\"address of the network\",\"returns\":{\"_0\":\"address of the network\"}},\"operator\":{\"return\":\"address of the operator\",\"returns\":{\"_0\":\"address of the operator\"}}},\"version\":1},\"userdoc\":{\"events\":{\"OnSlash(bytes32,address,uint256,uint48)\":{\"notice\":\"Emitted when a slash happens.\"},\"SetHook(address)\":{\"notice\":\"Emitted when a hook is set.\"},\"SetMaxNetworkLimit(bytes32,uint256)\":{\"notice\":\"Emitted when a subnetwork's maximum limit is set.\"}},\"kind\":\"user\",\"methods\":{\"FACTORY()\":{\"notice\":\"Get the factory's address.\"},\"HOOK_GAS_LIMIT()\":{\"notice\":\"Get a gas limit for the hook.\"},\"HOOK_RESERVE()\":{\"notice\":\"Get a reserve gas between the gas limit check and the hook's execution.\"},\"HOOK_SET_ROLE()\":{\"notice\":\"Get a hook setter's role.\"},\"NETWORK_REGISTRY()\":{\"notice\":\"Get the network registry's address.\"},\"OPERATOR_NETWORK_OPT_IN_SERVICE()\":{\"notice\":\"Get the operator-network opt-in service's address.\"},\"OPERATOR_REGISTRY()\":{\"notice\":\"Get the operator registry's address.\"},\"OPERATOR_VAULT_OPT_IN_SERVICE()\":{\"notice\":\"Get the operator-vault opt-in service's address.\"},\"TYPE()\":{\"notice\":\"Get the entity's type.\"},\"VAULT_FACTORY()\":{\"notice\":\"Get the vault factory's address.\"},\"VERSION()\":{\"notice\":\"Get a version of the delegator (different versions mean different interfaces).\"},\"hook()\":{\"notice\":\"Get the hook's address.\"},\"initialize(bytes)\":{\"notice\":\"Initialize this entity contract by using a given data.\"},\"maxNetworkLimit(bytes32)\":{\"notice\":\"Get a particular subnetwork's maximum limit (meaning the subnetwork is not ready to get more as a stake).\"},\"maxNetworkLimitAt(bytes32,uint48,bytes)\":{\"notice\":\"Get a particular subnetwork's maximum limit at a given timestamp using a hint (meaning the subnetwork is not ready to get more as a stake).\"},\"network()\":{\"notice\":\"Get a network the vault delegates funds to.\"},\"onSlash(bytes32,address,uint256,uint48,bytes)\":{\"notice\":\"Called when a slash happens.\"},\"operator()\":{\"notice\":\"Get an operator managing the vault's funds.\"},\"setHook(address)\":{\"notice\":\"Set a new hook.\"},\"setMaxNetworkLimit(uint96,uint256)\":{\"notice\":\"Set a maximum limit for a subnetwork (how much stake the subnetwork is ready to get). identifier identifier of the subnetwork\"},\"stake(bytes32,address)\":{\"notice\":\"Get a stake that a given subnetwork will be able to slash for a certain operator until the end of the next epoch (if no cross-slashing and no slashings by the subnetwork).\"},\"stakeAt(bytes32,address,uint48,bytes)\":{\"notice\":\"Get a stake that a given subnetwork could be able to slash for a certain operator at a given timestamp until the end of the consequent epoch using hints (if no cross-slashing and no slashings by the subnetwork).\"},\"staticDelegateCall(address,bytes)\":{\"notice\":\"Make a delegatecall from this contract to a given target contract with a particular data (always reverts with a return data).\"},\"vault()\":{\"notice\":\"Get the vault's address.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/contracts/delegator/OperatorNetworkSpecificDelegator.sol\":\"OperatorNetworkSpecificDelegator\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol\":{\"keccak256\":\"0x6662ec4e5cefca03eeadd073e9469df8d2944bb2ee8ec8f7622c2c46aab5f225\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4d8544c6f8daa4d1bc215c6a72fe0acdb748664a105b0e5efc19295667521d45\",\"dweb:/ipfs/QmdGWqdnXT8S3RgCR6aV8XHZrsybieMQLLnug1NtpSjEXN\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609\",\"dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9\",\"dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardUpgradeable.sol\":{\"keccak256\":\"0xb44e086e941292cdc7f440de51478493894ef0b1aeccb0c4047445919f667f74\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://942dad22fbdc1669f025540ba63aa3ccfad5f8458fc5d4525b31ebf272e7af45\",\"dweb:/ipfs/Qmdo4X2M82aM3AMoW2kf2jhYkSCyC4T1pHNd6obdsDFnAB\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol\":{\"keccak256\":\"0xdaba3f7c42c55b2896353f32bd27d4d5f8bae741b3b05d4c53f67abc4dc47ce8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1fa2e61141c602510bcd2cd936ed9561922ac8772a9b9c9a9db091a74e354a45\",\"dweb:/ipfs/QmcHQDDoEBwJmwUbzoVkytvJsBx3KVHYFFnDkvRGWh9Wmh\"]},\"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0xb6b36edd6a2999fd243ff226d6cbf84bd71af2432bbd0dfe19392996a1d9cb41\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1fd2f35495652e57e3f99bc6c510bc5f7dd398a176ea2e72d8ed730aebc6ca26\",\"dweb:/ipfs/QmTQV6X4gkikTib49cho5iDX3JvSQbdsoEChoDwrk3CbbH\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875\",\"dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0xe19a4d5f31d2861e7344e8e535e2feafb913d806d3e2b5fe7782741a2a7094fe\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4aed79c0fa6f0546ed02f2f683e8f77f0fd2ed7eb34d8bbf3d373c9a6d95b13c\",\"dweb:/ipfs/QmWqVz6UAVqmnWU5pqYPt1o6iDEZyPaBraAA3rKfTTSfYj\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/Checkpoints.sol\":{\"keccak256\":\"0xbdc5e074d7dd6678f67e92b1a51a20226801a407b0e1af3da367c5d1ff4519ad\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a36cca6b22fff3db16fc789ff6c60eea71d4b156065d4d0c83a0bc5e91a77a8b\",\"dweb:/ipfs/QmYN3exd5AemxjBrN8XMB1p5LbbE16uC3sjbYjwi8AjcGR\"]},\"lib/openzeppelin-contracts/contracts/utils/types/Time.sol\":{\"keccak256\":\"0xc7755af115020049e4140f224f9ee88d7e1799ffb0646f37bf0df24bf6213f58\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7f09bf94d5274334ec021f61a04659db303f31e60460e14b709c9bf187740111\",\"dweb:/ipfs/QmNvgomZYUwFAt4cZbPWAiTeSZQreGehY9BK5xyVJsUttb\"]},\"src/contracts/common/Entity.sol\":{\"keccak256\":\"0x3d61a932995b8443381f3950542d388223a2c26dd5d29a3274dea3baa7388bd7\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://7cdf5f03ca72fd263fd32ff59c8d88ddca911ae83896a287d10772c1bbe9b138\",\"dweb:/ipfs/QmbP84r5BWT1Rn9AYTntWSf3xUMTTCohTZJFhbBhDXFoHa\"]},\"src/contracts/common/StaticDelegateCallable.sol\":{\"keccak256\":\"0x350029aa8955eacaffffaeb58babc5c98e80ebc5c5db388ed17ee6465f4a9d90\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://eb392a8ee9050e0af606897df63e3404e3829e8b688b580663892f9664195764\",\"dweb:/ipfs/QmaXC8jqV8UrrAFkzXTEv2fJF56sy33HhLxAzaRZmUxuXD\"]},\"src/contracts/delegator/BaseDelegator.sol\":{\"keccak256\":\"0x7c54d491fdd4415b764a9c8defa068e56d4c0c8c9419be0053a1d377669290e8\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://9238bfbad0f6eeb0dc7727724de14380f1980b395902269703d5e2ef07e52e10\",\"dweb:/ipfs/QmPJn1V4HNXcEghYvogGuSTF24dSQUPosR5qtsXcmNqRm3\"]},\"src/contracts/delegator/OperatorNetworkSpecificDelegator.sol\":{\"keccak256\":\"0x031a10722b9ec49048f0952710401131290adb87e71caf294e864e7ac3b98a16\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://72428febc875134b2f29205e6f294634a1c22a7d5c78d6a9cb2f8196f107c9b5\",\"dweb:/ipfs/QmTPwXR6h5oytckmkLrHdKeEMdphJxceDhYUR4zvQeWAwY\"]},\"src/contracts/libraries/Checkpoints.sol\":{\"keccak256\":\"0xba90097c8bfe0a975499428b5f8ac5569483c7d92ccc28c12d70de416aae040c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://12f5d93ca94cd06d3147db68993165a58e17903ed53682560de61f3085ad4609\",\"dweb:/ipfs/QmePiuAqvXprMLmFZkGZeGjvGPAvsEDHfCDv7BoQhXu9xE\"]},\"src/contracts/libraries/Subnetwork.sol\":{\"keccak256\":\"0xf5ef5506fd66082b3c2e7f3df37529f5a8efad32ac62e7c8914bd63219190bfe\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba031a54ee0d0e9a270c2b9e18437f5668cfeb659cfd5fe0677459d7fcac2a56\",\"dweb:/ipfs/QmReP3H7qQ78tAfgLnJKsNEQNCQfF1X1Get38Ffd4kzq32\"]},\"src/interfaces/common/IEntity.sol\":{\"keccak256\":\"0x8ef4b63d6da63489778ccd5f8d13ebdd527dd4b62730b2c616df5af7474d2d21\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a8d69576a9219d85c50816a18ad53a4d53cfcb27ed38b8cccc808dc2734b71b\",\"dweb:/ipfs/QmYVN3P4Q4REvBWJ97TbAcaxm3uyB2anV6NSGa6ZtSwcEv\"]},\"src/interfaces/common/IMigratableEntity.sol\":{\"keccak256\":\"0x8f5f2809f3afbe8ebfbb365dd7b57b4dd3b6f9943a6187eaf648d45895b8e3c4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ffe640537d539e7a4fde70d30d3e4c57f4ba9c2c25c450cea713aae38e8fd5c\",\"dweb:/ipfs/QmSUTGzvdcn1R1KB7tLThMRtESsfPbeXDhhhKWGtntzBds\"]},\"src/interfaces/common/IRegistry.sol\":{\"keccak256\":\"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014\",\"dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK\"]},\"src/interfaces/common/IStaticDelegateCallable.sol\":{\"keccak256\":\"0xa335d4e81b9071b7de66ef92b43ff20671d86516eb1be46fef29a3483cd3f5d5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d464b9db863c14c05547d2b23352f2e9b7b784799cf09f6bbc4906a2a74e3516\",\"dweb:/ipfs/QmUVWzFvJz7eEbDQKiFTTzwi7TEbjcs3VmwdM4kuptAKvi\"]},\"src/interfaces/delegator/IBaseDelegator.sol\":{\"keccak256\":\"0x96bb312f032e17accce3f8f80936d99468029d6b37c9ca74acdb4b026a0148ee\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2a66dcb5b7d1a6ef6a363431ea98ebd78bc4fdd3d7a134d9b542dc66e7d025c2\",\"dweb:/ipfs/QmRhTPLd2ZAyRHmJUFUcWKs9b3if49QY17LYZuRqWmghw8\"]},\"src/interfaces/delegator/IDelegatorHook.sol\":{\"keccak256\":\"0xc51aa8d7d1f6c8043ee819b7aeb86da0e993912e1442098df897e299f01f9f46\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://adddf5cb2ba282aeb576b26efb28640f865a1721cc9b6eee8b3ee0457a2c9780\",\"dweb:/ipfs/QmNYgAmnLRwWZbhTuQhZs9rx4zcme1df5mEepkrniorSoW\"]},\"src/interfaces/delegator/IOperatorNetworkSpecificDelegator.sol\":{\"keccak256\":\"0x74b95e64d29769202d45dd277bb830f623ff3d41ce77b80ce3ee4e318a5c71ec\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e512b903aae5c1b8a028c6e3f4f6223b5cb5d704503cfa6bd37b5346868f5c20\",\"dweb:/ipfs/QmZim9YExsPWtyxyeui993HTKAEmrg8MUcSkZ77Gp2JcuZ\"]},\"src/interfaces/service/IOptInService.sol\":{\"keccak256\":\"0x76fb5460a6d87a5705433d4fbeff7253cd75b8bbd0c888b2088f16e86ace146a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://990322019b3d11465f7024bae77ccbf7e2fe5d6fa3c754584778f37d04fa1337\",\"dweb:/ipfs/QmaSNHzcqxTkUCG9a4nqVfLECHLdjdrwAnDi3yDC7tDL24\"]},\"src/interfaces/vault/IVault.sol\":{\"keccak256\":\"0xffee01d383cd4e1a5530c614bf4360c1ef070c288abec9da1eb531b51bc07235\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://04f0046cac285d8ec44ebbb1f79dc94fab4495767190cad8364fbc1fafaadfb9\",\"dweb:/ipfs/QmUawAunwzXfCyShWfhKeThAgKtqe51hmrxvrXvM772M2R\"]},\"src/interfaces/vault/IVaultStorage.sol\":{\"keccak256\":\"0x592626f13754194f83047135de19229c49390bd59e34659b1bb38be71d973a22\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://06a6a9dfddd05e580b32bebe2cff4f63ba26a653180676d58225dd30d9c89d3e\",\"dweb:/ipfs/QmdgzBeY6Sxo8mGtyBxtv1tM1c2kU6J6zjeRd7vuXm4DU6\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.25+commit.b61c2a91"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"operatorRegistry","type":"address"},{"internalType":"address","name":"networkRegistry","type":"address"},{"internalType":"address","name":"vaultFactory","type":"address"},{"internalType":"address","name":"operatorVaultOptInService","type":"address"},{"internalType":"address","name":"operatorNetworkOptInService","type":"address"},{"internalType":"address","name":"delegatorFactory","type":"address"},{"internalType":"uint64","name":"entityType","type":"uint64"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"AccessControlBadConfirmation"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bytes32","name":"neededRole","type":"bytes32"}],"type":"error","name":"AccessControlUnauthorizedAccount"},{"inputs":[],"type":"error","name":"AlreadySet"},{"inputs":[],"type":"error","name":"CheckpointUnorderedInsertion"},{"inputs":[],"type":"error","name":"InsufficientHookGas"},{"inputs":[],"type":"error","name":"InvalidInitialization"},{"inputs":[],"type":"error","name":"InvalidNetwork"},{"inputs":[],"type":"error","name":"NotInitialized"},{"inputs":[],"type":"error","name":"NotInitializing"},{"inputs":[],"type":"error","name":"NotNetwork"},{"inputs":[],"type":"error","name":"NotOperator"},{"inputs":[],"type":"error","name":"NotSlasher"},{"inputs":[],"type":"error","name":"NotVault"},{"inputs":[],"type":"error","name":"ReentrancyGuardReentrantCall"},{"inputs":[{"internalType":"uint8","name":"bits","type":"uint8"},{"internalType":"uint256","name":"value","type":"uint256"}],"type":"error","name":"SafeCastOverflowedUintDowncast"},{"inputs":[{"internalType":"uint64","name":"version","type":"uint64","indexed":false}],"type":"event","name":"Initialized","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32","indexed":true},{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false},{"internalType":"uint48","name":"captureTimestamp","type":"uint48","indexed":false}],"type":"event","name":"OnSlash","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"bytes32","name":"previousAdminRole","type":"bytes32","indexed":true},{"internalType":"bytes32","name":"newAdminRole","type":"bytes32","indexed":true}],"type":"event","name":"RoleAdminChanged","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"address","name":"sender","type":"address","indexed":true}],"type":"event","name":"RoleGranted","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"address","name":"sender","type":"address","indexed":true}],"type":"event","name":"RoleRevoked","anonymous":false},{"inputs":[{"internalType":"address","name":"hook","type":"address","indexed":true}],"type":"event","name":"SetHook","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"SetMaxNetworkLimit","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"DEFAULT_ADMIN_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"FACTORY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"HOOK_GAS_LIMIT","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"HOOK_RESERVE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"HOOK_SET_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"NETWORK_REGISTRY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"OPERATOR_NETWORK_OPT_IN_SERVICE","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"OPERATOR_REGISTRY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"OPERATOR_VAULT_OPT_IN_SERVICE","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"TYPE","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"VAULT_FACTORY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"VERSION","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getRoleAdmin","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"grantRole"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"hasRole","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"hook","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"}],"stateMutability":"view","type":"function","name":"maxNetworkLimit","outputs":[{"internalType":"uint256","name":"value","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"uint48","name":"timestamp","type":"uint48"},{"internalType":"bytes","name":"hint","type":"bytes"}],"stateMutability":"view","type":"function","name":"maxNetworkLimitAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"network","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint48","name":"captureTimestamp","type":"uint48"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"onSlash"},{"inputs":[],"stateMutability":"view","type":"function","name":"operator","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"callerConfirmation","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"renounceRole"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"revokeRole"},{"inputs":[{"internalType":"address","name":"hook_","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setHook"},{"inputs":[{"internalType":"uint96","name":"identifier","type":"uint96"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setMaxNetworkLimit"},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"stake","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint48","name":"timestamp","type":"uint48"},{"internalType":"bytes","name":"hints","type":"bytes"}],"stateMutability":"view","type":"function","name":"stakeAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"staticDelegateCall"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"vault","outputs":[{"internalType":"address","name":"","type":"address"}]}],"devdoc":{"kind":"dev","methods":{"VERSION()":{"details":"Must return 1 for this one.","returns":{"_0":"version of the delegator"}},"getRoleAdmin(bytes32)":{"details":"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}."},"grantRole(bytes32,address)":{"details":"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event."},"hasRole(bytes32,address)":{"details":"Returns `true` if `account` has been granted `role`."},"initialize(bytes)":{"params":{"data":"some data to use"}},"maxNetworkLimitAt(bytes32,uint48,bytes)":{"params":{"hint":"hint for checkpoint index","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)","timestamp":"time point to get the maximum subnetwork limit at"},"returns":{"_0":"maximum limit of the subnetwork"}},"onSlash(bytes32,address,uint256,uint48,bytes)":{"details":"Only the vault's slasher can call this function.","params":{"amount":"amount of the collateral slashed","captureTimestamp":"time point when the stake was captured","data":"some additional data","operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"}},"renounceRole(bytes32,address)":{"details":"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `callerConfirmation`. May emit a {RoleRevoked} event."},"revokeRole(bytes32,address)":{"details":"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event."},"setHook(address)":{"details":"Only a HOOK_SET_ROLE holder can call this function. The hook can have arbitrary logic under certain functions, however, it doesn't affect the stake guarantees.","params":{"hook":"address of the hook"}},"setMaxNetworkLimit(uint96,uint256)":{"details":"Only a network can call this function.","params":{"amount":"new maximum subnetwork's limit"}},"stake(bytes32,address)":{"details":"Warning: this function is not safe to use for stake capturing, as it can change by the end of the block.","params":{"operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"},"returns":{"_0":"slashable stake until the end of the next epoch"}},"stakeAt(bytes32,address,uint48,bytes)":{"details":"Warning: it is not safe to use timestamp >= current one for the stake capturing, as it can change later.","params":{"hints":"hints for the checkpoints' indexes","operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)","timestamp":"time point to capture the stake at"},"returns":{"_0":"slashable stake at the given timestamp until the end of the consequent epoch"}},"staticDelegateCall(address,bytes)":{"details":"It allows to use this contract's storage on-chain.","params":{"data":"data to make a delegatecall with","target":"address of the contract to make a delegatecall to"}},"supportsInterface(bytes4)":{"details":"See {IERC165-supportsInterface}."}},"version":1},"userdoc":{"kind":"user","methods":{"FACTORY()":{"notice":"Get the factory's address."},"HOOK_GAS_LIMIT()":{"notice":"Get a gas limit for the hook."},"HOOK_RESERVE()":{"notice":"Get a reserve gas between the gas limit check and the hook's execution."},"HOOK_SET_ROLE()":{"notice":"Get a hook setter's role."},"NETWORK_REGISTRY()":{"notice":"Get the network registry's address."},"OPERATOR_NETWORK_OPT_IN_SERVICE()":{"notice":"Get the operator-network opt-in service's address."},"OPERATOR_REGISTRY()":{"notice":"Get the operator registry's address."},"OPERATOR_VAULT_OPT_IN_SERVICE()":{"notice":"Get the operator-vault opt-in service's address."},"TYPE()":{"notice":"Get the entity's type."},"VAULT_FACTORY()":{"notice":"Get the vault factory's address."},"VERSION()":{"notice":"Get a version of the delegator (different versions mean different interfaces)."},"hook()":{"notice":"Get the hook's address."},"initialize(bytes)":{"notice":"Initialize this entity contract by using a given data."},"maxNetworkLimit(bytes32)":{"notice":"Get a particular subnetwork's maximum limit (meaning the subnetwork is not ready to get more as a stake)."},"maxNetworkLimitAt(bytes32,uint48,bytes)":{"notice":"Get a particular subnetwork's maximum limit at a given timestamp using a hint (meaning the subnetwork is not ready to get more as a stake)."},"network()":{"notice":"Get a network the vault delegates funds to."},"onSlash(bytes32,address,uint256,uint48,bytes)":{"notice":"Called when a slash happens."},"operator()":{"notice":"Get an operator managing the vault's funds."},"setHook(address)":{"notice":"Set a new hook."},"setMaxNetworkLimit(uint96,uint256)":{"notice":"Set a maximum limit for a subnetwork (how much stake the subnetwork is ready to get). identifier identifier of the subnetwork"},"stake(bytes32,address)":{"notice":"Get a stake that a given subnetwork will be able to slash for a certain operator until the end of the next epoch (if no cross-slashing and no slashings by the subnetwork)."},"stakeAt(bytes32,address,uint48,bytes)":{"notice":"Get a stake that a given subnetwork could be able to slash for a certain operator at a given timestamp until the end of the consequent epoch using hints (if no cross-slashing and no slashings by the subnetwork)."},"staticDelegateCall(address,bytes)":{"notice":"Make a delegatecall from this contract to a given target contract with a particular data (always reverts with a return data)."},"vault()":{"notice":"Get the vault's address."}},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/contracts/delegator/OperatorNetworkSpecificDelegator.sol":"OperatorNetworkSpecificDelegator"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol":{"keccak256":"0x6662ec4e5cefca03eeadd073e9469df8d2944bb2ee8ec8f7622c2c46aab5f225","urls":["bzz-raw://4d8544c6f8daa4d1bc215c6a72fe0acdb748664a105b0e5efc19295667521d45","dweb:/ipfs/QmdGWqdnXT8S3RgCR6aV8XHZrsybieMQLLnug1NtpSjEXN"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b","urls":["bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609","dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol":{"keccak256":"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397","urls":["bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9","dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardUpgradeable.sol":{"keccak256":"0xb44e086e941292cdc7f440de51478493894ef0b1aeccb0c4047445919f667f74","urls":["bzz-raw://942dad22fbdc1669f025540ba63aa3ccfad5f8458fc5d4525b31ebf272e7af45","dweb:/ipfs/Qmdo4X2M82aM3AMoW2kf2jhYkSCyC4T1pHNd6obdsDFnAB"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol":{"keccak256":"0xdaba3f7c42c55b2896353f32bd27d4d5f8bae741b3b05d4c53f67abc4dc47ce8","urls":["bzz-raw://1fa2e61141c602510bcd2cd936ed9561922ac8772a9b9c9a9db091a74e354a45","dweb:/ipfs/QmcHQDDoEBwJmwUbzoVkytvJsBx3KVHYFFnDkvRGWh9Wmh"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol":{"keccak256":"0xb6b36edd6a2999fd243ff226d6cbf84bd71af2432bbd0dfe19392996a1d9cb41","urls":["bzz-raw://1fd2f35495652e57e3f99bc6c510bc5f7dd398a176ea2e72d8ed730aebc6ca26","dweb:/ipfs/QmTQV6X4gkikTib49cho5iDX3JvSQbdsoEChoDwrk3CbbH"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b","urls":["bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df","dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d","urls":["bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875","dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol":{"keccak256":"0xe19a4d5f31d2861e7344e8e535e2feafb913d806d3e2b5fe7782741a2a7094fe","urls":["bzz-raw://4aed79c0fa6f0546ed02f2f683e8f77f0fd2ed7eb34d8bbf3d373c9a6d95b13c","dweb:/ipfs/QmWqVz6UAVqmnWU5pqYPt1o6iDEZyPaBraAA3rKfTTSfYj"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/Checkpoints.sol":{"keccak256":"0xbdc5e074d7dd6678f67e92b1a51a20226801a407b0e1af3da367c5d1ff4519ad","urls":["bzz-raw://a36cca6b22fff3db16fc789ff6c60eea71d4b156065d4d0c83a0bc5e91a77a8b","dweb:/ipfs/QmYN3exd5AemxjBrN8XMB1p5LbbE16uC3sjbYjwi8AjcGR"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/types/Time.sol":{"keccak256":"0xc7755af115020049e4140f224f9ee88d7e1799ffb0646f37bf0df24bf6213f58","urls":["bzz-raw://7f09bf94d5274334ec021f61a04659db303f31e60460e14b709c9bf187740111","dweb:/ipfs/QmNvgomZYUwFAt4cZbPWAiTeSZQreGehY9BK5xyVJsUttb"],"license":"MIT"},"src/contracts/common/Entity.sol":{"keccak256":"0x3d61a932995b8443381f3950542d388223a2c26dd5d29a3274dea3baa7388bd7","urls":["bzz-raw://7cdf5f03ca72fd263fd32ff59c8d88ddca911ae83896a287d10772c1bbe9b138","dweb:/ipfs/QmbP84r5BWT1Rn9AYTntWSf3xUMTTCohTZJFhbBhDXFoHa"],"license":"BUSL-1.1"},"src/contracts/common/StaticDelegateCallable.sol":{"keccak256":"0x350029aa8955eacaffffaeb58babc5c98e80ebc5c5db388ed17ee6465f4a9d90","urls":["bzz-raw://eb392a8ee9050e0af606897df63e3404e3829e8b688b580663892f9664195764","dweb:/ipfs/QmaXC8jqV8UrrAFkzXTEv2fJF56sy33HhLxAzaRZmUxuXD"],"license":"BUSL-1.1"},"src/contracts/delegator/BaseDelegator.sol":{"keccak256":"0x7c54d491fdd4415b764a9c8defa068e56d4c0c8c9419be0053a1d377669290e8","urls":["bzz-raw://9238bfbad0f6eeb0dc7727724de14380f1980b395902269703d5e2ef07e52e10","dweb:/ipfs/QmPJn1V4HNXcEghYvogGuSTF24dSQUPosR5qtsXcmNqRm3"],"license":"BUSL-1.1"},"src/contracts/delegator/OperatorNetworkSpecificDelegator.sol":{"keccak256":"0x031a10722b9ec49048f0952710401131290adb87e71caf294e864e7ac3b98a16","urls":["bzz-raw://72428febc875134b2f29205e6f294634a1c22a7d5c78d6a9cb2f8196f107c9b5","dweb:/ipfs/QmTPwXR6h5oytckmkLrHdKeEMdphJxceDhYUR4zvQeWAwY"],"license":"BUSL-1.1"},"src/contracts/libraries/Checkpoints.sol":{"keccak256":"0xba90097c8bfe0a975499428b5f8ac5569483c7d92ccc28c12d70de416aae040c","urls":["bzz-raw://12f5d93ca94cd06d3147db68993165a58e17903ed53682560de61f3085ad4609","dweb:/ipfs/QmePiuAqvXprMLmFZkGZeGjvGPAvsEDHfCDv7BoQhXu9xE"],"license":"MIT"},"src/contracts/libraries/Subnetwork.sol":{"keccak256":"0xf5ef5506fd66082b3c2e7f3df37529f5a8efad32ac62e7c8914bd63219190bfe","urls":["bzz-raw://ba031a54ee0d0e9a270c2b9e18437f5668cfeb659cfd5fe0677459d7fcac2a56","dweb:/ipfs/QmReP3H7qQ78tAfgLnJKsNEQNCQfF1X1Get38Ffd4kzq32"],"license":"MIT"},"src/interfaces/common/IEntity.sol":{"keccak256":"0x8ef4b63d6da63489778ccd5f8d13ebdd527dd4b62730b2c616df5af7474d2d21","urls":["bzz-raw://5a8d69576a9219d85c50816a18ad53a4d53cfcb27ed38b8cccc808dc2734b71b","dweb:/ipfs/QmYVN3P4Q4REvBWJ97TbAcaxm3uyB2anV6NSGa6ZtSwcEv"],"license":"MIT"},"src/interfaces/common/IMigratableEntity.sol":{"keccak256":"0x8f5f2809f3afbe8ebfbb365dd7b57b4dd3b6f9943a6187eaf648d45895b8e3c4","urls":["bzz-raw://0ffe640537d539e7a4fde70d30d3e4c57f4ba9c2c25c450cea713aae38e8fd5c","dweb:/ipfs/QmSUTGzvdcn1R1KB7tLThMRtESsfPbeXDhhhKWGtntzBds"],"license":"MIT"},"src/interfaces/common/IRegistry.sol":{"keccak256":"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb","urls":["bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014","dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK"],"license":"MIT"},"src/interfaces/common/IStaticDelegateCallable.sol":{"keccak256":"0xa335d4e81b9071b7de66ef92b43ff20671d86516eb1be46fef29a3483cd3f5d5","urls":["bzz-raw://d464b9db863c14c05547d2b23352f2e9b7b784799cf09f6bbc4906a2a74e3516","dweb:/ipfs/QmUVWzFvJz7eEbDQKiFTTzwi7TEbjcs3VmwdM4kuptAKvi"],"license":"MIT"},"src/interfaces/delegator/IBaseDelegator.sol":{"keccak256":"0x96bb312f032e17accce3f8f80936d99468029d6b37c9ca74acdb4b026a0148ee","urls":["bzz-raw://2a66dcb5b7d1a6ef6a363431ea98ebd78bc4fdd3d7a134d9b542dc66e7d025c2","dweb:/ipfs/QmRhTPLd2ZAyRHmJUFUcWKs9b3if49QY17LYZuRqWmghw8"],"license":"MIT"},"src/interfaces/delegator/IDelegatorHook.sol":{"keccak256":"0xc51aa8d7d1f6c8043ee819b7aeb86da0e993912e1442098df897e299f01f9f46","urls":["bzz-raw://adddf5cb2ba282aeb576b26efb28640f865a1721cc9b6eee8b3ee0457a2c9780","dweb:/ipfs/QmNYgAmnLRwWZbhTuQhZs9rx4zcme1df5mEepkrniorSoW"],"license":"MIT"},"src/interfaces/delegator/IOperatorNetworkSpecificDelegator.sol":{"keccak256":"0x74b95e64d29769202d45dd277bb830f623ff3d41ce77b80ce3ee4e318a5c71ec","urls":["bzz-raw://e512b903aae5c1b8a028c6e3f4f6223b5cb5d704503cfa6bd37b5346868f5c20","dweb:/ipfs/QmZim9YExsPWtyxyeui993HTKAEmrg8MUcSkZ77Gp2JcuZ"],"license":"MIT"},"src/interfaces/service/IOptInService.sol":{"keccak256":"0x76fb5460a6d87a5705433d4fbeff7253cd75b8bbd0c888b2088f16e86ace146a","urls":["bzz-raw://990322019b3d11465f7024bae77ccbf7e2fe5d6fa3c754584778f37d04fa1337","dweb:/ipfs/QmaSNHzcqxTkUCG9a4nqVfLECHLdjdrwAnDi3yDC7tDL24"],"license":"MIT"},"src/interfaces/vault/IVault.sol":{"keccak256":"0xffee01d383cd4e1a5530c614bf4360c1ef070c288abec9da1eb531b51bc07235","urls":["bzz-raw://04f0046cac285d8ec44ebbb1f79dc94fab4495767190cad8364fbc1fafaadfb9","dweb:/ipfs/QmUawAunwzXfCyShWfhKeThAgKtqe51hmrxvrXvM772M2R"],"license":"MIT"},"src/interfaces/vault/IVaultStorage.sol":{"keccak256":"0x592626f13754194f83047135de19229c49390bd59e34659b1bb38be71d973a22","urls":["bzz-raw://06a6a9dfddd05e580b32bebe2cff4f63ba26a653180676d58225dd30d9c89d3e","dweb:/ipfs/QmdgzBeY6Sxo8mGtyBxtv1tM1c2kU6J6zjeRd7vuXm4DU6"],"license":"MIT"}},"version":1},"id":79} \ No newline at end of file +{"abi":[{"type":"constructor","inputs":[{"name":"operatorRegistry","type":"address","internalType":"address"},{"name":"networkRegistry","type":"address","internalType":"address"},{"name":"vaultFactory","type":"address","internalType":"address"},{"name":"operatorVaultOptInService","type":"address","internalType":"address"},{"name":"operatorNetworkOptInService","type":"address","internalType":"address"},{"name":"delegatorFactory","type":"address","internalType":"address"},{"name":"entityType","type":"uint64","internalType":"uint64"}],"stateMutability":"nonpayable"},{"type":"function","name":"DEFAULT_ADMIN_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"FACTORY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"HOOK_GAS_LIMIT","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"HOOK_RESERVE","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"HOOK_SET_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"NETWORK_REGISTRY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"OPERATOR_NETWORK_OPT_IN_SERVICE","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"OPERATOR_REGISTRY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"OPERATOR_VAULT_OPT_IN_SERVICE","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"TYPE","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"VAULT_FACTORY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"VERSION","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"pure"},{"type":"function","name":"getRoleAdmin","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"grantRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"hasRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"hook","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"initialize","inputs":[{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"maxNetworkLimit","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"value","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"maxNetworkLimitAt","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"timestamp","type":"uint48","internalType":"uint48"},{"name":"hint","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"network","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"onSlash","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"captureTimestamp","type":"uint48","internalType":"uint48"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"operator","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"renounceRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"callerConfirmation","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"revokeRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setHook","inputs":[{"name":"hook_","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setMaxNetworkLimit","inputs":[{"name":"identifier","type":"uint96","internalType":"uint96"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"stake","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"stakeAt","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"timestamp","type":"uint48","internalType":"uint48"},{"name":"hints","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"staticDelegateCall","inputs":[{"name":"target","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"vault","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"OnSlash","inputs":[{"name":"subnetwork","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"captureTimestamp","type":"uint48","indexed":false,"internalType":"uint48"}],"anonymous":false},{"type":"event","name":"RoleAdminChanged","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"previousAdminRole","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"newAdminRole","type":"bytes32","indexed":true,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"RoleGranted","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"sender","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"RoleRevoked","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"sender","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"SetHook","inputs":[{"name":"hook","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"SetMaxNetworkLimit","inputs":[{"name":"subnetwork","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"error","name":"AccessControlBadConfirmation","inputs":[]},{"type":"error","name":"AccessControlUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"neededRole","type":"bytes32","internalType":"bytes32"}]},{"type":"error","name":"AlreadySet","inputs":[]},{"type":"error","name":"CheckpointUnorderedInsertion","inputs":[]},{"type":"error","name":"InsufficientHookGas","inputs":[]},{"type":"error","name":"InvalidInitialization","inputs":[]},{"type":"error","name":"InvalidNetwork","inputs":[]},{"type":"error","name":"NotInitialized","inputs":[]},{"type":"error","name":"NotInitializing","inputs":[]},{"type":"error","name":"NotNetwork","inputs":[]},{"type":"error","name":"NotOperator","inputs":[]},{"type":"error","name":"NotSlasher","inputs":[]},{"type":"error","name":"NotVault","inputs":[]},{"type":"error","name":"ReentrancyGuardReentrantCall","inputs":[]},{"type":"error","name":"SafeCastOverflowedUintDowncast","inputs":[{"name":"bits","type":"uint8","internalType":"uint8"},{"name":"value","type":"uint256","internalType":"uint256"}]}],"bytecode":{"object":"0x610160346101c9576001600160401b0390601f6127c138819003918201601f191683019190848311848410176101cd578160e092859260409586528339810103126101c95761004d826101e1565b9061005a602084016101e1565b6100658285016101e1565b90610072606086016101e1565b9561007f608087016101e1565b9560c061008e60a083016101e1565b9101519180831683036101c9577ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a009081549060ff82891c166101b8578080831603610174575b50505060805260a05260c05260e05261010093845261012092835261014091825251916125cb93846101f68539608051846104fe015260a05184610bee015260c05184818161037d01528181610c270152612048015260e05184818161027301526119be0152518381816102b70152818161121001526113540152518281816102fb0152818161117701526113d2015251818181610a6e01526120c10152f35b6001600160401b0319909116811790915585519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a15f80806100d4565b875163f92ee8a960e01b8152600490fd5b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b51906001600160a01b03821682036101c95756fe60806040526004361015610011575f80fd5b5f3560e01c806301ffc9a714610204578063103f2907146101ff578063128e5d82146101fa5780631a80e500146101f557806323f752d5146101f0578063248a9ca3146101eb5780632dd31000146101e65780632f2ff15d146101e157806336568abe146101dc5780633dfd3873146101d7578063437224a3146101d2578063439fab91146101cd578063557cab44146101c8578063570ca735146101c35780636679191e146101be5780636739afca146101b95780637f5a7c7b146101b457806383ce0322146101af57806391d14854146101aa5780639f86fd85146101a5578063a217fddf146101a0578063bb24fe8a1461019b578063c0cd7c3e14610196578063d15b740e14610191578063d547741f1461018c578063e02f693714610187578063e49561ee14610182578063fbfa77cf1461017d578063fd4d447c14610178578063ff54740f146101735763ffa1ad741461016e575f80fd5b610f84565b610f67565b610f3d565b610f16565b610d2b565b610ccc565b610c80565b610c56565b610c12565b610bcf565b610bb5565b610afb565b610a9d565b610a59565b610a31565b610a09565b6109cf565b6109a7565b61098b565b610853565b6107c3565b6105d5565b61058a565b61053e565b6104e9565b6104b0565b61032a565b6102e6565b6102a2565b61025e565b3461025a57602036600319011261025a5760043563ffffffff60e01b811680910361025a57602090637965db0b60e01b8114908115610249575b506040519015158152f35b6301ffc9a760e01b1490505f61023e565b5f80fd5b3461025a575f36600319011261025a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461025a575f36600319011261025a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461025a575f36600319011261025a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461025a57604036600319011261025a576004356001600160601b038116810361025a576024359061035a611447565b6040516302910f8b60e31b81523360048201526020816024816001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165afa9081156104ab575f9161047c575b501561046a576001600160601b03166bffffffffffffffffffffffff193360601b161790806103e4835f52600260205260405f2090565b54146104585761043d817fc67e7929681aa1bccd63f52b3799bf5805f3009f197db6fdf584b14f7fbf608c92610422855f52600260205260405f2090565b5561042d8185611476565b6040519081529081906020820190565b0390a261045660015f8051602061255683398151915255565b005b60405163a741a04560e01b8152600490fd5b6040516323d53b9760e21b8152600490fd5b61049e915060203d6020116104a4575b6104968183610732565b810190610f9f565b5f6103ad565b503d61048c565b610fb7565b3461025a57602036600319011261025a576004355f525f805160206125368339815191526020526020600160405f200154604051908152f35b3461025a575f36600319011261025a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b6001600160a01b0381160361025a57565b3461025a57604036600319011261025a576104566024356004356105618261052d565b805f525f80516020612536833981519152602052610585600160405f2001546115b8565b611769565b3461025a57604036600319011261025a576024356105a78161052d565b336001600160a01b038216036105c3576104569060043561179f565b60405163334bd91960e11b8152600490fd5b3461025a57602036600319011261025a576004356105f28161052d565b6105fa611447565b335f9081527f9ebbcbe0d2961d3fbe56ca6f679bc753bd848d3e6bb3eaf9041c51b286881d2c60205260409020547fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c9060ff16156106b057506001546001600160a01b039182169181168214610458576001600160a01b03191681176001557f5bbb1d3ebb6a3ad2a0f17ff35e579a83af60604d1d3c2a4c83c62adecadf666d5f80a260015f8051602061255683398151915255005b6044906040519063e2517d3f60e01b82523360048301526024820152fd5b6064359065ffffffffffff8216820361025a57565b634e487b7160e01b5f52604160045260245ffd5b604081019081106001600160401b0382111761071257604052565b6106e3565b606081019081106001600160401b0382111761071257604052565b90601f801991011681019081106001600160401b0382111761071257604052565b60405190610760826106f7565b565b6001600160401b03811161071257601f01601f191660200190565b81601f8201121561025a5780359061079482610762565b926107a26040519485610732565b8284526020838301011161025a57815f926020809301838601378301015290565b3461025a57606036600319011261025a5760243565ffffffffffff8116810361025a576044356001600160401b03811161025a5760209161080b61081e92369060040161077d565b906004355f526003845260405f20611870565b604051908152f35b9181601f8401121561025a578235916001600160401b03831161025a576020838186019501011161025a57565b3461025a57602036600319011261025a576001600160401b0360043581811161025a57610884903690600401610826565b5f80516020612576833981519152549260ff8460401c1615931680159081610983575b6001149081610979575b159081610970575b5061095e575f80516020612576833981519152805467ffffffffffffffff191660011790556108ec918361093a57611989565b6108f257005b5f80516020612576833981519152805460ff60401b19169055604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a1005b5f80516020612576833981519152805460ff60401b1916600160401b179055611989565b60405163f92ee8a960e01b8152600490fd5b9050155f6108b9565b303b1591506108b1565b8491506108a7565b3461025a575f36600319011261025a576020604051614e208152f35b3461025a575f36600319011261025a576005546040516001600160a01b039091168152602090f35b3461025a575f36600319011261025a5760206040517fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c8152f35b3461025a575f36600319011261025a576004546040516001600160a01b039091168152602090f35b3461025a575f36600319011261025a576001546040516001600160a01b039091168152602090f35b3461025a575f36600319011261025a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461025a57604036600319011261025a57602060ff610aef602435610ac18161052d565b6004355f525f80516020612536833981519152845260405f209060018060a01b03165f5260205260405f2090565b54166040519015158152f35b3461025a5760408060031936011261025a57600435610b198161052d565b602435906001600160401b03821161025a575f8091610b3f610ba3943690600401610826565b908187519283928337810184815203915af43d15610bab57610b953d610b6481610762565b90610b7186519283610732565b81523d5f602083013e5b845194859315156020850152808401526060830190610fdb565b03601f198101835282610732565b805190602001fd5b610b956060610b7b565b3461025a575f36600319011261025a5760206040515f8152f35b3461025a575f36600319011261025a5760206040516001600160401b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461025a575f36600319011261025a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461025a57602036600319011261025a576004355f526002602052602060405f2054604051908152f35b3461025a57604036600319011261025a57610456602435600435610ca38261052d565b805f525f80516020612536833981519152602052610cc7600160405f2001546115b8565b61179f565b3461025a57608036600319011261025a57602435610ce98161052d565b6044359065ffffffffffff8216820361025a57606435906001600160401b03821161025a57602092610d2261081e93369060040161077d565b91600435611101565b3461025a5760a036600319011261025a57602435600435610d4b8261052d565b60443591610d576106ce565b90608435906001600160401b03821161025a57610d796004923690840161077d565b610d81611447565b5f54602090610da690610d9a906001600160a01b031681565b6001600160a01b031690565b60405163b134427160e01b815294859182905afa9283156104ab575f93610ee5575b506001600160a01b039283163303610ed3576001546001600160a01b0316838116610e48575b50506040805195865265ffffffffffff909316602086015216927f741a5de99085c0d660f3e4192217b0ffb0ea4e35a0480de48e857a4bc3ee36ed91819081015b0390a361045660015f8051602061255683398151915255565b909360405194610e7f86610e71602082019363724ab0f760e11b8552858c898d602487016112a0565b03601f198101885287610732565b62042e305a10610ec1575f610e2f938192827f741a5de99085c0d660f3e4192217b0ffb0ea4e35a0480de48e857a4bc3ee36ed9951926203d090f15093610dee565b604051638072475160e01b8152600490fd5b60405163dabc4ad960e01b8152600490fd5b610f0891935060203d602011610f0f575b610f008183610732565b81019061128b565b915f610dc8565b503d610ef6565b3461025a575f36600319011261025a575f546040516001600160a01b039091168152602090f35b3461025a57604036600319011261025a57602061081e602435610f5f8161052d565b60043561131d565b3461025a575f36600319011261025a5760206040516203d0908152f35b3461025a575f36600319011261025a57602060405160018152f35b9081602091031261025a5751801515810361025a5790565b6040513d5f823e3d90fd5b90610fd892915f52600360205260405f20611870565b90565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b6040519061100c826106f7565b60606020838281520152565b81601f8201121561025a5780519061102f82610762565b9261103d6040519485610732565b8284526020838301011161025a57815f9260208093018386015e8301015290565b9060208282031261025a5781516001600160401b039283821161025a57019060408282031261025a5760405192611094846106f7565b825181811161025a57826110a9918501611018565b8452602083015190811161025a576110c19201611018565b602082015290565b6001600160a01b0391821681529116602082015265ffffffffffff9091166040820152608060608201819052610fd892910190610fdb565b9261111190929192828486611b9c565b92909361111c610fff565b9380518061126f575b505084159384156111d9575b8415611148575b505050506111435790565b505f90565b602080949550611173910151604051958694859463530e1d4360e01b865260601c90600486016110c9565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa9081156104ab575f916111ba575b50155f808080611138565b6111d3915060203d6020116104a4576104968183610732565b5f6111af565b5f549094506001600160a01b031660208486519261120c604051948593849363530e1d4360e01b855289600486016110c9565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa9081156104ab575f91611250575b501593611131565b611269915060203d6020116104a4576104968183610732565b5f611248565b61128392955060208091830101910161105e565b925f80611125565b9081602091031261025a5751610fd88161052d565b919360a093610fd8969565ffffffffffff938552600180871b0316602085015260408401521660608201528160808201520190610fdb565b634e487b7160e01b5f52601160045260245ffd5b81156112f6570490565b634e487b7160e01b5f52601260045260245ffd5b906001820180921161131857565b6112d8565b5f546040516308834cb560e21b8082526001600160a01b0385811660048401529283166024830152929392602092909183816044817f000000000000000000000000000000000000000000000000000000000000000086165afa9081156104ab575f9161142a575b50159182156113a6575b505090506113a057610fd891611cbb565b50505f90565b6040519081526001600160a01b0385166004820152606086901c602482015291508290829060449082907f0000000000000000000000000000000000000000000000000000000000000000165afa9182156104ab575f9261140d575b505015805f8061138f565b6114239250803d106104a4576104968183610732565b5f80611402565b6114419150843d86116104a4576104968183610732565b5f611385565b5f8051602061255683398151915260028154146114645760029055565b604051633ee5aeb560e01b8152600490fd5b6004546001600160a01b0316606082901c036115a6575f52600360205260405f209065ffffffffffff9182421161158757824216926001820191825415611579575b6114c1816121ac565b509590845493835480155f1461155a57505f975b6001600160d01b0398808a1615611554576114f09088611d7d565b50505b82611548575b50501561153257505061076093509061151461151a9261184d565b90611d7d565b90919082549060031b91821b915f19901b1916179055565b61076095611541931691612284565b5050611dd3565b16821490505f806114f9565b506114f3565b5f1990808281011161131857855f5260205f2001015460301c976114d5565b61158283611da6565b6114b8565b6040516306dfcc6560e41b815260306004820152426024820152604490fd5b6040516386eab41b60e01b8152600490fd5b5f8181525f805160206125368339815191526020908152604080832033845290915290205460ff16156106b05750565b6001600160a01b0381165f9081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d60205260409020545f805160206125368339815191529060ff166113a0575f808052602091825260408082206001600160a01b038516835290925220805460ff1916600117905533906001600160a01b03165f7f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d8180a4600190565b6001600160a01b0381165f9081527f9ebbcbe0d2961d3fbe56ca6f679bc753bd848d3e6bb3eaf9041c51b286881d2c602052604090207fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c905f805160206125368339815191529060ff905b5416611762575f828152602091825260408082206001600160a01b038616835290925220805460ff1916600117905533916001600160a01b0316907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d5f80a4600190565b5050505f90565b5f8181525f80516020612536833981519152602081815260408084206001600160a01b038716855290915290912060ff906116fe565b5f8181525f80516020612536833981519152602081815260408084206001600160a01b03871685529091529091205460ff1615611762575f828152602091825260408082206001600160a01b038616835290925220805460ff1916905533916001600160a01b0316907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b5f80a4600190565b9081602091031261025a575163ffffffff8116810361025a5790565b5f1981019190821161131857565b90600163ffffffff8093160191821161131857565b91805115611949578060208061188b93518301019101611831565b916118968382611ed0565b926118a7845165ffffffffffff1690565b9065ffffffffffff808516921682811461193d57821191826118dd575b50506118d457610fd89250611df6565b50506020015190565b9091506118ea835461184d565b63ffffffff831614918215611903575b50505f806118c4565b61193591925061191e61191861192a9261185b565b85611ed0565b5165ffffffffffff1690565b65ffffffffffff1690565b115f806118fa565b50505050506020015190565b50610fd891611df6565b91909160408184031261025a57803561196b8161052d565b9260208201356001600160401b03811161025a57610fd8920161077d565b61199591810190611953565b6040516302910f8b60e31b81526001600160a01b039283166004820181905291906020816024817f000000000000000000000000000000000000000000000000000000000000000088165afa9081156104ab575f91611aa8575b5015611a9657611a2a604091611a25611a7094611a0a611f38565b60018060a01b03166001600160601b0360a01b5f5416175f55565b611ffb565b6020810151600180546001600160a01b0319166001600160a01b0390921691909117905580516001600160a01b0316848116611a86575b5001516001600160a01b031690565b908116611a7a5750565b611a8390611693565b50565b611a8f906115e8565b505f611a61565b6040516362df054560e01b8152600490fd5b611ac1915060203d6020116104a4576104968183610732565b5f6119ef565b60405190611ad482610717565b60606040838281528260208201520152565b9060208282031261025a5781516001600160401b039283821161025a57019060608282031261025a5760405192611b1c84610717565b825181811161025a5782611b31918501611018565b8452602083015181811161025a5782611b4b918501611018565b6020850152604083015190811161025a57611b669201611018565b604082015290565b9081602091031261025a575190565b60409065ffffffffffff610fd894931681528160208201520190610fdb565b90939293611ba8611ac7565b94805180611c9f575b5050600454606083901c6001600160a01b03918216148015929190611c84575b5050611c7c575f54611c17929190602090611bf690610d9a906001600160a01b031681565b8187015190604051808097819463810da75d60e01b83528860048401611b7d565b03915afa9081156104ab57611c44935f92611c49575b50611c3e9192604087015191610fc2565b90612176565b915190565b611c3e9250611c6f9060203d602011611c75575b611c678183610732565b810190611b6e565b91611c2d565b503d611c5d565b505090515f91565b60055481166001600160a01b03169116141590505f80611bd1565b611cb3929650602080918301019101611ae6565b935f80611bb1565b6004549091606083901c6001600160a01b039283161480159290611d62575b5050611143575f5460049190602090611cfd90610d9a906001600160a01b031681565b60405163bd49c35f60e01b815293849182905afa9081156104ab57610fd8925f92611d3d575b50611d36905f52600260205260405f2090565b5490612176565b611d36919250611d5b9060203d602011611c7557611c678183610732565b9190611d23565b60055481166001600160a01b03169116141590505f80611cda565b8054821015611d92575f5260205f2001905f90565b634e487b7160e01b5f52603260045260245ffd5b8054600160401b81101561071257611dc391600182018155611d7d565b8154905f199060031b1b19169055565b90815491600160401b831015610712578261151a91600161076095018155611d7d565b908154905f829160058411611e6a575b611e119350846124d6565b80611e4357505f905b6001600160d01b038216156113a057610fd8916001611e399201611d7d565b90549060031b1c90565b611e5d611e52611e649261184d565b835f5260205f200190565b5460301c90565b90611e1a565b9192611e75816123a3565b810390811161131857611e1193855f5265ffffffffffff808360205f20015416908516105f14611ea6575091611e06565b929150611eb29061130a565b90611e06565b60405190611ec5826106f7565b5f6020838281520152565b90611ef9611ef3611f1a92611ee3611eb8565b50611eec611eb8565b5084611d7d565b50612188565b91600165ffffffffffff845116936020828060d01b03910151169101611d7d565b90549060405192611f2a846106f7565b835260031b1c602082015290565b611f406121fb565b611f486121fb565b60015f8051602061255683398151915255565b60405190611f6882610717565b5f6040838281528260208201520152565b8091039060a0821261025a57606060405192611f9484610717565b1261025a57608090604051611fa881610717565b8151611fb38161052d565b81526020820151611fc38161052d565b60208201526040820151611fd68161052d565b604082015283526060810151611feb8161052d565b60208401520151611b668161052d565b612003611f5b565b5061201981519160208080948301019101611f79565b80820180516040516302910f8b60e31b8082526001600160a01b039283166004830152939491939082816024817f000000000000000000000000000000000000000000000000000000000000000089165afa9081156104ab575f91612159575b501561046a57816120bd916040870195612099875160018060a01b031690565b6040519283526001600160a01b031660048301529092839190829081906024820190565b03917f0000000000000000000000000000000000000000000000000000000000000000165afa9182156104ab575f9261213c575b50501561212a5751600480546001600160a01b039283166001600160a01b03199182161790915591516005805490931691161790555190565b604051631f0853c160e21b8152600490fd5b6121529250803d106104a4576104968183610732565b5f806120f1565b6121709150833d85116104a4576104968183610732565b5f612079565b9080821015612183575090565b905090565b90604051612195816106f7565b915465ffffffffffff8116835260301c6020830152565b8054806121bd5750505f905f905f90565b5f19908082810111611318576121da925f5260205f200101612188565b9065ffffffffffff82511691602060018060d01b0391015116906001929190565b60ff5f805160206125768339815191525460401c161561221757565b604051631afcd79f60e31b8152600490fd5b8054600160401b8110156107125761224691600182018155611d7d565b61227157815160209092015160301b65ffffffffffff191665ffffffffffff92909216919091179055565b634e487b7160e01b5f525f60045260245ffd5b80549293929190821561237a576122a56122a0611e528561184d565b612188565b906122b6825165ffffffffffff1690565b65ffffffffffff848116911681106123685761232c9460209488926122e461192a875165ffffffffffff1690565b03612330575061231e926122fa6123059261184d565b905f5260205f200190565b9065ffffffffffff82549181199060301b169116179055565b01516001600160d01b031690565b9190565b91505061236391612350612342610753565b65ffffffffffff9093168352565b6001600160d01b03881682860152612229565b61231e565b604051632520601d60e01b8152600490fd5b61239e925061238a612342610753565b6001600160d01b0385166020830152612229565b5f9190565b80156111435780611c3e61246e61246461245a61245061244661243c6124326001610fd89a5f908b60801c806124ca575b508060401c806124bd575b508060201c806124b0575b508060101c806124a3575b508060081c80612496575b508060041c80612489575b508060021c8061247c575b50821c612475575b811c1b61242b818b6112ec565b0160011c90565b61242b818a6112ec565b61242b81896112ec565b61242b81886112ec565b61242b81876112ec565b61242b81866112ec565b61242b81856112ec565b80926112ec565b810161241e565b600291509101905f612416565b600491509101905f61240b565b600891509101905f612400565b601091509101905f6123f5565b602091509101905f6123ea565b604091509101905f6123df565b9150506080905f6123d4565b91905b8382106124e65750505090565b9091928083169080841860011c820180921161131857845f5265ffffffffffff808360205f20015416908416105f146125235750925b91906124d9565b93925061252f9061130a565b9161251c56fe02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268009b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a264697066735822122064d4f8eb5326c677a800a0d904350a2a63febf437fecf588a849d07e0ee0fe1f64736f6c63430008190033","sourceMap":"681:3264:84:-:0;;;;-1:-1:-1;;;;;681:3264:84;;;;;;;;;;-1:-1:-1;;681:3264:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;8837:64:26;681:3264:84;;;;;;;;;7896:76:26;;681:3264:84;;;;7985:34:26;7981:146;;-1:-1:-1;525:17:74;;;681:3264:84;525:17:74;681:3264:84;552:12:74;681:3264:84;2360:34:81;681:3264:84;2404:28:81;2442:57;;;;2509:61;;;;1796:36:84;;;;681:3264;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7981:146:26;-1:-1:-1;;;;;;681:3264:84;;;;;;;;;;;;;8087:29:26;;681:3264:84;;8087:29:26;7981:146;;;;;7896:76;681:3264:84;;-1:-1:-1;;;7938:23:26;;;;;681:3264:84;-1:-1:-1;681:3264:84;;;;;;-1:-1:-1;681:3264:84;;;;;-1:-1:-1;681:3264:84;;;;-1:-1:-1;;;;;681:3264:84;;;;;;:::o","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361015610011575f80fd5b5f3560e01c806301ffc9a714610204578063103f2907146101ff578063128e5d82146101fa5780631a80e500146101f557806323f752d5146101f0578063248a9ca3146101eb5780632dd31000146101e65780632f2ff15d146101e157806336568abe146101dc5780633dfd3873146101d7578063437224a3146101d2578063439fab91146101cd578063557cab44146101c8578063570ca735146101c35780636679191e146101be5780636739afca146101b95780637f5a7c7b146101b457806383ce0322146101af57806391d14854146101aa5780639f86fd85146101a5578063a217fddf146101a0578063bb24fe8a1461019b578063c0cd7c3e14610196578063d15b740e14610191578063d547741f1461018c578063e02f693714610187578063e49561ee14610182578063fbfa77cf1461017d578063fd4d447c14610178578063ff54740f146101735763ffa1ad741461016e575f80fd5b610f84565b610f67565b610f3d565b610f16565b610d2b565b610ccc565b610c80565b610c56565b610c12565b610bcf565b610bb5565b610afb565b610a9d565b610a59565b610a31565b610a09565b6109cf565b6109a7565b61098b565b610853565b6107c3565b6105d5565b61058a565b61053e565b6104e9565b6104b0565b61032a565b6102e6565b6102a2565b61025e565b3461025a57602036600319011261025a5760043563ffffffff60e01b811680910361025a57602090637965db0b60e01b8114908115610249575b506040519015158152f35b6301ffc9a760e01b1490505f61023e565b5f80fd5b3461025a575f36600319011261025a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461025a575f36600319011261025a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461025a575f36600319011261025a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461025a57604036600319011261025a576004356001600160601b038116810361025a576024359061035a611447565b6040516302910f8b60e31b81523360048201526020816024816001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165afa9081156104ab575f9161047c575b501561046a576001600160601b03166bffffffffffffffffffffffff193360601b161790806103e4835f52600260205260405f2090565b54146104585761043d817fc67e7929681aa1bccd63f52b3799bf5805f3009f197db6fdf584b14f7fbf608c92610422855f52600260205260405f2090565b5561042d8185611476565b6040519081529081906020820190565b0390a261045660015f8051602061255683398151915255565b005b60405163a741a04560e01b8152600490fd5b6040516323d53b9760e21b8152600490fd5b61049e915060203d6020116104a4575b6104968183610732565b810190610f9f565b5f6103ad565b503d61048c565b610fb7565b3461025a57602036600319011261025a576004355f525f805160206125368339815191526020526020600160405f200154604051908152f35b3461025a575f36600319011261025a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b6001600160a01b0381160361025a57565b3461025a57604036600319011261025a576104566024356004356105618261052d565b805f525f80516020612536833981519152602052610585600160405f2001546115b8565b611769565b3461025a57604036600319011261025a576024356105a78161052d565b336001600160a01b038216036105c3576104569060043561179f565b60405163334bd91960e11b8152600490fd5b3461025a57602036600319011261025a576004356105f28161052d565b6105fa611447565b335f9081527f9ebbcbe0d2961d3fbe56ca6f679bc753bd848d3e6bb3eaf9041c51b286881d2c60205260409020547fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c9060ff16156106b057506001546001600160a01b039182169181168214610458576001600160a01b03191681176001557f5bbb1d3ebb6a3ad2a0f17ff35e579a83af60604d1d3c2a4c83c62adecadf666d5f80a260015f8051602061255683398151915255005b6044906040519063e2517d3f60e01b82523360048301526024820152fd5b6064359065ffffffffffff8216820361025a57565b634e487b7160e01b5f52604160045260245ffd5b604081019081106001600160401b0382111761071257604052565b6106e3565b606081019081106001600160401b0382111761071257604052565b90601f801991011681019081106001600160401b0382111761071257604052565b60405190610760826106f7565b565b6001600160401b03811161071257601f01601f191660200190565b81601f8201121561025a5780359061079482610762565b926107a26040519485610732565b8284526020838301011161025a57815f926020809301838601378301015290565b3461025a57606036600319011261025a5760243565ffffffffffff8116810361025a576044356001600160401b03811161025a5760209161080b61081e92369060040161077d565b906004355f526003845260405f20611870565b604051908152f35b9181601f8401121561025a578235916001600160401b03831161025a576020838186019501011161025a57565b3461025a57602036600319011261025a576001600160401b0360043581811161025a57610884903690600401610826565b5f80516020612576833981519152549260ff8460401c1615931680159081610983575b6001149081610979575b159081610970575b5061095e575f80516020612576833981519152805467ffffffffffffffff191660011790556108ec918361093a57611989565b6108f257005b5f80516020612576833981519152805460ff60401b19169055604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a1005b5f80516020612576833981519152805460ff60401b1916600160401b179055611989565b60405163f92ee8a960e01b8152600490fd5b9050155f6108b9565b303b1591506108b1565b8491506108a7565b3461025a575f36600319011261025a576020604051614e208152f35b3461025a575f36600319011261025a576005546040516001600160a01b039091168152602090f35b3461025a575f36600319011261025a5760206040517fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c8152f35b3461025a575f36600319011261025a576004546040516001600160a01b039091168152602090f35b3461025a575f36600319011261025a576001546040516001600160a01b039091168152602090f35b3461025a575f36600319011261025a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461025a57604036600319011261025a57602060ff610aef602435610ac18161052d565b6004355f525f80516020612536833981519152845260405f209060018060a01b03165f5260205260405f2090565b54166040519015158152f35b3461025a5760408060031936011261025a57600435610b198161052d565b602435906001600160401b03821161025a575f8091610b3f610ba3943690600401610826565b908187519283928337810184815203915af43d15610bab57610b953d610b6481610762565b90610b7186519283610732565b81523d5f602083013e5b845194859315156020850152808401526060830190610fdb565b03601f198101835282610732565b805190602001fd5b610b956060610b7b565b3461025a575f36600319011261025a5760206040515f8152f35b3461025a575f36600319011261025a5760206040516001600160401b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461025a575f36600319011261025a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461025a57602036600319011261025a576004355f526002602052602060405f2054604051908152f35b3461025a57604036600319011261025a57610456602435600435610ca38261052d565b805f525f80516020612536833981519152602052610cc7600160405f2001546115b8565b61179f565b3461025a57608036600319011261025a57602435610ce98161052d565b6044359065ffffffffffff8216820361025a57606435906001600160401b03821161025a57602092610d2261081e93369060040161077d565b91600435611101565b3461025a5760a036600319011261025a57602435600435610d4b8261052d565b60443591610d576106ce565b90608435906001600160401b03821161025a57610d796004923690840161077d565b610d81611447565b5f54602090610da690610d9a906001600160a01b031681565b6001600160a01b031690565b60405163b134427160e01b815294859182905afa9283156104ab575f93610ee5575b506001600160a01b039283163303610ed3576001546001600160a01b0316838116610e48575b50506040805195865265ffffffffffff909316602086015216927f741a5de99085c0d660f3e4192217b0ffb0ea4e35a0480de48e857a4bc3ee36ed91819081015b0390a361045660015f8051602061255683398151915255565b909360405194610e7f86610e71602082019363724ab0f760e11b8552858c898d602487016112a0565b03601f198101885287610732565b62042e305a10610ec1575f610e2f938192827f741a5de99085c0d660f3e4192217b0ffb0ea4e35a0480de48e857a4bc3ee36ed9951926203d090f15093610dee565b604051638072475160e01b8152600490fd5b60405163dabc4ad960e01b8152600490fd5b610f0891935060203d602011610f0f575b610f008183610732565b81019061128b565b915f610dc8565b503d610ef6565b3461025a575f36600319011261025a575f546040516001600160a01b039091168152602090f35b3461025a57604036600319011261025a57602061081e602435610f5f8161052d565b60043561131d565b3461025a575f36600319011261025a5760206040516203d0908152f35b3461025a575f36600319011261025a57602060405160018152f35b9081602091031261025a5751801515810361025a5790565b6040513d5f823e3d90fd5b90610fd892915f52600360205260405f20611870565b90565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b6040519061100c826106f7565b60606020838281520152565b81601f8201121561025a5780519061102f82610762565b9261103d6040519485610732565b8284526020838301011161025a57815f9260208093018386015e8301015290565b9060208282031261025a5781516001600160401b039283821161025a57019060408282031261025a5760405192611094846106f7565b825181811161025a57826110a9918501611018565b8452602083015190811161025a576110c19201611018565b602082015290565b6001600160a01b0391821681529116602082015265ffffffffffff9091166040820152608060608201819052610fd892910190610fdb565b9261111190929192828486611b9c565b92909361111c610fff565b9380518061126f575b505084159384156111d9575b8415611148575b505050506111435790565b505f90565b602080949550611173910151604051958694859463530e1d4360e01b865260601c90600486016110c9565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa9081156104ab575f916111ba575b50155f808080611138565b6111d3915060203d6020116104a4576104968183610732565b5f6111af565b5f549094506001600160a01b031660208486519261120c604051948593849363530e1d4360e01b855289600486016110c9565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa9081156104ab575f91611250575b501593611131565b611269915060203d6020116104a4576104968183610732565b5f611248565b61128392955060208091830101910161105e565b925f80611125565b9081602091031261025a5751610fd88161052d565b919360a093610fd8969565ffffffffffff938552600180871b0316602085015260408401521660608201528160808201520190610fdb565b634e487b7160e01b5f52601160045260245ffd5b81156112f6570490565b634e487b7160e01b5f52601260045260245ffd5b906001820180921161131857565b6112d8565b5f546040516308834cb560e21b8082526001600160a01b0385811660048401529283166024830152929392602092909183816044817f000000000000000000000000000000000000000000000000000000000000000086165afa9081156104ab575f9161142a575b50159182156113a6575b505090506113a057610fd891611cbb565b50505f90565b6040519081526001600160a01b0385166004820152606086901c602482015291508290829060449082907f0000000000000000000000000000000000000000000000000000000000000000165afa9182156104ab575f9261140d575b505015805f8061138f565b6114239250803d106104a4576104968183610732565b5f80611402565b6114419150843d86116104a4576104968183610732565b5f611385565b5f8051602061255683398151915260028154146114645760029055565b604051633ee5aeb560e01b8152600490fd5b6004546001600160a01b0316606082901c036115a6575f52600360205260405f209065ffffffffffff9182421161158757824216926001820191825415611579575b6114c1816121ac565b509590845493835480155f1461155a57505f975b6001600160d01b0398808a1615611554576114f09088611d7d565b50505b82611548575b50501561153257505061076093509061151461151a9261184d565b90611d7d565b90919082549060031b91821b915f19901b1916179055565b61076095611541931691612284565b5050611dd3565b16821490505f806114f9565b506114f3565b5f1990808281011161131857855f5260205f2001015460301c976114d5565b61158283611da6565b6114b8565b6040516306dfcc6560e41b815260306004820152426024820152604490fd5b6040516386eab41b60e01b8152600490fd5b5f8181525f805160206125368339815191526020908152604080832033845290915290205460ff16156106b05750565b6001600160a01b0381165f9081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d60205260409020545f805160206125368339815191529060ff166113a0575f808052602091825260408082206001600160a01b038516835290925220805460ff1916600117905533906001600160a01b03165f7f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d8180a4600190565b6001600160a01b0381165f9081527f9ebbcbe0d2961d3fbe56ca6f679bc753bd848d3e6bb3eaf9041c51b286881d2c602052604090207fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c905f805160206125368339815191529060ff905b5416611762575f828152602091825260408082206001600160a01b038616835290925220805460ff1916600117905533916001600160a01b0316907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d5f80a4600190565b5050505f90565b5f8181525f80516020612536833981519152602081815260408084206001600160a01b038716855290915290912060ff906116fe565b5f8181525f80516020612536833981519152602081815260408084206001600160a01b03871685529091529091205460ff1615611762575f828152602091825260408082206001600160a01b038616835290925220805460ff1916905533916001600160a01b0316907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b5f80a4600190565b9081602091031261025a575163ffffffff8116810361025a5790565b5f1981019190821161131857565b90600163ffffffff8093160191821161131857565b91805115611949578060208061188b93518301019101611831565b916118968382611ed0565b926118a7845165ffffffffffff1690565b9065ffffffffffff808516921682811461193d57821191826118dd575b50506118d457610fd89250611df6565b50506020015190565b9091506118ea835461184d565b63ffffffff831614918215611903575b50505f806118c4565b61193591925061191e61191861192a9261185b565b85611ed0565b5165ffffffffffff1690565b65ffffffffffff1690565b115f806118fa565b50505050506020015190565b50610fd891611df6565b91909160408184031261025a57803561196b8161052d565b9260208201356001600160401b03811161025a57610fd8920161077d565b61199591810190611953565b6040516302910f8b60e31b81526001600160a01b039283166004820181905291906020816024817f000000000000000000000000000000000000000000000000000000000000000088165afa9081156104ab575f91611aa8575b5015611a9657611a2a604091611a25611a7094611a0a611f38565b60018060a01b03166001600160601b0360a01b5f5416175f55565b611ffb565b6020810151600180546001600160a01b0319166001600160a01b0390921691909117905580516001600160a01b0316848116611a86575b5001516001600160a01b031690565b908116611a7a5750565b611a8390611693565b50565b611a8f906115e8565b505f611a61565b6040516362df054560e01b8152600490fd5b611ac1915060203d6020116104a4576104968183610732565b5f6119ef565b60405190611ad482610717565b60606040838281528260208201520152565b9060208282031261025a5781516001600160401b039283821161025a57019060608282031261025a5760405192611b1c84610717565b825181811161025a5782611b31918501611018565b8452602083015181811161025a5782611b4b918501611018565b6020850152604083015190811161025a57611b669201611018565b604082015290565b9081602091031261025a575190565b60409065ffffffffffff610fd894931681528160208201520190610fdb565b90939293611ba8611ac7565b94805180611c9f575b5050600454606083901c6001600160a01b03918216148015929190611c84575b5050611c7c575f54611c17929190602090611bf690610d9a906001600160a01b031681565b8187015190604051808097819463810da75d60e01b83528860048401611b7d565b03915afa9081156104ab57611c44935f92611c49575b50611c3e9192604087015191610fc2565b90612176565b915190565b611c3e9250611c6f9060203d602011611c75575b611c678183610732565b810190611b6e565b91611c2d565b503d611c5d565b505090515f91565b60055481166001600160a01b03169116141590505f80611bd1565b611cb3929650602080918301019101611ae6565b935f80611bb1565b6004549091606083901c6001600160a01b039283161480159290611d62575b5050611143575f5460049190602090611cfd90610d9a906001600160a01b031681565b60405163bd49c35f60e01b815293849182905afa9081156104ab57610fd8925f92611d3d575b50611d36905f52600260205260405f2090565b5490612176565b611d36919250611d5b9060203d602011611c7557611c678183610732565b9190611d23565b60055481166001600160a01b03169116141590505f80611cda565b8054821015611d92575f5260205f2001905f90565b634e487b7160e01b5f52603260045260245ffd5b8054600160401b81101561071257611dc391600182018155611d7d565b8154905f199060031b1b19169055565b90815491600160401b831015610712578261151a91600161076095018155611d7d565b908154905f829160058411611e6a575b611e119350846124d6565b80611e4357505f905b6001600160d01b038216156113a057610fd8916001611e399201611d7d565b90549060031b1c90565b611e5d611e52611e649261184d565b835f5260205f200190565b5460301c90565b90611e1a565b9192611e75816123a3565b810390811161131857611e1193855f5265ffffffffffff808360205f20015416908516105f14611ea6575091611e06565b929150611eb29061130a565b90611e06565b60405190611ec5826106f7565b5f6020838281520152565b90611ef9611ef3611f1a92611ee3611eb8565b50611eec611eb8565b5084611d7d565b50612188565b91600165ffffffffffff845116936020828060d01b03910151169101611d7d565b90549060405192611f2a846106f7565b835260031b1c602082015290565b611f406121fb565b611f486121fb565b60015f8051602061255683398151915255565b60405190611f6882610717565b5f6040838281528260208201520152565b8091039060a0821261025a57606060405192611f9484610717565b1261025a57608090604051611fa881610717565b8151611fb38161052d565b81526020820151611fc38161052d565b60208201526040820151611fd68161052d565b604082015283526060810151611feb8161052d565b60208401520151611b668161052d565b612003611f5b565b5061201981519160208080948301019101611f79565b80820180516040516302910f8b60e31b8082526001600160a01b039283166004830152939491939082816024817f000000000000000000000000000000000000000000000000000000000000000089165afa9081156104ab575f91612159575b501561046a57816120bd916040870195612099875160018060a01b031690565b6040519283526001600160a01b031660048301529092839190829081906024820190565b03917f0000000000000000000000000000000000000000000000000000000000000000165afa9182156104ab575f9261213c575b50501561212a5751600480546001600160a01b039283166001600160a01b03199182161790915591516005805490931691161790555190565b604051631f0853c160e21b8152600490fd5b6121529250803d106104a4576104968183610732565b5f806120f1565b6121709150833d85116104a4576104968183610732565b5f612079565b9080821015612183575090565b905090565b90604051612195816106f7565b915465ffffffffffff8116835260301c6020830152565b8054806121bd5750505f905f905f90565b5f19908082810111611318576121da925f5260205f200101612188565b9065ffffffffffff82511691602060018060d01b0391015116906001929190565b60ff5f805160206125768339815191525460401c161561221757565b604051631afcd79f60e31b8152600490fd5b8054600160401b8110156107125761224691600182018155611d7d565b61227157815160209092015160301b65ffffffffffff191665ffffffffffff92909216919091179055565b634e487b7160e01b5f525f60045260245ffd5b80549293929190821561237a576122a56122a0611e528561184d565b612188565b906122b6825165ffffffffffff1690565b65ffffffffffff848116911681106123685761232c9460209488926122e461192a875165ffffffffffff1690565b03612330575061231e926122fa6123059261184d565b905f5260205f200190565b9065ffffffffffff82549181199060301b169116179055565b01516001600160d01b031690565b9190565b91505061236391612350612342610753565b65ffffffffffff9093168352565b6001600160d01b03881682860152612229565b61231e565b604051632520601d60e01b8152600490fd5b61239e925061238a612342610753565b6001600160d01b0385166020830152612229565b5f9190565b80156111435780611c3e61246e61246461245a61245061244661243c6124326001610fd89a5f908b60801c806124ca575b508060401c806124bd575b508060201c806124b0575b508060101c806124a3575b508060081c80612496575b508060041c80612489575b508060021c8061247c575b50821c612475575b811c1b61242b818b6112ec565b0160011c90565b61242b818a6112ec565b61242b81896112ec565b61242b81886112ec565b61242b81876112ec565b61242b81866112ec565b61242b81856112ec565b80926112ec565b810161241e565b600291509101905f612416565b600491509101905f61240b565b600891509101905f612400565b601091509101905f6123f5565b602091509101905f6123ea565b604091509101905f6123df565b9150506080905f6123d4565b91905b8382106124e65750505090565b9091928083169080841860011c820180921161131857845f5265ffffffffffff808360205f20015416908416105f146125235750925b91906124d9565b93925061252f9061130a565b9161251c56fe02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268009b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a264697066735822122064d4f8eb5326c677a800a0d904350a2a63febf437fecf588a849d07e0ee0fe1f64736f6c63430008190033","sourceMap":"681:3264:84:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;;;;;-1:-1:-1;;681:3264:84;;;;;;;;;;;;;;;;;;-1:-1:-1;;;3551:47:24;;;:87;;;;681:3264:84;;;;;;;;;;3551:87:24;-1:-1:-1;;;1133:40:30;;-1:-1:-1;3551:87:24;;;681:3264:84;-1:-1:-1;681:3264:84;;;;;;;;-1:-1:-1;;681:3264:84;;;;;;1537:38:81;-1:-1:-1;;;;;681:3264:84;;;;;;;;;;;;-1:-1:-1;;681:3264:84;;;;;;1632:54:81;-1:-1:-1;;;;;681:3264:84;;;;;;;;;;;;-1:-1:-1;;681:3264:84;;;;;;1743:56:81;-1:-1:-1;;;;;681:3264:84;;;;;;;;;;;;-1:-1:-1;;681:3264:84;;;;;;-1:-1:-1;;;;;681:3264:84;;;;;;;;3217:103:29;;;:::i;:::-;681:3264:84;;-1:-1:-1;;;4285:48:81;;4322:10;681:3264:84;4285:48:81;;681:3264:84;;;;;-1:-1:-1;;;;;4295:16:81;681:3264:84;4285:48:81;;;;;;;-1:-1:-1;4285:48:81;;;681:3264:84;4284:49:81;;4280:99;;-1:-1:-1;;;;;681:3264:84;-1:-1:-1;;4322:10:81;297:2:93;681:3264:84;;267:46:93;4459:27:81;;;;681:3264:84;;4459:15:81;681:3264:84;;;;;;;4459:27:81;681:3264:84;4459:37:81;4455:87;;4654:38;4552:27;4654:38;4552:27;;;681:3264:84;;4459:15:81;681:3264:84;;;;;;;4552:27:81;681:3264:84;4631:6:81;;;;:::i;:::-;681:3264:84;;;;;;;;;;;;;4654:38:81;;;;3282:1:29;1805;-1:-1:-1;;;;;;;;;;;681:3264:84;3716:283:29;3282:1;681:3264:84;4455:87:81;681:3264:84;;-1:-1:-1;;;4519:12:81;;681:3264:84;;4519:12:81;4280:99;681:3264:84;;-1:-1:-1;;;4356:12:81;;681:3264:84;;4356:12:81;4285:48;;;;681:3264:84;4285:48:81;681:3264:84;4285:48:81;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;:::i;681:3264:84:-;;;;;;-1:-1:-1;;681:3264:84;;;;;;-1:-1:-1;681:3264:84;-1:-1:-1;;;;;;;;;;;681:3264:84;;;4919:24:24;681:3264:84;-1:-1:-1;681:3264:84;4919:24:24;681:3264:84;;;;;;;;;;;;;-1:-1:-1;;681:3264:84;;;;;;322:32:74;-1:-1:-1;;;;;681:3264:84;;;;;;;-1:-1:-1;;;;;681:3264:84;;;;;:::o;:::-;;;;;;-1:-1:-1;;681:3264:84;;;;5350:25:24;681:3264:84;;;;;;;:::i;:::-;;-1:-1:-1;681:3264:84;-1:-1:-1;;;;;;;;;;;681:3264:84;;3202:4:24;4919:24;681:3264:84;-1:-1:-1;681:3264:84;4919:24:24;681:3264:84;3202:4:24;:::i;:::-;5350:25;:::i;681:3264:84:-;;;;;;-1:-1:-1;;681:3264:84;;;;;;;;;:::i;:::-;966:10:28;-1:-1:-1;;;;;681:3264:84;;6441:34:24;6437:102;;6549:37;681:3264:84;;;6549:37:24;:::i;6437:102::-;681:3264:84;;-1:-1:-1;;;6498:30:24;;681:3264:84;;6498:30:24;681:3264:84;;;;;;-1:-1:-1;;681:3264:84;;;;;;;;;:::i;:::-;3217:103:29;;:::i;:::-;966:10:28;-1:-1:-1;681:3264:84;;;;;;;;;;1356:26:81;;681:3264:84;;4468:23:24;4464:108;;-1:-1:-1;4861:4:81;681:3264:84;-1:-1:-1;;;;;681:3264:84;;;;;;4861:13:81;;4857:63;;-1:-1:-1;;;;;;681:3264:84;;;4861:4:81;681:3264:84;4958:14:81;-1:-1:-1;;4958:14:81;4861:4;-1:-1:-1;;;;;;;;;;;681:3264:84;;4464:108:24;681:3264:84;;;;4514:47:24;;;;;;966:10:28;681:3264:84;4514:47:24;;681:3264:84;;;;;4514:47:24;681:3264:84;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;681:3264:84;;;;;;;:::o;:::-;;:::i;:::-;;;;;;;-1:-1:-1;;;;;681:3264:84;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;681:3264:84;;;;;;;:::o;:::-;;;;;;;:::i;:::-;:::o;:::-;-1:-1:-1;;;;;681:3264:84;;;;;;-1:-1:-1;;681:3264:84;;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;681:3264:84;;;;;;;;;;;;;;:::o;:::-;;;;;;-1:-1:-1;;681:3264:84;;;;;;;;;;;;;;;-1:-1:-1;;;;;681:3264:84;;;;;;;2045:63;681:3264;;;;;;:::i;:::-;;;;-1:-1:-1;681:3264:84;2045:16;681:3264;;;-1:-1:-1;681:3264:84;2045:63;:::i;:::-;681:3264;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;681:3264:84;;;;;;;;;;;;;;;:::o;:::-;;;;;;-1:-1:-1;;681:3264:84;;;;-1:-1:-1;;;;;681:3264:84;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;681:3264:84;;;;;;;4301:16:26;681:3264:84;;4726:16:26;;:34;;;;681:3264:84;4805:1:26;4790:16;:50;;;;681:3264:84;4855:13:26;:30;;;;681:3264:84;4851:91:26;;;-1:-1:-1;;;;;;;;;;;681:3264:84;;-1:-1:-1;;681:3264:84;;;;;718:4:74;;4951:18:26;4979:67;;718:4:74;:::i;:::-;5066:101:26;;681:3264:84;5066:101:26;-1:-1:-1;;;;;;;;;;;681:3264:84;;-1:-1:-1;;;;681:3264:84;;;;;-1:-1:-1;681:3264:84;;5142:14:26;;681:3264:84;;5142:14:26;681:3264:84;4979:67:26;-1:-1:-1;;;;;;;;;;;681:3264:84;;-1:-1:-1;;;;681:3264:84;-1:-1:-1;;;681:3264:84;;;718:4:74;:::i;4851:91:26:-;681:3264:84;;-1:-1:-1;;;4908:23:26;;681:3264:84;;4908:23:26;4855:30;4872:13;;;4855:30;;;4790:50;4818:4;4810:25;:30;;-1:-1:-1;4790:50:26;;4726:34;;;-1:-1:-1;4726:34:26;;681:3264:84;;;;;;-1:-1:-1;;681:3264:84;;;;;;;1253:6:81;681:3264:84;;;;;;;;;-1:-1:-1;;681:3264:84;;;;1267:23;681:3264;;;-1:-1:-1;;;;;681:3264:84;;;;;;;;;;;;;;-1:-1:-1;;681:3264:84;;;;;;;1356:26:81;681:3264:84;;;;;;;;;-1:-1:-1;;681:3264:84;;;;;;;;-1:-1:-1;;;;;681:3264:84;;;;;;;;;;;;;;-1:-1:-1;;681:3264:84;;;;;;;;-1:-1:-1;;;;;681:3264:84;;;;;;;;;;;;;;-1:-1:-1;;681:3264:84;;;;;;961:42;-1:-1:-1;;;;;681:3264:84;;;;;;;;;;;;-1:-1:-1;;681:3264:84;;;;;;3901:31:24;681:3264:84;;;;;:::i;:::-;;;-1:-1:-1;681:3264:84;-1:-1:-1;;;;;;;;;;;681:3264:84;;;-1:-1:-1;681:3264:84;;;;;;;;;;;;;;;;;3901:31:24;681:3264:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;681:3264:84;;;;-1:-1:-1;681:3264:84;;;477:31:80;681:3264:84;;;;;;:::i;:::-;;;;;;;;;;;;;;;416:25:80;;;;681:3264:84;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;-1:-1:-1;681:3264:84;;;;;;;;;;;;;477:31:80;;681:3264:84;;;;;;;;;;:::i;:::-;477:31:80;681:3264:84;;477:31:80;;;;;;:::i;:::-;518:79;;;681:3264:84;518:79:80;;681:3264:84;;;;;;;;;;;-1:-1:-1;;681:3264:84;;;;;;;;;;;;;;;;;-1:-1:-1;;681:3264:84;;;;;;;-1:-1:-1;;;;;404:28:74;681:3264:84;;;;;;;;;;-1:-1:-1;;681:3264:84;;;;;;1439:41:81;-1:-1:-1;;;;;681:3264:84;;;;;;;;;;;;-1:-1:-1;;681:3264:84;;;;;;-1:-1:-1;681:3264:84;2009:67:81;681:3264:84;;;;-1:-1:-1;681:3264:84;;;;;;;;;;;;;;-1:-1:-1;;681:3264:84;;;;5767:26:24;681:3264:84;;;;;;;:::i;:::-;;-1:-1:-1;681:3264:84;-1:-1:-1;;;;;;;;;;;681:3264:84;;3202:4:24;4919:24;681:3264:84;-1:-1:-1;681:3264:84;4919:24:24;681:3264:84;3202:4:24;:::i;:::-;5767:26;:::i;681:3264:84:-;;;;;;-1:-1:-1;;681:3264:84;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;-1:-1:-1;;;;;681:3264:84;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;-1:-1:-1;;681:3264:84;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;-1:-1:-1;;;;;681:3264:84;;;;;;;;;;;;:::i;:::-;3217:103:29;;:::i;:::-;-1:-1:-1;681:3264:84;;;5246:21:81;;:13;;-1:-1:-1;;;;;681:3264:84;5246:13:81;681:3264:84;;-1:-1:-1;;;;;681:3264:84;;;5246:21:81;681:3264:84;;-1:-1:-1;;;5246:23:81;;681:3264:84;;;;;5246:23:81;;;;;;;-1:-1:-1;5246:23:81;;;681:3264:84;-1:-1:-1;;;;;;681:3264:84;;;5232:10:81;:37;5228:87;;5341:4;681:3264:84;-1:-1:-1;;;;;681:3264:84;;;;5355:469:81;;681:3264:84;-1:-1:-1;;681:3264:84;;;;;;;;;;;;;;;;5839:55:81;;681:3264:84;;;;5839:55:81;;;;3282:1:29;1805;-1:-1:-1;;;;;;;;;;;681:3264:84;3716:283:29;5355:469:81;681:3264:84;;;;5435:94:81;;;;681:3264:84;5435:94:81;;;;;;;;;;;;681:3264:84;5435:94:81;;;:::i;:::-;;681:3264:84;;5435:94:81;;;;;;:::i;:::-;681:3264:84;5548:9:81;:51;5544:118;;-1:-1:-1;5839:55:81;5676:138;;;;5839:55;5676:138;;;1150:7;5676:138;;5355:469;;;5544:118;681:3264:84;;-1:-1:-1;;;5626:21:81;;681:3264:84;;5626:21:81;5228:87;681:3264:84;;-1:-1:-1;;;5292:12:81;;681:3264:84;;5292:12:81;5246:23;;;;;681:3264:84;5246:23:81;681:3264:84;5246:23:81;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;681:3264:84;;;;;;-1:-1:-1;;681:3264:84;;;;;;;;-1:-1:-1;;;;;681:3264:84;;;;;;;;;;;;;;-1:-1:-1;;681:3264:84;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;-1:-1:-1;;681:3264:84;;;;;;;1150:7:81;681:3264:84;;;;;;;;;-1:-1:-1;;681:3264:84;;;;;;;2700:1:81;681:3264:84;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;1914:201;;2045:63;1914:201;;-1:-1:-1;681:3264:84;2045:16;681:3264;;;-1:-1:-1;681:3264:84;2045:63;:::i;:::-;1914:201;:::o;681:3264::-;;;;;;;;;;;;;;;;;-1:-1:-1;681:3264:84;;;;;;;;-1:-1:-1;;681:3264:84;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;681:3264:84;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;;;;681:3264:84;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::o;:::-;-1:-1:-1;;;;;681:3264:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;2764:920:81:-;;2978:48;2764:920;;;;2978:48;;;;:::i;:::-;3036:36;;;681:3264:84;;:::i;:::-;;;;3086:20:81;3082:107;;2764:920;3216:11;;;;:193;;;;;2764:920;3216:394;;;;2764:920;3199:455;;;;;;2764:920;:::o;3199:455::-;3635:8;-1:-1:-1;3635:8:81;:::o;3216:394::-;3553:39;;;;;3430:180;3553:39;;;681:3264:84;;;;;;;;;;3430:180:81;;467:2:93;681:3264:84;3430:180:81;;;;;:::i;:::-;;681:3264:84;3444:31:81;-1:-1:-1;;;;;681:3264:84;3430:180:81;;;;;;;-1:-1:-1;3430:180:81;;;3216:394;3429:181;;3216:394;;;;;;3430:180;;;;3553:39;3430:180;3553:39;3430:180;;;;;;;:::i;:::-;;;;3216:193;-1:-1:-1;681:3264:84;;;-1:-1:-1;;;;;;681:3264:84;3248:161:81;3354:37;;;681:3264:84;3248:161:81;681:3264:84;;;;;;;;;;3248:161:81;;;;;;;:::i;:::-;;681:3264:84;3262:29:81;-1:-1:-1;;;;;681:3264:84;3248:161:81;;;;;;;-1:-1:-1;3248:161:81;;;3216:193;3247:162;;3216:193;;;3248:161;;;;;;;;;;;;;;:::i;:::-;;;;3082:107;3139:39;;;;;;;;;;;;;:::i;:::-;3082:107;;;;;681:3264:84;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;9856:1:61;681:3264:84;;;;;;;:::o;:::-;;:::i;3740:389:81:-;3918:5;681:3264:84;;;-1:-1:-1;;;3853:71:81;;;-1:-1:-1;;;;;681:3264:84;;;3853:71:81;;;681:3264:84;;;;;;;;3740:389:81;;681:3264:84;3853:71:81;;681:3264:84;;3853:71:81;681:3264:84;;;3867:29:81;681:3264:84;;3853:71:81;;;;;;;3918:5;3853:71;;;3740:389;3852:72;;681:3264:84;;;3852:181:81;;3740:389;3835:242;;;;;;4094:28;;;:::i;3835:242::-;4058:8;;3918:5;4058:8;:::o;3852:181::-;681:3264:84;;3945:88:81;;;-1:-1:-1;;;;;681:3264:84;;3853:71:81;3945:88;;681:3264:84;467:2:93;681:3264:84;;;;;;;;-1:-1:-1;681:3264:84;;;;;;;;3959:31:81;681:3264:84;3945:88:81;;;;;;;3918:5;3945:88;;;3852:181;3944:89;;;3852:181;;;;;3945:88;;;;;;-1:-1:-1;3945:88:81;;;;;;:::i;:::-;;;;;3853:71;;;;;;;;;;;;;;:::i;:::-;;;;3326:384:29;-1:-1:-1;;;;;;;;;;;1847:1:29;681:3264:84;;3526:20:29;3522:88;;1847:1;681:3264:84;;3326:384:29:o;3522:88::-;681:3264:84;;-1:-1:-1;;;3569:30:29;;;;;3164:253:84;3261:7;681:3264;-1:-1:-1;;;;;681:3264:84;467:2:93;681:3264:84;;;3261:31;3257:85;;-1:-1:-1;681:3264:84;3351:16;681:3264;;;-1:-1:-1;681:3264:84;;;837:15:63;;;14369:24:59;14365:103;;837:15:63;;681:3264:84;6360:12:91;;;;681:3264:84;;;6360:24:91;6356:75;;3164:253:84;6474:30:91;;;:::i;:::-;681:3264:84;;;;;;;;10303:8:61;;:63;:8;;;:63;-1:-1:-1;10303:63:61;;-1:-1:-1;;;;;681:3264:84;;;;10726:7:91;681:3264:84;;10736:17:91;;;;:::i;:::-;10726:31;;;6604:24;;;10726:31;-1:-1:-1;;6600:188:91;;;6657:7;;6644:29;6657:7;;;;6644:21;6657:7;;:::i;:::-;6644:21;;:::i;:::-;:29;681:3264:84;;;;;;;;;;;;;;;;;;;;;6600:188:91;6753:24;681:3264:84;8167:38:61;681:3264:84;;8167:38:61;;:::i;:::-;6753:24:91;;;:::i;6604:::-;681:3264:84;6614:14:91;;;-1:-1:-1;6604:24:91;;;;10726:31;;;;10303:63:61;681:3264:84;;;;;;;;;;14249:109:61;-1:-1:-1;14249:109:61;681:3264:84;-1:-1:-1;14249:109:61;;;681:3264:84;;;10303:63:61;;;6356:75:91;6400:20;;;:::i;:::-;6356:75;;14365:103:59;681:3264:84;;-1:-1:-1;;;14416:41:59;;14447:2;3261:7:84;14416:41:59;;681:3264:84;837:15:63;681:3264:84;;;;;;14416:41:59;3257:85:84;681:3264;;-1:-1:-1;;;3315:16:84;;3261:7;;3315:16;4148:103:24;-1:-1:-1;681:3264:84;;;-1:-1:-1;;;;;;;;;;;681:3264:84;;;;;;;;966:10:28;681:3264:84;;;;;;;;;;4468:23:24;4464:108;;4148:103;:::o;7270:387::-;-1:-1:-1;;;;;681:3264:84;;-1:-1:-1;681:3264:84;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2887:71:24;681:3264:84;;;;-1:-1:-1;681:3264:84;;;;;;;;;;;-1:-1:-1;;;;;681:3264:84;;;;;;;;;;-1:-1:-1;;681:3264:84;7509:4:24;681:3264:84;;;966:10:28;;-1:-1:-1;;;;;681:3264:84;-1:-1:-1;7532:40:24;-1:-1:-1;;7532:40:24;7509:4;7586:11;:::o;7270:387::-;-1:-1:-1;;;;;681:3264:84;;-1:-1:-1;681:3264:84;;;;;;;;;1356:26:81;;-1:-1:-1;;;;;;;;;;;2887:71:24;681:3264:84;;3901:31:24;681:3264:84;;;;-1:-1:-1;681:3264:84;;;;;;;;;;;-1:-1:-1;;;;;681:3264:84;;;;;;;;;;-1:-1:-1;;681:3264:84;7509:4:24;681:3264:84;;;966:10:28;;-1:-1:-1;;;;;681:3264:84;;7532:40:24;-1:-1:-1;;7532:40:24;7509:4;7586:11;:::o;7432:219::-;7628:12;;;-1:-1:-1;7628:12:24;:::o;7270:387::-;-1:-1:-1;681:3264:84;;;-1:-1:-1;;;;;;;;;;;681:3264:84;;;;;;;;-1:-1:-1;;;;;681:3264:84;;;;;;;;;;;;3901:31:24;681:3264:84;7892:388:24;-1:-1:-1;681:3264:84;;;-1:-1:-1;;;;;;;;;;;681:3264:84;;;;;;;;-1:-1:-1;;;;;681:3264:84;;;;;;;;;;;;;;;;-1:-1:-1;681:3264:84;;;;;;;;;;;-1:-1:-1;;;;;681:3264:84;;;;;;;;;;-1:-1:-1;;681:3264:84;;;966:10:28;;-1:-1:-1;;;;;681:3264:84;;8155:40:24;-1:-1:-1;;8155:40:24;681:3264:84;8209:11:24;:::o;681:3264:84:-;;;;;;;;;;;;;;;;;;:::o;:::-;-1:-1:-1;;681:3264:84;;;;;;;;:::o;:::-;;;;;;;;;;;;;:::o;7558:604:91:-;;681:3264:84;;7686:17:91;7682:83;;681:3264:84;7789:27:91;681:3264:84;7789:27:91;681:3264:84;;7789:27:91;;;;;;:::i;:::-;7860:14;;;;;:::i;:::-;681:3264:84;;;;;;;;;;;;;;;;7888:22:91;;;7884:77;;7975:21;-1:-1:-1;7975:84:91;;;;7558:604;7971:139;;;;8127:28;;;;:::i;7971:139::-;8082:17;;7789:27;8082:17;681:3264:84;8075:24:91;:::o;7975:84::-;681:3264:84;;;8009:16:91;681:3264:84;;8009:16:91;:::i;:::-;681:3264:84;;;8001:24:91;:57;;;;;7975:84;;;;;;;8001:57;8029:29;8038:8;;;8029:18;8038:8;8029:23;8038:8;;:::i;:::-;8029:18;;:::i;:::-;681:3264:84;;;;;8029:23:91;681:3264:84;;;;8029:29:91;;8001:57;;;;7884:77;7933:17;;;;;7789:27;7933:17;681:3264:84;7926:24:91;:::o;7682:83::-;7726:28;;;;:::i;681:3264:84:-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;681:3264:84;;;;;;;;:::i;5907:716:81:-;6030:34;5907:716;6030:34;;;;:::i;:::-;681:3264:84;;-1:-1:-1;;;6080:41:81;;-1:-1:-1;;;;;681:3264:84;;;6080:41:81;;;681:3264:84;;;;;6080:41:81;681:3264:84;;;6090:13:81;681:3264:84;;6080:41:81;;;;;;;-1:-1:-1;6080:41:81;;;5907:716;6079:42;;6075:90;;6266:27;681:3264:84;2540:111:29;6210:14:81;681:3264:84;2540:111:29;;;:::i;:::-;681:3264:84;;;;;;-1:-1:-1;;;;;681:3264:84;;-1:-1:-1;681:3264:84;;;-1:-1:-1;681:3264:84;;6210:14:81;6266:27;:::i;:::-;6080:41;6311:15;;681:3264:84;;;;-1:-1:-1;;;;;;681:3264:84;-1:-1:-1;;;;;681:3264:84;;;;;;;;;;;-1:-1:-1;;;;;681:3264:84;;;;6337:143:81;;5907:716;-1:-1:-1;6493:28:81;681:3264:84;-1:-1:-1;;;;;681:3264:84;;;;;;;6489:128:81;;5907:716;:::o;6489:128::-;6551:55;;;:::i;:::-;;5907:716::o;6337:143::-;6404:65;;;:::i;:::-;;6337:143;;;6075:90;681:3264:84;;-1:-1:-1;;;6144:10:81;;6080:41;;6144:10;6080:41;;;;;;;;;;;;;;:::i;:::-;;;;681:3264:84;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;;;;681:3264:84;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;:::i;2121:740::-;;;;;681:3264;;:::i;:::-;;;;2362:16;2358:92;;2121:740;-1:-1:-1;;2464:7:84;681:3264;467:2:93;681:3264:84;;;-1:-1:-1;;;;;681:3264:84;;;2464:31;;;;;681:3264;2464:56;;2121:740;2460:120;;;;-1:-1:-1;681:3264:84;2637:67;;681:3264;;2676:27;;2637;;:13;;-1:-1:-1;;;;;681:3264:84;2637:13;681:3264;2637:27;2676;;;;681:3264;;;;;;;;;;;2637:67;;;2464:7;2637:67;;;:::i;:::-;;;;;;;;;;2611:198;2637:67;-1:-1:-1;2637:67:84;;;2121:740;2763:31;2722:73;2763:31;;681:3264;2763:31;;;2722:73;;:::i;:::-;2611:198;;:::i;:::-;2823:21;;2121:740;:::o;2637:67::-;2722:73;2637:67;;;;2676:27;2637:67;2676:27;2637:67;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;2460:120;-1:-1:-1;;2547:21:84;;-1:-1:-1;;2536:33:84:o;2464:56::-;2499:8;681:3264;;;-1:-1:-1;;;;;681:3264:84;;;2499:21;;;-1:-1:-1;2464:56:84;;;;2358:92;2408:31;;;;;;;;;;;;;:::i;:::-;2358:92;;;;;2867:291;2977:7;681:3264;2867:291;;681:3264;;;;-1:-1:-1;;;;;681:3264:84;;;2977:31;;;;681:3264;2977:56;;2867:291;2973:95;;;;-1:-1:-1;681:3264:84;2977:7;;681:3264;3094:27;;:25;;:13;;-1:-1:-1;;;;;681:3264:84;3094:13;681:3264;3094:25;681:3264;;-1:-1:-1;;;3094:27:84;;681:3264;;;;;3094:27;;;;;;;3085:66;3094:27;-1:-1:-1;3094:27:84;;;2867:291;3123:27;;;681:3264;;4459:15:81;681:3264:84;;;;;;;3123:27;681:3264;3085:66;;:::i;3094:27::-;3123;3094;;;;;;;;;;;;;;;:::i;:::-;;;;;2977:56;3012:8;681:3264;;;-1:-1:-1;;;;;681:3264:84;;;3012:21;;;-1:-1:-1;2977:56:84;;;;681:3264;;;;;;;;-1:-1:-1;681:3264:84;;-1:-1:-1;681:3264:84;;;-1:-1:-1;681:3264:84;:::o;:::-;;;;;;;;;;;;;;;-1:-1:-1;;;681:3264:84;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::o;:::-;;;;;-1:-1:-1;;;681:3264:84;;;;;;;;;;;;;;;:::i;6999:207:91:-;;681:3264:84;;9594:15:61;-1:-1:-1;9619:18:61;9652:7;9658:1;9652:7;;9648:234;;6999:207:91;9906:53:61;;;;;:::i;:::-;9977:8;;;:63;-1:-1:-1;9977:63:61;;-1:-1:-1;;;;;681:3264:84;;7168:7:91;681:3264:84;;;7178:12:91;;:17;:12;;:17;:::i;:::-;681:3264:84;;;;;;;;9977:63:61;9992:41;10025:7;9992:48;10025:7;;:::i;:::-;9992:41;14249:109;;;;;;14099:265;;9992:41;681:3264:84;;;;;9992:48:61;9977:63;;;9648:234;9695:14;;;;;:::i;:::-;681:3264:84;;;;;;;9906:53:61;14249:109;;-1:-1:-1;14249:109:61;681:3264:84;14249:109:61;;;-1:-1:-1;14249:109:61;;681:3264:84;;;;;9727:48:61;9723:149;681:3264:84;;;9795:10:61;9723:149;9648:234;;9723:149;9850:7;;;;;;:::i;:::-;9723:149;9648:234;;681:3264:84;;;;;;;:::i;:::-;-1:-1:-1;681:3264:84;;;;;;;:::o;11486:272:91:-;;681:3264:84;11308:22:61;11718:31:91;11486:272;681:3264:84;;:::i;:::-;;;;:::i;:::-;;11308:22:61;;:::i;:::-;681:3264:84;;:::i;:::-;;11718:12:91;681:3264:84;;;;;11731:17:91;681:3264:84;;;;;11731:17:91;;681:3264:84;;11718:12:91;;:31;:::i;:::-;681:3264:84;;;;;;;;;:::i;:::-;;;;;;11731:17:91;11672:79;;681:3264:84;11486:272:91;:::o;6893:76:26:-;;;:::i;:::-;;;:::i;:::-;1805:1:29;-1:-1:-1;;;;;;;;;;;681:3264:84;6893:76:26:o;681:3264:84:-;;;;;;;:::i;:::-;-1:-1:-1;681:3264:84;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;3423:520::-;681:3264;;:::i;:::-;;3571:30;681:3264;;3571:30;;;;;;;;;;;:::i;:::-;3654:14;;;681:3264;;;;-1:-1:-1;;;3617:52:84;;;-1:-1:-1;;;;;681:3264:84;;;3617:52;;;681:3264;3654:14;;681:3264;;;3654:14;681:3264;;;3627:16;681:3264;;3617:52;;;;;;;-1:-1:-1;3617:52:84;;;3423:520;3616:53;;3612:103;;3768:15;3730:54;3768:15;681:3264;3768:15;;681:3264;;;;;;;;;;;;;;;3730:54;;;-1:-1:-1;;;;;681:3264:84;3617:52;3730:54;;681:3264;;;;;-1:-1:-1;681:3264:84;;;;;;;;;3730:54;;3740:17;;681:3264;3730:54;;;;;;;-1:-1:-1;3730:54:84;;;3423:520;3729:55;;;3725:106;;681:3264;3617:52;681:3264;;-1:-1:-1;;;;;681:3264:84;;;-1:-1:-1;;;;;;681:3264:84;;;;;;;;;3875:26;681:3264;;;;;;;;;;3919:17;3423:520;:::o;3725:106::-;681:3264;;-1:-1:-1;;;3807:13:84;;3617:52;;3807:13;3730:54;;;;;;-1:-1:-1;3730:54:84;;;;;;:::i;:::-;;;;;3617:52;;;;;;;;;;;;;;:::i;:::-;;;;2557:104:58;;2641:5;;;;;;:13;2557:104;:::o;2641:13::-;;;2557:104;:::o;681:3264:84:-;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::o;10552:388:61:-;681:3264:84;;10728:8:61;;;10752:20;;10690:17;10752:20;10690:17;10752:20;10690:17;10752:20;:::o;10724:210::-;681:3264:84;;;;;;;;;;;14249:109:61;10690:17;14249:109;;10690:17;14249:109;;;681:3264:84;:::i;:::-;;;;;;;14249:109:61;681:3264:84;;;;;10911:11:61;;681:3264:84;;10886:37:61;10870:1;10886:37;;;:::o;7084:141:26:-;681:3264:84;-1:-1:-1;;;;;;;;;;;681:3264:84;;;;7150:18:26;7146:73;;7084:141::o;7146:73::-;681:3264:84;;-1:-1:-1;;;7191:17:26;;;;;681:3264:84;;;-1:-1:-1;;;681:3264:84;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;681:3264:84;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;11513:870:61;681:3264:84;;11513:870:61;;;681:3264:84;11513:870:61;11672:7;;;;681:3264:84;11775:28:61;11795:7;;;:::i;11775:28::-;681:3264:84;:::i;:::-;;;;;;;;;;;;;;;;11877:15:61;-1:-1:-1;11873:91:61;;681:3264:84;;12233:11:61;681:3264:84;;;12027:16:61;681:3264:84;;;;;;;12027:16:61;;;;12083:7;12063:43;12083:7;;12063:28;12083:7;;:::i;:::-;12063:28;14249:109;;;;;;14099:265;;12063:28;681:3264:84;;;;;;;;;;;;;;;;;12063:43:61;12233:11;681:3264:84;-1:-1:-1;;;;;681:3264:84;;;;12225:27:61;;:::o;12023:189::-;681:3264:84;;;12145:52:61;681:3264:84;12155:41:61;681:3264:84;;:::i;:::-;;;;;;;;12155:41:61;-1:-1:-1;;;;;681:3264:84;;12155:41:61;;;681:3264:84;12145:52:61;:::i;:::-;12023:189;;11873:91;681:3264:84;;-1:-1:-1;;;11919:30:61;;;;;11668:709;12283:52;681:3264:84;;12293:41:61;681:3264:84;;:::i;12293:41:61:-;-1:-1:-1;;;;;681:3264:84;;12293:41:61;;;681:3264:84;12145:52:61;:::i;12283:::-;11678:1;12349:17;;:::o;8587:1642:58:-;8658:6;;8654:45;;9401:7;10201:10;10142:26;10093;10044;9995;9946;9897;9848;681:3264:84;10189:23:58;9401:7;8663:1;681:3264:84;;;;10826:16:58;10822:99;;8587:1642;681:3264:84;;;;10938:15:58;10934:96;;8587:1642;681:3264:84;;;;11047:15:58;11043:96;;8587:1642;681:3264:84;;;;11156:15:58;11152:96;;8587:1642;681:3264:84;;;;11265:14:58;11261:93;;8587:1642;681:3264:84;;;;11371:14:58;11367:93;;8587:1642;681:3264:84;;;;11477:14:58;11473:93;;8587:1642;681:3264:84;;;11579:64:58;;8587:1642;681:3264:84;;;9858:10:58;;;;:::i;:::-;681:3264:84;;;;;9848:26:58;9907:10;;;;:::i;9897:26::-;9956:10;;;;:::i;9946:26::-;10005:10;;;;:::i;9995:26::-;10054:10;;;;:::i;10044:26::-;10103:10;;;;:::i;10093:26::-;10152:10;;;;:::i;10142:26::-;10201:10;;;:::i;11579:64::-;681:3264:84;;11579:64:58;;11473:93;681:3264:84;11511:11:58;;681:3264:84;;11473:93:58;;;;11367;681:3264:84;11405:11:58;;681:3264:84;;11367:93:58;;;;11261;681:3264:84;11299:11:58;;681:3264:84;;11261:93:58;;;;11152:96;681:3264:84;11191:12:58;;681:3264:84;;11152:96:58;;;;11043;681:3264:84;11082:12:58;;681:3264:84;;11043:96:58;;;;10934;681:3264:84;10973:12:58;;681:3264:84;;10934:96:58;;;;10822:99;10862:13;;;681:3264:84;10822:99:58;;;;12736:433:61;;;12919:10;;;;;;13151:11;;;12736:433;:::o;12912:230::-;2900:5:58;;;;;;2910;;;;681:3264:84;;;;;;;;;14249:109:61;-1:-1:-1;14249:109:61;681:3264:84;14249:109:61;;;-1:-1:-1;14249:109:61;;681:3264:84;;;;;-1:-1:-1;12996:136:61;681:3264:84;;;13055:10:61;12996:136;;12912:230;;;;12996:136;13110:7;;;;;;:::i;:::-;12996:136;;","linkReferences":{},"immutableReferences":{"64520":[{"start":1278,"length":32}],"64523":[{"start":3054,"length":32}],"65474":[{"start":893,"length":32},{"start":3111,"length":32},{"start":8264,"length":32}],"65477":[{"start":627,"length":32},{"start":6590,"length":32}],"65480":[{"start":695,"length":32},{"start":4624,"length":32},{"start":4948,"length":32}],"65483":[{"start":763,"length":32},{"start":4471,"length":32},{"start":5074,"length":32}],"67099":[{"start":2670,"length":32},{"start":8385,"length":32}]}},"methodIdentifiers":{"DEFAULT_ADMIN_ROLE()":"a217fddf","FACTORY()":"2dd31000","HOOK_GAS_LIMIT()":"ff54740f","HOOK_RESERVE()":"557cab44","HOOK_SET_ROLE()":"6679191e","NETWORK_REGISTRY()":"c0cd7c3e","OPERATOR_NETWORK_OPT_IN_SERVICE()":"1a80e500","OPERATOR_REGISTRY()":"83ce0322","OPERATOR_VAULT_OPT_IN_SERVICE()":"128e5d82","TYPE()":"bb24fe8a","VAULT_FACTORY()":"103f2907","VERSION()":"ffa1ad74","getRoleAdmin(bytes32)":"248a9ca3","grantRole(bytes32,address)":"2f2ff15d","hasRole(bytes32,address)":"91d14854","hook()":"7f5a7c7b","initialize(bytes)":"439fab91","maxNetworkLimit(bytes32)":"d15b740e","maxNetworkLimitAt(bytes32,uint48,bytes)":"437224a3","network()":"6739afca","onSlash(bytes32,address,uint256,uint48,bytes)":"e49561ee","operator()":"570ca735","renounceRole(bytes32,address)":"36568abe","revokeRole(bytes32,address)":"d547741f","setHook(address)":"3dfd3873","setMaxNetworkLimit(uint96,uint256)":"23f752d5","stake(bytes32,address)":"fd4d447c","stakeAt(bytes32,address,uint48,bytes)":"e02f6937","staticDelegateCall(address,bytes)":"9f86fd85","supportsInterface(bytes4)":"01ffc9a7","vault()":"fbfa77cf"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operatorRegistry\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"networkRegistry\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"vaultFactory\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operatorVaultOptInService\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operatorNetworkOptInService\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"delegatorFactory\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"entityType\",\"type\":\"uint64\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"AccessControlBadConfirmation\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"neededRole\",\"type\":\"bytes32\"}],\"name\":\"AccessControlUnauthorizedAccount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AlreadySet\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CheckpointUnorderedInsertion\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientHookGas\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidNetwork\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotNetwork\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotOperator\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotSlasher\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotVault\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ReentrancyGuardReentrantCall\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"bits\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"SafeCastOverflowedUintDowncast\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint48\",\"name\":\"captureTimestamp\",\"type\":\"uint48\"}],\"name\":\"OnSlash\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"previousAdminRole\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"newAdminRole\",\"type\":\"bytes32\"}],\"name\":\"RoleAdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleRevoked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"hook\",\"type\":\"address\"}],\"name\":\"SetHook\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"SetMaxNetworkLimit\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DEFAULT_ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"FACTORY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"HOOK_GAS_LIMIT\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"HOOK_RESERVE\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"HOOK_SET_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"NETWORK_REGISTRY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"OPERATOR_NETWORK_OPT_IN_SERVICE\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"OPERATOR_REGISTRY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"OPERATOR_VAULT_OPT_IN_SERVICE\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"TYPE\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"VAULT_FACTORY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"VERSION\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleAdmin\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"grantRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"hook\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"}],\"name\":\"maxNetworkLimit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hint\",\"type\":\"bytes\"}],\"name\":\"maxNetworkLimitAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"network\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint48\",\"name\":\"captureTimestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"onSlash\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"operator\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"callerConfirmation\",\"type\":\"address\"}],\"name\":\"renounceRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"hook_\",\"type\":\"address\"}],\"name\":\"setHook\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint96\",\"name\":\"identifier\",\"type\":\"uint96\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"setMaxNetworkLimit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"stake\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hints\",\"type\":\"bytes\"}],\"name\":\"stakeAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"staticDelegateCall\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"vault\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"AccessControlBadConfirmation()\":[{\"details\":\"The caller of a function is not the expected one. NOTE: Don't confuse with {AccessControlUnauthorizedAccount}.\"}],\"AccessControlUnauthorizedAccount(address,bytes32)\":[{\"details\":\"The `account` is missing a role.\"}],\"CheckpointUnorderedInsertion()\":[{\"details\":\"A value was attempted to be inserted on a past checkpoint.\"}],\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"ReentrancyGuardReentrantCall()\":[{\"details\":\"Unauthorized reentrant call.\"}],\"SafeCastOverflowedUintDowncast(uint8,uint256)\":[{\"details\":\"Value doesn't fit in an uint of `bits` size.\"}]},\"events\":{\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"OnSlash(bytes32,address,uint256,uint48)\":{\"params\":{\"amount\":\"amount of the collateral to be slashed\",\"captureTimestamp\":\"time point when the stake was captured\",\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"}},\"RoleAdminChanged(bytes32,bytes32,bytes32)\":{\"details\":\"Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole` `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite {RoleAdminChanged} not being emitted signaling this.\"},\"RoleGranted(bytes32,address,address)\":{\"details\":\"Emitted when `account` is granted `role`. `sender` is the account that originated the contract call, an admin role bearer except when using {AccessControl-_setupRole}.\"},\"RoleRevoked(bytes32,address,address)\":{\"details\":\"Emitted when `account` is revoked `role`. `sender` is the account that originated the contract call: - if using `revokeRole`, it is the admin role bearer - if using `renounceRole`, it is the role bearer (i.e. `account`)\"},\"SetHook(address)\":{\"params\":{\"hook\":\"address of the hook\"}},\"SetMaxNetworkLimit(bytes32,uint256)\":{\"params\":{\"amount\":\"new maximum subnetwork's limit (how much stake the subnetwork is ready to get)\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"}}},\"kind\":\"dev\",\"methods\":{\"VERSION()\":{\"details\":\"Must return 1 for this one.\",\"returns\":{\"_0\":\"version of the delegator\"}},\"getRoleAdmin(bytes32)\":{\"details\":\"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}.\"},\"grantRole(bytes32,address)\":{\"details\":\"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event.\"},\"hasRole(bytes32,address)\":{\"details\":\"Returns `true` if `account` has been granted `role`.\"},\"initialize(bytes)\":{\"params\":{\"data\":\"some data to use\"}},\"maxNetworkLimitAt(bytes32,uint48,bytes)\":{\"params\":{\"hint\":\"hint for checkpoint index\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\",\"timestamp\":\"time point to get the maximum subnetwork limit at\"},\"returns\":{\"_0\":\"maximum limit of the subnetwork\"}},\"onSlash(bytes32,address,uint256,uint48,bytes)\":{\"details\":\"Only the vault's slasher can call this function.\",\"params\":{\"amount\":\"amount of the collateral slashed\",\"captureTimestamp\":\"time point when the stake was captured\",\"data\":\"some additional data\",\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"}},\"renounceRole(bytes32,address)\":{\"details\":\"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `callerConfirmation`. May emit a {RoleRevoked} event.\"},\"revokeRole(bytes32,address)\":{\"details\":\"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event.\"},\"setHook(address)\":{\"details\":\"Only a HOOK_SET_ROLE holder can call this function. The hook can have arbitrary logic under certain functions, however, it doesn't affect the stake guarantees.\",\"params\":{\"hook\":\"address of the hook\"}},\"setMaxNetworkLimit(uint96,uint256)\":{\"details\":\"Only a network can call this function.\",\"params\":{\"amount\":\"new maximum subnetwork's limit\"}},\"stake(bytes32,address)\":{\"details\":\"Warning: this function is not safe to use for stake capturing, as it can change by the end of the block.\",\"params\":{\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"},\"returns\":{\"_0\":\"slashable stake until the end of the next epoch\"}},\"stakeAt(bytes32,address,uint48,bytes)\":{\"details\":\"Warning: it is not safe to use timestamp >= current one for the stake capturing, as it can change later.\",\"params\":{\"hints\":\"hints for the checkpoints' indexes\",\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\",\"timestamp\":\"time point to capture the stake at\"},\"returns\":{\"_0\":\"slashable stake at the given timestamp until the end of the consequent epoch\"}},\"staticDelegateCall(address,bytes)\":{\"details\":\"It allows to use this contract's storage on-chain.\",\"params\":{\"data\":\"data to make a delegatecall with\",\"target\":\"address of the contract to make a delegatecall to\"}},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"}},\"stateVariables\":{\"OPERATOR_REGISTRY\":{\"return\":\"address of the operator registry\",\"returns\":{\"_0\":\"address of the operator registry\"}},\"network\":{\"return\":\"address of the network\",\"returns\":{\"_0\":\"address of the network\"}},\"operator\":{\"return\":\"address of the operator\",\"returns\":{\"_0\":\"address of the operator\"}}},\"version\":1},\"userdoc\":{\"events\":{\"OnSlash(bytes32,address,uint256,uint48)\":{\"notice\":\"Emitted when a slash happens.\"},\"SetHook(address)\":{\"notice\":\"Emitted when a hook is set.\"},\"SetMaxNetworkLimit(bytes32,uint256)\":{\"notice\":\"Emitted when a subnetwork's maximum limit is set.\"}},\"kind\":\"user\",\"methods\":{\"FACTORY()\":{\"notice\":\"Get the factory's address.\"},\"HOOK_GAS_LIMIT()\":{\"notice\":\"Get a gas limit for the hook.\"},\"HOOK_RESERVE()\":{\"notice\":\"Get a reserve gas between the gas limit check and the hook's execution.\"},\"HOOK_SET_ROLE()\":{\"notice\":\"Get a hook setter's role.\"},\"NETWORK_REGISTRY()\":{\"notice\":\"Get the network registry's address.\"},\"OPERATOR_NETWORK_OPT_IN_SERVICE()\":{\"notice\":\"Get the operator-network opt-in service's address.\"},\"OPERATOR_REGISTRY()\":{\"notice\":\"Get the operator registry's address.\"},\"OPERATOR_VAULT_OPT_IN_SERVICE()\":{\"notice\":\"Get the operator-vault opt-in service's address.\"},\"TYPE()\":{\"notice\":\"Get the entity's type.\"},\"VAULT_FACTORY()\":{\"notice\":\"Get the vault factory's address.\"},\"VERSION()\":{\"notice\":\"Get a version of the delegator (different versions mean different interfaces).\"},\"hook()\":{\"notice\":\"Get the hook's address.\"},\"initialize(bytes)\":{\"notice\":\"Initialize this entity contract by using a given data.\"},\"maxNetworkLimit(bytes32)\":{\"notice\":\"Get a particular subnetwork's maximum limit (meaning the subnetwork is not ready to get more as a stake).\"},\"maxNetworkLimitAt(bytes32,uint48,bytes)\":{\"notice\":\"Get a particular subnetwork's maximum limit at a given timestamp using a hint (meaning the subnetwork is not ready to get more as a stake).\"},\"network()\":{\"notice\":\"Get a network the vault delegates funds to.\"},\"onSlash(bytes32,address,uint256,uint48,bytes)\":{\"notice\":\"Called when a slash happens.\"},\"operator()\":{\"notice\":\"Get an operator managing the vault's funds.\"},\"setHook(address)\":{\"notice\":\"Set a new hook.\"},\"setMaxNetworkLimit(uint96,uint256)\":{\"notice\":\"Set a maximum limit for a subnetwork (how much stake the subnetwork is ready to get). identifier identifier of the subnetwork\"},\"stake(bytes32,address)\":{\"notice\":\"Get a stake that a given subnetwork will be able to slash for a certain operator until the end of the next epoch (if no cross-slashing and no slashings by the subnetwork).\"},\"stakeAt(bytes32,address,uint48,bytes)\":{\"notice\":\"Get a stake that a given subnetwork could be able to slash for a certain operator at a given timestamp until the end of the consequent epoch using hints (if no cross-slashing and no slashings by the subnetwork).\"},\"staticDelegateCall(address,bytes)\":{\"notice\":\"Make a delegatecall from this contract to a given target contract with a particular data (always reverts with a return data).\"},\"vault()\":{\"notice\":\"Get the vault's address.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/contracts/delegator/OperatorNetworkSpecificDelegator.sol\":\"OperatorNetworkSpecificDelegator\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol\":{\"keccak256\":\"0x6662ec4e5cefca03eeadd073e9469df8d2944bb2ee8ec8f7622c2c46aab5f225\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4d8544c6f8daa4d1bc215c6a72fe0acdb748664a105b0e5efc19295667521d45\",\"dweb:/ipfs/QmdGWqdnXT8S3RgCR6aV8XHZrsybieMQLLnug1NtpSjEXN\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609\",\"dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9\",\"dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardUpgradeable.sol\":{\"keccak256\":\"0xb44e086e941292cdc7f440de51478493894ef0b1aeccb0c4047445919f667f74\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://942dad22fbdc1669f025540ba63aa3ccfad5f8458fc5d4525b31ebf272e7af45\",\"dweb:/ipfs/Qmdo4X2M82aM3AMoW2kf2jhYkSCyC4T1pHNd6obdsDFnAB\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol\":{\"keccak256\":\"0xdaba3f7c42c55b2896353f32bd27d4d5f8bae741b3b05d4c53f67abc4dc47ce8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1fa2e61141c602510bcd2cd936ed9561922ac8772a9b9c9a9db091a74e354a45\",\"dweb:/ipfs/QmcHQDDoEBwJmwUbzoVkytvJsBx3KVHYFFnDkvRGWh9Wmh\"]},\"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0xb6b36edd6a2999fd243ff226d6cbf84bd71af2432bbd0dfe19392996a1d9cb41\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1fd2f35495652e57e3f99bc6c510bc5f7dd398a176ea2e72d8ed730aebc6ca26\",\"dweb:/ipfs/QmTQV6X4gkikTib49cho5iDX3JvSQbdsoEChoDwrk3CbbH\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875\",\"dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0xe19a4d5f31d2861e7344e8e535e2feafb913d806d3e2b5fe7782741a2a7094fe\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4aed79c0fa6f0546ed02f2f683e8f77f0fd2ed7eb34d8bbf3d373c9a6d95b13c\",\"dweb:/ipfs/QmWqVz6UAVqmnWU5pqYPt1o6iDEZyPaBraAA3rKfTTSfYj\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/Checkpoints.sol\":{\"keccak256\":\"0xbdc5e074d7dd6678f67e92b1a51a20226801a407b0e1af3da367c5d1ff4519ad\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a36cca6b22fff3db16fc789ff6c60eea71d4b156065d4d0c83a0bc5e91a77a8b\",\"dweb:/ipfs/QmYN3exd5AemxjBrN8XMB1p5LbbE16uC3sjbYjwi8AjcGR\"]},\"lib/openzeppelin-contracts/contracts/utils/types/Time.sol\":{\"keccak256\":\"0xc7755af115020049e4140f224f9ee88d7e1799ffb0646f37bf0df24bf6213f58\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7f09bf94d5274334ec021f61a04659db303f31e60460e14b709c9bf187740111\",\"dweb:/ipfs/QmNvgomZYUwFAt4cZbPWAiTeSZQreGehY9BK5xyVJsUttb\"]},\"src/contracts/common/Entity.sol\":{\"keccak256\":\"0x3d61a932995b8443381f3950542d388223a2c26dd5d29a3274dea3baa7388bd7\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://7cdf5f03ca72fd263fd32ff59c8d88ddca911ae83896a287d10772c1bbe9b138\",\"dweb:/ipfs/QmbP84r5BWT1Rn9AYTntWSf3xUMTTCohTZJFhbBhDXFoHa\"]},\"src/contracts/common/StaticDelegateCallable.sol\":{\"keccak256\":\"0x350029aa8955eacaffffaeb58babc5c98e80ebc5c5db388ed17ee6465f4a9d90\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://eb392a8ee9050e0af606897df63e3404e3829e8b688b580663892f9664195764\",\"dweb:/ipfs/QmaXC8jqV8UrrAFkzXTEv2fJF56sy33HhLxAzaRZmUxuXD\"]},\"src/contracts/delegator/BaseDelegator.sol\":{\"keccak256\":\"0x7c54d491fdd4415b764a9c8defa068e56d4c0c8c9419be0053a1d377669290e8\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://9238bfbad0f6eeb0dc7727724de14380f1980b395902269703d5e2ef07e52e10\",\"dweb:/ipfs/QmPJn1V4HNXcEghYvogGuSTF24dSQUPosR5qtsXcmNqRm3\"]},\"src/contracts/delegator/OperatorNetworkSpecificDelegator.sol\":{\"keccak256\":\"0x031a10722b9ec49048f0952710401131290adb87e71caf294e864e7ac3b98a16\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://72428febc875134b2f29205e6f294634a1c22a7d5c78d6a9cb2f8196f107c9b5\",\"dweb:/ipfs/QmTPwXR6h5oytckmkLrHdKeEMdphJxceDhYUR4zvQeWAwY\"]},\"src/contracts/libraries/Checkpoints.sol\":{\"keccak256\":\"0xba90097c8bfe0a975499428b5f8ac5569483c7d92ccc28c12d70de416aae040c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://12f5d93ca94cd06d3147db68993165a58e17903ed53682560de61f3085ad4609\",\"dweb:/ipfs/QmePiuAqvXprMLmFZkGZeGjvGPAvsEDHfCDv7BoQhXu9xE\"]},\"src/contracts/libraries/Subnetwork.sol\":{\"keccak256\":\"0xf5ef5506fd66082b3c2e7f3df37529f5a8efad32ac62e7c8914bd63219190bfe\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba031a54ee0d0e9a270c2b9e18437f5668cfeb659cfd5fe0677459d7fcac2a56\",\"dweb:/ipfs/QmReP3H7qQ78tAfgLnJKsNEQNCQfF1X1Get38Ffd4kzq32\"]},\"src/interfaces/common/IEntity.sol\":{\"keccak256\":\"0x8ef4b63d6da63489778ccd5f8d13ebdd527dd4b62730b2c616df5af7474d2d21\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a8d69576a9219d85c50816a18ad53a4d53cfcb27ed38b8cccc808dc2734b71b\",\"dweb:/ipfs/QmYVN3P4Q4REvBWJ97TbAcaxm3uyB2anV6NSGa6ZtSwcEv\"]},\"src/interfaces/common/IMigratableEntity.sol\":{\"keccak256\":\"0x8f5f2809f3afbe8ebfbb365dd7b57b4dd3b6f9943a6187eaf648d45895b8e3c4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ffe640537d539e7a4fde70d30d3e4c57f4ba9c2c25c450cea713aae38e8fd5c\",\"dweb:/ipfs/QmSUTGzvdcn1R1KB7tLThMRtESsfPbeXDhhhKWGtntzBds\"]},\"src/interfaces/common/IRegistry.sol\":{\"keccak256\":\"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014\",\"dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK\"]},\"src/interfaces/common/IStaticDelegateCallable.sol\":{\"keccak256\":\"0xa335d4e81b9071b7de66ef92b43ff20671d86516eb1be46fef29a3483cd3f5d5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d464b9db863c14c05547d2b23352f2e9b7b784799cf09f6bbc4906a2a74e3516\",\"dweb:/ipfs/QmUVWzFvJz7eEbDQKiFTTzwi7TEbjcs3VmwdM4kuptAKvi\"]},\"src/interfaces/delegator/IBaseDelegator.sol\":{\"keccak256\":\"0x96bb312f032e17accce3f8f80936d99468029d6b37c9ca74acdb4b026a0148ee\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2a66dcb5b7d1a6ef6a363431ea98ebd78bc4fdd3d7a134d9b542dc66e7d025c2\",\"dweb:/ipfs/QmRhTPLd2ZAyRHmJUFUcWKs9b3if49QY17LYZuRqWmghw8\"]},\"src/interfaces/delegator/IDelegatorHook.sol\":{\"keccak256\":\"0xc51aa8d7d1f6c8043ee819b7aeb86da0e993912e1442098df897e299f01f9f46\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://adddf5cb2ba282aeb576b26efb28640f865a1721cc9b6eee8b3ee0457a2c9780\",\"dweb:/ipfs/QmNYgAmnLRwWZbhTuQhZs9rx4zcme1df5mEepkrniorSoW\"]},\"src/interfaces/delegator/IOperatorNetworkSpecificDelegator.sol\":{\"keccak256\":\"0x74b95e64d29769202d45dd277bb830f623ff3d41ce77b80ce3ee4e318a5c71ec\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e512b903aae5c1b8a028c6e3f4f6223b5cb5d704503cfa6bd37b5346868f5c20\",\"dweb:/ipfs/QmZim9YExsPWtyxyeui993HTKAEmrg8MUcSkZ77Gp2JcuZ\"]},\"src/interfaces/service/IOptInService.sol\":{\"keccak256\":\"0x76fb5460a6d87a5705433d4fbeff7253cd75b8bbd0c888b2088f16e86ace146a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://990322019b3d11465f7024bae77ccbf7e2fe5d6fa3c754584778f37d04fa1337\",\"dweb:/ipfs/QmaSNHzcqxTkUCG9a4nqVfLECHLdjdrwAnDi3yDC7tDL24\"]},\"src/interfaces/vault/IVault.sol\":{\"keccak256\":\"0xffee01d383cd4e1a5530c614bf4360c1ef070c288abec9da1eb531b51bc07235\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://04f0046cac285d8ec44ebbb1f79dc94fab4495767190cad8364fbc1fafaadfb9\",\"dweb:/ipfs/QmUawAunwzXfCyShWfhKeThAgKtqe51hmrxvrXvM772M2R\"]},\"src/interfaces/vault/IVaultStorage.sol\":{\"keccak256\":\"0x592626f13754194f83047135de19229c49390bd59e34659b1bb38be71d973a22\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://06a6a9dfddd05e580b32bebe2cff4f63ba26a653180676d58225dd30d9c89d3e\",\"dweb:/ipfs/QmdgzBeY6Sxo8mGtyBxtv1tM1c2kU6J6zjeRd7vuXm4DU6\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.25+commit.b61c2a91"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"operatorRegistry","type":"address"},{"internalType":"address","name":"networkRegistry","type":"address"},{"internalType":"address","name":"vaultFactory","type":"address"},{"internalType":"address","name":"operatorVaultOptInService","type":"address"},{"internalType":"address","name":"operatorNetworkOptInService","type":"address"},{"internalType":"address","name":"delegatorFactory","type":"address"},{"internalType":"uint64","name":"entityType","type":"uint64"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"AccessControlBadConfirmation"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bytes32","name":"neededRole","type":"bytes32"}],"type":"error","name":"AccessControlUnauthorizedAccount"},{"inputs":[],"type":"error","name":"AlreadySet"},{"inputs":[],"type":"error","name":"CheckpointUnorderedInsertion"},{"inputs":[],"type":"error","name":"InsufficientHookGas"},{"inputs":[],"type":"error","name":"InvalidInitialization"},{"inputs":[],"type":"error","name":"InvalidNetwork"},{"inputs":[],"type":"error","name":"NotInitialized"},{"inputs":[],"type":"error","name":"NotInitializing"},{"inputs":[],"type":"error","name":"NotNetwork"},{"inputs":[],"type":"error","name":"NotOperator"},{"inputs":[],"type":"error","name":"NotSlasher"},{"inputs":[],"type":"error","name":"NotVault"},{"inputs":[],"type":"error","name":"ReentrancyGuardReentrantCall"},{"inputs":[{"internalType":"uint8","name":"bits","type":"uint8"},{"internalType":"uint256","name":"value","type":"uint256"}],"type":"error","name":"SafeCastOverflowedUintDowncast"},{"inputs":[{"internalType":"uint64","name":"version","type":"uint64","indexed":false}],"type":"event","name":"Initialized","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32","indexed":true},{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false},{"internalType":"uint48","name":"captureTimestamp","type":"uint48","indexed":false}],"type":"event","name":"OnSlash","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"bytes32","name":"previousAdminRole","type":"bytes32","indexed":true},{"internalType":"bytes32","name":"newAdminRole","type":"bytes32","indexed":true}],"type":"event","name":"RoleAdminChanged","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"address","name":"sender","type":"address","indexed":true}],"type":"event","name":"RoleGranted","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"address","name":"sender","type":"address","indexed":true}],"type":"event","name":"RoleRevoked","anonymous":false},{"inputs":[{"internalType":"address","name":"hook","type":"address","indexed":true}],"type":"event","name":"SetHook","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"SetMaxNetworkLimit","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"DEFAULT_ADMIN_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"FACTORY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"HOOK_GAS_LIMIT","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"HOOK_RESERVE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"HOOK_SET_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"NETWORK_REGISTRY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"OPERATOR_NETWORK_OPT_IN_SERVICE","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"OPERATOR_REGISTRY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"OPERATOR_VAULT_OPT_IN_SERVICE","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"TYPE","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"VAULT_FACTORY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"VERSION","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getRoleAdmin","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"grantRole"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"hasRole","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"hook","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"}],"stateMutability":"view","type":"function","name":"maxNetworkLimit","outputs":[{"internalType":"uint256","name":"value","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"uint48","name":"timestamp","type":"uint48"},{"internalType":"bytes","name":"hint","type":"bytes"}],"stateMutability":"view","type":"function","name":"maxNetworkLimitAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"network","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint48","name":"captureTimestamp","type":"uint48"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"onSlash"},{"inputs":[],"stateMutability":"view","type":"function","name":"operator","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"callerConfirmation","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"renounceRole"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"revokeRole"},{"inputs":[{"internalType":"address","name":"hook_","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setHook"},{"inputs":[{"internalType":"uint96","name":"identifier","type":"uint96"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setMaxNetworkLimit"},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"stake","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint48","name":"timestamp","type":"uint48"},{"internalType":"bytes","name":"hints","type":"bytes"}],"stateMutability":"view","type":"function","name":"stakeAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"staticDelegateCall"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"vault","outputs":[{"internalType":"address","name":"","type":"address"}]}],"devdoc":{"kind":"dev","methods":{"VERSION()":{"details":"Must return 1 for this one.","returns":{"_0":"version of the delegator"}},"getRoleAdmin(bytes32)":{"details":"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}."},"grantRole(bytes32,address)":{"details":"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event."},"hasRole(bytes32,address)":{"details":"Returns `true` if `account` has been granted `role`."},"initialize(bytes)":{"params":{"data":"some data to use"}},"maxNetworkLimitAt(bytes32,uint48,bytes)":{"params":{"hint":"hint for checkpoint index","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)","timestamp":"time point to get the maximum subnetwork limit at"},"returns":{"_0":"maximum limit of the subnetwork"}},"onSlash(bytes32,address,uint256,uint48,bytes)":{"details":"Only the vault's slasher can call this function.","params":{"amount":"amount of the collateral slashed","captureTimestamp":"time point when the stake was captured","data":"some additional data","operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"}},"renounceRole(bytes32,address)":{"details":"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `callerConfirmation`. May emit a {RoleRevoked} event."},"revokeRole(bytes32,address)":{"details":"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event."},"setHook(address)":{"details":"Only a HOOK_SET_ROLE holder can call this function. The hook can have arbitrary logic under certain functions, however, it doesn't affect the stake guarantees.","params":{"hook":"address of the hook"}},"setMaxNetworkLimit(uint96,uint256)":{"details":"Only a network can call this function.","params":{"amount":"new maximum subnetwork's limit"}},"stake(bytes32,address)":{"details":"Warning: this function is not safe to use for stake capturing, as it can change by the end of the block.","params":{"operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"},"returns":{"_0":"slashable stake until the end of the next epoch"}},"stakeAt(bytes32,address,uint48,bytes)":{"details":"Warning: it is not safe to use timestamp >= current one for the stake capturing, as it can change later.","params":{"hints":"hints for the checkpoints' indexes","operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)","timestamp":"time point to capture the stake at"},"returns":{"_0":"slashable stake at the given timestamp until the end of the consequent epoch"}},"staticDelegateCall(address,bytes)":{"details":"It allows to use this contract's storage on-chain.","params":{"data":"data to make a delegatecall with","target":"address of the contract to make a delegatecall to"}},"supportsInterface(bytes4)":{"details":"See {IERC165-supportsInterface}."}},"version":1},"userdoc":{"kind":"user","methods":{"FACTORY()":{"notice":"Get the factory's address."},"HOOK_GAS_LIMIT()":{"notice":"Get a gas limit for the hook."},"HOOK_RESERVE()":{"notice":"Get a reserve gas between the gas limit check and the hook's execution."},"HOOK_SET_ROLE()":{"notice":"Get a hook setter's role."},"NETWORK_REGISTRY()":{"notice":"Get the network registry's address."},"OPERATOR_NETWORK_OPT_IN_SERVICE()":{"notice":"Get the operator-network opt-in service's address."},"OPERATOR_REGISTRY()":{"notice":"Get the operator registry's address."},"OPERATOR_VAULT_OPT_IN_SERVICE()":{"notice":"Get the operator-vault opt-in service's address."},"TYPE()":{"notice":"Get the entity's type."},"VAULT_FACTORY()":{"notice":"Get the vault factory's address."},"VERSION()":{"notice":"Get a version of the delegator (different versions mean different interfaces)."},"hook()":{"notice":"Get the hook's address."},"initialize(bytes)":{"notice":"Initialize this entity contract by using a given data."},"maxNetworkLimit(bytes32)":{"notice":"Get a particular subnetwork's maximum limit (meaning the subnetwork is not ready to get more as a stake)."},"maxNetworkLimitAt(bytes32,uint48,bytes)":{"notice":"Get a particular subnetwork's maximum limit at a given timestamp using a hint (meaning the subnetwork is not ready to get more as a stake)."},"network()":{"notice":"Get a network the vault delegates funds to."},"onSlash(bytes32,address,uint256,uint48,bytes)":{"notice":"Called when a slash happens."},"operator()":{"notice":"Get an operator managing the vault's funds."},"setHook(address)":{"notice":"Set a new hook."},"setMaxNetworkLimit(uint96,uint256)":{"notice":"Set a maximum limit for a subnetwork (how much stake the subnetwork is ready to get). identifier identifier of the subnetwork"},"stake(bytes32,address)":{"notice":"Get a stake that a given subnetwork will be able to slash for a certain operator until the end of the next epoch (if no cross-slashing and no slashings by the subnetwork)."},"stakeAt(bytes32,address,uint48,bytes)":{"notice":"Get a stake that a given subnetwork could be able to slash for a certain operator at a given timestamp until the end of the consequent epoch using hints (if no cross-slashing and no slashings by the subnetwork)."},"staticDelegateCall(address,bytes)":{"notice":"Make a delegatecall from this contract to a given target contract with a particular data (always reverts with a return data)."},"vault()":{"notice":"Get the vault's address."}},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/contracts/delegator/OperatorNetworkSpecificDelegator.sol":"OperatorNetworkSpecificDelegator"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol":{"keccak256":"0x6662ec4e5cefca03eeadd073e9469df8d2944bb2ee8ec8f7622c2c46aab5f225","urls":["bzz-raw://4d8544c6f8daa4d1bc215c6a72fe0acdb748664a105b0e5efc19295667521d45","dweb:/ipfs/QmdGWqdnXT8S3RgCR6aV8XHZrsybieMQLLnug1NtpSjEXN"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b","urls":["bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609","dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol":{"keccak256":"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397","urls":["bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9","dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardUpgradeable.sol":{"keccak256":"0xb44e086e941292cdc7f440de51478493894ef0b1aeccb0c4047445919f667f74","urls":["bzz-raw://942dad22fbdc1669f025540ba63aa3ccfad5f8458fc5d4525b31ebf272e7af45","dweb:/ipfs/Qmdo4X2M82aM3AMoW2kf2jhYkSCyC4T1pHNd6obdsDFnAB"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol":{"keccak256":"0xdaba3f7c42c55b2896353f32bd27d4d5f8bae741b3b05d4c53f67abc4dc47ce8","urls":["bzz-raw://1fa2e61141c602510bcd2cd936ed9561922ac8772a9b9c9a9db091a74e354a45","dweb:/ipfs/QmcHQDDoEBwJmwUbzoVkytvJsBx3KVHYFFnDkvRGWh9Wmh"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol":{"keccak256":"0xb6b36edd6a2999fd243ff226d6cbf84bd71af2432bbd0dfe19392996a1d9cb41","urls":["bzz-raw://1fd2f35495652e57e3f99bc6c510bc5f7dd398a176ea2e72d8ed730aebc6ca26","dweb:/ipfs/QmTQV6X4gkikTib49cho5iDX3JvSQbdsoEChoDwrk3CbbH"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b","urls":["bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df","dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d","urls":["bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875","dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol":{"keccak256":"0xe19a4d5f31d2861e7344e8e535e2feafb913d806d3e2b5fe7782741a2a7094fe","urls":["bzz-raw://4aed79c0fa6f0546ed02f2f683e8f77f0fd2ed7eb34d8bbf3d373c9a6d95b13c","dweb:/ipfs/QmWqVz6UAVqmnWU5pqYPt1o6iDEZyPaBraAA3rKfTTSfYj"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/Checkpoints.sol":{"keccak256":"0xbdc5e074d7dd6678f67e92b1a51a20226801a407b0e1af3da367c5d1ff4519ad","urls":["bzz-raw://a36cca6b22fff3db16fc789ff6c60eea71d4b156065d4d0c83a0bc5e91a77a8b","dweb:/ipfs/QmYN3exd5AemxjBrN8XMB1p5LbbE16uC3sjbYjwi8AjcGR"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/types/Time.sol":{"keccak256":"0xc7755af115020049e4140f224f9ee88d7e1799ffb0646f37bf0df24bf6213f58","urls":["bzz-raw://7f09bf94d5274334ec021f61a04659db303f31e60460e14b709c9bf187740111","dweb:/ipfs/QmNvgomZYUwFAt4cZbPWAiTeSZQreGehY9BK5xyVJsUttb"],"license":"MIT"},"src/contracts/common/Entity.sol":{"keccak256":"0x3d61a932995b8443381f3950542d388223a2c26dd5d29a3274dea3baa7388bd7","urls":["bzz-raw://7cdf5f03ca72fd263fd32ff59c8d88ddca911ae83896a287d10772c1bbe9b138","dweb:/ipfs/QmbP84r5BWT1Rn9AYTntWSf3xUMTTCohTZJFhbBhDXFoHa"],"license":"BUSL-1.1"},"src/contracts/common/StaticDelegateCallable.sol":{"keccak256":"0x350029aa8955eacaffffaeb58babc5c98e80ebc5c5db388ed17ee6465f4a9d90","urls":["bzz-raw://eb392a8ee9050e0af606897df63e3404e3829e8b688b580663892f9664195764","dweb:/ipfs/QmaXC8jqV8UrrAFkzXTEv2fJF56sy33HhLxAzaRZmUxuXD"],"license":"BUSL-1.1"},"src/contracts/delegator/BaseDelegator.sol":{"keccak256":"0x7c54d491fdd4415b764a9c8defa068e56d4c0c8c9419be0053a1d377669290e8","urls":["bzz-raw://9238bfbad0f6eeb0dc7727724de14380f1980b395902269703d5e2ef07e52e10","dweb:/ipfs/QmPJn1V4HNXcEghYvogGuSTF24dSQUPosR5qtsXcmNqRm3"],"license":"BUSL-1.1"},"src/contracts/delegator/OperatorNetworkSpecificDelegator.sol":{"keccak256":"0x031a10722b9ec49048f0952710401131290adb87e71caf294e864e7ac3b98a16","urls":["bzz-raw://72428febc875134b2f29205e6f294634a1c22a7d5c78d6a9cb2f8196f107c9b5","dweb:/ipfs/QmTPwXR6h5oytckmkLrHdKeEMdphJxceDhYUR4zvQeWAwY"],"license":"BUSL-1.1"},"src/contracts/libraries/Checkpoints.sol":{"keccak256":"0xba90097c8bfe0a975499428b5f8ac5569483c7d92ccc28c12d70de416aae040c","urls":["bzz-raw://12f5d93ca94cd06d3147db68993165a58e17903ed53682560de61f3085ad4609","dweb:/ipfs/QmePiuAqvXprMLmFZkGZeGjvGPAvsEDHfCDv7BoQhXu9xE"],"license":"MIT"},"src/contracts/libraries/Subnetwork.sol":{"keccak256":"0xf5ef5506fd66082b3c2e7f3df37529f5a8efad32ac62e7c8914bd63219190bfe","urls":["bzz-raw://ba031a54ee0d0e9a270c2b9e18437f5668cfeb659cfd5fe0677459d7fcac2a56","dweb:/ipfs/QmReP3H7qQ78tAfgLnJKsNEQNCQfF1X1Get38Ffd4kzq32"],"license":"MIT"},"src/interfaces/common/IEntity.sol":{"keccak256":"0x8ef4b63d6da63489778ccd5f8d13ebdd527dd4b62730b2c616df5af7474d2d21","urls":["bzz-raw://5a8d69576a9219d85c50816a18ad53a4d53cfcb27ed38b8cccc808dc2734b71b","dweb:/ipfs/QmYVN3P4Q4REvBWJ97TbAcaxm3uyB2anV6NSGa6ZtSwcEv"],"license":"MIT"},"src/interfaces/common/IMigratableEntity.sol":{"keccak256":"0x8f5f2809f3afbe8ebfbb365dd7b57b4dd3b6f9943a6187eaf648d45895b8e3c4","urls":["bzz-raw://0ffe640537d539e7a4fde70d30d3e4c57f4ba9c2c25c450cea713aae38e8fd5c","dweb:/ipfs/QmSUTGzvdcn1R1KB7tLThMRtESsfPbeXDhhhKWGtntzBds"],"license":"MIT"},"src/interfaces/common/IRegistry.sol":{"keccak256":"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb","urls":["bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014","dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK"],"license":"MIT"},"src/interfaces/common/IStaticDelegateCallable.sol":{"keccak256":"0xa335d4e81b9071b7de66ef92b43ff20671d86516eb1be46fef29a3483cd3f5d5","urls":["bzz-raw://d464b9db863c14c05547d2b23352f2e9b7b784799cf09f6bbc4906a2a74e3516","dweb:/ipfs/QmUVWzFvJz7eEbDQKiFTTzwi7TEbjcs3VmwdM4kuptAKvi"],"license":"MIT"},"src/interfaces/delegator/IBaseDelegator.sol":{"keccak256":"0x96bb312f032e17accce3f8f80936d99468029d6b37c9ca74acdb4b026a0148ee","urls":["bzz-raw://2a66dcb5b7d1a6ef6a363431ea98ebd78bc4fdd3d7a134d9b542dc66e7d025c2","dweb:/ipfs/QmRhTPLd2ZAyRHmJUFUcWKs9b3if49QY17LYZuRqWmghw8"],"license":"MIT"},"src/interfaces/delegator/IDelegatorHook.sol":{"keccak256":"0xc51aa8d7d1f6c8043ee819b7aeb86da0e993912e1442098df897e299f01f9f46","urls":["bzz-raw://adddf5cb2ba282aeb576b26efb28640f865a1721cc9b6eee8b3ee0457a2c9780","dweb:/ipfs/QmNYgAmnLRwWZbhTuQhZs9rx4zcme1df5mEepkrniorSoW"],"license":"MIT"},"src/interfaces/delegator/IOperatorNetworkSpecificDelegator.sol":{"keccak256":"0x74b95e64d29769202d45dd277bb830f623ff3d41ce77b80ce3ee4e318a5c71ec","urls":["bzz-raw://e512b903aae5c1b8a028c6e3f4f6223b5cb5d704503cfa6bd37b5346868f5c20","dweb:/ipfs/QmZim9YExsPWtyxyeui993HTKAEmrg8MUcSkZ77Gp2JcuZ"],"license":"MIT"},"src/interfaces/service/IOptInService.sol":{"keccak256":"0x76fb5460a6d87a5705433d4fbeff7253cd75b8bbd0c888b2088f16e86ace146a","urls":["bzz-raw://990322019b3d11465f7024bae77ccbf7e2fe5d6fa3c754584778f37d04fa1337","dweb:/ipfs/QmaSNHzcqxTkUCG9a4nqVfLECHLdjdrwAnDi3yDC7tDL24"],"license":"MIT"},"src/interfaces/vault/IVault.sol":{"keccak256":"0xffee01d383cd4e1a5530c614bf4360c1ef070c288abec9da1eb531b51bc07235","urls":["bzz-raw://04f0046cac285d8ec44ebbb1f79dc94fab4495767190cad8364fbc1fafaadfb9","dweb:/ipfs/QmUawAunwzXfCyShWfhKeThAgKtqe51hmrxvrXvM772M2R"],"license":"MIT"},"src/interfaces/vault/IVaultStorage.sol":{"keccak256":"0x592626f13754194f83047135de19229c49390bd59e34659b1bb38be71d973a22","urls":["bzz-raw://06a6a9dfddd05e580b32bebe2cff4f63ba26a653180676d58225dd30d9c89d3e","dweb:/ipfs/QmdgzBeY6Sxo8mGtyBxtv1tM1c2kU6J6zjeRd7vuXm4DU6"],"license":"MIT"}},"version":1},"id":84} \ No newline at end of file diff --git a/out/OperatorRegistry.sol/OperatorRegistry.json b/out/OperatorRegistry.sol/OperatorRegistry.json index fb64bec1..35b2b075 100644 --- a/out/OperatorRegistry.sol/OperatorRegistry.json +++ b/out/OperatorRegistry.sol/OperatorRegistry.json @@ -1 +1 @@ -{"abi":[{"type":"function","name":"entity","inputs":[{"name":"index","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"isEntity","inputs":[{"name":"entity_","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"registerOperator","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"totalEntities","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"event","name":"AddEntity","inputs":[{"name":"entity","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"error","name":"EntityNotExist","inputs":[]},{"type":"error","name":"OperatorAlreadyRegistered","inputs":[]}],"bytecode":{"object":"0x60808060405234601557610241908161001a8239f35b5f80fdfe60806040526004361015610011575f80fd5b5f3560e01c806314887c581461013d5780632acde098146100d15780635cd8b15e146100b55763b42ba2a214610045575f80fd5b346100b15760203660031901126100b1576004355f5481101561009d575f80527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e56301546040516001600160a01b039091168152602090f35b634e487b7160e01b5f52603260045260245ffd5b5f80fd5b346100b1575f3660031901126100b15760205f54604051908152f35b346100b1575f3660031901126100b1576100f6335f52600160205260405f2054151590565b61012b5761010333610184565b50337fb919910dcefbf753bfd926ab3b1d3f85d877190c3d01ba1bd585047b99b99f0b5f80a2005b6040516342ee68b560e01b8152600490fd5b346100b15760203660031901126100b1576004356001600160a01b038116908190036100b15761017a6020915f52600160205260405f2054151590565b6040519015158152f35b805f52600160205260405f2054155f14610206575f54680100000000000000008110156101f25760018101805f5581101561009d5781907f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e56301555f54905f52600160205260405f2055600190565b634e487b7160e01b5f52604160045260245ffd5b505f9056fea264697066735822122077e93113fb982ae02c0a41b82d2748dbea47776eb9ecfa1fc44d11a0333ed06864736f6c63430008190033","sourceMap":"183:289:65:-:0;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361015610011575f80fd5b5f3560e01c806314887c581461013d5780632acde098146100d15780635cd8b15e146100b55763b42ba2a214610045575f80fd5b346100b15760203660031901126100b1576004355f5481101561009d575f80527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e56301546040516001600160a01b039091168152602090f35b634e487b7160e01b5f52603260045260245ffd5b5f80fd5b346100b1575f3660031901126100b15760205f54604051908152f35b346100b1575f3660031901126100b1576100f6335f52600160205260405f2054151590565b61012b5761010333610184565b50337fb919910dcefbf753bfd926ab3b1d3f85d877190c3d01ba1bd585047b99b99f0b5f80a2005b6040516342ee68b560e01b8152600490fd5b346100b15760203660031901126100b1576004356001600160a01b038116908190036100b15761017a6020915f52600160205260405f2054151590565b6040519015158152f35b805f52600160205260405f2054155f14610206575f54680100000000000000008110156101f25760018101805f5581101561009d5781907f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e56301555f54905f52600160205260405f2055600190565b634e487b7160e01b5f52604160045260245ffd5b505f9056fea264697066735822122077e93113fb982ae02c0a41b82d2748dbea47776eb9ecfa1fc44d11a0333ed06864736f6c63430008190033","sourceMap":"183:289:65:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;183:289:65;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;183:289:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;183:289:65;;;;;;;;;;;;;;;;;;;-1:-1:-1;;183:289:65;;;;8974:55:61;359:10:65;183:289;;4360:14:61;183:289:65;;;;;;4360:26:61;;4264:129;;8974:55;346:85:65;;8409:50:61;359:10:65;8409:50:61;:::i;:::-;;359:10:65;1077:18:74;183:289:65;1077:18:74;;183:289:65;346:85;183:289;;-1:-1:-1;;;393:27:65;;183:289;;393:27;183:289;;;;;;-1:-1:-1;;183:289:65;;;;;;-1:-1:-1;;;;;183:289:65;;;;;;;;8974:55:61;183:289:65;8974:55:61;183:289:65;;4360:14:61;183:289:65;;;;;;4360:26:61;;4264:129;;8974:55;183:289:65;;;;;;;;2241:406:61;183:289:65;;;4360:14:61;183:289:65;;;;;;4360:26:61;2320:321;183:289:65;;;;;;;;;;;4360:14:61;183:289:65;;;;;;;;;;;;;;;;;;;;4360:14:61;183:289:65;;;;;;4360:14:61;2576:11;:::o;183:289:65:-;;;;;;;;;;;;2320:321:61;2618:12;183:289:65;2618:12:61;:::o","linkReferences":{}},"methodIdentifiers":{"entity(uint256)":"b42ba2a2","isEntity(address)":"14887c58","registerOperator()":"2acde098","totalEntities()":"5cd8b15e"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"EntityNotExist\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OperatorAlreadyRegistered\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"entity\",\"type\":\"address\"}],\"name\":\"AddEntity\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"entity\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"entity_\",\"type\":\"address\"}],\"name\":\"isEntity\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"registerOperator\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalEntities\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"events\":{\"AddEntity(address)\":{\"params\":{\"entity\":\"address of the added entity\"}}},\"kind\":\"dev\",\"methods\":{\"entity(uint256)\":{\"params\":{\"index\":\"index of the entity to get\"},\"returns\":{\"_0\":\"address of the entity\"}},\"isEntity(address)\":{\"params\":{\"account\":\"address to check\"},\"returns\":{\"_0\":\"if the given address is an entity\"}},\"totalEntities()\":{\"returns\":{\"_0\":\"total number of entities added\"}}},\"version\":1},\"userdoc\":{\"events\":{\"AddEntity(address)\":{\"notice\":\"Emitted when an entity is added.\"}},\"kind\":\"user\",\"methods\":{\"entity(uint256)\":{\"notice\":\"Get an entity given its index.\"},\"isEntity(address)\":{\"notice\":\"Get if a given address is an entity.\"},\"registerOperator()\":{\"notice\":\"Register the caller as an operator.\"},\"totalEntities()\":{\"notice\":\"Get a total number of entities.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/contracts/OperatorRegistry.sol\":\"OperatorRegistry\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0x86c1470cbfd878491e5de030072b647352d36bd27122cffb928970b1945282aa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ad85dd393ee0a1917c57046abc5155f51f77844b2c6a42c05c1b8dd26d6ff3c1\",\"dweb:/ipfs/QmNqYc8To2NdnpP6E1tGz7t6A7beuENde5yovwov5pW1fA\"]},\"src/contracts/OperatorRegistry.sol\":{\"keccak256\":\"0xa2d811a9525b3dcbef2dd87ba0ece6fbc30f8d404a8ec9ca01a42d16414dbed4\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://6c20a1f1a47c33c7bd1ebc53163de727622ee20ac0a883fee81676be5d8fc10d\",\"dweb:/ipfs/QmYDfR13eeiKws7UZ898ur86xYvq5RQb9p8RF5q65yyQsT\"]},\"src/contracts/common/Registry.sol\":{\"keccak256\":\"0x4a4004836d920953a8ec6e223de9a330f43acf7a5b93c6b8b3e4a95e0f129889\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://e8bdda207f3852c683a2b481602239a914f7e26bcd042ade618e263a43b67652\",\"dweb:/ipfs/Qmb8GZykJWxZcfwNp3SqhFizDFydFuV6LXgemV3vnWyLyu\"]},\"src/interfaces/IOperatorRegistry.sol\":{\"keccak256\":\"0x6a606147504ec73b241a390739a3554add67fbd1b7e1dd2e2011acbf68d077af\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d46135057ecf37739be6965bf8a5439f911b463f209f66b53b97823c7e7299fe\",\"dweb:/ipfs/QmQSTrGuR8opR8n2anAnQFu7KQysdFzDjR44xCC7dbqs8v\"]},\"src/interfaces/common/IRegistry.sol\":{\"keccak256\":\"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014\",\"dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.25+commit.b61c2a91"},"language":"Solidity","output":{"abi":[{"inputs":[],"type":"error","name":"EntityNotExist"},{"inputs":[],"type":"error","name":"OperatorAlreadyRegistered"},{"inputs":[{"internalType":"address","name":"entity","type":"address","indexed":true}],"type":"event","name":"AddEntity","anonymous":false},{"inputs":[{"internalType":"uint256","name":"index","type":"uint256"}],"stateMutability":"view","type":"function","name":"entity","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"entity_","type":"address"}],"stateMutability":"view","type":"function","name":"isEntity","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"registerOperator"},{"inputs":[],"stateMutability":"view","type":"function","name":"totalEntities","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]}],"devdoc":{"kind":"dev","methods":{"entity(uint256)":{"params":{"index":"index of the entity to get"},"returns":{"_0":"address of the entity"}},"isEntity(address)":{"params":{"account":"address to check"},"returns":{"_0":"if the given address is an entity"}},"totalEntities()":{"returns":{"_0":"total number of entities added"}}},"version":1},"userdoc":{"kind":"user","methods":{"entity(uint256)":{"notice":"Get an entity given its index."},"isEntity(address)":{"notice":"Get if a given address is an entity."},"registerOperator()":{"notice":"Register the caller as an operator."},"totalEntities()":{"notice":"Get a total number of entities."}},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/contracts/OperatorRegistry.sol":"OperatorRegistry"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0x86c1470cbfd878491e5de030072b647352d36bd27122cffb928970b1945282aa","urls":["bzz-raw://ad85dd393ee0a1917c57046abc5155f51f77844b2c6a42c05c1b8dd26d6ff3c1","dweb:/ipfs/QmNqYc8To2NdnpP6E1tGz7t6A7beuENde5yovwov5pW1fA"],"license":"MIT"},"src/contracts/OperatorRegistry.sol":{"keccak256":"0xa2d811a9525b3dcbef2dd87ba0ece6fbc30f8d404a8ec9ca01a42d16414dbed4","urls":["bzz-raw://6c20a1f1a47c33c7bd1ebc53163de727622ee20ac0a883fee81676be5d8fc10d","dweb:/ipfs/QmYDfR13eeiKws7UZ898ur86xYvq5RQb9p8RF5q65yyQsT"],"license":"BUSL-1.1"},"src/contracts/common/Registry.sol":{"keccak256":"0x4a4004836d920953a8ec6e223de9a330f43acf7a5b93c6b8b3e4a95e0f129889","urls":["bzz-raw://e8bdda207f3852c683a2b481602239a914f7e26bcd042ade618e263a43b67652","dweb:/ipfs/Qmb8GZykJWxZcfwNp3SqhFizDFydFuV6LXgemV3vnWyLyu"],"license":"BUSL-1.1"},"src/interfaces/IOperatorRegistry.sol":{"keccak256":"0x6a606147504ec73b241a390739a3554add67fbd1b7e1dd2e2011acbf68d077af","urls":["bzz-raw://d46135057ecf37739be6965bf8a5439f911b463f209f66b53b97823c7e7299fe","dweb:/ipfs/QmQSTrGuR8opR8n2anAnQFu7KQysdFzDjR44xCC7dbqs8v"],"license":"MIT"},"src/interfaces/common/IRegistry.sol":{"keccak256":"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb","urls":["bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014","dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK"],"license":"MIT"}},"version":1},"id":65} \ No newline at end of file +{"abi":[{"type":"function","name":"entity","inputs":[{"name":"index","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"isEntity","inputs":[{"name":"entity_","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"registerOperator","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"totalEntities","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"event","name":"AddEntity","inputs":[{"name":"entity","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"error","name":"EntityNotExist","inputs":[]},{"type":"error","name":"OperatorAlreadyRegistered","inputs":[]}],"bytecode":{"object":"0x60808060405234601557610241908161001a8239f35b5f80fdfe60806040526004361015610011575f80fd5b5f3560e01c806314887c581461013d5780632acde098146100d15780635cd8b15e146100b55763b42ba2a214610045575f80fd5b346100b15760203660031901126100b1576004355f5481101561009d575f80527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e56301546040516001600160a01b039091168152602090f35b634e487b7160e01b5f52603260045260245ffd5b5f80fd5b346100b1575f3660031901126100b15760205f54604051908152f35b346100b1575f3660031901126100b1576100f6335f52600160205260405f2054151590565b61012b5761010333610184565b50337fb919910dcefbf753bfd926ab3b1d3f85d877190c3d01ba1bd585047b99b99f0b5f80a2005b6040516342ee68b560e01b8152600490fd5b346100b15760203660031901126100b1576004356001600160a01b038116908190036100b15761017a6020915f52600160205260405f2054151590565b6040519015158152f35b805f52600160205260405f2054155f14610206575f54680100000000000000008110156101f25760018101805f5581101561009d5781907f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e56301555f54905f52600160205260405f2055600190565b634e487b7160e01b5f52604160045260245ffd5b505f9056fea264697066735822122075b5716387895e629e74b8e3c027010c3b81a41d26ee7b556bbe4c038045108064736f6c63430008190033","sourceMap":"183:289:70:-:0;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361015610011575f80fd5b5f3560e01c806314887c581461013d5780632acde098146100d15780635cd8b15e146100b55763b42ba2a214610045575f80fd5b346100b15760203660031901126100b1576004355f5481101561009d575f80527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e56301546040516001600160a01b039091168152602090f35b634e487b7160e01b5f52603260045260245ffd5b5f80fd5b346100b1575f3660031901126100b15760205f54604051908152f35b346100b1575f3660031901126100b1576100f6335f52600160205260405f2054151590565b61012b5761010333610184565b50337fb919910dcefbf753bfd926ab3b1d3f85d877190c3d01ba1bd585047b99b99f0b5f80a2005b6040516342ee68b560e01b8152600490fd5b346100b15760203660031901126100b1576004356001600160a01b038116908190036100b15761017a6020915f52600160205260405f2054151590565b6040519015158152f35b805f52600160205260405f2054155f14610206575f54680100000000000000008110156101f25760018101805f5581101561009d5781907f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e56301555f54905f52600160205260405f2055600190565b634e487b7160e01b5f52604160045260245ffd5b505f9056fea264697066735822122075b5716387895e629e74b8e3c027010c3b81a41d26ee7b556bbe4c038045108064736f6c63430008190033","sourceMap":"183:289:70:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;183:289:70;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;183:289:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;183:289:70;;;;;;;;;;;;;;;;;;;-1:-1:-1;;183:289:70;;;;8974:55:62;359:10:70;183:289;;4360:14:62;183:289:70;;;;;;4360:26:62;;4264:129;;8974:55;346:85:70;;8409:50:62;359:10:70;8409:50:62;:::i;:::-;;359:10:70;1077:18:79;183:289:70;1077:18:79;;183:289:70;346:85;183:289;;-1:-1:-1;;;393:27:70;;183:289;;393:27;183:289;;;;;;-1:-1:-1;;183:289:70;;;;;;-1:-1:-1;;;;;183:289:70;;;;;;;;8974:55:62;183:289:70;8974:55:62;183:289:70;;4360:14:62;183:289:70;;;;;;4360:26:62;;4264:129;;8974:55;183:289:70;;;;;;;;2241:406:62;183:289:70;;;4360:14:62;183:289:70;;;;;;4360:26:62;2320:321;183:289:70;;;;;;;;;;;4360:14:62;183:289:70;;;;;;;;;;;;;;;;;;;;4360:14:62;183:289:70;;;;;;4360:14:62;2576:11;:::o;183:289:70:-;;;;;;;;;;;;2320:321:62;2618:12;183:289:70;2618:12:62;:::o","linkReferences":{}},"methodIdentifiers":{"entity(uint256)":"b42ba2a2","isEntity(address)":"14887c58","registerOperator()":"2acde098","totalEntities()":"5cd8b15e"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"EntityNotExist\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OperatorAlreadyRegistered\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"entity\",\"type\":\"address\"}],\"name\":\"AddEntity\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"entity\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"entity_\",\"type\":\"address\"}],\"name\":\"isEntity\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"registerOperator\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalEntities\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"events\":{\"AddEntity(address)\":{\"params\":{\"entity\":\"address of the added entity\"}}},\"kind\":\"dev\",\"methods\":{\"entity(uint256)\":{\"params\":{\"index\":\"index of the entity to get\"},\"returns\":{\"_0\":\"address of the entity\"}},\"isEntity(address)\":{\"params\":{\"account\":\"address to check\"},\"returns\":{\"_0\":\"if the given address is an entity\"}},\"totalEntities()\":{\"returns\":{\"_0\":\"total number of entities added\"}}},\"version\":1},\"userdoc\":{\"events\":{\"AddEntity(address)\":{\"notice\":\"Emitted when an entity is added.\"}},\"kind\":\"user\",\"methods\":{\"entity(uint256)\":{\"notice\":\"Get an entity given its index.\"},\"isEntity(address)\":{\"notice\":\"Get if a given address is an entity.\"},\"registerOperator()\":{\"notice\":\"Register the caller as an operator.\"},\"totalEntities()\":{\"notice\":\"Get a total number of entities.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/contracts/OperatorRegistry.sol\":\"OperatorRegistry\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0x86c1470cbfd878491e5de030072b647352d36bd27122cffb928970b1945282aa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ad85dd393ee0a1917c57046abc5155f51f77844b2c6a42c05c1b8dd26d6ff3c1\",\"dweb:/ipfs/QmNqYc8To2NdnpP6E1tGz7t6A7beuENde5yovwov5pW1fA\"]},\"src/contracts/OperatorRegistry.sol\":{\"keccak256\":\"0xa2d811a9525b3dcbef2dd87ba0ece6fbc30f8d404a8ec9ca01a42d16414dbed4\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://6c20a1f1a47c33c7bd1ebc53163de727622ee20ac0a883fee81676be5d8fc10d\",\"dweb:/ipfs/QmYDfR13eeiKws7UZ898ur86xYvq5RQb9p8RF5q65yyQsT\"]},\"src/contracts/common/Registry.sol\":{\"keccak256\":\"0x4a4004836d920953a8ec6e223de9a330f43acf7a5b93c6b8b3e4a95e0f129889\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://e8bdda207f3852c683a2b481602239a914f7e26bcd042ade618e263a43b67652\",\"dweb:/ipfs/Qmb8GZykJWxZcfwNp3SqhFizDFydFuV6LXgemV3vnWyLyu\"]},\"src/interfaces/IOperatorRegistry.sol\":{\"keccak256\":\"0x6a606147504ec73b241a390739a3554add67fbd1b7e1dd2e2011acbf68d077af\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d46135057ecf37739be6965bf8a5439f911b463f209f66b53b97823c7e7299fe\",\"dweb:/ipfs/QmQSTrGuR8opR8n2anAnQFu7KQysdFzDjR44xCC7dbqs8v\"]},\"src/interfaces/common/IRegistry.sol\":{\"keccak256\":\"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014\",\"dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.25+commit.b61c2a91"},"language":"Solidity","output":{"abi":[{"inputs":[],"type":"error","name":"EntityNotExist"},{"inputs":[],"type":"error","name":"OperatorAlreadyRegistered"},{"inputs":[{"internalType":"address","name":"entity","type":"address","indexed":true}],"type":"event","name":"AddEntity","anonymous":false},{"inputs":[{"internalType":"uint256","name":"index","type":"uint256"}],"stateMutability":"view","type":"function","name":"entity","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"entity_","type":"address"}],"stateMutability":"view","type":"function","name":"isEntity","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"registerOperator"},{"inputs":[],"stateMutability":"view","type":"function","name":"totalEntities","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]}],"devdoc":{"kind":"dev","methods":{"entity(uint256)":{"params":{"index":"index of the entity to get"},"returns":{"_0":"address of the entity"}},"isEntity(address)":{"params":{"account":"address to check"},"returns":{"_0":"if the given address is an entity"}},"totalEntities()":{"returns":{"_0":"total number of entities added"}}},"version":1},"userdoc":{"kind":"user","methods":{"entity(uint256)":{"notice":"Get an entity given its index."},"isEntity(address)":{"notice":"Get if a given address is an entity."},"registerOperator()":{"notice":"Register the caller as an operator."},"totalEntities()":{"notice":"Get a total number of entities."}},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/contracts/OperatorRegistry.sol":"OperatorRegistry"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0x86c1470cbfd878491e5de030072b647352d36bd27122cffb928970b1945282aa","urls":["bzz-raw://ad85dd393ee0a1917c57046abc5155f51f77844b2c6a42c05c1b8dd26d6ff3c1","dweb:/ipfs/QmNqYc8To2NdnpP6E1tGz7t6A7beuENde5yovwov5pW1fA"],"license":"MIT"},"src/contracts/OperatorRegistry.sol":{"keccak256":"0xa2d811a9525b3dcbef2dd87ba0ece6fbc30f8d404a8ec9ca01a42d16414dbed4","urls":["bzz-raw://6c20a1f1a47c33c7bd1ebc53163de727622ee20ac0a883fee81676be5d8fc10d","dweb:/ipfs/QmYDfR13eeiKws7UZ898ur86xYvq5RQb9p8RF5q65yyQsT"],"license":"BUSL-1.1"},"src/contracts/common/Registry.sol":{"keccak256":"0x4a4004836d920953a8ec6e223de9a330f43acf7a5b93c6b8b3e4a95e0f129889","urls":["bzz-raw://e8bdda207f3852c683a2b481602239a914f7e26bcd042ade618e263a43b67652","dweb:/ipfs/Qmb8GZykJWxZcfwNp3SqhFizDFydFuV6LXgemV3vnWyLyu"],"license":"BUSL-1.1"},"src/interfaces/IOperatorRegistry.sol":{"keccak256":"0x6a606147504ec73b241a390739a3554add67fbd1b7e1dd2e2011acbf68d077af","urls":["bzz-raw://d46135057ecf37739be6965bf8a5439f911b463f209f66b53b97823c7e7299fe","dweb:/ipfs/QmQSTrGuR8opR8n2anAnQFu7KQysdFzDjR44xCC7dbqs8v"],"license":"MIT"},"src/interfaces/common/IRegistry.sol":{"keccak256":"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb","urls":["bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014","dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK"],"license":"MIT"}},"version":1},"id":70} \ No newline at end of file diff --git a/out/OperatorSpecificDelegator.sol/OperatorSpecificDelegator.json b/out/OperatorSpecificDelegator.sol/OperatorSpecificDelegator.json index d5cf1665..2c7e682b 100644 --- a/out/OperatorSpecificDelegator.sol/OperatorSpecificDelegator.json +++ b/out/OperatorSpecificDelegator.sol/OperatorSpecificDelegator.json @@ -1 +1 @@ -{"abi":[{"type":"constructor","inputs":[{"name":"operatorRegistry","type":"address","internalType":"address"},{"name":"networkRegistry","type":"address","internalType":"address"},{"name":"vaultFactory","type":"address","internalType":"address"},{"name":"operatorVaultOptInService","type":"address","internalType":"address"},{"name":"operatorNetworkOptInService","type":"address","internalType":"address"},{"name":"delegatorFactory","type":"address","internalType":"address"},{"name":"entityType","type":"uint64","internalType":"uint64"}],"stateMutability":"nonpayable"},{"type":"function","name":"DEFAULT_ADMIN_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"FACTORY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"HOOK_GAS_LIMIT","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"HOOK_RESERVE","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"HOOK_SET_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"NETWORK_LIMIT_SET_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"NETWORK_REGISTRY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"OPERATOR_NETWORK_OPT_IN_SERVICE","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"OPERATOR_REGISTRY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"OPERATOR_VAULT_OPT_IN_SERVICE","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"TYPE","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"VAULT_FACTORY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"VERSION","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"pure"},{"type":"function","name":"getRoleAdmin","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"grantRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"hasRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"hook","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"initialize","inputs":[{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"maxNetworkLimit","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"value","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"networkLimit","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"networkLimitAt","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"timestamp","type":"uint48","internalType":"uint48"},{"name":"hint","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"onSlash","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"captureTimestamp","type":"uint48","internalType":"uint48"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"operator","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"renounceRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"callerConfirmation","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"revokeRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setHook","inputs":[{"name":"hook_","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setMaxNetworkLimit","inputs":[{"name":"identifier","type":"uint96","internalType":"uint96"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setNetworkLimit","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"stake","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"stakeAt","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"timestamp","type":"uint48","internalType":"uint48"},{"name":"hints","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"staticDelegateCall","inputs":[{"name":"target","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"vault","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"OnSlash","inputs":[{"name":"subnetwork","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"captureTimestamp","type":"uint48","indexed":false,"internalType":"uint48"}],"anonymous":false},{"type":"event","name":"RoleAdminChanged","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"previousAdminRole","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"newAdminRole","type":"bytes32","indexed":true,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"RoleGranted","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"sender","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"RoleRevoked","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"sender","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"SetHook","inputs":[{"name":"hook","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"SetMaxNetworkLimit","inputs":[{"name":"subnetwork","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"SetNetworkLimit","inputs":[{"name":"subnetwork","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"error","name":"AccessControlBadConfirmation","inputs":[]},{"type":"error","name":"AccessControlUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"neededRole","type":"bytes32","internalType":"bytes32"}]},{"type":"error","name":"AlreadySet","inputs":[]},{"type":"error","name":"CheckpointUnorderedInsertion","inputs":[]},{"type":"error","name":"DuplicateRoleHolder","inputs":[]},{"type":"error","name":"ExceedsMaxNetworkLimit","inputs":[]},{"type":"error","name":"InsufficientHookGas","inputs":[]},{"type":"error","name":"InvalidInitialization","inputs":[]},{"type":"error","name":"MissingRoleHolders","inputs":[]},{"type":"error","name":"NotInitialized","inputs":[]},{"type":"error","name":"NotInitializing","inputs":[]},{"type":"error","name":"NotNetwork","inputs":[]},{"type":"error","name":"NotOperator","inputs":[]},{"type":"error","name":"NotSlasher","inputs":[]},{"type":"error","name":"NotVault","inputs":[]},{"type":"error","name":"ReentrancyGuardReentrantCall","inputs":[]},{"type":"error","name":"SafeCastOverflowedUintDowncast","inputs":[{"name":"bits","type":"uint8","internalType":"uint8"},{"name":"value","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ZeroAddressRoleHolder","inputs":[]}],"bytecode":{"object":"0x610160346101c2576001600160401b0390601f612a7a38819003918201601f191683019190848311848410176101c6578160e092859260409586528339810103126101c25761004d826101da565b9061005a602084016101da565b6100658285016101da565b90610072606086016101da565b9561007f608087016101da565b9560c061008e60a083016101da565b9101519180831683036101c2577ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a009081549060ff82891c166101b157808083160361016d575b50505060805260a05260c05260e052610100938452610120928352610140918252519161288b93846101ef8539608051846105ea015260a05184610d14015260c0518481816104690152610d4d015260e05184818161035f0152611b540152518381816103a30152818161133601526114850152518281816103e70152818161129d0152611503015251818181610b9401526122440152f35b6001600160401b0319909116811790915585519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a15f80806100d4565b875163f92ee8a960e01b8152600490fd5b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b51906001600160a01b03821682036101c25756fe60806040526004361015610011575f80fd5b5f3560e01c806301ffc9a714610224578063021453481461021f578063103f29071461021a578063128e5d82146102155780631a80e5001461021057806323f752d51461020b578063248a9ca3146102065780632dd31000146102015780632f2ff15d146101fc57806336568abe146101f75780633dfd3873146101f25780633eb22c0f146101ed578063439fab91146101e8578063557cab44146101e3578063570ca735146101de5780635d32a1c9146101d95780636679191e146101d45780637d24bb27146101cf5780637f5a7c7b146101ca57806383ce0322146101c557806391d14854146101c05780639f86fd85146101bb578063a217fddf146101b6578063bb24fe8a146101b1578063c0cd7c3e146101ac578063d15b740e146101a7578063d547741f146101a2578063e02f69371461019d578063e49561ee14610198578063fbfa77cf14610193578063fd4d447c1461018e578063ff54740f146101895763ffa1ad7414610184575f80fd5b6110aa565b61108d565b611063565b61103c565b610e51565b610df2565b610da6565b610d7c565b610d38565b610cf5565b610cdb565b610c21565b610bc3565b610b7f565b610b57565b610b1e565b610ae4565b610a89565b61096c565b610950565b610818565b6107ba565b6106c1565b610676565b61062a565b6105d5565b61059c565b610416565b6103d2565b61038e565b61034a565b61027e565b3461027a57602036600319011261027a5760043563ffffffff60e01b811680910361027a57602090637965db0b60e01b8114908115610269575b506040519015158152f35b6301ffc9a760e01b1490505f61025e565b5f80fd5b3461027a5760408060031936011261027a5760043590602435906102a0611578565b825f526002602052805f2054821161033a57825f526003602052816102c6825f20611a9c565b1461032a5781610325916103157e899d104fc3d8820bd96540612bcc5c448c8837b13b9f7faa43ad0728f0c14f94610306875f52600360205260405f2090565b61030f42611fc3565b90611677565b5050519081529081906020820190565b0390a2005b5163a741a04560e01b8152600490fd5b51631eefc06360e31b8152600490fd5b3461027a575f36600319011261027a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461027a575f36600319011261027a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461027a575f36600319011261027a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461027a57604036600319011261027a576004356001600160601b038116810361027a5760243590610446611739565b6040516302910f8b60e31b81523360048201526020816024816001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165afa908115610597575f91610568575b5015610556576001600160601b03166bffffffffffffffffffffffff193360601b161790806104d0835f52600260205260405f2090565b541461054457610529817fc67e7929681aa1bccd63f52b3799bf5805f3009f197db6fdf584b14f7fbf608c9261050e855f52600260205260405f2090565b556105198185611768565b6040519081529081906020820190565b0390a261054260015f8051602061281683398151915255565b005b60405163a741a04560e01b8152600490fd5b6040516323d53b9760e21b8152600490fd5b61058a915060203d602011610590575b61058281836109f8565b8101906110c5565b5f610499565b503d610578565b6110dd565b3461027a57602036600319011261027a576004355f525f805160206127f68339815191526020526020600160405f200154604051908152f35b3461027a575f36600319011261027a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b6001600160a01b0381160361027a57565b3461027a57604036600319011261027a5761054260243560043561064d82610619565b805f525f805160206127f6833981519152602052610671600160405f2001546115d4565b6119d4565b3461027a57604036600319011261027a5760243561069381610619565b336001600160a01b038216036106af5761054290600435611a0a565b60405163334bd91960e11b8152600490fd5b3461027a57602036600319011261027a576004356106de81610619565b6106e6611739565b335f9081527f9ebbcbe0d2961d3fbe56ca6f679bc753bd848d3e6bb3eaf9041c51b286881d2c60205260409020547fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c9060ff161561079c57506001546001600160a01b039182169181168214610544576001600160a01b03191681176001557f5bbb1d3ebb6a3ad2a0f17ff35e579a83af60604d1d3c2a4c83c62adecadf666d5f80a260015f8051602061281683398151915255005b6044906040519063e2517d3f60e01b82523360048301526024820152fd5b3461027a57602036600319011261027a576004355f52600360205260206107e360405f20611a9c565b604051908152f35b9181601f8401121561027a578235916001600160401b03831161027a576020838186019501011161027a57565b3461027a57602036600319011261027a576001600160401b0360043581811161027a576108499036906004016107eb565b5f80516020612836833981519152549260ff8460401c1615931680159081610948575b600114908161093e575b159081610935575b50610923575f80516020612836833981519152805467ffffffffffffffff191660011790556108b191836108ff57611b1f565b6108b757005b5f80516020612836833981519152805460ff60401b19169055604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a1005b5f80516020612836833981519152805460ff60401b1916600160401b179055611b1f565b60405163f92ee8a960e01b8152600490fd5b9050155f61087e565b303b159150610876565b84915061086c565b3461027a575f36600319011261027a576020604051614e208152f35b3461027a575f36600319011261027a576004546040516001600160a01b039091168152602090f35b6064359065ffffffffffff8216820361027a57565b634e487b7160e01b5f52604160045260245ffd5b604081019081106001600160401b038211176109d857604052565b6109a9565b606081019081106001600160401b038211176109d857604052565b90601f801991011681019081106001600160401b038211176109d857604052565b60405190610a26826109bd565b565b6001600160401b0381116109d857601f01601f191660200190565b81601f8201121561027a57803590610a5a82610a28565b92610a6860405194856109f8565b8284526020838301011161027a57815f926020809301838601378301015290565b3461027a57606036600319011261027a5760243565ffffffffffff8116810361027a576044356001600160401b03811161027a57602091610ad16107e3923690600401610a43565b906004355f526003845260405f20611c8e565b3461027a575f36600319011261027a5760206040517fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c8152f35b3461027a575f36600319011261027a5760206040517e8b9b1e5fa9cf3b14f87f435649268146305ddf689f082e5961a335b07a9abf8152f35b3461027a575f36600319011261027a576001546040516001600160a01b039091168152602090f35b3461027a575f36600319011261027a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461027a57604036600319011261027a57602060ff610c15602435610be781610619565b6004355f525f805160206127f6833981519152845260405f209060018060a01b03165f5260205260405f2090565b54166040519015158152f35b3461027a5760408060031936011261027a57600435610c3f81610619565b602435906001600160401b03821161027a575f8091610c65610cc99436906004016107eb565b908187519283928337810184815203915af43d15610cd157610cbb3d610c8a81610a28565b90610c97865192836109f8565b81523d5f602083013e5b845194859315156020850152808401526060830190611101565b03601f1981018352826109f8565b805190602001fd5b610cbb6060610ca1565b3461027a575f36600319011261027a5760206040515f8152f35b3461027a575f36600319011261027a5760206040516001600160401b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461027a575f36600319011261027a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461027a57602036600319011261027a576004355f526002602052602060405f2054604051908152f35b3461027a57604036600319011261027a57610542602435600435610dc982610619565b805f525f805160206127f6833981519152602052610ded600160405f2001546115d4565b611a0a565b3461027a57608036600319011261027a57602435610e0f81610619565b6044359065ffffffffffff8216820361027a57606435906001600160401b03821161027a57602092610e486107e3933690600401610a43565b91600435611227565b3461027a5760a036600319011261027a57602435600435610e7182610619565b60443591610e7d610994565b90608435906001600160401b03821161027a57610e9f60049236908401610a43565b610ea7611739565b5f54602090610ecc90610ec0906001600160a01b031681565b6001600160a01b031690565b60405163b134427160e01b815294859182905afa928315610597575f9361100b575b506001600160a01b039283163303610ff9576001546001600160a01b0316838116610f6e575b50506040805195865265ffffffffffff909316602086015216927f741a5de99085c0d660f3e4192217b0ffb0ea4e35a0480de48e857a4bc3ee36ed91819081015b0390a361054260015f8051602061281683398151915255565b909360405194610fa586610f97602082019363724ab0f760e11b8552858c898d602487016113d1565b03601f1981018852876109f8565b62042e305a10610fe7575f610f55938192827f741a5de99085c0d660f3e4192217b0ffb0ea4e35a0480de48e857a4bc3ee36ed9951926203d090f15093610f14565b604051638072475160e01b8152600490fd5b60405163dabc4ad960e01b8152600490fd5b61102e91935060203d602011611035575b61102681836109f8565b8101906113bc565b915f610eee565b503d61101c565b3461027a575f36600319011261027a575f546040516001600160a01b039091168152602090f35b3461027a57604036600319011261027a5760206107e360243561108581610619565b60043561144e565b3461027a575f36600319011261027a5760206040516203d0908152f35b3461027a575f36600319011261027a57602060405160018152f35b9081602091031261027a5751801515810361027a5790565b6040513d5f823e3d90fd5b906110fe92915f52600360205260405f20611c8e565b90565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b60405190611132826109bd565b60606020838281520152565b81601f8201121561027a5780519061115582610a28565b9261116360405194856109f8565b8284526020838301011161027a57815f9260208093018386015e8301015290565b9060208282031261027a5781516001600160401b039283821161027a57019060408282031261027a57604051926111ba846109bd565b825181811161027a57826111cf91850161113e565b8452602083015190811161027a576111e7920161113e565b602082015290565b6001600160a01b0391821681529116602082015265ffffffffffff90911660408201526080606082018190526110fe92910190611101565b9261123790929192828486611e46565b929093611242611125565b93805180611395575b505084159384156112ff575b841561126e575b505050506112695790565b505f90565b602080949550611299910151604051958694859463530e1d4360e01b865260601c90600486016111ef565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa908115610597575f916112e0575b50155f80808061125e565b6112f9915060203d6020116105905761058281836109f8565b5f6112d5565b5f549094506001600160a01b0316602084865192611332604051948593849363530e1d4360e01b855289600486016111ef565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa908115610597575f91611376575b501593611257565b61138f915060203d6020116105905761058281836109f8565b5f61136e565b6113a9929550602080918301019101611184565b925f8061124b565b5190610a2682610619565b9081602091031261027a57516110fe81610619565b919360a0936110fe969565ffffffffffff938552600180871b0316602085015260408401521660608201528160808201520190611101565b634e487b7160e01b5f52601160045260245ffd5b8115611427570490565b634e487b7160e01b5f52601260045260245ffd5b906001820180921161144957565b611409565b5f546040516308834cb560e21b8082526001600160a01b0385811660048401529283166024830152929392602092909183816044817f000000000000000000000000000000000000000000000000000000000000000086165afa908115610597575f9161155b575b50159182156114d7575b505090506114d1576110fe91611f3b565b50505f90565b6040519081526001600160a01b0385166004820152606086901c602482015291508290829060449082907f0000000000000000000000000000000000000000000000000000000000000000165afa918215610597575f9261153e575b505015805f806114c0565b6115549250803d106105905761058281836109f8565b5f80611533565b6115729150843d86116105905761058281836109f8565b5f6114b6565b335f9081527f72a65082a5691803ab2b62c9bc729b34205ba1b183d950896526b2fd8714d0c7602052604090207e8b9b1e5fa9cf3b14f87f435649268146305ddf689f082e5961a335b07a9abf9060ff905b54161561079c5750565b5f8181525f805160206127f683398151915260209081526040808320338452909152902060ff906115ca565b634e487b7160e01b5f52603260045260245ffd5b8054821015611629575f5260205f2001905f90565b611600565b90815491600160401b8310156109d85782611651916001610a2695018155611614565b90919082549060031b91821b915f19901b1916179055565b5f1981019190821161144957565b90929192600182019081548015611709575b508461169484612019565b509490928454936116a483611a9c565b96816116f4575b50156116d1575050505f1981019081116114495761165185916116cd93611614565b9190565b6116cd9492936116ed926001600160d01b03909116919061251a565b505061162e565b65ffffffffffff83811691161490505f6116ab565b600160401b8110156109d8578060016117259201845583611614565b8154905f199060031b1b191690555f611689565b5f8051602061281683398151915260028154146117565760029055565b604051633ee5aeb560e01b8152600490fd5b90815f52600360205260405f208161177f82612019565b9193905083156117dd5761179f916001600160d01b031690600101611614565b90549060031b1c5b826117d3575b50506117b7575050565b6117cf915f52600360205260405f2061030f42611fc3565b5050565b119050815f6117ad565b50505f6117a7565b6001600160a01b0381165f9081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d60205260409020545f805160206127f68339815191529060ff166114d1575f808052602091825260408082206001600160a01b038516835290925220805460ff1916600117905533906001600160a01b03165f7f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d8180a4600190565b6001600160a01b0381165f9081527f9ebbcbe0d2961d3fbe56ca6f679bc753bd848d3e6bb3eaf9041c51b286881d2c602052604090207fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c905f805160206127f68339815191529060ff905b541661195f575f828152602091825260408082206001600160a01b038616835290925220805460ff1916600117905533916001600160a01b0316907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d5f80a4600190565b5050505f90565b6001600160a01b0381165f9081527f72a65082a5691803ab2b62c9bc729b34205ba1b183d950896526b2fd8714d0c7602052604090207e8b9b1e5fa9cf3b14f87f435649268146305ddf689f082e5961a335b07a9abf905f805160206127f68339815191529060ff906118fb565b5f8181525f805160206127f6833981519152602081815260408084206001600160a01b038716855290915290912060ff906118fb565b5f8181525f805160206127f6833981519152602081815260408084206001600160a01b03871685529091529091205460ff161561195f575f828152602091825260408082206001600160a01b038616835290925220805460ff1916905533916001600160a01b0316907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b5f80a4600190565b805480611acb57505f5b6001600160d01b038116156114d1576001611ac19201611614565b90549060031b1c90565b5f1990808281011161144957825f5260205f2001015460301c611aa6565b91909160408184031261027a578035611b0181610619565b9260208201356001600160401b03811161027a576110fe9201610a43565b611b2b91810190611ae9565b6040516302910f8b60e31b81526001600160a01b039283166004820181905291906020816024817f000000000000000000000000000000000000000000000000000000000000000088165afa908115610597575f91611c3e575b5015611c2c57611bc0604091611bbb611c0694611ba0612068565b60018060a01b03166001600160601b0360a01b5f5416175f55565b6121d4565b6020810151600180546001600160a01b0319166001600160a01b0390921691909117905580516001600160a01b0316848116611c1c575b5001516001600160a01b031690565b908116611c105750565b611c1990611890565b50565b611c25906117e5565b505f611bf7565b6040516362df054560e01b8152600490fd5b611c57915060203d6020116105905761058281836109f8565b5f611b85565b9081602091031261027a575163ffffffff8116810361027a5790565b90600163ffffffff8093160191821161144957565b91805115611d675780602080611ca993518301019101611c5d565b91611cb48382612445565b92611cc5845165ffffffffffff1690565b9065ffffffffffff8085169216828114611d5b5782119182611cfb575b5050611cf2576110fe9250612375565b50506020015190565b909150611d088354611669565b63ffffffff831614918215611d21575b50505f80611ce2565b611d53919250611d3c611d36611d4892611c79565b85612445565b5165ffffffffffff1690565b65ffffffffffff1690565b115f80611d18565b50505050506020015190565b506110fe91612375565b60405190611d7e826109dd565b60606040838281528260208201520152565b9060208282031261027a5781516001600160401b039283821161027a57019060608282031261027a5760405192611dc6846109dd565b825181811161027a5782611ddb91850161113e565b8452602083015181811161027a5782611df591850161113e565b6020850152604083015190811161027a57611e10920161113e565b604082015290565b9081602091031261027a575190565b60409065ffffffffffff6110fe94931681528160208201520190611101565b90939293611e52611d71565b94805180611f1f575b50506004546001600160a01b03918216911603611f17575f54611eb2929190602090611e9190610ec0906001600160a01b031681565b8187015190604051808097819463810da75d60e01b83528860048401611e27565b03915afa90811561059757611edf935f92611ee4575b50611ed991926040870151916110e8565b906124ad565b915190565b611ed99250611f0a9060203d602011611f10575b611f0281836109f8565b810190611e18565b91611ec8565b503d611ef8565b505090515f91565b611f33929650602080918301019101611d90565b935f80611e5b565b6004546001600160a01b0392908316908316036114d15760206004925f54166040519384809263bd49c35f60e01b82525afa908115610597576110fe925f92611f9a575b50611f95611ed9915f52600360205260405f2090565b611a9c565b611ed9919250611fbb611f959160203d602011611f1057611f0281836109f8565b929150611f7f565b65ffffffffffff90818111611fd6571690565b604490604051906306dfcc6560e41b8252603060048301526024820152fd5b90604051612002816109bd565b915465ffffffffffff8116835260301c6020830152565b80548061202a5750505f905f905f90565b5f1990808281011161144957612047925f5260205f200101611ff5565b9065ffffffffffff82511691602060018060d01b0391015116906001929190565b612070612635565b612078612635565b60015f8051602061281683398151915255565b60405190612098826109dd565b5f6040838281528260208201520152565b81601f8201121561027a578051916020916001600160401b0384116109d8578360051b90604051946120dd858401876109f8565b8552838086019282010192831161027a578301905b828210612100575050505090565b838091835161210e81610619565b8152019101906120f2565b60208183031261027a5780516001600160401b039182821161027a5701918281039260a0841261027a57606060405194612152866109dd565b1261027a57604051612163816109dd565b815161216e81610619565b8152602082015161217e81610619565b6020820152604082015161219181610619565b60408201528452606081015192831161027a576121b5608092611e109483016120a9565b6020850152016113b1565b80518210156116295760209160051b010190565b6121dc61208b565b506121f281519160208080948301019101612119565b8051516001600160a01b0393919084161580612369575b612357576040818101805182516302910f8b60e31b81526001600160a01b0390911660048083019190915296929491928690829060249082907f0000000000000000000000000000000000000000000000000000000000000000165afa908115610597575f9161233a575b50156123285791938401915f5b835180518210156122f757610ec061229c836122a9936121c0565b516001600160a01b031690565b156122e7576122cb6122c76122c261229c8488516121c0565b611966565b1590565b6122d757600101612281565b8451635140fefd60e11b81528790fd5b84516323cda06760e01b81528790fd5b50509051600480546001600160a01b0319166001600160a01b039092169190911790559350612324915050565b5190565b604051631f0853c160e21b8152600490fd5b6123519150863d88116105905761058281836109f8565b5f612274565b6040516303501f5960e11b8152600490fd5b50828101515115612209565b908154905f8291600584116123df575b612390935084612796565b806123b857505f905b6001600160d01b038216156114d1576110fe916001611ac19201611614565b6123d26123c76123d992611669565b835f5260205f200190565b5460301c90565b90612399565b91926123ea81612663565b81039081116114495761239093855f5265ffffffffffff808360205f20015416908516105f1461241b575091612385565b9291506124279061143b565b90612385565b6040519061243a826109bd565b5f6020838281520152565b9061246e61246861248f9261245861242d565b5061246161242d565b5084611614565b50611ff5565b91600165ffffffffffff845116936020828060d01b03910151169101611614565b9054906040519261249f846109bd565b835260031b1c602082015290565b90808210156124ba575090565b905090565b8054600160401b8110156109d8576124dc91600182018155611614565b61250757815160209092015160301b65ffffffffffff191665ffffffffffff92909216919091179055565b634e487b7160e01b5f525f60045260245ffd5b80549293929190821561260c5761253b6125366123c785611669565b611ff5565b9061254c825165ffffffffffff1690565b65ffffffffffff848116911681106125fa576116cd94602094889261257a611d48875165ffffffffffff1690565b036125c257506125b49261259061259b92611669565b905f5260205f200190565b9065ffffffffffff82549181199060301b169116179055565b01516001600160d01b031690565b9150506125f5916125e26125d4610a19565b65ffffffffffff9093168352565b6001600160d01b038816828601526124bf565b6125b4565b604051632520601d60e01b8152600490fd5b612630925061261c6125d4610a19565b6001600160d01b03851660208301526124bf565b5f9190565b60ff5f805160206128368339815191525460401c161561265157565b604051631afcd79f60e31b8152600490fd5b80156112695780611ed961272e61272461271a6127106127066126fc6126f260016110fe9a5f908b60801c8061278a575b508060401c8061277d575b508060201c80612770575b508060101c80612763575b508060081c80612756575b508060041c80612749575b508060021c8061273c575b50821c612735575b811c1b6126eb818b61141d565b0160011c90565b6126eb818a61141d565b6126eb818961141d565b6126eb818861141d565b6126eb818761141d565b6126eb818661141d565b6126eb818561141d565b809261141d565b81016126de565b600291509101905f6126d6565b600491509101905f6126cb565b600891509101905f6126c0565b601091509101905f6126b5565b602091509101905f6126aa565b604091509101905f61269f565b9150506080905f612694565b91905b8382106127a65750505090565b9091928083169080841860011c820180921161144957845f5265ffffffffffff808360205f20015416908416105f146127e35750925b9190612799565b9392506127ef9061143b565b916127dc56fe02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268009b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a26469706673582212205c276801ae6061af18dad51d441d5cb6dadebac4aa6e8f4a4cdf93877dee107364736f6c63430008190033","sourceMap":"611:4324:80:-:0;;;;-1:-1:-1;;;;;611:4324:80;;;;;;;;;;-1:-1:-1;;611:4324:80;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;8837:64:25;611:4324:80;;;;;;;;;7896:76:25;;611:4324:80;;;;7985:34:25;7981:146;;-1:-1:-1;525:17:69;;;611:4324:80;525:17:69;611:4324:80;552:12:69;611:4324:80;2360:34:76;611:4324:80;2404:28:76;2442:57;;;;2509:61;;;;1716:36:80;;;;611:4324;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7981:146:25;-1:-1:-1;;;;;;611:4324:80;;;;;;;;;;;;;8087:29:25;;611:4324:80;;8087:29:25;7981:146;;;;;7896:76;611:4324:80;;-1:-1:-1;;;7938:23:25;;;;;611:4324:80;-1:-1:-1;611:4324:80;;;;;;-1:-1:-1;611:4324:80;;;;;-1:-1:-1;611:4324:80;;;;-1:-1:-1;;;;;611:4324:80;;;;;;:::o","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361015610011575f80fd5b5f3560e01c806301ffc9a714610224578063021453481461021f578063103f29071461021a578063128e5d82146102155780631a80e5001461021057806323f752d51461020b578063248a9ca3146102065780632dd31000146102015780632f2ff15d146101fc57806336568abe146101f75780633dfd3873146101f25780633eb22c0f146101ed578063439fab91146101e8578063557cab44146101e3578063570ca735146101de5780635d32a1c9146101d95780636679191e146101d45780637d24bb27146101cf5780637f5a7c7b146101ca57806383ce0322146101c557806391d14854146101c05780639f86fd85146101bb578063a217fddf146101b6578063bb24fe8a146101b1578063c0cd7c3e146101ac578063d15b740e146101a7578063d547741f146101a2578063e02f69371461019d578063e49561ee14610198578063fbfa77cf14610193578063fd4d447c1461018e578063ff54740f146101895763ffa1ad7414610184575f80fd5b6110aa565b61108d565b611063565b61103c565b610e51565b610df2565b610da6565b610d7c565b610d38565b610cf5565b610cdb565b610c21565b610bc3565b610b7f565b610b57565b610b1e565b610ae4565b610a89565b61096c565b610950565b610818565b6107ba565b6106c1565b610676565b61062a565b6105d5565b61059c565b610416565b6103d2565b61038e565b61034a565b61027e565b3461027a57602036600319011261027a5760043563ffffffff60e01b811680910361027a57602090637965db0b60e01b8114908115610269575b506040519015158152f35b6301ffc9a760e01b1490505f61025e565b5f80fd5b3461027a5760408060031936011261027a5760043590602435906102a0611578565b825f526002602052805f2054821161033a57825f526003602052816102c6825f20611a9c565b1461032a5781610325916103157e899d104fc3d8820bd96540612bcc5c448c8837b13b9f7faa43ad0728f0c14f94610306875f52600360205260405f2090565b61030f42611fc3565b90611677565b5050519081529081906020820190565b0390a2005b5163a741a04560e01b8152600490fd5b51631eefc06360e31b8152600490fd5b3461027a575f36600319011261027a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461027a575f36600319011261027a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461027a575f36600319011261027a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461027a57604036600319011261027a576004356001600160601b038116810361027a5760243590610446611739565b6040516302910f8b60e31b81523360048201526020816024816001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165afa908115610597575f91610568575b5015610556576001600160601b03166bffffffffffffffffffffffff193360601b161790806104d0835f52600260205260405f2090565b541461054457610529817fc67e7929681aa1bccd63f52b3799bf5805f3009f197db6fdf584b14f7fbf608c9261050e855f52600260205260405f2090565b556105198185611768565b6040519081529081906020820190565b0390a261054260015f8051602061281683398151915255565b005b60405163a741a04560e01b8152600490fd5b6040516323d53b9760e21b8152600490fd5b61058a915060203d602011610590575b61058281836109f8565b8101906110c5565b5f610499565b503d610578565b6110dd565b3461027a57602036600319011261027a576004355f525f805160206127f68339815191526020526020600160405f200154604051908152f35b3461027a575f36600319011261027a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b6001600160a01b0381160361027a57565b3461027a57604036600319011261027a5761054260243560043561064d82610619565b805f525f805160206127f6833981519152602052610671600160405f2001546115d4565b6119d4565b3461027a57604036600319011261027a5760243561069381610619565b336001600160a01b038216036106af5761054290600435611a0a565b60405163334bd91960e11b8152600490fd5b3461027a57602036600319011261027a576004356106de81610619565b6106e6611739565b335f9081527f9ebbcbe0d2961d3fbe56ca6f679bc753bd848d3e6bb3eaf9041c51b286881d2c60205260409020547fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c9060ff161561079c57506001546001600160a01b039182169181168214610544576001600160a01b03191681176001557f5bbb1d3ebb6a3ad2a0f17ff35e579a83af60604d1d3c2a4c83c62adecadf666d5f80a260015f8051602061281683398151915255005b6044906040519063e2517d3f60e01b82523360048301526024820152fd5b3461027a57602036600319011261027a576004355f52600360205260206107e360405f20611a9c565b604051908152f35b9181601f8401121561027a578235916001600160401b03831161027a576020838186019501011161027a57565b3461027a57602036600319011261027a576001600160401b0360043581811161027a576108499036906004016107eb565b5f80516020612836833981519152549260ff8460401c1615931680159081610948575b600114908161093e575b159081610935575b50610923575f80516020612836833981519152805467ffffffffffffffff191660011790556108b191836108ff57611b1f565b6108b757005b5f80516020612836833981519152805460ff60401b19169055604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a1005b5f80516020612836833981519152805460ff60401b1916600160401b179055611b1f565b60405163f92ee8a960e01b8152600490fd5b9050155f61087e565b303b159150610876565b84915061086c565b3461027a575f36600319011261027a576020604051614e208152f35b3461027a575f36600319011261027a576004546040516001600160a01b039091168152602090f35b6064359065ffffffffffff8216820361027a57565b634e487b7160e01b5f52604160045260245ffd5b604081019081106001600160401b038211176109d857604052565b6109a9565b606081019081106001600160401b038211176109d857604052565b90601f801991011681019081106001600160401b038211176109d857604052565b60405190610a26826109bd565b565b6001600160401b0381116109d857601f01601f191660200190565b81601f8201121561027a57803590610a5a82610a28565b92610a6860405194856109f8565b8284526020838301011161027a57815f926020809301838601378301015290565b3461027a57606036600319011261027a5760243565ffffffffffff8116810361027a576044356001600160401b03811161027a57602091610ad16107e3923690600401610a43565b906004355f526003845260405f20611c8e565b3461027a575f36600319011261027a5760206040517fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c8152f35b3461027a575f36600319011261027a5760206040517e8b9b1e5fa9cf3b14f87f435649268146305ddf689f082e5961a335b07a9abf8152f35b3461027a575f36600319011261027a576001546040516001600160a01b039091168152602090f35b3461027a575f36600319011261027a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461027a57604036600319011261027a57602060ff610c15602435610be781610619565b6004355f525f805160206127f6833981519152845260405f209060018060a01b03165f5260205260405f2090565b54166040519015158152f35b3461027a5760408060031936011261027a57600435610c3f81610619565b602435906001600160401b03821161027a575f8091610c65610cc99436906004016107eb565b908187519283928337810184815203915af43d15610cd157610cbb3d610c8a81610a28565b90610c97865192836109f8565b81523d5f602083013e5b845194859315156020850152808401526060830190611101565b03601f1981018352826109f8565b805190602001fd5b610cbb6060610ca1565b3461027a575f36600319011261027a5760206040515f8152f35b3461027a575f36600319011261027a5760206040516001600160401b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461027a575f36600319011261027a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461027a57602036600319011261027a576004355f526002602052602060405f2054604051908152f35b3461027a57604036600319011261027a57610542602435600435610dc982610619565b805f525f805160206127f6833981519152602052610ded600160405f2001546115d4565b611a0a565b3461027a57608036600319011261027a57602435610e0f81610619565b6044359065ffffffffffff8216820361027a57606435906001600160401b03821161027a57602092610e486107e3933690600401610a43565b91600435611227565b3461027a5760a036600319011261027a57602435600435610e7182610619565b60443591610e7d610994565b90608435906001600160401b03821161027a57610e9f60049236908401610a43565b610ea7611739565b5f54602090610ecc90610ec0906001600160a01b031681565b6001600160a01b031690565b60405163b134427160e01b815294859182905afa928315610597575f9361100b575b506001600160a01b039283163303610ff9576001546001600160a01b0316838116610f6e575b50506040805195865265ffffffffffff909316602086015216927f741a5de99085c0d660f3e4192217b0ffb0ea4e35a0480de48e857a4bc3ee36ed91819081015b0390a361054260015f8051602061281683398151915255565b909360405194610fa586610f97602082019363724ab0f760e11b8552858c898d602487016113d1565b03601f1981018852876109f8565b62042e305a10610fe7575f610f55938192827f741a5de99085c0d660f3e4192217b0ffb0ea4e35a0480de48e857a4bc3ee36ed9951926203d090f15093610f14565b604051638072475160e01b8152600490fd5b60405163dabc4ad960e01b8152600490fd5b61102e91935060203d602011611035575b61102681836109f8565b8101906113bc565b915f610eee565b503d61101c565b3461027a575f36600319011261027a575f546040516001600160a01b039091168152602090f35b3461027a57604036600319011261027a5760206107e360243561108581610619565b60043561144e565b3461027a575f36600319011261027a5760206040516203d0908152f35b3461027a575f36600319011261027a57602060405160018152f35b9081602091031261027a5751801515810361027a5790565b6040513d5f823e3d90fd5b906110fe92915f52600360205260405f20611c8e565b90565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b60405190611132826109bd565b60606020838281520152565b81601f8201121561027a5780519061115582610a28565b9261116360405194856109f8565b8284526020838301011161027a57815f9260208093018386015e8301015290565b9060208282031261027a5781516001600160401b039283821161027a57019060408282031261027a57604051926111ba846109bd565b825181811161027a57826111cf91850161113e565b8452602083015190811161027a576111e7920161113e565b602082015290565b6001600160a01b0391821681529116602082015265ffffffffffff90911660408201526080606082018190526110fe92910190611101565b9261123790929192828486611e46565b929093611242611125565b93805180611395575b505084159384156112ff575b841561126e575b505050506112695790565b505f90565b602080949550611299910151604051958694859463530e1d4360e01b865260601c90600486016111ef565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa908115610597575f916112e0575b50155f80808061125e565b6112f9915060203d6020116105905761058281836109f8565b5f6112d5565b5f549094506001600160a01b0316602084865192611332604051948593849363530e1d4360e01b855289600486016111ef565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa908115610597575f91611376575b501593611257565b61138f915060203d6020116105905761058281836109f8565b5f61136e565b6113a9929550602080918301019101611184565b925f8061124b565b5190610a2682610619565b9081602091031261027a57516110fe81610619565b919360a0936110fe969565ffffffffffff938552600180871b0316602085015260408401521660608201528160808201520190611101565b634e487b7160e01b5f52601160045260245ffd5b8115611427570490565b634e487b7160e01b5f52601260045260245ffd5b906001820180921161144957565b611409565b5f546040516308834cb560e21b8082526001600160a01b0385811660048401529283166024830152929392602092909183816044817f000000000000000000000000000000000000000000000000000000000000000086165afa908115610597575f9161155b575b50159182156114d7575b505090506114d1576110fe91611f3b565b50505f90565b6040519081526001600160a01b0385166004820152606086901c602482015291508290829060449082907f0000000000000000000000000000000000000000000000000000000000000000165afa918215610597575f9261153e575b505015805f806114c0565b6115549250803d106105905761058281836109f8565b5f80611533565b6115729150843d86116105905761058281836109f8565b5f6114b6565b335f9081527f72a65082a5691803ab2b62c9bc729b34205ba1b183d950896526b2fd8714d0c7602052604090207e8b9b1e5fa9cf3b14f87f435649268146305ddf689f082e5961a335b07a9abf9060ff905b54161561079c5750565b5f8181525f805160206127f683398151915260209081526040808320338452909152902060ff906115ca565b634e487b7160e01b5f52603260045260245ffd5b8054821015611629575f5260205f2001905f90565b611600565b90815491600160401b8310156109d85782611651916001610a2695018155611614565b90919082549060031b91821b915f19901b1916179055565b5f1981019190821161144957565b90929192600182019081548015611709575b508461169484612019565b509490928454936116a483611a9c565b96816116f4575b50156116d1575050505f1981019081116114495761165185916116cd93611614565b9190565b6116cd9492936116ed926001600160d01b03909116919061251a565b505061162e565b65ffffffffffff83811691161490505f6116ab565b600160401b8110156109d8578060016117259201845583611614565b8154905f199060031b1b191690555f611689565b5f8051602061281683398151915260028154146117565760029055565b604051633ee5aeb560e01b8152600490fd5b90815f52600360205260405f208161177f82612019565b9193905083156117dd5761179f916001600160d01b031690600101611614565b90549060031b1c5b826117d3575b50506117b7575050565b6117cf915f52600360205260405f2061030f42611fc3565b5050565b119050815f6117ad565b50505f6117a7565b6001600160a01b0381165f9081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d60205260409020545f805160206127f68339815191529060ff166114d1575f808052602091825260408082206001600160a01b038516835290925220805460ff1916600117905533906001600160a01b03165f7f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d8180a4600190565b6001600160a01b0381165f9081527f9ebbcbe0d2961d3fbe56ca6f679bc753bd848d3e6bb3eaf9041c51b286881d2c602052604090207fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c905f805160206127f68339815191529060ff905b541661195f575f828152602091825260408082206001600160a01b038616835290925220805460ff1916600117905533916001600160a01b0316907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d5f80a4600190565b5050505f90565b6001600160a01b0381165f9081527f72a65082a5691803ab2b62c9bc729b34205ba1b183d950896526b2fd8714d0c7602052604090207e8b9b1e5fa9cf3b14f87f435649268146305ddf689f082e5961a335b07a9abf905f805160206127f68339815191529060ff906118fb565b5f8181525f805160206127f6833981519152602081815260408084206001600160a01b038716855290915290912060ff906118fb565b5f8181525f805160206127f6833981519152602081815260408084206001600160a01b03871685529091529091205460ff161561195f575f828152602091825260408082206001600160a01b038616835290925220805460ff1916905533916001600160a01b0316907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b5f80a4600190565b805480611acb57505f5b6001600160d01b038116156114d1576001611ac19201611614565b90549060031b1c90565b5f1990808281011161144957825f5260205f2001015460301c611aa6565b91909160408184031261027a578035611b0181610619565b9260208201356001600160401b03811161027a576110fe9201610a43565b611b2b91810190611ae9565b6040516302910f8b60e31b81526001600160a01b039283166004820181905291906020816024817f000000000000000000000000000000000000000000000000000000000000000088165afa908115610597575f91611c3e575b5015611c2c57611bc0604091611bbb611c0694611ba0612068565b60018060a01b03166001600160601b0360a01b5f5416175f55565b6121d4565b6020810151600180546001600160a01b0319166001600160a01b0390921691909117905580516001600160a01b0316848116611c1c575b5001516001600160a01b031690565b908116611c105750565b611c1990611890565b50565b611c25906117e5565b505f611bf7565b6040516362df054560e01b8152600490fd5b611c57915060203d6020116105905761058281836109f8565b5f611b85565b9081602091031261027a575163ffffffff8116810361027a5790565b90600163ffffffff8093160191821161144957565b91805115611d675780602080611ca993518301019101611c5d565b91611cb48382612445565b92611cc5845165ffffffffffff1690565b9065ffffffffffff8085169216828114611d5b5782119182611cfb575b5050611cf2576110fe9250612375565b50506020015190565b909150611d088354611669565b63ffffffff831614918215611d21575b50505f80611ce2565b611d53919250611d3c611d36611d4892611c79565b85612445565b5165ffffffffffff1690565b65ffffffffffff1690565b115f80611d18565b50505050506020015190565b506110fe91612375565b60405190611d7e826109dd565b60606040838281528260208201520152565b9060208282031261027a5781516001600160401b039283821161027a57019060608282031261027a5760405192611dc6846109dd565b825181811161027a5782611ddb91850161113e565b8452602083015181811161027a5782611df591850161113e565b6020850152604083015190811161027a57611e10920161113e565b604082015290565b9081602091031261027a575190565b60409065ffffffffffff6110fe94931681528160208201520190611101565b90939293611e52611d71565b94805180611f1f575b50506004546001600160a01b03918216911603611f17575f54611eb2929190602090611e9190610ec0906001600160a01b031681565b8187015190604051808097819463810da75d60e01b83528860048401611e27565b03915afa90811561059757611edf935f92611ee4575b50611ed991926040870151916110e8565b906124ad565b915190565b611ed99250611f0a9060203d602011611f10575b611f0281836109f8565b810190611e18565b91611ec8565b503d611ef8565b505090515f91565b611f33929650602080918301019101611d90565b935f80611e5b565b6004546001600160a01b0392908316908316036114d15760206004925f54166040519384809263bd49c35f60e01b82525afa908115610597576110fe925f92611f9a575b50611f95611ed9915f52600360205260405f2090565b611a9c565b611ed9919250611fbb611f959160203d602011611f1057611f0281836109f8565b929150611f7f565b65ffffffffffff90818111611fd6571690565b604490604051906306dfcc6560e41b8252603060048301526024820152fd5b90604051612002816109bd565b915465ffffffffffff8116835260301c6020830152565b80548061202a5750505f905f905f90565b5f1990808281011161144957612047925f5260205f200101611ff5565b9065ffffffffffff82511691602060018060d01b0391015116906001929190565b612070612635565b612078612635565b60015f8051602061281683398151915255565b60405190612098826109dd565b5f6040838281528260208201520152565b81601f8201121561027a578051916020916001600160401b0384116109d8578360051b90604051946120dd858401876109f8565b8552838086019282010192831161027a578301905b828210612100575050505090565b838091835161210e81610619565b8152019101906120f2565b60208183031261027a5780516001600160401b039182821161027a5701918281039260a0841261027a57606060405194612152866109dd565b1261027a57604051612163816109dd565b815161216e81610619565b8152602082015161217e81610619565b6020820152604082015161219181610619565b60408201528452606081015192831161027a576121b5608092611e109483016120a9565b6020850152016113b1565b80518210156116295760209160051b010190565b6121dc61208b565b506121f281519160208080948301019101612119565b8051516001600160a01b0393919084161580612369575b612357576040818101805182516302910f8b60e31b81526001600160a01b0390911660048083019190915296929491928690829060249082907f0000000000000000000000000000000000000000000000000000000000000000165afa908115610597575f9161233a575b50156123285791938401915f5b835180518210156122f757610ec061229c836122a9936121c0565b516001600160a01b031690565b156122e7576122cb6122c76122c261229c8488516121c0565b611966565b1590565b6122d757600101612281565b8451635140fefd60e11b81528790fd5b84516323cda06760e01b81528790fd5b50509051600480546001600160a01b0319166001600160a01b039092169190911790559350612324915050565b5190565b604051631f0853c160e21b8152600490fd5b6123519150863d88116105905761058281836109f8565b5f612274565b6040516303501f5960e11b8152600490fd5b50828101515115612209565b908154905f8291600584116123df575b612390935084612796565b806123b857505f905b6001600160d01b038216156114d1576110fe916001611ac19201611614565b6123d26123c76123d992611669565b835f5260205f200190565b5460301c90565b90612399565b91926123ea81612663565b81039081116114495761239093855f5265ffffffffffff808360205f20015416908516105f1461241b575091612385565b9291506124279061143b565b90612385565b6040519061243a826109bd565b5f6020838281520152565b9061246e61246861248f9261245861242d565b5061246161242d565b5084611614565b50611ff5565b91600165ffffffffffff845116936020828060d01b03910151169101611614565b9054906040519261249f846109bd565b835260031b1c602082015290565b90808210156124ba575090565b905090565b8054600160401b8110156109d8576124dc91600182018155611614565b61250757815160209092015160301b65ffffffffffff191665ffffffffffff92909216919091179055565b634e487b7160e01b5f525f60045260245ffd5b80549293929190821561260c5761253b6125366123c785611669565b611ff5565b9061254c825165ffffffffffff1690565b65ffffffffffff848116911681106125fa576116cd94602094889261257a611d48875165ffffffffffff1690565b036125c257506125b49261259061259b92611669565b905f5260205f200190565b9065ffffffffffff82549181199060301b169116179055565b01516001600160d01b031690565b9150506125f5916125e26125d4610a19565b65ffffffffffff9093168352565b6001600160d01b038816828601526124bf565b6125b4565b604051632520601d60e01b8152600490fd5b612630925061261c6125d4610a19565b6001600160d01b03851660208301526124bf565b5f9190565b60ff5f805160206128368339815191525460401c161561265157565b604051631afcd79f60e31b8152600490fd5b80156112695780611ed961272e61272461271a6127106127066126fc6126f260016110fe9a5f908b60801c8061278a575b508060401c8061277d575b508060201c80612770575b508060101c80612763575b508060081c80612756575b508060041c80612749575b508060021c8061273c575b50821c612735575b811c1b6126eb818b61141d565b0160011c90565b6126eb818a61141d565b6126eb818961141d565b6126eb818861141d565b6126eb818761141d565b6126eb818661141d565b6126eb818561141d565b809261141d565b81016126de565b600291509101905f6126d6565b600491509101905f6126cb565b600891509101905f6126c0565b601091509101905f6126b5565b602091509101905f6126aa565b604091509101905f61269f565b9150506080905f612694565b91905b8382106127a65750505090565b9091928083169080841860011c820180921161144957845f5265ffffffffffff808360205f20015416908416105f146127e35750925b9190612799565b9392506127ef9061143b565b916127dc56fe02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268009b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a26469706673582212205c276801ae6061af18dad51d441d5cb6dadebac4aa6e8f4a4cdf93877dee107364736f6c63430008190033","sourceMap":"611:4324:80:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;;;;;-1:-1:-1;;611:4324:80;;;;;;;;;;;;;;;;;;-1:-1:-1;;;3551:47:23;;;:87;;;;611:4324:80;;;;;;;;;;3551:87:23;-1:-1:-1;;;1133:40:29;;-1:-1:-1;3551:87:23;;;611:4324:80;-1:-1:-1;611:4324:80;;;;;;;;;;;;;;;;;;;;3202:4:23;;;:::i;:::-;611:4324:80;-1:-1:-1;611:4324:80;2428:15;611:4324;;;-1:-1:-1;611:4324:80;;2419:36;;2415:98;;611:4324;-1:-1:-1;611:4324:80;2193:13;611:4324;;;2193:34;611:4324;-1:-1:-1;611:4324:80;2193:34;:::i;:::-;2527;2523:84;;2617:25;2689:35;2617:25;:56;2689:35;2617:25;;;611:4324;;2193:13;611:4324;;;;;;;2617:25;819:34:62;837:15;819:34;:::i;:::-;2617:56:80;;:::i;:::-;-1:-1:-1;;611:4324:80;;;;;;;;;;;;2689:35;;;;611:4324;2523:84;611:4324;-1:-1:-1;;;2584:12:80;;611:4324;;2584:12;2415:98;611:4324;-1:-1:-1;;;2478:24:80;;611:4324;;2478:24;611:4324;;;;;;-1:-1:-1;;611:4324:80;;;;;;1537:38:76;-1:-1:-1;;;;;611:4324:80;;;;;;;;;;;;-1:-1:-1;;611:4324:80;;;;;;1632:54:76;-1:-1:-1;;;;;611:4324:80;;;;;;;;;;;;-1:-1:-1;;611:4324:80;;;;;;1743:56:76;-1:-1:-1;;;;;611:4324:80;;;;;;;;;;;;-1:-1:-1;;611:4324:80;;;;;;-1:-1:-1;;;;;611:4324:80;;;;;;;;3217:103:28;;;:::i;:::-;611:4324:80;;-1:-1:-1;;;4285:48:76;;4322:10;611:4324:80;4285:48:76;;611:4324:80;;;;;-1:-1:-1;;;;;4295:16:76;611:4324:80;4285:48:76;;;;;;;-1:-1:-1;4285:48:76;;;611:4324:80;4284:49:76;;4280:99;;-1:-1:-1;;;;;611:4324:80;-1:-1:-1;;4322:10:76;297:2:88;611:4324:80;;267:46:88;4459:27:76;;;;611:4324:80;;4459:15:76;611:4324:80;;;;;;;4459:27:76;611:4324:80;4459:37:76;4455:87;;4654:38;4552:27;4654:38;4552:27;;;611:4324:80;;4459:15:76;611:4324:80;;;;;;;4552:27:76;611:4324:80;4631:6:76;;;;:::i;:::-;611:4324:80;;;;;;;;;;;;;4654:38:76;;;;3282:1:28;1805;-1:-1:-1;;;;;;;;;;;611:4324:80;3716:283:28;3282:1;611:4324:80;4455:87:76;611:4324:80;;-1:-1:-1;;;4519:12:76;;611:4324:80;;4519:12:76;4280:99;611:4324:80;;-1:-1:-1;;;4356:12:76;;611:4324:80;;4356:12:76;4285:48;;;;611:4324:80;4285:48:76;611:4324:80;4285:48:76;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;:::i;611:4324:80:-;;;;;;-1:-1:-1;;611:4324:80;;;;;;-1:-1:-1;611:4324:80;-1:-1:-1;;;;;;;;;;;611:4324:80;;;4919:24:23;611:4324:80;-1:-1:-1;611:4324:80;4919:24:23;611:4324:80;;;;;;;;;;;;;-1:-1:-1;;611:4324:80;;;;;;322:32:69;-1:-1:-1;;;;;611:4324:80;;;;;;;-1:-1:-1;;;;;611:4324:80;;;;;:::o;:::-;;;;;;-1:-1:-1;;611:4324:80;;;;5350:25:23;611:4324:80;;;;;;;:::i;:::-;;-1:-1:-1;611:4324:80;-1:-1:-1;;;;;;;;;;;611:4324:80;;3202:4:23;4919:24;611:4324:80;-1:-1:-1;611:4324:80;4919:24:23;611:4324:80;3202:4:23;:::i;:::-;5350:25;:::i;611:4324:80:-;;;;;;-1:-1:-1;;611:4324:80;;;;;;;;;:::i;:::-;966:10:27;-1:-1:-1;;;;;611:4324:80;;6441:34:23;6437:102;;6549:37;611:4324:80;;;6549:37:23;:::i;6437:102::-;611:4324:80;;-1:-1:-1;;;6498:30:23;;611:4324:80;;6498:30:23;611:4324:80;;;;;;-1:-1:-1;;611:4324:80;;;;;;;;;:::i;:::-;3217:103:28;;:::i;:::-;966:10:27;-1:-1:-1;611:4324:80;;;;;;;;;;1356:26:76;;611:4324:80;;4468:23:23;4464:108;;-1:-1:-1;4861:4:76;611:4324:80;-1:-1:-1;;;;;611:4324:80;;;;;;4861:13:76;;4857:63;;-1:-1:-1;;;;;;611:4324:80;;;4861:4:76;611:4324:80;4958:14:76;-1:-1:-1;;4958:14:76;4861:4;-1:-1:-1;;;;;;;;;;;611:4324:80;;4464:108:23;611:4324:80;;;;4514:47:23;;;;;;966:10:27;611:4324:80;4514:47:23;;611:4324:80;;;;;4514:47:23;611:4324:80;;;;;;-1:-1:-1;;611:4324:80;;;;;;-1:-1:-1;611:4324:80;2193:13;611:4324;;;2193:34;611:4324;-1:-1:-1;611:4324:80;2193:34;:::i;:::-;611:4324;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;611:4324:80;;;;;;;;;;;;;;;:::o;:::-;;;;;;-1:-1:-1;;611:4324:80;;;;-1:-1:-1;;;;;611:4324:80;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;611:4324:80;;;;;;;4301:16:25;611:4324:80;;4726:16:25;;:34;;;;611:4324:80;4805:1:25;4790:16;:50;;;;611:4324:80;4855:13:25;:30;;;;611:4324:80;4851:91:25;;;-1:-1:-1;;;;;;;;;;;611:4324:80;;-1:-1:-1;;611:4324:80;;;;;718:4:69;;4951:18:25;4979:67;;718:4:69;:::i;:::-;5066:101:25;;611:4324:80;5066:101:25;-1:-1:-1;;;;;;;;;;;611:4324:80;;-1:-1:-1;;;;611:4324:80;;;;;-1:-1:-1;611:4324:80;;5142:14:25;;611:4324:80;;5142:14:25;611:4324:80;4979:67:25;-1:-1:-1;;;;;;;;;;;611:4324:80;;-1:-1:-1;;;;611:4324:80;-1:-1:-1;;;611:4324:80;;;718:4:69;:::i;4851:91:25:-;611:4324:80;;-1:-1:-1;;;4908:23:25;;611:4324:80;;4908:23:25;4855:30;4872:13;;;4855:30;;;4790:50;4818:4;4810:25;:30;;-1:-1:-1;4790:50:25;;4726:34;;;-1:-1:-1;4726:34:25;;611:4324:80;;;;;;-1:-1:-1;;611:4324:80;;;;;;;1253:6:76;611:4324:80;;;;;;;;;-1:-1:-1;;611:4324:80;;;;;;;;-1:-1:-1;;;;;611:4324:80;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;611:4324:80;;;;;;;:::o;:::-;;:::i;:::-;;;;;;;-1:-1:-1;;;;;611:4324:80;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;611:4324:80;;;;;;;:::o;:::-;;;;;;;:::i;:::-;:::o;:::-;-1:-1:-1;;;;;611:4324:80;;;;;;-1:-1:-1;;611:4324:80;;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;611:4324:80;;;;;;;;;;;;;;:::o;:::-;;;;;;-1:-1:-1;;611:4324:80;;;;;;;;;;;;;;;-1:-1:-1;;;;;611:4324:80;;;;;;;1955:60;611:4324;;;;;;:::i;:::-;;;;-1:-1:-1;611:4324:80;1955:13;611:4324;;;-1:-1:-1;611:4324:80;1955:60;:::i;611:4324::-;;;;;;-1:-1:-1;;611:4324:80;;;;;;;1356:26:76;611:4324:80;;;;;;;;;-1:-1:-1;;611:4324:80;;;;;;;885:35;611:4324;;;;;;;;;-1:-1:-1;;611:4324:80;;;;;;;;-1:-1:-1;;;;;611:4324:80;;;;;;;;;;;;;;-1:-1:-1;;611:4324:80;;;;;;989:42;-1:-1:-1;;;;;611:4324:80;;;;;;;;;;;;-1:-1:-1;;611:4324:80;;;;;;3901:31:23;611:4324:80;;;;;:::i;:::-;;;-1:-1:-1;611:4324:80;-1:-1:-1;;;;;;;;;;;611:4324:80;;;-1:-1:-1;611:4324:80;;;;;;;;;;;;;;;;;3901:31:23;611:4324:80;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;611:4324:80;;;;-1:-1:-1;611:4324:80;;;477:31:75;611:4324:80;;;;;;:::i;:::-;;;;;;;;;;;;;;;416:25:75;;;;611:4324:80;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;-1:-1:-1;611:4324:80;;;;;;;;;;;;;477:31:75;;611:4324:80;;;;;;;;;;:::i;:::-;477:31:75;611:4324:80;;477:31:75;;;;;;:::i;:::-;518:79;;;611:4324:80;518:79:75;;611:4324:80;;;;;;;;;;;-1:-1:-1;;611:4324:80;;;;;;;;;;;;;;;;;-1:-1:-1;;611:4324:80;;;;;;;-1:-1:-1;;;;;404:28:69;611:4324:80;;;;;;;;;;-1:-1:-1;;611:4324:80;;;;;;1439:41:76;-1:-1:-1;;;;;611:4324:80;;;;;;;;;;;;-1:-1:-1;;611:4324:80;;;;;;-1:-1:-1;611:4324:80;2009:67:76;611:4324:80;;;;-1:-1:-1;611:4324:80;;;;;;;;;;;;;;-1:-1:-1;;611:4324:80;;;;5767:26:23;611:4324:80;;;;;;;:::i;:::-;;-1:-1:-1;611:4324:80;-1:-1:-1;;;;;;;;;;;611:4324:80;;3202:4:23;4919:24;611:4324:80;-1:-1:-1;611:4324:80;4919:24:23;611:4324:80;3202:4:23;:::i;:::-;5767:26;:::i;611:4324:80:-;;;;;;-1:-1:-1;;611:4324:80;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;-1:-1:-1;;;;;611:4324:80;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;-1:-1:-1;;611:4324:80;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;-1:-1:-1;;;;;611:4324:80;;;;;;;;;;;;:::i;:::-;3217:103:28;;:::i;:::-;-1:-1:-1;611:4324:80;;;5246:21:76;;:13;;-1:-1:-1;;;;;611:4324:80;5246:13:76;611:4324:80;;-1:-1:-1;;;;;611:4324:80;;;5246:21:76;611:4324:80;;-1:-1:-1;;;5246:23:76;;611:4324:80;;;;;5246:23:76;;;;;;;-1:-1:-1;5246:23:76;;;611:4324:80;-1:-1:-1;;;;;;611:4324:80;;;5232:10:76;:37;5228:87;;5341:4;611:4324:80;-1:-1:-1;;;;;611:4324:80;;;;5355:469:76;;611:4324:80;-1:-1:-1;;611:4324:80;;;;;;;;;;;;;;;;5839:55:76;;611:4324:80;;;;5839:55:76;;;;3282:1:28;1805;-1:-1:-1;;;;;;;;;;;611:4324:80;3716:283:28;5355:469:76;611:4324:80;;;;5435:94:76;;;;611:4324:80;5435:94:76;;;;;;;;;;;;611:4324:80;5435:94:76;;;:::i;:::-;;611:4324:80;;5435:94:76;;;;;;:::i;:::-;611:4324:80;5548:9:76;:51;5544:118;;-1:-1:-1;5839:55:76;5676:138;;;;5839:55;5676:138;;;1150:7;5676:138;;5355:469;;;5544:118;611:4324:80;;-1:-1:-1;;;5626:21:76;;611:4324:80;;5626:21:76;5228:87;611:4324:80;;-1:-1:-1;;;5292:12:76;;611:4324:80;;5292:12:76;5246:23;;;;;611:4324:80;5246:23:76;611:4324:80;5246:23:76;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;611:4324:80;;;;;;-1:-1:-1;;611:4324:80;;;;;;;;-1:-1:-1;;;;;611:4324:80;;;;;;;;;;;;;;-1:-1:-1;;611:4324:80;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;-1:-1:-1;;611:4324:80;;;;;;;1150:7:76;611:4324:80;;;;;;;;;-1:-1:-1;;611:4324:80;;;;;;;2700:1:76;611:4324:80;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;1827:195;;1955:60;1827:195;;-1:-1:-1;611:4324:80;1955:13;611:4324;;;-1:-1:-1;611:4324:80;1955:60;:::i;:::-;1827:195;:::o;611:4324::-;;;;;;;;;;;;;;;;;-1:-1:-1;611:4324:80;;;;;;;;-1:-1:-1;;611:4324:80;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;611:4324:80;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;;;;611:4324:80;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::o;:::-;-1:-1:-1;;;;;611:4324:80;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;2764:920:76:-;;2978:48;2764:920;;;;2978:48;;;;:::i;:::-;3036:36;;;611:4324:80;;:::i;:::-;;;;3086:20:76;3082:107;;2764:920;3216:11;;;;:193;;;;;2764:920;3216:394;;;;2764:920;3199:455;;;;;;2764:920;:::o;3199:455::-;3635:8;-1:-1:-1;3635:8:76;:::o;3216:394::-;3553:39;;;;;3430:180;3553:39;;;611:4324:80;;;;;;;;;;3430:180:76;;467:2:88;611:4324:80;3430:180:76;;;;;:::i;:::-;;611:4324:80;3444:31:76;-1:-1:-1;;;;;611:4324:80;3430:180:76;;;;;;;-1:-1:-1;3430:180:76;;;3216:394;3429:181;;3216:394;;;;;;3430:180;;;;3553:39;3430:180;3553:39;3430:180;;;;;;;:::i;:::-;;;;3216:193;-1:-1:-1;611:4324:80;;;-1:-1:-1;;;;;;611:4324:80;3248:161:76;3354:37;;;611:4324:80;3248:161:76;611:4324:80;;;;;;;;;;3248:161:76;;;;;;;:::i;:::-;;611:4324:80;3262:29:76;-1:-1:-1;;;;;611:4324:80;3248:161:76;;;;;;;-1:-1:-1;3248:161:76;;;3216:193;3247:162;;3216:193;;;3248:161;;;;;;;;;;;;;;:::i;:::-;;;;3082:107;3139:39;;;;;;;;;;;;;:::i;:::-;3082:107;;;;;611:4324:80;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;9856:1:60;611:4324:80;;;;;;;:::o;:::-;;:::i;3740:389:76:-;3918:5;611:4324:80;;;-1:-1:-1;;;3853:71:76;;;-1:-1:-1;;;;;611:4324:80;;;3853:71:76;;;611:4324:80;;;;;;;;3740:389:76;;611:4324:80;3853:71:76;;611:4324:80;;3853:71:76;611:4324:80;;;3867:29:76;611:4324:80;;3853:71:76;;;;;;;3918:5;3853:71;;;3740:389;3852:72;;611:4324:80;;;3852:181:76;;3740:389;3835:242;;;;;;4094:28;;;:::i;3835:242::-;4058:8;;3918:5;4058:8;:::o;3852:181::-;611:4324:80;;3945:88:76;;;-1:-1:-1;;;;;611:4324:80;;3853:71:76;3945:88;;611:4324:80;467:2:88;611:4324:80;;;;;;;;-1:-1:-1;611:4324:80;;;;;;;;3959:31:76;611:4324:80;3945:88:76;;;;;;;3918:5;3945:88;;;3852:181;3944:89;;;3852:181;;;;;3945:88;;;;;;-1:-1:-1;3945:88:76;;;;;;:::i;:::-;;;;;3853:71;;;;;;;;;;;;;;:::i;:::-;;;;4148:103:23;966:10:27;-1:-1:-1;611:4324:80;;;;;;;;;885:35;;611:4324;;3901:31:23;611:4324:80;;4468:23:23;4464:108;;4148:103;:::o;:::-;-1:-1:-1;611:4324:80;;;-1:-1:-1;;;;;;;;;;;611:4324:80;;;;;;;;966:10:27;611:4324:80;;;;;;;;;3901:31:23;611:4324:80;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;611:4324:80;;-1:-1:-1;611:4324:80;;;-1:-1:-1;611:4324:80;:::o;:::-;;:::i;:::-;;;;;-1:-1:-1;;;611:4324:80;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;611:4324:80;;;;;;;;:::o;6246:584:86:-;;;;;6360:12;;;611:4324:80;;;6360:24:86;;6356:75;;6246:584;6474:30;;;;;:::i;:::-;611:4324:80;;;;;;6578:12:86;;;;:::i;:::-;6604:24;;;;6246:584;-1:-1:-1;6600:188:86;;;-1:-1:-1;;;;;611:4324:80;;;;;;;6644:21:86;;;:29;:21;;:::i;:29::-;6798:25;6246:584;:::o;6600:188::-;6753:24;;611:4324:80;;8167:38:60;;-1:-1:-1;;;;;611:4324:80;;;;;8167:38:60;:::i;:::-;6753:24:86;;;:::i;6604:::-;611:4324:80;;;;;;6614:14:86;;-1:-1:-1;6604:24:86;;;6356:75;-1:-1:-1;;;611:4324:80;;;;;;6360:12:86;611:4324:80;;;;;;;:::i;:::-;;;;;;;;;;;;;;6356:75:86;;;3326:384:28;-1:-1:-1;;;;;;;;;;;1847:1:28;611:4324:80;;3526:20:28;3522:88;;1847:1;611:4324:80;;3326:384:28:o;3522:88::-;611:4324:80;;-1:-1:-1;;;3569:30:28;;;;;3701:308:80;;611:4324;-1:-1:-1;611:4324:80;3832:13;611:4324;;;-1:-1:-1;611:4324:80;11124:30:86;;;;:::i;:::-;11173;;;-1:-1:-1;11173:30:86;;;;11182:17;;-1:-1:-1;;;;;611:4324:80;;11182:12:86;;:17;:::i;:::-;611:4324:80;;;3832:13;611:4324;;11173:30:86;3890::80;;;11173::86;3886:117:80;;;;3701:308;;:::o;3886:117::-;3936:56;611:4324;-1:-1:-1;611:4324:80;3832:13;611:4324;;;-1:-1:-1;611:4324:80;819:34:62;837:15;819:34;:::i;3936:56:80:-;3701:308;;:::o;3890:30::-;3900:20;;-1:-1:-1;3890:30:80;;;;11173::86;;;-1:-1:-1;11173:30:86;;7270:387:23;-1:-1:-1;;;;;611:4324:80;;-1:-1:-1;611:4324:80;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2887:71:23;611:4324:80;;;;-1:-1:-1;611:4324:80;;;;;;;;;;;-1:-1:-1;;;;;611:4324:80;;;;;;;;;;-1:-1:-1;;611:4324:80;7509:4:23;611:4324:80;;;966:10:27;;-1:-1:-1;;;;;611:4324:80;-1:-1:-1;7532:40:23;-1:-1:-1;;7532:40:23;7509:4;7586:11;:::o;7270:387::-;-1:-1:-1;;;;;611:4324:80;;-1:-1:-1;611:4324:80;;;;;;;;;1356:26:76;;-1:-1:-1;;;;;;;;;;;2887:71:23;611:4324:80;;3901:31:23;611:4324:80;;;;-1:-1:-1;611:4324:80;;;;;;;;;;;-1:-1:-1;;;;;611:4324:80;;;;;;;;;;-1:-1:-1;;611:4324:80;7509:4:23;611:4324:80;;;966:10:27;;-1:-1:-1;;;;;611:4324:80;;7532:40:23;-1:-1:-1;;7532:40:23;7509:4;7586:11;:::o;7432:219::-;7628:12;;;-1:-1:-1;7628:12:23;:::o;7270:387::-;-1:-1:-1;;;;;611:4324:80;;-1:-1:-1;611:4324:80;;;;;;;;;885:35;;-1:-1:-1;;;;;;;;;;;2887:71:23;611:4324:80;;3901:31:23;611:4324:80;7270:387:23;-1:-1:-1;611:4324:80;;;-1:-1:-1;;;;;;;;;;;611:4324:80;;;;;;;;-1:-1:-1;;;;;611:4324:80;;;;;;;;;;;;3901:31:23;611:4324:80;7892:388:23;-1:-1:-1;611:4324:80;;;-1:-1:-1;;;;;;;;;;;611:4324:80;;;;;;;;-1:-1:-1;;;;;611:4324:80;;;;;;;;;;;;;;;;-1:-1:-1;611:4324:80;;;;;;;;;;;-1:-1:-1;;;;;611:4324:80;;;;;;;;;;-1:-1:-1;;611:4324:80;;;966:10:27;;-1:-1:-1;;;;;611:4324:80;;8155:40:23;-1:-1:-1;;8155:40:23;611:4324:80;8209:11:23;:::o;10580:184:86:-;611:4324:80;;10303:8:60;;;:63;-1:-1:-1;10303:63:60;-1:-1:-1;;;;;611:4324:80;;10726:7:86;611:4324:80;;10736:12:86;:17;:12;;:17;:::i;:::-;611:4324:80;;;;;;10580:184:86;:::o;10303:63:60:-;611:4324:80;;;;;;;;;;14249:109:60;-1:-1:-1;14249:109:60;;-1:-1:-1;14249:109:60;;;611:4324:80;;;10303:63:60;;611:4324:80;;;;;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;611:4324:80;;;;;;;;:::i;5907:716:76:-;6030:34;5907:716;6030:34;;;;:::i;:::-;611:4324:80;;-1:-1:-1;;;6080:41:76;;-1:-1:-1;;;;;611:4324:80;;;6080:41:76;;;611:4324:80;;;;;6080:41:76;611:4324:80;;;6090:13:76;611:4324:80;;6080:41:76;;;;;;;-1:-1:-1;6080:41:76;;;5907:716;6079:42;;6075:90;;6266:27;611:4324:80;2540:111:28;6210:14:76;611:4324:80;2540:111:28;;;:::i;:::-;611:4324:80;;;;;;-1:-1:-1;;;;;611:4324:80;;-1:-1:-1;611:4324:80;;;-1:-1:-1;611:4324:80;;6210:14:76;6266:27;:::i;:::-;6080:41;6311:15;;611:4324:80;;;;-1:-1:-1;;;;;;611:4324:80;-1:-1:-1;;;;;611:4324:80;;;;;;;;;;;-1:-1:-1;;;;;611:4324:80;;;;6337:143:76;;5907:716;-1:-1:-1;6493:28:76;611:4324:80;-1:-1:-1;;;;;611:4324:80;;;;;;;6489:128:76;;5907:716;:::o;6489:128::-;6551:55;;;:::i;:::-;;5907:716::o;6337:143::-;6404:65;;;:::i;:::-;;6337:143;;;6075:90;611:4324:80;;-1:-1:-1;;;6144:10:76;;6080:41;;6144:10;6080:41;;;;;;;;;;;;;;:::i;:::-;;;;611:4324:80;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;:::o;7558:604:86:-;;611:4324:80;;7686:17:86;7682:83;;611:4324:80;7789:27:86;611:4324:80;7789:27:86;611:4324:80;;7789:27:86;;;;;;:::i;:::-;7860:14;;;;;:::i;:::-;611:4324:80;;;;;;;;;;;;;;;;7888:22:86;;;7884:77;;7975:21;-1:-1:-1;7975:84:86;;;;7558:604;7971:139;;;;8127:28;;;;:::i;7971:139::-;8082:17;;7789:27;8082:17;611:4324:80;8075:24:86;:::o;7975:84::-;611:4324:80;;;8009:16:86;611:4324:80;;8009:16:86;:::i;:::-;611:4324:80;;;8001:24:86;:57;;;;;7975:84;;;;;;;8001:57;8029:29;8038:8;;;8029:18;8038:8;8029:23;8038:8;;:::i;:::-;8029:18;;:::i;:::-;611:4324:80;;;;;8029:23:86;611:4324:80;;;;8029:29:86;;8001:57;;;;7884:77;7933:17;;;;;7789:27;7933:17;611:4324:80;7926:24:86;:::o;7682:83::-;7726:28;;;;:::i;611:4324:80:-;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;;;;611:4324:80;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;:::i;2737:699::-;;;;;611:4324;;:::i;:::-;;;;2978:16;2974:92;;2737:699;-1:-1:-1;;3080:8:80;611:4324;-1:-1:-1;;;;;611:4324:80;;;;;3080:21;3076:85;;-1:-1:-1;611:4324:80;3218:67;;611:4324;;3257:27;;3218;;:13;;-1:-1:-1;;;;;611:4324:80;3218:13;611:4324;3218:27;3257;;;;611:4324;;;;;;;;;;;3218:67;;;3080:8;3218:67;;;:::i;:::-;;;;;;;;;;3192:192;3218:67;-1:-1:-1;3218:67:80;;;2737:699;3341:28;3303:67;3341:28;;611:4324;3341:28;;;3303:67;;:::i;:::-;3192:192;;:::i;:::-;3398:21;;2737:699;:::o;3218:67::-;3303;3218;;;;3257:27;3218:67;3257:27;3218:67;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;3076:85;-1:-1:-1;;3128:21:80;;-1:-1:-1;;3117:33:80:o;2974:92::-;3024:31;;;;;;;;;;;;;:::i;:::-;2974:92;;;;;3442:253;3552:8;611:4324;-1:-1:-1;;;;;611:4324:80;;;;;;;3552:21;3548:60;;3634:27;3552:8;611:4324;-1:-1:-1;611:4324:80;;;;;;;;;;;3634:27;;;;;;;;;3625:63;3634:27;-1:-1:-1;3634:27:80;;;3442:253;2193:25;;:34;:25;611:4324;;2193:13;611:4324;;;;;;;2193:25;:34;:::i;3634:27::-;2193:34;3634:27;;;;2193:25;3634:27;;;;;;;;;;;:::i;:::-;;;;;;14291:213:58;611:4324:80;14369:24:58;;;;14365:103;;611:4324:80;14291:213:58;:::o;14365:103::-;611:4324:80;;;;14416:41:58;;;;;;14447:2;14416:41;;;611:4324:80;;;;;14416:41:58;611:4324:80;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::o;10552:388:60:-;611:4324:80;;10728:8:60;;;10752:20;;10690:17;10752:20;10690:17;10752:20;10690:17;10752:20;:::o;10724:210::-;611:4324:80;;;;;;;;;;;14249:109:60;10690:17;14249:109;;10690:17;14249:109;;;611:4324:80;:::i;:::-;;;;;;;14249:109:60;611:4324:80;;;;;10911:11:60;;611:4324:80;;10886:37:60;10870:1;10886:37;;;:::o;6893:76:25:-;;;:::i;:::-;;;:::i;:::-;1805:1:28;-1:-1:-1;;;;;;;;;;;611:4324:80;6893:76:25:o;611:4324:80:-;;;;;;;:::i;:::-;-1:-1:-1;611:4324:80;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;-1:-1:-1;;;;;611:4324:80;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;611:4324:80;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::o;4015:918::-;611:4324;;:::i;:::-;;4163:30;611:4324;;4163:30;;;;;;;;;;;:::i;:::-;4208:17;;611:4324;-1:-1:-1;;;;;611:4324:80;;4208:17;611:4324;;4208:54;;:103;;4015:918;4204:161;;4418:15;;;;611:4324;;;;-1:-1:-1;;;4380:54:80;;-1:-1:-1;;;;;611:4324:80;;;4380:54;;;;611:4324;;;;4380:54;4418:15;;;;611:4324;;;;;;;;4390:17;611:4324;4380:54;;;;;;;4208:17;4380:54;;;4015:918;4379:55;;4375:106;;4496:9;;4511:33;;;4208:17;4553:3;4511:33;;611:4324;;4507:44;;;;;4576:36;;;:50;:36;;:::i;:::-;611:4324;-1:-1:-1;;;;;611:4324:80;;;4576:50;;4572:119;;4709:73;4710:72;4745:36;;:33;;;:36;:::i;:::-;4710:72;:::i;:::-;4709:73;;611:4324;4709:73;4705:140;;611:4324;;4496:9;;4705:140;611:4324;;-1:-1:-1;;;4809:21:80;;611:4324;;4809:21;4572:119;611:4324;;-1:-1:-1;;;4653:23:80;;611:4324;;4653:23;4507:44;-1:-1:-1;;611:4324:80;;4380:54;611:4324;;-1:-1:-1;;;;;;611:4324:80;-1:-1:-1;;;;;611:4324:80;;;;;;;;;;-1:-1:-1;4865:26:80;;-1:-1:-1;;611:4324:80;4865:26;4909:17;4015:918;:::o;4375:106::-;4418:15;611:4324;-1:-1:-1;;;4457:13:80;;4380:54;;4457:13;4380:54;;;;;;;;;;;;;;:::i;:::-;;;;4204:161;611:4324;;-1:-1:-1;;;4334:20:80;;;;;4208:103;4266:33;;;;;611:4324;4266:45;4208:103;;6999:207:86;;611:4324:80;;9594:15:60;-1:-1:-1;9619:18:60;9652:7;9658:1;9652:7;;9648:234;;6999:207:86;9906:53:60;;;;;:::i;:::-;9977:8;;;:63;-1:-1:-1;9977:63:60;;-1:-1:-1;;;;;611:4324:80;;7168:7:86;611:4324:80;;;7178:12:86;;:17;:12;;:17;:::i;9977:63:60:-;9992:41;10025:7;9992:48;10025:7;;:::i;:::-;9992:41;14249:109;;;;;;14099:265;;9992:41;611:4324:80;;;;;9992:48:60;9977:63;;;9648:234;9695:14;;;;;:::i;:::-;611:4324:80;;;;;;;9906:53:60;14249:109;;-1:-1:-1;14249:109:60;611:4324:80;14249:109:60;;;-1:-1:-1;14249:109:60;;611:4324:80;;;;;9727:48:60;9723:149;611:4324:80;;;9795:10:60;9723:149;9648:234;;9723:149;9850:7;;;;;;:::i;:::-;9723:149;9648:234;;611:4324:80;;;;;;;:::i;:::-;-1:-1:-1;611:4324:80;;;;;;;:::o;11486:272:86:-;;611:4324:80;11308:22:60;11718:31:86;11486:272;611:4324:80;;:::i;:::-;;;;:::i;:::-;;11308:22:60;;:::i;:::-;611:4324:80;;:::i;:::-;;11718:12:86;611:4324:80;;;;;11731:17:86;611:4324:80;;;;;11731:17:86;;611:4324:80;;11718:12:86;;:31;:::i;:::-;611:4324:80;;;;;;;;;:::i;:::-;;;;;;11731:17:86;11672:79;;611:4324:80;11486:272:86;:::o;2557:104:57:-;;2641:5;;;;;;:13;2557:104;:::o;2641:13::-;;;2557:104;:::o;611:4324:80:-;;;-1:-1:-1;;;611:4324:80;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;611:4324:80;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;11513:870:60;611:4324:80;;11513:870:60;;;611:4324:80;11513:870:60;11672:7;;;;611:4324:80;11775:28:60;11795:7;;;:::i;11775:28::-;611:4324:80;:::i;:::-;;;;;;;;;;;;;;;;11877:15:60;-1:-1:-1;11873:91:60;;611:4324:80;;12233:11:60;611:4324:80;;;12027:16:60;611:4324:80;;;;;;;12027:16:60;;;;12083:7;12063:43;12083:7;;12063:28;12083:7;;:::i;:::-;12063:28;14249:109;;;;;;14099:265;;12063:28;611:4324:80;;;;;;;;;;;;;;;;;12063:43:60;12233:11;611:4324:80;-1:-1:-1;;;;;611:4324:80;;;12023:189:60;611:4324:80;;;12145:52:60;611:4324:80;12155:41:60;611:4324:80;;:::i;:::-;;;;;;;;12155:41:60;-1:-1:-1;;;;;611:4324:80;;12155:41:60;;;611:4324:80;12145:52:60;:::i;:::-;12023:189;;11873:91;611:4324:80;;-1:-1:-1;;;11919:30:60;;;;;11668:709;12283:52;611:4324:80;;12293:41:60;611:4324:80;;:::i;12293:41:60:-;-1:-1:-1;;;;;611:4324:80;;12293:41:60;;;611:4324:80;12145:52:60;:::i;12283:::-;11678:1;12349:17;;:::o;7084:141:25:-;611:4324:80;-1:-1:-1;;;;;;;;;;;611:4324:80;;;;7150:18:25;7146:73;;7084:141::o;7146:73::-;611:4324:80;;-1:-1:-1;;;7191:17:25;;;;;8587:1642:57;8658:6;;8654:45;;9401:7;10201:10;10142:26;10093;10044;9995;9946;9897;9848;611:4324:80;10189:23:57;9401:7;8663:1;611:4324:80;;;;10826:16:57;10822:99;;8587:1642;611:4324:80;;;;10938:15:57;10934:96;;8587:1642;611:4324:80;;;;11047:15:57;11043:96;;8587:1642;611:4324:80;;;;11156:15:57;11152:96;;8587:1642;611:4324:80;;;;11265:14:57;11261:93;;8587:1642;611:4324:80;;;;11371:14:57;11367:93;;8587:1642;611:4324:80;;;;11477:14:57;11473:93;;8587:1642;611:4324:80;;;11579:64:57;;8587:1642;611:4324:80;;;9858:10:57;;;;:::i;:::-;611:4324:80;;;;;9848:26:57;9907:10;;;;:::i;9897:26::-;9956:10;;;;:::i;9946:26::-;10005:10;;;;:::i;9995:26::-;10054:10;;;;:::i;10044:26::-;10103:10;;;;:::i;10093:26::-;10152:10;;;;:::i;10142:26::-;10201:10;;;:::i;11579:64::-;611:4324:80;;11579:64:57;;11473:93;611:4324:80;11511:11:57;;611:4324:80;;11473:93:57;;;;11367;611:4324:80;11405:11:57;;611:4324:80;;11367:93:57;;;;11261;611:4324:80;11299:11:57;;611:4324:80;;11261:93:57;;;;11152:96;611:4324:80;11191:12:57;;611:4324:80;;11152:96:57;;;;11043;611:4324:80;11082:12:57;;611:4324:80;;11043:96:57;;;;10934;611:4324:80;10973:12:57;;611:4324:80;;10934:96:57;;;;10822:99;10862:13;;;611:4324:80;10822:99:57;;;;12736:433:60;;;12919:10;;;;;;13151:11;;;12736:433;:::o;12912:230::-;2900:5:57;;;;;;2910;;;;611:4324:80;;;;;;;;;14249:109:60;-1:-1:-1;14249:109:60;611:4324:80;14249:109:60;;;-1:-1:-1;14249:109:60;;611:4324:80;;;;;-1:-1:-1;12996:136:60;611:4324:80;;;13055:10:60;12996:136;;12912:230;;;;12996:136;13110:7;;;;;;:::i;:::-;12996:136;;","linkReferences":{},"immutableReferences":{"57808":[{"start":1514,"length":32}],"57811":[{"start":3348,"length":32}],"58762":[{"start":1129,"length":32},{"start":3405,"length":32}],"58765":[{"start":863,"length":32},{"start":6996,"length":32}],"58768":[{"start":931,"length":32},{"start":4918,"length":32},{"start":5253,"length":32}],"58771":[{"start":999,"length":32},{"start":4765,"length":32},{"start":5379,"length":32}],"60687":[{"start":2964,"length":32},{"start":8772,"length":32}]}},"methodIdentifiers":{"DEFAULT_ADMIN_ROLE()":"a217fddf","FACTORY()":"2dd31000","HOOK_GAS_LIMIT()":"ff54740f","HOOK_RESERVE()":"557cab44","HOOK_SET_ROLE()":"6679191e","NETWORK_LIMIT_SET_ROLE()":"7d24bb27","NETWORK_REGISTRY()":"c0cd7c3e","OPERATOR_NETWORK_OPT_IN_SERVICE()":"1a80e500","OPERATOR_REGISTRY()":"83ce0322","OPERATOR_VAULT_OPT_IN_SERVICE()":"128e5d82","TYPE()":"bb24fe8a","VAULT_FACTORY()":"103f2907","VERSION()":"ffa1ad74","getRoleAdmin(bytes32)":"248a9ca3","grantRole(bytes32,address)":"2f2ff15d","hasRole(bytes32,address)":"91d14854","hook()":"7f5a7c7b","initialize(bytes)":"439fab91","maxNetworkLimit(bytes32)":"d15b740e","networkLimit(bytes32)":"3eb22c0f","networkLimitAt(bytes32,uint48,bytes)":"5d32a1c9","onSlash(bytes32,address,uint256,uint48,bytes)":"e49561ee","operator()":"570ca735","renounceRole(bytes32,address)":"36568abe","revokeRole(bytes32,address)":"d547741f","setHook(address)":"3dfd3873","setMaxNetworkLimit(uint96,uint256)":"23f752d5","setNetworkLimit(bytes32,uint256)":"02145348","stake(bytes32,address)":"fd4d447c","stakeAt(bytes32,address,uint48,bytes)":"e02f6937","staticDelegateCall(address,bytes)":"9f86fd85","supportsInterface(bytes4)":"01ffc9a7","vault()":"fbfa77cf"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operatorRegistry\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"networkRegistry\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"vaultFactory\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operatorVaultOptInService\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operatorNetworkOptInService\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"delegatorFactory\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"entityType\",\"type\":\"uint64\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"AccessControlBadConfirmation\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"neededRole\",\"type\":\"bytes32\"}],\"name\":\"AccessControlUnauthorizedAccount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AlreadySet\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CheckpointUnorderedInsertion\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"DuplicateRoleHolder\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ExceedsMaxNetworkLimit\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientHookGas\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MissingRoleHolders\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotNetwork\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotOperator\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotSlasher\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotVault\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ReentrancyGuardReentrantCall\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"bits\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"SafeCastOverflowedUintDowncast\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ZeroAddressRoleHolder\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint48\",\"name\":\"captureTimestamp\",\"type\":\"uint48\"}],\"name\":\"OnSlash\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"previousAdminRole\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"newAdminRole\",\"type\":\"bytes32\"}],\"name\":\"RoleAdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleRevoked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"hook\",\"type\":\"address\"}],\"name\":\"SetHook\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"SetMaxNetworkLimit\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"SetNetworkLimit\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DEFAULT_ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"FACTORY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"HOOK_GAS_LIMIT\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"HOOK_RESERVE\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"HOOK_SET_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"NETWORK_LIMIT_SET_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"NETWORK_REGISTRY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"OPERATOR_NETWORK_OPT_IN_SERVICE\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"OPERATOR_REGISTRY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"OPERATOR_VAULT_OPT_IN_SERVICE\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"TYPE\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"VAULT_FACTORY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"VERSION\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleAdmin\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"grantRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"hook\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"}],\"name\":\"maxNetworkLimit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"}],\"name\":\"networkLimit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hint\",\"type\":\"bytes\"}],\"name\":\"networkLimitAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint48\",\"name\":\"captureTimestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"onSlash\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"operator\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"callerConfirmation\",\"type\":\"address\"}],\"name\":\"renounceRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"hook_\",\"type\":\"address\"}],\"name\":\"setHook\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint96\",\"name\":\"identifier\",\"type\":\"uint96\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"setMaxNetworkLimit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"setNetworkLimit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"stake\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hints\",\"type\":\"bytes\"}],\"name\":\"stakeAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"staticDelegateCall\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"vault\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"AccessControlBadConfirmation()\":[{\"details\":\"The caller of a function is not the expected one. NOTE: Don't confuse with {AccessControlUnauthorizedAccount}.\"}],\"AccessControlUnauthorizedAccount(address,bytes32)\":[{\"details\":\"The `account` is missing a role.\"}],\"CheckpointUnorderedInsertion()\":[{\"details\":\"A value was attempted to be inserted on a past checkpoint.\"}],\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"ReentrancyGuardReentrantCall()\":[{\"details\":\"Unauthorized reentrant call.\"}],\"SafeCastOverflowedUintDowncast(uint8,uint256)\":[{\"details\":\"Value doesn't fit in an uint of `bits` size.\"}]},\"events\":{\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"OnSlash(bytes32,address,uint256,uint48)\":{\"params\":{\"amount\":\"amount of the collateral to be slashed\",\"captureTimestamp\":\"time point when the stake was captured\",\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"}},\"RoleAdminChanged(bytes32,bytes32,bytes32)\":{\"details\":\"Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole` `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite {RoleAdminChanged} not being emitted signaling this.\"},\"RoleGranted(bytes32,address,address)\":{\"details\":\"Emitted when `account` is granted `role`. `sender` is the account that originated the contract call, an admin role bearer except when using {AccessControl-_setupRole}.\"},\"RoleRevoked(bytes32,address,address)\":{\"details\":\"Emitted when `account` is revoked `role`. `sender` is the account that originated the contract call: - if using `revokeRole`, it is the admin role bearer - if using `renounceRole`, it is the role bearer (i.e. `account`)\"},\"SetHook(address)\":{\"params\":{\"hook\":\"address of the hook\"}},\"SetMaxNetworkLimit(bytes32,uint256)\":{\"params\":{\"amount\":\"new maximum subnetwork's limit (how much stake the subnetwork is ready to get)\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"}},\"SetNetworkLimit(bytes32,uint256)\":{\"params\":{\"amount\":\"new subnetwork's limit (how much stake the vault curator is ready to give to the subnetwork)\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"}}},\"kind\":\"dev\",\"methods\":{\"VERSION()\":{\"details\":\"Must return 1 for this one.\",\"returns\":{\"_0\":\"version of the delegator\"}},\"getRoleAdmin(bytes32)\":{\"details\":\"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}.\"},\"grantRole(bytes32,address)\":{\"details\":\"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event.\"},\"hasRole(bytes32,address)\":{\"details\":\"Returns `true` if `account` has been granted `role`.\"},\"initialize(bytes)\":{\"params\":{\"data\":\"some data to use\"}},\"networkLimit(bytes32)\":{\"params\":{\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"},\"returns\":{\"_0\":\"limit of the subnetwork\"}},\"networkLimitAt(bytes32,uint48,bytes)\":{\"params\":{\"hint\":\"hint for checkpoint index\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\",\"timestamp\":\"time point to get the subnetwork limit at\"},\"returns\":{\"_0\":\"limit of the subnetwork at the given timestamp\"}},\"onSlash(bytes32,address,uint256,uint48,bytes)\":{\"details\":\"Only the vault's slasher can call this function.\",\"params\":{\"amount\":\"amount of the collateral slashed\",\"captureTimestamp\":\"time point when the stake was captured\",\"data\":\"some additional data\",\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"}},\"renounceRole(bytes32,address)\":{\"details\":\"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `callerConfirmation`. May emit a {RoleRevoked} event.\"},\"revokeRole(bytes32,address)\":{\"details\":\"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event.\"},\"setHook(address)\":{\"details\":\"Only a HOOK_SET_ROLE holder can call this function. The hook can have arbitrary logic under certain functions, however, it doesn't affect the stake guarantees.\",\"params\":{\"hook\":\"address of the hook\"}},\"setMaxNetworkLimit(uint96,uint256)\":{\"details\":\"Only a network can call this function.\",\"params\":{\"amount\":\"new maximum subnetwork's limit\"}},\"setNetworkLimit(bytes32,uint256)\":{\"details\":\"Only a NETWORK_LIMIT_SET_ROLE holder can call this function.\",\"params\":{\"amount\":\"new limit of the subnetwork\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"}},\"stake(bytes32,address)\":{\"details\":\"Warning: this function is not safe to use for stake capturing, as it can change by the end of the block.\",\"params\":{\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"},\"returns\":{\"_0\":\"slashable stake until the end of the next epoch\"}},\"stakeAt(bytes32,address,uint48,bytes)\":{\"details\":\"Warning: it is not safe to use timestamp >= current one for the stake capturing, as it can change later.\",\"params\":{\"hints\":\"hints for the checkpoints' indexes\",\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\",\"timestamp\":\"time point to capture the stake at\"},\"returns\":{\"_0\":\"slashable stake at the given timestamp until the end of the consequent epoch\"}},\"staticDelegateCall(address,bytes)\":{\"details\":\"It allows to use this contract's storage on-chain.\",\"params\":{\"data\":\"data to make a delegatecall with\",\"target\":\"address of the contract to make a delegatecall to\"}},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"}},\"stateVariables\":{\"NETWORK_LIMIT_SET_ROLE\":{\"return\":\"identifier of the subnetwork limit setter role\",\"returns\":{\"_0\":\"identifier of the subnetwork limit setter role\"}},\"OPERATOR_REGISTRY\":{\"return\":\"address of the operator registry\",\"returns\":{\"_0\":\"address of the operator registry\"}},\"operator\":{\"return\":\"address of the operator\",\"returns\":{\"_0\":\"address of the operator\"}}},\"version\":1},\"userdoc\":{\"events\":{\"OnSlash(bytes32,address,uint256,uint48)\":{\"notice\":\"Emitted when a slash happens.\"},\"SetHook(address)\":{\"notice\":\"Emitted when a hook is set.\"},\"SetMaxNetworkLimit(bytes32,uint256)\":{\"notice\":\"Emitted when a subnetwork's maximum limit is set.\"},\"SetNetworkLimit(bytes32,uint256)\":{\"notice\":\"Emitted when a subnetwork's limit is set.\"}},\"kind\":\"user\",\"methods\":{\"FACTORY()\":{\"notice\":\"Get the factory's address.\"},\"HOOK_GAS_LIMIT()\":{\"notice\":\"Get a gas limit for the hook.\"},\"HOOK_RESERVE()\":{\"notice\":\"Get a reserve gas between the gas limit check and the hook's execution.\"},\"HOOK_SET_ROLE()\":{\"notice\":\"Get a hook setter's role.\"},\"NETWORK_LIMIT_SET_ROLE()\":{\"notice\":\"Get a subnetwork limit setter's role.\"},\"NETWORK_REGISTRY()\":{\"notice\":\"Get the network registry's address.\"},\"OPERATOR_NETWORK_OPT_IN_SERVICE()\":{\"notice\":\"Get the operator-network opt-in service's address.\"},\"OPERATOR_REGISTRY()\":{\"notice\":\"Get the operator registry's address.\"},\"OPERATOR_VAULT_OPT_IN_SERVICE()\":{\"notice\":\"Get the operator-vault opt-in service's address.\"},\"TYPE()\":{\"notice\":\"Get the entity's type.\"},\"VAULT_FACTORY()\":{\"notice\":\"Get the vault factory's address.\"},\"VERSION()\":{\"notice\":\"Get a version of the delegator (different versions mean different interfaces).\"},\"hook()\":{\"notice\":\"Get the hook's address.\"},\"initialize(bytes)\":{\"notice\":\"Initialize this entity contract by using a given data.\"},\"maxNetworkLimit(bytes32)\":{\"notice\":\"Get a particular subnetwork's maximum limit (meaning the subnetwork is not ready to get more as a stake).\"},\"networkLimit(bytes32)\":{\"notice\":\"Get a subnetwork's limit (how much stake the vault curator is ready to give to the subnetwork).\"},\"networkLimitAt(bytes32,uint48,bytes)\":{\"notice\":\"Get a subnetwork's limit at a given timestamp using a hint (how much stake the vault curator is ready to give to the subnetwork).\"},\"onSlash(bytes32,address,uint256,uint48,bytes)\":{\"notice\":\"Called when a slash happens.\"},\"operator()\":{\"notice\":\"Get an operator managing the vault's funds.\"},\"setHook(address)\":{\"notice\":\"Set a new hook.\"},\"setMaxNetworkLimit(uint96,uint256)\":{\"notice\":\"Set a maximum limit for a subnetwork (how much stake the subnetwork is ready to get). identifier identifier of the subnetwork\"},\"setNetworkLimit(bytes32,uint256)\":{\"notice\":\"Set a subnetwork's limit (how much stake the vault curator is ready to give to the subnetwork).\"},\"stake(bytes32,address)\":{\"notice\":\"Get a stake that a given subnetwork will be able to slash for a certain operator until the end of the next epoch (if no cross-slashing and no slashings by the subnetwork).\"},\"stakeAt(bytes32,address,uint48,bytes)\":{\"notice\":\"Get a stake that a given subnetwork could be able to slash for a certain operator at a given timestamp until the end of the consequent epoch using hints (if no cross-slashing and no slashings by the subnetwork).\"},\"staticDelegateCall(address,bytes)\":{\"notice\":\"Make a delegatecall from this contract to a given target contract with a particular data (always reverts with a return data).\"},\"vault()\":{\"notice\":\"Get the vault's address.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/contracts/delegator/OperatorSpecificDelegator.sol\":\"OperatorSpecificDelegator\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol\":{\"keccak256\":\"0x6662ec4e5cefca03eeadd073e9469df8d2944bb2ee8ec8f7622c2c46aab5f225\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4d8544c6f8daa4d1bc215c6a72fe0acdb748664a105b0e5efc19295667521d45\",\"dweb:/ipfs/QmdGWqdnXT8S3RgCR6aV8XHZrsybieMQLLnug1NtpSjEXN\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609\",\"dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9\",\"dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardUpgradeable.sol\":{\"keccak256\":\"0xb44e086e941292cdc7f440de51478493894ef0b1aeccb0c4047445919f667f74\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://942dad22fbdc1669f025540ba63aa3ccfad5f8458fc5d4525b31ebf272e7af45\",\"dweb:/ipfs/Qmdo4X2M82aM3AMoW2kf2jhYkSCyC4T1pHNd6obdsDFnAB\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol\":{\"keccak256\":\"0xdaba3f7c42c55b2896353f32bd27d4d5f8bae741b3b05d4c53f67abc4dc47ce8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1fa2e61141c602510bcd2cd936ed9561922ac8772a9b9c9a9db091a74e354a45\",\"dweb:/ipfs/QmcHQDDoEBwJmwUbzoVkytvJsBx3KVHYFFnDkvRGWh9Wmh\"]},\"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0xb6b36edd6a2999fd243ff226d6cbf84bd71af2432bbd0dfe19392996a1d9cb41\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1fd2f35495652e57e3f99bc6c510bc5f7dd398a176ea2e72d8ed730aebc6ca26\",\"dweb:/ipfs/QmTQV6X4gkikTib49cho5iDX3JvSQbdsoEChoDwrk3CbbH\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875\",\"dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0xe19a4d5f31d2861e7344e8e535e2feafb913d806d3e2b5fe7782741a2a7094fe\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4aed79c0fa6f0546ed02f2f683e8f77f0fd2ed7eb34d8bbf3d373c9a6d95b13c\",\"dweb:/ipfs/QmWqVz6UAVqmnWU5pqYPt1o6iDEZyPaBraAA3rKfTTSfYj\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/Checkpoints.sol\":{\"keccak256\":\"0xbdc5e074d7dd6678f67e92b1a51a20226801a407b0e1af3da367c5d1ff4519ad\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a36cca6b22fff3db16fc789ff6c60eea71d4b156065d4d0c83a0bc5e91a77a8b\",\"dweb:/ipfs/QmYN3exd5AemxjBrN8XMB1p5LbbE16uC3sjbYjwi8AjcGR\"]},\"lib/openzeppelin-contracts/contracts/utils/types/Time.sol\":{\"keccak256\":\"0xc7755af115020049e4140f224f9ee88d7e1799ffb0646f37bf0df24bf6213f58\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7f09bf94d5274334ec021f61a04659db303f31e60460e14b709c9bf187740111\",\"dweb:/ipfs/QmNvgomZYUwFAt4cZbPWAiTeSZQreGehY9BK5xyVJsUttb\"]},\"src/contracts/common/Entity.sol\":{\"keccak256\":\"0x3d61a932995b8443381f3950542d388223a2c26dd5d29a3274dea3baa7388bd7\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://7cdf5f03ca72fd263fd32ff59c8d88ddca911ae83896a287d10772c1bbe9b138\",\"dweb:/ipfs/QmbP84r5BWT1Rn9AYTntWSf3xUMTTCohTZJFhbBhDXFoHa\"]},\"src/contracts/common/StaticDelegateCallable.sol\":{\"keccak256\":\"0x350029aa8955eacaffffaeb58babc5c98e80ebc5c5db388ed17ee6465f4a9d90\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://eb392a8ee9050e0af606897df63e3404e3829e8b688b580663892f9664195764\",\"dweb:/ipfs/QmaXC8jqV8UrrAFkzXTEv2fJF56sy33HhLxAzaRZmUxuXD\"]},\"src/contracts/delegator/BaseDelegator.sol\":{\"keccak256\":\"0x7c54d491fdd4415b764a9c8defa068e56d4c0c8c9419be0053a1d377669290e8\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://9238bfbad0f6eeb0dc7727724de14380f1980b395902269703d5e2ef07e52e10\",\"dweb:/ipfs/QmPJn1V4HNXcEghYvogGuSTF24dSQUPosR5qtsXcmNqRm3\"]},\"src/contracts/delegator/OperatorSpecificDelegator.sol\":{\"keccak256\":\"0x630ce62fa30b9f3349ab7a8cf8dbf041319febc6dd757be2f94d3d25944ed328\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://c2ac59d47ce57d2a6819ae9833e1a618a371eccff93eb5ab367b201b01f42bfa\",\"dweb:/ipfs/QmdBpGMBivpNPv2WbH8vnCUy5xkVeaxQvGgqi33vKCz1kA\"]},\"src/contracts/libraries/Checkpoints.sol\":{\"keccak256\":\"0xba90097c8bfe0a975499428b5f8ac5569483c7d92ccc28c12d70de416aae040c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://12f5d93ca94cd06d3147db68993165a58e17903ed53682560de61f3085ad4609\",\"dweb:/ipfs/QmePiuAqvXprMLmFZkGZeGjvGPAvsEDHfCDv7BoQhXu9xE\"]},\"src/contracts/libraries/Subnetwork.sol\":{\"keccak256\":\"0xf5ef5506fd66082b3c2e7f3df37529f5a8efad32ac62e7c8914bd63219190bfe\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba031a54ee0d0e9a270c2b9e18437f5668cfeb659cfd5fe0677459d7fcac2a56\",\"dweb:/ipfs/QmReP3H7qQ78tAfgLnJKsNEQNCQfF1X1Get38Ffd4kzq32\"]},\"src/interfaces/common/IEntity.sol\":{\"keccak256\":\"0x8ef4b63d6da63489778ccd5f8d13ebdd527dd4b62730b2c616df5af7474d2d21\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a8d69576a9219d85c50816a18ad53a4d53cfcb27ed38b8cccc808dc2734b71b\",\"dweb:/ipfs/QmYVN3P4Q4REvBWJ97TbAcaxm3uyB2anV6NSGa6ZtSwcEv\"]},\"src/interfaces/common/IMigratableEntity.sol\":{\"keccak256\":\"0x8f5f2809f3afbe8ebfbb365dd7b57b4dd3b6f9943a6187eaf648d45895b8e3c4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ffe640537d539e7a4fde70d30d3e4c57f4ba9c2c25c450cea713aae38e8fd5c\",\"dweb:/ipfs/QmSUTGzvdcn1R1KB7tLThMRtESsfPbeXDhhhKWGtntzBds\"]},\"src/interfaces/common/IRegistry.sol\":{\"keccak256\":\"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014\",\"dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK\"]},\"src/interfaces/common/IStaticDelegateCallable.sol\":{\"keccak256\":\"0xa335d4e81b9071b7de66ef92b43ff20671d86516eb1be46fef29a3483cd3f5d5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d464b9db863c14c05547d2b23352f2e9b7b784799cf09f6bbc4906a2a74e3516\",\"dweb:/ipfs/QmUVWzFvJz7eEbDQKiFTTzwi7TEbjcs3VmwdM4kuptAKvi\"]},\"src/interfaces/delegator/IBaseDelegator.sol\":{\"keccak256\":\"0x96bb312f032e17accce3f8f80936d99468029d6b37c9ca74acdb4b026a0148ee\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2a66dcb5b7d1a6ef6a363431ea98ebd78bc4fdd3d7a134d9b542dc66e7d025c2\",\"dweb:/ipfs/QmRhTPLd2ZAyRHmJUFUcWKs9b3if49QY17LYZuRqWmghw8\"]},\"src/interfaces/delegator/IDelegatorHook.sol\":{\"keccak256\":\"0xc51aa8d7d1f6c8043ee819b7aeb86da0e993912e1442098df897e299f01f9f46\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://adddf5cb2ba282aeb576b26efb28640f865a1721cc9b6eee8b3ee0457a2c9780\",\"dweb:/ipfs/QmNYgAmnLRwWZbhTuQhZs9rx4zcme1df5mEepkrniorSoW\"]},\"src/interfaces/delegator/IOperatorSpecificDelegator.sol\":{\"keccak256\":\"0x72075cab585dc17240cc3e32bc99b92f0d5627ddd988fed680e3e1a52d5a01e4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7448bc90699409ae61d85216b5efc2143a37f0f73354be2aea993bc54afca441\",\"dweb:/ipfs/QmXE4gAxM8pHosZK8mcTcj17puBx484meDCcmrDePskGHZ\"]},\"src/interfaces/service/IOptInService.sol\":{\"keccak256\":\"0x76fb5460a6d87a5705433d4fbeff7253cd75b8bbd0c888b2088f16e86ace146a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://990322019b3d11465f7024bae77ccbf7e2fe5d6fa3c754584778f37d04fa1337\",\"dweb:/ipfs/QmaSNHzcqxTkUCG9a4nqVfLECHLdjdrwAnDi3yDC7tDL24\"]},\"src/interfaces/vault/IVault.sol\":{\"keccak256\":\"0xffee01d383cd4e1a5530c614bf4360c1ef070c288abec9da1eb531b51bc07235\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://04f0046cac285d8ec44ebbb1f79dc94fab4495767190cad8364fbc1fafaadfb9\",\"dweb:/ipfs/QmUawAunwzXfCyShWfhKeThAgKtqe51hmrxvrXvM772M2R\"]},\"src/interfaces/vault/IVaultStorage.sol\":{\"keccak256\":\"0x592626f13754194f83047135de19229c49390bd59e34659b1bb38be71d973a22\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://06a6a9dfddd05e580b32bebe2cff4f63ba26a653180676d58225dd30d9c89d3e\",\"dweb:/ipfs/QmdgzBeY6Sxo8mGtyBxtv1tM1c2kU6J6zjeRd7vuXm4DU6\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.25+commit.b61c2a91"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"operatorRegistry","type":"address"},{"internalType":"address","name":"networkRegistry","type":"address"},{"internalType":"address","name":"vaultFactory","type":"address"},{"internalType":"address","name":"operatorVaultOptInService","type":"address"},{"internalType":"address","name":"operatorNetworkOptInService","type":"address"},{"internalType":"address","name":"delegatorFactory","type":"address"},{"internalType":"uint64","name":"entityType","type":"uint64"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"AccessControlBadConfirmation"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bytes32","name":"neededRole","type":"bytes32"}],"type":"error","name":"AccessControlUnauthorizedAccount"},{"inputs":[],"type":"error","name":"AlreadySet"},{"inputs":[],"type":"error","name":"CheckpointUnorderedInsertion"},{"inputs":[],"type":"error","name":"DuplicateRoleHolder"},{"inputs":[],"type":"error","name":"ExceedsMaxNetworkLimit"},{"inputs":[],"type":"error","name":"InsufficientHookGas"},{"inputs":[],"type":"error","name":"InvalidInitialization"},{"inputs":[],"type":"error","name":"MissingRoleHolders"},{"inputs":[],"type":"error","name":"NotInitialized"},{"inputs":[],"type":"error","name":"NotInitializing"},{"inputs":[],"type":"error","name":"NotNetwork"},{"inputs":[],"type":"error","name":"NotOperator"},{"inputs":[],"type":"error","name":"NotSlasher"},{"inputs":[],"type":"error","name":"NotVault"},{"inputs":[],"type":"error","name":"ReentrancyGuardReentrantCall"},{"inputs":[{"internalType":"uint8","name":"bits","type":"uint8"},{"internalType":"uint256","name":"value","type":"uint256"}],"type":"error","name":"SafeCastOverflowedUintDowncast"},{"inputs":[],"type":"error","name":"ZeroAddressRoleHolder"},{"inputs":[{"internalType":"uint64","name":"version","type":"uint64","indexed":false}],"type":"event","name":"Initialized","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32","indexed":true},{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false},{"internalType":"uint48","name":"captureTimestamp","type":"uint48","indexed":false}],"type":"event","name":"OnSlash","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"bytes32","name":"previousAdminRole","type":"bytes32","indexed":true},{"internalType":"bytes32","name":"newAdminRole","type":"bytes32","indexed":true}],"type":"event","name":"RoleAdminChanged","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"address","name":"sender","type":"address","indexed":true}],"type":"event","name":"RoleGranted","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"address","name":"sender","type":"address","indexed":true}],"type":"event","name":"RoleRevoked","anonymous":false},{"inputs":[{"internalType":"address","name":"hook","type":"address","indexed":true}],"type":"event","name":"SetHook","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"SetMaxNetworkLimit","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"SetNetworkLimit","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"DEFAULT_ADMIN_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"FACTORY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"HOOK_GAS_LIMIT","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"HOOK_RESERVE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"HOOK_SET_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"NETWORK_LIMIT_SET_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"NETWORK_REGISTRY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"OPERATOR_NETWORK_OPT_IN_SERVICE","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"OPERATOR_REGISTRY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"OPERATOR_VAULT_OPT_IN_SERVICE","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"TYPE","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"VAULT_FACTORY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"VERSION","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getRoleAdmin","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"grantRole"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"hasRole","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"hook","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"}],"stateMutability":"view","type":"function","name":"maxNetworkLimit","outputs":[{"internalType":"uint256","name":"value","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"}],"stateMutability":"view","type":"function","name":"networkLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"uint48","name":"timestamp","type":"uint48"},{"internalType":"bytes","name":"hint","type":"bytes"}],"stateMutability":"view","type":"function","name":"networkLimitAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint48","name":"captureTimestamp","type":"uint48"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"onSlash"},{"inputs":[],"stateMutability":"view","type":"function","name":"operator","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"callerConfirmation","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"renounceRole"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"revokeRole"},{"inputs":[{"internalType":"address","name":"hook_","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setHook"},{"inputs":[{"internalType":"uint96","name":"identifier","type":"uint96"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setMaxNetworkLimit"},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setNetworkLimit"},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"stake","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint48","name":"timestamp","type":"uint48"},{"internalType":"bytes","name":"hints","type":"bytes"}],"stateMutability":"view","type":"function","name":"stakeAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"staticDelegateCall"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"vault","outputs":[{"internalType":"address","name":"","type":"address"}]}],"devdoc":{"kind":"dev","methods":{"VERSION()":{"details":"Must return 1 for this one.","returns":{"_0":"version of the delegator"}},"getRoleAdmin(bytes32)":{"details":"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}."},"grantRole(bytes32,address)":{"details":"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event."},"hasRole(bytes32,address)":{"details":"Returns `true` if `account` has been granted `role`."},"initialize(bytes)":{"params":{"data":"some data to use"}},"networkLimit(bytes32)":{"params":{"subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"},"returns":{"_0":"limit of the subnetwork"}},"networkLimitAt(bytes32,uint48,bytes)":{"params":{"hint":"hint for checkpoint index","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)","timestamp":"time point to get the subnetwork limit at"},"returns":{"_0":"limit of the subnetwork at the given timestamp"}},"onSlash(bytes32,address,uint256,uint48,bytes)":{"details":"Only the vault's slasher can call this function.","params":{"amount":"amount of the collateral slashed","captureTimestamp":"time point when the stake was captured","data":"some additional data","operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"}},"renounceRole(bytes32,address)":{"details":"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `callerConfirmation`. May emit a {RoleRevoked} event."},"revokeRole(bytes32,address)":{"details":"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event."},"setHook(address)":{"details":"Only a HOOK_SET_ROLE holder can call this function. The hook can have arbitrary logic under certain functions, however, it doesn't affect the stake guarantees.","params":{"hook":"address of the hook"}},"setMaxNetworkLimit(uint96,uint256)":{"details":"Only a network can call this function.","params":{"amount":"new maximum subnetwork's limit"}},"setNetworkLimit(bytes32,uint256)":{"details":"Only a NETWORK_LIMIT_SET_ROLE holder can call this function.","params":{"amount":"new limit of the subnetwork","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"}},"stake(bytes32,address)":{"details":"Warning: this function is not safe to use for stake capturing, as it can change by the end of the block.","params":{"operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"},"returns":{"_0":"slashable stake until the end of the next epoch"}},"stakeAt(bytes32,address,uint48,bytes)":{"details":"Warning: it is not safe to use timestamp >= current one for the stake capturing, as it can change later.","params":{"hints":"hints for the checkpoints' indexes","operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)","timestamp":"time point to capture the stake at"},"returns":{"_0":"slashable stake at the given timestamp until the end of the consequent epoch"}},"staticDelegateCall(address,bytes)":{"details":"It allows to use this contract's storage on-chain.","params":{"data":"data to make a delegatecall with","target":"address of the contract to make a delegatecall to"}},"supportsInterface(bytes4)":{"details":"See {IERC165-supportsInterface}."}},"version":1},"userdoc":{"kind":"user","methods":{"FACTORY()":{"notice":"Get the factory's address."},"HOOK_GAS_LIMIT()":{"notice":"Get a gas limit for the hook."},"HOOK_RESERVE()":{"notice":"Get a reserve gas between the gas limit check and the hook's execution."},"HOOK_SET_ROLE()":{"notice":"Get a hook setter's role."},"NETWORK_LIMIT_SET_ROLE()":{"notice":"Get a subnetwork limit setter's role."},"NETWORK_REGISTRY()":{"notice":"Get the network registry's address."},"OPERATOR_NETWORK_OPT_IN_SERVICE()":{"notice":"Get the operator-network opt-in service's address."},"OPERATOR_REGISTRY()":{"notice":"Get the operator registry's address."},"OPERATOR_VAULT_OPT_IN_SERVICE()":{"notice":"Get the operator-vault opt-in service's address."},"TYPE()":{"notice":"Get the entity's type."},"VAULT_FACTORY()":{"notice":"Get the vault factory's address."},"VERSION()":{"notice":"Get a version of the delegator (different versions mean different interfaces)."},"hook()":{"notice":"Get the hook's address."},"initialize(bytes)":{"notice":"Initialize this entity contract by using a given data."},"maxNetworkLimit(bytes32)":{"notice":"Get a particular subnetwork's maximum limit (meaning the subnetwork is not ready to get more as a stake)."},"networkLimit(bytes32)":{"notice":"Get a subnetwork's limit (how much stake the vault curator is ready to give to the subnetwork)."},"networkLimitAt(bytes32,uint48,bytes)":{"notice":"Get a subnetwork's limit at a given timestamp using a hint (how much stake the vault curator is ready to give to the subnetwork)."},"onSlash(bytes32,address,uint256,uint48,bytes)":{"notice":"Called when a slash happens."},"operator()":{"notice":"Get an operator managing the vault's funds."},"setHook(address)":{"notice":"Set a new hook."},"setMaxNetworkLimit(uint96,uint256)":{"notice":"Set a maximum limit for a subnetwork (how much stake the subnetwork is ready to get). identifier identifier of the subnetwork"},"setNetworkLimit(bytes32,uint256)":{"notice":"Set a subnetwork's limit (how much stake the vault curator is ready to give to the subnetwork)."},"stake(bytes32,address)":{"notice":"Get a stake that a given subnetwork will be able to slash for a certain operator until the end of the next epoch (if no cross-slashing and no slashings by the subnetwork)."},"stakeAt(bytes32,address,uint48,bytes)":{"notice":"Get a stake that a given subnetwork could be able to slash for a certain operator at a given timestamp until the end of the consequent epoch using hints (if no cross-slashing and no slashings by the subnetwork)."},"staticDelegateCall(address,bytes)":{"notice":"Make a delegatecall from this contract to a given target contract with a particular data (always reverts with a return data)."},"vault()":{"notice":"Get the vault's address."}},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/contracts/delegator/OperatorSpecificDelegator.sol":"OperatorSpecificDelegator"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol":{"keccak256":"0x6662ec4e5cefca03eeadd073e9469df8d2944bb2ee8ec8f7622c2c46aab5f225","urls":["bzz-raw://4d8544c6f8daa4d1bc215c6a72fe0acdb748664a105b0e5efc19295667521d45","dweb:/ipfs/QmdGWqdnXT8S3RgCR6aV8XHZrsybieMQLLnug1NtpSjEXN"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b","urls":["bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609","dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol":{"keccak256":"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397","urls":["bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9","dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardUpgradeable.sol":{"keccak256":"0xb44e086e941292cdc7f440de51478493894ef0b1aeccb0c4047445919f667f74","urls":["bzz-raw://942dad22fbdc1669f025540ba63aa3ccfad5f8458fc5d4525b31ebf272e7af45","dweb:/ipfs/Qmdo4X2M82aM3AMoW2kf2jhYkSCyC4T1pHNd6obdsDFnAB"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol":{"keccak256":"0xdaba3f7c42c55b2896353f32bd27d4d5f8bae741b3b05d4c53f67abc4dc47ce8","urls":["bzz-raw://1fa2e61141c602510bcd2cd936ed9561922ac8772a9b9c9a9db091a74e354a45","dweb:/ipfs/QmcHQDDoEBwJmwUbzoVkytvJsBx3KVHYFFnDkvRGWh9Wmh"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol":{"keccak256":"0xb6b36edd6a2999fd243ff226d6cbf84bd71af2432bbd0dfe19392996a1d9cb41","urls":["bzz-raw://1fd2f35495652e57e3f99bc6c510bc5f7dd398a176ea2e72d8ed730aebc6ca26","dweb:/ipfs/QmTQV6X4gkikTib49cho5iDX3JvSQbdsoEChoDwrk3CbbH"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b","urls":["bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df","dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d","urls":["bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875","dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol":{"keccak256":"0xe19a4d5f31d2861e7344e8e535e2feafb913d806d3e2b5fe7782741a2a7094fe","urls":["bzz-raw://4aed79c0fa6f0546ed02f2f683e8f77f0fd2ed7eb34d8bbf3d373c9a6d95b13c","dweb:/ipfs/QmWqVz6UAVqmnWU5pqYPt1o6iDEZyPaBraAA3rKfTTSfYj"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/Checkpoints.sol":{"keccak256":"0xbdc5e074d7dd6678f67e92b1a51a20226801a407b0e1af3da367c5d1ff4519ad","urls":["bzz-raw://a36cca6b22fff3db16fc789ff6c60eea71d4b156065d4d0c83a0bc5e91a77a8b","dweb:/ipfs/QmYN3exd5AemxjBrN8XMB1p5LbbE16uC3sjbYjwi8AjcGR"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/types/Time.sol":{"keccak256":"0xc7755af115020049e4140f224f9ee88d7e1799ffb0646f37bf0df24bf6213f58","urls":["bzz-raw://7f09bf94d5274334ec021f61a04659db303f31e60460e14b709c9bf187740111","dweb:/ipfs/QmNvgomZYUwFAt4cZbPWAiTeSZQreGehY9BK5xyVJsUttb"],"license":"MIT"},"src/contracts/common/Entity.sol":{"keccak256":"0x3d61a932995b8443381f3950542d388223a2c26dd5d29a3274dea3baa7388bd7","urls":["bzz-raw://7cdf5f03ca72fd263fd32ff59c8d88ddca911ae83896a287d10772c1bbe9b138","dweb:/ipfs/QmbP84r5BWT1Rn9AYTntWSf3xUMTTCohTZJFhbBhDXFoHa"],"license":"BUSL-1.1"},"src/contracts/common/StaticDelegateCallable.sol":{"keccak256":"0x350029aa8955eacaffffaeb58babc5c98e80ebc5c5db388ed17ee6465f4a9d90","urls":["bzz-raw://eb392a8ee9050e0af606897df63e3404e3829e8b688b580663892f9664195764","dweb:/ipfs/QmaXC8jqV8UrrAFkzXTEv2fJF56sy33HhLxAzaRZmUxuXD"],"license":"BUSL-1.1"},"src/contracts/delegator/BaseDelegator.sol":{"keccak256":"0x7c54d491fdd4415b764a9c8defa068e56d4c0c8c9419be0053a1d377669290e8","urls":["bzz-raw://9238bfbad0f6eeb0dc7727724de14380f1980b395902269703d5e2ef07e52e10","dweb:/ipfs/QmPJn1V4HNXcEghYvogGuSTF24dSQUPosR5qtsXcmNqRm3"],"license":"BUSL-1.1"},"src/contracts/delegator/OperatorSpecificDelegator.sol":{"keccak256":"0x630ce62fa30b9f3349ab7a8cf8dbf041319febc6dd757be2f94d3d25944ed328","urls":["bzz-raw://c2ac59d47ce57d2a6819ae9833e1a618a371eccff93eb5ab367b201b01f42bfa","dweb:/ipfs/QmdBpGMBivpNPv2WbH8vnCUy5xkVeaxQvGgqi33vKCz1kA"],"license":"BUSL-1.1"},"src/contracts/libraries/Checkpoints.sol":{"keccak256":"0xba90097c8bfe0a975499428b5f8ac5569483c7d92ccc28c12d70de416aae040c","urls":["bzz-raw://12f5d93ca94cd06d3147db68993165a58e17903ed53682560de61f3085ad4609","dweb:/ipfs/QmePiuAqvXprMLmFZkGZeGjvGPAvsEDHfCDv7BoQhXu9xE"],"license":"MIT"},"src/contracts/libraries/Subnetwork.sol":{"keccak256":"0xf5ef5506fd66082b3c2e7f3df37529f5a8efad32ac62e7c8914bd63219190bfe","urls":["bzz-raw://ba031a54ee0d0e9a270c2b9e18437f5668cfeb659cfd5fe0677459d7fcac2a56","dweb:/ipfs/QmReP3H7qQ78tAfgLnJKsNEQNCQfF1X1Get38Ffd4kzq32"],"license":"MIT"},"src/interfaces/common/IEntity.sol":{"keccak256":"0x8ef4b63d6da63489778ccd5f8d13ebdd527dd4b62730b2c616df5af7474d2d21","urls":["bzz-raw://5a8d69576a9219d85c50816a18ad53a4d53cfcb27ed38b8cccc808dc2734b71b","dweb:/ipfs/QmYVN3P4Q4REvBWJ97TbAcaxm3uyB2anV6NSGa6ZtSwcEv"],"license":"MIT"},"src/interfaces/common/IMigratableEntity.sol":{"keccak256":"0x8f5f2809f3afbe8ebfbb365dd7b57b4dd3b6f9943a6187eaf648d45895b8e3c4","urls":["bzz-raw://0ffe640537d539e7a4fde70d30d3e4c57f4ba9c2c25c450cea713aae38e8fd5c","dweb:/ipfs/QmSUTGzvdcn1R1KB7tLThMRtESsfPbeXDhhhKWGtntzBds"],"license":"MIT"},"src/interfaces/common/IRegistry.sol":{"keccak256":"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb","urls":["bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014","dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK"],"license":"MIT"},"src/interfaces/common/IStaticDelegateCallable.sol":{"keccak256":"0xa335d4e81b9071b7de66ef92b43ff20671d86516eb1be46fef29a3483cd3f5d5","urls":["bzz-raw://d464b9db863c14c05547d2b23352f2e9b7b784799cf09f6bbc4906a2a74e3516","dweb:/ipfs/QmUVWzFvJz7eEbDQKiFTTzwi7TEbjcs3VmwdM4kuptAKvi"],"license":"MIT"},"src/interfaces/delegator/IBaseDelegator.sol":{"keccak256":"0x96bb312f032e17accce3f8f80936d99468029d6b37c9ca74acdb4b026a0148ee","urls":["bzz-raw://2a66dcb5b7d1a6ef6a363431ea98ebd78bc4fdd3d7a134d9b542dc66e7d025c2","dweb:/ipfs/QmRhTPLd2ZAyRHmJUFUcWKs9b3if49QY17LYZuRqWmghw8"],"license":"MIT"},"src/interfaces/delegator/IDelegatorHook.sol":{"keccak256":"0xc51aa8d7d1f6c8043ee819b7aeb86da0e993912e1442098df897e299f01f9f46","urls":["bzz-raw://adddf5cb2ba282aeb576b26efb28640f865a1721cc9b6eee8b3ee0457a2c9780","dweb:/ipfs/QmNYgAmnLRwWZbhTuQhZs9rx4zcme1df5mEepkrniorSoW"],"license":"MIT"},"src/interfaces/delegator/IOperatorSpecificDelegator.sol":{"keccak256":"0x72075cab585dc17240cc3e32bc99b92f0d5627ddd988fed680e3e1a52d5a01e4","urls":["bzz-raw://7448bc90699409ae61d85216b5efc2143a37f0f73354be2aea993bc54afca441","dweb:/ipfs/QmXE4gAxM8pHosZK8mcTcj17puBx484meDCcmrDePskGHZ"],"license":"MIT"},"src/interfaces/service/IOptInService.sol":{"keccak256":"0x76fb5460a6d87a5705433d4fbeff7253cd75b8bbd0c888b2088f16e86ace146a","urls":["bzz-raw://990322019b3d11465f7024bae77ccbf7e2fe5d6fa3c754584778f37d04fa1337","dweb:/ipfs/QmaSNHzcqxTkUCG9a4nqVfLECHLdjdrwAnDi3yDC7tDL24"],"license":"MIT"},"src/interfaces/vault/IVault.sol":{"keccak256":"0xffee01d383cd4e1a5530c614bf4360c1ef070c288abec9da1eb531b51bc07235","urls":["bzz-raw://04f0046cac285d8ec44ebbb1f79dc94fab4495767190cad8364fbc1fafaadfb9","dweb:/ipfs/QmUawAunwzXfCyShWfhKeThAgKtqe51hmrxvrXvM772M2R"],"license":"MIT"},"src/interfaces/vault/IVaultStorage.sol":{"keccak256":"0x592626f13754194f83047135de19229c49390bd59e34659b1bb38be71d973a22","urls":["bzz-raw://06a6a9dfddd05e580b32bebe2cff4f63ba26a653180676d58225dd30d9c89d3e","dweb:/ipfs/QmdgzBeY6Sxo8mGtyBxtv1tM1c2kU6J6zjeRd7vuXm4DU6"],"license":"MIT"}},"version":1},"id":80} \ No newline at end of file +{"abi":[{"type":"constructor","inputs":[{"name":"operatorRegistry","type":"address","internalType":"address"},{"name":"networkRegistry","type":"address","internalType":"address"},{"name":"vaultFactory","type":"address","internalType":"address"},{"name":"operatorVaultOptInService","type":"address","internalType":"address"},{"name":"operatorNetworkOptInService","type":"address","internalType":"address"},{"name":"delegatorFactory","type":"address","internalType":"address"},{"name":"entityType","type":"uint64","internalType":"uint64"}],"stateMutability":"nonpayable"},{"type":"function","name":"DEFAULT_ADMIN_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"FACTORY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"HOOK_GAS_LIMIT","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"HOOK_RESERVE","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"HOOK_SET_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"NETWORK_LIMIT_SET_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"NETWORK_REGISTRY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"OPERATOR_NETWORK_OPT_IN_SERVICE","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"OPERATOR_REGISTRY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"OPERATOR_VAULT_OPT_IN_SERVICE","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"TYPE","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"VAULT_FACTORY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"VERSION","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"pure"},{"type":"function","name":"getRoleAdmin","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"grantRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"hasRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"hook","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"initialize","inputs":[{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"maxNetworkLimit","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"value","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"networkLimit","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"networkLimitAt","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"timestamp","type":"uint48","internalType":"uint48"},{"name":"hint","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"onSlash","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"captureTimestamp","type":"uint48","internalType":"uint48"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"operator","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"renounceRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"callerConfirmation","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"revokeRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setHook","inputs":[{"name":"hook_","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setMaxNetworkLimit","inputs":[{"name":"identifier","type":"uint96","internalType":"uint96"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setNetworkLimit","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"stake","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"stakeAt","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"timestamp","type":"uint48","internalType":"uint48"},{"name":"hints","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"staticDelegateCall","inputs":[{"name":"target","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"vault","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"OnSlash","inputs":[{"name":"subnetwork","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"captureTimestamp","type":"uint48","indexed":false,"internalType":"uint48"}],"anonymous":false},{"type":"event","name":"RoleAdminChanged","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"previousAdminRole","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"newAdminRole","type":"bytes32","indexed":true,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"RoleGranted","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"sender","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"RoleRevoked","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"sender","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"SetHook","inputs":[{"name":"hook","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"SetMaxNetworkLimit","inputs":[{"name":"subnetwork","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"SetNetworkLimit","inputs":[{"name":"subnetwork","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"error","name":"AccessControlBadConfirmation","inputs":[]},{"type":"error","name":"AccessControlUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"neededRole","type":"bytes32","internalType":"bytes32"}]},{"type":"error","name":"AlreadySet","inputs":[]},{"type":"error","name":"CheckpointUnorderedInsertion","inputs":[]},{"type":"error","name":"DuplicateRoleHolder","inputs":[]},{"type":"error","name":"ExceedsMaxNetworkLimit","inputs":[]},{"type":"error","name":"InsufficientHookGas","inputs":[]},{"type":"error","name":"InvalidInitialization","inputs":[]},{"type":"error","name":"MissingRoleHolders","inputs":[]},{"type":"error","name":"NotInitialized","inputs":[]},{"type":"error","name":"NotInitializing","inputs":[]},{"type":"error","name":"NotNetwork","inputs":[]},{"type":"error","name":"NotOperator","inputs":[]},{"type":"error","name":"NotSlasher","inputs":[]},{"type":"error","name":"NotVault","inputs":[]},{"type":"error","name":"ReentrancyGuardReentrantCall","inputs":[]},{"type":"error","name":"SafeCastOverflowedUintDowncast","inputs":[{"name":"bits","type":"uint8","internalType":"uint8"},{"name":"value","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ZeroAddressRoleHolder","inputs":[]}],"bytecode":{"object":"0x610160346101c2576001600160401b0390601f612a7a38819003918201601f191683019190848311848410176101c6578160e092859260409586528339810103126101c25761004d826101da565b9061005a602084016101da565b6100658285016101da565b90610072606086016101da565b9561007f608087016101da565b9560c061008e60a083016101da565b9101519180831683036101c2577ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a009081549060ff82891c166101b157808083160361016d575b50505060805260a05260c05260e052610100938452610120928352610140918252519161288b93846101ef8539608051846105ea015260a05184610d14015260c0518481816104690152610d4d015260e05184818161035f0152611b540152518381816103a30152818161133601526114850152518281816103e70152818161129d0152611503015251818181610b9401526122440152f35b6001600160401b0319909116811790915585519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a15f80806100d4565b875163f92ee8a960e01b8152600490fd5b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b51906001600160a01b03821682036101c25756fe60806040526004361015610011575f80fd5b5f3560e01c806301ffc9a714610224578063021453481461021f578063103f29071461021a578063128e5d82146102155780631a80e5001461021057806323f752d51461020b578063248a9ca3146102065780632dd31000146102015780632f2ff15d146101fc57806336568abe146101f75780633dfd3873146101f25780633eb22c0f146101ed578063439fab91146101e8578063557cab44146101e3578063570ca735146101de5780635d32a1c9146101d95780636679191e146101d45780637d24bb27146101cf5780637f5a7c7b146101ca57806383ce0322146101c557806391d14854146101c05780639f86fd85146101bb578063a217fddf146101b6578063bb24fe8a146101b1578063c0cd7c3e146101ac578063d15b740e146101a7578063d547741f146101a2578063e02f69371461019d578063e49561ee14610198578063fbfa77cf14610193578063fd4d447c1461018e578063ff54740f146101895763ffa1ad7414610184575f80fd5b6110aa565b61108d565b611063565b61103c565b610e51565b610df2565b610da6565b610d7c565b610d38565b610cf5565b610cdb565b610c21565b610bc3565b610b7f565b610b57565b610b1e565b610ae4565b610a89565b61096c565b610950565b610818565b6107ba565b6106c1565b610676565b61062a565b6105d5565b61059c565b610416565b6103d2565b61038e565b61034a565b61027e565b3461027a57602036600319011261027a5760043563ffffffff60e01b811680910361027a57602090637965db0b60e01b8114908115610269575b506040519015158152f35b6301ffc9a760e01b1490505f61025e565b5f80fd5b3461027a5760408060031936011261027a5760043590602435906102a0611578565b825f526002602052805f2054821161033a57825f526003602052816102c6825f20611a9c565b1461032a5781610325916103157e899d104fc3d8820bd96540612bcc5c448c8837b13b9f7faa43ad0728f0c14f94610306875f52600360205260405f2090565b61030f42611fc3565b90611677565b5050519081529081906020820190565b0390a2005b5163a741a04560e01b8152600490fd5b51631eefc06360e31b8152600490fd5b3461027a575f36600319011261027a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461027a575f36600319011261027a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461027a575f36600319011261027a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461027a57604036600319011261027a576004356001600160601b038116810361027a5760243590610446611739565b6040516302910f8b60e31b81523360048201526020816024816001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165afa908115610597575f91610568575b5015610556576001600160601b03166bffffffffffffffffffffffff193360601b161790806104d0835f52600260205260405f2090565b541461054457610529817fc67e7929681aa1bccd63f52b3799bf5805f3009f197db6fdf584b14f7fbf608c9261050e855f52600260205260405f2090565b556105198185611768565b6040519081529081906020820190565b0390a261054260015f8051602061281683398151915255565b005b60405163a741a04560e01b8152600490fd5b6040516323d53b9760e21b8152600490fd5b61058a915060203d602011610590575b61058281836109f8565b8101906110c5565b5f610499565b503d610578565b6110dd565b3461027a57602036600319011261027a576004355f525f805160206127f68339815191526020526020600160405f200154604051908152f35b3461027a575f36600319011261027a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b6001600160a01b0381160361027a57565b3461027a57604036600319011261027a5761054260243560043561064d82610619565b805f525f805160206127f6833981519152602052610671600160405f2001546115d4565b6119d4565b3461027a57604036600319011261027a5760243561069381610619565b336001600160a01b038216036106af5761054290600435611a0a565b60405163334bd91960e11b8152600490fd5b3461027a57602036600319011261027a576004356106de81610619565b6106e6611739565b335f9081527f9ebbcbe0d2961d3fbe56ca6f679bc753bd848d3e6bb3eaf9041c51b286881d2c60205260409020547fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c9060ff161561079c57506001546001600160a01b039182169181168214610544576001600160a01b03191681176001557f5bbb1d3ebb6a3ad2a0f17ff35e579a83af60604d1d3c2a4c83c62adecadf666d5f80a260015f8051602061281683398151915255005b6044906040519063e2517d3f60e01b82523360048301526024820152fd5b3461027a57602036600319011261027a576004355f52600360205260206107e360405f20611a9c565b604051908152f35b9181601f8401121561027a578235916001600160401b03831161027a576020838186019501011161027a57565b3461027a57602036600319011261027a576001600160401b0360043581811161027a576108499036906004016107eb565b5f80516020612836833981519152549260ff8460401c1615931680159081610948575b600114908161093e575b159081610935575b50610923575f80516020612836833981519152805467ffffffffffffffff191660011790556108b191836108ff57611b1f565b6108b757005b5f80516020612836833981519152805460ff60401b19169055604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a1005b5f80516020612836833981519152805460ff60401b1916600160401b179055611b1f565b60405163f92ee8a960e01b8152600490fd5b9050155f61087e565b303b159150610876565b84915061086c565b3461027a575f36600319011261027a576020604051614e208152f35b3461027a575f36600319011261027a576004546040516001600160a01b039091168152602090f35b6064359065ffffffffffff8216820361027a57565b634e487b7160e01b5f52604160045260245ffd5b604081019081106001600160401b038211176109d857604052565b6109a9565b606081019081106001600160401b038211176109d857604052565b90601f801991011681019081106001600160401b038211176109d857604052565b60405190610a26826109bd565b565b6001600160401b0381116109d857601f01601f191660200190565b81601f8201121561027a57803590610a5a82610a28565b92610a6860405194856109f8565b8284526020838301011161027a57815f926020809301838601378301015290565b3461027a57606036600319011261027a5760243565ffffffffffff8116810361027a576044356001600160401b03811161027a57602091610ad16107e3923690600401610a43565b906004355f526003845260405f20611c8e565b3461027a575f36600319011261027a5760206040517fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c8152f35b3461027a575f36600319011261027a5760206040517e8b9b1e5fa9cf3b14f87f435649268146305ddf689f082e5961a335b07a9abf8152f35b3461027a575f36600319011261027a576001546040516001600160a01b039091168152602090f35b3461027a575f36600319011261027a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461027a57604036600319011261027a57602060ff610c15602435610be781610619565b6004355f525f805160206127f6833981519152845260405f209060018060a01b03165f5260205260405f2090565b54166040519015158152f35b3461027a5760408060031936011261027a57600435610c3f81610619565b602435906001600160401b03821161027a575f8091610c65610cc99436906004016107eb565b908187519283928337810184815203915af43d15610cd157610cbb3d610c8a81610a28565b90610c97865192836109f8565b81523d5f602083013e5b845194859315156020850152808401526060830190611101565b03601f1981018352826109f8565b805190602001fd5b610cbb6060610ca1565b3461027a575f36600319011261027a5760206040515f8152f35b3461027a575f36600319011261027a5760206040516001600160401b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461027a575f36600319011261027a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461027a57602036600319011261027a576004355f526002602052602060405f2054604051908152f35b3461027a57604036600319011261027a57610542602435600435610dc982610619565b805f525f805160206127f6833981519152602052610ded600160405f2001546115d4565b611a0a565b3461027a57608036600319011261027a57602435610e0f81610619565b6044359065ffffffffffff8216820361027a57606435906001600160401b03821161027a57602092610e486107e3933690600401610a43565b91600435611227565b3461027a5760a036600319011261027a57602435600435610e7182610619565b60443591610e7d610994565b90608435906001600160401b03821161027a57610e9f60049236908401610a43565b610ea7611739565b5f54602090610ecc90610ec0906001600160a01b031681565b6001600160a01b031690565b60405163b134427160e01b815294859182905afa928315610597575f9361100b575b506001600160a01b039283163303610ff9576001546001600160a01b0316838116610f6e575b50506040805195865265ffffffffffff909316602086015216927f741a5de99085c0d660f3e4192217b0ffb0ea4e35a0480de48e857a4bc3ee36ed91819081015b0390a361054260015f8051602061281683398151915255565b909360405194610fa586610f97602082019363724ab0f760e11b8552858c898d602487016113d1565b03601f1981018852876109f8565b62042e305a10610fe7575f610f55938192827f741a5de99085c0d660f3e4192217b0ffb0ea4e35a0480de48e857a4bc3ee36ed9951926203d090f15093610f14565b604051638072475160e01b8152600490fd5b60405163dabc4ad960e01b8152600490fd5b61102e91935060203d602011611035575b61102681836109f8565b8101906113bc565b915f610eee565b503d61101c565b3461027a575f36600319011261027a575f546040516001600160a01b039091168152602090f35b3461027a57604036600319011261027a5760206107e360243561108581610619565b60043561144e565b3461027a575f36600319011261027a5760206040516203d0908152f35b3461027a575f36600319011261027a57602060405160018152f35b9081602091031261027a5751801515810361027a5790565b6040513d5f823e3d90fd5b906110fe92915f52600360205260405f20611c8e565b90565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b60405190611132826109bd565b60606020838281520152565b81601f8201121561027a5780519061115582610a28565b9261116360405194856109f8565b8284526020838301011161027a57815f9260208093018386015e8301015290565b9060208282031261027a5781516001600160401b039283821161027a57019060408282031261027a57604051926111ba846109bd565b825181811161027a57826111cf91850161113e565b8452602083015190811161027a576111e7920161113e565b602082015290565b6001600160a01b0391821681529116602082015265ffffffffffff90911660408201526080606082018190526110fe92910190611101565b9261123790929192828486611e46565b929093611242611125565b93805180611395575b505084159384156112ff575b841561126e575b505050506112695790565b505f90565b602080949550611299910151604051958694859463530e1d4360e01b865260601c90600486016111ef565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa908115610597575f916112e0575b50155f80808061125e565b6112f9915060203d6020116105905761058281836109f8565b5f6112d5565b5f549094506001600160a01b0316602084865192611332604051948593849363530e1d4360e01b855289600486016111ef565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa908115610597575f91611376575b501593611257565b61138f915060203d6020116105905761058281836109f8565b5f61136e565b6113a9929550602080918301019101611184565b925f8061124b565b5190610a2682610619565b9081602091031261027a57516110fe81610619565b919360a0936110fe969565ffffffffffff938552600180871b0316602085015260408401521660608201528160808201520190611101565b634e487b7160e01b5f52601160045260245ffd5b8115611427570490565b634e487b7160e01b5f52601260045260245ffd5b906001820180921161144957565b611409565b5f546040516308834cb560e21b8082526001600160a01b0385811660048401529283166024830152929392602092909183816044817f000000000000000000000000000000000000000000000000000000000000000086165afa908115610597575f9161155b575b50159182156114d7575b505090506114d1576110fe91611f3b565b50505f90565b6040519081526001600160a01b0385166004820152606086901c602482015291508290829060449082907f0000000000000000000000000000000000000000000000000000000000000000165afa918215610597575f9261153e575b505015805f806114c0565b6115549250803d106105905761058281836109f8565b5f80611533565b6115729150843d86116105905761058281836109f8565b5f6114b6565b335f9081527f72a65082a5691803ab2b62c9bc729b34205ba1b183d950896526b2fd8714d0c7602052604090207e8b9b1e5fa9cf3b14f87f435649268146305ddf689f082e5961a335b07a9abf9060ff905b54161561079c5750565b5f8181525f805160206127f683398151915260209081526040808320338452909152902060ff906115ca565b634e487b7160e01b5f52603260045260245ffd5b8054821015611629575f5260205f2001905f90565b611600565b90815491600160401b8310156109d85782611651916001610a2695018155611614565b90919082549060031b91821b915f19901b1916179055565b5f1981019190821161144957565b90929192600182019081548015611709575b508461169484612019565b509490928454936116a483611a9c565b96816116f4575b50156116d1575050505f1981019081116114495761165185916116cd93611614565b9190565b6116cd9492936116ed926001600160d01b03909116919061251a565b505061162e565b65ffffffffffff83811691161490505f6116ab565b600160401b8110156109d8578060016117259201845583611614565b8154905f199060031b1b191690555f611689565b5f8051602061281683398151915260028154146117565760029055565b604051633ee5aeb560e01b8152600490fd5b90815f52600360205260405f208161177f82612019565b9193905083156117dd5761179f916001600160d01b031690600101611614565b90549060031b1c5b826117d3575b50506117b7575050565b6117cf915f52600360205260405f2061030f42611fc3565b5050565b119050815f6117ad565b50505f6117a7565b6001600160a01b0381165f9081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d60205260409020545f805160206127f68339815191529060ff166114d1575f808052602091825260408082206001600160a01b038516835290925220805460ff1916600117905533906001600160a01b03165f7f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d8180a4600190565b6001600160a01b0381165f9081527f9ebbcbe0d2961d3fbe56ca6f679bc753bd848d3e6bb3eaf9041c51b286881d2c602052604090207fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c905f805160206127f68339815191529060ff905b541661195f575f828152602091825260408082206001600160a01b038616835290925220805460ff1916600117905533916001600160a01b0316907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d5f80a4600190565b5050505f90565b6001600160a01b0381165f9081527f72a65082a5691803ab2b62c9bc729b34205ba1b183d950896526b2fd8714d0c7602052604090207e8b9b1e5fa9cf3b14f87f435649268146305ddf689f082e5961a335b07a9abf905f805160206127f68339815191529060ff906118fb565b5f8181525f805160206127f6833981519152602081815260408084206001600160a01b038716855290915290912060ff906118fb565b5f8181525f805160206127f6833981519152602081815260408084206001600160a01b03871685529091529091205460ff161561195f575f828152602091825260408082206001600160a01b038616835290925220805460ff1916905533916001600160a01b0316907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b5f80a4600190565b805480611acb57505f5b6001600160d01b038116156114d1576001611ac19201611614565b90549060031b1c90565b5f1990808281011161144957825f5260205f2001015460301c611aa6565b91909160408184031261027a578035611b0181610619565b9260208201356001600160401b03811161027a576110fe9201610a43565b611b2b91810190611ae9565b6040516302910f8b60e31b81526001600160a01b039283166004820181905291906020816024817f000000000000000000000000000000000000000000000000000000000000000088165afa908115610597575f91611c3e575b5015611c2c57611bc0604091611bbb611c0694611ba0612068565b60018060a01b03166001600160601b0360a01b5f5416175f55565b6121d4565b6020810151600180546001600160a01b0319166001600160a01b0390921691909117905580516001600160a01b0316848116611c1c575b5001516001600160a01b031690565b908116611c105750565b611c1990611890565b50565b611c25906117e5565b505f611bf7565b6040516362df054560e01b8152600490fd5b611c57915060203d6020116105905761058281836109f8565b5f611b85565b9081602091031261027a575163ffffffff8116810361027a5790565b90600163ffffffff8093160191821161144957565b91805115611d675780602080611ca993518301019101611c5d565b91611cb48382612445565b92611cc5845165ffffffffffff1690565b9065ffffffffffff8085169216828114611d5b5782119182611cfb575b5050611cf2576110fe9250612375565b50506020015190565b909150611d088354611669565b63ffffffff831614918215611d21575b50505f80611ce2565b611d53919250611d3c611d36611d4892611c79565b85612445565b5165ffffffffffff1690565b65ffffffffffff1690565b115f80611d18565b50505050506020015190565b506110fe91612375565b60405190611d7e826109dd565b60606040838281528260208201520152565b9060208282031261027a5781516001600160401b039283821161027a57019060608282031261027a5760405192611dc6846109dd565b825181811161027a5782611ddb91850161113e565b8452602083015181811161027a5782611df591850161113e565b6020850152604083015190811161027a57611e10920161113e565b604082015290565b9081602091031261027a575190565b60409065ffffffffffff6110fe94931681528160208201520190611101565b90939293611e52611d71565b94805180611f1f575b50506004546001600160a01b03918216911603611f17575f54611eb2929190602090611e9190610ec0906001600160a01b031681565b8187015190604051808097819463810da75d60e01b83528860048401611e27565b03915afa90811561059757611edf935f92611ee4575b50611ed991926040870151916110e8565b906124ad565b915190565b611ed99250611f0a9060203d602011611f10575b611f0281836109f8565b810190611e18565b91611ec8565b503d611ef8565b505090515f91565b611f33929650602080918301019101611d90565b935f80611e5b565b6004546001600160a01b0392908316908316036114d15760206004925f54166040519384809263bd49c35f60e01b82525afa908115610597576110fe925f92611f9a575b50611f95611ed9915f52600360205260405f2090565b611a9c565b611ed9919250611fbb611f959160203d602011611f1057611f0281836109f8565b929150611f7f565b65ffffffffffff90818111611fd6571690565b604490604051906306dfcc6560e41b8252603060048301526024820152fd5b90604051612002816109bd565b915465ffffffffffff8116835260301c6020830152565b80548061202a5750505f905f905f90565b5f1990808281011161144957612047925f5260205f200101611ff5565b9065ffffffffffff82511691602060018060d01b0391015116906001929190565b612070612635565b612078612635565b60015f8051602061281683398151915255565b60405190612098826109dd565b5f6040838281528260208201520152565b81601f8201121561027a578051916020916001600160401b0384116109d8578360051b90604051946120dd858401876109f8565b8552838086019282010192831161027a578301905b828210612100575050505090565b838091835161210e81610619565b8152019101906120f2565b60208183031261027a5780516001600160401b039182821161027a5701918281039260a0841261027a57606060405194612152866109dd565b1261027a57604051612163816109dd565b815161216e81610619565b8152602082015161217e81610619565b6020820152604082015161219181610619565b60408201528452606081015192831161027a576121b5608092611e109483016120a9565b6020850152016113b1565b80518210156116295760209160051b010190565b6121dc61208b565b506121f281519160208080948301019101612119565b8051516001600160a01b0393919084161580612369575b612357576040818101805182516302910f8b60e31b81526001600160a01b0390911660048083019190915296929491928690829060249082907f0000000000000000000000000000000000000000000000000000000000000000165afa908115610597575f9161233a575b50156123285791938401915f5b835180518210156122f757610ec061229c836122a9936121c0565b516001600160a01b031690565b156122e7576122cb6122c76122c261229c8488516121c0565b611966565b1590565b6122d757600101612281565b8451635140fefd60e11b81528790fd5b84516323cda06760e01b81528790fd5b50509051600480546001600160a01b0319166001600160a01b039092169190911790559350612324915050565b5190565b604051631f0853c160e21b8152600490fd5b6123519150863d88116105905761058281836109f8565b5f612274565b6040516303501f5960e11b8152600490fd5b50828101515115612209565b908154905f8291600584116123df575b612390935084612796565b806123b857505f905b6001600160d01b038216156114d1576110fe916001611ac19201611614565b6123d26123c76123d992611669565b835f5260205f200190565b5460301c90565b90612399565b91926123ea81612663565b81039081116114495761239093855f5265ffffffffffff808360205f20015416908516105f1461241b575091612385565b9291506124279061143b565b90612385565b6040519061243a826109bd565b5f6020838281520152565b9061246e61246861248f9261245861242d565b5061246161242d565b5084611614565b50611ff5565b91600165ffffffffffff845116936020828060d01b03910151169101611614565b9054906040519261249f846109bd565b835260031b1c602082015290565b90808210156124ba575090565b905090565b8054600160401b8110156109d8576124dc91600182018155611614565b61250757815160209092015160301b65ffffffffffff191665ffffffffffff92909216919091179055565b634e487b7160e01b5f525f60045260245ffd5b80549293929190821561260c5761253b6125366123c785611669565b611ff5565b9061254c825165ffffffffffff1690565b65ffffffffffff848116911681106125fa576116cd94602094889261257a611d48875165ffffffffffff1690565b036125c257506125b49261259061259b92611669565b905f5260205f200190565b9065ffffffffffff82549181199060301b169116179055565b01516001600160d01b031690565b9150506125f5916125e26125d4610a19565b65ffffffffffff9093168352565b6001600160d01b038816828601526124bf565b6125b4565b604051632520601d60e01b8152600490fd5b612630925061261c6125d4610a19565b6001600160d01b03851660208301526124bf565b5f9190565b60ff5f805160206128368339815191525460401c161561265157565b604051631afcd79f60e31b8152600490fd5b80156112695780611ed961272e61272461271a6127106127066126fc6126f260016110fe9a5f908b60801c8061278a575b508060401c8061277d575b508060201c80612770575b508060101c80612763575b508060081c80612756575b508060041c80612749575b508060021c8061273c575b50821c612735575b811c1b6126eb818b61141d565b0160011c90565b6126eb818a61141d565b6126eb818961141d565b6126eb818861141d565b6126eb818761141d565b6126eb818661141d565b6126eb818561141d565b809261141d565b81016126de565b600291509101905f6126d6565b600491509101905f6126cb565b600891509101905f6126c0565b601091509101905f6126b5565b602091509101905f6126aa565b604091509101905f61269f565b9150506080905f612694565b91905b8382106127a65750505090565b9091928083169080841860011c820180921161144957845f5265ffffffffffff808360205f20015416908416105f146127e35750925b9190612799565b9392506127ef9061143b565b916127dc56fe02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268009b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a264697066735822122069e5246e4910fa681bf71ad16d8ba448abe03cec6d90d10bfddbb83eeccc70a264736f6c63430008190033","sourceMap":"611:4324:85:-:0;;;;-1:-1:-1;;;;;611:4324:85;;;;;;;;;;-1:-1:-1;;611:4324:85;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;8837:64:26;611:4324:85;;;;;;;;;7896:76:26;;611:4324:85;;;;7985:34:26;7981:146;;-1:-1:-1;525:17:74;;;611:4324:85;525:17:74;611:4324:85;552:12:74;611:4324:85;2360:34:81;611:4324:85;2404:28:81;2442:57;;;;2509:61;;;;1716:36:85;;;;611:4324;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7981:146:26;-1:-1:-1;;;;;;611:4324:85;;;;;;;;;;;;;8087:29:26;;611:4324:85;;8087:29:26;7981:146;;;;;7896:76;611:4324:85;;-1:-1:-1;;;7938:23:26;;;;;611:4324:85;-1:-1:-1;611:4324:85;;;;;;-1:-1:-1;611:4324:85;;;;;-1:-1:-1;611:4324:85;;;;-1:-1:-1;;;;;611:4324:85;;;;;;:::o","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361015610011575f80fd5b5f3560e01c806301ffc9a714610224578063021453481461021f578063103f29071461021a578063128e5d82146102155780631a80e5001461021057806323f752d51461020b578063248a9ca3146102065780632dd31000146102015780632f2ff15d146101fc57806336568abe146101f75780633dfd3873146101f25780633eb22c0f146101ed578063439fab91146101e8578063557cab44146101e3578063570ca735146101de5780635d32a1c9146101d95780636679191e146101d45780637d24bb27146101cf5780637f5a7c7b146101ca57806383ce0322146101c557806391d14854146101c05780639f86fd85146101bb578063a217fddf146101b6578063bb24fe8a146101b1578063c0cd7c3e146101ac578063d15b740e146101a7578063d547741f146101a2578063e02f69371461019d578063e49561ee14610198578063fbfa77cf14610193578063fd4d447c1461018e578063ff54740f146101895763ffa1ad7414610184575f80fd5b6110aa565b61108d565b611063565b61103c565b610e51565b610df2565b610da6565b610d7c565b610d38565b610cf5565b610cdb565b610c21565b610bc3565b610b7f565b610b57565b610b1e565b610ae4565b610a89565b61096c565b610950565b610818565b6107ba565b6106c1565b610676565b61062a565b6105d5565b61059c565b610416565b6103d2565b61038e565b61034a565b61027e565b3461027a57602036600319011261027a5760043563ffffffff60e01b811680910361027a57602090637965db0b60e01b8114908115610269575b506040519015158152f35b6301ffc9a760e01b1490505f61025e565b5f80fd5b3461027a5760408060031936011261027a5760043590602435906102a0611578565b825f526002602052805f2054821161033a57825f526003602052816102c6825f20611a9c565b1461032a5781610325916103157e899d104fc3d8820bd96540612bcc5c448c8837b13b9f7faa43ad0728f0c14f94610306875f52600360205260405f2090565b61030f42611fc3565b90611677565b5050519081529081906020820190565b0390a2005b5163a741a04560e01b8152600490fd5b51631eefc06360e31b8152600490fd5b3461027a575f36600319011261027a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461027a575f36600319011261027a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461027a575f36600319011261027a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461027a57604036600319011261027a576004356001600160601b038116810361027a5760243590610446611739565b6040516302910f8b60e31b81523360048201526020816024816001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165afa908115610597575f91610568575b5015610556576001600160601b03166bffffffffffffffffffffffff193360601b161790806104d0835f52600260205260405f2090565b541461054457610529817fc67e7929681aa1bccd63f52b3799bf5805f3009f197db6fdf584b14f7fbf608c9261050e855f52600260205260405f2090565b556105198185611768565b6040519081529081906020820190565b0390a261054260015f8051602061281683398151915255565b005b60405163a741a04560e01b8152600490fd5b6040516323d53b9760e21b8152600490fd5b61058a915060203d602011610590575b61058281836109f8565b8101906110c5565b5f610499565b503d610578565b6110dd565b3461027a57602036600319011261027a576004355f525f805160206127f68339815191526020526020600160405f200154604051908152f35b3461027a575f36600319011261027a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b6001600160a01b0381160361027a57565b3461027a57604036600319011261027a5761054260243560043561064d82610619565b805f525f805160206127f6833981519152602052610671600160405f2001546115d4565b6119d4565b3461027a57604036600319011261027a5760243561069381610619565b336001600160a01b038216036106af5761054290600435611a0a565b60405163334bd91960e11b8152600490fd5b3461027a57602036600319011261027a576004356106de81610619565b6106e6611739565b335f9081527f9ebbcbe0d2961d3fbe56ca6f679bc753bd848d3e6bb3eaf9041c51b286881d2c60205260409020547fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c9060ff161561079c57506001546001600160a01b039182169181168214610544576001600160a01b03191681176001557f5bbb1d3ebb6a3ad2a0f17ff35e579a83af60604d1d3c2a4c83c62adecadf666d5f80a260015f8051602061281683398151915255005b6044906040519063e2517d3f60e01b82523360048301526024820152fd5b3461027a57602036600319011261027a576004355f52600360205260206107e360405f20611a9c565b604051908152f35b9181601f8401121561027a578235916001600160401b03831161027a576020838186019501011161027a57565b3461027a57602036600319011261027a576001600160401b0360043581811161027a576108499036906004016107eb565b5f80516020612836833981519152549260ff8460401c1615931680159081610948575b600114908161093e575b159081610935575b50610923575f80516020612836833981519152805467ffffffffffffffff191660011790556108b191836108ff57611b1f565b6108b757005b5f80516020612836833981519152805460ff60401b19169055604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a1005b5f80516020612836833981519152805460ff60401b1916600160401b179055611b1f565b60405163f92ee8a960e01b8152600490fd5b9050155f61087e565b303b159150610876565b84915061086c565b3461027a575f36600319011261027a576020604051614e208152f35b3461027a575f36600319011261027a576004546040516001600160a01b039091168152602090f35b6064359065ffffffffffff8216820361027a57565b634e487b7160e01b5f52604160045260245ffd5b604081019081106001600160401b038211176109d857604052565b6109a9565b606081019081106001600160401b038211176109d857604052565b90601f801991011681019081106001600160401b038211176109d857604052565b60405190610a26826109bd565b565b6001600160401b0381116109d857601f01601f191660200190565b81601f8201121561027a57803590610a5a82610a28565b92610a6860405194856109f8565b8284526020838301011161027a57815f926020809301838601378301015290565b3461027a57606036600319011261027a5760243565ffffffffffff8116810361027a576044356001600160401b03811161027a57602091610ad16107e3923690600401610a43565b906004355f526003845260405f20611c8e565b3461027a575f36600319011261027a5760206040517fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c8152f35b3461027a575f36600319011261027a5760206040517e8b9b1e5fa9cf3b14f87f435649268146305ddf689f082e5961a335b07a9abf8152f35b3461027a575f36600319011261027a576001546040516001600160a01b039091168152602090f35b3461027a575f36600319011261027a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461027a57604036600319011261027a57602060ff610c15602435610be781610619565b6004355f525f805160206127f6833981519152845260405f209060018060a01b03165f5260205260405f2090565b54166040519015158152f35b3461027a5760408060031936011261027a57600435610c3f81610619565b602435906001600160401b03821161027a575f8091610c65610cc99436906004016107eb565b908187519283928337810184815203915af43d15610cd157610cbb3d610c8a81610a28565b90610c97865192836109f8565b81523d5f602083013e5b845194859315156020850152808401526060830190611101565b03601f1981018352826109f8565b805190602001fd5b610cbb6060610ca1565b3461027a575f36600319011261027a5760206040515f8152f35b3461027a575f36600319011261027a5760206040516001600160401b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461027a575f36600319011261027a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461027a57602036600319011261027a576004355f526002602052602060405f2054604051908152f35b3461027a57604036600319011261027a57610542602435600435610dc982610619565b805f525f805160206127f6833981519152602052610ded600160405f2001546115d4565b611a0a565b3461027a57608036600319011261027a57602435610e0f81610619565b6044359065ffffffffffff8216820361027a57606435906001600160401b03821161027a57602092610e486107e3933690600401610a43565b91600435611227565b3461027a5760a036600319011261027a57602435600435610e7182610619565b60443591610e7d610994565b90608435906001600160401b03821161027a57610e9f60049236908401610a43565b610ea7611739565b5f54602090610ecc90610ec0906001600160a01b031681565b6001600160a01b031690565b60405163b134427160e01b815294859182905afa928315610597575f9361100b575b506001600160a01b039283163303610ff9576001546001600160a01b0316838116610f6e575b50506040805195865265ffffffffffff909316602086015216927f741a5de99085c0d660f3e4192217b0ffb0ea4e35a0480de48e857a4bc3ee36ed91819081015b0390a361054260015f8051602061281683398151915255565b909360405194610fa586610f97602082019363724ab0f760e11b8552858c898d602487016113d1565b03601f1981018852876109f8565b62042e305a10610fe7575f610f55938192827f741a5de99085c0d660f3e4192217b0ffb0ea4e35a0480de48e857a4bc3ee36ed9951926203d090f15093610f14565b604051638072475160e01b8152600490fd5b60405163dabc4ad960e01b8152600490fd5b61102e91935060203d602011611035575b61102681836109f8565b8101906113bc565b915f610eee565b503d61101c565b3461027a575f36600319011261027a575f546040516001600160a01b039091168152602090f35b3461027a57604036600319011261027a5760206107e360243561108581610619565b60043561144e565b3461027a575f36600319011261027a5760206040516203d0908152f35b3461027a575f36600319011261027a57602060405160018152f35b9081602091031261027a5751801515810361027a5790565b6040513d5f823e3d90fd5b906110fe92915f52600360205260405f20611c8e565b90565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b60405190611132826109bd565b60606020838281520152565b81601f8201121561027a5780519061115582610a28565b9261116360405194856109f8565b8284526020838301011161027a57815f9260208093018386015e8301015290565b9060208282031261027a5781516001600160401b039283821161027a57019060408282031261027a57604051926111ba846109bd565b825181811161027a57826111cf91850161113e565b8452602083015190811161027a576111e7920161113e565b602082015290565b6001600160a01b0391821681529116602082015265ffffffffffff90911660408201526080606082018190526110fe92910190611101565b9261123790929192828486611e46565b929093611242611125565b93805180611395575b505084159384156112ff575b841561126e575b505050506112695790565b505f90565b602080949550611299910151604051958694859463530e1d4360e01b865260601c90600486016111ef565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa908115610597575f916112e0575b50155f80808061125e565b6112f9915060203d6020116105905761058281836109f8565b5f6112d5565b5f549094506001600160a01b0316602084865192611332604051948593849363530e1d4360e01b855289600486016111ef565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa908115610597575f91611376575b501593611257565b61138f915060203d6020116105905761058281836109f8565b5f61136e565b6113a9929550602080918301019101611184565b925f8061124b565b5190610a2682610619565b9081602091031261027a57516110fe81610619565b919360a0936110fe969565ffffffffffff938552600180871b0316602085015260408401521660608201528160808201520190611101565b634e487b7160e01b5f52601160045260245ffd5b8115611427570490565b634e487b7160e01b5f52601260045260245ffd5b906001820180921161144957565b611409565b5f546040516308834cb560e21b8082526001600160a01b0385811660048401529283166024830152929392602092909183816044817f000000000000000000000000000000000000000000000000000000000000000086165afa908115610597575f9161155b575b50159182156114d7575b505090506114d1576110fe91611f3b565b50505f90565b6040519081526001600160a01b0385166004820152606086901c602482015291508290829060449082907f0000000000000000000000000000000000000000000000000000000000000000165afa918215610597575f9261153e575b505015805f806114c0565b6115549250803d106105905761058281836109f8565b5f80611533565b6115729150843d86116105905761058281836109f8565b5f6114b6565b335f9081527f72a65082a5691803ab2b62c9bc729b34205ba1b183d950896526b2fd8714d0c7602052604090207e8b9b1e5fa9cf3b14f87f435649268146305ddf689f082e5961a335b07a9abf9060ff905b54161561079c5750565b5f8181525f805160206127f683398151915260209081526040808320338452909152902060ff906115ca565b634e487b7160e01b5f52603260045260245ffd5b8054821015611629575f5260205f2001905f90565b611600565b90815491600160401b8310156109d85782611651916001610a2695018155611614565b90919082549060031b91821b915f19901b1916179055565b5f1981019190821161144957565b90929192600182019081548015611709575b508461169484612019565b509490928454936116a483611a9c565b96816116f4575b50156116d1575050505f1981019081116114495761165185916116cd93611614565b9190565b6116cd9492936116ed926001600160d01b03909116919061251a565b505061162e565b65ffffffffffff83811691161490505f6116ab565b600160401b8110156109d8578060016117259201845583611614565b8154905f199060031b1b191690555f611689565b5f8051602061281683398151915260028154146117565760029055565b604051633ee5aeb560e01b8152600490fd5b90815f52600360205260405f208161177f82612019565b9193905083156117dd5761179f916001600160d01b031690600101611614565b90549060031b1c5b826117d3575b50506117b7575050565b6117cf915f52600360205260405f2061030f42611fc3565b5050565b119050815f6117ad565b50505f6117a7565b6001600160a01b0381165f9081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d60205260409020545f805160206127f68339815191529060ff166114d1575f808052602091825260408082206001600160a01b038516835290925220805460ff1916600117905533906001600160a01b03165f7f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d8180a4600190565b6001600160a01b0381165f9081527f9ebbcbe0d2961d3fbe56ca6f679bc753bd848d3e6bb3eaf9041c51b286881d2c602052604090207fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c905f805160206127f68339815191529060ff905b541661195f575f828152602091825260408082206001600160a01b038616835290925220805460ff1916600117905533916001600160a01b0316907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d5f80a4600190565b5050505f90565b6001600160a01b0381165f9081527f72a65082a5691803ab2b62c9bc729b34205ba1b183d950896526b2fd8714d0c7602052604090207e8b9b1e5fa9cf3b14f87f435649268146305ddf689f082e5961a335b07a9abf905f805160206127f68339815191529060ff906118fb565b5f8181525f805160206127f6833981519152602081815260408084206001600160a01b038716855290915290912060ff906118fb565b5f8181525f805160206127f6833981519152602081815260408084206001600160a01b03871685529091529091205460ff161561195f575f828152602091825260408082206001600160a01b038616835290925220805460ff1916905533916001600160a01b0316907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b5f80a4600190565b805480611acb57505f5b6001600160d01b038116156114d1576001611ac19201611614565b90549060031b1c90565b5f1990808281011161144957825f5260205f2001015460301c611aa6565b91909160408184031261027a578035611b0181610619565b9260208201356001600160401b03811161027a576110fe9201610a43565b611b2b91810190611ae9565b6040516302910f8b60e31b81526001600160a01b039283166004820181905291906020816024817f000000000000000000000000000000000000000000000000000000000000000088165afa908115610597575f91611c3e575b5015611c2c57611bc0604091611bbb611c0694611ba0612068565b60018060a01b03166001600160601b0360a01b5f5416175f55565b6121d4565b6020810151600180546001600160a01b0319166001600160a01b0390921691909117905580516001600160a01b0316848116611c1c575b5001516001600160a01b031690565b908116611c105750565b611c1990611890565b50565b611c25906117e5565b505f611bf7565b6040516362df054560e01b8152600490fd5b611c57915060203d6020116105905761058281836109f8565b5f611b85565b9081602091031261027a575163ffffffff8116810361027a5790565b90600163ffffffff8093160191821161144957565b91805115611d675780602080611ca993518301019101611c5d565b91611cb48382612445565b92611cc5845165ffffffffffff1690565b9065ffffffffffff8085169216828114611d5b5782119182611cfb575b5050611cf2576110fe9250612375565b50506020015190565b909150611d088354611669565b63ffffffff831614918215611d21575b50505f80611ce2565b611d53919250611d3c611d36611d4892611c79565b85612445565b5165ffffffffffff1690565b65ffffffffffff1690565b115f80611d18565b50505050506020015190565b506110fe91612375565b60405190611d7e826109dd565b60606040838281528260208201520152565b9060208282031261027a5781516001600160401b039283821161027a57019060608282031261027a5760405192611dc6846109dd565b825181811161027a5782611ddb91850161113e565b8452602083015181811161027a5782611df591850161113e565b6020850152604083015190811161027a57611e10920161113e565b604082015290565b9081602091031261027a575190565b60409065ffffffffffff6110fe94931681528160208201520190611101565b90939293611e52611d71565b94805180611f1f575b50506004546001600160a01b03918216911603611f17575f54611eb2929190602090611e9190610ec0906001600160a01b031681565b8187015190604051808097819463810da75d60e01b83528860048401611e27565b03915afa90811561059757611edf935f92611ee4575b50611ed991926040870151916110e8565b906124ad565b915190565b611ed99250611f0a9060203d602011611f10575b611f0281836109f8565b810190611e18565b91611ec8565b503d611ef8565b505090515f91565b611f33929650602080918301019101611d90565b935f80611e5b565b6004546001600160a01b0392908316908316036114d15760206004925f54166040519384809263bd49c35f60e01b82525afa908115610597576110fe925f92611f9a575b50611f95611ed9915f52600360205260405f2090565b611a9c565b611ed9919250611fbb611f959160203d602011611f1057611f0281836109f8565b929150611f7f565b65ffffffffffff90818111611fd6571690565b604490604051906306dfcc6560e41b8252603060048301526024820152fd5b90604051612002816109bd565b915465ffffffffffff8116835260301c6020830152565b80548061202a5750505f905f905f90565b5f1990808281011161144957612047925f5260205f200101611ff5565b9065ffffffffffff82511691602060018060d01b0391015116906001929190565b612070612635565b612078612635565b60015f8051602061281683398151915255565b60405190612098826109dd565b5f6040838281528260208201520152565b81601f8201121561027a578051916020916001600160401b0384116109d8578360051b90604051946120dd858401876109f8565b8552838086019282010192831161027a578301905b828210612100575050505090565b838091835161210e81610619565b8152019101906120f2565b60208183031261027a5780516001600160401b039182821161027a5701918281039260a0841261027a57606060405194612152866109dd565b1261027a57604051612163816109dd565b815161216e81610619565b8152602082015161217e81610619565b6020820152604082015161219181610619565b60408201528452606081015192831161027a576121b5608092611e109483016120a9565b6020850152016113b1565b80518210156116295760209160051b010190565b6121dc61208b565b506121f281519160208080948301019101612119565b8051516001600160a01b0393919084161580612369575b612357576040818101805182516302910f8b60e31b81526001600160a01b0390911660048083019190915296929491928690829060249082907f0000000000000000000000000000000000000000000000000000000000000000165afa908115610597575f9161233a575b50156123285791938401915f5b835180518210156122f757610ec061229c836122a9936121c0565b516001600160a01b031690565b156122e7576122cb6122c76122c261229c8488516121c0565b611966565b1590565b6122d757600101612281565b8451635140fefd60e11b81528790fd5b84516323cda06760e01b81528790fd5b50509051600480546001600160a01b0319166001600160a01b039092169190911790559350612324915050565b5190565b604051631f0853c160e21b8152600490fd5b6123519150863d88116105905761058281836109f8565b5f612274565b6040516303501f5960e11b8152600490fd5b50828101515115612209565b908154905f8291600584116123df575b612390935084612796565b806123b857505f905b6001600160d01b038216156114d1576110fe916001611ac19201611614565b6123d26123c76123d992611669565b835f5260205f200190565b5460301c90565b90612399565b91926123ea81612663565b81039081116114495761239093855f5265ffffffffffff808360205f20015416908516105f1461241b575091612385565b9291506124279061143b565b90612385565b6040519061243a826109bd565b5f6020838281520152565b9061246e61246861248f9261245861242d565b5061246161242d565b5084611614565b50611ff5565b91600165ffffffffffff845116936020828060d01b03910151169101611614565b9054906040519261249f846109bd565b835260031b1c602082015290565b90808210156124ba575090565b905090565b8054600160401b8110156109d8576124dc91600182018155611614565b61250757815160209092015160301b65ffffffffffff191665ffffffffffff92909216919091179055565b634e487b7160e01b5f525f60045260245ffd5b80549293929190821561260c5761253b6125366123c785611669565b611ff5565b9061254c825165ffffffffffff1690565b65ffffffffffff848116911681106125fa576116cd94602094889261257a611d48875165ffffffffffff1690565b036125c257506125b49261259061259b92611669565b905f5260205f200190565b9065ffffffffffff82549181199060301b169116179055565b01516001600160d01b031690565b9150506125f5916125e26125d4610a19565b65ffffffffffff9093168352565b6001600160d01b038816828601526124bf565b6125b4565b604051632520601d60e01b8152600490fd5b612630925061261c6125d4610a19565b6001600160d01b03851660208301526124bf565b5f9190565b60ff5f805160206128368339815191525460401c161561265157565b604051631afcd79f60e31b8152600490fd5b80156112695780611ed961272e61272461271a6127106127066126fc6126f260016110fe9a5f908b60801c8061278a575b508060401c8061277d575b508060201c80612770575b508060101c80612763575b508060081c80612756575b508060041c80612749575b508060021c8061273c575b50821c612735575b811c1b6126eb818b61141d565b0160011c90565b6126eb818a61141d565b6126eb818961141d565b6126eb818861141d565b6126eb818761141d565b6126eb818661141d565b6126eb818561141d565b809261141d565b81016126de565b600291509101905f6126d6565b600491509101905f6126cb565b600891509101905f6126c0565b601091509101905f6126b5565b602091509101905f6126aa565b604091509101905f61269f565b9150506080905f612694565b91905b8382106127a65750505090565b9091928083169080841860011c820180921161144957845f5265ffffffffffff808360205f20015416908416105f146127e35750925b9190612799565b9392506127ef9061143b565b916127dc56fe02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268009b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a264697066735822122069e5246e4910fa681bf71ad16d8ba448abe03cec6d90d10bfddbb83eeccc70a264736f6c63430008190033","sourceMap":"611:4324:85:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;;;;;-1:-1:-1;;611:4324:85;;;;;;;;;;;;;;;;;;-1:-1:-1;;;3551:47:24;;;:87;;;;611:4324:85;;;;;;;;;;3551:87:24;-1:-1:-1;;;1133:40:30;;-1:-1:-1;3551:87:24;;;611:4324:85;-1:-1:-1;611:4324:85;;;;;;;;;;;;;;;;;;;;3202:4:24;;;:::i;:::-;611:4324:85;-1:-1:-1;611:4324:85;2428:15;611:4324;;;-1:-1:-1;611:4324:85;;2419:36;;2415:98;;611:4324;-1:-1:-1;611:4324:85;2193:13;611:4324;;;2193:34;611:4324;-1:-1:-1;611:4324:85;2193:34;:::i;:::-;2527;2523:84;;2617:25;2689:35;2617:25;:56;2689:35;2617:25;;;611:4324;;2193:13;611:4324;;;;;;;2617:25;819:34:63;837:15;819:34;:::i;:::-;2617:56:85;;:::i;:::-;-1:-1:-1;;611:4324:85;;;;;;;;;;;;2689:35;;;;611:4324;2523:84;611:4324;-1:-1:-1;;;2584:12:85;;611:4324;;2584:12;2415:98;611:4324;-1:-1:-1;;;2478:24:85;;611:4324;;2478:24;611:4324;;;;;;-1:-1:-1;;611:4324:85;;;;;;1537:38:81;-1:-1:-1;;;;;611:4324:85;;;;;;;;;;;;-1:-1:-1;;611:4324:85;;;;;;1632:54:81;-1:-1:-1;;;;;611:4324:85;;;;;;;;;;;;-1:-1:-1;;611:4324:85;;;;;;1743:56:81;-1:-1:-1;;;;;611:4324:85;;;;;;;;;;;;-1:-1:-1;;611:4324:85;;;;;;-1:-1:-1;;;;;611:4324:85;;;;;;;;3217:103:29;;;:::i;:::-;611:4324:85;;-1:-1:-1;;;4285:48:81;;4322:10;611:4324:85;4285:48:81;;611:4324:85;;;;;-1:-1:-1;;;;;4295:16:81;611:4324:85;4285:48:81;;;;;;;-1:-1:-1;4285:48:81;;;611:4324:85;4284:49:81;;4280:99;;-1:-1:-1;;;;;611:4324:85;-1:-1:-1;;4322:10:81;297:2:93;611:4324:85;;267:46:93;4459:27:81;;;;611:4324:85;;4459:15:81;611:4324:85;;;;;;;4459:27:81;611:4324:85;4459:37:81;4455:87;;4654:38;4552:27;4654:38;4552:27;;;611:4324:85;;4459:15:81;611:4324:85;;;;;;;4552:27:81;611:4324:85;4631:6:81;;;;:::i;:::-;611:4324:85;;;;;;;;;;;;;4654:38:81;;;;3282:1:29;1805;-1:-1:-1;;;;;;;;;;;611:4324:85;3716:283:29;3282:1;611:4324:85;4455:87:81;611:4324:85;;-1:-1:-1;;;4519:12:81;;611:4324:85;;4519:12:81;4280:99;611:4324:85;;-1:-1:-1;;;4356:12:81;;611:4324:85;;4356:12:81;4285:48;;;;611:4324:85;4285:48:81;611:4324:85;4285:48:81;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;:::i;611:4324:85:-;;;;;;-1:-1:-1;;611:4324:85;;;;;;-1:-1:-1;611:4324:85;-1:-1:-1;;;;;;;;;;;611:4324:85;;;4919:24:24;611:4324:85;-1:-1:-1;611:4324:85;4919:24:24;611:4324:85;;;;;;;;;;;;;-1:-1:-1;;611:4324:85;;;;;;322:32:74;-1:-1:-1;;;;;611:4324:85;;;;;;;-1:-1:-1;;;;;611:4324:85;;;;;:::o;:::-;;;;;;-1:-1:-1;;611:4324:85;;;;5350:25:24;611:4324:85;;;;;;;:::i;:::-;;-1:-1:-1;611:4324:85;-1:-1:-1;;;;;;;;;;;611:4324:85;;3202:4:24;4919:24;611:4324:85;-1:-1:-1;611:4324:85;4919:24:24;611:4324:85;3202:4:24;:::i;:::-;5350:25;:::i;611:4324:85:-;;;;;;-1:-1:-1;;611:4324:85;;;;;;;;;:::i;:::-;966:10:28;-1:-1:-1;;;;;611:4324:85;;6441:34:24;6437:102;;6549:37;611:4324:85;;;6549:37:24;:::i;6437:102::-;611:4324:85;;-1:-1:-1;;;6498:30:24;;611:4324:85;;6498:30:24;611:4324:85;;;;;;-1:-1:-1;;611:4324:85;;;;;;;;;:::i;:::-;3217:103:29;;:::i;:::-;966:10:28;-1:-1:-1;611:4324:85;;;;;;;;;;1356:26:81;;611:4324:85;;4468:23:24;4464:108;;-1:-1:-1;4861:4:81;611:4324:85;-1:-1:-1;;;;;611:4324:85;;;;;;4861:13:81;;4857:63;;-1:-1:-1;;;;;;611:4324:85;;;4861:4:81;611:4324:85;4958:14:81;-1:-1:-1;;4958:14:81;4861:4;-1:-1:-1;;;;;;;;;;;611:4324:85;;4464:108:24;611:4324:85;;;;4514:47:24;;;;;;966:10:28;611:4324:85;4514:47:24;;611:4324:85;;;;;4514:47:24;611:4324:85;;;;;;-1:-1:-1;;611:4324:85;;;;;;-1:-1:-1;611:4324:85;2193:13;611:4324;;;2193:34;611:4324;-1:-1:-1;611:4324:85;2193:34;:::i;:::-;611:4324;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;611:4324:85;;;;;;;;;;;;;;;:::o;:::-;;;;;;-1:-1:-1;;611:4324:85;;;;-1:-1:-1;;;;;611:4324:85;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;611:4324:85;;;;;;;4301:16:26;611:4324:85;;4726:16:26;;:34;;;;611:4324:85;4805:1:26;4790:16;:50;;;;611:4324:85;4855:13:26;:30;;;;611:4324:85;4851:91:26;;;-1:-1:-1;;;;;;;;;;;611:4324:85;;-1:-1:-1;;611:4324:85;;;;;718:4:74;;4951:18:26;4979:67;;718:4:74;:::i;:::-;5066:101:26;;611:4324:85;5066:101:26;-1:-1:-1;;;;;;;;;;;611:4324:85;;-1:-1:-1;;;;611:4324:85;;;;;-1:-1:-1;611:4324:85;;5142:14:26;;611:4324:85;;5142:14:26;611:4324:85;4979:67:26;-1:-1:-1;;;;;;;;;;;611:4324:85;;-1:-1:-1;;;;611:4324:85;-1:-1:-1;;;611:4324:85;;;718:4:74;:::i;4851:91:26:-;611:4324:85;;-1:-1:-1;;;4908:23:26;;611:4324:85;;4908:23:26;4855:30;4872:13;;;4855:30;;;4790:50;4818:4;4810:25;:30;;-1:-1:-1;4790:50:26;;4726:34;;;-1:-1:-1;4726:34:26;;611:4324:85;;;;;;-1:-1:-1;;611:4324:85;;;;;;;1253:6:81;611:4324:85;;;;;;;;;-1:-1:-1;;611:4324:85;;;;;;;;-1:-1:-1;;;;;611:4324:85;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;611:4324:85;;;;;;;:::o;:::-;;:::i;:::-;;;;;;;-1:-1:-1;;;;;611:4324:85;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;611:4324:85;;;;;;;:::o;:::-;;;;;;;:::i;:::-;:::o;:::-;-1:-1:-1;;;;;611:4324:85;;;;;;-1:-1:-1;;611:4324:85;;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;611:4324:85;;;;;;;;;;;;;;:::o;:::-;;;;;;-1:-1:-1;;611:4324:85;;;;;;;;;;;;;;;-1:-1:-1;;;;;611:4324:85;;;;;;;1955:60;611:4324;;;;;;:::i;:::-;;;;-1:-1:-1;611:4324:85;1955:13;611:4324;;;-1:-1:-1;611:4324:85;1955:60;:::i;611:4324::-;;;;;;-1:-1:-1;;611:4324:85;;;;;;;1356:26:81;611:4324:85;;;;;;;;;-1:-1:-1;;611:4324:85;;;;;;;885:35;611:4324;;;;;;;;;-1:-1:-1;;611:4324:85;;;;;;;;-1:-1:-1;;;;;611:4324:85;;;;;;;;;;;;;;-1:-1:-1;;611:4324:85;;;;;;989:42;-1:-1:-1;;;;;611:4324:85;;;;;;;;;;;;-1:-1:-1;;611:4324:85;;;;;;3901:31:24;611:4324:85;;;;;:::i;:::-;;;-1:-1:-1;611:4324:85;-1:-1:-1;;;;;;;;;;;611:4324:85;;;-1:-1:-1;611:4324:85;;;;;;;;;;;;;;;;;3901:31:24;611:4324:85;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;611:4324:85;;;;-1:-1:-1;611:4324:85;;;477:31:80;611:4324:85;;;;;;:::i;:::-;;;;;;;;;;;;;;;416:25:80;;;;611:4324:85;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;-1:-1:-1;611:4324:85;;;;;;;;;;;;;477:31:80;;611:4324:85;;;;;;;;;;:::i;:::-;477:31:80;611:4324:85;;477:31:80;;;;;;:::i;:::-;518:79;;;611:4324:85;518:79:80;;611:4324:85;;;;;;;;;;;-1:-1:-1;;611:4324:85;;;;;;;;;;;;;;;;;-1:-1:-1;;611:4324:85;;;;;;;-1:-1:-1;;;;;404:28:74;611:4324:85;;;;;;;;;;-1:-1:-1;;611:4324:85;;;;;;1439:41:81;-1:-1:-1;;;;;611:4324:85;;;;;;;;;;;;-1:-1:-1;;611:4324:85;;;;;;-1:-1:-1;611:4324:85;2009:67:81;611:4324:85;;;;-1:-1:-1;611:4324:85;;;;;;;;;;;;;;-1:-1:-1;;611:4324:85;;;;5767:26:24;611:4324:85;;;;;;;:::i;:::-;;-1:-1:-1;611:4324:85;-1:-1:-1;;;;;;;;;;;611:4324:85;;3202:4:24;4919:24;611:4324:85;-1:-1:-1;611:4324:85;4919:24:24;611:4324:85;3202:4:24;:::i;:::-;5767:26;:::i;611:4324:85:-;;;;;;-1:-1:-1;;611:4324:85;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;-1:-1:-1;;;;;611:4324:85;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;-1:-1:-1;;611:4324:85;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;-1:-1:-1;;;;;611:4324:85;;;;;;;;;;;;:::i;:::-;3217:103:29;;:::i;:::-;-1:-1:-1;611:4324:85;;;5246:21:81;;:13;;-1:-1:-1;;;;;611:4324:85;5246:13:81;611:4324:85;;-1:-1:-1;;;;;611:4324:85;;;5246:21:81;611:4324:85;;-1:-1:-1;;;5246:23:81;;611:4324:85;;;;;5246:23:81;;;;;;;-1:-1:-1;5246:23:81;;;611:4324:85;-1:-1:-1;;;;;;611:4324:85;;;5232:10:81;:37;5228:87;;5341:4;611:4324:85;-1:-1:-1;;;;;611:4324:85;;;;5355:469:81;;611:4324:85;-1:-1:-1;;611:4324:85;;;;;;;;;;;;;;;;5839:55:81;;611:4324:85;;;;5839:55:81;;;;3282:1:29;1805;-1:-1:-1;;;;;;;;;;;611:4324:85;3716:283:29;5355:469:81;611:4324:85;;;;5435:94:81;;;;611:4324:85;5435:94:81;;;;;;;;;;;;611:4324:85;5435:94:81;;;:::i;:::-;;611:4324:85;;5435:94:81;;;;;;:::i;:::-;611:4324:85;5548:9:81;:51;5544:118;;-1:-1:-1;5839:55:81;5676:138;;;;5839:55;5676:138;;;1150:7;5676:138;;5355:469;;;5544:118;611:4324:85;;-1:-1:-1;;;5626:21:81;;611:4324:85;;5626:21:81;5228:87;611:4324:85;;-1:-1:-1;;;5292:12:81;;611:4324:85;;5292:12:81;5246:23;;;;;611:4324:85;5246:23:81;611:4324:85;5246:23:81;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;611:4324:85;;;;;;-1:-1:-1;;611:4324:85;;;;;;;;-1:-1:-1;;;;;611:4324:85;;;;;;;;;;;;;;-1:-1:-1;;611:4324:85;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;-1:-1:-1;;611:4324:85;;;;;;;1150:7:81;611:4324:85;;;;;;;;;-1:-1:-1;;611:4324:85;;;;;;;2700:1:81;611:4324:85;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;1827:195;;1955:60;1827:195;;-1:-1:-1;611:4324:85;1955:13;611:4324;;;-1:-1:-1;611:4324:85;1955:60;:::i;:::-;1827:195;:::o;611:4324::-;;;;;;;;;;;;;;;;;-1:-1:-1;611:4324:85;;;;;;;;-1:-1:-1;;611:4324:85;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;611:4324:85;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;;;;611:4324:85;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::o;:::-;-1:-1:-1;;;;;611:4324:85;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;2764:920:81:-;;2978:48;2764:920;;;;2978:48;;;;:::i;:::-;3036:36;;;611:4324:85;;:::i;:::-;;;;3086:20:81;3082:107;;2764:920;3216:11;;;;:193;;;;;2764:920;3216:394;;;;2764:920;3199:455;;;;;;2764:920;:::o;3199:455::-;3635:8;-1:-1:-1;3635:8:81;:::o;3216:394::-;3553:39;;;;;3430:180;3553:39;;;611:4324:85;;;;;;;;;;3430:180:81;;467:2:93;611:4324:85;3430:180:81;;;;;:::i;:::-;;611:4324:85;3444:31:81;-1:-1:-1;;;;;611:4324:85;3430:180:81;;;;;;;-1:-1:-1;3430:180:81;;;3216:394;3429:181;;3216:394;;;;;;3430:180;;;;3553:39;3430:180;3553:39;3430:180;;;;;;;:::i;:::-;;;;3216:193;-1:-1:-1;611:4324:85;;;-1:-1:-1;;;;;;611:4324:85;3248:161:81;3354:37;;;611:4324:85;3248:161:81;611:4324:85;;;;;;;;;;3248:161:81;;;;;;;:::i;:::-;;611:4324:85;3262:29:81;-1:-1:-1;;;;;611:4324:85;3248:161:81;;;;;;;-1:-1:-1;3248:161:81;;;3216:193;3247:162;;3216:193;;;3248:161;;;;;;;;;;;;;;:::i;:::-;;;;3082:107;3139:39;;;;;;;;;;;;;:::i;:::-;3082:107;;;;;611:4324:85;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;9856:1:61;611:4324:85;;;;;;;:::o;:::-;;:::i;3740:389:81:-;3918:5;611:4324:85;;;-1:-1:-1;;;3853:71:81;;;-1:-1:-1;;;;;611:4324:85;;;3853:71:81;;;611:4324:85;;;;;;;;3740:389:81;;611:4324:85;3853:71:81;;611:4324:85;;3853:71:81;611:4324:85;;;3867:29:81;611:4324:85;;3853:71:81;;;;;;;3918:5;3853:71;;;3740:389;3852:72;;611:4324:85;;;3852:181:81;;3740:389;3835:242;;;;;;4094:28;;;:::i;3835:242::-;4058:8;;3918:5;4058:8;:::o;3852:181::-;611:4324:85;;3945:88:81;;;-1:-1:-1;;;;;611:4324:85;;3853:71:81;3945:88;;611:4324:85;467:2:93;611:4324:85;;;;;;;;-1:-1:-1;611:4324:85;;;;;;;;3959:31:81;611:4324:85;3945:88:81;;;;;;;3918:5;3945:88;;;3852:181;3944:89;;;3852:181;;;;;3945:88;;;;;;-1:-1:-1;3945:88:81;;;;;;:::i;:::-;;;;;3853:71;;;;;;;;;;;;;;:::i;:::-;;;;4148:103:24;966:10:28;-1:-1:-1;611:4324:85;;;;;;;;;885:35;;611:4324;;3901:31:24;611:4324:85;;4468:23:24;4464:108;;4148:103;:::o;:::-;-1:-1:-1;611:4324:85;;;-1:-1:-1;;;;;;;;;;;611:4324:85;;;;;;;;966:10:28;611:4324:85;;;;;;;;;3901:31:24;611:4324:85;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;611:4324:85;;-1:-1:-1;611:4324:85;;;-1:-1:-1;611:4324:85;:::o;:::-;;:::i;:::-;;;;;-1:-1:-1;;;611:4324:85;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;611:4324:85;;;;;;;;:::o;6246:584:91:-;;;;;6360:12;;;611:4324:85;;;6360:24:91;;6356:75;;6246:584;6474:30;;;;;:::i;:::-;611:4324:85;;;;;;6578:12:91;;;;:::i;:::-;6604:24;;;;6246:584;-1:-1:-1;6600:188:91;;;-1:-1:-1;;;;;611:4324:85;;;;;;;6644:21:91;;;:29;:21;;:::i;:29::-;6798:25;6246:584;:::o;6600:188::-;6753:24;;611:4324:85;;8167:38:61;;-1:-1:-1;;;;;611:4324:85;;;;;8167:38:61;:::i;:::-;6753:24:91;;;:::i;6604:::-;611:4324:85;;;;;;6614:14:91;;-1:-1:-1;6604:24:91;;;6356:75;-1:-1:-1;;;611:4324:85;;;;;;6360:12:91;611:4324:85;;;;;;;:::i;:::-;;;;;;;;;;;;;;6356:75:91;;;3326:384:29;-1:-1:-1;;;;;;;;;;;1847:1:29;611:4324:85;;3526:20:29;3522:88;;1847:1;611:4324:85;;3326:384:29:o;3522:88::-;611:4324:85;;-1:-1:-1;;;3569:30:29;;;;;3701:308:85;;611:4324;-1:-1:-1;611:4324:85;3832:13;611:4324;;;-1:-1:-1;611:4324:85;11124:30:91;;;;:::i;:::-;11173;;;-1:-1:-1;11173:30:91;;;;11182:17;;-1:-1:-1;;;;;611:4324:85;;11182:12:91;;:17;:::i;:::-;611:4324:85;;;3832:13;611:4324;;11173:30:91;3890::85;;;11173::91;3886:117:85;;;;3701:308;;:::o;3886:117::-;3936:56;611:4324;-1:-1:-1;611:4324:85;3832:13;611:4324;;;-1:-1:-1;611:4324:85;819:34:63;837:15;819:34;:::i;3936:56:85:-;3701:308;;:::o;3890:30::-;3900:20;;-1:-1:-1;3890:30:85;;;;11173::91;;;-1:-1:-1;11173:30:91;;7270:387:24;-1:-1:-1;;;;;611:4324:85;;-1:-1:-1;611:4324:85;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2887:71:24;611:4324:85;;;;-1:-1:-1;611:4324:85;;;;;;;;;;;-1:-1:-1;;;;;611:4324:85;;;;;;;;;;-1:-1:-1;;611:4324:85;7509:4:24;611:4324:85;;;966:10:28;;-1:-1:-1;;;;;611:4324:85;-1:-1:-1;7532:40:24;-1:-1:-1;;7532:40:24;7509:4;7586:11;:::o;7270:387::-;-1:-1:-1;;;;;611:4324:85;;-1:-1:-1;611:4324:85;;;;;;;;;1356:26:81;;-1:-1:-1;;;;;;;;;;;2887:71:24;611:4324:85;;3901:31:24;611:4324:85;;;;-1:-1:-1;611:4324:85;;;;;;;;;;;-1:-1:-1;;;;;611:4324:85;;;;;;;;;;-1:-1:-1;;611:4324:85;7509:4:24;611:4324:85;;;966:10:28;;-1:-1:-1;;;;;611:4324:85;;7532:40:24;-1:-1:-1;;7532:40:24;7509:4;7586:11;:::o;7432:219::-;7628:12;;;-1:-1:-1;7628:12:24;:::o;7270:387::-;-1:-1:-1;;;;;611:4324:85;;-1:-1:-1;611:4324:85;;;;;;;;;885:35;;-1:-1:-1;;;;;;;;;;;2887:71:24;611:4324:85;;3901:31:24;611:4324:85;7270:387:24;-1:-1:-1;611:4324:85;;;-1:-1:-1;;;;;;;;;;;611:4324:85;;;;;;;;-1:-1:-1;;;;;611:4324:85;;;;;;;;;;;;3901:31:24;611:4324:85;7892:388:24;-1:-1:-1;611:4324:85;;;-1:-1:-1;;;;;;;;;;;611:4324:85;;;;;;;;-1:-1:-1;;;;;611:4324:85;;;;;;;;;;;;;;;;-1:-1:-1;611:4324:85;;;;;;;;;;;-1:-1:-1;;;;;611:4324:85;;;;;;;;;;-1:-1:-1;;611:4324:85;;;966:10:28;;-1:-1:-1;;;;;611:4324:85;;8155:40:24;-1:-1:-1;;8155:40:24;611:4324:85;8209:11:24;:::o;10580:184:91:-;611:4324:85;;10303:8:61;;;:63;-1:-1:-1;10303:63:61;-1:-1:-1;;;;;611:4324:85;;10726:7:91;611:4324:85;;10736:12:91;:17;:12;;:17;:::i;:::-;611:4324:85;;;;;;10580:184:91;:::o;10303:63:61:-;611:4324:85;;;;;;;;;;14249:109:61;-1:-1:-1;14249:109:61;;-1:-1:-1;14249:109:61;;;611:4324:85;;;10303:63:61;;611:4324:85;;;;;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;611:4324:85;;;;;;;;:::i;5907:716:81:-;6030:34;5907:716;6030:34;;;;:::i;:::-;611:4324:85;;-1:-1:-1;;;6080:41:81;;-1:-1:-1;;;;;611:4324:85;;;6080:41:81;;;611:4324:85;;;;;6080:41:81;611:4324:85;;;6090:13:81;611:4324:85;;6080:41:81;;;;;;;-1:-1:-1;6080:41:81;;;5907:716;6079:42;;6075:90;;6266:27;611:4324:85;2540:111:29;6210:14:81;611:4324:85;2540:111:29;;;:::i;:::-;611:4324:85;;;;;;-1:-1:-1;;;;;611:4324:85;;-1:-1:-1;611:4324:85;;;-1:-1:-1;611:4324:85;;6210:14:81;6266:27;:::i;:::-;6080:41;6311:15;;611:4324:85;;;;-1:-1:-1;;;;;;611:4324:85;-1:-1:-1;;;;;611:4324:85;;;;;;;;;;;-1:-1:-1;;;;;611:4324:85;;;;6337:143:81;;5907:716;-1:-1:-1;6493:28:81;611:4324:85;-1:-1:-1;;;;;611:4324:85;;;;;;;6489:128:81;;5907:716;:::o;6489:128::-;6551:55;;;:::i;:::-;;5907:716::o;6337:143::-;6404:65;;;:::i;:::-;;6337:143;;;6075:90;611:4324:85;;-1:-1:-1;;;6144:10:81;;6080:41;;6144:10;6080:41;;;;;;;;;;;;;;:::i;:::-;;;;611:4324:85;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;:::o;7558:604:91:-;;611:4324:85;;7686:17:91;7682:83;;611:4324:85;7789:27:91;611:4324:85;7789:27:91;611:4324:85;;7789:27:91;;;;;;:::i;:::-;7860:14;;;;;:::i;:::-;611:4324:85;;;;;;;;;;;;;;;;7888:22:91;;;7884:77;;7975:21;-1:-1:-1;7975:84:91;;;;7558:604;7971:139;;;;8127:28;;;;:::i;7971:139::-;8082:17;;7789:27;8082:17;611:4324:85;8075:24:91;:::o;7975:84::-;611:4324:85;;;8009:16:91;611:4324:85;;8009:16:91;:::i;:::-;611:4324:85;;;8001:24:91;:57;;;;;7975:84;;;;;;;8001:57;8029:29;8038:8;;;8029:18;8038:8;8029:23;8038:8;;:::i;:::-;8029:18;;:::i;:::-;611:4324:85;;;;;8029:23:91;611:4324:85;;;;8029:29:91;;8001:57;;;;7884:77;7933:17;;;;;7789:27;7933:17;611:4324:85;7926:24:91;:::o;7682:83::-;7726:28;;;;:::i;611:4324:85:-;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;;;;611:4324:85;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;:::i;2737:699::-;;;;;611:4324;;:::i;:::-;;;;2978:16;2974:92;;2737:699;-1:-1:-1;;3080:8:85;611:4324;-1:-1:-1;;;;;611:4324:85;;;;;3080:21;3076:85;;-1:-1:-1;611:4324:85;3218:67;;611:4324;;3257:27;;3218;;:13;;-1:-1:-1;;;;;611:4324:85;3218:13;611:4324;3218:27;3257;;;;611:4324;;;;;;;;;;;3218:67;;;3080:8;3218:67;;;:::i;:::-;;;;;;;;;;3192:192;3218:67;-1:-1:-1;3218:67:85;;;2737:699;3341:28;3303:67;3341:28;;611:4324;3341:28;;;3303:67;;:::i;:::-;3192:192;;:::i;:::-;3398:21;;2737:699;:::o;3218:67::-;3303;3218;;;;3257:27;3218:67;3257:27;3218:67;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;3076:85;-1:-1:-1;;3128:21:85;;-1:-1:-1;;3117:33:85:o;2974:92::-;3024:31;;;;;;;;;;;;;:::i;:::-;2974:92;;;;;3442:253;3552:8;611:4324;-1:-1:-1;;;;;611:4324:85;;;;;;;3552:21;3548:60;;3634:27;3552:8;611:4324;-1:-1:-1;611:4324:85;;;;;;;;;;;3634:27;;;;;;;;;3625:63;3634:27;-1:-1:-1;3634:27:85;;;3442:253;2193:25;;:34;:25;611:4324;;2193:13;611:4324;;;;;;;2193:25;:34;:::i;3634:27::-;2193:34;3634:27;;;;2193:25;3634:27;;;;;;;;;;;:::i;:::-;;;;;;14291:213:59;611:4324:85;14369:24:59;;;;14365:103;;611:4324:85;14291:213:59;:::o;14365:103::-;611:4324:85;;;;14416:41:59;;;;;;14447:2;14416:41;;;611:4324:85;;;;;14416:41:59;611:4324:85;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::o;10552:388:61:-;611:4324:85;;10728:8:61;;;10752:20;;10690:17;10752:20;10690:17;10752:20;10690:17;10752:20;:::o;10724:210::-;611:4324:85;;;;;;;;;;;14249:109:61;10690:17;14249:109;;10690:17;14249:109;;;611:4324:85;:::i;:::-;;;;;;;14249:109:61;611:4324:85;;;;;10911:11:61;;611:4324:85;;10886:37:61;10870:1;10886:37;;;:::o;6893:76:26:-;;;:::i;:::-;;;:::i;:::-;1805:1:29;-1:-1:-1;;;;;;;;;;;611:4324:85;6893:76:26:o;611:4324:85:-;;;;;;;:::i;:::-;-1:-1:-1;611:4324:85;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;-1:-1:-1;;;;;611:4324:85;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;611:4324:85;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::o;4015:918::-;611:4324;;:::i;:::-;;4163:30;611:4324;;4163:30;;;;;;;;;;;:::i;:::-;4208:17;;611:4324;-1:-1:-1;;;;;611:4324:85;;4208:17;611:4324;;4208:54;;:103;;4015:918;4204:161;;4418:15;;;;611:4324;;;;-1:-1:-1;;;4380:54:85;;-1:-1:-1;;;;;611:4324:85;;;4380:54;;;;611:4324;;;;4380:54;4418:15;;;;611:4324;;;;;;;;4390:17;611:4324;4380:54;;;;;;;4208:17;4380:54;;;4015:918;4379:55;;4375:106;;4496:9;;4511:33;;;4208:17;4553:3;4511:33;;611:4324;;4507:44;;;;;4576:36;;;:50;:36;;:::i;:::-;611:4324;-1:-1:-1;;;;;611:4324:85;;;4576:50;;4572:119;;4709:73;4710:72;4745:36;;:33;;;:36;:::i;:::-;4710:72;:::i;:::-;4709:73;;611:4324;4709:73;4705:140;;611:4324;;4496:9;;4705:140;611:4324;;-1:-1:-1;;;4809:21:85;;611:4324;;4809:21;4572:119;611:4324;;-1:-1:-1;;;4653:23:85;;611:4324;;4653:23;4507:44;-1:-1:-1;;611:4324:85;;4380:54;611:4324;;-1:-1:-1;;;;;;611:4324:85;-1:-1:-1;;;;;611:4324:85;;;;;;;;;;-1:-1:-1;4865:26:85;;-1:-1:-1;;611:4324:85;4865:26;4909:17;4015:918;:::o;4375:106::-;4418:15;611:4324;-1:-1:-1;;;4457:13:85;;4380:54;;4457:13;4380:54;;;;;;;;;;;;;;:::i;:::-;;;;4204:161;611:4324;;-1:-1:-1;;;4334:20:85;;;;;4208:103;4266:33;;;;;611:4324;4266:45;4208:103;;6999:207:91;;611:4324:85;;9594:15:61;-1:-1:-1;9619:18:61;9652:7;9658:1;9652:7;;9648:234;;6999:207:91;9906:53:61;;;;;:::i;:::-;9977:8;;;:63;-1:-1:-1;9977:63:61;;-1:-1:-1;;;;;611:4324:85;;7168:7:91;611:4324:85;;;7178:12:91;;:17;:12;;:17;:::i;9977:63:61:-;9992:41;10025:7;9992:48;10025:7;;:::i;:::-;9992:41;14249:109;;;;;;14099:265;;9992:41;611:4324:85;;;;;9992:48:61;9977:63;;;9648:234;9695:14;;;;;:::i;:::-;611:4324:85;;;;;;;9906:53:61;14249:109;;-1:-1:-1;14249:109:61;611:4324:85;14249:109:61;;;-1:-1:-1;14249:109:61;;611:4324:85;;;;;9727:48:61;9723:149;611:4324:85;;;9795:10:61;9723:149;9648:234;;9723:149;9850:7;;;;;;:::i;:::-;9723:149;9648:234;;611:4324:85;;;;;;;:::i;:::-;-1:-1:-1;611:4324:85;;;;;;;:::o;11486:272:91:-;;611:4324:85;11308:22:61;11718:31:91;11486:272;611:4324:85;;:::i;:::-;;;;:::i;:::-;;11308:22:61;;:::i;:::-;611:4324:85;;:::i;:::-;;11718:12:91;611:4324:85;;;;;11731:17:91;611:4324:85;;;;;11731:17:91;;611:4324:85;;11718:12:91;;:31;:::i;:::-;611:4324:85;;;;;;;;;:::i;:::-;;;;;;11731:17:91;11672:79;;611:4324:85;11486:272:91;:::o;2557:104:58:-;;2641:5;;;;;;:13;2557:104;:::o;2641:13::-;;;2557:104;:::o;611:4324:85:-;;;-1:-1:-1;;;611:4324:85;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;611:4324:85;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;11513:870:61;611:4324:85;;11513:870:61;;;611:4324:85;11513:870:61;11672:7;;;;611:4324:85;11775:28:61;11795:7;;;:::i;11775:28::-;611:4324:85;:::i;:::-;;;;;;;;;;;;;;;;11877:15:61;-1:-1:-1;11873:91:61;;611:4324:85;;12233:11:61;611:4324:85;;;12027:16:61;611:4324:85;;;;;;;12027:16:61;;;;12083:7;12063:43;12083:7;;12063:28;12083:7;;:::i;:::-;12063:28;14249:109;;;;;;14099:265;;12063:28;611:4324:85;;;;;;;;;;;;;;;;;12063:43:61;12233:11;611:4324:85;-1:-1:-1;;;;;611:4324:85;;;12023:189:61;611:4324:85;;;12145:52:61;611:4324:85;12155:41:61;611:4324:85;;:::i;:::-;;;;;;;;12155:41:61;-1:-1:-1;;;;;611:4324:85;;12155:41:61;;;611:4324:85;12145:52:61;:::i;:::-;12023:189;;11873:91;611:4324:85;;-1:-1:-1;;;11919:30:61;;;;;11668:709;12283:52;611:4324:85;;12293:41:61;611:4324:85;;:::i;12293:41:61:-;-1:-1:-1;;;;;611:4324:85;;12293:41:61;;;611:4324:85;12145:52:61;:::i;12283:::-;11678:1;12349:17;;:::o;7084:141:26:-;611:4324:85;-1:-1:-1;;;;;;;;;;;611:4324:85;;;;7150:18:26;7146:73;;7084:141::o;7146:73::-;611:4324:85;;-1:-1:-1;;;7191:17:26;;;;;8587:1642:58;8658:6;;8654:45;;9401:7;10201:10;10142:26;10093;10044;9995;9946;9897;9848;611:4324:85;10189:23:58;9401:7;8663:1;611:4324:85;;;;10826:16:58;10822:99;;8587:1642;611:4324:85;;;;10938:15:58;10934:96;;8587:1642;611:4324:85;;;;11047:15:58;11043:96;;8587:1642;611:4324:85;;;;11156:15:58;11152:96;;8587:1642;611:4324:85;;;;11265:14:58;11261:93;;8587:1642;611:4324:85;;;;11371:14:58;11367:93;;8587:1642;611:4324:85;;;;11477:14:58;11473:93;;8587:1642;611:4324:85;;;11579:64:58;;8587:1642;611:4324:85;;;9858:10:58;;;;:::i;:::-;611:4324:85;;;;;9848:26:58;9907:10;;;;:::i;9897:26::-;9956:10;;;;:::i;9946:26::-;10005:10;;;;:::i;9995:26::-;10054:10;;;;:::i;10044:26::-;10103:10;;;;:::i;10093:26::-;10152:10;;;;:::i;10142:26::-;10201:10;;;:::i;11579:64::-;611:4324:85;;11579:64:58;;11473:93;611:4324:85;11511:11:58;;611:4324:85;;11473:93:58;;;;11367;611:4324:85;11405:11:58;;611:4324:85;;11367:93:58;;;;11261;611:4324:85;11299:11:58;;611:4324:85;;11261:93:58;;;;11152:96;611:4324:85;11191:12:58;;611:4324:85;;11152:96:58;;;;11043;611:4324:85;11082:12:58;;611:4324:85;;11043:96:58;;;;10934;611:4324:85;10973:12:58;;611:4324:85;;10934:96:58;;;;10822:99;10862:13;;;611:4324:85;10822:99:58;;;;12736:433:61;;;12919:10;;;;;;13151:11;;;12736:433;:::o;12912:230::-;2900:5:58;;;;;;2910;;;;611:4324:85;;;;;;;;;14249:109:61;-1:-1:-1;14249:109:61;611:4324:85;14249:109:61;;;-1:-1:-1;14249:109:61;;611:4324:85;;;;;-1:-1:-1;12996:136:61;611:4324:85;;;13055:10:61;12996:136;;12912:230;;;;12996:136;13110:7;;;;;;:::i;:::-;12996:136;;","linkReferences":{},"immutableReferences":{"64520":[{"start":1514,"length":32}],"64523":[{"start":3348,"length":32}],"65474":[{"start":1129,"length":32},{"start":3405,"length":32}],"65477":[{"start":863,"length":32},{"start":6996,"length":32}],"65480":[{"start":931,"length":32},{"start":4918,"length":32},{"start":5253,"length":32}],"65483":[{"start":999,"length":32},{"start":4765,"length":32},{"start":5379,"length":32}],"67399":[{"start":2964,"length":32},{"start":8772,"length":32}]}},"methodIdentifiers":{"DEFAULT_ADMIN_ROLE()":"a217fddf","FACTORY()":"2dd31000","HOOK_GAS_LIMIT()":"ff54740f","HOOK_RESERVE()":"557cab44","HOOK_SET_ROLE()":"6679191e","NETWORK_LIMIT_SET_ROLE()":"7d24bb27","NETWORK_REGISTRY()":"c0cd7c3e","OPERATOR_NETWORK_OPT_IN_SERVICE()":"1a80e500","OPERATOR_REGISTRY()":"83ce0322","OPERATOR_VAULT_OPT_IN_SERVICE()":"128e5d82","TYPE()":"bb24fe8a","VAULT_FACTORY()":"103f2907","VERSION()":"ffa1ad74","getRoleAdmin(bytes32)":"248a9ca3","grantRole(bytes32,address)":"2f2ff15d","hasRole(bytes32,address)":"91d14854","hook()":"7f5a7c7b","initialize(bytes)":"439fab91","maxNetworkLimit(bytes32)":"d15b740e","networkLimit(bytes32)":"3eb22c0f","networkLimitAt(bytes32,uint48,bytes)":"5d32a1c9","onSlash(bytes32,address,uint256,uint48,bytes)":"e49561ee","operator()":"570ca735","renounceRole(bytes32,address)":"36568abe","revokeRole(bytes32,address)":"d547741f","setHook(address)":"3dfd3873","setMaxNetworkLimit(uint96,uint256)":"23f752d5","setNetworkLimit(bytes32,uint256)":"02145348","stake(bytes32,address)":"fd4d447c","stakeAt(bytes32,address,uint48,bytes)":"e02f6937","staticDelegateCall(address,bytes)":"9f86fd85","supportsInterface(bytes4)":"01ffc9a7","vault()":"fbfa77cf"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operatorRegistry\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"networkRegistry\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"vaultFactory\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operatorVaultOptInService\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operatorNetworkOptInService\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"delegatorFactory\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"entityType\",\"type\":\"uint64\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"AccessControlBadConfirmation\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"neededRole\",\"type\":\"bytes32\"}],\"name\":\"AccessControlUnauthorizedAccount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AlreadySet\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CheckpointUnorderedInsertion\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"DuplicateRoleHolder\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ExceedsMaxNetworkLimit\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientHookGas\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MissingRoleHolders\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotNetwork\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotOperator\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotSlasher\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotVault\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ReentrancyGuardReentrantCall\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"bits\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"SafeCastOverflowedUintDowncast\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ZeroAddressRoleHolder\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint48\",\"name\":\"captureTimestamp\",\"type\":\"uint48\"}],\"name\":\"OnSlash\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"previousAdminRole\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"newAdminRole\",\"type\":\"bytes32\"}],\"name\":\"RoleAdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleRevoked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"hook\",\"type\":\"address\"}],\"name\":\"SetHook\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"SetMaxNetworkLimit\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"SetNetworkLimit\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DEFAULT_ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"FACTORY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"HOOK_GAS_LIMIT\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"HOOK_RESERVE\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"HOOK_SET_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"NETWORK_LIMIT_SET_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"NETWORK_REGISTRY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"OPERATOR_NETWORK_OPT_IN_SERVICE\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"OPERATOR_REGISTRY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"OPERATOR_VAULT_OPT_IN_SERVICE\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"TYPE\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"VAULT_FACTORY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"VERSION\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleAdmin\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"grantRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"hook\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"}],\"name\":\"maxNetworkLimit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"}],\"name\":\"networkLimit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hint\",\"type\":\"bytes\"}],\"name\":\"networkLimitAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint48\",\"name\":\"captureTimestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"onSlash\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"operator\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"callerConfirmation\",\"type\":\"address\"}],\"name\":\"renounceRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"hook_\",\"type\":\"address\"}],\"name\":\"setHook\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint96\",\"name\":\"identifier\",\"type\":\"uint96\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"setMaxNetworkLimit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"setNetworkLimit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"stake\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hints\",\"type\":\"bytes\"}],\"name\":\"stakeAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"staticDelegateCall\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"vault\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"AccessControlBadConfirmation()\":[{\"details\":\"The caller of a function is not the expected one. NOTE: Don't confuse with {AccessControlUnauthorizedAccount}.\"}],\"AccessControlUnauthorizedAccount(address,bytes32)\":[{\"details\":\"The `account` is missing a role.\"}],\"CheckpointUnorderedInsertion()\":[{\"details\":\"A value was attempted to be inserted on a past checkpoint.\"}],\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"ReentrancyGuardReentrantCall()\":[{\"details\":\"Unauthorized reentrant call.\"}],\"SafeCastOverflowedUintDowncast(uint8,uint256)\":[{\"details\":\"Value doesn't fit in an uint of `bits` size.\"}]},\"events\":{\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"OnSlash(bytes32,address,uint256,uint48)\":{\"params\":{\"amount\":\"amount of the collateral to be slashed\",\"captureTimestamp\":\"time point when the stake was captured\",\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"}},\"RoleAdminChanged(bytes32,bytes32,bytes32)\":{\"details\":\"Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole` `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite {RoleAdminChanged} not being emitted signaling this.\"},\"RoleGranted(bytes32,address,address)\":{\"details\":\"Emitted when `account` is granted `role`. `sender` is the account that originated the contract call, an admin role bearer except when using {AccessControl-_setupRole}.\"},\"RoleRevoked(bytes32,address,address)\":{\"details\":\"Emitted when `account` is revoked `role`. `sender` is the account that originated the contract call: - if using `revokeRole`, it is the admin role bearer - if using `renounceRole`, it is the role bearer (i.e. `account`)\"},\"SetHook(address)\":{\"params\":{\"hook\":\"address of the hook\"}},\"SetMaxNetworkLimit(bytes32,uint256)\":{\"params\":{\"amount\":\"new maximum subnetwork's limit (how much stake the subnetwork is ready to get)\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"}},\"SetNetworkLimit(bytes32,uint256)\":{\"params\":{\"amount\":\"new subnetwork's limit (how much stake the vault curator is ready to give to the subnetwork)\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"}}},\"kind\":\"dev\",\"methods\":{\"VERSION()\":{\"details\":\"Must return 1 for this one.\",\"returns\":{\"_0\":\"version of the delegator\"}},\"getRoleAdmin(bytes32)\":{\"details\":\"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}.\"},\"grantRole(bytes32,address)\":{\"details\":\"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event.\"},\"hasRole(bytes32,address)\":{\"details\":\"Returns `true` if `account` has been granted `role`.\"},\"initialize(bytes)\":{\"params\":{\"data\":\"some data to use\"}},\"networkLimit(bytes32)\":{\"params\":{\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"},\"returns\":{\"_0\":\"limit of the subnetwork\"}},\"networkLimitAt(bytes32,uint48,bytes)\":{\"params\":{\"hint\":\"hint for checkpoint index\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\",\"timestamp\":\"time point to get the subnetwork limit at\"},\"returns\":{\"_0\":\"limit of the subnetwork at the given timestamp\"}},\"onSlash(bytes32,address,uint256,uint48,bytes)\":{\"details\":\"Only the vault's slasher can call this function.\",\"params\":{\"amount\":\"amount of the collateral slashed\",\"captureTimestamp\":\"time point when the stake was captured\",\"data\":\"some additional data\",\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"}},\"renounceRole(bytes32,address)\":{\"details\":\"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `callerConfirmation`. May emit a {RoleRevoked} event.\"},\"revokeRole(bytes32,address)\":{\"details\":\"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event.\"},\"setHook(address)\":{\"details\":\"Only a HOOK_SET_ROLE holder can call this function. The hook can have arbitrary logic under certain functions, however, it doesn't affect the stake guarantees.\",\"params\":{\"hook\":\"address of the hook\"}},\"setMaxNetworkLimit(uint96,uint256)\":{\"details\":\"Only a network can call this function.\",\"params\":{\"amount\":\"new maximum subnetwork's limit\"}},\"setNetworkLimit(bytes32,uint256)\":{\"details\":\"Only a NETWORK_LIMIT_SET_ROLE holder can call this function.\",\"params\":{\"amount\":\"new limit of the subnetwork\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"}},\"stake(bytes32,address)\":{\"details\":\"Warning: this function is not safe to use for stake capturing, as it can change by the end of the block.\",\"params\":{\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"},\"returns\":{\"_0\":\"slashable stake until the end of the next epoch\"}},\"stakeAt(bytes32,address,uint48,bytes)\":{\"details\":\"Warning: it is not safe to use timestamp >= current one for the stake capturing, as it can change later.\",\"params\":{\"hints\":\"hints for the checkpoints' indexes\",\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\",\"timestamp\":\"time point to capture the stake at\"},\"returns\":{\"_0\":\"slashable stake at the given timestamp until the end of the consequent epoch\"}},\"staticDelegateCall(address,bytes)\":{\"details\":\"It allows to use this contract's storage on-chain.\",\"params\":{\"data\":\"data to make a delegatecall with\",\"target\":\"address of the contract to make a delegatecall to\"}},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"}},\"stateVariables\":{\"NETWORK_LIMIT_SET_ROLE\":{\"return\":\"identifier of the subnetwork limit setter role\",\"returns\":{\"_0\":\"identifier of the subnetwork limit setter role\"}},\"OPERATOR_REGISTRY\":{\"return\":\"address of the operator registry\",\"returns\":{\"_0\":\"address of the operator registry\"}},\"operator\":{\"return\":\"address of the operator\",\"returns\":{\"_0\":\"address of the operator\"}}},\"version\":1},\"userdoc\":{\"events\":{\"OnSlash(bytes32,address,uint256,uint48)\":{\"notice\":\"Emitted when a slash happens.\"},\"SetHook(address)\":{\"notice\":\"Emitted when a hook is set.\"},\"SetMaxNetworkLimit(bytes32,uint256)\":{\"notice\":\"Emitted when a subnetwork's maximum limit is set.\"},\"SetNetworkLimit(bytes32,uint256)\":{\"notice\":\"Emitted when a subnetwork's limit is set.\"}},\"kind\":\"user\",\"methods\":{\"FACTORY()\":{\"notice\":\"Get the factory's address.\"},\"HOOK_GAS_LIMIT()\":{\"notice\":\"Get a gas limit for the hook.\"},\"HOOK_RESERVE()\":{\"notice\":\"Get a reserve gas between the gas limit check and the hook's execution.\"},\"HOOK_SET_ROLE()\":{\"notice\":\"Get a hook setter's role.\"},\"NETWORK_LIMIT_SET_ROLE()\":{\"notice\":\"Get a subnetwork limit setter's role.\"},\"NETWORK_REGISTRY()\":{\"notice\":\"Get the network registry's address.\"},\"OPERATOR_NETWORK_OPT_IN_SERVICE()\":{\"notice\":\"Get the operator-network opt-in service's address.\"},\"OPERATOR_REGISTRY()\":{\"notice\":\"Get the operator registry's address.\"},\"OPERATOR_VAULT_OPT_IN_SERVICE()\":{\"notice\":\"Get the operator-vault opt-in service's address.\"},\"TYPE()\":{\"notice\":\"Get the entity's type.\"},\"VAULT_FACTORY()\":{\"notice\":\"Get the vault factory's address.\"},\"VERSION()\":{\"notice\":\"Get a version of the delegator (different versions mean different interfaces).\"},\"hook()\":{\"notice\":\"Get the hook's address.\"},\"initialize(bytes)\":{\"notice\":\"Initialize this entity contract by using a given data.\"},\"maxNetworkLimit(bytes32)\":{\"notice\":\"Get a particular subnetwork's maximum limit (meaning the subnetwork is not ready to get more as a stake).\"},\"networkLimit(bytes32)\":{\"notice\":\"Get a subnetwork's limit (how much stake the vault curator is ready to give to the subnetwork).\"},\"networkLimitAt(bytes32,uint48,bytes)\":{\"notice\":\"Get a subnetwork's limit at a given timestamp using a hint (how much stake the vault curator is ready to give to the subnetwork).\"},\"onSlash(bytes32,address,uint256,uint48,bytes)\":{\"notice\":\"Called when a slash happens.\"},\"operator()\":{\"notice\":\"Get an operator managing the vault's funds.\"},\"setHook(address)\":{\"notice\":\"Set a new hook.\"},\"setMaxNetworkLimit(uint96,uint256)\":{\"notice\":\"Set a maximum limit for a subnetwork (how much stake the subnetwork is ready to get). identifier identifier of the subnetwork\"},\"setNetworkLimit(bytes32,uint256)\":{\"notice\":\"Set a subnetwork's limit (how much stake the vault curator is ready to give to the subnetwork).\"},\"stake(bytes32,address)\":{\"notice\":\"Get a stake that a given subnetwork will be able to slash for a certain operator until the end of the next epoch (if no cross-slashing and no slashings by the subnetwork).\"},\"stakeAt(bytes32,address,uint48,bytes)\":{\"notice\":\"Get a stake that a given subnetwork could be able to slash for a certain operator at a given timestamp until the end of the consequent epoch using hints (if no cross-slashing and no slashings by the subnetwork).\"},\"staticDelegateCall(address,bytes)\":{\"notice\":\"Make a delegatecall from this contract to a given target contract with a particular data (always reverts with a return data).\"},\"vault()\":{\"notice\":\"Get the vault's address.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/contracts/delegator/OperatorSpecificDelegator.sol\":\"OperatorSpecificDelegator\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol\":{\"keccak256\":\"0x6662ec4e5cefca03eeadd073e9469df8d2944bb2ee8ec8f7622c2c46aab5f225\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4d8544c6f8daa4d1bc215c6a72fe0acdb748664a105b0e5efc19295667521d45\",\"dweb:/ipfs/QmdGWqdnXT8S3RgCR6aV8XHZrsybieMQLLnug1NtpSjEXN\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609\",\"dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9\",\"dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardUpgradeable.sol\":{\"keccak256\":\"0xb44e086e941292cdc7f440de51478493894ef0b1aeccb0c4047445919f667f74\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://942dad22fbdc1669f025540ba63aa3ccfad5f8458fc5d4525b31ebf272e7af45\",\"dweb:/ipfs/Qmdo4X2M82aM3AMoW2kf2jhYkSCyC4T1pHNd6obdsDFnAB\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol\":{\"keccak256\":\"0xdaba3f7c42c55b2896353f32bd27d4d5f8bae741b3b05d4c53f67abc4dc47ce8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1fa2e61141c602510bcd2cd936ed9561922ac8772a9b9c9a9db091a74e354a45\",\"dweb:/ipfs/QmcHQDDoEBwJmwUbzoVkytvJsBx3KVHYFFnDkvRGWh9Wmh\"]},\"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0xb6b36edd6a2999fd243ff226d6cbf84bd71af2432bbd0dfe19392996a1d9cb41\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1fd2f35495652e57e3f99bc6c510bc5f7dd398a176ea2e72d8ed730aebc6ca26\",\"dweb:/ipfs/QmTQV6X4gkikTib49cho5iDX3JvSQbdsoEChoDwrk3CbbH\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875\",\"dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0xe19a4d5f31d2861e7344e8e535e2feafb913d806d3e2b5fe7782741a2a7094fe\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4aed79c0fa6f0546ed02f2f683e8f77f0fd2ed7eb34d8bbf3d373c9a6d95b13c\",\"dweb:/ipfs/QmWqVz6UAVqmnWU5pqYPt1o6iDEZyPaBraAA3rKfTTSfYj\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/Checkpoints.sol\":{\"keccak256\":\"0xbdc5e074d7dd6678f67e92b1a51a20226801a407b0e1af3da367c5d1ff4519ad\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a36cca6b22fff3db16fc789ff6c60eea71d4b156065d4d0c83a0bc5e91a77a8b\",\"dweb:/ipfs/QmYN3exd5AemxjBrN8XMB1p5LbbE16uC3sjbYjwi8AjcGR\"]},\"lib/openzeppelin-contracts/contracts/utils/types/Time.sol\":{\"keccak256\":\"0xc7755af115020049e4140f224f9ee88d7e1799ffb0646f37bf0df24bf6213f58\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7f09bf94d5274334ec021f61a04659db303f31e60460e14b709c9bf187740111\",\"dweb:/ipfs/QmNvgomZYUwFAt4cZbPWAiTeSZQreGehY9BK5xyVJsUttb\"]},\"src/contracts/common/Entity.sol\":{\"keccak256\":\"0x3d61a932995b8443381f3950542d388223a2c26dd5d29a3274dea3baa7388bd7\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://7cdf5f03ca72fd263fd32ff59c8d88ddca911ae83896a287d10772c1bbe9b138\",\"dweb:/ipfs/QmbP84r5BWT1Rn9AYTntWSf3xUMTTCohTZJFhbBhDXFoHa\"]},\"src/contracts/common/StaticDelegateCallable.sol\":{\"keccak256\":\"0x350029aa8955eacaffffaeb58babc5c98e80ebc5c5db388ed17ee6465f4a9d90\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://eb392a8ee9050e0af606897df63e3404e3829e8b688b580663892f9664195764\",\"dweb:/ipfs/QmaXC8jqV8UrrAFkzXTEv2fJF56sy33HhLxAzaRZmUxuXD\"]},\"src/contracts/delegator/BaseDelegator.sol\":{\"keccak256\":\"0x7c54d491fdd4415b764a9c8defa068e56d4c0c8c9419be0053a1d377669290e8\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://9238bfbad0f6eeb0dc7727724de14380f1980b395902269703d5e2ef07e52e10\",\"dweb:/ipfs/QmPJn1V4HNXcEghYvogGuSTF24dSQUPosR5qtsXcmNqRm3\"]},\"src/contracts/delegator/OperatorSpecificDelegator.sol\":{\"keccak256\":\"0x630ce62fa30b9f3349ab7a8cf8dbf041319febc6dd757be2f94d3d25944ed328\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://c2ac59d47ce57d2a6819ae9833e1a618a371eccff93eb5ab367b201b01f42bfa\",\"dweb:/ipfs/QmdBpGMBivpNPv2WbH8vnCUy5xkVeaxQvGgqi33vKCz1kA\"]},\"src/contracts/libraries/Checkpoints.sol\":{\"keccak256\":\"0xba90097c8bfe0a975499428b5f8ac5569483c7d92ccc28c12d70de416aae040c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://12f5d93ca94cd06d3147db68993165a58e17903ed53682560de61f3085ad4609\",\"dweb:/ipfs/QmePiuAqvXprMLmFZkGZeGjvGPAvsEDHfCDv7BoQhXu9xE\"]},\"src/contracts/libraries/Subnetwork.sol\":{\"keccak256\":\"0xf5ef5506fd66082b3c2e7f3df37529f5a8efad32ac62e7c8914bd63219190bfe\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba031a54ee0d0e9a270c2b9e18437f5668cfeb659cfd5fe0677459d7fcac2a56\",\"dweb:/ipfs/QmReP3H7qQ78tAfgLnJKsNEQNCQfF1X1Get38Ffd4kzq32\"]},\"src/interfaces/common/IEntity.sol\":{\"keccak256\":\"0x8ef4b63d6da63489778ccd5f8d13ebdd527dd4b62730b2c616df5af7474d2d21\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a8d69576a9219d85c50816a18ad53a4d53cfcb27ed38b8cccc808dc2734b71b\",\"dweb:/ipfs/QmYVN3P4Q4REvBWJ97TbAcaxm3uyB2anV6NSGa6ZtSwcEv\"]},\"src/interfaces/common/IMigratableEntity.sol\":{\"keccak256\":\"0x8f5f2809f3afbe8ebfbb365dd7b57b4dd3b6f9943a6187eaf648d45895b8e3c4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ffe640537d539e7a4fde70d30d3e4c57f4ba9c2c25c450cea713aae38e8fd5c\",\"dweb:/ipfs/QmSUTGzvdcn1R1KB7tLThMRtESsfPbeXDhhhKWGtntzBds\"]},\"src/interfaces/common/IRegistry.sol\":{\"keccak256\":\"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014\",\"dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK\"]},\"src/interfaces/common/IStaticDelegateCallable.sol\":{\"keccak256\":\"0xa335d4e81b9071b7de66ef92b43ff20671d86516eb1be46fef29a3483cd3f5d5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d464b9db863c14c05547d2b23352f2e9b7b784799cf09f6bbc4906a2a74e3516\",\"dweb:/ipfs/QmUVWzFvJz7eEbDQKiFTTzwi7TEbjcs3VmwdM4kuptAKvi\"]},\"src/interfaces/delegator/IBaseDelegator.sol\":{\"keccak256\":\"0x96bb312f032e17accce3f8f80936d99468029d6b37c9ca74acdb4b026a0148ee\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2a66dcb5b7d1a6ef6a363431ea98ebd78bc4fdd3d7a134d9b542dc66e7d025c2\",\"dweb:/ipfs/QmRhTPLd2ZAyRHmJUFUcWKs9b3if49QY17LYZuRqWmghw8\"]},\"src/interfaces/delegator/IDelegatorHook.sol\":{\"keccak256\":\"0xc51aa8d7d1f6c8043ee819b7aeb86da0e993912e1442098df897e299f01f9f46\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://adddf5cb2ba282aeb576b26efb28640f865a1721cc9b6eee8b3ee0457a2c9780\",\"dweb:/ipfs/QmNYgAmnLRwWZbhTuQhZs9rx4zcme1df5mEepkrniorSoW\"]},\"src/interfaces/delegator/IOperatorSpecificDelegator.sol\":{\"keccak256\":\"0x72075cab585dc17240cc3e32bc99b92f0d5627ddd988fed680e3e1a52d5a01e4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7448bc90699409ae61d85216b5efc2143a37f0f73354be2aea993bc54afca441\",\"dweb:/ipfs/QmXE4gAxM8pHosZK8mcTcj17puBx484meDCcmrDePskGHZ\"]},\"src/interfaces/service/IOptInService.sol\":{\"keccak256\":\"0x76fb5460a6d87a5705433d4fbeff7253cd75b8bbd0c888b2088f16e86ace146a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://990322019b3d11465f7024bae77ccbf7e2fe5d6fa3c754584778f37d04fa1337\",\"dweb:/ipfs/QmaSNHzcqxTkUCG9a4nqVfLECHLdjdrwAnDi3yDC7tDL24\"]},\"src/interfaces/vault/IVault.sol\":{\"keccak256\":\"0xffee01d383cd4e1a5530c614bf4360c1ef070c288abec9da1eb531b51bc07235\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://04f0046cac285d8ec44ebbb1f79dc94fab4495767190cad8364fbc1fafaadfb9\",\"dweb:/ipfs/QmUawAunwzXfCyShWfhKeThAgKtqe51hmrxvrXvM772M2R\"]},\"src/interfaces/vault/IVaultStorage.sol\":{\"keccak256\":\"0x592626f13754194f83047135de19229c49390bd59e34659b1bb38be71d973a22\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://06a6a9dfddd05e580b32bebe2cff4f63ba26a653180676d58225dd30d9c89d3e\",\"dweb:/ipfs/QmdgzBeY6Sxo8mGtyBxtv1tM1c2kU6J6zjeRd7vuXm4DU6\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.25+commit.b61c2a91"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"operatorRegistry","type":"address"},{"internalType":"address","name":"networkRegistry","type":"address"},{"internalType":"address","name":"vaultFactory","type":"address"},{"internalType":"address","name":"operatorVaultOptInService","type":"address"},{"internalType":"address","name":"operatorNetworkOptInService","type":"address"},{"internalType":"address","name":"delegatorFactory","type":"address"},{"internalType":"uint64","name":"entityType","type":"uint64"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"AccessControlBadConfirmation"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bytes32","name":"neededRole","type":"bytes32"}],"type":"error","name":"AccessControlUnauthorizedAccount"},{"inputs":[],"type":"error","name":"AlreadySet"},{"inputs":[],"type":"error","name":"CheckpointUnorderedInsertion"},{"inputs":[],"type":"error","name":"DuplicateRoleHolder"},{"inputs":[],"type":"error","name":"ExceedsMaxNetworkLimit"},{"inputs":[],"type":"error","name":"InsufficientHookGas"},{"inputs":[],"type":"error","name":"InvalidInitialization"},{"inputs":[],"type":"error","name":"MissingRoleHolders"},{"inputs":[],"type":"error","name":"NotInitialized"},{"inputs":[],"type":"error","name":"NotInitializing"},{"inputs":[],"type":"error","name":"NotNetwork"},{"inputs":[],"type":"error","name":"NotOperator"},{"inputs":[],"type":"error","name":"NotSlasher"},{"inputs":[],"type":"error","name":"NotVault"},{"inputs":[],"type":"error","name":"ReentrancyGuardReentrantCall"},{"inputs":[{"internalType":"uint8","name":"bits","type":"uint8"},{"internalType":"uint256","name":"value","type":"uint256"}],"type":"error","name":"SafeCastOverflowedUintDowncast"},{"inputs":[],"type":"error","name":"ZeroAddressRoleHolder"},{"inputs":[{"internalType":"uint64","name":"version","type":"uint64","indexed":false}],"type":"event","name":"Initialized","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32","indexed":true},{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false},{"internalType":"uint48","name":"captureTimestamp","type":"uint48","indexed":false}],"type":"event","name":"OnSlash","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"bytes32","name":"previousAdminRole","type":"bytes32","indexed":true},{"internalType":"bytes32","name":"newAdminRole","type":"bytes32","indexed":true}],"type":"event","name":"RoleAdminChanged","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"address","name":"sender","type":"address","indexed":true}],"type":"event","name":"RoleGranted","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"address","name":"sender","type":"address","indexed":true}],"type":"event","name":"RoleRevoked","anonymous":false},{"inputs":[{"internalType":"address","name":"hook","type":"address","indexed":true}],"type":"event","name":"SetHook","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"SetMaxNetworkLimit","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"SetNetworkLimit","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"DEFAULT_ADMIN_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"FACTORY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"HOOK_GAS_LIMIT","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"HOOK_RESERVE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"HOOK_SET_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"NETWORK_LIMIT_SET_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"NETWORK_REGISTRY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"OPERATOR_NETWORK_OPT_IN_SERVICE","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"OPERATOR_REGISTRY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"OPERATOR_VAULT_OPT_IN_SERVICE","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"TYPE","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"VAULT_FACTORY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"VERSION","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getRoleAdmin","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"grantRole"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"hasRole","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"hook","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"}],"stateMutability":"view","type":"function","name":"maxNetworkLimit","outputs":[{"internalType":"uint256","name":"value","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"}],"stateMutability":"view","type":"function","name":"networkLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"uint48","name":"timestamp","type":"uint48"},{"internalType":"bytes","name":"hint","type":"bytes"}],"stateMutability":"view","type":"function","name":"networkLimitAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint48","name":"captureTimestamp","type":"uint48"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"onSlash"},{"inputs":[],"stateMutability":"view","type":"function","name":"operator","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"callerConfirmation","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"renounceRole"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"revokeRole"},{"inputs":[{"internalType":"address","name":"hook_","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setHook"},{"inputs":[{"internalType":"uint96","name":"identifier","type":"uint96"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setMaxNetworkLimit"},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setNetworkLimit"},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"stake","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint48","name":"timestamp","type":"uint48"},{"internalType":"bytes","name":"hints","type":"bytes"}],"stateMutability":"view","type":"function","name":"stakeAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"staticDelegateCall"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"vault","outputs":[{"internalType":"address","name":"","type":"address"}]}],"devdoc":{"kind":"dev","methods":{"VERSION()":{"details":"Must return 1 for this one.","returns":{"_0":"version of the delegator"}},"getRoleAdmin(bytes32)":{"details":"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}."},"grantRole(bytes32,address)":{"details":"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event."},"hasRole(bytes32,address)":{"details":"Returns `true` if `account` has been granted `role`."},"initialize(bytes)":{"params":{"data":"some data to use"}},"networkLimit(bytes32)":{"params":{"subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"},"returns":{"_0":"limit of the subnetwork"}},"networkLimitAt(bytes32,uint48,bytes)":{"params":{"hint":"hint for checkpoint index","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)","timestamp":"time point to get the subnetwork limit at"},"returns":{"_0":"limit of the subnetwork at the given timestamp"}},"onSlash(bytes32,address,uint256,uint48,bytes)":{"details":"Only the vault's slasher can call this function.","params":{"amount":"amount of the collateral slashed","captureTimestamp":"time point when the stake was captured","data":"some additional data","operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"}},"renounceRole(bytes32,address)":{"details":"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `callerConfirmation`. May emit a {RoleRevoked} event."},"revokeRole(bytes32,address)":{"details":"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event."},"setHook(address)":{"details":"Only a HOOK_SET_ROLE holder can call this function. The hook can have arbitrary logic under certain functions, however, it doesn't affect the stake guarantees.","params":{"hook":"address of the hook"}},"setMaxNetworkLimit(uint96,uint256)":{"details":"Only a network can call this function.","params":{"amount":"new maximum subnetwork's limit"}},"setNetworkLimit(bytes32,uint256)":{"details":"Only a NETWORK_LIMIT_SET_ROLE holder can call this function.","params":{"amount":"new limit of the subnetwork","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"}},"stake(bytes32,address)":{"details":"Warning: this function is not safe to use for stake capturing, as it can change by the end of the block.","params":{"operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"},"returns":{"_0":"slashable stake until the end of the next epoch"}},"stakeAt(bytes32,address,uint48,bytes)":{"details":"Warning: it is not safe to use timestamp >= current one for the stake capturing, as it can change later.","params":{"hints":"hints for the checkpoints' indexes","operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)","timestamp":"time point to capture the stake at"},"returns":{"_0":"slashable stake at the given timestamp until the end of the consequent epoch"}},"staticDelegateCall(address,bytes)":{"details":"It allows to use this contract's storage on-chain.","params":{"data":"data to make a delegatecall with","target":"address of the contract to make a delegatecall to"}},"supportsInterface(bytes4)":{"details":"See {IERC165-supportsInterface}."}},"version":1},"userdoc":{"kind":"user","methods":{"FACTORY()":{"notice":"Get the factory's address."},"HOOK_GAS_LIMIT()":{"notice":"Get a gas limit for the hook."},"HOOK_RESERVE()":{"notice":"Get a reserve gas between the gas limit check and the hook's execution."},"HOOK_SET_ROLE()":{"notice":"Get a hook setter's role."},"NETWORK_LIMIT_SET_ROLE()":{"notice":"Get a subnetwork limit setter's role."},"NETWORK_REGISTRY()":{"notice":"Get the network registry's address."},"OPERATOR_NETWORK_OPT_IN_SERVICE()":{"notice":"Get the operator-network opt-in service's address."},"OPERATOR_REGISTRY()":{"notice":"Get the operator registry's address."},"OPERATOR_VAULT_OPT_IN_SERVICE()":{"notice":"Get the operator-vault opt-in service's address."},"TYPE()":{"notice":"Get the entity's type."},"VAULT_FACTORY()":{"notice":"Get the vault factory's address."},"VERSION()":{"notice":"Get a version of the delegator (different versions mean different interfaces)."},"hook()":{"notice":"Get the hook's address."},"initialize(bytes)":{"notice":"Initialize this entity contract by using a given data."},"maxNetworkLimit(bytes32)":{"notice":"Get a particular subnetwork's maximum limit (meaning the subnetwork is not ready to get more as a stake)."},"networkLimit(bytes32)":{"notice":"Get a subnetwork's limit (how much stake the vault curator is ready to give to the subnetwork)."},"networkLimitAt(bytes32,uint48,bytes)":{"notice":"Get a subnetwork's limit at a given timestamp using a hint (how much stake the vault curator is ready to give to the subnetwork)."},"onSlash(bytes32,address,uint256,uint48,bytes)":{"notice":"Called when a slash happens."},"operator()":{"notice":"Get an operator managing the vault's funds."},"setHook(address)":{"notice":"Set a new hook."},"setMaxNetworkLimit(uint96,uint256)":{"notice":"Set a maximum limit for a subnetwork (how much stake the subnetwork is ready to get). identifier identifier of the subnetwork"},"setNetworkLimit(bytes32,uint256)":{"notice":"Set a subnetwork's limit (how much stake the vault curator is ready to give to the subnetwork)."},"stake(bytes32,address)":{"notice":"Get a stake that a given subnetwork will be able to slash for a certain operator until the end of the next epoch (if no cross-slashing and no slashings by the subnetwork)."},"stakeAt(bytes32,address,uint48,bytes)":{"notice":"Get a stake that a given subnetwork could be able to slash for a certain operator at a given timestamp until the end of the consequent epoch using hints (if no cross-slashing and no slashings by the subnetwork)."},"staticDelegateCall(address,bytes)":{"notice":"Make a delegatecall from this contract to a given target contract with a particular data (always reverts with a return data)."},"vault()":{"notice":"Get the vault's address."}},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/contracts/delegator/OperatorSpecificDelegator.sol":"OperatorSpecificDelegator"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol":{"keccak256":"0x6662ec4e5cefca03eeadd073e9469df8d2944bb2ee8ec8f7622c2c46aab5f225","urls":["bzz-raw://4d8544c6f8daa4d1bc215c6a72fe0acdb748664a105b0e5efc19295667521d45","dweb:/ipfs/QmdGWqdnXT8S3RgCR6aV8XHZrsybieMQLLnug1NtpSjEXN"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b","urls":["bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609","dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol":{"keccak256":"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397","urls":["bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9","dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardUpgradeable.sol":{"keccak256":"0xb44e086e941292cdc7f440de51478493894ef0b1aeccb0c4047445919f667f74","urls":["bzz-raw://942dad22fbdc1669f025540ba63aa3ccfad5f8458fc5d4525b31ebf272e7af45","dweb:/ipfs/Qmdo4X2M82aM3AMoW2kf2jhYkSCyC4T1pHNd6obdsDFnAB"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol":{"keccak256":"0xdaba3f7c42c55b2896353f32bd27d4d5f8bae741b3b05d4c53f67abc4dc47ce8","urls":["bzz-raw://1fa2e61141c602510bcd2cd936ed9561922ac8772a9b9c9a9db091a74e354a45","dweb:/ipfs/QmcHQDDoEBwJmwUbzoVkytvJsBx3KVHYFFnDkvRGWh9Wmh"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol":{"keccak256":"0xb6b36edd6a2999fd243ff226d6cbf84bd71af2432bbd0dfe19392996a1d9cb41","urls":["bzz-raw://1fd2f35495652e57e3f99bc6c510bc5f7dd398a176ea2e72d8ed730aebc6ca26","dweb:/ipfs/QmTQV6X4gkikTib49cho5iDX3JvSQbdsoEChoDwrk3CbbH"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b","urls":["bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df","dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d","urls":["bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875","dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol":{"keccak256":"0xe19a4d5f31d2861e7344e8e535e2feafb913d806d3e2b5fe7782741a2a7094fe","urls":["bzz-raw://4aed79c0fa6f0546ed02f2f683e8f77f0fd2ed7eb34d8bbf3d373c9a6d95b13c","dweb:/ipfs/QmWqVz6UAVqmnWU5pqYPt1o6iDEZyPaBraAA3rKfTTSfYj"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/Checkpoints.sol":{"keccak256":"0xbdc5e074d7dd6678f67e92b1a51a20226801a407b0e1af3da367c5d1ff4519ad","urls":["bzz-raw://a36cca6b22fff3db16fc789ff6c60eea71d4b156065d4d0c83a0bc5e91a77a8b","dweb:/ipfs/QmYN3exd5AemxjBrN8XMB1p5LbbE16uC3sjbYjwi8AjcGR"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/types/Time.sol":{"keccak256":"0xc7755af115020049e4140f224f9ee88d7e1799ffb0646f37bf0df24bf6213f58","urls":["bzz-raw://7f09bf94d5274334ec021f61a04659db303f31e60460e14b709c9bf187740111","dweb:/ipfs/QmNvgomZYUwFAt4cZbPWAiTeSZQreGehY9BK5xyVJsUttb"],"license":"MIT"},"src/contracts/common/Entity.sol":{"keccak256":"0x3d61a932995b8443381f3950542d388223a2c26dd5d29a3274dea3baa7388bd7","urls":["bzz-raw://7cdf5f03ca72fd263fd32ff59c8d88ddca911ae83896a287d10772c1bbe9b138","dweb:/ipfs/QmbP84r5BWT1Rn9AYTntWSf3xUMTTCohTZJFhbBhDXFoHa"],"license":"BUSL-1.1"},"src/contracts/common/StaticDelegateCallable.sol":{"keccak256":"0x350029aa8955eacaffffaeb58babc5c98e80ebc5c5db388ed17ee6465f4a9d90","urls":["bzz-raw://eb392a8ee9050e0af606897df63e3404e3829e8b688b580663892f9664195764","dweb:/ipfs/QmaXC8jqV8UrrAFkzXTEv2fJF56sy33HhLxAzaRZmUxuXD"],"license":"BUSL-1.1"},"src/contracts/delegator/BaseDelegator.sol":{"keccak256":"0x7c54d491fdd4415b764a9c8defa068e56d4c0c8c9419be0053a1d377669290e8","urls":["bzz-raw://9238bfbad0f6eeb0dc7727724de14380f1980b395902269703d5e2ef07e52e10","dweb:/ipfs/QmPJn1V4HNXcEghYvogGuSTF24dSQUPosR5qtsXcmNqRm3"],"license":"BUSL-1.1"},"src/contracts/delegator/OperatorSpecificDelegator.sol":{"keccak256":"0x630ce62fa30b9f3349ab7a8cf8dbf041319febc6dd757be2f94d3d25944ed328","urls":["bzz-raw://c2ac59d47ce57d2a6819ae9833e1a618a371eccff93eb5ab367b201b01f42bfa","dweb:/ipfs/QmdBpGMBivpNPv2WbH8vnCUy5xkVeaxQvGgqi33vKCz1kA"],"license":"BUSL-1.1"},"src/contracts/libraries/Checkpoints.sol":{"keccak256":"0xba90097c8bfe0a975499428b5f8ac5569483c7d92ccc28c12d70de416aae040c","urls":["bzz-raw://12f5d93ca94cd06d3147db68993165a58e17903ed53682560de61f3085ad4609","dweb:/ipfs/QmePiuAqvXprMLmFZkGZeGjvGPAvsEDHfCDv7BoQhXu9xE"],"license":"MIT"},"src/contracts/libraries/Subnetwork.sol":{"keccak256":"0xf5ef5506fd66082b3c2e7f3df37529f5a8efad32ac62e7c8914bd63219190bfe","urls":["bzz-raw://ba031a54ee0d0e9a270c2b9e18437f5668cfeb659cfd5fe0677459d7fcac2a56","dweb:/ipfs/QmReP3H7qQ78tAfgLnJKsNEQNCQfF1X1Get38Ffd4kzq32"],"license":"MIT"},"src/interfaces/common/IEntity.sol":{"keccak256":"0x8ef4b63d6da63489778ccd5f8d13ebdd527dd4b62730b2c616df5af7474d2d21","urls":["bzz-raw://5a8d69576a9219d85c50816a18ad53a4d53cfcb27ed38b8cccc808dc2734b71b","dweb:/ipfs/QmYVN3P4Q4REvBWJ97TbAcaxm3uyB2anV6NSGa6ZtSwcEv"],"license":"MIT"},"src/interfaces/common/IMigratableEntity.sol":{"keccak256":"0x8f5f2809f3afbe8ebfbb365dd7b57b4dd3b6f9943a6187eaf648d45895b8e3c4","urls":["bzz-raw://0ffe640537d539e7a4fde70d30d3e4c57f4ba9c2c25c450cea713aae38e8fd5c","dweb:/ipfs/QmSUTGzvdcn1R1KB7tLThMRtESsfPbeXDhhhKWGtntzBds"],"license":"MIT"},"src/interfaces/common/IRegistry.sol":{"keccak256":"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb","urls":["bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014","dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK"],"license":"MIT"},"src/interfaces/common/IStaticDelegateCallable.sol":{"keccak256":"0xa335d4e81b9071b7de66ef92b43ff20671d86516eb1be46fef29a3483cd3f5d5","urls":["bzz-raw://d464b9db863c14c05547d2b23352f2e9b7b784799cf09f6bbc4906a2a74e3516","dweb:/ipfs/QmUVWzFvJz7eEbDQKiFTTzwi7TEbjcs3VmwdM4kuptAKvi"],"license":"MIT"},"src/interfaces/delegator/IBaseDelegator.sol":{"keccak256":"0x96bb312f032e17accce3f8f80936d99468029d6b37c9ca74acdb4b026a0148ee","urls":["bzz-raw://2a66dcb5b7d1a6ef6a363431ea98ebd78bc4fdd3d7a134d9b542dc66e7d025c2","dweb:/ipfs/QmRhTPLd2ZAyRHmJUFUcWKs9b3if49QY17LYZuRqWmghw8"],"license":"MIT"},"src/interfaces/delegator/IDelegatorHook.sol":{"keccak256":"0xc51aa8d7d1f6c8043ee819b7aeb86da0e993912e1442098df897e299f01f9f46","urls":["bzz-raw://adddf5cb2ba282aeb576b26efb28640f865a1721cc9b6eee8b3ee0457a2c9780","dweb:/ipfs/QmNYgAmnLRwWZbhTuQhZs9rx4zcme1df5mEepkrniorSoW"],"license":"MIT"},"src/interfaces/delegator/IOperatorSpecificDelegator.sol":{"keccak256":"0x72075cab585dc17240cc3e32bc99b92f0d5627ddd988fed680e3e1a52d5a01e4","urls":["bzz-raw://7448bc90699409ae61d85216b5efc2143a37f0f73354be2aea993bc54afca441","dweb:/ipfs/QmXE4gAxM8pHosZK8mcTcj17puBx484meDCcmrDePskGHZ"],"license":"MIT"},"src/interfaces/service/IOptInService.sol":{"keccak256":"0x76fb5460a6d87a5705433d4fbeff7253cd75b8bbd0c888b2088f16e86ace146a","urls":["bzz-raw://990322019b3d11465f7024bae77ccbf7e2fe5d6fa3c754584778f37d04fa1337","dweb:/ipfs/QmaSNHzcqxTkUCG9a4nqVfLECHLdjdrwAnDi3yDC7tDL24"],"license":"MIT"},"src/interfaces/vault/IVault.sol":{"keccak256":"0xffee01d383cd4e1a5530c614bf4360c1ef070c288abec9da1eb531b51bc07235","urls":["bzz-raw://04f0046cac285d8ec44ebbb1f79dc94fab4495767190cad8364fbc1fafaadfb9","dweb:/ipfs/QmUawAunwzXfCyShWfhKeThAgKtqe51hmrxvrXvM772M2R"],"license":"MIT"},"src/interfaces/vault/IVaultStorage.sol":{"keccak256":"0x592626f13754194f83047135de19229c49390bd59e34659b1bb38be71d973a22","urls":["bzz-raw://06a6a9dfddd05e580b32bebe2cff4f63ba26a653180676d58225dd30d9c89d3e","dweb:/ipfs/QmdgzBeY6Sxo8mGtyBxtv1tM1c2kU6J6zjeRd7vuXm4DU6"],"license":"MIT"}},"version":1},"id":85} \ No newline at end of file diff --git a/out/OptInService.sol/OptInService.json b/out/OptInService.sol/OptInService.json index 6b874204..06286cf7 100644 --- a/out/OptInService.sol/OptInService.json +++ b/out/OptInService.sol/OptInService.json @@ -1 +1 @@ -{"abi":[{"type":"constructor","inputs":[{"name":"whoRegistry","type":"address","internalType":"address"},{"name":"whereRegistry","type":"address","internalType":"address"},{"name":"name","type":"string","internalType":"string"}],"stateMutability":"nonpayable"},{"type":"function","name":"WHERE_REGISTRY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"WHO_REGISTRY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"eip712Domain","inputs":[],"outputs":[{"name":"fields","type":"bytes1","internalType":"bytes1"},{"name":"name","type":"string","internalType":"string"},{"name":"version","type":"string","internalType":"string"},{"name":"chainId","type":"uint256","internalType":"uint256"},{"name":"verifyingContract","type":"address","internalType":"address"},{"name":"salt","type":"bytes32","internalType":"bytes32"},{"name":"extensions","type":"uint256[]","internalType":"uint256[]"}],"stateMutability":"view"},{"type":"function","name":"increaseNonce","inputs":[{"name":"where","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"isOptedIn","inputs":[{"name":"who","type":"address","internalType":"address"},{"name":"where","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isOptedInAt","inputs":[{"name":"who","type":"address","internalType":"address"},{"name":"where","type":"address","internalType":"address"},{"name":"timestamp","type":"uint48","internalType":"uint48"},{"name":"hint","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"nonces","inputs":[{"name":"who","type":"address","internalType":"address"},{"name":"where","type":"address","internalType":"address"}],"outputs":[{"name":"nonce","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"optIn","inputs":[{"name":"where","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"optIn","inputs":[{"name":"who","type":"address","internalType":"address"},{"name":"where","type":"address","internalType":"address"},{"name":"deadline","type":"uint48","internalType":"uint48"},{"name":"signature","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"optOut","inputs":[{"name":"who","type":"address","internalType":"address"},{"name":"where","type":"address","internalType":"address"},{"name":"deadline","type":"uint48","internalType":"uint48"},{"name":"signature","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"optOut","inputs":[{"name":"where","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"staticDelegateCall","inputs":[{"name":"target","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"EIP712DomainChanged","inputs":[],"anonymous":false},{"type":"event","name":"IncreaseNonce","inputs":[{"name":"who","type":"address","indexed":true,"internalType":"address"},{"name":"where","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"OptIn","inputs":[{"name":"who","type":"address","indexed":true,"internalType":"address"},{"name":"where","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"OptOut","inputs":[{"name":"who","type":"address","indexed":true,"internalType":"address"},{"name":"where","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"error","name":"AlreadyOptedIn","inputs":[]},{"type":"error","name":"CheckpointUnorderedInsertion","inputs":[]},{"type":"error","name":"ExpiredSignature","inputs":[]},{"type":"error","name":"InvalidShortString","inputs":[]},{"type":"error","name":"InvalidSignature","inputs":[]},{"type":"error","name":"NotOptedIn","inputs":[]},{"type":"error","name":"NotWhereEntity","inputs":[]},{"type":"error","name":"NotWho","inputs":[]},{"type":"error","name":"OptOutCooldown","inputs":[]},{"type":"error","name":"SafeCastOverflowedUintDowncast","inputs":[{"name":"bits","type":"uint8","internalType":"uint8"},{"name":"value","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"StringTooLong","inputs":[{"name":"str","type":"string","internalType":"string"}]}],"bytecode":{"object":"0x6101a0604090808252346101dc57611c85803803809161001f82856101e0565b833981016060828203126101dc5761003682610203565b6020610043818501610203565b848601516001600160401b03959194918682116101dc57019181601f840112156101dc5782518681116101c857875193610086601f8301601f19168401866101e0565b818552828501938383830101116101dc57815f9284809301865e85010152865190878201828110888211176101c857885260018252808201603160f81b81526100ce85610217565b936101209485526100de846103ae565b95610140968752519020928360e0525190209761010098808a524660a0528151928301937f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f85528284015260608301524660808301523060a083015260a0825260c0820197828910908911176101c8578790525190206080523060c0526101609283526101809384526117a095866104e5873960805186611222015260a051866112dd015260c051866111ec015260e0518661127101525185611297015251846102dd015251836103060152518281816105d90152610c3901525181818161024e0152610c8c0152f35b634e487b7160e01b5f52604160045260245ffd5b5f80fd5b601f909101601f19168101906001600160401b038211908210176101c857604052565b51906001600160a01b03821682036101dc57565b80516020908181101561028d5750601f82511161024f578082519201519080831061024157501790565b825f19910360031b1b161790565b60448260405192839163305a27a960e01b83528160048401528051918291826024860152018484015e5f828201840152601f01601f19168101030190fd5b906001600160401b0382116101c8575f54926001938481811c911680156103a4575b8382101461039057601f811161035d575b5081601f84116001146102fb57509282939183925f946102f0575b50501b915f199060031b1c1916175f5560ff90565b015192505f806102db565b919083601f1981165f8052845f20945f905b88838310610343575050501061032b575b505050811b015f5560ff90565b01515f1960f88460031b161c191690555f808061031e565b85870151885590960195948501948793509081019061030d565b5f805284601f845f20920160051c820191601f860160051c015b8281106103855750506102c0565b5f8155018590610377565b634e487b7160e01b5f52602260045260245ffd5b90607f16906102af565b8051602090818110156103d85750601f82511161024f578082519201519080831061024157501790565b9192916001600160401b0381116101c85760019182548381811c911680156104da575b8282101461039057601f81116104a7575b5080601f83116001146104475750819293945f9261043c575b50505f19600383901b1c191690821b17905560ff90565b015190505f80610425565b90601f19831695845f52825f20925f905b8882106104905750508385969710610478575b505050811b01905560ff90565b01515f1960f88460031b161c191690555f808061046b565b808785968294968601518155019501930190610458565b835f5283601f835f20920160051c820191601f850160051c015b8281106104cf57505061040c565b5f81550184906104c1565b90607f16906103fb56fe60806040526004361015610011575f80fd5b5f3560e01c8063220d32d4146100d4578063530e1d43146100cf5780636d0fae4a146100ca5780638247a97c146100c557806384b0196e146100c05780639333fbda146100bb57806393f79bc3146100b65780639f86fd85146100b1578063b1138ad1146100ac578063c4b5d62c146100a7578063ced44ba7146100a25763d46104831461009d575f80fd5b6106cc565b610608565b6105c4565b6105a2565b610511565b610412565b6103bb565b6102c5565b61027d565b610239565b6101d3565b610109565b600435906001600160a01b03821682036100ef57565b5f80fd5b602435906001600160a01b03821682036100ef57565b346100ef5760403660031901126100ef5760206101356101276100d9565b61012f6100f3565b906106ee565b6040519015158152f35b9181601f840112156100ef5782359167ffffffffffffffff83116100ef57602083818601950101116100ef57565b9060806003198301126100ef576001600160a01b039160043583811681036100ef579260243590811681036100ef579160443565ffffffffffff811681036100ef57916064359067ffffffffffffffff82116100ef576101cf9160040161013f565b9091565b346100ef576020600161022961022f61021a6101ee3661016d565b969290949193888060a01b03165f526003895260405f209060018060a01b03165f5260205260405f2090565b92868060d01b0395369161080b565b916108c3565b1614604051908152f35b346100ef575f3660031901126100ef576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346100ef5760203660031901126100ef5761029f6102996100d9565b336109bf565b005b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b346100ef575f3660031901126100ef5761035e6103017f0000000000000000000000000000000000000000000000000000000000000000610e2a565b61032a7f0000000000000000000000000000000000000000000000000000000000000000610f28565b6040519061033782610786565b5f825261036c602091604051958695600f60f81b875260e0602088015260e08701906102a1565b9085820360408701526102a1565b4660608501523060808501525f60a085015283810360c0850152602080845192838152019301915f5b8281106103a457505050500390f35b835185528695509381019392810192600101610395565b346100ef5760403660031901126100ef5760206104096103d96100d9565b6103e16100f3565b6001600160a01b039182165f9081526002855260408082209290931681526020919091522090565b54604051908152f35b346100ef576104203661016d565b909165ffffffffffff8061043342610ff1565b1691169081106104ff576104df926104d06104d89260018060a01b0380891691825f5260026020526104788960405f209060018060a01b03165f5260205260405f2090565b546040519260208401947f7830334d17a05ab8aeca8f1778e27182208fc2d454ac7b38a4edc2069ee3a4a6865260408501528a166060840152608083015260a082015260a081526104c8816107a2565b519020611023565b92369161080b565b9084610a15565b156104ed5761029f91610af1565b604051638baa579f60e01b8152600490fd5b60405163df4cc36d60e01b8152600490fd5b346100ef5760403660031901126100ef5761052a6100d9565b60243567ffffffffffffffff81116100ef575f9161054d8392369060040161013f565b90816040519283928337810184815203915af461059a61056b610841565b9161058c6040519384921515602084015260408084015260608301906102a1565b03601f1981018352826107be565b805190602001fd5b346100ef5760203660031901126100ef5761029f6105be6100d9565b33610c0d565b346100ef575f3660031901126100ef576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346100ef576106163661016d565b909165ffffffffffff8061062942610ff1565b1691169081106104ff576106be926104d06104d89260018060a01b0380891691825f52600260205261066e8960405f209060018060a01b03165f5260205260405f2090565b546040519260208401947f6ab5200f1123a8d51d1695a9e5e757267926b53c6359f90b8873cc7dcc30ea2c865260408501528a166060840152608083015260a082015260a081526104c8816107a2565b156104ed5761029f91610c0d565b346100ef5760203660031901126100ef5761029f6106e86100d9565b33610af1565b6001600160a01b039081165f908152600360209081526040808320939094168252919091522080548061072c57505060015f5b818060d01b03161490565b5f1990808281011161074c576001925f5260205f2001015460301c610721565b61088c565b634e487b7160e01b5f52604160045260245ffd5b6040810190811067ffffffffffffffff82111761078157604052565b610751565b6020810190811067ffffffffffffffff82111761078157604052565b60c0810190811067ffffffffffffffff82111761078157604052565b90601f8019910116810190811067ffffffffffffffff82111761078157604052565b604051906107ed82610765565b565b67ffffffffffffffff811161078157601f01601f191660200190565b929192610817826107ef565b9161082560405193846107be565b8294818452818301116100ef578281602093845f960137010152565b3d1561086b573d90610852826107ef565b9161086060405193846107be565b82523d5f602084013e565b606090565b908160209103126100ef575163ffffffff811681036100ef5790565b634e487b7160e01b5f52601160045260245ffd5b5f1981019190821161074c57565b90600163ffffffff8093160191821161074c57565b918051156109b557806020806108de93518301019101610870565b916108e98382610dd6565b926108fa845165ffffffffffff1690565b9065ffffffffffff808516921682811461099c578211918261093c575b505061092a576109279250611091565b90565b5050602001516001600160d01b031690565b90915061094983546108a0565b63ffffffff831614918215610962575b50505f80610917565b61099491925061097d610977610989926108ae565b85610dd6565b5165ffffffffffff1690565b65ffffffffffff1690565b115f80610959565b50505050602091909101516001600160d01b0316905090565b5061092791611091565b6001600160a01b039081165f8181526002602090815260408083209590941680835294905291822080546001019055907f8ed32926585579e6191b145240df788165f4957e1135f30a00e08ee8feb9d6809080a3565b610a1f8383611049565b506004819592951015610add57159384610ac7575b508315610a42575b50505090565b5f929350908291604051610a7a8161058c6020820194630b135d3f60e11b998a875260248401526040604484015260648301906102a1565b51915afa90610a87610841565b82610ab9575b82610a9d575b50505f8080610a3c565b9091506020818051810103126100ef5760200151145f80610a93565b915060208251101591610a8d565b6001600160a01b0383811691161493505f610a34565b634e487b7160e01b5f52602160045260245ffd5b90610b2d610b2882610b138560018060a01b03165f52600360205260405f2090565b9060018060a01b03165f5260205260405f2090565b611385565b9091506001600160d01b031615610bd85765ffffffffffff80610b4f42610ff1565b16911614610bc657610b87610b7882610b138560018060a01b03165f52600360205260405f2090565b610b8142610ff1565b90611590565b5050610b9381836109bf565b6001600160a01b0390811691167f1629cd9ad365627cf8408d19c50224af8f3213c1a18ae48062d92e22bddf7de55f80a3565b60405163291bf4b760e21b8152600490fd5b6040516334b09b3960e11b8152600490fd5b908160209103126100ef575180151581036100ef5790565b6040513d5f823e3d90fd5b6040516302910f8b60e31b8082526001600160a01b0383811660048401529293916020919082816024817f000000000000000000000000000000000000000000000000000000000000000089165afa908115610d8a575f91610da1575b5015610d8f576040519081526001600160a01b038316600482015281816024817f000000000000000000000000000000000000000000000000000000000000000088165afa918215610d8a575f92610d5d575b505015610d4b57610cce81846106ee565b610d395780610d04610cf58493610b138760018060a01b03165f52600360205260405f2090565b610cfe42610ff1565b9061168f565b5050610d1081856109bf565b1691167f9b730d5b907ee509de729817a2bb37e404418ba569b3a50f36192372f973cb415f80a3565b60405163dcdeaba360e01b8152600490fd5b6040516321f5408d60e01b8152600490fd5b610d7c9250803d10610d83575b610d7481836107be565b810190610bea565b5f80610cbd565b503d610d6a565b610c02565b604051630fb9ff9560e41b8152600490fd5b610db89150833d8511610d8357610d7481836107be565b5f610c6a565b60405190610dcb82610765565b5f6020838281520152565b610dfb91610df591610de6610dbe565b50610def610dbe565b50611170565b50611199565b65ffffffffffff81511690602060018060d01b039101511660405191610e2083610765565b8252602082015290565b60ff8114610e3b57610927906111bd565b506040515f80546001918160011c9260018316908115610f1e575b602090602086108314610f0a5785875286946020860193908115610eeb5750600114610e8c575b505050610927925003826107be565b925093610eb95f80527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e56390565b945f935b828510610ed5575050506109279350015f8080610e7d565b8654858501529586019587955093810193610ebd565b925050506109279491925060ff19168252151560051b015f8080610e7d565b634e487b7160e01b5f52602260045260245ffd5b93607f1693610e56565b60ff8114610f3957610927906111bd565b506040516001805480821c915f90828116908115610fe7575b602090602086108314610f0a5785875286946020860193908115610eeb5750600114610f8757505050610927925003826107be565b925093610fb560015f527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf690565b945f935b828510610fd1575050506109279350015f8080610e7d565b8654858501529586019587955093810193610fb9565b93607f1693610f52565b65ffffffffffff90818111611004571690565b604490604051906306dfcc6560e41b8252603060048301526024820152fd5b60429061102e6111e9565b906040519161190160f01b8352600283015260228201522090565b8151919060418303611079576110729250602082015190606060408401519301515f1a90611303565b9192909190565b50505f9160029190565b906001820180921161074c57565b908154905f918060058111611127575b50915b8281106110da575050806110b85750505f90565b610927916110c86110d3926108a0565b905f5260205f200190565b5460301c90565b90918082169080831860011c820180921161074c57845f5265ffffffffffff808360205f20015416908516105f146111155750915b906110a4565b92915061112190611083565b9061110f565b90611131826113f2565b820391821161074c57845f5265ffffffffffff808360205f20015416908416105f1461115f57505b5f6110a1565b925061116a90611083565b91611159565b8054821015611185575f5260205f2001905f90565b634e487b7160e01b5f52603260045260245ffd5b906040516111a681610765565b915465ffffffffffff8116835260301c6020830152565b60ff811690601f82116111d75760405191610e2083610765565b604051632cd44ac360e21b8152600490fd5b307f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031614806112da575b15611244577f000000000000000000000000000000000000000000000000000000000000000090565b60405160208101907f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f82527f000000000000000000000000000000000000000000000000000000000000000060408201527f000000000000000000000000000000000000000000000000000000000000000060608201524660808201523060a082015260a081526112d4816107a2565b51902090565b507f0000000000000000000000000000000000000000000000000000000000000000461461121b565b91907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0841161137a579160209360809260ff5f9560405194855216868401526040830152606082015282805260015afa15610d8a575f516001600160a01b0381161561137057905f905f90565b505f906001905f90565b5050505f9160039190565b8054806113965750505f905f905f90565b5f1990808281011161074c576113b3925f5260205f200101611199565b9065ffffffffffff82511691602060018060d01b0391015116906001929190565b81156113de570490565b634e487b7160e01b5f52601260045260245ffd5b801561152b57806114c46114bd6114b36114a961149f61149561148b61148160016109279a5f908b60801c8061151f575b508060401c80611512575b508060201c80611505575b508060101c806114f8575b508060081c806114eb575b508060041c806114de575b508060021c806114d1575b50821c6114ca575b811c1b61147a818b6113d4565b0160011c90565b61147a818a6113d4565b61147a81896113d4565b61147a81886113d4565b61147a81876113d4565b61147a81866113d4565b61147a81856113d4565b80926113d4565b90611758565b810161146d565b600291509101905f611465565b600491509101905f61145a565b600891509101905f61144f565b601091509101905f611444565b602091509101905f611439565b604091509101905f61142e565b9150506080905f611423565b505f90565b8054680100000000000000008110156107815761155291600182018155611170565b91909161157d57805160209091015160301b65ffffffffffff191665ffffffffffff91909116179055565b634e487b7160e01b5f525f60045260245ffd5b805490811561166d576115b86115b36115a8846108a0565b835f5260205f200190565b611199565b906115c9825165ffffffffffff1690565b65ffffffffffff858116949116841061165b57611628946020946115f6610989865165ffffffffffff1690565b0361162d575061161a916110c861160c926108a0565b65ffffffffffff8154169055565b01516001600160d01b031690565b905f90565b90506116569161164c61163e6107e0565b65ffffffffffff9093168352565b5f85830152611530565b61161a565b604051632520601d60e01b8152600490fd5b61168992915061167e61163e6107e0565b5f6020830152611530565b5f905f90565b8054908115611734576116a76115b36115a8846108a0565b906116b8825165ffffffffffff1690565b65ffffffffffff858116949116841061165b57611712946020946116e5610989865165ffffffffffff1690565b03611718575061161a916110c86116fb926108a0565b660100000000000065ffffffffffff825416179055565b90600190565b90506116569161172961163e6107e0565b600182860152611530565b61175192915061174561163e6107e0565b60016020830152611530565b5f90600190565b9080821015611765575090565b90509056fea2646970667358221220e3d0b21c7d8dc3a0d63f417bf3497f69de6a0208097dd894acd7ab6691797d6b64736f6c63430008190033","sourceMap":"583:4371:91:-:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;-1:-1:-1;;;;;583:4371:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;583:4371:91;;;;;:::i;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;583:4371:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;583:4371:91;;3401:45:52;;;:::i;:::-;3393:53;;;;;3467:51;;;:::i;:::-;3456:62;;;;;583:4371:91;3542:22:52;;3528:36;;;;583:4371:91;3591:25:52;;3574:42;;;;;;3644:13;3627:30;;583:4371:91;;4204:80:52;;;2079:95;;;;;;;;583:4371:91;2079:95:52;;;3644:13;2079:95;;;;4278:4;3627:30;2079:95;;;3627:30;4204:80;;2079:95;583:4371:91;;;;;;;;;;;;;;;;4194:91:52;;2079:95;3667:48;4278:4;2079:95;3725:27;1675:26:91;;;;1711:30;;;;583:4371;;;;;;2079:95:52;583:4371:91;;;;;3627:30:52;583:4371:91;;;;;2079:95:52;583:4371:91;;;;;3528:36:52;583:4371:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;583:4371:91;;;;;-1:-1:-1;583:4371:91;;-1:-1:-1;583:4371:91;;;;;;;-1:-1:-1;;583:4371:91;;;;-1:-1:-1;;;;;583:4371:91;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;583:4371:91;;;;;;:::o;2914:340:48:-;583:4371:91;;3059:2:48;;3037:24;;;3059:2;;;583:4371:91;1854:2:48;583:4371:91;;1840:16:48;1836:72;;583:4371:91;;;;;2079:95:52;583:4371:91;;;;;;1949:36:48;;3077:27;:::o;583:4371:91:-;;;;;;;;;;1949:36:48;3077:27;:::o;1836:72::-;583:4371:91;;;;1879:18:48;;;;;;;;;;;;583:4371:91;;;;;;;;;;;;;;;;3432:13:52;583:4371:91;;;;;;1854:2:48;583:4371:91;-1:-1:-1;;583:4371:91;;;1879:18:48;;;;3033:215;583:4371:91;-1:-1:-1;;;;;583:4371:91;;;;3432:13:52;583:4371:91;;;;;;;;;;;;;;3033:215:48;583:4371:91;;;;;;;;;;;3033:215:48;583:4371:91;;;;;;;;;;;;;;;;3432:13:52;583:4371:91;;;;;;;;;;;;;;;;;3432:13:52;583:4371:91;1390:66:48;3195:42;:::o;583:4371:91:-;;;;-1:-1:-1;583:4371:91;;;;;;;;;;;;3432:13:52;583:4371:91;;;3432:13:52;583:4371:91;;3432:13:52;583:4371:91;;;;;;;;;;;;;;;;;;;;;3432:13:52;583:4371:91;1390:66:48;3195:42;:::o;583:4371:91:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;583:4371:91;;;;;;;3432:13:52;583:4371:91;;;;;3432:13:52;583:4371:91;;;;;;;;;;;;;;;;;;;;;;;;;3432:13:52;583:4371:91;;;;;;;;;;;3432:13:52;583:4371:91;;;;;3432:13:52;583:4371:91;;;;;;;;2914:340:48;583:4371:91;;3059:2:48;;3037:24;;;3059:2;;;583:4371:91;1854:2:48;583:4371:91;;1840:16:48;1836:72;;583:4371:91;;;;;2079:95:52;583:4371:91;;;;;;1949:36:48;;3077:27;:::o;3033:215::-;583:4371:91;;;-1:-1:-1;;;;;583:4371:91;;;;;;;;;;;;;;;;;;3033:215:48;583:4371:91;;;;;;;;;;;3033:215:48;583:4371:91;;;;;;;;;;;;;;-1:-1:-1;583:4371:91;;;;-1:-1:-1;;;;583:4371:91;;;;;;;;;;;;;1390:66:48;;3195:42::o;583:4371:91:-;;;;-1:-1:-1;583:4371:91;;;;;;;;;;;;-1:-1:-1;583:4371:91;;-1:-1:-1;583:4371:91;;-1:-1:-1;583:4371:91;;;;;;;;;;;;;;;;;;;;;;;;;1390:66:48;3195:42;:::o;583:4371:91:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;583:4371:91;;;;-1:-1:-1;583:4371:91;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;583:4371:91;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361015610011575f80fd5b5f3560e01c8063220d32d4146100d4578063530e1d43146100cf5780636d0fae4a146100ca5780638247a97c146100c557806384b0196e146100c05780639333fbda146100bb57806393f79bc3146100b65780639f86fd85146100b1578063b1138ad1146100ac578063c4b5d62c146100a7578063ced44ba7146100a25763d46104831461009d575f80fd5b6106cc565b610608565b6105c4565b6105a2565b610511565b610412565b6103bb565b6102c5565b61027d565b610239565b6101d3565b610109565b600435906001600160a01b03821682036100ef57565b5f80fd5b602435906001600160a01b03821682036100ef57565b346100ef5760403660031901126100ef5760206101356101276100d9565b61012f6100f3565b906106ee565b6040519015158152f35b9181601f840112156100ef5782359167ffffffffffffffff83116100ef57602083818601950101116100ef57565b9060806003198301126100ef576001600160a01b039160043583811681036100ef579260243590811681036100ef579160443565ffffffffffff811681036100ef57916064359067ffffffffffffffff82116100ef576101cf9160040161013f565b9091565b346100ef576020600161022961022f61021a6101ee3661016d565b969290949193888060a01b03165f526003895260405f209060018060a01b03165f5260205260405f2090565b92868060d01b0395369161080b565b916108c3565b1614604051908152f35b346100ef575f3660031901126100ef576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346100ef5760203660031901126100ef5761029f6102996100d9565b336109bf565b005b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b346100ef575f3660031901126100ef5761035e6103017f0000000000000000000000000000000000000000000000000000000000000000610e2a565b61032a7f0000000000000000000000000000000000000000000000000000000000000000610f28565b6040519061033782610786565b5f825261036c602091604051958695600f60f81b875260e0602088015260e08701906102a1565b9085820360408701526102a1565b4660608501523060808501525f60a085015283810360c0850152602080845192838152019301915f5b8281106103a457505050500390f35b835185528695509381019392810192600101610395565b346100ef5760403660031901126100ef5760206104096103d96100d9565b6103e16100f3565b6001600160a01b039182165f9081526002855260408082209290931681526020919091522090565b54604051908152f35b346100ef576104203661016d565b909165ffffffffffff8061043342610ff1565b1691169081106104ff576104df926104d06104d89260018060a01b0380891691825f5260026020526104788960405f209060018060a01b03165f5260205260405f2090565b546040519260208401947f7830334d17a05ab8aeca8f1778e27182208fc2d454ac7b38a4edc2069ee3a4a6865260408501528a166060840152608083015260a082015260a081526104c8816107a2565b519020611023565b92369161080b565b9084610a15565b156104ed5761029f91610af1565b604051638baa579f60e01b8152600490fd5b60405163df4cc36d60e01b8152600490fd5b346100ef5760403660031901126100ef5761052a6100d9565b60243567ffffffffffffffff81116100ef575f9161054d8392369060040161013f565b90816040519283928337810184815203915af461059a61056b610841565b9161058c6040519384921515602084015260408084015260608301906102a1565b03601f1981018352826107be565b805190602001fd5b346100ef5760203660031901126100ef5761029f6105be6100d9565b33610c0d565b346100ef575f3660031901126100ef576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346100ef576106163661016d565b909165ffffffffffff8061062942610ff1565b1691169081106104ff576106be926104d06104d89260018060a01b0380891691825f52600260205261066e8960405f209060018060a01b03165f5260205260405f2090565b546040519260208401947f6ab5200f1123a8d51d1695a9e5e757267926b53c6359f90b8873cc7dcc30ea2c865260408501528a166060840152608083015260a082015260a081526104c8816107a2565b156104ed5761029f91610c0d565b346100ef5760203660031901126100ef5761029f6106e86100d9565b33610af1565b6001600160a01b039081165f908152600360209081526040808320939094168252919091522080548061072c57505060015f5b818060d01b03161490565b5f1990808281011161074c576001925f5260205f2001015460301c610721565b61088c565b634e487b7160e01b5f52604160045260245ffd5b6040810190811067ffffffffffffffff82111761078157604052565b610751565b6020810190811067ffffffffffffffff82111761078157604052565b60c0810190811067ffffffffffffffff82111761078157604052565b90601f8019910116810190811067ffffffffffffffff82111761078157604052565b604051906107ed82610765565b565b67ffffffffffffffff811161078157601f01601f191660200190565b929192610817826107ef565b9161082560405193846107be565b8294818452818301116100ef578281602093845f960137010152565b3d1561086b573d90610852826107ef565b9161086060405193846107be565b82523d5f602084013e565b606090565b908160209103126100ef575163ffffffff811681036100ef5790565b634e487b7160e01b5f52601160045260245ffd5b5f1981019190821161074c57565b90600163ffffffff8093160191821161074c57565b918051156109b557806020806108de93518301019101610870565b916108e98382610dd6565b926108fa845165ffffffffffff1690565b9065ffffffffffff808516921682811461099c578211918261093c575b505061092a576109279250611091565b90565b5050602001516001600160d01b031690565b90915061094983546108a0565b63ffffffff831614918215610962575b50505f80610917565b61099491925061097d610977610989926108ae565b85610dd6565b5165ffffffffffff1690565b65ffffffffffff1690565b115f80610959565b50505050602091909101516001600160d01b0316905090565b5061092791611091565b6001600160a01b039081165f8181526002602090815260408083209590941680835294905291822080546001019055907f8ed32926585579e6191b145240df788165f4957e1135f30a00e08ee8feb9d6809080a3565b610a1f8383611049565b506004819592951015610add57159384610ac7575b508315610a42575b50505090565b5f929350908291604051610a7a8161058c6020820194630b135d3f60e11b998a875260248401526040604484015260648301906102a1565b51915afa90610a87610841565b82610ab9575b82610a9d575b50505f8080610a3c565b9091506020818051810103126100ef5760200151145f80610a93565b915060208251101591610a8d565b6001600160a01b0383811691161493505f610a34565b634e487b7160e01b5f52602160045260245ffd5b90610b2d610b2882610b138560018060a01b03165f52600360205260405f2090565b9060018060a01b03165f5260205260405f2090565b611385565b9091506001600160d01b031615610bd85765ffffffffffff80610b4f42610ff1565b16911614610bc657610b87610b7882610b138560018060a01b03165f52600360205260405f2090565b610b8142610ff1565b90611590565b5050610b9381836109bf565b6001600160a01b0390811691167f1629cd9ad365627cf8408d19c50224af8f3213c1a18ae48062d92e22bddf7de55f80a3565b60405163291bf4b760e21b8152600490fd5b6040516334b09b3960e11b8152600490fd5b908160209103126100ef575180151581036100ef5790565b6040513d5f823e3d90fd5b6040516302910f8b60e31b8082526001600160a01b0383811660048401529293916020919082816024817f000000000000000000000000000000000000000000000000000000000000000089165afa908115610d8a575f91610da1575b5015610d8f576040519081526001600160a01b038316600482015281816024817f000000000000000000000000000000000000000000000000000000000000000088165afa918215610d8a575f92610d5d575b505015610d4b57610cce81846106ee565b610d395780610d04610cf58493610b138760018060a01b03165f52600360205260405f2090565b610cfe42610ff1565b9061168f565b5050610d1081856109bf565b1691167f9b730d5b907ee509de729817a2bb37e404418ba569b3a50f36192372f973cb415f80a3565b60405163dcdeaba360e01b8152600490fd5b6040516321f5408d60e01b8152600490fd5b610d7c9250803d10610d83575b610d7481836107be565b810190610bea565b5f80610cbd565b503d610d6a565b610c02565b604051630fb9ff9560e41b8152600490fd5b610db89150833d8511610d8357610d7481836107be565b5f610c6a565b60405190610dcb82610765565b5f6020838281520152565b610dfb91610df591610de6610dbe565b50610def610dbe565b50611170565b50611199565b65ffffffffffff81511690602060018060d01b039101511660405191610e2083610765565b8252602082015290565b60ff8114610e3b57610927906111bd565b506040515f80546001918160011c9260018316908115610f1e575b602090602086108314610f0a5785875286946020860193908115610eeb5750600114610e8c575b505050610927925003826107be565b925093610eb95f80527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e56390565b945f935b828510610ed5575050506109279350015f8080610e7d565b8654858501529586019587955093810193610ebd565b925050506109279491925060ff19168252151560051b015f8080610e7d565b634e487b7160e01b5f52602260045260245ffd5b93607f1693610e56565b60ff8114610f3957610927906111bd565b506040516001805480821c915f90828116908115610fe7575b602090602086108314610f0a5785875286946020860193908115610eeb5750600114610f8757505050610927925003826107be565b925093610fb560015f527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf690565b945f935b828510610fd1575050506109279350015f8080610e7d565b8654858501529586019587955093810193610fb9565b93607f1693610f52565b65ffffffffffff90818111611004571690565b604490604051906306dfcc6560e41b8252603060048301526024820152fd5b60429061102e6111e9565b906040519161190160f01b8352600283015260228201522090565b8151919060418303611079576110729250602082015190606060408401519301515f1a90611303565b9192909190565b50505f9160029190565b906001820180921161074c57565b908154905f918060058111611127575b50915b8281106110da575050806110b85750505f90565b610927916110c86110d3926108a0565b905f5260205f200190565b5460301c90565b90918082169080831860011c820180921161074c57845f5265ffffffffffff808360205f20015416908516105f146111155750915b906110a4565b92915061112190611083565b9061110f565b90611131826113f2565b820391821161074c57845f5265ffffffffffff808360205f20015416908416105f1461115f57505b5f6110a1565b925061116a90611083565b91611159565b8054821015611185575f5260205f2001905f90565b634e487b7160e01b5f52603260045260245ffd5b906040516111a681610765565b915465ffffffffffff8116835260301c6020830152565b60ff811690601f82116111d75760405191610e2083610765565b604051632cd44ac360e21b8152600490fd5b307f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031614806112da575b15611244577f000000000000000000000000000000000000000000000000000000000000000090565b60405160208101907f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f82527f000000000000000000000000000000000000000000000000000000000000000060408201527f000000000000000000000000000000000000000000000000000000000000000060608201524660808201523060a082015260a081526112d4816107a2565b51902090565b507f0000000000000000000000000000000000000000000000000000000000000000461461121b565b91907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0841161137a579160209360809260ff5f9560405194855216868401526040830152606082015282805260015afa15610d8a575f516001600160a01b0381161561137057905f905f90565b505f906001905f90565b5050505f9160039190565b8054806113965750505f905f905f90565b5f1990808281011161074c576113b3925f5260205f200101611199565b9065ffffffffffff82511691602060018060d01b0391015116906001929190565b81156113de570490565b634e487b7160e01b5f52601260045260245ffd5b801561152b57806114c46114bd6114b36114a961149f61149561148b61148160016109279a5f908b60801c8061151f575b508060401c80611512575b508060201c80611505575b508060101c806114f8575b508060081c806114eb575b508060041c806114de575b508060021c806114d1575b50821c6114ca575b811c1b61147a818b6113d4565b0160011c90565b61147a818a6113d4565b61147a81896113d4565b61147a81886113d4565b61147a81876113d4565b61147a81866113d4565b61147a81856113d4565b80926113d4565b90611758565b810161146d565b600291509101905f611465565b600491509101905f61145a565b600891509101905f61144f565b601091509101905f611444565b602091509101905f611439565b604091509101905f61142e565b9150506080905f611423565b505f90565b8054680100000000000000008110156107815761155291600182018155611170565b91909161157d57805160209091015160301b65ffffffffffff191665ffffffffffff91909116179055565b634e487b7160e01b5f525f60045260245ffd5b805490811561166d576115b86115b36115a8846108a0565b835f5260205f200190565b611199565b906115c9825165ffffffffffff1690565b65ffffffffffff858116949116841061165b57611628946020946115f6610989865165ffffffffffff1690565b0361162d575061161a916110c861160c926108a0565b65ffffffffffff8154169055565b01516001600160d01b031690565b905f90565b90506116569161164c61163e6107e0565b65ffffffffffff9093168352565b5f85830152611530565b61161a565b604051632520601d60e01b8152600490fd5b61168992915061167e61163e6107e0565b5f6020830152611530565b5f905f90565b8054908115611734576116a76115b36115a8846108a0565b906116b8825165ffffffffffff1690565b65ffffffffffff858116949116841061165b57611712946020946116e5610989865165ffffffffffff1690565b03611718575061161a916110c86116fb926108a0565b660100000000000065ffffffffffff825416179055565b90600190565b90506116569161172961163e6107e0565b600182860152611530565b61175192915061174561163e6107e0565b60016020830152611530565b5f90600190565b9080821015611765575090565b90509056fea2646970667358221220e3d0b21c7d8dc3a0d63f417bf3497f69de6a0208097dd894acd7ab6691797d6b64736f6c63430008190033","sourceMap":"583:4371:91:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;;;-1:-1:-1;;;;;583:4371:91;;;;;;:::o;:::-;;;;;;;;-1:-1:-1;;;;;583:4371:91;;;;;;:::o;:::-;;;;;;-1:-1:-1;;583:4371:91;;;;;;;;:::i;:::-;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;583:4371:91;;;;;-1:-1:-1;;;;;583:4371:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;2036:1;583:4371;1975:57;:22;583:4371;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;583:4371:91;1975:10;583:4371;;;-1:-1:-1;583:4371:91;;;;;;;;;;;;;;;;;1975:22;583:4371;;;;;;;;;;:::i;:::-;1975:57;;:::i;:::-;583:4371;1975:62;583:4371;;;;;;;;;;;;-1:-1:-1;;583:4371:91;;;;;;851:39;-1:-1:-1;;;;;583:4371:91;;;;;;;;;;;;-1:-1:-1;;583:4371:91;;;;3493:5;583:4371;;:::i;:::-;3481:10;3493:5;:::i;:::-;583:4371;;;;;;;;;;;;;;;;;;-1:-1:-1;583:4371:91;;;;;;;;-1:-1:-1;;583:4371:91;;;;:::o;:::-;;;;;;-1:-1:-1;;583:4371:91;;;;;6099:41:52;:5;:41;:::i;:::-;6554:47;:8;:47;:::i;:::-;583:4371:91;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;5590:13:52;583:4371:91;;;;5625:4:52;583:4371:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;583:4371:91;;;;;;;;6584:16:52;583:4371:91;;;;;;;;;-1:-1:-1;;583:4371:91;;;;;1214:77;583:4371;;:::i;:::-;;;:::i;:::-;-1:-1:-1;;;;;583:4371:91;;;-1:-1:-1;583:4371:91;;;1214:77;583:4371;;;;;;;;;;;;-1:-1:-1;583:4371:91;;;;;;;1214:77;583:4371;;;;;;;;;;;;;;:::i;:::-;;;;837:15:62;819:34;837:15;819:34;:::i;:::-;583:4371:91;;;1469:27;;;1465:83;;3164:88;583:4371;4587:179;583:4371;;;;;;;;;;;;-1:-1:-1;583:4371:91;4713:6;583:4371;;4713:18;583:4371;;-1:-1:-1;583:4371:91;;;;;;;;;;;;;;;;;4713:18;583:4371;;;4644:98;583:4371;4644:98;;583:4371;1082:76;583:4371;;;948:75;;583:4371;;;948:75;;;583:4371;948:75;;;583:4371;948:75;;;;;4644:98;;;;;:::i;:::-;583:4371;4617:139;;4587:179;:::i;:::-;583:4371;;;;:::i;:::-;3164:88;;;:::i;:::-;3163:89;3159:145;;3327:5;;;:::i;3159:145::-;583:4371;;-1:-1:-1;;;3275:18:91;;583:4371;;3275:18;1465:83;583:4371;;-1:-1:-1;;;1519:18:91;;583:4371;;1519:18;583:4371;;;;;;-1:-1:-1;;583:4371:91;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;583:4371:91;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;416:25:75;;;;477:31;416:25;;:::i;:::-;583:4371:91;;;;;;;;;;477:31:75;;583:4371:91;;;;;;;;;;;:::i;:::-;477:31:75;583:4371:91;;477:31:75;;;;;;:::i;:::-;518:79;;;583:4371:91;518:79:75;;583:4371:91;;;;;;-1:-1:-1;;583:4371:91;;;;2370:5;583:4371;;:::i;:::-;2358:10;2370:5;:::i;583:4371::-;;;;;;-1:-1:-1;;583:4371:91;;;;;;758:37;-1:-1:-1;;;;;583:4371:91;;;;;;;;;;;;;:::i;:::-;;;;837:15:62;819:34;837:15;819:34;:::i;:::-;583:4371:91;;;1469:27;;;1465:83;;2610:87;583:4371;4587:179;583:4371;;;;;;;;;;;;-1:-1:-1;583:4371:91;4713:6;583:4371;;4713:18;583:4371;;-1:-1:-1;583:4371:91;;;;;;;;;;;;;;;;;4713:18;583:4371;;;4644:98;583:4371;4644:98;;583:4371;948:75;583:4371;;;948:75;;583:4371;;;948:75;;;583:4371;948:75;;;583:4371;948:75;;;;;4644:98;;;;;:::i;2610:87::-;2609:88;2605:144;;2771:5;;;:::i;583:4371::-;;;;;;-1:-1:-1;;583:4371:91;;;;2923:5;583:4371;;:::i;:::-;2911:10;2923:5;:::i;2099:134::-;-1:-1:-1;;;;;583:4371:91;;;-1:-1:-1;583:4371:91;;;2190:10;583:4371;;;;;;;;;;;;;;;;;;;;;10303:8:60;;;:63;;2225:1:91;-1:-1:-1;10303:63:60;583:4371:91;;;;;;2190:36;2099:134;:::o;10303:63:60:-;583:4371:91;;;;;;;;;;2225:1;14249:109:60;-1:-1:-1;14249:109:60;583:4371:91;-1:-1:-1;14249:109:60;;;583:4371:91;;;10303:63:60;;583:4371:91;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;:::i;:::-;;;;;;;;;;;;;;;:::o;:::-;948:75;583:4371;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;:::o;:::-;;;;;;;;-1:-1:-1;;583:4371:91;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;583:4371:91;;;;;;:::o;:::-;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;-1:-1:-1;583:4371:91;;;;:::o;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;583:4371:91;;;;;;;;:::o;:::-;;;;;;;;;;;;;:::o;1818:604:86:-;;583:4371:91;;1946:17:86;1942:83;;583:4371:91;2049:27:86;583:4371:91;2049:27:86;583:4371:91;;2049:27:86;;;;;;:::i;:::-;2120:14;;;;;:::i;:::-;583:4371:91;;;;;;;;;;;;;;;;2148:22:86;;;2144:77;;2235:21;-1:-1:-1;2235:84:86;;;;1818:604;2231:139;;;;1425:34;;;;:::i;:::-;1818:604;:::o;2231:139::-;-1:-1:-1;;2049:27:86;2342:17;583:4371:91;-1:-1:-1;;;;;583:4371:91;1818:604:86;:::o;2235:84::-;583:4371:91;;;2269:16:86;583:4371:91;;2269:16:86;:::i;:::-;583:4371:91;;;2261:24:86;:57;;;;;2235:84;;;;;;;2261:57;2289:29;2298:8;;;2289:18;2298:8;2289:23;2298:8;;:::i;:::-;2289:18;;:::i;:::-;583:4371:91;;;;;2289:23:86;583:4371:91;;;;2289:29:86;;2261:57;;;;2144:77;-1:-1:-1;;;;2049:27:86;2193:17;;;;583:4371:91;-1:-1:-1;;;;;583:4371:91;;-1:-1:-1;1818:604:86;:::o;1942:83::-;1425:34;;;;:::i;4779:173:91:-;-1:-1:-1;;;;;583:4371:91;;;-1:-1:-1;583:4371:91;;;4876:6;583:4371;;;;;;;;;;;;;;;;;;;;;;;;;;;;4920:25;;-1:-1:-1;4920:25:91;4779:173::o;1039:368:54:-;1211:33;;;;:::i;:::-;583:4371:91;;;;;;;;;;1274:35:54;:58;;;;1039:368;1273:127;;;;;1039:368;1254:146;;;1039:368;:::o;1273:127::-;1283:26;583:4371:91;;;;;;;;2041:60:54;;583:4371:91;2041:60:54;;;;;;;;;;;;;;583:4371:91;;;;;;;;;;;:::i;2041:60:54:-;2010:101;;;;;;;:::i;:::-;2129:42;;;1273:127;2129:134;;;1273:127;;;;;;;;2129:134;583:4371:91;;;2041:60:54;583:4371:91;;;2187:29:54;;583:4371:91;;;;2041:60:54;2187:29;583:4371:91;2187:76:54;2129:134;;;;:42;583:4371:91;;2041:60:54;583:4371:91;;2152:19:54;;2129:42;;;1274:58;-1:-1:-1;;;;;583:4371:91;;;;;1313:19:54;;-1:-1:-1;1274:58:54;;;583:4371:91;;;;1283:26:54;583:4371:91;;;;;1283:26:54;583:4371:91;3991:467;;5260:30:86;4105:22:91;:15;;;583:4371;;;;;;;;4105:10;583:4371;;;;;;;4105:15;583:4371;;;;;;;;;;;;;;;;4105:22;5260:30:86;:::i;:::-;583:4371:91;;-1:-1:-1;;;;;;583:4371:91;4161:16;4157:66;;583:4371;837:15:62;819:34;837:15;819:34;:::i;:::-;583:4371:91;;;4237:35;4233:89;;8167:38:60;4332:22:91;:15;;;583:4371;;;;;;;;4105:10;583:4371;;;;;;;4332:22;819:34:62;837:15;819:34;:::i;:::-;8167:38:60;;:::i;:::-;4411:5:91;;;;;;:::i;:::-;-1:-1:-1;;;;;583:4371:91;;;;;4433:18;-1:-1:-1;;4433:18:91;3991:467::o;4233:89::-;583:4371;;-1:-1:-1;;;4295:16:91;;;;;4157:66;583:4371;;-1:-1:-1;;;4200:12:91;;;;;583:4371;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;3512:473;583:4371;;-1:-1:-1;;;3580:37:91;;;-1:-1:-1;;;;;583:4371:91;;;3580:37;;;583:4371;;;3512:473;3580:37;;583:4371;3580:37;583:4371;;;3590:12;583:4371;;3580:37;;;;;;;-1:-1:-1;3580:37:91;;;3512:473;3579:38;;3575:84;;583:4371;;3674:41;;;-1:-1:-1;;;;;583:4371:91;;3580:37;3674:41;;583:4371;3674:41;583:4371;;;3684:14;583:4371;;3674:41;;;;;;;-1:-1:-1;3674:41:91;;;3512:473;3673:42;;;3669:96;;3779:21;;;;:::i;:::-;3775:75;;3860:15;8167:38:60;3860:22:91;:15;;;;583:4371;;;;;;;;4105:10;583:4371;;;;;;;3860:22;819:34:62;837:15;819:34;:::i;:::-;8167:38:60;;:::i;:::-;3939:5:91;;;;;;:::i;:::-;583:4371;;;3961:17;-1:-1:-1;3961:17:91;;3512:473::o;3775:75::-;583:4371;;-1:-1:-1;;;3823:16:91;;3580:37;;3823:16;3669:96;583:4371;;-1:-1:-1;;;3738:16:91;;3580:37;;3738:16;3674:41;;;;;;-1:-1:-1;3674:41:91;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;;:::i;3575:84::-;583:4371;;-1:-1:-1;;;3640:8:91;;3580:37;;3640:8;3580:37;;;;;;;;;;;;;;:::i;:::-;;;;583:4371;;;;;;;:::i;:::-;-1:-1:-1;583:4371:91;;;;;;;:::o;5573:258:86:-;583:4371:91;5573:258:86;11308:22:60;5573:258:86;583:4371:91;;:::i;:::-;;;;:::i;:::-;;11308:22:60;:::i;:::-;583:4371:91;;:::i;:::-;;;;;;5805:17:86;583:4371:91;;;;;5805:17:86;;583:4371:91;;;;;;;;:::i;:::-;;;5805:17:86;5759:65;;583:4371:91;5573:258:86;:::o;3385:267:48:-;1390:66;3508:46;;1390:66;;3577:15;;;:::i;3504:142::-;583:4371:91;;;;;1390:66:48;;;;;;;;;;;;;;;3504:142;1390:66;;;;;;;;;583:4371:91;;;1390:66:48;;583:4371:91;;;1390:66:48;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;583:4371:91;1390:66:48;;;;;;;583:4371:91;1390:66:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1390:66:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;583:4371:91;;;;1390:66:48;;;;;583:4371:91;1390:66:48;;;;;;;;3385:267;1390:66;3508:46;;1390:66;;3577:15;;;:::i;3504:142::-;-1:-1:-1;583:4371:91;;6584:16:52;1390:66:48;;;;;;-1:-1:-1;;1390:66:48;;;;;;;;3504:142;1390:66;;;;;;;;;583:4371:91;;;1390:66:48;;583:4371:91;;;1390:66:48;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;6584:16:52;1390:66:48;;;;;;;-1:-1:-1;1390:66:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1390:66:48;;;;;;;;;;;;;14291:213:58;583:4371:91;14369:24:58;;;;14365:103;;583:4371:91;14291:213:58;:::o;14365:103::-;583:4371:91;;;;14416:41:58;;;;;;14447:2;14416:41;;;583:4371:91;;;;;14416:41:58;4917:176:52;3515:233:53;4917:176:52;5053:20;;:::i;:::-;3515:233:53;;;;-1:-1:-1;;;3515:233:53;;;;;;;;;;;4917:176:52;:::o;2129:766:51:-;583:4371:91;;;2129:766:51;2276:2;2256:22;;2276:2;;2739:25;2539:180;;;;;;;;;;;;;;;-1:-1:-1;2539:180:51;2739:25;;:::i;:::-;2732:32;;;;;:::o;2252:637::-;2795:83;;2811:1;2795:83;2815:35;2795:83;;:::o;583:4371:91:-;;9856:1:60;583:4371:91;;;;;;;:::o;9441:606:60:-;;583:4371:91;;9594:15:60;9559:17;9619:18;;9658:1;9652:7;;9648:234;;9441:606;9906:53;;12919:10;;;;;;-1:-1:-1;;9977:8:60;;;:63;;9559:17;9441:606;:::o;9977:63::-;9992:48;10025:7;;9992:41;10025:7;;:::i;:::-;9992:41;14249:109;;;;;;14099:265;;9992:41;583:4371:91;;;;;12912:230:60;2900:5:57;;;;;2910;;;;583:4371:91;;;;;;;;;14249:109:60;9559:17;14249:109;583:4371:91;14249:109:60;;;9559:17;14249:109;;583:4371:91;;;;;-1:-1:-1;12996:136:60;583:4371:91;;;13055:10:60;12996:136;;12912:230;;;12996:136;13110:7;;;;;;:::i;:::-;12996:136;;;9648:234;9695:14;;;;:::i;:::-;583:4371:91;;;;;;;14249:109:60;9559:17;14249:109;583:4371:91;14249:109:60;;;9559:17;14249:109;;583:4371:91;;;;;9727:48:60;9723:149;583:4371:91;;;9795:10:60;9723:149;9648:234;;;9723:149;9850:7;;;;;:::i;:::-;9723:149;;;583:4371:91;;;;;;;;-1:-1:-1;1390:66:48;;-1:-1:-1;1390:66:48;583:4371:91;;-1:-1:-1;583:4371:91;:::o;:::-;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::o;2078:405:48:-;2688:4;2652:40;;2706:11;2715:2;2706:11;;2702:69;;583:4371:91;;;;;;:::i;2702:69:48:-;583:4371:91;;-1:-1:-1;;;2740:20:48;;;;;3845:262:52;3929:4;3938:11;-1:-1:-1;;;;;583:4371:91;3921:28:52;;:63;;3845:262;3917:184;;;4007:22;4000:29;:::o;3917:184::-;583:4371:91;;4204:80:52;;;583:4371:91;2079:95:52;583:4371:91;;4226:11:52;583:4371:91;2079:95:52;;583:4371:91;4239:14:52;2079:95;;;583:4371:91;4255:13:52;2079:95;;;583:4371:91;3929:4:52;2079:95;;;583:4371:91;2079:95:52;4204:80;;;;;:::i;:::-;583:4371:91;4194:91:52;;4060:30;:::o;3921:63::-;3970:14;;3953:13;:31;3921:63;;5140:1530:51;;;6199:66;6186:79;;6182:164;;583:4371:91;;;;;;-1:-1:-1;583:4371:91;;;;;;;;;;;;;;;;;;;6457:24:51;;;;;;;;;-1:-1:-1;6457:24:51;-1:-1:-1;;;;;583:4371:91;;6495:20:51;6491:113;;6614:49;-1:-1:-1;6614:49:51;-1:-1:-1;5140:1530:51;:::o;6491:113::-;6531:62;-1:-1:-1;6531:62:51;6457:24;6531:62;-1:-1:-1;6531:62:51;:::o;6182:164::-;6281:54;;;6297:1;6281:54;6301:30;6281:54;;:::o;10552:388:60:-;583:4371:91;;10728:8:60;;;10752:20;;10690:17;10752:20;10690:17;10752:20;10690:17;10752:20;:::o;10724:210::-;583:4371:91;;;;;;;;;;;14249:109:60;10690:17;14249:109;;10690:17;14249:109;;;583:4371:91;:::i;:::-;;;;;;;14249:109:60;583:4371:91;;;;;10911:11:60;;583:4371:91;;10886:37:60;10870:1;10886:37;;;:::o;583:4371:91:-;;;;;;;:::o;:::-;;;;;;;;;;;;8587:1642:57;8658:6;;8654:45;;9401:7;10201:10;10142:26;10093;10044;9995;9946;9897;9848;583:4371:91;10189:23:57;9401:7;8663:1;583:4371:91;;;;10826:16:57;10822:99;;8587:1642;583:4371:91;;;;10938:15:57;10934:96;;8587:1642;583:4371:91;;;;11047:15:57;11043:96;;8587:1642;583:4371:91;;;;11156:15:57;11152:96;;8587:1642;583:4371:91;;;;11265:14:57;11261:93;;8587:1642;583:4371:91;;;;11371:14:57;11367:93;;8587:1642;583:4371:91;;;;11477:14:57;11473:93;;8587:1642;583:4371:91;;;11579:64:57;;8587:1642;583:4371:91;;;9858:10:57;;;;:::i;:::-;583:4371:91;;;;;9848:26:57;9907:10;;;;:::i;9897:26::-;9956:10;;;;:::i;9946:26::-;10005:10;;;;:::i;9995:26::-;10054:10;;;;:::i;10044:26::-;10103:10;;;;:::i;10093:26::-;10152:10;;;;:::i;10142:26::-;10201:10;;;:::i;:::-;10189:23;;:::i;11579:64::-;583:4371:91;;11579:64:57;;11473:93;583:4371:91;11511:11:57;;583:4371:91;;11473:93:57;;;;11367;583:4371:91;11405:11:57;;583:4371:91;;11367:93:57;;;;11261;583:4371:91;11299:11:57;;583:4371:91;;11261:93:57;;;;11152:96;583:4371:91;11191:12:57;;583:4371:91;;11152:96:57;;;;11043;583:4371:91;11082:12:57;;583:4371:91;;11043:96:57;;;;10934;583:4371:91;10973:12:57;;583:4371:91;;10934:96:57;;;;10822:99;10862:13;;;583:4371:91;10822:99:57;;;;8654:45;8680:8;8663:1;8680:8;:::o;583:4371:91:-;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;-1:-1:-1;;583:4371:91;;;;;;;;;:::o;:::-;;;;;;;;;;;;11513:870:60;583:4371:91;;;11672:7:60;;;;583:4371:91;11775:28:60;11795:7;;;:::i;:::-;11775:28;14249:109;;;;;;14099:265;;11775:28;583:4371:91;:::i;:::-;;;;;;;;;;;;;;;;;11877:15:60;-1:-1:-1;11873:91:60;;583:4371:91;;12233:11:60;583:4371:91;12027:16:60;583:4371:91;;;;;;;12027:16:60;;;;12083:7;12063:43;12083:7;;12063:28;12083:7;;:::i;12063:28::-;583:4371:91;;;;;;;12063:43:60;12233:11;583:4371:91;-1:-1:-1;;;;;583:4371:91;;;;12225:27:60;583:4371:91;12225:27:60;:::o;12023:189::-;583:4371:91;;12145:52:60;583:4371:91;12155:41:60;583:4371:91;;:::i;:::-;;;;;;;;12155:41:60;583:4371:91;12155:41:60;;;583:4371:91;12145:52:60;:::i;:::-;12023:189;;11873:91;583:4371:91;;-1:-1:-1;;;11919:30:60;;;;;11668:709;12283:52;583:4371:91;;;12293:41:60;583:4371:91;;:::i;12293:41:60:-;583:4371:91;12293:41:60;;;583:4371:91;12283:52:60;:::i;:::-;583:4371:91;12349:17:60;583:4371:91;12349:17:60;:::o;11513:870::-;583:4371:91;;;11672:7:60;;;;583:4371:91;11775:28:60;11795:7;;;:::i;583:4371:91:-;;;;;;;;;;;;;;;;;11877:15:60;-1:-1:-1;11873:91:60;;583:4371:91;;12233:11:60;583:4371:91;12027:16:60;583:4371:91;;;;;;;12027:16:60;;;;12083:7;12063:43;12083:7;;12063:28;12083:7;;:::i;12063:28::-;583:4371:91;;;;;;;;;;12225:27:60;583:4371:91;12225:27:60;:::o;12023:189::-;583:4371:91;;12145:52:60;583:4371:91;12155:41:60;583:4371:91;;:::i;12155:41:60:-;583:4371:91;12155:41:60;;;583:4371:91;12145:52:60;:::i;11668:709::-;12283:52;583:4371:91;;;12293:41:60;583:4371:91;;:::i;12293:41:60:-;583:4371:91;12293:41:60;;;583:4371:91;12145:52:60;:::i;12283:::-;11678:1;12349:17;583:4371:91;12349:17:60;:::o;2557:104:57:-;;2641:5;;;;;;:13;2557:104;:::o;2641:13::-;;;2557:104;:::o","linkReferences":{},"immutableReferences":{"51758":[{"start":4642,"length":32}],"51760":[{"start":4829,"length":32}],"51762":[{"start":4588,"length":32}],"51764":[{"start":4721,"length":32}],"51766":[{"start":4759,"length":32}],"51769":[{"start":733,"length":32}],"51772":[{"start":774,"length":32}],"65131":[{"start":1497,"length":32},{"start":3129,"length":32}],"65134":[{"start":590,"length":32},{"start":3212,"length":32}]}},"methodIdentifiers":{"WHERE_REGISTRY()":"6d0fae4a","WHO_REGISTRY()":"c4b5d62c","eip712Domain()":"84b0196e","increaseNonce(address)":"8247a97c","isOptedIn(address,address)":"220d32d4","isOptedInAt(address,address,uint48,bytes)":"530e1d43","nonces(address,address)":"9333fbda","optIn(address)":"b1138ad1","optIn(address,address,uint48,bytes)":"ced44ba7","optOut(address)":"d4610483","optOut(address,address,uint48,bytes)":"93f79bc3","staticDelegateCall(address,bytes)":"9f86fd85"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"whoRegistry\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"whereRegistry\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"AlreadyOptedIn\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CheckpointUnorderedInsertion\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ExpiredSignature\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidShortString\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidSignature\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotOptedIn\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotWhereEntity\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotWho\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OptOutCooldown\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"bits\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"SafeCastOverflowedUintDowncast\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"str\",\"type\":\"string\"}],\"name\":\"StringTooLong\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[],\"name\":\"EIP712DomainChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"who\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"where\",\"type\":\"address\"}],\"name\":\"IncreaseNonce\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"who\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"where\",\"type\":\"address\"}],\"name\":\"OptIn\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"who\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"where\",\"type\":\"address\"}],\"name\":\"OptOut\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"WHERE_REGISTRY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"WHO_REGISTRY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"eip712Domain\",\"outputs\":[{\"internalType\":\"bytes1\",\"name\":\"fields\",\"type\":\"bytes1\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"version\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"chainId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"verifyingContract\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"salt\",\"type\":\"bytes32\"},{\"internalType\":\"uint256[]\",\"name\":\"extensions\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"where\",\"type\":\"address\"}],\"name\":\"increaseNonce\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"who\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"where\",\"type\":\"address\"}],\"name\":\"isOptedIn\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"who\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"where\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hint\",\"type\":\"bytes\"}],\"name\":\"isOptedInAt\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"who\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"where\",\"type\":\"address\"}],\"name\":\"nonces\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"where\",\"type\":\"address\"}],\"name\":\"optIn\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"who\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"where\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"deadline\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"name\":\"optIn\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"who\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"where\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"deadline\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"name\":\"optOut\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"where\",\"type\":\"address\"}],\"name\":\"optOut\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"staticDelegateCall\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"CheckpointUnorderedInsertion()\":[{\"details\":\"A value was attempted to be inserted on a past checkpoint.\"}],\"SafeCastOverflowedUintDowncast(uint8,uint256)\":[{\"details\":\"Value doesn't fit in an uint of `bits` size.\"}]},\"events\":{\"EIP712DomainChanged()\":{\"details\":\"MAY be emitted to signal that the domain could have changed.\"},\"IncreaseNonce(address,address)\":{\"params\":{\"where\":\"address of the \\\"where\\\" entity\",\"who\":\"address of the \\\"who\\\"\"}},\"OptIn(address,address)\":{\"params\":{\"where\":\"address of the \\\"where\\\" entity\",\"who\":\"address of the \\\"who\\\"\"}},\"OptOut(address,address)\":{\"params\":{\"where\":\"address of the \\\"where\\\" entity\",\"who\":\"address of the \\\"who\\\"\"}}},\"kind\":\"dev\",\"methods\":{\"eip712Domain()\":{\"details\":\"See {IERC-5267}.\"},\"increaseNonce(address)\":{\"details\":\"It can be used to invalidate a given signature.\",\"params\":{\"where\":\"address of the \\\"where\\\" entity\"}},\"isOptedIn(address,address)\":{\"params\":{\"where\":\"address of the \\\"where\\\" entity\",\"who\":\"address of the \\\"who\\\"\"},\"returns\":{\"_0\":\"if the \\\"who\\\" is opted-in\"}},\"isOptedInAt(address,address,uint48,bytes)\":{\"params\":{\"hint\":\"hint for the checkpoint index\",\"timestamp\":\"time point to get if the \\\"who\\\" is opted-in at\",\"where\":\"address of the \\\"where\\\" entity\",\"who\":\"address of the \\\"who\\\"\"},\"returns\":{\"_0\":\"if the \\\"who\\\" is opted-in at the given timestamp\"}},\"optIn(address)\":{\"params\":{\"where\":\"address of the \\\"where\\\" entity\"}},\"optIn(address,address,uint48,bytes)\":{\"params\":{\"deadline\":\"time point until the signature is valid (inclusively)\",\"signature\":\"signature of the \\\"who\\\"\",\"where\":\"address of the \\\"where\\\" entity\",\"who\":\"address of the \\\"who\\\"\"}},\"optOut(address)\":{\"params\":{\"where\":\"address of the \\\"where\\\" entity\"}},\"optOut(address,address,uint48,bytes)\":{\"params\":{\"deadline\":\"time point until the signature is valid (inclusively)\",\"signature\":\"signature of the \\\"who\\\"\",\"where\":\"address of the \\\"where\\\" entity\",\"who\":\"address of the \\\"who\\\"\"}},\"staticDelegateCall(address,bytes)\":{\"details\":\"It allows to use this contract's storage on-chain.\",\"params\":{\"data\":\"data to make a delegatecall with\",\"target\":\"address of the contract to make a delegatecall to\"}}},\"stateVariables\":{\"WHERE_REGISTRY\":{\"return\":\"address of the \\\"where\\\" registry\",\"returns\":{\"_0\":\"address of the \\\"where\\\" registry\"}},\"WHO_REGISTRY\":{\"return\":\"address of the \\\"who\\\" registry\",\"returns\":{\"_0\":\"address of the \\\"who\\\" registry\"}},\"nonces\":{\"params\":{\"where\":\"address of the \\\"where\\\" entity\",\"who\":\"address of the \\\"who\\\"\"},\"return\":\"nonce\",\"returns\":{\"nonce\":\"nonce\"}}},\"version\":1},\"userdoc\":{\"events\":{\"IncreaseNonce(address,address)\":{\"notice\":\"Emitted when the nonce of a \\\"who\\\" to a \\\"where\\\" entity is increased.\"},\"OptIn(address,address)\":{\"notice\":\"Emitted when a \\\"who\\\" opts into a \\\"where\\\" entity.\"},\"OptOut(address,address)\":{\"notice\":\"Emitted when a \\\"who\\\" opts out from a \\\"where\\\" entity.\"}},\"kind\":\"user\",\"methods\":{\"WHERE_REGISTRY()\":{\"notice\":\"Get the address of the registry where to opt-in.\"},\"WHO_REGISTRY()\":{\"notice\":\"Get the \\\"who\\\" registry's address.\"},\"increaseNonce(address)\":{\"notice\":\"Increase the nonce of a given \\\"who\\\" to a particular \\\"where\\\" entity.\"},\"isOptedIn(address,address)\":{\"notice\":\"Check if a given \\\"who\\\" is opted-in to a particular \\\"where\\\" entity.\"},\"isOptedInAt(address,address,uint48,bytes)\":{\"notice\":\"Get if a given \\\"who\\\" is opted-in to a particular \\\"where\\\" entity at a given timestamp using a hint.\"},\"nonces(address,address)\":{\"notice\":\"Get the nonce of a given \\\"who\\\" to a particular \\\"where\\\" entity.\"},\"optIn(address)\":{\"notice\":\"Opt-in a calling \\\"who\\\" to a particular \\\"where\\\" entity.\"},\"optIn(address,address,uint48,bytes)\":{\"notice\":\"Opt-in a \\\"who\\\" to a particular \\\"where\\\" entity with a signature.\"},\"optOut(address)\":{\"notice\":\"Opt-out a calling \\\"who\\\" from a particular \\\"where\\\" entity.\"},\"optOut(address,address,uint48,bytes)\":{\"notice\":\"Opt-out a \\\"who\\\" from a particular \\\"where\\\" entity with a signature.\"},\"staticDelegateCall(address,bytes)\":{\"notice\":\"Make a delegatecall from this contract to a given target contract with a particular data (always reverts with a return data).\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/contracts/service/OptInService.sol\":\"OptInService\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/interfaces/IERC1271.sol\":{\"keccak256\":\"0x85a45f3f10014a0f8be41157a32b6a5f905753ea64a4b64e29fc12b7deeecf39\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c3c74009ce36136b36c77c23935b8e4a7b4f253be2da2be4fb4a916b1ce43743\",\"dweb:/ipfs/QmcH36v3iN7SJJuF73AunLR2LtNxhVJ1wm63ph4dPZ4pcL\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC5267.sol\":{\"keccak256\":\"0x92aa1df62dc3d33f1656d63bede0923e0df0b706ad4137c8b10b0a8fe549fd92\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c5c0f29195ad64cbe556da8e257dac8f05f78c53f90323c0d2accf8e6922d33a\",\"dweb:/ipfs/QmQ61TED8uaCZwcbh8KkgRSsCav7x7HbcGHwHts3U4DmUP\"]},\"lib/openzeppelin-contracts/contracts/utils/ShortStrings.sol\":{\"keccak256\":\"0x18a7171df639a934592915a520ecb97c5bbc9675a1105607aac8a94e72bf62c6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7478e1f13da69a2867ccd883001d836b75620362e743f196376d63ed0c422a1c\",\"dweb:/ipfs/QmWywcQ9TNfwtoqAxbn25d8C5VrV12PrPS9UjtGe6pL2BA\"]},\"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0x32ba59b4b7299237c8ba56319110989d7978a039faf754793064e967e5894418\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1ae50c8b562427df610cc4540c9bf104acca7ef8e2dcae567ae7e52272281e9c\",\"dweb:/ipfs/QmTHiadFCSJUPpRjNegc5SahmeU8bAoY8i9Aq6tVscbcKR\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0x55f102ea785d8399c0e58d1108e2d289506dde18abc6db1b7f68c1f9f9bc5792\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e52e0a7765c943ef14e5bcf11e46e6139fa044be564881378349236bf2e3453\",\"dweb:/ipfs/QmZEeeXoFPW47amyP35gfzomF9DixqqTEPwzBakv6cZw6i\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0xeed0a08b0b091f528356cbc7245891a4c748682d4f6a18055e8e6ca77d12a6cf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba80ba06c8e6be852847e4c5f4492cef801feb6558ae09ed705ff2e04ea8b13c\",\"dweb:/ipfs/QmXRJDv3xHLVQCVXg1ZvR35QS9sij5y9NDWYzMfUfAdTHF\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/EIP712.sol\":{\"keccak256\":\"0x999f705a027ed6dc2d4e0df2cc4a509852c6bfd11de1c8161bf88832d0503fd0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0798def67258d9a3cc20b2b4da7ebf351a5cefe0abfdd665d2d81f8e32f89b21\",\"dweb:/ipfs/QmPEvJosnPfzHNjKvCv2D3891mA2Ww8eUwkqrxBjuYdHCt\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol\":{\"keccak256\":\"0xba333517a3add42cd35fe877656fc3dfcc9de53baa4f3aabbd6d12a92e4ea435\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2ceacff44c0fdc81e48e0e0b1db87a2076d3c1fb497341de077bf1da9f6b406c\",\"dweb:/ipfs/QmRUo1muMRAewxrKQ7TkXUtknyRoR57AyEkoPpiuZQ8FzX\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/SignatureChecker.sol\":{\"keccak256\":\"0x6b11eb41a228cca35d4b662b4df69fcd75192851365102690f57b2ac01e83fe6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ab006a2983ed350d2af21ddcdd835dcae3b8340086cc4d088460da5abd041f69\",\"dweb:/ipfs/QmbEacDhkJZiGrgzLjB4pNtE8Z1uudjDw1DvcDUTVQFsLG\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875\",\"dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0xe19a4d5f31d2861e7344e8e535e2feafb913d806d3e2b5fe7782741a2a7094fe\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4aed79c0fa6f0546ed02f2f683e8f77f0fd2ed7eb34d8bbf3d373c9a6d95b13c\",\"dweb:/ipfs/QmWqVz6UAVqmnWU5pqYPt1o6iDEZyPaBraAA3rKfTTSfYj\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x5f7e4076e175393767754387c962926577f1660dd9b810187b9002407656be72\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7d533a1c97cd43a57cd9c465f7ee8dd0e39ae93a8fb8ff8e5303a356b081cdcc\",\"dweb:/ipfs/QmVBEei6aTnvYNZp2CHYVNKyZS4q1KkjANfY39WVXZXVoT\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/Checkpoints.sol\":{\"keccak256\":\"0xbdc5e074d7dd6678f67e92b1a51a20226801a407b0e1af3da367c5d1ff4519ad\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a36cca6b22fff3db16fc789ff6c60eea71d4b156065d4d0c83a0bc5e91a77a8b\",\"dweb:/ipfs/QmYN3exd5AemxjBrN8XMB1p5LbbE16uC3sjbYjwi8AjcGR\"]},\"lib/openzeppelin-contracts/contracts/utils/types/Time.sol\":{\"keccak256\":\"0xc7755af115020049e4140f224f9ee88d7e1799ffb0646f37bf0df24bf6213f58\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7f09bf94d5274334ec021f61a04659db303f31e60460e14b709c9bf187740111\",\"dweb:/ipfs/QmNvgomZYUwFAt4cZbPWAiTeSZQreGehY9BK5xyVJsUttb\"]},\"src/contracts/common/StaticDelegateCallable.sol\":{\"keccak256\":\"0x350029aa8955eacaffffaeb58babc5c98e80ebc5c5db388ed17ee6465f4a9d90\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://eb392a8ee9050e0af606897df63e3404e3829e8b688b580663892f9664195764\",\"dweb:/ipfs/QmaXC8jqV8UrrAFkzXTEv2fJF56sy33HhLxAzaRZmUxuXD\"]},\"src/contracts/libraries/Checkpoints.sol\":{\"keccak256\":\"0xba90097c8bfe0a975499428b5f8ac5569483c7d92ccc28c12d70de416aae040c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://12f5d93ca94cd06d3147db68993165a58e17903ed53682560de61f3085ad4609\",\"dweb:/ipfs/QmePiuAqvXprMLmFZkGZeGjvGPAvsEDHfCDv7BoQhXu9xE\"]},\"src/contracts/service/OptInService.sol\":{\"keccak256\":\"0x4e0932077f2686b7990e10d59deb2535334c0d09e52ef6e57c6ab09eca21c4b1\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://7c00d311032ed4a1743aca7475f3c86ce15cdfc2218108efc3731c03d34a5278\",\"dweb:/ipfs/QmUGGfVwVhaHr5kS4177yKKYiLYzi5qZpkEmvYxBZqazxf\"]},\"src/interfaces/common/IRegistry.sol\":{\"keccak256\":\"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014\",\"dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK\"]},\"src/interfaces/common/IStaticDelegateCallable.sol\":{\"keccak256\":\"0xa335d4e81b9071b7de66ef92b43ff20671d86516eb1be46fef29a3483cd3f5d5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d464b9db863c14c05547d2b23352f2e9b7b784799cf09f6bbc4906a2a74e3516\",\"dweb:/ipfs/QmUVWzFvJz7eEbDQKiFTTzwi7TEbjcs3VmwdM4kuptAKvi\"]},\"src/interfaces/service/IOptInService.sol\":{\"keccak256\":\"0x76fb5460a6d87a5705433d4fbeff7253cd75b8bbd0c888b2088f16e86ace146a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://990322019b3d11465f7024bae77ccbf7e2fe5d6fa3c754584778f37d04fa1337\",\"dweb:/ipfs/QmaSNHzcqxTkUCG9a4nqVfLECHLdjdrwAnDi3yDC7tDL24\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.25+commit.b61c2a91"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"whoRegistry","type":"address"},{"internalType":"address","name":"whereRegistry","type":"address"},{"internalType":"string","name":"name","type":"string"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"AlreadyOptedIn"},{"inputs":[],"type":"error","name":"CheckpointUnorderedInsertion"},{"inputs":[],"type":"error","name":"ExpiredSignature"},{"inputs":[],"type":"error","name":"InvalidShortString"},{"inputs":[],"type":"error","name":"InvalidSignature"},{"inputs":[],"type":"error","name":"NotOptedIn"},{"inputs":[],"type":"error","name":"NotWhereEntity"},{"inputs":[],"type":"error","name":"NotWho"},{"inputs":[],"type":"error","name":"OptOutCooldown"},{"inputs":[{"internalType":"uint8","name":"bits","type":"uint8"},{"internalType":"uint256","name":"value","type":"uint256"}],"type":"error","name":"SafeCastOverflowedUintDowncast"},{"inputs":[{"internalType":"string","name":"str","type":"string"}],"type":"error","name":"StringTooLong"},{"inputs":[],"type":"event","name":"EIP712DomainChanged","anonymous":false},{"inputs":[{"internalType":"address","name":"who","type":"address","indexed":true},{"internalType":"address","name":"where","type":"address","indexed":true}],"type":"event","name":"IncreaseNonce","anonymous":false},{"inputs":[{"internalType":"address","name":"who","type":"address","indexed":true},{"internalType":"address","name":"where","type":"address","indexed":true}],"type":"event","name":"OptIn","anonymous":false},{"inputs":[{"internalType":"address","name":"who","type":"address","indexed":true},{"internalType":"address","name":"where","type":"address","indexed":true}],"type":"event","name":"OptOut","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"WHERE_REGISTRY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"WHO_REGISTRY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"eip712Domain","outputs":[{"internalType":"bytes1","name":"fields","type":"bytes1"},{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"version","type":"string"},{"internalType":"uint256","name":"chainId","type":"uint256"},{"internalType":"address","name":"verifyingContract","type":"address"},{"internalType":"bytes32","name":"salt","type":"bytes32"},{"internalType":"uint256[]","name":"extensions","type":"uint256[]"}]},{"inputs":[{"internalType":"address","name":"where","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"increaseNonce"},{"inputs":[{"internalType":"address","name":"who","type":"address"},{"internalType":"address","name":"where","type":"address"}],"stateMutability":"view","type":"function","name":"isOptedIn","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"who","type":"address"},{"internalType":"address","name":"where","type":"address"},{"internalType":"uint48","name":"timestamp","type":"uint48"},{"internalType":"bytes","name":"hint","type":"bytes"}],"stateMutability":"view","type":"function","name":"isOptedInAt","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"who","type":"address"},{"internalType":"address","name":"where","type":"address"}],"stateMutability":"view","type":"function","name":"nonces","outputs":[{"internalType":"uint256","name":"nonce","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"where","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"optIn"},{"inputs":[{"internalType":"address","name":"who","type":"address"},{"internalType":"address","name":"where","type":"address"},{"internalType":"uint48","name":"deadline","type":"uint48"},{"internalType":"bytes","name":"signature","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"optIn"},{"inputs":[{"internalType":"address","name":"who","type":"address"},{"internalType":"address","name":"where","type":"address"},{"internalType":"uint48","name":"deadline","type":"uint48"},{"internalType":"bytes","name":"signature","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"optOut"},{"inputs":[{"internalType":"address","name":"where","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"optOut"},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"staticDelegateCall"}],"devdoc":{"kind":"dev","methods":{"eip712Domain()":{"details":"See {IERC-5267}."},"increaseNonce(address)":{"details":"It can be used to invalidate a given signature.","params":{"where":"address of the \"where\" entity"}},"isOptedIn(address,address)":{"params":{"where":"address of the \"where\" entity","who":"address of the \"who\""},"returns":{"_0":"if the \"who\" is opted-in"}},"isOptedInAt(address,address,uint48,bytes)":{"params":{"hint":"hint for the checkpoint index","timestamp":"time point to get if the \"who\" is opted-in at","where":"address of the \"where\" entity","who":"address of the \"who\""},"returns":{"_0":"if the \"who\" is opted-in at the given timestamp"}},"optIn(address)":{"params":{"where":"address of the \"where\" entity"}},"optIn(address,address,uint48,bytes)":{"params":{"deadline":"time point until the signature is valid (inclusively)","signature":"signature of the \"who\"","where":"address of the \"where\" entity","who":"address of the \"who\""}},"optOut(address)":{"params":{"where":"address of the \"where\" entity"}},"optOut(address,address,uint48,bytes)":{"params":{"deadline":"time point until the signature is valid (inclusively)","signature":"signature of the \"who\"","where":"address of the \"where\" entity","who":"address of the \"who\""}},"staticDelegateCall(address,bytes)":{"details":"It allows to use this contract's storage on-chain.","params":{"data":"data to make a delegatecall with","target":"address of the contract to make a delegatecall to"}}},"version":1},"userdoc":{"kind":"user","methods":{"WHERE_REGISTRY()":{"notice":"Get the address of the registry where to opt-in."},"WHO_REGISTRY()":{"notice":"Get the \"who\" registry's address."},"increaseNonce(address)":{"notice":"Increase the nonce of a given \"who\" to a particular \"where\" entity."},"isOptedIn(address,address)":{"notice":"Check if a given \"who\" is opted-in to a particular \"where\" entity."},"isOptedInAt(address,address,uint48,bytes)":{"notice":"Get if a given \"who\" is opted-in to a particular \"where\" entity at a given timestamp using a hint."},"nonces(address,address)":{"notice":"Get the nonce of a given \"who\" to a particular \"where\" entity."},"optIn(address)":{"notice":"Opt-in a calling \"who\" to a particular \"where\" entity."},"optIn(address,address,uint48,bytes)":{"notice":"Opt-in a \"who\" to a particular \"where\" entity with a signature."},"optOut(address)":{"notice":"Opt-out a calling \"who\" from a particular \"where\" entity."},"optOut(address,address,uint48,bytes)":{"notice":"Opt-out a \"who\" from a particular \"where\" entity with a signature."},"staticDelegateCall(address,bytes)":{"notice":"Make a delegatecall from this contract to a given target contract with a particular data (always reverts with a return data)."}},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/contracts/service/OptInService.sol":"OptInService"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts/contracts/interfaces/IERC1271.sol":{"keccak256":"0x85a45f3f10014a0f8be41157a32b6a5f905753ea64a4b64e29fc12b7deeecf39","urls":["bzz-raw://c3c74009ce36136b36c77c23935b8e4a7b4f253be2da2be4fb4a916b1ce43743","dweb:/ipfs/QmcH36v3iN7SJJuF73AunLR2LtNxhVJ1wm63ph4dPZ4pcL"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC5267.sol":{"keccak256":"0x92aa1df62dc3d33f1656d63bede0923e0df0b706ad4137c8b10b0a8fe549fd92","urls":["bzz-raw://c5c0f29195ad64cbe556da8e257dac8f05f78c53f90323c0d2accf8e6922d33a","dweb:/ipfs/QmQ61TED8uaCZwcbh8KkgRSsCav7x7HbcGHwHts3U4DmUP"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/ShortStrings.sol":{"keccak256":"0x18a7171df639a934592915a520ecb97c5bbc9675a1105607aac8a94e72bf62c6","urls":["bzz-raw://7478e1f13da69a2867ccd883001d836b75620362e743f196376d63ed0c422a1c","dweb:/ipfs/QmWywcQ9TNfwtoqAxbn25d8C5VrV12PrPS9UjtGe6pL2BA"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol":{"keccak256":"0x32ba59b4b7299237c8ba56319110989d7978a039faf754793064e967e5894418","urls":["bzz-raw://1ae50c8b562427df610cc4540c9bf104acca7ef8e2dcae567ae7e52272281e9c","dweb:/ipfs/QmTHiadFCSJUPpRjNegc5SahmeU8bAoY8i9Aq6tVscbcKR"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0x55f102ea785d8399c0e58d1108e2d289506dde18abc6db1b7f68c1f9f9bc5792","urls":["bzz-raw://6e52e0a7765c943ef14e5bcf11e46e6139fa044be564881378349236bf2e3453","dweb:/ipfs/QmZEeeXoFPW47amyP35gfzomF9DixqqTEPwzBakv6cZw6i"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol":{"keccak256":"0xeed0a08b0b091f528356cbc7245891a4c748682d4f6a18055e8e6ca77d12a6cf","urls":["bzz-raw://ba80ba06c8e6be852847e4c5f4492cef801feb6558ae09ed705ff2e04ea8b13c","dweb:/ipfs/QmXRJDv3xHLVQCVXg1ZvR35QS9sij5y9NDWYzMfUfAdTHF"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/EIP712.sol":{"keccak256":"0x999f705a027ed6dc2d4e0df2cc4a509852c6bfd11de1c8161bf88832d0503fd0","urls":["bzz-raw://0798def67258d9a3cc20b2b4da7ebf351a5cefe0abfdd665d2d81f8e32f89b21","dweb:/ipfs/QmPEvJosnPfzHNjKvCv2D3891mA2Ww8eUwkqrxBjuYdHCt"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol":{"keccak256":"0xba333517a3add42cd35fe877656fc3dfcc9de53baa4f3aabbd6d12a92e4ea435","urls":["bzz-raw://2ceacff44c0fdc81e48e0e0b1db87a2076d3c1fb497341de077bf1da9f6b406c","dweb:/ipfs/QmRUo1muMRAewxrKQ7TkXUtknyRoR57AyEkoPpiuZQ8FzX"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/SignatureChecker.sol":{"keccak256":"0x6b11eb41a228cca35d4b662b4df69fcd75192851365102690f57b2ac01e83fe6","urls":["bzz-raw://ab006a2983ed350d2af21ddcdd835dcae3b8340086cc4d088460da5abd041f69","dweb:/ipfs/QmbEacDhkJZiGrgzLjB4pNtE8Z1uudjDw1DvcDUTVQFsLG"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d","urls":["bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875","dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol":{"keccak256":"0xe19a4d5f31d2861e7344e8e535e2feafb913d806d3e2b5fe7782741a2a7094fe","urls":["bzz-raw://4aed79c0fa6f0546ed02f2f683e8f77f0fd2ed7eb34d8bbf3d373c9a6d95b13c","dweb:/ipfs/QmWqVz6UAVqmnWU5pqYPt1o6iDEZyPaBraAA3rKfTTSfYj"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0x5f7e4076e175393767754387c962926577f1660dd9b810187b9002407656be72","urls":["bzz-raw://7d533a1c97cd43a57cd9c465f7ee8dd0e39ae93a8fb8ff8e5303a356b081cdcc","dweb:/ipfs/QmVBEei6aTnvYNZp2CHYVNKyZS4q1KkjANfY39WVXZXVoT"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/Checkpoints.sol":{"keccak256":"0xbdc5e074d7dd6678f67e92b1a51a20226801a407b0e1af3da367c5d1ff4519ad","urls":["bzz-raw://a36cca6b22fff3db16fc789ff6c60eea71d4b156065d4d0c83a0bc5e91a77a8b","dweb:/ipfs/QmYN3exd5AemxjBrN8XMB1p5LbbE16uC3sjbYjwi8AjcGR"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/types/Time.sol":{"keccak256":"0xc7755af115020049e4140f224f9ee88d7e1799ffb0646f37bf0df24bf6213f58","urls":["bzz-raw://7f09bf94d5274334ec021f61a04659db303f31e60460e14b709c9bf187740111","dweb:/ipfs/QmNvgomZYUwFAt4cZbPWAiTeSZQreGehY9BK5xyVJsUttb"],"license":"MIT"},"src/contracts/common/StaticDelegateCallable.sol":{"keccak256":"0x350029aa8955eacaffffaeb58babc5c98e80ebc5c5db388ed17ee6465f4a9d90","urls":["bzz-raw://eb392a8ee9050e0af606897df63e3404e3829e8b688b580663892f9664195764","dweb:/ipfs/QmaXC8jqV8UrrAFkzXTEv2fJF56sy33HhLxAzaRZmUxuXD"],"license":"BUSL-1.1"},"src/contracts/libraries/Checkpoints.sol":{"keccak256":"0xba90097c8bfe0a975499428b5f8ac5569483c7d92ccc28c12d70de416aae040c","urls":["bzz-raw://12f5d93ca94cd06d3147db68993165a58e17903ed53682560de61f3085ad4609","dweb:/ipfs/QmePiuAqvXprMLmFZkGZeGjvGPAvsEDHfCDv7BoQhXu9xE"],"license":"MIT"},"src/contracts/service/OptInService.sol":{"keccak256":"0x4e0932077f2686b7990e10d59deb2535334c0d09e52ef6e57c6ab09eca21c4b1","urls":["bzz-raw://7c00d311032ed4a1743aca7475f3c86ce15cdfc2218108efc3731c03d34a5278","dweb:/ipfs/QmUGGfVwVhaHr5kS4177yKKYiLYzi5qZpkEmvYxBZqazxf"],"license":"BUSL-1.1"},"src/interfaces/common/IRegistry.sol":{"keccak256":"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb","urls":["bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014","dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK"],"license":"MIT"},"src/interfaces/common/IStaticDelegateCallable.sol":{"keccak256":"0xa335d4e81b9071b7de66ef92b43ff20671d86516eb1be46fef29a3483cd3f5d5","urls":["bzz-raw://d464b9db863c14c05547d2b23352f2e9b7b784799cf09f6bbc4906a2a74e3516","dweb:/ipfs/QmUVWzFvJz7eEbDQKiFTTzwi7TEbjcs3VmwdM4kuptAKvi"],"license":"MIT"},"src/interfaces/service/IOptInService.sol":{"keccak256":"0x76fb5460a6d87a5705433d4fbeff7253cd75b8bbd0c888b2088f16e86ace146a","urls":["bzz-raw://990322019b3d11465f7024bae77ccbf7e2fe5d6fa3c754584778f37d04fa1337","dweb:/ipfs/QmaSNHzcqxTkUCG9a4nqVfLECHLdjdrwAnDi3yDC7tDL24"],"license":"MIT"}},"version":1},"id":91} \ No newline at end of file +{"abi":[{"type":"constructor","inputs":[{"name":"whoRegistry","type":"address","internalType":"address"},{"name":"whereRegistry","type":"address","internalType":"address"},{"name":"name","type":"string","internalType":"string"}],"stateMutability":"nonpayable"},{"type":"function","name":"WHERE_REGISTRY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"WHO_REGISTRY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"eip712Domain","inputs":[],"outputs":[{"name":"fields","type":"bytes1","internalType":"bytes1"},{"name":"name","type":"string","internalType":"string"},{"name":"version","type":"string","internalType":"string"},{"name":"chainId","type":"uint256","internalType":"uint256"},{"name":"verifyingContract","type":"address","internalType":"address"},{"name":"salt","type":"bytes32","internalType":"bytes32"},{"name":"extensions","type":"uint256[]","internalType":"uint256[]"}],"stateMutability":"view"},{"type":"function","name":"increaseNonce","inputs":[{"name":"where","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"isOptedIn","inputs":[{"name":"who","type":"address","internalType":"address"},{"name":"where","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isOptedInAt","inputs":[{"name":"who","type":"address","internalType":"address"},{"name":"where","type":"address","internalType":"address"},{"name":"timestamp","type":"uint48","internalType":"uint48"},{"name":"hint","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"nonces","inputs":[{"name":"who","type":"address","internalType":"address"},{"name":"where","type":"address","internalType":"address"}],"outputs":[{"name":"nonce","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"optIn","inputs":[{"name":"where","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"optIn","inputs":[{"name":"who","type":"address","internalType":"address"},{"name":"where","type":"address","internalType":"address"},{"name":"deadline","type":"uint48","internalType":"uint48"},{"name":"signature","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"optOut","inputs":[{"name":"who","type":"address","internalType":"address"},{"name":"where","type":"address","internalType":"address"},{"name":"deadline","type":"uint48","internalType":"uint48"},{"name":"signature","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"optOut","inputs":[{"name":"where","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"staticDelegateCall","inputs":[{"name":"target","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"EIP712DomainChanged","inputs":[],"anonymous":false},{"type":"event","name":"IncreaseNonce","inputs":[{"name":"who","type":"address","indexed":true,"internalType":"address"},{"name":"where","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"OptIn","inputs":[{"name":"who","type":"address","indexed":true,"internalType":"address"},{"name":"where","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"OptOut","inputs":[{"name":"who","type":"address","indexed":true,"internalType":"address"},{"name":"where","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"error","name":"AlreadyOptedIn","inputs":[]},{"type":"error","name":"CheckpointUnorderedInsertion","inputs":[]},{"type":"error","name":"ExpiredSignature","inputs":[]},{"type":"error","name":"InvalidShortString","inputs":[]},{"type":"error","name":"InvalidSignature","inputs":[]},{"type":"error","name":"NotOptedIn","inputs":[]},{"type":"error","name":"NotWhereEntity","inputs":[]},{"type":"error","name":"NotWho","inputs":[]},{"type":"error","name":"OptOutCooldown","inputs":[]},{"type":"error","name":"SafeCastOverflowedUintDowncast","inputs":[{"name":"bits","type":"uint8","internalType":"uint8"},{"name":"value","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"StringTooLong","inputs":[{"name":"str","type":"string","internalType":"string"}]}],"bytecode":{"object":"0x6101a0604090808252346101dc57611c85803803809161001f82856101e0565b833981016060828203126101dc5761003682610203565b6020610043818501610203565b848601516001600160401b03959194918682116101dc57019181601f840112156101dc5782518681116101c857875193610086601f8301601f19168401866101e0565b818552828501938383830101116101dc57815f9284809301865e85010152865190878201828110888211176101c857885260018252808201603160f81b81526100ce85610217565b936101209485526100de846103ae565b95610140968752519020928360e0525190209761010098808a524660a0528151928301937f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f85528284015260608301524660808301523060a083015260a0825260c0820197828910908911176101c8578790525190206080523060c0526101609283526101809384526117a095866104e5873960805186611222015260a051866112dd015260c051866111ec015260e0518661127101525185611297015251846102dd015251836103060152518281816105d90152610c3901525181818161024e0152610c8c0152f35b634e487b7160e01b5f52604160045260245ffd5b5f80fd5b601f909101601f19168101906001600160401b038211908210176101c857604052565b51906001600160a01b03821682036101dc57565b80516020908181101561028d5750601f82511161024f578082519201519080831061024157501790565b825f19910360031b1b161790565b60448260405192839163305a27a960e01b83528160048401528051918291826024860152018484015e5f828201840152601f01601f19168101030190fd5b906001600160401b0382116101c8575f54926001938481811c911680156103a4575b8382101461039057601f811161035d575b5081601f84116001146102fb57509282939183925f946102f0575b50501b915f199060031b1c1916175f5560ff90565b015192505f806102db565b919083601f1981165f8052845f20945f905b88838310610343575050501061032b575b505050811b015f5560ff90565b01515f1960f88460031b161c191690555f808061031e565b85870151885590960195948501948793509081019061030d565b5f805284601f845f20920160051c820191601f860160051c015b8281106103855750506102c0565b5f8155018590610377565b634e487b7160e01b5f52602260045260245ffd5b90607f16906102af565b8051602090818110156103d85750601f82511161024f578082519201519080831061024157501790565b9192916001600160401b0381116101c85760019182548381811c911680156104da575b8282101461039057601f81116104a7575b5080601f83116001146104475750819293945f9261043c575b50505f19600383901b1c191690821b17905560ff90565b015190505f80610425565b90601f19831695845f52825f20925f905b8882106104905750508385969710610478575b505050811b01905560ff90565b01515f1960f88460031b161c191690555f808061046b565b808785968294968601518155019501930190610458565b835f5283601f835f20920160051c820191601f850160051c015b8281106104cf57505061040c565b5f81550184906104c1565b90607f16906103fb56fe60806040526004361015610011575f80fd5b5f3560e01c8063220d32d4146100d4578063530e1d43146100cf5780636d0fae4a146100ca5780638247a97c146100c557806384b0196e146100c05780639333fbda146100bb57806393f79bc3146100b65780639f86fd85146100b1578063b1138ad1146100ac578063c4b5d62c146100a7578063ced44ba7146100a25763d46104831461009d575f80fd5b6106cc565b610608565b6105c4565b6105a2565b610511565b610412565b6103bb565b6102c5565b61027d565b610239565b6101d3565b610109565b600435906001600160a01b03821682036100ef57565b5f80fd5b602435906001600160a01b03821682036100ef57565b346100ef5760403660031901126100ef5760206101356101276100d9565b61012f6100f3565b906106ee565b6040519015158152f35b9181601f840112156100ef5782359167ffffffffffffffff83116100ef57602083818601950101116100ef57565b9060806003198301126100ef576001600160a01b039160043583811681036100ef579260243590811681036100ef579160443565ffffffffffff811681036100ef57916064359067ffffffffffffffff82116100ef576101cf9160040161013f565b9091565b346100ef576020600161022961022f61021a6101ee3661016d565b969290949193888060a01b03165f526003895260405f209060018060a01b03165f5260205260405f2090565b92868060d01b0395369161080b565b916108c3565b1614604051908152f35b346100ef575f3660031901126100ef576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346100ef5760203660031901126100ef5761029f6102996100d9565b336109bf565b005b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b346100ef575f3660031901126100ef5761035e6103017f0000000000000000000000000000000000000000000000000000000000000000610e2a565b61032a7f0000000000000000000000000000000000000000000000000000000000000000610f28565b6040519061033782610786565b5f825261036c602091604051958695600f60f81b875260e0602088015260e08701906102a1565b9085820360408701526102a1565b4660608501523060808501525f60a085015283810360c0850152602080845192838152019301915f5b8281106103a457505050500390f35b835185528695509381019392810192600101610395565b346100ef5760403660031901126100ef5760206104096103d96100d9565b6103e16100f3565b6001600160a01b039182165f9081526002855260408082209290931681526020919091522090565b54604051908152f35b346100ef576104203661016d565b909165ffffffffffff8061043342610ff1565b1691169081106104ff576104df926104d06104d89260018060a01b0380891691825f5260026020526104788960405f209060018060a01b03165f5260205260405f2090565b546040519260208401947f7830334d17a05ab8aeca8f1778e27182208fc2d454ac7b38a4edc2069ee3a4a6865260408501528a166060840152608083015260a082015260a081526104c8816107a2565b519020611023565b92369161080b565b9084610a15565b156104ed5761029f91610af1565b604051638baa579f60e01b8152600490fd5b60405163df4cc36d60e01b8152600490fd5b346100ef5760403660031901126100ef5761052a6100d9565b60243567ffffffffffffffff81116100ef575f9161054d8392369060040161013f565b90816040519283928337810184815203915af461059a61056b610841565b9161058c6040519384921515602084015260408084015260608301906102a1565b03601f1981018352826107be565b805190602001fd5b346100ef5760203660031901126100ef5761029f6105be6100d9565b33610c0d565b346100ef575f3660031901126100ef576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346100ef576106163661016d565b909165ffffffffffff8061062942610ff1565b1691169081106104ff576106be926104d06104d89260018060a01b0380891691825f52600260205261066e8960405f209060018060a01b03165f5260205260405f2090565b546040519260208401947f6ab5200f1123a8d51d1695a9e5e757267926b53c6359f90b8873cc7dcc30ea2c865260408501528a166060840152608083015260a082015260a081526104c8816107a2565b156104ed5761029f91610c0d565b346100ef5760203660031901126100ef5761029f6106e86100d9565b33610af1565b6001600160a01b039081165f908152600360209081526040808320939094168252919091522080548061072c57505060015f5b818060d01b03161490565b5f1990808281011161074c576001925f5260205f2001015460301c610721565b61088c565b634e487b7160e01b5f52604160045260245ffd5b6040810190811067ffffffffffffffff82111761078157604052565b610751565b6020810190811067ffffffffffffffff82111761078157604052565b60c0810190811067ffffffffffffffff82111761078157604052565b90601f8019910116810190811067ffffffffffffffff82111761078157604052565b604051906107ed82610765565b565b67ffffffffffffffff811161078157601f01601f191660200190565b929192610817826107ef565b9161082560405193846107be565b8294818452818301116100ef578281602093845f960137010152565b3d1561086b573d90610852826107ef565b9161086060405193846107be565b82523d5f602084013e565b606090565b908160209103126100ef575163ffffffff811681036100ef5790565b634e487b7160e01b5f52601160045260245ffd5b5f1981019190821161074c57565b90600163ffffffff8093160191821161074c57565b918051156109b557806020806108de93518301019101610870565b916108e98382610dd6565b926108fa845165ffffffffffff1690565b9065ffffffffffff808516921682811461099c578211918261093c575b505061092a576109279250611091565b90565b5050602001516001600160d01b031690565b90915061094983546108a0565b63ffffffff831614918215610962575b50505f80610917565b61099491925061097d610977610989926108ae565b85610dd6565b5165ffffffffffff1690565b65ffffffffffff1690565b115f80610959565b50505050602091909101516001600160d01b0316905090565b5061092791611091565b6001600160a01b039081165f8181526002602090815260408083209590941680835294905291822080546001019055907f8ed32926585579e6191b145240df788165f4957e1135f30a00e08ee8feb9d6809080a3565b610a1f8383611049565b506004819592951015610add57159384610ac7575b508315610a42575b50505090565b5f929350908291604051610a7a8161058c6020820194630b135d3f60e11b998a875260248401526040604484015260648301906102a1565b51915afa90610a87610841565b82610ab9575b82610a9d575b50505f8080610a3c565b9091506020818051810103126100ef5760200151145f80610a93565b915060208251101591610a8d565b6001600160a01b0383811691161493505f610a34565b634e487b7160e01b5f52602160045260245ffd5b90610b2d610b2882610b138560018060a01b03165f52600360205260405f2090565b9060018060a01b03165f5260205260405f2090565b611385565b9091506001600160d01b031615610bd85765ffffffffffff80610b4f42610ff1565b16911614610bc657610b87610b7882610b138560018060a01b03165f52600360205260405f2090565b610b8142610ff1565b90611590565b5050610b9381836109bf565b6001600160a01b0390811691167f1629cd9ad365627cf8408d19c50224af8f3213c1a18ae48062d92e22bddf7de55f80a3565b60405163291bf4b760e21b8152600490fd5b6040516334b09b3960e11b8152600490fd5b908160209103126100ef575180151581036100ef5790565b6040513d5f823e3d90fd5b6040516302910f8b60e31b8082526001600160a01b0383811660048401529293916020919082816024817f000000000000000000000000000000000000000000000000000000000000000089165afa908115610d8a575f91610da1575b5015610d8f576040519081526001600160a01b038316600482015281816024817f000000000000000000000000000000000000000000000000000000000000000088165afa918215610d8a575f92610d5d575b505015610d4b57610cce81846106ee565b610d395780610d04610cf58493610b138760018060a01b03165f52600360205260405f2090565b610cfe42610ff1565b9061168f565b5050610d1081856109bf565b1691167f9b730d5b907ee509de729817a2bb37e404418ba569b3a50f36192372f973cb415f80a3565b60405163dcdeaba360e01b8152600490fd5b6040516321f5408d60e01b8152600490fd5b610d7c9250803d10610d83575b610d7481836107be565b810190610bea565b5f80610cbd565b503d610d6a565b610c02565b604051630fb9ff9560e41b8152600490fd5b610db89150833d8511610d8357610d7481836107be565b5f610c6a565b60405190610dcb82610765565b5f6020838281520152565b610dfb91610df591610de6610dbe565b50610def610dbe565b50611170565b50611199565b65ffffffffffff81511690602060018060d01b039101511660405191610e2083610765565b8252602082015290565b60ff8114610e3b57610927906111bd565b506040515f80546001918160011c9260018316908115610f1e575b602090602086108314610f0a5785875286946020860193908115610eeb5750600114610e8c575b505050610927925003826107be565b925093610eb95f80527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e56390565b945f935b828510610ed5575050506109279350015f8080610e7d565b8654858501529586019587955093810193610ebd565b925050506109279491925060ff19168252151560051b015f8080610e7d565b634e487b7160e01b5f52602260045260245ffd5b93607f1693610e56565b60ff8114610f3957610927906111bd565b506040516001805480821c915f90828116908115610fe7575b602090602086108314610f0a5785875286946020860193908115610eeb5750600114610f8757505050610927925003826107be565b925093610fb560015f527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf690565b945f935b828510610fd1575050506109279350015f8080610e7d565b8654858501529586019587955093810193610fb9565b93607f1693610f52565b65ffffffffffff90818111611004571690565b604490604051906306dfcc6560e41b8252603060048301526024820152fd5b60429061102e6111e9565b906040519161190160f01b8352600283015260228201522090565b8151919060418303611079576110729250602082015190606060408401519301515f1a90611303565b9192909190565b50505f9160029190565b906001820180921161074c57565b908154905f918060058111611127575b50915b8281106110da575050806110b85750505f90565b610927916110c86110d3926108a0565b905f5260205f200190565b5460301c90565b90918082169080831860011c820180921161074c57845f5265ffffffffffff808360205f20015416908516105f146111155750915b906110a4565b92915061112190611083565b9061110f565b90611131826113f2565b820391821161074c57845f5265ffffffffffff808360205f20015416908416105f1461115f57505b5f6110a1565b925061116a90611083565b91611159565b8054821015611185575f5260205f2001905f90565b634e487b7160e01b5f52603260045260245ffd5b906040516111a681610765565b915465ffffffffffff8116835260301c6020830152565b60ff811690601f82116111d75760405191610e2083610765565b604051632cd44ac360e21b8152600490fd5b307f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031614806112da575b15611244577f000000000000000000000000000000000000000000000000000000000000000090565b60405160208101907f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f82527f000000000000000000000000000000000000000000000000000000000000000060408201527f000000000000000000000000000000000000000000000000000000000000000060608201524660808201523060a082015260a081526112d4816107a2565b51902090565b507f0000000000000000000000000000000000000000000000000000000000000000461461121b565b91907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0841161137a579160209360809260ff5f9560405194855216868401526040830152606082015282805260015afa15610d8a575f516001600160a01b0381161561137057905f905f90565b505f906001905f90565b5050505f9160039190565b8054806113965750505f905f905f90565b5f1990808281011161074c576113b3925f5260205f200101611199565b9065ffffffffffff82511691602060018060d01b0391015116906001929190565b81156113de570490565b634e487b7160e01b5f52601260045260245ffd5b801561152b57806114c46114bd6114b36114a961149f61149561148b61148160016109279a5f908b60801c8061151f575b508060401c80611512575b508060201c80611505575b508060101c806114f8575b508060081c806114eb575b508060041c806114de575b508060021c806114d1575b50821c6114ca575b811c1b61147a818b6113d4565b0160011c90565b61147a818a6113d4565b61147a81896113d4565b61147a81886113d4565b61147a81876113d4565b61147a81866113d4565b61147a81856113d4565b80926113d4565b90611758565b810161146d565b600291509101905f611465565b600491509101905f61145a565b600891509101905f61144f565b601091509101905f611444565b602091509101905f611439565b604091509101905f61142e565b9150506080905f611423565b505f90565b8054680100000000000000008110156107815761155291600182018155611170565b91909161157d57805160209091015160301b65ffffffffffff191665ffffffffffff91909116179055565b634e487b7160e01b5f525f60045260245ffd5b805490811561166d576115b86115b36115a8846108a0565b835f5260205f200190565b611199565b906115c9825165ffffffffffff1690565b65ffffffffffff858116949116841061165b57611628946020946115f6610989865165ffffffffffff1690565b0361162d575061161a916110c861160c926108a0565b65ffffffffffff8154169055565b01516001600160d01b031690565b905f90565b90506116569161164c61163e6107e0565b65ffffffffffff9093168352565b5f85830152611530565b61161a565b604051632520601d60e01b8152600490fd5b61168992915061167e61163e6107e0565b5f6020830152611530565b5f905f90565b8054908115611734576116a76115b36115a8846108a0565b906116b8825165ffffffffffff1690565b65ffffffffffff858116949116841061165b57611712946020946116e5610989865165ffffffffffff1690565b03611718575061161a916110c86116fb926108a0565b660100000000000065ffffffffffff825416179055565b90600190565b90506116569161172961163e6107e0565b600182860152611530565b61175192915061174561163e6107e0565b60016020830152611530565b5f90600190565b9080821015611765575090565b90509056fea2646970667358221220d08a62079d1131e45276e2c77bac54e5153d28c3ca2f82717b7a540da37abe8c64736f6c63430008190033","sourceMap":"583:4371:96:-:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;-1:-1:-1;;;;;583:4371:96;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;583:4371:96;;;;;:::i;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;583:4371:96;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;583:4371:96;;3401:45:53;;;:::i;:::-;3393:53;;;;;3467:51;;;:::i;:::-;3456:62;;;;;583:4371:96;3542:22:53;;3528:36;;;;583:4371:96;3591:25:53;;3574:42;;;;;;3644:13;3627:30;;583:4371:96;;4204:80:53;;;2079:95;;;;;;;;583:4371:96;2079:95:53;;;3644:13;2079:95;;;;4278:4;3627:30;2079:95;;;3627:30;4204:80;;2079:95;583:4371:96;;;;;;;;;;;;;;;;4194:91:53;;2079:95;3667:48;4278:4;2079:95;3725:27;1675:26:96;;;;1711:30;;;;583:4371;;;;;;2079:95:53;583:4371:96;;;;;3627:30:53;583:4371:96;;;;;2079:95:53;583:4371:96;;;;;3528:36:53;583:4371:96;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;583:4371:96;;;;;-1:-1:-1;583:4371:96;;-1:-1:-1;583:4371:96;;;;;;;-1:-1:-1;;583:4371:96;;;;-1:-1:-1;;;;;583:4371:96;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;583:4371:96;;;;;;:::o;2914:340:49:-;583:4371:96;;3059:2:49;;3037:24;;;3059:2;;;583:4371:96;1854:2:49;583:4371:96;;1840:16:49;1836:72;;583:4371:96;;;;;2079:95:53;583:4371:96;;;;;;1949:36:49;;3077:27;:::o;583:4371:96:-;;;;;;;;;;1949:36:49;3077:27;:::o;1836:72::-;583:4371:96;;;;1879:18:49;;;;;;;;;;;;583:4371:96;;;;;;;;;;;;;;;;3432:13:53;583:4371:96;;;;;;1854:2:49;583:4371:96;-1:-1:-1;;583:4371:96;;;1879:18:49;;;;3033:215;583:4371:96;-1:-1:-1;;;;;583:4371:96;;;;3432:13:53;583:4371:96;;;;;;;;;;;;;;3033:215:49;583:4371:96;;;;;;;;;;;3033:215:49;583:4371:96;;;;;;;;;;;;;;;;3432:13:53;583:4371:96;;;;;;;;;;;;;;;;;3432:13:53;583:4371:96;1390:66:49;3195:42;:::o;583:4371:96:-;;;;-1:-1:-1;583:4371:96;;;;;;;;;;;;3432:13:53;583:4371:96;;;3432:13:53;583:4371:96;;3432:13:53;583:4371:96;;;;;;;;;;;;;;;;;;;;;3432:13:53;583:4371:96;1390:66:49;3195:42;:::o;583:4371:96:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;583:4371:96;;;;;;;3432:13:53;583:4371:96;;;;;3432:13:53;583:4371:96;;;;;;;;;;;;;;;;;;;;;;;;;3432:13:53;583:4371:96;;;;;;;;;;;3432:13:53;583:4371:96;;;;;3432:13:53;583:4371:96;;;;;;;;2914:340:49;583:4371:96;;3059:2:49;;3037:24;;;3059:2;;;583:4371:96;1854:2:49;583:4371:96;;1840:16:49;1836:72;;583:4371:96;;;;;2079:95:53;583:4371:96;;;;;;1949:36:49;;3077:27;:::o;3033:215::-;583:4371:96;;;-1:-1:-1;;;;;583:4371:96;;;;;;;;;;;;;;;;;;3033:215:49;583:4371:96;;;;;;;;;;;3033:215:49;583:4371:96;;;;;;;;;;;;;;-1:-1:-1;583:4371:96;;;;-1:-1:-1;;;;583:4371:96;;;;;;;;;;;;;1390:66:49;;3195:42::o;583:4371:96:-;;;;-1:-1:-1;583:4371:96;;;;;;;;;;;;-1:-1:-1;583:4371:96;;-1:-1:-1;583:4371:96;;-1:-1:-1;583:4371:96;;;;;;;;;;;;;;;;;;;;;;;;;1390:66:49;3195:42;:::o;583:4371:96:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;583:4371:96;;;;-1:-1:-1;583:4371:96;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;583:4371:96;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361015610011575f80fd5b5f3560e01c8063220d32d4146100d4578063530e1d43146100cf5780636d0fae4a146100ca5780638247a97c146100c557806384b0196e146100c05780639333fbda146100bb57806393f79bc3146100b65780639f86fd85146100b1578063b1138ad1146100ac578063c4b5d62c146100a7578063ced44ba7146100a25763d46104831461009d575f80fd5b6106cc565b610608565b6105c4565b6105a2565b610511565b610412565b6103bb565b6102c5565b61027d565b610239565b6101d3565b610109565b600435906001600160a01b03821682036100ef57565b5f80fd5b602435906001600160a01b03821682036100ef57565b346100ef5760403660031901126100ef5760206101356101276100d9565b61012f6100f3565b906106ee565b6040519015158152f35b9181601f840112156100ef5782359167ffffffffffffffff83116100ef57602083818601950101116100ef57565b9060806003198301126100ef576001600160a01b039160043583811681036100ef579260243590811681036100ef579160443565ffffffffffff811681036100ef57916064359067ffffffffffffffff82116100ef576101cf9160040161013f565b9091565b346100ef576020600161022961022f61021a6101ee3661016d565b969290949193888060a01b03165f526003895260405f209060018060a01b03165f5260205260405f2090565b92868060d01b0395369161080b565b916108c3565b1614604051908152f35b346100ef575f3660031901126100ef576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346100ef5760203660031901126100ef5761029f6102996100d9565b336109bf565b005b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b346100ef575f3660031901126100ef5761035e6103017f0000000000000000000000000000000000000000000000000000000000000000610e2a565b61032a7f0000000000000000000000000000000000000000000000000000000000000000610f28565b6040519061033782610786565b5f825261036c602091604051958695600f60f81b875260e0602088015260e08701906102a1565b9085820360408701526102a1565b4660608501523060808501525f60a085015283810360c0850152602080845192838152019301915f5b8281106103a457505050500390f35b835185528695509381019392810192600101610395565b346100ef5760403660031901126100ef5760206104096103d96100d9565b6103e16100f3565b6001600160a01b039182165f9081526002855260408082209290931681526020919091522090565b54604051908152f35b346100ef576104203661016d565b909165ffffffffffff8061043342610ff1565b1691169081106104ff576104df926104d06104d89260018060a01b0380891691825f5260026020526104788960405f209060018060a01b03165f5260205260405f2090565b546040519260208401947f7830334d17a05ab8aeca8f1778e27182208fc2d454ac7b38a4edc2069ee3a4a6865260408501528a166060840152608083015260a082015260a081526104c8816107a2565b519020611023565b92369161080b565b9084610a15565b156104ed5761029f91610af1565b604051638baa579f60e01b8152600490fd5b60405163df4cc36d60e01b8152600490fd5b346100ef5760403660031901126100ef5761052a6100d9565b60243567ffffffffffffffff81116100ef575f9161054d8392369060040161013f565b90816040519283928337810184815203915af461059a61056b610841565b9161058c6040519384921515602084015260408084015260608301906102a1565b03601f1981018352826107be565b805190602001fd5b346100ef5760203660031901126100ef5761029f6105be6100d9565b33610c0d565b346100ef575f3660031901126100ef576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346100ef576106163661016d565b909165ffffffffffff8061062942610ff1565b1691169081106104ff576106be926104d06104d89260018060a01b0380891691825f52600260205261066e8960405f209060018060a01b03165f5260205260405f2090565b546040519260208401947f6ab5200f1123a8d51d1695a9e5e757267926b53c6359f90b8873cc7dcc30ea2c865260408501528a166060840152608083015260a082015260a081526104c8816107a2565b156104ed5761029f91610c0d565b346100ef5760203660031901126100ef5761029f6106e86100d9565b33610af1565b6001600160a01b039081165f908152600360209081526040808320939094168252919091522080548061072c57505060015f5b818060d01b03161490565b5f1990808281011161074c576001925f5260205f2001015460301c610721565b61088c565b634e487b7160e01b5f52604160045260245ffd5b6040810190811067ffffffffffffffff82111761078157604052565b610751565b6020810190811067ffffffffffffffff82111761078157604052565b60c0810190811067ffffffffffffffff82111761078157604052565b90601f8019910116810190811067ffffffffffffffff82111761078157604052565b604051906107ed82610765565b565b67ffffffffffffffff811161078157601f01601f191660200190565b929192610817826107ef565b9161082560405193846107be565b8294818452818301116100ef578281602093845f960137010152565b3d1561086b573d90610852826107ef565b9161086060405193846107be565b82523d5f602084013e565b606090565b908160209103126100ef575163ffffffff811681036100ef5790565b634e487b7160e01b5f52601160045260245ffd5b5f1981019190821161074c57565b90600163ffffffff8093160191821161074c57565b918051156109b557806020806108de93518301019101610870565b916108e98382610dd6565b926108fa845165ffffffffffff1690565b9065ffffffffffff808516921682811461099c578211918261093c575b505061092a576109279250611091565b90565b5050602001516001600160d01b031690565b90915061094983546108a0565b63ffffffff831614918215610962575b50505f80610917565b61099491925061097d610977610989926108ae565b85610dd6565b5165ffffffffffff1690565b65ffffffffffff1690565b115f80610959565b50505050602091909101516001600160d01b0316905090565b5061092791611091565b6001600160a01b039081165f8181526002602090815260408083209590941680835294905291822080546001019055907f8ed32926585579e6191b145240df788165f4957e1135f30a00e08ee8feb9d6809080a3565b610a1f8383611049565b506004819592951015610add57159384610ac7575b508315610a42575b50505090565b5f929350908291604051610a7a8161058c6020820194630b135d3f60e11b998a875260248401526040604484015260648301906102a1565b51915afa90610a87610841565b82610ab9575b82610a9d575b50505f8080610a3c565b9091506020818051810103126100ef5760200151145f80610a93565b915060208251101591610a8d565b6001600160a01b0383811691161493505f610a34565b634e487b7160e01b5f52602160045260245ffd5b90610b2d610b2882610b138560018060a01b03165f52600360205260405f2090565b9060018060a01b03165f5260205260405f2090565b611385565b9091506001600160d01b031615610bd85765ffffffffffff80610b4f42610ff1565b16911614610bc657610b87610b7882610b138560018060a01b03165f52600360205260405f2090565b610b8142610ff1565b90611590565b5050610b9381836109bf565b6001600160a01b0390811691167f1629cd9ad365627cf8408d19c50224af8f3213c1a18ae48062d92e22bddf7de55f80a3565b60405163291bf4b760e21b8152600490fd5b6040516334b09b3960e11b8152600490fd5b908160209103126100ef575180151581036100ef5790565b6040513d5f823e3d90fd5b6040516302910f8b60e31b8082526001600160a01b0383811660048401529293916020919082816024817f000000000000000000000000000000000000000000000000000000000000000089165afa908115610d8a575f91610da1575b5015610d8f576040519081526001600160a01b038316600482015281816024817f000000000000000000000000000000000000000000000000000000000000000088165afa918215610d8a575f92610d5d575b505015610d4b57610cce81846106ee565b610d395780610d04610cf58493610b138760018060a01b03165f52600360205260405f2090565b610cfe42610ff1565b9061168f565b5050610d1081856109bf565b1691167f9b730d5b907ee509de729817a2bb37e404418ba569b3a50f36192372f973cb415f80a3565b60405163dcdeaba360e01b8152600490fd5b6040516321f5408d60e01b8152600490fd5b610d7c9250803d10610d83575b610d7481836107be565b810190610bea565b5f80610cbd565b503d610d6a565b610c02565b604051630fb9ff9560e41b8152600490fd5b610db89150833d8511610d8357610d7481836107be565b5f610c6a565b60405190610dcb82610765565b5f6020838281520152565b610dfb91610df591610de6610dbe565b50610def610dbe565b50611170565b50611199565b65ffffffffffff81511690602060018060d01b039101511660405191610e2083610765565b8252602082015290565b60ff8114610e3b57610927906111bd565b506040515f80546001918160011c9260018316908115610f1e575b602090602086108314610f0a5785875286946020860193908115610eeb5750600114610e8c575b505050610927925003826107be565b925093610eb95f80527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e56390565b945f935b828510610ed5575050506109279350015f8080610e7d565b8654858501529586019587955093810193610ebd565b925050506109279491925060ff19168252151560051b015f8080610e7d565b634e487b7160e01b5f52602260045260245ffd5b93607f1693610e56565b60ff8114610f3957610927906111bd565b506040516001805480821c915f90828116908115610fe7575b602090602086108314610f0a5785875286946020860193908115610eeb5750600114610f8757505050610927925003826107be565b925093610fb560015f527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf690565b945f935b828510610fd1575050506109279350015f8080610e7d565b8654858501529586019587955093810193610fb9565b93607f1693610f52565b65ffffffffffff90818111611004571690565b604490604051906306dfcc6560e41b8252603060048301526024820152fd5b60429061102e6111e9565b906040519161190160f01b8352600283015260228201522090565b8151919060418303611079576110729250602082015190606060408401519301515f1a90611303565b9192909190565b50505f9160029190565b906001820180921161074c57565b908154905f918060058111611127575b50915b8281106110da575050806110b85750505f90565b610927916110c86110d3926108a0565b905f5260205f200190565b5460301c90565b90918082169080831860011c820180921161074c57845f5265ffffffffffff808360205f20015416908516105f146111155750915b906110a4565b92915061112190611083565b9061110f565b90611131826113f2565b820391821161074c57845f5265ffffffffffff808360205f20015416908416105f1461115f57505b5f6110a1565b925061116a90611083565b91611159565b8054821015611185575f5260205f2001905f90565b634e487b7160e01b5f52603260045260245ffd5b906040516111a681610765565b915465ffffffffffff8116835260301c6020830152565b60ff811690601f82116111d75760405191610e2083610765565b604051632cd44ac360e21b8152600490fd5b307f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031614806112da575b15611244577f000000000000000000000000000000000000000000000000000000000000000090565b60405160208101907f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f82527f000000000000000000000000000000000000000000000000000000000000000060408201527f000000000000000000000000000000000000000000000000000000000000000060608201524660808201523060a082015260a081526112d4816107a2565b51902090565b507f0000000000000000000000000000000000000000000000000000000000000000461461121b565b91907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0841161137a579160209360809260ff5f9560405194855216868401526040830152606082015282805260015afa15610d8a575f516001600160a01b0381161561137057905f905f90565b505f906001905f90565b5050505f9160039190565b8054806113965750505f905f905f90565b5f1990808281011161074c576113b3925f5260205f200101611199565b9065ffffffffffff82511691602060018060d01b0391015116906001929190565b81156113de570490565b634e487b7160e01b5f52601260045260245ffd5b801561152b57806114c46114bd6114b36114a961149f61149561148b61148160016109279a5f908b60801c8061151f575b508060401c80611512575b508060201c80611505575b508060101c806114f8575b508060081c806114eb575b508060041c806114de575b508060021c806114d1575b50821c6114ca575b811c1b61147a818b6113d4565b0160011c90565b61147a818a6113d4565b61147a81896113d4565b61147a81886113d4565b61147a81876113d4565b61147a81866113d4565b61147a81856113d4565b80926113d4565b90611758565b810161146d565b600291509101905f611465565b600491509101905f61145a565b600891509101905f61144f565b601091509101905f611444565b602091509101905f611439565b604091509101905f61142e565b9150506080905f611423565b505f90565b8054680100000000000000008110156107815761155291600182018155611170565b91909161157d57805160209091015160301b65ffffffffffff191665ffffffffffff91909116179055565b634e487b7160e01b5f525f60045260245ffd5b805490811561166d576115b86115b36115a8846108a0565b835f5260205f200190565b611199565b906115c9825165ffffffffffff1690565b65ffffffffffff858116949116841061165b57611628946020946115f6610989865165ffffffffffff1690565b0361162d575061161a916110c861160c926108a0565b65ffffffffffff8154169055565b01516001600160d01b031690565b905f90565b90506116569161164c61163e6107e0565b65ffffffffffff9093168352565b5f85830152611530565b61161a565b604051632520601d60e01b8152600490fd5b61168992915061167e61163e6107e0565b5f6020830152611530565b5f905f90565b8054908115611734576116a76115b36115a8846108a0565b906116b8825165ffffffffffff1690565b65ffffffffffff858116949116841061165b57611712946020946116e5610989865165ffffffffffff1690565b03611718575061161a916110c86116fb926108a0565b660100000000000065ffffffffffff825416179055565b90600190565b90506116569161172961163e6107e0565b600182860152611530565b61175192915061174561163e6107e0565b60016020830152611530565b5f90600190565b9080821015611765575090565b90509056fea2646970667358221220d08a62079d1131e45276e2c77bac54e5153d28c3ca2f82717b7a540da37abe8c64736f6c63430008190033","sourceMap":"583:4371:96:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;;;-1:-1:-1;;;;;583:4371:96;;;;;;:::o;:::-;;;;;;;;-1:-1:-1;;;;;583:4371:96;;;;;;:::o;:::-;;;;;;-1:-1:-1;;583:4371:96;;;;;;;;:::i;:::-;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;583:4371:96;;;;;-1:-1:-1;;;;;583:4371:96;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;2036:1;583:4371;1975:57;:22;583:4371;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;583:4371:96;1975:10;583:4371;;;-1:-1:-1;583:4371:96;;;;;;;;;;;;;;;;;1975:22;583:4371;;;;;;;;;;:::i;:::-;1975:57;;:::i;:::-;583:4371;1975:62;583:4371;;;;;;;;;;;;-1:-1:-1;;583:4371:96;;;;;;851:39;-1:-1:-1;;;;;583:4371:96;;;;;;;;;;;;-1:-1:-1;;583:4371:96;;;;3493:5;583:4371;;:::i;:::-;3481:10;3493:5;:::i;:::-;583:4371;;;;;;;;;;;;;;;;;;-1:-1:-1;583:4371:96;;;;;;;;-1:-1:-1;;583:4371:96;;;;:::o;:::-;;;;;;-1:-1:-1;;583:4371:96;;;;;6099:41:53;:5;:41;:::i;:::-;6554:47;:8;:47;:::i;:::-;583:4371:96;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;5590:13:53;583:4371:96;;;;5625:4:53;583:4371:96;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;583:4371:96;;;;;;;;6584:16:53;583:4371:96;;;;;;;;;-1:-1:-1;;583:4371:96;;;;;1214:77;583:4371;;:::i;:::-;;;:::i;:::-;-1:-1:-1;;;;;583:4371:96;;;-1:-1:-1;583:4371:96;;;1214:77;583:4371;;;;;;;;;;;;-1:-1:-1;583:4371:96;;;;;;;1214:77;583:4371;;;;;;;;;;;;;;:::i;:::-;;;;837:15:63;819:34;837:15;819:34;:::i;:::-;583:4371:96;;;1469:27;;;1465:83;;3164:88;583:4371;4587:179;583:4371;;;;;;;;;;;;-1:-1:-1;583:4371:96;4713:6;583:4371;;4713:18;583:4371;;-1:-1:-1;583:4371:96;;;;;;;;;;;;;;;;;4713:18;583:4371;;;4644:98;583:4371;4644:98;;583:4371;1082:76;583:4371;;;948:75;;583:4371;;;948:75;;;583:4371;948:75;;;583:4371;948:75;;;;;4644:98;;;;;:::i;:::-;583:4371;4617:139;;4587:179;:::i;:::-;583:4371;;;;:::i;:::-;3164:88;;;:::i;:::-;3163:89;3159:145;;3327:5;;;:::i;3159:145::-;583:4371;;-1:-1:-1;;;3275:18:96;;583:4371;;3275:18;1465:83;583:4371;;-1:-1:-1;;;1519:18:96;;583:4371;;1519:18;583:4371;;;;;;-1:-1:-1;;583:4371:96;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;583:4371:96;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;416:25:80;;;;477:31;416:25;;:::i;:::-;583:4371:96;;;;;;;;;;477:31:80;;583:4371:96;;;;;;;;;;;:::i;:::-;477:31:80;583:4371:96;;477:31:80;;;;;;:::i;:::-;518:79;;;583:4371:96;518:79:80;;583:4371:96;;;;;;-1:-1:-1;;583:4371:96;;;;2370:5;583:4371;;:::i;:::-;2358:10;2370:5;:::i;583:4371::-;;;;;;-1:-1:-1;;583:4371:96;;;;;;758:37;-1:-1:-1;;;;;583:4371:96;;;;;;;;;;;;;:::i;:::-;;;;837:15:63;819:34;837:15;819:34;:::i;:::-;583:4371:96;;;1469:27;;;1465:83;;2610:87;583:4371;4587:179;583:4371;;;;;;;;;;;;-1:-1:-1;583:4371:96;4713:6;583:4371;;4713:18;583:4371;;-1:-1:-1;583:4371:96;;;;;;;;;;;;;;;;;4713:18;583:4371;;;4644:98;583:4371;4644:98;;583:4371;948:75;583:4371;;;948:75;;583:4371;;;948:75;;;583:4371;948:75;;;583:4371;948:75;;;;;4644:98;;;;;:::i;2610:87::-;2609:88;2605:144;;2771:5;;;:::i;583:4371::-;;;;;;-1:-1:-1;;583:4371:96;;;;2923:5;583:4371;;:::i;:::-;2911:10;2923:5;:::i;2099:134::-;-1:-1:-1;;;;;583:4371:96;;;-1:-1:-1;583:4371:96;;;2190:10;583:4371;;;;;;;;;;;;;;;;;;;;;10303:8:61;;;:63;;2225:1:96;-1:-1:-1;10303:63:61;583:4371:96;;;;;;2190:36;2099:134;:::o;10303:63:61:-;583:4371:96;;;;;;;;;;2225:1;14249:109:61;-1:-1:-1;14249:109:61;583:4371:96;-1:-1:-1;14249:109:61;;;583:4371:96;;;10303:63:61;;583:4371:96;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;:::i;:::-;;;;;;;;;;;;;;;:::o;:::-;948:75;583:4371;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;:::o;:::-;;;;;;;;-1:-1:-1;;583:4371:96;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;583:4371:96;;;;;;:::o;:::-;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;-1:-1:-1;583:4371:96;;;;:::o;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;583:4371:96;;;;;;;;:::o;:::-;;;;;;;;;;;;;:::o;1818:604:91:-;;583:4371:96;;1946:17:91;1942:83;;583:4371:96;2049:27:91;583:4371:96;2049:27:91;583:4371:96;;2049:27:91;;;;;;:::i;:::-;2120:14;;;;;:::i;:::-;583:4371:96;;;;;;;;;;;;;;;;2148:22:91;;;2144:77;;2235:21;-1:-1:-1;2235:84:91;;;;1818:604;2231:139;;;;1425:34;;;;:::i;:::-;1818:604;:::o;2231:139::-;-1:-1:-1;;2049:27:91;2342:17;583:4371:96;-1:-1:-1;;;;;583:4371:96;1818:604:91;:::o;2235:84::-;583:4371:96;;;2269:16:91;583:4371:96;;2269:16:91;:::i;:::-;583:4371:96;;;2261:24:91;:57;;;;;2235:84;;;;;;;2261:57;2289:29;2298:8;;;2289:18;2298:8;2289:23;2298:8;;:::i;:::-;2289:18;;:::i;:::-;583:4371:96;;;;;2289:23:91;583:4371:96;;;;2289:29:91;;2261:57;;;;2144:77;-1:-1:-1;;;;2049:27:91;2193:17;;;;583:4371:96;-1:-1:-1;;;;;583:4371:96;;-1:-1:-1;1818:604:91;:::o;1942:83::-;1425:34;;;;:::i;4779:173:96:-;-1:-1:-1;;;;;583:4371:96;;;-1:-1:-1;583:4371:96;;;4876:6;583:4371;;;;;;;;;;;;;;;;;;;;;;;;;;;;4920:25;;-1:-1:-1;4920:25:96;4779:173::o;1039:368:55:-;1211:33;;;;:::i;:::-;583:4371:96;;;;;;;;;;1274:35:55;:58;;;;1039:368;1273:127;;;;;1039:368;1254:146;;;1039:368;:::o;1273:127::-;1283:26;583:4371:96;;;;;;;;2041:60:55;;583:4371:96;2041:60:55;;;;;;;;;;;;;;583:4371:96;;;;;;;;;;;:::i;2041:60:55:-;2010:101;;;;;;;:::i;:::-;2129:42;;;1273:127;2129:134;;;1273:127;;;;;;;;2129:134;583:4371:96;;;2041:60:55;583:4371:96;;;2187:29:55;;583:4371:96;;;;2041:60:55;2187:29;583:4371:96;2187:76:55;2129:134;;;;:42;583:4371:96;;2041:60:55;583:4371:96;;2152:19:55;;2129:42;;;1274:58;-1:-1:-1;;;;;583:4371:96;;;;;1313:19:55;;-1:-1:-1;1274:58:55;;;583:4371:96;;;;1283:26:55;583:4371:96;;;;;1283:26:55;583:4371:96;3991:467;;5260:30:91;4105:22:96;:15;;;583:4371;;;;;;;;4105:10;583:4371;;;;;;;4105:15;583:4371;;;;;;;;;;;;;;;;4105:22;5260:30:91;:::i;:::-;583:4371:96;;-1:-1:-1;;;;;;583:4371:96;4161:16;4157:66;;583:4371;837:15:63;819:34;837:15;819:34;:::i;:::-;583:4371:96;;;4237:35;4233:89;;8167:38:61;4332:22:96;:15;;;583:4371;;;;;;;;4105:10;583:4371;;;;;;;4332:22;819:34:63;837:15;819:34;:::i;:::-;8167:38:61;;:::i;:::-;4411:5:96;;;;;;:::i;:::-;-1:-1:-1;;;;;583:4371:96;;;;;4433:18;-1:-1:-1;;4433:18:96;3991:467::o;4233:89::-;583:4371;;-1:-1:-1;;;4295:16:96;;;;;4157:66;583:4371;;-1:-1:-1;;;4200:12:96;;;;;583:4371;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;3512:473;583:4371;;-1:-1:-1;;;3580:37:96;;;-1:-1:-1;;;;;583:4371:96;;;3580:37;;;583:4371;;;3512:473;3580:37;;583:4371;3580:37;583:4371;;;3590:12;583:4371;;3580:37;;;;;;;-1:-1:-1;3580:37:96;;;3512:473;3579:38;;3575:84;;583:4371;;3674:41;;;-1:-1:-1;;;;;583:4371:96;;3580:37;3674:41;;583:4371;3674:41;583:4371;;;3684:14;583:4371;;3674:41;;;;;;;-1:-1:-1;3674:41:96;;;3512:473;3673:42;;;3669:96;;3779:21;;;;:::i;:::-;3775:75;;3860:15;8167:38:61;3860:22:96;:15;;;;583:4371;;;;;;;;4105:10;583:4371;;;;;;;3860:22;819:34:63;837:15;819:34;:::i;:::-;8167:38:61;;:::i;:::-;3939:5:96;;;;;;:::i;:::-;583:4371;;;3961:17;-1:-1:-1;3961:17:96;;3512:473::o;3775:75::-;583:4371;;-1:-1:-1;;;3823:16:96;;3580:37;;3823:16;3669:96;583:4371;;-1:-1:-1;;;3738:16:96;;3580:37;;3738:16;3674:41;;;;;;-1:-1:-1;3674:41:96;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;;:::i;3575:84::-;583:4371;;-1:-1:-1;;;3640:8:96;;3580:37;;3640:8;3580:37;;;;;;;;;;;;;;:::i;:::-;;;;583:4371;;;;;;;:::i;:::-;-1:-1:-1;583:4371:96;;;;;;;:::o;5573:258:91:-;583:4371:96;5573:258:91;11308:22:61;5573:258:91;583:4371:96;;:::i;:::-;;;;:::i;:::-;;11308:22:61;:::i;:::-;583:4371:96;;:::i;:::-;;;;;;5805:17:91;583:4371:96;;;;;5805:17:91;;583:4371:96;;;;;;;;:::i;:::-;;;5805:17:91;5759:65;;583:4371:96;5573:258:91;:::o;3385:267:49:-;1390:66;3508:46;;1390:66;;3577:15;;;:::i;3504:142::-;583:4371:96;;;;;1390:66:49;;;;;;;;;;;;;;;3504:142;1390:66;;;;;;;;;583:4371:96;;;1390:66:49;;583:4371:96;;;1390:66:49;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;583:4371:96;1390:66:49;;;;;;;583:4371:96;1390:66:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1390:66:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;583:4371:96;;;;1390:66:49;;;;;583:4371:96;1390:66:49;;;;;;;;3385:267;1390:66;3508:46;;1390:66;;3577:15;;;:::i;3504:142::-;-1:-1:-1;583:4371:96;;6584:16:53;1390:66:49;;;;;;-1:-1:-1;;1390:66:49;;;;;;;;3504:142;1390:66;;;;;;;;;583:4371:96;;;1390:66:49;;583:4371:96;;;1390:66:49;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;6584:16:53;1390:66:49;;;;;;;-1:-1:-1;1390:66:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1390:66:49;;;;;;;;;;;;;14291:213:59;583:4371:96;14369:24:59;;;;14365:103;;583:4371:96;14291:213:59;:::o;14365:103::-;583:4371:96;;;;14416:41:59;;;;;;14447:2;14416:41;;;583:4371:96;;;;;14416:41:59;4917:176:53;3515:233:54;4917:176:53;5053:20;;:::i;:::-;3515:233:54;;;;-1:-1:-1;;;3515:233:54;;;;;;;;;;;4917:176:53;:::o;2129:766:52:-;583:4371:96;;;2129:766:52;2276:2;2256:22;;2276:2;;2739:25;2539:180;;;;;;;;;;;;;;;-1:-1:-1;2539:180:52;2739:25;;:::i;:::-;2732:32;;;;;:::o;2252:637::-;2795:83;;2811:1;2795:83;2815:35;2795:83;;:::o;583:4371:96:-;;9856:1:61;583:4371:96;;;;;;;:::o;9441:606:61:-;;583:4371:96;;9594:15:61;9559:17;9619:18;;9658:1;9652:7;;9648:234;;9441:606;9906:53;;12919:10;;;;;;-1:-1:-1;;9977:8:61;;;:63;;9559:17;9441:606;:::o;9977:63::-;9992:48;10025:7;;9992:41;10025:7;;:::i;:::-;9992:41;14249:109;;;;;;14099:265;;9992:41;583:4371:96;;;;;12912:230:61;2900:5:58;;;;;2910;;;;583:4371:96;;;;;;;;;14249:109:61;9559:17;14249:109;583:4371:96;14249:109:61;;;9559:17;14249:109;;583:4371:96;;;;;-1:-1:-1;12996:136:61;583:4371:96;;;13055:10:61;12996:136;;12912:230;;;12996:136;13110:7;;;;;;:::i;:::-;12996:136;;;9648:234;9695:14;;;;:::i;:::-;583:4371:96;;;;;;;14249:109:61;9559:17;14249:109;583:4371:96;14249:109:61;;;9559:17;14249:109;;583:4371:96;;;;;9727:48:61;9723:149;583:4371:96;;;9795:10:61;9723:149;9648:234;;;9723:149;9850:7;;;;;:::i;:::-;9723:149;;;583:4371:96;;;;;;;;-1:-1:-1;1390:66:49;;-1:-1:-1;1390:66:49;583:4371:96;;-1:-1:-1;583:4371:96;:::o;:::-;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::o;2078:405:49:-;2688:4;2652:40;;2706:11;2715:2;2706:11;;2702:69;;583:4371:96;;;;;;:::i;2702:69:49:-;583:4371:96;;-1:-1:-1;;;2740:20:49;;;;;3845:262:53;3929:4;3938:11;-1:-1:-1;;;;;583:4371:96;3921:28:53;;:63;;3845:262;3917:184;;;4007:22;4000:29;:::o;3917:184::-;583:4371:96;;4204:80:53;;;583:4371:96;2079:95:53;583:4371:96;;4226:11:53;583:4371:96;2079:95:53;;583:4371:96;4239:14:53;2079:95;;;583:4371:96;4255:13:53;2079:95;;;583:4371:96;3929:4:53;2079:95;;;583:4371:96;2079:95:53;4204:80;;;;;:::i;:::-;583:4371:96;4194:91:53;;4060:30;:::o;3921:63::-;3970:14;;3953:13;:31;3921:63;;5140:1530:52;;;6199:66;6186:79;;6182:164;;583:4371:96;;;;;;-1:-1:-1;583:4371:96;;;;;;;;;;;;;;;;;;;6457:24:52;;;;;;;;;-1:-1:-1;6457:24:52;-1:-1:-1;;;;;583:4371:96;;6495:20:52;6491:113;;6614:49;-1:-1:-1;6614:49:52;-1:-1:-1;5140:1530:52;:::o;6491:113::-;6531:62;-1:-1:-1;6531:62:52;6457:24;6531:62;-1:-1:-1;6531:62:52;:::o;6182:164::-;6281:54;;;6297:1;6281:54;6301:30;6281:54;;:::o;10552:388:61:-;583:4371:96;;10728:8:61;;;10752:20;;10690:17;10752:20;10690:17;10752:20;10690:17;10752:20;:::o;10724:210::-;583:4371:96;;;;;;;;;;;14249:109:61;10690:17;14249:109;;10690:17;14249:109;;;583:4371:96;:::i;:::-;;;;;;;14249:109:61;583:4371:96;;;;;10911:11:61;;583:4371:96;;10886:37:61;10870:1;10886:37;;;:::o;583:4371:96:-;;;;;;;:::o;:::-;;;;;;;;;;;;8587:1642:58;8658:6;;8654:45;;9401:7;10201:10;10142:26;10093;10044;9995;9946;9897;9848;583:4371:96;10189:23:58;9401:7;8663:1;583:4371:96;;;;10826:16:58;10822:99;;8587:1642;583:4371:96;;;;10938:15:58;10934:96;;8587:1642;583:4371:96;;;;11047:15:58;11043:96;;8587:1642;583:4371:96;;;;11156:15:58;11152:96;;8587:1642;583:4371:96;;;;11265:14:58;11261:93;;8587:1642;583:4371:96;;;;11371:14:58;11367:93;;8587:1642;583:4371:96;;;;11477:14:58;11473:93;;8587:1642;583:4371:96;;;11579:64:58;;8587:1642;583:4371:96;;;9858:10:58;;;;:::i;:::-;583:4371:96;;;;;9848:26:58;9907:10;;;;:::i;9897:26::-;9956:10;;;;:::i;9946:26::-;10005:10;;;;:::i;9995:26::-;10054:10;;;;:::i;10044:26::-;10103:10;;;;:::i;10093:26::-;10152:10;;;;:::i;10142:26::-;10201:10;;;:::i;:::-;10189:23;;:::i;11579:64::-;583:4371:96;;11579:64:58;;11473:93;583:4371:96;11511:11:58;;583:4371:96;;11473:93:58;;;;11367;583:4371:96;11405:11:58;;583:4371:96;;11367:93:58;;;;11261;583:4371:96;11299:11:58;;583:4371:96;;11261:93:58;;;;11152:96;583:4371:96;11191:12:58;;583:4371:96;;11152:96:58;;;;11043;583:4371:96;11082:12:58;;583:4371:96;;11043:96:58;;;;10934;583:4371:96;10973:12:58;;583:4371:96;;10934:96:58;;;;10822:99;10862:13;;;583:4371:96;10822:99:58;;;;8654:45;8680:8;8663:1;8680:8;:::o;583:4371:96:-;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;-1:-1:-1;;583:4371:96;;;;;;;;;:::o;:::-;;;;;;;;;;;;11513:870:61;583:4371:96;;;11672:7:61;;;;583:4371:96;11775:28:61;11795:7;;;:::i;:::-;11775:28;14249:109;;;;;;14099:265;;11775:28;583:4371:96;:::i;:::-;;;;;;;;;;;;;;;;;11877:15:61;-1:-1:-1;11873:91:61;;583:4371:96;;12233:11:61;583:4371:96;12027:16:61;583:4371:96;;;;;;;12027:16:61;;;;12083:7;12063:43;12083:7;;12063:28;12083:7;;:::i;12063:28::-;583:4371:96;;;;;;;12063:43:61;12233:11;583:4371:96;-1:-1:-1;;;;;583:4371:96;;;;12225:27:61;583:4371:96;12225:27:61;:::o;12023:189::-;583:4371:96;;12145:52:61;583:4371:96;12155:41:61;583:4371:96;;:::i;:::-;;;;;;;;12155:41:61;583:4371:96;12155:41:61;;;583:4371:96;12145:52:61;:::i;:::-;12023:189;;11873:91;583:4371:96;;-1:-1:-1;;;11919:30:61;;;;;11668:709;12283:52;583:4371:96;;;12293:41:61;583:4371:96;;:::i;12293:41:61:-;583:4371:96;12293:41:61;;;583:4371:96;12283:52:61;:::i;:::-;583:4371:96;12349:17:61;583:4371:96;12349:17:61;:::o;11513:870::-;583:4371:96;;;11672:7:61;;;;583:4371:96;11775:28:61;11795:7;;;:::i;583:4371:96:-;;;;;;;;;;;;;;;;;11877:15:61;-1:-1:-1;11873:91:61;;583:4371:96;;12233:11:61;583:4371:96;12027:16:61;583:4371:96;;;;;;;12027:16:61;;;;12083:7;12063:43;12083:7;;12063:28;12083:7;;:::i;12063:28::-;583:4371:96;;;;;;;;;;12225:27:61;583:4371:96;12225:27:61;:::o;12023:189::-;583:4371:96;;12145:52:61;583:4371:96;12155:41:61;583:4371:96;;:::i;12155:41:61:-;583:4371:96;12155:41:61;;;583:4371:96;12145:52:61;:::i;11668:709::-;12283:52;583:4371:96;;;12293:41:61;583:4371:96;;:::i;12293:41:61:-;583:4371:96;12293:41:61;;;583:4371:96;12145:52:61;:::i;12283:::-;11678:1;12349:17;583:4371:96;12349:17:61;:::o;2557:104:58:-;;2641:5;;;;;;:13;2557:104;:::o;2641:13::-;;;2557:104;:::o","linkReferences":{},"immutableReferences":{"51797":[{"start":4642,"length":32}],"51799":[{"start":4829,"length":32}],"51801":[{"start":4588,"length":32}],"51803":[{"start":4721,"length":32}],"51805":[{"start":4759,"length":32}],"51808":[{"start":733,"length":32}],"51811":[{"start":774,"length":32}],"71843":[{"start":1497,"length":32},{"start":3129,"length":32}],"71846":[{"start":590,"length":32},{"start":3212,"length":32}]}},"methodIdentifiers":{"WHERE_REGISTRY()":"6d0fae4a","WHO_REGISTRY()":"c4b5d62c","eip712Domain()":"84b0196e","increaseNonce(address)":"8247a97c","isOptedIn(address,address)":"220d32d4","isOptedInAt(address,address,uint48,bytes)":"530e1d43","nonces(address,address)":"9333fbda","optIn(address)":"b1138ad1","optIn(address,address,uint48,bytes)":"ced44ba7","optOut(address)":"d4610483","optOut(address,address,uint48,bytes)":"93f79bc3","staticDelegateCall(address,bytes)":"9f86fd85"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"whoRegistry\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"whereRegistry\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"AlreadyOptedIn\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CheckpointUnorderedInsertion\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ExpiredSignature\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidShortString\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidSignature\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotOptedIn\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotWhereEntity\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotWho\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OptOutCooldown\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"bits\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"SafeCastOverflowedUintDowncast\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"str\",\"type\":\"string\"}],\"name\":\"StringTooLong\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[],\"name\":\"EIP712DomainChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"who\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"where\",\"type\":\"address\"}],\"name\":\"IncreaseNonce\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"who\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"where\",\"type\":\"address\"}],\"name\":\"OptIn\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"who\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"where\",\"type\":\"address\"}],\"name\":\"OptOut\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"WHERE_REGISTRY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"WHO_REGISTRY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"eip712Domain\",\"outputs\":[{\"internalType\":\"bytes1\",\"name\":\"fields\",\"type\":\"bytes1\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"version\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"chainId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"verifyingContract\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"salt\",\"type\":\"bytes32\"},{\"internalType\":\"uint256[]\",\"name\":\"extensions\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"where\",\"type\":\"address\"}],\"name\":\"increaseNonce\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"who\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"where\",\"type\":\"address\"}],\"name\":\"isOptedIn\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"who\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"where\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hint\",\"type\":\"bytes\"}],\"name\":\"isOptedInAt\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"who\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"where\",\"type\":\"address\"}],\"name\":\"nonces\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"where\",\"type\":\"address\"}],\"name\":\"optIn\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"who\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"where\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"deadline\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"name\":\"optIn\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"who\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"where\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"deadline\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"name\":\"optOut\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"where\",\"type\":\"address\"}],\"name\":\"optOut\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"staticDelegateCall\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"CheckpointUnorderedInsertion()\":[{\"details\":\"A value was attempted to be inserted on a past checkpoint.\"}],\"SafeCastOverflowedUintDowncast(uint8,uint256)\":[{\"details\":\"Value doesn't fit in an uint of `bits` size.\"}]},\"events\":{\"EIP712DomainChanged()\":{\"details\":\"MAY be emitted to signal that the domain could have changed.\"},\"IncreaseNonce(address,address)\":{\"params\":{\"where\":\"address of the \\\"where\\\" entity\",\"who\":\"address of the \\\"who\\\"\"}},\"OptIn(address,address)\":{\"params\":{\"where\":\"address of the \\\"where\\\" entity\",\"who\":\"address of the \\\"who\\\"\"}},\"OptOut(address,address)\":{\"params\":{\"where\":\"address of the \\\"where\\\" entity\",\"who\":\"address of the \\\"who\\\"\"}}},\"kind\":\"dev\",\"methods\":{\"eip712Domain()\":{\"details\":\"See {IERC-5267}.\"},\"increaseNonce(address)\":{\"details\":\"It can be used to invalidate a given signature.\",\"params\":{\"where\":\"address of the \\\"where\\\" entity\"}},\"isOptedIn(address,address)\":{\"params\":{\"where\":\"address of the \\\"where\\\" entity\",\"who\":\"address of the \\\"who\\\"\"},\"returns\":{\"_0\":\"if the \\\"who\\\" is opted-in\"}},\"isOptedInAt(address,address,uint48,bytes)\":{\"params\":{\"hint\":\"hint for the checkpoint index\",\"timestamp\":\"time point to get if the \\\"who\\\" is opted-in at\",\"where\":\"address of the \\\"where\\\" entity\",\"who\":\"address of the \\\"who\\\"\"},\"returns\":{\"_0\":\"if the \\\"who\\\" is opted-in at the given timestamp\"}},\"optIn(address)\":{\"params\":{\"where\":\"address of the \\\"where\\\" entity\"}},\"optIn(address,address,uint48,bytes)\":{\"params\":{\"deadline\":\"time point until the signature is valid (inclusively)\",\"signature\":\"signature of the \\\"who\\\"\",\"where\":\"address of the \\\"where\\\" entity\",\"who\":\"address of the \\\"who\\\"\"}},\"optOut(address)\":{\"params\":{\"where\":\"address of the \\\"where\\\" entity\"}},\"optOut(address,address,uint48,bytes)\":{\"params\":{\"deadline\":\"time point until the signature is valid (inclusively)\",\"signature\":\"signature of the \\\"who\\\"\",\"where\":\"address of the \\\"where\\\" entity\",\"who\":\"address of the \\\"who\\\"\"}},\"staticDelegateCall(address,bytes)\":{\"details\":\"It allows to use this contract's storage on-chain.\",\"params\":{\"data\":\"data to make a delegatecall with\",\"target\":\"address of the contract to make a delegatecall to\"}}},\"stateVariables\":{\"WHERE_REGISTRY\":{\"return\":\"address of the \\\"where\\\" registry\",\"returns\":{\"_0\":\"address of the \\\"where\\\" registry\"}},\"WHO_REGISTRY\":{\"return\":\"address of the \\\"who\\\" registry\",\"returns\":{\"_0\":\"address of the \\\"who\\\" registry\"}},\"nonces\":{\"params\":{\"where\":\"address of the \\\"where\\\" entity\",\"who\":\"address of the \\\"who\\\"\"},\"return\":\"nonce\",\"returns\":{\"nonce\":\"nonce\"}}},\"version\":1},\"userdoc\":{\"events\":{\"IncreaseNonce(address,address)\":{\"notice\":\"Emitted when the nonce of a \\\"who\\\" to a \\\"where\\\" entity is increased.\"},\"OptIn(address,address)\":{\"notice\":\"Emitted when a \\\"who\\\" opts into a \\\"where\\\" entity.\"},\"OptOut(address,address)\":{\"notice\":\"Emitted when a \\\"who\\\" opts out from a \\\"where\\\" entity.\"}},\"kind\":\"user\",\"methods\":{\"WHERE_REGISTRY()\":{\"notice\":\"Get the address of the registry where to opt-in.\"},\"WHO_REGISTRY()\":{\"notice\":\"Get the \\\"who\\\" registry's address.\"},\"increaseNonce(address)\":{\"notice\":\"Increase the nonce of a given \\\"who\\\" to a particular \\\"where\\\" entity.\"},\"isOptedIn(address,address)\":{\"notice\":\"Check if a given \\\"who\\\" is opted-in to a particular \\\"where\\\" entity.\"},\"isOptedInAt(address,address,uint48,bytes)\":{\"notice\":\"Get if a given \\\"who\\\" is opted-in to a particular \\\"where\\\" entity at a given timestamp using a hint.\"},\"nonces(address,address)\":{\"notice\":\"Get the nonce of a given \\\"who\\\" to a particular \\\"where\\\" entity.\"},\"optIn(address)\":{\"notice\":\"Opt-in a calling \\\"who\\\" to a particular \\\"where\\\" entity.\"},\"optIn(address,address,uint48,bytes)\":{\"notice\":\"Opt-in a \\\"who\\\" to a particular \\\"where\\\" entity with a signature.\"},\"optOut(address)\":{\"notice\":\"Opt-out a calling \\\"who\\\" from a particular \\\"where\\\" entity.\"},\"optOut(address,address,uint48,bytes)\":{\"notice\":\"Opt-out a \\\"who\\\" from a particular \\\"where\\\" entity with a signature.\"},\"staticDelegateCall(address,bytes)\":{\"notice\":\"Make a delegatecall from this contract to a given target contract with a particular data (always reverts with a return data).\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/contracts/service/OptInService.sol\":\"OptInService\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/interfaces/IERC1271.sol\":{\"keccak256\":\"0x85a45f3f10014a0f8be41157a32b6a5f905753ea64a4b64e29fc12b7deeecf39\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c3c74009ce36136b36c77c23935b8e4a7b4f253be2da2be4fb4a916b1ce43743\",\"dweb:/ipfs/QmcH36v3iN7SJJuF73AunLR2LtNxhVJ1wm63ph4dPZ4pcL\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC5267.sol\":{\"keccak256\":\"0x92aa1df62dc3d33f1656d63bede0923e0df0b706ad4137c8b10b0a8fe549fd92\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c5c0f29195ad64cbe556da8e257dac8f05f78c53f90323c0d2accf8e6922d33a\",\"dweb:/ipfs/QmQ61TED8uaCZwcbh8KkgRSsCav7x7HbcGHwHts3U4DmUP\"]},\"lib/openzeppelin-contracts/contracts/utils/ShortStrings.sol\":{\"keccak256\":\"0x18a7171df639a934592915a520ecb97c5bbc9675a1105607aac8a94e72bf62c6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7478e1f13da69a2867ccd883001d836b75620362e743f196376d63ed0c422a1c\",\"dweb:/ipfs/QmWywcQ9TNfwtoqAxbn25d8C5VrV12PrPS9UjtGe6pL2BA\"]},\"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0x32ba59b4b7299237c8ba56319110989d7978a039faf754793064e967e5894418\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1ae50c8b562427df610cc4540c9bf104acca7ef8e2dcae567ae7e52272281e9c\",\"dweb:/ipfs/QmTHiadFCSJUPpRjNegc5SahmeU8bAoY8i9Aq6tVscbcKR\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0x55f102ea785d8399c0e58d1108e2d289506dde18abc6db1b7f68c1f9f9bc5792\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e52e0a7765c943ef14e5bcf11e46e6139fa044be564881378349236bf2e3453\",\"dweb:/ipfs/QmZEeeXoFPW47amyP35gfzomF9DixqqTEPwzBakv6cZw6i\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0xeed0a08b0b091f528356cbc7245891a4c748682d4f6a18055e8e6ca77d12a6cf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba80ba06c8e6be852847e4c5f4492cef801feb6558ae09ed705ff2e04ea8b13c\",\"dweb:/ipfs/QmXRJDv3xHLVQCVXg1ZvR35QS9sij5y9NDWYzMfUfAdTHF\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/EIP712.sol\":{\"keccak256\":\"0x999f705a027ed6dc2d4e0df2cc4a509852c6bfd11de1c8161bf88832d0503fd0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0798def67258d9a3cc20b2b4da7ebf351a5cefe0abfdd665d2d81f8e32f89b21\",\"dweb:/ipfs/QmPEvJosnPfzHNjKvCv2D3891mA2Ww8eUwkqrxBjuYdHCt\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol\":{\"keccak256\":\"0xba333517a3add42cd35fe877656fc3dfcc9de53baa4f3aabbd6d12a92e4ea435\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2ceacff44c0fdc81e48e0e0b1db87a2076d3c1fb497341de077bf1da9f6b406c\",\"dweb:/ipfs/QmRUo1muMRAewxrKQ7TkXUtknyRoR57AyEkoPpiuZQ8FzX\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/SignatureChecker.sol\":{\"keccak256\":\"0x6b11eb41a228cca35d4b662b4df69fcd75192851365102690f57b2ac01e83fe6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ab006a2983ed350d2af21ddcdd835dcae3b8340086cc4d088460da5abd041f69\",\"dweb:/ipfs/QmbEacDhkJZiGrgzLjB4pNtE8Z1uudjDw1DvcDUTVQFsLG\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875\",\"dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0xe19a4d5f31d2861e7344e8e535e2feafb913d806d3e2b5fe7782741a2a7094fe\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4aed79c0fa6f0546ed02f2f683e8f77f0fd2ed7eb34d8bbf3d373c9a6d95b13c\",\"dweb:/ipfs/QmWqVz6UAVqmnWU5pqYPt1o6iDEZyPaBraAA3rKfTTSfYj\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x5f7e4076e175393767754387c962926577f1660dd9b810187b9002407656be72\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7d533a1c97cd43a57cd9c465f7ee8dd0e39ae93a8fb8ff8e5303a356b081cdcc\",\"dweb:/ipfs/QmVBEei6aTnvYNZp2CHYVNKyZS4q1KkjANfY39WVXZXVoT\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/Checkpoints.sol\":{\"keccak256\":\"0xbdc5e074d7dd6678f67e92b1a51a20226801a407b0e1af3da367c5d1ff4519ad\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a36cca6b22fff3db16fc789ff6c60eea71d4b156065d4d0c83a0bc5e91a77a8b\",\"dweb:/ipfs/QmYN3exd5AemxjBrN8XMB1p5LbbE16uC3sjbYjwi8AjcGR\"]},\"lib/openzeppelin-contracts/contracts/utils/types/Time.sol\":{\"keccak256\":\"0xc7755af115020049e4140f224f9ee88d7e1799ffb0646f37bf0df24bf6213f58\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7f09bf94d5274334ec021f61a04659db303f31e60460e14b709c9bf187740111\",\"dweb:/ipfs/QmNvgomZYUwFAt4cZbPWAiTeSZQreGehY9BK5xyVJsUttb\"]},\"src/contracts/common/StaticDelegateCallable.sol\":{\"keccak256\":\"0x350029aa8955eacaffffaeb58babc5c98e80ebc5c5db388ed17ee6465f4a9d90\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://eb392a8ee9050e0af606897df63e3404e3829e8b688b580663892f9664195764\",\"dweb:/ipfs/QmaXC8jqV8UrrAFkzXTEv2fJF56sy33HhLxAzaRZmUxuXD\"]},\"src/contracts/libraries/Checkpoints.sol\":{\"keccak256\":\"0xba90097c8bfe0a975499428b5f8ac5569483c7d92ccc28c12d70de416aae040c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://12f5d93ca94cd06d3147db68993165a58e17903ed53682560de61f3085ad4609\",\"dweb:/ipfs/QmePiuAqvXprMLmFZkGZeGjvGPAvsEDHfCDv7BoQhXu9xE\"]},\"src/contracts/service/OptInService.sol\":{\"keccak256\":\"0x4e0932077f2686b7990e10d59deb2535334c0d09e52ef6e57c6ab09eca21c4b1\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://7c00d311032ed4a1743aca7475f3c86ce15cdfc2218108efc3731c03d34a5278\",\"dweb:/ipfs/QmUGGfVwVhaHr5kS4177yKKYiLYzi5qZpkEmvYxBZqazxf\"]},\"src/interfaces/common/IRegistry.sol\":{\"keccak256\":\"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014\",\"dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK\"]},\"src/interfaces/common/IStaticDelegateCallable.sol\":{\"keccak256\":\"0xa335d4e81b9071b7de66ef92b43ff20671d86516eb1be46fef29a3483cd3f5d5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d464b9db863c14c05547d2b23352f2e9b7b784799cf09f6bbc4906a2a74e3516\",\"dweb:/ipfs/QmUVWzFvJz7eEbDQKiFTTzwi7TEbjcs3VmwdM4kuptAKvi\"]},\"src/interfaces/service/IOptInService.sol\":{\"keccak256\":\"0x76fb5460a6d87a5705433d4fbeff7253cd75b8bbd0c888b2088f16e86ace146a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://990322019b3d11465f7024bae77ccbf7e2fe5d6fa3c754584778f37d04fa1337\",\"dweb:/ipfs/QmaSNHzcqxTkUCG9a4nqVfLECHLdjdrwAnDi3yDC7tDL24\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.25+commit.b61c2a91"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"whoRegistry","type":"address"},{"internalType":"address","name":"whereRegistry","type":"address"},{"internalType":"string","name":"name","type":"string"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"AlreadyOptedIn"},{"inputs":[],"type":"error","name":"CheckpointUnorderedInsertion"},{"inputs":[],"type":"error","name":"ExpiredSignature"},{"inputs":[],"type":"error","name":"InvalidShortString"},{"inputs":[],"type":"error","name":"InvalidSignature"},{"inputs":[],"type":"error","name":"NotOptedIn"},{"inputs":[],"type":"error","name":"NotWhereEntity"},{"inputs":[],"type":"error","name":"NotWho"},{"inputs":[],"type":"error","name":"OptOutCooldown"},{"inputs":[{"internalType":"uint8","name":"bits","type":"uint8"},{"internalType":"uint256","name":"value","type":"uint256"}],"type":"error","name":"SafeCastOverflowedUintDowncast"},{"inputs":[{"internalType":"string","name":"str","type":"string"}],"type":"error","name":"StringTooLong"},{"inputs":[],"type":"event","name":"EIP712DomainChanged","anonymous":false},{"inputs":[{"internalType":"address","name":"who","type":"address","indexed":true},{"internalType":"address","name":"where","type":"address","indexed":true}],"type":"event","name":"IncreaseNonce","anonymous":false},{"inputs":[{"internalType":"address","name":"who","type":"address","indexed":true},{"internalType":"address","name":"where","type":"address","indexed":true}],"type":"event","name":"OptIn","anonymous":false},{"inputs":[{"internalType":"address","name":"who","type":"address","indexed":true},{"internalType":"address","name":"where","type":"address","indexed":true}],"type":"event","name":"OptOut","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"WHERE_REGISTRY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"WHO_REGISTRY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"eip712Domain","outputs":[{"internalType":"bytes1","name":"fields","type":"bytes1"},{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"version","type":"string"},{"internalType":"uint256","name":"chainId","type":"uint256"},{"internalType":"address","name":"verifyingContract","type":"address"},{"internalType":"bytes32","name":"salt","type":"bytes32"},{"internalType":"uint256[]","name":"extensions","type":"uint256[]"}]},{"inputs":[{"internalType":"address","name":"where","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"increaseNonce"},{"inputs":[{"internalType":"address","name":"who","type":"address"},{"internalType":"address","name":"where","type":"address"}],"stateMutability":"view","type":"function","name":"isOptedIn","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"who","type":"address"},{"internalType":"address","name":"where","type":"address"},{"internalType":"uint48","name":"timestamp","type":"uint48"},{"internalType":"bytes","name":"hint","type":"bytes"}],"stateMutability":"view","type":"function","name":"isOptedInAt","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"who","type":"address"},{"internalType":"address","name":"where","type":"address"}],"stateMutability":"view","type":"function","name":"nonces","outputs":[{"internalType":"uint256","name":"nonce","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"where","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"optIn"},{"inputs":[{"internalType":"address","name":"who","type":"address"},{"internalType":"address","name":"where","type":"address"},{"internalType":"uint48","name":"deadline","type":"uint48"},{"internalType":"bytes","name":"signature","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"optIn"},{"inputs":[{"internalType":"address","name":"who","type":"address"},{"internalType":"address","name":"where","type":"address"},{"internalType":"uint48","name":"deadline","type":"uint48"},{"internalType":"bytes","name":"signature","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"optOut"},{"inputs":[{"internalType":"address","name":"where","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"optOut"},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"staticDelegateCall"}],"devdoc":{"kind":"dev","methods":{"eip712Domain()":{"details":"See {IERC-5267}."},"increaseNonce(address)":{"details":"It can be used to invalidate a given signature.","params":{"where":"address of the \"where\" entity"}},"isOptedIn(address,address)":{"params":{"where":"address of the \"where\" entity","who":"address of the \"who\""},"returns":{"_0":"if the \"who\" is opted-in"}},"isOptedInAt(address,address,uint48,bytes)":{"params":{"hint":"hint for the checkpoint index","timestamp":"time point to get if the \"who\" is opted-in at","where":"address of the \"where\" entity","who":"address of the \"who\""},"returns":{"_0":"if the \"who\" is opted-in at the given timestamp"}},"optIn(address)":{"params":{"where":"address of the \"where\" entity"}},"optIn(address,address,uint48,bytes)":{"params":{"deadline":"time point until the signature is valid (inclusively)","signature":"signature of the \"who\"","where":"address of the \"where\" entity","who":"address of the \"who\""}},"optOut(address)":{"params":{"where":"address of the \"where\" entity"}},"optOut(address,address,uint48,bytes)":{"params":{"deadline":"time point until the signature is valid (inclusively)","signature":"signature of the \"who\"","where":"address of the \"where\" entity","who":"address of the \"who\""}},"staticDelegateCall(address,bytes)":{"details":"It allows to use this contract's storage on-chain.","params":{"data":"data to make a delegatecall with","target":"address of the contract to make a delegatecall to"}}},"version":1},"userdoc":{"kind":"user","methods":{"WHERE_REGISTRY()":{"notice":"Get the address of the registry where to opt-in."},"WHO_REGISTRY()":{"notice":"Get the \"who\" registry's address."},"increaseNonce(address)":{"notice":"Increase the nonce of a given \"who\" to a particular \"where\" entity."},"isOptedIn(address,address)":{"notice":"Check if a given \"who\" is opted-in to a particular \"where\" entity."},"isOptedInAt(address,address,uint48,bytes)":{"notice":"Get if a given \"who\" is opted-in to a particular \"where\" entity at a given timestamp using a hint."},"nonces(address,address)":{"notice":"Get the nonce of a given \"who\" to a particular \"where\" entity."},"optIn(address)":{"notice":"Opt-in a calling \"who\" to a particular \"where\" entity."},"optIn(address,address,uint48,bytes)":{"notice":"Opt-in a \"who\" to a particular \"where\" entity with a signature."},"optOut(address)":{"notice":"Opt-out a calling \"who\" from a particular \"where\" entity."},"optOut(address,address,uint48,bytes)":{"notice":"Opt-out a \"who\" from a particular \"where\" entity with a signature."},"staticDelegateCall(address,bytes)":{"notice":"Make a delegatecall from this contract to a given target contract with a particular data (always reverts with a return data)."}},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/contracts/service/OptInService.sol":"OptInService"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts/contracts/interfaces/IERC1271.sol":{"keccak256":"0x85a45f3f10014a0f8be41157a32b6a5f905753ea64a4b64e29fc12b7deeecf39","urls":["bzz-raw://c3c74009ce36136b36c77c23935b8e4a7b4f253be2da2be4fb4a916b1ce43743","dweb:/ipfs/QmcH36v3iN7SJJuF73AunLR2LtNxhVJ1wm63ph4dPZ4pcL"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC5267.sol":{"keccak256":"0x92aa1df62dc3d33f1656d63bede0923e0df0b706ad4137c8b10b0a8fe549fd92","urls":["bzz-raw://c5c0f29195ad64cbe556da8e257dac8f05f78c53f90323c0d2accf8e6922d33a","dweb:/ipfs/QmQ61TED8uaCZwcbh8KkgRSsCav7x7HbcGHwHts3U4DmUP"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/ShortStrings.sol":{"keccak256":"0x18a7171df639a934592915a520ecb97c5bbc9675a1105607aac8a94e72bf62c6","urls":["bzz-raw://7478e1f13da69a2867ccd883001d836b75620362e743f196376d63ed0c422a1c","dweb:/ipfs/QmWywcQ9TNfwtoqAxbn25d8C5VrV12PrPS9UjtGe6pL2BA"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol":{"keccak256":"0x32ba59b4b7299237c8ba56319110989d7978a039faf754793064e967e5894418","urls":["bzz-raw://1ae50c8b562427df610cc4540c9bf104acca7ef8e2dcae567ae7e52272281e9c","dweb:/ipfs/QmTHiadFCSJUPpRjNegc5SahmeU8bAoY8i9Aq6tVscbcKR"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0x55f102ea785d8399c0e58d1108e2d289506dde18abc6db1b7f68c1f9f9bc5792","urls":["bzz-raw://6e52e0a7765c943ef14e5bcf11e46e6139fa044be564881378349236bf2e3453","dweb:/ipfs/QmZEeeXoFPW47amyP35gfzomF9DixqqTEPwzBakv6cZw6i"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol":{"keccak256":"0xeed0a08b0b091f528356cbc7245891a4c748682d4f6a18055e8e6ca77d12a6cf","urls":["bzz-raw://ba80ba06c8e6be852847e4c5f4492cef801feb6558ae09ed705ff2e04ea8b13c","dweb:/ipfs/QmXRJDv3xHLVQCVXg1ZvR35QS9sij5y9NDWYzMfUfAdTHF"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/EIP712.sol":{"keccak256":"0x999f705a027ed6dc2d4e0df2cc4a509852c6bfd11de1c8161bf88832d0503fd0","urls":["bzz-raw://0798def67258d9a3cc20b2b4da7ebf351a5cefe0abfdd665d2d81f8e32f89b21","dweb:/ipfs/QmPEvJosnPfzHNjKvCv2D3891mA2Ww8eUwkqrxBjuYdHCt"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol":{"keccak256":"0xba333517a3add42cd35fe877656fc3dfcc9de53baa4f3aabbd6d12a92e4ea435","urls":["bzz-raw://2ceacff44c0fdc81e48e0e0b1db87a2076d3c1fb497341de077bf1da9f6b406c","dweb:/ipfs/QmRUo1muMRAewxrKQ7TkXUtknyRoR57AyEkoPpiuZQ8FzX"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/SignatureChecker.sol":{"keccak256":"0x6b11eb41a228cca35d4b662b4df69fcd75192851365102690f57b2ac01e83fe6","urls":["bzz-raw://ab006a2983ed350d2af21ddcdd835dcae3b8340086cc4d088460da5abd041f69","dweb:/ipfs/QmbEacDhkJZiGrgzLjB4pNtE8Z1uudjDw1DvcDUTVQFsLG"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d","urls":["bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875","dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol":{"keccak256":"0xe19a4d5f31d2861e7344e8e535e2feafb913d806d3e2b5fe7782741a2a7094fe","urls":["bzz-raw://4aed79c0fa6f0546ed02f2f683e8f77f0fd2ed7eb34d8bbf3d373c9a6d95b13c","dweb:/ipfs/QmWqVz6UAVqmnWU5pqYPt1o6iDEZyPaBraAA3rKfTTSfYj"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0x5f7e4076e175393767754387c962926577f1660dd9b810187b9002407656be72","urls":["bzz-raw://7d533a1c97cd43a57cd9c465f7ee8dd0e39ae93a8fb8ff8e5303a356b081cdcc","dweb:/ipfs/QmVBEei6aTnvYNZp2CHYVNKyZS4q1KkjANfY39WVXZXVoT"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/Checkpoints.sol":{"keccak256":"0xbdc5e074d7dd6678f67e92b1a51a20226801a407b0e1af3da367c5d1ff4519ad","urls":["bzz-raw://a36cca6b22fff3db16fc789ff6c60eea71d4b156065d4d0c83a0bc5e91a77a8b","dweb:/ipfs/QmYN3exd5AemxjBrN8XMB1p5LbbE16uC3sjbYjwi8AjcGR"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/types/Time.sol":{"keccak256":"0xc7755af115020049e4140f224f9ee88d7e1799ffb0646f37bf0df24bf6213f58","urls":["bzz-raw://7f09bf94d5274334ec021f61a04659db303f31e60460e14b709c9bf187740111","dweb:/ipfs/QmNvgomZYUwFAt4cZbPWAiTeSZQreGehY9BK5xyVJsUttb"],"license":"MIT"},"src/contracts/common/StaticDelegateCallable.sol":{"keccak256":"0x350029aa8955eacaffffaeb58babc5c98e80ebc5c5db388ed17ee6465f4a9d90","urls":["bzz-raw://eb392a8ee9050e0af606897df63e3404e3829e8b688b580663892f9664195764","dweb:/ipfs/QmaXC8jqV8UrrAFkzXTEv2fJF56sy33HhLxAzaRZmUxuXD"],"license":"BUSL-1.1"},"src/contracts/libraries/Checkpoints.sol":{"keccak256":"0xba90097c8bfe0a975499428b5f8ac5569483c7d92ccc28c12d70de416aae040c","urls":["bzz-raw://12f5d93ca94cd06d3147db68993165a58e17903ed53682560de61f3085ad4609","dweb:/ipfs/QmePiuAqvXprMLmFZkGZeGjvGPAvsEDHfCDv7BoQhXu9xE"],"license":"MIT"},"src/contracts/service/OptInService.sol":{"keccak256":"0x4e0932077f2686b7990e10d59deb2535334c0d09e52ef6e57c6ab09eca21c4b1","urls":["bzz-raw://7c00d311032ed4a1743aca7475f3c86ce15cdfc2218108efc3731c03d34a5278","dweb:/ipfs/QmUGGfVwVhaHr5kS4177yKKYiLYzi5qZpkEmvYxBZqazxf"],"license":"BUSL-1.1"},"src/interfaces/common/IRegistry.sol":{"keccak256":"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb","urls":["bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014","dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK"],"license":"MIT"},"src/interfaces/common/IStaticDelegateCallable.sol":{"keccak256":"0xa335d4e81b9071b7de66ef92b43ff20671d86516eb1be46fef29a3483cd3f5d5","urls":["bzz-raw://d464b9db863c14c05547d2b23352f2e9b7b784799cf09f6bbc4906a2a74e3516","dweb:/ipfs/QmUVWzFvJz7eEbDQKiFTTzwi7TEbjcs3VmwdM4kuptAKvi"],"license":"MIT"},"src/interfaces/service/IOptInService.sol":{"keccak256":"0x76fb5460a6d87a5705433d4fbeff7253cd75b8bbd0c888b2088f16e86ace146a","urls":["bzz-raw://990322019b3d11465f7024bae77ccbf7e2fe5d6fa3c754584778f37d04fa1337","dweb:/ipfs/QmaSNHzcqxTkUCG9a4nqVfLECHLdjdrwAnDi3yDC7tDL24"],"license":"MIT"}},"version":1},"id":96} \ No newline at end of file diff --git a/out/OptInServiceHints.sol/OptInServiceHints.json b/out/OptInServiceHints.sol/OptInServiceHints.json index 57794bb8..b0efe3e5 100644 --- a/out/OptInServiceHints.sol/OptInServiceHints.json +++ b/out/OptInServiceHints.sol/OptInServiceHints.json @@ -1 +1 @@ -{"abi":[{"type":"constructor","inputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"WHERE_REGISTRY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"WHO_REGISTRY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"eip712Domain","inputs":[],"outputs":[{"name":"fields","type":"bytes1","internalType":"bytes1"},{"name":"name","type":"string","internalType":"string"},{"name":"version","type":"string","internalType":"string"},{"name":"chainId","type":"uint256","internalType":"uint256"},{"name":"verifyingContract","type":"address","internalType":"address"},{"name":"salt","type":"bytes32","internalType":"bytes32"},{"name":"extensions","type":"uint256[]","internalType":"uint256[]"}],"stateMutability":"view"},{"type":"function","name":"increaseNonce","inputs":[{"name":"where","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"isOptedIn","inputs":[{"name":"who","type":"address","internalType":"address"},{"name":"where","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isOptedInAt","inputs":[{"name":"who","type":"address","internalType":"address"},{"name":"where","type":"address","internalType":"address"},{"name":"timestamp","type":"uint48","internalType":"uint48"},{"name":"hint","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"nonces","inputs":[{"name":"who","type":"address","internalType":"address"},{"name":"where","type":"address","internalType":"address"}],"outputs":[{"name":"nonce","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"optIn","inputs":[{"name":"where","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"optIn","inputs":[{"name":"who","type":"address","internalType":"address"},{"name":"where","type":"address","internalType":"address"},{"name":"deadline","type":"uint48","internalType":"uint48"},{"name":"signature","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"optInHint","inputs":[{"name":"optInService","type":"address","internalType":"address"},{"name":"who","type":"address","internalType":"address"},{"name":"where","type":"address","internalType":"address"},{"name":"timestamp","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"optInHintInternal","inputs":[{"name":"who","type":"address","internalType":"address"},{"name":"where","type":"address","internalType":"address"},{"name":"timestamp","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"exists","type":"bool","internalType":"bool"},{"name":"hint","type":"uint32","internalType":"uint32"}],"stateMutability":"view"},{"type":"function","name":"optOut","inputs":[{"name":"who","type":"address","internalType":"address"},{"name":"where","type":"address","internalType":"address"},{"name":"deadline","type":"uint48","internalType":"uint48"},{"name":"signature","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"optOut","inputs":[{"name":"where","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"staticDelegateCall","inputs":[{"name":"target","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"EIP712DomainChanged","inputs":[],"anonymous":false},{"type":"event","name":"IncreaseNonce","inputs":[{"name":"who","type":"address","indexed":true,"internalType":"address"},{"name":"where","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"OptIn","inputs":[{"name":"who","type":"address","indexed":true,"internalType":"address"},{"name":"where","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"OptOut","inputs":[{"name":"who","type":"address","indexed":true,"internalType":"address"},{"name":"where","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"error","name":"AlreadyOptedIn","inputs":[]},{"type":"error","name":"CheckpointUnorderedInsertion","inputs":[]},{"type":"error","name":"ExpiredSignature","inputs":[]},{"type":"error","name":"ExternalCall","inputs":[]},{"type":"error","name":"InvalidShortString","inputs":[]},{"type":"error","name":"InvalidSignature","inputs":[]},{"type":"error","name":"NotOptedIn","inputs":[]},{"type":"error","name":"NotWhereEntity","inputs":[]},{"type":"error","name":"NotWho","inputs":[]},{"type":"error","name":"OptOutCooldown","inputs":[]},{"type":"error","name":"SafeCastOverflowedUintDowncast","inputs":[{"name":"bits","type":"uint8","internalType":"uint8"},{"name":"value","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"StringTooLong","inputs":[{"name":"str","type":"string","internalType":"string"}]}],"bytecode":{"object":"0x6101c034610171576001600160401b03602082018181118382101761015d576040908082525f84528151938285018581108582111761015d5783526001855260208501603160f81b81523060805261005682610175565b926101409384526100668761030c565b926101609384525190209061010096828852519020610120948186524660c05280519160208301937f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f85528284015260608301524660808301523060a083015260a0825260c08201968288109088111761015d5786905251902060a0523060e052610180915f83526101a0935f8552611b9d9687610443883960805187610571015260a05187611770015260c0518761182b015260e0518761173a015251866117bf015251856117e5015251846102fd015251836103260152518281816106c1015261104e01525181818161026e01526110a10152f35b634e487b7160e01b5f52604160045260245ffd5b5f80fd5b8051602090818110156101eb5750601f8251116101ad578082519201519080831061019f57501790565b825f19910360031b1b161790565b60448260405192839163305a27a960e01b83528160048401528051918291826024860152018484015e5f828201840152601f01601f19168101030190fd5b906001600160401b03821161015d575f54926001938481811c91168015610302575b838210146102ee57601f81116102bb575b5081601f841160011461025957509282939183925f9461024e575b50501b915f199060031b1c1916175f5560ff90565b015192505f80610239565b919083601f1981165f8052845f20945f905b888383106102a15750505010610289575b505050811b015f5560ff90565b01515f1960f88460031b161c191690555f808061027c565b85870151885590960195948501948793509081019061026b565b5f805284601f845f20920160051c820191601f860160051c015b8281106102e357505061021e565b5f81550185906102d5565b634e487b7160e01b5f52602260045260245ffd5b90607f169061020d565b8051602090818110156103365750601f8251116101ad578082519201519080831061019f57501790565b9192916001600160401b03811161015d5760019182548381811c91168015610438575b828210146102ee57601f8111610405575b5080601f83116001146103a55750819293945f9261039a575b50505f19600383901b1c191690821b17905560ff90565b015190505f80610383565b90601f19831695845f52825f20925f905b8882106103ee57505083859697106103d6575b505050811b01905560ff90565b01515f1960f88460031b161c191690555f80806103c9565b8087859682949686015181550195019301906103b6565b835f5283601f835f20920160051c820191601f850160051c015b82811061042d57505061036a565b5f815501849061041f565b90607f169061035956fe60806040526004361015610011575f80fd5b5f3560e01c8063220d32d4146100f4578063530e1d43146100ef5780636d0fae4a146100ea5780638247a97c146100e557806384b0196e146100e05780639333fbda146100db57806393f79bc3146100d65780639a15d7a5146100d15780639f86fd85146100cc578063b1138ad1146100c7578063c4b5d62c146100c2578063ced44ba7146100bd578063d4610483146100b85763d4a63862146100b3575f80fd5b6107d6565b6107b4565b6106f0565b6106ac565b61068a565b6105f9565b610531565b610432565b6103db565b6102e5565b61029d565b610259565b6101f3565b610129565b600435906001600160a01b038216820361010f57565b5f80fd5b602435906001600160a01b038216820361010f57565b3461010f57604036600319011261010f5760206101556101476100f9565b61014f610113565b9061083f565b6040519015158152f35b9181601f8401121561010f5782359167ffffffffffffffff831161010f576020838186019501011161010f57565b90608060031983011261010f576001600160a01b0391600435838116810361010f5792602435908116810361010f579160443565ffffffffffff8116810361010f57916064359067ffffffffffffffff821161010f576101ef9160040161015f565b9091565b3461010f576020600161024961024f61023a61020e3661018d565b969290949193888060a01b03165f526003895260405f209060018060a01b03165f5260205260405f2090565b92868060d01b03953691610978565b91610bd6565b1614604051908152f35b3461010f575f36600319011261010f576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461010f57602036600319011261010f576102bf6102b96100f9565b33610ccf565b005b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b3461010f575f36600319011261010f5761037e6103217f000000000000000000000000000000000000000000000000000000000000000061123f565b61034a7f000000000000000000000000000000000000000000000000000000000000000061133d565b60405190610357826108d7565b5f825261038c602091604051958695600f60f81b875260e0602088015260e08701906102c1565b9085820360408701526102c1565b4660608501523060808501525f60a085015283810360c0850152602080845192838152019301915f5b8281106103c457505050500390f35b8351855286955093810193928101926001016103b5565b3461010f57604036600319011261010f5760206104296103f96100f9565b610401610113565b6001600160a01b039182165f9081526002855260408082209290931681526020919091522090565b54604051908152f35b3461010f576104403661018d565b909165ffffffffffff8061045342611406565b16911690811061051f576104ff926104f06104f89260018060a01b0380891691825f5260026020526104988960405f209060018060a01b03165f5260205260405f2090565b546040519260208401947f7830334d17a05ab8aeca8f1778e27182208fc2d454ac7b38a4edc2069ee3a4a6865260408501528a166060840152608083015260a082015260a081526104e8816108f3565b519020611438565b923691610978565b9084610d25565b1561050d576102bf91610e01565b604051638baa579f60e01b8152600490fd5b60405163df4cc36d60e01b8152600490fd5b3461010f57606036600319011261010f5761054a6100f9565b610552610113565b906044359065ffffffffffff8216820361010f576001600160a01b03927f0000000000000000000000000000000000000000000000000000000000000000841633036105e7576105c6936105c192165f52600360205260405f209060018060a01b03165f5260205260405f2090565b610f2c565b60408051941515855263ffffffff91909116602085015292915050f35b0390f35b604051637ca475e560e11b8152600490fd5b3461010f57604036600319011261010f576106126100f9565b60243567ffffffffffffffff811161010f575f916106358392369060040161015f565b90816040519283928337810184815203915af46106826106536109ae565b916106746040519384921515602084015260408084015260608301906102c1565b03601f19810183528261092b565b805190602001fd5b3461010f57602036600319011261010f576102bf6106a66100f9565b33611022565b3461010f575f36600319011261010f576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461010f576106fe3661018d565b909165ffffffffffff8061071142611406565b16911690811061051f576107a6926104f06104f89260018060a01b0380891691825f5260026020526107568960405f209060018060a01b03165f5260205260405f2090565b546040519260208401947f6ab5200f1123a8d51d1695a9e5e757267926b53c6359f90b8873cc7dcc30ea2c865260408501528a166060840152608083015260a082015260a081526104e8816108f3565b1561050d576102bf91611022565b3461010f57602036600319011261010f576102bf6107d06100f9565b33610e01565b3461010f57608036600319011261010f576107ef6100f9565b6107f7610113565b906044356001600160a01b038116810361010f576064359065ffffffffffff8216820361010f576105e39361082b93610a1f565b6040519182916020835260208301906102c1565b6001600160a01b039081165f908152600360209081526040808320939094168252919091522080548061087d57505060015f5b818060d01b03161490565b5f1990808281011161089d576001925f5260205f2001015460301c610872565b610b9f565b634e487b7160e01b5f52604160045260245ffd5b6040810190811067ffffffffffffffff8211176108d257604052565b6108a2565b6020810190811067ffffffffffffffff8211176108d257604052565b60c0810190811067ffffffffffffffff8211176108d257604052565b60a0810190811067ffffffffffffffff8211176108d257604052565b90601f8019910116810190811067ffffffffffffffff8211176108d257604052565b6040519061095a826108b6565b565b67ffffffffffffffff81116108d257601f01601f191660200190565b9291926109848261095c565b91610992604051938461092b565b82948184528183011161010f578281602093845f960137010152565b3d156109d8573d906109bf8261095c565b916109cd604051938461092b565b82523d5f602084013e565b606090565b5190811515820361010f57565b519063ffffffff8216820361010f57565b919082604091031261010f57610a1c6020610a15846109dd565b93016109ea565b90565b9392915f8060609665ffffffffffff604096875196602096639a15d7a560e01b888a015260018060a01b0380921660248a015216604488015216606486015260648552610a6b8561090f565b85519485610a9686820192639f86fd8560e01b845230602484015289604484015260648301906102c1565b0395610aaa601f199788810183528261092b565b51915afa50610ab76109ae565b8051810190848184840193031261010f57610ad38382016109dd565b90858101519067ffffffffffffffff821161010f57019082603f8301121561010f5783820151610b028161095c565b92610b0f8851948561092b565b8184528584019488838301011161010f57815f9289889301875e8401015215610b7d57908282610b4293510101906109fb565b9390610b4e5750505050565b610a1c93949550610b719051948592830191909163ffffffff6020820193169052565b0390810183528261092b565b8091505191821561010f5701fd5b9081602091031261010f57610a1c906109ea565b634e487b7160e01b5f52601160045260245ffd5b5f1981019190821161089d57565b90600163ffffffff8093160191821161089d57565b91805115610cc55780602080610bf193518301019101610b8b565b91610bfc83826111eb565b92610c0d845165ffffffffffff1690565b9065ffffffffffff8085169216828114610cac5782119182610c4c575b5050610c3a57610a1c9250611656565b5050602001516001600160d01b031690565b909150610c598354610bb3565b63ffffffff831614918215610c72575b50505f80610c2a565b610ca4919250610c8d610c87610c9992610bc1565b856111eb565b5165ffffffffffff1690565b65ffffffffffff1690565b115f80610c69565b50505050602091909101516001600160d01b0316905090565b50610a1c91611656565b6001600160a01b039081165f8181526002602090815260408083209590941680835294905291822080546001019055907f8ed32926585579e6191b145240df788165f4957e1135f30a00e08ee8feb9d6809080a3565b610d2f838361145e565b506004819592951015610ded57159384610dd7575b508315610d52575b50505090565b5f929350908291604051610d8a816106746020820194630b135d3f60e11b998a875260248401526040604484015260648301906102c1565b51915afa90610d976109ae565b82610dc9575b82610dad575b50505f8080610d4c565b90915060208180518101031261010f5760200151145f80610da3565b915060208251101591610d9d565b6001600160a01b0383811691161493505f610d44565b634e487b7160e01b5f52602160045260245ffd5b90610e3d610e3882610e238560018060a01b03165f52600360205260405f2090565b9060018060a01b03165f5260205260405f2090565b6118d3565b9091506001600160d01b031615610ee85765ffffffffffff80610e5f42611406565b16911614610ed657610e97610e8882610e238560018060a01b03165f52600360205260405f2090565b610e9142611406565b90611994565b5050610ea38183610ccf565b6001600160a01b0390811691167f1629cd9ad365627cf8408d19c50224af8f3213c1a18ae48062d92e22bddf7de55f80a3565b60405163291bf4b760e21b8152600490fd5b6040516334b09b3960e11b8152600490fd5b906001820180921161089d57565b90604051610f15816108b6565b915465ffffffffffff8116835260301c6020830152565b908154905f829160058411610fb5575b610f479350846115f4565b908115610fa957610f6890610f5b83610bb3565b905f5260205f2001610f08565b91610fa2610f99610f936020610f84875165ffffffffffff1690565b9601516001600160d01b031690565b93610bb3565b63ffffffff1690565b6001939291565b50505f905f905f905f90565b9192610fc0816114b6565b810390811161089d57610f4793855f5265ffffffffffff808360205f20015416908516105f14610ff1575091610f3c565b929150610ffd90610efa565b90610f3c565b9081602091031261010f57610a1c906109dd565b6040513d5f823e3d90fd5b6040516302910f8b60e31b8082526001600160a01b0383811660048401529293916020919082816024817f000000000000000000000000000000000000000000000000000000000000000089165afa90811561119f575f916111b6575b50156111a4576040519081526001600160a01b038316600482015281816024817f000000000000000000000000000000000000000000000000000000000000000088165afa91821561119f575f92611172575b505015611160576110e3818461083f565b61114e578061111961110a8493610e238760018060a01b03165f52600360205260405f2090565b61111342611406565b90611a9e565b50506111258185610ccf565b1691167f9b730d5b907ee509de729817a2bb37e404418ba569b3a50f36192372f973cb415f80a3565b60405163dcdeaba360e01b8152600490fd5b6040516321f5408d60e01b8152600490fd5b6111919250803d10611198575b611189818361092b565b810190611003565b5f806110d2565b503d61117f565b611017565b604051630fb9ff9560e41b8152600490fd5b6111cd9150833d851161119857611189818361092b565b5f61107f565b604051906111e0826108b6565b5f6020838281520152565b6112109161120a916111fb6111d3565b506112046111d3565b506116e2565b50610f08565b65ffffffffffff81511690602060018060d01b039101511660405191611235836108b6565b8252602082015290565b60ff811461125057610a1c9061170b565b506040515f80546001918160011c9260018316908115611333575b60209060208610831461131f578587528694602086019390811561130057506001146112a1575b505050610a1c9250038261092b565b9250936112ce5f80527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e56390565b945f935b8285106112ea57505050610a1c9350015f8080611292565b86548585015295860195879550938101936112d2565b92505050610a1c9491925060ff19168252151560051b015f8080611292565b634e487b7160e01b5f52602260045260245ffd5b93607f169361126b565b60ff811461134e57610a1c9061170b565b506040516001805480821c915f908281169081156113fc575b60209060208610831461131f5785875286946020860193908115611300575060011461139c57505050610a1c9250038261092b565b9250936113ca60015f527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf690565b945f935b8285106113e657505050610a1c9350015f8080611292565b86548585015295860195879550938101936113ce565b93607f1693611367565b65ffffffffffff90818111611419571690565b604490604051906306dfcc6560e41b8252603060048301526024820152fd5b604290611443611737565b906040519161190160f01b8352600283015260228201522090565b815191906041830361148e576114879250602082015190606060408401519301515f1a90611851565b9192909190565b50505f9160029190565b81156114a2570490565b634e487b7160e01b5f52601260045260245ffd5b80156115ef578061158861158161157761156d61156361155961154f6115456001610a1c9a5f908b60801c806115e3575b508060401c806115d6575b508060201c806115c9575b508060101c806115bc575b508060081c806115af575b508060041c806115a2575b508060021c80611595575b50821c61158e575b811c1b61153e818b611498565b0160011c90565b61153e818a611498565b61153e8189611498565b61153e8188611498565b61153e8187611498565b61153e8186611498565b61153e8185611498565b8092611498565b90611922565b8101611531565b600291509101905f611529565b600491509101905f61151e565b600891509101905f611513565b601091509101905f611508565b602091509101905f6114fd565b604091509101905f6114f2565b9150506080905f6114e7565b505f90565b91905b8382106116045750505090565b909192808316906001818518811c830180931161089d57855f5265ffffffffffff808460205f20015416908516105f14611643575050925b91906115f7565b90949350810180911161089d579161163c565b908154905f829160058411611694575b6116719350846115f4565b8061167c5750505f90565b61168590610bb3565b905f5260205f20015460301c90565b919261169f816114b6565b810390811161089d5761167193855f5265ffffffffffff808360205f20015416908516105f146116d0575091611666565b9291506116dc90610efa565b90611666565b80548210156116f7575f5260205f2001905f90565b634e487b7160e01b5f52603260045260245ffd5b60ff811690601f82116117255760405191611235836108b6565b604051632cd44ac360e21b8152600490fd5b307f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03161480611828575b15611792577f000000000000000000000000000000000000000000000000000000000000000090565b60405160208101907f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f82527f000000000000000000000000000000000000000000000000000000000000000060408201527f000000000000000000000000000000000000000000000000000000000000000060608201524660808201523060a082015260a08152611822816108f3565b51902090565b507f00000000000000000000000000000000000000000000000000000000000000004614611769565b91907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a084116118c8579160209360809260ff5f9560405194855216868401526040830152606082015282805260015afa1561119f575f516001600160a01b038116156118be57905f905f90565b505f906001905f90565b5050505f9160039190565b8054806118e45750505f905f905f90565b5f1990808281011161089d57611901925f5260205f200101610f08565b9065ffffffffffff82511691602060018060d01b0391015116906001929190565b908082101561192f575090565b905090565b8054680100000000000000008110156108d257611956916001820181556116e2565b91909161198157805160209091015160301b65ffffffffffff191665ffffffffffff91909116179055565b634e487b7160e01b5f525f60045260245ffd5b8054908115611a7c576119bc6119b76119ac84610bb3565b835f5260205f200190565b610f08565b906119cd825165ffffffffffff1690565b65ffffffffffff8581169491168410611a6a57611a37946020946119fa610c99865165ffffffffffff1690565b03611a3c5750611a2991611a10611a1b92610bb3565b905f5260205f200190565b65ffffffffffff8154169055565b01516001600160d01b031690565b905f90565b9050611a6591611a5b611a4d61094d565b65ffffffffffff9093168352565b5f85830152611934565b611a29565b604051632520601d60e01b8152600490fd5b611a98929150611a8d611a4d61094d565b5f6020830152611934565b5f905f90565b8054908115611b4357611ab66119b76119ac84610bb3565b90611ac7825165ffffffffffff1690565b65ffffffffffff8581169491168410611a6a57611b2194602094611af4610c99865165ffffffffffff1690565b03611b275750611a2991611a10611b0a92610bb3565b660100000000000065ffffffffffff825416179055565b90600190565b9050611a6591611b38611a4d61094d565b600182860152611934565b611b60929150611b54611a4d61094d565b60016020830152611934565b5f9060019056fea2646970667358221220a2601598b530c384dfaa52fda9ec24334fb67ce73c9d54796027ec5092285f3464736f6c63430008190033","sourceMap":"215:929:83:-:0;;;;-1:-1:-1;;;;;215:929:83;;;;;;;;;;;;;;;;;-1:-1:-1;215:929:83;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;215:929:83;;348:4:82;332:21;;3401:45:52;;;:::i;:::-;3393:53;;;;;3467:51;;;:::i;:::-;3456:62;;;;;215:929:83;3542:22:52;;3528:36;;;;;;215:929:83;3591:25:52;;3574:42;;;;;3644:13;3627:30;;215:929:83;;4204:80:52;215:929:83;4204:80:52;;2079:95;;;;;;;;;;;;3644:13;332:21:82;2079:95:52;;;348:4:82;2079:95:52;;;;;4204:80;;3627:30;215:929:83;;;;;;;;;;;;;;;;4194:91:52;;2079:95;3667:48;348:4:82;3725:27:52;;1675:26:91;;-1:-1:-1;1675:26:91;;1711:30;;-1:-1:-1;1711:30:91;;215:929:83;;;;;;332:21:82;215:929:83;;;;;2079:95:52;215:929:83;;;;;3627:30:52;215:929:83;;;;;3725:27:52;215:929:83;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;215:929:83;;;;;-1:-1:-1;215:929:83;;;;;2914:340:48;215:929:83;;3059:2:48;;3037:24;;;3059:2;;;215:929:83;1854:2:48;215:929:83;;1840:16:48;1836:72;;215:929:83;;;;;2079:95:52;215:929:83;;;;;;1949:36:48;;3077:27;:::o;215:929:83:-;;;;;;;;;;1949:36:48;3077:27;:::o;1836:72::-;215:929:83;;;;1879:18:48;;;;;;;;;;;;215:929:83;;;;;;;;;;;;;;;;355:1;215:929;;;;;;1854:2:48;215:929:83;-1:-1:-1;;215:929:83;;;1879:18:48;;;;3033:215;215:929:83;-1:-1:-1;;;;;215:929:83;;;;355:1;215:929;;;;;;;;;;;;;;3033:215:48;215:929:83;;;;;;;;;;;3033:215:48;215:929:83;;;;;;;;;;;;;;;;355:1;215:929;;;;;;;;;;;;;;;;;355:1;215:929;1390:66:48;3195:42;:::o;215:929:83:-;;;;-1:-1:-1;215:929:83;;;;;;;;;;;;355:1;215:929;;;355:1;215:929;;355:1;215:929;;;;;;;;;;;;;;;;;;;;;355:1;215:929;1390:66:48;3195:42;:::o;215:929:83:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;215:929:83;;;;;;;355:1;215:929;;;;;355:1;215:929;;;;;;;;;;;;;;;;;;;;;;;;;355:1;215:929;;;;;;;;;;;355:1;215:929;;;;;355:1;215:929;;;;;;;;2914:340:48;215:929:83;;3059:2:48;;3037:24;;;3059:2;;;215:929:83;1854:2:48;215:929:83;;1840:16:48;1836:72;;215:929:83;;;;;2079:95:52;215:929:83;;;;;;1949:36:48;;3077:27;:::o;3033:215::-;215:929:83;;;-1:-1:-1;;;;;215:929:83;;;;;;;;;;;;;;;;;;3033:215:48;215:929:83;;;;;;;;;;;3033:215:48;215:929:83;;;;;;;;;;;;;;-1:-1:-1;215:929:83;;;;-1:-1:-1;;;;215:929:83;;;;;;;;;;;;;1390:66:48;;3195:42::o;215:929:83:-;;;;-1:-1:-1;215:929:83;;;;;;;;;;;;-1:-1:-1;215:929:83;;-1:-1:-1;215:929:83;;-1:-1:-1;215:929:83;;;;;;;;;;;;;;;;;;;;;;;;;1390:66:48;3195:42;:::o;215:929:83:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;215:929:83;;;;-1:-1:-1;215:929:83;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;215:929:83;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361015610011575f80fd5b5f3560e01c8063220d32d4146100f4578063530e1d43146100ef5780636d0fae4a146100ea5780638247a97c146100e557806384b0196e146100e05780639333fbda146100db57806393f79bc3146100d65780639a15d7a5146100d15780639f86fd85146100cc578063b1138ad1146100c7578063c4b5d62c146100c2578063ced44ba7146100bd578063d4610483146100b85763d4a63862146100b3575f80fd5b6107d6565b6107b4565b6106f0565b6106ac565b61068a565b6105f9565b610531565b610432565b6103db565b6102e5565b61029d565b610259565b6101f3565b610129565b600435906001600160a01b038216820361010f57565b5f80fd5b602435906001600160a01b038216820361010f57565b3461010f57604036600319011261010f5760206101556101476100f9565b61014f610113565b9061083f565b6040519015158152f35b9181601f8401121561010f5782359167ffffffffffffffff831161010f576020838186019501011161010f57565b90608060031983011261010f576001600160a01b0391600435838116810361010f5792602435908116810361010f579160443565ffffffffffff8116810361010f57916064359067ffffffffffffffff821161010f576101ef9160040161015f565b9091565b3461010f576020600161024961024f61023a61020e3661018d565b969290949193888060a01b03165f526003895260405f209060018060a01b03165f5260205260405f2090565b92868060d01b03953691610978565b91610bd6565b1614604051908152f35b3461010f575f36600319011261010f576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461010f57602036600319011261010f576102bf6102b96100f9565b33610ccf565b005b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b3461010f575f36600319011261010f5761037e6103217f000000000000000000000000000000000000000000000000000000000000000061123f565b61034a7f000000000000000000000000000000000000000000000000000000000000000061133d565b60405190610357826108d7565b5f825261038c602091604051958695600f60f81b875260e0602088015260e08701906102c1565b9085820360408701526102c1565b4660608501523060808501525f60a085015283810360c0850152602080845192838152019301915f5b8281106103c457505050500390f35b8351855286955093810193928101926001016103b5565b3461010f57604036600319011261010f5760206104296103f96100f9565b610401610113565b6001600160a01b039182165f9081526002855260408082209290931681526020919091522090565b54604051908152f35b3461010f576104403661018d565b909165ffffffffffff8061045342611406565b16911690811061051f576104ff926104f06104f89260018060a01b0380891691825f5260026020526104988960405f209060018060a01b03165f5260205260405f2090565b546040519260208401947f7830334d17a05ab8aeca8f1778e27182208fc2d454ac7b38a4edc2069ee3a4a6865260408501528a166060840152608083015260a082015260a081526104e8816108f3565b519020611438565b923691610978565b9084610d25565b1561050d576102bf91610e01565b604051638baa579f60e01b8152600490fd5b60405163df4cc36d60e01b8152600490fd5b3461010f57606036600319011261010f5761054a6100f9565b610552610113565b906044359065ffffffffffff8216820361010f576001600160a01b03927f0000000000000000000000000000000000000000000000000000000000000000841633036105e7576105c6936105c192165f52600360205260405f209060018060a01b03165f5260205260405f2090565b610f2c565b60408051941515855263ffffffff91909116602085015292915050f35b0390f35b604051637ca475e560e11b8152600490fd5b3461010f57604036600319011261010f576106126100f9565b60243567ffffffffffffffff811161010f575f916106358392369060040161015f565b90816040519283928337810184815203915af46106826106536109ae565b916106746040519384921515602084015260408084015260608301906102c1565b03601f19810183528261092b565b805190602001fd5b3461010f57602036600319011261010f576102bf6106a66100f9565b33611022565b3461010f575f36600319011261010f576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461010f576106fe3661018d565b909165ffffffffffff8061071142611406565b16911690811061051f576107a6926104f06104f89260018060a01b0380891691825f5260026020526107568960405f209060018060a01b03165f5260205260405f2090565b546040519260208401947f6ab5200f1123a8d51d1695a9e5e757267926b53c6359f90b8873cc7dcc30ea2c865260408501528a166060840152608083015260a082015260a081526104e8816108f3565b1561050d576102bf91611022565b3461010f57602036600319011261010f576102bf6107d06100f9565b33610e01565b3461010f57608036600319011261010f576107ef6100f9565b6107f7610113565b906044356001600160a01b038116810361010f576064359065ffffffffffff8216820361010f576105e39361082b93610a1f565b6040519182916020835260208301906102c1565b6001600160a01b039081165f908152600360209081526040808320939094168252919091522080548061087d57505060015f5b818060d01b03161490565b5f1990808281011161089d576001925f5260205f2001015460301c610872565b610b9f565b634e487b7160e01b5f52604160045260245ffd5b6040810190811067ffffffffffffffff8211176108d257604052565b6108a2565b6020810190811067ffffffffffffffff8211176108d257604052565b60c0810190811067ffffffffffffffff8211176108d257604052565b60a0810190811067ffffffffffffffff8211176108d257604052565b90601f8019910116810190811067ffffffffffffffff8211176108d257604052565b6040519061095a826108b6565b565b67ffffffffffffffff81116108d257601f01601f191660200190565b9291926109848261095c565b91610992604051938461092b565b82948184528183011161010f578281602093845f960137010152565b3d156109d8573d906109bf8261095c565b916109cd604051938461092b565b82523d5f602084013e565b606090565b5190811515820361010f57565b519063ffffffff8216820361010f57565b919082604091031261010f57610a1c6020610a15846109dd565b93016109ea565b90565b9392915f8060609665ffffffffffff604096875196602096639a15d7a560e01b888a015260018060a01b0380921660248a015216604488015216606486015260648552610a6b8561090f565b85519485610a9686820192639f86fd8560e01b845230602484015289604484015260648301906102c1565b0395610aaa601f199788810183528261092b565b51915afa50610ab76109ae565b8051810190848184840193031261010f57610ad38382016109dd565b90858101519067ffffffffffffffff821161010f57019082603f8301121561010f5783820151610b028161095c565b92610b0f8851948561092b565b8184528584019488838301011161010f57815f9289889301875e8401015215610b7d57908282610b4293510101906109fb565b9390610b4e5750505050565b610a1c93949550610b719051948592830191909163ffffffff6020820193169052565b0390810183528261092b565b8091505191821561010f5701fd5b9081602091031261010f57610a1c906109ea565b634e487b7160e01b5f52601160045260245ffd5b5f1981019190821161089d57565b90600163ffffffff8093160191821161089d57565b91805115610cc55780602080610bf193518301019101610b8b565b91610bfc83826111eb565b92610c0d845165ffffffffffff1690565b9065ffffffffffff8085169216828114610cac5782119182610c4c575b5050610c3a57610a1c9250611656565b5050602001516001600160d01b031690565b909150610c598354610bb3565b63ffffffff831614918215610c72575b50505f80610c2a565b610ca4919250610c8d610c87610c9992610bc1565b856111eb565b5165ffffffffffff1690565b65ffffffffffff1690565b115f80610c69565b50505050602091909101516001600160d01b0316905090565b50610a1c91611656565b6001600160a01b039081165f8181526002602090815260408083209590941680835294905291822080546001019055907f8ed32926585579e6191b145240df788165f4957e1135f30a00e08ee8feb9d6809080a3565b610d2f838361145e565b506004819592951015610ded57159384610dd7575b508315610d52575b50505090565b5f929350908291604051610d8a816106746020820194630b135d3f60e11b998a875260248401526040604484015260648301906102c1565b51915afa90610d976109ae565b82610dc9575b82610dad575b50505f8080610d4c565b90915060208180518101031261010f5760200151145f80610da3565b915060208251101591610d9d565b6001600160a01b0383811691161493505f610d44565b634e487b7160e01b5f52602160045260245ffd5b90610e3d610e3882610e238560018060a01b03165f52600360205260405f2090565b9060018060a01b03165f5260205260405f2090565b6118d3565b9091506001600160d01b031615610ee85765ffffffffffff80610e5f42611406565b16911614610ed657610e97610e8882610e238560018060a01b03165f52600360205260405f2090565b610e9142611406565b90611994565b5050610ea38183610ccf565b6001600160a01b0390811691167f1629cd9ad365627cf8408d19c50224af8f3213c1a18ae48062d92e22bddf7de55f80a3565b60405163291bf4b760e21b8152600490fd5b6040516334b09b3960e11b8152600490fd5b906001820180921161089d57565b90604051610f15816108b6565b915465ffffffffffff8116835260301c6020830152565b908154905f829160058411610fb5575b610f479350846115f4565b908115610fa957610f6890610f5b83610bb3565b905f5260205f2001610f08565b91610fa2610f99610f936020610f84875165ffffffffffff1690565b9601516001600160d01b031690565b93610bb3565b63ffffffff1690565b6001939291565b50505f905f905f905f90565b9192610fc0816114b6565b810390811161089d57610f4793855f5265ffffffffffff808360205f20015416908516105f14610ff1575091610f3c565b929150610ffd90610efa565b90610f3c565b9081602091031261010f57610a1c906109dd565b6040513d5f823e3d90fd5b6040516302910f8b60e31b8082526001600160a01b0383811660048401529293916020919082816024817f000000000000000000000000000000000000000000000000000000000000000089165afa90811561119f575f916111b6575b50156111a4576040519081526001600160a01b038316600482015281816024817f000000000000000000000000000000000000000000000000000000000000000088165afa91821561119f575f92611172575b505015611160576110e3818461083f565b61114e578061111961110a8493610e238760018060a01b03165f52600360205260405f2090565b61111342611406565b90611a9e565b50506111258185610ccf565b1691167f9b730d5b907ee509de729817a2bb37e404418ba569b3a50f36192372f973cb415f80a3565b60405163dcdeaba360e01b8152600490fd5b6040516321f5408d60e01b8152600490fd5b6111919250803d10611198575b611189818361092b565b810190611003565b5f806110d2565b503d61117f565b611017565b604051630fb9ff9560e41b8152600490fd5b6111cd9150833d851161119857611189818361092b565b5f61107f565b604051906111e0826108b6565b5f6020838281520152565b6112109161120a916111fb6111d3565b506112046111d3565b506116e2565b50610f08565b65ffffffffffff81511690602060018060d01b039101511660405191611235836108b6565b8252602082015290565b60ff811461125057610a1c9061170b565b506040515f80546001918160011c9260018316908115611333575b60209060208610831461131f578587528694602086019390811561130057506001146112a1575b505050610a1c9250038261092b565b9250936112ce5f80527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e56390565b945f935b8285106112ea57505050610a1c9350015f8080611292565b86548585015295860195879550938101936112d2565b92505050610a1c9491925060ff19168252151560051b015f8080611292565b634e487b7160e01b5f52602260045260245ffd5b93607f169361126b565b60ff811461134e57610a1c9061170b565b506040516001805480821c915f908281169081156113fc575b60209060208610831461131f5785875286946020860193908115611300575060011461139c57505050610a1c9250038261092b565b9250936113ca60015f527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf690565b945f935b8285106113e657505050610a1c9350015f8080611292565b86548585015295860195879550938101936113ce565b93607f1693611367565b65ffffffffffff90818111611419571690565b604490604051906306dfcc6560e41b8252603060048301526024820152fd5b604290611443611737565b906040519161190160f01b8352600283015260228201522090565b815191906041830361148e576114879250602082015190606060408401519301515f1a90611851565b9192909190565b50505f9160029190565b81156114a2570490565b634e487b7160e01b5f52601260045260245ffd5b80156115ef578061158861158161157761156d61156361155961154f6115456001610a1c9a5f908b60801c806115e3575b508060401c806115d6575b508060201c806115c9575b508060101c806115bc575b508060081c806115af575b508060041c806115a2575b508060021c80611595575b50821c61158e575b811c1b61153e818b611498565b0160011c90565b61153e818a611498565b61153e8189611498565b61153e8188611498565b61153e8187611498565b61153e8186611498565b61153e8185611498565b8092611498565b90611922565b8101611531565b600291509101905f611529565b600491509101905f61151e565b600891509101905f611513565b601091509101905f611508565b602091509101905f6114fd565b604091509101905f6114f2565b9150506080905f6114e7565b505f90565b91905b8382106116045750505090565b909192808316906001818518811c830180931161089d57855f5265ffffffffffff808460205f20015416908516105f14611643575050925b91906115f7565b90949350810180911161089d579161163c565b908154905f829160058411611694575b6116719350846115f4565b8061167c5750505f90565b61168590610bb3565b905f5260205f20015460301c90565b919261169f816114b6565b810390811161089d5761167193855f5265ffffffffffff808360205f20015416908516105f146116d0575091611666565b9291506116dc90610efa565b90611666565b80548210156116f7575f5260205f2001905f90565b634e487b7160e01b5f52603260045260245ffd5b60ff811690601f82116117255760405191611235836108b6565b604051632cd44ac360e21b8152600490fd5b307f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03161480611828575b15611792577f000000000000000000000000000000000000000000000000000000000000000090565b60405160208101907f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f82527f000000000000000000000000000000000000000000000000000000000000000060408201527f000000000000000000000000000000000000000000000000000000000000000060608201524660808201523060a082015260a08152611822816108f3565b51902090565b507f00000000000000000000000000000000000000000000000000000000000000004614611769565b91907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a084116118c8579160209360809260ff5f9560405194855216868401526040830152606082015282805260015afa1561119f575f516001600160a01b038116156118be57905f905f90565b505f906001905f90565b5050505f9160039190565b8054806118e45750505f905f905f90565b5f1990808281011161089d57611901925f5260205f200101610f08565b9065ffffffffffff82511691602060018060d01b0391015116906001929190565b908082101561192f575090565b905090565b8054680100000000000000008110156108d257611956916001820181556116e2565b91909161198157805160209091015160301b65ffffffffffff191665ffffffffffff91909116179055565b634e487b7160e01b5f525f60045260245ffd5b8054908115611a7c576119bc6119b76119ac84610bb3565b835f5260205f200190565b610f08565b906119cd825165ffffffffffff1690565b65ffffffffffff8581169491168410611a6a57611a37946020946119fa610c99865165ffffffffffff1690565b03611a3c5750611a2991611a10611a1b92610bb3565b905f5260205f200190565b65ffffffffffff8154169055565b01516001600160d01b031690565b905f90565b9050611a6591611a5b611a4d61094d565b65ffffffffffff9093168352565b5f85830152611934565b611a29565b604051632520601d60e01b8152600490fd5b611a98929150611a8d611a4d61094d565b5f6020830152611934565b5f905f90565b8054908115611b4357611ab66119b76119ac84610bb3565b90611ac7825165ffffffffffff1690565b65ffffffffffff8581169491168410611a6a57611b2194602094611af4610c99865165ffffffffffff1690565b03611b275750611a2991611a10611b0a92610bb3565b660100000000000065ffffffffffff825416179055565b90600190565b9050611a6591611b38611a4d61094d565b600182860152611934565b611b60929150611b54611a4d61094d565b60016020830152611934565b5f9060019056fea2646970667358221220a2601598b530c384dfaa52fda9ec24334fb67ce73c9d54796027ec5092285f3464736f6c63430008190033","sourceMap":"215:929:83:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;;;-1:-1:-1;;;;;215:929:83;;;;;;:::o;:::-;;;;;;;;-1:-1:-1;;;;;215:929:83;;;;;;:::o;:::-;;;;;;-1:-1:-1;;215:929:83;;;;;;;;:::i;:::-;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;215:929:83;;;;;-1:-1:-1;;;;;215:929:83;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;2036:1:91;215:929:83;1975:57:91;:22;215:929:83;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;215:929:83;1975:10:91;215:929:83;;;-1:-1:-1;215:929:83;;;;;;;;;;;;;;;;;1975:22:91;215:929:83;;;;;;;;;;:::i;:::-;1975:57:91;;:::i;:::-;215:929:83;1975:62:91;215:929:83;;;;;;;;;;;;-1:-1:-1;;215:929:83;;;;;;851:39:91;-1:-1:-1;;;;;215:929:83;;;;;;;;;;;;-1:-1:-1;;215:929:83;;;;3493:5:91;215:929:83;;:::i;:::-;3481:10:91;3493:5;:::i;:::-;215:929:83;;;;;;;;;;;;;;;;;;-1:-1:-1;215:929:83;;;;;;;;-1:-1:-1;;215:929:83;;;;:::o;:::-;;;;;;-1:-1:-1;;215:929:83;;;;;6099:41:52;:5;:41;:::i;:::-;6554:47;:8;:47;:::i;:::-;215:929:83;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;5590:13:52;215:929:83;;;;5625:4:52;215:929:83;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;215:929:83;;;;;;;;6584:16:52;215:929:83;;;;;;;;;-1:-1:-1;;215:929:83;;;;;1214:77:91;215:929:83;;:::i;:::-;;;:::i;:::-;-1:-1:-1;;;;;215:929:83;;;-1:-1:-1;215:929:83;;;1214:77:91;215:929:83;;;;;;;;;;;;-1:-1:-1;215:929:83;;;;;;;1214:77:91;215:929:83;;;;;;;;;;;;;;:::i;:::-;;;;837:15:62;819:34;837:15;819:34;:::i;:::-;215:929:83;;;1469:27:91;;;1465:83;;3164:88;215:929:83;4587:179:91;215:929:83;;;;;;;;;;;;-1:-1:-1;215:929:83;4713:6:91;215:929:83;;4713:18:91;215:929:83;;-1:-1:-1;215:929:83;;;;;;;;;;;;;;;;;4713:18:91;215:929:83;;;4644:98:91;215:929:83;4644:98:91;;215:929:83;1082:76:91;215:929:83;;;948:75:91;;215:929:83;;;948:75:91;;;215:929:83;948:75:91;;;215:929:83;948:75:91;;;215:929:83;948:75:91;4644:98;;;;;:::i;:::-;215:929:83;4617:139:91;;4587:179;:::i;:::-;215:929:83;;;;:::i;:::-;3164:88:91;;;:::i;:::-;3163:89;3159:145;;3327:5;;;:::i;3159:145::-;215:929:83;;-1:-1:-1;;;3275:18:91;;215:929:83;;3275:18:91;1465:83;215:929:83;;-1:-1:-1;;;1519:18:91;;215:929:83;;1519:18:91;215:929:83;;;;;;-1:-1:-1;;215:929:83;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;;;;215:929:83;449:5:82;215:929:83;;435:10:82;:19;431:71;;581:61:83;215:929;581:22;215:929;;-1:-1:-1;215:929:83;581:10;215:929;;;-1:-1:-1;215:929:83;;;;;;;;;;;;;;;;;581:22;:61;:::i;:::-;215:929;;;;;;;;;;;;;;;;;;;-1:-1:-1;;215:929:83;;;;;431:71:82;215:929:83;;-1:-1:-1;;;477:14:82;;215:929:83;;477:14:82;215:929:83;;;;;;-1:-1:-1;;215:929:83;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;215:929:83;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;416:25:75;;;;477:31;416:25;;:::i;:::-;215:929:83;;;;;;;;;;477:31:75;;215:929:83;;;;;;;;;;;:::i;:::-;477:31:75;215:929:83;;477:31:75;;;;;;:::i;:::-;518:79;;;215:929:83;518:79:75;;215:929:83;;;;;;-1:-1:-1;;215:929:83;;;;2370:5:91;215:929:83;;:::i;:::-;2358:10:91;2370:5;:::i;215:929:83:-;;;;;;-1:-1:-1;;215:929:83;;;;;;758:37:91;-1:-1:-1;;;;;215:929:83;;;;;;;;;;;;;:::i;:::-;;;;837:15:62;819:34;837:15;819:34;:::i;:::-;215:929:83;;;1469:27:91;;;1465:83;;2610:87;215:929:83;4587:179:91;215:929:83;;;;;;;;;;;;-1:-1:-1;215:929:83;4713:6:91;215:929:83;;4713:18:91;215:929:83;;-1:-1:-1;215:929:83;;;;;;;;;;;;;;;;;4713:18:91;215:929:83;;;4644:98:91;215:929:83;4644:98:91;;215:929:83;948:75:91;215:929:83;;;948:75:91;;215:929:83;;;948:75:91;;;215:929:83;948:75:91;;;215:929:83;948:75:91;;;215:929:83;948:75:91;4644:98;;;;;:::i;2610:87::-;2609:88;2605:144;;2771:5;;;:::i;215:929:83:-;;;;;;-1:-1:-1;;215:929:83;;;;2923:5:91;215:929:83;;:::i;:::-;2911:10:91;2923:5;:::i;215:929:83:-;;;;;;-1:-1:-1;;215:929:83;;;;;;:::i;:::-;;;:::i;:::-;;;;-1:-1:-1;;;;;215:929:83;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;2099:134:91:-;-1:-1:-1;;;;;215:929:83;;;-1:-1:-1;215:929:83;;;2190:10:91;215:929:83;;;;;;;;;;;;;;;;;;;;;10303:8:60;;;:63;;2225:1:91;-1:-1:-1;10303:63:60;215:929:83;;;;;;2190:36:91;2099:134;:::o;10303:63:60:-;215:929:83;;;;;;;;;;2225:1:91;13267:109:86;-1:-1:-1;13267:109:86;215:929:83;-1:-1:-1;13267:109:86;;;215:929:83;;;10303:63:60;;215:929:83;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;:::i;:::-;;;;;;;;;;;;;;;:::o;:::-;948:75:91;215:929:83;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;:::o;:::-;;;;;;;;-1:-1:-1;;215:929:83;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;215:929:83;;;;;;:::o;:::-;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;-1:-1:-1;215:929:83;;;;:::o;:::-;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;:::o;655:487::-;;;;-1:-1:-1;803:12:83;215:929;;;;;;;936:76;;;;;;;;;;215:929;;;;;;;;936:76;;;215:929;;;;;;;;;;;;936:76;;;;;:::i;:::-;215:929;;716:88:82;;215:929:83;716:88:82;;;;;;;;;783:4;936:76:83;716:88:82;;215:929:83;;;;;;;;;;;:::i;:::-;716:88:82;215:929:83;716:88:82;215:929:83;;716:88:82;;;;;;;;:::i;:::-;698:107;;;;;;;:::i;:::-;215:929:83;;857:45:82;;;;;;;;215:929:83;;;;;;857:45:82;;;215:929:83;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;215:929:83;;;;;;;;;;;916:8:82;912:175;;215:929:83;;;857:207;215:929;;857:207;;;;:::i;:::-;1075:61;;;;655:487;;;;:::o;1075:61::-;1108:17;215:929;;;;1108:17;215:929;;1108:17;;;;;215:929;;;;;;;;;;;;1108:17;;;;;;;;;:::i;912:175:82:-;215:929:83;;;;944:22:82;;;940:36;;990:87;;215:929:83;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;215:929:83;;;;;;;;:::o;:::-;;;;;;;;;;;;;:::o;1818:604:86:-;;215:929:83;;1946:17:86;1942:83;;215:929:83;2049:27:86;215:929:83;2049:27:86;215:929:83;;2049:27:86;;;;;;:::i;:::-;2120:14;;;;;:::i;:::-;215:929:83;;;;;;;;;;;;;;;;2148:22:86;;;2144:77;;2235:21;-1:-1:-1;2235:84:86;;;;1818:604;2231:139;;;;1425:34;;;;:::i;2231:139::-;-1:-1:-1;;2049:27:86;2342:17;215:929:83;-1:-1:-1;;;;;215:929:83;;:::o;2235:84:86:-;215:929:83;;;2269:16:86;215:929:83;;2269:16:86;:::i;:::-;215:929:83;;;2261:24:86;:57;;;;;2235:84;;;;;;;2261:57;2289:29;2298:8;;;2289:18;2298:8;2289:23;2298:8;;:::i;:::-;2289:18;;:::i;:::-;215:929:83;;;;;2289:23:86;215:929:83;;;;2289:29:86;;2261:57;;;;2144:77;-1:-1:-1;;;;2049:27:86;2193:17;;;;215:929:83;-1:-1:-1;;;;;215:929:83;;-1:-1:-1;215:929:83;:::o;1942:83:86:-;1425:34;;;;:::i;4779:173:91:-;-1:-1:-1;;;;;215:929:83;;;-1:-1:-1;215:929:83;;;4876:6:91;215:929:83;;;;;;;;;;;;;;;;;;;;;;;;;;;;4920:25:91;;-1:-1:-1;4920:25:91;4779:173::o;1039:368:54:-;1211:33;;;;:::i;:::-;215:929:83;;;;;;;;;;1274:35:54;:58;;;;1039:368;1273:127;;;;;1039:368;1254:146;;;1039:368;:::o;1273:127::-;1283:26;215:929:83;;;;;;;;2041:60:54;;215:929:83;2041:60:54;;;;;;;;;;;;;;215:929:83;;;;;;;;;;;:::i;2041:60:54:-;2010:101;;;;;;;:::i;:::-;2129:42;;;1273:127;2129:134;;;1273:127;;;;;;;;2129:134;215:929:83;;;2041:60:54;215:929:83;;;2187:29:54;;215:929:83;;;;2041:60:54;2187:29;215:929:83;2187:76:54;2129:134;;;;:42;215:929:83;;2041:60:54;215:929:83;;2152:19:54;;2129:42;;;1274:58;-1:-1:-1;;;;;215:929:83;;;;;1313:19:54;;-1:-1:-1;1274:58:54;;;215:929:83;;;;1283:26:54;215:929:83;;;;;1283:26:54;215:929:83;3991:467:91;;5260:30:86;4105:22:91;:15;;;215:929:83;;;;;;;;4105:10:91;215:929:83;;;;;;;4105:15:91;215:929:83;;;;;;;;;;;;;;;;4105:22:91;5260:30:86;:::i;:::-;215:929:83;;-1:-1:-1;;;;;;215:929:83;4161:16:91;4157:66;;215:929:83;837:15:62;819:34;837:15;819:34;:::i;:::-;215:929:83;;;4237:35:91;4233:89;;8167:38:60;4332:22:91;:15;;;215:929:83;;;;;;;;4105:10:91;215:929:83;;;;;;;4332:22:91;819:34:62;837:15;819:34;:::i;:::-;8167:38:60;;:::i;:::-;4411:5:91;;;;;;:::i;:::-;-1:-1:-1;;;;;215:929:83;;;;;4433:18:91;-1:-1:-1;;4433:18:91;3991:467::o;4233:89::-;215:929:83;;-1:-1:-1;;;4295:16:91;;;;;4157:66;215:929:83;;-1:-1:-1;;;4200:12:91;;;;;215:929:83;;3149:1:86;215:929:83;;;;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::o;2666:855:86:-;;215:929:83;;2880:15:86;2838:11;2905:18;2938:7;2944:1;2938:7;;2934:241;;2666:855;3199:60;;;;;:::i;:::-;3274:8;;;3270:62;;215:929:83;3430:7:86;;;;:::i;:::-;13267:109;2838:11;13267:109;;2838:11;13267:109;;215:929:83;:::i;:::-;;3498:15:86;3505:7;215:929:83;13267:109:86;215:929:83;;;;;;;;3479:17:86;;215:929:83;-1:-1:-1;;;;;215:929:83;;;;3505:7:86;;:::i;:::-;215:929:83;;;;3498:15:86;3436:1;;3448:66;;2666:855::o;3270:62::-;3298:23;;2838:11;3298:23;2838:11;3298:23;2838:11;3298:23;2838:11;3298:23;:::o;2934:241::-;2981:14;;;;;:::i;:::-;215:929:83;;;;;;;3199:60:86;13267:109;;2838:11;13267:109;215:929:83;13267:109:86;;;2838:11;13267:109;;215:929:83;;;;;3013:55:86;3009:156;215:929:83;;;3088:10:86;3009:156;2934:241;;3009:156;3143:7;;;;;;:::i;:::-;3009:156;2934:241;;215:929:83;;;;;;;;;;;;:::i;:::-;;;;;;;;;;3512:473:91;215:929:83;;-1:-1:-1;;;3580:37:91;;;-1:-1:-1;;;;;215:929:83;;;3580:37:91;;;215:929:83;;;3512:473:91;3580:37;;215:929:83;3580:37:91;215:929:83;;;3590:12:91;215:929:83;;3580:37:91;;;;;;;-1:-1:-1;3580:37:91;;;3512:473;3579:38;;3575:84;;215:929:83;;3674:41:91;;;-1:-1:-1;;;;;215:929:83;;3580:37:91;3674:41;;215:929:83;3674:41:91;215:929:83;;;3684:14:91;215:929:83;;3674:41:91;;;;;;;-1:-1:-1;3674:41:91;;;3512:473;3673:42;;;3669:96;;3779:21;;;;:::i;:::-;3775:75;;3860:15;8167:38:60;3860:22:91;:15;;;;215:929:83;;;;;;;;4105:10:91;215:929:83;;;;;;;3860:22:91;819:34:62;837:15;819:34;:::i;:::-;8167:38:60;;:::i;:::-;3939:5:91;;;;;;:::i;:::-;215:929:83;;;3961:17:91;-1:-1:-1;3961:17:91;;3512:473::o;3775:75::-;215:929:83;;-1:-1:-1;;;3823:16:91;;3580:37;;3823:16;3669:96;215:929:83;;-1:-1:-1;;;3738:16:91;;3580:37;;3738:16;3674:41;;;;;;-1:-1:-1;3674:41:91;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;;:::i;3575:84::-;215:929:83;;-1:-1:-1;;;3640:8:91;;3580:37;;3640:8;3580:37;;;;;;;;;;;;;;:::i;:::-;;;;215:929:83;;;;;;;:::i;:::-;-1:-1:-1;215:929:83;;;;;;;:::o;5573:258:86:-;215:929:83;5573:258:86;11308:22:60;5573:258:86;215:929:83;;:::i;:::-;;;;:::i;:::-;;11308:22:60;:::i;:::-;215:929:83;;:::i;:::-;;;;;;5805:17:86;215:929:83;;;;;5805:17:86;;215:929:83;;;;;;;;:::i;:::-;;;5805:17:86;5759:65;;215:929:83;5573:258:86;:::o;3385:267:48:-;1390:66;3508:46;;1390:66;;3577:15;;;:::i;3504:142::-;215:929:83;;;;;1390:66:48;;;;;;;;;;;;;;;3504:142;1390:66;;;;;;;;;215:929:83;;;1390:66:48;;215:929:83;;;1390:66:48;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;215:929:83;1390:66:48;;;;;;;215:929:83;1390:66:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1390:66:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;215:929:83;;;;1390:66:48;;;;;215:929:83;1390:66:48;;;;;;;;3385:267;1390:66;3508:46;;1390:66;;3577:15;;;:::i;3504:142::-;-1:-1:-1;215:929:83;;6584:16:52;1390:66:48;;;;;;-1:-1:-1;;1390:66:48;;;;;;;;3504:142;1390:66;;;;;;;;;215:929:83;;;1390:66:48;;215:929:83;;;1390:66:48;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;6584:16:52;1390:66:48;;;;;;;-1:-1:-1;1390:66:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1390:66:48;;;;;;;;;;;;;14291:213:58;215:929:83;14369:24:58;;;;14365:103;;215:929:83;14291:213:58;:::o;14365:103::-;215:929:83;;;;14416:41:58;;;;;;14447:2;14416:41;;;215:929:83;;;;;14416:41:58;4917:176:52;3515:233:53;4917:176:52;5053:20;;:::i;:::-;3515:233:53;;;;-1:-1:-1;;;3515:233:53;;;;;;;;;;;4917:176:52;:::o;2129:766:51:-;215:929:83;;;2129:766:51;2276:2;2256:22;;2276:2;;2739:25;2539:180;;;;;;;;;;;;;;;-1:-1:-1;2539:180:51;2739:25;;:::i;:::-;2732:32;;;;;:::o;2252:637::-;2795:83;;2811:1;2795:83;2815:35;2795:83;;:::o;215:929:83:-;;;;;;;:::o;:::-;;;;;;;;;;;;8587:1642:57;8658:6;;8654:45;;9401:7;10201:10;10142:26;10093;10044;9995;9946;9897;9848;215:929:83;10189:23:57;9401:7;8663:1;215:929:83;;;;10826:16:57;10822:99;;8587:1642;215:929:83;;;;10938:15:57;10934:96;;8587:1642;215:929:83;;;;11047:15:57;11043:96;;8587:1642;215:929:83;;;;11156:15:57;11152:96;;8587:1642;215:929:83;;;;11265:14:57;11261:93;;8587:1642;215:929:83;;;;11371:14:57;11367:93;;8587:1642;215:929:83;;;;11477:14:57;11473:93;;8587:1642;215:929:83;;;11579:64:57;;8587:1642;215:929:83;;;9858:10:57;;;;:::i;:::-;215:929:83;;;;;9848:26:57;9907:10;;;;:::i;9897:26::-;9956:10;;;;:::i;9946:26::-;10005:10;;;;:::i;9995:26::-;10054:10;;;;:::i;10044:26::-;10103:10;;;;:::i;10093:26::-;10152:10;;;;:::i;10142:26::-;10201:10;;;:::i;:::-;10189:23;;:::i;11579:64::-;215:929:83;;11579:64:57;;11473:93;215:929:83;11511:11:57;;215:929:83;;11473:93:57;;;;11367;215:929:83;11405:11:57;;215:929:83;;11367:93:57;;;;11261;215:929:83;11299:11:57;;215:929:83;;11261:93:57;;;;11152:96;215:929:83;11191:12:57;;215:929:83;;11152:96:57;;;;11043;215:929:83;11082:12:57;;215:929:83;;11043:96:57;;;;10934;215:929:83;10973:12:57;;215:929:83;;10934:96:57;;;;10822:99;10862:13;;;215:929:83;10822:99:57;;;;8654:45;8680:8;8663:1;8680:8;:::o;12497:447:86:-;;;12694:10;;;;;;12926:11;;;12497:447;:::o;12687:230::-;2900:5:57;;;;;;215:929:83;;2910:5:57;;;215:929:83;;;;;;;;;13267:109:86;-1:-1:-1;13267:109:86;215:929:83;13267:109:86;;;-1:-1:-1;13267:109:86;;215:929:83;;;;;-1:-1:-1;12771:136:86;215:929:83;;;12830:10:86;;12771:136;;12687:230;;;;12771:136;215:929:83;;;;;;;;;;;12771:136:86;;;9441:606:60;;215:929:83;;9594:15:60;9559:17;9619:18;9652:7;9658:1;9652:7;;9648:234;;9441:606;9906:53;;;;;:::i;:::-;9977:8;;;:63;;9559:17;9441:606;:::o;9977:63::-;10025:7;;;:::i;:::-;13267:109:86;9559:17:60;13267:109:86;;9559:17:60;13267:109:86;;215:929:83;;;9441:606:60;:::o;9648:234::-;9695:14;;;;;:::i;:::-;215:929:83;;;;;;;9906:53:60;13267:109:86;;9559:17:60;13267:109:86;215:929:83;13267:109:86;;;9559:17:60;13267:109:86;;215:929:83;;;;;9727:48:60;9723:149;215:929:83;;;9795:10:60;9723:149;9648:234;;9723:149;9850:7;;;;;;:::i;:::-;9723:149;9648:234;;215:929:83;;;;;;;;-1:-1:-1;1390:66:48;;-1:-1:-1;1390:66:48;215:929:83;;-1:-1:-1;215:929:83;:::o;:::-;;;;;;;;;;;;2078:405:48;2688:4;2652:40;;2706:11;2715:2;2706:11;;2702:69;;215:929:83;;;;;;:::i;2702:69:48:-;215:929:83;;-1:-1:-1;;;2740:20:48;;;;;3845:262:52;3929:4;3938:11;-1:-1:-1;;;;;215:929:83;3921:28:52;;:63;;3845:262;3917:184;;;4007:22;4000:29;:::o;3917:184::-;215:929:83;;4204:80:52;;;215:929:83;2079:95:52;215:929:83;;4226:11:52;215:929:83;2079:95:52;;215:929:83;4239:14:52;2079:95;;;215:929:83;4255:13:52;2079:95;;;215:929:83;3929:4:52;2079:95;;;215:929:83;2079:95:52;4204:80;;;;;:::i;:::-;215:929:83;4194:91:52;;4060:30;:::o;3921:63::-;3970:14;;3953:13;:31;3921:63;;5140:1530:51;;;6199:66;6186:79;;6182:164;;215:929:83;;;;;;-1:-1:-1;215:929:83;;;;;;;;;;;;;;;;;;;6457:24:51;;;;;;;;;-1:-1:-1;6457:24:51;-1:-1:-1;;;;;215:929:83;;6495:20:51;6491:113;;6614:49;-1:-1:-1;6614:49:51;-1:-1:-1;5140:1530:51;:::o;6491:113::-;6531:62;-1:-1:-1;6531:62:51;6457:24;6531:62;-1:-1:-1;6531:62:51;:::o;6182:164::-;6281:54;;;6297:1;6281:54;6301:30;6281:54;;:::o;10552:388:60:-;215:929:83;;10728:8:60;;;10752:20;;10690:17;10752:20;10690:17;10752:20;10690:17;10752:20;:::o;10724:210::-;215:929:83;;;;;;;;;;;13267:109:86;10690:17:60;13267:109:86;;10690:17:60;13267:109:86;;;215:929:83;:::i;:::-;;;;;;;13267:109:86;215:929:83;;;;;10911:11:60;;215:929:83;;10886:37:60;10870:1;10886:37;;;:::o;2557:104:57:-;;2641:5;;;;;;:13;2557:104;:::o;2641:13::-;;;2557:104;:::o;215:929:83:-;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;-1:-1:-1;;215:929:83;;;;;;;;;:::o;:::-;;;;;;;;;;;;11513:870:60;215:929:83;;;11672:7:60;;;;215:929:83;11775:28:60;11795:7;;;:::i;:::-;11775:28;13267:109:86;;;;;;13089:293;;11775:28:60;215:929:83;:::i;:::-;;;;;;;;;;;;;;;;;11877:15:60;-1:-1:-1;11873:91:60;;215:929:83;;12233:11:60;215:929:83;12027:16:60;215:929:83;;;;;;;12027:16:60;;;;12083:7;12063:43;12083:7;;12063:28;12083:7;;:::i;:::-;12063:28;13267:109:86;;;;;;13089:293;;12063:28:60;215:929:83;;;;;;;12063:43:60;12233:11;215:929:83;-1:-1:-1;;;;;215:929:83;;;;12225:27:60;215:929:83;12225:27:60;:::o;12023:189::-;215:929:83;;12145:52:60;215:929:83;12155:41:60;215:929:83;;:::i;:::-;;;;;;;;12155:41:60;215:929:83;12155:41:60;;;215:929:83;12145:52:60;:::i;:::-;12023:189;;11873:91;215:929:83;;-1:-1:-1;;;11919:30:60;;;;;11668:709;12283:52;215:929:83;;;12293:41:60;215:929:83;;:::i;12293:41:60:-;215:929:83;12293:41:60;;;215:929:83;12283:52:60;:::i;:::-;215:929:83;12349:17:60;215:929:83;12349:17:60;:::o;11513:870::-;215:929:83;;;11672:7:60;;;;215:929:83;11775:28:60;11795:7;;;:::i;215:929:83:-;;;;;;;;;;;;;;;;;11877:15:60;-1:-1:-1;11873:91:60;;215:929:83;;12233:11:60;215:929:83;12027:16:60;215:929:83;;;;;;;12027:16:60;;;;12083:7;12063:43;12083:7;;12063:28;12083:7;;:::i;12063:28::-;215:929:83;;;;;;;;;;12225:27:60;215:929:83;12225:27:60;:::o;12023:189::-;215:929:83;;12145:52:60;215:929:83;12155:41:60;215:929:83;;:::i;12155:41:60:-;215:929:83;12155:41:60;;;215:929:83;12145:52:60;:::i;11668:709::-;12283:52;215:929:83;;;12293:41:60;215:929:83;;:::i;12293:41:60:-;215:929:83;12293:41:60;;;215:929:83;12145:52:60;:::i;12283:::-;11678:1;12349:17;215:929:83;12349:17:60;:::o","linkReferences":{},"immutableReferences":{"51758":[{"start":6000,"length":32}],"51760":[{"start":6187,"length":32}],"51762":[{"start":5946,"length":32}],"51764":[{"start":6079,"length":32}],"51766":[{"start":6117,"length":32}],"51769":[{"start":765,"length":32}],"51772":[{"start":806,"length":32}],"62368":[{"start":1393,"length":32}],"65131":[{"start":1729,"length":32},{"start":4174,"length":32}],"65134":[{"start":622,"length":32},{"start":4257,"length":32}]}},"methodIdentifiers":{"WHERE_REGISTRY()":"6d0fae4a","WHO_REGISTRY()":"c4b5d62c","eip712Domain()":"84b0196e","increaseNonce(address)":"8247a97c","isOptedIn(address,address)":"220d32d4","isOptedInAt(address,address,uint48,bytes)":"530e1d43","nonces(address,address)":"9333fbda","optIn(address)":"b1138ad1","optIn(address,address,uint48,bytes)":"ced44ba7","optInHint(address,address,address,uint48)":"d4a63862","optInHintInternal(address,address,uint48)":"9a15d7a5","optOut(address)":"d4610483","optOut(address,address,uint48,bytes)":"93f79bc3","staticDelegateCall(address,bytes)":"9f86fd85"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"AlreadyOptedIn\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CheckpointUnorderedInsertion\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ExpiredSignature\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ExternalCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidShortString\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidSignature\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotOptedIn\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotWhereEntity\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotWho\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OptOutCooldown\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"bits\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"SafeCastOverflowedUintDowncast\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"str\",\"type\":\"string\"}],\"name\":\"StringTooLong\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[],\"name\":\"EIP712DomainChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"who\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"where\",\"type\":\"address\"}],\"name\":\"IncreaseNonce\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"who\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"where\",\"type\":\"address\"}],\"name\":\"OptIn\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"who\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"where\",\"type\":\"address\"}],\"name\":\"OptOut\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"WHERE_REGISTRY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"WHO_REGISTRY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"eip712Domain\",\"outputs\":[{\"internalType\":\"bytes1\",\"name\":\"fields\",\"type\":\"bytes1\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"version\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"chainId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"verifyingContract\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"salt\",\"type\":\"bytes32\"},{\"internalType\":\"uint256[]\",\"name\":\"extensions\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"where\",\"type\":\"address\"}],\"name\":\"increaseNonce\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"who\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"where\",\"type\":\"address\"}],\"name\":\"isOptedIn\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"who\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"where\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hint\",\"type\":\"bytes\"}],\"name\":\"isOptedInAt\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"who\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"where\",\"type\":\"address\"}],\"name\":\"nonces\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"where\",\"type\":\"address\"}],\"name\":\"optIn\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"who\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"where\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"deadline\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"name\":\"optIn\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"optInService\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"who\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"where\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"}],\"name\":\"optInHint\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"who\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"where\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"}],\"name\":\"optInHintInternal\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"exists\",\"type\":\"bool\"},{\"internalType\":\"uint32\",\"name\":\"hint\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"who\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"where\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"deadline\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"name\":\"optOut\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"where\",\"type\":\"address\"}],\"name\":\"optOut\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"staticDelegateCall\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"CheckpointUnorderedInsertion()\":[{\"details\":\"A value was attempted to be inserted on a past checkpoint.\"}],\"SafeCastOverflowedUintDowncast(uint8,uint256)\":[{\"details\":\"Value doesn't fit in an uint of `bits` size.\"}]},\"events\":{\"EIP712DomainChanged()\":{\"details\":\"MAY be emitted to signal that the domain could have changed.\"},\"IncreaseNonce(address,address)\":{\"params\":{\"where\":\"address of the \\\"where\\\" entity\",\"who\":\"address of the \\\"who\\\"\"}},\"OptIn(address,address)\":{\"params\":{\"where\":\"address of the \\\"where\\\" entity\",\"who\":\"address of the \\\"who\\\"\"}},\"OptOut(address,address)\":{\"params\":{\"where\":\"address of the \\\"where\\\" entity\",\"who\":\"address of the \\\"who\\\"\"}}},\"kind\":\"dev\",\"methods\":{\"eip712Domain()\":{\"details\":\"See {IERC-5267}.\"},\"increaseNonce(address)\":{\"details\":\"It can be used to invalidate a given signature.\",\"params\":{\"where\":\"address of the \\\"where\\\" entity\"}},\"isOptedIn(address,address)\":{\"params\":{\"where\":\"address of the \\\"where\\\" entity\",\"who\":\"address of the \\\"who\\\"\"},\"returns\":{\"_0\":\"if the \\\"who\\\" is opted-in\"}},\"isOptedInAt(address,address,uint48,bytes)\":{\"params\":{\"hint\":\"hint for the checkpoint index\",\"timestamp\":\"time point to get if the \\\"who\\\" is opted-in at\",\"where\":\"address of the \\\"where\\\" entity\",\"who\":\"address of the \\\"who\\\"\"},\"returns\":{\"_0\":\"if the \\\"who\\\" is opted-in at the given timestamp\"}},\"optIn(address)\":{\"params\":{\"where\":\"address of the \\\"where\\\" entity\"}},\"optIn(address,address,uint48,bytes)\":{\"params\":{\"deadline\":\"time point until the signature is valid (inclusively)\",\"signature\":\"signature of the \\\"who\\\"\",\"where\":\"address of the \\\"where\\\" entity\",\"who\":\"address of the \\\"who\\\"\"}},\"optOut(address)\":{\"params\":{\"where\":\"address of the \\\"where\\\" entity\"}},\"optOut(address,address,uint48,bytes)\":{\"params\":{\"deadline\":\"time point until the signature is valid (inclusively)\",\"signature\":\"signature of the \\\"who\\\"\",\"where\":\"address of the \\\"where\\\" entity\",\"who\":\"address of the \\\"who\\\"\"}},\"staticDelegateCall(address,bytes)\":{\"details\":\"It allows to use this contract's storage on-chain.\",\"params\":{\"data\":\"data to make a delegatecall with\",\"target\":\"address of the contract to make a delegatecall to\"}}},\"version\":1},\"userdoc\":{\"events\":{\"IncreaseNonce(address,address)\":{\"notice\":\"Emitted when the nonce of a \\\"who\\\" to a \\\"where\\\" entity is increased.\"},\"OptIn(address,address)\":{\"notice\":\"Emitted when a \\\"who\\\" opts into a \\\"where\\\" entity.\"},\"OptOut(address,address)\":{\"notice\":\"Emitted when a \\\"who\\\" opts out from a \\\"where\\\" entity.\"}},\"kind\":\"user\",\"methods\":{\"WHERE_REGISTRY()\":{\"notice\":\"Get the address of the registry where to opt-in.\"},\"WHO_REGISTRY()\":{\"notice\":\"Get the \\\"who\\\" registry's address.\"},\"increaseNonce(address)\":{\"notice\":\"Increase the nonce of a given \\\"who\\\" to a particular \\\"where\\\" entity.\"},\"isOptedIn(address,address)\":{\"notice\":\"Check if a given \\\"who\\\" is opted-in to a particular \\\"where\\\" entity.\"},\"isOptedInAt(address,address,uint48,bytes)\":{\"notice\":\"Get if a given \\\"who\\\" is opted-in to a particular \\\"where\\\" entity at a given timestamp using a hint.\"},\"nonces(address,address)\":{\"notice\":\"Get the nonce of a given \\\"who\\\" to a particular \\\"where\\\" entity.\"},\"optIn(address)\":{\"notice\":\"Opt-in a calling \\\"who\\\" to a particular \\\"where\\\" entity.\"},\"optIn(address,address,uint48,bytes)\":{\"notice\":\"Opt-in a \\\"who\\\" to a particular \\\"where\\\" entity with a signature.\"},\"optOut(address)\":{\"notice\":\"Opt-out a calling \\\"who\\\" from a particular \\\"where\\\" entity.\"},\"optOut(address,address,uint48,bytes)\":{\"notice\":\"Opt-out a \\\"who\\\" from a particular \\\"where\\\" entity with a signature.\"},\"staticDelegateCall(address,bytes)\":{\"notice\":\"Make a delegatecall from this contract to a given target contract with a particular data (always reverts with a return data).\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/contracts/hints/OptInServiceHints.sol\":\"OptInServiceHints\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/interfaces/IERC1271.sol\":{\"keccak256\":\"0x85a45f3f10014a0f8be41157a32b6a5f905753ea64a4b64e29fc12b7deeecf39\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c3c74009ce36136b36c77c23935b8e4a7b4f253be2da2be4fb4a916b1ce43743\",\"dweb:/ipfs/QmcH36v3iN7SJJuF73AunLR2LtNxhVJ1wm63ph4dPZ4pcL\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC5267.sol\":{\"keccak256\":\"0x92aa1df62dc3d33f1656d63bede0923e0df0b706ad4137c8b10b0a8fe549fd92\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c5c0f29195ad64cbe556da8e257dac8f05f78c53f90323c0d2accf8e6922d33a\",\"dweb:/ipfs/QmQ61TED8uaCZwcbh8KkgRSsCav7x7HbcGHwHts3U4DmUP\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0xaf28a975a78550e45f65e559a3ad6a5ad43b9b8a37366999abd1b7084eb70721\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b7bd24e224f67f65bfadf85dc2929fa965456bb2415478bd0125471b5ce35245\",\"dweb:/ipfs/QmRaydGr8BTHs1kvaZfsNU69pKzUAGFrvABn1KiRSbE51y\"]},\"lib/openzeppelin-contracts/contracts/utils/ShortStrings.sol\":{\"keccak256\":\"0x18a7171df639a934592915a520ecb97c5bbc9675a1105607aac8a94e72bf62c6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7478e1f13da69a2867ccd883001d836b75620362e743f196376d63ed0c422a1c\",\"dweb:/ipfs/QmWywcQ9TNfwtoqAxbn25d8C5VrV12PrPS9UjtGe6pL2BA\"]},\"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0x32ba59b4b7299237c8ba56319110989d7978a039faf754793064e967e5894418\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1ae50c8b562427df610cc4540c9bf104acca7ef8e2dcae567ae7e52272281e9c\",\"dweb:/ipfs/QmTHiadFCSJUPpRjNegc5SahmeU8bAoY8i9Aq6tVscbcKR\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0x55f102ea785d8399c0e58d1108e2d289506dde18abc6db1b7f68c1f9f9bc5792\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e52e0a7765c943ef14e5bcf11e46e6139fa044be564881378349236bf2e3453\",\"dweb:/ipfs/QmZEeeXoFPW47amyP35gfzomF9DixqqTEPwzBakv6cZw6i\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0xeed0a08b0b091f528356cbc7245891a4c748682d4f6a18055e8e6ca77d12a6cf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba80ba06c8e6be852847e4c5f4492cef801feb6558ae09ed705ff2e04ea8b13c\",\"dweb:/ipfs/QmXRJDv3xHLVQCVXg1ZvR35QS9sij5y9NDWYzMfUfAdTHF\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/EIP712.sol\":{\"keccak256\":\"0x999f705a027ed6dc2d4e0df2cc4a509852c6bfd11de1c8161bf88832d0503fd0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0798def67258d9a3cc20b2b4da7ebf351a5cefe0abfdd665d2d81f8e32f89b21\",\"dweb:/ipfs/QmPEvJosnPfzHNjKvCv2D3891mA2Ww8eUwkqrxBjuYdHCt\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol\":{\"keccak256\":\"0xba333517a3add42cd35fe877656fc3dfcc9de53baa4f3aabbd6d12a92e4ea435\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2ceacff44c0fdc81e48e0e0b1db87a2076d3c1fb497341de077bf1da9f6b406c\",\"dweb:/ipfs/QmRUo1muMRAewxrKQ7TkXUtknyRoR57AyEkoPpiuZQ8FzX\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/SignatureChecker.sol\":{\"keccak256\":\"0x6b11eb41a228cca35d4b662b4df69fcd75192851365102690f57b2ac01e83fe6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ab006a2983ed350d2af21ddcdd835dcae3b8340086cc4d088460da5abd041f69\",\"dweb:/ipfs/QmbEacDhkJZiGrgzLjB4pNtE8Z1uudjDw1DvcDUTVQFsLG\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875\",\"dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0xe19a4d5f31d2861e7344e8e535e2feafb913d806d3e2b5fe7782741a2a7094fe\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4aed79c0fa6f0546ed02f2f683e8f77f0fd2ed7eb34d8bbf3d373c9a6d95b13c\",\"dweb:/ipfs/QmWqVz6UAVqmnWU5pqYPt1o6iDEZyPaBraAA3rKfTTSfYj\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x5f7e4076e175393767754387c962926577f1660dd9b810187b9002407656be72\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7d533a1c97cd43a57cd9c465f7ee8dd0e39ae93a8fb8ff8e5303a356b081cdcc\",\"dweb:/ipfs/QmVBEei6aTnvYNZp2CHYVNKyZS4q1KkjANfY39WVXZXVoT\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/Checkpoints.sol\":{\"keccak256\":\"0xbdc5e074d7dd6678f67e92b1a51a20226801a407b0e1af3da367c5d1ff4519ad\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a36cca6b22fff3db16fc789ff6c60eea71d4b156065d4d0c83a0bc5e91a77a8b\",\"dweb:/ipfs/QmYN3exd5AemxjBrN8XMB1p5LbbE16uC3sjbYjwi8AjcGR\"]},\"lib/openzeppelin-contracts/contracts/utils/types/Time.sol\":{\"keccak256\":\"0xc7755af115020049e4140f224f9ee88d7e1799ffb0646f37bf0df24bf6213f58\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7f09bf94d5274334ec021f61a04659db303f31e60460e14b709c9bf187740111\",\"dweb:/ipfs/QmNvgomZYUwFAt4cZbPWAiTeSZQreGehY9BK5xyVJsUttb\"]},\"src/contracts/common/StaticDelegateCallable.sol\":{\"keccak256\":\"0x350029aa8955eacaffffaeb58babc5c98e80ebc5c5db388ed17ee6465f4a9d90\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://eb392a8ee9050e0af606897df63e3404e3829e8b688b580663892f9664195764\",\"dweb:/ipfs/QmaXC8jqV8UrrAFkzXTEv2fJF56sy33HhLxAzaRZmUxuXD\"]},\"src/contracts/hints/Hints.sol\":{\"keccak256\":\"0x8b565df1ae35993c097a9e642002782a8f451f6fd01809cad6bcd345bdf1b99c\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://99a19adb01e350a92f534095b3078229df1f2f83077992d75d58d8684be45971\",\"dweb:/ipfs/QmbmwcuswVbzvwHQFTtrJG86oV98GnfxqYTb8cV8u1acox\"]},\"src/contracts/hints/OptInServiceHints.sol\":{\"keccak256\":\"0x95d9407900d27b9f4a1233b772aeed809c07b2dc5b31cfc9fa77ca26514c49e5\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://a13a8877e312d7e6b8b85bde3668c5d84ff5ecc83f762cd573f2b7104c64eb42\",\"dweb:/ipfs/QmYV2J55acuGzCNnS3juABuUHY5U1xc8g8o9jwEyFFdeG5\"]},\"src/contracts/libraries/Checkpoints.sol\":{\"keccak256\":\"0xba90097c8bfe0a975499428b5f8ac5569483c7d92ccc28c12d70de416aae040c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://12f5d93ca94cd06d3147db68993165a58e17903ed53682560de61f3085ad4609\",\"dweb:/ipfs/QmePiuAqvXprMLmFZkGZeGjvGPAvsEDHfCDv7BoQhXu9xE\"]},\"src/contracts/service/OptInService.sol\":{\"keccak256\":\"0x4e0932077f2686b7990e10d59deb2535334c0d09e52ef6e57c6ab09eca21c4b1\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://7c00d311032ed4a1743aca7475f3c86ce15cdfc2218108efc3731c03d34a5278\",\"dweb:/ipfs/QmUGGfVwVhaHr5kS4177yKKYiLYzi5qZpkEmvYxBZqazxf\"]},\"src/interfaces/common/IRegistry.sol\":{\"keccak256\":\"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014\",\"dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK\"]},\"src/interfaces/common/IStaticDelegateCallable.sol\":{\"keccak256\":\"0xa335d4e81b9071b7de66ef92b43ff20671d86516eb1be46fef29a3483cd3f5d5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d464b9db863c14c05547d2b23352f2e9b7b784799cf09f6bbc4906a2a74e3516\",\"dweb:/ipfs/QmUVWzFvJz7eEbDQKiFTTzwi7TEbjcs3VmwdM4kuptAKvi\"]},\"src/interfaces/service/IOptInService.sol\":{\"keccak256\":\"0x76fb5460a6d87a5705433d4fbeff7253cd75b8bbd0c888b2088f16e86ace146a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://990322019b3d11465f7024bae77ccbf7e2fe5d6fa3c754584778f37d04fa1337\",\"dweb:/ipfs/QmaSNHzcqxTkUCG9a4nqVfLECHLdjdrwAnDi3yDC7tDL24\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.25+commit.b61c2a91"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"AlreadyOptedIn"},{"inputs":[],"type":"error","name":"CheckpointUnorderedInsertion"},{"inputs":[],"type":"error","name":"ExpiredSignature"},{"inputs":[],"type":"error","name":"ExternalCall"},{"inputs":[],"type":"error","name":"InvalidShortString"},{"inputs":[],"type":"error","name":"InvalidSignature"},{"inputs":[],"type":"error","name":"NotOptedIn"},{"inputs":[],"type":"error","name":"NotWhereEntity"},{"inputs":[],"type":"error","name":"NotWho"},{"inputs":[],"type":"error","name":"OptOutCooldown"},{"inputs":[{"internalType":"uint8","name":"bits","type":"uint8"},{"internalType":"uint256","name":"value","type":"uint256"}],"type":"error","name":"SafeCastOverflowedUintDowncast"},{"inputs":[{"internalType":"string","name":"str","type":"string"}],"type":"error","name":"StringTooLong"},{"inputs":[],"type":"event","name":"EIP712DomainChanged","anonymous":false},{"inputs":[{"internalType":"address","name":"who","type":"address","indexed":true},{"internalType":"address","name":"where","type":"address","indexed":true}],"type":"event","name":"IncreaseNonce","anonymous":false},{"inputs":[{"internalType":"address","name":"who","type":"address","indexed":true},{"internalType":"address","name":"where","type":"address","indexed":true}],"type":"event","name":"OptIn","anonymous":false},{"inputs":[{"internalType":"address","name":"who","type":"address","indexed":true},{"internalType":"address","name":"where","type":"address","indexed":true}],"type":"event","name":"OptOut","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"WHERE_REGISTRY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"WHO_REGISTRY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"eip712Domain","outputs":[{"internalType":"bytes1","name":"fields","type":"bytes1"},{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"version","type":"string"},{"internalType":"uint256","name":"chainId","type":"uint256"},{"internalType":"address","name":"verifyingContract","type":"address"},{"internalType":"bytes32","name":"salt","type":"bytes32"},{"internalType":"uint256[]","name":"extensions","type":"uint256[]"}]},{"inputs":[{"internalType":"address","name":"where","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"increaseNonce"},{"inputs":[{"internalType":"address","name":"who","type":"address"},{"internalType":"address","name":"where","type":"address"}],"stateMutability":"view","type":"function","name":"isOptedIn","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"who","type":"address"},{"internalType":"address","name":"where","type":"address"},{"internalType":"uint48","name":"timestamp","type":"uint48"},{"internalType":"bytes","name":"hint","type":"bytes"}],"stateMutability":"view","type":"function","name":"isOptedInAt","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"who","type":"address"},{"internalType":"address","name":"where","type":"address"}],"stateMutability":"view","type":"function","name":"nonces","outputs":[{"internalType":"uint256","name":"nonce","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"where","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"optIn"},{"inputs":[{"internalType":"address","name":"who","type":"address"},{"internalType":"address","name":"where","type":"address"},{"internalType":"uint48","name":"deadline","type":"uint48"},{"internalType":"bytes","name":"signature","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"optIn"},{"inputs":[{"internalType":"address","name":"optInService","type":"address"},{"internalType":"address","name":"who","type":"address"},{"internalType":"address","name":"where","type":"address"},{"internalType":"uint48","name":"timestamp","type":"uint48"}],"stateMutability":"view","type":"function","name":"optInHint","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"address","name":"who","type":"address"},{"internalType":"address","name":"where","type":"address"},{"internalType":"uint48","name":"timestamp","type":"uint48"}],"stateMutability":"view","type":"function","name":"optInHintInternal","outputs":[{"internalType":"bool","name":"exists","type":"bool"},{"internalType":"uint32","name":"hint","type":"uint32"}]},{"inputs":[{"internalType":"address","name":"who","type":"address"},{"internalType":"address","name":"where","type":"address"},{"internalType":"uint48","name":"deadline","type":"uint48"},{"internalType":"bytes","name":"signature","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"optOut"},{"inputs":[{"internalType":"address","name":"where","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"optOut"},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"staticDelegateCall"}],"devdoc":{"kind":"dev","methods":{"eip712Domain()":{"details":"See {IERC-5267}."},"increaseNonce(address)":{"details":"It can be used to invalidate a given signature.","params":{"where":"address of the \"where\" entity"}},"isOptedIn(address,address)":{"params":{"where":"address of the \"where\" entity","who":"address of the \"who\""},"returns":{"_0":"if the \"who\" is opted-in"}},"isOptedInAt(address,address,uint48,bytes)":{"params":{"hint":"hint for the checkpoint index","timestamp":"time point to get if the \"who\" is opted-in at","where":"address of the \"where\" entity","who":"address of the \"who\""},"returns":{"_0":"if the \"who\" is opted-in at the given timestamp"}},"optIn(address)":{"params":{"where":"address of the \"where\" entity"}},"optIn(address,address,uint48,bytes)":{"params":{"deadline":"time point until the signature is valid (inclusively)","signature":"signature of the \"who\"","where":"address of the \"where\" entity","who":"address of the \"who\""}},"optOut(address)":{"params":{"where":"address of the \"where\" entity"}},"optOut(address,address,uint48,bytes)":{"params":{"deadline":"time point until the signature is valid (inclusively)","signature":"signature of the \"who\"","where":"address of the \"where\" entity","who":"address of the \"who\""}},"staticDelegateCall(address,bytes)":{"details":"It allows to use this contract's storage on-chain.","params":{"data":"data to make a delegatecall with","target":"address of the contract to make a delegatecall to"}}},"version":1},"userdoc":{"kind":"user","methods":{"WHERE_REGISTRY()":{"notice":"Get the address of the registry where to opt-in."},"WHO_REGISTRY()":{"notice":"Get the \"who\" registry's address."},"increaseNonce(address)":{"notice":"Increase the nonce of a given \"who\" to a particular \"where\" entity."},"isOptedIn(address,address)":{"notice":"Check if a given \"who\" is opted-in to a particular \"where\" entity."},"isOptedInAt(address,address,uint48,bytes)":{"notice":"Get if a given \"who\" is opted-in to a particular \"where\" entity at a given timestamp using a hint."},"nonces(address,address)":{"notice":"Get the nonce of a given \"who\" to a particular \"where\" entity."},"optIn(address)":{"notice":"Opt-in a calling \"who\" to a particular \"where\" entity."},"optIn(address,address,uint48,bytes)":{"notice":"Opt-in a \"who\" to a particular \"where\" entity with a signature."},"optOut(address)":{"notice":"Opt-out a calling \"who\" from a particular \"where\" entity."},"optOut(address,address,uint48,bytes)":{"notice":"Opt-out a \"who\" from a particular \"where\" entity with a signature."},"staticDelegateCall(address,bytes)":{"notice":"Make a delegatecall from this contract to a given target contract with a particular data (always reverts with a return data)."}},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/contracts/hints/OptInServiceHints.sol":"OptInServiceHints"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts/contracts/interfaces/IERC1271.sol":{"keccak256":"0x85a45f3f10014a0f8be41157a32b6a5f905753ea64a4b64e29fc12b7deeecf39","urls":["bzz-raw://c3c74009ce36136b36c77c23935b8e4a7b4f253be2da2be4fb4a916b1ce43743","dweb:/ipfs/QmcH36v3iN7SJJuF73AunLR2LtNxhVJ1wm63ph4dPZ4pcL"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC5267.sol":{"keccak256":"0x92aa1df62dc3d33f1656d63bede0923e0df0b706ad4137c8b10b0a8fe549fd92","urls":["bzz-raw://c5c0f29195ad64cbe556da8e257dac8f05f78c53f90323c0d2accf8e6922d33a","dweb:/ipfs/QmQ61TED8uaCZwcbh8KkgRSsCav7x7HbcGHwHts3U4DmUP"],"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/ShortStrings.sol":{"keccak256":"0x18a7171df639a934592915a520ecb97c5bbc9675a1105607aac8a94e72bf62c6","urls":["bzz-raw://7478e1f13da69a2867ccd883001d836b75620362e743f196376d63ed0c422a1c","dweb:/ipfs/QmWywcQ9TNfwtoqAxbn25d8C5VrV12PrPS9UjtGe6pL2BA"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol":{"keccak256":"0x32ba59b4b7299237c8ba56319110989d7978a039faf754793064e967e5894418","urls":["bzz-raw://1ae50c8b562427df610cc4540c9bf104acca7ef8e2dcae567ae7e52272281e9c","dweb:/ipfs/QmTHiadFCSJUPpRjNegc5SahmeU8bAoY8i9Aq6tVscbcKR"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0x55f102ea785d8399c0e58d1108e2d289506dde18abc6db1b7f68c1f9f9bc5792","urls":["bzz-raw://6e52e0a7765c943ef14e5bcf11e46e6139fa044be564881378349236bf2e3453","dweb:/ipfs/QmZEeeXoFPW47amyP35gfzomF9DixqqTEPwzBakv6cZw6i"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol":{"keccak256":"0xeed0a08b0b091f528356cbc7245891a4c748682d4f6a18055e8e6ca77d12a6cf","urls":["bzz-raw://ba80ba06c8e6be852847e4c5f4492cef801feb6558ae09ed705ff2e04ea8b13c","dweb:/ipfs/QmXRJDv3xHLVQCVXg1ZvR35QS9sij5y9NDWYzMfUfAdTHF"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/EIP712.sol":{"keccak256":"0x999f705a027ed6dc2d4e0df2cc4a509852c6bfd11de1c8161bf88832d0503fd0","urls":["bzz-raw://0798def67258d9a3cc20b2b4da7ebf351a5cefe0abfdd665d2d81f8e32f89b21","dweb:/ipfs/QmPEvJosnPfzHNjKvCv2D3891mA2Ww8eUwkqrxBjuYdHCt"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol":{"keccak256":"0xba333517a3add42cd35fe877656fc3dfcc9de53baa4f3aabbd6d12a92e4ea435","urls":["bzz-raw://2ceacff44c0fdc81e48e0e0b1db87a2076d3c1fb497341de077bf1da9f6b406c","dweb:/ipfs/QmRUo1muMRAewxrKQ7TkXUtknyRoR57AyEkoPpiuZQ8FzX"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/SignatureChecker.sol":{"keccak256":"0x6b11eb41a228cca35d4b662b4df69fcd75192851365102690f57b2ac01e83fe6","urls":["bzz-raw://ab006a2983ed350d2af21ddcdd835dcae3b8340086cc4d088460da5abd041f69","dweb:/ipfs/QmbEacDhkJZiGrgzLjB4pNtE8Z1uudjDw1DvcDUTVQFsLG"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d","urls":["bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875","dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol":{"keccak256":"0xe19a4d5f31d2861e7344e8e535e2feafb913d806d3e2b5fe7782741a2a7094fe","urls":["bzz-raw://4aed79c0fa6f0546ed02f2f683e8f77f0fd2ed7eb34d8bbf3d373c9a6d95b13c","dweb:/ipfs/QmWqVz6UAVqmnWU5pqYPt1o6iDEZyPaBraAA3rKfTTSfYj"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0x5f7e4076e175393767754387c962926577f1660dd9b810187b9002407656be72","urls":["bzz-raw://7d533a1c97cd43a57cd9c465f7ee8dd0e39ae93a8fb8ff8e5303a356b081cdcc","dweb:/ipfs/QmVBEei6aTnvYNZp2CHYVNKyZS4q1KkjANfY39WVXZXVoT"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/Checkpoints.sol":{"keccak256":"0xbdc5e074d7dd6678f67e92b1a51a20226801a407b0e1af3da367c5d1ff4519ad","urls":["bzz-raw://a36cca6b22fff3db16fc789ff6c60eea71d4b156065d4d0c83a0bc5e91a77a8b","dweb:/ipfs/QmYN3exd5AemxjBrN8XMB1p5LbbE16uC3sjbYjwi8AjcGR"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/types/Time.sol":{"keccak256":"0xc7755af115020049e4140f224f9ee88d7e1799ffb0646f37bf0df24bf6213f58","urls":["bzz-raw://7f09bf94d5274334ec021f61a04659db303f31e60460e14b709c9bf187740111","dweb:/ipfs/QmNvgomZYUwFAt4cZbPWAiTeSZQreGehY9BK5xyVJsUttb"],"license":"MIT"},"src/contracts/common/StaticDelegateCallable.sol":{"keccak256":"0x350029aa8955eacaffffaeb58babc5c98e80ebc5c5db388ed17ee6465f4a9d90","urls":["bzz-raw://eb392a8ee9050e0af606897df63e3404e3829e8b688b580663892f9664195764","dweb:/ipfs/QmaXC8jqV8UrrAFkzXTEv2fJF56sy33HhLxAzaRZmUxuXD"],"license":"BUSL-1.1"},"src/contracts/hints/Hints.sol":{"keccak256":"0x8b565df1ae35993c097a9e642002782a8f451f6fd01809cad6bcd345bdf1b99c","urls":["bzz-raw://99a19adb01e350a92f534095b3078229df1f2f83077992d75d58d8684be45971","dweb:/ipfs/QmbmwcuswVbzvwHQFTtrJG86oV98GnfxqYTb8cV8u1acox"],"license":"BUSL-1.1"},"src/contracts/hints/OptInServiceHints.sol":{"keccak256":"0x95d9407900d27b9f4a1233b772aeed809c07b2dc5b31cfc9fa77ca26514c49e5","urls":["bzz-raw://a13a8877e312d7e6b8b85bde3668c5d84ff5ecc83f762cd573f2b7104c64eb42","dweb:/ipfs/QmYV2J55acuGzCNnS3juABuUHY5U1xc8g8o9jwEyFFdeG5"],"license":"BUSL-1.1"},"src/contracts/libraries/Checkpoints.sol":{"keccak256":"0xba90097c8bfe0a975499428b5f8ac5569483c7d92ccc28c12d70de416aae040c","urls":["bzz-raw://12f5d93ca94cd06d3147db68993165a58e17903ed53682560de61f3085ad4609","dweb:/ipfs/QmePiuAqvXprMLmFZkGZeGjvGPAvsEDHfCDv7BoQhXu9xE"],"license":"MIT"},"src/contracts/service/OptInService.sol":{"keccak256":"0x4e0932077f2686b7990e10d59deb2535334c0d09e52ef6e57c6ab09eca21c4b1","urls":["bzz-raw://7c00d311032ed4a1743aca7475f3c86ce15cdfc2218108efc3731c03d34a5278","dweb:/ipfs/QmUGGfVwVhaHr5kS4177yKKYiLYzi5qZpkEmvYxBZqazxf"],"license":"BUSL-1.1"},"src/interfaces/common/IRegistry.sol":{"keccak256":"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb","urls":["bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014","dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK"],"license":"MIT"},"src/interfaces/common/IStaticDelegateCallable.sol":{"keccak256":"0xa335d4e81b9071b7de66ef92b43ff20671d86516eb1be46fef29a3483cd3f5d5","urls":["bzz-raw://d464b9db863c14c05547d2b23352f2e9b7b784799cf09f6bbc4906a2a74e3516","dweb:/ipfs/QmUVWzFvJz7eEbDQKiFTTzwi7TEbjcs3VmwdM4kuptAKvi"],"license":"MIT"},"src/interfaces/service/IOptInService.sol":{"keccak256":"0x76fb5460a6d87a5705433d4fbeff7253cd75b8bbd0c888b2088f16e86ace146a","urls":["bzz-raw://990322019b3d11465f7024bae77ccbf7e2fe5d6fa3c754584778f37d04fa1337","dweb:/ipfs/QmaSNHzcqxTkUCG9a4nqVfLECHLdjdrwAnDi3yDC7tDL24"],"license":"MIT"}},"version":1},"id":83} \ No newline at end of file +{"abi":[{"type":"constructor","inputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"WHERE_REGISTRY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"WHO_REGISTRY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"eip712Domain","inputs":[],"outputs":[{"name":"fields","type":"bytes1","internalType":"bytes1"},{"name":"name","type":"string","internalType":"string"},{"name":"version","type":"string","internalType":"string"},{"name":"chainId","type":"uint256","internalType":"uint256"},{"name":"verifyingContract","type":"address","internalType":"address"},{"name":"salt","type":"bytes32","internalType":"bytes32"},{"name":"extensions","type":"uint256[]","internalType":"uint256[]"}],"stateMutability":"view"},{"type":"function","name":"increaseNonce","inputs":[{"name":"where","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"isOptedIn","inputs":[{"name":"who","type":"address","internalType":"address"},{"name":"where","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isOptedInAt","inputs":[{"name":"who","type":"address","internalType":"address"},{"name":"where","type":"address","internalType":"address"},{"name":"timestamp","type":"uint48","internalType":"uint48"},{"name":"hint","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"nonces","inputs":[{"name":"who","type":"address","internalType":"address"},{"name":"where","type":"address","internalType":"address"}],"outputs":[{"name":"nonce","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"optIn","inputs":[{"name":"where","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"optIn","inputs":[{"name":"who","type":"address","internalType":"address"},{"name":"where","type":"address","internalType":"address"},{"name":"deadline","type":"uint48","internalType":"uint48"},{"name":"signature","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"optInHint","inputs":[{"name":"optInService","type":"address","internalType":"address"},{"name":"who","type":"address","internalType":"address"},{"name":"where","type":"address","internalType":"address"},{"name":"timestamp","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"optInHintInternal","inputs":[{"name":"who","type":"address","internalType":"address"},{"name":"where","type":"address","internalType":"address"},{"name":"timestamp","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"exists","type":"bool","internalType":"bool"},{"name":"hint","type":"uint32","internalType":"uint32"}],"stateMutability":"view"},{"type":"function","name":"optOut","inputs":[{"name":"who","type":"address","internalType":"address"},{"name":"where","type":"address","internalType":"address"},{"name":"deadline","type":"uint48","internalType":"uint48"},{"name":"signature","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"optOut","inputs":[{"name":"where","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"staticDelegateCall","inputs":[{"name":"target","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"EIP712DomainChanged","inputs":[],"anonymous":false},{"type":"event","name":"IncreaseNonce","inputs":[{"name":"who","type":"address","indexed":true,"internalType":"address"},{"name":"where","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"OptIn","inputs":[{"name":"who","type":"address","indexed":true,"internalType":"address"},{"name":"where","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"OptOut","inputs":[{"name":"who","type":"address","indexed":true,"internalType":"address"},{"name":"where","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"error","name":"AlreadyOptedIn","inputs":[]},{"type":"error","name":"CheckpointUnorderedInsertion","inputs":[]},{"type":"error","name":"ExpiredSignature","inputs":[]},{"type":"error","name":"ExternalCall","inputs":[]},{"type":"error","name":"InvalidShortString","inputs":[]},{"type":"error","name":"InvalidSignature","inputs":[]},{"type":"error","name":"NotOptedIn","inputs":[]},{"type":"error","name":"NotWhereEntity","inputs":[]},{"type":"error","name":"NotWho","inputs":[]},{"type":"error","name":"OptOutCooldown","inputs":[]},{"type":"error","name":"SafeCastOverflowedUintDowncast","inputs":[{"name":"bits","type":"uint8","internalType":"uint8"},{"name":"value","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"StringTooLong","inputs":[{"name":"str","type":"string","internalType":"string"}]}],"bytecode":{"object":"0x6101c034610171576001600160401b03602082018181118382101761015d576040908082525f84528151938285018581108582111761015d5783526001855260208501603160f81b81523060805261005682610175565b926101409384526100668761030c565b926101609384525190209061010096828852519020610120948186524660c05280519160208301937f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f85528284015260608301524660808301523060a083015260a0825260c08201968288109088111761015d5786905251902060a0523060e052610180915f83526101a0935f8552611b9d9687610443883960805187610571015260a05187611770015260c0518761182b015260e0518761173a015251866117bf015251856117e5015251846102fd015251836103260152518281816106c1015261104e01525181818161026e01526110a10152f35b634e487b7160e01b5f52604160045260245ffd5b5f80fd5b8051602090818110156101eb5750601f8251116101ad578082519201519080831061019f57501790565b825f19910360031b1b161790565b60448260405192839163305a27a960e01b83528160048401528051918291826024860152018484015e5f828201840152601f01601f19168101030190fd5b906001600160401b03821161015d575f54926001938481811c91168015610302575b838210146102ee57601f81116102bb575b5081601f841160011461025957509282939183925f9461024e575b50501b915f199060031b1c1916175f5560ff90565b015192505f80610239565b919083601f1981165f8052845f20945f905b888383106102a15750505010610289575b505050811b015f5560ff90565b01515f1960f88460031b161c191690555f808061027c565b85870151885590960195948501948793509081019061026b565b5f805284601f845f20920160051c820191601f860160051c015b8281106102e357505061021e565b5f81550185906102d5565b634e487b7160e01b5f52602260045260245ffd5b90607f169061020d565b8051602090818110156103365750601f8251116101ad578082519201519080831061019f57501790565b9192916001600160401b03811161015d5760019182548381811c91168015610438575b828210146102ee57601f8111610405575b5080601f83116001146103a55750819293945f9261039a575b50505f19600383901b1c191690821b17905560ff90565b015190505f80610383565b90601f19831695845f52825f20925f905b8882106103ee57505083859697106103d6575b505050811b01905560ff90565b01515f1960f88460031b161c191690555f80806103c9565b8087859682949686015181550195019301906103b6565b835f5283601f835f20920160051c820191601f850160051c015b82811061042d57505061036a565b5f815501849061041f565b90607f169061035956fe60806040526004361015610011575f80fd5b5f3560e01c8063220d32d4146100f4578063530e1d43146100ef5780636d0fae4a146100ea5780638247a97c146100e557806384b0196e146100e05780639333fbda146100db57806393f79bc3146100d65780639a15d7a5146100d15780639f86fd85146100cc578063b1138ad1146100c7578063c4b5d62c146100c2578063ced44ba7146100bd578063d4610483146100b85763d4a63862146100b3575f80fd5b6107d6565b6107b4565b6106f0565b6106ac565b61068a565b6105f9565b610531565b610432565b6103db565b6102e5565b61029d565b610259565b6101f3565b610129565b600435906001600160a01b038216820361010f57565b5f80fd5b602435906001600160a01b038216820361010f57565b3461010f57604036600319011261010f5760206101556101476100f9565b61014f610113565b9061083f565b6040519015158152f35b9181601f8401121561010f5782359167ffffffffffffffff831161010f576020838186019501011161010f57565b90608060031983011261010f576001600160a01b0391600435838116810361010f5792602435908116810361010f579160443565ffffffffffff8116810361010f57916064359067ffffffffffffffff821161010f576101ef9160040161015f565b9091565b3461010f576020600161024961024f61023a61020e3661018d565b969290949193888060a01b03165f526003895260405f209060018060a01b03165f5260205260405f2090565b92868060d01b03953691610978565b91610bd6565b1614604051908152f35b3461010f575f36600319011261010f576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461010f57602036600319011261010f576102bf6102b96100f9565b33610ccf565b005b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b3461010f575f36600319011261010f5761037e6103217f000000000000000000000000000000000000000000000000000000000000000061123f565b61034a7f000000000000000000000000000000000000000000000000000000000000000061133d565b60405190610357826108d7565b5f825261038c602091604051958695600f60f81b875260e0602088015260e08701906102c1565b9085820360408701526102c1565b4660608501523060808501525f60a085015283810360c0850152602080845192838152019301915f5b8281106103c457505050500390f35b8351855286955093810193928101926001016103b5565b3461010f57604036600319011261010f5760206104296103f96100f9565b610401610113565b6001600160a01b039182165f9081526002855260408082209290931681526020919091522090565b54604051908152f35b3461010f576104403661018d565b909165ffffffffffff8061045342611406565b16911690811061051f576104ff926104f06104f89260018060a01b0380891691825f5260026020526104988960405f209060018060a01b03165f5260205260405f2090565b546040519260208401947f7830334d17a05ab8aeca8f1778e27182208fc2d454ac7b38a4edc2069ee3a4a6865260408501528a166060840152608083015260a082015260a081526104e8816108f3565b519020611438565b923691610978565b9084610d25565b1561050d576102bf91610e01565b604051638baa579f60e01b8152600490fd5b60405163df4cc36d60e01b8152600490fd5b3461010f57606036600319011261010f5761054a6100f9565b610552610113565b906044359065ffffffffffff8216820361010f576001600160a01b03927f0000000000000000000000000000000000000000000000000000000000000000841633036105e7576105c6936105c192165f52600360205260405f209060018060a01b03165f5260205260405f2090565b610f2c565b60408051941515855263ffffffff91909116602085015292915050f35b0390f35b604051637ca475e560e11b8152600490fd5b3461010f57604036600319011261010f576106126100f9565b60243567ffffffffffffffff811161010f575f916106358392369060040161015f565b90816040519283928337810184815203915af46106826106536109ae565b916106746040519384921515602084015260408084015260608301906102c1565b03601f19810183528261092b565b805190602001fd5b3461010f57602036600319011261010f576102bf6106a66100f9565b33611022565b3461010f575f36600319011261010f576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461010f576106fe3661018d565b909165ffffffffffff8061071142611406565b16911690811061051f576107a6926104f06104f89260018060a01b0380891691825f5260026020526107568960405f209060018060a01b03165f5260205260405f2090565b546040519260208401947f6ab5200f1123a8d51d1695a9e5e757267926b53c6359f90b8873cc7dcc30ea2c865260408501528a166060840152608083015260a082015260a081526104e8816108f3565b1561050d576102bf91611022565b3461010f57602036600319011261010f576102bf6107d06100f9565b33610e01565b3461010f57608036600319011261010f576107ef6100f9565b6107f7610113565b906044356001600160a01b038116810361010f576064359065ffffffffffff8216820361010f576105e39361082b93610a1f565b6040519182916020835260208301906102c1565b6001600160a01b039081165f908152600360209081526040808320939094168252919091522080548061087d57505060015f5b818060d01b03161490565b5f1990808281011161089d576001925f5260205f2001015460301c610872565b610b9f565b634e487b7160e01b5f52604160045260245ffd5b6040810190811067ffffffffffffffff8211176108d257604052565b6108a2565b6020810190811067ffffffffffffffff8211176108d257604052565b60c0810190811067ffffffffffffffff8211176108d257604052565b60a0810190811067ffffffffffffffff8211176108d257604052565b90601f8019910116810190811067ffffffffffffffff8211176108d257604052565b6040519061095a826108b6565b565b67ffffffffffffffff81116108d257601f01601f191660200190565b9291926109848261095c565b91610992604051938461092b565b82948184528183011161010f578281602093845f960137010152565b3d156109d8573d906109bf8261095c565b916109cd604051938461092b565b82523d5f602084013e565b606090565b5190811515820361010f57565b519063ffffffff8216820361010f57565b919082604091031261010f57610a1c6020610a15846109dd565b93016109ea565b90565b9392915f8060609665ffffffffffff604096875196602096639a15d7a560e01b888a015260018060a01b0380921660248a015216604488015216606486015260648552610a6b8561090f565b85519485610a9686820192639f86fd8560e01b845230602484015289604484015260648301906102c1565b0395610aaa601f199788810183528261092b565b51915afa50610ab76109ae565b8051810190848184840193031261010f57610ad38382016109dd565b90858101519067ffffffffffffffff821161010f57019082603f8301121561010f5783820151610b028161095c565b92610b0f8851948561092b565b8184528584019488838301011161010f57815f9289889301875e8401015215610b7d57908282610b4293510101906109fb565b9390610b4e5750505050565b610a1c93949550610b719051948592830191909163ffffffff6020820193169052565b0390810183528261092b565b8091505191821561010f5701fd5b9081602091031261010f57610a1c906109ea565b634e487b7160e01b5f52601160045260245ffd5b5f1981019190821161089d57565b90600163ffffffff8093160191821161089d57565b91805115610cc55780602080610bf193518301019101610b8b565b91610bfc83826111eb565b92610c0d845165ffffffffffff1690565b9065ffffffffffff8085169216828114610cac5782119182610c4c575b5050610c3a57610a1c9250611656565b5050602001516001600160d01b031690565b909150610c598354610bb3565b63ffffffff831614918215610c72575b50505f80610c2a565b610ca4919250610c8d610c87610c9992610bc1565b856111eb565b5165ffffffffffff1690565b65ffffffffffff1690565b115f80610c69565b50505050602091909101516001600160d01b0316905090565b50610a1c91611656565b6001600160a01b039081165f8181526002602090815260408083209590941680835294905291822080546001019055907f8ed32926585579e6191b145240df788165f4957e1135f30a00e08ee8feb9d6809080a3565b610d2f838361145e565b506004819592951015610ded57159384610dd7575b508315610d52575b50505090565b5f929350908291604051610d8a816106746020820194630b135d3f60e11b998a875260248401526040604484015260648301906102c1565b51915afa90610d976109ae565b82610dc9575b82610dad575b50505f8080610d4c565b90915060208180518101031261010f5760200151145f80610da3565b915060208251101591610d9d565b6001600160a01b0383811691161493505f610d44565b634e487b7160e01b5f52602160045260245ffd5b90610e3d610e3882610e238560018060a01b03165f52600360205260405f2090565b9060018060a01b03165f5260205260405f2090565b6118d3565b9091506001600160d01b031615610ee85765ffffffffffff80610e5f42611406565b16911614610ed657610e97610e8882610e238560018060a01b03165f52600360205260405f2090565b610e9142611406565b90611994565b5050610ea38183610ccf565b6001600160a01b0390811691167f1629cd9ad365627cf8408d19c50224af8f3213c1a18ae48062d92e22bddf7de55f80a3565b60405163291bf4b760e21b8152600490fd5b6040516334b09b3960e11b8152600490fd5b906001820180921161089d57565b90604051610f15816108b6565b915465ffffffffffff8116835260301c6020830152565b908154905f829160058411610fb5575b610f479350846115f4565b908115610fa957610f6890610f5b83610bb3565b905f5260205f2001610f08565b91610fa2610f99610f936020610f84875165ffffffffffff1690565b9601516001600160d01b031690565b93610bb3565b63ffffffff1690565b6001939291565b50505f905f905f905f90565b9192610fc0816114b6565b810390811161089d57610f4793855f5265ffffffffffff808360205f20015416908516105f14610ff1575091610f3c565b929150610ffd90610efa565b90610f3c565b9081602091031261010f57610a1c906109dd565b6040513d5f823e3d90fd5b6040516302910f8b60e31b8082526001600160a01b0383811660048401529293916020919082816024817f000000000000000000000000000000000000000000000000000000000000000089165afa90811561119f575f916111b6575b50156111a4576040519081526001600160a01b038316600482015281816024817f000000000000000000000000000000000000000000000000000000000000000088165afa91821561119f575f92611172575b505015611160576110e3818461083f565b61114e578061111961110a8493610e238760018060a01b03165f52600360205260405f2090565b61111342611406565b90611a9e565b50506111258185610ccf565b1691167f9b730d5b907ee509de729817a2bb37e404418ba569b3a50f36192372f973cb415f80a3565b60405163dcdeaba360e01b8152600490fd5b6040516321f5408d60e01b8152600490fd5b6111919250803d10611198575b611189818361092b565b810190611003565b5f806110d2565b503d61117f565b611017565b604051630fb9ff9560e41b8152600490fd5b6111cd9150833d851161119857611189818361092b565b5f61107f565b604051906111e0826108b6565b5f6020838281520152565b6112109161120a916111fb6111d3565b506112046111d3565b506116e2565b50610f08565b65ffffffffffff81511690602060018060d01b039101511660405191611235836108b6565b8252602082015290565b60ff811461125057610a1c9061170b565b506040515f80546001918160011c9260018316908115611333575b60209060208610831461131f578587528694602086019390811561130057506001146112a1575b505050610a1c9250038261092b565b9250936112ce5f80527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e56390565b945f935b8285106112ea57505050610a1c9350015f8080611292565b86548585015295860195879550938101936112d2565b92505050610a1c9491925060ff19168252151560051b015f8080611292565b634e487b7160e01b5f52602260045260245ffd5b93607f169361126b565b60ff811461134e57610a1c9061170b565b506040516001805480821c915f908281169081156113fc575b60209060208610831461131f5785875286946020860193908115611300575060011461139c57505050610a1c9250038261092b565b9250936113ca60015f527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf690565b945f935b8285106113e657505050610a1c9350015f8080611292565b86548585015295860195879550938101936113ce565b93607f1693611367565b65ffffffffffff90818111611419571690565b604490604051906306dfcc6560e41b8252603060048301526024820152fd5b604290611443611737565b906040519161190160f01b8352600283015260228201522090565b815191906041830361148e576114879250602082015190606060408401519301515f1a90611851565b9192909190565b50505f9160029190565b81156114a2570490565b634e487b7160e01b5f52601260045260245ffd5b80156115ef578061158861158161157761156d61156361155961154f6115456001610a1c9a5f908b60801c806115e3575b508060401c806115d6575b508060201c806115c9575b508060101c806115bc575b508060081c806115af575b508060041c806115a2575b508060021c80611595575b50821c61158e575b811c1b61153e818b611498565b0160011c90565b61153e818a611498565b61153e8189611498565b61153e8188611498565b61153e8187611498565b61153e8186611498565b61153e8185611498565b8092611498565b90611922565b8101611531565b600291509101905f611529565b600491509101905f61151e565b600891509101905f611513565b601091509101905f611508565b602091509101905f6114fd565b604091509101905f6114f2565b9150506080905f6114e7565b505f90565b91905b8382106116045750505090565b909192808316906001818518811c830180931161089d57855f5265ffffffffffff808460205f20015416908516105f14611643575050925b91906115f7565b90949350810180911161089d579161163c565b908154905f829160058411611694575b6116719350846115f4565b8061167c5750505f90565b61168590610bb3565b905f5260205f20015460301c90565b919261169f816114b6565b810390811161089d5761167193855f5265ffffffffffff808360205f20015416908516105f146116d0575091611666565b9291506116dc90610efa565b90611666565b80548210156116f7575f5260205f2001905f90565b634e487b7160e01b5f52603260045260245ffd5b60ff811690601f82116117255760405191611235836108b6565b604051632cd44ac360e21b8152600490fd5b307f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03161480611828575b15611792577f000000000000000000000000000000000000000000000000000000000000000090565b60405160208101907f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f82527f000000000000000000000000000000000000000000000000000000000000000060408201527f000000000000000000000000000000000000000000000000000000000000000060608201524660808201523060a082015260a08152611822816108f3565b51902090565b507f00000000000000000000000000000000000000000000000000000000000000004614611769565b91907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a084116118c8579160209360809260ff5f9560405194855216868401526040830152606082015282805260015afa1561119f575f516001600160a01b038116156118be57905f905f90565b505f906001905f90565b5050505f9160039190565b8054806118e45750505f905f905f90565b5f1990808281011161089d57611901925f5260205f200101610f08565b9065ffffffffffff82511691602060018060d01b0391015116906001929190565b908082101561192f575090565b905090565b8054680100000000000000008110156108d257611956916001820181556116e2565b91909161198157805160209091015160301b65ffffffffffff191665ffffffffffff91909116179055565b634e487b7160e01b5f525f60045260245ffd5b8054908115611a7c576119bc6119b76119ac84610bb3565b835f5260205f200190565b610f08565b906119cd825165ffffffffffff1690565b65ffffffffffff8581169491168410611a6a57611a37946020946119fa610c99865165ffffffffffff1690565b03611a3c5750611a2991611a10611a1b92610bb3565b905f5260205f200190565b65ffffffffffff8154169055565b01516001600160d01b031690565b905f90565b9050611a6591611a5b611a4d61094d565b65ffffffffffff9093168352565b5f85830152611934565b611a29565b604051632520601d60e01b8152600490fd5b611a98929150611a8d611a4d61094d565b5f6020830152611934565b5f905f90565b8054908115611b4357611ab66119b76119ac84610bb3565b90611ac7825165ffffffffffff1690565b65ffffffffffff8581169491168410611a6a57611b2194602094611af4610c99865165ffffffffffff1690565b03611b275750611a2991611a10611b0a92610bb3565b660100000000000065ffffffffffff825416179055565b90600190565b9050611a6591611b38611a4d61094d565b600182860152611934565b611b60929150611b54611a4d61094d565b60016020830152611934565b5f9060019056fea2646970667358221220493097ed5d1de1aae304a21f1e5e49755a20a7ad3440a5bb7c08f97c4b9ec07d64736f6c63430008190033","sourceMap":"215:929:88:-:0;;;;-1:-1:-1;;;;;215:929:88;;;;;;;;;;;;;;;;;-1:-1:-1;215:929:88;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;215:929:88;;348:4:87;332:21;;3401:45:53;;;:::i;:::-;3393:53;;;;;3467:51;;;:::i;:::-;3456:62;;;;;215:929:88;3542:22:53;;3528:36;;;;;;215:929:88;3591:25:53;;3574:42;;;;;3644:13;3627:30;;215:929:88;;4204:80:53;215:929:88;4204:80:53;;2079:95;;;;;;;;;;;;3644:13;332:21:87;2079:95:53;;;348:4:87;2079:95:53;;;;;4204:80;;3627:30;215:929:88;;;;;;;;;;;;;;;;4194:91:53;;2079:95;3667:48;348:4:87;3725:27:53;;1675:26:96;;-1:-1:-1;1675:26:96;;1711:30;;-1:-1:-1;1711:30:96;;215:929:88;;;;;;332:21:87;215:929:88;;;;;2079:95:53;215:929:88;;;;;3627:30:53;215:929:88;;;;;3725:27:53;215:929:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;215:929:88;;;;;-1:-1:-1;215:929:88;;;;;2914:340:49;215:929:88;;3059:2:49;;3037:24;;;3059:2;;;215:929:88;1854:2:49;215:929:88;;1840:16:49;1836:72;;215:929:88;;;;;2079:95:53;215:929:88;;;;;;1949:36:49;;3077:27;:::o;215:929:88:-;;;;;;;;;;1949:36:49;3077:27;:::o;1836:72::-;215:929:88;;;;1879:18:49;;;;;;;;;;;;215:929:88;;;;;;;;;;;;;;;;355:1;215:929;;;;;;1854:2:49;215:929:88;-1:-1:-1;;215:929:88;;;1879:18:49;;;;3033:215;215:929:88;-1:-1:-1;;;;;215:929:88;;;;355:1;215:929;;;;;;;;;;;;;;3033:215:49;215:929:88;;;;;;;;;;;3033:215:49;215:929:88;;;;;;;;;;;;;;;;355:1;215:929;;;;;;;;;;;;;;;;;355:1;215:929;1390:66:49;3195:42;:::o;215:929:88:-;;;;-1:-1:-1;215:929:88;;;;;;;;;;;;355:1;215:929;;;355:1;215:929;;355:1;215:929;;;;;;;;;;;;;;;;;;;;;355:1;215:929;1390:66:49;3195:42;:::o;215:929:88:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;215:929:88;;;;;;;355:1;215:929;;;;;355:1;215:929;;;;;;;;;;;;;;;;;;;;;;;;;355:1;215:929;;;;;;;;;;;355:1;215:929;;;;;355:1;215:929;;;;;;;;2914:340:49;215:929:88;;3059:2:49;;3037:24;;;3059:2;;;215:929:88;1854:2:49;215:929:88;;1840:16:49;1836:72;;215:929:88;;;;;2079:95:53;215:929:88;;;;;;1949:36:49;;3077:27;:::o;3033:215::-;215:929:88;;;-1:-1:-1;;;;;215:929:88;;;;;;;;;;;;;;;;;;3033:215:49;215:929:88;;;;;;;;;;;3033:215:49;215:929:88;;;;;;;;;;;;;;-1:-1:-1;215:929:88;;;;-1:-1:-1;;;;215:929:88;;;;;;;;;;;;;1390:66:49;;3195:42::o;215:929:88:-;;;;-1:-1:-1;215:929:88;;;;;;;;;;;;-1:-1:-1;215:929:88;;-1:-1:-1;215:929:88;;-1:-1:-1;215:929:88;;;;;;;;;;;;;;;;;;;;;;;;;1390:66:49;3195:42;:::o;215:929:88:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;215:929:88;;;;-1:-1:-1;215:929:88;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;215:929:88;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361015610011575f80fd5b5f3560e01c8063220d32d4146100f4578063530e1d43146100ef5780636d0fae4a146100ea5780638247a97c146100e557806384b0196e146100e05780639333fbda146100db57806393f79bc3146100d65780639a15d7a5146100d15780639f86fd85146100cc578063b1138ad1146100c7578063c4b5d62c146100c2578063ced44ba7146100bd578063d4610483146100b85763d4a63862146100b3575f80fd5b6107d6565b6107b4565b6106f0565b6106ac565b61068a565b6105f9565b610531565b610432565b6103db565b6102e5565b61029d565b610259565b6101f3565b610129565b600435906001600160a01b038216820361010f57565b5f80fd5b602435906001600160a01b038216820361010f57565b3461010f57604036600319011261010f5760206101556101476100f9565b61014f610113565b9061083f565b6040519015158152f35b9181601f8401121561010f5782359167ffffffffffffffff831161010f576020838186019501011161010f57565b90608060031983011261010f576001600160a01b0391600435838116810361010f5792602435908116810361010f579160443565ffffffffffff8116810361010f57916064359067ffffffffffffffff821161010f576101ef9160040161015f565b9091565b3461010f576020600161024961024f61023a61020e3661018d565b969290949193888060a01b03165f526003895260405f209060018060a01b03165f5260205260405f2090565b92868060d01b03953691610978565b91610bd6565b1614604051908152f35b3461010f575f36600319011261010f576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461010f57602036600319011261010f576102bf6102b96100f9565b33610ccf565b005b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b3461010f575f36600319011261010f5761037e6103217f000000000000000000000000000000000000000000000000000000000000000061123f565b61034a7f000000000000000000000000000000000000000000000000000000000000000061133d565b60405190610357826108d7565b5f825261038c602091604051958695600f60f81b875260e0602088015260e08701906102c1565b9085820360408701526102c1565b4660608501523060808501525f60a085015283810360c0850152602080845192838152019301915f5b8281106103c457505050500390f35b8351855286955093810193928101926001016103b5565b3461010f57604036600319011261010f5760206104296103f96100f9565b610401610113565b6001600160a01b039182165f9081526002855260408082209290931681526020919091522090565b54604051908152f35b3461010f576104403661018d565b909165ffffffffffff8061045342611406565b16911690811061051f576104ff926104f06104f89260018060a01b0380891691825f5260026020526104988960405f209060018060a01b03165f5260205260405f2090565b546040519260208401947f7830334d17a05ab8aeca8f1778e27182208fc2d454ac7b38a4edc2069ee3a4a6865260408501528a166060840152608083015260a082015260a081526104e8816108f3565b519020611438565b923691610978565b9084610d25565b1561050d576102bf91610e01565b604051638baa579f60e01b8152600490fd5b60405163df4cc36d60e01b8152600490fd5b3461010f57606036600319011261010f5761054a6100f9565b610552610113565b906044359065ffffffffffff8216820361010f576001600160a01b03927f0000000000000000000000000000000000000000000000000000000000000000841633036105e7576105c6936105c192165f52600360205260405f209060018060a01b03165f5260205260405f2090565b610f2c565b60408051941515855263ffffffff91909116602085015292915050f35b0390f35b604051637ca475e560e11b8152600490fd5b3461010f57604036600319011261010f576106126100f9565b60243567ffffffffffffffff811161010f575f916106358392369060040161015f565b90816040519283928337810184815203915af46106826106536109ae565b916106746040519384921515602084015260408084015260608301906102c1565b03601f19810183528261092b565b805190602001fd5b3461010f57602036600319011261010f576102bf6106a66100f9565b33611022565b3461010f575f36600319011261010f576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461010f576106fe3661018d565b909165ffffffffffff8061071142611406565b16911690811061051f576107a6926104f06104f89260018060a01b0380891691825f5260026020526107568960405f209060018060a01b03165f5260205260405f2090565b546040519260208401947f6ab5200f1123a8d51d1695a9e5e757267926b53c6359f90b8873cc7dcc30ea2c865260408501528a166060840152608083015260a082015260a081526104e8816108f3565b1561050d576102bf91611022565b3461010f57602036600319011261010f576102bf6107d06100f9565b33610e01565b3461010f57608036600319011261010f576107ef6100f9565b6107f7610113565b906044356001600160a01b038116810361010f576064359065ffffffffffff8216820361010f576105e39361082b93610a1f565b6040519182916020835260208301906102c1565b6001600160a01b039081165f908152600360209081526040808320939094168252919091522080548061087d57505060015f5b818060d01b03161490565b5f1990808281011161089d576001925f5260205f2001015460301c610872565b610b9f565b634e487b7160e01b5f52604160045260245ffd5b6040810190811067ffffffffffffffff8211176108d257604052565b6108a2565b6020810190811067ffffffffffffffff8211176108d257604052565b60c0810190811067ffffffffffffffff8211176108d257604052565b60a0810190811067ffffffffffffffff8211176108d257604052565b90601f8019910116810190811067ffffffffffffffff8211176108d257604052565b6040519061095a826108b6565b565b67ffffffffffffffff81116108d257601f01601f191660200190565b9291926109848261095c565b91610992604051938461092b565b82948184528183011161010f578281602093845f960137010152565b3d156109d8573d906109bf8261095c565b916109cd604051938461092b565b82523d5f602084013e565b606090565b5190811515820361010f57565b519063ffffffff8216820361010f57565b919082604091031261010f57610a1c6020610a15846109dd565b93016109ea565b90565b9392915f8060609665ffffffffffff604096875196602096639a15d7a560e01b888a015260018060a01b0380921660248a015216604488015216606486015260648552610a6b8561090f565b85519485610a9686820192639f86fd8560e01b845230602484015289604484015260648301906102c1565b0395610aaa601f199788810183528261092b565b51915afa50610ab76109ae565b8051810190848184840193031261010f57610ad38382016109dd565b90858101519067ffffffffffffffff821161010f57019082603f8301121561010f5783820151610b028161095c565b92610b0f8851948561092b565b8184528584019488838301011161010f57815f9289889301875e8401015215610b7d57908282610b4293510101906109fb565b9390610b4e5750505050565b610a1c93949550610b719051948592830191909163ffffffff6020820193169052565b0390810183528261092b565b8091505191821561010f5701fd5b9081602091031261010f57610a1c906109ea565b634e487b7160e01b5f52601160045260245ffd5b5f1981019190821161089d57565b90600163ffffffff8093160191821161089d57565b91805115610cc55780602080610bf193518301019101610b8b565b91610bfc83826111eb565b92610c0d845165ffffffffffff1690565b9065ffffffffffff8085169216828114610cac5782119182610c4c575b5050610c3a57610a1c9250611656565b5050602001516001600160d01b031690565b909150610c598354610bb3565b63ffffffff831614918215610c72575b50505f80610c2a565b610ca4919250610c8d610c87610c9992610bc1565b856111eb565b5165ffffffffffff1690565b65ffffffffffff1690565b115f80610c69565b50505050602091909101516001600160d01b0316905090565b50610a1c91611656565b6001600160a01b039081165f8181526002602090815260408083209590941680835294905291822080546001019055907f8ed32926585579e6191b145240df788165f4957e1135f30a00e08ee8feb9d6809080a3565b610d2f838361145e565b506004819592951015610ded57159384610dd7575b508315610d52575b50505090565b5f929350908291604051610d8a816106746020820194630b135d3f60e11b998a875260248401526040604484015260648301906102c1565b51915afa90610d976109ae565b82610dc9575b82610dad575b50505f8080610d4c565b90915060208180518101031261010f5760200151145f80610da3565b915060208251101591610d9d565b6001600160a01b0383811691161493505f610d44565b634e487b7160e01b5f52602160045260245ffd5b90610e3d610e3882610e238560018060a01b03165f52600360205260405f2090565b9060018060a01b03165f5260205260405f2090565b6118d3565b9091506001600160d01b031615610ee85765ffffffffffff80610e5f42611406565b16911614610ed657610e97610e8882610e238560018060a01b03165f52600360205260405f2090565b610e9142611406565b90611994565b5050610ea38183610ccf565b6001600160a01b0390811691167f1629cd9ad365627cf8408d19c50224af8f3213c1a18ae48062d92e22bddf7de55f80a3565b60405163291bf4b760e21b8152600490fd5b6040516334b09b3960e11b8152600490fd5b906001820180921161089d57565b90604051610f15816108b6565b915465ffffffffffff8116835260301c6020830152565b908154905f829160058411610fb5575b610f479350846115f4565b908115610fa957610f6890610f5b83610bb3565b905f5260205f2001610f08565b91610fa2610f99610f936020610f84875165ffffffffffff1690565b9601516001600160d01b031690565b93610bb3565b63ffffffff1690565b6001939291565b50505f905f905f905f90565b9192610fc0816114b6565b810390811161089d57610f4793855f5265ffffffffffff808360205f20015416908516105f14610ff1575091610f3c565b929150610ffd90610efa565b90610f3c565b9081602091031261010f57610a1c906109dd565b6040513d5f823e3d90fd5b6040516302910f8b60e31b8082526001600160a01b0383811660048401529293916020919082816024817f000000000000000000000000000000000000000000000000000000000000000089165afa90811561119f575f916111b6575b50156111a4576040519081526001600160a01b038316600482015281816024817f000000000000000000000000000000000000000000000000000000000000000088165afa91821561119f575f92611172575b505015611160576110e3818461083f565b61114e578061111961110a8493610e238760018060a01b03165f52600360205260405f2090565b61111342611406565b90611a9e565b50506111258185610ccf565b1691167f9b730d5b907ee509de729817a2bb37e404418ba569b3a50f36192372f973cb415f80a3565b60405163dcdeaba360e01b8152600490fd5b6040516321f5408d60e01b8152600490fd5b6111919250803d10611198575b611189818361092b565b810190611003565b5f806110d2565b503d61117f565b611017565b604051630fb9ff9560e41b8152600490fd5b6111cd9150833d851161119857611189818361092b565b5f61107f565b604051906111e0826108b6565b5f6020838281520152565b6112109161120a916111fb6111d3565b506112046111d3565b506116e2565b50610f08565b65ffffffffffff81511690602060018060d01b039101511660405191611235836108b6565b8252602082015290565b60ff811461125057610a1c9061170b565b506040515f80546001918160011c9260018316908115611333575b60209060208610831461131f578587528694602086019390811561130057506001146112a1575b505050610a1c9250038261092b565b9250936112ce5f80527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e56390565b945f935b8285106112ea57505050610a1c9350015f8080611292565b86548585015295860195879550938101936112d2565b92505050610a1c9491925060ff19168252151560051b015f8080611292565b634e487b7160e01b5f52602260045260245ffd5b93607f169361126b565b60ff811461134e57610a1c9061170b565b506040516001805480821c915f908281169081156113fc575b60209060208610831461131f5785875286946020860193908115611300575060011461139c57505050610a1c9250038261092b565b9250936113ca60015f527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf690565b945f935b8285106113e657505050610a1c9350015f8080611292565b86548585015295860195879550938101936113ce565b93607f1693611367565b65ffffffffffff90818111611419571690565b604490604051906306dfcc6560e41b8252603060048301526024820152fd5b604290611443611737565b906040519161190160f01b8352600283015260228201522090565b815191906041830361148e576114879250602082015190606060408401519301515f1a90611851565b9192909190565b50505f9160029190565b81156114a2570490565b634e487b7160e01b5f52601260045260245ffd5b80156115ef578061158861158161157761156d61156361155961154f6115456001610a1c9a5f908b60801c806115e3575b508060401c806115d6575b508060201c806115c9575b508060101c806115bc575b508060081c806115af575b508060041c806115a2575b508060021c80611595575b50821c61158e575b811c1b61153e818b611498565b0160011c90565b61153e818a611498565b61153e8189611498565b61153e8188611498565b61153e8187611498565b61153e8186611498565b61153e8185611498565b8092611498565b90611922565b8101611531565b600291509101905f611529565b600491509101905f61151e565b600891509101905f611513565b601091509101905f611508565b602091509101905f6114fd565b604091509101905f6114f2565b9150506080905f6114e7565b505f90565b91905b8382106116045750505090565b909192808316906001818518811c830180931161089d57855f5265ffffffffffff808460205f20015416908516105f14611643575050925b91906115f7565b90949350810180911161089d579161163c565b908154905f829160058411611694575b6116719350846115f4565b8061167c5750505f90565b61168590610bb3565b905f5260205f20015460301c90565b919261169f816114b6565b810390811161089d5761167193855f5265ffffffffffff808360205f20015416908516105f146116d0575091611666565b9291506116dc90610efa565b90611666565b80548210156116f7575f5260205f2001905f90565b634e487b7160e01b5f52603260045260245ffd5b60ff811690601f82116117255760405191611235836108b6565b604051632cd44ac360e21b8152600490fd5b307f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03161480611828575b15611792577f000000000000000000000000000000000000000000000000000000000000000090565b60405160208101907f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f82527f000000000000000000000000000000000000000000000000000000000000000060408201527f000000000000000000000000000000000000000000000000000000000000000060608201524660808201523060a082015260a08152611822816108f3565b51902090565b507f00000000000000000000000000000000000000000000000000000000000000004614611769565b91907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a084116118c8579160209360809260ff5f9560405194855216868401526040830152606082015282805260015afa1561119f575f516001600160a01b038116156118be57905f905f90565b505f906001905f90565b5050505f9160039190565b8054806118e45750505f905f905f90565b5f1990808281011161089d57611901925f5260205f200101610f08565b9065ffffffffffff82511691602060018060d01b0391015116906001929190565b908082101561192f575090565b905090565b8054680100000000000000008110156108d257611956916001820181556116e2565b91909161198157805160209091015160301b65ffffffffffff191665ffffffffffff91909116179055565b634e487b7160e01b5f525f60045260245ffd5b8054908115611a7c576119bc6119b76119ac84610bb3565b835f5260205f200190565b610f08565b906119cd825165ffffffffffff1690565b65ffffffffffff8581169491168410611a6a57611a37946020946119fa610c99865165ffffffffffff1690565b03611a3c5750611a2991611a10611a1b92610bb3565b905f5260205f200190565b65ffffffffffff8154169055565b01516001600160d01b031690565b905f90565b9050611a6591611a5b611a4d61094d565b65ffffffffffff9093168352565b5f85830152611934565b611a29565b604051632520601d60e01b8152600490fd5b611a98929150611a8d611a4d61094d565b5f6020830152611934565b5f905f90565b8054908115611b4357611ab66119b76119ac84610bb3565b90611ac7825165ffffffffffff1690565b65ffffffffffff8581169491168410611a6a57611b2194602094611af4610c99865165ffffffffffff1690565b03611b275750611a2991611a10611b0a92610bb3565b660100000000000065ffffffffffff825416179055565b90600190565b9050611a6591611b38611a4d61094d565b600182860152611934565b611b60929150611b54611a4d61094d565b60016020830152611934565b5f9060019056fea2646970667358221220493097ed5d1de1aae304a21f1e5e49755a20a7ad3440a5bb7c08f97c4b9ec07d64736f6c63430008190033","sourceMap":"215:929:88:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;;;-1:-1:-1;;;;;215:929:88;;;;;;:::o;:::-;;;;;;;;-1:-1:-1;;;;;215:929:88;;;;;;:::o;:::-;;;;;;-1:-1:-1;;215:929:88;;;;;;;;:::i;:::-;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;215:929:88;;;;;-1:-1:-1;;;;;215:929:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;2036:1:96;215:929:88;1975:57:96;:22;215:929:88;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;215:929:88;1975:10:96;215:929:88;;;-1:-1:-1;215:929:88;;;;;;;;;;;;;;;;;1975:22:96;215:929:88;;;;;;;;;;:::i;:::-;1975:57:96;;:::i;:::-;215:929:88;1975:62:96;215:929:88;;;;;;;;;;;;-1:-1:-1;;215:929:88;;;;;;851:39:96;-1:-1:-1;;;;;215:929:88;;;;;;;;;;;;-1:-1:-1;;215:929:88;;;;3493:5:96;215:929:88;;:::i;:::-;3481:10:96;3493:5;:::i;:::-;215:929:88;;;;;;;;;;;;;;;;;;-1:-1:-1;215:929:88;;;;;;;;-1:-1:-1;;215:929:88;;;;:::o;:::-;;;;;;-1:-1:-1;;215:929:88;;;;;6099:41:53;:5;:41;:::i;:::-;6554:47;:8;:47;:::i;:::-;215:929:88;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;5590:13:53;215:929:88;;;;5625:4:53;215:929:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;215:929:88;;;;;;;;6584:16:53;215:929:88;;;;;;;;;-1:-1:-1;;215:929:88;;;;;1214:77:96;215:929:88;;:::i;:::-;;;:::i;:::-;-1:-1:-1;;;;;215:929:88;;;-1:-1:-1;215:929:88;;;1214:77:96;215:929:88;;;;;;;;;;;;-1:-1:-1;215:929:88;;;;;;;1214:77:96;215:929:88;;;;;;;;;;;;;;:::i;:::-;;;;837:15:63;819:34;837:15;819:34;:::i;:::-;215:929:88;;;1469:27:96;;;1465:83;;3164:88;215:929:88;4587:179:96;215:929:88;;;;;;;;;;;;-1:-1:-1;215:929:88;4713:6:96;215:929:88;;4713:18:96;215:929:88;;-1:-1:-1;215:929:88;;;;;;;;;;;;;;;;;4713:18:96;215:929:88;;;4644:98:96;215:929:88;4644:98:96;;215:929:88;1082:76:96;215:929:88;;;948:75:96;;215:929:88;;;948:75:96;;;215:929:88;948:75:96;;;215:929:88;948:75:96;;;215:929:88;948:75:96;4644:98;;;;;:::i;:::-;215:929:88;4617:139:96;;4587:179;:::i;:::-;215:929:88;;;;:::i;:::-;3164:88:96;;;:::i;:::-;3163:89;3159:145;;3327:5;;;:::i;3159:145::-;215:929:88;;-1:-1:-1;;;3275:18:96;;215:929:88;;3275:18:96;1465:83;215:929:88;;-1:-1:-1;;;1519:18:96;;215:929:88;;1519:18:96;215:929:88;;;;;;-1:-1:-1;;215:929:88;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;;;;215:929:88;449:5:87;215:929:88;;435:10:87;:19;431:71;;581:61:88;215:929;581:22;215:929;;-1:-1:-1;215:929:88;581:10;215:929;;;-1:-1:-1;215:929:88;;;;;;;;;;;;;;;;;581:22;:61;:::i;:::-;215:929;;;;;;;;;;;;;;;;;;;-1:-1:-1;;215:929:88;;;;;431:71:87;215:929:88;;-1:-1:-1;;;477:14:87;;215:929:88;;477:14:87;215:929:88;;;;;;-1:-1:-1;;215:929:88;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;215:929:88;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;416:25:80;;;;477:31;416:25;;:::i;:::-;215:929:88;;;;;;;;;;477:31:80;;215:929:88;;;;;;;;;;;:::i;:::-;477:31:80;215:929:88;;477:31:80;;;;;;:::i;:::-;518:79;;;215:929:88;518:79:80;;215:929:88;;;;;;-1:-1:-1;;215:929:88;;;;2370:5:96;215:929:88;;:::i;:::-;2358:10:96;2370:5;:::i;215:929:88:-;;;;;;-1:-1:-1;;215:929:88;;;;;;758:37:96;-1:-1:-1;;;;;215:929:88;;;;;;;;;;;;;:::i;:::-;;;;837:15:63;819:34;837:15;819:34;:::i;:::-;215:929:88;;;1469:27:96;;;1465:83;;2610:87;215:929:88;4587:179:96;215:929:88;;;;;;;;;;;;-1:-1:-1;215:929:88;4713:6:96;215:929:88;;4713:18:96;215:929:88;;-1:-1:-1;215:929:88;;;;;;;;;;;;;;;;;4713:18:96;215:929:88;;;4644:98:96;215:929:88;4644:98:96;;215:929:88;948:75:96;215:929:88;;;948:75:96;;215:929:88;;;948:75:96;;;215:929:88;948:75:96;;;215:929:88;948:75:96;;;215:929:88;948:75:96;4644:98;;;;;:::i;2610:87::-;2609:88;2605:144;;2771:5;;;:::i;215:929:88:-;;;;;;-1:-1:-1;;215:929:88;;;;2923:5:96;215:929:88;;:::i;:::-;2911:10:96;2923:5;:::i;215:929:88:-;;;;;;-1:-1:-1;;215:929:88;;;;;;:::i;:::-;;;:::i;:::-;;;;-1:-1:-1;;;;;215:929:88;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;2099:134:96:-;-1:-1:-1;;;;;215:929:88;;;-1:-1:-1;215:929:88;;;2190:10:96;215:929:88;;;;;;;;;;;;;;;;;;;;;10303:8:61;;;:63;;2225:1:96;-1:-1:-1;10303:63:61;215:929:88;;;;;;2190:36:96;2099:134;:::o;10303:63:61:-;215:929:88;;;;;;;;;;2225:1:96;13267:109:91;-1:-1:-1;13267:109:91;215:929:88;-1:-1:-1;13267:109:91;;;215:929:88;;;10303:63:61;;215:929:88;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;:::i;:::-;;;;;;;;;;;;;;;:::o;:::-;948:75:96;215:929:88;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;:::o;:::-;;;;;;;;-1:-1:-1;;215:929:88;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;215:929:88;;;;;;:::o;:::-;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;-1:-1:-1;215:929:88;;;;:::o;:::-;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;:::o;655:487::-;;;;-1:-1:-1;803:12:88;215:929;;;;;;;936:76;;;;;;;;;;215:929;;;;;;;;936:76;;;215:929;;;;;;;;;;;;936:76;;;;;:::i;:::-;215:929;;716:88:87;;215:929:88;716:88:87;;;;;;;;;783:4;936:76:88;716:88:87;;215:929:88;;;;;;;;;;;:::i;:::-;716:88:87;215:929:88;716:88:87;215:929:88;;716:88:87;;;;;;;;:::i;:::-;698:107;;;;;;;:::i;:::-;215:929:88;;857:45:87;;;;;;;;215:929:88;;;;;;857:45:87;;;215:929:88;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;215:929:88;;;;;;;;;;;916:8:87;912:175;;215:929:88;;;857:207;215:929;;857:207;;;;:::i;:::-;1075:61;;;;655:487;;;;:::o;1075:61::-;1108:17;215:929;;;;1108:17;215:929;;1108:17;;;;;215:929;;;;;;;;;;;;1108:17;;;;;;;;;:::i;912:175:87:-;215:929:88;;;;944:22:87;;;940:36;;990:87;;215:929:88;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;215:929:88;;;;;;;;:::o;:::-;;;;;;;;;;;;;:::o;1818:604:91:-;;215:929:88;;1946:17:91;1942:83;;215:929:88;2049:27:91;215:929:88;2049:27:91;215:929:88;;2049:27:91;;;;;;:::i;:::-;2120:14;;;;;:::i;:::-;215:929:88;;;;;;;;;;;;;;;;2148:22:91;;;2144:77;;2235:21;-1:-1:-1;2235:84:91;;;;1818:604;2231:139;;;;1425:34;;;;:::i;2231:139::-;-1:-1:-1;;2049:27:91;2342:17;215:929:88;-1:-1:-1;;;;;215:929:88;;:::o;2235:84:91:-;215:929:88;;;2269:16:91;215:929:88;;2269:16:91;:::i;:::-;215:929:88;;;2261:24:91;:57;;;;;2235:84;;;;;;;2261:57;2289:29;2298:8;;;2289:18;2298:8;2289:23;2298:8;;:::i;:::-;2289:18;;:::i;:::-;215:929:88;;;;;2289:23:91;215:929:88;;;;2289:29:91;;2261:57;;;;2144:77;-1:-1:-1;;;;2049:27:91;2193:17;;;;215:929:88;-1:-1:-1;;;;;215:929:88;;-1:-1:-1;215:929:88;:::o;1942:83:91:-;1425:34;;;;:::i;4779:173:96:-;-1:-1:-1;;;;;215:929:88;;;-1:-1:-1;215:929:88;;;4876:6:96;215:929:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;4920:25:96;;-1:-1:-1;4920:25:96;4779:173::o;1039:368:55:-;1211:33;;;;:::i;:::-;215:929:88;;;;;;;;;;1274:35:55;:58;;;;1039:368;1273:127;;;;;1039:368;1254:146;;;1039:368;:::o;1273:127::-;1283:26;215:929:88;;;;;;;;2041:60:55;;215:929:88;2041:60:55;;;;;;;;;;;;;;215:929:88;;;;;;;;;;;:::i;2041:60:55:-;2010:101;;;;;;;:::i;:::-;2129:42;;;1273:127;2129:134;;;1273:127;;;;;;;;2129:134;215:929:88;;;2041:60:55;215:929:88;;;2187:29:55;;215:929:88;;;;2041:60:55;2187:29;215:929:88;2187:76:55;2129:134;;;;:42;215:929:88;;2041:60:55;215:929:88;;2152:19:55;;2129:42;;;1274:58;-1:-1:-1;;;;;215:929:88;;;;;1313:19:55;;-1:-1:-1;1274:58:55;;;215:929:88;;;;1283:26:55;215:929:88;;;;;1283:26:55;215:929:88;3991:467:96;;5260:30:91;4105:22:96;:15;;;215:929:88;;;;;;;;4105:10:96;215:929:88;;;;;;;4105:15:96;215:929:88;;;;;;;;;;;;;;;;4105:22:96;5260:30:91;:::i;:::-;215:929:88;;-1:-1:-1;;;;;;215:929:88;4161:16:96;4157:66;;215:929:88;837:15:63;819:34;837:15;819:34;:::i;:::-;215:929:88;;;4237:35:96;4233:89;;8167:38:61;4332:22:96;:15;;;215:929:88;;;;;;;;4105:10:96;215:929:88;;;;;;;4332:22:96;819:34:63;837:15;819:34;:::i;:::-;8167:38:61;;:::i;:::-;4411:5:96;;;;;;:::i;:::-;-1:-1:-1;;;;;215:929:88;;;;;4433:18:96;-1:-1:-1;;4433:18:96;3991:467::o;4233:89::-;215:929:88;;-1:-1:-1;;;4295:16:96;;;;;4157:66;215:929:88;;-1:-1:-1;;;4200:12:96;;;;;215:929:88;;3149:1:91;215:929:88;;;;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::o;2666:855:91:-;;215:929:88;;2880:15:91;2838:11;2905:18;2938:7;2944:1;2938:7;;2934:241;;2666:855;3199:60;;;;;:::i;:::-;3274:8;;;3270:62;;215:929:88;3430:7:91;;;;:::i;:::-;13267:109;2838:11;13267:109;;2838:11;13267:109;;215:929:88;:::i;:::-;;3498:15:91;3505:7;215:929:88;13267:109:91;215:929:88;;;;;;;;3479:17:91;;215:929:88;-1:-1:-1;;;;;215:929:88;;;;3505:7:91;;:::i;:::-;215:929:88;;;;3498:15:91;3436:1;;3448:66;;2666:855::o;3270:62::-;3298:23;;2838:11;3298:23;2838:11;3298:23;2838:11;3298:23;2838:11;3298:23;:::o;2934:241::-;2981:14;;;;;:::i;:::-;215:929:88;;;;;;;3199:60:91;13267:109;;2838:11;13267:109;215:929:88;13267:109:91;;;2838:11;13267:109;;215:929:88;;;;;3013:55:91;3009:156;215:929:88;;;3088:10:91;3009:156;2934:241;;3009:156;3143:7;;;;;;:::i;:::-;3009:156;2934:241;;215:929:88;;;;;;;;;;;;:::i;:::-;;;;;;;;;;3512:473:96;215:929:88;;-1:-1:-1;;;3580:37:96;;;-1:-1:-1;;;;;215:929:88;;;3580:37:96;;;215:929:88;;;3512:473:96;3580:37;;215:929:88;3580:37:96;215:929:88;;;3590:12:96;215:929:88;;3580:37:96;;;;;;;-1:-1:-1;3580:37:96;;;3512:473;3579:38;;3575:84;;215:929:88;;3674:41:96;;;-1:-1:-1;;;;;215:929:88;;3580:37:96;3674:41;;215:929:88;3674:41:96;215:929:88;;;3684:14:96;215:929:88;;3674:41:96;;;;;;;-1:-1:-1;3674:41:96;;;3512:473;3673:42;;;3669:96;;3779:21;;;;:::i;:::-;3775:75;;3860:15;8167:38:61;3860:22:96;:15;;;;215:929:88;;;;;;;;4105:10:96;215:929:88;;;;;;;3860:22:96;819:34:63;837:15;819:34;:::i;:::-;8167:38:61;;:::i;:::-;3939:5:96;;;;;;:::i;:::-;215:929:88;;;3961:17:96;-1:-1:-1;3961:17:96;;3512:473::o;3775:75::-;215:929:88;;-1:-1:-1;;;3823:16:96;;3580:37;;3823:16;3669:96;215:929:88;;-1:-1:-1;;;3738:16:96;;3580:37;;3738:16;3674:41;;;;;;-1:-1:-1;3674:41:96;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;;:::i;3575:84::-;215:929:88;;-1:-1:-1;;;3640:8:96;;3580:37;;3640:8;3580:37;;;;;;;;;;;;;;:::i;:::-;;;;215:929:88;;;;;;;:::i;:::-;-1:-1:-1;215:929:88;;;;;;;:::o;5573:258:91:-;215:929:88;5573:258:91;11308:22:61;5573:258:91;215:929:88;;:::i;:::-;;;;:::i;:::-;;11308:22:61;:::i;:::-;215:929:88;;:::i;:::-;;;;;;5805:17:91;215:929:88;;;;;5805:17:91;;215:929:88;;;;;;;;:::i;:::-;;;5805:17:91;5759:65;;215:929:88;5573:258:91;:::o;3385:267:49:-;1390:66;3508:46;;1390:66;;3577:15;;;:::i;3504:142::-;215:929:88;;;;;1390:66:49;;;;;;;;;;;;;;;3504:142;1390:66;;;;;;;;;215:929:88;;;1390:66:49;;215:929:88;;;1390:66:49;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;215:929:88;1390:66:49;;;;;;;215:929:88;1390:66:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1390:66:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;215:929:88;;;;1390:66:49;;;;;215:929:88;1390:66:49;;;;;;;;3385:267;1390:66;3508:46;;1390:66;;3577:15;;;:::i;3504:142::-;-1:-1:-1;215:929:88;;6584:16:53;1390:66:49;;;;;;-1:-1:-1;;1390:66:49;;;;;;;;3504:142;1390:66;;;;;;;;;215:929:88;;;1390:66:49;;215:929:88;;;1390:66:49;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;6584:16:53;1390:66:49;;;;;;;-1:-1:-1;1390:66:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1390:66:49;;;;;;;;;;;;;14291:213:59;215:929:88;14369:24:59;;;;14365:103;;215:929:88;14291:213:59;:::o;14365:103::-;215:929:88;;;;14416:41:59;;;;;;14447:2;14416:41;;;215:929:88;;;;;14416:41:59;4917:176:53;3515:233:54;4917:176:53;5053:20;;:::i;:::-;3515:233:54;;;;-1:-1:-1;;;3515:233:54;;;;;;;;;;;4917:176:53;:::o;2129:766:52:-;215:929:88;;;2129:766:52;2276:2;2256:22;;2276:2;;2739:25;2539:180;;;;;;;;;;;;;;;-1:-1:-1;2539:180:52;2739:25;;:::i;:::-;2732:32;;;;;:::o;2252:637::-;2795:83;;2811:1;2795:83;2815:35;2795:83;;:::o;215:929:88:-;;;;;;;:::o;:::-;;;;;;;;;;;;8587:1642:58;8658:6;;8654:45;;9401:7;10201:10;10142:26;10093;10044;9995;9946;9897;9848;215:929:88;10189:23:58;9401:7;8663:1;215:929:88;;;;10826:16:58;10822:99;;8587:1642;215:929:88;;;;10938:15:58;10934:96;;8587:1642;215:929:88;;;;11047:15:58;11043:96;;8587:1642;215:929:88;;;;11156:15:58;11152:96;;8587:1642;215:929:88;;;;11265:14:58;11261:93;;8587:1642;215:929:88;;;;11371:14:58;11367:93;;8587:1642;215:929:88;;;;11477:14:58;11473:93;;8587:1642;215:929:88;;;11579:64:58;;8587:1642;215:929:88;;;9858:10:58;;;;:::i;:::-;215:929:88;;;;;9848:26:58;9907:10;;;;:::i;9897:26::-;9956:10;;;;:::i;9946:26::-;10005:10;;;;:::i;9995:26::-;10054:10;;;;:::i;10044:26::-;10103:10;;;;:::i;10093:26::-;10152:10;;;;:::i;10142:26::-;10201:10;;;:::i;:::-;10189:23;;:::i;11579:64::-;215:929:88;;11579:64:58;;11473:93;215:929:88;11511:11:58;;215:929:88;;11473:93:58;;;;11367;215:929:88;11405:11:58;;215:929:88;;11367:93:58;;;;11261;215:929:88;11299:11:58;;215:929:88;;11261:93:58;;;;11152:96;215:929:88;11191:12:58;;215:929:88;;11152:96:58;;;;11043;215:929:88;11082:12:58;;215:929:88;;11043:96:58;;;;10934;215:929:88;10973:12:58;;215:929:88;;10934:96:58;;;;10822:99;10862:13;;;215:929:88;10822:99:58;;;;8654:45;8680:8;8663:1;8680:8;:::o;12497:447:91:-;;;12694:10;;;;;;12926:11;;;12497:447;:::o;12687:230::-;2900:5:58;;;;;;215:929:88;;2910:5:58;;;215:929:88;;;;;;;;;13267:109:91;-1:-1:-1;13267:109:91;215:929:88;13267:109:91;;;-1:-1:-1;13267:109:91;;215:929:88;;;;;-1:-1:-1;12771:136:91;215:929:88;;;12830:10:91;;12771:136;;12687:230;;;;12771:136;215:929:88;;;;;;;;;;;12771:136:91;;;9441:606:61;;215:929:88;;9594:15:61;9559:17;9619:18;9652:7;9658:1;9652:7;;9648:234;;9441:606;9906:53;;;;;:::i;:::-;9977:8;;;:63;;9559:17;9441:606;:::o;9977:63::-;10025:7;;;:::i;:::-;13267:109:91;9559:17:61;13267:109:91;;9559:17:61;13267:109:91;;215:929:88;;;9441:606:61;:::o;9648:234::-;9695:14;;;;;:::i;:::-;215:929:88;;;;;;;9906:53:61;13267:109:91;;9559:17:61;13267:109:91;215:929:88;13267:109:91;;;9559:17:61;13267:109:91;;215:929:88;;;;;9727:48:61;9723:149;215:929:88;;;9795:10:61;9723:149;9648:234;;9723:149;9850:7;;;;;;:::i;:::-;9723:149;9648:234;;215:929:88;;;;;;;;-1:-1:-1;1390:66:49;;-1:-1:-1;1390:66:49;215:929:88;;-1:-1:-1;215:929:88;:::o;:::-;;;;;;;;;;;;2078:405:49;2688:4;2652:40;;2706:11;2715:2;2706:11;;2702:69;;215:929:88;;;;;;:::i;2702:69:49:-;215:929:88;;-1:-1:-1;;;2740:20:49;;;;;3845:262:53;3929:4;3938:11;-1:-1:-1;;;;;215:929:88;3921:28:53;;:63;;3845:262;3917:184;;;4007:22;4000:29;:::o;3917:184::-;215:929:88;;4204:80:53;;;215:929:88;2079:95:53;215:929:88;;4226:11:53;215:929:88;2079:95:53;;215:929:88;4239:14:53;2079:95;;;215:929:88;4255:13:53;2079:95;;;215:929:88;3929:4:53;2079:95;;;215:929:88;2079:95:53;4204:80;;;;;:::i;:::-;215:929:88;4194:91:53;;4060:30;:::o;3921:63::-;3970:14;;3953:13;:31;3921:63;;5140:1530:52;;;6199:66;6186:79;;6182:164;;215:929:88;;;;;;-1:-1:-1;215:929:88;;;;;;;;;;;;;;;;;;;6457:24:52;;;;;;;;;-1:-1:-1;6457:24:52;-1:-1:-1;;;;;215:929:88;;6495:20:52;6491:113;;6614:49;-1:-1:-1;6614:49:52;-1:-1:-1;5140:1530:52;:::o;6491:113::-;6531:62;-1:-1:-1;6531:62:52;6457:24;6531:62;-1:-1:-1;6531:62:52;:::o;6182:164::-;6281:54;;;6297:1;6281:54;6301:30;6281:54;;:::o;10552:388:61:-;215:929:88;;10728:8:61;;;10752:20;;10690:17;10752:20;10690:17;10752:20;10690:17;10752:20;:::o;10724:210::-;215:929:88;;;;;;;;;;;13267:109:91;10690:17:61;13267:109:91;;10690:17:61;13267:109:91;;;215:929:88;:::i;:::-;;;;;;;13267:109:91;215:929:88;;;;;10911:11:61;;215:929:88;;10886:37:61;10870:1;10886:37;;;:::o;2557:104:58:-;;2641:5;;;;;;:13;2557:104;:::o;2641:13::-;;;2557:104;:::o;215:929:88:-;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;-1:-1:-1;;215:929:88;;;;;;;;;:::o;:::-;;;;;;;;;;;;11513:870:61;215:929:88;;;11672:7:61;;;;215:929:88;11775:28:61;11795:7;;;:::i;:::-;11775:28;13267:109:91;;;;;;13089:293;;11775:28:61;215:929:88;:::i;:::-;;;;;;;;;;;;;;;;;11877:15:61;-1:-1:-1;11873:91:61;;215:929:88;;12233:11:61;215:929:88;12027:16:61;215:929:88;;;;;;;12027:16:61;;;;12083:7;12063:43;12083:7;;12063:28;12083:7;;:::i;:::-;12063:28;13267:109:91;;;;;;13089:293;;12063:28:61;215:929:88;;;;;;;12063:43:61;12233:11;215:929:88;-1:-1:-1;;;;;215:929:88;;;;12225:27:61;215:929:88;12225:27:61;:::o;12023:189::-;215:929:88;;12145:52:61;215:929:88;12155:41:61;215:929:88;;:::i;:::-;;;;;;;;12155:41:61;215:929:88;12155:41:61;;;215:929:88;12145:52:61;:::i;:::-;12023:189;;11873:91;215:929:88;;-1:-1:-1;;;11919:30:61;;;;;11668:709;12283:52;215:929:88;;;12293:41:61;215:929:88;;:::i;12293:41:61:-;215:929:88;12293:41:61;;;215:929:88;12283:52:61;:::i;:::-;215:929:88;12349:17:61;215:929:88;12349:17:61;:::o;11513:870::-;215:929:88;;;11672:7:61;;;;215:929:88;11775:28:61;11795:7;;;:::i;215:929:88:-;;;;;;;;;;;;;;;;;11877:15:61;-1:-1:-1;11873:91:61;;215:929:88;;12233:11:61;215:929:88;12027:16:61;215:929:88;;;;;;;12027:16:61;;;;12083:7;12063:43;12083:7;;12063:28;12083:7;;:::i;12063:28::-;215:929:88;;;;;;;;;;12225:27:61;215:929:88;12225:27:61;:::o;12023:189::-;215:929:88;;12145:52:61;215:929:88;12155:41:61;215:929:88;;:::i;12155:41:61:-;215:929:88;12155:41:61;;;215:929:88;12145:52:61;:::i;11668:709::-;12283:52;215:929:88;;;12293:41:61;215:929:88;;:::i;12293:41:61:-;215:929:88;12293:41:61;;;215:929:88;12145:52:61;:::i;12283:::-;11678:1;12349:17;215:929:88;12349:17:61;:::o","linkReferences":{},"immutableReferences":{"51797":[{"start":6000,"length":32}],"51799":[{"start":6187,"length":32}],"51801":[{"start":5946,"length":32}],"51803":[{"start":6079,"length":32}],"51805":[{"start":6117,"length":32}],"51808":[{"start":765,"length":32}],"51811":[{"start":806,"length":32}],"69080":[{"start":1393,"length":32}],"71843":[{"start":1729,"length":32},{"start":4174,"length":32}],"71846":[{"start":622,"length":32},{"start":4257,"length":32}]}},"methodIdentifiers":{"WHERE_REGISTRY()":"6d0fae4a","WHO_REGISTRY()":"c4b5d62c","eip712Domain()":"84b0196e","increaseNonce(address)":"8247a97c","isOptedIn(address,address)":"220d32d4","isOptedInAt(address,address,uint48,bytes)":"530e1d43","nonces(address,address)":"9333fbda","optIn(address)":"b1138ad1","optIn(address,address,uint48,bytes)":"ced44ba7","optInHint(address,address,address,uint48)":"d4a63862","optInHintInternal(address,address,uint48)":"9a15d7a5","optOut(address)":"d4610483","optOut(address,address,uint48,bytes)":"93f79bc3","staticDelegateCall(address,bytes)":"9f86fd85"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"AlreadyOptedIn\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CheckpointUnorderedInsertion\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ExpiredSignature\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ExternalCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidShortString\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidSignature\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotOptedIn\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotWhereEntity\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotWho\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OptOutCooldown\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"bits\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"SafeCastOverflowedUintDowncast\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"str\",\"type\":\"string\"}],\"name\":\"StringTooLong\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[],\"name\":\"EIP712DomainChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"who\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"where\",\"type\":\"address\"}],\"name\":\"IncreaseNonce\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"who\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"where\",\"type\":\"address\"}],\"name\":\"OptIn\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"who\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"where\",\"type\":\"address\"}],\"name\":\"OptOut\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"WHERE_REGISTRY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"WHO_REGISTRY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"eip712Domain\",\"outputs\":[{\"internalType\":\"bytes1\",\"name\":\"fields\",\"type\":\"bytes1\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"version\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"chainId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"verifyingContract\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"salt\",\"type\":\"bytes32\"},{\"internalType\":\"uint256[]\",\"name\":\"extensions\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"where\",\"type\":\"address\"}],\"name\":\"increaseNonce\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"who\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"where\",\"type\":\"address\"}],\"name\":\"isOptedIn\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"who\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"where\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hint\",\"type\":\"bytes\"}],\"name\":\"isOptedInAt\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"who\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"where\",\"type\":\"address\"}],\"name\":\"nonces\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"where\",\"type\":\"address\"}],\"name\":\"optIn\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"who\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"where\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"deadline\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"name\":\"optIn\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"optInService\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"who\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"where\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"}],\"name\":\"optInHint\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"who\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"where\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"}],\"name\":\"optInHintInternal\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"exists\",\"type\":\"bool\"},{\"internalType\":\"uint32\",\"name\":\"hint\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"who\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"where\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"deadline\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"name\":\"optOut\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"where\",\"type\":\"address\"}],\"name\":\"optOut\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"staticDelegateCall\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"CheckpointUnorderedInsertion()\":[{\"details\":\"A value was attempted to be inserted on a past checkpoint.\"}],\"SafeCastOverflowedUintDowncast(uint8,uint256)\":[{\"details\":\"Value doesn't fit in an uint of `bits` size.\"}]},\"events\":{\"EIP712DomainChanged()\":{\"details\":\"MAY be emitted to signal that the domain could have changed.\"},\"IncreaseNonce(address,address)\":{\"params\":{\"where\":\"address of the \\\"where\\\" entity\",\"who\":\"address of the \\\"who\\\"\"}},\"OptIn(address,address)\":{\"params\":{\"where\":\"address of the \\\"where\\\" entity\",\"who\":\"address of the \\\"who\\\"\"}},\"OptOut(address,address)\":{\"params\":{\"where\":\"address of the \\\"where\\\" entity\",\"who\":\"address of the \\\"who\\\"\"}}},\"kind\":\"dev\",\"methods\":{\"eip712Domain()\":{\"details\":\"See {IERC-5267}.\"},\"increaseNonce(address)\":{\"details\":\"It can be used to invalidate a given signature.\",\"params\":{\"where\":\"address of the \\\"where\\\" entity\"}},\"isOptedIn(address,address)\":{\"params\":{\"where\":\"address of the \\\"where\\\" entity\",\"who\":\"address of the \\\"who\\\"\"},\"returns\":{\"_0\":\"if the \\\"who\\\" is opted-in\"}},\"isOptedInAt(address,address,uint48,bytes)\":{\"params\":{\"hint\":\"hint for the checkpoint index\",\"timestamp\":\"time point to get if the \\\"who\\\" is opted-in at\",\"where\":\"address of the \\\"where\\\" entity\",\"who\":\"address of the \\\"who\\\"\"},\"returns\":{\"_0\":\"if the \\\"who\\\" is opted-in at the given timestamp\"}},\"optIn(address)\":{\"params\":{\"where\":\"address of the \\\"where\\\" entity\"}},\"optIn(address,address,uint48,bytes)\":{\"params\":{\"deadline\":\"time point until the signature is valid (inclusively)\",\"signature\":\"signature of the \\\"who\\\"\",\"where\":\"address of the \\\"where\\\" entity\",\"who\":\"address of the \\\"who\\\"\"}},\"optOut(address)\":{\"params\":{\"where\":\"address of the \\\"where\\\" entity\"}},\"optOut(address,address,uint48,bytes)\":{\"params\":{\"deadline\":\"time point until the signature is valid (inclusively)\",\"signature\":\"signature of the \\\"who\\\"\",\"where\":\"address of the \\\"where\\\" entity\",\"who\":\"address of the \\\"who\\\"\"}},\"staticDelegateCall(address,bytes)\":{\"details\":\"It allows to use this contract's storage on-chain.\",\"params\":{\"data\":\"data to make a delegatecall with\",\"target\":\"address of the contract to make a delegatecall to\"}}},\"version\":1},\"userdoc\":{\"events\":{\"IncreaseNonce(address,address)\":{\"notice\":\"Emitted when the nonce of a \\\"who\\\" to a \\\"where\\\" entity is increased.\"},\"OptIn(address,address)\":{\"notice\":\"Emitted when a \\\"who\\\" opts into a \\\"where\\\" entity.\"},\"OptOut(address,address)\":{\"notice\":\"Emitted when a \\\"who\\\" opts out from a \\\"where\\\" entity.\"}},\"kind\":\"user\",\"methods\":{\"WHERE_REGISTRY()\":{\"notice\":\"Get the address of the registry where to opt-in.\"},\"WHO_REGISTRY()\":{\"notice\":\"Get the \\\"who\\\" registry's address.\"},\"increaseNonce(address)\":{\"notice\":\"Increase the nonce of a given \\\"who\\\" to a particular \\\"where\\\" entity.\"},\"isOptedIn(address,address)\":{\"notice\":\"Check if a given \\\"who\\\" is opted-in to a particular \\\"where\\\" entity.\"},\"isOptedInAt(address,address,uint48,bytes)\":{\"notice\":\"Get if a given \\\"who\\\" is opted-in to a particular \\\"where\\\" entity at a given timestamp using a hint.\"},\"nonces(address,address)\":{\"notice\":\"Get the nonce of a given \\\"who\\\" to a particular \\\"where\\\" entity.\"},\"optIn(address)\":{\"notice\":\"Opt-in a calling \\\"who\\\" to a particular \\\"where\\\" entity.\"},\"optIn(address,address,uint48,bytes)\":{\"notice\":\"Opt-in a \\\"who\\\" to a particular \\\"where\\\" entity with a signature.\"},\"optOut(address)\":{\"notice\":\"Opt-out a calling \\\"who\\\" from a particular \\\"where\\\" entity.\"},\"optOut(address,address,uint48,bytes)\":{\"notice\":\"Opt-out a \\\"who\\\" from a particular \\\"where\\\" entity with a signature.\"},\"staticDelegateCall(address,bytes)\":{\"notice\":\"Make a delegatecall from this contract to a given target contract with a particular data (always reverts with a return data).\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/contracts/hints/OptInServiceHints.sol\":\"OptInServiceHints\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/interfaces/IERC1271.sol\":{\"keccak256\":\"0x85a45f3f10014a0f8be41157a32b6a5f905753ea64a4b64e29fc12b7deeecf39\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c3c74009ce36136b36c77c23935b8e4a7b4f253be2da2be4fb4a916b1ce43743\",\"dweb:/ipfs/QmcH36v3iN7SJJuF73AunLR2LtNxhVJ1wm63ph4dPZ4pcL\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC5267.sol\":{\"keccak256\":\"0x92aa1df62dc3d33f1656d63bede0923e0df0b706ad4137c8b10b0a8fe549fd92\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c5c0f29195ad64cbe556da8e257dac8f05f78c53f90323c0d2accf8e6922d33a\",\"dweb:/ipfs/QmQ61TED8uaCZwcbh8KkgRSsCav7x7HbcGHwHts3U4DmUP\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0xaf28a975a78550e45f65e559a3ad6a5ad43b9b8a37366999abd1b7084eb70721\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b7bd24e224f67f65bfadf85dc2929fa965456bb2415478bd0125471b5ce35245\",\"dweb:/ipfs/QmRaydGr8BTHs1kvaZfsNU69pKzUAGFrvABn1KiRSbE51y\"]},\"lib/openzeppelin-contracts/contracts/utils/ShortStrings.sol\":{\"keccak256\":\"0x18a7171df639a934592915a520ecb97c5bbc9675a1105607aac8a94e72bf62c6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7478e1f13da69a2867ccd883001d836b75620362e743f196376d63ed0c422a1c\",\"dweb:/ipfs/QmWywcQ9TNfwtoqAxbn25d8C5VrV12PrPS9UjtGe6pL2BA\"]},\"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0x32ba59b4b7299237c8ba56319110989d7978a039faf754793064e967e5894418\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1ae50c8b562427df610cc4540c9bf104acca7ef8e2dcae567ae7e52272281e9c\",\"dweb:/ipfs/QmTHiadFCSJUPpRjNegc5SahmeU8bAoY8i9Aq6tVscbcKR\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0x55f102ea785d8399c0e58d1108e2d289506dde18abc6db1b7f68c1f9f9bc5792\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e52e0a7765c943ef14e5bcf11e46e6139fa044be564881378349236bf2e3453\",\"dweb:/ipfs/QmZEeeXoFPW47amyP35gfzomF9DixqqTEPwzBakv6cZw6i\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0xeed0a08b0b091f528356cbc7245891a4c748682d4f6a18055e8e6ca77d12a6cf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba80ba06c8e6be852847e4c5f4492cef801feb6558ae09ed705ff2e04ea8b13c\",\"dweb:/ipfs/QmXRJDv3xHLVQCVXg1ZvR35QS9sij5y9NDWYzMfUfAdTHF\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/EIP712.sol\":{\"keccak256\":\"0x999f705a027ed6dc2d4e0df2cc4a509852c6bfd11de1c8161bf88832d0503fd0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0798def67258d9a3cc20b2b4da7ebf351a5cefe0abfdd665d2d81f8e32f89b21\",\"dweb:/ipfs/QmPEvJosnPfzHNjKvCv2D3891mA2Ww8eUwkqrxBjuYdHCt\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol\":{\"keccak256\":\"0xba333517a3add42cd35fe877656fc3dfcc9de53baa4f3aabbd6d12a92e4ea435\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2ceacff44c0fdc81e48e0e0b1db87a2076d3c1fb497341de077bf1da9f6b406c\",\"dweb:/ipfs/QmRUo1muMRAewxrKQ7TkXUtknyRoR57AyEkoPpiuZQ8FzX\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/SignatureChecker.sol\":{\"keccak256\":\"0x6b11eb41a228cca35d4b662b4df69fcd75192851365102690f57b2ac01e83fe6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ab006a2983ed350d2af21ddcdd835dcae3b8340086cc4d088460da5abd041f69\",\"dweb:/ipfs/QmbEacDhkJZiGrgzLjB4pNtE8Z1uudjDw1DvcDUTVQFsLG\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875\",\"dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0xe19a4d5f31d2861e7344e8e535e2feafb913d806d3e2b5fe7782741a2a7094fe\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4aed79c0fa6f0546ed02f2f683e8f77f0fd2ed7eb34d8bbf3d373c9a6d95b13c\",\"dweb:/ipfs/QmWqVz6UAVqmnWU5pqYPt1o6iDEZyPaBraAA3rKfTTSfYj\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x5f7e4076e175393767754387c962926577f1660dd9b810187b9002407656be72\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7d533a1c97cd43a57cd9c465f7ee8dd0e39ae93a8fb8ff8e5303a356b081cdcc\",\"dweb:/ipfs/QmVBEei6aTnvYNZp2CHYVNKyZS4q1KkjANfY39WVXZXVoT\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/Checkpoints.sol\":{\"keccak256\":\"0xbdc5e074d7dd6678f67e92b1a51a20226801a407b0e1af3da367c5d1ff4519ad\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a36cca6b22fff3db16fc789ff6c60eea71d4b156065d4d0c83a0bc5e91a77a8b\",\"dweb:/ipfs/QmYN3exd5AemxjBrN8XMB1p5LbbE16uC3sjbYjwi8AjcGR\"]},\"lib/openzeppelin-contracts/contracts/utils/types/Time.sol\":{\"keccak256\":\"0xc7755af115020049e4140f224f9ee88d7e1799ffb0646f37bf0df24bf6213f58\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7f09bf94d5274334ec021f61a04659db303f31e60460e14b709c9bf187740111\",\"dweb:/ipfs/QmNvgomZYUwFAt4cZbPWAiTeSZQreGehY9BK5xyVJsUttb\"]},\"src/contracts/common/StaticDelegateCallable.sol\":{\"keccak256\":\"0x350029aa8955eacaffffaeb58babc5c98e80ebc5c5db388ed17ee6465f4a9d90\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://eb392a8ee9050e0af606897df63e3404e3829e8b688b580663892f9664195764\",\"dweb:/ipfs/QmaXC8jqV8UrrAFkzXTEv2fJF56sy33HhLxAzaRZmUxuXD\"]},\"src/contracts/hints/Hints.sol\":{\"keccak256\":\"0x8b565df1ae35993c097a9e642002782a8f451f6fd01809cad6bcd345bdf1b99c\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://99a19adb01e350a92f534095b3078229df1f2f83077992d75d58d8684be45971\",\"dweb:/ipfs/QmbmwcuswVbzvwHQFTtrJG86oV98GnfxqYTb8cV8u1acox\"]},\"src/contracts/hints/OptInServiceHints.sol\":{\"keccak256\":\"0x95d9407900d27b9f4a1233b772aeed809c07b2dc5b31cfc9fa77ca26514c49e5\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://a13a8877e312d7e6b8b85bde3668c5d84ff5ecc83f762cd573f2b7104c64eb42\",\"dweb:/ipfs/QmYV2J55acuGzCNnS3juABuUHY5U1xc8g8o9jwEyFFdeG5\"]},\"src/contracts/libraries/Checkpoints.sol\":{\"keccak256\":\"0xba90097c8bfe0a975499428b5f8ac5569483c7d92ccc28c12d70de416aae040c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://12f5d93ca94cd06d3147db68993165a58e17903ed53682560de61f3085ad4609\",\"dweb:/ipfs/QmePiuAqvXprMLmFZkGZeGjvGPAvsEDHfCDv7BoQhXu9xE\"]},\"src/contracts/service/OptInService.sol\":{\"keccak256\":\"0x4e0932077f2686b7990e10d59deb2535334c0d09e52ef6e57c6ab09eca21c4b1\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://7c00d311032ed4a1743aca7475f3c86ce15cdfc2218108efc3731c03d34a5278\",\"dweb:/ipfs/QmUGGfVwVhaHr5kS4177yKKYiLYzi5qZpkEmvYxBZqazxf\"]},\"src/interfaces/common/IRegistry.sol\":{\"keccak256\":\"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014\",\"dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK\"]},\"src/interfaces/common/IStaticDelegateCallable.sol\":{\"keccak256\":\"0xa335d4e81b9071b7de66ef92b43ff20671d86516eb1be46fef29a3483cd3f5d5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d464b9db863c14c05547d2b23352f2e9b7b784799cf09f6bbc4906a2a74e3516\",\"dweb:/ipfs/QmUVWzFvJz7eEbDQKiFTTzwi7TEbjcs3VmwdM4kuptAKvi\"]},\"src/interfaces/service/IOptInService.sol\":{\"keccak256\":\"0x76fb5460a6d87a5705433d4fbeff7253cd75b8bbd0c888b2088f16e86ace146a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://990322019b3d11465f7024bae77ccbf7e2fe5d6fa3c754584778f37d04fa1337\",\"dweb:/ipfs/QmaSNHzcqxTkUCG9a4nqVfLECHLdjdrwAnDi3yDC7tDL24\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.25+commit.b61c2a91"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"AlreadyOptedIn"},{"inputs":[],"type":"error","name":"CheckpointUnorderedInsertion"},{"inputs":[],"type":"error","name":"ExpiredSignature"},{"inputs":[],"type":"error","name":"ExternalCall"},{"inputs":[],"type":"error","name":"InvalidShortString"},{"inputs":[],"type":"error","name":"InvalidSignature"},{"inputs":[],"type":"error","name":"NotOptedIn"},{"inputs":[],"type":"error","name":"NotWhereEntity"},{"inputs":[],"type":"error","name":"NotWho"},{"inputs":[],"type":"error","name":"OptOutCooldown"},{"inputs":[{"internalType":"uint8","name":"bits","type":"uint8"},{"internalType":"uint256","name":"value","type":"uint256"}],"type":"error","name":"SafeCastOverflowedUintDowncast"},{"inputs":[{"internalType":"string","name":"str","type":"string"}],"type":"error","name":"StringTooLong"},{"inputs":[],"type":"event","name":"EIP712DomainChanged","anonymous":false},{"inputs":[{"internalType":"address","name":"who","type":"address","indexed":true},{"internalType":"address","name":"where","type":"address","indexed":true}],"type":"event","name":"IncreaseNonce","anonymous":false},{"inputs":[{"internalType":"address","name":"who","type":"address","indexed":true},{"internalType":"address","name":"where","type":"address","indexed":true}],"type":"event","name":"OptIn","anonymous":false},{"inputs":[{"internalType":"address","name":"who","type":"address","indexed":true},{"internalType":"address","name":"where","type":"address","indexed":true}],"type":"event","name":"OptOut","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"WHERE_REGISTRY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"WHO_REGISTRY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"eip712Domain","outputs":[{"internalType":"bytes1","name":"fields","type":"bytes1"},{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"version","type":"string"},{"internalType":"uint256","name":"chainId","type":"uint256"},{"internalType":"address","name":"verifyingContract","type":"address"},{"internalType":"bytes32","name":"salt","type":"bytes32"},{"internalType":"uint256[]","name":"extensions","type":"uint256[]"}]},{"inputs":[{"internalType":"address","name":"where","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"increaseNonce"},{"inputs":[{"internalType":"address","name":"who","type":"address"},{"internalType":"address","name":"where","type":"address"}],"stateMutability":"view","type":"function","name":"isOptedIn","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"who","type":"address"},{"internalType":"address","name":"where","type":"address"},{"internalType":"uint48","name":"timestamp","type":"uint48"},{"internalType":"bytes","name":"hint","type":"bytes"}],"stateMutability":"view","type":"function","name":"isOptedInAt","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"who","type":"address"},{"internalType":"address","name":"where","type":"address"}],"stateMutability":"view","type":"function","name":"nonces","outputs":[{"internalType":"uint256","name":"nonce","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"where","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"optIn"},{"inputs":[{"internalType":"address","name":"who","type":"address"},{"internalType":"address","name":"where","type":"address"},{"internalType":"uint48","name":"deadline","type":"uint48"},{"internalType":"bytes","name":"signature","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"optIn"},{"inputs":[{"internalType":"address","name":"optInService","type":"address"},{"internalType":"address","name":"who","type":"address"},{"internalType":"address","name":"where","type":"address"},{"internalType":"uint48","name":"timestamp","type":"uint48"}],"stateMutability":"view","type":"function","name":"optInHint","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"address","name":"who","type":"address"},{"internalType":"address","name":"where","type":"address"},{"internalType":"uint48","name":"timestamp","type":"uint48"}],"stateMutability":"view","type":"function","name":"optInHintInternal","outputs":[{"internalType":"bool","name":"exists","type":"bool"},{"internalType":"uint32","name":"hint","type":"uint32"}]},{"inputs":[{"internalType":"address","name":"who","type":"address"},{"internalType":"address","name":"where","type":"address"},{"internalType":"uint48","name":"deadline","type":"uint48"},{"internalType":"bytes","name":"signature","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"optOut"},{"inputs":[{"internalType":"address","name":"where","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"optOut"},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"staticDelegateCall"}],"devdoc":{"kind":"dev","methods":{"eip712Domain()":{"details":"See {IERC-5267}."},"increaseNonce(address)":{"details":"It can be used to invalidate a given signature.","params":{"where":"address of the \"where\" entity"}},"isOptedIn(address,address)":{"params":{"where":"address of the \"where\" entity","who":"address of the \"who\""},"returns":{"_0":"if the \"who\" is opted-in"}},"isOptedInAt(address,address,uint48,bytes)":{"params":{"hint":"hint for the checkpoint index","timestamp":"time point to get if the \"who\" is opted-in at","where":"address of the \"where\" entity","who":"address of the \"who\""},"returns":{"_0":"if the \"who\" is opted-in at the given timestamp"}},"optIn(address)":{"params":{"where":"address of the \"where\" entity"}},"optIn(address,address,uint48,bytes)":{"params":{"deadline":"time point until the signature is valid (inclusively)","signature":"signature of the \"who\"","where":"address of the \"where\" entity","who":"address of the \"who\""}},"optOut(address)":{"params":{"where":"address of the \"where\" entity"}},"optOut(address,address,uint48,bytes)":{"params":{"deadline":"time point until the signature is valid (inclusively)","signature":"signature of the \"who\"","where":"address of the \"where\" entity","who":"address of the \"who\""}},"staticDelegateCall(address,bytes)":{"details":"It allows to use this contract's storage on-chain.","params":{"data":"data to make a delegatecall with","target":"address of the contract to make a delegatecall to"}}},"version":1},"userdoc":{"kind":"user","methods":{"WHERE_REGISTRY()":{"notice":"Get the address of the registry where to opt-in."},"WHO_REGISTRY()":{"notice":"Get the \"who\" registry's address."},"increaseNonce(address)":{"notice":"Increase the nonce of a given \"who\" to a particular \"where\" entity."},"isOptedIn(address,address)":{"notice":"Check if a given \"who\" is opted-in to a particular \"where\" entity."},"isOptedInAt(address,address,uint48,bytes)":{"notice":"Get if a given \"who\" is opted-in to a particular \"where\" entity at a given timestamp using a hint."},"nonces(address,address)":{"notice":"Get the nonce of a given \"who\" to a particular \"where\" entity."},"optIn(address)":{"notice":"Opt-in a calling \"who\" to a particular \"where\" entity."},"optIn(address,address,uint48,bytes)":{"notice":"Opt-in a \"who\" to a particular \"where\" entity with a signature."},"optOut(address)":{"notice":"Opt-out a calling \"who\" from a particular \"where\" entity."},"optOut(address,address,uint48,bytes)":{"notice":"Opt-out a \"who\" from a particular \"where\" entity with a signature."},"staticDelegateCall(address,bytes)":{"notice":"Make a delegatecall from this contract to a given target contract with a particular data (always reverts with a return data)."}},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/contracts/hints/OptInServiceHints.sol":"OptInServiceHints"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts/contracts/interfaces/IERC1271.sol":{"keccak256":"0x85a45f3f10014a0f8be41157a32b6a5f905753ea64a4b64e29fc12b7deeecf39","urls":["bzz-raw://c3c74009ce36136b36c77c23935b8e4a7b4f253be2da2be4fb4a916b1ce43743","dweb:/ipfs/QmcH36v3iN7SJJuF73AunLR2LtNxhVJ1wm63ph4dPZ4pcL"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC5267.sol":{"keccak256":"0x92aa1df62dc3d33f1656d63bede0923e0df0b706ad4137c8b10b0a8fe549fd92","urls":["bzz-raw://c5c0f29195ad64cbe556da8e257dac8f05f78c53f90323c0d2accf8e6922d33a","dweb:/ipfs/QmQ61TED8uaCZwcbh8KkgRSsCav7x7HbcGHwHts3U4DmUP"],"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/ShortStrings.sol":{"keccak256":"0x18a7171df639a934592915a520ecb97c5bbc9675a1105607aac8a94e72bf62c6","urls":["bzz-raw://7478e1f13da69a2867ccd883001d836b75620362e743f196376d63ed0c422a1c","dweb:/ipfs/QmWywcQ9TNfwtoqAxbn25d8C5VrV12PrPS9UjtGe6pL2BA"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol":{"keccak256":"0x32ba59b4b7299237c8ba56319110989d7978a039faf754793064e967e5894418","urls":["bzz-raw://1ae50c8b562427df610cc4540c9bf104acca7ef8e2dcae567ae7e52272281e9c","dweb:/ipfs/QmTHiadFCSJUPpRjNegc5SahmeU8bAoY8i9Aq6tVscbcKR"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0x55f102ea785d8399c0e58d1108e2d289506dde18abc6db1b7f68c1f9f9bc5792","urls":["bzz-raw://6e52e0a7765c943ef14e5bcf11e46e6139fa044be564881378349236bf2e3453","dweb:/ipfs/QmZEeeXoFPW47amyP35gfzomF9DixqqTEPwzBakv6cZw6i"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol":{"keccak256":"0xeed0a08b0b091f528356cbc7245891a4c748682d4f6a18055e8e6ca77d12a6cf","urls":["bzz-raw://ba80ba06c8e6be852847e4c5f4492cef801feb6558ae09ed705ff2e04ea8b13c","dweb:/ipfs/QmXRJDv3xHLVQCVXg1ZvR35QS9sij5y9NDWYzMfUfAdTHF"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/EIP712.sol":{"keccak256":"0x999f705a027ed6dc2d4e0df2cc4a509852c6bfd11de1c8161bf88832d0503fd0","urls":["bzz-raw://0798def67258d9a3cc20b2b4da7ebf351a5cefe0abfdd665d2d81f8e32f89b21","dweb:/ipfs/QmPEvJosnPfzHNjKvCv2D3891mA2Ww8eUwkqrxBjuYdHCt"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol":{"keccak256":"0xba333517a3add42cd35fe877656fc3dfcc9de53baa4f3aabbd6d12a92e4ea435","urls":["bzz-raw://2ceacff44c0fdc81e48e0e0b1db87a2076d3c1fb497341de077bf1da9f6b406c","dweb:/ipfs/QmRUo1muMRAewxrKQ7TkXUtknyRoR57AyEkoPpiuZQ8FzX"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/SignatureChecker.sol":{"keccak256":"0x6b11eb41a228cca35d4b662b4df69fcd75192851365102690f57b2ac01e83fe6","urls":["bzz-raw://ab006a2983ed350d2af21ddcdd835dcae3b8340086cc4d088460da5abd041f69","dweb:/ipfs/QmbEacDhkJZiGrgzLjB4pNtE8Z1uudjDw1DvcDUTVQFsLG"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d","urls":["bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875","dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol":{"keccak256":"0xe19a4d5f31d2861e7344e8e535e2feafb913d806d3e2b5fe7782741a2a7094fe","urls":["bzz-raw://4aed79c0fa6f0546ed02f2f683e8f77f0fd2ed7eb34d8bbf3d373c9a6d95b13c","dweb:/ipfs/QmWqVz6UAVqmnWU5pqYPt1o6iDEZyPaBraAA3rKfTTSfYj"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0x5f7e4076e175393767754387c962926577f1660dd9b810187b9002407656be72","urls":["bzz-raw://7d533a1c97cd43a57cd9c465f7ee8dd0e39ae93a8fb8ff8e5303a356b081cdcc","dweb:/ipfs/QmVBEei6aTnvYNZp2CHYVNKyZS4q1KkjANfY39WVXZXVoT"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/Checkpoints.sol":{"keccak256":"0xbdc5e074d7dd6678f67e92b1a51a20226801a407b0e1af3da367c5d1ff4519ad","urls":["bzz-raw://a36cca6b22fff3db16fc789ff6c60eea71d4b156065d4d0c83a0bc5e91a77a8b","dweb:/ipfs/QmYN3exd5AemxjBrN8XMB1p5LbbE16uC3sjbYjwi8AjcGR"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/types/Time.sol":{"keccak256":"0xc7755af115020049e4140f224f9ee88d7e1799ffb0646f37bf0df24bf6213f58","urls":["bzz-raw://7f09bf94d5274334ec021f61a04659db303f31e60460e14b709c9bf187740111","dweb:/ipfs/QmNvgomZYUwFAt4cZbPWAiTeSZQreGehY9BK5xyVJsUttb"],"license":"MIT"},"src/contracts/common/StaticDelegateCallable.sol":{"keccak256":"0x350029aa8955eacaffffaeb58babc5c98e80ebc5c5db388ed17ee6465f4a9d90","urls":["bzz-raw://eb392a8ee9050e0af606897df63e3404e3829e8b688b580663892f9664195764","dweb:/ipfs/QmaXC8jqV8UrrAFkzXTEv2fJF56sy33HhLxAzaRZmUxuXD"],"license":"BUSL-1.1"},"src/contracts/hints/Hints.sol":{"keccak256":"0x8b565df1ae35993c097a9e642002782a8f451f6fd01809cad6bcd345bdf1b99c","urls":["bzz-raw://99a19adb01e350a92f534095b3078229df1f2f83077992d75d58d8684be45971","dweb:/ipfs/QmbmwcuswVbzvwHQFTtrJG86oV98GnfxqYTb8cV8u1acox"],"license":"BUSL-1.1"},"src/contracts/hints/OptInServiceHints.sol":{"keccak256":"0x95d9407900d27b9f4a1233b772aeed809c07b2dc5b31cfc9fa77ca26514c49e5","urls":["bzz-raw://a13a8877e312d7e6b8b85bde3668c5d84ff5ecc83f762cd573f2b7104c64eb42","dweb:/ipfs/QmYV2J55acuGzCNnS3juABuUHY5U1xc8g8o9jwEyFFdeG5"],"license":"BUSL-1.1"},"src/contracts/libraries/Checkpoints.sol":{"keccak256":"0xba90097c8bfe0a975499428b5f8ac5569483c7d92ccc28c12d70de416aae040c","urls":["bzz-raw://12f5d93ca94cd06d3147db68993165a58e17903ed53682560de61f3085ad4609","dweb:/ipfs/QmePiuAqvXprMLmFZkGZeGjvGPAvsEDHfCDv7BoQhXu9xE"],"license":"MIT"},"src/contracts/service/OptInService.sol":{"keccak256":"0x4e0932077f2686b7990e10d59deb2535334c0d09e52ef6e57c6ab09eca21c4b1","urls":["bzz-raw://7c00d311032ed4a1743aca7475f3c86ce15cdfc2218108efc3731c03d34a5278","dweb:/ipfs/QmUGGfVwVhaHr5kS4177yKKYiLYzi5qZpkEmvYxBZqazxf"],"license":"BUSL-1.1"},"src/interfaces/common/IRegistry.sol":{"keccak256":"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb","urls":["bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014","dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK"],"license":"MIT"},"src/interfaces/common/IStaticDelegateCallable.sol":{"keccak256":"0xa335d4e81b9071b7de66ef92b43ff20671d86516eb1be46fef29a3483cd3f5d5","urls":["bzz-raw://d464b9db863c14c05547d2b23352f2e9b7b784799cf09f6bbc4906a2a74e3516","dweb:/ipfs/QmUVWzFvJz7eEbDQKiFTTzwi7TEbjcs3VmwdM4kuptAKvi"],"license":"MIT"},"src/interfaces/service/IOptInService.sol":{"keccak256":"0x76fb5460a6d87a5705433d4fbeff7253cd75b8bbd0c888b2088f16e86ace146a","urls":["bzz-raw://990322019b3d11465f7024bae77ccbf7e2fe5d6fa3c754584778f37d04fa1337","dweb:/ipfs/QmaSNHzcqxTkUCG9a4nqVfLECHLdjdrwAnDi3yDC7tDL24"],"license":"MIT"}},"version":1},"id":88} \ No newline at end of file diff --git a/out/Slasher.sol/Slasher.json b/out/Slasher.sol/Slasher.json index f7722ead..f9a4a965 100644 --- a/out/Slasher.sol/Slasher.json +++ b/out/Slasher.sol/Slasher.json @@ -1 +1 @@ -{"abi":[{"type":"constructor","inputs":[{"name":"vaultFactory","type":"address","internalType":"address"},{"name":"networkMiddlewareService","type":"address","internalType":"address"},{"name":"slasherFactory","type":"address","internalType":"address"},{"name":"entityType","type":"uint64","internalType":"uint64"}],"stateMutability":"nonpayable"},{"type":"function","name":"BURNER_GAS_LIMIT","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"BURNER_RESERVE","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"FACTORY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"NETWORK_MIDDLEWARE_SERVICE","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"TYPE","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"VAULT_FACTORY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"cumulativeSlash","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"cumulativeSlashAt","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"timestamp","type":"uint48","internalType":"uint48"},{"name":"hint","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"initialize","inputs":[{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"isBurnerHook","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"latestSlashedCaptureTimestamp","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"value","type":"uint48","internalType":"uint48"}],"stateMutability":"view"},{"type":"function","name":"slash","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"captureTimestamp","type":"uint48","internalType":"uint48"},{"name":"hints","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"slashedAmount","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"slashableStake","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"captureTimestamp","type":"uint48","internalType":"uint48"},{"name":"hints","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"staticDelegateCall","inputs":[{"name":"target","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"vault","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"Slash","inputs":[{"name":"subnetwork","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"slashedAmount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"captureTimestamp","type":"uint48","indexed":false,"internalType":"uint48"}],"anonymous":false},{"type":"error","name":"CheckpointUnorderedInsertion","inputs":[]},{"type":"error","name":"InsufficientBurnerGas","inputs":[]},{"type":"error","name":"InsufficientSlash","inputs":[]},{"type":"error","name":"InvalidCaptureTimestamp","inputs":[]},{"type":"error","name":"InvalidInitialization","inputs":[]},{"type":"error","name":"NoBurner","inputs":[]},{"type":"error","name":"NotInitialized","inputs":[]},{"type":"error","name":"NotInitializing","inputs":[]},{"type":"error","name":"NotNetworkMiddleware","inputs":[]},{"type":"error","name":"NotVault","inputs":[]},{"type":"error","name":"ReentrancyGuardReentrantCall","inputs":[]},{"type":"error","name":"SafeCastOverflowedUintDowncast","inputs":[{"name":"bits","type":"uint8","internalType":"uint8"},{"name":"value","type":"uint256","internalType":"uint256"}]}],"bytecode":{"object":"0x6101003461015857601f611ecf38819003918201601f1916830192916001600160401b03918285118486101761015c5781608092859260409788528339810103126101585761004d82610170565b9061005a60208401610170565b926060610068868301610170565b910151918083168303610158577ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a009081549060ff82891c16610147578080831603610103575b50505060805260a05260c05260e05251611d4a908161018582396080518161044a015260a051818181610850015261119a015260c0518181816102fd01526114ca015260e0518181816101fc01526104060152f35b6001600160401b0319909116811790915585519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a15f80806100ae565b875163f92ee8a960e01b8152600490fd5b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b51906001600160a01b03821682036101585756fe60806040526004361015610011575f80fd5b5f3560e01c8063021a815614610104578063103f2907146100ff5780631a2be2c4146100fa578063267de1f3146100f55780632964f8dc146100f05780632c9d45b3146100eb5780632dd31000146100e657806334d098ea146100e1578063439fab91146100dc5780639f86fd85146100d7578063aa8e6489146100d2578063aab3595f146100cd578063bb24fe8a146100c8578063d5c24e1a146100c35763fbfa77cf146100be575f80fd5b610891565b610874565b610831565b61080c565b6107ce565b6105d5565b61049d565b610479565b610435565b6103f1565b6103d5565b610380565b61032c565b6102e8565b61015b565b6001600160a01b0381160361011a57565b5f80fd5b65ffffffffffff81160361011a57565b9181601f8401121561011a578235916001600160401b03831161011a576020838186019501011161011a57565b3461011a5760a036600319011261011a5760043560243561017b81610109565b6064356101878161011e565b6084356001600160401b03811161011a576101a690369060040161012e565b917f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0060028154146102cc5760029055604051635daf681960e11b8152606086901c60048201526001600160a01b036020826024817f000000000000000000000000000000000000000000000000000000000000000085165afa9182156102c7575f92610296575b50339116036102845761028094610247946044359161096a565b61027060017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055565b6040519081529081906020820190565b0390f35b60405163227bf64d60e01b8152600490fd5b6102b991925060203d6020116102c0575b6102b181836106f1565b810190610bba565b905f61022d565b503d6102a7565b61092e565b604051633ee5aeb560e01b8152600490fd5b5f91031261011a57565b3461011a575f36600319011261011a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461011a57604036600319011261011a57602061037861037360243561035181610109565b6004355f526002845260405f209060018060a01b03165f5260205260405f2090565b6113e9565b604051908152f35b3461011a57604036600319011261011a57602065ffffffffffff6103cb6024356103a981610109565b6004355f526001845260405f209060018060a01b03165f5260205260405f2090565b5416604051908152f35b3461011a575f36600319011261011a576020604051614e208152f35b3461011a575f36600319011261011a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461011a575f36600319011261011a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461011a575f36600319011261011a57602060ff5f5460a01c166040519015158152f35b3461011a57602036600319011261011a576001600160401b0360043581811161011a576104ce90369060040161012e565b5f80516020611cf5833981519152549260ff8460401c16159316801590816105cd575b60011490816105c3575b1590816105ba575b506105a8575f80516020611cf5833981519152805467ffffffffffffffff19166001179055610536918361058457611493565b61053c57005b5f80516020611cf5833981519152805460ff60401b19169055604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a1005b5f80516020611cf5833981519152805460ff60401b1916600160401b179055611493565b60405163f92ee8a960e01b8152600490fd5b9050155f610503565b303b1591506104fb565b8491506104f1565b3461011a5760408060031936011261011a576004356105f381610109565b602435906001600160401b03821161011a575f809161061961067d94369060040161012e565b908187519283928337810184815203915af43d156106855761066f3d61063e81610721565b9061064b865192836106f1565b81523d5f602083013e5b845194859315156020850152808401526060830190610b6a565b03601f1981018352826106f1565b805190602001fd5b61066f6060610655565b634e487b7160e01b5f52604160045260245ffd5b602081019081106001600160401b038211176106be57604052565b61068f565b604081019081106001600160401b038211176106be57604052565b6001600160401b0381116106be57604052565b90601f801991011681019081106001600160401b038211176106be57604052565b6040519061071f826106c3565b565b6001600160401b0381116106be57601f01601f191660200190565b81601f8201121561011a5780359061075382610721565b9261076160405194856106f1565b8284526020838301011161011a57815f926020809301838601378301015290565b90608060031983011261011a576004359160243561079f81610109565b916044356107ac8161011e565b91606435906001600160401b03821161011a576107cb9160040161073c565b90565b3461011a5760206103786108076107e436610782565b939190925f526002865260405f209060018060a01b03165f5260205260405f2090565b61162d565b3461011a57602061082861081f36610782565b92919091610cfa565b50604051908152f35b3461011a575f36600319011261011a5760206040516001600160401b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461011a575f36600319011261011a576020604051620249f08152f35b3461011a575f36600319011261011a575f546040516001600160a01b039091168152602090f35b604051906108c5826106a3565b60608252565b9060208282031261011a5781356001600160401b039283821161011a57019060208282031261011a5760405192610901846106a3565b823590811161011a57610914920161073c565b815290565b9081602091031261011a57516107cb8161011e565b6040513d5f823e3d90fd5b634e487b7160e01b5f52601160045260245ffd5b65ffffffffffff918216908216039190821161096557565b610939565b929395949190956109796108b8565b9280610b54575b505061098b42611705565b5f546004906020906109b3906109a7906001600160a01b031681565b6001600160a01b031690565b6040516327f843b560e11b815292839182905afa80156102c7576109ed926109e2925f92610b23575b5061094d565b65ffffffffffff1690565b65ffffffffffff8516908110908115610b0d575b50610afb57610a16610a1f9251858886610cfa565b92908092610f2a565b958615610ae957610aa461066f610a9b610ae4947fe0cbbe1f1e6fd806ca87036fafcebaf7ab5247474a3b20e1c37bb50122c3a88496610a608a878b610f3c565b610a6b8c878b610fca565b610a73610712565b9182526020820152604051928391602083019190916020806040830194805184520151910152565b86898488611136565b610aae858861123f565b610aba858883876112c4565b6040805188815265ffffffffffff90961660208701526001600160a01b0390911694918291820190565b0390a3565b60405163167f871760e31b8152600490fd5b604051631357ac9160e11b8152600490fd5b9050610b1b6109e242611705565b11155f610a01565b610b4691925060203d602011610b4d575b610b3e81836106f1565b810190610919565b905f6109dc565b503d610b34565b610b629293508101906108cb565b905f80610980565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b5f9081526002602090815260408083206001600160a01b039094168352929052206107cb92919061162d565b9081602091031261011a57516107cb81610109565b60405190610bdc826106c3565b60606020838281520152565b81601f8201121561011a57805190610bff82610721565b92610c0d60405194856106f1565b8284526020838301011161011a57815f9260208093018386015e8301015290565b9060208282031261011a5781516001600160401b039283821161011a57019060408282031261011a5760405192610c64846106c3565b825181811161011a5782610c79918501610be8565b8452602083015190811161011a57610c919201610be8565b602082015290565b9081602091031261011a575190565b9081526001600160a01b03909116602082015265ffffffffffff90911660408201526080606082018190526107cb92910190610b6a565b5f1981019190821161096557565b9190820391821161096557565b92610d03610bcf565b90805180610f10575b5050610d1742611705565b5f54909490610d30906109a7906001600160a01b031681565b93604051956327f843b560e11b875260209687816004818a5afa80156102c757610d64926109e2925f92610ef8575061094d565b65ffffffffffff8216908110908115610ee1575b8115610eb0575b50610ea4578560049560405196878092630ce9b79360e41b82525afa9485156102c757610dd19587915f91610e87575b50845190604051808099819463e02f693760e01b8352878b8a60048601610ca8565b03916001600160a01b03165afa9384156102c757610e43955f95610e46575b5092610e388593610e3e93610e3896869a610e2f61037383610e1a875f52600260205260405f2090565b9060018060a01b03165f5260205260405f2090565b95015192610b8e565b90610ced565b610f2a565b91565b610e3e929550610e38949193610e74610e38928a3d8c11610e80575b610e6c81836106f1565b810190610c99565b96935093919450610df0565b503d610e62565b610e9e9150823d84116102c0576102b181836106f1565b5f610daf565b5050505050505f905f90565b9050610eda6109e2610ece87610e1a875f52600160205260405f2090565b5465ffffffffffff1690565b115f610d7f565b9050610eef6109e242611705565b81101590610d78565b610b469192508a3d8c11610b4d57610b3e81836106f1565b610f239250602080918301019101610c2e565b5f80610d0c565b9080821015610f37575090565b905090565b919091805f52600160205265ffffffffffff80610f6c8560405f209060018060a01b03165f5260205260405f2090565b541690831611610f7b57505050565b61071f92610fa3915f52600160205260405f209060018060a01b03165f5260205260405f2090565b9065ffffffffffff1665ffffffffffff19825416179055565b906001820180921161096557565b9190825f526002602052611022610373610ff78360405f209060018060a01b03165f5260205260405f2090565b9261100142611705565b955f52600260205260405f209060018060a01b03165f5260205260405f2090565b9182018092116109655760018101908154156110c6575b61104281611961565b509490835495611051846113e9565b50816110b1575b50156110905750505f1983019283116109655761071f92611078916113c0565b90919082549060031b91821b915f19901b1916179055565b61071f946110aa926001600160d01b039091169190611a38565b5050611764565b65ffffffffffff83811691161490505f611058565b6110cf82611737565b611039565b606060206107cb938184526001600160401b03815116828501520151916040808201520190610b6a565b919360a0936107cb969565ffffffffffff938552600180871b0316602085015260408401521660608201528160808201520190610b6a565b929390600460206111536109a76109a75f5460018060a01b031690565b604051630ce9b79360e41b815292839182905afa9081156102c75761066f916111d1915f91611220575b506001600160a01b031693611190610712565b6001600160401b037f0000000000000000000000000000000000000000000000000000000000000000168152906020820152604051928391602083016110d4565b823b1561011a575f946111fc86926040519889978896879563724ab0f760e11b8752600487016110fe565b03925af180156102c75761120d5750565b8061121a61071f926106de565b806102de565b611239915060203d6020116102c0576102b181836106f1565b5f61117d565b5f8054604051631c9e38c760e21b8152600481019390935265ffffffffffff9390931660248301529091602091839160449183916001600160a01b03165af180156102c75761128b5750565b6112a39060203d602011610e8057610e6c81836106f1565b50565b81156112b0570490565b634e487b7160e01b5f52601260045260245ffd5b92905f549060ff8260a01c166112dc575b5050505050565b6040516313c085b760e11b815291602090839060049082906001600160a01b03165afa9182156102c7575f92611399575b5060405163065c1e0360e01b6020820190815260248201969096526001600160a01b039091166044820152606481019390935265ffffffffffff90911660848301526113668260a481015b03601f1981018452836106f1565b6202a15c5a10611387575f928380935192620249f0f1505f808080806112d5565b604051632153f33560e21b8152600490fd5b61136692506113b96113589160203d6020116102c0576102b181836106f1565b925061130d565b80548210156113d5575f5260205f2001905f90565b634e487b7160e01b5f52603260045260245ffd5b80548061141e57505f5b6001600160d01b0381161561141857600161140e92016113c0565b90549060031b1c90565b50505f90565b5f1990808281011161096557825f5260205f2001015460301c6113f3565b91909160408184031261011a57803561145481610109565b9260208201356001600160401b03811161011a576107cb920161073c565b5190811515820361011a57565b9081602091031261011a576107cb90611472565b61149f9181019061143c565b6040516302910f8b60e31b81526001600160a01b0392831660048201819052929160209182816024817f000000000000000000000000000000000000000000000000000000000000000088165afa9081156102c7575f916115cf575b50156115bd578161152f600492611510611787565b5f80546001600160a01b0319166001600160a01b0389161790556117bd565b94604051928380926313c085b760e11b82525afa9182156102c7575f926115a0575b5050161580611596575b611584575161071f9015155f805460ff60a01b191691151560a01b60ff60a01b16919091179055565b60405163d2420f5960e01b8152600490fd5b508051151561155b565b6115b69250803d106102c0576102b181836106f1565b5f80611551565b6040516362df054560e01b8152600490fd5b6115ef9150833d85116115f5575b6115e781836106f1565b81019061147f565b5f6114fb565b503d6115dd565b9081602091031261011a575163ffffffff8116810361011a5790565b90600163ffffffff8093160191821161096557565b918051156116fb5780602080611648935183010191016115fc565b9161165383826118d5565b92611664845165ffffffffffff1690565b9065ffffffffffff80851692168281146116ef578211918261169a575b5050611691576107cb9250611805565b50506020015190565b9091506116a78354610cdf565b63ffffffff8316149182156116c0575b50505f80611681565b6116e79192506116db6116d56109e292611618565b856118d5565b5165ffffffffffff1690565b115f806116b7565b50505050506020015190565b506107cb91611805565b65ffffffffffff90818111611718571690565b604490604051906306dfcc6560e41b8252603060048301526024820152fd5b8054600160401b8110156106be57611754916001820181556113c0565b8154905f199060031b1b19169055565b90815491600160401b8310156106be578261107891600161071f950181556113c0565b61178f6119b0565b6117976119b0565b60017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055565b5f6040516117ca816106a3565b5260208180518101031261011a576020906040516117e7816106a3565b6117ff6040519384936117f9856106a3565b01611472565b82525290565b908154905f82916005841161186f575b611820935084611c95565b8061184857505f905b6001600160d01b03821615611418576107cb91600161140e92016113c0565b61186261185761186992610cdf565b835f5260205f200190565b5460301c90565b90611829565b919261187a81611b57565b81039081116109655761182093855f5265ffffffffffff808360205f20015416908516105f146118ab575091611815565b9291506118b790610fbc565b90611815565b604051906118ca826106c3565b5f6020838281520152565b906118fe6118f861191f926118e86118bd565b506118f16118bd565b50846113c0565b5061193d565b91600165ffffffffffff845116936020828060d01b039101511691016113c0565b9054906040519261192f846106c3565b835260031b1c602082015290565b9060405161194a816106c3565b915465ffffffffffff8116835260301c6020830152565b8054806119725750505f905f905f90565b5f199080828101116109655761198f925f5260205f20010161193d565b9065ffffffffffff82511691602060018060d01b0391015116906001929190565b60ff5f80516020611cf58339815191525460401c16156119cc57565b604051631afcd79f60e31b8152600490fd5b8054600160401b8110156106be576119fb916001820181556113c0565b611a2557815160209092015160301b65ffffffffffff191665ffffffffffff909216919091179055565b634e487b7160e01b5f525f60045260245ffd5b805492939291908215611b2e57611a59611a5461185785610cdf565b61193d565b90611a6a825165ffffffffffff1690565b65ffffffffffff84811691168110611b1c57611ae0946020948892611a986109e2875165ffffffffffff1690565b03611ae45750611ad292611aae611ab992610cdf565b905f5260205f200190565b9065ffffffffffff82549181199060301b169116179055565b01516001600160d01b031690565b9190565b915050611b1791611b04611af6610712565b65ffffffffffff9093168352565b6001600160d01b038816828601526119de565b611ad2565b604051632520601d60e01b8152600490fd5b611b529250611b3e611af6610712565b6001600160d01b03851660208301526119de565b5f9190565b8015611c905780611c29611c22611c18611c0e611c04611bfa611bf0611be660016107cb9a5f908b60801c80611c84575b508060401c80611c77575b508060201c80611c6a575b508060101c80611c5d575b508060081c80611c50575b508060041c80611c43575b508060021c80611c36575b50821c611c2f575b811c1b611bdf818b6112a6565b0160011c90565b611bdf818a6112a6565b611bdf81896112a6565b611bdf81886112a6565b611bdf81876112a6565b611bdf81866112a6565b611bdf81856112a6565b80926112a6565b90610f2a565b8101611bd2565b600291509101905f611bca565b600491509101905f611bbf565b600891509101905f611bb4565b601091509101905f611ba9565b602091509101905f611b9e565b604091509101905f611b93565b9150506080905f611b88565b505f90565b91905b838210611ca55750505090565b9091928083169080841860011c820180921161096557845f5265ffffffffffff808360205f20015416908416105f14611ce25750925b9190611c98565b939250611cee90610fbc565b91611cdb56fef0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a26469706673582212201cb882c312b55bd78905b97324f1dbe4c6f9bc2ebd77cd8f2ad2c6521b0531d864736f6c63430008190033","sourceMap":"445:2048:93:-:0;;;;;;;;;;;;;-1:-1:-1;;445:2048:93;;;;;-1:-1:-1;;;;;445:2048:93;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;8837:64:25;445:2048:93;;;;;;;;;7896:76:25;;445:2048:93;;;;7985:34:25;7981:146;;-1:-1:-1;525:17:69;;;445:2048:93;525:17:69;552:12;;2353:28:92;;2391:53;;445:2048:93;;;;;;;;;;;;;552:12:69;445:2048:93;;;;;;;;;;2353:28:92;445:2048:93;;;;;;;;;;2391:53:92;445:2048:93;;;;;;;;;;;7981:146:25;-1:-1:-1;;;;;;445:2048:93;;;;;;;;;;;;;8087:29:25;;445:2048:93;;8087:29:25;7981:146;;;;;7896:76;445:2048:93;;-1:-1:-1;;;7938:23:25;;;;;445:2048:93;-1:-1:-1;445:2048:93;;;;;;-1:-1:-1;445:2048:93;;;;;-1:-1:-1;445:2048:93;;;;-1:-1:-1;;;;;445:2048:93;;;;;;:::o","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361015610011575f80fd5b5f3560e01c8063021a815614610104578063103f2907146100ff5780631a2be2c4146100fa578063267de1f3146100f55780632964f8dc146100f05780632c9d45b3146100eb5780632dd31000146100e657806334d098ea146100e1578063439fab91146100dc5780639f86fd85146100d7578063aa8e6489146100d2578063aab3595f146100cd578063bb24fe8a146100c8578063d5c24e1a146100c35763fbfa77cf146100be575f80fd5b610891565b610874565b610831565b61080c565b6107ce565b6105d5565b61049d565b610479565b610435565b6103f1565b6103d5565b610380565b61032c565b6102e8565b61015b565b6001600160a01b0381160361011a57565b5f80fd5b65ffffffffffff81160361011a57565b9181601f8401121561011a578235916001600160401b03831161011a576020838186019501011161011a57565b3461011a5760a036600319011261011a5760043560243561017b81610109565b6064356101878161011e565b6084356001600160401b03811161011a576101a690369060040161012e565b917f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0060028154146102cc5760029055604051635daf681960e11b8152606086901c60048201526001600160a01b036020826024817f000000000000000000000000000000000000000000000000000000000000000085165afa9182156102c7575f92610296575b50339116036102845761028094610247946044359161096a565b61027060017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055565b6040519081529081906020820190565b0390f35b60405163227bf64d60e01b8152600490fd5b6102b991925060203d6020116102c0575b6102b181836106f1565b810190610bba565b905f61022d565b503d6102a7565b61092e565b604051633ee5aeb560e01b8152600490fd5b5f91031261011a57565b3461011a575f36600319011261011a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461011a57604036600319011261011a57602061037861037360243561035181610109565b6004355f526002845260405f209060018060a01b03165f5260205260405f2090565b6113e9565b604051908152f35b3461011a57604036600319011261011a57602065ffffffffffff6103cb6024356103a981610109565b6004355f526001845260405f209060018060a01b03165f5260205260405f2090565b5416604051908152f35b3461011a575f36600319011261011a576020604051614e208152f35b3461011a575f36600319011261011a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461011a575f36600319011261011a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461011a575f36600319011261011a57602060ff5f5460a01c166040519015158152f35b3461011a57602036600319011261011a576001600160401b0360043581811161011a576104ce90369060040161012e565b5f80516020611cf5833981519152549260ff8460401c16159316801590816105cd575b60011490816105c3575b1590816105ba575b506105a8575f80516020611cf5833981519152805467ffffffffffffffff19166001179055610536918361058457611493565b61053c57005b5f80516020611cf5833981519152805460ff60401b19169055604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a1005b5f80516020611cf5833981519152805460ff60401b1916600160401b179055611493565b60405163f92ee8a960e01b8152600490fd5b9050155f610503565b303b1591506104fb565b8491506104f1565b3461011a5760408060031936011261011a576004356105f381610109565b602435906001600160401b03821161011a575f809161061961067d94369060040161012e565b908187519283928337810184815203915af43d156106855761066f3d61063e81610721565b9061064b865192836106f1565b81523d5f602083013e5b845194859315156020850152808401526060830190610b6a565b03601f1981018352826106f1565b805190602001fd5b61066f6060610655565b634e487b7160e01b5f52604160045260245ffd5b602081019081106001600160401b038211176106be57604052565b61068f565b604081019081106001600160401b038211176106be57604052565b6001600160401b0381116106be57604052565b90601f801991011681019081106001600160401b038211176106be57604052565b6040519061071f826106c3565b565b6001600160401b0381116106be57601f01601f191660200190565b81601f8201121561011a5780359061075382610721565b9261076160405194856106f1565b8284526020838301011161011a57815f926020809301838601378301015290565b90608060031983011261011a576004359160243561079f81610109565b916044356107ac8161011e565b91606435906001600160401b03821161011a576107cb9160040161073c565b90565b3461011a5760206103786108076107e436610782565b939190925f526002865260405f209060018060a01b03165f5260205260405f2090565b61162d565b3461011a57602061082861081f36610782565b92919091610cfa565b50604051908152f35b3461011a575f36600319011261011a5760206040516001600160401b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461011a575f36600319011261011a576020604051620249f08152f35b3461011a575f36600319011261011a575f546040516001600160a01b039091168152602090f35b604051906108c5826106a3565b60608252565b9060208282031261011a5781356001600160401b039283821161011a57019060208282031261011a5760405192610901846106a3565b823590811161011a57610914920161073c565b815290565b9081602091031261011a57516107cb8161011e565b6040513d5f823e3d90fd5b634e487b7160e01b5f52601160045260245ffd5b65ffffffffffff918216908216039190821161096557565b610939565b929395949190956109796108b8565b9280610b54575b505061098b42611705565b5f546004906020906109b3906109a7906001600160a01b031681565b6001600160a01b031690565b6040516327f843b560e11b815292839182905afa80156102c7576109ed926109e2925f92610b23575b5061094d565b65ffffffffffff1690565b65ffffffffffff8516908110908115610b0d575b50610afb57610a16610a1f9251858886610cfa565b92908092610f2a565b958615610ae957610aa461066f610a9b610ae4947fe0cbbe1f1e6fd806ca87036fafcebaf7ab5247474a3b20e1c37bb50122c3a88496610a608a878b610f3c565b610a6b8c878b610fca565b610a73610712565b9182526020820152604051928391602083019190916020806040830194805184520151910152565b86898488611136565b610aae858861123f565b610aba858883876112c4565b6040805188815265ffffffffffff90961660208701526001600160a01b0390911694918291820190565b0390a3565b60405163167f871760e31b8152600490fd5b604051631357ac9160e11b8152600490fd5b9050610b1b6109e242611705565b11155f610a01565b610b4691925060203d602011610b4d575b610b3e81836106f1565b810190610919565b905f6109dc565b503d610b34565b610b629293508101906108cb565b905f80610980565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b5f9081526002602090815260408083206001600160a01b039094168352929052206107cb92919061162d565b9081602091031261011a57516107cb81610109565b60405190610bdc826106c3565b60606020838281520152565b81601f8201121561011a57805190610bff82610721565b92610c0d60405194856106f1565b8284526020838301011161011a57815f9260208093018386015e8301015290565b9060208282031261011a5781516001600160401b039283821161011a57019060408282031261011a5760405192610c64846106c3565b825181811161011a5782610c79918501610be8565b8452602083015190811161011a57610c919201610be8565b602082015290565b9081602091031261011a575190565b9081526001600160a01b03909116602082015265ffffffffffff90911660408201526080606082018190526107cb92910190610b6a565b5f1981019190821161096557565b9190820391821161096557565b92610d03610bcf565b90805180610f10575b5050610d1742611705565b5f54909490610d30906109a7906001600160a01b031681565b93604051956327f843b560e11b875260209687816004818a5afa80156102c757610d64926109e2925f92610ef8575061094d565b65ffffffffffff8216908110908115610ee1575b8115610eb0575b50610ea4578560049560405196878092630ce9b79360e41b82525afa9485156102c757610dd19587915f91610e87575b50845190604051808099819463e02f693760e01b8352878b8a60048601610ca8565b03916001600160a01b03165afa9384156102c757610e43955f95610e46575b5092610e388593610e3e93610e3896869a610e2f61037383610e1a875f52600260205260405f2090565b9060018060a01b03165f5260205260405f2090565b95015192610b8e565b90610ced565b610f2a565b91565b610e3e929550610e38949193610e74610e38928a3d8c11610e80575b610e6c81836106f1565b810190610c99565b96935093919450610df0565b503d610e62565b610e9e9150823d84116102c0576102b181836106f1565b5f610daf565b5050505050505f905f90565b9050610eda6109e2610ece87610e1a875f52600160205260405f2090565b5465ffffffffffff1690565b115f610d7f565b9050610eef6109e242611705565b81101590610d78565b610b469192508a3d8c11610b4d57610b3e81836106f1565b610f239250602080918301019101610c2e565b5f80610d0c565b9080821015610f37575090565b905090565b919091805f52600160205265ffffffffffff80610f6c8560405f209060018060a01b03165f5260205260405f2090565b541690831611610f7b57505050565b61071f92610fa3915f52600160205260405f209060018060a01b03165f5260205260405f2090565b9065ffffffffffff1665ffffffffffff19825416179055565b906001820180921161096557565b9190825f526002602052611022610373610ff78360405f209060018060a01b03165f5260205260405f2090565b9261100142611705565b955f52600260205260405f209060018060a01b03165f5260205260405f2090565b9182018092116109655760018101908154156110c6575b61104281611961565b509490835495611051846113e9565b50816110b1575b50156110905750505f1983019283116109655761071f92611078916113c0565b90919082549060031b91821b915f19901b1916179055565b61071f946110aa926001600160d01b039091169190611a38565b5050611764565b65ffffffffffff83811691161490505f611058565b6110cf82611737565b611039565b606060206107cb938184526001600160401b03815116828501520151916040808201520190610b6a565b919360a0936107cb969565ffffffffffff938552600180871b0316602085015260408401521660608201528160808201520190610b6a565b929390600460206111536109a76109a75f5460018060a01b031690565b604051630ce9b79360e41b815292839182905afa9081156102c75761066f916111d1915f91611220575b506001600160a01b031693611190610712565b6001600160401b037f0000000000000000000000000000000000000000000000000000000000000000168152906020820152604051928391602083016110d4565b823b1561011a575f946111fc86926040519889978896879563724ab0f760e11b8752600487016110fe565b03925af180156102c75761120d5750565b8061121a61071f926106de565b806102de565b611239915060203d6020116102c0576102b181836106f1565b5f61117d565b5f8054604051631c9e38c760e21b8152600481019390935265ffffffffffff9390931660248301529091602091839160449183916001600160a01b03165af180156102c75761128b5750565b6112a39060203d602011610e8057610e6c81836106f1565b50565b81156112b0570490565b634e487b7160e01b5f52601260045260245ffd5b92905f549060ff8260a01c166112dc575b5050505050565b6040516313c085b760e11b815291602090839060049082906001600160a01b03165afa9182156102c7575f92611399575b5060405163065c1e0360e01b6020820190815260248201969096526001600160a01b039091166044820152606481019390935265ffffffffffff90911660848301526113668260a481015b03601f1981018452836106f1565b6202a15c5a10611387575f928380935192620249f0f1505f808080806112d5565b604051632153f33560e21b8152600490fd5b61136692506113b96113589160203d6020116102c0576102b181836106f1565b925061130d565b80548210156113d5575f5260205f2001905f90565b634e487b7160e01b5f52603260045260245ffd5b80548061141e57505f5b6001600160d01b0381161561141857600161140e92016113c0565b90549060031b1c90565b50505f90565b5f1990808281011161096557825f5260205f2001015460301c6113f3565b91909160408184031261011a57803561145481610109565b9260208201356001600160401b03811161011a576107cb920161073c565b5190811515820361011a57565b9081602091031261011a576107cb90611472565b61149f9181019061143c565b6040516302910f8b60e31b81526001600160a01b0392831660048201819052929160209182816024817f000000000000000000000000000000000000000000000000000000000000000088165afa9081156102c7575f916115cf575b50156115bd578161152f600492611510611787565b5f80546001600160a01b0319166001600160a01b0389161790556117bd565b94604051928380926313c085b760e11b82525afa9182156102c7575f926115a0575b5050161580611596575b611584575161071f9015155f805460ff60a01b191691151560a01b60ff60a01b16919091179055565b60405163d2420f5960e01b8152600490fd5b508051151561155b565b6115b69250803d106102c0576102b181836106f1565b5f80611551565b6040516362df054560e01b8152600490fd5b6115ef9150833d85116115f5575b6115e781836106f1565b81019061147f565b5f6114fb565b503d6115dd565b9081602091031261011a575163ffffffff8116810361011a5790565b90600163ffffffff8093160191821161096557565b918051156116fb5780602080611648935183010191016115fc565b9161165383826118d5565b92611664845165ffffffffffff1690565b9065ffffffffffff80851692168281146116ef578211918261169a575b5050611691576107cb9250611805565b50506020015190565b9091506116a78354610cdf565b63ffffffff8316149182156116c0575b50505f80611681565b6116e79192506116db6116d56109e292611618565b856118d5565b5165ffffffffffff1690565b115f806116b7565b50505050506020015190565b506107cb91611805565b65ffffffffffff90818111611718571690565b604490604051906306dfcc6560e41b8252603060048301526024820152fd5b8054600160401b8110156106be57611754916001820181556113c0565b8154905f199060031b1b19169055565b90815491600160401b8310156106be578261107891600161071f950181556113c0565b61178f6119b0565b6117976119b0565b60017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055565b5f6040516117ca816106a3565b5260208180518101031261011a576020906040516117e7816106a3565b6117ff6040519384936117f9856106a3565b01611472565b82525290565b908154905f82916005841161186f575b611820935084611c95565b8061184857505f905b6001600160d01b03821615611418576107cb91600161140e92016113c0565b61186261185761186992610cdf565b835f5260205f200190565b5460301c90565b90611829565b919261187a81611b57565b81039081116109655761182093855f5265ffffffffffff808360205f20015416908516105f146118ab575091611815565b9291506118b790610fbc565b90611815565b604051906118ca826106c3565b5f6020838281520152565b906118fe6118f861191f926118e86118bd565b506118f16118bd565b50846113c0565b5061193d565b91600165ffffffffffff845116936020828060d01b039101511691016113c0565b9054906040519261192f846106c3565b835260031b1c602082015290565b9060405161194a816106c3565b915465ffffffffffff8116835260301c6020830152565b8054806119725750505f905f905f90565b5f199080828101116109655761198f925f5260205f20010161193d565b9065ffffffffffff82511691602060018060d01b0391015116906001929190565b60ff5f80516020611cf58339815191525460401c16156119cc57565b604051631afcd79f60e31b8152600490fd5b8054600160401b8110156106be576119fb916001820181556113c0565b611a2557815160209092015160301b65ffffffffffff191665ffffffffffff909216919091179055565b634e487b7160e01b5f525f60045260245ffd5b805492939291908215611b2e57611a59611a5461185785610cdf565b61193d565b90611a6a825165ffffffffffff1690565b65ffffffffffff84811691168110611b1c57611ae0946020948892611a986109e2875165ffffffffffff1690565b03611ae45750611ad292611aae611ab992610cdf565b905f5260205f200190565b9065ffffffffffff82549181199060301b169116179055565b01516001600160d01b031690565b9190565b915050611b1791611b04611af6610712565b65ffffffffffff9093168352565b6001600160d01b038816828601526119de565b611ad2565b604051632520601d60e01b8152600490fd5b611b529250611b3e611af6610712565b6001600160d01b03851660208301526119de565b5f9190565b8015611c905780611c29611c22611c18611c0e611c04611bfa611bf0611be660016107cb9a5f908b60801c80611c84575b508060401c80611c77575b508060201c80611c6a575b508060101c80611c5d575b508060081c80611c50575b508060041c80611c43575b508060021c80611c36575b50821c611c2f575b811c1b611bdf818b6112a6565b0160011c90565b611bdf818a6112a6565b611bdf81896112a6565b611bdf81886112a6565b611bdf81876112a6565b611bdf81866112a6565b611bdf81856112a6565b80926112a6565b90610f2a565b8101611bd2565b600291509101905f611bca565b600491509101905f611bbf565b600891509101905f611bb4565b601091509101905f611ba9565b602091509101905f611b9e565b604091509101905f611b93565b9150506080905f611b88565b505f90565b91905b838210611ca55750505090565b9091928083169080841860011c820180921161096557845f5265ffffffffffff808360205f20015416908416105f14611ce25750925b9190611c98565b939250611cee90610fbc565b91611cdb56fef0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a26469706673582212201cb882c312b55bd78905b97324f1dbe4c6f9bc2ebd77cd8f2ad2c6521b0531d864736f6c63430008190033","sourceMap":"445:2048:93:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;-1:-1:-1;;;;;445:2048:93;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;445:2048:93;;;;;;;;;;;;;;;:::o;:::-;;;;;;-1:-1:-1;;445:2048:93;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;-1:-1:-1;;;;;445:2048:93;;;;;;;;;;;:::i;:::-;2355:73:28;;1847:1;445:2048:93;;3526:20:28;3522:88;;1847:1;;;445:2048:93;;-1:-1:-1;;;4546:86:92;;467:2:88;445:2048:93;;;;4546:86:92;;445:2048:93;-1:-1:-1;;;;;4546:86:92;445:2048:93;;;4572:26:92;445:2048:93;;4546:86:92;;;;;;;-1:-1:-1;4546:86:92;;;445:2048:93;4636:10:92;;445:2048:93;;4546:100:92;4542:160;;445:2048:93;;774:1493;445:2048;;;774:1493;;:::i;:::-;3282:1:28;1805;2355:73;1847:1;3716:283;3282:1;445:2048:93;;;;;;;;;;;;;;;;;4542:160:92;445:2048:93;;-1:-1:-1;;;4669:22:92;;445:2048:93;;4669:22:92;4546:86;;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;;:::i;3522:88:28:-;445:2048:93;;-1:-1:-1;;;3569:30:28;;445:2048:93;;3569:30:28;445:2048:93;;;;;;;:::o;:::-;;;;;;-1:-1:-1;;445:2048:93;;;;;;1435:38:92;-1:-1:-1;;;;;445:2048:93;;;;;;;;;;;;-1:-1:-1;;445:2048:93;;;;;2936:47:92;:38;445:2048:93;;;;;:::i;:::-;;;-1:-1:-1;445:2048:93;2936:16:92;445:2048:93;;;-1:-1:-1;445:2048:93;;;;;;;;;;;;;;;;;2936:38:92;:47;:::i;:::-;445:2048:93;;;;;;;;;;;;-1:-1:-1;;445:2048:93;;;;;;1788:109:92;445:2048:93;;;;;:::i;:::-;;;-1:-1:-1;445:2048:93;1788:109:92;445:2048:93;;;-1:-1:-1;445:2048:93;;;;;;;;;;;;;;;;;1788:109:92;445:2048:93;;;;;;;;;;;;;;-1:-1:-1;;445:2048:93;;;;;;;1374:6:92;445:2048:93;;;;;;;;;-1:-1:-1;;445:2048:93;;;;;;1528:51:92;-1:-1:-1;;;;;445:2048:93;;;;;;;;;;;;-1:-1:-1;;445:2048:93;;;;;;322:32:69;-1:-1:-1;;;;;445:2048:93;;;;;;;;;;;;-1:-1:-1;;445:2048:93;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;445:2048:93;;;;-1:-1:-1;;;;;445:2048:93;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;445:2048:93;;;;;;;4301:16:25;445:2048:93;;4726:16:25;;:34;;;;445:2048:93;4805:1:25;4790:16;:50;;;;445:2048:93;4855:13:25;:30;;;;445:2048:93;4851:91:25;;;-1:-1:-1;;;;;;;;;;;445:2048:93;;-1:-1:-1;;445:2048:93;;;;;718:4:69;;4951:18:25;4979:67;;718:4:69;:::i;:::-;5066:101:25;;445:2048:93;5066:101:25;-1:-1:-1;;;;;;;;;;;445:2048:93;;-1:-1:-1;;;;445:2048:93;;;;;-1:-1:-1;445:2048:93;;5142:14:25;;445:2048:93;;5142:14:25;445:2048:93;4979:67:25;-1:-1:-1;;;;;;;;;;;445:2048:93;;-1:-1:-1;;;;445:2048:93;-1:-1:-1;;;445:2048:93;;;718:4:69;:::i;4851:91:25:-;445:2048:93;;-1:-1:-1;;;4908:23:25;;445:2048:93;;4908:23:25;4855:30;4872:13;;;4855:30;;;4790:50;4818:4;4810:25;:30;;-1:-1:-1;4790:50:25;;4726:34;;;-1:-1:-1;4726:34:25;;445:2048:93;;;;;;;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;445:2048:93;;;;-1:-1:-1;445:2048:93;;;477:31:75;445:2048:93;;;;;;:::i;:::-;;;;;;;;;;;;;;;416:25:75;;;;445:2048:93;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;-1:-1:-1;445:2048:93;;;;;;;;;;;;;477:31:75;;445:2048:93;;;;;;;;;;:::i;:::-;477:31:75;;;;;;;;;:::i;:::-;518:79;;;445:2048:93;518:79:75;;445:2048:93;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;445:2048:93;;;;;;;:::o;:::-;;:::i;:::-;;;;;;;-1:-1:-1;;;;;445:2048:93;;;;;;;:::o;:::-;-1:-1:-1;;;;;445:2048:93;;;;;;:::o;:::-;;;477:31:75;;445:2048:93;;;;;;;;-1:-1:-1;;;;;445:2048:93;;;;;;;:::o;:::-;;;;;;;:::i;:::-;:::o;:::-;-1:-1:-1;;;;;445:2048:93;;;;;;-1:-1:-1;;445:2048:93;;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;445:2048:93;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;445:2048:93;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;-1:-1:-1;;;;;445:2048:93;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;2692:73:92;:38;445:2048:93;;;:::i;:::-;;;;;-1:-1:-1;445:2048:93;2692:16:92;445:2048:93;;;-1:-1:-1;445:2048:93;;;;;;;;;;;;;;;;;2692:38:92;:73;:::i;445:2048:93:-;;;;;3248:62:92;445:2048:93;;;:::i;:::-;3248:62:92;;;;;:::i;:::-;445:2048:93;;;;;;;;;;;;;-1:-1:-1;;445:2048:93;;;;;;;-1:-1:-1;;;;;404:28:69;445:2048:93;;;;;;;;;;-1:-1:-1;;445:2048:93;;;;;;;1271:7:92;445:2048:93;;;;;;;;;-1:-1:-1;;445:2048:93;;;;;;;;-1:-1:-1;;;;;445:2048:93;;;;;;;;;;;;;;;:::i;:::-;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;;;;445:2048:93;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;;;;:::o;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;:::i;774:1493::-;;;;;;;;445:2048;;:::i;:::-;1076:16;;1072:91;;774:1493;837:15:62;;819:34;837:15;819:34;:::i;:::-;-1:-1:-1;445:2048:93;1215:29;;;;:27;;:13;;-1:-1:-1;;;;;445:2048:93;1215:13;445:2048;;-1:-1:-1;;;;;445:2048:93;;;1215:27;445:2048;;-1:-1:-1;;;1215:29:93;;445:2048;;;;;1215:29;;;;;;1177:67;1215:29;1196:48;1215:29;-1:-1:-1;1215:29:93;;;774:1493;1196:48;;:::i;:::-;445:2048;;;;1177:67;445:2048;;;1177:67;;;:107;;;;;774:1493;1173:178;;;1418:87;1531:33;1474:30;;1418:87;;;;:::i;:::-;1531:33;;;;;:::i;:::-;1578:18;;;1574:75;;1950:87;;;2200:60;1718:16;2200:60;1718:16;;;;;;:::i;:::-;1791:13;;;;;:::i;:::-;445:2048;;:::i;:::-;;;;1215:29;1961:75;;445:2048;;;1950:87;;;1215:29;1950:87;;445:2048;;;;;;;;;;;;;;;;;;;1950:87;;;;;;:::i;:::-;2087:16;;;;:::i;:::-;2167;;;;;;:::i;:::-;445:2048;;;;;;;;;;;;;;-1:-1:-1;;;;;445:2048:93;;;;;;;;;;;2200:60;;;;774:1493::o;1574:75::-;445:2048;;-1:-1:-1;;;1619:19:93;;1215:29;;1619:19;1173:178;445:2048;;-1:-1:-1;;;1315:25:93;;1215:29;;1315:25;1177:107;837:15:62;;1248:36:93;819:34:62;837:15;819:34;:::i;1248:36:93:-;-1:-1:-1;1248:36:93;1177:107;;;1215:29;;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;1072:91;1121:31;;;;;;;;:::i;:::-;1072:91;;;;;445:2048;;;;;;;;;;;;;;;;;-1:-1:-1;445:2048:93;;;;;;;;-1:-1:-1;;445:2048:93;;;;:::o;2505:267:92:-;-1:-1:-1;445:2048:93;;;2692:16:92;445:2048:93;;;;;;;;-1:-1:-1;;;;;445:2048:93;;;;;;;;;2692:73:92;;2505:267;;2692:73;:::i;445:2048:93:-;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;445:2048:93;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;;;;445:2048:93;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;445:2048:93;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;445:2048:93;;;;;;;;:::o;:::-;;;;;;;;;;:::o;3323:1122:92:-;;445:2048:93;;:::i;:::-;;;;3608:16:92;3604:109;;3323:1122;837:15:62;;819:34;837:15;819:34;:::i;:::-;-1:-1:-1;445:2048:93;;;;3778:27:92;;:13;;-1:-1:-1;;;;;445:2048:93;3778:13:92;445:2048:93;3778:27:92;445:2048:93;;;;;;;3778:29:92;;;;;;;;;;;;;;;3740:67;3778:29;3759:48;3778:29;-1:-1:-1;3778:29:92;;;3759:48;;:::i;3740:67::-;445:2048:93;;;3740:67:92;;;:107;;;;;3323:1122;3740:197;;;;3323:1122;3723:263;;;445:2048:93;3778:29:92;445:2048:93;;;;;;;;;;4025:25:92;;;;;;;;;4010:143;4025:25;;;-1:-1:-1;4025:25:92;;;3323:1122;4113:30;;;445:2048:93;;;;;;;;;;;4010:143:92;;;;;3778:29;4010:143;;;:::i;:::-;;;-1:-1:-1;;;;;445:2048:93;4010:143:92;;;;;;;4181:257;4010:143;-1:-1:-1;4010:143:92;;;3323:1122;3996:157;;4293:102;3996:157;;4233:162;3996:157;4207:231;3996:157;;2936:28;:47;:38;:28;;;445:2048:93;;2936:16:92;445:2048:93;;;;;;;2936:28:92;445:2048:93;;;;;;;;;;;;;;;;2936:47:92;4351:43;;;4293:102;;:::i;:::-;4233:162;;:::i;:::-;4207:231;:::i;4181:257::-;3323:1122;:::o;4010:143::-;4233:162;4010:143;;;4207:231;4010:143;;;;4293:102;4010:143;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;;;;;4025:25;;;;;;;;;;;;;;:::i;:::-;;;;3723:263;3962:13;;;;;;-1:-1:-1;3962:13:92;-1:-1:-1;3962:13:92;:::o;3740:197::-;3886:41;;3867:70;3886:51;;:41;;;445:2048:93;;3886:29:92;445:2048:93;;;;;;;3886:51:92;445:2048:93;;;;;3867:70:92;-1:-1:-1;3740:197:92;;;:107;837:15:62;;3811:36:92;819:34:62;837:15;819:34;:::i;3811:36:92:-;;;;3740:107;;;3778:29;;;;;;;;;;;;;;;:::i;3604:109::-;3662:40;;;;;;;;;;;;:::i;:::-;3604:109;;;;2557:104:57;;2641:5;;;;;;:13;2557:104;:::o;2641:13::-;;;2557:104;:::o;4714:335:92:-;;;;445:2048:93;-1:-1:-1;445:2048:93;4876:29:92;445:2048:93;;;;4876:51:92;445:2048:93;;-1:-1:-1;445:2048:93;;;;;;;;;;;;;;;;;4876:51:92;445:2048:93;;;;;-1:-1:-1;4872:171:92;;4714:335;;;:::o;4872:171::-;4962:70;445:2048:93;4962:51:92;445:2048:93;-1:-1:-1;445:2048:93;4876:29:92;445:2048:93;;;-1:-1:-1;445:2048:93;;;;;;;;;;;;;;;;;4962:51:92;445:2048:93;;;;;;;;;;;;;;9856:1:60;445:2048:93;;;;;;;:::o;5055:221:92:-;;;445:2048:93;-1:-1:-1;445:2048:93;5160:16:92;445:2048:93;;2936:47:92;:38;5160;445:2048:93;;-1:-1:-1;445:2048:93;;;;;;;;;;;;;;;;;5160:38:92;837:15:62;819:34;837:15;819:34;:::i;:::-;445:2048:93;-1:-1:-1;445:2048:93;5160:16:92;445:2048:93;;;-1:-1:-1;445:2048:93;;;;;;;;;;;;;;;;;2936:47:92;445:2048:93;;;;;;;;6360:12:86;;;445:2048:93;;;6360:24:86;6356:75;;5055:221:92;6474:30:86;;;:::i;:::-;445:2048:93;;;;;6578:12:86;;;;:::i;:::-;;6604:24;;;5055:221:92;-1:-1:-1;6600:188:86;;;-1:-1:-1;;;;445:2048:93;;;;;;;6644:29:86;:21;;;;:::i;:::-;:29;445:2048:93;;;;;;;;;;;;;;;;;;;;;6600:188:86;6753:24;;8167:38:60;;-1:-1:-1;;;;;445:2048:93;;;;;8167:38:60;:::i;:::-;6753:24:86;;;:::i;6604:::-;445:2048:93;;;;;;6614:14:86;;-1:-1:-1;6604:24:86;;;6356:75;6400:20;;;:::i;:::-;6356:75;;445:2048:93;;;;;;;;-1:-1:-1;;;;;445:2048:93;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;5282:431:92:-;;;;5487:25;;:23;:13;445:2048:93;5494:5:92;445:2048:93;;;;;;;;;5487:23:92;445:2048:93;;-1:-1:-1;;;5487:25:92;;445:2048:93;;;;;5487:25:92;;;;;;;5631:65;5487:25;5631:65;5487:25;5494:5;5487:25;;;5282:431;-1:-1:-1;;;;;;445:2048:93;;;;:::i;:::-;-1:-1:-1;;;;;5677:4:92;445:2048:93;;;5677:4:92;5487:25;5642:53;;445:2048:93;;;5631:65:92;;;5487:25;5631:65;;;:::i;:::-;5472:234;;;;;5494:5;445:2048:93;5472:234:92;445:2048:93;;;;;;;;;;;;;;5472:234:92;;5487:25;5472:234;;;:::i;:::-;;;;;;;;;;;5282:431;:::o;5472:234::-;;;;;;:::i;:::-;;;:::i;5487:25::-;;;;;;;;;;;;;;:::i;:::-;;;;5719:137;5809:5;445:2048:93;;;;-1:-1:-1;;;5802:47:92;;;;;445:2048:93;;;;;;;;;;;;;;;5802:47:92;;445:2048:93;;;;;;-1:-1:-1;;;;;445:2048:93;5802:47:92;;;;;;;;5719:137;:::o;5802:47::-;;;;;;;;;;;;;:::i;:::-;;5719:137::o;445:2048:93:-;;;;;;;:::o;:::-;;;;;;;;;;;;5862:623:92;;;5988:12;445:2048:93;;;;;;;5984:495:92;;5862:623;;;;;;:::o;5984:495::-;445:2048:93;;-1:-1:-1;;;6033:22:92;;445:2048:93;6033:22:92;;445:2048:93;;6033:22:92;;445:2048:93;;-1:-1:-1;;;;;445:2048:93;6033:22:92;;;;;;;5988:12;6033:22;;;5984:495;-1:-1:-1;445:2048:93;;-1:-1:-1;;;6033:22:92;6094:81;;;;;;;;445:2048:93;;;;-1:-1:-1;;;;;445:2048:93;;;;;;;;;;;;;;;;;;;;;;6094:81:92;445:2048:93;;;;6094:81:92;;477:31:75;;6094:81:92;;;;;;:::i;:::-;445:2048:93;6194:9:92;:55;6190:124;;5988:12;6328:141;;;;;;1271:7;6328:141;;5984:495;;;;;;;6190:124;445:2048:93;;-1:-1:-1;;;6276:23:92;;6033:22;;6276:23;6033:22;6094:81;6033:22;;;6094:81;6033:22;;;;;;;;;;;:::i;:::-;;;;;445:2048:93;;;;;;;;-1:-1:-1;445:2048:93;;-1:-1:-1;445:2048:93;;;-1:-1:-1;445:2048:93;:::o;:::-;;;;;;;;;;;;10580:184:86;445:2048:93;;10303:8:60;;;:63;-1:-1:-1;10303:63:60;-1:-1:-1;;;;;445:2048:93;;10726:7:86;445:2048:93;;10736:12:86;:17;:12;;:17;:::i;:::-;445:2048:93;;;;;;10580:184:86;:::o;10726:31::-;;;-1:-1:-1;10580:184:86;:::o;10303:63:60:-;445:2048:93;;;;;;;;;;14249:109:60;-1:-1:-1;14249:109:60;;-1:-1:-1;14249:109:60;;;445:2048:93;;;10303:63:60;;445:2048:93;;;;;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;445:2048:93;;;;;;;;:::i;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;:::i;6491:564:92:-;6614:34;6491:564;6614:34;;;;:::i;:::-;445:2048:93;;-1:-1:-1;;;6664:41:92;;-1:-1:-1;;;;;445:2048:93;;;6664:41:92;;;445:2048:93;;;;;6664:41:92;;;445:2048:93;;;6674:13:92;445:2048:93;;6664:41:92;;;;;;;-1:-1:-1;6664:41:92;;;6491:564;6663:42;;6659:90;;2540:111:28;6850:27:92;6664:41;2540:111:28;;;:::i;:::-;-1:-1:-1;445:2048:93;;-1:-1:-1;;;;;;445:2048:93;-1:-1:-1;;;;;445:2048:93;;;;;6850:27:92;:::i;:::-;445:2048:93;;;;;;;;;;6892:23:92;;;;;;;;;-1:-1:-1;6892:23:92;;;6491:564;445:2048:93;;;6892:37:92;:64;;;6491:564;6888:112;;445:2048:93;7010:38:92;;445:2048:93;;-1:-1:-1;445:2048:93;;-1:-1:-1;;;;445:2048:93;;;;;;-1:-1:-1;;;445:2048:93;;;;;;;;6888:112:92;445:2048:93;;-1:-1:-1;;;6979:10:92;;6664:41;;6979:10;6892:64;-1:-1:-1;445:2048:93;;;;6892:64:92;;:23;;;;;;-1:-1:-1;6892:23:92;;;;;;:::i;:::-;;;;;6659:90;445:2048:93;;-1:-1:-1;;;6728:10:92;;6664:41;;6728:10;6664:41;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;445:2048:93;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;:::o;7558:604:86:-;;445:2048:93;;7686:17:86;7682:83;;445:2048:93;7789:27:86;445:2048:93;7789:27:86;445:2048:93;;7789:27:86;;;;;;:::i;:::-;7860:14;;;;;:::i;:::-;445:2048:93;;;;;;;;;;;;;;;;7888:22:86;;;7884:77;;7975:21;-1:-1:-1;7975:84:86;;;;7558:604;7971:139;;;;8127:28;;;;:::i;7971:139::-;8082:17;;7789:27;8082:17;445:2048:93;8075:24:86;:::o;7975:84::-;445:2048:93;;;8009:16:86;445:2048:93;;8009:16:86;:::i;:::-;445:2048:93;;;8001:24:86;:57;;;;;7975:84;;;;;;;8001:57;8029:29;8038:8;;;8029:18;8038:8;8029:23;8038:8;;:::i;:::-;8029:18;;:::i;:::-;445:2048:93;;;;;8029:29:86;;8001:57;;;;7884:77;7933:17;;;;;7789:27;7933:17;445:2048:93;7926:24:86;:::o;7682:83::-;7726:28;;;;:::i;14291:213:58:-;445:2048:93;14369:24:58;;;;14365:103;;445:2048:93;14291:213:58;:::o;14365:103::-;445:2048:93;;;;14416:41:58;;;;;;14447:2;14416:41;;;445:2048:93;;;;;14416:41:58;445:2048:93;;;-1:-1:-1;;;445:2048:93;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::o;:::-;;;;;-1:-1:-1;;;445:2048:93;;;;;;;;;;;;;;;:::i;6893:76:25:-;;;:::i;:::-;;;:::i;:::-;1805:1:28;2355:73;1847:1;6893:76:25:o;2273:218:93:-;-1:-1:-1;445:2048:93;;;;;:::i;:::-;;;;;;2419:30;;445:2048;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;2419:30;445:2048;:::i;:::-;;;;2273:218;:::o;6999:207:86:-;;445:2048:93;;9594:15:60;-1:-1:-1;9619:18:60;9652:7;9658:1;9652:7;;9648:234;;6999:207:86;9906:53:60;;;;;:::i;:::-;9977:8;;;:63;-1:-1:-1;9977:63:60;;-1:-1:-1;;;;;445:2048:93;;7168:7:86;445:2048:93;;;7178:12:86;;:17;:12;;:17;:::i;9977:63:60:-;9992:41;10025:7;9992:48;10025:7;;:::i;:::-;9992:41;14249:109;;;;;;14099:265;;9992:41;445:2048:93;;;;;9992:48:60;9977:63;;;9648:234;9695:14;;;;;:::i;:::-;445:2048:93;;;;;;;9906:53:60;14249:109;;-1:-1:-1;14249:109:60;445:2048:93;14249:109:60;;;-1:-1:-1;14249:109:60;;445:2048:93;;;;;9727:48:60;9723:149;445:2048:93;;;9795:10:60;9723:149;9648:234;;9723:149;9850:7;;;;;;:::i;:::-;9723:149;9648:234;;445:2048:93;;;;;;;:::i;:::-;-1:-1:-1;445:2048:93;;;;;;;:::o;11486:272:86:-;;445:2048:93;11308:22:60;11718:31:86;11486:272;445:2048:93;;:::i;:::-;;;;:::i;:::-;;11308:22:60;;:::i;:::-;445:2048:93;;:::i;:::-;;11718:12:86;445:2048:93;;;;;11731:17:86;445:2048:93;;;;;11731:17:86;;445:2048:93;;11718:12:86;;:31;:::i;:::-;445:2048:93;;;;;;;;;:::i;:::-;;;;;;11731:17:86;11672:79;;445:2048:93;11486:272:86;:::o;445:2048:93:-;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::o;10552:388:60:-;445:2048:93;;10728:8:60;;;10752:20;;10690:17;10752:20;10690:17;10752:20;10690:17;10752:20;:::o;10724:210::-;445:2048:93;;;;;;;;;;;14249:109:60;10690:17;14249:109;;10690:17;14249:109;;;445:2048:93;:::i;:::-;;;;;;;14249:109:60;445:2048:93;;;;;10911:11:60;;445:2048:93;;10886:37:60;10870:1;10886:37;;;:::o;7084:141:25:-;445:2048:93;-1:-1:-1;;;;;;;;;;;445:2048:93;;;;7150:18:25;7146:73;;7084:141::o;7146:73::-;445:2048:93;;-1:-1:-1;;;7191:17:25;;;;;445:2048:93;;;-1:-1:-1;;;445:2048:93;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;445:2048:93;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;11513:870:60;445:2048:93;;11513:870:60;;;445:2048:93;11513:870:60;11672:7;;;;445:2048:93;11775:28:60;11795:7;;;:::i;11775:28::-;445:2048:93;:::i;:::-;;;;;;;;;;;;;;;;11877:15:60;-1:-1:-1;11873:91:60;;445:2048:93;;12233:11:60;445:2048:93;;;12027:16:60;445:2048:93;;;;;;;12027:16:60;;;;12083:7;12063:43;12083:7;;12063:28;12083:7;;:::i;:::-;12063:28;14249:109;;;;;;14099:265;;12063:28;445:2048:93;;;;;;;;;;;;;;;;;12063:43:60;12233:11;445:2048:93;-1:-1:-1;;;;;445:2048:93;;;;12225:27:60;;:::o;12023:189::-;445:2048:93;;;12145:52:60;445:2048:93;12155:41:60;445:2048:93;;:::i;:::-;;;;;;;;12155:41:60;-1:-1:-1;;;;;445:2048:93;;12155:41:60;;;445:2048:93;12145:52:60;:::i;:::-;12023:189;;11873:91;445:2048:93;;-1:-1:-1;;;11919:30:60;;;;;11668:709;12283:52;445:2048:93;;12293:41:60;445:2048:93;;:::i;12293:41:60:-;-1:-1:-1;;;;;445:2048:93;;12293:41:60;;;445:2048:93;12145:52:60;:::i;12283:::-;11678:1;12349:17;;:::o;8587:1642:57:-;8658:6;;8654:45;;9401:7;10201:10;10142:26;10093;10044;9995;9946;9897;9848;445:2048:93;10189:23:57;9401:7;8663:1;445:2048:93;;;;10826:16:57;10822:99;;8587:1642;445:2048:93;;;;10938:15:57;10934:96;;8587:1642;445:2048:93;;;;11047:15:57;11043:96;;8587:1642;445:2048:93;;;;11156:15:57;11152:96;;8587:1642;445:2048:93;;;;11265:14:57;11261:93;;8587:1642;445:2048:93;;;;11371:14:57;11367:93;;8587:1642;445:2048:93;;;;11477:14:57;11473:93;;8587:1642;445:2048:93;;;11579:64:57;;8587:1642;445:2048:93;;;9858:10:57;;;;:::i;:::-;445:2048:93;;;;;9848:26:57;9907:10;;;;:::i;9897:26::-;9956:10;;;;:::i;9946:26::-;10005:10;;;;:::i;9995:26::-;10054:10;;;;:::i;10044:26::-;10103:10;;;;:::i;10093:26::-;10152:10;;;;:::i;10142:26::-;10201:10;;;:::i;:::-;10189:23;;:::i;11579:64::-;445:2048:93;;11579:64:57;;11473:93;445:2048:93;11511:11:57;;445:2048:93;;11473:93:57;;;;11367;445:2048:93;11405:11:57;;445:2048:93;;11367:93:57;;;;11261;445:2048:93;11299:11:57;;445:2048:93;;11261:93:57;;;;11152:96;445:2048:93;11191:12:57;;445:2048:93;;11152:96:57;;;;11043;445:2048:93;11082:12:57;;445:2048:93;;11043:96:57;;;;10934;445:2048:93;10973:12:57;;445:2048:93;;10934:96:57;;;;10822:99;10862:13;;;445:2048:93;10822:99:57;;;;8654:45;8680:8;8663:1;8680:8;:::o;12736:433:60:-;;;12919:10;;;;;;13151:11;;;12736:433;:::o;12912:230::-;2900:5:57;;;;;;2910;;;;445:2048:93;;;;;;;;;14249:109:60;-1:-1:-1;14249:109:60;445:2048:93;14249:109:60;;;-1:-1:-1;14249:109:60;;445:2048:93;;;;;-1:-1:-1;12996:136:60;445:2048:93;;;13055:10:60;12996:136;;12912:230;;;;12996:136;13110:7;;;;;;:::i;:::-;12996:136;;","linkReferences":{},"immutableReferences":{"57808":[{"start":1098,"length":32}],"57811":[{"start":2128,"length":32},{"start":4506,"length":32}],"65592":[{"start":765,"length":32},{"start":5322,"length":32}],"65595":[{"start":508,"length":32},{"start":1030,"length":32}]}},"methodIdentifiers":{"BURNER_GAS_LIMIT()":"d5c24e1a","BURNER_RESERVE()":"2964f8dc","FACTORY()":"2dd31000","NETWORK_MIDDLEWARE_SERVICE()":"2c9d45b3","TYPE()":"bb24fe8a","VAULT_FACTORY()":"103f2907","cumulativeSlash(bytes32,address)":"1a2be2c4","cumulativeSlashAt(bytes32,address,uint48,bytes)":"aa8e6489","initialize(bytes)":"439fab91","isBurnerHook()":"34d098ea","latestSlashedCaptureTimestamp(bytes32,address)":"267de1f3","slash(bytes32,address,uint256,uint48,bytes)":"021a8156","slashableStake(bytes32,address,uint48,bytes)":"aab3595f","staticDelegateCall(address,bytes)":"9f86fd85","vault()":"fbfa77cf"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"vaultFactory\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"networkMiddlewareService\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"slasherFactory\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"entityType\",\"type\":\"uint64\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"CheckpointUnorderedInsertion\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientBurnerGas\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientSlash\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidCaptureTimestamp\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NoBurner\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotNetworkMiddleware\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotVault\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ReentrancyGuardReentrantCall\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"bits\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"SafeCastOverflowedUintDowncast\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"slashedAmount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint48\",\"name\":\"captureTimestamp\",\"type\":\"uint48\"}],\"name\":\"Slash\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"BURNER_GAS_LIMIT\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"BURNER_RESERVE\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"FACTORY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"NETWORK_MIDDLEWARE_SERVICE\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"TYPE\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"VAULT_FACTORY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"cumulativeSlash\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hint\",\"type\":\"bytes\"}],\"name\":\"cumulativeSlashAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isBurnerHook\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"latestSlashedCaptureTimestamp\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"value\",\"type\":\"uint48\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint48\",\"name\":\"captureTimestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hints\",\"type\":\"bytes\"}],\"name\":\"slash\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"slashedAmount\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"captureTimestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hints\",\"type\":\"bytes\"}],\"name\":\"slashableStake\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"staticDelegateCall\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"vault\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"CheckpointUnorderedInsertion()\":[{\"details\":\"A value was attempted to be inserted on a past checkpoint.\"}],\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"ReentrancyGuardReentrantCall()\":[{\"details\":\"Unauthorized reentrant call.\"}],\"SafeCastOverflowedUintDowncast(uint8,uint256)\":[{\"details\":\"Value doesn't fit in an uint of `bits` size.\"}]},\"events\":{\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"Slash(bytes32,address,uint256,uint48)\":{\"params\":{\"captureTimestamp\":\"time point when the stake was captured\",\"operator\":\"operator that is slashed\",\"slashedAmount\":\"virtual amount of the collateral slashed\",\"subnetwork\":\"subnetwork that requested the slash\"}}},\"kind\":\"dev\",\"methods\":{\"cumulativeSlash(bytes32,address)\":{\"params\":{\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"},\"returns\":{\"_0\":\"cumulative slash amount\"}},\"cumulativeSlashAt(bytes32,address,uint48,bytes)\":{\"params\":{\"hint\":\"hint for the checkpoint index\",\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\",\"timestamp\":\"time point to get the cumulative slash amount until (inclusively)\"},\"returns\":{\"_0\":\"cumulative slash amount until the given timestamp (inclusively)\"}},\"initialize(bytes)\":{\"params\":{\"data\":\"some data to use\"}},\"slash(bytes32,address,uint256,uint48,bytes)\":{\"details\":\"Only a network middleware can call this function.\",\"params\":{\"amount\":\"maximum amount of the collateral to be slashed\",\"captureTimestamp\":\"time point when the stake was captured\",\"hints\":\"hints for checkpoints' indexes\",\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"},\"returns\":{\"slashedAmount\":\"virtual amount of the collateral slashed\"}},\"slashableStake(bytes32,address,uint48,bytes)\":{\"params\":{\"captureTimestamp\":\"time point to get the stake amount at\",\"hints\":\"hints for the checkpoints' indexes\",\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"},\"returns\":{\"amount\":\"slashable amount of the stake\"}},\"staticDelegateCall(address,bytes)\":{\"details\":\"It allows to use this contract's storage on-chain.\",\"params\":{\"data\":\"data to make a delegatecall with\",\"target\":\"address of the contract to make a delegatecall to\"}}},\"version\":1},\"userdoc\":{\"events\":{\"Slash(bytes32,address,uint256,uint48)\":{\"notice\":\"Emitted when a slash is performed.\"}},\"kind\":\"user\",\"methods\":{\"BURNER_GAS_LIMIT()\":{\"notice\":\"Get a gas limit for the burner.\"},\"BURNER_RESERVE()\":{\"notice\":\"Get a reserve gas between the gas limit check and the burner's execution.\"},\"FACTORY()\":{\"notice\":\"Get the factory's address.\"},\"NETWORK_MIDDLEWARE_SERVICE()\":{\"notice\":\"Get the network middleware service's address.\"},\"TYPE()\":{\"notice\":\"Get the entity's type.\"},\"VAULT_FACTORY()\":{\"notice\":\"Get the vault factory's address.\"},\"cumulativeSlash(bytes32,address)\":{\"notice\":\"Get a cumulative slash amount for an operator on a subnetwork.\"},\"cumulativeSlashAt(bytes32,address,uint48,bytes)\":{\"notice\":\"Get a cumulative slash amount for an operator on a subnetwork until a given timestamp (inclusively) using a hint.\"},\"initialize(bytes)\":{\"notice\":\"Initialize this entity contract by using a given data.\"},\"isBurnerHook()\":{\"notice\":\"Get if the burner is needed to be called on a slashing.\"},\"latestSlashedCaptureTimestamp(bytes32,address)\":{\"notice\":\"Get the latest capture timestamp that was slashed on a subnetwork.\"},\"slash(bytes32,address,uint256,uint48,bytes)\":{\"notice\":\"Perform a slash using a subnetwork for a particular operator by a given amount using hints.\"},\"slashableStake(bytes32,address,uint48,bytes)\":{\"notice\":\"Get a slashable amount of a stake got at a given capture timestamp using hints.\"},\"staticDelegateCall(address,bytes)\":{\"notice\":\"Make a delegatecall from this contract to a given target contract with a particular data (always reverts with a return data).\"},\"vault()\":{\"notice\":\"Get the vault's address.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/contracts/slasher/Slasher.sol\":\"Slasher\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609\",\"dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardUpgradeable.sol\":{\"keccak256\":\"0xb44e086e941292cdc7f440de51478493894ef0b1aeccb0c4047445919f667f74\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://942dad22fbdc1669f025540ba63aa3ccfad5f8458fc5d4525b31ebf272e7af45\",\"dweb:/ipfs/Qmdo4X2M82aM3AMoW2kf2jhYkSCyC4T1pHNd6obdsDFnAB\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875\",\"dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0xe19a4d5f31d2861e7344e8e535e2feafb913d806d3e2b5fe7782741a2a7094fe\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4aed79c0fa6f0546ed02f2f683e8f77f0fd2ed7eb34d8bbf3d373c9a6d95b13c\",\"dweb:/ipfs/QmWqVz6UAVqmnWU5pqYPt1o6iDEZyPaBraAA3rKfTTSfYj\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/Checkpoints.sol\":{\"keccak256\":\"0xbdc5e074d7dd6678f67e92b1a51a20226801a407b0e1af3da367c5d1ff4519ad\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a36cca6b22fff3db16fc789ff6c60eea71d4b156065d4d0c83a0bc5e91a77a8b\",\"dweb:/ipfs/QmYN3exd5AemxjBrN8XMB1p5LbbE16uC3sjbYjwi8AjcGR\"]},\"lib/openzeppelin-contracts/contracts/utils/types/Time.sol\":{\"keccak256\":\"0xc7755af115020049e4140f224f9ee88d7e1799ffb0646f37bf0df24bf6213f58\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7f09bf94d5274334ec021f61a04659db303f31e60460e14b709c9bf187740111\",\"dweb:/ipfs/QmNvgomZYUwFAt4cZbPWAiTeSZQreGehY9BK5xyVJsUttb\"]},\"src/contracts/common/Entity.sol\":{\"keccak256\":\"0x3d61a932995b8443381f3950542d388223a2c26dd5d29a3274dea3baa7388bd7\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://7cdf5f03ca72fd263fd32ff59c8d88ddca911ae83896a287d10772c1bbe9b138\",\"dweb:/ipfs/QmbP84r5BWT1Rn9AYTntWSf3xUMTTCohTZJFhbBhDXFoHa\"]},\"src/contracts/common/StaticDelegateCallable.sol\":{\"keccak256\":\"0x350029aa8955eacaffffaeb58babc5c98e80ebc5c5db388ed17ee6465f4a9d90\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://eb392a8ee9050e0af606897df63e3404e3829e8b688b580663892f9664195764\",\"dweb:/ipfs/QmaXC8jqV8UrrAFkzXTEv2fJF56sy33HhLxAzaRZmUxuXD\"]},\"src/contracts/libraries/Checkpoints.sol\":{\"keccak256\":\"0xba90097c8bfe0a975499428b5f8ac5569483c7d92ccc28c12d70de416aae040c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://12f5d93ca94cd06d3147db68993165a58e17903ed53682560de61f3085ad4609\",\"dweb:/ipfs/QmePiuAqvXprMLmFZkGZeGjvGPAvsEDHfCDv7BoQhXu9xE\"]},\"src/contracts/libraries/Subnetwork.sol\":{\"keccak256\":\"0xf5ef5506fd66082b3c2e7f3df37529f5a8efad32ac62e7c8914bd63219190bfe\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba031a54ee0d0e9a270c2b9e18437f5668cfeb659cfd5fe0677459d7fcac2a56\",\"dweb:/ipfs/QmReP3H7qQ78tAfgLnJKsNEQNCQfF1X1Get38Ffd4kzq32\"]},\"src/contracts/slasher/BaseSlasher.sol\":{\"keccak256\":\"0x190e5dce196a061bdad42468c52e9f5b0eb7810cd7d0c19f04d6a2e94984f1b6\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://07ca08d0cd43c2fe5d54a5577f6bdd522ced410f5d3a52e764deaa7ba26b5f06\",\"dweb:/ipfs/QmZe3PiMKBQKWcwodaLupragdqxPjgS4v1qMC7RXau8hDF\"]},\"src/contracts/slasher/Slasher.sol\":{\"keccak256\":\"0xeee0cb25fad58d496fdcc641d852d11bae06e6ceed5230ae21150964175c494f\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://34aa27d21246a1bcee0b6a2afa8d9d613441156362430392f75d176511d58c61\",\"dweb:/ipfs/Qmf53Y3zdGfH4PU2zpSGeHZ8mMLzLXCtmkQrG5mnVJECQ3\"]},\"src/interfaces/common/IEntity.sol\":{\"keccak256\":\"0x8ef4b63d6da63489778ccd5f8d13ebdd527dd4b62730b2c616df5af7474d2d21\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a8d69576a9219d85c50816a18ad53a4d53cfcb27ed38b8cccc808dc2734b71b\",\"dweb:/ipfs/QmYVN3P4Q4REvBWJ97TbAcaxm3uyB2anV6NSGa6ZtSwcEv\"]},\"src/interfaces/common/IMigratableEntity.sol\":{\"keccak256\":\"0x8f5f2809f3afbe8ebfbb365dd7b57b4dd3b6f9943a6187eaf648d45895b8e3c4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ffe640537d539e7a4fde70d30d3e4c57f4ba9c2c25c450cea713aae38e8fd5c\",\"dweb:/ipfs/QmSUTGzvdcn1R1KB7tLThMRtESsfPbeXDhhhKWGtntzBds\"]},\"src/interfaces/common/IRegistry.sol\":{\"keccak256\":\"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014\",\"dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK\"]},\"src/interfaces/common/IStaticDelegateCallable.sol\":{\"keccak256\":\"0xa335d4e81b9071b7de66ef92b43ff20671d86516eb1be46fef29a3483cd3f5d5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d464b9db863c14c05547d2b23352f2e9b7b784799cf09f6bbc4906a2a74e3516\",\"dweb:/ipfs/QmUVWzFvJz7eEbDQKiFTTzwi7TEbjcs3VmwdM4kuptAKvi\"]},\"src/interfaces/delegator/IBaseDelegator.sol\":{\"keccak256\":\"0x96bb312f032e17accce3f8f80936d99468029d6b37c9ca74acdb4b026a0148ee\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2a66dcb5b7d1a6ef6a363431ea98ebd78bc4fdd3d7a134d9b542dc66e7d025c2\",\"dweb:/ipfs/QmRhTPLd2ZAyRHmJUFUcWKs9b3if49QY17LYZuRqWmghw8\"]},\"src/interfaces/service/INetworkMiddlewareService.sol\":{\"keccak256\":\"0x347afc7fcf1fbcdb96d66162070ef6c78aed27b3af2c1d5dfb4e511840631783\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2d90b8ceb495159e8e4e95d76447719dd166443f67dfabdd942846162071595c\",\"dweb:/ipfs/QmVVuiAWYx92T6vBvNMKZfTvraCf1fa16BsUKkdNs3hdHA\"]},\"src/interfaces/slasher/IBaseSlasher.sol\":{\"keccak256\":\"0x7c82528b445659c313ab77335c407b0b6efe5e79027187bb287f7bc74202b404\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0274c90aa5df1aa6bb470a6aab53992fb14fd7e5472c9430416505b29647d9cf\",\"dweb:/ipfs/QmckbmJLDetPemVzCnnGcKYWAZV2BRFXGDsjiaec8jkHxx\"]},\"src/interfaces/slasher/IBurner.sol\":{\"keccak256\":\"0xaf495dacc19ae0b3c787ba8021c5944927d70261536addd234d7dab146158c2b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9b3cc66251008be6ff9fc8b11ecc6831d5a9dca49a3fe9817fcd970253c1d447\",\"dweb:/ipfs/QmVxfb9ALGdF9W3SN2h41gQbUct6tawvu5bw4K89kFQ4HW\"]},\"src/interfaces/slasher/ISlasher.sol\":{\"keccak256\":\"0x34d226d67a3d5e16571f2fac91a8b9773551bcc41c88a96279669dd78d192625\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a6e8c1462ee4a1b0f745414be043c09012ea676613790aba004b06c85c980d1\",\"dweb:/ipfs/QmadjNEbHKRthtA1EeNy3Kg2sXpejH2KBeHm8QZtBPvXbJ\"]},\"src/interfaces/vault/IVault.sol\":{\"keccak256\":\"0xffee01d383cd4e1a5530c614bf4360c1ef070c288abec9da1eb531b51bc07235\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://04f0046cac285d8ec44ebbb1f79dc94fab4495767190cad8364fbc1fafaadfb9\",\"dweb:/ipfs/QmUawAunwzXfCyShWfhKeThAgKtqe51hmrxvrXvM772M2R\"]},\"src/interfaces/vault/IVaultStorage.sol\":{\"keccak256\":\"0x592626f13754194f83047135de19229c49390bd59e34659b1bb38be71d973a22\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://06a6a9dfddd05e580b32bebe2cff4f63ba26a653180676d58225dd30d9c89d3e\",\"dweb:/ipfs/QmdgzBeY6Sxo8mGtyBxtv1tM1c2kU6J6zjeRd7vuXm4DU6\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.25+commit.b61c2a91"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"vaultFactory","type":"address"},{"internalType":"address","name":"networkMiddlewareService","type":"address"},{"internalType":"address","name":"slasherFactory","type":"address"},{"internalType":"uint64","name":"entityType","type":"uint64"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"CheckpointUnorderedInsertion"},{"inputs":[],"type":"error","name":"InsufficientBurnerGas"},{"inputs":[],"type":"error","name":"InsufficientSlash"},{"inputs":[],"type":"error","name":"InvalidCaptureTimestamp"},{"inputs":[],"type":"error","name":"InvalidInitialization"},{"inputs":[],"type":"error","name":"NoBurner"},{"inputs":[],"type":"error","name":"NotInitialized"},{"inputs":[],"type":"error","name":"NotInitializing"},{"inputs":[],"type":"error","name":"NotNetworkMiddleware"},{"inputs":[],"type":"error","name":"NotVault"},{"inputs":[],"type":"error","name":"ReentrancyGuardReentrantCall"},{"inputs":[{"internalType":"uint8","name":"bits","type":"uint8"},{"internalType":"uint256","name":"value","type":"uint256"}],"type":"error","name":"SafeCastOverflowedUintDowncast"},{"inputs":[{"internalType":"uint64","name":"version","type":"uint64","indexed":false}],"type":"event","name":"Initialized","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32","indexed":true},{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"uint256","name":"slashedAmount","type":"uint256","indexed":false},{"internalType":"uint48","name":"captureTimestamp","type":"uint48","indexed":false}],"type":"event","name":"Slash","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"BURNER_GAS_LIMIT","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"BURNER_RESERVE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"FACTORY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"NETWORK_MIDDLEWARE_SERVICE","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"TYPE","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"VAULT_FACTORY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"cumulativeSlash","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint48","name":"timestamp","type":"uint48"},{"internalType":"bytes","name":"hint","type":"bytes"}],"stateMutability":"view","type":"function","name":"cumulativeSlashAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[],"stateMutability":"view","type":"function","name":"isBurnerHook","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"latestSlashedCaptureTimestamp","outputs":[{"internalType":"uint48","name":"value","type":"uint48"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint48","name":"captureTimestamp","type":"uint48"},{"internalType":"bytes","name":"hints","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"slash","outputs":[{"internalType":"uint256","name":"slashedAmount","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint48","name":"captureTimestamp","type":"uint48"},{"internalType":"bytes","name":"hints","type":"bytes"}],"stateMutability":"view","type":"function","name":"slashableStake","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"staticDelegateCall"},{"inputs":[],"stateMutability":"view","type":"function","name":"vault","outputs":[{"internalType":"address","name":"","type":"address"}]}],"devdoc":{"kind":"dev","methods":{"cumulativeSlash(bytes32,address)":{"params":{"operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"},"returns":{"_0":"cumulative slash amount"}},"cumulativeSlashAt(bytes32,address,uint48,bytes)":{"params":{"hint":"hint for the checkpoint index","operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)","timestamp":"time point to get the cumulative slash amount until (inclusively)"},"returns":{"_0":"cumulative slash amount until the given timestamp (inclusively)"}},"initialize(bytes)":{"params":{"data":"some data to use"}},"slash(bytes32,address,uint256,uint48,bytes)":{"details":"Only a network middleware can call this function.","params":{"amount":"maximum amount of the collateral to be slashed","captureTimestamp":"time point when the stake was captured","hints":"hints for checkpoints' indexes","operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"},"returns":{"slashedAmount":"virtual amount of the collateral slashed"}},"slashableStake(bytes32,address,uint48,bytes)":{"params":{"captureTimestamp":"time point to get the stake amount at","hints":"hints for the checkpoints' indexes","operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"},"returns":{"amount":"slashable amount of the stake"}},"staticDelegateCall(address,bytes)":{"details":"It allows to use this contract's storage on-chain.","params":{"data":"data to make a delegatecall with","target":"address of the contract to make a delegatecall to"}}},"version":1},"userdoc":{"kind":"user","methods":{"BURNER_GAS_LIMIT()":{"notice":"Get a gas limit for the burner."},"BURNER_RESERVE()":{"notice":"Get a reserve gas between the gas limit check and the burner's execution."},"FACTORY()":{"notice":"Get the factory's address."},"NETWORK_MIDDLEWARE_SERVICE()":{"notice":"Get the network middleware service's address."},"TYPE()":{"notice":"Get the entity's type."},"VAULT_FACTORY()":{"notice":"Get the vault factory's address."},"cumulativeSlash(bytes32,address)":{"notice":"Get a cumulative slash amount for an operator on a subnetwork."},"cumulativeSlashAt(bytes32,address,uint48,bytes)":{"notice":"Get a cumulative slash amount for an operator on a subnetwork until a given timestamp (inclusively) using a hint."},"initialize(bytes)":{"notice":"Initialize this entity contract by using a given data."},"isBurnerHook()":{"notice":"Get if the burner is needed to be called on a slashing."},"latestSlashedCaptureTimestamp(bytes32,address)":{"notice":"Get the latest capture timestamp that was slashed on a subnetwork."},"slash(bytes32,address,uint256,uint48,bytes)":{"notice":"Perform a slash using a subnetwork for a particular operator by a given amount using hints."},"slashableStake(bytes32,address,uint48,bytes)":{"notice":"Get a slashable amount of a stake got at a given capture timestamp using hints."},"staticDelegateCall(address,bytes)":{"notice":"Make a delegatecall from this contract to a given target contract with a particular data (always reverts with a return data)."},"vault()":{"notice":"Get the vault's address."}},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/contracts/slasher/Slasher.sol":"Slasher"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b","urls":["bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609","dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardUpgradeable.sol":{"keccak256":"0xb44e086e941292cdc7f440de51478493894ef0b1aeccb0c4047445919f667f74","urls":["bzz-raw://942dad22fbdc1669f025540ba63aa3ccfad5f8458fc5d4525b31ebf272e7af45","dweb:/ipfs/Qmdo4X2M82aM3AMoW2kf2jhYkSCyC4T1pHNd6obdsDFnAB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d","urls":["bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875","dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol":{"keccak256":"0xe19a4d5f31d2861e7344e8e535e2feafb913d806d3e2b5fe7782741a2a7094fe","urls":["bzz-raw://4aed79c0fa6f0546ed02f2f683e8f77f0fd2ed7eb34d8bbf3d373c9a6d95b13c","dweb:/ipfs/QmWqVz6UAVqmnWU5pqYPt1o6iDEZyPaBraAA3rKfTTSfYj"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/Checkpoints.sol":{"keccak256":"0xbdc5e074d7dd6678f67e92b1a51a20226801a407b0e1af3da367c5d1ff4519ad","urls":["bzz-raw://a36cca6b22fff3db16fc789ff6c60eea71d4b156065d4d0c83a0bc5e91a77a8b","dweb:/ipfs/QmYN3exd5AemxjBrN8XMB1p5LbbE16uC3sjbYjwi8AjcGR"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/types/Time.sol":{"keccak256":"0xc7755af115020049e4140f224f9ee88d7e1799ffb0646f37bf0df24bf6213f58","urls":["bzz-raw://7f09bf94d5274334ec021f61a04659db303f31e60460e14b709c9bf187740111","dweb:/ipfs/QmNvgomZYUwFAt4cZbPWAiTeSZQreGehY9BK5xyVJsUttb"],"license":"MIT"},"src/contracts/common/Entity.sol":{"keccak256":"0x3d61a932995b8443381f3950542d388223a2c26dd5d29a3274dea3baa7388bd7","urls":["bzz-raw://7cdf5f03ca72fd263fd32ff59c8d88ddca911ae83896a287d10772c1bbe9b138","dweb:/ipfs/QmbP84r5BWT1Rn9AYTntWSf3xUMTTCohTZJFhbBhDXFoHa"],"license":"BUSL-1.1"},"src/contracts/common/StaticDelegateCallable.sol":{"keccak256":"0x350029aa8955eacaffffaeb58babc5c98e80ebc5c5db388ed17ee6465f4a9d90","urls":["bzz-raw://eb392a8ee9050e0af606897df63e3404e3829e8b688b580663892f9664195764","dweb:/ipfs/QmaXC8jqV8UrrAFkzXTEv2fJF56sy33HhLxAzaRZmUxuXD"],"license":"BUSL-1.1"},"src/contracts/libraries/Checkpoints.sol":{"keccak256":"0xba90097c8bfe0a975499428b5f8ac5569483c7d92ccc28c12d70de416aae040c","urls":["bzz-raw://12f5d93ca94cd06d3147db68993165a58e17903ed53682560de61f3085ad4609","dweb:/ipfs/QmePiuAqvXprMLmFZkGZeGjvGPAvsEDHfCDv7BoQhXu9xE"],"license":"MIT"},"src/contracts/libraries/Subnetwork.sol":{"keccak256":"0xf5ef5506fd66082b3c2e7f3df37529f5a8efad32ac62e7c8914bd63219190bfe","urls":["bzz-raw://ba031a54ee0d0e9a270c2b9e18437f5668cfeb659cfd5fe0677459d7fcac2a56","dweb:/ipfs/QmReP3H7qQ78tAfgLnJKsNEQNCQfF1X1Get38Ffd4kzq32"],"license":"MIT"},"src/contracts/slasher/BaseSlasher.sol":{"keccak256":"0x190e5dce196a061bdad42468c52e9f5b0eb7810cd7d0c19f04d6a2e94984f1b6","urls":["bzz-raw://07ca08d0cd43c2fe5d54a5577f6bdd522ced410f5d3a52e764deaa7ba26b5f06","dweb:/ipfs/QmZe3PiMKBQKWcwodaLupragdqxPjgS4v1qMC7RXau8hDF"],"license":"BUSL-1.1"},"src/contracts/slasher/Slasher.sol":{"keccak256":"0xeee0cb25fad58d496fdcc641d852d11bae06e6ceed5230ae21150964175c494f","urls":["bzz-raw://34aa27d21246a1bcee0b6a2afa8d9d613441156362430392f75d176511d58c61","dweb:/ipfs/Qmf53Y3zdGfH4PU2zpSGeHZ8mMLzLXCtmkQrG5mnVJECQ3"],"license":"BUSL-1.1"},"src/interfaces/common/IEntity.sol":{"keccak256":"0x8ef4b63d6da63489778ccd5f8d13ebdd527dd4b62730b2c616df5af7474d2d21","urls":["bzz-raw://5a8d69576a9219d85c50816a18ad53a4d53cfcb27ed38b8cccc808dc2734b71b","dweb:/ipfs/QmYVN3P4Q4REvBWJ97TbAcaxm3uyB2anV6NSGa6ZtSwcEv"],"license":"MIT"},"src/interfaces/common/IMigratableEntity.sol":{"keccak256":"0x8f5f2809f3afbe8ebfbb365dd7b57b4dd3b6f9943a6187eaf648d45895b8e3c4","urls":["bzz-raw://0ffe640537d539e7a4fde70d30d3e4c57f4ba9c2c25c450cea713aae38e8fd5c","dweb:/ipfs/QmSUTGzvdcn1R1KB7tLThMRtESsfPbeXDhhhKWGtntzBds"],"license":"MIT"},"src/interfaces/common/IRegistry.sol":{"keccak256":"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb","urls":["bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014","dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK"],"license":"MIT"},"src/interfaces/common/IStaticDelegateCallable.sol":{"keccak256":"0xa335d4e81b9071b7de66ef92b43ff20671d86516eb1be46fef29a3483cd3f5d5","urls":["bzz-raw://d464b9db863c14c05547d2b23352f2e9b7b784799cf09f6bbc4906a2a74e3516","dweb:/ipfs/QmUVWzFvJz7eEbDQKiFTTzwi7TEbjcs3VmwdM4kuptAKvi"],"license":"MIT"},"src/interfaces/delegator/IBaseDelegator.sol":{"keccak256":"0x96bb312f032e17accce3f8f80936d99468029d6b37c9ca74acdb4b026a0148ee","urls":["bzz-raw://2a66dcb5b7d1a6ef6a363431ea98ebd78bc4fdd3d7a134d9b542dc66e7d025c2","dweb:/ipfs/QmRhTPLd2ZAyRHmJUFUcWKs9b3if49QY17LYZuRqWmghw8"],"license":"MIT"},"src/interfaces/service/INetworkMiddlewareService.sol":{"keccak256":"0x347afc7fcf1fbcdb96d66162070ef6c78aed27b3af2c1d5dfb4e511840631783","urls":["bzz-raw://2d90b8ceb495159e8e4e95d76447719dd166443f67dfabdd942846162071595c","dweb:/ipfs/QmVVuiAWYx92T6vBvNMKZfTvraCf1fa16BsUKkdNs3hdHA"],"license":"MIT"},"src/interfaces/slasher/IBaseSlasher.sol":{"keccak256":"0x7c82528b445659c313ab77335c407b0b6efe5e79027187bb287f7bc74202b404","urls":["bzz-raw://0274c90aa5df1aa6bb470a6aab53992fb14fd7e5472c9430416505b29647d9cf","dweb:/ipfs/QmckbmJLDetPemVzCnnGcKYWAZV2BRFXGDsjiaec8jkHxx"],"license":"MIT"},"src/interfaces/slasher/IBurner.sol":{"keccak256":"0xaf495dacc19ae0b3c787ba8021c5944927d70261536addd234d7dab146158c2b","urls":["bzz-raw://9b3cc66251008be6ff9fc8b11ecc6831d5a9dca49a3fe9817fcd970253c1d447","dweb:/ipfs/QmVxfb9ALGdF9W3SN2h41gQbUct6tawvu5bw4K89kFQ4HW"],"license":"MIT"},"src/interfaces/slasher/ISlasher.sol":{"keccak256":"0x34d226d67a3d5e16571f2fac91a8b9773551bcc41c88a96279669dd78d192625","urls":["bzz-raw://7a6e8c1462ee4a1b0f745414be043c09012ea676613790aba004b06c85c980d1","dweb:/ipfs/QmadjNEbHKRthtA1EeNy3Kg2sXpejH2KBeHm8QZtBPvXbJ"],"license":"MIT"},"src/interfaces/vault/IVault.sol":{"keccak256":"0xffee01d383cd4e1a5530c614bf4360c1ef070c288abec9da1eb531b51bc07235","urls":["bzz-raw://04f0046cac285d8ec44ebbb1f79dc94fab4495767190cad8364fbc1fafaadfb9","dweb:/ipfs/QmUawAunwzXfCyShWfhKeThAgKtqe51hmrxvrXvM772M2R"],"license":"MIT"},"src/interfaces/vault/IVaultStorage.sol":{"keccak256":"0x592626f13754194f83047135de19229c49390bd59e34659b1bb38be71d973a22","urls":["bzz-raw://06a6a9dfddd05e580b32bebe2cff4f63ba26a653180676d58225dd30d9c89d3e","dweb:/ipfs/QmdgzBeY6Sxo8mGtyBxtv1tM1c2kU6J6zjeRd7vuXm4DU6"],"license":"MIT"}},"version":1},"id":93} \ No newline at end of file +{"abi":[{"type":"constructor","inputs":[{"name":"vaultFactory","type":"address","internalType":"address"},{"name":"networkMiddlewareService","type":"address","internalType":"address"},{"name":"slasherFactory","type":"address","internalType":"address"},{"name":"entityType","type":"uint64","internalType":"uint64"}],"stateMutability":"nonpayable"},{"type":"function","name":"BURNER_GAS_LIMIT","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"BURNER_RESERVE","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"FACTORY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"NETWORK_MIDDLEWARE_SERVICE","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"TYPE","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"VAULT_FACTORY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"cumulativeSlash","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"cumulativeSlashAt","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"timestamp","type":"uint48","internalType":"uint48"},{"name":"hint","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"initialize","inputs":[{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"isBurnerHook","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"latestSlashedCaptureTimestamp","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"value","type":"uint48","internalType":"uint48"}],"stateMutability":"view"},{"type":"function","name":"slash","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"captureTimestamp","type":"uint48","internalType":"uint48"},{"name":"hints","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"slashedAmount","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"slashableStake","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"captureTimestamp","type":"uint48","internalType":"uint48"},{"name":"hints","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"staticDelegateCall","inputs":[{"name":"target","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"vault","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"Slash","inputs":[{"name":"subnetwork","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"slashedAmount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"captureTimestamp","type":"uint48","indexed":false,"internalType":"uint48"}],"anonymous":false},{"type":"error","name":"CheckpointUnorderedInsertion","inputs":[]},{"type":"error","name":"InsufficientBurnerGas","inputs":[]},{"type":"error","name":"InsufficientSlash","inputs":[]},{"type":"error","name":"InvalidCaptureTimestamp","inputs":[]},{"type":"error","name":"InvalidInitialization","inputs":[]},{"type":"error","name":"NoBurner","inputs":[]},{"type":"error","name":"NotInitialized","inputs":[]},{"type":"error","name":"NotInitializing","inputs":[]},{"type":"error","name":"NotNetworkMiddleware","inputs":[]},{"type":"error","name":"NotVault","inputs":[]},{"type":"error","name":"ReentrancyGuardReentrantCall","inputs":[]},{"type":"error","name":"SafeCastOverflowedUintDowncast","inputs":[{"name":"bits","type":"uint8","internalType":"uint8"},{"name":"value","type":"uint256","internalType":"uint256"}]}],"bytecode":{"object":"0x6101003461015857601f611ecf38819003918201601f1916830192916001600160401b03918285118486101761015c5781608092859260409788528339810103126101585761004d82610170565b9061005a60208401610170565b926060610068868301610170565b910151918083168303610158577ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a009081549060ff82891c16610147578080831603610103575b50505060805260a05260c05260e05251611d4a908161018582396080518161044a015260a051818181610850015261119a015260c0518181816102fd01526114ca015260e0518181816101fc01526104060152f35b6001600160401b0319909116811790915585519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a15f80806100ae565b875163f92ee8a960e01b8152600490fd5b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b51906001600160a01b03821682036101585756fe60806040526004361015610011575f80fd5b5f3560e01c8063021a815614610104578063103f2907146100ff5780631a2be2c4146100fa578063267de1f3146100f55780632964f8dc146100f05780632c9d45b3146100eb5780632dd31000146100e657806334d098ea146100e1578063439fab91146100dc5780639f86fd85146100d7578063aa8e6489146100d2578063aab3595f146100cd578063bb24fe8a146100c8578063d5c24e1a146100c35763fbfa77cf146100be575f80fd5b610891565b610874565b610831565b61080c565b6107ce565b6105d5565b61049d565b610479565b610435565b6103f1565b6103d5565b610380565b61032c565b6102e8565b61015b565b6001600160a01b0381160361011a57565b5f80fd5b65ffffffffffff81160361011a57565b9181601f8401121561011a578235916001600160401b03831161011a576020838186019501011161011a57565b3461011a5760a036600319011261011a5760043560243561017b81610109565b6064356101878161011e565b6084356001600160401b03811161011a576101a690369060040161012e565b917f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0060028154146102cc5760029055604051635daf681960e11b8152606086901c60048201526001600160a01b036020826024817f000000000000000000000000000000000000000000000000000000000000000085165afa9182156102c7575f92610296575b50339116036102845761028094610247946044359161096a565b61027060017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055565b6040519081529081906020820190565b0390f35b60405163227bf64d60e01b8152600490fd5b6102b991925060203d6020116102c0575b6102b181836106f1565b810190610bba565b905f61022d565b503d6102a7565b61092e565b604051633ee5aeb560e01b8152600490fd5b5f91031261011a57565b3461011a575f36600319011261011a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461011a57604036600319011261011a57602061037861037360243561035181610109565b6004355f526002845260405f209060018060a01b03165f5260205260405f2090565b6113e9565b604051908152f35b3461011a57604036600319011261011a57602065ffffffffffff6103cb6024356103a981610109565b6004355f526001845260405f209060018060a01b03165f5260205260405f2090565b5416604051908152f35b3461011a575f36600319011261011a576020604051614e208152f35b3461011a575f36600319011261011a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461011a575f36600319011261011a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461011a575f36600319011261011a57602060ff5f5460a01c166040519015158152f35b3461011a57602036600319011261011a576001600160401b0360043581811161011a576104ce90369060040161012e565b5f80516020611cf5833981519152549260ff8460401c16159316801590816105cd575b60011490816105c3575b1590816105ba575b506105a8575f80516020611cf5833981519152805467ffffffffffffffff19166001179055610536918361058457611493565b61053c57005b5f80516020611cf5833981519152805460ff60401b19169055604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a1005b5f80516020611cf5833981519152805460ff60401b1916600160401b179055611493565b60405163f92ee8a960e01b8152600490fd5b9050155f610503565b303b1591506104fb565b8491506104f1565b3461011a5760408060031936011261011a576004356105f381610109565b602435906001600160401b03821161011a575f809161061961067d94369060040161012e565b908187519283928337810184815203915af43d156106855761066f3d61063e81610721565b9061064b865192836106f1565b81523d5f602083013e5b845194859315156020850152808401526060830190610b6a565b03601f1981018352826106f1565b805190602001fd5b61066f6060610655565b634e487b7160e01b5f52604160045260245ffd5b602081019081106001600160401b038211176106be57604052565b61068f565b604081019081106001600160401b038211176106be57604052565b6001600160401b0381116106be57604052565b90601f801991011681019081106001600160401b038211176106be57604052565b6040519061071f826106c3565b565b6001600160401b0381116106be57601f01601f191660200190565b81601f8201121561011a5780359061075382610721565b9261076160405194856106f1565b8284526020838301011161011a57815f926020809301838601378301015290565b90608060031983011261011a576004359160243561079f81610109565b916044356107ac8161011e565b91606435906001600160401b03821161011a576107cb9160040161073c565b90565b3461011a5760206103786108076107e436610782565b939190925f526002865260405f209060018060a01b03165f5260205260405f2090565b61162d565b3461011a57602061082861081f36610782565b92919091610cfa565b50604051908152f35b3461011a575f36600319011261011a5760206040516001600160401b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461011a575f36600319011261011a576020604051620249f08152f35b3461011a575f36600319011261011a575f546040516001600160a01b039091168152602090f35b604051906108c5826106a3565b60608252565b9060208282031261011a5781356001600160401b039283821161011a57019060208282031261011a5760405192610901846106a3565b823590811161011a57610914920161073c565b815290565b9081602091031261011a57516107cb8161011e565b6040513d5f823e3d90fd5b634e487b7160e01b5f52601160045260245ffd5b65ffffffffffff918216908216039190821161096557565b610939565b929395949190956109796108b8565b9280610b54575b505061098b42611705565b5f546004906020906109b3906109a7906001600160a01b031681565b6001600160a01b031690565b6040516327f843b560e11b815292839182905afa80156102c7576109ed926109e2925f92610b23575b5061094d565b65ffffffffffff1690565b65ffffffffffff8516908110908115610b0d575b50610afb57610a16610a1f9251858886610cfa565b92908092610f2a565b958615610ae957610aa461066f610a9b610ae4947fe0cbbe1f1e6fd806ca87036fafcebaf7ab5247474a3b20e1c37bb50122c3a88496610a608a878b610f3c565b610a6b8c878b610fca565b610a73610712565b9182526020820152604051928391602083019190916020806040830194805184520151910152565b86898488611136565b610aae858861123f565b610aba858883876112c4565b6040805188815265ffffffffffff90961660208701526001600160a01b0390911694918291820190565b0390a3565b60405163167f871760e31b8152600490fd5b604051631357ac9160e11b8152600490fd5b9050610b1b6109e242611705565b11155f610a01565b610b4691925060203d602011610b4d575b610b3e81836106f1565b810190610919565b905f6109dc565b503d610b34565b610b629293508101906108cb565b905f80610980565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b5f9081526002602090815260408083206001600160a01b039094168352929052206107cb92919061162d565b9081602091031261011a57516107cb81610109565b60405190610bdc826106c3565b60606020838281520152565b81601f8201121561011a57805190610bff82610721565b92610c0d60405194856106f1565b8284526020838301011161011a57815f9260208093018386015e8301015290565b9060208282031261011a5781516001600160401b039283821161011a57019060408282031261011a5760405192610c64846106c3565b825181811161011a5782610c79918501610be8565b8452602083015190811161011a57610c919201610be8565b602082015290565b9081602091031261011a575190565b9081526001600160a01b03909116602082015265ffffffffffff90911660408201526080606082018190526107cb92910190610b6a565b5f1981019190821161096557565b9190820391821161096557565b92610d03610bcf565b90805180610f10575b5050610d1742611705565b5f54909490610d30906109a7906001600160a01b031681565b93604051956327f843b560e11b875260209687816004818a5afa80156102c757610d64926109e2925f92610ef8575061094d565b65ffffffffffff8216908110908115610ee1575b8115610eb0575b50610ea4578560049560405196878092630ce9b79360e41b82525afa9485156102c757610dd19587915f91610e87575b50845190604051808099819463e02f693760e01b8352878b8a60048601610ca8565b03916001600160a01b03165afa9384156102c757610e43955f95610e46575b5092610e388593610e3e93610e3896869a610e2f61037383610e1a875f52600260205260405f2090565b9060018060a01b03165f5260205260405f2090565b95015192610b8e565b90610ced565b610f2a565b91565b610e3e929550610e38949193610e74610e38928a3d8c11610e80575b610e6c81836106f1565b810190610c99565b96935093919450610df0565b503d610e62565b610e9e9150823d84116102c0576102b181836106f1565b5f610daf565b5050505050505f905f90565b9050610eda6109e2610ece87610e1a875f52600160205260405f2090565b5465ffffffffffff1690565b115f610d7f565b9050610eef6109e242611705565b81101590610d78565b610b469192508a3d8c11610b4d57610b3e81836106f1565b610f239250602080918301019101610c2e565b5f80610d0c565b9080821015610f37575090565b905090565b919091805f52600160205265ffffffffffff80610f6c8560405f209060018060a01b03165f5260205260405f2090565b541690831611610f7b57505050565b61071f92610fa3915f52600160205260405f209060018060a01b03165f5260205260405f2090565b9065ffffffffffff1665ffffffffffff19825416179055565b906001820180921161096557565b9190825f526002602052611022610373610ff78360405f209060018060a01b03165f5260205260405f2090565b9261100142611705565b955f52600260205260405f209060018060a01b03165f5260205260405f2090565b9182018092116109655760018101908154156110c6575b61104281611961565b509490835495611051846113e9565b50816110b1575b50156110905750505f1983019283116109655761071f92611078916113c0565b90919082549060031b91821b915f19901b1916179055565b61071f946110aa926001600160d01b039091169190611a38565b5050611764565b65ffffffffffff83811691161490505f611058565b6110cf82611737565b611039565b606060206107cb938184526001600160401b03815116828501520151916040808201520190610b6a565b919360a0936107cb969565ffffffffffff938552600180871b0316602085015260408401521660608201528160808201520190610b6a565b929390600460206111536109a76109a75f5460018060a01b031690565b604051630ce9b79360e41b815292839182905afa9081156102c75761066f916111d1915f91611220575b506001600160a01b031693611190610712565b6001600160401b037f0000000000000000000000000000000000000000000000000000000000000000168152906020820152604051928391602083016110d4565b823b1561011a575f946111fc86926040519889978896879563724ab0f760e11b8752600487016110fe565b03925af180156102c75761120d5750565b8061121a61071f926106de565b806102de565b611239915060203d6020116102c0576102b181836106f1565b5f61117d565b5f8054604051631c9e38c760e21b8152600481019390935265ffffffffffff9390931660248301529091602091839160449183916001600160a01b03165af180156102c75761128b5750565b6112a39060203d602011610e8057610e6c81836106f1565b50565b81156112b0570490565b634e487b7160e01b5f52601260045260245ffd5b92905f549060ff8260a01c166112dc575b5050505050565b6040516313c085b760e11b815291602090839060049082906001600160a01b03165afa9182156102c7575f92611399575b5060405163065c1e0360e01b6020820190815260248201969096526001600160a01b039091166044820152606481019390935265ffffffffffff90911660848301526113668260a481015b03601f1981018452836106f1565b6202a15c5a10611387575f928380935192620249f0f1505f808080806112d5565b604051632153f33560e21b8152600490fd5b61136692506113b96113589160203d6020116102c0576102b181836106f1565b925061130d565b80548210156113d5575f5260205f2001905f90565b634e487b7160e01b5f52603260045260245ffd5b80548061141e57505f5b6001600160d01b0381161561141857600161140e92016113c0565b90549060031b1c90565b50505f90565b5f1990808281011161096557825f5260205f2001015460301c6113f3565b91909160408184031261011a57803561145481610109565b9260208201356001600160401b03811161011a576107cb920161073c565b5190811515820361011a57565b9081602091031261011a576107cb90611472565b61149f9181019061143c565b6040516302910f8b60e31b81526001600160a01b0392831660048201819052929160209182816024817f000000000000000000000000000000000000000000000000000000000000000088165afa9081156102c7575f916115cf575b50156115bd578161152f600492611510611787565b5f80546001600160a01b0319166001600160a01b0389161790556117bd565b94604051928380926313c085b760e11b82525afa9182156102c7575f926115a0575b5050161580611596575b611584575161071f9015155f805460ff60a01b191691151560a01b60ff60a01b16919091179055565b60405163d2420f5960e01b8152600490fd5b508051151561155b565b6115b69250803d106102c0576102b181836106f1565b5f80611551565b6040516362df054560e01b8152600490fd5b6115ef9150833d85116115f5575b6115e781836106f1565b81019061147f565b5f6114fb565b503d6115dd565b9081602091031261011a575163ffffffff8116810361011a5790565b90600163ffffffff8093160191821161096557565b918051156116fb5780602080611648935183010191016115fc565b9161165383826118d5565b92611664845165ffffffffffff1690565b9065ffffffffffff80851692168281146116ef578211918261169a575b5050611691576107cb9250611805565b50506020015190565b9091506116a78354610cdf565b63ffffffff8316149182156116c0575b50505f80611681565b6116e79192506116db6116d56109e292611618565b856118d5565b5165ffffffffffff1690565b115f806116b7565b50505050506020015190565b506107cb91611805565b65ffffffffffff90818111611718571690565b604490604051906306dfcc6560e41b8252603060048301526024820152fd5b8054600160401b8110156106be57611754916001820181556113c0565b8154905f199060031b1b19169055565b90815491600160401b8310156106be578261107891600161071f950181556113c0565b61178f6119b0565b6117976119b0565b60017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055565b5f6040516117ca816106a3565b5260208180518101031261011a576020906040516117e7816106a3565b6117ff6040519384936117f9856106a3565b01611472565b82525290565b908154905f82916005841161186f575b611820935084611c95565b8061184857505f905b6001600160d01b03821615611418576107cb91600161140e92016113c0565b61186261185761186992610cdf565b835f5260205f200190565b5460301c90565b90611829565b919261187a81611b57565b81039081116109655761182093855f5265ffffffffffff808360205f20015416908516105f146118ab575091611815565b9291506118b790610fbc565b90611815565b604051906118ca826106c3565b5f6020838281520152565b906118fe6118f861191f926118e86118bd565b506118f16118bd565b50846113c0565b5061193d565b91600165ffffffffffff845116936020828060d01b039101511691016113c0565b9054906040519261192f846106c3565b835260031b1c602082015290565b9060405161194a816106c3565b915465ffffffffffff8116835260301c6020830152565b8054806119725750505f905f905f90565b5f199080828101116109655761198f925f5260205f20010161193d565b9065ffffffffffff82511691602060018060d01b0391015116906001929190565b60ff5f80516020611cf58339815191525460401c16156119cc57565b604051631afcd79f60e31b8152600490fd5b8054600160401b8110156106be576119fb916001820181556113c0565b611a2557815160209092015160301b65ffffffffffff191665ffffffffffff909216919091179055565b634e487b7160e01b5f525f60045260245ffd5b805492939291908215611b2e57611a59611a5461185785610cdf565b61193d565b90611a6a825165ffffffffffff1690565b65ffffffffffff84811691168110611b1c57611ae0946020948892611a986109e2875165ffffffffffff1690565b03611ae45750611ad292611aae611ab992610cdf565b905f5260205f200190565b9065ffffffffffff82549181199060301b169116179055565b01516001600160d01b031690565b9190565b915050611b1791611b04611af6610712565b65ffffffffffff9093168352565b6001600160d01b038816828601526119de565b611ad2565b604051632520601d60e01b8152600490fd5b611b529250611b3e611af6610712565b6001600160d01b03851660208301526119de565b5f9190565b8015611c905780611c29611c22611c18611c0e611c04611bfa611bf0611be660016107cb9a5f908b60801c80611c84575b508060401c80611c77575b508060201c80611c6a575b508060101c80611c5d575b508060081c80611c50575b508060041c80611c43575b508060021c80611c36575b50821c611c2f575b811c1b611bdf818b6112a6565b0160011c90565b611bdf818a6112a6565b611bdf81896112a6565b611bdf81886112a6565b611bdf81876112a6565b611bdf81866112a6565b611bdf81856112a6565b80926112a6565b90610f2a565b8101611bd2565b600291509101905f611bca565b600491509101905f611bbf565b600891509101905f611bb4565b601091509101905f611ba9565b602091509101905f611b9e565b604091509101905f611b93565b9150506080905f611b88565b505f90565b91905b838210611ca55750505090565b9091928083169080841860011c820180921161096557845f5265ffffffffffff808360205f20015416908416105f14611ce25750925b9190611c98565b939250611cee90610fbc565b91611cdb56fef0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a2646970667358221220ee52c4734e4b032c79e9f76b7ae44a51bfeb78ae418a11c4ec4f864df6af816064736f6c63430008190033","sourceMap":"445:2048:98:-:0;;;;;;;;;;;;;-1:-1:-1;;445:2048:98;;;;;-1:-1:-1;;;;;445:2048:98;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;8837:64:26;445:2048:98;;;;;;;;;7896:76:26;;445:2048:98;;;;7985:34:26;7981:146;;-1:-1:-1;525:17:74;;;445:2048:98;525:17:74;552:12;;2353:28:97;;2391:53;;445:2048:98;;;;;;;;;;;;;552:12:74;445:2048:98;;;;;;;;;;2353:28:97;445:2048:98;;;;;;;;;;2391:53:97;445:2048:98;;;;;;;;;;;7981:146:26;-1:-1:-1;;;;;;445:2048:98;;;;;;;;;;;;;8087:29:26;;445:2048:98;;8087:29:26;7981:146;;;;;7896:76;445:2048:98;;-1:-1:-1;;;7938:23:26;;;;;445:2048:98;-1:-1:-1;445:2048:98;;;;;;-1:-1:-1;445:2048:98;;;;;-1:-1:-1;445:2048:98;;;;-1:-1:-1;;;;;445:2048:98;;;;;;:::o","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361015610011575f80fd5b5f3560e01c8063021a815614610104578063103f2907146100ff5780631a2be2c4146100fa578063267de1f3146100f55780632964f8dc146100f05780632c9d45b3146100eb5780632dd31000146100e657806334d098ea146100e1578063439fab91146100dc5780639f86fd85146100d7578063aa8e6489146100d2578063aab3595f146100cd578063bb24fe8a146100c8578063d5c24e1a146100c35763fbfa77cf146100be575f80fd5b610891565b610874565b610831565b61080c565b6107ce565b6105d5565b61049d565b610479565b610435565b6103f1565b6103d5565b610380565b61032c565b6102e8565b61015b565b6001600160a01b0381160361011a57565b5f80fd5b65ffffffffffff81160361011a57565b9181601f8401121561011a578235916001600160401b03831161011a576020838186019501011161011a57565b3461011a5760a036600319011261011a5760043560243561017b81610109565b6064356101878161011e565b6084356001600160401b03811161011a576101a690369060040161012e565b917f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0060028154146102cc5760029055604051635daf681960e11b8152606086901c60048201526001600160a01b036020826024817f000000000000000000000000000000000000000000000000000000000000000085165afa9182156102c7575f92610296575b50339116036102845761028094610247946044359161096a565b61027060017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055565b6040519081529081906020820190565b0390f35b60405163227bf64d60e01b8152600490fd5b6102b991925060203d6020116102c0575b6102b181836106f1565b810190610bba565b905f61022d565b503d6102a7565b61092e565b604051633ee5aeb560e01b8152600490fd5b5f91031261011a57565b3461011a575f36600319011261011a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461011a57604036600319011261011a57602061037861037360243561035181610109565b6004355f526002845260405f209060018060a01b03165f5260205260405f2090565b6113e9565b604051908152f35b3461011a57604036600319011261011a57602065ffffffffffff6103cb6024356103a981610109565b6004355f526001845260405f209060018060a01b03165f5260205260405f2090565b5416604051908152f35b3461011a575f36600319011261011a576020604051614e208152f35b3461011a575f36600319011261011a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461011a575f36600319011261011a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461011a575f36600319011261011a57602060ff5f5460a01c166040519015158152f35b3461011a57602036600319011261011a576001600160401b0360043581811161011a576104ce90369060040161012e565b5f80516020611cf5833981519152549260ff8460401c16159316801590816105cd575b60011490816105c3575b1590816105ba575b506105a8575f80516020611cf5833981519152805467ffffffffffffffff19166001179055610536918361058457611493565b61053c57005b5f80516020611cf5833981519152805460ff60401b19169055604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a1005b5f80516020611cf5833981519152805460ff60401b1916600160401b179055611493565b60405163f92ee8a960e01b8152600490fd5b9050155f610503565b303b1591506104fb565b8491506104f1565b3461011a5760408060031936011261011a576004356105f381610109565b602435906001600160401b03821161011a575f809161061961067d94369060040161012e565b908187519283928337810184815203915af43d156106855761066f3d61063e81610721565b9061064b865192836106f1565b81523d5f602083013e5b845194859315156020850152808401526060830190610b6a565b03601f1981018352826106f1565b805190602001fd5b61066f6060610655565b634e487b7160e01b5f52604160045260245ffd5b602081019081106001600160401b038211176106be57604052565b61068f565b604081019081106001600160401b038211176106be57604052565b6001600160401b0381116106be57604052565b90601f801991011681019081106001600160401b038211176106be57604052565b6040519061071f826106c3565b565b6001600160401b0381116106be57601f01601f191660200190565b81601f8201121561011a5780359061075382610721565b9261076160405194856106f1565b8284526020838301011161011a57815f926020809301838601378301015290565b90608060031983011261011a576004359160243561079f81610109565b916044356107ac8161011e565b91606435906001600160401b03821161011a576107cb9160040161073c565b90565b3461011a5760206103786108076107e436610782565b939190925f526002865260405f209060018060a01b03165f5260205260405f2090565b61162d565b3461011a57602061082861081f36610782565b92919091610cfa565b50604051908152f35b3461011a575f36600319011261011a5760206040516001600160401b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461011a575f36600319011261011a576020604051620249f08152f35b3461011a575f36600319011261011a575f546040516001600160a01b039091168152602090f35b604051906108c5826106a3565b60608252565b9060208282031261011a5781356001600160401b039283821161011a57019060208282031261011a5760405192610901846106a3565b823590811161011a57610914920161073c565b815290565b9081602091031261011a57516107cb8161011e565b6040513d5f823e3d90fd5b634e487b7160e01b5f52601160045260245ffd5b65ffffffffffff918216908216039190821161096557565b610939565b929395949190956109796108b8565b9280610b54575b505061098b42611705565b5f546004906020906109b3906109a7906001600160a01b031681565b6001600160a01b031690565b6040516327f843b560e11b815292839182905afa80156102c7576109ed926109e2925f92610b23575b5061094d565b65ffffffffffff1690565b65ffffffffffff8516908110908115610b0d575b50610afb57610a16610a1f9251858886610cfa565b92908092610f2a565b958615610ae957610aa461066f610a9b610ae4947fe0cbbe1f1e6fd806ca87036fafcebaf7ab5247474a3b20e1c37bb50122c3a88496610a608a878b610f3c565b610a6b8c878b610fca565b610a73610712565b9182526020820152604051928391602083019190916020806040830194805184520151910152565b86898488611136565b610aae858861123f565b610aba858883876112c4565b6040805188815265ffffffffffff90961660208701526001600160a01b0390911694918291820190565b0390a3565b60405163167f871760e31b8152600490fd5b604051631357ac9160e11b8152600490fd5b9050610b1b6109e242611705565b11155f610a01565b610b4691925060203d602011610b4d575b610b3e81836106f1565b810190610919565b905f6109dc565b503d610b34565b610b629293508101906108cb565b905f80610980565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b5f9081526002602090815260408083206001600160a01b039094168352929052206107cb92919061162d565b9081602091031261011a57516107cb81610109565b60405190610bdc826106c3565b60606020838281520152565b81601f8201121561011a57805190610bff82610721565b92610c0d60405194856106f1565b8284526020838301011161011a57815f9260208093018386015e8301015290565b9060208282031261011a5781516001600160401b039283821161011a57019060408282031261011a5760405192610c64846106c3565b825181811161011a5782610c79918501610be8565b8452602083015190811161011a57610c919201610be8565b602082015290565b9081602091031261011a575190565b9081526001600160a01b03909116602082015265ffffffffffff90911660408201526080606082018190526107cb92910190610b6a565b5f1981019190821161096557565b9190820391821161096557565b92610d03610bcf565b90805180610f10575b5050610d1742611705565b5f54909490610d30906109a7906001600160a01b031681565b93604051956327f843b560e11b875260209687816004818a5afa80156102c757610d64926109e2925f92610ef8575061094d565b65ffffffffffff8216908110908115610ee1575b8115610eb0575b50610ea4578560049560405196878092630ce9b79360e41b82525afa9485156102c757610dd19587915f91610e87575b50845190604051808099819463e02f693760e01b8352878b8a60048601610ca8565b03916001600160a01b03165afa9384156102c757610e43955f95610e46575b5092610e388593610e3e93610e3896869a610e2f61037383610e1a875f52600260205260405f2090565b9060018060a01b03165f5260205260405f2090565b95015192610b8e565b90610ced565b610f2a565b91565b610e3e929550610e38949193610e74610e38928a3d8c11610e80575b610e6c81836106f1565b810190610c99565b96935093919450610df0565b503d610e62565b610e9e9150823d84116102c0576102b181836106f1565b5f610daf565b5050505050505f905f90565b9050610eda6109e2610ece87610e1a875f52600160205260405f2090565b5465ffffffffffff1690565b115f610d7f565b9050610eef6109e242611705565b81101590610d78565b610b469192508a3d8c11610b4d57610b3e81836106f1565b610f239250602080918301019101610c2e565b5f80610d0c565b9080821015610f37575090565b905090565b919091805f52600160205265ffffffffffff80610f6c8560405f209060018060a01b03165f5260205260405f2090565b541690831611610f7b57505050565b61071f92610fa3915f52600160205260405f209060018060a01b03165f5260205260405f2090565b9065ffffffffffff1665ffffffffffff19825416179055565b906001820180921161096557565b9190825f526002602052611022610373610ff78360405f209060018060a01b03165f5260205260405f2090565b9261100142611705565b955f52600260205260405f209060018060a01b03165f5260205260405f2090565b9182018092116109655760018101908154156110c6575b61104281611961565b509490835495611051846113e9565b50816110b1575b50156110905750505f1983019283116109655761071f92611078916113c0565b90919082549060031b91821b915f19901b1916179055565b61071f946110aa926001600160d01b039091169190611a38565b5050611764565b65ffffffffffff83811691161490505f611058565b6110cf82611737565b611039565b606060206107cb938184526001600160401b03815116828501520151916040808201520190610b6a565b919360a0936107cb969565ffffffffffff938552600180871b0316602085015260408401521660608201528160808201520190610b6a565b929390600460206111536109a76109a75f5460018060a01b031690565b604051630ce9b79360e41b815292839182905afa9081156102c75761066f916111d1915f91611220575b506001600160a01b031693611190610712565b6001600160401b037f0000000000000000000000000000000000000000000000000000000000000000168152906020820152604051928391602083016110d4565b823b1561011a575f946111fc86926040519889978896879563724ab0f760e11b8752600487016110fe565b03925af180156102c75761120d5750565b8061121a61071f926106de565b806102de565b611239915060203d6020116102c0576102b181836106f1565b5f61117d565b5f8054604051631c9e38c760e21b8152600481019390935265ffffffffffff9390931660248301529091602091839160449183916001600160a01b03165af180156102c75761128b5750565b6112a39060203d602011610e8057610e6c81836106f1565b50565b81156112b0570490565b634e487b7160e01b5f52601260045260245ffd5b92905f549060ff8260a01c166112dc575b5050505050565b6040516313c085b760e11b815291602090839060049082906001600160a01b03165afa9182156102c7575f92611399575b5060405163065c1e0360e01b6020820190815260248201969096526001600160a01b039091166044820152606481019390935265ffffffffffff90911660848301526113668260a481015b03601f1981018452836106f1565b6202a15c5a10611387575f928380935192620249f0f1505f808080806112d5565b604051632153f33560e21b8152600490fd5b61136692506113b96113589160203d6020116102c0576102b181836106f1565b925061130d565b80548210156113d5575f5260205f2001905f90565b634e487b7160e01b5f52603260045260245ffd5b80548061141e57505f5b6001600160d01b0381161561141857600161140e92016113c0565b90549060031b1c90565b50505f90565b5f1990808281011161096557825f5260205f2001015460301c6113f3565b91909160408184031261011a57803561145481610109565b9260208201356001600160401b03811161011a576107cb920161073c565b5190811515820361011a57565b9081602091031261011a576107cb90611472565b61149f9181019061143c565b6040516302910f8b60e31b81526001600160a01b0392831660048201819052929160209182816024817f000000000000000000000000000000000000000000000000000000000000000088165afa9081156102c7575f916115cf575b50156115bd578161152f600492611510611787565b5f80546001600160a01b0319166001600160a01b0389161790556117bd565b94604051928380926313c085b760e11b82525afa9182156102c7575f926115a0575b5050161580611596575b611584575161071f9015155f805460ff60a01b191691151560a01b60ff60a01b16919091179055565b60405163d2420f5960e01b8152600490fd5b508051151561155b565b6115b69250803d106102c0576102b181836106f1565b5f80611551565b6040516362df054560e01b8152600490fd5b6115ef9150833d85116115f5575b6115e781836106f1565b81019061147f565b5f6114fb565b503d6115dd565b9081602091031261011a575163ffffffff8116810361011a5790565b90600163ffffffff8093160191821161096557565b918051156116fb5780602080611648935183010191016115fc565b9161165383826118d5565b92611664845165ffffffffffff1690565b9065ffffffffffff80851692168281146116ef578211918261169a575b5050611691576107cb9250611805565b50506020015190565b9091506116a78354610cdf565b63ffffffff8316149182156116c0575b50505f80611681565b6116e79192506116db6116d56109e292611618565b856118d5565b5165ffffffffffff1690565b115f806116b7565b50505050506020015190565b506107cb91611805565b65ffffffffffff90818111611718571690565b604490604051906306dfcc6560e41b8252603060048301526024820152fd5b8054600160401b8110156106be57611754916001820181556113c0565b8154905f199060031b1b19169055565b90815491600160401b8310156106be578261107891600161071f950181556113c0565b61178f6119b0565b6117976119b0565b60017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055565b5f6040516117ca816106a3565b5260208180518101031261011a576020906040516117e7816106a3565b6117ff6040519384936117f9856106a3565b01611472565b82525290565b908154905f82916005841161186f575b611820935084611c95565b8061184857505f905b6001600160d01b03821615611418576107cb91600161140e92016113c0565b61186261185761186992610cdf565b835f5260205f200190565b5460301c90565b90611829565b919261187a81611b57565b81039081116109655761182093855f5265ffffffffffff808360205f20015416908516105f146118ab575091611815565b9291506118b790610fbc565b90611815565b604051906118ca826106c3565b5f6020838281520152565b906118fe6118f861191f926118e86118bd565b506118f16118bd565b50846113c0565b5061193d565b91600165ffffffffffff845116936020828060d01b039101511691016113c0565b9054906040519261192f846106c3565b835260031b1c602082015290565b9060405161194a816106c3565b915465ffffffffffff8116835260301c6020830152565b8054806119725750505f905f905f90565b5f199080828101116109655761198f925f5260205f20010161193d565b9065ffffffffffff82511691602060018060d01b0391015116906001929190565b60ff5f80516020611cf58339815191525460401c16156119cc57565b604051631afcd79f60e31b8152600490fd5b8054600160401b8110156106be576119fb916001820181556113c0565b611a2557815160209092015160301b65ffffffffffff191665ffffffffffff909216919091179055565b634e487b7160e01b5f525f60045260245ffd5b805492939291908215611b2e57611a59611a5461185785610cdf565b61193d565b90611a6a825165ffffffffffff1690565b65ffffffffffff84811691168110611b1c57611ae0946020948892611a986109e2875165ffffffffffff1690565b03611ae45750611ad292611aae611ab992610cdf565b905f5260205f200190565b9065ffffffffffff82549181199060301b169116179055565b01516001600160d01b031690565b9190565b915050611b1791611b04611af6610712565b65ffffffffffff9093168352565b6001600160d01b038816828601526119de565b611ad2565b604051632520601d60e01b8152600490fd5b611b529250611b3e611af6610712565b6001600160d01b03851660208301526119de565b5f9190565b8015611c905780611c29611c22611c18611c0e611c04611bfa611bf0611be660016107cb9a5f908b60801c80611c84575b508060401c80611c77575b508060201c80611c6a575b508060101c80611c5d575b508060081c80611c50575b508060041c80611c43575b508060021c80611c36575b50821c611c2f575b811c1b611bdf818b6112a6565b0160011c90565b611bdf818a6112a6565b611bdf81896112a6565b611bdf81886112a6565b611bdf81876112a6565b611bdf81866112a6565b611bdf81856112a6565b80926112a6565b90610f2a565b8101611bd2565b600291509101905f611bca565b600491509101905f611bbf565b600891509101905f611bb4565b601091509101905f611ba9565b602091509101905f611b9e565b604091509101905f611b93565b9150506080905f611b88565b505f90565b91905b838210611ca55750505090565b9091928083169080841860011c820180921161096557845f5265ffffffffffff808360205f20015416908416105f14611ce25750925b9190611c98565b939250611cee90610fbc565b91611cdb56fef0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a2646970667358221220ee52c4734e4b032c79e9f76b7ae44a51bfeb78ae418a11c4ec4f864df6af816064736f6c63430008190033","sourceMap":"445:2048:98:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;-1:-1:-1;;;;;445:2048:98;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;445:2048:98;;;;;;;;;;;;;;;:::o;:::-;;;;;;-1:-1:-1;;445:2048:98;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;-1:-1:-1;;;;;445:2048:98;;;;;;;;;;;:::i;:::-;2355:73:29;;1847:1;445:2048:98;;3526:20:29;3522:88;;1847:1;;;445:2048:98;;-1:-1:-1;;;4546:86:97;;467:2:93;445:2048:98;;;;4546:86:97;;445:2048:98;-1:-1:-1;;;;;4546:86:97;445:2048:98;;;4572:26:97;445:2048:98;;4546:86:97;;;;;;;-1:-1:-1;4546:86:97;;;445:2048:98;4636:10:97;;445:2048:98;;4546:100:97;4542:160;;445:2048:98;;774:1493;445:2048;;;774:1493;;:::i;:::-;3282:1:29;1805;2355:73;1847:1;3716:283;3282:1;445:2048:98;;;;;;;;;;;;;;;;;4542:160:97;445:2048:98;;-1:-1:-1;;;4669:22:97;;445:2048:98;;4669:22:97;4546:86;;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;;:::i;3522:88:29:-;445:2048:98;;-1:-1:-1;;;3569:30:29;;445:2048:98;;3569:30:29;445:2048:98;;;;;;;:::o;:::-;;;;;;-1:-1:-1;;445:2048:98;;;;;;1435:38:97;-1:-1:-1;;;;;445:2048:98;;;;;;;;;;;;-1:-1:-1;;445:2048:98;;;;;2936:47:97;:38;445:2048:98;;;;;:::i;:::-;;;-1:-1:-1;445:2048:98;2936:16:97;445:2048:98;;;-1:-1:-1;445:2048:98;;;;;;;;;;;;;;;;;2936:38:97;:47;:::i;:::-;445:2048:98;;;;;;;;;;;;-1:-1:-1;;445:2048:98;;;;;;1788:109:97;445:2048:98;;;;;:::i;:::-;;;-1:-1:-1;445:2048:98;1788:109:97;445:2048:98;;;-1:-1:-1;445:2048:98;;;;;;;;;;;;;;;;;1788:109:97;445:2048:98;;;;;;;;;;;;;;-1:-1:-1;;445:2048:98;;;;;;;1374:6:97;445:2048:98;;;;;;;;;-1:-1:-1;;445:2048:98;;;;;;1528:51:97;-1:-1:-1;;;;;445:2048:98;;;;;;;;;;;;-1:-1:-1;;445:2048:98;;;;;;322:32:74;-1:-1:-1;;;;;445:2048:98;;;;;;;;;;;;-1:-1:-1;;445:2048:98;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;445:2048:98;;;;-1:-1:-1;;;;;445:2048:98;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;445:2048:98;;;;;;;4301:16:26;445:2048:98;;4726:16:26;;:34;;;;445:2048:98;4805:1:26;4790:16;:50;;;;445:2048:98;4855:13:26;:30;;;;445:2048:98;4851:91:26;;;-1:-1:-1;;;;;;;;;;;445:2048:98;;-1:-1:-1;;445:2048:98;;;;;718:4:74;;4951:18:26;4979:67;;718:4:74;:::i;:::-;5066:101:26;;445:2048:98;5066:101:26;-1:-1:-1;;;;;;;;;;;445:2048:98;;-1:-1:-1;;;;445:2048:98;;;;;-1:-1:-1;445:2048:98;;5142:14:26;;445:2048:98;;5142:14:26;445:2048:98;4979:67:26;-1:-1:-1;;;;;;;;;;;445:2048:98;;-1:-1:-1;;;;445:2048:98;-1:-1:-1;;;445:2048:98;;;718:4:74;:::i;4851:91:26:-;445:2048:98;;-1:-1:-1;;;4908:23:26;;445:2048:98;;4908:23:26;4855:30;4872:13;;;4855:30;;;4790:50;4818:4;4810:25;:30;;-1:-1:-1;4790:50:26;;4726:34;;;-1:-1:-1;4726:34:26;;445:2048:98;;;;;;;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;445:2048:98;;;;-1:-1:-1;445:2048:98;;;477:31:80;445:2048:98;;;;;;:::i;:::-;;;;;;;;;;;;;;;416:25:80;;;;445:2048:98;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;-1:-1:-1;445:2048:98;;;;;;;;;;;;;477:31:80;;445:2048:98;;;;;;;;;;:::i;:::-;477:31:80;;;;;;;;;:::i;:::-;518:79;;;445:2048:98;518:79:80;;445:2048:98;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;445:2048:98;;;;;;;:::o;:::-;;:::i;:::-;;;;;;;-1:-1:-1;;;;;445:2048:98;;;;;;;:::o;:::-;-1:-1:-1;;;;;445:2048:98;;;;;;:::o;:::-;;;477:31:80;;445:2048:98;;;;;;;;-1:-1:-1;;;;;445:2048:98;;;;;;;:::o;:::-;;;;;;;:::i;:::-;:::o;:::-;-1:-1:-1;;;;;445:2048:98;;;;;;-1:-1:-1;;445:2048:98;;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;445:2048:98;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;445:2048:98;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;-1:-1:-1;;;;;445:2048:98;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;2692:73:97;:38;445:2048:98;;;:::i;:::-;;;;;-1:-1:-1;445:2048:98;2692:16:97;445:2048:98;;;-1:-1:-1;445:2048:98;;;;;;;;;;;;;;;;;2692:38:97;:73;:::i;445:2048:98:-;;;;;3248:62:97;445:2048:98;;;:::i;:::-;3248:62:97;;;;;:::i;:::-;445:2048:98;;;;;;;;;;;;;-1:-1:-1;;445:2048:98;;;;;;;-1:-1:-1;;;;;404:28:74;445:2048:98;;;;;;;;;;-1:-1:-1;;445:2048:98;;;;;;;1271:7:97;445:2048:98;;;;;;;;;-1:-1:-1;;445:2048:98;;;;;;;;-1:-1:-1;;;;;445:2048:98;;;;;;;;;;;;;;;:::i;:::-;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;;;;445:2048:98;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;;;;:::o;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;:::i;774:1493::-;;;;;;;;445:2048;;:::i;:::-;1076:16;;1072:91;;774:1493;837:15:63;;819:34;837:15;819:34;:::i;:::-;-1:-1:-1;445:2048:98;1215:29;;;;:27;;:13;;-1:-1:-1;;;;;445:2048:98;1215:13;445:2048;;-1:-1:-1;;;;;445:2048:98;;;1215:27;445:2048;;-1:-1:-1;;;1215:29:98;;445:2048;;;;;1215:29;;;;;;1177:67;1215:29;1196:48;1215:29;-1:-1:-1;1215:29:98;;;774:1493;1196:48;;:::i;:::-;445:2048;;;;1177:67;445:2048;;;1177:67;;;:107;;;;;774:1493;1173:178;;;1418:87;1531:33;1474:30;;1418:87;;;;:::i;:::-;1531:33;;;;;:::i;:::-;1578:18;;;1574:75;;1950:87;;;2200:60;1718:16;2200:60;1718:16;;;;;;:::i;:::-;1791:13;;;;;:::i;:::-;445:2048;;:::i;:::-;;;;1215:29;1961:75;;445:2048;;;1950:87;;;1215:29;1950:87;;445:2048;;;;;;;;;;;;;;;;;;;1950:87;;;;;;:::i;:::-;2087:16;;;;:::i;:::-;2167;;;;;;:::i;:::-;445:2048;;;;;;;;;;;;;;-1:-1:-1;;;;;445:2048:98;;;;;;;;;;;2200:60;;;;774:1493::o;1574:75::-;445:2048;;-1:-1:-1;;;1619:19:98;;1215:29;;1619:19;1173:178;445:2048;;-1:-1:-1;;;1315:25:98;;1215:29;;1315:25;1177:107;837:15:63;;1248:36:98;819:34:63;837:15;819:34;:::i;1248:36:98:-;-1:-1:-1;1248:36:98;1177:107;;;1215:29;;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;1072:91;1121:31;;;;;;;;:::i;:::-;1072:91;;;;;445:2048;;;;;;;;;;;;;;;;;-1:-1:-1;445:2048:98;;;;;;;;-1:-1:-1;;445:2048:98;;;;:::o;2505:267:97:-;-1:-1:-1;445:2048:98;;;2692:16:97;445:2048:98;;;;;;;;-1:-1:-1;;;;;445:2048:98;;;;;;;;;2692:73:97;;2505:267;;2692:73;:::i;445:2048:98:-;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;445:2048:98;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;;;;445:2048:98;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;445:2048:98;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;445:2048:98;;;;;;;;:::o;:::-;;;;;;;;;;:::o;3323:1122:97:-;;445:2048:98;;:::i;:::-;;;;3608:16:97;3604:109;;3323:1122;837:15:63;;819:34;837:15;819:34;:::i;:::-;-1:-1:-1;445:2048:98;;;;3778:27:97;;:13;;-1:-1:-1;;;;;445:2048:98;3778:13:97;445:2048:98;3778:27:97;445:2048:98;;;;;;;3778:29:97;;;;;;;;;;;;;;;3740:67;3778:29;3759:48;3778:29;-1:-1:-1;3778:29:97;;;3759:48;;:::i;3740:67::-;445:2048:98;;;3740:67:97;;;:107;;;;;3323:1122;3740:197;;;;3323:1122;3723:263;;;445:2048:98;3778:29:97;445:2048:98;;;;;;;;;;4025:25:97;;;;;;;;;4010:143;4025:25;;;-1:-1:-1;4025:25:97;;;3323:1122;4113:30;;;445:2048:98;;;;;;;;;;;4010:143:97;;;;;3778:29;4010:143;;;:::i;:::-;;;-1:-1:-1;;;;;445:2048:98;4010:143:97;;;;;;;4181:257;4010:143;-1:-1:-1;4010:143:97;;;3323:1122;3996:157;;4293:102;3996:157;;4233:162;3996:157;4207:231;3996:157;;2936:28;:47;:38;:28;;;445:2048:98;;2936:16:97;445:2048:98;;;;;;;2936:28:97;445:2048:98;;;;;;;;;;;;;;;;2936:47:97;4351:43;;;4293:102;;:::i;:::-;4233:162;;:::i;:::-;4207:231;:::i;4181:257::-;3323:1122;:::o;4010:143::-;4233:162;4010:143;;;4207:231;4010:143;;;;4293:102;4010:143;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;;;;;4025:25;;;;;;;;;;;;;;:::i;:::-;;;;3723:263;3962:13;;;;;;-1:-1:-1;3962:13:97;-1:-1:-1;3962:13:97;:::o;3740:197::-;3886:41;;3867:70;3886:51;;:41;;;445:2048:98;;3886:29:97;445:2048:98;;;;;;;3886:51:97;445:2048:98;;;;;3867:70:97;-1:-1:-1;3740:197:97;;;:107;837:15:63;;3811:36:97;819:34:63;837:15;819:34;:::i;3811:36:97:-;;;;3740:107;;;3778:29;;;;;;;;;;;;;;;:::i;3604:109::-;3662:40;;;;;;;;;;;;:::i;:::-;3604:109;;;;2557:104:58;;2641:5;;;;;;:13;2557:104;:::o;2641:13::-;;;2557:104;:::o;4714:335:97:-;;;;445:2048:98;-1:-1:-1;445:2048:98;4876:29:97;445:2048:98;;;;4876:51:97;445:2048:98;;-1:-1:-1;445:2048:98;;;;;;;;;;;;;;;;;4876:51:97;445:2048:98;;;;;-1:-1:-1;4872:171:97;;4714:335;;;:::o;4872:171::-;4962:70;445:2048:98;4962:51:97;445:2048:98;-1:-1:-1;445:2048:98;4876:29:97;445:2048:98;;;-1:-1:-1;445:2048:98;;;;;;;;;;;;;;;;;4962:51:97;445:2048:98;;;;;;;;;;;;;;9856:1:61;445:2048:98;;;;;;;:::o;5055:221:97:-;;;445:2048:98;-1:-1:-1;445:2048:98;5160:16:97;445:2048:98;;2936:47:97;:38;5160;445:2048:98;;-1:-1:-1;445:2048:98;;;;;;;;;;;;;;;;;5160:38:97;837:15:63;819:34;837:15;819:34;:::i;:::-;445:2048:98;-1:-1:-1;445:2048:98;5160:16:97;445:2048:98;;;-1:-1:-1;445:2048:98;;;;;;;;;;;;;;;;;2936:47:97;445:2048:98;;;;;;;;6360:12:91;;;445:2048:98;;;6360:24:91;6356:75;;5055:221:97;6474:30:91;;;:::i;:::-;445:2048:98;;;;;6578:12:91;;;;:::i;:::-;;6604:24;;;5055:221:97;-1:-1:-1;6600:188:91;;;-1:-1:-1;;;;445:2048:98;;;;;;;6644:29:91;:21;;;;:::i;:::-;:29;445:2048:98;;;;;;;;;;;;;;;;;;;;;6600:188:91;6753:24;;8167:38:61;;-1:-1:-1;;;;;445:2048:98;;;;;8167:38:61;:::i;:::-;6753:24:91;;;:::i;6604:::-;445:2048:98;;;;;;6614:14:91;;-1:-1:-1;6604:24:91;;;6356:75;6400:20;;;:::i;:::-;6356:75;;445:2048:98;;;;;;;;-1:-1:-1;;;;;445:2048:98;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;5282:431:97:-;;;;5487:25;;:23;:13;445:2048:98;5494:5:97;445:2048:98;;;;;;;;;5487:23:97;445:2048:98;;-1:-1:-1;;;5487:25:97;;445:2048:98;;;;;5487:25:97;;;;;;;5631:65;5487:25;5631:65;5487:25;5494:5;5487:25;;;5282:431;-1:-1:-1;;;;;;445:2048:98;;;;:::i;:::-;-1:-1:-1;;;;;5677:4:97;445:2048:98;;;5677:4:97;5487:25;5642:53;;445:2048:98;;;5631:65:97;;;5487:25;5631:65;;;:::i;:::-;5472:234;;;;;5494:5;445:2048:98;5472:234:97;445:2048:98;;;;;;;;;;;;;;5472:234:97;;5487:25;5472:234;;;:::i;:::-;;;;;;;;;;;5282:431;:::o;5472:234::-;;;;;;:::i;:::-;;;:::i;5487:25::-;;;;;;;;;;;;;;:::i;:::-;;;;5719:137;5809:5;445:2048:98;;;;-1:-1:-1;;;5802:47:97;;;;;445:2048:98;;;;;;;;;;;;;;;5802:47:97;;445:2048:98;;;;;;-1:-1:-1;;;;;445:2048:98;5802:47:97;;;;;;;;5719:137;:::o;5802:47::-;;;;;;;;;;;;;:::i;:::-;;5719:137::o;445:2048:98:-;;;;;;;:::o;:::-;;;;;;;;;;;;5862:623:97;;;5988:12;445:2048:98;;;;;;;5984:495:97;;5862:623;;;;;;:::o;5984:495::-;445:2048:98;;-1:-1:-1;;;6033:22:97;;445:2048:98;6033:22:97;;445:2048:98;;6033:22:97;;445:2048:98;;-1:-1:-1;;;;;445:2048:98;6033:22:97;;;;;;;5988:12;6033:22;;;5984:495;-1:-1:-1;445:2048:98;;-1:-1:-1;;;6033:22:97;6094:81;;;;;;;;445:2048:98;;;;-1:-1:-1;;;;;445:2048:98;;;;;;;;;;;;;;;;;;;;;;6094:81:97;445:2048:98;;;;6094:81:97;;477:31:80;;6094:81:97;;;;;;:::i;:::-;445:2048:98;6194:9:97;:55;6190:124;;5988:12;6328:141;;;;;;1271:7;6328:141;;5984:495;;;;;;;6190:124;445:2048:98;;-1:-1:-1;;;6276:23:97;;6033:22;;6276:23;6033:22;6094:81;6033:22;;;6094:81;6033:22;;;;;;;;;;;:::i;:::-;;;;;445:2048:98;;;;;;;;-1:-1:-1;445:2048:98;;-1:-1:-1;445:2048:98;;;-1:-1:-1;445:2048:98;:::o;:::-;;;;;;;;;;;;10580:184:91;445:2048:98;;10303:8:61;;;:63;-1:-1:-1;10303:63:61;-1:-1:-1;;;;;445:2048:98;;10726:7:91;445:2048:98;;10736:12:91;:17;:12;;:17;:::i;:::-;445:2048:98;;;;;;10580:184:91;:::o;10726:31::-;;;-1:-1:-1;10580:184:91;:::o;10303:63:61:-;445:2048:98;;;;;;;;;;14249:109:61;-1:-1:-1;14249:109:61;;-1:-1:-1;14249:109:61;;;445:2048:98;;;10303:63:61;;445:2048:98;;;;;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;445:2048:98;;;;;;;;:::i;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;:::i;6491:564:97:-;6614:34;6491:564;6614:34;;;;:::i;:::-;445:2048:98;;-1:-1:-1;;;6664:41:97;;-1:-1:-1;;;;;445:2048:98;;;6664:41:97;;;445:2048:98;;;;;6664:41:97;;;445:2048:98;;;6674:13:97;445:2048:98;;6664:41:97;;;;;;;-1:-1:-1;6664:41:97;;;6491:564;6663:42;;6659:90;;2540:111:29;6850:27:97;6664:41;2540:111:29;;;:::i;:::-;-1:-1:-1;445:2048:98;;-1:-1:-1;;;;;;445:2048:98;-1:-1:-1;;;;;445:2048:98;;;;;6850:27:97;:::i;:::-;445:2048:98;;;;;;;;;;6892:23:97;;;;;;;;;-1:-1:-1;6892:23:97;;;6491:564;445:2048:98;;;6892:37:97;:64;;;6491:564;6888:112;;445:2048:98;7010:38:97;;445:2048:98;;-1:-1:-1;445:2048:98;;-1:-1:-1;;;;445:2048:98;;;;;;-1:-1:-1;;;445:2048:98;;;;;;;;6888:112:97;445:2048:98;;-1:-1:-1;;;6979:10:97;;6664:41;;6979:10;6892:64;-1:-1:-1;445:2048:98;;;;6892:64:97;;:23;;;;;;-1:-1:-1;6892:23:97;;;;;;:::i;:::-;;;;;6659:90;445:2048:98;;-1:-1:-1;;;6728:10:97;;6664:41;;6728:10;6664:41;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;445:2048:98;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;:::o;7558:604:91:-;;445:2048:98;;7686:17:91;7682:83;;445:2048:98;7789:27:91;445:2048:98;7789:27:91;445:2048:98;;7789:27:91;;;;;;:::i;:::-;7860:14;;;;;:::i;:::-;445:2048:98;;;;;;;;;;;;;;;;7888:22:91;;;7884:77;;7975:21;-1:-1:-1;7975:84:91;;;;7558:604;7971:139;;;;8127:28;;;;:::i;7971:139::-;8082:17;;7789:27;8082:17;445:2048:98;8075:24:91;:::o;7975:84::-;445:2048:98;;;8009:16:91;445:2048:98;;8009:16:91;:::i;:::-;445:2048:98;;;8001:24:91;:57;;;;;7975:84;;;;;;;8001:57;8029:29;8038:8;;;8029:18;8038:8;8029:23;8038:8;;:::i;:::-;8029:18;;:::i;:::-;445:2048:98;;;;;8029:29:91;;8001:57;;;;7884:77;7933:17;;;;;7789:27;7933:17;445:2048:98;7926:24:91;:::o;7682:83::-;7726:28;;;;:::i;14291:213:59:-;445:2048:98;14369:24:59;;;;14365:103;;445:2048:98;14291:213:59;:::o;14365:103::-;445:2048:98;;;;14416:41:59;;;;;;14447:2;14416:41;;;445:2048:98;;;;;14416:41:59;445:2048:98;;;-1:-1:-1;;;445:2048:98;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::o;:::-;;;;;-1:-1:-1;;;445:2048:98;;;;;;;;;;;;;;;:::i;6893:76:26:-;;;:::i;:::-;;;:::i;:::-;1805:1:29;2355:73;1847:1;6893:76:26:o;2273:218:98:-;-1:-1:-1;445:2048:98;;;;;:::i;:::-;;;;;;2419:30;;445:2048;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;2419:30;445:2048;:::i;:::-;;;;2273:218;:::o;6999:207:91:-;;445:2048:98;;9594:15:61;-1:-1:-1;9619:18:61;9652:7;9658:1;9652:7;;9648:234;;6999:207:91;9906:53:61;;;;;:::i;:::-;9977:8;;;:63;-1:-1:-1;9977:63:61;;-1:-1:-1;;;;;445:2048:98;;7168:7:91;445:2048:98;;;7178:12:91;;:17;:12;;:17;:::i;9977:63:61:-;9992:41;10025:7;9992:48;10025:7;;:::i;:::-;9992:41;14249:109;;;;;;14099:265;;9992:41;445:2048:98;;;;;9992:48:61;9977:63;;;9648:234;9695:14;;;;;:::i;:::-;445:2048:98;;;;;;;9906:53:61;14249:109;;-1:-1:-1;14249:109:61;445:2048:98;14249:109:61;;;-1:-1:-1;14249:109:61;;445:2048:98;;;;;9727:48:61;9723:149;445:2048:98;;;9795:10:61;9723:149;9648:234;;9723:149;9850:7;;;;;;:::i;:::-;9723:149;9648:234;;445:2048:98;;;;;;;:::i;:::-;-1:-1:-1;445:2048:98;;;;;;;:::o;11486:272:91:-;;445:2048:98;11308:22:61;11718:31:91;11486:272;445:2048:98;;:::i;:::-;;;;:::i;:::-;;11308:22:61;;:::i;:::-;445:2048:98;;:::i;:::-;;11718:12:91;445:2048:98;;;;;11731:17:91;445:2048:98;;;;;11731:17:91;;445:2048:98;;11718:12:91;;:31;:::i;:::-;445:2048:98;;;;;;;;;:::i;:::-;;;;;;11731:17:91;11672:79;;445:2048:98;11486:272:91;:::o;445:2048:98:-;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::o;10552:388:61:-;445:2048:98;;10728:8:61;;;10752:20;;10690:17;10752:20;10690:17;10752:20;10690:17;10752:20;:::o;10724:210::-;445:2048:98;;;;;;;;;;;14249:109:61;10690:17;14249:109;;10690:17;14249:109;;;445:2048:98;:::i;:::-;;;;;;;14249:109:61;445:2048:98;;;;;10911:11:61;;445:2048:98;;10886:37:61;10870:1;10886:37;;;:::o;7084:141:26:-;445:2048:98;-1:-1:-1;;;;;;;;;;;445:2048:98;;;;7150:18:26;7146:73;;7084:141::o;7146:73::-;445:2048:98;;-1:-1:-1;;;7191:17:26;;;;;445:2048:98;;;-1:-1:-1;;;445:2048:98;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;445:2048:98;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;11513:870:61;445:2048:98;;11513:870:61;;;445:2048:98;11513:870:61;11672:7;;;;445:2048:98;11775:28:61;11795:7;;;:::i;11775:28::-;445:2048:98;:::i;:::-;;;;;;;;;;;;;;;;11877:15:61;-1:-1:-1;11873:91:61;;445:2048:98;;12233:11:61;445:2048:98;;;12027:16:61;445:2048:98;;;;;;;12027:16:61;;;;12083:7;12063:43;12083:7;;12063:28;12083:7;;:::i;:::-;12063:28;14249:109;;;;;;14099:265;;12063:28;445:2048:98;;;;;;;;;;;;;;;;;12063:43:61;12233:11;445:2048:98;-1:-1:-1;;;;;445:2048:98;;;;12225:27:61;;:::o;12023:189::-;445:2048:98;;;12145:52:61;445:2048:98;12155:41:61;445:2048:98;;:::i;:::-;;;;;;;;12155:41:61;-1:-1:-1;;;;;445:2048:98;;12155:41:61;;;445:2048:98;12145:52:61;:::i;:::-;12023:189;;11873:91;445:2048:98;;-1:-1:-1;;;11919:30:61;;;;;11668:709;12283:52;445:2048:98;;12293:41:61;445:2048:98;;:::i;12293:41:61:-;-1:-1:-1;;;;;445:2048:98;;12293:41:61;;;445:2048:98;12145:52:61;:::i;12283:::-;11678:1;12349:17;;:::o;8587:1642:58:-;8658:6;;8654:45;;9401:7;10201:10;10142:26;10093;10044;9995;9946;9897;9848;445:2048:98;10189:23:58;9401:7;8663:1;445:2048:98;;;;10826:16:58;10822:99;;8587:1642;445:2048:98;;;;10938:15:58;10934:96;;8587:1642;445:2048:98;;;;11047:15:58;11043:96;;8587:1642;445:2048:98;;;;11156:15:58;11152:96;;8587:1642;445:2048:98;;;;11265:14:58;11261:93;;8587:1642;445:2048:98;;;;11371:14:58;11367:93;;8587:1642;445:2048:98;;;;11477:14:58;11473:93;;8587:1642;445:2048:98;;;11579:64:58;;8587:1642;445:2048:98;;;9858:10:58;;;;:::i;:::-;445:2048:98;;;;;9848:26:58;9907:10;;;;:::i;9897:26::-;9956:10;;;;:::i;9946:26::-;10005:10;;;;:::i;9995:26::-;10054:10;;;;:::i;10044:26::-;10103:10;;;;:::i;10093:26::-;10152:10;;;;:::i;10142:26::-;10201:10;;;:::i;:::-;10189:23;;:::i;11579:64::-;445:2048:98;;11579:64:58;;11473:93;445:2048:98;11511:11:58;;445:2048:98;;11473:93:58;;;;11367;445:2048:98;11405:11:58;;445:2048:98;;11367:93:58;;;;11261;445:2048:98;11299:11:58;;445:2048:98;;11261:93:58;;;;11152:96;445:2048:98;11191:12:58;;445:2048:98;;11152:96:58;;;;11043;445:2048:98;11082:12:58;;445:2048:98;;11043:96:58;;;;10934;445:2048:98;10973:12:58;;445:2048:98;;10934:96:58;;;;10822:99;10862:13;;;445:2048:98;10822:99:58;;;;8654:45;8680:8;8663:1;8680:8;:::o;12736:433:61:-;;;12919:10;;;;;;13151:11;;;12736:433;:::o;12912:230::-;2900:5:58;;;;;;2910;;;;445:2048:98;;;;;;;;;14249:109:61;-1:-1:-1;14249:109:61;445:2048:98;14249:109:61;;;-1:-1:-1;14249:109:61;;445:2048:98;;;;;-1:-1:-1;12996:136:61;445:2048:98;;;13055:10:61;12996:136;;12912:230;;;;12996:136;13110:7;;;;;;:::i;:::-;12996:136;;","linkReferences":{},"immutableReferences":{"64520":[{"start":1098,"length":32}],"64523":[{"start":2128,"length":32},{"start":4506,"length":32}],"72304":[{"start":765,"length":32},{"start":5322,"length":32}],"72307":[{"start":508,"length":32},{"start":1030,"length":32}]}},"methodIdentifiers":{"BURNER_GAS_LIMIT()":"d5c24e1a","BURNER_RESERVE()":"2964f8dc","FACTORY()":"2dd31000","NETWORK_MIDDLEWARE_SERVICE()":"2c9d45b3","TYPE()":"bb24fe8a","VAULT_FACTORY()":"103f2907","cumulativeSlash(bytes32,address)":"1a2be2c4","cumulativeSlashAt(bytes32,address,uint48,bytes)":"aa8e6489","initialize(bytes)":"439fab91","isBurnerHook()":"34d098ea","latestSlashedCaptureTimestamp(bytes32,address)":"267de1f3","slash(bytes32,address,uint256,uint48,bytes)":"021a8156","slashableStake(bytes32,address,uint48,bytes)":"aab3595f","staticDelegateCall(address,bytes)":"9f86fd85","vault()":"fbfa77cf"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"vaultFactory\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"networkMiddlewareService\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"slasherFactory\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"entityType\",\"type\":\"uint64\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"CheckpointUnorderedInsertion\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientBurnerGas\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientSlash\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidCaptureTimestamp\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NoBurner\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotNetworkMiddleware\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotVault\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ReentrancyGuardReentrantCall\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"bits\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"SafeCastOverflowedUintDowncast\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"slashedAmount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint48\",\"name\":\"captureTimestamp\",\"type\":\"uint48\"}],\"name\":\"Slash\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"BURNER_GAS_LIMIT\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"BURNER_RESERVE\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"FACTORY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"NETWORK_MIDDLEWARE_SERVICE\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"TYPE\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"VAULT_FACTORY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"cumulativeSlash\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hint\",\"type\":\"bytes\"}],\"name\":\"cumulativeSlashAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isBurnerHook\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"latestSlashedCaptureTimestamp\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"value\",\"type\":\"uint48\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint48\",\"name\":\"captureTimestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hints\",\"type\":\"bytes\"}],\"name\":\"slash\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"slashedAmount\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"captureTimestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hints\",\"type\":\"bytes\"}],\"name\":\"slashableStake\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"staticDelegateCall\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"vault\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"CheckpointUnorderedInsertion()\":[{\"details\":\"A value was attempted to be inserted on a past checkpoint.\"}],\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"ReentrancyGuardReentrantCall()\":[{\"details\":\"Unauthorized reentrant call.\"}],\"SafeCastOverflowedUintDowncast(uint8,uint256)\":[{\"details\":\"Value doesn't fit in an uint of `bits` size.\"}]},\"events\":{\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"Slash(bytes32,address,uint256,uint48)\":{\"params\":{\"captureTimestamp\":\"time point when the stake was captured\",\"operator\":\"operator that is slashed\",\"slashedAmount\":\"virtual amount of the collateral slashed\",\"subnetwork\":\"subnetwork that requested the slash\"}}},\"kind\":\"dev\",\"methods\":{\"cumulativeSlash(bytes32,address)\":{\"params\":{\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"},\"returns\":{\"_0\":\"cumulative slash amount\"}},\"cumulativeSlashAt(bytes32,address,uint48,bytes)\":{\"params\":{\"hint\":\"hint for the checkpoint index\",\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\",\"timestamp\":\"time point to get the cumulative slash amount until (inclusively)\"},\"returns\":{\"_0\":\"cumulative slash amount until the given timestamp (inclusively)\"}},\"initialize(bytes)\":{\"params\":{\"data\":\"some data to use\"}},\"slash(bytes32,address,uint256,uint48,bytes)\":{\"details\":\"Only a network middleware can call this function.\",\"params\":{\"amount\":\"maximum amount of the collateral to be slashed\",\"captureTimestamp\":\"time point when the stake was captured\",\"hints\":\"hints for checkpoints' indexes\",\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"},\"returns\":{\"slashedAmount\":\"virtual amount of the collateral slashed\"}},\"slashableStake(bytes32,address,uint48,bytes)\":{\"params\":{\"captureTimestamp\":\"time point to get the stake amount at\",\"hints\":\"hints for the checkpoints' indexes\",\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"},\"returns\":{\"amount\":\"slashable amount of the stake\"}},\"staticDelegateCall(address,bytes)\":{\"details\":\"It allows to use this contract's storage on-chain.\",\"params\":{\"data\":\"data to make a delegatecall with\",\"target\":\"address of the contract to make a delegatecall to\"}}},\"version\":1},\"userdoc\":{\"events\":{\"Slash(bytes32,address,uint256,uint48)\":{\"notice\":\"Emitted when a slash is performed.\"}},\"kind\":\"user\",\"methods\":{\"BURNER_GAS_LIMIT()\":{\"notice\":\"Get a gas limit for the burner.\"},\"BURNER_RESERVE()\":{\"notice\":\"Get a reserve gas between the gas limit check and the burner's execution.\"},\"FACTORY()\":{\"notice\":\"Get the factory's address.\"},\"NETWORK_MIDDLEWARE_SERVICE()\":{\"notice\":\"Get the network middleware service's address.\"},\"TYPE()\":{\"notice\":\"Get the entity's type.\"},\"VAULT_FACTORY()\":{\"notice\":\"Get the vault factory's address.\"},\"cumulativeSlash(bytes32,address)\":{\"notice\":\"Get a cumulative slash amount for an operator on a subnetwork.\"},\"cumulativeSlashAt(bytes32,address,uint48,bytes)\":{\"notice\":\"Get a cumulative slash amount for an operator on a subnetwork until a given timestamp (inclusively) using a hint.\"},\"initialize(bytes)\":{\"notice\":\"Initialize this entity contract by using a given data.\"},\"isBurnerHook()\":{\"notice\":\"Get if the burner is needed to be called on a slashing.\"},\"latestSlashedCaptureTimestamp(bytes32,address)\":{\"notice\":\"Get the latest capture timestamp that was slashed on a subnetwork.\"},\"slash(bytes32,address,uint256,uint48,bytes)\":{\"notice\":\"Perform a slash using a subnetwork for a particular operator by a given amount using hints.\"},\"slashableStake(bytes32,address,uint48,bytes)\":{\"notice\":\"Get a slashable amount of a stake got at a given capture timestamp using hints.\"},\"staticDelegateCall(address,bytes)\":{\"notice\":\"Make a delegatecall from this contract to a given target contract with a particular data (always reverts with a return data).\"},\"vault()\":{\"notice\":\"Get the vault's address.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/contracts/slasher/Slasher.sol\":\"Slasher\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609\",\"dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardUpgradeable.sol\":{\"keccak256\":\"0xb44e086e941292cdc7f440de51478493894ef0b1aeccb0c4047445919f667f74\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://942dad22fbdc1669f025540ba63aa3ccfad5f8458fc5d4525b31ebf272e7af45\",\"dweb:/ipfs/Qmdo4X2M82aM3AMoW2kf2jhYkSCyC4T1pHNd6obdsDFnAB\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875\",\"dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0xe19a4d5f31d2861e7344e8e535e2feafb913d806d3e2b5fe7782741a2a7094fe\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4aed79c0fa6f0546ed02f2f683e8f77f0fd2ed7eb34d8bbf3d373c9a6d95b13c\",\"dweb:/ipfs/QmWqVz6UAVqmnWU5pqYPt1o6iDEZyPaBraAA3rKfTTSfYj\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/Checkpoints.sol\":{\"keccak256\":\"0xbdc5e074d7dd6678f67e92b1a51a20226801a407b0e1af3da367c5d1ff4519ad\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a36cca6b22fff3db16fc789ff6c60eea71d4b156065d4d0c83a0bc5e91a77a8b\",\"dweb:/ipfs/QmYN3exd5AemxjBrN8XMB1p5LbbE16uC3sjbYjwi8AjcGR\"]},\"lib/openzeppelin-contracts/contracts/utils/types/Time.sol\":{\"keccak256\":\"0xc7755af115020049e4140f224f9ee88d7e1799ffb0646f37bf0df24bf6213f58\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7f09bf94d5274334ec021f61a04659db303f31e60460e14b709c9bf187740111\",\"dweb:/ipfs/QmNvgomZYUwFAt4cZbPWAiTeSZQreGehY9BK5xyVJsUttb\"]},\"src/contracts/common/Entity.sol\":{\"keccak256\":\"0x3d61a932995b8443381f3950542d388223a2c26dd5d29a3274dea3baa7388bd7\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://7cdf5f03ca72fd263fd32ff59c8d88ddca911ae83896a287d10772c1bbe9b138\",\"dweb:/ipfs/QmbP84r5BWT1Rn9AYTntWSf3xUMTTCohTZJFhbBhDXFoHa\"]},\"src/contracts/common/StaticDelegateCallable.sol\":{\"keccak256\":\"0x350029aa8955eacaffffaeb58babc5c98e80ebc5c5db388ed17ee6465f4a9d90\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://eb392a8ee9050e0af606897df63e3404e3829e8b688b580663892f9664195764\",\"dweb:/ipfs/QmaXC8jqV8UrrAFkzXTEv2fJF56sy33HhLxAzaRZmUxuXD\"]},\"src/contracts/libraries/Checkpoints.sol\":{\"keccak256\":\"0xba90097c8bfe0a975499428b5f8ac5569483c7d92ccc28c12d70de416aae040c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://12f5d93ca94cd06d3147db68993165a58e17903ed53682560de61f3085ad4609\",\"dweb:/ipfs/QmePiuAqvXprMLmFZkGZeGjvGPAvsEDHfCDv7BoQhXu9xE\"]},\"src/contracts/libraries/Subnetwork.sol\":{\"keccak256\":\"0xf5ef5506fd66082b3c2e7f3df37529f5a8efad32ac62e7c8914bd63219190bfe\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba031a54ee0d0e9a270c2b9e18437f5668cfeb659cfd5fe0677459d7fcac2a56\",\"dweb:/ipfs/QmReP3H7qQ78tAfgLnJKsNEQNCQfF1X1Get38Ffd4kzq32\"]},\"src/contracts/slasher/BaseSlasher.sol\":{\"keccak256\":\"0x190e5dce196a061bdad42468c52e9f5b0eb7810cd7d0c19f04d6a2e94984f1b6\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://07ca08d0cd43c2fe5d54a5577f6bdd522ced410f5d3a52e764deaa7ba26b5f06\",\"dweb:/ipfs/QmZe3PiMKBQKWcwodaLupragdqxPjgS4v1qMC7RXau8hDF\"]},\"src/contracts/slasher/Slasher.sol\":{\"keccak256\":\"0xeee0cb25fad58d496fdcc641d852d11bae06e6ceed5230ae21150964175c494f\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://34aa27d21246a1bcee0b6a2afa8d9d613441156362430392f75d176511d58c61\",\"dweb:/ipfs/Qmf53Y3zdGfH4PU2zpSGeHZ8mMLzLXCtmkQrG5mnVJECQ3\"]},\"src/interfaces/common/IEntity.sol\":{\"keccak256\":\"0x8ef4b63d6da63489778ccd5f8d13ebdd527dd4b62730b2c616df5af7474d2d21\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a8d69576a9219d85c50816a18ad53a4d53cfcb27ed38b8cccc808dc2734b71b\",\"dweb:/ipfs/QmYVN3P4Q4REvBWJ97TbAcaxm3uyB2anV6NSGa6ZtSwcEv\"]},\"src/interfaces/common/IMigratableEntity.sol\":{\"keccak256\":\"0x8f5f2809f3afbe8ebfbb365dd7b57b4dd3b6f9943a6187eaf648d45895b8e3c4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ffe640537d539e7a4fde70d30d3e4c57f4ba9c2c25c450cea713aae38e8fd5c\",\"dweb:/ipfs/QmSUTGzvdcn1R1KB7tLThMRtESsfPbeXDhhhKWGtntzBds\"]},\"src/interfaces/common/IRegistry.sol\":{\"keccak256\":\"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014\",\"dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK\"]},\"src/interfaces/common/IStaticDelegateCallable.sol\":{\"keccak256\":\"0xa335d4e81b9071b7de66ef92b43ff20671d86516eb1be46fef29a3483cd3f5d5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d464b9db863c14c05547d2b23352f2e9b7b784799cf09f6bbc4906a2a74e3516\",\"dweb:/ipfs/QmUVWzFvJz7eEbDQKiFTTzwi7TEbjcs3VmwdM4kuptAKvi\"]},\"src/interfaces/delegator/IBaseDelegator.sol\":{\"keccak256\":\"0x96bb312f032e17accce3f8f80936d99468029d6b37c9ca74acdb4b026a0148ee\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2a66dcb5b7d1a6ef6a363431ea98ebd78bc4fdd3d7a134d9b542dc66e7d025c2\",\"dweb:/ipfs/QmRhTPLd2ZAyRHmJUFUcWKs9b3if49QY17LYZuRqWmghw8\"]},\"src/interfaces/service/INetworkMiddlewareService.sol\":{\"keccak256\":\"0x347afc7fcf1fbcdb96d66162070ef6c78aed27b3af2c1d5dfb4e511840631783\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2d90b8ceb495159e8e4e95d76447719dd166443f67dfabdd942846162071595c\",\"dweb:/ipfs/QmVVuiAWYx92T6vBvNMKZfTvraCf1fa16BsUKkdNs3hdHA\"]},\"src/interfaces/slasher/IBaseSlasher.sol\":{\"keccak256\":\"0x7c82528b445659c313ab77335c407b0b6efe5e79027187bb287f7bc74202b404\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0274c90aa5df1aa6bb470a6aab53992fb14fd7e5472c9430416505b29647d9cf\",\"dweb:/ipfs/QmckbmJLDetPemVzCnnGcKYWAZV2BRFXGDsjiaec8jkHxx\"]},\"src/interfaces/slasher/IBurner.sol\":{\"keccak256\":\"0xaf495dacc19ae0b3c787ba8021c5944927d70261536addd234d7dab146158c2b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9b3cc66251008be6ff9fc8b11ecc6831d5a9dca49a3fe9817fcd970253c1d447\",\"dweb:/ipfs/QmVxfb9ALGdF9W3SN2h41gQbUct6tawvu5bw4K89kFQ4HW\"]},\"src/interfaces/slasher/ISlasher.sol\":{\"keccak256\":\"0x34d226d67a3d5e16571f2fac91a8b9773551bcc41c88a96279669dd78d192625\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a6e8c1462ee4a1b0f745414be043c09012ea676613790aba004b06c85c980d1\",\"dweb:/ipfs/QmadjNEbHKRthtA1EeNy3Kg2sXpejH2KBeHm8QZtBPvXbJ\"]},\"src/interfaces/vault/IVault.sol\":{\"keccak256\":\"0xffee01d383cd4e1a5530c614bf4360c1ef070c288abec9da1eb531b51bc07235\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://04f0046cac285d8ec44ebbb1f79dc94fab4495767190cad8364fbc1fafaadfb9\",\"dweb:/ipfs/QmUawAunwzXfCyShWfhKeThAgKtqe51hmrxvrXvM772M2R\"]},\"src/interfaces/vault/IVaultStorage.sol\":{\"keccak256\":\"0x592626f13754194f83047135de19229c49390bd59e34659b1bb38be71d973a22\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://06a6a9dfddd05e580b32bebe2cff4f63ba26a653180676d58225dd30d9c89d3e\",\"dweb:/ipfs/QmdgzBeY6Sxo8mGtyBxtv1tM1c2kU6J6zjeRd7vuXm4DU6\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.25+commit.b61c2a91"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"vaultFactory","type":"address"},{"internalType":"address","name":"networkMiddlewareService","type":"address"},{"internalType":"address","name":"slasherFactory","type":"address"},{"internalType":"uint64","name":"entityType","type":"uint64"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"CheckpointUnorderedInsertion"},{"inputs":[],"type":"error","name":"InsufficientBurnerGas"},{"inputs":[],"type":"error","name":"InsufficientSlash"},{"inputs":[],"type":"error","name":"InvalidCaptureTimestamp"},{"inputs":[],"type":"error","name":"InvalidInitialization"},{"inputs":[],"type":"error","name":"NoBurner"},{"inputs":[],"type":"error","name":"NotInitialized"},{"inputs":[],"type":"error","name":"NotInitializing"},{"inputs":[],"type":"error","name":"NotNetworkMiddleware"},{"inputs":[],"type":"error","name":"NotVault"},{"inputs":[],"type":"error","name":"ReentrancyGuardReentrantCall"},{"inputs":[{"internalType":"uint8","name":"bits","type":"uint8"},{"internalType":"uint256","name":"value","type":"uint256"}],"type":"error","name":"SafeCastOverflowedUintDowncast"},{"inputs":[{"internalType":"uint64","name":"version","type":"uint64","indexed":false}],"type":"event","name":"Initialized","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32","indexed":true},{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"uint256","name":"slashedAmount","type":"uint256","indexed":false},{"internalType":"uint48","name":"captureTimestamp","type":"uint48","indexed":false}],"type":"event","name":"Slash","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"BURNER_GAS_LIMIT","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"BURNER_RESERVE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"FACTORY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"NETWORK_MIDDLEWARE_SERVICE","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"TYPE","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"VAULT_FACTORY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"cumulativeSlash","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint48","name":"timestamp","type":"uint48"},{"internalType":"bytes","name":"hint","type":"bytes"}],"stateMutability":"view","type":"function","name":"cumulativeSlashAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[],"stateMutability":"view","type":"function","name":"isBurnerHook","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"latestSlashedCaptureTimestamp","outputs":[{"internalType":"uint48","name":"value","type":"uint48"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint48","name":"captureTimestamp","type":"uint48"},{"internalType":"bytes","name":"hints","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"slash","outputs":[{"internalType":"uint256","name":"slashedAmount","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint48","name":"captureTimestamp","type":"uint48"},{"internalType":"bytes","name":"hints","type":"bytes"}],"stateMutability":"view","type":"function","name":"slashableStake","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"staticDelegateCall"},{"inputs":[],"stateMutability":"view","type":"function","name":"vault","outputs":[{"internalType":"address","name":"","type":"address"}]}],"devdoc":{"kind":"dev","methods":{"cumulativeSlash(bytes32,address)":{"params":{"operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"},"returns":{"_0":"cumulative slash amount"}},"cumulativeSlashAt(bytes32,address,uint48,bytes)":{"params":{"hint":"hint for the checkpoint index","operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)","timestamp":"time point to get the cumulative slash amount until (inclusively)"},"returns":{"_0":"cumulative slash amount until the given timestamp (inclusively)"}},"initialize(bytes)":{"params":{"data":"some data to use"}},"slash(bytes32,address,uint256,uint48,bytes)":{"details":"Only a network middleware can call this function.","params":{"amount":"maximum amount of the collateral to be slashed","captureTimestamp":"time point when the stake was captured","hints":"hints for checkpoints' indexes","operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"},"returns":{"slashedAmount":"virtual amount of the collateral slashed"}},"slashableStake(bytes32,address,uint48,bytes)":{"params":{"captureTimestamp":"time point to get the stake amount at","hints":"hints for the checkpoints' indexes","operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"},"returns":{"amount":"slashable amount of the stake"}},"staticDelegateCall(address,bytes)":{"details":"It allows to use this contract's storage on-chain.","params":{"data":"data to make a delegatecall with","target":"address of the contract to make a delegatecall to"}}},"version":1},"userdoc":{"kind":"user","methods":{"BURNER_GAS_LIMIT()":{"notice":"Get a gas limit for the burner."},"BURNER_RESERVE()":{"notice":"Get a reserve gas between the gas limit check and the burner's execution."},"FACTORY()":{"notice":"Get the factory's address."},"NETWORK_MIDDLEWARE_SERVICE()":{"notice":"Get the network middleware service's address."},"TYPE()":{"notice":"Get the entity's type."},"VAULT_FACTORY()":{"notice":"Get the vault factory's address."},"cumulativeSlash(bytes32,address)":{"notice":"Get a cumulative slash amount for an operator on a subnetwork."},"cumulativeSlashAt(bytes32,address,uint48,bytes)":{"notice":"Get a cumulative slash amount for an operator on a subnetwork until a given timestamp (inclusively) using a hint."},"initialize(bytes)":{"notice":"Initialize this entity contract by using a given data."},"isBurnerHook()":{"notice":"Get if the burner is needed to be called on a slashing."},"latestSlashedCaptureTimestamp(bytes32,address)":{"notice":"Get the latest capture timestamp that was slashed on a subnetwork."},"slash(bytes32,address,uint256,uint48,bytes)":{"notice":"Perform a slash using a subnetwork for a particular operator by a given amount using hints."},"slashableStake(bytes32,address,uint48,bytes)":{"notice":"Get a slashable amount of a stake got at a given capture timestamp using hints."},"staticDelegateCall(address,bytes)":{"notice":"Make a delegatecall from this contract to a given target contract with a particular data (always reverts with a return data)."},"vault()":{"notice":"Get the vault's address."}},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/contracts/slasher/Slasher.sol":"Slasher"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b","urls":["bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609","dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardUpgradeable.sol":{"keccak256":"0xb44e086e941292cdc7f440de51478493894ef0b1aeccb0c4047445919f667f74","urls":["bzz-raw://942dad22fbdc1669f025540ba63aa3ccfad5f8458fc5d4525b31ebf272e7af45","dweb:/ipfs/Qmdo4X2M82aM3AMoW2kf2jhYkSCyC4T1pHNd6obdsDFnAB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d","urls":["bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875","dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol":{"keccak256":"0xe19a4d5f31d2861e7344e8e535e2feafb913d806d3e2b5fe7782741a2a7094fe","urls":["bzz-raw://4aed79c0fa6f0546ed02f2f683e8f77f0fd2ed7eb34d8bbf3d373c9a6d95b13c","dweb:/ipfs/QmWqVz6UAVqmnWU5pqYPt1o6iDEZyPaBraAA3rKfTTSfYj"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/Checkpoints.sol":{"keccak256":"0xbdc5e074d7dd6678f67e92b1a51a20226801a407b0e1af3da367c5d1ff4519ad","urls":["bzz-raw://a36cca6b22fff3db16fc789ff6c60eea71d4b156065d4d0c83a0bc5e91a77a8b","dweb:/ipfs/QmYN3exd5AemxjBrN8XMB1p5LbbE16uC3sjbYjwi8AjcGR"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/types/Time.sol":{"keccak256":"0xc7755af115020049e4140f224f9ee88d7e1799ffb0646f37bf0df24bf6213f58","urls":["bzz-raw://7f09bf94d5274334ec021f61a04659db303f31e60460e14b709c9bf187740111","dweb:/ipfs/QmNvgomZYUwFAt4cZbPWAiTeSZQreGehY9BK5xyVJsUttb"],"license":"MIT"},"src/contracts/common/Entity.sol":{"keccak256":"0x3d61a932995b8443381f3950542d388223a2c26dd5d29a3274dea3baa7388bd7","urls":["bzz-raw://7cdf5f03ca72fd263fd32ff59c8d88ddca911ae83896a287d10772c1bbe9b138","dweb:/ipfs/QmbP84r5BWT1Rn9AYTntWSf3xUMTTCohTZJFhbBhDXFoHa"],"license":"BUSL-1.1"},"src/contracts/common/StaticDelegateCallable.sol":{"keccak256":"0x350029aa8955eacaffffaeb58babc5c98e80ebc5c5db388ed17ee6465f4a9d90","urls":["bzz-raw://eb392a8ee9050e0af606897df63e3404e3829e8b688b580663892f9664195764","dweb:/ipfs/QmaXC8jqV8UrrAFkzXTEv2fJF56sy33HhLxAzaRZmUxuXD"],"license":"BUSL-1.1"},"src/contracts/libraries/Checkpoints.sol":{"keccak256":"0xba90097c8bfe0a975499428b5f8ac5569483c7d92ccc28c12d70de416aae040c","urls":["bzz-raw://12f5d93ca94cd06d3147db68993165a58e17903ed53682560de61f3085ad4609","dweb:/ipfs/QmePiuAqvXprMLmFZkGZeGjvGPAvsEDHfCDv7BoQhXu9xE"],"license":"MIT"},"src/contracts/libraries/Subnetwork.sol":{"keccak256":"0xf5ef5506fd66082b3c2e7f3df37529f5a8efad32ac62e7c8914bd63219190bfe","urls":["bzz-raw://ba031a54ee0d0e9a270c2b9e18437f5668cfeb659cfd5fe0677459d7fcac2a56","dweb:/ipfs/QmReP3H7qQ78tAfgLnJKsNEQNCQfF1X1Get38Ffd4kzq32"],"license":"MIT"},"src/contracts/slasher/BaseSlasher.sol":{"keccak256":"0x190e5dce196a061bdad42468c52e9f5b0eb7810cd7d0c19f04d6a2e94984f1b6","urls":["bzz-raw://07ca08d0cd43c2fe5d54a5577f6bdd522ced410f5d3a52e764deaa7ba26b5f06","dweb:/ipfs/QmZe3PiMKBQKWcwodaLupragdqxPjgS4v1qMC7RXau8hDF"],"license":"BUSL-1.1"},"src/contracts/slasher/Slasher.sol":{"keccak256":"0xeee0cb25fad58d496fdcc641d852d11bae06e6ceed5230ae21150964175c494f","urls":["bzz-raw://34aa27d21246a1bcee0b6a2afa8d9d613441156362430392f75d176511d58c61","dweb:/ipfs/Qmf53Y3zdGfH4PU2zpSGeHZ8mMLzLXCtmkQrG5mnVJECQ3"],"license":"BUSL-1.1"},"src/interfaces/common/IEntity.sol":{"keccak256":"0x8ef4b63d6da63489778ccd5f8d13ebdd527dd4b62730b2c616df5af7474d2d21","urls":["bzz-raw://5a8d69576a9219d85c50816a18ad53a4d53cfcb27ed38b8cccc808dc2734b71b","dweb:/ipfs/QmYVN3P4Q4REvBWJ97TbAcaxm3uyB2anV6NSGa6ZtSwcEv"],"license":"MIT"},"src/interfaces/common/IMigratableEntity.sol":{"keccak256":"0x8f5f2809f3afbe8ebfbb365dd7b57b4dd3b6f9943a6187eaf648d45895b8e3c4","urls":["bzz-raw://0ffe640537d539e7a4fde70d30d3e4c57f4ba9c2c25c450cea713aae38e8fd5c","dweb:/ipfs/QmSUTGzvdcn1R1KB7tLThMRtESsfPbeXDhhhKWGtntzBds"],"license":"MIT"},"src/interfaces/common/IRegistry.sol":{"keccak256":"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb","urls":["bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014","dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK"],"license":"MIT"},"src/interfaces/common/IStaticDelegateCallable.sol":{"keccak256":"0xa335d4e81b9071b7de66ef92b43ff20671d86516eb1be46fef29a3483cd3f5d5","urls":["bzz-raw://d464b9db863c14c05547d2b23352f2e9b7b784799cf09f6bbc4906a2a74e3516","dweb:/ipfs/QmUVWzFvJz7eEbDQKiFTTzwi7TEbjcs3VmwdM4kuptAKvi"],"license":"MIT"},"src/interfaces/delegator/IBaseDelegator.sol":{"keccak256":"0x96bb312f032e17accce3f8f80936d99468029d6b37c9ca74acdb4b026a0148ee","urls":["bzz-raw://2a66dcb5b7d1a6ef6a363431ea98ebd78bc4fdd3d7a134d9b542dc66e7d025c2","dweb:/ipfs/QmRhTPLd2ZAyRHmJUFUcWKs9b3if49QY17LYZuRqWmghw8"],"license":"MIT"},"src/interfaces/service/INetworkMiddlewareService.sol":{"keccak256":"0x347afc7fcf1fbcdb96d66162070ef6c78aed27b3af2c1d5dfb4e511840631783","urls":["bzz-raw://2d90b8ceb495159e8e4e95d76447719dd166443f67dfabdd942846162071595c","dweb:/ipfs/QmVVuiAWYx92T6vBvNMKZfTvraCf1fa16BsUKkdNs3hdHA"],"license":"MIT"},"src/interfaces/slasher/IBaseSlasher.sol":{"keccak256":"0x7c82528b445659c313ab77335c407b0b6efe5e79027187bb287f7bc74202b404","urls":["bzz-raw://0274c90aa5df1aa6bb470a6aab53992fb14fd7e5472c9430416505b29647d9cf","dweb:/ipfs/QmckbmJLDetPemVzCnnGcKYWAZV2BRFXGDsjiaec8jkHxx"],"license":"MIT"},"src/interfaces/slasher/IBurner.sol":{"keccak256":"0xaf495dacc19ae0b3c787ba8021c5944927d70261536addd234d7dab146158c2b","urls":["bzz-raw://9b3cc66251008be6ff9fc8b11ecc6831d5a9dca49a3fe9817fcd970253c1d447","dweb:/ipfs/QmVxfb9ALGdF9W3SN2h41gQbUct6tawvu5bw4K89kFQ4HW"],"license":"MIT"},"src/interfaces/slasher/ISlasher.sol":{"keccak256":"0x34d226d67a3d5e16571f2fac91a8b9773551bcc41c88a96279669dd78d192625","urls":["bzz-raw://7a6e8c1462ee4a1b0f745414be043c09012ea676613790aba004b06c85c980d1","dweb:/ipfs/QmadjNEbHKRthtA1EeNy3Kg2sXpejH2KBeHm8QZtBPvXbJ"],"license":"MIT"},"src/interfaces/vault/IVault.sol":{"keccak256":"0xffee01d383cd4e1a5530c614bf4360c1ef070c288abec9da1eb531b51bc07235","urls":["bzz-raw://04f0046cac285d8ec44ebbb1f79dc94fab4495767190cad8364fbc1fafaadfb9","dweb:/ipfs/QmUawAunwzXfCyShWfhKeThAgKtqe51hmrxvrXvM772M2R"],"license":"MIT"},"src/interfaces/vault/IVaultStorage.sol":{"keccak256":"0x592626f13754194f83047135de19229c49390bd59e34659b1bb38be71d973a22","urls":["bzz-raw://06a6a9dfddd05e580b32bebe2cff4f63ba26a653180676d58225dd30d9c89d3e","dweb:/ipfs/QmdgzBeY6Sxo8mGtyBxtv1tM1c2kU6J6zjeRd7vuXm4DU6"],"license":"MIT"}},"version":1},"id":98} \ No newline at end of file diff --git a/out/SlasherFactory.sol/SlasherFactory.json b/out/SlasherFactory.sol/SlasherFactory.json index 5f20ab3f..89461469 100644 --- a/out/SlasherFactory.sol/SlasherFactory.json +++ b/out/SlasherFactory.sol/SlasherFactory.json @@ -1 +1 @@ -{"abi":[{"type":"constructor","inputs":[{"name":"owner_","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"blacklist","inputs":[{"name":"type_","type":"uint64","internalType":"uint64"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"blacklisted","inputs":[{"name":"type_","type":"uint64","internalType":"uint64"}],"outputs":[{"name":"value","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"create","inputs":[{"name":"type_","type":"uint64","internalType":"uint64"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"entity_","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"entity","inputs":[{"name":"index","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"implementation","inputs":[{"name":"type_","type":"uint64","internalType":"uint64"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"isEntity","inputs":[{"name":"entity_","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"totalEntities","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"totalTypes","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"whitelist","inputs":[{"name":"implementation_","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"AddEntity","inputs":[{"name":"entity","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Blacklist","inputs":[{"name":"type_","type":"uint64","indexed":true,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Whitelist","inputs":[{"name":"implementation","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"error","name":"AlreadyBlacklisted","inputs":[]},{"type":"error","name":"AlreadyWhitelisted","inputs":[]},{"type":"error","name":"ERC1167FailedCreateClone","inputs":[]},{"type":"error","name":"EntityNotExist","inputs":[]},{"type":"error","name":"InvalidImplementation","inputs":[]},{"type":"error","name":"InvalidType","inputs":[]},{"type":"error","name":"OwnableInvalidOwner","inputs":[{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"OwnableUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"}]}],"bytecode":{"object":"0x60803460b557601f6109a338819003918201601f19168301916001600160401b0383118484101760b95780849260209460405283398101031260b557516001600160a01b03908181169081900360b5578015609d57600280546001600160a01b03198116831790915560405192167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a36108d590816100ce8239f35b604051631e4fbdf760e01b81525f6004820152602490fd5b5f80fd5b634e487b7160e01b5f52604160045260245ffdfe6080604090808252600480361015610015575f80fd5b5f3560e01c91826314887c5814610698575081635cd8b15e1461067b578163715018a6146106205781638da5cb5b146105f85781639b19251a14610485578163b42ba2a21461041a578163b572a96614610375578163b6caa11914610338578163cd108ef814610194578163f15df2e51461016e578163f2fde38b146100dd575063f9661602146100a4575f80fd5b346100d95760203660031901126100d9576020906100c86100c36106d1565b61073e565b90516001600160a01b039091168152f35b5f80fd5b82346100d95760203660031901126100d9576001600160a01b038235818116939192908490036100d95761010f610799565b8315610158575050600254826bffffffffffffffffffffffff60a01b821617600255167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3005b905f6024925191631e4fbdf760e01b8352820152fd5b82346100d9575f3660031901126100d95767ffffffffffffffff60209254169051908152f35b82346100d957806003193601126100d9576101ad6106d1565b906024359167ffffffffffffffff8084116100d957366023850112156100d95783850135918183116100d957602485019460248436920101116100d9576e5af43d82803e903d91602b57fd5bf36102038261073e565b915f54908487519160208301938452168782015260608082015261023d8161022f60808201898c61071e565b03601f1981018352826106e8565b51902091763d602d80600a3d3981f3363d3d373d3d3d363d7300000062ffffff8260881c16175f5260781b1760205260018060a01b0390603760095ff5169384156103285761028b85610836565b50835192857fb919910dcefbf753bfd926ab3b1d3f85d877190c3d01ba1bd585047b99b99f0b5f80a2853b156100d957836102dd5f93829363439fab9160e01b845260208b850152602484019161071e565b038183885af1801561031e576102f8575b6020848451908152f35b811161030b5760209350815283806102ee565b604184634e487b7160e01b5f525260245ffd5b83513d5f823e3d90fd5b83516330be1a3d60e21b81528690fd5b82346100d95760203660031901126100d95760209067ffffffffffffffff61035e6106d1565b165f526003825260ff815f20541690519015158152f35b82346100d95760203660031901126100d95761038f6106d1565b91610398610799565b67ffffffffffffffff8082541693169283101561040c57825f52600360205260ff825f2054166103fe5750815f5260036020525f20600160ff198254161790557ffc8245c2838846b295ae66fbe0d08e20c799b737c93b56f7b209df2e5fa2d4585f80a2005b905163f53de75f60e01b8152fd5b905163b968846160e01b8152fd5b82346100d95760203660031901126100d95781355f54811015610472575f80527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563015490516001600160a01b03909116815260209150f35b603283634e487b7160e01b5f525260245ffd5b9050346100d957602091826003193601126100d95781356001600160a01b0381811694918590036100d9576104b8610799565b82516202dd3160ec1b81529082828681895afa9182156105ee575f926105b6575b501630148015919061053a575b5061052d576104f4836107c5565b1561052057827feb73900b98b6a3e2b8b01708fe544760cf570d21e7fbe5225f24e48b5b2b432e5f80a2005b5163b73e95e160e01b8152fd5b5163340aafcd60e11b8152fd5b8251635d927f4560e11b815290915081818581885afa91821561031e575f92610577575b505067ffffffffffffffff80845416911614155f6104e6565b90809250813d83116105af575b61058e81836106e8565b810103126100d9575167ffffffffffffffff811681036100d9575f8061055e565b503d610584565b9091508281813d83116105e7575b6105ce81836106e8565b810103126100d9575181811681036100d957905f6104d9565b503d6105c4565b84513d5f823e3d90fd5b82346100d9575f3660031901126100d95760025490516001600160a01b039091168152602090f35b346100d9575f3660031901126100d957610638610799565b600280546001600160a01b031981169091555f906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b82346100d9575f3660031901126100d9576020905f549051908152f35b9150346100d95760203660031901126100d957356001600160a01b03811692908390036100d9576020925f52600183525f205415158152f35b6004359067ffffffffffffffff821682036100d957565b90601f8019910116810190811067ffffffffffffffff82111761070a57604052565b634e487b7160e01b5f52604160045260245ffd5b908060209392818452848401375f828201840152601f01601f1916010190565b67ffffffffffffffff166004548110156107855760045f527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b01546001600160a01b031690565b634e487b7160e01b5f52603260045260245ffd5b6002546001600160a01b031633036107ad57565b60405163118cdaa760e01b8152336004820152602490fd5b805f52600560205260405f2054155f1461083157600454600160401b81101561070a5760018101806004558110156107855781907f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b0155600454905f52600560205260405f2055600190565b505f90565b805f52600160205260405f2054155f14610831575f54600160401b81101561070a5760018101805f558110156107855781907f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e56301555f54905f52600160205260405f205560019056fea2646970667358221220992c165f90045b811880db0cac96786cefb968fd9dcc9500cd861a9c11267a6a64736f6c63430008190033","sourceMap":"177:120:66:-:0;;;;;;;;;;;;;-1:-1:-1;;177:120:66;;;;-1:-1:-1;;;;;177:120:66;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;177:120:66;;;;;;;;;;1273:26:32;;1269:95;;3004:6;177:120:66;;-1:-1:-1;;;;;;177:120:66;;;;;;;;;;;3052:40:32;-1:-1:-1;;3052:40:32;177:120:66;;;;;;;1269:95:32;177:120:66;;-1:-1:-1;;;1322:31:32;;-1:-1:-1;1322:31:32;;;177:120:66;;;1322:31:32;177:120:66;-1:-1:-1;177:120:66;;;;;;-1:-1:-1;177:120:66;;;;;-1:-1:-1;177:120:66","linkReferences":{}},"deployedBytecode":{"object":"0x6080604090808252600480361015610015575f80fd5b5f3560e01c91826314887c5814610698575081635cd8b15e1461067b578163715018a6146106205781638da5cb5b146105f85781639b19251a14610485578163b42ba2a21461041a578163b572a96614610375578163b6caa11914610338578163cd108ef814610194578163f15df2e51461016e578163f2fde38b146100dd575063f9661602146100a4575f80fd5b346100d95760203660031901126100d9576020906100c86100c36106d1565b61073e565b90516001600160a01b039091168152f35b5f80fd5b82346100d95760203660031901126100d9576001600160a01b038235818116939192908490036100d95761010f610799565b8315610158575050600254826bffffffffffffffffffffffff60a01b821617600255167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3005b905f6024925191631e4fbdf760e01b8352820152fd5b82346100d9575f3660031901126100d95767ffffffffffffffff60209254169051908152f35b82346100d957806003193601126100d9576101ad6106d1565b906024359167ffffffffffffffff8084116100d957366023850112156100d95783850135918183116100d957602485019460248436920101116100d9576e5af43d82803e903d91602b57fd5bf36102038261073e565b915f54908487519160208301938452168782015260608082015261023d8161022f60808201898c61071e565b03601f1981018352826106e8565b51902091763d602d80600a3d3981f3363d3d373d3d3d363d7300000062ffffff8260881c16175f5260781b1760205260018060a01b0390603760095ff5169384156103285761028b85610836565b50835192857fb919910dcefbf753bfd926ab3b1d3f85d877190c3d01ba1bd585047b99b99f0b5f80a2853b156100d957836102dd5f93829363439fab9160e01b845260208b850152602484019161071e565b038183885af1801561031e576102f8575b6020848451908152f35b811161030b5760209350815283806102ee565b604184634e487b7160e01b5f525260245ffd5b83513d5f823e3d90fd5b83516330be1a3d60e21b81528690fd5b82346100d95760203660031901126100d95760209067ffffffffffffffff61035e6106d1565b165f526003825260ff815f20541690519015158152f35b82346100d95760203660031901126100d95761038f6106d1565b91610398610799565b67ffffffffffffffff8082541693169283101561040c57825f52600360205260ff825f2054166103fe5750815f5260036020525f20600160ff198254161790557ffc8245c2838846b295ae66fbe0d08e20c799b737c93b56f7b209df2e5fa2d4585f80a2005b905163f53de75f60e01b8152fd5b905163b968846160e01b8152fd5b82346100d95760203660031901126100d95781355f54811015610472575f80527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563015490516001600160a01b03909116815260209150f35b603283634e487b7160e01b5f525260245ffd5b9050346100d957602091826003193601126100d95781356001600160a01b0381811694918590036100d9576104b8610799565b82516202dd3160ec1b81529082828681895afa9182156105ee575f926105b6575b501630148015919061053a575b5061052d576104f4836107c5565b1561052057827feb73900b98b6a3e2b8b01708fe544760cf570d21e7fbe5225f24e48b5b2b432e5f80a2005b5163b73e95e160e01b8152fd5b5163340aafcd60e11b8152fd5b8251635d927f4560e11b815290915081818581885afa91821561031e575f92610577575b505067ffffffffffffffff80845416911614155f6104e6565b90809250813d83116105af575b61058e81836106e8565b810103126100d9575167ffffffffffffffff811681036100d9575f8061055e565b503d610584565b9091508281813d83116105e7575b6105ce81836106e8565b810103126100d9575181811681036100d957905f6104d9565b503d6105c4565b84513d5f823e3d90fd5b82346100d9575f3660031901126100d95760025490516001600160a01b039091168152602090f35b346100d9575f3660031901126100d957610638610799565b600280546001600160a01b031981169091555f906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b82346100d9575f3660031901126100d9576020905f549051908152f35b9150346100d95760203660031901126100d957356001600160a01b03811692908390036100d9576020925f52600183525f205415158152f35b6004359067ffffffffffffffff821682036100d957565b90601f8019910116810190811067ffffffffffffffff82111761070a57604052565b634e487b7160e01b5f52604160045260245ffd5b908060209392818452848401375f828201840152601f01601f1916010190565b67ffffffffffffffff166004548110156107855760045f527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b01546001600160a01b031690565b634e487b7160e01b5f52603260045260245ffd5b6002546001600160a01b031633036107ad57565b60405163118cdaa760e01b8152336004820152602490fd5b805f52600560205260405f2054155f1461083157600454600160401b81101561070a5760018101806004558110156107855781907f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b0155600454905f52600560205260405f2055600190565b505f90565b805f52600160205260405f2054155f14610831575f54600160401b81101561070a5760018101805f558110156107855781907f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e56301555f54905f52600160205260405f205560019056fea2646970667358221220992c165f90045b811880db0cac96786cefb968fd9dcc9500cd861a9c11267a6a64736f6c63430008190033","sourceMap":"177:120:66:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;177:120:66;;;;;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;177:120:66;;;;;;;;;;;;;;;;;-1:-1:-1;;177:120:66;;;;-1:-1:-1;;;;;177:120:66;;;;;;;;;;;;;;1500:62:32;;:::i;:::-;2627:22;;2623:91;;177:120:66;;3004:6:32;177:120:66;;;;;;;;3004:6:32;177:120:66;;3052:40:32;177:120:66;3052:40:32;;177:120:66;2623:91:32;177:120:66;;;;;2672:31:32;;;;;;;;177:120:66;2672:31:32;177:120:66;;;;;;;-1:-1:-1;;177:120:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2364:565:36;2248:21:70;;;:::i;:::-;177:120:66;;;;;;;2299:40:70;177:120:66;2299:40:70;;177:120:66;;;;;;;;;;;;;2299:40:70;177:120:66;;;;;;;;:::i;:::-;2299:40:70;;;;;;;;;:::i;:::-;177:120:66;2289:51:70;;2364:565:36;;;;;;;;177:120:66;2364:565:36;;;;177:120:66;2364:565:36;177:120:66;;;;;2364:565:36;;;177:120:66;2364:565:36;177:120:66;2942:22:36;;;2938:86;;8409:50:61;;;:::i;:::-;;177:120:66;;1077:18:74;;;177:120:66;1077:18:74;;2382:33:70;;;;;177:120:66;;;;;;;;;2382:33:70;;177:120:66;2382:33:70;;;177:120:66;;;;;;:::i;:::-;2382:33:70;;;;;;;;;;;;177:120:66;;;;;;;;;2382:33:70;177:120:66;;;;;;;;;2382:33:70;;;;177:120:66;;;;;;;;;;;;2382:33:70;177:120:66;;;;;;;;;2938:86:36;177:120:66;;-1:-1:-1;;;2987:26:36;;177:120:66;;2987:26:36;177:120:66;;;;;;;-1:-1:-1;;177:120:66;;;;;;;;;:::i;:::-;;;;633:54:70;177:120:66;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;177:120:66;;;;;;:::i;:::-;1500:62:32;;;:::i;:::-;177:120:66;;;;;;;822:21:70;;;;818:72;;177:120:66;;;1946:11:70;177:120:66;;;;;;;;1942:76:70;;177:120:66;;;;1946:11:70;177:120:66;;;;2049:4:70;177:120:66;;;;;;;;2069:16:70;177:120:66;2069:16:70;;177:120:66;1942:76:70;177:120:66;;-1:-1:-1;;;1987:20:70;;;818:72;177:120:66;;-1:-1:-1;;;866:13:70;;;177:120:66;;;;;;;-1:-1:-1;;177:120:66;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;177:120:66;;;;;;;-1:-1:-1;177:120:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;177:120:66;;;;;;;;;;1500:62:32;;:::i;:::-;177:120:66;;-1:-1:-1;;;1476:34:70;;177:120:66;1476:34:70;177:120:66;1476:34:70;177:120:66;1476:34:70;;;;;;;;177:120:66;1476:34:70;;;177:120:66;-1:-1:-1;177:120:66;1522:4:70;1476:51;;;;;:102;;177:120:66;1472:163:70;;;8409:50:61;;;:::i;:::-;1648:49:70;1644:107;;1766:26;;177:120:66;1766:26:70;;177:120:66;1644:107:70;177:120:66;-1:-1:-1;;;1720:20:70;;;1472:163;177:120:66;-1:-1:-1;;;1601:23:70;;;1476:102;177:120:66;;-1:-1:-1;;;1531:31:70;;177:120:66;;-1:-1:-1;177:120:66;;1531:31:70;177:120:66;1531:31:70;;;;;;;;177:120:66;1531:31:70;;;1476:102;177:120:66;;;;;;;;;1531:47:70;;1476:102;;;1531:31;;;;;;;;;;;;;;;;:::i;:::-;;;177:120:66;;;;;;;;;;;;1531:31:70;;;;;;;;;1476:34;;;;;;;;;;;;;;;;;:::i;:::-;;;177:120:66;;;;;;;;;;;;1476:34:70;;;;;;;;;;177:120:66;;;;;;;;;;;;;;;;-1:-1:-1;;177:120:66;;;;1710:6:32;177:120:66;;;-1:-1:-1;;;;;177:120:66;;;;;;;;;;;;;;-1:-1:-1;;177:120:66;;;;1500:62:32;;:::i;:::-;3004:6;177:120:66;;-1:-1:-1;;;;;;177:120:66;;;;;;;-1:-1:-1;;;;;177:120:66;3052:40:32;177:120:66;;3052:40:32;177:120:66;;;;;;;;-1:-1:-1;;177:120:66;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;177:120:66;;;;;-1:-1:-1;;;;;177:120:66;;;;;;;;;;;;;4360:14:61;177:120:66;;;;;4360:26:61;;177:120:66;;;;;;;;;;;;;;:::o;:::-;;;2299:40:70;;177:120:66;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;177:120:66;;;;;;;;-1:-1:-1;;177:120:66;;;;:::o;1192:143:70:-;177:120:66;;1291:27:70;177:120:66;;;;;;1291:27:70;-1:-1:-1;177:120:66;;;;-1:-1:-1;;;;;177:120:66;;1192:143:70:o;177:120:66:-;;;;-1:-1:-1;177:120:66;;1291:27:70;177:120:66;;-1:-1:-1;177:120:66;1796:162:32;1710:6;177:120:66;-1:-1:-1;;;;;177:120:66;735:10:47;1855:23:32;1851:101;;1796:162::o;1851:101::-;177:120:66;;-1:-1:-1;;;1901:40:32;;735:10:47;1901:40:32;;;177:120:66;;;1901:40:32;2241:406:61;177:120:66;-1:-1:-1;177:120:66;4360:14:61;177:120:66;;;-1:-1:-1;177:120:66;;4360:26:61;2320:321;177:120:66;;;;;-1:-1:-1;;;177:120:66;;;;;4360:14:61;177:120:66;;;;;;;;;;;;;;;;;;-1:-1:-1;177:120:66;4360:14:61;177:120:66;;;-1:-1:-1;177:120:66;;4360:14:61;2576:11;:::o;2320:321::-;2618:12;-1:-1:-1;2618:12:61;:::o;2241:406::-;177:120:66;;;4360:14:61;177:120:66;;;;;;4360:26:61;2320:321;177:120:66;;;;;-1:-1:-1;;;177:120:66;;;;;4360:14:61;177:120:66;;;;;;;;;;;;;;;;;;;;4360:14:61;177:120:66;;;;;;4360:14:61;2576:11;:::o","linkReferences":{}},"methodIdentifiers":{"blacklist(uint64)":"b572a966","blacklisted(uint64)":"b6caa119","create(uint64,bytes)":"cd108ef8","entity(uint256)":"b42ba2a2","implementation(uint64)":"f9661602","isEntity(address)":"14887c58","owner()":"8da5cb5b","renounceOwnership()":"715018a6","totalEntities()":"5cd8b15e","totalTypes()":"f15df2e5","transferOwnership(address)":"f2fde38b","whitelist(address)":"9b19251a"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner_\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"AlreadyBlacklisted\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AlreadyWhitelisted\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ERC1167FailedCreateClone\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"EntityNotExist\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidImplementation\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidType\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"entity\",\"type\":\"address\"}],\"name\":\"AddEntity\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"type_\",\"type\":\"uint64\"}],\"name\":\"Blacklist\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"Whitelist\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"type_\",\"type\":\"uint64\"}],\"name\":\"blacklist\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"type_\",\"type\":\"uint64\"}],\"name\":\"blacklisted\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"value\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"type_\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"create\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"entity_\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"entity\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"type_\",\"type\":\"uint64\"}],\"name\":\"implementation\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"entity_\",\"type\":\"address\"}],\"name\":\"isEntity\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalEntities\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalTypes\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"implementation_\",\"type\":\"address\"}],\"name\":\"whitelist\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"ERC1167FailedCreateClone()\":[{\"details\":\"A clone instance deployment failed.\"}],\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}]},\"events\":{\"AddEntity(address)\":{\"params\":{\"entity\":\"address of the added entity\"}},\"Blacklist(uint64)\":{\"details\":\"The given type is still deployable.\",\"params\":{\"type_\":\"type that was blacklisted\"}},\"Whitelist(address)\":{\"params\":{\"implementation\":\"address of the new implementation\"}}},\"kind\":\"dev\",\"methods\":{\"blacklist(uint64)\":{\"details\":\"The given type will still be deployable.\",\"params\":{\"type_\":\"type to blacklist\"}},\"create(uint64,bytes)\":{\"details\":\"CREATE2 salt is constructed from the given parameters.\",\"params\":{\"data\":\"initial data for the entity creation\",\"type_\":\"type's implementation to use\"},\"returns\":{\"entity_\":\"address of the entity\"}},\"entity(uint256)\":{\"params\":{\"index\":\"index of the entity to get\"},\"returns\":{\"_0\":\"address of the entity\"}},\"implementation(uint64)\":{\"params\":{\"type_\":\"position to get the implementation at\"},\"returns\":{\"_0\":\"address of the implementation\"}},\"isEntity(address)\":{\"params\":{\"account\":\"address to check\"},\"returns\":{\"_0\":\"if the given address is an entity\"}},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"totalEntities()\":{\"returns\":{\"_0\":\"total number of entities added\"}},\"totalTypes()\":{\"returns\":{\"_0\":\"total number of types\"}},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"},\"whitelist(address)\":{\"params\":{\"implementation\":\"address of the new implementation\"}}},\"version\":1},\"userdoc\":{\"events\":{\"AddEntity(address)\":{\"notice\":\"Emitted when an entity is added.\"},\"Blacklist(uint64)\":{\"notice\":\"Emitted when a type is blacklisted (e.g., in case of invalid implementation).\"},\"Whitelist(address)\":{\"notice\":\"Emitted when a new type is whitelisted.\"}},\"kind\":\"user\",\"methods\":{\"blacklist(uint64)\":{\"notice\":\"Blacklist a type of entity.\"},\"blacklisted(uint64)\":{\"notice\":\"Get if a type is blacklisted (e.g., in case of invalid implementation).\"},\"create(uint64,bytes)\":{\"notice\":\"Create a new entity at the factory.\"},\"entity(uint256)\":{\"notice\":\"Get an entity given its index.\"},\"implementation(uint64)\":{\"notice\":\"Get the implementation for a given type.\"},\"isEntity(address)\":{\"notice\":\"Get if a given address is an entity.\"},\"totalEntities()\":{\"notice\":\"Get a total number of entities.\"},\"totalTypes()\":{\"notice\":\"Get the total number of whitelisted types.\"},\"whitelist(address)\":{\"notice\":\"Whitelist a new type of entity.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/contracts/SlasherFactory.sol\":\"SlasherFactory\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"lib/openzeppelin-contracts/contracts/proxy/Clones.sol\":{\"keccak256\":\"0xd18408af8a91bedb3d56343eeb9b30eb852e6dea93a5e2d5c6db9ca4cb905155\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://061475b7302a732dc598907790f407417551c2b13e89daa57b3698489ef5484b\",\"dweb:/ipfs/QmdX5qmk3VSniSErFuD4aVawQxUi2MuUbP7spPcHddPfcX\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0x86c1470cbfd878491e5de030072b647352d36bd27122cffb928970b1945282aa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ad85dd393ee0a1917c57046abc5155f51f77844b2c6a42c05c1b8dd26d6ff3c1\",\"dweb:/ipfs/QmNqYc8To2NdnpP6E1tGz7t6A7beuENde5yovwov5pW1fA\"]},\"src/contracts/SlasherFactory.sol\":{\"keccak256\":\"0xbafc96e3d2511eb62942613645b4f5cbf6f603063a711b30e25940aaba08064c\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://489440f1181b1858e3b27a90ec6f514c0c287c602b4779676048213202165867\",\"dweb:/ipfs/QmRG7AQ9m9qHr8ofEvP1Ur8S379fFXTo9rmiWaAtZ9rsUc\"]},\"src/contracts/common/Factory.sol\":{\"keccak256\":\"0x41764643e6a2a3d80d694a3efee91f50a2fd084fb2bcd13566259443840e6369\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://fefc1e2a2189275388826f4f82ca421ca79c2866d3ef39dc2c7df46fe7cbf7c9\",\"dweb:/ipfs/QmSJ4VGmgpYUv5ni4ZYoSV4qMuZrk5DLjyB3Vv9NbFgeNZ\"]},\"src/contracts/common/Registry.sol\":{\"keccak256\":\"0x4a4004836d920953a8ec6e223de9a330f43acf7a5b93c6b8b3e4a95e0f129889\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://e8bdda207f3852c683a2b481602239a914f7e26bcd042ade618e263a43b67652\",\"dweb:/ipfs/Qmb8GZykJWxZcfwNp3SqhFizDFydFuV6LXgemV3vnWyLyu\"]},\"src/interfaces/ISlasherFactory.sol\":{\"keccak256\":\"0x30018af5c2719d9b5cfacbfc0277017896815b3fcc4dfbea78813e6ae81c1e56\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5e028fbed23ab973d8d9eb2be4e53a528dd01248e3233f56ab0f8ac9a7c9c220\",\"dweb:/ipfs/Qmd9cHMRSE52ESmxMiu5gTBpRNmDHQK5q18f7UTj8DQke4\"]},\"src/interfaces/common/IEntity.sol\":{\"keccak256\":\"0x8ef4b63d6da63489778ccd5f8d13ebdd527dd4b62730b2c616df5af7474d2d21\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a8d69576a9219d85c50816a18ad53a4d53cfcb27ed38b8cccc808dc2734b71b\",\"dweb:/ipfs/QmYVN3P4Q4REvBWJ97TbAcaxm3uyB2anV6NSGa6ZtSwcEv\"]},\"src/interfaces/common/IFactory.sol\":{\"keccak256\":\"0xe835ebda85d181b70874f6eb53f2a892aa3223d23efe247060da9b51d2b8e969\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://48b3dfb5f0491d90efbc8ed498b45358260ebac6e8f2aa0106b8b8fabdc988cb\",\"dweb:/ipfs/QmWnnCs3xiHeUvYfUWMJTSFZWc34bSYn9Zpm7f7syra3TA\"]},\"src/interfaces/common/IRegistry.sol\":{\"keccak256\":\"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014\",\"dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.25+commit.b61c2a91"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"owner_","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"AlreadyBlacklisted"},{"inputs":[],"type":"error","name":"AlreadyWhitelisted"},{"inputs":[],"type":"error","name":"ERC1167FailedCreateClone"},{"inputs":[],"type":"error","name":"EntityNotExist"},{"inputs":[],"type":"error","name":"InvalidImplementation"},{"inputs":[],"type":"error","name":"InvalidType"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"OwnableInvalidOwner"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"OwnableUnauthorizedAccount"},{"inputs":[{"internalType":"address","name":"entity","type":"address","indexed":true}],"type":"event","name":"AddEntity","anonymous":false},{"inputs":[{"internalType":"uint64","name":"type_","type":"uint64","indexed":true}],"type":"event","name":"Blacklist","anonymous":false},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"address","name":"implementation","type":"address","indexed":true}],"type":"event","name":"Whitelist","anonymous":false},{"inputs":[{"internalType":"uint64","name":"type_","type":"uint64"}],"stateMutability":"nonpayable","type":"function","name":"blacklist"},{"inputs":[{"internalType":"uint64","name":"type_","type":"uint64"}],"stateMutability":"view","type":"function","name":"blacklisted","outputs":[{"internalType":"bool","name":"value","type":"bool"}]},{"inputs":[{"internalType":"uint64","name":"type_","type":"uint64"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"create","outputs":[{"internalType":"address","name":"entity_","type":"address"}]},{"inputs":[{"internalType":"uint256","name":"index","type":"uint256"}],"stateMutability":"view","type":"function","name":"entity","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"uint64","name":"type_","type":"uint64"}],"stateMutability":"view","type":"function","name":"implementation","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"entity_","type":"address"}],"stateMutability":"view","type":"function","name":"isEntity","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[],"stateMutability":"view","type":"function","name":"totalEntities","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"totalTypes","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"},{"inputs":[{"internalType":"address","name":"implementation_","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"whitelist"}],"devdoc":{"kind":"dev","methods":{"blacklist(uint64)":{"details":"The given type will still be deployable.","params":{"type_":"type to blacklist"}},"create(uint64,bytes)":{"details":"CREATE2 salt is constructed from the given parameters.","params":{"data":"initial data for the entity creation","type_":"type's implementation to use"},"returns":{"entity_":"address of the entity"}},"entity(uint256)":{"params":{"index":"index of the entity to get"},"returns":{"_0":"address of the entity"}},"implementation(uint64)":{"params":{"type_":"position to get the implementation at"},"returns":{"_0":"address of the implementation"}},"isEntity(address)":{"params":{"account":"address to check"},"returns":{"_0":"if the given address is an entity"}},"owner()":{"details":"Returns the address of the current owner."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner."},"totalEntities()":{"returns":{"_0":"total number of entities added"}},"totalTypes()":{"returns":{"_0":"total number of types"}},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."},"whitelist(address)":{"params":{"implementation":"address of the new implementation"}}},"version":1},"userdoc":{"kind":"user","methods":{"blacklist(uint64)":{"notice":"Blacklist a type of entity."},"blacklisted(uint64)":{"notice":"Get if a type is blacklisted (e.g., in case of invalid implementation)."},"create(uint64,bytes)":{"notice":"Create a new entity at the factory."},"entity(uint256)":{"notice":"Get an entity given its index."},"implementation(uint64)":{"notice":"Get the implementation for a given type."},"isEntity(address)":{"notice":"Get if a given address is an entity."},"totalEntities()":{"notice":"Get a total number of entities."},"totalTypes()":{"notice":"Get the total number of whitelisted types."},"whitelist(address)":{"notice":"Whitelist a new type of entity."}},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/contracts/SlasherFactory.sol":"SlasherFactory"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts/contracts/access/Ownable.sol":{"keccak256":"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb","urls":["bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6","dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/Clones.sol":{"keccak256":"0xd18408af8a91bedb3d56343eeb9b30eb852e6dea93a5e2d5c6db9ca4cb905155","urls":["bzz-raw://061475b7302a732dc598907790f407417551c2b13e89daa57b3698489ef5484b","dweb:/ipfs/QmdX5qmk3VSniSErFuD4aVawQxUi2MuUbP7spPcHddPfcX"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0x86c1470cbfd878491e5de030072b647352d36bd27122cffb928970b1945282aa","urls":["bzz-raw://ad85dd393ee0a1917c57046abc5155f51f77844b2c6a42c05c1b8dd26d6ff3c1","dweb:/ipfs/QmNqYc8To2NdnpP6E1tGz7t6A7beuENde5yovwov5pW1fA"],"license":"MIT"},"src/contracts/SlasherFactory.sol":{"keccak256":"0xbafc96e3d2511eb62942613645b4f5cbf6f603063a711b30e25940aaba08064c","urls":["bzz-raw://489440f1181b1858e3b27a90ec6f514c0c287c602b4779676048213202165867","dweb:/ipfs/QmRG7AQ9m9qHr8ofEvP1Ur8S379fFXTo9rmiWaAtZ9rsUc"],"license":"BUSL-1.1"},"src/contracts/common/Factory.sol":{"keccak256":"0x41764643e6a2a3d80d694a3efee91f50a2fd084fb2bcd13566259443840e6369","urls":["bzz-raw://fefc1e2a2189275388826f4f82ca421ca79c2866d3ef39dc2c7df46fe7cbf7c9","dweb:/ipfs/QmSJ4VGmgpYUv5ni4ZYoSV4qMuZrk5DLjyB3Vv9NbFgeNZ"],"license":"BUSL-1.1"},"src/contracts/common/Registry.sol":{"keccak256":"0x4a4004836d920953a8ec6e223de9a330f43acf7a5b93c6b8b3e4a95e0f129889","urls":["bzz-raw://e8bdda207f3852c683a2b481602239a914f7e26bcd042ade618e263a43b67652","dweb:/ipfs/Qmb8GZykJWxZcfwNp3SqhFizDFydFuV6LXgemV3vnWyLyu"],"license":"BUSL-1.1"},"src/interfaces/ISlasherFactory.sol":{"keccak256":"0x30018af5c2719d9b5cfacbfc0277017896815b3fcc4dfbea78813e6ae81c1e56","urls":["bzz-raw://5e028fbed23ab973d8d9eb2be4e53a528dd01248e3233f56ab0f8ac9a7c9c220","dweb:/ipfs/Qmd9cHMRSE52ESmxMiu5gTBpRNmDHQK5q18f7UTj8DQke4"],"license":"MIT"},"src/interfaces/common/IEntity.sol":{"keccak256":"0x8ef4b63d6da63489778ccd5f8d13ebdd527dd4b62730b2c616df5af7474d2d21","urls":["bzz-raw://5a8d69576a9219d85c50816a18ad53a4d53cfcb27ed38b8cccc808dc2734b71b","dweb:/ipfs/QmYVN3P4Q4REvBWJ97TbAcaxm3uyB2anV6NSGa6ZtSwcEv"],"license":"MIT"},"src/interfaces/common/IFactory.sol":{"keccak256":"0xe835ebda85d181b70874f6eb53f2a892aa3223d23efe247060da9b51d2b8e969","urls":["bzz-raw://48b3dfb5f0491d90efbc8ed498b45358260ebac6e8f2aa0106b8b8fabdc988cb","dweb:/ipfs/QmWnnCs3xiHeUvYfUWMJTSFZWc34bSYn9Zpm7f7syra3TA"],"license":"MIT"},"src/interfaces/common/IRegistry.sol":{"keccak256":"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb","urls":["bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014","dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK"],"license":"MIT"}},"version":1},"id":66} \ No newline at end of file +{"abi":[{"type":"constructor","inputs":[{"name":"owner_","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"blacklist","inputs":[{"name":"type_","type":"uint64","internalType":"uint64"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"blacklisted","inputs":[{"name":"type_","type":"uint64","internalType":"uint64"}],"outputs":[{"name":"value","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"create","inputs":[{"name":"type_","type":"uint64","internalType":"uint64"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"entity_","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"entity","inputs":[{"name":"index","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"implementation","inputs":[{"name":"type_","type":"uint64","internalType":"uint64"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"isEntity","inputs":[{"name":"entity_","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"totalEntities","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"totalTypes","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"whitelist","inputs":[{"name":"implementation_","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"AddEntity","inputs":[{"name":"entity","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Blacklist","inputs":[{"name":"type_","type":"uint64","indexed":true,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Whitelist","inputs":[{"name":"implementation","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"error","name":"AlreadyBlacklisted","inputs":[]},{"type":"error","name":"AlreadyWhitelisted","inputs":[]},{"type":"error","name":"ERC1167FailedCreateClone","inputs":[]},{"type":"error","name":"EntityNotExist","inputs":[]},{"type":"error","name":"InvalidImplementation","inputs":[]},{"type":"error","name":"InvalidType","inputs":[]},{"type":"error","name":"OwnableInvalidOwner","inputs":[{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"OwnableUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"}]}],"bytecode":{"object":"0x60803460b557601f6109a338819003918201601f19168301916001600160401b0383118484101760b95780849260209460405283398101031260b557516001600160a01b03908181169081900360b5578015609d57600280546001600160a01b03198116831790915560405192167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a36108d590816100ce8239f35b604051631e4fbdf760e01b81525f6004820152602490fd5b5f80fd5b634e487b7160e01b5f52604160045260245ffdfe6080604090808252600480361015610015575f80fd5b5f3560e01c91826314887c5814610698575081635cd8b15e1461067b578163715018a6146106205781638da5cb5b146105f85781639b19251a14610485578163b42ba2a21461041a578163b572a96614610375578163b6caa11914610338578163cd108ef814610194578163f15df2e51461016e578163f2fde38b146100dd575063f9661602146100a4575f80fd5b346100d95760203660031901126100d9576020906100c86100c36106d1565b61073e565b90516001600160a01b039091168152f35b5f80fd5b82346100d95760203660031901126100d9576001600160a01b038235818116939192908490036100d95761010f610799565b8315610158575050600254826bffffffffffffffffffffffff60a01b821617600255167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3005b905f6024925191631e4fbdf760e01b8352820152fd5b82346100d9575f3660031901126100d95767ffffffffffffffff60209254169051908152f35b82346100d957806003193601126100d9576101ad6106d1565b906024359167ffffffffffffffff8084116100d957366023850112156100d95783850135918183116100d957602485019460248436920101116100d9576e5af43d82803e903d91602b57fd5bf36102038261073e565b915f54908487519160208301938452168782015260608082015261023d8161022f60808201898c61071e565b03601f1981018352826106e8565b51902091763d602d80600a3d3981f3363d3d373d3d3d363d7300000062ffffff8260881c16175f5260781b1760205260018060a01b0390603760095ff5169384156103285761028b85610836565b50835192857fb919910dcefbf753bfd926ab3b1d3f85d877190c3d01ba1bd585047b99b99f0b5f80a2853b156100d957836102dd5f93829363439fab9160e01b845260208b850152602484019161071e565b038183885af1801561031e576102f8575b6020848451908152f35b811161030b5760209350815283806102ee565b604184634e487b7160e01b5f525260245ffd5b83513d5f823e3d90fd5b83516330be1a3d60e21b81528690fd5b82346100d95760203660031901126100d95760209067ffffffffffffffff61035e6106d1565b165f526003825260ff815f20541690519015158152f35b82346100d95760203660031901126100d95761038f6106d1565b91610398610799565b67ffffffffffffffff8082541693169283101561040c57825f52600360205260ff825f2054166103fe5750815f5260036020525f20600160ff198254161790557ffc8245c2838846b295ae66fbe0d08e20c799b737c93b56f7b209df2e5fa2d4585f80a2005b905163f53de75f60e01b8152fd5b905163b968846160e01b8152fd5b82346100d95760203660031901126100d95781355f54811015610472575f80527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563015490516001600160a01b03909116815260209150f35b603283634e487b7160e01b5f525260245ffd5b9050346100d957602091826003193601126100d95781356001600160a01b0381811694918590036100d9576104b8610799565b82516202dd3160ec1b81529082828681895afa9182156105ee575f926105b6575b501630148015919061053a575b5061052d576104f4836107c5565b1561052057827feb73900b98b6a3e2b8b01708fe544760cf570d21e7fbe5225f24e48b5b2b432e5f80a2005b5163b73e95e160e01b8152fd5b5163340aafcd60e11b8152fd5b8251635d927f4560e11b815290915081818581885afa91821561031e575f92610577575b505067ffffffffffffffff80845416911614155f6104e6565b90809250813d83116105af575b61058e81836106e8565b810103126100d9575167ffffffffffffffff811681036100d9575f8061055e565b503d610584565b9091508281813d83116105e7575b6105ce81836106e8565b810103126100d9575181811681036100d957905f6104d9565b503d6105c4565b84513d5f823e3d90fd5b82346100d9575f3660031901126100d95760025490516001600160a01b039091168152602090f35b346100d9575f3660031901126100d957610638610799565b600280546001600160a01b031981169091555f906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b82346100d9575f3660031901126100d9576020905f549051908152f35b9150346100d95760203660031901126100d957356001600160a01b03811692908390036100d9576020925f52600183525f205415158152f35b6004359067ffffffffffffffff821682036100d957565b90601f8019910116810190811067ffffffffffffffff82111761070a57604052565b634e487b7160e01b5f52604160045260245ffd5b908060209392818452848401375f828201840152601f01601f1916010190565b67ffffffffffffffff166004548110156107855760045f527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b01546001600160a01b031690565b634e487b7160e01b5f52603260045260245ffd5b6002546001600160a01b031633036107ad57565b60405163118cdaa760e01b8152336004820152602490fd5b805f52600560205260405f2054155f1461083157600454600160401b81101561070a5760018101806004558110156107855781907f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b0155600454905f52600560205260405f2055600190565b505f90565b805f52600160205260405f2054155f14610831575f54600160401b81101561070a5760018101805f558110156107855781907f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e56301555f54905f52600160205260405f205560019056fea2646970667358221220b9e4ca7750d96bd07e19e6c97b1256ac71bb57abfad22ceca77a28a02ce5ca9f64736f6c63430008190033","sourceMap":"177:120:71:-:0;;;;;;;;;;;;;-1:-1:-1;;177:120:71;;;;-1:-1:-1;;;;;177:120:71;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;177:120:71;;;;;;;;;;1273:26:33;;1269:95;;3004:6;177:120:71;;-1:-1:-1;;;;;;177:120:71;;;;;;;;;;;3052:40:33;-1:-1:-1;;3052:40:33;177:120:71;;;;;;;1269:95:33;177:120:71;;-1:-1:-1;;;1322:31:33;;-1:-1:-1;1322:31:33;;;177:120:71;;;1322:31:33;177:120:71;-1:-1:-1;177:120:71;;;;;;-1:-1:-1;177:120:71;;;;;-1:-1:-1;177:120:71","linkReferences":{}},"deployedBytecode":{"object":"0x6080604090808252600480361015610015575f80fd5b5f3560e01c91826314887c5814610698575081635cd8b15e1461067b578163715018a6146106205781638da5cb5b146105f85781639b19251a14610485578163b42ba2a21461041a578163b572a96614610375578163b6caa11914610338578163cd108ef814610194578163f15df2e51461016e578163f2fde38b146100dd575063f9661602146100a4575f80fd5b346100d95760203660031901126100d9576020906100c86100c36106d1565b61073e565b90516001600160a01b039091168152f35b5f80fd5b82346100d95760203660031901126100d9576001600160a01b038235818116939192908490036100d95761010f610799565b8315610158575050600254826bffffffffffffffffffffffff60a01b821617600255167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3005b905f6024925191631e4fbdf760e01b8352820152fd5b82346100d9575f3660031901126100d95767ffffffffffffffff60209254169051908152f35b82346100d957806003193601126100d9576101ad6106d1565b906024359167ffffffffffffffff8084116100d957366023850112156100d95783850135918183116100d957602485019460248436920101116100d9576e5af43d82803e903d91602b57fd5bf36102038261073e565b915f54908487519160208301938452168782015260608082015261023d8161022f60808201898c61071e565b03601f1981018352826106e8565b51902091763d602d80600a3d3981f3363d3d373d3d3d363d7300000062ffffff8260881c16175f5260781b1760205260018060a01b0390603760095ff5169384156103285761028b85610836565b50835192857fb919910dcefbf753bfd926ab3b1d3f85d877190c3d01ba1bd585047b99b99f0b5f80a2853b156100d957836102dd5f93829363439fab9160e01b845260208b850152602484019161071e565b038183885af1801561031e576102f8575b6020848451908152f35b811161030b5760209350815283806102ee565b604184634e487b7160e01b5f525260245ffd5b83513d5f823e3d90fd5b83516330be1a3d60e21b81528690fd5b82346100d95760203660031901126100d95760209067ffffffffffffffff61035e6106d1565b165f526003825260ff815f20541690519015158152f35b82346100d95760203660031901126100d95761038f6106d1565b91610398610799565b67ffffffffffffffff8082541693169283101561040c57825f52600360205260ff825f2054166103fe5750815f5260036020525f20600160ff198254161790557ffc8245c2838846b295ae66fbe0d08e20c799b737c93b56f7b209df2e5fa2d4585f80a2005b905163f53de75f60e01b8152fd5b905163b968846160e01b8152fd5b82346100d95760203660031901126100d95781355f54811015610472575f80527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563015490516001600160a01b03909116815260209150f35b603283634e487b7160e01b5f525260245ffd5b9050346100d957602091826003193601126100d95781356001600160a01b0381811694918590036100d9576104b8610799565b82516202dd3160ec1b81529082828681895afa9182156105ee575f926105b6575b501630148015919061053a575b5061052d576104f4836107c5565b1561052057827feb73900b98b6a3e2b8b01708fe544760cf570d21e7fbe5225f24e48b5b2b432e5f80a2005b5163b73e95e160e01b8152fd5b5163340aafcd60e11b8152fd5b8251635d927f4560e11b815290915081818581885afa91821561031e575f92610577575b505067ffffffffffffffff80845416911614155f6104e6565b90809250813d83116105af575b61058e81836106e8565b810103126100d9575167ffffffffffffffff811681036100d9575f8061055e565b503d610584565b9091508281813d83116105e7575b6105ce81836106e8565b810103126100d9575181811681036100d957905f6104d9565b503d6105c4565b84513d5f823e3d90fd5b82346100d9575f3660031901126100d95760025490516001600160a01b039091168152602090f35b346100d9575f3660031901126100d957610638610799565b600280546001600160a01b031981169091555f906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b82346100d9575f3660031901126100d9576020905f549051908152f35b9150346100d95760203660031901126100d957356001600160a01b03811692908390036100d9576020925f52600183525f205415158152f35b6004359067ffffffffffffffff821682036100d957565b90601f8019910116810190811067ffffffffffffffff82111761070a57604052565b634e487b7160e01b5f52604160045260245ffd5b908060209392818452848401375f828201840152601f01601f1916010190565b67ffffffffffffffff166004548110156107855760045f527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b01546001600160a01b031690565b634e487b7160e01b5f52603260045260245ffd5b6002546001600160a01b031633036107ad57565b60405163118cdaa760e01b8152336004820152602490fd5b805f52600560205260405f2054155f1461083157600454600160401b81101561070a5760018101806004558110156107855781907f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b0155600454905f52600560205260405f2055600190565b505f90565b805f52600160205260405f2054155f14610831575f54600160401b81101561070a5760018101805f558110156107855781907f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e56301555f54905f52600160205260405f205560019056fea2646970667358221220b9e4ca7750d96bd07e19e6c97b1256ac71bb57abfad22ceca77a28a02ce5ca9f64736f6c63430008190033","sourceMap":"177:120:71:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;177:120:71;;;;;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;177:120:71;;;;;;;;;;;;;;;;;-1:-1:-1;;177:120:71;;;;-1:-1:-1;;;;;177:120:71;;;;;;;;;;;;;;1500:62:33;;:::i;:::-;2627:22;;2623:91;;177:120:71;;3004:6:33;177:120:71;;;;;;;;3004:6:33;177:120:71;;3052:40:33;177:120:71;3052:40:33;;177:120:71;2623:91:33;177:120:71;;;;;2672:31:33;;;;;;;;177:120:71;2672:31:33;177:120:71;;;;;;;-1:-1:-1;;177:120:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2364:565:37;2248:21:75;;;:::i;:::-;177:120:71;;;;;;;2299:40:75;177:120:71;2299:40:75;;177:120:71;;;;;;;;;;;;;2299:40:75;177:120:71;;;;;;;;:::i;:::-;2299:40:75;;;;;;;;;:::i;:::-;177:120:71;2289:51:75;;2364:565:37;;;;;;;;177:120:71;2364:565:37;;;;177:120:71;2364:565:37;177:120:71;;;;;2364:565:37;;;177:120:71;2364:565:37;177:120:71;2942:22:37;;;2938:86;;8409:50:62;;;:::i;:::-;;177:120:71;;1077:18:79;;;177:120:71;1077:18:79;;2382:33:75;;;;;177:120:71;;;;;;;;;2382:33:75;;177:120:71;2382:33:75;;;177:120:71;;;;;;:::i;:::-;2382:33:75;;;;;;;;;;;;177:120:71;;;;;;;;;2382:33:75;177:120:71;;;;;;;;;2382:33:75;;;;177:120:71;;;;;;;;;;;;2382:33:75;177:120:71;;;;;;;;;2938:86:37;177:120:71;;-1:-1:-1;;;2987:26:37;;177:120:71;;2987:26:37;177:120:71;;;;;;;-1:-1:-1;;177:120:71;;;;;;;;;:::i;:::-;;;;633:54:75;177:120:71;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;177:120:71;;;;;;:::i;:::-;1500:62:33;;;:::i;:::-;177:120:71;;;;;;;822:21:75;;;;818:72;;177:120:71;;;1946:11:75;177:120:71;;;;;;;;1942:76:75;;177:120:71;;;;1946:11:75;177:120:71;;;;2049:4:75;177:120:71;;;;;;;;2069:16:75;177:120:71;2069:16:75;;177:120:71;1942:76:75;177:120:71;;-1:-1:-1;;;1987:20:75;;;818:72;177:120:71;;-1:-1:-1;;;866:13:75;;;177:120:71;;;;;;;-1:-1:-1;;177:120:71;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;177:120:71;;;;;;;-1:-1:-1;177:120:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;177:120:71;;;;;;;;;;1500:62:33;;:::i;:::-;177:120:71;;-1:-1:-1;;;1476:34:75;;177:120:71;1476:34:75;177:120:71;1476:34:75;177:120:71;1476:34:75;;;;;;;;177:120:71;1476:34:75;;;177:120:71;-1:-1:-1;177:120:71;1522:4:75;1476:51;;;;;:102;;177:120:71;1472:163:75;;;8409:50:62;;;:::i;:::-;1648:49:75;1644:107;;1766:26;;177:120:71;1766:26:75;;177:120:71;1644:107:75;177:120:71;-1:-1:-1;;;1720:20:75;;;1472:163;177:120:71;-1:-1:-1;;;1601:23:75;;;1476:102;177:120:71;;-1:-1:-1;;;1531:31:75;;177:120:71;;-1:-1:-1;177:120:71;;1531:31:75;177:120:71;1531:31:75;;;;;;;;177:120:71;1531:31:75;;;1476:102;177:120:71;;;;;;;;;1531:47:75;;1476:102;;;1531:31;;;;;;;;;;;;;;;;:::i;:::-;;;177:120:71;;;;;;;;;;;;1531:31:75;;;;;;;;;1476:34;;;;;;;;;;;;;;;;;:::i;:::-;;;177:120:71;;;;;;;;;;;;1476:34:75;;;;;;;;;;177:120:71;;;;;;;;;;;;;;;;-1:-1:-1;;177:120:71;;;;1710:6:33;177:120:71;;;-1:-1:-1;;;;;177:120:71;;;;;;;;;;;;;;-1:-1:-1;;177:120:71;;;;1500:62:33;;:::i;:::-;3004:6;177:120:71;;-1:-1:-1;;;;;;177:120:71;;;;;;;-1:-1:-1;;;;;177:120:71;3052:40:33;177:120:71;;3052:40:33;177:120:71;;;;;;;;-1:-1:-1;;177:120:71;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;177:120:71;;;;;-1:-1:-1;;;;;177:120:71;;;;;;;;;;;;;4360:14:62;177:120:71;;;;;4360:26:62;;177:120:71;;;;;;;;;;;;;;:::o;:::-;;;2299:40:75;;177:120:71;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;177:120:71;;;;;;;;-1:-1:-1;;177:120:71;;;;:::o;1192:143:75:-;177:120:71;;1291:27:75;177:120:71;;;;;;1291:27:75;-1:-1:-1;177:120:71;;;;-1:-1:-1;;;;;177:120:71;;1192:143:75:o;177:120:71:-;;;;-1:-1:-1;177:120:71;;1291:27:75;177:120:71;;-1:-1:-1;177:120:71;1796:162:33;1710:6;177:120:71;-1:-1:-1;;;;;177:120:71;735:10:48;1855:23:33;1851:101;;1796:162::o;1851:101::-;177:120:71;;-1:-1:-1;;;1901:40:33;;735:10:48;1901:40:33;;;177:120:71;;;1901:40:33;2241:406:62;177:120:71;-1:-1:-1;177:120:71;4360:14:62;177:120:71;;;-1:-1:-1;177:120:71;;4360:26:62;2320:321;177:120:71;;;;;-1:-1:-1;;;177:120:71;;;;;4360:14:62;177:120:71;;;;;;;;;;;;;;;;;;-1:-1:-1;177:120:71;4360:14:62;177:120:71;;;-1:-1:-1;177:120:71;;4360:14:62;2576:11;:::o;2320:321::-;2618:12;-1:-1:-1;2618:12:62;:::o;2241:406::-;177:120:71;;;4360:14:62;177:120:71;;;;;;4360:26:62;2320:321;177:120:71;;;;;-1:-1:-1;;;177:120:71;;;;;4360:14:62;177:120:71;;;;;;;;;;;;;;;;;;;;4360:14:62;177:120:71;;;;;;4360:14:62;2576:11;:::o","linkReferences":{}},"methodIdentifiers":{"blacklist(uint64)":"b572a966","blacklisted(uint64)":"b6caa119","create(uint64,bytes)":"cd108ef8","entity(uint256)":"b42ba2a2","implementation(uint64)":"f9661602","isEntity(address)":"14887c58","owner()":"8da5cb5b","renounceOwnership()":"715018a6","totalEntities()":"5cd8b15e","totalTypes()":"f15df2e5","transferOwnership(address)":"f2fde38b","whitelist(address)":"9b19251a"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner_\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"AlreadyBlacklisted\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AlreadyWhitelisted\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ERC1167FailedCreateClone\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"EntityNotExist\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidImplementation\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidType\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"entity\",\"type\":\"address\"}],\"name\":\"AddEntity\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"type_\",\"type\":\"uint64\"}],\"name\":\"Blacklist\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"Whitelist\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"type_\",\"type\":\"uint64\"}],\"name\":\"blacklist\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"type_\",\"type\":\"uint64\"}],\"name\":\"blacklisted\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"value\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"type_\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"create\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"entity_\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"entity\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"type_\",\"type\":\"uint64\"}],\"name\":\"implementation\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"entity_\",\"type\":\"address\"}],\"name\":\"isEntity\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalEntities\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalTypes\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"implementation_\",\"type\":\"address\"}],\"name\":\"whitelist\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"ERC1167FailedCreateClone()\":[{\"details\":\"A clone instance deployment failed.\"}],\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}]},\"events\":{\"AddEntity(address)\":{\"params\":{\"entity\":\"address of the added entity\"}},\"Blacklist(uint64)\":{\"details\":\"The given type is still deployable.\",\"params\":{\"type_\":\"type that was blacklisted\"}},\"Whitelist(address)\":{\"params\":{\"implementation\":\"address of the new implementation\"}}},\"kind\":\"dev\",\"methods\":{\"blacklist(uint64)\":{\"details\":\"The given type will still be deployable.\",\"params\":{\"type_\":\"type to blacklist\"}},\"create(uint64,bytes)\":{\"details\":\"CREATE2 salt is constructed from the given parameters.\",\"params\":{\"data\":\"initial data for the entity creation\",\"type_\":\"type's implementation to use\"},\"returns\":{\"entity_\":\"address of the entity\"}},\"entity(uint256)\":{\"params\":{\"index\":\"index of the entity to get\"},\"returns\":{\"_0\":\"address of the entity\"}},\"implementation(uint64)\":{\"params\":{\"type_\":\"position to get the implementation at\"},\"returns\":{\"_0\":\"address of the implementation\"}},\"isEntity(address)\":{\"params\":{\"account\":\"address to check\"},\"returns\":{\"_0\":\"if the given address is an entity\"}},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"totalEntities()\":{\"returns\":{\"_0\":\"total number of entities added\"}},\"totalTypes()\":{\"returns\":{\"_0\":\"total number of types\"}},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"},\"whitelist(address)\":{\"params\":{\"implementation\":\"address of the new implementation\"}}},\"version\":1},\"userdoc\":{\"events\":{\"AddEntity(address)\":{\"notice\":\"Emitted when an entity is added.\"},\"Blacklist(uint64)\":{\"notice\":\"Emitted when a type is blacklisted (e.g., in case of invalid implementation).\"},\"Whitelist(address)\":{\"notice\":\"Emitted when a new type is whitelisted.\"}},\"kind\":\"user\",\"methods\":{\"blacklist(uint64)\":{\"notice\":\"Blacklist a type of entity.\"},\"blacklisted(uint64)\":{\"notice\":\"Get if a type is blacklisted (e.g., in case of invalid implementation).\"},\"create(uint64,bytes)\":{\"notice\":\"Create a new entity at the factory.\"},\"entity(uint256)\":{\"notice\":\"Get an entity given its index.\"},\"implementation(uint64)\":{\"notice\":\"Get the implementation for a given type.\"},\"isEntity(address)\":{\"notice\":\"Get if a given address is an entity.\"},\"totalEntities()\":{\"notice\":\"Get a total number of entities.\"},\"totalTypes()\":{\"notice\":\"Get the total number of whitelisted types.\"},\"whitelist(address)\":{\"notice\":\"Whitelist a new type of entity.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/contracts/SlasherFactory.sol\":\"SlasherFactory\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"lib/openzeppelin-contracts/contracts/proxy/Clones.sol\":{\"keccak256\":\"0xd18408af8a91bedb3d56343eeb9b30eb852e6dea93a5e2d5c6db9ca4cb905155\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://061475b7302a732dc598907790f407417551c2b13e89daa57b3698489ef5484b\",\"dweb:/ipfs/QmdX5qmk3VSniSErFuD4aVawQxUi2MuUbP7spPcHddPfcX\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0x86c1470cbfd878491e5de030072b647352d36bd27122cffb928970b1945282aa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ad85dd393ee0a1917c57046abc5155f51f77844b2c6a42c05c1b8dd26d6ff3c1\",\"dweb:/ipfs/QmNqYc8To2NdnpP6E1tGz7t6A7beuENde5yovwov5pW1fA\"]},\"src/contracts/SlasherFactory.sol\":{\"keccak256\":\"0xbafc96e3d2511eb62942613645b4f5cbf6f603063a711b30e25940aaba08064c\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://489440f1181b1858e3b27a90ec6f514c0c287c602b4779676048213202165867\",\"dweb:/ipfs/QmRG7AQ9m9qHr8ofEvP1Ur8S379fFXTo9rmiWaAtZ9rsUc\"]},\"src/contracts/common/Factory.sol\":{\"keccak256\":\"0x41764643e6a2a3d80d694a3efee91f50a2fd084fb2bcd13566259443840e6369\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://fefc1e2a2189275388826f4f82ca421ca79c2866d3ef39dc2c7df46fe7cbf7c9\",\"dweb:/ipfs/QmSJ4VGmgpYUv5ni4ZYoSV4qMuZrk5DLjyB3Vv9NbFgeNZ\"]},\"src/contracts/common/Registry.sol\":{\"keccak256\":\"0x4a4004836d920953a8ec6e223de9a330f43acf7a5b93c6b8b3e4a95e0f129889\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://e8bdda207f3852c683a2b481602239a914f7e26bcd042ade618e263a43b67652\",\"dweb:/ipfs/Qmb8GZykJWxZcfwNp3SqhFizDFydFuV6LXgemV3vnWyLyu\"]},\"src/interfaces/ISlasherFactory.sol\":{\"keccak256\":\"0x30018af5c2719d9b5cfacbfc0277017896815b3fcc4dfbea78813e6ae81c1e56\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5e028fbed23ab973d8d9eb2be4e53a528dd01248e3233f56ab0f8ac9a7c9c220\",\"dweb:/ipfs/Qmd9cHMRSE52ESmxMiu5gTBpRNmDHQK5q18f7UTj8DQke4\"]},\"src/interfaces/common/IEntity.sol\":{\"keccak256\":\"0x8ef4b63d6da63489778ccd5f8d13ebdd527dd4b62730b2c616df5af7474d2d21\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a8d69576a9219d85c50816a18ad53a4d53cfcb27ed38b8cccc808dc2734b71b\",\"dweb:/ipfs/QmYVN3P4Q4REvBWJ97TbAcaxm3uyB2anV6NSGa6ZtSwcEv\"]},\"src/interfaces/common/IFactory.sol\":{\"keccak256\":\"0xe835ebda85d181b70874f6eb53f2a892aa3223d23efe247060da9b51d2b8e969\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://48b3dfb5f0491d90efbc8ed498b45358260ebac6e8f2aa0106b8b8fabdc988cb\",\"dweb:/ipfs/QmWnnCs3xiHeUvYfUWMJTSFZWc34bSYn9Zpm7f7syra3TA\"]},\"src/interfaces/common/IRegistry.sol\":{\"keccak256\":\"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014\",\"dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.25+commit.b61c2a91"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"owner_","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"AlreadyBlacklisted"},{"inputs":[],"type":"error","name":"AlreadyWhitelisted"},{"inputs":[],"type":"error","name":"ERC1167FailedCreateClone"},{"inputs":[],"type":"error","name":"EntityNotExist"},{"inputs":[],"type":"error","name":"InvalidImplementation"},{"inputs":[],"type":"error","name":"InvalidType"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"OwnableInvalidOwner"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"OwnableUnauthorizedAccount"},{"inputs":[{"internalType":"address","name":"entity","type":"address","indexed":true}],"type":"event","name":"AddEntity","anonymous":false},{"inputs":[{"internalType":"uint64","name":"type_","type":"uint64","indexed":true}],"type":"event","name":"Blacklist","anonymous":false},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"address","name":"implementation","type":"address","indexed":true}],"type":"event","name":"Whitelist","anonymous":false},{"inputs":[{"internalType":"uint64","name":"type_","type":"uint64"}],"stateMutability":"nonpayable","type":"function","name":"blacklist"},{"inputs":[{"internalType":"uint64","name":"type_","type":"uint64"}],"stateMutability":"view","type":"function","name":"blacklisted","outputs":[{"internalType":"bool","name":"value","type":"bool"}]},{"inputs":[{"internalType":"uint64","name":"type_","type":"uint64"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"create","outputs":[{"internalType":"address","name":"entity_","type":"address"}]},{"inputs":[{"internalType":"uint256","name":"index","type":"uint256"}],"stateMutability":"view","type":"function","name":"entity","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"uint64","name":"type_","type":"uint64"}],"stateMutability":"view","type":"function","name":"implementation","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"entity_","type":"address"}],"stateMutability":"view","type":"function","name":"isEntity","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[],"stateMutability":"view","type":"function","name":"totalEntities","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"totalTypes","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"},{"inputs":[{"internalType":"address","name":"implementation_","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"whitelist"}],"devdoc":{"kind":"dev","methods":{"blacklist(uint64)":{"details":"The given type will still be deployable.","params":{"type_":"type to blacklist"}},"create(uint64,bytes)":{"details":"CREATE2 salt is constructed from the given parameters.","params":{"data":"initial data for the entity creation","type_":"type's implementation to use"},"returns":{"entity_":"address of the entity"}},"entity(uint256)":{"params":{"index":"index of the entity to get"},"returns":{"_0":"address of the entity"}},"implementation(uint64)":{"params":{"type_":"position to get the implementation at"},"returns":{"_0":"address of the implementation"}},"isEntity(address)":{"params":{"account":"address to check"},"returns":{"_0":"if the given address is an entity"}},"owner()":{"details":"Returns the address of the current owner."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner."},"totalEntities()":{"returns":{"_0":"total number of entities added"}},"totalTypes()":{"returns":{"_0":"total number of types"}},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."},"whitelist(address)":{"params":{"implementation":"address of the new implementation"}}},"version":1},"userdoc":{"kind":"user","methods":{"blacklist(uint64)":{"notice":"Blacklist a type of entity."},"blacklisted(uint64)":{"notice":"Get if a type is blacklisted (e.g., in case of invalid implementation)."},"create(uint64,bytes)":{"notice":"Create a new entity at the factory."},"entity(uint256)":{"notice":"Get an entity given its index."},"implementation(uint64)":{"notice":"Get the implementation for a given type."},"isEntity(address)":{"notice":"Get if a given address is an entity."},"totalEntities()":{"notice":"Get a total number of entities."},"totalTypes()":{"notice":"Get the total number of whitelisted types."},"whitelist(address)":{"notice":"Whitelist a new type of entity."}},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/contracts/SlasherFactory.sol":"SlasherFactory"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts/contracts/access/Ownable.sol":{"keccak256":"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb","urls":["bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6","dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/Clones.sol":{"keccak256":"0xd18408af8a91bedb3d56343eeb9b30eb852e6dea93a5e2d5c6db9ca4cb905155","urls":["bzz-raw://061475b7302a732dc598907790f407417551c2b13e89daa57b3698489ef5484b","dweb:/ipfs/QmdX5qmk3VSniSErFuD4aVawQxUi2MuUbP7spPcHddPfcX"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0x86c1470cbfd878491e5de030072b647352d36bd27122cffb928970b1945282aa","urls":["bzz-raw://ad85dd393ee0a1917c57046abc5155f51f77844b2c6a42c05c1b8dd26d6ff3c1","dweb:/ipfs/QmNqYc8To2NdnpP6E1tGz7t6A7beuENde5yovwov5pW1fA"],"license":"MIT"},"src/contracts/SlasherFactory.sol":{"keccak256":"0xbafc96e3d2511eb62942613645b4f5cbf6f603063a711b30e25940aaba08064c","urls":["bzz-raw://489440f1181b1858e3b27a90ec6f514c0c287c602b4779676048213202165867","dweb:/ipfs/QmRG7AQ9m9qHr8ofEvP1Ur8S379fFXTo9rmiWaAtZ9rsUc"],"license":"BUSL-1.1"},"src/contracts/common/Factory.sol":{"keccak256":"0x41764643e6a2a3d80d694a3efee91f50a2fd084fb2bcd13566259443840e6369","urls":["bzz-raw://fefc1e2a2189275388826f4f82ca421ca79c2866d3ef39dc2c7df46fe7cbf7c9","dweb:/ipfs/QmSJ4VGmgpYUv5ni4ZYoSV4qMuZrk5DLjyB3Vv9NbFgeNZ"],"license":"BUSL-1.1"},"src/contracts/common/Registry.sol":{"keccak256":"0x4a4004836d920953a8ec6e223de9a330f43acf7a5b93c6b8b3e4a95e0f129889","urls":["bzz-raw://e8bdda207f3852c683a2b481602239a914f7e26bcd042ade618e263a43b67652","dweb:/ipfs/Qmb8GZykJWxZcfwNp3SqhFizDFydFuV6LXgemV3vnWyLyu"],"license":"BUSL-1.1"},"src/interfaces/ISlasherFactory.sol":{"keccak256":"0x30018af5c2719d9b5cfacbfc0277017896815b3fcc4dfbea78813e6ae81c1e56","urls":["bzz-raw://5e028fbed23ab973d8d9eb2be4e53a528dd01248e3233f56ab0f8ac9a7c9c220","dweb:/ipfs/Qmd9cHMRSE52ESmxMiu5gTBpRNmDHQK5q18f7UTj8DQke4"],"license":"MIT"},"src/interfaces/common/IEntity.sol":{"keccak256":"0x8ef4b63d6da63489778ccd5f8d13ebdd527dd4b62730b2c616df5af7474d2d21","urls":["bzz-raw://5a8d69576a9219d85c50816a18ad53a4d53cfcb27ed38b8cccc808dc2734b71b","dweb:/ipfs/QmYVN3P4Q4REvBWJ97TbAcaxm3uyB2anV6NSGa6ZtSwcEv"],"license":"MIT"},"src/interfaces/common/IFactory.sol":{"keccak256":"0xe835ebda85d181b70874f6eb53f2a892aa3223d23efe247060da9b51d2b8e969","urls":["bzz-raw://48b3dfb5f0491d90efbc8ed498b45358260ebac6e8f2aa0106b8b8fabdc988cb","dweb:/ipfs/QmWnnCs3xiHeUvYfUWMJTSFZWc34bSYn9Zpm7f7syra3TA"],"license":"MIT"},"src/interfaces/common/IRegistry.sol":{"keccak256":"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb","urls":["bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014","dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK"],"license":"MIT"}},"version":1},"id":71} \ No newline at end of file diff --git a/out/SlasherHints.sol/BaseSlasherHints.json b/out/SlasherHints.sol/BaseSlasherHints.json index 5b301f97..b8624f66 100644 --- a/out/SlasherHints.sol/BaseSlasherHints.json +++ b/out/SlasherHints.sol/BaseSlasherHints.json @@ -1 +1 @@ -{"abi":[{"type":"constructor","inputs":[{"name":"baseDelegatorHints","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"BASE_DELEGATOR_HINTS","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"BURNER_GAS_LIMIT","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"BURNER_RESERVE","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"FACTORY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"NETWORK_MIDDLEWARE_SERVICE","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"SLASHER_HINTS","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"TYPE","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"VAULT_FACTORY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"VETO_SLASHER_HINTS","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"cumulativeSlash","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"cumulativeSlashAt","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"timestamp","type":"uint48","internalType":"uint48"},{"name":"hint","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"cumulativeSlashHint","inputs":[{"name":"slasher","type":"address","internalType":"address"},{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"timestamp","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"cumulativeSlashHintInternal","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"timestamp","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"exists","type":"bool","internalType":"bool"},{"name":"hint","type":"uint32","internalType":"uint32"}],"stateMutability":"view"},{"type":"function","name":"initialize","inputs":[{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"isBurnerHook","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"latestSlashedCaptureTimestamp","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"value","type":"uint48","internalType":"uint48"}],"stateMutability":"view"},{"type":"function","name":"slashableStake","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"captureTimestamp","type":"uint48","internalType":"uint48"},{"name":"hints","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"slashableStakeHints","inputs":[{"name":"slasher","type":"address","internalType":"address"},{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"captureTimestamp","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"staticDelegateCall","inputs":[{"name":"target","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"vault","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"error","name":"ExternalCall","inputs":[]},{"type":"error","name":"InsufficientBurnerGas","inputs":[]},{"type":"error","name":"InvalidInitialization","inputs":[]},{"type":"error","name":"NoBurner","inputs":[]},{"type":"error","name":"NotInitialized","inputs":[]},{"type":"error","name":"NotInitializing","inputs":[]},{"type":"error","name":"NotNetworkMiddleware","inputs":[]},{"type":"error","name":"NotVault","inputs":[]},{"type":"error","name":"ReentrancyGuardReentrantCall","inputs":[]},{"type":"error","name":"SafeCastOverflowedUintDowncast","inputs":[{"name":"bits","type":"uint8","internalType":"uint8"},{"name":"value","type":"uint256","internalType":"uint256"}]}],"bytecode":{"object":"0x610180346101e757601f61741938819003918201601f19168301926001600160401b03929091838511838610176101825781602092849260409788528339810103126101e75751906001600160a01b039081831683036101e757306080527ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805460ff81871c166101d65780838080931603610196575b5050505f60a0525f60c0525f60e052610100935f8552610120938452805161209f8082019082821085831117610182576020918391611bfe83393081520301905ff091821561017857836101409316835281519061377c8083019183831090831117610182576020918391613c9d83393081520301905ff092831561017857610160931683525192611a1294856101ec8639608051856105fa015260a051856102cb015260c05185610909015260e0518581816101690152610e840152518461028701525183818161069b0152610c2f0152518261055c015251816105a00152f35b50513d5f823e3d90fd5b634e487b7160e01b5f52604160045260245ffd5b6001600160401b03191617905583518181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a15f8181610096565b855163f92ee8a960e01b8152600490fd5b5f80fdfe60806040526004361015610011575f80fd5b5f3560e01c8063103f2907146101545780631a2be2c41461014f578063267de1f31461014a5780632964f8dc146101455780632c9d45b3146101405780632dd310001461013b57806334d098ea14610136578063439fab91146101315780634a7196551461012c5780634ea2e926146101275780634eb5a242146101225780636565b7db1461011d578063770280461461011857806379d89614146101135780639f86fd851461010e578063aa8e648914610109578063aab3595f14610104578063bb24fe8a146100ff578063d5c24e1a146100fa5763fbfa77cf146100f5575f80fd5b61094a565b61092d565b6108ea565b6108c5565b610887565b6106ca565b610686565b6105cf565b61058b565b610547565b61052a565b6104f5565b61034b565b6102fa565b6102b6565b610272565b610256565b610201565b6101ad565b34610198575f366003190112610198576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b5f80fd5b6001600160a01b0381160361019857565b346101985760403660031901126101985760206101f96101f46024356101d28161019c565b6004355f526002845260405f209060018060a01b03165f5260205260405f2090565b610daa565b604051908152f35b3461019857604036600319011261019857602065ffffffffffff61024c60243561022a8161019c565b6004355f526001845260405f209060018060a01b03165f5260205260405f2090565b5416604051908152f35b34610198575f366003190112610198576020604051614e208152f35b34610198575f366003190112610198576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b34610198575f366003190112610198576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b34610198575f36600319011261019857602060ff5f5460a01c166040519015158152f35b9181601f84011215610198578235916001600160401b038311610198576020838186019501011161019857565b34610198576020366003190112610198576001600160401b036004358181116101985761037c90369060040161031e565b5f805160206119bd833981519152549260ff8460401c1615931680159081610480575b6001149081610476575b15908161046d575b5061045b575f805160206119bd833981519152805467ffffffffffffffff191660011790556103e4918361043257610e4c565b6103ea57005b5f805160206119bd833981519152805460ff60401b19169055604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a1005b5f805160206119bd833981519152805460ff60401b191668010000000000000000179055610e4c565b60405163f92ee8a960e01b8152600490fd5b9050155f6103b1565b303b1591506103a9565b84915061039f565b65ffffffffffff81160361019857565b6080906003190112610198576004356104b08161019c565b90602435906044356104c18161019c565b906064356104ce81610488565b90565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b346101985761052661051261050936610498565b929190916109b0565b6040519182916020835260208301906104d1565b0390f35b346101985761052661051261053e36610498565b92919091610b7b565b34610198575f366003190112610198576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b34610198575f366003190112610198576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b34610198576060366003190112610198576024356105ec8161019c565b6044356105f881610488565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316330361067457610652610657926004355f52600260205260405f209060018060a01b03165f5260205260405f2090565b61104a565b60408051941515855263ffffffff91909116602085015292915050f35b604051637ca475e560e11b8152600490fd5b34610198575f366003190112610198576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b34610198576040366003190112610198576004356106e78161019c565b6024356001600160401b038111610198575f916107098392369060040161031e565b90816040519283928337810184815203915af4610756610727610d26565b916107486040519384921515602084015260408084015260608301906104d1565b03601f1981018352826107ad565b805190602001fd5b634e487b7160e01b5f52604160045260245ffd5b604081019081106001600160401b0382111761078d57604052565b61075e565b60a081019081106001600160401b0382111761078d57604052565b90601f801991011681019081106001600160401b0382111761078d57604052565b604051906107db82610772565b565b6001600160401b03811161078d57601f01601f191660200190565b81601f820112156101985780359061080f826107dd565b9261081d60405194856107ad565b8284526020838301011161019857815f926020809301838601378301015290565b906080600319830112610198576004359160243561085b8161019c565b9160443561086881610488565b91606435906001600160401b038211610198576104ce916004016107f8565b346101985760206101f96108c061089d3661083e565b939190925f526002865260405f209060018060a01b03165f5260205260405f2090565b611178565b346101985760206108e16108d83661083e565b92919091611347565b50604051908152f35b34610198575f3660031901126101985760206040516001600160401b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b34610198575f366003190112610198576020604051620249f08152f35b34610198575f366003190112610198575f546040516001600160a01b039091168152602090f35b5190811515820361019857565b519063ffffffff8216820361019857565b9190826040910312610198576104ce60206109a984610971565b930161097e565b5f809195949593929365ffffffffffff60609760405195602097633b81402360e11b89890152602488015260018060a01b03166044870152166064850152606484526109fb84610792565b6040519384610a2887820192639f86fd8560e01b84523060248401526040604484015260648301906104d1565b0394610a3c601f19968781018352826107ad565b51915afa50610a5a610a4c610d26565b838082518301019101610fb5565b9015610aad57808380610a729351830101910161098f565b9290610a7d57505050565b6104ce92939450610aa1604051948592830191909163ffffffff6020820193169052565b039081018352826107ad565b809150519182156101985701fd5b9081602091031261019857516104ce8161019c565b6040513d5f823e3d90fd5b81601f8201121561019857805190610af2826107dd565b92610b0060405194856107ad565b8284526020838301011161019857815f9260208093018386015e8301015290565b906020828203126101985781516001600160401b038111610198576104ce9201610adb565b906104ce91602081526020610b66835160408385015260608401906104d1565b920151906040601f19828503019101526104d1565b60405163fbfa77cf60e01b815260609594919391926020926001600160a01b03929091908481600481878b165afa908115610cd757849186915f91610d09575b50600460405180948193630ce9b79360e41b8352165afa8015610cd75786948385925f948591610cdc575b506040516304bb92e160e31b81526001600160a01b039182166004820152602481019290925292909216604483015265ffffffffffff97909716606482015295869060849082907f0000000000000000000000000000000000000000000000000000000000000000165afa948515610cd7575f95610caf575b50610c6b9394956109b0565b825115801590610ca5575b610c7f57505050565b6104ce92939450610c8e6107ce565b938452818401526107486040519384928301610b46565b5080511515610c76565b610c6b949550610cd0903d805f833e610cc881836107ad565b810190610b21565b9493610c5f565b610ad0565b610cfc9150893d8b11610d02575b610cf481836107ad565b810190610abb565b5f610be6565b503d610cea565b610d209150823d8411610d0257610cf481836107ad565b5f610bbb565b3d15610d50573d90610d37826107dd565b91610d4560405193846107ad565b82523d5f602084013e565b606090565b5f9081526002602090815260408083206001600160a01b039094168352929052206104ce929190611178565b8054821015610d96575f5260205f2001905f90565b634e487b7160e01b5f52603260045260245ffd5b805480610ddf57505f5b6001600160d01b03811615610dd9576001610dcf9201610d81565b90549060031b1c90565b50505f90565b5f19908082810111610dfd57825f5260205f2001015460301c610db4565b610fe9565b919091604081840312610198578035610e1a8161019c565b9260208201356001600160401b038111610198576104ce92016107f8565b90816020910312610198576104ce90610971565b610e5891810190610e02565b506040516302910f8b60e31b81526001600160a01b0391821660048201819052919060209081816024817f000000000000000000000000000000000000000000000000000000000000000087165afa908115610cd7575f91610f88575b5015610f7657610ec361159b565b5f80546001600160a01b0319166001600160a01b038516179055600481610ee86115d1565b94604051928380926313c085b760e11b82525afa918215610cd7575f92610f59575b5050161580610f4f575b610f3d57516107db9015155f805460ff60a01b191691151560a01b60ff60a01b16919091179055565b60405163d2420f5960e01b8152600490fd5b5080511515610f14565b610f6f9250803d10610d0257610cf481836107ad565b5f80610f0a565b6040516362df054560e01b8152600490fd5b610fa89150823d8411610fae575b610fa081836107ad565b810190610e38565b5f610eb5565b503d610f96565b91909160408184031261019857610fcb81610971565b9260208201516001600160401b038111610198576104ce9201610adb565b634e487b7160e01b5f52601160045260245ffd5b5f19810191908211610dfd57565b91908203918211610dfd57565b9060018201809211610dfd57565b9060405161103381610772565b915465ffffffffffff8116835260301c6020830152565b91908254905f8291600584116110e8575b61106693508561174f565b9081156110dc576110d56110cc6110c6610dcf61109861109361108888610ffd565b895f5260205f200190565b611026565b9660016110bf60206110b08b5165ffffffffffff1690565b9a01516001600160d01b031690565b9101610d81565b93610ffd565b63ffffffff1690565b6001939291565b5f925082915081908190565b91926110f381611611565b8103908111610dfd5761106693865f5261112761111c8360205f200165ffffffffffff90541690565b65ffffffffffff1690565b65ffffffffffff8516101561113d57509161105b565b92915061114990611018565b9061105b565b90816020910312610198576104ce9061097e565b90600163ffffffff80931601918211610dfd57565b9180511561124657806020806111939351830101910161114f565b9161119e8382611876565b926111af845165ffffffffffff1690565b9065ffffffffffff808516921682811461123a57821191826111e5575b50506111dc576104ce92506117a6565b50506020015190565b9091506111f28354610ffd565b63ffffffff83161491821561120b575b50505f806111cc565b61123291925061122661122061111c92611163565b85611876565b5165ffffffffffff1690565b115f80611202565b50505050506020015190565b506104ce916117a6565b6040519061125d82610772565b60606020838281520152565b906020828203126101985781516001600160401b0392838211610198570190604082820312610198576040519261129f84610772565b825181811161019857826112b4918501610adb565b84526020830151908111610198576112cc9201610adb565b602082015290565b9081602091031261019857516104ce81610488565b65ffffffffffff9182169082160391908211610dfd57565b90816020910312610198575190565b9081526001600160a01b03909116602082015265ffffffffffff90911660408201526080606082018190526104ce929101906104d1565b92611350611250565b90805180611581575b505061136442611933565b5f549094906113899061137d906001600160a01b031681565b6001600160a01b031690565b93604051956327f843b560e11b875260209687816004818a5afa8015610cd7576113be9261111c925f92611552575b506112e9565b65ffffffffffff821690811090811561153b575b811561150a575b506114fe578560049560405196878092630ce9b79360e41b82525afa948515610cd75761142b9587915f916114e1575b50845190604051808099819463e02f693760e01b8352878b8a60048601611310565b03916001600160a01b03165afa938415610cd75761149d955f956114a0575b509261149285936114989361149296869a6114896101f483611474875f52600260205260405f2090565b9060018060a01b03165f5260205260405f2090565b95015192610d55565b9061100b565b6118de565b91565b6114989295506114929491936114ce611492928a3d8c116114da575b6114c681836107ad565b810190611301565b9693509391945061144a565b503d6114bc565b6114f89150823d8411610d0257610cf481836107ad565b5f611409565b5050505050505f905f90565b905061153461111c61152887611474875f52600160205260405f2090565b5465ffffffffffff1690565b115f6113d9565b905061154961111c42611933565b811015906113d2565b6115739192508a3d8c1161157a575b61156b81836107ad565b8101906112d4565b905f6113b8565b503d611561565b6115949250602080918301019101611269565b5f80611359565b6115a36118f0565b6115ab6118f0565b60017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055565b60405190602082018281106001600160401b0382111761078d576040525f8252565b81156115fd570490565b634e487b7160e01b5f52601260045260245ffd5b801561174a57806116e36116dc6116d26116c86116be6116b46116aa6116a060016104ce9a5f908b60801c8061173e575b508060401c80611731575b508060201c80611724575b508060101c80611717575b508060081c8061170a575b508060041c806116fd575b508060021c806116f0575b50821c6116e9575b811c1b611699818b6115f3565b0160011c90565b611699818a6115f3565b61169981896115f3565b61169981886115f3565b61169981876115f3565b61169981866115f3565b61169981856115f3565b80926115f3565b906118de565b810161168c565b600291509101905f611684565b600491509101905f611679565b600891509101905f61166e565b601091509101905f611663565b602091509101905f611658565b604091509101905f61164d565b9150506080905f611642565b505f90565b905b83831061175e5750505090565b90919261176b818561191e565b90835f5265ffffffffffff808360205f20015416908416105f146117935750925b9190611751565b9350600181018091111561178c57610fe9565b908154905f829160058411611810575b6117c1935084611965565b806117e957505f905b6001600160d01b03821615610dd9576104ce916001610dcf9201610d81565b6118036117f861180a92610ffd565b835f5260205f200190565b5460301c90565b906117ca565b919261181b81611611565b8103908111610dfd576117c193855f5265ffffffffffff808360205f20015416908516105f1461184c5750916117b6565b92915061185890611018565b906117b6565b6040519061186b82610772565b5f6020838281520152565b9061189f6118996118c09261188961185e565b5061189261185e565b5084610d81565b50611026565b91600165ffffffffffff845116936020828060d01b03910151169101610d81565b905490604051926118d084610772565b835260031b1c602082015290565b90808210156118eb575090565b905090565b60ff5f805160206119bd8339815191525460401c161561190c57565b604051631afcd79f60e31b8152600490fd5b90808216911860011c8101809111610dfd5790565b65ffffffffffff90818111611946571690565b604490604051906306dfcc6560e41b8252603060048301526024820152fd5b905b8383106119745750505090565b909192611981818561191e565b90835f5265ffffffffffff808360205f20015416908416105f146119a95750925b9190611967565b935060018101809111156119a257610fe956fef0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a26469706673582212204516407e2adc4ef10f928db601f32a60d5944a2a517c00968a39e5541843a63a64736f6c634300081900336101403461015d576001600160401b0390601f61209f38819003918201601f1916830191848311848410176101615780849260209460405283398101031261015d5751906001600160a01b038216820361015d57306080527ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a009081549060ff8260401c1661014b578080831603610106575b835f60a0525f60c0525f60e052610100905f825261012090815260405190611f299283610176843960805183505060a051836104f2015260c0518381816109490152611379015260e05183818161031d01526116a901525182818161021c01526104ae0152518181816106920152610d330152f35b6001600160401b031990911681179091556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a15f8080610091565b60405163f92ee8a960e01b8152600490fd5b5f80fd5b634e487b7160e01b5f52604160045260245ffdfe60806040526004361015610011575f80fd5b5f3560e01c8063021a815614610124578063103f29071461011f5780631a2be2c41461011a578063238ab85f14610115578063267de1f3146101105780632964f8dc1461010b5780632c9d45b3146101065780632dd310001461010157806334d098ea146100fc578063439fab91146100f7578063457821b7146100f25780639f86fd85146100ed578063aa8e6489146100e8578063aab3595f146100e3578063bb24fe8a146100de578063d5c24e1a146100d95763fbfa77cf146100d4575f80fd5b61098a565b61096d565b61092a565b610905565b6108c7565b6106c1565b61067d565b610545565b610521565b6104dd565b610499565b61047d565b610428565b6103c4565b61034c565b610308565b61017b565b6001600160a01b0381160361013a57565b5f80fd5b65ffffffffffff81160361013a57565b9181601f8401121561013a578235916001600160401b03831161013a576020838186019501011161013a57565b3461013a5760a036600319011261013a5760043560243561019b81610129565b6064356101a78161013e565b6084356001600160401b03811161013a576101c690369060040161014e565b917f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0060028154146102ec5760029055604051635daf681960e11b8152606086901c60048201526001600160a01b036020826024817f000000000000000000000000000000000000000000000000000000000000000085165afa9182156102e7575f926102b6575b50339116036102a4576102a0946102679460443591610a63565b61029060017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055565b6040519081529081906020820190565b0390f35b60405163227bf64d60e01b8152600490fd5b6102d991925060203d6020116102e0575b6102d181836107dd565b810190610ddf565b905f61024d565b503d6102c7565b610a27565b604051633ee5aeb560e01b8152600490fd5b5f91031261013a57565b3461013a575f36600319011261013a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461013a57604036600319011261013a57602061039861039360243561037181610129565b6004355f526002845260405f209060018060a01b03165f5260205260405f2090565b6115c8565b604051908152f35b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b3461013a5760c036600319011261013a576102a06104146004356103e781610129565b6103f2602435610129565b6064356103fe81610129565b60a4359161040b8361013e565b60443590610ce7565b6040519182916020835260208301906103a0565b3461013a57604036600319011261013a57602065ffffffffffff61047360243561045181610129565b6004355f526001845260405f209060018060a01b03165f5260205260405f2090565b5416604051908152f35b3461013a575f36600319011261013a576020604051614e208152f35b3461013a575f36600319011261013a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461013a575f36600319011261013a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461013a575f36600319011261013a57602060ff5f5460a01c166040519015158152f35b3461013a57602036600319011261013a576001600160401b0360043581811161013a5761057690369060040161014e565b5f80516020611ed4833981519152549260ff8460401c1615931680159081610675575b600114908161066b575b159081610662575b50610650575f80516020611ed4833981519152805467ffffffffffffffff191660011790556105de918361062c57611672565b6105e457005b5f80516020611ed4833981519152805460ff60401b19169055604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a1005b5f80516020611ed4833981519152805460ff60401b1916600160401b179055611672565b60405163f92ee8a960e01b8152600490fd5b9050155f6105ab565b303b1591506105a3565b849150610599565b3461013a575f36600319011261013a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461013a5760408060031936011261013a576004356106df81610129565b602435906001600160401b03821161013a575f809161070561076994369060040161014e565b908187519283928337810184815203915af43d156107715761075b3d61072a8161081a565b90610737865192836107dd565b81523d5f602083013e5b8451948593151560208501528084015260608301906103a0565b03601f1981018352826107dd565b805190602001fd5b61075b6060610741565b634e487b7160e01b5f52604160045260245ffd5b602081019081106001600160401b038211176107aa57604052565b61077b565b604081019081106001600160401b038211176107aa57604052565b6001600160401b0381116107aa57604052565b90601f801991011681019081106001600160401b038211176107aa57604052565b6040519061080b826107af565b565b6040519061080b8261078f565b6001600160401b0381116107aa57601f01601f191660200190565b81601f8201121561013a5780359061084c8261081a565b9261085a60405194856107dd565b8284526020838301011161013a57815f926020809301838601378301015290565b90608060031983011261013a576004359160243561089881610129565b916044356108a58161013e565b91606435906001600160401b03821161013a576108c491600401610835565b90565b3461013a5760206103986109006108dd3661087b565b939190925f526002865260405f209060018060a01b03165f5260205260405f2090565b61180c565b3461013a5760206109216109183661087b565b92919091610ed9565b50604051908152f35b3461013a575f36600319011261013a5760206040516001600160401b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461013a575f36600319011261013a576020604051620249f08152f35b3461013a575f36600319011261013a575f546040516001600160a01b039091168152602090f35b604051906109be8261078f565b60608252565b9060208282031261013a5781356001600160401b039283821161013a57019060208282031261013a57604051926109fa8461078f565b823590811161013a57610a0d9201610835565b815290565b9081602091031261013a57516108c48161013e565b6040513d5f823e3d90fd5b634e487b7160e01b5f52601160045260245ffd5b65ffffffffffff9182169082160391908211610a5e57565b610a32565b92939594919095610a726109b1565b9280610c4d575b5050610a84426118e4565b5f54600490602090610aac90610aa0906001600160a01b031681565b6001600160a01b031690565b6040516327f843b560e11b815292839182905afa80156102e757610ae692610adb925f92610c1c575b50610a46565b65ffffffffffff1690565b65ffffffffffff8516908110908115610c06575b50610bf457610b0f610b189251858886610ed9565b92908092611109565b958615610be257610b9d61075b610b94610bdd947fe0cbbe1f1e6fd806ca87036fafcebaf7ab5247474a3b20e1c37bb50122c3a88496610b598a878b61111b565b610b648c878b6111a9565b610b6c6107fe565b9182526020820152604051928391602083019190916020806040830194805184520151910152565b86898488611315565b610ba7858861141e565b610bb3858883876114a3565b6040805188815265ffffffffffff90961660208701526001600160a01b0390911694918291820190565b0390a3565b60405163167f871760e31b8152600490fd5b604051631357ac9160e11b8152600490fd5b9050610c14610adb426118e4565b11155f610afa565b610c3f91925060203d602011610c46575b610c3781836107dd565b810190610a12565b905f610ad5565b503d610c2d565b610c5b9293508101906109c4565b905f80610a79565b81601f8201121561013a57805190610c7a8261081a565b92610c8860405194856107dd565b8284526020838301011161013a57815f9260208093018386015e8301015290565b9060208282031261013a5781516001600160401b03811161013a576108c49201610c63565b60406108c49260208352519160208082015201906103a0565b604051632751749360e11b81526001600160a01b0391821660048201526024810192909252918216604482015265ffffffffffff909216606483015260609291905f90829060849082907f0000000000000000000000000000000000000000000000000000000000000000165afa9081156102e7575f91610d91575b508051610d6d5750565b61075b9192506108c490610d7f61080d565b90815260405192839160208301610cce565b610dad91503d805f833e610da581836107dd565b810190610ca9565b5f610d63565b5f9081526002602090815260408083206001600160a01b039094168352929052206108c492919061180c565b9081602091031261013a57516108c481610129565b60405190610e01826107af565b60606020838281520152565b9060208282031261013a5781516001600160401b039283821161013a57019060408282031261013a5760405192610e43846107af565b825181811161013a5782610e58918501610c63565b8452602083015190811161013a57610e709201610c63565b602082015290565b9081602091031261013a575190565b9081526001600160a01b03909116602082015265ffffffffffff90911660408201526080606082018190526108c4929101906103a0565b5f19810191908211610a5e57565b91908203918211610a5e57565b92610ee2610df4565b908051806110ef575b5050610ef6426118e4565b5f54909490610f0f90610aa0906001600160a01b031681565b93604051956327f843b560e11b875260209687816004818a5afa80156102e757610f4392610adb925f926110d75750610a46565b65ffffffffffff82169081109081156110c0575b811561108f575b50611083578560049560405196878092630ce9b79360e41b82525afa9485156102e757610fb09587915f91611066575b50845190604051808099819463e02f693760e01b8352878b8a60048601610e87565b03916001600160a01b03165afa9384156102e757611022955f95611025575b5092611017859361101d9361101796869a61100e61039383610ff9875f52600260205260405f2090565b9060018060a01b03165f5260205260405f2090565b95015192610db3565b90610ecc565b611109565b91565b61101d929550611017949193611053611017928a3d8c1161105f575b61104b81836107dd565b810190610e78565b96935093919450610fcf565b503d611041565b61107d9150823d84116102e0576102d181836107dd565b5f610f8e565b5050505050505f905f90565b90506110b9610adb6110ad87610ff9875f52600160205260405f2090565b5465ffffffffffff1690565b115f610f5e565b90506110ce610adb426118e4565b81101590610f57565b610c3f9192508a3d8c11610c4657610c3781836107dd565b6111029250602080918301019101610e0d565b5f80610eeb565b9080821015611116575090565b905090565b919091805f52600160205265ffffffffffff8061114b8560405f209060018060a01b03165f5260205260405f2090565b54169083161161115a57505050565b61080b92611182915f52600160205260405f209060018060a01b03165f5260205260405f2090565b9065ffffffffffff1665ffffffffffff19825416179055565b9060018201809211610a5e57565b9190825f5260026020526112016103936111d68360405f209060018060a01b03165f5260205260405f2090565b926111e0426118e4565b955f52600260205260405f209060018060a01b03165f5260205260405f2090565b918201809211610a5e5760018101908154156112a5575b61122181611b40565b509490835495611230846115c8565b5081611290575b501561126f5750505f198301928311610a5e5761080b926112579161159f565b90919082549060031b91821b915f19901b1916179055565b61080b94611289926001600160d01b039091169190611c17565b5050611943565b65ffffffffffff83811691161490505f611237565b6112ae82611916565b611218565b606060206108c4938184526001600160401b038151168285015201519160408082015201906103a0565b919360a0936108c4969565ffffffffffff938552600180871b03166020850152604084015216606082015281608082015201906103a0565b92939060046020611332610aa0610aa05f5460018060a01b031690565b604051630ce9b79360e41b815292839182905afa9081156102e75761075b916113b0915f916113ff575b506001600160a01b03169361136f6107fe565b6001600160401b037f0000000000000000000000000000000000000000000000000000000000000000168152906020820152604051928391602083016112b3565b823b1561013a575f946113db86926040519889978896879563724ab0f760e11b8752600487016112dd565b03925af180156102e7576113ec5750565b806113f961080b926107ca565b806102fe565b611418915060203d6020116102e0576102d181836107dd565b5f61135c565b5f8054604051631c9e38c760e21b8152600481019390935265ffffffffffff9390931660248301529091602091839160449183916001600160a01b03165af180156102e75761146a5750565b6114829060203d60201161105f5761104b81836107dd565b50565b811561148f570490565b634e487b7160e01b5f52601260045260245ffd5b92905f549060ff8260a01c166114bb575b5050505050565b6040516313c085b760e11b815291602090839060049082906001600160a01b03165afa9182156102e7575f92611578575b5060405163065c1e0360e01b6020820190815260248201969096526001600160a01b039091166044820152606481019390935265ffffffffffff90911660848301526115458260a481015b03601f1981018452836107dd565b6202a15c5a10611566575f928380935192620249f0f1505f808080806114b4565b604051632153f33560e21b8152600490fd5b61154592506115986115379160203d6020116102e0576102d181836107dd565b92506114ec565b80548210156115b4575f5260205f2001905f90565b634e487b7160e01b5f52603260045260245ffd5b8054806115fd57505f5b6001600160d01b038116156115f75760016115ed920161159f565b90549060031b1c90565b50505f90565b5f19908082810111610a5e57825f5260205f2001015460301c6115d2565b91909160408184031261013a57803561163381610129565b9260208201356001600160401b03811161013a576108c49201610835565b5190811515820361013a57565b9081602091031261013a576108c490611651565b61167e9181019061161b565b6040516302910f8b60e31b81526001600160a01b0392831660048201819052929160209182816024817f000000000000000000000000000000000000000000000000000000000000000088165afa9081156102e7575f916117ae575b501561179c578161170e6004926116ef611966565b5f80546001600160a01b0319166001600160a01b03891617905561199c565b94604051928380926313c085b760e11b82525afa9182156102e7575f9261177f575b5050161580611775575b611763575161080b9015155f805460ff60a01b191691151560a01b60ff60a01b16919091179055565b60405163d2420f5960e01b8152600490fd5b508051151561173a565b6117959250803d106102e0576102d181836107dd565b5f80611730565b6040516362df054560e01b8152600490fd5b6117ce9150833d85116117d4575b6117c681836107dd565b81019061165e565b5f6116da565b503d6117bc565b9081602091031261013a575163ffffffff8116810361013a5790565b90600163ffffffff80931601918211610a5e57565b918051156118da5780602080611827935183010191016117db565b916118328382611ab4565b92611843845165ffffffffffff1690565b9065ffffffffffff80851692168281146118ce5782119182611879575b5050611870576108c492506119e4565b50506020015190565b9091506118868354610ebe565b63ffffffff83161491821561189f575b50505f80611860565b6118c69192506118ba6118b4610adb926117f7565b85611ab4565b5165ffffffffffff1690565b115f80611896565b50505050506020015190565b506108c4916119e4565b65ffffffffffff908181116118f7571690565b604490604051906306dfcc6560e41b8252603060048301526024820152fd5b8054600160401b8110156107aa576119339160018201815561159f565b8154905f199060031b1b19169055565b90815491600160401b8310156107aa578261125791600161080b9501815561159f565b61196e611b8f565b611976611b8f565b60017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055565b5f6040516119a98161078f565b5260208180518101031261013a576020906040516119c68161078f565b6119de6040519384936119d88561078f565b01611651565b82525290565b908154905f829160058411611a4e575b6119ff935084611e74565b80611a2757505f905b6001600160d01b038216156115f7576108c49160016115ed920161159f565b611a41611a36611a4892610ebe565b835f5260205f200190565b5460301c90565b90611a08565b9192611a5981611d36565b8103908111610a5e576119ff93855f5265ffffffffffff808360205f20015416908516105f14611a8a5750916119f4565b929150611a969061119b565b906119f4565b60405190611aa9826107af565b5f6020838281520152565b90611add611ad7611afe92611ac7611a9c565b50611ad0611a9c565b508461159f565b50611b1c565b91600165ffffffffffff845116936020828060d01b0391015116910161159f565b90549060405192611b0e846107af565b835260031b1c602082015290565b90604051611b29816107af565b915465ffffffffffff8116835260301c6020830152565b805480611b515750505f905f905f90565b5f19908082810111610a5e57611b6e925f5260205f200101611b1c565b9065ffffffffffff82511691602060018060d01b0391015116906001929190565b60ff5f80516020611ed48339815191525460401c1615611bab57565b604051631afcd79f60e31b8152600490fd5b8054600160401b8110156107aa57611bda9160018201815561159f565b611c0457815160209092015160301b65ffffffffffff191665ffffffffffff909216919091179055565b634e487b7160e01b5f525f60045260245ffd5b805492939291908215611d0d57611c38611c33611a3685610ebe565b611b1c565b90611c49825165ffffffffffff1690565b65ffffffffffff84811691168110611cfb57611cbf946020948892611c77610adb875165ffffffffffff1690565b03611cc35750611cb192611c8d611c9892610ebe565b905f5260205f200190565b9065ffffffffffff82549181199060301b169116179055565b01516001600160d01b031690565b9190565b915050611cf691611ce3611cd56107fe565b65ffffffffffff9093168352565b6001600160d01b03881682860152611bbd565b611cb1565b604051632520601d60e01b8152600490fd5b611d319250611d1d611cd56107fe565b6001600160d01b0385166020830152611bbd565b5f9190565b8015611e6f5780611e08611e01611df7611ded611de3611dd9611dcf611dc560016108c49a5f908b60801c80611e63575b508060401c80611e56575b508060201c80611e49575b508060101c80611e3c575b508060081c80611e2f575b508060041c80611e22575b508060021c80611e15575b50821c611e0e575b811c1b611dbe818b611485565b0160011c90565b611dbe818a611485565b611dbe8189611485565b611dbe8188611485565b611dbe8187611485565b611dbe8186611485565b611dbe8185611485565b8092611485565b90611109565b8101611db1565b600291509101905f611da9565b600491509101905f611d9e565b600891509101905f611d93565b601091509101905f611d88565b602091509101905f611d7d565b604091509101905f611d72565b9150506080905f611d67565b505f90565b91905b838210611e845750505090565b9091928083169080841860011c8201809211610a5e57845f5265ffffffffffff808360205f20015416908416105f14611ec15750925b9190611e77565b939250611ecd9061119b565b91611eba56fef0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a2646970667358221220bead91c521e34513050434cea50d07f95784d3ccc2f6242d53243cdc1dd2f24e64736f6c634300081900336101603461017c576001600160401b0390601f61377c38819003918201601f1916830191848311848410176101805780849260209460405283398101031261017c5751906001600160a01b038216820361017c57306080527ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a009081549060ff8260401c1661016a578080831603610125575b835f60a0525f60c0525f60e052610100905f8252610120905f8252610140908152604051916135e79384610195853960805184610b66015260a0518461047b015260c0518481816115860152612c5a015260e0518481816102e801526122ba0152518381816104370152612444015251828181610c7801526115dc015251818181610806015281816119140152611d090152f35b6001600160401b031990911681179091556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a15f8080610091565b60405163f92ee8a960e01b8152600490fd5b5f80fd5b634e487b7160e01b5f52604160045260245ffdfe60806040526004361015610011575f80fd5b5f3560e01c80622a087514610213578063103f29071461020e5780631a2be2c4146102095780631dd5f60014610204578063267de1f3146101ff5780632964f8dc146101fa5780632c9d45b3146101f55780632dd31000146101f057806331ce4dfe146101eb57806334d098ea146101e6578063439fab91146101e1578063457821b7146101dc5780635264679b146101d7578063545ce389146101d257806369f78920146101cd5780638f42f9ab146101c85780638f82f931146101c35780639168f9d2146101be5780639a896551146101b95780639f86fd85146101b4578063a4ef9b4f146101af578063aa8e6489146101aa578063aab3595f146101a5578063b94c386e146101a0578063bb24fe8a1461019b578063bc6eac5b14610196578063c0cd7c3e14610191578063cd05b8a11461018c578063d5c24e1a14610187578063e054e08b14610182578063f9268d181461017d5763fbfa77cf14610178575f80fd5b611813565b6116a5565b611680565b611663565b61160b565b6115c7565b6115aa565b611567565b61121b565b6111c3565b611185565b611122565b61108e565b611003565b610bd8565b610b47565b610b2a565b610ae5565b61084f565b610835565b6107f1565b6106b9565b610668565b6105ff565b610466565b610422565b610406565b6103b1565b610397565b610317565b6102d3565b610261565b6001600160a01b0381160361022957565b5f80fd5b65ffffffffffff81160361022957565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b346102295760c0366003190112610229576102c56102b160043561028481610218565b61028f602435610218565b60643561029b81610218565b60a435916102a88361022d565b604435906118c9565b60405191829160208352602083019061023d565b0390f35b5f91031261022957565b34610229575f366003190112610229576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461022957604036600319011261022957602061036361035e60243561033c81610218565b6004355f526002845260405f209060018060a01b03165f5260205260405f2090565b6120d2565b604051908152f35b60609060031901126102295760043561038381610218565b90602435906044356103948161022d565b90565b34610229576102c56102b16103ab3661036b565b916119a0565b3461022957604036600319011261022957602065ffffffffffff6103fc6024356103da81610218565b6004355f526001845260405f209060018060a01b03165f5260205260405f2090565b5416604051908152f35b34610229575f366003190112610229576020604051614e208152f35b34610229575f366003190112610229576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b34610229575f366003190112610229576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b634e487b7160e01b5f52604160045260245ffd5b602081019081106001600160401b038211176104d957604052565b6104aa565b604081019081106001600160401b038211176104d957604052565b606081019081106001600160401b038211176104d957604052565b6001600160401b0381116104d957604052565b608081019081106001600160401b038211176104d957604052565b90601f801991011681019081106001600160401b038211176104d957604052565b6040519060c082018281106001600160401b038211176104d957604052565b6040519061058f826104f9565b565b6040519061058f826104de565b6001600160401b0381116104d957601f01601f191660200190565b81601f82011215610229578035906105d08261059e565b926105de6040519485610542565b8284526020838301011161022957815f926020809301838601378301015290565b346102295760603660031901126102295760243561061c8161022d565b604435906001600160401b0382116102295761065f61064160209336906004016105b9565b6004355f90815260068552604090206001600160a01b03939061214a565b16604051908152f35b34610229575f36600319011261022957602060ff5f5460a01c166040519015158152f35b9181601f84011215610229578235916001600160401b038311610229576020838186019501011161022957565b34610229576020366003190112610229576001600160401b03600435818111610229576106ea90369060040161068c565b5f80516020613592833981519152549260ff8460401c16159316801590816107e9575b60011490816107df575b1590816107d6575b506107c4575f80516020613592833981519152805467ffffffffffffffff1916600117905561075291836107a057612283565b61075857005b5f80516020613592833981519152805460ff60401b19169055604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a1005b5f80516020613592833981519152805460ff60401b1916600160401b179055612283565b60405163f92ee8a960e01b8152600490fd5b9050155f61071f565b303b159150610717565b84915061070d565b34610229575f366003190112610229576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b34610229576102c56102b16108493661036b565b91611a24565b346102295760a0366003190112610229576004602435813561087082610218565b6064359161087d8361022d565b6084356001600160401b0381116102295761089b903690860161068c565b93906108a56123ed565b6108ae8461241c565b6108b6611ab6565b9480610acf575b50506108c8426125ff565b6108e26108db875465ffffffffffff1690565b8092611b17565b5f54909590610907906108fb906001600160a01b031681565b6001600160a01b031690565b958760206040988951928380926327f843b560e11b82525afa8015610aca576109469261093b925f92610a99575b50611a0c565b65ffffffffffff1690565b65ffffffffffff8416908110908115610a83575b50610a735761096f61097891518486886127da565b506044356124b3565b958615610a65576102c5610a3e878988887f3cb7f4ff6cecf74cee0eb9ae3ebf8933fa60a53014cce52f96da72a78dba8464896109bd8a6109b8426125ff565b611b17565b92600354978894610a0e6109cf610563565b8881526001600160a01b0385166020820152808b018a905265ffffffffffff8616606082015265ffffffffffff831660808201525f60a0820152611b59565b885197885265ffffffffffff938416602089015290921660408701526001600160a01b0316949081906060820190565b0390a4610a5760015f8051602061357283398151915255565b519081529081906020820190565b855163167f871760e31b8152fd5b8551631357ac9160e11b81528790fd5b9050610a9161093b426125ff565b11155f61095a565b610abc91925060203d602011610ac3575b610ab48183610542565b810190611b31565b905f610935565b503d610aaa565b6118a5565b610add929550810190611ac9565b925f806108bd565b34610229576080366003190112610229576102c56102b1600435610b0881610218565b604435610b1481610218565b60643591610b218361022d565b60243590611c8f565b34610229575f366003190112610229576020600354604051908152f35b3461022957604036600319011261022957602435610b648161022d565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163303610bc65763ffffffff610bb16040926004355f526006602052835f206124e9565b91505083929192519215158352166020820152f35b604051637ca475e560e11b8152600490fd5b346102295760603660031901126102295760048035906bffffffffffffffffffffffff8216820361022957602435610c0f81610218565b6044356001600160401b03811161022957610c2d903690840161068c565b90610c366123ed565b610c3e611ab6565b5081610f9e575b5050604080516302910f8b60e31b8152338185019081526001600160a01b0395929491602091829082908190830103818a7f0000000000000000000000000000000000000000000000000000000000000000165afa908115610aca575f91610f71575b5015610f62575f54610ce3906001600160a01b0316936bffffffffffffffffffffffff166bffffffffffffffffffffffff193360601b161790565b95610cfe610cf9885f52600660205260405f2090565b61323a565b50949015610ef857610d1261093b426125ff565b65ffffffffffff9586161115610ec257610d3c610d37895f52600660205260405f2090565b6125c0565b505b610d616108fb6108fb6108fb610d5c8c5f52600660205260405f2090565b612e78565b91808716928303610dcd575b505050505050610db2907f7b0b759b513b299fd2811f51926dca8854222a675557e8d544ce0933bf5b7570925b516001600160a01b0390911681529081906020820190565b0390a2610dcb60015f8051602061357283398151915255565b005b610de48998959796985f52600660205260405f2090565b911692845163186a323160e21b815281818981885afa908115610aca575f91610ea5575b5081600554958751998a80926327f843b560e11b82525afa908115610aca5789610e6d610e7f977f7b0b759b513b299fd2811f51926dca8854222a675557e8d544ce0933bf5b75709c610e7495610db29d610e79985f92610e88575b50501690611dde565b9116611dff565b6125ff565b90613447565b82958495610d6d565b610e9e9250803d10610ac357610ab48183610542565b5f80610e64565b610ebc9150823d8411610ac357610ab48183610542565b5f610e08565b610ee06108fb6108fb6108fb610d5c8c5f52600660205260405f2090565b82871603610d3e57865163a741a04560e01b81528490fd5b5093949385169250508115610f54575091610db291610f4d7f7b0b759b513b299fd2811f51926dca8854222a675557e8d544ce0933bf5b757094610f44875f52600660205260405f2090565b610e79426125ff565b5050610d9a565b825163a741a04560e01b8152fd5b5083516323d53b9760e21b8152fd5b610f919150823d8411610f97575b610f898183610542565b810190611dca565b5f610ca8565b503d610f7f565b610faa91810190611ac9565b505f80610c45565b634e487b7160e01b5f52603260045260245ffd5b600354811015610ffe5760035f5260021b7fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b01905f90565b610fb2565b34610229576020366003190112610229576004356003548110156102295761102a90610fc6565b50805460018201546002830154600390930154604080519384526001600160a01b0390921660208401529082019290925265ffffffffffff808316606080840191909152603084901c90911660808301529190911c60ff16151560a082015260c090f35b34610229576040366003190112610229576004356110ab81610218565b6024356001600160401b038111610229575f916110cd8392369060040161068c565b90816040519283928337810184815203915af461111a6110eb611e0c565b9161110c60405193849215156020840152604080840152606083019061023d565b03601f198101835282610542565b805190602001fd5b34610229576102c56102b16111363661036b565b91611e6d565b906080600319830112610229576004359160243561115981610218565b916044356111668161022d565b91606435906001600160401b03821161022957610394916004016105b9565b346102295760206103636111be61119b3661113c565b939190925f526002865260405f209060018060a01b03165f5260205260405f2090565b612665565b346102295760206111df6111d63661113c565b929190916127da565b50604051908152f35b9060406003198301126102295760043591602435906001600160401b038211610229576112179160040161068c565b9091565b3461022957611229366111e8565b91906112336123ed565b61123b611f92565b9280611551575b505060035481101561153f5761125781610fc6565b50908154906112658261241c565b6003830180549365ffffffffffff9384861660018060a01b0361128a895183856119b7565b16151580611514575b806114fb575b6114e9576112af816112aa426125ff565b611a0c565b5f546112c5906108fb906001600160a01b031681565b96600460206040998a51928380926327f843b560e11b82525afa8015610aca5782915f916114ca575b50169116116114b957600183018054909861131993929188906001600160a01b0316910151926127da565b906113288160028501546124b3565b9687156114a85760601c60ff166114975792611450611443899461141b6114088b9687876102c59f6114168f9d8f9e6114569f61137286600160601b60ff60601b19825416179055565b8a54855461139491906001600160a01b0316885465ffffffffffff1691612a0a565b8a5485546113ad9189916001600160a01b031690612a8a565b8a5494546113cb906001600160a01b0316965465ffffffffffff1690565b976113d4610582565b9384526020840152818301525196879160208301919091604080606083019480518452602081015160208501520151910152565b03601f198101875286610542565b612bf6565b61143461142e855465ffffffffffff1690565b86612cff565b5494546001600160a01b031690565b915465ffffffffffff1690565b92612d7c565b81518381527f5cc28df3b54da9d06f805d87616ebf969c81310f2aa8369cb14ca50f815d411190602090a2610a5760015f8051602061357283398151915255565b8551633428e90760e01b8152600490fd5b865163167f871760e31b8152600490fd5b8551639ea153eb60e01b8152600490fd5b6114e3915060203d602011610ac357610ab48183610542565b5f6112ee565b60405163b62b15c760e01b8152600490fd5b5061150861093b426125ff565b868860301c1611611299565b506115386108fb61152c611527426125ff565b6119f0565b60208b015190856119b7565b1515611293565b604051637822972360e11b8152600490fd5b61155f929350810190611fb1565b905f80611242565b34610229575f3660031901126102295760206040516001600160401b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b34610229575f366003190112610229576020600554604051908152f35b34610229575f366003190112610229576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b34610229576040366003190112610229576024356001600160401b0381116102295761165161164060209236906004016105b9565b611649426125ff565b6004356119b7565b6040516001600160a01b039091168152f35b34610229575f366003190112610229576020604051620249f08152f35b34610229575f36600319011261022957602065ffffffffffff60045416604051908152f35b34610229576116b3366111e8565b906116bc6123ed565b6116c4612039565b91806117ff575b505060035482101561153f576116e082610fc6565b506003815491019182549165ffffffffffff9160018060a01b036117088251858716856119b7565b169182159182156117d6575b50506117c45733036117b25761172c61093b426125ff565b908260301c1611156117a15760601c60ff1661178f57805460ff60601b1916600160601b17905533907f7d3d269c851b72257a5194a401d151902e9be4347d555996dcff3ff86a077e925f80a3610dcb60015f8051602061357283398151915255565b604051633428e90760e01b8152600490fd5b60405162c457e560e81b8152600490fd5b604051635d154fe160e11b8152600490fd5b60405163dd1ebd9d60e01b8152600490fd5b6117f79250906108fb9160206117ee611527426125ff565b910151916119b7565b155f80611714565b61180c9250810190612052565b5f806116cb565b34610229575f366003190112610229575f546040516001600160a01b039091168152602090f35b81601f82011215610229578051906118518261059e565b9261185f6040519485610542565b8284526020838301011161022957815f9260208093018386015e8301015290565b906020828203126102295781516001600160401b03811161022957610394920161183a565b6040513d5f823e3d90fd5b604061039492602083525191602080820152019061023d565b604051632751749360e11b81526001600160a01b0391821660048201526024810192909252909116604482015265ffffffffffff9091166064820152606091905f81806084810103817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa908115610aca575f9161197e575b5080516119565750565b61110c919250610394906040519061196d826104be565b8152604051928391602083016118b0565b61199a91503d805f833e6119928183610542565b810190611880565b5f61194c565b92916119ae91606094611e6d565b80516119565750565b5f9081526006602052604090206001600160a01b03926119d892909161214a565b1690565b634e487b7160e01b5f52601160045260245ffd5b65ffffffffffff9081165f190191908211611a0757565b6119dc565b65ffffffffffff9182169082160391908211611a0757565b611a4590939293611a386060958483611e6d565b92611136611527426125ff565b815115801590611aac575b611a58575050565b611a999293509061110c6103949260405192611a73846104de565b83526020830190815260405194859360208086015251604080860152608085019061023d565b9051838203603f1901606085015261023d565b5080511515611a50565b60405190611ac3826104be565b60608252565b906020828203126102295781356001600160401b03928382116102295701906020828203126102295760405192611aff846104be565b823590811161022957611b1292016105b9565b815290565b91909165ffffffffffff80809416911601918211611a0757565b9081602091031261022957516103948161022d565b634e487b7160e01b5f525f60045260245ffd5b600354600160401b8110156104d957806001611b789201600355610fc6565b919091611c3b578051825560208101516001830180546001600160a01b0319166001600160a01b039290921691909117905561058f91611c219060a090600390604085015160028201550192611bee65ffffffffffff606083015116859065ffffffffffff1665ffffffffffff19825416179055565b60808101516bffffffffffff00000000000085549160301b16906bffffffffffff00000000000019161784550151151590565b815460ff60601b191690151560601b60ff60601b16179055565b611b46565b906103949160208152611c5f825160606020840152608083019061023d565b9060606040611c7f602086015194601f199586868303018487015261023d565b940151928285030191015261023d565b919093925f606095611ca2838287611e6d565b94611d05611cbc611cb5611527426125ff565b8484611e6d565b604051632751749360e11b81526001600160a01b039384166004820152602481019490945291909516604483015265ffffffffffff909316606482015292839081906084820190565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa918215610aca575f92611da1575b50825115801590611d97575b8015611d8d575b611d5d57505050565b61110c939450906103949291611d71610582565b9283526020830152604082015260405192839160208301611c40565b5081511515611d54565b5080511515611d4d565b611db69192503d805f833e6119928183610542565b905f611d41565b5190811515820361022957565b908160209103126102295761039490611dbd565b81810292918115918404141715611a0757565b9060018201809211611a0757565b91908201809211611a0757565b3d15611e36573d90611e1d8261059e565b91611e2b6040519384610542565b82523d5f602084013e565b606090565b519063ffffffff8216820361022957565b9190826040910312610229576103946020611e6684611dbd565b9301611e3b565b92915f8060609565ffffffffffff60405194602096638f82f93160e01b88880152602487015216604485015260448452611ea684610527565b6040519384611ed387820192639f86fd8560e01b845230602484015260406044840152606483019061023d565b0394611ee7601f1996878101835282610542565b51915afa50611f05611ef7611e0c565b838082518301019101612631565b9015611f5857808380611f1d93518301019101611e4c565b9290611f2857505050565b61039492939450611f4c604051948592830191909163ffffffff6020820193169052565b03908101835282610542565b809150519182156102295701fd5b5f9081526002602090815260408083206001600160a01b03909416835292905220610394929190612665565b60405190611f9f826104f9565b60606040838281528260208201520152565b906020828203126102295781356001600160401b03928382116102295701906060828203126102295760405192611fe7846104f9565b82358181116102295782611ffc9185016105b9565b8452602083013581811161022957826120169185016105b9565b602085015260408301359081116102295761203192016105b9565b604082015290565b60405190612046826104de565b60606020838281520152565b906020828203126102295781356001600160401b03928382116102295701906040828203126102295760405192612088846104de565b8235818111610229578261209d9185016105b9565b84526020830135908111610229576120b592016105b9565b602082015290565b8054821015610ffe575f5260205f2001905f90565b6120db81612e78565b6001600160d01b038116156121005760016120f692016120bd565b90549060031b1c90565b50505f90565b908160209103126102295761039490611e3b565b5f19810191908211611a0757565b91908203918211611a0757565b90600163ffffffff80931601918211611a0757565b9180511561222e578060208061216593518301019101612106565b916121708382612eb8565b92612181845165ffffffffffff1690565b9065ffffffffffff808516921682811461221557821191826121c0575b50506121ae576103949250613346565b5050602001516001600160d01b031690565b9091506121cd835461211a565b63ffffffff8316149182156121e6575b50505f8061219e565b61220d9192506122016121fb61093b92612135565b85612eb8565b5165ffffffffffff1690565b115f806121dd565b50505050602091909101516001600160d01b0316905090565b5061039491613346565b91909160408184031261022957803561225081610218565b9260208201356001600160401b0381116102295761039492016105b9565b90816020910312610229575161039481610218565b61228f91810190612238565b6040516302910f8b60e31b81526001600160a01b0392831660048201819052929160209182816024817f000000000000000000000000000000000000000000000000000000000000000088165afa908115610aca575f916123d0575b50156123be5781612320600492612300612f0c565b5f80546001600160a01b0319166001600160a01b03891617905586612f99565b94604051928380926313c085b760e11b82525afa918215610aca575f92612391575b5050161580612387575b612375575161058f9015155f805460ff60a01b191691151560a01b60ff60a01b16919091179055565b60405163d2420f5960e01b8152600490fd5b508051151561234c565b6123b09250803d106123b7575b6123a88183610542565b81019061226e565b5f80612342565b503d61239e565b6040516362df054560e01b8152600490fd5b6123e79150833d8511610f9757610f898183610542565b5f6122eb565b5f80516020613572833981519152600281541461240a5760029055565b604051633ee5aeb560e01b8152600490fd5b604051635daf681960e11b815260609190911c60048201526001600160a01b036020826024817f000000000000000000000000000000000000000000000000000000000000000085165afa918215610aca575f92612492575b503391160361248057565b60405163227bf64d60e01b8152600490fd5b6124ac91925060203d6020116123b7576123a88183610542565b905f612475565b90808210156124c0575090565b905090565b906040516124d2816104de565b915465ffffffffffff8116835260301c6020830152565b908154905f829160058411612572575b6125049350846131d8565b90811561256657612525906125188361211a565b905f5260205f20016124c5565b9161255f6125566125506020612541875165ffffffffffff1690565b9601516001600160d01b031690565b9361211a565b63ffffffff1690565b6001939291565b50505f905f905f905f90565b919261257d8161309a565b8103908111611a075761250493855f5265ffffffffffff808360205f20015416908516105f146125ae5750916124f9565b9291506125ba90611df1565b906124f9565b906125ca82612e78565b91805480156125eb575f1901906125e182826120bd565b611c3b575f905555565b634e487b7160e01b5f52603160045260245ffd5b65ffffffffffff90818111612612571690565b604490604051906306dfcc6560e41b8252603060048301526024820152fd5b9190916040818403126102295761264781611dbd565b9260208201516001600160401b03811161022957610394920161183a565b91805115612727578060208061268093518301019101612106565b9161268b8382613294565b9261269c845165ffffffffffff1690565b9065ffffffffffff808516921682811461271b57821191826126d2575b50506126c9576103949250613289565b50506020015190565b9091506126df835461211a565b63ffffffff8316149182156126f8575b50505f806126b9565b61271391925061220161270d61093b92612135565b85613294565b115f806126ef565b50505050506020015190565b5061039491613289565b906020828203126102295781516001600160401b03928382116102295701906040828203126102295760405192612767846104de565b8251818111610229578261277c91850161183a565b84526020830151908111610229576120b5920161183a565b90816020910312610229575190565b9081526001600160a01b03909116602082015265ffffffffffff90911660408201526080606082018190526103949291019061023d565b926127e3612039565b908051806129f0575b50506127f7426125ff565b5f54909490612810906108fb906001600160a01b031681565b93604051956327f843b560e11b875260209687816004818a5afa8015610aca576128449261093b925f926129d85750611a0c565b65ffffffffffff82169081109081156129c1575b8115612990575b50612984578560049560405196878092630ce9b79360e41b82525afa948515610aca576128b19587915f91612967575b50845190604051808099819463e02f693760e01b8352878b8a600486016127a3565b03916001600160a01b03165afa938415610aca57612923955f95612926575b5092612918859361291e9361291896869a61290f61035e836128fa875f52600260205260405f2090565b9060018060a01b03165f5260205260405f2090565b95015192611f66565b90612128565b6124b3565b91565b61291e929550612918949193612954612918928a3d8c11612960575b61294c8183610542565b810190612794565b969350939194506128d0565b503d612942565b61297e9150823d84116123b7576123a88183610542565b5f61288f565b5050505050505f905f90565b90506129ba61093b6129ae876128fa875f52600160205260405f2090565b5465ffffffffffff1690565b115f61285f565b90506129cf61093b426125ff565b81101590612858565b610abc9192508a3d8c11610ac357610ab48183610542565b612a039250602080918301019101612731565b5f806127ec565b919091805f52600160205265ffffffffffff80612a3a8560405f209060018060a01b03165f5260205260405f2090565b541690831611612a4957505050565b61058f92612a71915f52600160205260405f209060018060a01b03165f5260205260405f2090565b9065ffffffffffff1665ffffffffffff19825416179055565b9190825f526002602052612ae261035e612ab78360405f209060018060a01b03165f5260205260405f2090565b92612ac1426125ff565b955f52600260205260405f209060018060a01b03165f5260205260405f2090565b918201809211611a07576001810190815415612b86575b612b028161323a565b509490835495612b11846120d2565b5081612b71575b5015612b505750505f198301928311611a075761058f92612b38916120bd565b90919082549060031b91821b915f19901b1916179055565b61058f94612b6a926001600160d01b039091169190613447565b5050613323565b65ffffffffffff83811691161490505f612b18565b612b8f826132f6565b612af9565b60606020610394938184526001600160401b0381511682850152015191604080820152019061023d565b919360a093610394969565ffffffffffff938552600180871b031660208501526040840152166060820152816080820152019061023d565b92939060046020612c136108fb6108fb5f5460018060a01b031690565b604051630ce9b79360e41b815292839182905afa908115610aca5761110c91612c91915f91612ce0575b506001600160a01b031693612c50610591565b6001600160401b037f000000000000000000000000000000000000000000000000000000000000000016815290602082015260405192839160208301612b94565b823b15610229575f94612cbc86926040519889978896879563724ab0f760e11b875260048701612bbe565b03925af18015610aca57612ccd5750565b80612cda61058f92610514565b806102c9565b612cf9915060203d6020116123b7576123a88183610542565b5f612c3d565b65ffffffffffff9160446020925f60018060a01b038154166040519687958694631c9e38c760e21b865260048601521660248401525af18015610aca57612d435750565b612d5b9060203d6020116129605761294c8183610542565b50565b8115612d68570490565b634e487b7160e01b5f52601260045260245ffd5b92905f549060ff8260a01c16612d94575b5050505050565b6040516313c085b760e11b815291602090839060049082906001600160a01b03165afa918215610aca575f92612e51575b5060405163065c1e0360e01b6020820190815260248201969096526001600160a01b039091166044820152606481019390935265ffffffffffff9091166084830152612e1e8260a481015b03601f198101845283610542565b6202a15c5a10612e3f575f928380935192620249f0f1505f80808080612d8d565b604051632153f33560e21b8152600490fd5b612e1e9250612e71612e109160203d6020116123b7576123a88183610542565b9250612dc5565b805480612e855750505f90565b5f19918183810111611a07575f5260205f2001015460301c90565b60405190612ead826104de565b5f6020838281520152565b612edd91612ed791612ec8612ea0565b50612ed1612ea0565b506120bd565b506124c5565b65ffffffffffff81511690602060018060d01b039101511660405191612f02836104de565b8252602082015290565b612f146133d2565b612f1c6133d2565b60015f8051602061357283398151915255565b60405190612f3c826104be565b5f8252565b809103906060821261022957602060405192612f5c846104f9565b12610229576040908151612f6f816104be565b612f7882611dbd565b815283526020810151612f8a8161022d565b60208401520151604082015290565b90600490612fa5612f2f565b508051612fbc602092838080948301019101612f41565b6040516327f843b560e11b815290949093849182906001600160a01b03165afa918215610aca575f9261307b575b50820190612ffe825165ffffffffffff1690565b65ffffffffffff91821691161015613069576040820160038151106130575761304d613033613053935165ffffffffffff1690565b65ffffffffffff1665ffffffffffff196004541617600455565b51600555565b5190565b6040516354f778f360e01b8152600490fd5b6040516367d5e3df60e11b8152600490fd5b816130939293503d8411610ac357610ab48183610542565b905f612fea565b80156131d3578061316c61316561315b61315161314761313d61313361312960016103949a5f908b60801c806131c7575b508060401c806131ba575b508060201c806131ad575b508060101c806131a0575b508060081c80613193575b508060041c80613186575b508060021c80613179575b50821c613172575b811c1b613122818b612d5e565b0160011c90565b613122818a612d5e565b6131228189612d5e565b6131228188612d5e565b6131228187612d5e565b6131228186612d5e565b6131228185612d5e565b8092612d5e565b906124b3565b8101613115565b600291509101905f61310d565b600491509101905f613102565b600891509101905f6130f7565b601091509101905f6130ec565b602091509101905f6130e1565b604091509101905f6130d6565b9150506080905f6130cb565b505f90565b91905b8382106131e85750505090565b909192808316906001818518811c8301809311611a0757855f5265ffffffffffff808460205f20015416908516105f14613227575050925b91906131db565b909493508101809111611a075791613220565b80548061324b5750505f905f905f90565b5f19908082810111611a0757613268925f5260205f2001016124c5565b9065ffffffffffff82511691602060018060d01b0391015116906001929190565b906120db9082613346565b906132b7612ed76132d8926132a7612ea0565b506132b0612ea0565b50846120bd565b91600165ffffffffffff845116936020828060d01b039101511691016120bd565b905490604051926132e8846104de565b835260031b1c602082015290565b8054600160401b8110156104d957613313916001820181556120bd565b8154905f199060031b1b19169055565b90815491600160401b8310156104d95782612b3891600161058f950181556120bd565b908154905f829160058411613384575b6133619350846131d8565b8061336c5750505f90565b6133759061211a565b905f5260205f20015460301c90565b919261338f8161309a565b8103908111611a075761336193855f5265ffffffffffff808360205f20015416908516105f146133c0575091613356565b9291506133cc90611df1565b90613356565b60ff5f805160206135928339815191525460401c16156133ee57565b604051631afcd79f60e31b8152600490fd5b8054600160401b8110156104d95761341d916001820181556120bd565b611c3b57815160209092015160301b65ffffffffffff191665ffffffffffff909216919091179055565b8054929392919082156135485761347361346e6134638561211a565b835f5260205f200190565b6124c5565b90613484825165ffffffffffff1690565b65ffffffffffff84811691168110613536576134fa9460209488926134b261093b875165ffffffffffff1690565b036134fe57506134ec926134c86134d39261211a565b905f5260205f200190565b9065ffffffffffff82549181199060301b169116179055565b01516001600160d01b031690565b9190565b9150506135319161351e613510610591565b65ffffffffffff9093168352565b6001600160d01b03881682860152613400565b6134ec565b604051632520601d60e01b8152600490fd5b61356c9250613558613510610591565b6001600160d01b0385166020830152613400565b5f919056fe9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a264697066735822122076922ea6e3ad8fc57d79a3decbb6a526695968650fb8ee8d88110f7794fd659264736f6c63430008190033","sourceMap":"624:2139:84:-:0;;;;;;;;;;;;;-1:-1:-1;;624:2139:84;;;;-1:-1:-1;;;;;624:2139:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;624:2139:84;;;;;;;;348:4:82;332:21;;8837:64:25;624:2139:84;;;;;;;7896:76:25;;624:2139:84;;;;;;7985:34:25;7981:146;;-1:-1:-1;525:17:69;;;-1:-1:-1;525:17:69;;-1:-1:-1;552:12:69;;-1:-1:-1;2353:28:92;;2391:53;;-1:-1:-1;2391:53:92;;987:41:84;;;;624:2139;;1062:31;;;;;;;;;;;;;;624:2139;1062:31;;;;;;348:4:82;624:2139:84;;1062:31;;;-1:-1:-1;1062:31:84;;;;;;1038:56;;624:2139;;1038:56;;624:2139;;1133:35;;;;;;;;;;;;;;;624:2139;1133:35;;;;;;348:4:82;624:2139:84;;1133:35;;;-1:-1:-1;1133:35:84;;;;;;1104:65;624:2139;;1104:65;;624:2139;;;;;;;;332:21:82;624:2139:84;;;;;525:17:69;624:2139:84;;;;;552:12:69;624:2139:84;;;;;2353:28:92;624:2139:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1133:35;624:2139;;;-1:-1:-1;624:2139:84;;;;;1133:35;624:2139;;;-1:-1:-1;624:2139:84;;;;;-1:-1:-1;624:2139:84;7981:146:25;-1:-1:-1;;;;;;624:2139:84;;;;;;;;;8087:29:25;;624:2139:84;;8087:29:25;7981:146;;;;;7896:76;624:2139:84;;-1:-1:-1;;;7938:23:25;;;;;624:2139:84;-1:-1:-1;624:2139:84;","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361015610011575f80fd5b5f3560e01c8063103f2907146101545780631a2be2c41461014f578063267de1f31461014a5780632964f8dc146101455780632c9d45b3146101405780632dd310001461013b57806334d098ea14610136578063439fab91146101315780634a7196551461012c5780634ea2e926146101275780634eb5a242146101225780636565b7db1461011d578063770280461461011857806379d89614146101135780639f86fd851461010e578063aa8e648914610109578063aab3595f14610104578063bb24fe8a146100ff578063d5c24e1a146100fa5763fbfa77cf146100f5575f80fd5b61094a565b61092d565b6108ea565b6108c5565b610887565b6106ca565b610686565b6105cf565b61058b565b610547565b61052a565b6104f5565b61034b565b6102fa565b6102b6565b610272565b610256565b610201565b6101ad565b34610198575f366003190112610198576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b5f80fd5b6001600160a01b0381160361019857565b346101985760403660031901126101985760206101f96101f46024356101d28161019c565b6004355f526002845260405f209060018060a01b03165f5260205260405f2090565b610daa565b604051908152f35b3461019857604036600319011261019857602065ffffffffffff61024c60243561022a8161019c565b6004355f526001845260405f209060018060a01b03165f5260205260405f2090565b5416604051908152f35b34610198575f366003190112610198576020604051614e208152f35b34610198575f366003190112610198576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b34610198575f366003190112610198576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b34610198575f36600319011261019857602060ff5f5460a01c166040519015158152f35b9181601f84011215610198578235916001600160401b038311610198576020838186019501011161019857565b34610198576020366003190112610198576001600160401b036004358181116101985761037c90369060040161031e565b5f805160206119bd833981519152549260ff8460401c1615931680159081610480575b6001149081610476575b15908161046d575b5061045b575f805160206119bd833981519152805467ffffffffffffffff191660011790556103e4918361043257610e4c565b6103ea57005b5f805160206119bd833981519152805460ff60401b19169055604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a1005b5f805160206119bd833981519152805460ff60401b191668010000000000000000179055610e4c565b60405163f92ee8a960e01b8152600490fd5b9050155f6103b1565b303b1591506103a9565b84915061039f565b65ffffffffffff81160361019857565b6080906003190112610198576004356104b08161019c565b90602435906044356104c18161019c565b906064356104ce81610488565b90565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b346101985761052661051261050936610498565b929190916109b0565b6040519182916020835260208301906104d1565b0390f35b346101985761052661051261053e36610498565b92919091610b7b565b34610198575f366003190112610198576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b34610198575f366003190112610198576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b34610198576060366003190112610198576024356105ec8161019c565b6044356105f881610488565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316330361067457610652610657926004355f52600260205260405f209060018060a01b03165f5260205260405f2090565b61104a565b60408051941515855263ffffffff91909116602085015292915050f35b604051637ca475e560e11b8152600490fd5b34610198575f366003190112610198576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b34610198576040366003190112610198576004356106e78161019c565b6024356001600160401b038111610198575f916107098392369060040161031e565b90816040519283928337810184815203915af4610756610727610d26565b916107486040519384921515602084015260408084015260608301906104d1565b03601f1981018352826107ad565b805190602001fd5b634e487b7160e01b5f52604160045260245ffd5b604081019081106001600160401b0382111761078d57604052565b61075e565b60a081019081106001600160401b0382111761078d57604052565b90601f801991011681019081106001600160401b0382111761078d57604052565b604051906107db82610772565b565b6001600160401b03811161078d57601f01601f191660200190565b81601f820112156101985780359061080f826107dd565b9261081d60405194856107ad565b8284526020838301011161019857815f926020809301838601378301015290565b906080600319830112610198576004359160243561085b8161019c565b9160443561086881610488565b91606435906001600160401b038211610198576104ce916004016107f8565b346101985760206101f96108c061089d3661083e565b939190925f526002865260405f209060018060a01b03165f5260205260405f2090565b611178565b346101985760206108e16108d83661083e565b92919091611347565b50604051908152f35b34610198575f3660031901126101985760206040516001600160401b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b34610198575f366003190112610198576020604051620249f08152f35b34610198575f366003190112610198575f546040516001600160a01b039091168152602090f35b5190811515820361019857565b519063ffffffff8216820361019857565b9190826040910312610198576104ce60206109a984610971565b930161097e565b5f809195949593929365ffffffffffff60609760405195602097633b81402360e11b89890152602488015260018060a01b03166044870152166064850152606484526109fb84610792565b6040519384610a2887820192639f86fd8560e01b84523060248401526040604484015260648301906104d1565b0394610a3c601f19968781018352826107ad565b51915afa50610a5a610a4c610d26565b838082518301019101610fb5565b9015610aad57808380610a729351830101910161098f565b9290610a7d57505050565b6104ce92939450610aa1604051948592830191909163ffffffff6020820193169052565b039081018352826107ad565b809150519182156101985701fd5b9081602091031261019857516104ce8161019c565b6040513d5f823e3d90fd5b81601f8201121561019857805190610af2826107dd565b92610b0060405194856107ad565b8284526020838301011161019857815f9260208093018386015e8301015290565b906020828203126101985781516001600160401b038111610198576104ce9201610adb565b906104ce91602081526020610b66835160408385015260608401906104d1565b920151906040601f19828503019101526104d1565b60405163fbfa77cf60e01b815260609594919391926020926001600160a01b03929091908481600481878b165afa908115610cd757849186915f91610d09575b50600460405180948193630ce9b79360e41b8352165afa8015610cd75786948385925f948591610cdc575b506040516304bb92e160e31b81526001600160a01b039182166004820152602481019290925292909216604483015265ffffffffffff97909716606482015295869060849082907f0000000000000000000000000000000000000000000000000000000000000000165afa948515610cd7575f95610caf575b50610c6b9394956109b0565b825115801590610ca5575b610c7f57505050565b6104ce92939450610c8e6107ce565b938452818401526107486040519384928301610b46565b5080511515610c76565b610c6b949550610cd0903d805f833e610cc881836107ad565b810190610b21565b9493610c5f565b610ad0565b610cfc9150893d8b11610d02575b610cf481836107ad565b810190610abb565b5f610be6565b503d610cea565b610d209150823d8411610d0257610cf481836107ad565b5f610bbb565b3d15610d50573d90610d37826107dd565b91610d4560405193846107ad565b82523d5f602084013e565b606090565b5f9081526002602090815260408083206001600160a01b039094168352929052206104ce929190611178565b8054821015610d96575f5260205f2001905f90565b634e487b7160e01b5f52603260045260245ffd5b805480610ddf57505f5b6001600160d01b03811615610dd9576001610dcf9201610d81565b90549060031b1c90565b50505f90565b5f19908082810111610dfd57825f5260205f2001015460301c610db4565b610fe9565b919091604081840312610198578035610e1a8161019c565b9260208201356001600160401b038111610198576104ce92016107f8565b90816020910312610198576104ce90610971565b610e5891810190610e02565b506040516302910f8b60e31b81526001600160a01b0391821660048201819052919060209081816024817f000000000000000000000000000000000000000000000000000000000000000087165afa908115610cd7575f91610f88575b5015610f7657610ec361159b565b5f80546001600160a01b0319166001600160a01b038516179055600481610ee86115d1565b94604051928380926313c085b760e11b82525afa918215610cd7575f92610f59575b5050161580610f4f575b610f3d57516107db9015155f805460ff60a01b191691151560a01b60ff60a01b16919091179055565b60405163d2420f5960e01b8152600490fd5b5080511515610f14565b610f6f9250803d10610d0257610cf481836107ad565b5f80610f0a565b6040516362df054560e01b8152600490fd5b610fa89150823d8411610fae575b610fa081836107ad565b810190610e38565b5f610eb5565b503d610f96565b91909160408184031261019857610fcb81610971565b9260208201516001600160401b038111610198576104ce9201610adb565b634e487b7160e01b5f52601160045260245ffd5b5f19810191908211610dfd57565b91908203918211610dfd57565b9060018201809211610dfd57565b9060405161103381610772565b915465ffffffffffff8116835260301c6020830152565b91908254905f8291600584116110e8575b61106693508561174f565b9081156110dc576110d56110cc6110c6610dcf61109861109361108888610ffd565b895f5260205f200190565b611026565b9660016110bf60206110b08b5165ffffffffffff1690565b9a01516001600160d01b031690565b9101610d81565b93610ffd565b63ffffffff1690565b6001939291565b5f925082915081908190565b91926110f381611611565b8103908111610dfd5761106693865f5261112761111c8360205f200165ffffffffffff90541690565b65ffffffffffff1690565b65ffffffffffff8516101561113d57509161105b565b92915061114990611018565b9061105b565b90816020910312610198576104ce9061097e565b90600163ffffffff80931601918211610dfd57565b9180511561124657806020806111939351830101910161114f565b9161119e8382611876565b926111af845165ffffffffffff1690565b9065ffffffffffff808516921682811461123a57821191826111e5575b50506111dc576104ce92506117a6565b50506020015190565b9091506111f28354610ffd565b63ffffffff83161491821561120b575b50505f806111cc565b61123291925061122661122061111c92611163565b85611876565b5165ffffffffffff1690565b115f80611202565b50505050506020015190565b506104ce916117a6565b6040519061125d82610772565b60606020838281520152565b906020828203126101985781516001600160401b0392838211610198570190604082820312610198576040519261129f84610772565b825181811161019857826112b4918501610adb565b84526020830151908111610198576112cc9201610adb565b602082015290565b9081602091031261019857516104ce81610488565b65ffffffffffff9182169082160391908211610dfd57565b90816020910312610198575190565b9081526001600160a01b03909116602082015265ffffffffffff90911660408201526080606082018190526104ce929101906104d1565b92611350611250565b90805180611581575b505061136442611933565b5f549094906113899061137d906001600160a01b031681565b6001600160a01b031690565b93604051956327f843b560e11b875260209687816004818a5afa8015610cd7576113be9261111c925f92611552575b506112e9565b65ffffffffffff821690811090811561153b575b811561150a575b506114fe578560049560405196878092630ce9b79360e41b82525afa948515610cd75761142b9587915f916114e1575b50845190604051808099819463e02f693760e01b8352878b8a60048601611310565b03916001600160a01b03165afa938415610cd75761149d955f956114a0575b509261149285936114989361149296869a6114896101f483611474875f52600260205260405f2090565b9060018060a01b03165f5260205260405f2090565b95015192610d55565b9061100b565b6118de565b91565b6114989295506114929491936114ce611492928a3d8c116114da575b6114c681836107ad565b810190611301565b9693509391945061144a565b503d6114bc565b6114f89150823d8411610d0257610cf481836107ad565b5f611409565b5050505050505f905f90565b905061153461111c61152887611474875f52600160205260405f2090565b5465ffffffffffff1690565b115f6113d9565b905061154961111c42611933565b811015906113d2565b6115739192508a3d8c1161157a575b61156b81836107ad565b8101906112d4565b905f6113b8565b503d611561565b6115949250602080918301019101611269565b5f80611359565b6115a36118f0565b6115ab6118f0565b60017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055565b60405190602082018281106001600160401b0382111761078d576040525f8252565b81156115fd570490565b634e487b7160e01b5f52601260045260245ffd5b801561174a57806116e36116dc6116d26116c86116be6116b46116aa6116a060016104ce9a5f908b60801c8061173e575b508060401c80611731575b508060201c80611724575b508060101c80611717575b508060081c8061170a575b508060041c806116fd575b508060021c806116f0575b50821c6116e9575b811c1b611699818b6115f3565b0160011c90565b611699818a6115f3565b61169981896115f3565b61169981886115f3565b61169981876115f3565b61169981866115f3565b61169981856115f3565b80926115f3565b906118de565b810161168c565b600291509101905f611684565b600491509101905f611679565b600891509101905f61166e565b601091509101905f611663565b602091509101905f611658565b604091509101905f61164d565b9150506080905f611642565b505f90565b905b83831061175e5750505090565b90919261176b818561191e565b90835f5265ffffffffffff808360205f20015416908416105f146117935750925b9190611751565b9350600181018091111561178c57610fe9565b908154905f829160058411611810575b6117c1935084611965565b806117e957505f905b6001600160d01b03821615610dd9576104ce916001610dcf9201610d81565b6118036117f861180a92610ffd565b835f5260205f200190565b5460301c90565b906117ca565b919261181b81611611565b8103908111610dfd576117c193855f5265ffffffffffff808360205f20015416908516105f1461184c5750916117b6565b92915061185890611018565b906117b6565b6040519061186b82610772565b5f6020838281520152565b9061189f6118996118c09261188961185e565b5061189261185e565b5084610d81565b50611026565b91600165ffffffffffff845116936020828060d01b03910151169101610d81565b905490604051926118d084610772565b835260031b1c602082015290565b90808210156118eb575090565b905090565b60ff5f805160206119bd8339815191525460401c161561190c57565b604051631afcd79f60e31b8152600490fd5b90808216911860011c8101809111610dfd5790565b65ffffffffffff90818111611946571690565b604490604051906306dfcc6560e41b8252603060048301526024820152fd5b905b8383106119745750505090565b909192611981818561191e565b90835f5265ffffffffffff808360205f20015416908416105f146119a95750925b9190611967565b935060018101809111156119a257610fe956fef0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a26469706673582212204516407e2adc4ef10f928db601f32a60d5944a2a517c00968a39e5541843a63a64736f6c63430008190033","sourceMap":"624:2139:84:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;;;;;-1:-1:-1;;624:2139:84;;;;;;1435:38:92;-1:-1:-1;;;;;624:2139:84;;;;;;;;;;;-1:-1:-1;;;;;624:2139:84;;;;;:::o;:::-;;;;;;-1:-1:-1;;624:2139:84;;;;;2936:47:92;:38;624:2139:84;;;;;:::i;:::-;;;-1:-1:-1;624:2139:84;2936:16:92;624:2139:84;;;-1:-1:-1;624:2139:84;;;;;;;;;;;;;;;;;2936:38:92;:47;:::i;:::-;624:2139:84;;;;;;;;;;;;-1:-1:-1;;624:2139:84;;;;;;1788:109:92;624:2139:84;;;;;:::i;:::-;;;-1:-1:-1;624:2139:84;1788:109:92;624:2139:84;;;-1:-1:-1;624:2139:84;;;;;;;;;;;;;;;;;1788:109:92;624:2139:84;;;;;;;;;;;;;;-1:-1:-1;;624:2139:84;;;;;;;1374:6:92;624:2139:84;;;;;;;;;-1:-1:-1;;624:2139:84;;;;;;1528:51:92;-1:-1:-1;;;;;624:2139:84;;;;;;;;;;;;-1:-1:-1;;624:2139:84;;;;;;322:32:69;-1:-1:-1;;;;;624:2139:84;;;;;;;;;;;;-1:-1:-1;;624:2139:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;624:2139:84;;;;;;;;;;;;;;;:::o;:::-;;;;;;-1:-1:-1;;624:2139:84;;;;-1:-1:-1;;;;;624:2139:84;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;624:2139:84;;;;;;;4301:16:25;624:2139:84;;4726:16:25;;:34;;;;624:2139:84;4805:1:25;4790:16;:50;;;;624:2139:84;4855:13:25;:30;;;;624:2139:84;4851:91:25;;;-1:-1:-1;;;;;;;;;;;624:2139:84;;-1:-1:-1;;624:2139:84;;;;;718:4:69;;4951:18:25;4979:67;;718:4:69;:::i;:::-;5066:101:25;;624:2139:84;5066:101:25;-1:-1:-1;;;;;;;;;;;624:2139:84;;-1:-1:-1;;;;624:2139:84;;;;;-1:-1:-1;624:2139:84;;5142:14:25;;624:2139:84;;5142:14:25;624:2139:84;4979:67:25;-1:-1:-1;;;;;;;;;;;624:2139:84;;-1:-1:-1;;;;624:2139:84;;;;;718:4:69;:::i;4851:91:25:-;624:2139:84;;-1:-1:-1;;;4908:23:25;;624:2139:84;;4908:23:25;4855:30;4872:13;;;4855:30;;;4790:50;4818:4;4810:25;:30;;-1:-1:-1;4790:50:25;;4726:34;;;-1:-1:-1;4726:34:25;;624:2139:84;;;;;;;:::o;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;:::o;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;624:2139:84;;;;;;;;-1:-1:-1;;624:2139:84;;;;:::o;:::-;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;-1:-1:-1;;624:2139:84;;;;;;778:38;-1:-1:-1;;;;;624:2139:84;;;;;;;;;;;;-1:-1:-1;;624:2139:84;;;;;;822:43;-1:-1:-1;;;;;624:2139:84;;;;;;;;;;;;-1:-1:-1;;624:2139:84;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;449:5:82;-1:-1:-1;;;;;624:2139:84;435:10:82;:19;431:71;;1400:38:84;:77;624:2139;;;-1:-1:-1;624:2139:84;1400:16;624:2139;;;-1:-1:-1;624:2139:84;;;;;;;;;;;;;;;;;1400:38;:77;:::i;:::-;624:2139;;;;;;;;;;;;;;;;;;;-1:-1:-1;;624:2139:84;431:71:82;624:2139:84;;-1:-1:-1;;;477:14:82;;624:2139:84;;477:14:82;624:2139:84;;;;;;-1:-1:-1;;624:2139:84;;;;;;727:45;-1:-1:-1;;;;;624:2139:84;;;;;;;;;;;;-1:-1:-1;;624:2139:84;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;624:2139:84;;;;-1:-1:-1;624:2139:84;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;416:25:75;;;;477:31;416:25;;:::i;:::-;624:2139:84;;;;;;;;;;477:31:75;;624:2139:84;;;;;;;;;;;:::i;:::-;477:31:75;624:2139:84;;477:31:75;;;;;;:::i;:::-;518:79;;;624:2139:84;518:79:75;;624:2139:84;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;624:2139:84;;;;;;;:::o;:::-;;:::i;:::-;;;;;;;-1:-1:-1;;;;;624:2139:84;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;624:2139:84;;;;;;;:::o;:::-;;;;;;;:::i;:::-;:::o;:::-;-1:-1:-1;;;;;624:2139:84;;;;;;-1:-1:-1;;624:2139:84;;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;624:2139:84;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;624:2139:84;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;-1:-1:-1;;;;;624:2139:84;;;;;;;;;:::i;:::-;;;;;2692:73:92;:38;624:2139:84;;;:::i;:::-;;;;;-1:-1:-1;624:2139:84;2692:16:92;624:2139:84;;;-1:-1:-1;624:2139:84;;;;;;;;;;;;;;;;;2692:38:92;:73;:::i;624:2139:84:-;;;;;3248:62:92;624:2139:84;;;:::i;:::-;3248:62:92;;;;;:::i;:::-;624:2139:84;;;;;;;;;;;;;-1:-1:-1;;624:2139:84;;;;;;;-1:-1:-1;;;;;404:28:69;624:2139:84;;;;;;;;;;-1:-1:-1;;624:2139:84;;;;;;;1271:7:92;624:2139:84;;;;;;;;;-1:-1:-1;;624:2139:84;;;;;;;;-1:-1:-1;;;;;624:2139:84;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;:::i;1490:514::-;-1:-1:-1;1490:514:84;;;;;;;;624:2139;;;;;1779:95;;;;;;;;;;;;;624:2139;;;;;;;;;;;;;;;;;1779:95;;;;;:::i;:::-;624:2139;;716:88:82;;624:2139:84;716:88:82;;;;;;;;;783:4;1779:95:84;716:88:82;;624:2139:84;;;;;;;;;;;:::i;:::-;716:88:82;624:2139:84;716:88:82;624:2139:84;;716:88:82;;;;;;;;:::i;:::-;698:107;;;;;857:45;698:107;;:::i;:::-;624:2139:84;;;;857:45:82;;;;;;:::i;:::-;916:8;;912:175;;624:2139:84;;;1705:221;624:2139;;1705:221;;;;;;:::i;:::-;1937:61;;;;1490:514;;;:::o;1937:61::-;1970:17;624:2139;;;;1970:17;624:2139;;1970:17;;;;;624:2139;;;;;;;;;;;;1970:17;;;;;;;;;:::i;912:175:82:-;624:2139:84;;;;944:22:82;;;940:36;;990:87;;624:2139:84;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;624:2139:84;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;;;;624:2139:84;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;2010:751::-;624:2139;;-1:-1:-1;;;2301:28:84;;624:2139;;2010:751;;;;;2301:28;;-1:-1:-1;;;;;624:2139:84;2010:751;;;2301:28;624:2139;2301:28;624:2139;;;;2301:28;;;;;;;;;;;;;;;2010:751;624:2139;2301:28;624:2139;;;;;;;;;2295:47;;624:2139;2295:47;;;;;;;;;;;2301:28;2295:47;;;;;2010:751;-1:-1:-1;624:2139:84;;-1:-1:-1;;;2230:162:84;;-1:-1:-1;;;;;624:2139:84;;;2301:28;2230:162;;624:2139;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2249:20;624:2139;2230:162;;;;;;;2301:28;2230:162;;;2010:751;2442:68;;;;;;:::i;:::-;624:2139;;2525:21;;;:59;;;2010:751;2521:234;;2010:751;;;:::o;2521:234::-;2607:137;624:2139;;;;;;:::i;:::-;;;;2635:95;;;624:2139;2607:137;624:2139;;2607:137;;;;;;:::i;2525:59::-;624:2139;;;2550:34;;2525:59;;2230:162;2442:68;2230:162;;;;;;;2301:28;2230:162;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;:::i;2295:47::-;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;2301:28;;;;;;;;;;;;;;:::i;:::-;;;;624:2139;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;-1:-1:-1;624:2139:84;;;;:::o;:::-;;;:::o;2505:267:92:-;-1:-1:-1;624:2139:84;;;2692:16:92;624:2139:84;;;;;;;;-1:-1:-1;;;;;624:2139:84;;;;;;;;;2692:73:92;;2505:267;;2692:73;:::i;624:2139:84:-;;;;;;;;-1:-1:-1;624:2139:84;;-1:-1:-1;624:2139:84;;;-1:-1:-1;624:2139:84;:::o;:::-;;;;;;;;;;;;10580:184:86;624:2139:84;;10303:8:60;;;:63;-1:-1:-1;10303:63:60;-1:-1:-1;;;;;624:2139:84;;10726:7:86;624:2139:84;;10736:12:86;:17;:12;;:17;:::i;:::-;624:2139:84;;;;;;10580:184:86;:::o;10726:31::-;;;-1:-1:-1;10580:184:86;:::o;10303:63:60:-;624:2139:84;;;;;;;;;;13267:109:86;-1:-1:-1;13267:109:86;;-1:-1:-1;13267:109:86;;;624:2139:84;;;10303:63:60;;624:2139:84;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;624:2139:84;;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;6491:564:92:-;6614:34;6491:564;6614:34;;;;:::i;:::-;-1:-1:-1;624:2139:84;;-1:-1:-1;;;6664:41:92;;-1:-1:-1;;;;;624:2139:84;;;6664:41:92;;;624:2139:84;;;;;6664:41:92;;;624:2139:84;;;6674:13:92;624:2139:84;;6664:41:92;;;;;;;-1:-1:-1;6664:41:92;;;6491:564;6663:42;;6659:90;;2540:111:28;;:::i;:::-;-1:-1:-1;624:2139:84;;-1:-1:-1;;;;;;624:2139:84;-1:-1:-1;;;;;624:2139:84;;;;;6664:41:92;624:2139:84;;;:::i;:::-;;;;;;;;;;;6892:23:92;;;;;;;;;-1:-1:-1;6892:23:92;;;6491:564;624:2139:84;;;6892:37:92;:64;;;6491:564;6888:112;;624:2139:84;7010:38:92;;624:2139:84;;-1:-1:-1;624:2139:84;;-1:-1:-1;;;;624:2139:84;;;;;;-1:-1:-1;;;624:2139:84;;;;;;;;6888:112:92;624:2139:84;;-1:-1:-1;;;6979:10:92;;6664:41;;6979:10;6892:64;-1:-1:-1;624:2139:84;;;;6892:64:92;;:23;;;;;;-1:-1:-1;6892:23:92;;;;;;:::i;:::-;;;;;6659:90;624:2139:84;;-1:-1:-1;;;6728:10:92;;6664:41;;6728:10;6664:41;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;624:2139:84;;;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;624:2139:84;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;624:2139:84;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;8889:1:86;624:2139:84;;;;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::o;8406:869:86:-;;;624:2139:84;;8620:15:86;8578:11;8645:18;8678:7;8684:1;8678:7;;8674:241;;8406:869;8939:60;;;;;:::i;:::-;9014:8;;;9010:62;;9252:15;9259:7;624:2139:84;9219:31:86;624:2139:84;9130:48:86;9170:7;;;:::i;:::-;9130:48;13267:109;;;;;;13089:293;;9130:48;624:2139:84;:::i;:::-;;9176:1:86;624:2139:84;9232:17:86;624:2139:84;;;;;;;;9232:17:86;;624:2139:84;-1:-1:-1;;;;;624:2139:84;;;;9219:12:86;;:31;:::i;624:2139:84:-;9259:7:86;;:::i;:::-;624:2139:84;;;;9252:15:86;9176:1;;9188:80;;8406:869::o;9010:62::-;8578:11;;-1:-1:-1;8578:11:86;;-1:-1:-1;8578:11:86;;;;9038:23::o;8674:241::-;8721:14;;;;;:::i;:::-;624:2139:84;;;;;;;8939:60:86;13267:109;;8578:11;13267:109;8753:55;8759:49;13267:109;;8578:11;13267:109;;624:2139:84;;;;;;8759:49:86;624:2139:84;;;;8753:55:86;624:2139:84;;;8753:55:86;13267:109;;;8828:10;8749:156;8674:241;;8749:156;8883:7;;;;;;:::i;:::-;8749:156;8674:241;;624:2139:84;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::o;7558:604:86:-;;624:2139:84;;7686:17:86;7682:83;;624:2139:84;7789:27:86;624:2139:84;7789:27:86;624:2139:84;;7789:27:86;;;;;;:::i;:::-;7860:14;;;;;:::i;:::-;624:2139:84;;;;;;;;;;;;;;;;7888:22:86;;;7884:77;;7975:21;-1:-1:-1;7975:84:86;;;;7558:604;7971:139;;;;8127:28;;;;:::i;7971:139::-;8082:17;;7789:27;8082:17;624:2139:84;8075:24:86;:::o;7975:84::-;624:2139:84;;;8009:16:86;624:2139:84;;8009:16:86;:::i;:::-;624:2139:84;;;8001:24:86;:57;;;;;7975:84;;;;;;;8001:57;8029:29;8038:8;;;8029:18;8038:8;8029:23;8038:8;;:::i;:::-;8029:18;;:::i;:::-;624:2139:84;;;;;8029:29:86;;8001:57;;;;7884:77;7933:17;;;;;7789:27;7933:17;624:2139:84;7926:24:86;:::o;7682:83::-;7726:28;;;;:::i;624:2139:84:-;;;;;;;:::i;:::-;;;;;;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;;;;624:2139:84;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::o;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;624:2139:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;3323:1122:92:-;;624:2139:84;;:::i;:::-;;;;3608:16:92;3604:109;;3323:1122;837:15:62;;819:34;837:15;819:34;:::i;:::-;-1:-1:-1;624:2139:84;;;;3778:27:92;;:13;;-1:-1:-1;;;;;624:2139:84;3778:13:92;624:2139:84;;-1:-1:-1;;;;;624:2139:84;;;3778:27:92;624:2139:84;;;;;;;3778:29:92;;;;;;;;;;;;;;;3740:67;3778:29;3759:48;3778:29;-1:-1:-1;3778:29:92;;;3323:1122;3759:48;;:::i;3740:67::-;624:2139:84;;;3740:67:92;;;:107;;;;;3323:1122;3740:197;;;;3323:1122;3723:263;;;624:2139:84;3778:29:92;624:2139:84;;;;;;;;;;4025:25:92;;;;;;;;;4010:143;4025:25;;;-1:-1:-1;4025:25:92;;;3323:1122;4113:30;;;624:2139:84;;;;;;;;;;;4010:143:92;;;;;3778:29;4010:143;;;:::i;:::-;;;-1:-1:-1;;;;;624:2139:84;4010:143:92;;;;;;;4181:257;4010:143;-1:-1:-1;4010:143:92;;;3323:1122;3996:157;;4293:102;3996:157;;4233:162;3996:157;4207:231;3996:157;;2936:28;:47;:38;:28;;;624:2139:84;;2936:16:92;624:2139:84;;;;;;;2936:28:92;624:2139:84;;;;;;;;;;;;;;;;2936:47:92;4351:43;;;4293:102;;:::i;:::-;4233:162;;:::i;:::-;4207:231;:::i;4181:257::-;3323:1122;:::o;4010:143::-;4233:162;4010:143;;;4207:231;4010:143;;;;4293:102;4010:143;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;;;;;4025:25;;;;;;;;;;;;;;:::i;:::-;;;;3723:263;3962:13;;;;;;-1:-1:-1;3962:13:92;-1:-1:-1;3962:13:92;:::o;3740:197::-;3886:41;;3867:70;3886:51;;:41;;;624:2139:84;;3886:29:92;624:2139:84;;;;;;;3886:51:92;624:2139:84;;;;;3867:70:92;-1:-1:-1;3740:197:92;;;:107;837:15:62;;3811:36:92;819:34:62;837:15;819:34;:::i;3811:36:92:-;;;;3740:107;;;3778:29;;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;3604:109;3662:40;;;;;;;;;;;;:::i;:::-;3604:109;;;;6893:76:25;;;:::i;:::-;;;:::i;:::-;1805:1:28;2355:73;1805:1;6893:76:25:o;624:2139:84:-;;;;;;;;;;-1:-1:-1;;;;;624:2139:84;;;;;;;-1:-1:-1;624:2139:84;;:::o;:::-;;;;;;;:::o;:::-;;;;;;;;;;;;8587:1642:57;8658:6;;8654:45;;9401:7;10201:10;10142:26;10093;10044;9995;9946;9897;9848;624:2139:84;10189:23:57;9401:7;8663:1;624:2139:84;;;;10826:16:57;10822:99;;8587:1642;624:2139:84;;;;10938:15:57;10934:96;;8587:1642;624:2139:84;;;;11047:15:57;11043:96;;8587:1642;624:2139:84;;;;11156:15:57;11152:96;;8587:1642;624:2139:84;;;;11265:14:57;11261:93;;8587:1642;624:2139:84;;;;11371:14:57;11367:93;;8587:1642;624:2139:84;;;;11477:14:57;11473:93;;8587:1642;624:2139:84;;;11579:64:57;;8587:1642;624:2139:84;;;9858:10:57;;;;:::i;:::-;624:2139:84;;;;;9848:26:57;9907:10;;;;:::i;9897:26::-;9956:10;;;;:::i;9946:26::-;10005:10;;;;:::i;9995:26::-;10054:10;;;;:::i;10044:26::-;10103:10;;;;:::i;10093:26::-;10152:10;;;;:::i;10142:26::-;10201:10;;;:::i;:::-;10189:23;;:::i;11579:64::-;624:2139:84;;11579:64:57;;11473:93;624:2139:84;11511:11:57;;624:2139:84;;11473:93:57;;;;11367;624:2139:84;11405:11:57;;624:2139:84;;11367:93:57;;;;11261;624:2139:84;11299:11:57;;624:2139:84;;11261:93:57;;;;11152:96;624:2139:84;11191:12:57;;624:2139:84;;11152:96:57;;;;11043;624:2139:84;11082:12:57;;624:2139:84;;11043:96:57;;;;10934;624:2139:84;10973:12:57;;624:2139:84;;10934:96:57;;;;10822:99;10862:13;;;624:2139:84;10822:99:57;;;;8654:45;8680:8;8663:1;8680:8;:::o;12497:447:86:-;;12694:10;;;;;;12926:11;;;12497:447;:::o;12687:230::-;12734:23;;;;;;;:::i;:::-;13267:109;;-1:-1:-1;13267:109:86;624:2139:84;13267:109:86;;;-1:-1:-1;13267:109:86;;624:2139:84;;;;;-1:-1:-1;12771:136:86;624:2139:84;;;12830:10:86;12771:136;;12687:230;;;;12771:136;624:2139:84;;12891:1:86;624:2139:84;;;;;;12771:136:86;624:2139:84;;:::i;6999:207:86:-;;624:2139:84;;9594:15:60;-1:-1:-1;9619:18:60;9652:7;9658:1;9652:7;;9648:234;;6999:207:86;9906:53:60;;;;;:::i;:::-;9977:8;;;:63;-1:-1:-1;9977:63:60;;-1:-1:-1;;;;;624:2139:84;;7168:7:86;624:2139:84;;;7178:12:86;;:17;:12;;:17;:::i;9977:63:60:-;9992:41;10025:7;9992:48;10025:7;;:::i;:::-;9992:41;13267:109:86;;;;;;13089:293;;9992:41:60;624:2139:84;;;;;9992:48:60;9977:63;;;9648:234;9695:14;;;;;:::i;:::-;624:2139:84;;;;;;;9906:53:60;13267:109:86;;-1:-1:-1;13267:109:86;624:2139:84;13267:109:86;;;-1:-1:-1;13267:109:86;;624:2139:84;;;;;9727:48:60;9723:149;624:2139:84;;;9795:10:60;9723:149;9648:234;;9723:149;9850:7;;;;;;:::i;:::-;9723:149;9648:234;;624:2139:84;;;;;;;:::i;:::-;-1:-1:-1;624:2139:84;;;;;;;:::o;11486:272:86:-;;624:2139:84;11308:22:60;11718:31:86;11486:272;624:2139:84;;:::i;:::-;;;;:::i;:::-;;11308:22:60;;:::i;:::-;624:2139:84;;:::i;:::-;;11718:12:86;624:2139:84;;;;;11731:17:86;624:2139:84;;;;;11731:17:86;;624:2139:84;;11718:12:86;;:31;:::i;:::-;624:2139:84;;;;;;;;;:::i;:::-;;;;;;11731:17:86;11672:79;;624:2139:84;11486:272:86;:::o;2557:104:57:-;;2641:5;;;;;;:13;2557:104;:::o;2641:13::-;;;2557:104;:::o;7084:141:25:-;624:2139:84;-1:-1:-1;;;;;;;;;;;624:2139:84;;;;7150:18:25;7146:73;;7084:141::o;7146:73::-;624:2139:84;;-1:-1:-1;;;7191:17:25;;;;;2774:153:57;;2900:5;;;2910;;624:2139:84;;;;;;;;;2774:153:57;:::o;14291:213:58:-;624:2139:84;14369:24:58;;;;14365:103;;624:2139:84;14291:213:58;:::o;14365:103::-;624:2139:84;;;;14416:41:58;;;;;;14447:2;14416:41;;;624:2139:84;;;;;14416:41:58;12736:433:60;;12919:10;;;;;;13151:11;;;12736:433;:::o;12912:230::-;12959:23;;;;;;;:::i;:::-;13267:109:86;;-1:-1:-1;13267:109:86;624:2139:84;13267:109:86;;;-1:-1:-1;13267:109:86;;624:2139:84;;;;;-1:-1:-1;12996:136:60;624:2139:84;;;13055:10:60;12996:136;;12912:230;;;;12996:136;624:2139:84;;13116:1:60;624:2139:84;;;;;;12996:136:60;624:2139:84;;:::i","linkReferences":{},"immutableReferences":{"57808":[{"start":715,"length":32}],"57811":[{"start":2313,"length":32}],"62368":[{"start":1530,"length":32}],"62711":[{"start":1691,"length":32},{"start":3119,"length":32}],"62713":[{"start":1372,"length":32}],"62715":[{"start":1440,"length":32}],"65592":[{"start":361,"length":32},{"start":3716,"length":32}],"65595":[{"start":647,"length":32}]}},"methodIdentifiers":{"BASE_DELEGATOR_HINTS()":"79d89614","BURNER_GAS_LIMIT()":"d5c24e1a","BURNER_RESERVE()":"2964f8dc","FACTORY()":"2dd31000","NETWORK_MIDDLEWARE_SERVICE()":"2c9d45b3","SLASHER_HINTS()":"4eb5a242","TYPE()":"bb24fe8a","VAULT_FACTORY()":"103f2907","VETO_SLASHER_HINTS()":"6565b7db","cumulativeSlash(bytes32,address)":"1a2be2c4","cumulativeSlashAt(bytes32,address,uint48,bytes)":"aa8e6489","cumulativeSlashHint(address,bytes32,address,uint48)":"4a719655","cumulativeSlashHintInternal(bytes32,address,uint48)":"77028046","initialize(bytes)":"439fab91","isBurnerHook()":"34d098ea","latestSlashedCaptureTimestamp(bytes32,address)":"267de1f3","slashableStake(bytes32,address,uint48,bytes)":"aab3595f","slashableStakeHints(address,bytes32,address,uint48)":"4ea2e926","staticDelegateCall(address,bytes)":"9f86fd85","vault()":"fbfa77cf"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"baseDelegatorHints\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"ExternalCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientBurnerGas\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NoBurner\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotNetworkMiddleware\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotVault\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ReentrancyGuardReentrantCall\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"bits\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"SafeCastOverflowedUintDowncast\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"BASE_DELEGATOR_HINTS\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"BURNER_GAS_LIMIT\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"BURNER_RESERVE\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"FACTORY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"NETWORK_MIDDLEWARE_SERVICE\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"SLASHER_HINTS\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"TYPE\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"VAULT_FACTORY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"VETO_SLASHER_HINTS\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"cumulativeSlash\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hint\",\"type\":\"bytes\"}],\"name\":\"cumulativeSlashAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"slasher\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"}],\"name\":\"cumulativeSlashHint\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"}],\"name\":\"cumulativeSlashHintInternal\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"exists\",\"type\":\"bool\"},{\"internalType\":\"uint32\",\"name\":\"hint\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isBurnerHook\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"latestSlashedCaptureTimestamp\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"value\",\"type\":\"uint48\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"captureTimestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hints\",\"type\":\"bytes\"}],\"name\":\"slashableStake\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"slasher\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"captureTimestamp\",\"type\":\"uint48\"}],\"name\":\"slashableStakeHints\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"staticDelegateCall\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"vault\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"ReentrancyGuardReentrantCall()\":[{\"details\":\"Unauthorized reentrant call.\"}],\"SafeCastOverflowedUintDowncast(uint8,uint256)\":[{\"details\":\"Value doesn't fit in an uint of `bits` size.\"}]},\"events\":{\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"}},\"kind\":\"dev\",\"methods\":{\"cumulativeSlash(bytes32,address)\":{\"params\":{\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"},\"returns\":{\"_0\":\"cumulative slash amount\"}},\"cumulativeSlashAt(bytes32,address,uint48,bytes)\":{\"params\":{\"hint\":\"hint for the checkpoint index\",\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\",\"timestamp\":\"time point to get the cumulative slash amount until (inclusively)\"},\"returns\":{\"_0\":\"cumulative slash amount until the given timestamp (inclusively)\"}},\"initialize(bytes)\":{\"params\":{\"data\":\"some data to use\"}},\"slashableStake(bytes32,address,uint48,bytes)\":{\"params\":{\"captureTimestamp\":\"time point to get the stake amount at\",\"hints\":\"hints for the checkpoints' indexes\",\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"},\"returns\":{\"amount\":\"slashable amount of the stake\"}},\"staticDelegateCall(address,bytes)\":{\"details\":\"It allows to use this contract's storage on-chain.\",\"params\":{\"data\":\"data to make a delegatecall with\",\"target\":\"address of the contract to make a delegatecall to\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"BURNER_GAS_LIMIT()\":{\"notice\":\"Get a gas limit for the burner.\"},\"BURNER_RESERVE()\":{\"notice\":\"Get a reserve gas between the gas limit check and the burner's execution.\"},\"FACTORY()\":{\"notice\":\"Get the factory's address.\"},\"NETWORK_MIDDLEWARE_SERVICE()\":{\"notice\":\"Get the network middleware service's address.\"},\"TYPE()\":{\"notice\":\"Get the entity's type.\"},\"VAULT_FACTORY()\":{\"notice\":\"Get the vault factory's address.\"},\"cumulativeSlash(bytes32,address)\":{\"notice\":\"Get a cumulative slash amount for an operator on a subnetwork.\"},\"cumulativeSlashAt(bytes32,address,uint48,bytes)\":{\"notice\":\"Get a cumulative slash amount for an operator on a subnetwork until a given timestamp (inclusively) using a hint.\"},\"initialize(bytes)\":{\"notice\":\"Initialize this entity contract by using a given data.\"},\"isBurnerHook()\":{\"notice\":\"Get if the burner is needed to be called on a slashing.\"},\"latestSlashedCaptureTimestamp(bytes32,address)\":{\"notice\":\"Get the latest capture timestamp that was slashed on a subnetwork.\"},\"slashableStake(bytes32,address,uint48,bytes)\":{\"notice\":\"Get a slashable amount of a stake got at a given capture timestamp using hints.\"},\"staticDelegateCall(address,bytes)\":{\"notice\":\"Make a delegatecall from this contract to a given target contract with a particular data (always reverts with a return data).\"},\"vault()\":{\"notice\":\"Get the vault's address.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/contracts/hints/SlasherHints.sol\":\"BaseSlasherHints\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol\":{\"keccak256\":\"0x6662ec4e5cefca03eeadd073e9469df8d2944bb2ee8ec8f7622c2c46aab5f225\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4d8544c6f8daa4d1bc215c6a72fe0acdb748664a105b0e5efc19295667521d45\",\"dweb:/ipfs/QmdGWqdnXT8S3RgCR6aV8XHZrsybieMQLLnug1NtpSjEXN\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0xc163fcf9bb10138631a9ba5564df1fa25db9adff73bd9ee868a8ae1858fe093a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9706d43a0124053d9880f6e31a59f31bc0a6a3dc1acd66ce0a16e1111658c5f6\",\"dweb:/ipfs/QmUFmfowzkRwGtDu36cXV9SPTBHJ3n7dG9xQiK5B28jTf2\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609\",\"dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9\",\"dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardUpgradeable.sol\":{\"keccak256\":\"0xb44e086e941292cdc7f440de51478493894ef0b1aeccb0c4047445919f667f74\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://942dad22fbdc1669f025540ba63aa3ccfad5f8458fc5d4525b31ebf272e7af45\",\"dweb:/ipfs/Qmdo4X2M82aM3AMoW2kf2jhYkSCyC4T1pHNd6obdsDFnAB\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol\":{\"keccak256\":\"0xdaba3f7c42c55b2896353f32bd27d4d5f8bae741b3b05d4c53f67abc4dc47ce8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1fa2e61141c602510bcd2cd936ed9561922ac8772a9b9c9a9db091a74e354a45\",\"dweb:/ipfs/QmcHQDDoEBwJmwUbzoVkytvJsBx3KVHYFFnDkvRGWh9Wmh\"]},\"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0xb6b36edd6a2999fd243ff226d6cbf84bd71af2432bbd0dfe19392996a1d9cb41\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1fd2f35495652e57e3f99bc6c510bc5f7dd398a176ea2e72d8ed730aebc6ca26\",\"dweb:/ipfs/QmTQV6X4gkikTib49cho5iDX3JvSQbdsoEChoDwrk3CbbH\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC1271.sol\":{\"keccak256\":\"0x85a45f3f10014a0f8be41157a32b6a5f905753ea64a4b64e29fc12b7deeecf39\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c3c74009ce36136b36c77c23935b8e4a7b4f253be2da2be4fb4a916b1ce43743\",\"dweb:/ipfs/QmcH36v3iN7SJJuF73AunLR2LtNxhVJ1wm63ph4dPZ4pcL\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC5267.sol\":{\"keccak256\":\"0x92aa1df62dc3d33f1656d63bede0923e0df0b706ad4137c8b10b0a8fe549fd92\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c5c0f29195ad64cbe556da8e257dac8f05f78c53f90323c0d2accf8e6922d33a\",\"dweb:/ipfs/QmQ61TED8uaCZwcbh8KkgRSsCav7x7HbcGHwHts3U4DmUP\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c\",\"dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0x6008dabfe393240d73d7dd7688033f72740d570aa422254d29a7dce8568f3aff\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f5196ec75139918c6c7bb4251b36395e668f1fa6d206beba7e7520e74913940d\",\"dweb:/ipfs/QmSyqjksXxmm2mCG6qRd1yuwLykypkSVBbnBnGqJRcuJMi\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x37bb49513c49c87c4642a891b13b63571bc87013dde806617aa1efb54605f386\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b3036b3a83b7c48f96641f2a9002b9f2dcb6a5958dd670894ada21ae8229b3d0\",\"dweb:/ipfs/QmUNfSBdoVtjhETaUJCYcaC7pTMgbhht926tJ2uXJbiVd3\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0xaf28a975a78550e45f65e559a3ad6a5ad43b9b8a37366999abd1b7084eb70721\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b7bd24e224f67f65bfadf85dc2929fa965456bb2415478bd0125471b5ce35245\",\"dweb:/ipfs/QmRaydGr8BTHs1kvaZfsNU69pKzUAGFrvABn1KiRSbE51y\"]},\"lib/openzeppelin-contracts/contracts/utils/ShortStrings.sol\":{\"keccak256\":\"0x18a7171df639a934592915a520ecb97c5bbc9675a1105607aac8a94e72bf62c6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7478e1f13da69a2867ccd883001d836b75620362e743f196376d63ed0c422a1c\",\"dweb:/ipfs/QmWywcQ9TNfwtoqAxbn25d8C5VrV12PrPS9UjtGe6pL2BA\"]},\"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0x32ba59b4b7299237c8ba56319110989d7978a039faf754793064e967e5894418\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1ae50c8b562427df610cc4540c9bf104acca7ef8e2dcae567ae7e52272281e9c\",\"dweb:/ipfs/QmTHiadFCSJUPpRjNegc5SahmeU8bAoY8i9Aq6tVscbcKR\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0x55f102ea785d8399c0e58d1108e2d289506dde18abc6db1b7f68c1f9f9bc5792\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e52e0a7765c943ef14e5bcf11e46e6139fa044be564881378349236bf2e3453\",\"dweb:/ipfs/QmZEeeXoFPW47amyP35gfzomF9DixqqTEPwzBakv6cZw6i\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0xeed0a08b0b091f528356cbc7245891a4c748682d4f6a18055e8e6ca77d12a6cf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba80ba06c8e6be852847e4c5f4492cef801feb6558ae09ed705ff2e04ea8b13c\",\"dweb:/ipfs/QmXRJDv3xHLVQCVXg1ZvR35QS9sij5y9NDWYzMfUfAdTHF\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/EIP712.sol\":{\"keccak256\":\"0x999f705a027ed6dc2d4e0df2cc4a509852c6bfd11de1c8161bf88832d0503fd0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0798def67258d9a3cc20b2b4da7ebf351a5cefe0abfdd665d2d81f8e32f89b21\",\"dweb:/ipfs/QmPEvJosnPfzHNjKvCv2D3891mA2Ww8eUwkqrxBjuYdHCt\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol\":{\"keccak256\":\"0xba333517a3add42cd35fe877656fc3dfcc9de53baa4f3aabbd6d12a92e4ea435\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2ceacff44c0fdc81e48e0e0b1db87a2076d3c1fb497341de077bf1da9f6b406c\",\"dweb:/ipfs/QmRUo1muMRAewxrKQ7TkXUtknyRoR57AyEkoPpiuZQ8FzX\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/SignatureChecker.sol\":{\"keccak256\":\"0x6b11eb41a228cca35d4b662b4df69fcd75192851365102690f57b2ac01e83fe6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ab006a2983ed350d2af21ddcdd835dcae3b8340086cc4d088460da5abd041f69\",\"dweb:/ipfs/QmbEacDhkJZiGrgzLjB4pNtE8Z1uudjDw1DvcDUTVQFsLG\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875\",\"dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0xe19a4d5f31d2861e7344e8e535e2feafb913d806d3e2b5fe7782741a2a7094fe\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4aed79c0fa6f0546ed02f2f683e8f77f0fd2ed7eb34d8bbf3d373c9a6d95b13c\",\"dweb:/ipfs/QmWqVz6UAVqmnWU5pqYPt1o6iDEZyPaBraAA3rKfTTSfYj\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x5f7e4076e175393767754387c962926577f1660dd9b810187b9002407656be72\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7d533a1c97cd43a57cd9c465f7ee8dd0e39ae93a8fb8ff8e5303a356b081cdcc\",\"dweb:/ipfs/QmVBEei6aTnvYNZp2CHYVNKyZS4q1KkjANfY39WVXZXVoT\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/Checkpoints.sol\":{\"keccak256\":\"0xbdc5e074d7dd6678f67e92b1a51a20226801a407b0e1af3da367c5d1ff4519ad\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a36cca6b22fff3db16fc789ff6c60eea71d4b156065d4d0c83a0bc5e91a77a8b\",\"dweb:/ipfs/QmYN3exd5AemxjBrN8XMB1p5LbbE16uC3sjbYjwi8AjcGR\"]},\"lib/openzeppelin-contracts/contracts/utils/types/Time.sol\":{\"keccak256\":\"0xc7755af115020049e4140f224f9ee88d7e1799ffb0646f37bf0df24bf6213f58\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7f09bf94d5274334ec021f61a04659db303f31e60460e14b709c9bf187740111\",\"dweb:/ipfs/QmNvgomZYUwFAt4cZbPWAiTeSZQreGehY9BK5xyVJsUttb\"]},\"src/contracts/common/Entity.sol\":{\"keccak256\":\"0x3d61a932995b8443381f3950542d388223a2c26dd5d29a3274dea3baa7388bd7\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://7cdf5f03ca72fd263fd32ff59c8d88ddca911ae83896a287d10772c1bbe9b138\",\"dweb:/ipfs/QmbP84r5BWT1Rn9AYTntWSf3xUMTTCohTZJFhbBhDXFoHa\"]},\"src/contracts/common/MigratableEntity.sol\":{\"keccak256\":\"0x2d736f4dacd5d7e7697503bc426c78b8250fe1694ca157965ec178da6807de58\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://f1237acf96b4b9f9b69156e068eddd726a6e15bd8e87a18dc999cd4ba4da069c\",\"dweb:/ipfs/QmS6M8fiFFSeuJ4ZKKq1z8W7w4ybeHQSy5TLASGoc1LVic\"]},\"src/contracts/common/StaticDelegateCallable.sol\":{\"keccak256\":\"0x350029aa8955eacaffffaeb58babc5c98e80ebc5c5db388ed17ee6465f4a9d90\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://eb392a8ee9050e0af606897df63e3404e3829e8b688b580663892f9664195764\",\"dweb:/ipfs/QmaXC8jqV8UrrAFkzXTEv2fJF56sy33HhLxAzaRZmUxuXD\"]},\"src/contracts/delegator/BaseDelegator.sol\":{\"keccak256\":\"0x7c54d491fdd4415b764a9c8defa068e56d4c0c8c9419be0053a1d377669290e8\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://9238bfbad0f6eeb0dc7727724de14380f1980b395902269703d5e2ef07e52e10\",\"dweb:/ipfs/QmPJn1V4HNXcEghYvogGuSTF24dSQUPosR5qtsXcmNqRm3\"]},\"src/contracts/delegator/FullRestakeDelegator.sol\":{\"keccak256\":\"0x0a81c4f8e72914563a9cb771e93acf889c71ea36b7bec040e4eb562b199d5af1\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://6fc66b6ba02da77046a0bbbd1dd407a62c08f52e04486c9cbd2cb1cca3da555f\",\"dweb:/ipfs/QmZQivK1ZnMxfRQQ5aLpV9co5u55wQVNev5Rg1hzAqxhkE\"]},\"src/contracts/delegator/NetworkRestakeDelegator.sol\":{\"keccak256\":\"0xd3a8e6522f9c6fdcc2da837c9023afd6bdff2bce45a35590320c475519e3636d\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://58b17a87f6554f08376f9ea7fedf486a4aa75801bf0ad8b23ff5a46959b6b7a3\",\"dweb:/ipfs/QmSTmNh67tYt8CmjVZb57r8N3qX5yeYdMApKPJm3qvQgQw\"]},\"src/contracts/delegator/OperatorNetworkSpecificDelegator.sol\":{\"keccak256\":\"0x031a10722b9ec49048f0952710401131290adb87e71caf294e864e7ac3b98a16\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://72428febc875134b2f29205e6f294634a1c22a7d5c78d6a9cb2f8196f107c9b5\",\"dweb:/ipfs/QmTPwXR6h5oytckmkLrHdKeEMdphJxceDhYUR4zvQeWAwY\"]},\"src/contracts/delegator/OperatorSpecificDelegator.sol\":{\"keccak256\":\"0x630ce62fa30b9f3349ab7a8cf8dbf041319febc6dd757be2f94d3d25944ed328\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://c2ac59d47ce57d2a6819ae9833e1a618a371eccff93eb5ab367b201b01f42bfa\",\"dweb:/ipfs/QmdBpGMBivpNPv2WbH8vnCUy5xkVeaxQvGgqi33vKCz1kA\"]},\"src/contracts/hints/DelegatorHints.sol\":{\"keccak256\":\"0x44aa0c396311a54afbc7c73e8dadeed41e3165a4fd13f712b27d63d50fc3376d\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://2f255214f3531fc707d88be0d56a7a0aed4180439316d099d760d9118aa83093\",\"dweb:/ipfs/QmZD1w5p1ukJSXumUAjvxwGmkPhn7vsr21Y2atLGEZR2oi\"]},\"src/contracts/hints/Hints.sol\":{\"keccak256\":\"0x8b565df1ae35993c097a9e642002782a8f451f6fd01809cad6bcd345bdf1b99c\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://99a19adb01e350a92f534095b3078229df1f2f83077992d75d58d8684be45971\",\"dweb:/ipfs/QmbmwcuswVbzvwHQFTtrJG86oV98GnfxqYTb8cV8u1acox\"]},\"src/contracts/hints/OptInServiceHints.sol\":{\"keccak256\":\"0x95d9407900d27b9f4a1233b772aeed809c07b2dc5b31cfc9fa77ca26514c49e5\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://a13a8877e312d7e6b8b85bde3668c5d84ff5ecc83f762cd573f2b7104c64eb42\",\"dweb:/ipfs/QmYV2J55acuGzCNnS3juABuUHY5U1xc8g8o9jwEyFFdeG5\"]},\"src/contracts/hints/SlasherHints.sol\":{\"keccak256\":\"0xd77c5f3bbb0265af8ecd947df88f6f9684e136d80052b5292f5b29aaa3566a3f\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://484a26504bf6706202ec82a9a4cfa7d196bbc552b5b78ced25bf7130c2842595\",\"dweb:/ipfs/QmaQqmkoZoUWEam4R94vmajzH3gKqFqpZQwFbrHDsN1peV\"]},\"src/contracts/hints/VaultHints.sol\":{\"keccak256\":\"0xccb505b7159b769cc114d67b87c2de6b106557f667fc8f3780114baad5c3c442\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://6d0c80a908fc16e96a8b5605a0bd53f9e89ad0ef0a738fbbae80ba4d3160749b\",\"dweb:/ipfs/QmXo5UtWoR8YmunqcbBU8rQMm1nvmvjNPoXcVrDhh4pEwR\"]},\"src/contracts/libraries/Checkpoints.sol\":{\"keccak256\":\"0xba90097c8bfe0a975499428b5f8ac5569483c7d92ccc28c12d70de416aae040c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://12f5d93ca94cd06d3147db68993165a58e17903ed53682560de61f3085ad4609\",\"dweb:/ipfs/QmePiuAqvXprMLmFZkGZeGjvGPAvsEDHfCDv7BoQhXu9xE\"]},\"src/contracts/libraries/ERC4626Math.sol\":{\"keccak256\":\"0x8441160513c1cbeb1c3b9ee077bcc7e7ce20006b52a77c8dd39ff0ef89699939\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://943f8cc3e26ddf649f465f40c909819f5c864717c4baa339e9e403b9374a4653\",\"dweb:/ipfs/QmXPxi1sUDsrGprZdUgCzoPEosaZMv9ZhygWQ1vAi1phAB\"]},\"src/contracts/libraries/Subnetwork.sol\":{\"keccak256\":\"0xf5ef5506fd66082b3c2e7f3df37529f5a8efad32ac62e7c8914bd63219190bfe\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba031a54ee0d0e9a270c2b9e18437f5668cfeb659cfd5fe0677459d7fcac2a56\",\"dweb:/ipfs/QmReP3H7qQ78tAfgLnJKsNEQNCQfF1X1Get38Ffd4kzq32\"]},\"src/contracts/service/OptInService.sol\":{\"keccak256\":\"0x4e0932077f2686b7990e10d59deb2535334c0d09e52ef6e57c6ab09eca21c4b1\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://7c00d311032ed4a1743aca7475f3c86ce15cdfc2218108efc3731c03d34a5278\",\"dweb:/ipfs/QmUGGfVwVhaHr5kS4177yKKYiLYzi5qZpkEmvYxBZqazxf\"]},\"src/contracts/slasher/BaseSlasher.sol\":{\"keccak256\":\"0x190e5dce196a061bdad42468c52e9f5b0eb7810cd7d0c19f04d6a2e94984f1b6\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://07ca08d0cd43c2fe5d54a5577f6bdd522ced410f5d3a52e764deaa7ba26b5f06\",\"dweb:/ipfs/QmZe3PiMKBQKWcwodaLupragdqxPjgS4v1qMC7RXau8hDF\"]},\"src/contracts/slasher/Slasher.sol\":{\"keccak256\":\"0xeee0cb25fad58d496fdcc641d852d11bae06e6ceed5230ae21150964175c494f\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://34aa27d21246a1bcee0b6a2afa8d9d613441156362430392f75d176511d58c61\",\"dweb:/ipfs/Qmf53Y3zdGfH4PU2zpSGeHZ8mMLzLXCtmkQrG5mnVJECQ3\"]},\"src/contracts/slasher/VetoSlasher.sol\":{\"keccak256\":\"0xeccc8128de5e1ad499c067feac1c526638fbbac1a18b96726fc7507969fd5897\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://cdfcf281338423625acbccdf8810115b258ef7cfe4aa3c10b8911ead1aa85429\",\"dweb:/ipfs/QmZFsDvZXpkFkx4PHcDXAVPN3ZCAahbSVfYpSVrMBvbt4k\"]},\"src/contracts/vault/Vault.sol\":{\"keccak256\":\"0x2ceff6ed3298c4cad144c99fcc79b51cb9397d6ebef00285b915848b476f8c2e\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://11f2fb3581854f3ab6e82e8d4935d9eb510c903a13c3f022346c2956a58f5307\",\"dweb:/ipfs/QmdUnoXoyYoG9SGWyQZCFyLDRUUX3eXyXetkRvw6jxqqBz\"]},\"src/contracts/vault/VaultStorage.sol\":{\"keccak256\":\"0x57db25b127d77ea3472de53e3a4af3354399655b9268638b99ca5925fa364a56\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://aa763d9a6ec508ae3abfb8228b72b9fd9525279e5135d4962e79ff059feb1173\",\"dweb:/ipfs/QmcbDR6E9wyEpu6V2FkEC4hnWy47zXA9LSKJde6zSGd33Q\"]},\"src/interfaces/common/IEntity.sol\":{\"keccak256\":\"0x8ef4b63d6da63489778ccd5f8d13ebdd527dd4b62730b2c616df5af7474d2d21\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a8d69576a9219d85c50816a18ad53a4d53cfcb27ed38b8cccc808dc2734b71b\",\"dweb:/ipfs/QmYVN3P4Q4REvBWJ97TbAcaxm3uyB2anV6NSGa6ZtSwcEv\"]},\"src/interfaces/common/IMigratableEntity.sol\":{\"keccak256\":\"0x8f5f2809f3afbe8ebfbb365dd7b57b4dd3b6f9943a6187eaf648d45895b8e3c4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ffe640537d539e7a4fde70d30d3e4c57f4ba9c2c25c450cea713aae38e8fd5c\",\"dweb:/ipfs/QmSUTGzvdcn1R1KB7tLThMRtESsfPbeXDhhhKWGtntzBds\"]},\"src/interfaces/common/IRegistry.sol\":{\"keccak256\":\"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014\",\"dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK\"]},\"src/interfaces/common/IStaticDelegateCallable.sol\":{\"keccak256\":\"0xa335d4e81b9071b7de66ef92b43ff20671d86516eb1be46fef29a3483cd3f5d5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d464b9db863c14c05547d2b23352f2e9b7b784799cf09f6bbc4906a2a74e3516\",\"dweb:/ipfs/QmUVWzFvJz7eEbDQKiFTTzwi7TEbjcs3VmwdM4kuptAKvi\"]},\"src/interfaces/delegator/IBaseDelegator.sol\":{\"keccak256\":\"0x96bb312f032e17accce3f8f80936d99468029d6b37c9ca74acdb4b026a0148ee\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2a66dcb5b7d1a6ef6a363431ea98ebd78bc4fdd3d7a134d9b542dc66e7d025c2\",\"dweb:/ipfs/QmRhTPLd2ZAyRHmJUFUcWKs9b3if49QY17LYZuRqWmghw8\"]},\"src/interfaces/delegator/IDelegatorHook.sol\":{\"keccak256\":\"0xc51aa8d7d1f6c8043ee819b7aeb86da0e993912e1442098df897e299f01f9f46\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://adddf5cb2ba282aeb576b26efb28640f865a1721cc9b6eee8b3ee0457a2c9780\",\"dweb:/ipfs/QmNYgAmnLRwWZbhTuQhZs9rx4zcme1df5mEepkrniorSoW\"]},\"src/interfaces/delegator/IFullRestakeDelegator.sol\":{\"keccak256\":\"0xa3c8cb2e45d4d8ce90e95263bea40c01dc400f05ad65bc29597d878606be5e7d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://782cf5e201aa4cca037ebafd3807a68ff1cc721d5b8416a35244db0d0607369e\",\"dweb:/ipfs/QmQkJks6x7CKndeTPa9LxgTNygD5uEi7obhADhpq1Lsr9A\"]},\"src/interfaces/delegator/INetworkRestakeDelegator.sol\":{\"keccak256\":\"0xe7030fe30389a147fd710e3436ec346b4842695fd3e65a81b95375c9f1d633fc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://739c7e66d301778054f5c90bee45ec9438f68afba8a03eaaac52064c73b115ad\",\"dweb:/ipfs/QmfZ2ytKcTykAc76nxhg8ikUXV8NdBpetqb8W4YWPcox1Z\"]},\"src/interfaces/delegator/IOperatorNetworkSpecificDelegator.sol\":{\"keccak256\":\"0x74b95e64d29769202d45dd277bb830f623ff3d41ce77b80ce3ee4e318a5c71ec\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e512b903aae5c1b8a028c6e3f4f6223b5cb5d704503cfa6bd37b5346868f5c20\",\"dweb:/ipfs/QmZim9YExsPWtyxyeui993HTKAEmrg8MUcSkZ77Gp2JcuZ\"]},\"src/interfaces/delegator/IOperatorSpecificDelegator.sol\":{\"keccak256\":\"0x72075cab585dc17240cc3e32bc99b92f0d5627ddd988fed680e3e1a52d5a01e4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7448bc90699409ae61d85216b5efc2143a37f0f73354be2aea993bc54afca441\",\"dweb:/ipfs/QmXE4gAxM8pHosZK8mcTcj17puBx484meDCcmrDePskGHZ\"]},\"src/interfaces/service/INetworkMiddlewareService.sol\":{\"keccak256\":\"0x347afc7fcf1fbcdb96d66162070ef6c78aed27b3af2c1d5dfb4e511840631783\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2d90b8ceb495159e8e4e95d76447719dd166443f67dfabdd942846162071595c\",\"dweb:/ipfs/QmVVuiAWYx92T6vBvNMKZfTvraCf1fa16BsUKkdNs3hdHA\"]},\"src/interfaces/service/IOptInService.sol\":{\"keccak256\":\"0x76fb5460a6d87a5705433d4fbeff7253cd75b8bbd0c888b2088f16e86ace146a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://990322019b3d11465f7024bae77ccbf7e2fe5d6fa3c754584778f37d04fa1337\",\"dweb:/ipfs/QmaSNHzcqxTkUCG9a4nqVfLECHLdjdrwAnDi3yDC7tDL24\"]},\"src/interfaces/slasher/IBaseSlasher.sol\":{\"keccak256\":\"0x7c82528b445659c313ab77335c407b0b6efe5e79027187bb287f7bc74202b404\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0274c90aa5df1aa6bb470a6aab53992fb14fd7e5472c9430416505b29647d9cf\",\"dweb:/ipfs/QmckbmJLDetPemVzCnnGcKYWAZV2BRFXGDsjiaec8jkHxx\"]},\"src/interfaces/slasher/IBurner.sol\":{\"keccak256\":\"0xaf495dacc19ae0b3c787ba8021c5944927d70261536addd234d7dab146158c2b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9b3cc66251008be6ff9fc8b11ecc6831d5a9dca49a3fe9817fcd970253c1d447\",\"dweb:/ipfs/QmVxfb9ALGdF9W3SN2h41gQbUct6tawvu5bw4K89kFQ4HW\"]},\"src/interfaces/slasher/ISlasher.sol\":{\"keccak256\":\"0x34d226d67a3d5e16571f2fac91a8b9773551bcc41c88a96279669dd78d192625\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a6e8c1462ee4a1b0f745414be043c09012ea676613790aba004b06c85c980d1\",\"dweb:/ipfs/QmadjNEbHKRthtA1EeNy3Kg2sXpejH2KBeHm8QZtBPvXbJ\"]},\"src/interfaces/slasher/IVetoSlasher.sol\":{\"keccak256\":\"0xdf7edd04a4f36e9aec3a15241dcb6b6315b2e64927b12710c2c410d571fc55e9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c4be6ac339c2ebf230fed65363f036784224095d0cd0f3f2d01d64d6e0da9508\",\"dweb:/ipfs/QmRSMbpfaHExqrzUA8vYZMYZWh6eQW1KX9JKJSLdgronfg\"]},\"src/interfaces/vault/IVault.sol\":{\"keccak256\":\"0xffee01d383cd4e1a5530c614bf4360c1ef070c288abec9da1eb531b51bc07235\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://04f0046cac285d8ec44ebbb1f79dc94fab4495767190cad8364fbc1fafaadfb9\",\"dweb:/ipfs/QmUawAunwzXfCyShWfhKeThAgKtqe51hmrxvrXvM772M2R\"]},\"src/interfaces/vault/IVaultStorage.sol\":{\"keccak256\":\"0x592626f13754194f83047135de19229c49390bd59e34659b1bb38be71d973a22\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://06a6a9dfddd05e580b32bebe2cff4f63ba26a653180676d58225dd30d9c89d3e\",\"dweb:/ipfs/QmdgzBeY6Sxo8mGtyBxtv1tM1c2kU6J6zjeRd7vuXm4DU6\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.25+commit.b61c2a91"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"baseDelegatorHints","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"ExternalCall"},{"inputs":[],"type":"error","name":"InsufficientBurnerGas"},{"inputs":[],"type":"error","name":"InvalidInitialization"},{"inputs":[],"type":"error","name":"NoBurner"},{"inputs":[],"type":"error","name":"NotInitialized"},{"inputs":[],"type":"error","name":"NotInitializing"},{"inputs":[],"type":"error","name":"NotNetworkMiddleware"},{"inputs":[],"type":"error","name":"NotVault"},{"inputs":[],"type":"error","name":"ReentrancyGuardReentrantCall"},{"inputs":[{"internalType":"uint8","name":"bits","type":"uint8"},{"internalType":"uint256","name":"value","type":"uint256"}],"type":"error","name":"SafeCastOverflowedUintDowncast"},{"inputs":[{"internalType":"uint64","name":"version","type":"uint64","indexed":false}],"type":"event","name":"Initialized","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"BASE_DELEGATOR_HINTS","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"BURNER_GAS_LIMIT","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"BURNER_RESERVE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"FACTORY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"NETWORK_MIDDLEWARE_SERVICE","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"SLASHER_HINTS","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"TYPE","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"VAULT_FACTORY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"VETO_SLASHER_HINTS","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"cumulativeSlash","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint48","name":"timestamp","type":"uint48"},{"internalType":"bytes","name":"hint","type":"bytes"}],"stateMutability":"view","type":"function","name":"cumulativeSlashAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"slasher","type":"address"},{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint48","name":"timestamp","type":"uint48"}],"stateMutability":"view","type":"function","name":"cumulativeSlashHint","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint48","name":"timestamp","type":"uint48"}],"stateMutability":"view","type":"function","name":"cumulativeSlashHintInternal","outputs":[{"internalType":"bool","name":"exists","type":"bool"},{"internalType":"uint32","name":"hint","type":"uint32"}]},{"inputs":[{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[],"stateMutability":"view","type":"function","name":"isBurnerHook","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"latestSlashedCaptureTimestamp","outputs":[{"internalType":"uint48","name":"value","type":"uint48"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint48","name":"captureTimestamp","type":"uint48"},{"internalType":"bytes","name":"hints","type":"bytes"}],"stateMutability":"view","type":"function","name":"slashableStake","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"slasher","type":"address"},{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint48","name":"captureTimestamp","type":"uint48"}],"stateMutability":"view","type":"function","name":"slashableStakeHints","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"staticDelegateCall"},{"inputs":[],"stateMutability":"view","type":"function","name":"vault","outputs":[{"internalType":"address","name":"","type":"address"}]}],"devdoc":{"kind":"dev","methods":{"cumulativeSlash(bytes32,address)":{"params":{"operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"},"returns":{"_0":"cumulative slash amount"}},"cumulativeSlashAt(bytes32,address,uint48,bytes)":{"params":{"hint":"hint for the checkpoint index","operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)","timestamp":"time point to get the cumulative slash amount until (inclusively)"},"returns":{"_0":"cumulative slash amount until the given timestamp (inclusively)"}},"initialize(bytes)":{"params":{"data":"some data to use"}},"slashableStake(bytes32,address,uint48,bytes)":{"params":{"captureTimestamp":"time point to get the stake amount at","hints":"hints for the checkpoints' indexes","operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"},"returns":{"amount":"slashable amount of the stake"}},"staticDelegateCall(address,bytes)":{"details":"It allows to use this contract's storage on-chain.","params":{"data":"data to make a delegatecall with","target":"address of the contract to make a delegatecall to"}}},"version":1},"userdoc":{"kind":"user","methods":{"BURNER_GAS_LIMIT()":{"notice":"Get a gas limit for the burner."},"BURNER_RESERVE()":{"notice":"Get a reserve gas between the gas limit check and the burner's execution."},"FACTORY()":{"notice":"Get the factory's address."},"NETWORK_MIDDLEWARE_SERVICE()":{"notice":"Get the network middleware service's address."},"TYPE()":{"notice":"Get the entity's type."},"VAULT_FACTORY()":{"notice":"Get the vault factory's address."},"cumulativeSlash(bytes32,address)":{"notice":"Get a cumulative slash amount for an operator on a subnetwork."},"cumulativeSlashAt(bytes32,address,uint48,bytes)":{"notice":"Get a cumulative slash amount for an operator on a subnetwork until a given timestamp (inclusively) using a hint."},"initialize(bytes)":{"notice":"Initialize this entity contract by using a given data."},"isBurnerHook()":{"notice":"Get if the burner is needed to be called on a slashing."},"latestSlashedCaptureTimestamp(bytes32,address)":{"notice":"Get the latest capture timestamp that was slashed on a subnetwork."},"slashableStake(bytes32,address,uint48,bytes)":{"notice":"Get a slashable amount of a stake got at a given capture timestamp using hints."},"staticDelegateCall(address,bytes)":{"notice":"Make a delegatecall from this contract to a given target contract with a particular data (always reverts with a return data)."},"vault()":{"notice":"Get the vault's address."}},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/contracts/hints/SlasherHints.sol":"BaseSlasherHints"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol":{"keccak256":"0x6662ec4e5cefca03eeadd073e9469df8d2944bb2ee8ec8f7622c2c46aab5f225","urls":["bzz-raw://4d8544c6f8daa4d1bc215c6a72fe0acdb748664a105b0e5efc19295667521d45","dweb:/ipfs/QmdGWqdnXT8S3RgCR6aV8XHZrsybieMQLLnug1NtpSjEXN"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol":{"keccak256":"0xc163fcf9bb10138631a9ba5564df1fa25db9adff73bd9ee868a8ae1858fe093a","urls":["bzz-raw://9706d43a0124053d9880f6e31a59f31bc0a6a3dc1acd66ce0a16e1111658c5f6","dweb:/ipfs/QmUFmfowzkRwGtDu36cXV9SPTBHJ3n7dG9xQiK5B28jTf2"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b","urls":["bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609","dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol":{"keccak256":"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397","urls":["bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9","dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardUpgradeable.sol":{"keccak256":"0xb44e086e941292cdc7f440de51478493894ef0b1aeccb0c4047445919f667f74","urls":["bzz-raw://942dad22fbdc1669f025540ba63aa3ccfad5f8458fc5d4525b31ebf272e7af45","dweb:/ipfs/Qmdo4X2M82aM3AMoW2kf2jhYkSCyC4T1pHNd6obdsDFnAB"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol":{"keccak256":"0xdaba3f7c42c55b2896353f32bd27d4d5f8bae741b3b05d4c53f67abc4dc47ce8","urls":["bzz-raw://1fa2e61141c602510bcd2cd936ed9561922ac8772a9b9c9a9db091a74e354a45","dweb:/ipfs/QmcHQDDoEBwJmwUbzoVkytvJsBx3KVHYFFnDkvRGWh9Wmh"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol":{"keccak256":"0xb6b36edd6a2999fd243ff226d6cbf84bd71af2432bbd0dfe19392996a1d9cb41","urls":["bzz-raw://1fd2f35495652e57e3f99bc6c510bc5f7dd398a176ea2e72d8ed730aebc6ca26","dweb:/ipfs/QmTQV6X4gkikTib49cho5iDX3JvSQbdsoEChoDwrk3CbbH"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC1271.sol":{"keccak256":"0x85a45f3f10014a0f8be41157a32b6a5f905753ea64a4b64e29fc12b7deeecf39","urls":["bzz-raw://c3c74009ce36136b36c77c23935b8e4a7b4f253be2da2be4fb4a916b1ce43743","dweb:/ipfs/QmcH36v3iN7SJJuF73AunLR2LtNxhVJ1wm63ph4dPZ4pcL"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC5267.sol":{"keccak256":"0x92aa1df62dc3d33f1656d63bede0923e0df0b706ad4137c8b10b0a8fe549fd92","urls":["bzz-raw://c5c0f29195ad64cbe556da8e257dac8f05f78c53f90323c0d2accf8e6922d33a","dweb:/ipfs/QmQ61TED8uaCZwcbh8KkgRSsCav7x7HbcGHwHts3U4DmUP"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70","urls":["bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c","dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol":{"keccak256":"0x6008dabfe393240d73d7dd7688033f72740d570aa422254d29a7dce8568f3aff","urls":["bzz-raw://f5196ec75139918c6c7bb4251b36395e668f1fa6d206beba7e7520e74913940d","dweb:/ipfs/QmSyqjksXxmm2mCG6qRd1yuwLykypkSVBbnBnGqJRcuJMi"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0x37bb49513c49c87c4642a891b13b63571bc87013dde806617aa1efb54605f386","urls":["bzz-raw://b3036b3a83b7c48f96641f2a9002b9f2dcb6a5958dd670894ada21ae8229b3d0","dweb:/ipfs/QmUNfSBdoVtjhETaUJCYcaC7pTMgbhht926tJ2uXJbiVd3"],"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/ShortStrings.sol":{"keccak256":"0x18a7171df639a934592915a520ecb97c5bbc9675a1105607aac8a94e72bf62c6","urls":["bzz-raw://7478e1f13da69a2867ccd883001d836b75620362e743f196376d63ed0c422a1c","dweb:/ipfs/QmWywcQ9TNfwtoqAxbn25d8C5VrV12PrPS9UjtGe6pL2BA"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol":{"keccak256":"0x32ba59b4b7299237c8ba56319110989d7978a039faf754793064e967e5894418","urls":["bzz-raw://1ae50c8b562427df610cc4540c9bf104acca7ef8e2dcae567ae7e52272281e9c","dweb:/ipfs/QmTHiadFCSJUPpRjNegc5SahmeU8bAoY8i9Aq6tVscbcKR"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0x55f102ea785d8399c0e58d1108e2d289506dde18abc6db1b7f68c1f9f9bc5792","urls":["bzz-raw://6e52e0a7765c943ef14e5bcf11e46e6139fa044be564881378349236bf2e3453","dweb:/ipfs/QmZEeeXoFPW47amyP35gfzomF9DixqqTEPwzBakv6cZw6i"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol":{"keccak256":"0xeed0a08b0b091f528356cbc7245891a4c748682d4f6a18055e8e6ca77d12a6cf","urls":["bzz-raw://ba80ba06c8e6be852847e4c5f4492cef801feb6558ae09ed705ff2e04ea8b13c","dweb:/ipfs/QmXRJDv3xHLVQCVXg1ZvR35QS9sij5y9NDWYzMfUfAdTHF"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/EIP712.sol":{"keccak256":"0x999f705a027ed6dc2d4e0df2cc4a509852c6bfd11de1c8161bf88832d0503fd0","urls":["bzz-raw://0798def67258d9a3cc20b2b4da7ebf351a5cefe0abfdd665d2d81f8e32f89b21","dweb:/ipfs/QmPEvJosnPfzHNjKvCv2D3891mA2Ww8eUwkqrxBjuYdHCt"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol":{"keccak256":"0xba333517a3add42cd35fe877656fc3dfcc9de53baa4f3aabbd6d12a92e4ea435","urls":["bzz-raw://2ceacff44c0fdc81e48e0e0b1db87a2076d3c1fb497341de077bf1da9f6b406c","dweb:/ipfs/QmRUo1muMRAewxrKQ7TkXUtknyRoR57AyEkoPpiuZQ8FzX"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/SignatureChecker.sol":{"keccak256":"0x6b11eb41a228cca35d4b662b4df69fcd75192851365102690f57b2ac01e83fe6","urls":["bzz-raw://ab006a2983ed350d2af21ddcdd835dcae3b8340086cc4d088460da5abd041f69","dweb:/ipfs/QmbEacDhkJZiGrgzLjB4pNtE8Z1uudjDw1DvcDUTVQFsLG"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b","urls":["bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df","dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d","urls":["bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875","dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol":{"keccak256":"0xe19a4d5f31d2861e7344e8e535e2feafb913d806d3e2b5fe7782741a2a7094fe","urls":["bzz-raw://4aed79c0fa6f0546ed02f2f683e8f77f0fd2ed7eb34d8bbf3d373c9a6d95b13c","dweb:/ipfs/QmWqVz6UAVqmnWU5pqYPt1o6iDEZyPaBraAA3rKfTTSfYj"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0x5f7e4076e175393767754387c962926577f1660dd9b810187b9002407656be72","urls":["bzz-raw://7d533a1c97cd43a57cd9c465f7ee8dd0e39ae93a8fb8ff8e5303a356b081cdcc","dweb:/ipfs/QmVBEei6aTnvYNZp2CHYVNKyZS4q1KkjANfY39WVXZXVoT"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/Checkpoints.sol":{"keccak256":"0xbdc5e074d7dd6678f67e92b1a51a20226801a407b0e1af3da367c5d1ff4519ad","urls":["bzz-raw://a36cca6b22fff3db16fc789ff6c60eea71d4b156065d4d0c83a0bc5e91a77a8b","dweb:/ipfs/QmYN3exd5AemxjBrN8XMB1p5LbbE16uC3sjbYjwi8AjcGR"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/types/Time.sol":{"keccak256":"0xc7755af115020049e4140f224f9ee88d7e1799ffb0646f37bf0df24bf6213f58","urls":["bzz-raw://7f09bf94d5274334ec021f61a04659db303f31e60460e14b709c9bf187740111","dweb:/ipfs/QmNvgomZYUwFAt4cZbPWAiTeSZQreGehY9BK5xyVJsUttb"],"license":"MIT"},"src/contracts/common/Entity.sol":{"keccak256":"0x3d61a932995b8443381f3950542d388223a2c26dd5d29a3274dea3baa7388bd7","urls":["bzz-raw://7cdf5f03ca72fd263fd32ff59c8d88ddca911ae83896a287d10772c1bbe9b138","dweb:/ipfs/QmbP84r5BWT1Rn9AYTntWSf3xUMTTCohTZJFhbBhDXFoHa"],"license":"BUSL-1.1"},"src/contracts/common/MigratableEntity.sol":{"keccak256":"0x2d736f4dacd5d7e7697503bc426c78b8250fe1694ca157965ec178da6807de58","urls":["bzz-raw://f1237acf96b4b9f9b69156e068eddd726a6e15bd8e87a18dc999cd4ba4da069c","dweb:/ipfs/QmS6M8fiFFSeuJ4ZKKq1z8W7w4ybeHQSy5TLASGoc1LVic"],"license":"BUSL-1.1"},"src/contracts/common/StaticDelegateCallable.sol":{"keccak256":"0x350029aa8955eacaffffaeb58babc5c98e80ebc5c5db388ed17ee6465f4a9d90","urls":["bzz-raw://eb392a8ee9050e0af606897df63e3404e3829e8b688b580663892f9664195764","dweb:/ipfs/QmaXC8jqV8UrrAFkzXTEv2fJF56sy33HhLxAzaRZmUxuXD"],"license":"BUSL-1.1"},"src/contracts/delegator/BaseDelegator.sol":{"keccak256":"0x7c54d491fdd4415b764a9c8defa068e56d4c0c8c9419be0053a1d377669290e8","urls":["bzz-raw://9238bfbad0f6eeb0dc7727724de14380f1980b395902269703d5e2ef07e52e10","dweb:/ipfs/QmPJn1V4HNXcEghYvogGuSTF24dSQUPosR5qtsXcmNqRm3"],"license":"BUSL-1.1"},"src/contracts/delegator/FullRestakeDelegator.sol":{"keccak256":"0x0a81c4f8e72914563a9cb771e93acf889c71ea36b7bec040e4eb562b199d5af1","urls":["bzz-raw://6fc66b6ba02da77046a0bbbd1dd407a62c08f52e04486c9cbd2cb1cca3da555f","dweb:/ipfs/QmZQivK1ZnMxfRQQ5aLpV9co5u55wQVNev5Rg1hzAqxhkE"],"license":"BUSL-1.1"},"src/contracts/delegator/NetworkRestakeDelegator.sol":{"keccak256":"0xd3a8e6522f9c6fdcc2da837c9023afd6bdff2bce45a35590320c475519e3636d","urls":["bzz-raw://58b17a87f6554f08376f9ea7fedf486a4aa75801bf0ad8b23ff5a46959b6b7a3","dweb:/ipfs/QmSTmNh67tYt8CmjVZb57r8N3qX5yeYdMApKPJm3qvQgQw"],"license":"BUSL-1.1"},"src/contracts/delegator/OperatorNetworkSpecificDelegator.sol":{"keccak256":"0x031a10722b9ec49048f0952710401131290adb87e71caf294e864e7ac3b98a16","urls":["bzz-raw://72428febc875134b2f29205e6f294634a1c22a7d5c78d6a9cb2f8196f107c9b5","dweb:/ipfs/QmTPwXR6h5oytckmkLrHdKeEMdphJxceDhYUR4zvQeWAwY"],"license":"BUSL-1.1"},"src/contracts/delegator/OperatorSpecificDelegator.sol":{"keccak256":"0x630ce62fa30b9f3349ab7a8cf8dbf041319febc6dd757be2f94d3d25944ed328","urls":["bzz-raw://c2ac59d47ce57d2a6819ae9833e1a618a371eccff93eb5ab367b201b01f42bfa","dweb:/ipfs/QmdBpGMBivpNPv2WbH8vnCUy5xkVeaxQvGgqi33vKCz1kA"],"license":"BUSL-1.1"},"src/contracts/hints/DelegatorHints.sol":{"keccak256":"0x44aa0c396311a54afbc7c73e8dadeed41e3165a4fd13f712b27d63d50fc3376d","urls":["bzz-raw://2f255214f3531fc707d88be0d56a7a0aed4180439316d099d760d9118aa83093","dweb:/ipfs/QmZD1w5p1ukJSXumUAjvxwGmkPhn7vsr21Y2atLGEZR2oi"],"license":"BUSL-1.1"},"src/contracts/hints/Hints.sol":{"keccak256":"0x8b565df1ae35993c097a9e642002782a8f451f6fd01809cad6bcd345bdf1b99c","urls":["bzz-raw://99a19adb01e350a92f534095b3078229df1f2f83077992d75d58d8684be45971","dweb:/ipfs/QmbmwcuswVbzvwHQFTtrJG86oV98GnfxqYTb8cV8u1acox"],"license":"BUSL-1.1"},"src/contracts/hints/OptInServiceHints.sol":{"keccak256":"0x95d9407900d27b9f4a1233b772aeed809c07b2dc5b31cfc9fa77ca26514c49e5","urls":["bzz-raw://a13a8877e312d7e6b8b85bde3668c5d84ff5ecc83f762cd573f2b7104c64eb42","dweb:/ipfs/QmYV2J55acuGzCNnS3juABuUHY5U1xc8g8o9jwEyFFdeG5"],"license":"BUSL-1.1"},"src/contracts/hints/SlasherHints.sol":{"keccak256":"0xd77c5f3bbb0265af8ecd947df88f6f9684e136d80052b5292f5b29aaa3566a3f","urls":["bzz-raw://484a26504bf6706202ec82a9a4cfa7d196bbc552b5b78ced25bf7130c2842595","dweb:/ipfs/QmaQqmkoZoUWEam4R94vmajzH3gKqFqpZQwFbrHDsN1peV"],"license":"BUSL-1.1"},"src/contracts/hints/VaultHints.sol":{"keccak256":"0xccb505b7159b769cc114d67b87c2de6b106557f667fc8f3780114baad5c3c442","urls":["bzz-raw://6d0c80a908fc16e96a8b5605a0bd53f9e89ad0ef0a738fbbae80ba4d3160749b","dweb:/ipfs/QmXo5UtWoR8YmunqcbBU8rQMm1nvmvjNPoXcVrDhh4pEwR"],"license":"BUSL-1.1"},"src/contracts/libraries/Checkpoints.sol":{"keccak256":"0xba90097c8bfe0a975499428b5f8ac5569483c7d92ccc28c12d70de416aae040c","urls":["bzz-raw://12f5d93ca94cd06d3147db68993165a58e17903ed53682560de61f3085ad4609","dweb:/ipfs/QmePiuAqvXprMLmFZkGZeGjvGPAvsEDHfCDv7BoQhXu9xE"],"license":"MIT"},"src/contracts/libraries/ERC4626Math.sol":{"keccak256":"0x8441160513c1cbeb1c3b9ee077bcc7e7ce20006b52a77c8dd39ff0ef89699939","urls":["bzz-raw://943f8cc3e26ddf649f465f40c909819f5c864717c4baa339e9e403b9374a4653","dweb:/ipfs/QmXPxi1sUDsrGprZdUgCzoPEosaZMv9ZhygWQ1vAi1phAB"],"license":"MIT"},"src/contracts/libraries/Subnetwork.sol":{"keccak256":"0xf5ef5506fd66082b3c2e7f3df37529f5a8efad32ac62e7c8914bd63219190bfe","urls":["bzz-raw://ba031a54ee0d0e9a270c2b9e18437f5668cfeb659cfd5fe0677459d7fcac2a56","dweb:/ipfs/QmReP3H7qQ78tAfgLnJKsNEQNCQfF1X1Get38Ffd4kzq32"],"license":"MIT"},"src/contracts/service/OptInService.sol":{"keccak256":"0x4e0932077f2686b7990e10d59deb2535334c0d09e52ef6e57c6ab09eca21c4b1","urls":["bzz-raw://7c00d311032ed4a1743aca7475f3c86ce15cdfc2218108efc3731c03d34a5278","dweb:/ipfs/QmUGGfVwVhaHr5kS4177yKKYiLYzi5qZpkEmvYxBZqazxf"],"license":"BUSL-1.1"},"src/contracts/slasher/BaseSlasher.sol":{"keccak256":"0x190e5dce196a061bdad42468c52e9f5b0eb7810cd7d0c19f04d6a2e94984f1b6","urls":["bzz-raw://07ca08d0cd43c2fe5d54a5577f6bdd522ced410f5d3a52e764deaa7ba26b5f06","dweb:/ipfs/QmZe3PiMKBQKWcwodaLupragdqxPjgS4v1qMC7RXau8hDF"],"license":"BUSL-1.1"},"src/contracts/slasher/Slasher.sol":{"keccak256":"0xeee0cb25fad58d496fdcc641d852d11bae06e6ceed5230ae21150964175c494f","urls":["bzz-raw://34aa27d21246a1bcee0b6a2afa8d9d613441156362430392f75d176511d58c61","dweb:/ipfs/Qmf53Y3zdGfH4PU2zpSGeHZ8mMLzLXCtmkQrG5mnVJECQ3"],"license":"BUSL-1.1"},"src/contracts/slasher/VetoSlasher.sol":{"keccak256":"0xeccc8128de5e1ad499c067feac1c526638fbbac1a18b96726fc7507969fd5897","urls":["bzz-raw://cdfcf281338423625acbccdf8810115b258ef7cfe4aa3c10b8911ead1aa85429","dweb:/ipfs/QmZFsDvZXpkFkx4PHcDXAVPN3ZCAahbSVfYpSVrMBvbt4k"],"license":"BUSL-1.1"},"src/contracts/vault/Vault.sol":{"keccak256":"0x2ceff6ed3298c4cad144c99fcc79b51cb9397d6ebef00285b915848b476f8c2e","urls":["bzz-raw://11f2fb3581854f3ab6e82e8d4935d9eb510c903a13c3f022346c2956a58f5307","dweb:/ipfs/QmdUnoXoyYoG9SGWyQZCFyLDRUUX3eXyXetkRvw6jxqqBz"],"license":"BUSL-1.1"},"src/contracts/vault/VaultStorage.sol":{"keccak256":"0x57db25b127d77ea3472de53e3a4af3354399655b9268638b99ca5925fa364a56","urls":["bzz-raw://aa763d9a6ec508ae3abfb8228b72b9fd9525279e5135d4962e79ff059feb1173","dweb:/ipfs/QmcbDR6E9wyEpu6V2FkEC4hnWy47zXA9LSKJde6zSGd33Q"],"license":"BUSL-1.1"},"src/interfaces/common/IEntity.sol":{"keccak256":"0x8ef4b63d6da63489778ccd5f8d13ebdd527dd4b62730b2c616df5af7474d2d21","urls":["bzz-raw://5a8d69576a9219d85c50816a18ad53a4d53cfcb27ed38b8cccc808dc2734b71b","dweb:/ipfs/QmYVN3P4Q4REvBWJ97TbAcaxm3uyB2anV6NSGa6ZtSwcEv"],"license":"MIT"},"src/interfaces/common/IMigratableEntity.sol":{"keccak256":"0x8f5f2809f3afbe8ebfbb365dd7b57b4dd3b6f9943a6187eaf648d45895b8e3c4","urls":["bzz-raw://0ffe640537d539e7a4fde70d30d3e4c57f4ba9c2c25c450cea713aae38e8fd5c","dweb:/ipfs/QmSUTGzvdcn1R1KB7tLThMRtESsfPbeXDhhhKWGtntzBds"],"license":"MIT"},"src/interfaces/common/IRegistry.sol":{"keccak256":"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb","urls":["bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014","dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK"],"license":"MIT"},"src/interfaces/common/IStaticDelegateCallable.sol":{"keccak256":"0xa335d4e81b9071b7de66ef92b43ff20671d86516eb1be46fef29a3483cd3f5d5","urls":["bzz-raw://d464b9db863c14c05547d2b23352f2e9b7b784799cf09f6bbc4906a2a74e3516","dweb:/ipfs/QmUVWzFvJz7eEbDQKiFTTzwi7TEbjcs3VmwdM4kuptAKvi"],"license":"MIT"},"src/interfaces/delegator/IBaseDelegator.sol":{"keccak256":"0x96bb312f032e17accce3f8f80936d99468029d6b37c9ca74acdb4b026a0148ee","urls":["bzz-raw://2a66dcb5b7d1a6ef6a363431ea98ebd78bc4fdd3d7a134d9b542dc66e7d025c2","dweb:/ipfs/QmRhTPLd2ZAyRHmJUFUcWKs9b3if49QY17LYZuRqWmghw8"],"license":"MIT"},"src/interfaces/delegator/IDelegatorHook.sol":{"keccak256":"0xc51aa8d7d1f6c8043ee819b7aeb86da0e993912e1442098df897e299f01f9f46","urls":["bzz-raw://adddf5cb2ba282aeb576b26efb28640f865a1721cc9b6eee8b3ee0457a2c9780","dweb:/ipfs/QmNYgAmnLRwWZbhTuQhZs9rx4zcme1df5mEepkrniorSoW"],"license":"MIT"},"src/interfaces/delegator/IFullRestakeDelegator.sol":{"keccak256":"0xa3c8cb2e45d4d8ce90e95263bea40c01dc400f05ad65bc29597d878606be5e7d","urls":["bzz-raw://782cf5e201aa4cca037ebafd3807a68ff1cc721d5b8416a35244db0d0607369e","dweb:/ipfs/QmQkJks6x7CKndeTPa9LxgTNygD5uEi7obhADhpq1Lsr9A"],"license":"MIT"},"src/interfaces/delegator/INetworkRestakeDelegator.sol":{"keccak256":"0xe7030fe30389a147fd710e3436ec346b4842695fd3e65a81b95375c9f1d633fc","urls":["bzz-raw://739c7e66d301778054f5c90bee45ec9438f68afba8a03eaaac52064c73b115ad","dweb:/ipfs/QmfZ2ytKcTykAc76nxhg8ikUXV8NdBpetqb8W4YWPcox1Z"],"license":"MIT"},"src/interfaces/delegator/IOperatorNetworkSpecificDelegator.sol":{"keccak256":"0x74b95e64d29769202d45dd277bb830f623ff3d41ce77b80ce3ee4e318a5c71ec","urls":["bzz-raw://e512b903aae5c1b8a028c6e3f4f6223b5cb5d704503cfa6bd37b5346868f5c20","dweb:/ipfs/QmZim9YExsPWtyxyeui993HTKAEmrg8MUcSkZ77Gp2JcuZ"],"license":"MIT"},"src/interfaces/delegator/IOperatorSpecificDelegator.sol":{"keccak256":"0x72075cab585dc17240cc3e32bc99b92f0d5627ddd988fed680e3e1a52d5a01e4","urls":["bzz-raw://7448bc90699409ae61d85216b5efc2143a37f0f73354be2aea993bc54afca441","dweb:/ipfs/QmXE4gAxM8pHosZK8mcTcj17puBx484meDCcmrDePskGHZ"],"license":"MIT"},"src/interfaces/service/INetworkMiddlewareService.sol":{"keccak256":"0x347afc7fcf1fbcdb96d66162070ef6c78aed27b3af2c1d5dfb4e511840631783","urls":["bzz-raw://2d90b8ceb495159e8e4e95d76447719dd166443f67dfabdd942846162071595c","dweb:/ipfs/QmVVuiAWYx92T6vBvNMKZfTvraCf1fa16BsUKkdNs3hdHA"],"license":"MIT"},"src/interfaces/service/IOptInService.sol":{"keccak256":"0x76fb5460a6d87a5705433d4fbeff7253cd75b8bbd0c888b2088f16e86ace146a","urls":["bzz-raw://990322019b3d11465f7024bae77ccbf7e2fe5d6fa3c754584778f37d04fa1337","dweb:/ipfs/QmaSNHzcqxTkUCG9a4nqVfLECHLdjdrwAnDi3yDC7tDL24"],"license":"MIT"},"src/interfaces/slasher/IBaseSlasher.sol":{"keccak256":"0x7c82528b445659c313ab77335c407b0b6efe5e79027187bb287f7bc74202b404","urls":["bzz-raw://0274c90aa5df1aa6bb470a6aab53992fb14fd7e5472c9430416505b29647d9cf","dweb:/ipfs/QmckbmJLDetPemVzCnnGcKYWAZV2BRFXGDsjiaec8jkHxx"],"license":"MIT"},"src/interfaces/slasher/IBurner.sol":{"keccak256":"0xaf495dacc19ae0b3c787ba8021c5944927d70261536addd234d7dab146158c2b","urls":["bzz-raw://9b3cc66251008be6ff9fc8b11ecc6831d5a9dca49a3fe9817fcd970253c1d447","dweb:/ipfs/QmVxfb9ALGdF9W3SN2h41gQbUct6tawvu5bw4K89kFQ4HW"],"license":"MIT"},"src/interfaces/slasher/ISlasher.sol":{"keccak256":"0x34d226d67a3d5e16571f2fac91a8b9773551bcc41c88a96279669dd78d192625","urls":["bzz-raw://7a6e8c1462ee4a1b0f745414be043c09012ea676613790aba004b06c85c980d1","dweb:/ipfs/QmadjNEbHKRthtA1EeNy3Kg2sXpejH2KBeHm8QZtBPvXbJ"],"license":"MIT"},"src/interfaces/slasher/IVetoSlasher.sol":{"keccak256":"0xdf7edd04a4f36e9aec3a15241dcb6b6315b2e64927b12710c2c410d571fc55e9","urls":["bzz-raw://c4be6ac339c2ebf230fed65363f036784224095d0cd0f3f2d01d64d6e0da9508","dweb:/ipfs/QmRSMbpfaHExqrzUA8vYZMYZWh6eQW1KX9JKJSLdgronfg"],"license":"MIT"},"src/interfaces/vault/IVault.sol":{"keccak256":"0xffee01d383cd4e1a5530c614bf4360c1ef070c288abec9da1eb531b51bc07235","urls":["bzz-raw://04f0046cac285d8ec44ebbb1f79dc94fab4495767190cad8364fbc1fafaadfb9","dweb:/ipfs/QmUawAunwzXfCyShWfhKeThAgKtqe51hmrxvrXvM772M2R"],"license":"MIT"},"src/interfaces/vault/IVaultStorage.sol":{"keccak256":"0x592626f13754194f83047135de19229c49390bd59e34659b1bb38be71d973a22","urls":["bzz-raw://06a6a9dfddd05e580b32bebe2cff4f63ba26a653180676d58225dd30d9c89d3e","dweb:/ipfs/QmdgzBeY6Sxo8mGtyBxtv1tM1c2kU6J6zjeRd7vuXm4DU6"],"license":"MIT"}},"version":1},"id":84} \ No newline at end of file +{"abi":[{"type":"constructor","inputs":[{"name":"baseDelegatorHints","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"BASE_DELEGATOR_HINTS","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"BURNER_GAS_LIMIT","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"BURNER_RESERVE","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"FACTORY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"NETWORK_MIDDLEWARE_SERVICE","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"SLASHER_HINTS","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"TYPE","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"VAULT_FACTORY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"VETO_SLASHER_HINTS","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"cumulativeSlash","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"cumulativeSlashAt","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"timestamp","type":"uint48","internalType":"uint48"},{"name":"hint","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"cumulativeSlashHint","inputs":[{"name":"slasher","type":"address","internalType":"address"},{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"timestamp","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"cumulativeSlashHintInternal","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"timestamp","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"exists","type":"bool","internalType":"bool"},{"name":"hint","type":"uint32","internalType":"uint32"}],"stateMutability":"view"},{"type":"function","name":"initialize","inputs":[{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"isBurnerHook","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"latestSlashedCaptureTimestamp","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"value","type":"uint48","internalType":"uint48"}],"stateMutability":"view"},{"type":"function","name":"slashableStake","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"captureTimestamp","type":"uint48","internalType":"uint48"},{"name":"hints","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"slashableStakeHints","inputs":[{"name":"slasher","type":"address","internalType":"address"},{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"captureTimestamp","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"staticDelegateCall","inputs":[{"name":"target","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"vault","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"error","name":"ExternalCall","inputs":[]},{"type":"error","name":"InsufficientBurnerGas","inputs":[]},{"type":"error","name":"InvalidInitialization","inputs":[]},{"type":"error","name":"NoBurner","inputs":[]},{"type":"error","name":"NotInitialized","inputs":[]},{"type":"error","name":"NotInitializing","inputs":[]},{"type":"error","name":"NotNetworkMiddleware","inputs":[]},{"type":"error","name":"NotVault","inputs":[]},{"type":"error","name":"ReentrancyGuardReentrantCall","inputs":[]},{"type":"error","name":"SafeCastOverflowedUintDowncast","inputs":[{"name":"bits","type":"uint8","internalType":"uint8"},{"name":"value","type":"uint256","internalType":"uint256"}]}],"bytecode":{"object":"0x610180346101e757601f6173b838819003918201601f19168301926001600160401b03929091838511838610176101825781602092849260409788528339810103126101e75751906001600160a01b039081831683036101e757306080527ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805460ff81871c166101d65780838080931603610196575b5050505f60a0525f60c0525f60e052610100935f8552610120938452805161209f8082019082821085831117610182576020918391611b9d83393081520301905ff091821561017857836101409316835281519061377c8083019183831090831117610182576020918391613c3c83393081520301905ff0928315610178576101609316835251926119b194856101ec8639608051856105fa015260a051856102cb015260c05185610909015260e0518581816101690152610e840152518461028701525183818161069b0152610c2f0152518261055c015251816105a00152f35b50513d5f823e3d90fd5b634e487b7160e01b5f52604160045260245ffd5b6001600160401b03191617905583518181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a15f8181610096565b855163f92ee8a960e01b8152600490fd5b5f80fdfe60806040526004361015610011575f80fd5b5f3560e01c8063103f2907146101545780631a2be2c41461014f578063267de1f31461014a5780632964f8dc146101455780632c9d45b3146101405780632dd310001461013b57806334d098ea14610136578063439fab91146101315780634a7196551461012c5780634ea2e926146101275780634eb5a242146101225780636565b7db1461011d578063770280461461011857806379d89614146101135780639f86fd851461010e578063aa8e648914610109578063aab3595f14610104578063bb24fe8a146100ff578063d5c24e1a146100fa5763fbfa77cf146100f5575f80fd5b61094a565b61092d565b6108ea565b6108c5565b610887565b6106ca565b610686565b6105cf565b61058b565b610547565b61052a565b6104f5565b61034b565b6102fa565b6102b6565b610272565b610256565b610201565b6101ad565b34610198575f366003190112610198576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b5f80fd5b6001600160a01b0381160361019857565b346101985760403660031901126101985760206101f96101f46024356101d28161019c565b6004355f526002845260405f209060018060a01b03165f5260205260405f2090565b610daa565b604051908152f35b3461019857604036600319011261019857602065ffffffffffff61024c60243561022a8161019c565b6004355f526001845260405f209060018060a01b03165f5260205260405f2090565b5416604051908152f35b34610198575f366003190112610198576020604051614e208152f35b34610198575f366003190112610198576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b34610198575f366003190112610198576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b34610198575f36600319011261019857602060ff5f5460a01c166040519015158152f35b9181601f84011215610198578235916001600160401b038311610198576020838186019501011161019857565b34610198576020366003190112610198576001600160401b036004358181116101985761037c90369060040161031e565b5f8051602061195c833981519152549260ff8460401c1615931680159081610480575b6001149081610476575b15908161046d575b5061045b575f8051602061195c833981519152805467ffffffffffffffff191660011790556103e4918361043257610e4c565b6103ea57005b5f8051602061195c833981519152805460ff60401b19169055604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a1005b5f8051602061195c833981519152805460ff60401b191668010000000000000000179055610e4c565b60405163f92ee8a960e01b8152600490fd5b9050155f6103b1565b303b1591506103a9565b84915061039f565b65ffffffffffff81160361019857565b6080906003190112610198576004356104b08161019c565b90602435906044356104c18161019c565b906064356104ce81610488565b90565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b346101985761052661051261050936610498565b929190916109b0565b6040519182916020835260208301906104d1565b0390f35b346101985761052661051261053e36610498565b92919091610b7b565b34610198575f366003190112610198576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b34610198575f366003190112610198576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b34610198576060366003190112610198576024356105ec8161019c565b6044356105f881610488565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316330361067457610652610657926004355f52600260205260405f209060018060a01b03165f5260205260405f2090565b61104a565b60408051941515855263ffffffff91909116602085015292915050f35b604051637ca475e560e11b8152600490fd5b34610198575f366003190112610198576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b34610198576040366003190112610198576004356106e78161019c565b6024356001600160401b038111610198575f916107098392369060040161031e565b90816040519283928337810184815203915af4610756610727610d26565b916107486040519384921515602084015260408084015260608301906104d1565b03601f1981018352826107ad565b805190602001fd5b634e487b7160e01b5f52604160045260245ffd5b604081019081106001600160401b0382111761078d57604052565b61075e565b60a081019081106001600160401b0382111761078d57604052565b90601f801991011681019081106001600160401b0382111761078d57604052565b604051906107db82610772565b565b6001600160401b03811161078d57601f01601f191660200190565b81601f820112156101985780359061080f826107dd565b9261081d60405194856107ad565b8284526020838301011161019857815f926020809301838601378301015290565b906080600319830112610198576004359160243561085b8161019c565b9160443561086881610488565b91606435906001600160401b038211610198576104ce916004016107f8565b346101985760206101f96108c061089d3661083e565b939190925f526002865260405f209060018060a01b03165f5260205260405f2090565b611178565b346101985760206108e16108d83661083e565b92919091611347565b50604051908152f35b34610198575f3660031901126101985760206040516001600160401b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b34610198575f366003190112610198576020604051620249f08152f35b34610198575f366003190112610198575f546040516001600160a01b039091168152602090f35b5190811515820361019857565b519063ffffffff8216820361019857565b9190826040910312610198576104ce60206109a984610971565b930161097e565b5f809195949593929365ffffffffffff60609760405195602097633b81402360e11b89890152602488015260018060a01b03166044870152166064850152606484526109fb84610792565b6040519384610a2887820192639f86fd8560e01b84523060248401526040604484015260648301906104d1565b0394610a3c601f19968781018352826107ad565b51915afa50610a5a610a4c610d26565b838082518301019101610fb5565b9015610aad57808380610a729351830101910161098f565b9290610a7d57505050565b6104ce92939450610aa1604051948592830191909163ffffffff6020820193169052565b039081018352826107ad565b809150519182156101985701fd5b9081602091031261019857516104ce8161019c565b6040513d5f823e3d90fd5b81601f8201121561019857805190610af2826107dd565b92610b0060405194856107ad565b8284526020838301011161019857815f9260208093018386015e8301015290565b906020828203126101985781516001600160401b038111610198576104ce9201610adb565b906104ce91602081526020610b66835160408385015260608401906104d1565b920151906040601f19828503019101526104d1565b60405163fbfa77cf60e01b815260609594919391926020926001600160a01b03929091908481600481878b165afa908115610cd757849186915f91610d09575b50600460405180948193630ce9b79360e41b8352165afa8015610cd75786948385925f948591610cdc575b506040516304bb92e160e31b81526001600160a01b039182166004820152602481019290925292909216604483015265ffffffffffff97909716606482015295869060849082907f0000000000000000000000000000000000000000000000000000000000000000165afa948515610cd7575f95610caf575b50610c6b9394956109b0565b825115801590610ca5575b610c7f57505050565b6104ce92939450610c8e6107ce565b938452818401526107486040519384928301610b46565b5080511515610c76565b610c6b949550610cd0903d805f833e610cc881836107ad565b810190610b21565b9493610c5f565b610ad0565b610cfc9150893d8b11610d02575b610cf481836107ad565b810190610abb565b5f610be6565b503d610cea565b610d209150823d8411610d0257610cf481836107ad565b5f610bbb565b3d15610d50573d90610d37826107dd565b91610d4560405193846107ad565b82523d5f602084013e565b606090565b5f9081526002602090815260408083206001600160a01b039094168352929052206104ce929190611178565b8054821015610d96575f5260205f2001905f90565b634e487b7160e01b5f52603260045260245ffd5b805480610ddf57505f5b6001600160d01b03811615610dd9576001610dcf9201610d81565b90549060031b1c90565b50505f90565b5f19908082810111610dfd57825f5260205f2001015460301c610db4565b610fe9565b919091604081840312610198578035610e1a8161019c565b9260208201356001600160401b038111610198576104ce92016107f8565b90816020910312610198576104ce90610971565b610e5891810190610e02565b506040516302910f8b60e31b81526001600160a01b0391821660048201819052919060209081816024817f000000000000000000000000000000000000000000000000000000000000000087165afa908115610cd7575f91610f88575b5015610f7657610ec361159b565b5f80546001600160a01b0319166001600160a01b038516179055600481610ee86115d1565b94604051928380926313c085b760e11b82525afa918215610cd7575f92610f59575b5050161580610f4f575b610f3d57516107db9015155f805460ff60a01b191691151560a01b60ff60a01b16919091179055565b60405163d2420f5960e01b8152600490fd5b5080511515610f14565b610f6f9250803d10610d0257610cf481836107ad565b5f80610f0a565b6040516362df054560e01b8152600490fd5b610fa89150823d8411610fae575b610fa081836107ad565b810190610e38565b5f610eb5565b503d610f96565b91909160408184031261019857610fcb81610971565b9260208201516001600160401b038111610198576104ce9201610adb565b634e487b7160e01b5f52601160045260245ffd5b5f19810191908211610dfd57565b91908203918211610dfd57565b9060018201809211610dfd57565b9060405161103381610772565b915465ffffffffffff8116835260301c6020830152565b91908254905f8291600584116110e8575b61106693508561174f565b9081156110dc576110d56110cc6110c6610dcf61109861109361108888610ffd565b895f5260205f200190565b611026565b9660016110bf60206110b08b5165ffffffffffff1690565b9a01516001600160d01b031690565b9101610d81565b93610ffd565b63ffffffff1690565b6001939291565b5f925082915081908190565b91926110f381611611565b8103908111610dfd5761106693865f5261112761111c8360205f200165ffffffffffff90541690565b65ffffffffffff1690565b65ffffffffffff8516101561113d57509161105b565b92915061114990611018565b9061105b565b90816020910312610198576104ce9061097e565b90600163ffffffff80931601918211610dfd57565b9180511561124657806020806111939351830101910161114f565b9161119e8382611881565b926111af845165ffffffffffff1690565b9065ffffffffffff808516921682811461123a57821191826111e5575b50506111dc576104ce92506117b1565b50506020015190565b9091506111f28354610ffd565b63ffffffff83161491821561120b575b50505f806111cc565b61123291925061122661122061111c92611163565b85611881565b5165ffffffffffff1690565b115f80611202565b50505050506020015190565b506104ce916117b1565b6040519061125d82610772565b60606020838281520152565b906020828203126101985781516001600160401b0392838211610198570190604082820312610198576040519261129f84610772565b825181811161019857826112b4918501610adb565b84526020830151908111610198576112cc9201610adb565b602082015290565b9081602091031261019857516104ce81610488565b65ffffffffffff9182169082160391908211610dfd57565b90816020910312610198575190565b9081526001600160a01b03909116602082015265ffffffffffff90911660408201526080606082018190526104ce929101906104d1565b92611350611250565b90805180611581575b505061136442611929565b5f549094906113899061137d906001600160a01b031681565b6001600160a01b031690565b93604051956327f843b560e11b875260209687816004818a5afa8015610cd7576113be9261111c925f92611552575b506112e9565b65ffffffffffff821690811090811561153b575b811561150a575b506114fe578560049560405196878092630ce9b79360e41b82525afa948515610cd75761142b9587915f916114e1575b50845190604051808099819463e02f693760e01b8352878b8a60048601611310565b03916001600160a01b03165afa938415610cd75761149d955f956114a0575b509261149285936114989361149296869a6114896101f483611474875f52600260205260405f2090565b9060018060a01b03165f5260205260405f2090565b95015192610d55565b9061100b565b6118e9565b91565b6114989295506114929491936114ce611492928a3d8c116114da575b6114c681836107ad565b810190611301565b9693509391945061144a565b503d6114bc565b6114f89150823d8411610d0257610cf481836107ad565b5f611409565b5050505050505f905f90565b905061153461111c61152887611474875f52600160205260405f2090565b5465ffffffffffff1690565b115f6113d9565b905061154961111c42611929565b811015906113d2565b6115739192508a3d8c1161157a575b61156b81836107ad565b8101906112d4565b905f6113b8565b503d611561565b6115949250602080918301019101611269565b5f80611359565b6115a36118fb565b6115ab6118fb565b60017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055565b60405190602082018281106001600160401b0382111761078d576040525f8252565b81156115fd570490565b634e487b7160e01b5f52601260045260245ffd5b801561174a57806116e36116dc6116d26116c86116be6116b46116aa6116a060016104ce9a5f908b60801c8061173e575b508060401c80611731575b508060201c80611724575b508060101c80611717575b508060081c8061170a575b508060041c806116fd575b508060021c806116f0575b50821c6116e9575b811c1b611699818b6115f3565b0160011c90565b611699818a6115f3565b61169981896115f3565b61169981886115f3565b61169981876115f3565b61169981866115f3565b61169981856115f3565b80926115f3565b906118e9565b810161168c565b600291509101905f611684565b600491509101905f611679565b600891509101905f61166e565b601091509101905f611663565b602091509101905f611658565b604091509101905f61164d565b9150506080905f611642565b505f90565b91905b83821061175f5750505090565b909192808316906001818518811c8301809311610dfd57855f5265ffffffffffff808460205f20015416908516105f1461179e575050925b9190611752565b909493508101809111610dfd5791611797565b908154905f82916005841161181b575b6117cc93508461174f565b806117f457505f905b6001600160d01b03821615610dd9576104ce916001610dcf9201610d81565b61180e61180361181592610ffd565b835f5260205f200190565b5460301c90565b906117d5565b919261182681611611565b8103908111610dfd576117cc93855f5265ffffffffffff808360205f20015416908516105f146118575750916117c1565b92915061186390611018565b906117c1565b6040519061187682610772565b5f6020838281520152565b906118aa6118a46118cb92611894611869565b5061189d611869565b5084610d81565b50611026565b91600165ffffffffffff845116936020828060d01b03910151169101610d81565b905490604051926118db84610772565b835260031b1c602082015290565b90808210156118f6575090565b905090565b60ff5f8051602061195c8339815191525460401c161561191757565b604051631afcd79f60e31b8152600490fd5b65ffffffffffff9081811161193c571690565b604490604051906306dfcc6560e41b8252603060048301526024820152fdfef0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a2646970667358221220a5c4c6cf32000ec7f5b68bf93648e06f278425e283bf4d4339caa0e7d8693e5f64736f6c634300081900336101403461015d576001600160401b0390601f61209f38819003918201601f1916830191848311848410176101615780849260209460405283398101031261015d5751906001600160a01b038216820361015d57306080527ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a009081549060ff8260401c1661014b578080831603610106575b835f60a0525f60c0525f60e052610100905f825261012090815260405190611f299283610176843960805183505060a051836104f2015260c0518381816109490152611379015260e05183818161031d01526116a901525182818161021c01526104ae0152518181816106920152610d330152f35b6001600160401b031990911681179091556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a15f8080610091565b60405163f92ee8a960e01b8152600490fd5b5f80fd5b634e487b7160e01b5f52604160045260245ffdfe60806040526004361015610011575f80fd5b5f3560e01c8063021a815614610124578063103f29071461011f5780631a2be2c41461011a578063238ab85f14610115578063267de1f3146101105780632964f8dc1461010b5780632c9d45b3146101065780632dd310001461010157806334d098ea146100fc578063439fab91146100f7578063457821b7146100f25780639f86fd85146100ed578063aa8e6489146100e8578063aab3595f146100e3578063bb24fe8a146100de578063d5c24e1a146100d95763fbfa77cf146100d4575f80fd5b61098a565b61096d565b61092a565b610905565b6108c7565b6106c1565b61067d565b610545565b610521565b6104dd565b610499565b61047d565b610428565b6103c4565b61034c565b610308565b61017b565b6001600160a01b0381160361013a57565b5f80fd5b65ffffffffffff81160361013a57565b9181601f8401121561013a578235916001600160401b03831161013a576020838186019501011161013a57565b3461013a5760a036600319011261013a5760043560243561019b81610129565b6064356101a78161013e565b6084356001600160401b03811161013a576101c690369060040161014e565b917f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0060028154146102ec5760029055604051635daf681960e11b8152606086901c60048201526001600160a01b036020826024817f000000000000000000000000000000000000000000000000000000000000000085165afa9182156102e7575f926102b6575b50339116036102a4576102a0946102679460443591610a63565b61029060017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055565b6040519081529081906020820190565b0390f35b60405163227bf64d60e01b8152600490fd5b6102d991925060203d6020116102e0575b6102d181836107dd565b810190610ddf565b905f61024d565b503d6102c7565b610a27565b604051633ee5aeb560e01b8152600490fd5b5f91031261013a57565b3461013a575f36600319011261013a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461013a57604036600319011261013a57602061039861039360243561037181610129565b6004355f526002845260405f209060018060a01b03165f5260205260405f2090565b6115c8565b604051908152f35b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b3461013a5760c036600319011261013a576102a06104146004356103e781610129565b6103f2602435610129565b6064356103fe81610129565b60a4359161040b8361013e565b60443590610ce7565b6040519182916020835260208301906103a0565b3461013a57604036600319011261013a57602065ffffffffffff61047360243561045181610129565b6004355f526001845260405f209060018060a01b03165f5260205260405f2090565b5416604051908152f35b3461013a575f36600319011261013a576020604051614e208152f35b3461013a575f36600319011261013a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461013a575f36600319011261013a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461013a575f36600319011261013a57602060ff5f5460a01c166040519015158152f35b3461013a57602036600319011261013a576001600160401b0360043581811161013a5761057690369060040161014e565b5f80516020611ed4833981519152549260ff8460401c1615931680159081610675575b600114908161066b575b159081610662575b50610650575f80516020611ed4833981519152805467ffffffffffffffff191660011790556105de918361062c57611672565b6105e457005b5f80516020611ed4833981519152805460ff60401b19169055604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a1005b5f80516020611ed4833981519152805460ff60401b1916600160401b179055611672565b60405163f92ee8a960e01b8152600490fd5b9050155f6105ab565b303b1591506105a3565b849150610599565b3461013a575f36600319011261013a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461013a5760408060031936011261013a576004356106df81610129565b602435906001600160401b03821161013a575f809161070561076994369060040161014e565b908187519283928337810184815203915af43d156107715761075b3d61072a8161081a565b90610737865192836107dd565b81523d5f602083013e5b8451948593151560208501528084015260608301906103a0565b03601f1981018352826107dd565b805190602001fd5b61075b6060610741565b634e487b7160e01b5f52604160045260245ffd5b602081019081106001600160401b038211176107aa57604052565b61077b565b604081019081106001600160401b038211176107aa57604052565b6001600160401b0381116107aa57604052565b90601f801991011681019081106001600160401b038211176107aa57604052565b6040519061080b826107af565b565b6040519061080b8261078f565b6001600160401b0381116107aa57601f01601f191660200190565b81601f8201121561013a5780359061084c8261081a565b9261085a60405194856107dd565b8284526020838301011161013a57815f926020809301838601378301015290565b90608060031983011261013a576004359160243561089881610129565b916044356108a58161013e565b91606435906001600160401b03821161013a576108c491600401610835565b90565b3461013a5760206103986109006108dd3661087b565b939190925f526002865260405f209060018060a01b03165f5260205260405f2090565b61180c565b3461013a5760206109216109183661087b565b92919091610ed9565b50604051908152f35b3461013a575f36600319011261013a5760206040516001600160401b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461013a575f36600319011261013a576020604051620249f08152f35b3461013a575f36600319011261013a575f546040516001600160a01b039091168152602090f35b604051906109be8261078f565b60608252565b9060208282031261013a5781356001600160401b039283821161013a57019060208282031261013a57604051926109fa8461078f565b823590811161013a57610a0d9201610835565b815290565b9081602091031261013a57516108c48161013e565b6040513d5f823e3d90fd5b634e487b7160e01b5f52601160045260245ffd5b65ffffffffffff9182169082160391908211610a5e57565b610a32565b92939594919095610a726109b1565b9280610c4d575b5050610a84426118e4565b5f54600490602090610aac90610aa0906001600160a01b031681565b6001600160a01b031690565b6040516327f843b560e11b815292839182905afa80156102e757610ae692610adb925f92610c1c575b50610a46565b65ffffffffffff1690565b65ffffffffffff8516908110908115610c06575b50610bf457610b0f610b189251858886610ed9565b92908092611109565b958615610be257610b9d61075b610b94610bdd947fe0cbbe1f1e6fd806ca87036fafcebaf7ab5247474a3b20e1c37bb50122c3a88496610b598a878b61111b565b610b648c878b6111a9565b610b6c6107fe565b9182526020820152604051928391602083019190916020806040830194805184520151910152565b86898488611315565b610ba7858861141e565b610bb3858883876114a3565b6040805188815265ffffffffffff90961660208701526001600160a01b0390911694918291820190565b0390a3565b60405163167f871760e31b8152600490fd5b604051631357ac9160e11b8152600490fd5b9050610c14610adb426118e4565b11155f610afa565b610c3f91925060203d602011610c46575b610c3781836107dd565b810190610a12565b905f610ad5565b503d610c2d565b610c5b9293508101906109c4565b905f80610a79565b81601f8201121561013a57805190610c7a8261081a565b92610c8860405194856107dd565b8284526020838301011161013a57815f9260208093018386015e8301015290565b9060208282031261013a5781516001600160401b03811161013a576108c49201610c63565b60406108c49260208352519160208082015201906103a0565b604051632751749360e11b81526001600160a01b0391821660048201526024810192909252918216604482015265ffffffffffff909216606483015260609291905f90829060849082907f0000000000000000000000000000000000000000000000000000000000000000165afa9081156102e7575f91610d91575b508051610d6d5750565b61075b9192506108c490610d7f61080d565b90815260405192839160208301610cce565b610dad91503d805f833e610da581836107dd565b810190610ca9565b5f610d63565b5f9081526002602090815260408083206001600160a01b039094168352929052206108c492919061180c565b9081602091031261013a57516108c481610129565b60405190610e01826107af565b60606020838281520152565b9060208282031261013a5781516001600160401b039283821161013a57019060408282031261013a5760405192610e43846107af565b825181811161013a5782610e58918501610c63565b8452602083015190811161013a57610e709201610c63565b602082015290565b9081602091031261013a575190565b9081526001600160a01b03909116602082015265ffffffffffff90911660408201526080606082018190526108c4929101906103a0565b5f19810191908211610a5e57565b91908203918211610a5e57565b92610ee2610df4565b908051806110ef575b5050610ef6426118e4565b5f54909490610f0f90610aa0906001600160a01b031681565b93604051956327f843b560e11b875260209687816004818a5afa80156102e757610f4392610adb925f926110d75750610a46565b65ffffffffffff82169081109081156110c0575b811561108f575b50611083578560049560405196878092630ce9b79360e41b82525afa9485156102e757610fb09587915f91611066575b50845190604051808099819463e02f693760e01b8352878b8a60048601610e87565b03916001600160a01b03165afa9384156102e757611022955f95611025575b5092611017859361101d9361101796869a61100e61039383610ff9875f52600260205260405f2090565b9060018060a01b03165f5260205260405f2090565b95015192610db3565b90610ecc565b611109565b91565b61101d929550611017949193611053611017928a3d8c1161105f575b61104b81836107dd565b810190610e78565b96935093919450610fcf565b503d611041565b61107d9150823d84116102e0576102d181836107dd565b5f610f8e565b5050505050505f905f90565b90506110b9610adb6110ad87610ff9875f52600160205260405f2090565b5465ffffffffffff1690565b115f610f5e565b90506110ce610adb426118e4565b81101590610f57565b610c3f9192508a3d8c11610c4657610c3781836107dd565b6111029250602080918301019101610e0d565b5f80610eeb565b9080821015611116575090565b905090565b919091805f52600160205265ffffffffffff8061114b8560405f209060018060a01b03165f5260205260405f2090565b54169083161161115a57505050565b61080b92611182915f52600160205260405f209060018060a01b03165f5260205260405f2090565b9065ffffffffffff1665ffffffffffff19825416179055565b9060018201809211610a5e57565b9190825f5260026020526112016103936111d68360405f209060018060a01b03165f5260205260405f2090565b926111e0426118e4565b955f52600260205260405f209060018060a01b03165f5260205260405f2090565b918201809211610a5e5760018101908154156112a5575b61122181611b40565b509490835495611230846115c8565b5081611290575b501561126f5750505f198301928311610a5e5761080b926112579161159f565b90919082549060031b91821b915f19901b1916179055565b61080b94611289926001600160d01b039091169190611c17565b5050611943565b65ffffffffffff83811691161490505f611237565b6112ae82611916565b611218565b606060206108c4938184526001600160401b038151168285015201519160408082015201906103a0565b919360a0936108c4969565ffffffffffff938552600180871b03166020850152604084015216606082015281608082015201906103a0565b92939060046020611332610aa0610aa05f5460018060a01b031690565b604051630ce9b79360e41b815292839182905afa9081156102e75761075b916113b0915f916113ff575b506001600160a01b03169361136f6107fe565b6001600160401b037f0000000000000000000000000000000000000000000000000000000000000000168152906020820152604051928391602083016112b3565b823b1561013a575f946113db86926040519889978896879563724ab0f760e11b8752600487016112dd565b03925af180156102e7576113ec5750565b806113f961080b926107ca565b806102fe565b611418915060203d6020116102e0576102d181836107dd565b5f61135c565b5f8054604051631c9e38c760e21b8152600481019390935265ffffffffffff9390931660248301529091602091839160449183916001600160a01b03165af180156102e75761146a5750565b6114829060203d60201161105f5761104b81836107dd565b50565b811561148f570490565b634e487b7160e01b5f52601260045260245ffd5b92905f549060ff8260a01c166114bb575b5050505050565b6040516313c085b760e11b815291602090839060049082906001600160a01b03165afa9182156102e7575f92611578575b5060405163065c1e0360e01b6020820190815260248201969096526001600160a01b039091166044820152606481019390935265ffffffffffff90911660848301526115458260a481015b03601f1981018452836107dd565b6202a15c5a10611566575f928380935192620249f0f1505f808080806114b4565b604051632153f33560e21b8152600490fd5b61154592506115986115379160203d6020116102e0576102d181836107dd565b92506114ec565b80548210156115b4575f5260205f2001905f90565b634e487b7160e01b5f52603260045260245ffd5b8054806115fd57505f5b6001600160d01b038116156115f75760016115ed920161159f565b90549060031b1c90565b50505f90565b5f19908082810111610a5e57825f5260205f2001015460301c6115d2565b91909160408184031261013a57803561163381610129565b9260208201356001600160401b03811161013a576108c49201610835565b5190811515820361013a57565b9081602091031261013a576108c490611651565b61167e9181019061161b565b6040516302910f8b60e31b81526001600160a01b0392831660048201819052929160209182816024817f000000000000000000000000000000000000000000000000000000000000000088165afa9081156102e7575f916117ae575b501561179c578161170e6004926116ef611966565b5f80546001600160a01b0319166001600160a01b03891617905561199c565b94604051928380926313c085b760e11b82525afa9182156102e7575f9261177f575b5050161580611775575b611763575161080b9015155f805460ff60a01b191691151560a01b60ff60a01b16919091179055565b60405163d2420f5960e01b8152600490fd5b508051151561173a565b6117959250803d106102e0576102d181836107dd565b5f80611730565b6040516362df054560e01b8152600490fd5b6117ce9150833d85116117d4575b6117c681836107dd565b81019061165e565b5f6116da565b503d6117bc565b9081602091031261013a575163ffffffff8116810361013a5790565b90600163ffffffff80931601918211610a5e57565b918051156118da5780602080611827935183010191016117db565b916118328382611ab4565b92611843845165ffffffffffff1690565b9065ffffffffffff80851692168281146118ce5782119182611879575b5050611870576108c492506119e4565b50506020015190565b9091506118868354610ebe565b63ffffffff83161491821561189f575b50505f80611860565b6118c69192506118ba6118b4610adb926117f7565b85611ab4565b5165ffffffffffff1690565b115f80611896565b50505050506020015190565b506108c4916119e4565b65ffffffffffff908181116118f7571690565b604490604051906306dfcc6560e41b8252603060048301526024820152fd5b8054600160401b8110156107aa576119339160018201815561159f565b8154905f199060031b1b19169055565b90815491600160401b8310156107aa578261125791600161080b9501815561159f565b61196e611b8f565b611976611b8f565b60017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055565b5f6040516119a98161078f565b5260208180518101031261013a576020906040516119c68161078f565b6119de6040519384936119d88561078f565b01611651565b82525290565b908154905f829160058411611a4e575b6119ff935084611e74565b80611a2757505f905b6001600160d01b038216156115f7576108c49160016115ed920161159f565b611a41611a36611a4892610ebe565b835f5260205f200190565b5460301c90565b90611a08565b9192611a5981611d36565b8103908111610a5e576119ff93855f5265ffffffffffff808360205f20015416908516105f14611a8a5750916119f4565b929150611a969061119b565b906119f4565b60405190611aa9826107af565b5f6020838281520152565b90611add611ad7611afe92611ac7611a9c565b50611ad0611a9c565b508461159f565b50611b1c565b91600165ffffffffffff845116936020828060d01b0391015116910161159f565b90549060405192611b0e846107af565b835260031b1c602082015290565b90604051611b29816107af565b915465ffffffffffff8116835260301c6020830152565b805480611b515750505f905f905f90565b5f19908082810111610a5e57611b6e925f5260205f200101611b1c565b9065ffffffffffff82511691602060018060d01b0391015116906001929190565b60ff5f80516020611ed48339815191525460401c1615611bab57565b604051631afcd79f60e31b8152600490fd5b8054600160401b8110156107aa57611bda9160018201815561159f565b611c0457815160209092015160301b65ffffffffffff191665ffffffffffff909216919091179055565b634e487b7160e01b5f525f60045260245ffd5b805492939291908215611d0d57611c38611c33611a3685610ebe565b611b1c565b90611c49825165ffffffffffff1690565b65ffffffffffff84811691168110611cfb57611cbf946020948892611c77610adb875165ffffffffffff1690565b03611cc35750611cb192611c8d611c9892610ebe565b905f5260205f200190565b9065ffffffffffff82549181199060301b169116179055565b01516001600160d01b031690565b9190565b915050611cf691611ce3611cd56107fe565b65ffffffffffff9093168352565b6001600160d01b03881682860152611bbd565b611cb1565b604051632520601d60e01b8152600490fd5b611d319250611d1d611cd56107fe565b6001600160d01b0385166020830152611bbd565b5f9190565b8015611e6f5780611e08611e01611df7611ded611de3611dd9611dcf611dc560016108c49a5f908b60801c80611e63575b508060401c80611e56575b508060201c80611e49575b508060101c80611e3c575b508060081c80611e2f575b508060041c80611e22575b508060021c80611e15575b50821c611e0e575b811c1b611dbe818b611485565b0160011c90565b611dbe818a611485565b611dbe8189611485565b611dbe8188611485565b611dbe8187611485565b611dbe8186611485565b611dbe8185611485565b8092611485565b90611109565b8101611db1565b600291509101905f611da9565b600491509101905f611d9e565b600891509101905f611d93565b601091509101905f611d88565b602091509101905f611d7d565b604091509101905f611d72565b9150506080905f611d67565b505f90565b91905b838210611e845750505090565b9091928083169080841860011c8201809211610a5e57845f5265ffffffffffff808360205f20015416908416105f14611ec15750925b9190611e77565b939250611ecd9061119b565b91611eba56fef0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a2646970667358221220261f69963924e5ee7c5ac4782d04417e658bb4ddd05ada87235908dd0839073964736f6c634300081900336101603461017c576001600160401b0390601f61377c38819003918201601f1916830191848311848410176101805780849260209460405283398101031261017c5751906001600160a01b038216820361017c57306080527ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a009081549060ff8260401c1661016a578080831603610125575b835f60a0525f60c0525f60e052610100905f8252610120905f8252610140908152604051916135e79384610195853960805184610b66015260a0518461047b015260c0518481816115860152612c5a015260e0518481816102e801526122ba0152518381816104370152612444015251828181610c7801526115dc015251818181610806015281816119140152611d090152f35b6001600160401b031990911681179091556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a15f8080610091565b60405163f92ee8a960e01b8152600490fd5b5f80fd5b634e487b7160e01b5f52604160045260245ffdfe60806040526004361015610011575f80fd5b5f3560e01c80622a087514610213578063103f29071461020e5780631a2be2c4146102095780631dd5f60014610204578063267de1f3146101ff5780632964f8dc146101fa5780632c9d45b3146101f55780632dd31000146101f057806331ce4dfe146101eb57806334d098ea146101e6578063439fab91146101e1578063457821b7146101dc5780635264679b146101d7578063545ce389146101d257806369f78920146101cd5780638f42f9ab146101c85780638f82f931146101c35780639168f9d2146101be5780639a896551146101b95780639f86fd85146101b4578063a4ef9b4f146101af578063aa8e6489146101aa578063aab3595f146101a5578063b94c386e146101a0578063bb24fe8a1461019b578063bc6eac5b14610196578063c0cd7c3e14610191578063cd05b8a11461018c578063d5c24e1a14610187578063e054e08b14610182578063f9268d181461017d5763fbfa77cf14610178575f80fd5b611813565b6116a5565b611680565b611663565b61160b565b6115c7565b6115aa565b611567565b61121b565b6111c3565b611185565b611122565b61108e565b611003565b610bd8565b610b47565b610b2a565b610ae5565b61084f565b610835565b6107f1565b6106b9565b610668565b6105ff565b610466565b610422565b610406565b6103b1565b610397565b610317565b6102d3565b610261565b6001600160a01b0381160361022957565b5f80fd5b65ffffffffffff81160361022957565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b346102295760c0366003190112610229576102c56102b160043561028481610218565b61028f602435610218565b60643561029b81610218565b60a435916102a88361022d565b604435906118c9565b60405191829160208352602083019061023d565b0390f35b5f91031261022957565b34610229575f366003190112610229576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461022957604036600319011261022957602061036361035e60243561033c81610218565b6004355f526002845260405f209060018060a01b03165f5260205260405f2090565b6120d2565b604051908152f35b60609060031901126102295760043561038381610218565b90602435906044356103948161022d565b90565b34610229576102c56102b16103ab3661036b565b916119a0565b3461022957604036600319011261022957602065ffffffffffff6103fc6024356103da81610218565b6004355f526001845260405f209060018060a01b03165f5260205260405f2090565b5416604051908152f35b34610229575f366003190112610229576020604051614e208152f35b34610229575f366003190112610229576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b34610229575f366003190112610229576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b634e487b7160e01b5f52604160045260245ffd5b602081019081106001600160401b038211176104d957604052565b6104aa565b604081019081106001600160401b038211176104d957604052565b606081019081106001600160401b038211176104d957604052565b6001600160401b0381116104d957604052565b608081019081106001600160401b038211176104d957604052565b90601f801991011681019081106001600160401b038211176104d957604052565b6040519060c082018281106001600160401b038211176104d957604052565b6040519061058f826104f9565b565b6040519061058f826104de565b6001600160401b0381116104d957601f01601f191660200190565b81601f82011215610229578035906105d08261059e565b926105de6040519485610542565b8284526020838301011161022957815f926020809301838601378301015290565b346102295760603660031901126102295760243561061c8161022d565b604435906001600160401b0382116102295761065f61064160209336906004016105b9565b6004355f90815260068552604090206001600160a01b03939061214a565b16604051908152f35b34610229575f36600319011261022957602060ff5f5460a01c166040519015158152f35b9181601f84011215610229578235916001600160401b038311610229576020838186019501011161022957565b34610229576020366003190112610229576001600160401b03600435818111610229576106ea90369060040161068c565b5f80516020613592833981519152549260ff8460401c16159316801590816107e9575b60011490816107df575b1590816107d6575b506107c4575f80516020613592833981519152805467ffffffffffffffff1916600117905561075291836107a057612283565b61075857005b5f80516020613592833981519152805460ff60401b19169055604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a1005b5f80516020613592833981519152805460ff60401b1916600160401b179055612283565b60405163f92ee8a960e01b8152600490fd5b9050155f61071f565b303b159150610717565b84915061070d565b34610229575f366003190112610229576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b34610229576102c56102b16108493661036b565b91611a24565b346102295760a0366003190112610229576004602435813561087082610218565b6064359161087d8361022d565b6084356001600160401b0381116102295761089b903690860161068c565b93906108a56123ed565b6108ae8461241c565b6108b6611ab6565b9480610acf575b50506108c8426125ff565b6108e26108db875465ffffffffffff1690565b8092611b17565b5f54909590610907906108fb906001600160a01b031681565b6001600160a01b031690565b958760206040988951928380926327f843b560e11b82525afa8015610aca576109469261093b925f92610a99575b50611a0c565b65ffffffffffff1690565b65ffffffffffff8416908110908115610a83575b50610a735761096f61097891518486886127da565b506044356124b3565b958615610a65576102c5610a3e878988887f3cb7f4ff6cecf74cee0eb9ae3ebf8933fa60a53014cce52f96da72a78dba8464896109bd8a6109b8426125ff565b611b17565b92600354978894610a0e6109cf610563565b8881526001600160a01b0385166020820152808b018a905265ffffffffffff8616606082015265ffffffffffff831660808201525f60a0820152611b59565b885197885265ffffffffffff938416602089015290921660408701526001600160a01b0316949081906060820190565b0390a4610a5760015f8051602061357283398151915255565b519081529081906020820190565b855163167f871760e31b8152fd5b8551631357ac9160e11b81528790fd5b9050610a9161093b426125ff565b11155f61095a565b610abc91925060203d602011610ac3575b610ab48183610542565b810190611b31565b905f610935565b503d610aaa565b6118a5565b610add929550810190611ac9565b925f806108bd565b34610229576080366003190112610229576102c56102b1600435610b0881610218565b604435610b1481610218565b60643591610b218361022d565b60243590611c8f565b34610229575f366003190112610229576020600354604051908152f35b3461022957604036600319011261022957602435610b648161022d565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163303610bc65763ffffffff610bb16040926004355f526006602052835f206124e9565b91505083929192519215158352166020820152f35b604051637ca475e560e11b8152600490fd5b346102295760603660031901126102295760048035906bffffffffffffffffffffffff8216820361022957602435610c0f81610218565b6044356001600160401b03811161022957610c2d903690840161068c565b90610c366123ed565b610c3e611ab6565b5081610f9e575b5050604080516302910f8b60e31b8152338185019081526001600160a01b0395929491602091829082908190830103818a7f0000000000000000000000000000000000000000000000000000000000000000165afa908115610aca575f91610f71575b5015610f62575f54610ce3906001600160a01b0316936bffffffffffffffffffffffff166bffffffffffffffffffffffff193360601b161790565b95610cfe610cf9885f52600660205260405f2090565b61323a565b50949015610ef857610d1261093b426125ff565b65ffffffffffff9586161115610ec257610d3c610d37895f52600660205260405f2090565b6125c0565b505b610d616108fb6108fb6108fb610d5c8c5f52600660205260405f2090565b612e78565b91808716928303610dcd575b505050505050610db2907f7b0b759b513b299fd2811f51926dca8854222a675557e8d544ce0933bf5b7570925b516001600160a01b0390911681529081906020820190565b0390a2610dcb60015f8051602061357283398151915255565b005b610de48998959796985f52600660205260405f2090565b911692845163186a323160e21b815281818981885afa908115610aca575f91610ea5575b5081600554958751998a80926327f843b560e11b82525afa908115610aca5789610e6d610e7f977f7b0b759b513b299fd2811f51926dca8854222a675557e8d544ce0933bf5b75709c610e7495610db29d610e79985f92610e88575b50501690611dde565b9116611dff565b6125ff565b90613447565b82958495610d6d565b610e9e9250803d10610ac357610ab48183610542565b5f80610e64565b610ebc9150823d8411610ac357610ab48183610542565b5f610e08565b610ee06108fb6108fb6108fb610d5c8c5f52600660205260405f2090565b82871603610d3e57865163a741a04560e01b81528490fd5b5093949385169250508115610f54575091610db291610f4d7f7b0b759b513b299fd2811f51926dca8854222a675557e8d544ce0933bf5b757094610f44875f52600660205260405f2090565b610e79426125ff565b5050610d9a565b825163a741a04560e01b8152fd5b5083516323d53b9760e21b8152fd5b610f919150823d8411610f97575b610f898183610542565b810190611dca565b5f610ca8565b503d610f7f565b610faa91810190611ac9565b505f80610c45565b634e487b7160e01b5f52603260045260245ffd5b600354811015610ffe5760035f5260021b7fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b01905f90565b610fb2565b34610229576020366003190112610229576004356003548110156102295761102a90610fc6565b50805460018201546002830154600390930154604080519384526001600160a01b0390921660208401529082019290925265ffffffffffff808316606080840191909152603084901c90911660808301529190911c60ff16151560a082015260c090f35b34610229576040366003190112610229576004356110ab81610218565b6024356001600160401b038111610229575f916110cd8392369060040161068c565b90816040519283928337810184815203915af461111a6110eb611e0c565b9161110c60405193849215156020840152604080840152606083019061023d565b03601f198101835282610542565b805190602001fd5b34610229576102c56102b16111363661036b565b91611e6d565b906080600319830112610229576004359160243561115981610218565b916044356111668161022d565b91606435906001600160401b03821161022957610394916004016105b9565b346102295760206103636111be61119b3661113c565b939190925f526002865260405f209060018060a01b03165f5260205260405f2090565b612665565b346102295760206111df6111d63661113c565b929190916127da565b50604051908152f35b9060406003198301126102295760043591602435906001600160401b038211610229576112179160040161068c565b9091565b3461022957611229366111e8565b91906112336123ed565b61123b611f92565b9280611551575b505060035481101561153f5761125781610fc6565b50908154906112658261241c565b6003830180549365ffffffffffff9384861660018060a01b0361128a895183856119b7565b16151580611514575b806114fb575b6114e9576112af816112aa426125ff565b611a0c565b5f546112c5906108fb906001600160a01b031681565b96600460206040998a51928380926327f843b560e11b82525afa8015610aca5782915f916114ca575b50169116116114b957600183018054909861131993929188906001600160a01b0316910151926127da565b906113288160028501546124b3565b9687156114a85760601c60ff166114975792611450611443899461141b6114088b9687876102c59f6114168f9d8f9e6114569f61137286600160601b60ff60601b19825416179055565b8a54855461139491906001600160a01b0316885465ffffffffffff1691612a0a565b8a5485546113ad9189916001600160a01b031690612a8a565b8a5494546113cb906001600160a01b0316965465ffffffffffff1690565b976113d4610582565b9384526020840152818301525196879160208301919091604080606083019480518452602081015160208501520151910152565b03601f198101875286610542565b612bf6565b61143461142e855465ffffffffffff1690565b86612cff565b5494546001600160a01b031690565b915465ffffffffffff1690565b92612d7c565b81518381527f5cc28df3b54da9d06f805d87616ebf969c81310f2aa8369cb14ca50f815d411190602090a2610a5760015f8051602061357283398151915255565b8551633428e90760e01b8152600490fd5b865163167f871760e31b8152600490fd5b8551639ea153eb60e01b8152600490fd5b6114e3915060203d602011610ac357610ab48183610542565b5f6112ee565b60405163b62b15c760e01b8152600490fd5b5061150861093b426125ff565b868860301c1611611299565b506115386108fb61152c611527426125ff565b6119f0565b60208b015190856119b7565b1515611293565b604051637822972360e11b8152600490fd5b61155f929350810190611fb1565b905f80611242565b34610229575f3660031901126102295760206040516001600160401b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b34610229575f366003190112610229576020600554604051908152f35b34610229575f366003190112610229576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b34610229576040366003190112610229576024356001600160401b0381116102295761165161164060209236906004016105b9565b611649426125ff565b6004356119b7565b6040516001600160a01b039091168152f35b34610229575f366003190112610229576020604051620249f08152f35b34610229575f36600319011261022957602065ffffffffffff60045416604051908152f35b34610229576116b3366111e8565b906116bc6123ed565b6116c4612039565b91806117ff575b505060035482101561153f576116e082610fc6565b506003815491019182549165ffffffffffff9160018060a01b036117088251858716856119b7565b169182159182156117d6575b50506117c45733036117b25761172c61093b426125ff565b908260301c1611156117a15760601c60ff1661178f57805460ff60601b1916600160601b17905533907f7d3d269c851b72257a5194a401d151902e9be4347d555996dcff3ff86a077e925f80a3610dcb60015f8051602061357283398151915255565b604051633428e90760e01b8152600490fd5b60405162c457e560e81b8152600490fd5b604051635d154fe160e11b8152600490fd5b60405163dd1ebd9d60e01b8152600490fd5b6117f79250906108fb9160206117ee611527426125ff565b910151916119b7565b155f80611714565b61180c9250810190612052565b5f806116cb565b34610229575f366003190112610229575f546040516001600160a01b039091168152602090f35b81601f82011215610229578051906118518261059e565b9261185f6040519485610542565b8284526020838301011161022957815f9260208093018386015e8301015290565b906020828203126102295781516001600160401b03811161022957610394920161183a565b6040513d5f823e3d90fd5b604061039492602083525191602080820152019061023d565b604051632751749360e11b81526001600160a01b0391821660048201526024810192909252909116604482015265ffffffffffff9091166064820152606091905f81806084810103817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa908115610aca575f9161197e575b5080516119565750565b61110c919250610394906040519061196d826104be565b8152604051928391602083016118b0565b61199a91503d805f833e6119928183610542565b810190611880565b5f61194c565b92916119ae91606094611e6d565b80516119565750565b5f9081526006602052604090206001600160a01b03926119d892909161214a565b1690565b634e487b7160e01b5f52601160045260245ffd5b65ffffffffffff9081165f190191908211611a0757565b6119dc565b65ffffffffffff9182169082160391908211611a0757565b611a4590939293611a386060958483611e6d565b92611136611527426125ff565b815115801590611aac575b611a58575050565b611a999293509061110c6103949260405192611a73846104de565b83526020830190815260405194859360208086015251604080860152608085019061023d565b9051838203603f1901606085015261023d565b5080511515611a50565b60405190611ac3826104be565b60608252565b906020828203126102295781356001600160401b03928382116102295701906020828203126102295760405192611aff846104be565b823590811161022957611b1292016105b9565b815290565b91909165ffffffffffff80809416911601918211611a0757565b9081602091031261022957516103948161022d565b634e487b7160e01b5f525f60045260245ffd5b600354600160401b8110156104d957806001611b789201600355610fc6565b919091611c3b578051825560208101516001830180546001600160a01b0319166001600160a01b039290921691909117905561058f91611c219060a090600390604085015160028201550192611bee65ffffffffffff606083015116859065ffffffffffff1665ffffffffffff19825416179055565b60808101516bffffffffffff00000000000085549160301b16906bffffffffffff00000000000019161784550151151590565b815460ff60601b191690151560601b60ff60601b16179055565b611b46565b906103949160208152611c5f825160606020840152608083019061023d565b9060606040611c7f602086015194601f199586868303018487015261023d565b940151928285030191015261023d565b919093925f606095611ca2838287611e6d565b94611d05611cbc611cb5611527426125ff565b8484611e6d565b604051632751749360e11b81526001600160a01b039384166004820152602481019490945291909516604483015265ffffffffffff909316606482015292839081906084820190565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa918215610aca575f92611da1575b50825115801590611d97575b8015611d8d575b611d5d57505050565b61110c939450906103949291611d71610582565b9283526020830152604082015260405192839160208301611c40565b5081511515611d54565b5080511515611d4d565b611db69192503d805f833e6119928183610542565b905f611d41565b5190811515820361022957565b908160209103126102295761039490611dbd565b81810292918115918404141715611a0757565b9060018201809211611a0757565b91908201809211611a0757565b3d15611e36573d90611e1d8261059e565b91611e2b6040519384610542565b82523d5f602084013e565b606090565b519063ffffffff8216820361022957565b9190826040910312610229576103946020611e6684611dbd565b9301611e3b565b92915f8060609565ffffffffffff60405194602096638f82f93160e01b88880152602487015216604485015260448452611ea684610527565b6040519384611ed387820192639f86fd8560e01b845230602484015260406044840152606483019061023d565b0394611ee7601f1996878101835282610542565b51915afa50611f05611ef7611e0c565b838082518301019101612631565b9015611f5857808380611f1d93518301019101611e4c565b9290611f2857505050565b61039492939450611f4c604051948592830191909163ffffffff6020820193169052565b03908101835282610542565b809150519182156102295701fd5b5f9081526002602090815260408083206001600160a01b03909416835292905220610394929190612665565b60405190611f9f826104f9565b60606040838281528260208201520152565b906020828203126102295781356001600160401b03928382116102295701906060828203126102295760405192611fe7846104f9565b82358181116102295782611ffc9185016105b9565b8452602083013581811161022957826120169185016105b9565b602085015260408301359081116102295761203192016105b9565b604082015290565b60405190612046826104de565b60606020838281520152565b906020828203126102295781356001600160401b03928382116102295701906040828203126102295760405192612088846104de565b8235818111610229578261209d9185016105b9565b84526020830135908111610229576120b592016105b9565b602082015290565b8054821015610ffe575f5260205f2001905f90565b6120db81612e78565b6001600160d01b038116156121005760016120f692016120bd565b90549060031b1c90565b50505f90565b908160209103126102295761039490611e3b565b5f19810191908211611a0757565b91908203918211611a0757565b90600163ffffffff80931601918211611a0757565b9180511561222e578060208061216593518301019101612106565b916121708382612eb8565b92612181845165ffffffffffff1690565b9065ffffffffffff808516921682811461221557821191826121c0575b50506121ae576103949250613346565b5050602001516001600160d01b031690565b9091506121cd835461211a565b63ffffffff8316149182156121e6575b50505f8061219e565b61220d9192506122016121fb61093b92612135565b85612eb8565b5165ffffffffffff1690565b115f806121dd565b50505050602091909101516001600160d01b0316905090565b5061039491613346565b91909160408184031261022957803561225081610218565b9260208201356001600160401b0381116102295761039492016105b9565b90816020910312610229575161039481610218565b61228f91810190612238565b6040516302910f8b60e31b81526001600160a01b0392831660048201819052929160209182816024817f000000000000000000000000000000000000000000000000000000000000000088165afa908115610aca575f916123d0575b50156123be5781612320600492612300612f0c565b5f80546001600160a01b0319166001600160a01b03891617905586612f99565b94604051928380926313c085b760e11b82525afa918215610aca575f92612391575b5050161580612387575b612375575161058f9015155f805460ff60a01b191691151560a01b60ff60a01b16919091179055565b60405163d2420f5960e01b8152600490fd5b508051151561234c565b6123b09250803d106123b7575b6123a88183610542565b81019061226e565b5f80612342565b503d61239e565b6040516362df054560e01b8152600490fd5b6123e79150833d8511610f9757610f898183610542565b5f6122eb565b5f80516020613572833981519152600281541461240a5760029055565b604051633ee5aeb560e01b8152600490fd5b604051635daf681960e11b815260609190911c60048201526001600160a01b036020826024817f000000000000000000000000000000000000000000000000000000000000000085165afa918215610aca575f92612492575b503391160361248057565b60405163227bf64d60e01b8152600490fd5b6124ac91925060203d6020116123b7576123a88183610542565b905f612475565b90808210156124c0575090565b905090565b906040516124d2816104de565b915465ffffffffffff8116835260301c6020830152565b908154905f829160058411612572575b6125049350846131d8565b90811561256657612525906125188361211a565b905f5260205f20016124c5565b9161255f6125566125506020612541875165ffffffffffff1690565b9601516001600160d01b031690565b9361211a565b63ffffffff1690565b6001939291565b50505f905f905f905f90565b919261257d8161309a565b8103908111611a075761250493855f5265ffffffffffff808360205f20015416908516105f146125ae5750916124f9565b9291506125ba90611df1565b906124f9565b906125ca82612e78565b91805480156125eb575f1901906125e182826120bd565b611c3b575f905555565b634e487b7160e01b5f52603160045260245ffd5b65ffffffffffff90818111612612571690565b604490604051906306dfcc6560e41b8252603060048301526024820152fd5b9190916040818403126102295761264781611dbd565b9260208201516001600160401b03811161022957610394920161183a565b91805115612727578060208061268093518301019101612106565b9161268b8382613294565b9261269c845165ffffffffffff1690565b9065ffffffffffff808516921682811461271b57821191826126d2575b50506126c9576103949250613289565b50506020015190565b9091506126df835461211a565b63ffffffff8316149182156126f8575b50505f806126b9565b61271391925061220161270d61093b92612135565b85613294565b115f806126ef565b50505050506020015190565b5061039491613289565b906020828203126102295781516001600160401b03928382116102295701906040828203126102295760405192612767846104de565b8251818111610229578261277c91850161183a565b84526020830151908111610229576120b5920161183a565b90816020910312610229575190565b9081526001600160a01b03909116602082015265ffffffffffff90911660408201526080606082018190526103949291019061023d565b926127e3612039565b908051806129f0575b50506127f7426125ff565b5f54909490612810906108fb906001600160a01b031681565b93604051956327f843b560e11b875260209687816004818a5afa8015610aca576128449261093b925f926129d85750611a0c565b65ffffffffffff82169081109081156129c1575b8115612990575b50612984578560049560405196878092630ce9b79360e41b82525afa948515610aca576128b19587915f91612967575b50845190604051808099819463e02f693760e01b8352878b8a600486016127a3565b03916001600160a01b03165afa938415610aca57612923955f95612926575b5092612918859361291e9361291896869a61290f61035e836128fa875f52600260205260405f2090565b9060018060a01b03165f5260205260405f2090565b95015192611f66565b90612128565b6124b3565b91565b61291e929550612918949193612954612918928a3d8c11612960575b61294c8183610542565b810190612794565b969350939194506128d0565b503d612942565b61297e9150823d84116123b7576123a88183610542565b5f61288f565b5050505050505f905f90565b90506129ba61093b6129ae876128fa875f52600160205260405f2090565b5465ffffffffffff1690565b115f61285f565b90506129cf61093b426125ff565b81101590612858565b610abc9192508a3d8c11610ac357610ab48183610542565b612a039250602080918301019101612731565b5f806127ec565b919091805f52600160205265ffffffffffff80612a3a8560405f209060018060a01b03165f5260205260405f2090565b541690831611612a4957505050565b61058f92612a71915f52600160205260405f209060018060a01b03165f5260205260405f2090565b9065ffffffffffff1665ffffffffffff19825416179055565b9190825f526002602052612ae261035e612ab78360405f209060018060a01b03165f5260205260405f2090565b92612ac1426125ff565b955f52600260205260405f209060018060a01b03165f5260205260405f2090565b918201809211611a07576001810190815415612b86575b612b028161323a565b509490835495612b11846120d2565b5081612b71575b5015612b505750505f198301928311611a075761058f92612b38916120bd565b90919082549060031b91821b915f19901b1916179055565b61058f94612b6a926001600160d01b039091169190613447565b5050613323565b65ffffffffffff83811691161490505f612b18565b612b8f826132f6565b612af9565b60606020610394938184526001600160401b0381511682850152015191604080820152019061023d565b919360a093610394969565ffffffffffff938552600180871b031660208501526040840152166060820152816080820152019061023d565b92939060046020612c136108fb6108fb5f5460018060a01b031690565b604051630ce9b79360e41b815292839182905afa908115610aca5761110c91612c91915f91612ce0575b506001600160a01b031693612c50610591565b6001600160401b037f000000000000000000000000000000000000000000000000000000000000000016815290602082015260405192839160208301612b94565b823b15610229575f94612cbc86926040519889978896879563724ab0f760e11b875260048701612bbe565b03925af18015610aca57612ccd5750565b80612cda61058f92610514565b806102c9565b612cf9915060203d6020116123b7576123a88183610542565b5f612c3d565b65ffffffffffff9160446020925f60018060a01b038154166040519687958694631c9e38c760e21b865260048601521660248401525af18015610aca57612d435750565b612d5b9060203d6020116129605761294c8183610542565b50565b8115612d68570490565b634e487b7160e01b5f52601260045260245ffd5b92905f549060ff8260a01c16612d94575b5050505050565b6040516313c085b760e11b815291602090839060049082906001600160a01b03165afa918215610aca575f92612e51575b5060405163065c1e0360e01b6020820190815260248201969096526001600160a01b039091166044820152606481019390935265ffffffffffff9091166084830152612e1e8260a481015b03601f198101845283610542565b6202a15c5a10612e3f575f928380935192620249f0f1505f80808080612d8d565b604051632153f33560e21b8152600490fd5b612e1e9250612e71612e109160203d6020116123b7576123a88183610542565b9250612dc5565b805480612e855750505f90565b5f19918183810111611a07575f5260205f2001015460301c90565b60405190612ead826104de565b5f6020838281520152565b612edd91612ed791612ec8612ea0565b50612ed1612ea0565b506120bd565b506124c5565b65ffffffffffff81511690602060018060d01b039101511660405191612f02836104de565b8252602082015290565b612f146133d2565b612f1c6133d2565b60015f8051602061357283398151915255565b60405190612f3c826104be565b5f8252565b809103906060821261022957602060405192612f5c846104f9565b12610229576040908151612f6f816104be565b612f7882611dbd565b815283526020810151612f8a8161022d565b60208401520151604082015290565b90600490612fa5612f2f565b508051612fbc602092838080948301019101612f41565b6040516327f843b560e11b815290949093849182906001600160a01b03165afa918215610aca575f9261307b575b50820190612ffe825165ffffffffffff1690565b65ffffffffffff91821691161015613069576040820160038151106130575761304d613033613053935165ffffffffffff1690565b65ffffffffffff1665ffffffffffff196004541617600455565b51600555565b5190565b6040516354f778f360e01b8152600490fd5b6040516367d5e3df60e11b8152600490fd5b816130939293503d8411610ac357610ab48183610542565b905f612fea565b80156131d3578061316c61316561315b61315161314761313d61313361312960016103949a5f908b60801c806131c7575b508060401c806131ba575b508060201c806131ad575b508060101c806131a0575b508060081c80613193575b508060041c80613186575b508060021c80613179575b50821c613172575b811c1b613122818b612d5e565b0160011c90565b613122818a612d5e565b6131228189612d5e565b6131228188612d5e565b6131228187612d5e565b6131228186612d5e565b6131228185612d5e565b8092612d5e565b906124b3565b8101613115565b600291509101905f61310d565b600491509101905f613102565b600891509101905f6130f7565b601091509101905f6130ec565b602091509101905f6130e1565b604091509101905f6130d6565b9150506080905f6130cb565b505f90565b91905b8382106131e85750505090565b909192808316906001818518811c8301809311611a0757855f5265ffffffffffff808460205f20015416908516105f14613227575050925b91906131db565b909493508101809111611a075791613220565b80548061324b5750505f905f905f90565b5f19908082810111611a0757613268925f5260205f2001016124c5565b9065ffffffffffff82511691602060018060d01b0391015116906001929190565b906120db9082613346565b906132b7612ed76132d8926132a7612ea0565b506132b0612ea0565b50846120bd565b91600165ffffffffffff845116936020828060d01b039101511691016120bd565b905490604051926132e8846104de565b835260031b1c602082015290565b8054600160401b8110156104d957613313916001820181556120bd565b8154905f199060031b1b19169055565b90815491600160401b8310156104d95782612b3891600161058f950181556120bd565b908154905f829160058411613384575b6133619350846131d8565b8061336c5750505f90565b6133759061211a565b905f5260205f20015460301c90565b919261338f8161309a565b8103908111611a075761336193855f5265ffffffffffff808360205f20015416908516105f146133c0575091613356565b9291506133cc90611df1565b90613356565b60ff5f805160206135928339815191525460401c16156133ee57565b604051631afcd79f60e31b8152600490fd5b8054600160401b8110156104d95761341d916001820181556120bd565b611c3b57815160209092015160301b65ffffffffffff191665ffffffffffff909216919091179055565b8054929392919082156135485761347361346e6134638561211a565b835f5260205f200190565b6124c5565b90613484825165ffffffffffff1690565b65ffffffffffff84811691168110613536576134fa9460209488926134b261093b875165ffffffffffff1690565b036134fe57506134ec926134c86134d39261211a565b905f5260205f200190565b9065ffffffffffff82549181199060301b169116179055565b01516001600160d01b031690565b9190565b9150506135319161351e613510610591565b65ffffffffffff9093168352565b6001600160d01b03881682860152613400565b6134ec565b604051632520601d60e01b8152600490fd5b61356c9250613558613510610591565b6001600160d01b0385166020830152613400565b5f919056fe9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a264697066735822122066def236e3cb068f18d202c0ed5927514d7f8f51390f7bbba09b96397dfe793c64736f6c63430008190033","sourceMap":"624:2139:89:-:0;;;;;;;;;;;;;-1:-1:-1;;624:2139:89;;;;-1:-1:-1;;;;;624:2139:89;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;624:2139:89;;;;;;;;348:4:87;332:21;;8837:64:26;624:2139:89;;;;;;;7896:76:26;;624:2139:89;;;;;;7985:34:26;7981:146;;-1:-1:-1;525:17:74;;;-1:-1:-1;525:17:74;;-1:-1:-1;552:12:74;;-1:-1:-1;2353:28:97;;2391:53;;-1:-1:-1;2391:53:97;;987:41:89;;;;624:2139;;1062:31;;;;;;;;;;;;;;624:2139;1062:31;;;;;;348:4:87;624:2139:89;;1062:31;;;-1:-1:-1;1062:31:89;;;;;;1038:56;;624:2139;;1038:56;;624:2139;;1133:35;;;;;;;;;;;;;;;624:2139;1133:35;;;;;;348:4:87;624:2139:89;;1133:35;;;-1:-1:-1;1133:35:89;;;;;;1104:65;624:2139;;1104:65;;624:2139;;;;;;;;332:21:87;624:2139:89;;;;;525:17:74;624:2139:89;;;;;552:12:74;624:2139:89;;;;;2353:28:97;624:2139:89;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1133:35;624:2139;;;-1:-1:-1;624:2139:89;;;;;1133:35;624:2139;;;-1:-1:-1;624:2139:89;;;;;-1:-1:-1;624:2139:89;7981:146:26;-1:-1:-1;;;;;;624:2139:89;;;;;;;;;8087:29:26;;624:2139:89;;8087:29:26;7981:146;;;;;7896:76;624:2139:89;;-1:-1:-1;;;7938:23:26;;;;;624:2139:89;-1:-1:-1;624:2139:89;","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361015610011575f80fd5b5f3560e01c8063103f2907146101545780631a2be2c41461014f578063267de1f31461014a5780632964f8dc146101455780632c9d45b3146101405780632dd310001461013b57806334d098ea14610136578063439fab91146101315780634a7196551461012c5780634ea2e926146101275780634eb5a242146101225780636565b7db1461011d578063770280461461011857806379d89614146101135780639f86fd851461010e578063aa8e648914610109578063aab3595f14610104578063bb24fe8a146100ff578063d5c24e1a146100fa5763fbfa77cf146100f5575f80fd5b61094a565b61092d565b6108ea565b6108c5565b610887565b6106ca565b610686565b6105cf565b61058b565b610547565b61052a565b6104f5565b61034b565b6102fa565b6102b6565b610272565b610256565b610201565b6101ad565b34610198575f366003190112610198576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b5f80fd5b6001600160a01b0381160361019857565b346101985760403660031901126101985760206101f96101f46024356101d28161019c565b6004355f526002845260405f209060018060a01b03165f5260205260405f2090565b610daa565b604051908152f35b3461019857604036600319011261019857602065ffffffffffff61024c60243561022a8161019c565b6004355f526001845260405f209060018060a01b03165f5260205260405f2090565b5416604051908152f35b34610198575f366003190112610198576020604051614e208152f35b34610198575f366003190112610198576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b34610198575f366003190112610198576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b34610198575f36600319011261019857602060ff5f5460a01c166040519015158152f35b9181601f84011215610198578235916001600160401b038311610198576020838186019501011161019857565b34610198576020366003190112610198576001600160401b036004358181116101985761037c90369060040161031e565b5f8051602061195c833981519152549260ff8460401c1615931680159081610480575b6001149081610476575b15908161046d575b5061045b575f8051602061195c833981519152805467ffffffffffffffff191660011790556103e4918361043257610e4c565b6103ea57005b5f8051602061195c833981519152805460ff60401b19169055604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a1005b5f8051602061195c833981519152805460ff60401b191668010000000000000000179055610e4c565b60405163f92ee8a960e01b8152600490fd5b9050155f6103b1565b303b1591506103a9565b84915061039f565b65ffffffffffff81160361019857565b6080906003190112610198576004356104b08161019c565b90602435906044356104c18161019c565b906064356104ce81610488565b90565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b346101985761052661051261050936610498565b929190916109b0565b6040519182916020835260208301906104d1565b0390f35b346101985761052661051261053e36610498565b92919091610b7b565b34610198575f366003190112610198576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b34610198575f366003190112610198576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b34610198576060366003190112610198576024356105ec8161019c565b6044356105f881610488565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316330361067457610652610657926004355f52600260205260405f209060018060a01b03165f5260205260405f2090565b61104a565b60408051941515855263ffffffff91909116602085015292915050f35b604051637ca475e560e11b8152600490fd5b34610198575f366003190112610198576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b34610198576040366003190112610198576004356106e78161019c565b6024356001600160401b038111610198575f916107098392369060040161031e565b90816040519283928337810184815203915af4610756610727610d26565b916107486040519384921515602084015260408084015260608301906104d1565b03601f1981018352826107ad565b805190602001fd5b634e487b7160e01b5f52604160045260245ffd5b604081019081106001600160401b0382111761078d57604052565b61075e565b60a081019081106001600160401b0382111761078d57604052565b90601f801991011681019081106001600160401b0382111761078d57604052565b604051906107db82610772565b565b6001600160401b03811161078d57601f01601f191660200190565b81601f820112156101985780359061080f826107dd565b9261081d60405194856107ad565b8284526020838301011161019857815f926020809301838601378301015290565b906080600319830112610198576004359160243561085b8161019c565b9160443561086881610488565b91606435906001600160401b038211610198576104ce916004016107f8565b346101985760206101f96108c061089d3661083e565b939190925f526002865260405f209060018060a01b03165f5260205260405f2090565b611178565b346101985760206108e16108d83661083e565b92919091611347565b50604051908152f35b34610198575f3660031901126101985760206040516001600160401b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b34610198575f366003190112610198576020604051620249f08152f35b34610198575f366003190112610198575f546040516001600160a01b039091168152602090f35b5190811515820361019857565b519063ffffffff8216820361019857565b9190826040910312610198576104ce60206109a984610971565b930161097e565b5f809195949593929365ffffffffffff60609760405195602097633b81402360e11b89890152602488015260018060a01b03166044870152166064850152606484526109fb84610792565b6040519384610a2887820192639f86fd8560e01b84523060248401526040604484015260648301906104d1565b0394610a3c601f19968781018352826107ad565b51915afa50610a5a610a4c610d26565b838082518301019101610fb5565b9015610aad57808380610a729351830101910161098f565b9290610a7d57505050565b6104ce92939450610aa1604051948592830191909163ffffffff6020820193169052565b039081018352826107ad565b809150519182156101985701fd5b9081602091031261019857516104ce8161019c565b6040513d5f823e3d90fd5b81601f8201121561019857805190610af2826107dd565b92610b0060405194856107ad565b8284526020838301011161019857815f9260208093018386015e8301015290565b906020828203126101985781516001600160401b038111610198576104ce9201610adb565b906104ce91602081526020610b66835160408385015260608401906104d1565b920151906040601f19828503019101526104d1565b60405163fbfa77cf60e01b815260609594919391926020926001600160a01b03929091908481600481878b165afa908115610cd757849186915f91610d09575b50600460405180948193630ce9b79360e41b8352165afa8015610cd75786948385925f948591610cdc575b506040516304bb92e160e31b81526001600160a01b039182166004820152602481019290925292909216604483015265ffffffffffff97909716606482015295869060849082907f0000000000000000000000000000000000000000000000000000000000000000165afa948515610cd7575f95610caf575b50610c6b9394956109b0565b825115801590610ca5575b610c7f57505050565b6104ce92939450610c8e6107ce565b938452818401526107486040519384928301610b46565b5080511515610c76565b610c6b949550610cd0903d805f833e610cc881836107ad565b810190610b21565b9493610c5f565b610ad0565b610cfc9150893d8b11610d02575b610cf481836107ad565b810190610abb565b5f610be6565b503d610cea565b610d209150823d8411610d0257610cf481836107ad565b5f610bbb565b3d15610d50573d90610d37826107dd565b91610d4560405193846107ad565b82523d5f602084013e565b606090565b5f9081526002602090815260408083206001600160a01b039094168352929052206104ce929190611178565b8054821015610d96575f5260205f2001905f90565b634e487b7160e01b5f52603260045260245ffd5b805480610ddf57505f5b6001600160d01b03811615610dd9576001610dcf9201610d81565b90549060031b1c90565b50505f90565b5f19908082810111610dfd57825f5260205f2001015460301c610db4565b610fe9565b919091604081840312610198578035610e1a8161019c565b9260208201356001600160401b038111610198576104ce92016107f8565b90816020910312610198576104ce90610971565b610e5891810190610e02565b506040516302910f8b60e31b81526001600160a01b0391821660048201819052919060209081816024817f000000000000000000000000000000000000000000000000000000000000000087165afa908115610cd7575f91610f88575b5015610f7657610ec361159b565b5f80546001600160a01b0319166001600160a01b038516179055600481610ee86115d1565b94604051928380926313c085b760e11b82525afa918215610cd7575f92610f59575b5050161580610f4f575b610f3d57516107db9015155f805460ff60a01b191691151560a01b60ff60a01b16919091179055565b60405163d2420f5960e01b8152600490fd5b5080511515610f14565b610f6f9250803d10610d0257610cf481836107ad565b5f80610f0a565b6040516362df054560e01b8152600490fd5b610fa89150823d8411610fae575b610fa081836107ad565b810190610e38565b5f610eb5565b503d610f96565b91909160408184031261019857610fcb81610971565b9260208201516001600160401b038111610198576104ce9201610adb565b634e487b7160e01b5f52601160045260245ffd5b5f19810191908211610dfd57565b91908203918211610dfd57565b9060018201809211610dfd57565b9060405161103381610772565b915465ffffffffffff8116835260301c6020830152565b91908254905f8291600584116110e8575b61106693508561174f565b9081156110dc576110d56110cc6110c6610dcf61109861109361108888610ffd565b895f5260205f200190565b611026565b9660016110bf60206110b08b5165ffffffffffff1690565b9a01516001600160d01b031690565b9101610d81565b93610ffd565b63ffffffff1690565b6001939291565b5f925082915081908190565b91926110f381611611565b8103908111610dfd5761106693865f5261112761111c8360205f200165ffffffffffff90541690565b65ffffffffffff1690565b65ffffffffffff8516101561113d57509161105b565b92915061114990611018565b9061105b565b90816020910312610198576104ce9061097e565b90600163ffffffff80931601918211610dfd57565b9180511561124657806020806111939351830101910161114f565b9161119e8382611881565b926111af845165ffffffffffff1690565b9065ffffffffffff808516921682811461123a57821191826111e5575b50506111dc576104ce92506117b1565b50506020015190565b9091506111f28354610ffd565b63ffffffff83161491821561120b575b50505f806111cc565b61123291925061122661122061111c92611163565b85611881565b5165ffffffffffff1690565b115f80611202565b50505050506020015190565b506104ce916117b1565b6040519061125d82610772565b60606020838281520152565b906020828203126101985781516001600160401b0392838211610198570190604082820312610198576040519261129f84610772565b825181811161019857826112b4918501610adb565b84526020830151908111610198576112cc9201610adb565b602082015290565b9081602091031261019857516104ce81610488565b65ffffffffffff9182169082160391908211610dfd57565b90816020910312610198575190565b9081526001600160a01b03909116602082015265ffffffffffff90911660408201526080606082018190526104ce929101906104d1565b92611350611250565b90805180611581575b505061136442611929565b5f549094906113899061137d906001600160a01b031681565b6001600160a01b031690565b93604051956327f843b560e11b875260209687816004818a5afa8015610cd7576113be9261111c925f92611552575b506112e9565b65ffffffffffff821690811090811561153b575b811561150a575b506114fe578560049560405196878092630ce9b79360e41b82525afa948515610cd75761142b9587915f916114e1575b50845190604051808099819463e02f693760e01b8352878b8a60048601611310565b03916001600160a01b03165afa938415610cd75761149d955f956114a0575b509261149285936114989361149296869a6114896101f483611474875f52600260205260405f2090565b9060018060a01b03165f5260205260405f2090565b95015192610d55565b9061100b565b6118e9565b91565b6114989295506114929491936114ce611492928a3d8c116114da575b6114c681836107ad565b810190611301565b9693509391945061144a565b503d6114bc565b6114f89150823d8411610d0257610cf481836107ad565b5f611409565b5050505050505f905f90565b905061153461111c61152887611474875f52600160205260405f2090565b5465ffffffffffff1690565b115f6113d9565b905061154961111c42611929565b811015906113d2565b6115739192508a3d8c1161157a575b61156b81836107ad565b8101906112d4565b905f6113b8565b503d611561565b6115949250602080918301019101611269565b5f80611359565b6115a36118fb565b6115ab6118fb565b60017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055565b60405190602082018281106001600160401b0382111761078d576040525f8252565b81156115fd570490565b634e487b7160e01b5f52601260045260245ffd5b801561174a57806116e36116dc6116d26116c86116be6116b46116aa6116a060016104ce9a5f908b60801c8061173e575b508060401c80611731575b508060201c80611724575b508060101c80611717575b508060081c8061170a575b508060041c806116fd575b508060021c806116f0575b50821c6116e9575b811c1b611699818b6115f3565b0160011c90565b611699818a6115f3565b61169981896115f3565b61169981886115f3565b61169981876115f3565b61169981866115f3565b61169981856115f3565b80926115f3565b906118e9565b810161168c565b600291509101905f611684565b600491509101905f611679565b600891509101905f61166e565b601091509101905f611663565b602091509101905f611658565b604091509101905f61164d565b9150506080905f611642565b505f90565b91905b83821061175f5750505090565b909192808316906001818518811c8301809311610dfd57855f5265ffffffffffff808460205f20015416908516105f1461179e575050925b9190611752565b909493508101809111610dfd5791611797565b908154905f82916005841161181b575b6117cc93508461174f565b806117f457505f905b6001600160d01b03821615610dd9576104ce916001610dcf9201610d81565b61180e61180361181592610ffd565b835f5260205f200190565b5460301c90565b906117d5565b919261182681611611565b8103908111610dfd576117cc93855f5265ffffffffffff808360205f20015416908516105f146118575750916117c1565b92915061186390611018565b906117c1565b6040519061187682610772565b5f6020838281520152565b906118aa6118a46118cb92611894611869565b5061189d611869565b5084610d81565b50611026565b91600165ffffffffffff845116936020828060d01b03910151169101610d81565b905490604051926118db84610772565b835260031b1c602082015290565b90808210156118f6575090565b905090565b60ff5f8051602061195c8339815191525460401c161561191757565b604051631afcd79f60e31b8152600490fd5b65ffffffffffff9081811161193c571690565b604490604051906306dfcc6560e41b8252603060048301526024820152fdfef0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a2646970667358221220a5c4c6cf32000ec7f5b68bf93648e06f278425e283bf4d4339caa0e7d8693e5f64736f6c63430008190033","sourceMap":"624:2139:89:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;;;;;-1:-1:-1;;624:2139:89;;;;;;1435:38:97;-1:-1:-1;;;;;624:2139:89;;;;;;;;;;;-1:-1:-1;;;;;624:2139:89;;;;;:::o;:::-;;;;;;-1:-1:-1;;624:2139:89;;;;;2936:47:97;:38;624:2139:89;;;;;:::i;:::-;;;-1:-1:-1;624:2139:89;2936:16:97;624:2139:89;;;-1:-1:-1;624:2139:89;;;;;;;;;;;;;;;;;2936:38:97;:47;:::i;:::-;624:2139:89;;;;;;;;;;;;-1:-1:-1;;624:2139:89;;;;;;1788:109:97;624:2139:89;;;;;:::i;:::-;;;-1:-1:-1;624:2139:89;1788:109:97;624:2139:89;;;-1:-1:-1;624:2139:89;;;;;;;;;;;;;;;;;1788:109:97;624:2139:89;;;;;;;;;;;;;;-1:-1:-1;;624:2139:89;;;;;;;1374:6:97;624:2139:89;;;;;;;;;-1:-1:-1;;624:2139:89;;;;;;1528:51:97;-1:-1:-1;;;;;624:2139:89;;;;;;;;;;;;-1:-1:-1;;624:2139:89;;;;;;322:32:74;-1:-1:-1;;;;;624:2139:89;;;;;;;;;;;;-1:-1:-1;;624:2139:89;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;624:2139:89;;;;;;;;;;;;;;;:::o;:::-;;;;;;-1:-1:-1;;624:2139:89;;;;-1:-1:-1;;;;;624:2139:89;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;624:2139:89;;;;;;;4301:16:26;624:2139:89;;4726:16:26;;:34;;;;624:2139:89;4805:1:26;4790:16;:50;;;;624:2139:89;4855:13:26;:30;;;;624:2139:89;4851:91:26;;;-1:-1:-1;;;;;;;;;;;624:2139:89;;-1:-1:-1;;624:2139:89;;;;;718:4:74;;4951:18:26;4979:67;;718:4:74;:::i;:::-;5066:101:26;;624:2139:89;5066:101:26;-1:-1:-1;;;;;;;;;;;624:2139:89;;-1:-1:-1;;;;624:2139:89;;;;;-1:-1:-1;624:2139:89;;5142:14:26;;624:2139:89;;5142:14:26;624:2139:89;4979:67:26;-1:-1:-1;;;;;;;;;;;624:2139:89;;-1:-1:-1;;;;624:2139:89;;;;;718:4:74;:::i;4851:91:26:-;624:2139:89;;-1:-1:-1;;;4908:23:26;;624:2139:89;;4908:23:26;4855:30;4872:13;;;4855:30;;;4790:50;4818:4;4810:25;:30;;-1:-1:-1;4790:50:26;;4726:34;;;-1:-1:-1;4726:34:26;;624:2139:89;;;;;;;:::o;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;:::o;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;624:2139:89;;;;;;;;-1:-1:-1;;624:2139:89;;;;:::o;:::-;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;-1:-1:-1;;624:2139:89;;;;;;778:38;-1:-1:-1;;;;;624:2139:89;;;;;;;;;;;;-1:-1:-1;;624:2139:89;;;;;;822:43;-1:-1:-1;;;;;624:2139:89;;;;;;;;;;;;-1:-1:-1;;624:2139:89;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;449:5:87;-1:-1:-1;;;;;624:2139:89;435:10:87;:19;431:71;;1400:38:89;:77;624:2139;;;-1:-1:-1;624:2139:89;1400:16;624:2139;;;-1:-1:-1;624:2139:89;;;;;;;;;;;;;;;;;1400:38;:77;:::i;:::-;624:2139;;;;;;;;;;;;;;;;;;;-1:-1:-1;;624:2139:89;431:71:87;624:2139:89;;-1:-1:-1;;;477:14:87;;624:2139:89;;477:14:87;624:2139:89;;;;;;-1:-1:-1;;624:2139:89;;;;;;727:45;-1:-1:-1;;;;;624:2139:89;;;;;;;;;;;;-1:-1:-1;;624:2139:89;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;624:2139:89;;;;-1:-1:-1;624:2139:89;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;416:25:80;;;;477:31;416:25;;:::i;:::-;624:2139:89;;;;;;;;;;477:31:80;;624:2139:89;;;;;;;;;;;:::i;:::-;477:31:80;624:2139:89;;477:31:80;;;;;;:::i;:::-;518:79;;;624:2139:89;518:79:80;;624:2139:89;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;624:2139:89;;;;;;;:::o;:::-;;:::i;:::-;;;;;;;-1:-1:-1;;;;;624:2139:89;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;624:2139:89;;;;;;;:::o;:::-;;;;;;;:::i;:::-;:::o;:::-;-1:-1:-1;;;;;624:2139:89;;;;;;-1:-1:-1;;624:2139:89;;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;624:2139:89;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;624:2139:89;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;-1:-1:-1;;;;;624:2139:89;;;;;;;;;:::i;:::-;;;;;2692:73:97;:38;624:2139:89;;;:::i;:::-;;;;;-1:-1:-1;624:2139:89;2692:16:97;624:2139:89;;;-1:-1:-1;624:2139:89;;;;;;;;;;;;;;;;;2692:38:97;:73;:::i;624:2139:89:-;;;;;3248:62:97;624:2139:89;;;:::i;:::-;3248:62:97;;;;;:::i;:::-;624:2139:89;;;;;;;;;;;;;-1:-1:-1;;624:2139:89;;;;;;;-1:-1:-1;;;;;404:28:74;624:2139:89;;;;;;;;;;-1:-1:-1;;624:2139:89;;;;;;;1271:7:97;624:2139:89;;;;;;;;;-1:-1:-1;;624:2139:89;;;;;;;;-1:-1:-1;;;;;624:2139:89;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;:::i;1490:514::-;-1:-1:-1;1490:514:89;;;;;;;;624:2139;;;;;1779:95;;;;;;;;;;;;;624:2139;;;;;;;;;;;;;;;;;1779:95;;;;;:::i;:::-;624:2139;;716:88:87;;624:2139:89;716:88:87;;;;;;;;;783:4;1779:95:89;716:88:87;;624:2139:89;;;;;;;;;;;:::i;:::-;716:88:87;624:2139:89;716:88:87;624:2139:89;;716:88:87;;;;;;;;:::i;:::-;698:107;;;;;857:45;698:107;;:::i;:::-;624:2139:89;;;;857:45:87;;;;;;:::i;:::-;916:8;;912:175;;624:2139:89;;;1705:221;624:2139;;1705:221;;;;;;:::i;:::-;1937:61;;;;1490:514;;;:::o;1937:61::-;1970:17;624:2139;;;;1970:17;624:2139;;1970:17;;;;;624:2139;;;;;;;;;;;;1970:17;;;;;;;;;:::i;912:175:87:-;624:2139:89;;;;944:22:87;;;940:36;;990:87;;624:2139:89;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;624:2139:89;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;;;;624:2139:89;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;2010:751::-;624:2139;;-1:-1:-1;;;2301:28:89;;624:2139;;2010:751;;;;;2301:28;;-1:-1:-1;;;;;624:2139:89;2010:751;;;2301:28;624:2139;2301:28;624:2139;;;;2301:28;;;;;;;;;;;;;;;2010:751;624:2139;2301:28;624:2139;;;;;;;;;2295:47;;624:2139;2295:47;;;;;;;;;;;2301:28;2295:47;;;;;2010:751;-1:-1:-1;624:2139:89;;-1:-1:-1;;;2230:162:89;;-1:-1:-1;;;;;624:2139:89;;;2301:28;2230:162;;624:2139;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2249:20;624:2139;2230:162;;;;;;;2301:28;2230:162;;;2010:751;2442:68;;;;;;:::i;:::-;624:2139;;2525:21;;;:59;;;2010:751;2521:234;;2010:751;;;:::o;2521:234::-;2607:137;624:2139;;;;;;:::i;:::-;;;;2635:95;;;624:2139;2607:137;624:2139;;2607:137;;;;;;:::i;2525:59::-;624:2139;;;2550:34;;2525:59;;2230:162;2442:68;2230:162;;;;;;;2301:28;2230:162;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;:::i;2295:47::-;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;2301:28;;;;;;;;;;;;;;:::i;:::-;;;;624:2139;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;-1:-1:-1;624:2139:89;;;;:::o;:::-;;;:::o;2505:267:97:-;-1:-1:-1;624:2139:89;;;2692:16:97;624:2139:89;;;;;;;;-1:-1:-1;;;;;624:2139:89;;;;;;;;;2692:73:97;;2505:267;;2692:73;:::i;624:2139:89:-;;;;;;;;-1:-1:-1;624:2139:89;;-1:-1:-1;624:2139:89;;;-1:-1:-1;624:2139:89;:::o;:::-;;;;;;;;;;;;10580:184:91;624:2139:89;;10303:8:61;;;:63;-1:-1:-1;10303:63:61;-1:-1:-1;;;;;624:2139:89;;10726:7:91;624:2139:89;;10736:12:91;:17;:12;;:17;:::i;:::-;624:2139:89;;;;;;10580:184:91;:::o;10726:31::-;;;-1:-1:-1;10580:184:91;:::o;10303:63:61:-;624:2139:89;;;;;;;;;;13267:109:91;-1:-1:-1;13267:109:91;;-1:-1:-1;13267:109:91;;;624:2139:89;;;10303:63:61;;624:2139:89;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;624:2139:89;;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;6491:564:97:-;6614:34;6491:564;6614:34;;;;:::i;:::-;-1:-1:-1;624:2139:89;;-1:-1:-1;;;6664:41:97;;-1:-1:-1;;;;;624:2139:89;;;6664:41:97;;;624:2139:89;;;;;6664:41:97;;;624:2139:89;;;6674:13:97;624:2139:89;;6664:41:97;;;;;;;-1:-1:-1;6664:41:97;;;6491:564;6663:42;;6659:90;;2540:111:29;;:::i;:::-;-1:-1:-1;624:2139:89;;-1:-1:-1;;;;;;624:2139:89;-1:-1:-1;;;;;624:2139:89;;;;;6664:41:97;624:2139:89;;;:::i;:::-;;;;;;;;;;;6892:23:97;;;;;;;;;-1:-1:-1;6892:23:97;;;6491:564;624:2139:89;;;6892:37:97;:64;;;6491:564;6888:112;;624:2139:89;7010:38:97;;624:2139:89;;-1:-1:-1;624:2139:89;;-1:-1:-1;;;;624:2139:89;;;;;;-1:-1:-1;;;624:2139:89;;;;;;;;6888:112:97;624:2139:89;;-1:-1:-1;;;6979:10:97;;6664:41;;6979:10;6892:64;-1:-1:-1;624:2139:89;;;;6892:64:97;;:23;;;;;;-1:-1:-1;6892:23:97;;;;;;:::i;:::-;;;;;6659:90;624:2139:89;;-1:-1:-1;;;6728:10:97;;6664:41;;6728:10;6664:41;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;624:2139:89;;;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;624:2139:89;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;624:2139:89;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;8889:1:91;624:2139:89;;;;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::o;8406:869:91:-;;;624:2139:89;;8620:15:91;8578:11;8645:18;8678:7;8684:1;8678:7;;8674:241;;8406:869;8939:60;;;;;:::i;:::-;9014:8;;;9010:62;;9252:15;9259:7;624:2139:89;9219:31:91;624:2139:89;9130:48:91;9170:7;;;:::i;:::-;9130:48;13267:109;;;;;;13089:293;;9130:48;624:2139:89;:::i;:::-;;9176:1:91;624:2139:89;9232:17:91;624:2139:89;;;;;;;;9232:17:91;;624:2139:89;-1:-1:-1;;;;;624:2139:89;;;;9219:12:91;;:31;:::i;624:2139:89:-;9259:7:91;;:::i;:::-;624:2139:89;;;;9252:15:91;9176:1;;9188:80;;8406:869::o;9010:62::-;8578:11;;-1:-1:-1;8578:11:91;;-1:-1:-1;8578:11:91;;;;9038:23::o;8674:241::-;8721:14;;;;;:::i;:::-;624:2139:89;;;;;;;8939:60:91;13267:109;;8578:11;13267:109;8753:55;8759:49;13267:109;;8578:11;13267:109;;624:2139:89;;;;;;8759:49:91;624:2139:89;;;;8753:55:91;624:2139:89;;;8753:55:91;13267:109;;;8828:10;8749:156;8674:241;;8749:156;8883:7;;;;;;:::i;:::-;8749:156;8674:241;;624:2139:89;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::o;7558:604:91:-;;624:2139:89;;7686:17:91;7682:83;;624:2139:89;7789:27:91;624:2139:89;7789:27:91;624:2139:89;;7789:27:91;;;;;;:::i;:::-;7860:14;;;;;:::i;:::-;624:2139:89;;;;;;;;;;;;;;;;7888:22:91;;;7884:77;;7975:21;-1:-1:-1;7975:84:91;;;;7558:604;7971:139;;;;8127:28;;;;:::i;7971:139::-;8082:17;;7789:27;8082:17;624:2139:89;8075:24:91;:::o;7975:84::-;624:2139:89;;;8009:16:91;624:2139:89;;8009:16:91;:::i;:::-;624:2139:89;;;8001:24:91;:57;;;;;7975:84;;;;;;;8001:57;8029:29;8038:8;;;8029:18;8038:8;8029:23;8038:8;;:::i;:::-;8029:18;;:::i;:::-;624:2139:89;;;;;8029:29:91;;8001:57;;;;7884:77;7933:17;;;;;7789:27;7933:17;624:2139:89;7926:24:91;:::o;7682:83::-;7726:28;;;;:::i;624:2139:89:-;;;;;;;:::i;:::-;;;;;;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;;;;624:2139:89;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::o;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;624:2139:89;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;3323:1122:97:-;;624:2139:89;;:::i;:::-;;;;3608:16:97;3604:109;;3323:1122;837:15:63;;819:34;837:15;819:34;:::i;:::-;-1:-1:-1;624:2139:89;;;;3778:27:97;;:13;;-1:-1:-1;;;;;624:2139:89;3778:13:97;624:2139:89;;-1:-1:-1;;;;;624:2139:89;;;3778:27:97;624:2139:89;;;;;;;3778:29:97;;;;;;;;;;;;;;;3740:67;3778:29;3759:48;3778:29;-1:-1:-1;3778:29:97;;;3323:1122;3759:48;;:::i;3740:67::-;624:2139:89;;;3740:67:97;;;:107;;;;;3323:1122;3740:197;;;;3323:1122;3723:263;;;624:2139:89;3778:29:97;624:2139:89;;;;;;;;;;4025:25:97;;;;;;;;;4010:143;4025:25;;;-1:-1:-1;4025:25:97;;;3323:1122;4113:30;;;624:2139:89;;;;;;;;;;;4010:143:97;;;;;3778:29;4010:143;;;:::i;:::-;;;-1:-1:-1;;;;;624:2139:89;4010:143:97;;;;;;;4181:257;4010:143;-1:-1:-1;4010:143:97;;;3323:1122;3996:157;;4293:102;3996:157;;4233:162;3996:157;4207:231;3996:157;;2936:28;:47;:38;:28;;;624:2139:89;;2936:16:97;624:2139:89;;;;;;;2936:28:97;624:2139:89;;;;;;;;;;;;;;;;2936:47:97;4351:43;;;4293:102;;:::i;:::-;4233:162;;:::i;:::-;4207:231;:::i;4181:257::-;3323:1122;:::o;4010:143::-;4233:162;4010:143;;;4207:231;4010:143;;;;4293:102;4010:143;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;;;;;4025:25;;;;;;;;;;;;;;:::i;:::-;;;;3723:263;3962:13;;;;;;-1:-1:-1;3962:13:97;-1:-1:-1;3962:13:97;:::o;3740:197::-;3886:41;;3867:70;3886:51;;:41;;;624:2139:89;;3886:29:97;624:2139:89;;;;;;;3886:51:97;624:2139:89;;;;;3867:70:97;-1:-1:-1;3740:197:97;;;:107;837:15:63;;3811:36:97;819:34:63;837:15;819:34;:::i;3811:36:97:-;;;;3740:107;;;3778:29;;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;3604:109;3662:40;;;;;;;;;;;;:::i;:::-;3604:109;;;;6893:76:26;;;:::i;:::-;;;:::i;:::-;1805:1:29;2355:73;1805:1;6893:76:26:o;624:2139:89:-;;;;;;;;;;-1:-1:-1;;;;;624:2139:89;;;;;;;-1:-1:-1;624:2139:89;;:::o;:::-;;;;;;;:::o;:::-;;;;;;;;;;;;8587:1642:58;8658:6;;8654:45;;9401:7;10201:10;10142:26;10093;10044;9995;9946;9897;9848;624:2139:89;10189:23:58;9401:7;8663:1;624:2139:89;;;;10826:16:58;10822:99;;8587:1642;624:2139:89;;;;10938:15:58;10934:96;;8587:1642;624:2139:89;;;;11047:15:58;11043:96;;8587:1642;624:2139:89;;;;11156:15:58;11152:96;;8587:1642;624:2139:89;;;;11265:14:58;11261:93;;8587:1642;624:2139:89;;;;11371:14:58;11367:93;;8587:1642;624:2139:89;;;;11477:14:58;11473:93;;8587:1642;624:2139:89;;;11579:64:58;;8587:1642;624:2139:89;;;9858:10:58;;;;:::i;:::-;624:2139:89;;;;;9848:26:58;9907:10;;;;:::i;9897:26::-;9956:10;;;;:::i;9946:26::-;10005:10;;;;:::i;9995:26::-;10054:10;;;;:::i;10044:26::-;10103:10;;;;:::i;10093:26::-;10152:10;;;;:::i;10142:26::-;10201:10;;;:::i;:::-;10189:23;;:::i;11579:64::-;624:2139:89;;11579:64:58;;11473:93;624:2139:89;11511:11:58;;624:2139:89;;11473:93:58;;;;11367;624:2139:89;11405:11:58;;624:2139:89;;11367:93:58;;;;11261;624:2139:89;11299:11:58;;624:2139:89;;11261:93:58;;;;11152:96;624:2139:89;11191:12:58;;624:2139:89;;11152:96:58;;;;11043;624:2139:89;11082:12:58;;624:2139:89;;11043:96:58;;;;10934;624:2139:89;10973:12:58;;624:2139:89;;10934:96:58;;;;10822:99;10862:13;;;624:2139:89;10822:99:58;;;;8654:45;8680:8;8663:1;8680:8;:::o;12497:447:91:-;;;12694:10;;;;;;12926:11;;;12497:447;:::o;12687:230::-;2900:5:58;;;;;;624:2139:89;;2910:5:58;;;624:2139:89;;;;;;;;;13267:109:91;-1:-1:-1;13267:109:91;624:2139:89;13267:109:91;;;-1:-1:-1;13267:109:91;;624:2139:89;;;;;-1:-1:-1;12771:136:91;624:2139:89;;;12830:10:91;;12771:136;;12687:230;;;;12771:136;624:2139:89;;;;;;;;;;;12771:136:91;;;6999:207;;624:2139:89;;9594:15:61;-1:-1:-1;9619:18:61;9652:7;9658:1;9652:7;;9648:234;;6999:207:91;9906:53:61;;;;;:::i;:::-;9977:8;;;:63;-1:-1:-1;9977:63:61;;-1:-1:-1;;;;;624:2139:89;;7168:7:91;624:2139:89;;;7178:12:91;;:17;:12;;:17;:::i;9977:63:61:-;9992:41;10025:7;9992:48;10025:7;;:::i;:::-;9992:41;13267:109:91;;;;;;13089:293;;9992:41:61;624:2139:89;;;;;9992:48:61;9977:63;;;9648:234;9695:14;;;;;:::i;:::-;624:2139:89;;;;;;;9906:53:61;13267:109:91;;-1:-1:-1;13267:109:91;624:2139:89;13267:109:91;;;-1:-1:-1;13267:109:91;;624:2139:89;;;;;9727:48:61;9723:149;624:2139:89;;;9795:10:61;9723:149;9648:234;;9723:149;9850:7;;;;;;:::i;:::-;9723:149;9648:234;;624:2139:89;;;;;;;:::i;:::-;-1:-1:-1;624:2139:89;;;;;;;:::o;11486:272:91:-;;624:2139:89;11308:22:61;11718:31:91;11486:272;624:2139:89;;:::i;:::-;;;;:::i;:::-;;11308:22:61;;:::i;:::-;624:2139:89;;:::i;:::-;;11718:12:91;624:2139:89;;;;;11731:17:91;624:2139:89;;;;;11731:17:91;;624:2139:89;;11718:12:91;;:31;:::i;:::-;624:2139:89;;;;;;;;;:::i;:::-;;;;;;11731:17:91;11672:79;;624:2139:89;11486:272:91;:::o;2557:104:58:-;;2641:5;;;;;;:13;2557:104;:::o;2641:13::-;;;2557:104;:::o;7084:141:26:-;624:2139:89;-1:-1:-1;;;;;;;;;;;624:2139:89;;;;7150:18:26;7146:73;;7084:141::o;7146:73::-;624:2139:89;;-1:-1:-1;;;7191:17:26;;;;;14291:213:59;624:2139:89;14369:24:59;;;;14365:103;;624:2139:89;14291:213:59;:::o;14365:103::-;624:2139:89;;;;14416:41:59;;;;;;14447:2;14416:41;;;624:2139:89;;;;;14416:41:59","linkReferences":{},"immutableReferences":{"64520":[{"start":715,"length":32}],"64523":[{"start":2313,"length":32}],"69080":[{"start":1530,"length":32}],"69423":[{"start":1691,"length":32},{"start":3119,"length":32}],"69425":[{"start":1372,"length":32}],"69427":[{"start":1440,"length":32}],"72304":[{"start":361,"length":32},{"start":3716,"length":32}],"72307":[{"start":647,"length":32}]}},"methodIdentifiers":{"BASE_DELEGATOR_HINTS()":"79d89614","BURNER_GAS_LIMIT()":"d5c24e1a","BURNER_RESERVE()":"2964f8dc","FACTORY()":"2dd31000","NETWORK_MIDDLEWARE_SERVICE()":"2c9d45b3","SLASHER_HINTS()":"4eb5a242","TYPE()":"bb24fe8a","VAULT_FACTORY()":"103f2907","VETO_SLASHER_HINTS()":"6565b7db","cumulativeSlash(bytes32,address)":"1a2be2c4","cumulativeSlashAt(bytes32,address,uint48,bytes)":"aa8e6489","cumulativeSlashHint(address,bytes32,address,uint48)":"4a719655","cumulativeSlashHintInternal(bytes32,address,uint48)":"77028046","initialize(bytes)":"439fab91","isBurnerHook()":"34d098ea","latestSlashedCaptureTimestamp(bytes32,address)":"267de1f3","slashableStake(bytes32,address,uint48,bytes)":"aab3595f","slashableStakeHints(address,bytes32,address,uint48)":"4ea2e926","staticDelegateCall(address,bytes)":"9f86fd85","vault()":"fbfa77cf"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"baseDelegatorHints\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"ExternalCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientBurnerGas\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NoBurner\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotNetworkMiddleware\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotVault\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ReentrancyGuardReentrantCall\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"bits\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"SafeCastOverflowedUintDowncast\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"BASE_DELEGATOR_HINTS\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"BURNER_GAS_LIMIT\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"BURNER_RESERVE\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"FACTORY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"NETWORK_MIDDLEWARE_SERVICE\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"SLASHER_HINTS\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"TYPE\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"VAULT_FACTORY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"VETO_SLASHER_HINTS\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"cumulativeSlash\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hint\",\"type\":\"bytes\"}],\"name\":\"cumulativeSlashAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"slasher\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"}],\"name\":\"cumulativeSlashHint\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"}],\"name\":\"cumulativeSlashHintInternal\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"exists\",\"type\":\"bool\"},{\"internalType\":\"uint32\",\"name\":\"hint\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isBurnerHook\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"latestSlashedCaptureTimestamp\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"value\",\"type\":\"uint48\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"captureTimestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hints\",\"type\":\"bytes\"}],\"name\":\"slashableStake\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"slasher\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"captureTimestamp\",\"type\":\"uint48\"}],\"name\":\"slashableStakeHints\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"staticDelegateCall\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"vault\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"ReentrancyGuardReentrantCall()\":[{\"details\":\"Unauthorized reentrant call.\"}],\"SafeCastOverflowedUintDowncast(uint8,uint256)\":[{\"details\":\"Value doesn't fit in an uint of `bits` size.\"}]},\"events\":{\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"}},\"kind\":\"dev\",\"methods\":{\"cumulativeSlash(bytes32,address)\":{\"params\":{\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"},\"returns\":{\"_0\":\"cumulative slash amount\"}},\"cumulativeSlashAt(bytes32,address,uint48,bytes)\":{\"params\":{\"hint\":\"hint for the checkpoint index\",\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\",\"timestamp\":\"time point to get the cumulative slash amount until (inclusively)\"},\"returns\":{\"_0\":\"cumulative slash amount until the given timestamp (inclusively)\"}},\"initialize(bytes)\":{\"params\":{\"data\":\"some data to use\"}},\"slashableStake(bytes32,address,uint48,bytes)\":{\"params\":{\"captureTimestamp\":\"time point to get the stake amount at\",\"hints\":\"hints for the checkpoints' indexes\",\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"},\"returns\":{\"amount\":\"slashable amount of the stake\"}},\"staticDelegateCall(address,bytes)\":{\"details\":\"It allows to use this contract's storage on-chain.\",\"params\":{\"data\":\"data to make a delegatecall with\",\"target\":\"address of the contract to make a delegatecall to\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"BURNER_GAS_LIMIT()\":{\"notice\":\"Get a gas limit for the burner.\"},\"BURNER_RESERVE()\":{\"notice\":\"Get a reserve gas between the gas limit check and the burner's execution.\"},\"FACTORY()\":{\"notice\":\"Get the factory's address.\"},\"NETWORK_MIDDLEWARE_SERVICE()\":{\"notice\":\"Get the network middleware service's address.\"},\"TYPE()\":{\"notice\":\"Get the entity's type.\"},\"VAULT_FACTORY()\":{\"notice\":\"Get the vault factory's address.\"},\"cumulativeSlash(bytes32,address)\":{\"notice\":\"Get a cumulative slash amount for an operator on a subnetwork.\"},\"cumulativeSlashAt(bytes32,address,uint48,bytes)\":{\"notice\":\"Get a cumulative slash amount for an operator on a subnetwork until a given timestamp (inclusively) using a hint.\"},\"initialize(bytes)\":{\"notice\":\"Initialize this entity contract by using a given data.\"},\"isBurnerHook()\":{\"notice\":\"Get if the burner is needed to be called on a slashing.\"},\"latestSlashedCaptureTimestamp(bytes32,address)\":{\"notice\":\"Get the latest capture timestamp that was slashed on a subnetwork.\"},\"slashableStake(bytes32,address,uint48,bytes)\":{\"notice\":\"Get a slashable amount of a stake got at a given capture timestamp using hints.\"},\"staticDelegateCall(address,bytes)\":{\"notice\":\"Make a delegatecall from this contract to a given target contract with a particular data (always reverts with a return data).\"},\"vault()\":{\"notice\":\"Get the vault's address.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/contracts/hints/SlasherHints.sol\":\"BaseSlasherHints\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol\":{\"keccak256\":\"0x6662ec4e5cefca03eeadd073e9469df8d2944bb2ee8ec8f7622c2c46aab5f225\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4d8544c6f8daa4d1bc215c6a72fe0acdb748664a105b0e5efc19295667521d45\",\"dweb:/ipfs/QmdGWqdnXT8S3RgCR6aV8XHZrsybieMQLLnug1NtpSjEXN\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0xc163fcf9bb10138631a9ba5564df1fa25db9adff73bd9ee868a8ae1858fe093a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9706d43a0124053d9880f6e31a59f31bc0a6a3dc1acd66ce0a16e1111658c5f6\",\"dweb:/ipfs/QmUFmfowzkRwGtDu36cXV9SPTBHJ3n7dG9xQiK5B28jTf2\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609\",\"dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9\",\"dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardUpgradeable.sol\":{\"keccak256\":\"0xb44e086e941292cdc7f440de51478493894ef0b1aeccb0c4047445919f667f74\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://942dad22fbdc1669f025540ba63aa3ccfad5f8458fc5d4525b31ebf272e7af45\",\"dweb:/ipfs/Qmdo4X2M82aM3AMoW2kf2jhYkSCyC4T1pHNd6obdsDFnAB\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol\":{\"keccak256\":\"0xdaba3f7c42c55b2896353f32bd27d4d5f8bae741b3b05d4c53f67abc4dc47ce8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1fa2e61141c602510bcd2cd936ed9561922ac8772a9b9c9a9db091a74e354a45\",\"dweb:/ipfs/QmcHQDDoEBwJmwUbzoVkytvJsBx3KVHYFFnDkvRGWh9Wmh\"]},\"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0xb6b36edd6a2999fd243ff226d6cbf84bd71af2432bbd0dfe19392996a1d9cb41\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1fd2f35495652e57e3f99bc6c510bc5f7dd398a176ea2e72d8ed730aebc6ca26\",\"dweb:/ipfs/QmTQV6X4gkikTib49cho5iDX3JvSQbdsoEChoDwrk3CbbH\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC1271.sol\":{\"keccak256\":\"0x85a45f3f10014a0f8be41157a32b6a5f905753ea64a4b64e29fc12b7deeecf39\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c3c74009ce36136b36c77c23935b8e4a7b4f253be2da2be4fb4a916b1ce43743\",\"dweb:/ipfs/QmcH36v3iN7SJJuF73AunLR2LtNxhVJ1wm63ph4dPZ4pcL\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC5267.sol\":{\"keccak256\":\"0x92aa1df62dc3d33f1656d63bede0923e0df0b706ad4137c8b10b0a8fe549fd92\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c5c0f29195ad64cbe556da8e257dac8f05f78c53f90323c0d2accf8e6922d33a\",\"dweb:/ipfs/QmQ61TED8uaCZwcbh8KkgRSsCav7x7HbcGHwHts3U4DmUP\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c\",\"dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0x6008dabfe393240d73d7dd7688033f72740d570aa422254d29a7dce8568f3aff\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f5196ec75139918c6c7bb4251b36395e668f1fa6d206beba7e7520e74913940d\",\"dweb:/ipfs/QmSyqjksXxmm2mCG6qRd1yuwLykypkSVBbnBnGqJRcuJMi\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x37bb49513c49c87c4642a891b13b63571bc87013dde806617aa1efb54605f386\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b3036b3a83b7c48f96641f2a9002b9f2dcb6a5958dd670894ada21ae8229b3d0\",\"dweb:/ipfs/QmUNfSBdoVtjhETaUJCYcaC7pTMgbhht926tJ2uXJbiVd3\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0xaf28a975a78550e45f65e559a3ad6a5ad43b9b8a37366999abd1b7084eb70721\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b7bd24e224f67f65bfadf85dc2929fa965456bb2415478bd0125471b5ce35245\",\"dweb:/ipfs/QmRaydGr8BTHs1kvaZfsNU69pKzUAGFrvABn1KiRSbE51y\"]},\"lib/openzeppelin-contracts/contracts/utils/ShortStrings.sol\":{\"keccak256\":\"0x18a7171df639a934592915a520ecb97c5bbc9675a1105607aac8a94e72bf62c6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7478e1f13da69a2867ccd883001d836b75620362e743f196376d63ed0c422a1c\",\"dweb:/ipfs/QmWywcQ9TNfwtoqAxbn25d8C5VrV12PrPS9UjtGe6pL2BA\"]},\"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0x32ba59b4b7299237c8ba56319110989d7978a039faf754793064e967e5894418\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1ae50c8b562427df610cc4540c9bf104acca7ef8e2dcae567ae7e52272281e9c\",\"dweb:/ipfs/QmTHiadFCSJUPpRjNegc5SahmeU8bAoY8i9Aq6tVscbcKR\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0x55f102ea785d8399c0e58d1108e2d289506dde18abc6db1b7f68c1f9f9bc5792\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e52e0a7765c943ef14e5bcf11e46e6139fa044be564881378349236bf2e3453\",\"dweb:/ipfs/QmZEeeXoFPW47amyP35gfzomF9DixqqTEPwzBakv6cZw6i\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0xeed0a08b0b091f528356cbc7245891a4c748682d4f6a18055e8e6ca77d12a6cf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba80ba06c8e6be852847e4c5f4492cef801feb6558ae09ed705ff2e04ea8b13c\",\"dweb:/ipfs/QmXRJDv3xHLVQCVXg1ZvR35QS9sij5y9NDWYzMfUfAdTHF\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/EIP712.sol\":{\"keccak256\":\"0x999f705a027ed6dc2d4e0df2cc4a509852c6bfd11de1c8161bf88832d0503fd0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0798def67258d9a3cc20b2b4da7ebf351a5cefe0abfdd665d2d81f8e32f89b21\",\"dweb:/ipfs/QmPEvJosnPfzHNjKvCv2D3891mA2Ww8eUwkqrxBjuYdHCt\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol\":{\"keccak256\":\"0xba333517a3add42cd35fe877656fc3dfcc9de53baa4f3aabbd6d12a92e4ea435\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2ceacff44c0fdc81e48e0e0b1db87a2076d3c1fb497341de077bf1da9f6b406c\",\"dweb:/ipfs/QmRUo1muMRAewxrKQ7TkXUtknyRoR57AyEkoPpiuZQ8FzX\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/SignatureChecker.sol\":{\"keccak256\":\"0x6b11eb41a228cca35d4b662b4df69fcd75192851365102690f57b2ac01e83fe6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ab006a2983ed350d2af21ddcdd835dcae3b8340086cc4d088460da5abd041f69\",\"dweb:/ipfs/QmbEacDhkJZiGrgzLjB4pNtE8Z1uudjDw1DvcDUTVQFsLG\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875\",\"dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0xe19a4d5f31d2861e7344e8e535e2feafb913d806d3e2b5fe7782741a2a7094fe\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4aed79c0fa6f0546ed02f2f683e8f77f0fd2ed7eb34d8bbf3d373c9a6d95b13c\",\"dweb:/ipfs/QmWqVz6UAVqmnWU5pqYPt1o6iDEZyPaBraAA3rKfTTSfYj\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x5f7e4076e175393767754387c962926577f1660dd9b810187b9002407656be72\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7d533a1c97cd43a57cd9c465f7ee8dd0e39ae93a8fb8ff8e5303a356b081cdcc\",\"dweb:/ipfs/QmVBEei6aTnvYNZp2CHYVNKyZS4q1KkjANfY39WVXZXVoT\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/Checkpoints.sol\":{\"keccak256\":\"0xbdc5e074d7dd6678f67e92b1a51a20226801a407b0e1af3da367c5d1ff4519ad\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a36cca6b22fff3db16fc789ff6c60eea71d4b156065d4d0c83a0bc5e91a77a8b\",\"dweb:/ipfs/QmYN3exd5AemxjBrN8XMB1p5LbbE16uC3sjbYjwi8AjcGR\"]},\"lib/openzeppelin-contracts/contracts/utils/types/Time.sol\":{\"keccak256\":\"0xc7755af115020049e4140f224f9ee88d7e1799ffb0646f37bf0df24bf6213f58\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7f09bf94d5274334ec021f61a04659db303f31e60460e14b709c9bf187740111\",\"dweb:/ipfs/QmNvgomZYUwFAt4cZbPWAiTeSZQreGehY9BK5xyVJsUttb\"]},\"src/contracts/common/Entity.sol\":{\"keccak256\":\"0x3d61a932995b8443381f3950542d388223a2c26dd5d29a3274dea3baa7388bd7\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://7cdf5f03ca72fd263fd32ff59c8d88ddca911ae83896a287d10772c1bbe9b138\",\"dweb:/ipfs/QmbP84r5BWT1Rn9AYTntWSf3xUMTTCohTZJFhbBhDXFoHa\"]},\"src/contracts/common/MigratableEntity.sol\":{\"keccak256\":\"0x2d736f4dacd5d7e7697503bc426c78b8250fe1694ca157965ec178da6807de58\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://f1237acf96b4b9f9b69156e068eddd726a6e15bd8e87a18dc999cd4ba4da069c\",\"dweb:/ipfs/QmS6M8fiFFSeuJ4ZKKq1z8W7w4ybeHQSy5TLASGoc1LVic\"]},\"src/contracts/common/StaticDelegateCallable.sol\":{\"keccak256\":\"0x350029aa8955eacaffffaeb58babc5c98e80ebc5c5db388ed17ee6465f4a9d90\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://eb392a8ee9050e0af606897df63e3404e3829e8b688b580663892f9664195764\",\"dweb:/ipfs/QmaXC8jqV8UrrAFkzXTEv2fJF56sy33HhLxAzaRZmUxuXD\"]},\"src/contracts/delegator/BaseDelegator.sol\":{\"keccak256\":\"0x7c54d491fdd4415b764a9c8defa068e56d4c0c8c9419be0053a1d377669290e8\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://9238bfbad0f6eeb0dc7727724de14380f1980b395902269703d5e2ef07e52e10\",\"dweb:/ipfs/QmPJn1V4HNXcEghYvogGuSTF24dSQUPosR5qtsXcmNqRm3\"]},\"src/contracts/delegator/FullRestakeDelegator.sol\":{\"keccak256\":\"0x0a81c4f8e72914563a9cb771e93acf889c71ea36b7bec040e4eb562b199d5af1\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://6fc66b6ba02da77046a0bbbd1dd407a62c08f52e04486c9cbd2cb1cca3da555f\",\"dweb:/ipfs/QmZQivK1ZnMxfRQQ5aLpV9co5u55wQVNev5Rg1hzAqxhkE\"]},\"src/contracts/delegator/NetworkRestakeDelegator.sol\":{\"keccak256\":\"0xd3a8e6522f9c6fdcc2da837c9023afd6bdff2bce45a35590320c475519e3636d\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://58b17a87f6554f08376f9ea7fedf486a4aa75801bf0ad8b23ff5a46959b6b7a3\",\"dweb:/ipfs/QmSTmNh67tYt8CmjVZb57r8N3qX5yeYdMApKPJm3qvQgQw\"]},\"src/contracts/delegator/OperatorNetworkSpecificDelegator.sol\":{\"keccak256\":\"0x031a10722b9ec49048f0952710401131290adb87e71caf294e864e7ac3b98a16\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://72428febc875134b2f29205e6f294634a1c22a7d5c78d6a9cb2f8196f107c9b5\",\"dweb:/ipfs/QmTPwXR6h5oytckmkLrHdKeEMdphJxceDhYUR4zvQeWAwY\"]},\"src/contracts/delegator/OperatorSpecificDelegator.sol\":{\"keccak256\":\"0x630ce62fa30b9f3349ab7a8cf8dbf041319febc6dd757be2f94d3d25944ed328\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://c2ac59d47ce57d2a6819ae9833e1a618a371eccff93eb5ab367b201b01f42bfa\",\"dweb:/ipfs/QmdBpGMBivpNPv2WbH8vnCUy5xkVeaxQvGgqi33vKCz1kA\"]},\"src/contracts/hints/DelegatorHints.sol\":{\"keccak256\":\"0x44aa0c396311a54afbc7c73e8dadeed41e3165a4fd13f712b27d63d50fc3376d\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://2f255214f3531fc707d88be0d56a7a0aed4180439316d099d760d9118aa83093\",\"dweb:/ipfs/QmZD1w5p1ukJSXumUAjvxwGmkPhn7vsr21Y2atLGEZR2oi\"]},\"src/contracts/hints/Hints.sol\":{\"keccak256\":\"0x8b565df1ae35993c097a9e642002782a8f451f6fd01809cad6bcd345bdf1b99c\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://99a19adb01e350a92f534095b3078229df1f2f83077992d75d58d8684be45971\",\"dweb:/ipfs/QmbmwcuswVbzvwHQFTtrJG86oV98GnfxqYTb8cV8u1acox\"]},\"src/contracts/hints/OptInServiceHints.sol\":{\"keccak256\":\"0x95d9407900d27b9f4a1233b772aeed809c07b2dc5b31cfc9fa77ca26514c49e5\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://a13a8877e312d7e6b8b85bde3668c5d84ff5ecc83f762cd573f2b7104c64eb42\",\"dweb:/ipfs/QmYV2J55acuGzCNnS3juABuUHY5U1xc8g8o9jwEyFFdeG5\"]},\"src/contracts/hints/SlasherHints.sol\":{\"keccak256\":\"0xd77c5f3bbb0265af8ecd947df88f6f9684e136d80052b5292f5b29aaa3566a3f\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://484a26504bf6706202ec82a9a4cfa7d196bbc552b5b78ced25bf7130c2842595\",\"dweb:/ipfs/QmaQqmkoZoUWEam4R94vmajzH3gKqFqpZQwFbrHDsN1peV\"]},\"src/contracts/hints/VaultHints.sol\":{\"keccak256\":\"0xccb505b7159b769cc114d67b87c2de6b106557f667fc8f3780114baad5c3c442\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://6d0c80a908fc16e96a8b5605a0bd53f9e89ad0ef0a738fbbae80ba4d3160749b\",\"dweb:/ipfs/QmXo5UtWoR8YmunqcbBU8rQMm1nvmvjNPoXcVrDhh4pEwR\"]},\"src/contracts/libraries/Checkpoints.sol\":{\"keccak256\":\"0xba90097c8bfe0a975499428b5f8ac5569483c7d92ccc28c12d70de416aae040c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://12f5d93ca94cd06d3147db68993165a58e17903ed53682560de61f3085ad4609\",\"dweb:/ipfs/QmePiuAqvXprMLmFZkGZeGjvGPAvsEDHfCDv7BoQhXu9xE\"]},\"src/contracts/libraries/ERC4626Math.sol\":{\"keccak256\":\"0x8441160513c1cbeb1c3b9ee077bcc7e7ce20006b52a77c8dd39ff0ef89699939\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://943f8cc3e26ddf649f465f40c909819f5c864717c4baa339e9e403b9374a4653\",\"dweb:/ipfs/QmXPxi1sUDsrGprZdUgCzoPEosaZMv9ZhygWQ1vAi1phAB\"]},\"src/contracts/libraries/Subnetwork.sol\":{\"keccak256\":\"0xf5ef5506fd66082b3c2e7f3df37529f5a8efad32ac62e7c8914bd63219190bfe\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba031a54ee0d0e9a270c2b9e18437f5668cfeb659cfd5fe0677459d7fcac2a56\",\"dweb:/ipfs/QmReP3H7qQ78tAfgLnJKsNEQNCQfF1X1Get38Ffd4kzq32\"]},\"src/contracts/service/OptInService.sol\":{\"keccak256\":\"0x4e0932077f2686b7990e10d59deb2535334c0d09e52ef6e57c6ab09eca21c4b1\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://7c00d311032ed4a1743aca7475f3c86ce15cdfc2218108efc3731c03d34a5278\",\"dweb:/ipfs/QmUGGfVwVhaHr5kS4177yKKYiLYzi5qZpkEmvYxBZqazxf\"]},\"src/contracts/slasher/BaseSlasher.sol\":{\"keccak256\":\"0x190e5dce196a061bdad42468c52e9f5b0eb7810cd7d0c19f04d6a2e94984f1b6\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://07ca08d0cd43c2fe5d54a5577f6bdd522ced410f5d3a52e764deaa7ba26b5f06\",\"dweb:/ipfs/QmZe3PiMKBQKWcwodaLupragdqxPjgS4v1qMC7RXau8hDF\"]},\"src/contracts/slasher/Slasher.sol\":{\"keccak256\":\"0xeee0cb25fad58d496fdcc641d852d11bae06e6ceed5230ae21150964175c494f\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://34aa27d21246a1bcee0b6a2afa8d9d613441156362430392f75d176511d58c61\",\"dweb:/ipfs/Qmf53Y3zdGfH4PU2zpSGeHZ8mMLzLXCtmkQrG5mnVJECQ3\"]},\"src/contracts/slasher/VetoSlasher.sol\":{\"keccak256\":\"0xeccc8128de5e1ad499c067feac1c526638fbbac1a18b96726fc7507969fd5897\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://cdfcf281338423625acbccdf8810115b258ef7cfe4aa3c10b8911ead1aa85429\",\"dweb:/ipfs/QmZFsDvZXpkFkx4PHcDXAVPN3ZCAahbSVfYpSVrMBvbt4k\"]},\"src/contracts/vault/Vault.sol\":{\"keccak256\":\"0x2ceff6ed3298c4cad144c99fcc79b51cb9397d6ebef00285b915848b476f8c2e\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://11f2fb3581854f3ab6e82e8d4935d9eb510c903a13c3f022346c2956a58f5307\",\"dweb:/ipfs/QmdUnoXoyYoG9SGWyQZCFyLDRUUX3eXyXetkRvw6jxqqBz\"]},\"src/contracts/vault/VaultStorage.sol\":{\"keccak256\":\"0x57db25b127d77ea3472de53e3a4af3354399655b9268638b99ca5925fa364a56\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://aa763d9a6ec508ae3abfb8228b72b9fd9525279e5135d4962e79ff059feb1173\",\"dweb:/ipfs/QmcbDR6E9wyEpu6V2FkEC4hnWy47zXA9LSKJde6zSGd33Q\"]},\"src/interfaces/common/IEntity.sol\":{\"keccak256\":\"0x8ef4b63d6da63489778ccd5f8d13ebdd527dd4b62730b2c616df5af7474d2d21\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a8d69576a9219d85c50816a18ad53a4d53cfcb27ed38b8cccc808dc2734b71b\",\"dweb:/ipfs/QmYVN3P4Q4REvBWJ97TbAcaxm3uyB2anV6NSGa6ZtSwcEv\"]},\"src/interfaces/common/IMigratableEntity.sol\":{\"keccak256\":\"0x8f5f2809f3afbe8ebfbb365dd7b57b4dd3b6f9943a6187eaf648d45895b8e3c4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ffe640537d539e7a4fde70d30d3e4c57f4ba9c2c25c450cea713aae38e8fd5c\",\"dweb:/ipfs/QmSUTGzvdcn1R1KB7tLThMRtESsfPbeXDhhhKWGtntzBds\"]},\"src/interfaces/common/IRegistry.sol\":{\"keccak256\":\"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014\",\"dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK\"]},\"src/interfaces/common/IStaticDelegateCallable.sol\":{\"keccak256\":\"0xa335d4e81b9071b7de66ef92b43ff20671d86516eb1be46fef29a3483cd3f5d5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d464b9db863c14c05547d2b23352f2e9b7b784799cf09f6bbc4906a2a74e3516\",\"dweb:/ipfs/QmUVWzFvJz7eEbDQKiFTTzwi7TEbjcs3VmwdM4kuptAKvi\"]},\"src/interfaces/delegator/IBaseDelegator.sol\":{\"keccak256\":\"0x96bb312f032e17accce3f8f80936d99468029d6b37c9ca74acdb4b026a0148ee\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2a66dcb5b7d1a6ef6a363431ea98ebd78bc4fdd3d7a134d9b542dc66e7d025c2\",\"dweb:/ipfs/QmRhTPLd2ZAyRHmJUFUcWKs9b3if49QY17LYZuRqWmghw8\"]},\"src/interfaces/delegator/IDelegatorHook.sol\":{\"keccak256\":\"0xc51aa8d7d1f6c8043ee819b7aeb86da0e993912e1442098df897e299f01f9f46\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://adddf5cb2ba282aeb576b26efb28640f865a1721cc9b6eee8b3ee0457a2c9780\",\"dweb:/ipfs/QmNYgAmnLRwWZbhTuQhZs9rx4zcme1df5mEepkrniorSoW\"]},\"src/interfaces/delegator/IFullRestakeDelegator.sol\":{\"keccak256\":\"0xa3c8cb2e45d4d8ce90e95263bea40c01dc400f05ad65bc29597d878606be5e7d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://782cf5e201aa4cca037ebafd3807a68ff1cc721d5b8416a35244db0d0607369e\",\"dweb:/ipfs/QmQkJks6x7CKndeTPa9LxgTNygD5uEi7obhADhpq1Lsr9A\"]},\"src/interfaces/delegator/INetworkRestakeDelegator.sol\":{\"keccak256\":\"0xe7030fe30389a147fd710e3436ec346b4842695fd3e65a81b95375c9f1d633fc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://739c7e66d301778054f5c90bee45ec9438f68afba8a03eaaac52064c73b115ad\",\"dweb:/ipfs/QmfZ2ytKcTykAc76nxhg8ikUXV8NdBpetqb8W4YWPcox1Z\"]},\"src/interfaces/delegator/IOperatorNetworkSpecificDelegator.sol\":{\"keccak256\":\"0x74b95e64d29769202d45dd277bb830f623ff3d41ce77b80ce3ee4e318a5c71ec\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e512b903aae5c1b8a028c6e3f4f6223b5cb5d704503cfa6bd37b5346868f5c20\",\"dweb:/ipfs/QmZim9YExsPWtyxyeui993HTKAEmrg8MUcSkZ77Gp2JcuZ\"]},\"src/interfaces/delegator/IOperatorSpecificDelegator.sol\":{\"keccak256\":\"0x72075cab585dc17240cc3e32bc99b92f0d5627ddd988fed680e3e1a52d5a01e4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7448bc90699409ae61d85216b5efc2143a37f0f73354be2aea993bc54afca441\",\"dweb:/ipfs/QmXE4gAxM8pHosZK8mcTcj17puBx484meDCcmrDePskGHZ\"]},\"src/interfaces/service/INetworkMiddlewareService.sol\":{\"keccak256\":\"0x347afc7fcf1fbcdb96d66162070ef6c78aed27b3af2c1d5dfb4e511840631783\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2d90b8ceb495159e8e4e95d76447719dd166443f67dfabdd942846162071595c\",\"dweb:/ipfs/QmVVuiAWYx92T6vBvNMKZfTvraCf1fa16BsUKkdNs3hdHA\"]},\"src/interfaces/service/IOptInService.sol\":{\"keccak256\":\"0x76fb5460a6d87a5705433d4fbeff7253cd75b8bbd0c888b2088f16e86ace146a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://990322019b3d11465f7024bae77ccbf7e2fe5d6fa3c754584778f37d04fa1337\",\"dweb:/ipfs/QmaSNHzcqxTkUCG9a4nqVfLECHLdjdrwAnDi3yDC7tDL24\"]},\"src/interfaces/slasher/IBaseSlasher.sol\":{\"keccak256\":\"0x7c82528b445659c313ab77335c407b0b6efe5e79027187bb287f7bc74202b404\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0274c90aa5df1aa6bb470a6aab53992fb14fd7e5472c9430416505b29647d9cf\",\"dweb:/ipfs/QmckbmJLDetPemVzCnnGcKYWAZV2BRFXGDsjiaec8jkHxx\"]},\"src/interfaces/slasher/IBurner.sol\":{\"keccak256\":\"0xaf495dacc19ae0b3c787ba8021c5944927d70261536addd234d7dab146158c2b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9b3cc66251008be6ff9fc8b11ecc6831d5a9dca49a3fe9817fcd970253c1d447\",\"dweb:/ipfs/QmVxfb9ALGdF9W3SN2h41gQbUct6tawvu5bw4K89kFQ4HW\"]},\"src/interfaces/slasher/ISlasher.sol\":{\"keccak256\":\"0x34d226d67a3d5e16571f2fac91a8b9773551bcc41c88a96279669dd78d192625\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a6e8c1462ee4a1b0f745414be043c09012ea676613790aba004b06c85c980d1\",\"dweb:/ipfs/QmadjNEbHKRthtA1EeNy3Kg2sXpejH2KBeHm8QZtBPvXbJ\"]},\"src/interfaces/slasher/IVetoSlasher.sol\":{\"keccak256\":\"0xdf7edd04a4f36e9aec3a15241dcb6b6315b2e64927b12710c2c410d571fc55e9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c4be6ac339c2ebf230fed65363f036784224095d0cd0f3f2d01d64d6e0da9508\",\"dweb:/ipfs/QmRSMbpfaHExqrzUA8vYZMYZWh6eQW1KX9JKJSLdgronfg\"]},\"src/interfaces/vault/IVault.sol\":{\"keccak256\":\"0xffee01d383cd4e1a5530c614bf4360c1ef070c288abec9da1eb531b51bc07235\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://04f0046cac285d8ec44ebbb1f79dc94fab4495767190cad8364fbc1fafaadfb9\",\"dweb:/ipfs/QmUawAunwzXfCyShWfhKeThAgKtqe51hmrxvrXvM772M2R\"]},\"src/interfaces/vault/IVaultStorage.sol\":{\"keccak256\":\"0x592626f13754194f83047135de19229c49390bd59e34659b1bb38be71d973a22\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://06a6a9dfddd05e580b32bebe2cff4f63ba26a653180676d58225dd30d9c89d3e\",\"dweb:/ipfs/QmdgzBeY6Sxo8mGtyBxtv1tM1c2kU6J6zjeRd7vuXm4DU6\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.25+commit.b61c2a91"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"baseDelegatorHints","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"ExternalCall"},{"inputs":[],"type":"error","name":"InsufficientBurnerGas"},{"inputs":[],"type":"error","name":"InvalidInitialization"},{"inputs":[],"type":"error","name":"NoBurner"},{"inputs":[],"type":"error","name":"NotInitialized"},{"inputs":[],"type":"error","name":"NotInitializing"},{"inputs":[],"type":"error","name":"NotNetworkMiddleware"},{"inputs":[],"type":"error","name":"NotVault"},{"inputs":[],"type":"error","name":"ReentrancyGuardReentrantCall"},{"inputs":[{"internalType":"uint8","name":"bits","type":"uint8"},{"internalType":"uint256","name":"value","type":"uint256"}],"type":"error","name":"SafeCastOverflowedUintDowncast"},{"inputs":[{"internalType":"uint64","name":"version","type":"uint64","indexed":false}],"type":"event","name":"Initialized","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"BASE_DELEGATOR_HINTS","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"BURNER_GAS_LIMIT","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"BURNER_RESERVE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"FACTORY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"NETWORK_MIDDLEWARE_SERVICE","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"SLASHER_HINTS","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"TYPE","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"VAULT_FACTORY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"VETO_SLASHER_HINTS","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"cumulativeSlash","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint48","name":"timestamp","type":"uint48"},{"internalType":"bytes","name":"hint","type":"bytes"}],"stateMutability":"view","type":"function","name":"cumulativeSlashAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"slasher","type":"address"},{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint48","name":"timestamp","type":"uint48"}],"stateMutability":"view","type":"function","name":"cumulativeSlashHint","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint48","name":"timestamp","type":"uint48"}],"stateMutability":"view","type":"function","name":"cumulativeSlashHintInternal","outputs":[{"internalType":"bool","name":"exists","type":"bool"},{"internalType":"uint32","name":"hint","type":"uint32"}]},{"inputs":[{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[],"stateMutability":"view","type":"function","name":"isBurnerHook","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"latestSlashedCaptureTimestamp","outputs":[{"internalType":"uint48","name":"value","type":"uint48"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint48","name":"captureTimestamp","type":"uint48"},{"internalType":"bytes","name":"hints","type":"bytes"}],"stateMutability":"view","type":"function","name":"slashableStake","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"slasher","type":"address"},{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint48","name":"captureTimestamp","type":"uint48"}],"stateMutability":"view","type":"function","name":"slashableStakeHints","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"staticDelegateCall"},{"inputs":[],"stateMutability":"view","type":"function","name":"vault","outputs":[{"internalType":"address","name":"","type":"address"}]}],"devdoc":{"kind":"dev","methods":{"cumulativeSlash(bytes32,address)":{"params":{"operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"},"returns":{"_0":"cumulative slash amount"}},"cumulativeSlashAt(bytes32,address,uint48,bytes)":{"params":{"hint":"hint for the checkpoint index","operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)","timestamp":"time point to get the cumulative slash amount until (inclusively)"},"returns":{"_0":"cumulative slash amount until the given timestamp (inclusively)"}},"initialize(bytes)":{"params":{"data":"some data to use"}},"slashableStake(bytes32,address,uint48,bytes)":{"params":{"captureTimestamp":"time point to get the stake amount at","hints":"hints for the checkpoints' indexes","operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"},"returns":{"amount":"slashable amount of the stake"}},"staticDelegateCall(address,bytes)":{"details":"It allows to use this contract's storage on-chain.","params":{"data":"data to make a delegatecall with","target":"address of the contract to make a delegatecall to"}}},"version":1},"userdoc":{"kind":"user","methods":{"BURNER_GAS_LIMIT()":{"notice":"Get a gas limit for the burner."},"BURNER_RESERVE()":{"notice":"Get a reserve gas between the gas limit check and the burner's execution."},"FACTORY()":{"notice":"Get the factory's address."},"NETWORK_MIDDLEWARE_SERVICE()":{"notice":"Get the network middleware service's address."},"TYPE()":{"notice":"Get the entity's type."},"VAULT_FACTORY()":{"notice":"Get the vault factory's address."},"cumulativeSlash(bytes32,address)":{"notice":"Get a cumulative slash amount for an operator on a subnetwork."},"cumulativeSlashAt(bytes32,address,uint48,bytes)":{"notice":"Get a cumulative slash amount for an operator on a subnetwork until a given timestamp (inclusively) using a hint."},"initialize(bytes)":{"notice":"Initialize this entity contract by using a given data."},"isBurnerHook()":{"notice":"Get if the burner is needed to be called on a slashing."},"latestSlashedCaptureTimestamp(bytes32,address)":{"notice":"Get the latest capture timestamp that was slashed on a subnetwork."},"slashableStake(bytes32,address,uint48,bytes)":{"notice":"Get a slashable amount of a stake got at a given capture timestamp using hints."},"staticDelegateCall(address,bytes)":{"notice":"Make a delegatecall from this contract to a given target contract with a particular data (always reverts with a return data)."},"vault()":{"notice":"Get the vault's address."}},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/contracts/hints/SlasherHints.sol":"BaseSlasherHints"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol":{"keccak256":"0x6662ec4e5cefca03eeadd073e9469df8d2944bb2ee8ec8f7622c2c46aab5f225","urls":["bzz-raw://4d8544c6f8daa4d1bc215c6a72fe0acdb748664a105b0e5efc19295667521d45","dweb:/ipfs/QmdGWqdnXT8S3RgCR6aV8XHZrsybieMQLLnug1NtpSjEXN"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol":{"keccak256":"0xc163fcf9bb10138631a9ba5564df1fa25db9adff73bd9ee868a8ae1858fe093a","urls":["bzz-raw://9706d43a0124053d9880f6e31a59f31bc0a6a3dc1acd66ce0a16e1111658c5f6","dweb:/ipfs/QmUFmfowzkRwGtDu36cXV9SPTBHJ3n7dG9xQiK5B28jTf2"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b","urls":["bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609","dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol":{"keccak256":"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397","urls":["bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9","dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardUpgradeable.sol":{"keccak256":"0xb44e086e941292cdc7f440de51478493894ef0b1aeccb0c4047445919f667f74","urls":["bzz-raw://942dad22fbdc1669f025540ba63aa3ccfad5f8458fc5d4525b31ebf272e7af45","dweb:/ipfs/Qmdo4X2M82aM3AMoW2kf2jhYkSCyC4T1pHNd6obdsDFnAB"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol":{"keccak256":"0xdaba3f7c42c55b2896353f32bd27d4d5f8bae741b3b05d4c53f67abc4dc47ce8","urls":["bzz-raw://1fa2e61141c602510bcd2cd936ed9561922ac8772a9b9c9a9db091a74e354a45","dweb:/ipfs/QmcHQDDoEBwJmwUbzoVkytvJsBx3KVHYFFnDkvRGWh9Wmh"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol":{"keccak256":"0xb6b36edd6a2999fd243ff226d6cbf84bd71af2432bbd0dfe19392996a1d9cb41","urls":["bzz-raw://1fd2f35495652e57e3f99bc6c510bc5f7dd398a176ea2e72d8ed730aebc6ca26","dweb:/ipfs/QmTQV6X4gkikTib49cho5iDX3JvSQbdsoEChoDwrk3CbbH"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC1271.sol":{"keccak256":"0x85a45f3f10014a0f8be41157a32b6a5f905753ea64a4b64e29fc12b7deeecf39","urls":["bzz-raw://c3c74009ce36136b36c77c23935b8e4a7b4f253be2da2be4fb4a916b1ce43743","dweb:/ipfs/QmcH36v3iN7SJJuF73AunLR2LtNxhVJ1wm63ph4dPZ4pcL"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC5267.sol":{"keccak256":"0x92aa1df62dc3d33f1656d63bede0923e0df0b706ad4137c8b10b0a8fe549fd92","urls":["bzz-raw://c5c0f29195ad64cbe556da8e257dac8f05f78c53f90323c0d2accf8e6922d33a","dweb:/ipfs/QmQ61TED8uaCZwcbh8KkgRSsCav7x7HbcGHwHts3U4DmUP"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70","urls":["bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c","dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol":{"keccak256":"0x6008dabfe393240d73d7dd7688033f72740d570aa422254d29a7dce8568f3aff","urls":["bzz-raw://f5196ec75139918c6c7bb4251b36395e668f1fa6d206beba7e7520e74913940d","dweb:/ipfs/QmSyqjksXxmm2mCG6qRd1yuwLykypkSVBbnBnGqJRcuJMi"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0x37bb49513c49c87c4642a891b13b63571bc87013dde806617aa1efb54605f386","urls":["bzz-raw://b3036b3a83b7c48f96641f2a9002b9f2dcb6a5958dd670894ada21ae8229b3d0","dweb:/ipfs/QmUNfSBdoVtjhETaUJCYcaC7pTMgbhht926tJ2uXJbiVd3"],"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/ShortStrings.sol":{"keccak256":"0x18a7171df639a934592915a520ecb97c5bbc9675a1105607aac8a94e72bf62c6","urls":["bzz-raw://7478e1f13da69a2867ccd883001d836b75620362e743f196376d63ed0c422a1c","dweb:/ipfs/QmWywcQ9TNfwtoqAxbn25d8C5VrV12PrPS9UjtGe6pL2BA"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol":{"keccak256":"0x32ba59b4b7299237c8ba56319110989d7978a039faf754793064e967e5894418","urls":["bzz-raw://1ae50c8b562427df610cc4540c9bf104acca7ef8e2dcae567ae7e52272281e9c","dweb:/ipfs/QmTHiadFCSJUPpRjNegc5SahmeU8bAoY8i9Aq6tVscbcKR"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0x55f102ea785d8399c0e58d1108e2d289506dde18abc6db1b7f68c1f9f9bc5792","urls":["bzz-raw://6e52e0a7765c943ef14e5bcf11e46e6139fa044be564881378349236bf2e3453","dweb:/ipfs/QmZEeeXoFPW47amyP35gfzomF9DixqqTEPwzBakv6cZw6i"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol":{"keccak256":"0xeed0a08b0b091f528356cbc7245891a4c748682d4f6a18055e8e6ca77d12a6cf","urls":["bzz-raw://ba80ba06c8e6be852847e4c5f4492cef801feb6558ae09ed705ff2e04ea8b13c","dweb:/ipfs/QmXRJDv3xHLVQCVXg1ZvR35QS9sij5y9NDWYzMfUfAdTHF"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/EIP712.sol":{"keccak256":"0x999f705a027ed6dc2d4e0df2cc4a509852c6bfd11de1c8161bf88832d0503fd0","urls":["bzz-raw://0798def67258d9a3cc20b2b4da7ebf351a5cefe0abfdd665d2d81f8e32f89b21","dweb:/ipfs/QmPEvJosnPfzHNjKvCv2D3891mA2Ww8eUwkqrxBjuYdHCt"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol":{"keccak256":"0xba333517a3add42cd35fe877656fc3dfcc9de53baa4f3aabbd6d12a92e4ea435","urls":["bzz-raw://2ceacff44c0fdc81e48e0e0b1db87a2076d3c1fb497341de077bf1da9f6b406c","dweb:/ipfs/QmRUo1muMRAewxrKQ7TkXUtknyRoR57AyEkoPpiuZQ8FzX"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/SignatureChecker.sol":{"keccak256":"0x6b11eb41a228cca35d4b662b4df69fcd75192851365102690f57b2ac01e83fe6","urls":["bzz-raw://ab006a2983ed350d2af21ddcdd835dcae3b8340086cc4d088460da5abd041f69","dweb:/ipfs/QmbEacDhkJZiGrgzLjB4pNtE8Z1uudjDw1DvcDUTVQFsLG"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b","urls":["bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df","dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d","urls":["bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875","dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol":{"keccak256":"0xe19a4d5f31d2861e7344e8e535e2feafb913d806d3e2b5fe7782741a2a7094fe","urls":["bzz-raw://4aed79c0fa6f0546ed02f2f683e8f77f0fd2ed7eb34d8bbf3d373c9a6d95b13c","dweb:/ipfs/QmWqVz6UAVqmnWU5pqYPt1o6iDEZyPaBraAA3rKfTTSfYj"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0x5f7e4076e175393767754387c962926577f1660dd9b810187b9002407656be72","urls":["bzz-raw://7d533a1c97cd43a57cd9c465f7ee8dd0e39ae93a8fb8ff8e5303a356b081cdcc","dweb:/ipfs/QmVBEei6aTnvYNZp2CHYVNKyZS4q1KkjANfY39WVXZXVoT"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/Checkpoints.sol":{"keccak256":"0xbdc5e074d7dd6678f67e92b1a51a20226801a407b0e1af3da367c5d1ff4519ad","urls":["bzz-raw://a36cca6b22fff3db16fc789ff6c60eea71d4b156065d4d0c83a0bc5e91a77a8b","dweb:/ipfs/QmYN3exd5AemxjBrN8XMB1p5LbbE16uC3sjbYjwi8AjcGR"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/types/Time.sol":{"keccak256":"0xc7755af115020049e4140f224f9ee88d7e1799ffb0646f37bf0df24bf6213f58","urls":["bzz-raw://7f09bf94d5274334ec021f61a04659db303f31e60460e14b709c9bf187740111","dweb:/ipfs/QmNvgomZYUwFAt4cZbPWAiTeSZQreGehY9BK5xyVJsUttb"],"license":"MIT"},"src/contracts/common/Entity.sol":{"keccak256":"0x3d61a932995b8443381f3950542d388223a2c26dd5d29a3274dea3baa7388bd7","urls":["bzz-raw://7cdf5f03ca72fd263fd32ff59c8d88ddca911ae83896a287d10772c1bbe9b138","dweb:/ipfs/QmbP84r5BWT1Rn9AYTntWSf3xUMTTCohTZJFhbBhDXFoHa"],"license":"BUSL-1.1"},"src/contracts/common/MigratableEntity.sol":{"keccak256":"0x2d736f4dacd5d7e7697503bc426c78b8250fe1694ca157965ec178da6807de58","urls":["bzz-raw://f1237acf96b4b9f9b69156e068eddd726a6e15bd8e87a18dc999cd4ba4da069c","dweb:/ipfs/QmS6M8fiFFSeuJ4ZKKq1z8W7w4ybeHQSy5TLASGoc1LVic"],"license":"BUSL-1.1"},"src/contracts/common/StaticDelegateCallable.sol":{"keccak256":"0x350029aa8955eacaffffaeb58babc5c98e80ebc5c5db388ed17ee6465f4a9d90","urls":["bzz-raw://eb392a8ee9050e0af606897df63e3404e3829e8b688b580663892f9664195764","dweb:/ipfs/QmaXC8jqV8UrrAFkzXTEv2fJF56sy33HhLxAzaRZmUxuXD"],"license":"BUSL-1.1"},"src/contracts/delegator/BaseDelegator.sol":{"keccak256":"0x7c54d491fdd4415b764a9c8defa068e56d4c0c8c9419be0053a1d377669290e8","urls":["bzz-raw://9238bfbad0f6eeb0dc7727724de14380f1980b395902269703d5e2ef07e52e10","dweb:/ipfs/QmPJn1V4HNXcEghYvogGuSTF24dSQUPosR5qtsXcmNqRm3"],"license":"BUSL-1.1"},"src/contracts/delegator/FullRestakeDelegator.sol":{"keccak256":"0x0a81c4f8e72914563a9cb771e93acf889c71ea36b7bec040e4eb562b199d5af1","urls":["bzz-raw://6fc66b6ba02da77046a0bbbd1dd407a62c08f52e04486c9cbd2cb1cca3da555f","dweb:/ipfs/QmZQivK1ZnMxfRQQ5aLpV9co5u55wQVNev5Rg1hzAqxhkE"],"license":"BUSL-1.1"},"src/contracts/delegator/NetworkRestakeDelegator.sol":{"keccak256":"0xd3a8e6522f9c6fdcc2da837c9023afd6bdff2bce45a35590320c475519e3636d","urls":["bzz-raw://58b17a87f6554f08376f9ea7fedf486a4aa75801bf0ad8b23ff5a46959b6b7a3","dweb:/ipfs/QmSTmNh67tYt8CmjVZb57r8N3qX5yeYdMApKPJm3qvQgQw"],"license":"BUSL-1.1"},"src/contracts/delegator/OperatorNetworkSpecificDelegator.sol":{"keccak256":"0x031a10722b9ec49048f0952710401131290adb87e71caf294e864e7ac3b98a16","urls":["bzz-raw://72428febc875134b2f29205e6f294634a1c22a7d5c78d6a9cb2f8196f107c9b5","dweb:/ipfs/QmTPwXR6h5oytckmkLrHdKeEMdphJxceDhYUR4zvQeWAwY"],"license":"BUSL-1.1"},"src/contracts/delegator/OperatorSpecificDelegator.sol":{"keccak256":"0x630ce62fa30b9f3349ab7a8cf8dbf041319febc6dd757be2f94d3d25944ed328","urls":["bzz-raw://c2ac59d47ce57d2a6819ae9833e1a618a371eccff93eb5ab367b201b01f42bfa","dweb:/ipfs/QmdBpGMBivpNPv2WbH8vnCUy5xkVeaxQvGgqi33vKCz1kA"],"license":"BUSL-1.1"},"src/contracts/hints/DelegatorHints.sol":{"keccak256":"0x44aa0c396311a54afbc7c73e8dadeed41e3165a4fd13f712b27d63d50fc3376d","urls":["bzz-raw://2f255214f3531fc707d88be0d56a7a0aed4180439316d099d760d9118aa83093","dweb:/ipfs/QmZD1w5p1ukJSXumUAjvxwGmkPhn7vsr21Y2atLGEZR2oi"],"license":"BUSL-1.1"},"src/contracts/hints/Hints.sol":{"keccak256":"0x8b565df1ae35993c097a9e642002782a8f451f6fd01809cad6bcd345bdf1b99c","urls":["bzz-raw://99a19adb01e350a92f534095b3078229df1f2f83077992d75d58d8684be45971","dweb:/ipfs/QmbmwcuswVbzvwHQFTtrJG86oV98GnfxqYTb8cV8u1acox"],"license":"BUSL-1.1"},"src/contracts/hints/OptInServiceHints.sol":{"keccak256":"0x95d9407900d27b9f4a1233b772aeed809c07b2dc5b31cfc9fa77ca26514c49e5","urls":["bzz-raw://a13a8877e312d7e6b8b85bde3668c5d84ff5ecc83f762cd573f2b7104c64eb42","dweb:/ipfs/QmYV2J55acuGzCNnS3juABuUHY5U1xc8g8o9jwEyFFdeG5"],"license":"BUSL-1.1"},"src/contracts/hints/SlasherHints.sol":{"keccak256":"0xd77c5f3bbb0265af8ecd947df88f6f9684e136d80052b5292f5b29aaa3566a3f","urls":["bzz-raw://484a26504bf6706202ec82a9a4cfa7d196bbc552b5b78ced25bf7130c2842595","dweb:/ipfs/QmaQqmkoZoUWEam4R94vmajzH3gKqFqpZQwFbrHDsN1peV"],"license":"BUSL-1.1"},"src/contracts/hints/VaultHints.sol":{"keccak256":"0xccb505b7159b769cc114d67b87c2de6b106557f667fc8f3780114baad5c3c442","urls":["bzz-raw://6d0c80a908fc16e96a8b5605a0bd53f9e89ad0ef0a738fbbae80ba4d3160749b","dweb:/ipfs/QmXo5UtWoR8YmunqcbBU8rQMm1nvmvjNPoXcVrDhh4pEwR"],"license":"BUSL-1.1"},"src/contracts/libraries/Checkpoints.sol":{"keccak256":"0xba90097c8bfe0a975499428b5f8ac5569483c7d92ccc28c12d70de416aae040c","urls":["bzz-raw://12f5d93ca94cd06d3147db68993165a58e17903ed53682560de61f3085ad4609","dweb:/ipfs/QmePiuAqvXprMLmFZkGZeGjvGPAvsEDHfCDv7BoQhXu9xE"],"license":"MIT"},"src/contracts/libraries/ERC4626Math.sol":{"keccak256":"0x8441160513c1cbeb1c3b9ee077bcc7e7ce20006b52a77c8dd39ff0ef89699939","urls":["bzz-raw://943f8cc3e26ddf649f465f40c909819f5c864717c4baa339e9e403b9374a4653","dweb:/ipfs/QmXPxi1sUDsrGprZdUgCzoPEosaZMv9ZhygWQ1vAi1phAB"],"license":"MIT"},"src/contracts/libraries/Subnetwork.sol":{"keccak256":"0xf5ef5506fd66082b3c2e7f3df37529f5a8efad32ac62e7c8914bd63219190bfe","urls":["bzz-raw://ba031a54ee0d0e9a270c2b9e18437f5668cfeb659cfd5fe0677459d7fcac2a56","dweb:/ipfs/QmReP3H7qQ78tAfgLnJKsNEQNCQfF1X1Get38Ffd4kzq32"],"license":"MIT"},"src/contracts/service/OptInService.sol":{"keccak256":"0x4e0932077f2686b7990e10d59deb2535334c0d09e52ef6e57c6ab09eca21c4b1","urls":["bzz-raw://7c00d311032ed4a1743aca7475f3c86ce15cdfc2218108efc3731c03d34a5278","dweb:/ipfs/QmUGGfVwVhaHr5kS4177yKKYiLYzi5qZpkEmvYxBZqazxf"],"license":"BUSL-1.1"},"src/contracts/slasher/BaseSlasher.sol":{"keccak256":"0x190e5dce196a061bdad42468c52e9f5b0eb7810cd7d0c19f04d6a2e94984f1b6","urls":["bzz-raw://07ca08d0cd43c2fe5d54a5577f6bdd522ced410f5d3a52e764deaa7ba26b5f06","dweb:/ipfs/QmZe3PiMKBQKWcwodaLupragdqxPjgS4v1qMC7RXau8hDF"],"license":"BUSL-1.1"},"src/contracts/slasher/Slasher.sol":{"keccak256":"0xeee0cb25fad58d496fdcc641d852d11bae06e6ceed5230ae21150964175c494f","urls":["bzz-raw://34aa27d21246a1bcee0b6a2afa8d9d613441156362430392f75d176511d58c61","dweb:/ipfs/Qmf53Y3zdGfH4PU2zpSGeHZ8mMLzLXCtmkQrG5mnVJECQ3"],"license":"BUSL-1.1"},"src/contracts/slasher/VetoSlasher.sol":{"keccak256":"0xeccc8128de5e1ad499c067feac1c526638fbbac1a18b96726fc7507969fd5897","urls":["bzz-raw://cdfcf281338423625acbccdf8810115b258ef7cfe4aa3c10b8911ead1aa85429","dweb:/ipfs/QmZFsDvZXpkFkx4PHcDXAVPN3ZCAahbSVfYpSVrMBvbt4k"],"license":"BUSL-1.1"},"src/contracts/vault/Vault.sol":{"keccak256":"0x2ceff6ed3298c4cad144c99fcc79b51cb9397d6ebef00285b915848b476f8c2e","urls":["bzz-raw://11f2fb3581854f3ab6e82e8d4935d9eb510c903a13c3f022346c2956a58f5307","dweb:/ipfs/QmdUnoXoyYoG9SGWyQZCFyLDRUUX3eXyXetkRvw6jxqqBz"],"license":"BUSL-1.1"},"src/contracts/vault/VaultStorage.sol":{"keccak256":"0x57db25b127d77ea3472de53e3a4af3354399655b9268638b99ca5925fa364a56","urls":["bzz-raw://aa763d9a6ec508ae3abfb8228b72b9fd9525279e5135d4962e79ff059feb1173","dweb:/ipfs/QmcbDR6E9wyEpu6V2FkEC4hnWy47zXA9LSKJde6zSGd33Q"],"license":"BUSL-1.1"},"src/interfaces/common/IEntity.sol":{"keccak256":"0x8ef4b63d6da63489778ccd5f8d13ebdd527dd4b62730b2c616df5af7474d2d21","urls":["bzz-raw://5a8d69576a9219d85c50816a18ad53a4d53cfcb27ed38b8cccc808dc2734b71b","dweb:/ipfs/QmYVN3P4Q4REvBWJ97TbAcaxm3uyB2anV6NSGa6ZtSwcEv"],"license":"MIT"},"src/interfaces/common/IMigratableEntity.sol":{"keccak256":"0x8f5f2809f3afbe8ebfbb365dd7b57b4dd3b6f9943a6187eaf648d45895b8e3c4","urls":["bzz-raw://0ffe640537d539e7a4fde70d30d3e4c57f4ba9c2c25c450cea713aae38e8fd5c","dweb:/ipfs/QmSUTGzvdcn1R1KB7tLThMRtESsfPbeXDhhhKWGtntzBds"],"license":"MIT"},"src/interfaces/common/IRegistry.sol":{"keccak256":"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb","urls":["bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014","dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK"],"license":"MIT"},"src/interfaces/common/IStaticDelegateCallable.sol":{"keccak256":"0xa335d4e81b9071b7de66ef92b43ff20671d86516eb1be46fef29a3483cd3f5d5","urls":["bzz-raw://d464b9db863c14c05547d2b23352f2e9b7b784799cf09f6bbc4906a2a74e3516","dweb:/ipfs/QmUVWzFvJz7eEbDQKiFTTzwi7TEbjcs3VmwdM4kuptAKvi"],"license":"MIT"},"src/interfaces/delegator/IBaseDelegator.sol":{"keccak256":"0x96bb312f032e17accce3f8f80936d99468029d6b37c9ca74acdb4b026a0148ee","urls":["bzz-raw://2a66dcb5b7d1a6ef6a363431ea98ebd78bc4fdd3d7a134d9b542dc66e7d025c2","dweb:/ipfs/QmRhTPLd2ZAyRHmJUFUcWKs9b3if49QY17LYZuRqWmghw8"],"license":"MIT"},"src/interfaces/delegator/IDelegatorHook.sol":{"keccak256":"0xc51aa8d7d1f6c8043ee819b7aeb86da0e993912e1442098df897e299f01f9f46","urls":["bzz-raw://adddf5cb2ba282aeb576b26efb28640f865a1721cc9b6eee8b3ee0457a2c9780","dweb:/ipfs/QmNYgAmnLRwWZbhTuQhZs9rx4zcme1df5mEepkrniorSoW"],"license":"MIT"},"src/interfaces/delegator/IFullRestakeDelegator.sol":{"keccak256":"0xa3c8cb2e45d4d8ce90e95263bea40c01dc400f05ad65bc29597d878606be5e7d","urls":["bzz-raw://782cf5e201aa4cca037ebafd3807a68ff1cc721d5b8416a35244db0d0607369e","dweb:/ipfs/QmQkJks6x7CKndeTPa9LxgTNygD5uEi7obhADhpq1Lsr9A"],"license":"MIT"},"src/interfaces/delegator/INetworkRestakeDelegator.sol":{"keccak256":"0xe7030fe30389a147fd710e3436ec346b4842695fd3e65a81b95375c9f1d633fc","urls":["bzz-raw://739c7e66d301778054f5c90bee45ec9438f68afba8a03eaaac52064c73b115ad","dweb:/ipfs/QmfZ2ytKcTykAc76nxhg8ikUXV8NdBpetqb8W4YWPcox1Z"],"license":"MIT"},"src/interfaces/delegator/IOperatorNetworkSpecificDelegator.sol":{"keccak256":"0x74b95e64d29769202d45dd277bb830f623ff3d41ce77b80ce3ee4e318a5c71ec","urls":["bzz-raw://e512b903aae5c1b8a028c6e3f4f6223b5cb5d704503cfa6bd37b5346868f5c20","dweb:/ipfs/QmZim9YExsPWtyxyeui993HTKAEmrg8MUcSkZ77Gp2JcuZ"],"license":"MIT"},"src/interfaces/delegator/IOperatorSpecificDelegator.sol":{"keccak256":"0x72075cab585dc17240cc3e32bc99b92f0d5627ddd988fed680e3e1a52d5a01e4","urls":["bzz-raw://7448bc90699409ae61d85216b5efc2143a37f0f73354be2aea993bc54afca441","dweb:/ipfs/QmXE4gAxM8pHosZK8mcTcj17puBx484meDCcmrDePskGHZ"],"license":"MIT"},"src/interfaces/service/INetworkMiddlewareService.sol":{"keccak256":"0x347afc7fcf1fbcdb96d66162070ef6c78aed27b3af2c1d5dfb4e511840631783","urls":["bzz-raw://2d90b8ceb495159e8e4e95d76447719dd166443f67dfabdd942846162071595c","dweb:/ipfs/QmVVuiAWYx92T6vBvNMKZfTvraCf1fa16BsUKkdNs3hdHA"],"license":"MIT"},"src/interfaces/service/IOptInService.sol":{"keccak256":"0x76fb5460a6d87a5705433d4fbeff7253cd75b8bbd0c888b2088f16e86ace146a","urls":["bzz-raw://990322019b3d11465f7024bae77ccbf7e2fe5d6fa3c754584778f37d04fa1337","dweb:/ipfs/QmaSNHzcqxTkUCG9a4nqVfLECHLdjdrwAnDi3yDC7tDL24"],"license":"MIT"},"src/interfaces/slasher/IBaseSlasher.sol":{"keccak256":"0x7c82528b445659c313ab77335c407b0b6efe5e79027187bb287f7bc74202b404","urls":["bzz-raw://0274c90aa5df1aa6bb470a6aab53992fb14fd7e5472c9430416505b29647d9cf","dweb:/ipfs/QmckbmJLDetPemVzCnnGcKYWAZV2BRFXGDsjiaec8jkHxx"],"license":"MIT"},"src/interfaces/slasher/IBurner.sol":{"keccak256":"0xaf495dacc19ae0b3c787ba8021c5944927d70261536addd234d7dab146158c2b","urls":["bzz-raw://9b3cc66251008be6ff9fc8b11ecc6831d5a9dca49a3fe9817fcd970253c1d447","dweb:/ipfs/QmVxfb9ALGdF9W3SN2h41gQbUct6tawvu5bw4K89kFQ4HW"],"license":"MIT"},"src/interfaces/slasher/ISlasher.sol":{"keccak256":"0x34d226d67a3d5e16571f2fac91a8b9773551bcc41c88a96279669dd78d192625","urls":["bzz-raw://7a6e8c1462ee4a1b0f745414be043c09012ea676613790aba004b06c85c980d1","dweb:/ipfs/QmadjNEbHKRthtA1EeNy3Kg2sXpejH2KBeHm8QZtBPvXbJ"],"license":"MIT"},"src/interfaces/slasher/IVetoSlasher.sol":{"keccak256":"0xdf7edd04a4f36e9aec3a15241dcb6b6315b2e64927b12710c2c410d571fc55e9","urls":["bzz-raw://c4be6ac339c2ebf230fed65363f036784224095d0cd0f3f2d01d64d6e0da9508","dweb:/ipfs/QmRSMbpfaHExqrzUA8vYZMYZWh6eQW1KX9JKJSLdgronfg"],"license":"MIT"},"src/interfaces/vault/IVault.sol":{"keccak256":"0xffee01d383cd4e1a5530c614bf4360c1ef070c288abec9da1eb531b51bc07235","urls":["bzz-raw://04f0046cac285d8ec44ebbb1f79dc94fab4495767190cad8364fbc1fafaadfb9","dweb:/ipfs/QmUawAunwzXfCyShWfhKeThAgKtqe51hmrxvrXvM772M2R"],"license":"MIT"},"src/interfaces/vault/IVaultStorage.sol":{"keccak256":"0x592626f13754194f83047135de19229c49390bd59e34659b1bb38be71d973a22","urls":["bzz-raw://06a6a9dfddd05e580b32bebe2cff4f63ba26a653180676d58225dd30d9c89d3e","dweb:/ipfs/QmdgzBeY6Sxo8mGtyBxtv1tM1c2kU6J6zjeRd7vuXm4DU6"],"license":"MIT"}},"version":1},"id":89} \ No newline at end of file diff --git a/out/SlasherHints.sol/SlasherHints.json b/out/SlasherHints.sol/SlasherHints.json index 72d129f9..593ed498 100644 --- a/out/SlasherHints.sol/SlasherHints.json +++ b/out/SlasherHints.sol/SlasherHints.json @@ -1 +1 @@ -{"abi":[{"type":"constructor","inputs":[{"name":"baseSlasherHints","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"BASE_SLASHER_HINTS","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"BURNER_GAS_LIMIT","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"BURNER_RESERVE","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"FACTORY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"NETWORK_MIDDLEWARE_SERVICE","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"TYPE","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"VAULT_FACTORY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"cumulativeSlash","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"cumulativeSlashAt","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"timestamp","type":"uint48","internalType":"uint48"},{"name":"hint","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"initialize","inputs":[{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"isBurnerHook","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"latestSlashedCaptureTimestamp","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"value","type":"uint48","internalType":"uint48"}],"stateMutability":"view"},{"type":"function","name":"slash","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"captureTimestamp","type":"uint48","internalType":"uint48"},{"name":"hints","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"slashedAmount","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"slashHints","inputs":[{"name":"slasher","type":"address","internalType":"address"},{"name":"msgSender","type":"address","internalType":"address"},{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"captureTimestamp","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"slashableStake","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"captureTimestamp","type":"uint48","internalType":"uint48"},{"name":"hints","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"staticDelegateCall","inputs":[{"name":"target","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"vault","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"Slash","inputs":[{"name":"subnetwork","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"slashedAmount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"captureTimestamp","type":"uint48","indexed":false,"internalType":"uint48"}],"anonymous":false},{"type":"error","name":"CheckpointUnorderedInsertion","inputs":[]},{"type":"error","name":"ExternalCall","inputs":[]},{"type":"error","name":"InsufficientBurnerGas","inputs":[]},{"type":"error","name":"InsufficientSlash","inputs":[]},{"type":"error","name":"InvalidCaptureTimestamp","inputs":[]},{"type":"error","name":"InvalidInitialization","inputs":[]},{"type":"error","name":"NoBurner","inputs":[]},{"type":"error","name":"NotInitialized","inputs":[]},{"type":"error","name":"NotInitializing","inputs":[]},{"type":"error","name":"NotNetworkMiddleware","inputs":[]},{"type":"error","name":"NotVault","inputs":[]},{"type":"error","name":"ReentrancyGuardReentrantCall","inputs":[]},{"type":"error","name":"SafeCastOverflowedUintDowncast","inputs":[{"name":"bits","type":"uint8","internalType":"uint8"},{"name":"value","type":"uint256","internalType":"uint256"}]}],"bytecode":{"object":"0x6101403461015d576001600160401b0390601f61209f38819003918201601f1916830191848311848410176101615780849260209460405283398101031261015d5751906001600160a01b038216820361015d57306080527ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a009081549060ff8260401c1661014b578080831603610106575b835f60a0525f60c0525f60e052610100905f825261012090815260405190611f299283610176843960805183505060a051836104f2015260c0518381816109490152611379015260e05183818161031d01526116a901525182818161021c01526104ae0152518181816106920152610d330152f35b6001600160401b031990911681179091556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a15f8080610091565b60405163f92ee8a960e01b8152600490fd5b5f80fd5b634e487b7160e01b5f52604160045260245ffdfe60806040526004361015610011575f80fd5b5f3560e01c8063021a815614610124578063103f29071461011f5780631a2be2c41461011a578063238ab85f14610115578063267de1f3146101105780632964f8dc1461010b5780632c9d45b3146101065780632dd310001461010157806334d098ea146100fc578063439fab91146100f7578063457821b7146100f25780639f86fd85146100ed578063aa8e6489146100e8578063aab3595f146100e3578063bb24fe8a146100de578063d5c24e1a146100d95763fbfa77cf146100d4575f80fd5b61098a565b61096d565b61092a565b610905565b6108c7565b6106c1565b61067d565b610545565b610521565b6104dd565b610499565b61047d565b610428565b6103c4565b61034c565b610308565b61017b565b6001600160a01b0381160361013a57565b5f80fd5b65ffffffffffff81160361013a57565b9181601f8401121561013a578235916001600160401b03831161013a576020838186019501011161013a57565b3461013a5760a036600319011261013a5760043560243561019b81610129565b6064356101a78161013e565b6084356001600160401b03811161013a576101c690369060040161014e565b917f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0060028154146102ec5760029055604051635daf681960e11b8152606086901c60048201526001600160a01b036020826024817f000000000000000000000000000000000000000000000000000000000000000085165afa9182156102e7575f926102b6575b50339116036102a4576102a0946102679460443591610a63565b61029060017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055565b6040519081529081906020820190565b0390f35b60405163227bf64d60e01b8152600490fd5b6102d991925060203d6020116102e0575b6102d181836107dd565b810190610ddf565b905f61024d565b503d6102c7565b610a27565b604051633ee5aeb560e01b8152600490fd5b5f91031261013a57565b3461013a575f36600319011261013a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461013a57604036600319011261013a57602061039861039360243561037181610129565b6004355f526002845260405f209060018060a01b03165f5260205260405f2090565b6115c8565b604051908152f35b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b3461013a5760c036600319011261013a576102a06104146004356103e781610129565b6103f2602435610129565b6064356103fe81610129565b60a4359161040b8361013e565b60443590610ce7565b6040519182916020835260208301906103a0565b3461013a57604036600319011261013a57602065ffffffffffff61047360243561045181610129565b6004355f526001845260405f209060018060a01b03165f5260205260405f2090565b5416604051908152f35b3461013a575f36600319011261013a576020604051614e208152f35b3461013a575f36600319011261013a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461013a575f36600319011261013a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461013a575f36600319011261013a57602060ff5f5460a01c166040519015158152f35b3461013a57602036600319011261013a576001600160401b0360043581811161013a5761057690369060040161014e565b5f80516020611ed4833981519152549260ff8460401c1615931680159081610675575b600114908161066b575b159081610662575b50610650575f80516020611ed4833981519152805467ffffffffffffffff191660011790556105de918361062c57611672565b6105e457005b5f80516020611ed4833981519152805460ff60401b19169055604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a1005b5f80516020611ed4833981519152805460ff60401b1916600160401b179055611672565b60405163f92ee8a960e01b8152600490fd5b9050155f6105ab565b303b1591506105a3565b849150610599565b3461013a575f36600319011261013a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461013a5760408060031936011261013a576004356106df81610129565b602435906001600160401b03821161013a575f809161070561076994369060040161014e565b908187519283928337810184815203915af43d156107715761075b3d61072a8161081a565b90610737865192836107dd565b81523d5f602083013e5b8451948593151560208501528084015260608301906103a0565b03601f1981018352826107dd565b805190602001fd5b61075b6060610741565b634e487b7160e01b5f52604160045260245ffd5b602081019081106001600160401b038211176107aa57604052565b61077b565b604081019081106001600160401b038211176107aa57604052565b6001600160401b0381116107aa57604052565b90601f801991011681019081106001600160401b038211176107aa57604052565b6040519061080b826107af565b565b6040519061080b8261078f565b6001600160401b0381116107aa57601f01601f191660200190565b81601f8201121561013a5780359061084c8261081a565b9261085a60405194856107dd565b8284526020838301011161013a57815f926020809301838601378301015290565b90608060031983011261013a576004359160243561089881610129565b916044356108a58161013e565b91606435906001600160401b03821161013a576108c491600401610835565b90565b3461013a5760206103986109006108dd3661087b565b939190925f526002865260405f209060018060a01b03165f5260205260405f2090565b61180c565b3461013a5760206109216109183661087b565b92919091610ed9565b50604051908152f35b3461013a575f36600319011261013a5760206040516001600160401b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461013a575f36600319011261013a576020604051620249f08152f35b3461013a575f36600319011261013a575f546040516001600160a01b039091168152602090f35b604051906109be8261078f565b60608252565b9060208282031261013a5781356001600160401b039283821161013a57019060208282031261013a57604051926109fa8461078f565b823590811161013a57610a0d9201610835565b815290565b9081602091031261013a57516108c48161013e565b6040513d5f823e3d90fd5b634e487b7160e01b5f52601160045260245ffd5b65ffffffffffff9182169082160391908211610a5e57565b610a32565b92939594919095610a726109b1565b9280610c4d575b5050610a84426118e4565b5f54600490602090610aac90610aa0906001600160a01b031681565b6001600160a01b031690565b6040516327f843b560e11b815292839182905afa80156102e757610ae692610adb925f92610c1c575b50610a46565b65ffffffffffff1690565b65ffffffffffff8516908110908115610c06575b50610bf457610b0f610b189251858886610ed9565b92908092611109565b958615610be257610b9d61075b610b94610bdd947fe0cbbe1f1e6fd806ca87036fafcebaf7ab5247474a3b20e1c37bb50122c3a88496610b598a878b61111b565b610b648c878b6111a9565b610b6c6107fe565b9182526020820152604051928391602083019190916020806040830194805184520151910152565b86898488611315565b610ba7858861141e565b610bb3858883876114a3565b6040805188815265ffffffffffff90961660208701526001600160a01b0390911694918291820190565b0390a3565b60405163167f871760e31b8152600490fd5b604051631357ac9160e11b8152600490fd5b9050610c14610adb426118e4565b11155f610afa565b610c3f91925060203d602011610c46575b610c3781836107dd565b810190610a12565b905f610ad5565b503d610c2d565b610c5b9293508101906109c4565b905f80610a79565b81601f8201121561013a57805190610c7a8261081a565b92610c8860405194856107dd565b8284526020838301011161013a57815f9260208093018386015e8301015290565b9060208282031261013a5781516001600160401b03811161013a576108c49201610c63565b60406108c49260208352519160208082015201906103a0565b604051632751749360e11b81526001600160a01b0391821660048201526024810192909252918216604482015265ffffffffffff909216606483015260609291905f90829060849082907f0000000000000000000000000000000000000000000000000000000000000000165afa9081156102e7575f91610d91575b508051610d6d5750565b61075b9192506108c490610d7f61080d565b90815260405192839160208301610cce565b610dad91503d805f833e610da581836107dd565b810190610ca9565b5f610d63565b5f9081526002602090815260408083206001600160a01b039094168352929052206108c492919061180c565b9081602091031261013a57516108c481610129565b60405190610e01826107af565b60606020838281520152565b9060208282031261013a5781516001600160401b039283821161013a57019060408282031261013a5760405192610e43846107af565b825181811161013a5782610e58918501610c63565b8452602083015190811161013a57610e709201610c63565b602082015290565b9081602091031261013a575190565b9081526001600160a01b03909116602082015265ffffffffffff90911660408201526080606082018190526108c4929101906103a0565b5f19810191908211610a5e57565b91908203918211610a5e57565b92610ee2610df4565b908051806110ef575b5050610ef6426118e4565b5f54909490610f0f90610aa0906001600160a01b031681565b93604051956327f843b560e11b875260209687816004818a5afa80156102e757610f4392610adb925f926110d75750610a46565b65ffffffffffff82169081109081156110c0575b811561108f575b50611083578560049560405196878092630ce9b79360e41b82525afa9485156102e757610fb09587915f91611066575b50845190604051808099819463e02f693760e01b8352878b8a60048601610e87565b03916001600160a01b03165afa9384156102e757611022955f95611025575b5092611017859361101d9361101796869a61100e61039383610ff9875f52600260205260405f2090565b9060018060a01b03165f5260205260405f2090565b95015192610db3565b90610ecc565b611109565b91565b61101d929550611017949193611053611017928a3d8c1161105f575b61104b81836107dd565b810190610e78565b96935093919450610fcf565b503d611041565b61107d9150823d84116102e0576102d181836107dd565b5f610f8e565b5050505050505f905f90565b90506110b9610adb6110ad87610ff9875f52600160205260405f2090565b5465ffffffffffff1690565b115f610f5e565b90506110ce610adb426118e4565b81101590610f57565b610c3f9192508a3d8c11610c4657610c3781836107dd565b6111029250602080918301019101610e0d565b5f80610eeb565b9080821015611116575090565b905090565b919091805f52600160205265ffffffffffff8061114b8560405f209060018060a01b03165f5260205260405f2090565b54169083161161115a57505050565b61080b92611182915f52600160205260405f209060018060a01b03165f5260205260405f2090565b9065ffffffffffff1665ffffffffffff19825416179055565b9060018201809211610a5e57565b9190825f5260026020526112016103936111d68360405f209060018060a01b03165f5260205260405f2090565b926111e0426118e4565b955f52600260205260405f209060018060a01b03165f5260205260405f2090565b918201809211610a5e5760018101908154156112a5575b61122181611b40565b509490835495611230846115c8565b5081611290575b501561126f5750505f198301928311610a5e5761080b926112579161159f565b90919082549060031b91821b915f19901b1916179055565b61080b94611289926001600160d01b039091169190611c17565b5050611943565b65ffffffffffff83811691161490505f611237565b6112ae82611916565b611218565b606060206108c4938184526001600160401b038151168285015201519160408082015201906103a0565b919360a0936108c4969565ffffffffffff938552600180871b03166020850152604084015216606082015281608082015201906103a0565b92939060046020611332610aa0610aa05f5460018060a01b031690565b604051630ce9b79360e41b815292839182905afa9081156102e75761075b916113b0915f916113ff575b506001600160a01b03169361136f6107fe565b6001600160401b037f0000000000000000000000000000000000000000000000000000000000000000168152906020820152604051928391602083016112b3565b823b1561013a575f946113db86926040519889978896879563724ab0f760e11b8752600487016112dd565b03925af180156102e7576113ec5750565b806113f961080b926107ca565b806102fe565b611418915060203d6020116102e0576102d181836107dd565b5f61135c565b5f8054604051631c9e38c760e21b8152600481019390935265ffffffffffff9390931660248301529091602091839160449183916001600160a01b03165af180156102e75761146a5750565b6114829060203d60201161105f5761104b81836107dd565b50565b811561148f570490565b634e487b7160e01b5f52601260045260245ffd5b92905f549060ff8260a01c166114bb575b5050505050565b6040516313c085b760e11b815291602090839060049082906001600160a01b03165afa9182156102e7575f92611578575b5060405163065c1e0360e01b6020820190815260248201969096526001600160a01b039091166044820152606481019390935265ffffffffffff90911660848301526115458260a481015b03601f1981018452836107dd565b6202a15c5a10611566575f928380935192620249f0f1505f808080806114b4565b604051632153f33560e21b8152600490fd5b61154592506115986115379160203d6020116102e0576102d181836107dd565b92506114ec565b80548210156115b4575f5260205f2001905f90565b634e487b7160e01b5f52603260045260245ffd5b8054806115fd57505f5b6001600160d01b038116156115f75760016115ed920161159f565b90549060031b1c90565b50505f90565b5f19908082810111610a5e57825f5260205f2001015460301c6115d2565b91909160408184031261013a57803561163381610129565b9260208201356001600160401b03811161013a576108c49201610835565b5190811515820361013a57565b9081602091031261013a576108c490611651565b61167e9181019061161b565b6040516302910f8b60e31b81526001600160a01b0392831660048201819052929160209182816024817f000000000000000000000000000000000000000000000000000000000000000088165afa9081156102e7575f916117ae575b501561179c578161170e6004926116ef611966565b5f80546001600160a01b0319166001600160a01b03891617905561199c565b94604051928380926313c085b760e11b82525afa9182156102e7575f9261177f575b5050161580611775575b611763575161080b9015155f805460ff60a01b191691151560a01b60ff60a01b16919091179055565b60405163d2420f5960e01b8152600490fd5b508051151561173a565b6117959250803d106102e0576102d181836107dd565b5f80611730565b6040516362df054560e01b8152600490fd5b6117ce9150833d85116117d4575b6117c681836107dd565b81019061165e565b5f6116da565b503d6117bc565b9081602091031261013a575163ffffffff8116810361013a5790565b90600163ffffffff80931601918211610a5e57565b918051156118da5780602080611827935183010191016117db565b916118328382611ab4565b92611843845165ffffffffffff1690565b9065ffffffffffff80851692168281146118ce5782119182611879575b5050611870576108c492506119e4565b50506020015190565b9091506118868354610ebe565b63ffffffff83161491821561189f575b50505f80611860565b6118c69192506118ba6118b4610adb926117f7565b85611ab4565b5165ffffffffffff1690565b115f80611896565b50505050506020015190565b506108c4916119e4565b65ffffffffffff908181116118f7571690565b604490604051906306dfcc6560e41b8252603060048301526024820152fd5b8054600160401b8110156107aa576119339160018201815561159f565b8154905f199060031b1b19169055565b90815491600160401b8310156107aa578261125791600161080b9501815561159f565b61196e611b8f565b611976611b8f565b60017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055565b5f6040516119a98161078f565b5260208180518101031261013a576020906040516119c68161078f565b6119de6040519384936119d88561078f565b01611651565b82525290565b908154905f829160058411611a4e575b6119ff935084611e74565b80611a2757505f905b6001600160d01b038216156115f7576108c49160016115ed920161159f565b611a41611a36611a4892610ebe565b835f5260205f200190565b5460301c90565b90611a08565b9192611a5981611d36565b8103908111610a5e576119ff93855f5265ffffffffffff808360205f20015416908516105f14611a8a5750916119f4565b929150611a969061119b565b906119f4565b60405190611aa9826107af565b5f6020838281520152565b90611add611ad7611afe92611ac7611a9c565b50611ad0611a9c565b508461159f565b50611b1c565b91600165ffffffffffff845116936020828060d01b0391015116910161159f565b90549060405192611b0e846107af565b835260031b1c602082015290565b90604051611b29816107af565b915465ffffffffffff8116835260301c6020830152565b805480611b515750505f905f905f90565b5f19908082810111610a5e57611b6e925f5260205f200101611b1c565b9065ffffffffffff82511691602060018060d01b0391015116906001929190565b60ff5f80516020611ed48339815191525460401c1615611bab57565b604051631afcd79f60e31b8152600490fd5b8054600160401b8110156107aa57611bda9160018201815561159f565b611c0457815160209092015160301b65ffffffffffff191665ffffffffffff909216919091179055565b634e487b7160e01b5f525f60045260245ffd5b805492939291908215611d0d57611c38611c33611a3685610ebe565b611b1c565b90611c49825165ffffffffffff1690565b65ffffffffffff84811691168110611cfb57611cbf946020948892611c77610adb875165ffffffffffff1690565b03611cc35750611cb192611c8d611c9892610ebe565b905f5260205f200190565b9065ffffffffffff82549181199060301b169116179055565b01516001600160d01b031690565b9190565b915050611cf691611ce3611cd56107fe565b65ffffffffffff9093168352565b6001600160d01b03881682860152611bbd565b611cb1565b604051632520601d60e01b8152600490fd5b611d319250611d1d611cd56107fe565b6001600160d01b0385166020830152611bbd565b5f9190565b8015611e6f5780611e08611e01611df7611ded611de3611dd9611dcf611dc560016108c49a5f908b60801c80611e63575b508060401c80611e56575b508060201c80611e49575b508060101c80611e3c575b508060081c80611e2f575b508060041c80611e22575b508060021c80611e15575b50821c611e0e575b811c1b611dbe818b611485565b0160011c90565b611dbe818a611485565b611dbe8189611485565b611dbe8188611485565b611dbe8187611485565b611dbe8186611485565b611dbe8185611485565b8092611485565b90611109565b8101611db1565b600291509101905f611da9565b600491509101905f611d9e565b600891509101905f611d93565b601091509101905f611d88565b602091509101905f611d7d565b604091509101905f611d72565b9150506080905f611d67565b505f90565b91905b838210611e845750505090565b9091928083169080841860011c8201809211610a5e57845f5265ffffffffffff808360205f20015416908416105f14611ec15750925b9190611e77565b939250611ecd9061119b565b91611eba56fef0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a2646970667358221220bead91c521e34513050434cea50d07f95784d3ccc2f6242d53243cdc1dd2f24e64736f6c63430008190033","sourceMap":"2765:796:84:-:0;;;;-1:-1:-1;;;;;2765:796:84;;;;;;;;;;-1:-1:-1;;2765:796:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2765:796:84;;;;;;348:4:82;332:21;;8837:64:25;2765:796:84;;;;;;;;;7896:76:25;;2765:796:84;;;;7985:34:25;7981:146;;-1:-1:-1;525:17:69;-1:-1:-1;525:17:69;;-1:-1:-1;552:12:69;;-1:-1:-1;2353:28:92;;2391:53;;-1:-1:-1;2391:53:92;;2970:37:84;;;;2765:796;;;;;;;;;332:21:82;2765:796:84;;;;525:17:69;2765:796:84;;;;;552:12:69;2765:796:84;;;;;;;;;;2353:28:92;2765:796:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7981:146:25;-1:-1:-1;;;;;;2765:796:84;;;;;;;;;;;;;8087:29:25;;2765:796:84;;8087:29:25;7981:146;;;;;7896:76;2765:796:84;;-1:-1:-1;;;7938:23:25;;;;;2765:796:84;-1:-1:-1;2765:796:84;;;;;;-1:-1:-1;2765:796:84;;;;;-1:-1:-1;2765:796:84","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361015610011575f80fd5b5f3560e01c8063021a815614610124578063103f29071461011f5780631a2be2c41461011a578063238ab85f14610115578063267de1f3146101105780632964f8dc1461010b5780632c9d45b3146101065780632dd310001461010157806334d098ea146100fc578063439fab91146100f7578063457821b7146100f25780639f86fd85146100ed578063aa8e6489146100e8578063aab3595f146100e3578063bb24fe8a146100de578063d5c24e1a146100d95763fbfa77cf146100d4575f80fd5b61098a565b61096d565b61092a565b610905565b6108c7565b6106c1565b61067d565b610545565b610521565b6104dd565b610499565b61047d565b610428565b6103c4565b61034c565b610308565b61017b565b6001600160a01b0381160361013a57565b5f80fd5b65ffffffffffff81160361013a57565b9181601f8401121561013a578235916001600160401b03831161013a576020838186019501011161013a57565b3461013a5760a036600319011261013a5760043560243561019b81610129565b6064356101a78161013e565b6084356001600160401b03811161013a576101c690369060040161014e565b917f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0060028154146102ec5760029055604051635daf681960e11b8152606086901c60048201526001600160a01b036020826024817f000000000000000000000000000000000000000000000000000000000000000085165afa9182156102e7575f926102b6575b50339116036102a4576102a0946102679460443591610a63565b61029060017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055565b6040519081529081906020820190565b0390f35b60405163227bf64d60e01b8152600490fd5b6102d991925060203d6020116102e0575b6102d181836107dd565b810190610ddf565b905f61024d565b503d6102c7565b610a27565b604051633ee5aeb560e01b8152600490fd5b5f91031261013a57565b3461013a575f36600319011261013a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461013a57604036600319011261013a57602061039861039360243561037181610129565b6004355f526002845260405f209060018060a01b03165f5260205260405f2090565b6115c8565b604051908152f35b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b3461013a5760c036600319011261013a576102a06104146004356103e781610129565b6103f2602435610129565b6064356103fe81610129565b60a4359161040b8361013e565b60443590610ce7565b6040519182916020835260208301906103a0565b3461013a57604036600319011261013a57602065ffffffffffff61047360243561045181610129565b6004355f526001845260405f209060018060a01b03165f5260205260405f2090565b5416604051908152f35b3461013a575f36600319011261013a576020604051614e208152f35b3461013a575f36600319011261013a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461013a575f36600319011261013a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461013a575f36600319011261013a57602060ff5f5460a01c166040519015158152f35b3461013a57602036600319011261013a576001600160401b0360043581811161013a5761057690369060040161014e565b5f80516020611ed4833981519152549260ff8460401c1615931680159081610675575b600114908161066b575b159081610662575b50610650575f80516020611ed4833981519152805467ffffffffffffffff191660011790556105de918361062c57611672565b6105e457005b5f80516020611ed4833981519152805460ff60401b19169055604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a1005b5f80516020611ed4833981519152805460ff60401b1916600160401b179055611672565b60405163f92ee8a960e01b8152600490fd5b9050155f6105ab565b303b1591506105a3565b849150610599565b3461013a575f36600319011261013a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461013a5760408060031936011261013a576004356106df81610129565b602435906001600160401b03821161013a575f809161070561076994369060040161014e565b908187519283928337810184815203915af43d156107715761075b3d61072a8161081a565b90610737865192836107dd565b81523d5f602083013e5b8451948593151560208501528084015260608301906103a0565b03601f1981018352826107dd565b805190602001fd5b61075b6060610741565b634e487b7160e01b5f52604160045260245ffd5b602081019081106001600160401b038211176107aa57604052565b61077b565b604081019081106001600160401b038211176107aa57604052565b6001600160401b0381116107aa57604052565b90601f801991011681019081106001600160401b038211176107aa57604052565b6040519061080b826107af565b565b6040519061080b8261078f565b6001600160401b0381116107aa57601f01601f191660200190565b81601f8201121561013a5780359061084c8261081a565b9261085a60405194856107dd565b8284526020838301011161013a57815f926020809301838601378301015290565b90608060031983011261013a576004359160243561089881610129565b916044356108a58161013e565b91606435906001600160401b03821161013a576108c491600401610835565b90565b3461013a5760206103986109006108dd3661087b565b939190925f526002865260405f209060018060a01b03165f5260205260405f2090565b61180c565b3461013a5760206109216109183661087b565b92919091610ed9565b50604051908152f35b3461013a575f36600319011261013a5760206040516001600160401b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461013a575f36600319011261013a576020604051620249f08152f35b3461013a575f36600319011261013a575f546040516001600160a01b039091168152602090f35b604051906109be8261078f565b60608252565b9060208282031261013a5781356001600160401b039283821161013a57019060208282031261013a57604051926109fa8461078f565b823590811161013a57610a0d9201610835565b815290565b9081602091031261013a57516108c48161013e565b6040513d5f823e3d90fd5b634e487b7160e01b5f52601160045260245ffd5b65ffffffffffff9182169082160391908211610a5e57565b610a32565b92939594919095610a726109b1565b9280610c4d575b5050610a84426118e4565b5f54600490602090610aac90610aa0906001600160a01b031681565b6001600160a01b031690565b6040516327f843b560e11b815292839182905afa80156102e757610ae692610adb925f92610c1c575b50610a46565b65ffffffffffff1690565b65ffffffffffff8516908110908115610c06575b50610bf457610b0f610b189251858886610ed9565b92908092611109565b958615610be257610b9d61075b610b94610bdd947fe0cbbe1f1e6fd806ca87036fafcebaf7ab5247474a3b20e1c37bb50122c3a88496610b598a878b61111b565b610b648c878b6111a9565b610b6c6107fe565b9182526020820152604051928391602083019190916020806040830194805184520151910152565b86898488611315565b610ba7858861141e565b610bb3858883876114a3565b6040805188815265ffffffffffff90961660208701526001600160a01b0390911694918291820190565b0390a3565b60405163167f871760e31b8152600490fd5b604051631357ac9160e11b8152600490fd5b9050610c14610adb426118e4565b11155f610afa565b610c3f91925060203d602011610c46575b610c3781836107dd565b810190610a12565b905f610ad5565b503d610c2d565b610c5b9293508101906109c4565b905f80610a79565b81601f8201121561013a57805190610c7a8261081a565b92610c8860405194856107dd565b8284526020838301011161013a57815f9260208093018386015e8301015290565b9060208282031261013a5781516001600160401b03811161013a576108c49201610c63565b60406108c49260208352519160208082015201906103a0565b604051632751749360e11b81526001600160a01b0391821660048201526024810192909252918216604482015265ffffffffffff909216606483015260609291905f90829060849082907f0000000000000000000000000000000000000000000000000000000000000000165afa9081156102e7575f91610d91575b508051610d6d5750565b61075b9192506108c490610d7f61080d565b90815260405192839160208301610cce565b610dad91503d805f833e610da581836107dd565b810190610ca9565b5f610d63565b5f9081526002602090815260408083206001600160a01b039094168352929052206108c492919061180c565b9081602091031261013a57516108c481610129565b60405190610e01826107af565b60606020838281520152565b9060208282031261013a5781516001600160401b039283821161013a57019060408282031261013a5760405192610e43846107af565b825181811161013a5782610e58918501610c63565b8452602083015190811161013a57610e709201610c63565b602082015290565b9081602091031261013a575190565b9081526001600160a01b03909116602082015265ffffffffffff90911660408201526080606082018190526108c4929101906103a0565b5f19810191908211610a5e57565b91908203918211610a5e57565b92610ee2610df4565b908051806110ef575b5050610ef6426118e4565b5f54909490610f0f90610aa0906001600160a01b031681565b93604051956327f843b560e11b875260209687816004818a5afa80156102e757610f4392610adb925f926110d75750610a46565b65ffffffffffff82169081109081156110c0575b811561108f575b50611083578560049560405196878092630ce9b79360e41b82525afa9485156102e757610fb09587915f91611066575b50845190604051808099819463e02f693760e01b8352878b8a60048601610e87565b03916001600160a01b03165afa9384156102e757611022955f95611025575b5092611017859361101d9361101796869a61100e61039383610ff9875f52600260205260405f2090565b9060018060a01b03165f5260205260405f2090565b95015192610db3565b90610ecc565b611109565b91565b61101d929550611017949193611053611017928a3d8c1161105f575b61104b81836107dd565b810190610e78565b96935093919450610fcf565b503d611041565b61107d9150823d84116102e0576102d181836107dd565b5f610f8e565b5050505050505f905f90565b90506110b9610adb6110ad87610ff9875f52600160205260405f2090565b5465ffffffffffff1690565b115f610f5e565b90506110ce610adb426118e4565b81101590610f57565b610c3f9192508a3d8c11610c4657610c3781836107dd565b6111029250602080918301019101610e0d565b5f80610eeb565b9080821015611116575090565b905090565b919091805f52600160205265ffffffffffff8061114b8560405f209060018060a01b03165f5260205260405f2090565b54169083161161115a57505050565b61080b92611182915f52600160205260405f209060018060a01b03165f5260205260405f2090565b9065ffffffffffff1665ffffffffffff19825416179055565b9060018201809211610a5e57565b9190825f5260026020526112016103936111d68360405f209060018060a01b03165f5260205260405f2090565b926111e0426118e4565b955f52600260205260405f209060018060a01b03165f5260205260405f2090565b918201809211610a5e5760018101908154156112a5575b61122181611b40565b509490835495611230846115c8565b5081611290575b501561126f5750505f198301928311610a5e5761080b926112579161159f565b90919082549060031b91821b915f19901b1916179055565b61080b94611289926001600160d01b039091169190611c17565b5050611943565b65ffffffffffff83811691161490505f611237565b6112ae82611916565b611218565b606060206108c4938184526001600160401b038151168285015201519160408082015201906103a0565b919360a0936108c4969565ffffffffffff938552600180871b03166020850152604084015216606082015281608082015201906103a0565b92939060046020611332610aa0610aa05f5460018060a01b031690565b604051630ce9b79360e41b815292839182905afa9081156102e75761075b916113b0915f916113ff575b506001600160a01b03169361136f6107fe565b6001600160401b037f0000000000000000000000000000000000000000000000000000000000000000168152906020820152604051928391602083016112b3565b823b1561013a575f946113db86926040519889978896879563724ab0f760e11b8752600487016112dd565b03925af180156102e7576113ec5750565b806113f961080b926107ca565b806102fe565b611418915060203d6020116102e0576102d181836107dd565b5f61135c565b5f8054604051631c9e38c760e21b8152600481019390935265ffffffffffff9390931660248301529091602091839160449183916001600160a01b03165af180156102e75761146a5750565b6114829060203d60201161105f5761104b81836107dd565b50565b811561148f570490565b634e487b7160e01b5f52601260045260245ffd5b92905f549060ff8260a01c166114bb575b5050505050565b6040516313c085b760e11b815291602090839060049082906001600160a01b03165afa9182156102e7575f92611578575b5060405163065c1e0360e01b6020820190815260248201969096526001600160a01b039091166044820152606481019390935265ffffffffffff90911660848301526115458260a481015b03601f1981018452836107dd565b6202a15c5a10611566575f928380935192620249f0f1505f808080806114b4565b604051632153f33560e21b8152600490fd5b61154592506115986115379160203d6020116102e0576102d181836107dd565b92506114ec565b80548210156115b4575f5260205f2001905f90565b634e487b7160e01b5f52603260045260245ffd5b8054806115fd57505f5b6001600160d01b038116156115f75760016115ed920161159f565b90549060031b1c90565b50505f90565b5f19908082810111610a5e57825f5260205f2001015460301c6115d2565b91909160408184031261013a57803561163381610129565b9260208201356001600160401b03811161013a576108c49201610835565b5190811515820361013a57565b9081602091031261013a576108c490611651565b61167e9181019061161b565b6040516302910f8b60e31b81526001600160a01b0392831660048201819052929160209182816024817f000000000000000000000000000000000000000000000000000000000000000088165afa9081156102e7575f916117ae575b501561179c578161170e6004926116ef611966565b5f80546001600160a01b0319166001600160a01b03891617905561199c565b94604051928380926313c085b760e11b82525afa9182156102e7575f9261177f575b5050161580611775575b611763575161080b9015155f805460ff60a01b191691151560a01b60ff60a01b16919091179055565b60405163d2420f5960e01b8152600490fd5b508051151561173a565b6117959250803d106102e0576102d181836107dd565b5f80611730565b6040516362df054560e01b8152600490fd5b6117ce9150833d85116117d4575b6117c681836107dd565b81019061165e565b5f6116da565b503d6117bc565b9081602091031261013a575163ffffffff8116810361013a5790565b90600163ffffffff80931601918211610a5e57565b918051156118da5780602080611827935183010191016117db565b916118328382611ab4565b92611843845165ffffffffffff1690565b9065ffffffffffff80851692168281146118ce5782119182611879575b5050611870576108c492506119e4565b50506020015190565b9091506118868354610ebe565b63ffffffff83161491821561189f575b50505f80611860565b6118c69192506118ba6118b4610adb926117f7565b85611ab4565b5165ffffffffffff1690565b115f80611896565b50505050506020015190565b506108c4916119e4565b65ffffffffffff908181116118f7571690565b604490604051906306dfcc6560e41b8252603060048301526024820152fd5b8054600160401b8110156107aa576119339160018201815561159f565b8154905f199060031b1b19169055565b90815491600160401b8310156107aa578261125791600161080b9501815561159f565b61196e611b8f565b611976611b8f565b60017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055565b5f6040516119a98161078f565b5260208180518101031261013a576020906040516119c68161078f565b6119de6040519384936119d88561078f565b01611651565b82525290565b908154905f829160058411611a4e575b6119ff935084611e74565b80611a2757505f905b6001600160d01b038216156115f7576108c49160016115ed920161159f565b611a41611a36611a4892610ebe565b835f5260205f200190565b5460301c90565b90611a08565b9192611a5981611d36565b8103908111610a5e576119ff93855f5265ffffffffffff808360205f20015416908516105f14611a8a5750916119f4565b929150611a969061119b565b906119f4565b60405190611aa9826107af565b5f6020838281520152565b90611add611ad7611afe92611ac7611a9c565b50611ad0611a9c565b508461159f565b50611b1c565b91600165ffffffffffff845116936020828060d01b0391015116910161159f565b90549060405192611b0e846107af565b835260031b1c602082015290565b90604051611b29816107af565b915465ffffffffffff8116835260301c6020830152565b805480611b515750505f905f905f90565b5f19908082810111610a5e57611b6e925f5260205f200101611b1c565b9065ffffffffffff82511691602060018060d01b0391015116906001929190565b60ff5f80516020611ed48339815191525460401c1615611bab57565b604051631afcd79f60e31b8152600490fd5b8054600160401b8110156107aa57611bda9160018201815561159f565b611c0457815160209092015160301b65ffffffffffff191665ffffffffffff909216919091179055565b634e487b7160e01b5f525f60045260245ffd5b805492939291908215611d0d57611c38611c33611a3685610ebe565b611b1c565b90611c49825165ffffffffffff1690565b65ffffffffffff84811691168110611cfb57611cbf946020948892611c77610adb875165ffffffffffff1690565b03611cc35750611cb192611c8d611c9892610ebe565b905f5260205f200190565b9065ffffffffffff82549181199060301b169116179055565b01516001600160d01b031690565b9190565b915050611cf691611ce3611cd56107fe565b65ffffffffffff9093168352565b6001600160d01b03881682860152611bbd565b611cb1565b604051632520601d60e01b8152600490fd5b611d319250611d1d611cd56107fe565b6001600160d01b0385166020830152611bbd565b5f9190565b8015611e6f5780611e08611e01611df7611ded611de3611dd9611dcf611dc560016108c49a5f908b60801c80611e63575b508060401c80611e56575b508060201c80611e49575b508060101c80611e3c575b508060081c80611e2f575b508060041c80611e22575b508060021c80611e15575b50821c611e0e575b811c1b611dbe818b611485565b0160011c90565b611dbe818a611485565b611dbe8189611485565b611dbe8188611485565b611dbe8187611485565b611dbe8186611485565b611dbe8185611485565b8092611485565b90611109565b8101611db1565b600291509101905f611da9565b600491509101905f611d9e565b600891509101905f611d93565b601091509101905f611d88565b602091509101905f611d7d565b604091509101905f611d72565b9150506080905f611d67565b505f90565b91905b838210611e845750505090565b9091928083169080841860011c8201809211610a5e57845f5265ffffffffffff808360205f20015416908416105f14611ec15750925b9190611e77565b939250611ecd9061119b565b91611eba56fef0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a2646970667358221220bead91c521e34513050434cea50d07f95784d3ccc2f6242d53243cdc1dd2f24e64736f6c63430008190033","sourceMap":"2765:796:84:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;-1:-1:-1;;;;;2765:796:84;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;2765:796:84;;;;;;;;;;;;;;;:::o;:::-;;;;;;-1:-1:-1;;2765:796:84;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;-1:-1:-1;;;;;2765:796:84;;;;;;;;;;;:::i;:::-;2355:73:28;;1847:1;2765:796:84;;3526:20:28;3522:88;;1847:1;;;2765:796:84;;-1:-1:-1;;;4546:86:92;;2765:796:84;;;;;4546:86:92;;2765:796:84;-1:-1:-1;;;;;2765:796:84;;;;4572:26:92;2765:796:84;;4546:86:92;;;;;;;-1:-1:-1;4546:86:92;;;2765:796:84;4636:10:92;;2765:796:84;;4546:100:92;4542:160;;2765:796:84;;774:1493:93;2765:796:84;;;774:1493:93;;:::i;:::-;3282:1:28;1805;2355:73;1847:1;3716:283;3282:1;2765:796:84;;;;;;;;;;;;;;;;;4542:160:92;2765:796:84;;-1:-1:-1;;;4669:22:92;;2765:796:84;;4669:22:92;4546:86;;;;;2765:796:84;4546:86:92;2765:796:84;4546:86:92;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;;:::i;3522:88:28:-;2765:796:84;;-1:-1:-1;;;3569:30:28;;2765:796:84;;3569:30:28;2765:796:84;;;;;;;:::o;:::-;;;;;;-1:-1:-1;;2765:796:84;;;;;;1435:38:92;-1:-1:-1;;;;;2765:796:84;;;;;;;;;;;;-1:-1:-1;;2765:796:84;;;;;2936:47:92;:38;2765:796:84;;;;;:::i;:::-;;;-1:-1:-1;2765:796:84;2936:16:92;2765:796:84;;;-1:-1:-1;2765:796:84;;;;;;;;;;;;;;;;;2936:38:92;:47;:::i;:::-;2765:796:84;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2765:796:84;;;;;;;;-1:-1:-1;;2765:796:84;;;;:::o;:::-;;;;;;-1:-1:-1;;2765:796:84;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;2765:796:84;;;;;;1788:109:92;2765:796:84;;;;;:::i;:::-;;;-1:-1:-1;2765:796:84;1788:109:92;2765:796:84;;;-1:-1:-1;2765:796:84;;;;;;;;;;;;;;;;;1788:109:92;2765:796:84;;;;;;;;;;;;;;-1:-1:-1;;2765:796:84;;;;;;;1374:6:92;2765:796:84;;;;;;;;;-1:-1:-1;;2765:796:84;;;;;;1528:51:92;-1:-1:-1;;;;;2765:796:84;;;;;;;;;;;;-1:-1:-1;;2765:796:84;;;;;;322:32:69;-1:-1:-1;;;;;2765:796:84;;;;;;;;;;;;-1:-1:-1;;2765:796:84;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2765:796:84;;;;-1:-1:-1;;;;;2765:796:84;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;2765:796:84;;;;;;;4301:16:25;2765:796:84;;4726:16:25;;:34;;;;2765:796:84;4805:1:25;4790:16;:50;;;;2765:796:84;4855:13:25;:30;;;;2765:796:84;4851:91:25;;;-1:-1:-1;;;;;;;;;;;2765:796:84;;-1:-1:-1;;2765:796:84;;;;;718:4:69;;4951:18:25;4979:67;;718:4:69;:::i;:::-;5066:101:25;;2765:796:84;5066:101:25;-1:-1:-1;;;;;;;;;;;2765:796:84;;-1:-1:-1;;;;2765:796:84;;;;;-1:-1:-1;2765:796:84;;5142:14:25;;2765:796:84;;5142:14:25;2765:796:84;4979:67:25;-1:-1:-1;;;;;;;;;;;2765:796:84;;-1:-1:-1;;;;2765:796:84;-1:-1:-1;;;2765:796:84;;;718:4:69;:::i;4851:91:25:-;2765:796:84;;-1:-1:-1;;;4908:23:25;;2765:796:84;;4908:23:25;4855:30;4872:13;;;4855:30;;;4790:50;4818:4;4810:25;:30;;-1:-1:-1;4790:50:25;;4726:34;;;-1:-1:-1;4726:34:25;;2765:796:84;;;;;;-1:-1:-1;;2765:796:84;;;;;;2811:43;-1:-1:-1;;;;;2765:796:84;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;2765:796:84;;;;-1:-1:-1;2765:796:84;;;477:31:75;2765:796:84;;;;;;:::i;:::-;;;;;;;;;;;;;;;416:25:75;;;;2765:796:84;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;-1:-1:-1;2765:796:84;;;;;;;;;;;;;477:31:75;;2765:796:84;;;;;;;;;;:::i;:::-;477:31:75;2765:796:84;;477:31:75;;;;;;:::i;:::-;518:79;;;2765:796:84;518:79:75;;2765:796:84;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2765:796:84;;;;;;;:::o;:::-;;:::i;:::-;;;;;;;-1:-1:-1;;;;;2765:796:84;;;;;;;:::o;:::-;-1:-1:-1;;;;;2765:796:84;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;2765:796:84;;;;;;;:::o;:::-;;;;;;;:::i;:::-;:::o;:::-;;;;;;;:::i;:::-;-1:-1:-1;;;;;2765:796:84;;;;;;-1:-1:-1;;2765:796:84;;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;2765:796:84;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;2765:796:84;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;-1:-1:-1;;;;;2765:796:84;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;2692:73:92;:38;2765:796:84;;;:::i;:::-;;;;;-1:-1:-1;2765:796:84;2692:16:92;2765:796:84;;;-1:-1:-1;2765:796:84;;;;;;;;;;;;;;;;;2692:38:92;:73;:::i;2765:796:84:-;;;;;3248:62:92;2765:796:84;;;:::i;:::-;3248:62:92;;;;;:::i;:::-;2765:796:84;;;;;;;;;;;;;-1:-1:-1;;2765:796:84;;;;;;;-1:-1:-1;;;;;404:28:69;2765:796:84;;;;;;;;;;-1:-1:-1;;2765:796:84;;;;;;;1271:7:92;2765:796:84;;;;;;;;;-1:-1:-1;;2765:796:84;;;;;;;;-1:-1:-1;;;;;2765:796:84;;;;;;;;;;;;;;;:::i;:::-;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;;;;2765:796:84;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;;;;:::o;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;:::i;774:1493:93:-;;;;;;;;2765:796:84;;:::i;:::-;1076:16:93;;1072:91;;774:1493;837:15:62;;819:34;837:15;819:34;:::i;:::-;-1:-1:-1;2765:796:84;1215:29:93;;;;:27;;:13;;-1:-1:-1;;;;;2765:796:84;1215:13:93;2765:796:84;;-1:-1:-1;;;;;2765:796:84;;;1215:27:93;2765:796:84;;-1:-1:-1;;;1215:29:93;;2765:796:84;;;;;1215:29:93;;;;;;1177:67;1215:29;1196:48;1215:29;-1:-1:-1;1215:29:93;;;774:1493;1196:48;;:::i;:::-;2765:796:84;;;;1177:67:93;2765:796:84;;;1177:67:93;;;:107;;;;;774:1493;1173:178;;;1418:87;1531:33;1474:30;;1418:87;;;;:::i;:::-;1531:33;;;;;:::i;:::-;1578:18;;;1574:75;;1950:87;;;2200:60;1718:16;2200:60;1718:16;;;;;;:::i;:::-;1791:13;;;;;:::i;:::-;2765:796:84;;:::i;:::-;;;;1215:29:93;1961:75;;2765:796:84;;;1950:87:93;;;1215:29;1950:87;;2765:796:84;;;;;;;;;;;;;;;;;;;1950:87:93;;;;;;:::i;:::-;2087:16;;;;:::i;:::-;2167;;;;;;:::i;:::-;2765:796:84;;;;;;;;;;;;;;-1:-1:-1;;;;;2765:796:84;;;;;;;;;;;2200:60:93;;;;774:1493::o;1574:75::-;2765:796:84;;-1:-1:-1;;;1619:19:93;;1215:29;;1619:19;1173:178;2765:796:84;;-1:-1:-1;;;1315:25:93;;1215:29;;1315:25;1177:107;837:15:62;;1248:36:93;819:34:62;837:15;819:34;:::i;1248:36:93:-;-1:-1:-1;1248:36:93;1177:107;;;1215:29;;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;1072:91;1121:31;;;;;;;;:::i;:::-;1072:91;;;;;2765:796:84;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;2765:796:84;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;;;;2765:796:84;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;:::i;3020:539::-;2765:796;;-1:-1:-1;;;3303:105:84;;-1:-1:-1;;;;;2765:796:84;;;3303:105;;;2765:796;;;;;;;;;;;;;;;;;;;;;;;;;3020:539;2765:796;3303:105;;2765:796;;;;;;3320:18;2765:796;3303:105;;;;;;;;;;;3020:539;2765:796;;;3419:134;;3020:539;:::o;3419:134::-;3476:66;2765:796;;;3476:66;2765:796;;;:::i;:::-;;;;;;3476:66;;;2765:796;3476:66;;;:::i;3303:105::-;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;2505:267:92;-1:-1:-1;2765:796:84;;;2692:16:92;2765:796:84;;;;;;;;-1:-1:-1;;;;;2765:796:84;;;;;;;;;2692:73:92;;2505:267;;2692:73;:::i;2765:796:84:-;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;;;;2765:796:84;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;2765:796:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;2765:796:84;;;;;;;;:::o;:::-;;;;;;;;;;:::o;3323:1122:92:-;;2765:796:84;;:::i;:::-;;;;3608:16:92;3604:109;;3323:1122;837:15:62;;819:34;837:15;819:34;:::i;:::-;-1:-1:-1;2765:796:84;;;;3778:27:92;;:13;;-1:-1:-1;;;;;2765:796:84;3778:13:92;2765:796:84;3778:27:92;2765:796:84;;;;;;;3778:29:92;;;;;;;;;;;;;;;3740:67;3778:29;3759:48;3778:29;-1:-1:-1;3778:29:92;;;3759:48;;:::i;3740:67::-;2765:796:84;;;3740:67:92;;;:107;;;;;3323:1122;3740:197;;;;3323:1122;3723:263;;;2765:796:84;3778:29:92;2765:796:84;;;;;;;;;;4025:25:92;;;;;;;;;4010:143;4025:25;;;-1:-1:-1;4025:25:92;;;3323:1122;4113:30;;;2765:796:84;;;;;;;;;;;4010:143:92;;;;;3778:29;4010:143;;;:::i;:::-;;;-1:-1:-1;;;;;2765:796:84;4010:143:92;;;;;;;4181:257;4010:143;-1:-1:-1;4010:143:92;;;3323:1122;3996:157;;4293:102;3996:157;;4233:162;3996:157;4207:231;3996:157;;2936:28;:47;:38;:28;;;2765:796:84;;2936:16:92;2765:796:84;;;;;;;2936:28:92;2765:796:84;;;;;;;;;;;;;;;;2936:47:92;4351:43;;;4293:102;;:::i;:::-;4233:162;;:::i;:::-;4207:231;:::i;4181:257::-;3323:1122;:::o;4010:143::-;4233:162;4010:143;;;4207:231;4010:143;;;;4293:102;4010:143;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;;;;;4025:25;;;;;;;;;;;;;;:::i;:::-;;;;3723:263;3962:13;;;;;;-1:-1:-1;3962:13:92;-1:-1:-1;3962:13:92;:::o;3740:197::-;3886:41;;3867:70;3886:51;;:41;;;2765:796:84;;3886:29:92;2765:796:84;;;;;;;3886:51:92;2765:796:84;;;;;3867:70:92;-1:-1:-1;3740:197:92;;;:107;837:15:62;;3811:36:92;819:34:62;837:15;819:34;:::i;3811:36:92:-;;;;3740:107;;;3778:29;;;;;;;;;;;;;;;:::i;3604:109::-;3662:40;;;;;;;;;;;;:::i;:::-;3604:109;;;;2557:104:57;;2641:5;;;;;;:13;2557:104;:::o;2641:13::-;;;2557:104;:::o;4714:335:92:-;;;;2765:796:84;-1:-1:-1;2765:796:84;4876:29:92;2765:796:84;;;;4876:51:92;2765:796:84;;-1:-1:-1;2765:796:84;;;;;;;;;;;;;;;;;4876:51:92;2765:796:84;;;;;-1:-1:-1;4872:171:92;;4714:335;;;:::o;4872:171::-;4962:70;2765:796:84;4962:51:92;2765:796:84;-1:-1:-1;2765:796:84;4876:29:92;2765:796:84;;;-1:-1:-1;2765:796:84;;;;;;;;;;;;;;;;;4962:51:92;2765:796:84;;;;;;;;;;;;;;9856:1:60;2765:796:84;;;;;;;:::o;5055:221:92:-;;;2765:796:84;-1:-1:-1;2765:796:84;5160:16:92;2765:796:84;;2936:47:92;:38;5160;2765:796:84;;-1:-1:-1;2765:796:84;;;;;;;;;;;;;;;;;5160:38:92;837:15:62;819:34;837:15;819:34;:::i;:::-;2765:796:84;-1:-1:-1;2765:796:84;5160:16:92;2765:796:84;;;-1:-1:-1;2765:796:84;;;;;;;;;;;;;;;;;2936:47:92;2765:796:84;;;;;;;;6360:12:86;;;2765:796:84;;;6360:24:86;6356:75;;5055:221:92;6474:30:86;;;:::i;:::-;2765:796:84;;;;;6578:12:86;;;;:::i;:::-;;6604:24;;;5055:221:92;-1:-1:-1;6600:188:86;;;-1:-1:-1;;;;2765:796:84;;;;;;;6644:29:86;:21;;;;:::i;:::-;:29;2765:796:84;;;;;;;;;;;;;;;;;;;;;6600:188:86;6753:24;;8167:38:60;;-1:-1:-1;;;;;2765:796:84;;;;;8167:38:60;:::i;:::-;6753:24:86;;;:::i;6604:::-;2765:796:84;;;;;;6614:14:86;;-1:-1:-1;6604:24:86;;;6356:75;6400:20;;;:::i;:::-;6356:75;;2765:796:84;;;;;;;;-1:-1:-1;;;;;2765:796:84;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;5282:431:92:-;;;;5487:25;;:23;:13;2765:796:84;5494:5:92;2765:796:84;;;;;;;;;5487:23:92;2765:796:84;;-1:-1:-1;;;5487:25:92;;2765:796:84;;;;;5487:25:92;;;;;;;5631:65;5487:25;5631:65;5487:25;5494:5;5487:25;;;5282:431;-1:-1:-1;;;;;;2765:796:84;;;;:::i;:::-;-1:-1:-1;;;;;5677:4:92;2765:796:84;;;5677:4:92;5487:25;5642:53;;2765:796:84;;;5631:65:92;;;5487:25;5631:65;;;:::i;:::-;5472:234;;;;;5494:5;2765:796:84;5472:234:92;2765:796:84;;;;;;;;;;;;;;5472:234:92;;5487:25;5472:234;;;:::i;:::-;;;;;;;;;;;5282:431;:::o;5472:234::-;;;;;;:::i;:::-;;;:::i;5487:25::-;;;;;;;;;;;;;;:::i;:::-;;;;5719:137;5809:5;2765:796:84;;;;-1:-1:-1;;;5802:47:92;;;;;2765:796:84;;;;;;;;;;;;;;;5802:47:92;;2765:796:84;;;;;;-1:-1:-1;;;;;2765:796:84;5802:47:92;;;;;;;;5719:137;:::o;5802:47::-;;;;;;;;;;;;;:::i;:::-;;5719:137::o;2765:796:84:-;;;;;;;:::o;:::-;;;;;;;;;;;;5862:623:92;;;5988:12;2765:796:84;;;;;;;5984:495:92;;5862:623;;;;;;:::o;5984:495::-;2765:796:84;;-1:-1:-1;;;6033:22:92;;2765:796:84;6033:22:92;;2765:796:84;;6033:22:92;;2765:796:84;;-1:-1:-1;;;;;2765:796:84;6033:22:92;;;;;;;5988:12;6033:22;;;5984:495;-1:-1:-1;2765:796:84;;-1:-1:-1;;;6033:22:92;6094:81;;;;;;;;2765:796:84;;;;-1:-1:-1;;;;;2765:796:84;;;;;;;;;;;;;;;;;;;;;;6094:81:92;2765:796:84;;;;6094:81:92;;2765:796:84;;6094:81:92;;;;;;:::i;:::-;2765:796:84;6194:9:92;:55;6190:124;;5988:12;6328:141;;;;;;1271:7;6328:141;;5984:495;;;;;;;6190:124;2765:796:84;;-1:-1:-1;;;6276:23:92;;6033:22;;6276:23;6033:22;6094:81;6033:22;;;6094:81;6033:22;;;;;;;;;;;:::i;:::-;;;;;2765:796:84;;;;;;;;-1:-1:-1;2765:796:84;;-1:-1:-1;2765:796:84;;;-1:-1:-1;2765:796:84;:::o;:::-;;;;;;;;;;;;10580:184:86;2765:796:84;;10303:8:60;;;:63;-1:-1:-1;10303:63:60;-1:-1:-1;;;;;2765:796:84;;10726:7:86;2765:796:84;;10736:12:86;:17;:12;;:17;:::i;:::-;2765:796:84;;;;;;10580:184:86;:::o;10726:31::-;;;-1:-1:-1;10580:184:86;:::o;10303:63:60:-;2765:796:84;;;;;;;;;;14249:109:60;-1:-1:-1;14249:109:60;;-1:-1:-1;14249:109:60;;;2765:796:84;;;10303:63:60;;2765:796:84;;;;;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;2765:796:84;;;;;;;;:::i;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;:::i;6491:564:92:-;6614:34;6491:564;6614:34;;;;:::i;:::-;2765:796:84;;-1:-1:-1;;;6664:41:92;;-1:-1:-1;;;;;2765:796:84;;;6664:41:92;;;2765:796:84;;;;;6664:41:92;;;2765:796:84;;;6674:13:92;2765:796:84;;6664:41:92;;;;;;;-1:-1:-1;6664:41:92;;;6491:564;6663:42;;6659:90;;2540:111:28;6850:27:92;6664:41;2540:111:28;;;:::i;:::-;-1:-1:-1;2765:796:84;;-1:-1:-1;;;;;;2765:796:84;-1:-1:-1;;;;;2765:796:84;;;;;6850:27:92;:::i;:::-;2765:796:84;;;;;;;;;;6892:23:92;;;;;;;;;-1:-1:-1;6892:23:92;;;6491:564;2765:796:84;;;6892:37:92;:64;;;6491:564;6888:112;;2765:796:84;7010:38:92;;2765:796:84;;-1:-1:-1;2765:796:84;;-1:-1:-1;;;;2765:796:84;;;;;;-1:-1:-1;;;2765:796:84;;;;;;;;6888:112:92;2765:796:84;;-1:-1:-1;;;6979:10:92;;6664:41;;6979:10;6892:64;-1:-1:-1;2765:796:84;;;;6892:64:92;;:23;;;;;;-1:-1:-1;6892:23:92;;;;;;:::i;:::-;;;;;6659:90;2765:796:84;;-1:-1:-1;;;6728:10:92;;6664:41;;6728:10;6664:41;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;2765:796:84;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;:::o;7558:604:86:-;;2765:796:84;;7686:17:86;7682:83;;2765:796:84;7789:27:86;2765:796:84;7789:27:86;2765:796:84;;7789:27:86;;;;;;:::i;:::-;7860:14;;;;;:::i;:::-;2765:796:84;;;;;;;;;;;;;;;;7888:22:86;;;7884:77;;7975:21;-1:-1:-1;7975:84:86;;;;7558:604;7971:139;;;;8127:28;;;;:::i;7971:139::-;8082:17;;7789:27;8082:17;2765:796:84;8075:24:86;:::o;7975:84::-;2765:796:84;;;8009:16:86;2765:796:84;;8009:16:86;:::i;:::-;2765:796:84;;;8001:24:86;:57;;;;;7975:84;;;;;;;8001:57;8029:29;8038:8;;;8029:18;8038:8;8029:23;8038:8;;:::i;:::-;8029:18;;:::i;:::-;2765:796:84;;;;;8029:29:86;;8001:57;;;;7884:77;7933:17;;;;;7789:27;7933:17;2765:796:84;7926:24:86;:::o;7682:83::-;7726:28;;;;:::i;14291:213:58:-;2765:796:84;14369:24:58;;;;14365:103;;2765:796:84;14291:213:58;:::o;14365:103::-;2765:796:84;;;;14416:41:58;;;;;;14447:2;14416:41;;;2765:796:84;;;;;14416:41:58;2765:796:84;;;-1:-1:-1;;;2765:796:84;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::o;:::-;;;;;-1:-1:-1;;;2765:796:84;;;;;;;;;;;;;;;:::i;6893:76:25:-;;;:::i;:::-;;;:::i;:::-;1805:1:28;2355:73;1847:1;6893:76:25:o;2273:218:93:-;-1:-1:-1;2765:796:84;;;;;:::i;:::-;;;;;;2419:30:93;;2765:796:84;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;2419:30:93;2765:796:84;:::i;:::-;;;;2273:218:93;:::o;6999:207:86:-;;2765:796:84;;9594:15:60;-1:-1:-1;9619:18:60;9652:7;9658:1;9652:7;;9648:234;;6999:207:86;9906:53:60;;;;;:::i;:::-;9977:8;;;:63;-1:-1:-1;9977:63:60;;-1:-1:-1;;;;;2765:796:84;;7168:7:86;2765:796:84;;;7178:12:86;;:17;:12;;:17;:::i;9977:63:60:-;9992:41;10025:7;9992:48;10025:7;;:::i;:::-;9992:41;14249:109;;;;;;14099:265;;9992:41;2765:796:84;;;;;9992:48:60;9977:63;;;9648:234;9695:14;;;;;:::i;:::-;2765:796:84;;;;;;;9906:53:60;14249:109;;-1:-1:-1;14249:109:60;2765:796:84;14249:109:60;;;-1:-1:-1;14249:109:60;;2765:796:84;;;;;9727:48:60;9723:149;2765:796:84;;;9795:10:60;9723:149;9648:234;;9723:149;9850:7;;;;;;:::i;:::-;9723:149;9648:234;;2765:796:84;;;;;;;:::i;:::-;-1:-1:-1;2765:796:84;;;;;;;:::o;11486:272:86:-;;2765:796:84;11308:22:60;11718:31:86;11486:272;2765:796:84;;:::i;:::-;;;;:::i;:::-;;11308:22:60;;:::i;:::-;2765:796:84;;:::i;:::-;;11718:12:86;2765:796:84;;;;;11731:17:86;2765:796:84;;;;;11731:17:86;;2765:796:84;;11718:12:86;;:31;:::i;:::-;2765:796:84;;;;;;;;;:::i;:::-;;;;;;11731:17:86;11672:79;;2765:796:84;11486:272:86;:::o;2765:796:84:-;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::o;10552:388:60:-;2765:796:84;;10728:8:60;;;10752:20;;10690:17;10752:20;10690:17;10752:20;10690:17;10752:20;:::o;10724:210::-;2765:796:84;;;;;;;;;;;14249:109:60;10690:17;14249:109;;10690:17;14249:109;;;2765:796:84;:::i;:::-;;;;;;;14249:109:60;2765:796:84;;;;;10911:11:60;;2765:796:84;;10886:37:60;10870:1;10886:37;;;:::o;7084:141:25:-;2765:796:84;-1:-1:-1;;;;;;;;;;;2765:796:84;;;;7150:18:25;7146:73;;7084:141::o;7146:73::-;2765:796:84;;-1:-1:-1;;;7191:17:25;;;;;2765:796:84;;;-1:-1:-1;;;2765:796:84;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;2765:796:84;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;11513:870:60;2765:796:84;;11513:870:60;;;2765:796:84;11513:870:60;11672:7;;;;2765:796:84;11775:28:60;11795:7;;;:::i;11775:28::-;2765:796:84;:::i;:::-;;;;;;;;;;;;;;;;11877:15:60;-1:-1:-1;11873:91:60;;2765:796:84;;12233:11:60;2765:796:84;;;12027:16:60;2765:796:84;;;;;;;12027:16:60;;;;12083:7;12063:43;12083:7;;12063:28;12083:7;;:::i;:::-;12063:28;14249:109;;;;;;14099:265;;12063:28;2765:796:84;;;;;;;;;;;;;;;;;12063:43:60;12233:11;2765:796:84;-1:-1:-1;;;;;2765:796:84;;;;12225:27:60;;:::o;12023:189::-;2765:796:84;;;12145:52:60;2765:796:84;12155:41:60;2765:796:84;;:::i;:::-;;;;;;;;12155:41:60;-1:-1:-1;;;;;2765:796:84;;12155:41:60;;;2765:796:84;12145:52:60;:::i;:::-;12023:189;;11873:91;2765:796:84;;-1:-1:-1;;;11919:30:60;;;;;11668:709;12283:52;2765:796:84;;12293:41:60;2765:796:84;;:::i;12293:41:60:-;-1:-1:-1;;;;;2765:796:84;;12293:41:60;;;2765:796:84;12145:52:60;:::i;12283:::-;11678:1;12349:17;;:::o;8587:1642:57:-;8658:6;;8654:45;;9401:7;10201:10;10142:26;10093;10044;9995;9946;9897;9848;2765:796:84;10189:23:57;9401:7;8663:1;2765:796:84;;;;10826:16:57;10822:99;;8587:1642;2765:796:84;;;;10938:15:57;10934:96;;8587:1642;2765:796:84;;;;11047:15:57;11043:96;;8587:1642;2765:796:84;;;;11156:15:57;11152:96;;8587:1642;2765:796:84;;;;11265:14:57;11261:93;;8587:1642;2765:796:84;;;;11371:14:57;11367:93;;8587:1642;2765:796:84;;;;11477:14:57;11473:93;;8587:1642;2765:796:84;;;11579:64:57;;8587:1642;2765:796:84;;;9858:10:57;;;;:::i;:::-;2765:796:84;;;;;9848:26:57;9907:10;;;;:::i;9897:26::-;9956:10;;;;:::i;9946:26::-;10005:10;;;;:::i;9995:26::-;10054:10;;;;:::i;10044:26::-;10103:10;;;;:::i;10093:26::-;10152:10;;;;:::i;10142:26::-;10201:10;;;:::i;:::-;10189:23;;:::i;11579:64::-;2765:796:84;;11579:64:57;;11473:93;2765:796:84;11511:11:57;;2765:796:84;;11473:93:57;;;;11367;2765:796:84;11405:11:57;;2765:796:84;;11367:93:57;;;;11261;2765:796:84;11299:11:57;;2765:796:84;;11261:93:57;;;;11152:96;2765:796:84;11191:12:57;;2765:796:84;;11152:96:57;;;;11043;2765:796:84;11082:12:57;;2765:796:84;;11043:96:57;;;;10934;2765:796:84;10973:12:57;;2765:796:84;;10934:96:57;;;;10822:99;10862:13;;;2765:796:84;10822:99:57;;;;8654:45;8680:8;8663:1;8680:8;:::o;12736:433:60:-;;;12919:10;;;;;;13151:11;;;12736:433;:::o;12912:230::-;2900:5:57;;;;;;2910;;;;2765:796:84;;;;;;;;;14249:109:60;-1:-1:-1;14249:109:60;2765:796:84;14249:109:60;;;-1:-1:-1;14249:109:60;;2765:796:84;;;;;-1:-1:-1;12996:136:60;2765:796:84;;;13055:10:60;12996:136;;12912:230;;;;12996:136;13110:7;;;;;;:::i;:::-;12996:136;;","linkReferences":{},"immutableReferences":{"57808":[{"start":1266,"length":32}],"57811":[{"start":2377,"length":32},{"start":4985,"length":32}],"62913":[{"start":1682,"length":32},{"start":3379,"length":32}],"65592":[{"start":797,"length":32},{"start":5801,"length":32}],"65595":[{"start":540,"length":32},{"start":1198,"length":32}]}},"methodIdentifiers":{"BASE_SLASHER_HINTS()":"457821b7","BURNER_GAS_LIMIT()":"d5c24e1a","BURNER_RESERVE()":"2964f8dc","FACTORY()":"2dd31000","NETWORK_MIDDLEWARE_SERVICE()":"2c9d45b3","TYPE()":"bb24fe8a","VAULT_FACTORY()":"103f2907","cumulativeSlash(bytes32,address)":"1a2be2c4","cumulativeSlashAt(bytes32,address,uint48,bytes)":"aa8e6489","initialize(bytes)":"439fab91","isBurnerHook()":"34d098ea","latestSlashedCaptureTimestamp(bytes32,address)":"267de1f3","slash(bytes32,address,uint256,uint48,bytes)":"021a8156","slashHints(address,address,bytes32,address,uint256,uint48)":"238ab85f","slashableStake(bytes32,address,uint48,bytes)":"aab3595f","staticDelegateCall(address,bytes)":"9f86fd85","vault()":"fbfa77cf"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"baseSlasherHints\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"CheckpointUnorderedInsertion\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ExternalCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientBurnerGas\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientSlash\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidCaptureTimestamp\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NoBurner\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotNetworkMiddleware\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotVault\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ReentrancyGuardReentrantCall\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"bits\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"SafeCastOverflowedUintDowncast\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"slashedAmount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint48\",\"name\":\"captureTimestamp\",\"type\":\"uint48\"}],\"name\":\"Slash\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"BASE_SLASHER_HINTS\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"BURNER_GAS_LIMIT\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"BURNER_RESERVE\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"FACTORY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"NETWORK_MIDDLEWARE_SERVICE\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"TYPE\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"VAULT_FACTORY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"cumulativeSlash\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hint\",\"type\":\"bytes\"}],\"name\":\"cumulativeSlashAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isBurnerHook\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"latestSlashedCaptureTimestamp\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"value\",\"type\":\"uint48\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint48\",\"name\":\"captureTimestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hints\",\"type\":\"bytes\"}],\"name\":\"slash\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"slashedAmount\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"slasher\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"msgSender\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint48\",\"name\":\"captureTimestamp\",\"type\":\"uint48\"}],\"name\":\"slashHints\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"captureTimestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hints\",\"type\":\"bytes\"}],\"name\":\"slashableStake\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"staticDelegateCall\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"vault\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"CheckpointUnorderedInsertion()\":[{\"details\":\"A value was attempted to be inserted on a past checkpoint.\"}],\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"ReentrancyGuardReentrantCall()\":[{\"details\":\"Unauthorized reentrant call.\"}],\"SafeCastOverflowedUintDowncast(uint8,uint256)\":[{\"details\":\"Value doesn't fit in an uint of `bits` size.\"}]},\"events\":{\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"Slash(bytes32,address,uint256,uint48)\":{\"params\":{\"captureTimestamp\":\"time point when the stake was captured\",\"operator\":\"operator that is slashed\",\"slashedAmount\":\"virtual amount of the collateral slashed\",\"subnetwork\":\"subnetwork that requested the slash\"}}},\"kind\":\"dev\",\"methods\":{\"cumulativeSlash(bytes32,address)\":{\"params\":{\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"},\"returns\":{\"_0\":\"cumulative slash amount\"}},\"cumulativeSlashAt(bytes32,address,uint48,bytes)\":{\"params\":{\"hint\":\"hint for the checkpoint index\",\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\",\"timestamp\":\"time point to get the cumulative slash amount until (inclusively)\"},\"returns\":{\"_0\":\"cumulative slash amount until the given timestamp (inclusively)\"}},\"initialize(bytes)\":{\"params\":{\"data\":\"some data to use\"}},\"slash(bytes32,address,uint256,uint48,bytes)\":{\"details\":\"Only a network middleware can call this function.\",\"params\":{\"amount\":\"maximum amount of the collateral to be slashed\",\"captureTimestamp\":\"time point when the stake was captured\",\"hints\":\"hints for checkpoints' indexes\",\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"},\"returns\":{\"slashedAmount\":\"virtual amount of the collateral slashed\"}},\"slashableStake(bytes32,address,uint48,bytes)\":{\"params\":{\"captureTimestamp\":\"time point to get the stake amount at\",\"hints\":\"hints for the checkpoints' indexes\",\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"},\"returns\":{\"amount\":\"slashable amount of the stake\"}},\"staticDelegateCall(address,bytes)\":{\"details\":\"It allows to use this contract's storage on-chain.\",\"params\":{\"data\":\"data to make a delegatecall with\",\"target\":\"address of the contract to make a delegatecall to\"}}},\"version\":1},\"userdoc\":{\"events\":{\"Slash(bytes32,address,uint256,uint48)\":{\"notice\":\"Emitted when a slash is performed.\"}},\"kind\":\"user\",\"methods\":{\"BURNER_GAS_LIMIT()\":{\"notice\":\"Get a gas limit for the burner.\"},\"BURNER_RESERVE()\":{\"notice\":\"Get a reserve gas between the gas limit check and the burner's execution.\"},\"FACTORY()\":{\"notice\":\"Get the factory's address.\"},\"NETWORK_MIDDLEWARE_SERVICE()\":{\"notice\":\"Get the network middleware service's address.\"},\"TYPE()\":{\"notice\":\"Get the entity's type.\"},\"VAULT_FACTORY()\":{\"notice\":\"Get the vault factory's address.\"},\"cumulativeSlash(bytes32,address)\":{\"notice\":\"Get a cumulative slash amount for an operator on a subnetwork.\"},\"cumulativeSlashAt(bytes32,address,uint48,bytes)\":{\"notice\":\"Get a cumulative slash amount for an operator on a subnetwork until a given timestamp (inclusively) using a hint.\"},\"initialize(bytes)\":{\"notice\":\"Initialize this entity contract by using a given data.\"},\"isBurnerHook()\":{\"notice\":\"Get if the burner is needed to be called on a slashing.\"},\"latestSlashedCaptureTimestamp(bytes32,address)\":{\"notice\":\"Get the latest capture timestamp that was slashed on a subnetwork.\"},\"slash(bytes32,address,uint256,uint48,bytes)\":{\"notice\":\"Perform a slash using a subnetwork for a particular operator by a given amount using hints.\"},\"slashableStake(bytes32,address,uint48,bytes)\":{\"notice\":\"Get a slashable amount of a stake got at a given capture timestamp using hints.\"},\"staticDelegateCall(address,bytes)\":{\"notice\":\"Make a delegatecall from this contract to a given target contract with a particular data (always reverts with a return data).\"},\"vault()\":{\"notice\":\"Get the vault's address.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/contracts/hints/SlasherHints.sol\":\"SlasherHints\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol\":{\"keccak256\":\"0x6662ec4e5cefca03eeadd073e9469df8d2944bb2ee8ec8f7622c2c46aab5f225\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4d8544c6f8daa4d1bc215c6a72fe0acdb748664a105b0e5efc19295667521d45\",\"dweb:/ipfs/QmdGWqdnXT8S3RgCR6aV8XHZrsybieMQLLnug1NtpSjEXN\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0xc163fcf9bb10138631a9ba5564df1fa25db9adff73bd9ee868a8ae1858fe093a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9706d43a0124053d9880f6e31a59f31bc0a6a3dc1acd66ce0a16e1111658c5f6\",\"dweb:/ipfs/QmUFmfowzkRwGtDu36cXV9SPTBHJ3n7dG9xQiK5B28jTf2\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609\",\"dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9\",\"dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardUpgradeable.sol\":{\"keccak256\":\"0xb44e086e941292cdc7f440de51478493894ef0b1aeccb0c4047445919f667f74\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://942dad22fbdc1669f025540ba63aa3ccfad5f8458fc5d4525b31ebf272e7af45\",\"dweb:/ipfs/Qmdo4X2M82aM3AMoW2kf2jhYkSCyC4T1pHNd6obdsDFnAB\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol\":{\"keccak256\":\"0xdaba3f7c42c55b2896353f32bd27d4d5f8bae741b3b05d4c53f67abc4dc47ce8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1fa2e61141c602510bcd2cd936ed9561922ac8772a9b9c9a9db091a74e354a45\",\"dweb:/ipfs/QmcHQDDoEBwJmwUbzoVkytvJsBx3KVHYFFnDkvRGWh9Wmh\"]},\"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0xb6b36edd6a2999fd243ff226d6cbf84bd71af2432bbd0dfe19392996a1d9cb41\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1fd2f35495652e57e3f99bc6c510bc5f7dd398a176ea2e72d8ed730aebc6ca26\",\"dweb:/ipfs/QmTQV6X4gkikTib49cho5iDX3JvSQbdsoEChoDwrk3CbbH\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC1271.sol\":{\"keccak256\":\"0x85a45f3f10014a0f8be41157a32b6a5f905753ea64a4b64e29fc12b7deeecf39\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c3c74009ce36136b36c77c23935b8e4a7b4f253be2da2be4fb4a916b1ce43743\",\"dweb:/ipfs/QmcH36v3iN7SJJuF73AunLR2LtNxhVJ1wm63ph4dPZ4pcL\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC5267.sol\":{\"keccak256\":\"0x92aa1df62dc3d33f1656d63bede0923e0df0b706ad4137c8b10b0a8fe549fd92\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c5c0f29195ad64cbe556da8e257dac8f05f78c53f90323c0d2accf8e6922d33a\",\"dweb:/ipfs/QmQ61TED8uaCZwcbh8KkgRSsCav7x7HbcGHwHts3U4DmUP\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c\",\"dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0x6008dabfe393240d73d7dd7688033f72740d570aa422254d29a7dce8568f3aff\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f5196ec75139918c6c7bb4251b36395e668f1fa6d206beba7e7520e74913940d\",\"dweb:/ipfs/QmSyqjksXxmm2mCG6qRd1yuwLykypkSVBbnBnGqJRcuJMi\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x37bb49513c49c87c4642a891b13b63571bc87013dde806617aa1efb54605f386\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b3036b3a83b7c48f96641f2a9002b9f2dcb6a5958dd670894ada21ae8229b3d0\",\"dweb:/ipfs/QmUNfSBdoVtjhETaUJCYcaC7pTMgbhht926tJ2uXJbiVd3\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0xaf28a975a78550e45f65e559a3ad6a5ad43b9b8a37366999abd1b7084eb70721\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b7bd24e224f67f65bfadf85dc2929fa965456bb2415478bd0125471b5ce35245\",\"dweb:/ipfs/QmRaydGr8BTHs1kvaZfsNU69pKzUAGFrvABn1KiRSbE51y\"]},\"lib/openzeppelin-contracts/contracts/utils/ShortStrings.sol\":{\"keccak256\":\"0x18a7171df639a934592915a520ecb97c5bbc9675a1105607aac8a94e72bf62c6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7478e1f13da69a2867ccd883001d836b75620362e743f196376d63ed0c422a1c\",\"dweb:/ipfs/QmWywcQ9TNfwtoqAxbn25d8C5VrV12PrPS9UjtGe6pL2BA\"]},\"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0x32ba59b4b7299237c8ba56319110989d7978a039faf754793064e967e5894418\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1ae50c8b562427df610cc4540c9bf104acca7ef8e2dcae567ae7e52272281e9c\",\"dweb:/ipfs/QmTHiadFCSJUPpRjNegc5SahmeU8bAoY8i9Aq6tVscbcKR\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0x55f102ea785d8399c0e58d1108e2d289506dde18abc6db1b7f68c1f9f9bc5792\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e52e0a7765c943ef14e5bcf11e46e6139fa044be564881378349236bf2e3453\",\"dweb:/ipfs/QmZEeeXoFPW47amyP35gfzomF9DixqqTEPwzBakv6cZw6i\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0xeed0a08b0b091f528356cbc7245891a4c748682d4f6a18055e8e6ca77d12a6cf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba80ba06c8e6be852847e4c5f4492cef801feb6558ae09ed705ff2e04ea8b13c\",\"dweb:/ipfs/QmXRJDv3xHLVQCVXg1ZvR35QS9sij5y9NDWYzMfUfAdTHF\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/EIP712.sol\":{\"keccak256\":\"0x999f705a027ed6dc2d4e0df2cc4a509852c6bfd11de1c8161bf88832d0503fd0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0798def67258d9a3cc20b2b4da7ebf351a5cefe0abfdd665d2d81f8e32f89b21\",\"dweb:/ipfs/QmPEvJosnPfzHNjKvCv2D3891mA2Ww8eUwkqrxBjuYdHCt\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol\":{\"keccak256\":\"0xba333517a3add42cd35fe877656fc3dfcc9de53baa4f3aabbd6d12a92e4ea435\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2ceacff44c0fdc81e48e0e0b1db87a2076d3c1fb497341de077bf1da9f6b406c\",\"dweb:/ipfs/QmRUo1muMRAewxrKQ7TkXUtknyRoR57AyEkoPpiuZQ8FzX\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/SignatureChecker.sol\":{\"keccak256\":\"0x6b11eb41a228cca35d4b662b4df69fcd75192851365102690f57b2ac01e83fe6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ab006a2983ed350d2af21ddcdd835dcae3b8340086cc4d088460da5abd041f69\",\"dweb:/ipfs/QmbEacDhkJZiGrgzLjB4pNtE8Z1uudjDw1DvcDUTVQFsLG\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875\",\"dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0xe19a4d5f31d2861e7344e8e535e2feafb913d806d3e2b5fe7782741a2a7094fe\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4aed79c0fa6f0546ed02f2f683e8f77f0fd2ed7eb34d8bbf3d373c9a6d95b13c\",\"dweb:/ipfs/QmWqVz6UAVqmnWU5pqYPt1o6iDEZyPaBraAA3rKfTTSfYj\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x5f7e4076e175393767754387c962926577f1660dd9b810187b9002407656be72\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7d533a1c97cd43a57cd9c465f7ee8dd0e39ae93a8fb8ff8e5303a356b081cdcc\",\"dweb:/ipfs/QmVBEei6aTnvYNZp2CHYVNKyZS4q1KkjANfY39WVXZXVoT\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/Checkpoints.sol\":{\"keccak256\":\"0xbdc5e074d7dd6678f67e92b1a51a20226801a407b0e1af3da367c5d1ff4519ad\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a36cca6b22fff3db16fc789ff6c60eea71d4b156065d4d0c83a0bc5e91a77a8b\",\"dweb:/ipfs/QmYN3exd5AemxjBrN8XMB1p5LbbE16uC3sjbYjwi8AjcGR\"]},\"lib/openzeppelin-contracts/contracts/utils/types/Time.sol\":{\"keccak256\":\"0xc7755af115020049e4140f224f9ee88d7e1799ffb0646f37bf0df24bf6213f58\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7f09bf94d5274334ec021f61a04659db303f31e60460e14b709c9bf187740111\",\"dweb:/ipfs/QmNvgomZYUwFAt4cZbPWAiTeSZQreGehY9BK5xyVJsUttb\"]},\"src/contracts/common/Entity.sol\":{\"keccak256\":\"0x3d61a932995b8443381f3950542d388223a2c26dd5d29a3274dea3baa7388bd7\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://7cdf5f03ca72fd263fd32ff59c8d88ddca911ae83896a287d10772c1bbe9b138\",\"dweb:/ipfs/QmbP84r5BWT1Rn9AYTntWSf3xUMTTCohTZJFhbBhDXFoHa\"]},\"src/contracts/common/MigratableEntity.sol\":{\"keccak256\":\"0x2d736f4dacd5d7e7697503bc426c78b8250fe1694ca157965ec178da6807de58\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://f1237acf96b4b9f9b69156e068eddd726a6e15bd8e87a18dc999cd4ba4da069c\",\"dweb:/ipfs/QmS6M8fiFFSeuJ4ZKKq1z8W7w4ybeHQSy5TLASGoc1LVic\"]},\"src/contracts/common/StaticDelegateCallable.sol\":{\"keccak256\":\"0x350029aa8955eacaffffaeb58babc5c98e80ebc5c5db388ed17ee6465f4a9d90\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://eb392a8ee9050e0af606897df63e3404e3829e8b688b580663892f9664195764\",\"dweb:/ipfs/QmaXC8jqV8UrrAFkzXTEv2fJF56sy33HhLxAzaRZmUxuXD\"]},\"src/contracts/delegator/BaseDelegator.sol\":{\"keccak256\":\"0x7c54d491fdd4415b764a9c8defa068e56d4c0c8c9419be0053a1d377669290e8\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://9238bfbad0f6eeb0dc7727724de14380f1980b395902269703d5e2ef07e52e10\",\"dweb:/ipfs/QmPJn1V4HNXcEghYvogGuSTF24dSQUPosR5qtsXcmNqRm3\"]},\"src/contracts/delegator/FullRestakeDelegator.sol\":{\"keccak256\":\"0x0a81c4f8e72914563a9cb771e93acf889c71ea36b7bec040e4eb562b199d5af1\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://6fc66b6ba02da77046a0bbbd1dd407a62c08f52e04486c9cbd2cb1cca3da555f\",\"dweb:/ipfs/QmZQivK1ZnMxfRQQ5aLpV9co5u55wQVNev5Rg1hzAqxhkE\"]},\"src/contracts/delegator/NetworkRestakeDelegator.sol\":{\"keccak256\":\"0xd3a8e6522f9c6fdcc2da837c9023afd6bdff2bce45a35590320c475519e3636d\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://58b17a87f6554f08376f9ea7fedf486a4aa75801bf0ad8b23ff5a46959b6b7a3\",\"dweb:/ipfs/QmSTmNh67tYt8CmjVZb57r8N3qX5yeYdMApKPJm3qvQgQw\"]},\"src/contracts/delegator/OperatorNetworkSpecificDelegator.sol\":{\"keccak256\":\"0x031a10722b9ec49048f0952710401131290adb87e71caf294e864e7ac3b98a16\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://72428febc875134b2f29205e6f294634a1c22a7d5c78d6a9cb2f8196f107c9b5\",\"dweb:/ipfs/QmTPwXR6h5oytckmkLrHdKeEMdphJxceDhYUR4zvQeWAwY\"]},\"src/contracts/delegator/OperatorSpecificDelegator.sol\":{\"keccak256\":\"0x630ce62fa30b9f3349ab7a8cf8dbf041319febc6dd757be2f94d3d25944ed328\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://c2ac59d47ce57d2a6819ae9833e1a618a371eccff93eb5ab367b201b01f42bfa\",\"dweb:/ipfs/QmdBpGMBivpNPv2WbH8vnCUy5xkVeaxQvGgqi33vKCz1kA\"]},\"src/contracts/hints/DelegatorHints.sol\":{\"keccak256\":\"0x44aa0c396311a54afbc7c73e8dadeed41e3165a4fd13f712b27d63d50fc3376d\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://2f255214f3531fc707d88be0d56a7a0aed4180439316d099d760d9118aa83093\",\"dweb:/ipfs/QmZD1w5p1ukJSXumUAjvxwGmkPhn7vsr21Y2atLGEZR2oi\"]},\"src/contracts/hints/Hints.sol\":{\"keccak256\":\"0x8b565df1ae35993c097a9e642002782a8f451f6fd01809cad6bcd345bdf1b99c\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://99a19adb01e350a92f534095b3078229df1f2f83077992d75d58d8684be45971\",\"dweb:/ipfs/QmbmwcuswVbzvwHQFTtrJG86oV98GnfxqYTb8cV8u1acox\"]},\"src/contracts/hints/OptInServiceHints.sol\":{\"keccak256\":\"0x95d9407900d27b9f4a1233b772aeed809c07b2dc5b31cfc9fa77ca26514c49e5\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://a13a8877e312d7e6b8b85bde3668c5d84ff5ecc83f762cd573f2b7104c64eb42\",\"dweb:/ipfs/QmYV2J55acuGzCNnS3juABuUHY5U1xc8g8o9jwEyFFdeG5\"]},\"src/contracts/hints/SlasherHints.sol\":{\"keccak256\":\"0xd77c5f3bbb0265af8ecd947df88f6f9684e136d80052b5292f5b29aaa3566a3f\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://484a26504bf6706202ec82a9a4cfa7d196bbc552b5b78ced25bf7130c2842595\",\"dweb:/ipfs/QmaQqmkoZoUWEam4R94vmajzH3gKqFqpZQwFbrHDsN1peV\"]},\"src/contracts/hints/VaultHints.sol\":{\"keccak256\":\"0xccb505b7159b769cc114d67b87c2de6b106557f667fc8f3780114baad5c3c442\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://6d0c80a908fc16e96a8b5605a0bd53f9e89ad0ef0a738fbbae80ba4d3160749b\",\"dweb:/ipfs/QmXo5UtWoR8YmunqcbBU8rQMm1nvmvjNPoXcVrDhh4pEwR\"]},\"src/contracts/libraries/Checkpoints.sol\":{\"keccak256\":\"0xba90097c8bfe0a975499428b5f8ac5569483c7d92ccc28c12d70de416aae040c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://12f5d93ca94cd06d3147db68993165a58e17903ed53682560de61f3085ad4609\",\"dweb:/ipfs/QmePiuAqvXprMLmFZkGZeGjvGPAvsEDHfCDv7BoQhXu9xE\"]},\"src/contracts/libraries/ERC4626Math.sol\":{\"keccak256\":\"0x8441160513c1cbeb1c3b9ee077bcc7e7ce20006b52a77c8dd39ff0ef89699939\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://943f8cc3e26ddf649f465f40c909819f5c864717c4baa339e9e403b9374a4653\",\"dweb:/ipfs/QmXPxi1sUDsrGprZdUgCzoPEosaZMv9ZhygWQ1vAi1phAB\"]},\"src/contracts/libraries/Subnetwork.sol\":{\"keccak256\":\"0xf5ef5506fd66082b3c2e7f3df37529f5a8efad32ac62e7c8914bd63219190bfe\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba031a54ee0d0e9a270c2b9e18437f5668cfeb659cfd5fe0677459d7fcac2a56\",\"dweb:/ipfs/QmReP3H7qQ78tAfgLnJKsNEQNCQfF1X1Get38Ffd4kzq32\"]},\"src/contracts/service/OptInService.sol\":{\"keccak256\":\"0x4e0932077f2686b7990e10d59deb2535334c0d09e52ef6e57c6ab09eca21c4b1\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://7c00d311032ed4a1743aca7475f3c86ce15cdfc2218108efc3731c03d34a5278\",\"dweb:/ipfs/QmUGGfVwVhaHr5kS4177yKKYiLYzi5qZpkEmvYxBZqazxf\"]},\"src/contracts/slasher/BaseSlasher.sol\":{\"keccak256\":\"0x190e5dce196a061bdad42468c52e9f5b0eb7810cd7d0c19f04d6a2e94984f1b6\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://07ca08d0cd43c2fe5d54a5577f6bdd522ced410f5d3a52e764deaa7ba26b5f06\",\"dweb:/ipfs/QmZe3PiMKBQKWcwodaLupragdqxPjgS4v1qMC7RXau8hDF\"]},\"src/contracts/slasher/Slasher.sol\":{\"keccak256\":\"0xeee0cb25fad58d496fdcc641d852d11bae06e6ceed5230ae21150964175c494f\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://34aa27d21246a1bcee0b6a2afa8d9d613441156362430392f75d176511d58c61\",\"dweb:/ipfs/Qmf53Y3zdGfH4PU2zpSGeHZ8mMLzLXCtmkQrG5mnVJECQ3\"]},\"src/contracts/slasher/VetoSlasher.sol\":{\"keccak256\":\"0xeccc8128de5e1ad499c067feac1c526638fbbac1a18b96726fc7507969fd5897\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://cdfcf281338423625acbccdf8810115b258ef7cfe4aa3c10b8911ead1aa85429\",\"dweb:/ipfs/QmZFsDvZXpkFkx4PHcDXAVPN3ZCAahbSVfYpSVrMBvbt4k\"]},\"src/contracts/vault/Vault.sol\":{\"keccak256\":\"0x2ceff6ed3298c4cad144c99fcc79b51cb9397d6ebef00285b915848b476f8c2e\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://11f2fb3581854f3ab6e82e8d4935d9eb510c903a13c3f022346c2956a58f5307\",\"dweb:/ipfs/QmdUnoXoyYoG9SGWyQZCFyLDRUUX3eXyXetkRvw6jxqqBz\"]},\"src/contracts/vault/VaultStorage.sol\":{\"keccak256\":\"0x57db25b127d77ea3472de53e3a4af3354399655b9268638b99ca5925fa364a56\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://aa763d9a6ec508ae3abfb8228b72b9fd9525279e5135d4962e79ff059feb1173\",\"dweb:/ipfs/QmcbDR6E9wyEpu6V2FkEC4hnWy47zXA9LSKJde6zSGd33Q\"]},\"src/interfaces/common/IEntity.sol\":{\"keccak256\":\"0x8ef4b63d6da63489778ccd5f8d13ebdd527dd4b62730b2c616df5af7474d2d21\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a8d69576a9219d85c50816a18ad53a4d53cfcb27ed38b8cccc808dc2734b71b\",\"dweb:/ipfs/QmYVN3P4Q4REvBWJ97TbAcaxm3uyB2anV6NSGa6ZtSwcEv\"]},\"src/interfaces/common/IMigratableEntity.sol\":{\"keccak256\":\"0x8f5f2809f3afbe8ebfbb365dd7b57b4dd3b6f9943a6187eaf648d45895b8e3c4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ffe640537d539e7a4fde70d30d3e4c57f4ba9c2c25c450cea713aae38e8fd5c\",\"dweb:/ipfs/QmSUTGzvdcn1R1KB7tLThMRtESsfPbeXDhhhKWGtntzBds\"]},\"src/interfaces/common/IRegistry.sol\":{\"keccak256\":\"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014\",\"dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK\"]},\"src/interfaces/common/IStaticDelegateCallable.sol\":{\"keccak256\":\"0xa335d4e81b9071b7de66ef92b43ff20671d86516eb1be46fef29a3483cd3f5d5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d464b9db863c14c05547d2b23352f2e9b7b784799cf09f6bbc4906a2a74e3516\",\"dweb:/ipfs/QmUVWzFvJz7eEbDQKiFTTzwi7TEbjcs3VmwdM4kuptAKvi\"]},\"src/interfaces/delegator/IBaseDelegator.sol\":{\"keccak256\":\"0x96bb312f032e17accce3f8f80936d99468029d6b37c9ca74acdb4b026a0148ee\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2a66dcb5b7d1a6ef6a363431ea98ebd78bc4fdd3d7a134d9b542dc66e7d025c2\",\"dweb:/ipfs/QmRhTPLd2ZAyRHmJUFUcWKs9b3if49QY17LYZuRqWmghw8\"]},\"src/interfaces/delegator/IDelegatorHook.sol\":{\"keccak256\":\"0xc51aa8d7d1f6c8043ee819b7aeb86da0e993912e1442098df897e299f01f9f46\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://adddf5cb2ba282aeb576b26efb28640f865a1721cc9b6eee8b3ee0457a2c9780\",\"dweb:/ipfs/QmNYgAmnLRwWZbhTuQhZs9rx4zcme1df5mEepkrniorSoW\"]},\"src/interfaces/delegator/IFullRestakeDelegator.sol\":{\"keccak256\":\"0xa3c8cb2e45d4d8ce90e95263bea40c01dc400f05ad65bc29597d878606be5e7d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://782cf5e201aa4cca037ebafd3807a68ff1cc721d5b8416a35244db0d0607369e\",\"dweb:/ipfs/QmQkJks6x7CKndeTPa9LxgTNygD5uEi7obhADhpq1Lsr9A\"]},\"src/interfaces/delegator/INetworkRestakeDelegator.sol\":{\"keccak256\":\"0xe7030fe30389a147fd710e3436ec346b4842695fd3e65a81b95375c9f1d633fc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://739c7e66d301778054f5c90bee45ec9438f68afba8a03eaaac52064c73b115ad\",\"dweb:/ipfs/QmfZ2ytKcTykAc76nxhg8ikUXV8NdBpetqb8W4YWPcox1Z\"]},\"src/interfaces/delegator/IOperatorNetworkSpecificDelegator.sol\":{\"keccak256\":\"0x74b95e64d29769202d45dd277bb830f623ff3d41ce77b80ce3ee4e318a5c71ec\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e512b903aae5c1b8a028c6e3f4f6223b5cb5d704503cfa6bd37b5346868f5c20\",\"dweb:/ipfs/QmZim9YExsPWtyxyeui993HTKAEmrg8MUcSkZ77Gp2JcuZ\"]},\"src/interfaces/delegator/IOperatorSpecificDelegator.sol\":{\"keccak256\":\"0x72075cab585dc17240cc3e32bc99b92f0d5627ddd988fed680e3e1a52d5a01e4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7448bc90699409ae61d85216b5efc2143a37f0f73354be2aea993bc54afca441\",\"dweb:/ipfs/QmXE4gAxM8pHosZK8mcTcj17puBx484meDCcmrDePskGHZ\"]},\"src/interfaces/service/INetworkMiddlewareService.sol\":{\"keccak256\":\"0x347afc7fcf1fbcdb96d66162070ef6c78aed27b3af2c1d5dfb4e511840631783\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2d90b8ceb495159e8e4e95d76447719dd166443f67dfabdd942846162071595c\",\"dweb:/ipfs/QmVVuiAWYx92T6vBvNMKZfTvraCf1fa16BsUKkdNs3hdHA\"]},\"src/interfaces/service/IOptInService.sol\":{\"keccak256\":\"0x76fb5460a6d87a5705433d4fbeff7253cd75b8bbd0c888b2088f16e86ace146a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://990322019b3d11465f7024bae77ccbf7e2fe5d6fa3c754584778f37d04fa1337\",\"dweb:/ipfs/QmaSNHzcqxTkUCG9a4nqVfLECHLdjdrwAnDi3yDC7tDL24\"]},\"src/interfaces/slasher/IBaseSlasher.sol\":{\"keccak256\":\"0x7c82528b445659c313ab77335c407b0b6efe5e79027187bb287f7bc74202b404\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0274c90aa5df1aa6bb470a6aab53992fb14fd7e5472c9430416505b29647d9cf\",\"dweb:/ipfs/QmckbmJLDetPemVzCnnGcKYWAZV2BRFXGDsjiaec8jkHxx\"]},\"src/interfaces/slasher/IBurner.sol\":{\"keccak256\":\"0xaf495dacc19ae0b3c787ba8021c5944927d70261536addd234d7dab146158c2b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9b3cc66251008be6ff9fc8b11ecc6831d5a9dca49a3fe9817fcd970253c1d447\",\"dweb:/ipfs/QmVxfb9ALGdF9W3SN2h41gQbUct6tawvu5bw4K89kFQ4HW\"]},\"src/interfaces/slasher/ISlasher.sol\":{\"keccak256\":\"0x34d226d67a3d5e16571f2fac91a8b9773551bcc41c88a96279669dd78d192625\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a6e8c1462ee4a1b0f745414be043c09012ea676613790aba004b06c85c980d1\",\"dweb:/ipfs/QmadjNEbHKRthtA1EeNy3Kg2sXpejH2KBeHm8QZtBPvXbJ\"]},\"src/interfaces/slasher/IVetoSlasher.sol\":{\"keccak256\":\"0xdf7edd04a4f36e9aec3a15241dcb6b6315b2e64927b12710c2c410d571fc55e9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c4be6ac339c2ebf230fed65363f036784224095d0cd0f3f2d01d64d6e0da9508\",\"dweb:/ipfs/QmRSMbpfaHExqrzUA8vYZMYZWh6eQW1KX9JKJSLdgronfg\"]},\"src/interfaces/vault/IVault.sol\":{\"keccak256\":\"0xffee01d383cd4e1a5530c614bf4360c1ef070c288abec9da1eb531b51bc07235\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://04f0046cac285d8ec44ebbb1f79dc94fab4495767190cad8364fbc1fafaadfb9\",\"dweb:/ipfs/QmUawAunwzXfCyShWfhKeThAgKtqe51hmrxvrXvM772M2R\"]},\"src/interfaces/vault/IVaultStorage.sol\":{\"keccak256\":\"0x592626f13754194f83047135de19229c49390bd59e34659b1bb38be71d973a22\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://06a6a9dfddd05e580b32bebe2cff4f63ba26a653180676d58225dd30d9c89d3e\",\"dweb:/ipfs/QmdgzBeY6Sxo8mGtyBxtv1tM1c2kU6J6zjeRd7vuXm4DU6\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.25+commit.b61c2a91"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"baseSlasherHints","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"CheckpointUnorderedInsertion"},{"inputs":[],"type":"error","name":"ExternalCall"},{"inputs":[],"type":"error","name":"InsufficientBurnerGas"},{"inputs":[],"type":"error","name":"InsufficientSlash"},{"inputs":[],"type":"error","name":"InvalidCaptureTimestamp"},{"inputs":[],"type":"error","name":"InvalidInitialization"},{"inputs":[],"type":"error","name":"NoBurner"},{"inputs":[],"type":"error","name":"NotInitialized"},{"inputs":[],"type":"error","name":"NotInitializing"},{"inputs":[],"type":"error","name":"NotNetworkMiddleware"},{"inputs":[],"type":"error","name":"NotVault"},{"inputs":[],"type":"error","name":"ReentrancyGuardReentrantCall"},{"inputs":[{"internalType":"uint8","name":"bits","type":"uint8"},{"internalType":"uint256","name":"value","type":"uint256"}],"type":"error","name":"SafeCastOverflowedUintDowncast"},{"inputs":[{"internalType":"uint64","name":"version","type":"uint64","indexed":false}],"type":"event","name":"Initialized","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32","indexed":true},{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"uint256","name":"slashedAmount","type":"uint256","indexed":false},{"internalType":"uint48","name":"captureTimestamp","type":"uint48","indexed":false}],"type":"event","name":"Slash","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"BASE_SLASHER_HINTS","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"BURNER_GAS_LIMIT","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"BURNER_RESERVE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"FACTORY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"NETWORK_MIDDLEWARE_SERVICE","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"TYPE","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"VAULT_FACTORY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"cumulativeSlash","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint48","name":"timestamp","type":"uint48"},{"internalType":"bytes","name":"hint","type":"bytes"}],"stateMutability":"view","type":"function","name":"cumulativeSlashAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[],"stateMutability":"view","type":"function","name":"isBurnerHook","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"latestSlashedCaptureTimestamp","outputs":[{"internalType":"uint48","name":"value","type":"uint48"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint48","name":"captureTimestamp","type":"uint48"},{"internalType":"bytes","name":"hints","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"slash","outputs":[{"internalType":"uint256","name":"slashedAmount","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"slasher","type":"address"},{"internalType":"address","name":"msgSender","type":"address"},{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint48","name":"captureTimestamp","type":"uint48"}],"stateMutability":"view","type":"function","name":"slashHints","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint48","name":"captureTimestamp","type":"uint48"},{"internalType":"bytes","name":"hints","type":"bytes"}],"stateMutability":"view","type":"function","name":"slashableStake","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"staticDelegateCall"},{"inputs":[],"stateMutability":"view","type":"function","name":"vault","outputs":[{"internalType":"address","name":"","type":"address"}]}],"devdoc":{"kind":"dev","methods":{"cumulativeSlash(bytes32,address)":{"params":{"operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"},"returns":{"_0":"cumulative slash amount"}},"cumulativeSlashAt(bytes32,address,uint48,bytes)":{"params":{"hint":"hint for the checkpoint index","operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)","timestamp":"time point to get the cumulative slash amount until (inclusively)"},"returns":{"_0":"cumulative slash amount until the given timestamp (inclusively)"}},"initialize(bytes)":{"params":{"data":"some data to use"}},"slash(bytes32,address,uint256,uint48,bytes)":{"details":"Only a network middleware can call this function.","params":{"amount":"maximum amount of the collateral to be slashed","captureTimestamp":"time point when the stake was captured","hints":"hints for checkpoints' indexes","operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"},"returns":{"slashedAmount":"virtual amount of the collateral slashed"}},"slashableStake(bytes32,address,uint48,bytes)":{"params":{"captureTimestamp":"time point to get the stake amount at","hints":"hints for the checkpoints' indexes","operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"},"returns":{"amount":"slashable amount of the stake"}},"staticDelegateCall(address,bytes)":{"details":"It allows to use this contract's storage on-chain.","params":{"data":"data to make a delegatecall with","target":"address of the contract to make a delegatecall to"}}},"version":1},"userdoc":{"kind":"user","methods":{"BURNER_GAS_LIMIT()":{"notice":"Get a gas limit for the burner."},"BURNER_RESERVE()":{"notice":"Get a reserve gas between the gas limit check and the burner's execution."},"FACTORY()":{"notice":"Get the factory's address."},"NETWORK_MIDDLEWARE_SERVICE()":{"notice":"Get the network middleware service's address."},"TYPE()":{"notice":"Get the entity's type."},"VAULT_FACTORY()":{"notice":"Get the vault factory's address."},"cumulativeSlash(bytes32,address)":{"notice":"Get a cumulative slash amount for an operator on a subnetwork."},"cumulativeSlashAt(bytes32,address,uint48,bytes)":{"notice":"Get a cumulative slash amount for an operator on a subnetwork until a given timestamp (inclusively) using a hint."},"initialize(bytes)":{"notice":"Initialize this entity contract by using a given data."},"isBurnerHook()":{"notice":"Get if the burner is needed to be called on a slashing."},"latestSlashedCaptureTimestamp(bytes32,address)":{"notice":"Get the latest capture timestamp that was slashed on a subnetwork."},"slash(bytes32,address,uint256,uint48,bytes)":{"notice":"Perform a slash using a subnetwork for a particular operator by a given amount using hints."},"slashableStake(bytes32,address,uint48,bytes)":{"notice":"Get a slashable amount of a stake got at a given capture timestamp using hints."},"staticDelegateCall(address,bytes)":{"notice":"Make a delegatecall from this contract to a given target contract with a particular data (always reverts with a return data)."},"vault()":{"notice":"Get the vault's address."}},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/contracts/hints/SlasherHints.sol":"SlasherHints"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol":{"keccak256":"0x6662ec4e5cefca03eeadd073e9469df8d2944bb2ee8ec8f7622c2c46aab5f225","urls":["bzz-raw://4d8544c6f8daa4d1bc215c6a72fe0acdb748664a105b0e5efc19295667521d45","dweb:/ipfs/QmdGWqdnXT8S3RgCR6aV8XHZrsybieMQLLnug1NtpSjEXN"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol":{"keccak256":"0xc163fcf9bb10138631a9ba5564df1fa25db9adff73bd9ee868a8ae1858fe093a","urls":["bzz-raw://9706d43a0124053d9880f6e31a59f31bc0a6a3dc1acd66ce0a16e1111658c5f6","dweb:/ipfs/QmUFmfowzkRwGtDu36cXV9SPTBHJ3n7dG9xQiK5B28jTf2"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b","urls":["bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609","dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol":{"keccak256":"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397","urls":["bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9","dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardUpgradeable.sol":{"keccak256":"0xb44e086e941292cdc7f440de51478493894ef0b1aeccb0c4047445919f667f74","urls":["bzz-raw://942dad22fbdc1669f025540ba63aa3ccfad5f8458fc5d4525b31ebf272e7af45","dweb:/ipfs/Qmdo4X2M82aM3AMoW2kf2jhYkSCyC4T1pHNd6obdsDFnAB"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol":{"keccak256":"0xdaba3f7c42c55b2896353f32bd27d4d5f8bae741b3b05d4c53f67abc4dc47ce8","urls":["bzz-raw://1fa2e61141c602510bcd2cd936ed9561922ac8772a9b9c9a9db091a74e354a45","dweb:/ipfs/QmcHQDDoEBwJmwUbzoVkytvJsBx3KVHYFFnDkvRGWh9Wmh"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol":{"keccak256":"0xb6b36edd6a2999fd243ff226d6cbf84bd71af2432bbd0dfe19392996a1d9cb41","urls":["bzz-raw://1fd2f35495652e57e3f99bc6c510bc5f7dd398a176ea2e72d8ed730aebc6ca26","dweb:/ipfs/QmTQV6X4gkikTib49cho5iDX3JvSQbdsoEChoDwrk3CbbH"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC1271.sol":{"keccak256":"0x85a45f3f10014a0f8be41157a32b6a5f905753ea64a4b64e29fc12b7deeecf39","urls":["bzz-raw://c3c74009ce36136b36c77c23935b8e4a7b4f253be2da2be4fb4a916b1ce43743","dweb:/ipfs/QmcH36v3iN7SJJuF73AunLR2LtNxhVJ1wm63ph4dPZ4pcL"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC5267.sol":{"keccak256":"0x92aa1df62dc3d33f1656d63bede0923e0df0b706ad4137c8b10b0a8fe549fd92","urls":["bzz-raw://c5c0f29195ad64cbe556da8e257dac8f05f78c53f90323c0d2accf8e6922d33a","dweb:/ipfs/QmQ61TED8uaCZwcbh8KkgRSsCav7x7HbcGHwHts3U4DmUP"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70","urls":["bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c","dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol":{"keccak256":"0x6008dabfe393240d73d7dd7688033f72740d570aa422254d29a7dce8568f3aff","urls":["bzz-raw://f5196ec75139918c6c7bb4251b36395e668f1fa6d206beba7e7520e74913940d","dweb:/ipfs/QmSyqjksXxmm2mCG6qRd1yuwLykypkSVBbnBnGqJRcuJMi"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0x37bb49513c49c87c4642a891b13b63571bc87013dde806617aa1efb54605f386","urls":["bzz-raw://b3036b3a83b7c48f96641f2a9002b9f2dcb6a5958dd670894ada21ae8229b3d0","dweb:/ipfs/QmUNfSBdoVtjhETaUJCYcaC7pTMgbhht926tJ2uXJbiVd3"],"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/ShortStrings.sol":{"keccak256":"0x18a7171df639a934592915a520ecb97c5bbc9675a1105607aac8a94e72bf62c6","urls":["bzz-raw://7478e1f13da69a2867ccd883001d836b75620362e743f196376d63ed0c422a1c","dweb:/ipfs/QmWywcQ9TNfwtoqAxbn25d8C5VrV12PrPS9UjtGe6pL2BA"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol":{"keccak256":"0x32ba59b4b7299237c8ba56319110989d7978a039faf754793064e967e5894418","urls":["bzz-raw://1ae50c8b562427df610cc4540c9bf104acca7ef8e2dcae567ae7e52272281e9c","dweb:/ipfs/QmTHiadFCSJUPpRjNegc5SahmeU8bAoY8i9Aq6tVscbcKR"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0x55f102ea785d8399c0e58d1108e2d289506dde18abc6db1b7f68c1f9f9bc5792","urls":["bzz-raw://6e52e0a7765c943ef14e5bcf11e46e6139fa044be564881378349236bf2e3453","dweb:/ipfs/QmZEeeXoFPW47amyP35gfzomF9DixqqTEPwzBakv6cZw6i"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol":{"keccak256":"0xeed0a08b0b091f528356cbc7245891a4c748682d4f6a18055e8e6ca77d12a6cf","urls":["bzz-raw://ba80ba06c8e6be852847e4c5f4492cef801feb6558ae09ed705ff2e04ea8b13c","dweb:/ipfs/QmXRJDv3xHLVQCVXg1ZvR35QS9sij5y9NDWYzMfUfAdTHF"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/EIP712.sol":{"keccak256":"0x999f705a027ed6dc2d4e0df2cc4a509852c6bfd11de1c8161bf88832d0503fd0","urls":["bzz-raw://0798def67258d9a3cc20b2b4da7ebf351a5cefe0abfdd665d2d81f8e32f89b21","dweb:/ipfs/QmPEvJosnPfzHNjKvCv2D3891mA2Ww8eUwkqrxBjuYdHCt"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol":{"keccak256":"0xba333517a3add42cd35fe877656fc3dfcc9de53baa4f3aabbd6d12a92e4ea435","urls":["bzz-raw://2ceacff44c0fdc81e48e0e0b1db87a2076d3c1fb497341de077bf1da9f6b406c","dweb:/ipfs/QmRUo1muMRAewxrKQ7TkXUtknyRoR57AyEkoPpiuZQ8FzX"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/SignatureChecker.sol":{"keccak256":"0x6b11eb41a228cca35d4b662b4df69fcd75192851365102690f57b2ac01e83fe6","urls":["bzz-raw://ab006a2983ed350d2af21ddcdd835dcae3b8340086cc4d088460da5abd041f69","dweb:/ipfs/QmbEacDhkJZiGrgzLjB4pNtE8Z1uudjDw1DvcDUTVQFsLG"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b","urls":["bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df","dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d","urls":["bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875","dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol":{"keccak256":"0xe19a4d5f31d2861e7344e8e535e2feafb913d806d3e2b5fe7782741a2a7094fe","urls":["bzz-raw://4aed79c0fa6f0546ed02f2f683e8f77f0fd2ed7eb34d8bbf3d373c9a6d95b13c","dweb:/ipfs/QmWqVz6UAVqmnWU5pqYPt1o6iDEZyPaBraAA3rKfTTSfYj"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0x5f7e4076e175393767754387c962926577f1660dd9b810187b9002407656be72","urls":["bzz-raw://7d533a1c97cd43a57cd9c465f7ee8dd0e39ae93a8fb8ff8e5303a356b081cdcc","dweb:/ipfs/QmVBEei6aTnvYNZp2CHYVNKyZS4q1KkjANfY39WVXZXVoT"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/Checkpoints.sol":{"keccak256":"0xbdc5e074d7dd6678f67e92b1a51a20226801a407b0e1af3da367c5d1ff4519ad","urls":["bzz-raw://a36cca6b22fff3db16fc789ff6c60eea71d4b156065d4d0c83a0bc5e91a77a8b","dweb:/ipfs/QmYN3exd5AemxjBrN8XMB1p5LbbE16uC3sjbYjwi8AjcGR"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/types/Time.sol":{"keccak256":"0xc7755af115020049e4140f224f9ee88d7e1799ffb0646f37bf0df24bf6213f58","urls":["bzz-raw://7f09bf94d5274334ec021f61a04659db303f31e60460e14b709c9bf187740111","dweb:/ipfs/QmNvgomZYUwFAt4cZbPWAiTeSZQreGehY9BK5xyVJsUttb"],"license":"MIT"},"src/contracts/common/Entity.sol":{"keccak256":"0x3d61a932995b8443381f3950542d388223a2c26dd5d29a3274dea3baa7388bd7","urls":["bzz-raw://7cdf5f03ca72fd263fd32ff59c8d88ddca911ae83896a287d10772c1bbe9b138","dweb:/ipfs/QmbP84r5BWT1Rn9AYTntWSf3xUMTTCohTZJFhbBhDXFoHa"],"license":"BUSL-1.1"},"src/contracts/common/MigratableEntity.sol":{"keccak256":"0x2d736f4dacd5d7e7697503bc426c78b8250fe1694ca157965ec178da6807de58","urls":["bzz-raw://f1237acf96b4b9f9b69156e068eddd726a6e15bd8e87a18dc999cd4ba4da069c","dweb:/ipfs/QmS6M8fiFFSeuJ4ZKKq1z8W7w4ybeHQSy5TLASGoc1LVic"],"license":"BUSL-1.1"},"src/contracts/common/StaticDelegateCallable.sol":{"keccak256":"0x350029aa8955eacaffffaeb58babc5c98e80ebc5c5db388ed17ee6465f4a9d90","urls":["bzz-raw://eb392a8ee9050e0af606897df63e3404e3829e8b688b580663892f9664195764","dweb:/ipfs/QmaXC8jqV8UrrAFkzXTEv2fJF56sy33HhLxAzaRZmUxuXD"],"license":"BUSL-1.1"},"src/contracts/delegator/BaseDelegator.sol":{"keccak256":"0x7c54d491fdd4415b764a9c8defa068e56d4c0c8c9419be0053a1d377669290e8","urls":["bzz-raw://9238bfbad0f6eeb0dc7727724de14380f1980b395902269703d5e2ef07e52e10","dweb:/ipfs/QmPJn1V4HNXcEghYvogGuSTF24dSQUPosR5qtsXcmNqRm3"],"license":"BUSL-1.1"},"src/contracts/delegator/FullRestakeDelegator.sol":{"keccak256":"0x0a81c4f8e72914563a9cb771e93acf889c71ea36b7bec040e4eb562b199d5af1","urls":["bzz-raw://6fc66b6ba02da77046a0bbbd1dd407a62c08f52e04486c9cbd2cb1cca3da555f","dweb:/ipfs/QmZQivK1ZnMxfRQQ5aLpV9co5u55wQVNev5Rg1hzAqxhkE"],"license":"BUSL-1.1"},"src/contracts/delegator/NetworkRestakeDelegator.sol":{"keccak256":"0xd3a8e6522f9c6fdcc2da837c9023afd6bdff2bce45a35590320c475519e3636d","urls":["bzz-raw://58b17a87f6554f08376f9ea7fedf486a4aa75801bf0ad8b23ff5a46959b6b7a3","dweb:/ipfs/QmSTmNh67tYt8CmjVZb57r8N3qX5yeYdMApKPJm3qvQgQw"],"license":"BUSL-1.1"},"src/contracts/delegator/OperatorNetworkSpecificDelegator.sol":{"keccak256":"0x031a10722b9ec49048f0952710401131290adb87e71caf294e864e7ac3b98a16","urls":["bzz-raw://72428febc875134b2f29205e6f294634a1c22a7d5c78d6a9cb2f8196f107c9b5","dweb:/ipfs/QmTPwXR6h5oytckmkLrHdKeEMdphJxceDhYUR4zvQeWAwY"],"license":"BUSL-1.1"},"src/contracts/delegator/OperatorSpecificDelegator.sol":{"keccak256":"0x630ce62fa30b9f3349ab7a8cf8dbf041319febc6dd757be2f94d3d25944ed328","urls":["bzz-raw://c2ac59d47ce57d2a6819ae9833e1a618a371eccff93eb5ab367b201b01f42bfa","dweb:/ipfs/QmdBpGMBivpNPv2WbH8vnCUy5xkVeaxQvGgqi33vKCz1kA"],"license":"BUSL-1.1"},"src/contracts/hints/DelegatorHints.sol":{"keccak256":"0x44aa0c396311a54afbc7c73e8dadeed41e3165a4fd13f712b27d63d50fc3376d","urls":["bzz-raw://2f255214f3531fc707d88be0d56a7a0aed4180439316d099d760d9118aa83093","dweb:/ipfs/QmZD1w5p1ukJSXumUAjvxwGmkPhn7vsr21Y2atLGEZR2oi"],"license":"BUSL-1.1"},"src/contracts/hints/Hints.sol":{"keccak256":"0x8b565df1ae35993c097a9e642002782a8f451f6fd01809cad6bcd345bdf1b99c","urls":["bzz-raw://99a19adb01e350a92f534095b3078229df1f2f83077992d75d58d8684be45971","dweb:/ipfs/QmbmwcuswVbzvwHQFTtrJG86oV98GnfxqYTb8cV8u1acox"],"license":"BUSL-1.1"},"src/contracts/hints/OptInServiceHints.sol":{"keccak256":"0x95d9407900d27b9f4a1233b772aeed809c07b2dc5b31cfc9fa77ca26514c49e5","urls":["bzz-raw://a13a8877e312d7e6b8b85bde3668c5d84ff5ecc83f762cd573f2b7104c64eb42","dweb:/ipfs/QmYV2J55acuGzCNnS3juABuUHY5U1xc8g8o9jwEyFFdeG5"],"license":"BUSL-1.1"},"src/contracts/hints/SlasherHints.sol":{"keccak256":"0xd77c5f3bbb0265af8ecd947df88f6f9684e136d80052b5292f5b29aaa3566a3f","urls":["bzz-raw://484a26504bf6706202ec82a9a4cfa7d196bbc552b5b78ced25bf7130c2842595","dweb:/ipfs/QmaQqmkoZoUWEam4R94vmajzH3gKqFqpZQwFbrHDsN1peV"],"license":"BUSL-1.1"},"src/contracts/hints/VaultHints.sol":{"keccak256":"0xccb505b7159b769cc114d67b87c2de6b106557f667fc8f3780114baad5c3c442","urls":["bzz-raw://6d0c80a908fc16e96a8b5605a0bd53f9e89ad0ef0a738fbbae80ba4d3160749b","dweb:/ipfs/QmXo5UtWoR8YmunqcbBU8rQMm1nvmvjNPoXcVrDhh4pEwR"],"license":"BUSL-1.1"},"src/contracts/libraries/Checkpoints.sol":{"keccak256":"0xba90097c8bfe0a975499428b5f8ac5569483c7d92ccc28c12d70de416aae040c","urls":["bzz-raw://12f5d93ca94cd06d3147db68993165a58e17903ed53682560de61f3085ad4609","dweb:/ipfs/QmePiuAqvXprMLmFZkGZeGjvGPAvsEDHfCDv7BoQhXu9xE"],"license":"MIT"},"src/contracts/libraries/ERC4626Math.sol":{"keccak256":"0x8441160513c1cbeb1c3b9ee077bcc7e7ce20006b52a77c8dd39ff0ef89699939","urls":["bzz-raw://943f8cc3e26ddf649f465f40c909819f5c864717c4baa339e9e403b9374a4653","dweb:/ipfs/QmXPxi1sUDsrGprZdUgCzoPEosaZMv9ZhygWQ1vAi1phAB"],"license":"MIT"},"src/contracts/libraries/Subnetwork.sol":{"keccak256":"0xf5ef5506fd66082b3c2e7f3df37529f5a8efad32ac62e7c8914bd63219190bfe","urls":["bzz-raw://ba031a54ee0d0e9a270c2b9e18437f5668cfeb659cfd5fe0677459d7fcac2a56","dweb:/ipfs/QmReP3H7qQ78tAfgLnJKsNEQNCQfF1X1Get38Ffd4kzq32"],"license":"MIT"},"src/contracts/service/OptInService.sol":{"keccak256":"0x4e0932077f2686b7990e10d59deb2535334c0d09e52ef6e57c6ab09eca21c4b1","urls":["bzz-raw://7c00d311032ed4a1743aca7475f3c86ce15cdfc2218108efc3731c03d34a5278","dweb:/ipfs/QmUGGfVwVhaHr5kS4177yKKYiLYzi5qZpkEmvYxBZqazxf"],"license":"BUSL-1.1"},"src/contracts/slasher/BaseSlasher.sol":{"keccak256":"0x190e5dce196a061bdad42468c52e9f5b0eb7810cd7d0c19f04d6a2e94984f1b6","urls":["bzz-raw://07ca08d0cd43c2fe5d54a5577f6bdd522ced410f5d3a52e764deaa7ba26b5f06","dweb:/ipfs/QmZe3PiMKBQKWcwodaLupragdqxPjgS4v1qMC7RXau8hDF"],"license":"BUSL-1.1"},"src/contracts/slasher/Slasher.sol":{"keccak256":"0xeee0cb25fad58d496fdcc641d852d11bae06e6ceed5230ae21150964175c494f","urls":["bzz-raw://34aa27d21246a1bcee0b6a2afa8d9d613441156362430392f75d176511d58c61","dweb:/ipfs/Qmf53Y3zdGfH4PU2zpSGeHZ8mMLzLXCtmkQrG5mnVJECQ3"],"license":"BUSL-1.1"},"src/contracts/slasher/VetoSlasher.sol":{"keccak256":"0xeccc8128de5e1ad499c067feac1c526638fbbac1a18b96726fc7507969fd5897","urls":["bzz-raw://cdfcf281338423625acbccdf8810115b258ef7cfe4aa3c10b8911ead1aa85429","dweb:/ipfs/QmZFsDvZXpkFkx4PHcDXAVPN3ZCAahbSVfYpSVrMBvbt4k"],"license":"BUSL-1.1"},"src/contracts/vault/Vault.sol":{"keccak256":"0x2ceff6ed3298c4cad144c99fcc79b51cb9397d6ebef00285b915848b476f8c2e","urls":["bzz-raw://11f2fb3581854f3ab6e82e8d4935d9eb510c903a13c3f022346c2956a58f5307","dweb:/ipfs/QmdUnoXoyYoG9SGWyQZCFyLDRUUX3eXyXetkRvw6jxqqBz"],"license":"BUSL-1.1"},"src/contracts/vault/VaultStorage.sol":{"keccak256":"0x57db25b127d77ea3472de53e3a4af3354399655b9268638b99ca5925fa364a56","urls":["bzz-raw://aa763d9a6ec508ae3abfb8228b72b9fd9525279e5135d4962e79ff059feb1173","dweb:/ipfs/QmcbDR6E9wyEpu6V2FkEC4hnWy47zXA9LSKJde6zSGd33Q"],"license":"BUSL-1.1"},"src/interfaces/common/IEntity.sol":{"keccak256":"0x8ef4b63d6da63489778ccd5f8d13ebdd527dd4b62730b2c616df5af7474d2d21","urls":["bzz-raw://5a8d69576a9219d85c50816a18ad53a4d53cfcb27ed38b8cccc808dc2734b71b","dweb:/ipfs/QmYVN3P4Q4REvBWJ97TbAcaxm3uyB2anV6NSGa6ZtSwcEv"],"license":"MIT"},"src/interfaces/common/IMigratableEntity.sol":{"keccak256":"0x8f5f2809f3afbe8ebfbb365dd7b57b4dd3b6f9943a6187eaf648d45895b8e3c4","urls":["bzz-raw://0ffe640537d539e7a4fde70d30d3e4c57f4ba9c2c25c450cea713aae38e8fd5c","dweb:/ipfs/QmSUTGzvdcn1R1KB7tLThMRtESsfPbeXDhhhKWGtntzBds"],"license":"MIT"},"src/interfaces/common/IRegistry.sol":{"keccak256":"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb","urls":["bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014","dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK"],"license":"MIT"},"src/interfaces/common/IStaticDelegateCallable.sol":{"keccak256":"0xa335d4e81b9071b7de66ef92b43ff20671d86516eb1be46fef29a3483cd3f5d5","urls":["bzz-raw://d464b9db863c14c05547d2b23352f2e9b7b784799cf09f6bbc4906a2a74e3516","dweb:/ipfs/QmUVWzFvJz7eEbDQKiFTTzwi7TEbjcs3VmwdM4kuptAKvi"],"license":"MIT"},"src/interfaces/delegator/IBaseDelegator.sol":{"keccak256":"0x96bb312f032e17accce3f8f80936d99468029d6b37c9ca74acdb4b026a0148ee","urls":["bzz-raw://2a66dcb5b7d1a6ef6a363431ea98ebd78bc4fdd3d7a134d9b542dc66e7d025c2","dweb:/ipfs/QmRhTPLd2ZAyRHmJUFUcWKs9b3if49QY17LYZuRqWmghw8"],"license":"MIT"},"src/interfaces/delegator/IDelegatorHook.sol":{"keccak256":"0xc51aa8d7d1f6c8043ee819b7aeb86da0e993912e1442098df897e299f01f9f46","urls":["bzz-raw://adddf5cb2ba282aeb576b26efb28640f865a1721cc9b6eee8b3ee0457a2c9780","dweb:/ipfs/QmNYgAmnLRwWZbhTuQhZs9rx4zcme1df5mEepkrniorSoW"],"license":"MIT"},"src/interfaces/delegator/IFullRestakeDelegator.sol":{"keccak256":"0xa3c8cb2e45d4d8ce90e95263bea40c01dc400f05ad65bc29597d878606be5e7d","urls":["bzz-raw://782cf5e201aa4cca037ebafd3807a68ff1cc721d5b8416a35244db0d0607369e","dweb:/ipfs/QmQkJks6x7CKndeTPa9LxgTNygD5uEi7obhADhpq1Lsr9A"],"license":"MIT"},"src/interfaces/delegator/INetworkRestakeDelegator.sol":{"keccak256":"0xe7030fe30389a147fd710e3436ec346b4842695fd3e65a81b95375c9f1d633fc","urls":["bzz-raw://739c7e66d301778054f5c90bee45ec9438f68afba8a03eaaac52064c73b115ad","dweb:/ipfs/QmfZ2ytKcTykAc76nxhg8ikUXV8NdBpetqb8W4YWPcox1Z"],"license":"MIT"},"src/interfaces/delegator/IOperatorNetworkSpecificDelegator.sol":{"keccak256":"0x74b95e64d29769202d45dd277bb830f623ff3d41ce77b80ce3ee4e318a5c71ec","urls":["bzz-raw://e512b903aae5c1b8a028c6e3f4f6223b5cb5d704503cfa6bd37b5346868f5c20","dweb:/ipfs/QmZim9YExsPWtyxyeui993HTKAEmrg8MUcSkZ77Gp2JcuZ"],"license":"MIT"},"src/interfaces/delegator/IOperatorSpecificDelegator.sol":{"keccak256":"0x72075cab585dc17240cc3e32bc99b92f0d5627ddd988fed680e3e1a52d5a01e4","urls":["bzz-raw://7448bc90699409ae61d85216b5efc2143a37f0f73354be2aea993bc54afca441","dweb:/ipfs/QmXE4gAxM8pHosZK8mcTcj17puBx484meDCcmrDePskGHZ"],"license":"MIT"},"src/interfaces/service/INetworkMiddlewareService.sol":{"keccak256":"0x347afc7fcf1fbcdb96d66162070ef6c78aed27b3af2c1d5dfb4e511840631783","urls":["bzz-raw://2d90b8ceb495159e8e4e95d76447719dd166443f67dfabdd942846162071595c","dweb:/ipfs/QmVVuiAWYx92T6vBvNMKZfTvraCf1fa16BsUKkdNs3hdHA"],"license":"MIT"},"src/interfaces/service/IOptInService.sol":{"keccak256":"0x76fb5460a6d87a5705433d4fbeff7253cd75b8bbd0c888b2088f16e86ace146a","urls":["bzz-raw://990322019b3d11465f7024bae77ccbf7e2fe5d6fa3c754584778f37d04fa1337","dweb:/ipfs/QmaSNHzcqxTkUCG9a4nqVfLECHLdjdrwAnDi3yDC7tDL24"],"license":"MIT"},"src/interfaces/slasher/IBaseSlasher.sol":{"keccak256":"0x7c82528b445659c313ab77335c407b0b6efe5e79027187bb287f7bc74202b404","urls":["bzz-raw://0274c90aa5df1aa6bb470a6aab53992fb14fd7e5472c9430416505b29647d9cf","dweb:/ipfs/QmckbmJLDetPemVzCnnGcKYWAZV2BRFXGDsjiaec8jkHxx"],"license":"MIT"},"src/interfaces/slasher/IBurner.sol":{"keccak256":"0xaf495dacc19ae0b3c787ba8021c5944927d70261536addd234d7dab146158c2b","urls":["bzz-raw://9b3cc66251008be6ff9fc8b11ecc6831d5a9dca49a3fe9817fcd970253c1d447","dweb:/ipfs/QmVxfb9ALGdF9W3SN2h41gQbUct6tawvu5bw4K89kFQ4HW"],"license":"MIT"},"src/interfaces/slasher/ISlasher.sol":{"keccak256":"0x34d226d67a3d5e16571f2fac91a8b9773551bcc41c88a96279669dd78d192625","urls":["bzz-raw://7a6e8c1462ee4a1b0f745414be043c09012ea676613790aba004b06c85c980d1","dweb:/ipfs/QmadjNEbHKRthtA1EeNy3Kg2sXpejH2KBeHm8QZtBPvXbJ"],"license":"MIT"},"src/interfaces/slasher/IVetoSlasher.sol":{"keccak256":"0xdf7edd04a4f36e9aec3a15241dcb6b6315b2e64927b12710c2c410d571fc55e9","urls":["bzz-raw://c4be6ac339c2ebf230fed65363f036784224095d0cd0f3f2d01d64d6e0da9508","dweb:/ipfs/QmRSMbpfaHExqrzUA8vYZMYZWh6eQW1KX9JKJSLdgronfg"],"license":"MIT"},"src/interfaces/vault/IVault.sol":{"keccak256":"0xffee01d383cd4e1a5530c614bf4360c1ef070c288abec9da1eb531b51bc07235","urls":["bzz-raw://04f0046cac285d8ec44ebbb1f79dc94fab4495767190cad8364fbc1fafaadfb9","dweb:/ipfs/QmUawAunwzXfCyShWfhKeThAgKtqe51hmrxvrXvM772M2R"],"license":"MIT"},"src/interfaces/vault/IVaultStorage.sol":{"keccak256":"0x592626f13754194f83047135de19229c49390bd59e34659b1bb38be71d973a22","urls":["bzz-raw://06a6a9dfddd05e580b32bebe2cff4f63ba26a653180676d58225dd30d9c89d3e","dweb:/ipfs/QmdgzBeY6Sxo8mGtyBxtv1tM1c2kU6J6zjeRd7vuXm4DU6"],"license":"MIT"}},"version":1},"id":84} \ No newline at end of file +{"abi":[{"type":"constructor","inputs":[{"name":"baseSlasherHints","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"BASE_SLASHER_HINTS","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"BURNER_GAS_LIMIT","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"BURNER_RESERVE","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"FACTORY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"NETWORK_MIDDLEWARE_SERVICE","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"TYPE","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"VAULT_FACTORY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"cumulativeSlash","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"cumulativeSlashAt","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"timestamp","type":"uint48","internalType":"uint48"},{"name":"hint","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"initialize","inputs":[{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"isBurnerHook","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"latestSlashedCaptureTimestamp","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"value","type":"uint48","internalType":"uint48"}],"stateMutability":"view"},{"type":"function","name":"slash","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"captureTimestamp","type":"uint48","internalType":"uint48"},{"name":"hints","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"slashedAmount","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"slashHints","inputs":[{"name":"slasher","type":"address","internalType":"address"},{"name":"msgSender","type":"address","internalType":"address"},{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"captureTimestamp","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"slashableStake","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"captureTimestamp","type":"uint48","internalType":"uint48"},{"name":"hints","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"staticDelegateCall","inputs":[{"name":"target","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"vault","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"Slash","inputs":[{"name":"subnetwork","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"slashedAmount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"captureTimestamp","type":"uint48","indexed":false,"internalType":"uint48"}],"anonymous":false},{"type":"error","name":"CheckpointUnorderedInsertion","inputs":[]},{"type":"error","name":"ExternalCall","inputs":[]},{"type":"error","name":"InsufficientBurnerGas","inputs":[]},{"type":"error","name":"InsufficientSlash","inputs":[]},{"type":"error","name":"InvalidCaptureTimestamp","inputs":[]},{"type":"error","name":"InvalidInitialization","inputs":[]},{"type":"error","name":"NoBurner","inputs":[]},{"type":"error","name":"NotInitialized","inputs":[]},{"type":"error","name":"NotInitializing","inputs":[]},{"type":"error","name":"NotNetworkMiddleware","inputs":[]},{"type":"error","name":"NotVault","inputs":[]},{"type":"error","name":"ReentrancyGuardReentrantCall","inputs":[]},{"type":"error","name":"SafeCastOverflowedUintDowncast","inputs":[{"name":"bits","type":"uint8","internalType":"uint8"},{"name":"value","type":"uint256","internalType":"uint256"}]}],"bytecode":{"object":"0x6101403461015d576001600160401b0390601f61209f38819003918201601f1916830191848311848410176101615780849260209460405283398101031261015d5751906001600160a01b038216820361015d57306080527ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a009081549060ff8260401c1661014b578080831603610106575b835f60a0525f60c0525f60e052610100905f825261012090815260405190611f299283610176843960805183505060a051836104f2015260c0518381816109490152611379015260e05183818161031d01526116a901525182818161021c01526104ae0152518181816106920152610d330152f35b6001600160401b031990911681179091556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a15f8080610091565b60405163f92ee8a960e01b8152600490fd5b5f80fd5b634e487b7160e01b5f52604160045260245ffdfe60806040526004361015610011575f80fd5b5f3560e01c8063021a815614610124578063103f29071461011f5780631a2be2c41461011a578063238ab85f14610115578063267de1f3146101105780632964f8dc1461010b5780632c9d45b3146101065780632dd310001461010157806334d098ea146100fc578063439fab91146100f7578063457821b7146100f25780639f86fd85146100ed578063aa8e6489146100e8578063aab3595f146100e3578063bb24fe8a146100de578063d5c24e1a146100d95763fbfa77cf146100d4575f80fd5b61098a565b61096d565b61092a565b610905565b6108c7565b6106c1565b61067d565b610545565b610521565b6104dd565b610499565b61047d565b610428565b6103c4565b61034c565b610308565b61017b565b6001600160a01b0381160361013a57565b5f80fd5b65ffffffffffff81160361013a57565b9181601f8401121561013a578235916001600160401b03831161013a576020838186019501011161013a57565b3461013a5760a036600319011261013a5760043560243561019b81610129565b6064356101a78161013e565b6084356001600160401b03811161013a576101c690369060040161014e565b917f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0060028154146102ec5760029055604051635daf681960e11b8152606086901c60048201526001600160a01b036020826024817f000000000000000000000000000000000000000000000000000000000000000085165afa9182156102e7575f926102b6575b50339116036102a4576102a0946102679460443591610a63565b61029060017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055565b6040519081529081906020820190565b0390f35b60405163227bf64d60e01b8152600490fd5b6102d991925060203d6020116102e0575b6102d181836107dd565b810190610ddf565b905f61024d565b503d6102c7565b610a27565b604051633ee5aeb560e01b8152600490fd5b5f91031261013a57565b3461013a575f36600319011261013a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461013a57604036600319011261013a57602061039861039360243561037181610129565b6004355f526002845260405f209060018060a01b03165f5260205260405f2090565b6115c8565b604051908152f35b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b3461013a5760c036600319011261013a576102a06104146004356103e781610129565b6103f2602435610129565b6064356103fe81610129565b60a4359161040b8361013e565b60443590610ce7565b6040519182916020835260208301906103a0565b3461013a57604036600319011261013a57602065ffffffffffff61047360243561045181610129565b6004355f526001845260405f209060018060a01b03165f5260205260405f2090565b5416604051908152f35b3461013a575f36600319011261013a576020604051614e208152f35b3461013a575f36600319011261013a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461013a575f36600319011261013a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461013a575f36600319011261013a57602060ff5f5460a01c166040519015158152f35b3461013a57602036600319011261013a576001600160401b0360043581811161013a5761057690369060040161014e565b5f80516020611ed4833981519152549260ff8460401c1615931680159081610675575b600114908161066b575b159081610662575b50610650575f80516020611ed4833981519152805467ffffffffffffffff191660011790556105de918361062c57611672565b6105e457005b5f80516020611ed4833981519152805460ff60401b19169055604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a1005b5f80516020611ed4833981519152805460ff60401b1916600160401b179055611672565b60405163f92ee8a960e01b8152600490fd5b9050155f6105ab565b303b1591506105a3565b849150610599565b3461013a575f36600319011261013a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461013a5760408060031936011261013a576004356106df81610129565b602435906001600160401b03821161013a575f809161070561076994369060040161014e565b908187519283928337810184815203915af43d156107715761075b3d61072a8161081a565b90610737865192836107dd565b81523d5f602083013e5b8451948593151560208501528084015260608301906103a0565b03601f1981018352826107dd565b805190602001fd5b61075b6060610741565b634e487b7160e01b5f52604160045260245ffd5b602081019081106001600160401b038211176107aa57604052565b61077b565b604081019081106001600160401b038211176107aa57604052565b6001600160401b0381116107aa57604052565b90601f801991011681019081106001600160401b038211176107aa57604052565b6040519061080b826107af565b565b6040519061080b8261078f565b6001600160401b0381116107aa57601f01601f191660200190565b81601f8201121561013a5780359061084c8261081a565b9261085a60405194856107dd565b8284526020838301011161013a57815f926020809301838601378301015290565b90608060031983011261013a576004359160243561089881610129565b916044356108a58161013e565b91606435906001600160401b03821161013a576108c491600401610835565b90565b3461013a5760206103986109006108dd3661087b565b939190925f526002865260405f209060018060a01b03165f5260205260405f2090565b61180c565b3461013a5760206109216109183661087b565b92919091610ed9565b50604051908152f35b3461013a575f36600319011261013a5760206040516001600160401b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461013a575f36600319011261013a576020604051620249f08152f35b3461013a575f36600319011261013a575f546040516001600160a01b039091168152602090f35b604051906109be8261078f565b60608252565b9060208282031261013a5781356001600160401b039283821161013a57019060208282031261013a57604051926109fa8461078f565b823590811161013a57610a0d9201610835565b815290565b9081602091031261013a57516108c48161013e565b6040513d5f823e3d90fd5b634e487b7160e01b5f52601160045260245ffd5b65ffffffffffff9182169082160391908211610a5e57565b610a32565b92939594919095610a726109b1565b9280610c4d575b5050610a84426118e4565b5f54600490602090610aac90610aa0906001600160a01b031681565b6001600160a01b031690565b6040516327f843b560e11b815292839182905afa80156102e757610ae692610adb925f92610c1c575b50610a46565b65ffffffffffff1690565b65ffffffffffff8516908110908115610c06575b50610bf457610b0f610b189251858886610ed9565b92908092611109565b958615610be257610b9d61075b610b94610bdd947fe0cbbe1f1e6fd806ca87036fafcebaf7ab5247474a3b20e1c37bb50122c3a88496610b598a878b61111b565b610b648c878b6111a9565b610b6c6107fe565b9182526020820152604051928391602083019190916020806040830194805184520151910152565b86898488611315565b610ba7858861141e565b610bb3858883876114a3565b6040805188815265ffffffffffff90961660208701526001600160a01b0390911694918291820190565b0390a3565b60405163167f871760e31b8152600490fd5b604051631357ac9160e11b8152600490fd5b9050610c14610adb426118e4565b11155f610afa565b610c3f91925060203d602011610c46575b610c3781836107dd565b810190610a12565b905f610ad5565b503d610c2d565b610c5b9293508101906109c4565b905f80610a79565b81601f8201121561013a57805190610c7a8261081a565b92610c8860405194856107dd565b8284526020838301011161013a57815f9260208093018386015e8301015290565b9060208282031261013a5781516001600160401b03811161013a576108c49201610c63565b60406108c49260208352519160208082015201906103a0565b604051632751749360e11b81526001600160a01b0391821660048201526024810192909252918216604482015265ffffffffffff909216606483015260609291905f90829060849082907f0000000000000000000000000000000000000000000000000000000000000000165afa9081156102e7575f91610d91575b508051610d6d5750565b61075b9192506108c490610d7f61080d565b90815260405192839160208301610cce565b610dad91503d805f833e610da581836107dd565b810190610ca9565b5f610d63565b5f9081526002602090815260408083206001600160a01b039094168352929052206108c492919061180c565b9081602091031261013a57516108c481610129565b60405190610e01826107af565b60606020838281520152565b9060208282031261013a5781516001600160401b039283821161013a57019060408282031261013a5760405192610e43846107af565b825181811161013a5782610e58918501610c63565b8452602083015190811161013a57610e709201610c63565b602082015290565b9081602091031261013a575190565b9081526001600160a01b03909116602082015265ffffffffffff90911660408201526080606082018190526108c4929101906103a0565b5f19810191908211610a5e57565b91908203918211610a5e57565b92610ee2610df4565b908051806110ef575b5050610ef6426118e4565b5f54909490610f0f90610aa0906001600160a01b031681565b93604051956327f843b560e11b875260209687816004818a5afa80156102e757610f4392610adb925f926110d75750610a46565b65ffffffffffff82169081109081156110c0575b811561108f575b50611083578560049560405196878092630ce9b79360e41b82525afa9485156102e757610fb09587915f91611066575b50845190604051808099819463e02f693760e01b8352878b8a60048601610e87565b03916001600160a01b03165afa9384156102e757611022955f95611025575b5092611017859361101d9361101796869a61100e61039383610ff9875f52600260205260405f2090565b9060018060a01b03165f5260205260405f2090565b95015192610db3565b90610ecc565b611109565b91565b61101d929550611017949193611053611017928a3d8c1161105f575b61104b81836107dd565b810190610e78565b96935093919450610fcf565b503d611041565b61107d9150823d84116102e0576102d181836107dd565b5f610f8e565b5050505050505f905f90565b90506110b9610adb6110ad87610ff9875f52600160205260405f2090565b5465ffffffffffff1690565b115f610f5e565b90506110ce610adb426118e4565b81101590610f57565b610c3f9192508a3d8c11610c4657610c3781836107dd565b6111029250602080918301019101610e0d565b5f80610eeb565b9080821015611116575090565b905090565b919091805f52600160205265ffffffffffff8061114b8560405f209060018060a01b03165f5260205260405f2090565b54169083161161115a57505050565b61080b92611182915f52600160205260405f209060018060a01b03165f5260205260405f2090565b9065ffffffffffff1665ffffffffffff19825416179055565b9060018201809211610a5e57565b9190825f5260026020526112016103936111d68360405f209060018060a01b03165f5260205260405f2090565b926111e0426118e4565b955f52600260205260405f209060018060a01b03165f5260205260405f2090565b918201809211610a5e5760018101908154156112a5575b61122181611b40565b509490835495611230846115c8565b5081611290575b501561126f5750505f198301928311610a5e5761080b926112579161159f565b90919082549060031b91821b915f19901b1916179055565b61080b94611289926001600160d01b039091169190611c17565b5050611943565b65ffffffffffff83811691161490505f611237565b6112ae82611916565b611218565b606060206108c4938184526001600160401b038151168285015201519160408082015201906103a0565b919360a0936108c4969565ffffffffffff938552600180871b03166020850152604084015216606082015281608082015201906103a0565b92939060046020611332610aa0610aa05f5460018060a01b031690565b604051630ce9b79360e41b815292839182905afa9081156102e75761075b916113b0915f916113ff575b506001600160a01b03169361136f6107fe565b6001600160401b037f0000000000000000000000000000000000000000000000000000000000000000168152906020820152604051928391602083016112b3565b823b1561013a575f946113db86926040519889978896879563724ab0f760e11b8752600487016112dd565b03925af180156102e7576113ec5750565b806113f961080b926107ca565b806102fe565b611418915060203d6020116102e0576102d181836107dd565b5f61135c565b5f8054604051631c9e38c760e21b8152600481019390935265ffffffffffff9390931660248301529091602091839160449183916001600160a01b03165af180156102e75761146a5750565b6114829060203d60201161105f5761104b81836107dd565b50565b811561148f570490565b634e487b7160e01b5f52601260045260245ffd5b92905f549060ff8260a01c166114bb575b5050505050565b6040516313c085b760e11b815291602090839060049082906001600160a01b03165afa9182156102e7575f92611578575b5060405163065c1e0360e01b6020820190815260248201969096526001600160a01b039091166044820152606481019390935265ffffffffffff90911660848301526115458260a481015b03601f1981018452836107dd565b6202a15c5a10611566575f928380935192620249f0f1505f808080806114b4565b604051632153f33560e21b8152600490fd5b61154592506115986115379160203d6020116102e0576102d181836107dd565b92506114ec565b80548210156115b4575f5260205f2001905f90565b634e487b7160e01b5f52603260045260245ffd5b8054806115fd57505f5b6001600160d01b038116156115f75760016115ed920161159f565b90549060031b1c90565b50505f90565b5f19908082810111610a5e57825f5260205f2001015460301c6115d2565b91909160408184031261013a57803561163381610129565b9260208201356001600160401b03811161013a576108c49201610835565b5190811515820361013a57565b9081602091031261013a576108c490611651565b61167e9181019061161b565b6040516302910f8b60e31b81526001600160a01b0392831660048201819052929160209182816024817f000000000000000000000000000000000000000000000000000000000000000088165afa9081156102e7575f916117ae575b501561179c578161170e6004926116ef611966565b5f80546001600160a01b0319166001600160a01b03891617905561199c565b94604051928380926313c085b760e11b82525afa9182156102e7575f9261177f575b5050161580611775575b611763575161080b9015155f805460ff60a01b191691151560a01b60ff60a01b16919091179055565b60405163d2420f5960e01b8152600490fd5b508051151561173a565b6117959250803d106102e0576102d181836107dd565b5f80611730565b6040516362df054560e01b8152600490fd5b6117ce9150833d85116117d4575b6117c681836107dd565b81019061165e565b5f6116da565b503d6117bc565b9081602091031261013a575163ffffffff8116810361013a5790565b90600163ffffffff80931601918211610a5e57565b918051156118da5780602080611827935183010191016117db565b916118328382611ab4565b92611843845165ffffffffffff1690565b9065ffffffffffff80851692168281146118ce5782119182611879575b5050611870576108c492506119e4565b50506020015190565b9091506118868354610ebe565b63ffffffff83161491821561189f575b50505f80611860565b6118c69192506118ba6118b4610adb926117f7565b85611ab4565b5165ffffffffffff1690565b115f80611896565b50505050506020015190565b506108c4916119e4565b65ffffffffffff908181116118f7571690565b604490604051906306dfcc6560e41b8252603060048301526024820152fd5b8054600160401b8110156107aa576119339160018201815561159f565b8154905f199060031b1b19169055565b90815491600160401b8310156107aa578261125791600161080b9501815561159f565b61196e611b8f565b611976611b8f565b60017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055565b5f6040516119a98161078f565b5260208180518101031261013a576020906040516119c68161078f565b6119de6040519384936119d88561078f565b01611651565b82525290565b908154905f829160058411611a4e575b6119ff935084611e74565b80611a2757505f905b6001600160d01b038216156115f7576108c49160016115ed920161159f565b611a41611a36611a4892610ebe565b835f5260205f200190565b5460301c90565b90611a08565b9192611a5981611d36565b8103908111610a5e576119ff93855f5265ffffffffffff808360205f20015416908516105f14611a8a5750916119f4565b929150611a969061119b565b906119f4565b60405190611aa9826107af565b5f6020838281520152565b90611add611ad7611afe92611ac7611a9c565b50611ad0611a9c565b508461159f565b50611b1c565b91600165ffffffffffff845116936020828060d01b0391015116910161159f565b90549060405192611b0e846107af565b835260031b1c602082015290565b90604051611b29816107af565b915465ffffffffffff8116835260301c6020830152565b805480611b515750505f905f905f90565b5f19908082810111610a5e57611b6e925f5260205f200101611b1c565b9065ffffffffffff82511691602060018060d01b0391015116906001929190565b60ff5f80516020611ed48339815191525460401c1615611bab57565b604051631afcd79f60e31b8152600490fd5b8054600160401b8110156107aa57611bda9160018201815561159f565b611c0457815160209092015160301b65ffffffffffff191665ffffffffffff909216919091179055565b634e487b7160e01b5f525f60045260245ffd5b805492939291908215611d0d57611c38611c33611a3685610ebe565b611b1c565b90611c49825165ffffffffffff1690565b65ffffffffffff84811691168110611cfb57611cbf946020948892611c77610adb875165ffffffffffff1690565b03611cc35750611cb192611c8d611c9892610ebe565b905f5260205f200190565b9065ffffffffffff82549181199060301b169116179055565b01516001600160d01b031690565b9190565b915050611cf691611ce3611cd56107fe565b65ffffffffffff9093168352565b6001600160d01b03881682860152611bbd565b611cb1565b604051632520601d60e01b8152600490fd5b611d319250611d1d611cd56107fe565b6001600160d01b0385166020830152611bbd565b5f9190565b8015611e6f5780611e08611e01611df7611ded611de3611dd9611dcf611dc560016108c49a5f908b60801c80611e63575b508060401c80611e56575b508060201c80611e49575b508060101c80611e3c575b508060081c80611e2f575b508060041c80611e22575b508060021c80611e15575b50821c611e0e575b811c1b611dbe818b611485565b0160011c90565b611dbe818a611485565b611dbe8189611485565b611dbe8188611485565b611dbe8187611485565b611dbe8186611485565b611dbe8185611485565b8092611485565b90611109565b8101611db1565b600291509101905f611da9565b600491509101905f611d9e565b600891509101905f611d93565b601091509101905f611d88565b602091509101905f611d7d565b604091509101905f611d72565b9150506080905f611d67565b505f90565b91905b838210611e845750505090565b9091928083169080841860011c8201809211610a5e57845f5265ffffffffffff808360205f20015416908416105f14611ec15750925b9190611e77565b939250611ecd9061119b565b91611eba56fef0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a2646970667358221220261f69963924e5ee7c5ac4782d04417e658bb4ddd05ada87235908dd0839073964736f6c63430008190033","sourceMap":"2765:796:89:-:0;;;;-1:-1:-1;;;;;2765:796:89;;;;;;;;;;-1:-1:-1;;2765:796:89;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2765:796:89;;;;;;348:4:87;332:21;;8837:64:26;2765:796:89;;;;;;;;;7896:76:26;;2765:796:89;;;;7985:34:26;7981:146;;-1:-1:-1;525:17:74;-1:-1:-1;525:17:74;;-1:-1:-1;552:12:74;;-1:-1:-1;2353:28:97;;2391:53;;-1:-1:-1;2391:53:97;;2970:37:89;;;;2765:796;;;;;;;;;332:21:87;2765:796:89;;;;525:17:74;2765:796:89;;;;;552:12:74;2765:796:89;;;;;;;;;;2353:28:97;2765:796:89;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7981:146:26;-1:-1:-1;;;;;;2765:796:89;;;;;;;;;;;;;8087:29:26;;2765:796:89;;8087:29:26;7981:146;;;;;7896:76;2765:796:89;;-1:-1:-1;;;7938:23:26;;;;;2765:796:89;-1:-1:-1;2765:796:89;;;;;;-1:-1:-1;2765:796:89;;;;;-1:-1:-1;2765:796:89","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361015610011575f80fd5b5f3560e01c8063021a815614610124578063103f29071461011f5780631a2be2c41461011a578063238ab85f14610115578063267de1f3146101105780632964f8dc1461010b5780632c9d45b3146101065780632dd310001461010157806334d098ea146100fc578063439fab91146100f7578063457821b7146100f25780639f86fd85146100ed578063aa8e6489146100e8578063aab3595f146100e3578063bb24fe8a146100de578063d5c24e1a146100d95763fbfa77cf146100d4575f80fd5b61098a565b61096d565b61092a565b610905565b6108c7565b6106c1565b61067d565b610545565b610521565b6104dd565b610499565b61047d565b610428565b6103c4565b61034c565b610308565b61017b565b6001600160a01b0381160361013a57565b5f80fd5b65ffffffffffff81160361013a57565b9181601f8401121561013a578235916001600160401b03831161013a576020838186019501011161013a57565b3461013a5760a036600319011261013a5760043560243561019b81610129565b6064356101a78161013e565b6084356001600160401b03811161013a576101c690369060040161014e565b917f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0060028154146102ec5760029055604051635daf681960e11b8152606086901c60048201526001600160a01b036020826024817f000000000000000000000000000000000000000000000000000000000000000085165afa9182156102e7575f926102b6575b50339116036102a4576102a0946102679460443591610a63565b61029060017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055565b6040519081529081906020820190565b0390f35b60405163227bf64d60e01b8152600490fd5b6102d991925060203d6020116102e0575b6102d181836107dd565b810190610ddf565b905f61024d565b503d6102c7565b610a27565b604051633ee5aeb560e01b8152600490fd5b5f91031261013a57565b3461013a575f36600319011261013a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461013a57604036600319011261013a57602061039861039360243561037181610129565b6004355f526002845260405f209060018060a01b03165f5260205260405f2090565b6115c8565b604051908152f35b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b3461013a5760c036600319011261013a576102a06104146004356103e781610129565b6103f2602435610129565b6064356103fe81610129565b60a4359161040b8361013e565b60443590610ce7565b6040519182916020835260208301906103a0565b3461013a57604036600319011261013a57602065ffffffffffff61047360243561045181610129565b6004355f526001845260405f209060018060a01b03165f5260205260405f2090565b5416604051908152f35b3461013a575f36600319011261013a576020604051614e208152f35b3461013a575f36600319011261013a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461013a575f36600319011261013a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461013a575f36600319011261013a57602060ff5f5460a01c166040519015158152f35b3461013a57602036600319011261013a576001600160401b0360043581811161013a5761057690369060040161014e565b5f80516020611ed4833981519152549260ff8460401c1615931680159081610675575b600114908161066b575b159081610662575b50610650575f80516020611ed4833981519152805467ffffffffffffffff191660011790556105de918361062c57611672565b6105e457005b5f80516020611ed4833981519152805460ff60401b19169055604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a1005b5f80516020611ed4833981519152805460ff60401b1916600160401b179055611672565b60405163f92ee8a960e01b8152600490fd5b9050155f6105ab565b303b1591506105a3565b849150610599565b3461013a575f36600319011261013a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461013a5760408060031936011261013a576004356106df81610129565b602435906001600160401b03821161013a575f809161070561076994369060040161014e565b908187519283928337810184815203915af43d156107715761075b3d61072a8161081a565b90610737865192836107dd565b81523d5f602083013e5b8451948593151560208501528084015260608301906103a0565b03601f1981018352826107dd565b805190602001fd5b61075b6060610741565b634e487b7160e01b5f52604160045260245ffd5b602081019081106001600160401b038211176107aa57604052565b61077b565b604081019081106001600160401b038211176107aa57604052565b6001600160401b0381116107aa57604052565b90601f801991011681019081106001600160401b038211176107aa57604052565b6040519061080b826107af565b565b6040519061080b8261078f565b6001600160401b0381116107aa57601f01601f191660200190565b81601f8201121561013a5780359061084c8261081a565b9261085a60405194856107dd565b8284526020838301011161013a57815f926020809301838601378301015290565b90608060031983011261013a576004359160243561089881610129565b916044356108a58161013e565b91606435906001600160401b03821161013a576108c491600401610835565b90565b3461013a5760206103986109006108dd3661087b565b939190925f526002865260405f209060018060a01b03165f5260205260405f2090565b61180c565b3461013a5760206109216109183661087b565b92919091610ed9565b50604051908152f35b3461013a575f36600319011261013a5760206040516001600160401b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461013a575f36600319011261013a576020604051620249f08152f35b3461013a575f36600319011261013a575f546040516001600160a01b039091168152602090f35b604051906109be8261078f565b60608252565b9060208282031261013a5781356001600160401b039283821161013a57019060208282031261013a57604051926109fa8461078f565b823590811161013a57610a0d9201610835565b815290565b9081602091031261013a57516108c48161013e565b6040513d5f823e3d90fd5b634e487b7160e01b5f52601160045260245ffd5b65ffffffffffff9182169082160391908211610a5e57565b610a32565b92939594919095610a726109b1565b9280610c4d575b5050610a84426118e4565b5f54600490602090610aac90610aa0906001600160a01b031681565b6001600160a01b031690565b6040516327f843b560e11b815292839182905afa80156102e757610ae692610adb925f92610c1c575b50610a46565b65ffffffffffff1690565b65ffffffffffff8516908110908115610c06575b50610bf457610b0f610b189251858886610ed9565b92908092611109565b958615610be257610b9d61075b610b94610bdd947fe0cbbe1f1e6fd806ca87036fafcebaf7ab5247474a3b20e1c37bb50122c3a88496610b598a878b61111b565b610b648c878b6111a9565b610b6c6107fe565b9182526020820152604051928391602083019190916020806040830194805184520151910152565b86898488611315565b610ba7858861141e565b610bb3858883876114a3565b6040805188815265ffffffffffff90961660208701526001600160a01b0390911694918291820190565b0390a3565b60405163167f871760e31b8152600490fd5b604051631357ac9160e11b8152600490fd5b9050610c14610adb426118e4565b11155f610afa565b610c3f91925060203d602011610c46575b610c3781836107dd565b810190610a12565b905f610ad5565b503d610c2d565b610c5b9293508101906109c4565b905f80610a79565b81601f8201121561013a57805190610c7a8261081a565b92610c8860405194856107dd565b8284526020838301011161013a57815f9260208093018386015e8301015290565b9060208282031261013a5781516001600160401b03811161013a576108c49201610c63565b60406108c49260208352519160208082015201906103a0565b604051632751749360e11b81526001600160a01b0391821660048201526024810192909252918216604482015265ffffffffffff909216606483015260609291905f90829060849082907f0000000000000000000000000000000000000000000000000000000000000000165afa9081156102e7575f91610d91575b508051610d6d5750565b61075b9192506108c490610d7f61080d565b90815260405192839160208301610cce565b610dad91503d805f833e610da581836107dd565b810190610ca9565b5f610d63565b5f9081526002602090815260408083206001600160a01b039094168352929052206108c492919061180c565b9081602091031261013a57516108c481610129565b60405190610e01826107af565b60606020838281520152565b9060208282031261013a5781516001600160401b039283821161013a57019060408282031261013a5760405192610e43846107af565b825181811161013a5782610e58918501610c63565b8452602083015190811161013a57610e709201610c63565b602082015290565b9081602091031261013a575190565b9081526001600160a01b03909116602082015265ffffffffffff90911660408201526080606082018190526108c4929101906103a0565b5f19810191908211610a5e57565b91908203918211610a5e57565b92610ee2610df4565b908051806110ef575b5050610ef6426118e4565b5f54909490610f0f90610aa0906001600160a01b031681565b93604051956327f843b560e11b875260209687816004818a5afa80156102e757610f4392610adb925f926110d75750610a46565b65ffffffffffff82169081109081156110c0575b811561108f575b50611083578560049560405196878092630ce9b79360e41b82525afa9485156102e757610fb09587915f91611066575b50845190604051808099819463e02f693760e01b8352878b8a60048601610e87565b03916001600160a01b03165afa9384156102e757611022955f95611025575b5092611017859361101d9361101796869a61100e61039383610ff9875f52600260205260405f2090565b9060018060a01b03165f5260205260405f2090565b95015192610db3565b90610ecc565b611109565b91565b61101d929550611017949193611053611017928a3d8c1161105f575b61104b81836107dd565b810190610e78565b96935093919450610fcf565b503d611041565b61107d9150823d84116102e0576102d181836107dd565b5f610f8e565b5050505050505f905f90565b90506110b9610adb6110ad87610ff9875f52600160205260405f2090565b5465ffffffffffff1690565b115f610f5e565b90506110ce610adb426118e4565b81101590610f57565b610c3f9192508a3d8c11610c4657610c3781836107dd565b6111029250602080918301019101610e0d565b5f80610eeb565b9080821015611116575090565b905090565b919091805f52600160205265ffffffffffff8061114b8560405f209060018060a01b03165f5260205260405f2090565b54169083161161115a57505050565b61080b92611182915f52600160205260405f209060018060a01b03165f5260205260405f2090565b9065ffffffffffff1665ffffffffffff19825416179055565b9060018201809211610a5e57565b9190825f5260026020526112016103936111d68360405f209060018060a01b03165f5260205260405f2090565b926111e0426118e4565b955f52600260205260405f209060018060a01b03165f5260205260405f2090565b918201809211610a5e5760018101908154156112a5575b61122181611b40565b509490835495611230846115c8565b5081611290575b501561126f5750505f198301928311610a5e5761080b926112579161159f565b90919082549060031b91821b915f19901b1916179055565b61080b94611289926001600160d01b039091169190611c17565b5050611943565b65ffffffffffff83811691161490505f611237565b6112ae82611916565b611218565b606060206108c4938184526001600160401b038151168285015201519160408082015201906103a0565b919360a0936108c4969565ffffffffffff938552600180871b03166020850152604084015216606082015281608082015201906103a0565b92939060046020611332610aa0610aa05f5460018060a01b031690565b604051630ce9b79360e41b815292839182905afa9081156102e75761075b916113b0915f916113ff575b506001600160a01b03169361136f6107fe565b6001600160401b037f0000000000000000000000000000000000000000000000000000000000000000168152906020820152604051928391602083016112b3565b823b1561013a575f946113db86926040519889978896879563724ab0f760e11b8752600487016112dd565b03925af180156102e7576113ec5750565b806113f961080b926107ca565b806102fe565b611418915060203d6020116102e0576102d181836107dd565b5f61135c565b5f8054604051631c9e38c760e21b8152600481019390935265ffffffffffff9390931660248301529091602091839160449183916001600160a01b03165af180156102e75761146a5750565b6114829060203d60201161105f5761104b81836107dd565b50565b811561148f570490565b634e487b7160e01b5f52601260045260245ffd5b92905f549060ff8260a01c166114bb575b5050505050565b6040516313c085b760e11b815291602090839060049082906001600160a01b03165afa9182156102e7575f92611578575b5060405163065c1e0360e01b6020820190815260248201969096526001600160a01b039091166044820152606481019390935265ffffffffffff90911660848301526115458260a481015b03601f1981018452836107dd565b6202a15c5a10611566575f928380935192620249f0f1505f808080806114b4565b604051632153f33560e21b8152600490fd5b61154592506115986115379160203d6020116102e0576102d181836107dd565b92506114ec565b80548210156115b4575f5260205f2001905f90565b634e487b7160e01b5f52603260045260245ffd5b8054806115fd57505f5b6001600160d01b038116156115f75760016115ed920161159f565b90549060031b1c90565b50505f90565b5f19908082810111610a5e57825f5260205f2001015460301c6115d2565b91909160408184031261013a57803561163381610129565b9260208201356001600160401b03811161013a576108c49201610835565b5190811515820361013a57565b9081602091031261013a576108c490611651565b61167e9181019061161b565b6040516302910f8b60e31b81526001600160a01b0392831660048201819052929160209182816024817f000000000000000000000000000000000000000000000000000000000000000088165afa9081156102e7575f916117ae575b501561179c578161170e6004926116ef611966565b5f80546001600160a01b0319166001600160a01b03891617905561199c565b94604051928380926313c085b760e11b82525afa9182156102e7575f9261177f575b5050161580611775575b611763575161080b9015155f805460ff60a01b191691151560a01b60ff60a01b16919091179055565b60405163d2420f5960e01b8152600490fd5b508051151561173a565b6117959250803d106102e0576102d181836107dd565b5f80611730565b6040516362df054560e01b8152600490fd5b6117ce9150833d85116117d4575b6117c681836107dd565b81019061165e565b5f6116da565b503d6117bc565b9081602091031261013a575163ffffffff8116810361013a5790565b90600163ffffffff80931601918211610a5e57565b918051156118da5780602080611827935183010191016117db565b916118328382611ab4565b92611843845165ffffffffffff1690565b9065ffffffffffff80851692168281146118ce5782119182611879575b5050611870576108c492506119e4565b50506020015190565b9091506118868354610ebe565b63ffffffff83161491821561189f575b50505f80611860565b6118c69192506118ba6118b4610adb926117f7565b85611ab4565b5165ffffffffffff1690565b115f80611896565b50505050506020015190565b506108c4916119e4565b65ffffffffffff908181116118f7571690565b604490604051906306dfcc6560e41b8252603060048301526024820152fd5b8054600160401b8110156107aa576119339160018201815561159f565b8154905f199060031b1b19169055565b90815491600160401b8310156107aa578261125791600161080b9501815561159f565b61196e611b8f565b611976611b8f565b60017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055565b5f6040516119a98161078f565b5260208180518101031261013a576020906040516119c68161078f565b6119de6040519384936119d88561078f565b01611651565b82525290565b908154905f829160058411611a4e575b6119ff935084611e74565b80611a2757505f905b6001600160d01b038216156115f7576108c49160016115ed920161159f565b611a41611a36611a4892610ebe565b835f5260205f200190565b5460301c90565b90611a08565b9192611a5981611d36565b8103908111610a5e576119ff93855f5265ffffffffffff808360205f20015416908516105f14611a8a5750916119f4565b929150611a969061119b565b906119f4565b60405190611aa9826107af565b5f6020838281520152565b90611add611ad7611afe92611ac7611a9c565b50611ad0611a9c565b508461159f565b50611b1c565b91600165ffffffffffff845116936020828060d01b0391015116910161159f565b90549060405192611b0e846107af565b835260031b1c602082015290565b90604051611b29816107af565b915465ffffffffffff8116835260301c6020830152565b805480611b515750505f905f905f90565b5f19908082810111610a5e57611b6e925f5260205f200101611b1c565b9065ffffffffffff82511691602060018060d01b0391015116906001929190565b60ff5f80516020611ed48339815191525460401c1615611bab57565b604051631afcd79f60e31b8152600490fd5b8054600160401b8110156107aa57611bda9160018201815561159f565b611c0457815160209092015160301b65ffffffffffff191665ffffffffffff909216919091179055565b634e487b7160e01b5f525f60045260245ffd5b805492939291908215611d0d57611c38611c33611a3685610ebe565b611b1c565b90611c49825165ffffffffffff1690565b65ffffffffffff84811691168110611cfb57611cbf946020948892611c77610adb875165ffffffffffff1690565b03611cc35750611cb192611c8d611c9892610ebe565b905f5260205f200190565b9065ffffffffffff82549181199060301b169116179055565b01516001600160d01b031690565b9190565b915050611cf691611ce3611cd56107fe565b65ffffffffffff9093168352565b6001600160d01b03881682860152611bbd565b611cb1565b604051632520601d60e01b8152600490fd5b611d319250611d1d611cd56107fe565b6001600160d01b0385166020830152611bbd565b5f9190565b8015611e6f5780611e08611e01611df7611ded611de3611dd9611dcf611dc560016108c49a5f908b60801c80611e63575b508060401c80611e56575b508060201c80611e49575b508060101c80611e3c575b508060081c80611e2f575b508060041c80611e22575b508060021c80611e15575b50821c611e0e575b811c1b611dbe818b611485565b0160011c90565b611dbe818a611485565b611dbe8189611485565b611dbe8188611485565b611dbe8187611485565b611dbe8186611485565b611dbe8185611485565b8092611485565b90611109565b8101611db1565b600291509101905f611da9565b600491509101905f611d9e565b600891509101905f611d93565b601091509101905f611d88565b602091509101905f611d7d565b604091509101905f611d72565b9150506080905f611d67565b505f90565b91905b838210611e845750505090565b9091928083169080841860011c8201809211610a5e57845f5265ffffffffffff808360205f20015416908416105f14611ec15750925b9190611e77565b939250611ecd9061119b565b91611eba56fef0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a2646970667358221220261f69963924e5ee7c5ac4782d04417e658bb4ddd05ada87235908dd0839073964736f6c63430008190033","sourceMap":"2765:796:89:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;-1:-1:-1;;;;;2765:796:89;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;2765:796:89;;;;;;;;;;;;;;;:::o;:::-;;;;;;-1:-1:-1;;2765:796:89;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;-1:-1:-1;;;;;2765:796:89;;;;;;;;;;;:::i;:::-;2355:73:29;;1847:1;2765:796:89;;3526:20:29;3522:88;;1847:1;;;2765:796:89;;-1:-1:-1;;;4546:86:97;;2765:796:89;;;;;4546:86:97;;2765:796:89;-1:-1:-1;;;;;2765:796:89;;;;4572:26:97;2765:796:89;;4546:86:97;;;;;;;-1:-1:-1;4546:86:97;;;2765:796:89;4636:10:97;;2765:796:89;;4546:100:97;4542:160;;2765:796:89;;774:1493:98;2765:796:89;;;774:1493:98;;:::i;:::-;3282:1:29;1805;2355:73;1847:1;3716:283;3282:1;2765:796:89;;;;;;;;;;;;;;;;;4542:160:97;2765:796:89;;-1:-1:-1;;;4669:22:97;;2765:796:89;;4669:22:97;4546:86;;;;;2765:796:89;4546:86:97;2765:796:89;4546:86:97;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;;:::i;3522:88:29:-;2765:796:89;;-1:-1:-1;;;3569:30:29;;2765:796:89;;3569:30:29;2765:796:89;;;;;;;:::o;:::-;;;;;;-1:-1:-1;;2765:796:89;;;;;;1435:38:97;-1:-1:-1;;;;;2765:796:89;;;;;;;;;;;;-1:-1:-1;;2765:796:89;;;;;2936:47:97;:38;2765:796:89;;;;;:::i;:::-;;;-1:-1:-1;2765:796:89;2936:16:97;2765:796:89;;;-1:-1:-1;2765:796:89;;;;;;;;;;;;;;;;;2936:38:97;:47;:::i;:::-;2765:796:89;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2765:796:89;;;;;;;;-1:-1:-1;;2765:796:89;;;;:::o;:::-;;;;;;-1:-1:-1;;2765:796:89;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;2765:796:89;;;;;;1788:109:97;2765:796:89;;;;;:::i;:::-;;;-1:-1:-1;2765:796:89;1788:109:97;2765:796:89;;;-1:-1:-1;2765:796:89;;;;;;;;;;;;;;;;;1788:109:97;2765:796:89;;;;;;;;;;;;;;-1:-1:-1;;2765:796:89;;;;;;;1374:6:97;2765:796:89;;;;;;;;;-1:-1:-1;;2765:796:89;;;;;;1528:51:97;-1:-1:-1;;;;;2765:796:89;;;;;;;;;;;;-1:-1:-1;;2765:796:89;;;;;;322:32:74;-1:-1:-1;;;;;2765:796:89;;;;;;;;;;;;-1:-1:-1;;2765:796:89;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2765:796:89;;;;-1:-1:-1;;;;;2765:796:89;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;2765:796:89;;;;;;;4301:16:26;2765:796:89;;4726:16:26;;:34;;;;2765:796:89;4805:1:26;4790:16;:50;;;;2765:796:89;4855:13:26;:30;;;;2765:796:89;4851:91:26;;;-1:-1:-1;;;;;;;;;;;2765:796:89;;-1:-1:-1;;2765:796:89;;;;;718:4:74;;4951:18:26;4979:67;;718:4:74;:::i;:::-;5066:101:26;;2765:796:89;5066:101:26;-1:-1:-1;;;;;;;;;;;2765:796:89;;-1:-1:-1;;;;2765:796:89;;;;;-1:-1:-1;2765:796:89;;5142:14:26;;2765:796:89;;5142:14:26;2765:796:89;4979:67:26;-1:-1:-1;;;;;;;;;;;2765:796:89;;-1:-1:-1;;;;2765:796:89;-1:-1:-1;;;2765:796:89;;;718:4:74;:::i;4851:91:26:-;2765:796:89;;-1:-1:-1;;;4908:23:26;;2765:796:89;;4908:23:26;4855:30;4872:13;;;4855:30;;;4790:50;4818:4;4810:25;:30;;-1:-1:-1;4790:50:26;;4726:34;;;-1:-1:-1;4726:34:26;;2765:796:89;;;;;;-1:-1:-1;;2765:796:89;;;;;;2811:43;-1:-1:-1;;;;;2765:796:89;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;2765:796:89;;;;-1:-1:-1;2765:796:89;;;477:31:80;2765:796:89;;;;;;:::i;:::-;;;;;;;;;;;;;;;416:25:80;;;;2765:796:89;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;-1:-1:-1;2765:796:89;;;;;;;;;;;;;477:31:80;;2765:796:89;;;;;;;;;;:::i;:::-;477:31:80;2765:796:89;;477:31:80;;;;;;:::i;:::-;518:79;;;2765:796:89;518:79:80;;2765:796:89;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2765:796:89;;;;;;;:::o;:::-;;:::i;:::-;;;;;;;-1:-1:-1;;;;;2765:796:89;;;;;;;:::o;:::-;-1:-1:-1;;;;;2765:796:89;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;2765:796:89;;;;;;;:::o;:::-;;;;;;;:::i;:::-;:::o;:::-;;;;;;;:::i;:::-;-1:-1:-1;;;;;2765:796:89;;;;;;-1:-1:-1;;2765:796:89;;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;2765:796:89;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;2765:796:89;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;-1:-1:-1;;;;;2765:796:89;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;2692:73:97;:38;2765:796:89;;;:::i;:::-;;;;;-1:-1:-1;2765:796:89;2692:16:97;2765:796:89;;;-1:-1:-1;2765:796:89;;;;;;;;;;;;;;;;;2692:38:97;:73;:::i;2765:796:89:-;;;;;3248:62:97;2765:796:89;;;:::i;:::-;3248:62:97;;;;;:::i;:::-;2765:796:89;;;;;;;;;;;;;-1:-1:-1;;2765:796:89;;;;;;;-1:-1:-1;;;;;404:28:74;2765:796:89;;;;;;;;;;-1:-1:-1;;2765:796:89;;;;;;;1271:7:97;2765:796:89;;;;;;;;;-1:-1:-1;;2765:796:89;;;;;;;;-1:-1:-1;;;;;2765:796:89;;;;;;;;;;;;;;;:::i;:::-;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;;;;2765:796:89;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;;;;:::o;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;:::i;774:1493:98:-;;;;;;;;2765:796:89;;:::i;:::-;1076:16:98;;1072:91;;774:1493;837:15:63;;819:34;837:15;819:34;:::i;:::-;-1:-1:-1;2765:796:89;1215:29:98;;;;:27;;:13;;-1:-1:-1;;;;;2765:796:89;1215:13:98;2765:796:89;;-1:-1:-1;;;;;2765:796:89;;;1215:27:98;2765:796:89;;-1:-1:-1;;;1215:29:98;;2765:796:89;;;;;1215:29:98;;;;;;1177:67;1215:29;1196:48;1215:29;-1:-1:-1;1215:29:98;;;774:1493;1196:48;;:::i;:::-;2765:796:89;;;;1177:67:98;2765:796:89;;;1177:67:98;;;:107;;;;;774:1493;1173:178;;;1418:87;1531:33;1474:30;;1418:87;;;;:::i;:::-;1531:33;;;;;:::i;:::-;1578:18;;;1574:75;;1950:87;;;2200:60;1718:16;2200:60;1718:16;;;;;;:::i;:::-;1791:13;;;;;:::i;:::-;2765:796:89;;:::i;:::-;;;;1215:29:98;1961:75;;2765:796:89;;;1950:87:98;;;1215:29;1950:87;;2765:796:89;;;;;;;;;;;;;;;;;;;1950:87:98;;;;;;:::i;:::-;2087:16;;;;:::i;:::-;2167;;;;;;:::i;:::-;2765:796:89;;;;;;;;;;;;;;-1:-1:-1;;;;;2765:796:89;;;;;;;;;;;2200:60:98;;;;774:1493::o;1574:75::-;2765:796:89;;-1:-1:-1;;;1619:19:98;;1215:29;;1619:19;1173:178;2765:796:89;;-1:-1:-1;;;1315:25:98;;1215:29;;1315:25;1177:107;837:15:63;;1248:36:98;819:34:63;837:15;819:34;:::i;1248:36:98:-;-1:-1:-1;1248:36:98;1177:107;;;1215:29;;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;1072:91;1121:31;;;;;;;;:::i;:::-;1072:91;;;;;2765:796:89;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;2765:796:89;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;;;;2765:796:89;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;:::i;3020:539::-;2765:796;;-1:-1:-1;;;3303:105:89;;-1:-1:-1;;;;;2765:796:89;;;3303:105;;;2765:796;;;;;;;;;;;;;;;;;;;;;;;;;3020:539;2765:796;3303:105;;2765:796;;;;;;3320:18;2765:796;3303:105;;;;;;;;;;;3020:539;2765:796;;;3419:134;;3020:539;:::o;3419:134::-;3476:66;2765:796;;;3476:66;2765:796;;;:::i;:::-;;;;;;3476:66;;;2765:796;3476:66;;;:::i;3303:105::-;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;2505:267:97;-1:-1:-1;2765:796:89;;;2692:16:97;2765:796:89;;;;;;;;-1:-1:-1;;;;;2765:796:89;;;;;;;;;2692:73:97;;2505:267;;2692:73;:::i;2765:796:89:-;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;;;;2765:796:89;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;2765:796:89;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;2765:796:89;;;;;;;;:::o;:::-;;;;;;;;;;:::o;3323:1122:97:-;;2765:796:89;;:::i;:::-;;;;3608:16:97;3604:109;;3323:1122;837:15:63;;819:34;837:15;819:34;:::i;:::-;-1:-1:-1;2765:796:89;;;;3778:27:97;;:13;;-1:-1:-1;;;;;2765:796:89;3778:13:97;2765:796:89;3778:27:97;2765:796:89;;;;;;;3778:29:97;;;;;;;;;;;;;;;3740:67;3778:29;3759:48;3778:29;-1:-1:-1;3778:29:97;;;3759:48;;:::i;3740:67::-;2765:796:89;;;3740:67:97;;;:107;;;;;3323:1122;3740:197;;;;3323:1122;3723:263;;;2765:796:89;3778:29:97;2765:796:89;;;;;;;;;;4025:25:97;;;;;;;;;4010:143;4025:25;;;-1:-1:-1;4025:25:97;;;3323:1122;4113:30;;;2765:796:89;;;;;;;;;;;4010:143:97;;;;;3778:29;4010:143;;;:::i;:::-;;;-1:-1:-1;;;;;2765:796:89;4010:143:97;;;;;;;4181:257;4010:143;-1:-1:-1;4010:143:97;;;3323:1122;3996:157;;4293:102;3996:157;;4233:162;3996:157;4207:231;3996:157;;2936:28;:47;:38;:28;;;2765:796:89;;2936:16:97;2765:796:89;;;;;;;2936:28:97;2765:796:89;;;;;;;;;;;;;;;;2936:47:97;4351:43;;;4293:102;;:::i;:::-;4233:162;;:::i;:::-;4207:231;:::i;4181:257::-;3323:1122;:::o;4010:143::-;4233:162;4010:143;;;4207:231;4010:143;;;;4293:102;4010:143;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;;;;;4025:25;;;;;;;;;;;;;;:::i;:::-;;;;3723:263;3962:13;;;;;;-1:-1:-1;3962:13:97;-1:-1:-1;3962:13:97;:::o;3740:197::-;3886:41;;3867:70;3886:51;;:41;;;2765:796:89;;3886:29:97;2765:796:89;;;;;;;3886:51:97;2765:796:89;;;;;3867:70:97;-1:-1:-1;3740:197:97;;;:107;837:15:63;;3811:36:97;819:34:63;837:15;819:34;:::i;3811:36:97:-;;;;3740:107;;;3778:29;;;;;;;;;;;;;;;:::i;3604:109::-;3662:40;;;;;;;;;;;;:::i;:::-;3604:109;;;;2557:104:58;;2641:5;;;;;;:13;2557:104;:::o;2641:13::-;;;2557:104;:::o;4714:335:97:-;;;;2765:796:89;-1:-1:-1;2765:796:89;4876:29:97;2765:796:89;;;;4876:51:97;2765:796:89;;-1:-1:-1;2765:796:89;;;;;;;;;;;;;;;;;4876:51:97;2765:796:89;;;;;-1:-1:-1;4872:171:97;;4714:335;;;:::o;4872:171::-;4962:70;2765:796:89;4962:51:97;2765:796:89;-1:-1:-1;2765:796:89;4876:29:97;2765:796:89;;;-1:-1:-1;2765:796:89;;;;;;;;;;;;;;;;;4962:51:97;2765:796:89;;;;;;;;;;;;;;9856:1:61;2765:796:89;;;;;;;:::o;5055:221:97:-;;;2765:796:89;-1:-1:-1;2765:796:89;5160:16:97;2765:796:89;;2936:47:97;:38;5160;2765:796:89;;-1:-1:-1;2765:796:89;;;;;;;;;;;;;;;;;5160:38:97;837:15:63;819:34;837:15;819:34;:::i;:::-;2765:796:89;-1:-1:-1;2765:796:89;5160:16:97;2765:796:89;;;-1:-1:-1;2765:796:89;;;;;;;;;;;;;;;;;2936:47:97;2765:796:89;;;;;;;;6360:12:91;;;2765:796:89;;;6360:24:91;6356:75;;5055:221:97;6474:30:91;;;:::i;:::-;2765:796:89;;;;;6578:12:91;;;;:::i;:::-;;6604:24;;;5055:221:97;-1:-1:-1;6600:188:91;;;-1:-1:-1;;;;2765:796:89;;;;;;;6644:29:91;:21;;;;:::i;:::-;:29;2765:796:89;;;;;;;;;;;;;;;;;;;;;6600:188:91;6753:24;;8167:38:61;;-1:-1:-1;;;;;2765:796:89;;;;;8167:38:61;:::i;:::-;6753:24:91;;;:::i;6604:::-;2765:796:89;;;;;;6614:14:91;;-1:-1:-1;6604:24:91;;;6356:75;6400:20;;;:::i;:::-;6356:75;;2765:796:89;;;;;;;;-1:-1:-1;;;;;2765:796:89;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;5282:431:97:-;;;;5487:25;;:23;:13;2765:796:89;5494:5:97;2765:796:89;;;;;;;;;5487:23:97;2765:796:89;;-1:-1:-1;;;5487:25:97;;2765:796:89;;;;;5487:25:97;;;;;;;5631:65;5487:25;5631:65;5487:25;5494:5;5487:25;;;5282:431;-1:-1:-1;;;;;;2765:796:89;;;;:::i;:::-;-1:-1:-1;;;;;5677:4:97;2765:796:89;;;5677:4:97;5487:25;5642:53;;2765:796:89;;;5631:65:97;;;5487:25;5631:65;;;:::i;:::-;5472:234;;;;;5494:5;2765:796:89;5472:234:97;2765:796:89;;;;;;;;;;;;;;5472:234:97;;5487:25;5472:234;;;:::i;:::-;;;;;;;;;;;5282:431;:::o;5472:234::-;;;;;;:::i;:::-;;;:::i;5487:25::-;;;;;;;;;;;;;;:::i;:::-;;;;5719:137;5809:5;2765:796:89;;;;-1:-1:-1;;;5802:47:97;;;;;2765:796:89;;;;;;;;;;;;;;;5802:47:97;;2765:796:89;;;;;;-1:-1:-1;;;;;2765:796:89;5802:47:97;;;;;;;;5719:137;:::o;5802:47::-;;;;;;;;;;;;;:::i;:::-;;5719:137::o;2765:796:89:-;;;;;;;:::o;:::-;;;;;;;;;;;;5862:623:97;;;5988:12;2765:796:89;;;;;;;5984:495:97;;5862:623;;;;;;:::o;5984:495::-;2765:796:89;;-1:-1:-1;;;6033:22:97;;2765:796:89;6033:22:97;;2765:796:89;;6033:22:97;;2765:796:89;;-1:-1:-1;;;;;2765:796:89;6033:22:97;;;;;;;5988:12;6033:22;;;5984:495;-1:-1:-1;2765:796:89;;-1:-1:-1;;;6033:22:97;6094:81;;;;;;;;2765:796:89;;;;-1:-1:-1;;;;;2765:796:89;;;;;;;;;;;;;;;;;;;;;;6094:81:97;2765:796:89;;;;6094:81:97;;2765:796:89;;6094:81:97;;;;;;:::i;:::-;2765:796:89;6194:9:97;:55;6190:124;;5988:12;6328:141;;;;;;1271:7;6328:141;;5984:495;;;;;;;6190:124;2765:796:89;;-1:-1:-1;;;6276:23:97;;6033:22;;6276:23;6033:22;6094:81;6033:22;;;6094:81;6033:22;;;;;;;;;;;:::i;:::-;;;;;2765:796:89;;;;;;;;-1:-1:-1;2765:796:89;;-1:-1:-1;2765:796:89;;;-1:-1:-1;2765:796:89;:::o;:::-;;;;;;;;;;;;10580:184:91;2765:796:89;;10303:8:61;;;:63;-1:-1:-1;10303:63:61;-1:-1:-1;;;;;2765:796:89;;10726:7:91;2765:796:89;;10736:12:91;:17;:12;;:17;:::i;:::-;2765:796:89;;;;;;10580:184:91;:::o;10726:31::-;;;-1:-1:-1;10580:184:91;:::o;10303:63:61:-;2765:796:89;;;;;;;;;;14249:109:61;-1:-1:-1;14249:109:61;;-1:-1:-1;14249:109:61;;;2765:796:89;;;10303:63:61;;2765:796:89;;;;;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;2765:796:89;;;;;;;;:::i;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;:::i;6491:564:97:-;6614:34;6491:564;6614:34;;;;:::i;:::-;2765:796:89;;-1:-1:-1;;;6664:41:97;;-1:-1:-1;;;;;2765:796:89;;;6664:41:97;;;2765:796:89;;;;;6664:41:97;;;2765:796:89;;;6674:13:97;2765:796:89;;6664:41:97;;;;;;;-1:-1:-1;6664:41:97;;;6491:564;6663:42;;6659:90;;2540:111:29;6850:27:97;6664:41;2540:111:29;;;:::i;:::-;-1:-1:-1;2765:796:89;;-1:-1:-1;;;;;;2765:796:89;-1:-1:-1;;;;;2765:796:89;;;;;6850:27:97;:::i;:::-;2765:796:89;;;;;;;;;;6892:23:97;;;;;;;;;-1:-1:-1;6892:23:97;;;6491:564;2765:796:89;;;6892:37:97;:64;;;6491:564;6888:112;;2765:796:89;7010:38:97;;2765:796:89;;-1:-1:-1;2765:796:89;;-1:-1:-1;;;;2765:796:89;;;;;;-1:-1:-1;;;2765:796:89;;;;;;;;6888:112:97;2765:796:89;;-1:-1:-1;;;6979:10:97;;6664:41;;6979:10;6892:64;-1:-1:-1;2765:796:89;;;;6892:64:97;;:23;;;;;;-1:-1:-1;6892:23:97;;;;;;:::i;:::-;;;;;6659:90;2765:796:89;;-1:-1:-1;;;6728:10:97;;6664:41;;6728:10;6664:41;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;2765:796:89;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;:::o;7558:604:91:-;;2765:796:89;;7686:17:91;7682:83;;2765:796:89;7789:27:91;2765:796:89;7789:27:91;2765:796:89;;7789:27:91;;;;;;:::i;:::-;7860:14;;;;;:::i;:::-;2765:796:89;;;;;;;;;;;;;;;;7888:22:91;;;7884:77;;7975:21;-1:-1:-1;7975:84:91;;;;7558:604;7971:139;;;;8127:28;;;;:::i;7971:139::-;8082:17;;7789:27;8082:17;2765:796:89;8075:24:91;:::o;7975:84::-;2765:796:89;;;8009:16:91;2765:796:89;;8009:16:91;:::i;:::-;2765:796:89;;;8001:24:91;:57;;;;;7975:84;;;;;;;8001:57;8029:29;8038:8;;;8029:18;8038:8;8029:23;8038:8;;:::i;:::-;8029:18;;:::i;:::-;2765:796:89;;;;;8029:29:91;;8001:57;;;;7884:77;7933:17;;;;;7789:27;7933:17;2765:796:89;7926:24:91;:::o;7682:83::-;7726:28;;;;:::i;14291:213:59:-;2765:796:89;14369:24:59;;;;14365:103;;2765:796:89;14291:213:59;:::o;14365:103::-;2765:796:89;;;;14416:41:59;;;;;;14447:2;14416:41;;;2765:796:89;;;;;14416:41:59;2765:796:89;;;-1:-1:-1;;;2765:796:89;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::o;:::-;;;;;-1:-1:-1;;;2765:796:89;;;;;;;;;;;;;;;:::i;6893:76:26:-;;;:::i;:::-;;;:::i;:::-;1805:1:29;2355:73;1847:1;6893:76:26:o;2273:218:98:-;-1:-1:-1;2765:796:89;;;;;:::i;:::-;;;;;;2419:30:98;;2765:796:89;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;2419:30:98;2765:796:89;:::i;:::-;;;;2273:218:98;:::o;6999:207:91:-;;2765:796:89;;9594:15:61;-1:-1:-1;9619:18:61;9652:7;9658:1;9652:7;;9648:234;;6999:207:91;9906:53:61;;;;;:::i;:::-;9977:8;;;:63;-1:-1:-1;9977:63:61;;-1:-1:-1;;;;;2765:796:89;;7168:7:91;2765:796:89;;;7178:12:91;;:17;:12;;:17;:::i;9977:63:61:-;9992:41;10025:7;9992:48;10025:7;;:::i;:::-;9992:41;14249:109;;;;;;14099:265;;9992:41;2765:796:89;;;;;9992:48:61;9977:63;;;9648:234;9695:14;;;;;:::i;:::-;2765:796:89;;;;;;;9906:53:61;14249:109;;-1:-1:-1;14249:109:61;2765:796:89;14249:109:61;;;-1:-1:-1;14249:109:61;;2765:796:89;;;;;9727:48:61;9723:149;2765:796:89;;;9795:10:61;9723:149;9648:234;;9723:149;9850:7;;;;;;:::i;:::-;9723:149;9648:234;;2765:796:89;;;;;;;:::i;:::-;-1:-1:-1;2765:796:89;;;;;;;:::o;11486:272:91:-;;2765:796:89;11308:22:61;11718:31:91;11486:272;2765:796:89;;:::i;:::-;;;;:::i;:::-;;11308:22:61;;:::i;:::-;2765:796:89;;:::i;:::-;;11718:12:91;2765:796:89;;;;;11731:17:91;2765:796:89;;;;;11731:17:91;;2765:796:89;;11718:12:91;;:31;:::i;:::-;2765:796:89;;;;;;;;;:::i;:::-;;;;;;11731:17:91;11672:79;;2765:796:89;11486:272:91;:::o;2765:796:89:-;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::o;10552:388:61:-;2765:796:89;;10728:8:61;;;10752:20;;10690:17;10752:20;10690:17;10752:20;10690:17;10752:20;:::o;10724:210::-;2765:796:89;;;;;;;;;;;14249:109:61;10690:17;14249:109;;10690:17;14249:109;;;2765:796:89;:::i;:::-;;;;;;;14249:109:61;2765:796:89;;;;;10911:11:61;;2765:796:89;;10886:37:61;10870:1;10886:37;;;:::o;7084:141:26:-;2765:796:89;-1:-1:-1;;;;;;;;;;;2765:796:89;;;;7150:18:26;7146:73;;7084:141::o;7146:73::-;2765:796:89;;-1:-1:-1;;;7191:17:26;;;;;2765:796:89;;;-1:-1:-1;;;2765:796:89;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;2765:796:89;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;11513:870:61;2765:796:89;;11513:870:61;;;2765:796:89;11513:870:61;11672:7;;;;2765:796:89;11775:28:61;11795:7;;;:::i;11775:28::-;2765:796:89;:::i;:::-;;;;;;;;;;;;;;;;11877:15:61;-1:-1:-1;11873:91:61;;2765:796:89;;12233:11:61;2765:796:89;;;12027:16:61;2765:796:89;;;;;;;12027:16:61;;;;12083:7;12063:43;12083:7;;12063:28;12083:7;;:::i;:::-;12063:28;14249:109;;;;;;14099:265;;12063:28;2765:796:89;;;;;;;;;;;;;;;;;12063:43:61;12233:11;2765:796:89;-1:-1:-1;;;;;2765:796:89;;;;12225:27:61;;:::o;12023:189::-;2765:796:89;;;12145:52:61;2765:796:89;12155:41:61;2765:796:89;;:::i;:::-;;;;;;;;12155:41:61;-1:-1:-1;;;;;2765:796:89;;12155:41:61;;;2765:796:89;12145:52:61;:::i;:::-;12023:189;;11873:91;2765:796:89;;-1:-1:-1;;;11919:30:61;;;;;11668:709;12283:52;2765:796:89;;12293:41:61;2765:796:89;;:::i;12293:41:61:-;-1:-1:-1;;;;;2765:796:89;;12293:41:61;;;2765:796:89;12145:52:61;:::i;12283:::-;11678:1;12349:17;;:::o;8587:1642:58:-;8658:6;;8654:45;;9401:7;10201:10;10142:26;10093;10044;9995;9946;9897;9848;2765:796:89;10189:23:58;9401:7;8663:1;2765:796:89;;;;10826:16:58;10822:99;;8587:1642;2765:796:89;;;;10938:15:58;10934:96;;8587:1642;2765:796:89;;;;11047:15:58;11043:96;;8587:1642;2765:796:89;;;;11156:15:58;11152:96;;8587:1642;2765:796:89;;;;11265:14:58;11261:93;;8587:1642;2765:796:89;;;;11371:14:58;11367:93;;8587:1642;2765:796:89;;;;11477:14:58;11473:93;;8587:1642;2765:796:89;;;11579:64:58;;8587:1642;2765:796:89;;;9858:10:58;;;;:::i;:::-;2765:796:89;;;;;9848:26:58;9907:10;;;;:::i;9897:26::-;9956:10;;;;:::i;9946:26::-;10005:10;;;;:::i;9995:26::-;10054:10;;;;:::i;10044:26::-;10103:10;;;;:::i;10093:26::-;10152:10;;;;:::i;10142:26::-;10201:10;;;:::i;:::-;10189:23;;:::i;11579:64::-;2765:796:89;;11579:64:58;;11473:93;2765:796:89;11511:11:58;;2765:796:89;;11473:93:58;;;;11367;2765:796:89;11405:11:58;;2765:796:89;;11367:93:58;;;;11261;2765:796:89;11299:11:58;;2765:796:89;;11261:93:58;;;;11152:96;2765:796:89;11191:12:58;;2765:796:89;;11152:96:58;;;;11043;2765:796:89;11082:12:58;;2765:796:89;;11043:96:58;;;;10934;2765:796:89;10973:12:58;;2765:796:89;;10934:96:58;;;;10822:99;10862:13;;;2765:796:89;10822:99:58;;;;8654:45;8680:8;8663:1;8680:8;:::o;12736:433:61:-;;;12919:10;;;;;;13151:11;;;12736:433;:::o;12912:230::-;2900:5:58;;;;;;2910;;;;2765:796:89;;;;;;;;;14249:109:61;-1:-1:-1;14249:109:61;2765:796:89;14249:109:61;;;-1:-1:-1;14249:109:61;;2765:796:89;;;;;-1:-1:-1;12996:136:61;2765:796:89;;;13055:10:61;12996:136;;12912:230;;;;12996:136;13110:7;;;;;;:::i;:::-;12996:136;;","linkReferences":{},"immutableReferences":{"64520":[{"start":1266,"length":32}],"64523":[{"start":2377,"length":32},{"start":4985,"length":32}],"69625":[{"start":1682,"length":32},{"start":3379,"length":32}],"72304":[{"start":797,"length":32},{"start":5801,"length":32}],"72307":[{"start":540,"length":32},{"start":1198,"length":32}]}},"methodIdentifiers":{"BASE_SLASHER_HINTS()":"457821b7","BURNER_GAS_LIMIT()":"d5c24e1a","BURNER_RESERVE()":"2964f8dc","FACTORY()":"2dd31000","NETWORK_MIDDLEWARE_SERVICE()":"2c9d45b3","TYPE()":"bb24fe8a","VAULT_FACTORY()":"103f2907","cumulativeSlash(bytes32,address)":"1a2be2c4","cumulativeSlashAt(bytes32,address,uint48,bytes)":"aa8e6489","initialize(bytes)":"439fab91","isBurnerHook()":"34d098ea","latestSlashedCaptureTimestamp(bytes32,address)":"267de1f3","slash(bytes32,address,uint256,uint48,bytes)":"021a8156","slashHints(address,address,bytes32,address,uint256,uint48)":"238ab85f","slashableStake(bytes32,address,uint48,bytes)":"aab3595f","staticDelegateCall(address,bytes)":"9f86fd85","vault()":"fbfa77cf"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"baseSlasherHints\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"CheckpointUnorderedInsertion\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ExternalCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientBurnerGas\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientSlash\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidCaptureTimestamp\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NoBurner\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotNetworkMiddleware\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotVault\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ReentrancyGuardReentrantCall\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"bits\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"SafeCastOverflowedUintDowncast\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"slashedAmount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint48\",\"name\":\"captureTimestamp\",\"type\":\"uint48\"}],\"name\":\"Slash\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"BASE_SLASHER_HINTS\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"BURNER_GAS_LIMIT\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"BURNER_RESERVE\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"FACTORY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"NETWORK_MIDDLEWARE_SERVICE\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"TYPE\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"VAULT_FACTORY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"cumulativeSlash\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hint\",\"type\":\"bytes\"}],\"name\":\"cumulativeSlashAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isBurnerHook\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"latestSlashedCaptureTimestamp\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"value\",\"type\":\"uint48\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint48\",\"name\":\"captureTimestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hints\",\"type\":\"bytes\"}],\"name\":\"slash\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"slashedAmount\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"slasher\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"msgSender\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint48\",\"name\":\"captureTimestamp\",\"type\":\"uint48\"}],\"name\":\"slashHints\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"captureTimestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hints\",\"type\":\"bytes\"}],\"name\":\"slashableStake\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"staticDelegateCall\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"vault\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"CheckpointUnorderedInsertion()\":[{\"details\":\"A value was attempted to be inserted on a past checkpoint.\"}],\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"ReentrancyGuardReentrantCall()\":[{\"details\":\"Unauthorized reentrant call.\"}],\"SafeCastOverflowedUintDowncast(uint8,uint256)\":[{\"details\":\"Value doesn't fit in an uint of `bits` size.\"}]},\"events\":{\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"Slash(bytes32,address,uint256,uint48)\":{\"params\":{\"captureTimestamp\":\"time point when the stake was captured\",\"operator\":\"operator that is slashed\",\"slashedAmount\":\"virtual amount of the collateral slashed\",\"subnetwork\":\"subnetwork that requested the slash\"}}},\"kind\":\"dev\",\"methods\":{\"cumulativeSlash(bytes32,address)\":{\"params\":{\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"},\"returns\":{\"_0\":\"cumulative slash amount\"}},\"cumulativeSlashAt(bytes32,address,uint48,bytes)\":{\"params\":{\"hint\":\"hint for the checkpoint index\",\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\",\"timestamp\":\"time point to get the cumulative slash amount until (inclusively)\"},\"returns\":{\"_0\":\"cumulative slash amount until the given timestamp (inclusively)\"}},\"initialize(bytes)\":{\"params\":{\"data\":\"some data to use\"}},\"slash(bytes32,address,uint256,uint48,bytes)\":{\"details\":\"Only a network middleware can call this function.\",\"params\":{\"amount\":\"maximum amount of the collateral to be slashed\",\"captureTimestamp\":\"time point when the stake was captured\",\"hints\":\"hints for checkpoints' indexes\",\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"},\"returns\":{\"slashedAmount\":\"virtual amount of the collateral slashed\"}},\"slashableStake(bytes32,address,uint48,bytes)\":{\"params\":{\"captureTimestamp\":\"time point to get the stake amount at\",\"hints\":\"hints for the checkpoints' indexes\",\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"},\"returns\":{\"amount\":\"slashable amount of the stake\"}},\"staticDelegateCall(address,bytes)\":{\"details\":\"It allows to use this contract's storage on-chain.\",\"params\":{\"data\":\"data to make a delegatecall with\",\"target\":\"address of the contract to make a delegatecall to\"}}},\"version\":1},\"userdoc\":{\"events\":{\"Slash(bytes32,address,uint256,uint48)\":{\"notice\":\"Emitted when a slash is performed.\"}},\"kind\":\"user\",\"methods\":{\"BURNER_GAS_LIMIT()\":{\"notice\":\"Get a gas limit for the burner.\"},\"BURNER_RESERVE()\":{\"notice\":\"Get a reserve gas between the gas limit check and the burner's execution.\"},\"FACTORY()\":{\"notice\":\"Get the factory's address.\"},\"NETWORK_MIDDLEWARE_SERVICE()\":{\"notice\":\"Get the network middleware service's address.\"},\"TYPE()\":{\"notice\":\"Get the entity's type.\"},\"VAULT_FACTORY()\":{\"notice\":\"Get the vault factory's address.\"},\"cumulativeSlash(bytes32,address)\":{\"notice\":\"Get a cumulative slash amount for an operator on a subnetwork.\"},\"cumulativeSlashAt(bytes32,address,uint48,bytes)\":{\"notice\":\"Get a cumulative slash amount for an operator on a subnetwork until a given timestamp (inclusively) using a hint.\"},\"initialize(bytes)\":{\"notice\":\"Initialize this entity contract by using a given data.\"},\"isBurnerHook()\":{\"notice\":\"Get if the burner is needed to be called on a slashing.\"},\"latestSlashedCaptureTimestamp(bytes32,address)\":{\"notice\":\"Get the latest capture timestamp that was slashed on a subnetwork.\"},\"slash(bytes32,address,uint256,uint48,bytes)\":{\"notice\":\"Perform a slash using a subnetwork for a particular operator by a given amount using hints.\"},\"slashableStake(bytes32,address,uint48,bytes)\":{\"notice\":\"Get a slashable amount of a stake got at a given capture timestamp using hints.\"},\"staticDelegateCall(address,bytes)\":{\"notice\":\"Make a delegatecall from this contract to a given target contract with a particular data (always reverts with a return data).\"},\"vault()\":{\"notice\":\"Get the vault's address.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/contracts/hints/SlasherHints.sol\":\"SlasherHints\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol\":{\"keccak256\":\"0x6662ec4e5cefca03eeadd073e9469df8d2944bb2ee8ec8f7622c2c46aab5f225\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4d8544c6f8daa4d1bc215c6a72fe0acdb748664a105b0e5efc19295667521d45\",\"dweb:/ipfs/QmdGWqdnXT8S3RgCR6aV8XHZrsybieMQLLnug1NtpSjEXN\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0xc163fcf9bb10138631a9ba5564df1fa25db9adff73bd9ee868a8ae1858fe093a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9706d43a0124053d9880f6e31a59f31bc0a6a3dc1acd66ce0a16e1111658c5f6\",\"dweb:/ipfs/QmUFmfowzkRwGtDu36cXV9SPTBHJ3n7dG9xQiK5B28jTf2\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609\",\"dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9\",\"dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardUpgradeable.sol\":{\"keccak256\":\"0xb44e086e941292cdc7f440de51478493894ef0b1aeccb0c4047445919f667f74\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://942dad22fbdc1669f025540ba63aa3ccfad5f8458fc5d4525b31ebf272e7af45\",\"dweb:/ipfs/Qmdo4X2M82aM3AMoW2kf2jhYkSCyC4T1pHNd6obdsDFnAB\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol\":{\"keccak256\":\"0xdaba3f7c42c55b2896353f32bd27d4d5f8bae741b3b05d4c53f67abc4dc47ce8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1fa2e61141c602510bcd2cd936ed9561922ac8772a9b9c9a9db091a74e354a45\",\"dweb:/ipfs/QmcHQDDoEBwJmwUbzoVkytvJsBx3KVHYFFnDkvRGWh9Wmh\"]},\"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0xb6b36edd6a2999fd243ff226d6cbf84bd71af2432bbd0dfe19392996a1d9cb41\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1fd2f35495652e57e3f99bc6c510bc5f7dd398a176ea2e72d8ed730aebc6ca26\",\"dweb:/ipfs/QmTQV6X4gkikTib49cho5iDX3JvSQbdsoEChoDwrk3CbbH\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC1271.sol\":{\"keccak256\":\"0x85a45f3f10014a0f8be41157a32b6a5f905753ea64a4b64e29fc12b7deeecf39\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c3c74009ce36136b36c77c23935b8e4a7b4f253be2da2be4fb4a916b1ce43743\",\"dweb:/ipfs/QmcH36v3iN7SJJuF73AunLR2LtNxhVJ1wm63ph4dPZ4pcL\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC5267.sol\":{\"keccak256\":\"0x92aa1df62dc3d33f1656d63bede0923e0df0b706ad4137c8b10b0a8fe549fd92\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c5c0f29195ad64cbe556da8e257dac8f05f78c53f90323c0d2accf8e6922d33a\",\"dweb:/ipfs/QmQ61TED8uaCZwcbh8KkgRSsCav7x7HbcGHwHts3U4DmUP\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c\",\"dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0x6008dabfe393240d73d7dd7688033f72740d570aa422254d29a7dce8568f3aff\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f5196ec75139918c6c7bb4251b36395e668f1fa6d206beba7e7520e74913940d\",\"dweb:/ipfs/QmSyqjksXxmm2mCG6qRd1yuwLykypkSVBbnBnGqJRcuJMi\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x37bb49513c49c87c4642a891b13b63571bc87013dde806617aa1efb54605f386\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b3036b3a83b7c48f96641f2a9002b9f2dcb6a5958dd670894ada21ae8229b3d0\",\"dweb:/ipfs/QmUNfSBdoVtjhETaUJCYcaC7pTMgbhht926tJ2uXJbiVd3\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0xaf28a975a78550e45f65e559a3ad6a5ad43b9b8a37366999abd1b7084eb70721\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b7bd24e224f67f65bfadf85dc2929fa965456bb2415478bd0125471b5ce35245\",\"dweb:/ipfs/QmRaydGr8BTHs1kvaZfsNU69pKzUAGFrvABn1KiRSbE51y\"]},\"lib/openzeppelin-contracts/contracts/utils/ShortStrings.sol\":{\"keccak256\":\"0x18a7171df639a934592915a520ecb97c5bbc9675a1105607aac8a94e72bf62c6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7478e1f13da69a2867ccd883001d836b75620362e743f196376d63ed0c422a1c\",\"dweb:/ipfs/QmWywcQ9TNfwtoqAxbn25d8C5VrV12PrPS9UjtGe6pL2BA\"]},\"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0x32ba59b4b7299237c8ba56319110989d7978a039faf754793064e967e5894418\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1ae50c8b562427df610cc4540c9bf104acca7ef8e2dcae567ae7e52272281e9c\",\"dweb:/ipfs/QmTHiadFCSJUPpRjNegc5SahmeU8bAoY8i9Aq6tVscbcKR\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0x55f102ea785d8399c0e58d1108e2d289506dde18abc6db1b7f68c1f9f9bc5792\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e52e0a7765c943ef14e5bcf11e46e6139fa044be564881378349236bf2e3453\",\"dweb:/ipfs/QmZEeeXoFPW47amyP35gfzomF9DixqqTEPwzBakv6cZw6i\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0xeed0a08b0b091f528356cbc7245891a4c748682d4f6a18055e8e6ca77d12a6cf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba80ba06c8e6be852847e4c5f4492cef801feb6558ae09ed705ff2e04ea8b13c\",\"dweb:/ipfs/QmXRJDv3xHLVQCVXg1ZvR35QS9sij5y9NDWYzMfUfAdTHF\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/EIP712.sol\":{\"keccak256\":\"0x999f705a027ed6dc2d4e0df2cc4a509852c6bfd11de1c8161bf88832d0503fd0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0798def67258d9a3cc20b2b4da7ebf351a5cefe0abfdd665d2d81f8e32f89b21\",\"dweb:/ipfs/QmPEvJosnPfzHNjKvCv2D3891mA2Ww8eUwkqrxBjuYdHCt\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol\":{\"keccak256\":\"0xba333517a3add42cd35fe877656fc3dfcc9de53baa4f3aabbd6d12a92e4ea435\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2ceacff44c0fdc81e48e0e0b1db87a2076d3c1fb497341de077bf1da9f6b406c\",\"dweb:/ipfs/QmRUo1muMRAewxrKQ7TkXUtknyRoR57AyEkoPpiuZQ8FzX\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/SignatureChecker.sol\":{\"keccak256\":\"0x6b11eb41a228cca35d4b662b4df69fcd75192851365102690f57b2ac01e83fe6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ab006a2983ed350d2af21ddcdd835dcae3b8340086cc4d088460da5abd041f69\",\"dweb:/ipfs/QmbEacDhkJZiGrgzLjB4pNtE8Z1uudjDw1DvcDUTVQFsLG\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875\",\"dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0xe19a4d5f31d2861e7344e8e535e2feafb913d806d3e2b5fe7782741a2a7094fe\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4aed79c0fa6f0546ed02f2f683e8f77f0fd2ed7eb34d8bbf3d373c9a6d95b13c\",\"dweb:/ipfs/QmWqVz6UAVqmnWU5pqYPt1o6iDEZyPaBraAA3rKfTTSfYj\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x5f7e4076e175393767754387c962926577f1660dd9b810187b9002407656be72\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7d533a1c97cd43a57cd9c465f7ee8dd0e39ae93a8fb8ff8e5303a356b081cdcc\",\"dweb:/ipfs/QmVBEei6aTnvYNZp2CHYVNKyZS4q1KkjANfY39WVXZXVoT\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/Checkpoints.sol\":{\"keccak256\":\"0xbdc5e074d7dd6678f67e92b1a51a20226801a407b0e1af3da367c5d1ff4519ad\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a36cca6b22fff3db16fc789ff6c60eea71d4b156065d4d0c83a0bc5e91a77a8b\",\"dweb:/ipfs/QmYN3exd5AemxjBrN8XMB1p5LbbE16uC3sjbYjwi8AjcGR\"]},\"lib/openzeppelin-contracts/contracts/utils/types/Time.sol\":{\"keccak256\":\"0xc7755af115020049e4140f224f9ee88d7e1799ffb0646f37bf0df24bf6213f58\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7f09bf94d5274334ec021f61a04659db303f31e60460e14b709c9bf187740111\",\"dweb:/ipfs/QmNvgomZYUwFAt4cZbPWAiTeSZQreGehY9BK5xyVJsUttb\"]},\"src/contracts/common/Entity.sol\":{\"keccak256\":\"0x3d61a932995b8443381f3950542d388223a2c26dd5d29a3274dea3baa7388bd7\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://7cdf5f03ca72fd263fd32ff59c8d88ddca911ae83896a287d10772c1bbe9b138\",\"dweb:/ipfs/QmbP84r5BWT1Rn9AYTntWSf3xUMTTCohTZJFhbBhDXFoHa\"]},\"src/contracts/common/MigratableEntity.sol\":{\"keccak256\":\"0x2d736f4dacd5d7e7697503bc426c78b8250fe1694ca157965ec178da6807de58\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://f1237acf96b4b9f9b69156e068eddd726a6e15bd8e87a18dc999cd4ba4da069c\",\"dweb:/ipfs/QmS6M8fiFFSeuJ4ZKKq1z8W7w4ybeHQSy5TLASGoc1LVic\"]},\"src/contracts/common/StaticDelegateCallable.sol\":{\"keccak256\":\"0x350029aa8955eacaffffaeb58babc5c98e80ebc5c5db388ed17ee6465f4a9d90\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://eb392a8ee9050e0af606897df63e3404e3829e8b688b580663892f9664195764\",\"dweb:/ipfs/QmaXC8jqV8UrrAFkzXTEv2fJF56sy33HhLxAzaRZmUxuXD\"]},\"src/contracts/delegator/BaseDelegator.sol\":{\"keccak256\":\"0x7c54d491fdd4415b764a9c8defa068e56d4c0c8c9419be0053a1d377669290e8\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://9238bfbad0f6eeb0dc7727724de14380f1980b395902269703d5e2ef07e52e10\",\"dweb:/ipfs/QmPJn1V4HNXcEghYvogGuSTF24dSQUPosR5qtsXcmNqRm3\"]},\"src/contracts/delegator/FullRestakeDelegator.sol\":{\"keccak256\":\"0x0a81c4f8e72914563a9cb771e93acf889c71ea36b7bec040e4eb562b199d5af1\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://6fc66b6ba02da77046a0bbbd1dd407a62c08f52e04486c9cbd2cb1cca3da555f\",\"dweb:/ipfs/QmZQivK1ZnMxfRQQ5aLpV9co5u55wQVNev5Rg1hzAqxhkE\"]},\"src/contracts/delegator/NetworkRestakeDelegator.sol\":{\"keccak256\":\"0xd3a8e6522f9c6fdcc2da837c9023afd6bdff2bce45a35590320c475519e3636d\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://58b17a87f6554f08376f9ea7fedf486a4aa75801bf0ad8b23ff5a46959b6b7a3\",\"dweb:/ipfs/QmSTmNh67tYt8CmjVZb57r8N3qX5yeYdMApKPJm3qvQgQw\"]},\"src/contracts/delegator/OperatorNetworkSpecificDelegator.sol\":{\"keccak256\":\"0x031a10722b9ec49048f0952710401131290adb87e71caf294e864e7ac3b98a16\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://72428febc875134b2f29205e6f294634a1c22a7d5c78d6a9cb2f8196f107c9b5\",\"dweb:/ipfs/QmTPwXR6h5oytckmkLrHdKeEMdphJxceDhYUR4zvQeWAwY\"]},\"src/contracts/delegator/OperatorSpecificDelegator.sol\":{\"keccak256\":\"0x630ce62fa30b9f3349ab7a8cf8dbf041319febc6dd757be2f94d3d25944ed328\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://c2ac59d47ce57d2a6819ae9833e1a618a371eccff93eb5ab367b201b01f42bfa\",\"dweb:/ipfs/QmdBpGMBivpNPv2WbH8vnCUy5xkVeaxQvGgqi33vKCz1kA\"]},\"src/contracts/hints/DelegatorHints.sol\":{\"keccak256\":\"0x44aa0c396311a54afbc7c73e8dadeed41e3165a4fd13f712b27d63d50fc3376d\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://2f255214f3531fc707d88be0d56a7a0aed4180439316d099d760d9118aa83093\",\"dweb:/ipfs/QmZD1w5p1ukJSXumUAjvxwGmkPhn7vsr21Y2atLGEZR2oi\"]},\"src/contracts/hints/Hints.sol\":{\"keccak256\":\"0x8b565df1ae35993c097a9e642002782a8f451f6fd01809cad6bcd345bdf1b99c\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://99a19adb01e350a92f534095b3078229df1f2f83077992d75d58d8684be45971\",\"dweb:/ipfs/QmbmwcuswVbzvwHQFTtrJG86oV98GnfxqYTb8cV8u1acox\"]},\"src/contracts/hints/OptInServiceHints.sol\":{\"keccak256\":\"0x95d9407900d27b9f4a1233b772aeed809c07b2dc5b31cfc9fa77ca26514c49e5\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://a13a8877e312d7e6b8b85bde3668c5d84ff5ecc83f762cd573f2b7104c64eb42\",\"dweb:/ipfs/QmYV2J55acuGzCNnS3juABuUHY5U1xc8g8o9jwEyFFdeG5\"]},\"src/contracts/hints/SlasherHints.sol\":{\"keccak256\":\"0xd77c5f3bbb0265af8ecd947df88f6f9684e136d80052b5292f5b29aaa3566a3f\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://484a26504bf6706202ec82a9a4cfa7d196bbc552b5b78ced25bf7130c2842595\",\"dweb:/ipfs/QmaQqmkoZoUWEam4R94vmajzH3gKqFqpZQwFbrHDsN1peV\"]},\"src/contracts/hints/VaultHints.sol\":{\"keccak256\":\"0xccb505b7159b769cc114d67b87c2de6b106557f667fc8f3780114baad5c3c442\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://6d0c80a908fc16e96a8b5605a0bd53f9e89ad0ef0a738fbbae80ba4d3160749b\",\"dweb:/ipfs/QmXo5UtWoR8YmunqcbBU8rQMm1nvmvjNPoXcVrDhh4pEwR\"]},\"src/contracts/libraries/Checkpoints.sol\":{\"keccak256\":\"0xba90097c8bfe0a975499428b5f8ac5569483c7d92ccc28c12d70de416aae040c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://12f5d93ca94cd06d3147db68993165a58e17903ed53682560de61f3085ad4609\",\"dweb:/ipfs/QmePiuAqvXprMLmFZkGZeGjvGPAvsEDHfCDv7BoQhXu9xE\"]},\"src/contracts/libraries/ERC4626Math.sol\":{\"keccak256\":\"0x8441160513c1cbeb1c3b9ee077bcc7e7ce20006b52a77c8dd39ff0ef89699939\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://943f8cc3e26ddf649f465f40c909819f5c864717c4baa339e9e403b9374a4653\",\"dweb:/ipfs/QmXPxi1sUDsrGprZdUgCzoPEosaZMv9ZhygWQ1vAi1phAB\"]},\"src/contracts/libraries/Subnetwork.sol\":{\"keccak256\":\"0xf5ef5506fd66082b3c2e7f3df37529f5a8efad32ac62e7c8914bd63219190bfe\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba031a54ee0d0e9a270c2b9e18437f5668cfeb659cfd5fe0677459d7fcac2a56\",\"dweb:/ipfs/QmReP3H7qQ78tAfgLnJKsNEQNCQfF1X1Get38Ffd4kzq32\"]},\"src/contracts/service/OptInService.sol\":{\"keccak256\":\"0x4e0932077f2686b7990e10d59deb2535334c0d09e52ef6e57c6ab09eca21c4b1\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://7c00d311032ed4a1743aca7475f3c86ce15cdfc2218108efc3731c03d34a5278\",\"dweb:/ipfs/QmUGGfVwVhaHr5kS4177yKKYiLYzi5qZpkEmvYxBZqazxf\"]},\"src/contracts/slasher/BaseSlasher.sol\":{\"keccak256\":\"0x190e5dce196a061bdad42468c52e9f5b0eb7810cd7d0c19f04d6a2e94984f1b6\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://07ca08d0cd43c2fe5d54a5577f6bdd522ced410f5d3a52e764deaa7ba26b5f06\",\"dweb:/ipfs/QmZe3PiMKBQKWcwodaLupragdqxPjgS4v1qMC7RXau8hDF\"]},\"src/contracts/slasher/Slasher.sol\":{\"keccak256\":\"0xeee0cb25fad58d496fdcc641d852d11bae06e6ceed5230ae21150964175c494f\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://34aa27d21246a1bcee0b6a2afa8d9d613441156362430392f75d176511d58c61\",\"dweb:/ipfs/Qmf53Y3zdGfH4PU2zpSGeHZ8mMLzLXCtmkQrG5mnVJECQ3\"]},\"src/contracts/slasher/VetoSlasher.sol\":{\"keccak256\":\"0xeccc8128de5e1ad499c067feac1c526638fbbac1a18b96726fc7507969fd5897\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://cdfcf281338423625acbccdf8810115b258ef7cfe4aa3c10b8911ead1aa85429\",\"dweb:/ipfs/QmZFsDvZXpkFkx4PHcDXAVPN3ZCAahbSVfYpSVrMBvbt4k\"]},\"src/contracts/vault/Vault.sol\":{\"keccak256\":\"0x2ceff6ed3298c4cad144c99fcc79b51cb9397d6ebef00285b915848b476f8c2e\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://11f2fb3581854f3ab6e82e8d4935d9eb510c903a13c3f022346c2956a58f5307\",\"dweb:/ipfs/QmdUnoXoyYoG9SGWyQZCFyLDRUUX3eXyXetkRvw6jxqqBz\"]},\"src/contracts/vault/VaultStorage.sol\":{\"keccak256\":\"0x57db25b127d77ea3472de53e3a4af3354399655b9268638b99ca5925fa364a56\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://aa763d9a6ec508ae3abfb8228b72b9fd9525279e5135d4962e79ff059feb1173\",\"dweb:/ipfs/QmcbDR6E9wyEpu6V2FkEC4hnWy47zXA9LSKJde6zSGd33Q\"]},\"src/interfaces/common/IEntity.sol\":{\"keccak256\":\"0x8ef4b63d6da63489778ccd5f8d13ebdd527dd4b62730b2c616df5af7474d2d21\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a8d69576a9219d85c50816a18ad53a4d53cfcb27ed38b8cccc808dc2734b71b\",\"dweb:/ipfs/QmYVN3P4Q4REvBWJ97TbAcaxm3uyB2anV6NSGa6ZtSwcEv\"]},\"src/interfaces/common/IMigratableEntity.sol\":{\"keccak256\":\"0x8f5f2809f3afbe8ebfbb365dd7b57b4dd3b6f9943a6187eaf648d45895b8e3c4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ffe640537d539e7a4fde70d30d3e4c57f4ba9c2c25c450cea713aae38e8fd5c\",\"dweb:/ipfs/QmSUTGzvdcn1R1KB7tLThMRtESsfPbeXDhhhKWGtntzBds\"]},\"src/interfaces/common/IRegistry.sol\":{\"keccak256\":\"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014\",\"dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK\"]},\"src/interfaces/common/IStaticDelegateCallable.sol\":{\"keccak256\":\"0xa335d4e81b9071b7de66ef92b43ff20671d86516eb1be46fef29a3483cd3f5d5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d464b9db863c14c05547d2b23352f2e9b7b784799cf09f6bbc4906a2a74e3516\",\"dweb:/ipfs/QmUVWzFvJz7eEbDQKiFTTzwi7TEbjcs3VmwdM4kuptAKvi\"]},\"src/interfaces/delegator/IBaseDelegator.sol\":{\"keccak256\":\"0x96bb312f032e17accce3f8f80936d99468029d6b37c9ca74acdb4b026a0148ee\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2a66dcb5b7d1a6ef6a363431ea98ebd78bc4fdd3d7a134d9b542dc66e7d025c2\",\"dweb:/ipfs/QmRhTPLd2ZAyRHmJUFUcWKs9b3if49QY17LYZuRqWmghw8\"]},\"src/interfaces/delegator/IDelegatorHook.sol\":{\"keccak256\":\"0xc51aa8d7d1f6c8043ee819b7aeb86da0e993912e1442098df897e299f01f9f46\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://adddf5cb2ba282aeb576b26efb28640f865a1721cc9b6eee8b3ee0457a2c9780\",\"dweb:/ipfs/QmNYgAmnLRwWZbhTuQhZs9rx4zcme1df5mEepkrniorSoW\"]},\"src/interfaces/delegator/IFullRestakeDelegator.sol\":{\"keccak256\":\"0xa3c8cb2e45d4d8ce90e95263bea40c01dc400f05ad65bc29597d878606be5e7d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://782cf5e201aa4cca037ebafd3807a68ff1cc721d5b8416a35244db0d0607369e\",\"dweb:/ipfs/QmQkJks6x7CKndeTPa9LxgTNygD5uEi7obhADhpq1Lsr9A\"]},\"src/interfaces/delegator/INetworkRestakeDelegator.sol\":{\"keccak256\":\"0xe7030fe30389a147fd710e3436ec346b4842695fd3e65a81b95375c9f1d633fc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://739c7e66d301778054f5c90bee45ec9438f68afba8a03eaaac52064c73b115ad\",\"dweb:/ipfs/QmfZ2ytKcTykAc76nxhg8ikUXV8NdBpetqb8W4YWPcox1Z\"]},\"src/interfaces/delegator/IOperatorNetworkSpecificDelegator.sol\":{\"keccak256\":\"0x74b95e64d29769202d45dd277bb830f623ff3d41ce77b80ce3ee4e318a5c71ec\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e512b903aae5c1b8a028c6e3f4f6223b5cb5d704503cfa6bd37b5346868f5c20\",\"dweb:/ipfs/QmZim9YExsPWtyxyeui993HTKAEmrg8MUcSkZ77Gp2JcuZ\"]},\"src/interfaces/delegator/IOperatorSpecificDelegator.sol\":{\"keccak256\":\"0x72075cab585dc17240cc3e32bc99b92f0d5627ddd988fed680e3e1a52d5a01e4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7448bc90699409ae61d85216b5efc2143a37f0f73354be2aea993bc54afca441\",\"dweb:/ipfs/QmXE4gAxM8pHosZK8mcTcj17puBx484meDCcmrDePskGHZ\"]},\"src/interfaces/service/INetworkMiddlewareService.sol\":{\"keccak256\":\"0x347afc7fcf1fbcdb96d66162070ef6c78aed27b3af2c1d5dfb4e511840631783\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2d90b8ceb495159e8e4e95d76447719dd166443f67dfabdd942846162071595c\",\"dweb:/ipfs/QmVVuiAWYx92T6vBvNMKZfTvraCf1fa16BsUKkdNs3hdHA\"]},\"src/interfaces/service/IOptInService.sol\":{\"keccak256\":\"0x76fb5460a6d87a5705433d4fbeff7253cd75b8bbd0c888b2088f16e86ace146a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://990322019b3d11465f7024bae77ccbf7e2fe5d6fa3c754584778f37d04fa1337\",\"dweb:/ipfs/QmaSNHzcqxTkUCG9a4nqVfLECHLdjdrwAnDi3yDC7tDL24\"]},\"src/interfaces/slasher/IBaseSlasher.sol\":{\"keccak256\":\"0x7c82528b445659c313ab77335c407b0b6efe5e79027187bb287f7bc74202b404\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0274c90aa5df1aa6bb470a6aab53992fb14fd7e5472c9430416505b29647d9cf\",\"dweb:/ipfs/QmckbmJLDetPemVzCnnGcKYWAZV2BRFXGDsjiaec8jkHxx\"]},\"src/interfaces/slasher/IBurner.sol\":{\"keccak256\":\"0xaf495dacc19ae0b3c787ba8021c5944927d70261536addd234d7dab146158c2b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9b3cc66251008be6ff9fc8b11ecc6831d5a9dca49a3fe9817fcd970253c1d447\",\"dweb:/ipfs/QmVxfb9ALGdF9W3SN2h41gQbUct6tawvu5bw4K89kFQ4HW\"]},\"src/interfaces/slasher/ISlasher.sol\":{\"keccak256\":\"0x34d226d67a3d5e16571f2fac91a8b9773551bcc41c88a96279669dd78d192625\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a6e8c1462ee4a1b0f745414be043c09012ea676613790aba004b06c85c980d1\",\"dweb:/ipfs/QmadjNEbHKRthtA1EeNy3Kg2sXpejH2KBeHm8QZtBPvXbJ\"]},\"src/interfaces/slasher/IVetoSlasher.sol\":{\"keccak256\":\"0xdf7edd04a4f36e9aec3a15241dcb6b6315b2e64927b12710c2c410d571fc55e9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c4be6ac339c2ebf230fed65363f036784224095d0cd0f3f2d01d64d6e0da9508\",\"dweb:/ipfs/QmRSMbpfaHExqrzUA8vYZMYZWh6eQW1KX9JKJSLdgronfg\"]},\"src/interfaces/vault/IVault.sol\":{\"keccak256\":\"0xffee01d383cd4e1a5530c614bf4360c1ef070c288abec9da1eb531b51bc07235\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://04f0046cac285d8ec44ebbb1f79dc94fab4495767190cad8364fbc1fafaadfb9\",\"dweb:/ipfs/QmUawAunwzXfCyShWfhKeThAgKtqe51hmrxvrXvM772M2R\"]},\"src/interfaces/vault/IVaultStorage.sol\":{\"keccak256\":\"0x592626f13754194f83047135de19229c49390bd59e34659b1bb38be71d973a22\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://06a6a9dfddd05e580b32bebe2cff4f63ba26a653180676d58225dd30d9c89d3e\",\"dweb:/ipfs/QmdgzBeY6Sxo8mGtyBxtv1tM1c2kU6J6zjeRd7vuXm4DU6\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.25+commit.b61c2a91"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"baseSlasherHints","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"CheckpointUnorderedInsertion"},{"inputs":[],"type":"error","name":"ExternalCall"},{"inputs":[],"type":"error","name":"InsufficientBurnerGas"},{"inputs":[],"type":"error","name":"InsufficientSlash"},{"inputs":[],"type":"error","name":"InvalidCaptureTimestamp"},{"inputs":[],"type":"error","name":"InvalidInitialization"},{"inputs":[],"type":"error","name":"NoBurner"},{"inputs":[],"type":"error","name":"NotInitialized"},{"inputs":[],"type":"error","name":"NotInitializing"},{"inputs":[],"type":"error","name":"NotNetworkMiddleware"},{"inputs":[],"type":"error","name":"NotVault"},{"inputs":[],"type":"error","name":"ReentrancyGuardReentrantCall"},{"inputs":[{"internalType":"uint8","name":"bits","type":"uint8"},{"internalType":"uint256","name":"value","type":"uint256"}],"type":"error","name":"SafeCastOverflowedUintDowncast"},{"inputs":[{"internalType":"uint64","name":"version","type":"uint64","indexed":false}],"type":"event","name":"Initialized","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32","indexed":true},{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"uint256","name":"slashedAmount","type":"uint256","indexed":false},{"internalType":"uint48","name":"captureTimestamp","type":"uint48","indexed":false}],"type":"event","name":"Slash","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"BASE_SLASHER_HINTS","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"BURNER_GAS_LIMIT","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"BURNER_RESERVE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"FACTORY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"NETWORK_MIDDLEWARE_SERVICE","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"TYPE","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"VAULT_FACTORY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"cumulativeSlash","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint48","name":"timestamp","type":"uint48"},{"internalType":"bytes","name":"hint","type":"bytes"}],"stateMutability":"view","type":"function","name":"cumulativeSlashAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[],"stateMutability":"view","type":"function","name":"isBurnerHook","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"latestSlashedCaptureTimestamp","outputs":[{"internalType":"uint48","name":"value","type":"uint48"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint48","name":"captureTimestamp","type":"uint48"},{"internalType":"bytes","name":"hints","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"slash","outputs":[{"internalType":"uint256","name":"slashedAmount","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"slasher","type":"address"},{"internalType":"address","name":"msgSender","type":"address"},{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint48","name":"captureTimestamp","type":"uint48"}],"stateMutability":"view","type":"function","name":"slashHints","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint48","name":"captureTimestamp","type":"uint48"},{"internalType":"bytes","name":"hints","type":"bytes"}],"stateMutability":"view","type":"function","name":"slashableStake","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"staticDelegateCall"},{"inputs":[],"stateMutability":"view","type":"function","name":"vault","outputs":[{"internalType":"address","name":"","type":"address"}]}],"devdoc":{"kind":"dev","methods":{"cumulativeSlash(bytes32,address)":{"params":{"operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"},"returns":{"_0":"cumulative slash amount"}},"cumulativeSlashAt(bytes32,address,uint48,bytes)":{"params":{"hint":"hint for the checkpoint index","operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)","timestamp":"time point to get the cumulative slash amount until (inclusively)"},"returns":{"_0":"cumulative slash amount until the given timestamp (inclusively)"}},"initialize(bytes)":{"params":{"data":"some data to use"}},"slash(bytes32,address,uint256,uint48,bytes)":{"details":"Only a network middleware can call this function.","params":{"amount":"maximum amount of the collateral to be slashed","captureTimestamp":"time point when the stake was captured","hints":"hints for checkpoints' indexes","operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"},"returns":{"slashedAmount":"virtual amount of the collateral slashed"}},"slashableStake(bytes32,address,uint48,bytes)":{"params":{"captureTimestamp":"time point to get the stake amount at","hints":"hints for the checkpoints' indexes","operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"},"returns":{"amount":"slashable amount of the stake"}},"staticDelegateCall(address,bytes)":{"details":"It allows to use this contract's storage on-chain.","params":{"data":"data to make a delegatecall with","target":"address of the contract to make a delegatecall to"}}},"version":1},"userdoc":{"kind":"user","methods":{"BURNER_GAS_LIMIT()":{"notice":"Get a gas limit for the burner."},"BURNER_RESERVE()":{"notice":"Get a reserve gas between the gas limit check and the burner's execution."},"FACTORY()":{"notice":"Get the factory's address."},"NETWORK_MIDDLEWARE_SERVICE()":{"notice":"Get the network middleware service's address."},"TYPE()":{"notice":"Get the entity's type."},"VAULT_FACTORY()":{"notice":"Get the vault factory's address."},"cumulativeSlash(bytes32,address)":{"notice":"Get a cumulative slash amount for an operator on a subnetwork."},"cumulativeSlashAt(bytes32,address,uint48,bytes)":{"notice":"Get a cumulative slash amount for an operator on a subnetwork until a given timestamp (inclusively) using a hint."},"initialize(bytes)":{"notice":"Initialize this entity contract by using a given data."},"isBurnerHook()":{"notice":"Get if the burner is needed to be called on a slashing."},"latestSlashedCaptureTimestamp(bytes32,address)":{"notice":"Get the latest capture timestamp that was slashed on a subnetwork."},"slash(bytes32,address,uint256,uint48,bytes)":{"notice":"Perform a slash using a subnetwork for a particular operator by a given amount using hints."},"slashableStake(bytes32,address,uint48,bytes)":{"notice":"Get a slashable amount of a stake got at a given capture timestamp using hints."},"staticDelegateCall(address,bytes)":{"notice":"Make a delegatecall from this contract to a given target contract with a particular data (always reverts with a return data)."},"vault()":{"notice":"Get the vault's address."}},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/contracts/hints/SlasherHints.sol":"SlasherHints"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol":{"keccak256":"0x6662ec4e5cefca03eeadd073e9469df8d2944bb2ee8ec8f7622c2c46aab5f225","urls":["bzz-raw://4d8544c6f8daa4d1bc215c6a72fe0acdb748664a105b0e5efc19295667521d45","dweb:/ipfs/QmdGWqdnXT8S3RgCR6aV8XHZrsybieMQLLnug1NtpSjEXN"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol":{"keccak256":"0xc163fcf9bb10138631a9ba5564df1fa25db9adff73bd9ee868a8ae1858fe093a","urls":["bzz-raw://9706d43a0124053d9880f6e31a59f31bc0a6a3dc1acd66ce0a16e1111658c5f6","dweb:/ipfs/QmUFmfowzkRwGtDu36cXV9SPTBHJ3n7dG9xQiK5B28jTf2"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b","urls":["bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609","dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol":{"keccak256":"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397","urls":["bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9","dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardUpgradeable.sol":{"keccak256":"0xb44e086e941292cdc7f440de51478493894ef0b1aeccb0c4047445919f667f74","urls":["bzz-raw://942dad22fbdc1669f025540ba63aa3ccfad5f8458fc5d4525b31ebf272e7af45","dweb:/ipfs/Qmdo4X2M82aM3AMoW2kf2jhYkSCyC4T1pHNd6obdsDFnAB"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol":{"keccak256":"0xdaba3f7c42c55b2896353f32bd27d4d5f8bae741b3b05d4c53f67abc4dc47ce8","urls":["bzz-raw://1fa2e61141c602510bcd2cd936ed9561922ac8772a9b9c9a9db091a74e354a45","dweb:/ipfs/QmcHQDDoEBwJmwUbzoVkytvJsBx3KVHYFFnDkvRGWh9Wmh"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol":{"keccak256":"0xb6b36edd6a2999fd243ff226d6cbf84bd71af2432bbd0dfe19392996a1d9cb41","urls":["bzz-raw://1fd2f35495652e57e3f99bc6c510bc5f7dd398a176ea2e72d8ed730aebc6ca26","dweb:/ipfs/QmTQV6X4gkikTib49cho5iDX3JvSQbdsoEChoDwrk3CbbH"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC1271.sol":{"keccak256":"0x85a45f3f10014a0f8be41157a32b6a5f905753ea64a4b64e29fc12b7deeecf39","urls":["bzz-raw://c3c74009ce36136b36c77c23935b8e4a7b4f253be2da2be4fb4a916b1ce43743","dweb:/ipfs/QmcH36v3iN7SJJuF73AunLR2LtNxhVJ1wm63ph4dPZ4pcL"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC5267.sol":{"keccak256":"0x92aa1df62dc3d33f1656d63bede0923e0df0b706ad4137c8b10b0a8fe549fd92","urls":["bzz-raw://c5c0f29195ad64cbe556da8e257dac8f05f78c53f90323c0d2accf8e6922d33a","dweb:/ipfs/QmQ61TED8uaCZwcbh8KkgRSsCav7x7HbcGHwHts3U4DmUP"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70","urls":["bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c","dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol":{"keccak256":"0x6008dabfe393240d73d7dd7688033f72740d570aa422254d29a7dce8568f3aff","urls":["bzz-raw://f5196ec75139918c6c7bb4251b36395e668f1fa6d206beba7e7520e74913940d","dweb:/ipfs/QmSyqjksXxmm2mCG6qRd1yuwLykypkSVBbnBnGqJRcuJMi"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0x37bb49513c49c87c4642a891b13b63571bc87013dde806617aa1efb54605f386","urls":["bzz-raw://b3036b3a83b7c48f96641f2a9002b9f2dcb6a5958dd670894ada21ae8229b3d0","dweb:/ipfs/QmUNfSBdoVtjhETaUJCYcaC7pTMgbhht926tJ2uXJbiVd3"],"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/ShortStrings.sol":{"keccak256":"0x18a7171df639a934592915a520ecb97c5bbc9675a1105607aac8a94e72bf62c6","urls":["bzz-raw://7478e1f13da69a2867ccd883001d836b75620362e743f196376d63ed0c422a1c","dweb:/ipfs/QmWywcQ9TNfwtoqAxbn25d8C5VrV12PrPS9UjtGe6pL2BA"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol":{"keccak256":"0x32ba59b4b7299237c8ba56319110989d7978a039faf754793064e967e5894418","urls":["bzz-raw://1ae50c8b562427df610cc4540c9bf104acca7ef8e2dcae567ae7e52272281e9c","dweb:/ipfs/QmTHiadFCSJUPpRjNegc5SahmeU8bAoY8i9Aq6tVscbcKR"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0x55f102ea785d8399c0e58d1108e2d289506dde18abc6db1b7f68c1f9f9bc5792","urls":["bzz-raw://6e52e0a7765c943ef14e5bcf11e46e6139fa044be564881378349236bf2e3453","dweb:/ipfs/QmZEeeXoFPW47amyP35gfzomF9DixqqTEPwzBakv6cZw6i"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol":{"keccak256":"0xeed0a08b0b091f528356cbc7245891a4c748682d4f6a18055e8e6ca77d12a6cf","urls":["bzz-raw://ba80ba06c8e6be852847e4c5f4492cef801feb6558ae09ed705ff2e04ea8b13c","dweb:/ipfs/QmXRJDv3xHLVQCVXg1ZvR35QS9sij5y9NDWYzMfUfAdTHF"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/EIP712.sol":{"keccak256":"0x999f705a027ed6dc2d4e0df2cc4a509852c6bfd11de1c8161bf88832d0503fd0","urls":["bzz-raw://0798def67258d9a3cc20b2b4da7ebf351a5cefe0abfdd665d2d81f8e32f89b21","dweb:/ipfs/QmPEvJosnPfzHNjKvCv2D3891mA2Ww8eUwkqrxBjuYdHCt"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol":{"keccak256":"0xba333517a3add42cd35fe877656fc3dfcc9de53baa4f3aabbd6d12a92e4ea435","urls":["bzz-raw://2ceacff44c0fdc81e48e0e0b1db87a2076d3c1fb497341de077bf1da9f6b406c","dweb:/ipfs/QmRUo1muMRAewxrKQ7TkXUtknyRoR57AyEkoPpiuZQ8FzX"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/SignatureChecker.sol":{"keccak256":"0x6b11eb41a228cca35d4b662b4df69fcd75192851365102690f57b2ac01e83fe6","urls":["bzz-raw://ab006a2983ed350d2af21ddcdd835dcae3b8340086cc4d088460da5abd041f69","dweb:/ipfs/QmbEacDhkJZiGrgzLjB4pNtE8Z1uudjDw1DvcDUTVQFsLG"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b","urls":["bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df","dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d","urls":["bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875","dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol":{"keccak256":"0xe19a4d5f31d2861e7344e8e535e2feafb913d806d3e2b5fe7782741a2a7094fe","urls":["bzz-raw://4aed79c0fa6f0546ed02f2f683e8f77f0fd2ed7eb34d8bbf3d373c9a6d95b13c","dweb:/ipfs/QmWqVz6UAVqmnWU5pqYPt1o6iDEZyPaBraAA3rKfTTSfYj"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0x5f7e4076e175393767754387c962926577f1660dd9b810187b9002407656be72","urls":["bzz-raw://7d533a1c97cd43a57cd9c465f7ee8dd0e39ae93a8fb8ff8e5303a356b081cdcc","dweb:/ipfs/QmVBEei6aTnvYNZp2CHYVNKyZS4q1KkjANfY39WVXZXVoT"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/Checkpoints.sol":{"keccak256":"0xbdc5e074d7dd6678f67e92b1a51a20226801a407b0e1af3da367c5d1ff4519ad","urls":["bzz-raw://a36cca6b22fff3db16fc789ff6c60eea71d4b156065d4d0c83a0bc5e91a77a8b","dweb:/ipfs/QmYN3exd5AemxjBrN8XMB1p5LbbE16uC3sjbYjwi8AjcGR"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/types/Time.sol":{"keccak256":"0xc7755af115020049e4140f224f9ee88d7e1799ffb0646f37bf0df24bf6213f58","urls":["bzz-raw://7f09bf94d5274334ec021f61a04659db303f31e60460e14b709c9bf187740111","dweb:/ipfs/QmNvgomZYUwFAt4cZbPWAiTeSZQreGehY9BK5xyVJsUttb"],"license":"MIT"},"src/contracts/common/Entity.sol":{"keccak256":"0x3d61a932995b8443381f3950542d388223a2c26dd5d29a3274dea3baa7388bd7","urls":["bzz-raw://7cdf5f03ca72fd263fd32ff59c8d88ddca911ae83896a287d10772c1bbe9b138","dweb:/ipfs/QmbP84r5BWT1Rn9AYTntWSf3xUMTTCohTZJFhbBhDXFoHa"],"license":"BUSL-1.1"},"src/contracts/common/MigratableEntity.sol":{"keccak256":"0x2d736f4dacd5d7e7697503bc426c78b8250fe1694ca157965ec178da6807de58","urls":["bzz-raw://f1237acf96b4b9f9b69156e068eddd726a6e15bd8e87a18dc999cd4ba4da069c","dweb:/ipfs/QmS6M8fiFFSeuJ4ZKKq1z8W7w4ybeHQSy5TLASGoc1LVic"],"license":"BUSL-1.1"},"src/contracts/common/StaticDelegateCallable.sol":{"keccak256":"0x350029aa8955eacaffffaeb58babc5c98e80ebc5c5db388ed17ee6465f4a9d90","urls":["bzz-raw://eb392a8ee9050e0af606897df63e3404e3829e8b688b580663892f9664195764","dweb:/ipfs/QmaXC8jqV8UrrAFkzXTEv2fJF56sy33HhLxAzaRZmUxuXD"],"license":"BUSL-1.1"},"src/contracts/delegator/BaseDelegator.sol":{"keccak256":"0x7c54d491fdd4415b764a9c8defa068e56d4c0c8c9419be0053a1d377669290e8","urls":["bzz-raw://9238bfbad0f6eeb0dc7727724de14380f1980b395902269703d5e2ef07e52e10","dweb:/ipfs/QmPJn1V4HNXcEghYvogGuSTF24dSQUPosR5qtsXcmNqRm3"],"license":"BUSL-1.1"},"src/contracts/delegator/FullRestakeDelegator.sol":{"keccak256":"0x0a81c4f8e72914563a9cb771e93acf889c71ea36b7bec040e4eb562b199d5af1","urls":["bzz-raw://6fc66b6ba02da77046a0bbbd1dd407a62c08f52e04486c9cbd2cb1cca3da555f","dweb:/ipfs/QmZQivK1ZnMxfRQQ5aLpV9co5u55wQVNev5Rg1hzAqxhkE"],"license":"BUSL-1.1"},"src/contracts/delegator/NetworkRestakeDelegator.sol":{"keccak256":"0xd3a8e6522f9c6fdcc2da837c9023afd6bdff2bce45a35590320c475519e3636d","urls":["bzz-raw://58b17a87f6554f08376f9ea7fedf486a4aa75801bf0ad8b23ff5a46959b6b7a3","dweb:/ipfs/QmSTmNh67tYt8CmjVZb57r8N3qX5yeYdMApKPJm3qvQgQw"],"license":"BUSL-1.1"},"src/contracts/delegator/OperatorNetworkSpecificDelegator.sol":{"keccak256":"0x031a10722b9ec49048f0952710401131290adb87e71caf294e864e7ac3b98a16","urls":["bzz-raw://72428febc875134b2f29205e6f294634a1c22a7d5c78d6a9cb2f8196f107c9b5","dweb:/ipfs/QmTPwXR6h5oytckmkLrHdKeEMdphJxceDhYUR4zvQeWAwY"],"license":"BUSL-1.1"},"src/contracts/delegator/OperatorSpecificDelegator.sol":{"keccak256":"0x630ce62fa30b9f3349ab7a8cf8dbf041319febc6dd757be2f94d3d25944ed328","urls":["bzz-raw://c2ac59d47ce57d2a6819ae9833e1a618a371eccff93eb5ab367b201b01f42bfa","dweb:/ipfs/QmdBpGMBivpNPv2WbH8vnCUy5xkVeaxQvGgqi33vKCz1kA"],"license":"BUSL-1.1"},"src/contracts/hints/DelegatorHints.sol":{"keccak256":"0x44aa0c396311a54afbc7c73e8dadeed41e3165a4fd13f712b27d63d50fc3376d","urls":["bzz-raw://2f255214f3531fc707d88be0d56a7a0aed4180439316d099d760d9118aa83093","dweb:/ipfs/QmZD1w5p1ukJSXumUAjvxwGmkPhn7vsr21Y2atLGEZR2oi"],"license":"BUSL-1.1"},"src/contracts/hints/Hints.sol":{"keccak256":"0x8b565df1ae35993c097a9e642002782a8f451f6fd01809cad6bcd345bdf1b99c","urls":["bzz-raw://99a19adb01e350a92f534095b3078229df1f2f83077992d75d58d8684be45971","dweb:/ipfs/QmbmwcuswVbzvwHQFTtrJG86oV98GnfxqYTb8cV8u1acox"],"license":"BUSL-1.1"},"src/contracts/hints/OptInServiceHints.sol":{"keccak256":"0x95d9407900d27b9f4a1233b772aeed809c07b2dc5b31cfc9fa77ca26514c49e5","urls":["bzz-raw://a13a8877e312d7e6b8b85bde3668c5d84ff5ecc83f762cd573f2b7104c64eb42","dweb:/ipfs/QmYV2J55acuGzCNnS3juABuUHY5U1xc8g8o9jwEyFFdeG5"],"license":"BUSL-1.1"},"src/contracts/hints/SlasherHints.sol":{"keccak256":"0xd77c5f3bbb0265af8ecd947df88f6f9684e136d80052b5292f5b29aaa3566a3f","urls":["bzz-raw://484a26504bf6706202ec82a9a4cfa7d196bbc552b5b78ced25bf7130c2842595","dweb:/ipfs/QmaQqmkoZoUWEam4R94vmajzH3gKqFqpZQwFbrHDsN1peV"],"license":"BUSL-1.1"},"src/contracts/hints/VaultHints.sol":{"keccak256":"0xccb505b7159b769cc114d67b87c2de6b106557f667fc8f3780114baad5c3c442","urls":["bzz-raw://6d0c80a908fc16e96a8b5605a0bd53f9e89ad0ef0a738fbbae80ba4d3160749b","dweb:/ipfs/QmXo5UtWoR8YmunqcbBU8rQMm1nvmvjNPoXcVrDhh4pEwR"],"license":"BUSL-1.1"},"src/contracts/libraries/Checkpoints.sol":{"keccak256":"0xba90097c8bfe0a975499428b5f8ac5569483c7d92ccc28c12d70de416aae040c","urls":["bzz-raw://12f5d93ca94cd06d3147db68993165a58e17903ed53682560de61f3085ad4609","dweb:/ipfs/QmePiuAqvXprMLmFZkGZeGjvGPAvsEDHfCDv7BoQhXu9xE"],"license":"MIT"},"src/contracts/libraries/ERC4626Math.sol":{"keccak256":"0x8441160513c1cbeb1c3b9ee077bcc7e7ce20006b52a77c8dd39ff0ef89699939","urls":["bzz-raw://943f8cc3e26ddf649f465f40c909819f5c864717c4baa339e9e403b9374a4653","dweb:/ipfs/QmXPxi1sUDsrGprZdUgCzoPEosaZMv9ZhygWQ1vAi1phAB"],"license":"MIT"},"src/contracts/libraries/Subnetwork.sol":{"keccak256":"0xf5ef5506fd66082b3c2e7f3df37529f5a8efad32ac62e7c8914bd63219190bfe","urls":["bzz-raw://ba031a54ee0d0e9a270c2b9e18437f5668cfeb659cfd5fe0677459d7fcac2a56","dweb:/ipfs/QmReP3H7qQ78tAfgLnJKsNEQNCQfF1X1Get38Ffd4kzq32"],"license":"MIT"},"src/contracts/service/OptInService.sol":{"keccak256":"0x4e0932077f2686b7990e10d59deb2535334c0d09e52ef6e57c6ab09eca21c4b1","urls":["bzz-raw://7c00d311032ed4a1743aca7475f3c86ce15cdfc2218108efc3731c03d34a5278","dweb:/ipfs/QmUGGfVwVhaHr5kS4177yKKYiLYzi5qZpkEmvYxBZqazxf"],"license":"BUSL-1.1"},"src/contracts/slasher/BaseSlasher.sol":{"keccak256":"0x190e5dce196a061bdad42468c52e9f5b0eb7810cd7d0c19f04d6a2e94984f1b6","urls":["bzz-raw://07ca08d0cd43c2fe5d54a5577f6bdd522ced410f5d3a52e764deaa7ba26b5f06","dweb:/ipfs/QmZe3PiMKBQKWcwodaLupragdqxPjgS4v1qMC7RXau8hDF"],"license":"BUSL-1.1"},"src/contracts/slasher/Slasher.sol":{"keccak256":"0xeee0cb25fad58d496fdcc641d852d11bae06e6ceed5230ae21150964175c494f","urls":["bzz-raw://34aa27d21246a1bcee0b6a2afa8d9d613441156362430392f75d176511d58c61","dweb:/ipfs/Qmf53Y3zdGfH4PU2zpSGeHZ8mMLzLXCtmkQrG5mnVJECQ3"],"license":"BUSL-1.1"},"src/contracts/slasher/VetoSlasher.sol":{"keccak256":"0xeccc8128de5e1ad499c067feac1c526638fbbac1a18b96726fc7507969fd5897","urls":["bzz-raw://cdfcf281338423625acbccdf8810115b258ef7cfe4aa3c10b8911ead1aa85429","dweb:/ipfs/QmZFsDvZXpkFkx4PHcDXAVPN3ZCAahbSVfYpSVrMBvbt4k"],"license":"BUSL-1.1"},"src/contracts/vault/Vault.sol":{"keccak256":"0x2ceff6ed3298c4cad144c99fcc79b51cb9397d6ebef00285b915848b476f8c2e","urls":["bzz-raw://11f2fb3581854f3ab6e82e8d4935d9eb510c903a13c3f022346c2956a58f5307","dweb:/ipfs/QmdUnoXoyYoG9SGWyQZCFyLDRUUX3eXyXetkRvw6jxqqBz"],"license":"BUSL-1.1"},"src/contracts/vault/VaultStorage.sol":{"keccak256":"0x57db25b127d77ea3472de53e3a4af3354399655b9268638b99ca5925fa364a56","urls":["bzz-raw://aa763d9a6ec508ae3abfb8228b72b9fd9525279e5135d4962e79ff059feb1173","dweb:/ipfs/QmcbDR6E9wyEpu6V2FkEC4hnWy47zXA9LSKJde6zSGd33Q"],"license":"BUSL-1.1"},"src/interfaces/common/IEntity.sol":{"keccak256":"0x8ef4b63d6da63489778ccd5f8d13ebdd527dd4b62730b2c616df5af7474d2d21","urls":["bzz-raw://5a8d69576a9219d85c50816a18ad53a4d53cfcb27ed38b8cccc808dc2734b71b","dweb:/ipfs/QmYVN3P4Q4REvBWJ97TbAcaxm3uyB2anV6NSGa6ZtSwcEv"],"license":"MIT"},"src/interfaces/common/IMigratableEntity.sol":{"keccak256":"0x8f5f2809f3afbe8ebfbb365dd7b57b4dd3b6f9943a6187eaf648d45895b8e3c4","urls":["bzz-raw://0ffe640537d539e7a4fde70d30d3e4c57f4ba9c2c25c450cea713aae38e8fd5c","dweb:/ipfs/QmSUTGzvdcn1R1KB7tLThMRtESsfPbeXDhhhKWGtntzBds"],"license":"MIT"},"src/interfaces/common/IRegistry.sol":{"keccak256":"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb","urls":["bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014","dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK"],"license":"MIT"},"src/interfaces/common/IStaticDelegateCallable.sol":{"keccak256":"0xa335d4e81b9071b7de66ef92b43ff20671d86516eb1be46fef29a3483cd3f5d5","urls":["bzz-raw://d464b9db863c14c05547d2b23352f2e9b7b784799cf09f6bbc4906a2a74e3516","dweb:/ipfs/QmUVWzFvJz7eEbDQKiFTTzwi7TEbjcs3VmwdM4kuptAKvi"],"license":"MIT"},"src/interfaces/delegator/IBaseDelegator.sol":{"keccak256":"0x96bb312f032e17accce3f8f80936d99468029d6b37c9ca74acdb4b026a0148ee","urls":["bzz-raw://2a66dcb5b7d1a6ef6a363431ea98ebd78bc4fdd3d7a134d9b542dc66e7d025c2","dweb:/ipfs/QmRhTPLd2ZAyRHmJUFUcWKs9b3if49QY17LYZuRqWmghw8"],"license":"MIT"},"src/interfaces/delegator/IDelegatorHook.sol":{"keccak256":"0xc51aa8d7d1f6c8043ee819b7aeb86da0e993912e1442098df897e299f01f9f46","urls":["bzz-raw://adddf5cb2ba282aeb576b26efb28640f865a1721cc9b6eee8b3ee0457a2c9780","dweb:/ipfs/QmNYgAmnLRwWZbhTuQhZs9rx4zcme1df5mEepkrniorSoW"],"license":"MIT"},"src/interfaces/delegator/IFullRestakeDelegator.sol":{"keccak256":"0xa3c8cb2e45d4d8ce90e95263bea40c01dc400f05ad65bc29597d878606be5e7d","urls":["bzz-raw://782cf5e201aa4cca037ebafd3807a68ff1cc721d5b8416a35244db0d0607369e","dweb:/ipfs/QmQkJks6x7CKndeTPa9LxgTNygD5uEi7obhADhpq1Lsr9A"],"license":"MIT"},"src/interfaces/delegator/INetworkRestakeDelegator.sol":{"keccak256":"0xe7030fe30389a147fd710e3436ec346b4842695fd3e65a81b95375c9f1d633fc","urls":["bzz-raw://739c7e66d301778054f5c90bee45ec9438f68afba8a03eaaac52064c73b115ad","dweb:/ipfs/QmfZ2ytKcTykAc76nxhg8ikUXV8NdBpetqb8W4YWPcox1Z"],"license":"MIT"},"src/interfaces/delegator/IOperatorNetworkSpecificDelegator.sol":{"keccak256":"0x74b95e64d29769202d45dd277bb830f623ff3d41ce77b80ce3ee4e318a5c71ec","urls":["bzz-raw://e512b903aae5c1b8a028c6e3f4f6223b5cb5d704503cfa6bd37b5346868f5c20","dweb:/ipfs/QmZim9YExsPWtyxyeui993HTKAEmrg8MUcSkZ77Gp2JcuZ"],"license":"MIT"},"src/interfaces/delegator/IOperatorSpecificDelegator.sol":{"keccak256":"0x72075cab585dc17240cc3e32bc99b92f0d5627ddd988fed680e3e1a52d5a01e4","urls":["bzz-raw://7448bc90699409ae61d85216b5efc2143a37f0f73354be2aea993bc54afca441","dweb:/ipfs/QmXE4gAxM8pHosZK8mcTcj17puBx484meDCcmrDePskGHZ"],"license":"MIT"},"src/interfaces/service/INetworkMiddlewareService.sol":{"keccak256":"0x347afc7fcf1fbcdb96d66162070ef6c78aed27b3af2c1d5dfb4e511840631783","urls":["bzz-raw://2d90b8ceb495159e8e4e95d76447719dd166443f67dfabdd942846162071595c","dweb:/ipfs/QmVVuiAWYx92T6vBvNMKZfTvraCf1fa16BsUKkdNs3hdHA"],"license":"MIT"},"src/interfaces/service/IOptInService.sol":{"keccak256":"0x76fb5460a6d87a5705433d4fbeff7253cd75b8bbd0c888b2088f16e86ace146a","urls":["bzz-raw://990322019b3d11465f7024bae77ccbf7e2fe5d6fa3c754584778f37d04fa1337","dweb:/ipfs/QmaSNHzcqxTkUCG9a4nqVfLECHLdjdrwAnDi3yDC7tDL24"],"license":"MIT"},"src/interfaces/slasher/IBaseSlasher.sol":{"keccak256":"0x7c82528b445659c313ab77335c407b0b6efe5e79027187bb287f7bc74202b404","urls":["bzz-raw://0274c90aa5df1aa6bb470a6aab53992fb14fd7e5472c9430416505b29647d9cf","dweb:/ipfs/QmckbmJLDetPemVzCnnGcKYWAZV2BRFXGDsjiaec8jkHxx"],"license":"MIT"},"src/interfaces/slasher/IBurner.sol":{"keccak256":"0xaf495dacc19ae0b3c787ba8021c5944927d70261536addd234d7dab146158c2b","urls":["bzz-raw://9b3cc66251008be6ff9fc8b11ecc6831d5a9dca49a3fe9817fcd970253c1d447","dweb:/ipfs/QmVxfb9ALGdF9W3SN2h41gQbUct6tawvu5bw4K89kFQ4HW"],"license":"MIT"},"src/interfaces/slasher/ISlasher.sol":{"keccak256":"0x34d226d67a3d5e16571f2fac91a8b9773551bcc41c88a96279669dd78d192625","urls":["bzz-raw://7a6e8c1462ee4a1b0f745414be043c09012ea676613790aba004b06c85c980d1","dweb:/ipfs/QmadjNEbHKRthtA1EeNy3Kg2sXpejH2KBeHm8QZtBPvXbJ"],"license":"MIT"},"src/interfaces/slasher/IVetoSlasher.sol":{"keccak256":"0xdf7edd04a4f36e9aec3a15241dcb6b6315b2e64927b12710c2c410d571fc55e9","urls":["bzz-raw://c4be6ac339c2ebf230fed65363f036784224095d0cd0f3f2d01d64d6e0da9508","dweb:/ipfs/QmRSMbpfaHExqrzUA8vYZMYZWh6eQW1KX9JKJSLdgronfg"],"license":"MIT"},"src/interfaces/vault/IVault.sol":{"keccak256":"0xffee01d383cd4e1a5530c614bf4360c1ef070c288abec9da1eb531b51bc07235","urls":["bzz-raw://04f0046cac285d8ec44ebbb1f79dc94fab4495767190cad8364fbc1fafaadfb9","dweb:/ipfs/QmUawAunwzXfCyShWfhKeThAgKtqe51hmrxvrXvM772M2R"],"license":"MIT"},"src/interfaces/vault/IVaultStorage.sol":{"keccak256":"0x592626f13754194f83047135de19229c49390bd59e34659b1bb38be71d973a22","urls":["bzz-raw://06a6a9dfddd05e580b32bebe2cff4f63ba26a653180676d58225dd30d9c89d3e","dweb:/ipfs/QmdgzBeY6Sxo8mGtyBxtv1tM1c2kU6J6zjeRd7vuXm4DU6"],"license":"MIT"}},"version":1},"id":89} \ No newline at end of file diff --git a/out/SlasherHints.sol/VetoSlasherHints.json b/out/SlasherHints.sol/VetoSlasherHints.json index bb433b08..0d330ae9 100644 --- a/out/SlasherHints.sol/VetoSlasherHints.json +++ b/out/SlasherHints.sol/VetoSlasherHints.json @@ -1 +1 @@ -{"abi":[{"type":"constructor","inputs":[{"name":"baseSlasherHints","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"BASE_SLASHER_HINTS","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"BURNER_GAS_LIMIT","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"BURNER_RESERVE","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"FACTORY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"NETWORK_MIDDLEWARE_SERVICE","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"NETWORK_REGISTRY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"TYPE","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"VAULT_FACTORY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"cumulativeSlash","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"cumulativeSlashAt","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"timestamp","type":"uint48","internalType":"uint48"},{"name":"hint","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"executeSlash","inputs":[{"name":"slashIndex","type":"uint256","internalType":"uint256"},{"name":"hints","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"slashedAmount","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"executeSlashHints","inputs":[{"name":"slasher","type":"address","internalType":"address"},{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"captureTimestamp","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"initialize","inputs":[{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"isBurnerHook","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"latestSlashedCaptureTimestamp","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"value","type":"uint48","internalType":"uint48"}],"stateMutability":"view"},{"type":"function","name":"requestSlash","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"captureTimestamp","type":"uint48","internalType":"uint48"},{"name":"hints","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"slashIndex","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"requestSlashHints","inputs":[{"name":"slasher","type":"address","internalType":"address"},{"name":"msgSender","type":"address","internalType":"address"},{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"captureTimestamp","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"resolver","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"hint","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"resolverAt","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"timestamp","type":"uint48","internalType":"uint48"},{"name":"hint","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"resolverHint","inputs":[{"name":"slasher","type":"address","internalType":"address"},{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"timestamp","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"resolverHintInternal","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"timestamp","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"exists","type":"bool","internalType":"bool"},{"name":"hint","type":"uint32","internalType":"uint32"}],"stateMutability":"view"},{"type":"function","name":"resolverSetEpochsDelay","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"setResolver","inputs":[{"name":"identifier","type":"uint96","internalType":"uint96"},{"name":"resolver_","type":"address","internalType":"address"},{"name":"hints","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setResolverHints","inputs":[{"name":"slasher","type":"address","internalType":"address"},{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"timestamp","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"slashRequests","inputs":[{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"captureTimestamp","type":"uint48","internalType":"uint48"},{"name":"vetoDeadline","type":"uint48","internalType":"uint48"},{"name":"completed","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"slashRequestsLength","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"slashableStake","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"captureTimestamp","type":"uint48","internalType":"uint48"},{"name":"hints","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"staticDelegateCall","inputs":[{"name":"target","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"vault","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"vetoDuration","inputs":[],"outputs":[{"name":"","type":"uint48","internalType":"uint48"}],"stateMutability":"view"},{"type":"function","name":"vetoSlash","inputs":[{"name":"slashIndex","type":"uint256","internalType":"uint256"},{"name":"hints","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"vetoSlashHints","inputs":[{"name":"slasher","type":"address","internalType":"address"},{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"captureTimestamp","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"event","name":"ExecuteSlash","inputs":[{"name":"slashIndex","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"slashedAmount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"RequestSlash","inputs":[{"name":"slashIndex","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"subnetwork","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"slashAmount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"captureTimestamp","type":"uint48","indexed":false,"internalType":"uint48"},{"name":"vetoDeadline","type":"uint48","indexed":false,"internalType":"uint48"}],"anonymous":false},{"type":"event","name":"SetResolver","inputs":[{"name":"subnetwork","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"resolver","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"VetoSlash","inputs":[{"name":"slashIndex","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"resolver","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"error","name":"AlreadySet","inputs":[]},{"type":"error","name":"CheckpointUnorderedInsertion","inputs":[]},{"type":"error","name":"ExternalCall","inputs":[]},{"type":"error","name":"InsufficientBurnerGas","inputs":[]},{"type":"error","name":"InsufficientSlash","inputs":[]},{"type":"error","name":"InvalidCaptureTimestamp","inputs":[]},{"type":"error","name":"InvalidInitialization","inputs":[]},{"type":"error","name":"InvalidResolverSetEpochsDelay","inputs":[]},{"type":"error","name":"InvalidVetoDuration","inputs":[]},{"type":"error","name":"NoBurner","inputs":[]},{"type":"error","name":"NoResolver","inputs":[]},{"type":"error","name":"NotInitialized","inputs":[]},{"type":"error","name":"NotInitializing","inputs":[]},{"type":"error","name":"NotNetwork","inputs":[]},{"type":"error","name":"NotNetworkMiddleware","inputs":[]},{"type":"error","name":"NotResolver","inputs":[]},{"type":"error","name":"NotVault","inputs":[]},{"type":"error","name":"ReentrancyGuardReentrantCall","inputs":[]},{"type":"error","name":"SafeCastOverflowedUintDowncast","inputs":[{"name":"bits","type":"uint8","internalType":"uint8"},{"name":"value","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"SlashPeriodEnded","inputs":[]},{"type":"error","name":"SlashRequestCompleted","inputs":[]},{"type":"error","name":"SlashRequestNotExist","inputs":[]},{"type":"error","name":"VetoPeriodEnded","inputs":[]},{"type":"error","name":"VetoPeriodNotEnded","inputs":[]}],"bytecode":{"object":"0x6101603461017c576001600160401b0390601f61377c38819003918201601f1916830191848311848410176101805780849260209460405283398101031261017c5751906001600160a01b038216820361017c57306080527ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a009081549060ff8260401c1661016a578080831603610125575b835f60a0525f60c0525f60e052610100905f8252610120905f8252610140908152604051916135e79384610195853960805184610b66015260a0518461047b015260c0518481816115860152612c5a015260e0518481816102e801526122ba0152518381816104370152612444015251828181610c7801526115dc015251818181610806015281816119140152611d090152f35b6001600160401b031990911681179091556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a15f8080610091565b60405163f92ee8a960e01b8152600490fd5b5f80fd5b634e487b7160e01b5f52604160045260245ffdfe60806040526004361015610011575f80fd5b5f3560e01c80622a087514610213578063103f29071461020e5780631a2be2c4146102095780631dd5f60014610204578063267de1f3146101ff5780632964f8dc146101fa5780632c9d45b3146101f55780632dd31000146101f057806331ce4dfe146101eb57806334d098ea146101e6578063439fab91146101e1578063457821b7146101dc5780635264679b146101d7578063545ce389146101d257806369f78920146101cd5780638f42f9ab146101c85780638f82f931146101c35780639168f9d2146101be5780639a896551146101b95780639f86fd85146101b4578063a4ef9b4f146101af578063aa8e6489146101aa578063aab3595f146101a5578063b94c386e146101a0578063bb24fe8a1461019b578063bc6eac5b14610196578063c0cd7c3e14610191578063cd05b8a11461018c578063d5c24e1a14610187578063e054e08b14610182578063f9268d181461017d5763fbfa77cf14610178575f80fd5b611813565b6116a5565b611680565b611663565b61160b565b6115c7565b6115aa565b611567565b61121b565b6111c3565b611185565b611122565b61108e565b611003565b610bd8565b610b47565b610b2a565b610ae5565b61084f565b610835565b6107f1565b6106b9565b610668565b6105ff565b610466565b610422565b610406565b6103b1565b610397565b610317565b6102d3565b610261565b6001600160a01b0381160361022957565b5f80fd5b65ffffffffffff81160361022957565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b346102295760c0366003190112610229576102c56102b160043561028481610218565b61028f602435610218565b60643561029b81610218565b60a435916102a88361022d565b604435906118c9565b60405191829160208352602083019061023d565b0390f35b5f91031261022957565b34610229575f366003190112610229576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461022957604036600319011261022957602061036361035e60243561033c81610218565b6004355f526002845260405f209060018060a01b03165f5260205260405f2090565b6120d2565b604051908152f35b60609060031901126102295760043561038381610218565b90602435906044356103948161022d565b90565b34610229576102c56102b16103ab3661036b565b916119a0565b3461022957604036600319011261022957602065ffffffffffff6103fc6024356103da81610218565b6004355f526001845260405f209060018060a01b03165f5260205260405f2090565b5416604051908152f35b34610229575f366003190112610229576020604051614e208152f35b34610229575f366003190112610229576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b34610229575f366003190112610229576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b634e487b7160e01b5f52604160045260245ffd5b602081019081106001600160401b038211176104d957604052565b6104aa565b604081019081106001600160401b038211176104d957604052565b606081019081106001600160401b038211176104d957604052565b6001600160401b0381116104d957604052565b608081019081106001600160401b038211176104d957604052565b90601f801991011681019081106001600160401b038211176104d957604052565b6040519060c082018281106001600160401b038211176104d957604052565b6040519061058f826104f9565b565b6040519061058f826104de565b6001600160401b0381116104d957601f01601f191660200190565b81601f82011215610229578035906105d08261059e565b926105de6040519485610542565b8284526020838301011161022957815f926020809301838601378301015290565b346102295760603660031901126102295760243561061c8161022d565b604435906001600160401b0382116102295761065f61064160209336906004016105b9565b6004355f90815260068552604090206001600160a01b03939061214a565b16604051908152f35b34610229575f36600319011261022957602060ff5f5460a01c166040519015158152f35b9181601f84011215610229578235916001600160401b038311610229576020838186019501011161022957565b34610229576020366003190112610229576001600160401b03600435818111610229576106ea90369060040161068c565b5f80516020613592833981519152549260ff8460401c16159316801590816107e9575b60011490816107df575b1590816107d6575b506107c4575f80516020613592833981519152805467ffffffffffffffff1916600117905561075291836107a057612283565b61075857005b5f80516020613592833981519152805460ff60401b19169055604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a1005b5f80516020613592833981519152805460ff60401b1916600160401b179055612283565b60405163f92ee8a960e01b8152600490fd5b9050155f61071f565b303b159150610717565b84915061070d565b34610229575f366003190112610229576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b34610229576102c56102b16108493661036b565b91611a24565b346102295760a0366003190112610229576004602435813561087082610218565b6064359161087d8361022d565b6084356001600160401b0381116102295761089b903690860161068c565b93906108a56123ed565b6108ae8461241c565b6108b6611ab6565b9480610acf575b50506108c8426125ff565b6108e26108db875465ffffffffffff1690565b8092611b17565b5f54909590610907906108fb906001600160a01b031681565b6001600160a01b031690565b958760206040988951928380926327f843b560e11b82525afa8015610aca576109469261093b925f92610a99575b50611a0c565b65ffffffffffff1690565b65ffffffffffff8416908110908115610a83575b50610a735761096f61097891518486886127da565b506044356124b3565b958615610a65576102c5610a3e878988887f3cb7f4ff6cecf74cee0eb9ae3ebf8933fa60a53014cce52f96da72a78dba8464896109bd8a6109b8426125ff565b611b17565b92600354978894610a0e6109cf610563565b8881526001600160a01b0385166020820152808b018a905265ffffffffffff8616606082015265ffffffffffff831660808201525f60a0820152611b59565b885197885265ffffffffffff938416602089015290921660408701526001600160a01b0316949081906060820190565b0390a4610a5760015f8051602061357283398151915255565b519081529081906020820190565b855163167f871760e31b8152fd5b8551631357ac9160e11b81528790fd5b9050610a9161093b426125ff565b11155f61095a565b610abc91925060203d602011610ac3575b610ab48183610542565b810190611b31565b905f610935565b503d610aaa565b6118a5565b610add929550810190611ac9565b925f806108bd565b34610229576080366003190112610229576102c56102b1600435610b0881610218565b604435610b1481610218565b60643591610b218361022d565b60243590611c8f565b34610229575f366003190112610229576020600354604051908152f35b3461022957604036600319011261022957602435610b648161022d565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163303610bc65763ffffffff610bb16040926004355f526006602052835f206124e9565b91505083929192519215158352166020820152f35b604051637ca475e560e11b8152600490fd5b346102295760603660031901126102295760048035906bffffffffffffffffffffffff8216820361022957602435610c0f81610218565b6044356001600160401b03811161022957610c2d903690840161068c565b90610c366123ed565b610c3e611ab6565b5081610f9e575b5050604080516302910f8b60e31b8152338185019081526001600160a01b0395929491602091829082908190830103818a7f0000000000000000000000000000000000000000000000000000000000000000165afa908115610aca575f91610f71575b5015610f62575f54610ce3906001600160a01b0316936bffffffffffffffffffffffff166bffffffffffffffffffffffff193360601b161790565b95610cfe610cf9885f52600660205260405f2090565b61323a565b50949015610ef857610d1261093b426125ff565b65ffffffffffff9586161115610ec257610d3c610d37895f52600660205260405f2090565b6125c0565b505b610d616108fb6108fb6108fb610d5c8c5f52600660205260405f2090565b612e78565b91808716928303610dcd575b505050505050610db2907f7b0b759b513b299fd2811f51926dca8854222a675557e8d544ce0933bf5b7570925b516001600160a01b0390911681529081906020820190565b0390a2610dcb60015f8051602061357283398151915255565b005b610de48998959796985f52600660205260405f2090565b911692845163186a323160e21b815281818981885afa908115610aca575f91610ea5575b5081600554958751998a80926327f843b560e11b82525afa908115610aca5789610e6d610e7f977f7b0b759b513b299fd2811f51926dca8854222a675557e8d544ce0933bf5b75709c610e7495610db29d610e79985f92610e88575b50501690611dde565b9116611dff565b6125ff565b90613447565b82958495610d6d565b610e9e9250803d10610ac357610ab48183610542565b5f80610e64565b610ebc9150823d8411610ac357610ab48183610542565b5f610e08565b610ee06108fb6108fb6108fb610d5c8c5f52600660205260405f2090565b82871603610d3e57865163a741a04560e01b81528490fd5b5093949385169250508115610f54575091610db291610f4d7f7b0b759b513b299fd2811f51926dca8854222a675557e8d544ce0933bf5b757094610f44875f52600660205260405f2090565b610e79426125ff565b5050610d9a565b825163a741a04560e01b8152fd5b5083516323d53b9760e21b8152fd5b610f919150823d8411610f97575b610f898183610542565b810190611dca565b5f610ca8565b503d610f7f565b610faa91810190611ac9565b505f80610c45565b634e487b7160e01b5f52603260045260245ffd5b600354811015610ffe5760035f5260021b7fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b01905f90565b610fb2565b34610229576020366003190112610229576004356003548110156102295761102a90610fc6565b50805460018201546002830154600390930154604080519384526001600160a01b0390921660208401529082019290925265ffffffffffff808316606080840191909152603084901c90911660808301529190911c60ff16151560a082015260c090f35b34610229576040366003190112610229576004356110ab81610218565b6024356001600160401b038111610229575f916110cd8392369060040161068c565b90816040519283928337810184815203915af461111a6110eb611e0c565b9161110c60405193849215156020840152604080840152606083019061023d565b03601f198101835282610542565b805190602001fd5b34610229576102c56102b16111363661036b565b91611e6d565b906080600319830112610229576004359160243561115981610218565b916044356111668161022d565b91606435906001600160401b03821161022957610394916004016105b9565b346102295760206103636111be61119b3661113c565b939190925f526002865260405f209060018060a01b03165f5260205260405f2090565b612665565b346102295760206111df6111d63661113c565b929190916127da565b50604051908152f35b9060406003198301126102295760043591602435906001600160401b038211610229576112179160040161068c565b9091565b3461022957611229366111e8565b91906112336123ed565b61123b611f92565b9280611551575b505060035481101561153f5761125781610fc6565b50908154906112658261241c565b6003830180549365ffffffffffff9384861660018060a01b0361128a895183856119b7565b16151580611514575b806114fb575b6114e9576112af816112aa426125ff565b611a0c565b5f546112c5906108fb906001600160a01b031681565b96600460206040998a51928380926327f843b560e11b82525afa8015610aca5782915f916114ca575b50169116116114b957600183018054909861131993929188906001600160a01b0316910151926127da565b906113288160028501546124b3565b9687156114a85760601c60ff166114975792611450611443899461141b6114088b9687876102c59f6114168f9d8f9e6114569f61137286600160601b60ff60601b19825416179055565b8a54855461139491906001600160a01b0316885465ffffffffffff1691612a0a565b8a5485546113ad9189916001600160a01b031690612a8a565b8a5494546113cb906001600160a01b0316965465ffffffffffff1690565b976113d4610582565b9384526020840152818301525196879160208301919091604080606083019480518452602081015160208501520151910152565b03601f198101875286610542565b612bf6565b61143461142e855465ffffffffffff1690565b86612cff565b5494546001600160a01b031690565b915465ffffffffffff1690565b92612d7c565b81518381527f5cc28df3b54da9d06f805d87616ebf969c81310f2aa8369cb14ca50f815d411190602090a2610a5760015f8051602061357283398151915255565b8551633428e90760e01b8152600490fd5b865163167f871760e31b8152600490fd5b8551639ea153eb60e01b8152600490fd5b6114e3915060203d602011610ac357610ab48183610542565b5f6112ee565b60405163b62b15c760e01b8152600490fd5b5061150861093b426125ff565b868860301c1611611299565b506115386108fb61152c611527426125ff565b6119f0565b60208b015190856119b7565b1515611293565b604051637822972360e11b8152600490fd5b61155f929350810190611fb1565b905f80611242565b34610229575f3660031901126102295760206040516001600160401b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b34610229575f366003190112610229576020600554604051908152f35b34610229575f366003190112610229576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b34610229576040366003190112610229576024356001600160401b0381116102295761165161164060209236906004016105b9565b611649426125ff565b6004356119b7565b6040516001600160a01b039091168152f35b34610229575f366003190112610229576020604051620249f08152f35b34610229575f36600319011261022957602065ffffffffffff60045416604051908152f35b34610229576116b3366111e8565b906116bc6123ed565b6116c4612039565b91806117ff575b505060035482101561153f576116e082610fc6565b506003815491019182549165ffffffffffff9160018060a01b036117088251858716856119b7565b169182159182156117d6575b50506117c45733036117b25761172c61093b426125ff565b908260301c1611156117a15760601c60ff1661178f57805460ff60601b1916600160601b17905533907f7d3d269c851b72257a5194a401d151902e9be4347d555996dcff3ff86a077e925f80a3610dcb60015f8051602061357283398151915255565b604051633428e90760e01b8152600490fd5b60405162c457e560e81b8152600490fd5b604051635d154fe160e11b8152600490fd5b60405163dd1ebd9d60e01b8152600490fd5b6117f79250906108fb9160206117ee611527426125ff565b910151916119b7565b155f80611714565b61180c9250810190612052565b5f806116cb565b34610229575f366003190112610229575f546040516001600160a01b039091168152602090f35b81601f82011215610229578051906118518261059e565b9261185f6040519485610542565b8284526020838301011161022957815f9260208093018386015e8301015290565b906020828203126102295781516001600160401b03811161022957610394920161183a565b6040513d5f823e3d90fd5b604061039492602083525191602080820152019061023d565b604051632751749360e11b81526001600160a01b0391821660048201526024810192909252909116604482015265ffffffffffff9091166064820152606091905f81806084810103817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa908115610aca575f9161197e575b5080516119565750565b61110c919250610394906040519061196d826104be565b8152604051928391602083016118b0565b61199a91503d805f833e6119928183610542565b810190611880565b5f61194c565b92916119ae91606094611e6d565b80516119565750565b5f9081526006602052604090206001600160a01b03926119d892909161214a565b1690565b634e487b7160e01b5f52601160045260245ffd5b65ffffffffffff9081165f190191908211611a0757565b6119dc565b65ffffffffffff9182169082160391908211611a0757565b611a4590939293611a386060958483611e6d565b92611136611527426125ff565b815115801590611aac575b611a58575050565b611a999293509061110c6103949260405192611a73846104de565b83526020830190815260405194859360208086015251604080860152608085019061023d565b9051838203603f1901606085015261023d565b5080511515611a50565b60405190611ac3826104be565b60608252565b906020828203126102295781356001600160401b03928382116102295701906020828203126102295760405192611aff846104be565b823590811161022957611b1292016105b9565b815290565b91909165ffffffffffff80809416911601918211611a0757565b9081602091031261022957516103948161022d565b634e487b7160e01b5f525f60045260245ffd5b600354600160401b8110156104d957806001611b789201600355610fc6565b919091611c3b578051825560208101516001830180546001600160a01b0319166001600160a01b039290921691909117905561058f91611c219060a090600390604085015160028201550192611bee65ffffffffffff606083015116859065ffffffffffff1665ffffffffffff19825416179055565b60808101516bffffffffffff00000000000085549160301b16906bffffffffffff00000000000019161784550151151590565b815460ff60601b191690151560601b60ff60601b16179055565b611b46565b906103949160208152611c5f825160606020840152608083019061023d565b9060606040611c7f602086015194601f199586868303018487015261023d565b940151928285030191015261023d565b919093925f606095611ca2838287611e6d565b94611d05611cbc611cb5611527426125ff565b8484611e6d565b604051632751749360e11b81526001600160a01b039384166004820152602481019490945291909516604483015265ffffffffffff909316606482015292839081906084820190565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa918215610aca575f92611da1575b50825115801590611d97575b8015611d8d575b611d5d57505050565b61110c939450906103949291611d71610582565b9283526020830152604082015260405192839160208301611c40565b5081511515611d54565b5080511515611d4d565b611db69192503d805f833e6119928183610542565b905f611d41565b5190811515820361022957565b908160209103126102295761039490611dbd565b81810292918115918404141715611a0757565b9060018201809211611a0757565b91908201809211611a0757565b3d15611e36573d90611e1d8261059e565b91611e2b6040519384610542565b82523d5f602084013e565b606090565b519063ffffffff8216820361022957565b9190826040910312610229576103946020611e6684611dbd565b9301611e3b565b92915f8060609565ffffffffffff60405194602096638f82f93160e01b88880152602487015216604485015260448452611ea684610527565b6040519384611ed387820192639f86fd8560e01b845230602484015260406044840152606483019061023d565b0394611ee7601f1996878101835282610542565b51915afa50611f05611ef7611e0c565b838082518301019101612631565b9015611f5857808380611f1d93518301019101611e4c565b9290611f2857505050565b61039492939450611f4c604051948592830191909163ffffffff6020820193169052565b03908101835282610542565b809150519182156102295701fd5b5f9081526002602090815260408083206001600160a01b03909416835292905220610394929190612665565b60405190611f9f826104f9565b60606040838281528260208201520152565b906020828203126102295781356001600160401b03928382116102295701906060828203126102295760405192611fe7846104f9565b82358181116102295782611ffc9185016105b9565b8452602083013581811161022957826120169185016105b9565b602085015260408301359081116102295761203192016105b9565b604082015290565b60405190612046826104de565b60606020838281520152565b906020828203126102295781356001600160401b03928382116102295701906040828203126102295760405192612088846104de565b8235818111610229578261209d9185016105b9565b84526020830135908111610229576120b592016105b9565b602082015290565b8054821015610ffe575f5260205f2001905f90565b6120db81612e78565b6001600160d01b038116156121005760016120f692016120bd565b90549060031b1c90565b50505f90565b908160209103126102295761039490611e3b565b5f19810191908211611a0757565b91908203918211611a0757565b90600163ffffffff80931601918211611a0757565b9180511561222e578060208061216593518301019101612106565b916121708382612eb8565b92612181845165ffffffffffff1690565b9065ffffffffffff808516921682811461221557821191826121c0575b50506121ae576103949250613346565b5050602001516001600160d01b031690565b9091506121cd835461211a565b63ffffffff8316149182156121e6575b50505f8061219e565b61220d9192506122016121fb61093b92612135565b85612eb8565b5165ffffffffffff1690565b115f806121dd565b50505050602091909101516001600160d01b0316905090565b5061039491613346565b91909160408184031261022957803561225081610218565b9260208201356001600160401b0381116102295761039492016105b9565b90816020910312610229575161039481610218565b61228f91810190612238565b6040516302910f8b60e31b81526001600160a01b0392831660048201819052929160209182816024817f000000000000000000000000000000000000000000000000000000000000000088165afa908115610aca575f916123d0575b50156123be5781612320600492612300612f0c565b5f80546001600160a01b0319166001600160a01b03891617905586612f99565b94604051928380926313c085b760e11b82525afa918215610aca575f92612391575b5050161580612387575b612375575161058f9015155f805460ff60a01b191691151560a01b60ff60a01b16919091179055565b60405163d2420f5960e01b8152600490fd5b508051151561234c565b6123b09250803d106123b7575b6123a88183610542565b81019061226e565b5f80612342565b503d61239e565b6040516362df054560e01b8152600490fd5b6123e79150833d8511610f9757610f898183610542565b5f6122eb565b5f80516020613572833981519152600281541461240a5760029055565b604051633ee5aeb560e01b8152600490fd5b604051635daf681960e11b815260609190911c60048201526001600160a01b036020826024817f000000000000000000000000000000000000000000000000000000000000000085165afa918215610aca575f92612492575b503391160361248057565b60405163227bf64d60e01b8152600490fd5b6124ac91925060203d6020116123b7576123a88183610542565b905f612475565b90808210156124c0575090565b905090565b906040516124d2816104de565b915465ffffffffffff8116835260301c6020830152565b908154905f829160058411612572575b6125049350846131d8565b90811561256657612525906125188361211a565b905f5260205f20016124c5565b9161255f6125566125506020612541875165ffffffffffff1690565b9601516001600160d01b031690565b9361211a565b63ffffffff1690565b6001939291565b50505f905f905f905f90565b919261257d8161309a565b8103908111611a075761250493855f5265ffffffffffff808360205f20015416908516105f146125ae5750916124f9565b9291506125ba90611df1565b906124f9565b906125ca82612e78565b91805480156125eb575f1901906125e182826120bd565b611c3b575f905555565b634e487b7160e01b5f52603160045260245ffd5b65ffffffffffff90818111612612571690565b604490604051906306dfcc6560e41b8252603060048301526024820152fd5b9190916040818403126102295761264781611dbd565b9260208201516001600160401b03811161022957610394920161183a565b91805115612727578060208061268093518301019101612106565b9161268b8382613294565b9261269c845165ffffffffffff1690565b9065ffffffffffff808516921682811461271b57821191826126d2575b50506126c9576103949250613289565b50506020015190565b9091506126df835461211a565b63ffffffff8316149182156126f8575b50505f806126b9565b61271391925061220161270d61093b92612135565b85613294565b115f806126ef565b50505050506020015190565b5061039491613289565b906020828203126102295781516001600160401b03928382116102295701906040828203126102295760405192612767846104de565b8251818111610229578261277c91850161183a565b84526020830151908111610229576120b5920161183a565b90816020910312610229575190565b9081526001600160a01b03909116602082015265ffffffffffff90911660408201526080606082018190526103949291019061023d565b926127e3612039565b908051806129f0575b50506127f7426125ff565b5f54909490612810906108fb906001600160a01b031681565b93604051956327f843b560e11b875260209687816004818a5afa8015610aca576128449261093b925f926129d85750611a0c565b65ffffffffffff82169081109081156129c1575b8115612990575b50612984578560049560405196878092630ce9b79360e41b82525afa948515610aca576128b19587915f91612967575b50845190604051808099819463e02f693760e01b8352878b8a600486016127a3565b03916001600160a01b03165afa938415610aca57612923955f95612926575b5092612918859361291e9361291896869a61290f61035e836128fa875f52600260205260405f2090565b9060018060a01b03165f5260205260405f2090565b95015192611f66565b90612128565b6124b3565b91565b61291e929550612918949193612954612918928a3d8c11612960575b61294c8183610542565b810190612794565b969350939194506128d0565b503d612942565b61297e9150823d84116123b7576123a88183610542565b5f61288f565b5050505050505f905f90565b90506129ba61093b6129ae876128fa875f52600160205260405f2090565b5465ffffffffffff1690565b115f61285f565b90506129cf61093b426125ff565b81101590612858565b610abc9192508a3d8c11610ac357610ab48183610542565b612a039250602080918301019101612731565b5f806127ec565b919091805f52600160205265ffffffffffff80612a3a8560405f209060018060a01b03165f5260205260405f2090565b541690831611612a4957505050565b61058f92612a71915f52600160205260405f209060018060a01b03165f5260205260405f2090565b9065ffffffffffff1665ffffffffffff19825416179055565b9190825f526002602052612ae261035e612ab78360405f209060018060a01b03165f5260205260405f2090565b92612ac1426125ff565b955f52600260205260405f209060018060a01b03165f5260205260405f2090565b918201809211611a07576001810190815415612b86575b612b028161323a565b509490835495612b11846120d2565b5081612b71575b5015612b505750505f198301928311611a075761058f92612b38916120bd565b90919082549060031b91821b915f19901b1916179055565b61058f94612b6a926001600160d01b039091169190613447565b5050613323565b65ffffffffffff83811691161490505f612b18565b612b8f826132f6565b612af9565b60606020610394938184526001600160401b0381511682850152015191604080820152019061023d565b919360a093610394969565ffffffffffff938552600180871b031660208501526040840152166060820152816080820152019061023d565b92939060046020612c136108fb6108fb5f5460018060a01b031690565b604051630ce9b79360e41b815292839182905afa908115610aca5761110c91612c91915f91612ce0575b506001600160a01b031693612c50610591565b6001600160401b037f000000000000000000000000000000000000000000000000000000000000000016815290602082015260405192839160208301612b94565b823b15610229575f94612cbc86926040519889978896879563724ab0f760e11b875260048701612bbe565b03925af18015610aca57612ccd5750565b80612cda61058f92610514565b806102c9565b612cf9915060203d6020116123b7576123a88183610542565b5f612c3d565b65ffffffffffff9160446020925f60018060a01b038154166040519687958694631c9e38c760e21b865260048601521660248401525af18015610aca57612d435750565b612d5b9060203d6020116129605761294c8183610542565b50565b8115612d68570490565b634e487b7160e01b5f52601260045260245ffd5b92905f549060ff8260a01c16612d94575b5050505050565b6040516313c085b760e11b815291602090839060049082906001600160a01b03165afa918215610aca575f92612e51575b5060405163065c1e0360e01b6020820190815260248201969096526001600160a01b039091166044820152606481019390935265ffffffffffff9091166084830152612e1e8260a481015b03601f198101845283610542565b6202a15c5a10612e3f575f928380935192620249f0f1505f80808080612d8d565b604051632153f33560e21b8152600490fd5b612e1e9250612e71612e109160203d6020116123b7576123a88183610542565b9250612dc5565b805480612e855750505f90565b5f19918183810111611a07575f5260205f2001015460301c90565b60405190612ead826104de565b5f6020838281520152565b612edd91612ed791612ec8612ea0565b50612ed1612ea0565b506120bd565b506124c5565b65ffffffffffff81511690602060018060d01b039101511660405191612f02836104de565b8252602082015290565b612f146133d2565b612f1c6133d2565b60015f8051602061357283398151915255565b60405190612f3c826104be565b5f8252565b809103906060821261022957602060405192612f5c846104f9565b12610229576040908151612f6f816104be565b612f7882611dbd565b815283526020810151612f8a8161022d565b60208401520151604082015290565b90600490612fa5612f2f565b508051612fbc602092838080948301019101612f41565b6040516327f843b560e11b815290949093849182906001600160a01b03165afa918215610aca575f9261307b575b50820190612ffe825165ffffffffffff1690565b65ffffffffffff91821691161015613069576040820160038151106130575761304d613033613053935165ffffffffffff1690565b65ffffffffffff1665ffffffffffff196004541617600455565b51600555565b5190565b6040516354f778f360e01b8152600490fd5b6040516367d5e3df60e11b8152600490fd5b816130939293503d8411610ac357610ab48183610542565b905f612fea565b80156131d3578061316c61316561315b61315161314761313d61313361312960016103949a5f908b60801c806131c7575b508060401c806131ba575b508060201c806131ad575b508060101c806131a0575b508060081c80613193575b508060041c80613186575b508060021c80613179575b50821c613172575b811c1b613122818b612d5e565b0160011c90565b613122818a612d5e565b6131228189612d5e565b6131228188612d5e565b6131228187612d5e565b6131228186612d5e565b6131228185612d5e565b8092612d5e565b906124b3565b8101613115565b600291509101905f61310d565b600491509101905f613102565b600891509101905f6130f7565b601091509101905f6130ec565b602091509101905f6130e1565b604091509101905f6130d6565b9150506080905f6130cb565b505f90565b91905b8382106131e85750505090565b909192808316906001818518811c8301809311611a0757855f5265ffffffffffff808460205f20015416908516105f14613227575050925b91906131db565b909493508101809111611a075791613220565b80548061324b5750505f905f905f90565b5f19908082810111611a0757613268925f5260205f2001016124c5565b9065ffffffffffff82511691602060018060d01b0391015116906001929190565b906120db9082613346565b906132b7612ed76132d8926132a7612ea0565b506132b0612ea0565b50846120bd565b91600165ffffffffffff845116936020828060d01b039101511691016120bd565b905490604051926132e8846104de565b835260031b1c602082015290565b8054600160401b8110156104d957613313916001820181556120bd565b8154905f199060031b1b19169055565b90815491600160401b8310156104d95782612b3891600161058f950181556120bd565b908154905f829160058411613384575b6133619350846131d8565b8061336c5750505f90565b6133759061211a565b905f5260205f20015460301c90565b919261338f8161309a565b8103908111611a075761336193855f5265ffffffffffff808360205f20015416908516105f146133c0575091613356565b9291506133cc90611df1565b90613356565b60ff5f805160206135928339815191525460401c16156133ee57565b604051631afcd79f60e31b8152600490fd5b8054600160401b8110156104d95761341d916001820181556120bd565b611c3b57815160209092015160301b65ffffffffffff191665ffffffffffff909216919091179055565b8054929392919082156135485761347361346e6134638561211a565b835f5260205f200190565b6124c5565b90613484825165ffffffffffff1690565b65ffffffffffff84811691168110613536576134fa9460209488926134b261093b875165ffffffffffff1690565b036134fe57506134ec926134c86134d39261211a565b905f5260205f200190565b9065ffffffffffff82549181199060301b169116179055565b01516001600160d01b031690565b9190565b9150506135319161351e613510610591565b65ffffffffffff9093168352565b6001600160d01b03881682860152613400565b6134ec565b604051632520601d60e01b8152600490fd5b61356c9250613558613510610591565b6001600160d01b0385166020830152613400565b5f919056fe9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a264697066735822122076922ea6e3ad8fc57d79a3decbb6a526695968650fb8ee8d88110f7794fd659264736f6c63430008190033","sourceMap":"3563:3596:84:-:0;;;;-1:-1:-1;;;;;3563:3596:84;;;;;;;;;;-1:-1:-1;;3563:3596:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3563:3596:84;;;;;;348:4:82;332:21;;8837:64:25;3563:3596:84;;;;;;;;;7896:76:25;;3563:3596:84;;;;7985:34:25;7981:146;;-1:-1:-1;525:17:69;-1:-1:-1;525:17:69;;-1:-1:-1;552:12:69;;-1:-1:-1;2353:28:92;;2391:53;;-1:-1:-1;2391:53:92;;1620:34:94;;-1:-1:-1;1620:34:94;;3901:37:84;;;;3563:3596;;;;;;;;;332:21:82;3563:3596:84;;;;;525:17:69;3563:3596:84;;;;;552:12:69;3563:3596:84;;;;;;;;;;2353:28:92;3563:3596:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7981:146:25;-1:-1:-1;;;;;;3563:3596:84;;;;;;;;;;;;;8087:29:25;;3563:3596:84;;8087:29:25;7981:146;;;;;7896:76;3563:3596:84;;-1:-1:-1;;;7938:23:25;;;;;3563:3596:84;-1:-1:-1;3563:3596:84;;;;;;-1:-1:-1;3563:3596:84;;;;;-1:-1:-1;3563:3596:84","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361015610011575f80fd5b5f3560e01c80622a087514610213578063103f29071461020e5780631a2be2c4146102095780631dd5f60014610204578063267de1f3146101ff5780632964f8dc146101fa5780632c9d45b3146101f55780632dd31000146101f057806331ce4dfe146101eb57806334d098ea146101e6578063439fab91146101e1578063457821b7146101dc5780635264679b146101d7578063545ce389146101d257806369f78920146101cd5780638f42f9ab146101c85780638f82f931146101c35780639168f9d2146101be5780639a896551146101b95780639f86fd85146101b4578063a4ef9b4f146101af578063aa8e6489146101aa578063aab3595f146101a5578063b94c386e146101a0578063bb24fe8a1461019b578063bc6eac5b14610196578063c0cd7c3e14610191578063cd05b8a11461018c578063d5c24e1a14610187578063e054e08b14610182578063f9268d181461017d5763fbfa77cf14610178575f80fd5b611813565b6116a5565b611680565b611663565b61160b565b6115c7565b6115aa565b611567565b61121b565b6111c3565b611185565b611122565b61108e565b611003565b610bd8565b610b47565b610b2a565b610ae5565b61084f565b610835565b6107f1565b6106b9565b610668565b6105ff565b610466565b610422565b610406565b6103b1565b610397565b610317565b6102d3565b610261565b6001600160a01b0381160361022957565b5f80fd5b65ffffffffffff81160361022957565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b346102295760c0366003190112610229576102c56102b160043561028481610218565b61028f602435610218565b60643561029b81610218565b60a435916102a88361022d565b604435906118c9565b60405191829160208352602083019061023d565b0390f35b5f91031261022957565b34610229575f366003190112610229576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461022957604036600319011261022957602061036361035e60243561033c81610218565b6004355f526002845260405f209060018060a01b03165f5260205260405f2090565b6120d2565b604051908152f35b60609060031901126102295760043561038381610218565b90602435906044356103948161022d565b90565b34610229576102c56102b16103ab3661036b565b916119a0565b3461022957604036600319011261022957602065ffffffffffff6103fc6024356103da81610218565b6004355f526001845260405f209060018060a01b03165f5260205260405f2090565b5416604051908152f35b34610229575f366003190112610229576020604051614e208152f35b34610229575f366003190112610229576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b34610229575f366003190112610229576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b634e487b7160e01b5f52604160045260245ffd5b602081019081106001600160401b038211176104d957604052565b6104aa565b604081019081106001600160401b038211176104d957604052565b606081019081106001600160401b038211176104d957604052565b6001600160401b0381116104d957604052565b608081019081106001600160401b038211176104d957604052565b90601f801991011681019081106001600160401b038211176104d957604052565b6040519060c082018281106001600160401b038211176104d957604052565b6040519061058f826104f9565b565b6040519061058f826104de565b6001600160401b0381116104d957601f01601f191660200190565b81601f82011215610229578035906105d08261059e565b926105de6040519485610542565b8284526020838301011161022957815f926020809301838601378301015290565b346102295760603660031901126102295760243561061c8161022d565b604435906001600160401b0382116102295761065f61064160209336906004016105b9565b6004355f90815260068552604090206001600160a01b03939061214a565b16604051908152f35b34610229575f36600319011261022957602060ff5f5460a01c166040519015158152f35b9181601f84011215610229578235916001600160401b038311610229576020838186019501011161022957565b34610229576020366003190112610229576001600160401b03600435818111610229576106ea90369060040161068c565b5f80516020613592833981519152549260ff8460401c16159316801590816107e9575b60011490816107df575b1590816107d6575b506107c4575f80516020613592833981519152805467ffffffffffffffff1916600117905561075291836107a057612283565b61075857005b5f80516020613592833981519152805460ff60401b19169055604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a1005b5f80516020613592833981519152805460ff60401b1916600160401b179055612283565b60405163f92ee8a960e01b8152600490fd5b9050155f61071f565b303b159150610717565b84915061070d565b34610229575f366003190112610229576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b34610229576102c56102b16108493661036b565b91611a24565b346102295760a0366003190112610229576004602435813561087082610218565b6064359161087d8361022d565b6084356001600160401b0381116102295761089b903690860161068c565b93906108a56123ed565b6108ae8461241c565b6108b6611ab6565b9480610acf575b50506108c8426125ff565b6108e26108db875465ffffffffffff1690565b8092611b17565b5f54909590610907906108fb906001600160a01b031681565b6001600160a01b031690565b958760206040988951928380926327f843b560e11b82525afa8015610aca576109469261093b925f92610a99575b50611a0c565b65ffffffffffff1690565b65ffffffffffff8416908110908115610a83575b50610a735761096f61097891518486886127da565b506044356124b3565b958615610a65576102c5610a3e878988887f3cb7f4ff6cecf74cee0eb9ae3ebf8933fa60a53014cce52f96da72a78dba8464896109bd8a6109b8426125ff565b611b17565b92600354978894610a0e6109cf610563565b8881526001600160a01b0385166020820152808b018a905265ffffffffffff8616606082015265ffffffffffff831660808201525f60a0820152611b59565b885197885265ffffffffffff938416602089015290921660408701526001600160a01b0316949081906060820190565b0390a4610a5760015f8051602061357283398151915255565b519081529081906020820190565b855163167f871760e31b8152fd5b8551631357ac9160e11b81528790fd5b9050610a9161093b426125ff565b11155f61095a565b610abc91925060203d602011610ac3575b610ab48183610542565b810190611b31565b905f610935565b503d610aaa565b6118a5565b610add929550810190611ac9565b925f806108bd565b34610229576080366003190112610229576102c56102b1600435610b0881610218565b604435610b1481610218565b60643591610b218361022d565b60243590611c8f565b34610229575f366003190112610229576020600354604051908152f35b3461022957604036600319011261022957602435610b648161022d565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163303610bc65763ffffffff610bb16040926004355f526006602052835f206124e9565b91505083929192519215158352166020820152f35b604051637ca475e560e11b8152600490fd5b346102295760603660031901126102295760048035906bffffffffffffffffffffffff8216820361022957602435610c0f81610218565b6044356001600160401b03811161022957610c2d903690840161068c565b90610c366123ed565b610c3e611ab6565b5081610f9e575b5050604080516302910f8b60e31b8152338185019081526001600160a01b0395929491602091829082908190830103818a7f0000000000000000000000000000000000000000000000000000000000000000165afa908115610aca575f91610f71575b5015610f62575f54610ce3906001600160a01b0316936bffffffffffffffffffffffff166bffffffffffffffffffffffff193360601b161790565b95610cfe610cf9885f52600660205260405f2090565b61323a565b50949015610ef857610d1261093b426125ff565b65ffffffffffff9586161115610ec257610d3c610d37895f52600660205260405f2090565b6125c0565b505b610d616108fb6108fb6108fb610d5c8c5f52600660205260405f2090565b612e78565b91808716928303610dcd575b505050505050610db2907f7b0b759b513b299fd2811f51926dca8854222a675557e8d544ce0933bf5b7570925b516001600160a01b0390911681529081906020820190565b0390a2610dcb60015f8051602061357283398151915255565b005b610de48998959796985f52600660205260405f2090565b911692845163186a323160e21b815281818981885afa908115610aca575f91610ea5575b5081600554958751998a80926327f843b560e11b82525afa908115610aca5789610e6d610e7f977f7b0b759b513b299fd2811f51926dca8854222a675557e8d544ce0933bf5b75709c610e7495610db29d610e79985f92610e88575b50501690611dde565b9116611dff565b6125ff565b90613447565b82958495610d6d565b610e9e9250803d10610ac357610ab48183610542565b5f80610e64565b610ebc9150823d8411610ac357610ab48183610542565b5f610e08565b610ee06108fb6108fb6108fb610d5c8c5f52600660205260405f2090565b82871603610d3e57865163a741a04560e01b81528490fd5b5093949385169250508115610f54575091610db291610f4d7f7b0b759b513b299fd2811f51926dca8854222a675557e8d544ce0933bf5b757094610f44875f52600660205260405f2090565b610e79426125ff565b5050610d9a565b825163a741a04560e01b8152fd5b5083516323d53b9760e21b8152fd5b610f919150823d8411610f97575b610f898183610542565b810190611dca565b5f610ca8565b503d610f7f565b610faa91810190611ac9565b505f80610c45565b634e487b7160e01b5f52603260045260245ffd5b600354811015610ffe5760035f5260021b7fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b01905f90565b610fb2565b34610229576020366003190112610229576004356003548110156102295761102a90610fc6565b50805460018201546002830154600390930154604080519384526001600160a01b0390921660208401529082019290925265ffffffffffff808316606080840191909152603084901c90911660808301529190911c60ff16151560a082015260c090f35b34610229576040366003190112610229576004356110ab81610218565b6024356001600160401b038111610229575f916110cd8392369060040161068c565b90816040519283928337810184815203915af461111a6110eb611e0c565b9161110c60405193849215156020840152604080840152606083019061023d565b03601f198101835282610542565b805190602001fd5b34610229576102c56102b16111363661036b565b91611e6d565b906080600319830112610229576004359160243561115981610218565b916044356111668161022d565b91606435906001600160401b03821161022957610394916004016105b9565b346102295760206103636111be61119b3661113c565b939190925f526002865260405f209060018060a01b03165f5260205260405f2090565b612665565b346102295760206111df6111d63661113c565b929190916127da565b50604051908152f35b9060406003198301126102295760043591602435906001600160401b038211610229576112179160040161068c565b9091565b3461022957611229366111e8565b91906112336123ed565b61123b611f92565b9280611551575b505060035481101561153f5761125781610fc6565b50908154906112658261241c565b6003830180549365ffffffffffff9384861660018060a01b0361128a895183856119b7565b16151580611514575b806114fb575b6114e9576112af816112aa426125ff565b611a0c565b5f546112c5906108fb906001600160a01b031681565b96600460206040998a51928380926327f843b560e11b82525afa8015610aca5782915f916114ca575b50169116116114b957600183018054909861131993929188906001600160a01b0316910151926127da565b906113288160028501546124b3565b9687156114a85760601c60ff166114975792611450611443899461141b6114088b9687876102c59f6114168f9d8f9e6114569f61137286600160601b60ff60601b19825416179055565b8a54855461139491906001600160a01b0316885465ffffffffffff1691612a0a565b8a5485546113ad9189916001600160a01b031690612a8a565b8a5494546113cb906001600160a01b0316965465ffffffffffff1690565b976113d4610582565b9384526020840152818301525196879160208301919091604080606083019480518452602081015160208501520151910152565b03601f198101875286610542565b612bf6565b61143461142e855465ffffffffffff1690565b86612cff565b5494546001600160a01b031690565b915465ffffffffffff1690565b92612d7c565b81518381527f5cc28df3b54da9d06f805d87616ebf969c81310f2aa8369cb14ca50f815d411190602090a2610a5760015f8051602061357283398151915255565b8551633428e90760e01b8152600490fd5b865163167f871760e31b8152600490fd5b8551639ea153eb60e01b8152600490fd5b6114e3915060203d602011610ac357610ab48183610542565b5f6112ee565b60405163b62b15c760e01b8152600490fd5b5061150861093b426125ff565b868860301c1611611299565b506115386108fb61152c611527426125ff565b6119f0565b60208b015190856119b7565b1515611293565b604051637822972360e11b8152600490fd5b61155f929350810190611fb1565b905f80611242565b34610229575f3660031901126102295760206040516001600160401b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b34610229575f366003190112610229576020600554604051908152f35b34610229575f366003190112610229576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b34610229576040366003190112610229576024356001600160401b0381116102295761165161164060209236906004016105b9565b611649426125ff565b6004356119b7565b6040516001600160a01b039091168152f35b34610229575f366003190112610229576020604051620249f08152f35b34610229575f36600319011261022957602065ffffffffffff60045416604051908152f35b34610229576116b3366111e8565b906116bc6123ed565b6116c4612039565b91806117ff575b505060035482101561153f576116e082610fc6565b506003815491019182549165ffffffffffff9160018060a01b036117088251858716856119b7565b169182159182156117d6575b50506117c45733036117b25761172c61093b426125ff565b908260301c1611156117a15760601c60ff1661178f57805460ff60601b1916600160601b17905533907f7d3d269c851b72257a5194a401d151902e9be4347d555996dcff3ff86a077e925f80a3610dcb60015f8051602061357283398151915255565b604051633428e90760e01b8152600490fd5b60405162c457e560e81b8152600490fd5b604051635d154fe160e11b8152600490fd5b60405163dd1ebd9d60e01b8152600490fd5b6117f79250906108fb9160206117ee611527426125ff565b910151916119b7565b155f80611714565b61180c9250810190612052565b5f806116cb565b34610229575f366003190112610229575f546040516001600160a01b039091168152602090f35b81601f82011215610229578051906118518261059e565b9261185f6040519485610542565b8284526020838301011161022957815f9260208093018386015e8301015290565b906020828203126102295781516001600160401b03811161022957610394920161183a565b6040513d5f823e3d90fd5b604061039492602083525191602080820152019061023d565b604051632751749360e11b81526001600160a01b0391821660048201526024810192909252909116604482015265ffffffffffff9091166064820152606091905f81806084810103817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa908115610aca575f9161197e575b5080516119565750565b61110c919250610394906040519061196d826104be565b8152604051928391602083016118b0565b61199a91503d805f833e6119928183610542565b810190611880565b5f61194c565b92916119ae91606094611e6d565b80516119565750565b5f9081526006602052604090206001600160a01b03926119d892909161214a565b1690565b634e487b7160e01b5f52601160045260245ffd5b65ffffffffffff9081165f190191908211611a0757565b6119dc565b65ffffffffffff9182169082160391908211611a0757565b611a4590939293611a386060958483611e6d565b92611136611527426125ff565b815115801590611aac575b611a58575050565b611a999293509061110c6103949260405192611a73846104de565b83526020830190815260405194859360208086015251604080860152608085019061023d565b9051838203603f1901606085015261023d565b5080511515611a50565b60405190611ac3826104be565b60608252565b906020828203126102295781356001600160401b03928382116102295701906020828203126102295760405192611aff846104be565b823590811161022957611b1292016105b9565b815290565b91909165ffffffffffff80809416911601918211611a0757565b9081602091031261022957516103948161022d565b634e487b7160e01b5f525f60045260245ffd5b600354600160401b8110156104d957806001611b789201600355610fc6565b919091611c3b578051825560208101516001830180546001600160a01b0319166001600160a01b039290921691909117905561058f91611c219060a090600390604085015160028201550192611bee65ffffffffffff606083015116859065ffffffffffff1665ffffffffffff19825416179055565b60808101516bffffffffffff00000000000085549160301b16906bffffffffffff00000000000019161784550151151590565b815460ff60601b191690151560601b60ff60601b16179055565b611b46565b906103949160208152611c5f825160606020840152608083019061023d565b9060606040611c7f602086015194601f199586868303018487015261023d565b940151928285030191015261023d565b919093925f606095611ca2838287611e6d565b94611d05611cbc611cb5611527426125ff565b8484611e6d565b604051632751749360e11b81526001600160a01b039384166004820152602481019490945291909516604483015265ffffffffffff909316606482015292839081906084820190565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa918215610aca575f92611da1575b50825115801590611d97575b8015611d8d575b611d5d57505050565b61110c939450906103949291611d71610582565b9283526020830152604082015260405192839160208301611c40565b5081511515611d54565b5080511515611d4d565b611db69192503d805f833e6119928183610542565b905f611d41565b5190811515820361022957565b908160209103126102295761039490611dbd565b81810292918115918404141715611a0757565b9060018201809211611a0757565b91908201809211611a0757565b3d15611e36573d90611e1d8261059e565b91611e2b6040519384610542565b82523d5f602084013e565b606090565b519063ffffffff8216820361022957565b9190826040910312610229576103946020611e6684611dbd565b9301611e3b565b92915f8060609565ffffffffffff60405194602096638f82f93160e01b88880152602487015216604485015260448452611ea684610527565b6040519384611ed387820192639f86fd8560e01b845230602484015260406044840152606483019061023d565b0394611ee7601f1996878101835282610542565b51915afa50611f05611ef7611e0c565b838082518301019101612631565b9015611f5857808380611f1d93518301019101611e4c565b9290611f2857505050565b61039492939450611f4c604051948592830191909163ffffffff6020820193169052565b03908101835282610542565b809150519182156102295701fd5b5f9081526002602090815260408083206001600160a01b03909416835292905220610394929190612665565b60405190611f9f826104f9565b60606040838281528260208201520152565b906020828203126102295781356001600160401b03928382116102295701906060828203126102295760405192611fe7846104f9565b82358181116102295782611ffc9185016105b9565b8452602083013581811161022957826120169185016105b9565b602085015260408301359081116102295761203192016105b9565b604082015290565b60405190612046826104de565b60606020838281520152565b906020828203126102295781356001600160401b03928382116102295701906040828203126102295760405192612088846104de565b8235818111610229578261209d9185016105b9565b84526020830135908111610229576120b592016105b9565b602082015290565b8054821015610ffe575f5260205f2001905f90565b6120db81612e78565b6001600160d01b038116156121005760016120f692016120bd565b90549060031b1c90565b50505f90565b908160209103126102295761039490611e3b565b5f19810191908211611a0757565b91908203918211611a0757565b90600163ffffffff80931601918211611a0757565b9180511561222e578060208061216593518301019101612106565b916121708382612eb8565b92612181845165ffffffffffff1690565b9065ffffffffffff808516921682811461221557821191826121c0575b50506121ae576103949250613346565b5050602001516001600160d01b031690565b9091506121cd835461211a565b63ffffffff8316149182156121e6575b50505f8061219e565b61220d9192506122016121fb61093b92612135565b85612eb8565b5165ffffffffffff1690565b115f806121dd565b50505050602091909101516001600160d01b0316905090565b5061039491613346565b91909160408184031261022957803561225081610218565b9260208201356001600160401b0381116102295761039492016105b9565b90816020910312610229575161039481610218565b61228f91810190612238565b6040516302910f8b60e31b81526001600160a01b0392831660048201819052929160209182816024817f000000000000000000000000000000000000000000000000000000000000000088165afa908115610aca575f916123d0575b50156123be5781612320600492612300612f0c565b5f80546001600160a01b0319166001600160a01b03891617905586612f99565b94604051928380926313c085b760e11b82525afa918215610aca575f92612391575b5050161580612387575b612375575161058f9015155f805460ff60a01b191691151560a01b60ff60a01b16919091179055565b60405163d2420f5960e01b8152600490fd5b508051151561234c565b6123b09250803d106123b7575b6123a88183610542565b81019061226e565b5f80612342565b503d61239e565b6040516362df054560e01b8152600490fd5b6123e79150833d8511610f9757610f898183610542565b5f6122eb565b5f80516020613572833981519152600281541461240a5760029055565b604051633ee5aeb560e01b8152600490fd5b604051635daf681960e11b815260609190911c60048201526001600160a01b036020826024817f000000000000000000000000000000000000000000000000000000000000000085165afa918215610aca575f92612492575b503391160361248057565b60405163227bf64d60e01b8152600490fd5b6124ac91925060203d6020116123b7576123a88183610542565b905f612475565b90808210156124c0575090565b905090565b906040516124d2816104de565b915465ffffffffffff8116835260301c6020830152565b908154905f829160058411612572575b6125049350846131d8565b90811561256657612525906125188361211a565b905f5260205f20016124c5565b9161255f6125566125506020612541875165ffffffffffff1690565b9601516001600160d01b031690565b9361211a565b63ffffffff1690565b6001939291565b50505f905f905f905f90565b919261257d8161309a565b8103908111611a075761250493855f5265ffffffffffff808360205f20015416908516105f146125ae5750916124f9565b9291506125ba90611df1565b906124f9565b906125ca82612e78565b91805480156125eb575f1901906125e182826120bd565b611c3b575f905555565b634e487b7160e01b5f52603160045260245ffd5b65ffffffffffff90818111612612571690565b604490604051906306dfcc6560e41b8252603060048301526024820152fd5b9190916040818403126102295761264781611dbd565b9260208201516001600160401b03811161022957610394920161183a565b91805115612727578060208061268093518301019101612106565b9161268b8382613294565b9261269c845165ffffffffffff1690565b9065ffffffffffff808516921682811461271b57821191826126d2575b50506126c9576103949250613289565b50506020015190565b9091506126df835461211a565b63ffffffff8316149182156126f8575b50505f806126b9565b61271391925061220161270d61093b92612135565b85613294565b115f806126ef565b50505050506020015190565b5061039491613289565b906020828203126102295781516001600160401b03928382116102295701906040828203126102295760405192612767846104de565b8251818111610229578261277c91850161183a565b84526020830151908111610229576120b5920161183a565b90816020910312610229575190565b9081526001600160a01b03909116602082015265ffffffffffff90911660408201526080606082018190526103949291019061023d565b926127e3612039565b908051806129f0575b50506127f7426125ff565b5f54909490612810906108fb906001600160a01b031681565b93604051956327f843b560e11b875260209687816004818a5afa8015610aca576128449261093b925f926129d85750611a0c565b65ffffffffffff82169081109081156129c1575b8115612990575b50612984578560049560405196878092630ce9b79360e41b82525afa948515610aca576128b19587915f91612967575b50845190604051808099819463e02f693760e01b8352878b8a600486016127a3565b03916001600160a01b03165afa938415610aca57612923955f95612926575b5092612918859361291e9361291896869a61290f61035e836128fa875f52600260205260405f2090565b9060018060a01b03165f5260205260405f2090565b95015192611f66565b90612128565b6124b3565b91565b61291e929550612918949193612954612918928a3d8c11612960575b61294c8183610542565b810190612794565b969350939194506128d0565b503d612942565b61297e9150823d84116123b7576123a88183610542565b5f61288f565b5050505050505f905f90565b90506129ba61093b6129ae876128fa875f52600160205260405f2090565b5465ffffffffffff1690565b115f61285f565b90506129cf61093b426125ff565b81101590612858565b610abc9192508a3d8c11610ac357610ab48183610542565b612a039250602080918301019101612731565b5f806127ec565b919091805f52600160205265ffffffffffff80612a3a8560405f209060018060a01b03165f5260205260405f2090565b541690831611612a4957505050565b61058f92612a71915f52600160205260405f209060018060a01b03165f5260205260405f2090565b9065ffffffffffff1665ffffffffffff19825416179055565b9190825f526002602052612ae261035e612ab78360405f209060018060a01b03165f5260205260405f2090565b92612ac1426125ff565b955f52600260205260405f209060018060a01b03165f5260205260405f2090565b918201809211611a07576001810190815415612b86575b612b028161323a565b509490835495612b11846120d2565b5081612b71575b5015612b505750505f198301928311611a075761058f92612b38916120bd565b90919082549060031b91821b915f19901b1916179055565b61058f94612b6a926001600160d01b039091169190613447565b5050613323565b65ffffffffffff83811691161490505f612b18565b612b8f826132f6565b612af9565b60606020610394938184526001600160401b0381511682850152015191604080820152019061023d565b919360a093610394969565ffffffffffff938552600180871b031660208501526040840152166060820152816080820152019061023d565b92939060046020612c136108fb6108fb5f5460018060a01b031690565b604051630ce9b79360e41b815292839182905afa908115610aca5761110c91612c91915f91612ce0575b506001600160a01b031693612c50610591565b6001600160401b037f000000000000000000000000000000000000000000000000000000000000000016815290602082015260405192839160208301612b94565b823b15610229575f94612cbc86926040519889978896879563724ab0f760e11b875260048701612bbe565b03925af18015610aca57612ccd5750565b80612cda61058f92610514565b806102c9565b612cf9915060203d6020116123b7576123a88183610542565b5f612c3d565b65ffffffffffff9160446020925f60018060a01b038154166040519687958694631c9e38c760e21b865260048601521660248401525af18015610aca57612d435750565b612d5b9060203d6020116129605761294c8183610542565b50565b8115612d68570490565b634e487b7160e01b5f52601260045260245ffd5b92905f549060ff8260a01c16612d94575b5050505050565b6040516313c085b760e11b815291602090839060049082906001600160a01b03165afa918215610aca575f92612e51575b5060405163065c1e0360e01b6020820190815260248201969096526001600160a01b039091166044820152606481019390935265ffffffffffff9091166084830152612e1e8260a481015b03601f198101845283610542565b6202a15c5a10612e3f575f928380935192620249f0f1505f80808080612d8d565b604051632153f33560e21b8152600490fd5b612e1e9250612e71612e109160203d6020116123b7576123a88183610542565b9250612dc5565b805480612e855750505f90565b5f19918183810111611a07575f5260205f2001015460301c90565b60405190612ead826104de565b5f6020838281520152565b612edd91612ed791612ec8612ea0565b50612ed1612ea0565b506120bd565b506124c5565b65ffffffffffff81511690602060018060d01b039101511660405191612f02836104de565b8252602082015290565b612f146133d2565b612f1c6133d2565b60015f8051602061357283398151915255565b60405190612f3c826104be565b5f8252565b809103906060821261022957602060405192612f5c846104f9565b12610229576040908151612f6f816104be565b612f7882611dbd565b815283526020810151612f8a8161022d565b60208401520151604082015290565b90600490612fa5612f2f565b508051612fbc602092838080948301019101612f41565b6040516327f843b560e11b815290949093849182906001600160a01b03165afa918215610aca575f9261307b575b50820190612ffe825165ffffffffffff1690565b65ffffffffffff91821691161015613069576040820160038151106130575761304d613033613053935165ffffffffffff1690565b65ffffffffffff1665ffffffffffff196004541617600455565b51600555565b5190565b6040516354f778f360e01b8152600490fd5b6040516367d5e3df60e11b8152600490fd5b816130939293503d8411610ac357610ab48183610542565b905f612fea565b80156131d3578061316c61316561315b61315161314761313d61313361312960016103949a5f908b60801c806131c7575b508060401c806131ba575b508060201c806131ad575b508060101c806131a0575b508060081c80613193575b508060041c80613186575b508060021c80613179575b50821c613172575b811c1b613122818b612d5e565b0160011c90565b613122818a612d5e565b6131228189612d5e565b6131228188612d5e565b6131228187612d5e565b6131228186612d5e565b6131228185612d5e565b8092612d5e565b906124b3565b8101613115565b600291509101905f61310d565b600491509101905f613102565b600891509101905f6130f7565b601091509101905f6130ec565b602091509101905f6130e1565b604091509101905f6130d6565b9150506080905f6130cb565b505f90565b91905b8382106131e85750505090565b909192808316906001818518811c8301809311611a0757855f5265ffffffffffff808460205f20015416908516105f14613227575050925b91906131db565b909493508101809111611a075791613220565b80548061324b5750505f905f905f90565b5f19908082810111611a0757613268925f5260205f2001016124c5565b9065ffffffffffff82511691602060018060d01b0391015116906001929190565b906120db9082613346565b906132b7612ed76132d8926132a7612ea0565b506132b0612ea0565b50846120bd565b91600165ffffffffffff845116936020828060d01b039101511691016120bd565b905490604051926132e8846104de565b835260031b1c602082015290565b8054600160401b8110156104d957613313916001820181556120bd565b8154905f199060031b1b19169055565b90815491600160401b8310156104d95782612b3891600161058f950181556120bd565b908154905f829160058411613384575b6133619350846131d8565b8061336c5750505f90565b6133759061211a565b905f5260205f20015460301c90565b919261338f8161309a565b8103908111611a075761336193855f5265ffffffffffff808360205f20015416908516105f146133c0575091613356565b9291506133cc90611df1565b90613356565b60ff5f805160206135928339815191525460401c16156133ee57565b604051631afcd79f60e31b8152600490fd5b8054600160401b8110156104d95761341d916001820181556120bd565b611c3b57815160209092015160301b65ffffffffffff191665ffffffffffff909216919091179055565b8054929392919082156135485761347361346e6134638561211a565b835f5260205f200190565b6124c5565b90613484825165ffffffffffff1690565b65ffffffffffff84811691168110613536576134fa9460209488926134b261093b875165ffffffffffff1690565b036134fe57506134ec926134c86134d39261211a565b905f5260205f200190565b9065ffffffffffff82549181199060301b169116179055565b01516001600160d01b031690565b9190565b9150506135319161351e613510610591565b65ffffffffffff9093168352565b6001600160d01b03881682860152613400565b6134ec565b604051632520601d60e01b8152600490fd5b61356c9250613558613510610591565b6001600160d01b0385166020830152613400565b5f919056fe9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a264697066735822122076922ea6e3ad8fc57d79a3decbb6a526695968650fb8ee8d88110f7794fd659264736f6c63430008190033","sourceMap":"3563:3596:84:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;-1:-1:-1;;;;;3563:3596:84;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;3563:3596:84;;;;;;;;-1:-1:-1;;3563:3596:84;;;;:::o;:::-;;;;;;-1:-1:-1;;3563:3596:84;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::o;:::-;;;;;;-1:-1:-1;;3563:3596:84;;;;;;1435:38:92;-1:-1:-1;;;;;3563:3596:84;;;;;;;;;;;;-1:-1:-1;;3563:3596:84;;;;;2936:47:92;:38;3563:3596:84;;;;;:::i;:::-;;;-1:-1:-1;3563:3596:84;2936:16:92;3563:3596:84;;;-1:-1:-1;3563:3596:84;;;;;;;;;;;;;;;;;2936:38:92;:47;:::i;:::-;3563:3596:84;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;-1:-1:-1;;3563:3596:84;;;;;;1788:109:92;3563:3596:84;;;;;:::i;:::-;;;-1:-1:-1;3563:3596:84;1788:109:92;3563:3596:84;;;-1:-1:-1;3563:3596:84;;;;;;;;;;;;;;;;;1788:109:92;3563:3596:84;;;;;;;;;;;;;;-1:-1:-1;;3563:3596:84;;;;;;;1374:6:92;3563:3596:84;;;;;;;;;-1:-1:-1;;3563:3596:84;;;;;;1528:51:92;-1:-1:-1;;;;;3563:3596:84;;;;;;;;;;;;-1:-1:-1;;3563:3596:84;;;;;;322:32:69;-1:-1:-1;;;;;3563:3596:84;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3563:3596:84;;;;;;;:::o;:::-;;:::i;:::-;;;;;;;-1:-1:-1;;;;;3563:3596:84;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;3563:3596:84;;;;;;;:::o;:::-;-1:-1:-1;;;;;3563:3596:84;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;3563:3596:84;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;3563:3596:84;;;;;;;:::o;:::-;;;;;;;;;;-1:-1:-1;;;;;3563:3596:84;;;;;;;:::o;:::-;;;;;;;:::i;:::-;:::o;:::-;;;;;;;:::i;:::-;-1:-1:-1;;;;;3563:3596:84;;;;;;-1:-1:-1;;3563:3596:84;;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;3563:3596:84;;;;;;;;;;;;;;:::o;:::-;;;;;;-1:-1:-1;;3563:3596:84;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;3563:3596:84;;;;2016:56:94;3563:3596:84;;;;;;;;:::i;:::-;;;-1:-1:-1;3563:3596:84;;;2016:9:94;3563:3596:84;;;;;-1:-1:-1;;;;;3563:3596:84;;2016:56:94;:::i;:::-;3563:3596:84;;;;;;;;;;;;;-1:-1:-1;;3563:3596:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3563:3596:84;;;;;;;;;;;;;;;:::o;:::-;;;;;;-1:-1:-1;;3563:3596:84;;;;-1:-1:-1;;;;;3563:3596:84;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;3563:3596:84;;;;;;;4301:16:25;3563:3596:84;;4726:16:25;;:34;;;;3563:3596:84;4805:1:25;4790:16;:50;;;;3563:3596:84;4855:13:25;:30;;;;3563:3596:84;4851:91:25;;;-1:-1:-1;;;;;;;;;;;3563:3596:84;;-1:-1:-1;;3563:3596:84;;;;;718:4:69;;4951:18:25;4979:67;;718:4:69;:::i;:::-;5066:101:25;;3563:3596:84;5066:101:25;-1:-1:-1;;;;;;;;;;;3563:3596:84;;-1:-1:-1;;;;3563:3596:84;;;;;-1:-1:-1;3563:3596:84;;5142:14:25;;3563:3596:84;;5142:14:25;3563:3596:84;4979:67:25;-1:-1:-1;;;;;;;;;;;3563:3596:84;;-1:-1:-1;;;;3563:3596:84;-1:-1:-1;;;3563:3596:84;;;718:4:69;:::i;4851:91:25:-;3563:3596:84;;-1:-1:-1;;;4908:23:25;;3563:3596:84;;4908:23:25;4855:30;4872:13;;;4855:30;;;4790:50;4818:4;4810:25;:30;;-1:-1:-1;4790:50:25;;4726:34;;;-1:-1:-1;4726:34:25;;3563:3596:84;;;;;;-1:-1:-1;;3563:3596:84;;;;;;3726:43;-1:-1:-1;;;;;3563:3596:84;;;;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;-1:-1:-1;;3563:3596:84;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;3563:3596:84;;;;;;;;;;;:::i;:::-;3217:103:28;;;;:::i;:::-;2123:10:92;;;:::i;:::-;3563:3596:84;;:::i;:::-;2666:16:94;;2662:105;;3563:3596:84;837:15:62;;819:34;837:15;819:34;:::i;:::-;2813:31:94;3563:3596:84;;;;;;;;2813:31:94;;;:::i;:::-;-1:-1:-1;3563:3596:84;;;;2847:27:94;;:13;;-1:-1:-1;;;;;3563:3596:84;2847:13:94;3563:3596:84;;-1:-1:-1;;;;;3563:3596:84;;;2847:27:94;3563:3596:84;;;;;;;;;;;;;;2847:29:94;;;;;;;;2794:82;2847:29;2813:63;2847:29;-1:-1:-1;2847:29:94;;;3563:3596:84;2813:63:94;;:::i;:::-;3563:3596:84;;;;2794:82:94;3563:3596:84;;;2794:82:94;;;:138;;;;;3563:3596:84;2777:223:94;;;3248:62:92;3019:133:94;3104:37;;3248:62:92;;;;:::i;:::-;3563:3596:84;;;3019:133:94;:::i;:::-;3166:11;;;3162:68;;3563:3596:84;3671:86:94;837:15:62;;;;3671:86:94;837:15:62;3262:31:94;837:15:62;819:34;837:15;819:34;:::i;:::-;3262:31:94;:::i;:::-;3563:3596:84;3317:13:94;3563:3596:84;;;;3347:308:94;3563:3596:84;;:::i;:::-;;;;-1:-1:-1;;;;;3563:3596:84;;;3379:266:94;;3563:3596:84;3379:266:94;;;3563:3596:84;;;;;;;3379:266:94;;3563:3596:84;;;;;3379:266:94;;3563:3596:84;-1:-1:-1;3563:3596:84;3379:266:94;;3563:3596:84;3347:308:94;:::i;:::-;3563:3596:84;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3563:3596:84;;;;;;;;;;3671:86:94;;;;3282:1:28;1805;-1:-1:-1;;;;;;;;;;;3563:3596:84;3716:283:28;3282:1;3563:3596:84;;;;;;;;;;;;3162:68:94;3563:3596:84;;-1:-1:-1;;;3200:19:94;;;2777:223;3563:3596:84;;-1:-1:-1;;;2964:25:94;;3563:3596:84;;2964:25:94;2794:138;837:15:62;;2896:36:94;819:34:62;837:15;819:34;:::i;2896:36:94:-;-1:-1:-1;2896:36:94;2794:138;;;2847:29;;;;;3563:3596:84;2847:29:94;3563:3596:84;2847:29:94;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;;:::i;2662:105::-;2718:38;;;;;;;;:::i;:::-;2662:105;;;;;3563:3596:84;;;;;;-1:-1:-1;;3563:3596:84;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;-1:-1:-1;;3563:3596:84;;;;;1795:13:94;3563:3596:84;;;;;;;;;;;;;-1:-1:-1;;3563:3596:84;;;;;;;;;:::i;:::-;449:5:82;-1:-1:-1;;;;;3563:3596:84;435:10:82;:19;431:71;;3563:3596:84;4136:60;3563:3596;;;;-1:-1:-1;3563:3596:84;4136:9;3563:3596;;;-1:-1:-1;3563:3596:84;4136:60;:::i;:::-;3563:3596;;;;;;;;;;;;;;;;;;;431:71:82;3563:3596:84;;-1:-1:-1;;;477:14:82;;3563:3596:84;;477:14:82;3563:3596:84;;;;;;-1:-1:-1;;3563:3596:84;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;3563:3596:84;;;;;;;;;;;:::i;:::-;3217:103:28;;;:::i;:::-;3563:3596:84;;:::i;:::-;;7493:16:94;7489:103;;3563:3596:84;-1:-1:-1;;3563:3596:84;;;-1:-1:-1;;;7607:48:94;;7644:10;7607:48;;;3563:3596:84;;;-1:-1:-1;;;;;3563:3596:84;;;;;;;;;;;;;;7607:48:94;7617:16;;;3563:3596:84;7607:48:94;;;;;;;-1:-1:-1;7607:48:94;;;3563:3596:84;7606:49:94;;7602:99;;-1:-1:-1;3563:3596:84;7764:35:94;;-1:-1:-1;;;;;3563:3596:84;7644:10:94;3563:3596:84;;-1:-1:-1;;7644:10:94;297:2:88;3563:3596:84;;267:46:88;;152:169;7764:35:94;7850:21;5260:30:86;7850:21:94;;3563:3596:84;;7850:9:94;3563:3596:84;;;;;;;7850:21:94;5260:30:86;:::i;:::-;-1:-1:-1;7900:801:94;;;;;7930:34;819::62;837:15;819:34;:::i;7930::94:-;3563:3596:84;;;;7930:34:94;;;;7984:27;:21;;3563:3596:84;;7850:9:94;3563:3596:84;;;;;;;7984:21:94;:27;:::i;:::-;;7926:225;8169:61;8182:48;8190:39;4928:20:86;8198:21:94;;3563:3596:84;;7850:9:94;3563:3596:84;;;;;;;8198:21:94;4928:20:86;:::i;8169:61:94:-;3563:3596:84;;;;8169:61:94;;;8165:336;;7926:225;7900:801;;;;;;8716:34;7900:801;8716:34;7900:801;;3563:3596:84;-1:-1:-1;;;;;3563:3596:84;;;;;;;;;;;;;8716:34:94;;;;3282:1:28;1805;-1:-1:-1;;;;;;;;;;;3563:3596:84;3716:283:28;3282:1;3563:3596:84;8165:336:94;8250:21;;;;;;;3563:3596:84;;7850:9:94;3563:3596:84;;;;;;;8250:21:94;3563:3596:84;;;;;;;;8299:34:94;;;;;;;;;;;;;;-1:-1:-1;8299:34:94;;;8165:336;3563:3596:84;;8336:22:94;3563:3596:84;;;;;;;;;;;8361:30:94;;;;;;;;;;8336:55;8167:38:60;8361:30:94;8716:34;8361:30;8299:92;8361:30;8716:34;8361:30;8298:130;8361:30;-1:-1:-1;8361:30:94;;;8165:336;3563:3596:84;;;8336:55:94;;:::i;:::-;3563:3596:84;;8299:92:94;:::i;:::-;8298:130;:::i;:::-;8167:38:60;;:::i;:::-;8165:336:94;;;;;;8361:30;;;;;;-1:-1:-1;8361:30:94;;;;;;:::i;:::-;;;;;8299:34;;;;;;;;;;;;;;:::i;:::-;;;;7926:225;8036:61;8049:48;8057:39;4928:20:86;8065:21:94;;3563:3596:84;;7850:9:94;3563:3596:84;;;;;;;8036:61:94;3563:3596:84;;;8036:61:94;7926:225;8032:119;3563:3596:84;;-1:-1:-1;;;8124:12:94;;3563:3596:84;;8124:12:94;7900:801;-1:-1:-1;3563:3596:84;;;;;;-1:-1:-1;;8535:23:94;;8531:81;;8626:21;;8716:34;8626:21;8167:38:60;8716:34:94;8626:21;;;3563:3596:84;;7850:9:94;3563:3596:84;;;;;;;8626:21:94;819:34:62;837:15;819:34;:::i;8167:38:60:-;7900:801:94;;;;8531:81;3563:3596:84;;-1:-1:-1;;;8585:12:94;;;7602:99;-1:-1:-1;3563:3596:84;;-1:-1:-1;;;7678:12:94;;;7607:48;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;7489:103;7544:37;;;;;;:::i;:::-;;7489:103;;;;3563:3596:84;;;;;;;;;;;;;1050:35:94;3563:3596:84;;;;;;1050:35:94;-1:-1:-1;3563:3596:84;;;;;;-1:-1:-1;3563:3596:84;:::o;:::-;;:::i;:::-;;;;;;-1:-1:-1;;3563:3596:84;;;;;;1050:35:94;3563:3596:84;1050:35:94;;;;;;;;:::i;:::-;-1:-1:-1;3563:3596:84;;;1050:35:94;;3563:3596:84;1050:35:94;;;3563:3596:84;1050:35:94;;;;3563:3596:84;;;;;;;-1:-1:-1;;;;;3563:3596:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;3563:3596:84;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;3563:3596:84;;;;-1:-1:-1;3563:3596:84;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;416:25:75;;;;477:31;416:25;;:::i;:::-;3563:3596:84;;;;;;;;;;477:31:75;;3563:3596:84;;;;;;;;;;;:::i;:::-;477:31:75;3563:3596:84;;477:31:75;;;;;;:::i;:::-;518:79;;;3563:3596:84;518:79:75;;3563:3596:84;;;;;;;;;:::i;:::-;;;:::i;:::-;;;-1:-1:-1;;3563:3596:84;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;-1:-1:-1;;;;;3563:3596:84;;;;;;;;;:::i;:::-;;;;;2692:73:92;:38;3563:3596:84;;;:::i;:::-;;;;;-1:-1:-1;3563:3596:84;2692:16:92;3563:3596:84;;;-1:-1:-1;3563:3596:84;;;;;;;;;;;;;;;;;2692:38:92;:73;:::i;3563:3596:84:-;;;;;3248:62:92;3563:3596:84;;;:::i;:::-;3248:62:92;;;;;:::i;:::-;3563:3596:84;;;;;;;;;;-1:-1:-1;;3563:3596:84;;;;;;;;;;;-1:-1:-1;;;;;3563:3596:84;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;:::i;:::-;3217:103:28;;;;:::i;:::-;3563:3596:84;;:::i;:::-;4024:16:94;;4020:105;;3563:3596:84;;;4153:13:94;3563:3596:84;4139:34:94;;;4135:94;;4270:25;;;:::i;:::-;3563:3596:84;;;;4330:18:94;;;;:::i;:::-;4153:13;4408:24;;3563:3596:84;;;;;;;;;;;;;4377:95:94;4434:37;;4377:95;;;:::i;:::-;3563:3596:84;4377:125:94;;:250;;;3563:3596:84;4377:309:94;;;3563:3596:84;4360:389:94;;4763:43;837:15:62;819:34;837:15;819:34;:::i;:::-;4763:43:94;:::i;:::-;-1:-1:-1;3563:3596:84;4809:27:94;;:13;;-1:-1:-1;;;;;3563:3596:84;4809:13:94;3563:3596:84;4809:27:94;3563:3596:84;;4809:29:94;3563:3596:84;;;;;;;;;;;4809:29:94;;;;;;;;;;-1:-1:-1;4809:29:94;;;3563:3596:84;;;;;4763:75:94;4759:131;;4994:16;;;3563:3596:84;;4994:16:94;;4945:140;;4994:16;;3563:3596:84;;-1:-1:-1;;;;;3563:3596:84;5038:37:94;;;4945:140;;:::i;:::-;5120:14;5111:41;5120:14;;;;3563:3596:84;5111:41:94;:::i;:::-;5166:18;;;5162:75;;3563:3596:84;;;;5247:78:94;;5335:24;3563:3596:84;;5335:24:94;;5725:145;;5335:24;;;;3563:3596:84;5335:24:94;5725:145;5335:24;;;;6024;5335;;;3563:3596:84;;;;;;;;;;;;;;5335:24:94;3563:3596:84;;;;5445:24:94;;3563:3596:84;-1:-1:-1;;;;;3563:3596:84;;;;;5445:24:94;;:::i;:::-;3563:3596:84;;;;5542:13:94;;3563:3596:84;;-1:-1:-1;;;;;3563:3596:84;5542:13:94;;:::i;:::-;3563:3596:84;;;;;;-1:-1:-1;;;;;3563:3596:84;;;;;;;;;;;:::i;:::-;;;;4809:29:94;5753:103;;3563:3596:84;5753:103:94;;;3563:3596:84;;5725:145:94;;;4809:29;5725:145;;3563:3596:84;;;;;;;;;;;;;;;;;;;;;;;;;;;5725:145:94;;3563:3596:84;;5725:145:94;;;;;;:::i;:::-;;:::i;:::-;5920:24;3563:3596:84;;;;;;;;5920:24:94;;:::i;:::-;3563:3596:84;;;-1:-1:-1;;;;;3563:3596:84;;;;;;;;;;;6024:24:94;;:::i;:::-;3563:3596:84;;;;;6065:39:94;;3563:3596:84;;6065:39:94;3282:1:28;1805;-1:-1:-1;;;;;;;;;;;3563:3596:84;3716:283:28;5247:78:94;3563:3596:84;;-1:-1:-1;;;5291:23:94;;3563:3596:84;;5291:23:94;5162:75;3563:3596:84;;-1:-1:-1;;;5207:19:94;;3563:3596:84;;5207:19:94;4759:131;3563:3596:84;;-1:-1:-1;;;4861:18:94;;3563:3596:84;;4861:18:94;4809:29;;;;;;;;;;;;;;:::i;:::-;;;;4360:389;3563:3596:84;;-1:-1:-1;;;4718:20:94;;3563:3596:84;;4718:20:94;4377:309;837:15:62;4647:39:94;819:34:62;837:15;819:34;:::i;4647:39:94:-;3563:3596:84;;;;;4647:39:94;4377:309;;:250;837:15:62;4522:105:94;:91;4553:20;819:34:62;837:15;819:34;:::i;:::-;4553:20:94;:::i;:::-;4575:37;;;;4522:91;;;:::i;:105::-;;;4377:250;;4135:94;3563:3596:84;;-1:-1:-1;;;4196:22:94;;3563:3596:84;;4196:22:94;4020:105;4076:38;;;;;;;;:::i;:::-;4020:105;;;;;3563:3596:84;;;;;;-1:-1:-1;;3563:3596:84;;;;;;;-1:-1:-1;;;;;404:28:69;3563:3596:84;;;;;;;;;;-1:-1:-1;;3563:3596:84;;;;;1221:37:94;3563:3596:84;;;;;;;;;;;;;-1:-1:-1;;3563:3596:84;;;;;;954:41:94;-1:-1:-1;;;;;3563:3596:84;;;;;;;;;;;;-1:-1:-1;;3563:3596:84;;;;;;-1:-1:-1;;;;;3563:3596:84;;;;2239:46:94;3563:3596:84;;;;;;;;:::i;:::-;819:34:62;837:15;819:34;:::i;:::-;3563:3596:84;;2239:46:94;:::i;:::-;3563:3596:84;;-1:-1:-1;;;;;3563:3596:84;;;;;;;;;;;;-1:-1:-1;;3563:3596:84;;;;;;;1271:7:92;3563:3596:84;;;;;;;;;-1:-1:-1;;3563:3596:84;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3217:103:28;;;:::i;:::-;3563:3596:84;;:::i;:::-;6308:16:94;;6304:99;;3563:3596:84;;;6431:13:94;3563:3596:84;6417:34:94;;;6413:94;;6548:25;;;:::i;:::-;3563:3596:84;6431:13:94;3563:3596:84;;6653:24:94;;3563:3596:84;;;;;;;;;;;6622:92:94;6679:34;;3563:3596:84;;;6622:92:94;;:::i;:::-;3563:3596:84;6741:29:94;;;:151;;;;;3563:3596:84;6724:223:94;;;;6961:10;:29;6957:80;;7051:40;819:34:62;837:15;819:34;:::i;7051:40:94:-;3563:3596:84;;;;;7051:40:94;;7047:95;;3563:3596:84;;;;7152:78:94;;3563:3596:84;;-1:-1:-1;;;;3563:3596:84;-1:-1:-1;;;3563:3596:84;;;6961:10:94;7280:33;;-1:-1:-1;7280:33:94;;3282:1:28;1805;-1:-1:-1;;;;;;;;;;;3563:3596:84;3716:283:28;7152:78:94;3563:3596:84;;-1:-1:-1;;;7196:23:94;;3563:3596:84;;7196:23:94;7047:95;3563:3596:84;;-1:-1:-1;;;7114:17:94;;3563:3596:84;;7114:17:94;6957:80;3563:3596:84;;-1:-1:-1;;;7013:13:94;;3563:3596:84;;7013:13:94;6724:223;3563:3596:84;;-1:-1:-1;;;6924:12:94;;3563:3596:84;;6924:12:94;6741:151;6790:102;837:15:62;;;6790:88:94;837:15:62;6843:34:94;6821:20;819:34:62;837:15;819:34;:::i;6821:20:94:-;6843:34;;;6790:88;;:::i;:102::-;;6741:151;;;;6304:99;6357:35;;;;;;;:::i;:::-;6304:99;;;;3563:3596:84;;;;;;-1:-1:-1;;3563:3596:84;;;;;;;;-1:-1:-1;;;;;3563:3596:84;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;3563:3596:84;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;;;;3563:3596:84;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;4649:553::-;3563:3596;;-1:-1:-1;;;4939:105:84;;-1:-1:-1;;;;;3563:3596:84;;;4939:105;;;3563:3596;;;;;;;;;;;;;;;;;;;;;;;;;4649:553;4939:105;3563:3596;;;;;4939:105;3563:3596;4956:18;-1:-1:-1;;;;;3563:3596:84;4939:105;;;;;;;;;;;4649:553;3563:3596;;;5055:141;;4649:553;:::o;5055:141::-;5112:73;3563:3596;;;5112:73;3563:3596;;;;;;;:::i;:::-;;;;;5112:73;;;3563:3596;5112:73;;;:::i;4939:105::-;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;6788:369;;;6975:44;6788:369;3563:3596;6975:44;;:::i;:::-;3563:3596;;7030:121;;6788:369;:::o;1876:205:94:-;-1:-1:-1;3563:3596:84;;;2016:9:94;3563:3596:84;;;;;-1:-1:-1;;;;;3563:3596:84;2016:56:94;;1876:205;;2016:56;:::i;:::-;3563:3596:84;1876:205:94;:::o;3563:3596:84:-;;;;;;;;;;;;;;;;;-1:-1:-1;;3563:3596:84;;;;;;;:::o;:::-;;:::i;:::-;;;;;;;;;;;;;;;:::o;6172:610::-;6466:55;6172:610;;;;6370:51;3563:3596;6370:51;;;;:::i;:::-;837:15:62;6500:20:84;819:34:62;837:15;819:34;:::i;6466:55:84:-;3563:3596;;6536:30;;;:64;;;6172:610;6532:244;;6172:610;;:::o;6532:244::-;3563:3596;;;;;;6623:142;3563:3596;;;;;;;:::i;:::-;;;6651:100;;;3563:3596;;;;;6623:142;;;6651:100;6623:142;;;3563:3596;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;3563:3596:84;;;;;;:::i;6536:64::-;3563:3596;;;6570:30;;6536:64;;3563:3596;;;;;;;:::i;:::-;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;;;;3563:3596:84;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;;;;:::o;:::-;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;3317:13:94;3563:3596:84;-1:-1:-1;;;3563:3596:84;;;;;;;;;;3317:13:94;3563:3596:84;;:::i;:::-;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;3563:3596:84;-1:-1:-1;;;;;3563:3596:84;;;;;;;;;;;;;;;;3317:13:94;;3563:3596:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;3563:3596:84;;;;;;-1:-1:-1;;;3563:3596:84;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;5208:958::-;;;;;5643:105;3563:3596;5435:51;;;;;;:::i;:::-;837:15:62;5643:105:84;5531:55;5565:20;819:34:62;837:15;819:34;:::i;5565:20:84:-;5531:55;;;:::i;:::-;3563:3596;;-1:-1:-1;;;5643:105:84;;-1:-1:-1;;;;;3563:3596:84;;;5643:105;;;3563:3596;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5643:105;;3563:3596;5660:18;-1:-1:-1;;;;;3563:3596:84;5643:105;;;;;;;;;;;5208:958;3563:3596;;;5763:30;;;:64;;;5208:958;5763:98;;;;5208:958;5759:401;;5208:958;;;:::o;5759:401::-;5884:265;3563:3596;;;;5884:265;3563:3596;;;;:::i;:::-;;;;5912:223;;;3563:3596;;5912:223;;3563:3596;;;5884:265;;;5912:223;5884:265;;;:::i;5763:98::-;3563:3596;;;5831:30;;5763:98;;:64;3563:3596;;;5797:30;;5763:64;;5643:105;;;;;;;;;;;;;;:::i;:::-;;;;;3563:3596;;;;;;;;;;:::o;:::-;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::o;:::-;;3149:1:86;3563:3596:84;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;-1:-1:-1;3563:3596:84;;;;:::o;:::-;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;:::i;4209:434::-;;;-1:-1:-1;4307:12:84;3563:3596;;;;;4435:78;;;;;;;;;;;;;3563:3596;;;;;;;4435:78;;;;;:::i;:::-;3563:3596;;716:88:82;;3563:3596:84;716:88:82;;;;;;;;;783:4;4435:78:84;716:88:82;;3563:3596:84;;;;;;;;;;;:::i;:::-;716:88:82;3563:3596:84;716:88:82;3563:3596:84;;716:88:82;;;;;;;;:::i;:::-;698:107;;;;;857:45;698:107;;:::i;:::-;3563:3596:84;;;;857:45:82;;;;;;:::i;:::-;916:8;;912:175;;3563:3596:84;;;4361:204;3563:3596;;4361:204;;;;;;:::i;:::-;4576:61;;;;4209:434;;;:::o;4576:61::-;4609:17;3563:3596;;;;4609:17;3563:3596;;4609:17;;;;;3563:3596;;;;;;;;;;;;4609:17;;;;;;;;;:::i;912:175:82:-;3563:3596:84;;;;944:22:82;;;940:36;;990:87;;2505:267:92;-1:-1:-1;3563:3596:84;;;2692:16:92;3563:3596:84;;;;;;;;-1:-1:-1;;;;;3563:3596:84;;;;;;;;;2692:73:92;;2505:267;;2692:73;:::i;3563:3596:84:-;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;;;;3563:3596:84;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;;;;3563:3596:84;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::o;:::-;;;;;;;;-1:-1:-1;3563:3596:84;;-1:-1:-1;3563:3596:84;;;-1:-1:-1;3563:3596:84;:::o;10580:184:86:-;10689:20;;;:::i;:::-;-1:-1:-1;;;;;3563:3596:84;;10726:7:86;3563:3596:84;;10736:12:86;:17;:12;;:17;:::i;:::-;3563:3596:84;;;;;;10580:184:86;:::o;10726:31::-;;;10689:11;10580:184;:::o;3563:3596:84:-;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;3563:3596:84;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;:::o;1818:604:86:-;;3563:3596:84;;1946:17:86;1942:83;;3563:3596:84;2049:27:86;3563:3596:84;2049:27:86;3563:3596:84;;2049:27:86;;;;;;:::i;:::-;2120:14;;;;;:::i;:::-;3563:3596:84;;;;;;;;;;;;;;;;2148:22:86;;;2144:77;;2235:21;-1:-1:-1;2235:84:86;;;;1818:604;2231:139;;;;1425:34;;;;:::i;2231:139::-;-1:-1:-1;;2049:27:86;2342:17;3563:3596:84;-1:-1:-1;;;;;3563:3596:84;;:::o;2235:84:86:-;3563:3596:84;;;2269:16:86;3563:3596:84;;2269:16:86;:::i;:::-;3563:3596:84;;;2261:24:86;:57;;;;;2235:84;;;;;;;2261:57;2289:29;2298:8;;;2289:18;2298:8;2289:23;2298:8;;:::i;:::-;2289:18;;:::i;:::-;3563:3596:84;;;;;2289:29:86;;2261:57;;;;2144:77;-1:-1:-1;;;;2049:27:86;2193:17;;;;3563:3596:84;-1:-1:-1;;;;;3563:3596:84;;-1:-1:-1;3563:3596:84;:::o;1942:83:86:-;1425:34;;;;:::i;3563:3596:84:-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;3563:3596:84;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;6491:564:92:-;6614:34;6491:564;6614:34;;;;:::i;:::-;3563:3596:84;;-1:-1:-1;;;6664:41:92;;-1:-1:-1;;;;;3563:3596:84;;;6664:41:92;;;3563:3596:84;;;;;6664:41:92;;;3563:3596:84;;;6674:13:92;3563:3596:84;;6664:41:92;;;;;;;-1:-1:-1;6664:41:92;;;6491:564;6663:42;;6659:90;;2540:111:28;6850:27:92;6664:41;2540:111:28;;;:::i;:::-;-1:-1:-1;3563:3596:84;;-1:-1:-1;;;;;;3563:3596:84;-1:-1:-1;;;;;3563:3596:84;;;;;6850:27:92;;:::i;:::-;3563:3596:84;;;;;;;;;;6892:23:92;;;;;;;;;-1:-1:-1;6892:23:92;;;6491:564;3563:3596:84;;;6892:37:92;:64;;;6491:564;6888:112;;3563:3596:84;7010:38:92;;3563:3596:84;;-1:-1:-1;3563:3596:84;;-1:-1:-1;;;;3563:3596:84;;;;;;-1:-1:-1;;;3563:3596:84;;;;;;;;6888:112:92;3563:3596:84;;-1:-1:-1;;;6979:10:92;;6664:41;;6979:10;6892:64;-1:-1:-1;3563:3596:84;;;;6892:64:92;;:23;;;;;;-1:-1:-1;6892:23:92;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;6659:90;3563:3596:84;;-1:-1:-1;;;6728:10:92;;6664:41;;6728:10;6664:41;;;;;;;;;;;;;;:::i;:::-;;;;3326:384:28;-1:-1:-1;;;;;;;;;;;1847:1:28;3563:3596:84;;3526:20:28;3522:88;;1847:1;3563:3596:84;;3326:384:28:o;3522:88::-;3563:3596:84;;-1:-1:-1;;;3569:30:28;;;;;4451:257:92;3563:3596:84;;-1:-1:-1;;;4546:86:92;;467:2:88;3563:3596:84;;;;4546:86:92;;;3563:3596:84;-1:-1:-1;;;;;4546:86:92;3563:3596:84;;;4572:26:92;3563:3596:84;;4546:86:92;;;;;;;-1:-1:-1;4546:86:92;;;4451:257;4636:10;;3563:3596:84;;4546:100:92;4542:160;;4451:257::o;4542:160::-;3563:3596:84;;-1:-1:-1;;;4669:22:92;;4546:86;;4669:22;4546:86;;;;;;;;;;;;;;;:::i;:::-;;;;;2557:104:57;;2641:5;;;;;;:13;2557:104;:::o;2641:13::-;;;2557:104;:::o;3563:3596:84:-;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::o;2666:855:86:-;;3563:3596:84;;2880:15:86;2838:11;2905:18;2938:7;2944:1;2938:7;;2934:241;;2666:855;3199:60;;;;;:::i;:::-;3274:8;;;3270:62;;3563:3596:84;3430:7:86;;;;:::i;:::-;13267:109;2838:11;13267:109;;2838:11;13267:109;;3563:3596:84;:::i;:::-;;3498:15:86;3505:7;3563:3596:84;13267:109:86;3563:3596:84;;;;;;;;3479:17:86;;3563:3596:84;-1:-1:-1;;;;;3563:3596:84;;;;3505:7:86;;:::i;:::-;3563:3596:84;;;;3498:15:86;3436:1;;3448:66;;2666:855::o;3270:62::-;3298:23;;2838:11;3298:23;2838:11;3298:23;2838:11;3298:23;2838:11;3298:23;:::o;2934:241::-;2981:14;;;;;:::i;:::-;3563:3596:84;;;;;;;3199:60:86;13267:109;;2838:11;13267:109;3563:3596:84;13267:109:86;;;2838:11;13267:109;;3563:3596:84;;;;;3013:55:86;3009:156;3563:3596:84;;;3088:10:86;3009:156;2934:241;;3009:156;3143:7;;;;;;:::i;:::-;3009:156;2934:241;;5905:168;;6006:20;;;:::i;:::-;3563:3596:84;;;;;;;-1:-1:-1;;3563:3596:84;;;;;;:::i;:::-;;;;;;;5905:168:86:o;3563:3596:84:-;;;;;;;;;;;;14291:213:58;3563:3596:84;14369:24:58;;;;14365:103;;3563:3596:84;14291:213:58;:::o;14365:103::-;3563:3596:84;;;;14416:41:58;;;;;;14447:2;14416:41;;;3563:3596:84;;;;;14416:41:58;3563:3596:84;;;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;3563:3596:84;;;;;;;;:::i;7558:604:86:-;;3563:3596:84;;7686:17:86;7682:83;;3563:3596:84;7789:27:86;3563:3596:84;7789:27:86;3563:3596:84;;7789:27:86;;;;;;:::i;:::-;7860:14;;;;;:::i;:::-;3563:3596:84;;;;;;;;;;;;;;;;7888:22:86;;;7884:77;;7975:21;-1:-1:-1;7975:84:86;;;;7558:604;7971:139;;;;8127:28;;;;:::i;7971:139::-;8082:17;;7789:27;8082:17;3563:3596:84;8075:24:86;:::o;7975:84::-;3563:3596:84;;;8009:16:86;3563:3596:84;;8009:16:86;:::i;:::-;3563:3596:84;;;8001:24:86;:57;;;;;7975:84;;;;;;;8001:57;8029:29;8038:8;;;8029:18;8038:8;8029:23;8038:8;;:::i;:::-;8029:18;;:::i;:29::-;;8001:57;;;;7884:77;7933:17;;;;;7789:27;7933:17;3563:3596:84;7926:24:86;:::o;7682:83::-;7726:28;;;;:::i;3563:3596:84:-;;;;;;;;;;;-1:-1:-1;;;;;3563:3596:84;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;3563:3596:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;3323:1122:92:-;;3563:3596:84;;:::i;:::-;;;;3608:16:92;3604:109;;3323:1122;837:15:62;;819:34;837:15;819:34;:::i;:::-;-1:-1:-1;3563:3596:84;;;;3778:27:92;;:13;;-1:-1:-1;;;;;3563:3596:84;3778:13:92;3563:3596:84;3778:27:92;3563:3596:84;;;;;;;3778:29:92;;;;;;;;;;;;;;;3740:67;3778:29;3759:48;3778:29;-1:-1:-1;3778:29:92;;;3759:48;;:::i;3740:67::-;3563:3596:84;;;3740:67:92;;;:107;;;;;3323:1122;3740:197;;;;3323:1122;3723:263;;;3563:3596:84;3778:29:92;3563:3596:84;;;;;;;;;;4025:25:92;;;;;;;;;4010:143;4025:25;;;-1:-1:-1;4025:25:92;;;3323:1122;4113:30;;;3563:3596:84;;;;;;;;;;;4010:143:92;;;;;3778:29;4010:143;;;:::i;:::-;;;-1:-1:-1;;;;;3563:3596:84;4010:143:92;;;;;;;4181:257;4010:143;-1:-1:-1;4010:143:92;;;3323:1122;3996:157;;4293:102;3996:157;;4233:162;3996:157;4207:231;3996:157;;2936:28;:47;:38;:28;;;3563:3596:84;;2936:16:92;3563:3596:84;;;;;;;2936:28:92;3563:3596:84;;;;;;;;;;;;;;;;2936:47:92;4351:43;;;4293:102;;:::i;:::-;4233:162;;:::i;:::-;4207:231;:::i;4181:257::-;3323:1122;:::o;4010:143::-;4233:162;4010:143;;;4207:231;4010:143;;;;4293:102;4010:143;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;;;;;4025:25;;;;;;;;;;;;;;:::i;:::-;;;;3723:263;3962:13;;;;;;-1:-1:-1;3962:13:92;-1:-1:-1;3962:13:92;:::o;3740:197::-;3886:41;;3867:70;3886:51;;:41;;;3563:3596:84;;3886:29:92;3563:3596:84;;;;;;;3886:51:92;3563:3596:84;;;;;3867:70:92;-1:-1:-1;3740:197:92;;;:107;837:15:62;;3811:36:92;819:34:62;837:15;819:34;:::i;3811:36:92:-;;;;3740:107;;;3778:29;;;;;;;;;;;;;;;:::i;3604:109::-;3662:40;;;;;;;;;;;;:::i;:::-;3604:109;;;;4714:335;;;;3563:3596:84;-1:-1:-1;3563:3596:84;4876:29:92;3563:3596:84;;;;4876:51:92;3563:3596:84;;-1:-1:-1;3563:3596:84;;;;;;;;;;;;;;;;;4876:51:92;3563:3596:84;;;;;-1:-1:-1;4872:171:92;;4714:335;;;:::o;4872:171::-;4962:70;3563:3596:84;4962:51:92;3563:3596:84;-1:-1:-1;3563:3596:84;4876:29:92;3563:3596:84;;;-1:-1:-1;3563:3596:84;;;;;;;;;;;;;;;;;4962:51:92;3563:3596:84;;;;;;;;;;;;5055:221:92;;;3563:3596:84;-1:-1:-1;3563:3596:84;5160:16:92;3563:3596:84;;2936:47:92;:38;5160;3563:3596:84;;-1:-1:-1;3563:3596:84;;;;;;;;;;;;;;;;;5160:38:92;837:15:62;819:34;837:15;819:34;:::i;:::-;3563:3596:84;-1:-1:-1;3563:3596:84;5160:16:92;3563:3596:84;;;-1:-1:-1;3563:3596:84;;;;;;;;;;;;;;;;;2936:47:92;3563:3596:84;;;;;;;;6360:12:86;;;3563:3596:84;;;6360:24:86;6356:75;;5055:221:92;6474:30:86;;;:::i;:::-;3563:3596:84;;;;;6578:12:86;;;;:::i;:::-;;6604:24;;;5055:221:92;-1:-1:-1;6600:188:86;;;-1:-1:-1;;;;3563:3596:84;;;;;;;6644:29:86;:21;;;;:::i;:::-;:29;3563:3596:84;;;;;;;;;;;;;;;;;;;;;6600:188:86;6753:24;;8167:38:60;;-1:-1:-1;;;;;3563:3596:84;;;;;8167:38:60;:::i;:::-;6753:24:86;;;:::i;6604:::-;3563:3596:84;;;;;;6614:14:86;;-1:-1:-1;6604:24:86;;;6356:75;6400:20;;;:::i;:::-;6356:75;;3563:3596:84;;;;;;;;-1:-1:-1;;;;;3563:3596:84;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;5282:431:92:-;;;;5487:25;;:23;:13;3563:3596:84;5494:5:92;3563:3596:84;;;;;;;;;5487:23:92;3563:3596:84;;-1:-1:-1;;;5487:25:92;;3563:3596:84;;;;;5487:25:92;;;;;;;5631:65;5487:25;5631:65;5487:25;5494:5;5487:25;;;5282:431;-1:-1:-1;;;;;;3563:3596:84;;;;:::i;:::-;-1:-1:-1;;;;;5677:4:92;3563:3596:84;;;5677:4:92;5487:25;5642:53;;3563:3596:84;;;5631:65:92;;;5487:25;5631:65;;;:::i;:::-;5472:234;;;;;5494:5;3563:3596:84;5472:234:92;3563:3596:84;;;;;;;;;;;;;;5472:234:92;;5487:25;5472:234;;;:::i;:::-;;;;;;;;;;;5282:431;:::o;5472:234::-;;;;;;:::i;:::-;;;:::i;5487:25::-;;;;;;;;;;;;;;:::i;:::-;;;;5719:137;3563:3596:84;5719:137:92;3563:3596:84;5802:47:92;5719:137;5809:5;3563:3596:84;;;;;;;;;;;;;;;;;;5802:47:92;;;;;3563:3596:84;;;;;;5802:47:92;;;;;;;;5719:137;:::o;5802:47::-;;;;;;;;;;;;;:::i;:::-;;5719:137::o;3563:3596:84:-;;;;;;;:::o;:::-;;;;;;;;;;;;5862:623:92;;;5988:12;3563:3596:84;;;;;;;5984:495:92;;5862:623;;;;;;:::o;5984:495::-;3563:3596:84;;-1:-1:-1;;;6033:22:92;;3563:3596:84;6033:22:92;;3563:3596:84;;6033:22:92;;3563:3596:84;;-1:-1:-1;;;;;3563:3596:84;6033:22:92;;;;;;;5988:12;6033:22;;;5984:495;-1:-1:-1;3563:3596:84;;-1:-1:-1;;;6033:22:92;6094:81;;;;;;;;3563:3596:84;;;;-1:-1:-1;;;;;3563:3596:84;;;;;;;;;;;;;;;;;;;;;;6094:81:92;3563:3596:84;;;;6094:81:92;;3563:3596:84;;6094:81:92;;;;;;:::i;:::-;3563:3596:84;6194:9:92;:55;6190:124;;5988:12;6328:141;;;;;;1271:7;6328:141;;5984:495;;;;;;;6190:124;3563:3596:84;;-1:-1:-1;;;6276:23:92;;6033:22;;6276:23;6033:22;6094:81;6033:22;;;6094:81;6033:22;;;;;;;;;;;:::i;:::-;;;;;10167:206:60;3563:3596:84;;10303:8:60;;;:63;;10262:17;10167:206;:::o;10303:63::-;3563:3596:84;;;;;;;;;;10262:17:60;13267:109:86;;10262:17:60;13267:109:86;;;3563:3596:84;;;10167:206:60;:::o;3563:3596:84:-;;;;;;;:::i;:::-;-1:-1:-1;3563:3596:84;;;;;;;:::o;5573:258:86:-;3563:3596:84;5573:258:86;11308:22:60;5573:258:86;3563:3596:84;;:::i;:::-;;;;:::i;:::-;;11308:22:60;:::i;:::-;3563:3596:84;;:::i;:::-;;;;;;5805:17:86;3563:3596:84;;;;;5805:17:86;;3563:3596:84;;;;;;;;:::i;:::-;;;5805:17:86;5759:65;;3563:3596:84;5573:258:86;:::o;6893:76:25:-;;;:::i;:::-;;;:::i;:::-;1805:1:28;-1:-1:-1;;;;;;;;;;;3563:3596:84;6893:76:25:o;3563:3596:84:-;;;;;;;:::i;:::-;-1:-1:-1;3563:3596:84;;:::o;:::-;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;:::o;8763:604:94:-;;8969:30;8763:604;3563:3596:84;;:::i;:::-;;;;8905:30:94;;;;;;;;;;;;;:::i;:::-;3563:3596:84;;-1:-1:-1;;;8969:30:94;;3563:3596:84;;;;;;;;-1:-1:-1;;;;;3563:3596:84;8969:30:94;;;;;;;;;;;8763:604;9013:19;;;3563:3596:84;;;;;;;;;;;;;;;9013:36:94;;9009:95;;3563:3596:84;9118:29:94;;9150:1;3563:3596:84;;9118:33:94;9114:102;;9226:34;3563:3596:84;9271:54:94;3563:3596:84;;;;;;;;;;;8969:30:94;3563:3596:84;;;8969:30:94;3563:3596:84;;9226:34:94;3563:3596:84;9271:54:94;3563:3596:84;;9271:54:94;9343:17;8763:604;:::o;9114:102::-;3563:3596:84;;-1:-1:-1;;;9174:31:94;;8969:30;;9174:31;9009:95;3563:3596:84;;-1:-1:-1;;;9072:21:94;;8969:30;;9072:21;8969:30;;;;;;;;;;;;;;;:::i;:::-;;;;;8587:1642:57;8658:6;;8654:45;;9401:7;10201:10;10142:26;10093;10044;9995;9946;9897;9848;3563:3596:84;10189:23:57;9401:7;8663:1;3563:3596:84;;;;10826:16:57;10822:99;;8587:1642;3563:3596:84;;;;10938:15:57;10934:96;;8587:1642;3563:3596:84;;;;11047:15:57;11043:96;;8587:1642;3563:3596:84;;;;11156:15:57;11152:96;;8587:1642;3563:3596:84;;;;11265:14:57;11261:93;;8587:1642;3563:3596:84;;;;11371:14:57;11367:93;;8587:1642;3563:3596:84;;;;11477:14:57;11473:93;;8587:1642;3563:3596:84;;;11579:64:57;;8587:1642;3563:3596:84;;;9858:10:57;;;;:::i;:::-;3563:3596:84;;;;;9848:26:57;9907:10;;;;:::i;9897:26::-;9956:10;;;;:::i;9946:26::-;10005:10;;;;:::i;9995:26::-;10054:10;;;;:::i;10044:26::-;10103:10;;;;:::i;10093:26::-;10152:10;;;;:::i;10142:26::-;10201:10;;;:::i;:::-;10189:23;;:::i;11579:64::-;3563:3596:84;;11579:64:57;;11473:93;3563:3596:84;11511:11:57;;3563:3596:84;;11473:93:57;;;;11367;3563:3596:84;11405:11:57;;3563:3596:84;;11367:93:57;;;;11261;3563:3596:84;11299:11:57;;3563:3596:84;;11261:93:57;;;;11152:96;3563:3596:84;11191:12:57;;3563:3596:84;;11152:96:57;;;;11043;3563:3596:84;11082:12:57;;3563:3596:84;;11043:96:57;;;;10934;3563:3596:84;10973:12:57;;3563:3596:84;;10934:96:57;;;;10822:99;10862:13;;;3563:3596:84;10822:99:57;;;;8654:45;8680:8;8663:1;8680:8;:::o;12497:447:86:-;;;12694:10;;;;;;12926:11;;;12497:447;:::o;12687:230::-;2900:5:57;;;;;;3563:3596:84;;2910:5:57;;;3563:3596:84;;;;;;;;;13267:109:86;-1:-1:-1;13267:109:86;3563:3596:84;13267:109:86;;;-1:-1:-1;13267:109:86;;3563:3596:84;;;;;-1:-1:-1;12771:136:86;3563:3596:84;;;12830:10:86;;12771:136;;12687:230;;;;12771:136;3563:3596:84;;;;;;;;;;;12771:136:86;;;10552:388:60;3563:3596:84;;10728:8:60;;;10752:20;;10690:17;10752:20;10690:17;10752:20;10690:17;10752:20;:::o;10724:210::-;3563:3596:84;;;;;;;;;;;13267:109:86;10690:17:60;13267:109:86;;10690:17:60;13267:109:86;;;3563:3596:84;:::i;:::-;;;;;;;13267:109:86;3563:3596:84;;;;;10911:11:60;;3563:3596:84;;10886:37:60;10870:1;10886:37;;;:::o;6999:207:86:-;;7117:34;6999:207;7117:34;;:::i;11486:272::-;;3563:3596:84;11308:22:60;11718:31:86;11486:272;3563:3596:84;;:::i;:::-;;;;:::i;:::-;;11308:22:60;;:::i;3563:3596:84:-;;11718:12:86;3563:3596:84;;;;;11731:17:86;3563:3596:84;;;;;11731:17:86;;3563:3596:84;;11718:12:86;;:31;:::i;:::-;3563:3596:84;;;;;;;;;:::i;:::-;;;;;;11731:17:86;11672:79;;3563:3596:84;11486:272:86;:::o;3563:3596:84:-;;;-1:-1:-1;;;3563:3596:84;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::o;:::-;;;;;-1:-1:-1;;;3563:3596:84;;;;;;;;;;;;;;;:::i;9441:606:60:-;;3563:3596:84;;9594:15:60;9559:17;9619:18;9652:7;9658:1;9652:7;;9648:234;;9441:606;9906:53;;;;;:::i;:::-;9977:8;;;:63;;9559:17;9441:606;:::o;9977:63::-;10025:7;;;:::i;:::-;13267:109:86;9559:17:60;13267:109:86;;9559:17:60;13267:109:86;;3563:3596:84;;;9441:606:60;:::o;9648:234::-;9695:14;;;;;:::i;:::-;3563:3596:84;;;;;;;9906:53:60;13267:109:86;;9559:17:60;13267:109:86;3563:3596:84;13267:109:86;;;9559:17:60;13267:109:86;;3563:3596:84;;;;;9727:48:60;9723:149;3563:3596:84;;;9795:10:60;9723:149;9648:234;;9723:149;9850:7;;;;;;:::i;:::-;9723:149;9648:234;;7084:141:25;3563:3596:84;-1:-1:-1;;;;;;;;;;;3563:3596:84;;;;7150:18:25;7146:73;;7084:141::o;7146:73::-;3563:3596:84;;-1:-1:-1;;;7191:17:25;;;;;3563:3596:84;;;-1:-1:-1;;;3563:3596:84;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;3563:3596:84;;;;;;;;;;;:::o;11513:870:60:-;3563:3596:84;;11513:870:60;;;3563:3596:84;11513:870:60;11672:7;;;;3563:3596:84;11775:28:60;11795:7;;;:::i;:::-;11775:28;13267:109:86;;;;;;13089:293;;11775:28:60;3563:3596:84;:::i;:::-;;;;;;;;;;;;;;;;11877:15:60;-1:-1:-1;11873:91:60;;3563:3596:84;;12233:11:60;3563:3596:84;;;12027:16:60;3563:3596:84;;;;;;;12027:16:60;;;;12083:7;12063:43;12083:7;;12063:28;12083:7;;:::i;:::-;12063:28;13267:109:86;;;;;;13089:293;;12063:28:60;3563:3596:84;;;;;;;;;;;;;;;;;12063:43:60;12233:11;3563:3596:84;-1:-1:-1;;;;;3563:3596:84;;;;12225:27:60;;:::o;12023:189::-;3563:3596:84;;;12145:52:60;3563:3596:84;12155:41:60;3563:3596:84;;:::i;:::-;;;;;;;;12155:41:60;-1:-1:-1;;;;;3563:3596:84;;12155:41:60;;;3563:3596:84;12145:52:60;:::i;:::-;12023:189;;11873:91;3563:3596:84;;-1:-1:-1;;;11919:30:60;;;;;11668:709;12283:52;3563:3596:84;;12293:41:60;3563:3596:84;;:::i;12293:41:60:-;-1:-1:-1;;;;;3563:3596:84;;12293:41:60;;;3563:3596:84;12145:52:60;:::i;12283:::-;11678:1;12349:17;;:::o","linkReferences":{},"immutableReferences":{"57808":[{"start":1147,"length":32}],"57811":[{"start":5510,"length":32},{"start":11354,"length":32}],"62368":[{"start":2918,"length":32}],"62998":[{"start":2054,"length":32},{"start":6420,"length":32},{"start":7433,"length":32}],"65592":[{"start":744,"length":32},{"start":8890,"length":32}],"65595":[{"start":1079,"length":32},{"start":9284,"length":32}],"66325":[{"start":3192,"length":32},{"start":5596,"length":32}]}},"methodIdentifiers":{"BASE_SLASHER_HINTS()":"457821b7","BURNER_GAS_LIMIT()":"d5c24e1a","BURNER_RESERVE()":"2964f8dc","FACTORY()":"2dd31000","NETWORK_MIDDLEWARE_SERVICE()":"2c9d45b3","NETWORK_REGISTRY()":"c0cd7c3e","TYPE()":"bb24fe8a","VAULT_FACTORY()":"103f2907","cumulativeSlash(bytes32,address)":"1a2be2c4","cumulativeSlashAt(bytes32,address,uint48,bytes)":"aa8e6489","executeSlash(uint256,bytes)":"b94c386e","executeSlashHints(address,bytes32,address,uint48)":"69f78920","initialize(bytes)":"439fab91","isBurnerHook()":"34d098ea","latestSlashedCaptureTimestamp(bytes32,address)":"267de1f3","requestSlash(bytes32,address,uint256,uint48,bytes)":"545ce389","requestSlashHints(address,address,bytes32,address,uint256,uint48)":"002a0875","resolver(bytes32,bytes)":"cd05b8a1","resolverAt(bytes32,uint48,bytes)":"31ce4dfe","resolverHint(address,bytes32,uint48)":"a4ef9b4f","resolverHintInternal(bytes32,uint48)":"8f82f931","resolverSetEpochsDelay()":"bc6eac5b","setResolver(uint96,address,bytes)":"9168f9d2","setResolverHints(address,bytes32,uint48)":"1dd5f600","slashRequests(uint256)":"9a896551","slashRequestsLength()":"8f42f9ab","slashableStake(bytes32,address,uint48,bytes)":"aab3595f","staticDelegateCall(address,bytes)":"9f86fd85","vault()":"fbfa77cf","vetoDuration()":"e054e08b","vetoSlash(uint256,bytes)":"f9268d18","vetoSlashHints(address,bytes32,uint48)":"5264679b"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"baseSlasherHints\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"AlreadySet\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CheckpointUnorderedInsertion\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ExternalCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientBurnerGas\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientSlash\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidCaptureTimestamp\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidResolverSetEpochsDelay\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidVetoDuration\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NoBurner\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NoResolver\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotNetwork\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotNetworkMiddleware\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotResolver\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotVault\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ReentrancyGuardReentrantCall\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"bits\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"SafeCastOverflowedUintDowncast\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SlashPeriodEnded\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SlashRequestCompleted\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SlashRequestNotExist\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"VetoPeriodEnded\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"VetoPeriodNotEnded\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"slashIndex\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"slashedAmount\",\"type\":\"uint256\"}],\"name\":\"ExecuteSlash\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"slashIndex\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"slashAmount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint48\",\"name\":\"captureTimestamp\",\"type\":\"uint48\"},{\"indexed\":false,\"internalType\":\"uint48\",\"name\":\"vetoDeadline\",\"type\":\"uint48\"}],\"name\":\"RequestSlash\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"resolver\",\"type\":\"address\"}],\"name\":\"SetResolver\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"slashIndex\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"resolver\",\"type\":\"address\"}],\"name\":\"VetoSlash\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"BASE_SLASHER_HINTS\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"BURNER_GAS_LIMIT\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"BURNER_RESERVE\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"FACTORY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"NETWORK_MIDDLEWARE_SERVICE\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"NETWORK_REGISTRY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"TYPE\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"VAULT_FACTORY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"cumulativeSlash\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hint\",\"type\":\"bytes\"}],\"name\":\"cumulativeSlashAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"slashIndex\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"hints\",\"type\":\"bytes\"}],\"name\":\"executeSlash\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"slashedAmount\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"slasher\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"captureTimestamp\",\"type\":\"uint48\"}],\"name\":\"executeSlashHints\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isBurnerHook\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"latestSlashedCaptureTimestamp\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"value\",\"type\":\"uint48\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint48\",\"name\":\"captureTimestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hints\",\"type\":\"bytes\"}],\"name\":\"requestSlash\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"slashIndex\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"slasher\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"msgSender\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint48\",\"name\":\"captureTimestamp\",\"type\":\"uint48\"}],\"name\":\"requestSlashHints\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"hint\",\"type\":\"bytes\"}],\"name\":\"resolver\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hint\",\"type\":\"bytes\"}],\"name\":\"resolverAt\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"slasher\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"}],\"name\":\"resolverHint\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"}],\"name\":\"resolverHintInternal\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"exists\",\"type\":\"bool\"},{\"internalType\":\"uint32\",\"name\":\"hint\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"resolverSetEpochsDelay\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint96\",\"name\":\"identifier\",\"type\":\"uint96\"},{\"internalType\":\"address\",\"name\":\"resolver_\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"hints\",\"type\":\"bytes\"}],\"name\":\"setResolver\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"slasher\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"}],\"name\":\"setResolverHints\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"slashRequests\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint48\",\"name\":\"captureTimestamp\",\"type\":\"uint48\"},{\"internalType\":\"uint48\",\"name\":\"vetoDeadline\",\"type\":\"uint48\"},{\"internalType\":\"bool\",\"name\":\"completed\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"slashRequestsLength\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"captureTimestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hints\",\"type\":\"bytes\"}],\"name\":\"slashableStake\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"staticDelegateCall\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"vault\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"vetoDuration\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"slashIndex\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"hints\",\"type\":\"bytes\"}],\"name\":\"vetoSlash\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"slasher\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"uint48\",\"name\":\"captureTimestamp\",\"type\":\"uint48\"}],\"name\":\"vetoSlashHints\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"CheckpointUnorderedInsertion()\":[{\"details\":\"A value was attempted to be inserted on a past checkpoint.\"}],\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"ReentrancyGuardReentrantCall()\":[{\"details\":\"Unauthorized reentrant call.\"}],\"SafeCastOverflowedUintDowncast(uint8,uint256)\":[{\"details\":\"Value doesn't fit in an uint of `bits` size.\"}]},\"events\":{\"ExecuteSlash(uint256,uint256)\":{\"params\":{\"slashIndex\":\"index of the slash request\",\"slashedAmount\":\"virtual amount of the collateral slashed\"}},\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"RequestSlash(uint256,bytes32,address,uint256,uint48,uint48)\":{\"params\":{\"captureTimestamp\":\"time point when the stake was captured\",\"operator\":\"operator that could be slashed (if the request is not vetoed)\",\"slashAmount\":\"maximum amount of the collateral to be slashed\",\"slashIndex\":\"index of the slash request\",\"subnetwork\":\"subnetwork that requested the slash\",\"vetoDeadline\":\"deadline for the resolver to veto the slash (exclusively)\"}},\"SetResolver(bytes32,address)\":{\"params\":{\"resolver\":\"address of the resolver\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"}},\"VetoSlash(uint256,address)\":{\"params\":{\"resolver\":\"address of the resolver that vetoed the slash\",\"slashIndex\":\"index of the slash request\"}}},\"kind\":\"dev\",\"methods\":{\"cumulativeSlash(bytes32,address)\":{\"params\":{\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"},\"returns\":{\"_0\":\"cumulative slash amount\"}},\"cumulativeSlashAt(bytes32,address,uint48,bytes)\":{\"params\":{\"hint\":\"hint for the checkpoint index\",\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\",\"timestamp\":\"time point to get the cumulative slash amount until (inclusively)\"},\"returns\":{\"_0\":\"cumulative slash amount until the given timestamp (inclusively)\"}},\"executeSlash(uint256,bytes)\":{\"details\":\"Only a network middleware can call this function.\",\"params\":{\"hints\":\"hints for checkpoints' indexes\",\"slashIndex\":\"index of the slash request\"},\"returns\":{\"slashedAmount\":\"virtual amount of the collateral slashed\"}},\"initialize(bytes)\":{\"params\":{\"data\":\"some data to use\"}},\"requestSlash(bytes32,address,uint256,uint48,bytes)\":{\"details\":\"Only a network middleware can call this function.\",\"params\":{\"amount\":\"maximum amount of the collateral to be slashed\",\"captureTimestamp\":\"time point when the stake was captured\",\"hints\":\"hints for checkpoints' indexes\",\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"},\"returns\":{\"slashIndex\":\"index of the slash request\"}},\"resolver(bytes32,bytes)\":{\"params\":{\"hint\":\"hint for the checkpoint index\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"},\"returns\":{\"_0\":\"address of the resolver\"}},\"resolverAt(bytes32,uint48,bytes)\":{\"params\":{\"hint\":\"hint for the checkpoint index\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\",\"timestamp\":\"timestamp to get the resolver at\"},\"returns\":{\"_0\":\"address of the resolver\"}},\"slashRequestsLength()\":{\"returns\":{\"_0\":\"total number of slash requests\"}},\"slashableStake(bytes32,address,uint48,bytes)\":{\"params\":{\"captureTimestamp\":\"time point to get the stake amount at\",\"hints\":\"hints for the checkpoints' indexes\",\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"},\"returns\":{\"amount\":\"slashable amount of the stake\"}},\"staticDelegateCall(address,bytes)\":{\"details\":\"It allows to use this contract's storage on-chain.\",\"params\":{\"data\":\"data to make a delegatecall with\",\"target\":\"address of the contract to make a delegatecall to\"}},\"vetoSlash(uint256,bytes)\":{\"details\":\"Only a resolver can call this function.\",\"params\":{\"hints\":\"hints for checkpoints' indexes\",\"slashIndex\":\"index of the slash request\"}}},\"version\":1},\"userdoc\":{\"events\":{\"ExecuteSlash(uint256,uint256)\":{\"notice\":\"Emitted when a slash request is executed.\"},\"RequestSlash(uint256,bytes32,address,uint256,uint48,uint48)\":{\"notice\":\"Emitted when a slash request is created.\"},\"SetResolver(bytes32,address)\":{\"notice\":\"Emitted when a resolver is set.\"},\"VetoSlash(uint256,address)\":{\"notice\":\"Emitted when a slash request is vetoed.\"}},\"kind\":\"user\",\"methods\":{\"BURNER_GAS_LIMIT()\":{\"notice\":\"Get a gas limit for the burner.\"},\"BURNER_RESERVE()\":{\"notice\":\"Get a reserve gas between the gas limit check and the burner's execution.\"},\"FACTORY()\":{\"notice\":\"Get the factory's address.\"},\"NETWORK_MIDDLEWARE_SERVICE()\":{\"notice\":\"Get the network middleware service's address.\"},\"NETWORK_REGISTRY()\":{\"notice\":\"Get the network registry's address.\"},\"TYPE()\":{\"notice\":\"Get the entity's type.\"},\"VAULT_FACTORY()\":{\"notice\":\"Get the vault factory's address.\"},\"cumulativeSlash(bytes32,address)\":{\"notice\":\"Get a cumulative slash amount for an operator on a subnetwork.\"},\"cumulativeSlashAt(bytes32,address,uint48,bytes)\":{\"notice\":\"Get a cumulative slash amount for an operator on a subnetwork until a given timestamp (inclusively) using a hint.\"},\"executeSlash(uint256,bytes)\":{\"notice\":\"Execute a slash with a given slash index using hints.\"},\"initialize(bytes)\":{\"notice\":\"Initialize this entity contract by using a given data.\"},\"isBurnerHook()\":{\"notice\":\"Get if the burner is needed to be called on a slashing.\"},\"latestSlashedCaptureTimestamp(bytes32,address)\":{\"notice\":\"Get the latest capture timestamp that was slashed on a subnetwork.\"},\"requestSlash(bytes32,address,uint256,uint48,bytes)\":{\"notice\":\"Request a slash using a subnetwork for a particular operator by a given amount using hints.\"},\"resolver(bytes32,bytes)\":{\"notice\":\"Get a resolver for a given subnetwork using a hint.\"},\"resolverAt(bytes32,uint48,bytes)\":{\"notice\":\"Get a resolver for a given subnetwork at a particular timestamp using a hint.\"},\"resolverSetEpochsDelay()\":{\"notice\":\"Get a delay for networks in epochs to update a resolver.\"},\"slashRequests(uint256)\":{\"notice\":\"Get a particular slash request.\"},\"slashRequestsLength()\":{\"notice\":\"Get a total number of slash requests.\"},\"slashableStake(bytes32,address,uint48,bytes)\":{\"notice\":\"Get a slashable amount of a stake got at a given capture timestamp using hints.\"},\"staticDelegateCall(address,bytes)\":{\"notice\":\"Make a delegatecall from this contract to a given target contract with a particular data (always reverts with a return data).\"},\"vault()\":{\"notice\":\"Get the vault's address.\"},\"vetoDuration()\":{\"notice\":\"Get a duration during which resolvers can veto slash requests.\"},\"vetoSlash(uint256,bytes)\":{\"notice\":\"Veto a slash with a given slash index using hints.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/contracts/hints/SlasherHints.sol\":\"VetoSlasherHints\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol\":{\"keccak256\":\"0x6662ec4e5cefca03eeadd073e9469df8d2944bb2ee8ec8f7622c2c46aab5f225\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4d8544c6f8daa4d1bc215c6a72fe0acdb748664a105b0e5efc19295667521d45\",\"dweb:/ipfs/QmdGWqdnXT8S3RgCR6aV8XHZrsybieMQLLnug1NtpSjEXN\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0xc163fcf9bb10138631a9ba5564df1fa25db9adff73bd9ee868a8ae1858fe093a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9706d43a0124053d9880f6e31a59f31bc0a6a3dc1acd66ce0a16e1111658c5f6\",\"dweb:/ipfs/QmUFmfowzkRwGtDu36cXV9SPTBHJ3n7dG9xQiK5B28jTf2\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609\",\"dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9\",\"dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardUpgradeable.sol\":{\"keccak256\":\"0xb44e086e941292cdc7f440de51478493894ef0b1aeccb0c4047445919f667f74\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://942dad22fbdc1669f025540ba63aa3ccfad5f8458fc5d4525b31ebf272e7af45\",\"dweb:/ipfs/Qmdo4X2M82aM3AMoW2kf2jhYkSCyC4T1pHNd6obdsDFnAB\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol\":{\"keccak256\":\"0xdaba3f7c42c55b2896353f32bd27d4d5f8bae741b3b05d4c53f67abc4dc47ce8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1fa2e61141c602510bcd2cd936ed9561922ac8772a9b9c9a9db091a74e354a45\",\"dweb:/ipfs/QmcHQDDoEBwJmwUbzoVkytvJsBx3KVHYFFnDkvRGWh9Wmh\"]},\"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0xb6b36edd6a2999fd243ff226d6cbf84bd71af2432bbd0dfe19392996a1d9cb41\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1fd2f35495652e57e3f99bc6c510bc5f7dd398a176ea2e72d8ed730aebc6ca26\",\"dweb:/ipfs/QmTQV6X4gkikTib49cho5iDX3JvSQbdsoEChoDwrk3CbbH\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC1271.sol\":{\"keccak256\":\"0x85a45f3f10014a0f8be41157a32b6a5f905753ea64a4b64e29fc12b7deeecf39\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c3c74009ce36136b36c77c23935b8e4a7b4f253be2da2be4fb4a916b1ce43743\",\"dweb:/ipfs/QmcH36v3iN7SJJuF73AunLR2LtNxhVJ1wm63ph4dPZ4pcL\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC5267.sol\":{\"keccak256\":\"0x92aa1df62dc3d33f1656d63bede0923e0df0b706ad4137c8b10b0a8fe549fd92\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c5c0f29195ad64cbe556da8e257dac8f05f78c53f90323c0d2accf8e6922d33a\",\"dweb:/ipfs/QmQ61TED8uaCZwcbh8KkgRSsCav7x7HbcGHwHts3U4DmUP\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c\",\"dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0x6008dabfe393240d73d7dd7688033f72740d570aa422254d29a7dce8568f3aff\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f5196ec75139918c6c7bb4251b36395e668f1fa6d206beba7e7520e74913940d\",\"dweb:/ipfs/QmSyqjksXxmm2mCG6qRd1yuwLykypkSVBbnBnGqJRcuJMi\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x37bb49513c49c87c4642a891b13b63571bc87013dde806617aa1efb54605f386\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b3036b3a83b7c48f96641f2a9002b9f2dcb6a5958dd670894ada21ae8229b3d0\",\"dweb:/ipfs/QmUNfSBdoVtjhETaUJCYcaC7pTMgbhht926tJ2uXJbiVd3\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0xaf28a975a78550e45f65e559a3ad6a5ad43b9b8a37366999abd1b7084eb70721\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b7bd24e224f67f65bfadf85dc2929fa965456bb2415478bd0125471b5ce35245\",\"dweb:/ipfs/QmRaydGr8BTHs1kvaZfsNU69pKzUAGFrvABn1KiRSbE51y\"]},\"lib/openzeppelin-contracts/contracts/utils/ShortStrings.sol\":{\"keccak256\":\"0x18a7171df639a934592915a520ecb97c5bbc9675a1105607aac8a94e72bf62c6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7478e1f13da69a2867ccd883001d836b75620362e743f196376d63ed0c422a1c\",\"dweb:/ipfs/QmWywcQ9TNfwtoqAxbn25d8C5VrV12PrPS9UjtGe6pL2BA\"]},\"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0x32ba59b4b7299237c8ba56319110989d7978a039faf754793064e967e5894418\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1ae50c8b562427df610cc4540c9bf104acca7ef8e2dcae567ae7e52272281e9c\",\"dweb:/ipfs/QmTHiadFCSJUPpRjNegc5SahmeU8bAoY8i9Aq6tVscbcKR\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0x55f102ea785d8399c0e58d1108e2d289506dde18abc6db1b7f68c1f9f9bc5792\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e52e0a7765c943ef14e5bcf11e46e6139fa044be564881378349236bf2e3453\",\"dweb:/ipfs/QmZEeeXoFPW47amyP35gfzomF9DixqqTEPwzBakv6cZw6i\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0xeed0a08b0b091f528356cbc7245891a4c748682d4f6a18055e8e6ca77d12a6cf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba80ba06c8e6be852847e4c5f4492cef801feb6558ae09ed705ff2e04ea8b13c\",\"dweb:/ipfs/QmXRJDv3xHLVQCVXg1ZvR35QS9sij5y9NDWYzMfUfAdTHF\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/EIP712.sol\":{\"keccak256\":\"0x999f705a027ed6dc2d4e0df2cc4a509852c6bfd11de1c8161bf88832d0503fd0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0798def67258d9a3cc20b2b4da7ebf351a5cefe0abfdd665d2d81f8e32f89b21\",\"dweb:/ipfs/QmPEvJosnPfzHNjKvCv2D3891mA2Ww8eUwkqrxBjuYdHCt\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol\":{\"keccak256\":\"0xba333517a3add42cd35fe877656fc3dfcc9de53baa4f3aabbd6d12a92e4ea435\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2ceacff44c0fdc81e48e0e0b1db87a2076d3c1fb497341de077bf1da9f6b406c\",\"dweb:/ipfs/QmRUo1muMRAewxrKQ7TkXUtknyRoR57AyEkoPpiuZQ8FzX\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/SignatureChecker.sol\":{\"keccak256\":\"0x6b11eb41a228cca35d4b662b4df69fcd75192851365102690f57b2ac01e83fe6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ab006a2983ed350d2af21ddcdd835dcae3b8340086cc4d088460da5abd041f69\",\"dweb:/ipfs/QmbEacDhkJZiGrgzLjB4pNtE8Z1uudjDw1DvcDUTVQFsLG\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875\",\"dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0xe19a4d5f31d2861e7344e8e535e2feafb913d806d3e2b5fe7782741a2a7094fe\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4aed79c0fa6f0546ed02f2f683e8f77f0fd2ed7eb34d8bbf3d373c9a6d95b13c\",\"dweb:/ipfs/QmWqVz6UAVqmnWU5pqYPt1o6iDEZyPaBraAA3rKfTTSfYj\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x5f7e4076e175393767754387c962926577f1660dd9b810187b9002407656be72\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7d533a1c97cd43a57cd9c465f7ee8dd0e39ae93a8fb8ff8e5303a356b081cdcc\",\"dweb:/ipfs/QmVBEei6aTnvYNZp2CHYVNKyZS4q1KkjANfY39WVXZXVoT\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/Checkpoints.sol\":{\"keccak256\":\"0xbdc5e074d7dd6678f67e92b1a51a20226801a407b0e1af3da367c5d1ff4519ad\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a36cca6b22fff3db16fc789ff6c60eea71d4b156065d4d0c83a0bc5e91a77a8b\",\"dweb:/ipfs/QmYN3exd5AemxjBrN8XMB1p5LbbE16uC3sjbYjwi8AjcGR\"]},\"lib/openzeppelin-contracts/contracts/utils/types/Time.sol\":{\"keccak256\":\"0xc7755af115020049e4140f224f9ee88d7e1799ffb0646f37bf0df24bf6213f58\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7f09bf94d5274334ec021f61a04659db303f31e60460e14b709c9bf187740111\",\"dweb:/ipfs/QmNvgomZYUwFAt4cZbPWAiTeSZQreGehY9BK5xyVJsUttb\"]},\"src/contracts/common/Entity.sol\":{\"keccak256\":\"0x3d61a932995b8443381f3950542d388223a2c26dd5d29a3274dea3baa7388bd7\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://7cdf5f03ca72fd263fd32ff59c8d88ddca911ae83896a287d10772c1bbe9b138\",\"dweb:/ipfs/QmbP84r5BWT1Rn9AYTntWSf3xUMTTCohTZJFhbBhDXFoHa\"]},\"src/contracts/common/MigratableEntity.sol\":{\"keccak256\":\"0x2d736f4dacd5d7e7697503bc426c78b8250fe1694ca157965ec178da6807de58\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://f1237acf96b4b9f9b69156e068eddd726a6e15bd8e87a18dc999cd4ba4da069c\",\"dweb:/ipfs/QmS6M8fiFFSeuJ4ZKKq1z8W7w4ybeHQSy5TLASGoc1LVic\"]},\"src/contracts/common/StaticDelegateCallable.sol\":{\"keccak256\":\"0x350029aa8955eacaffffaeb58babc5c98e80ebc5c5db388ed17ee6465f4a9d90\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://eb392a8ee9050e0af606897df63e3404e3829e8b688b580663892f9664195764\",\"dweb:/ipfs/QmaXC8jqV8UrrAFkzXTEv2fJF56sy33HhLxAzaRZmUxuXD\"]},\"src/contracts/delegator/BaseDelegator.sol\":{\"keccak256\":\"0x7c54d491fdd4415b764a9c8defa068e56d4c0c8c9419be0053a1d377669290e8\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://9238bfbad0f6eeb0dc7727724de14380f1980b395902269703d5e2ef07e52e10\",\"dweb:/ipfs/QmPJn1V4HNXcEghYvogGuSTF24dSQUPosR5qtsXcmNqRm3\"]},\"src/contracts/delegator/FullRestakeDelegator.sol\":{\"keccak256\":\"0x0a81c4f8e72914563a9cb771e93acf889c71ea36b7bec040e4eb562b199d5af1\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://6fc66b6ba02da77046a0bbbd1dd407a62c08f52e04486c9cbd2cb1cca3da555f\",\"dweb:/ipfs/QmZQivK1ZnMxfRQQ5aLpV9co5u55wQVNev5Rg1hzAqxhkE\"]},\"src/contracts/delegator/NetworkRestakeDelegator.sol\":{\"keccak256\":\"0xd3a8e6522f9c6fdcc2da837c9023afd6bdff2bce45a35590320c475519e3636d\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://58b17a87f6554f08376f9ea7fedf486a4aa75801bf0ad8b23ff5a46959b6b7a3\",\"dweb:/ipfs/QmSTmNh67tYt8CmjVZb57r8N3qX5yeYdMApKPJm3qvQgQw\"]},\"src/contracts/delegator/OperatorNetworkSpecificDelegator.sol\":{\"keccak256\":\"0x031a10722b9ec49048f0952710401131290adb87e71caf294e864e7ac3b98a16\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://72428febc875134b2f29205e6f294634a1c22a7d5c78d6a9cb2f8196f107c9b5\",\"dweb:/ipfs/QmTPwXR6h5oytckmkLrHdKeEMdphJxceDhYUR4zvQeWAwY\"]},\"src/contracts/delegator/OperatorSpecificDelegator.sol\":{\"keccak256\":\"0x630ce62fa30b9f3349ab7a8cf8dbf041319febc6dd757be2f94d3d25944ed328\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://c2ac59d47ce57d2a6819ae9833e1a618a371eccff93eb5ab367b201b01f42bfa\",\"dweb:/ipfs/QmdBpGMBivpNPv2WbH8vnCUy5xkVeaxQvGgqi33vKCz1kA\"]},\"src/contracts/hints/DelegatorHints.sol\":{\"keccak256\":\"0x44aa0c396311a54afbc7c73e8dadeed41e3165a4fd13f712b27d63d50fc3376d\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://2f255214f3531fc707d88be0d56a7a0aed4180439316d099d760d9118aa83093\",\"dweb:/ipfs/QmZD1w5p1ukJSXumUAjvxwGmkPhn7vsr21Y2atLGEZR2oi\"]},\"src/contracts/hints/Hints.sol\":{\"keccak256\":\"0x8b565df1ae35993c097a9e642002782a8f451f6fd01809cad6bcd345bdf1b99c\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://99a19adb01e350a92f534095b3078229df1f2f83077992d75d58d8684be45971\",\"dweb:/ipfs/QmbmwcuswVbzvwHQFTtrJG86oV98GnfxqYTb8cV8u1acox\"]},\"src/contracts/hints/OptInServiceHints.sol\":{\"keccak256\":\"0x95d9407900d27b9f4a1233b772aeed809c07b2dc5b31cfc9fa77ca26514c49e5\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://a13a8877e312d7e6b8b85bde3668c5d84ff5ecc83f762cd573f2b7104c64eb42\",\"dweb:/ipfs/QmYV2J55acuGzCNnS3juABuUHY5U1xc8g8o9jwEyFFdeG5\"]},\"src/contracts/hints/SlasherHints.sol\":{\"keccak256\":\"0xd77c5f3bbb0265af8ecd947df88f6f9684e136d80052b5292f5b29aaa3566a3f\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://484a26504bf6706202ec82a9a4cfa7d196bbc552b5b78ced25bf7130c2842595\",\"dweb:/ipfs/QmaQqmkoZoUWEam4R94vmajzH3gKqFqpZQwFbrHDsN1peV\"]},\"src/contracts/hints/VaultHints.sol\":{\"keccak256\":\"0xccb505b7159b769cc114d67b87c2de6b106557f667fc8f3780114baad5c3c442\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://6d0c80a908fc16e96a8b5605a0bd53f9e89ad0ef0a738fbbae80ba4d3160749b\",\"dweb:/ipfs/QmXo5UtWoR8YmunqcbBU8rQMm1nvmvjNPoXcVrDhh4pEwR\"]},\"src/contracts/libraries/Checkpoints.sol\":{\"keccak256\":\"0xba90097c8bfe0a975499428b5f8ac5569483c7d92ccc28c12d70de416aae040c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://12f5d93ca94cd06d3147db68993165a58e17903ed53682560de61f3085ad4609\",\"dweb:/ipfs/QmePiuAqvXprMLmFZkGZeGjvGPAvsEDHfCDv7BoQhXu9xE\"]},\"src/contracts/libraries/ERC4626Math.sol\":{\"keccak256\":\"0x8441160513c1cbeb1c3b9ee077bcc7e7ce20006b52a77c8dd39ff0ef89699939\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://943f8cc3e26ddf649f465f40c909819f5c864717c4baa339e9e403b9374a4653\",\"dweb:/ipfs/QmXPxi1sUDsrGprZdUgCzoPEosaZMv9ZhygWQ1vAi1phAB\"]},\"src/contracts/libraries/Subnetwork.sol\":{\"keccak256\":\"0xf5ef5506fd66082b3c2e7f3df37529f5a8efad32ac62e7c8914bd63219190bfe\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba031a54ee0d0e9a270c2b9e18437f5668cfeb659cfd5fe0677459d7fcac2a56\",\"dweb:/ipfs/QmReP3H7qQ78tAfgLnJKsNEQNCQfF1X1Get38Ffd4kzq32\"]},\"src/contracts/service/OptInService.sol\":{\"keccak256\":\"0x4e0932077f2686b7990e10d59deb2535334c0d09e52ef6e57c6ab09eca21c4b1\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://7c00d311032ed4a1743aca7475f3c86ce15cdfc2218108efc3731c03d34a5278\",\"dweb:/ipfs/QmUGGfVwVhaHr5kS4177yKKYiLYzi5qZpkEmvYxBZqazxf\"]},\"src/contracts/slasher/BaseSlasher.sol\":{\"keccak256\":\"0x190e5dce196a061bdad42468c52e9f5b0eb7810cd7d0c19f04d6a2e94984f1b6\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://07ca08d0cd43c2fe5d54a5577f6bdd522ced410f5d3a52e764deaa7ba26b5f06\",\"dweb:/ipfs/QmZe3PiMKBQKWcwodaLupragdqxPjgS4v1qMC7RXau8hDF\"]},\"src/contracts/slasher/Slasher.sol\":{\"keccak256\":\"0xeee0cb25fad58d496fdcc641d852d11bae06e6ceed5230ae21150964175c494f\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://34aa27d21246a1bcee0b6a2afa8d9d613441156362430392f75d176511d58c61\",\"dweb:/ipfs/Qmf53Y3zdGfH4PU2zpSGeHZ8mMLzLXCtmkQrG5mnVJECQ3\"]},\"src/contracts/slasher/VetoSlasher.sol\":{\"keccak256\":\"0xeccc8128de5e1ad499c067feac1c526638fbbac1a18b96726fc7507969fd5897\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://cdfcf281338423625acbccdf8810115b258ef7cfe4aa3c10b8911ead1aa85429\",\"dweb:/ipfs/QmZFsDvZXpkFkx4PHcDXAVPN3ZCAahbSVfYpSVrMBvbt4k\"]},\"src/contracts/vault/Vault.sol\":{\"keccak256\":\"0x2ceff6ed3298c4cad144c99fcc79b51cb9397d6ebef00285b915848b476f8c2e\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://11f2fb3581854f3ab6e82e8d4935d9eb510c903a13c3f022346c2956a58f5307\",\"dweb:/ipfs/QmdUnoXoyYoG9SGWyQZCFyLDRUUX3eXyXetkRvw6jxqqBz\"]},\"src/contracts/vault/VaultStorage.sol\":{\"keccak256\":\"0x57db25b127d77ea3472de53e3a4af3354399655b9268638b99ca5925fa364a56\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://aa763d9a6ec508ae3abfb8228b72b9fd9525279e5135d4962e79ff059feb1173\",\"dweb:/ipfs/QmcbDR6E9wyEpu6V2FkEC4hnWy47zXA9LSKJde6zSGd33Q\"]},\"src/interfaces/common/IEntity.sol\":{\"keccak256\":\"0x8ef4b63d6da63489778ccd5f8d13ebdd527dd4b62730b2c616df5af7474d2d21\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a8d69576a9219d85c50816a18ad53a4d53cfcb27ed38b8cccc808dc2734b71b\",\"dweb:/ipfs/QmYVN3P4Q4REvBWJ97TbAcaxm3uyB2anV6NSGa6ZtSwcEv\"]},\"src/interfaces/common/IMigratableEntity.sol\":{\"keccak256\":\"0x8f5f2809f3afbe8ebfbb365dd7b57b4dd3b6f9943a6187eaf648d45895b8e3c4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ffe640537d539e7a4fde70d30d3e4c57f4ba9c2c25c450cea713aae38e8fd5c\",\"dweb:/ipfs/QmSUTGzvdcn1R1KB7tLThMRtESsfPbeXDhhhKWGtntzBds\"]},\"src/interfaces/common/IRegistry.sol\":{\"keccak256\":\"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014\",\"dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK\"]},\"src/interfaces/common/IStaticDelegateCallable.sol\":{\"keccak256\":\"0xa335d4e81b9071b7de66ef92b43ff20671d86516eb1be46fef29a3483cd3f5d5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d464b9db863c14c05547d2b23352f2e9b7b784799cf09f6bbc4906a2a74e3516\",\"dweb:/ipfs/QmUVWzFvJz7eEbDQKiFTTzwi7TEbjcs3VmwdM4kuptAKvi\"]},\"src/interfaces/delegator/IBaseDelegator.sol\":{\"keccak256\":\"0x96bb312f032e17accce3f8f80936d99468029d6b37c9ca74acdb4b026a0148ee\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2a66dcb5b7d1a6ef6a363431ea98ebd78bc4fdd3d7a134d9b542dc66e7d025c2\",\"dweb:/ipfs/QmRhTPLd2ZAyRHmJUFUcWKs9b3if49QY17LYZuRqWmghw8\"]},\"src/interfaces/delegator/IDelegatorHook.sol\":{\"keccak256\":\"0xc51aa8d7d1f6c8043ee819b7aeb86da0e993912e1442098df897e299f01f9f46\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://adddf5cb2ba282aeb576b26efb28640f865a1721cc9b6eee8b3ee0457a2c9780\",\"dweb:/ipfs/QmNYgAmnLRwWZbhTuQhZs9rx4zcme1df5mEepkrniorSoW\"]},\"src/interfaces/delegator/IFullRestakeDelegator.sol\":{\"keccak256\":\"0xa3c8cb2e45d4d8ce90e95263bea40c01dc400f05ad65bc29597d878606be5e7d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://782cf5e201aa4cca037ebafd3807a68ff1cc721d5b8416a35244db0d0607369e\",\"dweb:/ipfs/QmQkJks6x7CKndeTPa9LxgTNygD5uEi7obhADhpq1Lsr9A\"]},\"src/interfaces/delegator/INetworkRestakeDelegator.sol\":{\"keccak256\":\"0xe7030fe30389a147fd710e3436ec346b4842695fd3e65a81b95375c9f1d633fc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://739c7e66d301778054f5c90bee45ec9438f68afba8a03eaaac52064c73b115ad\",\"dweb:/ipfs/QmfZ2ytKcTykAc76nxhg8ikUXV8NdBpetqb8W4YWPcox1Z\"]},\"src/interfaces/delegator/IOperatorNetworkSpecificDelegator.sol\":{\"keccak256\":\"0x74b95e64d29769202d45dd277bb830f623ff3d41ce77b80ce3ee4e318a5c71ec\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e512b903aae5c1b8a028c6e3f4f6223b5cb5d704503cfa6bd37b5346868f5c20\",\"dweb:/ipfs/QmZim9YExsPWtyxyeui993HTKAEmrg8MUcSkZ77Gp2JcuZ\"]},\"src/interfaces/delegator/IOperatorSpecificDelegator.sol\":{\"keccak256\":\"0x72075cab585dc17240cc3e32bc99b92f0d5627ddd988fed680e3e1a52d5a01e4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7448bc90699409ae61d85216b5efc2143a37f0f73354be2aea993bc54afca441\",\"dweb:/ipfs/QmXE4gAxM8pHosZK8mcTcj17puBx484meDCcmrDePskGHZ\"]},\"src/interfaces/service/INetworkMiddlewareService.sol\":{\"keccak256\":\"0x347afc7fcf1fbcdb96d66162070ef6c78aed27b3af2c1d5dfb4e511840631783\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2d90b8ceb495159e8e4e95d76447719dd166443f67dfabdd942846162071595c\",\"dweb:/ipfs/QmVVuiAWYx92T6vBvNMKZfTvraCf1fa16BsUKkdNs3hdHA\"]},\"src/interfaces/service/IOptInService.sol\":{\"keccak256\":\"0x76fb5460a6d87a5705433d4fbeff7253cd75b8bbd0c888b2088f16e86ace146a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://990322019b3d11465f7024bae77ccbf7e2fe5d6fa3c754584778f37d04fa1337\",\"dweb:/ipfs/QmaSNHzcqxTkUCG9a4nqVfLECHLdjdrwAnDi3yDC7tDL24\"]},\"src/interfaces/slasher/IBaseSlasher.sol\":{\"keccak256\":\"0x7c82528b445659c313ab77335c407b0b6efe5e79027187bb287f7bc74202b404\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0274c90aa5df1aa6bb470a6aab53992fb14fd7e5472c9430416505b29647d9cf\",\"dweb:/ipfs/QmckbmJLDetPemVzCnnGcKYWAZV2BRFXGDsjiaec8jkHxx\"]},\"src/interfaces/slasher/IBurner.sol\":{\"keccak256\":\"0xaf495dacc19ae0b3c787ba8021c5944927d70261536addd234d7dab146158c2b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9b3cc66251008be6ff9fc8b11ecc6831d5a9dca49a3fe9817fcd970253c1d447\",\"dweb:/ipfs/QmVxfb9ALGdF9W3SN2h41gQbUct6tawvu5bw4K89kFQ4HW\"]},\"src/interfaces/slasher/ISlasher.sol\":{\"keccak256\":\"0x34d226d67a3d5e16571f2fac91a8b9773551bcc41c88a96279669dd78d192625\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a6e8c1462ee4a1b0f745414be043c09012ea676613790aba004b06c85c980d1\",\"dweb:/ipfs/QmadjNEbHKRthtA1EeNy3Kg2sXpejH2KBeHm8QZtBPvXbJ\"]},\"src/interfaces/slasher/IVetoSlasher.sol\":{\"keccak256\":\"0xdf7edd04a4f36e9aec3a15241dcb6b6315b2e64927b12710c2c410d571fc55e9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c4be6ac339c2ebf230fed65363f036784224095d0cd0f3f2d01d64d6e0da9508\",\"dweb:/ipfs/QmRSMbpfaHExqrzUA8vYZMYZWh6eQW1KX9JKJSLdgronfg\"]},\"src/interfaces/vault/IVault.sol\":{\"keccak256\":\"0xffee01d383cd4e1a5530c614bf4360c1ef070c288abec9da1eb531b51bc07235\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://04f0046cac285d8ec44ebbb1f79dc94fab4495767190cad8364fbc1fafaadfb9\",\"dweb:/ipfs/QmUawAunwzXfCyShWfhKeThAgKtqe51hmrxvrXvM772M2R\"]},\"src/interfaces/vault/IVaultStorage.sol\":{\"keccak256\":\"0x592626f13754194f83047135de19229c49390bd59e34659b1bb38be71d973a22\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://06a6a9dfddd05e580b32bebe2cff4f63ba26a653180676d58225dd30d9c89d3e\",\"dweb:/ipfs/QmdgzBeY6Sxo8mGtyBxtv1tM1c2kU6J6zjeRd7vuXm4DU6\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.25+commit.b61c2a91"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"baseSlasherHints","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"AlreadySet"},{"inputs":[],"type":"error","name":"CheckpointUnorderedInsertion"},{"inputs":[],"type":"error","name":"ExternalCall"},{"inputs":[],"type":"error","name":"InsufficientBurnerGas"},{"inputs":[],"type":"error","name":"InsufficientSlash"},{"inputs":[],"type":"error","name":"InvalidCaptureTimestamp"},{"inputs":[],"type":"error","name":"InvalidInitialization"},{"inputs":[],"type":"error","name":"InvalidResolverSetEpochsDelay"},{"inputs":[],"type":"error","name":"InvalidVetoDuration"},{"inputs":[],"type":"error","name":"NoBurner"},{"inputs":[],"type":"error","name":"NoResolver"},{"inputs":[],"type":"error","name":"NotInitialized"},{"inputs":[],"type":"error","name":"NotInitializing"},{"inputs":[],"type":"error","name":"NotNetwork"},{"inputs":[],"type":"error","name":"NotNetworkMiddleware"},{"inputs":[],"type":"error","name":"NotResolver"},{"inputs":[],"type":"error","name":"NotVault"},{"inputs":[],"type":"error","name":"ReentrancyGuardReentrantCall"},{"inputs":[{"internalType":"uint8","name":"bits","type":"uint8"},{"internalType":"uint256","name":"value","type":"uint256"}],"type":"error","name":"SafeCastOverflowedUintDowncast"},{"inputs":[],"type":"error","name":"SlashPeriodEnded"},{"inputs":[],"type":"error","name":"SlashRequestCompleted"},{"inputs":[],"type":"error","name":"SlashRequestNotExist"},{"inputs":[],"type":"error","name":"VetoPeriodEnded"},{"inputs":[],"type":"error","name":"VetoPeriodNotEnded"},{"inputs":[{"internalType":"uint256","name":"slashIndex","type":"uint256","indexed":true},{"internalType":"uint256","name":"slashedAmount","type":"uint256","indexed":false}],"type":"event","name":"ExecuteSlash","anonymous":false},{"inputs":[{"internalType":"uint64","name":"version","type":"uint64","indexed":false}],"type":"event","name":"Initialized","anonymous":false},{"inputs":[{"internalType":"uint256","name":"slashIndex","type":"uint256","indexed":true},{"internalType":"bytes32","name":"subnetwork","type":"bytes32","indexed":true},{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"uint256","name":"slashAmount","type":"uint256","indexed":false},{"internalType":"uint48","name":"captureTimestamp","type":"uint48","indexed":false},{"internalType":"uint48","name":"vetoDeadline","type":"uint48","indexed":false}],"type":"event","name":"RequestSlash","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32","indexed":true},{"internalType":"address","name":"resolver","type":"address","indexed":false}],"type":"event","name":"SetResolver","anonymous":false},{"inputs":[{"internalType":"uint256","name":"slashIndex","type":"uint256","indexed":true},{"internalType":"address","name":"resolver","type":"address","indexed":true}],"type":"event","name":"VetoSlash","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"BASE_SLASHER_HINTS","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"BURNER_GAS_LIMIT","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"BURNER_RESERVE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"FACTORY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"NETWORK_MIDDLEWARE_SERVICE","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"NETWORK_REGISTRY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"TYPE","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"VAULT_FACTORY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"cumulativeSlash","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint48","name":"timestamp","type":"uint48"},{"internalType":"bytes","name":"hint","type":"bytes"}],"stateMutability":"view","type":"function","name":"cumulativeSlashAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"slashIndex","type":"uint256"},{"internalType":"bytes","name":"hints","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"executeSlash","outputs":[{"internalType":"uint256","name":"slashedAmount","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"slasher","type":"address"},{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint48","name":"captureTimestamp","type":"uint48"}],"stateMutability":"view","type":"function","name":"executeSlashHints","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[],"stateMutability":"view","type":"function","name":"isBurnerHook","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"latestSlashedCaptureTimestamp","outputs":[{"internalType":"uint48","name":"value","type":"uint48"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint48","name":"captureTimestamp","type":"uint48"},{"internalType":"bytes","name":"hints","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"requestSlash","outputs":[{"internalType":"uint256","name":"slashIndex","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"slasher","type":"address"},{"internalType":"address","name":"msgSender","type":"address"},{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint48","name":"captureTimestamp","type":"uint48"}],"stateMutability":"view","type":"function","name":"requestSlashHints","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"bytes","name":"hint","type":"bytes"}],"stateMutability":"view","type":"function","name":"resolver","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"uint48","name":"timestamp","type":"uint48"},{"internalType":"bytes","name":"hint","type":"bytes"}],"stateMutability":"view","type":"function","name":"resolverAt","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"slasher","type":"address"},{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"uint48","name":"timestamp","type":"uint48"}],"stateMutability":"view","type":"function","name":"resolverHint","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"uint48","name":"timestamp","type":"uint48"}],"stateMutability":"view","type":"function","name":"resolverHintInternal","outputs":[{"internalType":"bool","name":"exists","type":"bool"},{"internalType":"uint32","name":"hint","type":"uint32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"resolverSetEpochsDelay","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint96","name":"identifier","type":"uint96"},{"internalType":"address","name":"resolver_","type":"address"},{"internalType":"bytes","name":"hints","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"setResolver"},{"inputs":[{"internalType":"address","name":"slasher","type":"address"},{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"uint48","name":"timestamp","type":"uint48"}],"stateMutability":"view","type":"function","name":"setResolverHints","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function","name":"slashRequests","outputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint48","name":"captureTimestamp","type":"uint48"},{"internalType":"uint48","name":"vetoDeadline","type":"uint48"},{"internalType":"bool","name":"completed","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"slashRequestsLength","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint48","name":"captureTimestamp","type":"uint48"},{"internalType":"bytes","name":"hints","type":"bytes"}],"stateMutability":"view","type":"function","name":"slashableStake","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"staticDelegateCall"},{"inputs":[],"stateMutability":"view","type":"function","name":"vault","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"vetoDuration","outputs":[{"internalType":"uint48","name":"","type":"uint48"}]},{"inputs":[{"internalType":"uint256","name":"slashIndex","type":"uint256"},{"internalType":"bytes","name":"hints","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"vetoSlash"},{"inputs":[{"internalType":"address","name":"slasher","type":"address"},{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"uint48","name":"captureTimestamp","type":"uint48"}],"stateMutability":"view","type":"function","name":"vetoSlashHints","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]}],"devdoc":{"kind":"dev","methods":{"cumulativeSlash(bytes32,address)":{"params":{"operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"},"returns":{"_0":"cumulative slash amount"}},"cumulativeSlashAt(bytes32,address,uint48,bytes)":{"params":{"hint":"hint for the checkpoint index","operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)","timestamp":"time point to get the cumulative slash amount until (inclusively)"},"returns":{"_0":"cumulative slash amount until the given timestamp (inclusively)"}},"executeSlash(uint256,bytes)":{"details":"Only a network middleware can call this function.","params":{"hints":"hints for checkpoints' indexes","slashIndex":"index of the slash request"},"returns":{"slashedAmount":"virtual amount of the collateral slashed"}},"initialize(bytes)":{"params":{"data":"some data to use"}},"requestSlash(bytes32,address,uint256,uint48,bytes)":{"details":"Only a network middleware can call this function.","params":{"amount":"maximum amount of the collateral to be slashed","captureTimestamp":"time point when the stake was captured","hints":"hints for checkpoints' indexes","operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"},"returns":{"slashIndex":"index of the slash request"}},"resolver(bytes32,bytes)":{"params":{"hint":"hint for the checkpoint index","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"},"returns":{"_0":"address of the resolver"}},"resolverAt(bytes32,uint48,bytes)":{"params":{"hint":"hint for the checkpoint index","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)","timestamp":"timestamp to get the resolver at"},"returns":{"_0":"address of the resolver"}},"slashRequestsLength()":{"returns":{"_0":"total number of slash requests"}},"slashableStake(bytes32,address,uint48,bytes)":{"params":{"captureTimestamp":"time point to get the stake amount at","hints":"hints for the checkpoints' indexes","operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"},"returns":{"amount":"slashable amount of the stake"}},"staticDelegateCall(address,bytes)":{"details":"It allows to use this contract's storage on-chain.","params":{"data":"data to make a delegatecall with","target":"address of the contract to make a delegatecall to"}},"vetoSlash(uint256,bytes)":{"details":"Only a resolver can call this function.","params":{"hints":"hints for checkpoints' indexes","slashIndex":"index of the slash request"}}},"version":1},"userdoc":{"kind":"user","methods":{"BURNER_GAS_LIMIT()":{"notice":"Get a gas limit for the burner."},"BURNER_RESERVE()":{"notice":"Get a reserve gas between the gas limit check and the burner's execution."},"FACTORY()":{"notice":"Get the factory's address."},"NETWORK_MIDDLEWARE_SERVICE()":{"notice":"Get the network middleware service's address."},"NETWORK_REGISTRY()":{"notice":"Get the network registry's address."},"TYPE()":{"notice":"Get the entity's type."},"VAULT_FACTORY()":{"notice":"Get the vault factory's address."},"cumulativeSlash(bytes32,address)":{"notice":"Get a cumulative slash amount for an operator on a subnetwork."},"cumulativeSlashAt(bytes32,address,uint48,bytes)":{"notice":"Get a cumulative slash amount for an operator on a subnetwork until a given timestamp (inclusively) using a hint."},"executeSlash(uint256,bytes)":{"notice":"Execute a slash with a given slash index using hints."},"initialize(bytes)":{"notice":"Initialize this entity contract by using a given data."},"isBurnerHook()":{"notice":"Get if the burner is needed to be called on a slashing."},"latestSlashedCaptureTimestamp(bytes32,address)":{"notice":"Get the latest capture timestamp that was slashed on a subnetwork."},"requestSlash(bytes32,address,uint256,uint48,bytes)":{"notice":"Request a slash using a subnetwork for a particular operator by a given amount using hints."},"resolver(bytes32,bytes)":{"notice":"Get a resolver for a given subnetwork using a hint."},"resolverAt(bytes32,uint48,bytes)":{"notice":"Get a resolver for a given subnetwork at a particular timestamp using a hint."},"resolverSetEpochsDelay()":{"notice":"Get a delay for networks in epochs to update a resolver."},"slashRequests(uint256)":{"notice":"Get a particular slash request."},"slashRequestsLength()":{"notice":"Get a total number of slash requests."},"slashableStake(bytes32,address,uint48,bytes)":{"notice":"Get a slashable amount of a stake got at a given capture timestamp using hints."},"staticDelegateCall(address,bytes)":{"notice":"Make a delegatecall from this contract to a given target contract with a particular data (always reverts with a return data)."},"vault()":{"notice":"Get the vault's address."},"vetoDuration()":{"notice":"Get a duration during which resolvers can veto slash requests."},"vetoSlash(uint256,bytes)":{"notice":"Veto a slash with a given slash index using hints."}},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/contracts/hints/SlasherHints.sol":"VetoSlasherHints"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol":{"keccak256":"0x6662ec4e5cefca03eeadd073e9469df8d2944bb2ee8ec8f7622c2c46aab5f225","urls":["bzz-raw://4d8544c6f8daa4d1bc215c6a72fe0acdb748664a105b0e5efc19295667521d45","dweb:/ipfs/QmdGWqdnXT8S3RgCR6aV8XHZrsybieMQLLnug1NtpSjEXN"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol":{"keccak256":"0xc163fcf9bb10138631a9ba5564df1fa25db9adff73bd9ee868a8ae1858fe093a","urls":["bzz-raw://9706d43a0124053d9880f6e31a59f31bc0a6a3dc1acd66ce0a16e1111658c5f6","dweb:/ipfs/QmUFmfowzkRwGtDu36cXV9SPTBHJ3n7dG9xQiK5B28jTf2"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b","urls":["bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609","dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol":{"keccak256":"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397","urls":["bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9","dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardUpgradeable.sol":{"keccak256":"0xb44e086e941292cdc7f440de51478493894ef0b1aeccb0c4047445919f667f74","urls":["bzz-raw://942dad22fbdc1669f025540ba63aa3ccfad5f8458fc5d4525b31ebf272e7af45","dweb:/ipfs/Qmdo4X2M82aM3AMoW2kf2jhYkSCyC4T1pHNd6obdsDFnAB"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol":{"keccak256":"0xdaba3f7c42c55b2896353f32bd27d4d5f8bae741b3b05d4c53f67abc4dc47ce8","urls":["bzz-raw://1fa2e61141c602510bcd2cd936ed9561922ac8772a9b9c9a9db091a74e354a45","dweb:/ipfs/QmcHQDDoEBwJmwUbzoVkytvJsBx3KVHYFFnDkvRGWh9Wmh"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol":{"keccak256":"0xb6b36edd6a2999fd243ff226d6cbf84bd71af2432bbd0dfe19392996a1d9cb41","urls":["bzz-raw://1fd2f35495652e57e3f99bc6c510bc5f7dd398a176ea2e72d8ed730aebc6ca26","dweb:/ipfs/QmTQV6X4gkikTib49cho5iDX3JvSQbdsoEChoDwrk3CbbH"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC1271.sol":{"keccak256":"0x85a45f3f10014a0f8be41157a32b6a5f905753ea64a4b64e29fc12b7deeecf39","urls":["bzz-raw://c3c74009ce36136b36c77c23935b8e4a7b4f253be2da2be4fb4a916b1ce43743","dweb:/ipfs/QmcH36v3iN7SJJuF73AunLR2LtNxhVJ1wm63ph4dPZ4pcL"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC5267.sol":{"keccak256":"0x92aa1df62dc3d33f1656d63bede0923e0df0b706ad4137c8b10b0a8fe549fd92","urls":["bzz-raw://c5c0f29195ad64cbe556da8e257dac8f05f78c53f90323c0d2accf8e6922d33a","dweb:/ipfs/QmQ61TED8uaCZwcbh8KkgRSsCav7x7HbcGHwHts3U4DmUP"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70","urls":["bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c","dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol":{"keccak256":"0x6008dabfe393240d73d7dd7688033f72740d570aa422254d29a7dce8568f3aff","urls":["bzz-raw://f5196ec75139918c6c7bb4251b36395e668f1fa6d206beba7e7520e74913940d","dweb:/ipfs/QmSyqjksXxmm2mCG6qRd1yuwLykypkSVBbnBnGqJRcuJMi"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0x37bb49513c49c87c4642a891b13b63571bc87013dde806617aa1efb54605f386","urls":["bzz-raw://b3036b3a83b7c48f96641f2a9002b9f2dcb6a5958dd670894ada21ae8229b3d0","dweb:/ipfs/QmUNfSBdoVtjhETaUJCYcaC7pTMgbhht926tJ2uXJbiVd3"],"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/ShortStrings.sol":{"keccak256":"0x18a7171df639a934592915a520ecb97c5bbc9675a1105607aac8a94e72bf62c6","urls":["bzz-raw://7478e1f13da69a2867ccd883001d836b75620362e743f196376d63ed0c422a1c","dweb:/ipfs/QmWywcQ9TNfwtoqAxbn25d8C5VrV12PrPS9UjtGe6pL2BA"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol":{"keccak256":"0x32ba59b4b7299237c8ba56319110989d7978a039faf754793064e967e5894418","urls":["bzz-raw://1ae50c8b562427df610cc4540c9bf104acca7ef8e2dcae567ae7e52272281e9c","dweb:/ipfs/QmTHiadFCSJUPpRjNegc5SahmeU8bAoY8i9Aq6tVscbcKR"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0x55f102ea785d8399c0e58d1108e2d289506dde18abc6db1b7f68c1f9f9bc5792","urls":["bzz-raw://6e52e0a7765c943ef14e5bcf11e46e6139fa044be564881378349236bf2e3453","dweb:/ipfs/QmZEeeXoFPW47amyP35gfzomF9DixqqTEPwzBakv6cZw6i"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol":{"keccak256":"0xeed0a08b0b091f528356cbc7245891a4c748682d4f6a18055e8e6ca77d12a6cf","urls":["bzz-raw://ba80ba06c8e6be852847e4c5f4492cef801feb6558ae09ed705ff2e04ea8b13c","dweb:/ipfs/QmXRJDv3xHLVQCVXg1ZvR35QS9sij5y9NDWYzMfUfAdTHF"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/EIP712.sol":{"keccak256":"0x999f705a027ed6dc2d4e0df2cc4a509852c6bfd11de1c8161bf88832d0503fd0","urls":["bzz-raw://0798def67258d9a3cc20b2b4da7ebf351a5cefe0abfdd665d2d81f8e32f89b21","dweb:/ipfs/QmPEvJosnPfzHNjKvCv2D3891mA2Ww8eUwkqrxBjuYdHCt"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol":{"keccak256":"0xba333517a3add42cd35fe877656fc3dfcc9de53baa4f3aabbd6d12a92e4ea435","urls":["bzz-raw://2ceacff44c0fdc81e48e0e0b1db87a2076d3c1fb497341de077bf1da9f6b406c","dweb:/ipfs/QmRUo1muMRAewxrKQ7TkXUtknyRoR57AyEkoPpiuZQ8FzX"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/SignatureChecker.sol":{"keccak256":"0x6b11eb41a228cca35d4b662b4df69fcd75192851365102690f57b2ac01e83fe6","urls":["bzz-raw://ab006a2983ed350d2af21ddcdd835dcae3b8340086cc4d088460da5abd041f69","dweb:/ipfs/QmbEacDhkJZiGrgzLjB4pNtE8Z1uudjDw1DvcDUTVQFsLG"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b","urls":["bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df","dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d","urls":["bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875","dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol":{"keccak256":"0xe19a4d5f31d2861e7344e8e535e2feafb913d806d3e2b5fe7782741a2a7094fe","urls":["bzz-raw://4aed79c0fa6f0546ed02f2f683e8f77f0fd2ed7eb34d8bbf3d373c9a6d95b13c","dweb:/ipfs/QmWqVz6UAVqmnWU5pqYPt1o6iDEZyPaBraAA3rKfTTSfYj"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0x5f7e4076e175393767754387c962926577f1660dd9b810187b9002407656be72","urls":["bzz-raw://7d533a1c97cd43a57cd9c465f7ee8dd0e39ae93a8fb8ff8e5303a356b081cdcc","dweb:/ipfs/QmVBEei6aTnvYNZp2CHYVNKyZS4q1KkjANfY39WVXZXVoT"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/Checkpoints.sol":{"keccak256":"0xbdc5e074d7dd6678f67e92b1a51a20226801a407b0e1af3da367c5d1ff4519ad","urls":["bzz-raw://a36cca6b22fff3db16fc789ff6c60eea71d4b156065d4d0c83a0bc5e91a77a8b","dweb:/ipfs/QmYN3exd5AemxjBrN8XMB1p5LbbE16uC3sjbYjwi8AjcGR"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/types/Time.sol":{"keccak256":"0xc7755af115020049e4140f224f9ee88d7e1799ffb0646f37bf0df24bf6213f58","urls":["bzz-raw://7f09bf94d5274334ec021f61a04659db303f31e60460e14b709c9bf187740111","dweb:/ipfs/QmNvgomZYUwFAt4cZbPWAiTeSZQreGehY9BK5xyVJsUttb"],"license":"MIT"},"src/contracts/common/Entity.sol":{"keccak256":"0x3d61a932995b8443381f3950542d388223a2c26dd5d29a3274dea3baa7388bd7","urls":["bzz-raw://7cdf5f03ca72fd263fd32ff59c8d88ddca911ae83896a287d10772c1bbe9b138","dweb:/ipfs/QmbP84r5BWT1Rn9AYTntWSf3xUMTTCohTZJFhbBhDXFoHa"],"license":"BUSL-1.1"},"src/contracts/common/MigratableEntity.sol":{"keccak256":"0x2d736f4dacd5d7e7697503bc426c78b8250fe1694ca157965ec178da6807de58","urls":["bzz-raw://f1237acf96b4b9f9b69156e068eddd726a6e15bd8e87a18dc999cd4ba4da069c","dweb:/ipfs/QmS6M8fiFFSeuJ4ZKKq1z8W7w4ybeHQSy5TLASGoc1LVic"],"license":"BUSL-1.1"},"src/contracts/common/StaticDelegateCallable.sol":{"keccak256":"0x350029aa8955eacaffffaeb58babc5c98e80ebc5c5db388ed17ee6465f4a9d90","urls":["bzz-raw://eb392a8ee9050e0af606897df63e3404e3829e8b688b580663892f9664195764","dweb:/ipfs/QmaXC8jqV8UrrAFkzXTEv2fJF56sy33HhLxAzaRZmUxuXD"],"license":"BUSL-1.1"},"src/contracts/delegator/BaseDelegator.sol":{"keccak256":"0x7c54d491fdd4415b764a9c8defa068e56d4c0c8c9419be0053a1d377669290e8","urls":["bzz-raw://9238bfbad0f6eeb0dc7727724de14380f1980b395902269703d5e2ef07e52e10","dweb:/ipfs/QmPJn1V4HNXcEghYvogGuSTF24dSQUPosR5qtsXcmNqRm3"],"license":"BUSL-1.1"},"src/contracts/delegator/FullRestakeDelegator.sol":{"keccak256":"0x0a81c4f8e72914563a9cb771e93acf889c71ea36b7bec040e4eb562b199d5af1","urls":["bzz-raw://6fc66b6ba02da77046a0bbbd1dd407a62c08f52e04486c9cbd2cb1cca3da555f","dweb:/ipfs/QmZQivK1ZnMxfRQQ5aLpV9co5u55wQVNev5Rg1hzAqxhkE"],"license":"BUSL-1.1"},"src/contracts/delegator/NetworkRestakeDelegator.sol":{"keccak256":"0xd3a8e6522f9c6fdcc2da837c9023afd6bdff2bce45a35590320c475519e3636d","urls":["bzz-raw://58b17a87f6554f08376f9ea7fedf486a4aa75801bf0ad8b23ff5a46959b6b7a3","dweb:/ipfs/QmSTmNh67tYt8CmjVZb57r8N3qX5yeYdMApKPJm3qvQgQw"],"license":"BUSL-1.1"},"src/contracts/delegator/OperatorNetworkSpecificDelegator.sol":{"keccak256":"0x031a10722b9ec49048f0952710401131290adb87e71caf294e864e7ac3b98a16","urls":["bzz-raw://72428febc875134b2f29205e6f294634a1c22a7d5c78d6a9cb2f8196f107c9b5","dweb:/ipfs/QmTPwXR6h5oytckmkLrHdKeEMdphJxceDhYUR4zvQeWAwY"],"license":"BUSL-1.1"},"src/contracts/delegator/OperatorSpecificDelegator.sol":{"keccak256":"0x630ce62fa30b9f3349ab7a8cf8dbf041319febc6dd757be2f94d3d25944ed328","urls":["bzz-raw://c2ac59d47ce57d2a6819ae9833e1a618a371eccff93eb5ab367b201b01f42bfa","dweb:/ipfs/QmdBpGMBivpNPv2WbH8vnCUy5xkVeaxQvGgqi33vKCz1kA"],"license":"BUSL-1.1"},"src/contracts/hints/DelegatorHints.sol":{"keccak256":"0x44aa0c396311a54afbc7c73e8dadeed41e3165a4fd13f712b27d63d50fc3376d","urls":["bzz-raw://2f255214f3531fc707d88be0d56a7a0aed4180439316d099d760d9118aa83093","dweb:/ipfs/QmZD1w5p1ukJSXumUAjvxwGmkPhn7vsr21Y2atLGEZR2oi"],"license":"BUSL-1.1"},"src/contracts/hints/Hints.sol":{"keccak256":"0x8b565df1ae35993c097a9e642002782a8f451f6fd01809cad6bcd345bdf1b99c","urls":["bzz-raw://99a19adb01e350a92f534095b3078229df1f2f83077992d75d58d8684be45971","dweb:/ipfs/QmbmwcuswVbzvwHQFTtrJG86oV98GnfxqYTb8cV8u1acox"],"license":"BUSL-1.1"},"src/contracts/hints/OptInServiceHints.sol":{"keccak256":"0x95d9407900d27b9f4a1233b772aeed809c07b2dc5b31cfc9fa77ca26514c49e5","urls":["bzz-raw://a13a8877e312d7e6b8b85bde3668c5d84ff5ecc83f762cd573f2b7104c64eb42","dweb:/ipfs/QmYV2J55acuGzCNnS3juABuUHY5U1xc8g8o9jwEyFFdeG5"],"license":"BUSL-1.1"},"src/contracts/hints/SlasherHints.sol":{"keccak256":"0xd77c5f3bbb0265af8ecd947df88f6f9684e136d80052b5292f5b29aaa3566a3f","urls":["bzz-raw://484a26504bf6706202ec82a9a4cfa7d196bbc552b5b78ced25bf7130c2842595","dweb:/ipfs/QmaQqmkoZoUWEam4R94vmajzH3gKqFqpZQwFbrHDsN1peV"],"license":"BUSL-1.1"},"src/contracts/hints/VaultHints.sol":{"keccak256":"0xccb505b7159b769cc114d67b87c2de6b106557f667fc8f3780114baad5c3c442","urls":["bzz-raw://6d0c80a908fc16e96a8b5605a0bd53f9e89ad0ef0a738fbbae80ba4d3160749b","dweb:/ipfs/QmXo5UtWoR8YmunqcbBU8rQMm1nvmvjNPoXcVrDhh4pEwR"],"license":"BUSL-1.1"},"src/contracts/libraries/Checkpoints.sol":{"keccak256":"0xba90097c8bfe0a975499428b5f8ac5569483c7d92ccc28c12d70de416aae040c","urls":["bzz-raw://12f5d93ca94cd06d3147db68993165a58e17903ed53682560de61f3085ad4609","dweb:/ipfs/QmePiuAqvXprMLmFZkGZeGjvGPAvsEDHfCDv7BoQhXu9xE"],"license":"MIT"},"src/contracts/libraries/ERC4626Math.sol":{"keccak256":"0x8441160513c1cbeb1c3b9ee077bcc7e7ce20006b52a77c8dd39ff0ef89699939","urls":["bzz-raw://943f8cc3e26ddf649f465f40c909819f5c864717c4baa339e9e403b9374a4653","dweb:/ipfs/QmXPxi1sUDsrGprZdUgCzoPEosaZMv9ZhygWQ1vAi1phAB"],"license":"MIT"},"src/contracts/libraries/Subnetwork.sol":{"keccak256":"0xf5ef5506fd66082b3c2e7f3df37529f5a8efad32ac62e7c8914bd63219190bfe","urls":["bzz-raw://ba031a54ee0d0e9a270c2b9e18437f5668cfeb659cfd5fe0677459d7fcac2a56","dweb:/ipfs/QmReP3H7qQ78tAfgLnJKsNEQNCQfF1X1Get38Ffd4kzq32"],"license":"MIT"},"src/contracts/service/OptInService.sol":{"keccak256":"0x4e0932077f2686b7990e10d59deb2535334c0d09e52ef6e57c6ab09eca21c4b1","urls":["bzz-raw://7c00d311032ed4a1743aca7475f3c86ce15cdfc2218108efc3731c03d34a5278","dweb:/ipfs/QmUGGfVwVhaHr5kS4177yKKYiLYzi5qZpkEmvYxBZqazxf"],"license":"BUSL-1.1"},"src/contracts/slasher/BaseSlasher.sol":{"keccak256":"0x190e5dce196a061bdad42468c52e9f5b0eb7810cd7d0c19f04d6a2e94984f1b6","urls":["bzz-raw://07ca08d0cd43c2fe5d54a5577f6bdd522ced410f5d3a52e764deaa7ba26b5f06","dweb:/ipfs/QmZe3PiMKBQKWcwodaLupragdqxPjgS4v1qMC7RXau8hDF"],"license":"BUSL-1.1"},"src/contracts/slasher/Slasher.sol":{"keccak256":"0xeee0cb25fad58d496fdcc641d852d11bae06e6ceed5230ae21150964175c494f","urls":["bzz-raw://34aa27d21246a1bcee0b6a2afa8d9d613441156362430392f75d176511d58c61","dweb:/ipfs/Qmf53Y3zdGfH4PU2zpSGeHZ8mMLzLXCtmkQrG5mnVJECQ3"],"license":"BUSL-1.1"},"src/contracts/slasher/VetoSlasher.sol":{"keccak256":"0xeccc8128de5e1ad499c067feac1c526638fbbac1a18b96726fc7507969fd5897","urls":["bzz-raw://cdfcf281338423625acbccdf8810115b258ef7cfe4aa3c10b8911ead1aa85429","dweb:/ipfs/QmZFsDvZXpkFkx4PHcDXAVPN3ZCAahbSVfYpSVrMBvbt4k"],"license":"BUSL-1.1"},"src/contracts/vault/Vault.sol":{"keccak256":"0x2ceff6ed3298c4cad144c99fcc79b51cb9397d6ebef00285b915848b476f8c2e","urls":["bzz-raw://11f2fb3581854f3ab6e82e8d4935d9eb510c903a13c3f022346c2956a58f5307","dweb:/ipfs/QmdUnoXoyYoG9SGWyQZCFyLDRUUX3eXyXetkRvw6jxqqBz"],"license":"BUSL-1.1"},"src/contracts/vault/VaultStorage.sol":{"keccak256":"0x57db25b127d77ea3472de53e3a4af3354399655b9268638b99ca5925fa364a56","urls":["bzz-raw://aa763d9a6ec508ae3abfb8228b72b9fd9525279e5135d4962e79ff059feb1173","dweb:/ipfs/QmcbDR6E9wyEpu6V2FkEC4hnWy47zXA9LSKJde6zSGd33Q"],"license":"BUSL-1.1"},"src/interfaces/common/IEntity.sol":{"keccak256":"0x8ef4b63d6da63489778ccd5f8d13ebdd527dd4b62730b2c616df5af7474d2d21","urls":["bzz-raw://5a8d69576a9219d85c50816a18ad53a4d53cfcb27ed38b8cccc808dc2734b71b","dweb:/ipfs/QmYVN3P4Q4REvBWJ97TbAcaxm3uyB2anV6NSGa6ZtSwcEv"],"license":"MIT"},"src/interfaces/common/IMigratableEntity.sol":{"keccak256":"0x8f5f2809f3afbe8ebfbb365dd7b57b4dd3b6f9943a6187eaf648d45895b8e3c4","urls":["bzz-raw://0ffe640537d539e7a4fde70d30d3e4c57f4ba9c2c25c450cea713aae38e8fd5c","dweb:/ipfs/QmSUTGzvdcn1R1KB7tLThMRtESsfPbeXDhhhKWGtntzBds"],"license":"MIT"},"src/interfaces/common/IRegistry.sol":{"keccak256":"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb","urls":["bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014","dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK"],"license":"MIT"},"src/interfaces/common/IStaticDelegateCallable.sol":{"keccak256":"0xa335d4e81b9071b7de66ef92b43ff20671d86516eb1be46fef29a3483cd3f5d5","urls":["bzz-raw://d464b9db863c14c05547d2b23352f2e9b7b784799cf09f6bbc4906a2a74e3516","dweb:/ipfs/QmUVWzFvJz7eEbDQKiFTTzwi7TEbjcs3VmwdM4kuptAKvi"],"license":"MIT"},"src/interfaces/delegator/IBaseDelegator.sol":{"keccak256":"0x96bb312f032e17accce3f8f80936d99468029d6b37c9ca74acdb4b026a0148ee","urls":["bzz-raw://2a66dcb5b7d1a6ef6a363431ea98ebd78bc4fdd3d7a134d9b542dc66e7d025c2","dweb:/ipfs/QmRhTPLd2ZAyRHmJUFUcWKs9b3if49QY17LYZuRqWmghw8"],"license":"MIT"},"src/interfaces/delegator/IDelegatorHook.sol":{"keccak256":"0xc51aa8d7d1f6c8043ee819b7aeb86da0e993912e1442098df897e299f01f9f46","urls":["bzz-raw://adddf5cb2ba282aeb576b26efb28640f865a1721cc9b6eee8b3ee0457a2c9780","dweb:/ipfs/QmNYgAmnLRwWZbhTuQhZs9rx4zcme1df5mEepkrniorSoW"],"license":"MIT"},"src/interfaces/delegator/IFullRestakeDelegator.sol":{"keccak256":"0xa3c8cb2e45d4d8ce90e95263bea40c01dc400f05ad65bc29597d878606be5e7d","urls":["bzz-raw://782cf5e201aa4cca037ebafd3807a68ff1cc721d5b8416a35244db0d0607369e","dweb:/ipfs/QmQkJks6x7CKndeTPa9LxgTNygD5uEi7obhADhpq1Lsr9A"],"license":"MIT"},"src/interfaces/delegator/INetworkRestakeDelegator.sol":{"keccak256":"0xe7030fe30389a147fd710e3436ec346b4842695fd3e65a81b95375c9f1d633fc","urls":["bzz-raw://739c7e66d301778054f5c90bee45ec9438f68afba8a03eaaac52064c73b115ad","dweb:/ipfs/QmfZ2ytKcTykAc76nxhg8ikUXV8NdBpetqb8W4YWPcox1Z"],"license":"MIT"},"src/interfaces/delegator/IOperatorNetworkSpecificDelegator.sol":{"keccak256":"0x74b95e64d29769202d45dd277bb830f623ff3d41ce77b80ce3ee4e318a5c71ec","urls":["bzz-raw://e512b903aae5c1b8a028c6e3f4f6223b5cb5d704503cfa6bd37b5346868f5c20","dweb:/ipfs/QmZim9YExsPWtyxyeui993HTKAEmrg8MUcSkZ77Gp2JcuZ"],"license":"MIT"},"src/interfaces/delegator/IOperatorSpecificDelegator.sol":{"keccak256":"0x72075cab585dc17240cc3e32bc99b92f0d5627ddd988fed680e3e1a52d5a01e4","urls":["bzz-raw://7448bc90699409ae61d85216b5efc2143a37f0f73354be2aea993bc54afca441","dweb:/ipfs/QmXE4gAxM8pHosZK8mcTcj17puBx484meDCcmrDePskGHZ"],"license":"MIT"},"src/interfaces/service/INetworkMiddlewareService.sol":{"keccak256":"0x347afc7fcf1fbcdb96d66162070ef6c78aed27b3af2c1d5dfb4e511840631783","urls":["bzz-raw://2d90b8ceb495159e8e4e95d76447719dd166443f67dfabdd942846162071595c","dweb:/ipfs/QmVVuiAWYx92T6vBvNMKZfTvraCf1fa16BsUKkdNs3hdHA"],"license":"MIT"},"src/interfaces/service/IOptInService.sol":{"keccak256":"0x76fb5460a6d87a5705433d4fbeff7253cd75b8bbd0c888b2088f16e86ace146a","urls":["bzz-raw://990322019b3d11465f7024bae77ccbf7e2fe5d6fa3c754584778f37d04fa1337","dweb:/ipfs/QmaSNHzcqxTkUCG9a4nqVfLECHLdjdrwAnDi3yDC7tDL24"],"license":"MIT"},"src/interfaces/slasher/IBaseSlasher.sol":{"keccak256":"0x7c82528b445659c313ab77335c407b0b6efe5e79027187bb287f7bc74202b404","urls":["bzz-raw://0274c90aa5df1aa6bb470a6aab53992fb14fd7e5472c9430416505b29647d9cf","dweb:/ipfs/QmckbmJLDetPemVzCnnGcKYWAZV2BRFXGDsjiaec8jkHxx"],"license":"MIT"},"src/interfaces/slasher/IBurner.sol":{"keccak256":"0xaf495dacc19ae0b3c787ba8021c5944927d70261536addd234d7dab146158c2b","urls":["bzz-raw://9b3cc66251008be6ff9fc8b11ecc6831d5a9dca49a3fe9817fcd970253c1d447","dweb:/ipfs/QmVxfb9ALGdF9W3SN2h41gQbUct6tawvu5bw4K89kFQ4HW"],"license":"MIT"},"src/interfaces/slasher/ISlasher.sol":{"keccak256":"0x34d226d67a3d5e16571f2fac91a8b9773551bcc41c88a96279669dd78d192625","urls":["bzz-raw://7a6e8c1462ee4a1b0f745414be043c09012ea676613790aba004b06c85c980d1","dweb:/ipfs/QmadjNEbHKRthtA1EeNy3Kg2sXpejH2KBeHm8QZtBPvXbJ"],"license":"MIT"},"src/interfaces/slasher/IVetoSlasher.sol":{"keccak256":"0xdf7edd04a4f36e9aec3a15241dcb6b6315b2e64927b12710c2c410d571fc55e9","urls":["bzz-raw://c4be6ac339c2ebf230fed65363f036784224095d0cd0f3f2d01d64d6e0da9508","dweb:/ipfs/QmRSMbpfaHExqrzUA8vYZMYZWh6eQW1KX9JKJSLdgronfg"],"license":"MIT"},"src/interfaces/vault/IVault.sol":{"keccak256":"0xffee01d383cd4e1a5530c614bf4360c1ef070c288abec9da1eb531b51bc07235","urls":["bzz-raw://04f0046cac285d8ec44ebbb1f79dc94fab4495767190cad8364fbc1fafaadfb9","dweb:/ipfs/QmUawAunwzXfCyShWfhKeThAgKtqe51hmrxvrXvM772M2R"],"license":"MIT"},"src/interfaces/vault/IVaultStorage.sol":{"keccak256":"0x592626f13754194f83047135de19229c49390bd59e34659b1bb38be71d973a22","urls":["bzz-raw://06a6a9dfddd05e580b32bebe2cff4f63ba26a653180676d58225dd30d9c89d3e","dweb:/ipfs/QmdgzBeY6Sxo8mGtyBxtv1tM1c2kU6J6zjeRd7vuXm4DU6"],"license":"MIT"}},"version":1},"id":84} \ No newline at end of file +{"abi":[{"type":"constructor","inputs":[{"name":"baseSlasherHints","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"BASE_SLASHER_HINTS","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"BURNER_GAS_LIMIT","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"BURNER_RESERVE","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"FACTORY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"NETWORK_MIDDLEWARE_SERVICE","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"NETWORK_REGISTRY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"TYPE","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"VAULT_FACTORY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"cumulativeSlash","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"cumulativeSlashAt","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"timestamp","type":"uint48","internalType":"uint48"},{"name":"hint","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"executeSlash","inputs":[{"name":"slashIndex","type":"uint256","internalType":"uint256"},{"name":"hints","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"slashedAmount","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"executeSlashHints","inputs":[{"name":"slasher","type":"address","internalType":"address"},{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"captureTimestamp","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"initialize","inputs":[{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"isBurnerHook","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"latestSlashedCaptureTimestamp","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"value","type":"uint48","internalType":"uint48"}],"stateMutability":"view"},{"type":"function","name":"requestSlash","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"captureTimestamp","type":"uint48","internalType":"uint48"},{"name":"hints","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"slashIndex","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"requestSlashHints","inputs":[{"name":"slasher","type":"address","internalType":"address"},{"name":"msgSender","type":"address","internalType":"address"},{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"captureTimestamp","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"resolver","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"hint","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"resolverAt","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"timestamp","type":"uint48","internalType":"uint48"},{"name":"hint","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"resolverHint","inputs":[{"name":"slasher","type":"address","internalType":"address"},{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"timestamp","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"resolverHintInternal","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"timestamp","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"exists","type":"bool","internalType":"bool"},{"name":"hint","type":"uint32","internalType":"uint32"}],"stateMutability":"view"},{"type":"function","name":"resolverSetEpochsDelay","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"setResolver","inputs":[{"name":"identifier","type":"uint96","internalType":"uint96"},{"name":"resolver_","type":"address","internalType":"address"},{"name":"hints","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setResolverHints","inputs":[{"name":"slasher","type":"address","internalType":"address"},{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"timestamp","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"slashRequests","inputs":[{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"captureTimestamp","type":"uint48","internalType":"uint48"},{"name":"vetoDeadline","type":"uint48","internalType":"uint48"},{"name":"completed","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"slashRequestsLength","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"slashableStake","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"captureTimestamp","type":"uint48","internalType":"uint48"},{"name":"hints","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"staticDelegateCall","inputs":[{"name":"target","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"vault","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"vetoDuration","inputs":[],"outputs":[{"name":"","type":"uint48","internalType":"uint48"}],"stateMutability":"view"},{"type":"function","name":"vetoSlash","inputs":[{"name":"slashIndex","type":"uint256","internalType":"uint256"},{"name":"hints","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"vetoSlashHints","inputs":[{"name":"slasher","type":"address","internalType":"address"},{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"captureTimestamp","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"event","name":"ExecuteSlash","inputs":[{"name":"slashIndex","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"slashedAmount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"RequestSlash","inputs":[{"name":"slashIndex","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"subnetwork","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"slashAmount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"captureTimestamp","type":"uint48","indexed":false,"internalType":"uint48"},{"name":"vetoDeadline","type":"uint48","indexed":false,"internalType":"uint48"}],"anonymous":false},{"type":"event","name":"SetResolver","inputs":[{"name":"subnetwork","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"resolver","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"VetoSlash","inputs":[{"name":"slashIndex","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"resolver","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"error","name":"AlreadySet","inputs":[]},{"type":"error","name":"CheckpointUnorderedInsertion","inputs":[]},{"type":"error","name":"ExternalCall","inputs":[]},{"type":"error","name":"InsufficientBurnerGas","inputs":[]},{"type":"error","name":"InsufficientSlash","inputs":[]},{"type":"error","name":"InvalidCaptureTimestamp","inputs":[]},{"type":"error","name":"InvalidInitialization","inputs":[]},{"type":"error","name":"InvalidResolverSetEpochsDelay","inputs":[]},{"type":"error","name":"InvalidVetoDuration","inputs":[]},{"type":"error","name":"NoBurner","inputs":[]},{"type":"error","name":"NoResolver","inputs":[]},{"type":"error","name":"NotInitialized","inputs":[]},{"type":"error","name":"NotInitializing","inputs":[]},{"type":"error","name":"NotNetwork","inputs":[]},{"type":"error","name":"NotNetworkMiddleware","inputs":[]},{"type":"error","name":"NotResolver","inputs":[]},{"type":"error","name":"NotVault","inputs":[]},{"type":"error","name":"ReentrancyGuardReentrantCall","inputs":[]},{"type":"error","name":"SafeCastOverflowedUintDowncast","inputs":[{"name":"bits","type":"uint8","internalType":"uint8"},{"name":"value","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"SlashPeriodEnded","inputs":[]},{"type":"error","name":"SlashRequestCompleted","inputs":[]},{"type":"error","name":"SlashRequestNotExist","inputs":[]},{"type":"error","name":"VetoPeriodEnded","inputs":[]},{"type":"error","name":"VetoPeriodNotEnded","inputs":[]}],"bytecode":{"object":"0x6101603461017c576001600160401b0390601f61377c38819003918201601f1916830191848311848410176101805780849260209460405283398101031261017c5751906001600160a01b038216820361017c57306080527ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a009081549060ff8260401c1661016a578080831603610125575b835f60a0525f60c0525f60e052610100905f8252610120905f8252610140908152604051916135e79384610195853960805184610b66015260a0518461047b015260c0518481816115860152612c5a015260e0518481816102e801526122ba0152518381816104370152612444015251828181610c7801526115dc015251818181610806015281816119140152611d090152f35b6001600160401b031990911681179091556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a15f8080610091565b60405163f92ee8a960e01b8152600490fd5b5f80fd5b634e487b7160e01b5f52604160045260245ffdfe60806040526004361015610011575f80fd5b5f3560e01c80622a087514610213578063103f29071461020e5780631a2be2c4146102095780631dd5f60014610204578063267de1f3146101ff5780632964f8dc146101fa5780632c9d45b3146101f55780632dd31000146101f057806331ce4dfe146101eb57806334d098ea146101e6578063439fab91146101e1578063457821b7146101dc5780635264679b146101d7578063545ce389146101d257806369f78920146101cd5780638f42f9ab146101c85780638f82f931146101c35780639168f9d2146101be5780639a896551146101b95780639f86fd85146101b4578063a4ef9b4f146101af578063aa8e6489146101aa578063aab3595f146101a5578063b94c386e146101a0578063bb24fe8a1461019b578063bc6eac5b14610196578063c0cd7c3e14610191578063cd05b8a11461018c578063d5c24e1a14610187578063e054e08b14610182578063f9268d181461017d5763fbfa77cf14610178575f80fd5b611813565b6116a5565b611680565b611663565b61160b565b6115c7565b6115aa565b611567565b61121b565b6111c3565b611185565b611122565b61108e565b611003565b610bd8565b610b47565b610b2a565b610ae5565b61084f565b610835565b6107f1565b6106b9565b610668565b6105ff565b610466565b610422565b610406565b6103b1565b610397565b610317565b6102d3565b610261565b6001600160a01b0381160361022957565b5f80fd5b65ffffffffffff81160361022957565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b346102295760c0366003190112610229576102c56102b160043561028481610218565b61028f602435610218565b60643561029b81610218565b60a435916102a88361022d565b604435906118c9565b60405191829160208352602083019061023d565b0390f35b5f91031261022957565b34610229575f366003190112610229576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461022957604036600319011261022957602061036361035e60243561033c81610218565b6004355f526002845260405f209060018060a01b03165f5260205260405f2090565b6120d2565b604051908152f35b60609060031901126102295760043561038381610218565b90602435906044356103948161022d565b90565b34610229576102c56102b16103ab3661036b565b916119a0565b3461022957604036600319011261022957602065ffffffffffff6103fc6024356103da81610218565b6004355f526001845260405f209060018060a01b03165f5260205260405f2090565b5416604051908152f35b34610229575f366003190112610229576020604051614e208152f35b34610229575f366003190112610229576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b34610229575f366003190112610229576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b634e487b7160e01b5f52604160045260245ffd5b602081019081106001600160401b038211176104d957604052565b6104aa565b604081019081106001600160401b038211176104d957604052565b606081019081106001600160401b038211176104d957604052565b6001600160401b0381116104d957604052565b608081019081106001600160401b038211176104d957604052565b90601f801991011681019081106001600160401b038211176104d957604052565b6040519060c082018281106001600160401b038211176104d957604052565b6040519061058f826104f9565b565b6040519061058f826104de565b6001600160401b0381116104d957601f01601f191660200190565b81601f82011215610229578035906105d08261059e565b926105de6040519485610542565b8284526020838301011161022957815f926020809301838601378301015290565b346102295760603660031901126102295760243561061c8161022d565b604435906001600160401b0382116102295761065f61064160209336906004016105b9565b6004355f90815260068552604090206001600160a01b03939061214a565b16604051908152f35b34610229575f36600319011261022957602060ff5f5460a01c166040519015158152f35b9181601f84011215610229578235916001600160401b038311610229576020838186019501011161022957565b34610229576020366003190112610229576001600160401b03600435818111610229576106ea90369060040161068c565b5f80516020613592833981519152549260ff8460401c16159316801590816107e9575b60011490816107df575b1590816107d6575b506107c4575f80516020613592833981519152805467ffffffffffffffff1916600117905561075291836107a057612283565b61075857005b5f80516020613592833981519152805460ff60401b19169055604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a1005b5f80516020613592833981519152805460ff60401b1916600160401b179055612283565b60405163f92ee8a960e01b8152600490fd5b9050155f61071f565b303b159150610717565b84915061070d565b34610229575f366003190112610229576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b34610229576102c56102b16108493661036b565b91611a24565b346102295760a0366003190112610229576004602435813561087082610218565b6064359161087d8361022d565b6084356001600160401b0381116102295761089b903690860161068c565b93906108a56123ed565b6108ae8461241c565b6108b6611ab6565b9480610acf575b50506108c8426125ff565b6108e26108db875465ffffffffffff1690565b8092611b17565b5f54909590610907906108fb906001600160a01b031681565b6001600160a01b031690565b958760206040988951928380926327f843b560e11b82525afa8015610aca576109469261093b925f92610a99575b50611a0c565b65ffffffffffff1690565b65ffffffffffff8416908110908115610a83575b50610a735761096f61097891518486886127da565b506044356124b3565b958615610a65576102c5610a3e878988887f3cb7f4ff6cecf74cee0eb9ae3ebf8933fa60a53014cce52f96da72a78dba8464896109bd8a6109b8426125ff565b611b17565b92600354978894610a0e6109cf610563565b8881526001600160a01b0385166020820152808b018a905265ffffffffffff8616606082015265ffffffffffff831660808201525f60a0820152611b59565b885197885265ffffffffffff938416602089015290921660408701526001600160a01b0316949081906060820190565b0390a4610a5760015f8051602061357283398151915255565b519081529081906020820190565b855163167f871760e31b8152fd5b8551631357ac9160e11b81528790fd5b9050610a9161093b426125ff565b11155f61095a565b610abc91925060203d602011610ac3575b610ab48183610542565b810190611b31565b905f610935565b503d610aaa565b6118a5565b610add929550810190611ac9565b925f806108bd565b34610229576080366003190112610229576102c56102b1600435610b0881610218565b604435610b1481610218565b60643591610b218361022d565b60243590611c8f565b34610229575f366003190112610229576020600354604051908152f35b3461022957604036600319011261022957602435610b648161022d565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163303610bc65763ffffffff610bb16040926004355f526006602052835f206124e9565b91505083929192519215158352166020820152f35b604051637ca475e560e11b8152600490fd5b346102295760603660031901126102295760048035906bffffffffffffffffffffffff8216820361022957602435610c0f81610218565b6044356001600160401b03811161022957610c2d903690840161068c565b90610c366123ed565b610c3e611ab6565b5081610f9e575b5050604080516302910f8b60e31b8152338185019081526001600160a01b0395929491602091829082908190830103818a7f0000000000000000000000000000000000000000000000000000000000000000165afa908115610aca575f91610f71575b5015610f62575f54610ce3906001600160a01b0316936bffffffffffffffffffffffff166bffffffffffffffffffffffff193360601b161790565b95610cfe610cf9885f52600660205260405f2090565b61323a565b50949015610ef857610d1261093b426125ff565b65ffffffffffff9586161115610ec257610d3c610d37895f52600660205260405f2090565b6125c0565b505b610d616108fb6108fb6108fb610d5c8c5f52600660205260405f2090565b612e78565b91808716928303610dcd575b505050505050610db2907f7b0b759b513b299fd2811f51926dca8854222a675557e8d544ce0933bf5b7570925b516001600160a01b0390911681529081906020820190565b0390a2610dcb60015f8051602061357283398151915255565b005b610de48998959796985f52600660205260405f2090565b911692845163186a323160e21b815281818981885afa908115610aca575f91610ea5575b5081600554958751998a80926327f843b560e11b82525afa908115610aca5789610e6d610e7f977f7b0b759b513b299fd2811f51926dca8854222a675557e8d544ce0933bf5b75709c610e7495610db29d610e79985f92610e88575b50501690611dde565b9116611dff565b6125ff565b90613447565b82958495610d6d565b610e9e9250803d10610ac357610ab48183610542565b5f80610e64565b610ebc9150823d8411610ac357610ab48183610542565b5f610e08565b610ee06108fb6108fb6108fb610d5c8c5f52600660205260405f2090565b82871603610d3e57865163a741a04560e01b81528490fd5b5093949385169250508115610f54575091610db291610f4d7f7b0b759b513b299fd2811f51926dca8854222a675557e8d544ce0933bf5b757094610f44875f52600660205260405f2090565b610e79426125ff565b5050610d9a565b825163a741a04560e01b8152fd5b5083516323d53b9760e21b8152fd5b610f919150823d8411610f97575b610f898183610542565b810190611dca565b5f610ca8565b503d610f7f565b610faa91810190611ac9565b505f80610c45565b634e487b7160e01b5f52603260045260245ffd5b600354811015610ffe5760035f5260021b7fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b01905f90565b610fb2565b34610229576020366003190112610229576004356003548110156102295761102a90610fc6565b50805460018201546002830154600390930154604080519384526001600160a01b0390921660208401529082019290925265ffffffffffff808316606080840191909152603084901c90911660808301529190911c60ff16151560a082015260c090f35b34610229576040366003190112610229576004356110ab81610218565b6024356001600160401b038111610229575f916110cd8392369060040161068c565b90816040519283928337810184815203915af461111a6110eb611e0c565b9161110c60405193849215156020840152604080840152606083019061023d565b03601f198101835282610542565b805190602001fd5b34610229576102c56102b16111363661036b565b91611e6d565b906080600319830112610229576004359160243561115981610218565b916044356111668161022d565b91606435906001600160401b03821161022957610394916004016105b9565b346102295760206103636111be61119b3661113c565b939190925f526002865260405f209060018060a01b03165f5260205260405f2090565b612665565b346102295760206111df6111d63661113c565b929190916127da565b50604051908152f35b9060406003198301126102295760043591602435906001600160401b038211610229576112179160040161068c565b9091565b3461022957611229366111e8565b91906112336123ed565b61123b611f92565b9280611551575b505060035481101561153f5761125781610fc6565b50908154906112658261241c565b6003830180549365ffffffffffff9384861660018060a01b0361128a895183856119b7565b16151580611514575b806114fb575b6114e9576112af816112aa426125ff565b611a0c565b5f546112c5906108fb906001600160a01b031681565b96600460206040998a51928380926327f843b560e11b82525afa8015610aca5782915f916114ca575b50169116116114b957600183018054909861131993929188906001600160a01b0316910151926127da565b906113288160028501546124b3565b9687156114a85760601c60ff166114975792611450611443899461141b6114088b9687876102c59f6114168f9d8f9e6114569f61137286600160601b60ff60601b19825416179055565b8a54855461139491906001600160a01b0316885465ffffffffffff1691612a0a565b8a5485546113ad9189916001600160a01b031690612a8a565b8a5494546113cb906001600160a01b0316965465ffffffffffff1690565b976113d4610582565b9384526020840152818301525196879160208301919091604080606083019480518452602081015160208501520151910152565b03601f198101875286610542565b612bf6565b61143461142e855465ffffffffffff1690565b86612cff565b5494546001600160a01b031690565b915465ffffffffffff1690565b92612d7c565b81518381527f5cc28df3b54da9d06f805d87616ebf969c81310f2aa8369cb14ca50f815d411190602090a2610a5760015f8051602061357283398151915255565b8551633428e90760e01b8152600490fd5b865163167f871760e31b8152600490fd5b8551639ea153eb60e01b8152600490fd5b6114e3915060203d602011610ac357610ab48183610542565b5f6112ee565b60405163b62b15c760e01b8152600490fd5b5061150861093b426125ff565b868860301c1611611299565b506115386108fb61152c611527426125ff565b6119f0565b60208b015190856119b7565b1515611293565b604051637822972360e11b8152600490fd5b61155f929350810190611fb1565b905f80611242565b34610229575f3660031901126102295760206040516001600160401b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b34610229575f366003190112610229576020600554604051908152f35b34610229575f366003190112610229576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b34610229576040366003190112610229576024356001600160401b0381116102295761165161164060209236906004016105b9565b611649426125ff565b6004356119b7565b6040516001600160a01b039091168152f35b34610229575f366003190112610229576020604051620249f08152f35b34610229575f36600319011261022957602065ffffffffffff60045416604051908152f35b34610229576116b3366111e8565b906116bc6123ed565b6116c4612039565b91806117ff575b505060035482101561153f576116e082610fc6565b506003815491019182549165ffffffffffff9160018060a01b036117088251858716856119b7565b169182159182156117d6575b50506117c45733036117b25761172c61093b426125ff565b908260301c1611156117a15760601c60ff1661178f57805460ff60601b1916600160601b17905533907f7d3d269c851b72257a5194a401d151902e9be4347d555996dcff3ff86a077e925f80a3610dcb60015f8051602061357283398151915255565b604051633428e90760e01b8152600490fd5b60405162c457e560e81b8152600490fd5b604051635d154fe160e11b8152600490fd5b60405163dd1ebd9d60e01b8152600490fd5b6117f79250906108fb9160206117ee611527426125ff565b910151916119b7565b155f80611714565b61180c9250810190612052565b5f806116cb565b34610229575f366003190112610229575f546040516001600160a01b039091168152602090f35b81601f82011215610229578051906118518261059e565b9261185f6040519485610542565b8284526020838301011161022957815f9260208093018386015e8301015290565b906020828203126102295781516001600160401b03811161022957610394920161183a565b6040513d5f823e3d90fd5b604061039492602083525191602080820152019061023d565b604051632751749360e11b81526001600160a01b0391821660048201526024810192909252909116604482015265ffffffffffff9091166064820152606091905f81806084810103817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa908115610aca575f9161197e575b5080516119565750565b61110c919250610394906040519061196d826104be565b8152604051928391602083016118b0565b61199a91503d805f833e6119928183610542565b810190611880565b5f61194c565b92916119ae91606094611e6d565b80516119565750565b5f9081526006602052604090206001600160a01b03926119d892909161214a565b1690565b634e487b7160e01b5f52601160045260245ffd5b65ffffffffffff9081165f190191908211611a0757565b6119dc565b65ffffffffffff9182169082160391908211611a0757565b611a4590939293611a386060958483611e6d565b92611136611527426125ff565b815115801590611aac575b611a58575050565b611a999293509061110c6103949260405192611a73846104de565b83526020830190815260405194859360208086015251604080860152608085019061023d565b9051838203603f1901606085015261023d565b5080511515611a50565b60405190611ac3826104be565b60608252565b906020828203126102295781356001600160401b03928382116102295701906020828203126102295760405192611aff846104be565b823590811161022957611b1292016105b9565b815290565b91909165ffffffffffff80809416911601918211611a0757565b9081602091031261022957516103948161022d565b634e487b7160e01b5f525f60045260245ffd5b600354600160401b8110156104d957806001611b789201600355610fc6565b919091611c3b578051825560208101516001830180546001600160a01b0319166001600160a01b039290921691909117905561058f91611c219060a090600390604085015160028201550192611bee65ffffffffffff606083015116859065ffffffffffff1665ffffffffffff19825416179055565b60808101516bffffffffffff00000000000085549160301b16906bffffffffffff00000000000019161784550151151590565b815460ff60601b191690151560601b60ff60601b16179055565b611b46565b906103949160208152611c5f825160606020840152608083019061023d565b9060606040611c7f602086015194601f199586868303018487015261023d565b940151928285030191015261023d565b919093925f606095611ca2838287611e6d565b94611d05611cbc611cb5611527426125ff565b8484611e6d565b604051632751749360e11b81526001600160a01b039384166004820152602481019490945291909516604483015265ffffffffffff909316606482015292839081906084820190565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa918215610aca575f92611da1575b50825115801590611d97575b8015611d8d575b611d5d57505050565b61110c939450906103949291611d71610582565b9283526020830152604082015260405192839160208301611c40565b5081511515611d54565b5080511515611d4d565b611db69192503d805f833e6119928183610542565b905f611d41565b5190811515820361022957565b908160209103126102295761039490611dbd565b81810292918115918404141715611a0757565b9060018201809211611a0757565b91908201809211611a0757565b3d15611e36573d90611e1d8261059e565b91611e2b6040519384610542565b82523d5f602084013e565b606090565b519063ffffffff8216820361022957565b9190826040910312610229576103946020611e6684611dbd565b9301611e3b565b92915f8060609565ffffffffffff60405194602096638f82f93160e01b88880152602487015216604485015260448452611ea684610527565b6040519384611ed387820192639f86fd8560e01b845230602484015260406044840152606483019061023d565b0394611ee7601f1996878101835282610542565b51915afa50611f05611ef7611e0c565b838082518301019101612631565b9015611f5857808380611f1d93518301019101611e4c565b9290611f2857505050565b61039492939450611f4c604051948592830191909163ffffffff6020820193169052565b03908101835282610542565b809150519182156102295701fd5b5f9081526002602090815260408083206001600160a01b03909416835292905220610394929190612665565b60405190611f9f826104f9565b60606040838281528260208201520152565b906020828203126102295781356001600160401b03928382116102295701906060828203126102295760405192611fe7846104f9565b82358181116102295782611ffc9185016105b9565b8452602083013581811161022957826120169185016105b9565b602085015260408301359081116102295761203192016105b9565b604082015290565b60405190612046826104de565b60606020838281520152565b906020828203126102295781356001600160401b03928382116102295701906040828203126102295760405192612088846104de565b8235818111610229578261209d9185016105b9565b84526020830135908111610229576120b592016105b9565b602082015290565b8054821015610ffe575f5260205f2001905f90565b6120db81612e78565b6001600160d01b038116156121005760016120f692016120bd565b90549060031b1c90565b50505f90565b908160209103126102295761039490611e3b565b5f19810191908211611a0757565b91908203918211611a0757565b90600163ffffffff80931601918211611a0757565b9180511561222e578060208061216593518301019101612106565b916121708382612eb8565b92612181845165ffffffffffff1690565b9065ffffffffffff808516921682811461221557821191826121c0575b50506121ae576103949250613346565b5050602001516001600160d01b031690565b9091506121cd835461211a565b63ffffffff8316149182156121e6575b50505f8061219e565b61220d9192506122016121fb61093b92612135565b85612eb8565b5165ffffffffffff1690565b115f806121dd565b50505050602091909101516001600160d01b0316905090565b5061039491613346565b91909160408184031261022957803561225081610218565b9260208201356001600160401b0381116102295761039492016105b9565b90816020910312610229575161039481610218565b61228f91810190612238565b6040516302910f8b60e31b81526001600160a01b0392831660048201819052929160209182816024817f000000000000000000000000000000000000000000000000000000000000000088165afa908115610aca575f916123d0575b50156123be5781612320600492612300612f0c565b5f80546001600160a01b0319166001600160a01b03891617905586612f99565b94604051928380926313c085b760e11b82525afa918215610aca575f92612391575b5050161580612387575b612375575161058f9015155f805460ff60a01b191691151560a01b60ff60a01b16919091179055565b60405163d2420f5960e01b8152600490fd5b508051151561234c565b6123b09250803d106123b7575b6123a88183610542565b81019061226e565b5f80612342565b503d61239e565b6040516362df054560e01b8152600490fd5b6123e79150833d8511610f9757610f898183610542565b5f6122eb565b5f80516020613572833981519152600281541461240a5760029055565b604051633ee5aeb560e01b8152600490fd5b604051635daf681960e11b815260609190911c60048201526001600160a01b036020826024817f000000000000000000000000000000000000000000000000000000000000000085165afa918215610aca575f92612492575b503391160361248057565b60405163227bf64d60e01b8152600490fd5b6124ac91925060203d6020116123b7576123a88183610542565b905f612475565b90808210156124c0575090565b905090565b906040516124d2816104de565b915465ffffffffffff8116835260301c6020830152565b908154905f829160058411612572575b6125049350846131d8565b90811561256657612525906125188361211a565b905f5260205f20016124c5565b9161255f6125566125506020612541875165ffffffffffff1690565b9601516001600160d01b031690565b9361211a565b63ffffffff1690565b6001939291565b50505f905f905f905f90565b919261257d8161309a565b8103908111611a075761250493855f5265ffffffffffff808360205f20015416908516105f146125ae5750916124f9565b9291506125ba90611df1565b906124f9565b906125ca82612e78565b91805480156125eb575f1901906125e182826120bd565b611c3b575f905555565b634e487b7160e01b5f52603160045260245ffd5b65ffffffffffff90818111612612571690565b604490604051906306dfcc6560e41b8252603060048301526024820152fd5b9190916040818403126102295761264781611dbd565b9260208201516001600160401b03811161022957610394920161183a565b91805115612727578060208061268093518301019101612106565b9161268b8382613294565b9261269c845165ffffffffffff1690565b9065ffffffffffff808516921682811461271b57821191826126d2575b50506126c9576103949250613289565b50506020015190565b9091506126df835461211a565b63ffffffff8316149182156126f8575b50505f806126b9565b61271391925061220161270d61093b92612135565b85613294565b115f806126ef565b50505050506020015190565b5061039491613289565b906020828203126102295781516001600160401b03928382116102295701906040828203126102295760405192612767846104de565b8251818111610229578261277c91850161183a565b84526020830151908111610229576120b5920161183a565b90816020910312610229575190565b9081526001600160a01b03909116602082015265ffffffffffff90911660408201526080606082018190526103949291019061023d565b926127e3612039565b908051806129f0575b50506127f7426125ff565b5f54909490612810906108fb906001600160a01b031681565b93604051956327f843b560e11b875260209687816004818a5afa8015610aca576128449261093b925f926129d85750611a0c565b65ffffffffffff82169081109081156129c1575b8115612990575b50612984578560049560405196878092630ce9b79360e41b82525afa948515610aca576128b19587915f91612967575b50845190604051808099819463e02f693760e01b8352878b8a600486016127a3565b03916001600160a01b03165afa938415610aca57612923955f95612926575b5092612918859361291e9361291896869a61290f61035e836128fa875f52600260205260405f2090565b9060018060a01b03165f5260205260405f2090565b95015192611f66565b90612128565b6124b3565b91565b61291e929550612918949193612954612918928a3d8c11612960575b61294c8183610542565b810190612794565b969350939194506128d0565b503d612942565b61297e9150823d84116123b7576123a88183610542565b5f61288f565b5050505050505f905f90565b90506129ba61093b6129ae876128fa875f52600160205260405f2090565b5465ffffffffffff1690565b115f61285f565b90506129cf61093b426125ff565b81101590612858565b610abc9192508a3d8c11610ac357610ab48183610542565b612a039250602080918301019101612731565b5f806127ec565b919091805f52600160205265ffffffffffff80612a3a8560405f209060018060a01b03165f5260205260405f2090565b541690831611612a4957505050565b61058f92612a71915f52600160205260405f209060018060a01b03165f5260205260405f2090565b9065ffffffffffff1665ffffffffffff19825416179055565b9190825f526002602052612ae261035e612ab78360405f209060018060a01b03165f5260205260405f2090565b92612ac1426125ff565b955f52600260205260405f209060018060a01b03165f5260205260405f2090565b918201809211611a07576001810190815415612b86575b612b028161323a565b509490835495612b11846120d2565b5081612b71575b5015612b505750505f198301928311611a075761058f92612b38916120bd565b90919082549060031b91821b915f19901b1916179055565b61058f94612b6a926001600160d01b039091169190613447565b5050613323565b65ffffffffffff83811691161490505f612b18565b612b8f826132f6565b612af9565b60606020610394938184526001600160401b0381511682850152015191604080820152019061023d565b919360a093610394969565ffffffffffff938552600180871b031660208501526040840152166060820152816080820152019061023d565b92939060046020612c136108fb6108fb5f5460018060a01b031690565b604051630ce9b79360e41b815292839182905afa908115610aca5761110c91612c91915f91612ce0575b506001600160a01b031693612c50610591565b6001600160401b037f000000000000000000000000000000000000000000000000000000000000000016815290602082015260405192839160208301612b94565b823b15610229575f94612cbc86926040519889978896879563724ab0f760e11b875260048701612bbe565b03925af18015610aca57612ccd5750565b80612cda61058f92610514565b806102c9565b612cf9915060203d6020116123b7576123a88183610542565b5f612c3d565b65ffffffffffff9160446020925f60018060a01b038154166040519687958694631c9e38c760e21b865260048601521660248401525af18015610aca57612d435750565b612d5b9060203d6020116129605761294c8183610542565b50565b8115612d68570490565b634e487b7160e01b5f52601260045260245ffd5b92905f549060ff8260a01c16612d94575b5050505050565b6040516313c085b760e11b815291602090839060049082906001600160a01b03165afa918215610aca575f92612e51575b5060405163065c1e0360e01b6020820190815260248201969096526001600160a01b039091166044820152606481019390935265ffffffffffff9091166084830152612e1e8260a481015b03601f198101845283610542565b6202a15c5a10612e3f575f928380935192620249f0f1505f80808080612d8d565b604051632153f33560e21b8152600490fd5b612e1e9250612e71612e109160203d6020116123b7576123a88183610542565b9250612dc5565b805480612e855750505f90565b5f19918183810111611a07575f5260205f2001015460301c90565b60405190612ead826104de565b5f6020838281520152565b612edd91612ed791612ec8612ea0565b50612ed1612ea0565b506120bd565b506124c5565b65ffffffffffff81511690602060018060d01b039101511660405191612f02836104de565b8252602082015290565b612f146133d2565b612f1c6133d2565b60015f8051602061357283398151915255565b60405190612f3c826104be565b5f8252565b809103906060821261022957602060405192612f5c846104f9565b12610229576040908151612f6f816104be565b612f7882611dbd565b815283526020810151612f8a8161022d565b60208401520151604082015290565b90600490612fa5612f2f565b508051612fbc602092838080948301019101612f41565b6040516327f843b560e11b815290949093849182906001600160a01b03165afa918215610aca575f9261307b575b50820190612ffe825165ffffffffffff1690565b65ffffffffffff91821691161015613069576040820160038151106130575761304d613033613053935165ffffffffffff1690565b65ffffffffffff1665ffffffffffff196004541617600455565b51600555565b5190565b6040516354f778f360e01b8152600490fd5b6040516367d5e3df60e11b8152600490fd5b816130939293503d8411610ac357610ab48183610542565b905f612fea565b80156131d3578061316c61316561315b61315161314761313d61313361312960016103949a5f908b60801c806131c7575b508060401c806131ba575b508060201c806131ad575b508060101c806131a0575b508060081c80613193575b508060041c80613186575b508060021c80613179575b50821c613172575b811c1b613122818b612d5e565b0160011c90565b613122818a612d5e565b6131228189612d5e565b6131228188612d5e565b6131228187612d5e565b6131228186612d5e565b6131228185612d5e565b8092612d5e565b906124b3565b8101613115565b600291509101905f61310d565b600491509101905f613102565b600891509101905f6130f7565b601091509101905f6130ec565b602091509101905f6130e1565b604091509101905f6130d6565b9150506080905f6130cb565b505f90565b91905b8382106131e85750505090565b909192808316906001818518811c8301809311611a0757855f5265ffffffffffff808460205f20015416908516105f14613227575050925b91906131db565b909493508101809111611a075791613220565b80548061324b5750505f905f905f90565b5f19908082810111611a0757613268925f5260205f2001016124c5565b9065ffffffffffff82511691602060018060d01b0391015116906001929190565b906120db9082613346565b906132b7612ed76132d8926132a7612ea0565b506132b0612ea0565b50846120bd565b91600165ffffffffffff845116936020828060d01b039101511691016120bd565b905490604051926132e8846104de565b835260031b1c602082015290565b8054600160401b8110156104d957613313916001820181556120bd565b8154905f199060031b1b19169055565b90815491600160401b8310156104d95782612b3891600161058f950181556120bd565b908154905f829160058411613384575b6133619350846131d8565b8061336c5750505f90565b6133759061211a565b905f5260205f20015460301c90565b919261338f8161309a565b8103908111611a075761336193855f5265ffffffffffff808360205f20015416908516105f146133c0575091613356565b9291506133cc90611df1565b90613356565b60ff5f805160206135928339815191525460401c16156133ee57565b604051631afcd79f60e31b8152600490fd5b8054600160401b8110156104d95761341d916001820181556120bd565b611c3b57815160209092015160301b65ffffffffffff191665ffffffffffff909216919091179055565b8054929392919082156135485761347361346e6134638561211a565b835f5260205f200190565b6124c5565b90613484825165ffffffffffff1690565b65ffffffffffff84811691168110613536576134fa9460209488926134b261093b875165ffffffffffff1690565b036134fe57506134ec926134c86134d39261211a565b905f5260205f200190565b9065ffffffffffff82549181199060301b169116179055565b01516001600160d01b031690565b9190565b9150506135319161351e613510610591565b65ffffffffffff9093168352565b6001600160d01b03881682860152613400565b6134ec565b604051632520601d60e01b8152600490fd5b61356c9250613558613510610591565b6001600160d01b0385166020830152613400565b5f919056fe9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a264697066735822122066def236e3cb068f18d202c0ed5927514d7f8f51390f7bbba09b96397dfe793c64736f6c63430008190033","sourceMap":"3563:3596:89:-:0;;;;-1:-1:-1;;;;;3563:3596:89;;;;;;;;;;-1:-1:-1;;3563:3596:89;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3563:3596:89;;;;;;348:4:87;332:21;;8837:64:26;3563:3596:89;;;;;;;;;7896:76:26;;3563:3596:89;;;;7985:34:26;7981:146;;-1:-1:-1;525:17:74;-1:-1:-1;525:17:74;;-1:-1:-1;552:12:74;;-1:-1:-1;2353:28:97;;2391:53;;-1:-1:-1;2391:53:97;;1620:34:99;;-1:-1:-1;1620:34:99;;3901:37:89;;;;3563:3596;;;;;;;;;332:21:87;3563:3596:89;;;;;525:17:74;3563:3596:89;;;;;552:12:74;3563:3596:89;;;;;;;;;;2353:28:97;3563:3596:89;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7981:146:26;-1:-1:-1;;;;;;3563:3596:89;;;;;;;;;;;;;8087:29:26;;3563:3596:89;;8087:29:26;7981:146;;;;;7896:76;3563:3596:89;;-1:-1:-1;;;7938:23:26;;;;;3563:3596:89;-1:-1:-1;3563:3596:89;;;;;;-1:-1:-1;3563:3596:89;;;;;-1:-1:-1;3563:3596:89","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361015610011575f80fd5b5f3560e01c80622a087514610213578063103f29071461020e5780631a2be2c4146102095780631dd5f60014610204578063267de1f3146101ff5780632964f8dc146101fa5780632c9d45b3146101f55780632dd31000146101f057806331ce4dfe146101eb57806334d098ea146101e6578063439fab91146101e1578063457821b7146101dc5780635264679b146101d7578063545ce389146101d257806369f78920146101cd5780638f42f9ab146101c85780638f82f931146101c35780639168f9d2146101be5780639a896551146101b95780639f86fd85146101b4578063a4ef9b4f146101af578063aa8e6489146101aa578063aab3595f146101a5578063b94c386e146101a0578063bb24fe8a1461019b578063bc6eac5b14610196578063c0cd7c3e14610191578063cd05b8a11461018c578063d5c24e1a14610187578063e054e08b14610182578063f9268d181461017d5763fbfa77cf14610178575f80fd5b611813565b6116a5565b611680565b611663565b61160b565b6115c7565b6115aa565b611567565b61121b565b6111c3565b611185565b611122565b61108e565b611003565b610bd8565b610b47565b610b2a565b610ae5565b61084f565b610835565b6107f1565b6106b9565b610668565b6105ff565b610466565b610422565b610406565b6103b1565b610397565b610317565b6102d3565b610261565b6001600160a01b0381160361022957565b5f80fd5b65ffffffffffff81160361022957565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b346102295760c0366003190112610229576102c56102b160043561028481610218565b61028f602435610218565b60643561029b81610218565b60a435916102a88361022d565b604435906118c9565b60405191829160208352602083019061023d565b0390f35b5f91031261022957565b34610229575f366003190112610229576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461022957604036600319011261022957602061036361035e60243561033c81610218565b6004355f526002845260405f209060018060a01b03165f5260205260405f2090565b6120d2565b604051908152f35b60609060031901126102295760043561038381610218565b90602435906044356103948161022d565b90565b34610229576102c56102b16103ab3661036b565b916119a0565b3461022957604036600319011261022957602065ffffffffffff6103fc6024356103da81610218565b6004355f526001845260405f209060018060a01b03165f5260205260405f2090565b5416604051908152f35b34610229575f366003190112610229576020604051614e208152f35b34610229575f366003190112610229576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b34610229575f366003190112610229576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b634e487b7160e01b5f52604160045260245ffd5b602081019081106001600160401b038211176104d957604052565b6104aa565b604081019081106001600160401b038211176104d957604052565b606081019081106001600160401b038211176104d957604052565b6001600160401b0381116104d957604052565b608081019081106001600160401b038211176104d957604052565b90601f801991011681019081106001600160401b038211176104d957604052565b6040519060c082018281106001600160401b038211176104d957604052565b6040519061058f826104f9565b565b6040519061058f826104de565b6001600160401b0381116104d957601f01601f191660200190565b81601f82011215610229578035906105d08261059e565b926105de6040519485610542565b8284526020838301011161022957815f926020809301838601378301015290565b346102295760603660031901126102295760243561061c8161022d565b604435906001600160401b0382116102295761065f61064160209336906004016105b9565b6004355f90815260068552604090206001600160a01b03939061214a565b16604051908152f35b34610229575f36600319011261022957602060ff5f5460a01c166040519015158152f35b9181601f84011215610229578235916001600160401b038311610229576020838186019501011161022957565b34610229576020366003190112610229576001600160401b03600435818111610229576106ea90369060040161068c565b5f80516020613592833981519152549260ff8460401c16159316801590816107e9575b60011490816107df575b1590816107d6575b506107c4575f80516020613592833981519152805467ffffffffffffffff1916600117905561075291836107a057612283565b61075857005b5f80516020613592833981519152805460ff60401b19169055604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a1005b5f80516020613592833981519152805460ff60401b1916600160401b179055612283565b60405163f92ee8a960e01b8152600490fd5b9050155f61071f565b303b159150610717565b84915061070d565b34610229575f366003190112610229576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b34610229576102c56102b16108493661036b565b91611a24565b346102295760a0366003190112610229576004602435813561087082610218565b6064359161087d8361022d565b6084356001600160401b0381116102295761089b903690860161068c565b93906108a56123ed565b6108ae8461241c565b6108b6611ab6565b9480610acf575b50506108c8426125ff565b6108e26108db875465ffffffffffff1690565b8092611b17565b5f54909590610907906108fb906001600160a01b031681565b6001600160a01b031690565b958760206040988951928380926327f843b560e11b82525afa8015610aca576109469261093b925f92610a99575b50611a0c565b65ffffffffffff1690565b65ffffffffffff8416908110908115610a83575b50610a735761096f61097891518486886127da565b506044356124b3565b958615610a65576102c5610a3e878988887f3cb7f4ff6cecf74cee0eb9ae3ebf8933fa60a53014cce52f96da72a78dba8464896109bd8a6109b8426125ff565b611b17565b92600354978894610a0e6109cf610563565b8881526001600160a01b0385166020820152808b018a905265ffffffffffff8616606082015265ffffffffffff831660808201525f60a0820152611b59565b885197885265ffffffffffff938416602089015290921660408701526001600160a01b0316949081906060820190565b0390a4610a5760015f8051602061357283398151915255565b519081529081906020820190565b855163167f871760e31b8152fd5b8551631357ac9160e11b81528790fd5b9050610a9161093b426125ff565b11155f61095a565b610abc91925060203d602011610ac3575b610ab48183610542565b810190611b31565b905f610935565b503d610aaa565b6118a5565b610add929550810190611ac9565b925f806108bd565b34610229576080366003190112610229576102c56102b1600435610b0881610218565b604435610b1481610218565b60643591610b218361022d565b60243590611c8f565b34610229575f366003190112610229576020600354604051908152f35b3461022957604036600319011261022957602435610b648161022d565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163303610bc65763ffffffff610bb16040926004355f526006602052835f206124e9565b91505083929192519215158352166020820152f35b604051637ca475e560e11b8152600490fd5b346102295760603660031901126102295760048035906bffffffffffffffffffffffff8216820361022957602435610c0f81610218565b6044356001600160401b03811161022957610c2d903690840161068c565b90610c366123ed565b610c3e611ab6565b5081610f9e575b5050604080516302910f8b60e31b8152338185019081526001600160a01b0395929491602091829082908190830103818a7f0000000000000000000000000000000000000000000000000000000000000000165afa908115610aca575f91610f71575b5015610f62575f54610ce3906001600160a01b0316936bffffffffffffffffffffffff166bffffffffffffffffffffffff193360601b161790565b95610cfe610cf9885f52600660205260405f2090565b61323a565b50949015610ef857610d1261093b426125ff565b65ffffffffffff9586161115610ec257610d3c610d37895f52600660205260405f2090565b6125c0565b505b610d616108fb6108fb6108fb610d5c8c5f52600660205260405f2090565b612e78565b91808716928303610dcd575b505050505050610db2907f7b0b759b513b299fd2811f51926dca8854222a675557e8d544ce0933bf5b7570925b516001600160a01b0390911681529081906020820190565b0390a2610dcb60015f8051602061357283398151915255565b005b610de48998959796985f52600660205260405f2090565b911692845163186a323160e21b815281818981885afa908115610aca575f91610ea5575b5081600554958751998a80926327f843b560e11b82525afa908115610aca5789610e6d610e7f977f7b0b759b513b299fd2811f51926dca8854222a675557e8d544ce0933bf5b75709c610e7495610db29d610e79985f92610e88575b50501690611dde565b9116611dff565b6125ff565b90613447565b82958495610d6d565b610e9e9250803d10610ac357610ab48183610542565b5f80610e64565b610ebc9150823d8411610ac357610ab48183610542565b5f610e08565b610ee06108fb6108fb6108fb610d5c8c5f52600660205260405f2090565b82871603610d3e57865163a741a04560e01b81528490fd5b5093949385169250508115610f54575091610db291610f4d7f7b0b759b513b299fd2811f51926dca8854222a675557e8d544ce0933bf5b757094610f44875f52600660205260405f2090565b610e79426125ff565b5050610d9a565b825163a741a04560e01b8152fd5b5083516323d53b9760e21b8152fd5b610f919150823d8411610f97575b610f898183610542565b810190611dca565b5f610ca8565b503d610f7f565b610faa91810190611ac9565b505f80610c45565b634e487b7160e01b5f52603260045260245ffd5b600354811015610ffe5760035f5260021b7fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b01905f90565b610fb2565b34610229576020366003190112610229576004356003548110156102295761102a90610fc6565b50805460018201546002830154600390930154604080519384526001600160a01b0390921660208401529082019290925265ffffffffffff808316606080840191909152603084901c90911660808301529190911c60ff16151560a082015260c090f35b34610229576040366003190112610229576004356110ab81610218565b6024356001600160401b038111610229575f916110cd8392369060040161068c565b90816040519283928337810184815203915af461111a6110eb611e0c565b9161110c60405193849215156020840152604080840152606083019061023d565b03601f198101835282610542565b805190602001fd5b34610229576102c56102b16111363661036b565b91611e6d565b906080600319830112610229576004359160243561115981610218565b916044356111668161022d565b91606435906001600160401b03821161022957610394916004016105b9565b346102295760206103636111be61119b3661113c565b939190925f526002865260405f209060018060a01b03165f5260205260405f2090565b612665565b346102295760206111df6111d63661113c565b929190916127da565b50604051908152f35b9060406003198301126102295760043591602435906001600160401b038211610229576112179160040161068c565b9091565b3461022957611229366111e8565b91906112336123ed565b61123b611f92565b9280611551575b505060035481101561153f5761125781610fc6565b50908154906112658261241c565b6003830180549365ffffffffffff9384861660018060a01b0361128a895183856119b7565b16151580611514575b806114fb575b6114e9576112af816112aa426125ff565b611a0c565b5f546112c5906108fb906001600160a01b031681565b96600460206040998a51928380926327f843b560e11b82525afa8015610aca5782915f916114ca575b50169116116114b957600183018054909861131993929188906001600160a01b0316910151926127da565b906113288160028501546124b3565b9687156114a85760601c60ff166114975792611450611443899461141b6114088b9687876102c59f6114168f9d8f9e6114569f61137286600160601b60ff60601b19825416179055565b8a54855461139491906001600160a01b0316885465ffffffffffff1691612a0a565b8a5485546113ad9189916001600160a01b031690612a8a565b8a5494546113cb906001600160a01b0316965465ffffffffffff1690565b976113d4610582565b9384526020840152818301525196879160208301919091604080606083019480518452602081015160208501520151910152565b03601f198101875286610542565b612bf6565b61143461142e855465ffffffffffff1690565b86612cff565b5494546001600160a01b031690565b915465ffffffffffff1690565b92612d7c565b81518381527f5cc28df3b54da9d06f805d87616ebf969c81310f2aa8369cb14ca50f815d411190602090a2610a5760015f8051602061357283398151915255565b8551633428e90760e01b8152600490fd5b865163167f871760e31b8152600490fd5b8551639ea153eb60e01b8152600490fd5b6114e3915060203d602011610ac357610ab48183610542565b5f6112ee565b60405163b62b15c760e01b8152600490fd5b5061150861093b426125ff565b868860301c1611611299565b506115386108fb61152c611527426125ff565b6119f0565b60208b015190856119b7565b1515611293565b604051637822972360e11b8152600490fd5b61155f929350810190611fb1565b905f80611242565b34610229575f3660031901126102295760206040516001600160401b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b34610229575f366003190112610229576020600554604051908152f35b34610229575f366003190112610229576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b34610229576040366003190112610229576024356001600160401b0381116102295761165161164060209236906004016105b9565b611649426125ff565b6004356119b7565b6040516001600160a01b039091168152f35b34610229575f366003190112610229576020604051620249f08152f35b34610229575f36600319011261022957602065ffffffffffff60045416604051908152f35b34610229576116b3366111e8565b906116bc6123ed565b6116c4612039565b91806117ff575b505060035482101561153f576116e082610fc6565b506003815491019182549165ffffffffffff9160018060a01b036117088251858716856119b7565b169182159182156117d6575b50506117c45733036117b25761172c61093b426125ff565b908260301c1611156117a15760601c60ff1661178f57805460ff60601b1916600160601b17905533907f7d3d269c851b72257a5194a401d151902e9be4347d555996dcff3ff86a077e925f80a3610dcb60015f8051602061357283398151915255565b604051633428e90760e01b8152600490fd5b60405162c457e560e81b8152600490fd5b604051635d154fe160e11b8152600490fd5b60405163dd1ebd9d60e01b8152600490fd5b6117f79250906108fb9160206117ee611527426125ff565b910151916119b7565b155f80611714565b61180c9250810190612052565b5f806116cb565b34610229575f366003190112610229575f546040516001600160a01b039091168152602090f35b81601f82011215610229578051906118518261059e565b9261185f6040519485610542565b8284526020838301011161022957815f9260208093018386015e8301015290565b906020828203126102295781516001600160401b03811161022957610394920161183a565b6040513d5f823e3d90fd5b604061039492602083525191602080820152019061023d565b604051632751749360e11b81526001600160a01b0391821660048201526024810192909252909116604482015265ffffffffffff9091166064820152606091905f81806084810103817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa908115610aca575f9161197e575b5080516119565750565b61110c919250610394906040519061196d826104be565b8152604051928391602083016118b0565b61199a91503d805f833e6119928183610542565b810190611880565b5f61194c565b92916119ae91606094611e6d565b80516119565750565b5f9081526006602052604090206001600160a01b03926119d892909161214a565b1690565b634e487b7160e01b5f52601160045260245ffd5b65ffffffffffff9081165f190191908211611a0757565b6119dc565b65ffffffffffff9182169082160391908211611a0757565b611a4590939293611a386060958483611e6d565b92611136611527426125ff565b815115801590611aac575b611a58575050565b611a999293509061110c6103949260405192611a73846104de565b83526020830190815260405194859360208086015251604080860152608085019061023d565b9051838203603f1901606085015261023d565b5080511515611a50565b60405190611ac3826104be565b60608252565b906020828203126102295781356001600160401b03928382116102295701906020828203126102295760405192611aff846104be565b823590811161022957611b1292016105b9565b815290565b91909165ffffffffffff80809416911601918211611a0757565b9081602091031261022957516103948161022d565b634e487b7160e01b5f525f60045260245ffd5b600354600160401b8110156104d957806001611b789201600355610fc6565b919091611c3b578051825560208101516001830180546001600160a01b0319166001600160a01b039290921691909117905561058f91611c219060a090600390604085015160028201550192611bee65ffffffffffff606083015116859065ffffffffffff1665ffffffffffff19825416179055565b60808101516bffffffffffff00000000000085549160301b16906bffffffffffff00000000000019161784550151151590565b815460ff60601b191690151560601b60ff60601b16179055565b611b46565b906103949160208152611c5f825160606020840152608083019061023d565b9060606040611c7f602086015194601f199586868303018487015261023d565b940151928285030191015261023d565b919093925f606095611ca2838287611e6d565b94611d05611cbc611cb5611527426125ff565b8484611e6d565b604051632751749360e11b81526001600160a01b039384166004820152602481019490945291909516604483015265ffffffffffff909316606482015292839081906084820190565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa918215610aca575f92611da1575b50825115801590611d97575b8015611d8d575b611d5d57505050565b61110c939450906103949291611d71610582565b9283526020830152604082015260405192839160208301611c40565b5081511515611d54565b5080511515611d4d565b611db69192503d805f833e6119928183610542565b905f611d41565b5190811515820361022957565b908160209103126102295761039490611dbd565b81810292918115918404141715611a0757565b9060018201809211611a0757565b91908201809211611a0757565b3d15611e36573d90611e1d8261059e565b91611e2b6040519384610542565b82523d5f602084013e565b606090565b519063ffffffff8216820361022957565b9190826040910312610229576103946020611e6684611dbd565b9301611e3b565b92915f8060609565ffffffffffff60405194602096638f82f93160e01b88880152602487015216604485015260448452611ea684610527565b6040519384611ed387820192639f86fd8560e01b845230602484015260406044840152606483019061023d565b0394611ee7601f1996878101835282610542565b51915afa50611f05611ef7611e0c565b838082518301019101612631565b9015611f5857808380611f1d93518301019101611e4c565b9290611f2857505050565b61039492939450611f4c604051948592830191909163ffffffff6020820193169052565b03908101835282610542565b809150519182156102295701fd5b5f9081526002602090815260408083206001600160a01b03909416835292905220610394929190612665565b60405190611f9f826104f9565b60606040838281528260208201520152565b906020828203126102295781356001600160401b03928382116102295701906060828203126102295760405192611fe7846104f9565b82358181116102295782611ffc9185016105b9565b8452602083013581811161022957826120169185016105b9565b602085015260408301359081116102295761203192016105b9565b604082015290565b60405190612046826104de565b60606020838281520152565b906020828203126102295781356001600160401b03928382116102295701906040828203126102295760405192612088846104de565b8235818111610229578261209d9185016105b9565b84526020830135908111610229576120b592016105b9565b602082015290565b8054821015610ffe575f5260205f2001905f90565b6120db81612e78565b6001600160d01b038116156121005760016120f692016120bd565b90549060031b1c90565b50505f90565b908160209103126102295761039490611e3b565b5f19810191908211611a0757565b91908203918211611a0757565b90600163ffffffff80931601918211611a0757565b9180511561222e578060208061216593518301019101612106565b916121708382612eb8565b92612181845165ffffffffffff1690565b9065ffffffffffff808516921682811461221557821191826121c0575b50506121ae576103949250613346565b5050602001516001600160d01b031690565b9091506121cd835461211a565b63ffffffff8316149182156121e6575b50505f8061219e565b61220d9192506122016121fb61093b92612135565b85612eb8565b5165ffffffffffff1690565b115f806121dd565b50505050602091909101516001600160d01b0316905090565b5061039491613346565b91909160408184031261022957803561225081610218565b9260208201356001600160401b0381116102295761039492016105b9565b90816020910312610229575161039481610218565b61228f91810190612238565b6040516302910f8b60e31b81526001600160a01b0392831660048201819052929160209182816024817f000000000000000000000000000000000000000000000000000000000000000088165afa908115610aca575f916123d0575b50156123be5781612320600492612300612f0c565b5f80546001600160a01b0319166001600160a01b03891617905586612f99565b94604051928380926313c085b760e11b82525afa918215610aca575f92612391575b5050161580612387575b612375575161058f9015155f805460ff60a01b191691151560a01b60ff60a01b16919091179055565b60405163d2420f5960e01b8152600490fd5b508051151561234c565b6123b09250803d106123b7575b6123a88183610542565b81019061226e565b5f80612342565b503d61239e565b6040516362df054560e01b8152600490fd5b6123e79150833d8511610f9757610f898183610542565b5f6122eb565b5f80516020613572833981519152600281541461240a5760029055565b604051633ee5aeb560e01b8152600490fd5b604051635daf681960e11b815260609190911c60048201526001600160a01b036020826024817f000000000000000000000000000000000000000000000000000000000000000085165afa918215610aca575f92612492575b503391160361248057565b60405163227bf64d60e01b8152600490fd5b6124ac91925060203d6020116123b7576123a88183610542565b905f612475565b90808210156124c0575090565b905090565b906040516124d2816104de565b915465ffffffffffff8116835260301c6020830152565b908154905f829160058411612572575b6125049350846131d8565b90811561256657612525906125188361211a565b905f5260205f20016124c5565b9161255f6125566125506020612541875165ffffffffffff1690565b9601516001600160d01b031690565b9361211a565b63ffffffff1690565b6001939291565b50505f905f905f905f90565b919261257d8161309a565b8103908111611a075761250493855f5265ffffffffffff808360205f20015416908516105f146125ae5750916124f9565b9291506125ba90611df1565b906124f9565b906125ca82612e78565b91805480156125eb575f1901906125e182826120bd565b611c3b575f905555565b634e487b7160e01b5f52603160045260245ffd5b65ffffffffffff90818111612612571690565b604490604051906306dfcc6560e41b8252603060048301526024820152fd5b9190916040818403126102295761264781611dbd565b9260208201516001600160401b03811161022957610394920161183a565b91805115612727578060208061268093518301019101612106565b9161268b8382613294565b9261269c845165ffffffffffff1690565b9065ffffffffffff808516921682811461271b57821191826126d2575b50506126c9576103949250613289565b50506020015190565b9091506126df835461211a565b63ffffffff8316149182156126f8575b50505f806126b9565b61271391925061220161270d61093b92612135565b85613294565b115f806126ef565b50505050506020015190565b5061039491613289565b906020828203126102295781516001600160401b03928382116102295701906040828203126102295760405192612767846104de565b8251818111610229578261277c91850161183a565b84526020830151908111610229576120b5920161183a565b90816020910312610229575190565b9081526001600160a01b03909116602082015265ffffffffffff90911660408201526080606082018190526103949291019061023d565b926127e3612039565b908051806129f0575b50506127f7426125ff565b5f54909490612810906108fb906001600160a01b031681565b93604051956327f843b560e11b875260209687816004818a5afa8015610aca576128449261093b925f926129d85750611a0c565b65ffffffffffff82169081109081156129c1575b8115612990575b50612984578560049560405196878092630ce9b79360e41b82525afa948515610aca576128b19587915f91612967575b50845190604051808099819463e02f693760e01b8352878b8a600486016127a3565b03916001600160a01b03165afa938415610aca57612923955f95612926575b5092612918859361291e9361291896869a61290f61035e836128fa875f52600260205260405f2090565b9060018060a01b03165f5260205260405f2090565b95015192611f66565b90612128565b6124b3565b91565b61291e929550612918949193612954612918928a3d8c11612960575b61294c8183610542565b810190612794565b969350939194506128d0565b503d612942565b61297e9150823d84116123b7576123a88183610542565b5f61288f565b5050505050505f905f90565b90506129ba61093b6129ae876128fa875f52600160205260405f2090565b5465ffffffffffff1690565b115f61285f565b90506129cf61093b426125ff565b81101590612858565b610abc9192508a3d8c11610ac357610ab48183610542565b612a039250602080918301019101612731565b5f806127ec565b919091805f52600160205265ffffffffffff80612a3a8560405f209060018060a01b03165f5260205260405f2090565b541690831611612a4957505050565b61058f92612a71915f52600160205260405f209060018060a01b03165f5260205260405f2090565b9065ffffffffffff1665ffffffffffff19825416179055565b9190825f526002602052612ae261035e612ab78360405f209060018060a01b03165f5260205260405f2090565b92612ac1426125ff565b955f52600260205260405f209060018060a01b03165f5260205260405f2090565b918201809211611a07576001810190815415612b86575b612b028161323a565b509490835495612b11846120d2565b5081612b71575b5015612b505750505f198301928311611a075761058f92612b38916120bd565b90919082549060031b91821b915f19901b1916179055565b61058f94612b6a926001600160d01b039091169190613447565b5050613323565b65ffffffffffff83811691161490505f612b18565b612b8f826132f6565b612af9565b60606020610394938184526001600160401b0381511682850152015191604080820152019061023d565b919360a093610394969565ffffffffffff938552600180871b031660208501526040840152166060820152816080820152019061023d565b92939060046020612c136108fb6108fb5f5460018060a01b031690565b604051630ce9b79360e41b815292839182905afa908115610aca5761110c91612c91915f91612ce0575b506001600160a01b031693612c50610591565b6001600160401b037f000000000000000000000000000000000000000000000000000000000000000016815290602082015260405192839160208301612b94565b823b15610229575f94612cbc86926040519889978896879563724ab0f760e11b875260048701612bbe565b03925af18015610aca57612ccd5750565b80612cda61058f92610514565b806102c9565b612cf9915060203d6020116123b7576123a88183610542565b5f612c3d565b65ffffffffffff9160446020925f60018060a01b038154166040519687958694631c9e38c760e21b865260048601521660248401525af18015610aca57612d435750565b612d5b9060203d6020116129605761294c8183610542565b50565b8115612d68570490565b634e487b7160e01b5f52601260045260245ffd5b92905f549060ff8260a01c16612d94575b5050505050565b6040516313c085b760e11b815291602090839060049082906001600160a01b03165afa918215610aca575f92612e51575b5060405163065c1e0360e01b6020820190815260248201969096526001600160a01b039091166044820152606481019390935265ffffffffffff9091166084830152612e1e8260a481015b03601f198101845283610542565b6202a15c5a10612e3f575f928380935192620249f0f1505f80808080612d8d565b604051632153f33560e21b8152600490fd5b612e1e9250612e71612e109160203d6020116123b7576123a88183610542565b9250612dc5565b805480612e855750505f90565b5f19918183810111611a07575f5260205f2001015460301c90565b60405190612ead826104de565b5f6020838281520152565b612edd91612ed791612ec8612ea0565b50612ed1612ea0565b506120bd565b506124c5565b65ffffffffffff81511690602060018060d01b039101511660405191612f02836104de565b8252602082015290565b612f146133d2565b612f1c6133d2565b60015f8051602061357283398151915255565b60405190612f3c826104be565b5f8252565b809103906060821261022957602060405192612f5c846104f9565b12610229576040908151612f6f816104be565b612f7882611dbd565b815283526020810151612f8a8161022d565b60208401520151604082015290565b90600490612fa5612f2f565b508051612fbc602092838080948301019101612f41565b6040516327f843b560e11b815290949093849182906001600160a01b03165afa918215610aca575f9261307b575b50820190612ffe825165ffffffffffff1690565b65ffffffffffff91821691161015613069576040820160038151106130575761304d613033613053935165ffffffffffff1690565b65ffffffffffff1665ffffffffffff196004541617600455565b51600555565b5190565b6040516354f778f360e01b8152600490fd5b6040516367d5e3df60e11b8152600490fd5b816130939293503d8411610ac357610ab48183610542565b905f612fea565b80156131d3578061316c61316561315b61315161314761313d61313361312960016103949a5f908b60801c806131c7575b508060401c806131ba575b508060201c806131ad575b508060101c806131a0575b508060081c80613193575b508060041c80613186575b508060021c80613179575b50821c613172575b811c1b613122818b612d5e565b0160011c90565b613122818a612d5e565b6131228189612d5e565b6131228188612d5e565b6131228187612d5e565b6131228186612d5e565b6131228185612d5e565b8092612d5e565b906124b3565b8101613115565b600291509101905f61310d565b600491509101905f613102565b600891509101905f6130f7565b601091509101905f6130ec565b602091509101905f6130e1565b604091509101905f6130d6565b9150506080905f6130cb565b505f90565b91905b8382106131e85750505090565b909192808316906001818518811c8301809311611a0757855f5265ffffffffffff808460205f20015416908516105f14613227575050925b91906131db565b909493508101809111611a075791613220565b80548061324b5750505f905f905f90565b5f19908082810111611a0757613268925f5260205f2001016124c5565b9065ffffffffffff82511691602060018060d01b0391015116906001929190565b906120db9082613346565b906132b7612ed76132d8926132a7612ea0565b506132b0612ea0565b50846120bd565b91600165ffffffffffff845116936020828060d01b039101511691016120bd565b905490604051926132e8846104de565b835260031b1c602082015290565b8054600160401b8110156104d957613313916001820181556120bd565b8154905f199060031b1b19169055565b90815491600160401b8310156104d95782612b3891600161058f950181556120bd565b908154905f829160058411613384575b6133619350846131d8565b8061336c5750505f90565b6133759061211a565b905f5260205f20015460301c90565b919261338f8161309a565b8103908111611a075761336193855f5265ffffffffffff808360205f20015416908516105f146133c0575091613356565b9291506133cc90611df1565b90613356565b60ff5f805160206135928339815191525460401c16156133ee57565b604051631afcd79f60e31b8152600490fd5b8054600160401b8110156104d95761341d916001820181556120bd565b611c3b57815160209092015160301b65ffffffffffff191665ffffffffffff909216919091179055565b8054929392919082156135485761347361346e6134638561211a565b835f5260205f200190565b6124c5565b90613484825165ffffffffffff1690565b65ffffffffffff84811691168110613536576134fa9460209488926134b261093b875165ffffffffffff1690565b036134fe57506134ec926134c86134d39261211a565b905f5260205f200190565b9065ffffffffffff82549181199060301b169116179055565b01516001600160d01b031690565b9190565b9150506135319161351e613510610591565b65ffffffffffff9093168352565b6001600160d01b03881682860152613400565b6134ec565b604051632520601d60e01b8152600490fd5b61356c9250613558613510610591565b6001600160d01b0385166020830152613400565b5f919056fe9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a264697066735822122066def236e3cb068f18d202c0ed5927514d7f8f51390f7bbba09b96397dfe793c64736f6c63430008190033","sourceMap":"3563:3596:89:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;-1:-1:-1;;;;;3563:3596:89;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;3563:3596:89;;;;;;;;-1:-1:-1;;3563:3596:89;;;;:::o;:::-;;;;;;-1:-1:-1;;3563:3596:89;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::o;:::-;;;;;;-1:-1:-1;;3563:3596:89;;;;;;1435:38:97;-1:-1:-1;;;;;3563:3596:89;;;;;;;;;;;;-1:-1:-1;;3563:3596:89;;;;;2936:47:97;:38;3563:3596:89;;;;;:::i;:::-;;;-1:-1:-1;3563:3596:89;2936:16:97;3563:3596:89;;;-1:-1:-1;3563:3596:89;;;;;;;;;;;;;;;;;2936:38:97;:47;:::i;:::-;3563:3596:89;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;-1:-1:-1;;3563:3596:89;;;;;;1788:109:97;3563:3596:89;;;;;:::i;:::-;;;-1:-1:-1;3563:3596:89;1788:109:97;3563:3596:89;;;-1:-1:-1;3563:3596:89;;;;;;;;;;;;;;;;;1788:109:97;3563:3596:89;;;;;;;;;;;;;;-1:-1:-1;;3563:3596:89;;;;;;;1374:6:97;3563:3596:89;;;;;;;;;-1:-1:-1;;3563:3596:89;;;;;;1528:51:97;-1:-1:-1;;;;;3563:3596:89;;;;;;;;;;;;-1:-1:-1;;3563:3596:89;;;;;;322:32:74;-1:-1:-1;;;;;3563:3596:89;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3563:3596:89;;;;;;;:::o;:::-;;:::i;:::-;;;;;;;-1:-1:-1;;;;;3563:3596:89;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;3563:3596:89;;;;;;;:::o;:::-;-1:-1:-1;;;;;3563:3596:89;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;3563:3596:89;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;3563:3596:89;;;;;;;:::o;:::-;;;;;;;;;;-1:-1:-1;;;;;3563:3596:89;;;;;;;:::o;:::-;;;;;;;:::i;:::-;:::o;:::-;;;;;;;:::i;:::-;-1:-1:-1;;;;;3563:3596:89;;;;;;-1:-1:-1;;3563:3596:89;;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;3563:3596:89;;;;;;;;;;;;;;:::o;:::-;;;;;;-1:-1:-1;;3563:3596:89;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;3563:3596:89;;;;2016:56:99;3563:3596:89;;;;;;;;:::i;:::-;;;-1:-1:-1;3563:3596:89;;;2016:9:99;3563:3596:89;;;;;-1:-1:-1;;;;;3563:3596:89;;2016:56:99;:::i;:::-;3563:3596:89;;;;;;;;;;;;;-1:-1:-1;;3563:3596:89;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3563:3596:89;;;;;;;;;;;;;;;:::o;:::-;;;;;;-1:-1:-1;;3563:3596:89;;;;-1:-1:-1;;;;;3563:3596:89;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;3563:3596:89;;;;;;;4301:16:26;3563:3596:89;;4726:16:26;;:34;;;;3563:3596:89;4805:1:26;4790:16;:50;;;;3563:3596:89;4855:13:26;:30;;;;3563:3596:89;4851:91:26;;;-1:-1:-1;;;;;;;;;;;3563:3596:89;;-1:-1:-1;;3563:3596:89;;;;;718:4:74;;4951:18:26;4979:67;;718:4:74;:::i;:::-;5066:101:26;;3563:3596:89;5066:101:26;-1:-1:-1;;;;;;;;;;;3563:3596:89;;-1:-1:-1;;;;3563:3596:89;;;;;-1:-1:-1;3563:3596:89;;5142:14:26;;3563:3596:89;;5142:14:26;3563:3596:89;4979:67:26;-1:-1:-1;;;;;;;;;;;3563:3596:89;;-1:-1:-1;;;;3563:3596:89;-1:-1:-1;;;3563:3596:89;;;718:4:74;:::i;4851:91:26:-;3563:3596:89;;-1:-1:-1;;;4908:23:26;;3563:3596:89;;4908:23:26;4855:30;4872:13;;;4855:30;;;4790:50;4818:4;4810:25;:30;;-1:-1:-1;4790:50:26;;4726:34;;;-1:-1:-1;4726:34:26;;3563:3596:89;;;;;;-1:-1:-1;;3563:3596:89;;;;;;3726:43;-1:-1:-1;;;;;3563:3596:89;;;;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;-1:-1:-1;;3563:3596:89;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;3563:3596:89;;;;;;;;;;;:::i;:::-;3217:103:29;;;;:::i;:::-;2123:10:97;;;:::i;:::-;3563:3596:89;;:::i;:::-;2666:16:99;;2662:105;;3563:3596:89;837:15:63;;819:34;837:15;819:34;:::i;:::-;2813:31:99;3563:3596:89;;;;;;;;2813:31:99;;;:::i;:::-;-1:-1:-1;3563:3596:89;;;;2847:27:99;;:13;;-1:-1:-1;;;;;3563:3596:89;2847:13:99;3563:3596:89;;-1:-1:-1;;;;;3563:3596:89;;;2847:27:99;3563:3596:89;;;;;;;;;;;;;;2847:29:99;;;;;;;;2794:82;2847:29;2813:63;2847:29;-1:-1:-1;2847:29:99;;;3563:3596:89;2813:63:99;;:::i;:::-;3563:3596:89;;;;2794:82:99;3563:3596:89;;;2794:82:99;;;:138;;;;;3563:3596:89;2777:223:99;;;3248:62:97;3019:133:99;3104:37;;3248:62:97;;;;:::i;:::-;3563:3596:89;;;3019:133:99;:::i;:::-;3166:11;;;3162:68;;3563:3596:89;3671:86:99;837:15:63;;;;3671:86:99;837:15:63;3262:31:99;837:15:63;819:34;837:15;819:34;:::i;:::-;3262:31:99;:::i;:::-;3563:3596:89;3317:13:99;3563:3596:89;;;;3347:308:99;3563:3596:89;;:::i;:::-;;;;-1:-1:-1;;;;;3563:3596:89;;;3379:266:99;;3563:3596:89;3379:266:99;;;3563:3596:89;;;;;;;3379:266:99;;3563:3596:89;;;;;3379:266:99;;3563:3596:89;-1:-1:-1;3563:3596:89;3379:266:99;;3563:3596:89;3347:308:99;:::i;:::-;3563:3596:89;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3563:3596:89;;;;;;;;;;3671:86:99;;;;3282:1:29;1805;-1:-1:-1;;;;;;;;;;;3563:3596:89;3716:283:29;3282:1;3563:3596:89;;;;;;;;;;;;3162:68:99;3563:3596:89;;-1:-1:-1;;;3200:19:99;;;2777:223;3563:3596:89;;-1:-1:-1;;;2964:25:99;;3563:3596:89;;2964:25:99;2794:138;837:15:63;;2896:36:99;819:34:63;837:15;819:34;:::i;2896:36:99:-;-1:-1:-1;2896:36:99;2794:138;;;2847:29;;;;;3563:3596:89;2847:29:99;3563:3596:89;2847:29:99;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;;:::i;2662:105::-;2718:38;;;;;;;;:::i;:::-;2662:105;;;;;3563:3596:89;;;;;;-1:-1:-1;;3563:3596:89;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;-1:-1:-1;;3563:3596:89;;;;;1795:13:99;3563:3596:89;;;;;;;;;;;;;-1:-1:-1;;3563:3596:89;;;;;;;;;:::i;:::-;449:5:87;-1:-1:-1;;;;;3563:3596:89;435:10:87;:19;431:71;;3563:3596:89;4136:60;3563:3596;;;;-1:-1:-1;3563:3596:89;4136:9;3563:3596;;;-1:-1:-1;3563:3596:89;4136:60;:::i;:::-;3563:3596;;;;;;;;;;;;;;;;;;;431:71:87;3563:3596:89;;-1:-1:-1;;;477:14:87;;3563:3596:89;;477:14:87;3563:3596:89;;;;;;-1:-1:-1;;3563:3596:89;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;3563:3596:89;;;;;;;;;;;:::i;:::-;3217:103:29;;;:::i;:::-;3563:3596:89;;:::i;:::-;;7493:16:99;7489:103;;3563:3596:89;-1:-1:-1;;3563:3596:89;;;-1:-1:-1;;;7607:48:99;;7644:10;7607:48;;;3563:3596:89;;;-1:-1:-1;;;;;3563:3596:89;;;;;;;;;;;;;;7607:48:99;7617:16;;;3563:3596:89;7607:48:99;;;;;;;-1:-1:-1;7607:48:99;;;3563:3596:89;7606:49:99;;7602:99;;-1:-1:-1;3563:3596:89;7764:35:99;;-1:-1:-1;;;;;3563:3596:89;7644:10:99;3563:3596:89;;-1:-1:-1;;7644:10:99;297:2:93;3563:3596:89;;267:46:93;;152:169;7764:35:99;7850:21;5260:30:91;7850:21:99;;3563:3596:89;;7850:9:99;3563:3596:89;;;;;;;7850:21:99;5260:30:91;:::i;:::-;-1:-1:-1;7900:801:99;;;;;7930:34;819::63;837:15;819:34;:::i;7930::99:-;3563:3596:89;;;;7930:34:99;;;;7984:27;:21;;3563:3596:89;;7850:9:99;3563:3596:89;;;;;;;7984:21:99;:27;:::i;:::-;;7926:225;8169:61;8182:48;8190:39;4928:20:91;8198:21:99;;3563:3596:89;;7850:9:99;3563:3596:89;;;;;;;8198:21:99;4928:20:91;:::i;8169:61:99:-;3563:3596:89;;;;8169:61:99;;;8165:336;;7926:225;7900:801;;;;;;8716:34;7900:801;8716:34;7900:801;;3563:3596:89;-1:-1:-1;;;;;3563:3596:89;;;;;;;;;;;;;8716:34:99;;;;3282:1:29;1805;-1:-1:-1;;;;;;;;;;;3563:3596:89;3716:283:29;3282:1;3563:3596:89;8165:336:99;8250:21;;;;;;;3563:3596:89;;7850:9:99;3563:3596:89;;;;;;;8250:21:99;3563:3596:89;;;;;;;;8299:34:99;;;;;;;;;;;;;;-1:-1:-1;8299:34:99;;;8165:336;3563:3596:89;;8336:22:99;3563:3596:89;;;;;;;;;;;8361:30:99;;;;;;;;;;8336:55;8167:38:61;8361:30:99;8716:34;8361:30;8299:92;8361:30;8716:34;8361:30;8298:130;8361:30;-1:-1:-1;8361:30:99;;;8165:336;3563:3596:89;;;8336:55:99;;:::i;:::-;3563:3596:89;;8299:92:99;:::i;:::-;8298:130;:::i;:::-;8167:38:61;;:::i;:::-;8165:336:99;;;;;;8361:30;;;;;;-1:-1:-1;8361:30:99;;;;;;:::i;:::-;;;;;8299:34;;;;;;;;;;;;;;:::i;:::-;;;;7926:225;8036:61;8049:48;8057:39;4928:20:91;8065:21:99;;3563:3596:89;;7850:9:99;3563:3596:89;;;;;;;8036:61:99;3563:3596:89;;;8036:61:99;7926:225;8032:119;3563:3596:89;;-1:-1:-1;;;8124:12:99;;3563:3596:89;;8124:12:99;7900:801;-1:-1:-1;3563:3596:89;;;;;;-1:-1:-1;;8535:23:99;;8531:81;;8626:21;;8716:34;8626:21;8167:38:61;8716:34:99;8626:21;;;3563:3596:89;;7850:9:99;3563:3596:89;;;;;;;8626:21:99;819:34:63;837:15;819:34;:::i;8167:38:61:-;7900:801:99;;;;8531:81;3563:3596:89;;-1:-1:-1;;;8585:12:99;;;7602:99;-1:-1:-1;3563:3596:89;;-1:-1:-1;;;7678:12:99;;;7607:48;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;7489:103;7544:37;;;;;;:::i;:::-;;7489:103;;;;3563:3596:89;;;;;;;;;;;;;1050:35:99;3563:3596:89;;;;;;1050:35:99;-1:-1:-1;3563:3596:89;;;;;;-1:-1:-1;3563:3596:89;:::o;:::-;;:::i;:::-;;;;;;-1:-1:-1;;3563:3596:89;;;;;;1050:35:99;3563:3596:89;1050:35:99;;;;;;;;:::i;:::-;-1:-1:-1;3563:3596:89;;;1050:35:99;;3563:3596:89;1050:35:99;;;3563:3596:89;1050:35:99;;;;3563:3596:89;;;;;;;-1:-1:-1;;;;;3563:3596:89;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;3563:3596:89;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;3563:3596:89;;;;-1:-1:-1;3563:3596:89;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;416:25:80;;;;477:31;416:25;;:::i;:::-;3563:3596:89;;;;;;;;;;477:31:80;;3563:3596:89;;;;;;;;;;;:::i;:::-;477:31:80;3563:3596:89;;477:31:80;;;;;;:::i;:::-;518:79;;;3563:3596:89;518:79:80;;3563:3596:89;;;;;;;;;:::i;:::-;;;:::i;:::-;;;-1:-1:-1;;3563:3596:89;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;-1:-1:-1;;;;;3563:3596:89;;;;;;;;;:::i;:::-;;;;;2692:73:97;:38;3563:3596:89;;;:::i;:::-;;;;;-1:-1:-1;3563:3596:89;2692:16:97;3563:3596:89;;;-1:-1:-1;3563:3596:89;;;;;;;;;;;;;;;;;2692:38:97;:73;:::i;3563:3596:89:-;;;;;3248:62:97;3563:3596:89;;;:::i;:::-;3248:62:97;;;;;:::i;:::-;3563:3596:89;;;;;;;;;;-1:-1:-1;;3563:3596:89;;;;;;;;;;;-1:-1:-1;;;;;3563:3596:89;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;:::i;:::-;3217:103:29;;;;:::i;:::-;3563:3596:89;;:::i;:::-;4024:16:99;;4020:105;;3563:3596:89;;;4153:13:99;3563:3596:89;4139:34:99;;;4135:94;;4270:25;;;:::i;:::-;3563:3596:89;;;;4330:18:99;;;;:::i;:::-;4153:13;4408:24;;3563:3596:89;;;;;;;;;;;;;4377:95:99;4434:37;;4377:95;;;:::i;:::-;3563:3596:89;4377:125:99;;:250;;;3563:3596:89;4377:309:99;;;3563:3596:89;4360:389:99;;4763:43;837:15:63;819:34;837:15;819:34;:::i;:::-;4763:43:99;:::i;:::-;-1:-1:-1;3563:3596:89;4809:27:99;;:13;;-1:-1:-1;;;;;3563:3596:89;4809:13:99;3563:3596:89;4809:27:99;3563:3596:89;;4809:29:99;3563:3596:89;;;;;;;;;;;4809:29:99;;;;;;;;;;-1:-1:-1;4809:29:99;;;3563:3596:89;;;;;4763:75:99;4759:131;;4994:16;;;3563:3596:89;;4994:16:99;;4945:140;;4994:16;;3563:3596:89;;-1:-1:-1;;;;;3563:3596:89;5038:37:99;;;4945:140;;:::i;:::-;5120:14;5111:41;5120:14;;;;3563:3596:89;5111:41:99;:::i;:::-;5166:18;;;5162:75;;3563:3596:89;;;;5247:78:99;;5335:24;3563:3596:89;;5335:24:99;;5725:145;;5335:24;;;;3563:3596:89;5335:24:99;5725:145;5335:24;;;;6024;5335;;;3563:3596:89;;;;;;;;;;;;;;5335:24:99;3563:3596:89;;;;5445:24:99;;3563:3596:89;-1:-1:-1;;;;;3563:3596:89;;;;;5445:24:99;;:::i;:::-;3563:3596:89;;;;5542:13:99;;3563:3596:89;;-1:-1:-1;;;;;3563:3596:89;5542:13:99;;:::i;:::-;3563:3596:89;;;;;;-1:-1:-1;;;;;3563:3596:89;;;;;;;;;;;:::i;:::-;;;;4809:29:99;5753:103;;3563:3596:89;5753:103:99;;;3563:3596:89;;5725:145:99;;;4809:29;5725:145;;3563:3596:89;;;;;;;;;;;;;;;;;;;;;;;;;;;5725:145:99;;3563:3596:89;;5725:145:99;;;;;;:::i;:::-;;:::i;:::-;5920:24;3563:3596:89;;;;;;;;5920:24:99;;:::i;:::-;3563:3596:89;;;-1:-1:-1;;;;;3563:3596:89;;;;;;;;;;;6024:24:99;;:::i;:::-;3563:3596:89;;;;;6065:39:99;;3563:3596:89;;6065:39:99;3282:1:29;1805;-1:-1:-1;;;;;;;;;;;3563:3596:89;3716:283:29;5247:78:99;3563:3596:89;;-1:-1:-1;;;5291:23:99;;3563:3596:89;;5291:23:99;5162:75;3563:3596:89;;-1:-1:-1;;;5207:19:99;;3563:3596:89;;5207:19:99;4759:131;3563:3596:89;;-1:-1:-1;;;4861:18:99;;3563:3596:89;;4861:18:99;4809:29;;;;;;;;;;;;;;:::i;:::-;;;;4360:389;3563:3596:89;;-1:-1:-1;;;4718:20:99;;3563:3596:89;;4718:20:99;4377:309;837:15:63;4647:39:99;819:34:63;837:15;819:34;:::i;4647:39:99:-;3563:3596:89;;;;;4647:39:99;4377:309;;:250;837:15:63;4522:105:99;:91;4553:20;819:34:63;837:15;819:34;:::i;:::-;4553:20:99;:::i;:::-;4575:37;;;;4522:91;;;:::i;:105::-;;;4377:250;;4135:94;3563:3596:89;;-1:-1:-1;;;4196:22:99;;3563:3596:89;;4196:22:99;4020:105;4076:38;;;;;;;;:::i;:::-;4020:105;;;;;3563:3596:89;;;;;;-1:-1:-1;;3563:3596:89;;;;;;;-1:-1:-1;;;;;404:28:74;3563:3596:89;;;;;;;;;;-1:-1:-1;;3563:3596:89;;;;;1221:37:99;3563:3596:89;;;;;;;;;;;;;-1:-1:-1;;3563:3596:89;;;;;;954:41:99;-1:-1:-1;;;;;3563:3596:89;;;;;;;;;;;;-1:-1:-1;;3563:3596:89;;;;;;-1:-1:-1;;;;;3563:3596:89;;;;2239:46:99;3563:3596:89;;;;;;;;:::i;:::-;819:34:63;837:15;819:34;:::i;:::-;3563:3596:89;;2239:46:99;:::i;:::-;3563:3596:89;;-1:-1:-1;;;;;3563:3596:89;;;;;;;;;;;;-1:-1:-1;;3563:3596:89;;;;;;;1271:7:97;3563:3596:89;;;;;;;;;-1:-1:-1;;3563:3596:89;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3217:103:29;;;:::i;:::-;3563:3596:89;;:::i;:::-;6308:16:99;;6304:99;;3563:3596:89;;;6431:13:99;3563:3596:89;6417:34:99;;;6413:94;;6548:25;;;:::i;:::-;3563:3596:89;6431:13:99;3563:3596:89;;6653:24:99;;3563:3596:89;;;;;;;;;;;6622:92:99;6679:34;;3563:3596:89;;;6622:92:99;;:::i;:::-;3563:3596:89;6741:29:99;;;:151;;;;;3563:3596:89;6724:223:99;;;;6961:10;:29;6957:80;;7051:40;819:34:63;837:15;819:34;:::i;7051:40:99:-;3563:3596:89;;;;;7051:40:99;;7047:95;;3563:3596:89;;;;7152:78:99;;3563:3596:89;;-1:-1:-1;;;;3563:3596:89;-1:-1:-1;;;3563:3596:89;;;6961:10:99;7280:33;;-1:-1:-1;7280:33:99;;3282:1:29;1805;-1:-1:-1;;;;;;;;;;;3563:3596:89;3716:283:29;7152:78:99;3563:3596:89;;-1:-1:-1;;;7196:23:99;;3563:3596:89;;7196:23:99;7047:95;3563:3596:89;;-1:-1:-1;;;7114:17:99;;3563:3596:89;;7114:17:99;6957:80;3563:3596:89;;-1:-1:-1;;;7013:13:99;;3563:3596:89;;7013:13:99;6724:223;3563:3596:89;;-1:-1:-1;;;6924:12:99;;3563:3596:89;;6924:12:99;6741:151;6790:102;837:15:63;;;6790:88:99;837:15:63;6843:34:99;6821:20;819:34:63;837:15;819:34;:::i;6821:20:99:-;6843:34;;;6790:88;;:::i;:102::-;;6741:151;;;;6304:99;6357:35;;;;;;;:::i;:::-;6304:99;;;;3563:3596:89;;;;;;-1:-1:-1;;3563:3596:89;;;;;;;;-1:-1:-1;;;;;3563:3596:89;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;3563:3596:89;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;;;;3563:3596:89;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;4649:553::-;3563:3596;;-1:-1:-1;;;4939:105:89;;-1:-1:-1;;;;;3563:3596:89;;;4939:105;;;3563:3596;;;;;;;;;;;;;;;;;;;;;;;;;4649:553;4939:105;3563:3596;;;;;4939:105;3563:3596;4956:18;-1:-1:-1;;;;;3563:3596:89;4939:105;;;;;;;;;;;4649:553;3563:3596;;;5055:141;;4649:553;:::o;5055:141::-;5112:73;3563:3596;;;5112:73;3563:3596;;;;;;;:::i;:::-;;;;;5112:73;;;3563:3596;5112:73;;;:::i;4939:105::-;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;6788:369;;;6975:44;6788:369;3563:3596;6975:44;;:::i;:::-;3563:3596;;7030:121;;6788:369;:::o;1876:205:99:-;-1:-1:-1;3563:3596:89;;;2016:9:99;3563:3596:89;;;;;-1:-1:-1;;;;;3563:3596:89;2016:56:99;;1876:205;;2016:56;:::i;:::-;3563:3596:89;1876:205:99;:::o;3563:3596:89:-;;;;;;;;;;;;;;;;;-1:-1:-1;;3563:3596:89;;;;;;;:::o;:::-;;:::i;:::-;;;;;;;;;;;;;;;:::o;6172:610::-;6466:55;6172:610;;;;6370:51;3563:3596;6370:51;;;;:::i;:::-;837:15:63;6500:20:89;819:34:63;837:15;819:34;:::i;6466:55:89:-;3563:3596;;6536:30;;;:64;;;6172:610;6532:244;;6172:610;;:::o;6532:244::-;3563:3596;;;;;;6623:142;3563:3596;;;;;;;:::i;:::-;;;6651:100;;;3563:3596;;;;;6623:142;;;6651:100;6623:142;;;3563:3596;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;3563:3596:89;;;;;;:::i;6536:64::-;3563:3596;;;6570:30;;6536:64;;3563:3596;;;;;;;:::i;:::-;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;;;;3563:3596:89;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;;;;:::o;:::-;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;3317:13:99;3563:3596:89;-1:-1:-1;;;3563:3596:89;;;;;;;;;;3317:13:99;3563:3596:89;;:::i;:::-;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;3563:3596:89;-1:-1:-1;;;;;3563:3596:89;;;;;;;;;;;;;;;;3317:13:99;;3563:3596:89;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;3563:3596:89;;;;;;-1:-1:-1;;;3563:3596:89;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;5208:958::-;;;;;5643:105;3563:3596;5435:51;;;;;;:::i;:::-;837:15:63;5643:105:89;5531:55;5565:20;819:34:63;837:15;819:34;:::i;5565:20:89:-;5531:55;;;:::i;:::-;3563:3596;;-1:-1:-1;;;5643:105:89;;-1:-1:-1;;;;;3563:3596:89;;;5643:105;;;3563:3596;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5643:105;;3563:3596;5660:18;-1:-1:-1;;;;;3563:3596:89;5643:105;;;;;;;;;;;5208:958;3563:3596;;;5763:30;;;:64;;;5208:958;5763:98;;;;5208:958;5759:401;;5208:958;;;:::o;5759:401::-;5884:265;3563:3596;;;;5884:265;3563:3596;;;;:::i;:::-;;;;5912:223;;;3563:3596;;5912:223;;3563:3596;;;5884:265;;;5912:223;5884:265;;;:::i;5763:98::-;3563:3596;;;5831:30;;5763:98;;:64;3563:3596;;;5797:30;;5763:64;;5643:105;;;;;;;;;;;;;;:::i;:::-;;;;;3563:3596;;;;;;;;;;:::o;:::-;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::o;:::-;;3149:1:91;3563:3596:89;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;-1:-1:-1;3563:3596:89;;;;:::o;:::-;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;:::i;4209:434::-;;;-1:-1:-1;4307:12:89;3563:3596;;;;;4435:78;;;;;;;;;;;;;3563:3596;;;;;;;4435:78;;;;;:::i;:::-;3563:3596;;716:88:87;;3563:3596:89;716:88:87;;;;;;;;;783:4;4435:78:89;716:88:87;;3563:3596:89;;;;;;;;;;;:::i;:::-;716:88:87;3563:3596:89;716:88:87;3563:3596:89;;716:88:87;;;;;;;;:::i;:::-;698:107;;;;;857:45;698:107;;:::i;:::-;3563:3596:89;;;;857:45:87;;;;;;:::i;:::-;916:8;;912:175;;3563:3596:89;;;4361:204;3563:3596;;4361:204;;;;;;:::i;:::-;4576:61;;;;4209:434;;;:::o;4576:61::-;4609:17;3563:3596;;;;4609:17;3563:3596;;4609:17;;;;;3563:3596;;;;;;;;;;;;4609:17;;;;;;;;;:::i;912:175:87:-;3563:3596:89;;;;944:22:87;;;940:36;;990:87;;2505:267:97;-1:-1:-1;3563:3596:89;;;2692:16:97;3563:3596:89;;;;;;;;-1:-1:-1;;;;;3563:3596:89;;;;;;;;;2692:73:97;;2505:267;;2692:73;:::i;3563:3596:89:-;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;;;;3563:3596:89;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;;;;3563:3596:89;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::o;:::-;;;;;;;;-1:-1:-1;3563:3596:89;;-1:-1:-1;3563:3596:89;;;-1:-1:-1;3563:3596:89;:::o;10580:184:91:-;10689:20;;;:::i;:::-;-1:-1:-1;;;;;3563:3596:89;;10726:7:91;3563:3596:89;;10736:12:91;:17;:12;;:17;:::i;:::-;3563:3596:89;;;;;;10580:184:91;:::o;10726:31::-;;;10689:11;10580:184;:::o;3563:3596:89:-;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;3563:3596:89;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;:::o;1818:604:91:-;;3563:3596:89;;1946:17:91;1942:83;;3563:3596:89;2049:27:91;3563:3596:89;2049:27:91;3563:3596:89;;2049:27:91;;;;;;:::i;:::-;2120:14;;;;;:::i;:::-;3563:3596:89;;;;;;;;;;;;;;;;2148:22:91;;;2144:77;;2235:21;-1:-1:-1;2235:84:91;;;;1818:604;2231:139;;;;1425:34;;;;:::i;2231:139::-;-1:-1:-1;;2049:27:91;2342:17;3563:3596:89;-1:-1:-1;;;;;3563:3596:89;;:::o;2235:84:91:-;3563:3596:89;;;2269:16:91;3563:3596:89;;2269:16:91;:::i;:::-;3563:3596:89;;;2261:24:91;:57;;;;;2235:84;;;;;;;2261:57;2289:29;2298:8;;;2289:18;2298:8;2289:23;2298:8;;:::i;:::-;2289:18;;:::i;:::-;3563:3596:89;;;;;2289:29:91;;2261:57;;;;2144:77;-1:-1:-1;;;;2049:27:91;2193:17;;;;3563:3596:89;-1:-1:-1;;;;;3563:3596:89;;-1:-1:-1;3563:3596:89;:::o;1942:83:91:-;1425:34;;;;:::i;3563:3596:89:-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;3563:3596:89;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;6491:564:97:-;6614:34;6491:564;6614:34;;;;:::i;:::-;3563:3596:89;;-1:-1:-1;;;6664:41:97;;-1:-1:-1;;;;;3563:3596:89;;;6664:41:97;;;3563:3596:89;;;;;6664:41:97;;;3563:3596:89;;;6674:13:97;3563:3596:89;;6664:41:97;;;;;;;-1:-1:-1;6664:41:97;;;6491:564;6663:42;;6659:90;;2540:111:29;6850:27:97;6664:41;2540:111:29;;;:::i;:::-;-1:-1:-1;3563:3596:89;;-1:-1:-1;;;;;;3563:3596:89;-1:-1:-1;;;;;3563:3596:89;;;;;6850:27:97;;:::i;:::-;3563:3596:89;;;;;;;;;;6892:23:97;;;;;;;;;-1:-1:-1;6892:23:97;;;6491:564;3563:3596:89;;;6892:37:97;:64;;;6491:564;6888:112;;3563:3596:89;7010:38:97;;3563:3596:89;;-1:-1:-1;3563:3596:89;;-1:-1:-1;;;;3563:3596:89;;;;;;-1:-1:-1;;;3563:3596:89;;;;;;;;6888:112:97;3563:3596:89;;-1:-1:-1;;;6979:10:97;;6664:41;;6979:10;6892:64;-1:-1:-1;3563:3596:89;;;;6892:64:97;;:23;;;;;;-1:-1:-1;6892:23:97;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;6659:90;3563:3596:89;;-1:-1:-1;;;6728:10:97;;6664:41;;6728:10;6664:41;;;;;;;;;;;;;;:::i;:::-;;;;3326:384:29;-1:-1:-1;;;;;;;;;;;1847:1:29;3563:3596:89;;3526:20:29;3522:88;;1847:1;3563:3596:89;;3326:384:29:o;3522:88::-;3563:3596:89;;-1:-1:-1;;;3569:30:29;;;;;4451:257:97;3563:3596:89;;-1:-1:-1;;;4546:86:97;;467:2:93;3563:3596:89;;;;4546:86:97;;;3563:3596:89;-1:-1:-1;;;;;4546:86:97;3563:3596:89;;;4572:26:97;3563:3596:89;;4546:86:97;;;;;;;-1:-1:-1;4546:86:97;;;4451:257;4636:10;;3563:3596:89;;4546:100:97;4542:160;;4451:257::o;4542:160::-;3563:3596:89;;-1:-1:-1;;;4669:22:97;;4546:86;;4669:22;4546:86;;;;;;;;;;;;;;;:::i;:::-;;;;;2557:104:58;;2641:5;;;;;;:13;2557:104;:::o;2641:13::-;;;2557:104;:::o;3563:3596:89:-;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::o;2666:855:91:-;;3563:3596:89;;2880:15:91;2838:11;2905:18;2938:7;2944:1;2938:7;;2934:241;;2666:855;3199:60;;;;;:::i;:::-;3274:8;;;3270:62;;3563:3596:89;3430:7:91;;;;:::i;:::-;13267:109;2838:11;13267:109;;2838:11;13267:109;;3563:3596:89;:::i;:::-;;3498:15:91;3505:7;3563:3596:89;13267:109:91;3563:3596:89;;;;;;;;3479:17:91;;3563:3596:89;-1:-1:-1;;;;;3563:3596:89;;;;3505:7:91;;:::i;:::-;3563:3596:89;;;;3498:15:91;3436:1;;3448:66;;2666:855::o;3270:62::-;3298:23;;2838:11;3298:23;2838:11;3298:23;2838:11;3298:23;2838:11;3298:23;:::o;2934:241::-;2981:14;;;;;:::i;:::-;3563:3596:89;;;;;;;3199:60:91;13267:109;;2838:11;13267:109;3563:3596:89;13267:109:91;;;2838:11;13267:109;;3563:3596:89;;;;;3013:55:91;3009:156;3563:3596:89;;;3088:10:91;3009:156;2934:241;;3009:156;3143:7;;;;;;:::i;:::-;3009:156;2934:241;;5905:168;;6006:20;;;:::i;:::-;3563:3596:89;;;;;;;-1:-1:-1;;3563:3596:89;;;;;;:::i;:::-;;;;;;;5905:168:91:o;3563:3596:89:-;;;;;;;;;;;;14291:213:59;3563:3596:89;14369:24:59;;;;14365:103;;3563:3596:89;14291:213:59;:::o;14365:103::-;3563:3596:89;;;;14416:41:59;;;;;;14447:2;14416:41;;;3563:3596:89;;;;;14416:41:59;3563:3596:89;;;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;3563:3596:89;;;;;;;;:::i;7558:604:91:-;;3563:3596:89;;7686:17:91;7682:83;;3563:3596:89;7789:27:91;3563:3596:89;7789:27:91;3563:3596:89;;7789:27:91;;;;;;:::i;:::-;7860:14;;;;;:::i;:::-;3563:3596:89;;;;;;;;;;;;;;;;7888:22:91;;;7884:77;;7975:21;-1:-1:-1;7975:84:91;;;;7558:604;7971:139;;;;8127:28;;;;:::i;7971:139::-;8082:17;;7789:27;8082:17;3563:3596:89;8075:24:91;:::o;7975:84::-;3563:3596:89;;;8009:16:91;3563:3596:89;;8009:16:91;:::i;:::-;3563:3596:89;;;8001:24:91;:57;;;;;7975:84;;;;;;;8001:57;8029:29;8038:8;;;8029:18;8038:8;8029:23;8038:8;;:::i;:::-;8029:18;;:::i;:29::-;;8001:57;;;;7884:77;7933:17;;;;;7789:27;7933:17;3563:3596:89;7926:24:91;:::o;7682:83::-;7726:28;;;;:::i;3563:3596:89:-;;;;;;;;;;;-1:-1:-1;;;;;3563:3596:89;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;3563:3596:89;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;3323:1122:97:-;;3563:3596:89;;:::i;:::-;;;;3608:16:97;3604:109;;3323:1122;837:15:63;;819:34;837:15;819:34;:::i;:::-;-1:-1:-1;3563:3596:89;;;;3778:27:97;;:13;;-1:-1:-1;;;;;3563:3596:89;3778:13:97;3563:3596:89;3778:27:97;3563:3596:89;;;;;;;3778:29:97;;;;;;;;;;;;;;;3740:67;3778:29;3759:48;3778:29;-1:-1:-1;3778:29:97;;;3759:48;;:::i;3740:67::-;3563:3596:89;;;3740:67:97;;;:107;;;;;3323:1122;3740:197;;;;3323:1122;3723:263;;;3563:3596:89;3778:29:97;3563:3596:89;;;;;;;;;;4025:25:97;;;;;;;;;4010:143;4025:25;;;-1:-1:-1;4025:25:97;;;3323:1122;4113:30;;;3563:3596:89;;;;;;;;;;;4010:143:97;;;;;3778:29;4010:143;;;:::i;:::-;;;-1:-1:-1;;;;;3563:3596:89;4010:143:97;;;;;;;4181:257;4010:143;-1:-1:-1;4010:143:97;;;3323:1122;3996:157;;4293:102;3996:157;;4233:162;3996:157;4207:231;3996:157;;2936:28;:47;:38;:28;;;3563:3596:89;;2936:16:97;3563:3596:89;;;;;;;2936:28:97;3563:3596:89;;;;;;;;;;;;;;;;2936:47:97;4351:43;;;4293:102;;:::i;:::-;4233:162;;:::i;:::-;4207:231;:::i;4181:257::-;3323:1122;:::o;4010:143::-;4233:162;4010:143;;;4207:231;4010:143;;;;4293:102;4010:143;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;;;;;4025:25;;;;;;;;;;;;;;:::i;:::-;;;;3723:263;3962:13;;;;;;-1:-1:-1;3962:13:97;-1:-1:-1;3962:13:97;:::o;3740:197::-;3886:41;;3867:70;3886:51;;:41;;;3563:3596:89;;3886:29:97;3563:3596:89;;;;;;;3886:51:97;3563:3596:89;;;;;3867:70:97;-1:-1:-1;3740:197:97;;;:107;837:15:63;;3811:36:97;819:34:63;837:15;819:34;:::i;3811:36:97:-;;;;3740:107;;;3778:29;;;;;;;;;;;;;;;:::i;3604:109::-;3662:40;;;;;;;;;;;;:::i;:::-;3604:109;;;;4714:335;;;;3563:3596:89;-1:-1:-1;3563:3596:89;4876:29:97;3563:3596:89;;;;4876:51:97;3563:3596:89;;-1:-1:-1;3563:3596:89;;;;;;;;;;;;;;;;;4876:51:97;3563:3596:89;;;;;-1:-1:-1;4872:171:97;;4714:335;;;:::o;4872:171::-;4962:70;3563:3596:89;4962:51:97;3563:3596:89;-1:-1:-1;3563:3596:89;4876:29:97;3563:3596:89;;;-1:-1:-1;3563:3596:89;;;;;;;;;;;;;;;;;4962:51:97;3563:3596:89;;;;;;;;;;;;5055:221:97;;;3563:3596:89;-1:-1:-1;3563:3596:89;5160:16:97;3563:3596:89;;2936:47:97;:38;5160;3563:3596:89;;-1:-1:-1;3563:3596:89;;;;;;;;;;;;;;;;;5160:38:97;837:15:63;819:34;837:15;819:34;:::i;:::-;3563:3596:89;-1:-1:-1;3563:3596:89;5160:16:97;3563:3596:89;;;-1:-1:-1;3563:3596:89;;;;;;;;;;;;;;;;;2936:47:97;3563:3596:89;;;;;;;;6360:12:91;;;3563:3596:89;;;6360:24:91;6356:75;;5055:221:97;6474:30:91;;;:::i;:::-;3563:3596:89;;;;;6578:12:91;;;;:::i;:::-;;6604:24;;;5055:221:97;-1:-1:-1;6600:188:91;;;-1:-1:-1;;;;3563:3596:89;;;;;;;6644:29:91;:21;;;;:::i;:::-;:29;3563:3596:89;;;;;;;;;;;;;;;;;;;;;6600:188:91;6753:24;;8167:38:61;;-1:-1:-1;;;;;3563:3596:89;;;;;8167:38:61;:::i;:::-;6753:24:91;;;:::i;6604:::-;3563:3596:89;;;;;;6614:14:91;;-1:-1:-1;6604:24:91;;;6356:75;6400:20;;;:::i;:::-;6356:75;;3563:3596:89;;;;;;;;-1:-1:-1;;;;;3563:3596:89;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;5282:431:97:-;;;;5487:25;;:23;:13;3563:3596:89;5494:5:97;3563:3596:89;;;;;;;;;5487:23:97;3563:3596:89;;-1:-1:-1;;;5487:25:97;;3563:3596:89;;;;;5487:25:97;;;;;;;5631:65;5487:25;5631:65;5487:25;5494:5;5487:25;;;5282:431;-1:-1:-1;;;;;;3563:3596:89;;;;:::i;:::-;-1:-1:-1;;;;;5677:4:97;3563:3596:89;;;5677:4:97;5487:25;5642:53;;3563:3596:89;;;5631:65:97;;;5487:25;5631:65;;;:::i;:::-;5472:234;;;;;5494:5;3563:3596:89;5472:234:97;3563:3596:89;;;;;;;;;;;;;;5472:234:97;;5487:25;5472:234;;;:::i;:::-;;;;;;;;;;;5282:431;:::o;5472:234::-;;;;;;:::i;:::-;;;:::i;5487:25::-;;;;;;;;;;;;;;:::i;:::-;;;;5719:137;3563:3596:89;5719:137:97;3563:3596:89;5802:47:97;5719:137;5809:5;3563:3596:89;;;;;;;;;;;;;;;;;;5802:47:97;;;;;3563:3596:89;;;;;;5802:47:97;;;;;;;;5719:137;:::o;5802:47::-;;;;;;;;;;;;;:::i;:::-;;5719:137::o;3563:3596:89:-;;;;;;;:::o;:::-;;;;;;;;;;;;5862:623:97;;;5988:12;3563:3596:89;;;;;;;5984:495:97;;5862:623;;;;;;:::o;5984:495::-;3563:3596:89;;-1:-1:-1;;;6033:22:97;;3563:3596:89;6033:22:97;;3563:3596:89;;6033:22:97;;3563:3596:89;;-1:-1:-1;;;;;3563:3596:89;6033:22:97;;;;;;;5988:12;6033:22;;;5984:495;-1:-1:-1;3563:3596:89;;-1:-1:-1;;;6033:22:97;6094:81;;;;;;;;3563:3596:89;;;;-1:-1:-1;;;;;3563:3596:89;;;;;;;;;;;;;;;;;;;;;;6094:81:97;3563:3596:89;;;;6094:81:97;;3563:3596:89;;6094:81:97;;;;;;:::i;:::-;3563:3596:89;6194:9:97;:55;6190:124;;5988:12;6328:141;;;;;;1271:7;6328:141;;5984:495;;;;;;;6190:124;3563:3596:89;;-1:-1:-1;;;6276:23:97;;6033:22;;6276:23;6033:22;6094:81;6033:22;;;6094:81;6033:22;;;;;;;;;;;:::i;:::-;;;;;10167:206:61;3563:3596:89;;10303:8:61;;;:63;;10262:17;10167:206;:::o;10303:63::-;3563:3596:89;;;;;;;;;;10262:17:61;13267:109:91;;10262:17:61;13267:109:91;;;3563:3596:89;;;10167:206:61;:::o;3563:3596:89:-;;;;;;;:::i;:::-;-1:-1:-1;3563:3596:89;;;;;;;:::o;5573:258:91:-;3563:3596:89;5573:258:91;11308:22:61;5573:258:91;3563:3596:89;;:::i;:::-;;;;:::i;:::-;;11308:22:61;:::i;:::-;3563:3596:89;;:::i;:::-;;;;;;5805:17:91;3563:3596:89;;;;;5805:17:91;;3563:3596:89;;;;;;;;:::i;:::-;;;5805:17:91;5759:65;;3563:3596:89;5573:258:91;:::o;6893:76:26:-;;;:::i;:::-;;;:::i;:::-;1805:1:29;-1:-1:-1;;;;;;;;;;;3563:3596:89;6893:76:26:o;3563:3596:89:-;;;;;;;:::i;:::-;-1:-1:-1;3563:3596:89;;:::o;:::-;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;:::o;8763:604:99:-;;8969:30;8763:604;3563:3596:89;;:::i;:::-;;;;8905:30:99;;;;;;;;;;;;;:::i;:::-;3563:3596:89;;-1:-1:-1;;;8969:30:99;;3563:3596:89;;;;;;;;-1:-1:-1;;;;;3563:3596:89;8969:30:99;;;;;;;;;;;8763:604;9013:19;;;3563:3596:89;;;;;;;;;;;;;;;9013:36:99;;9009:95;;3563:3596:89;9118:29:99;;9150:1;3563:3596:89;;9118:33:99;9114:102;;9226:34;3563:3596:89;9271:54:99;3563:3596:89;;;;;;;;;;;8969:30:99;3563:3596:89;;;8969:30:99;3563:3596:89;;9226:34:99;3563:3596:89;9271:54:99;3563:3596:89;;9271:54:99;9343:17;8763:604;:::o;9114:102::-;3563:3596:89;;-1:-1:-1;;;9174:31:99;;8969:30;;9174:31;9009:95;3563:3596:89;;-1:-1:-1;;;9072:21:99;;8969:30;;9072:21;8969:30;;;;;;;;;;;;;;;:::i;:::-;;;;;8587:1642:58;8658:6;;8654:45;;9401:7;10201:10;10142:26;10093;10044;9995;9946;9897;9848;3563:3596:89;10189:23:58;9401:7;8663:1;3563:3596:89;;;;10826:16:58;10822:99;;8587:1642;3563:3596:89;;;;10938:15:58;10934:96;;8587:1642;3563:3596:89;;;;11047:15:58;11043:96;;8587:1642;3563:3596:89;;;;11156:15:58;11152:96;;8587:1642;3563:3596:89;;;;11265:14:58;11261:93;;8587:1642;3563:3596:89;;;;11371:14:58;11367:93;;8587:1642;3563:3596:89;;;;11477:14:58;11473:93;;8587:1642;3563:3596:89;;;11579:64:58;;8587:1642;3563:3596:89;;;9858:10:58;;;;:::i;:::-;3563:3596:89;;;;;9848:26:58;9907:10;;;;:::i;9897:26::-;9956:10;;;;:::i;9946:26::-;10005:10;;;;:::i;9995:26::-;10054:10;;;;:::i;10044:26::-;10103:10;;;;:::i;10093:26::-;10152:10;;;;:::i;10142:26::-;10201:10;;;:::i;:::-;10189:23;;:::i;11579:64::-;3563:3596:89;;11579:64:58;;11473:93;3563:3596:89;11511:11:58;;3563:3596:89;;11473:93:58;;;;11367;3563:3596:89;11405:11:58;;3563:3596:89;;11367:93:58;;;;11261;3563:3596:89;11299:11:58;;3563:3596:89;;11261:93:58;;;;11152:96;3563:3596:89;11191:12:58;;3563:3596:89;;11152:96:58;;;;11043;3563:3596:89;11082:12:58;;3563:3596:89;;11043:96:58;;;;10934;3563:3596:89;10973:12:58;;3563:3596:89;;10934:96:58;;;;10822:99;10862:13;;;3563:3596:89;10822:99:58;;;;8654:45;8680:8;8663:1;8680:8;:::o;12497:447:91:-;;;12694:10;;;;;;12926:11;;;12497:447;:::o;12687:230::-;2900:5:58;;;;;;3563:3596:89;;2910:5:58;;;3563:3596:89;;;;;;;;;13267:109:91;-1:-1:-1;13267:109:91;3563:3596:89;13267:109:91;;;-1:-1:-1;13267:109:91;;3563:3596:89;;;;;-1:-1:-1;12771:136:91;3563:3596:89;;;12830:10:91;;12771:136;;12687:230;;;;12771:136;3563:3596:89;;;;;;;;;;;12771:136:91;;;10552:388:61;3563:3596:89;;10728:8:61;;;10752:20;;10690:17;10752:20;10690:17;10752:20;10690:17;10752:20;:::o;10724:210::-;3563:3596:89;;;;;;;;;;;13267:109:91;10690:17:61;13267:109:91;;10690:17:61;13267:109:91;;;3563:3596:89;:::i;:::-;;;;;;;13267:109:91;3563:3596:89;;;;;10911:11:61;;3563:3596:89;;10886:37:61;10870:1;10886:37;;;:::o;6999:207:91:-;;7117:34;6999:207;7117:34;;:::i;11486:272::-;;3563:3596:89;11308:22:61;11718:31:91;11486:272;3563:3596:89;;:::i;:::-;;;;:::i;:::-;;11308:22:61;;:::i;3563:3596:89:-;;11718:12:91;3563:3596:89;;;;;11731:17:91;3563:3596:89;;;;;11731:17:91;;3563:3596:89;;11718:12:91;;:31;:::i;:::-;3563:3596:89;;;;;;;;;:::i;:::-;;;;;;11731:17:91;11672:79;;3563:3596:89;11486:272:91;:::o;3563:3596:89:-;;;-1:-1:-1;;;3563:3596:89;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::o;:::-;;;;;-1:-1:-1;;;3563:3596:89;;;;;;;;;;;;;;;:::i;9441:606:61:-;;3563:3596:89;;9594:15:61;9559:17;9619:18;9652:7;9658:1;9652:7;;9648:234;;9441:606;9906:53;;;;;:::i;:::-;9977:8;;;:63;;9559:17;9441:606;:::o;9977:63::-;10025:7;;;:::i;:::-;13267:109:91;9559:17:61;13267:109:91;;9559:17:61;13267:109:91;;3563:3596:89;;;9441:606:61;:::o;9648:234::-;9695:14;;;;;:::i;:::-;3563:3596:89;;;;;;;9906:53:61;13267:109:91;;9559:17:61;13267:109:91;3563:3596:89;13267:109:91;;;9559:17:61;13267:109:91;;3563:3596:89;;;;;9727:48:61;9723:149;3563:3596:89;;;9795:10:61;9723:149;9648:234;;9723:149;9850:7;;;;;;:::i;:::-;9723:149;9648:234;;7084:141:26;3563:3596:89;-1:-1:-1;;;;;;;;;;;3563:3596:89;;;;7150:18:26;7146:73;;7084:141::o;7146:73::-;3563:3596:89;;-1:-1:-1;;;7191:17:26;;;;;3563:3596:89;;;-1:-1:-1;;;3563:3596:89;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;3563:3596:89;;;;;;;;;;;:::o;11513:870:61:-;3563:3596:89;;11513:870:61;;;3563:3596:89;11513:870:61;11672:7;;;;3563:3596:89;11775:28:61;11795:7;;;:::i;:::-;11775:28;13267:109:91;;;;;;13089:293;;11775:28:61;3563:3596:89;:::i;:::-;;;;;;;;;;;;;;;;11877:15:61;-1:-1:-1;11873:91:61;;3563:3596:89;;12233:11:61;3563:3596:89;;;12027:16:61;3563:3596:89;;;;;;;12027:16:61;;;;12083:7;12063:43;12083:7;;12063:28;12083:7;;:::i;:::-;12063:28;13267:109:91;;;;;;13089:293;;12063:28:61;3563:3596:89;;;;;;;;;;;;;;;;;12063:43:61;12233:11;3563:3596:89;-1:-1:-1;;;;;3563:3596:89;;;;12225:27:61;;:::o;12023:189::-;3563:3596:89;;;12145:52:61;3563:3596:89;12155:41:61;3563:3596:89;;:::i;:::-;;;;;;;;12155:41:61;-1:-1:-1;;;;;3563:3596:89;;12155:41:61;;;3563:3596:89;12145:52:61;:::i;:::-;12023:189;;11873:91;3563:3596:89;;-1:-1:-1;;;11919:30:61;;;;;11668:709;12283:52;3563:3596:89;;12293:41:61;3563:3596:89;;:::i;12293:41:61:-;-1:-1:-1;;;;;3563:3596:89;;12293:41:61;;;3563:3596:89;12145:52:61;:::i;12283:::-;11678:1;12349:17;;:::o","linkReferences":{},"immutableReferences":{"64520":[{"start":1147,"length":32}],"64523":[{"start":5510,"length":32},{"start":11354,"length":32}],"69080":[{"start":2918,"length":32}],"69710":[{"start":2054,"length":32},{"start":6420,"length":32},{"start":7433,"length":32}],"72304":[{"start":744,"length":32},{"start":8890,"length":32}],"72307":[{"start":1079,"length":32},{"start":9284,"length":32}],"73037":[{"start":3192,"length":32},{"start":5596,"length":32}]}},"methodIdentifiers":{"BASE_SLASHER_HINTS()":"457821b7","BURNER_GAS_LIMIT()":"d5c24e1a","BURNER_RESERVE()":"2964f8dc","FACTORY()":"2dd31000","NETWORK_MIDDLEWARE_SERVICE()":"2c9d45b3","NETWORK_REGISTRY()":"c0cd7c3e","TYPE()":"bb24fe8a","VAULT_FACTORY()":"103f2907","cumulativeSlash(bytes32,address)":"1a2be2c4","cumulativeSlashAt(bytes32,address,uint48,bytes)":"aa8e6489","executeSlash(uint256,bytes)":"b94c386e","executeSlashHints(address,bytes32,address,uint48)":"69f78920","initialize(bytes)":"439fab91","isBurnerHook()":"34d098ea","latestSlashedCaptureTimestamp(bytes32,address)":"267de1f3","requestSlash(bytes32,address,uint256,uint48,bytes)":"545ce389","requestSlashHints(address,address,bytes32,address,uint256,uint48)":"002a0875","resolver(bytes32,bytes)":"cd05b8a1","resolverAt(bytes32,uint48,bytes)":"31ce4dfe","resolverHint(address,bytes32,uint48)":"a4ef9b4f","resolverHintInternal(bytes32,uint48)":"8f82f931","resolverSetEpochsDelay()":"bc6eac5b","setResolver(uint96,address,bytes)":"9168f9d2","setResolverHints(address,bytes32,uint48)":"1dd5f600","slashRequests(uint256)":"9a896551","slashRequestsLength()":"8f42f9ab","slashableStake(bytes32,address,uint48,bytes)":"aab3595f","staticDelegateCall(address,bytes)":"9f86fd85","vault()":"fbfa77cf","vetoDuration()":"e054e08b","vetoSlash(uint256,bytes)":"f9268d18","vetoSlashHints(address,bytes32,uint48)":"5264679b"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"baseSlasherHints\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"AlreadySet\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CheckpointUnorderedInsertion\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ExternalCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientBurnerGas\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientSlash\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidCaptureTimestamp\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidResolverSetEpochsDelay\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidVetoDuration\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NoBurner\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NoResolver\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotNetwork\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotNetworkMiddleware\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotResolver\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotVault\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ReentrancyGuardReentrantCall\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"bits\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"SafeCastOverflowedUintDowncast\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SlashPeriodEnded\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SlashRequestCompleted\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SlashRequestNotExist\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"VetoPeriodEnded\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"VetoPeriodNotEnded\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"slashIndex\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"slashedAmount\",\"type\":\"uint256\"}],\"name\":\"ExecuteSlash\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"slashIndex\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"slashAmount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint48\",\"name\":\"captureTimestamp\",\"type\":\"uint48\"},{\"indexed\":false,\"internalType\":\"uint48\",\"name\":\"vetoDeadline\",\"type\":\"uint48\"}],\"name\":\"RequestSlash\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"resolver\",\"type\":\"address\"}],\"name\":\"SetResolver\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"slashIndex\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"resolver\",\"type\":\"address\"}],\"name\":\"VetoSlash\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"BASE_SLASHER_HINTS\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"BURNER_GAS_LIMIT\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"BURNER_RESERVE\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"FACTORY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"NETWORK_MIDDLEWARE_SERVICE\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"NETWORK_REGISTRY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"TYPE\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"VAULT_FACTORY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"cumulativeSlash\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hint\",\"type\":\"bytes\"}],\"name\":\"cumulativeSlashAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"slashIndex\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"hints\",\"type\":\"bytes\"}],\"name\":\"executeSlash\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"slashedAmount\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"slasher\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"captureTimestamp\",\"type\":\"uint48\"}],\"name\":\"executeSlashHints\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isBurnerHook\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"latestSlashedCaptureTimestamp\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"value\",\"type\":\"uint48\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint48\",\"name\":\"captureTimestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hints\",\"type\":\"bytes\"}],\"name\":\"requestSlash\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"slashIndex\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"slasher\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"msgSender\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint48\",\"name\":\"captureTimestamp\",\"type\":\"uint48\"}],\"name\":\"requestSlashHints\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"hint\",\"type\":\"bytes\"}],\"name\":\"resolver\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hint\",\"type\":\"bytes\"}],\"name\":\"resolverAt\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"slasher\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"}],\"name\":\"resolverHint\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"}],\"name\":\"resolverHintInternal\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"exists\",\"type\":\"bool\"},{\"internalType\":\"uint32\",\"name\":\"hint\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"resolverSetEpochsDelay\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint96\",\"name\":\"identifier\",\"type\":\"uint96\"},{\"internalType\":\"address\",\"name\":\"resolver_\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"hints\",\"type\":\"bytes\"}],\"name\":\"setResolver\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"slasher\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"}],\"name\":\"setResolverHints\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"slashRequests\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint48\",\"name\":\"captureTimestamp\",\"type\":\"uint48\"},{\"internalType\":\"uint48\",\"name\":\"vetoDeadline\",\"type\":\"uint48\"},{\"internalType\":\"bool\",\"name\":\"completed\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"slashRequestsLength\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"captureTimestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hints\",\"type\":\"bytes\"}],\"name\":\"slashableStake\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"staticDelegateCall\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"vault\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"vetoDuration\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"slashIndex\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"hints\",\"type\":\"bytes\"}],\"name\":\"vetoSlash\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"slasher\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"uint48\",\"name\":\"captureTimestamp\",\"type\":\"uint48\"}],\"name\":\"vetoSlashHints\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"CheckpointUnorderedInsertion()\":[{\"details\":\"A value was attempted to be inserted on a past checkpoint.\"}],\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"ReentrancyGuardReentrantCall()\":[{\"details\":\"Unauthorized reentrant call.\"}],\"SafeCastOverflowedUintDowncast(uint8,uint256)\":[{\"details\":\"Value doesn't fit in an uint of `bits` size.\"}]},\"events\":{\"ExecuteSlash(uint256,uint256)\":{\"params\":{\"slashIndex\":\"index of the slash request\",\"slashedAmount\":\"virtual amount of the collateral slashed\"}},\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"RequestSlash(uint256,bytes32,address,uint256,uint48,uint48)\":{\"params\":{\"captureTimestamp\":\"time point when the stake was captured\",\"operator\":\"operator that could be slashed (if the request is not vetoed)\",\"slashAmount\":\"maximum amount of the collateral to be slashed\",\"slashIndex\":\"index of the slash request\",\"subnetwork\":\"subnetwork that requested the slash\",\"vetoDeadline\":\"deadline for the resolver to veto the slash (exclusively)\"}},\"SetResolver(bytes32,address)\":{\"params\":{\"resolver\":\"address of the resolver\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"}},\"VetoSlash(uint256,address)\":{\"params\":{\"resolver\":\"address of the resolver that vetoed the slash\",\"slashIndex\":\"index of the slash request\"}}},\"kind\":\"dev\",\"methods\":{\"cumulativeSlash(bytes32,address)\":{\"params\":{\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"},\"returns\":{\"_0\":\"cumulative slash amount\"}},\"cumulativeSlashAt(bytes32,address,uint48,bytes)\":{\"params\":{\"hint\":\"hint for the checkpoint index\",\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\",\"timestamp\":\"time point to get the cumulative slash amount until (inclusively)\"},\"returns\":{\"_0\":\"cumulative slash amount until the given timestamp (inclusively)\"}},\"executeSlash(uint256,bytes)\":{\"details\":\"Only a network middleware can call this function.\",\"params\":{\"hints\":\"hints for checkpoints' indexes\",\"slashIndex\":\"index of the slash request\"},\"returns\":{\"slashedAmount\":\"virtual amount of the collateral slashed\"}},\"initialize(bytes)\":{\"params\":{\"data\":\"some data to use\"}},\"requestSlash(bytes32,address,uint256,uint48,bytes)\":{\"details\":\"Only a network middleware can call this function.\",\"params\":{\"amount\":\"maximum amount of the collateral to be slashed\",\"captureTimestamp\":\"time point when the stake was captured\",\"hints\":\"hints for checkpoints' indexes\",\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"},\"returns\":{\"slashIndex\":\"index of the slash request\"}},\"resolver(bytes32,bytes)\":{\"params\":{\"hint\":\"hint for the checkpoint index\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"},\"returns\":{\"_0\":\"address of the resolver\"}},\"resolverAt(bytes32,uint48,bytes)\":{\"params\":{\"hint\":\"hint for the checkpoint index\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\",\"timestamp\":\"timestamp to get the resolver at\"},\"returns\":{\"_0\":\"address of the resolver\"}},\"slashRequestsLength()\":{\"returns\":{\"_0\":\"total number of slash requests\"}},\"slashableStake(bytes32,address,uint48,bytes)\":{\"params\":{\"captureTimestamp\":\"time point to get the stake amount at\",\"hints\":\"hints for the checkpoints' indexes\",\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"},\"returns\":{\"amount\":\"slashable amount of the stake\"}},\"staticDelegateCall(address,bytes)\":{\"details\":\"It allows to use this contract's storage on-chain.\",\"params\":{\"data\":\"data to make a delegatecall with\",\"target\":\"address of the contract to make a delegatecall to\"}},\"vetoSlash(uint256,bytes)\":{\"details\":\"Only a resolver can call this function.\",\"params\":{\"hints\":\"hints for checkpoints' indexes\",\"slashIndex\":\"index of the slash request\"}}},\"version\":1},\"userdoc\":{\"events\":{\"ExecuteSlash(uint256,uint256)\":{\"notice\":\"Emitted when a slash request is executed.\"},\"RequestSlash(uint256,bytes32,address,uint256,uint48,uint48)\":{\"notice\":\"Emitted when a slash request is created.\"},\"SetResolver(bytes32,address)\":{\"notice\":\"Emitted when a resolver is set.\"},\"VetoSlash(uint256,address)\":{\"notice\":\"Emitted when a slash request is vetoed.\"}},\"kind\":\"user\",\"methods\":{\"BURNER_GAS_LIMIT()\":{\"notice\":\"Get a gas limit for the burner.\"},\"BURNER_RESERVE()\":{\"notice\":\"Get a reserve gas between the gas limit check and the burner's execution.\"},\"FACTORY()\":{\"notice\":\"Get the factory's address.\"},\"NETWORK_MIDDLEWARE_SERVICE()\":{\"notice\":\"Get the network middleware service's address.\"},\"NETWORK_REGISTRY()\":{\"notice\":\"Get the network registry's address.\"},\"TYPE()\":{\"notice\":\"Get the entity's type.\"},\"VAULT_FACTORY()\":{\"notice\":\"Get the vault factory's address.\"},\"cumulativeSlash(bytes32,address)\":{\"notice\":\"Get a cumulative slash amount for an operator on a subnetwork.\"},\"cumulativeSlashAt(bytes32,address,uint48,bytes)\":{\"notice\":\"Get a cumulative slash amount for an operator on a subnetwork until a given timestamp (inclusively) using a hint.\"},\"executeSlash(uint256,bytes)\":{\"notice\":\"Execute a slash with a given slash index using hints.\"},\"initialize(bytes)\":{\"notice\":\"Initialize this entity contract by using a given data.\"},\"isBurnerHook()\":{\"notice\":\"Get if the burner is needed to be called on a slashing.\"},\"latestSlashedCaptureTimestamp(bytes32,address)\":{\"notice\":\"Get the latest capture timestamp that was slashed on a subnetwork.\"},\"requestSlash(bytes32,address,uint256,uint48,bytes)\":{\"notice\":\"Request a slash using a subnetwork for a particular operator by a given amount using hints.\"},\"resolver(bytes32,bytes)\":{\"notice\":\"Get a resolver for a given subnetwork using a hint.\"},\"resolverAt(bytes32,uint48,bytes)\":{\"notice\":\"Get a resolver for a given subnetwork at a particular timestamp using a hint.\"},\"resolverSetEpochsDelay()\":{\"notice\":\"Get a delay for networks in epochs to update a resolver.\"},\"slashRequests(uint256)\":{\"notice\":\"Get a particular slash request.\"},\"slashRequestsLength()\":{\"notice\":\"Get a total number of slash requests.\"},\"slashableStake(bytes32,address,uint48,bytes)\":{\"notice\":\"Get a slashable amount of a stake got at a given capture timestamp using hints.\"},\"staticDelegateCall(address,bytes)\":{\"notice\":\"Make a delegatecall from this contract to a given target contract with a particular data (always reverts with a return data).\"},\"vault()\":{\"notice\":\"Get the vault's address.\"},\"vetoDuration()\":{\"notice\":\"Get a duration during which resolvers can veto slash requests.\"},\"vetoSlash(uint256,bytes)\":{\"notice\":\"Veto a slash with a given slash index using hints.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/contracts/hints/SlasherHints.sol\":\"VetoSlasherHints\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol\":{\"keccak256\":\"0x6662ec4e5cefca03eeadd073e9469df8d2944bb2ee8ec8f7622c2c46aab5f225\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4d8544c6f8daa4d1bc215c6a72fe0acdb748664a105b0e5efc19295667521d45\",\"dweb:/ipfs/QmdGWqdnXT8S3RgCR6aV8XHZrsybieMQLLnug1NtpSjEXN\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0xc163fcf9bb10138631a9ba5564df1fa25db9adff73bd9ee868a8ae1858fe093a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9706d43a0124053d9880f6e31a59f31bc0a6a3dc1acd66ce0a16e1111658c5f6\",\"dweb:/ipfs/QmUFmfowzkRwGtDu36cXV9SPTBHJ3n7dG9xQiK5B28jTf2\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609\",\"dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9\",\"dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardUpgradeable.sol\":{\"keccak256\":\"0xb44e086e941292cdc7f440de51478493894ef0b1aeccb0c4047445919f667f74\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://942dad22fbdc1669f025540ba63aa3ccfad5f8458fc5d4525b31ebf272e7af45\",\"dweb:/ipfs/Qmdo4X2M82aM3AMoW2kf2jhYkSCyC4T1pHNd6obdsDFnAB\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol\":{\"keccak256\":\"0xdaba3f7c42c55b2896353f32bd27d4d5f8bae741b3b05d4c53f67abc4dc47ce8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1fa2e61141c602510bcd2cd936ed9561922ac8772a9b9c9a9db091a74e354a45\",\"dweb:/ipfs/QmcHQDDoEBwJmwUbzoVkytvJsBx3KVHYFFnDkvRGWh9Wmh\"]},\"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0xb6b36edd6a2999fd243ff226d6cbf84bd71af2432bbd0dfe19392996a1d9cb41\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1fd2f35495652e57e3f99bc6c510bc5f7dd398a176ea2e72d8ed730aebc6ca26\",\"dweb:/ipfs/QmTQV6X4gkikTib49cho5iDX3JvSQbdsoEChoDwrk3CbbH\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC1271.sol\":{\"keccak256\":\"0x85a45f3f10014a0f8be41157a32b6a5f905753ea64a4b64e29fc12b7deeecf39\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c3c74009ce36136b36c77c23935b8e4a7b4f253be2da2be4fb4a916b1ce43743\",\"dweb:/ipfs/QmcH36v3iN7SJJuF73AunLR2LtNxhVJ1wm63ph4dPZ4pcL\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC5267.sol\":{\"keccak256\":\"0x92aa1df62dc3d33f1656d63bede0923e0df0b706ad4137c8b10b0a8fe549fd92\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c5c0f29195ad64cbe556da8e257dac8f05f78c53f90323c0d2accf8e6922d33a\",\"dweb:/ipfs/QmQ61TED8uaCZwcbh8KkgRSsCav7x7HbcGHwHts3U4DmUP\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c\",\"dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0x6008dabfe393240d73d7dd7688033f72740d570aa422254d29a7dce8568f3aff\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f5196ec75139918c6c7bb4251b36395e668f1fa6d206beba7e7520e74913940d\",\"dweb:/ipfs/QmSyqjksXxmm2mCG6qRd1yuwLykypkSVBbnBnGqJRcuJMi\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x37bb49513c49c87c4642a891b13b63571bc87013dde806617aa1efb54605f386\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b3036b3a83b7c48f96641f2a9002b9f2dcb6a5958dd670894ada21ae8229b3d0\",\"dweb:/ipfs/QmUNfSBdoVtjhETaUJCYcaC7pTMgbhht926tJ2uXJbiVd3\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0xaf28a975a78550e45f65e559a3ad6a5ad43b9b8a37366999abd1b7084eb70721\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b7bd24e224f67f65bfadf85dc2929fa965456bb2415478bd0125471b5ce35245\",\"dweb:/ipfs/QmRaydGr8BTHs1kvaZfsNU69pKzUAGFrvABn1KiRSbE51y\"]},\"lib/openzeppelin-contracts/contracts/utils/ShortStrings.sol\":{\"keccak256\":\"0x18a7171df639a934592915a520ecb97c5bbc9675a1105607aac8a94e72bf62c6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7478e1f13da69a2867ccd883001d836b75620362e743f196376d63ed0c422a1c\",\"dweb:/ipfs/QmWywcQ9TNfwtoqAxbn25d8C5VrV12PrPS9UjtGe6pL2BA\"]},\"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0x32ba59b4b7299237c8ba56319110989d7978a039faf754793064e967e5894418\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1ae50c8b562427df610cc4540c9bf104acca7ef8e2dcae567ae7e52272281e9c\",\"dweb:/ipfs/QmTHiadFCSJUPpRjNegc5SahmeU8bAoY8i9Aq6tVscbcKR\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0x55f102ea785d8399c0e58d1108e2d289506dde18abc6db1b7f68c1f9f9bc5792\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e52e0a7765c943ef14e5bcf11e46e6139fa044be564881378349236bf2e3453\",\"dweb:/ipfs/QmZEeeXoFPW47amyP35gfzomF9DixqqTEPwzBakv6cZw6i\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0xeed0a08b0b091f528356cbc7245891a4c748682d4f6a18055e8e6ca77d12a6cf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba80ba06c8e6be852847e4c5f4492cef801feb6558ae09ed705ff2e04ea8b13c\",\"dweb:/ipfs/QmXRJDv3xHLVQCVXg1ZvR35QS9sij5y9NDWYzMfUfAdTHF\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/EIP712.sol\":{\"keccak256\":\"0x999f705a027ed6dc2d4e0df2cc4a509852c6bfd11de1c8161bf88832d0503fd0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0798def67258d9a3cc20b2b4da7ebf351a5cefe0abfdd665d2d81f8e32f89b21\",\"dweb:/ipfs/QmPEvJosnPfzHNjKvCv2D3891mA2Ww8eUwkqrxBjuYdHCt\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol\":{\"keccak256\":\"0xba333517a3add42cd35fe877656fc3dfcc9de53baa4f3aabbd6d12a92e4ea435\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2ceacff44c0fdc81e48e0e0b1db87a2076d3c1fb497341de077bf1da9f6b406c\",\"dweb:/ipfs/QmRUo1muMRAewxrKQ7TkXUtknyRoR57AyEkoPpiuZQ8FzX\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/SignatureChecker.sol\":{\"keccak256\":\"0x6b11eb41a228cca35d4b662b4df69fcd75192851365102690f57b2ac01e83fe6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ab006a2983ed350d2af21ddcdd835dcae3b8340086cc4d088460da5abd041f69\",\"dweb:/ipfs/QmbEacDhkJZiGrgzLjB4pNtE8Z1uudjDw1DvcDUTVQFsLG\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875\",\"dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0xe19a4d5f31d2861e7344e8e535e2feafb913d806d3e2b5fe7782741a2a7094fe\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4aed79c0fa6f0546ed02f2f683e8f77f0fd2ed7eb34d8bbf3d373c9a6d95b13c\",\"dweb:/ipfs/QmWqVz6UAVqmnWU5pqYPt1o6iDEZyPaBraAA3rKfTTSfYj\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x5f7e4076e175393767754387c962926577f1660dd9b810187b9002407656be72\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7d533a1c97cd43a57cd9c465f7ee8dd0e39ae93a8fb8ff8e5303a356b081cdcc\",\"dweb:/ipfs/QmVBEei6aTnvYNZp2CHYVNKyZS4q1KkjANfY39WVXZXVoT\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/Checkpoints.sol\":{\"keccak256\":\"0xbdc5e074d7dd6678f67e92b1a51a20226801a407b0e1af3da367c5d1ff4519ad\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a36cca6b22fff3db16fc789ff6c60eea71d4b156065d4d0c83a0bc5e91a77a8b\",\"dweb:/ipfs/QmYN3exd5AemxjBrN8XMB1p5LbbE16uC3sjbYjwi8AjcGR\"]},\"lib/openzeppelin-contracts/contracts/utils/types/Time.sol\":{\"keccak256\":\"0xc7755af115020049e4140f224f9ee88d7e1799ffb0646f37bf0df24bf6213f58\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7f09bf94d5274334ec021f61a04659db303f31e60460e14b709c9bf187740111\",\"dweb:/ipfs/QmNvgomZYUwFAt4cZbPWAiTeSZQreGehY9BK5xyVJsUttb\"]},\"src/contracts/common/Entity.sol\":{\"keccak256\":\"0x3d61a932995b8443381f3950542d388223a2c26dd5d29a3274dea3baa7388bd7\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://7cdf5f03ca72fd263fd32ff59c8d88ddca911ae83896a287d10772c1bbe9b138\",\"dweb:/ipfs/QmbP84r5BWT1Rn9AYTntWSf3xUMTTCohTZJFhbBhDXFoHa\"]},\"src/contracts/common/MigratableEntity.sol\":{\"keccak256\":\"0x2d736f4dacd5d7e7697503bc426c78b8250fe1694ca157965ec178da6807de58\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://f1237acf96b4b9f9b69156e068eddd726a6e15bd8e87a18dc999cd4ba4da069c\",\"dweb:/ipfs/QmS6M8fiFFSeuJ4ZKKq1z8W7w4ybeHQSy5TLASGoc1LVic\"]},\"src/contracts/common/StaticDelegateCallable.sol\":{\"keccak256\":\"0x350029aa8955eacaffffaeb58babc5c98e80ebc5c5db388ed17ee6465f4a9d90\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://eb392a8ee9050e0af606897df63e3404e3829e8b688b580663892f9664195764\",\"dweb:/ipfs/QmaXC8jqV8UrrAFkzXTEv2fJF56sy33HhLxAzaRZmUxuXD\"]},\"src/contracts/delegator/BaseDelegator.sol\":{\"keccak256\":\"0x7c54d491fdd4415b764a9c8defa068e56d4c0c8c9419be0053a1d377669290e8\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://9238bfbad0f6eeb0dc7727724de14380f1980b395902269703d5e2ef07e52e10\",\"dweb:/ipfs/QmPJn1V4HNXcEghYvogGuSTF24dSQUPosR5qtsXcmNqRm3\"]},\"src/contracts/delegator/FullRestakeDelegator.sol\":{\"keccak256\":\"0x0a81c4f8e72914563a9cb771e93acf889c71ea36b7bec040e4eb562b199d5af1\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://6fc66b6ba02da77046a0bbbd1dd407a62c08f52e04486c9cbd2cb1cca3da555f\",\"dweb:/ipfs/QmZQivK1ZnMxfRQQ5aLpV9co5u55wQVNev5Rg1hzAqxhkE\"]},\"src/contracts/delegator/NetworkRestakeDelegator.sol\":{\"keccak256\":\"0xd3a8e6522f9c6fdcc2da837c9023afd6bdff2bce45a35590320c475519e3636d\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://58b17a87f6554f08376f9ea7fedf486a4aa75801bf0ad8b23ff5a46959b6b7a3\",\"dweb:/ipfs/QmSTmNh67tYt8CmjVZb57r8N3qX5yeYdMApKPJm3qvQgQw\"]},\"src/contracts/delegator/OperatorNetworkSpecificDelegator.sol\":{\"keccak256\":\"0x031a10722b9ec49048f0952710401131290adb87e71caf294e864e7ac3b98a16\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://72428febc875134b2f29205e6f294634a1c22a7d5c78d6a9cb2f8196f107c9b5\",\"dweb:/ipfs/QmTPwXR6h5oytckmkLrHdKeEMdphJxceDhYUR4zvQeWAwY\"]},\"src/contracts/delegator/OperatorSpecificDelegator.sol\":{\"keccak256\":\"0x630ce62fa30b9f3349ab7a8cf8dbf041319febc6dd757be2f94d3d25944ed328\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://c2ac59d47ce57d2a6819ae9833e1a618a371eccff93eb5ab367b201b01f42bfa\",\"dweb:/ipfs/QmdBpGMBivpNPv2WbH8vnCUy5xkVeaxQvGgqi33vKCz1kA\"]},\"src/contracts/hints/DelegatorHints.sol\":{\"keccak256\":\"0x44aa0c396311a54afbc7c73e8dadeed41e3165a4fd13f712b27d63d50fc3376d\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://2f255214f3531fc707d88be0d56a7a0aed4180439316d099d760d9118aa83093\",\"dweb:/ipfs/QmZD1w5p1ukJSXumUAjvxwGmkPhn7vsr21Y2atLGEZR2oi\"]},\"src/contracts/hints/Hints.sol\":{\"keccak256\":\"0x8b565df1ae35993c097a9e642002782a8f451f6fd01809cad6bcd345bdf1b99c\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://99a19adb01e350a92f534095b3078229df1f2f83077992d75d58d8684be45971\",\"dweb:/ipfs/QmbmwcuswVbzvwHQFTtrJG86oV98GnfxqYTb8cV8u1acox\"]},\"src/contracts/hints/OptInServiceHints.sol\":{\"keccak256\":\"0x95d9407900d27b9f4a1233b772aeed809c07b2dc5b31cfc9fa77ca26514c49e5\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://a13a8877e312d7e6b8b85bde3668c5d84ff5ecc83f762cd573f2b7104c64eb42\",\"dweb:/ipfs/QmYV2J55acuGzCNnS3juABuUHY5U1xc8g8o9jwEyFFdeG5\"]},\"src/contracts/hints/SlasherHints.sol\":{\"keccak256\":\"0xd77c5f3bbb0265af8ecd947df88f6f9684e136d80052b5292f5b29aaa3566a3f\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://484a26504bf6706202ec82a9a4cfa7d196bbc552b5b78ced25bf7130c2842595\",\"dweb:/ipfs/QmaQqmkoZoUWEam4R94vmajzH3gKqFqpZQwFbrHDsN1peV\"]},\"src/contracts/hints/VaultHints.sol\":{\"keccak256\":\"0xccb505b7159b769cc114d67b87c2de6b106557f667fc8f3780114baad5c3c442\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://6d0c80a908fc16e96a8b5605a0bd53f9e89ad0ef0a738fbbae80ba4d3160749b\",\"dweb:/ipfs/QmXo5UtWoR8YmunqcbBU8rQMm1nvmvjNPoXcVrDhh4pEwR\"]},\"src/contracts/libraries/Checkpoints.sol\":{\"keccak256\":\"0xba90097c8bfe0a975499428b5f8ac5569483c7d92ccc28c12d70de416aae040c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://12f5d93ca94cd06d3147db68993165a58e17903ed53682560de61f3085ad4609\",\"dweb:/ipfs/QmePiuAqvXprMLmFZkGZeGjvGPAvsEDHfCDv7BoQhXu9xE\"]},\"src/contracts/libraries/ERC4626Math.sol\":{\"keccak256\":\"0x8441160513c1cbeb1c3b9ee077bcc7e7ce20006b52a77c8dd39ff0ef89699939\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://943f8cc3e26ddf649f465f40c909819f5c864717c4baa339e9e403b9374a4653\",\"dweb:/ipfs/QmXPxi1sUDsrGprZdUgCzoPEosaZMv9ZhygWQ1vAi1phAB\"]},\"src/contracts/libraries/Subnetwork.sol\":{\"keccak256\":\"0xf5ef5506fd66082b3c2e7f3df37529f5a8efad32ac62e7c8914bd63219190bfe\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba031a54ee0d0e9a270c2b9e18437f5668cfeb659cfd5fe0677459d7fcac2a56\",\"dweb:/ipfs/QmReP3H7qQ78tAfgLnJKsNEQNCQfF1X1Get38Ffd4kzq32\"]},\"src/contracts/service/OptInService.sol\":{\"keccak256\":\"0x4e0932077f2686b7990e10d59deb2535334c0d09e52ef6e57c6ab09eca21c4b1\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://7c00d311032ed4a1743aca7475f3c86ce15cdfc2218108efc3731c03d34a5278\",\"dweb:/ipfs/QmUGGfVwVhaHr5kS4177yKKYiLYzi5qZpkEmvYxBZqazxf\"]},\"src/contracts/slasher/BaseSlasher.sol\":{\"keccak256\":\"0x190e5dce196a061bdad42468c52e9f5b0eb7810cd7d0c19f04d6a2e94984f1b6\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://07ca08d0cd43c2fe5d54a5577f6bdd522ced410f5d3a52e764deaa7ba26b5f06\",\"dweb:/ipfs/QmZe3PiMKBQKWcwodaLupragdqxPjgS4v1qMC7RXau8hDF\"]},\"src/contracts/slasher/Slasher.sol\":{\"keccak256\":\"0xeee0cb25fad58d496fdcc641d852d11bae06e6ceed5230ae21150964175c494f\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://34aa27d21246a1bcee0b6a2afa8d9d613441156362430392f75d176511d58c61\",\"dweb:/ipfs/Qmf53Y3zdGfH4PU2zpSGeHZ8mMLzLXCtmkQrG5mnVJECQ3\"]},\"src/contracts/slasher/VetoSlasher.sol\":{\"keccak256\":\"0xeccc8128de5e1ad499c067feac1c526638fbbac1a18b96726fc7507969fd5897\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://cdfcf281338423625acbccdf8810115b258ef7cfe4aa3c10b8911ead1aa85429\",\"dweb:/ipfs/QmZFsDvZXpkFkx4PHcDXAVPN3ZCAahbSVfYpSVrMBvbt4k\"]},\"src/contracts/vault/Vault.sol\":{\"keccak256\":\"0x2ceff6ed3298c4cad144c99fcc79b51cb9397d6ebef00285b915848b476f8c2e\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://11f2fb3581854f3ab6e82e8d4935d9eb510c903a13c3f022346c2956a58f5307\",\"dweb:/ipfs/QmdUnoXoyYoG9SGWyQZCFyLDRUUX3eXyXetkRvw6jxqqBz\"]},\"src/contracts/vault/VaultStorage.sol\":{\"keccak256\":\"0x57db25b127d77ea3472de53e3a4af3354399655b9268638b99ca5925fa364a56\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://aa763d9a6ec508ae3abfb8228b72b9fd9525279e5135d4962e79ff059feb1173\",\"dweb:/ipfs/QmcbDR6E9wyEpu6V2FkEC4hnWy47zXA9LSKJde6zSGd33Q\"]},\"src/interfaces/common/IEntity.sol\":{\"keccak256\":\"0x8ef4b63d6da63489778ccd5f8d13ebdd527dd4b62730b2c616df5af7474d2d21\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a8d69576a9219d85c50816a18ad53a4d53cfcb27ed38b8cccc808dc2734b71b\",\"dweb:/ipfs/QmYVN3P4Q4REvBWJ97TbAcaxm3uyB2anV6NSGa6ZtSwcEv\"]},\"src/interfaces/common/IMigratableEntity.sol\":{\"keccak256\":\"0x8f5f2809f3afbe8ebfbb365dd7b57b4dd3b6f9943a6187eaf648d45895b8e3c4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ffe640537d539e7a4fde70d30d3e4c57f4ba9c2c25c450cea713aae38e8fd5c\",\"dweb:/ipfs/QmSUTGzvdcn1R1KB7tLThMRtESsfPbeXDhhhKWGtntzBds\"]},\"src/interfaces/common/IRegistry.sol\":{\"keccak256\":\"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014\",\"dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK\"]},\"src/interfaces/common/IStaticDelegateCallable.sol\":{\"keccak256\":\"0xa335d4e81b9071b7de66ef92b43ff20671d86516eb1be46fef29a3483cd3f5d5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d464b9db863c14c05547d2b23352f2e9b7b784799cf09f6bbc4906a2a74e3516\",\"dweb:/ipfs/QmUVWzFvJz7eEbDQKiFTTzwi7TEbjcs3VmwdM4kuptAKvi\"]},\"src/interfaces/delegator/IBaseDelegator.sol\":{\"keccak256\":\"0x96bb312f032e17accce3f8f80936d99468029d6b37c9ca74acdb4b026a0148ee\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2a66dcb5b7d1a6ef6a363431ea98ebd78bc4fdd3d7a134d9b542dc66e7d025c2\",\"dweb:/ipfs/QmRhTPLd2ZAyRHmJUFUcWKs9b3if49QY17LYZuRqWmghw8\"]},\"src/interfaces/delegator/IDelegatorHook.sol\":{\"keccak256\":\"0xc51aa8d7d1f6c8043ee819b7aeb86da0e993912e1442098df897e299f01f9f46\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://adddf5cb2ba282aeb576b26efb28640f865a1721cc9b6eee8b3ee0457a2c9780\",\"dweb:/ipfs/QmNYgAmnLRwWZbhTuQhZs9rx4zcme1df5mEepkrniorSoW\"]},\"src/interfaces/delegator/IFullRestakeDelegator.sol\":{\"keccak256\":\"0xa3c8cb2e45d4d8ce90e95263bea40c01dc400f05ad65bc29597d878606be5e7d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://782cf5e201aa4cca037ebafd3807a68ff1cc721d5b8416a35244db0d0607369e\",\"dweb:/ipfs/QmQkJks6x7CKndeTPa9LxgTNygD5uEi7obhADhpq1Lsr9A\"]},\"src/interfaces/delegator/INetworkRestakeDelegator.sol\":{\"keccak256\":\"0xe7030fe30389a147fd710e3436ec346b4842695fd3e65a81b95375c9f1d633fc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://739c7e66d301778054f5c90bee45ec9438f68afba8a03eaaac52064c73b115ad\",\"dweb:/ipfs/QmfZ2ytKcTykAc76nxhg8ikUXV8NdBpetqb8W4YWPcox1Z\"]},\"src/interfaces/delegator/IOperatorNetworkSpecificDelegator.sol\":{\"keccak256\":\"0x74b95e64d29769202d45dd277bb830f623ff3d41ce77b80ce3ee4e318a5c71ec\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e512b903aae5c1b8a028c6e3f4f6223b5cb5d704503cfa6bd37b5346868f5c20\",\"dweb:/ipfs/QmZim9YExsPWtyxyeui993HTKAEmrg8MUcSkZ77Gp2JcuZ\"]},\"src/interfaces/delegator/IOperatorSpecificDelegator.sol\":{\"keccak256\":\"0x72075cab585dc17240cc3e32bc99b92f0d5627ddd988fed680e3e1a52d5a01e4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7448bc90699409ae61d85216b5efc2143a37f0f73354be2aea993bc54afca441\",\"dweb:/ipfs/QmXE4gAxM8pHosZK8mcTcj17puBx484meDCcmrDePskGHZ\"]},\"src/interfaces/service/INetworkMiddlewareService.sol\":{\"keccak256\":\"0x347afc7fcf1fbcdb96d66162070ef6c78aed27b3af2c1d5dfb4e511840631783\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2d90b8ceb495159e8e4e95d76447719dd166443f67dfabdd942846162071595c\",\"dweb:/ipfs/QmVVuiAWYx92T6vBvNMKZfTvraCf1fa16BsUKkdNs3hdHA\"]},\"src/interfaces/service/IOptInService.sol\":{\"keccak256\":\"0x76fb5460a6d87a5705433d4fbeff7253cd75b8bbd0c888b2088f16e86ace146a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://990322019b3d11465f7024bae77ccbf7e2fe5d6fa3c754584778f37d04fa1337\",\"dweb:/ipfs/QmaSNHzcqxTkUCG9a4nqVfLECHLdjdrwAnDi3yDC7tDL24\"]},\"src/interfaces/slasher/IBaseSlasher.sol\":{\"keccak256\":\"0x7c82528b445659c313ab77335c407b0b6efe5e79027187bb287f7bc74202b404\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0274c90aa5df1aa6bb470a6aab53992fb14fd7e5472c9430416505b29647d9cf\",\"dweb:/ipfs/QmckbmJLDetPemVzCnnGcKYWAZV2BRFXGDsjiaec8jkHxx\"]},\"src/interfaces/slasher/IBurner.sol\":{\"keccak256\":\"0xaf495dacc19ae0b3c787ba8021c5944927d70261536addd234d7dab146158c2b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9b3cc66251008be6ff9fc8b11ecc6831d5a9dca49a3fe9817fcd970253c1d447\",\"dweb:/ipfs/QmVxfb9ALGdF9W3SN2h41gQbUct6tawvu5bw4K89kFQ4HW\"]},\"src/interfaces/slasher/ISlasher.sol\":{\"keccak256\":\"0x34d226d67a3d5e16571f2fac91a8b9773551bcc41c88a96279669dd78d192625\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a6e8c1462ee4a1b0f745414be043c09012ea676613790aba004b06c85c980d1\",\"dweb:/ipfs/QmadjNEbHKRthtA1EeNy3Kg2sXpejH2KBeHm8QZtBPvXbJ\"]},\"src/interfaces/slasher/IVetoSlasher.sol\":{\"keccak256\":\"0xdf7edd04a4f36e9aec3a15241dcb6b6315b2e64927b12710c2c410d571fc55e9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c4be6ac339c2ebf230fed65363f036784224095d0cd0f3f2d01d64d6e0da9508\",\"dweb:/ipfs/QmRSMbpfaHExqrzUA8vYZMYZWh6eQW1KX9JKJSLdgronfg\"]},\"src/interfaces/vault/IVault.sol\":{\"keccak256\":\"0xffee01d383cd4e1a5530c614bf4360c1ef070c288abec9da1eb531b51bc07235\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://04f0046cac285d8ec44ebbb1f79dc94fab4495767190cad8364fbc1fafaadfb9\",\"dweb:/ipfs/QmUawAunwzXfCyShWfhKeThAgKtqe51hmrxvrXvM772M2R\"]},\"src/interfaces/vault/IVaultStorage.sol\":{\"keccak256\":\"0x592626f13754194f83047135de19229c49390bd59e34659b1bb38be71d973a22\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://06a6a9dfddd05e580b32bebe2cff4f63ba26a653180676d58225dd30d9c89d3e\",\"dweb:/ipfs/QmdgzBeY6Sxo8mGtyBxtv1tM1c2kU6J6zjeRd7vuXm4DU6\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.25+commit.b61c2a91"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"baseSlasherHints","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"AlreadySet"},{"inputs":[],"type":"error","name":"CheckpointUnorderedInsertion"},{"inputs":[],"type":"error","name":"ExternalCall"},{"inputs":[],"type":"error","name":"InsufficientBurnerGas"},{"inputs":[],"type":"error","name":"InsufficientSlash"},{"inputs":[],"type":"error","name":"InvalidCaptureTimestamp"},{"inputs":[],"type":"error","name":"InvalidInitialization"},{"inputs":[],"type":"error","name":"InvalidResolverSetEpochsDelay"},{"inputs":[],"type":"error","name":"InvalidVetoDuration"},{"inputs":[],"type":"error","name":"NoBurner"},{"inputs":[],"type":"error","name":"NoResolver"},{"inputs":[],"type":"error","name":"NotInitialized"},{"inputs":[],"type":"error","name":"NotInitializing"},{"inputs":[],"type":"error","name":"NotNetwork"},{"inputs":[],"type":"error","name":"NotNetworkMiddleware"},{"inputs":[],"type":"error","name":"NotResolver"},{"inputs":[],"type":"error","name":"NotVault"},{"inputs":[],"type":"error","name":"ReentrancyGuardReentrantCall"},{"inputs":[{"internalType":"uint8","name":"bits","type":"uint8"},{"internalType":"uint256","name":"value","type":"uint256"}],"type":"error","name":"SafeCastOverflowedUintDowncast"},{"inputs":[],"type":"error","name":"SlashPeriodEnded"},{"inputs":[],"type":"error","name":"SlashRequestCompleted"},{"inputs":[],"type":"error","name":"SlashRequestNotExist"},{"inputs":[],"type":"error","name":"VetoPeriodEnded"},{"inputs":[],"type":"error","name":"VetoPeriodNotEnded"},{"inputs":[{"internalType":"uint256","name":"slashIndex","type":"uint256","indexed":true},{"internalType":"uint256","name":"slashedAmount","type":"uint256","indexed":false}],"type":"event","name":"ExecuteSlash","anonymous":false},{"inputs":[{"internalType":"uint64","name":"version","type":"uint64","indexed":false}],"type":"event","name":"Initialized","anonymous":false},{"inputs":[{"internalType":"uint256","name":"slashIndex","type":"uint256","indexed":true},{"internalType":"bytes32","name":"subnetwork","type":"bytes32","indexed":true},{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"uint256","name":"slashAmount","type":"uint256","indexed":false},{"internalType":"uint48","name":"captureTimestamp","type":"uint48","indexed":false},{"internalType":"uint48","name":"vetoDeadline","type":"uint48","indexed":false}],"type":"event","name":"RequestSlash","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32","indexed":true},{"internalType":"address","name":"resolver","type":"address","indexed":false}],"type":"event","name":"SetResolver","anonymous":false},{"inputs":[{"internalType":"uint256","name":"slashIndex","type":"uint256","indexed":true},{"internalType":"address","name":"resolver","type":"address","indexed":true}],"type":"event","name":"VetoSlash","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"BASE_SLASHER_HINTS","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"BURNER_GAS_LIMIT","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"BURNER_RESERVE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"FACTORY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"NETWORK_MIDDLEWARE_SERVICE","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"NETWORK_REGISTRY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"TYPE","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"VAULT_FACTORY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"cumulativeSlash","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint48","name":"timestamp","type":"uint48"},{"internalType":"bytes","name":"hint","type":"bytes"}],"stateMutability":"view","type":"function","name":"cumulativeSlashAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"slashIndex","type":"uint256"},{"internalType":"bytes","name":"hints","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"executeSlash","outputs":[{"internalType":"uint256","name":"slashedAmount","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"slasher","type":"address"},{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint48","name":"captureTimestamp","type":"uint48"}],"stateMutability":"view","type":"function","name":"executeSlashHints","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[],"stateMutability":"view","type":"function","name":"isBurnerHook","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"latestSlashedCaptureTimestamp","outputs":[{"internalType":"uint48","name":"value","type":"uint48"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint48","name":"captureTimestamp","type":"uint48"},{"internalType":"bytes","name":"hints","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"requestSlash","outputs":[{"internalType":"uint256","name":"slashIndex","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"slasher","type":"address"},{"internalType":"address","name":"msgSender","type":"address"},{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint48","name":"captureTimestamp","type":"uint48"}],"stateMutability":"view","type":"function","name":"requestSlashHints","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"bytes","name":"hint","type":"bytes"}],"stateMutability":"view","type":"function","name":"resolver","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"uint48","name":"timestamp","type":"uint48"},{"internalType":"bytes","name":"hint","type":"bytes"}],"stateMutability":"view","type":"function","name":"resolverAt","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"slasher","type":"address"},{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"uint48","name":"timestamp","type":"uint48"}],"stateMutability":"view","type":"function","name":"resolverHint","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"uint48","name":"timestamp","type":"uint48"}],"stateMutability":"view","type":"function","name":"resolverHintInternal","outputs":[{"internalType":"bool","name":"exists","type":"bool"},{"internalType":"uint32","name":"hint","type":"uint32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"resolverSetEpochsDelay","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint96","name":"identifier","type":"uint96"},{"internalType":"address","name":"resolver_","type":"address"},{"internalType":"bytes","name":"hints","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"setResolver"},{"inputs":[{"internalType":"address","name":"slasher","type":"address"},{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"uint48","name":"timestamp","type":"uint48"}],"stateMutability":"view","type":"function","name":"setResolverHints","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function","name":"slashRequests","outputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint48","name":"captureTimestamp","type":"uint48"},{"internalType":"uint48","name":"vetoDeadline","type":"uint48"},{"internalType":"bool","name":"completed","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"slashRequestsLength","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint48","name":"captureTimestamp","type":"uint48"},{"internalType":"bytes","name":"hints","type":"bytes"}],"stateMutability":"view","type":"function","name":"slashableStake","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"staticDelegateCall"},{"inputs":[],"stateMutability":"view","type":"function","name":"vault","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"vetoDuration","outputs":[{"internalType":"uint48","name":"","type":"uint48"}]},{"inputs":[{"internalType":"uint256","name":"slashIndex","type":"uint256"},{"internalType":"bytes","name":"hints","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"vetoSlash"},{"inputs":[{"internalType":"address","name":"slasher","type":"address"},{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"uint48","name":"captureTimestamp","type":"uint48"}],"stateMutability":"view","type":"function","name":"vetoSlashHints","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]}],"devdoc":{"kind":"dev","methods":{"cumulativeSlash(bytes32,address)":{"params":{"operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"},"returns":{"_0":"cumulative slash amount"}},"cumulativeSlashAt(bytes32,address,uint48,bytes)":{"params":{"hint":"hint for the checkpoint index","operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)","timestamp":"time point to get the cumulative slash amount until (inclusively)"},"returns":{"_0":"cumulative slash amount until the given timestamp (inclusively)"}},"executeSlash(uint256,bytes)":{"details":"Only a network middleware can call this function.","params":{"hints":"hints for checkpoints' indexes","slashIndex":"index of the slash request"},"returns":{"slashedAmount":"virtual amount of the collateral slashed"}},"initialize(bytes)":{"params":{"data":"some data to use"}},"requestSlash(bytes32,address,uint256,uint48,bytes)":{"details":"Only a network middleware can call this function.","params":{"amount":"maximum amount of the collateral to be slashed","captureTimestamp":"time point when the stake was captured","hints":"hints for checkpoints' indexes","operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"},"returns":{"slashIndex":"index of the slash request"}},"resolver(bytes32,bytes)":{"params":{"hint":"hint for the checkpoint index","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"},"returns":{"_0":"address of the resolver"}},"resolverAt(bytes32,uint48,bytes)":{"params":{"hint":"hint for the checkpoint index","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)","timestamp":"timestamp to get the resolver at"},"returns":{"_0":"address of the resolver"}},"slashRequestsLength()":{"returns":{"_0":"total number of slash requests"}},"slashableStake(bytes32,address,uint48,bytes)":{"params":{"captureTimestamp":"time point to get the stake amount at","hints":"hints for the checkpoints' indexes","operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"},"returns":{"amount":"slashable amount of the stake"}},"staticDelegateCall(address,bytes)":{"details":"It allows to use this contract's storage on-chain.","params":{"data":"data to make a delegatecall with","target":"address of the contract to make a delegatecall to"}},"vetoSlash(uint256,bytes)":{"details":"Only a resolver can call this function.","params":{"hints":"hints for checkpoints' indexes","slashIndex":"index of the slash request"}}},"version":1},"userdoc":{"kind":"user","methods":{"BURNER_GAS_LIMIT()":{"notice":"Get a gas limit for the burner."},"BURNER_RESERVE()":{"notice":"Get a reserve gas between the gas limit check and the burner's execution."},"FACTORY()":{"notice":"Get the factory's address."},"NETWORK_MIDDLEWARE_SERVICE()":{"notice":"Get the network middleware service's address."},"NETWORK_REGISTRY()":{"notice":"Get the network registry's address."},"TYPE()":{"notice":"Get the entity's type."},"VAULT_FACTORY()":{"notice":"Get the vault factory's address."},"cumulativeSlash(bytes32,address)":{"notice":"Get a cumulative slash amount for an operator on a subnetwork."},"cumulativeSlashAt(bytes32,address,uint48,bytes)":{"notice":"Get a cumulative slash amount for an operator on a subnetwork until a given timestamp (inclusively) using a hint."},"executeSlash(uint256,bytes)":{"notice":"Execute a slash with a given slash index using hints."},"initialize(bytes)":{"notice":"Initialize this entity contract by using a given data."},"isBurnerHook()":{"notice":"Get if the burner is needed to be called on a slashing."},"latestSlashedCaptureTimestamp(bytes32,address)":{"notice":"Get the latest capture timestamp that was slashed on a subnetwork."},"requestSlash(bytes32,address,uint256,uint48,bytes)":{"notice":"Request a slash using a subnetwork for a particular operator by a given amount using hints."},"resolver(bytes32,bytes)":{"notice":"Get a resolver for a given subnetwork using a hint."},"resolverAt(bytes32,uint48,bytes)":{"notice":"Get a resolver for a given subnetwork at a particular timestamp using a hint."},"resolverSetEpochsDelay()":{"notice":"Get a delay for networks in epochs to update a resolver."},"slashRequests(uint256)":{"notice":"Get a particular slash request."},"slashRequestsLength()":{"notice":"Get a total number of slash requests."},"slashableStake(bytes32,address,uint48,bytes)":{"notice":"Get a slashable amount of a stake got at a given capture timestamp using hints."},"staticDelegateCall(address,bytes)":{"notice":"Make a delegatecall from this contract to a given target contract with a particular data (always reverts with a return data)."},"vault()":{"notice":"Get the vault's address."},"vetoDuration()":{"notice":"Get a duration during which resolvers can veto slash requests."},"vetoSlash(uint256,bytes)":{"notice":"Veto a slash with a given slash index using hints."}},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/contracts/hints/SlasherHints.sol":"VetoSlasherHints"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol":{"keccak256":"0x6662ec4e5cefca03eeadd073e9469df8d2944bb2ee8ec8f7622c2c46aab5f225","urls":["bzz-raw://4d8544c6f8daa4d1bc215c6a72fe0acdb748664a105b0e5efc19295667521d45","dweb:/ipfs/QmdGWqdnXT8S3RgCR6aV8XHZrsybieMQLLnug1NtpSjEXN"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol":{"keccak256":"0xc163fcf9bb10138631a9ba5564df1fa25db9adff73bd9ee868a8ae1858fe093a","urls":["bzz-raw://9706d43a0124053d9880f6e31a59f31bc0a6a3dc1acd66ce0a16e1111658c5f6","dweb:/ipfs/QmUFmfowzkRwGtDu36cXV9SPTBHJ3n7dG9xQiK5B28jTf2"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b","urls":["bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609","dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol":{"keccak256":"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397","urls":["bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9","dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardUpgradeable.sol":{"keccak256":"0xb44e086e941292cdc7f440de51478493894ef0b1aeccb0c4047445919f667f74","urls":["bzz-raw://942dad22fbdc1669f025540ba63aa3ccfad5f8458fc5d4525b31ebf272e7af45","dweb:/ipfs/Qmdo4X2M82aM3AMoW2kf2jhYkSCyC4T1pHNd6obdsDFnAB"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol":{"keccak256":"0xdaba3f7c42c55b2896353f32bd27d4d5f8bae741b3b05d4c53f67abc4dc47ce8","urls":["bzz-raw://1fa2e61141c602510bcd2cd936ed9561922ac8772a9b9c9a9db091a74e354a45","dweb:/ipfs/QmcHQDDoEBwJmwUbzoVkytvJsBx3KVHYFFnDkvRGWh9Wmh"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol":{"keccak256":"0xb6b36edd6a2999fd243ff226d6cbf84bd71af2432bbd0dfe19392996a1d9cb41","urls":["bzz-raw://1fd2f35495652e57e3f99bc6c510bc5f7dd398a176ea2e72d8ed730aebc6ca26","dweb:/ipfs/QmTQV6X4gkikTib49cho5iDX3JvSQbdsoEChoDwrk3CbbH"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC1271.sol":{"keccak256":"0x85a45f3f10014a0f8be41157a32b6a5f905753ea64a4b64e29fc12b7deeecf39","urls":["bzz-raw://c3c74009ce36136b36c77c23935b8e4a7b4f253be2da2be4fb4a916b1ce43743","dweb:/ipfs/QmcH36v3iN7SJJuF73AunLR2LtNxhVJ1wm63ph4dPZ4pcL"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC5267.sol":{"keccak256":"0x92aa1df62dc3d33f1656d63bede0923e0df0b706ad4137c8b10b0a8fe549fd92","urls":["bzz-raw://c5c0f29195ad64cbe556da8e257dac8f05f78c53f90323c0d2accf8e6922d33a","dweb:/ipfs/QmQ61TED8uaCZwcbh8KkgRSsCav7x7HbcGHwHts3U4DmUP"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70","urls":["bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c","dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol":{"keccak256":"0x6008dabfe393240d73d7dd7688033f72740d570aa422254d29a7dce8568f3aff","urls":["bzz-raw://f5196ec75139918c6c7bb4251b36395e668f1fa6d206beba7e7520e74913940d","dweb:/ipfs/QmSyqjksXxmm2mCG6qRd1yuwLykypkSVBbnBnGqJRcuJMi"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0x37bb49513c49c87c4642a891b13b63571bc87013dde806617aa1efb54605f386","urls":["bzz-raw://b3036b3a83b7c48f96641f2a9002b9f2dcb6a5958dd670894ada21ae8229b3d0","dweb:/ipfs/QmUNfSBdoVtjhETaUJCYcaC7pTMgbhht926tJ2uXJbiVd3"],"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/ShortStrings.sol":{"keccak256":"0x18a7171df639a934592915a520ecb97c5bbc9675a1105607aac8a94e72bf62c6","urls":["bzz-raw://7478e1f13da69a2867ccd883001d836b75620362e743f196376d63ed0c422a1c","dweb:/ipfs/QmWywcQ9TNfwtoqAxbn25d8C5VrV12PrPS9UjtGe6pL2BA"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol":{"keccak256":"0x32ba59b4b7299237c8ba56319110989d7978a039faf754793064e967e5894418","urls":["bzz-raw://1ae50c8b562427df610cc4540c9bf104acca7ef8e2dcae567ae7e52272281e9c","dweb:/ipfs/QmTHiadFCSJUPpRjNegc5SahmeU8bAoY8i9Aq6tVscbcKR"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0x55f102ea785d8399c0e58d1108e2d289506dde18abc6db1b7f68c1f9f9bc5792","urls":["bzz-raw://6e52e0a7765c943ef14e5bcf11e46e6139fa044be564881378349236bf2e3453","dweb:/ipfs/QmZEeeXoFPW47amyP35gfzomF9DixqqTEPwzBakv6cZw6i"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol":{"keccak256":"0xeed0a08b0b091f528356cbc7245891a4c748682d4f6a18055e8e6ca77d12a6cf","urls":["bzz-raw://ba80ba06c8e6be852847e4c5f4492cef801feb6558ae09ed705ff2e04ea8b13c","dweb:/ipfs/QmXRJDv3xHLVQCVXg1ZvR35QS9sij5y9NDWYzMfUfAdTHF"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/EIP712.sol":{"keccak256":"0x999f705a027ed6dc2d4e0df2cc4a509852c6bfd11de1c8161bf88832d0503fd0","urls":["bzz-raw://0798def67258d9a3cc20b2b4da7ebf351a5cefe0abfdd665d2d81f8e32f89b21","dweb:/ipfs/QmPEvJosnPfzHNjKvCv2D3891mA2Ww8eUwkqrxBjuYdHCt"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol":{"keccak256":"0xba333517a3add42cd35fe877656fc3dfcc9de53baa4f3aabbd6d12a92e4ea435","urls":["bzz-raw://2ceacff44c0fdc81e48e0e0b1db87a2076d3c1fb497341de077bf1da9f6b406c","dweb:/ipfs/QmRUo1muMRAewxrKQ7TkXUtknyRoR57AyEkoPpiuZQ8FzX"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/SignatureChecker.sol":{"keccak256":"0x6b11eb41a228cca35d4b662b4df69fcd75192851365102690f57b2ac01e83fe6","urls":["bzz-raw://ab006a2983ed350d2af21ddcdd835dcae3b8340086cc4d088460da5abd041f69","dweb:/ipfs/QmbEacDhkJZiGrgzLjB4pNtE8Z1uudjDw1DvcDUTVQFsLG"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b","urls":["bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df","dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d","urls":["bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875","dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol":{"keccak256":"0xe19a4d5f31d2861e7344e8e535e2feafb913d806d3e2b5fe7782741a2a7094fe","urls":["bzz-raw://4aed79c0fa6f0546ed02f2f683e8f77f0fd2ed7eb34d8bbf3d373c9a6d95b13c","dweb:/ipfs/QmWqVz6UAVqmnWU5pqYPt1o6iDEZyPaBraAA3rKfTTSfYj"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0x5f7e4076e175393767754387c962926577f1660dd9b810187b9002407656be72","urls":["bzz-raw://7d533a1c97cd43a57cd9c465f7ee8dd0e39ae93a8fb8ff8e5303a356b081cdcc","dweb:/ipfs/QmVBEei6aTnvYNZp2CHYVNKyZS4q1KkjANfY39WVXZXVoT"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/Checkpoints.sol":{"keccak256":"0xbdc5e074d7dd6678f67e92b1a51a20226801a407b0e1af3da367c5d1ff4519ad","urls":["bzz-raw://a36cca6b22fff3db16fc789ff6c60eea71d4b156065d4d0c83a0bc5e91a77a8b","dweb:/ipfs/QmYN3exd5AemxjBrN8XMB1p5LbbE16uC3sjbYjwi8AjcGR"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/types/Time.sol":{"keccak256":"0xc7755af115020049e4140f224f9ee88d7e1799ffb0646f37bf0df24bf6213f58","urls":["bzz-raw://7f09bf94d5274334ec021f61a04659db303f31e60460e14b709c9bf187740111","dweb:/ipfs/QmNvgomZYUwFAt4cZbPWAiTeSZQreGehY9BK5xyVJsUttb"],"license":"MIT"},"src/contracts/common/Entity.sol":{"keccak256":"0x3d61a932995b8443381f3950542d388223a2c26dd5d29a3274dea3baa7388bd7","urls":["bzz-raw://7cdf5f03ca72fd263fd32ff59c8d88ddca911ae83896a287d10772c1bbe9b138","dweb:/ipfs/QmbP84r5BWT1Rn9AYTntWSf3xUMTTCohTZJFhbBhDXFoHa"],"license":"BUSL-1.1"},"src/contracts/common/MigratableEntity.sol":{"keccak256":"0x2d736f4dacd5d7e7697503bc426c78b8250fe1694ca157965ec178da6807de58","urls":["bzz-raw://f1237acf96b4b9f9b69156e068eddd726a6e15bd8e87a18dc999cd4ba4da069c","dweb:/ipfs/QmS6M8fiFFSeuJ4ZKKq1z8W7w4ybeHQSy5TLASGoc1LVic"],"license":"BUSL-1.1"},"src/contracts/common/StaticDelegateCallable.sol":{"keccak256":"0x350029aa8955eacaffffaeb58babc5c98e80ebc5c5db388ed17ee6465f4a9d90","urls":["bzz-raw://eb392a8ee9050e0af606897df63e3404e3829e8b688b580663892f9664195764","dweb:/ipfs/QmaXC8jqV8UrrAFkzXTEv2fJF56sy33HhLxAzaRZmUxuXD"],"license":"BUSL-1.1"},"src/contracts/delegator/BaseDelegator.sol":{"keccak256":"0x7c54d491fdd4415b764a9c8defa068e56d4c0c8c9419be0053a1d377669290e8","urls":["bzz-raw://9238bfbad0f6eeb0dc7727724de14380f1980b395902269703d5e2ef07e52e10","dweb:/ipfs/QmPJn1V4HNXcEghYvogGuSTF24dSQUPosR5qtsXcmNqRm3"],"license":"BUSL-1.1"},"src/contracts/delegator/FullRestakeDelegator.sol":{"keccak256":"0x0a81c4f8e72914563a9cb771e93acf889c71ea36b7bec040e4eb562b199d5af1","urls":["bzz-raw://6fc66b6ba02da77046a0bbbd1dd407a62c08f52e04486c9cbd2cb1cca3da555f","dweb:/ipfs/QmZQivK1ZnMxfRQQ5aLpV9co5u55wQVNev5Rg1hzAqxhkE"],"license":"BUSL-1.1"},"src/contracts/delegator/NetworkRestakeDelegator.sol":{"keccak256":"0xd3a8e6522f9c6fdcc2da837c9023afd6bdff2bce45a35590320c475519e3636d","urls":["bzz-raw://58b17a87f6554f08376f9ea7fedf486a4aa75801bf0ad8b23ff5a46959b6b7a3","dweb:/ipfs/QmSTmNh67tYt8CmjVZb57r8N3qX5yeYdMApKPJm3qvQgQw"],"license":"BUSL-1.1"},"src/contracts/delegator/OperatorNetworkSpecificDelegator.sol":{"keccak256":"0x031a10722b9ec49048f0952710401131290adb87e71caf294e864e7ac3b98a16","urls":["bzz-raw://72428febc875134b2f29205e6f294634a1c22a7d5c78d6a9cb2f8196f107c9b5","dweb:/ipfs/QmTPwXR6h5oytckmkLrHdKeEMdphJxceDhYUR4zvQeWAwY"],"license":"BUSL-1.1"},"src/contracts/delegator/OperatorSpecificDelegator.sol":{"keccak256":"0x630ce62fa30b9f3349ab7a8cf8dbf041319febc6dd757be2f94d3d25944ed328","urls":["bzz-raw://c2ac59d47ce57d2a6819ae9833e1a618a371eccff93eb5ab367b201b01f42bfa","dweb:/ipfs/QmdBpGMBivpNPv2WbH8vnCUy5xkVeaxQvGgqi33vKCz1kA"],"license":"BUSL-1.1"},"src/contracts/hints/DelegatorHints.sol":{"keccak256":"0x44aa0c396311a54afbc7c73e8dadeed41e3165a4fd13f712b27d63d50fc3376d","urls":["bzz-raw://2f255214f3531fc707d88be0d56a7a0aed4180439316d099d760d9118aa83093","dweb:/ipfs/QmZD1w5p1ukJSXumUAjvxwGmkPhn7vsr21Y2atLGEZR2oi"],"license":"BUSL-1.1"},"src/contracts/hints/Hints.sol":{"keccak256":"0x8b565df1ae35993c097a9e642002782a8f451f6fd01809cad6bcd345bdf1b99c","urls":["bzz-raw://99a19adb01e350a92f534095b3078229df1f2f83077992d75d58d8684be45971","dweb:/ipfs/QmbmwcuswVbzvwHQFTtrJG86oV98GnfxqYTb8cV8u1acox"],"license":"BUSL-1.1"},"src/contracts/hints/OptInServiceHints.sol":{"keccak256":"0x95d9407900d27b9f4a1233b772aeed809c07b2dc5b31cfc9fa77ca26514c49e5","urls":["bzz-raw://a13a8877e312d7e6b8b85bde3668c5d84ff5ecc83f762cd573f2b7104c64eb42","dweb:/ipfs/QmYV2J55acuGzCNnS3juABuUHY5U1xc8g8o9jwEyFFdeG5"],"license":"BUSL-1.1"},"src/contracts/hints/SlasherHints.sol":{"keccak256":"0xd77c5f3bbb0265af8ecd947df88f6f9684e136d80052b5292f5b29aaa3566a3f","urls":["bzz-raw://484a26504bf6706202ec82a9a4cfa7d196bbc552b5b78ced25bf7130c2842595","dweb:/ipfs/QmaQqmkoZoUWEam4R94vmajzH3gKqFqpZQwFbrHDsN1peV"],"license":"BUSL-1.1"},"src/contracts/hints/VaultHints.sol":{"keccak256":"0xccb505b7159b769cc114d67b87c2de6b106557f667fc8f3780114baad5c3c442","urls":["bzz-raw://6d0c80a908fc16e96a8b5605a0bd53f9e89ad0ef0a738fbbae80ba4d3160749b","dweb:/ipfs/QmXo5UtWoR8YmunqcbBU8rQMm1nvmvjNPoXcVrDhh4pEwR"],"license":"BUSL-1.1"},"src/contracts/libraries/Checkpoints.sol":{"keccak256":"0xba90097c8bfe0a975499428b5f8ac5569483c7d92ccc28c12d70de416aae040c","urls":["bzz-raw://12f5d93ca94cd06d3147db68993165a58e17903ed53682560de61f3085ad4609","dweb:/ipfs/QmePiuAqvXprMLmFZkGZeGjvGPAvsEDHfCDv7BoQhXu9xE"],"license":"MIT"},"src/contracts/libraries/ERC4626Math.sol":{"keccak256":"0x8441160513c1cbeb1c3b9ee077bcc7e7ce20006b52a77c8dd39ff0ef89699939","urls":["bzz-raw://943f8cc3e26ddf649f465f40c909819f5c864717c4baa339e9e403b9374a4653","dweb:/ipfs/QmXPxi1sUDsrGprZdUgCzoPEosaZMv9ZhygWQ1vAi1phAB"],"license":"MIT"},"src/contracts/libraries/Subnetwork.sol":{"keccak256":"0xf5ef5506fd66082b3c2e7f3df37529f5a8efad32ac62e7c8914bd63219190bfe","urls":["bzz-raw://ba031a54ee0d0e9a270c2b9e18437f5668cfeb659cfd5fe0677459d7fcac2a56","dweb:/ipfs/QmReP3H7qQ78tAfgLnJKsNEQNCQfF1X1Get38Ffd4kzq32"],"license":"MIT"},"src/contracts/service/OptInService.sol":{"keccak256":"0x4e0932077f2686b7990e10d59deb2535334c0d09e52ef6e57c6ab09eca21c4b1","urls":["bzz-raw://7c00d311032ed4a1743aca7475f3c86ce15cdfc2218108efc3731c03d34a5278","dweb:/ipfs/QmUGGfVwVhaHr5kS4177yKKYiLYzi5qZpkEmvYxBZqazxf"],"license":"BUSL-1.1"},"src/contracts/slasher/BaseSlasher.sol":{"keccak256":"0x190e5dce196a061bdad42468c52e9f5b0eb7810cd7d0c19f04d6a2e94984f1b6","urls":["bzz-raw://07ca08d0cd43c2fe5d54a5577f6bdd522ced410f5d3a52e764deaa7ba26b5f06","dweb:/ipfs/QmZe3PiMKBQKWcwodaLupragdqxPjgS4v1qMC7RXau8hDF"],"license":"BUSL-1.1"},"src/contracts/slasher/Slasher.sol":{"keccak256":"0xeee0cb25fad58d496fdcc641d852d11bae06e6ceed5230ae21150964175c494f","urls":["bzz-raw://34aa27d21246a1bcee0b6a2afa8d9d613441156362430392f75d176511d58c61","dweb:/ipfs/Qmf53Y3zdGfH4PU2zpSGeHZ8mMLzLXCtmkQrG5mnVJECQ3"],"license":"BUSL-1.1"},"src/contracts/slasher/VetoSlasher.sol":{"keccak256":"0xeccc8128de5e1ad499c067feac1c526638fbbac1a18b96726fc7507969fd5897","urls":["bzz-raw://cdfcf281338423625acbccdf8810115b258ef7cfe4aa3c10b8911ead1aa85429","dweb:/ipfs/QmZFsDvZXpkFkx4PHcDXAVPN3ZCAahbSVfYpSVrMBvbt4k"],"license":"BUSL-1.1"},"src/contracts/vault/Vault.sol":{"keccak256":"0x2ceff6ed3298c4cad144c99fcc79b51cb9397d6ebef00285b915848b476f8c2e","urls":["bzz-raw://11f2fb3581854f3ab6e82e8d4935d9eb510c903a13c3f022346c2956a58f5307","dweb:/ipfs/QmdUnoXoyYoG9SGWyQZCFyLDRUUX3eXyXetkRvw6jxqqBz"],"license":"BUSL-1.1"},"src/contracts/vault/VaultStorage.sol":{"keccak256":"0x57db25b127d77ea3472de53e3a4af3354399655b9268638b99ca5925fa364a56","urls":["bzz-raw://aa763d9a6ec508ae3abfb8228b72b9fd9525279e5135d4962e79ff059feb1173","dweb:/ipfs/QmcbDR6E9wyEpu6V2FkEC4hnWy47zXA9LSKJde6zSGd33Q"],"license":"BUSL-1.1"},"src/interfaces/common/IEntity.sol":{"keccak256":"0x8ef4b63d6da63489778ccd5f8d13ebdd527dd4b62730b2c616df5af7474d2d21","urls":["bzz-raw://5a8d69576a9219d85c50816a18ad53a4d53cfcb27ed38b8cccc808dc2734b71b","dweb:/ipfs/QmYVN3P4Q4REvBWJ97TbAcaxm3uyB2anV6NSGa6ZtSwcEv"],"license":"MIT"},"src/interfaces/common/IMigratableEntity.sol":{"keccak256":"0x8f5f2809f3afbe8ebfbb365dd7b57b4dd3b6f9943a6187eaf648d45895b8e3c4","urls":["bzz-raw://0ffe640537d539e7a4fde70d30d3e4c57f4ba9c2c25c450cea713aae38e8fd5c","dweb:/ipfs/QmSUTGzvdcn1R1KB7tLThMRtESsfPbeXDhhhKWGtntzBds"],"license":"MIT"},"src/interfaces/common/IRegistry.sol":{"keccak256":"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb","urls":["bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014","dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK"],"license":"MIT"},"src/interfaces/common/IStaticDelegateCallable.sol":{"keccak256":"0xa335d4e81b9071b7de66ef92b43ff20671d86516eb1be46fef29a3483cd3f5d5","urls":["bzz-raw://d464b9db863c14c05547d2b23352f2e9b7b784799cf09f6bbc4906a2a74e3516","dweb:/ipfs/QmUVWzFvJz7eEbDQKiFTTzwi7TEbjcs3VmwdM4kuptAKvi"],"license":"MIT"},"src/interfaces/delegator/IBaseDelegator.sol":{"keccak256":"0x96bb312f032e17accce3f8f80936d99468029d6b37c9ca74acdb4b026a0148ee","urls":["bzz-raw://2a66dcb5b7d1a6ef6a363431ea98ebd78bc4fdd3d7a134d9b542dc66e7d025c2","dweb:/ipfs/QmRhTPLd2ZAyRHmJUFUcWKs9b3if49QY17LYZuRqWmghw8"],"license":"MIT"},"src/interfaces/delegator/IDelegatorHook.sol":{"keccak256":"0xc51aa8d7d1f6c8043ee819b7aeb86da0e993912e1442098df897e299f01f9f46","urls":["bzz-raw://adddf5cb2ba282aeb576b26efb28640f865a1721cc9b6eee8b3ee0457a2c9780","dweb:/ipfs/QmNYgAmnLRwWZbhTuQhZs9rx4zcme1df5mEepkrniorSoW"],"license":"MIT"},"src/interfaces/delegator/IFullRestakeDelegator.sol":{"keccak256":"0xa3c8cb2e45d4d8ce90e95263bea40c01dc400f05ad65bc29597d878606be5e7d","urls":["bzz-raw://782cf5e201aa4cca037ebafd3807a68ff1cc721d5b8416a35244db0d0607369e","dweb:/ipfs/QmQkJks6x7CKndeTPa9LxgTNygD5uEi7obhADhpq1Lsr9A"],"license":"MIT"},"src/interfaces/delegator/INetworkRestakeDelegator.sol":{"keccak256":"0xe7030fe30389a147fd710e3436ec346b4842695fd3e65a81b95375c9f1d633fc","urls":["bzz-raw://739c7e66d301778054f5c90bee45ec9438f68afba8a03eaaac52064c73b115ad","dweb:/ipfs/QmfZ2ytKcTykAc76nxhg8ikUXV8NdBpetqb8W4YWPcox1Z"],"license":"MIT"},"src/interfaces/delegator/IOperatorNetworkSpecificDelegator.sol":{"keccak256":"0x74b95e64d29769202d45dd277bb830f623ff3d41ce77b80ce3ee4e318a5c71ec","urls":["bzz-raw://e512b903aae5c1b8a028c6e3f4f6223b5cb5d704503cfa6bd37b5346868f5c20","dweb:/ipfs/QmZim9YExsPWtyxyeui993HTKAEmrg8MUcSkZ77Gp2JcuZ"],"license":"MIT"},"src/interfaces/delegator/IOperatorSpecificDelegator.sol":{"keccak256":"0x72075cab585dc17240cc3e32bc99b92f0d5627ddd988fed680e3e1a52d5a01e4","urls":["bzz-raw://7448bc90699409ae61d85216b5efc2143a37f0f73354be2aea993bc54afca441","dweb:/ipfs/QmXE4gAxM8pHosZK8mcTcj17puBx484meDCcmrDePskGHZ"],"license":"MIT"},"src/interfaces/service/INetworkMiddlewareService.sol":{"keccak256":"0x347afc7fcf1fbcdb96d66162070ef6c78aed27b3af2c1d5dfb4e511840631783","urls":["bzz-raw://2d90b8ceb495159e8e4e95d76447719dd166443f67dfabdd942846162071595c","dweb:/ipfs/QmVVuiAWYx92T6vBvNMKZfTvraCf1fa16BsUKkdNs3hdHA"],"license":"MIT"},"src/interfaces/service/IOptInService.sol":{"keccak256":"0x76fb5460a6d87a5705433d4fbeff7253cd75b8bbd0c888b2088f16e86ace146a","urls":["bzz-raw://990322019b3d11465f7024bae77ccbf7e2fe5d6fa3c754584778f37d04fa1337","dweb:/ipfs/QmaSNHzcqxTkUCG9a4nqVfLECHLdjdrwAnDi3yDC7tDL24"],"license":"MIT"},"src/interfaces/slasher/IBaseSlasher.sol":{"keccak256":"0x7c82528b445659c313ab77335c407b0b6efe5e79027187bb287f7bc74202b404","urls":["bzz-raw://0274c90aa5df1aa6bb470a6aab53992fb14fd7e5472c9430416505b29647d9cf","dweb:/ipfs/QmckbmJLDetPemVzCnnGcKYWAZV2BRFXGDsjiaec8jkHxx"],"license":"MIT"},"src/interfaces/slasher/IBurner.sol":{"keccak256":"0xaf495dacc19ae0b3c787ba8021c5944927d70261536addd234d7dab146158c2b","urls":["bzz-raw://9b3cc66251008be6ff9fc8b11ecc6831d5a9dca49a3fe9817fcd970253c1d447","dweb:/ipfs/QmVxfb9ALGdF9W3SN2h41gQbUct6tawvu5bw4K89kFQ4HW"],"license":"MIT"},"src/interfaces/slasher/ISlasher.sol":{"keccak256":"0x34d226d67a3d5e16571f2fac91a8b9773551bcc41c88a96279669dd78d192625","urls":["bzz-raw://7a6e8c1462ee4a1b0f745414be043c09012ea676613790aba004b06c85c980d1","dweb:/ipfs/QmadjNEbHKRthtA1EeNy3Kg2sXpejH2KBeHm8QZtBPvXbJ"],"license":"MIT"},"src/interfaces/slasher/IVetoSlasher.sol":{"keccak256":"0xdf7edd04a4f36e9aec3a15241dcb6b6315b2e64927b12710c2c410d571fc55e9","urls":["bzz-raw://c4be6ac339c2ebf230fed65363f036784224095d0cd0f3f2d01d64d6e0da9508","dweb:/ipfs/QmRSMbpfaHExqrzUA8vYZMYZWh6eQW1KX9JKJSLdgronfg"],"license":"MIT"},"src/interfaces/vault/IVault.sol":{"keccak256":"0xffee01d383cd4e1a5530c614bf4360c1ef070c288abec9da1eb531b51bc07235","urls":["bzz-raw://04f0046cac285d8ec44ebbb1f79dc94fab4495767190cad8364fbc1fafaadfb9","dweb:/ipfs/QmUawAunwzXfCyShWfhKeThAgKtqe51hmrxvrXvM772M2R"],"license":"MIT"},"src/interfaces/vault/IVaultStorage.sol":{"keccak256":"0x592626f13754194f83047135de19229c49390bd59e34659b1bb38be71d973a22","urls":["bzz-raw://06a6a9dfddd05e580b32bebe2cff4f63ba26a653180676d58225dd30d9c89d3e","dweb:/ipfs/QmdgzBeY6Sxo8mGtyBxtv1tM1c2kU6J6zjeRd7vuXm4DU6"],"license":"MIT"}},"version":1},"id":89} \ No newline at end of file diff --git a/out/Vault.sol/Vault.json b/out/Vault.sol/Vault.json index d30f6587..ab24439f 100644 --- a/out/Vault.sol/Vault.json +++ b/out/Vault.sol/Vault.json @@ -1 +1 @@ -{"abi":[{"type":"constructor","inputs":[{"name":"delegatorFactory","type":"address","internalType":"address"},{"name":"slasherFactory","type":"address","internalType":"address"},{"name":"vaultFactory","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"DEFAULT_ADMIN_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"DELEGATOR_FACTORY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"DEPOSITOR_WHITELIST_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"DEPOSIT_LIMIT_SET_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"DEPOSIT_WHITELIST_SET_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"FACTORY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"IS_DEPOSIT_LIMIT_SET_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"SLASHER_FACTORY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"activeBalanceOf","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"activeBalanceOfAt","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"timestamp","type":"uint48","internalType":"uint48"},{"name":"hints","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"activeShares","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"activeSharesAt","inputs":[{"name":"timestamp","type":"uint48","internalType":"uint48"},{"name":"hint","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"activeSharesOf","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"activeSharesOfAt","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"timestamp","type":"uint48","internalType":"uint48"},{"name":"hint","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"activeStake","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"activeStakeAt","inputs":[{"name":"timestamp","type":"uint48","internalType":"uint48"},{"name":"hint","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"burner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"claim","inputs":[{"name":"recipient","type":"address","internalType":"address"},{"name":"epoch","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"claimBatch","inputs":[{"name":"recipient","type":"address","internalType":"address"},{"name":"epochs","type":"uint256[]","internalType":"uint256[]"}],"outputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"collateral","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"currentEpoch","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"currentEpochStart","inputs":[],"outputs":[{"name":"","type":"uint48","internalType":"uint48"}],"stateMutability":"view"},{"type":"function","name":"delegator","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"deposit","inputs":[{"name":"onBehalfOf","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"depositedAmount","type":"uint256","internalType":"uint256"},{"name":"mintedShares","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"depositLimit","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"depositWhitelist","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"epochAt","inputs":[{"name":"timestamp","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"epochDuration","inputs":[],"outputs":[{"name":"","type":"uint48","internalType":"uint48"}],"stateMutability":"view"},{"type":"function","name":"epochDurationInit","inputs":[],"outputs":[{"name":"","type":"uint48","internalType":"uint48"}],"stateMutability":"view"},{"type":"function","name":"getRoleAdmin","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"grantRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"hasRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"initialize","inputs":[{"name":"initialVersion","type":"uint64","internalType":"uint64"},{"name":"owner_","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"isDelegatorInitialized","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isDepositLimit","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isDepositorWhitelisted","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"value","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isInitialized","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isSlasherInitialized","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isWithdrawalsClaimed","inputs":[{"name":"epoch","type":"uint256","internalType":"uint256"},{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"value","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"migrate","inputs":[{"name":"newVersion","type":"uint64","internalType":"uint64"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"nextEpochStart","inputs":[],"outputs":[{"name":"","type":"uint48","internalType":"uint48"}],"stateMutability":"view"},{"type":"function","name":"onSlash","inputs":[{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"captureTimestamp","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"slashedAmount","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"previousEpochStart","inputs":[],"outputs":[{"name":"","type":"uint48","internalType":"uint48"}],"stateMutability":"view"},{"type":"function","name":"redeem","inputs":[{"name":"claimer","type":"address","internalType":"address"},{"name":"shares","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"withdrawnAssets","type":"uint256","internalType":"uint256"},{"name":"mintedShares","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"renounceRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"callerConfirmation","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"revokeRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setDelegator","inputs":[{"name":"delegator_","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setDepositLimit","inputs":[{"name":"limit","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setDepositWhitelist","inputs":[{"name":"status","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setDepositorWhitelistStatus","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"status","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setIsDepositLimit","inputs":[{"name":"status","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setSlasher","inputs":[{"name":"slasher_","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"slashableBalanceOf","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"slasher","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"staticDelegateCall","inputs":[{"name":"target","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"totalStake","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"version","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"withdraw","inputs":[{"name":"claimer","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"burnedShares","type":"uint256","internalType":"uint256"},{"name":"mintedShares","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"withdrawalShares","inputs":[{"name":"epoch","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"withdrawalSharesOf","inputs":[{"name":"epoch","type":"uint256","internalType":"uint256"},{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"withdrawals","inputs":[{"name":"epoch","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"withdrawalsOf","inputs":[{"name":"epoch","type":"uint256","internalType":"uint256"},{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"event","name":"Claim","inputs":[{"name":"claimer","type":"address","indexed":true,"internalType":"address"},{"name":"recipient","type":"address","indexed":true,"internalType":"address"},{"name":"epoch","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"ClaimBatch","inputs":[{"name":"claimer","type":"address","indexed":true,"internalType":"address"},{"name":"recipient","type":"address","indexed":true,"internalType":"address"},{"name":"epochs","type":"uint256[]","indexed":false,"internalType":"uint256[]"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Deposit","inputs":[{"name":"depositor","type":"address","indexed":true,"internalType":"address"},{"name":"onBehalfOf","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"shares","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"OnSlash","inputs":[{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"captureTimestamp","type":"uint48","indexed":false,"internalType":"uint48"},{"name":"slashedAmount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"RoleAdminChanged","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"previousAdminRole","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"newAdminRole","type":"bytes32","indexed":true,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"RoleGranted","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"sender","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"RoleRevoked","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"sender","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"SetDelegator","inputs":[{"name":"delegator","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"SetDepositLimit","inputs":[{"name":"limit","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"SetDepositWhitelist","inputs":[{"name":"status","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"SetDepositorWhitelistStatus","inputs":[{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"status","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"SetIsDepositLimit","inputs":[{"name":"status","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"SetSlasher","inputs":[{"name":"slasher","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Withdraw","inputs":[{"name":"withdrawer","type":"address","indexed":true,"internalType":"address"},{"name":"claimer","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"burnedShares","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"mintedShares","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"error","name":"AccessControlBadConfirmation","inputs":[]},{"type":"error","name":"AccessControlUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"neededRole","type":"bytes32","internalType":"bytes32"}]},{"type":"error","name":"AddressEmptyCode","inputs":[{"name":"target","type":"address","internalType":"address"}]},{"type":"error","name":"AddressInsufficientBalance","inputs":[{"name":"account","type":"address","internalType":"address"}]},{"type":"error","name":"AlreadyClaimed","inputs":[]},{"type":"error","name":"AlreadyInitialized","inputs":[]},{"type":"error","name":"AlreadySet","inputs":[]},{"type":"error","name":"CheckpointUnorderedInsertion","inputs":[]},{"type":"error","name":"DelegatorAlreadyInitialized","inputs":[]},{"type":"error","name":"DepositLimitReached","inputs":[]},{"type":"error","name":"FailedInnerCall","inputs":[]},{"type":"error","name":"InsufficientClaim","inputs":[]},{"type":"error","name":"InsufficientDeposit","inputs":[]},{"type":"error","name":"InsufficientRedemption","inputs":[]},{"type":"error","name":"InsufficientWithdrawal","inputs":[]},{"type":"error","name":"InvalidAccount","inputs":[]},{"type":"error","name":"InvalidCaptureEpoch","inputs":[]},{"type":"error","name":"InvalidClaimer","inputs":[]},{"type":"error","name":"InvalidCollateral","inputs":[]},{"type":"error","name":"InvalidDelegator","inputs":[]},{"type":"error","name":"InvalidEpoch","inputs":[]},{"type":"error","name":"InvalidEpochDuration","inputs":[]},{"type":"error","name":"InvalidInitialization","inputs":[]},{"type":"error","name":"InvalidLengthEpochs","inputs":[]},{"type":"error","name":"InvalidOnBehalfOf","inputs":[]},{"type":"error","name":"InvalidRecipient","inputs":[]},{"type":"error","name":"InvalidSlasher","inputs":[]},{"type":"error","name":"InvalidTimestamp","inputs":[]},{"type":"error","name":"MathOverflowedMulDiv","inputs":[]},{"type":"error","name":"MissingRoles","inputs":[]},{"type":"error","name":"NoPreviousEpoch","inputs":[]},{"type":"error","name":"NotDelegator","inputs":[]},{"type":"error","name":"NotFactory","inputs":[]},{"type":"error","name":"NotInitialized","inputs":[]},{"type":"error","name":"NotInitializing","inputs":[]},{"type":"error","name":"NotSlasher","inputs":[]},{"type":"error","name":"NotWhitelistedDepositor","inputs":[]},{"type":"error","name":"OwnableInvalidOwner","inputs":[{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"OwnableUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"}]},{"type":"error","name":"ReentrancyGuardReentrantCall","inputs":[]},{"type":"error","name":"SafeCastOverflowedUintDowncast","inputs":[{"name":"bits","type":"uint8","internalType":"uint8"},{"name":"value","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"SafeERC20FailedOperation","inputs":[{"name":"token","type":"address","internalType":"address"}]},{"type":"error","name":"SlasherAlreadyInitialized","inputs":[]},{"type":"error","name":"TooMuchRedeem","inputs":[]},{"type":"error","name":"TooMuchWithdraw","inputs":[]}],"bytecode":{"object":"0x60e03461013c57601f614b8b38819003918201601f1916830192916001600160401b03918285118486101761014057816060928592604097885283398101031261013c5761004c82610154565b916100648461005d60208401610154565b9201610154565b9260805260a0527ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a009081549060ff82861c1661012b5780808316036100e7575b50505060c05251614a22908161016982396080518181816111a001526116d5015260a05181818161183e0152611d04015260c05181818161077001526109a30152f35b6001600160401b0319909116811790915582519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a15f80806100a4565b845163f92ee8a960e01b8152600490fd5b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b51906001600160a01b038216820361013c5756fe60806040526004361015610011575f80fd5b5f3560e01c806301ffc9a7146104345780631415519b1461042f5780631b66c9e11461042a5780631e9a695014610425578063248a9ca31461042057806327810b6e1461041b578063281f5752146104165780632abe3048146104115780632d73c69c1461040c5780632dd31000146104075780632f2ff15d1461040257806336568abe146103fd578063392e53cd146103f85780634105a7dd146103f357806346361671146103ee57806347e7ef24146103e957806348d3b775146103e45780634ff0876a146103df57806350861adc146103da57806350f22068146103d55780635346e34f146103d057806354fd4d50146103cb57806357ec83cc146103c657806359f769a9146103c15780635cc07076146103bc57806361a8c8c4146103b75780636da3e06d146103b25780636ec1e3f8146103ad578063715018a6146103a85780637278e31c146103a357806373790ab31461039e5780637667180814610399578063794b15b7146103945780637953b33b1461038f5780637c04c80a1461038a578063810da75d1461038557806383cd9cc31461038057806387df07881461037b5780638b0e9f3f146103765780638da5cb5b1461037157806391d148541461036c5780639d66201b146103675780639f86fd8514610362578063a1b122021461035d578063a217fddf14610358578063a21a1df914610353578063a28614661461034e578063a3b5417214610349578063a5d0322314610344578063aabc24961461033f578063aad3ec961461033a578063afba70ad14610335578063b134427114610330578063bd49c35f1461032b578063bdc8144b14610326578063bfefcd7b14610321578063c31e8dd71461031c578063ce9b793014610317578063d547741f14610312578063d8dfeb451461030d578063db38871514610308578063ecf7085814610303578063efb559d6146102fe578063f2fde38b146102f9578063f3fef3a3146102f45763f5e7ee0f146102ef575f80fd5b6123a1565b6122fb565b6122ce565b61217f565b612162565b612128565b6120fd565b6120b1565b612089565b61201f565b612005565b611f27565b611f0d565b611ee5565b611ebb565b611dfa565b611c43565b611bfd565b611bb0565b611abd565b611a83565b611a69565b611a45565b61199b565b611961565b611903565b6118cf565b61186d565b611829565b611670565b611657565b6115f1565b6115ca565b61158a565b611570565b61152f565b61125b565b6111f4565b6111cf565b61118b565b611138565b61110e565b6110e7565b610faf565b610f7d565b610ee8565b610ecf565b610e72565b610e52565b610e31565b610b73565b610b4b565b610ab0565b610a6b565b610a20565b6109d2565b61098e565b61091a565b61072b565b61065d565b610635565b6105fc565b610513565b6104c8565b61048e565b3461048a57602036600319011261048a5760043563ffffffff60e01b811680910361048a57602090637965db0b60e01b8114908115610479575b506040519015158152f35b6301ffc9a760e01b1490505f61046e565b5f80fd5b3461048a575f36600319011261048a5760206040517fc6aaadd7371d5e8f9ed6849dd66a66573a3ba37167d03f4352c9ba5693678fac8152f35b3461048a575f36600319011261048a5760206040517f9c56d972d63cbb4195b3c1484691dfc220fa96a4c47e7b6613bd82a022029e068152f35b6001600160a01b0381160361048a57565b3461048a57604036600319011261048a5760043561053081610502565b6024359061053c612bf5565b6001600160a01b038116156105eb57335f908152600e6020526040902061056790613c8a565b613c8a565b82116105d957610587610578613b9d565b610580613c16565b9084613cd7565b9182156105c4578261059892612c24565b906105af60015f805160206149ad83398151915255565b604080519182526020820192909252f35b0390f35b60405160016245ddc760e11b03198152600490fd5b604051632418411f60e11b8152600490fd5b6040516208978560e71b8152600490fd5b3461048a57602036600319011261048a576004355f525f8051602061498d8339815191526020526020600160405f200154604051908152f35b3461048a575f36600319011261048a576001546040516001600160a01b039091168152602090f35b3461048a575f36600319011261048a5761067561291a565b80156106d65760015465ffffffffffff8160a01c16915f1981019081116106d1576106a39160d01c906123fa565b81018091116106d1576106b86105c091612d9e565b60405165ffffffffffff90911681529081906020820190565b6123cb565b604051639fa56a5b60e01b8152600490fd5b600435906001600160401b038216820361048a57565b9181601f8401121561048a578235916001600160401b03831161048a576020838186019501011161048a57565b3461048a57604036600319011261048a576107446106e8565b6001600160401b0360243581811161048a576107649036906004016106fe565b505061076e612bf5565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633036107ea575f805160206149cd833981519152549060ff8260401c169283156107da575b5050506107c8575f80fd5b60405163f92ee8a960e01b8152600490fd5b81169116101590505f80806107bd565b604051631966391b60e11b8152600490fd5b65ffffffffffff81160361048a57565b634e487b7160e01b5f52604160045260245ffd5b606081019081106001600160401b0382111761083b57604052565b61080c565b604081019081106001600160401b0382111761083b57604052565b90601f801991011681019081106001600160401b0382111761083b57604052565b6040519061016082018281106001600160401b0382111761083b57604052565b604051906108a982610840565b565b6001600160401b03811161083b57601f01601f191660200190565b9291926108d2826108ab565b916108e0604051938461085b565b82948184528183011161048a578281602093845f960137010152565b9080601f8301121561048a57816020610917933591016108c6565b90565b3461048a57606036600319011261048a5760043561093781610502565b60243590610944826107fc565b604435906001600160401b03821161048a5760209261096a6109869336906004016108fc565b6001600160a01b039092165f908152600e855260409020612f8b565b604051908152f35b3461048a575f36600319011261048a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461048a57604036600319011261048a57610a1e6024356004356109f582610502565b805f525f8051602061498d833981519152602052610a19600160405f200154613162565b613462565b005b3461048a57604036600319011261048a57602435610a3d81610502565b336001600160a01b03821603610a5957610a1e90600435613498565b60405163334bd91960e11b8152600490fd5b3461048a575f36600319011261048a5760ff60025460a01c1680610a97575b6020906040519015158152f35b5060035460a01c60ff16610a8a565b8015150361048a57565b3461048a57602036600319011261048a57600435610acd81610aa6565b610ad5612bf5565b610add613057565b5f54901515908160ff8216151514610b395760ff191660ff8216175f556040519081527f3e12b7b36c75ac9609a3f58609b331210428e1a85909132638955ba0301eec3390602090a160015f805160206149ad83398151915255005b60405163a741a04560e01b8152600490fd5b3461048a575f36600319011261048a57602065ffffffffffff60015460a01c16604051908152f35b3461048a5760408060031936011261048a576004803591610b9383610502565b610b9b612bf5565b6001600160a01b0391838316908115610e23575f5460ff811680610e0a575b610dfb5783516370a0823160e01b808252308483019081529096602093909160109190911c82169084908490819083010381845afa928315610dd3575f93610dd8575b50610c0f90602435903090339061352a565b5f5486519788523085890190815290979184918391908290819060200103918b60101c165afa908115610dd357610c4e935f92610da6575b50506123ed565b938415610d975760081c60ff1680610d82575b610d745750906105c091610d12610c76613b9d565b95610cbf610c82613c16565b610caa610c908a838b613cd7565b99610ca48a610c9e42612d9e565b9261241b565b9061367e565b5050610cb989610c9e42612d9e565b9061375e565b50506001600160a01b0381165f908152600e6020526040902090610d0c88610d07610562610cec42612d9e565b6001600160a01b039095165f908152600e6020526040902090565b61241b565b9161383a565b505081518481526020810186905233907fdcbc1c05240f31ff3ad067ef1ee35ce4997762752e3a095284754544f4c709d790604090a3610d5e60015f805160206149ad83398151915255565b5191825260208201929092529081906040820190565b8251632484557960e01b8152fd5b50610d8f84610d07613b9d565b815410610c61565b50825163070f6eed60e11b8152fd5b610dc59250803d10610dcc575b610dbd818361085b565b810190612449565b5f80610c47565b503d610db3565b612458565b610c0f919350610df490853d8711610dcc57610dbd818361085b565b9290610bfd565b5082516304f63b8560e01b8152fd5b50335f9081526005602052604090205460ff1615610bba565b8251630d534ce360e11b8152fd5b3461048a575f36600319011261048a57602060ff5f54166040519015158152f35b3461048a575f36600319011261048a57602060015460d01c604051908152f35b3461048a575f36600319011261048a57602060ff60025460a01c166040519015158152f35b90604060031983011261048a57600435610eb0816107fc565b91602435906001600160401b03821161048a57610917916004016108fc565b3461048a576020610986610ee236610e97565b90612e01565b3461048a57602036600319011261048a57600435610f0581610aa6565b610f0d612bf5565b610f156130b4565b5f54901515908160ff8260081c16151514610b395761ff001916600882901b61ff0016175f556040519081527ffa7a25a0b611d4ba3c0ea990e90dc23d484a5dd7a1be4733fef2946ba74530c690602090a1610a1e60015f805160206149ad83398151915255565b3461048a575f36600319011261048a5760206001600160401b035f805160206149cd8339815191525416604051908152f35b3461048a57606036600319011261048a57610fc86106e8565b602435610fd481610502565b6001600160401b039160443583811161048a57610ff59036906004016106fe565b5f805160206149cd8339815191529491855494838616806110d65760ff8760401c169081156110c9575b506107c8577fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2966110c49661108c958716906001600160401b0319161790556110875f805160206149cd833981519152600160401b68ff000000000000000019825416179055565b612463565b5f805160206149cd833981519152805468ff0000000000000000191690556040516001600160401b0390911681529081906020820190565b0390a1005b905084861611155f61101f565b60405162dc149f60e41b8152600490fd5b3461048a57602036600319011261048a57602061098660043561110981610502565b612883565b3461048a57602036600319011261048a576004355f526006602052602060405f2054604051908152f35b3461048a575f36600319011261048a5760015465ffffffffffff61116e818360a01c169261116461291a565b9060d01c906123fa565b82018092116106d157611182602092612d9e565b60405191168152f35b3461048a575f36600319011261048a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461048a575f36600319011261048a57602060ff60035460a01c166040519015158152f35b3461048a575f36600319011261048a5761120c6139cc565b5f8051602061492d83398151915280546001600160a01b031981169091555f906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b3461048a57604036600319011261048a5760043560243561127b816107fc565b611283612bf5565b6003546112a0906001600160a01b03165b6001600160a01b031690565b330361151d576112ae61291a565b906112b88161294e565b908215158061150c575b8015611503575b6114f1576105c0937ff9d090c096f71cd1659861a9ce5b6f384bceb4e2fa4e4a19edf6489a9b8d56c7926112fb613b9d565b946113166113088261240d565b5f52600660205260405f2090565b549082810361140a575061132a818761241b565b6113348185613a04565b9687806113c3575b50505050505b8361138f575b6040805191825265ffffffffffff929092166020820152908101839052606090a161137f60015f805160206149ad83398151915255565b6040519081529081906020820190565b5f546113be9085906113ac9060101c6001600160a01b0316611294565b6001546001600160a01b031690613ab2565b611348565b6113ff93610c4783610ca46113e96113e2611308986113f99888613a20565b80966123ed565b946113f342612d9e565b926123ed565b9261240d565b555f8080808761133c565b915061141e825f52600660205260405f2090565b549061142e81610d07848a61241b565b906114398286613a04565b978861144a575b5050505050611342565b6114bf93836114729361147f8c61147a6114686114b0998884613a20565b9788958584613a20565b9485926123ed565b6123ed565b938484106114ca575b610c4790610ca461149e9596976113f342612d9e565b6114aa6113088761240d565b556123ed565b915f52600660205260405f2090565b555f80808080611440565b916114e6610c47916114e08661149e97986123ed565b9061241b565b859450929050611488565b604051635e18d2a560e01b8152600490fd5b508282116112c9565b50611516836123df565b82106112c2565b60405163dabc4ad960e01b8152600490fd5b3461048a575f36600319011261048a5760015465ffffffffffff808260a01c169161155861291a565b600181018091116106d15761116e9160d01c906123fa565b3461048a575f36600319011261048a57602061098661291a565b3461048a57602036600319011261048a576004356115a781610502565b60018060a01b03165f526005602052602060ff60405f2054166040519015158152f35b3461048a57602036600319011261048a5760206109866004356115ec816107fc565b61294e565b3461048a57604036600319011261048a5760043561160e81610502565b6024356001600160401b0380821161048a573660238301121561048a57816004013590811161048a573660248260051b8401011161048a576105c092602461137f930190612989565b3461048a57602061098661166a36610e97565b90612ed6565b3461048a5760208060031936011261048a57600480359061169082610502565b611698612bf5565b60025460a01c60ff1661181a576040516302910f8b60e31b81526001600160a01b03838116838301908152909491908290829081906020010381887f0000000000000000000000000000000000000000000000000000000000000000165afa908115610dd3575f916117ed575b50156117dd5760405163fbfa77cf60e01b8152838516949082818581895afa928315610dd3575f936117ae575b50503091160361179f5750600280546001600160a01b03929092166001600160a81b031990921691909117600160a01b1790557fdb2160616f776a37b24808115554e79439bf26cccbbd4438190cc6d28e80ecd15f80a2610a1e60015f805160206149ad83398151915255565b60405163b9f0f17160e01b8152fd5b6117ce929350803d106117d6575b6117c6818361085b565b810190612ae2565b905f80611732565b503d6117bc565b506040516324e5af8d60e21b8152fd5b61180d9150823d8411611813575b611805818361085b565b810190612ac2565b5f611705565b503d6117fb565b604051631380833b60e01b8152fd5b3461048a575f36600319011261048a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461048a575f36600319011261048a5761188561291a565b61188d613b9d565b90805f52600660205260405f205482018092116106d157600181018091116106d1575f52600660205260405f205481018091116106d157602090604051908152f35b3461048a575f36600319011261048a575f8051602061492d833981519152546040516001600160a01b039091168152602090f35b3461048a57604036600319011261048a57602060ff61195560243561192781610502565b6004355f525f8051602061498d833981519152845260405f209060018060a01b03165f5260205260405f2090565b54166040519015158152f35b3461048a57602036600319011261048a5760043561197e81610502565b60018060a01b03165f52600e602052602061098660405f20613c8a565b3461048a57604036600319011261048a576004356119b881610502565b6024356001600160401b03811161048a575f916119da839236906004016106fe565b90816040519283928337810184815203915af4611a3d60806119fa612af7565b9260206040519485921515828401526040808401528051918291826060860152018484015e5f838284010152601f8019910116810103606081018452018261085b565b805190602001fd5b3461048a575f36600319011261048a57602060ff5f5460081c166040519015158152f35b3461048a575f36600319011261048a5760206040515f8152f35b3461048a575f36600319011261048a5760206040517f4a634bc14d77baf979756509ef4298c6f6318af357828612545267ee2eb792338152f35b3461048a57604036600319011261048a57600435611ada81610502565b602435611ae681610aa6565b611aee612bf5565b611af661310b565b6001600160a01b038216918215611b9e575f8381526005602052604090205460ff16151582151514610b39576001600160a01b03165f9081526005602052604090207ff991b1ecfb5115cbb36a2b2e2240c058406d2acc2fcc6e9e2dc99d845ff70a6291611b8591611b73908260ff801983541691151516179055565b60405190151581529081906020820190565b0390a2610a1e60015f805160206149ad83398151915255565b604051630da30f6560e31b8152600490fd5b3461048a57604036600319011261048a576020611bf4602435611bd281610502565b6004355f526008835260405f209060018060a01b03165f5260205260405f2090565b54604051908152f35b3461048a57604036600319011261048a57602060ff611955602435611c2181610502565b6004355f526009845260405f209060018060a01b03165f5260205260405f2090565b3461048a5760208060031936011261048a576004803590611c6382610502565b611c6b612bf5565b60035460a01c60ff16611deb576001600160a01b03828116939084611cd9575b6003805460ff60a01b1916600160a01b179055847fe7e4c932e03abddfe20f83af42c33627e816115c7ec2b168441f65dc14bfc3ba5f80a2610a1e60015f805160206149ad83398151915255565b6040516302910f8b60e31b81526001600160a01b0385168482019081528390829081906020010381857f0000000000000000000000000000000000000000000000000000000000000000165afa908115610dd3575f91611dce575b5015611dbd5760405163fbfa77cf60e01b815282818581895afa928315610dd3575f93611d9e575b505030911603611d8f5750600380546001600160a01b0319166001600160a01b039092169190911790555f808080611c8b565b604051633f3e089160e21b8152fd5b611db5929350803d106117d6576117c6818361085b565b905f80611d5c565b60405163dabc4ad960e01b81528390fd5b611de59150833d851161181357611805818361085b565b5f611d34565b60405163703fe2e560e01b8152fd5b3461048a57604036600319011261048a57600435611e1781610502565b60243590611e23612bf5565b6001600160a01b0391818316908115611ea957611e546105c094611e4683613b01565b9485915f5460101c16613ab2565b604080519182526020820184905233917f865ca08d59f5cb456e85cd2f7ef63664ea4f73327414e9d8152c4158b0e946459190a360015f805160206149ad833981519152556040519081529081906020820190565b604051634e46966960e11b8152600490fd5b3461048a57602036600319011261048a576004355f526007602052602060405f2054604051908152f35b3461048a575f36600319011261048a576003546040516001600160a01b039091168152602090f35b3461048a575f36600319011261048a576020610986613b9d565b3461048a57602036600319011261048a57600435611f43612bf5565b335f9081527f2d4ccbfe9f7672a6f2537c1e5bce6adacb73706879154bbab6ce096012d6721660205260409020547f4a634bc14d77baf979756509ef4298c6f6318af357828612545267ee2eb792339060ff1615611fe757508060045414610b39576020817f854df3eb95564502c8bc871ebdd15310ee26270f955f6c6bd8cea68e75045bc092600455604051908152a160015f805160206149ad83398151915255005b6044906040519063e2517d3f60e01b82523360048301526024820152fd5b3461048a575f36600319011261048a576020610986613c16565b3461048a57602036600319011261048a5760043561203c81610502565b61204461291a565b61204d82612883565b916120588183612b97565b83018093116106d157600182018092116106d15761207591612b97565b81018091116106d157602090604051908152f35b3461048a575f36600319011261048a576002546040516001600160a01b039091168152602090f35b3461048a57604036600319011261048a57610a1e6024356004356120d482610502565b805f525f8051602061498d8339815191526020526120f8600160405f200154613162565b613498565b3461048a575f36600319011261048a575f5460405160109190911c6001600160a01b03168152602090f35b3461048a575f36600319011261048a5760206040517fbae4ee3de6c709ff9a002e774c5b78cb381560b219213c88ae0f1e207c03c0238152f35b3461048a575f36600319011261048a576020600454604051908152f35b3461048a57606036600319011261048a5760043561219c81610502565b602435906121a9826107fc565b6001600160401b039160443583811161048a576121ca9036906004016106fe565b909260409384516121da81610820565b60608152606060208201526060868201529280612239575b6105c08661222a878761222461220b8984845191612428565b928561221b602085015183612ed6565b93015190612e01565b91613cd7565b90519081529081906020820190565b810193925060208185031261048a5780359086821161048a57019260608482031261048a5784519561226a87610820565b843581811161048a578261227f9187016108fc565b8752602085013581811161048a57826122999187016108fc565b60208801528585013590811161048a576105c0966122c26122249361220b9361222a98016108fc565b878201529394506121f2565b3461048a57602036600319011261048a57610a1e6004356122ee81610502565b6122f66139cc565b612b26565b3461048a57604036600319011261048a5760043561231881610502565b602435612323612bf5565b6001600160a01b038216156105eb57801561238f57612352612343613c16565b61234b613b9d565b9083614121565b335f908152600e6020526040902090929061236c90613c8a565b831161237d57610598918391612c24565b6040516321727a3760e11b8152600490fd5b604051636c6c627d60e11b8152600490fd5b3461048a57604036600319011261048a5760206109866024356123c381610502565b600435612b97565b634e487b7160e01b5f52601160045260245ffd5b5f198101919082116106d157565b919082039182116106d157565b818102929181159184041417156106d157565b90600182018092116106d157565b919082018092116106d157565b6001600160a01b03165f908152600e60205260409020610917929190612f8b565b9081602091031261048a575190565b6040513d5f823e3d90fd5b916124b5916124a691612474614268565b61247c614268565b60015f805160206149ad833981519152556001600160a01b0394808616612869575b5036916108c6565b60208082518301019101613903565b805182166001600160a01b03161561285757604080820165ffffffffffff6124e3825165ffffffffffff1690565b16156128465760c083018051909290612504906001600160a01b0316611294565b156126f7575b5091612643610140926125e26125bd6126a196612558612530875160018060a01b031690565b5f805462010000600160b01b03191660109290921b62010000600160b01b0316919091179055565b6020860151600180546001600160a01b0319166001600160a01b039092169190911790556125b161258842612d9e565b6001805465ffffffffffff60a01b191660a09290921b65ffffffffffff60a01b16919091179055565b5165ffffffffffff1690565b600180546001600160d01b031660d09290921b6001600160d01b031916919091179055565b6126026125f26060850151151590565b60ff80195f541691151516175f55565b6126296126126080850151151590565b61ff005f5491151560081b169061ff001916175f55565b61263660a0840151600455565b516001600160a01b031690565b8481166126e7575b5060e08101516001600160a01b03168481166126d7575b506101008101516001600160a01b03168481166126c7575b506101208101516001600160a01b03168481166126b7575b5001516001600160a01b031690565b9081166126ab5750565b6126b4906133f3565b50565b6126c090613384565b505f612692565b6126d090613315565b505f61267a565b6126e09061323f565b505f612662565b6126f09061318e565b505f61264b565b60e084015161270e906001600160a01b0316611294565b156127e3575b61012084015161272c906001600160a01b0316611294565b61250a576080840151156127995760a0840151158061277a575b61276a575091612643610140926125e26125bd6126a1965b9496505050925061250a565b5163183c854560e21b8152600490fd5b50610140840151612793906001600160a01b0316611294565b15612746565b60a0840151158015906127c3575b61276a575091612643610140926125e26125bd6126a19661275e565b506101408401516127dc906001600160a01b0316611294565b15156127a7565b60608401511561281957610100840151612805906001600160a01b0316611294565b612714575163183c854560e21b8152600490fd5b610100840151612831906001600160a01b0316611294565b15612714575163183c854560e21b8152600490fd5b81516368f5f8f160e11b8152600490fd5b6040516368f7a67560e11b8152600490fd5b61287d90612875614268565b6122f6614268565b5f61249e565b6001600160a01b03165f908152600e602052604090206128a290613c8a565b6128aa613b9d565b6128b2613c16565b90600181018091116106d157600182018092116106d15761091792613a20565b65ffffffffffff91821690821603919082116106d157565b634e487b7160e01b5f52601260045260245ffd5b9065ffffffffffff80911691821561291557160490565b6128ea565b61292342612d9e565b61294a60015461294065ffffffffffff93848360a01c16906128d2565b9060d01c906128fe565b1690565b6001549065ffffffffffff91828160a01c169182848216106129775761294a92612940916128d2565b60405163b7d0949760e01b8152600490fd5b90612992612bf5565b5f926001600160a01b038316928315611ea9578115612a4a575f5b828110612a2857505f547f326b6aff1cd2fb1c8234de4f9dcfb9047c5c36eb9ef2eb34af5121e969a75d2792869290916129fd9184916129f89060101c6001600160a01b0316611294565b613ab2565b612a0e604051928392339684612a85565b0390a3906108a960015f805160206149ad83398151915255565b94612a436001916114e0612a3d898789612a70565b35613b01565b95016129ad565b60405163edf3b93360e01b8152600490fd5b634e487b7160e01b5f52603260045260245ffd5b9190811015612a805760051b0190565b612a5c565b604080825281018390529392916001600160fb1b03811161048a5760209160609160051b809183880137850101930152565b51906108a982610aa6565b9081602091031261048a575161091781610aa6565b51906108a982610502565b9081602091031261048a575161091781610502565b3d15612b21573d90612b08826108ab565b91612b16604051938461085b565b82523d5f602084013e565b606090565b6001600160a01b03908116908115612b7f575f8051602061492d83398151915280546001600160a01b031981168417909155167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3565b604051631e4fbdf760e01b81525f6004820152602490fd5b90612bbd90825f52600860205260405f209060018060a01b03165f5260205260405f2090565b54905f52600660205260405f2054600760205260405f205490600181018091116106d157600182018092116106d15761091792613a20565b5f805160206149ad8339815191526002815414612c125760029055565b604051633ee5aeb560e01b8152600490fd5b335f908152600e6020526040902093929190612c3f42612d9e565b335f908152600e60205260409020612c5690613c8a565b918483039283116106d157612c917febff2602b3f468259e1e99f613fed6691f3a6526effe6ef3e768ba7ae7a36c4f938593612d1c9961383a565b5050612cab612c9f42612d9e565b610cb98761147a613c16565b5050612cc5612cb942612d9e565b610ca48461147a613b9d565b5050612d6a81612d55612cde612cd961291a565b61240d565b612d34612cf3825f52600660205260405f2090565b54612d06835f52600760205260405f2090565b54612d1282828b613cd7565b9d8e998a9361241b565b612d2e855f52600660205260405f2090565b5561241b565b612d46825f52600760205260405f2090565b555f52600860205260405f2090565b9060018060a01b03165f5260205260405f2090565b612d7583825461241b565b9055604080519485526020850195909552938301526001600160a01b03909216913391606090a3565b65ffffffffffff90818111612db1571690565b604490604051906306dfcc6560e41b8252603060048301526024820152fd5b9081602091031261048a575163ffffffff8116810361048a5790565b90600163ffffffff809316019182116106d157565b90805115612ecc5780602080612e1c93518301019101612dd0565b612e2581613f48565b90612e36825165ffffffffffff1690565b9065ffffffffffff8085169216828114612ec05782119182612e6c575b5050612e63575061091790613cf8565b60209150015190565b909150612e7a600a546123df565b63ffffffff831614918215612e93575b50505f80612e53565b612eb89192506125b1612ea8612ead92612dec565b613f48565b65ffffffffffff1690565b115f80612e8a565b50505060209150015190565b5061091790613cf8565b90805115612f815780602080612ef193518301019101612dd0565b612efa81613fcd565b90612f0b825165ffffffffffff1690565b9065ffffffffffff8085169216828114612ec05782119182612f38575b5050612e63575061091790613dbf565b909150612f46600c546123df565b63ffffffff831614918215612f5f575b50505f80612f28565b612f799192506125b1612f74612ead92612dec565b613fcd565b115f80612f56565b5061091790613dbf565b9180511561304d5780602080612fa693518301019101612dd0565b91612fb18382614048565b92612fc2845165ffffffffffff1690565b9065ffffffffffff80851692168281146130415782119182612ff8575b5050612fef576109179250613e7f565b50506020015190565b90915061300583546123df565b63ffffffff83161491821561301e575b50505f80612fdf565b6130399192506125b1613033612ead92612dec565b85614048565b115f80613015565b50505050506020015190565b5061091791613e7f565b335f9081527f03b26b53c87faa1058f30bb5d2fee64f717719a0d9b7e4f4df027aa5e9b6ed69602052604090207fbae4ee3de6c709ff9a002e774c5b78cb381560b219213c88ae0f1e207c03c0239060ff905b541615611fe75750565b335f9081527fe41986b390c4ce6791b87f7423b5fab7a81a0e6d89660b6264f697d008b2243a602052604090207fc6aaadd7371d5e8f9ed6849dd66a66573a3ba37167d03f4352c9ba5693678fac9060ff906130aa565b335f9081527f0287ab4cb376ea253d7b2ce0c2cbf458f7deae9458470d74afdfbbee484e9540602052604090207f9c56d972d63cbb4195b3c1484691dfc220fa96a4c47e7b6613bd82a022029e069060ff906130aa565b5f8181525f8051602061498d83398151915260209081526040808320338452909152902060ff906130aa565b6001600160a01b0381165f9081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d60205260409020545f8051602061498d8339815191529060ff16613239575f808052602091825260408082206001600160a01b038516835290925220805460ff1916600117905533906001600160a01b03165f7f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d8180a4600190565b50505f90565b6001600160a01b0381165f9081527f03b26b53c87faa1058f30bb5d2fee64f717719a0d9b7e4f4df027aa5e9b6ed69602052604090207fbae4ee3de6c709ff9a002e774c5b78cb381560b219213c88ae0f1e207c03c023905f8051602061498d8339815191529060ff905b541661330e575f828152602091825260408082206001600160a01b038616835290925220805460ff1916600117905533916001600160a01b0316907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d5f80a4600190565b5050505f90565b6001600160a01b0381165f9081527f0287ab4cb376ea253d7b2ce0c2cbf458f7deae9458470d74afdfbbee484e9540602052604090207f9c56d972d63cbb4195b3c1484691dfc220fa96a4c47e7b6613bd82a022029e06905f8051602061498d8339815191529060ff906132aa565b6001600160a01b0381165f9081527fe41986b390c4ce6791b87f7423b5fab7a81a0e6d89660b6264f697d008b2243a602052604090207fc6aaadd7371d5e8f9ed6849dd66a66573a3ba37167d03f4352c9ba5693678fac905f8051602061498d8339815191529060ff906132aa565b6001600160a01b0381165f9081527f2d4ccbfe9f7672a6f2537c1e5bce6adacb73706879154bbab6ce096012d67216602052604090207f4a634bc14d77baf979756509ef4298c6f6318af357828612545267ee2eb79233905f8051602061498d8339815191529060ff906132aa565b5f8181525f8051602061498d833981519152602081815260408084206001600160a01b038716855290915290912060ff906132aa565b5f8181525f8051602061498d833981519152602081815260408084206001600160a01b03871685529091529091205460ff161561330e575f828152602091825260408082206001600160a01b038616835290925220805460ff1916905533916001600160a01b0316907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b5f80a4600190565b6040516323b872dd60e01b60208201526001600160a01b03928316602482015292909116604483015260648083019390935291815260a08101918183106001600160401b0384111761083b576108a9926040526140b0565b600b54811015612a8057600b5f525f8051602061496d83398151915201905f90565b600d54811015612a8057600d5f525f8051602061494d83398151915201905f90565b8054821015612a80575f5260205f2001905f90565b600d54600160401b81101561083b576001810180600d55811015612a8057600d5f525f8051602061494d8339815191520155565b600b54600160401b81101561083b576001810180600b55811015612a8057600b5f525f8051602061496d8339815191520155565b90815491600160401b83101561083b57826136669160016108a9950181556135c6565b90919082549060031b91821b915f19901b1916179055565b919091600d9081548015613729575b50613696614185565b509290918154926136a5613b9d565b9481613714575b50156136f157505f1982018281116106d15781541115612a80575f527fd7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb4018390559190565b613705926001600160d01b0316915061439f565b5050613710836135db565b9190565b65ffffffffffff83811691161490505f6136ac565b600160401b81101561083b5760018101808455811015612a80575f908382525f8051602061494d83398151915201555f61368d565b919091600b9081548015613805575b506137766141f0565b50929091815492613785613c16565b94816137f0575b50156137d157505f1982018281116106d15781541115612a80575f527f0175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db8018390559190565b6137e5926001600160d01b0316915061449f565b50506137108361360f565b65ffffffffffff83811691161490505f61378c565b600160401b81101561083b5760018101808455811015612a80575f908382525f8051602061496d83398151915201555f61376d565b909291926001820190815480156138c8575b50846138578461423a565b5094909284549361386783613c8a565b96816138b3575b5015613890575050505f1981019081116106d1576136668591613710936135c6565b6137109492936138ac926001600160d01b039091169190614549565b5050613643565b65ffffffffffff83811691161490505f61386e565b600160401b81101561083b578060016138e492018455836135c6565b8154905f199060031b1b191690555f61384c565b51906108a9826107fc565b908161016091031261048a5761391761087c565b9061392181612ad7565b825261392f60208201612ad7565b6020830152613940604082016138f8565b604083015261395160608201612ab7565b606083015261396260808201612ab7565b608083015260a081015160a083015261397d60c08201612ad7565b60c083015261398e60e08201612ad7565b60e08301526101006139a1818301612ad7565b908301526101206139b3818301612ad7565b908301526139c5610140809201612ad7565b9082015290565b5f8051602061492d833981519152546001600160a01b031633036139ec57565b60405163118cdaa760e01b8152336004820152602490fd5b9080821015613a11575090565b905090565b8115612915570490565b9091828202915f1984820993838086109503948086039514613aa55784831115613a9357829109815f038216809204600280826003021880830282030280830282030280830282030280830282030280830282030280920290030293600183805f03040190848311900302920304170290565b60405163227bc15360e01b8152600490fd5b5050906109179250613a16565b60405163a9059cbb60e01b60208201526001600160a01b03909216602483015260448083019390935291815260808101916001600160401b0383118284101761083b576108a9926040526140b0565b90613b0a61291a565b821015613b8b575f82815260096020908152604080832033845290915290205460ff16613b7957613b3b3383612b97565b918215613b67575f9081526009602090815260408083203384529091529020805460ff19166001179055565b6040516366c0bcbf60e11b8152600490fd5b604051630c8d9eab60e31b8152600490fd5b60405163d5b25b6360e01b8152600490fd5b600c5480613bdd57505f5b6001600160d01b03811615613bd857600d54811015612a8057600d5f525f8051602061494d833981519152015490565b505f90565b805f198101116106d157600c5f527fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c6015460301c613ba8565b600a5480613c5157505f5b6001600160d01b03811615613bd857600b54811015612a8057600b5f525f8051602061496d833981519152015490565b805f198101116106d157600a5f527fc65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a7015460301c613c21565b805480613cb957505f5b6001600160d01b03811615613239576001613caf92016135c6565b90549060031b1c90565b5f199080828101116106d157825f5260205f2001015460301c613c94565b9190600181018091116106d157600182018092116106d15761091792613a20565b600a54905f829160058411613d66575b613d129350614755565b80613d3557505f5b6001600160d01b03811615613bd857613caf61091791613582565b613d5a613d44613d61926123df565b600a5f525f8051602061490d8339815191520190565b5460301c90565b613d1a565b9192613d718161461c565b81039081116106d157613d1293600a5f5265ffffffffffff80835f8051602061490d833981519152015416908516105f14613dad575091613d08565b929150613db99061240d565b90613d08565b600c54905f829160058411613e26575b613dd993506147be565b80613dfc57505f5b6001600160d01b03811615613bd857613caf610917916135a4565b613d5a613e0b613e21926123df565b600c5f525f805160206148ed8339815191520190565b613de1565b9192613e318161461c565b81039081116106d157613dd993600c5f5265ffffffffffff80835f805160206148ed833981519152015416908516105f14613e6d575091613dcf565b929150613e799061240d565b90613dcf565b908154905f829160058411613ee2575b613e9a935084614827565b80613ec257505f905b6001600160d01b0382161561323957610917916001613caf92016135c6565b613d5a613ed1613edc926123df565b835f5260205f200190565b90613ea3565b9192613eed8161461c565b81039081116106d157613e9a93855f5265ffffffffffff808360205f20015416908516105f14613f1e575091613e8f565b929150613f2a9061240d565b90613e8f565b60405190613f3d82610840565b5f6020838281520152565b613f50613f30565b50613f59613f30565b50600a54811015612a8057613f8090600a5f525f8051602061490d83398151915201614161565b65ffffffffffff81511690602060018060d01b0391015116600b54811015612a8057600b5f525f8051602061496d833981519152015460405191613fc383610840565b8252602082015290565b613fd5613f30565b50613fde613f30565b50600c54811015612a805761400590600c5f525f805160206148ed83398151915201614161565b65ffffffffffff81511690602060018060d01b0391015116600d54811015612a8057600d5f525f8051602061494d833981519152015460405191613fc383610840565b9061407161406b6140929261405b613f30565b50614064613f30565b50846135c6565b50614161565b91600165ffffffffffff845116936020828060d01b039101511691016135c6565b905490604051926140a284610840565b835260031b1c602082015290565b5f806140d89260018060a01b03169360208151910182865af16140d1612af7565b9083614889565b8051908115159182614106575b50506140ee5750565b60249060405190635274afe760e01b82526004820152fd5b6141199250602080918301019101612ac2565b155f806140e5565b9190600181018091116106d157600182018092116106d157614144828285613a20565b92821561291557096141535790565b600181018091116106d15790565b9060405161416e81610840565b915465ffffffffffff8116835260301c6020830152565b600c548061419657505f905f905f90565b805f198101116106d1577fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c66141cf91600c5f5201614161565b9065ffffffffffff82511691602060018060d01b0391015116906001929190565b600a548061420157505f905f905f90565b805f198101116106d1577fc65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a76141cf91600a5f5201614161565b80548061424b5750505f905f905f90565b5f199080828101116106d1576141cf925f5260205f200101614161565b60ff5f805160206149cd8339815191525460401c161561428457565b604051631afcd79f60e31b8152600490fd5b600c5490600160401b82101561083b576001820180600c55821015612a8057600c5f52805160209091015160301b65ffffffffffff191665ffffffffffff91909116175f805160206148ed83398151915290910155565b600a5490600160401b82101561083b576001820180600a55821015612a8057600a5f52805160209091015160301b65ffffffffffff191665ffffffffffff91909116175f8051602061490d83398151915290910155565b8054600160401b81101561083b57614361916001820181556135c6565b61438c57815160209092015160301b65ffffffffffff191665ffffffffffff92909216919091179055565b634e487b7160e01b5f525f60045260245ffd5b600c54919291908115614476576143c06143bb613e0b846123df565b614161565b805165ffffffffffff83811694911684106144645785602093613710956143f0612ead865165ffffffffffff1690565b0361442c5750614405613e0b61441e936123df565b9065ffffffffffff82549181199060301b169116179055565b01516001600160d01b031690565b905061445f915061444c61443e61089c565b65ffffffffffff9092168252565b6001600160d01b03871681850152614296565b61441e565b604051632520601d60e01b8152600490fd5b61449a915061448661443e61089c565b6001600160d01b0384166020820152614296565b5f9190565b600a54919291908115614525576144bb6143bb613d44846123df565b805165ffffffffffff83811694911684106144645785602093613710956144eb612ead865165ffffffffffff1690565b036145005750614405613d4461441e936123df565b905061445f915061451261443e61089c565b6001600160d01b038716818501526142ed565b61449a915061453561443e61089c565b6001600160d01b03841660208201526142ed565b8054929392919082156145f8576145656143bb613ed1856123df565b90614576825165ffffffffffff1690565b65ffffffffffff84811691168110614464576137109460209488926145a4612ead875165ffffffffffff1690565b036145c5575061441e926145ba614405926123df565b905f5260205f200190565b91505061445f916145e56145d761089c565b65ffffffffffff9093168352565b6001600160d01b03881682860152614344565b61449a92506146086145d761089c565b6001600160d01b0385166020830152614344565b8015613bd857806146ee6146e76146dd6146d36146c96146bf6146b56146ab60016109179a5f908b60801c80614749575b508060401c8061473c575b508060201c8061472f575b508060101c80614722575b508060081c80614715575b508060041c80614708575b508060021c806146fb575b50821c6146f4575b811c1b6146a4818b613a16565b0160011c90565b6146a4818a613a16565b6146a48189613a16565b6146a48188613a16565b6146a48187613a16565b6146a48186613a16565b6146a48185613a16565b8092613a16565b90613a04565b8101614697565b600291509101905f61468f565b600491509101905f614684565b600891509101905f614679565b601091509101905f61466e565b602091509101905f614663565b604091509101905f614658565b9150506080905f61464d565b905b82811061476357505090565b9091808216906001818418811c83018093116106d157600a5f5265ffffffffffff80845f8051602061490d833981519152015416908616105f146147ab575050915b90614757565b9093925081018091116106d157906147a5565b905b8281106147cc57505090565b9091808216906001818418811c83018093116106d157600c5f5265ffffffffffff80845f805160206148ed833981519152015416908616105f14614814575050915b906147c0565b9093925081018091116106d1579061480e565b91905b8382106148375750505090565b909192808316906001818518811c83018093116106d157855f5265ffffffffffff808460205f20015416908516105f14614876575050925b919061482a565b9094935081018091116106d1579161486f565b906148b0575080511561489e57805190602001fd5b604051630a12f52160e11b8152600490fd5b815115806148e3575b6148c1575090565b604051639996b31560e01b81526001600160a01b039091166004820152602490fd5b50803b156148b956fedf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c7c65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a89016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300d7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb50175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db902dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268009b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a26469706673582212201a50e827895a2cd73f911caab81ce70f82197386d81e8f679668f87cbe90c41164736f6c63430008190033","sourceMap":"981:14960:95:-:0;;;;;;;;;;;;;-1:-1:-1;;981:14960:95;;;;;-1:-1:-1;;;;;981:14960:95;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;:::i;:::-;3173:36:96;;;3219:32;;8837:64:25;981:14960:95;;;;;;;;;7896:76:25;;981:14960:95;;;;7985:34:25;7981:146;;-1:-1:-1;927:17:71;;;;;981:14960:95;;;;;;;3173:36:96;981:14960:95;;;;;;;;;;3219:32:96;981:14960:95;;;;;;;;;;927:17:71;981:14960:95;;;;;;;;;;;7981:146:25;-1:-1:-1;;;;;;981:14960:95;;;;;;;;;;;;;8087:29:25;;981:14960:95;;8087:29:25;7981:146;;;;;7896:76;981:14960:95;;-1:-1:-1;;;7938:23:25;;;;;981:14960:95;-1:-1:-1;981:14960:95;;;;;;-1:-1:-1;981:14960:95;;;;;-1:-1:-1;981:14960:95;;;;-1:-1:-1;;;;;981:14960:95;;;;;;:::o","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361015610011575f80fd5b5f3560e01c806301ffc9a7146104345780631415519b1461042f5780631b66c9e11461042a5780631e9a695014610425578063248a9ca31461042057806327810b6e1461041b578063281f5752146104165780632abe3048146104115780632d73c69c1461040c5780632dd31000146104075780632f2ff15d1461040257806336568abe146103fd578063392e53cd146103f85780634105a7dd146103f357806346361671146103ee57806347e7ef24146103e957806348d3b775146103e45780634ff0876a146103df57806350861adc146103da57806350f22068146103d55780635346e34f146103d057806354fd4d50146103cb57806357ec83cc146103c657806359f769a9146103c15780635cc07076146103bc57806361a8c8c4146103b75780636da3e06d146103b25780636ec1e3f8146103ad578063715018a6146103a85780637278e31c146103a357806373790ab31461039e5780637667180814610399578063794b15b7146103945780637953b33b1461038f5780637c04c80a1461038a578063810da75d1461038557806383cd9cc31461038057806387df07881461037b5780638b0e9f3f146103765780638da5cb5b1461037157806391d148541461036c5780639d66201b146103675780639f86fd8514610362578063a1b122021461035d578063a217fddf14610358578063a21a1df914610353578063a28614661461034e578063a3b5417214610349578063a5d0322314610344578063aabc24961461033f578063aad3ec961461033a578063afba70ad14610335578063b134427114610330578063bd49c35f1461032b578063bdc8144b14610326578063bfefcd7b14610321578063c31e8dd71461031c578063ce9b793014610317578063d547741f14610312578063d8dfeb451461030d578063db38871514610308578063ecf7085814610303578063efb559d6146102fe578063f2fde38b146102f9578063f3fef3a3146102f45763f5e7ee0f146102ef575f80fd5b6123a1565b6122fb565b6122ce565b61217f565b612162565b612128565b6120fd565b6120b1565b612089565b61201f565b612005565b611f27565b611f0d565b611ee5565b611ebb565b611dfa565b611c43565b611bfd565b611bb0565b611abd565b611a83565b611a69565b611a45565b61199b565b611961565b611903565b6118cf565b61186d565b611829565b611670565b611657565b6115f1565b6115ca565b61158a565b611570565b61152f565b61125b565b6111f4565b6111cf565b61118b565b611138565b61110e565b6110e7565b610faf565b610f7d565b610ee8565b610ecf565b610e72565b610e52565b610e31565b610b73565b610b4b565b610ab0565b610a6b565b610a20565b6109d2565b61098e565b61091a565b61072b565b61065d565b610635565b6105fc565b610513565b6104c8565b61048e565b3461048a57602036600319011261048a5760043563ffffffff60e01b811680910361048a57602090637965db0b60e01b8114908115610479575b506040519015158152f35b6301ffc9a760e01b1490505f61046e565b5f80fd5b3461048a575f36600319011261048a5760206040517fc6aaadd7371d5e8f9ed6849dd66a66573a3ba37167d03f4352c9ba5693678fac8152f35b3461048a575f36600319011261048a5760206040517f9c56d972d63cbb4195b3c1484691dfc220fa96a4c47e7b6613bd82a022029e068152f35b6001600160a01b0381160361048a57565b3461048a57604036600319011261048a5760043561053081610502565b6024359061053c612bf5565b6001600160a01b038116156105eb57335f908152600e6020526040902061056790613c8a565b613c8a565b82116105d957610587610578613b9d565b610580613c16565b9084613cd7565b9182156105c4578261059892612c24565b906105af60015f805160206149ad83398151915255565b604080519182526020820192909252f35b0390f35b60405160016245ddc760e11b03198152600490fd5b604051632418411f60e11b8152600490fd5b6040516208978560e71b8152600490fd5b3461048a57602036600319011261048a576004355f525f8051602061498d8339815191526020526020600160405f200154604051908152f35b3461048a575f36600319011261048a576001546040516001600160a01b039091168152602090f35b3461048a575f36600319011261048a5761067561291a565b80156106d65760015465ffffffffffff8160a01c16915f1981019081116106d1576106a39160d01c906123fa565b81018091116106d1576106b86105c091612d9e565b60405165ffffffffffff90911681529081906020820190565b6123cb565b604051639fa56a5b60e01b8152600490fd5b600435906001600160401b038216820361048a57565b9181601f8401121561048a578235916001600160401b03831161048a576020838186019501011161048a57565b3461048a57604036600319011261048a576107446106e8565b6001600160401b0360243581811161048a576107649036906004016106fe565b505061076e612bf5565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633036107ea575f805160206149cd833981519152549060ff8260401c169283156107da575b5050506107c8575f80fd5b60405163f92ee8a960e01b8152600490fd5b81169116101590505f80806107bd565b604051631966391b60e11b8152600490fd5b65ffffffffffff81160361048a57565b634e487b7160e01b5f52604160045260245ffd5b606081019081106001600160401b0382111761083b57604052565b61080c565b604081019081106001600160401b0382111761083b57604052565b90601f801991011681019081106001600160401b0382111761083b57604052565b6040519061016082018281106001600160401b0382111761083b57604052565b604051906108a982610840565b565b6001600160401b03811161083b57601f01601f191660200190565b9291926108d2826108ab565b916108e0604051938461085b565b82948184528183011161048a578281602093845f960137010152565b9080601f8301121561048a57816020610917933591016108c6565b90565b3461048a57606036600319011261048a5760043561093781610502565b60243590610944826107fc565b604435906001600160401b03821161048a5760209261096a6109869336906004016108fc565b6001600160a01b039092165f908152600e855260409020612f8b565b604051908152f35b3461048a575f36600319011261048a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461048a57604036600319011261048a57610a1e6024356004356109f582610502565b805f525f8051602061498d833981519152602052610a19600160405f200154613162565b613462565b005b3461048a57604036600319011261048a57602435610a3d81610502565b336001600160a01b03821603610a5957610a1e90600435613498565b60405163334bd91960e11b8152600490fd5b3461048a575f36600319011261048a5760ff60025460a01c1680610a97575b6020906040519015158152f35b5060035460a01c60ff16610a8a565b8015150361048a57565b3461048a57602036600319011261048a57600435610acd81610aa6565b610ad5612bf5565b610add613057565b5f54901515908160ff8216151514610b395760ff191660ff8216175f556040519081527f3e12b7b36c75ac9609a3f58609b331210428e1a85909132638955ba0301eec3390602090a160015f805160206149ad83398151915255005b60405163a741a04560e01b8152600490fd5b3461048a575f36600319011261048a57602065ffffffffffff60015460a01c16604051908152f35b3461048a5760408060031936011261048a576004803591610b9383610502565b610b9b612bf5565b6001600160a01b0391838316908115610e23575f5460ff811680610e0a575b610dfb5783516370a0823160e01b808252308483019081529096602093909160109190911c82169084908490819083010381845afa928315610dd3575f93610dd8575b50610c0f90602435903090339061352a565b5f5486519788523085890190815290979184918391908290819060200103918b60101c165afa908115610dd357610c4e935f92610da6575b50506123ed565b938415610d975760081c60ff1680610d82575b610d745750906105c091610d12610c76613b9d565b95610cbf610c82613c16565b610caa610c908a838b613cd7565b99610ca48a610c9e42612d9e565b9261241b565b9061367e565b5050610cb989610c9e42612d9e565b9061375e565b50506001600160a01b0381165f908152600e6020526040902090610d0c88610d07610562610cec42612d9e565b6001600160a01b039095165f908152600e6020526040902090565b61241b565b9161383a565b505081518481526020810186905233907fdcbc1c05240f31ff3ad067ef1ee35ce4997762752e3a095284754544f4c709d790604090a3610d5e60015f805160206149ad83398151915255565b5191825260208201929092529081906040820190565b8251632484557960e01b8152fd5b50610d8f84610d07613b9d565b815410610c61565b50825163070f6eed60e11b8152fd5b610dc59250803d10610dcc575b610dbd818361085b565b810190612449565b5f80610c47565b503d610db3565b612458565b610c0f919350610df490853d8711610dcc57610dbd818361085b565b9290610bfd565b5082516304f63b8560e01b8152fd5b50335f9081526005602052604090205460ff1615610bba565b8251630d534ce360e11b8152fd5b3461048a575f36600319011261048a57602060ff5f54166040519015158152f35b3461048a575f36600319011261048a57602060015460d01c604051908152f35b3461048a575f36600319011261048a57602060ff60025460a01c166040519015158152f35b90604060031983011261048a57600435610eb0816107fc565b91602435906001600160401b03821161048a57610917916004016108fc565b3461048a576020610986610ee236610e97565b90612e01565b3461048a57602036600319011261048a57600435610f0581610aa6565b610f0d612bf5565b610f156130b4565b5f54901515908160ff8260081c16151514610b395761ff001916600882901b61ff0016175f556040519081527ffa7a25a0b611d4ba3c0ea990e90dc23d484a5dd7a1be4733fef2946ba74530c690602090a1610a1e60015f805160206149ad83398151915255565b3461048a575f36600319011261048a5760206001600160401b035f805160206149cd8339815191525416604051908152f35b3461048a57606036600319011261048a57610fc86106e8565b602435610fd481610502565b6001600160401b039160443583811161048a57610ff59036906004016106fe565b5f805160206149cd8339815191529491855494838616806110d65760ff8760401c169081156110c9575b506107c8577fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2966110c49661108c958716906001600160401b0319161790556110875f805160206149cd833981519152600160401b68ff000000000000000019825416179055565b612463565b5f805160206149cd833981519152805468ff0000000000000000191690556040516001600160401b0390911681529081906020820190565b0390a1005b905084861611155f61101f565b60405162dc149f60e41b8152600490fd5b3461048a57602036600319011261048a57602061098660043561110981610502565b612883565b3461048a57602036600319011261048a576004355f526006602052602060405f2054604051908152f35b3461048a575f36600319011261048a5760015465ffffffffffff61116e818360a01c169261116461291a565b9060d01c906123fa565b82018092116106d157611182602092612d9e565b60405191168152f35b3461048a575f36600319011261048a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461048a575f36600319011261048a57602060ff60035460a01c166040519015158152f35b3461048a575f36600319011261048a5761120c6139cc565b5f8051602061492d83398151915280546001600160a01b031981169091555f906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b3461048a57604036600319011261048a5760043560243561127b816107fc565b611283612bf5565b6003546112a0906001600160a01b03165b6001600160a01b031690565b330361151d576112ae61291a565b906112b88161294e565b908215158061150c575b8015611503575b6114f1576105c0937ff9d090c096f71cd1659861a9ce5b6f384bceb4e2fa4e4a19edf6489a9b8d56c7926112fb613b9d565b946113166113088261240d565b5f52600660205260405f2090565b549082810361140a575061132a818761241b565b6113348185613a04565b9687806113c3575b50505050505b8361138f575b6040805191825265ffffffffffff929092166020820152908101839052606090a161137f60015f805160206149ad83398151915255565b6040519081529081906020820190565b5f546113be9085906113ac9060101c6001600160a01b0316611294565b6001546001600160a01b031690613ab2565b611348565b6113ff93610c4783610ca46113e96113e2611308986113f99888613a20565b80966123ed565b946113f342612d9e565b926123ed565b9261240d565b555f8080808761133c565b915061141e825f52600660205260405f2090565b549061142e81610d07848a61241b565b906114398286613a04565b978861144a575b5050505050611342565b6114bf93836114729361147f8c61147a6114686114b0998884613a20565b9788958584613a20565b9485926123ed565b6123ed565b938484106114ca575b610c4790610ca461149e9596976113f342612d9e565b6114aa6113088761240d565b556123ed565b915f52600660205260405f2090565b555f80808080611440565b916114e6610c47916114e08661149e97986123ed565b9061241b565b859450929050611488565b604051635e18d2a560e01b8152600490fd5b508282116112c9565b50611516836123df565b82106112c2565b60405163dabc4ad960e01b8152600490fd5b3461048a575f36600319011261048a5760015465ffffffffffff808260a01c169161155861291a565b600181018091116106d15761116e9160d01c906123fa565b3461048a575f36600319011261048a57602061098661291a565b3461048a57602036600319011261048a576004356115a781610502565b60018060a01b03165f526005602052602060ff60405f2054166040519015158152f35b3461048a57602036600319011261048a5760206109866004356115ec816107fc565b61294e565b3461048a57604036600319011261048a5760043561160e81610502565b6024356001600160401b0380821161048a573660238301121561048a57816004013590811161048a573660248260051b8401011161048a576105c092602461137f930190612989565b3461048a57602061098661166a36610e97565b90612ed6565b3461048a5760208060031936011261048a57600480359061169082610502565b611698612bf5565b60025460a01c60ff1661181a576040516302910f8b60e31b81526001600160a01b03838116838301908152909491908290829081906020010381887f0000000000000000000000000000000000000000000000000000000000000000165afa908115610dd3575f916117ed575b50156117dd5760405163fbfa77cf60e01b8152838516949082818581895afa928315610dd3575f936117ae575b50503091160361179f5750600280546001600160a01b03929092166001600160a81b031990921691909117600160a01b1790557fdb2160616f776a37b24808115554e79439bf26cccbbd4438190cc6d28e80ecd15f80a2610a1e60015f805160206149ad83398151915255565b60405163b9f0f17160e01b8152fd5b6117ce929350803d106117d6575b6117c6818361085b565b810190612ae2565b905f80611732565b503d6117bc565b506040516324e5af8d60e21b8152fd5b61180d9150823d8411611813575b611805818361085b565b810190612ac2565b5f611705565b503d6117fb565b604051631380833b60e01b8152fd5b3461048a575f36600319011261048a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461048a575f36600319011261048a5761188561291a565b61188d613b9d565b90805f52600660205260405f205482018092116106d157600181018091116106d1575f52600660205260405f205481018091116106d157602090604051908152f35b3461048a575f36600319011261048a575f8051602061492d833981519152546040516001600160a01b039091168152602090f35b3461048a57604036600319011261048a57602060ff61195560243561192781610502565b6004355f525f8051602061498d833981519152845260405f209060018060a01b03165f5260205260405f2090565b54166040519015158152f35b3461048a57602036600319011261048a5760043561197e81610502565b60018060a01b03165f52600e602052602061098660405f20613c8a565b3461048a57604036600319011261048a576004356119b881610502565b6024356001600160401b03811161048a575f916119da839236906004016106fe565b90816040519283928337810184815203915af4611a3d60806119fa612af7565b9260206040519485921515828401526040808401528051918291826060860152018484015e5f838284010152601f8019910116810103606081018452018261085b565b805190602001fd5b3461048a575f36600319011261048a57602060ff5f5460081c166040519015158152f35b3461048a575f36600319011261048a5760206040515f8152f35b3461048a575f36600319011261048a5760206040517f4a634bc14d77baf979756509ef4298c6f6318af357828612545267ee2eb792338152f35b3461048a57604036600319011261048a57600435611ada81610502565b602435611ae681610aa6565b611aee612bf5565b611af661310b565b6001600160a01b038216918215611b9e575f8381526005602052604090205460ff16151582151514610b39576001600160a01b03165f9081526005602052604090207ff991b1ecfb5115cbb36a2b2e2240c058406d2acc2fcc6e9e2dc99d845ff70a6291611b8591611b73908260ff801983541691151516179055565b60405190151581529081906020820190565b0390a2610a1e60015f805160206149ad83398151915255565b604051630da30f6560e31b8152600490fd5b3461048a57604036600319011261048a576020611bf4602435611bd281610502565b6004355f526008835260405f209060018060a01b03165f5260205260405f2090565b54604051908152f35b3461048a57604036600319011261048a57602060ff611955602435611c2181610502565b6004355f526009845260405f209060018060a01b03165f5260205260405f2090565b3461048a5760208060031936011261048a576004803590611c6382610502565b611c6b612bf5565b60035460a01c60ff16611deb576001600160a01b03828116939084611cd9575b6003805460ff60a01b1916600160a01b179055847fe7e4c932e03abddfe20f83af42c33627e816115c7ec2b168441f65dc14bfc3ba5f80a2610a1e60015f805160206149ad83398151915255565b6040516302910f8b60e31b81526001600160a01b0385168482019081528390829081906020010381857f0000000000000000000000000000000000000000000000000000000000000000165afa908115610dd3575f91611dce575b5015611dbd5760405163fbfa77cf60e01b815282818581895afa928315610dd3575f93611d9e575b505030911603611d8f5750600380546001600160a01b0319166001600160a01b039092169190911790555f808080611c8b565b604051633f3e089160e21b8152fd5b611db5929350803d106117d6576117c6818361085b565b905f80611d5c565b60405163dabc4ad960e01b81528390fd5b611de59150833d851161181357611805818361085b565b5f611d34565b60405163703fe2e560e01b8152fd5b3461048a57604036600319011261048a57600435611e1781610502565b60243590611e23612bf5565b6001600160a01b0391818316908115611ea957611e546105c094611e4683613b01565b9485915f5460101c16613ab2565b604080519182526020820184905233917f865ca08d59f5cb456e85cd2f7ef63664ea4f73327414e9d8152c4158b0e946459190a360015f805160206149ad833981519152556040519081529081906020820190565b604051634e46966960e11b8152600490fd5b3461048a57602036600319011261048a576004355f526007602052602060405f2054604051908152f35b3461048a575f36600319011261048a576003546040516001600160a01b039091168152602090f35b3461048a575f36600319011261048a576020610986613b9d565b3461048a57602036600319011261048a57600435611f43612bf5565b335f9081527f2d4ccbfe9f7672a6f2537c1e5bce6adacb73706879154bbab6ce096012d6721660205260409020547f4a634bc14d77baf979756509ef4298c6f6318af357828612545267ee2eb792339060ff1615611fe757508060045414610b39576020817f854df3eb95564502c8bc871ebdd15310ee26270f955f6c6bd8cea68e75045bc092600455604051908152a160015f805160206149ad83398151915255005b6044906040519063e2517d3f60e01b82523360048301526024820152fd5b3461048a575f36600319011261048a576020610986613c16565b3461048a57602036600319011261048a5760043561203c81610502565b61204461291a565b61204d82612883565b916120588183612b97565b83018093116106d157600182018092116106d15761207591612b97565b81018091116106d157602090604051908152f35b3461048a575f36600319011261048a576002546040516001600160a01b039091168152602090f35b3461048a57604036600319011261048a57610a1e6024356004356120d482610502565b805f525f8051602061498d8339815191526020526120f8600160405f200154613162565b613498565b3461048a575f36600319011261048a575f5460405160109190911c6001600160a01b03168152602090f35b3461048a575f36600319011261048a5760206040517fbae4ee3de6c709ff9a002e774c5b78cb381560b219213c88ae0f1e207c03c0238152f35b3461048a575f36600319011261048a576020600454604051908152f35b3461048a57606036600319011261048a5760043561219c81610502565b602435906121a9826107fc565b6001600160401b039160443583811161048a576121ca9036906004016106fe565b909260409384516121da81610820565b60608152606060208201526060868201529280612239575b6105c08661222a878761222461220b8984845191612428565b928561221b602085015183612ed6565b93015190612e01565b91613cd7565b90519081529081906020820190565b810193925060208185031261048a5780359086821161048a57019260608482031261048a5784519561226a87610820565b843581811161048a578261227f9187016108fc565b8752602085013581811161048a57826122999187016108fc565b60208801528585013590811161048a576105c0966122c26122249361220b9361222a98016108fc565b878201529394506121f2565b3461048a57602036600319011261048a57610a1e6004356122ee81610502565b6122f66139cc565b612b26565b3461048a57604036600319011261048a5760043561231881610502565b602435612323612bf5565b6001600160a01b038216156105eb57801561238f57612352612343613c16565b61234b613b9d565b9083614121565b335f908152600e6020526040902090929061236c90613c8a565b831161237d57610598918391612c24565b6040516321727a3760e11b8152600490fd5b604051636c6c627d60e11b8152600490fd5b3461048a57604036600319011261048a5760206109866024356123c381610502565b600435612b97565b634e487b7160e01b5f52601160045260245ffd5b5f198101919082116106d157565b919082039182116106d157565b818102929181159184041417156106d157565b90600182018092116106d157565b919082018092116106d157565b6001600160a01b03165f908152600e60205260409020610917929190612f8b565b9081602091031261048a575190565b6040513d5f823e3d90fd5b916124b5916124a691612474614268565b61247c614268565b60015f805160206149ad833981519152556001600160a01b0394808616612869575b5036916108c6565b60208082518301019101613903565b805182166001600160a01b03161561285757604080820165ffffffffffff6124e3825165ffffffffffff1690565b16156128465760c083018051909290612504906001600160a01b0316611294565b156126f7575b5091612643610140926125e26125bd6126a196612558612530875160018060a01b031690565b5f805462010000600160b01b03191660109290921b62010000600160b01b0316919091179055565b6020860151600180546001600160a01b0319166001600160a01b039092169190911790556125b161258842612d9e565b6001805465ffffffffffff60a01b191660a09290921b65ffffffffffff60a01b16919091179055565b5165ffffffffffff1690565b600180546001600160d01b031660d09290921b6001600160d01b031916919091179055565b6126026125f26060850151151590565b60ff80195f541691151516175f55565b6126296126126080850151151590565b61ff005f5491151560081b169061ff001916175f55565b61263660a0840151600455565b516001600160a01b031690565b8481166126e7575b5060e08101516001600160a01b03168481166126d7575b506101008101516001600160a01b03168481166126c7575b506101208101516001600160a01b03168481166126b7575b5001516001600160a01b031690565b9081166126ab5750565b6126b4906133f3565b50565b6126c090613384565b505f612692565b6126d090613315565b505f61267a565b6126e09061323f565b505f612662565b6126f09061318e565b505f61264b565b60e084015161270e906001600160a01b0316611294565b156127e3575b61012084015161272c906001600160a01b0316611294565b61250a576080840151156127995760a0840151158061277a575b61276a575091612643610140926125e26125bd6126a1965b9496505050925061250a565b5163183c854560e21b8152600490fd5b50610140840151612793906001600160a01b0316611294565b15612746565b60a0840151158015906127c3575b61276a575091612643610140926125e26125bd6126a19661275e565b506101408401516127dc906001600160a01b0316611294565b15156127a7565b60608401511561281957610100840151612805906001600160a01b0316611294565b612714575163183c854560e21b8152600490fd5b610100840151612831906001600160a01b0316611294565b15612714575163183c854560e21b8152600490fd5b81516368f5f8f160e11b8152600490fd5b6040516368f7a67560e11b8152600490fd5b61287d90612875614268565b6122f6614268565b5f61249e565b6001600160a01b03165f908152600e602052604090206128a290613c8a565b6128aa613b9d565b6128b2613c16565b90600181018091116106d157600182018092116106d15761091792613a20565b65ffffffffffff91821690821603919082116106d157565b634e487b7160e01b5f52601260045260245ffd5b9065ffffffffffff80911691821561291557160490565b6128ea565b61292342612d9e565b61294a60015461294065ffffffffffff93848360a01c16906128d2565b9060d01c906128fe565b1690565b6001549065ffffffffffff91828160a01c169182848216106129775761294a92612940916128d2565b60405163b7d0949760e01b8152600490fd5b90612992612bf5565b5f926001600160a01b038316928315611ea9578115612a4a575f5b828110612a2857505f547f326b6aff1cd2fb1c8234de4f9dcfb9047c5c36eb9ef2eb34af5121e969a75d2792869290916129fd9184916129f89060101c6001600160a01b0316611294565b613ab2565b612a0e604051928392339684612a85565b0390a3906108a960015f805160206149ad83398151915255565b94612a436001916114e0612a3d898789612a70565b35613b01565b95016129ad565b60405163edf3b93360e01b8152600490fd5b634e487b7160e01b5f52603260045260245ffd5b9190811015612a805760051b0190565b612a5c565b604080825281018390529392916001600160fb1b03811161048a5760209160609160051b809183880137850101930152565b51906108a982610aa6565b9081602091031261048a575161091781610aa6565b51906108a982610502565b9081602091031261048a575161091781610502565b3d15612b21573d90612b08826108ab565b91612b16604051938461085b565b82523d5f602084013e565b606090565b6001600160a01b03908116908115612b7f575f8051602061492d83398151915280546001600160a01b031981168417909155167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3565b604051631e4fbdf760e01b81525f6004820152602490fd5b90612bbd90825f52600860205260405f209060018060a01b03165f5260205260405f2090565b54905f52600660205260405f2054600760205260405f205490600181018091116106d157600182018092116106d15761091792613a20565b5f805160206149ad8339815191526002815414612c125760029055565b604051633ee5aeb560e01b8152600490fd5b335f908152600e6020526040902093929190612c3f42612d9e565b335f908152600e60205260409020612c5690613c8a565b918483039283116106d157612c917febff2602b3f468259e1e99f613fed6691f3a6526effe6ef3e768ba7ae7a36c4f938593612d1c9961383a565b5050612cab612c9f42612d9e565b610cb98761147a613c16565b5050612cc5612cb942612d9e565b610ca48461147a613b9d565b5050612d6a81612d55612cde612cd961291a565b61240d565b612d34612cf3825f52600660205260405f2090565b54612d06835f52600760205260405f2090565b54612d1282828b613cd7565b9d8e998a9361241b565b612d2e855f52600660205260405f2090565b5561241b565b612d46825f52600760205260405f2090565b555f52600860205260405f2090565b9060018060a01b03165f5260205260405f2090565b612d7583825461241b565b9055604080519485526020850195909552938301526001600160a01b03909216913391606090a3565b65ffffffffffff90818111612db1571690565b604490604051906306dfcc6560e41b8252603060048301526024820152fd5b9081602091031261048a575163ffffffff8116810361048a5790565b90600163ffffffff809316019182116106d157565b90805115612ecc5780602080612e1c93518301019101612dd0565b612e2581613f48565b90612e36825165ffffffffffff1690565b9065ffffffffffff8085169216828114612ec05782119182612e6c575b5050612e63575061091790613cf8565b60209150015190565b909150612e7a600a546123df565b63ffffffff831614918215612e93575b50505f80612e53565b612eb89192506125b1612ea8612ead92612dec565b613f48565b65ffffffffffff1690565b115f80612e8a565b50505060209150015190565b5061091790613cf8565b90805115612f815780602080612ef193518301019101612dd0565b612efa81613fcd565b90612f0b825165ffffffffffff1690565b9065ffffffffffff8085169216828114612ec05782119182612f38575b5050612e63575061091790613dbf565b909150612f46600c546123df565b63ffffffff831614918215612f5f575b50505f80612f28565b612f799192506125b1612f74612ead92612dec565b613fcd565b115f80612f56565b5061091790613dbf565b9180511561304d5780602080612fa693518301019101612dd0565b91612fb18382614048565b92612fc2845165ffffffffffff1690565b9065ffffffffffff80851692168281146130415782119182612ff8575b5050612fef576109179250613e7f565b50506020015190565b90915061300583546123df565b63ffffffff83161491821561301e575b50505f80612fdf565b6130399192506125b1613033612ead92612dec565b85614048565b115f80613015565b50505050506020015190565b5061091791613e7f565b335f9081527f03b26b53c87faa1058f30bb5d2fee64f717719a0d9b7e4f4df027aa5e9b6ed69602052604090207fbae4ee3de6c709ff9a002e774c5b78cb381560b219213c88ae0f1e207c03c0239060ff905b541615611fe75750565b335f9081527fe41986b390c4ce6791b87f7423b5fab7a81a0e6d89660b6264f697d008b2243a602052604090207fc6aaadd7371d5e8f9ed6849dd66a66573a3ba37167d03f4352c9ba5693678fac9060ff906130aa565b335f9081527f0287ab4cb376ea253d7b2ce0c2cbf458f7deae9458470d74afdfbbee484e9540602052604090207f9c56d972d63cbb4195b3c1484691dfc220fa96a4c47e7b6613bd82a022029e069060ff906130aa565b5f8181525f8051602061498d83398151915260209081526040808320338452909152902060ff906130aa565b6001600160a01b0381165f9081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d60205260409020545f8051602061498d8339815191529060ff16613239575f808052602091825260408082206001600160a01b038516835290925220805460ff1916600117905533906001600160a01b03165f7f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d8180a4600190565b50505f90565b6001600160a01b0381165f9081527f03b26b53c87faa1058f30bb5d2fee64f717719a0d9b7e4f4df027aa5e9b6ed69602052604090207fbae4ee3de6c709ff9a002e774c5b78cb381560b219213c88ae0f1e207c03c023905f8051602061498d8339815191529060ff905b541661330e575f828152602091825260408082206001600160a01b038616835290925220805460ff1916600117905533916001600160a01b0316907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d5f80a4600190565b5050505f90565b6001600160a01b0381165f9081527f0287ab4cb376ea253d7b2ce0c2cbf458f7deae9458470d74afdfbbee484e9540602052604090207f9c56d972d63cbb4195b3c1484691dfc220fa96a4c47e7b6613bd82a022029e06905f8051602061498d8339815191529060ff906132aa565b6001600160a01b0381165f9081527fe41986b390c4ce6791b87f7423b5fab7a81a0e6d89660b6264f697d008b2243a602052604090207fc6aaadd7371d5e8f9ed6849dd66a66573a3ba37167d03f4352c9ba5693678fac905f8051602061498d8339815191529060ff906132aa565b6001600160a01b0381165f9081527f2d4ccbfe9f7672a6f2537c1e5bce6adacb73706879154bbab6ce096012d67216602052604090207f4a634bc14d77baf979756509ef4298c6f6318af357828612545267ee2eb79233905f8051602061498d8339815191529060ff906132aa565b5f8181525f8051602061498d833981519152602081815260408084206001600160a01b038716855290915290912060ff906132aa565b5f8181525f8051602061498d833981519152602081815260408084206001600160a01b03871685529091529091205460ff161561330e575f828152602091825260408082206001600160a01b038616835290925220805460ff1916905533916001600160a01b0316907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b5f80a4600190565b6040516323b872dd60e01b60208201526001600160a01b03928316602482015292909116604483015260648083019390935291815260a08101918183106001600160401b0384111761083b576108a9926040526140b0565b600b54811015612a8057600b5f525f8051602061496d83398151915201905f90565b600d54811015612a8057600d5f525f8051602061494d83398151915201905f90565b8054821015612a80575f5260205f2001905f90565b600d54600160401b81101561083b576001810180600d55811015612a8057600d5f525f8051602061494d8339815191520155565b600b54600160401b81101561083b576001810180600b55811015612a8057600b5f525f8051602061496d8339815191520155565b90815491600160401b83101561083b57826136669160016108a9950181556135c6565b90919082549060031b91821b915f19901b1916179055565b919091600d9081548015613729575b50613696614185565b509290918154926136a5613b9d565b9481613714575b50156136f157505f1982018281116106d15781541115612a80575f527fd7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb4018390559190565b613705926001600160d01b0316915061439f565b5050613710836135db565b9190565b65ffffffffffff83811691161490505f6136ac565b600160401b81101561083b5760018101808455811015612a80575f908382525f8051602061494d83398151915201555f61368d565b919091600b9081548015613805575b506137766141f0565b50929091815492613785613c16565b94816137f0575b50156137d157505f1982018281116106d15781541115612a80575f527f0175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db8018390559190565b6137e5926001600160d01b0316915061449f565b50506137108361360f565b65ffffffffffff83811691161490505f61378c565b600160401b81101561083b5760018101808455811015612a80575f908382525f8051602061496d83398151915201555f61376d565b909291926001820190815480156138c8575b50846138578461423a565b5094909284549361386783613c8a565b96816138b3575b5015613890575050505f1981019081116106d1576136668591613710936135c6565b6137109492936138ac926001600160d01b039091169190614549565b5050613643565b65ffffffffffff83811691161490505f61386e565b600160401b81101561083b578060016138e492018455836135c6565b8154905f199060031b1b191690555f61384c565b51906108a9826107fc565b908161016091031261048a5761391761087c565b9061392181612ad7565b825261392f60208201612ad7565b6020830152613940604082016138f8565b604083015261395160608201612ab7565b606083015261396260808201612ab7565b608083015260a081015160a083015261397d60c08201612ad7565b60c083015261398e60e08201612ad7565b60e08301526101006139a1818301612ad7565b908301526101206139b3818301612ad7565b908301526139c5610140809201612ad7565b9082015290565b5f8051602061492d833981519152546001600160a01b031633036139ec57565b60405163118cdaa760e01b8152336004820152602490fd5b9080821015613a11575090565b905090565b8115612915570490565b9091828202915f1984820993838086109503948086039514613aa55784831115613a9357829109815f038216809204600280826003021880830282030280830282030280830282030280830282030280830282030280920290030293600183805f03040190848311900302920304170290565b60405163227bc15360e01b8152600490fd5b5050906109179250613a16565b60405163a9059cbb60e01b60208201526001600160a01b03909216602483015260448083019390935291815260808101916001600160401b0383118284101761083b576108a9926040526140b0565b90613b0a61291a565b821015613b8b575f82815260096020908152604080832033845290915290205460ff16613b7957613b3b3383612b97565b918215613b67575f9081526009602090815260408083203384529091529020805460ff19166001179055565b6040516366c0bcbf60e11b8152600490fd5b604051630c8d9eab60e31b8152600490fd5b60405163d5b25b6360e01b8152600490fd5b600c5480613bdd57505f5b6001600160d01b03811615613bd857600d54811015612a8057600d5f525f8051602061494d833981519152015490565b505f90565b805f198101116106d157600c5f527fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c6015460301c613ba8565b600a5480613c5157505f5b6001600160d01b03811615613bd857600b54811015612a8057600b5f525f8051602061496d833981519152015490565b805f198101116106d157600a5f527fc65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a7015460301c613c21565b805480613cb957505f5b6001600160d01b03811615613239576001613caf92016135c6565b90549060031b1c90565b5f199080828101116106d157825f5260205f2001015460301c613c94565b9190600181018091116106d157600182018092116106d15761091792613a20565b600a54905f829160058411613d66575b613d129350614755565b80613d3557505f5b6001600160d01b03811615613bd857613caf61091791613582565b613d5a613d44613d61926123df565b600a5f525f8051602061490d8339815191520190565b5460301c90565b613d1a565b9192613d718161461c565b81039081116106d157613d1293600a5f5265ffffffffffff80835f8051602061490d833981519152015416908516105f14613dad575091613d08565b929150613db99061240d565b90613d08565b600c54905f829160058411613e26575b613dd993506147be565b80613dfc57505f5b6001600160d01b03811615613bd857613caf610917916135a4565b613d5a613e0b613e21926123df565b600c5f525f805160206148ed8339815191520190565b613de1565b9192613e318161461c565b81039081116106d157613dd993600c5f5265ffffffffffff80835f805160206148ed833981519152015416908516105f14613e6d575091613dcf565b929150613e799061240d565b90613dcf565b908154905f829160058411613ee2575b613e9a935084614827565b80613ec257505f905b6001600160d01b0382161561323957610917916001613caf92016135c6565b613d5a613ed1613edc926123df565b835f5260205f200190565b90613ea3565b9192613eed8161461c565b81039081116106d157613e9a93855f5265ffffffffffff808360205f20015416908516105f14613f1e575091613e8f565b929150613f2a9061240d565b90613e8f565b60405190613f3d82610840565b5f6020838281520152565b613f50613f30565b50613f59613f30565b50600a54811015612a8057613f8090600a5f525f8051602061490d83398151915201614161565b65ffffffffffff81511690602060018060d01b0391015116600b54811015612a8057600b5f525f8051602061496d833981519152015460405191613fc383610840565b8252602082015290565b613fd5613f30565b50613fde613f30565b50600c54811015612a805761400590600c5f525f805160206148ed83398151915201614161565b65ffffffffffff81511690602060018060d01b0391015116600d54811015612a8057600d5f525f8051602061494d833981519152015460405191613fc383610840565b9061407161406b6140929261405b613f30565b50614064613f30565b50846135c6565b50614161565b91600165ffffffffffff845116936020828060d01b039101511691016135c6565b905490604051926140a284610840565b835260031b1c602082015290565b5f806140d89260018060a01b03169360208151910182865af16140d1612af7565b9083614889565b8051908115159182614106575b50506140ee5750565b60249060405190635274afe760e01b82526004820152fd5b6141199250602080918301019101612ac2565b155f806140e5565b9190600181018091116106d157600182018092116106d157614144828285613a20565b92821561291557096141535790565b600181018091116106d15790565b9060405161416e81610840565b915465ffffffffffff8116835260301c6020830152565b600c548061419657505f905f905f90565b805f198101116106d1577fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c66141cf91600c5f5201614161565b9065ffffffffffff82511691602060018060d01b0391015116906001929190565b600a548061420157505f905f905f90565b805f198101116106d1577fc65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a76141cf91600a5f5201614161565b80548061424b5750505f905f905f90565b5f199080828101116106d1576141cf925f5260205f200101614161565b60ff5f805160206149cd8339815191525460401c161561428457565b604051631afcd79f60e31b8152600490fd5b600c5490600160401b82101561083b576001820180600c55821015612a8057600c5f52805160209091015160301b65ffffffffffff191665ffffffffffff91909116175f805160206148ed83398151915290910155565b600a5490600160401b82101561083b576001820180600a55821015612a8057600a5f52805160209091015160301b65ffffffffffff191665ffffffffffff91909116175f8051602061490d83398151915290910155565b8054600160401b81101561083b57614361916001820181556135c6565b61438c57815160209092015160301b65ffffffffffff191665ffffffffffff92909216919091179055565b634e487b7160e01b5f525f60045260245ffd5b600c54919291908115614476576143c06143bb613e0b846123df565b614161565b805165ffffffffffff83811694911684106144645785602093613710956143f0612ead865165ffffffffffff1690565b0361442c5750614405613e0b61441e936123df565b9065ffffffffffff82549181199060301b169116179055565b01516001600160d01b031690565b905061445f915061444c61443e61089c565b65ffffffffffff9092168252565b6001600160d01b03871681850152614296565b61441e565b604051632520601d60e01b8152600490fd5b61449a915061448661443e61089c565b6001600160d01b0384166020820152614296565b5f9190565b600a54919291908115614525576144bb6143bb613d44846123df565b805165ffffffffffff83811694911684106144645785602093613710956144eb612ead865165ffffffffffff1690565b036145005750614405613d4461441e936123df565b905061445f915061451261443e61089c565b6001600160d01b038716818501526142ed565b61449a915061453561443e61089c565b6001600160d01b03841660208201526142ed565b8054929392919082156145f8576145656143bb613ed1856123df565b90614576825165ffffffffffff1690565b65ffffffffffff84811691168110614464576137109460209488926145a4612ead875165ffffffffffff1690565b036145c5575061441e926145ba614405926123df565b905f5260205f200190565b91505061445f916145e56145d761089c565b65ffffffffffff9093168352565b6001600160d01b03881682860152614344565b61449a92506146086145d761089c565b6001600160d01b0385166020830152614344565b8015613bd857806146ee6146e76146dd6146d36146c96146bf6146b56146ab60016109179a5f908b60801c80614749575b508060401c8061473c575b508060201c8061472f575b508060101c80614722575b508060081c80614715575b508060041c80614708575b508060021c806146fb575b50821c6146f4575b811c1b6146a4818b613a16565b0160011c90565b6146a4818a613a16565b6146a48189613a16565b6146a48188613a16565b6146a48187613a16565b6146a48186613a16565b6146a48185613a16565b8092613a16565b90613a04565b8101614697565b600291509101905f61468f565b600491509101905f614684565b600891509101905f614679565b601091509101905f61466e565b602091509101905f614663565b604091509101905f614658565b9150506080905f61464d565b905b82811061476357505090565b9091808216906001818418811c83018093116106d157600a5f5265ffffffffffff80845f8051602061490d833981519152015416908616105f146147ab575050915b90614757565b9093925081018091116106d157906147a5565b905b8281106147cc57505090565b9091808216906001818418811c83018093116106d157600c5f5265ffffffffffff80845f805160206148ed833981519152015416908616105f14614814575050915b906147c0565b9093925081018091116106d1579061480e565b91905b8382106148375750505090565b909192808316906001818518811c83018093116106d157855f5265ffffffffffff808460205f20015416908516105f14614876575050925b919061482a565b9094935081018091116106d1579161486f565b906148b0575080511561489e57805190602001fd5b604051630a12f52160e11b8152600490fd5b815115806148e3575b6148c1575090565b604051639996b31560e01b81526001600160a01b039091166004820152602490fd5b50803b156148b956fedf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c7c65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a89016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300d7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb50175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db902dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268009b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a26469706673582212201a50e827895a2cd73f911caab81ce70f82197386d81e8f679668f87cbe90c41164736f6c63430008190033","sourceMap":"981:14960:95:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;;;;;-1:-1:-1;;981:14960:95;;;;;;;;;;;;;;;;;;-1:-1:-1;;;3551:47:23;;;:87;;;;981:14960:95;;;;;;;;;;3551:87:23;-1:-1:-1;;;1133:40:29;;-1:-1:-1;3551:87:23;;;981:14960:95;-1:-1:-1;981:14960:95;;;;;;;;-1:-1:-1;;981:14960:95;;;;;;;966:38:96;981:14960:95;;;;;;;;;-1:-1:-1;;981:14960:95;;;;;;;821:37:96;981:14960:95;;;;-1:-1:-1;;;;;981:14960:95;;;;;:::o;:::-;;;;;;-1:-1:-1;;981:14960:95;;;;;;;;;:::i;:::-;;;3217:103:28;;;:::i;:::-;-1:-1:-1;;;;;981:14960:95;;5525:21;5521:75;;5634:10;981:14960;;;;5606:15:96;981:14960:95;;;;;5606:33:96;;;:::i;:24::-;:33;:::i;:::-;5610:35:95;;5606:88;;1057:70:87;5173:21:96;;:::i;:::-;4803:22;;:::i;:::-;1057:70:87;;;:::i;:::-;5801:20:95;;;5797:82;;5904:43;;;;:::i;:::-;3282:1:28;;1805;-1:-1:-1;;;;;;;;;;;981:14960:95;3716:283:28;3282:1;981:14960:95;;;;;;;;;;;;;;;;;;5797:82;981:14960;;-1:-1:-1;;;;;;5844:24:95;;981:14960;;5844:24;5606:88;981:14960;;-1:-1:-1;;;5668:15:95;;981:14960;;5668:15;5521:75;981:14960;;-1:-1:-1;;;5569:16:95;;981:14960;;5569:16;981:14960;;;;;;-1:-1:-1;;981:14960:95;;;;;;-1:-1:-1;981:14960:95;-1:-1:-1;;;;;;;;;;;981:14960:95;;;4919:24:23;981:14960:95;-1:-1:-1;981:14960:95;4919:24:23;981:14960:95;;;;;;;;;;;;;-1:-1:-1;;981:14960:95;;;;;;;;-1:-1:-1;;;;;981:14960:95;;;;;;;;;;;;;;-1:-1:-1;;981:14960:95;;;;4084:14:96;;:::i;:::-;4112:10;;4108:65;;4190:17;981:14960:95;;;;;;;;;;;;;;;;4210:27:96;981:14960:95;;;4210:27:96;;:::i;:::-;981:14960:95;;;;;;;4189:60:96;981:14960:95;4189:60:96;;:::i;:::-;981:14960:95;;;;;;;;;;;;;;;;;;:::i;4108:65:96:-;981:14960:95;;-1:-1:-1;;;4145:17:96;;981:14960:95;;4145:17:96;981:14960:95;;;;-1:-1:-1;;;;;981:14960:95;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;981:14960:95;;;;;;;;;;;;;;;:::o;:::-;;;;;;-1:-1:-1;;981:14960:95;;;;;;:::i;:::-;-1:-1:-1;;;;;981:14960:95;;;;;;;;;;;;;;:::i;:::-;3217:103:28;;;;:::i;:::-;1673:7:71;-1:-1:-1;;;;;981:14960:95;1659:10:71;:21;1655:71;;-1:-1:-1;;;;;;;;;;;981:14960:95;;;;;;;6431:44:25;;;;;981:14960:95;6427:105:25;;;;;-1:-1:-1;15924:8:95;;6427:105:25;981:14960:95;;-1:-1:-1;;;6498:23:25;;981:14960:95;;6498:23:25;6431:44;981:14960:95;;;;6450:25:25;;;-1:-1:-1;6431:44:25;;;;;1655:71:71;981:14960:95;;-1:-1:-1;;;1703:12:71;;981:14960:95;;1703:12:71;981:14960:95;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;981:14960:95;;;;;;;:::o;:::-;;:::i;:::-;;;;;;;-1:-1:-1;;;;;981:14960:95;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;981:14960:95;;;;;;;:::o;:::-;;;;;;;;;;-1:-1:-1;;;;;981:14960:95;;;;;;;:::o;:::-;;;;;;;:::i;:::-;:::o;:::-;-1:-1:-1;;;;;981:14960:95;;;;;;-1:-1:-1;;981:14960:95;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;981:14960:95;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;;-1:-1:-1;;981:14960:95;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;981:14960:95;;;;;;;5383:59:96;981:14960:95;;;;;;:::i;:::-;-1:-1:-1;;;;;981:14960:95;;;-1:-1:-1;981:14960:95;;;5383:15:96;981:14960:95;;;;;5383:59:96;:::i;:::-;981:14960:95;;;;;;;;;;;;-1:-1:-1;;981:14960:95;;;;;;655:32:71;-1:-1:-1;;;;;981:14960:95;;;;;;;;;;;;-1:-1:-1;;981:14960:95;;;;5350:25:23;981:14960:95;;;;;;;:::i;:::-;;-1:-1:-1;981:14960:95;-1:-1:-1;;;;;;;;;;;981:14960:95;;3202:4:23;4919:24;981:14960:95;-1:-1:-1;981:14960:95;4919:24:23;981:14960:95;3202:4:23;:::i;:::-;5350:25;:::i;:::-;981:14960:95;;;;;;;-1:-1:-1;;981:14960:95;;;;;;;;;:::i;:::-;966:10:27;-1:-1:-1;;;;;981:14960:95;;6441:34:23;6437:102;;6549:37;981:14960:95;;;6549:37:23;:::i;6437:102::-;981:14960:95;;-1:-1:-1;;;6498:30:23;;981:14960:95;;6498:30:23;981:14960:95;;;;;;-1:-1:-1;;981:14960:95;;;;;1524:22;981:14960;;;;1524:46;;;981:14960;;;;;;;;;;;1524:46;-1:-1:-1;1550:20:95;981:14960;;;;;1524:46;;981:14960;;;;;;;:::o;:::-;;;;;;-1:-1:-1;;981:14960:95;;;;;;;;;:::i;:::-;3217:103:28;;:::i;:::-;3202:4:23;;:::i;:::-;-1:-1:-1;981:14960:95;;;;;;;;;;;9542:26;9538:76;;-1:-1:-1;;981:14960:95;;;;;-1:-1:-1;981:14960:95;;;;;;9665:27;;981:14960;;9665:27;1805:1:28;-1:-1:-1;;;;;;;;;;;981:14960:95;;9538:76;981:14960;;-1:-1:-1;;;9591:12:95;;981:14960;;9591:12;981:14960;;;;;;-1:-1:-1;;981:14960:95;;;;;;1718:31:96;981:14960:95;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3217:103:28;;:::i;:::-;-1:-1:-1;;;;;981:14960:95;;;;;3474:24;;3470:81;;-1:-1:-1;981:14960:95;;;;3565:55;;;981:14960;3561:118;;981:14960;;-1:-1:-1;;;3713:43:95;;;3750:4;3713:43;;;981:14960;;;;;;;;;;;;;;;;;;;;;;;;;3713:43;;;;;;;;;;-1:-1:-1;3713:43:95;;;981:14960;;3829:6;981:14960;;;3750:4;;3802:10;;3829:6;;:::i;:::-;-1:-1:-1;981:14960:95;;;3864:43;;;3750:4;3864:43;;;981:14960;;;;;;;;;;3864:43;981:14960;;;;;;3864:43;981:14960;;;;;3864:43;;;;;;;:59;:43;-1:-1:-1;3864:43:95;;;981:14960;3864:59;;;:::i;:::-;3938:20;;;3934:79;;981:14960;;;;;4027:64;;981:14960;4023:123;;5173:21:96;;981:14960:95;5173:21:96;4502:93:95;5173:21:96;;:::i;:::-;4803:22;4426:66:95;4803:22:96;;:::i;:::-;4349:67:95;390:70:87;;;;;:::i;:::-;837:15:62;4385:30:95;837:15:62;819:34;837:15;819:34;:::i;:::-;4385:30:95;;:::i;:::-;4349:67;;:::i;:::-;837:15:62;;4463:28:95;837:15:62;819:34;837:15;819:34;:::i;4463:28:95:-;4426:66;;:::i;:::-;-1:-1:-1;;;;;;;981:14960:95;;;;;;5606:15:96;981:14960:95;;;;;837:15:62;4553:41:95;837:15:62;5606:33:96;:24;819:34:62;837:15;819:34;:::i;:::-;-1:-1:-1;;;;;981:14960:95;;;;;;;5606:15:96;981:14960:95;;;;;;;5606:33:96;4553:41:95;:::i;:::-;4502:93;;:::i;:::-;-1:-1:-1;;981:14960:95;;;;;;;;;;;3802:10;;4611:62;;981:14960;;4611:62;3282:1:28;1805;-1:-1:-1;;;;;;;;;;;981:14960:95;3716:283:28;3282:1;981:14960:95;;;;;;;;;;;;;;;;;;;4023:123;981:14960;;-1:-1:-1;;;4114:21:95;;;4027:64;5173:21:96;4045:31:95;5173:21:96;;;:::i;4045:31:95:-;981:14960;;-1:-1:-1;4027:64:95;;3934:79;-1:-1:-1;981:14960:95;;-1:-1:-1;;;3981:21:95;;;3864:43;;;;;;-1:-1:-1;3864:43:95;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;;:::i;3713:::-;3829:6;3713:43;;;;;;;;;;;;;;;:::i;:::-;;;;;3561:118;-1:-1:-1;981:14960:95;;-1:-1:-1;;;3643:25:95;;;3565:55;-1:-1:-1;3609:10:95;981:14960;;;;3586:22;981:14960;;;;;;;;3585:35;3565:55;;3470:81;981:14960;;-1:-1:-1;;;3521:19:95;;;981:14960;;;;;;-1:-1:-1;;981:14960:95;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;981:14960:95;;;;;1805:27:96;981:14960:95;;;;;;;;;;;;;;;-1:-1:-1;;981:14960:95;;;;;;1968:34:96;981:14960:95;;;;;;;;;;;;;;;-1:-1:-1;;981:14960:95;;;;;;;;;;:::i;:::-;;;;;-1:-1:-1;;;;;981:14960:95;;;;;;;;;:::i;:::-;;;;;4622:48:96;981:14960:95;;;:::i;:::-;4622:48:96;;:::i;981:14960:95:-;;;;;;-1:-1:-1;;981:14960:95;;;;;;;;;:::i;:::-;3217:103:28;;:::i;:::-;3202:4:23;;:::i;:::-;-1:-1:-1;981:14960:95;;;;;;;;;;;;;10370:24;10366:74;;-1:-1:-1;;981:14960:95;;;;;;;;-1:-1:-1;981:14960:95;;;;;;10489:25;;981:14960;;10489:25;3282:1:28;1805;-1:-1:-1;;;;;;;;;;;981:14960:95;3716:283:28;981:14960:95;;;;;;-1:-1:-1;;981:14960:95;;;;;-1:-1:-1;;;;;;;;;;;;;;;;981:14960:95;;;;;;;;;;;;;;-1:-1:-1;;981:14960:95;;;;;;:::i;:::-;;;;;;:::i;:::-;-1:-1:-1;;;;;981:14960:95;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;8837:64:25;;981:14960:95;;;;;;734:29:71;730:87;;981:14960:95;;;;;6431:44:25;;;;;981:14960:95;6427:105:25;;;6656:20;981:14960:95;6656:20:25;981:14960:95;1167:340:71;981:14960:95;;;;-1:-1:-1;;;;;981:14960:95;;;;;6575:22:25;-1:-1:-1;;;;;;;;;;;;;;981:14960:95;;;;;;;;;6575:22:25;1167:340:71;:::i;:::-;-1:-1:-1;;;;;;;;;;;981:14960:95;;-1:-1:-1;;981:14960:95;;;;;-1:-1:-1;;;;;981:14960:95;;;;;;;;;;;;;6656:20:25;;;;981:14960:95;6431:44:25;981:14960:95;;;;;-1:-1:-1;6450:25:25;6431:44;;;730:87:71;981:14960:95;;-1:-1:-1;;;786:20:71;;981:14960:95;;786:20:71;981:14960:95;;;;;;-1:-1:-1;;981:14960:95;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;-1:-1:-1;;981:14960:95;;;;;;-1:-1:-1;981:14960:95;2431:59:96;981:14960:95;;;;-1:-1:-1;981:14960:95;;;;;;;;;;;;;;-1:-1:-1;;981:14960:95;;;;3875:17:96;981:14960:95;;3895:30:96;981:14960:95;;;;;3895:14:96;;;:::i;:::-;981:14960:95;;;3895:30:96;;:::i;:::-;981:14960:95;;;;;;;3874:63:96;981:14960:95;3874:63:96;;:::i;:::-;981:14960:95;;;;;;;;;;;;;-1:-1:-1;;981:14960:95;;;;;;1200:42:96;-1:-1:-1;;;;;981:14960:95;;;;;;;;;;;;-1:-1:-1;;981:14960:95;;;;;;2136:32:96;981:14960:95;;;;;;;;;;;;;;;;;;-1:-1:-1;;981:14960:95;;;;2303:62:24;;:::i;:::-;-1:-1:-1;;;;;;;;;;;981:14960:95;;-1:-1:-1;;;;;;981:14960:95;;;;;;;-1:-1:-1;;;;;981:14960:95;3975:40:24;981:14960:95;;3975:40:24;981:14960:95;;;;;;;-1:-1:-1;;981:14960:95;;;;;;;;;;;:::i;:::-;3217:103:28;;:::i;:::-;7131:7:95;981:14960;7117:21;;-1:-1:-1;;;;;981:14960:95;;-1:-1:-1;;;;;981:14960:95;;;7117:21;:10;:21;7113:71;;7218:14;;:::i;:::-;7265:25;;;;:::i;:::-;7305:17;;;;:53;;;981:14960;7304:87;;;;981:14960;7300:146;;981:14960;5173:21:96;9310:48:95;5173:21:96;;;:::i;:::-;7540:17:95;7528:30;7540:17;;;:::i;:::-;981:14960;;7528:11;981:14960;;;;;;;7528:30;981:14960;;7572:29;;;;;7642:30;;;;;:::i;:::-;7702:32;;;;:::i;:::-;7752:17;;;7748:384;;7568:1615;;;;;;;9197:17;9193:102;;7568:1615;981:14960;;;;;;;;;;;;;;;;;;;;;;;9310:48;3282:1:28;1805;-1:-1:-1;;;;;;;;;;;981:14960:95;3716:283:28;3282:1;981:14960:95;;;;;;;;;;;;;9193:102;-1:-1:-1;981:14960:95;9270:13;;981:14960;;9230:18;;981:14960;;-1:-1:-1;;;;;981:14960:95;;;9230:18;7556:1;981:14960;-1:-1:-1;;;;;981:14960:95;9270:13;;:::i;:::-;9193:102;;7748:384;8045:29;7813:50;7962:65;7813:50;7998:28;7914:29;7813:50;8057:16;7813:50;8077:40;7813:50;;;:::i;:::-;7914:29;;;:::i;:::-;837:15:62;819:34;837:15;819:34;:::i;:::-;7998:28:95;;:::i;8077:40::-;8057:16;;:::i;8045:29::-;981:14960;7748:384;;;;;;;7568:1615;8185:26;;;;981:14960;;7528:11;981:14960;;;;;;;8185:26;981:14960;8250:27;:45;:27;;;;;:::i;:45::-;8325:32;;;;;:::i;:::-;8375:17;;8371:802;;7568:1615;;;;;;;;8371:802;9096:26;8436:50;;8537:53;8436:50;8637:54;8436:50;8637:29;8436:50;9125:33;8436:50;;;;:::i;:::-;8537:53;;;;;;:::i;:::-;8637:29;;;;:::i;:::-;:54;:::i;:::-;8714:33;;;;8710:194;;8371:802;8922:65;837:15:62;8958:28:95;9038:40;837:15:62;;;819:34;837:15;819:34;:::i;9038:40:95:-;9005:30;9017:17;;;:::i;9005:30::-;981:14960;9125:33;:::i;:::-;9096:26;981:14960;;7528:11;981:14960;;;;;;;9096:26;981:14960;8371:802;;;;;;;8710:194;8797:33;8771:59;8922:65;8797:33;;;9038:40;8797:33;;;:::i;:::-;8771:59;;:::i;:::-;8852:33;;-1:-1:-1;8852:33:95;;-1:-1:-1;8710:194:95;;7300:146;981:14960;;-1:-1:-1;;;7414:21:95;;981:14960;;7414:21;7304:87;7363:28;;;;7304:87;;7305:53;7341:17;;;;:::i;:::-;7326:32;;7305:53;;7113:71;981:14960;;-1:-1:-1;;;7161:12:95;;981:14960;;7161:12;981:14960;;;;;;-1:-1:-1;;981:14960:95;;;;4384:17:96;981:14960:95;;;;;;;4405:14:96;;;:::i;:::-;4384:17;981:14960:95;;;;;;;4404:36:96;981:14960:95;;;4404:36:96;;:::i;981:14960:95:-;;;;;;-1:-1:-1;;981:14960:95;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;981:14960:95;;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;981:14960:95;2307:68:96;981:14960:95;;;;;-1:-1:-1;981:14960:95;;;;;;;;;;;;;;;;;-1:-1:-1;;981:14960:95;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;-1:-1:-1;;981:14960:95;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;981:14960:95;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6491:14;981:14960;;6491:14;;:::i;981:14960::-;;;;;4994:47:96;981:14960:95;;;:::i;:::-;4994:47:96;;:::i;981:14960:95:-;;;;;;;;;;;;;;;;;;;;:::i;:::-;3217:103:28;;:::i;:::-;10932:22:95;981:14960;;;;;10928:89;;981:14960;;-1:-1:-1;;;11032:49:95;;-1:-1:-1;;;;;981:14960:95;;;11032:49;;;981:14960;;;;;;;;;;;;;;;11032:49;11042:17;;;981:14960;11032:49;;;;;;;-1:-1:-1;11032:49:95;;;981:14960;11031:50;;11027:102;;981:14960;;-1:-1:-1;;;11143:34:95;;981:14960;;;;;11143:34;981:14960;11143:34;981:14960;;11143:34;;;;;;;-1:-1:-1;11143:34:95;;;981:14960;11189:4;;;981:14960;;11143:51;11139:107;;-1:-1:-1;10932:22:95;981:14960;;-1:-1:-1;;;;;981:14960:95;;;;-1:-1:-1;;;;;;981:14960:95;;;;;;;-1:-1:-1;;;981:14960:95;;;11334:24;-1:-1:-1;;11334:24:95;3282:1:28;1805;-1:-1:-1;;;;;;;;;;;981:14960:95;3716:283:28;11139:107:95;981:14960;;-1:-1:-1;;;11217:18:95;;;11143:34;;;;;;;-1:-1:-1;11143:34:95;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;11027:102;-1:-1:-1;981:14960:95;;-1:-1:-1;;;11104:14:95;;;11032:49;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;10928:89;981:14960;;-1:-1:-1;;;10977:29:95;;;981:14960;;;;;;-1:-1:-1;;981:14960:95;;;;;;1298:40:96;-1:-1:-1;;;;;981:14960:95;;;;;;;;;;;;-1:-1:-1;;981:14960:95;;;;1703:14;;:::i;:::-;5173:21:96;;:::i;:::-;981:14960:95;;;;1750:11;981:14960;;;;;;;;;;;;;1791:1;981:14960;;;;;;;;;1750:11;981:14960;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;981:14960:95;;;;-1:-1:-1;;;;;;;;;;;981:14960:95;;;-1:-1:-1;;;;;981:14960:95;;;;;;;;;;;;;;-1:-1:-1;;981:14960:95;;;;;;3901:31:23;981:14960:95;;;;;:::i;:::-;;;-1:-1:-1;981:14960:95;-1:-1:-1;;;;;;;;;;;981:14960:95;;;-1:-1:-1;981:14960:95;;;;;;;;;;;;;;;;;3901:31:23;981:14960:95;;;;;;;;;;;;;;;;-1:-1:-1;;981:14960:95;;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;981:14960:95;5606:15:96;981:14960:95;;;5606:33:96;981:14960:95;-1:-1:-1;981:14960:95;5606:33:96;:::i;981:14960:95:-;;;;;;-1:-1:-1;;981:14960:95;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;981:14960:95;;;;-1:-1:-1;981:14960:95;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;416:25:75;;;;477:31;981:14960:95;416:25:75;;:::i;:::-;981:14960:95;;;;;;;;;477:31:75;;;981:14960:95;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;981:14960:95;;;;;;;;;;;;;;477:31:75;981:14960:95;477:31:75;;;;;;;:::i;:::-;518:79;;;981:14960:95;518:79:75;;981:14960:95;;;;;;-1:-1:-1;;981:14960:95;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;981:14960:95;;;;;;;;;;;;;;;;;-1:-1:-1;;981:14960:95;;;;;;;1109:35:96;981:14960:95;;;;;;;;;-1:-1:-1;;981:14960:95;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;3217:103:28;;:::i;:::-;3202:4:23;;:::i;:::-;-1:-1:-1;;;;;981:14960:95;;;9907:21;;9903:75;;-1:-1:-1;981:14960:95;;;9992:22;981:14960;;;;;;;;;;;;;9992:41;9988:91;;-1:-1:-1;;;;;981:14960:95;;;;;3586:22;981:14960;;;;;10145:44;;;;10089:40;;:31;981:14960;;;;;;;;;;;;;;10089:40;981:14960;;;;;;;;;;;;;;;10145:44;;;;3282:1:28;1805;-1:-1:-1;;;;;;;;;;;981:14960:95;3716:283:28;9903:75:95;981:14960;;-1:-1:-1;;;9951:16:95;;981:14960;;9951:16;981:14960;;;;;;-1:-1:-1;;981:14960:95;;;;;2666:94:96;981:14960:95;;;;;:::i;:::-;;;-1:-1:-1;981:14960:95;2666:94:96;981:14960:95;;;-1:-1:-1;981:14960:95;;;;;;;;;;;;;;;;;2666:94:96;981:14960:95;;;;;;;;;;;;;-1:-1:-1;;981:14960:95;;;;;;2816:92:96;981:14960:95;;;;;:::i;:::-;;;-1:-1:-1;981:14960:95;2816:92:96;981:14960:95;;;-1:-1:-1;981:14960:95;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3217:103:28;;:::i;:::-;11459:20:95;981:14960;;;;;11455:85;;-1:-1:-1;;;;;981:14960:95;;;;;;11550:312;;981:14960;11459:20;981:14960;;-1:-1:-1;;;;981:14960:95;-1:-1:-1;;;981:14960:95;;;11872:27;11915:20;-1:-1:-1;11915:20:95;;3282:1:28;1805;-1:-1:-1;;;;;;;;;;;981:14960:95;3716:283:28;11550:312:95;981:14960;;-1:-1:-1;;;11597:45:95;;-1:-1:-1;;;;;981:14960:95;;11597:45;;;981:14960;;;11597:45;;981:14960;;;;;;11597:45;11607:15;;;981:14960;11597:45;;;;;;;-1:-1:-1;11597:45:95;;;11550:312;11596:46;;11592:104;;981:14960;;-1:-1:-1;;;11714:30:95;;;981:14960;11714:30;981:14960;11714:30;;;;;;;;-1:-1:-1;11714:30:95;;;11550:312;11756:4;;;981:14960;;11714:47;11710:109;;-1:-1:-1;11459:20:95;981:14960;;-1:-1:-1;;;;;;981:14960:95;-1:-1:-1;;;;;981:14960:95;;;;;;;;;11550:312;;;;;;11710:109;981:14960;;-1:-1:-1;;;11788:16:95;;;11714:30;;;;;;;-1:-1:-1;11714:30:95;;;;;;:::i;:::-;;;;;;11592:104;981:14960;;-1:-1:-1;;;11669:12:95;;981:14960;;11669:12;11597:45;;;;;;;;;;;;;;:::i;:::-;;;;11455:85;981:14960;;-1:-1:-1;;;11502:27:95;;;981:14960;;;;;;-1:-1:-1;;981:14960:95;;;;;;;;;:::i;:::-;;;3217:103:28;;;:::i;:::-;-1:-1:-1;;;;;981:14960:95;;;;;6112:23;;6108:79;;6273:6;981:14960;6206:13;;;;:::i;:::-;981:14960;;;-1:-1:-1;981:14960:95;;;;6273:6;:::i;:::-;981:14960;;;;;;;;;;;;6302:10;;6296:43;;981:14960;6296:43;1805:1:28;-1:-1:-1;;;;;;;;;;;981:14960:95;;;;;;;;;;;;;;6108:79;981:14960;;-1:-1:-1;;;6158:18:95;;981:14960;;6158:18;981:14960;;;;;;-1:-1:-1;;981:14960:95;;;;;;-1:-1:-1;981:14960:95;2546:64:96;981:14960:95;;;;-1:-1:-1;981:14960:95;;;;;;;;;;;;;;-1:-1:-1;;981:14960:95;;;;2058:22:96;981:14960:95;;;-1:-1:-1;;;;;981:14960:95;;;;;;;;;;;;;;-1:-1:-1;;981:14960:95;;;;;5173:21:96;;:::i;981:14960:95:-;;;;;;-1:-1:-1;;981:14960:95;;;;;;3217:103:28;;:::i;:::-;966:10:27;-1:-1:-1;981:14960:95;;;;;;;;;;1109:35:96;;981:14960:95;;4468:23:23;4464:108;;981:14960:95;;;;10692:21;10688:71;;981:14960;;10805:22;981:14960;;;;;;;;10805:22;1805:1:28;-1:-1:-1;;;;;;;;;;;981:14960:95;;4464:108:23;981:14960:95;;;;4514:47:23;;;;;;966:10:27;981:14960:95;4514:47:23;;981:14960:95;;;;;4514:47:23;981:14960:95;;;;;;-1:-1:-1;;981:14960:95;;;;;4803:22:96;;:::i;981:14960:95:-;;;;;;-1:-1:-1;;981:14960:95;;;;;;;;;:::i;:::-;3123:14;;:::i;:::-;3154:24;;;:::i;:::-;3181:29;;;;;:::i;:::-;981:14960;;;;;;;3235:1;981:14960;;;;;;;3213:33;;;:::i;:::-;981:14960;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;981:14960:95;;;;1888:24:96;981:14960:95;;;-1:-1:-1;;;;;981:14960:95;;;;;;;;;;;;;;-1:-1:-1;;981:14960:95;;;;5767:26:23;981:14960:95;;;;;;;:::i;:::-;;-1:-1:-1;981:14960:95;-1:-1:-1;;;;;;;;;;;981:14960:95;;3202:4:23;4919:24;981:14960:95;-1:-1:-1;981:14960:95;4919:24:23;981:14960:95;3202:4:23;:::i;:::-;5767:26;:::i;981:14960:95:-;;;;;;-1:-1:-1;;981:14960:95;;;;;;;;;;;;;-1:-1:-1;;;;;981:14960:95;;;;;;;;;;;;-1:-1:-1;;981:14960:95;;;;;;;675:39:96;981:14960:95;;;;;;;;;-1:-1:-1;;981:14960:95;;;;;;;;;;;;;;;;;;;-1:-1:-1;;981:14960:95;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;-1:-1:-1;;;;;981:14960:95;;;;;;;;;;;;;;;:::i;:::-;1972:48;;981:14960;;;;;;;:::i;:::-;;;;;;;;;;;;;;2034:16;;2030:111;;981:14960;;2233:39;1057:70:87;2233:39:95;;4622:48:96;2196:77:95;2233:39;;;;2196:77;;:::i;:::-;2312:36;;4994:47:96;981:14960:95;2312:36;;;4994:47:96;;:::i;:::-;2389:37:95;;;4622:48:96;;:::i;:::-;1057:70:87;;:::i;:::-;981:14960:95;;;;;;;;;;;;;2030:111;2089:41;;;;-1:-1:-1;981:14960:95;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;4622:48:96;981:14960:95;2196:77;981:14960;1057:70:87;981:14960:95;;;:::i;:::-;;;;;2030:111;;;;;981:14960;;;;;;-1:-1:-1;;981:14960:95;;;;2357:1:24;981:14960:95;;;;;:::i;:::-;2303:62:24;;:::i;:::-;2357:1;:::i;981:14960:95:-;;;;;;-1:-1:-1;;981:14960:95;;;;;;;;;:::i;:::-;;;3217:103:28;;:::i;:::-;-1:-1:-1;;;;;981:14960:95;;4890:21;4886:75;;4975:11;;4971:73;;845:69:87;4803:22:96;;:::i;:::-;5173:21;;:::i;:::-;845:69:87;;;:::i;:::-;5180:10:95;981:14960;;;;5606:15:96;981:14960:95;;;;;5180:10;;;5606:33:96;;;:::i;:::-;5150:41:95;;5146:96;;5267:40;;;;;:::i;5146:96::-;981:14960;;-1:-1:-1;;;5214:17:95;;981:14960;;5214:17;4971:73;981:14960;;-1:-1:-1;;;5009:24:95;;981:14960;;5009:24;981:14960;;;;;;-1:-1:-1;;981:14960:95;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;981:14960:95;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;:::o;:::-;;7556:1;981:14960;;;;;;;:::o;:::-;;;;;;;;;;:::o;5256:193:96:-;-1:-1:-1;;;;;981:14960:95;-1:-1:-1;981:14960:95;;;5383:15:96;981:14960:95;;;;;5383:59:96;;5256:193;;5383:59;:::i;981:14960:95:-;;;;;;;;;;;:::o;:::-;;;;;;;;;;1167:340:71;;13510:30:95;1167:340:71;981:14960:95;1167:340:71;6893:76:25;;:::i;:::-;;;:::i;:::-;1805:1:28;-1:-1:-1;;;;;;;;;;;981:14960:95;-1:-1:-1;;;;;981:14960:95;;;;1376:73:71;;1167:340;981:14960:95;;;;:::i;:::-;13510:30;981:14960;;;13510:30;;;;;;:::i;:::-;981:14960;;;;-1:-1:-1;;;;;981:14960:95;13555:31;13551:88;;13653:20;;;;981:14960;;;;;;;;;;13653:25;13649:85;;13748:29;;;981:14960;;13748:29;;981:14960;13748:43;;-1:-1:-1;;;;;981:14960:95;;;13748:43;;13744:943;;1167:340:71;981:14960:95;;;15647:32;981:14960;14817:36;981:14960;;;14697:30;981:14960;;;;;;;;;;;;1398:1:71;981:14960:95;;-1:-1:-1;;;;;;981:14960:95;;;;;;-1:-1:-1;;;;;981:14960:95;;;;;;;;14697:30;13510;14747:13;;981:14960;;;;-1:-1:-1;;;;;;981:14960:95;-1:-1:-1;;;;;981:14960:95;;;;;;;;;14771:36;819:34:62;837:15;819:34;:::i;:::-;1805:1:28;981:14960:95;;-1:-1:-1;;;;981:14960:95;;;;;;-1:-1:-1;;;981:14960:95;;;;;;;;14771:36;981:14960;;;;;;1805:1:28;981:14960:95;;-1:-1:-1;;;;;981:14960:95;;;;;;-1:-1:-1;;;;;;981:14960:95;;;;;;;;14817:36;14864:42;981:14960;14883:23;;;981:14960;;;;;;;;;1398:1:71;981:14960:95;;;;;;;1398:1:71;981:14960:95;;14864:42;14917:38;981:14960;14934:21;;;981:14960;;;;;;;1398:1:71;981:14960:95;;;;;;;;;;;;1398:1:71;981:14960:95;;14917:38;14965:34;14980:19;;;981:14960;14965:34;981:14960;;14965:34;981:14960;-1:-1:-1;;;;;981:14960:95;;;;;;;15010:135;;1167:340:71;-1:-1:-1;15158:36:95;;;981:14960;-1:-1:-1;;;;;981:14960:95;;;;15154:157;;1167:340:71;-1:-1:-1;15324:35:95;;;981:14960;-1:-1:-1;;;;;981:14960:95;;;;15320:153;;1167:340:71;-1:-1:-1;15486:34:95;;;981:14960;-1:-1:-1;;;;;981:14960:95;;;;15482:152;;1167:340:71;-1:-1:-1;15647:32:95;981:14960;-1:-1:-1;;;;;981:14960:95;;;;;;;15643:145;;1167:340:71;:::o;15643:145:95:-;15709:68;;;:::i;:::-;;1167:340:71:o;15482:152:95:-;15550:73;;;:::i;:::-;;15482:152;;;15320:153;15389:73;;;:::i;:::-;;15320:153;;;15154:157;15224:76;;;:::i;:::-;;15154:157;;;15010:135;15073:61;;;:::i;:::-;;15010:135;;;13744:943;13811:36;;;981:14960;13811:50;;-1:-1:-1;;;;;981:14960:95;;;13811:50;;13807:405;;13744:943;14230:34;;;981:14960;14230:48;;-1:-1:-1;;;;;981:14960:95;;;14230:48;13744:943;14226:451;14302:21;;;981:14960;;14302:21;;14351:19;;;981:14960;14351:24;:74;;;14298:365;14347:150;;14298:365;;981:14960;15647:32;14298:365;14817:36;981:14960;;14298:365;;14226:451;;;;;;;13744:943;;14347:150;981:14960;-1:-1:-1;;;14460:14:95;;;;;14351:74;-1:-1:-1;14379:32:95;;;981:14960;14379:46;;-1:-1:-1;;;;;981:14960:95;;;14379:46;;14351:74;;14298:365;14525:19;;;981:14960;14525:24;;;:74;;;14298:365;14521:142;;14298:365;;981:14960;15647:32;14298:365;14817:36;981:14960;;14298:365;;;14525:74;-1:-1:-1;14553:32:95;;;981:14960;14553:46;;-1:-1:-1;;;;;981:14960:95;;;14553:46;;;14525:74;;13807:405;13885:23;;;981:14960;;13885:23;;13936:35;;;981:14960;13936:49;;-1:-1:-1;;;;;981:14960:95;;;13936:49;13807:405;13932:125;981:14960;-1:-1:-1;;;14020:14:95;;;;;13881:317;14085:35;;;981:14960;14085:49;;-1:-1:-1;;;;;981:14960:95;;;14085:49;14081:117;13807:405;14081:117;981:14960;-1:-1:-1;;;14165:14:95;;;;;13649:85;981:14960;;-1:-1:-1;;;13701:22:95;;;;;13551:88;981:14960;;-1:-1:-1;;;13609:19:95;;;;;1376:73:71;6961:1:25;6893:76;;;:::i;:::-;;;:::i;6961:1::-;1376:73:71;;;2492:191:95;-1:-1:-1;;;;;981:14960:95;-1:-1:-1;981:14960:95;;;5606:15:96;981:14960:95;;;;;5606:33:96;;;:::i;:::-;5173:21;;:::i;:::-;4803:22;;:::i;:::-;981:14960:95;1884:1:87;981:14960:95;;;;;;;1884:1:87;981:14960:95;;;;;;;8188:25:57;;;:::i;981:14960:95:-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;:::i;3612:132:96:-;819:34:62;837:15;819:34;:::i;:::-;3683:54:96;3703:17;981:14960:95;3684:36:96;981:14960:95;;;;;;;3684:36:96;;:::i;:::-;981:14960:95;;;3683:54:96;;:::i;:::-;981:14960:95;3612:132:96;:::o;3313:244::-;3418:17;981:14960:95;;;;;;;;;;;;;;3406:29:96;3402:85;;3503:47;3504:29;;;;:::i;3402:85::-;981:14960:95;;-1:-1:-1;;;3458:18:96;;;;;3217:103:28;;;;:::i;:::-;981:14960:95;;-1:-1:-1;;;;;981:14960:95;;;6521:23;;6517:79;;6650:11;;6646:70;;981:14960;6742:10;;;;;;-1:-1:-1;981:14960:95;;6887:49;;981:14960;;;;6864:6;;981:14960;;6821:18;;981:14960;;-1:-1:-1;;;;;981:14960:95;;;6821:18;6864:6;:::i;:::-;6887:49;981:14960;;6898:10;;;;6887:49;;;:::i;:::-;;;;3282:1:28;;1805;-1:-1:-1;;;;;;;;;;;981:14960:95;3716:283:28;6754:3:95;6790:9;6773:27;981:14960;6790:9;6783:17;6790:9;;;;;:::i;:::-;981:14960;6783:17;:::i;6773:27::-;6754:3;981:14960;6731:9;;6646:70;981:14960;;-1:-1:-1;;;6684:21:95;;;;;981:14960;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;981:14960:95;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;-1:-1:-1;981:14960:95;;;;:::o;:::-;;;:::o;3405:215:24:-;-1:-1:-1;;;;;981:14960:95;;;;3489:22:24;;3485:91;;-1:-1:-1;;;;;;;;;;;981:14960:95;;-1:-1:-1;;;;;;981:14960:95;;;;;;;;3975:40:24;-1:-1:-1;;3975:40:24;3405:215::o;3485:91::-;981:14960:95;;-1:-1:-1;;;3534:31:24;;3509:1;3534:31;;;981:14960:95;;;3534:31:24;2731:227:95;;2871:34;2731:227;981:14960;-1:-1:-1;981:14960:95;2871:18;981:14960;;;-1:-1:-1;981:14960:95;;;;;;;;;;;;;;;;;2871:34;981:14960;;-1:-1:-1;981:14960:95;2907:11;981:14960;;;-1:-1:-1;981:14960:95;;2927:16;981:14960;;;-1:-1:-1;981:14960:95;;;1884:1:87;981:14960:95;;;;;;;1884:1:87;981:14960:95;;;;;;;8188:25:57;;;:::i;3326:384:28:-;-1:-1:-1;;;;;;;;;;;1847:1:28;981:14960:95;;3526:20:28;3522:88;;1847:1;981:14960:95;;3326:384:28:o;3522:88::-;981:14960:95;;-1:-1:-1;;;3569:30:28;;;;;11948:968:95;12135:10;981:14960;;;;5606:15:96;981:14960:95;;;;;;11948:968;;;819:34:62;837:15;819:34;:::i;:::-;12135:10:95;981:14960;;;;5606:15:96;981:14960:95;;;;;5606:33:96;;;:::i;:::-;981:14960:95;;;;;;;;;12119:93;12835:74;12119:93;;;12660:30;12119:93;;:::i;:::-;837:15:62;;12222:67:95;819:34:62;837:15;819:34;:::i;:::-;12259:29:95;4803:22:96;;;:::i;12222:67:95:-;837:15:62;;12299:68:95;819:34:62;837:15;819:34;:::i;:::-;12335:31:95;5173:21:96;;;:::i;12299:68:95:-;12394:14;;12769:34;12394:14;12769:25;12394:18;:14;;:::i;:::-;:18;:::i;:::-;12726:33;12445:18;;981:14960;;7528:11;981:14960;;;;;;;12445:18;981:14960;12502:23;;981:14960;;12502:16;981:14960;;;;;;;12502:23;981:14960;390:70:87;;;;;:::i;:::-;12660:30:95;;;;;;:::i;:::-;12639:18;;981:14960;;7528:11;981:14960;;;;;;;12639:18;981:14960;12726:33;:::i;:::-;12700:23;;981:14960;;12502:16;981:14960;;;;;;;12700:23;981:14960;;;12769:18;981:14960;;;;;;;12769:25;981:14960;;;;;;;;;;;;;;;;12769:34;:50;981:14960;;;12769:50;:::i;:::-;981:14960;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;981:14960:95;;;;12135:10;;981:14960;;12835:74;11948:968::o;14291:213:58:-;981:14960:95;14369:24:58;;;;14365:103;;981:14960:95;14291:213:58;:::o;14365:103::-;981:14960:95;;;;14416:41:58;;;;;;14447:2;14416:41;;;981:14960:95;;;;;14416:41:58;981:14960:95;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;:::o;7558:604:86:-;;981:14960:95;;7686:17:86;7682:83;;981:14960:95;7789:27:86;981:14960:95;7789:27:86;981:14960:95;;7789:27:86;;;;;;:::i;:::-;7860:14;;;:::i;:::-;981:14960:95;;;;;;;;;;;;;;;;7888:22:86;;;7884:77;;7975:21;-1:-1:-1;7975:84:86;;;;7558:604;7971:139;;;;8127:28;;;;:::i;7971:139::-;7789:27;8082:17;;;981:14960:95;8075:24:86;:::o;7975:84::-;981:14960:95;;;8009:16:86;4622:13:96;981:14960:95;8009:16:86;:::i;:::-;981:14960:95;;;8001:24:86;:57;;;;;7975:84;;;;;;;8001:57;8029:29;8038:8;;;8029:18;8038:8;8029:23;8038:8;;:::i;:::-;8029:18;:::i;:23::-;981:14960:95;;;;8029:29:86;;8001:57;;;;7884:77;7933:17;;;7789:27;7933:17;;;981:14960:95;7926:24:86;:::o;7682:83::-;7726:28;;;;:::i;7558:604::-;;981:14960:95;;7686:17:86;7682:83;;981:14960:95;7789:27:86;981:14960:95;7789:27:86;981:14960:95;;7789:27:86;;;;;;:::i;:::-;7860:14;;;:::i;:::-;981:14960:95;;;;;;;;;;;;;;;;7888:22:86;;;7884:77;;7975:21;-1:-1:-1;7975:84:86;;;;7558:604;7971:139;;;;8127:28;;;;:::i;7975:84::-;981:14960:95;;;8009:16:86;4994:12:96;981:14960:95;8009:16:86;:::i;:::-;981:14960:95;;;8001:24:86;:57;;;;;7975:84;;;;;;;8001:57;8029:29;8038:8;;;8029:18;8038:8;8029:23;8038:8;;:::i;:::-;8029:18;:::i;:29::-;;8001:57;;;;7682:83;7726:28;;;;:::i;7558:604::-;;981:14960:95;;7686:17:86;7682:83;;981:14960:95;7789:27:86;981:14960:95;7789:27:86;981:14960:95;;7789:27:86;;;;;;:::i;:::-;7860:14;;;;;:::i;:::-;981:14960:95;;;;;;;;;;;;;;;;7888:22:86;;;7884:77;;7975:21;-1:-1:-1;7975:84:86;;;;7558:604;7971:139;;;;8127:28;;;;:::i;7971:139::-;8082:17;;7789:27;8082:17;981:14960:95;8075:24:86;:::o;7975:84::-;981:14960:95;;;8009:16:86;981:14960:95;;8009:16:86;:::i;:::-;981:14960:95;;;8001:24:86;:57;;;;;7975:84;;;;;;;8001:57;8029:29;8038:8;;;8029:18;8038:8;8029:23;8038:8;;:::i;:::-;8029:18;;:::i;:29::-;;8001:57;;;;7884:77;7933:17;;;;;7789:27;7933:17;981:14960:95;7926:24:86;:::o;7682:83::-;7726:28;;;;:::i;4148:103:23:-;966:10:27;-1:-1:-1;981:14960:95;;;;;;;;;675:39:96;;981:14960:95;;3901:31:23;981:14960:95;;4468:23:23;4464:108;;4148:103;:::o;:::-;966:10:27;-1:-1:-1;981:14960:95;;;;;;;;;966:38:96;;981:14960:95;;3901:31:23;981:14960:95;4148:103:23;966:10:27;-1:-1:-1;981:14960:95;;;;;;;;;821:37:96;;981:14960:95;;3901:31:23;981:14960:95;4148:103:23;-1:-1:-1;981:14960:95;;;-1:-1:-1;;;;;;;;;;;981:14960:95;;;;;;;;966:10:27;981:14960:95;;;;;;;;;3901:31:23;981:14960:95;7270:387:23;-1:-1:-1;;;;;981:14960:95;;1398:1:71;981:14960:95;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2887:71:23;981:14960:95;;;;1398:1:71;981:14960:95;;;;;;;;;;;-1:-1:-1;;;;;981:14960:95;;;;;;;;;;-1:-1:-1;;981:14960:95;7509:4:23;981:14960:95;;;966:10:27;;-1:-1:-1;;;;;981:14960:95;-1:-1:-1;7532:40:23;-1:-1:-1;;7532:40:23;7509:4;7586:11;:::o;7432:219::-;7628:12;;1398:1:71;7628:12:23;:::o;7270:387::-;-1:-1:-1;;;;;981:14960:95;;-1:-1:-1;981:14960:95;;;;;;;;;675:39:96;;-1:-1:-1;;;;;;;;;;;2887:71:23;981:14960:95;;3901:31:23;981:14960:95;;;;-1:-1:-1;981:14960:95;;;;;;;;;;;-1:-1:-1;;;;;981:14960:95;;;;;;;;;;-1:-1:-1;;981:14960:95;7509:4:23;981:14960:95;;;966:10:27;;-1:-1:-1;;;;;981:14960:95;;7532:40:23;-1:-1:-1;;7532:40:23;7509:4;7586:11;:::o;7432:219::-;7628:12;;;-1:-1:-1;7628:12:23;:::o;7270:387::-;-1:-1:-1;;;;;981:14960:95;;-1:-1:-1;981:14960:95;;;;;;;;;821:37:96;;-1:-1:-1;;;;;;;;;;;2887:71:23;981:14960:95;;3901:31:23;981:14960:95;7270:387:23;-1:-1:-1;;;;;981:14960:95;;-1:-1:-1;981:14960:95;;;;;;;;;966:38:96;;-1:-1:-1;;;;;;;;;;;2887:71:23;981:14960:95;;3901:31:23;981:14960:95;7270:387:23;-1:-1:-1;;;;;981:14960:95;;-1:-1:-1;981:14960:95;;;;;;;;;1109:35:96;;-1:-1:-1;;;;;;;;;;;2887:71:23;981:14960:95;;3901:31:23;981:14960:95;7270:387:23;-1:-1:-1;981:14960:95;;;-1:-1:-1;;;;;;;;;;;981:14960:95;;;;;;;;-1:-1:-1;;;;;981:14960:95;;;;;;;;;;;;3901:31:23;981:14960:95;7892:388:23;-1:-1:-1;981:14960:95;;;-1:-1:-1;;;;;;;;;;;981:14960:95;;;;;;;;-1:-1:-1;;;;;981:14960:95;;;;;;;;;;;;;;;;-1:-1:-1;981:14960:95;;;;;;;;;;;-1:-1:-1;;;;;981:14960:95;;;;;;;;;;-1:-1:-1;;981:14960:95;;;966:10:27;;-1:-1:-1;;;;;981:14960:95;;8155:40:23;-1:-1:-1;;8155:40:23;981:14960:95;8209:11:23;:::o;1702:188:45:-;981:14960:95;;-1:-1:-1;;;1829:53:45;;;;-1:-1:-1;;;;;981:14960:95;;;1829:53:45;;;981:14960:95;;;;;;;;;;;;;;;;;1829:53:45;;;981:14960:95;;;;;;;-1:-1:-1;;;;;981:14960:95;;;;;1829:53:45;981:14960:95;;;1829:53:45;:::i;981:14960:95:-;7178:12:86;981:14960:95;;;;;;7178:12:86;-1:-1:-1;981:14960:95;-1:-1:-1;;;;;;;;;;;981:14960:95;;-1:-1:-1;981:14960:95;:::o;:::-;7178:12:86;981:14960:95;;;;;;7178:12:86;-1:-1:-1;981:14960:95;-1:-1:-1;;;;;;;;;;;981:14960:95;;-1:-1:-1;981:14960:95;:::o;:::-;;;;;;;;-1:-1:-1;981:14960:95;;-1:-1:-1;981:14960:95;;;-1:-1:-1;981:14960:95;:::o;:::-;6360:12:86;981:14960:95;-1:-1:-1;;;981:14960:95;;;;;;;;;6360:12:86;981:14960:95;;;;;;6360:12:86;-1:-1:-1;981:14960:95;-1:-1:-1;;;;;;;;;;;981:14960:95;;:::o;:::-;6360:12:86;981:14960:95;-1:-1:-1;;;981:14960:95;;;;;;;;;6360:12:86;981:14960:95;;;;;;6360:12:86;-1:-1:-1;981:14960:95;-1:-1:-1;;;;;;;;;;;981:14960:95;;:::o;:::-;;;;;-1:-1:-1;;;981:14960:95;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;6246:584:86;;;;6360:12;981:14960:95;;;6360:24:86;;6356:75;;6246:584;6474:30;;;:::i;:::-;981:14960:95;;;;;;6578:12:86;;;:::i;:::-;6604:24;;;;6246:584;-1:-1:-1;6600:188:86;;;-1:-1:-1;;;981:14960:95;;;;;;;;;-1:-1:-1;981:14960:95;;;-1:-1:-1;981:14960:95;;;;;;6798:25:86;981:14960:95;6246:584:86:o;6600:188::-;8167:38:60;;-1:-1:-1;;;;;981:14960:95;;-1:-1:-1;8167:38:60;:::i;:::-;6753:24:86;;;;;:::i;:::-;6798:25;6246:584;:::o;6604:24::-;981:14960:95;;;;;;6614:14:86;;-1:-1:-1;6604:24:86;;;6356:75;-1:-1:-1;;;981:14960:95;;;;;;;;;;;;;;;;-1:-1:-1;981:14960:95;;;;-1:-1:-1;;;;;;;;;;;981:14960:95;;6356:75:86;;;6246:584;;;;6360:12;981:14960:95;;;6360:24:86;;6356:75;;6246:584;6474:30;;;:::i;:::-;981:14960:95;;;;;;6578:12:86;;;:::i;:::-;6604:24;;;;6246:584;-1:-1:-1;6600:188:86;;;-1:-1:-1;;;981:14960:95;;;;;;;;;-1:-1:-1;981:14960:95;;;-1:-1:-1;981:14960:95;;;;;;6798:25:86;981:14960:95;6246:584:86:o;6600:188::-;8167:38:60;;-1:-1:-1;;;;;981:14960:95;;-1:-1:-1;8167:38:60;:::i;:::-;6753:24:86;;;;;:::i;6604:::-;981:14960:95;;;;;;6614:14:86;;-1:-1:-1;6604:24:86;;;6356:75;-1:-1:-1;;;981:14960:95;;;;;;;;;;;;;;;;-1:-1:-1;981:14960:95;;;;-1:-1:-1;;;;;;;;;;;981:14960:95;;6356:75:86;;;6246:584;;;;;6360:12;;;981:14960:95;;;6360:24:86;;6356:75;;6246:584;6474:30;;;;;:::i;:::-;981:14960:95;;;;;;6578:12:86;;;;:::i;:::-;6604:24;;;;6246:584;-1:-1:-1;6600:188:86;;;-1:-1:-1;;;;;981:14960:95;;;;;;;6644:21:86;;;:29;:21;;:::i;6600:188::-;6753:24;;981:14960:95;;8167:38:60;;-1:-1:-1;;;;;981:14960:95;;;;;8167:38:60;:::i;:::-;6753:24:86;;;:::i;6604:::-;981:14960:95;;;;;;6614:14:86;;-1:-1:-1;6604:24:86;;;6356:75;-1:-1:-1;;;981:14960:95;;;;;;6360:12:86;981:14960:95;;;;;;;:::i;:::-;;;;;;;;;;;;;;6356:75:86;;;981:14960:95;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;:::o;2658:162:24:-;-1:-1:-1;;;;;;;;;;;981:14960:95;-1:-1:-1;;;;;981:14960:95;966:10:27;2717:23:24;2713:101;;2658:162::o;2713:101::-;981:14960:95;;-1:-1:-1;;;2763:40:24;;966:10:27;2763:40:24;;;981:14960:95;;;2763:40:24;2557:104:57;;2641:5;;;;;;:13;2557:104;:::o;2641:13::-;;;2557:104;:::o;981:14960:95:-;;;;;;;:::o;3803:4116:57:-;;;981:14960:95;;;;-1:-1:-1;;3803:4116:57;;4383:131;;;;;;;;;;;;4595:10;;4591:368;;5065:20;;;;5061:88;;5435:300;;;981:14960:95;-1:-1:-1;981:14960:95;5954:31:57;;5999:371;;;6813:1;981:14960:95;;6794:1:57;981:14960:95;6793:21:57;981:14960:95;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5999:371:57;;;;-1:-1:-1;5999:371:57;;;5435:300;;;;;;981:14960:95;5435:300:57;;5999:371;6436:21;981:14960:95;3803:4116:57;:::o;5061:88::-;981:14960:95;;-1:-1:-1;;;5112:22:57;;;;;4591:368;4925:19;;;;;;;:::i;1303:160:45:-;981:14960:95;;-1:-1:-1;;;1412:43:45;;;;-1:-1:-1;;;;;981:14960:95;;;1412:43:45;;;981:14960:95;;;;;;;;;1412:43:45;;;981:14960:95;;;;-1:-1:-1;;;;;981:14960:95;;;;;;;;1412:43:45;981:14960:95;;;1412:43:45;:::i;12922:460:95:-;;13024:14;;:::i;:::-;13015:23;;;13011:75;;-1:-1:-1;981:14960:95;;;13100:20;981:14960;;;;;;;;13128:10;981:14960;;;;;;;;;;13096:93;;13208:32;13128:10;13208:32;;:::i;:::-;13255:11;;;13251:68;;-1:-1:-1;981:14960:95;;;13100:20;981:14960;;;;;;;;13128:10;981:14960;;;;;;;;;-1:-1:-1;;981:14960:95;13371:4;981:14960;;;12922:460::o;13251:68::-;981:14960;;-1:-1:-1;;;13289:19:95;;;;;13096:93;981:14960;;-1:-1:-1;;;13162:16:95;;;;;13011:75;981:14960;;-1:-1:-1;;;13061:14:95;;;;;10580:184:86;5173:12:96;981:14960:95;10303:8:60;;;:63;-1:-1:-1;10303:63:60;-1:-1:-1;;;;;981:14960:95;;10726:7:86;981:14960:95;;10736:12:86;981:14960:95;;;;;;10736:12:86;-1:-1:-1;981:14960:95;-1:-1:-1;;;;;;;;;;;981:14960:95;;10580:184:86;:::o;10726:31::-;;-1:-1:-1;10580:184:86;:::o;10303:63:60:-;981:14960:95;;;;;;;;5173:12:96;-1:-1:-1;14249:109:60;;;981:14960:95;;;10303:63:60;;10580:184:86;4803:13:96;981:14960:95;10303:8:60;;;:63;-1:-1:-1;10303:63:60;-1:-1:-1;;;;;981:14960:95;;10726:7:86;981:14960:95;;10736:12:86;981:14960:95;;;;;;10736:12:86;-1:-1:-1;981:14960:95;-1:-1:-1;;;;;;;;;;;981:14960:95;;10580:184:86;:::o;10303:63:60:-;981:14960:95;;;;;;;;4803:13:96;-1:-1:-1;14249:109:60;;;981:14960:95;;;10303:63:60;;10580:184:86;981:14960:95;;10303:8:60;;;:63;-1:-1:-1;10303:63:60;-1:-1:-1;;;;;981:14960:95;;10726:7:86;981:14960:95;;10736:12:86;:17;:12;;:17;:::i;:::-;981:14960:95;;;;;;10580:184:86;:::o;10303:63:60:-;981:14960:95;;;;;;;;;;14249:109:60;-1:-1:-1;14249:109:60;;-1:-1:-1;14249:109:60;;;981:14960:95;;;10303:63:60;;1662:280:87;;;1884:1;981:14960:95;;;;;;;1884:1:87;981:14960:95;;;;;;;8188:25:57;;;:::i;6999:207:86:-;4622:13:96;981:14960:95;9594:15:60;-1:-1:-1;9619:18:60;9652:7;9658:1;9652:7;;9648:234;;6999:207:86;9906:53:60;;;;:::i;:::-;9977:8;;;:63;-1:-1:-1;9977:63:60;-1:-1:-1;;;;;981:14960:95;;7168:7:86;981:14960:95;;7178:17:86;981:14960:95;7178:17:86;;:::i;9977:63:60:-;9992:41;10025:7;9992:48;10025:7;;:::i;:::-;4622:13:96;14249:109:60;;-1:-1:-1;;;;;;;;;;;14249:109:60;14099:265;;9992:41;981:14960:95;;;;;9992:48:60;9977:63;;9648:234;9695:14;;;;;:::i;:::-;981:14960:95;;;;;;;9906:53:60;14249:109;4622:13:96;-1:-1:-1;14249:109:60;981:14960:95;14249:109:60;;-1:-1:-1;;;;;;;;;;;14249:109:60;981:14960:95;;;;;9727:48:60;9723:149;981:14960:95;;;9795:10:60;9723:149;9648:234;;9723:149;9850:7;;;;;;:::i;:::-;9723:149;9648:234;;6999:207:86;4994:12:96;981:14960:95;9594:15:60;-1:-1:-1;9619:18:60;9652:7;9658:1;9652:7;;9648:234;;6999:207:86;9906:53:60;;;;:::i;:::-;9977:8;;;:63;-1:-1:-1;9977:63:60;-1:-1:-1;;;;;981:14960:95;;7168:7:86;981:14960:95;;7178:17:86;981:14960:95;7178:17:86;;:::i;9977:63:60:-;9992:41;10025:7;9992:48;10025:7;;:::i;:::-;4994:12:96;14249:109:60;;-1:-1:-1;;;;;;;;;;;14249:109:60;14099:265;;9992:48;9977:63;;9648:234;9695:14;;;;;:::i;:::-;981:14960:95;;;;;;;9906:53:60;14249:109;4994:12:96;-1:-1:-1;14249:109:60;981:14960:95;14249:109:60;;-1:-1:-1;;;;;;;;;;;14249:109:60;981:14960:95;;;;;9727:48:60;9723:149;981:14960:95;;;9795:10:60;9723:149;9648:234;;9723:149;9850:7;;;;;;:::i;:::-;9723:149;9648:234;;6999:207:86;;981:14960:95;;9594:15:60;-1:-1:-1;9619:18:60;9652:7;9658:1;9652:7;;9648:234;;6999:207:86;9906:53:60;;;;;:::i;:::-;9977:8;;;:63;-1:-1:-1;9977:63:60;;-1:-1:-1;;;;;981:14960:95;;7168:7:86;981:14960:95;;;7178:12:86;;:17;:12;;:17;:::i;9977:63:60:-;9992:41;10025:7;9992:48;10025:7;;:::i;:::-;9992:41;14249:109;;;;;;14099:265;;9992:48;9977:63;;;9648:234;9695:14;;;;;:::i;:::-;981:14960:95;;;;;;;9906:53:60;14249:109;;-1:-1:-1;14249:109:60;981:14960:95;14249:109:60;;;-1:-1:-1;14249:109:60;;981:14960:95;;;;;9727:48:60;9723:149;981:14960:95;;;9795:10:60;9723:149;9648:234;;9723:149;9850:7;;;;;;:::i;:::-;9723:149;9648:234;;981:14960:95;;;;;;;:::i;:::-;-1:-1:-1;981:14960:95;;;;;;;:::o;11486:272:86:-;981:14960:95;;:::i;:::-;;;;:::i;:::-;;4622:13:96;981:14960:95;;;;;;;;4622:13:96;-1:-1:-1;981:14960:95;-1:-1:-1;;;;;;;;;;;981:14960:95;;:::i;:::-;;;;;;;;;;;;11731:17:86;;981:14960:95;;11718:12:86;981:14960:95;;;;;;11718:12:86;-1:-1:-1;981:14960:95;-1:-1:-1;;;;;;;;;;;981:14960:95;;;;;;;;:::i;:::-;;;;11672:79:86;;981:14960:95;11486:272:86;:::o;:::-;981:14960:95;;:::i;:::-;;;;:::i;:::-;;4994:12:96;981:14960:95;;;;;;;;4994:12:96;-1:-1:-1;981:14960:95;-1:-1:-1;;;;;;;;;;;981:14960:95;;:::i;:::-;;;;;;;;;;;;11731:17:86;;981:14960:95;;11718:12:86;981:14960:95;;;;;;11718:12:86;-1:-1:-1;981:14960:95;-1:-1:-1;;;;;;;;;;;981:14960:95;;;;;;;;:::i;11486:272:86:-;;981:14960:95;11308:22:60;11718:31:86;11486:272;981:14960:95;;:::i;:::-;;;;:::i;:::-;;11308:22:60;;:::i;:::-;981:14960:95;;:::i;:::-;;11718:12:86;981:14960:95;;;;;11731:17:86;981:14960:95;;;;;11731:17:86;;981:14960:95;;11718:12:86;;:31;:::i;:::-;981:14960:95;;;;;;;;;:::i;:::-;;;;;;11731:17:86;11672:79;;981:14960:95;11486:272:86;:::o;4059:629:45:-;2847:1:46;4059:629:45;3510:55:46;4059:629:45;981:14960:95;;;;;;3462:31:46;;;;;;;;;;;;:::i;:::-;3510:55;;;:::i;:::-;981:14960:95;;4551:22:45;;;;:57;;;;4059:629;4547:135;;;;4059:629;:::o;4547:135::-;981:14960:95;;;;4631:40:45;;;;;;;;;981:14960:95;4631:40:45;4551:57;4578:30;;;3462:31:46;4578:30:45;;;;;;;;:::i;:::-;4577:31;4551:57;;;;1258:280:87;;;981:14960:95;;;;;;;;;;;;;;;;8188:25:57;;;;;:::i;:::-;8257;;;;;;8223:101;;1258:280:87;:::o;8223:101:57:-;981:14960:95;;;;;;;;1258:280:87;:::o;981:14960:95:-;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::o;10552:388:60:-;5173:12:96;981:14960:95;10728:8:60;;;10752:20;10690:17;10752:20;10690:17;10752:20;10690:17;10752:20;:::o;10724:210::-;981:14960:95;;;;;;;;14249:109:60;981:14960:95;14249:109:60;5173:12:96;10690:17:60;14249:109;;981:14960:95;:::i;:::-;;;;;;;14249:109:60;981:14960:95;;;;;10911:11:60;;981:14960:95;;10886:37:60;10870:1;10886:37;;;:::o;10552:388::-;4803:13:96;981:14960:95;10728:8:60;;;10752:20;10690:17;10752:20;10690:17;10752:20;10690:17;10752:20;:::o;10724:210::-;981:14960:95;;;;;;;;14249:109:60;981:14960:95;14249:109:60;4803:13:96;10690:17:60;14249:109;;981:14960:95;:::i;10552:388:60:-;981:14960:95;;10728:8:60;;;10752:20;;10690:17;10752:20;10690:17;10752:20;10690:17;10752:20;:::o;10724:210::-;981:14960:95;;;;;;;;;;;14249:109:60;10690:17;14249:109;;10690:17;14249:109;;;981:14960:95;:::i;7084:141:25:-;981:14960:95;-1:-1:-1;;;;;;;;;;;981:14960:95;;;;7150:18:25;7146:73;;7084:141::o;7146:73::-;981:14960:95;;-1:-1:-1;;;7191:17:25;;;;;981:14960:95;5173:12:96;981:14960:95;;-1:-1:-1;;;981:14960:95;;;;;;;;;5173:12:96;981:14960:95;;;;;;5173:12:96;-1:-1:-1;981:14960:95;;;;;;;;;;-1:-1:-1;;981:14960:95;;;;;;;-1:-1:-1;;;;;;;;;;;981:14960:95;;;;:::o;:::-;4803:13:96;981:14960:95;;-1:-1:-1;;;981:14960:95;;;;;;;;;4803:13:96;981:14960:95;;;;;;4803:13:96;-1:-1:-1;981:14960:95;;;;;;;;;;-1:-1:-1;;981:14960:95;;;;;;;-1:-1:-1;;;;;;;;;;;981:14960:95;;;;:::o;:::-;;;-1:-1:-1;;;981:14960:95;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;981:14960:95;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;11513:870:60;5173:12:96;981:14960:95;11513:870:60;;;981:14960:95;11672:7:60;;;;981:14960:95;11775:28:60;11795:7;;;:::i;11775:28::-;981:14960:95;:::i;:::-;;;;;;;;;;-1:-1:-1;;11873:91:60;;981:14960:95;12233:11:60;981:14960:95;;;12027:16:60;981:14960:95;;;;;;;12027:16:60;;;;12083:7;12063:28;12083:7;12063:43;12083:7;;:::i;12063:28::-;981:14960:95;;;;;;;;;;;;;;;;;12063:43:60;12233:11;981:14960:95;-1:-1:-1;;;;;981:14960:95;;;12023:189:60;981:14960:95;;12145:52:60;981:14960:95;;12155:41:60;981:14960:95;;:::i;:::-;;;;;;;;12155:41:60;-1:-1:-1;;;;;981:14960:95;;12155:41:60;;;981:14960:95;12145:52:60;:::i;:::-;12023:189;;11873:91;981:14960:95;;-1:-1:-1;;;11919:30:60;;;;;11668:709;12283:52;981:14960:95;;12293:41:60;981:14960:95;;:::i;12293:41:60:-;-1:-1:-1;;;;;981:14960:95;;12293:41:60;;;981:14960:95;12145:52:60;:::i;12283:::-;11678:1;12349:17;;:::o;11513:870::-;4803:13:96;981:14960:95;11513:870:60;;;981:14960:95;11672:7:60;;;;981:14960:95;11775:28:60;11795:7;;;:::i;981:14960:95:-;;;;;;;;;;-1:-1:-1;;11873:91:60;;981:14960:95;12233:11:60;981:14960:95;;;12027:16:60;981:14960:95;;;;;;;12027:16:60;;;;12083:7;12063:28;12083:7;12063:43;12083:7;;:::i;12023:189::-;981:14960:95;;12145:52:60;981:14960:95;;12155:41:60;981:14960:95;;:::i;12155:41:60:-;-1:-1:-1;;;;;981:14960:95;;12155:41:60;;;981:14960:95;12145:52:60;:::i;11668:709::-;12283:52;981:14960:95;;12293:41:60;981:14960:95;;:::i;12293:41:60:-;-1:-1:-1;;;;;981:14960:95;;12293:41:60;;;981:14960:95;12145:52:60;:::i;11513:870::-;981:14960:95;;11513:870:60;;;981:14960:95;11513:870:60;11672:7;;;;981:14960:95;11775:28:60;11795:7;;;:::i;981:14960:95:-;;;;;;;;;;;;;;;;11877:15:60;-1:-1:-1;11873:91:60;;981:14960:95;;12233:11:60;981:14960:95;;;12027:16:60;981:14960:95;;;;;;;12027:16:60;;;;12083:7;12063:43;12083:7;;12063:28;12083:7;;:::i;:::-;12063:28;14249:109;;;;;;14099:265;;12023:189;981:14960:95;;;12145:52:60;981:14960:95;12155:41:60;981:14960:95;;:::i;:::-;;;;;;;;12155:41:60;-1:-1:-1;;;;;981:14960:95;;12155:41:60;;;981:14960:95;12145:52:60;:::i;11668:709::-;12283:52;981:14960:95;;12293:41:60;981:14960:95;;:::i;12293:41:60:-;-1:-1:-1;;;;;981:14960:95;;12293:41:60;;;981:14960:95;12145:52:60;:::i;8587:1642:57:-;8658:6;;8654:45;;9401:7;10201:10;10142:26;10093;10044;9995;9946;9897;9848;981:14960:95;10189:23:57;9401:7;8663:1;981:14960:95;;;;10826:16:57;10822:99;;8587:1642;981:14960:95;;;;10938:15:57;10934:96;;8587:1642;981:14960:95;;;;11047:15:57;11043:96;;8587:1642;981:14960:95;;;;11156:15:57;11152:96;;8587:1642;981:14960:95;;;;11265:14:57;11261:93;;8587:1642;981:14960:95;;;;11371:14:57;11367:93;;8587:1642;981:14960:95;;;;11477:14:57;11473:93;;8587:1642;981:14960:95;;;11579:64:57;;8587:1642;981:14960:95;;;9858:10:57;;;;:::i;:::-;981:14960:95;;;;;9848:26:57;9907:10;;;;:::i;9897:26::-;9956:10;;;;:::i;9946:26::-;10005:10;;;;:::i;9995:26::-;10054:10;;;;:::i;10044:26::-;10103:10;;;;:::i;10093:26::-;10152:10;;;;:::i;10142:26::-;10201:10;;;:::i;:::-;10189:23;;:::i;11579:64::-;981:14960:95;;11579:64:57;;11473:93;981:14960:95;11511:11:57;;981:14960:95;;11473:93:57;;;;11367;981:14960:95;11405:11:57;;981:14960:95;;11367:93:57;;;;11261;981:14960:95;11299:11:57;;981:14960:95;;11261:93:57;;;;11152:96;981:14960:95;11191:12:57;;981:14960:95;;11152:96:57;;;;11043;981:14960:95;11082:12:57;;981:14960:95;;11043:96:57;;;;10934;981:14960:95;10973:12:57;;981:14960:95;;10934:96:57;;;;10822:99;10862:13;;;981:14960:95;10822:99:57;;;;12736:433:60;;12919:10;;;;;;13151:11;;12736:433;:::o;12912:230::-;2900:5:57;;;;;981:14960:95;;2910:5:57;;;981:14960:95;;;;;;;;;4622:13:96;-1:-1:-1;14249:109:60;981:14960:95;14249:109:60;;-1:-1:-1;;;;;;;;;;;14249:109:60;981:14960:95;;;;;-1:-1:-1;12996:136:60;981:14960:95;;;13055:10:60;;12996:136;;12912:230;;;12996:136;981:14960:95;;;;;;;;;;;12996:136:60;;;12736:433;;12919:10;;;;;;13151:11;;12736:433;:::o;12912:230::-;2900:5:57;;;;;981:14960:95;;2910:5:57;;;981:14960:95;;;;;;;;;4994:12:96;-1:-1:-1;14249:109:60;981:14960:95;14249:109:60;;-1:-1:-1;;;;;;;;;;;14249:109:60;981:14960:95;;;;;-1:-1:-1;12996:136:60;981:14960:95;;;13055:10:60;;12996:136;;12912:230;;;12996:136;981:14960:95;;;;;;;;;;;12996:136:60;;;12736:433;;;12919:10;;;;;;13151:11;;;12736:433;:::o;12912:230::-;2900:5:57;;;;;;981:14960:95;;2910:5:57;;;981:14960:95;;;;;;;;;14249:109:60;-1:-1:-1;14249:109:60;981:14960:95;14249:109:60;;;-1:-1:-1;14249:109:60;;981:14960:95;;;;;-1:-1:-1;12996:136:60;981:14960:95;;;13055:10:60;;12996:136;;12912:230;;;;12996:136;981:14960:95;;;;;;;;;;;12996:136:60;;;4625:582:46;;4797:8;;-1:-1:-1;981:14960:95;;5874:21:46;:17;;6046:142;;;;;;5870:383;981:14960:95;;-1:-1:-1;;;6225:17:46;;;;;4793:408;981:14960:95;;5045:22:46;:49;;;4793:408;5041:119;;5173:17;;:::o;5041:119::-;981:14960:95;;-1:-1:-1;;;5121:24:46;;-1:-1:-1;;;;;981:14960:95;;;5121:24:46;;;981:14960:95;;;5121:24:46;5045:49;5071:18;;;:23;5045:49;","linkReferences":{},"immutableReferences":{"58075":[{"start":1904,"length":32},{"start":2467,"length":32}],"68715":[{"start":4512,"length":32},{"start":5845,"length":32}],"68718":[{"start":6206,"length":32},{"start":7428,"length":32}]}},"methodIdentifiers":{"DEFAULT_ADMIN_ROLE()":"a217fddf","DELEGATOR_FACTORY()":"6da3e06d","DEPOSITOR_WHITELIST_ROLE()":"1b66c9e1","DEPOSIT_LIMIT_SET_ROLE()":"a21a1df9","DEPOSIT_WHITELIST_SET_ROLE()":"db388715","FACTORY()":"2dd31000","IS_DEPOSIT_LIMIT_SET_ROLE()":"1415519b","SLASHER_FACTORY()":"87df0788","activeBalanceOf(address)":"59f769a9","activeBalanceOfAt(address,uint48,bytes)":"efb559d6","activeShares()":"bfefcd7b","activeSharesAt(uint48,bytes)":"50f22068","activeSharesOf(address)":"9d66201b","activeSharesOfAt(address,uint48,bytes)":"2d73c69c","activeStake()":"bd49c35f","activeStakeAt(uint48,bytes)":"810da75d","burner()":"27810b6e","claim(address,uint256)":"aad3ec96","claimBatch(address,uint256[])":"7c04c80a","collateral()":"d8dfeb45","currentEpoch()":"76671808","currentEpochStart()":"61a8c8c4","delegator()":"ce9b7930","deposit(address,uint256)":"47e7ef24","depositLimit()":"ecf70858","depositWhitelist()":"48d3b775","epochAt(uint48)":"7953b33b","epochDuration()":"4ff0876a","epochDurationInit()":"46361671","getRoleAdmin(bytes32)":"248a9ca3","grantRole(bytes32,address)":"2f2ff15d","hasRole(bytes32,address)":"91d14854","initialize(uint64,address,bytes)":"57ec83cc","isDelegatorInitialized()":"50861adc","isDepositLimit()":"a1b12202","isDepositorWhitelisted(address)":"794b15b7","isInitialized()":"392e53cd","isSlasherInitialized()":"6ec1e3f8","isWithdrawalsClaimed(uint256,address)":"a5d03223","migrate(uint64,bytes)":"2abe3048","nextEpochStart()":"73790ab3","onSlash(uint256,uint48)":"7278e31c","owner()":"8da5cb5b","previousEpochStart()":"281f5752","redeem(address,uint256)":"1e9a6950","renounceOwnership()":"715018a6","renounceRole(bytes32,address)":"36568abe","revokeRole(bytes32,address)":"d547741f","setDelegator(address)":"83cd9cc3","setDepositLimit(uint256)":"bdc8144b","setDepositWhitelist(bool)":"4105a7dd","setDepositorWhitelistStatus(address,bool)":"a2861466","setIsDepositLimit(bool)":"5346e34f","setSlasher(address)":"aabc2496","slashableBalanceOf(address)":"c31e8dd7","slasher()":"b1344271","staticDelegateCall(address,bytes)":"9f86fd85","supportsInterface(bytes4)":"01ffc9a7","totalStake()":"8b0e9f3f","transferOwnership(address)":"f2fde38b","version()":"54fd4d50","withdraw(address,uint256)":"f3fef3a3","withdrawalShares(uint256)":"afba70ad","withdrawalSharesOf(uint256,address)":"a3b54172","withdrawals(uint256)":"5cc07076","withdrawalsOf(uint256,address)":"f5e7ee0f"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegatorFactory\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"slasherFactory\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"vaultFactory\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"AccessControlBadConfirmation\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"neededRole\",\"type\":\"bytes32\"}],\"name\":\"AccessControlUnauthorizedAccount\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"AddressEmptyCode\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"AddressInsufficientBalance\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AlreadyClaimed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AlreadyInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AlreadySet\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CheckpointUnorderedInsertion\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"DelegatorAlreadyInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"DepositLimitReached\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedInnerCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientClaim\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientDeposit\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientRedemption\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientWithdrawal\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidAccount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidCaptureEpoch\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidClaimer\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidCollateral\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidDelegator\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidEpoch\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidEpochDuration\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidLengthEpochs\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidOnBehalfOf\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidRecipient\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidSlasher\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidTimestamp\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MathOverflowedMulDiv\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MissingRoles\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NoPreviousEpoch\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotDelegator\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotFactory\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotSlasher\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotWhitelistedDepositor\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ReentrancyGuardReentrantCall\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"bits\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"SafeCastOverflowedUintDowncast\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"SafeERC20FailedOperation\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SlasherAlreadyInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TooMuchRedeem\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TooMuchWithdraw\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"claimer\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"epoch\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Claim\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"claimer\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"epochs\",\"type\":\"uint256[]\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"ClaimBatch\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"depositor\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"onBehalfOf\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"}],\"name\":\"Deposit\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint48\",\"name\":\"captureTimestamp\",\"type\":\"uint48\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"slashedAmount\",\"type\":\"uint256\"}],\"name\":\"OnSlash\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"previousAdminRole\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"newAdminRole\",\"type\":\"bytes32\"}],\"name\":\"RoleAdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleRevoked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"}],\"name\":\"SetDelegator\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"limit\",\"type\":\"uint256\"}],\"name\":\"SetDepositLimit\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"status\",\"type\":\"bool\"}],\"name\":\"SetDepositWhitelist\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"status\",\"type\":\"bool\"}],\"name\":\"SetDepositorWhitelistStatus\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"status\",\"type\":\"bool\"}],\"name\":\"SetIsDepositLimit\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"slasher\",\"type\":\"address\"}],\"name\":\"SetSlasher\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"withdrawer\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"claimer\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"burnedShares\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"mintedShares\",\"type\":\"uint256\"}],\"name\":\"Withdraw\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DEFAULT_ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"DELEGATOR_FACTORY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"DEPOSITOR_WHITELIST_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"DEPOSIT_LIMIT_SET_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"DEPOSIT_WHITELIST_SET_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"FACTORY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"IS_DEPOSIT_LIMIT_SET_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"SLASHER_FACTORY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"activeBalanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hints\",\"type\":\"bytes\"}],\"name\":\"activeBalanceOfAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"activeShares\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hint\",\"type\":\"bytes\"}],\"name\":\"activeSharesAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"activeSharesOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hint\",\"type\":\"bytes\"}],\"name\":\"activeSharesOfAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"activeStake\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hint\",\"type\":\"bytes\"}],\"name\":\"activeStakeAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"burner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"epoch\",\"type\":\"uint256\"}],\"name\":\"claim\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256[]\",\"name\":\"epochs\",\"type\":\"uint256[]\"}],\"name\":\"claimBatch\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"collateral\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"currentEpoch\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"currentEpochStart\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"delegator\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"onBehalfOf\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"deposit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"depositedAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"mintedShares\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"depositLimit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"depositWhitelist\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"}],\"name\":\"epochAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"epochDuration\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"epochDurationInit\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleAdmin\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"grantRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"initialVersion\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"owner_\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isDelegatorInitialized\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isDepositLimit\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"isDepositorWhitelisted\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"value\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isInitialized\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isSlasherInitialized\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"epoch\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"isWithdrawalsClaimed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"value\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"newVersion\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"migrate\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"nextEpochStart\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint48\",\"name\":\"captureTimestamp\",\"type\":\"uint48\"}],\"name\":\"onSlash\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"slashedAmount\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"previousEpochStart\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"claimer\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"}],\"name\":\"redeem\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"withdrawnAssets\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"mintedShares\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"callerConfirmation\",\"type\":\"address\"}],\"name\":\"renounceRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegator_\",\"type\":\"address\"}],\"name\":\"setDelegator\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"limit\",\"type\":\"uint256\"}],\"name\":\"setDepositLimit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"status\",\"type\":\"bool\"}],\"name\":\"setDepositWhitelist\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"status\",\"type\":\"bool\"}],\"name\":\"setDepositorWhitelistStatus\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"status\",\"type\":\"bool\"}],\"name\":\"setIsDepositLimit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"slasher_\",\"type\":\"address\"}],\"name\":\"setSlasher\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"slashableBalanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"slasher\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"staticDelegateCall\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalStake\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"version\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"claimer\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"withdraw\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"burnedShares\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"mintedShares\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"epoch\",\"type\":\"uint256\"}],\"name\":\"withdrawalShares\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"epoch\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"withdrawalSharesOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"epoch\",\"type\":\"uint256\"}],\"name\":\"withdrawals\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"epoch\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"withdrawalsOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"AccessControlBadConfirmation()\":[{\"details\":\"The caller of a function is not the expected one. NOTE: Don't confuse with {AccessControlUnauthorizedAccount}.\"}],\"AccessControlUnauthorizedAccount(address,bytes32)\":[{\"details\":\"The `account` is missing a role.\"}],\"AddressEmptyCode(address)\":[{\"details\":\"There's no code at `target` (it is not a contract).\"}],\"AddressInsufficientBalance(address)\":[{\"details\":\"The ETH balance of the account is not enough to perform the operation.\"}],\"CheckpointUnorderedInsertion()\":[{\"details\":\"A value was attempted to be inserted on a past checkpoint.\"}],\"FailedInnerCall()\":[{\"details\":\"A call to an address target failed. The target may have reverted.\"}],\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"MathOverflowedMulDiv()\":[{\"details\":\"Muldiv operation overflow.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}],\"ReentrancyGuardReentrantCall()\":[{\"details\":\"Unauthorized reentrant call.\"}],\"SafeCastOverflowedUintDowncast(uint8,uint256)\":[{\"details\":\"Value doesn't fit in an uint of `bits` size.\"}],\"SafeERC20FailedOperation(address)\":[{\"details\":\"An operation with an ERC20 token failed.\"}]},\"events\":{\"Claim(address,address,uint256,uint256)\":{\"params\":{\"amount\":\"amount of the collateral claimed\",\"claimer\":\"account that claimed\",\"epoch\":\"epoch the collateral was claimed for\",\"recipient\":\"account that received the collateral\"}},\"ClaimBatch(address,address,uint256[],uint256)\":{\"params\":{\"amount\":\"amount of the collateral claimed\",\"claimer\":\"account that claimed\",\"epochs\":\"epochs the collateral was claimed for\",\"recipient\":\"account that received the collateral\"}},\"Deposit(address,address,uint256,uint256)\":{\"params\":{\"amount\":\"amount of the collateral deposited\",\"depositor\":\"account that made the deposit\",\"onBehalfOf\":\"account the deposit was made on behalf of\",\"shares\":\"amount of the active shares minted\"}},\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"OnSlash(uint256,uint48,uint256)\":{\"params\":{\"amount\":\"amount of the collateral to slash\",\"captureTimestamp\":\"time point when the stake was captured\",\"slashedAmount\":\"real amount of the collateral slashed\"}},\"RoleAdminChanged(bytes32,bytes32,bytes32)\":{\"details\":\"Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole` `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite {RoleAdminChanged} not being emitted signaling this.\"},\"RoleGranted(bytes32,address,address)\":{\"details\":\"Emitted when `account` is granted `role`. `sender` is the account that originated the contract call, an admin role bearer except when using {AccessControl-_setupRole}.\"},\"RoleRevoked(bytes32,address,address)\":{\"details\":\"Emitted when `account` is revoked `role`. `sender` is the account that originated the contract call: - if using `revokeRole`, it is the admin role bearer - if using `renounceRole`, it is the role bearer (i.e. `account`)\"},\"SetDelegator(address)\":{\"details\":\"Can be set only once.\",\"params\":{\"delegator\":\"vault's delegator to delegate the stake to networks and operators\"}},\"SetDepositLimit(uint256)\":{\"params\":{\"limit\":\"deposit limit (maximum amount of the collateral that can be in the vault simultaneously)\"}},\"SetDepositWhitelist(bool)\":{\"params\":{\"status\":\"if enabled deposit whitelist\"}},\"SetDepositorWhitelistStatus(address,bool)\":{\"params\":{\"account\":\"account for which the whitelist status is set\",\"status\":\"if whitelisted the account\"}},\"SetIsDepositLimit(bool)\":{\"params\":{\"status\":\"if enabled deposit limit\"}},\"SetSlasher(address)\":{\"details\":\"Can be set only once.\",\"params\":{\"slasher\":\"vault's slasher to provide a slashing mechanism to networks\"}},\"Withdraw(address,address,uint256,uint256,uint256)\":{\"params\":{\"amount\":\"amount of the collateral withdrawn\",\"burnedShares\":\"amount of the active shares burned\",\"claimer\":\"account that needs to claim the withdrawal\",\"mintedShares\":\"amount of the epoch withdrawal shares minted\",\"withdrawer\":\"account that made the withdrawal\"}}},\"kind\":\"dev\",\"methods\":{\"activeBalanceOf(address)\":{\"params\":{\"account\":\"account to get the active balance for\"},\"returns\":{\"_0\":\"active balance for the account\"}},\"activeBalanceOfAt(address,uint48,bytes)\":{\"params\":{\"account\":\"account to get the active balance for\",\"hints\":\"hints for checkpoints' indexes\",\"timestamp\":\"time point to get the active balance for the account at\"},\"returns\":{\"_0\":\"active balance for the account at the timestamp\"}},\"activeShares()\":{\"returns\":{\"_0\":\"total number of active shares\"}},\"activeSharesAt(uint48,bytes)\":{\"params\":{\"hint\":\"hint for the checkpoint index\",\"timestamp\":\"time point to get the total number of active shares at\"},\"returns\":{\"_0\":\"total number of active shares at the timestamp\"}},\"activeSharesOf(address)\":{\"params\":{\"account\":\"account to get the number of active shares for\"},\"returns\":{\"_0\":\"number of active shares for the account\"}},\"activeSharesOfAt(address,uint48,bytes)\":{\"params\":{\"account\":\"account to get the number of active shares for\",\"hint\":\"hint for the checkpoint index\",\"timestamp\":\"time point to get the number of active shares for the account at\"},\"returns\":{\"_0\":\"number of active shares for the account at the timestamp\"}},\"activeStake()\":{\"returns\":{\"_0\":\"total amount of active stake\"}},\"activeStakeAt(uint48,bytes)\":{\"params\":{\"hint\":\"hint for the checkpoint index\",\"timestamp\":\"time point to get the total active stake at\"},\"returns\":{\"_0\":\"total amount of active stake at the timestamp\"}},\"claim(address,uint256)\":{\"params\":{\"epoch\":\"epoch to claim the collateral for\",\"recipient\":\"account that receives the collateral\"},\"returns\":{\"amount\":\"amount of the collateral claimed\"}},\"claimBatch(address,uint256[])\":{\"params\":{\"epochs\":\"epochs to claim the collateral for\",\"recipient\":\"account that receives the collateral\"},\"returns\":{\"amount\":\"amount of the collateral claimed\"}},\"currentEpoch()\":{\"returns\":{\"_0\":\"current epoch\"}},\"currentEpochStart()\":{\"returns\":{\"_0\":\"start of the current epoch\"}},\"deposit(address,uint256)\":{\"params\":{\"amount\":\"amount of the collateral to deposit\",\"onBehalfOf\":\"account the deposit is made on behalf of\"},\"returns\":{\"depositedAmount\":\"real amount of the collateral deposited\",\"mintedShares\":\"amount of the active shares minted\"}},\"epochAt(uint48)\":{\"details\":\"Reverts if the timestamp is less than the start of the epoch 0.\",\"params\":{\"timestamp\":\"time point to get the epoch at\"},\"returns\":{\"_0\":\"epoch at the timestamp\"}},\"getRoleAdmin(bytes32)\":{\"details\":\"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}.\"},\"grantRole(bytes32,address)\":{\"details\":\"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event.\"},\"hasRole(bytes32,address)\":{\"details\":\"Returns `true` if `account` has been granted `role`.\"},\"initialize(uint64,address,bytes)\":{\"params\":{\"data\":\"some data to use\",\"initialVersion\":\"initial version of the entity\",\"owner\":\"initial owner of the entity\"}},\"isInitialized()\":{\"returns\":{\"_0\":\"if the vault is fully initialized\"}},\"migrate(uint64,bytes)\":{\"params\":{\"data\":\"some data to use\",\"newVersion\":\"new version of the entity\"}},\"nextEpochStart()\":{\"returns\":{\"_0\":\"start of the next epoch\"}},\"onSlash(uint256,uint48)\":{\"details\":\"Only the slasher can call this function.\",\"params\":{\"amount\":\"amount to slash\",\"captureTimestamp\":\"time point when the stake was captured\"},\"returns\":{\"slashedAmount\":\"real amount of the collateral slashed\"}},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"previousEpochStart()\":{\"details\":\"Reverts if the current epoch is 0.\",\"returns\":{\"_0\":\"start of the previous epoch\"}},\"redeem(address,uint256)\":{\"params\":{\"claimer\":\"account that needs to claim the withdrawal\",\"shares\":\"amount of the active shares to redeem\"},\"returns\":{\"mintedShares\":\"amount of the epoch withdrawal shares minted\",\"withdrawnAssets\":\"amount of the collateral withdrawn\"}},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"renounceRole(bytes32,address)\":{\"details\":\"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `callerConfirmation`. May emit a {RoleRevoked} event.\"},\"revokeRole(bytes32,address)\":{\"details\":\"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event.\"},\"setDepositLimit(uint256)\":{\"details\":\"Only a DEPOSIT_LIMIT_SET_ROLE holder can call this function.\",\"params\":{\"limit\":\"deposit limit (maximum amount of the collateral that can be in the vault simultaneously)\"}},\"setDepositWhitelist(bool)\":{\"details\":\"Only a DEPOSIT_WHITELIST_SET_ROLE holder can call this function.\",\"params\":{\"status\":\"if enabling deposit whitelist\"}},\"setDepositorWhitelistStatus(address,bool)\":{\"details\":\"Only a DEPOSITOR_WHITELIST_ROLE holder can call this function.\",\"params\":{\"account\":\"account for which the whitelist status is set\",\"status\":\"if whitelisting the account\"}},\"setIsDepositLimit(bool)\":{\"details\":\"Only a IS_DEPOSIT_LIMIT_SET_ROLE holder can call this function.\",\"params\":{\"status\":\"if enabling deposit limit\"}},\"slashableBalanceOf(address)\":{\"params\":{\"account\":\"account to get the slashable collateral for\"},\"returns\":{\"_0\":\"total amount of the account's slashable collateral\"}},\"staticDelegateCall(address,bytes)\":{\"details\":\"It allows to use this contract's storage on-chain.\",\"params\":{\"data\":\"data to make a delegatecall with\",\"target\":\"address of the contract to make a delegatecall to\"}},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"},\"totalStake()\":{\"returns\":{\"_0\":\"total amount of the slashable collateral\"}},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"},\"version()\":{\"details\":\"Starts from 1.\",\"returns\":{\"_0\":\"version of the entity\"}},\"withdraw(address,uint256)\":{\"params\":{\"amount\":\"amount of the collateral to withdraw\",\"claimer\":\"account that needs to claim the withdrawal\"},\"returns\":{\"burnedShares\":\"amount of the active shares burned\",\"mintedShares\":\"amount of the epoch withdrawal shares minted\"}},\"withdrawalsOf(uint256,address)\":{\"params\":{\"account\":\"account to get the withdrawals for\",\"epoch\":\"epoch to get the withdrawals for the account at\"},\"returns\":{\"_0\":\"withdrawals for the account at the epoch\"}}},\"version\":1},\"userdoc\":{\"events\":{\"Claim(address,address,uint256,uint256)\":{\"notice\":\"Emitted when a claim is made.\"},\"ClaimBatch(address,address,uint256[],uint256)\":{\"notice\":\"Emitted when a batch claim is made.\"},\"Deposit(address,address,uint256,uint256)\":{\"notice\":\"Emitted when a deposit is made.\"},\"OnSlash(uint256,uint48,uint256)\":{\"notice\":\"Emitted when a slash happens.\"},\"SetDelegator(address)\":{\"notice\":\"Emitted when a delegator is set.\"},\"SetDepositLimit(uint256)\":{\"notice\":\"Emitted when a deposit limit is set.\"},\"SetDepositWhitelist(bool)\":{\"notice\":\"Emitted when a deposit whitelist status is enabled/disabled.\"},\"SetDepositorWhitelistStatus(address,bool)\":{\"notice\":\"Emitted when a depositor whitelist status is set.\"},\"SetIsDepositLimit(bool)\":{\"notice\":\"Emitted when a deposit limit status is enabled/disabled.\"},\"SetSlasher(address)\":{\"notice\":\"Emitted when a slasher is set.\"},\"Withdraw(address,address,uint256,uint256,uint256)\":{\"notice\":\"Emitted when a withdrawal is made.\"}},\"kind\":\"user\",\"methods\":{\"DELEGATOR_FACTORY()\":{\"notice\":\"Get the delegator factory's address.\"},\"DEPOSITOR_WHITELIST_ROLE()\":{\"notice\":\"Get a depositor whitelist status setter's role.\"},\"DEPOSIT_LIMIT_SET_ROLE()\":{\"notice\":\"Get a deposit limit setter's role.\"},\"DEPOSIT_WHITELIST_SET_ROLE()\":{\"notice\":\"Get a deposit whitelist enabler/disabler's role.\"},\"FACTORY()\":{\"notice\":\"Get the factory's address.\"},\"IS_DEPOSIT_LIMIT_SET_ROLE()\":{\"notice\":\"Get a deposit limit enabler/disabler's role.\"},\"SLASHER_FACTORY()\":{\"notice\":\"Get the slasher factory's address.\"},\"activeBalanceOf(address)\":{\"notice\":\"Get an active balance for a particular account.\"},\"activeBalanceOfAt(address,uint48,bytes)\":{\"notice\":\"Get an active balance for a particular account at a given timestamp using hints.\"},\"activeShares()\":{\"notice\":\"Get a total number of active shares in the vault.\"},\"activeSharesAt(uint48,bytes)\":{\"notice\":\"Get a total number of active shares in the vault at a given timestamp using a hint.\"},\"activeSharesOf(address)\":{\"notice\":\"Get a number of active shares for a particular account.\"},\"activeSharesOfAt(address,uint48,bytes)\":{\"notice\":\"Get a total number of active shares for a particular account at a given timestamp using a hint.\"},\"activeStake()\":{\"notice\":\"Get a total amount of active stake in the vault.\"},\"activeStakeAt(uint48,bytes)\":{\"notice\":\"Get a total amount of active stake in the vault at a given timestamp using a hint.\"},\"burner()\":{\"notice\":\"Get a burner to issue debt to (e.g., 0xdEaD or some unwrapper contract).\"},\"claim(address,uint256)\":{\"notice\":\"Claim collateral from the vault.\"},\"claimBatch(address,uint256[])\":{\"notice\":\"Claim collateral from the vault for multiple epochs.\"},\"collateral()\":{\"notice\":\"Get a vault collateral.\"},\"currentEpoch()\":{\"notice\":\"Get a current vault epoch.\"},\"currentEpochStart()\":{\"notice\":\"Get a start of the current vault epoch.\"},\"delegator()\":{\"notice\":\"Get a delegator (it delegates the vault's stake to networks and operators).\"},\"deposit(address,uint256)\":{\"notice\":\"Deposit collateral into the vault.\"},\"depositLimit()\":{\"notice\":\"Get a deposit limit (maximum amount of the active stake that can be in the vault simultaneously).\"},\"depositWhitelist()\":{\"notice\":\"Get if the deposit whitelist is enabled.\"},\"epochAt(uint48)\":{\"notice\":\"Get an epoch at a given timestamp.\"},\"epochDuration()\":{\"notice\":\"Get a duration of the vault epoch.\"},\"epochDurationInit()\":{\"notice\":\"Get a time point of the epoch duration set.\"},\"initialize(uint64,address,bytes)\":{\"notice\":\"Initialize this entity contract by using a given data and setting a particular version and owner.\"},\"isDelegatorInitialized()\":{\"notice\":\"Get if the delegator is initialized.\"},\"isDepositLimit()\":{\"notice\":\"Get if the deposit limit is set.\"},\"isDepositorWhitelisted(address)\":{\"notice\":\"Get if a given account is whitelisted as a depositor.\"},\"isInitialized()\":{\"notice\":\"Check if the vault is fully initialized (a delegator and a slasher are set).\"},\"isSlasherInitialized()\":{\"notice\":\"Get if the slasher is initialized.\"},\"isWithdrawalsClaimed(uint256,address)\":{\"notice\":\"Get if the withdrawals are claimed for a particular account at a given epoch.\"},\"migrate(uint64,bytes)\":{\"notice\":\"Migrate this entity to a particular newer version using a given data.\"},\"nextEpochStart()\":{\"notice\":\"Get a start of the next vault epoch.\"},\"onSlash(uint256,uint48)\":{\"notice\":\"Slash callback for burning collateral.\"},\"previousEpochStart()\":{\"notice\":\"Get a start of the previous vault epoch.\"},\"redeem(address,uint256)\":{\"notice\":\"Redeem collateral from the vault (it will be claimable after the next epoch).\"},\"setDepositLimit(uint256)\":{\"notice\":\"Set a deposit limit.\"},\"setDepositWhitelist(bool)\":{\"notice\":\"Enable/disable deposit whitelist.\"},\"setDepositorWhitelistStatus(address,bool)\":{\"notice\":\"Set a depositor whitelist status.\"},\"setIsDepositLimit(bool)\":{\"notice\":\"Enable/disable deposit limit.\"},\"slashableBalanceOf(address)\":{\"notice\":\"Get a total amount of the collateral that can be slashed for a given account.\"},\"slasher()\":{\"notice\":\"Get a slasher (it provides networks a slashing mechanism).\"},\"staticDelegateCall(address,bytes)\":{\"notice\":\"Make a delegatecall from this contract to a given target contract with a particular data (always reverts with a return data).\"},\"totalStake()\":{\"notice\":\"Get a total amount of the collateral that can be slashed.\"},\"version()\":{\"notice\":\"Get the entity's version.\"},\"withdraw(address,uint256)\":{\"notice\":\"Withdraw collateral from the vault (it will be claimable after the next epoch).\"},\"withdrawalShares(uint256)\":{\"notice\":\"Get a total number of withdrawal shares at a given epoch.\"},\"withdrawalSharesOf(uint256,address)\":{\"notice\":\"Get a number of withdrawal shares for a particular account at a given epoch (zero if claimed).\"},\"withdrawals(uint256)\":{\"notice\":\"Get a total amount of the withdrawals at a given epoch.\"},\"withdrawalsOf(uint256,address)\":{\"notice\":\"Get withdrawals for a particular account at a given epoch (zero if claimed).\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/contracts/vault/Vault.sol\":\"Vault\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol\":{\"keccak256\":\"0x6662ec4e5cefca03eeadd073e9469df8d2944bb2ee8ec8f7622c2c46aab5f225\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4d8544c6f8daa4d1bc215c6a72fe0acdb748664a105b0e5efc19295667521d45\",\"dweb:/ipfs/QmdGWqdnXT8S3RgCR6aV8XHZrsybieMQLLnug1NtpSjEXN\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0xc163fcf9bb10138631a9ba5564df1fa25db9adff73bd9ee868a8ae1858fe093a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9706d43a0124053d9880f6e31a59f31bc0a6a3dc1acd66ce0a16e1111658c5f6\",\"dweb:/ipfs/QmUFmfowzkRwGtDu36cXV9SPTBHJ3n7dG9xQiK5B28jTf2\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609\",\"dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9\",\"dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardUpgradeable.sol\":{\"keccak256\":\"0xb44e086e941292cdc7f440de51478493894ef0b1aeccb0c4047445919f667f74\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://942dad22fbdc1669f025540ba63aa3ccfad5f8458fc5d4525b31ebf272e7af45\",\"dweb:/ipfs/Qmdo4X2M82aM3AMoW2kf2jhYkSCyC4T1pHNd6obdsDFnAB\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol\":{\"keccak256\":\"0xdaba3f7c42c55b2896353f32bd27d4d5f8bae741b3b05d4c53f67abc4dc47ce8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1fa2e61141c602510bcd2cd936ed9561922ac8772a9b9c9a9db091a74e354a45\",\"dweb:/ipfs/QmcHQDDoEBwJmwUbzoVkytvJsBx3KVHYFFnDkvRGWh9Wmh\"]},\"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0xb6b36edd6a2999fd243ff226d6cbf84bd71af2432bbd0dfe19392996a1d9cb41\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1fd2f35495652e57e3f99bc6c510bc5f7dd398a176ea2e72d8ed730aebc6ca26\",\"dweb:/ipfs/QmTQV6X4gkikTib49cho5iDX3JvSQbdsoEChoDwrk3CbbH\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c\",\"dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0x6008dabfe393240d73d7dd7688033f72740d570aa422254d29a7dce8568f3aff\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f5196ec75139918c6c7bb4251b36395e668f1fa6d206beba7e7520e74913940d\",\"dweb:/ipfs/QmSyqjksXxmm2mCG6qRd1yuwLykypkSVBbnBnGqJRcuJMi\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x37bb49513c49c87c4642a891b13b63571bc87013dde806617aa1efb54605f386\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b3036b3a83b7c48f96641f2a9002b9f2dcb6a5958dd670894ada21ae8229b3d0\",\"dweb:/ipfs/QmUNfSBdoVtjhETaUJCYcaC7pTMgbhht926tJ2uXJbiVd3\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0xaf28a975a78550e45f65e559a3ad6a5ad43b9b8a37366999abd1b7084eb70721\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b7bd24e224f67f65bfadf85dc2929fa965456bb2415478bd0125471b5ce35245\",\"dweb:/ipfs/QmRaydGr8BTHs1kvaZfsNU69pKzUAGFrvABn1KiRSbE51y\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875\",\"dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0xe19a4d5f31d2861e7344e8e535e2feafb913d806d3e2b5fe7782741a2a7094fe\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4aed79c0fa6f0546ed02f2f683e8f77f0fd2ed7eb34d8bbf3d373c9a6d95b13c\",\"dweb:/ipfs/QmWqVz6UAVqmnWU5pqYPt1o6iDEZyPaBraAA3rKfTTSfYj\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/Checkpoints.sol\":{\"keccak256\":\"0xbdc5e074d7dd6678f67e92b1a51a20226801a407b0e1af3da367c5d1ff4519ad\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a36cca6b22fff3db16fc789ff6c60eea71d4b156065d4d0c83a0bc5e91a77a8b\",\"dweb:/ipfs/QmYN3exd5AemxjBrN8XMB1p5LbbE16uC3sjbYjwi8AjcGR\"]},\"lib/openzeppelin-contracts/contracts/utils/types/Time.sol\":{\"keccak256\":\"0xc7755af115020049e4140f224f9ee88d7e1799ffb0646f37bf0df24bf6213f58\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7f09bf94d5274334ec021f61a04659db303f31e60460e14b709c9bf187740111\",\"dweb:/ipfs/QmNvgomZYUwFAt4cZbPWAiTeSZQreGehY9BK5xyVJsUttb\"]},\"src/contracts/common/MigratableEntity.sol\":{\"keccak256\":\"0x2d736f4dacd5d7e7697503bc426c78b8250fe1694ca157965ec178da6807de58\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://f1237acf96b4b9f9b69156e068eddd726a6e15bd8e87a18dc999cd4ba4da069c\",\"dweb:/ipfs/QmS6M8fiFFSeuJ4ZKKq1z8W7w4ybeHQSy5TLASGoc1LVic\"]},\"src/contracts/common/StaticDelegateCallable.sol\":{\"keccak256\":\"0x350029aa8955eacaffffaeb58babc5c98e80ebc5c5db388ed17ee6465f4a9d90\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://eb392a8ee9050e0af606897df63e3404e3829e8b688b580663892f9664195764\",\"dweb:/ipfs/QmaXC8jqV8UrrAFkzXTEv2fJF56sy33HhLxAzaRZmUxuXD\"]},\"src/contracts/libraries/Checkpoints.sol\":{\"keccak256\":\"0xba90097c8bfe0a975499428b5f8ac5569483c7d92ccc28c12d70de416aae040c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://12f5d93ca94cd06d3147db68993165a58e17903ed53682560de61f3085ad4609\",\"dweb:/ipfs/QmePiuAqvXprMLmFZkGZeGjvGPAvsEDHfCDv7BoQhXu9xE\"]},\"src/contracts/libraries/ERC4626Math.sol\":{\"keccak256\":\"0x8441160513c1cbeb1c3b9ee077bcc7e7ce20006b52a77c8dd39ff0ef89699939\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://943f8cc3e26ddf649f465f40c909819f5c864717c4baa339e9e403b9374a4653\",\"dweb:/ipfs/QmXPxi1sUDsrGprZdUgCzoPEosaZMv9ZhygWQ1vAi1phAB\"]},\"src/contracts/vault/Vault.sol\":{\"keccak256\":\"0x2ceff6ed3298c4cad144c99fcc79b51cb9397d6ebef00285b915848b476f8c2e\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://11f2fb3581854f3ab6e82e8d4935d9eb510c903a13c3f022346c2956a58f5307\",\"dweb:/ipfs/QmdUnoXoyYoG9SGWyQZCFyLDRUUX3eXyXetkRvw6jxqqBz\"]},\"src/contracts/vault/VaultStorage.sol\":{\"keccak256\":\"0x57db25b127d77ea3472de53e3a4af3354399655b9268638b99ca5925fa364a56\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://aa763d9a6ec508ae3abfb8228b72b9fd9525279e5135d4962e79ff059feb1173\",\"dweb:/ipfs/QmcbDR6E9wyEpu6V2FkEC4hnWy47zXA9LSKJde6zSGd33Q\"]},\"src/interfaces/common/IEntity.sol\":{\"keccak256\":\"0x8ef4b63d6da63489778ccd5f8d13ebdd527dd4b62730b2c616df5af7474d2d21\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a8d69576a9219d85c50816a18ad53a4d53cfcb27ed38b8cccc808dc2734b71b\",\"dweb:/ipfs/QmYVN3P4Q4REvBWJ97TbAcaxm3uyB2anV6NSGa6ZtSwcEv\"]},\"src/interfaces/common/IMigratableEntity.sol\":{\"keccak256\":\"0x8f5f2809f3afbe8ebfbb365dd7b57b4dd3b6f9943a6187eaf648d45895b8e3c4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ffe640537d539e7a4fde70d30d3e4c57f4ba9c2c25c450cea713aae38e8fd5c\",\"dweb:/ipfs/QmSUTGzvdcn1R1KB7tLThMRtESsfPbeXDhhhKWGtntzBds\"]},\"src/interfaces/common/IRegistry.sol\":{\"keccak256\":\"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014\",\"dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK\"]},\"src/interfaces/common/IStaticDelegateCallable.sol\":{\"keccak256\":\"0xa335d4e81b9071b7de66ef92b43ff20671d86516eb1be46fef29a3483cd3f5d5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d464b9db863c14c05547d2b23352f2e9b7b784799cf09f6bbc4906a2a74e3516\",\"dweb:/ipfs/QmUVWzFvJz7eEbDQKiFTTzwi7TEbjcs3VmwdM4kuptAKvi\"]},\"src/interfaces/delegator/IBaseDelegator.sol\":{\"keccak256\":\"0x96bb312f032e17accce3f8f80936d99468029d6b37c9ca74acdb4b026a0148ee\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2a66dcb5b7d1a6ef6a363431ea98ebd78bc4fdd3d7a134d9b542dc66e7d025c2\",\"dweb:/ipfs/QmRhTPLd2ZAyRHmJUFUcWKs9b3if49QY17LYZuRqWmghw8\"]},\"src/interfaces/slasher/IBaseSlasher.sol\":{\"keccak256\":\"0x7c82528b445659c313ab77335c407b0b6efe5e79027187bb287f7bc74202b404\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0274c90aa5df1aa6bb470a6aab53992fb14fd7e5472c9430416505b29647d9cf\",\"dweb:/ipfs/QmckbmJLDetPemVzCnnGcKYWAZV2BRFXGDsjiaec8jkHxx\"]},\"src/interfaces/vault/IVault.sol\":{\"keccak256\":\"0xffee01d383cd4e1a5530c614bf4360c1ef070c288abec9da1eb531b51bc07235\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://04f0046cac285d8ec44ebbb1f79dc94fab4495767190cad8364fbc1fafaadfb9\",\"dweb:/ipfs/QmUawAunwzXfCyShWfhKeThAgKtqe51hmrxvrXvM772M2R\"]},\"src/interfaces/vault/IVaultStorage.sol\":{\"keccak256\":\"0x592626f13754194f83047135de19229c49390bd59e34659b1bb38be71d973a22\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://06a6a9dfddd05e580b32bebe2cff4f63ba26a653180676d58225dd30d9c89d3e\",\"dweb:/ipfs/QmdgzBeY6Sxo8mGtyBxtv1tM1c2kU6J6zjeRd7vuXm4DU6\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.25+commit.b61c2a91"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"delegatorFactory","type":"address"},{"internalType":"address","name":"slasherFactory","type":"address"},{"internalType":"address","name":"vaultFactory","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"AccessControlBadConfirmation"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bytes32","name":"neededRole","type":"bytes32"}],"type":"error","name":"AccessControlUnauthorizedAccount"},{"inputs":[{"internalType":"address","name":"target","type":"address"}],"type":"error","name":"AddressEmptyCode"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"AddressInsufficientBalance"},{"inputs":[],"type":"error","name":"AlreadyClaimed"},{"inputs":[],"type":"error","name":"AlreadyInitialized"},{"inputs":[],"type":"error","name":"AlreadySet"},{"inputs":[],"type":"error","name":"CheckpointUnorderedInsertion"},{"inputs":[],"type":"error","name":"DelegatorAlreadyInitialized"},{"inputs":[],"type":"error","name":"DepositLimitReached"},{"inputs":[],"type":"error","name":"FailedInnerCall"},{"inputs":[],"type":"error","name":"InsufficientClaim"},{"inputs":[],"type":"error","name":"InsufficientDeposit"},{"inputs":[],"type":"error","name":"InsufficientRedemption"},{"inputs":[],"type":"error","name":"InsufficientWithdrawal"},{"inputs":[],"type":"error","name":"InvalidAccount"},{"inputs":[],"type":"error","name":"InvalidCaptureEpoch"},{"inputs":[],"type":"error","name":"InvalidClaimer"},{"inputs":[],"type":"error","name":"InvalidCollateral"},{"inputs":[],"type":"error","name":"InvalidDelegator"},{"inputs":[],"type":"error","name":"InvalidEpoch"},{"inputs":[],"type":"error","name":"InvalidEpochDuration"},{"inputs":[],"type":"error","name":"InvalidInitialization"},{"inputs":[],"type":"error","name":"InvalidLengthEpochs"},{"inputs":[],"type":"error","name":"InvalidOnBehalfOf"},{"inputs":[],"type":"error","name":"InvalidRecipient"},{"inputs":[],"type":"error","name":"InvalidSlasher"},{"inputs":[],"type":"error","name":"InvalidTimestamp"},{"inputs":[],"type":"error","name":"MathOverflowedMulDiv"},{"inputs":[],"type":"error","name":"MissingRoles"},{"inputs":[],"type":"error","name":"NoPreviousEpoch"},{"inputs":[],"type":"error","name":"NotDelegator"},{"inputs":[],"type":"error","name":"NotFactory"},{"inputs":[],"type":"error","name":"NotInitialized"},{"inputs":[],"type":"error","name":"NotInitializing"},{"inputs":[],"type":"error","name":"NotSlasher"},{"inputs":[],"type":"error","name":"NotWhitelistedDepositor"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"OwnableInvalidOwner"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"OwnableUnauthorizedAccount"},{"inputs":[],"type":"error","name":"ReentrancyGuardReentrantCall"},{"inputs":[{"internalType":"uint8","name":"bits","type":"uint8"},{"internalType":"uint256","name":"value","type":"uint256"}],"type":"error","name":"SafeCastOverflowedUintDowncast"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"type":"error","name":"SafeERC20FailedOperation"},{"inputs":[],"type":"error","name":"SlasherAlreadyInitialized"},{"inputs":[],"type":"error","name":"TooMuchRedeem"},{"inputs":[],"type":"error","name":"TooMuchWithdraw"},{"inputs":[{"internalType":"address","name":"claimer","type":"address","indexed":true},{"internalType":"address","name":"recipient","type":"address","indexed":true},{"internalType":"uint256","name":"epoch","type":"uint256","indexed":false},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"Claim","anonymous":false},{"inputs":[{"internalType":"address","name":"claimer","type":"address","indexed":true},{"internalType":"address","name":"recipient","type":"address","indexed":true},{"internalType":"uint256[]","name":"epochs","type":"uint256[]","indexed":false},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"ClaimBatch","anonymous":false},{"inputs":[{"internalType":"address","name":"depositor","type":"address","indexed":true},{"internalType":"address","name":"onBehalfOf","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false},{"internalType":"uint256","name":"shares","type":"uint256","indexed":false}],"type":"event","name":"Deposit","anonymous":false},{"inputs":[{"internalType":"uint64","name":"version","type":"uint64","indexed":false}],"type":"event","name":"Initialized","anonymous":false},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256","indexed":false},{"internalType":"uint48","name":"captureTimestamp","type":"uint48","indexed":false},{"internalType":"uint256","name":"slashedAmount","type":"uint256","indexed":false}],"type":"event","name":"OnSlash","anonymous":false},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"bytes32","name":"previousAdminRole","type":"bytes32","indexed":true},{"internalType":"bytes32","name":"newAdminRole","type":"bytes32","indexed":true}],"type":"event","name":"RoleAdminChanged","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"address","name":"sender","type":"address","indexed":true}],"type":"event","name":"RoleGranted","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"address","name":"sender","type":"address","indexed":true}],"type":"event","name":"RoleRevoked","anonymous":false},{"inputs":[{"internalType":"address","name":"delegator","type":"address","indexed":true}],"type":"event","name":"SetDelegator","anonymous":false},{"inputs":[{"internalType":"uint256","name":"limit","type":"uint256","indexed":false}],"type":"event","name":"SetDepositLimit","anonymous":false},{"inputs":[{"internalType":"bool","name":"status","type":"bool","indexed":false}],"type":"event","name":"SetDepositWhitelist","anonymous":false},{"inputs":[{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"bool","name":"status","type":"bool","indexed":false}],"type":"event","name":"SetDepositorWhitelistStatus","anonymous":false},{"inputs":[{"internalType":"bool","name":"status","type":"bool","indexed":false}],"type":"event","name":"SetIsDepositLimit","anonymous":false},{"inputs":[{"internalType":"address","name":"slasher","type":"address","indexed":true}],"type":"event","name":"SetSlasher","anonymous":false},{"inputs":[{"internalType":"address","name":"withdrawer","type":"address","indexed":true},{"internalType":"address","name":"claimer","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false},{"internalType":"uint256","name":"burnedShares","type":"uint256","indexed":false},{"internalType":"uint256","name":"mintedShares","type":"uint256","indexed":false}],"type":"event","name":"Withdraw","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"DEFAULT_ADMIN_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"DELEGATOR_FACTORY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"DEPOSITOR_WHITELIST_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"DEPOSIT_LIMIT_SET_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"DEPOSIT_WHITELIST_SET_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"FACTORY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"IS_DEPOSIT_LIMIT_SET_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"SLASHER_FACTORY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"activeBalanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint48","name":"timestamp","type":"uint48"},{"internalType":"bytes","name":"hints","type":"bytes"}],"stateMutability":"view","type":"function","name":"activeBalanceOfAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"activeShares","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint48","name":"timestamp","type":"uint48"},{"internalType":"bytes","name":"hint","type":"bytes"}],"stateMutability":"view","type":"function","name":"activeSharesAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"activeSharesOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint48","name":"timestamp","type":"uint48"},{"internalType":"bytes","name":"hint","type":"bytes"}],"stateMutability":"view","type":"function","name":"activeSharesOfAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"activeStake","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint48","name":"timestamp","type":"uint48"},{"internalType":"bytes","name":"hint","type":"bytes"}],"stateMutability":"view","type":"function","name":"activeStakeAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"burner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"epoch","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"claim","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256[]","name":"epochs","type":"uint256[]"}],"stateMutability":"nonpayable","type":"function","name":"claimBatch","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"collateral","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"currentEpoch","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"currentEpochStart","outputs":[{"internalType":"uint48","name":"","type":"uint48"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"delegator","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"onBehalfOf","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"deposit","outputs":[{"internalType":"uint256","name":"depositedAmount","type":"uint256"},{"internalType":"uint256","name":"mintedShares","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"depositLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"depositWhitelist","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint48","name":"timestamp","type":"uint48"}],"stateMutability":"view","type":"function","name":"epochAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"epochDuration","outputs":[{"internalType":"uint48","name":"","type":"uint48"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"epochDurationInit","outputs":[{"internalType":"uint48","name":"","type":"uint48"}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getRoleAdmin","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"grantRole"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"hasRole","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint64","name":"initialVersion","type":"uint64"},{"internalType":"address","name":"owner_","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[],"stateMutability":"view","type":"function","name":"isDelegatorInitialized","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"isDepositLimit","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"isDepositorWhitelisted","outputs":[{"internalType":"bool","name":"value","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"isInitialized","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"isSlasherInitialized","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint256","name":"epoch","type":"uint256"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"isWithdrawalsClaimed","outputs":[{"internalType":"bool","name":"value","type":"bool"}]},{"inputs":[{"internalType":"uint64","name":"newVersion","type":"uint64"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"migrate"},{"inputs":[],"stateMutability":"view","type":"function","name":"nextEpochStart","outputs":[{"internalType":"uint48","name":"","type":"uint48"}]},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint48","name":"captureTimestamp","type":"uint48"}],"stateMutability":"nonpayable","type":"function","name":"onSlash","outputs":[{"internalType":"uint256","name":"slashedAmount","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"previousEpochStart","outputs":[{"internalType":"uint48","name":"","type":"uint48"}]},{"inputs":[{"internalType":"address","name":"claimer","type":"address"},{"internalType":"uint256","name":"shares","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"redeem","outputs":[{"internalType":"uint256","name":"withdrawnAssets","type":"uint256"},{"internalType":"uint256","name":"mintedShares","type":"uint256"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"callerConfirmation","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"renounceRole"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"revokeRole"},{"inputs":[{"internalType":"address","name":"delegator_","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setDelegator"},{"inputs":[{"internalType":"uint256","name":"limit","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setDepositLimit"},{"inputs":[{"internalType":"bool","name":"status","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"setDepositWhitelist"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"status","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"setDepositorWhitelistStatus"},{"inputs":[{"internalType":"bool","name":"status","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"setIsDepositLimit"},{"inputs":[{"internalType":"address","name":"slasher_","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setSlasher"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"slashableBalanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"slasher","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"staticDelegateCall"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"totalStake","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"},{"inputs":[],"stateMutability":"view","type":"function","name":"version","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[{"internalType":"address","name":"claimer","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"withdraw","outputs":[{"internalType":"uint256","name":"burnedShares","type":"uint256"},{"internalType":"uint256","name":"mintedShares","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"epoch","type":"uint256"}],"stateMutability":"view","type":"function","name":"withdrawalShares","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"epoch","type":"uint256"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"withdrawalSharesOf","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"epoch","type":"uint256"}],"stateMutability":"view","type":"function","name":"withdrawals","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"epoch","type":"uint256"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"withdrawalsOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]}],"devdoc":{"kind":"dev","methods":{"activeBalanceOf(address)":{"params":{"account":"account to get the active balance for"},"returns":{"_0":"active balance for the account"}},"activeBalanceOfAt(address,uint48,bytes)":{"params":{"account":"account to get the active balance for","hints":"hints for checkpoints' indexes","timestamp":"time point to get the active balance for the account at"},"returns":{"_0":"active balance for the account at the timestamp"}},"activeShares()":{"returns":{"_0":"total number of active shares"}},"activeSharesAt(uint48,bytes)":{"params":{"hint":"hint for the checkpoint index","timestamp":"time point to get the total number of active shares at"},"returns":{"_0":"total number of active shares at the timestamp"}},"activeSharesOf(address)":{"params":{"account":"account to get the number of active shares for"},"returns":{"_0":"number of active shares for the account"}},"activeSharesOfAt(address,uint48,bytes)":{"params":{"account":"account to get the number of active shares for","hint":"hint for the checkpoint index","timestamp":"time point to get the number of active shares for the account at"},"returns":{"_0":"number of active shares for the account at the timestamp"}},"activeStake()":{"returns":{"_0":"total amount of active stake"}},"activeStakeAt(uint48,bytes)":{"params":{"hint":"hint for the checkpoint index","timestamp":"time point to get the total active stake at"},"returns":{"_0":"total amount of active stake at the timestamp"}},"claim(address,uint256)":{"params":{"epoch":"epoch to claim the collateral for","recipient":"account that receives the collateral"},"returns":{"amount":"amount of the collateral claimed"}},"claimBatch(address,uint256[])":{"params":{"epochs":"epochs to claim the collateral for","recipient":"account that receives the collateral"},"returns":{"amount":"amount of the collateral claimed"}},"currentEpoch()":{"returns":{"_0":"current epoch"}},"currentEpochStart()":{"returns":{"_0":"start of the current epoch"}},"deposit(address,uint256)":{"params":{"amount":"amount of the collateral to deposit","onBehalfOf":"account the deposit is made on behalf of"},"returns":{"depositedAmount":"real amount of the collateral deposited","mintedShares":"amount of the active shares minted"}},"epochAt(uint48)":{"details":"Reverts if the timestamp is less than the start of the epoch 0.","params":{"timestamp":"time point to get the epoch at"},"returns":{"_0":"epoch at the timestamp"}},"getRoleAdmin(bytes32)":{"details":"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}."},"grantRole(bytes32,address)":{"details":"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event."},"hasRole(bytes32,address)":{"details":"Returns `true` if `account` has been granted `role`."},"initialize(uint64,address,bytes)":{"params":{"data":"some data to use","initialVersion":"initial version of the entity","owner":"initial owner of the entity"}},"isInitialized()":{"returns":{"_0":"if the vault is fully initialized"}},"migrate(uint64,bytes)":{"params":{"data":"some data to use","newVersion":"new version of the entity"}},"nextEpochStart()":{"returns":{"_0":"start of the next epoch"}},"onSlash(uint256,uint48)":{"details":"Only the slasher can call this function.","params":{"amount":"amount to slash","captureTimestamp":"time point when the stake was captured"},"returns":{"slashedAmount":"real amount of the collateral slashed"}},"owner()":{"details":"Returns the address of the current owner."},"previousEpochStart()":{"details":"Reverts if the current epoch is 0.","returns":{"_0":"start of the previous epoch"}},"redeem(address,uint256)":{"params":{"claimer":"account that needs to claim the withdrawal","shares":"amount of the active shares to redeem"},"returns":{"mintedShares":"amount of the epoch withdrawal shares minted","withdrawnAssets":"amount of the collateral withdrawn"}},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner."},"renounceRole(bytes32,address)":{"details":"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `callerConfirmation`. May emit a {RoleRevoked} event."},"revokeRole(bytes32,address)":{"details":"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event."},"setDepositLimit(uint256)":{"details":"Only a DEPOSIT_LIMIT_SET_ROLE holder can call this function.","params":{"limit":"deposit limit (maximum amount of the collateral that can be in the vault simultaneously)"}},"setDepositWhitelist(bool)":{"details":"Only a DEPOSIT_WHITELIST_SET_ROLE holder can call this function.","params":{"status":"if enabling deposit whitelist"}},"setDepositorWhitelistStatus(address,bool)":{"details":"Only a DEPOSITOR_WHITELIST_ROLE holder can call this function.","params":{"account":"account for which the whitelist status is set","status":"if whitelisting the account"}},"setIsDepositLimit(bool)":{"details":"Only a IS_DEPOSIT_LIMIT_SET_ROLE holder can call this function.","params":{"status":"if enabling deposit limit"}},"slashableBalanceOf(address)":{"params":{"account":"account to get the slashable collateral for"},"returns":{"_0":"total amount of the account's slashable collateral"}},"staticDelegateCall(address,bytes)":{"details":"It allows to use this contract's storage on-chain.","params":{"data":"data to make a delegatecall with","target":"address of the contract to make a delegatecall to"}},"supportsInterface(bytes4)":{"details":"See {IERC165-supportsInterface}."},"totalStake()":{"returns":{"_0":"total amount of the slashable collateral"}},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."},"version()":{"details":"Starts from 1.","returns":{"_0":"version of the entity"}},"withdraw(address,uint256)":{"params":{"amount":"amount of the collateral to withdraw","claimer":"account that needs to claim the withdrawal"},"returns":{"burnedShares":"amount of the active shares burned","mintedShares":"amount of the epoch withdrawal shares minted"}},"withdrawalsOf(uint256,address)":{"params":{"account":"account to get the withdrawals for","epoch":"epoch to get the withdrawals for the account at"},"returns":{"_0":"withdrawals for the account at the epoch"}}},"version":1},"userdoc":{"kind":"user","methods":{"DELEGATOR_FACTORY()":{"notice":"Get the delegator factory's address."},"DEPOSITOR_WHITELIST_ROLE()":{"notice":"Get a depositor whitelist status setter's role."},"DEPOSIT_LIMIT_SET_ROLE()":{"notice":"Get a deposit limit setter's role."},"DEPOSIT_WHITELIST_SET_ROLE()":{"notice":"Get a deposit whitelist enabler/disabler's role."},"FACTORY()":{"notice":"Get the factory's address."},"IS_DEPOSIT_LIMIT_SET_ROLE()":{"notice":"Get a deposit limit enabler/disabler's role."},"SLASHER_FACTORY()":{"notice":"Get the slasher factory's address."},"activeBalanceOf(address)":{"notice":"Get an active balance for a particular account."},"activeBalanceOfAt(address,uint48,bytes)":{"notice":"Get an active balance for a particular account at a given timestamp using hints."},"activeShares()":{"notice":"Get a total number of active shares in the vault."},"activeSharesAt(uint48,bytes)":{"notice":"Get a total number of active shares in the vault at a given timestamp using a hint."},"activeSharesOf(address)":{"notice":"Get a number of active shares for a particular account."},"activeSharesOfAt(address,uint48,bytes)":{"notice":"Get a total number of active shares for a particular account at a given timestamp using a hint."},"activeStake()":{"notice":"Get a total amount of active stake in the vault."},"activeStakeAt(uint48,bytes)":{"notice":"Get a total amount of active stake in the vault at a given timestamp using a hint."},"burner()":{"notice":"Get a burner to issue debt to (e.g., 0xdEaD or some unwrapper contract)."},"claim(address,uint256)":{"notice":"Claim collateral from the vault."},"claimBatch(address,uint256[])":{"notice":"Claim collateral from the vault for multiple epochs."},"collateral()":{"notice":"Get a vault collateral."},"currentEpoch()":{"notice":"Get a current vault epoch."},"currentEpochStart()":{"notice":"Get a start of the current vault epoch."},"delegator()":{"notice":"Get a delegator (it delegates the vault's stake to networks and operators)."},"deposit(address,uint256)":{"notice":"Deposit collateral into the vault."},"depositLimit()":{"notice":"Get a deposit limit (maximum amount of the active stake that can be in the vault simultaneously)."},"depositWhitelist()":{"notice":"Get if the deposit whitelist is enabled."},"epochAt(uint48)":{"notice":"Get an epoch at a given timestamp."},"epochDuration()":{"notice":"Get a duration of the vault epoch."},"epochDurationInit()":{"notice":"Get a time point of the epoch duration set."},"initialize(uint64,address,bytes)":{"notice":"Initialize this entity contract by using a given data and setting a particular version and owner."},"isDelegatorInitialized()":{"notice":"Get if the delegator is initialized."},"isDepositLimit()":{"notice":"Get if the deposit limit is set."},"isDepositorWhitelisted(address)":{"notice":"Get if a given account is whitelisted as a depositor."},"isInitialized()":{"notice":"Check if the vault is fully initialized (a delegator and a slasher are set)."},"isSlasherInitialized()":{"notice":"Get if the slasher is initialized."},"isWithdrawalsClaimed(uint256,address)":{"notice":"Get if the withdrawals are claimed for a particular account at a given epoch."},"migrate(uint64,bytes)":{"notice":"Migrate this entity to a particular newer version using a given data."},"nextEpochStart()":{"notice":"Get a start of the next vault epoch."},"onSlash(uint256,uint48)":{"notice":"Slash callback for burning collateral."},"previousEpochStart()":{"notice":"Get a start of the previous vault epoch."},"redeem(address,uint256)":{"notice":"Redeem collateral from the vault (it will be claimable after the next epoch)."},"setDepositLimit(uint256)":{"notice":"Set a deposit limit."},"setDepositWhitelist(bool)":{"notice":"Enable/disable deposit whitelist."},"setDepositorWhitelistStatus(address,bool)":{"notice":"Set a depositor whitelist status."},"setIsDepositLimit(bool)":{"notice":"Enable/disable deposit limit."},"slashableBalanceOf(address)":{"notice":"Get a total amount of the collateral that can be slashed for a given account."},"slasher()":{"notice":"Get a slasher (it provides networks a slashing mechanism)."},"staticDelegateCall(address,bytes)":{"notice":"Make a delegatecall from this contract to a given target contract with a particular data (always reverts with a return data)."},"totalStake()":{"notice":"Get a total amount of the collateral that can be slashed."},"version()":{"notice":"Get the entity's version."},"withdraw(address,uint256)":{"notice":"Withdraw collateral from the vault (it will be claimable after the next epoch)."},"withdrawalShares(uint256)":{"notice":"Get a total number of withdrawal shares at a given epoch."},"withdrawalSharesOf(uint256,address)":{"notice":"Get a number of withdrawal shares for a particular account at a given epoch (zero if claimed)."},"withdrawals(uint256)":{"notice":"Get a total amount of the withdrawals at a given epoch."},"withdrawalsOf(uint256,address)":{"notice":"Get withdrawals for a particular account at a given epoch (zero if claimed)."}},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/contracts/vault/Vault.sol":"Vault"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol":{"keccak256":"0x6662ec4e5cefca03eeadd073e9469df8d2944bb2ee8ec8f7622c2c46aab5f225","urls":["bzz-raw://4d8544c6f8daa4d1bc215c6a72fe0acdb748664a105b0e5efc19295667521d45","dweb:/ipfs/QmdGWqdnXT8S3RgCR6aV8XHZrsybieMQLLnug1NtpSjEXN"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol":{"keccak256":"0xc163fcf9bb10138631a9ba5564df1fa25db9adff73bd9ee868a8ae1858fe093a","urls":["bzz-raw://9706d43a0124053d9880f6e31a59f31bc0a6a3dc1acd66ce0a16e1111658c5f6","dweb:/ipfs/QmUFmfowzkRwGtDu36cXV9SPTBHJ3n7dG9xQiK5B28jTf2"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b","urls":["bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609","dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol":{"keccak256":"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397","urls":["bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9","dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardUpgradeable.sol":{"keccak256":"0xb44e086e941292cdc7f440de51478493894ef0b1aeccb0c4047445919f667f74","urls":["bzz-raw://942dad22fbdc1669f025540ba63aa3ccfad5f8458fc5d4525b31ebf272e7af45","dweb:/ipfs/Qmdo4X2M82aM3AMoW2kf2jhYkSCyC4T1pHNd6obdsDFnAB"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol":{"keccak256":"0xdaba3f7c42c55b2896353f32bd27d4d5f8bae741b3b05d4c53f67abc4dc47ce8","urls":["bzz-raw://1fa2e61141c602510bcd2cd936ed9561922ac8772a9b9c9a9db091a74e354a45","dweb:/ipfs/QmcHQDDoEBwJmwUbzoVkytvJsBx3KVHYFFnDkvRGWh9Wmh"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol":{"keccak256":"0xb6b36edd6a2999fd243ff226d6cbf84bd71af2432bbd0dfe19392996a1d9cb41","urls":["bzz-raw://1fd2f35495652e57e3f99bc6c510bc5f7dd398a176ea2e72d8ed730aebc6ca26","dweb:/ipfs/QmTQV6X4gkikTib49cho5iDX3JvSQbdsoEChoDwrk3CbbH"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70","urls":["bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c","dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol":{"keccak256":"0x6008dabfe393240d73d7dd7688033f72740d570aa422254d29a7dce8568f3aff","urls":["bzz-raw://f5196ec75139918c6c7bb4251b36395e668f1fa6d206beba7e7520e74913940d","dweb:/ipfs/QmSyqjksXxmm2mCG6qRd1yuwLykypkSVBbnBnGqJRcuJMi"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0x37bb49513c49c87c4642a891b13b63571bc87013dde806617aa1efb54605f386","urls":["bzz-raw://b3036b3a83b7c48f96641f2a9002b9f2dcb6a5958dd670894ada21ae8229b3d0","dweb:/ipfs/QmUNfSBdoVtjhETaUJCYcaC7pTMgbhht926tJ2uXJbiVd3"],"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/introspection/IERC165.sol":{"keccak256":"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b","urls":["bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df","dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d","urls":["bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875","dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol":{"keccak256":"0xe19a4d5f31d2861e7344e8e535e2feafb913d806d3e2b5fe7782741a2a7094fe","urls":["bzz-raw://4aed79c0fa6f0546ed02f2f683e8f77f0fd2ed7eb34d8bbf3d373c9a6d95b13c","dweb:/ipfs/QmWqVz6UAVqmnWU5pqYPt1o6iDEZyPaBraAA3rKfTTSfYj"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/Checkpoints.sol":{"keccak256":"0xbdc5e074d7dd6678f67e92b1a51a20226801a407b0e1af3da367c5d1ff4519ad","urls":["bzz-raw://a36cca6b22fff3db16fc789ff6c60eea71d4b156065d4d0c83a0bc5e91a77a8b","dweb:/ipfs/QmYN3exd5AemxjBrN8XMB1p5LbbE16uC3sjbYjwi8AjcGR"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/types/Time.sol":{"keccak256":"0xc7755af115020049e4140f224f9ee88d7e1799ffb0646f37bf0df24bf6213f58","urls":["bzz-raw://7f09bf94d5274334ec021f61a04659db303f31e60460e14b709c9bf187740111","dweb:/ipfs/QmNvgomZYUwFAt4cZbPWAiTeSZQreGehY9BK5xyVJsUttb"],"license":"MIT"},"src/contracts/common/MigratableEntity.sol":{"keccak256":"0x2d736f4dacd5d7e7697503bc426c78b8250fe1694ca157965ec178da6807de58","urls":["bzz-raw://f1237acf96b4b9f9b69156e068eddd726a6e15bd8e87a18dc999cd4ba4da069c","dweb:/ipfs/QmS6M8fiFFSeuJ4ZKKq1z8W7w4ybeHQSy5TLASGoc1LVic"],"license":"BUSL-1.1"},"src/contracts/common/StaticDelegateCallable.sol":{"keccak256":"0x350029aa8955eacaffffaeb58babc5c98e80ebc5c5db388ed17ee6465f4a9d90","urls":["bzz-raw://eb392a8ee9050e0af606897df63e3404e3829e8b688b580663892f9664195764","dweb:/ipfs/QmaXC8jqV8UrrAFkzXTEv2fJF56sy33HhLxAzaRZmUxuXD"],"license":"BUSL-1.1"},"src/contracts/libraries/Checkpoints.sol":{"keccak256":"0xba90097c8bfe0a975499428b5f8ac5569483c7d92ccc28c12d70de416aae040c","urls":["bzz-raw://12f5d93ca94cd06d3147db68993165a58e17903ed53682560de61f3085ad4609","dweb:/ipfs/QmePiuAqvXprMLmFZkGZeGjvGPAvsEDHfCDv7BoQhXu9xE"],"license":"MIT"},"src/contracts/libraries/ERC4626Math.sol":{"keccak256":"0x8441160513c1cbeb1c3b9ee077bcc7e7ce20006b52a77c8dd39ff0ef89699939","urls":["bzz-raw://943f8cc3e26ddf649f465f40c909819f5c864717c4baa339e9e403b9374a4653","dweb:/ipfs/QmXPxi1sUDsrGprZdUgCzoPEosaZMv9ZhygWQ1vAi1phAB"],"license":"MIT"},"src/contracts/vault/Vault.sol":{"keccak256":"0x2ceff6ed3298c4cad144c99fcc79b51cb9397d6ebef00285b915848b476f8c2e","urls":["bzz-raw://11f2fb3581854f3ab6e82e8d4935d9eb510c903a13c3f022346c2956a58f5307","dweb:/ipfs/QmdUnoXoyYoG9SGWyQZCFyLDRUUX3eXyXetkRvw6jxqqBz"],"license":"BUSL-1.1"},"src/contracts/vault/VaultStorage.sol":{"keccak256":"0x57db25b127d77ea3472de53e3a4af3354399655b9268638b99ca5925fa364a56","urls":["bzz-raw://aa763d9a6ec508ae3abfb8228b72b9fd9525279e5135d4962e79ff059feb1173","dweb:/ipfs/QmcbDR6E9wyEpu6V2FkEC4hnWy47zXA9LSKJde6zSGd33Q"],"license":"BUSL-1.1"},"src/interfaces/common/IEntity.sol":{"keccak256":"0x8ef4b63d6da63489778ccd5f8d13ebdd527dd4b62730b2c616df5af7474d2d21","urls":["bzz-raw://5a8d69576a9219d85c50816a18ad53a4d53cfcb27ed38b8cccc808dc2734b71b","dweb:/ipfs/QmYVN3P4Q4REvBWJ97TbAcaxm3uyB2anV6NSGa6ZtSwcEv"],"license":"MIT"},"src/interfaces/common/IMigratableEntity.sol":{"keccak256":"0x8f5f2809f3afbe8ebfbb365dd7b57b4dd3b6f9943a6187eaf648d45895b8e3c4","urls":["bzz-raw://0ffe640537d539e7a4fde70d30d3e4c57f4ba9c2c25c450cea713aae38e8fd5c","dweb:/ipfs/QmSUTGzvdcn1R1KB7tLThMRtESsfPbeXDhhhKWGtntzBds"],"license":"MIT"},"src/interfaces/common/IRegistry.sol":{"keccak256":"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb","urls":["bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014","dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK"],"license":"MIT"},"src/interfaces/common/IStaticDelegateCallable.sol":{"keccak256":"0xa335d4e81b9071b7de66ef92b43ff20671d86516eb1be46fef29a3483cd3f5d5","urls":["bzz-raw://d464b9db863c14c05547d2b23352f2e9b7b784799cf09f6bbc4906a2a74e3516","dweb:/ipfs/QmUVWzFvJz7eEbDQKiFTTzwi7TEbjcs3VmwdM4kuptAKvi"],"license":"MIT"},"src/interfaces/delegator/IBaseDelegator.sol":{"keccak256":"0x96bb312f032e17accce3f8f80936d99468029d6b37c9ca74acdb4b026a0148ee","urls":["bzz-raw://2a66dcb5b7d1a6ef6a363431ea98ebd78bc4fdd3d7a134d9b542dc66e7d025c2","dweb:/ipfs/QmRhTPLd2ZAyRHmJUFUcWKs9b3if49QY17LYZuRqWmghw8"],"license":"MIT"},"src/interfaces/slasher/IBaseSlasher.sol":{"keccak256":"0x7c82528b445659c313ab77335c407b0b6efe5e79027187bb287f7bc74202b404","urls":["bzz-raw://0274c90aa5df1aa6bb470a6aab53992fb14fd7e5472c9430416505b29647d9cf","dweb:/ipfs/QmckbmJLDetPemVzCnnGcKYWAZV2BRFXGDsjiaec8jkHxx"],"license":"MIT"},"src/interfaces/vault/IVault.sol":{"keccak256":"0xffee01d383cd4e1a5530c614bf4360c1ef070c288abec9da1eb531b51bc07235","urls":["bzz-raw://04f0046cac285d8ec44ebbb1f79dc94fab4495767190cad8364fbc1fafaadfb9","dweb:/ipfs/QmUawAunwzXfCyShWfhKeThAgKtqe51hmrxvrXvM772M2R"],"license":"MIT"},"src/interfaces/vault/IVaultStorage.sol":{"keccak256":"0x592626f13754194f83047135de19229c49390bd59e34659b1bb38be71d973a22","urls":["bzz-raw://06a6a9dfddd05e580b32bebe2cff4f63ba26a653180676d58225dd30d9c89d3e","dweb:/ipfs/QmdgzBeY6Sxo8mGtyBxtv1tM1c2kU6J6zjeRd7vuXm4DU6"],"license":"MIT"}},"version":1},"id":95} \ No newline at end of file +{"abi":[{"type":"constructor","inputs":[{"name":"delegatorFactory","type":"address","internalType":"address"},{"name":"slasherFactory","type":"address","internalType":"address"},{"name":"vaultFactory","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"DEFAULT_ADMIN_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"DELEGATOR_FACTORY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"DEPOSITOR_WHITELIST_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"DEPOSIT_LIMIT_SET_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"DEPOSIT_WHITELIST_SET_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"FACTORY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"IS_DEPOSIT_LIMIT_SET_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"SLASHER_FACTORY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"activeBalanceOf","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"activeBalanceOfAt","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"timestamp","type":"uint48","internalType":"uint48"},{"name":"hints","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"activeShares","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"activeSharesAt","inputs":[{"name":"timestamp","type":"uint48","internalType":"uint48"},{"name":"hint","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"activeSharesOf","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"activeSharesOfAt","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"timestamp","type":"uint48","internalType":"uint48"},{"name":"hint","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"activeStake","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"activeStakeAt","inputs":[{"name":"timestamp","type":"uint48","internalType":"uint48"},{"name":"hint","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"burner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"claim","inputs":[{"name":"recipient","type":"address","internalType":"address"},{"name":"epoch","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"claimBatch","inputs":[{"name":"recipient","type":"address","internalType":"address"},{"name":"epochs","type":"uint256[]","internalType":"uint256[]"}],"outputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"collateral","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"currentEpoch","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"currentEpochStart","inputs":[],"outputs":[{"name":"","type":"uint48","internalType":"uint48"}],"stateMutability":"view"},{"type":"function","name":"delegator","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"deposit","inputs":[{"name":"onBehalfOf","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"depositedAmount","type":"uint256","internalType":"uint256"},{"name":"mintedShares","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"depositLimit","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"depositWhitelist","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"epochAt","inputs":[{"name":"timestamp","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"epochDuration","inputs":[],"outputs":[{"name":"","type":"uint48","internalType":"uint48"}],"stateMutability":"view"},{"type":"function","name":"epochDurationInit","inputs":[],"outputs":[{"name":"","type":"uint48","internalType":"uint48"}],"stateMutability":"view"},{"type":"function","name":"getRoleAdmin","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"grantRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"hasRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"initialize","inputs":[{"name":"initialVersion","type":"uint64","internalType":"uint64"},{"name":"owner_","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"isDelegatorInitialized","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isDepositLimit","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isDepositorWhitelisted","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"value","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isInitialized","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isSlasherInitialized","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isWithdrawalsClaimed","inputs":[{"name":"epoch","type":"uint256","internalType":"uint256"},{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"value","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"migrate","inputs":[{"name":"newVersion","type":"uint64","internalType":"uint64"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"nextEpochStart","inputs":[],"outputs":[{"name":"","type":"uint48","internalType":"uint48"}],"stateMutability":"view"},{"type":"function","name":"onSlash","inputs":[{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"captureTimestamp","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"slashedAmount","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"previousEpochStart","inputs":[],"outputs":[{"name":"","type":"uint48","internalType":"uint48"}],"stateMutability":"view"},{"type":"function","name":"redeem","inputs":[{"name":"claimer","type":"address","internalType":"address"},{"name":"shares","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"withdrawnAssets","type":"uint256","internalType":"uint256"},{"name":"mintedShares","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"renounceRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"callerConfirmation","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"revokeRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setDelegator","inputs":[{"name":"delegator_","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setDepositLimit","inputs":[{"name":"limit","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setDepositWhitelist","inputs":[{"name":"status","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setDepositorWhitelistStatus","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"status","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setIsDepositLimit","inputs":[{"name":"status","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setSlasher","inputs":[{"name":"slasher_","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"slashableBalanceOf","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"slasher","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"staticDelegateCall","inputs":[{"name":"target","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"totalStake","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"version","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"withdraw","inputs":[{"name":"claimer","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"burnedShares","type":"uint256","internalType":"uint256"},{"name":"mintedShares","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"withdrawalShares","inputs":[{"name":"epoch","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"withdrawalSharesOf","inputs":[{"name":"epoch","type":"uint256","internalType":"uint256"},{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"withdrawals","inputs":[{"name":"epoch","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"withdrawalsOf","inputs":[{"name":"epoch","type":"uint256","internalType":"uint256"},{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"event","name":"Claim","inputs":[{"name":"claimer","type":"address","indexed":true,"internalType":"address"},{"name":"recipient","type":"address","indexed":true,"internalType":"address"},{"name":"epoch","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"ClaimBatch","inputs":[{"name":"claimer","type":"address","indexed":true,"internalType":"address"},{"name":"recipient","type":"address","indexed":true,"internalType":"address"},{"name":"epochs","type":"uint256[]","indexed":false,"internalType":"uint256[]"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Deposit","inputs":[{"name":"depositor","type":"address","indexed":true,"internalType":"address"},{"name":"onBehalfOf","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"shares","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"OnSlash","inputs":[{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"captureTimestamp","type":"uint48","indexed":false,"internalType":"uint48"},{"name":"slashedAmount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"RoleAdminChanged","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"previousAdminRole","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"newAdminRole","type":"bytes32","indexed":true,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"RoleGranted","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"sender","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"RoleRevoked","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"sender","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"SetDelegator","inputs":[{"name":"delegator","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"SetDepositLimit","inputs":[{"name":"limit","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"SetDepositWhitelist","inputs":[{"name":"status","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"SetDepositorWhitelistStatus","inputs":[{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"status","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"SetIsDepositLimit","inputs":[{"name":"status","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"SetSlasher","inputs":[{"name":"slasher","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Withdraw","inputs":[{"name":"withdrawer","type":"address","indexed":true,"internalType":"address"},{"name":"claimer","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"burnedShares","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"mintedShares","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"error","name":"AccessControlBadConfirmation","inputs":[]},{"type":"error","name":"AccessControlUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"neededRole","type":"bytes32","internalType":"bytes32"}]},{"type":"error","name":"AddressEmptyCode","inputs":[{"name":"target","type":"address","internalType":"address"}]},{"type":"error","name":"AddressInsufficientBalance","inputs":[{"name":"account","type":"address","internalType":"address"}]},{"type":"error","name":"AlreadyClaimed","inputs":[]},{"type":"error","name":"AlreadyInitialized","inputs":[]},{"type":"error","name":"AlreadySet","inputs":[]},{"type":"error","name":"CheckpointUnorderedInsertion","inputs":[]},{"type":"error","name":"DelegatorAlreadyInitialized","inputs":[]},{"type":"error","name":"DepositLimitReached","inputs":[]},{"type":"error","name":"FailedInnerCall","inputs":[]},{"type":"error","name":"InsufficientClaim","inputs":[]},{"type":"error","name":"InsufficientDeposit","inputs":[]},{"type":"error","name":"InsufficientRedemption","inputs":[]},{"type":"error","name":"InsufficientWithdrawal","inputs":[]},{"type":"error","name":"InvalidAccount","inputs":[]},{"type":"error","name":"InvalidCaptureEpoch","inputs":[]},{"type":"error","name":"InvalidClaimer","inputs":[]},{"type":"error","name":"InvalidCollateral","inputs":[]},{"type":"error","name":"InvalidDelegator","inputs":[]},{"type":"error","name":"InvalidEpoch","inputs":[]},{"type":"error","name":"InvalidEpochDuration","inputs":[]},{"type":"error","name":"InvalidInitialization","inputs":[]},{"type":"error","name":"InvalidLengthEpochs","inputs":[]},{"type":"error","name":"InvalidOnBehalfOf","inputs":[]},{"type":"error","name":"InvalidRecipient","inputs":[]},{"type":"error","name":"InvalidSlasher","inputs":[]},{"type":"error","name":"InvalidTimestamp","inputs":[]},{"type":"error","name":"MathOverflowedMulDiv","inputs":[]},{"type":"error","name":"MissingRoles","inputs":[]},{"type":"error","name":"NoPreviousEpoch","inputs":[]},{"type":"error","name":"NotDelegator","inputs":[]},{"type":"error","name":"NotFactory","inputs":[]},{"type":"error","name":"NotInitialized","inputs":[]},{"type":"error","name":"NotInitializing","inputs":[]},{"type":"error","name":"NotSlasher","inputs":[]},{"type":"error","name":"NotWhitelistedDepositor","inputs":[]},{"type":"error","name":"OwnableInvalidOwner","inputs":[{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"OwnableUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"}]},{"type":"error","name":"ReentrancyGuardReentrantCall","inputs":[]},{"type":"error","name":"SafeCastOverflowedUintDowncast","inputs":[{"name":"bits","type":"uint8","internalType":"uint8"},{"name":"value","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"SafeERC20FailedOperation","inputs":[{"name":"token","type":"address","internalType":"address"}]},{"type":"error","name":"SlasherAlreadyInitialized","inputs":[]},{"type":"error","name":"TooMuchRedeem","inputs":[]},{"type":"error","name":"TooMuchWithdraw","inputs":[]}],"bytecode":{"object":"0x60e03461013c57601f614b8b38819003918201601f1916830192916001600160401b03918285118486101761014057816060928592604097885283398101031261013c5761004c82610154565b916100648461005d60208401610154565b9201610154565b9260805260a0527ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a009081549060ff82861c1661012b5780808316036100e7575b50505060c05251614a22908161016982396080518181816111a001526116d5015260a05181818161183e0152611d04015260c05181818161077001526109a30152f35b6001600160401b0319909116811790915582519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a15f80806100a4565b845163f92ee8a960e01b8152600490fd5b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b51906001600160a01b038216820361013c5756fe60806040526004361015610011575f80fd5b5f3560e01c806301ffc9a7146104345780631415519b1461042f5780631b66c9e11461042a5780631e9a695014610425578063248a9ca31461042057806327810b6e1461041b578063281f5752146104165780632abe3048146104115780632d73c69c1461040c5780632dd31000146104075780632f2ff15d1461040257806336568abe146103fd578063392e53cd146103f85780634105a7dd146103f357806346361671146103ee57806347e7ef24146103e957806348d3b775146103e45780634ff0876a146103df57806350861adc146103da57806350f22068146103d55780635346e34f146103d057806354fd4d50146103cb57806357ec83cc146103c657806359f769a9146103c15780635cc07076146103bc57806361a8c8c4146103b75780636da3e06d146103b25780636ec1e3f8146103ad578063715018a6146103a85780637278e31c146103a357806373790ab31461039e5780637667180814610399578063794b15b7146103945780637953b33b1461038f5780637c04c80a1461038a578063810da75d1461038557806383cd9cc31461038057806387df07881461037b5780638b0e9f3f146103765780638da5cb5b1461037157806391d148541461036c5780639d66201b146103675780639f86fd8514610362578063a1b122021461035d578063a217fddf14610358578063a21a1df914610353578063a28614661461034e578063a3b5417214610349578063a5d0322314610344578063aabc24961461033f578063aad3ec961461033a578063afba70ad14610335578063b134427114610330578063bd49c35f1461032b578063bdc8144b14610326578063bfefcd7b14610321578063c31e8dd71461031c578063ce9b793014610317578063d547741f14610312578063d8dfeb451461030d578063db38871514610308578063ecf7085814610303578063efb559d6146102fe578063f2fde38b146102f9578063f3fef3a3146102f45763f5e7ee0f146102ef575f80fd5b6123a1565b6122fb565b6122ce565b61217f565b612162565b612128565b6120fd565b6120b1565b612089565b61201f565b612005565b611f27565b611f0d565b611ee5565b611ebb565b611dfa565b611c43565b611bfd565b611bb0565b611abd565b611a83565b611a69565b611a45565b61199b565b611961565b611903565b6118cf565b61186d565b611829565b611670565b611657565b6115f1565b6115ca565b61158a565b611570565b61152f565b61125b565b6111f4565b6111cf565b61118b565b611138565b61110e565b6110e7565b610faf565b610f7d565b610ee8565b610ecf565b610e72565b610e52565b610e31565b610b73565b610b4b565b610ab0565b610a6b565b610a20565b6109d2565b61098e565b61091a565b61072b565b61065d565b610635565b6105fc565b610513565b6104c8565b61048e565b3461048a57602036600319011261048a5760043563ffffffff60e01b811680910361048a57602090637965db0b60e01b8114908115610479575b506040519015158152f35b6301ffc9a760e01b1490505f61046e565b5f80fd5b3461048a575f36600319011261048a5760206040517fc6aaadd7371d5e8f9ed6849dd66a66573a3ba37167d03f4352c9ba5693678fac8152f35b3461048a575f36600319011261048a5760206040517f9c56d972d63cbb4195b3c1484691dfc220fa96a4c47e7b6613bd82a022029e068152f35b6001600160a01b0381160361048a57565b3461048a57604036600319011261048a5760043561053081610502565b6024359061053c612bf5565b6001600160a01b038116156105eb57335f908152600e6020526040902061056790613c8a565b613c8a565b82116105d957610587610578613b9d565b610580613c16565b9084613cd7565b9182156105c4578261059892612c24565b906105af60015f805160206149ad83398151915255565b604080519182526020820192909252f35b0390f35b60405160016245ddc760e11b03198152600490fd5b604051632418411f60e11b8152600490fd5b6040516208978560e71b8152600490fd5b3461048a57602036600319011261048a576004355f525f8051602061498d8339815191526020526020600160405f200154604051908152f35b3461048a575f36600319011261048a576001546040516001600160a01b039091168152602090f35b3461048a575f36600319011261048a5761067561291a565b80156106d65760015465ffffffffffff8160a01c16915f1981019081116106d1576106a39160d01c906123fa565b81018091116106d1576106b86105c091612d9e565b60405165ffffffffffff90911681529081906020820190565b6123cb565b604051639fa56a5b60e01b8152600490fd5b600435906001600160401b038216820361048a57565b9181601f8401121561048a578235916001600160401b03831161048a576020838186019501011161048a57565b3461048a57604036600319011261048a576107446106e8565b6001600160401b0360243581811161048a576107649036906004016106fe565b505061076e612bf5565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633036107ea575f805160206149cd833981519152549060ff8260401c169283156107da575b5050506107c8575f80fd5b60405163f92ee8a960e01b8152600490fd5b81169116101590505f80806107bd565b604051631966391b60e11b8152600490fd5b65ffffffffffff81160361048a57565b634e487b7160e01b5f52604160045260245ffd5b606081019081106001600160401b0382111761083b57604052565b61080c565b604081019081106001600160401b0382111761083b57604052565b90601f801991011681019081106001600160401b0382111761083b57604052565b6040519061016082018281106001600160401b0382111761083b57604052565b604051906108a982610840565b565b6001600160401b03811161083b57601f01601f191660200190565b9291926108d2826108ab565b916108e0604051938461085b565b82948184528183011161048a578281602093845f960137010152565b9080601f8301121561048a57816020610917933591016108c6565b90565b3461048a57606036600319011261048a5760043561093781610502565b60243590610944826107fc565b604435906001600160401b03821161048a5760209261096a6109869336906004016108fc565b6001600160a01b039092165f908152600e855260409020612f8b565b604051908152f35b3461048a575f36600319011261048a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461048a57604036600319011261048a57610a1e6024356004356109f582610502565b805f525f8051602061498d833981519152602052610a19600160405f200154613162565b613462565b005b3461048a57604036600319011261048a57602435610a3d81610502565b336001600160a01b03821603610a5957610a1e90600435613498565b60405163334bd91960e11b8152600490fd5b3461048a575f36600319011261048a5760ff60025460a01c1680610a97575b6020906040519015158152f35b5060035460a01c60ff16610a8a565b8015150361048a57565b3461048a57602036600319011261048a57600435610acd81610aa6565b610ad5612bf5565b610add613057565b5f54901515908160ff8216151514610b395760ff191660ff8216175f556040519081527f3e12b7b36c75ac9609a3f58609b331210428e1a85909132638955ba0301eec3390602090a160015f805160206149ad83398151915255005b60405163a741a04560e01b8152600490fd5b3461048a575f36600319011261048a57602065ffffffffffff60015460a01c16604051908152f35b3461048a5760408060031936011261048a576004803591610b9383610502565b610b9b612bf5565b6001600160a01b0391838316908115610e23575f5460ff811680610e0a575b610dfb5783516370a0823160e01b808252308483019081529096602093909160109190911c82169084908490819083010381845afa928315610dd3575f93610dd8575b50610c0f90602435903090339061352a565b5f5486519788523085890190815290979184918391908290819060200103918b60101c165afa908115610dd357610c4e935f92610da6575b50506123ed565b938415610d975760081c60ff1680610d82575b610d745750906105c091610d12610c76613b9d565b95610cbf610c82613c16565b610caa610c908a838b613cd7565b99610ca48a610c9e42612d9e565b9261241b565b9061367e565b5050610cb989610c9e42612d9e565b9061375e565b50506001600160a01b0381165f908152600e6020526040902090610d0c88610d07610562610cec42612d9e565b6001600160a01b039095165f908152600e6020526040902090565b61241b565b9161383a565b505081518481526020810186905233907fdcbc1c05240f31ff3ad067ef1ee35ce4997762752e3a095284754544f4c709d790604090a3610d5e60015f805160206149ad83398151915255565b5191825260208201929092529081906040820190565b8251632484557960e01b8152fd5b50610d8f84610d07613b9d565b815410610c61565b50825163070f6eed60e11b8152fd5b610dc59250803d10610dcc575b610dbd818361085b565b810190612449565b5f80610c47565b503d610db3565b612458565b610c0f919350610df490853d8711610dcc57610dbd818361085b565b9290610bfd565b5082516304f63b8560e01b8152fd5b50335f9081526005602052604090205460ff1615610bba565b8251630d534ce360e11b8152fd5b3461048a575f36600319011261048a57602060ff5f54166040519015158152f35b3461048a575f36600319011261048a57602060015460d01c604051908152f35b3461048a575f36600319011261048a57602060ff60025460a01c166040519015158152f35b90604060031983011261048a57600435610eb0816107fc565b91602435906001600160401b03821161048a57610917916004016108fc565b3461048a576020610986610ee236610e97565b90612e01565b3461048a57602036600319011261048a57600435610f0581610aa6565b610f0d612bf5565b610f156130b4565b5f54901515908160ff8260081c16151514610b395761ff001916600882901b61ff0016175f556040519081527ffa7a25a0b611d4ba3c0ea990e90dc23d484a5dd7a1be4733fef2946ba74530c690602090a1610a1e60015f805160206149ad83398151915255565b3461048a575f36600319011261048a5760206001600160401b035f805160206149cd8339815191525416604051908152f35b3461048a57606036600319011261048a57610fc86106e8565b602435610fd481610502565b6001600160401b039160443583811161048a57610ff59036906004016106fe565b5f805160206149cd8339815191529491855494838616806110d65760ff8760401c169081156110c9575b506107c8577fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2966110c49661108c958716906001600160401b0319161790556110875f805160206149cd833981519152600160401b68ff000000000000000019825416179055565b612463565b5f805160206149cd833981519152805468ff0000000000000000191690556040516001600160401b0390911681529081906020820190565b0390a1005b905084861611155f61101f565b60405162dc149f60e41b8152600490fd5b3461048a57602036600319011261048a57602061098660043561110981610502565b612883565b3461048a57602036600319011261048a576004355f526006602052602060405f2054604051908152f35b3461048a575f36600319011261048a5760015465ffffffffffff61116e818360a01c169261116461291a565b9060d01c906123fa565b82018092116106d157611182602092612d9e565b60405191168152f35b3461048a575f36600319011261048a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461048a575f36600319011261048a57602060ff60035460a01c166040519015158152f35b3461048a575f36600319011261048a5761120c6139cc565b5f8051602061492d83398151915280546001600160a01b031981169091555f906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b3461048a57604036600319011261048a5760043560243561127b816107fc565b611283612bf5565b6003546112a0906001600160a01b03165b6001600160a01b031690565b330361151d576112ae61291a565b906112b88161294e565b908215158061150c575b8015611503575b6114f1576105c0937ff9d090c096f71cd1659861a9ce5b6f384bceb4e2fa4e4a19edf6489a9b8d56c7926112fb613b9d565b946113166113088261240d565b5f52600660205260405f2090565b549082810361140a575061132a818761241b565b6113348185613a04565b9687806113c3575b50505050505b8361138f575b6040805191825265ffffffffffff929092166020820152908101839052606090a161137f60015f805160206149ad83398151915255565b6040519081529081906020820190565b5f546113be9085906113ac9060101c6001600160a01b0316611294565b6001546001600160a01b031690613ab2565b611348565b6113ff93610c4783610ca46113e96113e2611308986113f99888613a20565b80966123ed565b946113f342612d9e565b926123ed565b9261240d565b555f8080808761133c565b915061141e825f52600660205260405f2090565b549061142e81610d07848a61241b565b906114398286613a04565b978861144a575b5050505050611342565b6114bf93836114729361147f8c61147a6114686114b0998884613a20565b9788958584613a20565b9485926123ed565b6123ed565b938484106114ca575b610c4790610ca461149e9596976113f342612d9e565b6114aa6113088761240d565b556123ed565b915f52600660205260405f2090565b555f80808080611440565b916114e6610c47916114e08661149e97986123ed565b9061241b565b859450929050611488565b604051635e18d2a560e01b8152600490fd5b508282116112c9565b50611516836123df565b82106112c2565b60405163dabc4ad960e01b8152600490fd5b3461048a575f36600319011261048a5760015465ffffffffffff808260a01c169161155861291a565b600181018091116106d15761116e9160d01c906123fa565b3461048a575f36600319011261048a57602061098661291a565b3461048a57602036600319011261048a576004356115a781610502565b60018060a01b03165f526005602052602060ff60405f2054166040519015158152f35b3461048a57602036600319011261048a5760206109866004356115ec816107fc565b61294e565b3461048a57604036600319011261048a5760043561160e81610502565b6024356001600160401b0380821161048a573660238301121561048a57816004013590811161048a573660248260051b8401011161048a576105c092602461137f930190612989565b3461048a57602061098661166a36610e97565b90612ed6565b3461048a5760208060031936011261048a57600480359061169082610502565b611698612bf5565b60025460a01c60ff1661181a576040516302910f8b60e31b81526001600160a01b03838116838301908152909491908290829081906020010381887f0000000000000000000000000000000000000000000000000000000000000000165afa908115610dd3575f916117ed575b50156117dd5760405163fbfa77cf60e01b8152838516949082818581895afa928315610dd3575f936117ae575b50503091160361179f5750600280546001600160a01b03929092166001600160a81b031990921691909117600160a01b1790557fdb2160616f776a37b24808115554e79439bf26cccbbd4438190cc6d28e80ecd15f80a2610a1e60015f805160206149ad83398151915255565b60405163b9f0f17160e01b8152fd5b6117ce929350803d106117d6575b6117c6818361085b565b810190612ae2565b905f80611732565b503d6117bc565b506040516324e5af8d60e21b8152fd5b61180d9150823d8411611813575b611805818361085b565b810190612ac2565b5f611705565b503d6117fb565b604051631380833b60e01b8152fd5b3461048a575f36600319011261048a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461048a575f36600319011261048a5761188561291a565b61188d613b9d565b90805f52600660205260405f205482018092116106d157600181018091116106d1575f52600660205260405f205481018091116106d157602090604051908152f35b3461048a575f36600319011261048a575f8051602061492d833981519152546040516001600160a01b039091168152602090f35b3461048a57604036600319011261048a57602060ff61195560243561192781610502565b6004355f525f8051602061498d833981519152845260405f209060018060a01b03165f5260205260405f2090565b54166040519015158152f35b3461048a57602036600319011261048a5760043561197e81610502565b60018060a01b03165f52600e602052602061098660405f20613c8a565b3461048a57604036600319011261048a576004356119b881610502565b6024356001600160401b03811161048a575f916119da839236906004016106fe565b90816040519283928337810184815203915af4611a3d60806119fa612af7565b9260206040519485921515828401526040808401528051918291826060860152018484015e5f838284010152601f8019910116810103606081018452018261085b565b805190602001fd5b3461048a575f36600319011261048a57602060ff5f5460081c166040519015158152f35b3461048a575f36600319011261048a5760206040515f8152f35b3461048a575f36600319011261048a5760206040517f4a634bc14d77baf979756509ef4298c6f6318af357828612545267ee2eb792338152f35b3461048a57604036600319011261048a57600435611ada81610502565b602435611ae681610aa6565b611aee612bf5565b611af661310b565b6001600160a01b038216918215611b9e575f8381526005602052604090205460ff16151582151514610b39576001600160a01b03165f9081526005602052604090207ff991b1ecfb5115cbb36a2b2e2240c058406d2acc2fcc6e9e2dc99d845ff70a6291611b8591611b73908260ff801983541691151516179055565b60405190151581529081906020820190565b0390a2610a1e60015f805160206149ad83398151915255565b604051630da30f6560e31b8152600490fd5b3461048a57604036600319011261048a576020611bf4602435611bd281610502565b6004355f526008835260405f209060018060a01b03165f5260205260405f2090565b54604051908152f35b3461048a57604036600319011261048a57602060ff611955602435611c2181610502565b6004355f526009845260405f209060018060a01b03165f5260205260405f2090565b3461048a5760208060031936011261048a576004803590611c6382610502565b611c6b612bf5565b60035460a01c60ff16611deb576001600160a01b03828116939084611cd9575b6003805460ff60a01b1916600160a01b179055847fe7e4c932e03abddfe20f83af42c33627e816115c7ec2b168441f65dc14bfc3ba5f80a2610a1e60015f805160206149ad83398151915255565b6040516302910f8b60e31b81526001600160a01b0385168482019081528390829081906020010381857f0000000000000000000000000000000000000000000000000000000000000000165afa908115610dd3575f91611dce575b5015611dbd5760405163fbfa77cf60e01b815282818581895afa928315610dd3575f93611d9e575b505030911603611d8f5750600380546001600160a01b0319166001600160a01b039092169190911790555f808080611c8b565b604051633f3e089160e21b8152fd5b611db5929350803d106117d6576117c6818361085b565b905f80611d5c565b60405163dabc4ad960e01b81528390fd5b611de59150833d851161181357611805818361085b565b5f611d34565b60405163703fe2e560e01b8152fd5b3461048a57604036600319011261048a57600435611e1781610502565b60243590611e23612bf5565b6001600160a01b0391818316908115611ea957611e546105c094611e4683613b01565b9485915f5460101c16613ab2565b604080519182526020820184905233917f865ca08d59f5cb456e85cd2f7ef63664ea4f73327414e9d8152c4158b0e946459190a360015f805160206149ad833981519152556040519081529081906020820190565b604051634e46966960e11b8152600490fd5b3461048a57602036600319011261048a576004355f526007602052602060405f2054604051908152f35b3461048a575f36600319011261048a576003546040516001600160a01b039091168152602090f35b3461048a575f36600319011261048a576020610986613b9d565b3461048a57602036600319011261048a57600435611f43612bf5565b335f9081527f2d4ccbfe9f7672a6f2537c1e5bce6adacb73706879154bbab6ce096012d6721660205260409020547f4a634bc14d77baf979756509ef4298c6f6318af357828612545267ee2eb792339060ff1615611fe757508060045414610b39576020817f854df3eb95564502c8bc871ebdd15310ee26270f955f6c6bd8cea68e75045bc092600455604051908152a160015f805160206149ad83398151915255005b6044906040519063e2517d3f60e01b82523360048301526024820152fd5b3461048a575f36600319011261048a576020610986613c16565b3461048a57602036600319011261048a5760043561203c81610502565b61204461291a565b61204d82612883565b916120588183612b97565b83018093116106d157600182018092116106d15761207591612b97565b81018091116106d157602090604051908152f35b3461048a575f36600319011261048a576002546040516001600160a01b039091168152602090f35b3461048a57604036600319011261048a57610a1e6024356004356120d482610502565b805f525f8051602061498d8339815191526020526120f8600160405f200154613162565b613498565b3461048a575f36600319011261048a575f5460405160109190911c6001600160a01b03168152602090f35b3461048a575f36600319011261048a5760206040517fbae4ee3de6c709ff9a002e774c5b78cb381560b219213c88ae0f1e207c03c0238152f35b3461048a575f36600319011261048a576020600454604051908152f35b3461048a57606036600319011261048a5760043561219c81610502565b602435906121a9826107fc565b6001600160401b039160443583811161048a576121ca9036906004016106fe565b909260409384516121da81610820565b60608152606060208201526060868201529280612239575b6105c08661222a878761222461220b8984845191612428565b928561221b602085015183612ed6565b93015190612e01565b91613cd7565b90519081529081906020820190565b810193925060208185031261048a5780359086821161048a57019260608482031261048a5784519561226a87610820565b843581811161048a578261227f9187016108fc565b8752602085013581811161048a57826122999187016108fc565b60208801528585013590811161048a576105c0966122c26122249361220b9361222a98016108fc565b878201529394506121f2565b3461048a57602036600319011261048a57610a1e6004356122ee81610502565b6122f66139cc565b612b26565b3461048a57604036600319011261048a5760043561231881610502565b602435612323612bf5565b6001600160a01b038216156105eb57801561238f57612352612343613c16565b61234b613b9d565b9083614121565b335f908152600e6020526040902090929061236c90613c8a565b831161237d57610598918391612c24565b6040516321727a3760e11b8152600490fd5b604051636c6c627d60e11b8152600490fd5b3461048a57604036600319011261048a5760206109866024356123c381610502565b600435612b97565b634e487b7160e01b5f52601160045260245ffd5b5f198101919082116106d157565b919082039182116106d157565b818102929181159184041417156106d157565b90600182018092116106d157565b919082018092116106d157565b6001600160a01b03165f908152600e60205260409020610917929190612f8b565b9081602091031261048a575190565b6040513d5f823e3d90fd5b916124b5916124a691612474614268565b61247c614268565b60015f805160206149ad833981519152556001600160a01b0394808616612869575b5036916108c6565b60208082518301019101613903565b805182166001600160a01b03161561285757604080820165ffffffffffff6124e3825165ffffffffffff1690565b16156128465760c083018051909290612504906001600160a01b0316611294565b156126f7575b5091612643610140926125e26125bd6126a196612558612530875160018060a01b031690565b5f805462010000600160b01b03191660109290921b62010000600160b01b0316919091179055565b6020860151600180546001600160a01b0319166001600160a01b039092169190911790556125b161258842612d9e565b6001805465ffffffffffff60a01b191660a09290921b65ffffffffffff60a01b16919091179055565b5165ffffffffffff1690565b600180546001600160d01b031660d09290921b6001600160d01b031916919091179055565b6126026125f26060850151151590565b60ff80195f541691151516175f55565b6126296126126080850151151590565b61ff005f5491151560081b169061ff001916175f55565b61263660a0840151600455565b516001600160a01b031690565b8481166126e7575b5060e08101516001600160a01b03168481166126d7575b506101008101516001600160a01b03168481166126c7575b506101208101516001600160a01b03168481166126b7575b5001516001600160a01b031690565b9081166126ab5750565b6126b4906133f3565b50565b6126c090613384565b505f612692565b6126d090613315565b505f61267a565b6126e09061323f565b505f612662565b6126f09061318e565b505f61264b565b60e084015161270e906001600160a01b0316611294565b156127e3575b61012084015161272c906001600160a01b0316611294565b61250a576080840151156127995760a0840151158061277a575b61276a575091612643610140926125e26125bd6126a1965b9496505050925061250a565b5163183c854560e21b8152600490fd5b50610140840151612793906001600160a01b0316611294565b15612746565b60a0840151158015906127c3575b61276a575091612643610140926125e26125bd6126a19661275e565b506101408401516127dc906001600160a01b0316611294565b15156127a7565b60608401511561281957610100840151612805906001600160a01b0316611294565b612714575163183c854560e21b8152600490fd5b610100840151612831906001600160a01b0316611294565b15612714575163183c854560e21b8152600490fd5b81516368f5f8f160e11b8152600490fd5b6040516368f7a67560e11b8152600490fd5b61287d90612875614268565b6122f6614268565b5f61249e565b6001600160a01b03165f908152600e602052604090206128a290613c8a565b6128aa613b9d565b6128b2613c16565b90600181018091116106d157600182018092116106d15761091792613a20565b65ffffffffffff91821690821603919082116106d157565b634e487b7160e01b5f52601260045260245ffd5b9065ffffffffffff80911691821561291557160490565b6128ea565b61292342612d9e565b61294a60015461294065ffffffffffff93848360a01c16906128d2565b9060d01c906128fe565b1690565b6001549065ffffffffffff91828160a01c169182848216106129775761294a92612940916128d2565b60405163b7d0949760e01b8152600490fd5b90612992612bf5565b5f926001600160a01b038316928315611ea9578115612a4a575f5b828110612a2857505f547f326b6aff1cd2fb1c8234de4f9dcfb9047c5c36eb9ef2eb34af5121e969a75d2792869290916129fd9184916129f89060101c6001600160a01b0316611294565b613ab2565b612a0e604051928392339684612a85565b0390a3906108a960015f805160206149ad83398151915255565b94612a436001916114e0612a3d898789612a70565b35613b01565b95016129ad565b60405163edf3b93360e01b8152600490fd5b634e487b7160e01b5f52603260045260245ffd5b9190811015612a805760051b0190565b612a5c565b604080825281018390529392916001600160fb1b03811161048a5760209160609160051b809183880137850101930152565b51906108a982610aa6565b9081602091031261048a575161091781610aa6565b51906108a982610502565b9081602091031261048a575161091781610502565b3d15612b21573d90612b08826108ab565b91612b16604051938461085b565b82523d5f602084013e565b606090565b6001600160a01b03908116908115612b7f575f8051602061492d83398151915280546001600160a01b031981168417909155167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3565b604051631e4fbdf760e01b81525f6004820152602490fd5b90612bbd90825f52600860205260405f209060018060a01b03165f5260205260405f2090565b54905f52600660205260405f2054600760205260405f205490600181018091116106d157600182018092116106d15761091792613a20565b5f805160206149ad8339815191526002815414612c125760029055565b604051633ee5aeb560e01b8152600490fd5b335f908152600e6020526040902093929190612c3f42612d9e565b335f908152600e60205260409020612c5690613c8a565b918483039283116106d157612c917febff2602b3f468259e1e99f613fed6691f3a6526effe6ef3e768ba7ae7a36c4f938593612d1c9961383a565b5050612cab612c9f42612d9e565b610cb98761147a613c16565b5050612cc5612cb942612d9e565b610ca48461147a613b9d565b5050612d6a81612d55612cde612cd961291a565b61240d565b612d34612cf3825f52600660205260405f2090565b54612d06835f52600760205260405f2090565b54612d1282828b613cd7565b9d8e998a9361241b565b612d2e855f52600660205260405f2090565b5561241b565b612d46825f52600760205260405f2090565b555f52600860205260405f2090565b9060018060a01b03165f5260205260405f2090565b612d7583825461241b565b9055604080519485526020850195909552938301526001600160a01b03909216913391606090a3565b65ffffffffffff90818111612db1571690565b604490604051906306dfcc6560e41b8252603060048301526024820152fd5b9081602091031261048a575163ffffffff8116810361048a5790565b90600163ffffffff809316019182116106d157565b90805115612ecc5780602080612e1c93518301019101612dd0565b612e2581613f48565b90612e36825165ffffffffffff1690565b9065ffffffffffff8085169216828114612ec05782119182612e6c575b5050612e63575061091790613cf8565b60209150015190565b909150612e7a600a546123df565b63ffffffff831614918215612e93575b50505f80612e53565b612eb89192506125b1612ea8612ead92612dec565b613f48565b65ffffffffffff1690565b115f80612e8a565b50505060209150015190565b5061091790613cf8565b90805115612f815780602080612ef193518301019101612dd0565b612efa81613fcd565b90612f0b825165ffffffffffff1690565b9065ffffffffffff8085169216828114612ec05782119182612f38575b5050612e63575061091790613dbf565b909150612f46600c546123df565b63ffffffff831614918215612f5f575b50505f80612f28565b612f799192506125b1612f74612ead92612dec565b613fcd565b115f80612f56565b5061091790613dbf565b9180511561304d5780602080612fa693518301019101612dd0565b91612fb18382614048565b92612fc2845165ffffffffffff1690565b9065ffffffffffff80851692168281146130415782119182612ff8575b5050612fef576109179250613e7f565b50506020015190565b90915061300583546123df565b63ffffffff83161491821561301e575b50505f80612fdf565b6130399192506125b1613033612ead92612dec565b85614048565b115f80613015565b50505050506020015190565b5061091791613e7f565b335f9081527f03b26b53c87faa1058f30bb5d2fee64f717719a0d9b7e4f4df027aa5e9b6ed69602052604090207fbae4ee3de6c709ff9a002e774c5b78cb381560b219213c88ae0f1e207c03c0239060ff905b541615611fe75750565b335f9081527fe41986b390c4ce6791b87f7423b5fab7a81a0e6d89660b6264f697d008b2243a602052604090207fc6aaadd7371d5e8f9ed6849dd66a66573a3ba37167d03f4352c9ba5693678fac9060ff906130aa565b335f9081527f0287ab4cb376ea253d7b2ce0c2cbf458f7deae9458470d74afdfbbee484e9540602052604090207f9c56d972d63cbb4195b3c1484691dfc220fa96a4c47e7b6613bd82a022029e069060ff906130aa565b5f8181525f8051602061498d83398151915260209081526040808320338452909152902060ff906130aa565b6001600160a01b0381165f9081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d60205260409020545f8051602061498d8339815191529060ff16613239575f808052602091825260408082206001600160a01b038516835290925220805460ff1916600117905533906001600160a01b03165f7f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d8180a4600190565b50505f90565b6001600160a01b0381165f9081527f03b26b53c87faa1058f30bb5d2fee64f717719a0d9b7e4f4df027aa5e9b6ed69602052604090207fbae4ee3de6c709ff9a002e774c5b78cb381560b219213c88ae0f1e207c03c023905f8051602061498d8339815191529060ff905b541661330e575f828152602091825260408082206001600160a01b038616835290925220805460ff1916600117905533916001600160a01b0316907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d5f80a4600190565b5050505f90565b6001600160a01b0381165f9081527f0287ab4cb376ea253d7b2ce0c2cbf458f7deae9458470d74afdfbbee484e9540602052604090207f9c56d972d63cbb4195b3c1484691dfc220fa96a4c47e7b6613bd82a022029e06905f8051602061498d8339815191529060ff906132aa565b6001600160a01b0381165f9081527fe41986b390c4ce6791b87f7423b5fab7a81a0e6d89660b6264f697d008b2243a602052604090207fc6aaadd7371d5e8f9ed6849dd66a66573a3ba37167d03f4352c9ba5693678fac905f8051602061498d8339815191529060ff906132aa565b6001600160a01b0381165f9081527f2d4ccbfe9f7672a6f2537c1e5bce6adacb73706879154bbab6ce096012d67216602052604090207f4a634bc14d77baf979756509ef4298c6f6318af357828612545267ee2eb79233905f8051602061498d8339815191529060ff906132aa565b5f8181525f8051602061498d833981519152602081815260408084206001600160a01b038716855290915290912060ff906132aa565b5f8181525f8051602061498d833981519152602081815260408084206001600160a01b03871685529091529091205460ff161561330e575f828152602091825260408082206001600160a01b038616835290925220805460ff1916905533916001600160a01b0316907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b5f80a4600190565b6040516323b872dd60e01b60208201526001600160a01b03928316602482015292909116604483015260648083019390935291815260a08101918183106001600160401b0384111761083b576108a9926040526140b0565b600b54811015612a8057600b5f525f8051602061496d83398151915201905f90565b600d54811015612a8057600d5f525f8051602061494d83398151915201905f90565b8054821015612a80575f5260205f2001905f90565b600d54600160401b81101561083b576001810180600d55811015612a8057600d5f525f8051602061494d8339815191520155565b600b54600160401b81101561083b576001810180600b55811015612a8057600b5f525f8051602061496d8339815191520155565b90815491600160401b83101561083b57826136669160016108a9950181556135c6565b90919082549060031b91821b915f19901b1916179055565b919091600d9081548015613729575b50613696614185565b509290918154926136a5613b9d565b9481613714575b50156136f157505f1982018281116106d15781541115612a80575f527fd7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb4018390559190565b613705926001600160d01b0316915061439f565b5050613710836135db565b9190565b65ffffffffffff83811691161490505f6136ac565b600160401b81101561083b5760018101808455811015612a80575f908382525f8051602061494d83398151915201555f61368d565b919091600b9081548015613805575b506137766141f0565b50929091815492613785613c16565b94816137f0575b50156137d157505f1982018281116106d15781541115612a80575f527f0175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db8018390559190565b6137e5926001600160d01b0316915061449f565b50506137108361360f565b65ffffffffffff83811691161490505f61378c565b600160401b81101561083b5760018101808455811015612a80575f908382525f8051602061496d83398151915201555f61376d565b909291926001820190815480156138c8575b50846138578461423a565b5094909284549361386783613c8a565b96816138b3575b5015613890575050505f1981019081116106d1576136668591613710936135c6565b6137109492936138ac926001600160d01b039091169190614549565b5050613643565b65ffffffffffff83811691161490505f61386e565b600160401b81101561083b578060016138e492018455836135c6565b8154905f199060031b1b191690555f61384c565b51906108a9826107fc565b908161016091031261048a5761391761087c565b9061392181612ad7565b825261392f60208201612ad7565b6020830152613940604082016138f8565b604083015261395160608201612ab7565b606083015261396260808201612ab7565b608083015260a081015160a083015261397d60c08201612ad7565b60c083015261398e60e08201612ad7565b60e08301526101006139a1818301612ad7565b908301526101206139b3818301612ad7565b908301526139c5610140809201612ad7565b9082015290565b5f8051602061492d833981519152546001600160a01b031633036139ec57565b60405163118cdaa760e01b8152336004820152602490fd5b9080821015613a11575090565b905090565b8115612915570490565b9091828202915f1984820993838086109503948086039514613aa55784831115613a9357829109815f038216809204600280826003021880830282030280830282030280830282030280830282030280830282030280920290030293600183805f03040190848311900302920304170290565b60405163227bc15360e01b8152600490fd5b5050906109179250613a16565b60405163a9059cbb60e01b60208201526001600160a01b03909216602483015260448083019390935291815260808101916001600160401b0383118284101761083b576108a9926040526140b0565b90613b0a61291a565b821015613b8b575f82815260096020908152604080832033845290915290205460ff16613b7957613b3b3383612b97565b918215613b67575f9081526009602090815260408083203384529091529020805460ff19166001179055565b6040516366c0bcbf60e11b8152600490fd5b604051630c8d9eab60e31b8152600490fd5b60405163d5b25b6360e01b8152600490fd5b600c5480613bdd57505f5b6001600160d01b03811615613bd857600d54811015612a8057600d5f525f8051602061494d833981519152015490565b505f90565b805f198101116106d157600c5f527fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c6015460301c613ba8565b600a5480613c5157505f5b6001600160d01b03811615613bd857600b54811015612a8057600b5f525f8051602061496d833981519152015490565b805f198101116106d157600a5f527fc65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a7015460301c613c21565b805480613cb957505f5b6001600160d01b03811615613239576001613caf92016135c6565b90549060031b1c90565b5f199080828101116106d157825f5260205f2001015460301c613c94565b9190600181018091116106d157600182018092116106d15761091792613a20565b600a54905f829160058411613d66575b613d129350614755565b80613d3557505f5b6001600160d01b03811615613bd857613caf61091791613582565b613d5a613d44613d61926123df565b600a5f525f8051602061490d8339815191520190565b5460301c90565b613d1a565b9192613d718161461c565b81039081116106d157613d1293600a5f5265ffffffffffff80835f8051602061490d833981519152015416908516105f14613dad575091613d08565b929150613db99061240d565b90613d08565b600c54905f829160058411613e26575b613dd993506147be565b80613dfc57505f5b6001600160d01b03811615613bd857613caf610917916135a4565b613d5a613e0b613e21926123df565b600c5f525f805160206148ed8339815191520190565b613de1565b9192613e318161461c565b81039081116106d157613dd993600c5f5265ffffffffffff80835f805160206148ed833981519152015416908516105f14613e6d575091613dcf565b929150613e799061240d565b90613dcf565b908154905f829160058411613ee2575b613e9a935084614827565b80613ec257505f905b6001600160d01b0382161561323957610917916001613caf92016135c6565b613d5a613ed1613edc926123df565b835f5260205f200190565b90613ea3565b9192613eed8161461c565b81039081116106d157613e9a93855f5265ffffffffffff808360205f20015416908516105f14613f1e575091613e8f565b929150613f2a9061240d565b90613e8f565b60405190613f3d82610840565b5f6020838281520152565b613f50613f30565b50613f59613f30565b50600a54811015612a8057613f8090600a5f525f8051602061490d83398151915201614161565b65ffffffffffff81511690602060018060d01b0391015116600b54811015612a8057600b5f525f8051602061496d833981519152015460405191613fc383610840565b8252602082015290565b613fd5613f30565b50613fde613f30565b50600c54811015612a805761400590600c5f525f805160206148ed83398151915201614161565b65ffffffffffff81511690602060018060d01b0391015116600d54811015612a8057600d5f525f8051602061494d833981519152015460405191613fc383610840565b9061407161406b6140929261405b613f30565b50614064613f30565b50846135c6565b50614161565b91600165ffffffffffff845116936020828060d01b039101511691016135c6565b905490604051926140a284610840565b835260031b1c602082015290565b5f806140d89260018060a01b03169360208151910182865af16140d1612af7565b9083614889565b8051908115159182614106575b50506140ee5750565b60249060405190635274afe760e01b82526004820152fd5b6141199250602080918301019101612ac2565b155f806140e5565b9190600181018091116106d157600182018092116106d157614144828285613a20565b92821561291557096141535790565b600181018091116106d15790565b9060405161416e81610840565b915465ffffffffffff8116835260301c6020830152565b600c548061419657505f905f905f90565b805f198101116106d1577fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c66141cf91600c5f5201614161565b9065ffffffffffff82511691602060018060d01b0391015116906001929190565b600a548061420157505f905f905f90565b805f198101116106d1577fc65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a76141cf91600a5f5201614161565b80548061424b5750505f905f905f90565b5f199080828101116106d1576141cf925f5260205f200101614161565b60ff5f805160206149cd8339815191525460401c161561428457565b604051631afcd79f60e31b8152600490fd5b600c5490600160401b82101561083b576001820180600c55821015612a8057600c5f52805160209091015160301b65ffffffffffff191665ffffffffffff91909116175f805160206148ed83398151915290910155565b600a5490600160401b82101561083b576001820180600a55821015612a8057600a5f52805160209091015160301b65ffffffffffff191665ffffffffffff91909116175f8051602061490d83398151915290910155565b8054600160401b81101561083b57614361916001820181556135c6565b61438c57815160209092015160301b65ffffffffffff191665ffffffffffff92909216919091179055565b634e487b7160e01b5f525f60045260245ffd5b600c54919291908115614476576143c06143bb613e0b846123df565b614161565b805165ffffffffffff83811694911684106144645785602093613710956143f0612ead865165ffffffffffff1690565b0361442c5750614405613e0b61441e936123df565b9065ffffffffffff82549181199060301b169116179055565b01516001600160d01b031690565b905061445f915061444c61443e61089c565b65ffffffffffff9092168252565b6001600160d01b03871681850152614296565b61441e565b604051632520601d60e01b8152600490fd5b61449a915061448661443e61089c565b6001600160d01b0384166020820152614296565b5f9190565b600a54919291908115614525576144bb6143bb613d44846123df565b805165ffffffffffff83811694911684106144645785602093613710956144eb612ead865165ffffffffffff1690565b036145005750614405613d4461441e936123df565b905061445f915061451261443e61089c565b6001600160d01b038716818501526142ed565b61449a915061453561443e61089c565b6001600160d01b03841660208201526142ed565b8054929392919082156145f8576145656143bb613ed1856123df565b90614576825165ffffffffffff1690565b65ffffffffffff84811691168110614464576137109460209488926145a4612ead875165ffffffffffff1690565b036145c5575061441e926145ba614405926123df565b905f5260205f200190565b91505061445f916145e56145d761089c565b65ffffffffffff9093168352565b6001600160d01b03881682860152614344565b61449a92506146086145d761089c565b6001600160d01b0385166020830152614344565b8015613bd857806146ee6146e76146dd6146d36146c96146bf6146b56146ab60016109179a5f908b60801c80614749575b508060401c8061473c575b508060201c8061472f575b508060101c80614722575b508060081c80614715575b508060041c80614708575b508060021c806146fb575b50821c6146f4575b811c1b6146a4818b613a16565b0160011c90565b6146a4818a613a16565b6146a48189613a16565b6146a48188613a16565b6146a48187613a16565b6146a48186613a16565b6146a48185613a16565b8092613a16565b90613a04565b8101614697565b600291509101905f61468f565b600491509101905f614684565b600891509101905f614679565b601091509101905f61466e565b602091509101905f614663565b604091509101905f614658565b9150506080905f61464d565b905b82811061476357505090565b9091808216906001818418811c83018093116106d157600a5f5265ffffffffffff80845f8051602061490d833981519152015416908616105f146147ab575050915b90614757565b9093925081018091116106d157906147a5565b905b8281106147cc57505090565b9091808216906001818418811c83018093116106d157600c5f5265ffffffffffff80845f805160206148ed833981519152015416908616105f14614814575050915b906147c0565b9093925081018091116106d1579061480e565b91905b8382106148375750505090565b909192808316906001818518811c83018093116106d157855f5265ffffffffffff808460205f20015416908516105f14614876575050925b919061482a565b9094935081018091116106d1579161486f565b906148b0575080511561489e57805190602001fd5b604051630a12f52160e11b8152600490fd5b815115806148e3575b6148c1575090565b604051639996b31560e01b81526001600160a01b039091166004820152602490fd5b50803b156148b956fedf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c7c65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a89016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300d7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb50175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db902dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268009b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a26469706673582212205eb48e48c582a0d2dd84283abb0d0c766d767ab9b676d6e9c13aeaa32e7e136664736f6c63430008190033","sourceMap":"981:14960:100:-:0;;;;;;;;;;;;;-1:-1:-1;;981:14960:100;;;;;-1:-1:-1;;;;;981:14960:100;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;:::i;:::-;3173:36:101;;;3219:32;;8837:64:26;981:14960:100;;;;;;;;;7896:76:26;;981:14960:100;;;;7985:34:26;7981:146;;-1:-1:-1;927:17:76;;;;;981:14960:100;;;;;;;3173:36:101;981:14960:100;;;;;;;;;;3219:32:101;981:14960:100;;;;;;;;;;927:17:76;981:14960:100;;;;;;;;;;;7981:146:26;-1:-1:-1;;;;;;981:14960:100;;;;;;;;;;;;;8087:29:26;;981:14960:100;;8087:29:26;7981:146;;;;;7896:76;981:14960:100;;-1:-1:-1;;;7938:23:26;;;;;981:14960:100;-1:-1:-1;981:14960:100;;;;;;-1:-1:-1;981:14960:100;;;;;-1:-1:-1;981:14960:100;;;;-1:-1:-1;;;;;981:14960:100;;;;;;:::o","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361015610011575f80fd5b5f3560e01c806301ffc9a7146104345780631415519b1461042f5780631b66c9e11461042a5780631e9a695014610425578063248a9ca31461042057806327810b6e1461041b578063281f5752146104165780632abe3048146104115780632d73c69c1461040c5780632dd31000146104075780632f2ff15d1461040257806336568abe146103fd578063392e53cd146103f85780634105a7dd146103f357806346361671146103ee57806347e7ef24146103e957806348d3b775146103e45780634ff0876a146103df57806350861adc146103da57806350f22068146103d55780635346e34f146103d057806354fd4d50146103cb57806357ec83cc146103c657806359f769a9146103c15780635cc07076146103bc57806361a8c8c4146103b75780636da3e06d146103b25780636ec1e3f8146103ad578063715018a6146103a85780637278e31c146103a357806373790ab31461039e5780637667180814610399578063794b15b7146103945780637953b33b1461038f5780637c04c80a1461038a578063810da75d1461038557806383cd9cc31461038057806387df07881461037b5780638b0e9f3f146103765780638da5cb5b1461037157806391d148541461036c5780639d66201b146103675780639f86fd8514610362578063a1b122021461035d578063a217fddf14610358578063a21a1df914610353578063a28614661461034e578063a3b5417214610349578063a5d0322314610344578063aabc24961461033f578063aad3ec961461033a578063afba70ad14610335578063b134427114610330578063bd49c35f1461032b578063bdc8144b14610326578063bfefcd7b14610321578063c31e8dd71461031c578063ce9b793014610317578063d547741f14610312578063d8dfeb451461030d578063db38871514610308578063ecf7085814610303578063efb559d6146102fe578063f2fde38b146102f9578063f3fef3a3146102f45763f5e7ee0f146102ef575f80fd5b6123a1565b6122fb565b6122ce565b61217f565b612162565b612128565b6120fd565b6120b1565b612089565b61201f565b612005565b611f27565b611f0d565b611ee5565b611ebb565b611dfa565b611c43565b611bfd565b611bb0565b611abd565b611a83565b611a69565b611a45565b61199b565b611961565b611903565b6118cf565b61186d565b611829565b611670565b611657565b6115f1565b6115ca565b61158a565b611570565b61152f565b61125b565b6111f4565b6111cf565b61118b565b611138565b61110e565b6110e7565b610faf565b610f7d565b610ee8565b610ecf565b610e72565b610e52565b610e31565b610b73565b610b4b565b610ab0565b610a6b565b610a20565b6109d2565b61098e565b61091a565b61072b565b61065d565b610635565b6105fc565b610513565b6104c8565b61048e565b3461048a57602036600319011261048a5760043563ffffffff60e01b811680910361048a57602090637965db0b60e01b8114908115610479575b506040519015158152f35b6301ffc9a760e01b1490505f61046e565b5f80fd5b3461048a575f36600319011261048a5760206040517fc6aaadd7371d5e8f9ed6849dd66a66573a3ba37167d03f4352c9ba5693678fac8152f35b3461048a575f36600319011261048a5760206040517f9c56d972d63cbb4195b3c1484691dfc220fa96a4c47e7b6613bd82a022029e068152f35b6001600160a01b0381160361048a57565b3461048a57604036600319011261048a5760043561053081610502565b6024359061053c612bf5565b6001600160a01b038116156105eb57335f908152600e6020526040902061056790613c8a565b613c8a565b82116105d957610587610578613b9d565b610580613c16565b9084613cd7565b9182156105c4578261059892612c24565b906105af60015f805160206149ad83398151915255565b604080519182526020820192909252f35b0390f35b60405160016245ddc760e11b03198152600490fd5b604051632418411f60e11b8152600490fd5b6040516208978560e71b8152600490fd5b3461048a57602036600319011261048a576004355f525f8051602061498d8339815191526020526020600160405f200154604051908152f35b3461048a575f36600319011261048a576001546040516001600160a01b039091168152602090f35b3461048a575f36600319011261048a5761067561291a565b80156106d65760015465ffffffffffff8160a01c16915f1981019081116106d1576106a39160d01c906123fa565b81018091116106d1576106b86105c091612d9e565b60405165ffffffffffff90911681529081906020820190565b6123cb565b604051639fa56a5b60e01b8152600490fd5b600435906001600160401b038216820361048a57565b9181601f8401121561048a578235916001600160401b03831161048a576020838186019501011161048a57565b3461048a57604036600319011261048a576107446106e8565b6001600160401b0360243581811161048a576107649036906004016106fe565b505061076e612bf5565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633036107ea575f805160206149cd833981519152549060ff8260401c169283156107da575b5050506107c8575f80fd5b60405163f92ee8a960e01b8152600490fd5b81169116101590505f80806107bd565b604051631966391b60e11b8152600490fd5b65ffffffffffff81160361048a57565b634e487b7160e01b5f52604160045260245ffd5b606081019081106001600160401b0382111761083b57604052565b61080c565b604081019081106001600160401b0382111761083b57604052565b90601f801991011681019081106001600160401b0382111761083b57604052565b6040519061016082018281106001600160401b0382111761083b57604052565b604051906108a982610840565b565b6001600160401b03811161083b57601f01601f191660200190565b9291926108d2826108ab565b916108e0604051938461085b565b82948184528183011161048a578281602093845f960137010152565b9080601f8301121561048a57816020610917933591016108c6565b90565b3461048a57606036600319011261048a5760043561093781610502565b60243590610944826107fc565b604435906001600160401b03821161048a5760209261096a6109869336906004016108fc565b6001600160a01b039092165f908152600e855260409020612f8b565b604051908152f35b3461048a575f36600319011261048a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461048a57604036600319011261048a57610a1e6024356004356109f582610502565b805f525f8051602061498d833981519152602052610a19600160405f200154613162565b613462565b005b3461048a57604036600319011261048a57602435610a3d81610502565b336001600160a01b03821603610a5957610a1e90600435613498565b60405163334bd91960e11b8152600490fd5b3461048a575f36600319011261048a5760ff60025460a01c1680610a97575b6020906040519015158152f35b5060035460a01c60ff16610a8a565b8015150361048a57565b3461048a57602036600319011261048a57600435610acd81610aa6565b610ad5612bf5565b610add613057565b5f54901515908160ff8216151514610b395760ff191660ff8216175f556040519081527f3e12b7b36c75ac9609a3f58609b331210428e1a85909132638955ba0301eec3390602090a160015f805160206149ad83398151915255005b60405163a741a04560e01b8152600490fd5b3461048a575f36600319011261048a57602065ffffffffffff60015460a01c16604051908152f35b3461048a5760408060031936011261048a576004803591610b9383610502565b610b9b612bf5565b6001600160a01b0391838316908115610e23575f5460ff811680610e0a575b610dfb5783516370a0823160e01b808252308483019081529096602093909160109190911c82169084908490819083010381845afa928315610dd3575f93610dd8575b50610c0f90602435903090339061352a565b5f5486519788523085890190815290979184918391908290819060200103918b60101c165afa908115610dd357610c4e935f92610da6575b50506123ed565b938415610d975760081c60ff1680610d82575b610d745750906105c091610d12610c76613b9d565b95610cbf610c82613c16565b610caa610c908a838b613cd7565b99610ca48a610c9e42612d9e565b9261241b565b9061367e565b5050610cb989610c9e42612d9e565b9061375e565b50506001600160a01b0381165f908152600e6020526040902090610d0c88610d07610562610cec42612d9e565b6001600160a01b039095165f908152600e6020526040902090565b61241b565b9161383a565b505081518481526020810186905233907fdcbc1c05240f31ff3ad067ef1ee35ce4997762752e3a095284754544f4c709d790604090a3610d5e60015f805160206149ad83398151915255565b5191825260208201929092529081906040820190565b8251632484557960e01b8152fd5b50610d8f84610d07613b9d565b815410610c61565b50825163070f6eed60e11b8152fd5b610dc59250803d10610dcc575b610dbd818361085b565b810190612449565b5f80610c47565b503d610db3565b612458565b610c0f919350610df490853d8711610dcc57610dbd818361085b565b9290610bfd565b5082516304f63b8560e01b8152fd5b50335f9081526005602052604090205460ff1615610bba565b8251630d534ce360e11b8152fd5b3461048a575f36600319011261048a57602060ff5f54166040519015158152f35b3461048a575f36600319011261048a57602060015460d01c604051908152f35b3461048a575f36600319011261048a57602060ff60025460a01c166040519015158152f35b90604060031983011261048a57600435610eb0816107fc565b91602435906001600160401b03821161048a57610917916004016108fc565b3461048a576020610986610ee236610e97565b90612e01565b3461048a57602036600319011261048a57600435610f0581610aa6565b610f0d612bf5565b610f156130b4565b5f54901515908160ff8260081c16151514610b395761ff001916600882901b61ff0016175f556040519081527ffa7a25a0b611d4ba3c0ea990e90dc23d484a5dd7a1be4733fef2946ba74530c690602090a1610a1e60015f805160206149ad83398151915255565b3461048a575f36600319011261048a5760206001600160401b035f805160206149cd8339815191525416604051908152f35b3461048a57606036600319011261048a57610fc86106e8565b602435610fd481610502565b6001600160401b039160443583811161048a57610ff59036906004016106fe565b5f805160206149cd8339815191529491855494838616806110d65760ff8760401c169081156110c9575b506107c8577fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2966110c49661108c958716906001600160401b0319161790556110875f805160206149cd833981519152600160401b68ff000000000000000019825416179055565b612463565b5f805160206149cd833981519152805468ff0000000000000000191690556040516001600160401b0390911681529081906020820190565b0390a1005b905084861611155f61101f565b60405162dc149f60e41b8152600490fd5b3461048a57602036600319011261048a57602061098660043561110981610502565b612883565b3461048a57602036600319011261048a576004355f526006602052602060405f2054604051908152f35b3461048a575f36600319011261048a5760015465ffffffffffff61116e818360a01c169261116461291a565b9060d01c906123fa565b82018092116106d157611182602092612d9e565b60405191168152f35b3461048a575f36600319011261048a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461048a575f36600319011261048a57602060ff60035460a01c166040519015158152f35b3461048a575f36600319011261048a5761120c6139cc565b5f8051602061492d83398151915280546001600160a01b031981169091555f906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b3461048a57604036600319011261048a5760043560243561127b816107fc565b611283612bf5565b6003546112a0906001600160a01b03165b6001600160a01b031690565b330361151d576112ae61291a565b906112b88161294e565b908215158061150c575b8015611503575b6114f1576105c0937ff9d090c096f71cd1659861a9ce5b6f384bceb4e2fa4e4a19edf6489a9b8d56c7926112fb613b9d565b946113166113088261240d565b5f52600660205260405f2090565b549082810361140a575061132a818761241b565b6113348185613a04565b9687806113c3575b50505050505b8361138f575b6040805191825265ffffffffffff929092166020820152908101839052606090a161137f60015f805160206149ad83398151915255565b6040519081529081906020820190565b5f546113be9085906113ac9060101c6001600160a01b0316611294565b6001546001600160a01b031690613ab2565b611348565b6113ff93610c4783610ca46113e96113e2611308986113f99888613a20565b80966123ed565b946113f342612d9e565b926123ed565b9261240d565b555f8080808761133c565b915061141e825f52600660205260405f2090565b549061142e81610d07848a61241b565b906114398286613a04565b978861144a575b5050505050611342565b6114bf93836114729361147f8c61147a6114686114b0998884613a20565b9788958584613a20565b9485926123ed565b6123ed565b938484106114ca575b610c4790610ca461149e9596976113f342612d9e565b6114aa6113088761240d565b556123ed565b915f52600660205260405f2090565b555f80808080611440565b916114e6610c47916114e08661149e97986123ed565b9061241b565b859450929050611488565b604051635e18d2a560e01b8152600490fd5b508282116112c9565b50611516836123df565b82106112c2565b60405163dabc4ad960e01b8152600490fd5b3461048a575f36600319011261048a5760015465ffffffffffff808260a01c169161155861291a565b600181018091116106d15761116e9160d01c906123fa565b3461048a575f36600319011261048a57602061098661291a565b3461048a57602036600319011261048a576004356115a781610502565b60018060a01b03165f526005602052602060ff60405f2054166040519015158152f35b3461048a57602036600319011261048a5760206109866004356115ec816107fc565b61294e565b3461048a57604036600319011261048a5760043561160e81610502565b6024356001600160401b0380821161048a573660238301121561048a57816004013590811161048a573660248260051b8401011161048a576105c092602461137f930190612989565b3461048a57602061098661166a36610e97565b90612ed6565b3461048a5760208060031936011261048a57600480359061169082610502565b611698612bf5565b60025460a01c60ff1661181a576040516302910f8b60e31b81526001600160a01b03838116838301908152909491908290829081906020010381887f0000000000000000000000000000000000000000000000000000000000000000165afa908115610dd3575f916117ed575b50156117dd5760405163fbfa77cf60e01b8152838516949082818581895afa928315610dd3575f936117ae575b50503091160361179f5750600280546001600160a01b03929092166001600160a81b031990921691909117600160a01b1790557fdb2160616f776a37b24808115554e79439bf26cccbbd4438190cc6d28e80ecd15f80a2610a1e60015f805160206149ad83398151915255565b60405163b9f0f17160e01b8152fd5b6117ce929350803d106117d6575b6117c6818361085b565b810190612ae2565b905f80611732565b503d6117bc565b506040516324e5af8d60e21b8152fd5b61180d9150823d8411611813575b611805818361085b565b810190612ac2565b5f611705565b503d6117fb565b604051631380833b60e01b8152fd5b3461048a575f36600319011261048a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461048a575f36600319011261048a5761188561291a565b61188d613b9d565b90805f52600660205260405f205482018092116106d157600181018091116106d1575f52600660205260405f205481018091116106d157602090604051908152f35b3461048a575f36600319011261048a575f8051602061492d833981519152546040516001600160a01b039091168152602090f35b3461048a57604036600319011261048a57602060ff61195560243561192781610502565b6004355f525f8051602061498d833981519152845260405f209060018060a01b03165f5260205260405f2090565b54166040519015158152f35b3461048a57602036600319011261048a5760043561197e81610502565b60018060a01b03165f52600e602052602061098660405f20613c8a565b3461048a57604036600319011261048a576004356119b881610502565b6024356001600160401b03811161048a575f916119da839236906004016106fe565b90816040519283928337810184815203915af4611a3d60806119fa612af7565b9260206040519485921515828401526040808401528051918291826060860152018484015e5f838284010152601f8019910116810103606081018452018261085b565b805190602001fd5b3461048a575f36600319011261048a57602060ff5f5460081c166040519015158152f35b3461048a575f36600319011261048a5760206040515f8152f35b3461048a575f36600319011261048a5760206040517f4a634bc14d77baf979756509ef4298c6f6318af357828612545267ee2eb792338152f35b3461048a57604036600319011261048a57600435611ada81610502565b602435611ae681610aa6565b611aee612bf5565b611af661310b565b6001600160a01b038216918215611b9e575f8381526005602052604090205460ff16151582151514610b39576001600160a01b03165f9081526005602052604090207ff991b1ecfb5115cbb36a2b2e2240c058406d2acc2fcc6e9e2dc99d845ff70a6291611b8591611b73908260ff801983541691151516179055565b60405190151581529081906020820190565b0390a2610a1e60015f805160206149ad83398151915255565b604051630da30f6560e31b8152600490fd5b3461048a57604036600319011261048a576020611bf4602435611bd281610502565b6004355f526008835260405f209060018060a01b03165f5260205260405f2090565b54604051908152f35b3461048a57604036600319011261048a57602060ff611955602435611c2181610502565b6004355f526009845260405f209060018060a01b03165f5260205260405f2090565b3461048a5760208060031936011261048a576004803590611c6382610502565b611c6b612bf5565b60035460a01c60ff16611deb576001600160a01b03828116939084611cd9575b6003805460ff60a01b1916600160a01b179055847fe7e4c932e03abddfe20f83af42c33627e816115c7ec2b168441f65dc14bfc3ba5f80a2610a1e60015f805160206149ad83398151915255565b6040516302910f8b60e31b81526001600160a01b0385168482019081528390829081906020010381857f0000000000000000000000000000000000000000000000000000000000000000165afa908115610dd3575f91611dce575b5015611dbd5760405163fbfa77cf60e01b815282818581895afa928315610dd3575f93611d9e575b505030911603611d8f5750600380546001600160a01b0319166001600160a01b039092169190911790555f808080611c8b565b604051633f3e089160e21b8152fd5b611db5929350803d106117d6576117c6818361085b565b905f80611d5c565b60405163dabc4ad960e01b81528390fd5b611de59150833d851161181357611805818361085b565b5f611d34565b60405163703fe2e560e01b8152fd5b3461048a57604036600319011261048a57600435611e1781610502565b60243590611e23612bf5565b6001600160a01b0391818316908115611ea957611e546105c094611e4683613b01565b9485915f5460101c16613ab2565b604080519182526020820184905233917f865ca08d59f5cb456e85cd2f7ef63664ea4f73327414e9d8152c4158b0e946459190a360015f805160206149ad833981519152556040519081529081906020820190565b604051634e46966960e11b8152600490fd5b3461048a57602036600319011261048a576004355f526007602052602060405f2054604051908152f35b3461048a575f36600319011261048a576003546040516001600160a01b039091168152602090f35b3461048a575f36600319011261048a576020610986613b9d565b3461048a57602036600319011261048a57600435611f43612bf5565b335f9081527f2d4ccbfe9f7672a6f2537c1e5bce6adacb73706879154bbab6ce096012d6721660205260409020547f4a634bc14d77baf979756509ef4298c6f6318af357828612545267ee2eb792339060ff1615611fe757508060045414610b39576020817f854df3eb95564502c8bc871ebdd15310ee26270f955f6c6bd8cea68e75045bc092600455604051908152a160015f805160206149ad83398151915255005b6044906040519063e2517d3f60e01b82523360048301526024820152fd5b3461048a575f36600319011261048a576020610986613c16565b3461048a57602036600319011261048a5760043561203c81610502565b61204461291a565b61204d82612883565b916120588183612b97565b83018093116106d157600182018092116106d15761207591612b97565b81018091116106d157602090604051908152f35b3461048a575f36600319011261048a576002546040516001600160a01b039091168152602090f35b3461048a57604036600319011261048a57610a1e6024356004356120d482610502565b805f525f8051602061498d8339815191526020526120f8600160405f200154613162565b613498565b3461048a575f36600319011261048a575f5460405160109190911c6001600160a01b03168152602090f35b3461048a575f36600319011261048a5760206040517fbae4ee3de6c709ff9a002e774c5b78cb381560b219213c88ae0f1e207c03c0238152f35b3461048a575f36600319011261048a576020600454604051908152f35b3461048a57606036600319011261048a5760043561219c81610502565b602435906121a9826107fc565b6001600160401b039160443583811161048a576121ca9036906004016106fe565b909260409384516121da81610820565b60608152606060208201526060868201529280612239575b6105c08661222a878761222461220b8984845191612428565b928561221b602085015183612ed6565b93015190612e01565b91613cd7565b90519081529081906020820190565b810193925060208185031261048a5780359086821161048a57019260608482031261048a5784519561226a87610820565b843581811161048a578261227f9187016108fc565b8752602085013581811161048a57826122999187016108fc565b60208801528585013590811161048a576105c0966122c26122249361220b9361222a98016108fc565b878201529394506121f2565b3461048a57602036600319011261048a57610a1e6004356122ee81610502565b6122f66139cc565b612b26565b3461048a57604036600319011261048a5760043561231881610502565b602435612323612bf5565b6001600160a01b038216156105eb57801561238f57612352612343613c16565b61234b613b9d565b9083614121565b335f908152600e6020526040902090929061236c90613c8a565b831161237d57610598918391612c24565b6040516321727a3760e11b8152600490fd5b604051636c6c627d60e11b8152600490fd5b3461048a57604036600319011261048a5760206109866024356123c381610502565b600435612b97565b634e487b7160e01b5f52601160045260245ffd5b5f198101919082116106d157565b919082039182116106d157565b818102929181159184041417156106d157565b90600182018092116106d157565b919082018092116106d157565b6001600160a01b03165f908152600e60205260409020610917929190612f8b565b9081602091031261048a575190565b6040513d5f823e3d90fd5b916124b5916124a691612474614268565b61247c614268565b60015f805160206149ad833981519152556001600160a01b0394808616612869575b5036916108c6565b60208082518301019101613903565b805182166001600160a01b03161561285757604080820165ffffffffffff6124e3825165ffffffffffff1690565b16156128465760c083018051909290612504906001600160a01b0316611294565b156126f7575b5091612643610140926125e26125bd6126a196612558612530875160018060a01b031690565b5f805462010000600160b01b03191660109290921b62010000600160b01b0316919091179055565b6020860151600180546001600160a01b0319166001600160a01b039092169190911790556125b161258842612d9e565b6001805465ffffffffffff60a01b191660a09290921b65ffffffffffff60a01b16919091179055565b5165ffffffffffff1690565b600180546001600160d01b031660d09290921b6001600160d01b031916919091179055565b6126026125f26060850151151590565b60ff80195f541691151516175f55565b6126296126126080850151151590565b61ff005f5491151560081b169061ff001916175f55565b61263660a0840151600455565b516001600160a01b031690565b8481166126e7575b5060e08101516001600160a01b03168481166126d7575b506101008101516001600160a01b03168481166126c7575b506101208101516001600160a01b03168481166126b7575b5001516001600160a01b031690565b9081166126ab5750565b6126b4906133f3565b50565b6126c090613384565b505f612692565b6126d090613315565b505f61267a565b6126e09061323f565b505f612662565b6126f09061318e565b505f61264b565b60e084015161270e906001600160a01b0316611294565b156127e3575b61012084015161272c906001600160a01b0316611294565b61250a576080840151156127995760a0840151158061277a575b61276a575091612643610140926125e26125bd6126a1965b9496505050925061250a565b5163183c854560e21b8152600490fd5b50610140840151612793906001600160a01b0316611294565b15612746565b60a0840151158015906127c3575b61276a575091612643610140926125e26125bd6126a19661275e565b506101408401516127dc906001600160a01b0316611294565b15156127a7565b60608401511561281957610100840151612805906001600160a01b0316611294565b612714575163183c854560e21b8152600490fd5b610100840151612831906001600160a01b0316611294565b15612714575163183c854560e21b8152600490fd5b81516368f5f8f160e11b8152600490fd5b6040516368f7a67560e11b8152600490fd5b61287d90612875614268565b6122f6614268565b5f61249e565b6001600160a01b03165f908152600e602052604090206128a290613c8a565b6128aa613b9d565b6128b2613c16565b90600181018091116106d157600182018092116106d15761091792613a20565b65ffffffffffff91821690821603919082116106d157565b634e487b7160e01b5f52601260045260245ffd5b9065ffffffffffff80911691821561291557160490565b6128ea565b61292342612d9e565b61294a60015461294065ffffffffffff93848360a01c16906128d2565b9060d01c906128fe565b1690565b6001549065ffffffffffff91828160a01c169182848216106129775761294a92612940916128d2565b60405163b7d0949760e01b8152600490fd5b90612992612bf5565b5f926001600160a01b038316928315611ea9578115612a4a575f5b828110612a2857505f547f326b6aff1cd2fb1c8234de4f9dcfb9047c5c36eb9ef2eb34af5121e969a75d2792869290916129fd9184916129f89060101c6001600160a01b0316611294565b613ab2565b612a0e604051928392339684612a85565b0390a3906108a960015f805160206149ad83398151915255565b94612a436001916114e0612a3d898789612a70565b35613b01565b95016129ad565b60405163edf3b93360e01b8152600490fd5b634e487b7160e01b5f52603260045260245ffd5b9190811015612a805760051b0190565b612a5c565b604080825281018390529392916001600160fb1b03811161048a5760209160609160051b809183880137850101930152565b51906108a982610aa6565b9081602091031261048a575161091781610aa6565b51906108a982610502565b9081602091031261048a575161091781610502565b3d15612b21573d90612b08826108ab565b91612b16604051938461085b565b82523d5f602084013e565b606090565b6001600160a01b03908116908115612b7f575f8051602061492d83398151915280546001600160a01b031981168417909155167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3565b604051631e4fbdf760e01b81525f6004820152602490fd5b90612bbd90825f52600860205260405f209060018060a01b03165f5260205260405f2090565b54905f52600660205260405f2054600760205260405f205490600181018091116106d157600182018092116106d15761091792613a20565b5f805160206149ad8339815191526002815414612c125760029055565b604051633ee5aeb560e01b8152600490fd5b335f908152600e6020526040902093929190612c3f42612d9e565b335f908152600e60205260409020612c5690613c8a565b918483039283116106d157612c917febff2602b3f468259e1e99f613fed6691f3a6526effe6ef3e768ba7ae7a36c4f938593612d1c9961383a565b5050612cab612c9f42612d9e565b610cb98761147a613c16565b5050612cc5612cb942612d9e565b610ca48461147a613b9d565b5050612d6a81612d55612cde612cd961291a565b61240d565b612d34612cf3825f52600660205260405f2090565b54612d06835f52600760205260405f2090565b54612d1282828b613cd7565b9d8e998a9361241b565b612d2e855f52600660205260405f2090565b5561241b565b612d46825f52600760205260405f2090565b555f52600860205260405f2090565b9060018060a01b03165f5260205260405f2090565b612d7583825461241b565b9055604080519485526020850195909552938301526001600160a01b03909216913391606090a3565b65ffffffffffff90818111612db1571690565b604490604051906306dfcc6560e41b8252603060048301526024820152fd5b9081602091031261048a575163ffffffff8116810361048a5790565b90600163ffffffff809316019182116106d157565b90805115612ecc5780602080612e1c93518301019101612dd0565b612e2581613f48565b90612e36825165ffffffffffff1690565b9065ffffffffffff8085169216828114612ec05782119182612e6c575b5050612e63575061091790613cf8565b60209150015190565b909150612e7a600a546123df565b63ffffffff831614918215612e93575b50505f80612e53565b612eb89192506125b1612ea8612ead92612dec565b613f48565b65ffffffffffff1690565b115f80612e8a565b50505060209150015190565b5061091790613cf8565b90805115612f815780602080612ef193518301019101612dd0565b612efa81613fcd565b90612f0b825165ffffffffffff1690565b9065ffffffffffff8085169216828114612ec05782119182612f38575b5050612e63575061091790613dbf565b909150612f46600c546123df565b63ffffffff831614918215612f5f575b50505f80612f28565b612f799192506125b1612f74612ead92612dec565b613fcd565b115f80612f56565b5061091790613dbf565b9180511561304d5780602080612fa693518301019101612dd0565b91612fb18382614048565b92612fc2845165ffffffffffff1690565b9065ffffffffffff80851692168281146130415782119182612ff8575b5050612fef576109179250613e7f565b50506020015190565b90915061300583546123df565b63ffffffff83161491821561301e575b50505f80612fdf565b6130399192506125b1613033612ead92612dec565b85614048565b115f80613015565b50505050506020015190565b5061091791613e7f565b335f9081527f03b26b53c87faa1058f30bb5d2fee64f717719a0d9b7e4f4df027aa5e9b6ed69602052604090207fbae4ee3de6c709ff9a002e774c5b78cb381560b219213c88ae0f1e207c03c0239060ff905b541615611fe75750565b335f9081527fe41986b390c4ce6791b87f7423b5fab7a81a0e6d89660b6264f697d008b2243a602052604090207fc6aaadd7371d5e8f9ed6849dd66a66573a3ba37167d03f4352c9ba5693678fac9060ff906130aa565b335f9081527f0287ab4cb376ea253d7b2ce0c2cbf458f7deae9458470d74afdfbbee484e9540602052604090207f9c56d972d63cbb4195b3c1484691dfc220fa96a4c47e7b6613bd82a022029e069060ff906130aa565b5f8181525f8051602061498d83398151915260209081526040808320338452909152902060ff906130aa565b6001600160a01b0381165f9081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d60205260409020545f8051602061498d8339815191529060ff16613239575f808052602091825260408082206001600160a01b038516835290925220805460ff1916600117905533906001600160a01b03165f7f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d8180a4600190565b50505f90565b6001600160a01b0381165f9081527f03b26b53c87faa1058f30bb5d2fee64f717719a0d9b7e4f4df027aa5e9b6ed69602052604090207fbae4ee3de6c709ff9a002e774c5b78cb381560b219213c88ae0f1e207c03c023905f8051602061498d8339815191529060ff905b541661330e575f828152602091825260408082206001600160a01b038616835290925220805460ff1916600117905533916001600160a01b0316907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d5f80a4600190565b5050505f90565b6001600160a01b0381165f9081527f0287ab4cb376ea253d7b2ce0c2cbf458f7deae9458470d74afdfbbee484e9540602052604090207f9c56d972d63cbb4195b3c1484691dfc220fa96a4c47e7b6613bd82a022029e06905f8051602061498d8339815191529060ff906132aa565b6001600160a01b0381165f9081527fe41986b390c4ce6791b87f7423b5fab7a81a0e6d89660b6264f697d008b2243a602052604090207fc6aaadd7371d5e8f9ed6849dd66a66573a3ba37167d03f4352c9ba5693678fac905f8051602061498d8339815191529060ff906132aa565b6001600160a01b0381165f9081527f2d4ccbfe9f7672a6f2537c1e5bce6adacb73706879154bbab6ce096012d67216602052604090207f4a634bc14d77baf979756509ef4298c6f6318af357828612545267ee2eb79233905f8051602061498d8339815191529060ff906132aa565b5f8181525f8051602061498d833981519152602081815260408084206001600160a01b038716855290915290912060ff906132aa565b5f8181525f8051602061498d833981519152602081815260408084206001600160a01b03871685529091529091205460ff161561330e575f828152602091825260408082206001600160a01b038616835290925220805460ff1916905533916001600160a01b0316907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b5f80a4600190565b6040516323b872dd60e01b60208201526001600160a01b03928316602482015292909116604483015260648083019390935291815260a08101918183106001600160401b0384111761083b576108a9926040526140b0565b600b54811015612a8057600b5f525f8051602061496d83398151915201905f90565b600d54811015612a8057600d5f525f8051602061494d83398151915201905f90565b8054821015612a80575f5260205f2001905f90565b600d54600160401b81101561083b576001810180600d55811015612a8057600d5f525f8051602061494d8339815191520155565b600b54600160401b81101561083b576001810180600b55811015612a8057600b5f525f8051602061496d8339815191520155565b90815491600160401b83101561083b57826136669160016108a9950181556135c6565b90919082549060031b91821b915f19901b1916179055565b919091600d9081548015613729575b50613696614185565b509290918154926136a5613b9d565b9481613714575b50156136f157505f1982018281116106d15781541115612a80575f527fd7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb4018390559190565b613705926001600160d01b0316915061439f565b5050613710836135db565b9190565b65ffffffffffff83811691161490505f6136ac565b600160401b81101561083b5760018101808455811015612a80575f908382525f8051602061494d83398151915201555f61368d565b919091600b9081548015613805575b506137766141f0565b50929091815492613785613c16565b94816137f0575b50156137d157505f1982018281116106d15781541115612a80575f527f0175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db8018390559190565b6137e5926001600160d01b0316915061449f565b50506137108361360f565b65ffffffffffff83811691161490505f61378c565b600160401b81101561083b5760018101808455811015612a80575f908382525f8051602061496d83398151915201555f61376d565b909291926001820190815480156138c8575b50846138578461423a565b5094909284549361386783613c8a565b96816138b3575b5015613890575050505f1981019081116106d1576136668591613710936135c6565b6137109492936138ac926001600160d01b039091169190614549565b5050613643565b65ffffffffffff83811691161490505f61386e565b600160401b81101561083b578060016138e492018455836135c6565b8154905f199060031b1b191690555f61384c565b51906108a9826107fc565b908161016091031261048a5761391761087c565b9061392181612ad7565b825261392f60208201612ad7565b6020830152613940604082016138f8565b604083015261395160608201612ab7565b606083015261396260808201612ab7565b608083015260a081015160a083015261397d60c08201612ad7565b60c083015261398e60e08201612ad7565b60e08301526101006139a1818301612ad7565b908301526101206139b3818301612ad7565b908301526139c5610140809201612ad7565b9082015290565b5f8051602061492d833981519152546001600160a01b031633036139ec57565b60405163118cdaa760e01b8152336004820152602490fd5b9080821015613a11575090565b905090565b8115612915570490565b9091828202915f1984820993838086109503948086039514613aa55784831115613a9357829109815f038216809204600280826003021880830282030280830282030280830282030280830282030280830282030280920290030293600183805f03040190848311900302920304170290565b60405163227bc15360e01b8152600490fd5b5050906109179250613a16565b60405163a9059cbb60e01b60208201526001600160a01b03909216602483015260448083019390935291815260808101916001600160401b0383118284101761083b576108a9926040526140b0565b90613b0a61291a565b821015613b8b575f82815260096020908152604080832033845290915290205460ff16613b7957613b3b3383612b97565b918215613b67575f9081526009602090815260408083203384529091529020805460ff19166001179055565b6040516366c0bcbf60e11b8152600490fd5b604051630c8d9eab60e31b8152600490fd5b60405163d5b25b6360e01b8152600490fd5b600c5480613bdd57505f5b6001600160d01b03811615613bd857600d54811015612a8057600d5f525f8051602061494d833981519152015490565b505f90565b805f198101116106d157600c5f527fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c6015460301c613ba8565b600a5480613c5157505f5b6001600160d01b03811615613bd857600b54811015612a8057600b5f525f8051602061496d833981519152015490565b805f198101116106d157600a5f527fc65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a7015460301c613c21565b805480613cb957505f5b6001600160d01b03811615613239576001613caf92016135c6565b90549060031b1c90565b5f199080828101116106d157825f5260205f2001015460301c613c94565b9190600181018091116106d157600182018092116106d15761091792613a20565b600a54905f829160058411613d66575b613d129350614755565b80613d3557505f5b6001600160d01b03811615613bd857613caf61091791613582565b613d5a613d44613d61926123df565b600a5f525f8051602061490d8339815191520190565b5460301c90565b613d1a565b9192613d718161461c565b81039081116106d157613d1293600a5f5265ffffffffffff80835f8051602061490d833981519152015416908516105f14613dad575091613d08565b929150613db99061240d565b90613d08565b600c54905f829160058411613e26575b613dd993506147be565b80613dfc57505f5b6001600160d01b03811615613bd857613caf610917916135a4565b613d5a613e0b613e21926123df565b600c5f525f805160206148ed8339815191520190565b613de1565b9192613e318161461c565b81039081116106d157613dd993600c5f5265ffffffffffff80835f805160206148ed833981519152015416908516105f14613e6d575091613dcf565b929150613e799061240d565b90613dcf565b908154905f829160058411613ee2575b613e9a935084614827565b80613ec257505f905b6001600160d01b0382161561323957610917916001613caf92016135c6565b613d5a613ed1613edc926123df565b835f5260205f200190565b90613ea3565b9192613eed8161461c565b81039081116106d157613e9a93855f5265ffffffffffff808360205f20015416908516105f14613f1e575091613e8f565b929150613f2a9061240d565b90613e8f565b60405190613f3d82610840565b5f6020838281520152565b613f50613f30565b50613f59613f30565b50600a54811015612a8057613f8090600a5f525f8051602061490d83398151915201614161565b65ffffffffffff81511690602060018060d01b0391015116600b54811015612a8057600b5f525f8051602061496d833981519152015460405191613fc383610840565b8252602082015290565b613fd5613f30565b50613fde613f30565b50600c54811015612a805761400590600c5f525f805160206148ed83398151915201614161565b65ffffffffffff81511690602060018060d01b0391015116600d54811015612a8057600d5f525f8051602061494d833981519152015460405191613fc383610840565b9061407161406b6140929261405b613f30565b50614064613f30565b50846135c6565b50614161565b91600165ffffffffffff845116936020828060d01b039101511691016135c6565b905490604051926140a284610840565b835260031b1c602082015290565b5f806140d89260018060a01b03169360208151910182865af16140d1612af7565b9083614889565b8051908115159182614106575b50506140ee5750565b60249060405190635274afe760e01b82526004820152fd5b6141199250602080918301019101612ac2565b155f806140e5565b9190600181018091116106d157600182018092116106d157614144828285613a20565b92821561291557096141535790565b600181018091116106d15790565b9060405161416e81610840565b915465ffffffffffff8116835260301c6020830152565b600c548061419657505f905f905f90565b805f198101116106d1577fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c66141cf91600c5f5201614161565b9065ffffffffffff82511691602060018060d01b0391015116906001929190565b600a548061420157505f905f905f90565b805f198101116106d1577fc65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a76141cf91600a5f5201614161565b80548061424b5750505f905f905f90565b5f199080828101116106d1576141cf925f5260205f200101614161565b60ff5f805160206149cd8339815191525460401c161561428457565b604051631afcd79f60e31b8152600490fd5b600c5490600160401b82101561083b576001820180600c55821015612a8057600c5f52805160209091015160301b65ffffffffffff191665ffffffffffff91909116175f805160206148ed83398151915290910155565b600a5490600160401b82101561083b576001820180600a55821015612a8057600a5f52805160209091015160301b65ffffffffffff191665ffffffffffff91909116175f8051602061490d83398151915290910155565b8054600160401b81101561083b57614361916001820181556135c6565b61438c57815160209092015160301b65ffffffffffff191665ffffffffffff92909216919091179055565b634e487b7160e01b5f525f60045260245ffd5b600c54919291908115614476576143c06143bb613e0b846123df565b614161565b805165ffffffffffff83811694911684106144645785602093613710956143f0612ead865165ffffffffffff1690565b0361442c5750614405613e0b61441e936123df565b9065ffffffffffff82549181199060301b169116179055565b01516001600160d01b031690565b905061445f915061444c61443e61089c565b65ffffffffffff9092168252565b6001600160d01b03871681850152614296565b61441e565b604051632520601d60e01b8152600490fd5b61449a915061448661443e61089c565b6001600160d01b0384166020820152614296565b5f9190565b600a54919291908115614525576144bb6143bb613d44846123df565b805165ffffffffffff83811694911684106144645785602093613710956144eb612ead865165ffffffffffff1690565b036145005750614405613d4461441e936123df565b905061445f915061451261443e61089c565b6001600160d01b038716818501526142ed565b61449a915061453561443e61089c565b6001600160d01b03841660208201526142ed565b8054929392919082156145f8576145656143bb613ed1856123df565b90614576825165ffffffffffff1690565b65ffffffffffff84811691168110614464576137109460209488926145a4612ead875165ffffffffffff1690565b036145c5575061441e926145ba614405926123df565b905f5260205f200190565b91505061445f916145e56145d761089c565b65ffffffffffff9093168352565b6001600160d01b03881682860152614344565b61449a92506146086145d761089c565b6001600160d01b0385166020830152614344565b8015613bd857806146ee6146e76146dd6146d36146c96146bf6146b56146ab60016109179a5f908b60801c80614749575b508060401c8061473c575b508060201c8061472f575b508060101c80614722575b508060081c80614715575b508060041c80614708575b508060021c806146fb575b50821c6146f4575b811c1b6146a4818b613a16565b0160011c90565b6146a4818a613a16565b6146a48189613a16565b6146a48188613a16565b6146a48187613a16565b6146a48186613a16565b6146a48185613a16565b8092613a16565b90613a04565b8101614697565b600291509101905f61468f565b600491509101905f614684565b600891509101905f614679565b601091509101905f61466e565b602091509101905f614663565b604091509101905f614658565b9150506080905f61464d565b905b82811061476357505090565b9091808216906001818418811c83018093116106d157600a5f5265ffffffffffff80845f8051602061490d833981519152015416908616105f146147ab575050915b90614757565b9093925081018091116106d157906147a5565b905b8281106147cc57505090565b9091808216906001818418811c83018093116106d157600c5f5265ffffffffffff80845f805160206148ed833981519152015416908616105f14614814575050915b906147c0565b9093925081018091116106d1579061480e565b91905b8382106148375750505090565b909192808316906001818518811c83018093116106d157855f5265ffffffffffff808460205f20015416908516105f14614876575050925b919061482a565b9094935081018091116106d1579161486f565b906148b0575080511561489e57805190602001fd5b604051630a12f52160e11b8152600490fd5b815115806148e3575b6148c1575090565b604051639996b31560e01b81526001600160a01b039091166004820152602490fd5b50803b156148b956fedf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c7c65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a89016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300d7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb50175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db902dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268009b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a26469706673582212205eb48e48c582a0d2dd84283abb0d0c766d767ab9b676d6e9c13aeaa32e7e136664736f6c63430008190033","sourceMap":"981:14960:100:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;;;;;-1:-1:-1;;981:14960:100;;;;;;;;;;;;;;;;;;-1:-1:-1;;;3551:47:24;;;:87;;;;981:14960:100;;;;;;;;;;3551:87:24;-1:-1:-1;;;1133:40:30;;-1:-1:-1;3551:87:24;;;981:14960:100;-1:-1:-1;981:14960:100;;;;;;;;-1:-1:-1;;981:14960:100;;;;;;;966:38:101;981:14960:100;;;;;;;;;-1:-1:-1;;981:14960:100;;;;;;;821:37:101;981:14960:100;;;;-1:-1:-1;;;;;981:14960:100;;;;;:::o;:::-;;;;;;-1:-1:-1;;981:14960:100;;;;;;;;;:::i;:::-;;;3217:103:29;;;:::i;:::-;-1:-1:-1;;;;;981:14960:100;;5525:21;5521:75;;5634:10;981:14960;;;;5606:15:101;981:14960:100;;;;;5606:33:101;;;:::i;:24::-;:33;:::i;:::-;5610:35:100;;5606:88;;1057:70:92;5173:21:101;;:::i;:::-;4803:22;;:::i;:::-;1057:70:92;;;:::i;:::-;5801:20:100;;;5797:82;;5904:43;;;;:::i;:::-;3282:1:29;;1805;-1:-1:-1;;;;;;;;;;;981:14960:100;3716:283:29;3282:1;981:14960:100;;;;;;;;;;;;;;;;;;5797:82;981:14960;;-1:-1:-1;;;;;;5844:24:100;;981:14960;;5844:24;5606:88;981:14960;;-1:-1:-1;;;5668:15:100;;981:14960;;5668:15;5521:75;981:14960;;-1:-1:-1;;;5569:16:100;;981:14960;;5569:16;981:14960;;;;;;-1:-1:-1;;981:14960:100;;;;;;-1:-1:-1;981:14960:100;-1:-1:-1;;;;;;;;;;;981:14960:100;;;4919:24:24;981:14960:100;-1:-1:-1;981:14960:100;4919:24:24;981:14960:100;;;;;;;;;;;;;-1:-1:-1;;981:14960:100;;;;;;;;-1:-1:-1;;;;;981:14960:100;;;;;;;;;;;;;;-1:-1:-1;;981:14960:100;;;;4084:14:101;;:::i;:::-;4112:10;;4108:65;;4190:17;981:14960:100;;;;;;;;;;;;;;;;4210:27:101;981:14960:100;;;4210:27:101;;:::i;:::-;981:14960:100;;;;;;;4189:60:101;981:14960:100;4189:60:101;;:::i;:::-;981:14960:100;;;;;;;;;;;;;;;;;;:::i;4108:65:101:-;981:14960:100;;-1:-1:-1;;;4145:17:101;;981:14960:100;;4145:17:101;981:14960:100;;;;-1:-1:-1;;;;;981:14960:100;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;981:14960:100;;;;;;;;;;;;;;;:::o;:::-;;;;;;-1:-1:-1;;981:14960:100;;;;;;:::i;:::-;-1:-1:-1;;;;;981:14960:100;;;;;;;;;;;;;;:::i;:::-;3217:103:29;;;;:::i;:::-;1673:7:76;-1:-1:-1;;;;;981:14960:100;1659:10:76;:21;1655:71;;-1:-1:-1;;;;;;;;;;;981:14960:100;;;;;;;6431:44:26;;;;;981:14960:100;6427:105:26;;;;;-1:-1:-1;15924:8:100;;6427:105:26;981:14960:100;;-1:-1:-1;;;6498:23:26;;981:14960:100;;6498:23:26;6431:44;981:14960:100;;;;6450:25:26;;;-1:-1:-1;6431:44:26;;;;;1655:71:76;981:14960:100;;-1:-1:-1;;;1703:12:76;;981:14960:100;;1703:12:76;981:14960:100;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;981:14960:100;;;;;;;:::o;:::-;;:::i;:::-;;;;;;;-1:-1:-1;;;;;981:14960:100;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;981:14960:100;;;;;;;:::o;:::-;;;;;;;;;;-1:-1:-1;;;;;981:14960:100;;;;;;;:::o;:::-;;;;;;;:::i;:::-;:::o;:::-;-1:-1:-1;;;;;981:14960:100;;;;;;-1:-1:-1;;981:14960:100;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;981:14960:100;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;;-1:-1:-1;;981:14960:100;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;981:14960:100;;;;;;;5383:59:101;981:14960:100;;;;;;:::i;:::-;-1:-1:-1;;;;;981:14960:100;;;-1:-1:-1;981:14960:100;;;5383:15:101;981:14960:100;;;;;5383:59:101;:::i;:::-;981:14960:100;;;;;;;;;;;;-1:-1:-1;;981:14960:100;;;;;;655:32:76;-1:-1:-1;;;;;981:14960:100;;;;;;;;;;;;-1:-1:-1;;981:14960:100;;;;5350:25:24;981:14960:100;;;;;;;:::i;:::-;;-1:-1:-1;981:14960:100;-1:-1:-1;;;;;;;;;;;981:14960:100;;3202:4:24;4919:24;981:14960:100;-1:-1:-1;981:14960:100;4919:24:24;981:14960:100;3202:4:24;:::i;:::-;5350:25;:::i;:::-;981:14960:100;;;;;;;-1:-1:-1;;981:14960:100;;;;;;;;;:::i;:::-;966:10:28;-1:-1:-1;;;;;981:14960:100;;6441:34:24;6437:102;;6549:37;981:14960:100;;;6549:37:24;:::i;6437:102::-;981:14960:100;;-1:-1:-1;;;6498:30:24;;981:14960:100;;6498:30:24;981:14960:100;;;;;;-1:-1:-1;;981:14960:100;;;;;1524:22;981:14960;;;;1524:46;;;981:14960;;;;;;;;;;;1524:46;-1:-1:-1;1550:20:100;981:14960;;;;;1524:46;;981:14960;;;;;;;:::o;:::-;;;;;;-1:-1:-1;;981:14960:100;;;;;;;;;:::i;:::-;3217:103:29;;:::i;:::-;3202:4:24;;:::i;:::-;-1:-1:-1;981:14960:100;;;;;;;;;;;9542:26;9538:76;;-1:-1:-1;;981:14960:100;;;;;-1:-1:-1;981:14960:100;;;;;;9665:27;;981:14960;;9665:27;1805:1:29;-1:-1:-1;;;;;;;;;;;981:14960:100;;9538:76;981:14960;;-1:-1:-1;;;9591:12:100;;981:14960;;9591:12;981:14960;;;;;;-1:-1:-1;;981:14960:100;;;;;;1718:31:101;981:14960:100;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3217:103:29;;:::i;:::-;-1:-1:-1;;;;;981:14960:100;;;;;3474:24;;3470:81;;-1:-1:-1;981:14960:100;;;;3565:55;;;981:14960;3561:118;;981:14960;;-1:-1:-1;;;3713:43:100;;;3750:4;3713:43;;;981:14960;;;;;;;;;;;;;;;;;;;;;;;;;3713:43;;;;;;;;;;-1:-1:-1;3713:43:100;;;981:14960;;3829:6;981:14960;;;3750:4;;3802:10;;3829:6;;:::i;:::-;-1:-1:-1;981:14960:100;;;3864:43;;;3750:4;3864:43;;;981:14960;;;;;;;;;;3864:43;981:14960;;;;;;3864:43;981:14960;;;;;3864:43;;;;;;;:59;:43;-1:-1:-1;3864:43:100;;;981:14960;3864:59;;;:::i;:::-;3938:20;;;3934:79;;981:14960;;;;;4027:64;;981:14960;4023:123;;5173:21:101;;981:14960:100;5173:21:101;4502:93:100;5173:21:101;;:::i;:::-;4803:22;4426:66:100;4803:22:101;;:::i;:::-;4349:67:100;390:70:92;;;;;:::i;:::-;837:15:63;4385:30:100;837:15:63;819:34;837:15;819:34;:::i;:::-;4385:30:100;;:::i;:::-;4349:67;;:::i;:::-;837:15:63;;4463:28:100;837:15:63;819:34;837:15;819:34;:::i;4463:28:100:-;4426:66;;:::i;:::-;-1:-1:-1;;;;;;;981:14960:100;;;;;;5606:15:101;981:14960:100;;;;;837:15:63;4553:41:100;837:15:63;5606:33:101;:24;819:34:63;837:15;819:34;:::i;:::-;-1:-1:-1;;;;;981:14960:100;;;;;;;5606:15:101;981:14960:100;;;;;;;5606:33:101;4553:41:100;:::i;:::-;4502:93;;:::i;:::-;-1:-1:-1;;981:14960:100;;;;;;;;;;;3802:10;;4611:62;;981:14960;;4611:62;3282:1:29;1805;-1:-1:-1;;;;;;;;;;;981:14960:100;3716:283:29;3282:1;981:14960:100;;;;;;;;;;;;;;;;;;;4023:123;981:14960;;-1:-1:-1;;;4114:21:100;;;4027:64;5173:21:101;4045:31:100;5173:21:101;;;:::i;4045:31:100:-;981:14960;;-1:-1:-1;4027:64:100;;3934:79;-1:-1:-1;981:14960:100;;-1:-1:-1;;;3981:21:100;;;3864:43;;;;;;-1:-1:-1;3864:43:100;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;;:::i;3713:::-;3829:6;3713:43;;;;;;;;;;;;;;;:::i;:::-;;;;;3561:118;-1:-1:-1;981:14960:100;;-1:-1:-1;;;3643:25:100;;;3565:55;-1:-1:-1;3609:10:100;981:14960;;;;3586:22;981:14960;;;;;;;;3585:35;3565:55;;3470:81;981:14960;;-1:-1:-1;;;3521:19:100;;;981:14960;;;;;;-1:-1:-1;;981:14960:100;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;981:14960:100;;;;;1805:27:101;981:14960:100;;;;;;;;;;;;;;;-1:-1:-1;;981:14960:100;;;;;;1968:34:101;981:14960:100;;;;;;;;;;;;;;;-1:-1:-1;;981:14960:100;;;;;;;;;;:::i;:::-;;;;;-1:-1:-1;;;;;981:14960:100;;;;;;;;;:::i;:::-;;;;;4622:48:101;981:14960:100;;;:::i;:::-;4622:48:101;;:::i;981:14960:100:-;;;;;;-1:-1:-1;;981:14960:100;;;;;;;;;:::i;:::-;3217:103:29;;:::i;:::-;3202:4:24;;:::i;:::-;-1:-1:-1;981:14960:100;;;;;;;;;;;;;10370:24;10366:74;;-1:-1:-1;;981:14960:100;;;;;;;;-1:-1:-1;981:14960:100;;;;;;10489:25;;981:14960;;10489:25;3282:1:29;1805;-1:-1:-1;;;;;;;;;;;981:14960:100;3716:283:29;981:14960:100;;;;;;-1:-1:-1;;981:14960:100;;;;;-1:-1:-1;;;;;;;;;;;;;;;;981:14960:100;;;;;;;;;;;;;;-1:-1:-1;;981:14960:100;;;;;;:::i;:::-;;;;;;:::i;:::-;-1:-1:-1;;;;;981:14960:100;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;8837:64:26;;981:14960:100;;;;;;734:29:76;730:87;;981:14960:100;;;;;6431:44:26;;;;;981:14960:100;6427:105:26;;;6656:20;981:14960:100;6656:20:26;981:14960:100;1167:340:76;981:14960:100;;;;-1:-1:-1;;;;;981:14960:100;;;;;6575:22:26;-1:-1:-1;;;;;;;;;;;;;;981:14960:100;;;;;;;;;6575:22:26;1167:340:76;:::i;:::-;-1:-1:-1;;;;;;;;;;;981:14960:100;;-1:-1:-1;;981:14960:100;;;;;-1:-1:-1;;;;;981:14960:100;;;;;;;;;;;;;6656:20:26;;;;981:14960:100;6431:44:26;981:14960:100;;;;;-1:-1:-1;6450:25:26;6431:44;;;730:87:76;981:14960:100;;-1:-1:-1;;;786:20:76;;981:14960:100;;786:20:76;981:14960:100;;;;;;-1:-1:-1;;981:14960:100;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;-1:-1:-1;;981:14960:100;;;;;;-1:-1:-1;981:14960:100;2431:59:101;981:14960:100;;;;-1:-1:-1;981:14960:100;;;;;;;;;;;;;;-1:-1:-1;;981:14960:100;;;;3875:17:101;981:14960:100;;3895:30:101;981:14960:100;;;;;3895:14:101;;;:::i;:::-;981:14960:100;;;3895:30:101;;:::i;:::-;981:14960:100;;;;;;;3874:63:101;981:14960:100;3874:63:101;;:::i;:::-;981:14960:100;;;;;;;;;;;;;-1:-1:-1;;981:14960:100;;;;;;1200:42:101;-1:-1:-1;;;;;981:14960:100;;;;;;;;;;;;-1:-1:-1;;981:14960:100;;;;;;2136:32:101;981:14960:100;;;;;;;;;;;;;;;;;;-1:-1:-1;;981:14960:100;;;;2303:62:25;;:::i;:::-;-1:-1:-1;;;;;;;;;;;981:14960:100;;-1:-1:-1;;;;;;981:14960:100;;;;;;;-1:-1:-1;;;;;981:14960:100;3975:40:25;981:14960:100;;3975:40:25;981:14960:100;;;;;;;-1:-1:-1;;981:14960:100;;;;;;;;;;;:::i;:::-;3217:103:29;;:::i;:::-;7131:7:100;981:14960;7117:21;;-1:-1:-1;;;;;981:14960:100;;-1:-1:-1;;;;;981:14960:100;;;7117:21;:10;:21;7113:71;;7218:14;;:::i;:::-;7265:25;;;;:::i;:::-;7305:17;;;;:53;;;981:14960;7304:87;;;;981:14960;7300:146;;981:14960;5173:21:101;9310:48:100;5173:21:101;;;:::i;:::-;7540:17:100;7528:30;7540:17;;;:::i;:::-;981:14960;;7528:11;981:14960;;;;;;;7528:30;981:14960;;7572:29;;;;;7642:30;;;;;:::i;:::-;7702:32;;;;:::i;:::-;7752:17;;;7748:384;;7568:1615;;;;;;;9197:17;9193:102;;7568:1615;981:14960;;;;;;;;;;;;;;;;;;;;;;;9310:48;3282:1:29;1805;-1:-1:-1;;;;;;;;;;;981:14960:100;3716:283:29;3282:1;981:14960:100;;;;;;;;;;;;;9193:102;-1:-1:-1;981:14960:100;9270:13;;981:14960;;9230:18;;981:14960;;-1:-1:-1;;;;;981:14960:100;;;9230:18;7556:1;981:14960;-1:-1:-1;;;;;981:14960:100;9270:13;;:::i;:::-;9193:102;;7748:384;8045:29;7813:50;7962:65;7813:50;7998:28;7914:29;7813:50;8057:16;7813:50;8077:40;7813:50;;;:::i;:::-;7914:29;;;:::i;:::-;837:15:63;819:34;837:15;819:34;:::i;:::-;7998:28:100;;:::i;8077:40::-;8057:16;;:::i;8045:29::-;981:14960;7748:384;;;;;;;7568:1615;8185:26;;;;981:14960;;7528:11;981:14960;;;;;;;8185:26;981:14960;8250:27;:45;:27;;;;;:::i;:45::-;8325:32;;;;;:::i;:::-;8375:17;;8371:802;;7568:1615;;;;;;;;8371:802;9096:26;8436:50;;8537:53;8436:50;8637:54;8436:50;8637:29;8436:50;9125:33;8436:50;;;;:::i;:::-;8537:53;;;;;;:::i;:::-;8637:29;;;;:::i;:::-;:54;:::i;:::-;8714:33;;;;8710:194;;8371:802;8922:65;837:15:63;8958:28:100;9038:40;837:15:63;;;819:34;837:15;819:34;:::i;9038:40:100:-;9005:30;9017:17;;;:::i;9005:30::-;981:14960;9125:33;:::i;:::-;9096:26;981:14960;;7528:11;981:14960;;;;;;;9096:26;981:14960;8371:802;;;;;;;8710:194;8797:33;8771:59;8922:65;8797:33;;;9038:40;8797:33;;;:::i;:::-;8771:59;;:::i;:::-;8852:33;;-1:-1:-1;8852:33:100;;-1:-1:-1;8710:194:100;;7300:146;981:14960;;-1:-1:-1;;;7414:21:100;;981:14960;;7414:21;7304:87;7363:28;;;;7304:87;;7305:53;7341:17;;;;:::i;:::-;7326:32;;7305:53;;7113:71;981:14960;;-1:-1:-1;;;7161:12:100;;981:14960;;7161:12;981:14960;;;;;;-1:-1:-1;;981:14960:100;;;;4384:17:101;981:14960:100;;;;;;;4405:14:101;;;:::i;:::-;4384:17;981:14960:100;;;;;;;4404:36:101;981:14960:100;;;4404:36:101;;:::i;981:14960:100:-;;;;;;-1:-1:-1;;981:14960:100;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;981:14960:100;;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;981:14960:100;2307:68:101;981:14960:100;;;;;-1:-1:-1;981:14960:100;;;;;;;;;;;;;;;;;-1:-1:-1;;981:14960:100;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;-1:-1:-1;;981:14960:100;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;981:14960:100;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6491:14;981:14960;;6491:14;;:::i;981:14960::-;;;;;4994:47:101;981:14960:100;;;:::i;:::-;4994:47:101;;:::i;981:14960:100:-;;;;;;;;;;;;;;;;;;;;:::i;:::-;3217:103:29;;:::i;:::-;10932:22:100;981:14960;;;;;10928:89;;981:14960;;-1:-1:-1;;;11032:49:100;;-1:-1:-1;;;;;981:14960:100;;;11032:49;;;981:14960;;;;;;;;;;;;;;;11032:49;11042:17;;;981:14960;11032:49;;;;;;;-1:-1:-1;11032:49:100;;;981:14960;11031:50;;11027:102;;981:14960;;-1:-1:-1;;;11143:34:100;;981:14960;;;;;11143:34;981:14960;11143:34;981:14960;;11143:34;;;;;;;-1:-1:-1;11143:34:100;;;981:14960;11189:4;;;981:14960;;11143:51;11139:107;;-1:-1:-1;10932:22:100;981:14960;;-1:-1:-1;;;;;981:14960:100;;;;-1:-1:-1;;;;;;981:14960:100;;;;;;;-1:-1:-1;;;981:14960:100;;;11334:24;-1:-1:-1;;11334:24:100;3282:1:29;1805;-1:-1:-1;;;;;;;;;;;981:14960:100;3716:283:29;11139:107:100;981:14960;;-1:-1:-1;;;11217:18:100;;;11143:34;;;;;;;-1:-1:-1;11143:34:100;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;11027:102;-1:-1:-1;981:14960:100;;-1:-1:-1;;;11104:14:100;;;11032:49;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;10928:89;981:14960;;-1:-1:-1;;;10977:29:100;;;981:14960;;;;;;-1:-1:-1;;981:14960:100;;;;;;1298:40:101;-1:-1:-1;;;;;981:14960:100;;;;;;;;;;;;-1:-1:-1;;981:14960:100;;;;1703:14;;:::i;:::-;5173:21:101;;:::i;:::-;981:14960:100;;;;1750:11;981:14960;;;;;;;;;;;;;1791:1;981:14960;;;;;;;;;1750:11;981:14960;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;981:14960:100;;;;-1:-1:-1;;;;;;;;;;;981:14960:100;;;-1:-1:-1;;;;;981:14960:100;;;;;;;;;;;;;;-1:-1:-1;;981:14960:100;;;;;;3901:31:24;981:14960:100;;;;;:::i;:::-;;;-1:-1:-1;981:14960:100;-1:-1:-1;;;;;;;;;;;981:14960:100;;;-1:-1:-1;981:14960:100;;;;;;;;;;;;;;;;;3901:31:24;981:14960:100;;;;;;;;;;;;;;;;-1:-1:-1;;981:14960:100;;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;981:14960:100;5606:15:101;981:14960:100;;;5606:33:101;981:14960:100;-1:-1:-1;981:14960:100;5606:33:101;:::i;981:14960:100:-;;;;;;-1:-1:-1;;981:14960:100;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;981:14960:100;;;;-1:-1:-1;981:14960:100;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;416:25:80;;;;477:31;981:14960:100;416:25:80;;:::i;:::-;981:14960:100;;;;;;;;;477:31:80;;;981:14960:100;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;981:14960:100;;;;;;;;;;;;;;477:31:80;981:14960:100;477:31:80;;;;;;;:::i;:::-;518:79;;;981:14960:100;518:79:80;;981:14960:100;;;;;;-1:-1:-1;;981:14960:100;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;981:14960:100;;;;;;;;;;;;;;;;;-1:-1:-1;;981:14960:100;;;;;;;1109:35:101;981:14960:100;;;;;;;;;-1:-1:-1;;981:14960:100;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;3217:103:29;;:::i;:::-;3202:4:24;;:::i;:::-;-1:-1:-1;;;;;981:14960:100;;;9907:21;;9903:75;;-1:-1:-1;981:14960:100;;;9992:22;981:14960;;;;;;;;;;;;;9992:41;9988:91;;-1:-1:-1;;;;;981:14960:100;;;;;3586:22;981:14960;;;;;10145:44;;;;10089:40;;:31;981:14960;;;;;;;;;;;;;;10089:40;981:14960;;;;;;;;;;;;;;;10145:44;;;;3282:1:29;1805;-1:-1:-1;;;;;;;;;;;981:14960:100;3716:283:29;9903:75:100;981:14960;;-1:-1:-1;;;9951:16:100;;981:14960;;9951:16;981:14960;;;;;;-1:-1:-1;;981:14960:100;;;;;2666:94:101;981:14960:100;;;;;:::i;:::-;;;-1:-1:-1;981:14960:100;2666:94:101;981:14960:100;;;-1:-1:-1;981:14960:100;;;;;;;;;;;;;;;;;2666:94:101;981:14960:100;;;;;;;;;;;;;-1:-1:-1;;981:14960:100;;;;;;2816:92:101;981:14960:100;;;;;:::i;:::-;;;-1:-1:-1;981:14960:100;2816:92:101;981:14960:100;;;-1:-1:-1;981:14960:100;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3217:103:29;;:::i;:::-;11459:20:100;981:14960;;;;;11455:85;;-1:-1:-1;;;;;981:14960:100;;;;;;11550:312;;981:14960;11459:20;981:14960;;-1:-1:-1;;;;981:14960:100;-1:-1:-1;;;981:14960:100;;;11872:27;11915:20;-1:-1:-1;11915:20:100;;3282:1:29;1805;-1:-1:-1;;;;;;;;;;;981:14960:100;3716:283:29;11550:312:100;981:14960;;-1:-1:-1;;;11597:45:100;;-1:-1:-1;;;;;981:14960:100;;11597:45;;;981:14960;;;11597:45;;981:14960;;;;;;11597:45;11607:15;;;981:14960;11597:45;;;;;;;-1:-1:-1;11597:45:100;;;11550:312;11596:46;;11592:104;;981:14960;;-1:-1:-1;;;11714:30:100;;;981:14960;11714:30;981:14960;11714:30;;;;;;;;-1:-1:-1;11714:30:100;;;11550:312;11756:4;;;981:14960;;11714:47;11710:109;;-1:-1:-1;11459:20:100;981:14960;;-1:-1:-1;;;;;;981:14960:100;-1:-1:-1;;;;;981:14960:100;;;;;;;;;11550:312;;;;;;11710:109;981:14960;;-1:-1:-1;;;11788:16:100;;;11714:30;;;;;;;-1:-1:-1;11714:30:100;;;;;;:::i;:::-;;;;;;11592:104;981:14960;;-1:-1:-1;;;11669:12:100;;981:14960;;11669:12;11597:45;;;;;;;;;;;;;;:::i;:::-;;;;11455:85;981:14960;;-1:-1:-1;;;11502:27:100;;;981:14960;;;;;;-1:-1:-1;;981:14960:100;;;;;;;;;:::i;:::-;;;3217:103:29;;;:::i;:::-;-1:-1:-1;;;;;981:14960:100;;;;;6112:23;;6108:79;;6273:6;981:14960;6206:13;;;;:::i;:::-;981:14960;;;-1:-1:-1;981:14960:100;;;;6273:6;:::i;:::-;981:14960;;;;;;;;;;;;6302:10;;6296:43;;981:14960;6296:43;1805:1:29;-1:-1:-1;;;;;;;;;;;981:14960:100;;;;;;;;;;;;;;6108:79;981:14960;;-1:-1:-1;;;6158:18:100;;981:14960;;6158:18;981:14960;;;;;;-1:-1:-1;;981:14960:100;;;;;;-1:-1:-1;981:14960:100;2546:64:101;981:14960:100;;;;-1:-1:-1;981:14960:100;;;;;;;;;;;;;;-1:-1:-1;;981:14960:100;;;;2058:22:101;981:14960:100;;;-1:-1:-1;;;;;981:14960:100;;;;;;;;;;;;;;-1:-1:-1;;981:14960:100;;;;;5173:21:101;;:::i;981:14960:100:-;;;;;;-1:-1:-1;;981:14960:100;;;;;;3217:103:29;;:::i;:::-;966:10:28;-1:-1:-1;981:14960:100;;;;;;;;;;1109:35:101;;981:14960:100;;4468:23:24;4464:108;;981:14960:100;;;;10692:21;10688:71;;981:14960;;10805:22;981:14960;;;;;;;;10805:22;1805:1:29;-1:-1:-1;;;;;;;;;;;981:14960:100;;4464:108:24;981:14960:100;;;;4514:47:24;;;;;;966:10:28;981:14960:100;4514:47:24;;981:14960:100;;;;;4514:47:24;981:14960:100;;;;;;-1:-1:-1;;981:14960:100;;;;;4803:22:101;;:::i;981:14960:100:-;;;;;;-1:-1:-1;;981:14960:100;;;;;;;;;:::i;:::-;3123:14;;:::i;:::-;3154:24;;;:::i;:::-;3181:29;;;;;:::i;:::-;981:14960;;;;;;;3235:1;981:14960;;;;;;;3213:33;;;:::i;:::-;981:14960;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;981:14960:100;;;;1888:24:101;981:14960:100;;;-1:-1:-1;;;;;981:14960:100;;;;;;;;;;;;;;-1:-1:-1;;981:14960:100;;;;5767:26:24;981:14960:100;;;;;;;:::i;:::-;;-1:-1:-1;981:14960:100;-1:-1:-1;;;;;;;;;;;981:14960:100;;3202:4:24;4919:24;981:14960:100;-1:-1:-1;981:14960:100;4919:24:24;981:14960:100;3202:4:24;:::i;:::-;5767:26;:::i;981:14960:100:-;;;;;;-1:-1:-1;;981:14960:100;;;;;;;;;;;;;-1:-1:-1;;;;;981:14960:100;;;;;;;;;;;;-1:-1:-1;;981:14960:100;;;;;;;675:39:101;981:14960:100;;;;;;;;;-1:-1:-1;;981:14960:100;;;;;;;;;;;;;;;;;;;-1:-1:-1;;981:14960:100;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;-1:-1:-1;;;;;981:14960:100;;;;;;;;;;;;;;;:::i;:::-;1972:48;;981:14960;;;;;;;:::i;:::-;;;;;;;;;;;;;;2034:16;;2030:111;;981:14960;;2233:39;1057:70:92;2233:39:100;;4622:48:101;2196:77:100;2233:39;;;;2196:77;;:::i;:::-;2312:36;;4994:47:101;981:14960:100;2312:36;;;4994:47:101;;:::i;:::-;2389:37:100;;;4622:48:101;;:::i;:::-;1057:70:92;;:::i;:::-;981:14960:100;;;;;;;;;;;;;2030:111;2089:41;;;;-1:-1:-1;981:14960:100;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;4622:48:101;981:14960:100;2196:77;981:14960;1057:70:92;981:14960:100;;;:::i;:::-;;;;;2030:111;;;;;981:14960;;;;;;-1:-1:-1;;981:14960:100;;;;2357:1:25;981:14960:100;;;;;:::i;:::-;2303:62:25;;:::i;:::-;2357:1;:::i;981:14960:100:-;;;;;;-1:-1:-1;;981:14960:100;;;;;;;;;:::i;:::-;;;3217:103:29;;:::i;:::-;-1:-1:-1;;;;;981:14960:100;;4890:21;4886:75;;4975:11;;4971:73;;845:69:92;4803:22:101;;:::i;:::-;5173:21;;:::i;:::-;845:69:92;;;:::i;:::-;5180:10:100;981:14960;;;;5606:15:101;981:14960:100;;;;;5180:10;;;5606:33:101;;;:::i;:::-;5150:41:100;;5146:96;;5267:40;;;;;:::i;5146:96::-;981:14960;;-1:-1:-1;;;5214:17:100;;981:14960;;5214:17;4971:73;981:14960;;-1:-1:-1;;;5009:24:100;;981:14960;;5009:24;981:14960;;;;;;-1:-1:-1;;981:14960:100;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;981:14960:100;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;:::o;:::-;;7556:1;981:14960;;;;;;;:::o;:::-;;;;;;;;;;:::o;5256:193:101:-;-1:-1:-1;;;;;981:14960:100;-1:-1:-1;981:14960:100;;;5383:15:101;981:14960:100;;;;;5383:59:101;;5256:193;;5383:59;:::i;981:14960:100:-;;;;;;;;;;;:::o;:::-;;;;;;;;;;1167:340:76;;13510:30:100;1167:340:76;981:14960:100;1167:340:76;6893:76:26;;:::i;:::-;;;:::i;:::-;1805:1:29;-1:-1:-1;;;;;;;;;;;981:14960:100;-1:-1:-1;;;;;981:14960:100;;;;1376:73:76;;1167:340;981:14960:100;;;;:::i;:::-;13510:30;981:14960;;;13510:30;;;;;;:::i;:::-;981:14960;;;;-1:-1:-1;;;;;981:14960:100;13555:31;13551:88;;13653:20;;;;981:14960;;;;;;;;;;13653:25;13649:85;;13748:29;;;981:14960;;13748:29;;981:14960;13748:43;;-1:-1:-1;;;;;981:14960:100;;;13748:43;;13744:943;;1167:340:76;981:14960:100;;;15647:32;981:14960;14817:36;981:14960;;;14697:30;981:14960;;;;;;;;;;;;1398:1:76;981:14960:100;;-1:-1:-1;;;;;;981:14960:100;;;;;;-1:-1:-1;;;;;981:14960:100;;;;;;;;14697:30;13510;14747:13;;981:14960;;;;-1:-1:-1;;;;;;981:14960:100;-1:-1:-1;;;;;981:14960:100;;;;;;;;;14771:36;819:34:63;837:15;819:34;:::i;:::-;1805:1:29;981:14960:100;;-1:-1:-1;;;;981:14960:100;;;;;;-1:-1:-1;;;981:14960:100;;;;;;;;14771:36;981:14960;;;;;;1805:1:29;981:14960:100;;-1:-1:-1;;;;;981:14960:100;;;;;;-1:-1:-1;;;;;;981:14960:100;;;;;;;;14817:36;14864:42;981:14960;14883:23;;;981:14960;;;;;;;;;1398:1:76;981:14960:100;;;;;;;1398:1:76;981:14960:100;;14864:42;14917:38;981:14960;14934:21;;;981:14960;;;;;;;1398:1:76;981:14960:100;;;;;;;;;;;;1398:1:76;981:14960:100;;14917:38;14965:34;14980:19;;;981:14960;14965:34;981:14960;;14965:34;981:14960;-1:-1:-1;;;;;981:14960:100;;;;;;;15010:135;;1167:340:76;-1:-1:-1;15158:36:100;;;981:14960;-1:-1:-1;;;;;981:14960:100;;;;15154:157;;1167:340:76;-1:-1:-1;15324:35:100;;;981:14960;-1:-1:-1;;;;;981:14960:100;;;;15320:153;;1167:340:76;-1:-1:-1;15486:34:100;;;981:14960;-1:-1:-1;;;;;981:14960:100;;;;15482:152;;1167:340:76;-1:-1:-1;15647:32:100;981:14960;-1:-1:-1;;;;;981:14960:100;;;;;;;15643:145;;1167:340:76;:::o;15643:145:100:-;15709:68;;;:::i;:::-;;1167:340:76:o;15482:152:100:-;15550:73;;;:::i;:::-;;15482:152;;;15320:153;15389:73;;;:::i;:::-;;15320:153;;;15154:157;15224:76;;;:::i;:::-;;15154:157;;;15010:135;15073:61;;;:::i;:::-;;15010:135;;;13744:943;13811:36;;;981:14960;13811:50;;-1:-1:-1;;;;;981:14960:100;;;13811:50;;13807:405;;13744:943;14230:34;;;981:14960;14230:48;;-1:-1:-1;;;;;981:14960:100;;;14230:48;13744:943;14226:451;14302:21;;;981:14960;;14302:21;;14351:19;;;981:14960;14351:24;:74;;;14298:365;14347:150;;14298:365;;981:14960;15647:32;14298:365;14817:36;981:14960;;14298:365;;14226:451;;;;;;;13744:943;;14347:150;981:14960;-1:-1:-1;;;14460:14:100;;;;;14351:74;-1:-1:-1;14379:32:100;;;981:14960;14379:46;;-1:-1:-1;;;;;981:14960:100;;;14379:46;;14351:74;;14298:365;14525:19;;;981:14960;14525:24;;;:74;;;14298:365;14521:142;;14298:365;;981:14960;15647:32;14298:365;14817:36;981:14960;;14298:365;;;14525:74;-1:-1:-1;14553:32:100;;;981:14960;14553:46;;-1:-1:-1;;;;;981:14960:100;;;14553:46;;;14525:74;;13807:405;13885:23;;;981:14960;;13885:23;;13936:35;;;981:14960;13936:49;;-1:-1:-1;;;;;981:14960:100;;;13936:49;13807:405;13932:125;981:14960;-1:-1:-1;;;14020:14:100;;;;;13881:317;14085:35;;;981:14960;14085:49;;-1:-1:-1;;;;;981:14960:100;;;14085:49;14081:117;13807:405;14081:117;981:14960;-1:-1:-1;;;14165:14:100;;;;;13649:85;981:14960;;-1:-1:-1;;;13701:22:100;;;;;13551:88;981:14960;;-1:-1:-1;;;13609:19:100;;;;;1376:73:76;6961:1:26;6893:76;;;:::i;:::-;;;:::i;6961:1::-;1376:73:76;;;2492:191:100;-1:-1:-1;;;;;981:14960:100;-1:-1:-1;981:14960:100;;;5606:15:101;981:14960:100;;;;;5606:33:101;;;:::i;:::-;5173:21;;:::i;:::-;4803:22;;:::i;:::-;981:14960:100;1884:1:92;981:14960:100;;;;;;;1884:1:92;981:14960:100;;;;;;;8188:25:58;;;:::i;981:14960:100:-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;:::i;3612:132:101:-;819:34:63;837:15;819:34;:::i;:::-;3683:54:101;3703:17;981:14960:100;3684:36:101;981:14960:100;;;;;;;3684:36:101;;:::i;:::-;981:14960:100;;;3683:54:101;;:::i;:::-;981:14960:100;3612:132:101;:::o;3313:244::-;3418:17;981:14960:100;;;;;;;;;;;;;;3406:29:101;3402:85;;3503:47;3504:29;;;;:::i;3402:85::-;981:14960:100;;-1:-1:-1;;;3458:18:101;;;;;3217:103:29;;;;:::i;:::-;981:14960:100;;-1:-1:-1;;;;;981:14960:100;;;6521:23;;6517:79;;6650:11;;6646:70;;981:14960;6742:10;;;;;;-1:-1:-1;981:14960:100;;6887:49;;981:14960;;;;6864:6;;981:14960;;6821:18;;981:14960;;-1:-1:-1;;;;;981:14960:100;;;6821:18;6864:6;:::i;:::-;6887:49;981:14960;;6898:10;;;;6887:49;;;:::i;:::-;;;;3282:1:29;;1805;-1:-1:-1;;;;;;;;;;;981:14960:100;3716:283:29;6754:3:100;6790:9;6773:27;981:14960;6790:9;6783:17;6790:9;;;;;:::i;:::-;981:14960;6783:17;:::i;6773:27::-;6754:3;981:14960;6731:9;;6646:70;981:14960;;-1:-1:-1;;;6684:21:100;;;;;981:14960;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;981:14960:100;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;-1:-1:-1;981:14960:100;;;;:::o;:::-;;;:::o;3405:215:25:-;-1:-1:-1;;;;;981:14960:100;;;;3489:22:25;;3485:91;;-1:-1:-1;;;;;;;;;;;981:14960:100;;-1:-1:-1;;;;;;981:14960:100;;;;;;;;3975:40:25;-1:-1:-1;;3975:40:25;3405:215::o;3485:91::-;981:14960:100;;-1:-1:-1;;;3534:31:25;;3509:1;3534:31;;;981:14960:100;;;3534:31:25;2731:227:100;;2871:34;2731:227;981:14960;-1:-1:-1;981:14960:100;2871:18;981:14960;;;-1:-1:-1;981:14960:100;;;;;;;;;;;;;;;;;2871:34;981:14960;;-1:-1:-1;981:14960:100;2907:11;981:14960;;;-1:-1:-1;981:14960:100;;2927:16;981:14960;;;-1:-1:-1;981:14960:100;;;1884:1:92;981:14960:100;;;;;;;1884:1:92;981:14960:100;;;;;;;8188:25:58;;;:::i;3326:384:29:-;-1:-1:-1;;;;;;;;;;;1847:1:29;981:14960:100;;3526:20:29;3522:88;;1847:1;981:14960:100;;3326:384:29:o;3522:88::-;981:14960:100;;-1:-1:-1;;;3569:30:29;;;;;11948:968:100;12135:10;981:14960;;;;5606:15:101;981:14960:100;;;;;;11948:968;;;819:34:63;837:15;819:34;:::i;:::-;12135:10:100;981:14960;;;;5606:15:101;981:14960:100;;;;;5606:33:101;;;:::i;:::-;981:14960:100;;;;;;;;;12119:93;12835:74;12119:93;;;12660:30;12119:93;;:::i;:::-;837:15:63;;12222:67:100;819:34:63;837:15;819:34;:::i;:::-;12259:29:100;4803:22:101;;;:::i;12222:67:100:-;837:15:63;;12299:68:100;819:34:63;837:15;819:34;:::i;:::-;12335:31:100;5173:21:101;;;:::i;12299:68:100:-;12394:14;;12769:34;12394:14;12769:25;12394:18;:14;;:::i;:::-;:18;:::i;:::-;12726:33;12445:18;;981:14960;;7528:11;981:14960;;;;;;;12445:18;981:14960;12502:23;;981:14960;;12502:16;981:14960;;;;;;;12502:23;981:14960;390:70:92;;;;;:::i;:::-;12660:30:100;;;;;;:::i;:::-;12639:18;;981:14960;;7528:11;981:14960;;;;;;;12639:18;981:14960;12726:33;:::i;:::-;12700:23;;981:14960;;12502:16;981:14960;;;;;;;12700:23;981:14960;;;12769:18;981:14960;;;;;;;12769:25;981:14960;;;;;;;;;;;;;;;;12769:34;:50;981:14960;;;12769:50;:::i;:::-;981:14960;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;981:14960:100;;;;12135:10;;981:14960;;12835:74;11948:968::o;14291:213:59:-;981:14960:100;14369:24:59;;;;14365:103;;981:14960:100;14291:213:59;:::o;14365:103::-;981:14960:100;;;;14416:41:59;;;;;;14447:2;14416:41;;;981:14960:100;;;;;14416:41:59;981:14960:100;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;:::o;7558:604:91:-;;981:14960:100;;7686:17:91;7682:83;;981:14960:100;7789:27:91;981:14960:100;7789:27:91;981:14960:100;;7789:27:91;;;;;;:::i;:::-;7860:14;;;:::i;:::-;981:14960:100;;;;;;;;;;;;;;;;7888:22:91;;;7884:77;;7975:21;-1:-1:-1;7975:84:91;;;;7558:604;7971:139;;;;8127:28;;;;:::i;7971:139::-;7789:27;8082:17;;;981:14960:100;8075:24:91;:::o;7975:84::-;981:14960:100;;;8009:16:91;4622:13:101;981:14960:100;8009:16:91;:::i;:::-;981:14960:100;;;8001:24:91;:57;;;;;7975:84;;;;;;;8001:57;8029:29;8038:8;;;8029:18;8038:8;8029:23;8038:8;;:::i;:::-;8029:18;:::i;:23::-;981:14960:100;;;;8029:29:91;;8001:57;;;;7884:77;7933:17;;;7789:27;7933:17;;;981:14960:100;7926:24:91;:::o;7682:83::-;7726:28;;;;:::i;7558:604::-;;981:14960:100;;7686:17:91;7682:83;;981:14960:100;7789:27:91;981:14960:100;7789:27:91;981:14960:100;;7789:27:91;;;;;;:::i;:::-;7860:14;;;:::i;:::-;981:14960:100;;;;;;;;;;;;;;;;7888:22:91;;;7884:77;;7975:21;-1:-1:-1;7975:84:91;;;;7558:604;7971:139;;;;8127:28;;;;:::i;7975:84::-;981:14960:100;;;8009:16:91;4994:12:101;981:14960:100;8009:16:91;:::i;:::-;981:14960:100;;;8001:24:91;:57;;;;;7975:84;;;;;;;8001:57;8029:29;8038:8;;;8029:18;8038:8;8029:23;8038:8;;:::i;:::-;8029:18;:::i;:29::-;;8001:57;;;;7682:83;7726:28;;;;:::i;7558:604::-;;981:14960:100;;7686:17:91;7682:83;;981:14960:100;7789:27:91;981:14960:100;7789:27:91;981:14960:100;;7789:27:91;;;;;;:::i;:::-;7860:14;;;;;:::i;:::-;981:14960:100;;;;;;;;;;;;;;;;7888:22:91;;;7884:77;;7975:21;-1:-1:-1;7975:84:91;;;;7558:604;7971:139;;;;8127:28;;;;:::i;7971:139::-;8082:17;;7789:27;8082:17;981:14960:100;8075:24:91;:::o;7975:84::-;981:14960:100;;;8009:16:91;981:14960:100;;8009:16:91;:::i;:::-;981:14960:100;;;8001:24:91;:57;;;;;7975:84;;;;;;;8001:57;8029:29;8038:8;;;8029:18;8038:8;8029:23;8038:8;;:::i;:::-;8029:18;;:::i;:29::-;;8001:57;;;;7884:77;7933:17;;;;;7789:27;7933:17;981:14960:100;7926:24:91;:::o;7682:83::-;7726:28;;;;:::i;4148:103:24:-;966:10:28;-1:-1:-1;981:14960:100;;;;;;;;;675:39:101;;981:14960:100;;3901:31:24;981:14960:100;;4468:23:24;4464:108;;4148:103;:::o;:::-;966:10:28;-1:-1:-1;981:14960:100;;;;;;;;;966:38:101;;981:14960:100;;3901:31:24;981:14960:100;4148:103:24;966:10:28;-1:-1:-1;981:14960:100;;;;;;;;;821:37:101;;981:14960:100;;3901:31:24;981:14960:100;4148:103:24;-1:-1:-1;981:14960:100;;;-1:-1:-1;;;;;;;;;;;981:14960:100;;;;;;;;966:10:28;981:14960:100;;;;;;;;;3901:31:24;981:14960:100;7270:387:24;-1:-1:-1;;;;;981:14960:100;;1398:1:76;981:14960:100;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2887:71:24;981:14960:100;;;;1398:1:76;981:14960:100;;;;;;;;;;;-1:-1:-1;;;;;981:14960:100;;;;;;;;;;-1:-1:-1;;981:14960:100;7509:4:24;981:14960:100;;;966:10:28;;-1:-1:-1;;;;;981:14960:100;-1:-1:-1;7532:40:24;-1:-1:-1;;7532:40:24;7509:4;7586:11;:::o;7432:219::-;7628:12;;1398:1:76;7628:12:24;:::o;7270:387::-;-1:-1:-1;;;;;981:14960:100;;-1:-1:-1;981:14960:100;;;;;;;;;675:39:101;;-1:-1:-1;;;;;;;;;;;2887:71:24;981:14960:100;;3901:31:24;981:14960:100;;;;-1:-1:-1;981:14960:100;;;;;;;;;;;-1:-1:-1;;;;;981:14960:100;;;;;;;;;;-1:-1:-1;;981:14960:100;7509:4:24;981:14960:100;;;966:10:28;;-1:-1:-1;;;;;981:14960:100;;7532:40:24;-1:-1:-1;;7532:40:24;7509:4;7586:11;:::o;7432:219::-;7628:12;;;-1:-1:-1;7628:12:24;:::o;7270:387::-;-1:-1:-1;;;;;981:14960:100;;-1:-1:-1;981:14960:100;;;;;;;;;821:37:101;;-1:-1:-1;;;;;;;;;;;2887:71:24;981:14960:100;;3901:31:24;981:14960:100;7270:387:24;-1:-1:-1;;;;;981:14960:100;;-1:-1:-1;981:14960:100;;;;;;;;;966:38:101;;-1:-1:-1;;;;;;;;;;;2887:71:24;981:14960:100;;3901:31:24;981:14960:100;7270:387:24;-1:-1:-1;;;;;981:14960:100;;-1:-1:-1;981:14960:100;;;;;;;;;1109:35:101;;-1:-1:-1;;;;;;;;;;;2887:71:24;981:14960:100;;3901:31:24;981:14960:100;7270:387:24;-1:-1:-1;981:14960:100;;;-1:-1:-1;;;;;;;;;;;981:14960:100;;;;;;;;-1:-1:-1;;;;;981:14960:100;;;;;;;;;;;;3901:31:24;981:14960:100;7892:388:24;-1:-1:-1;981:14960:100;;;-1:-1:-1;;;;;;;;;;;981:14960:100;;;;;;;;-1:-1:-1;;;;;981:14960:100;;;;;;;;;;;;;;;;-1:-1:-1;981:14960:100;;;;;;;;;;;-1:-1:-1;;;;;981:14960:100;;;;;;;;;;-1:-1:-1;;981:14960:100;;;966:10:28;;-1:-1:-1;;;;;981:14960:100;;8155:40:24;-1:-1:-1;;8155:40:24;981:14960:100;8209:11:24;:::o;1702:188:46:-;981:14960:100;;-1:-1:-1;;;1829:53:46;;;;-1:-1:-1;;;;;981:14960:100;;;1829:53:46;;;981:14960:100;;;;;;;;;;;;;;;;;1829:53:46;;;981:14960:100;;;;;;;-1:-1:-1;;;;;981:14960:100;;;;;1829:53:46;981:14960:100;;;1829:53:46;:::i;981:14960:100:-;7178:12:91;981:14960:100;;;;;;7178:12:91;-1:-1:-1;981:14960:100;-1:-1:-1;;;;;;;;;;;981:14960:100;;-1:-1:-1;981:14960:100;:::o;:::-;7178:12:91;981:14960:100;;;;;;7178:12:91;-1:-1:-1;981:14960:100;-1:-1:-1;;;;;;;;;;;981:14960:100;;-1:-1:-1;981:14960:100;:::o;:::-;;;;;;;;-1:-1:-1;981:14960:100;;-1:-1:-1;981:14960:100;;;-1:-1:-1;981:14960:100;:::o;:::-;6360:12:91;981:14960:100;-1:-1:-1;;;981:14960:100;;;;;;;;;6360:12:91;981:14960:100;;;;;;6360:12:91;-1:-1:-1;981:14960:100;-1:-1:-1;;;;;;;;;;;981:14960:100;;:::o;:::-;6360:12:91;981:14960:100;-1:-1:-1;;;981:14960:100;;;;;;;;;6360:12:91;981:14960:100;;;;;;6360:12:91;-1:-1:-1;981:14960:100;-1:-1:-1;;;;;;;;;;;981:14960:100;;:::o;:::-;;;;;-1:-1:-1;;;981:14960:100;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;6246:584:91;;;;6360:12;981:14960:100;;;6360:24:91;;6356:75;;6246:584;6474:30;;;:::i;:::-;981:14960:100;;;;;;6578:12:91;;;:::i;:::-;6604:24;;;;6246:584;-1:-1:-1;6600:188:91;;;-1:-1:-1;;;981:14960:100;;;;;;;;;-1:-1:-1;981:14960:100;;;-1:-1:-1;981:14960:100;;;;;;6798:25:91;981:14960:100;6246:584:91:o;6600:188::-;8167:38:61;;-1:-1:-1;;;;;981:14960:100;;-1:-1:-1;8167:38:61;:::i;:::-;6753:24:91;;;;;:::i;:::-;6798:25;6246:584;:::o;6604:24::-;981:14960:100;;;;;;6614:14:91;;-1:-1:-1;6604:24:91;;;6356:75;-1:-1:-1;;;981:14960:100;;;;;;;;;;;;;;;;-1:-1:-1;981:14960:100;;;;-1:-1:-1;;;;;;;;;;;981:14960:100;;6356:75:91;;;6246:584;;;;6360:12;981:14960:100;;;6360:24:91;;6356:75;;6246:584;6474:30;;;:::i;:::-;981:14960:100;;;;;;6578:12:91;;;:::i;:::-;6604:24;;;;6246:584;-1:-1:-1;6600:188:91;;;-1:-1:-1;;;981:14960:100;;;;;;;;;-1:-1:-1;981:14960:100;;;-1:-1:-1;981:14960:100;;;;;;6798:25:91;981:14960:100;6246:584:91:o;6600:188::-;8167:38:61;;-1:-1:-1;;;;;981:14960:100;;-1:-1:-1;8167:38:61;:::i;:::-;6753:24:91;;;;;:::i;6604:::-;981:14960:100;;;;;;6614:14:91;;-1:-1:-1;6604:24:91;;;6356:75;-1:-1:-1;;;981:14960:100;;;;;;;;;;;;;;;;-1:-1:-1;981:14960:100;;;;-1:-1:-1;;;;;;;;;;;981:14960:100;;6356:75:91;;;6246:584;;;;;6360:12;;;981:14960:100;;;6360:24:91;;6356:75;;6246:584;6474:30;;;;;:::i;:::-;981:14960:100;;;;;;6578:12:91;;;;:::i;:::-;6604:24;;;;6246:584;-1:-1:-1;6600:188:91;;;-1:-1:-1;;;;;981:14960:100;;;;;;;6644:21:91;;;:29;:21;;:::i;6600:188::-;6753:24;;981:14960:100;;8167:38:61;;-1:-1:-1;;;;;981:14960:100;;;;;8167:38:61;:::i;:::-;6753:24:91;;;:::i;6604:::-;981:14960:100;;;;;;6614:14:91;;-1:-1:-1;6604:24:91;;;6356:75;-1:-1:-1;;;981:14960:100;;;;;;6360:12:91;981:14960:100;;;;;;;:::i;:::-;;;;;;;;;;;;;;6356:75:91;;;981:14960:100;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;:::o;2658:162:25:-;-1:-1:-1;;;;;;;;;;;981:14960:100;-1:-1:-1;;;;;981:14960:100;966:10:28;2717:23:25;2713:101;;2658:162::o;2713:101::-;981:14960:100;;-1:-1:-1;;;2763:40:25;;966:10:28;2763:40:25;;;981:14960:100;;;2763:40:25;2557:104:58;;2641:5;;;;;;:13;2557:104;:::o;2641:13::-;;;2557:104;:::o;981:14960:100:-;;;;;;;:::o;3803:4116:58:-;;;981:14960:100;;;;-1:-1:-1;;3803:4116:58;;4383:131;;;;;;;;;;;;4595:10;;4591:368;;5065:20;;;;5061:88;;5435:300;;;981:14960:100;-1:-1:-1;981:14960:100;5954:31:58;;5999:371;;;6813:1;981:14960:100;;6794:1:58;981:14960:100;6793:21:58;981:14960:100;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5999:371:58;;;;-1:-1:-1;5999:371:58;;;5435:300;;;;;;981:14960:100;5435:300:58;;5999:371;6436:21;981:14960:100;3803:4116:58;:::o;5061:88::-;981:14960:100;;-1:-1:-1;;;5112:22:58;;;;;4591:368;4925:19;;;;;;;:::i;1303:160:46:-;981:14960:100;;-1:-1:-1;;;1412:43:46;;;;-1:-1:-1;;;;;981:14960:100;;;1412:43:46;;;981:14960:100;;;;;;;;;1412:43:46;;;981:14960:100;;;;-1:-1:-1;;;;;981:14960:100;;;;;;;;1412:43:46;981:14960:100;;;1412:43:46;:::i;12922:460:100:-;;13024:14;;:::i;:::-;13015:23;;;13011:75;;-1:-1:-1;981:14960:100;;;13100:20;981:14960;;;;;;;;13128:10;981:14960;;;;;;;;;;13096:93;;13208:32;13128:10;13208:32;;:::i;:::-;13255:11;;;13251:68;;-1:-1:-1;981:14960:100;;;13100:20;981:14960;;;;;;;;13128:10;981:14960;;;;;;;;;-1:-1:-1;;981:14960:100;13371:4;981:14960;;;12922:460::o;13251:68::-;981:14960;;-1:-1:-1;;;13289:19:100;;;;;13096:93;981:14960;;-1:-1:-1;;;13162:16:100;;;;;13011:75;981:14960;;-1:-1:-1;;;13061:14:100;;;;;10580:184:91;5173:12:101;981:14960:100;10303:8:61;;;:63;-1:-1:-1;10303:63:61;-1:-1:-1;;;;;981:14960:100;;10726:7:91;981:14960:100;;10736:12:91;981:14960:100;;;;;;10736:12:91;-1:-1:-1;981:14960:100;-1:-1:-1;;;;;;;;;;;981:14960:100;;10580:184:91;:::o;10726:31::-;;-1:-1:-1;10580:184:91;:::o;10303:63:61:-;981:14960:100;;;;;;;;5173:12:101;-1:-1:-1;14249:109:61;;;981:14960:100;;;10303:63:61;;10580:184:91;4803:13:101;981:14960:100;10303:8:61;;;:63;-1:-1:-1;10303:63:61;-1:-1:-1;;;;;981:14960:100;;10726:7:91;981:14960:100;;10736:12:91;981:14960:100;;;;;;10736:12:91;-1:-1:-1;981:14960:100;-1:-1:-1;;;;;;;;;;;981:14960:100;;10580:184:91;:::o;10303:63:61:-;981:14960:100;;;;;;;;4803:13:101;-1:-1:-1;14249:109:61;;;981:14960:100;;;10303:63:61;;10580:184:91;981:14960:100;;10303:8:61;;;:63;-1:-1:-1;10303:63:61;-1:-1:-1;;;;;981:14960:100;;10726:7:91;981:14960:100;;10736:12:91;:17;:12;;:17;:::i;:::-;981:14960:100;;;;;;10580:184:91;:::o;10303:63:61:-;981:14960:100;;;;;;;;;;14249:109:61;-1:-1:-1;14249:109:61;;-1:-1:-1;14249:109:61;;;981:14960:100;;;10303:63:61;;1662:280:92;;;1884:1;981:14960:100;;;;;;;1884:1:92;981:14960:100;;;;;;;8188:25:58;;;:::i;6999:207:91:-;4622:13:101;981:14960:100;9594:15:61;-1:-1:-1;9619:18:61;9652:7;9658:1;9652:7;;9648:234;;6999:207:91;9906:53:61;;;;:::i;:::-;9977:8;;;:63;-1:-1:-1;9977:63:61;-1:-1:-1;;;;;981:14960:100;;7168:7:91;981:14960:100;;7178:17:91;981:14960:100;7178:17:91;;:::i;9977:63:61:-;9992:41;10025:7;9992:48;10025:7;;:::i;:::-;4622:13:101;14249:109:61;;-1:-1:-1;;;;;;;;;;;14249:109:61;14099:265;;9992:41;981:14960:100;;;;;9992:48:61;9977:63;;9648:234;9695:14;;;;;:::i;:::-;981:14960:100;;;;;;;9906:53:61;14249:109;4622:13:101;-1:-1:-1;14249:109:61;981:14960:100;14249:109:61;;-1:-1:-1;;;;;;;;;;;14249:109:61;981:14960:100;;;;;9727:48:61;9723:149;981:14960:100;;;9795:10:61;9723:149;9648:234;;9723:149;9850:7;;;;;;:::i;:::-;9723:149;9648:234;;6999:207:91;4994:12:101;981:14960:100;9594:15:61;-1:-1:-1;9619:18:61;9652:7;9658:1;9652:7;;9648:234;;6999:207:91;9906:53:61;;;;:::i;:::-;9977:8;;;:63;-1:-1:-1;9977:63:61;-1:-1:-1;;;;;981:14960:100;;7168:7:91;981:14960:100;;7178:17:91;981:14960:100;7178:17:91;;:::i;9977:63:61:-;9992:41;10025:7;9992:48;10025:7;;:::i;:::-;4994:12:101;14249:109:61;;-1:-1:-1;;;;;;;;;;;14249:109:61;14099:265;;9992:48;9977:63;;9648:234;9695:14;;;;;:::i;:::-;981:14960:100;;;;;;;9906:53:61;14249:109;4994:12:101;-1:-1:-1;14249:109:61;981:14960:100;14249:109:61;;-1:-1:-1;;;;;;;;;;;14249:109:61;981:14960:100;;;;;9727:48:61;9723:149;981:14960:100;;;9795:10:61;9723:149;9648:234;;9723:149;9850:7;;;;;;:::i;:::-;9723:149;9648:234;;6999:207:91;;981:14960:100;;9594:15:61;-1:-1:-1;9619:18:61;9652:7;9658:1;9652:7;;9648:234;;6999:207:91;9906:53:61;;;;;:::i;:::-;9977:8;;;:63;-1:-1:-1;9977:63:61;;-1:-1:-1;;;;;981:14960:100;;7168:7:91;981:14960:100;;;7178:12:91;;:17;:12;;:17;:::i;9977:63:61:-;9992:41;10025:7;9992:48;10025:7;;:::i;:::-;9992:41;14249:109;;;;;;14099:265;;9992:48;9977:63;;;9648:234;9695:14;;;;;:::i;:::-;981:14960:100;;;;;;;9906:53:61;14249:109;;-1:-1:-1;14249:109:61;981:14960:100;14249:109:61;;;-1:-1:-1;14249:109:61;;981:14960:100;;;;;9727:48:61;9723:149;981:14960:100;;;9795:10:61;9723:149;9648:234;;9723:149;9850:7;;;;;;:::i;:::-;9723:149;9648:234;;981:14960:100;;;;;;;:::i;:::-;-1:-1:-1;981:14960:100;;;;;;;:::o;11486:272:91:-;981:14960:100;;:::i;:::-;;;;:::i;:::-;;4622:13:101;981:14960:100;;;;;;;;4622:13:101;-1:-1:-1;981:14960:100;-1:-1:-1;;;;;;;;;;;981:14960:100;;:::i;:::-;;;;;;;;;;;;11731:17:91;;981:14960:100;;11718:12:91;981:14960:100;;;;;;11718:12:91;-1:-1:-1;981:14960:100;-1:-1:-1;;;;;;;;;;;981:14960:100;;;;;;;;:::i;:::-;;;;11672:79:91;;981:14960:100;11486:272:91;:::o;:::-;981:14960:100;;:::i;:::-;;;;:::i;:::-;;4994:12:101;981:14960:100;;;;;;;;4994:12:101;-1:-1:-1;981:14960:100;-1:-1:-1;;;;;;;;;;;981:14960:100;;:::i;:::-;;;;;;;;;;;;11731:17:91;;981:14960:100;;11718:12:91;981:14960:100;;;;;;11718:12:91;-1:-1:-1;981:14960:100;-1:-1:-1;;;;;;;;;;;981:14960:100;;;;;;;;:::i;11486:272:91:-;;981:14960:100;11308:22:61;11718:31:91;11486:272;981:14960:100;;:::i;:::-;;;;:::i;:::-;;11308:22:61;;:::i;:::-;981:14960:100;;:::i;:::-;;11718:12:91;981:14960:100;;;;;11731:17:91;981:14960:100;;;;;11731:17:91;;981:14960:100;;11718:12:91;;:31;:::i;:::-;981:14960:100;;;;;;;;;:::i;:::-;;;;;;11731:17:91;11672:79;;981:14960:100;11486:272:91;:::o;4059:629:46:-;2847:1:47;4059:629:46;3510:55:47;4059:629:46;981:14960:100;;;;;;3462:31:47;;;;;;;;;;;;:::i;:::-;3510:55;;;:::i;:::-;981:14960:100;;4551:22:46;;;;:57;;;;4059:629;4547:135;;;;4059:629;:::o;4547:135::-;981:14960:100;;;;4631:40:46;;;;;;;;;981:14960:100;4631:40:46;4551:57;4578:30;;;3462:31:47;4578:30:46;;;;;;;;:::i;:::-;4577:31;4551:57;;;;1258:280:92;;;981:14960:100;;;;;;;;;;;;;;;;8188:25:58;;;;;:::i;:::-;8257;;;;;;8223:101;;1258:280:92;:::o;8223:101:58:-;981:14960:100;;;;;;;;1258:280:92;:::o;981:14960:100:-;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::o;10552:388:61:-;5173:12:101;981:14960:100;10728:8:61;;;10752:20;10690:17;10752:20;10690:17;10752:20;10690:17;10752:20;:::o;10724:210::-;981:14960:100;;;;;;;;14249:109:61;981:14960:100;14249:109:61;5173:12:101;10690:17:61;14249:109;;981:14960:100;:::i;:::-;;;;;;;14249:109:61;981:14960:100;;;;;10911:11:61;;981:14960:100;;10886:37:61;10870:1;10886:37;;;:::o;10552:388::-;4803:13:101;981:14960:100;10728:8:61;;;10752:20;10690:17;10752:20;10690:17;10752:20;10690:17;10752:20;:::o;10724:210::-;981:14960:100;;;;;;;;14249:109:61;981:14960:100;14249:109:61;4803:13:101;10690:17:61;14249:109;;981:14960:100;:::i;10552:388:61:-;981:14960:100;;10728:8:61;;;10752:20;;10690:17;10752:20;10690:17;10752:20;10690:17;10752:20;:::o;10724:210::-;981:14960:100;;;;;;;;;;;14249:109:61;10690:17;14249:109;;10690:17;14249:109;;;981:14960:100;:::i;7084:141:26:-;981:14960:100;-1:-1:-1;;;;;;;;;;;981:14960:100;;;;7150:18:26;7146:73;;7084:141::o;7146:73::-;981:14960:100;;-1:-1:-1;;;7191:17:26;;;;;981:14960:100;5173:12:101;981:14960:100;;-1:-1:-1;;;981:14960:100;;;;;;;;;5173:12:101;981:14960:100;;;;;;5173:12:101;-1:-1:-1;981:14960:100;;;;;;;;;;-1:-1:-1;;981:14960:100;;;;;;;-1:-1:-1;;;;;;;;;;;981:14960:100;;;;:::o;:::-;4803:13:101;981:14960:100;;-1:-1:-1;;;981:14960:100;;;;;;;;;4803:13:101;981:14960:100;;;;;;4803:13:101;-1:-1:-1;981:14960:100;;;;;;;;;;-1:-1:-1;;981:14960:100;;;;;;;-1:-1:-1;;;;;;;;;;;981:14960:100;;;;:::o;:::-;;;-1:-1:-1;;;981:14960:100;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;981:14960:100;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;11513:870:61;5173:12:101;981:14960:100;11513:870:61;;;981:14960:100;11672:7:61;;;;981:14960:100;11775:28:61;11795:7;;;:::i;11775:28::-;981:14960:100;:::i;:::-;;;;;;;;;;-1:-1:-1;;11873:91:61;;981:14960:100;12233:11:61;981:14960:100;;;12027:16:61;981:14960:100;;;;;;;12027:16:61;;;;12083:7;12063:28;12083:7;12063:43;12083:7;;:::i;12063:28::-;981:14960:100;;;;;;;;;;;;;;;;;12063:43:61;12233:11;981:14960:100;-1:-1:-1;;;;;981:14960:100;;;12023:189:61;981:14960:100;;12145:52:61;981:14960:100;;12155:41:61;981:14960:100;;:::i;:::-;;;;;;;;12155:41:61;-1:-1:-1;;;;;981:14960:100;;12155:41:61;;;981:14960:100;12145:52:61;:::i;:::-;12023:189;;11873:91;981:14960:100;;-1:-1:-1;;;11919:30:61;;;;;11668:709;12283:52;981:14960:100;;12293:41:61;981:14960:100;;:::i;12293:41:61:-;-1:-1:-1;;;;;981:14960:100;;12293:41:61;;;981:14960:100;12145:52:61;:::i;12283:::-;11678:1;12349:17;;:::o;11513:870::-;4803:13:101;981:14960:100;11513:870:61;;;981:14960:100;11672:7:61;;;;981:14960:100;11775:28:61;11795:7;;;:::i;981:14960:100:-;;;;;;;;;;-1:-1:-1;;11873:91:61;;981:14960:100;12233:11:61;981:14960:100;;;12027:16:61;981:14960:100;;;;;;;12027:16:61;;;;12083:7;12063:28;12083:7;12063:43;12083:7;;:::i;12023:189::-;981:14960:100;;12145:52:61;981:14960:100;;12155:41:61;981:14960:100;;:::i;12155:41:61:-;-1:-1:-1;;;;;981:14960:100;;12155:41:61;;;981:14960:100;12145:52:61;:::i;11668:709::-;12283:52;981:14960:100;;12293:41:61;981:14960:100;;:::i;12293:41:61:-;-1:-1:-1;;;;;981:14960:100;;12293:41:61;;;981:14960:100;12145:52:61;:::i;11513:870::-;981:14960:100;;11513:870:61;;;981:14960:100;11513:870:61;11672:7;;;;981:14960:100;11775:28:61;11795:7;;;:::i;981:14960:100:-;;;;;;;;;;;;;;;;11877:15:61;-1:-1:-1;11873:91:61;;981:14960:100;;12233:11:61;981:14960:100;;;12027:16:61;981:14960:100;;;;;;;12027:16:61;;;;12083:7;12063:43;12083:7;;12063:28;12083:7;;:::i;:::-;12063:28;14249:109;;;;;;14099:265;;12023:189;981:14960:100;;;12145:52:61;981:14960:100;12155:41:61;981:14960:100;;:::i;:::-;;;;;;;;12155:41:61;-1:-1:-1;;;;;981:14960:100;;12155:41:61;;;981:14960:100;12145:52:61;:::i;11668:709::-;12283:52;981:14960:100;;12293:41:61;981:14960:100;;:::i;12293:41:61:-;-1:-1:-1;;;;;981:14960:100;;12293:41:61;;;981:14960:100;12145:52:61;:::i;8587:1642:58:-;8658:6;;8654:45;;9401:7;10201:10;10142:26;10093;10044;9995;9946;9897;9848;981:14960:100;10189:23:58;9401:7;8663:1;981:14960:100;;;;10826:16:58;10822:99;;8587:1642;981:14960:100;;;;10938:15:58;10934:96;;8587:1642;981:14960:100;;;;11047:15:58;11043:96;;8587:1642;981:14960:100;;;;11156:15:58;11152:96;;8587:1642;981:14960:100;;;;11265:14:58;11261:93;;8587:1642;981:14960:100;;;;11371:14:58;11367:93;;8587:1642;981:14960:100;;;;11477:14:58;11473:93;;8587:1642;981:14960:100;;;11579:64:58;;8587:1642;981:14960:100;;;9858:10:58;;;;:::i;:::-;981:14960:100;;;;;9848:26:58;9907:10;;;;:::i;9897:26::-;9956:10;;;;:::i;9946:26::-;10005:10;;;;:::i;9995:26::-;10054:10;;;;:::i;10044:26::-;10103:10;;;;:::i;10093:26::-;10152:10;;;;:::i;10142:26::-;10201:10;;;:::i;:::-;10189:23;;:::i;11579:64::-;981:14960:100;;11579:64:58;;11473:93;981:14960:100;11511:11:58;;981:14960:100;;11473:93:58;;;;11367;981:14960:100;11405:11:58;;981:14960:100;;11367:93:58;;;;11261;981:14960:100;11299:11:58;;981:14960:100;;11261:93:58;;;;11152:96;981:14960:100;11191:12:58;;981:14960:100;;11152:96:58;;;;11043;981:14960:100;11082:12:58;;981:14960:100;;11043:96:58;;;;10934;981:14960:100;10973:12:58;;981:14960:100;;10934:96:58;;;;10822:99;10862:13;;;981:14960:100;10822:99:58;;;;12736:433:61;;12919:10;;;;;;13151:11;;12736:433;:::o;12912:230::-;2900:5:58;;;;;981:14960:100;;2910:5:58;;;981:14960:100;;;;;;;;;4622:13:101;-1:-1:-1;14249:109:61;981:14960:100;14249:109:61;;-1:-1:-1;;;;;;;;;;;14249:109:61;981:14960:100;;;;;-1:-1:-1;12996:136:61;981:14960:100;;;13055:10:61;;12996:136;;12912:230;;;12996:136;981:14960:100;;;;;;;;;;;12996:136:61;;;12736:433;;12919:10;;;;;;13151:11;;12736:433;:::o;12912:230::-;2900:5:58;;;;;981:14960:100;;2910:5:58;;;981:14960:100;;;;;;;;;4994:12:101;-1:-1:-1;14249:109:61;981:14960:100;14249:109:61;;-1:-1:-1;;;;;;;;;;;14249:109:61;981:14960:100;;;;;-1:-1:-1;12996:136:61;981:14960:100;;;13055:10:61;;12996:136;;12912:230;;;12996:136;981:14960:100;;;;;;;;;;;12996:136:61;;;12736:433;;;12919:10;;;;;;13151:11;;;12736:433;:::o;12912:230::-;2900:5:58;;;;;;981:14960:100;;2910:5:58;;;981:14960:100;;;;;;;;;14249:109:61;-1:-1:-1;14249:109:61;981:14960:100;14249:109:61;;;-1:-1:-1;14249:109:61;;981:14960:100;;;;;-1:-1:-1;12996:136:61;981:14960:100;;;13055:10:61;;12996:136;;12912:230;;;;12996:136;981:14960:100;;;;;;;;;;;12996:136:61;;;4625:582:47;;4797:8;;-1:-1:-1;981:14960:100;;5874:21:47;:17;;6046:142;;;;;;5870:383;981:14960:100;;-1:-1:-1;;;6225:17:47;;;;;4793:408;981:14960:100;;5045:22:47;:49;;;4793:408;5041:119;;5173:17;;:::o;5041:119::-;981:14960:100;;-1:-1:-1;;;5121:24:47;;-1:-1:-1;;;;;981:14960:100;;;5121:24:47;;;981:14960:100;;;5121:24:47;5045:49;5071:18;;;:23;5045:49;","linkReferences":{},"immutableReferences":{"64787":[{"start":1904,"length":32},{"start":2467,"length":32}],"75427":[{"start":4512,"length":32},{"start":5845,"length":32}],"75430":[{"start":6206,"length":32},{"start":7428,"length":32}]}},"methodIdentifiers":{"DEFAULT_ADMIN_ROLE()":"a217fddf","DELEGATOR_FACTORY()":"6da3e06d","DEPOSITOR_WHITELIST_ROLE()":"1b66c9e1","DEPOSIT_LIMIT_SET_ROLE()":"a21a1df9","DEPOSIT_WHITELIST_SET_ROLE()":"db388715","FACTORY()":"2dd31000","IS_DEPOSIT_LIMIT_SET_ROLE()":"1415519b","SLASHER_FACTORY()":"87df0788","activeBalanceOf(address)":"59f769a9","activeBalanceOfAt(address,uint48,bytes)":"efb559d6","activeShares()":"bfefcd7b","activeSharesAt(uint48,bytes)":"50f22068","activeSharesOf(address)":"9d66201b","activeSharesOfAt(address,uint48,bytes)":"2d73c69c","activeStake()":"bd49c35f","activeStakeAt(uint48,bytes)":"810da75d","burner()":"27810b6e","claim(address,uint256)":"aad3ec96","claimBatch(address,uint256[])":"7c04c80a","collateral()":"d8dfeb45","currentEpoch()":"76671808","currentEpochStart()":"61a8c8c4","delegator()":"ce9b7930","deposit(address,uint256)":"47e7ef24","depositLimit()":"ecf70858","depositWhitelist()":"48d3b775","epochAt(uint48)":"7953b33b","epochDuration()":"4ff0876a","epochDurationInit()":"46361671","getRoleAdmin(bytes32)":"248a9ca3","grantRole(bytes32,address)":"2f2ff15d","hasRole(bytes32,address)":"91d14854","initialize(uint64,address,bytes)":"57ec83cc","isDelegatorInitialized()":"50861adc","isDepositLimit()":"a1b12202","isDepositorWhitelisted(address)":"794b15b7","isInitialized()":"392e53cd","isSlasherInitialized()":"6ec1e3f8","isWithdrawalsClaimed(uint256,address)":"a5d03223","migrate(uint64,bytes)":"2abe3048","nextEpochStart()":"73790ab3","onSlash(uint256,uint48)":"7278e31c","owner()":"8da5cb5b","previousEpochStart()":"281f5752","redeem(address,uint256)":"1e9a6950","renounceOwnership()":"715018a6","renounceRole(bytes32,address)":"36568abe","revokeRole(bytes32,address)":"d547741f","setDelegator(address)":"83cd9cc3","setDepositLimit(uint256)":"bdc8144b","setDepositWhitelist(bool)":"4105a7dd","setDepositorWhitelistStatus(address,bool)":"a2861466","setIsDepositLimit(bool)":"5346e34f","setSlasher(address)":"aabc2496","slashableBalanceOf(address)":"c31e8dd7","slasher()":"b1344271","staticDelegateCall(address,bytes)":"9f86fd85","supportsInterface(bytes4)":"01ffc9a7","totalStake()":"8b0e9f3f","transferOwnership(address)":"f2fde38b","version()":"54fd4d50","withdraw(address,uint256)":"f3fef3a3","withdrawalShares(uint256)":"afba70ad","withdrawalSharesOf(uint256,address)":"a3b54172","withdrawals(uint256)":"5cc07076","withdrawalsOf(uint256,address)":"f5e7ee0f"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegatorFactory\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"slasherFactory\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"vaultFactory\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"AccessControlBadConfirmation\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"neededRole\",\"type\":\"bytes32\"}],\"name\":\"AccessControlUnauthorizedAccount\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"AddressEmptyCode\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"AddressInsufficientBalance\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AlreadyClaimed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AlreadyInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AlreadySet\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CheckpointUnorderedInsertion\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"DelegatorAlreadyInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"DepositLimitReached\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedInnerCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientClaim\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientDeposit\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientRedemption\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientWithdrawal\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidAccount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidCaptureEpoch\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidClaimer\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidCollateral\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidDelegator\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidEpoch\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidEpochDuration\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidLengthEpochs\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidOnBehalfOf\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidRecipient\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidSlasher\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidTimestamp\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MathOverflowedMulDiv\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MissingRoles\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NoPreviousEpoch\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotDelegator\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotFactory\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotSlasher\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotWhitelistedDepositor\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ReentrancyGuardReentrantCall\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"bits\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"SafeCastOverflowedUintDowncast\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"SafeERC20FailedOperation\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SlasherAlreadyInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TooMuchRedeem\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TooMuchWithdraw\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"claimer\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"epoch\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Claim\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"claimer\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"epochs\",\"type\":\"uint256[]\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"ClaimBatch\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"depositor\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"onBehalfOf\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"}],\"name\":\"Deposit\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint48\",\"name\":\"captureTimestamp\",\"type\":\"uint48\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"slashedAmount\",\"type\":\"uint256\"}],\"name\":\"OnSlash\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"previousAdminRole\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"newAdminRole\",\"type\":\"bytes32\"}],\"name\":\"RoleAdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleRevoked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"}],\"name\":\"SetDelegator\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"limit\",\"type\":\"uint256\"}],\"name\":\"SetDepositLimit\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"status\",\"type\":\"bool\"}],\"name\":\"SetDepositWhitelist\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"status\",\"type\":\"bool\"}],\"name\":\"SetDepositorWhitelistStatus\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"status\",\"type\":\"bool\"}],\"name\":\"SetIsDepositLimit\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"slasher\",\"type\":\"address\"}],\"name\":\"SetSlasher\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"withdrawer\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"claimer\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"burnedShares\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"mintedShares\",\"type\":\"uint256\"}],\"name\":\"Withdraw\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DEFAULT_ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"DELEGATOR_FACTORY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"DEPOSITOR_WHITELIST_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"DEPOSIT_LIMIT_SET_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"DEPOSIT_WHITELIST_SET_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"FACTORY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"IS_DEPOSIT_LIMIT_SET_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"SLASHER_FACTORY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"activeBalanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hints\",\"type\":\"bytes\"}],\"name\":\"activeBalanceOfAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"activeShares\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hint\",\"type\":\"bytes\"}],\"name\":\"activeSharesAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"activeSharesOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hint\",\"type\":\"bytes\"}],\"name\":\"activeSharesOfAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"activeStake\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hint\",\"type\":\"bytes\"}],\"name\":\"activeStakeAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"burner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"epoch\",\"type\":\"uint256\"}],\"name\":\"claim\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256[]\",\"name\":\"epochs\",\"type\":\"uint256[]\"}],\"name\":\"claimBatch\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"collateral\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"currentEpoch\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"currentEpochStart\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"delegator\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"onBehalfOf\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"deposit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"depositedAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"mintedShares\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"depositLimit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"depositWhitelist\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"}],\"name\":\"epochAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"epochDuration\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"epochDurationInit\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleAdmin\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"grantRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"initialVersion\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"owner_\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isDelegatorInitialized\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isDepositLimit\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"isDepositorWhitelisted\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"value\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isInitialized\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isSlasherInitialized\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"epoch\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"isWithdrawalsClaimed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"value\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"newVersion\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"migrate\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"nextEpochStart\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint48\",\"name\":\"captureTimestamp\",\"type\":\"uint48\"}],\"name\":\"onSlash\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"slashedAmount\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"previousEpochStart\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"claimer\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"}],\"name\":\"redeem\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"withdrawnAssets\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"mintedShares\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"callerConfirmation\",\"type\":\"address\"}],\"name\":\"renounceRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegator_\",\"type\":\"address\"}],\"name\":\"setDelegator\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"limit\",\"type\":\"uint256\"}],\"name\":\"setDepositLimit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"status\",\"type\":\"bool\"}],\"name\":\"setDepositWhitelist\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"status\",\"type\":\"bool\"}],\"name\":\"setDepositorWhitelistStatus\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"status\",\"type\":\"bool\"}],\"name\":\"setIsDepositLimit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"slasher_\",\"type\":\"address\"}],\"name\":\"setSlasher\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"slashableBalanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"slasher\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"staticDelegateCall\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalStake\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"version\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"claimer\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"withdraw\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"burnedShares\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"mintedShares\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"epoch\",\"type\":\"uint256\"}],\"name\":\"withdrawalShares\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"epoch\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"withdrawalSharesOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"epoch\",\"type\":\"uint256\"}],\"name\":\"withdrawals\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"epoch\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"withdrawalsOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"AccessControlBadConfirmation()\":[{\"details\":\"The caller of a function is not the expected one. NOTE: Don't confuse with {AccessControlUnauthorizedAccount}.\"}],\"AccessControlUnauthorizedAccount(address,bytes32)\":[{\"details\":\"The `account` is missing a role.\"}],\"AddressEmptyCode(address)\":[{\"details\":\"There's no code at `target` (it is not a contract).\"}],\"AddressInsufficientBalance(address)\":[{\"details\":\"The ETH balance of the account is not enough to perform the operation.\"}],\"CheckpointUnorderedInsertion()\":[{\"details\":\"A value was attempted to be inserted on a past checkpoint.\"}],\"FailedInnerCall()\":[{\"details\":\"A call to an address target failed. The target may have reverted.\"}],\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"MathOverflowedMulDiv()\":[{\"details\":\"Muldiv operation overflow.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}],\"ReentrancyGuardReentrantCall()\":[{\"details\":\"Unauthorized reentrant call.\"}],\"SafeCastOverflowedUintDowncast(uint8,uint256)\":[{\"details\":\"Value doesn't fit in an uint of `bits` size.\"}],\"SafeERC20FailedOperation(address)\":[{\"details\":\"An operation with an ERC20 token failed.\"}]},\"events\":{\"Claim(address,address,uint256,uint256)\":{\"params\":{\"amount\":\"amount of the collateral claimed\",\"claimer\":\"account that claimed\",\"epoch\":\"epoch the collateral was claimed for\",\"recipient\":\"account that received the collateral\"}},\"ClaimBatch(address,address,uint256[],uint256)\":{\"params\":{\"amount\":\"amount of the collateral claimed\",\"claimer\":\"account that claimed\",\"epochs\":\"epochs the collateral was claimed for\",\"recipient\":\"account that received the collateral\"}},\"Deposit(address,address,uint256,uint256)\":{\"params\":{\"amount\":\"amount of the collateral deposited\",\"depositor\":\"account that made the deposit\",\"onBehalfOf\":\"account the deposit was made on behalf of\",\"shares\":\"amount of the active shares minted\"}},\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"OnSlash(uint256,uint48,uint256)\":{\"params\":{\"amount\":\"amount of the collateral to slash\",\"captureTimestamp\":\"time point when the stake was captured\",\"slashedAmount\":\"real amount of the collateral slashed\"}},\"RoleAdminChanged(bytes32,bytes32,bytes32)\":{\"details\":\"Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole` `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite {RoleAdminChanged} not being emitted signaling this.\"},\"RoleGranted(bytes32,address,address)\":{\"details\":\"Emitted when `account` is granted `role`. `sender` is the account that originated the contract call, an admin role bearer except when using {AccessControl-_setupRole}.\"},\"RoleRevoked(bytes32,address,address)\":{\"details\":\"Emitted when `account` is revoked `role`. `sender` is the account that originated the contract call: - if using `revokeRole`, it is the admin role bearer - if using `renounceRole`, it is the role bearer (i.e. `account`)\"},\"SetDelegator(address)\":{\"details\":\"Can be set only once.\",\"params\":{\"delegator\":\"vault's delegator to delegate the stake to networks and operators\"}},\"SetDepositLimit(uint256)\":{\"params\":{\"limit\":\"deposit limit (maximum amount of the collateral that can be in the vault simultaneously)\"}},\"SetDepositWhitelist(bool)\":{\"params\":{\"status\":\"if enabled deposit whitelist\"}},\"SetDepositorWhitelistStatus(address,bool)\":{\"params\":{\"account\":\"account for which the whitelist status is set\",\"status\":\"if whitelisted the account\"}},\"SetIsDepositLimit(bool)\":{\"params\":{\"status\":\"if enabled deposit limit\"}},\"SetSlasher(address)\":{\"details\":\"Can be set only once.\",\"params\":{\"slasher\":\"vault's slasher to provide a slashing mechanism to networks\"}},\"Withdraw(address,address,uint256,uint256,uint256)\":{\"params\":{\"amount\":\"amount of the collateral withdrawn\",\"burnedShares\":\"amount of the active shares burned\",\"claimer\":\"account that needs to claim the withdrawal\",\"mintedShares\":\"amount of the epoch withdrawal shares minted\",\"withdrawer\":\"account that made the withdrawal\"}}},\"kind\":\"dev\",\"methods\":{\"activeBalanceOf(address)\":{\"params\":{\"account\":\"account to get the active balance for\"},\"returns\":{\"_0\":\"active balance for the account\"}},\"activeBalanceOfAt(address,uint48,bytes)\":{\"params\":{\"account\":\"account to get the active balance for\",\"hints\":\"hints for checkpoints' indexes\",\"timestamp\":\"time point to get the active balance for the account at\"},\"returns\":{\"_0\":\"active balance for the account at the timestamp\"}},\"activeShares()\":{\"returns\":{\"_0\":\"total number of active shares\"}},\"activeSharesAt(uint48,bytes)\":{\"params\":{\"hint\":\"hint for the checkpoint index\",\"timestamp\":\"time point to get the total number of active shares at\"},\"returns\":{\"_0\":\"total number of active shares at the timestamp\"}},\"activeSharesOf(address)\":{\"params\":{\"account\":\"account to get the number of active shares for\"},\"returns\":{\"_0\":\"number of active shares for the account\"}},\"activeSharesOfAt(address,uint48,bytes)\":{\"params\":{\"account\":\"account to get the number of active shares for\",\"hint\":\"hint for the checkpoint index\",\"timestamp\":\"time point to get the number of active shares for the account at\"},\"returns\":{\"_0\":\"number of active shares for the account at the timestamp\"}},\"activeStake()\":{\"returns\":{\"_0\":\"total amount of active stake\"}},\"activeStakeAt(uint48,bytes)\":{\"params\":{\"hint\":\"hint for the checkpoint index\",\"timestamp\":\"time point to get the total active stake at\"},\"returns\":{\"_0\":\"total amount of active stake at the timestamp\"}},\"claim(address,uint256)\":{\"params\":{\"epoch\":\"epoch to claim the collateral for\",\"recipient\":\"account that receives the collateral\"},\"returns\":{\"amount\":\"amount of the collateral claimed\"}},\"claimBatch(address,uint256[])\":{\"params\":{\"epochs\":\"epochs to claim the collateral for\",\"recipient\":\"account that receives the collateral\"},\"returns\":{\"amount\":\"amount of the collateral claimed\"}},\"currentEpoch()\":{\"returns\":{\"_0\":\"current epoch\"}},\"currentEpochStart()\":{\"returns\":{\"_0\":\"start of the current epoch\"}},\"deposit(address,uint256)\":{\"params\":{\"amount\":\"amount of the collateral to deposit\",\"onBehalfOf\":\"account the deposit is made on behalf of\"},\"returns\":{\"depositedAmount\":\"real amount of the collateral deposited\",\"mintedShares\":\"amount of the active shares minted\"}},\"epochAt(uint48)\":{\"details\":\"Reverts if the timestamp is less than the start of the epoch 0.\",\"params\":{\"timestamp\":\"time point to get the epoch at\"},\"returns\":{\"_0\":\"epoch at the timestamp\"}},\"getRoleAdmin(bytes32)\":{\"details\":\"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}.\"},\"grantRole(bytes32,address)\":{\"details\":\"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event.\"},\"hasRole(bytes32,address)\":{\"details\":\"Returns `true` if `account` has been granted `role`.\"},\"initialize(uint64,address,bytes)\":{\"params\":{\"data\":\"some data to use\",\"initialVersion\":\"initial version of the entity\",\"owner\":\"initial owner of the entity\"}},\"isInitialized()\":{\"returns\":{\"_0\":\"if the vault is fully initialized\"}},\"migrate(uint64,bytes)\":{\"params\":{\"data\":\"some data to use\",\"newVersion\":\"new version of the entity\"}},\"nextEpochStart()\":{\"returns\":{\"_0\":\"start of the next epoch\"}},\"onSlash(uint256,uint48)\":{\"details\":\"Only the slasher can call this function.\",\"params\":{\"amount\":\"amount to slash\",\"captureTimestamp\":\"time point when the stake was captured\"},\"returns\":{\"slashedAmount\":\"real amount of the collateral slashed\"}},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"previousEpochStart()\":{\"details\":\"Reverts if the current epoch is 0.\",\"returns\":{\"_0\":\"start of the previous epoch\"}},\"redeem(address,uint256)\":{\"params\":{\"claimer\":\"account that needs to claim the withdrawal\",\"shares\":\"amount of the active shares to redeem\"},\"returns\":{\"mintedShares\":\"amount of the epoch withdrawal shares minted\",\"withdrawnAssets\":\"amount of the collateral withdrawn\"}},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"renounceRole(bytes32,address)\":{\"details\":\"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `callerConfirmation`. May emit a {RoleRevoked} event.\"},\"revokeRole(bytes32,address)\":{\"details\":\"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event.\"},\"setDepositLimit(uint256)\":{\"details\":\"Only a DEPOSIT_LIMIT_SET_ROLE holder can call this function.\",\"params\":{\"limit\":\"deposit limit (maximum amount of the collateral that can be in the vault simultaneously)\"}},\"setDepositWhitelist(bool)\":{\"details\":\"Only a DEPOSIT_WHITELIST_SET_ROLE holder can call this function.\",\"params\":{\"status\":\"if enabling deposit whitelist\"}},\"setDepositorWhitelistStatus(address,bool)\":{\"details\":\"Only a DEPOSITOR_WHITELIST_ROLE holder can call this function.\",\"params\":{\"account\":\"account for which the whitelist status is set\",\"status\":\"if whitelisting the account\"}},\"setIsDepositLimit(bool)\":{\"details\":\"Only a IS_DEPOSIT_LIMIT_SET_ROLE holder can call this function.\",\"params\":{\"status\":\"if enabling deposit limit\"}},\"slashableBalanceOf(address)\":{\"params\":{\"account\":\"account to get the slashable collateral for\"},\"returns\":{\"_0\":\"total amount of the account's slashable collateral\"}},\"staticDelegateCall(address,bytes)\":{\"details\":\"It allows to use this contract's storage on-chain.\",\"params\":{\"data\":\"data to make a delegatecall with\",\"target\":\"address of the contract to make a delegatecall to\"}},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"},\"totalStake()\":{\"returns\":{\"_0\":\"total amount of the slashable collateral\"}},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"},\"version()\":{\"details\":\"Starts from 1.\",\"returns\":{\"_0\":\"version of the entity\"}},\"withdraw(address,uint256)\":{\"params\":{\"amount\":\"amount of the collateral to withdraw\",\"claimer\":\"account that needs to claim the withdrawal\"},\"returns\":{\"burnedShares\":\"amount of the active shares burned\",\"mintedShares\":\"amount of the epoch withdrawal shares minted\"}},\"withdrawalsOf(uint256,address)\":{\"params\":{\"account\":\"account to get the withdrawals for\",\"epoch\":\"epoch to get the withdrawals for the account at\"},\"returns\":{\"_0\":\"withdrawals for the account at the epoch\"}}},\"version\":1},\"userdoc\":{\"events\":{\"Claim(address,address,uint256,uint256)\":{\"notice\":\"Emitted when a claim is made.\"},\"ClaimBatch(address,address,uint256[],uint256)\":{\"notice\":\"Emitted when a batch claim is made.\"},\"Deposit(address,address,uint256,uint256)\":{\"notice\":\"Emitted when a deposit is made.\"},\"OnSlash(uint256,uint48,uint256)\":{\"notice\":\"Emitted when a slash happens.\"},\"SetDelegator(address)\":{\"notice\":\"Emitted when a delegator is set.\"},\"SetDepositLimit(uint256)\":{\"notice\":\"Emitted when a deposit limit is set.\"},\"SetDepositWhitelist(bool)\":{\"notice\":\"Emitted when a deposit whitelist status is enabled/disabled.\"},\"SetDepositorWhitelistStatus(address,bool)\":{\"notice\":\"Emitted when a depositor whitelist status is set.\"},\"SetIsDepositLimit(bool)\":{\"notice\":\"Emitted when a deposit limit status is enabled/disabled.\"},\"SetSlasher(address)\":{\"notice\":\"Emitted when a slasher is set.\"},\"Withdraw(address,address,uint256,uint256,uint256)\":{\"notice\":\"Emitted when a withdrawal is made.\"}},\"kind\":\"user\",\"methods\":{\"DELEGATOR_FACTORY()\":{\"notice\":\"Get the delegator factory's address.\"},\"DEPOSITOR_WHITELIST_ROLE()\":{\"notice\":\"Get a depositor whitelist status setter's role.\"},\"DEPOSIT_LIMIT_SET_ROLE()\":{\"notice\":\"Get a deposit limit setter's role.\"},\"DEPOSIT_WHITELIST_SET_ROLE()\":{\"notice\":\"Get a deposit whitelist enabler/disabler's role.\"},\"FACTORY()\":{\"notice\":\"Get the factory's address.\"},\"IS_DEPOSIT_LIMIT_SET_ROLE()\":{\"notice\":\"Get a deposit limit enabler/disabler's role.\"},\"SLASHER_FACTORY()\":{\"notice\":\"Get the slasher factory's address.\"},\"activeBalanceOf(address)\":{\"notice\":\"Get an active balance for a particular account.\"},\"activeBalanceOfAt(address,uint48,bytes)\":{\"notice\":\"Get an active balance for a particular account at a given timestamp using hints.\"},\"activeShares()\":{\"notice\":\"Get a total number of active shares in the vault.\"},\"activeSharesAt(uint48,bytes)\":{\"notice\":\"Get a total number of active shares in the vault at a given timestamp using a hint.\"},\"activeSharesOf(address)\":{\"notice\":\"Get a number of active shares for a particular account.\"},\"activeSharesOfAt(address,uint48,bytes)\":{\"notice\":\"Get a total number of active shares for a particular account at a given timestamp using a hint.\"},\"activeStake()\":{\"notice\":\"Get a total amount of active stake in the vault.\"},\"activeStakeAt(uint48,bytes)\":{\"notice\":\"Get a total amount of active stake in the vault at a given timestamp using a hint.\"},\"burner()\":{\"notice\":\"Get a burner to issue debt to (e.g., 0xdEaD or some unwrapper contract).\"},\"claim(address,uint256)\":{\"notice\":\"Claim collateral from the vault.\"},\"claimBatch(address,uint256[])\":{\"notice\":\"Claim collateral from the vault for multiple epochs.\"},\"collateral()\":{\"notice\":\"Get a vault collateral.\"},\"currentEpoch()\":{\"notice\":\"Get a current vault epoch.\"},\"currentEpochStart()\":{\"notice\":\"Get a start of the current vault epoch.\"},\"delegator()\":{\"notice\":\"Get a delegator (it delegates the vault's stake to networks and operators).\"},\"deposit(address,uint256)\":{\"notice\":\"Deposit collateral into the vault.\"},\"depositLimit()\":{\"notice\":\"Get a deposit limit (maximum amount of the active stake that can be in the vault simultaneously).\"},\"depositWhitelist()\":{\"notice\":\"Get if the deposit whitelist is enabled.\"},\"epochAt(uint48)\":{\"notice\":\"Get an epoch at a given timestamp.\"},\"epochDuration()\":{\"notice\":\"Get a duration of the vault epoch.\"},\"epochDurationInit()\":{\"notice\":\"Get a time point of the epoch duration set.\"},\"initialize(uint64,address,bytes)\":{\"notice\":\"Initialize this entity contract by using a given data and setting a particular version and owner.\"},\"isDelegatorInitialized()\":{\"notice\":\"Get if the delegator is initialized.\"},\"isDepositLimit()\":{\"notice\":\"Get if the deposit limit is set.\"},\"isDepositorWhitelisted(address)\":{\"notice\":\"Get if a given account is whitelisted as a depositor.\"},\"isInitialized()\":{\"notice\":\"Check if the vault is fully initialized (a delegator and a slasher are set).\"},\"isSlasherInitialized()\":{\"notice\":\"Get if the slasher is initialized.\"},\"isWithdrawalsClaimed(uint256,address)\":{\"notice\":\"Get if the withdrawals are claimed for a particular account at a given epoch.\"},\"migrate(uint64,bytes)\":{\"notice\":\"Migrate this entity to a particular newer version using a given data.\"},\"nextEpochStart()\":{\"notice\":\"Get a start of the next vault epoch.\"},\"onSlash(uint256,uint48)\":{\"notice\":\"Slash callback for burning collateral.\"},\"previousEpochStart()\":{\"notice\":\"Get a start of the previous vault epoch.\"},\"redeem(address,uint256)\":{\"notice\":\"Redeem collateral from the vault (it will be claimable after the next epoch).\"},\"setDepositLimit(uint256)\":{\"notice\":\"Set a deposit limit.\"},\"setDepositWhitelist(bool)\":{\"notice\":\"Enable/disable deposit whitelist.\"},\"setDepositorWhitelistStatus(address,bool)\":{\"notice\":\"Set a depositor whitelist status.\"},\"setIsDepositLimit(bool)\":{\"notice\":\"Enable/disable deposit limit.\"},\"slashableBalanceOf(address)\":{\"notice\":\"Get a total amount of the collateral that can be slashed for a given account.\"},\"slasher()\":{\"notice\":\"Get a slasher (it provides networks a slashing mechanism).\"},\"staticDelegateCall(address,bytes)\":{\"notice\":\"Make a delegatecall from this contract to a given target contract with a particular data (always reverts with a return data).\"},\"totalStake()\":{\"notice\":\"Get a total amount of the collateral that can be slashed.\"},\"version()\":{\"notice\":\"Get the entity's version.\"},\"withdraw(address,uint256)\":{\"notice\":\"Withdraw collateral from the vault (it will be claimable after the next epoch).\"},\"withdrawalShares(uint256)\":{\"notice\":\"Get a total number of withdrawal shares at a given epoch.\"},\"withdrawalSharesOf(uint256,address)\":{\"notice\":\"Get a number of withdrawal shares for a particular account at a given epoch (zero if claimed).\"},\"withdrawals(uint256)\":{\"notice\":\"Get a total amount of the withdrawals at a given epoch.\"},\"withdrawalsOf(uint256,address)\":{\"notice\":\"Get withdrawals for a particular account at a given epoch (zero if claimed).\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/contracts/vault/Vault.sol\":\"Vault\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol\":{\"keccak256\":\"0x6662ec4e5cefca03eeadd073e9469df8d2944bb2ee8ec8f7622c2c46aab5f225\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4d8544c6f8daa4d1bc215c6a72fe0acdb748664a105b0e5efc19295667521d45\",\"dweb:/ipfs/QmdGWqdnXT8S3RgCR6aV8XHZrsybieMQLLnug1NtpSjEXN\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0xc163fcf9bb10138631a9ba5564df1fa25db9adff73bd9ee868a8ae1858fe093a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9706d43a0124053d9880f6e31a59f31bc0a6a3dc1acd66ce0a16e1111658c5f6\",\"dweb:/ipfs/QmUFmfowzkRwGtDu36cXV9SPTBHJ3n7dG9xQiK5B28jTf2\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609\",\"dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9\",\"dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardUpgradeable.sol\":{\"keccak256\":\"0xb44e086e941292cdc7f440de51478493894ef0b1aeccb0c4047445919f667f74\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://942dad22fbdc1669f025540ba63aa3ccfad5f8458fc5d4525b31ebf272e7af45\",\"dweb:/ipfs/Qmdo4X2M82aM3AMoW2kf2jhYkSCyC4T1pHNd6obdsDFnAB\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol\":{\"keccak256\":\"0xdaba3f7c42c55b2896353f32bd27d4d5f8bae741b3b05d4c53f67abc4dc47ce8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1fa2e61141c602510bcd2cd936ed9561922ac8772a9b9c9a9db091a74e354a45\",\"dweb:/ipfs/QmcHQDDoEBwJmwUbzoVkytvJsBx3KVHYFFnDkvRGWh9Wmh\"]},\"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0xb6b36edd6a2999fd243ff226d6cbf84bd71af2432bbd0dfe19392996a1d9cb41\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1fd2f35495652e57e3f99bc6c510bc5f7dd398a176ea2e72d8ed730aebc6ca26\",\"dweb:/ipfs/QmTQV6X4gkikTib49cho5iDX3JvSQbdsoEChoDwrk3CbbH\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c\",\"dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0x6008dabfe393240d73d7dd7688033f72740d570aa422254d29a7dce8568f3aff\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f5196ec75139918c6c7bb4251b36395e668f1fa6d206beba7e7520e74913940d\",\"dweb:/ipfs/QmSyqjksXxmm2mCG6qRd1yuwLykypkSVBbnBnGqJRcuJMi\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x37bb49513c49c87c4642a891b13b63571bc87013dde806617aa1efb54605f386\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b3036b3a83b7c48f96641f2a9002b9f2dcb6a5958dd670894ada21ae8229b3d0\",\"dweb:/ipfs/QmUNfSBdoVtjhETaUJCYcaC7pTMgbhht926tJ2uXJbiVd3\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0xaf28a975a78550e45f65e559a3ad6a5ad43b9b8a37366999abd1b7084eb70721\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b7bd24e224f67f65bfadf85dc2929fa965456bb2415478bd0125471b5ce35245\",\"dweb:/ipfs/QmRaydGr8BTHs1kvaZfsNU69pKzUAGFrvABn1KiRSbE51y\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875\",\"dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0xe19a4d5f31d2861e7344e8e535e2feafb913d806d3e2b5fe7782741a2a7094fe\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4aed79c0fa6f0546ed02f2f683e8f77f0fd2ed7eb34d8bbf3d373c9a6d95b13c\",\"dweb:/ipfs/QmWqVz6UAVqmnWU5pqYPt1o6iDEZyPaBraAA3rKfTTSfYj\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/Checkpoints.sol\":{\"keccak256\":\"0xbdc5e074d7dd6678f67e92b1a51a20226801a407b0e1af3da367c5d1ff4519ad\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a36cca6b22fff3db16fc789ff6c60eea71d4b156065d4d0c83a0bc5e91a77a8b\",\"dweb:/ipfs/QmYN3exd5AemxjBrN8XMB1p5LbbE16uC3sjbYjwi8AjcGR\"]},\"lib/openzeppelin-contracts/contracts/utils/types/Time.sol\":{\"keccak256\":\"0xc7755af115020049e4140f224f9ee88d7e1799ffb0646f37bf0df24bf6213f58\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7f09bf94d5274334ec021f61a04659db303f31e60460e14b709c9bf187740111\",\"dweb:/ipfs/QmNvgomZYUwFAt4cZbPWAiTeSZQreGehY9BK5xyVJsUttb\"]},\"src/contracts/common/MigratableEntity.sol\":{\"keccak256\":\"0x2d736f4dacd5d7e7697503bc426c78b8250fe1694ca157965ec178da6807de58\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://f1237acf96b4b9f9b69156e068eddd726a6e15bd8e87a18dc999cd4ba4da069c\",\"dweb:/ipfs/QmS6M8fiFFSeuJ4ZKKq1z8W7w4ybeHQSy5TLASGoc1LVic\"]},\"src/contracts/common/StaticDelegateCallable.sol\":{\"keccak256\":\"0x350029aa8955eacaffffaeb58babc5c98e80ebc5c5db388ed17ee6465f4a9d90\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://eb392a8ee9050e0af606897df63e3404e3829e8b688b580663892f9664195764\",\"dweb:/ipfs/QmaXC8jqV8UrrAFkzXTEv2fJF56sy33HhLxAzaRZmUxuXD\"]},\"src/contracts/libraries/Checkpoints.sol\":{\"keccak256\":\"0xba90097c8bfe0a975499428b5f8ac5569483c7d92ccc28c12d70de416aae040c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://12f5d93ca94cd06d3147db68993165a58e17903ed53682560de61f3085ad4609\",\"dweb:/ipfs/QmePiuAqvXprMLmFZkGZeGjvGPAvsEDHfCDv7BoQhXu9xE\"]},\"src/contracts/libraries/ERC4626Math.sol\":{\"keccak256\":\"0x8441160513c1cbeb1c3b9ee077bcc7e7ce20006b52a77c8dd39ff0ef89699939\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://943f8cc3e26ddf649f465f40c909819f5c864717c4baa339e9e403b9374a4653\",\"dweb:/ipfs/QmXPxi1sUDsrGprZdUgCzoPEosaZMv9ZhygWQ1vAi1phAB\"]},\"src/contracts/vault/Vault.sol\":{\"keccak256\":\"0x2ceff6ed3298c4cad144c99fcc79b51cb9397d6ebef00285b915848b476f8c2e\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://11f2fb3581854f3ab6e82e8d4935d9eb510c903a13c3f022346c2956a58f5307\",\"dweb:/ipfs/QmdUnoXoyYoG9SGWyQZCFyLDRUUX3eXyXetkRvw6jxqqBz\"]},\"src/contracts/vault/VaultStorage.sol\":{\"keccak256\":\"0x57db25b127d77ea3472de53e3a4af3354399655b9268638b99ca5925fa364a56\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://aa763d9a6ec508ae3abfb8228b72b9fd9525279e5135d4962e79ff059feb1173\",\"dweb:/ipfs/QmcbDR6E9wyEpu6V2FkEC4hnWy47zXA9LSKJde6zSGd33Q\"]},\"src/interfaces/common/IEntity.sol\":{\"keccak256\":\"0x8ef4b63d6da63489778ccd5f8d13ebdd527dd4b62730b2c616df5af7474d2d21\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a8d69576a9219d85c50816a18ad53a4d53cfcb27ed38b8cccc808dc2734b71b\",\"dweb:/ipfs/QmYVN3P4Q4REvBWJ97TbAcaxm3uyB2anV6NSGa6ZtSwcEv\"]},\"src/interfaces/common/IMigratableEntity.sol\":{\"keccak256\":\"0x8f5f2809f3afbe8ebfbb365dd7b57b4dd3b6f9943a6187eaf648d45895b8e3c4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ffe640537d539e7a4fde70d30d3e4c57f4ba9c2c25c450cea713aae38e8fd5c\",\"dweb:/ipfs/QmSUTGzvdcn1R1KB7tLThMRtESsfPbeXDhhhKWGtntzBds\"]},\"src/interfaces/common/IRegistry.sol\":{\"keccak256\":\"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014\",\"dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK\"]},\"src/interfaces/common/IStaticDelegateCallable.sol\":{\"keccak256\":\"0xa335d4e81b9071b7de66ef92b43ff20671d86516eb1be46fef29a3483cd3f5d5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d464b9db863c14c05547d2b23352f2e9b7b784799cf09f6bbc4906a2a74e3516\",\"dweb:/ipfs/QmUVWzFvJz7eEbDQKiFTTzwi7TEbjcs3VmwdM4kuptAKvi\"]},\"src/interfaces/delegator/IBaseDelegator.sol\":{\"keccak256\":\"0x96bb312f032e17accce3f8f80936d99468029d6b37c9ca74acdb4b026a0148ee\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2a66dcb5b7d1a6ef6a363431ea98ebd78bc4fdd3d7a134d9b542dc66e7d025c2\",\"dweb:/ipfs/QmRhTPLd2ZAyRHmJUFUcWKs9b3if49QY17LYZuRqWmghw8\"]},\"src/interfaces/slasher/IBaseSlasher.sol\":{\"keccak256\":\"0x7c82528b445659c313ab77335c407b0b6efe5e79027187bb287f7bc74202b404\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0274c90aa5df1aa6bb470a6aab53992fb14fd7e5472c9430416505b29647d9cf\",\"dweb:/ipfs/QmckbmJLDetPemVzCnnGcKYWAZV2BRFXGDsjiaec8jkHxx\"]},\"src/interfaces/vault/IVault.sol\":{\"keccak256\":\"0xffee01d383cd4e1a5530c614bf4360c1ef070c288abec9da1eb531b51bc07235\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://04f0046cac285d8ec44ebbb1f79dc94fab4495767190cad8364fbc1fafaadfb9\",\"dweb:/ipfs/QmUawAunwzXfCyShWfhKeThAgKtqe51hmrxvrXvM772M2R\"]},\"src/interfaces/vault/IVaultStorage.sol\":{\"keccak256\":\"0x592626f13754194f83047135de19229c49390bd59e34659b1bb38be71d973a22\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://06a6a9dfddd05e580b32bebe2cff4f63ba26a653180676d58225dd30d9c89d3e\",\"dweb:/ipfs/QmdgzBeY6Sxo8mGtyBxtv1tM1c2kU6J6zjeRd7vuXm4DU6\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.25+commit.b61c2a91"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"delegatorFactory","type":"address"},{"internalType":"address","name":"slasherFactory","type":"address"},{"internalType":"address","name":"vaultFactory","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"AccessControlBadConfirmation"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bytes32","name":"neededRole","type":"bytes32"}],"type":"error","name":"AccessControlUnauthorizedAccount"},{"inputs":[{"internalType":"address","name":"target","type":"address"}],"type":"error","name":"AddressEmptyCode"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"AddressInsufficientBalance"},{"inputs":[],"type":"error","name":"AlreadyClaimed"},{"inputs":[],"type":"error","name":"AlreadyInitialized"},{"inputs":[],"type":"error","name":"AlreadySet"},{"inputs":[],"type":"error","name":"CheckpointUnorderedInsertion"},{"inputs":[],"type":"error","name":"DelegatorAlreadyInitialized"},{"inputs":[],"type":"error","name":"DepositLimitReached"},{"inputs":[],"type":"error","name":"FailedInnerCall"},{"inputs":[],"type":"error","name":"InsufficientClaim"},{"inputs":[],"type":"error","name":"InsufficientDeposit"},{"inputs":[],"type":"error","name":"InsufficientRedemption"},{"inputs":[],"type":"error","name":"InsufficientWithdrawal"},{"inputs":[],"type":"error","name":"InvalidAccount"},{"inputs":[],"type":"error","name":"InvalidCaptureEpoch"},{"inputs":[],"type":"error","name":"InvalidClaimer"},{"inputs":[],"type":"error","name":"InvalidCollateral"},{"inputs":[],"type":"error","name":"InvalidDelegator"},{"inputs":[],"type":"error","name":"InvalidEpoch"},{"inputs":[],"type":"error","name":"InvalidEpochDuration"},{"inputs":[],"type":"error","name":"InvalidInitialization"},{"inputs":[],"type":"error","name":"InvalidLengthEpochs"},{"inputs":[],"type":"error","name":"InvalidOnBehalfOf"},{"inputs":[],"type":"error","name":"InvalidRecipient"},{"inputs":[],"type":"error","name":"InvalidSlasher"},{"inputs":[],"type":"error","name":"InvalidTimestamp"},{"inputs":[],"type":"error","name":"MathOverflowedMulDiv"},{"inputs":[],"type":"error","name":"MissingRoles"},{"inputs":[],"type":"error","name":"NoPreviousEpoch"},{"inputs":[],"type":"error","name":"NotDelegator"},{"inputs":[],"type":"error","name":"NotFactory"},{"inputs":[],"type":"error","name":"NotInitialized"},{"inputs":[],"type":"error","name":"NotInitializing"},{"inputs":[],"type":"error","name":"NotSlasher"},{"inputs":[],"type":"error","name":"NotWhitelistedDepositor"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"OwnableInvalidOwner"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"OwnableUnauthorizedAccount"},{"inputs":[],"type":"error","name":"ReentrancyGuardReentrantCall"},{"inputs":[{"internalType":"uint8","name":"bits","type":"uint8"},{"internalType":"uint256","name":"value","type":"uint256"}],"type":"error","name":"SafeCastOverflowedUintDowncast"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"type":"error","name":"SafeERC20FailedOperation"},{"inputs":[],"type":"error","name":"SlasherAlreadyInitialized"},{"inputs":[],"type":"error","name":"TooMuchRedeem"},{"inputs":[],"type":"error","name":"TooMuchWithdraw"},{"inputs":[{"internalType":"address","name":"claimer","type":"address","indexed":true},{"internalType":"address","name":"recipient","type":"address","indexed":true},{"internalType":"uint256","name":"epoch","type":"uint256","indexed":false},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"Claim","anonymous":false},{"inputs":[{"internalType":"address","name":"claimer","type":"address","indexed":true},{"internalType":"address","name":"recipient","type":"address","indexed":true},{"internalType":"uint256[]","name":"epochs","type":"uint256[]","indexed":false},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"ClaimBatch","anonymous":false},{"inputs":[{"internalType":"address","name":"depositor","type":"address","indexed":true},{"internalType":"address","name":"onBehalfOf","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false},{"internalType":"uint256","name":"shares","type":"uint256","indexed":false}],"type":"event","name":"Deposit","anonymous":false},{"inputs":[{"internalType":"uint64","name":"version","type":"uint64","indexed":false}],"type":"event","name":"Initialized","anonymous":false},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256","indexed":false},{"internalType":"uint48","name":"captureTimestamp","type":"uint48","indexed":false},{"internalType":"uint256","name":"slashedAmount","type":"uint256","indexed":false}],"type":"event","name":"OnSlash","anonymous":false},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"bytes32","name":"previousAdminRole","type":"bytes32","indexed":true},{"internalType":"bytes32","name":"newAdminRole","type":"bytes32","indexed":true}],"type":"event","name":"RoleAdminChanged","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"address","name":"sender","type":"address","indexed":true}],"type":"event","name":"RoleGranted","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"address","name":"sender","type":"address","indexed":true}],"type":"event","name":"RoleRevoked","anonymous":false},{"inputs":[{"internalType":"address","name":"delegator","type":"address","indexed":true}],"type":"event","name":"SetDelegator","anonymous":false},{"inputs":[{"internalType":"uint256","name":"limit","type":"uint256","indexed":false}],"type":"event","name":"SetDepositLimit","anonymous":false},{"inputs":[{"internalType":"bool","name":"status","type":"bool","indexed":false}],"type":"event","name":"SetDepositWhitelist","anonymous":false},{"inputs":[{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"bool","name":"status","type":"bool","indexed":false}],"type":"event","name":"SetDepositorWhitelistStatus","anonymous":false},{"inputs":[{"internalType":"bool","name":"status","type":"bool","indexed":false}],"type":"event","name":"SetIsDepositLimit","anonymous":false},{"inputs":[{"internalType":"address","name":"slasher","type":"address","indexed":true}],"type":"event","name":"SetSlasher","anonymous":false},{"inputs":[{"internalType":"address","name":"withdrawer","type":"address","indexed":true},{"internalType":"address","name":"claimer","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false},{"internalType":"uint256","name":"burnedShares","type":"uint256","indexed":false},{"internalType":"uint256","name":"mintedShares","type":"uint256","indexed":false}],"type":"event","name":"Withdraw","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"DEFAULT_ADMIN_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"DELEGATOR_FACTORY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"DEPOSITOR_WHITELIST_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"DEPOSIT_LIMIT_SET_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"DEPOSIT_WHITELIST_SET_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"FACTORY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"IS_DEPOSIT_LIMIT_SET_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"SLASHER_FACTORY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"activeBalanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint48","name":"timestamp","type":"uint48"},{"internalType":"bytes","name":"hints","type":"bytes"}],"stateMutability":"view","type":"function","name":"activeBalanceOfAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"activeShares","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint48","name":"timestamp","type":"uint48"},{"internalType":"bytes","name":"hint","type":"bytes"}],"stateMutability":"view","type":"function","name":"activeSharesAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"activeSharesOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint48","name":"timestamp","type":"uint48"},{"internalType":"bytes","name":"hint","type":"bytes"}],"stateMutability":"view","type":"function","name":"activeSharesOfAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"activeStake","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint48","name":"timestamp","type":"uint48"},{"internalType":"bytes","name":"hint","type":"bytes"}],"stateMutability":"view","type":"function","name":"activeStakeAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"burner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"epoch","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"claim","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256[]","name":"epochs","type":"uint256[]"}],"stateMutability":"nonpayable","type":"function","name":"claimBatch","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"collateral","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"currentEpoch","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"currentEpochStart","outputs":[{"internalType":"uint48","name":"","type":"uint48"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"delegator","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"onBehalfOf","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"deposit","outputs":[{"internalType":"uint256","name":"depositedAmount","type":"uint256"},{"internalType":"uint256","name":"mintedShares","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"depositLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"depositWhitelist","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint48","name":"timestamp","type":"uint48"}],"stateMutability":"view","type":"function","name":"epochAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"epochDuration","outputs":[{"internalType":"uint48","name":"","type":"uint48"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"epochDurationInit","outputs":[{"internalType":"uint48","name":"","type":"uint48"}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getRoleAdmin","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"grantRole"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"hasRole","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint64","name":"initialVersion","type":"uint64"},{"internalType":"address","name":"owner_","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[],"stateMutability":"view","type":"function","name":"isDelegatorInitialized","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"isDepositLimit","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"isDepositorWhitelisted","outputs":[{"internalType":"bool","name":"value","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"isInitialized","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"isSlasherInitialized","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint256","name":"epoch","type":"uint256"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"isWithdrawalsClaimed","outputs":[{"internalType":"bool","name":"value","type":"bool"}]},{"inputs":[{"internalType":"uint64","name":"newVersion","type":"uint64"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"migrate"},{"inputs":[],"stateMutability":"view","type":"function","name":"nextEpochStart","outputs":[{"internalType":"uint48","name":"","type":"uint48"}]},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint48","name":"captureTimestamp","type":"uint48"}],"stateMutability":"nonpayable","type":"function","name":"onSlash","outputs":[{"internalType":"uint256","name":"slashedAmount","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"previousEpochStart","outputs":[{"internalType":"uint48","name":"","type":"uint48"}]},{"inputs":[{"internalType":"address","name":"claimer","type":"address"},{"internalType":"uint256","name":"shares","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"redeem","outputs":[{"internalType":"uint256","name":"withdrawnAssets","type":"uint256"},{"internalType":"uint256","name":"mintedShares","type":"uint256"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"callerConfirmation","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"renounceRole"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"revokeRole"},{"inputs":[{"internalType":"address","name":"delegator_","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setDelegator"},{"inputs":[{"internalType":"uint256","name":"limit","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setDepositLimit"},{"inputs":[{"internalType":"bool","name":"status","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"setDepositWhitelist"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"status","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"setDepositorWhitelistStatus"},{"inputs":[{"internalType":"bool","name":"status","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"setIsDepositLimit"},{"inputs":[{"internalType":"address","name":"slasher_","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setSlasher"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"slashableBalanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"slasher","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"staticDelegateCall"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"totalStake","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"},{"inputs":[],"stateMutability":"view","type":"function","name":"version","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[{"internalType":"address","name":"claimer","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"withdraw","outputs":[{"internalType":"uint256","name":"burnedShares","type":"uint256"},{"internalType":"uint256","name":"mintedShares","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"epoch","type":"uint256"}],"stateMutability":"view","type":"function","name":"withdrawalShares","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"epoch","type":"uint256"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"withdrawalSharesOf","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"epoch","type":"uint256"}],"stateMutability":"view","type":"function","name":"withdrawals","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"epoch","type":"uint256"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"withdrawalsOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]}],"devdoc":{"kind":"dev","methods":{"activeBalanceOf(address)":{"params":{"account":"account to get the active balance for"},"returns":{"_0":"active balance for the account"}},"activeBalanceOfAt(address,uint48,bytes)":{"params":{"account":"account to get the active balance for","hints":"hints for checkpoints' indexes","timestamp":"time point to get the active balance for the account at"},"returns":{"_0":"active balance for the account at the timestamp"}},"activeShares()":{"returns":{"_0":"total number of active shares"}},"activeSharesAt(uint48,bytes)":{"params":{"hint":"hint for the checkpoint index","timestamp":"time point to get the total number of active shares at"},"returns":{"_0":"total number of active shares at the timestamp"}},"activeSharesOf(address)":{"params":{"account":"account to get the number of active shares for"},"returns":{"_0":"number of active shares for the account"}},"activeSharesOfAt(address,uint48,bytes)":{"params":{"account":"account to get the number of active shares for","hint":"hint for the checkpoint index","timestamp":"time point to get the number of active shares for the account at"},"returns":{"_0":"number of active shares for the account at the timestamp"}},"activeStake()":{"returns":{"_0":"total amount of active stake"}},"activeStakeAt(uint48,bytes)":{"params":{"hint":"hint for the checkpoint index","timestamp":"time point to get the total active stake at"},"returns":{"_0":"total amount of active stake at the timestamp"}},"claim(address,uint256)":{"params":{"epoch":"epoch to claim the collateral for","recipient":"account that receives the collateral"},"returns":{"amount":"amount of the collateral claimed"}},"claimBatch(address,uint256[])":{"params":{"epochs":"epochs to claim the collateral for","recipient":"account that receives the collateral"},"returns":{"amount":"amount of the collateral claimed"}},"currentEpoch()":{"returns":{"_0":"current epoch"}},"currentEpochStart()":{"returns":{"_0":"start of the current epoch"}},"deposit(address,uint256)":{"params":{"amount":"amount of the collateral to deposit","onBehalfOf":"account the deposit is made on behalf of"},"returns":{"depositedAmount":"real amount of the collateral deposited","mintedShares":"amount of the active shares minted"}},"epochAt(uint48)":{"details":"Reverts if the timestamp is less than the start of the epoch 0.","params":{"timestamp":"time point to get the epoch at"},"returns":{"_0":"epoch at the timestamp"}},"getRoleAdmin(bytes32)":{"details":"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}."},"grantRole(bytes32,address)":{"details":"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event."},"hasRole(bytes32,address)":{"details":"Returns `true` if `account` has been granted `role`."},"initialize(uint64,address,bytes)":{"params":{"data":"some data to use","initialVersion":"initial version of the entity","owner":"initial owner of the entity"}},"isInitialized()":{"returns":{"_0":"if the vault is fully initialized"}},"migrate(uint64,bytes)":{"params":{"data":"some data to use","newVersion":"new version of the entity"}},"nextEpochStart()":{"returns":{"_0":"start of the next epoch"}},"onSlash(uint256,uint48)":{"details":"Only the slasher can call this function.","params":{"amount":"amount to slash","captureTimestamp":"time point when the stake was captured"},"returns":{"slashedAmount":"real amount of the collateral slashed"}},"owner()":{"details":"Returns the address of the current owner."},"previousEpochStart()":{"details":"Reverts if the current epoch is 0.","returns":{"_0":"start of the previous epoch"}},"redeem(address,uint256)":{"params":{"claimer":"account that needs to claim the withdrawal","shares":"amount of the active shares to redeem"},"returns":{"mintedShares":"amount of the epoch withdrawal shares minted","withdrawnAssets":"amount of the collateral withdrawn"}},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner."},"renounceRole(bytes32,address)":{"details":"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `callerConfirmation`. May emit a {RoleRevoked} event."},"revokeRole(bytes32,address)":{"details":"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event."},"setDepositLimit(uint256)":{"details":"Only a DEPOSIT_LIMIT_SET_ROLE holder can call this function.","params":{"limit":"deposit limit (maximum amount of the collateral that can be in the vault simultaneously)"}},"setDepositWhitelist(bool)":{"details":"Only a DEPOSIT_WHITELIST_SET_ROLE holder can call this function.","params":{"status":"if enabling deposit whitelist"}},"setDepositorWhitelistStatus(address,bool)":{"details":"Only a DEPOSITOR_WHITELIST_ROLE holder can call this function.","params":{"account":"account for which the whitelist status is set","status":"if whitelisting the account"}},"setIsDepositLimit(bool)":{"details":"Only a IS_DEPOSIT_LIMIT_SET_ROLE holder can call this function.","params":{"status":"if enabling deposit limit"}},"slashableBalanceOf(address)":{"params":{"account":"account to get the slashable collateral for"},"returns":{"_0":"total amount of the account's slashable collateral"}},"staticDelegateCall(address,bytes)":{"details":"It allows to use this contract's storage on-chain.","params":{"data":"data to make a delegatecall with","target":"address of the contract to make a delegatecall to"}},"supportsInterface(bytes4)":{"details":"See {IERC165-supportsInterface}."},"totalStake()":{"returns":{"_0":"total amount of the slashable collateral"}},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."},"version()":{"details":"Starts from 1.","returns":{"_0":"version of the entity"}},"withdraw(address,uint256)":{"params":{"amount":"amount of the collateral to withdraw","claimer":"account that needs to claim the withdrawal"},"returns":{"burnedShares":"amount of the active shares burned","mintedShares":"amount of the epoch withdrawal shares minted"}},"withdrawalsOf(uint256,address)":{"params":{"account":"account to get the withdrawals for","epoch":"epoch to get the withdrawals for the account at"},"returns":{"_0":"withdrawals for the account at the epoch"}}},"version":1},"userdoc":{"kind":"user","methods":{"DELEGATOR_FACTORY()":{"notice":"Get the delegator factory's address."},"DEPOSITOR_WHITELIST_ROLE()":{"notice":"Get a depositor whitelist status setter's role."},"DEPOSIT_LIMIT_SET_ROLE()":{"notice":"Get a deposit limit setter's role."},"DEPOSIT_WHITELIST_SET_ROLE()":{"notice":"Get a deposit whitelist enabler/disabler's role."},"FACTORY()":{"notice":"Get the factory's address."},"IS_DEPOSIT_LIMIT_SET_ROLE()":{"notice":"Get a deposit limit enabler/disabler's role."},"SLASHER_FACTORY()":{"notice":"Get the slasher factory's address."},"activeBalanceOf(address)":{"notice":"Get an active balance for a particular account."},"activeBalanceOfAt(address,uint48,bytes)":{"notice":"Get an active balance for a particular account at a given timestamp using hints."},"activeShares()":{"notice":"Get a total number of active shares in the vault."},"activeSharesAt(uint48,bytes)":{"notice":"Get a total number of active shares in the vault at a given timestamp using a hint."},"activeSharesOf(address)":{"notice":"Get a number of active shares for a particular account."},"activeSharesOfAt(address,uint48,bytes)":{"notice":"Get a total number of active shares for a particular account at a given timestamp using a hint."},"activeStake()":{"notice":"Get a total amount of active stake in the vault."},"activeStakeAt(uint48,bytes)":{"notice":"Get a total amount of active stake in the vault at a given timestamp using a hint."},"burner()":{"notice":"Get a burner to issue debt to (e.g., 0xdEaD or some unwrapper contract)."},"claim(address,uint256)":{"notice":"Claim collateral from the vault."},"claimBatch(address,uint256[])":{"notice":"Claim collateral from the vault for multiple epochs."},"collateral()":{"notice":"Get a vault collateral."},"currentEpoch()":{"notice":"Get a current vault epoch."},"currentEpochStart()":{"notice":"Get a start of the current vault epoch."},"delegator()":{"notice":"Get a delegator (it delegates the vault's stake to networks and operators)."},"deposit(address,uint256)":{"notice":"Deposit collateral into the vault."},"depositLimit()":{"notice":"Get a deposit limit (maximum amount of the active stake that can be in the vault simultaneously)."},"depositWhitelist()":{"notice":"Get if the deposit whitelist is enabled."},"epochAt(uint48)":{"notice":"Get an epoch at a given timestamp."},"epochDuration()":{"notice":"Get a duration of the vault epoch."},"epochDurationInit()":{"notice":"Get a time point of the epoch duration set."},"initialize(uint64,address,bytes)":{"notice":"Initialize this entity contract by using a given data and setting a particular version and owner."},"isDelegatorInitialized()":{"notice":"Get if the delegator is initialized."},"isDepositLimit()":{"notice":"Get if the deposit limit is set."},"isDepositorWhitelisted(address)":{"notice":"Get if a given account is whitelisted as a depositor."},"isInitialized()":{"notice":"Check if the vault is fully initialized (a delegator and a slasher are set)."},"isSlasherInitialized()":{"notice":"Get if the slasher is initialized."},"isWithdrawalsClaimed(uint256,address)":{"notice":"Get if the withdrawals are claimed for a particular account at a given epoch."},"migrate(uint64,bytes)":{"notice":"Migrate this entity to a particular newer version using a given data."},"nextEpochStart()":{"notice":"Get a start of the next vault epoch."},"onSlash(uint256,uint48)":{"notice":"Slash callback for burning collateral."},"previousEpochStart()":{"notice":"Get a start of the previous vault epoch."},"redeem(address,uint256)":{"notice":"Redeem collateral from the vault (it will be claimable after the next epoch)."},"setDepositLimit(uint256)":{"notice":"Set a deposit limit."},"setDepositWhitelist(bool)":{"notice":"Enable/disable deposit whitelist."},"setDepositorWhitelistStatus(address,bool)":{"notice":"Set a depositor whitelist status."},"setIsDepositLimit(bool)":{"notice":"Enable/disable deposit limit."},"slashableBalanceOf(address)":{"notice":"Get a total amount of the collateral that can be slashed for a given account."},"slasher()":{"notice":"Get a slasher (it provides networks a slashing mechanism)."},"staticDelegateCall(address,bytes)":{"notice":"Make a delegatecall from this contract to a given target contract with a particular data (always reverts with a return data)."},"totalStake()":{"notice":"Get a total amount of the collateral that can be slashed."},"version()":{"notice":"Get the entity's version."},"withdraw(address,uint256)":{"notice":"Withdraw collateral from the vault (it will be claimable after the next epoch)."},"withdrawalShares(uint256)":{"notice":"Get a total number of withdrawal shares at a given epoch."},"withdrawalSharesOf(uint256,address)":{"notice":"Get a number of withdrawal shares for a particular account at a given epoch (zero if claimed)."},"withdrawals(uint256)":{"notice":"Get a total amount of the withdrawals at a given epoch."},"withdrawalsOf(uint256,address)":{"notice":"Get withdrawals for a particular account at a given epoch (zero if claimed)."}},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/contracts/vault/Vault.sol":"Vault"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol":{"keccak256":"0x6662ec4e5cefca03eeadd073e9469df8d2944bb2ee8ec8f7622c2c46aab5f225","urls":["bzz-raw://4d8544c6f8daa4d1bc215c6a72fe0acdb748664a105b0e5efc19295667521d45","dweb:/ipfs/QmdGWqdnXT8S3RgCR6aV8XHZrsybieMQLLnug1NtpSjEXN"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol":{"keccak256":"0xc163fcf9bb10138631a9ba5564df1fa25db9adff73bd9ee868a8ae1858fe093a","urls":["bzz-raw://9706d43a0124053d9880f6e31a59f31bc0a6a3dc1acd66ce0a16e1111658c5f6","dweb:/ipfs/QmUFmfowzkRwGtDu36cXV9SPTBHJ3n7dG9xQiK5B28jTf2"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b","urls":["bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609","dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol":{"keccak256":"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397","urls":["bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9","dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardUpgradeable.sol":{"keccak256":"0xb44e086e941292cdc7f440de51478493894ef0b1aeccb0c4047445919f667f74","urls":["bzz-raw://942dad22fbdc1669f025540ba63aa3ccfad5f8458fc5d4525b31ebf272e7af45","dweb:/ipfs/Qmdo4X2M82aM3AMoW2kf2jhYkSCyC4T1pHNd6obdsDFnAB"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol":{"keccak256":"0xdaba3f7c42c55b2896353f32bd27d4d5f8bae741b3b05d4c53f67abc4dc47ce8","urls":["bzz-raw://1fa2e61141c602510bcd2cd936ed9561922ac8772a9b9c9a9db091a74e354a45","dweb:/ipfs/QmcHQDDoEBwJmwUbzoVkytvJsBx3KVHYFFnDkvRGWh9Wmh"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol":{"keccak256":"0xb6b36edd6a2999fd243ff226d6cbf84bd71af2432bbd0dfe19392996a1d9cb41","urls":["bzz-raw://1fd2f35495652e57e3f99bc6c510bc5f7dd398a176ea2e72d8ed730aebc6ca26","dweb:/ipfs/QmTQV6X4gkikTib49cho5iDX3JvSQbdsoEChoDwrk3CbbH"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70","urls":["bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c","dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol":{"keccak256":"0x6008dabfe393240d73d7dd7688033f72740d570aa422254d29a7dce8568f3aff","urls":["bzz-raw://f5196ec75139918c6c7bb4251b36395e668f1fa6d206beba7e7520e74913940d","dweb:/ipfs/QmSyqjksXxmm2mCG6qRd1yuwLykypkSVBbnBnGqJRcuJMi"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0x37bb49513c49c87c4642a891b13b63571bc87013dde806617aa1efb54605f386","urls":["bzz-raw://b3036b3a83b7c48f96641f2a9002b9f2dcb6a5958dd670894ada21ae8229b3d0","dweb:/ipfs/QmUNfSBdoVtjhETaUJCYcaC7pTMgbhht926tJ2uXJbiVd3"],"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/introspection/IERC165.sol":{"keccak256":"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b","urls":["bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df","dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d","urls":["bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875","dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol":{"keccak256":"0xe19a4d5f31d2861e7344e8e535e2feafb913d806d3e2b5fe7782741a2a7094fe","urls":["bzz-raw://4aed79c0fa6f0546ed02f2f683e8f77f0fd2ed7eb34d8bbf3d373c9a6d95b13c","dweb:/ipfs/QmWqVz6UAVqmnWU5pqYPt1o6iDEZyPaBraAA3rKfTTSfYj"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/Checkpoints.sol":{"keccak256":"0xbdc5e074d7dd6678f67e92b1a51a20226801a407b0e1af3da367c5d1ff4519ad","urls":["bzz-raw://a36cca6b22fff3db16fc789ff6c60eea71d4b156065d4d0c83a0bc5e91a77a8b","dweb:/ipfs/QmYN3exd5AemxjBrN8XMB1p5LbbE16uC3sjbYjwi8AjcGR"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/types/Time.sol":{"keccak256":"0xc7755af115020049e4140f224f9ee88d7e1799ffb0646f37bf0df24bf6213f58","urls":["bzz-raw://7f09bf94d5274334ec021f61a04659db303f31e60460e14b709c9bf187740111","dweb:/ipfs/QmNvgomZYUwFAt4cZbPWAiTeSZQreGehY9BK5xyVJsUttb"],"license":"MIT"},"src/contracts/common/MigratableEntity.sol":{"keccak256":"0x2d736f4dacd5d7e7697503bc426c78b8250fe1694ca157965ec178da6807de58","urls":["bzz-raw://f1237acf96b4b9f9b69156e068eddd726a6e15bd8e87a18dc999cd4ba4da069c","dweb:/ipfs/QmS6M8fiFFSeuJ4ZKKq1z8W7w4ybeHQSy5TLASGoc1LVic"],"license":"BUSL-1.1"},"src/contracts/common/StaticDelegateCallable.sol":{"keccak256":"0x350029aa8955eacaffffaeb58babc5c98e80ebc5c5db388ed17ee6465f4a9d90","urls":["bzz-raw://eb392a8ee9050e0af606897df63e3404e3829e8b688b580663892f9664195764","dweb:/ipfs/QmaXC8jqV8UrrAFkzXTEv2fJF56sy33HhLxAzaRZmUxuXD"],"license":"BUSL-1.1"},"src/contracts/libraries/Checkpoints.sol":{"keccak256":"0xba90097c8bfe0a975499428b5f8ac5569483c7d92ccc28c12d70de416aae040c","urls":["bzz-raw://12f5d93ca94cd06d3147db68993165a58e17903ed53682560de61f3085ad4609","dweb:/ipfs/QmePiuAqvXprMLmFZkGZeGjvGPAvsEDHfCDv7BoQhXu9xE"],"license":"MIT"},"src/contracts/libraries/ERC4626Math.sol":{"keccak256":"0x8441160513c1cbeb1c3b9ee077bcc7e7ce20006b52a77c8dd39ff0ef89699939","urls":["bzz-raw://943f8cc3e26ddf649f465f40c909819f5c864717c4baa339e9e403b9374a4653","dweb:/ipfs/QmXPxi1sUDsrGprZdUgCzoPEosaZMv9ZhygWQ1vAi1phAB"],"license":"MIT"},"src/contracts/vault/Vault.sol":{"keccak256":"0x2ceff6ed3298c4cad144c99fcc79b51cb9397d6ebef00285b915848b476f8c2e","urls":["bzz-raw://11f2fb3581854f3ab6e82e8d4935d9eb510c903a13c3f022346c2956a58f5307","dweb:/ipfs/QmdUnoXoyYoG9SGWyQZCFyLDRUUX3eXyXetkRvw6jxqqBz"],"license":"BUSL-1.1"},"src/contracts/vault/VaultStorage.sol":{"keccak256":"0x57db25b127d77ea3472de53e3a4af3354399655b9268638b99ca5925fa364a56","urls":["bzz-raw://aa763d9a6ec508ae3abfb8228b72b9fd9525279e5135d4962e79ff059feb1173","dweb:/ipfs/QmcbDR6E9wyEpu6V2FkEC4hnWy47zXA9LSKJde6zSGd33Q"],"license":"BUSL-1.1"},"src/interfaces/common/IEntity.sol":{"keccak256":"0x8ef4b63d6da63489778ccd5f8d13ebdd527dd4b62730b2c616df5af7474d2d21","urls":["bzz-raw://5a8d69576a9219d85c50816a18ad53a4d53cfcb27ed38b8cccc808dc2734b71b","dweb:/ipfs/QmYVN3P4Q4REvBWJ97TbAcaxm3uyB2anV6NSGa6ZtSwcEv"],"license":"MIT"},"src/interfaces/common/IMigratableEntity.sol":{"keccak256":"0x8f5f2809f3afbe8ebfbb365dd7b57b4dd3b6f9943a6187eaf648d45895b8e3c4","urls":["bzz-raw://0ffe640537d539e7a4fde70d30d3e4c57f4ba9c2c25c450cea713aae38e8fd5c","dweb:/ipfs/QmSUTGzvdcn1R1KB7tLThMRtESsfPbeXDhhhKWGtntzBds"],"license":"MIT"},"src/interfaces/common/IRegistry.sol":{"keccak256":"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb","urls":["bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014","dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK"],"license":"MIT"},"src/interfaces/common/IStaticDelegateCallable.sol":{"keccak256":"0xa335d4e81b9071b7de66ef92b43ff20671d86516eb1be46fef29a3483cd3f5d5","urls":["bzz-raw://d464b9db863c14c05547d2b23352f2e9b7b784799cf09f6bbc4906a2a74e3516","dweb:/ipfs/QmUVWzFvJz7eEbDQKiFTTzwi7TEbjcs3VmwdM4kuptAKvi"],"license":"MIT"},"src/interfaces/delegator/IBaseDelegator.sol":{"keccak256":"0x96bb312f032e17accce3f8f80936d99468029d6b37c9ca74acdb4b026a0148ee","urls":["bzz-raw://2a66dcb5b7d1a6ef6a363431ea98ebd78bc4fdd3d7a134d9b542dc66e7d025c2","dweb:/ipfs/QmRhTPLd2ZAyRHmJUFUcWKs9b3if49QY17LYZuRqWmghw8"],"license":"MIT"},"src/interfaces/slasher/IBaseSlasher.sol":{"keccak256":"0x7c82528b445659c313ab77335c407b0b6efe5e79027187bb287f7bc74202b404","urls":["bzz-raw://0274c90aa5df1aa6bb470a6aab53992fb14fd7e5472c9430416505b29647d9cf","dweb:/ipfs/QmckbmJLDetPemVzCnnGcKYWAZV2BRFXGDsjiaec8jkHxx"],"license":"MIT"},"src/interfaces/vault/IVault.sol":{"keccak256":"0xffee01d383cd4e1a5530c614bf4360c1ef070c288abec9da1eb531b51bc07235","urls":["bzz-raw://04f0046cac285d8ec44ebbb1f79dc94fab4495767190cad8364fbc1fafaadfb9","dweb:/ipfs/QmUawAunwzXfCyShWfhKeThAgKtqe51hmrxvrXvM772M2R"],"license":"MIT"},"src/interfaces/vault/IVaultStorage.sol":{"keccak256":"0x592626f13754194f83047135de19229c49390bd59e34659b1bb38be71d973a22","urls":["bzz-raw://06a6a9dfddd05e580b32bebe2cff4f63ba26a653180676d58225dd30d9c89d3e","dweb:/ipfs/QmdgzBeY6Sxo8mGtyBxtv1tM1c2kU6J6zjeRd7vuXm4DU6"],"license":"MIT"}},"version":1},"id":100} \ No newline at end of file diff --git a/out/VaultConfigurator.sol/VaultConfigurator.json b/out/VaultConfigurator.sol/VaultConfigurator.json index e6007148..e331423e 100644 --- a/out/VaultConfigurator.sol/VaultConfigurator.json +++ b/out/VaultConfigurator.sol/VaultConfigurator.json @@ -1 +1 @@ -{"abi":[{"type":"constructor","inputs":[{"name":"vaultFactory","type":"address","internalType":"address"},{"name":"delegatorFactory","type":"address","internalType":"address"},{"name":"slasherFactory","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"DELEGATOR_FACTORY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"SLASHER_FACTORY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"VAULT_FACTORY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"create","inputs":[{"name":"params","type":"tuple","internalType":"struct IVaultConfigurator.InitParams","components":[{"name":"version","type":"uint64","internalType":"uint64"},{"name":"owner","type":"address","internalType":"address"},{"name":"vaultParams","type":"bytes","internalType":"bytes"},{"name":"delegatorIndex","type":"uint64","internalType":"uint64"},{"name":"delegatorParams","type":"bytes","internalType":"bytes"},{"name":"withSlasher","type":"bool","internalType":"bool"},{"name":"slasherIndex","type":"uint64","internalType":"uint64"},{"name":"slasherParams","type":"bytes","internalType":"bytes"}]}],"outputs":[{"name":"vault","type":"address","internalType":"address"},{"name":"delegator","type":"address","internalType":"address"},{"name":"slasher","type":"address","internalType":"address"}],"stateMutability":"nonpayable"}],"bytecode":{"object":"0x60e0346100a957601f61078338819003918201601f19168301916001600160401b038311848410176100ad578084926060946040528339810103126100a957610047816100c1565b906100606040610059602084016100c1565b92016100c1565b9160805260a05260c0526040516106ad90816100d682396080518181816101aa015261050a015260a05181818161023301526104c9015260c05181818161038201526104860152f35b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b51906001600160a01b03821682036100a95756fe60806040818152600480361015610014575f80fd5b5f925f3560e01c908163103f2907146104f8575080636da3e06d146104b557806387df0788146104725763c48927e41461004c575f80fd5b346103385760031991602036840181136103385782359067ffffffffffffffff9485831161033857610100809184360301126103385783519081018181108782111761045f57845261009f838601610583565b81526001600160a01b039560248401358781168103610338578383019081526044850135828111610338576100d990883691880101610598565b918684019283526100ec60648701610583565b956060850196875260848101358281116103385761010f908a3691840101610598565b966080860197885260a48201359081151582036103385760a0870191825261013960c48401610583565b9260c0880193845260e481013596858811610338578d8d975f6101648f9b958b8f9736920101610598565b9960e08d019a8b526101a6848b849f511694511695519c519c8d9687958694633ac0491160e01b8652850152602484015260606044840152606483019061060d565b03927f0000000000000000000000000000000000000000000000000000000000000000165af19586156104555791888d8c95938e97955f9a61042e575b50908561022f9251169c515f8b6102008a51938492888401610631565b0398610214601f199a8b8101855284610561565b519e8f94859384926319a211df60e31b9d8e85528401610656565b03927f0000000000000000000000000000000000000000000000000000000000000000165af1998a1561042457908d979695949392915f9b6103f9575b50908995949392915161033c575b5050505050501695863b156103385784516383cd9cc360e01b8152938116868501819052935f81602481838c5af1801561032e5761031b575b50863b1561031757845163555e124b60e11b815291169481018590528681602481838a5af1801561030d576102f5575b50606095508251948552840152820152f35b6102ff8791610539565b61030957856102e3565b8580fd5b84513d89823e3d90fd5b8780fd5b610326919850610539565b5f965f6102b3565b86513d5f823e3d90fd5b5f80fd5b61036893949596985061035c9750511693518a5196879189888401610631565b03908101865285610561565b61037c8851948593849384528b8401610656565b03815f8b7f0000000000000000000000000000000000000000000000000000000000000000165af19081156103ef579087915f916103c2575b5091835f8080808061027a565b6103e29150843d86116103e8575b6103da8183610561565b8101906105ee565b5f6103b5565b503d6103d0565b85513d5f823e3d90fd5b8a9695949392919b5061041890873d89116103e8576103da8183610561565b9a90919293949561026c565b8b513d5f823e3d90fd5b61022f92919a5061044c8791853d87116103e8576103da8183610561565b9a9192506101e3565b8a513d5f823e3d90fd5b604186634e487b7160e01b5f525260245ffd5b8234610338575f36600319011261033857517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b8234610338575f36600319011261033857517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b34610338575f366003190112610338577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b67ffffffffffffffff811161054d57604052565b634e487b7160e01b5f52604160045260245ffd5b90601f8019910116810190811067ffffffffffffffff82111761054d57604052565b359067ffffffffffffffff8216820361033857565b81601f820112156103385780359067ffffffffffffffff821161054d57604051926105cd601f8401601f191660200185610561565b8284526020838301011161033857815f926020809301838601378301015290565b9081602091031261033857516001600160a01b03811681036103385790565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b6001600160a01b0390911681526040602082018190526106539291019061060d565b90565b60409067ffffffffffffffff6106539493168152816020820152019061060d56fea264697066735822122017a06bce8ee6c8b14165edcd334e877656eb476fe3a8fdbc511129d9bf4fbb8664736f6c63430008190033","sourceMap":"392:1286:67:-:0;;;;;;;;;;;;;-1:-1:-1;;392:1286:67;;;;-1:-1:-1;;;;;392:1286:67;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;:::i;:::-;844:28;;;882:36;;928:32;;392:1286;;;;;;;;844:28;392:1286;;;;;;;;;;882:36;392:1286;;;;;;;;;;928:32;392:1286;;;;;;;;;;;;-1:-1:-1;392:1286:67;;;;;;-1:-1:-1;392:1286:67;;;;;-1:-1:-1;392:1286:67;;;;-1:-1:-1;;;;;392:1286:67;;;;;;:::o","linkReferences":{}},"deployedBytecode":{"object":"0x60806040818152600480361015610014575f80fd5b5f925f3560e01c908163103f2907146104f8575080636da3e06d146104b557806387df0788146104725763c48927e41461004c575f80fd5b346103385760031991602036840181136103385782359067ffffffffffffffff9485831161033857610100809184360301126103385783519081018181108782111761045f57845261009f838601610583565b81526001600160a01b039560248401358781168103610338578383019081526044850135828111610338576100d990883691880101610598565b918684019283526100ec60648701610583565b956060850196875260848101358281116103385761010f908a3691840101610598565b966080860197885260a48201359081151582036103385760a0870191825261013960c48401610583565b9260c0880193845260e481013596858811610338578d8d975f6101648f9b958b8f9736920101610598565b9960e08d019a8b526101a6848b849f511694511695519c519c8d9687958694633ac0491160e01b8652850152602484015260606044840152606483019061060d565b03927f0000000000000000000000000000000000000000000000000000000000000000165af19586156104555791888d8c95938e97955f9a61042e575b50908561022f9251169c515f8b6102008a51938492888401610631565b0398610214601f199a8b8101855284610561565b519e8f94859384926319a211df60e31b9d8e85528401610656565b03927f0000000000000000000000000000000000000000000000000000000000000000165af1998a1561042457908d979695949392915f9b6103f9575b50908995949392915161033c575b5050505050501695863b156103385784516383cd9cc360e01b8152938116868501819052935f81602481838c5af1801561032e5761031b575b50863b1561031757845163555e124b60e11b815291169481018590528681602481838a5af1801561030d576102f5575b50606095508251948552840152820152f35b6102ff8791610539565b61030957856102e3565b8580fd5b84513d89823e3d90fd5b8780fd5b610326919850610539565b5f965f6102b3565b86513d5f823e3d90fd5b5f80fd5b61036893949596985061035c9750511693518a5196879189888401610631565b03908101865285610561565b61037c8851948593849384528b8401610656565b03815f8b7f0000000000000000000000000000000000000000000000000000000000000000165af19081156103ef579087915f916103c2575b5091835f8080808061027a565b6103e29150843d86116103e8575b6103da8183610561565b8101906105ee565b5f6103b5565b503d6103d0565b85513d5f823e3d90fd5b8a9695949392919b5061041890873d89116103e8576103da8183610561565b9a90919293949561026c565b8b513d5f823e3d90fd5b61022f92919a5061044c8791853d87116103e8576103da8183610561565b9a9192506101e3565b8a513d5f823e3d90fd5b604186634e487b7160e01b5f525260245ffd5b8234610338575f36600319011261033857517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b8234610338575f36600319011261033857517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b34610338575f366003190112610338577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b67ffffffffffffffff811161054d57604052565b634e487b7160e01b5f52604160045260245ffd5b90601f8019910116810190811067ffffffffffffffff82111761054d57604052565b359067ffffffffffffffff8216820361033857565b81601f820112156103385780359067ffffffffffffffff821161054d57604051926105cd601f8401601f191660200185610561565b8284526020838301011161033857815f926020809301838601378301015290565b9081602091031261033857516001600160a01b03811681036103385790565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b6001600160a01b0390911681526040602082018190526106539291019061060d565b90565b60409067ffffffffffffffff6106539493168152816020820152019061060d56fea264697066735822122017a06bce8ee6c8b14165edcd334e877656eb476fe3a8fdbc511129d9bf4fbb8664736f6c63430008190033","sourceMap":"392:1286:67:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;392:1286:67;;;;;;-1:-1:-1;392:1286:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;392:1286:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;1133:15;;;392:1286;;;;;;1233:18;;392:1286;;;;;;;;;;;;1168:84;;;;392:1286;;;;;;;;;;;;;;;:::i;:::-;1168:84;1181:13;;392:1286;1168:84;;;;;;;;;;;;;;;;392:1286;1168:84;;;392:1286;;;;1287:108;392:1286;;;1371:22;;392:1286;;1353:41;392:1286;;1353:41;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;392:1286;;;;;;;;;;;1287:108;;;;;;;:::i;:::-;;1304:17;;392:1286;1287:108;;;;;;;;;;;;;;;;392:1286;1287:108;;;392:1286;;;;;;;;;;1406:175;;392:1286;;;;;;;;1591:36;;;;;;392:1286;;-1:-1:-1;;;1591:36:67;;392:1286;;;1591:36;;;392:1286;;;;;;;;;1591:36;;;;;;;;;392:1286;1637:32;;;;;;392:1286;;-1:-1:-1;;;1637:32:67;;392:1286;;1637:32;;;392:1286;;;1637:32;392:1286;;;1637:32;;;;;;;;;;392:1286;;;;;;;;;;;;;;;;;1637:32;;;;;:::i;:::-;392:1286;;1637:32;;;392:1286;;;;1637:32;392:1286;;;;;;;;;1637:32;392:1286;;;1591:36;;;;;;:::i;:::-;392:1286;1591:36;;;;;392:1286;;;;;;;;;1591:36;392:1286;;;1406:175;1530:39;392:1286;;;;;;1530:39;392:1286;;;;1548:20;;392:1286;;1530:39;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;1470:100;392:1286;;1470:100;;;;;;;;;;;:::i;:::-;;1485:15;392:1286;1485:15;;392:1286;1470:100;;;;;;;;;;392:1286;1470:100;;;1406:175;1444:126;1406:175;;;;;;;;;1470:100;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;392:1286;;;;;;;;;1287:108;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;392:1286;;;;;;;;;1168:84;1287:108;1168:84;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;392:1286;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;392:1286:67;;;;;703:40;-1:-1:-1;;;;;392:1286:67;;;;;;;;;;;;;-1:-1:-1;;392:1286:67;;;;;600:42;-1:-1:-1;;;;;392:1286:67;;;;;;;;;;;;-1:-1:-1;;392:1286:67;;;;501:38;-1:-1:-1;;;;;392:1286:67;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;1353:41;;392:1286;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;1353:41;392:1286;;-1:-1:-1;;392:1286:67;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;392:1286:67;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;-1:-1:-1;;;;;392:1286:67;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;392:1286:67;;;;;;;;-1:-1:-1;;392:1286:67;;;;:::o;:::-;-1:-1:-1;;;;;392:1286:67;;;;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;;;;;;;;;;;;;;:::i","linkReferences":{},"immutableReferences":{"57668":[{"start":426,"length":32},{"start":1290,"length":32}],"57671":[{"start":563,"length":32},{"start":1225,"length":32}],"57674":[{"start":898,"length":32},{"start":1158,"length":32}]}},"methodIdentifiers":{"DELEGATOR_FACTORY()":"6da3e06d","SLASHER_FACTORY()":"87df0788","VAULT_FACTORY()":"103f2907","create((uint64,address,bytes,uint64,bytes,bool,uint64,bytes))":"c48927e4"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"vaultFactory\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"delegatorFactory\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"slasherFactory\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"DELEGATOR_FACTORY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"SLASHER_FACTORY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"VAULT_FACTORY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"vaultParams\",\"type\":\"bytes\"},{\"internalType\":\"uint64\",\"name\":\"delegatorIndex\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"delegatorParams\",\"type\":\"bytes\"},{\"internalType\":\"bool\",\"name\":\"withSlasher\",\"type\":\"bool\"},{\"internalType\":\"uint64\",\"name\":\"slasherIndex\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"slasherParams\",\"type\":\"bytes\"}],\"internalType\":\"struct IVaultConfigurator.InitParams\",\"name\":\"params\",\"type\":\"tuple\"}],\"name\":\"create\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"vault\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"slasher\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"create((uint64,address,bytes,uint64,bytes,bool,uint64,bytes))\":{\"params\":{\"params\":\"initial parameters needed for a vault with a delegator and a slasher deployment\"},\"returns\":{\"delegator\":\"address of the delegator\",\"slasher\":\"address of the slasher\",\"vault\":\"address of the vault\"}}},\"stateVariables\":{\"DELEGATOR_FACTORY\":{\"return\":\"address of the delegator factory\",\"returns\":{\"_0\":\"address of the delegator factory\"}},\"SLASHER_FACTORY\":{\"return\":\"address of the slasher factory\",\"returns\":{\"_0\":\"address of the slasher factory\"}},\"VAULT_FACTORY\":{\"return\":\"address of the vault factory\",\"returns\":{\"_0\":\"address of the vault factory\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"DELEGATOR_FACTORY()\":{\"notice\":\"Get the delegator factory's address.\"},\"SLASHER_FACTORY()\":{\"notice\":\"Get the slasher factory's address.\"},\"VAULT_FACTORY()\":{\"notice\":\"Get the vault factory's address.\"},\"create((uint64,address,bytes,uint64,bytes,bool,uint64,bytes))\":{\"notice\":\"Create a new vault with a delegator and a slasher.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/contracts/VaultConfigurator.sol\":\"VaultConfigurator\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol\":{\"keccak256\":\"0x6662ec4e5cefca03eeadd073e9469df8d2944bb2ee8ec8f7622c2c46aab5f225\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4d8544c6f8daa4d1bc215c6a72fe0acdb748664a105b0e5efc19295667521d45\",\"dweb:/ipfs/QmdGWqdnXT8S3RgCR6aV8XHZrsybieMQLLnug1NtpSjEXN\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0xc163fcf9bb10138631a9ba5564df1fa25db9adff73bd9ee868a8ae1858fe093a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9706d43a0124053d9880f6e31a59f31bc0a6a3dc1acd66ce0a16e1111658c5f6\",\"dweb:/ipfs/QmUFmfowzkRwGtDu36cXV9SPTBHJ3n7dG9xQiK5B28jTf2\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609\",\"dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9\",\"dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardUpgradeable.sol\":{\"keccak256\":\"0xb44e086e941292cdc7f440de51478493894ef0b1aeccb0c4047445919f667f74\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://942dad22fbdc1669f025540ba63aa3ccfad5f8458fc5d4525b31ebf272e7af45\",\"dweb:/ipfs/Qmdo4X2M82aM3AMoW2kf2jhYkSCyC4T1pHNd6obdsDFnAB\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol\":{\"keccak256\":\"0xdaba3f7c42c55b2896353f32bd27d4d5f8bae741b3b05d4c53f67abc4dc47ce8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1fa2e61141c602510bcd2cd936ed9561922ac8772a9b9c9a9db091a74e354a45\",\"dweb:/ipfs/QmcHQDDoEBwJmwUbzoVkytvJsBx3KVHYFFnDkvRGWh9Wmh\"]},\"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0xb6b36edd6a2999fd243ff226d6cbf84bd71af2432bbd0dfe19392996a1d9cb41\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1fd2f35495652e57e3f99bc6c510bc5f7dd398a176ea2e72d8ed730aebc6ca26\",\"dweb:/ipfs/QmTQV6X4gkikTib49cho5iDX3JvSQbdsoEChoDwrk3CbbH\"]},\"lib/openzeppelin-contracts/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"lib/openzeppelin-contracts/contracts/proxy/Clones.sol\":{\"keccak256\":\"0xd18408af8a91bedb3d56343eeb9b30eb852e6dea93a5e2d5c6db9ca4cb905155\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://061475b7302a732dc598907790f407417551c2b13e89daa57b3698489ef5484b\",\"dweb:/ipfs/QmdX5qmk3VSniSErFuD4aVawQxUi2MuUbP7spPcHddPfcX\"]},\"lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Proxy.sol\":{\"keccak256\":\"0xbfb6695731de677140fbf76c772ab08c4233a122fb51ac28ac120fc49bbbc4ec\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://68f8fded7cc318efa15874b7c6a983fe17a4a955d72d240353a9a4ca1e1b824c\",\"dweb:/ipfs/QmdcmBL9Qo4Tk3Dby4wFYabGyot9JNeLPxpSXZUgUm92BV\"]},\"lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol\":{\"keccak256\":\"0x06a78f9b3ee3e6d0eb4e4cd635ba49960bea34cac1db8c0a27c75f2319f1fd65\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://547d21aa17f4f3f1a1a7edf7167beff8dd9496a0348d5588f15cc8a4b29d052a\",\"dweb:/ipfs/QmT16JtRQSWNpLo9W23jr6CzaMuTAcQcjJJcdRd8HLJ6cE\"]},\"lib/openzeppelin-contracts/contracts/proxy/Proxy.sol\":{\"keccak256\":\"0xc3f2ec76a3de8ed7a7007c46166f5550c72c7709e3fc7e8bb3111a7191cdedbd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e73efb4c2ca655882dc237c6b4f234a9bd36d97159d8fcaa837eb01171f726ac\",\"dweb:/ipfs/QmTNnnv7Gu5fs5G1ZMh7Fexp8N4XUs3XrNAngjcxgiss3e\"]},\"lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0xc59a78b07b44b2cf2e8ab4175fca91e8eca1eee2df7357b8d2a8833e5ea1f64c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5aa4f07e65444784c29cd7bfcc2341b34381e4e5b5da9f0c5bd00d7f430e66fa\",\"dweb:/ipfs/QmWRMh4Q9DpaU9GvsiXmDdoNYMyyece9if7hnfLz7uqzWM\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c\",\"dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0x6008dabfe393240d73d7dd7688033f72740d570aa422254d29a7dce8568f3aff\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f5196ec75139918c6c7bb4251b36395e668f1fa6d206beba7e7520e74913940d\",\"dweb:/ipfs/QmSyqjksXxmm2mCG6qRd1yuwLykypkSVBbnBnGqJRcuJMi\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x37bb49513c49c87c4642a891b13b63571bc87013dde806617aa1efb54605f386\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b3036b3a83b7c48f96641f2a9002b9f2dcb6a5958dd670894ada21ae8229b3d0\",\"dweb:/ipfs/QmUNfSBdoVtjhETaUJCYcaC7pTMgbhht926tJ2uXJbiVd3\"]},\"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\"]},\"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0x32ba59b4b7299237c8ba56319110989d7978a039faf754793064e967e5894418\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1ae50c8b562427df610cc4540c9bf104acca7ef8e2dcae567ae7e52272281e9c\",\"dweb:/ipfs/QmTHiadFCSJUPpRjNegc5SahmeU8bAoY8i9Aq6tVscbcKR\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875\",\"dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0xe19a4d5f31d2861e7344e8e535e2feafb913d806d3e2b5fe7782741a2a7094fe\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4aed79c0fa6f0546ed02f2f683e8f77f0fd2ed7eb34d8bbf3d373c9a6d95b13c\",\"dweb:/ipfs/QmWqVz6UAVqmnWU5pqYPt1o6iDEZyPaBraAA3rKfTTSfYj\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/Checkpoints.sol\":{\"keccak256\":\"0xbdc5e074d7dd6678f67e92b1a51a20226801a407b0e1af3da367c5d1ff4519ad\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a36cca6b22fff3db16fc789ff6c60eea71d4b156065d4d0c83a0bc5e91a77a8b\",\"dweb:/ipfs/QmYN3exd5AemxjBrN8XMB1p5LbbE16uC3sjbYjwi8AjcGR\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0x86c1470cbfd878491e5de030072b647352d36bd27122cffb928970b1945282aa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ad85dd393ee0a1917c57046abc5155f51f77844b2c6a42c05c1b8dd26d6ff3c1\",\"dweb:/ipfs/QmNqYc8To2NdnpP6E1tGz7t6A7beuENde5yovwov5pW1fA\"]},\"lib/openzeppelin-contracts/contracts/utils/types/Time.sol\":{\"keccak256\":\"0xc7755af115020049e4140f224f9ee88d7e1799ffb0646f37bf0df24bf6213f58\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7f09bf94d5274334ec021f61a04659db303f31e60460e14b709c9bf187740111\",\"dweb:/ipfs/QmNvgomZYUwFAt4cZbPWAiTeSZQreGehY9BK5xyVJsUttb\"]},\"src/contracts/DelegatorFactory.sol\":{\"keccak256\":\"0x3c3fb62c441302f4f75d94703779f5c4bb755c06f310b4c923dbf24d6e0adda9\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://597fa8be7179d8a555bf942c1dea0504273a1d34f6ac4c206fc2e816da143e68\",\"dweb:/ipfs/Qmf54DKNYXC7fTMcAFABw68RC6ZFenVgyAPGhbPTf6s5TR\"]},\"src/contracts/SlasherFactory.sol\":{\"keccak256\":\"0xbafc96e3d2511eb62942613645b4f5cbf6f603063a711b30e25940aaba08064c\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://489440f1181b1858e3b27a90ec6f514c0c287c602b4779676048213202165867\",\"dweb:/ipfs/QmRG7AQ9m9qHr8ofEvP1Ur8S379fFXTo9rmiWaAtZ9rsUc\"]},\"src/contracts/VaultConfigurator.sol\":{\"keccak256\":\"0x2484ee5cfac134e27cedeeef22d4111d7ecd4a4b62f02381f2c2b67c57ed7955\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://adce2d9b8a9fb670c0f3266d5407b752901921f1c9f9406c7db65d84e48e779a\",\"dweb:/ipfs/QmTbcKhdGfepqexFc8kziqPdfFC8SGZzFrVnEcJ5nKBiPz\"]},\"src/contracts/VaultFactory.sol\":{\"keccak256\":\"0xa9122dd11e5f21fa97a813e90f8c4905f0a4967b9611dd03437a31377cbdecb8\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://4c2feda1f9c0c7ddf65bccdc99494e4bfbb820fcddc3e4222e3b58ef821424a3\",\"dweb:/ipfs/Qmdmt4rH214jDmDsF9ELvJXVCt8abhk6poSmhJqqzLse3R\"]},\"src/contracts/common/Entity.sol\":{\"keccak256\":\"0x3d61a932995b8443381f3950542d388223a2c26dd5d29a3274dea3baa7388bd7\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://7cdf5f03ca72fd263fd32ff59c8d88ddca911ae83896a287d10772c1bbe9b138\",\"dweb:/ipfs/QmbP84r5BWT1Rn9AYTntWSf3xUMTTCohTZJFhbBhDXFoHa\"]},\"src/contracts/common/Factory.sol\":{\"keccak256\":\"0x41764643e6a2a3d80d694a3efee91f50a2fd084fb2bcd13566259443840e6369\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://fefc1e2a2189275388826f4f82ca421ca79c2866d3ef39dc2c7df46fe7cbf7c9\",\"dweb:/ipfs/QmSJ4VGmgpYUv5ni4ZYoSV4qMuZrk5DLjyB3Vv9NbFgeNZ\"]},\"src/contracts/common/MigratableEntity.sol\":{\"keccak256\":\"0x2d736f4dacd5d7e7697503bc426c78b8250fe1694ca157965ec178da6807de58\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://f1237acf96b4b9f9b69156e068eddd726a6e15bd8e87a18dc999cd4ba4da069c\",\"dweb:/ipfs/QmS6M8fiFFSeuJ4ZKKq1z8W7w4ybeHQSy5TLASGoc1LVic\"]},\"src/contracts/common/MigratableEntityProxy.sol\":{\"keccak256\":\"0x78ba27242276232ad10a45265e3c07f0a25722456f6abb3fb3f24a1c8e1b38d1\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://a19623df688e5085036b59fc934e35b72997f875d7ffda1cdc557c6ca468206d\",\"dweb:/ipfs/QmaQiT5uYZu5JmqhMjTDJnsq3nqaHbKrWAjrxKKLesdHV7\"]},\"src/contracts/common/MigratablesFactory.sol\":{\"keccak256\":\"0x5d1487c3456da4bd0bc2a131eeab97ab92484c923edefaebf190cc08d4080093\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://fec38d2e52e9c5148e95599c133fd6fe66d41296d6fc06e7329d2db199a1798f\",\"dweb:/ipfs/QmeiaydBXHHkJRUnpaZH1C6JQ7HPocTvQbUJBqKTvUeEYv\"]},\"src/contracts/common/Registry.sol\":{\"keccak256\":\"0x4a4004836d920953a8ec6e223de9a330f43acf7a5b93c6b8b3e4a95e0f129889\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://e8bdda207f3852c683a2b481602239a914f7e26bcd042ade618e263a43b67652\",\"dweb:/ipfs/Qmb8GZykJWxZcfwNp3SqhFizDFydFuV6LXgemV3vnWyLyu\"]},\"src/contracts/common/StaticDelegateCallable.sol\":{\"keccak256\":\"0x350029aa8955eacaffffaeb58babc5c98e80ebc5c5db388ed17ee6465f4a9d90\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://eb392a8ee9050e0af606897df63e3404e3829e8b688b580663892f9664195764\",\"dweb:/ipfs/QmaXC8jqV8UrrAFkzXTEv2fJF56sy33HhLxAzaRZmUxuXD\"]},\"src/contracts/libraries/Checkpoints.sol\":{\"keccak256\":\"0xba90097c8bfe0a975499428b5f8ac5569483c7d92ccc28c12d70de416aae040c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://12f5d93ca94cd06d3147db68993165a58e17903ed53682560de61f3085ad4609\",\"dweb:/ipfs/QmePiuAqvXprMLmFZkGZeGjvGPAvsEDHfCDv7BoQhXu9xE\"]},\"src/contracts/libraries/ERC4626Math.sol\":{\"keccak256\":\"0x8441160513c1cbeb1c3b9ee077bcc7e7ce20006b52a77c8dd39ff0ef89699939\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://943f8cc3e26ddf649f465f40c909819f5c864717c4baa339e9e403b9374a4653\",\"dweb:/ipfs/QmXPxi1sUDsrGprZdUgCzoPEosaZMv9ZhygWQ1vAi1phAB\"]},\"src/contracts/libraries/Subnetwork.sol\":{\"keccak256\":\"0xf5ef5506fd66082b3c2e7f3df37529f5a8efad32ac62e7c8914bd63219190bfe\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba031a54ee0d0e9a270c2b9e18437f5668cfeb659cfd5fe0677459d7fcac2a56\",\"dweb:/ipfs/QmReP3H7qQ78tAfgLnJKsNEQNCQfF1X1Get38Ffd4kzq32\"]},\"src/contracts/slasher/BaseSlasher.sol\":{\"keccak256\":\"0x190e5dce196a061bdad42468c52e9f5b0eb7810cd7d0c19f04d6a2e94984f1b6\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://07ca08d0cd43c2fe5d54a5577f6bdd522ced410f5d3a52e764deaa7ba26b5f06\",\"dweb:/ipfs/QmZe3PiMKBQKWcwodaLupragdqxPjgS4v1qMC7RXau8hDF\"]},\"src/contracts/vault/Vault.sol\":{\"keccak256\":\"0x2ceff6ed3298c4cad144c99fcc79b51cb9397d6ebef00285b915848b476f8c2e\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://11f2fb3581854f3ab6e82e8d4935d9eb510c903a13c3f022346c2956a58f5307\",\"dweb:/ipfs/QmdUnoXoyYoG9SGWyQZCFyLDRUUX3eXyXetkRvw6jxqqBz\"]},\"src/contracts/vault/VaultStorage.sol\":{\"keccak256\":\"0x57db25b127d77ea3472de53e3a4af3354399655b9268638b99ca5925fa364a56\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://aa763d9a6ec508ae3abfb8228b72b9fd9525279e5135d4962e79ff059feb1173\",\"dweb:/ipfs/QmcbDR6E9wyEpu6V2FkEC4hnWy47zXA9LSKJde6zSGd33Q\"]},\"src/interfaces/IDelegatorFactory.sol\":{\"keccak256\":\"0x7850453237ca93b301393506d2489a38830a60be0c29f39a4a1aee3508d836e6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8f418702b883c90e046af92d5654a25849baf79b61c11401ad603b861fed7b80\",\"dweb:/ipfs/Qmdju1XFJXx3uJidzoS7srcoSnzT8jUoPAmGEdbceYgB7j\"]},\"src/interfaces/ISlasherFactory.sol\":{\"keccak256\":\"0x30018af5c2719d9b5cfacbfc0277017896815b3fcc4dfbea78813e6ae81c1e56\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5e028fbed23ab973d8d9eb2be4e53a528dd01248e3233f56ab0f8ac9a7c9c220\",\"dweb:/ipfs/Qmd9cHMRSE52ESmxMiu5gTBpRNmDHQK5q18f7UTj8DQke4\"]},\"src/interfaces/IVaultConfigurator.sol\":{\"keccak256\":\"0x699d9b8c767780c4ea593fe7608bc0b3ef7646f54cea0610ae355f2974658eba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9ac4081f36b477025213f59c489cbb85f904580b145fa9f18ef9a7b794f0fba2\",\"dweb:/ipfs/QmPE3Ep6pTdaeFsJoixeom3NEaQiTe8WHrLoiFEGJo1zx4\"]},\"src/interfaces/IVaultFactory.sol\":{\"keccak256\":\"0x6f658b264fc8d530e458a98d83a09cb55ace4d3e509f0a3e9294471bb1bcf84d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a7253435e4e1d1ae19a50d14091ddb254f6a36f296440106bfc094623dd1aeba\",\"dweb:/ipfs/QmbHK9yoQ7Ctf3nuDLmqxTWPYD8cEm1TKXzfxePtE87AQN\"]},\"src/interfaces/common/IEntity.sol\":{\"keccak256\":\"0x8ef4b63d6da63489778ccd5f8d13ebdd527dd4b62730b2c616df5af7474d2d21\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a8d69576a9219d85c50816a18ad53a4d53cfcb27ed38b8cccc808dc2734b71b\",\"dweb:/ipfs/QmYVN3P4Q4REvBWJ97TbAcaxm3uyB2anV6NSGa6ZtSwcEv\"]},\"src/interfaces/common/IFactory.sol\":{\"keccak256\":\"0xe835ebda85d181b70874f6eb53f2a892aa3223d23efe247060da9b51d2b8e969\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://48b3dfb5f0491d90efbc8ed498b45358260ebac6e8f2aa0106b8b8fabdc988cb\",\"dweb:/ipfs/QmWnnCs3xiHeUvYfUWMJTSFZWc34bSYn9Zpm7f7syra3TA\"]},\"src/interfaces/common/IMigratableEntity.sol\":{\"keccak256\":\"0x8f5f2809f3afbe8ebfbb365dd7b57b4dd3b6f9943a6187eaf648d45895b8e3c4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ffe640537d539e7a4fde70d30d3e4c57f4ba9c2c25c450cea713aae38e8fd5c\",\"dweb:/ipfs/QmSUTGzvdcn1R1KB7tLThMRtESsfPbeXDhhhKWGtntzBds\"]},\"src/interfaces/common/IMigratableEntityProxy.sol\":{\"keccak256\":\"0x9030ced51ad12e0b3ddaa11bba4a3adcfa29e67b909c46065c14b19d158bb9fd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2d859c21510d1a0f06a71abe21dc6424608c1b2e3194a10e4df4cc88c4de9e9f\",\"dweb:/ipfs/QmNi6Buri2oaujc4vTv6bZ5mgMKFsjUmYmQLUNaDCXFEEt\"]},\"src/interfaces/common/IMigratablesFactory.sol\":{\"keccak256\":\"0xd4dfe9449bf005dbcbab9e0e85eaaca15a601ff971f34182a0b1832dc4b9d124\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ff8b73285192a9c64160b008d23a09da33e7164d10a9dc29d1a4464bd9c02be5\",\"dweb:/ipfs/QmZQW2LLV4dQfJ3coENKeycbzXJzi7zdvupsqWA4UV29Gq\"]},\"src/interfaces/common/IRegistry.sol\":{\"keccak256\":\"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014\",\"dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK\"]},\"src/interfaces/common/IStaticDelegateCallable.sol\":{\"keccak256\":\"0xa335d4e81b9071b7de66ef92b43ff20671d86516eb1be46fef29a3483cd3f5d5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d464b9db863c14c05547d2b23352f2e9b7b784799cf09f6bbc4906a2a74e3516\",\"dweb:/ipfs/QmUVWzFvJz7eEbDQKiFTTzwi7TEbjcs3VmwdM4kuptAKvi\"]},\"src/interfaces/delegator/IBaseDelegator.sol\":{\"keccak256\":\"0x96bb312f032e17accce3f8f80936d99468029d6b37c9ca74acdb4b026a0148ee\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2a66dcb5b7d1a6ef6a363431ea98ebd78bc4fdd3d7a134d9b542dc66e7d025c2\",\"dweb:/ipfs/QmRhTPLd2ZAyRHmJUFUcWKs9b3if49QY17LYZuRqWmghw8\"]},\"src/interfaces/service/INetworkMiddlewareService.sol\":{\"keccak256\":\"0x347afc7fcf1fbcdb96d66162070ef6c78aed27b3af2c1d5dfb4e511840631783\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2d90b8ceb495159e8e4e95d76447719dd166443f67dfabdd942846162071595c\",\"dweb:/ipfs/QmVVuiAWYx92T6vBvNMKZfTvraCf1fa16BsUKkdNs3hdHA\"]},\"src/interfaces/slasher/IBaseSlasher.sol\":{\"keccak256\":\"0x7c82528b445659c313ab77335c407b0b6efe5e79027187bb287f7bc74202b404\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0274c90aa5df1aa6bb470a6aab53992fb14fd7e5472c9430416505b29647d9cf\",\"dweb:/ipfs/QmckbmJLDetPemVzCnnGcKYWAZV2BRFXGDsjiaec8jkHxx\"]},\"src/interfaces/slasher/IBurner.sol\":{\"keccak256\":\"0xaf495dacc19ae0b3c787ba8021c5944927d70261536addd234d7dab146158c2b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9b3cc66251008be6ff9fc8b11ecc6831d5a9dca49a3fe9817fcd970253c1d447\",\"dweb:/ipfs/QmVxfb9ALGdF9W3SN2h41gQbUct6tawvu5bw4K89kFQ4HW\"]},\"src/interfaces/vault/IVault.sol\":{\"keccak256\":\"0xffee01d383cd4e1a5530c614bf4360c1ef070c288abec9da1eb531b51bc07235\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://04f0046cac285d8ec44ebbb1f79dc94fab4495767190cad8364fbc1fafaadfb9\",\"dweb:/ipfs/QmUawAunwzXfCyShWfhKeThAgKtqe51hmrxvrXvM772M2R\"]},\"src/interfaces/vault/IVaultStorage.sol\":{\"keccak256\":\"0x592626f13754194f83047135de19229c49390bd59e34659b1bb38be71d973a22\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://06a6a9dfddd05e580b32bebe2cff4f63ba26a653180676d58225dd30d9c89d3e\",\"dweb:/ipfs/QmdgzBeY6Sxo8mGtyBxtv1tM1c2kU6J6zjeRd7vuXm4DU6\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.25+commit.b61c2a91"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"vaultFactory","type":"address"},{"internalType":"address","name":"delegatorFactory","type":"address"},{"internalType":"address","name":"slasherFactory","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"stateMutability":"view","type":"function","name":"DELEGATOR_FACTORY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"SLASHER_FACTORY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"VAULT_FACTORY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"struct IVaultConfigurator.InitParams","name":"params","type":"tuple","components":[{"internalType":"uint64","name":"version","type":"uint64"},{"internalType":"address","name":"owner","type":"address"},{"internalType":"bytes","name":"vaultParams","type":"bytes"},{"internalType":"uint64","name":"delegatorIndex","type":"uint64"},{"internalType":"bytes","name":"delegatorParams","type":"bytes"},{"internalType":"bool","name":"withSlasher","type":"bool"},{"internalType":"uint64","name":"slasherIndex","type":"uint64"},{"internalType":"bytes","name":"slasherParams","type":"bytes"}]}],"stateMutability":"nonpayable","type":"function","name":"create","outputs":[{"internalType":"address","name":"vault","type":"address"},{"internalType":"address","name":"delegator","type":"address"},{"internalType":"address","name":"slasher","type":"address"}]}],"devdoc":{"kind":"dev","methods":{"create((uint64,address,bytes,uint64,bytes,bool,uint64,bytes))":{"params":{"params":"initial parameters needed for a vault with a delegator and a slasher deployment"},"returns":{"delegator":"address of the delegator","slasher":"address of the slasher","vault":"address of the vault"}}},"version":1},"userdoc":{"kind":"user","methods":{"DELEGATOR_FACTORY()":{"notice":"Get the delegator factory's address."},"SLASHER_FACTORY()":{"notice":"Get the slasher factory's address."},"VAULT_FACTORY()":{"notice":"Get the vault factory's address."},"create((uint64,address,bytes,uint64,bytes,bool,uint64,bytes))":{"notice":"Create a new vault with a delegator and a slasher."}},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/contracts/VaultConfigurator.sol":"VaultConfigurator"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol":{"keccak256":"0x6662ec4e5cefca03eeadd073e9469df8d2944bb2ee8ec8f7622c2c46aab5f225","urls":["bzz-raw://4d8544c6f8daa4d1bc215c6a72fe0acdb748664a105b0e5efc19295667521d45","dweb:/ipfs/QmdGWqdnXT8S3RgCR6aV8XHZrsybieMQLLnug1NtpSjEXN"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol":{"keccak256":"0xc163fcf9bb10138631a9ba5564df1fa25db9adff73bd9ee868a8ae1858fe093a","urls":["bzz-raw://9706d43a0124053d9880f6e31a59f31bc0a6a3dc1acd66ce0a16e1111658c5f6","dweb:/ipfs/QmUFmfowzkRwGtDu36cXV9SPTBHJ3n7dG9xQiK5B28jTf2"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b","urls":["bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609","dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol":{"keccak256":"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397","urls":["bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9","dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardUpgradeable.sol":{"keccak256":"0xb44e086e941292cdc7f440de51478493894ef0b1aeccb0c4047445919f667f74","urls":["bzz-raw://942dad22fbdc1669f025540ba63aa3ccfad5f8458fc5d4525b31ebf272e7af45","dweb:/ipfs/Qmdo4X2M82aM3AMoW2kf2jhYkSCyC4T1pHNd6obdsDFnAB"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol":{"keccak256":"0xdaba3f7c42c55b2896353f32bd27d4d5f8bae741b3b05d4c53f67abc4dc47ce8","urls":["bzz-raw://1fa2e61141c602510bcd2cd936ed9561922ac8772a9b9c9a9db091a74e354a45","dweb:/ipfs/QmcHQDDoEBwJmwUbzoVkytvJsBx3KVHYFFnDkvRGWh9Wmh"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol":{"keccak256":"0xb6b36edd6a2999fd243ff226d6cbf84bd71af2432bbd0dfe19392996a1d9cb41","urls":["bzz-raw://1fd2f35495652e57e3f99bc6c510bc5f7dd398a176ea2e72d8ed730aebc6ca26","dweb:/ipfs/QmTQV6X4gkikTib49cho5iDX3JvSQbdsoEChoDwrk3CbbH"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/access/Ownable.sol":{"keccak256":"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb","urls":["bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6","dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/Clones.sol":{"keccak256":"0xd18408af8a91bedb3d56343eeb9b30eb852e6dea93a5e2d5c6db9ca4cb905155","urls":["bzz-raw://061475b7302a732dc598907790f407417551c2b13e89daa57b3698489ef5484b","dweb:/ipfs/QmdX5qmk3VSniSErFuD4aVawQxUi2MuUbP7spPcHddPfcX"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Proxy.sol":{"keccak256":"0xbfb6695731de677140fbf76c772ab08c4233a122fb51ac28ac120fc49bbbc4ec","urls":["bzz-raw://68f8fded7cc318efa15874b7c6a983fe17a4a955d72d240353a9a4ca1e1b824c","dweb:/ipfs/QmdcmBL9Qo4Tk3Dby4wFYabGyot9JNeLPxpSXZUgUm92BV"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol":{"keccak256":"0x06a78f9b3ee3e6d0eb4e4cd635ba49960bea34cac1db8c0a27c75f2319f1fd65","urls":["bzz-raw://547d21aa17f4f3f1a1a7edf7167beff8dd9496a0348d5588f15cc8a4b29d052a","dweb:/ipfs/QmT16JtRQSWNpLo9W23jr6CzaMuTAcQcjJJcdRd8HLJ6cE"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/Proxy.sol":{"keccak256":"0xc3f2ec76a3de8ed7a7007c46166f5550c72c7709e3fc7e8bb3111a7191cdedbd","urls":["bzz-raw://e73efb4c2ca655882dc237c6b4f234a9bd36d97159d8fcaa837eb01171f726ac","dweb:/ipfs/QmTNnnv7Gu5fs5G1ZMh7Fexp8N4XUs3XrNAngjcxgiss3e"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol":{"keccak256":"0xc59a78b07b44b2cf2e8ab4175fca91e8eca1eee2df7357b8d2a8833e5ea1f64c","urls":["bzz-raw://5aa4f07e65444784c29cd7bfcc2341b34381e4e5b5da9f0c5bd00d7f430e66fa","dweb:/ipfs/QmWRMh4Q9DpaU9GvsiXmDdoNYMyyece9if7hnfLz7uqzWM"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70","urls":["bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c","dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol":{"keccak256":"0x6008dabfe393240d73d7dd7688033f72740d570aa422254d29a7dce8568f3aff","urls":["bzz-raw://f5196ec75139918c6c7bb4251b36395e668f1fa6d206beba7e7520e74913940d","dweb:/ipfs/QmSyqjksXxmm2mCG6qRd1yuwLykypkSVBbnBnGqJRcuJMi"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0x37bb49513c49c87c4642a891b13b63571bc87013dde806617aa1efb54605f386","urls":["bzz-raw://b3036b3a83b7c48f96641f2a9002b9f2dcb6a5958dd670894ada21ae8229b3d0","dweb:/ipfs/QmUNfSBdoVtjhETaUJCYcaC7pTMgbhht926tJ2uXJbiVd3"],"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"},"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol":{"keccak256":"0x32ba59b4b7299237c8ba56319110989d7978a039faf754793064e967e5894418","urls":["bzz-raw://1ae50c8b562427df610cc4540c9bf104acca7ef8e2dcae567ae7e52272281e9c","dweb:/ipfs/QmTHiadFCSJUPpRjNegc5SahmeU8bAoY8i9Aq6tVscbcKR"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b","urls":["bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df","dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d","urls":["bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875","dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol":{"keccak256":"0xe19a4d5f31d2861e7344e8e535e2feafb913d806d3e2b5fe7782741a2a7094fe","urls":["bzz-raw://4aed79c0fa6f0546ed02f2f683e8f77f0fd2ed7eb34d8bbf3d373c9a6d95b13c","dweb:/ipfs/QmWqVz6UAVqmnWU5pqYPt1o6iDEZyPaBraAA3rKfTTSfYj"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/Checkpoints.sol":{"keccak256":"0xbdc5e074d7dd6678f67e92b1a51a20226801a407b0e1af3da367c5d1ff4519ad","urls":["bzz-raw://a36cca6b22fff3db16fc789ff6c60eea71d4b156065d4d0c83a0bc5e91a77a8b","dweb:/ipfs/QmYN3exd5AemxjBrN8XMB1p5LbbE16uC3sjbYjwi8AjcGR"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0x86c1470cbfd878491e5de030072b647352d36bd27122cffb928970b1945282aa","urls":["bzz-raw://ad85dd393ee0a1917c57046abc5155f51f77844b2c6a42c05c1b8dd26d6ff3c1","dweb:/ipfs/QmNqYc8To2NdnpP6E1tGz7t6A7beuENde5yovwov5pW1fA"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/types/Time.sol":{"keccak256":"0xc7755af115020049e4140f224f9ee88d7e1799ffb0646f37bf0df24bf6213f58","urls":["bzz-raw://7f09bf94d5274334ec021f61a04659db303f31e60460e14b709c9bf187740111","dweb:/ipfs/QmNvgomZYUwFAt4cZbPWAiTeSZQreGehY9BK5xyVJsUttb"],"license":"MIT"},"src/contracts/DelegatorFactory.sol":{"keccak256":"0x3c3fb62c441302f4f75d94703779f5c4bb755c06f310b4c923dbf24d6e0adda9","urls":["bzz-raw://597fa8be7179d8a555bf942c1dea0504273a1d34f6ac4c206fc2e816da143e68","dweb:/ipfs/Qmf54DKNYXC7fTMcAFABw68RC6ZFenVgyAPGhbPTf6s5TR"],"license":"BUSL-1.1"},"src/contracts/SlasherFactory.sol":{"keccak256":"0xbafc96e3d2511eb62942613645b4f5cbf6f603063a711b30e25940aaba08064c","urls":["bzz-raw://489440f1181b1858e3b27a90ec6f514c0c287c602b4779676048213202165867","dweb:/ipfs/QmRG7AQ9m9qHr8ofEvP1Ur8S379fFXTo9rmiWaAtZ9rsUc"],"license":"BUSL-1.1"},"src/contracts/VaultConfigurator.sol":{"keccak256":"0x2484ee5cfac134e27cedeeef22d4111d7ecd4a4b62f02381f2c2b67c57ed7955","urls":["bzz-raw://adce2d9b8a9fb670c0f3266d5407b752901921f1c9f9406c7db65d84e48e779a","dweb:/ipfs/QmTbcKhdGfepqexFc8kziqPdfFC8SGZzFrVnEcJ5nKBiPz"],"license":"BUSL-1.1"},"src/contracts/VaultFactory.sol":{"keccak256":"0xa9122dd11e5f21fa97a813e90f8c4905f0a4967b9611dd03437a31377cbdecb8","urls":["bzz-raw://4c2feda1f9c0c7ddf65bccdc99494e4bfbb820fcddc3e4222e3b58ef821424a3","dweb:/ipfs/Qmdmt4rH214jDmDsF9ELvJXVCt8abhk6poSmhJqqzLse3R"],"license":"BUSL-1.1"},"src/contracts/common/Entity.sol":{"keccak256":"0x3d61a932995b8443381f3950542d388223a2c26dd5d29a3274dea3baa7388bd7","urls":["bzz-raw://7cdf5f03ca72fd263fd32ff59c8d88ddca911ae83896a287d10772c1bbe9b138","dweb:/ipfs/QmbP84r5BWT1Rn9AYTntWSf3xUMTTCohTZJFhbBhDXFoHa"],"license":"BUSL-1.1"},"src/contracts/common/Factory.sol":{"keccak256":"0x41764643e6a2a3d80d694a3efee91f50a2fd084fb2bcd13566259443840e6369","urls":["bzz-raw://fefc1e2a2189275388826f4f82ca421ca79c2866d3ef39dc2c7df46fe7cbf7c9","dweb:/ipfs/QmSJ4VGmgpYUv5ni4ZYoSV4qMuZrk5DLjyB3Vv9NbFgeNZ"],"license":"BUSL-1.1"},"src/contracts/common/MigratableEntity.sol":{"keccak256":"0x2d736f4dacd5d7e7697503bc426c78b8250fe1694ca157965ec178da6807de58","urls":["bzz-raw://f1237acf96b4b9f9b69156e068eddd726a6e15bd8e87a18dc999cd4ba4da069c","dweb:/ipfs/QmS6M8fiFFSeuJ4ZKKq1z8W7w4ybeHQSy5TLASGoc1LVic"],"license":"BUSL-1.1"},"src/contracts/common/MigratableEntityProxy.sol":{"keccak256":"0x78ba27242276232ad10a45265e3c07f0a25722456f6abb3fb3f24a1c8e1b38d1","urls":["bzz-raw://a19623df688e5085036b59fc934e35b72997f875d7ffda1cdc557c6ca468206d","dweb:/ipfs/QmaQiT5uYZu5JmqhMjTDJnsq3nqaHbKrWAjrxKKLesdHV7"],"license":"BUSL-1.1"},"src/contracts/common/MigratablesFactory.sol":{"keccak256":"0x5d1487c3456da4bd0bc2a131eeab97ab92484c923edefaebf190cc08d4080093","urls":["bzz-raw://fec38d2e52e9c5148e95599c133fd6fe66d41296d6fc06e7329d2db199a1798f","dweb:/ipfs/QmeiaydBXHHkJRUnpaZH1C6JQ7HPocTvQbUJBqKTvUeEYv"],"license":"BUSL-1.1"},"src/contracts/common/Registry.sol":{"keccak256":"0x4a4004836d920953a8ec6e223de9a330f43acf7a5b93c6b8b3e4a95e0f129889","urls":["bzz-raw://e8bdda207f3852c683a2b481602239a914f7e26bcd042ade618e263a43b67652","dweb:/ipfs/Qmb8GZykJWxZcfwNp3SqhFizDFydFuV6LXgemV3vnWyLyu"],"license":"BUSL-1.1"},"src/contracts/common/StaticDelegateCallable.sol":{"keccak256":"0x350029aa8955eacaffffaeb58babc5c98e80ebc5c5db388ed17ee6465f4a9d90","urls":["bzz-raw://eb392a8ee9050e0af606897df63e3404e3829e8b688b580663892f9664195764","dweb:/ipfs/QmaXC8jqV8UrrAFkzXTEv2fJF56sy33HhLxAzaRZmUxuXD"],"license":"BUSL-1.1"},"src/contracts/libraries/Checkpoints.sol":{"keccak256":"0xba90097c8bfe0a975499428b5f8ac5569483c7d92ccc28c12d70de416aae040c","urls":["bzz-raw://12f5d93ca94cd06d3147db68993165a58e17903ed53682560de61f3085ad4609","dweb:/ipfs/QmePiuAqvXprMLmFZkGZeGjvGPAvsEDHfCDv7BoQhXu9xE"],"license":"MIT"},"src/contracts/libraries/ERC4626Math.sol":{"keccak256":"0x8441160513c1cbeb1c3b9ee077bcc7e7ce20006b52a77c8dd39ff0ef89699939","urls":["bzz-raw://943f8cc3e26ddf649f465f40c909819f5c864717c4baa339e9e403b9374a4653","dweb:/ipfs/QmXPxi1sUDsrGprZdUgCzoPEosaZMv9ZhygWQ1vAi1phAB"],"license":"MIT"},"src/contracts/libraries/Subnetwork.sol":{"keccak256":"0xf5ef5506fd66082b3c2e7f3df37529f5a8efad32ac62e7c8914bd63219190bfe","urls":["bzz-raw://ba031a54ee0d0e9a270c2b9e18437f5668cfeb659cfd5fe0677459d7fcac2a56","dweb:/ipfs/QmReP3H7qQ78tAfgLnJKsNEQNCQfF1X1Get38Ffd4kzq32"],"license":"MIT"},"src/contracts/slasher/BaseSlasher.sol":{"keccak256":"0x190e5dce196a061bdad42468c52e9f5b0eb7810cd7d0c19f04d6a2e94984f1b6","urls":["bzz-raw://07ca08d0cd43c2fe5d54a5577f6bdd522ced410f5d3a52e764deaa7ba26b5f06","dweb:/ipfs/QmZe3PiMKBQKWcwodaLupragdqxPjgS4v1qMC7RXau8hDF"],"license":"BUSL-1.1"},"src/contracts/vault/Vault.sol":{"keccak256":"0x2ceff6ed3298c4cad144c99fcc79b51cb9397d6ebef00285b915848b476f8c2e","urls":["bzz-raw://11f2fb3581854f3ab6e82e8d4935d9eb510c903a13c3f022346c2956a58f5307","dweb:/ipfs/QmdUnoXoyYoG9SGWyQZCFyLDRUUX3eXyXetkRvw6jxqqBz"],"license":"BUSL-1.1"},"src/contracts/vault/VaultStorage.sol":{"keccak256":"0x57db25b127d77ea3472de53e3a4af3354399655b9268638b99ca5925fa364a56","urls":["bzz-raw://aa763d9a6ec508ae3abfb8228b72b9fd9525279e5135d4962e79ff059feb1173","dweb:/ipfs/QmcbDR6E9wyEpu6V2FkEC4hnWy47zXA9LSKJde6zSGd33Q"],"license":"BUSL-1.1"},"src/interfaces/IDelegatorFactory.sol":{"keccak256":"0x7850453237ca93b301393506d2489a38830a60be0c29f39a4a1aee3508d836e6","urls":["bzz-raw://8f418702b883c90e046af92d5654a25849baf79b61c11401ad603b861fed7b80","dweb:/ipfs/Qmdju1XFJXx3uJidzoS7srcoSnzT8jUoPAmGEdbceYgB7j"],"license":"MIT"},"src/interfaces/ISlasherFactory.sol":{"keccak256":"0x30018af5c2719d9b5cfacbfc0277017896815b3fcc4dfbea78813e6ae81c1e56","urls":["bzz-raw://5e028fbed23ab973d8d9eb2be4e53a528dd01248e3233f56ab0f8ac9a7c9c220","dweb:/ipfs/Qmd9cHMRSE52ESmxMiu5gTBpRNmDHQK5q18f7UTj8DQke4"],"license":"MIT"},"src/interfaces/IVaultConfigurator.sol":{"keccak256":"0x699d9b8c767780c4ea593fe7608bc0b3ef7646f54cea0610ae355f2974658eba","urls":["bzz-raw://9ac4081f36b477025213f59c489cbb85f904580b145fa9f18ef9a7b794f0fba2","dweb:/ipfs/QmPE3Ep6pTdaeFsJoixeom3NEaQiTe8WHrLoiFEGJo1zx4"],"license":"MIT"},"src/interfaces/IVaultFactory.sol":{"keccak256":"0x6f658b264fc8d530e458a98d83a09cb55ace4d3e509f0a3e9294471bb1bcf84d","urls":["bzz-raw://a7253435e4e1d1ae19a50d14091ddb254f6a36f296440106bfc094623dd1aeba","dweb:/ipfs/QmbHK9yoQ7Ctf3nuDLmqxTWPYD8cEm1TKXzfxePtE87AQN"],"license":"MIT"},"src/interfaces/common/IEntity.sol":{"keccak256":"0x8ef4b63d6da63489778ccd5f8d13ebdd527dd4b62730b2c616df5af7474d2d21","urls":["bzz-raw://5a8d69576a9219d85c50816a18ad53a4d53cfcb27ed38b8cccc808dc2734b71b","dweb:/ipfs/QmYVN3P4Q4REvBWJ97TbAcaxm3uyB2anV6NSGa6ZtSwcEv"],"license":"MIT"},"src/interfaces/common/IFactory.sol":{"keccak256":"0xe835ebda85d181b70874f6eb53f2a892aa3223d23efe247060da9b51d2b8e969","urls":["bzz-raw://48b3dfb5f0491d90efbc8ed498b45358260ebac6e8f2aa0106b8b8fabdc988cb","dweb:/ipfs/QmWnnCs3xiHeUvYfUWMJTSFZWc34bSYn9Zpm7f7syra3TA"],"license":"MIT"},"src/interfaces/common/IMigratableEntity.sol":{"keccak256":"0x8f5f2809f3afbe8ebfbb365dd7b57b4dd3b6f9943a6187eaf648d45895b8e3c4","urls":["bzz-raw://0ffe640537d539e7a4fde70d30d3e4c57f4ba9c2c25c450cea713aae38e8fd5c","dweb:/ipfs/QmSUTGzvdcn1R1KB7tLThMRtESsfPbeXDhhhKWGtntzBds"],"license":"MIT"},"src/interfaces/common/IMigratableEntityProxy.sol":{"keccak256":"0x9030ced51ad12e0b3ddaa11bba4a3adcfa29e67b909c46065c14b19d158bb9fd","urls":["bzz-raw://2d859c21510d1a0f06a71abe21dc6424608c1b2e3194a10e4df4cc88c4de9e9f","dweb:/ipfs/QmNi6Buri2oaujc4vTv6bZ5mgMKFsjUmYmQLUNaDCXFEEt"],"license":"MIT"},"src/interfaces/common/IMigratablesFactory.sol":{"keccak256":"0xd4dfe9449bf005dbcbab9e0e85eaaca15a601ff971f34182a0b1832dc4b9d124","urls":["bzz-raw://ff8b73285192a9c64160b008d23a09da33e7164d10a9dc29d1a4464bd9c02be5","dweb:/ipfs/QmZQW2LLV4dQfJ3coENKeycbzXJzi7zdvupsqWA4UV29Gq"],"license":"MIT"},"src/interfaces/common/IRegistry.sol":{"keccak256":"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb","urls":["bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014","dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK"],"license":"MIT"},"src/interfaces/common/IStaticDelegateCallable.sol":{"keccak256":"0xa335d4e81b9071b7de66ef92b43ff20671d86516eb1be46fef29a3483cd3f5d5","urls":["bzz-raw://d464b9db863c14c05547d2b23352f2e9b7b784799cf09f6bbc4906a2a74e3516","dweb:/ipfs/QmUVWzFvJz7eEbDQKiFTTzwi7TEbjcs3VmwdM4kuptAKvi"],"license":"MIT"},"src/interfaces/delegator/IBaseDelegator.sol":{"keccak256":"0x96bb312f032e17accce3f8f80936d99468029d6b37c9ca74acdb4b026a0148ee","urls":["bzz-raw://2a66dcb5b7d1a6ef6a363431ea98ebd78bc4fdd3d7a134d9b542dc66e7d025c2","dweb:/ipfs/QmRhTPLd2ZAyRHmJUFUcWKs9b3if49QY17LYZuRqWmghw8"],"license":"MIT"},"src/interfaces/service/INetworkMiddlewareService.sol":{"keccak256":"0x347afc7fcf1fbcdb96d66162070ef6c78aed27b3af2c1d5dfb4e511840631783","urls":["bzz-raw://2d90b8ceb495159e8e4e95d76447719dd166443f67dfabdd942846162071595c","dweb:/ipfs/QmVVuiAWYx92T6vBvNMKZfTvraCf1fa16BsUKkdNs3hdHA"],"license":"MIT"},"src/interfaces/slasher/IBaseSlasher.sol":{"keccak256":"0x7c82528b445659c313ab77335c407b0b6efe5e79027187bb287f7bc74202b404","urls":["bzz-raw://0274c90aa5df1aa6bb470a6aab53992fb14fd7e5472c9430416505b29647d9cf","dweb:/ipfs/QmckbmJLDetPemVzCnnGcKYWAZV2BRFXGDsjiaec8jkHxx"],"license":"MIT"},"src/interfaces/slasher/IBurner.sol":{"keccak256":"0xaf495dacc19ae0b3c787ba8021c5944927d70261536addd234d7dab146158c2b","urls":["bzz-raw://9b3cc66251008be6ff9fc8b11ecc6831d5a9dca49a3fe9817fcd970253c1d447","dweb:/ipfs/QmVxfb9ALGdF9W3SN2h41gQbUct6tawvu5bw4K89kFQ4HW"],"license":"MIT"},"src/interfaces/vault/IVault.sol":{"keccak256":"0xffee01d383cd4e1a5530c614bf4360c1ef070c288abec9da1eb531b51bc07235","urls":["bzz-raw://04f0046cac285d8ec44ebbb1f79dc94fab4495767190cad8364fbc1fafaadfb9","dweb:/ipfs/QmUawAunwzXfCyShWfhKeThAgKtqe51hmrxvrXvM772M2R"],"license":"MIT"},"src/interfaces/vault/IVaultStorage.sol":{"keccak256":"0x592626f13754194f83047135de19229c49390bd59e34659b1bb38be71d973a22","urls":["bzz-raw://06a6a9dfddd05e580b32bebe2cff4f63ba26a653180676d58225dd30d9c89d3e","dweb:/ipfs/QmdgzBeY6Sxo8mGtyBxtv1tM1c2kU6J6zjeRd7vuXm4DU6"],"license":"MIT"}},"version":1},"id":67} \ No newline at end of file +{"abi":[{"type":"constructor","inputs":[{"name":"vaultFactory","type":"address","internalType":"address"},{"name":"delegatorFactory","type":"address","internalType":"address"},{"name":"slasherFactory","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"DELEGATOR_FACTORY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"SLASHER_FACTORY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"VAULT_FACTORY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"create","inputs":[{"name":"params","type":"tuple","internalType":"struct IVaultConfigurator.InitParams","components":[{"name":"version","type":"uint64","internalType":"uint64"},{"name":"owner","type":"address","internalType":"address"},{"name":"vaultParams","type":"bytes","internalType":"bytes"},{"name":"delegatorIndex","type":"uint64","internalType":"uint64"},{"name":"delegatorParams","type":"bytes","internalType":"bytes"},{"name":"withSlasher","type":"bool","internalType":"bool"},{"name":"slasherIndex","type":"uint64","internalType":"uint64"},{"name":"slasherParams","type":"bytes","internalType":"bytes"}]}],"outputs":[{"name":"vault","type":"address","internalType":"address"},{"name":"delegator","type":"address","internalType":"address"},{"name":"slasher","type":"address","internalType":"address"}],"stateMutability":"nonpayable"}],"bytecode":{"object":"0x60e0346100a957601f61078338819003918201601f19168301916001600160401b038311848410176100ad578084926060946040528339810103126100a957610047816100c1565b906100606040610059602084016100c1565b92016100c1565b9160805260a05260c0526040516106ad90816100d682396080518181816101aa015261050a015260a05181818161023301526104c9015260c05181818161038201526104860152f35b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b51906001600160a01b03821682036100a95756fe60806040818152600480361015610014575f80fd5b5f925f3560e01c908163103f2907146104f8575080636da3e06d146104b557806387df0788146104725763c48927e41461004c575f80fd5b346103385760031991602036840181136103385782359067ffffffffffffffff9485831161033857610100809184360301126103385783519081018181108782111761045f57845261009f838601610583565b81526001600160a01b039560248401358781168103610338578383019081526044850135828111610338576100d990883691880101610598565b918684019283526100ec60648701610583565b956060850196875260848101358281116103385761010f908a3691840101610598565b966080860197885260a48201359081151582036103385760a0870191825261013960c48401610583565b9260c0880193845260e481013596858811610338578d8d975f6101648f9b958b8f9736920101610598565b9960e08d019a8b526101a6848b849f511694511695519c519c8d9687958694633ac0491160e01b8652850152602484015260606044840152606483019061060d565b03927f0000000000000000000000000000000000000000000000000000000000000000165af19586156104555791888d8c95938e97955f9a61042e575b50908561022f9251169c515f8b6102008a51938492888401610631565b0398610214601f199a8b8101855284610561565b519e8f94859384926319a211df60e31b9d8e85528401610656565b03927f0000000000000000000000000000000000000000000000000000000000000000165af1998a1561042457908d979695949392915f9b6103f9575b50908995949392915161033c575b5050505050501695863b156103385784516383cd9cc360e01b8152938116868501819052935f81602481838c5af1801561032e5761031b575b50863b1561031757845163555e124b60e11b815291169481018590528681602481838a5af1801561030d576102f5575b50606095508251948552840152820152f35b6102ff8791610539565b61030957856102e3565b8580fd5b84513d89823e3d90fd5b8780fd5b610326919850610539565b5f965f6102b3565b86513d5f823e3d90fd5b5f80fd5b61036893949596985061035c9750511693518a5196879189888401610631565b03908101865285610561565b61037c8851948593849384528b8401610656565b03815f8b7f0000000000000000000000000000000000000000000000000000000000000000165af19081156103ef579087915f916103c2575b5091835f8080808061027a565b6103e29150843d86116103e8575b6103da8183610561565b8101906105ee565b5f6103b5565b503d6103d0565b85513d5f823e3d90fd5b8a9695949392919b5061041890873d89116103e8576103da8183610561565b9a90919293949561026c565b8b513d5f823e3d90fd5b61022f92919a5061044c8791853d87116103e8576103da8183610561565b9a9192506101e3565b8a513d5f823e3d90fd5b604186634e487b7160e01b5f525260245ffd5b8234610338575f36600319011261033857517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b8234610338575f36600319011261033857517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b34610338575f366003190112610338577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b67ffffffffffffffff811161054d57604052565b634e487b7160e01b5f52604160045260245ffd5b90601f8019910116810190811067ffffffffffffffff82111761054d57604052565b359067ffffffffffffffff8216820361033857565b81601f820112156103385780359067ffffffffffffffff821161054d57604051926105cd601f8401601f191660200185610561565b8284526020838301011161033857815f926020809301838601378301015290565b9081602091031261033857516001600160a01b03811681036103385790565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b6001600160a01b0390911681526040602082018190526106539291019061060d565b90565b60409067ffffffffffffffff6106539493168152816020820152019061060d56fea264697066735822122025641c7fd1effc3874c6b42463a882a7177034baff10787a4c962a28acb0c5af64736f6c63430008190033","sourceMap":"392:1286:72:-:0;;;;;;;;;;;;;-1:-1:-1;;392:1286:72;;;;-1:-1:-1;;;;;392:1286:72;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;:::i;:::-;844:28;;;882:36;;928:32;;392:1286;;;;;;;;844:28;392:1286;;;;;;;;;;882:36;392:1286;;;;;;;;;;928:32;392:1286;;;;;;;;;;;;-1:-1:-1;392:1286:72;;;;;;-1:-1:-1;392:1286:72;;;;;-1:-1:-1;392:1286:72;;;;-1:-1:-1;;;;;392:1286:72;;;;;;:::o","linkReferences":{}},"deployedBytecode":{"object":"0x60806040818152600480361015610014575f80fd5b5f925f3560e01c908163103f2907146104f8575080636da3e06d146104b557806387df0788146104725763c48927e41461004c575f80fd5b346103385760031991602036840181136103385782359067ffffffffffffffff9485831161033857610100809184360301126103385783519081018181108782111761045f57845261009f838601610583565b81526001600160a01b039560248401358781168103610338578383019081526044850135828111610338576100d990883691880101610598565b918684019283526100ec60648701610583565b956060850196875260848101358281116103385761010f908a3691840101610598565b966080860197885260a48201359081151582036103385760a0870191825261013960c48401610583565b9260c0880193845260e481013596858811610338578d8d975f6101648f9b958b8f9736920101610598565b9960e08d019a8b526101a6848b849f511694511695519c519c8d9687958694633ac0491160e01b8652850152602484015260606044840152606483019061060d565b03927f0000000000000000000000000000000000000000000000000000000000000000165af19586156104555791888d8c95938e97955f9a61042e575b50908561022f9251169c515f8b6102008a51938492888401610631565b0398610214601f199a8b8101855284610561565b519e8f94859384926319a211df60e31b9d8e85528401610656565b03927f0000000000000000000000000000000000000000000000000000000000000000165af1998a1561042457908d979695949392915f9b6103f9575b50908995949392915161033c575b5050505050501695863b156103385784516383cd9cc360e01b8152938116868501819052935f81602481838c5af1801561032e5761031b575b50863b1561031757845163555e124b60e11b815291169481018590528681602481838a5af1801561030d576102f5575b50606095508251948552840152820152f35b6102ff8791610539565b61030957856102e3565b8580fd5b84513d89823e3d90fd5b8780fd5b610326919850610539565b5f965f6102b3565b86513d5f823e3d90fd5b5f80fd5b61036893949596985061035c9750511693518a5196879189888401610631565b03908101865285610561565b61037c8851948593849384528b8401610656565b03815f8b7f0000000000000000000000000000000000000000000000000000000000000000165af19081156103ef579087915f916103c2575b5091835f8080808061027a565b6103e29150843d86116103e8575b6103da8183610561565b8101906105ee565b5f6103b5565b503d6103d0565b85513d5f823e3d90fd5b8a9695949392919b5061041890873d89116103e8576103da8183610561565b9a90919293949561026c565b8b513d5f823e3d90fd5b61022f92919a5061044c8791853d87116103e8576103da8183610561565b9a9192506101e3565b8a513d5f823e3d90fd5b604186634e487b7160e01b5f525260245ffd5b8234610338575f36600319011261033857517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b8234610338575f36600319011261033857517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b34610338575f366003190112610338577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b67ffffffffffffffff811161054d57604052565b634e487b7160e01b5f52604160045260245ffd5b90601f8019910116810190811067ffffffffffffffff82111761054d57604052565b359067ffffffffffffffff8216820361033857565b81601f820112156103385780359067ffffffffffffffff821161054d57604051926105cd601f8401601f191660200185610561565b8284526020838301011161033857815f926020809301838601378301015290565b9081602091031261033857516001600160a01b03811681036103385790565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b6001600160a01b0390911681526040602082018190526106539291019061060d565b90565b60409067ffffffffffffffff6106539493168152816020820152019061060d56fea264697066735822122025641c7fd1effc3874c6b42463a882a7177034baff10787a4c962a28acb0c5af64736f6c63430008190033","sourceMap":"392:1286:72:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;392:1286:72;;;;;;-1:-1:-1;392:1286:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;392:1286:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;1133:15;;;392:1286;;;;;;1233:18;;392:1286;;;;;;;;;;;;1168:84;;;;392:1286;;;;;;;;;;;;;;;:::i;:::-;1168:84;1181:13;;392:1286;1168:84;;;;;;;;;;;;;;;;392:1286;1168:84;;;392:1286;;;;1287:108;392:1286;;;1371:22;;392:1286;;1353:41;392:1286;;1353:41;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;392:1286;;;;;;;;;;;1287:108;;;;;;;:::i;:::-;;1304:17;;392:1286;1287:108;;;;;;;;;;;;;;;;392:1286;1287:108;;;392:1286;;;;;;;;;;1406:175;;392:1286;;;;;;;;1591:36;;;;;;392:1286;;-1:-1:-1;;;1591:36:72;;392:1286;;;1591:36;;;392:1286;;;;;;;;;1591:36;;;;;;;;;392:1286;1637:32;;;;;;392:1286;;-1:-1:-1;;;1637:32:72;;392:1286;;1637:32;;;392:1286;;;1637:32;392:1286;;;1637:32;;;;;;;;;;392:1286;;;;;;;;;;;;;;;;;1637:32;;;;;:::i;:::-;392:1286;;1637:32;;;392:1286;;;;1637:32;392:1286;;;;;;;;;1637:32;392:1286;;;1591:36;;;;;;:::i;:::-;392:1286;1591:36;;;;;392:1286;;;;;;;;;1591:36;392:1286;;;1406:175;1530:39;392:1286;;;;;;1530:39;392:1286;;;;1548:20;;392:1286;;1530:39;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;1470:100;392:1286;;1470:100;;;;;;;;;;;:::i;:::-;;1485:15;392:1286;1485:15;;392:1286;1470:100;;;;;;;;;;392:1286;1470:100;;;1406:175;1444:126;1406:175;;;;;;;;;1470:100;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;392:1286;;;;;;;;;1287:108;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;392:1286;;;;;;;;;1168:84;1287:108;1168:84;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;392:1286;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;392:1286:72;;;;;703:40;-1:-1:-1;;;;;392:1286:72;;;;;;;;;;;;;-1:-1:-1;;392:1286:72;;;;;600:42;-1:-1:-1;;;;;392:1286:72;;;;;;;;;;;;-1:-1:-1;;392:1286:72;;;;501:38;-1:-1:-1;;;;;392:1286:72;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;1353:41;;392:1286;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;1353:41;392:1286;;-1:-1:-1;;392:1286:72;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;392:1286:72;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;-1:-1:-1;;;;;392:1286:72;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;392:1286:72;;;;;;;;-1:-1:-1;;392:1286:72;;;;:::o;:::-;-1:-1:-1;;;;;392:1286:72;;;;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;;;;;;;;;;;;;;:::i","linkReferences":{},"immutableReferences":{"64380":[{"start":426,"length":32},{"start":1290,"length":32}],"64383":[{"start":563,"length":32},{"start":1225,"length":32}],"64386":[{"start":898,"length":32},{"start":1158,"length":32}]}},"methodIdentifiers":{"DELEGATOR_FACTORY()":"6da3e06d","SLASHER_FACTORY()":"87df0788","VAULT_FACTORY()":"103f2907","create((uint64,address,bytes,uint64,bytes,bool,uint64,bytes))":"c48927e4"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"vaultFactory\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"delegatorFactory\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"slasherFactory\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"DELEGATOR_FACTORY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"SLASHER_FACTORY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"VAULT_FACTORY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"vaultParams\",\"type\":\"bytes\"},{\"internalType\":\"uint64\",\"name\":\"delegatorIndex\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"delegatorParams\",\"type\":\"bytes\"},{\"internalType\":\"bool\",\"name\":\"withSlasher\",\"type\":\"bool\"},{\"internalType\":\"uint64\",\"name\":\"slasherIndex\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"slasherParams\",\"type\":\"bytes\"}],\"internalType\":\"struct IVaultConfigurator.InitParams\",\"name\":\"params\",\"type\":\"tuple\"}],\"name\":\"create\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"vault\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"slasher\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"create((uint64,address,bytes,uint64,bytes,bool,uint64,bytes))\":{\"params\":{\"params\":\"initial parameters needed for a vault with a delegator and a slasher deployment\"},\"returns\":{\"delegator\":\"address of the delegator\",\"slasher\":\"address of the slasher\",\"vault\":\"address of the vault\"}}},\"stateVariables\":{\"DELEGATOR_FACTORY\":{\"return\":\"address of the delegator factory\",\"returns\":{\"_0\":\"address of the delegator factory\"}},\"SLASHER_FACTORY\":{\"return\":\"address of the slasher factory\",\"returns\":{\"_0\":\"address of the slasher factory\"}},\"VAULT_FACTORY\":{\"return\":\"address of the vault factory\",\"returns\":{\"_0\":\"address of the vault factory\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"DELEGATOR_FACTORY()\":{\"notice\":\"Get the delegator factory's address.\"},\"SLASHER_FACTORY()\":{\"notice\":\"Get the slasher factory's address.\"},\"VAULT_FACTORY()\":{\"notice\":\"Get the vault factory's address.\"},\"create((uint64,address,bytes,uint64,bytes,bool,uint64,bytes))\":{\"notice\":\"Create a new vault with a delegator and a slasher.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/contracts/VaultConfigurator.sol\":\"VaultConfigurator\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol\":{\"keccak256\":\"0x6662ec4e5cefca03eeadd073e9469df8d2944bb2ee8ec8f7622c2c46aab5f225\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4d8544c6f8daa4d1bc215c6a72fe0acdb748664a105b0e5efc19295667521d45\",\"dweb:/ipfs/QmdGWqdnXT8S3RgCR6aV8XHZrsybieMQLLnug1NtpSjEXN\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0xc163fcf9bb10138631a9ba5564df1fa25db9adff73bd9ee868a8ae1858fe093a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9706d43a0124053d9880f6e31a59f31bc0a6a3dc1acd66ce0a16e1111658c5f6\",\"dweb:/ipfs/QmUFmfowzkRwGtDu36cXV9SPTBHJ3n7dG9xQiK5B28jTf2\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609\",\"dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9\",\"dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardUpgradeable.sol\":{\"keccak256\":\"0xb44e086e941292cdc7f440de51478493894ef0b1aeccb0c4047445919f667f74\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://942dad22fbdc1669f025540ba63aa3ccfad5f8458fc5d4525b31ebf272e7af45\",\"dweb:/ipfs/Qmdo4X2M82aM3AMoW2kf2jhYkSCyC4T1pHNd6obdsDFnAB\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol\":{\"keccak256\":\"0xdaba3f7c42c55b2896353f32bd27d4d5f8bae741b3b05d4c53f67abc4dc47ce8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1fa2e61141c602510bcd2cd936ed9561922ac8772a9b9c9a9db091a74e354a45\",\"dweb:/ipfs/QmcHQDDoEBwJmwUbzoVkytvJsBx3KVHYFFnDkvRGWh9Wmh\"]},\"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0xb6b36edd6a2999fd243ff226d6cbf84bd71af2432bbd0dfe19392996a1d9cb41\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1fd2f35495652e57e3f99bc6c510bc5f7dd398a176ea2e72d8ed730aebc6ca26\",\"dweb:/ipfs/QmTQV6X4gkikTib49cho5iDX3JvSQbdsoEChoDwrk3CbbH\"]},\"lib/openzeppelin-contracts/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"lib/openzeppelin-contracts/contracts/proxy/Clones.sol\":{\"keccak256\":\"0xd18408af8a91bedb3d56343eeb9b30eb852e6dea93a5e2d5c6db9ca4cb905155\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://061475b7302a732dc598907790f407417551c2b13e89daa57b3698489ef5484b\",\"dweb:/ipfs/QmdX5qmk3VSniSErFuD4aVawQxUi2MuUbP7spPcHddPfcX\"]},\"lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Proxy.sol\":{\"keccak256\":\"0xbfb6695731de677140fbf76c772ab08c4233a122fb51ac28ac120fc49bbbc4ec\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://68f8fded7cc318efa15874b7c6a983fe17a4a955d72d240353a9a4ca1e1b824c\",\"dweb:/ipfs/QmdcmBL9Qo4Tk3Dby4wFYabGyot9JNeLPxpSXZUgUm92BV\"]},\"lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol\":{\"keccak256\":\"0x06a78f9b3ee3e6d0eb4e4cd635ba49960bea34cac1db8c0a27c75f2319f1fd65\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://547d21aa17f4f3f1a1a7edf7167beff8dd9496a0348d5588f15cc8a4b29d052a\",\"dweb:/ipfs/QmT16JtRQSWNpLo9W23jr6CzaMuTAcQcjJJcdRd8HLJ6cE\"]},\"lib/openzeppelin-contracts/contracts/proxy/Proxy.sol\":{\"keccak256\":\"0xc3f2ec76a3de8ed7a7007c46166f5550c72c7709e3fc7e8bb3111a7191cdedbd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e73efb4c2ca655882dc237c6b4f234a9bd36d97159d8fcaa837eb01171f726ac\",\"dweb:/ipfs/QmTNnnv7Gu5fs5G1ZMh7Fexp8N4XUs3XrNAngjcxgiss3e\"]},\"lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0xc59a78b07b44b2cf2e8ab4175fca91e8eca1eee2df7357b8d2a8833e5ea1f64c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5aa4f07e65444784c29cd7bfcc2341b34381e4e5b5da9f0c5bd00d7f430e66fa\",\"dweb:/ipfs/QmWRMh4Q9DpaU9GvsiXmDdoNYMyyece9if7hnfLz7uqzWM\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c\",\"dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0x6008dabfe393240d73d7dd7688033f72740d570aa422254d29a7dce8568f3aff\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f5196ec75139918c6c7bb4251b36395e668f1fa6d206beba7e7520e74913940d\",\"dweb:/ipfs/QmSyqjksXxmm2mCG6qRd1yuwLykypkSVBbnBnGqJRcuJMi\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x37bb49513c49c87c4642a891b13b63571bc87013dde806617aa1efb54605f386\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b3036b3a83b7c48f96641f2a9002b9f2dcb6a5958dd670894ada21ae8229b3d0\",\"dweb:/ipfs/QmUNfSBdoVtjhETaUJCYcaC7pTMgbhht926tJ2uXJbiVd3\"]},\"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\"]},\"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0x32ba59b4b7299237c8ba56319110989d7978a039faf754793064e967e5894418\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1ae50c8b562427df610cc4540c9bf104acca7ef8e2dcae567ae7e52272281e9c\",\"dweb:/ipfs/QmTHiadFCSJUPpRjNegc5SahmeU8bAoY8i9Aq6tVscbcKR\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875\",\"dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0xe19a4d5f31d2861e7344e8e535e2feafb913d806d3e2b5fe7782741a2a7094fe\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4aed79c0fa6f0546ed02f2f683e8f77f0fd2ed7eb34d8bbf3d373c9a6d95b13c\",\"dweb:/ipfs/QmWqVz6UAVqmnWU5pqYPt1o6iDEZyPaBraAA3rKfTTSfYj\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/Checkpoints.sol\":{\"keccak256\":\"0xbdc5e074d7dd6678f67e92b1a51a20226801a407b0e1af3da367c5d1ff4519ad\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a36cca6b22fff3db16fc789ff6c60eea71d4b156065d4d0c83a0bc5e91a77a8b\",\"dweb:/ipfs/QmYN3exd5AemxjBrN8XMB1p5LbbE16uC3sjbYjwi8AjcGR\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0x86c1470cbfd878491e5de030072b647352d36bd27122cffb928970b1945282aa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ad85dd393ee0a1917c57046abc5155f51f77844b2c6a42c05c1b8dd26d6ff3c1\",\"dweb:/ipfs/QmNqYc8To2NdnpP6E1tGz7t6A7beuENde5yovwov5pW1fA\"]},\"lib/openzeppelin-contracts/contracts/utils/types/Time.sol\":{\"keccak256\":\"0xc7755af115020049e4140f224f9ee88d7e1799ffb0646f37bf0df24bf6213f58\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7f09bf94d5274334ec021f61a04659db303f31e60460e14b709c9bf187740111\",\"dweb:/ipfs/QmNvgomZYUwFAt4cZbPWAiTeSZQreGehY9BK5xyVJsUttb\"]},\"src/contracts/DelegatorFactory.sol\":{\"keccak256\":\"0x3c3fb62c441302f4f75d94703779f5c4bb755c06f310b4c923dbf24d6e0adda9\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://597fa8be7179d8a555bf942c1dea0504273a1d34f6ac4c206fc2e816da143e68\",\"dweb:/ipfs/Qmf54DKNYXC7fTMcAFABw68RC6ZFenVgyAPGhbPTf6s5TR\"]},\"src/contracts/SlasherFactory.sol\":{\"keccak256\":\"0xbafc96e3d2511eb62942613645b4f5cbf6f603063a711b30e25940aaba08064c\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://489440f1181b1858e3b27a90ec6f514c0c287c602b4779676048213202165867\",\"dweb:/ipfs/QmRG7AQ9m9qHr8ofEvP1Ur8S379fFXTo9rmiWaAtZ9rsUc\"]},\"src/contracts/VaultConfigurator.sol\":{\"keccak256\":\"0x2484ee5cfac134e27cedeeef22d4111d7ecd4a4b62f02381f2c2b67c57ed7955\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://adce2d9b8a9fb670c0f3266d5407b752901921f1c9f9406c7db65d84e48e779a\",\"dweb:/ipfs/QmTbcKhdGfepqexFc8kziqPdfFC8SGZzFrVnEcJ5nKBiPz\"]},\"src/contracts/VaultFactory.sol\":{\"keccak256\":\"0xa9122dd11e5f21fa97a813e90f8c4905f0a4967b9611dd03437a31377cbdecb8\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://4c2feda1f9c0c7ddf65bccdc99494e4bfbb820fcddc3e4222e3b58ef821424a3\",\"dweb:/ipfs/Qmdmt4rH214jDmDsF9ELvJXVCt8abhk6poSmhJqqzLse3R\"]},\"src/contracts/common/Entity.sol\":{\"keccak256\":\"0x3d61a932995b8443381f3950542d388223a2c26dd5d29a3274dea3baa7388bd7\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://7cdf5f03ca72fd263fd32ff59c8d88ddca911ae83896a287d10772c1bbe9b138\",\"dweb:/ipfs/QmbP84r5BWT1Rn9AYTntWSf3xUMTTCohTZJFhbBhDXFoHa\"]},\"src/contracts/common/Factory.sol\":{\"keccak256\":\"0x41764643e6a2a3d80d694a3efee91f50a2fd084fb2bcd13566259443840e6369\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://fefc1e2a2189275388826f4f82ca421ca79c2866d3ef39dc2c7df46fe7cbf7c9\",\"dweb:/ipfs/QmSJ4VGmgpYUv5ni4ZYoSV4qMuZrk5DLjyB3Vv9NbFgeNZ\"]},\"src/contracts/common/MigratableEntity.sol\":{\"keccak256\":\"0x2d736f4dacd5d7e7697503bc426c78b8250fe1694ca157965ec178da6807de58\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://f1237acf96b4b9f9b69156e068eddd726a6e15bd8e87a18dc999cd4ba4da069c\",\"dweb:/ipfs/QmS6M8fiFFSeuJ4ZKKq1z8W7w4ybeHQSy5TLASGoc1LVic\"]},\"src/contracts/common/MigratableEntityProxy.sol\":{\"keccak256\":\"0x78ba27242276232ad10a45265e3c07f0a25722456f6abb3fb3f24a1c8e1b38d1\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://a19623df688e5085036b59fc934e35b72997f875d7ffda1cdc557c6ca468206d\",\"dweb:/ipfs/QmaQiT5uYZu5JmqhMjTDJnsq3nqaHbKrWAjrxKKLesdHV7\"]},\"src/contracts/common/MigratablesFactory.sol\":{\"keccak256\":\"0x5d1487c3456da4bd0bc2a131eeab97ab92484c923edefaebf190cc08d4080093\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://fec38d2e52e9c5148e95599c133fd6fe66d41296d6fc06e7329d2db199a1798f\",\"dweb:/ipfs/QmeiaydBXHHkJRUnpaZH1C6JQ7HPocTvQbUJBqKTvUeEYv\"]},\"src/contracts/common/Registry.sol\":{\"keccak256\":\"0x4a4004836d920953a8ec6e223de9a330f43acf7a5b93c6b8b3e4a95e0f129889\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://e8bdda207f3852c683a2b481602239a914f7e26bcd042ade618e263a43b67652\",\"dweb:/ipfs/Qmb8GZykJWxZcfwNp3SqhFizDFydFuV6LXgemV3vnWyLyu\"]},\"src/contracts/common/StaticDelegateCallable.sol\":{\"keccak256\":\"0x350029aa8955eacaffffaeb58babc5c98e80ebc5c5db388ed17ee6465f4a9d90\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://eb392a8ee9050e0af606897df63e3404e3829e8b688b580663892f9664195764\",\"dweb:/ipfs/QmaXC8jqV8UrrAFkzXTEv2fJF56sy33HhLxAzaRZmUxuXD\"]},\"src/contracts/libraries/Checkpoints.sol\":{\"keccak256\":\"0xba90097c8bfe0a975499428b5f8ac5569483c7d92ccc28c12d70de416aae040c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://12f5d93ca94cd06d3147db68993165a58e17903ed53682560de61f3085ad4609\",\"dweb:/ipfs/QmePiuAqvXprMLmFZkGZeGjvGPAvsEDHfCDv7BoQhXu9xE\"]},\"src/contracts/libraries/ERC4626Math.sol\":{\"keccak256\":\"0x8441160513c1cbeb1c3b9ee077bcc7e7ce20006b52a77c8dd39ff0ef89699939\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://943f8cc3e26ddf649f465f40c909819f5c864717c4baa339e9e403b9374a4653\",\"dweb:/ipfs/QmXPxi1sUDsrGprZdUgCzoPEosaZMv9ZhygWQ1vAi1phAB\"]},\"src/contracts/libraries/Subnetwork.sol\":{\"keccak256\":\"0xf5ef5506fd66082b3c2e7f3df37529f5a8efad32ac62e7c8914bd63219190bfe\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba031a54ee0d0e9a270c2b9e18437f5668cfeb659cfd5fe0677459d7fcac2a56\",\"dweb:/ipfs/QmReP3H7qQ78tAfgLnJKsNEQNCQfF1X1Get38Ffd4kzq32\"]},\"src/contracts/slasher/BaseSlasher.sol\":{\"keccak256\":\"0x190e5dce196a061bdad42468c52e9f5b0eb7810cd7d0c19f04d6a2e94984f1b6\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://07ca08d0cd43c2fe5d54a5577f6bdd522ced410f5d3a52e764deaa7ba26b5f06\",\"dweb:/ipfs/QmZe3PiMKBQKWcwodaLupragdqxPjgS4v1qMC7RXau8hDF\"]},\"src/contracts/vault/Vault.sol\":{\"keccak256\":\"0x2ceff6ed3298c4cad144c99fcc79b51cb9397d6ebef00285b915848b476f8c2e\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://11f2fb3581854f3ab6e82e8d4935d9eb510c903a13c3f022346c2956a58f5307\",\"dweb:/ipfs/QmdUnoXoyYoG9SGWyQZCFyLDRUUX3eXyXetkRvw6jxqqBz\"]},\"src/contracts/vault/VaultStorage.sol\":{\"keccak256\":\"0x57db25b127d77ea3472de53e3a4af3354399655b9268638b99ca5925fa364a56\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://aa763d9a6ec508ae3abfb8228b72b9fd9525279e5135d4962e79ff059feb1173\",\"dweb:/ipfs/QmcbDR6E9wyEpu6V2FkEC4hnWy47zXA9LSKJde6zSGd33Q\"]},\"src/interfaces/IDelegatorFactory.sol\":{\"keccak256\":\"0x7850453237ca93b301393506d2489a38830a60be0c29f39a4a1aee3508d836e6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8f418702b883c90e046af92d5654a25849baf79b61c11401ad603b861fed7b80\",\"dweb:/ipfs/Qmdju1XFJXx3uJidzoS7srcoSnzT8jUoPAmGEdbceYgB7j\"]},\"src/interfaces/ISlasherFactory.sol\":{\"keccak256\":\"0x30018af5c2719d9b5cfacbfc0277017896815b3fcc4dfbea78813e6ae81c1e56\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5e028fbed23ab973d8d9eb2be4e53a528dd01248e3233f56ab0f8ac9a7c9c220\",\"dweb:/ipfs/Qmd9cHMRSE52ESmxMiu5gTBpRNmDHQK5q18f7UTj8DQke4\"]},\"src/interfaces/IVaultConfigurator.sol\":{\"keccak256\":\"0x699d9b8c767780c4ea593fe7608bc0b3ef7646f54cea0610ae355f2974658eba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9ac4081f36b477025213f59c489cbb85f904580b145fa9f18ef9a7b794f0fba2\",\"dweb:/ipfs/QmPE3Ep6pTdaeFsJoixeom3NEaQiTe8WHrLoiFEGJo1zx4\"]},\"src/interfaces/IVaultFactory.sol\":{\"keccak256\":\"0x6f658b264fc8d530e458a98d83a09cb55ace4d3e509f0a3e9294471bb1bcf84d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a7253435e4e1d1ae19a50d14091ddb254f6a36f296440106bfc094623dd1aeba\",\"dweb:/ipfs/QmbHK9yoQ7Ctf3nuDLmqxTWPYD8cEm1TKXzfxePtE87AQN\"]},\"src/interfaces/common/IEntity.sol\":{\"keccak256\":\"0x8ef4b63d6da63489778ccd5f8d13ebdd527dd4b62730b2c616df5af7474d2d21\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a8d69576a9219d85c50816a18ad53a4d53cfcb27ed38b8cccc808dc2734b71b\",\"dweb:/ipfs/QmYVN3P4Q4REvBWJ97TbAcaxm3uyB2anV6NSGa6ZtSwcEv\"]},\"src/interfaces/common/IFactory.sol\":{\"keccak256\":\"0xe835ebda85d181b70874f6eb53f2a892aa3223d23efe247060da9b51d2b8e969\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://48b3dfb5f0491d90efbc8ed498b45358260ebac6e8f2aa0106b8b8fabdc988cb\",\"dweb:/ipfs/QmWnnCs3xiHeUvYfUWMJTSFZWc34bSYn9Zpm7f7syra3TA\"]},\"src/interfaces/common/IMigratableEntity.sol\":{\"keccak256\":\"0x8f5f2809f3afbe8ebfbb365dd7b57b4dd3b6f9943a6187eaf648d45895b8e3c4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ffe640537d539e7a4fde70d30d3e4c57f4ba9c2c25c450cea713aae38e8fd5c\",\"dweb:/ipfs/QmSUTGzvdcn1R1KB7tLThMRtESsfPbeXDhhhKWGtntzBds\"]},\"src/interfaces/common/IMigratableEntityProxy.sol\":{\"keccak256\":\"0x9030ced51ad12e0b3ddaa11bba4a3adcfa29e67b909c46065c14b19d158bb9fd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2d859c21510d1a0f06a71abe21dc6424608c1b2e3194a10e4df4cc88c4de9e9f\",\"dweb:/ipfs/QmNi6Buri2oaujc4vTv6bZ5mgMKFsjUmYmQLUNaDCXFEEt\"]},\"src/interfaces/common/IMigratablesFactory.sol\":{\"keccak256\":\"0xd4dfe9449bf005dbcbab9e0e85eaaca15a601ff971f34182a0b1832dc4b9d124\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ff8b73285192a9c64160b008d23a09da33e7164d10a9dc29d1a4464bd9c02be5\",\"dweb:/ipfs/QmZQW2LLV4dQfJ3coENKeycbzXJzi7zdvupsqWA4UV29Gq\"]},\"src/interfaces/common/IRegistry.sol\":{\"keccak256\":\"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014\",\"dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK\"]},\"src/interfaces/common/IStaticDelegateCallable.sol\":{\"keccak256\":\"0xa335d4e81b9071b7de66ef92b43ff20671d86516eb1be46fef29a3483cd3f5d5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d464b9db863c14c05547d2b23352f2e9b7b784799cf09f6bbc4906a2a74e3516\",\"dweb:/ipfs/QmUVWzFvJz7eEbDQKiFTTzwi7TEbjcs3VmwdM4kuptAKvi\"]},\"src/interfaces/delegator/IBaseDelegator.sol\":{\"keccak256\":\"0x96bb312f032e17accce3f8f80936d99468029d6b37c9ca74acdb4b026a0148ee\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2a66dcb5b7d1a6ef6a363431ea98ebd78bc4fdd3d7a134d9b542dc66e7d025c2\",\"dweb:/ipfs/QmRhTPLd2ZAyRHmJUFUcWKs9b3if49QY17LYZuRqWmghw8\"]},\"src/interfaces/service/INetworkMiddlewareService.sol\":{\"keccak256\":\"0x347afc7fcf1fbcdb96d66162070ef6c78aed27b3af2c1d5dfb4e511840631783\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2d90b8ceb495159e8e4e95d76447719dd166443f67dfabdd942846162071595c\",\"dweb:/ipfs/QmVVuiAWYx92T6vBvNMKZfTvraCf1fa16BsUKkdNs3hdHA\"]},\"src/interfaces/slasher/IBaseSlasher.sol\":{\"keccak256\":\"0x7c82528b445659c313ab77335c407b0b6efe5e79027187bb287f7bc74202b404\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0274c90aa5df1aa6bb470a6aab53992fb14fd7e5472c9430416505b29647d9cf\",\"dweb:/ipfs/QmckbmJLDetPemVzCnnGcKYWAZV2BRFXGDsjiaec8jkHxx\"]},\"src/interfaces/slasher/IBurner.sol\":{\"keccak256\":\"0xaf495dacc19ae0b3c787ba8021c5944927d70261536addd234d7dab146158c2b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9b3cc66251008be6ff9fc8b11ecc6831d5a9dca49a3fe9817fcd970253c1d447\",\"dweb:/ipfs/QmVxfb9ALGdF9W3SN2h41gQbUct6tawvu5bw4K89kFQ4HW\"]},\"src/interfaces/vault/IVault.sol\":{\"keccak256\":\"0xffee01d383cd4e1a5530c614bf4360c1ef070c288abec9da1eb531b51bc07235\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://04f0046cac285d8ec44ebbb1f79dc94fab4495767190cad8364fbc1fafaadfb9\",\"dweb:/ipfs/QmUawAunwzXfCyShWfhKeThAgKtqe51hmrxvrXvM772M2R\"]},\"src/interfaces/vault/IVaultStorage.sol\":{\"keccak256\":\"0x592626f13754194f83047135de19229c49390bd59e34659b1bb38be71d973a22\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://06a6a9dfddd05e580b32bebe2cff4f63ba26a653180676d58225dd30d9c89d3e\",\"dweb:/ipfs/QmdgzBeY6Sxo8mGtyBxtv1tM1c2kU6J6zjeRd7vuXm4DU6\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.25+commit.b61c2a91"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"vaultFactory","type":"address"},{"internalType":"address","name":"delegatorFactory","type":"address"},{"internalType":"address","name":"slasherFactory","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"stateMutability":"view","type":"function","name":"DELEGATOR_FACTORY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"SLASHER_FACTORY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"VAULT_FACTORY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"struct IVaultConfigurator.InitParams","name":"params","type":"tuple","components":[{"internalType":"uint64","name":"version","type":"uint64"},{"internalType":"address","name":"owner","type":"address"},{"internalType":"bytes","name":"vaultParams","type":"bytes"},{"internalType":"uint64","name":"delegatorIndex","type":"uint64"},{"internalType":"bytes","name":"delegatorParams","type":"bytes"},{"internalType":"bool","name":"withSlasher","type":"bool"},{"internalType":"uint64","name":"slasherIndex","type":"uint64"},{"internalType":"bytes","name":"slasherParams","type":"bytes"}]}],"stateMutability":"nonpayable","type":"function","name":"create","outputs":[{"internalType":"address","name":"vault","type":"address"},{"internalType":"address","name":"delegator","type":"address"},{"internalType":"address","name":"slasher","type":"address"}]}],"devdoc":{"kind":"dev","methods":{"create((uint64,address,bytes,uint64,bytes,bool,uint64,bytes))":{"params":{"params":"initial parameters needed for a vault with a delegator and a slasher deployment"},"returns":{"delegator":"address of the delegator","slasher":"address of the slasher","vault":"address of the vault"}}},"version":1},"userdoc":{"kind":"user","methods":{"DELEGATOR_FACTORY()":{"notice":"Get the delegator factory's address."},"SLASHER_FACTORY()":{"notice":"Get the slasher factory's address."},"VAULT_FACTORY()":{"notice":"Get the vault factory's address."},"create((uint64,address,bytes,uint64,bytes,bool,uint64,bytes))":{"notice":"Create a new vault with a delegator and a slasher."}},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/contracts/VaultConfigurator.sol":"VaultConfigurator"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol":{"keccak256":"0x6662ec4e5cefca03eeadd073e9469df8d2944bb2ee8ec8f7622c2c46aab5f225","urls":["bzz-raw://4d8544c6f8daa4d1bc215c6a72fe0acdb748664a105b0e5efc19295667521d45","dweb:/ipfs/QmdGWqdnXT8S3RgCR6aV8XHZrsybieMQLLnug1NtpSjEXN"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol":{"keccak256":"0xc163fcf9bb10138631a9ba5564df1fa25db9adff73bd9ee868a8ae1858fe093a","urls":["bzz-raw://9706d43a0124053d9880f6e31a59f31bc0a6a3dc1acd66ce0a16e1111658c5f6","dweb:/ipfs/QmUFmfowzkRwGtDu36cXV9SPTBHJ3n7dG9xQiK5B28jTf2"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b","urls":["bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609","dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol":{"keccak256":"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397","urls":["bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9","dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardUpgradeable.sol":{"keccak256":"0xb44e086e941292cdc7f440de51478493894ef0b1aeccb0c4047445919f667f74","urls":["bzz-raw://942dad22fbdc1669f025540ba63aa3ccfad5f8458fc5d4525b31ebf272e7af45","dweb:/ipfs/Qmdo4X2M82aM3AMoW2kf2jhYkSCyC4T1pHNd6obdsDFnAB"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol":{"keccak256":"0xdaba3f7c42c55b2896353f32bd27d4d5f8bae741b3b05d4c53f67abc4dc47ce8","urls":["bzz-raw://1fa2e61141c602510bcd2cd936ed9561922ac8772a9b9c9a9db091a74e354a45","dweb:/ipfs/QmcHQDDoEBwJmwUbzoVkytvJsBx3KVHYFFnDkvRGWh9Wmh"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol":{"keccak256":"0xb6b36edd6a2999fd243ff226d6cbf84bd71af2432bbd0dfe19392996a1d9cb41","urls":["bzz-raw://1fd2f35495652e57e3f99bc6c510bc5f7dd398a176ea2e72d8ed730aebc6ca26","dweb:/ipfs/QmTQV6X4gkikTib49cho5iDX3JvSQbdsoEChoDwrk3CbbH"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/access/Ownable.sol":{"keccak256":"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb","urls":["bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6","dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/Clones.sol":{"keccak256":"0xd18408af8a91bedb3d56343eeb9b30eb852e6dea93a5e2d5c6db9ca4cb905155","urls":["bzz-raw://061475b7302a732dc598907790f407417551c2b13e89daa57b3698489ef5484b","dweb:/ipfs/QmdX5qmk3VSniSErFuD4aVawQxUi2MuUbP7spPcHddPfcX"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Proxy.sol":{"keccak256":"0xbfb6695731de677140fbf76c772ab08c4233a122fb51ac28ac120fc49bbbc4ec","urls":["bzz-raw://68f8fded7cc318efa15874b7c6a983fe17a4a955d72d240353a9a4ca1e1b824c","dweb:/ipfs/QmdcmBL9Qo4Tk3Dby4wFYabGyot9JNeLPxpSXZUgUm92BV"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol":{"keccak256":"0x06a78f9b3ee3e6d0eb4e4cd635ba49960bea34cac1db8c0a27c75f2319f1fd65","urls":["bzz-raw://547d21aa17f4f3f1a1a7edf7167beff8dd9496a0348d5588f15cc8a4b29d052a","dweb:/ipfs/QmT16JtRQSWNpLo9W23jr6CzaMuTAcQcjJJcdRd8HLJ6cE"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/Proxy.sol":{"keccak256":"0xc3f2ec76a3de8ed7a7007c46166f5550c72c7709e3fc7e8bb3111a7191cdedbd","urls":["bzz-raw://e73efb4c2ca655882dc237c6b4f234a9bd36d97159d8fcaa837eb01171f726ac","dweb:/ipfs/QmTNnnv7Gu5fs5G1ZMh7Fexp8N4XUs3XrNAngjcxgiss3e"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol":{"keccak256":"0xc59a78b07b44b2cf2e8ab4175fca91e8eca1eee2df7357b8d2a8833e5ea1f64c","urls":["bzz-raw://5aa4f07e65444784c29cd7bfcc2341b34381e4e5b5da9f0c5bd00d7f430e66fa","dweb:/ipfs/QmWRMh4Q9DpaU9GvsiXmDdoNYMyyece9if7hnfLz7uqzWM"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70","urls":["bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c","dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol":{"keccak256":"0x6008dabfe393240d73d7dd7688033f72740d570aa422254d29a7dce8568f3aff","urls":["bzz-raw://f5196ec75139918c6c7bb4251b36395e668f1fa6d206beba7e7520e74913940d","dweb:/ipfs/QmSyqjksXxmm2mCG6qRd1yuwLykypkSVBbnBnGqJRcuJMi"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0x37bb49513c49c87c4642a891b13b63571bc87013dde806617aa1efb54605f386","urls":["bzz-raw://b3036b3a83b7c48f96641f2a9002b9f2dcb6a5958dd670894ada21ae8229b3d0","dweb:/ipfs/QmUNfSBdoVtjhETaUJCYcaC7pTMgbhht926tJ2uXJbiVd3"],"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"},"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol":{"keccak256":"0x32ba59b4b7299237c8ba56319110989d7978a039faf754793064e967e5894418","urls":["bzz-raw://1ae50c8b562427df610cc4540c9bf104acca7ef8e2dcae567ae7e52272281e9c","dweb:/ipfs/QmTHiadFCSJUPpRjNegc5SahmeU8bAoY8i9Aq6tVscbcKR"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b","urls":["bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df","dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d","urls":["bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875","dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol":{"keccak256":"0xe19a4d5f31d2861e7344e8e535e2feafb913d806d3e2b5fe7782741a2a7094fe","urls":["bzz-raw://4aed79c0fa6f0546ed02f2f683e8f77f0fd2ed7eb34d8bbf3d373c9a6d95b13c","dweb:/ipfs/QmWqVz6UAVqmnWU5pqYPt1o6iDEZyPaBraAA3rKfTTSfYj"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/Checkpoints.sol":{"keccak256":"0xbdc5e074d7dd6678f67e92b1a51a20226801a407b0e1af3da367c5d1ff4519ad","urls":["bzz-raw://a36cca6b22fff3db16fc789ff6c60eea71d4b156065d4d0c83a0bc5e91a77a8b","dweb:/ipfs/QmYN3exd5AemxjBrN8XMB1p5LbbE16uC3sjbYjwi8AjcGR"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0x86c1470cbfd878491e5de030072b647352d36bd27122cffb928970b1945282aa","urls":["bzz-raw://ad85dd393ee0a1917c57046abc5155f51f77844b2c6a42c05c1b8dd26d6ff3c1","dweb:/ipfs/QmNqYc8To2NdnpP6E1tGz7t6A7beuENde5yovwov5pW1fA"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/types/Time.sol":{"keccak256":"0xc7755af115020049e4140f224f9ee88d7e1799ffb0646f37bf0df24bf6213f58","urls":["bzz-raw://7f09bf94d5274334ec021f61a04659db303f31e60460e14b709c9bf187740111","dweb:/ipfs/QmNvgomZYUwFAt4cZbPWAiTeSZQreGehY9BK5xyVJsUttb"],"license":"MIT"},"src/contracts/DelegatorFactory.sol":{"keccak256":"0x3c3fb62c441302f4f75d94703779f5c4bb755c06f310b4c923dbf24d6e0adda9","urls":["bzz-raw://597fa8be7179d8a555bf942c1dea0504273a1d34f6ac4c206fc2e816da143e68","dweb:/ipfs/Qmf54DKNYXC7fTMcAFABw68RC6ZFenVgyAPGhbPTf6s5TR"],"license":"BUSL-1.1"},"src/contracts/SlasherFactory.sol":{"keccak256":"0xbafc96e3d2511eb62942613645b4f5cbf6f603063a711b30e25940aaba08064c","urls":["bzz-raw://489440f1181b1858e3b27a90ec6f514c0c287c602b4779676048213202165867","dweb:/ipfs/QmRG7AQ9m9qHr8ofEvP1Ur8S379fFXTo9rmiWaAtZ9rsUc"],"license":"BUSL-1.1"},"src/contracts/VaultConfigurator.sol":{"keccak256":"0x2484ee5cfac134e27cedeeef22d4111d7ecd4a4b62f02381f2c2b67c57ed7955","urls":["bzz-raw://adce2d9b8a9fb670c0f3266d5407b752901921f1c9f9406c7db65d84e48e779a","dweb:/ipfs/QmTbcKhdGfepqexFc8kziqPdfFC8SGZzFrVnEcJ5nKBiPz"],"license":"BUSL-1.1"},"src/contracts/VaultFactory.sol":{"keccak256":"0xa9122dd11e5f21fa97a813e90f8c4905f0a4967b9611dd03437a31377cbdecb8","urls":["bzz-raw://4c2feda1f9c0c7ddf65bccdc99494e4bfbb820fcddc3e4222e3b58ef821424a3","dweb:/ipfs/Qmdmt4rH214jDmDsF9ELvJXVCt8abhk6poSmhJqqzLse3R"],"license":"BUSL-1.1"},"src/contracts/common/Entity.sol":{"keccak256":"0x3d61a932995b8443381f3950542d388223a2c26dd5d29a3274dea3baa7388bd7","urls":["bzz-raw://7cdf5f03ca72fd263fd32ff59c8d88ddca911ae83896a287d10772c1bbe9b138","dweb:/ipfs/QmbP84r5BWT1Rn9AYTntWSf3xUMTTCohTZJFhbBhDXFoHa"],"license":"BUSL-1.1"},"src/contracts/common/Factory.sol":{"keccak256":"0x41764643e6a2a3d80d694a3efee91f50a2fd084fb2bcd13566259443840e6369","urls":["bzz-raw://fefc1e2a2189275388826f4f82ca421ca79c2866d3ef39dc2c7df46fe7cbf7c9","dweb:/ipfs/QmSJ4VGmgpYUv5ni4ZYoSV4qMuZrk5DLjyB3Vv9NbFgeNZ"],"license":"BUSL-1.1"},"src/contracts/common/MigratableEntity.sol":{"keccak256":"0x2d736f4dacd5d7e7697503bc426c78b8250fe1694ca157965ec178da6807de58","urls":["bzz-raw://f1237acf96b4b9f9b69156e068eddd726a6e15bd8e87a18dc999cd4ba4da069c","dweb:/ipfs/QmS6M8fiFFSeuJ4ZKKq1z8W7w4ybeHQSy5TLASGoc1LVic"],"license":"BUSL-1.1"},"src/contracts/common/MigratableEntityProxy.sol":{"keccak256":"0x78ba27242276232ad10a45265e3c07f0a25722456f6abb3fb3f24a1c8e1b38d1","urls":["bzz-raw://a19623df688e5085036b59fc934e35b72997f875d7ffda1cdc557c6ca468206d","dweb:/ipfs/QmaQiT5uYZu5JmqhMjTDJnsq3nqaHbKrWAjrxKKLesdHV7"],"license":"BUSL-1.1"},"src/contracts/common/MigratablesFactory.sol":{"keccak256":"0x5d1487c3456da4bd0bc2a131eeab97ab92484c923edefaebf190cc08d4080093","urls":["bzz-raw://fec38d2e52e9c5148e95599c133fd6fe66d41296d6fc06e7329d2db199a1798f","dweb:/ipfs/QmeiaydBXHHkJRUnpaZH1C6JQ7HPocTvQbUJBqKTvUeEYv"],"license":"BUSL-1.1"},"src/contracts/common/Registry.sol":{"keccak256":"0x4a4004836d920953a8ec6e223de9a330f43acf7a5b93c6b8b3e4a95e0f129889","urls":["bzz-raw://e8bdda207f3852c683a2b481602239a914f7e26bcd042ade618e263a43b67652","dweb:/ipfs/Qmb8GZykJWxZcfwNp3SqhFizDFydFuV6LXgemV3vnWyLyu"],"license":"BUSL-1.1"},"src/contracts/common/StaticDelegateCallable.sol":{"keccak256":"0x350029aa8955eacaffffaeb58babc5c98e80ebc5c5db388ed17ee6465f4a9d90","urls":["bzz-raw://eb392a8ee9050e0af606897df63e3404e3829e8b688b580663892f9664195764","dweb:/ipfs/QmaXC8jqV8UrrAFkzXTEv2fJF56sy33HhLxAzaRZmUxuXD"],"license":"BUSL-1.1"},"src/contracts/libraries/Checkpoints.sol":{"keccak256":"0xba90097c8bfe0a975499428b5f8ac5569483c7d92ccc28c12d70de416aae040c","urls":["bzz-raw://12f5d93ca94cd06d3147db68993165a58e17903ed53682560de61f3085ad4609","dweb:/ipfs/QmePiuAqvXprMLmFZkGZeGjvGPAvsEDHfCDv7BoQhXu9xE"],"license":"MIT"},"src/contracts/libraries/ERC4626Math.sol":{"keccak256":"0x8441160513c1cbeb1c3b9ee077bcc7e7ce20006b52a77c8dd39ff0ef89699939","urls":["bzz-raw://943f8cc3e26ddf649f465f40c909819f5c864717c4baa339e9e403b9374a4653","dweb:/ipfs/QmXPxi1sUDsrGprZdUgCzoPEosaZMv9ZhygWQ1vAi1phAB"],"license":"MIT"},"src/contracts/libraries/Subnetwork.sol":{"keccak256":"0xf5ef5506fd66082b3c2e7f3df37529f5a8efad32ac62e7c8914bd63219190bfe","urls":["bzz-raw://ba031a54ee0d0e9a270c2b9e18437f5668cfeb659cfd5fe0677459d7fcac2a56","dweb:/ipfs/QmReP3H7qQ78tAfgLnJKsNEQNCQfF1X1Get38Ffd4kzq32"],"license":"MIT"},"src/contracts/slasher/BaseSlasher.sol":{"keccak256":"0x190e5dce196a061bdad42468c52e9f5b0eb7810cd7d0c19f04d6a2e94984f1b6","urls":["bzz-raw://07ca08d0cd43c2fe5d54a5577f6bdd522ced410f5d3a52e764deaa7ba26b5f06","dweb:/ipfs/QmZe3PiMKBQKWcwodaLupragdqxPjgS4v1qMC7RXau8hDF"],"license":"BUSL-1.1"},"src/contracts/vault/Vault.sol":{"keccak256":"0x2ceff6ed3298c4cad144c99fcc79b51cb9397d6ebef00285b915848b476f8c2e","urls":["bzz-raw://11f2fb3581854f3ab6e82e8d4935d9eb510c903a13c3f022346c2956a58f5307","dweb:/ipfs/QmdUnoXoyYoG9SGWyQZCFyLDRUUX3eXyXetkRvw6jxqqBz"],"license":"BUSL-1.1"},"src/contracts/vault/VaultStorage.sol":{"keccak256":"0x57db25b127d77ea3472de53e3a4af3354399655b9268638b99ca5925fa364a56","urls":["bzz-raw://aa763d9a6ec508ae3abfb8228b72b9fd9525279e5135d4962e79ff059feb1173","dweb:/ipfs/QmcbDR6E9wyEpu6V2FkEC4hnWy47zXA9LSKJde6zSGd33Q"],"license":"BUSL-1.1"},"src/interfaces/IDelegatorFactory.sol":{"keccak256":"0x7850453237ca93b301393506d2489a38830a60be0c29f39a4a1aee3508d836e6","urls":["bzz-raw://8f418702b883c90e046af92d5654a25849baf79b61c11401ad603b861fed7b80","dweb:/ipfs/Qmdju1XFJXx3uJidzoS7srcoSnzT8jUoPAmGEdbceYgB7j"],"license":"MIT"},"src/interfaces/ISlasherFactory.sol":{"keccak256":"0x30018af5c2719d9b5cfacbfc0277017896815b3fcc4dfbea78813e6ae81c1e56","urls":["bzz-raw://5e028fbed23ab973d8d9eb2be4e53a528dd01248e3233f56ab0f8ac9a7c9c220","dweb:/ipfs/Qmd9cHMRSE52ESmxMiu5gTBpRNmDHQK5q18f7UTj8DQke4"],"license":"MIT"},"src/interfaces/IVaultConfigurator.sol":{"keccak256":"0x699d9b8c767780c4ea593fe7608bc0b3ef7646f54cea0610ae355f2974658eba","urls":["bzz-raw://9ac4081f36b477025213f59c489cbb85f904580b145fa9f18ef9a7b794f0fba2","dweb:/ipfs/QmPE3Ep6pTdaeFsJoixeom3NEaQiTe8WHrLoiFEGJo1zx4"],"license":"MIT"},"src/interfaces/IVaultFactory.sol":{"keccak256":"0x6f658b264fc8d530e458a98d83a09cb55ace4d3e509f0a3e9294471bb1bcf84d","urls":["bzz-raw://a7253435e4e1d1ae19a50d14091ddb254f6a36f296440106bfc094623dd1aeba","dweb:/ipfs/QmbHK9yoQ7Ctf3nuDLmqxTWPYD8cEm1TKXzfxePtE87AQN"],"license":"MIT"},"src/interfaces/common/IEntity.sol":{"keccak256":"0x8ef4b63d6da63489778ccd5f8d13ebdd527dd4b62730b2c616df5af7474d2d21","urls":["bzz-raw://5a8d69576a9219d85c50816a18ad53a4d53cfcb27ed38b8cccc808dc2734b71b","dweb:/ipfs/QmYVN3P4Q4REvBWJ97TbAcaxm3uyB2anV6NSGa6ZtSwcEv"],"license":"MIT"},"src/interfaces/common/IFactory.sol":{"keccak256":"0xe835ebda85d181b70874f6eb53f2a892aa3223d23efe247060da9b51d2b8e969","urls":["bzz-raw://48b3dfb5f0491d90efbc8ed498b45358260ebac6e8f2aa0106b8b8fabdc988cb","dweb:/ipfs/QmWnnCs3xiHeUvYfUWMJTSFZWc34bSYn9Zpm7f7syra3TA"],"license":"MIT"},"src/interfaces/common/IMigratableEntity.sol":{"keccak256":"0x8f5f2809f3afbe8ebfbb365dd7b57b4dd3b6f9943a6187eaf648d45895b8e3c4","urls":["bzz-raw://0ffe640537d539e7a4fde70d30d3e4c57f4ba9c2c25c450cea713aae38e8fd5c","dweb:/ipfs/QmSUTGzvdcn1R1KB7tLThMRtESsfPbeXDhhhKWGtntzBds"],"license":"MIT"},"src/interfaces/common/IMigratableEntityProxy.sol":{"keccak256":"0x9030ced51ad12e0b3ddaa11bba4a3adcfa29e67b909c46065c14b19d158bb9fd","urls":["bzz-raw://2d859c21510d1a0f06a71abe21dc6424608c1b2e3194a10e4df4cc88c4de9e9f","dweb:/ipfs/QmNi6Buri2oaujc4vTv6bZ5mgMKFsjUmYmQLUNaDCXFEEt"],"license":"MIT"},"src/interfaces/common/IMigratablesFactory.sol":{"keccak256":"0xd4dfe9449bf005dbcbab9e0e85eaaca15a601ff971f34182a0b1832dc4b9d124","urls":["bzz-raw://ff8b73285192a9c64160b008d23a09da33e7164d10a9dc29d1a4464bd9c02be5","dweb:/ipfs/QmZQW2LLV4dQfJ3coENKeycbzXJzi7zdvupsqWA4UV29Gq"],"license":"MIT"},"src/interfaces/common/IRegistry.sol":{"keccak256":"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb","urls":["bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014","dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK"],"license":"MIT"},"src/interfaces/common/IStaticDelegateCallable.sol":{"keccak256":"0xa335d4e81b9071b7de66ef92b43ff20671d86516eb1be46fef29a3483cd3f5d5","urls":["bzz-raw://d464b9db863c14c05547d2b23352f2e9b7b784799cf09f6bbc4906a2a74e3516","dweb:/ipfs/QmUVWzFvJz7eEbDQKiFTTzwi7TEbjcs3VmwdM4kuptAKvi"],"license":"MIT"},"src/interfaces/delegator/IBaseDelegator.sol":{"keccak256":"0x96bb312f032e17accce3f8f80936d99468029d6b37c9ca74acdb4b026a0148ee","urls":["bzz-raw://2a66dcb5b7d1a6ef6a363431ea98ebd78bc4fdd3d7a134d9b542dc66e7d025c2","dweb:/ipfs/QmRhTPLd2ZAyRHmJUFUcWKs9b3if49QY17LYZuRqWmghw8"],"license":"MIT"},"src/interfaces/service/INetworkMiddlewareService.sol":{"keccak256":"0x347afc7fcf1fbcdb96d66162070ef6c78aed27b3af2c1d5dfb4e511840631783","urls":["bzz-raw://2d90b8ceb495159e8e4e95d76447719dd166443f67dfabdd942846162071595c","dweb:/ipfs/QmVVuiAWYx92T6vBvNMKZfTvraCf1fa16BsUKkdNs3hdHA"],"license":"MIT"},"src/interfaces/slasher/IBaseSlasher.sol":{"keccak256":"0x7c82528b445659c313ab77335c407b0b6efe5e79027187bb287f7bc74202b404","urls":["bzz-raw://0274c90aa5df1aa6bb470a6aab53992fb14fd7e5472c9430416505b29647d9cf","dweb:/ipfs/QmckbmJLDetPemVzCnnGcKYWAZV2BRFXGDsjiaec8jkHxx"],"license":"MIT"},"src/interfaces/slasher/IBurner.sol":{"keccak256":"0xaf495dacc19ae0b3c787ba8021c5944927d70261536addd234d7dab146158c2b","urls":["bzz-raw://9b3cc66251008be6ff9fc8b11ecc6831d5a9dca49a3fe9817fcd970253c1d447","dweb:/ipfs/QmVxfb9ALGdF9W3SN2h41gQbUct6tawvu5bw4K89kFQ4HW"],"license":"MIT"},"src/interfaces/vault/IVault.sol":{"keccak256":"0xffee01d383cd4e1a5530c614bf4360c1ef070c288abec9da1eb531b51bc07235","urls":["bzz-raw://04f0046cac285d8ec44ebbb1f79dc94fab4495767190cad8364fbc1fafaadfb9","dweb:/ipfs/QmUawAunwzXfCyShWfhKeThAgKtqe51hmrxvrXvM772M2R"],"license":"MIT"},"src/interfaces/vault/IVaultStorage.sol":{"keccak256":"0x592626f13754194f83047135de19229c49390bd59e34659b1bb38be71d973a22","urls":["bzz-raw://06a6a9dfddd05e580b32bebe2cff4f63ba26a653180676d58225dd30d9c89d3e","dweb:/ipfs/QmdgzBeY6Sxo8mGtyBxtv1tM1c2kU6J6zjeRd7vuXm4DU6"],"license":"MIT"}},"version":1},"id":72} \ No newline at end of file diff --git a/out/VaultFactory.sol/VaultFactory.json b/out/VaultFactory.sol/VaultFactory.json index baf395bd..ef271481 100644 --- a/out/VaultFactory.sol/VaultFactory.json +++ b/out/VaultFactory.sol/VaultFactory.json @@ -1 +1 @@ -{"abi":[{"type":"constructor","inputs":[{"name":"owner_","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"blacklist","inputs":[{"name":"version","type":"uint64","internalType":"uint64"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"blacklisted","inputs":[{"name":"version","type":"uint64","internalType":"uint64"}],"outputs":[{"name":"value","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"create","inputs":[{"name":"version","type":"uint64","internalType":"uint64"},{"name":"owner_","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"entity_","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"entity","inputs":[{"name":"index","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"implementation","inputs":[{"name":"version","type":"uint64","internalType":"uint64"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"isEntity","inputs":[{"name":"entity_","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"lastVersion","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"migrate","inputs":[{"name":"entity_","type":"address","internalType":"address"},{"name":"newVersion","type":"uint64","internalType":"uint64"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"totalEntities","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"whitelist","inputs":[{"name":"implementation_","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"AddEntity","inputs":[{"name":"entity","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Blacklist","inputs":[{"name":"version","type":"uint64","indexed":true,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"Migrate","inputs":[{"name":"entity","type":"address","indexed":true,"internalType":"address"},{"name":"newVersion","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Whitelist","inputs":[{"name":"implementation","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"error","name":"AlreadyBlacklisted","inputs":[]},{"type":"error","name":"AlreadyWhitelisted","inputs":[]},{"type":"error","name":"EntityNotExist","inputs":[]},{"type":"error","name":"InvalidImplementation","inputs":[]},{"type":"error","name":"InvalidVersion","inputs":[]},{"type":"error","name":"NotOwner","inputs":[]},{"type":"error","name":"OldVersion","inputs":[]},{"type":"error","name":"OwnableInvalidOwner","inputs":[{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"OwnableUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"}]}],"bytecode":{"object":"0x60803460b557601f61121538819003918201601f19168301916001600160401b0383118484101760b95780849260209460405283398101031260b557516001600160a01b03908181169081900360b5578015609d57600280546001600160a01b03198116831790915560405192167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a361114790816100ce8239f35b604051631e4fbdf760e01b81525f6004820152602490fd5b5f80fd5b634e487b7160e01b5f52604160045260245ffdfe60406080815260049081361015610014575f80fd5b5f915f3560e01c90816314887c581461084a5781633ac04911146106dc57816358336662146104945781635cd8b15e1461047757816364dfea061461044f578163715018a6146103f25781638da5cb5b146103c95781639b19251a146102e3578163b42ba2a214610273578163b572a966146101b9578163b6caa1191461017c578163f2fde38b146100e8575063f9661602146100af575f80fd5b346100e45760203660031901126100e4576020906100d36100ce6108a3565b610999565b90516001600160a01b039091168152f35b5080fd5b9050346101785760203660031901126101785761010361088d565b9061010c610a0f565b6001600160a01b03918216928315610162575050600254826bffffffffffffffffffffffff60a01b821617600255167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a380f35b51631e4fbdf760e01b8152908101849052602490fd5b8280fd5b5050346100e45760203660031901126100e45760ff8160209367ffffffffffffffff6101a66108a3565b1681526003855220541690519015158152f35b91905034610178576020366003190112610178576101d56108a3565b916101de610a0f565b67ffffffffffffffff809316928315908115610266575b5061025857828452600360205260ff828520541661024a575081835260036020528220805460ff191660011790557ffc8245c2838846b295ae66fbe0d08e20c799b737c93b56f7b209df2e5fa2d4588280a280f35b905163f53de75f60e01b8152fd5b905163a9146eeb60e01b8152fd5b905081541683115f6101f5565b8284346102e05760203660031901126102e0575081355f548110156102cd575f80527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563015490516001600160a01b03909116815260209150f35b603283634e487b7160e01b5f525260245ffd5b80fd5b905034610178576020366003190112610178576102fe61088d565b91610307610a0f565b80516202dd3160ec1b81526001600160a01b03938416936020828581885afa9182156103bf57869261038e575b50309116036103815761034683610af2565b156103745750507feb73900b98b6a3e2b8b01708fe544760cf570d21e7fbe5225f24e48b5b2b432e8280a280f35b5163b73e95e160e01b8152fd5b5163340aafcd60e11b8152fd5b6103b191925060203d6020116103b8575b6103a98183610908565b81019061097a565b905f610334565b503d61039f565b83513d88823e3d90fd5b5050346100e457816003193601126100e45760025490516001600160a01b039091168152602090f35b83346102e057806003193601126102e05761040b610a0f565b600280546001600160a01b031981169091555f906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a380f35b8284346102e057806003193601126102e0575067ffffffffffffffff60209254169051908152f35b5050346100e457816003193601126100e457602091549051908152f35b83833461063d57606036600319011261063d576104af61088d565b6024359167ffffffffffffffff908184169182850361063d5760443581811161063d576104df90369089016108ba565b6001600160a01b039586165f81815260016020526040902054909792939290156106cc578451638da5cb5b60e01b81526020979088818d818d5afa9081156106c2575f916106a5575b5016330361069557845163054fd4d560e41b815287818c818c5afa90811561068b579084915f91610651575b5016861115610641576105696105a291610999565b916105948651958692630557c60960e31b8b85015289602485015288604485015260648401916108e8565b03601f198101855284610908565b863b1561063d57835163278f794360e11b8152925f91849182916105c991908d840161093e565b0381838a5af1801561063357610607575b5050519081527fb91c18bf7dbfdff96560fb98128531c4c6187079fe0bd7f24a81f54ea87f35a79190a280f35b9080929650116106205784529293505f928486806105da565b604186634e487b7160e01b5f525260245ffd5b83513d5f823e3d90fd5b5f80fd5b8451630384ebd960e41b81528a90fd5b809250898092503d8311610684575b61066a8183610908565b8101031261063d5751838116810361063d5783908c610554565b503d610660565b86513d5f823e3d90fd5b84516330cd747160e01b81528a90fd5b6106bc9150893d8b116103b8576103a98183610908565b8c610528565b87513d5f823e3d90fd5b845163e3fd10ff60e01b81528a90fd5b823461063d57606036600319011261063d576106f66108a3565b6001600160a01b03926024358481169081900361063d5760443567ffffffffffffffff80821161063d576107306107bf92369086016108ba565b92905f546107b389519260208401928352610785868b1693848d8701528960608701526080808701528561076860a082018b866108e8565b039561077c601f1997888101835282610908565b5190209a610999565b968b519889946315fb20f360e21b6020870152602486015260448501526060606485015260848401916108e8565b03908101855284610908565b8551936105c39081860192868410908411176108375750918493916107e893610b4f863961093e565b03905ff591821561082d57602092169061080182610a84565b505190807fb919910dcefbf753bfd926ab3b1d3f85d877190c3d01ba1bd585047b99b99f0b5f80a28152f35b50513d5f823e3d90fd5b604190634e487b7160e01b5f525260245ffd5b823461063d57602036600319011261063d576020906108846001600160a01b0361087261088d565b165f52600160205260405f2054151590565b90519015158152f35b600435906001600160a01b038216820361063d57565b6004359067ffffffffffffffff8216820361063d57565b9181601f8401121561063d5782359167ffffffffffffffff831161063d576020838186019501011161063d57565b908060209392818452848401375f828201840152601f01601f1916010190565b90601f8019910116810190811067ffffffffffffffff82111761092a57604052565b634e487b7160e01b5f52604160045260245ffd5b6001600160a01b0390911681526040602080830182905283519183018290526060938291018484015e5f828201840152601f01601f1916010190565b9081602091031261063d57516001600160a01b038116810361063d5790565b67ffffffffffffffff80911680158015610a02575b6109f0575f1901908082116109dc576109c79116610a3b565b905460039190911b1c6001600160a01b031690565b634e487b7160e01b5f52601160045260245ffd5b60405163a9146eeb60e01b8152600490fd5b50816004541681116109ae565b6002546001600160a01b03163303610a2357565b60405163118cdaa760e01b8152336004820152602490fd5b600454811015610a705760045f527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b01905f90565b634e487b7160e01b5f52603260045260245ffd5b805f52600160205260405f2054155f14610aed575f54600160401b81101561092a5760018101805f55811015610a705781907f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e56301555f54905f52600160205260405f2055600190565b505f90565b805f52600560205260405f2054155f14610aed57600454600160401b81101561092a57806001610b259201600455610a3b565b81549060031b9083821b915f19901b1916179055600454905f52600560205260405f205560019056fe604060a08152346101df576105c38038038061001a816101e3565b92833981019082818303126101df5780516001600160a01b0392838216918281036101df5760208481015190946001600160401b0382116101df570182601f820112156101df57805161007461006f8261021c565b6101e3565b91818352868301948783830101116101df57815f9288809301875e83010152813b156101c7577f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b03199081168617909155937fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a25180156101bf575f809161012694845af43d156101b7573d9161011861006f8461021c565b9283523d5f8785013e610237565b505b336080527f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f847fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d610394855494825191861682523390820152a133156101a057163317905551610328908161029b82396080518160f10152f35b8351633173bdd160e11b81525f6004820152602490fd5b606091610237565b505050610128565b8651634c9c8ce360e01b815260048101859052602490fd5b5f80fd5b6040519190601f01601f191682016001600160401b0381118382101761020857604052565b634e487b7160e01b5f52604160045260245ffd5b6001600160401b03811161020857601f01601f191660200190565b9061025e575080511561024c57805190602001fd5b604051630a12f52160e11b8152600490fd5b81511580610291575b61026f575090565b604051639996b31560e01b81526001600160a01b039091166004820152602490fd5b50803b1561026756fe6080604052600436106101f4575f3560e01c634f1ef286036101f45734610086576040366003190112610086576004356001600160a01b0381168103610086576024359067ffffffffffffffff9081831161008657366023840112156100865782600401359182116100865736602483850101116100865760246100849301906100e5565b005b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b6040519190601f01601f1916820167ffffffffffffffff8111838210176100c457604052565b61008a565b67ffffffffffffffff81116100c457601f01601f191660200190565b916001600160a01b03907f0000000000000000000000000000000000000000000000000000000000000000821633036101e257610129610124826100c9565b61009e565b92818452368282011161008657815f926020928387013784010152823b156101c85782167f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc816bffffffffffffffffffffffff60a01b8254161790557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a28051156101bc576101b991610256565b50565b50506101c661023d565b565b604051634c9c8ce360e01b81529083166004820152602490fd5b6040516334ad5dbb60e21b8152600490fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc545f9081906001600160a01b0316368280378136915af43d5f803e15610239573d5ff35b3d5ffd5b3461024457565b60405163b398979f60e01b8152600490fd5b5f8061028893602081519101845af43d1561028b573d91610279610124846100c9565b9283523d5f602085013e61028f565b90565b6060915b906102b657508051156102a457805190602001fd5b604051630a12f52160e11b8152600490fd5b815115806102e9575b6102c7575090565b604051639996b31560e01b81526001600160a01b039091166004820152602490fd5b50803b156102bf56fea264697066735822122028e25eef202279b950fae0b3b6144d4d7a8824832024cb7fc76ff5455d7c319964736f6c63430008190033a264697066735822122044a749ed3b4cc7533f65daf7149d976a000661a24fc7eadbf8ace3eef7a619fb64736f6c63430008190033","sourceMap":"195:138:68:-:0;;;;;;;;;;;;;-1:-1:-1;;195:138:68;;;;-1:-1:-1;;;;;195:138:68;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;195:138:68;;;;;;;;;;1273:26:32;;1269:95;;3004:6;195:138:68;;-1:-1:-1;;;;;;195:138:68;;;;;;;;;;;3052:40:32;-1:-1:-1;;3052:40:32;195:138:68;;;;;;;1269:95:32;195:138:68;;-1:-1:-1;;;1322:31:32;;-1:-1:-1;1322:31:32;;;195:138:68;;;1322:31:32;195:138:68;-1:-1:-1;195:138:68;;;;;;-1:-1:-1;195:138:68;;;;;-1:-1:-1;195:138:68","linkReferences":{}},"deployedBytecode":{"object":"0x60406080815260049081361015610014575f80fd5b5f915f3560e01c90816314887c581461084a5781633ac04911146106dc57816358336662146104945781635cd8b15e1461047757816364dfea061461044f578163715018a6146103f25781638da5cb5b146103c95781639b19251a146102e3578163b42ba2a214610273578163b572a966146101b9578163b6caa1191461017c578163f2fde38b146100e8575063f9661602146100af575f80fd5b346100e45760203660031901126100e4576020906100d36100ce6108a3565b610999565b90516001600160a01b039091168152f35b5080fd5b9050346101785760203660031901126101785761010361088d565b9061010c610a0f565b6001600160a01b03918216928315610162575050600254826bffffffffffffffffffffffff60a01b821617600255167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a380f35b51631e4fbdf760e01b8152908101849052602490fd5b8280fd5b5050346100e45760203660031901126100e45760ff8160209367ffffffffffffffff6101a66108a3565b1681526003855220541690519015158152f35b91905034610178576020366003190112610178576101d56108a3565b916101de610a0f565b67ffffffffffffffff809316928315908115610266575b5061025857828452600360205260ff828520541661024a575081835260036020528220805460ff191660011790557ffc8245c2838846b295ae66fbe0d08e20c799b737c93b56f7b209df2e5fa2d4588280a280f35b905163f53de75f60e01b8152fd5b905163a9146eeb60e01b8152fd5b905081541683115f6101f5565b8284346102e05760203660031901126102e0575081355f548110156102cd575f80527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563015490516001600160a01b03909116815260209150f35b603283634e487b7160e01b5f525260245ffd5b80fd5b905034610178576020366003190112610178576102fe61088d565b91610307610a0f565b80516202dd3160ec1b81526001600160a01b03938416936020828581885afa9182156103bf57869261038e575b50309116036103815761034683610af2565b156103745750507feb73900b98b6a3e2b8b01708fe544760cf570d21e7fbe5225f24e48b5b2b432e8280a280f35b5163b73e95e160e01b8152fd5b5163340aafcd60e11b8152fd5b6103b191925060203d6020116103b8575b6103a98183610908565b81019061097a565b905f610334565b503d61039f565b83513d88823e3d90fd5b5050346100e457816003193601126100e45760025490516001600160a01b039091168152602090f35b83346102e057806003193601126102e05761040b610a0f565b600280546001600160a01b031981169091555f906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a380f35b8284346102e057806003193601126102e0575067ffffffffffffffff60209254169051908152f35b5050346100e457816003193601126100e457602091549051908152f35b83833461063d57606036600319011261063d576104af61088d565b6024359167ffffffffffffffff908184169182850361063d5760443581811161063d576104df90369089016108ba565b6001600160a01b039586165f81815260016020526040902054909792939290156106cc578451638da5cb5b60e01b81526020979088818d818d5afa9081156106c2575f916106a5575b5016330361069557845163054fd4d560e41b815287818c818c5afa90811561068b579084915f91610651575b5016861115610641576105696105a291610999565b916105948651958692630557c60960e31b8b85015289602485015288604485015260648401916108e8565b03601f198101855284610908565b863b1561063d57835163278f794360e11b8152925f91849182916105c991908d840161093e565b0381838a5af1801561063357610607575b5050519081527fb91c18bf7dbfdff96560fb98128531c4c6187079fe0bd7f24a81f54ea87f35a79190a280f35b9080929650116106205784529293505f928486806105da565b604186634e487b7160e01b5f525260245ffd5b83513d5f823e3d90fd5b5f80fd5b8451630384ebd960e41b81528a90fd5b809250898092503d8311610684575b61066a8183610908565b8101031261063d5751838116810361063d5783908c610554565b503d610660565b86513d5f823e3d90fd5b84516330cd747160e01b81528a90fd5b6106bc9150893d8b116103b8576103a98183610908565b8c610528565b87513d5f823e3d90fd5b845163e3fd10ff60e01b81528a90fd5b823461063d57606036600319011261063d576106f66108a3565b6001600160a01b03926024358481169081900361063d5760443567ffffffffffffffff80821161063d576107306107bf92369086016108ba565b92905f546107b389519260208401928352610785868b1693848d8701528960608701526080808701528561076860a082018b866108e8565b039561077c601f1997888101835282610908565b5190209a610999565b968b519889946315fb20f360e21b6020870152602486015260448501526060606485015260848401916108e8565b03908101855284610908565b8551936105c39081860192868410908411176108375750918493916107e893610b4f863961093e565b03905ff591821561082d57602092169061080182610a84565b505190807fb919910dcefbf753bfd926ab3b1d3f85d877190c3d01ba1bd585047b99b99f0b5f80a28152f35b50513d5f823e3d90fd5b604190634e487b7160e01b5f525260245ffd5b823461063d57602036600319011261063d576020906108846001600160a01b0361087261088d565b165f52600160205260405f2054151590565b90519015158152f35b600435906001600160a01b038216820361063d57565b6004359067ffffffffffffffff8216820361063d57565b9181601f8401121561063d5782359167ffffffffffffffff831161063d576020838186019501011161063d57565b908060209392818452848401375f828201840152601f01601f1916010190565b90601f8019910116810190811067ffffffffffffffff82111761092a57604052565b634e487b7160e01b5f52604160045260245ffd5b6001600160a01b0390911681526040602080830182905283519183018290526060938291018484015e5f828201840152601f01601f1916010190565b9081602091031261063d57516001600160a01b038116810361063d5790565b67ffffffffffffffff80911680158015610a02575b6109f0575f1901908082116109dc576109c79116610a3b565b905460039190911b1c6001600160a01b031690565b634e487b7160e01b5f52601160045260245ffd5b60405163a9146eeb60e01b8152600490fd5b50816004541681116109ae565b6002546001600160a01b03163303610a2357565b60405163118cdaa760e01b8152336004820152602490fd5b600454811015610a705760045f527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b01905f90565b634e487b7160e01b5f52603260045260245ffd5b805f52600160205260405f2054155f14610aed575f54600160401b81101561092a5760018101805f55811015610a705781907f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e56301555f54905f52600160205260405f2055600190565b505f90565b805f52600560205260405f2054155f14610aed57600454600160401b81101561092a57806001610b259201600455610a3b565b81549060031b9083821b915f19901b1916179055600454905f52600560205260405f205560019056fe604060a08152346101df576105c38038038061001a816101e3565b92833981019082818303126101df5780516001600160a01b0392838216918281036101df5760208481015190946001600160401b0382116101df570182601f820112156101df57805161007461006f8261021c565b6101e3565b91818352868301948783830101116101df57815f9288809301875e83010152813b156101c7577f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b03199081168617909155937fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a25180156101bf575f809161012694845af43d156101b7573d9161011861006f8461021c565b9283523d5f8785013e610237565b505b336080527f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f847fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d610394855494825191861682523390820152a133156101a057163317905551610328908161029b82396080518160f10152f35b8351633173bdd160e11b81525f6004820152602490fd5b606091610237565b505050610128565b8651634c9c8ce360e01b815260048101859052602490fd5b5f80fd5b6040519190601f01601f191682016001600160401b0381118382101761020857604052565b634e487b7160e01b5f52604160045260245ffd5b6001600160401b03811161020857601f01601f191660200190565b9061025e575080511561024c57805190602001fd5b604051630a12f52160e11b8152600490fd5b81511580610291575b61026f575090565b604051639996b31560e01b81526001600160a01b039091166004820152602490fd5b50803b1561026756fe6080604052600436106101f4575f3560e01c634f1ef286036101f45734610086576040366003190112610086576004356001600160a01b0381168103610086576024359067ffffffffffffffff9081831161008657366023840112156100865782600401359182116100865736602483850101116100865760246100849301906100e5565b005b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b6040519190601f01601f1916820167ffffffffffffffff8111838210176100c457604052565b61008a565b67ffffffffffffffff81116100c457601f01601f191660200190565b916001600160a01b03907f0000000000000000000000000000000000000000000000000000000000000000821633036101e257610129610124826100c9565b61009e565b92818452368282011161008657815f926020928387013784010152823b156101c85782167f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc816bffffffffffffffffffffffff60a01b8254161790557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a28051156101bc576101b991610256565b50565b50506101c661023d565b565b604051634c9c8ce360e01b81529083166004820152602490fd5b6040516334ad5dbb60e21b8152600490fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc545f9081906001600160a01b0316368280378136915af43d5f803e15610239573d5ff35b3d5ffd5b3461024457565b60405163b398979f60e01b8152600490fd5b5f8061028893602081519101845af43d1561028b573d91610279610124846100c9565b9283523d5f602085013e61028f565b90565b6060915b906102b657508051156102a457805190602001fd5b604051630a12f52160e11b8152600490fd5b815115806102e9575b6102c7575090565b604051639996b31560e01b81526001600160a01b039091166004820152602490fd5b50803b156102bf56fea264697066735822122028e25eef202279b950fae0b3b6144d4d7a8824832024cb7fc76ff5455d7c319964736f6c63430008190033a264697066735822122044a749ed3b4cc7533f65daf7149d976a000661a24fc7eadbf8ace3eef7a619fb64736f6c63430008190033","sourceMap":"195:138:68:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;195:138:68;;;;;;1576:7:73;195:138:68;;:::i;:::-;1576:7:73;:::i;:::-;195:138:68;;-1:-1:-1;;;;;195:138:68;;;;;;;;;;;;;;;;;;-1:-1:-1;;195:138:68;;;;;;:::i;:::-;1500:62:32;;;:::i;:::-;-1:-1:-1;;;;;195:138:68;;;;2627:22:32;;2623:91;;195:138:68;;3004:6:32;195:138:68;;;;;;;;3004:6:32;195:138:68;;3052:40:32;195:138:68;3052:40:32;;195:138:68;;2623:91:32;195:138:68;-1:-1:-1;;;2672:31:32;;;;;195:138:68;;;;;2672:31:32;195:138:68;;;;;;;;;;;;-1:-1:-1;;195:138:68;;;;;;;;;;;:::i;:::-;;;;869:56:73;195:138:68;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;195:138:68;;;;;;:::i;:::-;1500:62:32;;;:::i;:::-;195:138:68;;;;1065:12:73;;;:39;;;;;195:138:68;1061:93:73;;;195:138:68;;;2251:11:73;195:138:68;;;;;;;;2247:78:73;;-1:-1:-1;195:138:68;;;2251:11:73;195:138:68;;;;;;-1:-1:-1;;195:138:68;2358:4:73;195:138:68;;;2378:18:73;195:138:68;;2378:18:73;195:138:68;;2247:78:73;195:138:68;;-1:-1:-1;;;2294:20:73;;;1061:93;195:138:68;;-1:-1:-1;;;1127:16:73;;;1065:39;195:138:68;;;;;1081:23:73;;1065:39;;;195:138:68;;;;;;;;-1:-1:-1;;195:138:68;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;195:138:68;;;;;;;-1:-1:-1;195:138:68;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;195:138:68;;;;;;:::i;:::-;1500:62:32;;;:::i;:::-;195:138:68;;-1:-1:-1;;;1804:44:73;;-1:-1:-1;;;;;195:138:68;;;;;;1804:44:73;195:138:68;;1804:44:73;;;;;;;;;;;195:138:68;1860:4:73;;195:138:68;;1804:61:73;1800:122;;8409:50:61;;;:::i;:::-;1935:49:73;1931:107;;2053:26;;;;;;195:138:68;;1931:107:73;195:138:68;-1:-1:-1;;;2007:20:73;;;1800:122;195:138:68;-1:-1:-1;;;1888:23:73;;;1804:44;;;;;195:138:68;1804:44:73;195:138:68;1804:44:73;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;195:138:68;;;;;;;;;;;;;;;;;;;;;;;1710:6:32;195:138:68;;;-1:-1:-1;;;;;195:138:68;;;;;;;;;;;;;;;;;;;;;1500:62:32;;:::i;:::-;3004:6;195:138:68;;-1:-1:-1;;;;;;195:138:68;;;;;;;-1:-1:-1;;;;;195:138:68;3052:40:32;195:138:68;;3052:40:32;195:138:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;195:138:68;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;195:138:68;;;;;;;;;;;;;;;;;;;8974:55:61;4360:26;1185:72:74;;195:138:68;;-1:-1:-1;;;3069:24:73;;195:138:68;;;;;3069:24:73;195:138:68;3069:24:73;;;;;;;;195:138:68;3069:24:73;;;195:138:68;;;3055:10:73;:38;3051:86;;195:138:68;;-1:-1:-1;;;3165:36:73;;;195:138:68;3165:36:73;195:138:68;3165:36:73;;;;;;;;;;;195:138:68;3165:36:73;;;195:138:68;;;3151:50:73;;;3147:100;;1576:7;3347:61;1576:7;;:::i;:::-;195:138:68;;;;3347:61:73;;;;;;;;;;;195:138:68;3347:61:73;;195:138:68;;;;;;;;;;;:::i;:::-;3347:61:73;2651:50;;3347:61;;;;;;:::i;:::-;3257:161;;;;;195:138:68;;-1:-1:-1;;;3257:161:73;;195:138:68;;;;;;;3257:161:73;;195:138:68;3257:161:73;;;;:::i;:::-;;;;;;;;;;;;;195:138:68;-1:-1:-1;;195:138:68;;;;3434:28:73;;195:138:68;3434:28:73;195:138:68;;3257:161:73;195:138:68;;;;;;;;;;;;-1:-1:-1;195:138:68;;;3257:161:73;;;;195:138:68;;;;;;;;;;;;3257:161:73;195:138:68;;;;;;;;;3257:161:73;195:138:68;;;3147:100:73;195:138:68;;-1:-1:-1;;;3224:12:73;;195:138:68;;3224:12:73;3165:36;;;;;;;;;;;;;;;;;;:::i;:::-;;;195:138:68;;;;;;;;;;;;3165:36:73;;;;;;;;;;;195:138:68;;;;;;;;;3051:86:73;195:138:68;;-1:-1:-1;;;3116:10:73;;195:138:68;;3116:10:73;3069:24;;;;;;;;;;;;;;:::i;:::-;;;;;195:138:68;;;;;;;;;1185:72:74;195:138:68;;-1:-1:-1;;;1230:16:74;;195:138:68;;1230:16:74;195:138:68;;;;;;;-1:-1:-1;;195:138:68;;;;;;:::i;:::-;-1:-1:-1;;;;;195:138:68;;;;;;;;;;;;;;;;;;;;;2746:69:73;195:138:68;;;;;;:::i;:::-;;;;;;;;2651:50:73;195:138:68;2651:50:73;;195:138:68;;;1576:7:73;195:138:68;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2651:50:73;;;;;;;;;;;;;:::i;:::-;195:138:68;2641:61:73;;1576:7;;:::i;:::-;195:138:68;;;2746:69:73;;;;;;195:138:68;2746:69:73;;;195:138:68;2746:69:73;;195:138:68;;;;;;;;;;;;;;;:::i;:::-;2746:69:73;;;;;;;;:::i;:::-;195:138:68;;2609:220:73;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;195:138:68;2609:220:73;;;;;;195:138:68;;;8409:50:61;;;;:::i;:::-;;195:138:68;1077:18:74;;;195:138:68;1077:18:74;;195:138:68;;;2609:220:73;195:138:68;;;;;;;;;2609:220:73;195:138:68;;;;;;;;;;;;;;;;;;-1:-1:-1;;195:138:68;;;;;;8974:55:61;-1:-1:-1;;;;;195:138:68;;:::i;:::-;;;;4360:14:61;195:138:68;;;;;;4360:26:61;;4264:129;;8974:55;195:138:68;;;;;;;;;;;;-1:-1:-1;;;;;195:138:68;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;195:138:68;;;;;;;;-1:-1:-1;;195:138:68;;;;:::o;:::-;;;2651:50:73;;195:138:68;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;195:138:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;195:138:68;;;;:::o;:::-;;;;;;;;;;-1:-1:-1;;;;;195:138:68;;;;;;;:::o;999:172:73:-;195:138:68;;;;1065:12:73;;:39;;;;999:172;1061:93;;-1:-1:-1;;195:138:68;;;;;;;5016:18:61;195:138:68;;5016:18:61;:::i;:::-;195:138:68;;;;;;;;-1:-1:-1;;;;;195:138:68;;999:172:73:o;195:138:68:-;;;;;;;1602:27:73;195:138:68;;;;1061:93:73;195:138:68;;-1:-1:-1;;;1127:16:73;;;;;1065:39;195:138:68;;1374:27:73;195:138:68;;1081:23:73;;1065:39;;1796:162:32;1710:6;195:138:68;-1:-1:-1;;;;;195:138:68;735:10:47;1855:23:32;1851:101;;1796:162::o;1851:101::-;195:138:68;;-1:-1:-1;;;1901:40:32;;735:10:47;1901:40:32;;;195:138:68;;;1901:40:32;195:138:68;1602:27:73;195:138:68;;;;;;1602:27:73;-1:-1:-1;195:138:68;;;;-1:-1:-1;195:138:68;:::o;:::-;;;;;;;1602:27:73;195:138:68;;;;2241:406:61;195:138:68;;;4360:14:61;195:138:68;;;;;;4360:26:61;2320:321;195:138:68;;;;;-1:-1:-1;;;195:138:68;;;;;4360:14:61;195:138:68;;;;;;;;;;;;;;;;;;;;4360:14:61;195:138:68;;;;;;4360:14:61;2576:11;:::o;2320:321::-;2618:12;195:138:68;2618:12:61;:::o;2241:406::-;195:138:68;-1:-1:-1;195:138:68;4360:14:61;195:138:68;;;-1:-1:-1;195:138:68;;4360:26:61;2320:321;195:138:68;;;;;-1:-1:-1;;;195:138:68;;;;;;4360:14:61;195:138:68;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;195:138:68;4360:14:61;195:138:68;;;-1:-1:-1;195:138:68;;4360:14:61;2576:11;:::o","linkReferences":{}},"methodIdentifiers":{"blacklist(uint64)":"b572a966","blacklisted(uint64)":"b6caa119","create(uint64,address,bytes)":"3ac04911","entity(uint256)":"b42ba2a2","implementation(uint64)":"f9661602","isEntity(address)":"14887c58","lastVersion()":"64dfea06","migrate(address,uint64,bytes)":"58336662","owner()":"8da5cb5b","renounceOwnership()":"715018a6","totalEntities()":"5cd8b15e","transferOwnership(address)":"f2fde38b","whitelist(address)":"9b19251a"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner_\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"AlreadyBlacklisted\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AlreadyWhitelisted\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"EntityNotExist\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidImplementation\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidVersion\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotOwner\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OldVersion\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"entity\",\"type\":\"address\"}],\"name\":\"AddEntity\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Blacklist\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"entity\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"newVersion\",\"type\":\"uint64\"}],\"name\":\"Migrate\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"Whitelist\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"blacklist\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"blacklisted\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"value\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"owner_\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"create\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"entity_\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"entity\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"implementation\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"entity_\",\"type\":\"address\"}],\"name\":\"isEntity\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"lastVersion\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"entity_\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"newVersion\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"migrate\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalEntities\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"implementation_\",\"type\":\"address\"}],\"name\":\"whitelist\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}]},\"events\":{\"AddEntity(address)\":{\"params\":{\"entity\":\"address of the added entity\"}},\"Blacklist(uint64)\":{\"details\":\"The given version is still deployable.\",\"params\":{\"version\":\"version that was blacklisted\"}},\"Migrate(address,uint64)\":{\"params\":{\"entity\":\"address of the entity\",\"newVersion\":\"new version of the entity\"}},\"Whitelist(address)\":{\"params\":{\"implementation\":\"address of the new implementation\"}}},\"kind\":\"dev\",\"methods\":{\"blacklist(uint64)\":{\"details\":\"The given version will still be deployable.\",\"params\":{\"version\":\"version to blacklist\"}},\"create(uint64,address,bytes)\":{\"details\":\"CREATE2 salt is constructed from the given parameters.\",\"params\":{\"data\":\"initial data for the entity creation\",\"owner\":\"initial owner of the entity\",\"version\":\"entity's version to use\"},\"returns\":{\"entity_\":\"address of the entity\"}},\"entity(uint256)\":{\"params\":{\"index\":\"index of the entity to get\"},\"returns\":{\"_0\":\"address of the entity\"}},\"implementation(uint64)\":{\"details\":\"Reverts when an invalid version.\",\"params\":{\"version\":\"version to get the implementation for\"},\"returns\":{\"_0\":\"address of the implementation\"}},\"isEntity(address)\":{\"params\":{\"account\":\"address to check\"},\"returns\":{\"_0\":\"if the given address is an entity\"}},\"lastVersion()\":{\"details\":\"If zero, no implementations are whitelisted.\",\"returns\":{\"_0\":\"version of the last implementation\"}},\"migrate(address,uint64,bytes)\":{\"details\":\"Only the entity's owner can call this function.\",\"params\":{\"data\":\"some data to reinitialize the contract with\",\"entity\":\"address of the entity to migrate\",\"newVersion\":\"new version to migrate to\"}},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"totalEntities()\":{\"returns\":{\"_0\":\"total number of entities added\"}},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"},\"whitelist(address)\":{\"params\":{\"implementation\":\"address of the new implementation\"}}},\"version\":1},\"userdoc\":{\"events\":{\"AddEntity(address)\":{\"notice\":\"Emitted when an entity is added.\"},\"Blacklist(uint64)\":{\"notice\":\"Emitted when a version is blacklisted (e.g., in case of invalid implementation).\"},\"Migrate(address,uint64)\":{\"notice\":\"Emitted when an entity is migrated to a new version.\"},\"Whitelist(address)\":{\"notice\":\"Emitted when a new implementation is whitelisted.\"}},\"kind\":\"user\",\"methods\":{\"blacklist(uint64)\":{\"notice\":\"Blacklist a version of entities.\"},\"blacklisted(uint64)\":{\"notice\":\"Get if a version is blacklisted (e.g., in case of invalid implementation).\"},\"create(uint64,address,bytes)\":{\"notice\":\"Create a new entity at the factory.\"},\"entity(uint256)\":{\"notice\":\"Get an entity given its index.\"},\"implementation(uint64)\":{\"notice\":\"Get the implementation for a given version.\"},\"isEntity(address)\":{\"notice\":\"Get if a given address is an entity.\"},\"lastVersion()\":{\"notice\":\"Get the last available version.\"},\"migrate(address,uint64,bytes)\":{\"notice\":\"Migrate a given entity to a given newer version.\"},\"totalEntities()\":{\"notice\":\"Get a total number of entities.\"},\"whitelist(address)\":{\"notice\":\"Whitelist a new implementation for entities.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/contracts/VaultFactory.sol\":\"VaultFactory\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Proxy.sol\":{\"keccak256\":\"0xbfb6695731de677140fbf76c772ab08c4233a122fb51ac28ac120fc49bbbc4ec\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://68f8fded7cc318efa15874b7c6a983fe17a4a955d72d240353a9a4ca1e1b824c\",\"dweb:/ipfs/QmdcmBL9Qo4Tk3Dby4wFYabGyot9JNeLPxpSXZUgUm92BV\"]},\"lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol\":{\"keccak256\":\"0x06a78f9b3ee3e6d0eb4e4cd635ba49960bea34cac1db8c0a27c75f2319f1fd65\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://547d21aa17f4f3f1a1a7edf7167beff8dd9496a0348d5588f15cc8a4b29d052a\",\"dweb:/ipfs/QmT16JtRQSWNpLo9W23jr6CzaMuTAcQcjJJcdRd8HLJ6cE\"]},\"lib/openzeppelin-contracts/contracts/proxy/Proxy.sol\":{\"keccak256\":\"0xc3f2ec76a3de8ed7a7007c46166f5550c72c7709e3fc7e8bb3111a7191cdedbd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e73efb4c2ca655882dc237c6b4f234a9bd36d97159d8fcaa837eb01171f726ac\",\"dweb:/ipfs/QmTNnnv7Gu5fs5G1ZMh7Fexp8N4XUs3XrNAngjcxgiss3e\"]},\"lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0xc59a78b07b44b2cf2e8ab4175fca91e8eca1eee2df7357b8d2a8833e5ea1f64c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5aa4f07e65444784c29cd7bfcc2341b34381e4e5b5da9f0c5bd00d7f430e66fa\",\"dweb:/ipfs/QmWRMh4Q9DpaU9GvsiXmDdoNYMyyece9if7hnfLz7uqzWM\"]},\"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\"]},\"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0x32ba59b4b7299237c8ba56319110989d7978a039faf754793064e967e5894418\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1ae50c8b562427df610cc4540c9bf104acca7ef8e2dcae567ae7e52272281e9c\",\"dweb:/ipfs/QmTHiadFCSJUPpRjNegc5SahmeU8bAoY8i9Aq6tVscbcKR\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0x86c1470cbfd878491e5de030072b647352d36bd27122cffb928970b1945282aa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ad85dd393ee0a1917c57046abc5155f51f77844b2c6a42c05c1b8dd26d6ff3c1\",\"dweb:/ipfs/QmNqYc8To2NdnpP6E1tGz7t6A7beuENde5yovwov5pW1fA\"]},\"src/contracts/VaultFactory.sol\":{\"keccak256\":\"0xa9122dd11e5f21fa97a813e90f8c4905f0a4967b9611dd03437a31377cbdecb8\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://4c2feda1f9c0c7ddf65bccdc99494e4bfbb820fcddc3e4222e3b58ef821424a3\",\"dweb:/ipfs/Qmdmt4rH214jDmDsF9ELvJXVCt8abhk6poSmhJqqzLse3R\"]},\"src/contracts/common/MigratableEntityProxy.sol\":{\"keccak256\":\"0x78ba27242276232ad10a45265e3c07f0a25722456f6abb3fb3f24a1c8e1b38d1\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://a19623df688e5085036b59fc934e35b72997f875d7ffda1cdc557c6ca468206d\",\"dweb:/ipfs/QmaQiT5uYZu5JmqhMjTDJnsq3nqaHbKrWAjrxKKLesdHV7\"]},\"src/contracts/common/MigratablesFactory.sol\":{\"keccak256\":\"0x5d1487c3456da4bd0bc2a131eeab97ab92484c923edefaebf190cc08d4080093\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://fec38d2e52e9c5148e95599c133fd6fe66d41296d6fc06e7329d2db199a1798f\",\"dweb:/ipfs/QmeiaydBXHHkJRUnpaZH1C6JQ7HPocTvQbUJBqKTvUeEYv\"]},\"src/contracts/common/Registry.sol\":{\"keccak256\":\"0x4a4004836d920953a8ec6e223de9a330f43acf7a5b93c6b8b3e4a95e0f129889\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://e8bdda207f3852c683a2b481602239a914f7e26bcd042ade618e263a43b67652\",\"dweb:/ipfs/Qmb8GZykJWxZcfwNp3SqhFizDFydFuV6LXgemV3vnWyLyu\"]},\"src/interfaces/IVaultFactory.sol\":{\"keccak256\":\"0x6f658b264fc8d530e458a98d83a09cb55ace4d3e509f0a3e9294471bb1bcf84d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a7253435e4e1d1ae19a50d14091ddb254f6a36f296440106bfc094623dd1aeba\",\"dweb:/ipfs/QmbHK9yoQ7Ctf3nuDLmqxTWPYD8cEm1TKXzfxePtE87AQN\"]},\"src/interfaces/common/IMigratableEntity.sol\":{\"keccak256\":\"0x8f5f2809f3afbe8ebfbb365dd7b57b4dd3b6f9943a6187eaf648d45895b8e3c4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ffe640537d539e7a4fde70d30d3e4c57f4ba9c2c25c450cea713aae38e8fd5c\",\"dweb:/ipfs/QmSUTGzvdcn1R1KB7tLThMRtESsfPbeXDhhhKWGtntzBds\"]},\"src/interfaces/common/IMigratableEntityProxy.sol\":{\"keccak256\":\"0x9030ced51ad12e0b3ddaa11bba4a3adcfa29e67b909c46065c14b19d158bb9fd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2d859c21510d1a0f06a71abe21dc6424608c1b2e3194a10e4df4cc88c4de9e9f\",\"dweb:/ipfs/QmNi6Buri2oaujc4vTv6bZ5mgMKFsjUmYmQLUNaDCXFEEt\"]},\"src/interfaces/common/IMigratablesFactory.sol\":{\"keccak256\":\"0xd4dfe9449bf005dbcbab9e0e85eaaca15a601ff971f34182a0b1832dc4b9d124\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ff8b73285192a9c64160b008d23a09da33e7164d10a9dc29d1a4464bd9c02be5\",\"dweb:/ipfs/QmZQW2LLV4dQfJ3coENKeycbzXJzi7zdvupsqWA4UV29Gq\"]},\"src/interfaces/common/IRegistry.sol\":{\"keccak256\":\"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014\",\"dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.25+commit.b61c2a91"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"owner_","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"AlreadyBlacklisted"},{"inputs":[],"type":"error","name":"AlreadyWhitelisted"},{"inputs":[],"type":"error","name":"EntityNotExist"},{"inputs":[],"type":"error","name":"InvalidImplementation"},{"inputs":[],"type":"error","name":"InvalidVersion"},{"inputs":[],"type":"error","name":"NotOwner"},{"inputs":[],"type":"error","name":"OldVersion"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"OwnableInvalidOwner"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"OwnableUnauthorizedAccount"},{"inputs":[{"internalType":"address","name":"entity","type":"address","indexed":true}],"type":"event","name":"AddEntity","anonymous":false},{"inputs":[{"internalType":"uint64","name":"version","type":"uint64","indexed":true}],"type":"event","name":"Blacklist","anonymous":false},{"inputs":[{"internalType":"address","name":"entity","type":"address","indexed":true},{"internalType":"uint64","name":"newVersion","type":"uint64","indexed":false}],"type":"event","name":"Migrate","anonymous":false},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"address","name":"implementation","type":"address","indexed":true}],"type":"event","name":"Whitelist","anonymous":false},{"inputs":[{"internalType":"uint64","name":"version","type":"uint64"}],"stateMutability":"nonpayable","type":"function","name":"blacklist"},{"inputs":[{"internalType":"uint64","name":"version","type":"uint64"}],"stateMutability":"view","type":"function","name":"blacklisted","outputs":[{"internalType":"bool","name":"value","type":"bool"}]},{"inputs":[{"internalType":"uint64","name":"version","type":"uint64"},{"internalType":"address","name":"owner_","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"create","outputs":[{"internalType":"address","name":"entity_","type":"address"}]},{"inputs":[{"internalType":"uint256","name":"index","type":"uint256"}],"stateMutability":"view","type":"function","name":"entity","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"uint64","name":"version","type":"uint64"}],"stateMutability":"view","type":"function","name":"implementation","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"entity_","type":"address"}],"stateMutability":"view","type":"function","name":"isEntity","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"lastVersion","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[{"internalType":"address","name":"entity_","type":"address"},{"internalType":"uint64","name":"newVersion","type":"uint64"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"migrate"},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[],"stateMutability":"view","type":"function","name":"totalEntities","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"},{"inputs":[{"internalType":"address","name":"implementation_","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"whitelist"}],"devdoc":{"kind":"dev","methods":{"blacklist(uint64)":{"details":"The given version will still be deployable.","params":{"version":"version to blacklist"}},"create(uint64,address,bytes)":{"details":"CREATE2 salt is constructed from the given parameters.","params":{"data":"initial data for the entity creation","owner":"initial owner of the entity","version":"entity's version to use"},"returns":{"entity_":"address of the entity"}},"entity(uint256)":{"params":{"index":"index of the entity to get"},"returns":{"_0":"address of the entity"}},"implementation(uint64)":{"details":"Reverts when an invalid version.","params":{"version":"version to get the implementation for"},"returns":{"_0":"address of the implementation"}},"isEntity(address)":{"params":{"account":"address to check"},"returns":{"_0":"if the given address is an entity"}},"lastVersion()":{"details":"If zero, no implementations are whitelisted.","returns":{"_0":"version of the last implementation"}},"migrate(address,uint64,bytes)":{"details":"Only the entity's owner can call this function.","params":{"data":"some data to reinitialize the contract with","entity":"address of the entity to migrate","newVersion":"new version to migrate to"}},"owner()":{"details":"Returns the address of the current owner."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner."},"totalEntities()":{"returns":{"_0":"total number of entities added"}},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."},"whitelist(address)":{"params":{"implementation":"address of the new implementation"}}},"version":1},"userdoc":{"kind":"user","methods":{"blacklist(uint64)":{"notice":"Blacklist a version of entities."},"blacklisted(uint64)":{"notice":"Get if a version is blacklisted (e.g., in case of invalid implementation)."},"create(uint64,address,bytes)":{"notice":"Create a new entity at the factory."},"entity(uint256)":{"notice":"Get an entity given its index."},"implementation(uint64)":{"notice":"Get the implementation for a given version."},"isEntity(address)":{"notice":"Get if a given address is an entity."},"lastVersion()":{"notice":"Get the last available version."},"migrate(address,uint64,bytes)":{"notice":"Migrate a given entity to a given newer version."},"totalEntities()":{"notice":"Get a total number of entities."},"whitelist(address)":{"notice":"Whitelist a new implementation for entities."}},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/contracts/VaultFactory.sol":"VaultFactory"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts/contracts/access/Ownable.sol":{"keccak256":"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb","urls":["bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6","dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Proxy.sol":{"keccak256":"0xbfb6695731de677140fbf76c772ab08c4233a122fb51ac28ac120fc49bbbc4ec","urls":["bzz-raw://68f8fded7cc318efa15874b7c6a983fe17a4a955d72d240353a9a4ca1e1b824c","dweb:/ipfs/QmdcmBL9Qo4Tk3Dby4wFYabGyot9JNeLPxpSXZUgUm92BV"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol":{"keccak256":"0x06a78f9b3ee3e6d0eb4e4cd635ba49960bea34cac1db8c0a27c75f2319f1fd65","urls":["bzz-raw://547d21aa17f4f3f1a1a7edf7167beff8dd9496a0348d5588f15cc8a4b29d052a","dweb:/ipfs/QmT16JtRQSWNpLo9W23jr6CzaMuTAcQcjJJcdRd8HLJ6cE"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/Proxy.sol":{"keccak256":"0xc3f2ec76a3de8ed7a7007c46166f5550c72c7709e3fc7e8bb3111a7191cdedbd","urls":["bzz-raw://e73efb4c2ca655882dc237c6b4f234a9bd36d97159d8fcaa837eb01171f726ac","dweb:/ipfs/QmTNnnv7Gu5fs5G1ZMh7Fexp8N4XUs3XrNAngjcxgiss3e"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol":{"keccak256":"0xc59a78b07b44b2cf2e8ab4175fca91e8eca1eee2df7357b8d2a8833e5ea1f64c","urls":["bzz-raw://5aa4f07e65444784c29cd7bfcc2341b34381e4e5b5da9f0c5bd00d7f430e66fa","dweb:/ipfs/QmWRMh4Q9DpaU9GvsiXmDdoNYMyyece9if7hnfLz7uqzWM"],"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"},"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol":{"keccak256":"0x32ba59b4b7299237c8ba56319110989d7978a039faf754793064e967e5894418","urls":["bzz-raw://1ae50c8b562427df610cc4540c9bf104acca7ef8e2dcae567ae7e52272281e9c","dweb:/ipfs/QmTHiadFCSJUPpRjNegc5SahmeU8bAoY8i9Aq6tVscbcKR"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0x86c1470cbfd878491e5de030072b647352d36bd27122cffb928970b1945282aa","urls":["bzz-raw://ad85dd393ee0a1917c57046abc5155f51f77844b2c6a42c05c1b8dd26d6ff3c1","dweb:/ipfs/QmNqYc8To2NdnpP6E1tGz7t6A7beuENde5yovwov5pW1fA"],"license":"MIT"},"src/contracts/VaultFactory.sol":{"keccak256":"0xa9122dd11e5f21fa97a813e90f8c4905f0a4967b9611dd03437a31377cbdecb8","urls":["bzz-raw://4c2feda1f9c0c7ddf65bccdc99494e4bfbb820fcddc3e4222e3b58ef821424a3","dweb:/ipfs/Qmdmt4rH214jDmDsF9ELvJXVCt8abhk6poSmhJqqzLse3R"],"license":"BUSL-1.1"},"src/contracts/common/MigratableEntityProxy.sol":{"keccak256":"0x78ba27242276232ad10a45265e3c07f0a25722456f6abb3fb3f24a1c8e1b38d1","urls":["bzz-raw://a19623df688e5085036b59fc934e35b72997f875d7ffda1cdc557c6ca468206d","dweb:/ipfs/QmaQiT5uYZu5JmqhMjTDJnsq3nqaHbKrWAjrxKKLesdHV7"],"license":"BUSL-1.1"},"src/contracts/common/MigratablesFactory.sol":{"keccak256":"0x5d1487c3456da4bd0bc2a131eeab97ab92484c923edefaebf190cc08d4080093","urls":["bzz-raw://fec38d2e52e9c5148e95599c133fd6fe66d41296d6fc06e7329d2db199a1798f","dweb:/ipfs/QmeiaydBXHHkJRUnpaZH1C6JQ7HPocTvQbUJBqKTvUeEYv"],"license":"BUSL-1.1"},"src/contracts/common/Registry.sol":{"keccak256":"0x4a4004836d920953a8ec6e223de9a330f43acf7a5b93c6b8b3e4a95e0f129889","urls":["bzz-raw://e8bdda207f3852c683a2b481602239a914f7e26bcd042ade618e263a43b67652","dweb:/ipfs/Qmb8GZykJWxZcfwNp3SqhFizDFydFuV6LXgemV3vnWyLyu"],"license":"BUSL-1.1"},"src/interfaces/IVaultFactory.sol":{"keccak256":"0x6f658b264fc8d530e458a98d83a09cb55ace4d3e509f0a3e9294471bb1bcf84d","urls":["bzz-raw://a7253435e4e1d1ae19a50d14091ddb254f6a36f296440106bfc094623dd1aeba","dweb:/ipfs/QmbHK9yoQ7Ctf3nuDLmqxTWPYD8cEm1TKXzfxePtE87AQN"],"license":"MIT"},"src/interfaces/common/IMigratableEntity.sol":{"keccak256":"0x8f5f2809f3afbe8ebfbb365dd7b57b4dd3b6f9943a6187eaf648d45895b8e3c4","urls":["bzz-raw://0ffe640537d539e7a4fde70d30d3e4c57f4ba9c2c25c450cea713aae38e8fd5c","dweb:/ipfs/QmSUTGzvdcn1R1KB7tLThMRtESsfPbeXDhhhKWGtntzBds"],"license":"MIT"},"src/interfaces/common/IMigratableEntityProxy.sol":{"keccak256":"0x9030ced51ad12e0b3ddaa11bba4a3adcfa29e67b909c46065c14b19d158bb9fd","urls":["bzz-raw://2d859c21510d1a0f06a71abe21dc6424608c1b2e3194a10e4df4cc88c4de9e9f","dweb:/ipfs/QmNi6Buri2oaujc4vTv6bZ5mgMKFsjUmYmQLUNaDCXFEEt"],"license":"MIT"},"src/interfaces/common/IMigratablesFactory.sol":{"keccak256":"0xd4dfe9449bf005dbcbab9e0e85eaaca15a601ff971f34182a0b1832dc4b9d124","urls":["bzz-raw://ff8b73285192a9c64160b008d23a09da33e7164d10a9dc29d1a4464bd9c02be5","dweb:/ipfs/QmZQW2LLV4dQfJ3coENKeycbzXJzi7zdvupsqWA4UV29Gq"],"license":"MIT"},"src/interfaces/common/IRegistry.sol":{"keccak256":"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb","urls":["bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014","dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK"],"license":"MIT"}},"version":1},"id":68} \ No newline at end of file +{"abi":[{"type":"constructor","inputs":[{"name":"owner_","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"blacklist","inputs":[{"name":"version","type":"uint64","internalType":"uint64"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"blacklisted","inputs":[{"name":"version","type":"uint64","internalType":"uint64"}],"outputs":[{"name":"value","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"create","inputs":[{"name":"version","type":"uint64","internalType":"uint64"},{"name":"owner_","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"entity_","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"entity","inputs":[{"name":"index","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"implementation","inputs":[{"name":"version","type":"uint64","internalType":"uint64"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"isEntity","inputs":[{"name":"entity_","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"lastVersion","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"migrate","inputs":[{"name":"entity_","type":"address","internalType":"address"},{"name":"newVersion","type":"uint64","internalType":"uint64"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"totalEntities","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"whitelist","inputs":[{"name":"implementation_","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"AddEntity","inputs":[{"name":"entity","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Blacklist","inputs":[{"name":"version","type":"uint64","indexed":true,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"Migrate","inputs":[{"name":"entity","type":"address","indexed":true,"internalType":"address"},{"name":"newVersion","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Whitelist","inputs":[{"name":"implementation","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"error","name":"AlreadyBlacklisted","inputs":[]},{"type":"error","name":"AlreadyWhitelisted","inputs":[]},{"type":"error","name":"EntityNotExist","inputs":[]},{"type":"error","name":"InvalidImplementation","inputs":[]},{"type":"error","name":"InvalidVersion","inputs":[]},{"type":"error","name":"NotOwner","inputs":[]},{"type":"error","name":"OldVersion","inputs":[]},{"type":"error","name":"OwnableInvalidOwner","inputs":[{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"OwnableUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"}]}],"bytecode":{"object":"0x60803460b557601f61121538819003918201601f19168301916001600160401b0383118484101760b95780849260209460405283398101031260b557516001600160a01b03908181169081900360b5578015609d57600280546001600160a01b03198116831790915560405192167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a361114790816100ce8239f35b604051631e4fbdf760e01b81525f6004820152602490fd5b5f80fd5b634e487b7160e01b5f52604160045260245ffdfe60406080815260049081361015610014575f80fd5b5f915f3560e01c90816314887c581461084a5781633ac04911146106dc57816358336662146104945781635cd8b15e1461047757816364dfea061461044f578163715018a6146103f25781638da5cb5b146103c95781639b19251a146102e3578163b42ba2a214610273578163b572a966146101b9578163b6caa1191461017c578163f2fde38b146100e8575063f9661602146100af575f80fd5b346100e45760203660031901126100e4576020906100d36100ce6108a3565b610999565b90516001600160a01b039091168152f35b5080fd5b9050346101785760203660031901126101785761010361088d565b9061010c610a0f565b6001600160a01b03918216928315610162575050600254826bffffffffffffffffffffffff60a01b821617600255167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a380f35b51631e4fbdf760e01b8152908101849052602490fd5b8280fd5b5050346100e45760203660031901126100e45760ff8160209367ffffffffffffffff6101a66108a3565b1681526003855220541690519015158152f35b91905034610178576020366003190112610178576101d56108a3565b916101de610a0f565b67ffffffffffffffff809316928315908115610266575b5061025857828452600360205260ff828520541661024a575081835260036020528220805460ff191660011790557ffc8245c2838846b295ae66fbe0d08e20c799b737c93b56f7b209df2e5fa2d4588280a280f35b905163f53de75f60e01b8152fd5b905163a9146eeb60e01b8152fd5b905081541683115f6101f5565b8284346102e05760203660031901126102e0575081355f548110156102cd575f80527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563015490516001600160a01b03909116815260209150f35b603283634e487b7160e01b5f525260245ffd5b80fd5b905034610178576020366003190112610178576102fe61088d565b91610307610a0f565b80516202dd3160ec1b81526001600160a01b03938416936020828581885afa9182156103bf57869261038e575b50309116036103815761034683610af2565b156103745750507feb73900b98b6a3e2b8b01708fe544760cf570d21e7fbe5225f24e48b5b2b432e8280a280f35b5163b73e95e160e01b8152fd5b5163340aafcd60e11b8152fd5b6103b191925060203d6020116103b8575b6103a98183610908565b81019061097a565b905f610334565b503d61039f565b83513d88823e3d90fd5b5050346100e457816003193601126100e45760025490516001600160a01b039091168152602090f35b83346102e057806003193601126102e05761040b610a0f565b600280546001600160a01b031981169091555f906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a380f35b8284346102e057806003193601126102e0575067ffffffffffffffff60209254169051908152f35b5050346100e457816003193601126100e457602091549051908152f35b83833461063d57606036600319011261063d576104af61088d565b6024359167ffffffffffffffff908184169182850361063d5760443581811161063d576104df90369089016108ba565b6001600160a01b039586165f81815260016020526040902054909792939290156106cc578451638da5cb5b60e01b81526020979088818d818d5afa9081156106c2575f916106a5575b5016330361069557845163054fd4d560e41b815287818c818c5afa90811561068b579084915f91610651575b5016861115610641576105696105a291610999565b916105948651958692630557c60960e31b8b85015289602485015288604485015260648401916108e8565b03601f198101855284610908565b863b1561063d57835163278f794360e11b8152925f91849182916105c991908d840161093e565b0381838a5af1801561063357610607575b5050519081527fb91c18bf7dbfdff96560fb98128531c4c6187079fe0bd7f24a81f54ea87f35a79190a280f35b9080929650116106205784529293505f928486806105da565b604186634e487b7160e01b5f525260245ffd5b83513d5f823e3d90fd5b5f80fd5b8451630384ebd960e41b81528a90fd5b809250898092503d8311610684575b61066a8183610908565b8101031261063d5751838116810361063d5783908c610554565b503d610660565b86513d5f823e3d90fd5b84516330cd747160e01b81528a90fd5b6106bc9150893d8b116103b8576103a98183610908565b8c610528565b87513d5f823e3d90fd5b845163e3fd10ff60e01b81528a90fd5b823461063d57606036600319011261063d576106f66108a3565b6001600160a01b03926024358481169081900361063d5760443567ffffffffffffffff80821161063d576107306107bf92369086016108ba565b92905f546107b389519260208401928352610785868b1693848d8701528960608701526080808701528561076860a082018b866108e8565b039561077c601f1997888101835282610908565b5190209a610999565b968b519889946315fb20f360e21b6020870152602486015260448501526060606485015260848401916108e8565b03908101855284610908565b8551936105c39081860192868410908411176108375750918493916107e893610b4f863961093e565b03905ff591821561082d57602092169061080182610a84565b505190807fb919910dcefbf753bfd926ab3b1d3f85d877190c3d01ba1bd585047b99b99f0b5f80a28152f35b50513d5f823e3d90fd5b604190634e487b7160e01b5f525260245ffd5b823461063d57602036600319011261063d576020906108846001600160a01b0361087261088d565b165f52600160205260405f2054151590565b90519015158152f35b600435906001600160a01b038216820361063d57565b6004359067ffffffffffffffff8216820361063d57565b9181601f8401121561063d5782359167ffffffffffffffff831161063d576020838186019501011161063d57565b908060209392818452848401375f828201840152601f01601f1916010190565b90601f8019910116810190811067ffffffffffffffff82111761092a57604052565b634e487b7160e01b5f52604160045260245ffd5b6001600160a01b0390911681526040602080830182905283519183018290526060938291018484015e5f828201840152601f01601f1916010190565b9081602091031261063d57516001600160a01b038116810361063d5790565b67ffffffffffffffff80911680158015610a02575b6109f0575f1901908082116109dc576109c79116610a3b565b905460039190911b1c6001600160a01b031690565b634e487b7160e01b5f52601160045260245ffd5b60405163a9146eeb60e01b8152600490fd5b50816004541681116109ae565b6002546001600160a01b03163303610a2357565b60405163118cdaa760e01b8152336004820152602490fd5b600454811015610a705760045f527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b01905f90565b634e487b7160e01b5f52603260045260245ffd5b805f52600160205260405f2054155f14610aed575f54600160401b81101561092a5760018101805f55811015610a705781907f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e56301555f54905f52600160205260405f2055600190565b505f90565b805f52600560205260405f2054155f14610aed57600454600160401b81101561092a57806001610b259201600455610a3b565b81549060031b9083821b915f19901b1916179055600454905f52600560205260405f205560019056fe604060a08152346101df576105c38038038061001a816101e3565b92833981019082818303126101df5780516001600160a01b0392838216918281036101df5760208481015190946001600160401b0382116101df570182601f820112156101df57805161007461006f8261021c565b6101e3565b91818352868301948783830101116101df57815f9288809301875e83010152813b156101c7577f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b03199081168617909155937fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a25180156101bf575f809161012694845af43d156101b7573d9161011861006f8461021c565b9283523d5f8785013e610237565b505b336080527f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f847fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d610394855494825191861682523390820152a133156101a057163317905551610328908161029b82396080518160f10152f35b8351633173bdd160e11b81525f6004820152602490fd5b606091610237565b505050610128565b8651634c9c8ce360e01b815260048101859052602490fd5b5f80fd5b6040519190601f01601f191682016001600160401b0381118382101761020857604052565b634e487b7160e01b5f52604160045260245ffd5b6001600160401b03811161020857601f01601f191660200190565b9061025e575080511561024c57805190602001fd5b604051630a12f52160e11b8152600490fd5b81511580610291575b61026f575090565b604051639996b31560e01b81526001600160a01b039091166004820152602490fd5b50803b1561026756fe6080604052600436106101f4575f3560e01c634f1ef286036101f45734610086576040366003190112610086576004356001600160a01b0381168103610086576024359067ffffffffffffffff9081831161008657366023840112156100865782600401359182116100865736602483850101116100865760246100849301906100e5565b005b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b6040519190601f01601f1916820167ffffffffffffffff8111838210176100c457604052565b61008a565b67ffffffffffffffff81116100c457601f01601f191660200190565b916001600160a01b03907f0000000000000000000000000000000000000000000000000000000000000000821633036101e257610129610124826100c9565b61009e565b92818452368282011161008657815f926020928387013784010152823b156101c85782167f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc816bffffffffffffffffffffffff60a01b8254161790557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a28051156101bc576101b991610256565b50565b50506101c661023d565b565b604051634c9c8ce360e01b81529083166004820152602490fd5b6040516334ad5dbb60e21b8152600490fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc545f9081906001600160a01b0316368280378136915af43d5f803e15610239573d5ff35b3d5ffd5b3461024457565b60405163b398979f60e01b8152600490fd5b5f8061028893602081519101845af43d1561028b573d91610279610124846100c9565b9283523d5f602085013e61028f565b90565b6060915b906102b657508051156102a457805190602001fd5b604051630a12f52160e11b8152600490fd5b815115806102e9575b6102c7575090565b604051639996b31560e01b81526001600160a01b039091166004820152602490fd5b50803b156102bf56fea2646970667358221220e4b601c2ec49e682c0ca62793f6e49e9cf3d0831d0d275714dfb732e051370ff64736f6c63430008190033a26469706673582212205f7d4a94a94238e254e286eb2102f1702d8f89e0f9c3f1d8b2ae41b973dd956164736f6c63430008190033","sourceMap":"195:138:73:-:0;;;;;;;;;;;;;-1:-1:-1;;195:138:73;;;;-1:-1:-1;;;;;195:138:73;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;195:138:73;;;;;;;;;;1273:26:33;;1269:95;;3004:6;195:138:73;;-1:-1:-1;;;;;;195:138:73;;;;;;;;;;;3052:40:33;-1:-1:-1;;3052:40:33;195:138:73;;;;;;;1269:95:33;195:138:73;;-1:-1:-1;;;1322:31:33;;-1:-1:-1;1322:31:33;;;195:138:73;;;1322:31:33;195:138:73;-1:-1:-1;195:138:73;;;;;;-1:-1:-1;195:138:73;;;;;-1:-1:-1;195:138:73","linkReferences":{}},"deployedBytecode":{"object":"0x60406080815260049081361015610014575f80fd5b5f915f3560e01c90816314887c581461084a5781633ac04911146106dc57816358336662146104945781635cd8b15e1461047757816364dfea061461044f578163715018a6146103f25781638da5cb5b146103c95781639b19251a146102e3578163b42ba2a214610273578163b572a966146101b9578163b6caa1191461017c578163f2fde38b146100e8575063f9661602146100af575f80fd5b346100e45760203660031901126100e4576020906100d36100ce6108a3565b610999565b90516001600160a01b039091168152f35b5080fd5b9050346101785760203660031901126101785761010361088d565b9061010c610a0f565b6001600160a01b03918216928315610162575050600254826bffffffffffffffffffffffff60a01b821617600255167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a380f35b51631e4fbdf760e01b8152908101849052602490fd5b8280fd5b5050346100e45760203660031901126100e45760ff8160209367ffffffffffffffff6101a66108a3565b1681526003855220541690519015158152f35b91905034610178576020366003190112610178576101d56108a3565b916101de610a0f565b67ffffffffffffffff809316928315908115610266575b5061025857828452600360205260ff828520541661024a575081835260036020528220805460ff191660011790557ffc8245c2838846b295ae66fbe0d08e20c799b737c93b56f7b209df2e5fa2d4588280a280f35b905163f53de75f60e01b8152fd5b905163a9146eeb60e01b8152fd5b905081541683115f6101f5565b8284346102e05760203660031901126102e0575081355f548110156102cd575f80527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563015490516001600160a01b03909116815260209150f35b603283634e487b7160e01b5f525260245ffd5b80fd5b905034610178576020366003190112610178576102fe61088d565b91610307610a0f565b80516202dd3160ec1b81526001600160a01b03938416936020828581885afa9182156103bf57869261038e575b50309116036103815761034683610af2565b156103745750507feb73900b98b6a3e2b8b01708fe544760cf570d21e7fbe5225f24e48b5b2b432e8280a280f35b5163b73e95e160e01b8152fd5b5163340aafcd60e11b8152fd5b6103b191925060203d6020116103b8575b6103a98183610908565b81019061097a565b905f610334565b503d61039f565b83513d88823e3d90fd5b5050346100e457816003193601126100e45760025490516001600160a01b039091168152602090f35b83346102e057806003193601126102e05761040b610a0f565b600280546001600160a01b031981169091555f906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a380f35b8284346102e057806003193601126102e0575067ffffffffffffffff60209254169051908152f35b5050346100e457816003193601126100e457602091549051908152f35b83833461063d57606036600319011261063d576104af61088d565b6024359167ffffffffffffffff908184169182850361063d5760443581811161063d576104df90369089016108ba565b6001600160a01b039586165f81815260016020526040902054909792939290156106cc578451638da5cb5b60e01b81526020979088818d818d5afa9081156106c2575f916106a5575b5016330361069557845163054fd4d560e41b815287818c818c5afa90811561068b579084915f91610651575b5016861115610641576105696105a291610999565b916105948651958692630557c60960e31b8b85015289602485015288604485015260648401916108e8565b03601f198101855284610908565b863b1561063d57835163278f794360e11b8152925f91849182916105c991908d840161093e565b0381838a5af1801561063357610607575b5050519081527fb91c18bf7dbfdff96560fb98128531c4c6187079fe0bd7f24a81f54ea87f35a79190a280f35b9080929650116106205784529293505f928486806105da565b604186634e487b7160e01b5f525260245ffd5b83513d5f823e3d90fd5b5f80fd5b8451630384ebd960e41b81528a90fd5b809250898092503d8311610684575b61066a8183610908565b8101031261063d5751838116810361063d5783908c610554565b503d610660565b86513d5f823e3d90fd5b84516330cd747160e01b81528a90fd5b6106bc9150893d8b116103b8576103a98183610908565b8c610528565b87513d5f823e3d90fd5b845163e3fd10ff60e01b81528a90fd5b823461063d57606036600319011261063d576106f66108a3565b6001600160a01b03926024358481169081900361063d5760443567ffffffffffffffff80821161063d576107306107bf92369086016108ba565b92905f546107b389519260208401928352610785868b1693848d8701528960608701526080808701528561076860a082018b866108e8565b039561077c601f1997888101835282610908565b5190209a610999565b968b519889946315fb20f360e21b6020870152602486015260448501526060606485015260848401916108e8565b03908101855284610908565b8551936105c39081860192868410908411176108375750918493916107e893610b4f863961093e565b03905ff591821561082d57602092169061080182610a84565b505190807fb919910dcefbf753bfd926ab3b1d3f85d877190c3d01ba1bd585047b99b99f0b5f80a28152f35b50513d5f823e3d90fd5b604190634e487b7160e01b5f525260245ffd5b823461063d57602036600319011261063d576020906108846001600160a01b0361087261088d565b165f52600160205260405f2054151590565b90519015158152f35b600435906001600160a01b038216820361063d57565b6004359067ffffffffffffffff8216820361063d57565b9181601f8401121561063d5782359167ffffffffffffffff831161063d576020838186019501011161063d57565b908060209392818452848401375f828201840152601f01601f1916010190565b90601f8019910116810190811067ffffffffffffffff82111761092a57604052565b634e487b7160e01b5f52604160045260245ffd5b6001600160a01b0390911681526040602080830182905283519183018290526060938291018484015e5f828201840152601f01601f1916010190565b9081602091031261063d57516001600160a01b038116810361063d5790565b67ffffffffffffffff80911680158015610a02575b6109f0575f1901908082116109dc576109c79116610a3b565b905460039190911b1c6001600160a01b031690565b634e487b7160e01b5f52601160045260245ffd5b60405163a9146eeb60e01b8152600490fd5b50816004541681116109ae565b6002546001600160a01b03163303610a2357565b60405163118cdaa760e01b8152336004820152602490fd5b600454811015610a705760045f527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b01905f90565b634e487b7160e01b5f52603260045260245ffd5b805f52600160205260405f2054155f14610aed575f54600160401b81101561092a5760018101805f55811015610a705781907f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e56301555f54905f52600160205260405f2055600190565b505f90565b805f52600560205260405f2054155f14610aed57600454600160401b81101561092a57806001610b259201600455610a3b565b81549060031b9083821b915f19901b1916179055600454905f52600560205260405f205560019056fe604060a08152346101df576105c38038038061001a816101e3565b92833981019082818303126101df5780516001600160a01b0392838216918281036101df5760208481015190946001600160401b0382116101df570182601f820112156101df57805161007461006f8261021c565b6101e3565b91818352868301948783830101116101df57815f9288809301875e83010152813b156101c7577f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b03199081168617909155937fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a25180156101bf575f809161012694845af43d156101b7573d9161011861006f8461021c565b9283523d5f8785013e610237565b505b336080527f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f847fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d610394855494825191861682523390820152a133156101a057163317905551610328908161029b82396080518160f10152f35b8351633173bdd160e11b81525f6004820152602490fd5b606091610237565b505050610128565b8651634c9c8ce360e01b815260048101859052602490fd5b5f80fd5b6040519190601f01601f191682016001600160401b0381118382101761020857604052565b634e487b7160e01b5f52604160045260245ffd5b6001600160401b03811161020857601f01601f191660200190565b9061025e575080511561024c57805190602001fd5b604051630a12f52160e11b8152600490fd5b81511580610291575b61026f575090565b604051639996b31560e01b81526001600160a01b039091166004820152602490fd5b50803b1561026756fe6080604052600436106101f4575f3560e01c634f1ef286036101f45734610086576040366003190112610086576004356001600160a01b0381168103610086576024359067ffffffffffffffff9081831161008657366023840112156100865782600401359182116100865736602483850101116100865760246100849301906100e5565b005b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b6040519190601f01601f1916820167ffffffffffffffff8111838210176100c457604052565b61008a565b67ffffffffffffffff81116100c457601f01601f191660200190565b916001600160a01b03907f0000000000000000000000000000000000000000000000000000000000000000821633036101e257610129610124826100c9565b61009e565b92818452368282011161008657815f926020928387013784010152823b156101c85782167f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc816bffffffffffffffffffffffff60a01b8254161790557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a28051156101bc576101b991610256565b50565b50506101c661023d565b565b604051634c9c8ce360e01b81529083166004820152602490fd5b6040516334ad5dbb60e21b8152600490fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc545f9081906001600160a01b0316368280378136915af43d5f803e15610239573d5ff35b3d5ffd5b3461024457565b60405163b398979f60e01b8152600490fd5b5f8061028893602081519101845af43d1561028b573d91610279610124846100c9565b9283523d5f602085013e61028f565b90565b6060915b906102b657508051156102a457805190602001fd5b604051630a12f52160e11b8152600490fd5b815115806102e9575b6102c7575090565b604051639996b31560e01b81526001600160a01b039091166004820152602490fd5b50803b156102bf56fea2646970667358221220e4b601c2ec49e682c0ca62793f6e49e9cf3d0831d0d275714dfb732e051370ff64736f6c63430008190033a26469706673582212205f7d4a94a94238e254e286eb2102f1702d8f89e0f9c3f1d8b2ae41b973dd956164736f6c63430008190033","sourceMap":"195:138:73:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;195:138:73;;;;;;1576:7:78;195:138:73;;:::i;:::-;1576:7:78;:::i;:::-;195:138:73;;-1:-1:-1;;;;;195:138:73;;;;;;;;;;;;;;;;;;-1:-1:-1;;195:138:73;;;;;;:::i;:::-;1500:62:33;;;:::i;:::-;-1:-1:-1;;;;;195:138:73;;;;2627:22:33;;2623:91;;195:138:73;;3004:6:33;195:138:73;;;;;;;;3004:6:33;195:138:73;;3052:40:33;195:138:73;3052:40:33;;195:138:73;;2623:91:33;195:138:73;-1:-1:-1;;;2672:31:33;;;;;195:138:73;;;;;2672:31:33;195:138:73;;;;;;;;;;;;-1:-1:-1;;195:138:73;;;;;;;;;;;:::i;:::-;;;;869:56:78;195:138:73;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;195:138:73;;;;;;:::i;:::-;1500:62:33;;;:::i;:::-;195:138:73;;;;1065:12:78;;;:39;;;;;195:138:73;1061:93:78;;;195:138:73;;;2251:11:78;195:138:73;;;;;;;;2247:78:78;;-1:-1:-1;195:138:73;;;2251:11:78;195:138:73;;;;;;-1:-1:-1;;195:138:73;2358:4:78;195:138:73;;;2378:18:78;195:138:73;;2378:18:78;195:138:73;;2247:78:78;195:138:73;;-1:-1:-1;;;2294:20:78;;;1061:93;195:138:73;;-1:-1:-1;;;1127:16:78;;;1065:39;195:138:73;;;;;1081:23:78;;1065:39;;;195:138:73;;;;;;;;-1:-1:-1;;195:138:73;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;195:138:73;;;;;;;-1:-1:-1;195:138:73;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;195:138:73;;;;;;:::i;:::-;1500:62:33;;;:::i;:::-;195:138:73;;-1:-1:-1;;;1804:44:78;;-1:-1:-1;;;;;195:138:73;;;;;;1804:44:78;195:138:73;;1804:44:78;;;;;;;;;;;195:138:73;1860:4:78;;195:138:73;;1804:61:78;1800:122;;8409:50:62;;;:::i;:::-;1935:49:78;1931:107;;2053:26;;;;;;195:138:73;;1931:107:78;195:138:73;-1:-1:-1;;;2007:20:78;;;1800:122;195:138:73;-1:-1:-1;;;1888:23:78;;;1804:44;;;;;195:138:73;1804:44:78;195:138:73;1804:44:78;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;195:138:73;;;;;;;;;;;;;;;;;;;;;;;1710:6:33;195:138:73;;;-1:-1:-1;;;;;195:138:73;;;;;;;;;;;;;;;;;;;;;1500:62:33;;:::i;:::-;3004:6;195:138:73;;-1:-1:-1;;;;;;195:138:73;;;;;;;-1:-1:-1;;;;;195:138:73;3052:40:33;195:138:73;;3052:40:33;195:138:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;195:138:73;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;195:138:73;;;;;;;;;;;;;;;;;;;8974:55:62;4360:26;1185:72:79;;195:138:73;;-1:-1:-1;;;3069:24:78;;195:138:73;;;;;3069:24:78;195:138:73;3069:24:78;;;;;;;;195:138:73;3069:24:78;;;195:138:73;;;3055:10:78;:38;3051:86;;195:138:73;;-1:-1:-1;;;3165:36:78;;;195:138:73;3165:36:78;195:138:73;3165:36:78;;;;;;;;;;;195:138:73;3165:36:78;;;195:138:73;;;3151:50:78;;;3147:100;;1576:7;3347:61;1576:7;;:::i;:::-;195:138:73;;;;3347:61:78;;;;;;;;;;;195:138:73;3347:61:78;;195:138:73;;;;;;;;;;;:::i;:::-;3347:61:78;2651:50;;3347:61;;;;;;:::i;:::-;3257:161;;;;;195:138:73;;-1:-1:-1;;;3257:161:78;;195:138:73;;;;;;;3257:161:78;;195:138:73;3257:161:78;;;;:::i;:::-;;;;;;;;;;;;;195:138:73;-1:-1:-1;;195:138:73;;;;3434:28:78;;195:138:73;3434:28:78;195:138:73;;3257:161:78;195:138:73;;;;;;;;;;;;-1:-1:-1;195:138:73;;;3257:161:78;;;;195:138:73;;;;;;;;;;;;3257:161:78;195:138:73;;;;;;;;;3257:161:78;195:138:73;;;3147:100:78;195:138:73;;-1:-1:-1;;;3224:12:78;;195:138:73;;3224:12:78;3165:36;;;;;;;;;;;;;;;;;;:::i;:::-;;;195:138:73;;;;;;;;;;;;3165:36:78;;;;;;;;;;;195:138:73;;;;;;;;;3051:86:78;195:138:73;;-1:-1:-1;;;3116:10:78;;195:138:73;;3116:10:78;3069:24;;;;;;;;;;;;;;:::i;:::-;;;;;195:138:73;;;;;;;;;1185:72:79;195:138:73;;-1:-1:-1;;;1230:16:79;;195:138:73;;1230:16:79;195:138:73;;;;;;;-1:-1:-1;;195:138:73;;;;;;:::i;:::-;-1:-1:-1;;;;;195:138:73;;;;;;;;;;;;;;;;;;;;;2746:69:78;195:138:73;;;;;;:::i;:::-;;;;;;;;2651:50:78;195:138:73;2651:50:78;;195:138:73;;;1576:7:78;195:138:73;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2651:50:78;;;;;;;;;;;;;:::i;:::-;195:138:73;2641:61:78;;1576:7;;:::i;:::-;195:138:73;;;2746:69:78;;;;;;195:138:73;2746:69:78;;;195:138:73;2746:69:78;;195:138:73;;;;;;;;;;;;;;;:::i;:::-;2746:69:78;;;;;;;;:::i;:::-;195:138:73;;2609:220:78;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;195:138:73;2609:220:78;;;;;;195:138:73;;;8409:50:62;;;;:::i;:::-;;195:138:73;1077:18:79;;;195:138:73;1077:18:79;;195:138:73;;;2609:220:78;195:138:73;;;;;;;;;2609:220:78;195:138:73;;;;;;;;;;;;;;;;;;-1:-1:-1;;195:138:73;;;;;;8974:55:62;-1:-1:-1;;;;;195:138:73;;:::i;:::-;;;;4360:14:62;195:138:73;;;;;;4360:26:62;;4264:129;;8974:55;195:138:73;;;;;;;;;;;;-1:-1:-1;;;;;195:138:73;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;195:138:73;;;;;;;;-1:-1:-1;;195:138:73;;;;:::o;:::-;;;2651:50:78;;195:138:73;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;195:138:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;195:138:73;;;;:::o;:::-;;;;;;;;;;-1:-1:-1;;;;;195:138:73;;;;;;;:::o;999:172:78:-;195:138:73;;;;1065:12:78;;:39;;;;999:172;1061:93;;-1:-1:-1;;195:138:73;;;;;;;5016:18:62;195:138:73;;5016:18:62;:::i;:::-;195:138:73;;;;;;;;-1:-1:-1;;;;;195:138:73;;999:172:78:o;195:138:73:-;;;;;;;1602:27:78;195:138:73;;;;1061:93:78;195:138:73;;-1:-1:-1;;;1127:16:78;;;;;1065:39;195:138:73;;1374:27:78;195:138:73;;1081:23:78;;1065:39;;1796:162:33;1710:6;195:138:73;-1:-1:-1;;;;;195:138:73;735:10:48;1855:23:33;1851:101;;1796:162::o;1851:101::-;195:138:73;;-1:-1:-1;;;1901:40:33;;735:10:48;1901:40:33;;;195:138:73;;;1901:40:33;195:138:73;1602:27:78;195:138:73;;;;;;1602:27:78;-1:-1:-1;195:138:73;;;;-1:-1:-1;195:138:73;:::o;:::-;;;;;;;1602:27:78;195:138:73;;;;2241:406:62;195:138:73;;;4360:14:62;195:138:73;;;;;;4360:26:62;2320:321;195:138:73;;;;;-1:-1:-1;;;195:138:73;;;;;4360:14:62;195:138:73;;;;;;;;;;;;;;;;;;;;4360:14:62;195:138:73;;;;;;4360:14:62;2576:11;:::o;2320:321::-;2618:12;195:138:73;2618:12:62;:::o;2241:406::-;195:138:73;-1:-1:-1;195:138:73;4360:14:62;195:138:73;;;-1:-1:-1;195:138:73;;4360:26:62;2320:321;195:138:73;;;;;-1:-1:-1;;;195:138:73;;;;;;4360:14:62;195:138:73;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;195:138:73;4360:14:62;195:138:73;;;-1:-1:-1;195:138:73;;4360:14:62;2576:11;:::o","linkReferences":{}},"methodIdentifiers":{"blacklist(uint64)":"b572a966","blacklisted(uint64)":"b6caa119","create(uint64,address,bytes)":"3ac04911","entity(uint256)":"b42ba2a2","implementation(uint64)":"f9661602","isEntity(address)":"14887c58","lastVersion()":"64dfea06","migrate(address,uint64,bytes)":"58336662","owner()":"8da5cb5b","renounceOwnership()":"715018a6","totalEntities()":"5cd8b15e","transferOwnership(address)":"f2fde38b","whitelist(address)":"9b19251a"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner_\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"AlreadyBlacklisted\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AlreadyWhitelisted\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"EntityNotExist\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidImplementation\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidVersion\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotOwner\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OldVersion\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"entity\",\"type\":\"address\"}],\"name\":\"AddEntity\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Blacklist\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"entity\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"newVersion\",\"type\":\"uint64\"}],\"name\":\"Migrate\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"Whitelist\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"blacklist\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"blacklisted\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"value\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"owner_\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"create\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"entity_\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"entity\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"implementation\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"entity_\",\"type\":\"address\"}],\"name\":\"isEntity\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"lastVersion\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"entity_\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"newVersion\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"migrate\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalEntities\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"implementation_\",\"type\":\"address\"}],\"name\":\"whitelist\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}]},\"events\":{\"AddEntity(address)\":{\"params\":{\"entity\":\"address of the added entity\"}},\"Blacklist(uint64)\":{\"details\":\"The given version is still deployable.\",\"params\":{\"version\":\"version that was blacklisted\"}},\"Migrate(address,uint64)\":{\"params\":{\"entity\":\"address of the entity\",\"newVersion\":\"new version of the entity\"}},\"Whitelist(address)\":{\"params\":{\"implementation\":\"address of the new implementation\"}}},\"kind\":\"dev\",\"methods\":{\"blacklist(uint64)\":{\"details\":\"The given version will still be deployable.\",\"params\":{\"version\":\"version to blacklist\"}},\"create(uint64,address,bytes)\":{\"details\":\"CREATE2 salt is constructed from the given parameters.\",\"params\":{\"data\":\"initial data for the entity creation\",\"owner\":\"initial owner of the entity\",\"version\":\"entity's version to use\"},\"returns\":{\"entity_\":\"address of the entity\"}},\"entity(uint256)\":{\"params\":{\"index\":\"index of the entity to get\"},\"returns\":{\"_0\":\"address of the entity\"}},\"implementation(uint64)\":{\"details\":\"Reverts when an invalid version.\",\"params\":{\"version\":\"version to get the implementation for\"},\"returns\":{\"_0\":\"address of the implementation\"}},\"isEntity(address)\":{\"params\":{\"account\":\"address to check\"},\"returns\":{\"_0\":\"if the given address is an entity\"}},\"lastVersion()\":{\"details\":\"If zero, no implementations are whitelisted.\",\"returns\":{\"_0\":\"version of the last implementation\"}},\"migrate(address,uint64,bytes)\":{\"details\":\"Only the entity's owner can call this function.\",\"params\":{\"data\":\"some data to reinitialize the contract with\",\"entity\":\"address of the entity to migrate\",\"newVersion\":\"new version to migrate to\"}},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"totalEntities()\":{\"returns\":{\"_0\":\"total number of entities added\"}},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"},\"whitelist(address)\":{\"params\":{\"implementation\":\"address of the new implementation\"}}},\"version\":1},\"userdoc\":{\"events\":{\"AddEntity(address)\":{\"notice\":\"Emitted when an entity is added.\"},\"Blacklist(uint64)\":{\"notice\":\"Emitted when a version is blacklisted (e.g., in case of invalid implementation).\"},\"Migrate(address,uint64)\":{\"notice\":\"Emitted when an entity is migrated to a new version.\"},\"Whitelist(address)\":{\"notice\":\"Emitted when a new implementation is whitelisted.\"}},\"kind\":\"user\",\"methods\":{\"blacklist(uint64)\":{\"notice\":\"Blacklist a version of entities.\"},\"blacklisted(uint64)\":{\"notice\":\"Get if a version is blacklisted (e.g., in case of invalid implementation).\"},\"create(uint64,address,bytes)\":{\"notice\":\"Create a new entity at the factory.\"},\"entity(uint256)\":{\"notice\":\"Get an entity given its index.\"},\"implementation(uint64)\":{\"notice\":\"Get the implementation for a given version.\"},\"isEntity(address)\":{\"notice\":\"Get if a given address is an entity.\"},\"lastVersion()\":{\"notice\":\"Get the last available version.\"},\"migrate(address,uint64,bytes)\":{\"notice\":\"Migrate a given entity to a given newer version.\"},\"totalEntities()\":{\"notice\":\"Get a total number of entities.\"},\"whitelist(address)\":{\"notice\":\"Whitelist a new implementation for entities.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/contracts/VaultFactory.sol\":\"VaultFactory\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Proxy.sol\":{\"keccak256\":\"0xbfb6695731de677140fbf76c772ab08c4233a122fb51ac28ac120fc49bbbc4ec\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://68f8fded7cc318efa15874b7c6a983fe17a4a955d72d240353a9a4ca1e1b824c\",\"dweb:/ipfs/QmdcmBL9Qo4Tk3Dby4wFYabGyot9JNeLPxpSXZUgUm92BV\"]},\"lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol\":{\"keccak256\":\"0x06a78f9b3ee3e6d0eb4e4cd635ba49960bea34cac1db8c0a27c75f2319f1fd65\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://547d21aa17f4f3f1a1a7edf7167beff8dd9496a0348d5588f15cc8a4b29d052a\",\"dweb:/ipfs/QmT16JtRQSWNpLo9W23jr6CzaMuTAcQcjJJcdRd8HLJ6cE\"]},\"lib/openzeppelin-contracts/contracts/proxy/Proxy.sol\":{\"keccak256\":\"0xc3f2ec76a3de8ed7a7007c46166f5550c72c7709e3fc7e8bb3111a7191cdedbd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e73efb4c2ca655882dc237c6b4f234a9bd36d97159d8fcaa837eb01171f726ac\",\"dweb:/ipfs/QmTNnnv7Gu5fs5G1ZMh7Fexp8N4XUs3XrNAngjcxgiss3e\"]},\"lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0xc59a78b07b44b2cf2e8ab4175fca91e8eca1eee2df7357b8d2a8833e5ea1f64c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5aa4f07e65444784c29cd7bfcc2341b34381e4e5b5da9f0c5bd00d7f430e66fa\",\"dweb:/ipfs/QmWRMh4Q9DpaU9GvsiXmDdoNYMyyece9if7hnfLz7uqzWM\"]},\"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\"]},\"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0x32ba59b4b7299237c8ba56319110989d7978a039faf754793064e967e5894418\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1ae50c8b562427df610cc4540c9bf104acca7ef8e2dcae567ae7e52272281e9c\",\"dweb:/ipfs/QmTHiadFCSJUPpRjNegc5SahmeU8bAoY8i9Aq6tVscbcKR\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0x86c1470cbfd878491e5de030072b647352d36bd27122cffb928970b1945282aa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ad85dd393ee0a1917c57046abc5155f51f77844b2c6a42c05c1b8dd26d6ff3c1\",\"dweb:/ipfs/QmNqYc8To2NdnpP6E1tGz7t6A7beuENde5yovwov5pW1fA\"]},\"src/contracts/VaultFactory.sol\":{\"keccak256\":\"0xa9122dd11e5f21fa97a813e90f8c4905f0a4967b9611dd03437a31377cbdecb8\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://4c2feda1f9c0c7ddf65bccdc99494e4bfbb820fcddc3e4222e3b58ef821424a3\",\"dweb:/ipfs/Qmdmt4rH214jDmDsF9ELvJXVCt8abhk6poSmhJqqzLse3R\"]},\"src/contracts/common/MigratableEntityProxy.sol\":{\"keccak256\":\"0x78ba27242276232ad10a45265e3c07f0a25722456f6abb3fb3f24a1c8e1b38d1\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://a19623df688e5085036b59fc934e35b72997f875d7ffda1cdc557c6ca468206d\",\"dweb:/ipfs/QmaQiT5uYZu5JmqhMjTDJnsq3nqaHbKrWAjrxKKLesdHV7\"]},\"src/contracts/common/MigratablesFactory.sol\":{\"keccak256\":\"0x5d1487c3456da4bd0bc2a131eeab97ab92484c923edefaebf190cc08d4080093\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://fec38d2e52e9c5148e95599c133fd6fe66d41296d6fc06e7329d2db199a1798f\",\"dweb:/ipfs/QmeiaydBXHHkJRUnpaZH1C6JQ7HPocTvQbUJBqKTvUeEYv\"]},\"src/contracts/common/Registry.sol\":{\"keccak256\":\"0x4a4004836d920953a8ec6e223de9a330f43acf7a5b93c6b8b3e4a95e0f129889\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://e8bdda207f3852c683a2b481602239a914f7e26bcd042ade618e263a43b67652\",\"dweb:/ipfs/Qmb8GZykJWxZcfwNp3SqhFizDFydFuV6LXgemV3vnWyLyu\"]},\"src/interfaces/IVaultFactory.sol\":{\"keccak256\":\"0x6f658b264fc8d530e458a98d83a09cb55ace4d3e509f0a3e9294471bb1bcf84d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a7253435e4e1d1ae19a50d14091ddb254f6a36f296440106bfc094623dd1aeba\",\"dweb:/ipfs/QmbHK9yoQ7Ctf3nuDLmqxTWPYD8cEm1TKXzfxePtE87AQN\"]},\"src/interfaces/common/IMigratableEntity.sol\":{\"keccak256\":\"0x8f5f2809f3afbe8ebfbb365dd7b57b4dd3b6f9943a6187eaf648d45895b8e3c4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ffe640537d539e7a4fde70d30d3e4c57f4ba9c2c25c450cea713aae38e8fd5c\",\"dweb:/ipfs/QmSUTGzvdcn1R1KB7tLThMRtESsfPbeXDhhhKWGtntzBds\"]},\"src/interfaces/common/IMigratableEntityProxy.sol\":{\"keccak256\":\"0x9030ced51ad12e0b3ddaa11bba4a3adcfa29e67b909c46065c14b19d158bb9fd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2d859c21510d1a0f06a71abe21dc6424608c1b2e3194a10e4df4cc88c4de9e9f\",\"dweb:/ipfs/QmNi6Buri2oaujc4vTv6bZ5mgMKFsjUmYmQLUNaDCXFEEt\"]},\"src/interfaces/common/IMigratablesFactory.sol\":{\"keccak256\":\"0xd4dfe9449bf005dbcbab9e0e85eaaca15a601ff971f34182a0b1832dc4b9d124\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ff8b73285192a9c64160b008d23a09da33e7164d10a9dc29d1a4464bd9c02be5\",\"dweb:/ipfs/QmZQW2LLV4dQfJ3coENKeycbzXJzi7zdvupsqWA4UV29Gq\"]},\"src/interfaces/common/IRegistry.sol\":{\"keccak256\":\"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014\",\"dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.25+commit.b61c2a91"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"owner_","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"AlreadyBlacklisted"},{"inputs":[],"type":"error","name":"AlreadyWhitelisted"},{"inputs":[],"type":"error","name":"EntityNotExist"},{"inputs":[],"type":"error","name":"InvalidImplementation"},{"inputs":[],"type":"error","name":"InvalidVersion"},{"inputs":[],"type":"error","name":"NotOwner"},{"inputs":[],"type":"error","name":"OldVersion"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"OwnableInvalidOwner"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"OwnableUnauthorizedAccount"},{"inputs":[{"internalType":"address","name":"entity","type":"address","indexed":true}],"type":"event","name":"AddEntity","anonymous":false},{"inputs":[{"internalType":"uint64","name":"version","type":"uint64","indexed":true}],"type":"event","name":"Blacklist","anonymous":false},{"inputs":[{"internalType":"address","name":"entity","type":"address","indexed":true},{"internalType":"uint64","name":"newVersion","type":"uint64","indexed":false}],"type":"event","name":"Migrate","anonymous":false},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"address","name":"implementation","type":"address","indexed":true}],"type":"event","name":"Whitelist","anonymous":false},{"inputs":[{"internalType":"uint64","name":"version","type":"uint64"}],"stateMutability":"nonpayable","type":"function","name":"blacklist"},{"inputs":[{"internalType":"uint64","name":"version","type":"uint64"}],"stateMutability":"view","type":"function","name":"blacklisted","outputs":[{"internalType":"bool","name":"value","type":"bool"}]},{"inputs":[{"internalType":"uint64","name":"version","type":"uint64"},{"internalType":"address","name":"owner_","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"create","outputs":[{"internalType":"address","name":"entity_","type":"address"}]},{"inputs":[{"internalType":"uint256","name":"index","type":"uint256"}],"stateMutability":"view","type":"function","name":"entity","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"uint64","name":"version","type":"uint64"}],"stateMutability":"view","type":"function","name":"implementation","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"entity_","type":"address"}],"stateMutability":"view","type":"function","name":"isEntity","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"lastVersion","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[{"internalType":"address","name":"entity_","type":"address"},{"internalType":"uint64","name":"newVersion","type":"uint64"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"migrate"},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[],"stateMutability":"view","type":"function","name":"totalEntities","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"},{"inputs":[{"internalType":"address","name":"implementation_","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"whitelist"}],"devdoc":{"kind":"dev","methods":{"blacklist(uint64)":{"details":"The given version will still be deployable.","params":{"version":"version to blacklist"}},"create(uint64,address,bytes)":{"details":"CREATE2 salt is constructed from the given parameters.","params":{"data":"initial data for the entity creation","owner":"initial owner of the entity","version":"entity's version to use"},"returns":{"entity_":"address of the entity"}},"entity(uint256)":{"params":{"index":"index of the entity to get"},"returns":{"_0":"address of the entity"}},"implementation(uint64)":{"details":"Reverts when an invalid version.","params":{"version":"version to get the implementation for"},"returns":{"_0":"address of the implementation"}},"isEntity(address)":{"params":{"account":"address to check"},"returns":{"_0":"if the given address is an entity"}},"lastVersion()":{"details":"If zero, no implementations are whitelisted.","returns":{"_0":"version of the last implementation"}},"migrate(address,uint64,bytes)":{"details":"Only the entity's owner can call this function.","params":{"data":"some data to reinitialize the contract with","entity":"address of the entity to migrate","newVersion":"new version to migrate to"}},"owner()":{"details":"Returns the address of the current owner."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner."},"totalEntities()":{"returns":{"_0":"total number of entities added"}},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."},"whitelist(address)":{"params":{"implementation":"address of the new implementation"}}},"version":1},"userdoc":{"kind":"user","methods":{"blacklist(uint64)":{"notice":"Blacklist a version of entities."},"blacklisted(uint64)":{"notice":"Get if a version is blacklisted (e.g., in case of invalid implementation)."},"create(uint64,address,bytes)":{"notice":"Create a new entity at the factory."},"entity(uint256)":{"notice":"Get an entity given its index."},"implementation(uint64)":{"notice":"Get the implementation for a given version."},"isEntity(address)":{"notice":"Get if a given address is an entity."},"lastVersion()":{"notice":"Get the last available version."},"migrate(address,uint64,bytes)":{"notice":"Migrate a given entity to a given newer version."},"totalEntities()":{"notice":"Get a total number of entities."},"whitelist(address)":{"notice":"Whitelist a new implementation for entities."}},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/contracts/VaultFactory.sol":"VaultFactory"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts/contracts/access/Ownable.sol":{"keccak256":"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb","urls":["bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6","dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Proxy.sol":{"keccak256":"0xbfb6695731de677140fbf76c772ab08c4233a122fb51ac28ac120fc49bbbc4ec","urls":["bzz-raw://68f8fded7cc318efa15874b7c6a983fe17a4a955d72d240353a9a4ca1e1b824c","dweb:/ipfs/QmdcmBL9Qo4Tk3Dby4wFYabGyot9JNeLPxpSXZUgUm92BV"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol":{"keccak256":"0x06a78f9b3ee3e6d0eb4e4cd635ba49960bea34cac1db8c0a27c75f2319f1fd65","urls":["bzz-raw://547d21aa17f4f3f1a1a7edf7167beff8dd9496a0348d5588f15cc8a4b29d052a","dweb:/ipfs/QmT16JtRQSWNpLo9W23jr6CzaMuTAcQcjJJcdRd8HLJ6cE"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/Proxy.sol":{"keccak256":"0xc3f2ec76a3de8ed7a7007c46166f5550c72c7709e3fc7e8bb3111a7191cdedbd","urls":["bzz-raw://e73efb4c2ca655882dc237c6b4f234a9bd36d97159d8fcaa837eb01171f726ac","dweb:/ipfs/QmTNnnv7Gu5fs5G1ZMh7Fexp8N4XUs3XrNAngjcxgiss3e"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol":{"keccak256":"0xc59a78b07b44b2cf2e8ab4175fca91e8eca1eee2df7357b8d2a8833e5ea1f64c","urls":["bzz-raw://5aa4f07e65444784c29cd7bfcc2341b34381e4e5b5da9f0c5bd00d7f430e66fa","dweb:/ipfs/QmWRMh4Q9DpaU9GvsiXmDdoNYMyyece9if7hnfLz7uqzWM"],"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"},"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol":{"keccak256":"0x32ba59b4b7299237c8ba56319110989d7978a039faf754793064e967e5894418","urls":["bzz-raw://1ae50c8b562427df610cc4540c9bf104acca7ef8e2dcae567ae7e52272281e9c","dweb:/ipfs/QmTHiadFCSJUPpRjNegc5SahmeU8bAoY8i9Aq6tVscbcKR"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0x86c1470cbfd878491e5de030072b647352d36bd27122cffb928970b1945282aa","urls":["bzz-raw://ad85dd393ee0a1917c57046abc5155f51f77844b2c6a42c05c1b8dd26d6ff3c1","dweb:/ipfs/QmNqYc8To2NdnpP6E1tGz7t6A7beuENde5yovwov5pW1fA"],"license":"MIT"},"src/contracts/VaultFactory.sol":{"keccak256":"0xa9122dd11e5f21fa97a813e90f8c4905f0a4967b9611dd03437a31377cbdecb8","urls":["bzz-raw://4c2feda1f9c0c7ddf65bccdc99494e4bfbb820fcddc3e4222e3b58ef821424a3","dweb:/ipfs/Qmdmt4rH214jDmDsF9ELvJXVCt8abhk6poSmhJqqzLse3R"],"license":"BUSL-1.1"},"src/contracts/common/MigratableEntityProxy.sol":{"keccak256":"0x78ba27242276232ad10a45265e3c07f0a25722456f6abb3fb3f24a1c8e1b38d1","urls":["bzz-raw://a19623df688e5085036b59fc934e35b72997f875d7ffda1cdc557c6ca468206d","dweb:/ipfs/QmaQiT5uYZu5JmqhMjTDJnsq3nqaHbKrWAjrxKKLesdHV7"],"license":"BUSL-1.1"},"src/contracts/common/MigratablesFactory.sol":{"keccak256":"0x5d1487c3456da4bd0bc2a131eeab97ab92484c923edefaebf190cc08d4080093","urls":["bzz-raw://fec38d2e52e9c5148e95599c133fd6fe66d41296d6fc06e7329d2db199a1798f","dweb:/ipfs/QmeiaydBXHHkJRUnpaZH1C6JQ7HPocTvQbUJBqKTvUeEYv"],"license":"BUSL-1.1"},"src/contracts/common/Registry.sol":{"keccak256":"0x4a4004836d920953a8ec6e223de9a330f43acf7a5b93c6b8b3e4a95e0f129889","urls":["bzz-raw://e8bdda207f3852c683a2b481602239a914f7e26bcd042ade618e263a43b67652","dweb:/ipfs/Qmb8GZykJWxZcfwNp3SqhFizDFydFuV6LXgemV3vnWyLyu"],"license":"BUSL-1.1"},"src/interfaces/IVaultFactory.sol":{"keccak256":"0x6f658b264fc8d530e458a98d83a09cb55ace4d3e509f0a3e9294471bb1bcf84d","urls":["bzz-raw://a7253435e4e1d1ae19a50d14091ddb254f6a36f296440106bfc094623dd1aeba","dweb:/ipfs/QmbHK9yoQ7Ctf3nuDLmqxTWPYD8cEm1TKXzfxePtE87AQN"],"license":"MIT"},"src/interfaces/common/IMigratableEntity.sol":{"keccak256":"0x8f5f2809f3afbe8ebfbb365dd7b57b4dd3b6f9943a6187eaf648d45895b8e3c4","urls":["bzz-raw://0ffe640537d539e7a4fde70d30d3e4c57f4ba9c2c25c450cea713aae38e8fd5c","dweb:/ipfs/QmSUTGzvdcn1R1KB7tLThMRtESsfPbeXDhhhKWGtntzBds"],"license":"MIT"},"src/interfaces/common/IMigratableEntityProxy.sol":{"keccak256":"0x9030ced51ad12e0b3ddaa11bba4a3adcfa29e67b909c46065c14b19d158bb9fd","urls":["bzz-raw://2d859c21510d1a0f06a71abe21dc6424608c1b2e3194a10e4df4cc88c4de9e9f","dweb:/ipfs/QmNi6Buri2oaujc4vTv6bZ5mgMKFsjUmYmQLUNaDCXFEEt"],"license":"MIT"},"src/interfaces/common/IMigratablesFactory.sol":{"keccak256":"0xd4dfe9449bf005dbcbab9e0e85eaaca15a601ff971f34182a0b1832dc4b9d124","urls":["bzz-raw://ff8b73285192a9c64160b008d23a09da33e7164d10a9dc29d1a4464bd9c02be5","dweb:/ipfs/QmZQW2LLV4dQfJ3coENKeycbzXJzi7zdvupsqWA4UV29Gq"],"license":"MIT"},"src/interfaces/common/IRegistry.sol":{"keccak256":"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb","urls":["bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014","dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK"],"license":"MIT"}},"version":1},"id":73} \ No newline at end of file diff --git a/out/VaultHints.sol/VaultHints.json b/out/VaultHints.sol/VaultHints.json index 1cb37bd8..0cd6008d 100644 --- a/out/VaultHints.sol/VaultHints.json +++ b/out/VaultHints.sol/VaultHints.json @@ -1 +1 @@ -{"abi":[{"type":"constructor","inputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"DEFAULT_ADMIN_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"DELEGATOR_FACTORY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"DEPOSITOR_WHITELIST_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"DEPOSIT_LIMIT_SET_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"DEPOSIT_WHITELIST_SET_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"FACTORY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"IS_DEPOSIT_LIMIT_SET_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"SLASHER_FACTORY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"activeBalanceOf","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"activeBalanceOfAt","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"timestamp","type":"uint48","internalType":"uint48"},{"name":"hints","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"activeBalanceOfHints","inputs":[{"name":"vault","type":"address","internalType":"address"},{"name":"account","type":"address","internalType":"address"},{"name":"timestamp","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"activeShares","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"activeSharesAt","inputs":[{"name":"timestamp","type":"uint48","internalType":"uint48"},{"name":"hint","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"activeSharesHint","inputs":[{"name":"vault","type":"address","internalType":"address"},{"name":"timestamp","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"activeSharesHintInternal","inputs":[{"name":"timestamp","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"exists","type":"bool","internalType":"bool"},{"name":"hint","type":"uint32","internalType":"uint32"}],"stateMutability":"view"},{"type":"function","name":"activeSharesOf","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"activeSharesOfAt","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"timestamp","type":"uint48","internalType":"uint48"},{"name":"hint","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"activeSharesOfHint","inputs":[{"name":"vault","type":"address","internalType":"address"},{"name":"account","type":"address","internalType":"address"},{"name":"timestamp","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"activeSharesOfHintInternal","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"timestamp","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"exists","type":"bool","internalType":"bool"},{"name":"hint","type":"uint32","internalType":"uint32"}],"stateMutability":"view"},{"type":"function","name":"activeStake","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"activeStakeAt","inputs":[{"name":"timestamp","type":"uint48","internalType":"uint48"},{"name":"hint","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"activeStakeHint","inputs":[{"name":"vault","type":"address","internalType":"address"},{"name":"timestamp","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"activeStakeHintInternal","inputs":[{"name":"timestamp","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"exists","type":"bool","internalType":"bool"},{"name":"hint","type":"uint32","internalType":"uint32"}],"stateMutability":"view"},{"type":"function","name":"burner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"claim","inputs":[{"name":"recipient","type":"address","internalType":"address"},{"name":"epoch","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"claimBatch","inputs":[{"name":"recipient","type":"address","internalType":"address"},{"name":"epochs","type":"uint256[]","internalType":"uint256[]"}],"outputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"collateral","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"currentEpoch","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"currentEpochStart","inputs":[],"outputs":[{"name":"","type":"uint48","internalType":"uint48"}],"stateMutability":"view"},{"type":"function","name":"delegator","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"deposit","inputs":[{"name":"onBehalfOf","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"depositedAmount","type":"uint256","internalType":"uint256"},{"name":"mintedShares","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"depositLimit","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"depositWhitelist","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"epochAt","inputs":[{"name":"timestamp","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"epochDuration","inputs":[],"outputs":[{"name":"","type":"uint48","internalType":"uint48"}],"stateMutability":"view"},{"type":"function","name":"epochDurationInit","inputs":[],"outputs":[{"name":"","type":"uint48","internalType":"uint48"}],"stateMutability":"view"},{"type":"function","name":"getRoleAdmin","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"grantRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"hasRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"initialize","inputs":[{"name":"initialVersion","type":"uint64","internalType":"uint64"},{"name":"owner_","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"isDelegatorInitialized","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isDepositLimit","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isDepositorWhitelisted","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"value","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isInitialized","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isSlasherInitialized","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isWithdrawalsClaimed","inputs":[{"name":"epoch","type":"uint256","internalType":"uint256"},{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"value","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"migrate","inputs":[{"name":"newVersion","type":"uint64","internalType":"uint64"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"nextEpochStart","inputs":[],"outputs":[{"name":"","type":"uint48","internalType":"uint48"}],"stateMutability":"view"},{"type":"function","name":"onSlash","inputs":[{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"captureTimestamp","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"slashedAmount","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"previousEpochStart","inputs":[],"outputs":[{"name":"","type":"uint48","internalType":"uint48"}],"stateMutability":"view"},{"type":"function","name":"redeem","inputs":[{"name":"claimer","type":"address","internalType":"address"},{"name":"shares","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"withdrawnAssets","type":"uint256","internalType":"uint256"},{"name":"mintedShares","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"renounceRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"callerConfirmation","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"revokeRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setDelegator","inputs":[{"name":"delegator_","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setDepositLimit","inputs":[{"name":"limit","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setDepositWhitelist","inputs":[{"name":"status","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setDepositorWhitelistStatus","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"status","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setIsDepositLimit","inputs":[{"name":"status","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setSlasher","inputs":[{"name":"slasher_","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"slashableBalanceOf","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"slasher","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"staticDelegateCall","inputs":[{"name":"target","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"totalStake","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"version","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"withdraw","inputs":[{"name":"claimer","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"burnedShares","type":"uint256","internalType":"uint256"},{"name":"mintedShares","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"withdrawalShares","inputs":[{"name":"epoch","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"withdrawalSharesOf","inputs":[{"name":"epoch","type":"uint256","internalType":"uint256"},{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"withdrawals","inputs":[{"name":"epoch","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"withdrawalsOf","inputs":[{"name":"epoch","type":"uint256","internalType":"uint256"},{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"event","name":"Claim","inputs":[{"name":"claimer","type":"address","indexed":true,"internalType":"address"},{"name":"recipient","type":"address","indexed":true,"internalType":"address"},{"name":"epoch","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"ClaimBatch","inputs":[{"name":"claimer","type":"address","indexed":true,"internalType":"address"},{"name":"recipient","type":"address","indexed":true,"internalType":"address"},{"name":"epochs","type":"uint256[]","indexed":false,"internalType":"uint256[]"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Deposit","inputs":[{"name":"depositor","type":"address","indexed":true,"internalType":"address"},{"name":"onBehalfOf","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"shares","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"OnSlash","inputs":[{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"captureTimestamp","type":"uint48","indexed":false,"internalType":"uint48"},{"name":"slashedAmount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"RoleAdminChanged","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"previousAdminRole","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"newAdminRole","type":"bytes32","indexed":true,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"RoleGranted","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"sender","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"RoleRevoked","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"sender","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"SetDelegator","inputs":[{"name":"delegator","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"SetDepositLimit","inputs":[{"name":"limit","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"SetDepositWhitelist","inputs":[{"name":"status","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"SetDepositorWhitelistStatus","inputs":[{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"status","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"SetIsDepositLimit","inputs":[{"name":"status","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"SetSlasher","inputs":[{"name":"slasher","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Withdraw","inputs":[{"name":"withdrawer","type":"address","indexed":true,"internalType":"address"},{"name":"claimer","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"burnedShares","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"mintedShares","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"error","name":"AccessControlBadConfirmation","inputs":[]},{"type":"error","name":"AccessControlUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"neededRole","type":"bytes32","internalType":"bytes32"}]},{"type":"error","name":"AddressEmptyCode","inputs":[{"name":"target","type":"address","internalType":"address"}]},{"type":"error","name":"AddressInsufficientBalance","inputs":[{"name":"account","type":"address","internalType":"address"}]},{"type":"error","name":"AlreadyClaimed","inputs":[]},{"type":"error","name":"AlreadyInitialized","inputs":[]},{"type":"error","name":"AlreadySet","inputs":[]},{"type":"error","name":"CheckpointUnorderedInsertion","inputs":[]},{"type":"error","name":"DelegatorAlreadyInitialized","inputs":[]},{"type":"error","name":"DepositLimitReached","inputs":[]},{"type":"error","name":"ExternalCall","inputs":[]},{"type":"error","name":"FailedInnerCall","inputs":[]},{"type":"error","name":"InsufficientClaim","inputs":[]},{"type":"error","name":"InsufficientDeposit","inputs":[]},{"type":"error","name":"InsufficientRedemption","inputs":[]},{"type":"error","name":"InsufficientWithdrawal","inputs":[]},{"type":"error","name":"InvalidAccount","inputs":[]},{"type":"error","name":"InvalidCaptureEpoch","inputs":[]},{"type":"error","name":"InvalidClaimer","inputs":[]},{"type":"error","name":"InvalidCollateral","inputs":[]},{"type":"error","name":"InvalidDelegator","inputs":[]},{"type":"error","name":"InvalidEpoch","inputs":[]},{"type":"error","name":"InvalidEpochDuration","inputs":[]},{"type":"error","name":"InvalidInitialization","inputs":[]},{"type":"error","name":"InvalidLengthEpochs","inputs":[]},{"type":"error","name":"InvalidOnBehalfOf","inputs":[]},{"type":"error","name":"InvalidRecipient","inputs":[]},{"type":"error","name":"InvalidSlasher","inputs":[]},{"type":"error","name":"InvalidTimestamp","inputs":[]},{"type":"error","name":"MathOverflowedMulDiv","inputs":[]},{"type":"error","name":"MissingRoles","inputs":[]},{"type":"error","name":"NoPreviousEpoch","inputs":[]},{"type":"error","name":"NotDelegator","inputs":[]},{"type":"error","name":"NotFactory","inputs":[]},{"type":"error","name":"NotInitialized","inputs":[]},{"type":"error","name":"NotInitializing","inputs":[]},{"type":"error","name":"NotSlasher","inputs":[]},{"type":"error","name":"NotWhitelistedDepositor","inputs":[]},{"type":"error","name":"OwnableInvalidOwner","inputs":[{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"OwnableUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"}]},{"type":"error","name":"ReentrancyGuardReentrantCall","inputs":[]},{"type":"error","name":"SafeCastOverflowedUintDowncast","inputs":[{"name":"bits","type":"uint8","internalType":"uint8"},{"name":"value","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"SafeERC20FailedOperation","inputs":[{"name":"token","type":"address","internalType":"address"}]},{"type":"error","name":"SlasherAlreadyInitialized","inputs":[]},{"type":"error","name":"TooMuchRedeem","inputs":[]},{"type":"error","name":"TooMuchWithdraw","inputs":[]}],"bytecode":{"object":"0x610100806040523461011057306080525f60a0525f60c0527ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a009081549060ff8260401c1661010157506001600160401b036002600160401b0319828216016100bc575b5f60e05260405161521a908161011582396080518181816110590152818161133101526123a7015260a05181818161137d01526118cc015260c051818181611a350152611ee5015260e0518181816107e00152610a2e0152f35b6001600160401b031990911681179091556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a15f8080610062565b63f92ee8a960e01b8152600490fd5b5f80fdfe60806040526004361015610011575f80fd5b5f3560e01c806301ffc9a7146104a45780631415519b1461049f5780631b66c9e11461049a5780631e9a695014610495578063248a9ca31461049057806327810b6e1461048b578063281f5752146104865780632abe3048146104815780632d73c69c1461047c5780632dd31000146104775780632f2ff15d1461047257806336568abe1461046d578063392e53cd146104685780634105a7dd14610463578063463616711461045e57806347e7ef241461045957806348d3b775146104545780634ff0876a1461044f57806350861adc1461044a57806350f22068146104455780635346e34f1461044057806354fd4d501461043b57806355a2c6721461043657806357ec83cc1461043157806359f769a91461042c5780635cc070761461042757806361a8c8c41461042257806364b03fdc1461041d57806367567add146104185780636da3e06d146104135780636ec1e3f81461040e578063715018a6146104095780637278e31c1461040457806373790ab3146103ff57806376671808146103fa578063794b15b7146103f55780637953b33b146103f05780637c04c80a146103eb578063810da75d146103e65780638326056f146103e157806383cd9cc3146103dc57806387df0788146103d75780638b0e9f3f146103d25780638da5cb5b146103cd57806391d14854146103c85780639d66201b146103c35780639f86fd85146103be578063a1b12202146103b9578063a217fddf146103b4578063a21a1df9146103af578063a2861466146103aa578063a3b54172146103a5578063a5d03223146103a0578063aabc24961461039b578063aad3ec9614610396578063afba70ad14610391578063b13442711461038c578063bd49c35f14610387578063bdc8144b14610382578063bfefcd7b1461037d578063c31e8dd714610378578063ce9b793014610373578063d547741f1461036e578063d8dfeb4514610369578063db38871514610364578063de4997161461035f578063eb5562381461035a578063ecf7085814610355578063efb559d614610350578063f2fde38b1461034b578063f3fef3a314610346578063f5e7ee0f146103415763f9e1bf6c1461033c575f80fd5b61264c565b612622565b61257c565b61254f565b612400565b6123e3565b61238f565b612375565b612309565b6122de565b612292565b61226a565b612200565b6121e6565b612108565b6120ee565b6120c6565b61209c565b611fdb565b611e24565b611dde565b611d91565b611c9e565b611c64565b611c4a565b611c26565b611b92565b611b58565b611afa565b611ac6565b611a64565b611a20565b611867565b61184d565b611834565b6117ce565b6117a7565b611767565b61174d565b61170c565b611438565b6113d1565b6113ac565b611368565b611312565b6112e4565b611248565b61121e565b6111f7565b6110bf565b61103a565b611008565b610f73565b610f5a565b610efd565b610edd565b610ebc565b610bfe565b610bd6565b610b3b565b610af6565b610aab565b610a5d565b610a19565b6109a5565b61079b565b6106cd565b6106a5565b61066c565b610583565b610538565b6104fe565b346104fa5760203660031901126104fa5760043563ffffffff60e01b81168091036104fa57602090637965db0b60e01b81149081156104e9575b506040519015158152f35b6301ffc9a760e01b1490505f6104de565b5f80fd5b346104fa575f3660031901126104fa5760206040517fc6aaadd7371d5e8f9ed6849dd66a66573a3ba37167d03f4352c9ba5693678fac8152f35b346104fa575f3660031901126104fa5760206040517f9c56d972d63cbb4195b3c1484691dfc220fa96a4c47e7b6613bd82a022029e068152f35b6001600160a01b038116036104fa57565b346104fa5760403660031901126104fa576004356105a081610572565b602435906105ac613080565b6001600160a01b0381161561065b57335f908152600e602052604090206105d790614498565b614498565b8211610649576105f76105e86143ab565b6105f0614424565b90846144db565b9182156106345782610608926130af565b9061061f60015f805160206151a583398151915255565b604080519182526020820192909252f35b0390f35b60405160016245ddc760e11b03198152600490fd5b604051632418411f60e11b8152600490fd5b6040516208978560e71b8152600490fd5b346104fa5760203660031901126104fa576004355f525f805160206151858339815191526020526020600160405f200154604051908152f35b346104fa575f3660031901126104fa576001546040516001600160a01b039091168152602090f35b346104fa575f3660031901126104fa576106e5612c66565b80156107465760015465ffffffffffff8160a01c16915f198101908111610741576107139160d01c90612695565b81018091116107415761072861063091613229565b60405165ffffffffffff90911681529081906020820190565b612666565b604051639fa56a5b60e01b8152600490fd5b600435906001600160401b03821682036104fa57565b9181601f840112156104fa578235916001600160401b0383116104fa57602083818601950101116104fa57565b346104fa5760403660031901126104fa576107b4610758565b6001600160401b036024358181116104fa576107d490369060040161076e565b50506107de613080565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316330361085a575f805160206151c5833981519152549060ff8260401c1692831561084a575b505050610838575f80fd5b60405163f92ee8a960e01b8152600490fd5b81169116101590505f808061082d565b604051631966391b60e11b8152600490fd5b65ffffffffffff8116036104fa57565b634e487b7160e01b5f52604160045260245ffd5b606081019081106001600160401b038211176108ab57604052565b61087c565b604081019081106001600160401b038211176108ab57604052565b608081019081106001600160401b038211176108ab57604052565b90601f801991011681019081106001600160401b038211176108ab57604052565b6040519061016082018281106001600160401b038211176108ab57604052565b60405190610934826108b0565b565b6001600160401b0381116108ab57601f01601f191660200190565b92919261095d82610936565b9161096b60405193846108e6565b8294818452818301116104fa578281602093845f960137010152565b9080601f830112156104fa578160206109a293359101610951565b90565b346104fa5760603660031901126104fa576004356109c281610572565b602435906109cf8261086c565b604435906001600160401b0382116104fa576020926109f5610a11933690600401610987565b6001600160a01b039092165f908152600e85526040902061340e565b604051908152f35b346104fa575f3660031901126104fa576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346104fa5760403660031901126104fa57610aa9602435600435610a8082610572565b805f525f80516020615185833981519152602052610aa4600160405f2001546135e5565b6138e5565b005b346104fa5760403660031901126104fa57602435610ac881610572565b336001600160a01b03821603610ae457610aa99060043561391b565b60405163334bd91960e11b8152600490fd5b346104fa575f3660031901126104fa5760ff60025460a01c1680610b22575b6020906040519015158152f35b5060035460a01c60ff16610b15565b801515036104fa57565b346104fa5760203660031901126104fa57600435610b5881610b31565b610b60613080565b610b686134da565b5f54901515908160ff8216151514610bc45760ff191660ff8216175f556040519081527f3e12b7b36c75ac9609a3f58609b331210428e1a85909132638955ba0301eec3390602090a160015f805160206151a583398151915255005b60405163a741a04560e01b8152600490fd5b346104fa575f3660031901126104fa57602065ffffffffffff60015460a01c16604051908152f35b346104fa576040806003193601126104fa576004803591610c1e83610572565b610c26613080565b6001600160a01b0391838316908115610eae575f5460ff811680610e95575b610e865783516370a0823160e01b808252308483019081529096602093909160109190911c82169084908490819083010381845afa928315610e5e575f93610e63575b50610c9a9060243590309033906139ad565b5f5486519788523085890190815290979184918391908290819060200103918b60101c165afa908115610e5e57610cd9935f92610e31575b5050612688565b938415610e225760081c60ff1680610e0d575b610dff57509061063091610d9d610d016143ab565b95610d4a610d0d614424565b610d35610d1b8a838b6144db565b99610d2f8a610d2942613229565b926126b6565b90613b01565b5050610d4489610d2942613229565b90613be1565b50506001600160a01b0381165f908152600e6020526040902090610d9788610d926105d2610d7742613229565b6001600160a01b039095165f908152600e6020526040902090565b6126b6565b91613cbd565b505081518481526020810186905233907fdcbc1c05240f31ff3ad067ef1ee35ce4997762752e3a095284754544f4c709d790604090a3610de960015f805160206151a583398151915255565b5191825260208201929092529081906040820190565b8251632484557960e01b8152fd5b50610e1a84610d926143ab565b815410610cec565b50825163070f6eed60e11b8152fd5b610e509250803d10610e57575b610e4881836108e6565b8101906126e4565b5f80610cd2565b503d610e3e565b6126f3565b610c9a919350610e7f90853d8711610e5757610e4881836108e6565b9290610c88565b5082516304f63b8560e01b8152fd5b50335f9081526005602052604090205460ff1615610c45565b8251630d534ce360e11b8152fd5b346104fa575f3660031901126104fa57602060ff5f54166040519015158152f35b346104fa575f3660031901126104fa57602060015460d01c604051908152f35b346104fa575f3660031901126104fa57602060ff60025460a01c166040519015158152f35b9060406003198301126104fa57600435610f3b8161086c565b91602435906001600160401b0382116104fa576109a291600401610987565b346104fa576020610a11610f6d36610f22565b90613284565b346104fa5760203660031901126104fa57600435610f9081610b31565b610f98613080565b610fa0613537565b5f54901515908160ff8260081c16151514610bc45761ff001916600882901b61ff0016175f556040519081527ffa7a25a0b611d4ba3c0ea990e90dc23d484a5dd7a1be4733fef2946ba74530c690602090a1610aa960015f805160206151a583398151915255565b346104fa575f3660031901126104fa5760206001600160401b035f805160206151c58339815191525416604051908152f35b346104fa5760203660031901126104fa576004356110578161086c565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633036110ad5761109090613d9f565b60408051941515855263ffffffff91909116602085015292915050f35b604051637ca475e560e11b8152600490fd5b346104fa5760603660031901126104fa576110d8610758565b6024356110e481610572565b6001600160401b03916044358381116104fa5761110590369060040161076e565b5f805160206151c58339815191529491855494838616806111e65760ff8760401c169081156111d9575b50610838577fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2966111d49661119c958716906001600160401b0319161790556111975f805160206151c5833981519152600160401b68ff000000000000000019825416179055565b6126fe565b5f805160206151c5833981519152805468ff0000000000000000191690556040516001600160401b0390911681529081906020820190565b0390a1005b905084861611155f61112f565b60405162dc149f60e41b8152600490fd5b346104fa5760203660031901126104fa576020610a1160043561121981610572565b612b1e565b346104fa5760203660031901126104fa576004355f526006602052602060405f2054604051908152f35b346104fa575f3660031901126104fa5760015465ffffffffffff61127e818360a01c1692611274612c66565b9060d01c90612695565b820180921161074157611292602092613229565b60405191168152f35b60409060031901126104fa576004356112b381610572565b906024356109a28161086c565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b346104fa576106306112fe6112f83661129b565b90612bac565b6040519182916020835260208301906112c0565b346104fa5760203660031901126104fa5760043561132f8161086c565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633036110ad5761109090613ea4565b346104fa575f3660031901126104fa576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346104fa575f3660031901126104fa57602060ff60035460a01c166040519015158152f35b346104fa575f3660031901126104fa576113e96141eb565b5f8051602061512583398151915280546001600160a01b031981169091555f906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b346104fa5760403660031901126104fa576004356024356114588161086c565b611460613080565b60035461147d906001600160a01b03165b6001600160a01b031690565b33036116fa5761148b612c66565b9061149581612c9a565b90821515806116e9575b80156116e0575b6116ce57610630937ff9d090c096f71cd1659861a9ce5b6f384bceb4e2fa4e4a19edf6489a9b8d56c7926114d86143ab565b946114f36114e5826126a8565b5f52600660205260405f2090565b54908281036115e7575061150781876126b6565b6115118185614223565b9687806115a0575b50505050505b8361156c575b6040805191825265ffffffffffff929092166020820152908101839052606090a161155c60015f805160206151a583398151915255565b6040519081529081906020820190565b5f5461159b9085906115899060101c6001600160a01b0316611471565b6001546001600160a01b0316906142d1565b611525565b6115dc93610cd283610d2f6115c66115bf6114e5986115d6988861423f565b8096612688565b946115d042613229565b92612688565b926126a8565b555f80808087611519565b91506115fb825f52600660205260405f2090565b549061160b81610d92848a6126b6565b906116168286614223565b9788611627575b505050505061151f565b61169c938361164f9361165c8c61165761164561168d99888461423f565b978895858461423f565b948592612688565b612688565b938484106116a7575b610cd290610d2f61167b9596976115d042613229565b6116876114e5876126a8565b55612688565b915f52600660205260405f2090565b555f8080808061161d565b916116c3610cd2916116bd8661167b9798612688565b906126b6565b859450929050611665565b604051635e18d2a560e01b8152600490fd5b508282116114a6565b506116f38361267a565b821061149f565b60405163dabc4ad960e01b8152600490fd5b346104fa575f3660031901126104fa5760015465ffffffffffff808260a01c1691611735612c66565b600181018091116107415761127e9160d01c90612695565b346104fa575f3660031901126104fa576020610a11612c66565b346104fa5760203660031901126104fa5760043561178481610572565b60018060a01b03165f526005602052602060ff60405f2054166040519015158152f35b346104fa5760203660031901126104fa576020610a116004356117c98161086c565b612c9a565b346104fa5760403660031901126104fa576004356117eb81610572565b6024356001600160401b038082116104fa57366023830112156104fa5781600401359081116104fa573660248260051b840101116104fa5761063092602461155c930190612cd5565b346104fa576020610a1161184736610f22565b90613359565b346104fa576106306112fe6118613661129b565b90612e03565b346104fa576020806003193601126104fa57600480359061188782610572565b61188f613080565b60025460a01c60ff16611a11576040516302910f8b60e31b81526001600160a01b03838116838301908152909491908290829081906020010381887f0000000000000000000000000000000000000000000000000000000000000000165afa908115610e5e575f916119e4575b50156119d45760405163fbfa77cf60e01b8152838516949082818581895afa928315610e5e575f936119a5575b5050309116036119965750600280546001600160a01b03929092166001600160a81b031990921691909117600160a01b1790557fdb2160616f776a37b24808115554e79439bf26cccbbd4438190cc6d28e80ecd15f80a2610aa960015f805160206151a583398151915255565b60405163b9f0f17160e01b8152fd5b6119c5929350803d106119cd575b6119bd81836108e6565b810190612e5a565b905f80611929565b503d6119b3565b506040516324e5af8d60e21b8152fd5b611a049150823d8411611a0a575b6119fc81836108e6565b810190612e3a565b5f6118fc565b503d6119f2565b604051631380833b60e01b8152fd5b346104fa575f3660031901126104fa576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346104fa575f3660031901126104fa57611a7c612c66565b611a846143ab565b90805f52600660205260405f205482018092116107415760018101809111610741575f52600660205260405f2054810180911161074157602090604051908152f35b346104fa575f3660031901126104fa575f80516020615125833981519152546040516001600160a01b039091168152602090f35b346104fa5760403660031901126104fa57602060ff611b4c602435611b1e81610572565b6004355f525f80516020615185833981519152845260405f209060018060a01b03165f5260205260405f2090565b54166040519015158152f35b346104fa5760203660031901126104fa57600435611b7581610572565b60018060a01b03165f52600e6020526020610a1160405f20614498565b346104fa5760403660031901126104fa57600435611baf81610572565b6024356001600160401b0381116104fa575f91611bd18392369060040161076e565b90816040519283928337810184815203915af4611c1e611bef612e6f565b91611c106040519384921515602084015260408084015260608301906112c0565b03601f1981018352826108e6565b805190602001fd5b346104fa575f3660031901126104fa57602060ff5f5460081c166040519015158152f35b346104fa575f3660031901126104fa5760206040515f8152f35b346104fa575f3660031901126104fa5760206040517f4a634bc14d77baf979756509ef4298c6f6318af357828612545267ee2eb792338152f35b346104fa5760403660031901126104fa57600435611cbb81610572565b602435611cc781610b31565b611ccf613080565b611cd761358e565b6001600160a01b038216918215611d7f575f8381526005602052604090205460ff16151582151514610bc4576001600160a01b03165f9081526005602052604090207ff991b1ecfb5115cbb36a2b2e2240c058406d2acc2fcc6e9e2dc99d845ff70a6291611d6691611d54908260ff801983541691151516179055565b60405190151581529081906020820190565b0390a2610aa960015f805160206151a583398151915255565b604051630da30f6560e31b8152600490fd5b346104fa5760403660031901126104fa576020611dd5602435611db381610572565b6004355f526008835260405f209060018060a01b03165f5260205260405f2090565b54604051908152f35b346104fa5760403660031901126104fa57602060ff611b4c602435611e0281610572565b6004355f526009845260405f209060018060a01b03165f5260205260405f2090565b346104fa576020806003193601126104fa576004803590611e4482610572565b611e4c613080565b60035460a01c60ff16611fcc576001600160a01b03828116939084611eba575b6003805460ff60a01b1916600160a01b179055847fe7e4c932e03abddfe20f83af42c33627e816115c7ec2b168441f65dc14bfc3ba5f80a2610aa960015f805160206151a583398151915255565b6040516302910f8b60e31b81526001600160a01b0385168482019081528390829081906020010381857f0000000000000000000000000000000000000000000000000000000000000000165afa908115610e5e575f91611faf575b5015611f9e5760405163fbfa77cf60e01b815282818581895afa928315610e5e575f93611f7f575b505030911603611f705750600380546001600160a01b0319166001600160a01b039092169190911790555f808080611e6c565b604051633f3e089160e21b8152fd5b611f96929350803d106119cd576119bd81836108e6565b905f80611f3d565b60405163dabc4ad960e01b81528390fd5b611fc69150833d8511611a0a576119fc81836108e6565b5f611f15565b60405163703fe2e560e01b8152fd5b346104fa5760403660031901126104fa57600435611ff881610572565b60243590612004613080565b6001600160a01b039181831690811561208a57612035610630946120278361430f565b9485915f5460101c166142d1565b604080519182526020820184905233917f865ca08d59f5cb456e85cd2f7ef63664ea4f73327414e9d8152c4158b0e946459190a360015f805160206151a5833981519152556040519081529081906020820190565b604051634e46966960e11b8152600490fd5b346104fa5760203660031901126104fa576004355f526007602052602060405f2054604051908152f35b346104fa575f3660031901126104fa576003546040516001600160a01b039091168152602090f35b346104fa575f3660031901126104fa576020610a116143ab565b346104fa5760203660031901126104fa57600435612124613080565b335f9081527f2d4ccbfe9f7672a6f2537c1e5bce6adacb73706879154bbab6ce096012d6721660205260409020547f4a634bc14d77baf979756509ef4298c6f6318af357828612545267ee2eb792339060ff16156121c857508060045414610bc4576020817f854df3eb95564502c8bc871ebdd15310ee26270f955f6c6bd8cea68e75045bc092600455604051908152a160015f805160206151a583398151915255005b6044906040519063e2517d3f60e01b82523360048301526024820152fd5b346104fa575f3660031901126104fa576020610a11614424565b346104fa5760203660031901126104fa5760043561221d81610572565b612225612c66565b61222e82612b1e565b916122398183612f59565b830180931161074157600182018092116107415761225691612f59565b810180911161074157602090604051908152f35b346104fa575f3660031901126104fa576002546040516001600160a01b039091168152602090f35b346104fa5760403660031901126104fa57610aa96024356004356122b582610572565b805f525f805160206151858339815191526020526122d9600160405f2001546135e5565b61391b565b346104fa575f3660031901126104fa575f5460405160109190911c6001600160a01b03168152602090f35b346104fa575f3660031901126104fa5760206040517fbae4ee3de6c709ff9a002e774c5b78cb381560b219213c88ae0f1e207c03c0238152f35b60609060031901126104fa5760043561235b81610572565b9060243561236881610572565b906044356109a28161086c565b346104fa576106306112fe61238936612343565b91612e9e565b346104fa5761239d3661129b565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811633036110ad5761109092165f52600e60205260405f20613f6a565b346104fa575f3660031901126104fa576020600454604051908152f35b346104fa5760603660031901126104fa5760043561241d81610572565b6024359061242a8261086c565b6001600160401b03916044358381116104fa5761244b90369060040161076e565b9092604093845161245b81610890565b606081526060602082015260608682015292806124ba575b610630866124ab87876124a561248c89848451916126c3565b928561249c602085015183613359565b93015190613284565b916144db565b90519081529081906020820190565b81019392506020818503126104fa578035908682116104fa5701926060848203126104fa578451956124eb87610890565b84358181116104fa5782612500918701610987565b875260208501358181116104fa578261251a918701610987565b6020880152858501359081116104fa57610630966125436124a59361248c936124ab9801610987565b87820152939450612473565b346104fa5760203660031901126104fa57610aa960043561256f81610572565b6125776141eb565b612ee8565b346104fa5760403660031901126104fa5760043561259981610572565b6024356125a4613080565b6001600160a01b0382161561065b578015612610576125d36125c4614424565b6125cc6143ab565b90836148f9565b335f908152600e602052604090209092906125ed90614498565b83116125fe576106089183916130af565b6040516321727a3760e11b8152600490fd5b604051636c6c627d60e11b8152600490fd5b346104fa5760403660031901126104fa576020610a1160243561264481610572565b600435612f59565b346104fa576106306112fe61266036612343565b91612fb7565b634e487b7160e01b5f52601160045260245ffd5b5f1981019190821161074157565b9190820391821161074157565b8181029291811591840414171561074157565b906001820180921161074157565b9190820180921161074157565b6001600160a01b03165f908152600e602052604090206109a292919061340e565b908160209103126104fa575190565b6040513d5f823e3d90fd5b91612750916127419161270f614c66565b612717614c66565b60015f805160206151a5833981519152556001600160a01b0394808616612b04575b503691610951565b60208082518301019101614054565b805182166001600160a01b031615612af257604080820165ffffffffffff61277e825165ffffffffffff1690565b1615612ae15760c08301805190929061279f906001600160a01b0316611471565b15612992575b50916128de6101409261287d61285861293c966127f36127cb875160018060a01b031690565b5f805462010000600160b01b03191660109290921b62010000600160b01b0316919091179055565b6020860151600180546001600160a01b0319166001600160a01b0390921691909117905561284c61282342613229565b6001805465ffffffffffff60a01b191660a09290921b65ffffffffffff60a01b16919091179055565b5165ffffffffffff1690565b600180546001600160d01b031660d09290921b6001600160d01b031916919091179055565b61289d61288d6060850151151590565b60ff80195f541691151516175f55565b6128c46128ad6080850151151590565b61ff005f5491151560081b169061ff001916175f55565b6128d160a0840151600455565b516001600160a01b031690565b848116612982575b5060e08101516001600160a01b0316848116612972575b506101008101516001600160a01b0316848116612962575b506101208101516001600160a01b0316848116612952575b5001516001600160a01b031690565b9081166129465750565b61294f90613876565b50565b61295b90613807565b505f61292d565b61296b90613798565b505f612915565b61297b906136c2565b505f6128fd565b61298b90613611565b505f6128e6565b60e08401516129a9906001600160a01b0316611471565b15612a7e575b6101208401516129c7906001600160a01b0316611471565b6127a557608084015115612a345760a08401511580612a15575b612a055750916128de6101409261287d61285861293c965b949650505092506127a5565b5163183c854560e21b8152600490fd5b50610140840151612a2e906001600160a01b0316611471565b156129e1565b60a084015115801590612a5e575b612a055750916128de6101409261287d61285861293c966129f9565b50610140840151612a77906001600160a01b0316611471565b1515612a42565b606084015115612ab457610100840151612aa0906001600160a01b0316611471565b6129af575163183c854560e21b8152600490fd5b610100840151612acc906001600160a01b0316611471565b156129af575163183c854560e21b8152600490fd5b81516368f5f8f160e11b8152600490fd5b6040516368f7a67560e11b8152600490fd5b612b1890612b10614c66565b612577614c66565b5f612739565b6001600160a01b03165f908152600e60205260409020612b3d90614498565b612b456143ab565b612b4d614424565b90600181018091116107415760018201809211610741576109a29261423f565b519061093482610b31565b519063ffffffff821682036104fa57565b91908260409103126104fa576109a260208351612ba581610b31565b9301612b78565b9190612be8612bf79160609465ffffffffffff604051926367567add60e01b602085015216602483015260248252612be382610890565b61411d565b60208082518301019101612b89565b90612bff5750565b90915063ffffffff60405191166020820152602081526109a2816108b0565b65ffffffffffff918216908216039190821161074157565b634e487b7160e01b5f52601260045260245ffd5b9065ffffffffffff809116918215612c6157160490565b612c36565b612c6f42613229565b612c96600154612c8c65ffffffffffff93848360a01c1690612c1e565b9060d01c90612c4a565b1690565b6001549065ffffffffffff91828160a01c16918284821610612cc357612c9692612c8c91612c1e565b60405163b7d0949760e01b8152600490fd5b90612cde613080565b5f926001600160a01b03831692831561208a578115612d96575f5b828110612d7457505f547f326b6aff1cd2fb1c8234de4f9dcfb9047c5c36eb9ef2eb34af5121e969a75d279286929091612d49918491612d449060101c6001600160a01b0316611471565b6142d1565b612d5a604051928392339684612dd1565b0390a39061093460015f805160206151a583398151915255565b94612d8f6001916116bd612d89898789612dbc565b3561430f565b9501612cf9565b60405163edf3b93360e01b8152600490fd5b634e487b7160e01b5f52603260045260245ffd5b9190811015612dcc5760051b0190565b612da8565b604080825281018390529392916001600160fb1b0381116104fa5760209160609160051b809183880137850101930152565b9190612be8612bf79160609465ffffffffffff60405192632ad1633960e11b602085015216602483015260248252612be382610890565b908160209103126104fa57516109a281610b31565b519061093482610572565b908160209103126104fa57516109a281610572565b3d15612e99573d90612e8082610936565b91612e8e60405193846108e6565b82523d5f602084013e565b606090565b604051631d6aac4760e31b60208201526001600160a01b03909216602483015265ffffffffffff909216604480830191909152815260609291612bf791612be891612be3826108cb565b6001600160a01b03908116908115612f41575f8051602061512583398151915280546001600160a01b031981168417909155167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3565b604051631e4fbdf760e01b81525f6004820152602490fd5b90612f7f90825f52600860205260405f209060018060a01b03165f5260205260405f2090565b54905f52600660205260405f2054600760205260405f205490600181018091116107415760018201809211610741576109a29261423f565b92919092612fdc612fcb8360609684612e9e565b92612fd68184612bac565b92612e03565b90825115801590613076575b801561306c575b612ff857505050565b6130459394506109a29291611c10916040519361301485610890565b8452602084019081526040840191825261305b604051968795602080880152516060604088015260a08701906112c0565b915191603f1992838783030160608801526112c0565b9151908483030160808501526112c0565b5081511515612fef565b5080511515612fe8565b5f805160206151a5833981519152600281541461309d5760029055565b604051633ee5aeb560e01b8152600490fd5b335f908152600e60205260409020939291906130ca42613229565b335f908152600e602052604090206130e190614498565b918483039283116107415761311c7febff2602b3f468259e1e99f613fed6691f3a6526effe6ef3e768ba7ae7a36c4f9385936131a799613cbd565b505061313661312a42613229565b610d4487611657614424565b505061315061314442613229565b610d2f846116576143ab565b50506131f5816131e0613169613164612c66565b6126a8565b6131bf61317e825f52600660205260405f2090565b54613191835f52600760205260405f2090565b5461319d82828b6144db565b9d8e998a936126b6565b6131b9855f52600660205260405f2090565b556126b6565b6131d1825f52600760205260405f2090565b555f52600860205260405f2090565b9060018060a01b03165f5260205260405f2090565b6132008382546126b6565b9055604080519485526020850195909552938301526001600160a01b03909216913391606090a3565b65ffffffffffff9081811161323c571690565b604490604051906306dfcc6560e41b8252603060048301526024820152fd5b908160209103126104fa576109a290612b78565b90600163ffffffff8093160191821161074157565b9080511561334f578060208061329f9351830101910161325b565b6132a881614720565b906132b9825165ffffffffffff1690565b9065ffffffffffff808516921682811461334357821191826132ef575b50506132e657506109a2906144fc565b60209150015190565b9091506132fd600a5461267a565b63ffffffff831614918215613316575b50505f806132d6565b61333b91925061284c61332b6133309261326f565b614720565b65ffffffffffff1690565b115f8061330d565b50505060209150015190565b506109a2906144fc565b9080511561340457806020806133749351830101910161325b565b61337d816147a5565b9061338e825165ffffffffffff1690565b9065ffffffffffff808516921682811461334357821191826133bb575b50506132e657506109a2906145ad565b9091506133c9600c5461267a565b63ffffffff8316149182156133e2575b50505f806133ab565b6133fc91925061284c6133f76133309261326f565b6147a5565b115f806133d9565b506109a2906145ad565b918051156134d057806020806134299351830101910161325b565b916134348382614820565b92613445845165ffffffffffff1690565b9065ffffffffffff80851692168281146134c4578211918261347b575b5050613472576109a29250614657565b50506020015190565b909150613488835461267a565b63ffffffff8316149182156134a1575b50505f80613462565b6134bc91925061284c6134b66133309261326f565b85614820565b115f80613498565b50505050506020015190565b506109a291614657565b335f9081527f03b26b53c87faa1058f30bb5d2fee64f717719a0d9b7e4f4df027aa5e9b6ed69602052604090207fbae4ee3de6c709ff9a002e774c5b78cb381560b219213c88ae0f1e207c03c0239060ff905b5416156121c85750565b335f9081527fe41986b390c4ce6791b87f7423b5fab7a81a0e6d89660b6264f697d008b2243a602052604090207fc6aaadd7371d5e8f9ed6849dd66a66573a3ba37167d03f4352c9ba5693678fac9060ff9061352d565b335f9081527f0287ab4cb376ea253d7b2ce0c2cbf458f7deae9458470d74afdfbbee484e9540602052604090207f9c56d972d63cbb4195b3c1484691dfc220fa96a4c47e7b6613bd82a022029e069060ff9061352d565b5f8181525f8051602061518583398151915260209081526040808320338452909152902060ff9061352d565b6001600160a01b0381165f9081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d60205260409020545f805160206151858339815191529060ff166136bc575f808052602091825260408082206001600160a01b038516835290925220805460ff1916600117905533906001600160a01b03165f7f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d8180a4600190565b50505f90565b6001600160a01b0381165f9081527f03b26b53c87faa1058f30bb5d2fee64f717719a0d9b7e4f4df027aa5e9b6ed69602052604090207fbae4ee3de6c709ff9a002e774c5b78cb381560b219213c88ae0f1e207c03c023905f805160206151858339815191529060ff905b5416613791575f828152602091825260408082206001600160a01b038616835290925220805460ff1916600117905533916001600160a01b0316907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d5f80a4600190565b5050505f90565b6001600160a01b0381165f9081527f0287ab4cb376ea253d7b2ce0c2cbf458f7deae9458470d74afdfbbee484e9540602052604090207f9c56d972d63cbb4195b3c1484691dfc220fa96a4c47e7b6613bd82a022029e06905f805160206151858339815191529060ff9061372d565b6001600160a01b0381165f9081527fe41986b390c4ce6791b87f7423b5fab7a81a0e6d89660b6264f697d008b2243a602052604090207fc6aaadd7371d5e8f9ed6849dd66a66573a3ba37167d03f4352c9ba5693678fac905f805160206151858339815191529060ff9061372d565b6001600160a01b0381165f9081527f2d4ccbfe9f7672a6f2537c1e5bce6adacb73706879154bbab6ce096012d67216602052604090207f4a634bc14d77baf979756509ef4298c6f6318af357828612545267ee2eb79233905f805160206151858339815191529060ff9061372d565b5f8181525f80516020615185833981519152602081815260408084206001600160a01b038716855290915290912060ff9061372d565b5f8181525f80516020615185833981519152602081815260408084206001600160a01b03871685529091529091205460ff1615613791575f828152602091825260408082206001600160a01b038616835290925220805460ff1916905533916001600160a01b0316907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b5f80a4600190565b6040516323b872dd60e01b60208201526001600160a01b03928316602482015292909116604483015260648083019390935291815260a08101918183106001600160401b038411176108ab5761093492604052614888565b600b54811015612dcc57600b5f525f8051602061516583398151915201905f90565b600d54811015612dcc57600d5f525f8051602061514583398151915201905f90565b8054821015612dcc575f5260205f2001905f90565b600d54600160401b8110156108ab576001810180600d55811015612dcc57600d5f525f805160206151458339815191520155565b600b54600160401b8110156108ab576001810180600b55811015612dcc57600b5f525f805160206151658339815191520155565b90815491600160401b8310156108ab5782613ae991600161093495018155613a49565b90919082549060031b91821b915f19901b1916179055565b919091600d9081548015613bac575b50613b19614939565b50929091815492613b286143ab565b9481613b97575b5015613b7457505f1982018281116107415781541115612dcc575f527fd7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb4018390559190565b613b88926001600160d01b03169150614d9d565b5050613b9383613a5e565b9190565b65ffffffffffff83811691161490505f613b2f565b600160401b8110156108ab5760018101808455811015612dcc575f908382525f8051602061514583398151915201555f613b10565b919091600b9081548015613c88575b50613bf96149a4565b50929091815492613c08614424565b9481613c73575b5015613c5457505f1982018281116107415781541115612dcc575f527f0175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db8018390559190565b613c68926001600160d01b03169150614e98565b5050613b9383613a92565b65ffffffffffff83811691161490505f613c0f565b600160401b8110156108ab5760018101808455811015612dcc575f908382525f8051602061516583398151915201555f613bf0565b90929192600182019081548015613d4b575b5084613cda846149ee565b50949092845493613cea83614498565b9681613d36575b5015613d13575050505f19810190811161074157613ae98591613b9393613a49565b613b93949293613d2f926001600160d01b039091169190614f42565b5050613ac6565b65ffffffffffff83811691161490505f613cf1565b600160401b8110156108ab57806001613d679201845583613a49565b8154905f199060031b1b191690555f613ccf565b90604051613d88816108b0565b915465ffffffffffff8116835260301c6020830152565b600a54905f829160058411613e4a575b613db99350614b55565b8015613e3f57613de9613de4613dce8361267a565b600a5f525f805160206151058339815191520190565b613d7b565b91613e38613e2f613e29613e1f613e1a6020613e0b895165ffffffffffff1690565b9801516001600160d01b031690565b613a05565b90549060031b1c90565b9361267a565b63ffffffff1690565b6001939291565b505f905f905f905f90565b9192613e5581614a1c565b810390811161074157600a5f525f80516020615105833981519152810154613db9949065ffffffffffff9081169085161015613e92575091613daf565b929150613e9e906126a8565b90613daf565b600c54905f829160058411613f10575b613ebe9350614bb2565b8015613e3f57613ee9613de4613ed38361267a565b600c5f525f805160206150e58339815191520190565b91613e38613e2f613e29613e1f613f0b6020613e0b895165ffffffffffff1690565b613a27565b9192613f1b81614a1c565b810390811161074157600c5f525f805160206150e5833981519152810154613ebe949065ffffffffffff9081169085161015613f58575091613eb4565b929150613f64906126a8565b90613eb4565b91908254905f829160058411613fed575b613f86935085614c0f565b908115613fe157613e38613e2f613e29613e1f613fb3613de4613fa88861267a565b895f5260205f200190565b966001613fda6020613fcb8b5165ffffffffffff1690565b9a01516001600160d01b031690565b9101613a49565b5f925082915081908190565b9192613ff881614a1c565b810390811161074157613f8693865f526140216133308360205f200165ffffffffffff90541690565b65ffffffffffff85161015614037575091613f7b565b929150614043906126a8565b90613f7b565b51906109348261086c565b90816101609103126104fa57614068610907565b9061407281612e4f565b825261408060208201612e4f565b602083015261409160408201614049565b60408301526140a260608201612b6d565b60608301526140b360808201612b6d565b608083015260a081015160a08301526140ce60c08201612e4f565b60c08301526140df60e08201612e4f565b60e08301526101006140f2818301612e4f565b90830152610120614104818301612e4f565b90830152614116610140809201612e4f565b9082015290565b905f8060409384519360209461415481611c1088820194639f86fd8560e01b86523060248401528a604484015260648301906112c0565b51915afa50614161612e6f565b805181019280828486019503126104fa57828201519161418083610b31565b81810151906001600160401b0382116104fa57019084603f830112156104fa57838201516141ad81610936565b956141ba835197886108e6565b8187528282850101116104fa578085925f94018388015e85010152156141de575090565b9080519182156104fa5701fd5b5f80516020615125833981519152546001600160a01b0316330361420b57565b60405163118cdaa760e01b8152336004820152602490fd5b9080821015614230575090565b905090565b8115612c61570490565b9091828202915f19848209938380861095039480860395146142c457848311156142b257829109815f038216809204600280826003021880830282030280830282030280830282030280830282030280830282030280920290030293600183805f03040190848311900302920304170290565b60405163227bc15360e01b8152600490fd5b5050906109a29250614235565b60405163a9059cbb60e01b60208201526001600160a01b0390921660248301526044808301939093529181526109349161430a826108cb565b614888565b90614318612c66565b821015614399575f82815260096020908152604080832033845290915290205460ff16614387576143493383612f59565b918215614375575f9081526009602090815260408083203384529091529020805460ff19166001179055565b6040516366c0bcbf60e11b8152600490fd5b604051630c8d9eab60e31b8152600490fd5b60405163d5b25b6360e01b8152600490fd5b600c54806143eb57505f5b6001600160d01b038116156143e657600d54811015612dcc57600d5f525f80516020615145833981519152015490565b505f90565b805f1981011161074157600c5f527fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c6015460301c6143b6565b600a548061445f57505f5b6001600160d01b038116156143e657600b54811015612dcc57600b5f525f80516020615165833981519152015490565b805f1981011161074157600a5f527fc65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a7015460301c61442f565b8054806144bd57505f5b6001600160d01b038116156136bc576001613e1f9201613a49565b5f1990808281011161074157825f5260205f2001015460301c6144a2565b9190600181018091116107415760018201809211610741576109a29261423f565b600a54905f829160058411614554575b6145169350614b55565b8061453957505f5b6001600160d01b038116156143e657613e1f6109a291613a05565b614548613dce61454f9261267a565b5460301c90565b61451e565b919261455f81614a1c565b81039081116107415761451693600a5f5265ffffffffffff80835f80516020615105833981519152015416908516105f1461459b57509161450c565b9291506145a7906126a8565b9061450c565b600c54905f8291600584116145fe575b6145c79350614bb2565b806145ea57505f5b6001600160d01b038116156143e657613e1f6109a291613a27565b614548613ed36145f99261267a565b6145cf565b919261460981614a1c565b8103908111610741576145c793600c5f5265ffffffffffff80835f805160206150e5833981519152015416908516105f146146455750916145bd565b929150614651906126a8565b906145bd565b908154905f8291600584116146ba575b61467293508461502a565b8061469a57505f905b6001600160d01b038216156136bc576109a2916001613e1f9201613a49565b6145486146a96146b49261267a565b835f5260205f200190565b9061467b565b91926146c581614a1c565b81039081116107415761467293855f5265ffffffffffff808360205f20015416908516105f146146f6575091614667565b929150614702906126a8565b90614667565b60405190614715826108b0565b5f6020838281520152565b614728614708565b50614731614708565b50600a54811015612dcc5761475890600a5f525f8051602061510583398151915201613d7b565b65ffffffffffff81511690602060018060d01b0391015116600b54811015612dcc57600b5f525f8051602061516583398151915201546040519161479b836108b0565b8252602082015290565b6147ad614708565b506147b6614708565b50600c54811015612dcc576147dd90600c5f525f805160206150e583398151915201613d7b565b65ffffffffffff81511690602060018060d01b0391015116600d54811015612dcc57600d5f525f8051602061514583398151915201546040519161479b836108b0565b9061484961484361486a92614833614708565b5061483c614708565b5084613a49565b50613d7b565b91600165ffffffffffff845116936020828060d01b03910151169101613a49565b9054906040519261487a846108b0565b835260031b1c602082015290565b5f806148b09260018060a01b03169360208151910182865af16148a9612e6f565b9083615081565b80519081151591826148de575b50506148c65750565b60249060405190635274afe760e01b82526004820152fd5b6148f19250602080918301019101612e3a565b155f806148bd565b91906001810180911161074157600182018092116107415761491c82828561423f565b928215612c61570961492b5790565b600181018091116107415790565b600c548061494a57505f905f905f90565b805f19810111610741577fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c661498391600c5f5201613d7b565b9065ffffffffffff82511691602060018060d01b0391015116906001929190565b600a54806149b557505f905f905f90565b805f19810111610741577fc65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a761498391600a5f5201613d7b565b8054806149ff5750505f905f905f90565b5f1990808281011161074157614983925f5260205f200101613d7b565b80156143e65780614aee614ae7614add614ad3614ac9614abf614ab5614aab60016109a29a5f908b60801c80614b49575b508060401c80614b3c575b508060201c80614b2f575b508060101c80614b22575b508060081c80614b15575b508060041c80614b08575b508060021c80614afb575b50821c614af4575b811c1b614aa4818b614235565b0160011c90565b614aa4818a614235565b614aa48189614235565b614aa48188614235565b614aa48187614235565b614aa48186614235565b614aa48185614235565b8092614235565b90614223565b8101614a97565b600291509101905f614a8f565b600491509101905f614a84565b600891509101905f614a79565b601091509101905f614a6e565b602091509101905f614a63565b604091509101905f614a58565b9150506080905f614a4d565b828210614b6157505090565b9091614b6d8184615015565b90600a5f5265ffffffffffff80835f80516020615105833981519152015416908416105f14614b9f5750915b90614b55565b92506001810180911115614b9957612666565b828210614bbe57505090565b9091614bca8184615015565b90600c5f5265ffffffffffff80835f805160206150e5833981519152015416908416105f14614bfc5750915b90614bb2565b92506001810180911115614bf657612666565b905b838310614c1e5750505090565b909192614c2b8185615015565b90835f5265ffffffffffff808360205f20015416908416105f14614c535750925b9190614c11565b93506001810180911115614c4c57612666565b60ff5f805160206151c58339815191525460401c1615614c8257565b604051631afcd79f60e31b8152600490fd5b600c5490600160401b8210156108ab576001820180600c55821015612dcc57600c5f52805160209091015160301b65ffffffffffff191665ffffffffffff91909116175f805160206150e583398151915290910155565b600a5490600160401b8210156108ab576001820180600a55821015612dcc57600a5f52805160209091015160301b65ffffffffffff191665ffffffffffff91909116175f8051602061510583398151915290910155565b8054600160401b8110156108ab57614d5f91600182018155613a49565b614d8a57815160209092015160301b65ffffffffffff191665ffffffffffff92909216919091179055565b634e487b7160e01b5f525f60045260245ffd5b600c54919291908115614e6f57614db9613de4613ed38461267a565b805165ffffffffffff8381169491168410614e5d5785602093613b9395614de9613330865165ffffffffffff1690565b03614e255750614dfe613ed3614e179361267a565b9065ffffffffffff82549181199060301b169116179055565b01516001600160d01b031690565b9050614e589150614e45614e37610927565b65ffffffffffff9092168252565b6001600160d01b03871681850152614c94565b614e17565b604051632520601d60e01b8152600490fd5b614e939150614e7f614e37610927565b6001600160d01b0384166020820152614c94565b5f9190565b600a54919291908115614f1e57614eb4613de4613dce8461267a565b805165ffffffffffff8381169491168410614e5d5785602093613b9395614ee4613330865165ffffffffffff1690565b03614ef95750614dfe613dce614e179361267a565b9050614e589150614f0b614e37610927565b6001600160d01b03871681850152614ceb565b614e939150614f2e614e37610927565b6001600160d01b0384166020820152614ceb565b805492939291908215614ff157614f5e613de46146a98561267a565b90614f6f825165ffffffffffff1690565b65ffffffffffff84811691168110614e5d57613b93946020948892614f9d613330875165ffffffffffff1690565b03614fbe5750614e1792614fb3614dfe9261267a565b905f5260205f200190565b915050614e5891614fde614fd0610927565b65ffffffffffff9093168352565b6001600160d01b03881682860152614d42565b614e939250615001614fd0610927565b6001600160d01b0385166020830152614d42565b90808216911860011c81018091116107415790565b905b8383106150395750505090565b9091926150468185615015565b90835f5265ffffffffffff808360205f20015416908416105f1461506e5750925b919061502c565b9350600181018091111561506757612666565b906150a8575080511561509657805190602001fd5b604051630a12f52160e11b8152600490fd5b815115806150db575b6150b9575090565b604051639996b31560e01b81526001600160a01b039091166004820152602490fd5b50803b156150b156fedf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c7c65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a89016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300d7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb50175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db902dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268009b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a26469706673582212206764d46b458c94bc30a6b4a8199ffc550f65122fd0eea52d69629dd17905644864736f6c63430008190033","sourceMap":"199:2819:85:-:0;;;;;;;348:4:82;332:21;;318:1:85;3173:36:96;;318:1:85;3219:32:96;;8837:64:25;199:2819:85;;;;;;;;;7896:76:25;;-1:-1:-1;;;;;;;;;;;;199:2819:85;;;7985:34:25;7981:146;;-1:-1:-1;318:1:85;927:17:71;;199:2819:85;;;;;;;;332:21:82;199:2819:85;;;;;;;;;;;;;;;3173:36:96;199:2819:85;;;;;;;;;;3219:32:96;199:2819:85;;;;;;;;;;927:17:71;199:2819:85;;;;;;;;;;;7981:146:25;-1:-1:-1;;;;;;199:2819:85;;;;;;;;;;;;;8087:29:25;;199:2819:85;;8087:29:25;7981:146;;;;;7896:76;-1:-1:-1;;;7938:23:25;;;;;199:2819:85;;;","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361015610011575f80fd5b5f3560e01c806301ffc9a7146104a45780631415519b1461049f5780631b66c9e11461049a5780631e9a695014610495578063248a9ca31461049057806327810b6e1461048b578063281f5752146104865780632abe3048146104815780632d73c69c1461047c5780632dd31000146104775780632f2ff15d1461047257806336568abe1461046d578063392e53cd146104685780634105a7dd14610463578063463616711461045e57806347e7ef241461045957806348d3b775146104545780634ff0876a1461044f57806350861adc1461044a57806350f22068146104455780635346e34f1461044057806354fd4d501461043b57806355a2c6721461043657806357ec83cc1461043157806359f769a91461042c5780635cc070761461042757806361a8c8c41461042257806364b03fdc1461041d57806367567add146104185780636da3e06d146104135780636ec1e3f81461040e578063715018a6146104095780637278e31c1461040457806373790ab3146103ff57806376671808146103fa578063794b15b7146103f55780637953b33b146103f05780637c04c80a146103eb578063810da75d146103e65780638326056f146103e157806383cd9cc3146103dc57806387df0788146103d75780638b0e9f3f146103d25780638da5cb5b146103cd57806391d14854146103c85780639d66201b146103c35780639f86fd85146103be578063a1b12202146103b9578063a217fddf146103b4578063a21a1df9146103af578063a2861466146103aa578063a3b54172146103a5578063a5d03223146103a0578063aabc24961461039b578063aad3ec9614610396578063afba70ad14610391578063b13442711461038c578063bd49c35f14610387578063bdc8144b14610382578063bfefcd7b1461037d578063c31e8dd714610378578063ce9b793014610373578063d547741f1461036e578063d8dfeb4514610369578063db38871514610364578063de4997161461035f578063eb5562381461035a578063ecf7085814610355578063efb559d614610350578063f2fde38b1461034b578063f3fef3a314610346578063f5e7ee0f146103415763f9e1bf6c1461033c575f80fd5b61264c565b612622565b61257c565b61254f565b612400565b6123e3565b61238f565b612375565b612309565b6122de565b612292565b61226a565b612200565b6121e6565b612108565b6120ee565b6120c6565b61209c565b611fdb565b611e24565b611dde565b611d91565b611c9e565b611c64565b611c4a565b611c26565b611b92565b611b58565b611afa565b611ac6565b611a64565b611a20565b611867565b61184d565b611834565b6117ce565b6117a7565b611767565b61174d565b61170c565b611438565b6113d1565b6113ac565b611368565b611312565b6112e4565b611248565b61121e565b6111f7565b6110bf565b61103a565b611008565b610f73565b610f5a565b610efd565b610edd565b610ebc565b610bfe565b610bd6565b610b3b565b610af6565b610aab565b610a5d565b610a19565b6109a5565b61079b565b6106cd565b6106a5565b61066c565b610583565b610538565b6104fe565b346104fa5760203660031901126104fa5760043563ffffffff60e01b81168091036104fa57602090637965db0b60e01b81149081156104e9575b506040519015158152f35b6301ffc9a760e01b1490505f6104de565b5f80fd5b346104fa575f3660031901126104fa5760206040517fc6aaadd7371d5e8f9ed6849dd66a66573a3ba37167d03f4352c9ba5693678fac8152f35b346104fa575f3660031901126104fa5760206040517f9c56d972d63cbb4195b3c1484691dfc220fa96a4c47e7b6613bd82a022029e068152f35b6001600160a01b038116036104fa57565b346104fa5760403660031901126104fa576004356105a081610572565b602435906105ac613080565b6001600160a01b0381161561065b57335f908152600e602052604090206105d790614498565b614498565b8211610649576105f76105e86143ab565b6105f0614424565b90846144db565b9182156106345782610608926130af565b9061061f60015f805160206151a583398151915255565b604080519182526020820192909252f35b0390f35b60405160016245ddc760e11b03198152600490fd5b604051632418411f60e11b8152600490fd5b6040516208978560e71b8152600490fd5b346104fa5760203660031901126104fa576004355f525f805160206151858339815191526020526020600160405f200154604051908152f35b346104fa575f3660031901126104fa576001546040516001600160a01b039091168152602090f35b346104fa575f3660031901126104fa576106e5612c66565b80156107465760015465ffffffffffff8160a01c16915f198101908111610741576107139160d01c90612695565b81018091116107415761072861063091613229565b60405165ffffffffffff90911681529081906020820190565b612666565b604051639fa56a5b60e01b8152600490fd5b600435906001600160401b03821682036104fa57565b9181601f840112156104fa578235916001600160401b0383116104fa57602083818601950101116104fa57565b346104fa5760403660031901126104fa576107b4610758565b6001600160401b036024358181116104fa576107d490369060040161076e565b50506107de613080565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316330361085a575f805160206151c5833981519152549060ff8260401c1692831561084a575b505050610838575f80fd5b60405163f92ee8a960e01b8152600490fd5b81169116101590505f808061082d565b604051631966391b60e11b8152600490fd5b65ffffffffffff8116036104fa57565b634e487b7160e01b5f52604160045260245ffd5b606081019081106001600160401b038211176108ab57604052565b61087c565b604081019081106001600160401b038211176108ab57604052565b608081019081106001600160401b038211176108ab57604052565b90601f801991011681019081106001600160401b038211176108ab57604052565b6040519061016082018281106001600160401b038211176108ab57604052565b60405190610934826108b0565b565b6001600160401b0381116108ab57601f01601f191660200190565b92919261095d82610936565b9161096b60405193846108e6565b8294818452818301116104fa578281602093845f960137010152565b9080601f830112156104fa578160206109a293359101610951565b90565b346104fa5760603660031901126104fa576004356109c281610572565b602435906109cf8261086c565b604435906001600160401b0382116104fa576020926109f5610a11933690600401610987565b6001600160a01b039092165f908152600e85526040902061340e565b604051908152f35b346104fa575f3660031901126104fa576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346104fa5760403660031901126104fa57610aa9602435600435610a8082610572565b805f525f80516020615185833981519152602052610aa4600160405f2001546135e5565b6138e5565b005b346104fa5760403660031901126104fa57602435610ac881610572565b336001600160a01b03821603610ae457610aa99060043561391b565b60405163334bd91960e11b8152600490fd5b346104fa575f3660031901126104fa5760ff60025460a01c1680610b22575b6020906040519015158152f35b5060035460a01c60ff16610b15565b801515036104fa57565b346104fa5760203660031901126104fa57600435610b5881610b31565b610b60613080565b610b686134da565b5f54901515908160ff8216151514610bc45760ff191660ff8216175f556040519081527f3e12b7b36c75ac9609a3f58609b331210428e1a85909132638955ba0301eec3390602090a160015f805160206151a583398151915255005b60405163a741a04560e01b8152600490fd5b346104fa575f3660031901126104fa57602065ffffffffffff60015460a01c16604051908152f35b346104fa576040806003193601126104fa576004803591610c1e83610572565b610c26613080565b6001600160a01b0391838316908115610eae575f5460ff811680610e95575b610e865783516370a0823160e01b808252308483019081529096602093909160109190911c82169084908490819083010381845afa928315610e5e575f93610e63575b50610c9a9060243590309033906139ad565b5f5486519788523085890190815290979184918391908290819060200103918b60101c165afa908115610e5e57610cd9935f92610e31575b5050612688565b938415610e225760081c60ff1680610e0d575b610dff57509061063091610d9d610d016143ab565b95610d4a610d0d614424565b610d35610d1b8a838b6144db565b99610d2f8a610d2942613229565b926126b6565b90613b01565b5050610d4489610d2942613229565b90613be1565b50506001600160a01b0381165f908152600e6020526040902090610d9788610d926105d2610d7742613229565b6001600160a01b039095165f908152600e6020526040902090565b6126b6565b91613cbd565b505081518481526020810186905233907fdcbc1c05240f31ff3ad067ef1ee35ce4997762752e3a095284754544f4c709d790604090a3610de960015f805160206151a583398151915255565b5191825260208201929092529081906040820190565b8251632484557960e01b8152fd5b50610e1a84610d926143ab565b815410610cec565b50825163070f6eed60e11b8152fd5b610e509250803d10610e57575b610e4881836108e6565b8101906126e4565b5f80610cd2565b503d610e3e565b6126f3565b610c9a919350610e7f90853d8711610e5757610e4881836108e6565b9290610c88565b5082516304f63b8560e01b8152fd5b50335f9081526005602052604090205460ff1615610c45565b8251630d534ce360e11b8152fd5b346104fa575f3660031901126104fa57602060ff5f54166040519015158152f35b346104fa575f3660031901126104fa57602060015460d01c604051908152f35b346104fa575f3660031901126104fa57602060ff60025460a01c166040519015158152f35b9060406003198301126104fa57600435610f3b8161086c565b91602435906001600160401b0382116104fa576109a291600401610987565b346104fa576020610a11610f6d36610f22565b90613284565b346104fa5760203660031901126104fa57600435610f9081610b31565b610f98613080565b610fa0613537565b5f54901515908160ff8260081c16151514610bc45761ff001916600882901b61ff0016175f556040519081527ffa7a25a0b611d4ba3c0ea990e90dc23d484a5dd7a1be4733fef2946ba74530c690602090a1610aa960015f805160206151a583398151915255565b346104fa575f3660031901126104fa5760206001600160401b035f805160206151c58339815191525416604051908152f35b346104fa5760203660031901126104fa576004356110578161086c565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633036110ad5761109090613d9f565b60408051941515855263ffffffff91909116602085015292915050f35b604051637ca475e560e11b8152600490fd5b346104fa5760603660031901126104fa576110d8610758565b6024356110e481610572565b6001600160401b03916044358381116104fa5761110590369060040161076e565b5f805160206151c58339815191529491855494838616806111e65760ff8760401c169081156111d9575b50610838577fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2966111d49661119c958716906001600160401b0319161790556111975f805160206151c5833981519152600160401b68ff000000000000000019825416179055565b6126fe565b5f805160206151c5833981519152805468ff0000000000000000191690556040516001600160401b0390911681529081906020820190565b0390a1005b905084861611155f61112f565b60405162dc149f60e41b8152600490fd5b346104fa5760203660031901126104fa576020610a1160043561121981610572565b612b1e565b346104fa5760203660031901126104fa576004355f526006602052602060405f2054604051908152f35b346104fa575f3660031901126104fa5760015465ffffffffffff61127e818360a01c1692611274612c66565b9060d01c90612695565b820180921161074157611292602092613229565b60405191168152f35b60409060031901126104fa576004356112b381610572565b906024356109a28161086c565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b346104fa576106306112fe6112f83661129b565b90612bac565b6040519182916020835260208301906112c0565b346104fa5760203660031901126104fa5760043561132f8161086c565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633036110ad5761109090613ea4565b346104fa575f3660031901126104fa576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346104fa575f3660031901126104fa57602060ff60035460a01c166040519015158152f35b346104fa575f3660031901126104fa576113e96141eb565b5f8051602061512583398151915280546001600160a01b031981169091555f906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b346104fa5760403660031901126104fa576004356024356114588161086c565b611460613080565b60035461147d906001600160a01b03165b6001600160a01b031690565b33036116fa5761148b612c66565b9061149581612c9a565b90821515806116e9575b80156116e0575b6116ce57610630937ff9d090c096f71cd1659861a9ce5b6f384bceb4e2fa4e4a19edf6489a9b8d56c7926114d86143ab565b946114f36114e5826126a8565b5f52600660205260405f2090565b54908281036115e7575061150781876126b6565b6115118185614223565b9687806115a0575b50505050505b8361156c575b6040805191825265ffffffffffff929092166020820152908101839052606090a161155c60015f805160206151a583398151915255565b6040519081529081906020820190565b5f5461159b9085906115899060101c6001600160a01b0316611471565b6001546001600160a01b0316906142d1565b611525565b6115dc93610cd283610d2f6115c66115bf6114e5986115d6988861423f565b8096612688565b946115d042613229565b92612688565b926126a8565b555f80808087611519565b91506115fb825f52600660205260405f2090565b549061160b81610d92848a6126b6565b906116168286614223565b9788611627575b505050505061151f565b61169c938361164f9361165c8c61165761164561168d99888461423f565b978895858461423f565b948592612688565b612688565b938484106116a7575b610cd290610d2f61167b9596976115d042613229565b6116876114e5876126a8565b55612688565b915f52600660205260405f2090565b555f8080808061161d565b916116c3610cd2916116bd8661167b9798612688565b906126b6565b859450929050611665565b604051635e18d2a560e01b8152600490fd5b508282116114a6565b506116f38361267a565b821061149f565b60405163dabc4ad960e01b8152600490fd5b346104fa575f3660031901126104fa5760015465ffffffffffff808260a01c1691611735612c66565b600181018091116107415761127e9160d01c90612695565b346104fa575f3660031901126104fa576020610a11612c66565b346104fa5760203660031901126104fa5760043561178481610572565b60018060a01b03165f526005602052602060ff60405f2054166040519015158152f35b346104fa5760203660031901126104fa576020610a116004356117c98161086c565b612c9a565b346104fa5760403660031901126104fa576004356117eb81610572565b6024356001600160401b038082116104fa57366023830112156104fa5781600401359081116104fa573660248260051b840101116104fa5761063092602461155c930190612cd5565b346104fa576020610a1161184736610f22565b90613359565b346104fa576106306112fe6118613661129b565b90612e03565b346104fa576020806003193601126104fa57600480359061188782610572565b61188f613080565b60025460a01c60ff16611a11576040516302910f8b60e31b81526001600160a01b03838116838301908152909491908290829081906020010381887f0000000000000000000000000000000000000000000000000000000000000000165afa908115610e5e575f916119e4575b50156119d45760405163fbfa77cf60e01b8152838516949082818581895afa928315610e5e575f936119a5575b5050309116036119965750600280546001600160a01b03929092166001600160a81b031990921691909117600160a01b1790557fdb2160616f776a37b24808115554e79439bf26cccbbd4438190cc6d28e80ecd15f80a2610aa960015f805160206151a583398151915255565b60405163b9f0f17160e01b8152fd5b6119c5929350803d106119cd575b6119bd81836108e6565b810190612e5a565b905f80611929565b503d6119b3565b506040516324e5af8d60e21b8152fd5b611a049150823d8411611a0a575b6119fc81836108e6565b810190612e3a565b5f6118fc565b503d6119f2565b604051631380833b60e01b8152fd5b346104fa575f3660031901126104fa576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346104fa575f3660031901126104fa57611a7c612c66565b611a846143ab565b90805f52600660205260405f205482018092116107415760018101809111610741575f52600660205260405f2054810180911161074157602090604051908152f35b346104fa575f3660031901126104fa575f80516020615125833981519152546040516001600160a01b039091168152602090f35b346104fa5760403660031901126104fa57602060ff611b4c602435611b1e81610572565b6004355f525f80516020615185833981519152845260405f209060018060a01b03165f5260205260405f2090565b54166040519015158152f35b346104fa5760203660031901126104fa57600435611b7581610572565b60018060a01b03165f52600e6020526020610a1160405f20614498565b346104fa5760403660031901126104fa57600435611baf81610572565b6024356001600160401b0381116104fa575f91611bd18392369060040161076e565b90816040519283928337810184815203915af4611c1e611bef612e6f565b91611c106040519384921515602084015260408084015260608301906112c0565b03601f1981018352826108e6565b805190602001fd5b346104fa575f3660031901126104fa57602060ff5f5460081c166040519015158152f35b346104fa575f3660031901126104fa5760206040515f8152f35b346104fa575f3660031901126104fa5760206040517f4a634bc14d77baf979756509ef4298c6f6318af357828612545267ee2eb792338152f35b346104fa5760403660031901126104fa57600435611cbb81610572565b602435611cc781610b31565b611ccf613080565b611cd761358e565b6001600160a01b038216918215611d7f575f8381526005602052604090205460ff16151582151514610bc4576001600160a01b03165f9081526005602052604090207ff991b1ecfb5115cbb36a2b2e2240c058406d2acc2fcc6e9e2dc99d845ff70a6291611d6691611d54908260ff801983541691151516179055565b60405190151581529081906020820190565b0390a2610aa960015f805160206151a583398151915255565b604051630da30f6560e31b8152600490fd5b346104fa5760403660031901126104fa576020611dd5602435611db381610572565b6004355f526008835260405f209060018060a01b03165f5260205260405f2090565b54604051908152f35b346104fa5760403660031901126104fa57602060ff611b4c602435611e0281610572565b6004355f526009845260405f209060018060a01b03165f5260205260405f2090565b346104fa576020806003193601126104fa576004803590611e4482610572565b611e4c613080565b60035460a01c60ff16611fcc576001600160a01b03828116939084611eba575b6003805460ff60a01b1916600160a01b179055847fe7e4c932e03abddfe20f83af42c33627e816115c7ec2b168441f65dc14bfc3ba5f80a2610aa960015f805160206151a583398151915255565b6040516302910f8b60e31b81526001600160a01b0385168482019081528390829081906020010381857f0000000000000000000000000000000000000000000000000000000000000000165afa908115610e5e575f91611faf575b5015611f9e5760405163fbfa77cf60e01b815282818581895afa928315610e5e575f93611f7f575b505030911603611f705750600380546001600160a01b0319166001600160a01b039092169190911790555f808080611e6c565b604051633f3e089160e21b8152fd5b611f96929350803d106119cd576119bd81836108e6565b905f80611f3d565b60405163dabc4ad960e01b81528390fd5b611fc69150833d8511611a0a576119fc81836108e6565b5f611f15565b60405163703fe2e560e01b8152fd5b346104fa5760403660031901126104fa57600435611ff881610572565b60243590612004613080565b6001600160a01b039181831690811561208a57612035610630946120278361430f565b9485915f5460101c166142d1565b604080519182526020820184905233917f865ca08d59f5cb456e85cd2f7ef63664ea4f73327414e9d8152c4158b0e946459190a360015f805160206151a5833981519152556040519081529081906020820190565b604051634e46966960e11b8152600490fd5b346104fa5760203660031901126104fa576004355f526007602052602060405f2054604051908152f35b346104fa575f3660031901126104fa576003546040516001600160a01b039091168152602090f35b346104fa575f3660031901126104fa576020610a116143ab565b346104fa5760203660031901126104fa57600435612124613080565b335f9081527f2d4ccbfe9f7672a6f2537c1e5bce6adacb73706879154bbab6ce096012d6721660205260409020547f4a634bc14d77baf979756509ef4298c6f6318af357828612545267ee2eb792339060ff16156121c857508060045414610bc4576020817f854df3eb95564502c8bc871ebdd15310ee26270f955f6c6bd8cea68e75045bc092600455604051908152a160015f805160206151a583398151915255005b6044906040519063e2517d3f60e01b82523360048301526024820152fd5b346104fa575f3660031901126104fa576020610a11614424565b346104fa5760203660031901126104fa5760043561221d81610572565b612225612c66565b61222e82612b1e565b916122398183612f59565b830180931161074157600182018092116107415761225691612f59565b810180911161074157602090604051908152f35b346104fa575f3660031901126104fa576002546040516001600160a01b039091168152602090f35b346104fa5760403660031901126104fa57610aa96024356004356122b582610572565b805f525f805160206151858339815191526020526122d9600160405f2001546135e5565b61391b565b346104fa575f3660031901126104fa575f5460405160109190911c6001600160a01b03168152602090f35b346104fa575f3660031901126104fa5760206040517fbae4ee3de6c709ff9a002e774c5b78cb381560b219213c88ae0f1e207c03c0238152f35b60609060031901126104fa5760043561235b81610572565b9060243561236881610572565b906044356109a28161086c565b346104fa576106306112fe61238936612343565b91612e9e565b346104fa5761239d3661129b565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811633036110ad5761109092165f52600e60205260405f20613f6a565b346104fa575f3660031901126104fa576020600454604051908152f35b346104fa5760603660031901126104fa5760043561241d81610572565b6024359061242a8261086c565b6001600160401b03916044358381116104fa5761244b90369060040161076e565b9092604093845161245b81610890565b606081526060602082015260608682015292806124ba575b610630866124ab87876124a561248c89848451916126c3565b928561249c602085015183613359565b93015190613284565b916144db565b90519081529081906020820190565b81019392506020818503126104fa578035908682116104fa5701926060848203126104fa578451956124eb87610890565b84358181116104fa5782612500918701610987565b875260208501358181116104fa578261251a918701610987565b6020880152858501359081116104fa57610630966125436124a59361248c936124ab9801610987565b87820152939450612473565b346104fa5760203660031901126104fa57610aa960043561256f81610572565b6125776141eb565b612ee8565b346104fa5760403660031901126104fa5760043561259981610572565b6024356125a4613080565b6001600160a01b0382161561065b578015612610576125d36125c4614424565b6125cc6143ab565b90836148f9565b335f908152600e602052604090209092906125ed90614498565b83116125fe576106089183916130af565b6040516321727a3760e11b8152600490fd5b604051636c6c627d60e11b8152600490fd5b346104fa5760403660031901126104fa576020610a1160243561264481610572565b600435612f59565b346104fa576106306112fe61266036612343565b91612fb7565b634e487b7160e01b5f52601160045260245ffd5b5f1981019190821161074157565b9190820391821161074157565b8181029291811591840414171561074157565b906001820180921161074157565b9190820180921161074157565b6001600160a01b03165f908152600e602052604090206109a292919061340e565b908160209103126104fa575190565b6040513d5f823e3d90fd5b91612750916127419161270f614c66565b612717614c66565b60015f805160206151a5833981519152556001600160a01b0394808616612b04575b503691610951565b60208082518301019101614054565b805182166001600160a01b031615612af257604080820165ffffffffffff61277e825165ffffffffffff1690565b1615612ae15760c08301805190929061279f906001600160a01b0316611471565b15612992575b50916128de6101409261287d61285861293c966127f36127cb875160018060a01b031690565b5f805462010000600160b01b03191660109290921b62010000600160b01b0316919091179055565b6020860151600180546001600160a01b0319166001600160a01b0390921691909117905561284c61282342613229565b6001805465ffffffffffff60a01b191660a09290921b65ffffffffffff60a01b16919091179055565b5165ffffffffffff1690565b600180546001600160d01b031660d09290921b6001600160d01b031916919091179055565b61289d61288d6060850151151590565b60ff80195f541691151516175f55565b6128c46128ad6080850151151590565b61ff005f5491151560081b169061ff001916175f55565b6128d160a0840151600455565b516001600160a01b031690565b848116612982575b5060e08101516001600160a01b0316848116612972575b506101008101516001600160a01b0316848116612962575b506101208101516001600160a01b0316848116612952575b5001516001600160a01b031690565b9081166129465750565b61294f90613876565b50565b61295b90613807565b505f61292d565b61296b90613798565b505f612915565b61297b906136c2565b505f6128fd565b61298b90613611565b505f6128e6565b60e08401516129a9906001600160a01b0316611471565b15612a7e575b6101208401516129c7906001600160a01b0316611471565b6127a557608084015115612a345760a08401511580612a15575b612a055750916128de6101409261287d61285861293c965b949650505092506127a5565b5163183c854560e21b8152600490fd5b50610140840151612a2e906001600160a01b0316611471565b156129e1565b60a084015115801590612a5e575b612a055750916128de6101409261287d61285861293c966129f9565b50610140840151612a77906001600160a01b0316611471565b1515612a42565b606084015115612ab457610100840151612aa0906001600160a01b0316611471565b6129af575163183c854560e21b8152600490fd5b610100840151612acc906001600160a01b0316611471565b156129af575163183c854560e21b8152600490fd5b81516368f5f8f160e11b8152600490fd5b6040516368f7a67560e11b8152600490fd5b612b1890612b10614c66565b612577614c66565b5f612739565b6001600160a01b03165f908152600e60205260409020612b3d90614498565b612b456143ab565b612b4d614424565b90600181018091116107415760018201809211610741576109a29261423f565b519061093482610b31565b519063ffffffff821682036104fa57565b91908260409103126104fa576109a260208351612ba581610b31565b9301612b78565b9190612be8612bf79160609465ffffffffffff604051926367567add60e01b602085015216602483015260248252612be382610890565b61411d565b60208082518301019101612b89565b90612bff5750565b90915063ffffffff60405191166020820152602081526109a2816108b0565b65ffffffffffff918216908216039190821161074157565b634e487b7160e01b5f52601260045260245ffd5b9065ffffffffffff809116918215612c6157160490565b612c36565b612c6f42613229565b612c96600154612c8c65ffffffffffff93848360a01c1690612c1e565b9060d01c90612c4a565b1690565b6001549065ffffffffffff91828160a01c16918284821610612cc357612c9692612c8c91612c1e565b60405163b7d0949760e01b8152600490fd5b90612cde613080565b5f926001600160a01b03831692831561208a578115612d96575f5b828110612d7457505f547f326b6aff1cd2fb1c8234de4f9dcfb9047c5c36eb9ef2eb34af5121e969a75d279286929091612d49918491612d449060101c6001600160a01b0316611471565b6142d1565b612d5a604051928392339684612dd1565b0390a39061093460015f805160206151a583398151915255565b94612d8f6001916116bd612d89898789612dbc565b3561430f565b9501612cf9565b60405163edf3b93360e01b8152600490fd5b634e487b7160e01b5f52603260045260245ffd5b9190811015612dcc5760051b0190565b612da8565b604080825281018390529392916001600160fb1b0381116104fa5760209160609160051b809183880137850101930152565b9190612be8612bf79160609465ffffffffffff60405192632ad1633960e11b602085015216602483015260248252612be382610890565b908160209103126104fa57516109a281610b31565b519061093482610572565b908160209103126104fa57516109a281610572565b3d15612e99573d90612e8082610936565b91612e8e60405193846108e6565b82523d5f602084013e565b606090565b604051631d6aac4760e31b60208201526001600160a01b03909216602483015265ffffffffffff909216604480830191909152815260609291612bf791612be891612be3826108cb565b6001600160a01b03908116908115612f41575f8051602061512583398151915280546001600160a01b031981168417909155167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3565b604051631e4fbdf760e01b81525f6004820152602490fd5b90612f7f90825f52600860205260405f209060018060a01b03165f5260205260405f2090565b54905f52600660205260405f2054600760205260405f205490600181018091116107415760018201809211610741576109a29261423f565b92919092612fdc612fcb8360609684612e9e565b92612fd68184612bac565b92612e03565b90825115801590613076575b801561306c575b612ff857505050565b6130459394506109a29291611c10916040519361301485610890565b8452602084019081526040840191825261305b604051968795602080880152516060604088015260a08701906112c0565b915191603f1992838783030160608801526112c0565b9151908483030160808501526112c0565b5081511515612fef565b5080511515612fe8565b5f805160206151a5833981519152600281541461309d5760029055565b604051633ee5aeb560e01b8152600490fd5b335f908152600e60205260409020939291906130ca42613229565b335f908152600e602052604090206130e190614498565b918483039283116107415761311c7febff2602b3f468259e1e99f613fed6691f3a6526effe6ef3e768ba7ae7a36c4f9385936131a799613cbd565b505061313661312a42613229565b610d4487611657614424565b505061315061314442613229565b610d2f846116576143ab565b50506131f5816131e0613169613164612c66565b6126a8565b6131bf61317e825f52600660205260405f2090565b54613191835f52600760205260405f2090565b5461319d82828b6144db565b9d8e998a936126b6565b6131b9855f52600660205260405f2090565b556126b6565b6131d1825f52600760205260405f2090565b555f52600860205260405f2090565b9060018060a01b03165f5260205260405f2090565b6132008382546126b6565b9055604080519485526020850195909552938301526001600160a01b03909216913391606090a3565b65ffffffffffff9081811161323c571690565b604490604051906306dfcc6560e41b8252603060048301526024820152fd5b908160209103126104fa576109a290612b78565b90600163ffffffff8093160191821161074157565b9080511561334f578060208061329f9351830101910161325b565b6132a881614720565b906132b9825165ffffffffffff1690565b9065ffffffffffff808516921682811461334357821191826132ef575b50506132e657506109a2906144fc565b60209150015190565b9091506132fd600a5461267a565b63ffffffff831614918215613316575b50505f806132d6565b61333b91925061284c61332b6133309261326f565b614720565b65ffffffffffff1690565b115f8061330d565b50505060209150015190565b506109a2906144fc565b9080511561340457806020806133749351830101910161325b565b61337d816147a5565b9061338e825165ffffffffffff1690565b9065ffffffffffff808516921682811461334357821191826133bb575b50506132e657506109a2906145ad565b9091506133c9600c5461267a565b63ffffffff8316149182156133e2575b50505f806133ab565b6133fc91925061284c6133f76133309261326f565b6147a5565b115f806133d9565b506109a2906145ad565b918051156134d057806020806134299351830101910161325b565b916134348382614820565b92613445845165ffffffffffff1690565b9065ffffffffffff80851692168281146134c4578211918261347b575b5050613472576109a29250614657565b50506020015190565b909150613488835461267a565b63ffffffff8316149182156134a1575b50505f80613462565b6134bc91925061284c6134b66133309261326f565b85614820565b115f80613498565b50505050506020015190565b506109a291614657565b335f9081527f03b26b53c87faa1058f30bb5d2fee64f717719a0d9b7e4f4df027aa5e9b6ed69602052604090207fbae4ee3de6c709ff9a002e774c5b78cb381560b219213c88ae0f1e207c03c0239060ff905b5416156121c85750565b335f9081527fe41986b390c4ce6791b87f7423b5fab7a81a0e6d89660b6264f697d008b2243a602052604090207fc6aaadd7371d5e8f9ed6849dd66a66573a3ba37167d03f4352c9ba5693678fac9060ff9061352d565b335f9081527f0287ab4cb376ea253d7b2ce0c2cbf458f7deae9458470d74afdfbbee484e9540602052604090207f9c56d972d63cbb4195b3c1484691dfc220fa96a4c47e7b6613bd82a022029e069060ff9061352d565b5f8181525f8051602061518583398151915260209081526040808320338452909152902060ff9061352d565b6001600160a01b0381165f9081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d60205260409020545f805160206151858339815191529060ff166136bc575f808052602091825260408082206001600160a01b038516835290925220805460ff1916600117905533906001600160a01b03165f7f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d8180a4600190565b50505f90565b6001600160a01b0381165f9081527f03b26b53c87faa1058f30bb5d2fee64f717719a0d9b7e4f4df027aa5e9b6ed69602052604090207fbae4ee3de6c709ff9a002e774c5b78cb381560b219213c88ae0f1e207c03c023905f805160206151858339815191529060ff905b5416613791575f828152602091825260408082206001600160a01b038616835290925220805460ff1916600117905533916001600160a01b0316907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d5f80a4600190565b5050505f90565b6001600160a01b0381165f9081527f0287ab4cb376ea253d7b2ce0c2cbf458f7deae9458470d74afdfbbee484e9540602052604090207f9c56d972d63cbb4195b3c1484691dfc220fa96a4c47e7b6613bd82a022029e06905f805160206151858339815191529060ff9061372d565b6001600160a01b0381165f9081527fe41986b390c4ce6791b87f7423b5fab7a81a0e6d89660b6264f697d008b2243a602052604090207fc6aaadd7371d5e8f9ed6849dd66a66573a3ba37167d03f4352c9ba5693678fac905f805160206151858339815191529060ff9061372d565b6001600160a01b0381165f9081527f2d4ccbfe9f7672a6f2537c1e5bce6adacb73706879154bbab6ce096012d67216602052604090207f4a634bc14d77baf979756509ef4298c6f6318af357828612545267ee2eb79233905f805160206151858339815191529060ff9061372d565b5f8181525f80516020615185833981519152602081815260408084206001600160a01b038716855290915290912060ff9061372d565b5f8181525f80516020615185833981519152602081815260408084206001600160a01b03871685529091529091205460ff1615613791575f828152602091825260408082206001600160a01b038616835290925220805460ff1916905533916001600160a01b0316907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b5f80a4600190565b6040516323b872dd60e01b60208201526001600160a01b03928316602482015292909116604483015260648083019390935291815260a08101918183106001600160401b038411176108ab5761093492604052614888565b600b54811015612dcc57600b5f525f8051602061516583398151915201905f90565b600d54811015612dcc57600d5f525f8051602061514583398151915201905f90565b8054821015612dcc575f5260205f2001905f90565b600d54600160401b8110156108ab576001810180600d55811015612dcc57600d5f525f805160206151458339815191520155565b600b54600160401b8110156108ab576001810180600b55811015612dcc57600b5f525f805160206151658339815191520155565b90815491600160401b8310156108ab5782613ae991600161093495018155613a49565b90919082549060031b91821b915f19901b1916179055565b919091600d9081548015613bac575b50613b19614939565b50929091815492613b286143ab565b9481613b97575b5015613b7457505f1982018281116107415781541115612dcc575f527fd7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb4018390559190565b613b88926001600160d01b03169150614d9d565b5050613b9383613a5e565b9190565b65ffffffffffff83811691161490505f613b2f565b600160401b8110156108ab5760018101808455811015612dcc575f908382525f8051602061514583398151915201555f613b10565b919091600b9081548015613c88575b50613bf96149a4565b50929091815492613c08614424565b9481613c73575b5015613c5457505f1982018281116107415781541115612dcc575f527f0175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db8018390559190565b613c68926001600160d01b03169150614e98565b5050613b9383613a92565b65ffffffffffff83811691161490505f613c0f565b600160401b8110156108ab5760018101808455811015612dcc575f908382525f8051602061516583398151915201555f613bf0565b90929192600182019081548015613d4b575b5084613cda846149ee565b50949092845493613cea83614498565b9681613d36575b5015613d13575050505f19810190811161074157613ae98591613b9393613a49565b613b93949293613d2f926001600160d01b039091169190614f42565b5050613ac6565b65ffffffffffff83811691161490505f613cf1565b600160401b8110156108ab57806001613d679201845583613a49565b8154905f199060031b1b191690555f613ccf565b90604051613d88816108b0565b915465ffffffffffff8116835260301c6020830152565b600a54905f829160058411613e4a575b613db99350614b55565b8015613e3f57613de9613de4613dce8361267a565b600a5f525f805160206151058339815191520190565b613d7b565b91613e38613e2f613e29613e1f613e1a6020613e0b895165ffffffffffff1690565b9801516001600160d01b031690565b613a05565b90549060031b1c90565b9361267a565b63ffffffff1690565b6001939291565b505f905f905f905f90565b9192613e5581614a1c565b810390811161074157600a5f525f80516020615105833981519152810154613db9949065ffffffffffff9081169085161015613e92575091613daf565b929150613e9e906126a8565b90613daf565b600c54905f829160058411613f10575b613ebe9350614bb2565b8015613e3f57613ee9613de4613ed38361267a565b600c5f525f805160206150e58339815191520190565b91613e38613e2f613e29613e1f613f0b6020613e0b895165ffffffffffff1690565b613a27565b9192613f1b81614a1c565b810390811161074157600c5f525f805160206150e5833981519152810154613ebe949065ffffffffffff9081169085161015613f58575091613eb4565b929150613f64906126a8565b90613eb4565b91908254905f829160058411613fed575b613f86935085614c0f565b908115613fe157613e38613e2f613e29613e1f613fb3613de4613fa88861267a565b895f5260205f200190565b966001613fda6020613fcb8b5165ffffffffffff1690565b9a01516001600160d01b031690565b9101613a49565b5f925082915081908190565b9192613ff881614a1c565b810390811161074157613f8693865f526140216133308360205f200165ffffffffffff90541690565b65ffffffffffff85161015614037575091613f7b565b929150614043906126a8565b90613f7b565b51906109348261086c565b90816101609103126104fa57614068610907565b9061407281612e4f565b825261408060208201612e4f565b602083015261409160408201614049565b60408301526140a260608201612b6d565b60608301526140b360808201612b6d565b608083015260a081015160a08301526140ce60c08201612e4f565b60c08301526140df60e08201612e4f565b60e08301526101006140f2818301612e4f565b90830152610120614104818301612e4f565b90830152614116610140809201612e4f565b9082015290565b905f8060409384519360209461415481611c1088820194639f86fd8560e01b86523060248401528a604484015260648301906112c0565b51915afa50614161612e6f565b805181019280828486019503126104fa57828201519161418083610b31565b81810151906001600160401b0382116104fa57019084603f830112156104fa57838201516141ad81610936565b956141ba835197886108e6565b8187528282850101116104fa578085925f94018388015e85010152156141de575090565b9080519182156104fa5701fd5b5f80516020615125833981519152546001600160a01b0316330361420b57565b60405163118cdaa760e01b8152336004820152602490fd5b9080821015614230575090565b905090565b8115612c61570490565b9091828202915f19848209938380861095039480860395146142c457848311156142b257829109815f038216809204600280826003021880830282030280830282030280830282030280830282030280830282030280920290030293600183805f03040190848311900302920304170290565b60405163227bc15360e01b8152600490fd5b5050906109a29250614235565b60405163a9059cbb60e01b60208201526001600160a01b0390921660248301526044808301939093529181526109349161430a826108cb565b614888565b90614318612c66565b821015614399575f82815260096020908152604080832033845290915290205460ff16614387576143493383612f59565b918215614375575f9081526009602090815260408083203384529091529020805460ff19166001179055565b6040516366c0bcbf60e11b8152600490fd5b604051630c8d9eab60e31b8152600490fd5b60405163d5b25b6360e01b8152600490fd5b600c54806143eb57505f5b6001600160d01b038116156143e657600d54811015612dcc57600d5f525f80516020615145833981519152015490565b505f90565b805f1981011161074157600c5f527fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c6015460301c6143b6565b600a548061445f57505f5b6001600160d01b038116156143e657600b54811015612dcc57600b5f525f80516020615165833981519152015490565b805f1981011161074157600a5f527fc65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a7015460301c61442f565b8054806144bd57505f5b6001600160d01b038116156136bc576001613e1f9201613a49565b5f1990808281011161074157825f5260205f2001015460301c6144a2565b9190600181018091116107415760018201809211610741576109a29261423f565b600a54905f829160058411614554575b6145169350614b55565b8061453957505f5b6001600160d01b038116156143e657613e1f6109a291613a05565b614548613dce61454f9261267a565b5460301c90565b61451e565b919261455f81614a1c565b81039081116107415761451693600a5f5265ffffffffffff80835f80516020615105833981519152015416908516105f1461459b57509161450c565b9291506145a7906126a8565b9061450c565b600c54905f8291600584116145fe575b6145c79350614bb2565b806145ea57505f5b6001600160d01b038116156143e657613e1f6109a291613a27565b614548613ed36145f99261267a565b6145cf565b919261460981614a1c565b8103908111610741576145c793600c5f5265ffffffffffff80835f805160206150e5833981519152015416908516105f146146455750916145bd565b929150614651906126a8565b906145bd565b908154905f8291600584116146ba575b61467293508461502a565b8061469a57505f905b6001600160d01b038216156136bc576109a2916001613e1f9201613a49565b6145486146a96146b49261267a565b835f5260205f200190565b9061467b565b91926146c581614a1c565b81039081116107415761467293855f5265ffffffffffff808360205f20015416908516105f146146f6575091614667565b929150614702906126a8565b90614667565b60405190614715826108b0565b5f6020838281520152565b614728614708565b50614731614708565b50600a54811015612dcc5761475890600a5f525f8051602061510583398151915201613d7b565b65ffffffffffff81511690602060018060d01b0391015116600b54811015612dcc57600b5f525f8051602061516583398151915201546040519161479b836108b0565b8252602082015290565b6147ad614708565b506147b6614708565b50600c54811015612dcc576147dd90600c5f525f805160206150e583398151915201613d7b565b65ffffffffffff81511690602060018060d01b0391015116600d54811015612dcc57600d5f525f8051602061514583398151915201546040519161479b836108b0565b9061484961484361486a92614833614708565b5061483c614708565b5084613a49565b50613d7b565b91600165ffffffffffff845116936020828060d01b03910151169101613a49565b9054906040519261487a846108b0565b835260031b1c602082015290565b5f806148b09260018060a01b03169360208151910182865af16148a9612e6f565b9083615081565b80519081151591826148de575b50506148c65750565b60249060405190635274afe760e01b82526004820152fd5b6148f19250602080918301019101612e3a565b155f806148bd565b91906001810180911161074157600182018092116107415761491c82828561423f565b928215612c61570961492b5790565b600181018091116107415790565b600c548061494a57505f905f905f90565b805f19810111610741577fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c661498391600c5f5201613d7b565b9065ffffffffffff82511691602060018060d01b0391015116906001929190565b600a54806149b557505f905f905f90565b805f19810111610741577fc65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a761498391600a5f5201613d7b565b8054806149ff5750505f905f905f90565b5f1990808281011161074157614983925f5260205f200101613d7b565b80156143e65780614aee614ae7614add614ad3614ac9614abf614ab5614aab60016109a29a5f908b60801c80614b49575b508060401c80614b3c575b508060201c80614b2f575b508060101c80614b22575b508060081c80614b15575b508060041c80614b08575b508060021c80614afb575b50821c614af4575b811c1b614aa4818b614235565b0160011c90565b614aa4818a614235565b614aa48189614235565b614aa48188614235565b614aa48187614235565b614aa48186614235565b614aa48185614235565b8092614235565b90614223565b8101614a97565b600291509101905f614a8f565b600491509101905f614a84565b600891509101905f614a79565b601091509101905f614a6e565b602091509101905f614a63565b604091509101905f614a58565b9150506080905f614a4d565b828210614b6157505090565b9091614b6d8184615015565b90600a5f5265ffffffffffff80835f80516020615105833981519152015416908416105f14614b9f5750915b90614b55565b92506001810180911115614b9957612666565b828210614bbe57505090565b9091614bca8184615015565b90600c5f5265ffffffffffff80835f805160206150e5833981519152015416908416105f14614bfc5750915b90614bb2565b92506001810180911115614bf657612666565b905b838310614c1e5750505090565b909192614c2b8185615015565b90835f5265ffffffffffff808360205f20015416908416105f14614c535750925b9190614c11565b93506001810180911115614c4c57612666565b60ff5f805160206151c58339815191525460401c1615614c8257565b604051631afcd79f60e31b8152600490fd5b600c5490600160401b8210156108ab576001820180600c55821015612dcc57600c5f52805160209091015160301b65ffffffffffff191665ffffffffffff91909116175f805160206150e583398151915290910155565b600a5490600160401b8210156108ab576001820180600a55821015612dcc57600a5f52805160209091015160301b65ffffffffffff191665ffffffffffff91909116175f8051602061510583398151915290910155565b8054600160401b8110156108ab57614d5f91600182018155613a49565b614d8a57815160209092015160301b65ffffffffffff191665ffffffffffff92909216919091179055565b634e487b7160e01b5f525f60045260245ffd5b600c54919291908115614e6f57614db9613de4613ed38461267a565b805165ffffffffffff8381169491168410614e5d5785602093613b9395614de9613330865165ffffffffffff1690565b03614e255750614dfe613ed3614e179361267a565b9065ffffffffffff82549181199060301b169116179055565b01516001600160d01b031690565b9050614e589150614e45614e37610927565b65ffffffffffff9092168252565b6001600160d01b03871681850152614c94565b614e17565b604051632520601d60e01b8152600490fd5b614e939150614e7f614e37610927565b6001600160d01b0384166020820152614c94565b5f9190565b600a54919291908115614f1e57614eb4613de4613dce8461267a565b805165ffffffffffff8381169491168410614e5d5785602093613b9395614ee4613330865165ffffffffffff1690565b03614ef95750614dfe613dce614e179361267a565b9050614e589150614f0b614e37610927565b6001600160d01b03871681850152614ceb565b614e939150614f2e614e37610927565b6001600160d01b0384166020820152614ceb565b805492939291908215614ff157614f5e613de46146a98561267a565b90614f6f825165ffffffffffff1690565b65ffffffffffff84811691168110614e5d57613b93946020948892614f9d613330875165ffffffffffff1690565b03614fbe5750614e1792614fb3614dfe9261267a565b905f5260205f200190565b915050614e5891614fde614fd0610927565b65ffffffffffff9093168352565b6001600160d01b03881682860152614d42565b614e939250615001614fd0610927565b6001600160d01b0385166020830152614d42565b90808216911860011c81018091116107415790565b905b8383106150395750505090565b9091926150468185615015565b90835f5265ffffffffffff808360205f20015416908416105f1461506e5750925b919061502c565b9350600181018091111561506757612666565b906150a8575080511561509657805190602001fd5b604051630a12f52160e11b8152600490fd5b815115806150db575b6150b9575090565b604051639996b31560e01b81526001600160a01b039091166004820152602490fd5b50803b156150b156fedf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c7c65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a89016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300d7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb50175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db902dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268009b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a26469706673582212206764d46b458c94bc30a6b4a8199ffc550f65122fd0eea52d69629dd17905644864736f6c63430008190033","sourceMap":"199:2819:85:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;;;;;-1:-1:-1;;199:2819:85;;;;;;;;;;;;;;;;;;-1:-1:-1;;;3551:47:23;;;:87;;;;199:2819:85;;;;;;;;;;3551:87:23;-1:-1:-1;;;1133:40:29;;-1:-1:-1;3551:87:23;;;199:2819:85;-1:-1:-1;199:2819:85;;;;;;;;-1:-1:-1;;199:2819:85;;;;;;;966:38:96;199:2819:85;;;;;;;;;-1:-1:-1;;199:2819:85;;;;;;;821:37:96;199:2819:85;;;;-1:-1:-1;;;;;199:2819:85;;;;;:::o;:::-;;;;;;-1:-1:-1;;199:2819:85;;;;;;;;;:::i;:::-;;;3217:103:28;;;:::i;:::-;-1:-1:-1;;;;;199:2819:85;;5525:21:95;5521:75;;5634:10;199:2819:85;;;;5606:15:96;199:2819:85;;;;;5606:33:96;;;:::i;:24::-;:33;:::i;:::-;5610:35:95;;5606:88;;1057:70:87;5173:21:96;;:::i;:::-;4803:22;;:::i;:::-;1057:70:87;;;:::i;:::-;5801:20:95;;;5797:82;;5904:43;;;;:::i;:::-;3282:1:28;;1805;-1:-1:-1;;;;;;;;;;;199:2819:85;3716:283:28;3282:1;199:2819:85;;;;;;;;;;;;;;;;;;5797:82:95;199:2819:85;;-1:-1:-1;;;;;;5844:24:95;;199:2819:85;;5844:24:95;5606:88;199:2819:85;;-1:-1:-1;;;5668:15:95;;199:2819:85;;5668:15:95;5521:75;199:2819:85;;-1:-1:-1;;;5569:16:95;;199:2819:85;;5569:16:95;199:2819:85;;;;;;-1:-1:-1;;199:2819:85;;;;;;-1:-1:-1;199:2819:85;-1:-1:-1;;;;;;;;;;;199:2819:85;;;4919:24:23;199:2819:85;-1:-1:-1;199:2819:85;4919:24:23;199:2819:85;;;;;;;;;;;;;-1:-1:-1;;199:2819:85;;;;;;;;-1:-1:-1;;;;;199:2819:85;;;;;;;;;;;;;;-1:-1:-1;;199:2819:85;;;;4084:14:96;;:::i;:::-;4112:10;;4108:65;;4190:17;199:2819:85;;;;;;;;;;;;;;;;4210:27:96;199:2819:85;;;4210:27:96;;:::i;:::-;199:2819:85;;;;;;;4189:60:96;199:2819:85;4189:60:96;;:::i;:::-;199:2819:85;;;;;;;;;;;;;;;;;;:::i;4108:65:96:-;199:2819:85;;-1:-1:-1;;;4145:17:96;;199:2819:85;;4145:17:96;199:2819:85;;;;-1:-1:-1;;;;;199:2819:85;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;199:2819:85;;;;;;;;;;;;;;;:::o;:::-;;;;;;-1:-1:-1;;199:2819:85;;;;;;:::i;:::-;-1:-1:-1;;;;;199:2819:85;;;;;;;;;;;;;;:::i;:::-;3217:103:28;;;;:::i;:::-;1673:7:71;-1:-1:-1;;;;;199:2819:85;1659:10:71;:21;1655:71;;-1:-1:-1;;;;;;;;;;;199:2819:85;;;;;;;6431:44:25;;;;;199:2819:85;6427:105:25;;;;;-1:-1:-1;15924:8:95;;6427:105:25;199:2819:85;;-1:-1:-1;;;6498:23:25;;199:2819:85;;6498:23:25;6431:44;199:2819:85;;;;6450:25:25;;;-1:-1:-1;6431:44:25;;;;;1655:71:71;199:2819:85;;-1:-1:-1;;;1703:12:71;;199:2819:85;;1703:12:71;199:2819:85;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;199:2819:85;;;;;;;:::o;:::-;;:::i;:::-;;;;;;;-1:-1:-1;;;;;199:2819:85;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;199:2819:85;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;199:2819:85;;;;;;;:::o;:::-;;;;;;;;;;-1:-1:-1;;;;;199:2819:85;;;;;;;:::o;:::-;;;;;;;:::i;:::-;:::o;:::-;-1:-1:-1;;;;;199:2819:85;;;;;;-1:-1:-1;;199:2819:85;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;199:2819:85;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;;-1:-1:-1;;199:2819:85;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;199:2819:85;;;;;;;5383:59:96;199:2819:85;;;;;;:::i;:::-;-1:-1:-1;;;;;199:2819:85;;;-1:-1:-1;199:2819:85;;;5383:15:96;199:2819:85;;;;;5383:59:96;:::i;:::-;199:2819:85;;;;;;;;;;;;-1:-1:-1;;199:2819:85;;;;;;655:32:71;-1:-1:-1;;;;;199:2819:85;;;;;;;;;;;;-1:-1:-1;;199:2819:85;;;;5350:25:23;199:2819:85;;;;;;;:::i;:::-;;-1:-1:-1;199:2819:85;-1:-1:-1;;;;;;;;;;;199:2819:85;;3202:4:23;4919:24;199:2819:85;-1:-1:-1;199:2819:85;4919:24:23;199:2819:85;3202:4:23;:::i;:::-;5350:25;:::i;:::-;199:2819:85;;;;;;;-1:-1:-1;;199:2819:85;;;;;;;;;:::i;:::-;966:10:27;-1:-1:-1;;;;;199:2819:85;;6441:34:23;6437:102;;6549:37;199:2819:85;;;6549:37:23;:::i;6437:102::-;199:2819:85;;-1:-1:-1;;;6498:30:23;;199:2819:85;;6498:30:23;199:2819:85;;;;;;-1:-1:-1;;199:2819:85;;;;;1524:22:95;199:2819:85;;;;1524:46:95;;;199:2819:85;;;;;;;;;;;1524:46:95;-1:-1:-1;1550:20:95;199:2819:85;;;;;1524:46:95;;199:2819:85;;;;;;;:::o;:::-;;;;;;-1:-1:-1;;199:2819:85;;;;;;;;;:::i;:::-;3217:103:28;;:::i;:::-;3202:4:23;;:::i;:::-;-1:-1:-1;199:2819:85;;;;;;;;;;;9542:26:95;9538:76;;-1:-1:-1;;199:2819:85;;;;;-1:-1:-1;199:2819:85;;;;;;9665:27:95;;199:2819:85;;9665:27:95;1805:1:28;-1:-1:-1;;;;;;;;;;;199:2819:85;;9538:76:95;199:2819:85;;-1:-1:-1;;;9591:12:95;;199:2819:85;;9591:12:95;199:2819:85;;;;;;-1:-1:-1;;199:2819:85;;;;;;1718:31:96;199:2819:85;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3217:103:28;;:::i;:::-;-1:-1:-1;;;;;199:2819:85;;;;;3474:24:95;;3470:81;;-1:-1:-1;199:2819:85;;;;3565:55:95;;;199:2819:85;3561:118:95;;199:2819:85;;-1:-1:-1;;;3713:43:95;;;3750:4;3713:43;;;199:2819:85;;;;;;;;;;;;;;;;;;;;;;;;;3713:43:95;;;;;;;;;;-1:-1:-1;3713:43:95;;;199:2819:85;;3829:6:95;199:2819:85;;;3750:4:95;;3802:10;;3829:6;;:::i;:::-;-1:-1:-1;199:2819:85;;;3864:43:95;;;3750:4;3864:43;;;199:2819:85;;;;;;;;;;3864:43:95;199:2819:85;;;;;;3864:43:95;199:2819:85;;;;;3864:43:95;;;;;;;:59;:43;-1:-1:-1;3864:43:95;;;199:2819:85;3864:59:95;;;:::i;:::-;3938:20;;;3934:79;;199:2819:85;;;;;4027:64:95;;199:2819:85;4023:123:95;;5173:21:96;;199:2819:85;5173:21:96;4502:93:95;5173:21:96;;:::i;:::-;4803:22;4426:66:95;4803:22:96;;:::i;:::-;4349:67:95;390:70:87;;;;;:::i;:::-;837:15:62;4385:30:95;837:15:62;819:34;837:15;819:34;:::i;:::-;4385:30:95;;:::i;:::-;4349:67;;:::i;:::-;837:15:62;;4463:28:95;837:15:62;819:34;837:15;819:34;:::i;4463:28:95:-;4426:66;;:::i;:::-;-1:-1:-1;;;;;;;199:2819:85;;;;;;5606:15:96;199:2819:85;;;;;837:15:62;4553:41:95;837:15:62;5606:33:96;:24;819:34:62;837:15;819:34;:::i;:::-;-1:-1:-1;;;;;199:2819:85;;;;;;;5606:15:96;199:2819:85;;;;;;;5606:33:96;4553:41:95;:::i;:::-;4502:93;;:::i;:::-;-1:-1:-1;;199:2819:85;;;;;;;;;;;3802:10:95;;4611:62;;199:2819:85;;4611:62:95;3282:1:28;1805;-1:-1:-1;;;;;;;;;;;199:2819:85;3716:283:28;3282:1;199:2819:85;;;;;;;;;;;;;;;;;;;4023:123:95;199:2819:85;;-1:-1:-1;;;4114:21:95;;;4027:64;5173:21:96;4045:31:95;5173:21:96;;;:::i;4045:31:95:-;199:2819:85;;-1:-1:-1;4027:64:95;;3934:79;-1:-1:-1;199:2819:85;;-1:-1:-1;;;3981:21:95;;;3864:43;;;;;;-1:-1:-1;3864:43:95;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;;:::i;3713:::-;3829:6;3713:43;;;;;;;;;;;;;;;:::i;:::-;;;;;3561:118;-1:-1:-1;199:2819:85;;-1:-1:-1;;;3643:25:95;;;3565:55;-1:-1:-1;3609:10:95;199:2819:85;;;;3586:22:95;199:2819:85;;;;;;;;3585:35:95;3565:55;;3470:81;199:2819:85;;-1:-1:-1;;;3521:19:95;;;199:2819:85;;;;;;-1:-1:-1;;199:2819:85;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;199:2819:85;;;;;1805:27:96;199:2819:85;;;;;;;;;;;;;;;-1:-1:-1;;199:2819:85;;;;;;1968:34:96;199:2819:85;;;;;;;;;;;;;;;-1:-1:-1;;199:2819:85;;;;;;;;;;:::i;:::-;;;;;-1:-1:-1;;;;;199:2819:85;;;;;;;;;:::i;:::-;;;;;4622:48:96;199:2819:85;;;:::i;:::-;4622:48:96;;:::i;199:2819:85:-;;;;;;-1:-1:-1;;199:2819:85;;;;;;;;;:::i;:::-;3217:103:28;;:::i;:::-;3202:4:23;;:::i;:::-;-1:-1:-1;199:2819:85;;;;;;;;;;;;;10370:24:95;10366:74;;-1:-1:-1;;199:2819:85;;;;;;;;-1:-1:-1;199:2819:85;;;;;;10489:25:95;;199:2819:85;;10489:25:95;3282:1:28;1805;-1:-1:-1;;;;;;;;;;;199:2819:85;3716:283:28;199:2819:85;;;;;;-1:-1:-1;;199:2819:85;;;;;-1:-1:-1;;;;;;;;;;;;;;;;199:2819:85;;;;;;;;;;;;;;-1:-1:-1;;199:2819:85;;;;;;;;;:::i;:::-;449:5:82;-1:-1:-1;;;;;199:2819:85;435:10:82;:19;431:71;;1113:52:85;;;:::i;:::-;199:2819;;;;;;;;;;;;;;;;;;;-1:-1:-1;;199:2819:85;431:71:82;199:2819:85;;-1:-1:-1;;;477:14:82;;199:2819:85;;477:14:82;199:2819:85;;;;;;-1:-1:-1;;199:2819:85;;;;;;:::i;:::-;;;;;;:::i;:::-;-1:-1:-1;;;;;199:2819:85;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;8837:64:25;;199:2819:85;;;;;;734:29:71;730:87;;199:2819:85;;;;;6431:44:25;;;;;199:2819:85;6427:105:25;;;6656:20;199:2819:85;6656:20:25;199:2819:85;1167:340:71;199:2819:85;;;;-1:-1:-1;;;;;199:2819:85;;;;;6575:22:25;-1:-1:-1;;;;;;;;;;;;;;199:2819:85;;;;;;;;;6575:22:25;1167:340:71;:::i;:::-;-1:-1:-1;;;;;;;;;;;199:2819:85;;-1:-1:-1;;199:2819:85;;;;;-1:-1:-1;;;;;199:2819:85;;;;;;;;;;;;;6656:20:25;;;;199:2819:85;6431:44:25;199:2819:85;;;;;-1:-1:-1;6450:25:25;6431:44;;;730:87:71;199:2819:85;;-1:-1:-1;;;786:20:71;;199:2819:85;;786:20:71;199:2819:85;;;;;;-1:-1:-1;;199:2819:85;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;-1:-1:-1;;199:2819:85;;;;;;-1:-1:-1;199:2819:85;2431:59:96;199:2819:85;;;;-1:-1:-1;199:2819:85;;;;;;;;;;;;;;-1:-1:-1;;199:2819:85;;;;3875:17:96;199:2819:85;;3895:30:96;199:2819:85;;;;;3895:14:96;;;:::i;:::-;199:2819:85;;;3895:30:96;;:::i;:::-;199:2819:85;;;;;;;3874:63:96;199:2819:85;3874:63:96;;:::i;:::-;199:2819:85;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;199:2819:85;;;;;;;;-1:-1:-1;;199:2819:85;;;;:::o;:::-;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;199:2819:85;;;;;;;;;:::i;:::-;449:5:82;-1:-1:-1;;;;;199:2819:85;435:10:82;:19;431:71;;514:51:85;;;:::i;199:2819::-;;;;;;-1:-1:-1;;199:2819:85;;;;;;1200:42:96;-1:-1:-1;;;;;199:2819:85;;;;;;;;;;;;-1:-1:-1;;199:2819:85;;;;;;2136:32:96;199:2819:85;;;;;;;;;;;;;;;;;;-1:-1:-1;;199:2819:85;;;;2303:62:24;;:::i;:::-;-1:-1:-1;;;;;;;;;;;199:2819:85;;-1:-1:-1;;;;;;199:2819:85;;;;;;;-1:-1:-1;;;;;199:2819:85;3975:40:24;199:2819:85;;3975:40:24;199:2819:85;;;;;;;-1:-1:-1;;199:2819:85;;;;;;;;;;;:::i;:::-;3217:103:28;;:::i;:::-;7131:7:95;199:2819:85;7117:21:95;;-1:-1:-1;;;;;199:2819:85;;-1:-1:-1;;;;;199:2819:85;;;7117:21:95;:10;:21;7113:71;;7218:14;;:::i;:::-;7265:25;;;;:::i;:::-;7305:17;;;;:53;;;199:2819:85;7304:87:95;;;;199:2819:85;7300:146:95;;199:2819:85;5173:21:96;9310:48:95;5173:21:96;;;:::i;:::-;7540:17:95;7528:30;7540:17;;;:::i;:::-;199:2819:85;;7528:11:95;199:2819:85;;;;;;;7528:30:95;199:2819:85;;7572:29:95;;;;;7642:30;;;;;:::i;:::-;7702:32;;;;:::i;:::-;7752:17;;;7748:384;;7568:1615;;;;;;;9197:17;9193:102;;7568:1615;199:2819:85;;;;;;;;;;;;;;;;;;;;;;;9310:48:95;3282:1:28;1805;-1:-1:-1;;;;;;;;;;;199:2819:85;3716:283:28;3282:1;199:2819:85;;;;;;;;;;;;;9193:102:95;-1:-1:-1;199:2819:85;9270:13:95;;199:2819:85;;9230:18:95;;199:2819:85;;-1:-1:-1;;;;;199:2819:85;;;9230:18:95;7556:1;199:2819:85;-1:-1:-1;;;;;199:2819:85;9270:13:95;;:::i;:::-;9193:102;;7748:384;8045:29;7813:50;7962:65;7813:50;7998:28;7914:29;7813:50;8057:16;7813:50;8077:40;7813:50;;;:::i;:::-;7914:29;;;:::i;:::-;837:15:62;819:34;837:15;819:34;:::i;:::-;7998:28:95;;:::i;8077:40::-;8057:16;;:::i;8045:29::-;199:2819:85;7748:384:95;;;;;;;7568:1615;8185:26;;;;199:2819:85;;7528:11:95;199:2819:85;;;;;;;8185:26:95;199:2819:85;8250:27:95;:45;:27;;;;;:::i;:45::-;8325:32;;;;;:::i;:::-;8375:17;;8371:802;;7568:1615;;;;;;;;8371:802;9096:26;8436:50;;8537:53;8436:50;8637:54;8436:50;8637:29;8436:50;9125:33;8436:50;;;;:::i;:::-;8537:53;;;;;;:::i;:::-;8637:29;;;;:::i;:::-;:54;:::i;:::-;8714:33;;;;8710:194;;8371:802;8922:65;837:15:62;8958:28:95;9038:40;837:15:62;;;819:34;837:15;819:34;:::i;9038:40:95:-;9005:30;9017:17;;;:::i;9005:30::-;199:2819:85;9125:33:95;:::i;:::-;9096:26;199:2819:85;;7528:11:95;199:2819:85;;;;;;;9096:26:95;199:2819:85;8371:802:95;;;;;;;8710:194;8797:33;8771:59;8922:65;8797:33;;;9038:40;8797:33;;;:::i;:::-;8771:59;;:::i;:::-;8852:33;;-1:-1:-1;8852:33:95;;-1:-1:-1;8710:194:95;;7300:146;199:2819:85;;-1:-1:-1;;;7414:21:95;;199:2819:85;;7414:21:95;7304:87;7363:28;;;;7304:87;;7305:53;7341:17;;;;:::i;:::-;7326:32;;7305:53;;7113:71;199:2819:85;;-1:-1:-1;;;7161:12:95;;199:2819:85;;7161:12:95;199:2819:85;;;;;;-1:-1:-1;;199:2819:85;;;;4384:17:96;199:2819:85;;;;;;;4405:14:96;;;:::i;:::-;4384:17;199:2819:85;;;;;;;4404:36:96;199:2819:85;;;4404:36:96;;:::i;199:2819:85:-;;;;;;-1:-1:-1;;199:2819:85;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;199:2819:85;;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;199:2819:85;2307:68:96;199:2819:85;;;;;-1:-1:-1;199:2819:85;;;;;;;;;;;;;;;;;-1:-1:-1;;199:2819:85;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;-1:-1:-1;;199:2819:85;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;199:2819:85;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6491:14:95;199:2819:85;;6491:14:95;;:::i;199:2819:85:-;;;;;4994:47:96;199:2819:85;;;:::i;:::-;4994:47:96;;:::i;199:2819:85:-;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;3217:103:28;;:::i;:::-;10932:22:95;199:2819:85;;;;;10928:89:95;;199:2819:85;;-1:-1:-1;;;11032:49:95;;-1:-1:-1;;;;;199:2819:85;;;11032:49:95;;;199:2819:85;;;;;;;;;;;;;;;11032:49:95;11042:17;;;199:2819:85;11032:49:95;;;;;;;-1:-1:-1;11032:49:95;;;199:2819:85;11031:50:95;;11027:102;;199:2819:85;;-1:-1:-1;;;11143:34:95;;199:2819:85;;;;;11143:34:95;199:2819:85;11143:34:95;199:2819:85;;11143:34:95;;;;;;;-1:-1:-1;11143:34:95;;;199:2819:85;11189:4:95;;;199:2819:85;;11143:51:95;11139:107;;-1:-1:-1;10932:22:95;199:2819:85;;-1:-1:-1;;;;;199:2819:85;;;;-1:-1:-1;;;;;;199:2819:85;;;;;;;-1:-1:-1;;;199:2819:85;;;11334:24:95;-1:-1:-1;;11334:24:95;3282:1:28;1805;-1:-1:-1;;;;;;;;;;;199:2819:85;3716:283:28;11139:107:95;199:2819:85;;-1:-1:-1;;;11217:18:95;;;11143:34;;;;;;;-1:-1:-1;11143:34:95;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;11027:102;-1:-1:-1;199:2819:85;;-1:-1:-1;;;11104:14:95;;;11032:49;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;10928:89;199:2819:85;;-1:-1:-1;;;10977:29:95;;;199:2819:85;;;;;;-1:-1:-1;;199:2819:85;;;;;;1298:40:96;-1:-1:-1;;;;;199:2819:85;;;;;;;;;;;;-1:-1:-1;;199:2819:85;;;;1703:14:95;;:::i;:::-;5173:21:96;;:::i;:::-;199:2819:85;;;;1750:11:95;199:2819:85;;;;;;;;;;;;;1791:1:95;199:2819:85;;;;;;;;;1750:11:95;199:2819:85;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;199:2819:85;;;;-1:-1:-1;;;;;;;;;;;199:2819:85;;;-1:-1:-1;;;;;199:2819:85;;;;;;;;;;;;;;-1:-1:-1;;199:2819:85;;;;;;3901:31:23;199:2819:85;;;;;:::i;:::-;;;-1:-1:-1;199:2819:85;-1:-1:-1;;;;;;;;;;;199:2819:85;;;-1:-1:-1;199:2819:85;;;;;;;;;;;;;;;;;3901:31:23;199:2819:85;;;;;;;;;;;;;;;;-1:-1:-1;;199:2819:85;;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;199:2819:85;5606:15:96;199:2819:85;;;5606:33:96;199:2819:85;-1:-1:-1;199:2819:85;5606:33:96;:::i;199:2819:85:-;;;;;;-1:-1:-1;;199:2819:85;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;199:2819:85;;;;-1:-1:-1;199:2819:85;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;416:25:75;;;;477:31;416:25;;:::i;:::-;199:2819:85;;;;;;;;;;477:31:75;;199:2819:85;;;;;;;;;;;:::i;:::-;477:31:75;199:2819:85;;477:31:75;;;;;;:::i;:::-;518:79;;;199:2819:85;518:79:75;;199:2819:85;;;;;;-1:-1:-1;;199:2819:85;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;199:2819:85;;;;;;;;;;;;;;;;;-1:-1:-1;;199:2819:85;;;;;;;1109:35:96;199:2819:85;;;;;;;;;-1:-1:-1;;199:2819:85;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;3217:103:28;;:::i;:::-;3202:4:23;;:::i;:::-;-1:-1:-1;;;;;199:2819:85;;;9907:21:95;;9903:75;;-1:-1:-1;199:2819:85;;;9992:22:95;199:2819:85;;;;;;;;;;;;;9992:41:95;9988:91;;-1:-1:-1;;;;;199:2819:85;;;;;3586:22:95;199:2819:85;;;;;10145:44:95;;;;10089:40;;:31;199:2819:85;;;;;;;;;;;;;;10089:40:95;199:2819:85;;;;;;;;;;;;;;;10145:44:95;;;;3282:1:28;1805;-1:-1:-1;;;;;;;;;;;199:2819:85;3716:283:28;9903:75:95;199:2819:85;;-1:-1:-1;;;9951:16:95;;199:2819:85;;9951:16:95;199:2819:85;;;;;;-1:-1:-1;;199:2819:85;;;;;2666:94:96;199:2819:85;;;;;:::i;:::-;;;-1:-1:-1;199:2819:85;2666:94:96;199:2819:85;;;-1:-1:-1;199:2819:85;;;;;;;;;;;;;;;;;2666:94:96;199:2819:85;;;;;;;;;;;;;-1:-1:-1;;199:2819:85;;;;;;2816:92:96;199:2819:85;;;;;:::i;:::-;;;-1:-1:-1;199:2819:85;2816:92:96;199:2819:85;;;-1:-1:-1;199:2819:85;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3217:103:28;;:::i;:::-;11459:20:95;199:2819:85;;;;;11455:85:95;;-1:-1:-1;;;;;199:2819:85;;;;;;11550:312:95;;199:2819:85;11459:20:95;199:2819:85;;-1:-1:-1;;;;199:2819:85;-1:-1:-1;;;199:2819:85;;;11872:27:95;11915:20;-1:-1:-1;11915:20:95;;3282:1:28;1805;-1:-1:-1;;;;;;;;;;;199:2819:85;3716:283:28;11550:312:95;199:2819:85;;-1:-1:-1;;;11597:45:95;;-1:-1:-1;;;;;199:2819:85;;11597:45:95;;;199:2819:85;;;11597:45:95;;199:2819:85;;;;;;11597:45:95;11607:15;;;199:2819:85;11597:45:95;;;;;;;-1:-1:-1;11597:45:95;;;11550:312;11596:46;;11592:104;;199:2819:85;;-1:-1:-1;;;11714:30:95;;;199:2819:85;11714:30:95;199:2819:85;11714:30:95;;;;;;;;-1:-1:-1;11714:30:95;;;11550:312;11756:4;;;199:2819:85;;11714:47:95;11710:109;;-1:-1:-1;11459:20:95;199:2819:85;;-1:-1:-1;;;;;;199:2819:85;-1:-1:-1;;;;;199:2819:85;;;;;;;;;11550:312:95;;;;;;11710:109;199:2819:85;;-1:-1:-1;;;11788:16:95;;;11714:30;;;;;;;-1:-1:-1;11714:30:95;;;;;;:::i;:::-;;;;;;11592:104;199:2819:85;;-1:-1:-1;;;11669:12:95;;199:2819:85;;11669:12:95;11597:45;;;;;;;;;;;;;;:::i;:::-;;;;11455:85;199:2819:85;;-1:-1:-1;;;11502:27:95;;;199:2819:85;;;;;;-1:-1:-1;;199:2819:85;;;;;;;;;:::i;:::-;;;3217:103:28;;;:::i;:::-;-1:-1:-1;;;;;199:2819:85;;;;;6112:23:95;;6108:79;;6273:6;199:2819:85;6206:13:95;;;;:::i;:::-;199:2819:85;;;-1:-1:-1;199:2819:85;;;;6273:6:95;:::i;:::-;199:2819:85;;;;;;;;;;;;6302:10:95;;6296:43;;199:2819:85;6296:43:95;1805:1:28;-1:-1:-1;;;;;;;;;;;199:2819:85;;;;;;;;;;;;;;6108:79:95;199:2819:85;;-1:-1:-1;;;6158:18:95;;199:2819:85;;6158:18:95;199:2819:85;;;;;;-1:-1:-1;;199:2819:85;;;;;;-1:-1:-1;199:2819:85;2546:64:96;199:2819:85;;;;-1:-1:-1;199:2819:85;;;;;;;;;;;;;;-1:-1:-1;;199:2819:85;;;;2058:22:96;199:2819:85;;;-1:-1:-1;;;;;199:2819:85;;;;;;;;;;;;;;-1:-1:-1;;199:2819:85;;;;;5173:21:96;;:::i;199:2819:85:-;;;;;;-1:-1:-1;;199:2819:85;;;;;;3217:103:28;;:::i;:::-;966:10:27;-1:-1:-1;199:2819:85;;;;;;;;;;1109:35:96;;199:2819:85;;4468:23:23;4464:108;;199:2819:85;;;;10692:21:95;10688:71;;199:2819:85;;10805:22:95;199:2819:85;;;;;;;;10805:22:95;1805:1:28;-1:-1:-1;;;;;;;;;;;199:2819:85;;4464:108:23;199:2819:85;;;;4514:47:23;;;;;;966:10:27;199:2819:85;4514:47:23;;199:2819:85;;;;;4514:47:23;199:2819:85;;;;;;-1:-1:-1;;199:2819:85;;;;;4803:22:96;;:::i;199:2819:85:-;;;;;;-1:-1:-1;;199:2819:85;;;;;;;;;:::i;:::-;3123:14:95;;:::i;:::-;3154:24;;;:::i;:::-;3181:29;;;;;:::i;:::-;199:2819:85;;;;;;;3235:1:95;199:2819:85;;;;;;;3213:33:95;;;:::i;:::-;199:2819:85;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;199:2819:85;;;;1888:24:96;199:2819:85;;;-1:-1:-1;;;;;199:2819:85;;;;;;;;;;;;;;-1:-1:-1;;199:2819:85;;;;5767:26:23;199:2819:85;;;;;;;:::i;:::-;;-1:-1:-1;199:2819:85;-1:-1:-1;;;;;;;;;;;199:2819:85;;3202:4:23;4919:24;199:2819:85;-1:-1:-1;199:2819:85;4919:24:23;199:2819:85;3202:4:23;:::i;:::-;5767:26;:::i;199:2819:85:-;;;;;;-1:-1:-1;;199:2819:85;;;;;;;;;;;;;-1:-1:-1;;;;;199:2819:85;;;;;;;;;;;;-1:-1:-1;;199:2819:85;;;;;;;675:39:96;199:2819:85;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;:::i;:::-;-1:-1:-1;;;;;449:5:82;199:2819:85;;435:10:82;:19;431:71;;1742:63:85;199:2819;;-1:-1:-1;199:2819:85;1742:15;199:2819;;;-1:-1:-1;199:2819:85;1742:63;:::i;199:2819::-;;;;;;-1:-1:-1;;199:2819:85;;;;;;;;;;;;;;;;;;;-1:-1:-1;;199:2819:85;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;-1:-1:-1;;;;;199:2819:85;;;;;;;;;;;;;;;:::i;:::-;1972:48:95;;199:2819:85;;;;;;;:::i;:::-;;;;;;;;;;;;;;2034:16:95;;2030:111;;199:2819:85;;2233:39:95;1057:70:87;2233:39:95;;4622:48:96;2196:77:95;2233:39;;;;2196:77;;:::i;:::-;2312:36;;4994:47:96;199:2819:85;2312:36:95;;;4994:47:96;;:::i;:::-;2389:37:95;;;4622:48:96;;:::i;:::-;1057:70:87;;:::i;:::-;199:2819:85;;;;;;;;;;;;;2030:111:95;2089:41;;;;-1:-1:-1;199:2819:85;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;4622:48:96;199:2819:85;2196:77:95;199:2819:85;1057:70:87;199:2819:85;;;:::i;:::-;;;;;2030:111:95;;;;;199:2819:85;;;;;;-1:-1:-1;;199:2819:85;;;;2357:1:24;199:2819:85;;;;;:::i;:::-;2303:62:24;;:::i;:::-;2357:1;:::i;199:2819:85:-;;;;;;-1:-1:-1;;199:2819:85;;;;;;;;;:::i;:::-;;;3217:103:28;;:::i;:::-;-1:-1:-1;;;;;199:2819:85;;4890:21:95;4886:75;;4975:11;;4971:73;;845:69:87;4803:22:96;;:::i;:::-;5173:21;;:::i;:::-;845:69:87;;;:::i;:::-;5180:10:95;199:2819:85;;;;5606:15:96;199:2819:85;;;;;5180:10:95;;;5606:33:96;;;:::i;:::-;5150:41:95;;5146:96;;5267:40;;;;;:::i;5146:96::-;199:2819:85;;-1:-1:-1;;;5214:17:95;;199:2819:85;;5214:17:95;4971:73;199:2819:85;;-1:-1:-1;;;5009:24:95;;199:2819:85;;5009:24:95;199:2819:85;;;;;;-1:-1:-1;;199:2819:85;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;199:2819:85;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;:::o;:::-;;7556:1:95;199:2819:85;;;;;;;:::o;:::-;;;;;;;;;;:::o;5256:193:96:-;-1:-1:-1;;;;;199:2819:85;-1:-1:-1;199:2819:85;;;5383:15:96;199:2819:85;;;;;5383:59:96;;5256:193;;5383:59;:::i;199:2819:85:-;;;;;;;;;;;:::o;:::-;;;;;;;;;;1167:340:71;;13510:30:95;1167:340:71;199:2819:85;1167:340:71;6893:76:25;;:::i;:::-;;;:::i;:::-;1805:1:28;-1:-1:-1;;;;;;;;;;;199:2819:85;-1:-1:-1;;;;;199:2819:85;;;;1376:73:71;;1167:340;199:2819:85;;;;:::i;:::-;13510:30:95;199:2819:85;;;13510:30:95;;;;;;:::i;:::-;199:2819:85;;;;-1:-1:-1;;;;;199:2819:85;13555:31:95;13551:88;;13653:20;;;;199:2819:85;;;;;;;;;;13653:25:95;13649:85;;13748:29;;;199:2819:85;;13748:29:95;;199:2819:85;13748:43:95;;-1:-1:-1;;;;;199:2819:85;;;13748:43:95;;13744:943;;1167:340:71;199:2819:85;;;15647:32:95;199:2819:85;14817:36:95;199:2819:85;;;14697:30:95;199:2819:85;;;;;;;;;;;;1398:1:71;199:2819:85;;-1:-1:-1;;;;;;199:2819:85;;;;;;-1:-1:-1;;;;;199:2819:85;;;;;;;;14697:30:95;13510;14747:13;;199:2819:85;;;;-1:-1:-1;;;;;;199:2819:85;-1:-1:-1;;;;;199:2819:85;;;;;;;;;14771:36:95;819:34:62;837:15;819:34;:::i;:::-;1805:1:28;199:2819:85;;-1:-1:-1;;;;199:2819:85;;;;;;-1:-1:-1;;;199:2819:85;;;;;;;;14771:36:95;199:2819:85;;;;;;1805:1:28;199:2819:85;;-1:-1:-1;;;;;199:2819:85;;;;;;-1:-1:-1;;;;;;199:2819:85;;;;;;;;14817:36:95;14864:42;199:2819:85;14883:23:95;;;199:2819:85;;;;;;;;;1398:1:71;199:2819:85;;;;;;;1398:1:71;199:2819:85;;14864:42:95;14917:38;199:2819:85;14934:21:95;;;199:2819:85;;;;;;;1398:1:71;199:2819:85;;;;;;;;;;;;1398:1:71;199:2819:85;;14917:38:95;14965:34;14980:19;;;199:2819:85;14965:34:95;199:2819:85;;14965:34:95;199:2819:85;-1:-1:-1;;;;;199:2819:85;;;;;;;15010:135:95;;1167:340:71;-1:-1:-1;15158:36:95;;;199:2819:85;-1:-1:-1;;;;;199:2819:85;;;;15154:157:95;;1167:340:71;-1:-1:-1;15324:35:95;;;199:2819:85;-1:-1:-1;;;;;199:2819:85;;;;15320:153:95;;1167:340:71;-1:-1:-1;15486:34:95;;;199:2819:85;-1:-1:-1;;;;;199:2819:85;;;;15482:152:95;;1167:340:71;-1:-1:-1;15647:32:95;199:2819:85;-1:-1:-1;;;;;199:2819:85;;;;;;;15643:145:95;;1167:340:71;:::o;15643:145:95:-;15709:68;;;:::i;:::-;;1167:340:71:o;15482:152:95:-;15550:73;;;:::i;:::-;;15482:152;;;15320:153;15389:73;;;:::i;:::-;;15320:153;;;15154:157;15224:76;;;:::i;:::-;;15154:157;;;15010:135;15073:61;;;:::i;:::-;;15010:135;;;13744:943;13811:36;;;199:2819:85;13811:50:95;;-1:-1:-1;;;;;199:2819:85;;;13811:50:95;;13807:405;;13744:943;14230:34;;;199:2819:85;14230:48:95;;-1:-1:-1;;;;;199:2819:85;;;14230:48:95;13744:943;14226:451;14302:21;;;199:2819:85;;14302:21:95;;14351:19;;;199:2819:85;14351:24:95;:74;;;14298:365;14347:150;;14298:365;;199:2819:85;15647:32:95;14298:365;14817:36;199:2819:85;;14298:365:95;;14226:451;;;;;;;13744:943;;14347:150;199:2819:85;-1:-1:-1;;;14460:14:95;;;;;14351:74;-1:-1:-1;14379:32:95;;;199:2819:85;14379:46:95;;-1:-1:-1;;;;;199:2819:85;;;14379:46:95;;14351:74;;14298:365;14525:19;;;199:2819:85;14525:24:95;;;:74;;;14298:365;14521:142;;14298:365;;199:2819:85;15647:32:95;14298:365;14817:36;199:2819:85;;14298:365:95;;;14525:74;-1:-1:-1;14553:32:95;;;199:2819:85;14553:46:95;;-1:-1:-1;;;;;199:2819:85;;;14553:46:95;;;14525:74;;13807:405;13885:23;;;199:2819:85;;13885:23:95;;13936:35;;;199:2819:85;13936:49:95;;-1:-1:-1;;;;;199:2819:85;;;13936:49:95;13807:405;13932:125;199:2819:85;-1:-1:-1;;;14020:14:95;;;;;13881:317;14085:35;;;199:2819:85;14085:49:95;;-1:-1:-1;;;;;199:2819:85;;;14085:49:95;14081:117;13807:405;14081:117;199:2819:85;-1:-1:-1;;;14165:14:95;;;;;13649:85;199:2819:85;;-1:-1:-1;;;13701:22:95;;;;;13551:88;199:2819:85;;-1:-1:-1;;;13609:19:95;;;;;1376:73:71;6961:1:25;6893:76;;;:::i;:::-;;;:::i;6961:1::-;1376:73:71;;;2492:191:95;-1:-1:-1;;;;;199:2819:85;-1:-1:-1;199:2819:85;;;5606:15:96;199:2819:85;;;;;5606:33:96;;;:::i;:::-;5173:21;;:::i;:::-;4803:22;;:::i;:::-;199:2819:85;1884:1:87;199:2819:85;;;;;;;1884:1:87;199:2819:85;;;;;;;8188:25:57;;;:::i;199:2819:85:-;;;;;;:::i;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::i;578:368::-;;;735:95;711:157;578:368;199:2819;;;;;766:63;;;;;;;;199:2819;766:63;;;199:2819;766:63;;;;;;:::i;:::-;735:95;:::i;:::-;766:63;199:2819;;;711:157;;;;;;:::i;:::-;879:61;;;578:368;:::o;879:61::-;199:2819;;;;;;;;766:63;912:17;;199:2819;766:63;912:17;;;;;:::i;199:2819::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;:::i;3612:132:96:-;819:34:62;837:15;819:34;:::i;:::-;3683:54:96;3703:17;199:2819:85;3684:36:96;199:2819:85;;;;;;;3684:36:96;;:::i;:::-;199:2819:85;;;3683:54:96;;:::i;:::-;199:2819:85;3612:132:96;:::o;3313:244::-;3418:17;199:2819:85;;;;;;;;;;;;;;3406:29:96;3402:85;;3503:47;3504:29;;;;:::i;3402:85::-;199:2819:85;;-1:-1:-1;;;3458:18:96;;;;;3217:103:28;;;;:::i;:::-;199:2819:85;;-1:-1:-1;;;;;199:2819:85;;;6521:23:95;;6517:79;;6650:11;;6646:70;;199:2819:85;6742:10:95;;;;;;-1:-1:-1;199:2819:85;;6887:49:95;;199:2819:85;;;;6864:6:95;;199:2819:85;;6821:18:95;;199:2819:85;;-1:-1:-1;;;;;199:2819:85;;;6821:18:95;6864:6;:::i;:::-;6887:49;199:2819:85;;6898:10:95;;;;6887:49;;;:::i;:::-;;;;3282:1:28;;1805;-1:-1:-1;;;;;;;;;;;199:2819:85;3716:283:28;6754:3:95;6790:9;6773:27;199:2819:85;6790:9:95;6783:17;6790:9;;;;;:::i;:::-;199:2819:85;6783:17:95;:::i;6773:27::-;6754:3;199:2819:85;6731:9:95;;6646:70;199:2819:85;;-1:-1:-1;;;6684:21:95;;;;;199:2819:85;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;199:2819:85;;;;;;;;;;;;;;;;;;;;;;:::o;1178:370::-;;;1336:96;1312:158;1178:370;199:2819;;;;;1367:64;;;;;;;;199:2819;1367:64;;;199:2819;1367:64;;;;;;:::i;199:2819::-;;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;-1:-1:-1;199:2819:85;;;;:::o;:::-;;;:::o;1818:400::-;199:2819;;-1:-1:-1;;;2026:75:85;;;;-1:-1:-1;;;;;199:2819:85;;;2026:75;;;199:2819;;;;;;;;;;;;;2026:75;;199:2819;;1818:400;1971:169;;1995:107;;2026:75;199:2819;2026:75;:::i;3405:215:24:-;-1:-1:-1;;;;;199:2819:85;;;;3489:22:24;;3485:91;;-1:-1:-1;;;;;;;;;;;199:2819:85;;-1:-1:-1;;;;;;199:2819:85;;;;;;;;3975:40:24;-1:-1:-1;;3975:40:24;3405:215::o;3485:91::-;199:2819:85;;-1:-1:-1;;;3534:31:24;;3509:1;3534:31;;;199:2819:85;;;3534:31:24;2731:227:95;;2871:34;2731:227;199:2819:85;-1:-1:-1;199:2819:85;2871:18:95;199:2819:85;;;-1:-1:-1;199:2819:85;;;;;;;;;;;;;;;;;2871:34:95;199:2819:85;;-1:-1:-1;199:2819:85;2907:11:95;199:2819:85;;;-1:-1:-1;199:2819:85;;2927:16:95;199:2819:85;;;-1:-1:-1;199:2819:85;;;1884:1:87;199:2819:85;;;;;;;1884:1:87;199:2819:85;;;;;;;8188:25:57;;;:::i;2224:792:85:-;;;;;2579:34;2416:45;2357:12;199:2819;2416:45;;;:::i;:::-;2503:33;;;;;:::i;:::-;2579:34;;:::i;:::-;199:2819;;;2628:30;;;:61;;;2224:792;2628:93;;;;2224:792;2624:386;;2224:792;;;:::o;2624:386::-;199:2819;;;;2744:255;199:2819;;;;;;;;;;:::i;:::-;;;2772:213;;;199:2819;;;;2772:213;;199:2819;;;;;;2744:255;;;2772:213;2744:255;;;199:2819;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;2628:93::-;199:2819;;;2693:28;;2628:93;;:61;199:2819;;;2662:27;;2628:61;;3326:384:28;-1:-1:-1;;;;;;;;;;;1847:1:28;199:2819:85;;3526:20:28;3522:88;;1847:1;199:2819:85;;3326:384:28:o;3522:88::-;199:2819:85;;-1:-1:-1;;;3569:30:28;;;;;11948:968:95;12135:10;199:2819:85;;;;5606:15:96;199:2819:85;;;;;;11948:968:95;;;819:34:62;837:15;819:34;:::i;:::-;12135:10:95;199:2819:85;;;;5606:15:96;199:2819:85;;;;;5606:33:96;;;:::i;:::-;199:2819:85;;;;;;;;;12119:93:95;12835:74;12119:93;;;12660:30;12119:93;;:::i;:::-;837:15:62;;12222:67:95;819:34:62;837:15;819:34;:::i;:::-;12259:29:95;4803:22:96;;;:::i;12222:67:95:-;837:15:62;;12299:68:95;819:34:62;837:15;819:34;:::i;:::-;12335:31:95;5173:21:96;;;:::i;12299:68:95:-;12394:14;;12769:34;12394:14;12769:25;12394:18;:14;;:::i;:::-;:18;:::i;:::-;12726:33;12445:18;;199:2819:85;;7528:11:95;199:2819:85;;;;;;;12445:18:95;199:2819:85;12502:23:95;;199:2819:85;;12502:16:95;199:2819:85;;;;;;;12502:23:95;199:2819:85;390:70:87;;;;;:::i;:::-;12660:30:95;;;;;;:::i;:::-;12639:18;;199:2819:85;;7528:11:95;199:2819:85;;;;;;;12639:18:95;199:2819:85;12726:33:95;:::i;:::-;12700:23;;199:2819:85;;12502:16:95;199:2819:85;;;;;;;12700:23:95;199:2819:85;;;12769:18:95;199:2819:85;;;;;;;12769:25:95;199:2819:85;;;;;;;;;;;;;;;;12769:34:95;:50;199:2819:85;;;12769:50:95;:::i;:::-;199:2819:85;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;199:2819:85;;;;12135:10:95;;199:2819:85;;12835:74:95;11948:968::o;14291:213:58:-;199:2819:85;14369:24:58;;;;14365:103;;199:2819:85;14291:213:58;:::o;14365:103::-;199:2819:85;;;;14416:41:58;;;;;;14447:2;14416:41;;;199:2819:85;;;;;14416:41:58;199:2819:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::o;7558:604:86:-;;199:2819:85;;7686:17:86;7682:83;;199:2819:85;7789:27:86;199:2819:85;7789:27:86;199:2819:85;;7789:27:86;;;;;;:::i;:::-;7860:14;;;:::i;:::-;199:2819:85;;;;;;;;;;;;;;;;7888:22:86;;;7884:77;;7975:21;-1:-1:-1;7975:84:86;;;;7558:604;7971:139;;;;8127:28;;;;:::i;7971:139::-;7789:27;8082:17;;;199:2819:85;8075:24:86;:::o;7975:84::-;199:2819:85;;;8009:16:86;4622:13:96;199:2819:85;8009:16:86;:::i;:::-;199:2819:85;;;8001:24:86;:57;;;;;7975:84;;;;;;;8001:57;8029:29;8038:8;;;8029:18;8038:8;8029:23;8038:8;;:::i;:::-;8029:18;:::i;:23::-;199:2819:85;;;;8029:29:86;;8001:57;;;;7884:77;7933:17;;;7789:27;7933:17;;;199:2819:85;7926:24:86;:::o;7682:83::-;7726:28;;;;:::i;7558:604::-;;199:2819:85;;7686:17:86;7682:83;;199:2819:85;7789:27:86;199:2819:85;7789:27:86;199:2819:85;;7789:27:86;;;;;;:::i;:::-;7860:14;;;:::i;:::-;199:2819:85;;;;;;;;;;;;;;;;7888:22:86;;;7884:77;;7975:21;-1:-1:-1;7975:84:86;;;;7558:604;7971:139;;;;8127:28;;;;:::i;7975:84::-;199:2819:85;;;8009:16:86;4994:12:96;199:2819:85;8009:16:86;:::i;:::-;199:2819:85;;;8001:24:86;:57;;;;;7975:84;;;;;;;8001:57;8029:29;8038:8;;;8029:18;8038:8;8029:23;8038:8;;:::i;:::-;8029:18;:::i;:29::-;;8001:57;;;;7682:83;7726:28;;;;:::i;7558:604::-;;199:2819:85;;7686:17:86;7682:83;;199:2819:85;7789:27:86;199:2819:85;7789:27:86;199:2819:85;;7789:27:86;;;;;;:::i;:::-;7860:14;;;;;:::i;:::-;199:2819:85;;;;;;;;;;;;;;;;7888:22:86;;;7884:77;;7975:21;-1:-1:-1;7975:84:86;;;;7558:604;7971:139;;;;8127:28;;;;:::i;7971:139::-;8082:17;;7789:27;8082:17;199:2819:85;8075:24:86;:::o;7975:84::-;199:2819:85;;;8009:16:86;199:2819:85;;8009:16:86;:::i;:::-;199:2819:85;;;8001:24:86;:57;;;;;7975:84;;;;;;;8001:57;8029:29;8038:8;;;8029:18;8038:8;8029:23;8038:8;;:::i;:::-;8029:18;;:::i;:29::-;;8001:57;;;;7884:77;7933:17;;;;;7789:27;7933:17;199:2819:85;7926:24:86;:::o;7682:83::-;7726:28;;;;:::i;4148:103:23:-;966:10:27;-1:-1:-1;199:2819:85;;;;;;;;;675:39:96;;199:2819:85;;3901:31:23;199:2819:85;;4468:23:23;4464:108;;4148:103;:::o;:::-;966:10:27;-1:-1:-1;199:2819:85;;;;;;;;;966:38:96;;199:2819:85;;3901:31:23;199:2819:85;4148:103:23;966:10:27;-1:-1:-1;199:2819:85;;;;;;;;;821:37:96;;199:2819:85;;3901:31:23;199:2819:85;4148:103:23;-1:-1:-1;199:2819:85;;;-1:-1:-1;;;;;;;;;;;199:2819:85;;;;;;;;966:10:27;199:2819:85;;;;;;;;;3901:31:23;199:2819:85;7270:387:23;-1:-1:-1;;;;;199:2819:85;;1398:1:71;199:2819:85;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2887:71:23;199:2819:85;;;;1398:1:71;199:2819:85;;;;;;;;;;;-1:-1:-1;;;;;199:2819:85;;;;;;;;;;-1:-1:-1;;199:2819:85;7509:4:23;199:2819:85;;;966:10:27;;-1:-1:-1;;;;;199:2819:85;-1:-1:-1;7532:40:23;-1:-1:-1;;7532:40:23;7509:4;7586:11;:::o;7432:219::-;7628:12;;1398:1:71;7628:12:23;:::o;7270:387::-;-1:-1:-1;;;;;199:2819:85;;-1:-1:-1;199:2819:85;;;;;;;;;675:39:96;;-1:-1:-1;;;;;;;;;;;2887:71:23;199:2819:85;;3901:31:23;199:2819:85;;;;-1:-1:-1;199:2819:85;;;;;;;;;;;-1:-1:-1;;;;;199:2819:85;;;;;;;;;;-1:-1:-1;;199:2819:85;7509:4:23;199:2819:85;;;966:10:27;;-1:-1:-1;;;;;199:2819:85;;7532:40:23;-1:-1:-1;;7532:40:23;7509:4;7586:11;:::o;7432:219::-;7628:12;;;-1:-1:-1;7628:12:23;:::o;7270:387::-;-1:-1:-1;;;;;199:2819:85;;-1:-1:-1;199:2819:85;;;;;;;;;821:37:96;;-1:-1:-1;;;;;;;;;;;2887:71:23;199:2819:85;;3901:31:23;199:2819:85;7270:387:23;-1:-1:-1;;;;;199:2819:85;;-1:-1:-1;199:2819:85;;;;;;;;;966:38:96;;-1:-1:-1;;;;;;;;;;;2887:71:23;199:2819:85;;3901:31:23;199:2819:85;7270:387:23;-1:-1:-1;;;;;199:2819:85;;-1:-1:-1;199:2819:85;;;;;;;;;1109:35:96;;-1:-1:-1;;;;;;;;;;;2887:71:23;199:2819:85;;3901:31:23;199:2819:85;7270:387:23;-1:-1:-1;199:2819:85;;;-1:-1:-1;;;;;;;;;;;199:2819:85;;;;;;;;-1:-1:-1;;;;;199:2819:85;;;;;;;;;;;;3901:31:23;199:2819:85;7892:388:23;-1:-1:-1;199:2819:85;;;-1:-1:-1;;;;;;;;;;;199:2819:85;;;;;;;;-1:-1:-1;;;;;199:2819:85;;;;;;;;;;;;;;;;-1:-1:-1;199:2819:85;;;;;;;;;;;-1:-1:-1;;;;;199:2819:85;;;;;;;;;;-1:-1:-1;;199:2819:85;;;966:10:27;;-1:-1:-1;;;;;199:2819:85;;8155:40:23;-1:-1:-1;;8155:40:23;199:2819:85;8209:11:23;:::o;1702:188:45:-;199:2819:85;;-1:-1:-1;;;1829:53:45;;;;-1:-1:-1;;;;;199:2819:85;;;1829:53:45;;;199:2819:85;;;;;;;;;;;;;;;;;1829:53:45;;;199:2819:85;;;;;;;-1:-1:-1;;;;;199:2819:85;;;;;1829:53:45;199:2819:85;;;1829:53:45;:::i;199:2819:85:-;9219:12:86;199:2819:85;;;;;;9219:12:86;-1:-1:-1;199:2819:85;-1:-1:-1;;;;;;;;;;;199:2819:85;;-1:-1:-1;199:2819:85;:::o;:::-;9219:12:86;199:2819:85;;;;;;9219:12:86;-1:-1:-1;199:2819:85;-1:-1:-1;;;;;;;;;;;199:2819:85;;-1:-1:-1;199:2819:85;:::o;:::-;;;;;;;;-1:-1:-1;199:2819:85;;-1:-1:-1;199:2819:85;;;-1:-1:-1;199:2819:85;:::o;:::-;6360:12:86;199:2819:85;-1:-1:-1;;;199:2819:85;;;;;;;;;6360:12:86;199:2819:85;;;;;;6360:12:86;-1:-1:-1;199:2819:85;-1:-1:-1;;;;;;;;;;;199:2819:85;;:::o;:::-;6360:12:86;199:2819:85;-1:-1:-1;;;199:2819:85;;;;;;;;;6360:12:86;199:2819:85;;;;;;6360:12:86;-1:-1:-1;199:2819:85;-1:-1:-1;;;;;;;;;;;199:2819:85;;:::o;:::-;;;;;-1:-1:-1;;;199:2819:85;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;6246:584:86;;;;6360:12;199:2819:85;;;6360:24:86;;6356:75;;6246:584;6474:30;;;:::i;:::-;199:2819:85;;;;;;6578:12:86;;;:::i;:::-;6604:24;;;;6246:584;-1:-1:-1;6600:188:86;;;-1:-1:-1;;;199:2819:85;;;;;;;;;-1:-1:-1;199:2819:85;;;-1:-1:-1;199:2819:85;;;;;;6798:25:86;199:2819:85;6246:584:86:o;6600:188::-;8167:38:60;;-1:-1:-1;;;;;199:2819:85;;-1:-1:-1;8167:38:60;:::i;:::-;6753:24:86;;;;;:::i;:::-;6798:25;6246:584;:::o;6604:24::-;199:2819:85;;;;;;6614:14:86;;-1:-1:-1;6604:24:86;;;6356:75;-1:-1:-1;;;199:2819:85;;;;;;;;;;;;;;;;-1:-1:-1;199:2819:85;;;;-1:-1:-1;;;;;;;;;;;199:2819:85;;6356:75:86;;;6246:584;;;;6360:12;199:2819:85;;;6360:24:86;;6356:75;;6246:584;6474:30;;;:::i;:::-;199:2819:85;;;;;;6578:12:86;;;:::i;:::-;6604:24;;;;6246:584;-1:-1:-1;6600:188:86;;;-1:-1:-1;;;199:2819:85;;;;;;;;;-1:-1:-1;199:2819:85;;;-1:-1:-1;199:2819:85;;;;;;6798:25:86;199:2819:85;6246:584:86:o;6600:188::-;8167:38:60;;-1:-1:-1;;;;;199:2819:85;;-1:-1:-1;8167:38:60;:::i;:::-;6753:24:86;;;;;:::i;6604:::-;199:2819:85;;;;;;6614:14:86;;-1:-1:-1;6604:24:86;;;6356:75;-1:-1:-1;;;199:2819:85;;;;;;;;;;;;;;;;-1:-1:-1;199:2819:85;;;;-1:-1:-1;;;;;;;;;;;199:2819:85;;6356:75:86;;;6246:584;;;;;6360:12;;;199:2819:85;;;6360:24:86;;6356:75;;6246:584;6474:30;;;;;:::i;:::-;199:2819:85;;;;;;6578:12:86;;;;:::i;:::-;6604:24;;;;6246:584;-1:-1:-1;6600:188:86;;;-1:-1:-1;;;;;199:2819:85;;;;;;;6644:21:86;;;:29;:21;;:::i;6600:188::-;6753:24;;199:2819:85;;8167:38:60;;-1:-1:-1;;;;;199:2819:85;;;;;8167:38:60;:::i;:::-;6753:24:86;;;:::i;6604:::-;199:2819:85;;;;;;6614:14:86;;-1:-1:-1;6604:24:86;;;6356:75;-1:-1:-1;;;199:2819:85;;;;;;6360:12:86;199:2819:85;;;;;;;:::i;:::-;;;;;;;;;;;;;;6356:75:86;;;199:2819:85;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::o;8406:869:86:-;1113:13:85;199:2819;8620:15:86;8578:11;8645:18;8678:7;8684:1;8678:7;;8674:241;;8406:869;8939:60;;;;:::i;:::-;9014:8;;9010:62;;199:2819:85;9130:48:86;9170:7;;;:::i;:::-;1113:13:85;13267:109:86;;-1:-1:-1;;;;;;;;;;;13267:109:86;13089:293;;9130:48;199:2819:85;:::i;:::-;;9252:15:86;9259:7;199:2819:85;9219:31:86;199:2819:85;9232:17:86;199:2819:85;;;;;;;;9232:17:86;;199:2819:85;-1:-1:-1;;;;;199:2819:85;;;;9219:31:86;:::i;:::-;199:2819:85;;;;;;;;;9259:7:86;;:::i;:::-;199:2819:85;;;;9252:15:86;9176:1;;9188:80;;8406:869::o;9010:62::-;9038:23;8578:11;9038:23;8578:11;9038:23;8578:11;9038:23;8578:11;9038:23;:::o;8674:241::-;8721:14;;;;;:::i;:::-;199:2819:85;;;;;;;1113:13;8578:11:86;13267:109;-1:-1:-1;;;;;;;;;;;13267:109:86;;199:2819:85;8939:60:86;;13267:109;199:2819:85;;;;;;;8753:55:86;199:2819:85;;;8828:10:86;8749:156;8674:241;;8749:156;8883:7;;;;;;:::i;:::-;8749:156;8674:241;;8406:869;514:12:85;199:2819;8620:15:86;8578:11;8645:18;8678:7;8684:1;8678:7;;8674:241;;8406:869;8939:60;;;;:::i;:::-;9014:8;;9010:62;;199:2819:85;9130:48:86;9170:7;;;:::i;:::-;514:12:85;13267:109:86;;-1:-1:-1;;;;;;;;;;;13267:109:86;13089:293;;199:2819:85;;9252:15:86;9259:7;199:2819:85;9219:31:86;199:2819:85;9232:17:86;199:2819:85;;;;;;;;9219:31:86;:::i;8674:241::-;8721:14;;;;;:::i;:::-;199:2819:85;;;;;;;514:12;8578:11:86;13267:109;-1:-1:-1;;;;;;;;;;;13267:109:86;;199:2819:85;8939:60:86;;13267:109;199:2819:85;;;;;;;8753:55:86;199:2819:85;;;8828:10:86;8749:156;8674:241;;8749:156;8883:7;;;;;;:::i;:::-;8749:156;8674:241;;8406:869;;;199:2819:85;;8620:15:86;8578:11;8645:18;8678:7;8684:1;8678:7;;8674:241;;8406:869;8939:60;;;;;:::i;:::-;9014:8;;;9010:62;;9252:15;9259:7;199:2819:85;9219:31:86;199:2819:85;9130:48:86;9170:7;;;:::i;:::-;9130:48;13267:109;;;;;;13089:293;;199:2819:85;;9176:1:86;199:2819:85;9232:17:86;199:2819:85;;;;;;;;9232:17:86;;199:2819:85;-1:-1:-1;;;;;199:2819:85;;;;9219:12:86;;:31;:::i;9010:62::-;8578:11;;-1:-1:-1;8578:11:86;;-1:-1:-1;8578:11:86;;;;9038:23::o;8674:241::-;8721:14;;;;;:::i;:::-;199:2819:85;;;;;;;8939:60:86;13267:109;;8578:11;13267:109;8753:55;8759:49;13267:109;;8578:11;13267:109;;199:2819:85;;;;;;8753:55:86;199:2819:85;;;8753:55:86;13267:109;;;8828:10;8749:156;8674:241;;8749:156;8883:7;;;;;;:::i;:::-;8749:156;8674:241;;199:2819:85;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;:::o;525:595:82:-;;-1:-1:-1;199:2819:85;;;;;716:88:82;;;;;199:2819:85;716:88:82;;;;;;;;;783:4;716:88;;;199:2819:85;;;;;;;;;;;:::i;716:88:82:-;698:107;;;;;;;:::i;:::-;199:2819:85;;857:45:82;;;;;;;;199:2819:85;;;;;857:45:82;;;199:2819:85;;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;199:2819:85;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;-1:-1:-1;199:2819:85;;;;;;;;;;916:8:82;912:175;;1096:17;525:595;:::o;912:175::-;199:2819:85;;;944:22:82;;;940:36;;990:87;;2658:162:24;-1:-1:-1;;;;;;;;;;;199:2819:85;-1:-1:-1;;;;;199:2819:85;966:10:27;2717:23:24;2713:101;;2658:162::o;2713:101::-;199:2819:85;;-1:-1:-1;;;2763:40:24;;966:10:27;2763:40:24;;;199:2819:85;;;2763:40:24;2557:104:57;;2641:5;;;;;;:13;2557:104;:::o;2641:13::-;;;2557:104;:::o;199:2819:85:-;;;;;;;:::o;3803:4116:57:-;;;199:2819:85;;;;-1:-1:-1;;3803:4116:57;;4383:131;;;;;;;;;;;;4595:10;;4591:368;;5065:20;;;;5061:88;;5435:300;;;199:2819:85;-1:-1:-1;199:2819:85;5954:31:57;;5999:371;;;6813:1;199:2819:85;;6794:1:57;199:2819:85;6793:21:57;199:2819:85;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5999:371:57;;;;-1:-1:-1;5999:371:57;;;5435:300;;;;;;199:2819:85;5435:300:57;;5999:371;6436:21;199:2819:85;3803:4116:57;:::o;5061:88::-;199:2819:85;;-1:-1:-1;;;5112:22:57;;;;;4591:368;4925:19;;;;;;;:::i;1303:160:45:-;199:2819:85;;-1:-1:-1;;;1412:43:45;;;;-1:-1:-1;;;;;199:2819:85;;;1412:43:45;;;199:2819:85;;;;;;;;;1412:43:45;;;;;;199:2819:85;1412:43:45;:::i;:::-;;:::i;12922:460:95:-;;13024:14;;:::i;:::-;13015:23;;;13011:75;;-1:-1:-1;199:2819:85;;;13100:20:95;199:2819:85;;;;;;;;13128:10:95;199:2819:85;;;;;;;;;;13096:93:95;;13208:32;13128:10;13208:32;;:::i;:::-;13255:11;;;13251:68;;-1:-1:-1;199:2819:85;;;13100:20:95;199:2819:85;;;;;;;;13128:10:95;199:2819:85;;;;;;;;;-1:-1:-1;;199:2819:85;13371:4:95;199:2819:85;;;12922:460:95:o;13251:68::-;199:2819:85;;-1:-1:-1;;;13289:19:95;;;;;13096:93;199:2819:85;;-1:-1:-1;;;13162:16:95;;;;;13011:75;199:2819:85;;-1:-1:-1;;;13061:14:95;;;;;10580:184:86;5173:12:96;199:2819:85;10303:8:60;;;:63;-1:-1:-1;10303:63:60;-1:-1:-1;;;;;199:2819:85;;10726:7:86;199:2819:85;;10736:12:86;199:2819:85;;;;;;10736:12:86;-1:-1:-1;199:2819:85;-1:-1:-1;;;;;;;;;;;199:2819:85;;10580:184:86;:::o;10726:31::-;;-1:-1:-1;10580:184:86;:::o;10303:63:60:-;199:2819:85;;;;;;;;5173:12:96;-1:-1:-1;13267:109:86;;;199:2819:85;;;10303:63:60;;10580:184:86;4803:13:96;199:2819:85;10303:8:60;;;:63;-1:-1:-1;10303:63:60;-1:-1:-1;;;;;199:2819:85;;10726:7:86;199:2819:85;;10736:12:86;199:2819:85;;;;;;10736:12:86;-1:-1:-1;199:2819:85;-1:-1:-1;;;;;;;;;;;199:2819:85;;10580:184:86;:::o;10303:63:60:-;199:2819:85;;;;;;;;4803:13:96;-1:-1:-1;13267:109:86;;;199:2819:85;;;10303:63:60;;10580:184:86;199:2819:85;;10303:8:60;;;:63;-1:-1:-1;10303:63:60;-1:-1:-1;;;;;199:2819:85;;10726:7:86;199:2819:85;;10736:12:86;:17;:12;;:17;:::i;10303:63:60:-;199:2819:85;;;;;;;;;;13267:109:86;-1:-1:-1;13267:109:86;;-1:-1:-1;13267:109:86;;;199:2819:85;;;10303:63:60;;1662:280:87;;;1884:1;199:2819:85;;;;;;;1884:1:87;199:2819:85;;;;;;;8188:25:57;;;:::i;6999:207:86:-;4622:13:96;199:2819:85;9594:15:60;-1:-1:-1;9619:18:60;9652:7;9658:1;9652:7;;9648:234;;6999:207:86;9906:53:60;;;;:::i;:::-;9977:8;;;:63;-1:-1:-1;9977:63:60;-1:-1:-1;;;;;199:2819:85;;7168:7:86;199:2819:85;;7178:17:86;199:2819:85;7178:17:86;;:::i;9977:63:60:-;9992:41;10025:7;9992:48;10025:7;;:::i;9992:41::-;199:2819:85;;;;;9992:48:60;9977:63;;9648:234;9695:14;;;;;:::i;:::-;199:2819:85;;;;;;;9906:53:60;13267:109:86;4622:13:96;-1:-1:-1;13267:109:86;199:2819:85;13267:109:86;;-1:-1:-1;;;;;;;;;;;13267:109:86;199:2819:85;;;;;9727:48:60;9723:149;199:2819:85;;;9795:10:60;9723:149;9648:234;;9723:149;9850:7;;;;;;:::i;:::-;9723:149;9648:234;;6999:207:86;4994:12:96;199:2819:85;9594:15:60;-1:-1:-1;9619:18:60;9652:7;9658:1;9652:7;;9648:234;;6999:207:86;9906:53:60;;;;:::i;:::-;9977:8;;;:63;-1:-1:-1;9977:63:60;-1:-1:-1;;;;;199:2819:85;;7168:7:86;199:2819:85;;7178:17:86;199:2819:85;7178:17:86;;:::i;9977:63:60:-;9992:41;10025:7;9992:48;10025:7;;:::i;9992:48::-;9977:63;;9648:234;9695:14;;;;;:::i;:::-;199:2819:85;;;;;;;9906:53:60;13267:109:86;4994:12:96;-1:-1:-1;13267:109:86;199:2819:85;13267:109:86;;-1:-1:-1;;;;;;;;;;;13267:109:86;199:2819:85;;;;;9727:48:60;9723:149;199:2819:85;;;9795:10:60;9723:149;9648:234;;9723:149;9850:7;;;;;;:::i;:::-;9723:149;9648:234;;6999:207:86;;199:2819:85;;9594:15:60;-1:-1:-1;9619:18:60;9652:7;9658:1;9652:7;;9648:234;;6999:207:86;9906:53:60;;;;;:::i;:::-;9977:8;;;:63;-1:-1:-1;9977:63:60;;-1:-1:-1;;;;;199:2819:85;;7168:7:86;199:2819:85;;;7178:12:86;;:17;:12;;:17;:::i;9977:63:60:-;9992:41;10025:7;9992:48;10025:7;;:::i;:::-;9992:41;13267:109:86;;;;;;13089:293;;9992:48:60;9977:63;;;9648:234;9695:14;;;;;:::i;:::-;199:2819:85;;;;;;;9906:53:60;13267:109:86;;-1:-1:-1;13267:109:86;199:2819:85;13267:109:86;;;-1:-1:-1;13267:109:86;;199:2819:85;;;;;9727:48:60;9723:149;199:2819:85;;;9795:10:60;9723:149;9648:234;;9723:149;9850:7;;;;;;:::i;:::-;9723:149;9648:234;;199:2819:85;;;;;;;:::i;:::-;-1:-1:-1;199:2819:85;;;;;;;:::o;11486:272:86:-;199:2819:85;;:::i;:::-;;;;:::i;:::-;;4622:13:96;199:2819:85;;;;;;;;4622:13:96;-1:-1:-1;199:2819:85;-1:-1:-1;;;;;;;;;;;199:2819:85;;:::i;:::-;;;;;;;;;;;;11731:17:86;;199:2819:85;;11718:12:86;199:2819:85;;;;;;11718:12:86;-1:-1:-1;199:2819:85;-1:-1:-1;;;;;;;;;;;199:2819:85;;;;;;;;:::i;:::-;;;;11672:79:86;;199:2819:85;11486:272:86;:::o;:::-;199:2819:85;;:::i;:::-;;;;:::i;:::-;;4994:12:96;199:2819:85;;;;;;;;4994:12:96;-1:-1:-1;199:2819:85;-1:-1:-1;;;;;;;;;;;199:2819:85;;:::i;:::-;;;;;;;;;;;;11731:17:86;;199:2819:85;;11718:12:86;199:2819:85;;;;;;11718:12:86;-1:-1:-1;199:2819:85;-1:-1:-1;;;;;;;;;;;199:2819:85;;;;;;;;:::i;11486:272:86:-;;199:2819:85;11308:22:60;11718:31:86;11486:272;199:2819:85;;:::i;:::-;;;;:::i;:::-;;11308:22:60;;:::i;:::-;199:2819:85;;:::i;:::-;;11718:12:86;199:2819:85;;;;;11731:17:86;199:2819:85;;;;;11731:17:86;;199:2819:85;;11718:12:86;;:31;:::i;:::-;199:2819:85;;;;;;;;;:::i;:::-;;;;;;11731:17:86;11672:79;;199:2819:85;11486:272:86;:::o;4059:629:45:-;2847:1:46;4059:629:45;3510:55:46;4059:629:45;199:2819:85;;;;;;3462:31:46;;;;;;;;;;;;:::i;:::-;3510:55;;;:::i;:::-;199:2819:85;;4551:22:45;;;;:57;;;;4059:629;4547:135;;;;4059:629;:::o;4547:135::-;199:2819:85;;;;4631:40:45;;;;;;;;;199:2819:85;4631:40:45;4551:57;4578:30;;;3462:31:46;4578:30:45;;;;;;;;:::i;:::-;4577:31;4551:57;;;;1258:280:87;;;199:2819:85;;;;;;;;;;;;;;;;8188:25:57;;;;;:::i;:::-;8257;;;;;;8223:101;;1258:280:87;:::o;8223:101:57:-;199:2819:85;;;;;;;;1258:280:87;:::o;10552:388:60:-;5173:12:96;199:2819:85;10728:8:60;;;10752:20;10690:17;10752:20;10690:17;10752:20;10690:17;10752:20;:::o;10724:210::-;199:2819:85;;;;;;;;13267:109:86;199:2819:85;13267:109:86;5173:12:96;10690:17:60;13267:109:86;;199:2819:85;:::i;:::-;;;;;;;13267:109:86;199:2819:85;;;;;10911:11:60;;199:2819:85;;10886:37:60;10870:1;10886:37;;;:::o;10552:388::-;4803:13:96;199:2819:85;10728:8:60;;;10752:20;10690:17;10752:20;10690:17;10752:20;10690:17;10752:20;:::o;10724:210::-;199:2819:85;;;;;;;;13267:109:86;199:2819:85;13267:109:86;4803:13:96;10690:17:60;13267:109:86;;199:2819:85;:::i;10552:388:60:-;199:2819:85;;10728:8:60;;;10752:20;;10690:17;10752:20;10690:17;10752:20;10690:17;10752:20;:::o;10724:210::-;199:2819:85;;;;;;;;;;;13267:109:86;10690:17:60;13267:109:86;;10690:17:60;13267:109:86;;;199:2819:85;:::i;8587:1642:57:-;8658:6;;8654:45;;9401:7;10201:10;10142:26;10093;10044;9995;9946;9897;9848;199:2819:85;10189:23:57;9401:7;8663:1;199:2819:85;;;;10826:16:57;10822:99;;8587:1642;199:2819:85;;;;10938:15:57;10934:96;;8587:1642;199:2819:85;;;;11047:15:57;11043:96;;8587:1642;199:2819:85;;;;11156:15:57;11152:96;;8587:1642;199:2819:85;;;;11265:14:57;11261:93;;8587:1642;199:2819:85;;;;11371:14:57;11367:93;;8587:1642;199:2819:85;;;;11477:14:57;11473:93;;8587:1642;199:2819:85;;;11579:64:57;;8587:1642;199:2819:85;;;9858:10:57;;;;:::i;:::-;199:2819:85;;;;;9848:26:57;9907:10;;;;:::i;9897:26::-;9956:10;;;;:::i;9946:26::-;10005:10;;;;:::i;9995:26::-;10054:10;;;;:::i;10044:26::-;10103:10;;;;:::i;10093:26::-;10152:10;;;;:::i;10142:26::-;10201:10;;;:::i;:::-;10189:23;;:::i;11579:64::-;199:2819:85;;11579:64:57;;11473:93;199:2819:85;11511:11:57;;199:2819:85;;11473:93:57;;;;11367;199:2819:85;11405:11:57;;199:2819:85;;11367:93:57;;;;11261;199:2819:85;11299:11:57;;199:2819:85;;11261:93:57;;;;11152:96;199:2819:85;11191:12:57;;199:2819:85;;11152:96:57;;;;11043;199:2819:85;11082:12:57;;199:2819:85;;11043:96:57;;;;10934;199:2819:85;10973:12:57;;199:2819:85;;10934:96:57;;;;10822:99;10862:13;;;199:2819:85;10822:99:57;;;;12497:447:86;12694:10;;;;;12926:11;;12497:447;:::o;12687:230::-;12734:23;;;;;;:::i;:::-;13267:109;1113:13:85;-1:-1:-1;13267:109:86;199:2819:85;13267:109:86;;-1:-1:-1;;;;;;;;;;;13267:109:86;199:2819:85;;;;;-1:-1:-1;12771:136:86;199:2819:85;;;12830:10:86;12771:136;;12687:230;;;12771:136;199:2819:85;;12891:1:86;199:2819:85;;;;;;12771:136:86;199:2819:85;;:::i;12497:447:86:-;12694:10;;;;;12926:11;;12497:447;:::o;12687:230::-;12734:23;;;;;;:::i;:::-;13267:109;514:12:85;-1:-1:-1;13267:109:86;199:2819:85;13267:109:86;;-1:-1:-1;;;;;;;;;;;13267:109:86;199:2819:85;;;;;-1:-1:-1;12771:136:86;199:2819:85;;;12830:10:86;12771:136;;12687:230;;;12771:136;199:2819:85;;12891:1:86;199:2819:85;;;;;;12771:136:86;199:2819:85;;:::i;12497:447:86:-;;12694:10;;;;;;12926:11;;;12497:447;:::o;12687:230::-;12734:23;;;;;;;:::i;:::-;13267:109;;-1:-1:-1;13267:109:86;199:2819:85;13267:109:86;;;-1:-1:-1;13267:109:86;;199:2819:85;;;;;-1:-1:-1;12771:136:86;199:2819:85;;;12830:10:86;12771:136;;12687:230;;;;12771:136;199:2819:85;;12891:1:86;199:2819:85;;;;;;12771:136:86;199:2819:85;;:::i;7084:141:25:-;199:2819:85;-1:-1:-1;;;;;;;;;;;199:2819:85;;;;7150:18:25;7146:73;;7084:141::o;7146:73::-;199:2819:85;;-1:-1:-1;;;7191:17:25;;;;;199:2819:85;5173:12:96;199:2819:85;;-1:-1:-1;;;199:2819:85;;;;;;;;;5173:12:96;199:2819:85;;;;;;5173:12:96;-1:-1:-1;199:2819:85;;;;;;;;;;-1:-1:-1;;199:2819:85;;;;;;;-1:-1:-1;;;;;;;;;;;199:2819:85;;;;:::o;:::-;4803:13:96;199:2819:85;;-1:-1:-1;;;199:2819:85;;;;;;;;;4803:13:96;199:2819:85;;;;;;4803:13:96;-1:-1:-1;199:2819:85;;;;;;;;;;-1:-1:-1;;199:2819:85;;;;;;;-1:-1:-1;;;;;;;;;;;199:2819:85;;;;:::o;:::-;;;-1:-1:-1;;;199:2819:85;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;199:2819:85;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;11513:870:60;5173:12:96;199:2819:85;11513:870:60;;;199:2819:85;11672:7:60;;;;199:2819:85;11775:28:60;11795:7;;;:::i;199:2819:85:-;;;;;;;;;;-1:-1:-1;;11873:91:60;;199:2819:85;12233:11:60;199:2819:85;;;12027:16:60;199:2819:85;;;;;;;12027:16:60;;;;12083:7;12063:28;12083:7;12063:43;12083:7;;:::i;12063:28::-;199:2819:85;;;;;;;;;;;;;;;;;12063:43:60;12233:11;199:2819:85;-1:-1:-1;;;;;199:2819:85;;;12023:189:60;199:2819:85;;12145:52:60;199:2819:85;;12155:41:60;199:2819:85;;:::i;:::-;;;;;;;;12155:41:60;-1:-1:-1;;;;;199:2819:85;;12155:41:60;;;199:2819:85;12145:52:60;:::i;:::-;12023:189;;11873:91;199:2819:85;;-1:-1:-1;;;11919:30:60;;;;;11668:709;12283:52;199:2819:85;;12293:41:60;199:2819:85;;:::i;12293:41:60:-;-1:-1:-1;;;;;199:2819:85;;12293:41:60;;;199:2819:85;12145:52:60;:::i;12283:::-;11678:1;12349:17;;:::o;11513:870::-;4803:13:96;199:2819:85;11513:870:60;;;199:2819:85;11672:7:60;;;;199:2819:85;11775:28:60;11795:7;;;:::i;199:2819:85:-;;;;;;;;;;-1:-1:-1;;11873:91:60;;199:2819:85;12233:11:60;199:2819:85;;;12027:16:60;199:2819:85;;;;;;;12027:16:60;;;;12083:7;12063:28;12083:7;12063:43;12083:7;;:::i;12023:189::-;199:2819:85;;12145:52:60;199:2819:85;;12155:41:60;199:2819:85;;:::i;12155:41:60:-;-1:-1:-1;;;;;199:2819:85;;12155:41:60;;;199:2819:85;12145:52:60;:::i;11668:709::-;12283:52;199:2819:85;;12293:41:60;199:2819:85;;:::i;12293:41:60:-;-1:-1:-1;;;;;199:2819:85;;12293:41:60;;;199:2819:85;12145:52:60;:::i;11513:870::-;199:2819:85;;11513:870:60;;;199:2819:85;11513:870:60;11672:7;;;;199:2819:85;11775:28:60;11795:7;;;:::i;199:2819:85:-;;;;;;;;;;;;;;;;11877:15:60;-1:-1:-1;11873:91:60;;199:2819:85;;12233:11:60;199:2819:85;;;12027:16:60;199:2819:85;;;;;;;12027:16:60;;;;12083:7;12063:43;12083:7;;12063:28;12083:7;;:::i;:::-;12063:28;13267:109:86;;;;;;13089:293;;12023:189:60;199:2819:85;;;12145:52:60;199:2819:85;12155:41:60;199:2819:85;;:::i;:::-;;;;;;;;12155:41:60;-1:-1:-1;;;;;199:2819:85;;12155:41:60;;;199:2819:85;12145:52:60;:::i;11668:709::-;12283:52;199:2819:85;;12293:41:60;199:2819:85;;:::i;12293:41:60:-;-1:-1:-1;;;;;199:2819:85;;12293:41:60;;;199:2819:85;12145:52:60;:::i;2774:153:57:-;;2900:5;;;2910;;199:2819:85;;;;;;;;;2774:153:57;:::o;12736:433:60:-;;12919:10;;;;;;13151:11;;;12736:433;:::o;12912:230::-;12959:23;;;;;;;:::i;:::-;13267:109:86;;-1:-1:-1;13267:109:86;199:2819:85;13267:109:86;;;-1:-1:-1;13267:109:86;;199:2819:85;;;;;-1:-1:-1;12996:136:60;199:2819:85;;;13055:10:60;12996:136;;12912:230;;;;12996:136;199:2819:85;;13116:1:60;199:2819:85;;;;;;12996:136:60;199:2819:85;;:::i;4625:582:46:-;;4797:8;;-1:-1:-1;199:2819:85;;5874:21:46;:17;;6046:142;;;;;;5870:383;199:2819:85;;-1:-1:-1;;;6225:17:46;;;;;4793:408;199:2819:85;;5045:22:46;:49;;;4793:408;5041:119;;5173:17;;:::o;5041:119::-;199:2819:85;;-1:-1:-1;;;5121:24:46;;-1:-1:-1;;;;;199:2819:85;;;5121:24:46;;;199:2819:85;;;5121:24:46;5045:49;5071:18;;;:23;5045:49;","linkReferences":{},"immutableReferences":{"58075":[{"start":2016,"length":32},{"start":2606,"length":32}],"62368":[{"start":4185,"length":32},{"start":4913,"length":32},{"start":9127,"length":32}],"68715":[{"start":4989,"length":32},{"start":6348,"length":32}],"68718":[{"start":6709,"length":32},{"start":7909,"length":32}]}},"methodIdentifiers":{"DEFAULT_ADMIN_ROLE()":"a217fddf","DELEGATOR_FACTORY()":"6da3e06d","DEPOSITOR_WHITELIST_ROLE()":"1b66c9e1","DEPOSIT_LIMIT_SET_ROLE()":"a21a1df9","DEPOSIT_WHITELIST_SET_ROLE()":"db388715","FACTORY()":"2dd31000","IS_DEPOSIT_LIMIT_SET_ROLE()":"1415519b","SLASHER_FACTORY()":"87df0788","activeBalanceOf(address)":"59f769a9","activeBalanceOfAt(address,uint48,bytes)":"efb559d6","activeBalanceOfHints(address,address,uint48)":"f9e1bf6c","activeShares()":"bfefcd7b","activeSharesAt(uint48,bytes)":"50f22068","activeSharesHint(address,uint48)":"8326056f","activeSharesHintInternal(uint48)":"55a2c672","activeSharesOf(address)":"9d66201b","activeSharesOfAt(address,uint48,bytes)":"2d73c69c","activeSharesOfHint(address,address,uint48)":"de499716","activeSharesOfHintInternal(address,uint48)":"eb556238","activeStake()":"bd49c35f","activeStakeAt(uint48,bytes)":"810da75d","activeStakeHint(address,uint48)":"64b03fdc","activeStakeHintInternal(uint48)":"67567add","burner()":"27810b6e","claim(address,uint256)":"aad3ec96","claimBatch(address,uint256[])":"7c04c80a","collateral()":"d8dfeb45","currentEpoch()":"76671808","currentEpochStart()":"61a8c8c4","delegator()":"ce9b7930","deposit(address,uint256)":"47e7ef24","depositLimit()":"ecf70858","depositWhitelist()":"48d3b775","epochAt(uint48)":"7953b33b","epochDuration()":"4ff0876a","epochDurationInit()":"46361671","getRoleAdmin(bytes32)":"248a9ca3","grantRole(bytes32,address)":"2f2ff15d","hasRole(bytes32,address)":"91d14854","initialize(uint64,address,bytes)":"57ec83cc","isDelegatorInitialized()":"50861adc","isDepositLimit()":"a1b12202","isDepositorWhitelisted(address)":"794b15b7","isInitialized()":"392e53cd","isSlasherInitialized()":"6ec1e3f8","isWithdrawalsClaimed(uint256,address)":"a5d03223","migrate(uint64,bytes)":"2abe3048","nextEpochStart()":"73790ab3","onSlash(uint256,uint48)":"7278e31c","owner()":"8da5cb5b","previousEpochStart()":"281f5752","redeem(address,uint256)":"1e9a6950","renounceOwnership()":"715018a6","renounceRole(bytes32,address)":"36568abe","revokeRole(bytes32,address)":"d547741f","setDelegator(address)":"83cd9cc3","setDepositLimit(uint256)":"bdc8144b","setDepositWhitelist(bool)":"4105a7dd","setDepositorWhitelistStatus(address,bool)":"a2861466","setIsDepositLimit(bool)":"5346e34f","setSlasher(address)":"aabc2496","slashableBalanceOf(address)":"c31e8dd7","slasher()":"b1344271","staticDelegateCall(address,bytes)":"9f86fd85","supportsInterface(bytes4)":"01ffc9a7","totalStake()":"8b0e9f3f","transferOwnership(address)":"f2fde38b","version()":"54fd4d50","withdraw(address,uint256)":"f3fef3a3","withdrawalShares(uint256)":"afba70ad","withdrawalSharesOf(uint256,address)":"a3b54172","withdrawals(uint256)":"5cc07076","withdrawalsOf(uint256,address)":"f5e7ee0f"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"AccessControlBadConfirmation\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"neededRole\",\"type\":\"bytes32\"}],\"name\":\"AccessControlUnauthorizedAccount\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"AddressEmptyCode\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"AddressInsufficientBalance\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AlreadyClaimed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AlreadyInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AlreadySet\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CheckpointUnorderedInsertion\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"DelegatorAlreadyInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"DepositLimitReached\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ExternalCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedInnerCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientClaim\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientDeposit\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientRedemption\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientWithdrawal\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidAccount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidCaptureEpoch\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidClaimer\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidCollateral\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidDelegator\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidEpoch\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidEpochDuration\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidLengthEpochs\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidOnBehalfOf\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidRecipient\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidSlasher\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidTimestamp\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MathOverflowedMulDiv\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MissingRoles\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NoPreviousEpoch\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotDelegator\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotFactory\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotSlasher\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotWhitelistedDepositor\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ReentrancyGuardReentrantCall\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"bits\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"SafeCastOverflowedUintDowncast\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"SafeERC20FailedOperation\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SlasherAlreadyInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TooMuchRedeem\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TooMuchWithdraw\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"claimer\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"epoch\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Claim\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"claimer\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"epochs\",\"type\":\"uint256[]\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"ClaimBatch\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"depositor\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"onBehalfOf\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"}],\"name\":\"Deposit\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint48\",\"name\":\"captureTimestamp\",\"type\":\"uint48\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"slashedAmount\",\"type\":\"uint256\"}],\"name\":\"OnSlash\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"previousAdminRole\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"newAdminRole\",\"type\":\"bytes32\"}],\"name\":\"RoleAdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleRevoked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"}],\"name\":\"SetDelegator\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"limit\",\"type\":\"uint256\"}],\"name\":\"SetDepositLimit\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"status\",\"type\":\"bool\"}],\"name\":\"SetDepositWhitelist\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"status\",\"type\":\"bool\"}],\"name\":\"SetDepositorWhitelistStatus\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"status\",\"type\":\"bool\"}],\"name\":\"SetIsDepositLimit\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"slasher\",\"type\":\"address\"}],\"name\":\"SetSlasher\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"withdrawer\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"claimer\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"burnedShares\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"mintedShares\",\"type\":\"uint256\"}],\"name\":\"Withdraw\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DEFAULT_ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"DELEGATOR_FACTORY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"DEPOSITOR_WHITELIST_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"DEPOSIT_LIMIT_SET_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"DEPOSIT_WHITELIST_SET_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"FACTORY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"IS_DEPOSIT_LIMIT_SET_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"SLASHER_FACTORY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"activeBalanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hints\",\"type\":\"bytes\"}],\"name\":\"activeBalanceOfAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"vault\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"}],\"name\":\"activeBalanceOfHints\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"activeShares\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hint\",\"type\":\"bytes\"}],\"name\":\"activeSharesAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"vault\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"}],\"name\":\"activeSharesHint\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"}],\"name\":\"activeSharesHintInternal\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"exists\",\"type\":\"bool\"},{\"internalType\":\"uint32\",\"name\":\"hint\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"activeSharesOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hint\",\"type\":\"bytes\"}],\"name\":\"activeSharesOfAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"vault\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"}],\"name\":\"activeSharesOfHint\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"}],\"name\":\"activeSharesOfHintInternal\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"exists\",\"type\":\"bool\"},{\"internalType\":\"uint32\",\"name\":\"hint\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"activeStake\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hint\",\"type\":\"bytes\"}],\"name\":\"activeStakeAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"vault\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"}],\"name\":\"activeStakeHint\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"}],\"name\":\"activeStakeHintInternal\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"exists\",\"type\":\"bool\"},{\"internalType\":\"uint32\",\"name\":\"hint\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"burner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"epoch\",\"type\":\"uint256\"}],\"name\":\"claim\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256[]\",\"name\":\"epochs\",\"type\":\"uint256[]\"}],\"name\":\"claimBatch\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"collateral\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"currentEpoch\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"currentEpochStart\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"delegator\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"onBehalfOf\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"deposit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"depositedAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"mintedShares\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"depositLimit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"depositWhitelist\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"}],\"name\":\"epochAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"epochDuration\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"epochDurationInit\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleAdmin\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"grantRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"initialVersion\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"owner_\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isDelegatorInitialized\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isDepositLimit\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"isDepositorWhitelisted\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"value\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isInitialized\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isSlasherInitialized\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"epoch\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"isWithdrawalsClaimed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"value\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"newVersion\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"migrate\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"nextEpochStart\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint48\",\"name\":\"captureTimestamp\",\"type\":\"uint48\"}],\"name\":\"onSlash\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"slashedAmount\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"previousEpochStart\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"claimer\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"}],\"name\":\"redeem\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"withdrawnAssets\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"mintedShares\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"callerConfirmation\",\"type\":\"address\"}],\"name\":\"renounceRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegator_\",\"type\":\"address\"}],\"name\":\"setDelegator\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"limit\",\"type\":\"uint256\"}],\"name\":\"setDepositLimit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"status\",\"type\":\"bool\"}],\"name\":\"setDepositWhitelist\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"status\",\"type\":\"bool\"}],\"name\":\"setDepositorWhitelistStatus\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"status\",\"type\":\"bool\"}],\"name\":\"setIsDepositLimit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"slasher_\",\"type\":\"address\"}],\"name\":\"setSlasher\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"slashableBalanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"slasher\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"staticDelegateCall\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalStake\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"version\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"claimer\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"withdraw\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"burnedShares\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"mintedShares\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"epoch\",\"type\":\"uint256\"}],\"name\":\"withdrawalShares\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"epoch\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"withdrawalSharesOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"epoch\",\"type\":\"uint256\"}],\"name\":\"withdrawals\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"epoch\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"withdrawalsOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"AccessControlBadConfirmation()\":[{\"details\":\"The caller of a function is not the expected one. NOTE: Don't confuse with {AccessControlUnauthorizedAccount}.\"}],\"AccessControlUnauthorizedAccount(address,bytes32)\":[{\"details\":\"The `account` is missing a role.\"}],\"AddressEmptyCode(address)\":[{\"details\":\"There's no code at `target` (it is not a contract).\"}],\"AddressInsufficientBalance(address)\":[{\"details\":\"The ETH balance of the account is not enough to perform the operation.\"}],\"CheckpointUnorderedInsertion()\":[{\"details\":\"A value was attempted to be inserted on a past checkpoint.\"}],\"FailedInnerCall()\":[{\"details\":\"A call to an address target failed. The target may have reverted.\"}],\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"MathOverflowedMulDiv()\":[{\"details\":\"Muldiv operation overflow.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}],\"ReentrancyGuardReentrantCall()\":[{\"details\":\"Unauthorized reentrant call.\"}],\"SafeCastOverflowedUintDowncast(uint8,uint256)\":[{\"details\":\"Value doesn't fit in an uint of `bits` size.\"}],\"SafeERC20FailedOperation(address)\":[{\"details\":\"An operation with an ERC20 token failed.\"}]},\"events\":{\"Claim(address,address,uint256,uint256)\":{\"params\":{\"amount\":\"amount of the collateral claimed\",\"claimer\":\"account that claimed\",\"epoch\":\"epoch the collateral was claimed for\",\"recipient\":\"account that received the collateral\"}},\"ClaimBatch(address,address,uint256[],uint256)\":{\"params\":{\"amount\":\"amount of the collateral claimed\",\"claimer\":\"account that claimed\",\"epochs\":\"epochs the collateral was claimed for\",\"recipient\":\"account that received the collateral\"}},\"Deposit(address,address,uint256,uint256)\":{\"params\":{\"amount\":\"amount of the collateral deposited\",\"depositor\":\"account that made the deposit\",\"onBehalfOf\":\"account the deposit was made on behalf of\",\"shares\":\"amount of the active shares minted\"}},\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"OnSlash(uint256,uint48,uint256)\":{\"params\":{\"amount\":\"amount of the collateral to slash\",\"captureTimestamp\":\"time point when the stake was captured\",\"slashedAmount\":\"real amount of the collateral slashed\"}},\"RoleAdminChanged(bytes32,bytes32,bytes32)\":{\"details\":\"Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole` `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite {RoleAdminChanged} not being emitted signaling this.\"},\"RoleGranted(bytes32,address,address)\":{\"details\":\"Emitted when `account` is granted `role`. `sender` is the account that originated the contract call, an admin role bearer except when using {AccessControl-_setupRole}.\"},\"RoleRevoked(bytes32,address,address)\":{\"details\":\"Emitted when `account` is revoked `role`. `sender` is the account that originated the contract call: - if using `revokeRole`, it is the admin role bearer - if using `renounceRole`, it is the role bearer (i.e. `account`)\"},\"SetDelegator(address)\":{\"details\":\"Can be set only once.\",\"params\":{\"delegator\":\"vault's delegator to delegate the stake to networks and operators\"}},\"SetDepositLimit(uint256)\":{\"params\":{\"limit\":\"deposit limit (maximum amount of the collateral that can be in the vault simultaneously)\"}},\"SetDepositWhitelist(bool)\":{\"params\":{\"status\":\"if enabled deposit whitelist\"}},\"SetDepositorWhitelistStatus(address,bool)\":{\"params\":{\"account\":\"account for which the whitelist status is set\",\"status\":\"if whitelisted the account\"}},\"SetIsDepositLimit(bool)\":{\"params\":{\"status\":\"if enabled deposit limit\"}},\"SetSlasher(address)\":{\"details\":\"Can be set only once.\",\"params\":{\"slasher\":\"vault's slasher to provide a slashing mechanism to networks\"}},\"Withdraw(address,address,uint256,uint256,uint256)\":{\"params\":{\"amount\":\"amount of the collateral withdrawn\",\"burnedShares\":\"amount of the active shares burned\",\"claimer\":\"account that needs to claim the withdrawal\",\"mintedShares\":\"amount of the epoch withdrawal shares minted\",\"withdrawer\":\"account that made the withdrawal\"}}},\"kind\":\"dev\",\"methods\":{\"activeBalanceOf(address)\":{\"params\":{\"account\":\"account to get the active balance for\"},\"returns\":{\"_0\":\"active balance for the account\"}},\"activeBalanceOfAt(address,uint48,bytes)\":{\"params\":{\"account\":\"account to get the active balance for\",\"hints\":\"hints for checkpoints' indexes\",\"timestamp\":\"time point to get the active balance for the account at\"},\"returns\":{\"_0\":\"active balance for the account at the timestamp\"}},\"activeShares()\":{\"returns\":{\"_0\":\"total number of active shares\"}},\"activeSharesAt(uint48,bytes)\":{\"params\":{\"hint\":\"hint for the checkpoint index\",\"timestamp\":\"time point to get the total number of active shares at\"},\"returns\":{\"_0\":\"total number of active shares at the timestamp\"}},\"activeSharesOf(address)\":{\"params\":{\"account\":\"account to get the number of active shares for\"},\"returns\":{\"_0\":\"number of active shares for the account\"}},\"activeSharesOfAt(address,uint48,bytes)\":{\"params\":{\"account\":\"account to get the number of active shares for\",\"hint\":\"hint for the checkpoint index\",\"timestamp\":\"time point to get the number of active shares for the account at\"},\"returns\":{\"_0\":\"number of active shares for the account at the timestamp\"}},\"activeStake()\":{\"returns\":{\"_0\":\"total amount of active stake\"}},\"activeStakeAt(uint48,bytes)\":{\"params\":{\"hint\":\"hint for the checkpoint index\",\"timestamp\":\"time point to get the total active stake at\"},\"returns\":{\"_0\":\"total amount of active stake at the timestamp\"}},\"claim(address,uint256)\":{\"params\":{\"epoch\":\"epoch to claim the collateral for\",\"recipient\":\"account that receives the collateral\"},\"returns\":{\"amount\":\"amount of the collateral claimed\"}},\"claimBatch(address,uint256[])\":{\"params\":{\"epochs\":\"epochs to claim the collateral for\",\"recipient\":\"account that receives the collateral\"},\"returns\":{\"amount\":\"amount of the collateral claimed\"}},\"currentEpoch()\":{\"returns\":{\"_0\":\"current epoch\"}},\"currentEpochStart()\":{\"returns\":{\"_0\":\"start of the current epoch\"}},\"deposit(address,uint256)\":{\"params\":{\"amount\":\"amount of the collateral to deposit\",\"onBehalfOf\":\"account the deposit is made on behalf of\"},\"returns\":{\"depositedAmount\":\"real amount of the collateral deposited\",\"mintedShares\":\"amount of the active shares minted\"}},\"epochAt(uint48)\":{\"details\":\"Reverts if the timestamp is less than the start of the epoch 0.\",\"params\":{\"timestamp\":\"time point to get the epoch at\"},\"returns\":{\"_0\":\"epoch at the timestamp\"}},\"getRoleAdmin(bytes32)\":{\"details\":\"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}.\"},\"grantRole(bytes32,address)\":{\"details\":\"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event.\"},\"hasRole(bytes32,address)\":{\"details\":\"Returns `true` if `account` has been granted `role`.\"},\"initialize(uint64,address,bytes)\":{\"params\":{\"data\":\"some data to use\",\"initialVersion\":\"initial version of the entity\",\"owner\":\"initial owner of the entity\"}},\"isInitialized()\":{\"returns\":{\"_0\":\"if the vault is fully initialized\"}},\"migrate(uint64,bytes)\":{\"params\":{\"data\":\"some data to use\",\"newVersion\":\"new version of the entity\"}},\"nextEpochStart()\":{\"returns\":{\"_0\":\"start of the next epoch\"}},\"onSlash(uint256,uint48)\":{\"details\":\"Only the slasher can call this function.\",\"params\":{\"amount\":\"amount to slash\",\"captureTimestamp\":\"time point when the stake was captured\"},\"returns\":{\"slashedAmount\":\"real amount of the collateral slashed\"}},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"previousEpochStart()\":{\"details\":\"Reverts if the current epoch is 0.\",\"returns\":{\"_0\":\"start of the previous epoch\"}},\"redeem(address,uint256)\":{\"params\":{\"claimer\":\"account that needs to claim the withdrawal\",\"shares\":\"amount of the active shares to redeem\"},\"returns\":{\"mintedShares\":\"amount of the epoch withdrawal shares minted\",\"withdrawnAssets\":\"amount of the collateral withdrawn\"}},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"renounceRole(bytes32,address)\":{\"details\":\"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `callerConfirmation`. May emit a {RoleRevoked} event.\"},\"revokeRole(bytes32,address)\":{\"details\":\"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event.\"},\"setDepositLimit(uint256)\":{\"details\":\"Only a DEPOSIT_LIMIT_SET_ROLE holder can call this function.\",\"params\":{\"limit\":\"deposit limit (maximum amount of the collateral that can be in the vault simultaneously)\"}},\"setDepositWhitelist(bool)\":{\"details\":\"Only a DEPOSIT_WHITELIST_SET_ROLE holder can call this function.\",\"params\":{\"status\":\"if enabling deposit whitelist\"}},\"setDepositorWhitelistStatus(address,bool)\":{\"details\":\"Only a DEPOSITOR_WHITELIST_ROLE holder can call this function.\",\"params\":{\"account\":\"account for which the whitelist status is set\",\"status\":\"if whitelisting the account\"}},\"setIsDepositLimit(bool)\":{\"details\":\"Only a IS_DEPOSIT_LIMIT_SET_ROLE holder can call this function.\",\"params\":{\"status\":\"if enabling deposit limit\"}},\"slashableBalanceOf(address)\":{\"params\":{\"account\":\"account to get the slashable collateral for\"},\"returns\":{\"_0\":\"total amount of the account's slashable collateral\"}},\"staticDelegateCall(address,bytes)\":{\"details\":\"It allows to use this contract's storage on-chain.\",\"params\":{\"data\":\"data to make a delegatecall with\",\"target\":\"address of the contract to make a delegatecall to\"}},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"},\"totalStake()\":{\"returns\":{\"_0\":\"total amount of the slashable collateral\"}},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"},\"version()\":{\"details\":\"Starts from 1.\",\"returns\":{\"_0\":\"version of the entity\"}},\"withdraw(address,uint256)\":{\"params\":{\"amount\":\"amount of the collateral to withdraw\",\"claimer\":\"account that needs to claim the withdrawal\"},\"returns\":{\"burnedShares\":\"amount of the active shares burned\",\"mintedShares\":\"amount of the epoch withdrawal shares minted\"}},\"withdrawalsOf(uint256,address)\":{\"params\":{\"account\":\"account to get the withdrawals for\",\"epoch\":\"epoch to get the withdrawals for the account at\"},\"returns\":{\"_0\":\"withdrawals for the account at the epoch\"}}},\"version\":1},\"userdoc\":{\"events\":{\"Claim(address,address,uint256,uint256)\":{\"notice\":\"Emitted when a claim is made.\"},\"ClaimBatch(address,address,uint256[],uint256)\":{\"notice\":\"Emitted when a batch claim is made.\"},\"Deposit(address,address,uint256,uint256)\":{\"notice\":\"Emitted when a deposit is made.\"},\"OnSlash(uint256,uint48,uint256)\":{\"notice\":\"Emitted when a slash happens.\"},\"SetDelegator(address)\":{\"notice\":\"Emitted when a delegator is set.\"},\"SetDepositLimit(uint256)\":{\"notice\":\"Emitted when a deposit limit is set.\"},\"SetDepositWhitelist(bool)\":{\"notice\":\"Emitted when a deposit whitelist status is enabled/disabled.\"},\"SetDepositorWhitelistStatus(address,bool)\":{\"notice\":\"Emitted when a depositor whitelist status is set.\"},\"SetIsDepositLimit(bool)\":{\"notice\":\"Emitted when a deposit limit status is enabled/disabled.\"},\"SetSlasher(address)\":{\"notice\":\"Emitted when a slasher is set.\"},\"Withdraw(address,address,uint256,uint256,uint256)\":{\"notice\":\"Emitted when a withdrawal is made.\"}},\"kind\":\"user\",\"methods\":{\"DELEGATOR_FACTORY()\":{\"notice\":\"Get the delegator factory's address.\"},\"DEPOSITOR_WHITELIST_ROLE()\":{\"notice\":\"Get a depositor whitelist status setter's role.\"},\"DEPOSIT_LIMIT_SET_ROLE()\":{\"notice\":\"Get a deposit limit setter's role.\"},\"DEPOSIT_WHITELIST_SET_ROLE()\":{\"notice\":\"Get a deposit whitelist enabler/disabler's role.\"},\"FACTORY()\":{\"notice\":\"Get the factory's address.\"},\"IS_DEPOSIT_LIMIT_SET_ROLE()\":{\"notice\":\"Get a deposit limit enabler/disabler's role.\"},\"SLASHER_FACTORY()\":{\"notice\":\"Get the slasher factory's address.\"},\"activeBalanceOf(address)\":{\"notice\":\"Get an active balance for a particular account.\"},\"activeBalanceOfAt(address,uint48,bytes)\":{\"notice\":\"Get an active balance for a particular account at a given timestamp using hints.\"},\"activeShares()\":{\"notice\":\"Get a total number of active shares in the vault.\"},\"activeSharesAt(uint48,bytes)\":{\"notice\":\"Get a total number of active shares in the vault at a given timestamp using a hint.\"},\"activeSharesOf(address)\":{\"notice\":\"Get a number of active shares for a particular account.\"},\"activeSharesOfAt(address,uint48,bytes)\":{\"notice\":\"Get a total number of active shares for a particular account at a given timestamp using a hint.\"},\"activeStake()\":{\"notice\":\"Get a total amount of active stake in the vault.\"},\"activeStakeAt(uint48,bytes)\":{\"notice\":\"Get a total amount of active stake in the vault at a given timestamp using a hint.\"},\"burner()\":{\"notice\":\"Get a burner to issue debt to (e.g., 0xdEaD or some unwrapper contract).\"},\"claim(address,uint256)\":{\"notice\":\"Claim collateral from the vault.\"},\"claimBatch(address,uint256[])\":{\"notice\":\"Claim collateral from the vault for multiple epochs.\"},\"collateral()\":{\"notice\":\"Get a vault collateral.\"},\"currentEpoch()\":{\"notice\":\"Get a current vault epoch.\"},\"currentEpochStart()\":{\"notice\":\"Get a start of the current vault epoch.\"},\"delegator()\":{\"notice\":\"Get a delegator (it delegates the vault's stake to networks and operators).\"},\"deposit(address,uint256)\":{\"notice\":\"Deposit collateral into the vault.\"},\"depositLimit()\":{\"notice\":\"Get a deposit limit (maximum amount of the active stake that can be in the vault simultaneously).\"},\"depositWhitelist()\":{\"notice\":\"Get if the deposit whitelist is enabled.\"},\"epochAt(uint48)\":{\"notice\":\"Get an epoch at a given timestamp.\"},\"epochDuration()\":{\"notice\":\"Get a duration of the vault epoch.\"},\"epochDurationInit()\":{\"notice\":\"Get a time point of the epoch duration set.\"},\"initialize(uint64,address,bytes)\":{\"notice\":\"Initialize this entity contract by using a given data and setting a particular version and owner.\"},\"isDelegatorInitialized()\":{\"notice\":\"Get if the delegator is initialized.\"},\"isDepositLimit()\":{\"notice\":\"Get if the deposit limit is set.\"},\"isDepositorWhitelisted(address)\":{\"notice\":\"Get if a given account is whitelisted as a depositor.\"},\"isInitialized()\":{\"notice\":\"Check if the vault is fully initialized (a delegator and a slasher are set).\"},\"isSlasherInitialized()\":{\"notice\":\"Get if the slasher is initialized.\"},\"isWithdrawalsClaimed(uint256,address)\":{\"notice\":\"Get if the withdrawals are claimed for a particular account at a given epoch.\"},\"migrate(uint64,bytes)\":{\"notice\":\"Migrate this entity to a particular newer version using a given data.\"},\"nextEpochStart()\":{\"notice\":\"Get a start of the next vault epoch.\"},\"onSlash(uint256,uint48)\":{\"notice\":\"Slash callback for burning collateral.\"},\"previousEpochStart()\":{\"notice\":\"Get a start of the previous vault epoch.\"},\"redeem(address,uint256)\":{\"notice\":\"Redeem collateral from the vault (it will be claimable after the next epoch).\"},\"setDepositLimit(uint256)\":{\"notice\":\"Set a deposit limit.\"},\"setDepositWhitelist(bool)\":{\"notice\":\"Enable/disable deposit whitelist.\"},\"setDepositorWhitelistStatus(address,bool)\":{\"notice\":\"Set a depositor whitelist status.\"},\"setIsDepositLimit(bool)\":{\"notice\":\"Enable/disable deposit limit.\"},\"slashableBalanceOf(address)\":{\"notice\":\"Get a total amount of the collateral that can be slashed for a given account.\"},\"slasher()\":{\"notice\":\"Get a slasher (it provides networks a slashing mechanism).\"},\"staticDelegateCall(address,bytes)\":{\"notice\":\"Make a delegatecall from this contract to a given target contract with a particular data (always reverts with a return data).\"},\"totalStake()\":{\"notice\":\"Get a total amount of the collateral that can be slashed.\"},\"version()\":{\"notice\":\"Get the entity's version.\"},\"withdraw(address,uint256)\":{\"notice\":\"Withdraw collateral from the vault (it will be claimable after the next epoch).\"},\"withdrawalShares(uint256)\":{\"notice\":\"Get a total number of withdrawal shares at a given epoch.\"},\"withdrawalSharesOf(uint256,address)\":{\"notice\":\"Get a number of withdrawal shares for a particular account at a given epoch (zero if claimed).\"},\"withdrawals(uint256)\":{\"notice\":\"Get a total amount of the withdrawals at a given epoch.\"},\"withdrawalsOf(uint256,address)\":{\"notice\":\"Get withdrawals for a particular account at a given epoch (zero if claimed).\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/contracts/hints/VaultHints.sol\":\"VaultHints\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol\":{\"keccak256\":\"0x6662ec4e5cefca03eeadd073e9469df8d2944bb2ee8ec8f7622c2c46aab5f225\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4d8544c6f8daa4d1bc215c6a72fe0acdb748664a105b0e5efc19295667521d45\",\"dweb:/ipfs/QmdGWqdnXT8S3RgCR6aV8XHZrsybieMQLLnug1NtpSjEXN\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0xc163fcf9bb10138631a9ba5564df1fa25db9adff73bd9ee868a8ae1858fe093a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9706d43a0124053d9880f6e31a59f31bc0a6a3dc1acd66ce0a16e1111658c5f6\",\"dweb:/ipfs/QmUFmfowzkRwGtDu36cXV9SPTBHJ3n7dG9xQiK5B28jTf2\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609\",\"dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9\",\"dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardUpgradeable.sol\":{\"keccak256\":\"0xb44e086e941292cdc7f440de51478493894ef0b1aeccb0c4047445919f667f74\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://942dad22fbdc1669f025540ba63aa3ccfad5f8458fc5d4525b31ebf272e7af45\",\"dweb:/ipfs/Qmdo4X2M82aM3AMoW2kf2jhYkSCyC4T1pHNd6obdsDFnAB\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol\":{\"keccak256\":\"0xdaba3f7c42c55b2896353f32bd27d4d5f8bae741b3b05d4c53f67abc4dc47ce8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1fa2e61141c602510bcd2cd936ed9561922ac8772a9b9c9a9db091a74e354a45\",\"dweb:/ipfs/QmcHQDDoEBwJmwUbzoVkytvJsBx3KVHYFFnDkvRGWh9Wmh\"]},\"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0xb6b36edd6a2999fd243ff226d6cbf84bd71af2432bbd0dfe19392996a1d9cb41\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1fd2f35495652e57e3f99bc6c510bc5f7dd398a176ea2e72d8ed730aebc6ca26\",\"dweb:/ipfs/QmTQV6X4gkikTib49cho5iDX3JvSQbdsoEChoDwrk3CbbH\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c\",\"dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0x6008dabfe393240d73d7dd7688033f72740d570aa422254d29a7dce8568f3aff\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f5196ec75139918c6c7bb4251b36395e668f1fa6d206beba7e7520e74913940d\",\"dweb:/ipfs/QmSyqjksXxmm2mCG6qRd1yuwLykypkSVBbnBnGqJRcuJMi\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x37bb49513c49c87c4642a891b13b63571bc87013dde806617aa1efb54605f386\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b3036b3a83b7c48f96641f2a9002b9f2dcb6a5958dd670894ada21ae8229b3d0\",\"dweb:/ipfs/QmUNfSBdoVtjhETaUJCYcaC7pTMgbhht926tJ2uXJbiVd3\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0xaf28a975a78550e45f65e559a3ad6a5ad43b9b8a37366999abd1b7084eb70721\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b7bd24e224f67f65bfadf85dc2929fa965456bb2415478bd0125471b5ce35245\",\"dweb:/ipfs/QmRaydGr8BTHs1kvaZfsNU69pKzUAGFrvABn1KiRSbE51y\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875\",\"dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0xe19a4d5f31d2861e7344e8e535e2feafb913d806d3e2b5fe7782741a2a7094fe\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4aed79c0fa6f0546ed02f2f683e8f77f0fd2ed7eb34d8bbf3d373c9a6d95b13c\",\"dweb:/ipfs/QmWqVz6UAVqmnWU5pqYPt1o6iDEZyPaBraAA3rKfTTSfYj\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/Checkpoints.sol\":{\"keccak256\":\"0xbdc5e074d7dd6678f67e92b1a51a20226801a407b0e1af3da367c5d1ff4519ad\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a36cca6b22fff3db16fc789ff6c60eea71d4b156065d4d0c83a0bc5e91a77a8b\",\"dweb:/ipfs/QmYN3exd5AemxjBrN8XMB1p5LbbE16uC3sjbYjwi8AjcGR\"]},\"lib/openzeppelin-contracts/contracts/utils/types/Time.sol\":{\"keccak256\":\"0xc7755af115020049e4140f224f9ee88d7e1799ffb0646f37bf0df24bf6213f58\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7f09bf94d5274334ec021f61a04659db303f31e60460e14b709c9bf187740111\",\"dweb:/ipfs/QmNvgomZYUwFAt4cZbPWAiTeSZQreGehY9BK5xyVJsUttb\"]},\"src/contracts/common/MigratableEntity.sol\":{\"keccak256\":\"0x2d736f4dacd5d7e7697503bc426c78b8250fe1694ca157965ec178da6807de58\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://f1237acf96b4b9f9b69156e068eddd726a6e15bd8e87a18dc999cd4ba4da069c\",\"dweb:/ipfs/QmS6M8fiFFSeuJ4ZKKq1z8W7w4ybeHQSy5TLASGoc1LVic\"]},\"src/contracts/common/StaticDelegateCallable.sol\":{\"keccak256\":\"0x350029aa8955eacaffffaeb58babc5c98e80ebc5c5db388ed17ee6465f4a9d90\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://eb392a8ee9050e0af606897df63e3404e3829e8b688b580663892f9664195764\",\"dweb:/ipfs/QmaXC8jqV8UrrAFkzXTEv2fJF56sy33HhLxAzaRZmUxuXD\"]},\"src/contracts/hints/Hints.sol\":{\"keccak256\":\"0x8b565df1ae35993c097a9e642002782a8f451f6fd01809cad6bcd345bdf1b99c\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://99a19adb01e350a92f534095b3078229df1f2f83077992d75d58d8684be45971\",\"dweb:/ipfs/QmbmwcuswVbzvwHQFTtrJG86oV98GnfxqYTb8cV8u1acox\"]},\"src/contracts/hints/VaultHints.sol\":{\"keccak256\":\"0xccb505b7159b769cc114d67b87c2de6b106557f667fc8f3780114baad5c3c442\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://6d0c80a908fc16e96a8b5605a0bd53f9e89ad0ef0a738fbbae80ba4d3160749b\",\"dweb:/ipfs/QmXo5UtWoR8YmunqcbBU8rQMm1nvmvjNPoXcVrDhh4pEwR\"]},\"src/contracts/libraries/Checkpoints.sol\":{\"keccak256\":\"0xba90097c8bfe0a975499428b5f8ac5569483c7d92ccc28c12d70de416aae040c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://12f5d93ca94cd06d3147db68993165a58e17903ed53682560de61f3085ad4609\",\"dweb:/ipfs/QmePiuAqvXprMLmFZkGZeGjvGPAvsEDHfCDv7BoQhXu9xE\"]},\"src/contracts/libraries/ERC4626Math.sol\":{\"keccak256\":\"0x8441160513c1cbeb1c3b9ee077bcc7e7ce20006b52a77c8dd39ff0ef89699939\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://943f8cc3e26ddf649f465f40c909819f5c864717c4baa339e9e403b9374a4653\",\"dweb:/ipfs/QmXPxi1sUDsrGprZdUgCzoPEosaZMv9ZhygWQ1vAi1phAB\"]},\"src/contracts/vault/Vault.sol\":{\"keccak256\":\"0x2ceff6ed3298c4cad144c99fcc79b51cb9397d6ebef00285b915848b476f8c2e\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://11f2fb3581854f3ab6e82e8d4935d9eb510c903a13c3f022346c2956a58f5307\",\"dweb:/ipfs/QmdUnoXoyYoG9SGWyQZCFyLDRUUX3eXyXetkRvw6jxqqBz\"]},\"src/contracts/vault/VaultStorage.sol\":{\"keccak256\":\"0x57db25b127d77ea3472de53e3a4af3354399655b9268638b99ca5925fa364a56\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://aa763d9a6ec508ae3abfb8228b72b9fd9525279e5135d4962e79ff059feb1173\",\"dweb:/ipfs/QmcbDR6E9wyEpu6V2FkEC4hnWy47zXA9LSKJde6zSGd33Q\"]},\"src/interfaces/common/IEntity.sol\":{\"keccak256\":\"0x8ef4b63d6da63489778ccd5f8d13ebdd527dd4b62730b2c616df5af7474d2d21\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a8d69576a9219d85c50816a18ad53a4d53cfcb27ed38b8cccc808dc2734b71b\",\"dweb:/ipfs/QmYVN3P4Q4REvBWJ97TbAcaxm3uyB2anV6NSGa6ZtSwcEv\"]},\"src/interfaces/common/IMigratableEntity.sol\":{\"keccak256\":\"0x8f5f2809f3afbe8ebfbb365dd7b57b4dd3b6f9943a6187eaf648d45895b8e3c4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ffe640537d539e7a4fde70d30d3e4c57f4ba9c2c25c450cea713aae38e8fd5c\",\"dweb:/ipfs/QmSUTGzvdcn1R1KB7tLThMRtESsfPbeXDhhhKWGtntzBds\"]},\"src/interfaces/common/IRegistry.sol\":{\"keccak256\":\"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014\",\"dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK\"]},\"src/interfaces/common/IStaticDelegateCallable.sol\":{\"keccak256\":\"0xa335d4e81b9071b7de66ef92b43ff20671d86516eb1be46fef29a3483cd3f5d5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d464b9db863c14c05547d2b23352f2e9b7b784799cf09f6bbc4906a2a74e3516\",\"dweb:/ipfs/QmUVWzFvJz7eEbDQKiFTTzwi7TEbjcs3VmwdM4kuptAKvi\"]},\"src/interfaces/delegator/IBaseDelegator.sol\":{\"keccak256\":\"0x96bb312f032e17accce3f8f80936d99468029d6b37c9ca74acdb4b026a0148ee\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2a66dcb5b7d1a6ef6a363431ea98ebd78bc4fdd3d7a134d9b542dc66e7d025c2\",\"dweb:/ipfs/QmRhTPLd2ZAyRHmJUFUcWKs9b3if49QY17LYZuRqWmghw8\"]},\"src/interfaces/slasher/IBaseSlasher.sol\":{\"keccak256\":\"0x7c82528b445659c313ab77335c407b0b6efe5e79027187bb287f7bc74202b404\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0274c90aa5df1aa6bb470a6aab53992fb14fd7e5472c9430416505b29647d9cf\",\"dweb:/ipfs/QmckbmJLDetPemVzCnnGcKYWAZV2BRFXGDsjiaec8jkHxx\"]},\"src/interfaces/vault/IVault.sol\":{\"keccak256\":\"0xffee01d383cd4e1a5530c614bf4360c1ef070c288abec9da1eb531b51bc07235\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://04f0046cac285d8ec44ebbb1f79dc94fab4495767190cad8364fbc1fafaadfb9\",\"dweb:/ipfs/QmUawAunwzXfCyShWfhKeThAgKtqe51hmrxvrXvM772M2R\"]},\"src/interfaces/vault/IVaultStorage.sol\":{\"keccak256\":\"0x592626f13754194f83047135de19229c49390bd59e34659b1bb38be71d973a22\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://06a6a9dfddd05e580b32bebe2cff4f63ba26a653180676d58225dd30d9c89d3e\",\"dweb:/ipfs/QmdgzBeY6Sxo8mGtyBxtv1tM1c2kU6J6zjeRd7vuXm4DU6\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.25+commit.b61c2a91"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"AccessControlBadConfirmation"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bytes32","name":"neededRole","type":"bytes32"}],"type":"error","name":"AccessControlUnauthorizedAccount"},{"inputs":[{"internalType":"address","name":"target","type":"address"}],"type":"error","name":"AddressEmptyCode"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"AddressInsufficientBalance"},{"inputs":[],"type":"error","name":"AlreadyClaimed"},{"inputs":[],"type":"error","name":"AlreadyInitialized"},{"inputs":[],"type":"error","name":"AlreadySet"},{"inputs":[],"type":"error","name":"CheckpointUnorderedInsertion"},{"inputs":[],"type":"error","name":"DelegatorAlreadyInitialized"},{"inputs":[],"type":"error","name":"DepositLimitReached"},{"inputs":[],"type":"error","name":"ExternalCall"},{"inputs":[],"type":"error","name":"FailedInnerCall"},{"inputs":[],"type":"error","name":"InsufficientClaim"},{"inputs":[],"type":"error","name":"InsufficientDeposit"},{"inputs":[],"type":"error","name":"InsufficientRedemption"},{"inputs":[],"type":"error","name":"InsufficientWithdrawal"},{"inputs":[],"type":"error","name":"InvalidAccount"},{"inputs":[],"type":"error","name":"InvalidCaptureEpoch"},{"inputs":[],"type":"error","name":"InvalidClaimer"},{"inputs":[],"type":"error","name":"InvalidCollateral"},{"inputs":[],"type":"error","name":"InvalidDelegator"},{"inputs":[],"type":"error","name":"InvalidEpoch"},{"inputs":[],"type":"error","name":"InvalidEpochDuration"},{"inputs":[],"type":"error","name":"InvalidInitialization"},{"inputs":[],"type":"error","name":"InvalidLengthEpochs"},{"inputs":[],"type":"error","name":"InvalidOnBehalfOf"},{"inputs":[],"type":"error","name":"InvalidRecipient"},{"inputs":[],"type":"error","name":"InvalidSlasher"},{"inputs":[],"type":"error","name":"InvalidTimestamp"},{"inputs":[],"type":"error","name":"MathOverflowedMulDiv"},{"inputs":[],"type":"error","name":"MissingRoles"},{"inputs":[],"type":"error","name":"NoPreviousEpoch"},{"inputs":[],"type":"error","name":"NotDelegator"},{"inputs":[],"type":"error","name":"NotFactory"},{"inputs":[],"type":"error","name":"NotInitialized"},{"inputs":[],"type":"error","name":"NotInitializing"},{"inputs":[],"type":"error","name":"NotSlasher"},{"inputs":[],"type":"error","name":"NotWhitelistedDepositor"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"OwnableInvalidOwner"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"OwnableUnauthorizedAccount"},{"inputs":[],"type":"error","name":"ReentrancyGuardReentrantCall"},{"inputs":[{"internalType":"uint8","name":"bits","type":"uint8"},{"internalType":"uint256","name":"value","type":"uint256"}],"type":"error","name":"SafeCastOverflowedUintDowncast"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"type":"error","name":"SafeERC20FailedOperation"},{"inputs":[],"type":"error","name":"SlasherAlreadyInitialized"},{"inputs":[],"type":"error","name":"TooMuchRedeem"},{"inputs":[],"type":"error","name":"TooMuchWithdraw"},{"inputs":[{"internalType":"address","name":"claimer","type":"address","indexed":true},{"internalType":"address","name":"recipient","type":"address","indexed":true},{"internalType":"uint256","name":"epoch","type":"uint256","indexed":false},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"Claim","anonymous":false},{"inputs":[{"internalType":"address","name":"claimer","type":"address","indexed":true},{"internalType":"address","name":"recipient","type":"address","indexed":true},{"internalType":"uint256[]","name":"epochs","type":"uint256[]","indexed":false},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"ClaimBatch","anonymous":false},{"inputs":[{"internalType":"address","name":"depositor","type":"address","indexed":true},{"internalType":"address","name":"onBehalfOf","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false},{"internalType":"uint256","name":"shares","type":"uint256","indexed":false}],"type":"event","name":"Deposit","anonymous":false},{"inputs":[{"internalType":"uint64","name":"version","type":"uint64","indexed":false}],"type":"event","name":"Initialized","anonymous":false},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256","indexed":false},{"internalType":"uint48","name":"captureTimestamp","type":"uint48","indexed":false},{"internalType":"uint256","name":"slashedAmount","type":"uint256","indexed":false}],"type":"event","name":"OnSlash","anonymous":false},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"bytes32","name":"previousAdminRole","type":"bytes32","indexed":true},{"internalType":"bytes32","name":"newAdminRole","type":"bytes32","indexed":true}],"type":"event","name":"RoleAdminChanged","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"address","name":"sender","type":"address","indexed":true}],"type":"event","name":"RoleGranted","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"address","name":"sender","type":"address","indexed":true}],"type":"event","name":"RoleRevoked","anonymous":false},{"inputs":[{"internalType":"address","name":"delegator","type":"address","indexed":true}],"type":"event","name":"SetDelegator","anonymous":false},{"inputs":[{"internalType":"uint256","name":"limit","type":"uint256","indexed":false}],"type":"event","name":"SetDepositLimit","anonymous":false},{"inputs":[{"internalType":"bool","name":"status","type":"bool","indexed":false}],"type":"event","name":"SetDepositWhitelist","anonymous":false},{"inputs":[{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"bool","name":"status","type":"bool","indexed":false}],"type":"event","name":"SetDepositorWhitelistStatus","anonymous":false},{"inputs":[{"internalType":"bool","name":"status","type":"bool","indexed":false}],"type":"event","name":"SetIsDepositLimit","anonymous":false},{"inputs":[{"internalType":"address","name":"slasher","type":"address","indexed":true}],"type":"event","name":"SetSlasher","anonymous":false},{"inputs":[{"internalType":"address","name":"withdrawer","type":"address","indexed":true},{"internalType":"address","name":"claimer","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false},{"internalType":"uint256","name":"burnedShares","type":"uint256","indexed":false},{"internalType":"uint256","name":"mintedShares","type":"uint256","indexed":false}],"type":"event","name":"Withdraw","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"DEFAULT_ADMIN_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"DELEGATOR_FACTORY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"DEPOSITOR_WHITELIST_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"DEPOSIT_LIMIT_SET_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"DEPOSIT_WHITELIST_SET_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"FACTORY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"IS_DEPOSIT_LIMIT_SET_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"SLASHER_FACTORY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"activeBalanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint48","name":"timestamp","type":"uint48"},{"internalType":"bytes","name":"hints","type":"bytes"}],"stateMutability":"view","type":"function","name":"activeBalanceOfAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"vault","type":"address"},{"internalType":"address","name":"account","type":"address"},{"internalType":"uint48","name":"timestamp","type":"uint48"}],"stateMutability":"view","type":"function","name":"activeBalanceOfHints","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"activeShares","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint48","name":"timestamp","type":"uint48"},{"internalType":"bytes","name":"hint","type":"bytes"}],"stateMutability":"view","type":"function","name":"activeSharesAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"vault","type":"address"},{"internalType":"uint48","name":"timestamp","type":"uint48"}],"stateMutability":"view","type":"function","name":"activeSharesHint","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"uint48","name":"timestamp","type":"uint48"}],"stateMutability":"view","type":"function","name":"activeSharesHintInternal","outputs":[{"internalType":"bool","name":"exists","type":"bool"},{"internalType":"uint32","name":"hint","type":"uint32"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"activeSharesOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint48","name":"timestamp","type":"uint48"},{"internalType":"bytes","name":"hint","type":"bytes"}],"stateMutability":"view","type":"function","name":"activeSharesOfAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"vault","type":"address"},{"internalType":"address","name":"account","type":"address"},{"internalType":"uint48","name":"timestamp","type":"uint48"}],"stateMutability":"view","type":"function","name":"activeSharesOfHint","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint48","name":"timestamp","type":"uint48"}],"stateMutability":"view","type":"function","name":"activeSharesOfHintInternal","outputs":[{"internalType":"bool","name":"exists","type":"bool"},{"internalType":"uint32","name":"hint","type":"uint32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"activeStake","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint48","name":"timestamp","type":"uint48"},{"internalType":"bytes","name":"hint","type":"bytes"}],"stateMutability":"view","type":"function","name":"activeStakeAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"vault","type":"address"},{"internalType":"uint48","name":"timestamp","type":"uint48"}],"stateMutability":"view","type":"function","name":"activeStakeHint","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"uint48","name":"timestamp","type":"uint48"}],"stateMutability":"view","type":"function","name":"activeStakeHintInternal","outputs":[{"internalType":"bool","name":"exists","type":"bool"},{"internalType":"uint32","name":"hint","type":"uint32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"burner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"epoch","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"claim","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256[]","name":"epochs","type":"uint256[]"}],"stateMutability":"nonpayable","type":"function","name":"claimBatch","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"collateral","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"currentEpoch","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"currentEpochStart","outputs":[{"internalType":"uint48","name":"","type":"uint48"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"delegator","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"onBehalfOf","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"deposit","outputs":[{"internalType":"uint256","name":"depositedAmount","type":"uint256"},{"internalType":"uint256","name":"mintedShares","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"depositLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"depositWhitelist","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint48","name":"timestamp","type":"uint48"}],"stateMutability":"view","type":"function","name":"epochAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"epochDuration","outputs":[{"internalType":"uint48","name":"","type":"uint48"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"epochDurationInit","outputs":[{"internalType":"uint48","name":"","type":"uint48"}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getRoleAdmin","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"grantRole"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"hasRole","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint64","name":"initialVersion","type":"uint64"},{"internalType":"address","name":"owner_","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[],"stateMutability":"view","type":"function","name":"isDelegatorInitialized","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"isDepositLimit","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"isDepositorWhitelisted","outputs":[{"internalType":"bool","name":"value","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"isInitialized","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"isSlasherInitialized","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint256","name":"epoch","type":"uint256"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"isWithdrawalsClaimed","outputs":[{"internalType":"bool","name":"value","type":"bool"}]},{"inputs":[{"internalType":"uint64","name":"newVersion","type":"uint64"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"migrate"},{"inputs":[],"stateMutability":"view","type":"function","name":"nextEpochStart","outputs":[{"internalType":"uint48","name":"","type":"uint48"}]},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint48","name":"captureTimestamp","type":"uint48"}],"stateMutability":"nonpayable","type":"function","name":"onSlash","outputs":[{"internalType":"uint256","name":"slashedAmount","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"previousEpochStart","outputs":[{"internalType":"uint48","name":"","type":"uint48"}]},{"inputs":[{"internalType":"address","name":"claimer","type":"address"},{"internalType":"uint256","name":"shares","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"redeem","outputs":[{"internalType":"uint256","name":"withdrawnAssets","type":"uint256"},{"internalType":"uint256","name":"mintedShares","type":"uint256"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"callerConfirmation","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"renounceRole"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"revokeRole"},{"inputs":[{"internalType":"address","name":"delegator_","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setDelegator"},{"inputs":[{"internalType":"uint256","name":"limit","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setDepositLimit"},{"inputs":[{"internalType":"bool","name":"status","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"setDepositWhitelist"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"status","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"setDepositorWhitelistStatus"},{"inputs":[{"internalType":"bool","name":"status","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"setIsDepositLimit"},{"inputs":[{"internalType":"address","name":"slasher_","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setSlasher"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"slashableBalanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"slasher","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"staticDelegateCall"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"totalStake","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"},{"inputs":[],"stateMutability":"view","type":"function","name":"version","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[{"internalType":"address","name":"claimer","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"withdraw","outputs":[{"internalType":"uint256","name":"burnedShares","type":"uint256"},{"internalType":"uint256","name":"mintedShares","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"epoch","type":"uint256"}],"stateMutability":"view","type":"function","name":"withdrawalShares","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"epoch","type":"uint256"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"withdrawalSharesOf","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"epoch","type":"uint256"}],"stateMutability":"view","type":"function","name":"withdrawals","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"epoch","type":"uint256"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"withdrawalsOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]}],"devdoc":{"kind":"dev","methods":{"activeBalanceOf(address)":{"params":{"account":"account to get the active balance for"},"returns":{"_0":"active balance for the account"}},"activeBalanceOfAt(address,uint48,bytes)":{"params":{"account":"account to get the active balance for","hints":"hints for checkpoints' indexes","timestamp":"time point to get the active balance for the account at"},"returns":{"_0":"active balance for the account at the timestamp"}},"activeShares()":{"returns":{"_0":"total number of active shares"}},"activeSharesAt(uint48,bytes)":{"params":{"hint":"hint for the checkpoint index","timestamp":"time point to get the total number of active shares at"},"returns":{"_0":"total number of active shares at the timestamp"}},"activeSharesOf(address)":{"params":{"account":"account to get the number of active shares for"},"returns":{"_0":"number of active shares for the account"}},"activeSharesOfAt(address,uint48,bytes)":{"params":{"account":"account to get the number of active shares for","hint":"hint for the checkpoint index","timestamp":"time point to get the number of active shares for the account at"},"returns":{"_0":"number of active shares for the account at the timestamp"}},"activeStake()":{"returns":{"_0":"total amount of active stake"}},"activeStakeAt(uint48,bytes)":{"params":{"hint":"hint for the checkpoint index","timestamp":"time point to get the total active stake at"},"returns":{"_0":"total amount of active stake at the timestamp"}},"claim(address,uint256)":{"params":{"epoch":"epoch to claim the collateral for","recipient":"account that receives the collateral"},"returns":{"amount":"amount of the collateral claimed"}},"claimBatch(address,uint256[])":{"params":{"epochs":"epochs to claim the collateral for","recipient":"account that receives the collateral"},"returns":{"amount":"amount of the collateral claimed"}},"currentEpoch()":{"returns":{"_0":"current epoch"}},"currentEpochStart()":{"returns":{"_0":"start of the current epoch"}},"deposit(address,uint256)":{"params":{"amount":"amount of the collateral to deposit","onBehalfOf":"account the deposit is made on behalf of"},"returns":{"depositedAmount":"real amount of the collateral deposited","mintedShares":"amount of the active shares minted"}},"epochAt(uint48)":{"details":"Reverts if the timestamp is less than the start of the epoch 0.","params":{"timestamp":"time point to get the epoch at"},"returns":{"_0":"epoch at the timestamp"}},"getRoleAdmin(bytes32)":{"details":"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}."},"grantRole(bytes32,address)":{"details":"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event."},"hasRole(bytes32,address)":{"details":"Returns `true` if `account` has been granted `role`."},"initialize(uint64,address,bytes)":{"params":{"data":"some data to use","initialVersion":"initial version of the entity","owner":"initial owner of the entity"}},"isInitialized()":{"returns":{"_0":"if the vault is fully initialized"}},"migrate(uint64,bytes)":{"params":{"data":"some data to use","newVersion":"new version of the entity"}},"nextEpochStart()":{"returns":{"_0":"start of the next epoch"}},"onSlash(uint256,uint48)":{"details":"Only the slasher can call this function.","params":{"amount":"amount to slash","captureTimestamp":"time point when the stake was captured"},"returns":{"slashedAmount":"real amount of the collateral slashed"}},"owner()":{"details":"Returns the address of the current owner."},"previousEpochStart()":{"details":"Reverts if the current epoch is 0.","returns":{"_0":"start of the previous epoch"}},"redeem(address,uint256)":{"params":{"claimer":"account that needs to claim the withdrawal","shares":"amount of the active shares to redeem"},"returns":{"mintedShares":"amount of the epoch withdrawal shares minted","withdrawnAssets":"amount of the collateral withdrawn"}},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner."},"renounceRole(bytes32,address)":{"details":"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `callerConfirmation`. May emit a {RoleRevoked} event."},"revokeRole(bytes32,address)":{"details":"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event."},"setDepositLimit(uint256)":{"details":"Only a DEPOSIT_LIMIT_SET_ROLE holder can call this function.","params":{"limit":"deposit limit (maximum amount of the collateral that can be in the vault simultaneously)"}},"setDepositWhitelist(bool)":{"details":"Only a DEPOSIT_WHITELIST_SET_ROLE holder can call this function.","params":{"status":"if enabling deposit whitelist"}},"setDepositorWhitelistStatus(address,bool)":{"details":"Only a DEPOSITOR_WHITELIST_ROLE holder can call this function.","params":{"account":"account for which the whitelist status is set","status":"if whitelisting the account"}},"setIsDepositLimit(bool)":{"details":"Only a IS_DEPOSIT_LIMIT_SET_ROLE holder can call this function.","params":{"status":"if enabling deposit limit"}},"slashableBalanceOf(address)":{"params":{"account":"account to get the slashable collateral for"},"returns":{"_0":"total amount of the account's slashable collateral"}},"staticDelegateCall(address,bytes)":{"details":"It allows to use this contract's storage on-chain.","params":{"data":"data to make a delegatecall with","target":"address of the contract to make a delegatecall to"}},"supportsInterface(bytes4)":{"details":"See {IERC165-supportsInterface}."},"totalStake()":{"returns":{"_0":"total amount of the slashable collateral"}},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."},"version()":{"details":"Starts from 1.","returns":{"_0":"version of the entity"}},"withdraw(address,uint256)":{"params":{"amount":"amount of the collateral to withdraw","claimer":"account that needs to claim the withdrawal"},"returns":{"burnedShares":"amount of the active shares burned","mintedShares":"amount of the epoch withdrawal shares minted"}},"withdrawalsOf(uint256,address)":{"params":{"account":"account to get the withdrawals for","epoch":"epoch to get the withdrawals for the account at"},"returns":{"_0":"withdrawals for the account at the epoch"}}},"version":1},"userdoc":{"kind":"user","methods":{"DELEGATOR_FACTORY()":{"notice":"Get the delegator factory's address."},"DEPOSITOR_WHITELIST_ROLE()":{"notice":"Get a depositor whitelist status setter's role."},"DEPOSIT_LIMIT_SET_ROLE()":{"notice":"Get a deposit limit setter's role."},"DEPOSIT_WHITELIST_SET_ROLE()":{"notice":"Get a deposit whitelist enabler/disabler's role."},"FACTORY()":{"notice":"Get the factory's address."},"IS_DEPOSIT_LIMIT_SET_ROLE()":{"notice":"Get a deposit limit enabler/disabler's role."},"SLASHER_FACTORY()":{"notice":"Get the slasher factory's address."},"activeBalanceOf(address)":{"notice":"Get an active balance for a particular account."},"activeBalanceOfAt(address,uint48,bytes)":{"notice":"Get an active balance for a particular account at a given timestamp using hints."},"activeShares()":{"notice":"Get a total number of active shares in the vault."},"activeSharesAt(uint48,bytes)":{"notice":"Get a total number of active shares in the vault at a given timestamp using a hint."},"activeSharesOf(address)":{"notice":"Get a number of active shares for a particular account."},"activeSharesOfAt(address,uint48,bytes)":{"notice":"Get a total number of active shares for a particular account at a given timestamp using a hint."},"activeStake()":{"notice":"Get a total amount of active stake in the vault."},"activeStakeAt(uint48,bytes)":{"notice":"Get a total amount of active stake in the vault at a given timestamp using a hint."},"burner()":{"notice":"Get a burner to issue debt to (e.g., 0xdEaD or some unwrapper contract)."},"claim(address,uint256)":{"notice":"Claim collateral from the vault."},"claimBatch(address,uint256[])":{"notice":"Claim collateral from the vault for multiple epochs."},"collateral()":{"notice":"Get a vault collateral."},"currentEpoch()":{"notice":"Get a current vault epoch."},"currentEpochStart()":{"notice":"Get a start of the current vault epoch."},"delegator()":{"notice":"Get a delegator (it delegates the vault's stake to networks and operators)."},"deposit(address,uint256)":{"notice":"Deposit collateral into the vault."},"depositLimit()":{"notice":"Get a deposit limit (maximum amount of the active stake that can be in the vault simultaneously)."},"depositWhitelist()":{"notice":"Get if the deposit whitelist is enabled."},"epochAt(uint48)":{"notice":"Get an epoch at a given timestamp."},"epochDuration()":{"notice":"Get a duration of the vault epoch."},"epochDurationInit()":{"notice":"Get a time point of the epoch duration set."},"initialize(uint64,address,bytes)":{"notice":"Initialize this entity contract by using a given data and setting a particular version and owner."},"isDelegatorInitialized()":{"notice":"Get if the delegator is initialized."},"isDepositLimit()":{"notice":"Get if the deposit limit is set."},"isDepositorWhitelisted(address)":{"notice":"Get if a given account is whitelisted as a depositor."},"isInitialized()":{"notice":"Check if the vault is fully initialized (a delegator and a slasher are set)."},"isSlasherInitialized()":{"notice":"Get if the slasher is initialized."},"isWithdrawalsClaimed(uint256,address)":{"notice":"Get if the withdrawals are claimed for a particular account at a given epoch."},"migrate(uint64,bytes)":{"notice":"Migrate this entity to a particular newer version using a given data."},"nextEpochStart()":{"notice":"Get a start of the next vault epoch."},"onSlash(uint256,uint48)":{"notice":"Slash callback for burning collateral."},"previousEpochStart()":{"notice":"Get a start of the previous vault epoch."},"redeem(address,uint256)":{"notice":"Redeem collateral from the vault (it will be claimable after the next epoch)."},"setDepositLimit(uint256)":{"notice":"Set a deposit limit."},"setDepositWhitelist(bool)":{"notice":"Enable/disable deposit whitelist."},"setDepositorWhitelistStatus(address,bool)":{"notice":"Set a depositor whitelist status."},"setIsDepositLimit(bool)":{"notice":"Enable/disable deposit limit."},"slashableBalanceOf(address)":{"notice":"Get a total amount of the collateral that can be slashed for a given account."},"slasher()":{"notice":"Get a slasher (it provides networks a slashing mechanism)."},"staticDelegateCall(address,bytes)":{"notice":"Make a delegatecall from this contract to a given target contract with a particular data (always reverts with a return data)."},"totalStake()":{"notice":"Get a total amount of the collateral that can be slashed."},"version()":{"notice":"Get the entity's version."},"withdraw(address,uint256)":{"notice":"Withdraw collateral from the vault (it will be claimable after the next epoch)."},"withdrawalShares(uint256)":{"notice":"Get a total number of withdrawal shares at a given epoch."},"withdrawalSharesOf(uint256,address)":{"notice":"Get a number of withdrawal shares for a particular account at a given epoch (zero if claimed)."},"withdrawals(uint256)":{"notice":"Get a total amount of the withdrawals at a given epoch."},"withdrawalsOf(uint256,address)":{"notice":"Get withdrawals for a particular account at a given epoch (zero if claimed)."}},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/contracts/hints/VaultHints.sol":"VaultHints"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol":{"keccak256":"0x6662ec4e5cefca03eeadd073e9469df8d2944bb2ee8ec8f7622c2c46aab5f225","urls":["bzz-raw://4d8544c6f8daa4d1bc215c6a72fe0acdb748664a105b0e5efc19295667521d45","dweb:/ipfs/QmdGWqdnXT8S3RgCR6aV8XHZrsybieMQLLnug1NtpSjEXN"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol":{"keccak256":"0xc163fcf9bb10138631a9ba5564df1fa25db9adff73bd9ee868a8ae1858fe093a","urls":["bzz-raw://9706d43a0124053d9880f6e31a59f31bc0a6a3dc1acd66ce0a16e1111658c5f6","dweb:/ipfs/QmUFmfowzkRwGtDu36cXV9SPTBHJ3n7dG9xQiK5B28jTf2"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b","urls":["bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609","dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol":{"keccak256":"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397","urls":["bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9","dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardUpgradeable.sol":{"keccak256":"0xb44e086e941292cdc7f440de51478493894ef0b1aeccb0c4047445919f667f74","urls":["bzz-raw://942dad22fbdc1669f025540ba63aa3ccfad5f8458fc5d4525b31ebf272e7af45","dweb:/ipfs/Qmdo4X2M82aM3AMoW2kf2jhYkSCyC4T1pHNd6obdsDFnAB"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol":{"keccak256":"0xdaba3f7c42c55b2896353f32bd27d4d5f8bae741b3b05d4c53f67abc4dc47ce8","urls":["bzz-raw://1fa2e61141c602510bcd2cd936ed9561922ac8772a9b9c9a9db091a74e354a45","dweb:/ipfs/QmcHQDDoEBwJmwUbzoVkytvJsBx3KVHYFFnDkvRGWh9Wmh"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol":{"keccak256":"0xb6b36edd6a2999fd243ff226d6cbf84bd71af2432bbd0dfe19392996a1d9cb41","urls":["bzz-raw://1fd2f35495652e57e3f99bc6c510bc5f7dd398a176ea2e72d8ed730aebc6ca26","dweb:/ipfs/QmTQV6X4gkikTib49cho5iDX3JvSQbdsoEChoDwrk3CbbH"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70","urls":["bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c","dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol":{"keccak256":"0x6008dabfe393240d73d7dd7688033f72740d570aa422254d29a7dce8568f3aff","urls":["bzz-raw://f5196ec75139918c6c7bb4251b36395e668f1fa6d206beba7e7520e74913940d","dweb:/ipfs/QmSyqjksXxmm2mCG6qRd1yuwLykypkSVBbnBnGqJRcuJMi"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0x37bb49513c49c87c4642a891b13b63571bc87013dde806617aa1efb54605f386","urls":["bzz-raw://b3036b3a83b7c48f96641f2a9002b9f2dcb6a5958dd670894ada21ae8229b3d0","dweb:/ipfs/QmUNfSBdoVtjhETaUJCYcaC7pTMgbhht926tJ2uXJbiVd3"],"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/introspection/IERC165.sol":{"keccak256":"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b","urls":["bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df","dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d","urls":["bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875","dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol":{"keccak256":"0xe19a4d5f31d2861e7344e8e535e2feafb913d806d3e2b5fe7782741a2a7094fe","urls":["bzz-raw://4aed79c0fa6f0546ed02f2f683e8f77f0fd2ed7eb34d8bbf3d373c9a6d95b13c","dweb:/ipfs/QmWqVz6UAVqmnWU5pqYPt1o6iDEZyPaBraAA3rKfTTSfYj"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/Checkpoints.sol":{"keccak256":"0xbdc5e074d7dd6678f67e92b1a51a20226801a407b0e1af3da367c5d1ff4519ad","urls":["bzz-raw://a36cca6b22fff3db16fc789ff6c60eea71d4b156065d4d0c83a0bc5e91a77a8b","dweb:/ipfs/QmYN3exd5AemxjBrN8XMB1p5LbbE16uC3sjbYjwi8AjcGR"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/types/Time.sol":{"keccak256":"0xc7755af115020049e4140f224f9ee88d7e1799ffb0646f37bf0df24bf6213f58","urls":["bzz-raw://7f09bf94d5274334ec021f61a04659db303f31e60460e14b709c9bf187740111","dweb:/ipfs/QmNvgomZYUwFAt4cZbPWAiTeSZQreGehY9BK5xyVJsUttb"],"license":"MIT"},"src/contracts/common/MigratableEntity.sol":{"keccak256":"0x2d736f4dacd5d7e7697503bc426c78b8250fe1694ca157965ec178da6807de58","urls":["bzz-raw://f1237acf96b4b9f9b69156e068eddd726a6e15bd8e87a18dc999cd4ba4da069c","dweb:/ipfs/QmS6M8fiFFSeuJ4ZKKq1z8W7w4ybeHQSy5TLASGoc1LVic"],"license":"BUSL-1.1"},"src/contracts/common/StaticDelegateCallable.sol":{"keccak256":"0x350029aa8955eacaffffaeb58babc5c98e80ebc5c5db388ed17ee6465f4a9d90","urls":["bzz-raw://eb392a8ee9050e0af606897df63e3404e3829e8b688b580663892f9664195764","dweb:/ipfs/QmaXC8jqV8UrrAFkzXTEv2fJF56sy33HhLxAzaRZmUxuXD"],"license":"BUSL-1.1"},"src/contracts/hints/Hints.sol":{"keccak256":"0x8b565df1ae35993c097a9e642002782a8f451f6fd01809cad6bcd345bdf1b99c","urls":["bzz-raw://99a19adb01e350a92f534095b3078229df1f2f83077992d75d58d8684be45971","dweb:/ipfs/QmbmwcuswVbzvwHQFTtrJG86oV98GnfxqYTb8cV8u1acox"],"license":"BUSL-1.1"},"src/contracts/hints/VaultHints.sol":{"keccak256":"0xccb505b7159b769cc114d67b87c2de6b106557f667fc8f3780114baad5c3c442","urls":["bzz-raw://6d0c80a908fc16e96a8b5605a0bd53f9e89ad0ef0a738fbbae80ba4d3160749b","dweb:/ipfs/QmXo5UtWoR8YmunqcbBU8rQMm1nvmvjNPoXcVrDhh4pEwR"],"license":"BUSL-1.1"},"src/contracts/libraries/Checkpoints.sol":{"keccak256":"0xba90097c8bfe0a975499428b5f8ac5569483c7d92ccc28c12d70de416aae040c","urls":["bzz-raw://12f5d93ca94cd06d3147db68993165a58e17903ed53682560de61f3085ad4609","dweb:/ipfs/QmePiuAqvXprMLmFZkGZeGjvGPAvsEDHfCDv7BoQhXu9xE"],"license":"MIT"},"src/contracts/libraries/ERC4626Math.sol":{"keccak256":"0x8441160513c1cbeb1c3b9ee077bcc7e7ce20006b52a77c8dd39ff0ef89699939","urls":["bzz-raw://943f8cc3e26ddf649f465f40c909819f5c864717c4baa339e9e403b9374a4653","dweb:/ipfs/QmXPxi1sUDsrGprZdUgCzoPEosaZMv9ZhygWQ1vAi1phAB"],"license":"MIT"},"src/contracts/vault/Vault.sol":{"keccak256":"0x2ceff6ed3298c4cad144c99fcc79b51cb9397d6ebef00285b915848b476f8c2e","urls":["bzz-raw://11f2fb3581854f3ab6e82e8d4935d9eb510c903a13c3f022346c2956a58f5307","dweb:/ipfs/QmdUnoXoyYoG9SGWyQZCFyLDRUUX3eXyXetkRvw6jxqqBz"],"license":"BUSL-1.1"},"src/contracts/vault/VaultStorage.sol":{"keccak256":"0x57db25b127d77ea3472de53e3a4af3354399655b9268638b99ca5925fa364a56","urls":["bzz-raw://aa763d9a6ec508ae3abfb8228b72b9fd9525279e5135d4962e79ff059feb1173","dweb:/ipfs/QmcbDR6E9wyEpu6V2FkEC4hnWy47zXA9LSKJde6zSGd33Q"],"license":"BUSL-1.1"},"src/interfaces/common/IEntity.sol":{"keccak256":"0x8ef4b63d6da63489778ccd5f8d13ebdd527dd4b62730b2c616df5af7474d2d21","urls":["bzz-raw://5a8d69576a9219d85c50816a18ad53a4d53cfcb27ed38b8cccc808dc2734b71b","dweb:/ipfs/QmYVN3P4Q4REvBWJ97TbAcaxm3uyB2anV6NSGa6ZtSwcEv"],"license":"MIT"},"src/interfaces/common/IMigratableEntity.sol":{"keccak256":"0x8f5f2809f3afbe8ebfbb365dd7b57b4dd3b6f9943a6187eaf648d45895b8e3c4","urls":["bzz-raw://0ffe640537d539e7a4fde70d30d3e4c57f4ba9c2c25c450cea713aae38e8fd5c","dweb:/ipfs/QmSUTGzvdcn1R1KB7tLThMRtESsfPbeXDhhhKWGtntzBds"],"license":"MIT"},"src/interfaces/common/IRegistry.sol":{"keccak256":"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb","urls":["bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014","dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK"],"license":"MIT"},"src/interfaces/common/IStaticDelegateCallable.sol":{"keccak256":"0xa335d4e81b9071b7de66ef92b43ff20671d86516eb1be46fef29a3483cd3f5d5","urls":["bzz-raw://d464b9db863c14c05547d2b23352f2e9b7b784799cf09f6bbc4906a2a74e3516","dweb:/ipfs/QmUVWzFvJz7eEbDQKiFTTzwi7TEbjcs3VmwdM4kuptAKvi"],"license":"MIT"},"src/interfaces/delegator/IBaseDelegator.sol":{"keccak256":"0x96bb312f032e17accce3f8f80936d99468029d6b37c9ca74acdb4b026a0148ee","urls":["bzz-raw://2a66dcb5b7d1a6ef6a363431ea98ebd78bc4fdd3d7a134d9b542dc66e7d025c2","dweb:/ipfs/QmRhTPLd2ZAyRHmJUFUcWKs9b3if49QY17LYZuRqWmghw8"],"license":"MIT"},"src/interfaces/slasher/IBaseSlasher.sol":{"keccak256":"0x7c82528b445659c313ab77335c407b0b6efe5e79027187bb287f7bc74202b404","urls":["bzz-raw://0274c90aa5df1aa6bb470a6aab53992fb14fd7e5472c9430416505b29647d9cf","dweb:/ipfs/QmckbmJLDetPemVzCnnGcKYWAZV2BRFXGDsjiaec8jkHxx"],"license":"MIT"},"src/interfaces/vault/IVault.sol":{"keccak256":"0xffee01d383cd4e1a5530c614bf4360c1ef070c288abec9da1eb531b51bc07235","urls":["bzz-raw://04f0046cac285d8ec44ebbb1f79dc94fab4495767190cad8364fbc1fafaadfb9","dweb:/ipfs/QmUawAunwzXfCyShWfhKeThAgKtqe51hmrxvrXvM772M2R"],"license":"MIT"},"src/interfaces/vault/IVaultStorage.sol":{"keccak256":"0x592626f13754194f83047135de19229c49390bd59e34659b1bb38be71d973a22","urls":["bzz-raw://06a6a9dfddd05e580b32bebe2cff4f63ba26a653180676d58225dd30d9c89d3e","dweb:/ipfs/QmdgzBeY6Sxo8mGtyBxtv1tM1c2kU6J6zjeRd7vuXm4DU6"],"license":"MIT"}},"version":1},"id":85} \ No newline at end of file +{"abi":[{"type":"constructor","inputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"DEFAULT_ADMIN_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"DELEGATOR_FACTORY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"DEPOSITOR_WHITELIST_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"DEPOSIT_LIMIT_SET_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"DEPOSIT_WHITELIST_SET_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"FACTORY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"IS_DEPOSIT_LIMIT_SET_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"SLASHER_FACTORY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"activeBalanceOf","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"activeBalanceOfAt","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"timestamp","type":"uint48","internalType":"uint48"},{"name":"hints","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"activeBalanceOfHints","inputs":[{"name":"vault","type":"address","internalType":"address"},{"name":"account","type":"address","internalType":"address"},{"name":"timestamp","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"activeShares","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"activeSharesAt","inputs":[{"name":"timestamp","type":"uint48","internalType":"uint48"},{"name":"hint","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"activeSharesHint","inputs":[{"name":"vault","type":"address","internalType":"address"},{"name":"timestamp","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"activeSharesHintInternal","inputs":[{"name":"timestamp","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"exists","type":"bool","internalType":"bool"},{"name":"hint","type":"uint32","internalType":"uint32"}],"stateMutability":"view"},{"type":"function","name":"activeSharesOf","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"activeSharesOfAt","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"timestamp","type":"uint48","internalType":"uint48"},{"name":"hint","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"activeSharesOfHint","inputs":[{"name":"vault","type":"address","internalType":"address"},{"name":"account","type":"address","internalType":"address"},{"name":"timestamp","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"activeSharesOfHintInternal","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"timestamp","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"exists","type":"bool","internalType":"bool"},{"name":"hint","type":"uint32","internalType":"uint32"}],"stateMutability":"view"},{"type":"function","name":"activeStake","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"activeStakeAt","inputs":[{"name":"timestamp","type":"uint48","internalType":"uint48"},{"name":"hint","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"activeStakeHint","inputs":[{"name":"vault","type":"address","internalType":"address"},{"name":"timestamp","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"activeStakeHintInternal","inputs":[{"name":"timestamp","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"exists","type":"bool","internalType":"bool"},{"name":"hint","type":"uint32","internalType":"uint32"}],"stateMutability":"view"},{"type":"function","name":"burner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"claim","inputs":[{"name":"recipient","type":"address","internalType":"address"},{"name":"epoch","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"claimBatch","inputs":[{"name":"recipient","type":"address","internalType":"address"},{"name":"epochs","type":"uint256[]","internalType":"uint256[]"}],"outputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"collateral","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"currentEpoch","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"currentEpochStart","inputs":[],"outputs":[{"name":"","type":"uint48","internalType":"uint48"}],"stateMutability":"view"},{"type":"function","name":"delegator","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"deposit","inputs":[{"name":"onBehalfOf","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"depositedAmount","type":"uint256","internalType":"uint256"},{"name":"mintedShares","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"depositLimit","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"depositWhitelist","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"epochAt","inputs":[{"name":"timestamp","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"epochDuration","inputs":[],"outputs":[{"name":"","type":"uint48","internalType":"uint48"}],"stateMutability":"view"},{"type":"function","name":"epochDurationInit","inputs":[],"outputs":[{"name":"","type":"uint48","internalType":"uint48"}],"stateMutability":"view"},{"type":"function","name":"getRoleAdmin","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"grantRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"hasRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"initialize","inputs":[{"name":"initialVersion","type":"uint64","internalType":"uint64"},{"name":"owner_","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"isDelegatorInitialized","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isDepositLimit","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isDepositorWhitelisted","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"value","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isInitialized","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isSlasherInitialized","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isWithdrawalsClaimed","inputs":[{"name":"epoch","type":"uint256","internalType":"uint256"},{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"value","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"migrate","inputs":[{"name":"newVersion","type":"uint64","internalType":"uint64"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"nextEpochStart","inputs":[],"outputs":[{"name":"","type":"uint48","internalType":"uint48"}],"stateMutability":"view"},{"type":"function","name":"onSlash","inputs":[{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"captureTimestamp","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"slashedAmount","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"previousEpochStart","inputs":[],"outputs":[{"name":"","type":"uint48","internalType":"uint48"}],"stateMutability":"view"},{"type":"function","name":"redeem","inputs":[{"name":"claimer","type":"address","internalType":"address"},{"name":"shares","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"withdrawnAssets","type":"uint256","internalType":"uint256"},{"name":"mintedShares","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"renounceRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"callerConfirmation","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"revokeRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setDelegator","inputs":[{"name":"delegator_","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setDepositLimit","inputs":[{"name":"limit","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setDepositWhitelist","inputs":[{"name":"status","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setDepositorWhitelistStatus","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"status","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setIsDepositLimit","inputs":[{"name":"status","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setSlasher","inputs":[{"name":"slasher_","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"slashableBalanceOf","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"slasher","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"staticDelegateCall","inputs":[{"name":"target","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"totalStake","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"version","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"withdraw","inputs":[{"name":"claimer","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"burnedShares","type":"uint256","internalType":"uint256"},{"name":"mintedShares","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"withdrawalShares","inputs":[{"name":"epoch","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"withdrawalSharesOf","inputs":[{"name":"epoch","type":"uint256","internalType":"uint256"},{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"withdrawals","inputs":[{"name":"epoch","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"withdrawalsOf","inputs":[{"name":"epoch","type":"uint256","internalType":"uint256"},{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"event","name":"Claim","inputs":[{"name":"claimer","type":"address","indexed":true,"internalType":"address"},{"name":"recipient","type":"address","indexed":true,"internalType":"address"},{"name":"epoch","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"ClaimBatch","inputs":[{"name":"claimer","type":"address","indexed":true,"internalType":"address"},{"name":"recipient","type":"address","indexed":true,"internalType":"address"},{"name":"epochs","type":"uint256[]","indexed":false,"internalType":"uint256[]"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Deposit","inputs":[{"name":"depositor","type":"address","indexed":true,"internalType":"address"},{"name":"onBehalfOf","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"shares","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"OnSlash","inputs":[{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"captureTimestamp","type":"uint48","indexed":false,"internalType":"uint48"},{"name":"slashedAmount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"RoleAdminChanged","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"previousAdminRole","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"newAdminRole","type":"bytes32","indexed":true,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"RoleGranted","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"sender","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"RoleRevoked","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"sender","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"SetDelegator","inputs":[{"name":"delegator","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"SetDepositLimit","inputs":[{"name":"limit","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"SetDepositWhitelist","inputs":[{"name":"status","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"SetDepositorWhitelistStatus","inputs":[{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"status","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"SetIsDepositLimit","inputs":[{"name":"status","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"SetSlasher","inputs":[{"name":"slasher","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Withdraw","inputs":[{"name":"withdrawer","type":"address","indexed":true,"internalType":"address"},{"name":"claimer","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"burnedShares","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"mintedShares","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"error","name":"AccessControlBadConfirmation","inputs":[]},{"type":"error","name":"AccessControlUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"neededRole","type":"bytes32","internalType":"bytes32"}]},{"type":"error","name":"AddressEmptyCode","inputs":[{"name":"target","type":"address","internalType":"address"}]},{"type":"error","name":"AddressInsufficientBalance","inputs":[{"name":"account","type":"address","internalType":"address"}]},{"type":"error","name":"AlreadyClaimed","inputs":[]},{"type":"error","name":"AlreadyInitialized","inputs":[]},{"type":"error","name":"AlreadySet","inputs":[]},{"type":"error","name":"CheckpointUnorderedInsertion","inputs":[]},{"type":"error","name":"DelegatorAlreadyInitialized","inputs":[]},{"type":"error","name":"DepositLimitReached","inputs":[]},{"type":"error","name":"ExternalCall","inputs":[]},{"type":"error","name":"FailedInnerCall","inputs":[]},{"type":"error","name":"InsufficientClaim","inputs":[]},{"type":"error","name":"InsufficientDeposit","inputs":[]},{"type":"error","name":"InsufficientRedemption","inputs":[]},{"type":"error","name":"InsufficientWithdrawal","inputs":[]},{"type":"error","name":"InvalidAccount","inputs":[]},{"type":"error","name":"InvalidCaptureEpoch","inputs":[]},{"type":"error","name":"InvalidClaimer","inputs":[]},{"type":"error","name":"InvalidCollateral","inputs":[]},{"type":"error","name":"InvalidDelegator","inputs":[]},{"type":"error","name":"InvalidEpoch","inputs":[]},{"type":"error","name":"InvalidEpochDuration","inputs":[]},{"type":"error","name":"InvalidInitialization","inputs":[]},{"type":"error","name":"InvalidLengthEpochs","inputs":[]},{"type":"error","name":"InvalidOnBehalfOf","inputs":[]},{"type":"error","name":"InvalidRecipient","inputs":[]},{"type":"error","name":"InvalidSlasher","inputs":[]},{"type":"error","name":"InvalidTimestamp","inputs":[]},{"type":"error","name":"MathOverflowedMulDiv","inputs":[]},{"type":"error","name":"MissingRoles","inputs":[]},{"type":"error","name":"NoPreviousEpoch","inputs":[]},{"type":"error","name":"NotDelegator","inputs":[]},{"type":"error","name":"NotFactory","inputs":[]},{"type":"error","name":"NotInitialized","inputs":[]},{"type":"error","name":"NotInitializing","inputs":[]},{"type":"error","name":"NotSlasher","inputs":[]},{"type":"error","name":"NotWhitelistedDepositor","inputs":[]},{"type":"error","name":"OwnableInvalidOwner","inputs":[{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"OwnableUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"}]},{"type":"error","name":"ReentrancyGuardReentrantCall","inputs":[]},{"type":"error","name":"SafeCastOverflowedUintDowncast","inputs":[{"name":"bits","type":"uint8","internalType":"uint8"},{"name":"value","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"SafeERC20FailedOperation","inputs":[{"name":"token","type":"address","internalType":"address"}]},{"type":"error","name":"SlasherAlreadyInitialized","inputs":[]},{"type":"error","name":"TooMuchRedeem","inputs":[]},{"type":"error","name":"TooMuchWithdraw","inputs":[]}],"bytecode":{"object":"0x610100806040523461011057306080525f60a0525f60c0527ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a009081549060ff8260401c1661010157506001600160401b036002600160401b0319828216016100bc575b5f60e0526040516152a3908161011582396080518181816110590152818161133101526123a7015260a05181818161137d01526118cc015260c051818181611a350152611ee5015260e0518181816107e00152610a2e0152f35b6001600160401b031990911681179091556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a15f8080610062565b63f92ee8a960e01b8152600490fd5b5f80fdfe60806040526004361015610011575f80fd5b5f3560e01c806301ffc9a7146104a45780631415519b1461049f5780631b66c9e11461049a5780631e9a695014610495578063248a9ca31461049057806327810b6e1461048b578063281f5752146104865780632abe3048146104815780632d73c69c1461047c5780632dd31000146104775780632f2ff15d1461047257806336568abe1461046d578063392e53cd146104685780634105a7dd14610463578063463616711461045e57806347e7ef241461045957806348d3b775146104545780634ff0876a1461044f57806350861adc1461044a57806350f22068146104455780635346e34f1461044057806354fd4d501461043b57806355a2c6721461043657806357ec83cc1461043157806359f769a91461042c5780635cc070761461042757806361a8c8c41461042257806364b03fdc1461041d57806367567add146104185780636da3e06d146104135780636ec1e3f81461040e578063715018a6146104095780637278e31c1461040457806373790ab3146103ff57806376671808146103fa578063794b15b7146103f55780637953b33b146103f05780637c04c80a146103eb578063810da75d146103e65780638326056f146103e157806383cd9cc3146103dc57806387df0788146103d75780638b0e9f3f146103d25780638da5cb5b146103cd57806391d14854146103c85780639d66201b146103c35780639f86fd85146103be578063a1b12202146103b9578063a217fddf146103b4578063a21a1df9146103af578063a2861466146103aa578063a3b54172146103a5578063a5d03223146103a0578063aabc24961461039b578063aad3ec9614610396578063afba70ad14610391578063b13442711461038c578063bd49c35f14610387578063bdc8144b14610382578063bfefcd7b1461037d578063c31e8dd714610378578063ce9b793014610373578063d547741f1461036e578063d8dfeb4514610369578063db38871514610364578063de4997161461035f578063eb5562381461035a578063ecf7085814610355578063efb559d614610350578063f2fde38b1461034b578063f3fef3a314610346578063f5e7ee0f146103415763f9e1bf6c1461033c575f80fd5b61264c565b612622565b61257c565b61254f565b612400565b6123e3565b61238f565b612375565b612309565b6122de565b612292565b61226a565b612200565b6121e6565b612108565b6120ee565b6120c6565b61209c565b611fdb565b611e24565b611dde565b611d91565b611c9e565b611c64565b611c4a565b611c26565b611b92565b611b58565b611afa565b611ac6565b611a64565b611a20565b611867565b61184d565b611834565b6117ce565b6117a7565b611767565b61174d565b61170c565b611438565b6113d1565b6113ac565b611368565b611312565b6112e4565b611248565b61121e565b6111f7565b6110bf565b61103a565b611008565b610f73565b610f5a565b610efd565b610edd565b610ebc565b610bfe565b610bd6565b610b3b565b610af6565b610aab565b610a5d565b610a19565b6109a5565b61079b565b6106cd565b6106a5565b61066c565b610583565b610538565b6104fe565b346104fa5760203660031901126104fa5760043563ffffffff60e01b81168091036104fa57602090637965db0b60e01b81149081156104e9575b506040519015158152f35b6301ffc9a760e01b1490505f6104de565b5f80fd5b346104fa575f3660031901126104fa5760206040517fc6aaadd7371d5e8f9ed6849dd66a66573a3ba37167d03f4352c9ba5693678fac8152f35b346104fa575f3660031901126104fa5760206040517f9c56d972d63cbb4195b3c1484691dfc220fa96a4c47e7b6613bd82a022029e068152f35b6001600160a01b038116036104fa57565b346104fa5760403660031901126104fa576004356105a081610572565b602435906105ac613080565b6001600160a01b0381161561065b57335f908152600e602052604090206105d790614498565b614498565b8211610649576105f76105e86143ab565b6105f0614424565b90846144db565b9182156106345782610608926130af565b9061061f60015f8051602061522e83398151915255565b604080519182526020820192909252f35b0390f35b60405160016245ddc760e11b03198152600490fd5b604051632418411f60e11b8152600490fd5b6040516208978560e71b8152600490fd5b346104fa5760203660031901126104fa576004355f525f8051602061520e8339815191526020526020600160405f200154604051908152f35b346104fa575f3660031901126104fa576001546040516001600160a01b039091168152602090f35b346104fa575f3660031901126104fa576106e5612c66565b80156107465760015465ffffffffffff8160a01c16915f198101908111610741576107139160d01c90612695565b81018091116107415761072861063091613229565b60405165ffffffffffff90911681529081906020820190565b612666565b604051639fa56a5b60e01b8152600490fd5b600435906001600160401b03821682036104fa57565b9181601f840112156104fa578235916001600160401b0383116104fa57602083818601950101116104fa57565b346104fa5760403660031901126104fa576107b4610758565b6001600160401b036024358181116104fa576107d490369060040161076e565b50506107de613080565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316330361085a575f8051602061524e833981519152549060ff8260401c1692831561084a575b505050610838575f80fd5b60405163f92ee8a960e01b8152600490fd5b81169116101590505f808061082d565b604051631966391b60e11b8152600490fd5b65ffffffffffff8116036104fa57565b634e487b7160e01b5f52604160045260245ffd5b606081019081106001600160401b038211176108ab57604052565b61087c565b604081019081106001600160401b038211176108ab57604052565b608081019081106001600160401b038211176108ab57604052565b90601f801991011681019081106001600160401b038211176108ab57604052565b6040519061016082018281106001600160401b038211176108ab57604052565b60405190610934826108b0565b565b6001600160401b0381116108ab57601f01601f191660200190565b92919261095d82610936565b9161096b60405193846108e6565b8294818452818301116104fa578281602093845f960137010152565b9080601f830112156104fa578160206109a293359101610951565b90565b346104fa5760603660031901126104fa576004356109c281610572565b602435906109cf8261086c565b604435906001600160401b0382116104fa576020926109f5610a11933690600401610987565b6001600160a01b039092165f908152600e85526040902061340e565b604051908152f35b346104fa575f3660031901126104fa576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346104fa5760403660031901126104fa57610aa9602435600435610a8082610572565b805f525f8051602061520e833981519152602052610aa4600160405f2001546135e5565b6138e5565b005b346104fa5760403660031901126104fa57602435610ac881610572565b336001600160a01b03821603610ae457610aa99060043561391b565b60405163334bd91960e11b8152600490fd5b346104fa575f3660031901126104fa5760ff60025460a01c1680610b22575b6020906040519015158152f35b5060035460a01c60ff16610b15565b801515036104fa57565b346104fa5760203660031901126104fa57600435610b5881610b31565b610b60613080565b610b686134da565b5f54901515908160ff8216151514610bc45760ff191660ff8216175f556040519081527f3e12b7b36c75ac9609a3f58609b331210428e1a85909132638955ba0301eec3390602090a160015f8051602061522e83398151915255005b60405163a741a04560e01b8152600490fd5b346104fa575f3660031901126104fa57602065ffffffffffff60015460a01c16604051908152f35b346104fa576040806003193601126104fa576004803591610c1e83610572565b610c26613080565b6001600160a01b0391838316908115610eae575f5460ff811680610e95575b610e865783516370a0823160e01b808252308483019081529096602093909160109190911c82169084908490819083010381845afa928315610e5e575f93610e63575b50610c9a9060243590309033906139ad565b5f5486519788523085890190815290979184918391908290819060200103918b60101c165afa908115610e5e57610cd9935f92610e31575b5050612688565b938415610e225760081c60ff1680610e0d575b610dff57509061063091610d9d610d016143ab565b95610d4a610d0d614424565b610d35610d1b8a838b6144db565b99610d2f8a610d2942613229565b926126b6565b90613b01565b5050610d4489610d2942613229565b90613be1565b50506001600160a01b0381165f908152600e6020526040902090610d9788610d926105d2610d7742613229565b6001600160a01b039095165f908152600e6020526040902090565b6126b6565b91613cbd565b505081518481526020810186905233907fdcbc1c05240f31ff3ad067ef1ee35ce4997762752e3a095284754544f4c709d790604090a3610de960015f8051602061522e83398151915255565b5191825260208201929092529081906040820190565b8251632484557960e01b8152fd5b50610e1a84610d926143ab565b815410610cec565b50825163070f6eed60e11b8152fd5b610e509250803d10610e57575b610e4881836108e6565b8101906126e4565b5f80610cd2565b503d610e3e565b6126f3565b610c9a919350610e7f90853d8711610e5757610e4881836108e6565b9290610c88565b5082516304f63b8560e01b8152fd5b50335f9081526005602052604090205460ff1615610c45565b8251630d534ce360e11b8152fd5b346104fa575f3660031901126104fa57602060ff5f54166040519015158152f35b346104fa575f3660031901126104fa57602060015460d01c604051908152f35b346104fa575f3660031901126104fa57602060ff60025460a01c166040519015158152f35b9060406003198301126104fa57600435610f3b8161086c565b91602435906001600160401b0382116104fa576109a291600401610987565b346104fa576020610a11610f6d36610f22565b90613284565b346104fa5760203660031901126104fa57600435610f9081610b31565b610f98613080565b610fa0613537565b5f54901515908160ff8260081c16151514610bc45761ff001916600882901b61ff0016175f556040519081527ffa7a25a0b611d4ba3c0ea990e90dc23d484a5dd7a1be4733fef2946ba74530c690602090a1610aa960015f8051602061522e83398151915255565b346104fa575f3660031901126104fa5760206001600160401b035f8051602061524e8339815191525416604051908152f35b346104fa5760203660031901126104fa576004356110578161086c565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633036110ad5761109090613d9f565b60408051941515855263ffffffff91909116602085015292915050f35b604051637ca475e560e11b8152600490fd5b346104fa5760603660031901126104fa576110d8610758565b6024356110e481610572565b6001600160401b03916044358381116104fa5761110590369060040161076e565b5f8051602061524e8339815191529491855494838616806111e65760ff8760401c169081156111d9575b50610838577fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2966111d49661119c958716906001600160401b0319161790556111975f8051602061524e833981519152600160401b68ff000000000000000019825416179055565b6126fe565b5f8051602061524e833981519152805468ff0000000000000000191690556040516001600160401b0390911681529081906020820190565b0390a1005b905084861611155f61112f565b60405162dc149f60e41b8152600490fd5b346104fa5760203660031901126104fa576020610a1160043561121981610572565b612b1e565b346104fa5760203660031901126104fa576004355f526006602052602060405f2054604051908152f35b346104fa575f3660031901126104fa5760015465ffffffffffff61127e818360a01c1692611274612c66565b9060d01c90612695565b820180921161074157611292602092613229565b60405191168152f35b60409060031901126104fa576004356112b381610572565b906024356109a28161086c565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b346104fa576106306112fe6112f83661129b565b90612bac565b6040519182916020835260208301906112c0565b346104fa5760203660031901126104fa5760043561132f8161086c565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633036110ad5761109090613ea4565b346104fa575f3660031901126104fa576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346104fa575f3660031901126104fa57602060ff60035460a01c166040519015158152f35b346104fa575f3660031901126104fa576113e96141eb565b5f805160206151ae83398151915280546001600160a01b031981169091555f906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b346104fa5760403660031901126104fa576004356024356114588161086c565b611460613080565b60035461147d906001600160a01b03165b6001600160a01b031690565b33036116fa5761148b612c66565b9061149581612c9a565b90821515806116e9575b80156116e0575b6116ce57610630937ff9d090c096f71cd1659861a9ce5b6f384bceb4e2fa4e4a19edf6489a9b8d56c7926114d86143ab565b946114f36114e5826126a8565b5f52600660205260405f2090565b54908281036115e7575061150781876126b6565b6115118185614223565b9687806115a0575b50505050505b8361156c575b6040805191825265ffffffffffff929092166020820152908101839052606090a161155c60015f8051602061522e83398151915255565b6040519081529081906020820190565b5f5461159b9085906115899060101c6001600160a01b0316611471565b6001546001600160a01b0316906142d1565b611525565b6115dc93610cd283610d2f6115c66115bf6114e5986115d6988861423f565b8096612688565b946115d042613229565b92612688565b926126a8565b555f80808087611519565b91506115fb825f52600660205260405f2090565b549061160b81610d92848a6126b6565b906116168286614223565b9788611627575b505050505061151f565b61169c938361164f9361165c8c61165761164561168d99888461423f565b978895858461423f565b948592612688565b612688565b938484106116a7575b610cd290610d2f61167b9596976115d042613229565b6116876114e5876126a8565b55612688565b915f52600660205260405f2090565b555f8080808061161d565b916116c3610cd2916116bd8661167b9798612688565b906126b6565b859450929050611665565b604051635e18d2a560e01b8152600490fd5b508282116114a6565b506116f38361267a565b821061149f565b60405163dabc4ad960e01b8152600490fd5b346104fa575f3660031901126104fa5760015465ffffffffffff808260a01c1691611735612c66565b600181018091116107415761127e9160d01c90612695565b346104fa575f3660031901126104fa576020610a11612c66565b346104fa5760203660031901126104fa5760043561178481610572565b60018060a01b03165f526005602052602060ff60405f2054166040519015158152f35b346104fa5760203660031901126104fa576020610a116004356117c98161086c565b612c9a565b346104fa5760403660031901126104fa576004356117eb81610572565b6024356001600160401b038082116104fa57366023830112156104fa5781600401359081116104fa573660248260051b840101116104fa5761063092602461155c930190612cd5565b346104fa576020610a1161184736610f22565b90613359565b346104fa576106306112fe6118613661129b565b90612e03565b346104fa576020806003193601126104fa57600480359061188782610572565b61188f613080565b60025460a01c60ff16611a11576040516302910f8b60e31b81526001600160a01b03838116838301908152909491908290829081906020010381887f0000000000000000000000000000000000000000000000000000000000000000165afa908115610e5e575f916119e4575b50156119d45760405163fbfa77cf60e01b8152838516949082818581895afa928315610e5e575f936119a5575b5050309116036119965750600280546001600160a01b03929092166001600160a81b031990921691909117600160a01b1790557fdb2160616f776a37b24808115554e79439bf26cccbbd4438190cc6d28e80ecd15f80a2610aa960015f8051602061522e83398151915255565b60405163b9f0f17160e01b8152fd5b6119c5929350803d106119cd575b6119bd81836108e6565b810190612e5a565b905f80611929565b503d6119b3565b506040516324e5af8d60e21b8152fd5b611a049150823d8411611a0a575b6119fc81836108e6565b810190612e3a565b5f6118fc565b503d6119f2565b604051631380833b60e01b8152fd5b346104fa575f3660031901126104fa576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346104fa575f3660031901126104fa57611a7c612c66565b611a846143ab565b90805f52600660205260405f205482018092116107415760018101809111610741575f52600660205260405f2054810180911161074157602090604051908152f35b346104fa575f3660031901126104fa575f805160206151ae833981519152546040516001600160a01b039091168152602090f35b346104fa5760403660031901126104fa57602060ff611b4c602435611b1e81610572565b6004355f525f8051602061520e833981519152845260405f209060018060a01b03165f5260205260405f2090565b54166040519015158152f35b346104fa5760203660031901126104fa57600435611b7581610572565b60018060a01b03165f52600e6020526020610a1160405f20614498565b346104fa5760403660031901126104fa57600435611baf81610572565b6024356001600160401b0381116104fa575f91611bd18392369060040161076e565b90816040519283928337810184815203915af4611c1e611bef612e6f565b91611c106040519384921515602084015260408084015260608301906112c0565b03601f1981018352826108e6565b805190602001fd5b346104fa575f3660031901126104fa57602060ff5f5460081c166040519015158152f35b346104fa575f3660031901126104fa5760206040515f8152f35b346104fa575f3660031901126104fa5760206040517f4a634bc14d77baf979756509ef4298c6f6318af357828612545267ee2eb792338152f35b346104fa5760403660031901126104fa57600435611cbb81610572565b602435611cc781610b31565b611ccf613080565b611cd761358e565b6001600160a01b038216918215611d7f575f8381526005602052604090205460ff16151582151514610bc4576001600160a01b03165f9081526005602052604090207ff991b1ecfb5115cbb36a2b2e2240c058406d2acc2fcc6e9e2dc99d845ff70a6291611d6691611d54908260ff801983541691151516179055565b60405190151581529081906020820190565b0390a2610aa960015f8051602061522e83398151915255565b604051630da30f6560e31b8152600490fd5b346104fa5760403660031901126104fa576020611dd5602435611db381610572565b6004355f526008835260405f209060018060a01b03165f5260205260405f2090565b54604051908152f35b346104fa5760403660031901126104fa57602060ff611b4c602435611e0281610572565b6004355f526009845260405f209060018060a01b03165f5260205260405f2090565b346104fa576020806003193601126104fa576004803590611e4482610572565b611e4c613080565b60035460a01c60ff16611fcc576001600160a01b03828116939084611eba575b6003805460ff60a01b1916600160a01b179055847fe7e4c932e03abddfe20f83af42c33627e816115c7ec2b168441f65dc14bfc3ba5f80a2610aa960015f8051602061522e83398151915255565b6040516302910f8b60e31b81526001600160a01b0385168482019081528390829081906020010381857f0000000000000000000000000000000000000000000000000000000000000000165afa908115610e5e575f91611faf575b5015611f9e5760405163fbfa77cf60e01b815282818581895afa928315610e5e575f93611f7f575b505030911603611f705750600380546001600160a01b0319166001600160a01b039092169190911790555f808080611e6c565b604051633f3e089160e21b8152fd5b611f96929350803d106119cd576119bd81836108e6565b905f80611f3d565b60405163dabc4ad960e01b81528390fd5b611fc69150833d8511611a0a576119fc81836108e6565b5f611f15565b60405163703fe2e560e01b8152fd5b346104fa5760403660031901126104fa57600435611ff881610572565b60243590612004613080565b6001600160a01b039181831690811561208a57612035610630946120278361430f565b9485915f5460101c166142d1565b604080519182526020820184905233917f865ca08d59f5cb456e85cd2f7ef63664ea4f73327414e9d8152c4158b0e946459190a360015f8051602061522e833981519152556040519081529081906020820190565b604051634e46966960e11b8152600490fd5b346104fa5760203660031901126104fa576004355f526007602052602060405f2054604051908152f35b346104fa575f3660031901126104fa576003546040516001600160a01b039091168152602090f35b346104fa575f3660031901126104fa576020610a116143ab565b346104fa5760203660031901126104fa57600435612124613080565b335f9081527f2d4ccbfe9f7672a6f2537c1e5bce6adacb73706879154bbab6ce096012d6721660205260409020547f4a634bc14d77baf979756509ef4298c6f6318af357828612545267ee2eb792339060ff16156121c857508060045414610bc4576020817f854df3eb95564502c8bc871ebdd15310ee26270f955f6c6bd8cea68e75045bc092600455604051908152a160015f8051602061522e83398151915255005b6044906040519063e2517d3f60e01b82523360048301526024820152fd5b346104fa575f3660031901126104fa576020610a11614424565b346104fa5760203660031901126104fa5760043561221d81610572565b612225612c66565b61222e82612b1e565b916122398183612f59565b830180931161074157600182018092116107415761225691612f59565b810180911161074157602090604051908152f35b346104fa575f3660031901126104fa576002546040516001600160a01b039091168152602090f35b346104fa5760403660031901126104fa57610aa96024356004356122b582610572565b805f525f8051602061520e8339815191526020526122d9600160405f2001546135e5565b61391b565b346104fa575f3660031901126104fa575f5460405160109190911c6001600160a01b03168152602090f35b346104fa575f3660031901126104fa5760206040517fbae4ee3de6c709ff9a002e774c5b78cb381560b219213c88ae0f1e207c03c0238152f35b60609060031901126104fa5760043561235b81610572565b9060243561236881610572565b906044356109a28161086c565b346104fa576106306112fe61238936612343565b91612e9e565b346104fa5761239d3661129b565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811633036110ad5761109092165f52600e60205260405f20613f6a565b346104fa575f3660031901126104fa576020600454604051908152f35b346104fa5760603660031901126104fa5760043561241d81610572565b6024359061242a8261086c565b6001600160401b03916044358381116104fa5761244b90369060040161076e565b9092604093845161245b81610890565b606081526060602082015260608682015292806124ba575b610630866124ab87876124a561248c89848451916126c3565b928561249c602085015183613359565b93015190613284565b916144db565b90519081529081906020820190565b81019392506020818503126104fa578035908682116104fa5701926060848203126104fa578451956124eb87610890565b84358181116104fa5782612500918701610987565b875260208501358181116104fa578261251a918701610987565b6020880152858501359081116104fa57610630966125436124a59361248c936124ab9801610987565b87820152939450612473565b346104fa5760203660031901126104fa57610aa960043561256f81610572565b6125776141eb565b612ee8565b346104fa5760403660031901126104fa5760043561259981610572565b6024356125a4613080565b6001600160a01b0382161561065b578015612610576125d36125c4614424565b6125cc6143ab565b90836148f9565b335f908152600e602052604090209092906125ed90614498565b83116125fe576106089183916130af565b6040516321727a3760e11b8152600490fd5b604051636c6c627d60e11b8152600490fd5b346104fa5760403660031901126104fa576020610a1160243561264481610572565b600435612f59565b346104fa576106306112fe61266036612343565b91612fb7565b634e487b7160e01b5f52601160045260245ffd5b5f1981019190821161074157565b9190820391821161074157565b8181029291811591840414171561074157565b906001820180921161074157565b9190820180921161074157565b6001600160a01b03165f908152600e602052604090206109a292919061340e565b908160209103126104fa575190565b6040513d5f823e3d90fd5b91612750916127419161270f614d5b565b612717614d5b565b60015f8051602061522e833981519152556001600160a01b0394808616612b04575b503691610951565b60208082518301019101614054565b805182166001600160a01b031615612af257604080820165ffffffffffff61277e825165ffffffffffff1690565b1615612ae15760c08301805190929061279f906001600160a01b0316611471565b15612992575b50916128de6101409261287d61285861293c966127f36127cb875160018060a01b031690565b5f805462010000600160b01b03191660109290921b62010000600160b01b0316919091179055565b6020860151600180546001600160a01b0319166001600160a01b0390921691909117905561284c61282342613229565b6001805465ffffffffffff60a01b191660a09290921b65ffffffffffff60a01b16919091179055565b5165ffffffffffff1690565b600180546001600160d01b031660d09290921b6001600160d01b031916919091179055565b61289d61288d6060850151151590565b60ff80195f541691151516175f55565b6128c46128ad6080850151151590565b61ff005f5491151560081b169061ff001916175f55565b6128d160a0840151600455565b516001600160a01b031690565b848116612982575b5060e08101516001600160a01b0316848116612972575b506101008101516001600160a01b0316848116612962575b506101208101516001600160a01b0316848116612952575b5001516001600160a01b031690565b9081166129465750565b61294f90613876565b50565b61295b90613807565b505f61292d565b61296b90613798565b505f612915565b61297b906136c2565b505f6128fd565b61298b90613611565b505f6128e6565b60e08401516129a9906001600160a01b0316611471565b15612a7e575b6101208401516129c7906001600160a01b0316611471565b6127a557608084015115612a345760a08401511580612a15575b612a055750916128de6101409261287d61285861293c965b949650505092506127a5565b5163183c854560e21b8152600490fd5b50610140840151612a2e906001600160a01b0316611471565b156129e1565b60a084015115801590612a5e575b612a055750916128de6101409261287d61285861293c966129f9565b50610140840151612a77906001600160a01b0316611471565b1515612a42565b606084015115612ab457610100840151612aa0906001600160a01b0316611471565b6129af575163183c854560e21b8152600490fd5b610100840151612acc906001600160a01b0316611471565b156129af575163183c854560e21b8152600490fd5b81516368f5f8f160e11b8152600490fd5b6040516368f7a67560e11b8152600490fd5b612b1890612b10614d5b565b612577614d5b565b5f612739565b6001600160a01b03165f908152600e60205260409020612b3d90614498565b612b456143ab565b612b4d614424565b90600181018091116107415760018201809211610741576109a29261423f565b519061093482610b31565b519063ffffffff821682036104fa57565b91908260409103126104fa576109a260208351612ba581610b31565b9301612b78565b9190612be8612bf79160609465ffffffffffff604051926367567add60e01b602085015216602483015260248252612be382610890565b61411d565b60208082518301019101612b89565b90612bff5750565b90915063ffffffff60405191166020820152602081526109a2816108b0565b65ffffffffffff918216908216039190821161074157565b634e487b7160e01b5f52601260045260245ffd5b9065ffffffffffff809116918215612c6157160490565b612c36565b612c6f42613229565b612c96600154612c8c65ffffffffffff93848360a01c1690612c1e565b9060d01c90612c4a565b1690565b6001549065ffffffffffff91828160a01c16918284821610612cc357612c9692612c8c91612c1e565b60405163b7d0949760e01b8152600490fd5b90612cde613080565b5f926001600160a01b03831692831561208a578115612d96575f5b828110612d7457505f547f326b6aff1cd2fb1c8234de4f9dcfb9047c5c36eb9ef2eb34af5121e969a75d279286929091612d49918491612d449060101c6001600160a01b0316611471565b6142d1565b612d5a604051928392339684612dd1565b0390a39061093460015f8051602061522e83398151915255565b94612d8f6001916116bd612d89898789612dbc565b3561430f565b9501612cf9565b60405163edf3b93360e01b8152600490fd5b634e487b7160e01b5f52603260045260245ffd5b9190811015612dcc5760051b0190565b612da8565b604080825281018390529392916001600160fb1b0381116104fa5760209160609160051b809183880137850101930152565b9190612be8612bf79160609465ffffffffffff60405192632ad1633960e11b602085015216602483015260248252612be382610890565b908160209103126104fa57516109a281610b31565b519061093482610572565b908160209103126104fa57516109a281610572565b3d15612e99573d90612e8082610936565b91612e8e60405193846108e6565b82523d5f602084013e565b606090565b604051631d6aac4760e31b60208201526001600160a01b03909216602483015265ffffffffffff909216604480830191909152815260609291612bf791612be891612be3826108cb565b6001600160a01b03908116908115612f41575f805160206151ae83398151915280546001600160a01b031981168417909155167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3565b604051631e4fbdf760e01b81525f6004820152602490fd5b90612f7f90825f52600860205260405f209060018060a01b03165f5260205260405f2090565b54905f52600660205260405f2054600760205260405f205490600181018091116107415760018201809211610741576109a29261423f565b92919092612fdc612fcb8360609684612e9e565b92612fd68184612bac565b92612e03565b90825115801590613076575b801561306c575b612ff857505050565b6130459394506109a29291611c10916040519361301485610890565b8452602084019081526040840191825261305b604051968795602080880152516060604088015260a08701906112c0565b915191603f1992838783030160608801526112c0565b9151908483030160808501526112c0565b5081511515612fef565b5080511515612fe8565b5f8051602061522e833981519152600281541461309d5760029055565b604051633ee5aeb560e01b8152600490fd5b335f908152600e60205260409020939291906130ca42613229565b335f908152600e602052604090206130e190614498565b918483039283116107415761311c7febff2602b3f468259e1e99f613fed6691f3a6526effe6ef3e768ba7ae7a36c4f9385936131a799613cbd565b505061313661312a42613229565b610d4487611657614424565b505061315061314442613229565b610d2f846116576143ab565b50506131f5816131e0613169613164612c66565b6126a8565b6131bf61317e825f52600660205260405f2090565b54613191835f52600760205260405f2090565b5461319d82828b6144db565b9d8e998a936126b6565b6131b9855f52600660205260405f2090565b556126b6565b6131d1825f52600760205260405f2090565b555f52600860205260405f2090565b9060018060a01b03165f5260205260405f2090565b6132008382546126b6565b9055604080519485526020850195909552938301526001600160a01b03909216913391606090a3565b65ffffffffffff9081811161323c571690565b604490604051906306dfcc6560e41b8252603060048301526024820152fd5b908160209103126104fa576109a290612b78565b90600163ffffffff8093160191821161074157565b9080511561334f578060208061329f9351830101910161325b565b6132a881614720565b906132b9825165ffffffffffff1690565b9065ffffffffffff808516921682811461334357821191826132ef575b50506132e657506109a2906144fc565b60209150015190565b9091506132fd600a5461267a565b63ffffffff831614918215613316575b50505f806132d6565b61333b91925061284c61332b6133309261326f565b614720565b65ffffffffffff1690565b115f8061330d565b50505060209150015190565b506109a2906144fc565b9080511561340457806020806133749351830101910161325b565b61337d816147a5565b9061338e825165ffffffffffff1690565b9065ffffffffffff808516921682811461334357821191826133bb575b50506132e657506109a2906145ad565b9091506133c9600c5461267a565b63ffffffff8316149182156133e2575b50505f806133ab565b6133fc91925061284c6133f76133309261326f565b6147a5565b115f806133d9565b506109a2906145ad565b918051156134d057806020806134299351830101910161325b565b916134348382614820565b92613445845165ffffffffffff1690565b9065ffffffffffff80851692168281146134c4578211918261347b575b5050613472576109a29250614657565b50506020015190565b909150613488835461267a565b63ffffffff8316149182156134a1575b50505f80613462565b6134bc91925061284c6134b66133309261326f565b85614820565b115f80613498565b50505050506020015190565b506109a291614657565b335f9081527f03b26b53c87faa1058f30bb5d2fee64f717719a0d9b7e4f4df027aa5e9b6ed69602052604090207fbae4ee3de6c709ff9a002e774c5b78cb381560b219213c88ae0f1e207c03c0239060ff905b5416156121c85750565b335f9081527fe41986b390c4ce6791b87f7423b5fab7a81a0e6d89660b6264f697d008b2243a602052604090207fc6aaadd7371d5e8f9ed6849dd66a66573a3ba37167d03f4352c9ba5693678fac9060ff9061352d565b335f9081527f0287ab4cb376ea253d7b2ce0c2cbf458f7deae9458470d74afdfbbee484e9540602052604090207f9c56d972d63cbb4195b3c1484691dfc220fa96a4c47e7b6613bd82a022029e069060ff9061352d565b5f8181525f8051602061520e83398151915260209081526040808320338452909152902060ff9061352d565b6001600160a01b0381165f9081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d60205260409020545f8051602061520e8339815191529060ff166136bc575f808052602091825260408082206001600160a01b038516835290925220805460ff1916600117905533906001600160a01b03165f7f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d8180a4600190565b50505f90565b6001600160a01b0381165f9081527f03b26b53c87faa1058f30bb5d2fee64f717719a0d9b7e4f4df027aa5e9b6ed69602052604090207fbae4ee3de6c709ff9a002e774c5b78cb381560b219213c88ae0f1e207c03c023905f8051602061520e8339815191529060ff905b5416613791575f828152602091825260408082206001600160a01b038616835290925220805460ff1916600117905533916001600160a01b0316907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d5f80a4600190565b5050505f90565b6001600160a01b0381165f9081527f0287ab4cb376ea253d7b2ce0c2cbf458f7deae9458470d74afdfbbee484e9540602052604090207f9c56d972d63cbb4195b3c1484691dfc220fa96a4c47e7b6613bd82a022029e06905f8051602061520e8339815191529060ff9061372d565b6001600160a01b0381165f9081527fe41986b390c4ce6791b87f7423b5fab7a81a0e6d89660b6264f697d008b2243a602052604090207fc6aaadd7371d5e8f9ed6849dd66a66573a3ba37167d03f4352c9ba5693678fac905f8051602061520e8339815191529060ff9061372d565b6001600160a01b0381165f9081527f2d4ccbfe9f7672a6f2537c1e5bce6adacb73706879154bbab6ce096012d67216602052604090207f4a634bc14d77baf979756509ef4298c6f6318af357828612545267ee2eb79233905f8051602061520e8339815191529060ff9061372d565b5f8181525f8051602061520e833981519152602081815260408084206001600160a01b038716855290915290912060ff9061372d565b5f8181525f8051602061520e833981519152602081815260408084206001600160a01b03871685529091529091205460ff1615613791575f828152602091825260408082206001600160a01b038616835290925220805460ff1916905533916001600160a01b0316907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b5f80a4600190565b6040516323b872dd60e01b60208201526001600160a01b03928316602482015292909116604483015260648083019390935291815260a08101918183106001600160401b038411176108ab5761093492604052614888565b600b54811015612dcc57600b5f525f805160206151ee83398151915201905f90565b600d54811015612dcc57600d5f525f805160206151ce83398151915201905f90565b8054821015612dcc575f5260205f2001905f90565b600d54600160401b8110156108ab576001810180600d55811015612dcc57600d5f525f805160206151ce8339815191520155565b600b54600160401b8110156108ab576001810180600b55811015612dcc57600b5f525f805160206151ee8339815191520155565b90815491600160401b8310156108ab5782613ae991600161093495018155613a49565b90919082549060031b91821b915f19901b1916179055565b919091600d9081548015613bac575b50613b19614939565b50929091815492613b286143ab565b9481613b97575b5015613b7457505f1982018281116107415781541115612dcc575f527fd7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb4018390559190565b613b88926001600160d01b03169150614e92565b5050613b9383613a5e565b9190565b65ffffffffffff83811691161490505f613b2f565b600160401b8110156108ab5760018101808455811015612dcc575f908382525f805160206151ce83398151915201555f613b10565b919091600b9081548015613c88575b50613bf96149a4565b50929091815492613c08614424565b9481613c73575b5015613c5457505f1982018281116107415781541115612dcc575f527f0175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db8018390559190565b613c68926001600160d01b03169150614f8d565b5050613b9383613a92565b65ffffffffffff83811691161490505f613c0f565b600160401b8110156108ab5760018101808455811015612dcc575f908382525f805160206151ee83398151915201555f613bf0565b90929192600182019081548015613d4b575b5084613cda846149ee565b50949092845493613cea83614498565b9681613d36575b5015613d13575050505f19810190811161074157613ae98591613b9393613a49565b613b93949293613d2f926001600160d01b039091169190615037565b5050613ac6565b65ffffffffffff83811691161490505f613cf1565b600160401b8110156108ab57806001613d679201845583613a49565b8154905f199060031b1b191690555f613ccf565b90604051613d88816108b0565b915465ffffffffffff8116835260301c6020830152565b600a54905f829160058411613e4a575b613db99350614b55565b8015613e3f57613de9613de4613dce8361267a565b600a5f525f8051602061518e8339815191520190565b613d7b565b91613e38613e2f613e29613e1f613e1a6020613e0b895165ffffffffffff1690565b9801516001600160d01b031690565b613a05565b90549060031b1c90565b9361267a565b63ffffffff1690565b6001939291565b505f905f905f905f90565b9192613e5581614a1c565b810390811161074157600a5f525f8051602061518e833981519152810154613db9949065ffffffffffff9081169085161015613e92575091613daf565b929150613e9e906126a8565b90613daf565b600c54905f829160058411613f10575b613ebe9350614bbe565b8015613e3f57613ee9613de4613ed38361267a565b600c5f525f8051602061516e8339815191520190565b91613e38613e2f613e29613e1f613f0b6020613e0b895165ffffffffffff1690565b613a27565b9192613f1b81614a1c565b810390811161074157600c5f525f8051602061516e833981519152810154613ebe949065ffffffffffff9081169085161015613f58575091613eb4565b929150613f64906126a8565b90613eb4565b91908254905f829160058411613fed575b613f86935085614cf9565b908115613fe157613e38613e2f613e29613e1f613fb3613de4613fa88861267a565b895f5260205f200190565b966001613fda6020613fcb8b5165ffffffffffff1690565b9a01516001600160d01b031690565b9101613a49565b5f925082915081908190565b9192613ff881614a1c565b810390811161074157613f8693865f526140216133308360205f200165ffffffffffff90541690565b65ffffffffffff85161015614037575091613f7b565b929150614043906126a8565b90613f7b565b51906109348261086c565b90816101609103126104fa57614068610907565b9061407281612e4f565b825261408060208201612e4f565b602083015261409160408201614049565b60408301526140a260608201612b6d565b60608301526140b360808201612b6d565b608083015260a081015160a08301526140ce60c08201612e4f565b60c08301526140df60e08201612e4f565b60e08301526101006140f2818301612e4f565b90830152610120614104818301612e4f565b90830152614116610140809201612e4f565b9082015290565b905f8060409384519360209461415481611c1088820194639f86fd8560e01b86523060248401528a604484015260648301906112c0565b51915afa50614161612e6f565b805181019280828486019503126104fa57828201519161418083610b31565b81810151906001600160401b0382116104fa57019084603f830112156104fa57838201516141ad81610936565b956141ba835197886108e6565b8187528282850101116104fa578085925f94018388015e85010152156141de575090565b9080519182156104fa5701fd5b5f805160206151ae833981519152546001600160a01b0316330361420b57565b60405163118cdaa760e01b8152336004820152602490fd5b9080821015614230575090565b905090565b8115612c61570490565b9091828202915f19848209938380861095039480860395146142c457848311156142b257829109815f038216809204600280826003021880830282030280830282030280830282030280830282030280830282030280920290030293600183805f03040190848311900302920304170290565b60405163227bc15360e01b8152600490fd5b5050906109a29250614235565b60405163a9059cbb60e01b60208201526001600160a01b0390921660248301526044808301939093529181526109349161430a826108cb565b614888565b90614318612c66565b821015614399575f82815260096020908152604080832033845290915290205460ff16614387576143493383612f59565b918215614375575f9081526009602090815260408083203384529091529020805460ff19166001179055565b6040516366c0bcbf60e11b8152600490fd5b604051630c8d9eab60e31b8152600490fd5b60405163d5b25b6360e01b8152600490fd5b600c54806143eb57505f5b6001600160d01b038116156143e657600d54811015612dcc57600d5f525f805160206151ce833981519152015490565b505f90565b805f1981011161074157600c5f527fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c6015460301c6143b6565b600a548061445f57505f5b6001600160d01b038116156143e657600b54811015612dcc57600b5f525f805160206151ee833981519152015490565b805f1981011161074157600a5f527fc65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a7015460301c61442f565b8054806144bd57505f5b6001600160d01b038116156136bc576001613e1f9201613a49565b5f1990808281011161074157825f5260205f2001015460301c6144a2565b9190600181018091116107415760018201809211610741576109a29261423f565b600a54905f829160058411614554575b6145169350614c27565b8061453957505f5b6001600160d01b038116156143e657613e1f6109a291613a05565b614548613dce61454f9261267a565b5460301c90565b61451e565b919261455f81614a1c565b81039081116107415761451693600a5f5265ffffffffffff80835f8051602061518e833981519152015416908516105f1461459b57509161450c565b9291506145a7906126a8565b9061450c565b600c54905f8291600584116145fe575b6145c79350614c90565b806145ea57505f5b6001600160d01b038116156143e657613e1f6109a291613a27565b614548613ed36145f99261267a565b6145cf565b919261460981614a1c565b8103908111610741576145c793600c5f5265ffffffffffff80835f8051602061516e833981519152015416908516105f146146455750916145bd565b929150614651906126a8565b906145bd565b908154905f8291600584116146ba575b614672935084614cf9565b8061469a57505f905b6001600160d01b038216156136bc576109a2916001613e1f9201613a49565b6145486146a96146b49261267a565b835f5260205f200190565b9061467b565b91926146c581614a1c565b81039081116107415761467293855f5265ffffffffffff808360205f20015416908516105f146146f6575091614667565b929150614702906126a8565b90614667565b60405190614715826108b0565b5f6020838281520152565b614728614708565b50614731614708565b50600a54811015612dcc5761475890600a5f525f8051602061518e83398151915201613d7b565b65ffffffffffff81511690602060018060d01b0391015116600b54811015612dcc57600b5f525f805160206151ee83398151915201546040519161479b836108b0565b8252602082015290565b6147ad614708565b506147b6614708565b50600c54811015612dcc576147dd90600c5f525f8051602061516e83398151915201613d7b565b65ffffffffffff81511690602060018060d01b0391015116600d54811015612dcc57600d5f525f805160206151ce83398151915201546040519161479b836108b0565b9061484961484361486a92614833614708565b5061483c614708565b5084613a49565b50613d7b565b91600165ffffffffffff845116936020828060d01b03910151169101613a49565b9054906040519261487a846108b0565b835260031b1c602082015290565b5f806148b09260018060a01b03169360208151910182865af16148a9612e6f565b908361510a565b80519081151591826148de575b50506148c65750565b60249060405190635274afe760e01b82526004820152fd5b6148f19250602080918301019101612e3a565b155f806148bd565b91906001810180911161074157600182018092116107415761491c82828561423f565b928215612c61570961492b5790565b600181018091116107415790565b600c548061494a57505f905f905f90565b805f19810111610741577fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c661498391600c5f5201613d7b565b9065ffffffffffff82511691602060018060d01b0391015116906001929190565b600a54806149b557505f905f905f90565b805f19810111610741577fc65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a761498391600a5f5201613d7b565b8054806149ff5750505f905f905f90565b5f1990808281011161074157614983925f5260205f200101613d7b565b80156143e65780614aee614ae7614add614ad3614ac9614abf614ab5614aab60016109a29a5f908b60801c80614b49575b508060401c80614b3c575b508060201c80614b2f575b508060101c80614b22575b508060081c80614b15575b508060041c80614b08575b508060021c80614afb575b50821c614af4575b811c1b614aa4818b614235565b0160011c90565b614aa4818a614235565b614aa48189614235565b614aa48188614235565b614aa48187614235565b614aa48186614235565b614aa48185614235565b8092614235565b90614223565b8101614a97565b600291509101905f614a8f565b600491509101905f614a84565b600891509101905f614a79565b601091509101905f614a6e565b602091509101905f614a63565b604091509101905f614a58565b9150506080905f614a4d565b905b828110614b6357505090565b9091808216906001818418811c830180931161074157600a5f5265ffffffffffff80845f8051602061518e833981519152015416908616105f14614bab575050915b90614b57565b9093925081018091116107415790614ba5565b905b828110614bcc57505090565b9091808216906001818418811c830180931161074157600c5f5265ffffffffffff80845f8051602061516e833981519152015416908616105f14614c14575050915b90614bc0565b9093925081018091116107415790614c0e565b905b828110614c3557505090565b9091808216906001818418811c830180931161074157600a5f5265ffffffffffff80845f8051602061518e833981519152015416908616105f14614c7d575050915b90614c29565b9093925081018091116107415790614c77565b905b828110614c9e57505090565b9091808216906001818418811c830180931161074157600c5f5265ffffffffffff80845f8051602061516e833981519152015416908616105f14614ce6575050915b90614c92565b9093925081018091116107415790614ce0565b91905b838210614d095750505090565b909192808316906001818518811c830180931161074157855f5265ffffffffffff808460205f20015416908516105f14614d48575050925b9190614cfc565b9094935081018091116107415791614d41565b60ff5f8051602061524e8339815191525460401c1615614d7757565b604051631afcd79f60e31b8152600490fd5b600c5490600160401b8210156108ab576001820180600c55821015612dcc57600c5f52805160209091015160301b65ffffffffffff191665ffffffffffff91909116175f8051602061516e83398151915290910155565b600a5490600160401b8210156108ab576001820180600a55821015612dcc57600a5f52805160209091015160301b65ffffffffffff191665ffffffffffff91909116175f8051602061518e83398151915290910155565b8054600160401b8110156108ab57614e5491600182018155613a49565b614e7f57815160209092015160301b65ffffffffffff191665ffffffffffff92909216919091179055565b634e487b7160e01b5f525f60045260245ffd5b600c54919291908115614f6457614eae613de4613ed38461267a565b805165ffffffffffff8381169491168410614f525785602093613b9395614ede613330865165ffffffffffff1690565b03614f1a5750614ef3613ed3614f0c9361267a565b9065ffffffffffff82549181199060301b169116179055565b01516001600160d01b031690565b9050614f4d9150614f3a614f2c610927565b65ffffffffffff9092168252565b6001600160d01b03871681850152614d89565b614f0c565b604051632520601d60e01b8152600490fd5b614f889150614f74614f2c610927565b6001600160d01b0384166020820152614d89565b5f9190565b600a5491929190811561501357614fa9613de4613dce8461267a565b805165ffffffffffff8381169491168410614f525785602093613b9395614fd9613330865165ffffffffffff1690565b03614fee5750614ef3613dce614f0c9361267a565b9050614f4d9150615000614f2c610927565b6001600160d01b03871681850152614de0565b614f889150615023614f2c610927565b6001600160d01b0384166020820152614de0565b8054929392919082156150e657615053613de46146a98561267a565b90615064825165ffffffffffff1690565b65ffffffffffff84811691168110614f5257613b93946020948892615092613330875165ffffffffffff1690565b036150b35750614f0c926150a8614ef39261267a565b905f5260205f200190565b915050614f4d916150d36150c5610927565b65ffffffffffff9093168352565b6001600160d01b03881682860152614e37565b614f8892506150f66150c5610927565b6001600160d01b0385166020830152614e37565b90615131575080511561511f57805190602001fd5b604051630a12f52160e11b8152600490fd5b81511580615164575b615142575090565b604051639996b31560e01b81526001600160a01b039091166004820152602490fd5b50803b1561513a56fedf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c7c65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a89016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300d7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb50175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db902dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268009b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a264697066735822122032dd1d565d3bddc2fee2f1b128543ccd5c9d5ea830e6be541f10368e4481309c64736f6c63430008190033","sourceMap":"199:2819:90:-:0;;;;;;;348:4:87;332:21;;318:1:90;3173:36:101;;318:1:90;3219:32:101;;8837:64:26;199:2819:90;;;;;;;;;7896:76:26;;-1:-1:-1;;;;;;;;;;;;199:2819:90;;;7985:34:26;7981:146;;-1:-1:-1;318:1:90;927:17:76;;199:2819:90;;;;;;;;332:21:87;199:2819:90;;;;;;;;;;;;;;;3173:36:101;199:2819:90;;;;;;;;;;3219:32:101;199:2819:90;;;;;;;;;;927:17:76;199:2819:90;;;;;;;;;;;7981:146:26;-1:-1:-1;;;;;;199:2819:90;;;;;;;;;;;;;8087:29:26;;199:2819:90;;8087:29:26;7981:146;;;;;7896:76;-1:-1:-1;;;7938:23:26;;;;;199:2819:90;;;","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361015610011575f80fd5b5f3560e01c806301ffc9a7146104a45780631415519b1461049f5780631b66c9e11461049a5780631e9a695014610495578063248a9ca31461049057806327810b6e1461048b578063281f5752146104865780632abe3048146104815780632d73c69c1461047c5780632dd31000146104775780632f2ff15d1461047257806336568abe1461046d578063392e53cd146104685780634105a7dd14610463578063463616711461045e57806347e7ef241461045957806348d3b775146104545780634ff0876a1461044f57806350861adc1461044a57806350f22068146104455780635346e34f1461044057806354fd4d501461043b57806355a2c6721461043657806357ec83cc1461043157806359f769a91461042c5780635cc070761461042757806361a8c8c41461042257806364b03fdc1461041d57806367567add146104185780636da3e06d146104135780636ec1e3f81461040e578063715018a6146104095780637278e31c1461040457806373790ab3146103ff57806376671808146103fa578063794b15b7146103f55780637953b33b146103f05780637c04c80a146103eb578063810da75d146103e65780638326056f146103e157806383cd9cc3146103dc57806387df0788146103d75780638b0e9f3f146103d25780638da5cb5b146103cd57806391d14854146103c85780639d66201b146103c35780639f86fd85146103be578063a1b12202146103b9578063a217fddf146103b4578063a21a1df9146103af578063a2861466146103aa578063a3b54172146103a5578063a5d03223146103a0578063aabc24961461039b578063aad3ec9614610396578063afba70ad14610391578063b13442711461038c578063bd49c35f14610387578063bdc8144b14610382578063bfefcd7b1461037d578063c31e8dd714610378578063ce9b793014610373578063d547741f1461036e578063d8dfeb4514610369578063db38871514610364578063de4997161461035f578063eb5562381461035a578063ecf7085814610355578063efb559d614610350578063f2fde38b1461034b578063f3fef3a314610346578063f5e7ee0f146103415763f9e1bf6c1461033c575f80fd5b61264c565b612622565b61257c565b61254f565b612400565b6123e3565b61238f565b612375565b612309565b6122de565b612292565b61226a565b612200565b6121e6565b612108565b6120ee565b6120c6565b61209c565b611fdb565b611e24565b611dde565b611d91565b611c9e565b611c64565b611c4a565b611c26565b611b92565b611b58565b611afa565b611ac6565b611a64565b611a20565b611867565b61184d565b611834565b6117ce565b6117a7565b611767565b61174d565b61170c565b611438565b6113d1565b6113ac565b611368565b611312565b6112e4565b611248565b61121e565b6111f7565b6110bf565b61103a565b611008565b610f73565b610f5a565b610efd565b610edd565b610ebc565b610bfe565b610bd6565b610b3b565b610af6565b610aab565b610a5d565b610a19565b6109a5565b61079b565b6106cd565b6106a5565b61066c565b610583565b610538565b6104fe565b346104fa5760203660031901126104fa5760043563ffffffff60e01b81168091036104fa57602090637965db0b60e01b81149081156104e9575b506040519015158152f35b6301ffc9a760e01b1490505f6104de565b5f80fd5b346104fa575f3660031901126104fa5760206040517fc6aaadd7371d5e8f9ed6849dd66a66573a3ba37167d03f4352c9ba5693678fac8152f35b346104fa575f3660031901126104fa5760206040517f9c56d972d63cbb4195b3c1484691dfc220fa96a4c47e7b6613bd82a022029e068152f35b6001600160a01b038116036104fa57565b346104fa5760403660031901126104fa576004356105a081610572565b602435906105ac613080565b6001600160a01b0381161561065b57335f908152600e602052604090206105d790614498565b614498565b8211610649576105f76105e86143ab565b6105f0614424565b90846144db565b9182156106345782610608926130af565b9061061f60015f8051602061522e83398151915255565b604080519182526020820192909252f35b0390f35b60405160016245ddc760e11b03198152600490fd5b604051632418411f60e11b8152600490fd5b6040516208978560e71b8152600490fd5b346104fa5760203660031901126104fa576004355f525f8051602061520e8339815191526020526020600160405f200154604051908152f35b346104fa575f3660031901126104fa576001546040516001600160a01b039091168152602090f35b346104fa575f3660031901126104fa576106e5612c66565b80156107465760015465ffffffffffff8160a01c16915f198101908111610741576107139160d01c90612695565b81018091116107415761072861063091613229565b60405165ffffffffffff90911681529081906020820190565b612666565b604051639fa56a5b60e01b8152600490fd5b600435906001600160401b03821682036104fa57565b9181601f840112156104fa578235916001600160401b0383116104fa57602083818601950101116104fa57565b346104fa5760403660031901126104fa576107b4610758565b6001600160401b036024358181116104fa576107d490369060040161076e565b50506107de613080565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316330361085a575f8051602061524e833981519152549060ff8260401c1692831561084a575b505050610838575f80fd5b60405163f92ee8a960e01b8152600490fd5b81169116101590505f808061082d565b604051631966391b60e11b8152600490fd5b65ffffffffffff8116036104fa57565b634e487b7160e01b5f52604160045260245ffd5b606081019081106001600160401b038211176108ab57604052565b61087c565b604081019081106001600160401b038211176108ab57604052565b608081019081106001600160401b038211176108ab57604052565b90601f801991011681019081106001600160401b038211176108ab57604052565b6040519061016082018281106001600160401b038211176108ab57604052565b60405190610934826108b0565b565b6001600160401b0381116108ab57601f01601f191660200190565b92919261095d82610936565b9161096b60405193846108e6565b8294818452818301116104fa578281602093845f960137010152565b9080601f830112156104fa578160206109a293359101610951565b90565b346104fa5760603660031901126104fa576004356109c281610572565b602435906109cf8261086c565b604435906001600160401b0382116104fa576020926109f5610a11933690600401610987565b6001600160a01b039092165f908152600e85526040902061340e565b604051908152f35b346104fa575f3660031901126104fa576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346104fa5760403660031901126104fa57610aa9602435600435610a8082610572565b805f525f8051602061520e833981519152602052610aa4600160405f2001546135e5565b6138e5565b005b346104fa5760403660031901126104fa57602435610ac881610572565b336001600160a01b03821603610ae457610aa99060043561391b565b60405163334bd91960e11b8152600490fd5b346104fa575f3660031901126104fa5760ff60025460a01c1680610b22575b6020906040519015158152f35b5060035460a01c60ff16610b15565b801515036104fa57565b346104fa5760203660031901126104fa57600435610b5881610b31565b610b60613080565b610b686134da565b5f54901515908160ff8216151514610bc45760ff191660ff8216175f556040519081527f3e12b7b36c75ac9609a3f58609b331210428e1a85909132638955ba0301eec3390602090a160015f8051602061522e83398151915255005b60405163a741a04560e01b8152600490fd5b346104fa575f3660031901126104fa57602065ffffffffffff60015460a01c16604051908152f35b346104fa576040806003193601126104fa576004803591610c1e83610572565b610c26613080565b6001600160a01b0391838316908115610eae575f5460ff811680610e95575b610e865783516370a0823160e01b808252308483019081529096602093909160109190911c82169084908490819083010381845afa928315610e5e575f93610e63575b50610c9a9060243590309033906139ad565b5f5486519788523085890190815290979184918391908290819060200103918b60101c165afa908115610e5e57610cd9935f92610e31575b5050612688565b938415610e225760081c60ff1680610e0d575b610dff57509061063091610d9d610d016143ab565b95610d4a610d0d614424565b610d35610d1b8a838b6144db565b99610d2f8a610d2942613229565b926126b6565b90613b01565b5050610d4489610d2942613229565b90613be1565b50506001600160a01b0381165f908152600e6020526040902090610d9788610d926105d2610d7742613229565b6001600160a01b039095165f908152600e6020526040902090565b6126b6565b91613cbd565b505081518481526020810186905233907fdcbc1c05240f31ff3ad067ef1ee35ce4997762752e3a095284754544f4c709d790604090a3610de960015f8051602061522e83398151915255565b5191825260208201929092529081906040820190565b8251632484557960e01b8152fd5b50610e1a84610d926143ab565b815410610cec565b50825163070f6eed60e11b8152fd5b610e509250803d10610e57575b610e4881836108e6565b8101906126e4565b5f80610cd2565b503d610e3e565b6126f3565b610c9a919350610e7f90853d8711610e5757610e4881836108e6565b9290610c88565b5082516304f63b8560e01b8152fd5b50335f9081526005602052604090205460ff1615610c45565b8251630d534ce360e11b8152fd5b346104fa575f3660031901126104fa57602060ff5f54166040519015158152f35b346104fa575f3660031901126104fa57602060015460d01c604051908152f35b346104fa575f3660031901126104fa57602060ff60025460a01c166040519015158152f35b9060406003198301126104fa57600435610f3b8161086c565b91602435906001600160401b0382116104fa576109a291600401610987565b346104fa576020610a11610f6d36610f22565b90613284565b346104fa5760203660031901126104fa57600435610f9081610b31565b610f98613080565b610fa0613537565b5f54901515908160ff8260081c16151514610bc45761ff001916600882901b61ff0016175f556040519081527ffa7a25a0b611d4ba3c0ea990e90dc23d484a5dd7a1be4733fef2946ba74530c690602090a1610aa960015f8051602061522e83398151915255565b346104fa575f3660031901126104fa5760206001600160401b035f8051602061524e8339815191525416604051908152f35b346104fa5760203660031901126104fa576004356110578161086c565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633036110ad5761109090613d9f565b60408051941515855263ffffffff91909116602085015292915050f35b604051637ca475e560e11b8152600490fd5b346104fa5760603660031901126104fa576110d8610758565b6024356110e481610572565b6001600160401b03916044358381116104fa5761110590369060040161076e565b5f8051602061524e8339815191529491855494838616806111e65760ff8760401c169081156111d9575b50610838577fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2966111d49661119c958716906001600160401b0319161790556111975f8051602061524e833981519152600160401b68ff000000000000000019825416179055565b6126fe565b5f8051602061524e833981519152805468ff0000000000000000191690556040516001600160401b0390911681529081906020820190565b0390a1005b905084861611155f61112f565b60405162dc149f60e41b8152600490fd5b346104fa5760203660031901126104fa576020610a1160043561121981610572565b612b1e565b346104fa5760203660031901126104fa576004355f526006602052602060405f2054604051908152f35b346104fa575f3660031901126104fa5760015465ffffffffffff61127e818360a01c1692611274612c66565b9060d01c90612695565b820180921161074157611292602092613229565b60405191168152f35b60409060031901126104fa576004356112b381610572565b906024356109a28161086c565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b346104fa576106306112fe6112f83661129b565b90612bac565b6040519182916020835260208301906112c0565b346104fa5760203660031901126104fa5760043561132f8161086c565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633036110ad5761109090613ea4565b346104fa575f3660031901126104fa576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346104fa575f3660031901126104fa57602060ff60035460a01c166040519015158152f35b346104fa575f3660031901126104fa576113e96141eb565b5f805160206151ae83398151915280546001600160a01b031981169091555f906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b346104fa5760403660031901126104fa576004356024356114588161086c565b611460613080565b60035461147d906001600160a01b03165b6001600160a01b031690565b33036116fa5761148b612c66565b9061149581612c9a565b90821515806116e9575b80156116e0575b6116ce57610630937ff9d090c096f71cd1659861a9ce5b6f384bceb4e2fa4e4a19edf6489a9b8d56c7926114d86143ab565b946114f36114e5826126a8565b5f52600660205260405f2090565b54908281036115e7575061150781876126b6565b6115118185614223565b9687806115a0575b50505050505b8361156c575b6040805191825265ffffffffffff929092166020820152908101839052606090a161155c60015f8051602061522e83398151915255565b6040519081529081906020820190565b5f5461159b9085906115899060101c6001600160a01b0316611471565b6001546001600160a01b0316906142d1565b611525565b6115dc93610cd283610d2f6115c66115bf6114e5986115d6988861423f565b8096612688565b946115d042613229565b92612688565b926126a8565b555f80808087611519565b91506115fb825f52600660205260405f2090565b549061160b81610d92848a6126b6565b906116168286614223565b9788611627575b505050505061151f565b61169c938361164f9361165c8c61165761164561168d99888461423f565b978895858461423f565b948592612688565b612688565b938484106116a7575b610cd290610d2f61167b9596976115d042613229565b6116876114e5876126a8565b55612688565b915f52600660205260405f2090565b555f8080808061161d565b916116c3610cd2916116bd8661167b9798612688565b906126b6565b859450929050611665565b604051635e18d2a560e01b8152600490fd5b508282116114a6565b506116f38361267a565b821061149f565b60405163dabc4ad960e01b8152600490fd5b346104fa575f3660031901126104fa5760015465ffffffffffff808260a01c1691611735612c66565b600181018091116107415761127e9160d01c90612695565b346104fa575f3660031901126104fa576020610a11612c66565b346104fa5760203660031901126104fa5760043561178481610572565b60018060a01b03165f526005602052602060ff60405f2054166040519015158152f35b346104fa5760203660031901126104fa576020610a116004356117c98161086c565b612c9a565b346104fa5760403660031901126104fa576004356117eb81610572565b6024356001600160401b038082116104fa57366023830112156104fa5781600401359081116104fa573660248260051b840101116104fa5761063092602461155c930190612cd5565b346104fa576020610a1161184736610f22565b90613359565b346104fa576106306112fe6118613661129b565b90612e03565b346104fa576020806003193601126104fa57600480359061188782610572565b61188f613080565b60025460a01c60ff16611a11576040516302910f8b60e31b81526001600160a01b03838116838301908152909491908290829081906020010381887f0000000000000000000000000000000000000000000000000000000000000000165afa908115610e5e575f916119e4575b50156119d45760405163fbfa77cf60e01b8152838516949082818581895afa928315610e5e575f936119a5575b5050309116036119965750600280546001600160a01b03929092166001600160a81b031990921691909117600160a01b1790557fdb2160616f776a37b24808115554e79439bf26cccbbd4438190cc6d28e80ecd15f80a2610aa960015f8051602061522e83398151915255565b60405163b9f0f17160e01b8152fd5b6119c5929350803d106119cd575b6119bd81836108e6565b810190612e5a565b905f80611929565b503d6119b3565b506040516324e5af8d60e21b8152fd5b611a049150823d8411611a0a575b6119fc81836108e6565b810190612e3a565b5f6118fc565b503d6119f2565b604051631380833b60e01b8152fd5b346104fa575f3660031901126104fa576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346104fa575f3660031901126104fa57611a7c612c66565b611a846143ab565b90805f52600660205260405f205482018092116107415760018101809111610741575f52600660205260405f2054810180911161074157602090604051908152f35b346104fa575f3660031901126104fa575f805160206151ae833981519152546040516001600160a01b039091168152602090f35b346104fa5760403660031901126104fa57602060ff611b4c602435611b1e81610572565b6004355f525f8051602061520e833981519152845260405f209060018060a01b03165f5260205260405f2090565b54166040519015158152f35b346104fa5760203660031901126104fa57600435611b7581610572565b60018060a01b03165f52600e6020526020610a1160405f20614498565b346104fa5760403660031901126104fa57600435611baf81610572565b6024356001600160401b0381116104fa575f91611bd18392369060040161076e565b90816040519283928337810184815203915af4611c1e611bef612e6f565b91611c106040519384921515602084015260408084015260608301906112c0565b03601f1981018352826108e6565b805190602001fd5b346104fa575f3660031901126104fa57602060ff5f5460081c166040519015158152f35b346104fa575f3660031901126104fa5760206040515f8152f35b346104fa575f3660031901126104fa5760206040517f4a634bc14d77baf979756509ef4298c6f6318af357828612545267ee2eb792338152f35b346104fa5760403660031901126104fa57600435611cbb81610572565b602435611cc781610b31565b611ccf613080565b611cd761358e565b6001600160a01b038216918215611d7f575f8381526005602052604090205460ff16151582151514610bc4576001600160a01b03165f9081526005602052604090207ff991b1ecfb5115cbb36a2b2e2240c058406d2acc2fcc6e9e2dc99d845ff70a6291611d6691611d54908260ff801983541691151516179055565b60405190151581529081906020820190565b0390a2610aa960015f8051602061522e83398151915255565b604051630da30f6560e31b8152600490fd5b346104fa5760403660031901126104fa576020611dd5602435611db381610572565b6004355f526008835260405f209060018060a01b03165f5260205260405f2090565b54604051908152f35b346104fa5760403660031901126104fa57602060ff611b4c602435611e0281610572565b6004355f526009845260405f209060018060a01b03165f5260205260405f2090565b346104fa576020806003193601126104fa576004803590611e4482610572565b611e4c613080565b60035460a01c60ff16611fcc576001600160a01b03828116939084611eba575b6003805460ff60a01b1916600160a01b179055847fe7e4c932e03abddfe20f83af42c33627e816115c7ec2b168441f65dc14bfc3ba5f80a2610aa960015f8051602061522e83398151915255565b6040516302910f8b60e31b81526001600160a01b0385168482019081528390829081906020010381857f0000000000000000000000000000000000000000000000000000000000000000165afa908115610e5e575f91611faf575b5015611f9e5760405163fbfa77cf60e01b815282818581895afa928315610e5e575f93611f7f575b505030911603611f705750600380546001600160a01b0319166001600160a01b039092169190911790555f808080611e6c565b604051633f3e089160e21b8152fd5b611f96929350803d106119cd576119bd81836108e6565b905f80611f3d565b60405163dabc4ad960e01b81528390fd5b611fc69150833d8511611a0a576119fc81836108e6565b5f611f15565b60405163703fe2e560e01b8152fd5b346104fa5760403660031901126104fa57600435611ff881610572565b60243590612004613080565b6001600160a01b039181831690811561208a57612035610630946120278361430f565b9485915f5460101c166142d1565b604080519182526020820184905233917f865ca08d59f5cb456e85cd2f7ef63664ea4f73327414e9d8152c4158b0e946459190a360015f8051602061522e833981519152556040519081529081906020820190565b604051634e46966960e11b8152600490fd5b346104fa5760203660031901126104fa576004355f526007602052602060405f2054604051908152f35b346104fa575f3660031901126104fa576003546040516001600160a01b039091168152602090f35b346104fa575f3660031901126104fa576020610a116143ab565b346104fa5760203660031901126104fa57600435612124613080565b335f9081527f2d4ccbfe9f7672a6f2537c1e5bce6adacb73706879154bbab6ce096012d6721660205260409020547f4a634bc14d77baf979756509ef4298c6f6318af357828612545267ee2eb792339060ff16156121c857508060045414610bc4576020817f854df3eb95564502c8bc871ebdd15310ee26270f955f6c6bd8cea68e75045bc092600455604051908152a160015f8051602061522e83398151915255005b6044906040519063e2517d3f60e01b82523360048301526024820152fd5b346104fa575f3660031901126104fa576020610a11614424565b346104fa5760203660031901126104fa5760043561221d81610572565b612225612c66565b61222e82612b1e565b916122398183612f59565b830180931161074157600182018092116107415761225691612f59565b810180911161074157602090604051908152f35b346104fa575f3660031901126104fa576002546040516001600160a01b039091168152602090f35b346104fa5760403660031901126104fa57610aa96024356004356122b582610572565b805f525f8051602061520e8339815191526020526122d9600160405f2001546135e5565b61391b565b346104fa575f3660031901126104fa575f5460405160109190911c6001600160a01b03168152602090f35b346104fa575f3660031901126104fa5760206040517fbae4ee3de6c709ff9a002e774c5b78cb381560b219213c88ae0f1e207c03c0238152f35b60609060031901126104fa5760043561235b81610572565b9060243561236881610572565b906044356109a28161086c565b346104fa576106306112fe61238936612343565b91612e9e565b346104fa5761239d3661129b565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811633036110ad5761109092165f52600e60205260405f20613f6a565b346104fa575f3660031901126104fa576020600454604051908152f35b346104fa5760603660031901126104fa5760043561241d81610572565b6024359061242a8261086c565b6001600160401b03916044358381116104fa5761244b90369060040161076e565b9092604093845161245b81610890565b606081526060602082015260608682015292806124ba575b610630866124ab87876124a561248c89848451916126c3565b928561249c602085015183613359565b93015190613284565b916144db565b90519081529081906020820190565b81019392506020818503126104fa578035908682116104fa5701926060848203126104fa578451956124eb87610890565b84358181116104fa5782612500918701610987565b875260208501358181116104fa578261251a918701610987565b6020880152858501359081116104fa57610630966125436124a59361248c936124ab9801610987565b87820152939450612473565b346104fa5760203660031901126104fa57610aa960043561256f81610572565b6125776141eb565b612ee8565b346104fa5760403660031901126104fa5760043561259981610572565b6024356125a4613080565b6001600160a01b0382161561065b578015612610576125d36125c4614424565b6125cc6143ab565b90836148f9565b335f908152600e602052604090209092906125ed90614498565b83116125fe576106089183916130af565b6040516321727a3760e11b8152600490fd5b604051636c6c627d60e11b8152600490fd5b346104fa5760403660031901126104fa576020610a1160243561264481610572565b600435612f59565b346104fa576106306112fe61266036612343565b91612fb7565b634e487b7160e01b5f52601160045260245ffd5b5f1981019190821161074157565b9190820391821161074157565b8181029291811591840414171561074157565b906001820180921161074157565b9190820180921161074157565b6001600160a01b03165f908152600e602052604090206109a292919061340e565b908160209103126104fa575190565b6040513d5f823e3d90fd5b91612750916127419161270f614d5b565b612717614d5b565b60015f8051602061522e833981519152556001600160a01b0394808616612b04575b503691610951565b60208082518301019101614054565b805182166001600160a01b031615612af257604080820165ffffffffffff61277e825165ffffffffffff1690565b1615612ae15760c08301805190929061279f906001600160a01b0316611471565b15612992575b50916128de6101409261287d61285861293c966127f36127cb875160018060a01b031690565b5f805462010000600160b01b03191660109290921b62010000600160b01b0316919091179055565b6020860151600180546001600160a01b0319166001600160a01b0390921691909117905561284c61282342613229565b6001805465ffffffffffff60a01b191660a09290921b65ffffffffffff60a01b16919091179055565b5165ffffffffffff1690565b600180546001600160d01b031660d09290921b6001600160d01b031916919091179055565b61289d61288d6060850151151590565b60ff80195f541691151516175f55565b6128c46128ad6080850151151590565b61ff005f5491151560081b169061ff001916175f55565b6128d160a0840151600455565b516001600160a01b031690565b848116612982575b5060e08101516001600160a01b0316848116612972575b506101008101516001600160a01b0316848116612962575b506101208101516001600160a01b0316848116612952575b5001516001600160a01b031690565b9081166129465750565b61294f90613876565b50565b61295b90613807565b505f61292d565b61296b90613798565b505f612915565b61297b906136c2565b505f6128fd565b61298b90613611565b505f6128e6565b60e08401516129a9906001600160a01b0316611471565b15612a7e575b6101208401516129c7906001600160a01b0316611471565b6127a557608084015115612a345760a08401511580612a15575b612a055750916128de6101409261287d61285861293c965b949650505092506127a5565b5163183c854560e21b8152600490fd5b50610140840151612a2e906001600160a01b0316611471565b156129e1565b60a084015115801590612a5e575b612a055750916128de6101409261287d61285861293c966129f9565b50610140840151612a77906001600160a01b0316611471565b1515612a42565b606084015115612ab457610100840151612aa0906001600160a01b0316611471565b6129af575163183c854560e21b8152600490fd5b610100840151612acc906001600160a01b0316611471565b156129af575163183c854560e21b8152600490fd5b81516368f5f8f160e11b8152600490fd5b6040516368f7a67560e11b8152600490fd5b612b1890612b10614d5b565b612577614d5b565b5f612739565b6001600160a01b03165f908152600e60205260409020612b3d90614498565b612b456143ab565b612b4d614424565b90600181018091116107415760018201809211610741576109a29261423f565b519061093482610b31565b519063ffffffff821682036104fa57565b91908260409103126104fa576109a260208351612ba581610b31565b9301612b78565b9190612be8612bf79160609465ffffffffffff604051926367567add60e01b602085015216602483015260248252612be382610890565b61411d565b60208082518301019101612b89565b90612bff5750565b90915063ffffffff60405191166020820152602081526109a2816108b0565b65ffffffffffff918216908216039190821161074157565b634e487b7160e01b5f52601260045260245ffd5b9065ffffffffffff809116918215612c6157160490565b612c36565b612c6f42613229565b612c96600154612c8c65ffffffffffff93848360a01c1690612c1e565b9060d01c90612c4a565b1690565b6001549065ffffffffffff91828160a01c16918284821610612cc357612c9692612c8c91612c1e565b60405163b7d0949760e01b8152600490fd5b90612cde613080565b5f926001600160a01b03831692831561208a578115612d96575f5b828110612d7457505f547f326b6aff1cd2fb1c8234de4f9dcfb9047c5c36eb9ef2eb34af5121e969a75d279286929091612d49918491612d449060101c6001600160a01b0316611471565b6142d1565b612d5a604051928392339684612dd1565b0390a39061093460015f8051602061522e83398151915255565b94612d8f6001916116bd612d89898789612dbc565b3561430f565b9501612cf9565b60405163edf3b93360e01b8152600490fd5b634e487b7160e01b5f52603260045260245ffd5b9190811015612dcc5760051b0190565b612da8565b604080825281018390529392916001600160fb1b0381116104fa5760209160609160051b809183880137850101930152565b9190612be8612bf79160609465ffffffffffff60405192632ad1633960e11b602085015216602483015260248252612be382610890565b908160209103126104fa57516109a281610b31565b519061093482610572565b908160209103126104fa57516109a281610572565b3d15612e99573d90612e8082610936565b91612e8e60405193846108e6565b82523d5f602084013e565b606090565b604051631d6aac4760e31b60208201526001600160a01b03909216602483015265ffffffffffff909216604480830191909152815260609291612bf791612be891612be3826108cb565b6001600160a01b03908116908115612f41575f805160206151ae83398151915280546001600160a01b031981168417909155167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3565b604051631e4fbdf760e01b81525f6004820152602490fd5b90612f7f90825f52600860205260405f209060018060a01b03165f5260205260405f2090565b54905f52600660205260405f2054600760205260405f205490600181018091116107415760018201809211610741576109a29261423f565b92919092612fdc612fcb8360609684612e9e565b92612fd68184612bac565b92612e03565b90825115801590613076575b801561306c575b612ff857505050565b6130459394506109a29291611c10916040519361301485610890565b8452602084019081526040840191825261305b604051968795602080880152516060604088015260a08701906112c0565b915191603f1992838783030160608801526112c0565b9151908483030160808501526112c0565b5081511515612fef565b5080511515612fe8565b5f8051602061522e833981519152600281541461309d5760029055565b604051633ee5aeb560e01b8152600490fd5b335f908152600e60205260409020939291906130ca42613229565b335f908152600e602052604090206130e190614498565b918483039283116107415761311c7febff2602b3f468259e1e99f613fed6691f3a6526effe6ef3e768ba7ae7a36c4f9385936131a799613cbd565b505061313661312a42613229565b610d4487611657614424565b505061315061314442613229565b610d2f846116576143ab565b50506131f5816131e0613169613164612c66565b6126a8565b6131bf61317e825f52600660205260405f2090565b54613191835f52600760205260405f2090565b5461319d82828b6144db565b9d8e998a936126b6565b6131b9855f52600660205260405f2090565b556126b6565b6131d1825f52600760205260405f2090565b555f52600860205260405f2090565b9060018060a01b03165f5260205260405f2090565b6132008382546126b6565b9055604080519485526020850195909552938301526001600160a01b03909216913391606090a3565b65ffffffffffff9081811161323c571690565b604490604051906306dfcc6560e41b8252603060048301526024820152fd5b908160209103126104fa576109a290612b78565b90600163ffffffff8093160191821161074157565b9080511561334f578060208061329f9351830101910161325b565b6132a881614720565b906132b9825165ffffffffffff1690565b9065ffffffffffff808516921682811461334357821191826132ef575b50506132e657506109a2906144fc565b60209150015190565b9091506132fd600a5461267a565b63ffffffff831614918215613316575b50505f806132d6565b61333b91925061284c61332b6133309261326f565b614720565b65ffffffffffff1690565b115f8061330d565b50505060209150015190565b506109a2906144fc565b9080511561340457806020806133749351830101910161325b565b61337d816147a5565b9061338e825165ffffffffffff1690565b9065ffffffffffff808516921682811461334357821191826133bb575b50506132e657506109a2906145ad565b9091506133c9600c5461267a565b63ffffffff8316149182156133e2575b50505f806133ab565b6133fc91925061284c6133f76133309261326f565b6147a5565b115f806133d9565b506109a2906145ad565b918051156134d057806020806134299351830101910161325b565b916134348382614820565b92613445845165ffffffffffff1690565b9065ffffffffffff80851692168281146134c4578211918261347b575b5050613472576109a29250614657565b50506020015190565b909150613488835461267a565b63ffffffff8316149182156134a1575b50505f80613462565b6134bc91925061284c6134b66133309261326f565b85614820565b115f80613498565b50505050506020015190565b506109a291614657565b335f9081527f03b26b53c87faa1058f30bb5d2fee64f717719a0d9b7e4f4df027aa5e9b6ed69602052604090207fbae4ee3de6c709ff9a002e774c5b78cb381560b219213c88ae0f1e207c03c0239060ff905b5416156121c85750565b335f9081527fe41986b390c4ce6791b87f7423b5fab7a81a0e6d89660b6264f697d008b2243a602052604090207fc6aaadd7371d5e8f9ed6849dd66a66573a3ba37167d03f4352c9ba5693678fac9060ff9061352d565b335f9081527f0287ab4cb376ea253d7b2ce0c2cbf458f7deae9458470d74afdfbbee484e9540602052604090207f9c56d972d63cbb4195b3c1484691dfc220fa96a4c47e7b6613bd82a022029e069060ff9061352d565b5f8181525f8051602061520e83398151915260209081526040808320338452909152902060ff9061352d565b6001600160a01b0381165f9081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d60205260409020545f8051602061520e8339815191529060ff166136bc575f808052602091825260408082206001600160a01b038516835290925220805460ff1916600117905533906001600160a01b03165f7f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d8180a4600190565b50505f90565b6001600160a01b0381165f9081527f03b26b53c87faa1058f30bb5d2fee64f717719a0d9b7e4f4df027aa5e9b6ed69602052604090207fbae4ee3de6c709ff9a002e774c5b78cb381560b219213c88ae0f1e207c03c023905f8051602061520e8339815191529060ff905b5416613791575f828152602091825260408082206001600160a01b038616835290925220805460ff1916600117905533916001600160a01b0316907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d5f80a4600190565b5050505f90565b6001600160a01b0381165f9081527f0287ab4cb376ea253d7b2ce0c2cbf458f7deae9458470d74afdfbbee484e9540602052604090207f9c56d972d63cbb4195b3c1484691dfc220fa96a4c47e7b6613bd82a022029e06905f8051602061520e8339815191529060ff9061372d565b6001600160a01b0381165f9081527fe41986b390c4ce6791b87f7423b5fab7a81a0e6d89660b6264f697d008b2243a602052604090207fc6aaadd7371d5e8f9ed6849dd66a66573a3ba37167d03f4352c9ba5693678fac905f8051602061520e8339815191529060ff9061372d565b6001600160a01b0381165f9081527f2d4ccbfe9f7672a6f2537c1e5bce6adacb73706879154bbab6ce096012d67216602052604090207f4a634bc14d77baf979756509ef4298c6f6318af357828612545267ee2eb79233905f8051602061520e8339815191529060ff9061372d565b5f8181525f8051602061520e833981519152602081815260408084206001600160a01b038716855290915290912060ff9061372d565b5f8181525f8051602061520e833981519152602081815260408084206001600160a01b03871685529091529091205460ff1615613791575f828152602091825260408082206001600160a01b038616835290925220805460ff1916905533916001600160a01b0316907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b5f80a4600190565b6040516323b872dd60e01b60208201526001600160a01b03928316602482015292909116604483015260648083019390935291815260a08101918183106001600160401b038411176108ab5761093492604052614888565b600b54811015612dcc57600b5f525f805160206151ee83398151915201905f90565b600d54811015612dcc57600d5f525f805160206151ce83398151915201905f90565b8054821015612dcc575f5260205f2001905f90565b600d54600160401b8110156108ab576001810180600d55811015612dcc57600d5f525f805160206151ce8339815191520155565b600b54600160401b8110156108ab576001810180600b55811015612dcc57600b5f525f805160206151ee8339815191520155565b90815491600160401b8310156108ab5782613ae991600161093495018155613a49565b90919082549060031b91821b915f19901b1916179055565b919091600d9081548015613bac575b50613b19614939565b50929091815492613b286143ab565b9481613b97575b5015613b7457505f1982018281116107415781541115612dcc575f527fd7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb4018390559190565b613b88926001600160d01b03169150614e92565b5050613b9383613a5e565b9190565b65ffffffffffff83811691161490505f613b2f565b600160401b8110156108ab5760018101808455811015612dcc575f908382525f805160206151ce83398151915201555f613b10565b919091600b9081548015613c88575b50613bf96149a4565b50929091815492613c08614424565b9481613c73575b5015613c5457505f1982018281116107415781541115612dcc575f527f0175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db8018390559190565b613c68926001600160d01b03169150614f8d565b5050613b9383613a92565b65ffffffffffff83811691161490505f613c0f565b600160401b8110156108ab5760018101808455811015612dcc575f908382525f805160206151ee83398151915201555f613bf0565b90929192600182019081548015613d4b575b5084613cda846149ee565b50949092845493613cea83614498565b9681613d36575b5015613d13575050505f19810190811161074157613ae98591613b9393613a49565b613b93949293613d2f926001600160d01b039091169190615037565b5050613ac6565b65ffffffffffff83811691161490505f613cf1565b600160401b8110156108ab57806001613d679201845583613a49565b8154905f199060031b1b191690555f613ccf565b90604051613d88816108b0565b915465ffffffffffff8116835260301c6020830152565b600a54905f829160058411613e4a575b613db99350614b55565b8015613e3f57613de9613de4613dce8361267a565b600a5f525f8051602061518e8339815191520190565b613d7b565b91613e38613e2f613e29613e1f613e1a6020613e0b895165ffffffffffff1690565b9801516001600160d01b031690565b613a05565b90549060031b1c90565b9361267a565b63ffffffff1690565b6001939291565b505f905f905f905f90565b9192613e5581614a1c565b810390811161074157600a5f525f8051602061518e833981519152810154613db9949065ffffffffffff9081169085161015613e92575091613daf565b929150613e9e906126a8565b90613daf565b600c54905f829160058411613f10575b613ebe9350614bbe565b8015613e3f57613ee9613de4613ed38361267a565b600c5f525f8051602061516e8339815191520190565b91613e38613e2f613e29613e1f613f0b6020613e0b895165ffffffffffff1690565b613a27565b9192613f1b81614a1c565b810390811161074157600c5f525f8051602061516e833981519152810154613ebe949065ffffffffffff9081169085161015613f58575091613eb4565b929150613f64906126a8565b90613eb4565b91908254905f829160058411613fed575b613f86935085614cf9565b908115613fe157613e38613e2f613e29613e1f613fb3613de4613fa88861267a565b895f5260205f200190565b966001613fda6020613fcb8b5165ffffffffffff1690565b9a01516001600160d01b031690565b9101613a49565b5f925082915081908190565b9192613ff881614a1c565b810390811161074157613f8693865f526140216133308360205f200165ffffffffffff90541690565b65ffffffffffff85161015614037575091613f7b565b929150614043906126a8565b90613f7b565b51906109348261086c565b90816101609103126104fa57614068610907565b9061407281612e4f565b825261408060208201612e4f565b602083015261409160408201614049565b60408301526140a260608201612b6d565b60608301526140b360808201612b6d565b608083015260a081015160a08301526140ce60c08201612e4f565b60c08301526140df60e08201612e4f565b60e08301526101006140f2818301612e4f565b90830152610120614104818301612e4f565b90830152614116610140809201612e4f565b9082015290565b905f8060409384519360209461415481611c1088820194639f86fd8560e01b86523060248401528a604484015260648301906112c0565b51915afa50614161612e6f565b805181019280828486019503126104fa57828201519161418083610b31565b81810151906001600160401b0382116104fa57019084603f830112156104fa57838201516141ad81610936565b956141ba835197886108e6565b8187528282850101116104fa578085925f94018388015e85010152156141de575090565b9080519182156104fa5701fd5b5f805160206151ae833981519152546001600160a01b0316330361420b57565b60405163118cdaa760e01b8152336004820152602490fd5b9080821015614230575090565b905090565b8115612c61570490565b9091828202915f19848209938380861095039480860395146142c457848311156142b257829109815f038216809204600280826003021880830282030280830282030280830282030280830282030280830282030280920290030293600183805f03040190848311900302920304170290565b60405163227bc15360e01b8152600490fd5b5050906109a29250614235565b60405163a9059cbb60e01b60208201526001600160a01b0390921660248301526044808301939093529181526109349161430a826108cb565b614888565b90614318612c66565b821015614399575f82815260096020908152604080832033845290915290205460ff16614387576143493383612f59565b918215614375575f9081526009602090815260408083203384529091529020805460ff19166001179055565b6040516366c0bcbf60e11b8152600490fd5b604051630c8d9eab60e31b8152600490fd5b60405163d5b25b6360e01b8152600490fd5b600c54806143eb57505f5b6001600160d01b038116156143e657600d54811015612dcc57600d5f525f805160206151ce833981519152015490565b505f90565b805f1981011161074157600c5f527fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c6015460301c6143b6565b600a548061445f57505f5b6001600160d01b038116156143e657600b54811015612dcc57600b5f525f805160206151ee833981519152015490565b805f1981011161074157600a5f527fc65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a7015460301c61442f565b8054806144bd57505f5b6001600160d01b038116156136bc576001613e1f9201613a49565b5f1990808281011161074157825f5260205f2001015460301c6144a2565b9190600181018091116107415760018201809211610741576109a29261423f565b600a54905f829160058411614554575b6145169350614c27565b8061453957505f5b6001600160d01b038116156143e657613e1f6109a291613a05565b614548613dce61454f9261267a565b5460301c90565b61451e565b919261455f81614a1c565b81039081116107415761451693600a5f5265ffffffffffff80835f8051602061518e833981519152015416908516105f1461459b57509161450c565b9291506145a7906126a8565b9061450c565b600c54905f8291600584116145fe575b6145c79350614c90565b806145ea57505f5b6001600160d01b038116156143e657613e1f6109a291613a27565b614548613ed36145f99261267a565b6145cf565b919261460981614a1c565b8103908111610741576145c793600c5f5265ffffffffffff80835f8051602061516e833981519152015416908516105f146146455750916145bd565b929150614651906126a8565b906145bd565b908154905f8291600584116146ba575b614672935084614cf9565b8061469a57505f905b6001600160d01b038216156136bc576109a2916001613e1f9201613a49565b6145486146a96146b49261267a565b835f5260205f200190565b9061467b565b91926146c581614a1c565b81039081116107415761467293855f5265ffffffffffff808360205f20015416908516105f146146f6575091614667565b929150614702906126a8565b90614667565b60405190614715826108b0565b5f6020838281520152565b614728614708565b50614731614708565b50600a54811015612dcc5761475890600a5f525f8051602061518e83398151915201613d7b565b65ffffffffffff81511690602060018060d01b0391015116600b54811015612dcc57600b5f525f805160206151ee83398151915201546040519161479b836108b0565b8252602082015290565b6147ad614708565b506147b6614708565b50600c54811015612dcc576147dd90600c5f525f8051602061516e83398151915201613d7b565b65ffffffffffff81511690602060018060d01b0391015116600d54811015612dcc57600d5f525f805160206151ce83398151915201546040519161479b836108b0565b9061484961484361486a92614833614708565b5061483c614708565b5084613a49565b50613d7b565b91600165ffffffffffff845116936020828060d01b03910151169101613a49565b9054906040519261487a846108b0565b835260031b1c602082015290565b5f806148b09260018060a01b03169360208151910182865af16148a9612e6f565b908361510a565b80519081151591826148de575b50506148c65750565b60249060405190635274afe760e01b82526004820152fd5b6148f19250602080918301019101612e3a565b155f806148bd565b91906001810180911161074157600182018092116107415761491c82828561423f565b928215612c61570961492b5790565b600181018091116107415790565b600c548061494a57505f905f905f90565b805f19810111610741577fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c661498391600c5f5201613d7b565b9065ffffffffffff82511691602060018060d01b0391015116906001929190565b600a54806149b557505f905f905f90565b805f19810111610741577fc65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a761498391600a5f5201613d7b565b8054806149ff5750505f905f905f90565b5f1990808281011161074157614983925f5260205f200101613d7b565b80156143e65780614aee614ae7614add614ad3614ac9614abf614ab5614aab60016109a29a5f908b60801c80614b49575b508060401c80614b3c575b508060201c80614b2f575b508060101c80614b22575b508060081c80614b15575b508060041c80614b08575b508060021c80614afb575b50821c614af4575b811c1b614aa4818b614235565b0160011c90565b614aa4818a614235565b614aa48189614235565b614aa48188614235565b614aa48187614235565b614aa48186614235565b614aa48185614235565b8092614235565b90614223565b8101614a97565b600291509101905f614a8f565b600491509101905f614a84565b600891509101905f614a79565b601091509101905f614a6e565b602091509101905f614a63565b604091509101905f614a58565b9150506080905f614a4d565b905b828110614b6357505090565b9091808216906001818418811c830180931161074157600a5f5265ffffffffffff80845f8051602061518e833981519152015416908616105f14614bab575050915b90614b57565b9093925081018091116107415790614ba5565b905b828110614bcc57505090565b9091808216906001818418811c830180931161074157600c5f5265ffffffffffff80845f8051602061516e833981519152015416908616105f14614c14575050915b90614bc0565b9093925081018091116107415790614c0e565b905b828110614c3557505090565b9091808216906001818418811c830180931161074157600a5f5265ffffffffffff80845f8051602061518e833981519152015416908616105f14614c7d575050915b90614c29565b9093925081018091116107415790614c77565b905b828110614c9e57505090565b9091808216906001818418811c830180931161074157600c5f5265ffffffffffff80845f8051602061516e833981519152015416908616105f14614ce6575050915b90614c92565b9093925081018091116107415790614ce0565b91905b838210614d095750505090565b909192808316906001818518811c830180931161074157855f5265ffffffffffff808460205f20015416908516105f14614d48575050925b9190614cfc565b9094935081018091116107415791614d41565b60ff5f8051602061524e8339815191525460401c1615614d7757565b604051631afcd79f60e31b8152600490fd5b600c5490600160401b8210156108ab576001820180600c55821015612dcc57600c5f52805160209091015160301b65ffffffffffff191665ffffffffffff91909116175f8051602061516e83398151915290910155565b600a5490600160401b8210156108ab576001820180600a55821015612dcc57600a5f52805160209091015160301b65ffffffffffff191665ffffffffffff91909116175f8051602061518e83398151915290910155565b8054600160401b8110156108ab57614e5491600182018155613a49565b614e7f57815160209092015160301b65ffffffffffff191665ffffffffffff92909216919091179055565b634e487b7160e01b5f525f60045260245ffd5b600c54919291908115614f6457614eae613de4613ed38461267a565b805165ffffffffffff8381169491168410614f525785602093613b9395614ede613330865165ffffffffffff1690565b03614f1a5750614ef3613ed3614f0c9361267a565b9065ffffffffffff82549181199060301b169116179055565b01516001600160d01b031690565b9050614f4d9150614f3a614f2c610927565b65ffffffffffff9092168252565b6001600160d01b03871681850152614d89565b614f0c565b604051632520601d60e01b8152600490fd5b614f889150614f74614f2c610927565b6001600160d01b0384166020820152614d89565b5f9190565b600a5491929190811561501357614fa9613de4613dce8461267a565b805165ffffffffffff8381169491168410614f525785602093613b9395614fd9613330865165ffffffffffff1690565b03614fee5750614ef3613dce614f0c9361267a565b9050614f4d9150615000614f2c610927565b6001600160d01b03871681850152614de0565b614f889150615023614f2c610927565b6001600160d01b0384166020820152614de0565b8054929392919082156150e657615053613de46146a98561267a565b90615064825165ffffffffffff1690565b65ffffffffffff84811691168110614f5257613b93946020948892615092613330875165ffffffffffff1690565b036150b35750614f0c926150a8614ef39261267a565b905f5260205f200190565b915050614f4d916150d36150c5610927565b65ffffffffffff9093168352565b6001600160d01b03881682860152614e37565b614f8892506150f66150c5610927565b6001600160d01b0385166020830152614e37565b90615131575080511561511f57805190602001fd5b604051630a12f52160e11b8152600490fd5b81511580615164575b615142575090565b604051639996b31560e01b81526001600160a01b039091166004820152602490fd5b50803b1561513a56fedf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c7c65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a89016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300d7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb50175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db902dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268009b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a264697066735822122032dd1d565d3bddc2fee2f1b128543ccd5c9d5ea830e6be541f10368e4481309c64736f6c63430008190033","sourceMap":"199:2819:90:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;;;;;-1:-1:-1;;199:2819:90;;;;;;;;;;;;;;;;;;-1:-1:-1;;;3551:47:24;;;:87;;;;199:2819:90;;;;;;;;;;3551:87:24;-1:-1:-1;;;1133:40:30;;-1:-1:-1;3551:87:24;;;199:2819:90;-1:-1:-1;199:2819:90;;;;;;;;-1:-1:-1;;199:2819:90;;;;;;;966:38:101;199:2819:90;;;;;;;;;-1:-1:-1;;199:2819:90;;;;;;;821:37:101;199:2819:90;;;;-1:-1:-1;;;;;199:2819:90;;;;;:::o;:::-;;;;;;-1:-1:-1;;199:2819:90;;;;;;;;;:::i;:::-;;;3217:103:29;;;:::i;:::-;-1:-1:-1;;;;;199:2819:90;;5525:21:100;5521:75;;5634:10;199:2819:90;;;;5606:15:101;199:2819:90;;;;;5606:33:101;;;:::i;:24::-;:33;:::i;:::-;5610:35:100;;5606:88;;1057:70:92;5173:21:101;;:::i;:::-;4803:22;;:::i;:::-;1057:70:92;;;:::i;:::-;5801:20:100;;;5797:82;;5904:43;;;;:::i;:::-;3282:1:29;;1805;-1:-1:-1;;;;;;;;;;;199:2819:90;3716:283:29;3282:1;199:2819:90;;;;;;;;;;;;;;;;;;5797:82:100;199:2819:90;;-1:-1:-1;;;;;;5844:24:100;;199:2819:90;;5844:24:100;5606:88;199:2819:90;;-1:-1:-1;;;5668:15:100;;199:2819:90;;5668:15:100;5521:75;199:2819:90;;-1:-1:-1;;;5569:16:100;;199:2819:90;;5569:16:100;199:2819:90;;;;;;-1:-1:-1;;199:2819:90;;;;;;-1:-1:-1;199:2819:90;-1:-1:-1;;;;;;;;;;;199:2819:90;;;4919:24:24;199:2819:90;-1:-1:-1;199:2819:90;4919:24:24;199:2819:90;;;;;;;;;;;;;-1:-1:-1;;199:2819:90;;;;;;;;-1:-1:-1;;;;;199:2819:90;;;;;;;;;;;;;;-1:-1:-1;;199:2819:90;;;;4084:14:101;;:::i;:::-;4112:10;;4108:65;;4190:17;199:2819:90;;;;;;;;;;;;;;;;4210:27:101;199:2819:90;;;4210:27:101;;:::i;:::-;199:2819:90;;;;;;;4189:60:101;199:2819:90;4189:60:101;;:::i;:::-;199:2819:90;;;;;;;;;;;;;;;;;;:::i;4108:65:101:-;199:2819:90;;-1:-1:-1;;;4145:17:101;;199:2819:90;;4145:17:101;199:2819:90;;;;-1:-1:-1;;;;;199:2819:90;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;199:2819:90;;;;;;;;;;;;;;;:::o;:::-;;;;;;-1:-1:-1;;199:2819:90;;;;;;:::i;:::-;-1:-1:-1;;;;;199:2819:90;;;;;;;;;;;;;;:::i;:::-;3217:103:29;;;;:::i;:::-;1673:7:76;-1:-1:-1;;;;;199:2819:90;1659:10:76;:21;1655:71;;-1:-1:-1;;;;;;;;;;;199:2819:90;;;;;;;6431:44:26;;;;;199:2819:90;6427:105:26;;;;;-1:-1:-1;15924:8:100;;6427:105:26;199:2819:90;;-1:-1:-1;;;6498:23:26;;199:2819:90;;6498:23:26;6431:44;199:2819:90;;;;6450:25:26;;;-1:-1:-1;6431:44:26;;;;;1655:71:76;199:2819:90;;-1:-1:-1;;;1703:12:76;;199:2819:90;;1703:12:76;199:2819:90;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;199:2819:90;;;;;;;:::o;:::-;;:::i;:::-;;;;;;;-1:-1:-1;;;;;199:2819:90;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;199:2819:90;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;199:2819:90;;;;;;;:::o;:::-;;;;;;;;;;-1:-1:-1;;;;;199:2819:90;;;;;;;:::o;:::-;;;;;;;:::i;:::-;:::o;:::-;-1:-1:-1;;;;;199:2819:90;;;;;;-1:-1:-1;;199:2819:90;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;199:2819:90;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;;-1:-1:-1;;199:2819:90;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;199:2819:90;;;;;;;5383:59:101;199:2819:90;;;;;;:::i;:::-;-1:-1:-1;;;;;199:2819:90;;;-1:-1:-1;199:2819:90;;;5383:15:101;199:2819:90;;;;;5383:59:101;:::i;:::-;199:2819:90;;;;;;;;;;;;-1:-1:-1;;199:2819:90;;;;;;655:32:76;-1:-1:-1;;;;;199:2819:90;;;;;;;;;;;;-1:-1:-1;;199:2819:90;;;;5350:25:24;199:2819:90;;;;;;;:::i;:::-;;-1:-1:-1;199:2819:90;-1:-1:-1;;;;;;;;;;;199:2819:90;;3202:4:24;4919:24;199:2819:90;-1:-1:-1;199:2819:90;4919:24:24;199:2819:90;3202:4:24;:::i;:::-;5350:25;:::i;:::-;199:2819:90;;;;;;;-1:-1:-1;;199:2819:90;;;;;;;;;:::i;:::-;966:10:28;-1:-1:-1;;;;;199:2819:90;;6441:34:24;6437:102;;6549:37;199:2819:90;;;6549:37:24;:::i;6437:102::-;199:2819:90;;-1:-1:-1;;;6498:30:24;;199:2819:90;;6498:30:24;199:2819:90;;;;;;-1:-1:-1;;199:2819:90;;;;;1524:22:100;199:2819:90;;;;1524:46:100;;;199:2819:90;;;;;;;;;;;1524:46:100;-1:-1:-1;1550:20:100;199:2819:90;;;;;1524:46:100;;199:2819:90;;;;;;;:::o;:::-;;;;;;-1:-1:-1;;199:2819:90;;;;;;;;;:::i;:::-;3217:103:29;;:::i;:::-;3202:4:24;;:::i;:::-;-1:-1:-1;199:2819:90;;;;;;;;;;;9542:26:100;9538:76;;-1:-1:-1;;199:2819:90;;;;;-1:-1:-1;199:2819:90;;;;;;9665:27:100;;199:2819:90;;9665:27:100;1805:1:29;-1:-1:-1;;;;;;;;;;;199:2819:90;;9538:76:100;199:2819:90;;-1:-1:-1;;;9591:12:100;;199:2819:90;;9591:12:100;199:2819:90;;;;;;-1:-1:-1;;199:2819:90;;;;;;1718:31:101;199:2819:90;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3217:103:29;;:::i;:::-;-1:-1:-1;;;;;199:2819:90;;;;;3474:24:100;;3470:81;;-1:-1:-1;199:2819:90;;;;3565:55:100;;;199:2819:90;3561:118:100;;199:2819:90;;-1:-1:-1;;;3713:43:100;;;3750:4;3713:43;;;199:2819:90;;;;;;;;;;;;;;;;;;;;;;;;;3713:43:100;;;;;;;;;;-1:-1:-1;3713:43:100;;;199:2819:90;;3829:6:100;199:2819:90;;;3750:4:100;;3802:10;;3829:6;;:::i;:::-;-1:-1:-1;199:2819:90;;;3864:43:100;;;3750:4;3864:43;;;199:2819:90;;;;;;;;;;3864:43:100;199:2819:90;;;;;;3864:43:100;199:2819:90;;;;;3864:43:100;;;;;;;:59;:43;-1:-1:-1;3864:43:100;;;199:2819:90;3864:59:100;;;:::i;:::-;3938:20;;;3934:79;;199:2819:90;;;;;4027:64:100;;199:2819:90;4023:123:100;;5173:21:101;;199:2819:90;5173:21:101;4502:93:100;5173:21:101;;:::i;:::-;4803:22;4426:66:100;4803:22:101;;:::i;:::-;4349:67:100;390:70:92;;;;;:::i;:::-;837:15:63;4385:30:100;837:15:63;819:34;837:15;819:34;:::i;:::-;4385:30:100;;:::i;:::-;4349:67;;:::i;:::-;837:15:63;;4463:28:100;837:15:63;819:34;837:15;819:34;:::i;4463:28:100:-;4426:66;;:::i;:::-;-1:-1:-1;;;;;;;199:2819:90;;;;;;5606:15:101;199:2819:90;;;;;837:15:63;4553:41:100;837:15:63;5606:33:101;:24;819:34:63;837:15;819:34;:::i;:::-;-1:-1:-1;;;;;199:2819:90;;;;;;;5606:15:101;199:2819:90;;;;;;;5606:33:101;4553:41:100;:::i;:::-;4502:93;;:::i;:::-;-1:-1:-1;;199:2819:90;;;;;;;;;;;3802:10:100;;4611:62;;199:2819:90;;4611:62:100;3282:1:29;1805;-1:-1:-1;;;;;;;;;;;199:2819:90;3716:283:29;3282:1;199:2819:90;;;;;;;;;;;;;;;;;;;4023:123:100;199:2819:90;;-1:-1:-1;;;4114:21:100;;;4027:64;5173:21:101;4045:31:100;5173:21:101;;;:::i;4045:31:100:-;199:2819:90;;-1:-1:-1;4027:64:100;;3934:79;-1:-1:-1;199:2819:90;;-1:-1:-1;;;3981:21:100;;;3864:43;;;;;;-1:-1:-1;3864:43:100;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;;:::i;3713:::-;3829:6;3713:43;;;;;;;;;;;;;;;:::i;:::-;;;;;3561:118;-1:-1:-1;199:2819:90;;-1:-1:-1;;;3643:25:100;;;3565:55;-1:-1:-1;3609:10:100;199:2819:90;;;;3586:22:100;199:2819:90;;;;;;;;3585:35:100;3565:55;;3470:81;199:2819:90;;-1:-1:-1;;;3521:19:100;;;199:2819:90;;;;;;-1:-1:-1;;199:2819:90;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;199:2819:90;;;;;1805:27:101;199:2819:90;;;;;;;;;;;;;;;-1:-1:-1;;199:2819:90;;;;;;1968:34:101;199:2819:90;;;;;;;;;;;;;;;-1:-1:-1;;199:2819:90;;;;;;;;;;:::i;:::-;;;;;-1:-1:-1;;;;;199:2819:90;;;;;;;;;:::i;:::-;;;;;4622:48:101;199:2819:90;;;:::i;:::-;4622:48:101;;:::i;199:2819:90:-;;;;;;-1:-1:-1;;199:2819:90;;;;;;;;;:::i;:::-;3217:103:29;;:::i;:::-;3202:4:24;;:::i;:::-;-1:-1:-1;199:2819:90;;;;;;;;;;;;;10370:24:100;10366:74;;-1:-1:-1;;199:2819:90;;;;;;;;-1:-1:-1;199:2819:90;;;;;;10489:25:100;;199:2819:90;;10489:25:100;3282:1:29;1805;-1:-1:-1;;;;;;;;;;;199:2819:90;3716:283:29;199:2819:90;;;;;;-1:-1:-1;;199:2819:90;;;;;-1:-1:-1;;;;;;;;;;;;;;;;199:2819:90;;;;;;;;;;;;;;-1:-1:-1;;199:2819:90;;;;;;;;;:::i;:::-;449:5:87;-1:-1:-1;;;;;199:2819:90;435:10:87;:19;431:71;;1113:52:90;;;:::i;:::-;199:2819;;;;;;;;;;;;;;;;;;;-1:-1:-1;;199:2819:90;431:71:87;199:2819:90;;-1:-1:-1;;;477:14:87;;199:2819:90;;477:14:87;199:2819:90;;;;;;-1:-1:-1;;199:2819:90;;;;;;:::i;:::-;;;;;;:::i;:::-;-1:-1:-1;;;;;199:2819:90;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;8837:64:26;;199:2819:90;;;;;;734:29:76;730:87;;199:2819:90;;;;;6431:44:26;;;;;199:2819:90;6427:105:26;;;6656:20;199:2819:90;6656:20:26;199:2819:90;1167:340:76;199:2819:90;;;;-1:-1:-1;;;;;199:2819:90;;;;;6575:22:26;-1:-1:-1;;;;;;;;;;;;;;199:2819:90;;;;;;;;;6575:22:26;1167:340:76;:::i;:::-;-1:-1:-1;;;;;;;;;;;199:2819:90;;-1:-1:-1;;199:2819:90;;;;;-1:-1:-1;;;;;199:2819:90;;;;;;;;;;;;;6656:20:26;;;;199:2819:90;6431:44:26;199:2819:90;;;;;-1:-1:-1;6450:25:26;6431:44;;;730:87:76;199:2819:90;;-1:-1:-1;;;786:20:76;;199:2819:90;;786:20:76;199:2819:90;;;;;;-1:-1:-1;;199:2819:90;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;-1:-1:-1;;199:2819:90;;;;;;-1:-1:-1;199:2819:90;2431:59:101;199:2819:90;;;;-1:-1:-1;199:2819:90;;;;;;;;;;;;;;-1:-1:-1;;199:2819:90;;;;3875:17:101;199:2819:90;;3895:30:101;199:2819:90;;;;;3895:14:101;;;:::i;:::-;199:2819:90;;;3895:30:101;;:::i;:::-;199:2819:90;;;;;;;3874:63:101;199:2819:90;3874:63:101;;:::i;:::-;199:2819:90;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;199:2819:90;;;;;;;;-1:-1:-1;;199:2819:90;;;;:::o;:::-;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;199:2819:90;;;;;;;;;:::i;:::-;449:5:87;-1:-1:-1;;;;;199:2819:90;435:10:87;:19;431:71;;514:51:90;;;:::i;199:2819::-;;;;;;-1:-1:-1;;199:2819:90;;;;;;1200:42:101;-1:-1:-1;;;;;199:2819:90;;;;;;;;;;;;-1:-1:-1;;199:2819:90;;;;;;2136:32:101;199:2819:90;;;;;;;;;;;;;;;;;;-1:-1:-1;;199:2819:90;;;;2303:62:25;;:::i;:::-;-1:-1:-1;;;;;;;;;;;199:2819:90;;-1:-1:-1;;;;;;199:2819:90;;;;;;;-1:-1:-1;;;;;199:2819:90;3975:40:25;199:2819:90;;3975:40:25;199:2819:90;;;;;;;-1:-1:-1;;199:2819:90;;;;;;;;;;;:::i;:::-;3217:103:29;;:::i;:::-;7131:7:100;199:2819:90;7117:21:100;;-1:-1:-1;;;;;199:2819:90;;-1:-1:-1;;;;;199:2819:90;;;7117:21:100;:10;:21;7113:71;;7218:14;;:::i;:::-;7265:25;;;;:::i;:::-;7305:17;;;;:53;;;199:2819:90;7304:87:100;;;;199:2819:90;7300:146:100;;199:2819:90;5173:21:101;9310:48:100;5173:21:101;;;:::i;:::-;7540:17:100;7528:30;7540:17;;;:::i;:::-;199:2819:90;;7528:11:100;199:2819:90;;;;;;;7528:30:100;199:2819:90;;7572:29:100;;;;;7642:30;;;;;:::i;:::-;7702:32;;;;:::i;:::-;7752:17;;;7748:384;;7568:1615;;;;;;;9197:17;9193:102;;7568:1615;199:2819:90;;;;;;;;;;;;;;;;;;;;;;;9310:48:100;3282:1:29;1805;-1:-1:-1;;;;;;;;;;;199:2819:90;3716:283:29;3282:1;199:2819:90;;;;;;;;;;;;;9193:102:100;-1:-1:-1;199:2819:90;9270:13:100;;199:2819:90;;9230:18:100;;199:2819:90;;-1:-1:-1;;;;;199:2819:90;;;9230:18:100;7556:1;199:2819:90;-1:-1:-1;;;;;199:2819:90;9270:13:100;;:::i;:::-;9193:102;;7748:384;8045:29;7813:50;7962:65;7813:50;7998:28;7914:29;7813:50;8057:16;7813:50;8077:40;7813:50;;;:::i;:::-;7914:29;;;:::i;:::-;837:15:63;819:34;837:15;819:34;:::i;:::-;7998:28:100;;:::i;8077:40::-;8057:16;;:::i;8045:29::-;199:2819:90;7748:384:100;;;;;;;7568:1615;8185:26;;;;199:2819:90;;7528:11:100;199:2819:90;;;;;;;8185:26:100;199:2819:90;8250:27:100;:45;:27;;;;;:::i;:45::-;8325:32;;;;;:::i;:::-;8375:17;;8371:802;;7568:1615;;;;;;;;8371:802;9096:26;8436:50;;8537:53;8436:50;8637:54;8436:50;8637:29;8436:50;9125:33;8436:50;;;;:::i;:::-;8537:53;;;;;;:::i;:::-;8637:29;;;;:::i;:::-;:54;:::i;:::-;8714:33;;;;8710:194;;8371:802;8922:65;837:15:63;8958:28:100;9038:40;837:15:63;;;819:34;837:15;819:34;:::i;9038:40:100:-;9005:30;9017:17;;;:::i;9005:30::-;199:2819:90;9125:33:100;:::i;:::-;9096:26;199:2819:90;;7528:11:100;199:2819:90;;;;;;;9096:26:100;199:2819:90;8371:802:100;;;;;;;8710:194;8797:33;8771:59;8922:65;8797:33;;;9038:40;8797:33;;;:::i;:::-;8771:59;;:::i;:::-;8852:33;;-1:-1:-1;8852:33:100;;-1:-1:-1;8710:194:100;;7300:146;199:2819:90;;-1:-1:-1;;;7414:21:100;;199:2819:90;;7414:21:100;7304:87;7363:28;;;;7304:87;;7305:53;7341:17;;;;:::i;:::-;7326:32;;7305:53;;7113:71;199:2819:90;;-1:-1:-1;;;7161:12:100;;199:2819:90;;7161:12:100;199:2819:90;;;;;;-1:-1:-1;;199:2819:90;;;;4384:17:101;199:2819:90;;;;;;;4405:14:101;;;:::i;:::-;4384:17;199:2819:90;;;;;;;4404:36:101;199:2819:90;;;4404:36:101;;:::i;199:2819:90:-;;;;;;-1:-1:-1;;199:2819:90;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;199:2819:90;;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;199:2819:90;2307:68:101;199:2819:90;;;;;-1:-1:-1;199:2819:90;;;;;;;;;;;;;;;;;-1:-1:-1;;199:2819:90;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;-1:-1:-1;;199:2819:90;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;199:2819:90;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6491:14:100;199:2819:90;;6491:14:100;;:::i;199:2819:90:-;;;;;4994:47:101;199:2819:90;;;:::i;:::-;4994:47:101;;:::i;199:2819:90:-;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;3217:103:29;;:::i;:::-;10932:22:100;199:2819:90;;;;;10928:89:100;;199:2819:90;;-1:-1:-1;;;11032:49:100;;-1:-1:-1;;;;;199:2819:90;;;11032:49:100;;;199:2819:90;;;;;;;;;;;;;;;11032:49:100;11042:17;;;199:2819:90;11032:49:100;;;;;;;-1:-1:-1;11032:49:100;;;199:2819:90;11031:50:100;;11027:102;;199:2819:90;;-1:-1:-1;;;11143:34:100;;199:2819:90;;;;;11143:34:100;199:2819:90;11143:34:100;199:2819:90;;11143:34:100;;;;;;;-1:-1:-1;11143:34:100;;;199:2819:90;11189:4:100;;;199:2819:90;;11143:51:100;11139:107;;-1:-1:-1;10932:22:100;199:2819:90;;-1:-1:-1;;;;;199:2819:90;;;;-1:-1:-1;;;;;;199:2819:90;;;;;;;-1:-1:-1;;;199:2819:90;;;11334:24:100;-1:-1:-1;;11334:24:100;3282:1:29;1805;-1:-1:-1;;;;;;;;;;;199:2819:90;3716:283:29;11139:107:100;199:2819:90;;-1:-1:-1;;;11217:18:100;;;11143:34;;;;;;;-1:-1:-1;11143:34:100;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;11027:102;-1:-1:-1;199:2819:90;;-1:-1:-1;;;11104:14:100;;;11032:49;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;10928:89;199:2819:90;;-1:-1:-1;;;10977:29:100;;;199:2819:90;;;;;;-1:-1:-1;;199:2819:90;;;;;;1298:40:101;-1:-1:-1;;;;;199:2819:90;;;;;;;;;;;;-1:-1:-1;;199:2819:90;;;;1703:14:100;;:::i;:::-;5173:21:101;;:::i;:::-;199:2819:90;;;;1750:11:100;199:2819:90;;;;;;;;;;;;;1791:1:100;199:2819:90;;;;;;;;;1750:11:100;199:2819:90;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;199:2819:90;;;;-1:-1:-1;;;;;;;;;;;199:2819:90;;;-1:-1:-1;;;;;199:2819:90;;;;;;;;;;;;;;-1:-1:-1;;199:2819:90;;;;;;3901:31:24;199:2819:90;;;;;:::i;:::-;;;-1:-1:-1;199:2819:90;-1:-1:-1;;;;;;;;;;;199:2819:90;;;-1:-1:-1;199:2819:90;;;;;;;;;;;;;;;;;3901:31:24;199:2819:90;;;;;;;;;;;;;;;;-1:-1:-1;;199:2819:90;;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;199:2819:90;5606:15:101;199:2819:90;;;5606:33:101;199:2819:90;-1:-1:-1;199:2819:90;5606:33:101;:::i;199:2819:90:-;;;;;;-1:-1:-1;;199:2819:90;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;199:2819:90;;;;-1:-1:-1;199:2819:90;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;416:25:80;;;;477:31;416:25;;:::i;:::-;199:2819:90;;;;;;;;;;477:31:80;;199:2819:90;;;;;;;;;;;:::i;:::-;477:31:80;199:2819:90;;477:31:80;;;;;;:::i;:::-;518:79;;;199:2819:90;518:79:80;;199:2819:90;;;;;;-1:-1:-1;;199:2819:90;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;199:2819:90;;;;;;;;;;;;;;;;;-1:-1:-1;;199:2819:90;;;;;;;1109:35:101;199:2819:90;;;;;;;;;-1:-1:-1;;199:2819:90;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;3217:103:29;;:::i;:::-;3202:4:24;;:::i;:::-;-1:-1:-1;;;;;199:2819:90;;;9907:21:100;;9903:75;;-1:-1:-1;199:2819:90;;;9992:22:100;199:2819:90;;;;;;;;;;;;;9992:41:100;9988:91;;-1:-1:-1;;;;;199:2819:90;;;;;3586:22:100;199:2819:90;;;;;10145:44:100;;;;10089:40;;:31;199:2819:90;;;;;;;;;;;;;;10089:40:100;199:2819:90;;;;;;;;;;;;;;;10145:44:100;;;;3282:1:29;1805;-1:-1:-1;;;;;;;;;;;199:2819:90;3716:283:29;9903:75:100;199:2819:90;;-1:-1:-1;;;9951:16:100;;199:2819:90;;9951:16:100;199:2819:90;;;;;;-1:-1:-1;;199:2819:90;;;;;2666:94:101;199:2819:90;;;;;:::i;:::-;;;-1:-1:-1;199:2819:90;2666:94:101;199:2819:90;;;-1:-1:-1;199:2819:90;;;;;;;;;;;;;;;;;2666:94:101;199:2819:90;;;;;;;;;;;;;-1:-1:-1;;199:2819:90;;;;;;2816:92:101;199:2819:90;;;;;:::i;:::-;;;-1:-1:-1;199:2819:90;2816:92:101;199:2819:90;;;-1:-1:-1;199:2819:90;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3217:103:29;;:::i;:::-;11459:20:100;199:2819:90;;;;;11455:85:100;;-1:-1:-1;;;;;199:2819:90;;;;;;11550:312:100;;199:2819:90;11459:20:100;199:2819:90;;-1:-1:-1;;;;199:2819:90;-1:-1:-1;;;199:2819:90;;;11872:27:100;11915:20;-1:-1:-1;11915:20:100;;3282:1:29;1805;-1:-1:-1;;;;;;;;;;;199:2819:90;3716:283:29;11550:312:100;199:2819:90;;-1:-1:-1;;;11597:45:100;;-1:-1:-1;;;;;199:2819:90;;11597:45:100;;;199:2819:90;;;11597:45:100;;199:2819:90;;;;;;11597:45:100;11607:15;;;199:2819:90;11597:45:100;;;;;;;-1:-1:-1;11597:45:100;;;11550:312;11596:46;;11592:104;;199:2819:90;;-1:-1:-1;;;11714:30:100;;;199:2819:90;11714:30:100;199:2819:90;11714:30:100;;;;;;;;-1:-1:-1;11714:30:100;;;11550:312;11756:4;;;199:2819:90;;11714:47:100;11710:109;;-1:-1:-1;11459:20:100;199:2819:90;;-1:-1:-1;;;;;;199:2819:90;-1:-1:-1;;;;;199:2819:90;;;;;;;;;11550:312:100;;;;;;11710:109;199:2819:90;;-1:-1:-1;;;11788:16:100;;;11714:30;;;;;;;-1:-1:-1;11714:30:100;;;;;;:::i;:::-;;;;;;11592:104;199:2819:90;;-1:-1:-1;;;11669:12:100;;199:2819:90;;11669:12:100;11597:45;;;;;;;;;;;;;;:::i;:::-;;;;11455:85;199:2819:90;;-1:-1:-1;;;11502:27:100;;;199:2819:90;;;;;;-1:-1:-1;;199:2819:90;;;;;;;;;:::i;:::-;;;3217:103:29;;;:::i;:::-;-1:-1:-1;;;;;199:2819:90;;;;;6112:23:100;;6108:79;;6273:6;199:2819:90;6206:13:100;;;;:::i;:::-;199:2819:90;;;-1:-1:-1;199:2819:90;;;;6273:6:100;:::i;:::-;199:2819:90;;;;;;;;;;;;6302:10:100;;6296:43;;199:2819:90;6296:43:100;1805:1:29;-1:-1:-1;;;;;;;;;;;199:2819:90;;;;;;;;;;;;;;6108:79:100;199:2819:90;;-1:-1:-1;;;6158:18:100;;199:2819:90;;6158:18:100;199:2819:90;;;;;;-1:-1:-1;;199:2819:90;;;;;;-1:-1:-1;199:2819:90;2546:64:101;199:2819:90;;;;-1:-1:-1;199:2819:90;;;;;;;;;;;;;;-1:-1:-1;;199:2819:90;;;;2058:22:101;199:2819:90;;;-1:-1:-1;;;;;199:2819:90;;;;;;;;;;;;;;-1:-1:-1;;199:2819:90;;;;;5173:21:101;;:::i;199:2819:90:-;;;;;;-1:-1:-1;;199:2819:90;;;;;;3217:103:29;;:::i;:::-;966:10:28;-1:-1:-1;199:2819:90;;;;;;;;;;1109:35:101;;199:2819:90;;4468:23:24;4464:108;;199:2819:90;;;;10692:21:100;10688:71;;199:2819:90;;10805:22:100;199:2819:90;;;;;;;;10805:22:100;1805:1:29;-1:-1:-1;;;;;;;;;;;199:2819:90;;4464:108:24;199:2819:90;;;;4514:47:24;;;;;;966:10:28;199:2819:90;4514:47:24;;199:2819:90;;;;;4514:47:24;199:2819:90;;;;;;-1:-1:-1;;199:2819:90;;;;;4803:22:101;;:::i;199:2819:90:-;;;;;;-1:-1:-1;;199:2819:90;;;;;;;;;:::i;:::-;3123:14:100;;:::i;:::-;3154:24;;;:::i;:::-;3181:29;;;;;:::i;:::-;199:2819:90;;;;;;;3235:1:100;199:2819:90;;;;;;;3213:33:100;;;:::i;:::-;199:2819:90;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;199:2819:90;;;;1888:24:101;199:2819:90;;;-1:-1:-1;;;;;199:2819:90;;;;;;;;;;;;;;-1:-1:-1;;199:2819:90;;;;5767:26:24;199:2819:90;;;;;;;:::i;:::-;;-1:-1:-1;199:2819:90;-1:-1:-1;;;;;;;;;;;199:2819:90;;3202:4:24;4919:24;199:2819:90;-1:-1:-1;199:2819:90;4919:24:24;199:2819:90;3202:4:24;:::i;:::-;5767:26;:::i;199:2819:90:-;;;;;;-1:-1:-1;;199:2819:90;;;;;;;;;;;;;-1:-1:-1;;;;;199:2819:90;;;;;;;;;;;;-1:-1:-1;;199:2819:90;;;;;;;675:39:101;199:2819:90;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;:::i;:::-;-1:-1:-1;;;;;449:5:87;199:2819:90;;435:10:87;:19;431:71;;1742:63:90;199:2819;;-1:-1:-1;199:2819:90;1742:15;199:2819;;;-1:-1:-1;199:2819:90;1742:63;:::i;199:2819::-;;;;;;-1:-1:-1;;199:2819:90;;;;;;;;;;;;;;;;;;;-1:-1:-1;;199:2819:90;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;-1:-1:-1;;;;;199:2819:90;;;;;;;;;;;;;;;:::i;:::-;1972:48:100;;199:2819:90;;;;;;;:::i;:::-;;;;;;;;;;;;;;2034:16:100;;2030:111;;199:2819:90;;2233:39:100;1057:70:92;2233:39:100;;4622:48:101;2196:77:100;2233:39;;;;2196:77;;:::i;:::-;2312:36;;4994:47:101;199:2819:90;2312:36:100;;;4994:47:101;;:::i;:::-;2389:37:100;;;4622:48:101;;:::i;:::-;1057:70:92;;:::i;:::-;199:2819:90;;;;;;;;;;;;;2030:111:100;2089:41;;;;-1:-1:-1;199:2819:90;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;4622:48:101;199:2819:90;2196:77:100;199:2819:90;1057:70:92;199:2819:90;;;:::i;:::-;;;;;2030:111:100;;;;;199:2819:90;;;;;;-1:-1:-1;;199:2819:90;;;;2357:1:25;199:2819:90;;;;;:::i;:::-;2303:62:25;;:::i;:::-;2357:1;:::i;199:2819:90:-;;;;;;-1:-1:-1;;199:2819:90;;;;;;;;;:::i;:::-;;;3217:103:29;;:::i;:::-;-1:-1:-1;;;;;199:2819:90;;4890:21:100;4886:75;;4975:11;;4971:73;;845:69:92;4803:22:101;;:::i;:::-;5173:21;;:::i;:::-;845:69:92;;;:::i;:::-;5180:10:100;199:2819:90;;;;5606:15:101;199:2819:90;;;;;5180:10:100;;;5606:33:101;;;:::i;:::-;5150:41:100;;5146:96;;5267:40;;;;;:::i;5146:96::-;199:2819:90;;-1:-1:-1;;;5214:17:100;;199:2819:90;;5214:17:100;4971:73;199:2819:90;;-1:-1:-1;;;5009:24:100;;199:2819:90;;5009:24:100;199:2819:90;;;;;;-1:-1:-1;;199:2819:90;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;199:2819:90;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;:::o;:::-;;7556:1:100;199:2819:90;;;;;;;:::o;:::-;;;;;;;;;;:::o;5256:193:101:-;-1:-1:-1;;;;;199:2819:90;-1:-1:-1;199:2819:90;;;5383:15:101;199:2819:90;;;;;5383:59:101;;5256:193;;5383:59;:::i;199:2819:90:-;;;;;;;;;;;:::o;:::-;;;;;;;;;;1167:340:76;;13510:30:100;1167:340:76;199:2819:90;1167:340:76;6893:76:26;;:::i;:::-;;;:::i;:::-;1805:1:29;-1:-1:-1;;;;;;;;;;;199:2819:90;-1:-1:-1;;;;;199:2819:90;;;;1376:73:76;;1167:340;199:2819:90;;;;:::i;:::-;13510:30:100;199:2819:90;;;13510:30:100;;;;;;:::i;:::-;199:2819:90;;;;-1:-1:-1;;;;;199:2819:90;13555:31:100;13551:88;;13653:20;;;;199:2819:90;;;;;;;;;;13653:25:100;13649:85;;13748:29;;;199:2819:90;;13748:29:100;;199:2819:90;13748:43:100;;-1:-1:-1;;;;;199:2819:90;;;13748:43:100;;13744:943;;1167:340:76;199:2819:90;;;15647:32:100;199:2819:90;14817:36:100;199:2819:90;;;14697:30:100;199:2819:90;;;;;;;;;;;;1398:1:76;199:2819:90;;-1:-1:-1;;;;;;199:2819:90;;;;;;-1:-1:-1;;;;;199:2819:90;;;;;;;;14697:30:100;13510;14747:13;;199:2819:90;;;;-1:-1:-1;;;;;;199:2819:90;-1:-1:-1;;;;;199:2819:90;;;;;;;;;14771:36:100;819:34:63;837:15;819:34;:::i;:::-;1805:1:29;199:2819:90;;-1:-1:-1;;;;199:2819:90;;;;;;-1:-1:-1;;;199:2819:90;;;;;;;;14771:36:100;199:2819:90;;;;;;1805:1:29;199:2819:90;;-1:-1:-1;;;;;199:2819:90;;;;;;-1:-1:-1;;;;;;199:2819:90;;;;;;;;14817:36:100;14864:42;199:2819:90;14883:23:100;;;199:2819:90;;;;;;;;;1398:1:76;199:2819:90;;;;;;;1398:1:76;199:2819:90;;14864:42:100;14917:38;199:2819:90;14934:21:100;;;199:2819:90;;;;;;;1398:1:76;199:2819:90;;;;;;;;;;;;1398:1:76;199:2819:90;;14917:38:100;14965:34;14980:19;;;199:2819:90;14965:34:100;199:2819:90;;14965:34:100;199:2819:90;-1:-1:-1;;;;;199:2819:90;;;;;;;15010:135:100;;1167:340:76;-1:-1:-1;15158:36:100;;;199:2819:90;-1:-1:-1;;;;;199:2819:90;;;;15154:157:100;;1167:340:76;-1:-1:-1;15324:35:100;;;199:2819:90;-1:-1:-1;;;;;199:2819:90;;;;15320:153:100;;1167:340:76;-1:-1:-1;15486:34:100;;;199:2819:90;-1:-1:-1;;;;;199:2819:90;;;;15482:152:100;;1167:340:76;-1:-1:-1;15647:32:100;199:2819:90;-1:-1:-1;;;;;199:2819:90;;;;;;;15643:145:100;;1167:340:76;:::o;15643:145:100:-;15709:68;;;:::i;:::-;;1167:340:76:o;15482:152:100:-;15550:73;;;:::i;:::-;;15482:152;;;15320:153;15389:73;;;:::i;:::-;;15320:153;;;15154:157;15224:76;;;:::i;:::-;;15154:157;;;15010:135;15073:61;;;:::i;:::-;;15010:135;;;13744:943;13811:36;;;199:2819:90;13811:50:100;;-1:-1:-1;;;;;199:2819:90;;;13811:50:100;;13807:405;;13744:943;14230:34;;;199:2819:90;14230:48:100;;-1:-1:-1;;;;;199:2819:90;;;14230:48:100;13744:943;14226:451;14302:21;;;199:2819:90;;14302:21:100;;14351:19;;;199:2819:90;14351:24:100;:74;;;14298:365;14347:150;;14298:365;;199:2819:90;15647:32:100;14298:365;14817:36;199:2819:90;;14298:365:100;;14226:451;;;;;;;13744:943;;14347:150;199:2819:90;-1:-1:-1;;;14460:14:100;;;;;14351:74;-1:-1:-1;14379:32:100;;;199:2819:90;14379:46:100;;-1:-1:-1;;;;;199:2819:90;;;14379:46:100;;14351:74;;14298:365;14525:19;;;199:2819:90;14525:24:100;;;:74;;;14298:365;14521:142;;14298:365;;199:2819:90;15647:32:100;14298:365;14817:36;199:2819:90;;14298:365:100;;;14525:74;-1:-1:-1;14553:32:100;;;199:2819:90;14553:46:100;;-1:-1:-1;;;;;199:2819:90;;;14553:46:100;;;14525:74;;13807:405;13885:23;;;199:2819:90;;13885:23:100;;13936:35;;;199:2819:90;13936:49:100;;-1:-1:-1;;;;;199:2819:90;;;13936:49:100;13807:405;13932:125;199:2819:90;-1:-1:-1;;;14020:14:100;;;;;13881:317;14085:35;;;199:2819:90;14085:49:100;;-1:-1:-1;;;;;199:2819:90;;;14085:49:100;14081:117;13807:405;14081:117;199:2819:90;-1:-1:-1;;;14165:14:100;;;;;13649:85;199:2819:90;;-1:-1:-1;;;13701:22:100;;;;;13551:88;199:2819:90;;-1:-1:-1;;;13609:19:100;;;;;1376:73:76;6961:1:26;6893:76;;;:::i;:::-;;;:::i;6961:1::-;1376:73:76;;;2492:191:100;-1:-1:-1;;;;;199:2819:90;-1:-1:-1;199:2819:90;;;5606:15:101;199:2819:90;;;;;5606:33:101;;;:::i;:::-;5173:21;;:::i;:::-;4803:22;;:::i;:::-;199:2819:90;1884:1:92;199:2819:90;;;;;;;1884:1:92;199:2819:90;;;;;;;8188:25:58;;;:::i;199:2819:90:-;;;;;;:::i;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::i;578:368::-;;;735:95;711:157;578:368;199:2819;;;;;766:63;;;;;;;;199:2819;766:63;;;199:2819;766:63;;;;;;:::i;:::-;735:95;:::i;:::-;766:63;199:2819;;;711:157;;;;;;:::i;:::-;879:61;;;578:368;:::o;879:61::-;199:2819;;;;;;;;766:63;912:17;;199:2819;766:63;912:17;;;;;:::i;199:2819::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;:::i;3612:132:101:-;819:34:63;837:15;819:34;:::i;:::-;3683:54:101;3703:17;199:2819:90;3684:36:101;199:2819:90;;;;;;;3684:36:101;;:::i;:::-;199:2819:90;;;3683:54:101;;:::i;:::-;199:2819:90;3612:132:101;:::o;3313:244::-;3418:17;199:2819:90;;;;;;;;;;;;;;3406:29:101;3402:85;;3503:47;3504:29;;;;:::i;3402:85::-;199:2819:90;;-1:-1:-1;;;3458:18:101;;;;;3217:103:29;;;;:::i;:::-;199:2819:90;;-1:-1:-1;;;;;199:2819:90;;;6521:23:100;;6517:79;;6650:11;;6646:70;;199:2819:90;6742:10:100;;;;;;-1:-1:-1;199:2819:90;;6887:49:100;;199:2819:90;;;;6864:6:100;;199:2819:90;;6821:18:100;;199:2819:90;;-1:-1:-1;;;;;199:2819:90;;;6821:18:100;6864:6;:::i;:::-;6887:49;199:2819:90;;6898:10:100;;;;6887:49;;;:::i;:::-;;;;3282:1:29;;1805;-1:-1:-1;;;;;;;;;;;199:2819:90;3716:283:29;6754:3:100;6790:9;6773:27;199:2819:90;6790:9:100;6783:17;6790:9;;;;;:::i;:::-;199:2819:90;6783:17:100;:::i;6773:27::-;6754:3;199:2819:90;6731:9:100;;6646:70;199:2819:90;;-1:-1:-1;;;6684:21:100;;;;;199:2819:90;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;199:2819:90;;;;;;;;;;;;;;;;;;;;;;:::o;1178:370::-;;;1336:96;1312:158;1178:370;199:2819;;;;;1367:64;;;;;;;;199:2819;1367:64;;;199:2819;1367:64;;;;;;:::i;199:2819::-;;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;-1:-1:-1;199:2819:90;;;;:::o;:::-;;;:::o;1818:400::-;199:2819;;-1:-1:-1;;;2026:75:90;;;;-1:-1:-1;;;;;199:2819:90;;;2026:75;;;199:2819;;;;;;;;;;;;;2026:75;;199:2819;;1818:400;1971:169;;1995:107;;2026:75;199:2819;2026:75;:::i;3405:215:25:-;-1:-1:-1;;;;;199:2819:90;;;;3489:22:25;;3485:91;;-1:-1:-1;;;;;;;;;;;199:2819:90;;-1:-1:-1;;;;;;199:2819:90;;;;;;;;3975:40:25;-1:-1:-1;;3975:40:25;3405:215::o;3485:91::-;199:2819:90;;-1:-1:-1;;;3534:31:25;;3509:1;3534:31;;;199:2819:90;;;3534:31:25;2731:227:100;;2871:34;2731:227;199:2819:90;-1:-1:-1;199:2819:90;2871:18:100;199:2819:90;;;-1:-1:-1;199:2819:90;;;;;;;;;;;;;;;;;2871:34:100;199:2819:90;;-1:-1:-1;199:2819:90;2907:11:100;199:2819:90;;;-1:-1:-1;199:2819:90;;2927:16:100;199:2819:90;;;-1:-1:-1;199:2819:90;;;1884:1:92;199:2819:90;;;;;;;1884:1:92;199:2819:90;;;;;;;8188:25:58;;;:::i;2224:792:90:-;;;;;2579:34;2416:45;2357:12;199:2819;2416:45;;;:::i;:::-;2503:33;;;;;:::i;:::-;2579:34;;:::i;:::-;199:2819;;;2628:30;;;:61;;;2224:792;2628:93;;;;2224:792;2624:386;;2224:792;;;:::o;2624:386::-;199:2819;;;;2744:255;199:2819;;;;;;;;;;:::i;:::-;;;2772:213;;;199:2819;;;;2772:213;;199:2819;;;;;;2744:255;;;2772:213;2744:255;;;199:2819;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;2628:93::-;199:2819;;;2693:28;;2628:93;;:61;199:2819;;;2662:27;;2628:61;;3326:384:29;-1:-1:-1;;;;;;;;;;;1847:1:29;199:2819:90;;3526:20:29;3522:88;;1847:1;199:2819:90;;3326:384:29:o;3522:88::-;199:2819:90;;-1:-1:-1;;;3569:30:29;;;;;11948:968:100;12135:10;199:2819:90;;;;5606:15:101;199:2819:90;;;;;;11948:968:100;;;819:34:63;837:15;819:34;:::i;:::-;12135:10:100;199:2819:90;;;;5606:15:101;199:2819:90;;;;;5606:33:101;;;:::i;:::-;199:2819:90;;;;;;;;;12119:93:100;12835:74;12119:93;;;12660:30;12119:93;;:::i;:::-;837:15:63;;12222:67:100;819:34:63;837:15;819:34;:::i;:::-;12259:29:100;4803:22:101;;;:::i;12222:67:100:-;837:15:63;;12299:68:100;819:34:63;837:15;819:34;:::i;:::-;12335:31:100;5173:21:101;;;:::i;12299:68:100:-;12394:14;;12769:34;12394:14;12769:25;12394:18;:14;;:::i;:::-;:18;:::i;:::-;12726:33;12445:18;;199:2819:90;;7528:11:100;199:2819:90;;;;;;;12445:18:100;199:2819:90;12502:23:100;;199:2819:90;;12502:16:100;199:2819:90;;;;;;;12502:23:100;199:2819:90;390:70:92;;;;;:::i;:::-;12660:30:100;;;;;;:::i;:::-;12639:18;;199:2819:90;;7528:11:100;199:2819:90;;;;;;;12639:18:100;199:2819:90;12726:33:100;:::i;:::-;12700:23;;199:2819:90;;12502:16:100;199:2819:90;;;;;;;12700:23:100;199:2819:90;;;12769:18:100;199:2819:90;;;;;;;12769:25:100;199:2819:90;;;;;;;;;;;;;;;;12769:34:100;:50;199:2819:90;;;12769:50:100;:::i;:::-;199:2819:90;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;199:2819:90;;;;12135:10:100;;199:2819:90;;12835:74:100;11948:968::o;14291:213:59:-;199:2819:90;14369:24:59;;;;14365:103;;199:2819:90;14291:213:59;:::o;14365:103::-;199:2819:90;;;;14416:41:59;;;;;;14447:2;14416:41;;;199:2819:90;;;;;14416:41:59;199:2819:90;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::o;7558:604:91:-;;199:2819:90;;7686:17:91;7682:83;;199:2819:90;7789:27:91;199:2819:90;7789:27:91;199:2819:90;;7789:27:91;;;;;;:::i;:::-;7860:14;;;:::i;:::-;199:2819:90;;;;;;;;;;;;;;;;7888:22:91;;;7884:77;;7975:21;-1:-1:-1;7975:84:91;;;;7558:604;7971:139;;;;8127:28;;;;:::i;7971:139::-;7789:27;8082:17;;;199:2819:90;8075:24:91;:::o;7975:84::-;199:2819:90;;;8009:16:91;4622:13:101;199:2819:90;8009:16:91;:::i;:::-;199:2819:90;;;8001:24:91;:57;;;;;7975:84;;;;;;;8001:57;8029:29;8038:8;;;8029:18;8038:8;8029:23;8038:8;;:::i;:::-;8029:18;:::i;:23::-;199:2819:90;;;;8029:29:91;;8001:57;;;;7884:77;7933:17;;;7789:27;7933:17;;;199:2819:90;7926:24:91;:::o;7682:83::-;7726:28;;;;:::i;7558:604::-;;199:2819:90;;7686:17:91;7682:83;;199:2819:90;7789:27:91;199:2819:90;7789:27:91;199:2819:90;;7789:27:91;;;;;;:::i;:::-;7860:14;;;:::i;:::-;199:2819:90;;;;;;;;;;;;;;;;7888:22:91;;;7884:77;;7975:21;-1:-1:-1;7975:84:91;;;;7558:604;7971:139;;;;8127:28;;;;:::i;7975:84::-;199:2819:90;;;8009:16:91;4994:12:101;199:2819:90;8009:16:91;:::i;:::-;199:2819:90;;;8001:24:91;:57;;;;;7975:84;;;;;;;8001:57;8029:29;8038:8;;;8029:18;8038:8;8029:23;8038:8;;:::i;:::-;8029:18;:::i;:29::-;;8001:57;;;;7682:83;7726:28;;;;:::i;7558:604::-;;199:2819:90;;7686:17:91;7682:83;;199:2819:90;7789:27:91;199:2819:90;7789:27:91;199:2819:90;;7789:27:91;;;;;;:::i;:::-;7860:14;;;;;:::i;:::-;199:2819:90;;;;;;;;;;;;;;;;7888:22:91;;;7884:77;;7975:21;-1:-1:-1;7975:84:91;;;;7558:604;7971:139;;;;8127:28;;;;:::i;7971:139::-;8082:17;;7789:27;8082:17;199:2819:90;8075:24:91;:::o;7975:84::-;199:2819:90;;;8009:16:91;199:2819:90;;8009:16:91;:::i;:::-;199:2819:90;;;8001:24:91;:57;;;;;7975:84;;;;;;;8001:57;8029:29;8038:8;;;8029:18;8038:8;8029:23;8038:8;;:::i;:::-;8029:18;;:::i;:29::-;;8001:57;;;;7884:77;7933:17;;;;;7789:27;7933:17;199:2819:90;7926:24:91;:::o;7682:83::-;7726:28;;;;:::i;4148:103:24:-;966:10:28;-1:-1:-1;199:2819:90;;;;;;;;;675:39:101;;199:2819:90;;3901:31:24;199:2819:90;;4468:23:24;4464:108;;4148:103;:::o;:::-;966:10:28;-1:-1:-1;199:2819:90;;;;;;;;;966:38:101;;199:2819:90;;3901:31:24;199:2819:90;4148:103:24;966:10:28;-1:-1:-1;199:2819:90;;;;;;;;;821:37:101;;199:2819:90;;3901:31:24;199:2819:90;4148:103:24;-1:-1:-1;199:2819:90;;;-1:-1:-1;;;;;;;;;;;199:2819:90;;;;;;;;966:10:28;199:2819:90;;;;;;;;;3901:31:24;199:2819:90;7270:387:24;-1:-1:-1;;;;;199:2819:90;;1398:1:76;199:2819:90;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2887:71:24;199:2819:90;;;;1398:1:76;199:2819:90;;;;;;;;;;;-1:-1:-1;;;;;199:2819:90;;;;;;;;;;-1:-1:-1;;199:2819:90;7509:4:24;199:2819:90;;;966:10:28;;-1:-1:-1;;;;;199:2819:90;-1:-1:-1;7532:40:24;-1:-1:-1;;7532:40:24;7509:4;7586:11;:::o;7432:219::-;7628:12;;1398:1:76;7628:12:24;:::o;7270:387::-;-1:-1:-1;;;;;199:2819:90;;-1:-1:-1;199:2819:90;;;;;;;;;675:39:101;;-1:-1:-1;;;;;;;;;;;2887:71:24;199:2819:90;;3901:31:24;199:2819:90;;;;-1:-1:-1;199:2819:90;;;;;;;;;;;-1:-1:-1;;;;;199:2819:90;;;;;;;;;;-1:-1:-1;;199:2819:90;7509:4:24;199:2819:90;;;966:10:28;;-1:-1:-1;;;;;199:2819:90;;7532:40:24;-1:-1:-1;;7532:40:24;7509:4;7586:11;:::o;7432:219::-;7628:12;;;-1:-1:-1;7628:12:24;:::o;7270:387::-;-1:-1:-1;;;;;199:2819:90;;-1:-1:-1;199:2819:90;;;;;;;;;821:37:101;;-1:-1:-1;;;;;;;;;;;2887:71:24;199:2819:90;;3901:31:24;199:2819:90;7270:387:24;-1:-1:-1;;;;;199:2819:90;;-1:-1:-1;199:2819:90;;;;;;;;;966:38:101;;-1:-1:-1;;;;;;;;;;;2887:71:24;199:2819:90;;3901:31:24;199:2819:90;7270:387:24;-1:-1:-1;;;;;199:2819:90;;-1:-1:-1;199:2819:90;;;;;;;;;1109:35:101;;-1:-1:-1;;;;;;;;;;;2887:71:24;199:2819:90;;3901:31:24;199:2819:90;7270:387:24;-1:-1:-1;199:2819:90;;;-1:-1:-1;;;;;;;;;;;199:2819:90;;;;;;;;-1:-1:-1;;;;;199:2819:90;;;;;;;;;;;;3901:31:24;199:2819:90;7892:388:24;-1:-1:-1;199:2819:90;;;-1:-1:-1;;;;;;;;;;;199:2819:90;;;;;;;;-1:-1:-1;;;;;199:2819:90;;;;;;;;;;;;;;;;-1:-1:-1;199:2819:90;;;;;;;;;;;-1:-1:-1;;;;;199:2819:90;;;;;;;;;;-1:-1:-1;;199:2819:90;;;966:10:28;;-1:-1:-1;;;;;199:2819:90;;8155:40:24;-1:-1:-1;;8155:40:24;199:2819:90;8209:11:24;:::o;1702:188:46:-;199:2819:90;;-1:-1:-1;;;1829:53:46;;;;-1:-1:-1;;;;;199:2819:90;;;1829:53:46;;;199:2819:90;;;;;;;;;;;;;;;;;1829:53:46;;;199:2819:90;;;;;;;-1:-1:-1;;;;;199:2819:90;;;;;1829:53:46;199:2819:90;;;1829:53:46;:::i;199:2819:90:-;9219:12:91;199:2819:90;;;;;;9219:12:91;-1:-1:-1;199:2819:90;-1:-1:-1;;;;;;;;;;;199:2819:90;;-1:-1:-1;199:2819:90;:::o;:::-;9219:12:91;199:2819:90;;;;;;9219:12:91;-1:-1:-1;199:2819:90;-1:-1:-1;;;;;;;;;;;199:2819:90;;-1:-1:-1;199:2819:90;:::o;:::-;;;;;;;;-1:-1:-1;199:2819:90;;-1:-1:-1;199:2819:90;;;-1:-1:-1;199:2819:90;:::o;:::-;6360:12:91;199:2819:90;-1:-1:-1;;;199:2819:90;;;;;;;;;6360:12:91;199:2819:90;;;;;;6360:12:91;-1:-1:-1;199:2819:90;-1:-1:-1;;;;;;;;;;;199:2819:90;;:::o;:::-;6360:12:91;199:2819:90;-1:-1:-1;;;199:2819:90;;;;;;;;;6360:12:91;199:2819:90;;;;;;6360:12:91;-1:-1:-1;199:2819:90;-1:-1:-1;;;;;;;;;;;199:2819:90;;:::o;:::-;;;;;-1:-1:-1;;;199:2819:90;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;6246:584:91;;;;6360:12;199:2819:90;;;6360:24:91;;6356:75;;6246:584;6474:30;;;:::i;:::-;199:2819:90;;;;;;6578:12:91;;;:::i;:::-;6604:24;;;;6246:584;-1:-1:-1;6600:188:91;;;-1:-1:-1;;;199:2819:90;;;;;;;;;-1:-1:-1;199:2819:90;;;-1:-1:-1;199:2819:90;;;;;;6798:25:91;199:2819:90;6246:584:91:o;6600:188::-;8167:38:61;;-1:-1:-1;;;;;199:2819:90;;-1:-1:-1;8167:38:61;:::i;:::-;6753:24:91;;;;;:::i;:::-;6798:25;6246:584;:::o;6604:24::-;199:2819:90;;;;;;6614:14:91;;-1:-1:-1;6604:24:91;;;6356:75;-1:-1:-1;;;199:2819:90;;;;;;;;;;;;;;;;-1:-1:-1;199:2819:90;;;;-1:-1:-1;;;;;;;;;;;199:2819:90;;6356:75:91;;;6246:584;;;;6360:12;199:2819:90;;;6360:24:91;;6356:75;;6246:584;6474:30;;;:::i;:::-;199:2819:90;;;;;;6578:12:91;;;:::i;:::-;6604:24;;;;6246:584;-1:-1:-1;6600:188:91;;;-1:-1:-1;;;199:2819:90;;;;;;;;;-1:-1:-1;199:2819:90;;;-1:-1:-1;199:2819:90;;;;;;6798:25:91;199:2819:90;6246:584:91:o;6600:188::-;8167:38:61;;-1:-1:-1;;;;;199:2819:90;;-1:-1:-1;8167:38:61;:::i;:::-;6753:24:91;;;;;:::i;6604:::-;199:2819:90;;;;;;6614:14:91;;-1:-1:-1;6604:24:91;;;6356:75;-1:-1:-1;;;199:2819:90;;;;;;;;;;;;;;;;-1:-1:-1;199:2819:90;;;;-1:-1:-1;;;;;;;;;;;199:2819:90;;6356:75:91;;;6246:584;;;;;6360:12;;;199:2819:90;;;6360:24:91;;6356:75;;6246:584;6474:30;;;;;:::i;:::-;199:2819:90;;;;;;6578:12:91;;;;:::i;:::-;6604:24;;;;6246:584;-1:-1:-1;6600:188:91;;;-1:-1:-1;;;;;199:2819:90;;;;;;;6644:21:91;;;:29;:21;;:::i;6600:188::-;6753:24;;199:2819:90;;8167:38:61;;-1:-1:-1;;;;;199:2819:90;;;;;8167:38:61;:::i;:::-;6753:24:91;;;:::i;6604:::-;199:2819:90;;;;;;6614:14:91;;-1:-1:-1;6604:24:91;;;6356:75;-1:-1:-1;;;199:2819:90;;;;;;6360:12:91;199:2819:90;;;;;;;:::i;:::-;;;;;;;;;;;;;;6356:75:91;;;199:2819:90;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::o;8406:869:91:-;1113:13:90;199:2819;8620:15:91;8578:11;8645:18;8678:7;8684:1;8678:7;;8674:241;;8406:869;8939:60;;;;:::i;:::-;9014:8;;9010:62;;199:2819:90;9130:48:91;9170:7;;;:::i;:::-;1113:13:90;13267:109:91;;-1:-1:-1;;;;;;;;;;;13267:109:91;13089:293;;9130:48;199:2819:90;:::i;:::-;;9252:15:91;9259:7;199:2819:90;9219:31:91;199:2819:90;9232:17:91;199:2819:90;;;;;;;;9232:17:91;;199:2819:90;-1:-1:-1;;;;;199:2819:90;;;;9219:31:91;:::i;:::-;199:2819:90;;;;;;;;;9259:7:91;;:::i;:::-;199:2819:90;;;;9252:15:91;9176:1;;9188:80;;8406:869::o;9010:62::-;9038:23;8578:11;9038:23;8578:11;9038:23;8578:11;9038:23;8578:11;9038:23;:::o;8674:241::-;8721:14;;;;;:::i;:::-;199:2819:90;;;;;;;1113:13;8578:11:91;13267:109;-1:-1:-1;;;;;;;;;;;13267:109:91;;199:2819:90;8939:60:91;;13267:109;199:2819:90;;;;;;;8753:55:91;199:2819:90;;;8828:10:91;8749:156;8674:241;;8749:156;8883:7;;;;;;:::i;:::-;8749:156;8674:241;;8406:869;514:12:90;199:2819;8620:15:91;8578:11;8645:18;8678:7;8684:1;8678:7;;8674:241;;8406:869;8939:60;;;;:::i;:::-;9014:8;;9010:62;;199:2819:90;9130:48:91;9170:7;;;:::i;:::-;514:12:90;13267:109:91;;-1:-1:-1;;;;;;;;;;;13267:109:91;13089:293;;199:2819:90;;9252:15:91;9259:7;199:2819:90;9219:31:91;199:2819:90;9232:17:91;199:2819:90;;;;;;;;9219:31:91;:::i;8674:241::-;8721:14;;;;;:::i;:::-;199:2819:90;;;;;;;514:12;8578:11:91;13267:109;-1:-1:-1;;;;;;;;;;;13267:109:91;;199:2819:90;8939:60:91;;13267:109;199:2819:90;;;;;;;8753:55:91;199:2819:90;;;8828:10:91;8749:156;8674:241;;8749:156;8883:7;;;;;;:::i;:::-;8749:156;8674:241;;8406:869;;;199:2819:90;;8620:15:91;8578:11;8645:18;8678:7;8684:1;8678:7;;8674:241;;8406:869;8939:60;;;;;:::i;:::-;9014:8;;;9010:62;;9252:15;9259:7;199:2819:90;9219:31:91;199:2819:90;9130:48:91;9170:7;;;:::i;:::-;9130:48;13267:109;;;;;;13089:293;;199:2819:90;;9176:1:91;199:2819:90;9232:17:91;199:2819:90;;;;;;;;9232:17:91;;199:2819:90;-1:-1:-1;;;;;199:2819:90;;;;9219:12:91;;:31;:::i;9010:62::-;8578:11;;-1:-1:-1;8578:11:91;;-1:-1:-1;8578:11:91;;;;9038:23::o;8674:241::-;8721:14;;;;;:::i;:::-;199:2819:90;;;;;;;8939:60:91;13267:109;;8578:11;13267:109;8753:55;8759:49;13267:109;;8578:11;13267:109;;199:2819:90;;;;;;8753:55:91;199:2819:90;;;8753:55:91;13267:109;;;8828:10;8749:156;8674:241;;8749:156;8883:7;;;;;;:::i;:::-;8749:156;8674:241;;199:2819:90;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;:::o;525:595:87:-;;-1:-1:-1;199:2819:90;;;;;716:88:87;;;;;199:2819:90;716:88:87;;;;;;;;;783:4;716:88;;;199:2819:90;;;;;;;;;;;:::i;716:88:87:-;698:107;;;;;;;:::i;:::-;199:2819:90;;857:45:87;;;;;;;;199:2819:90;;;;;857:45:87;;;199:2819:90;;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;199:2819:90;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;-1:-1:-1;199:2819:90;;;;;;;;;;916:8:87;912:175;;1096:17;525:595;:::o;912:175::-;199:2819:90;;;944:22:87;;;940:36;;990:87;;2658:162:25;-1:-1:-1;;;;;;;;;;;199:2819:90;-1:-1:-1;;;;;199:2819:90;966:10:28;2717:23:25;2713:101;;2658:162::o;2713:101::-;199:2819:90;;-1:-1:-1;;;2763:40:25;;966:10:28;2763:40:25;;;199:2819:90;;;2763:40:25;2557:104:58;;2641:5;;;;;;:13;2557:104;:::o;2641:13::-;;;2557:104;:::o;199:2819:90:-;;;;;;;:::o;3803:4116:58:-;;;199:2819:90;;;;-1:-1:-1;;3803:4116:58;;4383:131;;;;;;;;;;;;4595:10;;4591:368;;5065:20;;;;5061:88;;5435:300;;;199:2819:90;-1:-1:-1;199:2819:90;5954:31:58;;5999:371;;;6813:1;199:2819:90;;6794:1:58;199:2819:90;6793:21:58;199:2819:90;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5999:371:58;;;;-1:-1:-1;5999:371:58;;;5435:300;;;;;;199:2819:90;5435:300:58;;5999:371;6436:21;199:2819:90;3803:4116:58;:::o;5061:88::-;199:2819:90;;-1:-1:-1;;;5112:22:58;;;;;4591:368;4925:19;;;;;;;:::i;1303:160:46:-;199:2819:90;;-1:-1:-1;;;1412:43:46;;;;-1:-1:-1;;;;;199:2819:90;;;1412:43:46;;;199:2819:90;;;;;;;;;1412:43:46;;;;;;199:2819:90;1412:43:46;:::i;:::-;;:::i;12922:460:100:-;;13024:14;;:::i;:::-;13015:23;;;13011:75;;-1:-1:-1;199:2819:90;;;13100:20:100;199:2819:90;;;;;;;;13128:10:100;199:2819:90;;;;;;;;;;13096:93:100;;13208:32;13128:10;13208:32;;:::i;:::-;13255:11;;;13251:68;;-1:-1:-1;199:2819:90;;;13100:20:100;199:2819:90;;;;;;;;13128:10:100;199:2819:90;;;;;;;;;-1:-1:-1;;199:2819:90;13371:4:100;199:2819:90;;;12922:460:100:o;13251:68::-;199:2819:90;;-1:-1:-1;;;13289:19:100;;;;;13096:93;199:2819:90;;-1:-1:-1;;;13162:16:100;;;;;13011:75;199:2819:90;;-1:-1:-1;;;13061:14:100;;;;;10580:184:91;5173:12:101;199:2819:90;10303:8:61;;;:63;-1:-1:-1;10303:63:61;-1:-1:-1;;;;;199:2819:90;;10726:7:91;199:2819:90;;10736:12:91;199:2819:90;;;;;;10736:12:91;-1:-1:-1;199:2819:90;-1:-1:-1;;;;;;;;;;;199:2819:90;;10580:184:91;:::o;10726:31::-;;-1:-1:-1;10580:184:91;:::o;10303:63:61:-;199:2819:90;;;;;;;;5173:12:101;-1:-1:-1;13267:109:91;;;199:2819:90;;;10303:63:61;;10580:184:91;4803:13:101;199:2819:90;10303:8:61;;;:63;-1:-1:-1;10303:63:61;-1:-1:-1;;;;;199:2819:90;;10726:7:91;199:2819:90;;10736:12:91;199:2819:90;;;;;;10736:12:91;-1:-1:-1;199:2819:90;-1:-1:-1;;;;;;;;;;;199:2819:90;;10580:184:91;:::o;10303:63:61:-;199:2819:90;;;;;;;;4803:13:101;-1:-1:-1;13267:109:91;;;199:2819:90;;;10303:63:61;;10580:184:91;199:2819:90;;10303:8:61;;;:63;-1:-1:-1;10303:63:61;-1:-1:-1;;;;;199:2819:90;;10726:7:91;199:2819:90;;10736:12:91;:17;:12;;:17;:::i;10303:63:61:-;199:2819:90;;;;;;;;;;13267:109:91;-1:-1:-1;13267:109:91;;-1:-1:-1;13267:109:91;;;199:2819:90;;;10303:63:61;;1662:280:92;;;1884:1;199:2819:90;;;;;;;1884:1:92;199:2819:90;;;;;;;8188:25:58;;;:::i;6999:207:91:-;4622:13:101;199:2819:90;9594:15:61;-1:-1:-1;9619:18:61;9652:7;9658:1;9652:7;;9648:234;;6999:207:91;9906:53:61;;;;:::i;:::-;9977:8;;;:63;-1:-1:-1;9977:63:61;-1:-1:-1;;;;;199:2819:90;;7168:7:91;199:2819:90;;7178:17:91;199:2819:90;7178:17:91;;:::i;9977:63:61:-;9992:41;10025:7;9992:48;10025:7;;:::i;9992:41::-;199:2819:90;;;;;9992:48:61;9977:63;;9648:234;9695:14;;;;;:::i;:::-;199:2819:90;;;;;;;9906:53:61;13267:109:91;4622:13:101;-1:-1:-1;13267:109:91;199:2819:90;13267:109:91;;-1:-1:-1;;;;;;;;;;;13267:109:91;199:2819:90;;;;;9727:48:61;9723:149;199:2819:90;;;9795:10:61;9723:149;9648:234;;9723:149;9850:7;;;;;;:::i;:::-;9723:149;9648:234;;6999:207:91;4994:12:101;199:2819:90;9594:15:61;-1:-1:-1;9619:18:61;9652:7;9658:1;9652:7;;9648:234;;6999:207:91;9906:53:61;;;;:::i;:::-;9977:8;;;:63;-1:-1:-1;9977:63:61;-1:-1:-1;;;;;199:2819:90;;7168:7:91;199:2819:90;;7178:17:91;199:2819:90;7178:17:91;;:::i;9977:63:61:-;9992:41;10025:7;9992:48;10025:7;;:::i;9992:48::-;9977:63;;9648:234;9695:14;;;;;:::i;:::-;199:2819:90;;;;;;;9906:53:61;13267:109:91;4994:12:101;-1:-1:-1;13267:109:91;199:2819:90;13267:109:91;;-1:-1:-1;;;;;;;;;;;13267:109:91;199:2819:90;;;;;9727:48:61;9723:149;199:2819:90;;;9795:10:61;9723:149;9648:234;;9723:149;9850:7;;;;;;:::i;:::-;9723:149;9648:234;;6999:207:91;;199:2819:90;;9594:15:61;-1:-1:-1;9619:18:61;9652:7;9658:1;9652:7;;9648:234;;6999:207:91;9906:53:61;;;;;:::i;:::-;9977:8;;;:63;-1:-1:-1;9977:63:61;;-1:-1:-1;;;;;199:2819:90;;7168:7:91;199:2819:90;;;7178:12:91;;:17;:12;;:17;:::i;9977:63:61:-;9992:41;10025:7;9992:48;10025:7;;:::i;:::-;9992:41;13267:109:91;;;;;;13089:293;;9992:48:61;9977:63;;;9648:234;9695:14;;;;;:::i;:::-;199:2819:90;;;;;;;9906:53:61;13267:109:91;;-1:-1:-1;13267:109:91;199:2819:90;13267:109:91;;;-1:-1:-1;13267:109:91;;199:2819:90;;;;;9727:48:61;9723:149;199:2819:90;;;9795:10:61;9723:149;9648:234;;9723:149;9850:7;;;;;;:::i;:::-;9723:149;9648:234;;199:2819:90;;;;;;;:::i;:::-;-1:-1:-1;199:2819:90;;;;;;;:::o;11486:272:91:-;199:2819:90;;:::i;:::-;;;;:::i;:::-;;4622:13:101;199:2819:90;;;;;;;;4622:13:101;-1:-1:-1;199:2819:90;-1:-1:-1;;;;;;;;;;;199:2819:90;;:::i;:::-;;;;;;;;;;;;11731:17:91;;199:2819:90;;11718:12:91;199:2819:90;;;;;;11718:12:91;-1:-1:-1;199:2819:90;-1:-1:-1;;;;;;;;;;;199:2819:90;;;;;;;;:::i;:::-;;;;11672:79:91;;199:2819:90;11486:272:91;:::o;:::-;199:2819:90;;:::i;:::-;;;;:::i;:::-;;4994:12:101;199:2819:90;;;;;;;;4994:12:101;-1:-1:-1;199:2819:90;-1:-1:-1;;;;;;;;;;;199:2819:90;;:::i;:::-;;;;;;;;;;;;11731:17:91;;199:2819:90;;11718:12:91;199:2819:90;;;;;;11718:12:91;-1:-1:-1;199:2819:90;-1:-1:-1;;;;;;;;;;;199:2819:90;;;;;;;;:::i;11486:272:91:-;;199:2819:90;11308:22:61;11718:31:91;11486:272;199:2819:90;;:::i;:::-;;;;:::i;:::-;;11308:22:61;;:::i;:::-;199:2819:90;;:::i;:::-;;11718:12:91;199:2819:90;;;;;11731:17:91;199:2819:90;;;;;11731:17:91;;199:2819:90;;11718:12:91;;:31;:::i;:::-;199:2819:90;;;;;;;;;:::i;:::-;;;;;;11731:17:91;11672:79;;199:2819:90;11486:272:91;:::o;4059:629:46:-;2847:1:47;4059:629:46;3510:55:47;4059:629:46;199:2819:90;;;;;;3462:31:47;;;;;;;;;;;;:::i;:::-;3510:55;;;:::i;:::-;199:2819:90;;4551:22:46;;;;:57;;;;4059:629;4547:135;;;;4059:629;:::o;4547:135::-;199:2819:90;;;;4631:40:46;;;;;;;;;199:2819:90;4631:40:46;4551:57;4578:30;;;3462:31:47;4578:30:46;;;;;;;;:::i;:::-;4577:31;4551:57;;;;1258:280:92;;;199:2819:90;;;;;;;;;;;;;;;;8188:25:58;;;;;:::i;:::-;8257;;;;;;8223:101;;1258:280:92;:::o;8223:101:58:-;199:2819:90;;;;;;;;1258:280:92;:::o;10552:388:61:-;5173:12:101;199:2819:90;10728:8:61;;;10752:20;10690:17;10752:20;10690:17;10752:20;10690:17;10752:20;:::o;10724:210::-;199:2819:90;;;;;;;;13267:109:91;199:2819:90;13267:109:91;5173:12:101;10690:17:61;13267:109:91;;199:2819:90;:::i;:::-;;;;;;;13267:109:91;199:2819:90;;;;;10911:11:61;;199:2819:90;;10886:37:61;10870:1;10886:37;;;:::o;10552:388::-;4803:13:101;199:2819:90;10728:8:61;;;10752:20;10690:17;10752:20;10690:17;10752:20;10690:17;10752:20;:::o;10724:210::-;199:2819:90;;;;;;;;13267:109:91;199:2819:90;13267:109:91;4803:13:101;10690:17:61;13267:109:91;;199:2819:90;:::i;10552:388:61:-;199:2819:90;;10728:8:61;;;10752:20;;10690:17;10752:20;10690:17;10752:20;10690:17;10752:20;:::o;10724:210::-;199:2819:90;;;;;;;;;;;13267:109:91;10690:17:61;13267:109:91;;10690:17:61;13267:109:91;;;199:2819:90;:::i;8587:1642:58:-;8658:6;;8654:45;;9401:7;10201:10;10142:26;10093;10044;9995;9946;9897;9848;199:2819:90;10189:23:58;9401:7;8663:1;199:2819:90;;;;10826:16:58;10822:99;;8587:1642;199:2819:90;;;;10938:15:58;10934:96;;8587:1642;199:2819:90;;;;11047:15:58;11043:96;;8587:1642;199:2819:90;;;;11156:15:58;11152:96;;8587:1642;199:2819:90;;;;11265:14:58;11261:93;;8587:1642;199:2819:90;;;;11371:14:58;11367:93;;8587:1642;199:2819:90;;;;11477:14:58;11473:93;;8587:1642;199:2819:90;;;11579:64:58;;8587:1642;199:2819:90;;;9858:10:58;;;;:::i;:::-;199:2819:90;;;;;9848:26:58;9907:10;;;;:::i;9897:26::-;9956:10;;;;:::i;9946:26::-;10005:10;;;;:::i;9995:26::-;10054:10;;;;:::i;10044:26::-;10103:10;;;;:::i;10093:26::-;10152:10;;;;:::i;10142:26::-;10201:10;;;:::i;:::-;10189:23;;:::i;11579:64::-;199:2819:90;;11579:64:58;;11473:93;199:2819:90;11511:11:58;;199:2819:90;;11473:93:58;;;;11367;199:2819:90;11405:11:58;;199:2819:90;;11367:93:58;;;;11261;199:2819:90;11299:11:58;;199:2819:90;;11261:93:58;;;;11152:96;199:2819:90;11191:12:58;;199:2819:90;;11152:96:58;;;;11043;199:2819:90;11082:12:58;;199:2819:90;;11043:96:58;;;;10934;199:2819:90;10973:12:58;;199:2819:90;;10934:96:58;;;;10822:99;10862:13;;;199:2819:90;10822:99:58;;;;12497:447:91;;12694:10;;;;;;12926:11;;12497:447;:::o;12687:230::-;2900:5:58;;;;;199:2819:90;;2910:5:58;;;199:2819:90;;;;;;;;;1113:13;-1:-1:-1;13267:109:91;199:2819:90;13267:109:91;;-1:-1:-1;;;;;;;;;;;13267:109:91;199:2819:90;;;;;-1:-1:-1;12771:136:91;199:2819:90;;;12830:10:91;;12771:136;;12687:230;;;12771:136;199:2819:90;;;;;;;;;;;12771:136:91;;;12497:447;;12694:10;;;;;;12926:11;;12497:447;:::o;12687:230::-;2900:5:58;;;;;199:2819:90;;2910:5:58;;;199:2819:90;;;;;;;;;514:12;-1:-1:-1;13267:109:91;199:2819:90;13267:109:91;;-1:-1:-1;;;;;;;;;;;13267:109:91;199:2819:90;;;;;-1:-1:-1;12771:136:91;199:2819:90;;;12830:10:91;;12771:136;;12687:230;;;12771:136;199:2819:90;;;;;;;;;;;12771:136:91;;;12497:447;;12694:10;;;;;;12926:11;;12497:447;:::o;12687:230::-;2900:5:58;;;;;199:2819:90;;2910:5:58;;;199:2819:90;;;;;;;;;4622:13:101;-1:-1:-1;13267:109:91;199:2819:90;13267:109:91;;-1:-1:-1;;;;;;;;;;;13267:109:91;199:2819:90;;;;;-1:-1:-1;12771:136:91;199:2819:90;;;12830:10:91;;12771:136;;12687:230;;;12771:136;199:2819:90;;;;;;;;;;;12771:136:91;;;12497:447;;12694:10;;;;;;12926:11;;12497:447;:::o;12687:230::-;2900:5:58;;;;;199:2819:90;;2910:5:58;;;199:2819:90;;;;;;;;;4994:12:101;-1:-1:-1;13267:109:91;199:2819:90;13267:109:91;;-1:-1:-1;;;;;;;;;;;13267:109:91;199:2819:90;;;;;-1:-1:-1;12771:136:91;199:2819:90;;;12830:10:91;;12771:136;;12687:230;;;12771:136;199:2819:90;;;;;;;;;;;12771:136:91;;;12497:447;;;12694:10;;;;;;12926:11;;;12497:447;:::o;12687:230::-;2900:5:58;;;;;;199:2819:90;;2910:5:58;;;199:2819:90;;;;;;;;;13267:109:91;-1:-1:-1;13267:109:91;199:2819:90;13267:109:91;;;-1:-1:-1;13267:109:91;;199:2819:90;;;;;-1:-1:-1;12771:136:91;199:2819:90;;;12830:10:91;;12771:136;;12687:230;;;;12771:136;199:2819:90;;;;;;;;;;;12771:136:91;;;7084:141:26;199:2819:90;-1:-1:-1;;;;;;;;;;;199:2819:90;;;;7150:18:26;7146:73;;7084:141::o;7146:73::-;199:2819:90;;-1:-1:-1;;;7191:17:26;;;;;199:2819:90;5173:12:101;199:2819:90;;-1:-1:-1;;;199:2819:90;;;;;;;;;5173:12:101;199:2819:90;;;;;;5173:12:101;-1:-1:-1;199:2819:90;;;;;;;;;;-1:-1:-1;;199:2819:90;;;;;;;-1:-1:-1;;;;;;;;;;;199:2819:90;;;;:::o;:::-;4803:13:101;199:2819:90;;-1:-1:-1;;;199:2819:90;;;;;;;;;4803:13:101;199:2819:90;;;;;;4803:13:101;-1:-1:-1;199:2819:90;;;;;;;;;;-1:-1:-1;;199:2819:90;;;;;;;-1:-1:-1;;;;;;;;;;;199:2819:90;;;;:::o;:::-;;;-1:-1:-1;;;199:2819:90;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;199:2819:90;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;11513:870:61;5173:12:101;199:2819:90;11513:870:61;;;199:2819:90;11672:7:61;;;;199:2819:90;11775:28:61;11795:7;;;:::i;199:2819:90:-;;;;;;;;;;-1:-1:-1;;11873:91:61;;199:2819:90;12233:11:61;199:2819:90;;;12027:16:61;199:2819:90;;;;;;;12027:16:61;;;;12083:7;12063:28;12083:7;12063:43;12083:7;;:::i;12063:28::-;199:2819:90;;;;;;;;;;;;;;;;;12063:43:61;12233:11;199:2819:90;-1:-1:-1;;;;;199:2819:90;;;12023:189:61;199:2819:90;;12145:52:61;199:2819:90;;12155:41:61;199:2819:90;;:::i;:::-;;;;;;;;12155:41:61;-1:-1:-1;;;;;199:2819:90;;12155:41:61;;;199:2819:90;12145:52:61;:::i;:::-;12023:189;;11873:91;199:2819:90;;-1:-1:-1;;;11919:30:61;;;;;11668:709;12283:52;199:2819:90;;12293:41:61;199:2819:90;;:::i;12293:41:61:-;-1:-1:-1;;;;;199:2819:90;;12293:41:61;;;199:2819:90;12145:52:61;:::i;12283:::-;11678:1;12349:17;;:::o;11513:870::-;4803:13:101;199:2819:90;11513:870:61;;;199:2819:90;11672:7:61;;;;199:2819:90;11775:28:61;11795:7;;;:::i;199:2819:90:-;;;;;;;;;;-1:-1:-1;;11873:91:61;;199:2819:90;12233:11:61;199:2819:90;;;12027:16:61;199:2819:90;;;;;;;12027:16:61;;;;12083:7;12063:28;12083:7;12063:43;12083:7;;:::i;12023:189::-;199:2819:90;;12145:52:61;199:2819:90;;12155:41:61;199:2819:90;;:::i;12155:41:61:-;-1:-1:-1;;;;;199:2819:90;;12155:41:61;;;199:2819:90;12145:52:61;:::i;11668:709::-;12283:52;199:2819:90;;12293:41:61;199:2819:90;;:::i;12293:41:61:-;-1:-1:-1;;;;;199:2819:90;;12293:41:61;;;199:2819:90;12145:52:61;:::i;11513:870::-;199:2819:90;;11513:870:61;;;199:2819:90;11513:870:61;11672:7;;;;199:2819:90;11775:28:61;11795:7;;;:::i;199:2819:90:-;;;;;;;;;;;;;;;;11877:15:61;-1:-1:-1;11873:91:61;;199:2819:90;;12233:11:61;199:2819:90;;;12027:16:61;199:2819:90;;;;;;;12027:16:61;;;;12083:7;12063:43;12083:7;;12063:28;12083:7;;:::i;:::-;12063:28;13267:109:91;;;;;;13089:293;;12023:189:61;199:2819:90;;;12145:52:61;199:2819:90;12155:41:61;199:2819:90;;:::i;:::-;;;;;;;;12155:41:61;-1:-1:-1;;;;;199:2819:90;;12155:41:61;;;199:2819:90;12145:52:61;:::i;11668:709::-;12283:52;199:2819:90;;12293:41:61;199:2819:90;;:::i;12293:41:61:-;-1:-1:-1;;;;;199:2819:90;;12293:41:61;;;199:2819:90;12145:52:61;:::i;4625:582:47:-;;4797:8;;-1:-1:-1;199:2819:90;;5874:21:47;:17;;6046:142;;;;;;5870:383;199:2819:90;;-1:-1:-1;;;6225:17:47;;;;;4793:408;199:2819:90;;5045:22:47;:49;;;4793:408;5041:119;;5173:17;;:::o;5041:119::-;199:2819:90;;-1:-1:-1;;;5121:24:47;;-1:-1:-1;;;;;199:2819:90;;;5121:24:47;;;199:2819:90;;;5121:24:47;5045:49;5071:18;;;:23;5045:49;","linkReferences":{},"immutableReferences":{"64787":[{"start":2016,"length":32},{"start":2606,"length":32}],"69080":[{"start":4185,"length":32},{"start":4913,"length":32},{"start":9127,"length":32}],"75427":[{"start":4989,"length":32},{"start":6348,"length":32}],"75430":[{"start":6709,"length":32},{"start":7909,"length":32}]}},"methodIdentifiers":{"DEFAULT_ADMIN_ROLE()":"a217fddf","DELEGATOR_FACTORY()":"6da3e06d","DEPOSITOR_WHITELIST_ROLE()":"1b66c9e1","DEPOSIT_LIMIT_SET_ROLE()":"a21a1df9","DEPOSIT_WHITELIST_SET_ROLE()":"db388715","FACTORY()":"2dd31000","IS_DEPOSIT_LIMIT_SET_ROLE()":"1415519b","SLASHER_FACTORY()":"87df0788","activeBalanceOf(address)":"59f769a9","activeBalanceOfAt(address,uint48,bytes)":"efb559d6","activeBalanceOfHints(address,address,uint48)":"f9e1bf6c","activeShares()":"bfefcd7b","activeSharesAt(uint48,bytes)":"50f22068","activeSharesHint(address,uint48)":"8326056f","activeSharesHintInternal(uint48)":"55a2c672","activeSharesOf(address)":"9d66201b","activeSharesOfAt(address,uint48,bytes)":"2d73c69c","activeSharesOfHint(address,address,uint48)":"de499716","activeSharesOfHintInternal(address,uint48)":"eb556238","activeStake()":"bd49c35f","activeStakeAt(uint48,bytes)":"810da75d","activeStakeHint(address,uint48)":"64b03fdc","activeStakeHintInternal(uint48)":"67567add","burner()":"27810b6e","claim(address,uint256)":"aad3ec96","claimBatch(address,uint256[])":"7c04c80a","collateral()":"d8dfeb45","currentEpoch()":"76671808","currentEpochStart()":"61a8c8c4","delegator()":"ce9b7930","deposit(address,uint256)":"47e7ef24","depositLimit()":"ecf70858","depositWhitelist()":"48d3b775","epochAt(uint48)":"7953b33b","epochDuration()":"4ff0876a","epochDurationInit()":"46361671","getRoleAdmin(bytes32)":"248a9ca3","grantRole(bytes32,address)":"2f2ff15d","hasRole(bytes32,address)":"91d14854","initialize(uint64,address,bytes)":"57ec83cc","isDelegatorInitialized()":"50861adc","isDepositLimit()":"a1b12202","isDepositorWhitelisted(address)":"794b15b7","isInitialized()":"392e53cd","isSlasherInitialized()":"6ec1e3f8","isWithdrawalsClaimed(uint256,address)":"a5d03223","migrate(uint64,bytes)":"2abe3048","nextEpochStart()":"73790ab3","onSlash(uint256,uint48)":"7278e31c","owner()":"8da5cb5b","previousEpochStart()":"281f5752","redeem(address,uint256)":"1e9a6950","renounceOwnership()":"715018a6","renounceRole(bytes32,address)":"36568abe","revokeRole(bytes32,address)":"d547741f","setDelegator(address)":"83cd9cc3","setDepositLimit(uint256)":"bdc8144b","setDepositWhitelist(bool)":"4105a7dd","setDepositorWhitelistStatus(address,bool)":"a2861466","setIsDepositLimit(bool)":"5346e34f","setSlasher(address)":"aabc2496","slashableBalanceOf(address)":"c31e8dd7","slasher()":"b1344271","staticDelegateCall(address,bytes)":"9f86fd85","supportsInterface(bytes4)":"01ffc9a7","totalStake()":"8b0e9f3f","transferOwnership(address)":"f2fde38b","version()":"54fd4d50","withdraw(address,uint256)":"f3fef3a3","withdrawalShares(uint256)":"afba70ad","withdrawalSharesOf(uint256,address)":"a3b54172","withdrawals(uint256)":"5cc07076","withdrawalsOf(uint256,address)":"f5e7ee0f"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"AccessControlBadConfirmation\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"neededRole\",\"type\":\"bytes32\"}],\"name\":\"AccessControlUnauthorizedAccount\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"AddressEmptyCode\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"AddressInsufficientBalance\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AlreadyClaimed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AlreadyInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AlreadySet\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CheckpointUnorderedInsertion\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"DelegatorAlreadyInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"DepositLimitReached\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ExternalCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedInnerCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientClaim\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientDeposit\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientRedemption\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientWithdrawal\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidAccount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidCaptureEpoch\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidClaimer\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidCollateral\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidDelegator\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidEpoch\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidEpochDuration\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidLengthEpochs\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidOnBehalfOf\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidRecipient\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidSlasher\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidTimestamp\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MathOverflowedMulDiv\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MissingRoles\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NoPreviousEpoch\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotDelegator\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotFactory\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotSlasher\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotWhitelistedDepositor\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ReentrancyGuardReentrantCall\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"bits\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"SafeCastOverflowedUintDowncast\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"SafeERC20FailedOperation\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SlasherAlreadyInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TooMuchRedeem\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TooMuchWithdraw\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"claimer\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"epoch\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Claim\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"claimer\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"epochs\",\"type\":\"uint256[]\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"ClaimBatch\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"depositor\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"onBehalfOf\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"}],\"name\":\"Deposit\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint48\",\"name\":\"captureTimestamp\",\"type\":\"uint48\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"slashedAmount\",\"type\":\"uint256\"}],\"name\":\"OnSlash\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"previousAdminRole\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"newAdminRole\",\"type\":\"bytes32\"}],\"name\":\"RoleAdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleRevoked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"}],\"name\":\"SetDelegator\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"limit\",\"type\":\"uint256\"}],\"name\":\"SetDepositLimit\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"status\",\"type\":\"bool\"}],\"name\":\"SetDepositWhitelist\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"status\",\"type\":\"bool\"}],\"name\":\"SetDepositorWhitelistStatus\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"status\",\"type\":\"bool\"}],\"name\":\"SetIsDepositLimit\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"slasher\",\"type\":\"address\"}],\"name\":\"SetSlasher\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"withdrawer\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"claimer\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"burnedShares\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"mintedShares\",\"type\":\"uint256\"}],\"name\":\"Withdraw\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DEFAULT_ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"DELEGATOR_FACTORY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"DEPOSITOR_WHITELIST_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"DEPOSIT_LIMIT_SET_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"DEPOSIT_WHITELIST_SET_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"FACTORY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"IS_DEPOSIT_LIMIT_SET_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"SLASHER_FACTORY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"activeBalanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hints\",\"type\":\"bytes\"}],\"name\":\"activeBalanceOfAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"vault\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"}],\"name\":\"activeBalanceOfHints\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"activeShares\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hint\",\"type\":\"bytes\"}],\"name\":\"activeSharesAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"vault\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"}],\"name\":\"activeSharesHint\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"}],\"name\":\"activeSharesHintInternal\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"exists\",\"type\":\"bool\"},{\"internalType\":\"uint32\",\"name\":\"hint\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"activeSharesOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hint\",\"type\":\"bytes\"}],\"name\":\"activeSharesOfAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"vault\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"}],\"name\":\"activeSharesOfHint\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"}],\"name\":\"activeSharesOfHintInternal\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"exists\",\"type\":\"bool\"},{\"internalType\":\"uint32\",\"name\":\"hint\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"activeStake\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hint\",\"type\":\"bytes\"}],\"name\":\"activeStakeAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"vault\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"}],\"name\":\"activeStakeHint\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"}],\"name\":\"activeStakeHintInternal\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"exists\",\"type\":\"bool\"},{\"internalType\":\"uint32\",\"name\":\"hint\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"burner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"epoch\",\"type\":\"uint256\"}],\"name\":\"claim\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256[]\",\"name\":\"epochs\",\"type\":\"uint256[]\"}],\"name\":\"claimBatch\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"collateral\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"currentEpoch\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"currentEpochStart\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"delegator\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"onBehalfOf\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"deposit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"depositedAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"mintedShares\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"depositLimit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"depositWhitelist\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"}],\"name\":\"epochAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"epochDuration\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"epochDurationInit\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleAdmin\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"grantRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"initialVersion\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"owner_\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isDelegatorInitialized\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isDepositLimit\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"isDepositorWhitelisted\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"value\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isInitialized\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isSlasherInitialized\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"epoch\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"isWithdrawalsClaimed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"value\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"newVersion\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"migrate\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"nextEpochStart\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint48\",\"name\":\"captureTimestamp\",\"type\":\"uint48\"}],\"name\":\"onSlash\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"slashedAmount\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"previousEpochStart\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"claimer\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"}],\"name\":\"redeem\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"withdrawnAssets\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"mintedShares\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"callerConfirmation\",\"type\":\"address\"}],\"name\":\"renounceRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegator_\",\"type\":\"address\"}],\"name\":\"setDelegator\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"limit\",\"type\":\"uint256\"}],\"name\":\"setDepositLimit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"status\",\"type\":\"bool\"}],\"name\":\"setDepositWhitelist\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"status\",\"type\":\"bool\"}],\"name\":\"setDepositorWhitelistStatus\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"status\",\"type\":\"bool\"}],\"name\":\"setIsDepositLimit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"slasher_\",\"type\":\"address\"}],\"name\":\"setSlasher\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"slashableBalanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"slasher\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"staticDelegateCall\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalStake\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"version\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"claimer\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"withdraw\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"burnedShares\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"mintedShares\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"epoch\",\"type\":\"uint256\"}],\"name\":\"withdrawalShares\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"epoch\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"withdrawalSharesOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"epoch\",\"type\":\"uint256\"}],\"name\":\"withdrawals\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"epoch\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"withdrawalsOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"AccessControlBadConfirmation()\":[{\"details\":\"The caller of a function is not the expected one. NOTE: Don't confuse with {AccessControlUnauthorizedAccount}.\"}],\"AccessControlUnauthorizedAccount(address,bytes32)\":[{\"details\":\"The `account` is missing a role.\"}],\"AddressEmptyCode(address)\":[{\"details\":\"There's no code at `target` (it is not a contract).\"}],\"AddressInsufficientBalance(address)\":[{\"details\":\"The ETH balance of the account is not enough to perform the operation.\"}],\"CheckpointUnorderedInsertion()\":[{\"details\":\"A value was attempted to be inserted on a past checkpoint.\"}],\"FailedInnerCall()\":[{\"details\":\"A call to an address target failed. The target may have reverted.\"}],\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"MathOverflowedMulDiv()\":[{\"details\":\"Muldiv operation overflow.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}],\"ReentrancyGuardReentrantCall()\":[{\"details\":\"Unauthorized reentrant call.\"}],\"SafeCastOverflowedUintDowncast(uint8,uint256)\":[{\"details\":\"Value doesn't fit in an uint of `bits` size.\"}],\"SafeERC20FailedOperation(address)\":[{\"details\":\"An operation with an ERC20 token failed.\"}]},\"events\":{\"Claim(address,address,uint256,uint256)\":{\"params\":{\"amount\":\"amount of the collateral claimed\",\"claimer\":\"account that claimed\",\"epoch\":\"epoch the collateral was claimed for\",\"recipient\":\"account that received the collateral\"}},\"ClaimBatch(address,address,uint256[],uint256)\":{\"params\":{\"amount\":\"amount of the collateral claimed\",\"claimer\":\"account that claimed\",\"epochs\":\"epochs the collateral was claimed for\",\"recipient\":\"account that received the collateral\"}},\"Deposit(address,address,uint256,uint256)\":{\"params\":{\"amount\":\"amount of the collateral deposited\",\"depositor\":\"account that made the deposit\",\"onBehalfOf\":\"account the deposit was made on behalf of\",\"shares\":\"amount of the active shares minted\"}},\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"OnSlash(uint256,uint48,uint256)\":{\"params\":{\"amount\":\"amount of the collateral to slash\",\"captureTimestamp\":\"time point when the stake was captured\",\"slashedAmount\":\"real amount of the collateral slashed\"}},\"RoleAdminChanged(bytes32,bytes32,bytes32)\":{\"details\":\"Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole` `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite {RoleAdminChanged} not being emitted signaling this.\"},\"RoleGranted(bytes32,address,address)\":{\"details\":\"Emitted when `account` is granted `role`. `sender` is the account that originated the contract call, an admin role bearer except when using {AccessControl-_setupRole}.\"},\"RoleRevoked(bytes32,address,address)\":{\"details\":\"Emitted when `account` is revoked `role`. `sender` is the account that originated the contract call: - if using `revokeRole`, it is the admin role bearer - if using `renounceRole`, it is the role bearer (i.e. `account`)\"},\"SetDelegator(address)\":{\"details\":\"Can be set only once.\",\"params\":{\"delegator\":\"vault's delegator to delegate the stake to networks and operators\"}},\"SetDepositLimit(uint256)\":{\"params\":{\"limit\":\"deposit limit (maximum amount of the collateral that can be in the vault simultaneously)\"}},\"SetDepositWhitelist(bool)\":{\"params\":{\"status\":\"if enabled deposit whitelist\"}},\"SetDepositorWhitelistStatus(address,bool)\":{\"params\":{\"account\":\"account for which the whitelist status is set\",\"status\":\"if whitelisted the account\"}},\"SetIsDepositLimit(bool)\":{\"params\":{\"status\":\"if enabled deposit limit\"}},\"SetSlasher(address)\":{\"details\":\"Can be set only once.\",\"params\":{\"slasher\":\"vault's slasher to provide a slashing mechanism to networks\"}},\"Withdraw(address,address,uint256,uint256,uint256)\":{\"params\":{\"amount\":\"amount of the collateral withdrawn\",\"burnedShares\":\"amount of the active shares burned\",\"claimer\":\"account that needs to claim the withdrawal\",\"mintedShares\":\"amount of the epoch withdrawal shares minted\",\"withdrawer\":\"account that made the withdrawal\"}}},\"kind\":\"dev\",\"methods\":{\"activeBalanceOf(address)\":{\"params\":{\"account\":\"account to get the active balance for\"},\"returns\":{\"_0\":\"active balance for the account\"}},\"activeBalanceOfAt(address,uint48,bytes)\":{\"params\":{\"account\":\"account to get the active balance for\",\"hints\":\"hints for checkpoints' indexes\",\"timestamp\":\"time point to get the active balance for the account at\"},\"returns\":{\"_0\":\"active balance for the account at the timestamp\"}},\"activeShares()\":{\"returns\":{\"_0\":\"total number of active shares\"}},\"activeSharesAt(uint48,bytes)\":{\"params\":{\"hint\":\"hint for the checkpoint index\",\"timestamp\":\"time point to get the total number of active shares at\"},\"returns\":{\"_0\":\"total number of active shares at the timestamp\"}},\"activeSharesOf(address)\":{\"params\":{\"account\":\"account to get the number of active shares for\"},\"returns\":{\"_0\":\"number of active shares for the account\"}},\"activeSharesOfAt(address,uint48,bytes)\":{\"params\":{\"account\":\"account to get the number of active shares for\",\"hint\":\"hint for the checkpoint index\",\"timestamp\":\"time point to get the number of active shares for the account at\"},\"returns\":{\"_0\":\"number of active shares for the account at the timestamp\"}},\"activeStake()\":{\"returns\":{\"_0\":\"total amount of active stake\"}},\"activeStakeAt(uint48,bytes)\":{\"params\":{\"hint\":\"hint for the checkpoint index\",\"timestamp\":\"time point to get the total active stake at\"},\"returns\":{\"_0\":\"total amount of active stake at the timestamp\"}},\"claim(address,uint256)\":{\"params\":{\"epoch\":\"epoch to claim the collateral for\",\"recipient\":\"account that receives the collateral\"},\"returns\":{\"amount\":\"amount of the collateral claimed\"}},\"claimBatch(address,uint256[])\":{\"params\":{\"epochs\":\"epochs to claim the collateral for\",\"recipient\":\"account that receives the collateral\"},\"returns\":{\"amount\":\"amount of the collateral claimed\"}},\"currentEpoch()\":{\"returns\":{\"_0\":\"current epoch\"}},\"currentEpochStart()\":{\"returns\":{\"_0\":\"start of the current epoch\"}},\"deposit(address,uint256)\":{\"params\":{\"amount\":\"amount of the collateral to deposit\",\"onBehalfOf\":\"account the deposit is made on behalf of\"},\"returns\":{\"depositedAmount\":\"real amount of the collateral deposited\",\"mintedShares\":\"amount of the active shares minted\"}},\"epochAt(uint48)\":{\"details\":\"Reverts if the timestamp is less than the start of the epoch 0.\",\"params\":{\"timestamp\":\"time point to get the epoch at\"},\"returns\":{\"_0\":\"epoch at the timestamp\"}},\"getRoleAdmin(bytes32)\":{\"details\":\"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}.\"},\"grantRole(bytes32,address)\":{\"details\":\"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event.\"},\"hasRole(bytes32,address)\":{\"details\":\"Returns `true` if `account` has been granted `role`.\"},\"initialize(uint64,address,bytes)\":{\"params\":{\"data\":\"some data to use\",\"initialVersion\":\"initial version of the entity\",\"owner\":\"initial owner of the entity\"}},\"isInitialized()\":{\"returns\":{\"_0\":\"if the vault is fully initialized\"}},\"migrate(uint64,bytes)\":{\"params\":{\"data\":\"some data to use\",\"newVersion\":\"new version of the entity\"}},\"nextEpochStart()\":{\"returns\":{\"_0\":\"start of the next epoch\"}},\"onSlash(uint256,uint48)\":{\"details\":\"Only the slasher can call this function.\",\"params\":{\"amount\":\"amount to slash\",\"captureTimestamp\":\"time point when the stake was captured\"},\"returns\":{\"slashedAmount\":\"real amount of the collateral slashed\"}},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"previousEpochStart()\":{\"details\":\"Reverts if the current epoch is 0.\",\"returns\":{\"_0\":\"start of the previous epoch\"}},\"redeem(address,uint256)\":{\"params\":{\"claimer\":\"account that needs to claim the withdrawal\",\"shares\":\"amount of the active shares to redeem\"},\"returns\":{\"mintedShares\":\"amount of the epoch withdrawal shares minted\",\"withdrawnAssets\":\"amount of the collateral withdrawn\"}},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"renounceRole(bytes32,address)\":{\"details\":\"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `callerConfirmation`. May emit a {RoleRevoked} event.\"},\"revokeRole(bytes32,address)\":{\"details\":\"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event.\"},\"setDepositLimit(uint256)\":{\"details\":\"Only a DEPOSIT_LIMIT_SET_ROLE holder can call this function.\",\"params\":{\"limit\":\"deposit limit (maximum amount of the collateral that can be in the vault simultaneously)\"}},\"setDepositWhitelist(bool)\":{\"details\":\"Only a DEPOSIT_WHITELIST_SET_ROLE holder can call this function.\",\"params\":{\"status\":\"if enabling deposit whitelist\"}},\"setDepositorWhitelistStatus(address,bool)\":{\"details\":\"Only a DEPOSITOR_WHITELIST_ROLE holder can call this function.\",\"params\":{\"account\":\"account for which the whitelist status is set\",\"status\":\"if whitelisting the account\"}},\"setIsDepositLimit(bool)\":{\"details\":\"Only a IS_DEPOSIT_LIMIT_SET_ROLE holder can call this function.\",\"params\":{\"status\":\"if enabling deposit limit\"}},\"slashableBalanceOf(address)\":{\"params\":{\"account\":\"account to get the slashable collateral for\"},\"returns\":{\"_0\":\"total amount of the account's slashable collateral\"}},\"staticDelegateCall(address,bytes)\":{\"details\":\"It allows to use this contract's storage on-chain.\",\"params\":{\"data\":\"data to make a delegatecall with\",\"target\":\"address of the contract to make a delegatecall to\"}},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"},\"totalStake()\":{\"returns\":{\"_0\":\"total amount of the slashable collateral\"}},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"},\"version()\":{\"details\":\"Starts from 1.\",\"returns\":{\"_0\":\"version of the entity\"}},\"withdraw(address,uint256)\":{\"params\":{\"amount\":\"amount of the collateral to withdraw\",\"claimer\":\"account that needs to claim the withdrawal\"},\"returns\":{\"burnedShares\":\"amount of the active shares burned\",\"mintedShares\":\"amount of the epoch withdrawal shares minted\"}},\"withdrawalsOf(uint256,address)\":{\"params\":{\"account\":\"account to get the withdrawals for\",\"epoch\":\"epoch to get the withdrawals for the account at\"},\"returns\":{\"_0\":\"withdrawals for the account at the epoch\"}}},\"version\":1},\"userdoc\":{\"events\":{\"Claim(address,address,uint256,uint256)\":{\"notice\":\"Emitted when a claim is made.\"},\"ClaimBatch(address,address,uint256[],uint256)\":{\"notice\":\"Emitted when a batch claim is made.\"},\"Deposit(address,address,uint256,uint256)\":{\"notice\":\"Emitted when a deposit is made.\"},\"OnSlash(uint256,uint48,uint256)\":{\"notice\":\"Emitted when a slash happens.\"},\"SetDelegator(address)\":{\"notice\":\"Emitted when a delegator is set.\"},\"SetDepositLimit(uint256)\":{\"notice\":\"Emitted when a deposit limit is set.\"},\"SetDepositWhitelist(bool)\":{\"notice\":\"Emitted when a deposit whitelist status is enabled/disabled.\"},\"SetDepositorWhitelistStatus(address,bool)\":{\"notice\":\"Emitted when a depositor whitelist status is set.\"},\"SetIsDepositLimit(bool)\":{\"notice\":\"Emitted when a deposit limit status is enabled/disabled.\"},\"SetSlasher(address)\":{\"notice\":\"Emitted when a slasher is set.\"},\"Withdraw(address,address,uint256,uint256,uint256)\":{\"notice\":\"Emitted when a withdrawal is made.\"}},\"kind\":\"user\",\"methods\":{\"DELEGATOR_FACTORY()\":{\"notice\":\"Get the delegator factory's address.\"},\"DEPOSITOR_WHITELIST_ROLE()\":{\"notice\":\"Get a depositor whitelist status setter's role.\"},\"DEPOSIT_LIMIT_SET_ROLE()\":{\"notice\":\"Get a deposit limit setter's role.\"},\"DEPOSIT_WHITELIST_SET_ROLE()\":{\"notice\":\"Get a deposit whitelist enabler/disabler's role.\"},\"FACTORY()\":{\"notice\":\"Get the factory's address.\"},\"IS_DEPOSIT_LIMIT_SET_ROLE()\":{\"notice\":\"Get a deposit limit enabler/disabler's role.\"},\"SLASHER_FACTORY()\":{\"notice\":\"Get the slasher factory's address.\"},\"activeBalanceOf(address)\":{\"notice\":\"Get an active balance for a particular account.\"},\"activeBalanceOfAt(address,uint48,bytes)\":{\"notice\":\"Get an active balance for a particular account at a given timestamp using hints.\"},\"activeShares()\":{\"notice\":\"Get a total number of active shares in the vault.\"},\"activeSharesAt(uint48,bytes)\":{\"notice\":\"Get a total number of active shares in the vault at a given timestamp using a hint.\"},\"activeSharesOf(address)\":{\"notice\":\"Get a number of active shares for a particular account.\"},\"activeSharesOfAt(address,uint48,bytes)\":{\"notice\":\"Get a total number of active shares for a particular account at a given timestamp using a hint.\"},\"activeStake()\":{\"notice\":\"Get a total amount of active stake in the vault.\"},\"activeStakeAt(uint48,bytes)\":{\"notice\":\"Get a total amount of active stake in the vault at a given timestamp using a hint.\"},\"burner()\":{\"notice\":\"Get a burner to issue debt to (e.g., 0xdEaD or some unwrapper contract).\"},\"claim(address,uint256)\":{\"notice\":\"Claim collateral from the vault.\"},\"claimBatch(address,uint256[])\":{\"notice\":\"Claim collateral from the vault for multiple epochs.\"},\"collateral()\":{\"notice\":\"Get a vault collateral.\"},\"currentEpoch()\":{\"notice\":\"Get a current vault epoch.\"},\"currentEpochStart()\":{\"notice\":\"Get a start of the current vault epoch.\"},\"delegator()\":{\"notice\":\"Get a delegator (it delegates the vault's stake to networks and operators).\"},\"deposit(address,uint256)\":{\"notice\":\"Deposit collateral into the vault.\"},\"depositLimit()\":{\"notice\":\"Get a deposit limit (maximum amount of the active stake that can be in the vault simultaneously).\"},\"depositWhitelist()\":{\"notice\":\"Get if the deposit whitelist is enabled.\"},\"epochAt(uint48)\":{\"notice\":\"Get an epoch at a given timestamp.\"},\"epochDuration()\":{\"notice\":\"Get a duration of the vault epoch.\"},\"epochDurationInit()\":{\"notice\":\"Get a time point of the epoch duration set.\"},\"initialize(uint64,address,bytes)\":{\"notice\":\"Initialize this entity contract by using a given data and setting a particular version and owner.\"},\"isDelegatorInitialized()\":{\"notice\":\"Get if the delegator is initialized.\"},\"isDepositLimit()\":{\"notice\":\"Get if the deposit limit is set.\"},\"isDepositorWhitelisted(address)\":{\"notice\":\"Get if a given account is whitelisted as a depositor.\"},\"isInitialized()\":{\"notice\":\"Check if the vault is fully initialized (a delegator and a slasher are set).\"},\"isSlasherInitialized()\":{\"notice\":\"Get if the slasher is initialized.\"},\"isWithdrawalsClaimed(uint256,address)\":{\"notice\":\"Get if the withdrawals are claimed for a particular account at a given epoch.\"},\"migrate(uint64,bytes)\":{\"notice\":\"Migrate this entity to a particular newer version using a given data.\"},\"nextEpochStart()\":{\"notice\":\"Get a start of the next vault epoch.\"},\"onSlash(uint256,uint48)\":{\"notice\":\"Slash callback for burning collateral.\"},\"previousEpochStart()\":{\"notice\":\"Get a start of the previous vault epoch.\"},\"redeem(address,uint256)\":{\"notice\":\"Redeem collateral from the vault (it will be claimable after the next epoch).\"},\"setDepositLimit(uint256)\":{\"notice\":\"Set a deposit limit.\"},\"setDepositWhitelist(bool)\":{\"notice\":\"Enable/disable deposit whitelist.\"},\"setDepositorWhitelistStatus(address,bool)\":{\"notice\":\"Set a depositor whitelist status.\"},\"setIsDepositLimit(bool)\":{\"notice\":\"Enable/disable deposit limit.\"},\"slashableBalanceOf(address)\":{\"notice\":\"Get a total amount of the collateral that can be slashed for a given account.\"},\"slasher()\":{\"notice\":\"Get a slasher (it provides networks a slashing mechanism).\"},\"staticDelegateCall(address,bytes)\":{\"notice\":\"Make a delegatecall from this contract to a given target contract with a particular data (always reverts with a return data).\"},\"totalStake()\":{\"notice\":\"Get a total amount of the collateral that can be slashed.\"},\"version()\":{\"notice\":\"Get the entity's version.\"},\"withdraw(address,uint256)\":{\"notice\":\"Withdraw collateral from the vault (it will be claimable after the next epoch).\"},\"withdrawalShares(uint256)\":{\"notice\":\"Get a total number of withdrawal shares at a given epoch.\"},\"withdrawalSharesOf(uint256,address)\":{\"notice\":\"Get a number of withdrawal shares for a particular account at a given epoch (zero if claimed).\"},\"withdrawals(uint256)\":{\"notice\":\"Get a total amount of the withdrawals at a given epoch.\"},\"withdrawalsOf(uint256,address)\":{\"notice\":\"Get withdrawals for a particular account at a given epoch (zero if claimed).\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/contracts/hints/VaultHints.sol\":\"VaultHints\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol\":{\"keccak256\":\"0x6662ec4e5cefca03eeadd073e9469df8d2944bb2ee8ec8f7622c2c46aab5f225\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4d8544c6f8daa4d1bc215c6a72fe0acdb748664a105b0e5efc19295667521d45\",\"dweb:/ipfs/QmdGWqdnXT8S3RgCR6aV8XHZrsybieMQLLnug1NtpSjEXN\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0xc163fcf9bb10138631a9ba5564df1fa25db9adff73bd9ee868a8ae1858fe093a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9706d43a0124053d9880f6e31a59f31bc0a6a3dc1acd66ce0a16e1111658c5f6\",\"dweb:/ipfs/QmUFmfowzkRwGtDu36cXV9SPTBHJ3n7dG9xQiK5B28jTf2\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609\",\"dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9\",\"dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardUpgradeable.sol\":{\"keccak256\":\"0xb44e086e941292cdc7f440de51478493894ef0b1aeccb0c4047445919f667f74\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://942dad22fbdc1669f025540ba63aa3ccfad5f8458fc5d4525b31ebf272e7af45\",\"dweb:/ipfs/Qmdo4X2M82aM3AMoW2kf2jhYkSCyC4T1pHNd6obdsDFnAB\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol\":{\"keccak256\":\"0xdaba3f7c42c55b2896353f32bd27d4d5f8bae741b3b05d4c53f67abc4dc47ce8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1fa2e61141c602510bcd2cd936ed9561922ac8772a9b9c9a9db091a74e354a45\",\"dweb:/ipfs/QmcHQDDoEBwJmwUbzoVkytvJsBx3KVHYFFnDkvRGWh9Wmh\"]},\"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0xb6b36edd6a2999fd243ff226d6cbf84bd71af2432bbd0dfe19392996a1d9cb41\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1fd2f35495652e57e3f99bc6c510bc5f7dd398a176ea2e72d8ed730aebc6ca26\",\"dweb:/ipfs/QmTQV6X4gkikTib49cho5iDX3JvSQbdsoEChoDwrk3CbbH\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c\",\"dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0x6008dabfe393240d73d7dd7688033f72740d570aa422254d29a7dce8568f3aff\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f5196ec75139918c6c7bb4251b36395e668f1fa6d206beba7e7520e74913940d\",\"dweb:/ipfs/QmSyqjksXxmm2mCG6qRd1yuwLykypkSVBbnBnGqJRcuJMi\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x37bb49513c49c87c4642a891b13b63571bc87013dde806617aa1efb54605f386\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b3036b3a83b7c48f96641f2a9002b9f2dcb6a5958dd670894ada21ae8229b3d0\",\"dweb:/ipfs/QmUNfSBdoVtjhETaUJCYcaC7pTMgbhht926tJ2uXJbiVd3\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0xaf28a975a78550e45f65e559a3ad6a5ad43b9b8a37366999abd1b7084eb70721\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b7bd24e224f67f65bfadf85dc2929fa965456bb2415478bd0125471b5ce35245\",\"dweb:/ipfs/QmRaydGr8BTHs1kvaZfsNU69pKzUAGFrvABn1KiRSbE51y\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875\",\"dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0xe19a4d5f31d2861e7344e8e535e2feafb913d806d3e2b5fe7782741a2a7094fe\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4aed79c0fa6f0546ed02f2f683e8f77f0fd2ed7eb34d8bbf3d373c9a6d95b13c\",\"dweb:/ipfs/QmWqVz6UAVqmnWU5pqYPt1o6iDEZyPaBraAA3rKfTTSfYj\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/Checkpoints.sol\":{\"keccak256\":\"0xbdc5e074d7dd6678f67e92b1a51a20226801a407b0e1af3da367c5d1ff4519ad\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a36cca6b22fff3db16fc789ff6c60eea71d4b156065d4d0c83a0bc5e91a77a8b\",\"dweb:/ipfs/QmYN3exd5AemxjBrN8XMB1p5LbbE16uC3sjbYjwi8AjcGR\"]},\"lib/openzeppelin-contracts/contracts/utils/types/Time.sol\":{\"keccak256\":\"0xc7755af115020049e4140f224f9ee88d7e1799ffb0646f37bf0df24bf6213f58\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7f09bf94d5274334ec021f61a04659db303f31e60460e14b709c9bf187740111\",\"dweb:/ipfs/QmNvgomZYUwFAt4cZbPWAiTeSZQreGehY9BK5xyVJsUttb\"]},\"src/contracts/common/MigratableEntity.sol\":{\"keccak256\":\"0x2d736f4dacd5d7e7697503bc426c78b8250fe1694ca157965ec178da6807de58\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://f1237acf96b4b9f9b69156e068eddd726a6e15bd8e87a18dc999cd4ba4da069c\",\"dweb:/ipfs/QmS6M8fiFFSeuJ4ZKKq1z8W7w4ybeHQSy5TLASGoc1LVic\"]},\"src/contracts/common/StaticDelegateCallable.sol\":{\"keccak256\":\"0x350029aa8955eacaffffaeb58babc5c98e80ebc5c5db388ed17ee6465f4a9d90\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://eb392a8ee9050e0af606897df63e3404e3829e8b688b580663892f9664195764\",\"dweb:/ipfs/QmaXC8jqV8UrrAFkzXTEv2fJF56sy33HhLxAzaRZmUxuXD\"]},\"src/contracts/hints/Hints.sol\":{\"keccak256\":\"0x8b565df1ae35993c097a9e642002782a8f451f6fd01809cad6bcd345bdf1b99c\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://99a19adb01e350a92f534095b3078229df1f2f83077992d75d58d8684be45971\",\"dweb:/ipfs/QmbmwcuswVbzvwHQFTtrJG86oV98GnfxqYTb8cV8u1acox\"]},\"src/contracts/hints/VaultHints.sol\":{\"keccak256\":\"0xccb505b7159b769cc114d67b87c2de6b106557f667fc8f3780114baad5c3c442\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://6d0c80a908fc16e96a8b5605a0bd53f9e89ad0ef0a738fbbae80ba4d3160749b\",\"dweb:/ipfs/QmXo5UtWoR8YmunqcbBU8rQMm1nvmvjNPoXcVrDhh4pEwR\"]},\"src/contracts/libraries/Checkpoints.sol\":{\"keccak256\":\"0xba90097c8bfe0a975499428b5f8ac5569483c7d92ccc28c12d70de416aae040c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://12f5d93ca94cd06d3147db68993165a58e17903ed53682560de61f3085ad4609\",\"dweb:/ipfs/QmePiuAqvXprMLmFZkGZeGjvGPAvsEDHfCDv7BoQhXu9xE\"]},\"src/contracts/libraries/ERC4626Math.sol\":{\"keccak256\":\"0x8441160513c1cbeb1c3b9ee077bcc7e7ce20006b52a77c8dd39ff0ef89699939\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://943f8cc3e26ddf649f465f40c909819f5c864717c4baa339e9e403b9374a4653\",\"dweb:/ipfs/QmXPxi1sUDsrGprZdUgCzoPEosaZMv9ZhygWQ1vAi1phAB\"]},\"src/contracts/vault/Vault.sol\":{\"keccak256\":\"0x2ceff6ed3298c4cad144c99fcc79b51cb9397d6ebef00285b915848b476f8c2e\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://11f2fb3581854f3ab6e82e8d4935d9eb510c903a13c3f022346c2956a58f5307\",\"dweb:/ipfs/QmdUnoXoyYoG9SGWyQZCFyLDRUUX3eXyXetkRvw6jxqqBz\"]},\"src/contracts/vault/VaultStorage.sol\":{\"keccak256\":\"0x57db25b127d77ea3472de53e3a4af3354399655b9268638b99ca5925fa364a56\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://aa763d9a6ec508ae3abfb8228b72b9fd9525279e5135d4962e79ff059feb1173\",\"dweb:/ipfs/QmcbDR6E9wyEpu6V2FkEC4hnWy47zXA9LSKJde6zSGd33Q\"]},\"src/interfaces/common/IEntity.sol\":{\"keccak256\":\"0x8ef4b63d6da63489778ccd5f8d13ebdd527dd4b62730b2c616df5af7474d2d21\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a8d69576a9219d85c50816a18ad53a4d53cfcb27ed38b8cccc808dc2734b71b\",\"dweb:/ipfs/QmYVN3P4Q4REvBWJ97TbAcaxm3uyB2anV6NSGa6ZtSwcEv\"]},\"src/interfaces/common/IMigratableEntity.sol\":{\"keccak256\":\"0x8f5f2809f3afbe8ebfbb365dd7b57b4dd3b6f9943a6187eaf648d45895b8e3c4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ffe640537d539e7a4fde70d30d3e4c57f4ba9c2c25c450cea713aae38e8fd5c\",\"dweb:/ipfs/QmSUTGzvdcn1R1KB7tLThMRtESsfPbeXDhhhKWGtntzBds\"]},\"src/interfaces/common/IRegistry.sol\":{\"keccak256\":\"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014\",\"dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK\"]},\"src/interfaces/common/IStaticDelegateCallable.sol\":{\"keccak256\":\"0xa335d4e81b9071b7de66ef92b43ff20671d86516eb1be46fef29a3483cd3f5d5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d464b9db863c14c05547d2b23352f2e9b7b784799cf09f6bbc4906a2a74e3516\",\"dweb:/ipfs/QmUVWzFvJz7eEbDQKiFTTzwi7TEbjcs3VmwdM4kuptAKvi\"]},\"src/interfaces/delegator/IBaseDelegator.sol\":{\"keccak256\":\"0x96bb312f032e17accce3f8f80936d99468029d6b37c9ca74acdb4b026a0148ee\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2a66dcb5b7d1a6ef6a363431ea98ebd78bc4fdd3d7a134d9b542dc66e7d025c2\",\"dweb:/ipfs/QmRhTPLd2ZAyRHmJUFUcWKs9b3if49QY17LYZuRqWmghw8\"]},\"src/interfaces/slasher/IBaseSlasher.sol\":{\"keccak256\":\"0x7c82528b445659c313ab77335c407b0b6efe5e79027187bb287f7bc74202b404\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0274c90aa5df1aa6bb470a6aab53992fb14fd7e5472c9430416505b29647d9cf\",\"dweb:/ipfs/QmckbmJLDetPemVzCnnGcKYWAZV2BRFXGDsjiaec8jkHxx\"]},\"src/interfaces/vault/IVault.sol\":{\"keccak256\":\"0xffee01d383cd4e1a5530c614bf4360c1ef070c288abec9da1eb531b51bc07235\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://04f0046cac285d8ec44ebbb1f79dc94fab4495767190cad8364fbc1fafaadfb9\",\"dweb:/ipfs/QmUawAunwzXfCyShWfhKeThAgKtqe51hmrxvrXvM772M2R\"]},\"src/interfaces/vault/IVaultStorage.sol\":{\"keccak256\":\"0x592626f13754194f83047135de19229c49390bd59e34659b1bb38be71d973a22\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://06a6a9dfddd05e580b32bebe2cff4f63ba26a653180676d58225dd30d9c89d3e\",\"dweb:/ipfs/QmdgzBeY6Sxo8mGtyBxtv1tM1c2kU6J6zjeRd7vuXm4DU6\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.25+commit.b61c2a91"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"AccessControlBadConfirmation"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bytes32","name":"neededRole","type":"bytes32"}],"type":"error","name":"AccessControlUnauthorizedAccount"},{"inputs":[{"internalType":"address","name":"target","type":"address"}],"type":"error","name":"AddressEmptyCode"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"AddressInsufficientBalance"},{"inputs":[],"type":"error","name":"AlreadyClaimed"},{"inputs":[],"type":"error","name":"AlreadyInitialized"},{"inputs":[],"type":"error","name":"AlreadySet"},{"inputs":[],"type":"error","name":"CheckpointUnorderedInsertion"},{"inputs":[],"type":"error","name":"DelegatorAlreadyInitialized"},{"inputs":[],"type":"error","name":"DepositLimitReached"},{"inputs":[],"type":"error","name":"ExternalCall"},{"inputs":[],"type":"error","name":"FailedInnerCall"},{"inputs":[],"type":"error","name":"InsufficientClaim"},{"inputs":[],"type":"error","name":"InsufficientDeposit"},{"inputs":[],"type":"error","name":"InsufficientRedemption"},{"inputs":[],"type":"error","name":"InsufficientWithdrawal"},{"inputs":[],"type":"error","name":"InvalidAccount"},{"inputs":[],"type":"error","name":"InvalidCaptureEpoch"},{"inputs":[],"type":"error","name":"InvalidClaimer"},{"inputs":[],"type":"error","name":"InvalidCollateral"},{"inputs":[],"type":"error","name":"InvalidDelegator"},{"inputs":[],"type":"error","name":"InvalidEpoch"},{"inputs":[],"type":"error","name":"InvalidEpochDuration"},{"inputs":[],"type":"error","name":"InvalidInitialization"},{"inputs":[],"type":"error","name":"InvalidLengthEpochs"},{"inputs":[],"type":"error","name":"InvalidOnBehalfOf"},{"inputs":[],"type":"error","name":"InvalidRecipient"},{"inputs":[],"type":"error","name":"InvalidSlasher"},{"inputs":[],"type":"error","name":"InvalidTimestamp"},{"inputs":[],"type":"error","name":"MathOverflowedMulDiv"},{"inputs":[],"type":"error","name":"MissingRoles"},{"inputs":[],"type":"error","name":"NoPreviousEpoch"},{"inputs":[],"type":"error","name":"NotDelegator"},{"inputs":[],"type":"error","name":"NotFactory"},{"inputs":[],"type":"error","name":"NotInitialized"},{"inputs":[],"type":"error","name":"NotInitializing"},{"inputs":[],"type":"error","name":"NotSlasher"},{"inputs":[],"type":"error","name":"NotWhitelistedDepositor"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"OwnableInvalidOwner"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"OwnableUnauthorizedAccount"},{"inputs":[],"type":"error","name":"ReentrancyGuardReentrantCall"},{"inputs":[{"internalType":"uint8","name":"bits","type":"uint8"},{"internalType":"uint256","name":"value","type":"uint256"}],"type":"error","name":"SafeCastOverflowedUintDowncast"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"type":"error","name":"SafeERC20FailedOperation"},{"inputs":[],"type":"error","name":"SlasherAlreadyInitialized"},{"inputs":[],"type":"error","name":"TooMuchRedeem"},{"inputs":[],"type":"error","name":"TooMuchWithdraw"},{"inputs":[{"internalType":"address","name":"claimer","type":"address","indexed":true},{"internalType":"address","name":"recipient","type":"address","indexed":true},{"internalType":"uint256","name":"epoch","type":"uint256","indexed":false},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"Claim","anonymous":false},{"inputs":[{"internalType":"address","name":"claimer","type":"address","indexed":true},{"internalType":"address","name":"recipient","type":"address","indexed":true},{"internalType":"uint256[]","name":"epochs","type":"uint256[]","indexed":false},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"ClaimBatch","anonymous":false},{"inputs":[{"internalType":"address","name":"depositor","type":"address","indexed":true},{"internalType":"address","name":"onBehalfOf","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false},{"internalType":"uint256","name":"shares","type":"uint256","indexed":false}],"type":"event","name":"Deposit","anonymous":false},{"inputs":[{"internalType":"uint64","name":"version","type":"uint64","indexed":false}],"type":"event","name":"Initialized","anonymous":false},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256","indexed":false},{"internalType":"uint48","name":"captureTimestamp","type":"uint48","indexed":false},{"internalType":"uint256","name":"slashedAmount","type":"uint256","indexed":false}],"type":"event","name":"OnSlash","anonymous":false},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"bytes32","name":"previousAdminRole","type":"bytes32","indexed":true},{"internalType":"bytes32","name":"newAdminRole","type":"bytes32","indexed":true}],"type":"event","name":"RoleAdminChanged","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"address","name":"sender","type":"address","indexed":true}],"type":"event","name":"RoleGranted","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"address","name":"sender","type":"address","indexed":true}],"type":"event","name":"RoleRevoked","anonymous":false},{"inputs":[{"internalType":"address","name":"delegator","type":"address","indexed":true}],"type":"event","name":"SetDelegator","anonymous":false},{"inputs":[{"internalType":"uint256","name":"limit","type":"uint256","indexed":false}],"type":"event","name":"SetDepositLimit","anonymous":false},{"inputs":[{"internalType":"bool","name":"status","type":"bool","indexed":false}],"type":"event","name":"SetDepositWhitelist","anonymous":false},{"inputs":[{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"bool","name":"status","type":"bool","indexed":false}],"type":"event","name":"SetDepositorWhitelistStatus","anonymous":false},{"inputs":[{"internalType":"bool","name":"status","type":"bool","indexed":false}],"type":"event","name":"SetIsDepositLimit","anonymous":false},{"inputs":[{"internalType":"address","name":"slasher","type":"address","indexed":true}],"type":"event","name":"SetSlasher","anonymous":false},{"inputs":[{"internalType":"address","name":"withdrawer","type":"address","indexed":true},{"internalType":"address","name":"claimer","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false},{"internalType":"uint256","name":"burnedShares","type":"uint256","indexed":false},{"internalType":"uint256","name":"mintedShares","type":"uint256","indexed":false}],"type":"event","name":"Withdraw","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"DEFAULT_ADMIN_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"DELEGATOR_FACTORY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"DEPOSITOR_WHITELIST_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"DEPOSIT_LIMIT_SET_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"DEPOSIT_WHITELIST_SET_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"FACTORY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"IS_DEPOSIT_LIMIT_SET_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"SLASHER_FACTORY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"activeBalanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint48","name":"timestamp","type":"uint48"},{"internalType":"bytes","name":"hints","type":"bytes"}],"stateMutability":"view","type":"function","name":"activeBalanceOfAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"vault","type":"address"},{"internalType":"address","name":"account","type":"address"},{"internalType":"uint48","name":"timestamp","type":"uint48"}],"stateMutability":"view","type":"function","name":"activeBalanceOfHints","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"activeShares","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint48","name":"timestamp","type":"uint48"},{"internalType":"bytes","name":"hint","type":"bytes"}],"stateMutability":"view","type":"function","name":"activeSharesAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"vault","type":"address"},{"internalType":"uint48","name":"timestamp","type":"uint48"}],"stateMutability":"view","type":"function","name":"activeSharesHint","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"uint48","name":"timestamp","type":"uint48"}],"stateMutability":"view","type":"function","name":"activeSharesHintInternal","outputs":[{"internalType":"bool","name":"exists","type":"bool"},{"internalType":"uint32","name":"hint","type":"uint32"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"activeSharesOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint48","name":"timestamp","type":"uint48"},{"internalType":"bytes","name":"hint","type":"bytes"}],"stateMutability":"view","type":"function","name":"activeSharesOfAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"vault","type":"address"},{"internalType":"address","name":"account","type":"address"},{"internalType":"uint48","name":"timestamp","type":"uint48"}],"stateMutability":"view","type":"function","name":"activeSharesOfHint","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint48","name":"timestamp","type":"uint48"}],"stateMutability":"view","type":"function","name":"activeSharesOfHintInternal","outputs":[{"internalType":"bool","name":"exists","type":"bool"},{"internalType":"uint32","name":"hint","type":"uint32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"activeStake","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint48","name":"timestamp","type":"uint48"},{"internalType":"bytes","name":"hint","type":"bytes"}],"stateMutability":"view","type":"function","name":"activeStakeAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"vault","type":"address"},{"internalType":"uint48","name":"timestamp","type":"uint48"}],"stateMutability":"view","type":"function","name":"activeStakeHint","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"uint48","name":"timestamp","type":"uint48"}],"stateMutability":"view","type":"function","name":"activeStakeHintInternal","outputs":[{"internalType":"bool","name":"exists","type":"bool"},{"internalType":"uint32","name":"hint","type":"uint32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"burner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"epoch","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"claim","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256[]","name":"epochs","type":"uint256[]"}],"stateMutability":"nonpayable","type":"function","name":"claimBatch","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"collateral","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"currentEpoch","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"currentEpochStart","outputs":[{"internalType":"uint48","name":"","type":"uint48"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"delegator","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"onBehalfOf","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"deposit","outputs":[{"internalType":"uint256","name":"depositedAmount","type":"uint256"},{"internalType":"uint256","name":"mintedShares","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"depositLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"depositWhitelist","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint48","name":"timestamp","type":"uint48"}],"stateMutability":"view","type":"function","name":"epochAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"epochDuration","outputs":[{"internalType":"uint48","name":"","type":"uint48"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"epochDurationInit","outputs":[{"internalType":"uint48","name":"","type":"uint48"}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getRoleAdmin","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"grantRole"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"hasRole","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint64","name":"initialVersion","type":"uint64"},{"internalType":"address","name":"owner_","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[],"stateMutability":"view","type":"function","name":"isDelegatorInitialized","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"isDepositLimit","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"isDepositorWhitelisted","outputs":[{"internalType":"bool","name":"value","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"isInitialized","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"isSlasherInitialized","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint256","name":"epoch","type":"uint256"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"isWithdrawalsClaimed","outputs":[{"internalType":"bool","name":"value","type":"bool"}]},{"inputs":[{"internalType":"uint64","name":"newVersion","type":"uint64"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"migrate"},{"inputs":[],"stateMutability":"view","type":"function","name":"nextEpochStart","outputs":[{"internalType":"uint48","name":"","type":"uint48"}]},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint48","name":"captureTimestamp","type":"uint48"}],"stateMutability":"nonpayable","type":"function","name":"onSlash","outputs":[{"internalType":"uint256","name":"slashedAmount","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"previousEpochStart","outputs":[{"internalType":"uint48","name":"","type":"uint48"}]},{"inputs":[{"internalType":"address","name":"claimer","type":"address"},{"internalType":"uint256","name":"shares","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"redeem","outputs":[{"internalType":"uint256","name":"withdrawnAssets","type":"uint256"},{"internalType":"uint256","name":"mintedShares","type":"uint256"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"callerConfirmation","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"renounceRole"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"revokeRole"},{"inputs":[{"internalType":"address","name":"delegator_","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setDelegator"},{"inputs":[{"internalType":"uint256","name":"limit","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setDepositLimit"},{"inputs":[{"internalType":"bool","name":"status","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"setDepositWhitelist"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"status","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"setDepositorWhitelistStatus"},{"inputs":[{"internalType":"bool","name":"status","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"setIsDepositLimit"},{"inputs":[{"internalType":"address","name":"slasher_","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setSlasher"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"slashableBalanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"slasher","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"staticDelegateCall"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"totalStake","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"},{"inputs":[],"stateMutability":"view","type":"function","name":"version","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[{"internalType":"address","name":"claimer","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"withdraw","outputs":[{"internalType":"uint256","name":"burnedShares","type":"uint256"},{"internalType":"uint256","name":"mintedShares","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"epoch","type":"uint256"}],"stateMutability":"view","type":"function","name":"withdrawalShares","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"epoch","type":"uint256"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"withdrawalSharesOf","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"epoch","type":"uint256"}],"stateMutability":"view","type":"function","name":"withdrawals","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"epoch","type":"uint256"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"withdrawalsOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]}],"devdoc":{"kind":"dev","methods":{"activeBalanceOf(address)":{"params":{"account":"account to get the active balance for"},"returns":{"_0":"active balance for the account"}},"activeBalanceOfAt(address,uint48,bytes)":{"params":{"account":"account to get the active balance for","hints":"hints for checkpoints' indexes","timestamp":"time point to get the active balance for the account at"},"returns":{"_0":"active balance for the account at the timestamp"}},"activeShares()":{"returns":{"_0":"total number of active shares"}},"activeSharesAt(uint48,bytes)":{"params":{"hint":"hint for the checkpoint index","timestamp":"time point to get the total number of active shares at"},"returns":{"_0":"total number of active shares at the timestamp"}},"activeSharesOf(address)":{"params":{"account":"account to get the number of active shares for"},"returns":{"_0":"number of active shares for the account"}},"activeSharesOfAt(address,uint48,bytes)":{"params":{"account":"account to get the number of active shares for","hint":"hint for the checkpoint index","timestamp":"time point to get the number of active shares for the account at"},"returns":{"_0":"number of active shares for the account at the timestamp"}},"activeStake()":{"returns":{"_0":"total amount of active stake"}},"activeStakeAt(uint48,bytes)":{"params":{"hint":"hint for the checkpoint index","timestamp":"time point to get the total active stake at"},"returns":{"_0":"total amount of active stake at the timestamp"}},"claim(address,uint256)":{"params":{"epoch":"epoch to claim the collateral for","recipient":"account that receives the collateral"},"returns":{"amount":"amount of the collateral claimed"}},"claimBatch(address,uint256[])":{"params":{"epochs":"epochs to claim the collateral for","recipient":"account that receives the collateral"},"returns":{"amount":"amount of the collateral claimed"}},"currentEpoch()":{"returns":{"_0":"current epoch"}},"currentEpochStart()":{"returns":{"_0":"start of the current epoch"}},"deposit(address,uint256)":{"params":{"amount":"amount of the collateral to deposit","onBehalfOf":"account the deposit is made on behalf of"},"returns":{"depositedAmount":"real amount of the collateral deposited","mintedShares":"amount of the active shares minted"}},"epochAt(uint48)":{"details":"Reverts if the timestamp is less than the start of the epoch 0.","params":{"timestamp":"time point to get the epoch at"},"returns":{"_0":"epoch at the timestamp"}},"getRoleAdmin(bytes32)":{"details":"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}."},"grantRole(bytes32,address)":{"details":"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event."},"hasRole(bytes32,address)":{"details":"Returns `true` if `account` has been granted `role`."},"initialize(uint64,address,bytes)":{"params":{"data":"some data to use","initialVersion":"initial version of the entity","owner":"initial owner of the entity"}},"isInitialized()":{"returns":{"_0":"if the vault is fully initialized"}},"migrate(uint64,bytes)":{"params":{"data":"some data to use","newVersion":"new version of the entity"}},"nextEpochStart()":{"returns":{"_0":"start of the next epoch"}},"onSlash(uint256,uint48)":{"details":"Only the slasher can call this function.","params":{"amount":"amount to slash","captureTimestamp":"time point when the stake was captured"},"returns":{"slashedAmount":"real amount of the collateral slashed"}},"owner()":{"details":"Returns the address of the current owner."},"previousEpochStart()":{"details":"Reverts if the current epoch is 0.","returns":{"_0":"start of the previous epoch"}},"redeem(address,uint256)":{"params":{"claimer":"account that needs to claim the withdrawal","shares":"amount of the active shares to redeem"},"returns":{"mintedShares":"amount of the epoch withdrawal shares minted","withdrawnAssets":"amount of the collateral withdrawn"}},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner."},"renounceRole(bytes32,address)":{"details":"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `callerConfirmation`. May emit a {RoleRevoked} event."},"revokeRole(bytes32,address)":{"details":"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event."},"setDepositLimit(uint256)":{"details":"Only a DEPOSIT_LIMIT_SET_ROLE holder can call this function.","params":{"limit":"deposit limit (maximum amount of the collateral that can be in the vault simultaneously)"}},"setDepositWhitelist(bool)":{"details":"Only a DEPOSIT_WHITELIST_SET_ROLE holder can call this function.","params":{"status":"if enabling deposit whitelist"}},"setDepositorWhitelistStatus(address,bool)":{"details":"Only a DEPOSITOR_WHITELIST_ROLE holder can call this function.","params":{"account":"account for which the whitelist status is set","status":"if whitelisting the account"}},"setIsDepositLimit(bool)":{"details":"Only a IS_DEPOSIT_LIMIT_SET_ROLE holder can call this function.","params":{"status":"if enabling deposit limit"}},"slashableBalanceOf(address)":{"params":{"account":"account to get the slashable collateral for"},"returns":{"_0":"total amount of the account's slashable collateral"}},"staticDelegateCall(address,bytes)":{"details":"It allows to use this contract's storage on-chain.","params":{"data":"data to make a delegatecall with","target":"address of the contract to make a delegatecall to"}},"supportsInterface(bytes4)":{"details":"See {IERC165-supportsInterface}."},"totalStake()":{"returns":{"_0":"total amount of the slashable collateral"}},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."},"version()":{"details":"Starts from 1.","returns":{"_0":"version of the entity"}},"withdraw(address,uint256)":{"params":{"amount":"amount of the collateral to withdraw","claimer":"account that needs to claim the withdrawal"},"returns":{"burnedShares":"amount of the active shares burned","mintedShares":"amount of the epoch withdrawal shares minted"}},"withdrawalsOf(uint256,address)":{"params":{"account":"account to get the withdrawals for","epoch":"epoch to get the withdrawals for the account at"},"returns":{"_0":"withdrawals for the account at the epoch"}}},"version":1},"userdoc":{"kind":"user","methods":{"DELEGATOR_FACTORY()":{"notice":"Get the delegator factory's address."},"DEPOSITOR_WHITELIST_ROLE()":{"notice":"Get a depositor whitelist status setter's role."},"DEPOSIT_LIMIT_SET_ROLE()":{"notice":"Get a deposit limit setter's role."},"DEPOSIT_WHITELIST_SET_ROLE()":{"notice":"Get a deposit whitelist enabler/disabler's role."},"FACTORY()":{"notice":"Get the factory's address."},"IS_DEPOSIT_LIMIT_SET_ROLE()":{"notice":"Get a deposit limit enabler/disabler's role."},"SLASHER_FACTORY()":{"notice":"Get the slasher factory's address."},"activeBalanceOf(address)":{"notice":"Get an active balance for a particular account."},"activeBalanceOfAt(address,uint48,bytes)":{"notice":"Get an active balance for a particular account at a given timestamp using hints."},"activeShares()":{"notice":"Get a total number of active shares in the vault."},"activeSharesAt(uint48,bytes)":{"notice":"Get a total number of active shares in the vault at a given timestamp using a hint."},"activeSharesOf(address)":{"notice":"Get a number of active shares for a particular account."},"activeSharesOfAt(address,uint48,bytes)":{"notice":"Get a total number of active shares for a particular account at a given timestamp using a hint."},"activeStake()":{"notice":"Get a total amount of active stake in the vault."},"activeStakeAt(uint48,bytes)":{"notice":"Get a total amount of active stake in the vault at a given timestamp using a hint."},"burner()":{"notice":"Get a burner to issue debt to (e.g., 0xdEaD or some unwrapper contract)."},"claim(address,uint256)":{"notice":"Claim collateral from the vault."},"claimBatch(address,uint256[])":{"notice":"Claim collateral from the vault for multiple epochs."},"collateral()":{"notice":"Get a vault collateral."},"currentEpoch()":{"notice":"Get a current vault epoch."},"currentEpochStart()":{"notice":"Get a start of the current vault epoch."},"delegator()":{"notice":"Get a delegator (it delegates the vault's stake to networks and operators)."},"deposit(address,uint256)":{"notice":"Deposit collateral into the vault."},"depositLimit()":{"notice":"Get a deposit limit (maximum amount of the active stake that can be in the vault simultaneously)."},"depositWhitelist()":{"notice":"Get if the deposit whitelist is enabled."},"epochAt(uint48)":{"notice":"Get an epoch at a given timestamp."},"epochDuration()":{"notice":"Get a duration of the vault epoch."},"epochDurationInit()":{"notice":"Get a time point of the epoch duration set."},"initialize(uint64,address,bytes)":{"notice":"Initialize this entity contract by using a given data and setting a particular version and owner."},"isDelegatorInitialized()":{"notice":"Get if the delegator is initialized."},"isDepositLimit()":{"notice":"Get if the deposit limit is set."},"isDepositorWhitelisted(address)":{"notice":"Get if a given account is whitelisted as a depositor."},"isInitialized()":{"notice":"Check if the vault is fully initialized (a delegator and a slasher are set)."},"isSlasherInitialized()":{"notice":"Get if the slasher is initialized."},"isWithdrawalsClaimed(uint256,address)":{"notice":"Get if the withdrawals are claimed for a particular account at a given epoch."},"migrate(uint64,bytes)":{"notice":"Migrate this entity to a particular newer version using a given data."},"nextEpochStart()":{"notice":"Get a start of the next vault epoch."},"onSlash(uint256,uint48)":{"notice":"Slash callback for burning collateral."},"previousEpochStart()":{"notice":"Get a start of the previous vault epoch."},"redeem(address,uint256)":{"notice":"Redeem collateral from the vault (it will be claimable after the next epoch)."},"setDepositLimit(uint256)":{"notice":"Set a deposit limit."},"setDepositWhitelist(bool)":{"notice":"Enable/disable deposit whitelist."},"setDepositorWhitelistStatus(address,bool)":{"notice":"Set a depositor whitelist status."},"setIsDepositLimit(bool)":{"notice":"Enable/disable deposit limit."},"slashableBalanceOf(address)":{"notice":"Get a total amount of the collateral that can be slashed for a given account."},"slasher()":{"notice":"Get a slasher (it provides networks a slashing mechanism)."},"staticDelegateCall(address,bytes)":{"notice":"Make a delegatecall from this contract to a given target contract with a particular data (always reverts with a return data)."},"totalStake()":{"notice":"Get a total amount of the collateral that can be slashed."},"version()":{"notice":"Get the entity's version."},"withdraw(address,uint256)":{"notice":"Withdraw collateral from the vault (it will be claimable after the next epoch)."},"withdrawalShares(uint256)":{"notice":"Get a total number of withdrawal shares at a given epoch."},"withdrawalSharesOf(uint256,address)":{"notice":"Get a number of withdrawal shares for a particular account at a given epoch (zero if claimed)."},"withdrawals(uint256)":{"notice":"Get a total amount of the withdrawals at a given epoch."},"withdrawalsOf(uint256,address)":{"notice":"Get withdrawals for a particular account at a given epoch (zero if claimed)."}},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/contracts/hints/VaultHints.sol":"VaultHints"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol":{"keccak256":"0x6662ec4e5cefca03eeadd073e9469df8d2944bb2ee8ec8f7622c2c46aab5f225","urls":["bzz-raw://4d8544c6f8daa4d1bc215c6a72fe0acdb748664a105b0e5efc19295667521d45","dweb:/ipfs/QmdGWqdnXT8S3RgCR6aV8XHZrsybieMQLLnug1NtpSjEXN"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol":{"keccak256":"0xc163fcf9bb10138631a9ba5564df1fa25db9adff73bd9ee868a8ae1858fe093a","urls":["bzz-raw://9706d43a0124053d9880f6e31a59f31bc0a6a3dc1acd66ce0a16e1111658c5f6","dweb:/ipfs/QmUFmfowzkRwGtDu36cXV9SPTBHJ3n7dG9xQiK5B28jTf2"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b","urls":["bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609","dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol":{"keccak256":"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397","urls":["bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9","dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardUpgradeable.sol":{"keccak256":"0xb44e086e941292cdc7f440de51478493894ef0b1aeccb0c4047445919f667f74","urls":["bzz-raw://942dad22fbdc1669f025540ba63aa3ccfad5f8458fc5d4525b31ebf272e7af45","dweb:/ipfs/Qmdo4X2M82aM3AMoW2kf2jhYkSCyC4T1pHNd6obdsDFnAB"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol":{"keccak256":"0xdaba3f7c42c55b2896353f32bd27d4d5f8bae741b3b05d4c53f67abc4dc47ce8","urls":["bzz-raw://1fa2e61141c602510bcd2cd936ed9561922ac8772a9b9c9a9db091a74e354a45","dweb:/ipfs/QmcHQDDoEBwJmwUbzoVkytvJsBx3KVHYFFnDkvRGWh9Wmh"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol":{"keccak256":"0xb6b36edd6a2999fd243ff226d6cbf84bd71af2432bbd0dfe19392996a1d9cb41","urls":["bzz-raw://1fd2f35495652e57e3f99bc6c510bc5f7dd398a176ea2e72d8ed730aebc6ca26","dweb:/ipfs/QmTQV6X4gkikTib49cho5iDX3JvSQbdsoEChoDwrk3CbbH"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70","urls":["bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c","dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol":{"keccak256":"0x6008dabfe393240d73d7dd7688033f72740d570aa422254d29a7dce8568f3aff","urls":["bzz-raw://f5196ec75139918c6c7bb4251b36395e668f1fa6d206beba7e7520e74913940d","dweb:/ipfs/QmSyqjksXxmm2mCG6qRd1yuwLykypkSVBbnBnGqJRcuJMi"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0x37bb49513c49c87c4642a891b13b63571bc87013dde806617aa1efb54605f386","urls":["bzz-raw://b3036b3a83b7c48f96641f2a9002b9f2dcb6a5958dd670894ada21ae8229b3d0","dweb:/ipfs/QmUNfSBdoVtjhETaUJCYcaC7pTMgbhht926tJ2uXJbiVd3"],"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/introspection/IERC165.sol":{"keccak256":"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b","urls":["bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df","dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d","urls":["bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875","dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol":{"keccak256":"0xe19a4d5f31d2861e7344e8e535e2feafb913d806d3e2b5fe7782741a2a7094fe","urls":["bzz-raw://4aed79c0fa6f0546ed02f2f683e8f77f0fd2ed7eb34d8bbf3d373c9a6d95b13c","dweb:/ipfs/QmWqVz6UAVqmnWU5pqYPt1o6iDEZyPaBraAA3rKfTTSfYj"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/Checkpoints.sol":{"keccak256":"0xbdc5e074d7dd6678f67e92b1a51a20226801a407b0e1af3da367c5d1ff4519ad","urls":["bzz-raw://a36cca6b22fff3db16fc789ff6c60eea71d4b156065d4d0c83a0bc5e91a77a8b","dweb:/ipfs/QmYN3exd5AemxjBrN8XMB1p5LbbE16uC3sjbYjwi8AjcGR"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/types/Time.sol":{"keccak256":"0xc7755af115020049e4140f224f9ee88d7e1799ffb0646f37bf0df24bf6213f58","urls":["bzz-raw://7f09bf94d5274334ec021f61a04659db303f31e60460e14b709c9bf187740111","dweb:/ipfs/QmNvgomZYUwFAt4cZbPWAiTeSZQreGehY9BK5xyVJsUttb"],"license":"MIT"},"src/contracts/common/MigratableEntity.sol":{"keccak256":"0x2d736f4dacd5d7e7697503bc426c78b8250fe1694ca157965ec178da6807de58","urls":["bzz-raw://f1237acf96b4b9f9b69156e068eddd726a6e15bd8e87a18dc999cd4ba4da069c","dweb:/ipfs/QmS6M8fiFFSeuJ4ZKKq1z8W7w4ybeHQSy5TLASGoc1LVic"],"license":"BUSL-1.1"},"src/contracts/common/StaticDelegateCallable.sol":{"keccak256":"0x350029aa8955eacaffffaeb58babc5c98e80ebc5c5db388ed17ee6465f4a9d90","urls":["bzz-raw://eb392a8ee9050e0af606897df63e3404e3829e8b688b580663892f9664195764","dweb:/ipfs/QmaXC8jqV8UrrAFkzXTEv2fJF56sy33HhLxAzaRZmUxuXD"],"license":"BUSL-1.1"},"src/contracts/hints/Hints.sol":{"keccak256":"0x8b565df1ae35993c097a9e642002782a8f451f6fd01809cad6bcd345bdf1b99c","urls":["bzz-raw://99a19adb01e350a92f534095b3078229df1f2f83077992d75d58d8684be45971","dweb:/ipfs/QmbmwcuswVbzvwHQFTtrJG86oV98GnfxqYTb8cV8u1acox"],"license":"BUSL-1.1"},"src/contracts/hints/VaultHints.sol":{"keccak256":"0xccb505b7159b769cc114d67b87c2de6b106557f667fc8f3780114baad5c3c442","urls":["bzz-raw://6d0c80a908fc16e96a8b5605a0bd53f9e89ad0ef0a738fbbae80ba4d3160749b","dweb:/ipfs/QmXo5UtWoR8YmunqcbBU8rQMm1nvmvjNPoXcVrDhh4pEwR"],"license":"BUSL-1.1"},"src/contracts/libraries/Checkpoints.sol":{"keccak256":"0xba90097c8bfe0a975499428b5f8ac5569483c7d92ccc28c12d70de416aae040c","urls":["bzz-raw://12f5d93ca94cd06d3147db68993165a58e17903ed53682560de61f3085ad4609","dweb:/ipfs/QmePiuAqvXprMLmFZkGZeGjvGPAvsEDHfCDv7BoQhXu9xE"],"license":"MIT"},"src/contracts/libraries/ERC4626Math.sol":{"keccak256":"0x8441160513c1cbeb1c3b9ee077bcc7e7ce20006b52a77c8dd39ff0ef89699939","urls":["bzz-raw://943f8cc3e26ddf649f465f40c909819f5c864717c4baa339e9e403b9374a4653","dweb:/ipfs/QmXPxi1sUDsrGprZdUgCzoPEosaZMv9ZhygWQ1vAi1phAB"],"license":"MIT"},"src/contracts/vault/Vault.sol":{"keccak256":"0x2ceff6ed3298c4cad144c99fcc79b51cb9397d6ebef00285b915848b476f8c2e","urls":["bzz-raw://11f2fb3581854f3ab6e82e8d4935d9eb510c903a13c3f022346c2956a58f5307","dweb:/ipfs/QmdUnoXoyYoG9SGWyQZCFyLDRUUX3eXyXetkRvw6jxqqBz"],"license":"BUSL-1.1"},"src/contracts/vault/VaultStorage.sol":{"keccak256":"0x57db25b127d77ea3472de53e3a4af3354399655b9268638b99ca5925fa364a56","urls":["bzz-raw://aa763d9a6ec508ae3abfb8228b72b9fd9525279e5135d4962e79ff059feb1173","dweb:/ipfs/QmcbDR6E9wyEpu6V2FkEC4hnWy47zXA9LSKJde6zSGd33Q"],"license":"BUSL-1.1"},"src/interfaces/common/IEntity.sol":{"keccak256":"0x8ef4b63d6da63489778ccd5f8d13ebdd527dd4b62730b2c616df5af7474d2d21","urls":["bzz-raw://5a8d69576a9219d85c50816a18ad53a4d53cfcb27ed38b8cccc808dc2734b71b","dweb:/ipfs/QmYVN3P4Q4REvBWJ97TbAcaxm3uyB2anV6NSGa6ZtSwcEv"],"license":"MIT"},"src/interfaces/common/IMigratableEntity.sol":{"keccak256":"0x8f5f2809f3afbe8ebfbb365dd7b57b4dd3b6f9943a6187eaf648d45895b8e3c4","urls":["bzz-raw://0ffe640537d539e7a4fde70d30d3e4c57f4ba9c2c25c450cea713aae38e8fd5c","dweb:/ipfs/QmSUTGzvdcn1R1KB7tLThMRtESsfPbeXDhhhKWGtntzBds"],"license":"MIT"},"src/interfaces/common/IRegistry.sol":{"keccak256":"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb","urls":["bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014","dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK"],"license":"MIT"},"src/interfaces/common/IStaticDelegateCallable.sol":{"keccak256":"0xa335d4e81b9071b7de66ef92b43ff20671d86516eb1be46fef29a3483cd3f5d5","urls":["bzz-raw://d464b9db863c14c05547d2b23352f2e9b7b784799cf09f6bbc4906a2a74e3516","dweb:/ipfs/QmUVWzFvJz7eEbDQKiFTTzwi7TEbjcs3VmwdM4kuptAKvi"],"license":"MIT"},"src/interfaces/delegator/IBaseDelegator.sol":{"keccak256":"0x96bb312f032e17accce3f8f80936d99468029d6b37c9ca74acdb4b026a0148ee","urls":["bzz-raw://2a66dcb5b7d1a6ef6a363431ea98ebd78bc4fdd3d7a134d9b542dc66e7d025c2","dweb:/ipfs/QmRhTPLd2ZAyRHmJUFUcWKs9b3if49QY17LYZuRqWmghw8"],"license":"MIT"},"src/interfaces/slasher/IBaseSlasher.sol":{"keccak256":"0x7c82528b445659c313ab77335c407b0b6efe5e79027187bb287f7bc74202b404","urls":["bzz-raw://0274c90aa5df1aa6bb470a6aab53992fb14fd7e5472c9430416505b29647d9cf","dweb:/ipfs/QmckbmJLDetPemVzCnnGcKYWAZV2BRFXGDsjiaec8jkHxx"],"license":"MIT"},"src/interfaces/vault/IVault.sol":{"keccak256":"0xffee01d383cd4e1a5530c614bf4360c1ef070c288abec9da1eb531b51bc07235","urls":["bzz-raw://04f0046cac285d8ec44ebbb1f79dc94fab4495767190cad8364fbc1fafaadfb9","dweb:/ipfs/QmUawAunwzXfCyShWfhKeThAgKtqe51hmrxvrXvM772M2R"],"license":"MIT"},"src/interfaces/vault/IVaultStorage.sol":{"keccak256":"0x592626f13754194f83047135de19229c49390bd59e34659b1bb38be71d973a22","urls":["bzz-raw://06a6a9dfddd05e580b32bebe2cff4f63ba26a653180676d58225dd30d9c89d3e","dweb:/ipfs/QmdgzBeY6Sxo8mGtyBxtv1tM1c2kU6J6zjeRd7vuXm4DU6"],"license":"MIT"}},"version":1},"id":90} \ No newline at end of file diff --git a/out/VaultTokenized.sol/VaultTokenized.json b/out/VaultTokenized.sol/VaultTokenized.json index 0f7be1f1..446c8d67 100644 --- a/out/VaultTokenized.sol/VaultTokenized.json +++ b/out/VaultTokenized.sol/VaultTokenized.json @@ -1 +1 @@ -{"abi":[{"type":"constructor","inputs":[{"name":"delegatorFactory","type":"address","internalType":"address"},{"name":"slasherFactory","type":"address","internalType":"address"},{"name":"vaultFactory","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"DEFAULT_ADMIN_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"DELEGATOR_FACTORY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"DEPOSITOR_WHITELIST_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"DEPOSIT_LIMIT_SET_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"DEPOSIT_WHITELIST_SET_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"FACTORY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"IS_DEPOSIT_LIMIT_SET_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"SLASHER_FACTORY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"activeBalanceOf","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"activeBalanceOfAt","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"timestamp","type":"uint48","internalType":"uint48"},{"name":"hints","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"activeShares","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"activeSharesAt","inputs":[{"name":"timestamp","type":"uint48","internalType":"uint48"},{"name":"hint","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"activeSharesOf","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"activeSharesOfAt","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"timestamp","type":"uint48","internalType":"uint48"},{"name":"hint","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"activeStake","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"activeStakeAt","inputs":[{"name":"timestamp","type":"uint48","internalType":"uint48"},{"name":"hint","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"allowance","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"spender","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"approve","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"balanceOf","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"burner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"claim","inputs":[{"name":"recipient","type":"address","internalType":"address"},{"name":"epoch","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"claimBatch","inputs":[{"name":"recipient","type":"address","internalType":"address"},{"name":"epochs","type":"uint256[]","internalType":"uint256[]"}],"outputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"collateral","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"currentEpoch","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"currentEpochStart","inputs":[],"outputs":[{"name":"","type":"uint48","internalType":"uint48"}],"stateMutability":"view"},{"type":"function","name":"decimals","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"uint8"}],"stateMutability":"view"},{"type":"function","name":"delegator","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"deposit","inputs":[{"name":"onBehalfOf","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"depositedAmount","type":"uint256","internalType":"uint256"},{"name":"mintedShares","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"depositLimit","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"depositWhitelist","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"epochAt","inputs":[{"name":"timestamp","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"epochDuration","inputs":[],"outputs":[{"name":"","type":"uint48","internalType":"uint48"}],"stateMutability":"view"},{"type":"function","name":"epochDurationInit","inputs":[],"outputs":[{"name":"","type":"uint48","internalType":"uint48"}],"stateMutability":"view"},{"type":"function","name":"getRoleAdmin","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"grantRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"hasRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"initialize","inputs":[{"name":"initialVersion","type":"uint64","internalType":"uint64"},{"name":"owner_","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"isDelegatorInitialized","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isDepositLimit","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isDepositorWhitelisted","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"value","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isInitialized","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isSlasherInitialized","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isWithdrawalsClaimed","inputs":[{"name":"epoch","type":"uint256","internalType":"uint256"},{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"value","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"migrate","inputs":[{"name":"newVersion","type":"uint64","internalType":"uint64"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"nextEpochStart","inputs":[],"outputs":[{"name":"","type":"uint48","internalType":"uint48"}],"stateMutability":"view"},{"type":"function","name":"onSlash","inputs":[{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"captureTimestamp","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"slashedAmount","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"previousEpochStart","inputs":[],"outputs":[{"name":"","type":"uint48","internalType":"uint48"}],"stateMutability":"view"},{"type":"function","name":"redeem","inputs":[{"name":"claimer","type":"address","internalType":"address"},{"name":"shares","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"withdrawnAssets","type":"uint256","internalType":"uint256"},{"name":"mintedShares","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"renounceRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"callerConfirmation","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"revokeRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setDelegator","inputs":[{"name":"delegator_","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setDepositLimit","inputs":[{"name":"limit","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setDepositWhitelist","inputs":[{"name":"status","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setDepositorWhitelistStatus","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"status","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setIsDepositLimit","inputs":[{"name":"status","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setSlasher","inputs":[{"name":"slasher_","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"slashableBalanceOf","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"slasher","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"staticDelegateCall","inputs":[{"name":"target","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"symbol","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"totalStake","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"totalSupply","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"transfer","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"transferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"version","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"withdraw","inputs":[{"name":"claimer","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"burnedShares","type":"uint256","internalType":"uint256"},{"name":"mintedShares","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"withdrawalShares","inputs":[{"name":"epoch","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"withdrawalSharesOf","inputs":[{"name":"epoch","type":"uint256","internalType":"uint256"},{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"withdrawals","inputs":[{"name":"epoch","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"withdrawalsOf","inputs":[{"name":"epoch","type":"uint256","internalType":"uint256"},{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"event","name":"Approval","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"spender","type":"address","indexed":true,"internalType":"address"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Claim","inputs":[{"name":"claimer","type":"address","indexed":true,"internalType":"address"},{"name":"recipient","type":"address","indexed":true,"internalType":"address"},{"name":"epoch","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"ClaimBatch","inputs":[{"name":"claimer","type":"address","indexed":true,"internalType":"address"},{"name":"recipient","type":"address","indexed":true,"internalType":"address"},{"name":"epochs","type":"uint256[]","indexed":false,"internalType":"uint256[]"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Deposit","inputs":[{"name":"depositor","type":"address","indexed":true,"internalType":"address"},{"name":"onBehalfOf","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"shares","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"OnSlash","inputs":[{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"captureTimestamp","type":"uint48","indexed":false,"internalType":"uint48"},{"name":"slashedAmount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"RoleAdminChanged","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"previousAdminRole","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"newAdminRole","type":"bytes32","indexed":true,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"RoleGranted","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"sender","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"RoleRevoked","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"sender","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"SetDelegator","inputs":[{"name":"delegator","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"SetDepositLimit","inputs":[{"name":"limit","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"SetDepositWhitelist","inputs":[{"name":"status","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"SetDepositorWhitelistStatus","inputs":[{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"status","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"SetIsDepositLimit","inputs":[{"name":"status","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"SetSlasher","inputs":[{"name":"slasher","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Withdraw","inputs":[{"name":"withdrawer","type":"address","indexed":true,"internalType":"address"},{"name":"claimer","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"burnedShares","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"mintedShares","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"error","name":"AccessControlBadConfirmation","inputs":[]},{"type":"error","name":"AccessControlUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"neededRole","type":"bytes32","internalType":"bytes32"}]},{"type":"error","name":"AddressEmptyCode","inputs":[{"name":"target","type":"address","internalType":"address"}]},{"type":"error","name":"AddressInsufficientBalance","inputs":[{"name":"account","type":"address","internalType":"address"}]},{"type":"error","name":"AlreadyClaimed","inputs":[]},{"type":"error","name":"AlreadyInitialized","inputs":[]},{"type":"error","name":"AlreadySet","inputs":[]},{"type":"error","name":"CheckpointUnorderedInsertion","inputs":[]},{"type":"error","name":"DelegatorAlreadyInitialized","inputs":[]},{"type":"error","name":"DepositLimitReached","inputs":[]},{"type":"error","name":"ERC20InsufficientAllowance","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"allowance","type":"uint256","internalType":"uint256"},{"name":"needed","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ERC20InsufficientBalance","inputs":[{"name":"sender","type":"address","internalType":"address"},{"name":"balance","type":"uint256","internalType":"uint256"},{"name":"needed","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ERC20InvalidApprover","inputs":[{"name":"approver","type":"address","internalType":"address"}]},{"type":"error","name":"ERC20InvalidReceiver","inputs":[{"name":"receiver","type":"address","internalType":"address"}]},{"type":"error","name":"ERC20InvalidSender","inputs":[{"name":"sender","type":"address","internalType":"address"}]},{"type":"error","name":"ERC20InvalidSpender","inputs":[{"name":"spender","type":"address","internalType":"address"}]},{"type":"error","name":"FailedInnerCall","inputs":[]},{"type":"error","name":"InsufficientClaim","inputs":[]},{"type":"error","name":"InsufficientDeposit","inputs":[]},{"type":"error","name":"InsufficientRedemption","inputs":[]},{"type":"error","name":"InsufficientWithdrawal","inputs":[]},{"type":"error","name":"InvalidAccount","inputs":[]},{"type":"error","name":"InvalidCaptureEpoch","inputs":[]},{"type":"error","name":"InvalidClaimer","inputs":[]},{"type":"error","name":"InvalidCollateral","inputs":[]},{"type":"error","name":"InvalidDelegator","inputs":[]},{"type":"error","name":"InvalidEpoch","inputs":[]},{"type":"error","name":"InvalidEpochDuration","inputs":[]},{"type":"error","name":"InvalidInitialization","inputs":[]},{"type":"error","name":"InvalidLengthEpochs","inputs":[]},{"type":"error","name":"InvalidOnBehalfOf","inputs":[]},{"type":"error","name":"InvalidRecipient","inputs":[]},{"type":"error","name":"InvalidSlasher","inputs":[]},{"type":"error","name":"InvalidTimestamp","inputs":[]},{"type":"error","name":"MathOverflowedMulDiv","inputs":[]},{"type":"error","name":"MissingRoles","inputs":[]},{"type":"error","name":"NoPreviousEpoch","inputs":[]},{"type":"error","name":"NotDelegator","inputs":[]},{"type":"error","name":"NotFactory","inputs":[]},{"type":"error","name":"NotInitialized","inputs":[]},{"type":"error","name":"NotInitializing","inputs":[]},{"type":"error","name":"NotSlasher","inputs":[]},{"type":"error","name":"NotWhitelistedDepositor","inputs":[]},{"type":"error","name":"OwnableInvalidOwner","inputs":[{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"OwnableUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"}]},{"type":"error","name":"ReentrancyGuardReentrantCall","inputs":[]},{"type":"error","name":"SafeCastOverflowedUintDowncast","inputs":[{"name":"bits","type":"uint8","internalType":"uint8"},{"name":"value","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"SafeERC20FailedOperation","inputs":[{"name":"token","type":"address","internalType":"address"}]},{"type":"error","name":"SlasherAlreadyInitialized","inputs":[]},{"type":"error","name":"TooMuchRedeem","inputs":[]},{"type":"error","name":"TooMuchWithdraw","inputs":[]}],"bytecode":{"object":"0x60e03461013c57601f61579138819003918201601f1916830192916001600160401b03918285118486101761014057816060928592604097885283398101031261013c5761004c82610154565b916100648461005d60208401610154565b9201610154565b9260805260a0527ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a009081549060ff82861c1661012b5780808316036100e7575b50505060c05251615628908161016982396080518181816115820152611b29015260a051818181611c9201526121ef015260c051818181610a9b0152610cc30152f35b6001600160401b0319909116811790915582519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a15f80806100a4565b845163f92ee8a960e01b8152600490fd5b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b51906001600160a01b038216820361013c5756fe60806040526004361015610011575f80fd5b5f3560e01c806301ffc9a7146104ba57806306fdde03146104b5578063095ea7b3146104b05780631415519b146104ab57806318160ddd146103895780631b66c9e1146104a65780631e9a6950146104a157806323b872dd1461049c578063248a9ca31461049757806327810b6e14610492578063281f57521461048d5780632abe3048146104885780632d73c69c146104835780632dd310001461047e5780632f2ff15d14610479578063313ce5671461047457806336568abe1461046f578063392e53cd1461046a5780634105a7dd14610465578063463616711461046057806347e7ef241461045b57806348d3b775146104565780634ff0876a1461045157806350861adc1461044c57806350f22068146104475780635346e34f1461044257806354fd4d501461043d57806357ec83cc1461043857806359f769a9146104335780635cc070761461042e57806361a8c8c4146104295780636da3e06d146104245780636ec1e3f81461041f57806370a08231146103d4578063715018a61461041a5780637278e31c1461041557806373790ab314610410578063766718081461040b578063794b15b7146104065780637953b33b146104015780637c04c80a146103fc578063810da75d146103f757806383cd9cc3146103f257806387df0788146103ed5780638b0e9f3f146103e85780638da5cb5b146103e357806391d14854146103de57806395d89b41146103d95780639d66201b146103d45780639f86fd85146103cf578063a1b12202146103ca578063a217fddf146103c5578063a21a1df9146103c0578063a2861466146103bb578063a3b54172146103b6578063a5d03223146103b1578063a9059cbb146103ac578063aabc2496146103a7578063aad3ec96146103a2578063afba70ad1461039d578063b134427114610398578063bd49c35f14610393578063bdc8144b1461038e578063bfefcd7b14610389578063c31e8dd714610384578063ce9b79301461037f578063d547741f1461037a578063d8dfeb4514610375578063db38871514610370578063dd62ed3e1461036b578063ecf7085814610366578063efb559d614610361578063f2fde38b1461035c578063f3fef3a3146103575763f5e7ee0f14610352575f80fd5b6128a9565b612803565b6127d6565b612687565b61266a565b612633565b6125f9565b6125ce565b612582565b61255a565b6124f0565b610749565b612412565b6123f8565b6123d0565b6123a6565b6122e5565b61212e565b6120f9565b6120b3565b612066565b611f73565b611f39565b611f1f565b611efb565b611e67565b6115d6565b611db5565b611d57565b611d23565b611cc1565b611c7d565b611ac4565b611aab565b611a45565b611a1e565b6119de565b61198c565b61194b565b611677565b611610565b6115b1565b61156d565b61151a565b6114f0565b6114c9565b611391565b61135f565b6112ca565b6112b1565b611254565b611234565b611213565b610f2b565b610f03565b610e68565b610e23565b610dd8565b610d40565b610cf2565b610cae565b610c42565b610a56565b610988565b610960565b610927565b61088a565b6107a5565b61076b565b61070f565b61064d565b61054c565b346105105760203660031901126105105760043563ffffffff60e01b811680910361051057602090637965db0b60e01b81149081156104ff575b506040519015158152f35b6301ffc9a760e01b1490505f6104f4565b5f80fd5b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b906020610549928181520190610514565b90565b34610510575f366003190112610510576040515f5f805160206154d383398151915280549061057a826128d3565b8085529160209160019182811690811561060f57506001146105b7575b6105b3866105a781880382610b86565b60405191829182610538565b0390f35b5f90815293507f2ae08a8e29253f69ac5d979a101956ab8f8d9d7ded63fa7a83b16fc47648eab05b8385106105fc575050505081016020016105a7826105b35f610597565b80548686018401529382019381016105df565b90508695506105b3969350602092506105a794915060ff191682840152151560051b82010192935f610597565b6001600160a01b0381160361051057565b346105105760403660031901126105105760043561066a8161063c565b60243533156106f7576001600160a01b0382169182156106df576106a78291610692336119a6565b9060018060a01b03165f5260205260405f2090565b556040519081527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560203392a3602060405160018152f35b604051634a1406b160e11b81525f6004820152602490fd5b60405163e602df0560e01b81525f6004820152602490fd5b34610510575f3660031901126105105760206040517fc6aaadd7371d5e8f9ed6849dd66a66573a3ba37167d03f4352c9ba5693678fac8152f35b34610510575f366003190112610510576020610763614003565b604051908152f35b34610510575f3660031901126105105760206040517f9c56d972d63cbb4195b3c1484691dfc220fa96a4c47e7b6613bd82a022029e068152f35b34610510576040366003190112610510576004356107c28161063c565b602435906107ce612e1a565b6001600160a01b0381161561087957335f908152600e602052604090206107f9906140f0565b6140f0565b82116108675761081961080a61407c565b610812614003565b9084614164565b918215610852578261082a92612e49565b9061084160015f805160206155b383398151915255565b604080519182526020820192909252f35b60405160016245ddc760e11b03198152600490fd5b604051632418411f60e11b8152600490fd5b6040516208978560e71b8152600490fd5b34610510576060366003190112610510576004356108a78161063c565b6024356108b38161063c565b604435906108c433610692856119a6565b5492600184016108e5575b6108d99350612fd9565b60405160018152602090f35b828410610901576108fc836108d99503338361413d565b6108cf565b604051637dc7a0d960e11b81523360048201526024810185905260448101849052606490fd5b34610510576020366003190112610510576004355f525f805160206155938339815191526020526020600160405f200154604051908152f35b34610510575f366003190112610510576001546040516001600160a01b039091168152602090f35b34610510575f366003190112610510576109a0612b3f565b8015610a015760015465ffffffffffff8160a01c16915f1981019081116109fc576109ce9160d01c9061293a565b81018091116109fc576109e36105b391613138565b60405165ffffffffffff90911681529081906020820190565b61290b565b604051639fa56a5b60e01b8152600490fd5b600435906001600160401b038216820361051057565b9181601f84011215610510578235916001600160401b038311610510576020838186019501011161051057565b3461051057604036600319011261051057610a6f610a13565b6001600160401b0360243581811161051057610a8f903690600401610a29565b5050610a99612e1a565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163303610b15575f805160206155d3833981519152549060ff8260401c16928315610b05575b505050610af3575f80fd5b60405163f92ee8a960e01b8152600490fd5b81169116101590505f8080610ae8565b604051631966391b60e11b8152600490fd5b65ffffffffffff81160361051057565b634e487b7160e01b5f52604160045260245ffd5b606081019081106001600160401b03821117610b6657604052565b610b37565b604081019081106001600160401b03821117610b6657604052565b90601f801991011681019081106001600160401b03821117610b6657604052565b6040519061016082018281106001600160401b03821117610b6657604052565b60405190610bd482610b6b565b565b6001600160401b038111610b6657601f01601f191660200190565b929192610bfd82610bd6565b91610c0b6040519384610b86565b829481845281830111610510578281602093845f960137010152565b9080601f830112156105105781602061054993359101610bf1565b3461051057606036600319011261051057600435610c5f8161063c565b60243590610c6c82610b27565b604435906001600160401b03821161051057602092610c92610763933690600401610c27565b6001600160a01b039092165f908152600e855260409020613331565b34610510575f366003190112610510576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461051057604036600319011261051057610d3e602435600435610d158261063c565b805f525f80516020615593833981519152602052610d39600160405f200154613508565b613808565b005b34610510575f366003190112610510575f5460405163313ce56760e01b8152906020908290600490829060101c6001600160a01b03165afa8015610dd3575f90610d95575b60405160ff919091168152602090f35b506020813d602011610dcb575b81610daf60209383610b86565b81010312610510575160ff81168103610510576105b390610d85565b3d9150610da2565b612989565b3461051057604036600319011261051057602435610df58161063c565b336001600160a01b03821603610e1157610d3e9060043561383e565b60405163334bd91960e11b8152600490fd5b34610510575f3660031901126105105760ff60025460a01c1680610e4f575b6020906040519015158152f35b5060035460a01c60ff16610e42565b8015150361051057565b3461051057602036600319011261051057600435610e8581610e5e565b610e8d612e1a565b610e956133fd565b5f54901515908160ff8216151514610ef15760ff191660ff8216175f556040519081527f3e12b7b36c75ac9609a3f58609b331210428e1a85909132638955ba0301eec3390602090a160015f805160206155b383398151915255005b60405163a741a04560e01b8152600490fd5b34610510575f36600319011261051057602065ffffffffffff60015460a01c16604051908152f35b3461051057604080600319360112610510576004803591610f4b8361063c565b610f53612e1a565b6001600160a01b0391838316908115611205575f5460ff8116806111ec575b6111dd5783516370a0823160e01b808252308483019081529096602093909160109190911c82169084908490819083010381845afa928315610dd3575f936111ba575b50610fc790602435903090339061453d565b5f5486519788523085890190815290979184918391908290819060200103918b60101c165afa908115610dd357611006935f9261118d575b505061292d565b93841561117e5760081c60ff1680611169575b61115b5750906105b3916110ca61102e61407c565b9561107761103a614003565b6110626110488a838b614164565b9961105c8a61105642613138565b9261295b565b90613c9e565b50506110718961105642613138565b90613d7e565b50506001600160a01b0381165f908152600e60205260409020906110c4886110bf6107f46110a442613138565b6001600160a01b039095165f908152600e6020526040902090565b61295b565b91613e5a565b5050815184815260208101869052819033907fdcbc1c05240f31ff3ad067ef1ee35ce4997762752e3a095284754544f4c709d790604090a361111860015f805160206155b383398151915255565b81518581525f907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90602090a35191825260208201929092529081906040820190565b8251632484557960e01b8152fd5b50611176846110bf61407c565b815410611019565b50825163070f6eed60e11b8152fd5b6111ac9250803d106111b3575b6111a48183610b86565b8101906138d0565b5f80610fff565b503d61119a565b610fc79193506111d690853d87116111b3576111a48183610b86565b9290610fb5565b5082516304f63b8560e01b8152fd5b50335f9081526005602052604090205460ff1615610f72565b8251630d534ce360e11b8152fd5b34610510575f36600319011261051057602060ff5f54166040519015158152f35b34610510575f36600319011261051057602060015460d01c604051908152f35b34610510575f36600319011261051057602060ff60025460a01c166040519015158152f35b9060406003198301126105105760043561129281610b27565b91602435906001600160401b0382116105105761054991600401610c27565b346105105760206107636112c436611279565b9061319b565b34610510576020366003190112610510576004356112e781610e5e565b6112ef612e1a565b6112f761345a565b5f54901515908160ff8260081c16151514610ef15761ff001916600882901b61ff0016175f556040519081527ffa7a25a0b611d4ba3c0ea990e90dc23d484a5dd7a1be4733fef2946ba74530c690602090a1610d3e60015f805160206155b383398151915255565b34610510575f3660031901126105105760206001600160401b035f805160206155d38339815191525416604051908152f35b34610510576060366003190112610510576113aa610a13565b6024356113b68161063c565b6001600160401b0391604435838111610510576113d7903690600401610a29565b5f805160206155d38339815191529491855494838616806114b85760ff8760401c169081156114ab575b50610af3577fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2966114a69661146e958716906001600160401b0319161790556114695f805160206155d3833981519152600160401b68ff000000000000000019825416179055565b612994565b5f805160206155d3833981519152805468ff0000000000000000191690556040516001600160401b0390911681529081906020820190565b0390a1005b905084861611155f611401565b60405162dc149f60e41b8152600490fd5b346105105760203660031901126105105760206107636004356114eb8161063c565b612aa8565b34610510576020366003190112610510576004355f526006602052602060405f2054604051908152f35b34610510575f3660031901126105105760015465ffffffffffff611550818360a01c1692611546612b3f565b9060d01c9061293a565b82018092116109fc57611564602092613138565b60405191168152f35b34610510575f366003190112610510576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b34610510575f36600319011261051057602060ff60035460a01c166040519015158152f35b34610510576020366003190112610510576004356115f38161063c565b60018060a01b03165f52600e602052602061076360405f206140f0565b34610510575f36600319011261051057611628613abc565b5f8051602061553383398151915280546001600160a01b031981169091555f906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b346105105760403660031901126105105760043560243561169781610b27565b61169f612e1a565b6003546116bc906001600160a01b03165b6001600160a01b031690565b3303611939576116ca612b3f565b906116d481612b73565b9082151580611928575b801561191f575b61190d576105b3937ff9d090c096f71cd1659861a9ce5b6f384bceb4e2fa4e4a19edf6489a9b8d56c79261171761407c565b946117326117248261294d565b5f52600660205260405f2090565b54908281036118265750611746818761295b565b6117508185613af4565b9687806117df575b50505050505b836117ab575b6040805191825265ffffffffffff929092166020820152908101839052606090a161179b60015f805160206155b383398151915255565b6040519081529081906020820190565b5f546117da9085906117c89060101c6001600160a01b03166116b0565b6001546001600160a01b031690613f18565b611764565b61181b93610fff8361105c6118056117fe611724986118159888613b10565b809661292d565b9461180f42613138565b9261292d565b9261294d565b555f80808087611758565b915061183a825f52600660205260405f2090565b549061184a816110bf848a61295b565b906118558286613af4565b9788611866575b505050505061175e565b6118db938361188e9361189b8c6118966118846118cc998884613b10565b9788958584613b10565b94859261292d565b61292d565b938484106118e6575b610fff9061105c6118ba95969761180f42613138565b6118c66117248761294d565b5561292d565b915f52600660205260405f2090565b555f8080808061185c565b91611902610fff916118fc866118ba979861292d565b9061295b565b8594509290506118a4565b604051635e18d2a560e01b8152600490fd5b508282116116e5565b506119328361291f565b82106116de565b60405163dabc4ad960e01b8152600490fd5b34610510575f3660031901126105105760015465ffffffffffff808260a01c1691611974612b3f565b600181018091116109fc576115509160d01c9061293a565b34610510575f366003190112610510576020610763612b3f565b6001600160a01b03165f9081527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace016020526040902090565b34610510576020366003190112610510576004356119fb8161063c565b60018060a01b03165f526005602052602060ff60405f2054166040519015158152f35b34610510576020366003190112610510576020610763600435611a4081610b27565b612b73565b3461051057604036600319011261051057600435611a628161063c565b6024356001600160401b038082116105105736602383011215610510578160040135908111610510573660248260051b84010111610510576105b392602461179b930190612bae565b34610510576020610763611abe36611279565b9061327c565b3461051057602080600319360112610510576004803590611ae48261063c565b611aec612e1a565b60025460a01c60ff16611c6e576040516302910f8b60e31b81526001600160a01b03838116838301908152909491908290829081906020010381887f0000000000000000000000000000000000000000000000000000000000000000165afa908115610dd3575f91611c41575b5015611c315760405163fbfa77cf60e01b8152838516949082818581895afa928315610dd3575f93611c02575b505030911603611bf35750600280546001600160a01b03929092166001600160a81b031990921691909117600160a01b1790557fdb2160616f776a37b24808115554e79439bf26cccbbd4438190cc6d28e80ecd15f80a2610d3e60015f805160206155b383398151915255565b60405163b9f0f17160e01b8152fd5b611c22929350803d10611c2a575b611c1a8183610b86565b810190612d07565b905f80611b86565b503d611c10565b506040516324e5af8d60e21b8152fd5b611c619150823d8411611c67575b611c598183610b86565b810190612ce7565b5f611b59565b503d611c4f565b604051631380833b60e01b8152fd5b34610510575f366003190112610510576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b34610510575f36600319011261051057611cd9612b3f565b611ce161407c565b90805f52600660205260405f205482018092116109fc57600181018091116109fc575f52600660205260405f205481018091116109fc57602090604051908152f35b34610510575f366003190112610510575f80516020615533833981519152546040516001600160a01b039091168152602090f35b3461051057604036600319011261051057602060ff611da9602435611d7b8161063c565b6004355f525f80516020615593833981519152845260405f209060018060a01b03165f5260205260405f2090565b54166040519015158152f35b34610510575f366003190112610510576040515f5f80516020615513833981519152805490611de3826128d3565b8085529160209160019182811690811561060f5750600114611e0f576105b3866105a781880382610b86565b5f90815293507f46a2803e59a4de4e7a4c574b1243f25977ac4c77d5a1a4a609b5394cebb4a2aa5b838510611e54575050505081016020016105a7826105b35f610597565b8054868601840152938201938101611e37565b3461051057604036600319011261051057600435611e848161063c565b6024356001600160401b038111610510575f91611ea683923690600401610a29565b90816040519283928337810184815203915af4611ef3611ec4612d1c565b91611ee5604051938492151560208401526040808401526060830190610514565b03601f198101835282610b86565b805190602001fd5b34610510575f36600319011261051057602060ff5f5460081c166040519015158152f35b34610510575f3660031901126105105760206040515f8152f35b34610510575f3660031901126105105760206040517f4a634bc14d77baf979756509ef4298c6f6318af357828612545267ee2eb792338152f35b3461051057604036600319011261051057600435611f908161063c565b602435611f9c81610e5e565b611fa4612e1a565b611fac6134b1565b6001600160a01b038216918215612054575f8381526005602052604090205460ff16151582151514610ef1576001600160a01b03165f9081526005602052604090207ff991b1ecfb5115cbb36a2b2e2240c058406d2acc2fcc6e9e2dc99d845ff70a629161203b91612029908260ff801983541691151516179055565b60405190151581529081906020820190565b0390a2610d3e60015f805160206155b383398151915255565b604051630da30f6560e31b8152600490fd5b346105105760403660031901126105105760206120aa6024356120888161063c565b6004355f526008835260405f209060018060a01b03165f5260205260405f2090565b54604051908152f35b3461051057604036600319011261051057602060ff611da96024356120d78161063c565b6004355f526009845260405f209060018060a01b03165f5260205260405f2090565b34610510576040366003190112610510576121236004356121198161063c565b6024359033612fd9565b602060405160018152f35b346105105760208060031936011261051057600480359061214e8261063c565b612156612e1a565b60035460a01c60ff166122d6576001600160a01b038281169390846121c4575b6003805460ff60a01b1916600160a01b179055847fe7e4c932e03abddfe20f83af42c33627e816115c7ec2b168441f65dc14bfc3ba5f80a2610d3e60015f805160206155b383398151915255565b6040516302910f8b60e31b81526001600160a01b0385168482019081528390829081906020010381857f0000000000000000000000000000000000000000000000000000000000000000165afa908115610dd3575f916122b9575b50156122a85760405163fbfa77cf60e01b815282818581895afa928315610dd3575f93612289575b50503091160361227a5750600380546001600160a01b0319166001600160a01b039092169190911790555f808080612176565b604051633f3e089160e21b8152fd5b6122a0929350803d10611c2a57611c1a8183610b86565b905f80612247565b60405163dabc4ad960e01b81528390fd5b6122d09150833d8511611c6757611c598183610b86565b5f61221f565b60405163703fe2e560e01b8152fd5b34610510576040366003190112610510576004356123028161063c565b6024359061230e612e1a565b6001600160a01b03918183169081156123945761233f6105b39461233183613f67565b9485915f5460101c16613f18565b604080519182526020820184905233917f865ca08d59f5cb456e85cd2f7ef63664ea4f73327414e9d8152c4158b0e946459190a360015f805160206155b3833981519152556040519081529081906020820190565b604051634e46966960e11b8152600490fd5b34610510576020366003190112610510576004355f526007602052602060405f2054604051908152f35b34610510575f366003190112610510576003546040516001600160a01b039091168152602090f35b34610510575f36600319011261051057602061076361407c565b346105105760203660031901126105105760043561242e612e1a565b335f9081527f2d4ccbfe9f7672a6f2537c1e5bce6adacb73706879154bbab6ce096012d6721660205260409020547f4a634bc14d77baf979756509ef4298c6f6318af357828612545267ee2eb792339060ff16156124d257508060045414610ef1576020817f854df3eb95564502c8bc871ebdd15310ee26270f955f6c6bd8cea68e75045bc092600455604051908152a160015f805160206155b383398151915255005b6044906040519063e2517d3f60e01b82523360048301526024820152fd5b346105105760203660031901126105105760043561250d8161063c565b612515612b3f565b61251e82612aa8565b916125298183612dbc565b83018093116109fc57600182018092116109fc5761254691612dbc565b81018091116109fc57602090604051908152f35b34610510575f366003190112610510576002546040516001600160a01b039091168152602090f35b3461051057604036600319011261051057610d3e6024356004356125a58261063c565b805f525f805160206155938339815191526020526125c9600160405f200154613508565b61383e565b34610510575f366003190112610510575f5460405160109190911c6001600160a01b03168152602090f35b34610510575f3660031901126105105760206040517fbae4ee3de6c709ff9a002e774c5b78cb381560b219213c88ae0f1e207c03c0238152f35b346105105760403660031901126105105760206120aa6004356126558161063c565b610692602435916126658361063c565b6119a6565b34610510575f366003190112610510576020600454604051908152f35b34610510576060366003190112610510576004356126a48161063c565b602435906126b182610b27565b6001600160401b0391604435838111610510576126d2903690600401610a29565b909260409384516126e281610b4b565b60608152606060208201526060868201529280612741575b6105b386612732878761272c6127138984845191612968565b928561272360208501518361327c565b9301519061319b565b91614164565b90519081529081906020820190565b8101939250602081850312610510578035908682116105105701926060848203126105105784519561277287610b4b565b84358181116105105782612787918701610c27565b8752602085013581811161051057826127a1918701610c27565b602088015285850135908111610510576105b3966127ca61272c93612713936127329801610c27565b878201529394506126fa565b3461051057602036600319011261051057610d3e6004356127f68161063c565b6127fe613abc565b612d4b565b34610510576040366003190112610510576004356128208161063c565b60243561282b612e1a565b6001600160a01b038216156108795780156128975761285a61284b614003565b61285361407c565b9083614c31565b335f908152600e60205260409020909290612874906140f0565b83116128855761082a918391612e49565b6040516321727a3760e11b8152600490fd5b604051636c6c627d60e11b8152600490fd5b346105105760403660031901126105105760206107636024356128cb8161063c565b600435612dbc565b90600182811c92168015612901575b60208310146128ed57565b634e487b7160e01b5f52602260045260245ffd5b91607f16916128e2565b634e487b7160e01b5f52601160045260245ffd5b5f198101919082116109fc57565b919082039182116109fc57565b818102929181159184041417156109fc57565b90600182018092116109fc57565b919082018092116109fc57565b6001600160a01b03165f908152600e60205260409020610549929190613331565b6040513d5f823e3d90fd5b916129d1926129a1614595565b6129a9614595565b60015f805160206155b3833981519152556001600160a01b038116612a8e575b503691610bf1565b80516020908201818101828483031261051057828401516001600160401b039485821161051057019283926101a093849103126105105760405193612a1585610b4b565b612a21838383016138ea565b8552610180810151868111610510578383612a3e928401016139b3565b9382860194855281015195861161051057612a66612a859383610bd498612a809401016139b3565b94604081019586525191611ee560405193849283016139f9565b6145d8565b51905190614994565b612aa290612a9a614595565b6127fe614595565b5f6129c9565b6001600160a01b03165f908152600e60205260409020612ac7906140f0565b612acf61407c565b612ad7614003565b90600181018091116109fc57600182018092116109fc5761054992613b10565b65ffffffffffff91821690821603919082116109fc57565b634e487b7160e01b5f52601260045260245ffd5b9065ffffffffffff809116918215612b3a57160490565b612b0f565b612b4842613138565b612b6f600154612b6565ffffffffffff93848360a01c1690612af7565b9060d01c90612b23565b1690565b6001549065ffffffffffff91828160a01c16918284821610612b9c57612b6f92612b6591612af7565b60405163b7d0949760e01b8152600490fd5b90612bb7612e1a565b5f926001600160a01b038316928315612394578115612c6f575f5b828110612c4d57505f547f326b6aff1cd2fb1c8234de4f9dcfb9047c5c36eb9ef2eb34af5121e969a75d279286929091612c22918491612c1d9060101c6001600160a01b03166116b0565b613f18565b612c33604051928392339684612caa565b0390a390610bd460015f805160206155b383398151915255565b94612c686001916118fc612c62898789612c95565b35613f67565b9501612bd2565b60405163edf3b93360e01b8152600490fd5b634e487b7160e01b5f52603260045260245ffd5b9190811015612ca55760051b0190565b612c81565b604080825281018390529392916001600160fb1b0381116105105760209160609160051b809183880137850101930152565b5190610bd482610e5e565b90816020910312610510575161054981610e5e565b5190610bd48261063c565b9081602091031261051057516105498161063c565b3d15612d46573d90612d2d82610bd6565b91612d3b6040519384610b86565b82523d5f602084013e565b606090565b6001600160a01b03908116908115612da4575f8051602061553383398151915280546001600160a01b031981168417909155167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3565b604051631e4fbdf760e01b81525f6004820152602490fd5b90612de290825f52600860205260405f209060018060a01b03165f5260205260405f2090565b54905f52600660205260405f2054600760205260405f205490600181018091116109fc57600182018092116109fc5761054992613b10565b5f805160206155b38339815191526002815414612e375760029055565b604051633ee5aeb560e01b8152600490fd5b335f908152600e6020526040812093949390929190612e8890612e6b42613138565b335f908152600e602052604090206110c4908990611896906140f0565b5050612ea2612e9642613138565b61107187611896614003565b5050612ebc612eb042613138565b61105c8461189661407c565b505081612f4e82610692612ed6612ed1612b3f565b61294d565b612f2d612eeb825f52600660205260405f2090565b54612efe835f52600760205260405f2090565b54612f15612f0d83838b614164565b9a8b9361295b565b612f27855f52600660205260405f2090565b5561295b565b612f3f825f52600760205260405f2090565b555f52600860205260405f2090565b612f5984825461295b565b9055604080519182526020820187905281018390526001600160a01b03919091169033907febff2602b3f468259e1e99f613fed6691f3a6526effe6ef3e768ba7ae7a36c4f90606090a36040519384529233907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9080602081015b0390a3565b916001600160a01b0380841692908315613120578116938415613108576001600160a01b0381165f908152600e60205260409020613016906140f0565b908382106130d657612fd4926130787fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef95936130656130c49460018060a01b03165f52600e60205260405f2090565b908561307042613138565b910391613e5a565b50506001600160a01b0381165f908152600e6020526040902090836130bd6107f46130a242613138565b6001600160a01b039094165f908152600e6020526040902090565b0191613e5a565b50506040519081529081906020820190565b60405163391434e360e21b81526001600160a01b03919091166004820152602481019190915260448101839052606490fd5b60405163ec442f0560e01b81525f6004820152602490fd5b604051634b637e8f60e11b81525f6004820152602490fd5b65ffffffffffff9081811161314b571690565b604490604051906306dfcc6560e41b8252603060048301526024820152fd5b90816020910312610510575163ffffffff811681036105105790565b90600163ffffffff809316019182116109fc57565b9080511561327257806020806131b69351830101910161316a565b6131bf816143d5565b906131d0825165ffffffffffff1690565b9065ffffffffffff80851692168281146132665782119182613206575b50506131fd575061054990614185565b60209150015190565b909150613214600a5461291f565b63ffffffff83161491821561322d575b50505f806131ed565b61325e91925061324761324261325392613186565b6143d5565b5165ffffffffffff1690565b65ffffffffffff1690565b115f80613224565b50505060209150015190565b5061054990614185565b9080511561332757806020806132979351830101910161316a565b6132a08161445a565b906132b1825165ffffffffffff1690565b9065ffffffffffff808516921682811461326657821191826132de575b50506131fd57506105499061424c565b9091506132ec600c5461291f565b63ffffffff831614918215613305575b50505f806132ce565b61331f91925061324761331a61325392613186565b61445a565b115f806132fc565b506105499061424c565b918051156133f3578060208061334c9351830101910161316a565b9161335783826144d5565b92613368845165ffffffffffff1690565b9065ffffffffffff80851692168281146133e7578211918261339e575b505061339557610549925061430c565b50506020015190565b9091506133ab835461291f565b63ffffffff8316149182156133c4575b50505f80613385565b6133df9192506132476133d961325392613186565b856144d5565b115f806133bb565b50505050506020015190565b506105499161430c565b335f9081527f03b26b53c87faa1058f30bb5d2fee64f717719a0d9b7e4f4df027aa5e9b6ed69602052604090207fbae4ee3de6c709ff9a002e774c5b78cb381560b219213c88ae0f1e207c03c0239060ff905b5416156124d25750565b335f9081527fe41986b390c4ce6791b87f7423b5fab7a81a0e6d89660b6264f697d008b2243a602052604090207fc6aaadd7371d5e8f9ed6849dd66a66573a3ba37167d03f4352c9ba5693678fac9060ff90613450565b335f9081527f0287ab4cb376ea253d7b2ce0c2cbf458f7deae9458470d74afdfbbee484e9540602052604090207f9c56d972d63cbb4195b3c1484691dfc220fa96a4c47e7b6613bd82a022029e069060ff90613450565b5f8181525f8051602061559383398151915260209081526040808320338452909152902060ff90613450565b6001600160a01b0381165f9081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d60205260409020545f805160206155938339815191529060ff166135df575f808052602091825260408082206001600160a01b038516835290925220805460ff1916600117905533906001600160a01b03165f7f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d8180a4600190565b50505f90565b6001600160a01b0381165f9081527f03b26b53c87faa1058f30bb5d2fee64f717719a0d9b7e4f4df027aa5e9b6ed69602052604090207fbae4ee3de6c709ff9a002e774c5b78cb381560b219213c88ae0f1e207c03c023905f805160206155938339815191529060ff905b54166136b4575f828152602091825260408082206001600160a01b038616835290925220805460ff1916600117905533916001600160a01b0316907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d5f80a4600190565b5050505f90565b6001600160a01b0381165f9081527f0287ab4cb376ea253d7b2ce0c2cbf458f7deae9458470d74afdfbbee484e9540602052604090207f9c56d972d63cbb4195b3c1484691dfc220fa96a4c47e7b6613bd82a022029e06905f805160206155938339815191529060ff90613650565b6001600160a01b0381165f9081527fe41986b390c4ce6791b87f7423b5fab7a81a0e6d89660b6264f697d008b2243a602052604090207fc6aaadd7371d5e8f9ed6849dd66a66573a3ba37167d03f4352c9ba5693678fac905f805160206155938339815191529060ff90613650565b6001600160a01b0381165f9081527f2d4ccbfe9f7672a6f2537c1e5bce6adacb73706879154bbab6ce096012d67216602052604090207f4a634bc14d77baf979756509ef4298c6f6318af357828612545267ee2eb79233905f805160206155938339815191529060ff90613650565b5f8181525f80516020615593833981519152602081815260408084206001600160a01b038716855290915290912060ff90613650565b5f8181525f80516020615593833981519152602081815260408084206001600160a01b03871685529091529091205460ff16156136b4575f828152602091825260408082206001600160a01b038616835290925220805460ff1916905533916001600160a01b0316907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b5f80a4600190565b90816020910312610510575190565b5190610bd482610b27565b919082610160910312610510576138ff610ba7565b9161390981612cfc565b835261391760208201612cfc565b6020840152613928604082016138df565b604084015261393960608201612cdc565b606084015261394a60808201612cdc565b608084015260a081015160a084015261396560c08201612cfc565b60c084015261397660e08201612cfc565b60e0840152610100613989818301612cfc565b9084015261012061399b818301612cfc565b908401526139ad610140809201612cfc565b90830152565b81601f82011215610510578051906139ca82610bd6565b926139d86040519485610b86565b8284526020838301011161051057815f9260208093018386015e8301015290565b81516001600160a01b0316815261016081019291610bd491906020818101516001600160a01b03169083015260408181015165ffffffffffff169083015260608181015115159083015260808181015115159083015260a0818101519083015260c0808201516001600160a01b03169083015260e0818101516001600160a01b031690830152610100818101516001600160a01b031690830152610120818101516001600160a01b031690830152610140908101516001600160a01b0316910152565b5f80516020615533833981519152546001600160a01b03163303613adc57565b60405163118cdaa760e01b8152336004820152602490fd5b9080821015613b01575090565b905090565b8115612b3a570490565b9091828202915f1984820993838086109503948086039514613b955784831115613b8357829109815f038216809204600280826003021880830282030280830282030280830282030280830282030280830282030280920290030293600183805f03040190848311900302920304170290565b60405163227bc15360e01b8152600490fd5b5050906105499250613b06565b600b54811015612ca557600b5f525f8051602061557383398151915201905f90565b600d54811015612ca557600d5f525f8051602061555383398151915201905f90565b8054821015612ca5575f5260205f2001905f90565b600d54600160401b811015610b66576001810180600d55811015612ca557600d5f525f805160206155538339815191520155565b600b54600160401b811015610b66576001810180600b55811015612ca557600b5f525f805160206155738339815191520155565b90815491600160401b831015610b665782613c86916001610bd495018155613be6565b90919082549060031b91821b915f19901b1916179055565b919091600d9081548015613d49575b50613cb6614add565b50929091815492613cc561407c565b9481613d34575b5015613d1157505f1982018281116109fc5781541115612ca5575f527fd7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb4018390559190565b613d25926001600160d01b03169150614f65565b5050613d3083613bfb565b9190565b65ffffffffffff83811691161490505f613ccc565b600160401b811015610b665760018101808455811015612ca5575f908382525f8051602061555383398151915201555f613cad565b919091600b9081548015613e25575b50613d96614b48565b50929091815492613da5614003565b9481613e10575b5015613df157505f1982018281116109fc5781541115612ca5575f527f0175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db8018390559190565b613e05926001600160d01b03169150615065565b5050613d3083613c2f565b65ffffffffffff83811691161490505f613dac565b600160401b811015610b665760018101808455811015612ca5575f908382525f8051602061557383398151915201555f613d8d565b90929192600182019081548015613ee8575b5084613e7784614b92565b50949092845493613e87836140f0565b9681613ed3575b5015613eb0575050505f1981019081116109fc57613c868591613d3093613be6565b613d30949293613ecc926001600160d01b03909116919061510f565b5050613c63565b65ffffffffffff83811691161490505f613e8e565b600160401b811015610b6657806001613f049201845583613be6565b8154905f199060031b1b191690555f613e6c565b60405163a9059cbb60e01b60208201526001600160a01b03909216602483015260448083019390935291815260808101916001600160401b03831182841017610b6657610bd492604052614bc0565b90613f70612b3f565b821015613ff1575f82815260096020908152604080832033845290915290205460ff16613fdf57613fa13383612dbc565b918215613fcd575f9081526009602090815260408083203384529091529020805460ff19166001179055565b6040516366c0bcbf60e11b8152600490fd5b604051630c8d9eab60e31b8152600490fd5b60405163d5b25b6360e01b8152600490fd5b600a548061404357505f5b6001600160d01b0381161561403e57600b54811015612ca557600b5f525f80516020615573833981519152015490565b505f90565b805f198101116109fc57600a5f527fc65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a7015460301c61400e565b600c54806140b757505f5b6001600160d01b0381161561403e57600d54811015612ca557600d5f525f80516020615553833981519152015490565b805f198101116109fc57600c5f527fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c6015460301c614087565b80548061411f57505f5b6001600160d01b038116156135df5760016141159201613be6565b90549060031b1c90565b5f199080828101116109fc57825f5260205f2001015460301c6140fa565b906001600160a01b03808316156106f7578116156106df57610692614161926119a6565b55565b9190600181018091116109fc57600182018092116109fc5761054992613b10565b600a54905f8291600584116141f3575b61419f935061531b565b806141c257505f5b6001600160d01b0381161561403e5761411561054991613ba2565b6141e76141d16141ee9261291f565b600a5f525f805160206154f38339815191520190565b5460301c90565b6141a7565b91926141fe816151e2565b81039081116109fc5761419f93600a5f5265ffffffffffff80835f805160206154f3833981519152015416908516105f1461423a575091614195565b9291506142469061294d565b90614195565b600c54905f8291600584116142b3575b6142669350615384565b8061428957505f5b6001600160d01b0381161561403e5761411561054991613bc4565b6141e76142986142ae9261291f565b600c5f525f805160206154b38339815191520190565b61426e565b91926142be816151e2565b81039081116109fc5761426693600c5f5265ffffffffffff80835f805160206154b3833981519152015416908516105f146142fa57509161425c565b9291506143069061294d565b9061425c565b908154905f82916005841161436f575b6143279350846153ed565b8061434f57505f905b6001600160d01b038216156135df576105499160016141159201613be6565b6141e761435e6143699261291f565b835f5260205f200190565b90614330565b919261437a816151e2565b81039081116109fc5761432793855f5265ffffffffffff808360205f20015416908516105f146143ab57509161431c565b9291506143b79061294d565b9061431c565b604051906143ca82610b6b565b5f6020838281520152565b6143dd6143bd565b506143e66143bd565b50600a54811015612ca55761440d90600a5f525f805160206154f383398151915201614ab9565b65ffffffffffff81511690602060018060d01b0391015116600b54811015612ca557600b5f525f8051602061557383398151915201546040519161445083610b6b565b8252602082015290565b6144626143bd565b5061446b6143bd565b50600c54811015612ca55761449290600c5f525f805160206154b383398151915201614ab9565b65ffffffffffff81511690602060018060d01b0391015116600d54811015612ca557600d5f525f8051602061555383398151915201546040519161445083610b6b565b906144fe6144f861451f926144e86143bd565b506144f16143bd565b5084613be6565b50614ab9565b91600165ffffffffffff845116936020828060d01b03910151169101613be6565b9054906040519261452f84610b6b565b835260031b1c602082015290565b6040516323b872dd60e01b60208201526001600160a01b03928316602482015292909116604483015260648083019390935291815260a08101918183106001600160401b03841117610b6657610bd492604052614bc0565b60ff5f805160206155d38339815191525460401c16156145b157565b604051631afcd79f60e31b8152600490fd5b906101608282031261051057610549916138ea565b6145eb90602080825183010191016145c3565b80516001600160a01b03919082161561498257604080820165ffffffffffff61461a825165ffffffffffff1690565b16156149715760c08301805190929061463b906001600160a01b03166116b0565b15614822575b509161476e6101409261470d6146e86147cc9661468f614667875160018060a01b031690565b5f805462010000600160b01b03191660109290921b62010000600160b01b0316919091179055565b6020860151600180546001600160a01b0319166001600160a01b039092169190911790556132476146bf42613138565b6001805465ffffffffffff60a01b191660a09290921b65ffffffffffff60a01b16919091179055565b600180546001600160d01b031660d09290921b6001600160d01b031916919091179055565b61472d61471d6060850151151590565b60ff80195f541691151516175f55565b61475461473d6080850151151590565b61ff005f5491151560081b169061ff001916175f55565b61476160a0840151600455565b516001600160a01b031690565b848116614812575b5060e08101516001600160a01b0316848116614802575b506101008101516001600160a01b03168481166147f2575b506101208101516001600160a01b03168481166147e2575b5001516001600160a01b031690565b9081166147d65750565b6147df90613799565b50565b6147eb9061372a565b505f6147bd565b6147fb906136bb565b505f6147a5565b61480b906135e5565b505f61478d565b61481b90613534565b505f614776565b60e0840151614839906001600160a01b03166116b0565b1561490e575b610120840151614857906001600160a01b03166116b0565b614641576080840151156148c45760a084015115806148a5575b61489557509161476e6101409261470d6146e86147cc965b94965050509250614641565b5163183c854560e21b8152600490fd5b506101408401516148be906001600160a01b03166116b0565b15614871565b60a0840151158015906148ee575b61489557509161476e6101409261470d6146e86147cc96614889565b50610140840151614907906001600160a01b03166116b0565b15156148d2565b60608401511561494457610100840151614930906001600160a01b03166116b0565b61483f575163183c854560e21b8152600490fd5b61010084015161495c906001600160a01b03166116b0565b1561483f575163183c854560e21b8152600490fd5b81516368f5f8f160e11b8152600490fd5b6040516368f7a67560e11b8152600490fd5b919061499e614595565b6149a6614595565b82516001600160401b038111610b66575f805160206154d3833981519152906149d8816149d384546128d3565b614c71565b602080601f8311600114614a1f57509080614a0d92610bd496975f92614a14575b50508160011b915f199060031b1c19161790565b9055614d63565b015190505f806149f9565b90601f19831696614a5d5f805160206154d38339815191525f527f2ae08a8e29253f69ac5d979a101956ab8f8d9d7ded63fa7a83b16fc47648eab090565b925f905b898210614aa157505090839291600194610bd4989910614a89575b505050811b019055614d63565b01515f1960f88460031b161c191690555f8080614a7c565b80600185968294968601518155019501930190614a61565b90604051614ac681610b6b565b915465ffffffffffff8116835260301c6020830152565b600c5480614aee57505f905f905f90565b805f198101116109fc577fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c6614b2791600c5f5201614ab9565b9065ffffffffffff82511691602060018060d01b0391015116906001929190565b600a5480614b5957505f905f905f90565b805f198101116109fc577fc65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a7614b2791600a5f5201614ab9565b805480614ba35750505f905f905f90565b5f199080828101116109fc57614b27925f5260205f200101614ab9565b5f80614be89260018060a01b03169360208151910182865af1614be1612d1c565b908361544f565b8051908115159182614c16575b5050614bfe5750565b60249060405190635274afe760e01b82526004820152fd5b614c299250602080918301019101612ce7565b155f80614bf5565b9190600181018091116109fc57600182018092116109fc57614c54828285613b10565b928215612b3a5709614c635790565b600181018091116109fc5790565b601f8111614c7d575050565b5f805160206154d38339815191525f527f2ae08a8e29253f69ac5d979a101956ab8f8d9d7ded63fa7a83b16fc47648eab0906020601f840160051c83019310614ce0575b601f0160051c01905b818110614cd5575050565b5f8155600101614cca565b9091508190614cc1565b601f8111614cf6575050565b5f805160206155138339815191525f527f46a2803e59a4de4e7a4c574b1243f25977ac4c77d5a1a4a609b5394cebb4a2aa906020601f840160051c83019310614d59575b601f0160051c01905b818110614d4e575050565b5f8155600101614d43565b9091508190614d3a565b9081516001600160401b038111610b66575f8051602061551383398151915290614d9681614d9184546128d3565b614cea565b602080601f8311600114614dcb57508190614dc79394955f92614a145750508160011b915f199060031b1c19161790565b9055565b90601f19831695614e095f805160206155138339815191525f527f46a2803e59a4de4e7a4c574b1243f25977ac4c77d5a1a4a609b5394cebb4a2aa90565b925f905b888210614e4457505083600195969710614e2c575b505050811b019055565b01515f1960f88460031b161c191690555f8080614e22565b80600185968294968601518155019501930190614e0d565b600c5490600160401b821015610b66576001820180600c55821015612ca557600c5f52805160209091015160301b65ffffffffffff191665ffffffffffff91909116175f805160206154b383398151915290910155565b600a5490600160401b821015610b66576001820180600a55821015612ca557600a5f52805160209091015160301b65ffffffffffff191665ffffffffffff91909116175f805160206154f383398151915290910155565b8054600160401b811015610b6657614f2791600182018155613be6565b614f5257815160209092015160301b65ffffffffffff191665ffffffffffff92909216919091179055565b634e487b7160e01b5f525f60045260245ffd5b600c5491929190811561503c57614f86614f816142988461291f565b614ab9565b805165ffffffffffff838116949116841061502a5785602093613d3095614fb6613253865165ffffffffffff1690565b03614ff25750614fcb614298614fe49361291f565b9065ffffffffffff82549181199060301b169116179055565b01516001600160d01b031690565b90506150259150615012615004610bc7565b65ffffffffffff9092168252565b6001600160d01b03871681850152614e5c565b614fe4565b604051632520601d60e01b8152600490fd5b615060915061504c615004610bc7565b6001600160d01b0384166020820152614e5c565b5f9190565b600a549192919081156150eb57615081614f816141d18461291f565b805165ffffffffffff838116949116841061502a5785602093613d30956150b1613253865165ffffffffffff1690565b036150c65750614fcb6141d1614fe49361291f565b905061502591506150d8615004610bc7565b6001600160d01b03871681850152614eb3565b61506091506150fb615004610bc7565b6001600160d01b0384166020820152614eb3565b8054929392919082156151be5761512b614f8161435e8561291f565b9061513c825165ffffffffffff1690565b65ffffffffffff8481169116811061502a57613d3094602094889261516a613253875165ffffffffffff1690565b0361518b5750614fe492615180614fcb9261291f565b905f5260205f200190565b915050615025916151ab61519d610bc7565b65ffffffffffff9093168352565b6001600160d01b03881682860152614f0a565b61506092506151ce61519d610bc7565b6001600160d01b0385166020830152614f0a565b801561403e57806152b46152ad6152a361529961528f61528561527b61527160016105499a5f908b60801c8061530f575b508060401c80615302575b508060201c806152f5575b508060101c806152e8575b508060081c806152db575b508060041c806152ce575b508060021c806152c1575b50821c6152ba575b811c1b61526a818b613b06565b0160011c90565b61526a818a613b06565b61526a8189613b06565b61526a8188613b06565b61526a8187613b06565b61526a8186613b06565b61526a8185613b06565b8092613b06565b90613af4565b810161525d565b600291509101905f615255565b600491509101905f61524a565b600891509101905f61523f565b601091509101905f615234565b602091509101905f615229565b604091509101905f61521e565b9150506080905f615213565b905b82811061532957505090565b9091808216906001818418811c83018093116109fc57600a5f5265ffffffffffff80845f805160206154f3833981519152015416908616105f14615371575050915b9061531d565b9093925081018091116109fc579061536b565b905b82811061539257505090565b9091808216906001818418811c83018093116109fc57600c5f5265ffffffffffff80845f805160206154b3833981519152015416908616105f146153da575050915b90615386565b9093925081018091116109fc57906153d4565b91905b8382106153fd5750505090565b909192808316906001818518811c83018093116109fc57855f5265ffffffffffff808460205f20015416908516105f1461543c575050925b91906153f0565b9094935081018091116109fc5791615435565b90615476575080511561546457805190602001fd5b604051630a12f52160e11b8152600490fd5b815115806154a9575b615487575090565b604051639996b31560e01b81526001600160a01b039091166004820152602490fd5b50803b1561547f56fedf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c752c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace03c65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a852c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace049016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300d7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb50175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db902dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268009b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a264697066735822122061d21157d87e9623ddeb51ba19f8345edd1a00f8105d70e5232e62df8a9f97ed64736f6c63430008190033","sourceMap":"652:3172:97:-:0;;;;;;;;;;;;;-1:-1:-1;;652:3172:97;;;;;-1:-1:-1;;;;;652:3172:97;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;:::i;:::-;3173:36:96;;;3219:32;;8837:64:25;652:3172:97;;;;;;;;;7896:76:25;;652:3172:97;;;;7985:34:25;7981:146;;-1:-1:-1;927:17:71;;;;;652:3172:97;;;;;;;3173:36:96;652:3172:97;;;;;;;;;;3219:32:96;652:3172:97;;;;;;;;;;927:17:71;652:3172:97;;;;;;;;;;;7981:146:25;-1:-1:-1;;;;;;652:3172:97;;;;;;;;;;;;;8087:29:25;;652:3172:97;;8087:29:25;7981:146;;;;;7896:76;652:3172:97;;-1:-1:-1;;;7938:23:25;;;;;652:3172:97;-1:-1:-1;652:3172:97;;;;;;-1:-1:-1;652:3172:97;;;;;-1:-1:-1;652:3172:97;;;;-1:-1:-1;;;;;652:3172:97;;;;;;:::o","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361015610011575f80fd5b5f3560e01c806301ffc9a7146104ba57806306fdde03146104b5578063095ea7b3146104b05780631415519b146104ab57806318160ddd146103895780631b66c9e1146104a65780631e9a6950146104a157806323b872dd1461049c578063248a9ca31461049757806327810b6e14610492578063281f57521461048d5780632abe3048146104885780632d73c69c146104835780632dd310001461047e5780632f2ff15d14610479578063313ce5671461047457806336568abe1461046f578063392e53cd1461046a5780634105a7dd14610465578063463616711461046057806347e7ef241461045b57806348d3b775146104565780634ff0876a1461045157806350861adc1461044c57806350f22068146104475780635346e34f1461044257806354fd4d501461043d57806357ec83cc1461043857806359f769a9146104335780635cc070761461042e57806361a8c8c4146104295780636da3e06d146104245780636ec1e3f81461041f57806370a08231146103d4578063715018a61461041a5780637278e31c1461041557806373790ab314610410578063766718081461040b578063794b15b7146104065780637953b33b146104015780637c04c80a146103fc578063810da75d146103f757806383cd9cc3146103f257806387df0788146103ed5780638b0e9f3f146103e85780638da5cb5b146103e357806391d14854146103de57806395d89b41146103d95780639d66201b146103d45780639f86fd85146103cf578063a1b12202146103ca578063a217fddf146103c5578063a21a1df9146103c0578063a2861466146103bb578063a3b54172146103b6578063a5d03223146103b1578063a9059cbb146103ac578063aabc2496146103a7578063aad3ec96146103a2578063afba70ad1461039d578063b134427114610398578063bd49c35f14610393578063bdc8144b1461038e578063bfefcd7b14610389578063c31e8dd714610384578063ce9b79301461037f578063d547741f1461037a578063d8dfeb4514610375578063db38871514610370578063dd62ed3e1461036b578063ecf7085814610366578063efb559d614610361578063f2fde38b1461035c578063f3fef3a3146103575763f5e7ee0f14610352575f80fd5b6128a9565b612803565b6127d6565b612687565b61266a565b612633565b6125f9565b6125ce565b612582565b61255a565b6124f0565b610749565b612412565b6123f8565b6123d0565b6123a6565b6122e5565b61212e565b6120f9565b6120b3565b612066565b611f73565b611f39565b611f1f565b611efb565b611e67565b6115d6565b611db5565b611d57565b611d23565b611cc1565b611c7d565b611ac4565b611aab565b611a45565b611a1e565b6119de565b61198c565b61194b565b611677565b611610565b6115b1565b61156d565b61151a565b6114f0565b6114c9565b611391565b61135f565b6112ca565b6112b1565b611254565b611234565b611213565b610f2b565b610f03565b610e68565b610e23565b610dd8565b610d40565b610cf2565b610cae565b610c42565b610a56565b610988565b610960565b610927565b61088a565b6107a5565b61076b565b61070f565b61064d565b61054c565b346105105760203660031901126105105760043563ffffffff60e01b811680910361051057602090637965db0b60e01b81149081156104ff575b506040519015158152f35b6301ffc9a760e01b1490505f6104f4565b5f80fd5b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b906020610549928181520190610514565b90565b34610510575f366003190112610510576040515f5f805160206154d383398151915280549061057a826128d3565b8085529160209160019182811690811561060f57506001146105b7575b6105b3866105a781880382610b86565b60405191829182610538565b0390f35b5f90815293507f2ae08a8e29253f69ac5d979a101956ab8f8d9d7ded63fa7a83b16fc47648eab05b8385106105fc575050505081016020016105a7826105b35f610597565b80548686018401529382019381016105df565b90508695506105b3969350602092506105a794915060ff191682840152151560051b82010192935f610597565b6001600160a01b0381160361051057565b346105105760403660031901126105105760043561066a8161063c565b60243533156106f7576001600160a01b0382169182156106df576106a78291610692336119a6565b9060018060a01b03165f5260205260405f2090565b556040519081527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560203392a3602060405160018152f35b604051634a1406b160e11b81525f6004820152602490fd5b60405163e602df0560e01b81525f6004820152602490fd5b34610510575f3660031901126105105760206040517fc6aaadd7371d5e8f9ed6849dd66a66573a3ba37167d03f4352c9ba5693678fac8152f35b34610510575f366003190112610510576020610763614003565b604051908152f35b34610510575f3660031901126105105760206040517f9c56d972d63cbb4195b3c1484691dfc220fa96a4c47e7b6613bd82a022029e068152f35b34610510576040366003190112610510576004356107c28161063c565b602435906107ce612e1a565b6001600160a01b0381161561087957335f908152600e602052604090206107f9906140f0565b6140f0565b82116108675761081961080a61407c565b610812614003565b9084614164565b918215610852578261082a92612e49565b9061084160015f805160206155b383398151915255565b604080519182526020820192909252f35b60405160016245ddc760e11b03198152600490fd5b604051632418411f60e11b8152600490fd5b6040516208978560e71b8152600490fd5b34610510576060366003190112610510576004356108a78161063c565b6024356108b38161063c565b604435906108c433610692856119a6565b5492600184016108e5575b6108d99350612fd9565b60405160018152602090f35b828410610901576108fc836108d99503338361413d565b6108cf565b604051637dc7a0d960e11b81523360048201526024810185905260448101849052606490fd5b34610510576020366003190112610510576004355f525f805160206155938339815191526020526020600160405f200154604051908152f35b34610510575f366003190112610510576001546040516001600160a01b039091168152602090f35b34610510575f366003190112610510576109a0612b3f565b8015610a015760015465ffffffffffff8160a01c16915f1981019081116109fc576109ce9160d01c9061293a565b81018091116109fc576109e36105b391613138565b60405165ffffffffffff90911681529081906020820190565b61290b565b604051639fa56a5b60e01b8152600490fd5b600435906001600160401b038216820361051057565b9181601f84011215610510578235916001600160401b038311610510576020838186019501011161051057565b3461051057604036600319011261051057610a6f610a13565b6001600160401b0360243581811161051057610a8f903690600401610a29565b5050610a99612e1a565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163303610b15575f805160206155d3833981519152549060ff8260401c16928315610b05575b505050610af3575f80fd5b60405163f92ee8a960e01b8152600490fd5b81169116101590505f8080610ae8565b604051631966391b60e11b8152600490fd5b65ffffffffffff81160361051057565b634e487b7160e01b5f52604160045260245ffd5b606081019081106001600160401b03821117610b6657604052565b610b37565b604081019081106001600160401b03821117610b6657604052565b90601f801991011681019081106001600160401b03821117610b6657604052565b6040519061016082018281106001600160401b03821117610b6657604052565b60405190610bd482610b6b565b565b6001600160401b038111610b6657601f01601f191660200190565b929192610bfd82610bd6565b91610c0b6040519384610b86565b829481845281830111610510578281602093845f960137010152565b9080601f830112156105105781602061054993359101610bf1565b3461051057606036600319011261051057600435610c5f8161063c565b60243590610c6c82610b27565b604435906001600160401b03821161051057602092610c92610763933690600401610c27565b6001600160a01b039092165f908152600e855260409020613331565b34610510575f366003190112610510576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461051057604036600319011261051057610d3e602435600435610d158261063c565b805f525f80516020615593833981519152602052610d39600160405f200154613508565b613808565b005b34610510575f366003190112610510575f5460405163313ce56760e01b8152906020908290600490829060101c6001600160a01b03165afa8015610dd3575f90610d95575b60405160ff919091168152602090f35b506020813d602011610dcb575b81610daf60209383610b86565b81010312610510575160ff81168103610510576105b390610d85565b3d9150610da2565b612989565b3461051057604036600319011261051057602435610df58161063c565b336001600160a01b03821603610e1157610d3e9060043561383e565b60405163334bd91960e11b8152600490fd5b34610510575f3660031901126105105760ff60025460a01c1680610e4f575b6020906040519015158152f35b5060035460a01c60ff16610e42565b8015150361051057565b3461051057602036600319011261051057600435610e8581610e5e565b610e8d612e1a565b610e956133fd565b5f54901515908160ff8216151514610ef15760ff191660ff8216175f556040519081527f3e12b7b36c75ac9609a3f58609b331210428e1a85909132638955ba0301eec3390602090a160015f805160206155b383398151915255005b60405163a741a04560e01b8152600490fd5b34610510575f36600319011261051057602065ffffffffffff60015460a01c16604051908152f35b3461051057604080600319360112610510576004803591610f4b8361063c565b610f53612e1a565b6001600160a01b0391838316908115611205575f5460ff8116806111ec575b6111dd5783516370a0823160e01b808252308483019081529096602093909160109190911c82169084908490819083010381845afa928315610dd3575f936111ba575b50610fc790602435903090339061453d565b5f5486519788523085890190815290979184918391908290819060200103918b60101c165afa908115610dd357611006935f9261118d575b505061292d565b93841561117e5760081c60ff1680611169575b61115b5750906105b3916110ca61102e61407c565b9561107761103a614003565b6110626110488a838b614164565b9961105c8a61105642613138565b9261295b565b90613c9e565b50506110718961105642613138565b90613d7e565b50506001600160a01b0381165f908152600e60205260409020906110c4886110bf6107f46110a442613138565b6001600160a01b039095165f908152600e6020526040902090565b61295b565b91613e5a565b5050815184815260208101869052819033907fdcbc1c05240f31ff3ad067ef1ee35ce4997762752e3a095284754544f4c709d790604090a361111860015f805160206155b383398151915255565b81518581525f907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90602090a35191825260208201929092529081906040820190565b8251632484557960e01b8152fd5b50611176846110bf61407c565b815410611019565b50825163070f6eed60e11b8152fd5b6111ac9250803d106111b3575b6111a48183610b86565b8101906138d0565b5f80610fff565b503d61119a565b610fc79193506111d690853d87116111b3576111a48183610b86565b9290610fb5565b5082516304f63b8560e01b8152fd5b50335f9081526005602052604090205460ff1615610f72565b8251630d534ce360e11b8152fd5b34610510575f36600319011261051057602060ff5f54166040519015158152f35b34610510575f36600319011261051057602060015460d01c604051908152f35b34610510575f36600319011261051057602060ff60025460a01c166040519015158152f35b9060406003198301126105105760043561129281610b27565b91602435906001600160401b0382116105105761054991600401610c27565b346105105760206107636112c436611279565b9061319b565b34610510576020366003190112610510576004356112e781610e5e565b6112ef612e1a565b6112f761345a565b5f54901515908160ff8260081c16151514610ef15761ff001916600882901b61ff0016175f556040519081527ffa7a25a0b611d4ba3c0ea990e90dc23d484a5dd7a1be4733fef2946ba74530c690602090a1610d3e60015f805160206155b383398151915255565b34610510575f3660031901126105105760206001600160401b035f805160206155d38339815191525416604051908152f35b34610510576060366003190112610510576113aa610a13565b6024356113b68161063c565b6001600160401b0391604435838111610510576113d7903690600401610a29565b5f805160206155d38339815191529491855494838616806114b85760ff8760401c169081156114ab575b50610af3577fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2966114a69661146e958716906001600160401b0319161790556114695f805160206155d3833981519152600160401b68ff000000000000000019825416179055565b612994565b5f805160206155d3833981519152805468ff0000000000000000191690556040516001600160401b0390911681529081906020820190565b0390a1005b905084861611155f611401565b60405162dc149f60e41b8152600490fd5b346105105760203660031901126105105760206107636004356114eb8161063c565b612aa8565b34610510576020366003190112610510576004355f526006602052602060405f2054604051908152f35b34610510575f3660031901126105105760015465ffffffffffff611550818360a01c1692611546612b3f565b9060d01c9061293a565b82018092116109fc57611564602092613138565b60405191168152f35b34610510575f366003190112610510576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b34610510575f36600319011261051057602060ff60035460a01c166040519015158152f35b34610510576020366003190112610510576004356115f38161063c565b60018060a01b03165f52600e602052602061076360405f206140f0565b34610510575f36600319011261051057611628613abc565b5f8051602061553383398151915280546001600160a01b031981169091555f906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b346105105760403660031901126105105760043560243561169781610b27565b61169f612e1a565b6003546116bc906001600160a01b03165b6001600160a01b031690565b3303611939576116ca612b3f565b906116d481612b73565b9082151580611928575b801561191f575b61190d576105b3937ff9d090c096f71cd1659861a9ce5b6f384bceb4e2fa4e4a19edf6489a9b8d56c79261171761407c565b946117326117248261294d565b5f52600660205260405f2090565b54908281036118265750611746818761295b565b6117508185613af4565b9687806117df575b50505050505b836117ab575b6040805191825265ffffffffffff929092166020820152908101839052606090a161179b60015f805160206155b383398151915255565b6040519081529081906020820190565b5f546117da9085906117c89060101c6001600160a01b03166116b0565b6001546001600160a01b031690613f18565b611764565b61181b93610fff8361105c6118056117fe611724986118159888613b10565b809661292d565b9461180f42613138565b9261292d565b9261294d565b555f80808087611758565b915061183a825f52600660205260405f2090565b549061184a816110bf848a61295b565b906118558286613af4565b9788611866575b505050505061175e565b6118db938361188e9361189b8c6118966118846118cc998884613b10565b9788958584613b10565b94859261292d565b61292d565b938484106118e6575b610fff9061105c6118ba95969761180f42613138565b6118c66117248761294d565b5561292d565b915f52600660205260405f2090565b555f8080808061185c565b91611902610fff916118fc866118ba979861292d565b9061295b565b8594509290506118a4565b604051635e18d2a560e01b8152600490fd5b508282116116e5565b506119328361291f565b82106116de565b60405163dabc4ad960e01b8152600490fd5b34610510575f3660031901126105105760015465ffffffffffff808260a01c1691611974612b3f565b600181018091116109fc576115509160d01c9061293a565b34610510575f366003190112610510576020610763612b3f565b6001600160a01b03165f9081527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace016020526040902090565b34610510576020366003190112610510576004356119fb8161063c565b60018060a01b03165f526005602052602060ff60405f2054166040519015158152f35b34610510576020366003190112610510576020610763600435611a4081610b27565b612b73565b3461051057604036600319011261051057600435611a628161063c565b6024356001600160401b038082116105105736602383011215610510578160040135908111610510573660248260051b84010111610510576105b392602461179b930190612bae565b34610510576020610763611abe36611279565b9061327c565b3461051057602080600319360112610510576004803590611ae48261063c565b611aec612e1a565b60025460a01c60ff16611c6e576040516302910f8b60e31b81526001600160a01b03838116838301908152909491908290829081906020010381887f0000000000000000000000000000000000000000000000000000000000000000165afa908115610dd3575f91611c41575b5015611c315760405163fbfa77cf60e01b8152838516949082818581895afa928315610dd3575f93611c02575b505030911603611bf35750600280546001600160a01b03929092166001600160a81b031990921691909117600160a01b1790557fdb2160616f776a37b24808115554e79439bf26cccbbd4438190cc6d28e80ecd15f80a2610d3e60015f805160206155b383398151915255565b60405163b9f0f17160e01b8152fd5b611c22929350803d10611c2a575b611c1a8183610b86565b810190612d07565b905f80611b86565b503d611c10565b506040516324e5af8d60e21b8152fd5b611c619150823d8411611c67575b611c598183610b86565b810190612ce7565b5f611b59565b503d611c4f565b604051631380833b60e01b8152fd5b34610510575f366003190112610510576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b34610510575f36600319011261051057611cd9612b3f565b611ce161407c565b90805f52600660205260405f205482018092116109fc57600181018091116109fc575f52600660205260405f205481018091116109fc57602090604051908152f35b34610510575f366003190112610510575f80516020615533833981519152546040516001600160a01b039091168152602090f35b3461051057604036600319011261051057602060ff611da9602435611d7b8161063c565b6004355f525f80516020615593833981519152845260405f209060018060a01b03165f5260205260405f2090565b54166040519015158152f35b34610510575f366003190112610510576040515f5f80516020615513833981519152805490611de3826128d3565b8085529160209160019182811690811561060f5750600114611e0f576105b3866105a781880382610b86565b5f90815293507f46a2803e59a4de4e7a4c574b1243f25977ac4c77d5a1a4a609b5394cebb4a2aa5b838510611e54575050505081016020016105a7826105b35f610597565b8054868601840152938201938101611e37565b3461051057604036600319011261051057600435611e848161063c565b6024356001600160401b038111610510575f91611ea683923690600401610a29565b90816040519283928337810184815203915af4611ef3611ec4612d1c565b91611ee5604051938492151560208401526040808401526060830190610514565b03601f198101835282610b86565b805190602001fd5b34610510575f36600319011261051057602060ff5f5460081c166040519015158152f35b34610510575f3660031901126105105760206040515f8152f35b34610510575f3660031901126105105760206040517f4a634bc14d77baf979756509ef4298c6f6318af357828612545267ee2eb792338152f35b3461051057604036600319011261051057600435611f908161063c565b602435611f9c81610e5e565b611fa4612e1a565b611fac6134b1565b6001600160a01b038216918215612054575f8381526005602052604090205460ff16151582151514610ef1576001600160a01b03165f9081526005602052604090207ff991b1ecfb5115cbb36a2b2e2240c058406d2acc2fcc6e9e2dc99d845ff70a629161203b91612029908260ff801983541691151516179055565b60405190151581529081906020820190565b0390a2610d3e60015f805160206155b383398151915255565b604051630da30f6560e31b8152600490fd5b346105105760403660031901126105105760206120aa6024356120888161063c565b6004355f526008835260405f209060018060a01b03165f5260205260405f2090565b54604051908152f35b3461051057604036600319011261051057602060ff611da96024356120d78161063c565b6004355f526009845260405f209060018060a01b03165f5260205260405f2090565b34610510576040366003190112610510576121236004356121198161063c565b6024359033612fd9565b602060405160018152f35b346105105760208060031936011261051057600480359061214e8261063c565b612156612e1a565b60035460a01c60ff166122d6576001600160a01b038281169390846121c4575b6003805460ff60a01b1916600160a01b179055847fe7e4c932e03abddfe20f83af42c33627e816115c7ec2b168441f65dc14bfc3ba5f80a2610d3e60015f805160206155b383398151915255565b6040516302910f8b60e31b81526001600160a01b0385168482019081528390829081906020010381857f0000000000000000000000000000000000000000000000000000000000000000165afa908115610dd3575f916122b9575b50156122a85760405163fbfa77cf60e01b815282818581895afa928315610dd3575f93612289575b50503091160361227a5750600380546001600160a01b0319166001600160a01b039092169190911790555f808080612176565b604051633f3e089160e21b8152fd5b6122a0929350803d10611c2a57611c1a8183610b86565b905f80612247565b60405163dabc4ad960e01b81528390fd5b6122d09150833d8511611c6757611c598183610b86565b5f61221f565b60405163703fe2e560e01b8152fd5b34610510576040366003190112610510576004356123028161063c565b6024359061230e612e1a565b6001600160a01b03918183169081156123945761233f6105b39461233183613f67565b9485915f5460101c16613f18565b604080519182526020820184905233917f865ca08d59f5cb456e85cd2f7ef63664ea4f73327414e9d8152c4158b0e946459190a360015f805160206155b3833981519152556040519081529081906020820190565b604051634e46966960e11b8152600490fd5b34610510576020366003190112610510576004355f526007602052602060405f2054604051908152f35b34610510575f366003190112610510576003546040516001600160a01b039091168152602090f35b34610510575f36600319011261051057602061076361407c565b346105105760203660031901126105105760043561242e612e1a565b335f9081527f2d4ccbfe9f7672a6f2537c1e5bce6adacb73706879154bbab6ce096012d6721660205260409020547f4a634bc14d77baf979756509ef4298c6f6318af357828612545267ee2eb792339060ff16156124d257508060045414610ef1576020817f854df3eb95564502c8bc871ebdd15310ee26270f955f6c6bd8cea68e75045bc092600455604051908152a160015f805160206155b383398151915255005b6044906040519063e2517d3f60e01b82523360048301526024820152fd5b346105105760203660031901126105105760043561250d8161063c565b612515612b3f565b61251e82612aa8565b916125298183612dbc565b83018093116109fc57600182018092116109fc5761254691612dbc565b81018091116109fc57602090604051908152f35b34610510575f366003190112610510576002546040516001600160a01b039091168152602090f35b3461051057604036600319011261051057610d3e6024356004356125a58261063c565b805f525f805160206155938339815191526020526125c9600160405f200154613508565b61383e565b34610510575f366003190112610510575f5460405160109190911c6001600160a01b03168152602090f35b34610510575f3660031901126105105760206040517fbae4ee3de6c709ff9a002e774c5b78cb381560b219213c88ae0f1e207c03c0238152f35b346105105760403660031901126105105760206120aa6004356126558161063c565b610692602435916126658361063c565b6119a6565b34610510575f366003190112610510576020600454604051908152f35b34610510576060366003190112610510576004356126a48161063c565b602435906126b182610b27565b6001600160401b0391604435838111610510576126d2903690600401610a29565b909260409384516126e281610b4b565b60608152606060208201526060868201529280612741575b6105b386612732878761272c6127138984845191612968565b928561272360208501518361327c565b9301519061319b565b91614164565b90519081529081906020820190565b8101939250602081850312610510578035908682116105105701926060848203126105105784519561277287610b4b565b84358181116105105782612787918701610c27565b8752602085013581811161051057826127a1918701610c27565b602088015285850135908111610510576105b3966127ca61272c93612713936127329801610c27565b878201529394506126fa565b3461051057602036600319011261051057610d3e6004356127f68161063c565b6127fe613abc565b612d4b565b34610510576040366003190112610510576004356128208161063c565b60243561282b612e1a565b6001600160a01b038216156108795780156128975761285a61284b614003565b61285361407c565b9083614c31565b335f908152600e60205260409020909290612874906140f0565b83116128855761082a918391612e49565b6040516321727a3760e11b8152600490fd5b604051636c6c627d60e11b8152600490fd5b346105105760403660031901126105105760206107636024356128cb8161063c565b600435612dbc565b90600182811c92168015612901575b60208310146128ed57565b634e487b7160e01b5f52602260045260245ffd5b91607f16916128e2565b634e487b7160e01b5f52601160045260245ffd5b5f198101919082116109fc57565b919082039182116109fc57565b818102929181159184041417156109fc57565b90600182018092116109fc57565b919082018092116109fc57565b6001600160a01b03165f908152600e60205260409020610549929190613331565b6040513d5f823e3d90fd5b916129d1926129a1614595565b6129a9614595565b60015f805160206155b3833981519152556001600160a01b038116612a8e575b503691610bf1565b80516020908201818101828483031261051057828401516001600160401b039485821161051057019283926101a093849103126105105760405193612a1585610b4b565b612a21838383016138ea565b8552610180810151868111610510578383612a3e928401016139b3565b9382860194855281015195861161051057612a66612a859383610bd498612a809401016139b3565b94604081019586525191611ee560405193849283016139f9565b6145d8565b51905190614994565b612aa290612a9a614595565b6127fe614595565b5f6129c9565b6001600160a01b03165f908152600e60205260409020612ac7906140f0565b612acf61407c565b612ad7614003565b90600181018091116109fc57600182018092116109fc5761054992613b10565b65ffffffffffff91821690821603919082116109fc57565b634e487b7160e01b5f52601260045260245ffd5b9065ffffffffffff809116918215612b3a57160490565b612b0f565b612b4842613138565b612b6f600154612b6565ffffffffffff93848360a01c1690612af7565b9060d01c90612b23565b1690565b6001549065ffffffffffff91828160a01c16918284821610612b9c57612b6f92612b6591612af7565b60405163b7d0949760e01b8152600490fd5b90612bb7612e1a565b5f926001600160a01b038316928315612394578115612c6f575f5b828110612c4d57505f547f326b6aff1cd2fb1c8234de4f9dcfb9047c5c36eb9ef2eb34af5121e969a75d279286929091612c22918491612c1d9060101c6001600160a01b03166116b0565b613f18565b612c33604051928392339684612caa565b0390a390610bd460015f805160206155b383398151915255565b94612c686001916118fc612c62898789612c95565b35613f67565b9501612bd2565b60405163edf3b93360e01b8152600490fd5b634e487b7160e01b5f52603260045260245ffd5b9190811015612ca55760051b0190565b612c81565b604080825281018390529392916001600160fb1b0381116105105760209160609160051b809183880137850101930152565b5190610bd482610e5e565b90816020910312610510575161054981610e5e565b5190610bd48261063c565b9081602091031261051057516105498161063c565b3d15612d46573d90612d2d82610bd6565b91612d3b6040519384610b86565b82523d5f602084013e565b606090565b6001600160a01b03908116908115612da4575f8051602061553383398151915280546001600160a01b031981168417909155167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3565b604051631e4fbdf760e01b81525f6004820152602490fd5b90612de290825f52600860205260405f209060018060a01b03165f5260205260405f2090565b54905f52600660205260405f2054600760205260405f205490600181018091116109fc57600182018092116109fc5761054992613b10565b5f805160206155b38339815191526002815414612e375760029055565b604051633ee5aeb560e01b8152600490fd5b335f908152600e6020526040812093949390929190612e8890612e6b42613138565b335f908152600e602052604090206110c4908990611896906140f0565b5050612ea2612e9642613138565b61107187611896614003565b5050612ebc612eb042613138565b61105c8461189661407c565b505081612f4e82610692612ed6612ed1612b3f565b61294d565b612f2d612eeb825f52600660205260405f2090565b54612efe835f52600760205260405f2090565b54612f15612f0d83838b614164565b9a8b9361295b565b612f27855f52600660205260405f2090565b5561295b565b612f3f825f52600760205260405f2090565b555f52600860205260405f2090565b612f5984825461295b565b9055604080519182526020820187905281018390526001600160a01b03919091169033907febff2602b3f468259e1e99f613fed6691f3a6526effe6ef3e768ba7ae7a36c4f90606090a36040519384529233907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9080602081015b0390a3565b916001600160a01b0380841692908315613120578116938415613108576001600160a01b0381165f908152600e60205260409020613016906140f0565b908382106130d657612fd4926130787fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef95936130656130c49460018060a01b03165f52600e60205260405f2090565b908561307042613138565b910391613e5a565b50506001600160a01b0381165f908152600e6020526040902090836130bd6107f46130a242613138565b6001600160a01b039094165f908152600e6020526040902090565b0191613e5a565b50506040519081529081906020820190565b60405163391434e360e21b81526001600160a01b03919091166004820152602481019190915260448101839052606490fd5b60405163ec442f0560e01b81525f6004820152602490fd5b604051634b637e8f60e11b81525f6004820152602490fd5b65ffffffffffff9081811161314b571690565b604490604051906306dfcc6560e41b8252603060048301526024820152fd5b90816020910312610510575163ffffffff811681036105105790565b90600163ffffffff809316019182116109fc57565b9080511561327257806020806131b69351830101910161316a565b6131bf816143d5565b906131d0825165ffffffffffff1690565b9065ffffffffffff80851692168281146132665782119182613206575b50506131fd575061054990614185565b60209150015190565b909150613214600a5461291f565b63ffffffff83161491821561322d575b50505f806131ed565b61325e91925061324761324261325392613186565b6143d5565b5165ffffffffffff1690565b65ffffffffffff1690565b115f80613224565b50505060209150015190565b5061054990614185565b9080511561332757806020806132979351830101910161316a565b6132a08161445a565b906132b1825165ffffffffffff1690565b9065ffffffffffff808516921682811461326657821191826132de575b50506131fd57506105499061424c565b9091506132ec600c5461291f565b63ffffffff831614918215613305575b50505f806132ce565b61331f91925061324761331a61325392613186565b61445a565b115f806132fc565b506105499061424c565b918051156133f3578060208061334c9351830101910161316a565b9161335783826144d5565b92613368845165ffffffffffff1690565b9065ffffffffffff80851692168281146133e7578211918261339e575b505061339557610549925061430c565b50506020015190565b9091506133ab835461291f565b63ffffffff8316149182156133c4575b50505f80613385565b6133df9192506132476133d961325392613186565b856144d5565b115f806133bb565b50505050506020015190565b506105499161430c565b335f9081527f03b26b53c87faa1058f30bb5d2fee64f717719a0d9b7e4f4df027aa5e9b6ed69602052604090207fbae4ee3de6c709ff9a002e774c5b78cb381560b219213c88ae0f1e207c03c0239060ff905b5416156124d25750565b335f9081527fe41986b390c4ce6791b87f7423b5fab7a81a0e6d89660b6264f697d008b2243a602052604090207fc6aaadd7371d5e8f9ed6849dd66a66573a3ba37167d03f4352c9ba5693678fac9060ff90613450565b335f9081527f0287ab4cb376ea253d7b2ce0c2cbf458f7deae9458470d74afdfbbee484e9540602052604090207f9c56d972d63cbb4195b3c1484691dfc220fa96a4c47e7b6613bd82a022029e069060ff90613450565b5f8181525f8051602061559383398151915260209081526040808320338452909152902060ff90613450565b6001600160a01b0381165f9081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d60205260409020545f805160206155938339815191529060ff166135df575f808052602091825260408082206001600160a01b038516835290925220805460ff1916600117905533906001600160a01b03165f7f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d8180a4600190565b50505f90565b6001600160a01b0381165f9081527f03b26b53c87faa1058f30bb5d2fee64f717719a0d9b7e4f4df027aa5e9b6ed69602052604090207fbae4ee3de6c709ff9a002e774c5b78cb381560b219213c88ae0f1e207c03c023905f805160206155938339815191529060ff905b54166136b4575f828152602091825260408082206001600160a01b038616835290925220805460ff1916600117905533916001600160a01b0316907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d5f80a4600190565b5050505f90565b6001600160a01b0381165f9081527f0287ab4cb376ea253d7b2ce0c2cbf458f7deae9458470d74afdfbbee484e9540602052604090207f9c56d972d63cbb4195b3c1484691dfc220fa96a4c47e7b6613bd82a022029e06905f805160206155938339815191529060ff90613650565b6001600160a01b0381165f9081527fe41986b390c4ce6791b87f7423b5fab7a81a0e6d89660b6264f697d008b2243a602052604090207fc6aaadd7371d5e8f9ed6849dd66a66573a3ba37167d03f4352c9ba5693678fac905f805160206155938339815191529060ff90613650565b6001600160a01b0381165f9081527f2d4ccbfe9f7672a6f2537c1e5bce6adacb73706879154bbab6ce096012d67216602052604090207f4a634bc14d77baf979756509ef4298c6f6318af357828612545267ee2eb79233905f805160206155938339815191529060ff90613650565b5f8181525f80516020615593833981519152602081815260408084206001600160a01b038716855290915290912060ff90613650565b5f8181525f80516020615593833981519152602081815260408084206001600160a01b03871685529091529091205460ff16156136b4575f828152602091825260408082206001600160a01b038616835290925220805460ff1916905533916001600160a01b0316907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b5f80a4600190565b90816020910312610510575190565b5190610bd482610b27565b919082610160910312610510576138ff610ba7565b9161390981612cfc565b835261391760208201612cfc565b6020840152613928604082016138df565b604084015261393960608201612cdc565b606084015261394a60808201612cdc565b608084015260a081015160a084015261396560c08201612cfc565b60c084015261397660e08201612cfc565b60e0840152610100613989818301612cfc565b9084015261012061399b818301612cfc565b908401526139ad610140809201612cfc565b90830152565b81601f82011215610510578051906139ca82610bd6565b926139d86040519485610b86565b8284526020838301011161051057815f9260208093018386015e8301015290565b81516001600160a01b0316815261016081019291610bd491906020818101516001600160a01b03169083015260408181015165ffffffffffff169083015260608181015115159083015260808181015115159083015260a0818101519083015260c0808201516001600160a01b03169083015260e0818101516001600160a01b031690830152610100818101516001600160a01b031690830152610120818101516001600160a01b031690830152610140908101516001600160a01b0316910152565b5f80516020615533833981519152546001600160a01b03163303613adc57565b60405163118cdaa760e01b8152336004820152602490fd5b9080821015613b01575090565b905090565b8115612b3a570490565b9091828202915f1984820993838086109503948086039514613b955784831115613b8357829109815f038216809204600280826003021880830282030280830282030280830282030280830282030280830282030280920290030293600183805f03040190848311900302920304170290565b60405163227bc15360e01b8152600490fd5b5050906105499250613b06565b600b54811015612ca557600b5f525f8051602061557383398151915201905f90565b600d54811015612ca557600d5f525f8051602061555383398151915201905f90565b8054821015612ca5575f5260205f2001905f90565b600d54600160401b811015610b66576001810180600d55811015612ca557600d5f525f805160206155538339815191520155565b600b54600160401b811015610b66576001810180600b55811015612ca557600b5f525f805160206155738339815191520155565b90815491600160401b831015610b665782613c86916001610bd495018155613be6565b90919082549060031b91821b915f19901b1916179055565b919091600d9081548015613d49575b50613cb6614add565b50929091815492613cc561407c565b9481613d34575b5015613d1157505f1982018281116109fc5781541115612ca5575f527fd7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb4018390559190565b613d25926001600160d01b03169150614f65565b5050613d3083613bfb565b9190565b65ffffffffffff83811691161490505f613ccc565b600160401b811015610b665760018101808455811015612ca5575f908382525f8051602061555383398151915201555f613cad565b919091600b9081548015613e25575b50613d96614b48565b50929091815492613da5614003565b9481613e10575b5015613df157505f1982018281116109fc5781541115612ca5575f527f0175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db8018390559190565b613e05926001600160d01b03169150615065565b5050613d3083613c2f565b65ffffffffffff83811691161490505f613dac565b600160401b811015610b665760018101808455811015612ca5575f908382525f8051602061557383398151915201555f613d8d565b90929192600182019081548015613ee8575b5084613e7784614b92565b50949092845493613e87836140f0565b9681613ed3575b5015613eb0575050505f1981019081116109fc57613c868591613d3093613be6565b613d30949293613ecc926001600160d01b03909116919061510f565b5050613c63565b65ffffffffffff83811691161490505f613e8e565b600160401b811015610b6657806001613f049201845583613be6565b8154905f199060031b1b191690555f613e6c565b60405163a9059cbb60e01b60208201526001600160a01b03909216602483015260448083019390935291815260808101916001600160401b03831182841017610b6657610bd492604052614bc0565b90613f70612b3f565b821015613ff1575f82815260096020908152604080832033845290915290205460ff16613fdf57613fa13383612dbc565b918215613fcd575f9081526009602090815260408083203384529091529020805460ff19166001179055565b6040516366c0bcbf60e11b8152600490fd5b604051630c8d9eab60e31b8152600490fd5b60405163d5b25b6360e01b8152600490fd5b600a548061404357505f5b6001600160d01b0381161561403e57600b54811015612ca557600b5f525f80516020615573833981519152015490565b505f90565b805f198101116109fc57600a5f527fc65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a7015460301c61400e565b600c54806140b757505f5b6001600160d01b0381161561403e57600d54811015612ca557600d5f525f80516020615553833981519152015490565b805f198101116109fc57600c5f527fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c6015460301c614087565b80548061411f57505f5b6001600160d01b038116156135df5760016141159201613be6565b90549060031b1c90565b5f199080828101116109fc57825f5260205f2001015460301c6140fa565b906001600160a01b03808316156106f7578116156106df57610692614161926119a6565b55565b9190600181018091116109fc57600182018092116109fc5761054992613b10565b600a54905f8291600584116141f3575b61419f935061531b565b806141c257505f5b6001600160d01b0381161561403e5761411561054991613ba2565b6141e76141d16141ee9261291f565b600a5f525f805160206154f38339815191520190565b5460301c90565b6141a7565b91926141fe816151e2565b81039081116109fc5761419f93600a5f5265ffffffffffff80835f805160206154f3833981519152015416908516105f1461423a575091614195565b9291506142469061294d565b90614195565b600c54905f8291600584116142b3575b6142669350615384565b8061428957505f5b6001600160d01b0381161561403e5761411561054991613bc4565b6141e76142986142ae9261291f565b600c5f525f805160206154b38339815191520190565b61426e565b91926142be816151e2565b81039081116109fc5761426693600c5f5265ffffffffffff80835f805160206154b3833981519152015416908516105f146142fa57509161425c565b9291506143069061294d565b9061425c565b908154905f82916005841161436f575b6143279350846153ed565b8061434f57505f905b6001600160d01b038216156135df576105499160016141159201613be6565b6141e761435e6143699261291f565b835f5260205f200190565b90614330565b919261437a816151e2565b81039081116109fc5761432793855f5265ffffffffffff808360205f20015416908516105f146143ab57509161431c565b9291506143b79061294d565b9061431c565b604051906143ca82610b6b565b5f6020838281520152565b6143dd6143bd565b506143e66143bd565b50600a54811015612ca55761440d90600a5f525f805160206154f383398151915201614ab9565b65ffffffffffff81511690602060018060d01b0391015116600b54811015612ca557600b5f525f8051602061557383398151915201546040519161445083610b6b565b8252602082015290565b6144626143bd565b5061446b6143bd565b50600c54811015612ca55761449290600c5f525f805160206154b383398151915201614ab9565b65ffffffffffff81511690602060018060d01b0391015116600d54811015612ca557600d5f525f8051602061555383398151915201546040519161445083610b6b565b906144fe6144f861451f926144e86143bd565b506144f16143bd565b5084613be6565b50614ab9565b91600165ffffffffffff845116936020828060d01b03910151169101613be6565b9054906040519261452f84610b6b565b835260031b1c602082015290565b6040516323b872dd60e01b60208201526001600160a01b03928316602482015292909116604483015260648083019390935291815260a08101918183106001600160401b03841117610b6657610bd492604052614bc0565b60ff5f805160206155d38339815191525460401c16156145b157565b604051631afcd79f60e31b8152600490fd5b906101608282031261051057610549916138ea565b6145eb90602080825183010191016145c3565b80516001600160a01b03919082161561498257604080820165ffffffffffff61461a825165ffffffffffff1690565b16156149715760c08301805190929061463b906001600160a01b03166116b0565b15614822575b509161476e6101409261470d6146e86147cc9661468f614667875160018060a01b031690565b5f805462010000600160b01b03191660109290921b62010000600160b01b0316919091179055565b6020860151600180546001600160a01b0319166001600160a01b039092169190911790556132476146bf42613138565b6001805465ffffffffffff60a01b191660a09290921b65ffffffffffff60a01b16919091179055565b600180546001600160d01b031660d09290921b6001600160d01b031916919091179055565b61472d61471d6060850151151590565b60ff80195f541691151516175f55565b61475461473d6080850151151590565b61ff005f5491151560081b169061ff001916175f55565b61476160a0840151600455565b516001600160a01b031690565b848116614812575b5060e08101516001600160a01b0316848116614802575b506101008101516001600160a01b03168481166147f2575b506101208101516001600160a01b03168481166147e2575b5001516001600160a01b031690565b9081166147d65750565b6147df90613799565b50565b6147eb9061372a565b505f6147bd565b6147fb906136bb565b505f6147a5565b61480b906135e5565b505f61478d565b61481b90613534565b505f614776565b60e0840151614839906001600160a01b03166116b0565b1561490e575b610120840151614857906001600160a01b03166116b0565b614641576080840151156148c45760a084015115806148a5575b61489557509161476e6101409261470d6146e86147cc965b94965050509250614641565b5163183c854560e21b8152600490fd5b506101408401516148be906001600160a01b03166116b0565b15614871565b60a0840151158015906148ee575b61489557509161476e6101409261470d6146e86147cc96614889565b50610140840151614907906001600160a01b03166116b0565b15156148d2565b60608401511561494457610100840151614930906001600160a01b03166116b0565b61483f575163183c854560e21b8152600490fd5b61010084015161495c906001600160a01b03166116b0565b1561483f575163183c854560e21b8152600490fd5b81516368f5f8f160e11b8152600490fd5b6040516368f7a67560e11b8152600490fd5b919061499e614595565b6149a6614595565b82516001600160401b038111610b66575f805160206154d3833981519152906149d8816149d384546128d3565b614c71565b602080601f8311600114614a1f57509080614a0d92610bd496975f92614a14575b50508160011b915f199060031b1c19161790565b9055614d63565b015190505f806149f9565b90601f19831696614a5d5f805160206154d38339815191525f527f2ae08a8e29253f69ac5d979a101956ab8f8d9d7ded63fa7a83b16fc47648eab090565b925f905b898210614aa157505090839291600194610bd4989910614a89575b505050811b019055614d63565b01515f1960f88460031b161c191690555f8080614a7c565b80600185968294968601518155019501930190614a61565b90604051614ac681610b6b565b915465ffffffffffff8116835260301c6020830152565b600c5480614aee57505f905f905f90565b805f198101116109fc577fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c6614b2791600c5f5201614ab9565b9065ffffffffffff82511691602060018060d01b0391015116906001929190565b600a5480614b5957505f905f905f90565b805f198101116109fc577fc65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a7614b2791600a5f5201614ab9565b805480614ba35750505f905f905f90565b5f199080828101116109fc57614b27925f5260205f200101614ab9565b5f80614be89260018060a01b03169360208151910182865af1614be1612d1c565b908361544f565b8051908115159182614c16575b5050614bfe5750565b60249060405190635274afe760e01b82526004820152fd5b614c299250602080918301019101612ce7565b155f80614bf5565b9190600181018091116109fc57600182018092116109fc57614c54828285613b10565b928215612b3a5709614c635790565b600181018091116109fc5790565b601f8111614c7d575050565b5f805160206154d38339815191525f527f2ae08a8e29253f69ac5d979a101956ab8f8d9d7ded63fa7a83b16fc47648eab0906020601f840160051c83019310614ce0575b601f0160051c01905b818110614cd5575050565b5f8155600101614cca565b9091508190614cc1565b601f8111614cf6575050565b5f805160206155138339815191525f527f46a2803e59a4de4e7a4c574b1243f25977ac4c77d5a1a4a609b5394cebb4a2aa906020601f840160051c83019310614d59575b601f0160051c01905b818110614d4e575050565b5f8155600101614d43565b9091508190614d3a565b9081516001600160401b038111610b66575f8051602061551383398151915290614d9681614d9184546128d3565b614cea565b602080601f8311600114614dcb57508190614dc79394955f92614a145750508160011b915f199060031b1c19161790565b9055565b90601f19831695614e095f805160206155138339815191525f527f46a2803e59a4de4e7a4c574b1243f25977ac4c77d5a1a4a609b5394cebb4a2aa90565b925f905b888210614e4457505083600195969710614e2c575b505050811b019055565b01515f1960f88460031b161c191690555f8080614e22565b80600185968294968601518155019501930190614e0d565b600c5490600160401b821015610b66576001820180600c55821015612ca557600c5f52805160209091015160301b65ffffffffffff191665ffffffffffff91909116175f805160206154b383398151915290910155565b600a5490600160401b821015610b66576001820180600a55821015612ca557600a5f52805160209091015160301b65ffffffffffff191665ffffffffffff91909116175f805160206154f383398151915290910155565b8054600160401b811015610b6657614f2791600182018155613be6565b614f5257815160209092015160301b65ffffffffffff191665ffffffffffff92909216919091179055565b634e487b7160e01b5f525f60045260245ffd5b600c5491929190811561503c57614f86614f816142988461291f565b614ab9565b805165ffffffffffff838116949116841061502a5785602093613d3095614fb6613253865165ffffffffffff1690565b03614ff25750614fcb614298614fe49361291f565b9065ffffffffffff82549181199060301b169116179055565b01516001600160d01b031690565b90506150259150615012615004610bc7565b65ffffffffffff9092168252565b6001600160d01b03871681850152614e5c565b614fe4565b604051632520601d60e01b8152600490fd5b615060915061504c615004610bc7565b6001600160d01b0384166020820152614e5c565b5f9190565b600a549192919081156150eb57615081614f816141d18461291f565b805165ffffffffffff838116949116841061502a5785602093613d30956150b1613253865165ffffffffffff1690565b036150c65750614fcb6141d1614fe49361291f565b905061502591506150d8615004610bc7565b6001600160d01b03871681850152614eb3565b61506091506150fb615004610bc7565b6001600160d01b0384166020820152614eb3565b8054929392919082156151be5761512b614f8161435e8561291f565b9061513c825165ffffffffffff1690565b65ffffffffffff8481169116811061502a57613d3094602094889261516a613253875165ffffffffffff1690565b0361518b5750614fe492615180614fcb9261291f565b905f5260205f200190565b915050615025916151ab61519d610bc7565b65ffffffffffff9093168352565b6001600160d01b03881682860152614f0a565b61506092506151ce61519d610bc7565b6001600160d01b0385166020830152614f0a565b801561403e57806152b46152ad6152a361529961528f61528561527b61527160016105499a5f908b60801c8061530f575b508060401c80615302575b508060201c806152f5575b508060101c806152e8575b508060081c806152db575b508060041c806152ce575b508060021c806152c1575b50821c6152ba575b811c1b61526a818b613b06565b0160011c90565b61526a818a613b06565b61526a8189613b06565b61526a8188613b06565b61526a8187613b06565b61526a8186613b06565b61526a8185613b06565b8092613b06565b90613af4565b810161525d565b600291509101905f615255565b600491509101905f61524a565b600891509101905f61523f565b601091509101905f615234565b602091509101905f615229565b604091509101905f61521e565b9150506080905f615213565b905b82811061532957505090565b9091808216906001818418811c83018093116109fc57600a5f5265ffffffffffff80845f805160206154f3833981519152015416908616105f14615371575050915b9061531d565b9093925081018091116109fc579061536b565b905b82811061539257505090565b9091808216906001818418811c83018093116109fc57600c5f5265ffffffffffff80845f805160206154b3833981519152015416908616105f146153da575050915b90615386565b9093925081018091116109fc57906153d4565b91905b8382106153fd5750505090565b909192808316906001818518811c83018093116109fc57855f5265ffffffffffff808460205f20015416908516105f1461543c575050925b91906153f0565b9094935081018091116109fc5791615435565b90615476575080511561546457805190602001fd5b604051630a12f52160e11b8152600490fd5b815115806154a9575b615487575090565b604051639996b31560e01b81526001600160a01b039091166004820152602490fd5b50803b1561547f56fedf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c752c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace03c65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a852c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace049016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300d7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb50175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db902dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268009b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a264697066735822122061d21157d87e9623ddeb51ba19f8345edd1a00f8105d70e5232e62df8a9f97ed64736f6c63430008190033","sourceMap":"652:3172:97:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;;;;;-1:-1:-1;;652:3172:97;;;;;;;;;;;;;;;;;;-1:-1:-1;;;3551:47:23;;;:87;;;;652:3172:97;;;;;;;;;;3551:87:23;-1:-1:-1;;;1133:40:29;;-1:-1:-1;3551:87:23;;;652:3172:97;-1:-1:-1;652:3172:97;;;;;;;;;;;;;;;;;;;-1:-1:-1;652:3172:97;;;;;;;;-1:-1:-1;;652:3172:97;;;;:::o;:::-;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;;-1:-1:-1;;652:3172:97;;;;;;;-1:-1:-1;;;;;;;;;;;652:3172:97;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;652:3172:97;;;;;;;-1:-1:-1;;;;652:3172:97;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;652:3172:97;;;;;:::o;:::-;;;;;;-1:-1:-1;;652:3172:97;;;;;;;;;:::i;:::-;;;966:10:27;11389:19:26;11385:89;;-1:-1:-1;;;;;652:3172:97;;;11487:21:26;;11483:90;;11582:29;966:10:27;;11582:20:26;966:10:27;11582:20:26;:::i;:::-;652:3172:97;;;;;;;;;;;;;;;;11582:29:26;652:3172:97;;;;;;11663:31:26;652:3172:97;966:10:27;11663:31:26;;652:3172:97;;;10380:4:26;652:3172:97;;;11483:90:26;652:3172:97;;-1:-1:-1;;;11531:31:26;;-1:-1:-1;652:3172:97;11531:31:26;;652:3172:97;;;11531:31:26;11385:89;652:3172:97;;-1:-1:-1;;;11431:32:26;;11406:1;652:3172:97;11431:32:26;;652:3172:97;;;11431:32:26;652:3172:97;;;;;;-1:-1:-1;;652:3172:97;;;;;;;966:38:96;652:3172:97;;;;;;;;;-1:-1:-1;;652:3172:97;;;;;4803:22:96;;:::i;:::-;652:3172:97;;;;;;;;;;;;-1:-1:-1;;652:3172:97;;;;;;;821:37:96;652:3172:97;;;;;;;;;-1:-1:-1;;652:3172:97;;;;;;;;;:::i;:::-;;;3217:103:28;;;:::i;:::-;-1:-1:-1;;;;;652:3172:97;;5525:21:95;5521:75;;5634:10;652:3172:97;;;;5606:15:96;652:3172:97;;;;;5606:33:96;;;:::i;:24::-;:33;:::i;:::-;5610:35:95;;5606:88;;1057:70:87;5173:21:96;;:::i;:::-;4803:22;;:::i;:::-;1057:70:87;;;:::i;:::-;5801:20:95;;;5797:82;;5904:43;;;;:::i;:::-;3282:1:28;;1805;-1:-1:-1;;;;;;;;;;;652:3172:97;3716:283:28;3282:1;652:3172:97;;;;;;;;;;;;;;5797:82:95;652:3172:97;;-1:-1:-1;;;;;;5844:24:95;;652:3172:97;;5844:24:95;5606:88;652:3172:97;;-1:-1:-1;;;5668:15:95;;652:3172:97;;5668:15:95;5521:75;652:3172:97;;-1:-1:-1;;;5569:16:95;;652:3172:97;;5569:16:95;652:3172:97;;;;;;-1:-1:-1;;652:3172:97;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;966:10:27;5162:29:26;966:10:27;5162:20:26;;;:::i;:29::-;652:3172:97;;12158:37:26;;;12154:310;;652:3172:97;6461:5:26;;;;:::i;:::-;652:3172:97;;5162:13:26;652:3172:97;;;;;12154:310:26;12215:24;;;12211:130;;12433:5;652:3172:97;6461:5:26;652:3172:97;;966:10:27;12433:5:26;;:::i;:::-;12154:310;;12211:130;652:3172:97;;-1:-1:-1;;;12266:60:26;;966:10:27;652:3172:97;12266:60:26;;652:3172:97;;;;;;;;;;;;;;;12266:60:26;652:3172:97;;;;;;-1:-1:-1;;652:3172:97;;;;;;-1:-1:-1;652:3172:97;-1:-1:-1;;;;;;;;;;;652:3172:97;;;4919:24:23;652:3172:97;-1:-1:-1;652:3172:97;4919:24:23;652:3172:97;;;;;;;;;;;;;-1:-1:-1;;652:3172:97;;;;;;;;-1:-1:-1;;;;;652:3172:97;;;;;;;;;;;;;;-1:-1:-1;;652:3172:97;;;;4084:14:96;;:::i;:::-;4112:10;;4108:65;;4190:17;652:3172:97;;;;;;12178:17:26;;;652:3172:97;;;;;;;4210:27:96;652:3172:97;;;4210:27:96;;:::i;:::-;652:3172:97;;;;;;;4189:60:96;652:3172:97;4189:60:96;;:::i;:::-;652:3172:97;;;;;;;;;;;;;;;;;;:::i;4108:65:96:-;652:3172:97;;-1:-1:-1;;;4145:17:96;;652:3172:97;;4145:17:96;652:3172:97;;;;-1:-1:-1;;;;;652:3172:97;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;652:3172:97;;;;;;;;;;;;;;;:::o;:::-;;;;;;-1:-1:-1;;652:3172:97;;;;;;:::i;:::-;-1:-1:-1;;;;;652:3172:97;;;;;;;;;;;;;;:::i;:::-;3217:103:28;;;;:::i;:::-;1673:7:71;-1:-1:-1;;;;;652:3172:97;1659:10:71;:21;1655:71;;-1:-1:-1;;;;;;;;;;;652:3172:97;;;;;;;6431:44:25;;;;;652:3172:97;6427:105:25;;;;;-1:-1:-1;15924:8:95;;6427:105:25;652:3172:97;;-1:-1:-1;;;6498:23:25;;652:3172:97;;6498:23:25;6431:44;652:3172:97;;;;6450:25:25;;;-1:-1:-1;6431:44:25;;;;;1655:71:71;652:3172:97;;-1:-1:-1;;;1703:12:71;;652:3172:97;;1703:12:71;652:3172:97;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;652:3172:97;;;;;;;:::o;:::-;;:::i;:::-;;;;;;;-1:-1:-1;;;;;652:3172:97;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;652:3172:97;;;;;;;:::o;:::-;;;;;;;;;;-1:-1:-1;;;;;652:3172:97;;;;;;;:::o;:::-;;;;;;;:::i;:::-;:::o;:::-;-1:-1:-1;;;;;652:3172:97;;;;;;-1:-1:-1;;652:3172:97;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;652:3172:97;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;652:3172:97;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;652:3172:97;;;;;;;5383:59:96;652:3172:97;;;;;;:::i;:::-;-1:-1:-1;;;;;652:3172:97;;;-1:-1:-1;652:3172:97;;;5383:15:96;652:3172:97;;;;;5383:59:96;:::i;652:3172:97:-;;;;;;-1:-1:-1;;652:3172:97;;;;;;655:32:71;-1:-1:-1;;;;;652:3172:97;;;;;;;;;;;;-1:-1:-1;;652:3172:97;;;;5350:25:23;652:3172:97;;;;;;;:::i;:::-;;-1:-1:-1;652:3172:97;-1:-1:-1;;;;;;;;;;;652:3172:97;;3202:4:23;4919:24;652:3172:97;-1:-1:-1;652:3172:97;4919:24:23;652:3172:97;3202:4:23;:::i;:::-;5350:25;:::i;:::-;652:3172:97;;;;;;;-1:-1:-1;;652:3172:97;;;;;;;;-1:-1:-1;;;1109:37:97;;652:3172;1109:37;;652:3172;;;;;;;;-1:-1:-1;;;;;652:3172:97;1109:37;;;;;;652:3172;1109:37;;;652:3172;;;;;;;;;;;;;1109:37;;;;;;;;;;;;;;;;:::i;:::-;;;652:3172;;;;;;;;;;;;;1109:37;;;;;;-1:-1:-1;1109:37:97;;;;:::i;652:3172::-;;;;;;-1:-1:-1;;652:3172:97;;;;;;;;;:::i;:::-;966:10:27;-1:-1:-1;;;;;652:3172:97;;6441:34:23;6437:102;;6549:37;652:3172:97;;;6549:37:23;:::i;6437:102::-;652:3172:97;;-1:-1:-1;;;6498:30:23;;652:3172:97;;6498:30:23;652:3172:97;;;;;;-1:-1:-1;;652:3172:97;;;;;1524:22:95;652:3172:97;;;;1524:46:95;;;652:3172:97;;;;;;;;;;;1524:46:95;-1:-1:-1;1550:20:95;652:3172:97;;;;;1524:46:95;;652:3172:97;;;;;;;:::o;:::-;;;;;;-1:-1:-1;;652:3172:97;;;;;;;;;:::i;:::-;3217:103:28;;:::i;:::-;3202:4:23;;:::i;:::-;-1:-1:-1;652:3172:97;;;;;;;;;;;9542:26:95;9538:76;;-1:-1:-1;;652:3172:97;;;;;-1:-1:-1;652:3172:97;;;;;;9665:27:95;;652:3172:97;;9665:27:95;1805:1:28;-1:-1:-1;;;;;;;;;;;652:3172:97;;9538:76:95;652:3172:97;;-1:-1:-1;;;9591:12:95;;652:3172:97;;9591:12:95;652:3172:97;;;;;;-1:-1:-1;;652:3172:97;;;;;;1718:31:96;652:3172:97;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3217:103:28;;:::i;:::-;-1:-1:-1;;;;;652:3172:97;;;;;3474:24:95;;3470:81;;-1:-1:-1;652:3172:97;;;;3565:55:95;;;652:3172:97;3561:118:95;;652:3172:97;;-1:-1:-1;;;3713:43:95;;;3750:4;3713:43;;;652:3172:97;;;;;;;;;;;;;;;;;;;;;;;;;3713:43:95;;;;;;;;;;-1:-1:-1;3713:43:95;;;652:3172:97;;3829:6:95;652:3172:97;;;3750:4:95;;3802:10;;3829:6;;:::i;:::-;-1:-1:-1;652:3172:97;;;3864:43:95;;;3750:4;3864:43;;;652:3172:97;;;;;;;;;;3864:43:95;652:3172:97;;;;;;3864:43:95;652:3172:97;;;;;3864:43:95;;;;;;;:59;:43;-1:-1:-1;3864:43:95;;;652:3172:97;3864:59:95;;;:::i;:::-;3938:20;;;3934:79;;652:3172:97;;;;;4027:64:95;;652:3172:97;4023:123:95;;5173:21:96;;652:3172:97;5173:21:96;4502:93:95;5173:21:96;;:::i;:::-;4803:22;4426:66:95;4803:22:96;;:::i;:::-;4349:67:95;390:70:87;;;;;:::i;:::-;837:15:62;4385:30:95;837:15:62;819:34;837:15;819:34;:::i;:::-;4385:30:95;;:::i;:::-;4349:67;;:::i;:::-;837:15:62;;4463:28:95;837:15:62;819:34;837:15;819:34;:::i;4463:28:95:-;4426:66;;:::i;:::-;-1:-1:-1;;;;;;;652:3172:97;;;;;;5606:15:96;652:3172:97;;;;;837:15:62;4553:41:95;837:15:62;5606:33:96;:24;819:34:62;837:15;819:34;:::i;:::-;-1:-1:-1;;;;;652:3172:97;;;;;;;5606:15:96;652:3172:97;;;;;;;5606:33:96;4553:41:95;:::i;:::-;4502:93;;:::i;:::-;-1:-1:-1;;652:3172:97;;;;;;;;;;;;;3802:10:95;;4611:62;;652:3172:97;;4611:62:95;3282:1:28;1805;-1:-1:-1;;;;;;;;;;;652:3172:97;3716:283:28;3282:1;652:3172:97;;;;;-1:-1:-1;;1808:46:97;;652:3172;;1808:46;652:3172;;;;;;;;;;;;;;;;;;;4023:123:95;652:3172:97;;-1:-1:-1;;;4114:21:95;;;4027:64;5173:21:96;4045:31:95;5173:21:96;;;:::i;4045:31:95:-;652:3172:97;;-1:-1:-1;4027:64:95;;3934:79;-1:-1:-1;652:3172:97;;-1:-1:-1;;;3981:21:95;;;3864:43;;;;;;-1:-1:-1;3864:43:95;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;3713;3829:6;3713:43;;;;;;;;;;;;;;;:::i;:::-;;;;;3561:118;-1:-1:-1;652:3172:97;;-1:-1:-1;;;3643:25:95;;;3565:55;-1:-1:-1;3609:10:95;652:3172:97;;;;3586:22:95;652:3172:97;;;;;;;;3585:35:95;3565:55;;3470:81;652:3172:97;;-1:-1:-1;;;3521:19:95;;;652:3172:97;;;;;;-1:-1:-1;;652:3172:97;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;652:3172:97;;;;;1805:27:96;652:3172:97;;;;;;;;;;;;;;;-1:-1:-1;;652:3172:97;;;;;;1968:34:96;652:3172:97;;;;;;;;;;;;;;;-1:-1:-1;;652:3172:97;;;;;;;;;;:::i;:::-;;;;;-1:-1:-1;;;;;652:3172:97;;;;;;;;;:::i;:::-;;;;;4622:48:96;652:3172:97;;;:::i;:::-;4622:48:96;;:::i;652:3172:97:-;;;;;;-1:-1:-1;;652:3172:97;;;;;;;;;:::i;:::-;3217:103:28;;:::i;:::-;3202:4:23;;:::i;:::-;-1:-1:-1;652:3172:97;;;;;;;;;;;;;10370:24:95;10366:74;;-1:-1:-1;;652:3172:97;;;;;;;;-1:-1:-1;652:3172:97;;;;;;10489:25:95;;652:3172:97;;10489:25:95;3282:1:28;1805;-1:-1:-1;;;;;;;;;;;652:3172:97;3716:283:28;652:3172:97;;;;;;-1:-1:-1;;652:3172:97;;;;;-1:-1:-1;;;;;;;;;;;;;;;;652:3172:97;;;;;;;;;;;;;;-1:-1:-1;;652:3172:97;;;;;;:::i;:::-;;;;;;:::i;:::-;-1:-1:-1;;;;;652:3172:97;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;8837:64:25;;652:3172:97;;;;;;734:29:71;730:87;;652:3172:97;;;;;6431:44:25;;;;;652:3172:97;6427:105:25;;;6656:20;652:3172:97;6656:20:25;652:3172:97;1167:340:71;652:3172:97;;;;-1:-1:-1;;;;;652:3172:97;;;;;6575:22:25;-1:-1:-1;;;;;;;;;;;;;;652:3172:97;;;;;;;;;6575:22:25;1167:340:71;:::i;:::-;-1:-1:-1;;;;;;;;;;;652:3172:97;;-1:-1:-1;;652:3172:97;;;;;-1:-1:-1;;;;;652:3172:97;;;;;;;;;;;;;6656:20:25;;;;652:3172:97;6431:44:25;652:3172:97;;;;;-1:-1:-1;6450:25:25;6431:44;;;730:87:71;652:3172:97;;-1:-1:-1;;;786:20:71;;652:3172:97;;786:20:71;652:3172:97;;;;;;-1:-1:-1;;652:3172:97;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;-1:-1:-1;;652:3172:97;;;;;;-1:-1:-1;652:3172:97;2431:59:96;652:3172:97;;;;-1:-1:-1;652:3172:97;;;;;;;;;;;;;;-1:-1:-1;;652:3172:97;;;;3875:17:96;652:3172:97;;3895:30:96;652:3172:97;;;;;3895:14:96;;;:::i;:::-;652:3172:97;;;3895:30:96;;:::i;:::-;652:3172:97;;;;;;;3874:63:96;652:3172:97;3874:63:96;;:::i;:::-;652:3172:97;;;;;;;;;;;;;-1:-1:-1;;652:3172:97;;;;;;1200:42:96;-1:-1:-1;;;;;652:3172:97;;;;;;;;;;;;-1:-1:-1;;652:3172:97;;;;;;2136:32:96;652:3172:97;;;;;;;;;;;;;;;;;;-1:-1:-1;;652:3172:97;;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;652:3172:97;5606:15:96;652:3172:97;;;5606:33:96;652:3172:97;-1:-1:-1;652:3172:97;5606:33:96;:::i;652:3172:97:-;;;;;;-1:-1:-1;;652:3172:97;;;;2303:62:24;;:::i;:::-;-1:-1:-1;;;;;;;;;;;652:3172:97;;-1:-1:-1;;;;;;652:3172:97;;;;;;;-1:-1:-1;;;;;652:3172:97;3975:40:24;652:3172:97;;3975:40:24;652:3172:97;;;;;;;-1:-1:-1;;652:3172:97;;;;;;;;;;;:::i;:::-;3217:103:28;;:::i;:::-;7131:7:95;652:3172:97;7117:21:95;;-1:-1:-1;;;;;652:3172:97;;-1:-1:-1;;;;;652:3172:97;;;7117:21:95;:10;:21;7113:71;;7218:14;;:::i;:::-;7265:25;;;;:::i;:::-;7305:17;;;;:53;;;652:3172:97;7304:87:95;;;;652:3172:97;7300:146:95;;652:3172:97;5173:21:96;9310:48:95;5173:21:96;;;:::i;:::-;7540:17:95;7528:30;7540:17;;;:::i;:::-;652:3172:97;;7528:11:95;652:3172:97;;;;;;;7528:30:95;652:3172:97;;7572:29:95;;;;;7642:30;;;;;:::i;:::-;7702:32;;;;:::i;:::-;7752:17;;;7748:384;;7568:1615;;;;;;;9197:17;9193:102;;7568:1615;652:3172:97;;;;;;;;;;;;;;;;;;;;;;;9310:48:95;3282:1:28;1805;-1:-1:-1;;;;;;;;;;;652:3172:97;3716:283:28;3282:1;652:3172:97;;;;;;;;;;;;;9193:102:95;-1:-1:-1;652:3172:97;9270:13:95;;652:3172:97;;9230:18:95;;652:3172:97;;-1:-1:-1;;;;;652:3172:97;;;9230:18:95;7556:1;652:3172:97;-1:-1:-1;;;;;652:3172:97;9270:13:95;;:::i;:::-;9193:102;;7748:384;8045:29;7813:50;7962:65;7813:50;7998:28;7914:29;7813:50;8057:16;7813:50;8077:40;7813:50;;;:::i;:::-;7914:29;;;:::i;:::-;837:15:62;819:34;837:15;819:34;:::i;:::-;7998:28:95;;:::i;8077:40::-;8057:16;;:::i;8045:29::-;652:3172:97;7748:384:95;;;;;;;7568:1615;8185:26;;;;652:3172:97;;7528:11:95;652:3172:97;;;;;;;8185:26:95;652:3172:97;8250:27:95;:45;:27;;;;;:::i;:45::-;8325:32;;;;;:::i;:::-;8375:17;;8371:802;;7568:1615;;;;;;;;8371:802;9096:26;8436:50;;8537:53;8436:50;8637:54;8436:50;8637:29;8436:50;9125:33;8436:50;;;;:::i;:::-;8537:53;;;;;;:::i;:::-;8637:29;;;;:::i;:::-;:54;:::i;:::-;8714:33;;;;8710:194;;8371:802;8922:65;837:15:62;8958:28:95;9038:40;837:15:62;;;819:34;837:15;819:34;:::i;9038:40:95:-;9005:30;9017:17;;;:::i;9005:30::-;652:3172:97;9125:33:95;:::i;:::-;9096:26;652:3172:97;;7528:11:95;652:3172:97;;;;;;;9096:26:95;652:3172:97;8371:802:95;;;;;;;8710:194;8797:33;8771:59;8922:65;8797:33;;;9038:40;8797:33;;;:::i;:::-;8771:59;;:::i;:::-;8852:33;;-1:-1:-1;8852:33:95;;-1:-1:-1;8710:194:95;;7300:146;652:3172:97;;-1:-1:-1;;;7414:21:95;;652:3172:97;;7414:21:95;7304:87;7363:28;;;;7304:87;;7305:53;7341:17;;;;:::i;:::-;7326:32;;7305:53;;7113:71;652:3172:97;;-1:-1:-1;;;7161:12:95;;652:3172:97;;7161:12:95;652:3172:97;;;;;;-1:-1:-1;;652:3172:97;;;;4384:17:96;652:3172:97;;;;;;;4405:14:96;;;:::i;:::-;4384:17;652:3172:97;;;;;;;4404:36:96;652:3172:97;;;4404:36:96;;:::i;652:3172:97:-;;;;;;-1:-1:-1;;652:3172:97;;;;;;;:::i;:::-;-1:-1:-1;;;;;652:3172:97;;;;;5162:13:26;652:3172:97;;;;;;:::o;:::-;;;;;;-1:-1:-1;;652:3172:97;;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;652:3172:97;2307:68:96;652:3172:97;;;;;-1:-1:-1;652:3172:97;;;;;;;;;;;;;;;;;-1:-1:-1;;652:3172:97;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;-1:-1:-1;;652:3172:97;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;652:3172:97;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6491:14:95;652:3172:97;;6491:14:95;;:::i;652:3172:97:-;;;;;4994:47:96;652:3172:97;;;:::i;:::-;4994:47:96;;:::i;652:3172:97:-;;;;;;;;;;;;;;;;;;;;:::i;:::-;3217:103:28;;:::i;:::-;10932:22:95;652:3172:97;;;;;10928:89:95;;652:3172:97;;-1:-1:-1;;;11032:49:95;;-1:-1:-1;;;;;652:3172:97;;;11032:49:95;;;652:3172:97;;;;;;;;;;;;;;;11032:49:95;11042:17;;;652:3172:97;11032:49:95;;;;;;;-1:-1:-1;11032:49:95;;;652:3172:97;11031:50:95;;11027:102;;652:3172:97;;-1:-1:-1;;;11143:34:95;;652:3172:97;;;;;11143:34:95;652:3172:97;11143:34:95;652:3172:97;;11143:34:95;;;;;;;-1:-1:-1;11143:34:95;;;652:3172:97;11189:4:95;;;652:3172:97;;11143:51:95;11139:107;;-1:-1:-1;10932:22:95;652:3172:97;;-1:-1:-1;;;;;652:3172:97;;;;-1:-1:-1;;;;;;652:3172:97;;;;;;;-1:-1:-1;;;652:3172:97;;;11334:24:95;-1:-1:-1;;11334:24:95;3282:1:28;1805;-1:-1:-1;;;;;;;;;;;652:3172:97;3716:283:28;11139:107:95;652:3172:97;;-1:-1:-1;;;11217:18:95;;;11143:34;;;;;;;-1:-1:-1;11143:34:95;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;11027:102;-1:-1:-1;652:3172:97;;-1:-1:-1;;;11104:14:95;;;11032:49;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;10928:89;652:3172:97;;-1:-1:-1;;;10977:29:95;;;652:3172:97;;;;;;-1:-1:-1;;652:3172:97;;;;;;1298:40:96;-1:-1:-1;;;;;652:3172:97;;;;;;;;;;;;-1:-1:-1;;652:3172:97;;;;1703:14:95;;:::i;:::-;5173:21:96;;:::i;:::-;652:3172:97;;;;1750:11:95;652:3172:97;;;;;;;;;;;;;1791:1:95;652:3172:97;;;;;;;;;1750:11:95;652:3172:97;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;652:3172:97;;;;-1:-1:-1;;;;;;;;;;;652:3172:97;;;-1:-1:-1;;;;;652:3172:97;;;;;;;;;;;;;;-1:-1:-1;;652:3172:97;;;;;;3901:31:23;652:3172:97;;;;;:::i;:::-;;;-1:-1:-1;652:3172:97;-1:-1:-1;;;;;;;;;;;652:3172:97;;;-1:-1:-1;652:3172:97;;;;;;;;;;;;;;;;;3901:31:23;652:3172:97;;;;;;;;;;;;;;;;-1:-1:-1;;652:3172:97;;;;;;;-1:-1:-1;;;;;;;;;;;652:3172:97;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;652:3172:97;;;;;;;-1:-1:-1;;;;652:3172:97;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;652:3172:97;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;652:3172:97;;;;-1:-1:-1;652:3172:97;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;416:25:75;;;;477:31;416:25;;:::i;:::-;652:3172:97;;;;;;;;;;477:31:75;;652:3172:97;;;;;;;;;;;:::i;:::-;477:31:75;652:3172:97;;477:31:75;;;;;;:::i;:::-;518:79;;;652:3172:97;518:79:75;;652:3172:97;;;;;;-1:-1:-1;;652:3172:97;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;652:3172:97;;;;;;;;;;;;;;;;;-1:-1:-1;;652:3172:97;;;;;;;1109:35:96;652:3172:97;;;;;;;;;-1:-1:-1;;652:3172:97;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;3217:103:28;;:::i;:::-;3202:4:23;;:::i;:::-;-1:-1:-1;;;;;652:3172:97;;;9907:21:95;;9903:75;;-1:-1:-1;652:3172:97;;;9992:22:95;652:3172:97;;;;;;;;;;;;;9992:41:95;9988:91;;-1:-1:-1;;;;;652:3172:97;;;;;3586:22:95;652:3172:97;;;;;10145:44:95;;;;10089:40;;:31;652:3172:97;;;;;;;;;;;;;;10089:40:95;652:3172:97;;;;;;;;;;;;;;;10145:44:95;;;;3282:1:28;1805;-1:-1:-1;;;;;;;;;;;652:3172:97;3716:283:28;9903:75:95;652:3172:97;;-1:-1:-1;;;9951:16:95;;652:3172:97;;9951:16:95;652:3172:97;;;;;;-1:-1:-1;;652:3172:97;;;;;2666:94:96;652:3172:97;;;;;:::i;:::-;;;-1:-1:-1;652:3172:97;2666:94:96;652:3172:97;;;-1:-1:-1;652:3172:97;;;;;;;;;;;;;;;;;2666:94:96;652:3172:97;;;;;;;;;;;;;-1:-1:-1;;652:3172:97;;;;;;2816:92:96;652:3172:97;;;;;:::i;:::-;;;-1:-1:-1;652:3172:97;2816:92:96;652:3172:97;;;-1:-1:-1;652:3172:97;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;652:3172:97;;;;4911:5:26;652:3172:97;;;;;:::i;:::-;;;966:10:27;;4911:5:26;:::i;:::-;652:3172:97;;;4934:4:26;652:3172:97;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3217:103:28;;:::i;:::-;11459:20:95;652:3172:97;;;;;11455:85:95;;-1:-1:-1;;;;;652:3172:97;;;;;;11550:312:95;;652:3172:97;11459:20:95;652:3172:97;;-1:-1:-1;;;;652:3172:97;-1:-1:-1;;;652:3172:97;;;11872:27:95;11915:20;-1:-1:-1;11915:20:95;;3282:1:28;1805;-1:-1:-1;;;;;;;;;;;652:3172:97;3716:283:28;11550:312:95;652:3172:97;;-1:-1:-1;;;11597:45:95;;-1:-1:-1;;;;;652:3172:97;;11597:45:95;;;652:3172:97;;;11597:45:95;;652:3172:97;;;;;;11597:45:95;11607:15;;;652:3172:97;11597:45:95;;;;;;;-1:-1:-1;11597:45:95;;;11550:312;11596:46;;11592:104;;652:3172:97;;-1:-1:-1;;;11714:30:95;;;652:3172:97;11714:30:95;652:3172:97;11714:30:95;;;;;;;;-1:-1:-1;11714:30:95;;;11550:312;11756:4;;;652:3172:97;;11714:47:95;11710:109;;-1:-1:-1;11459:20:95;652:3172:97;;-1:-1:-1;;;;;;652:3172:97;-1:-1:-1;;;;;652:3172:97;;;;;;;;;11550:312:95;;;;;;11710:109;652:3172:97;;-1:-1:-1;;;11788:16:95;;;11714:30;;;;;;;-1:-1:-1;11714:30:95;;;;;;:::i;:::-;;;;;;11592:104;652:3172:97;;-1:-1:-1;;;11669:12:95;;652:3172:97;;11669:12:95;11597:45;;;;;;;;;;;;;;:::i;:::-;;;;11455:85;652:3172:97;;-1:-1:-1;;;11502:27:95;;;652:3172:97;;;;;;-1:-1:-1;;652:3172:97;;;;;;;;;:::i;:::-;;;3217:103:28;;;:::i;:::-;-1:-1:-1;;;;;652:3172:97;;;;;6112:23:95;;6108:79;;6273:6;652:3172:97;6206:13:95;;;;:::i;:::-;652:3172:97;;;-1:-1:-1;652:3172:97;;;;6273:6:95;:::i;:::-;652:3172:97;;;;;;;;;;;;6302:10:95;;6296:43;;652:3172:97;6296:43:95;1805:1:28;-1:-1:-1;;;;;;;;;;;652:3172:97;;;;;;;;;;;;;;6108:79:95;652:3172:97;;-1:-1:-1;;;6158:18:95;;652:3172:97;;6158:18:95;652:3172:97;;;;;;-1:-1:-1;;652:3172:97;;;;;;-1:-1:-1;652:3172:97;2546:64:96;652:3172:97;;;;-1:-1:-1;652:3172:97;;;;;;;;;;;;;;-1:-1:-1;;652:3172:97;;;;2058:22:96;652:3172:97;;;-1:-1:-1;;;;;652:3172:97;;;;;;;;;;;;;;-1:-1:-1;;652:3172:97;;;;;5173:21:96;;:::i;652:3172:97:-;;;;;;-1:-1:-1;;652:3172:97;;;;;;3217:103:28;;:::i;:::-;966:10:27;-1:-1:-1;652:3172:97;;;;;;;;;;1109:35:96;;652:3172:97;;4468:23:23;4464:108;;652:3172:97;;;;10692:21:95;10688:71;;652:3172:97;;10805:22:95;652:3172:97;;;;;;;;10805:22:95;1805:1:28;-1:-1:-1;;;;;;;;;;;652:3172:97;;4464:108:23;652:3172:97;;;;4514:47:23;;;;;;966:10:27;652:3172:97;4514:47:23;;652:3172:97;;;;;4514:47:23;652:3172:97;;;;;;-1:-1:-1;;652:3172:97;;;;;;;;;:::i;:::-;3123:14:95;;:::i;:::-;3154:24;;;:::i;:::-;3181:29;;;;;:::i;:::-;652:3172:97;;;;;;;3235:1:95;652:3172:97;;;;;;;3213:33:95;;;:::i;:::-;652:3172:97;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;652:3172:97;;;;1888:24:96;652:3172:97;;;-1:-1:-1;;;;;652:3172:97;;;;;;;;;;;;;;-1:-1:-1;;652:3172:97;;;;5767:26:23;652:3172:97;;;;;;;:::i;:::-;;-1:-1:-1;652:3172:97;-1:-1:-1;;;;;;;;;;;652:3172:97;;3202:4:23;4919:24;652:3172:97;-1:-1:-1;652:3172:97;4919:24:23;652:3172:97;3202:4:23;:::i;:::-;5767:26;:::i;652:3172:97:-;;;;;;-1:-1:-1;;652:3172:97;;;;;;;;;;;;;-1:-1:-1;;;;;652:3172:97;;;;;;;;;;;;-1:-1:-1;;652:3172:97;;;;;;;675:39:96;652:3172:97;;;;;;;;;-1:-1:-1;;652:3172:97;;;;;5162:29:26;652:3172:97;;;;;:::i;:::-;5162:20:26;652:3172:97;;;;;;:::i;:::-;5162:20:26;:::i;652:3172:97:-;;;;;;-1:-1:-1;;652:3172:97;;;;;;;;;;;;;;;;;;;-1:-1:-1;;652:3172:97;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;-1:-1:-1;;;;;652:3172:97;;;;;;;;;;;;;;;:::i;:::-;1972:48:95;;652:3172:97;;;;;;;:::i;:::-;;;;;;;;;;;;;;2034:16:95;;2030:111;;652:3172:97;;2233:39:95;1057:70:87;2233:39:95;;4622:48:96;2196:77:95;2233:39;;;;2196:77;;:::i;:::-;2312:36;;4994:47:96;652:3172:97;2312:36:95;;;4994:47:96;;:::i;:::-;2389:37:95;;;4622:48:96;;:::i;:::-;1057:70:87;;:::i;:::-;652:3172:97;;;;;;;;;;;;;2030:111:95;2089:41;;;;-1:-1:-1;652:3172:97;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;4622:48:96;652:3172:97;2196:77:95;652:3172:97;1057:70:87;652:3172:97;;;:::i;:::-;;;;;2030:111:95;;;;;652:3172:97;;;;;;-1:-1:-1;;652:3172:97;;;;2357:1:24;652:3172:97;;;;;:::i;:::-;2303:62:24;;:::i;:::-;2357:1;:::i;652:3172:97:-;;;;;;-1:-1:-1;;652:3172:97;;;;;;;;;:::i;:::-;;;3217:103:28;;:::i;:::-;-1:-1:-1;;;;;652:3172:97;;4890:21:95;4886:75;;4975:11;;4971:73;;845:69:87;4803:22:96;;:::i;:::-;5173:21;;:::i;:::-;845:69:87;;;:::i;:::-;5180:10:95;652:3172:97;;;;5606:15:96;652:3172:97;;;;;5180:10:95;;;5606:33:96;;;:::i;:::-;5150:41:95;;5146:96;;5267:40;;;;;:::i;5146:96::-;652:3172:97;;-1:-1:-1;;;5214:17:95;;652:3172:97;;5214:17:95;4971:73;652:3172:97;;-1:-1:-1;;;5009:24:95;;652:3172:97;;5009:24:95;652:3172:97;;;;;;-1:-1:-1;;652:3172:97;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;652:3172:97;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;:::o;:::-;;7556:1:95;652:3172:97;;;;;;;:::o;:::-;;;;;;;;;;:::o;5256:193:96:-;-1:-1:-1;;;;;652:3172:97;-1:-1:-1;652:3172:97;;;5383:15:96;652:3172:97;;;;;5383:59:96;;5256:193;;5383:59;:::i;652:3172:97:-;;;;;;;;;;1167:340:71;;652:3172:97;1167:340:71;6893:76:25;;:::i;:::-;;;:::i;:::-;1805:1:28;-1:-1:-1;;;;;;;;;;;652:3172:97;-1:-1:-1;;;;;652:3172:97;;1376:73:71;;1167:340;652:3172:97;;;;:::i;:::-;;;3642:39;;;;;;;652:3172;;;;;;;3642:39;;;652:3172;-1:-1:-1;;;;;652:3172:97;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;3734:29;652:3172;;2577:147:26;652:3172:97;3734:29;652:3172;;;;:::i;:::-;;;;;;;;3745:17;652:3172;3734:29;652:3172;;3734:29;;;;;;:::i;:::-;;:::i;:::-;3788:11;3801:13;;2577:147:26;;:::i;1376:73:71:-;6961:1:25;6893:76;;;:::i;:::-;;;:::i;6961:1::-;1376:73:71;;;2492:191:95;-1:-1:-1;;;;;652:3172:97;-1:-1:-1;652:3172:97;;;5606:15:96;652:3172:97;;;;;5606:33:96;;;:::i;:::-;5173:21;;:::i;:::-;4803:22;;:::i;:::-;652:3172:97;1884:1:87;652:3172:97;;;;;;;1884:1:87;652:3172:97;;;;;;;8188:25:57;;;:::i;652:3172:97:-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;:::i;3612:132:96:-;819:34:62;837:15;819:34;:::i;:::-;3683:54:96;3703:17;652:3172:97;3684:36:96;652:3172:97;;;;;;;3684:36:96;;:::i;:::-;652:3172:97;;;3683:54:96;;:::i;:::-;652:3172:97;3612:132:96;:::o;3313:244::-;3418:17;652:3172:97;;;;;;;;;;;;;;3406:29:96;3402:85;;3503:47;3504:29;;;;:::i;3402:85::-;652:3172:97;;-1:-1:-1;;;3458:18:96;;;;;3217:103:28;;;;:::i;:::-;652:3172:97;;-1:-1:-1;;;;;652:3172:97;;;6521:23:95;;6517:79;;6650:11;;6646:70;;652:3172:97;6742:10:95;;;;;;-1:-1:-1;652:3172:97;;6887:49:95;;652:3172:97;;;;6864:6:95;;652:3172:97;;6821:18:95;;652:3172:97;;-1:-1:-1;;;;;652:3172:97;;;6821:18:95;6864:6;:::i;:::-;6887:49;652:3172:97;;6898:10:95;;;;6887:49;;;:::i;:::-;;;;3282:1:28;;1805;-1:-1:-1;;;;;;;;;;;652:3172:97;3716:283:28;6754:3:95;6790:9;6773:27;652:3172:97;6790:9:95;6783:17;6790:9;;;;;:::i;:::-;652:3172:97;6783:17:95;:::i;6773:27::-;6754:3;652:3172:97;6731:9:95;;6646:70;652:3172:97;;-1:-1:-1;;;6684:21:95;;;;;652:3172:97;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;652:3172:97;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;-1:-1:-1;652:3172:97;;;;:::o;:::-;;;:::o;3405:215:24:-;-1:-1:-1;;;;;652:3172:97;;;;3489:22:24;;3485:91;;-1:-1:-1;;;;;;;;;;;652:3172:97;;-1:-1:-1;;;;;;652:3172:97;;;;;;;;3975:40:24;-1:-1:-1;;3975:40:24;3405:215::o;3485:91::-;652:3172:97;;-1:-1:-1;;;3534:31:24;;3509:1;3534:31;;;652:3172:97;;;3534:31:24;2731:227:95;;2871:34;2731:227;652:3172:97;-1:-1:-1;652:3172:97;2871:18:95;652:3172:97;;;-1:-1:-1;652:3172:97;;;;;;;;;;;;;;;;;2871:34:95;652:3172:97;;-1:-1:-1;652:3172:97;2907:11:95;652:3172:97;;;-1:-1:-1;652:3172:97;;2927:16:95;652:3172:97;;;-1:-1:-1;652:3172:97;;;1884:1:87;652:3172:97;;;;;;;1884:1:87;652:3172:97;;;;;;;8188:25:57;;;:::i;3326:384:28:-;-1:-1:-1;;;;;;;;;;;1847:1:28;652:3172:97;;3526:20:28;3522:88;;1847:1;652:3172:97;;3326:384:28:o;3522:88::-;652:3172:97;;-1:-1:-1;;;3569:30:28;;;;;1867:311:97;12135:10:95;-1:-1:-1;652:3172:97;;;5606:15:96;652:3172:97;;;;;1867:311;;;-1:-1:-1;;1867:311:97;;12119:93:95;;819:34:62;837:15;819:34;:::i;:::-;12135:10:95;652:3172:97;;;;5606:15:96;652:3172:97;;;;;12170:41:95;;12135:10;;5606:33:96;;;:::i;12119:93:95:-;837:15:62;;12222:67:95;819:34:62;837:15;819:34;:::i;:::-;12259:29:95;4803:22:96;;;:::i;12222:67:95:-;837:15:62;;12299:68:95;819:34:62;837:15;819:34;:::i;:::-;12335:31:95;5173:21:96;;;:::i;12299:68:95:-;12394:14;;;12769:34;12394:14;12769:25;12394:18;:14;;:::i;:::-;:18;:::i;:::-;12726:33;12445:18;;652:3172:97;;7528:11:95;652:3172:97;;;;;;;12445:18:95;652:3172:97;12502:23:95;;652:3172:97;;12502:16:95;652:3172:97;;;;;;;12502:23:95;652:3172:97;12660:30:95;390:70:87;;;;;:::i;:::-;12660:30:95;;;;:::i;:::-;12639:18;;652:3172:97;;7528:11:95;652:3172:97;;;;;;;12639:18:95;652:3172:97;12726:33:95;:::i;:::-;12700:23;;652:3172:97;;12502:16:95;652:3172:97;;;;;;;12700:23:95;652:3172:97;;;12769:18:95;652:3172:97;;;;;;;12769:34:95;:50;652:3172:97;;;12769:50:95;:::i;:::-;652:3172:97;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;652:3172:97;;;;;12135:10:95;;12835:74;;652:3172:97;;12835:74:95;652:3172:97;;;;;;12135:10:95;;2125:46:97;;652:3172;;;;2125:46;;;;1867:311::o;6868:300:26:-;;-1:-1:-1;;;;;652:3172:97;;;;;6951:18:26;;6947:86;;652:3172:97;;7046:16:26;;;7042:86;;-1:-1:-1;;;;;652:3172:97;;;;;;5606:15:96;652:3172:97;;;;;5606:33:96;;;:::i;:::-;2607:19:97;;;;2603:115;;3459:25;2838:21;:65;3459:25;2838:21;;;3354:65;2838:21;652:3172;;;;;;;;5606:15:96;652:3172:97;;;;;;;2838:21;837:15:62;;819:34;837:15;819:34;:::i;:::-;652:3172:97;;2838:65;;:::i;:::-;-1:-1:-1;;;;;;;652:3172:97;;;;;;5606:15:96;652:3172:97;;;;;837:15:62;;5606:33:96;:24;819:34:62;837:15;819:34;:::i;:::-;-1:-1:-1;;;;;652:3172:97;;;;;;;5606:15:96;652:3172:97;;;;;;;5606:33:96;652:3172:97;3354:65;;:::i;:::-;-1:-1:-1;;652:3172:97;;;;;;;;;;;;;2603:115;652:3172;;-1:-1:-1;;;2653:50:97;;-1:-1:-1;;;;;652:3172:97;;;;2653:50;;;652:3172;;;;;;;;;;;;;;;;12266:60:26;7042:86;652:3172:97;;-1:-1:-1;;;7085:32:26;;6967:1;7085:32;;;652:3172:97;;;7085:32:26;6947:86;652:3172:97;;-1:-1:-1;;;6992:30:26;;6967:1;6992:30;;;652:3172:97;;;6992:30:26;14291:213:58;652:3172:97;14369:24:58;;;;14365:103;;652:3172:97;14291:213:58;:::o;14365:103::-;652:3172:97;;;;14416:41:58;;;;;;14447:2;14416:41;;;652:3172:97;;;;;14416:41:58;652:3172:97;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;:::o;7558:604:86:-;;652:3172:97;;7686:17:86;7682:83;;652:3172:97;7789:27:86;652:3172:97;7789:27:86;652:3172:97;;7789:27:86;;;;;;:::i;:::-;7860:14;;;:::i;:::-;652:3172:97;;;;;;;;;;;;;;;;7888:22:86;;;7884:77;;7975:21;-1:-1:-1;7975:84:86;;;;7558:604;7971:139;;;;8127:28;;;;:::i;7971:139::-;7789:27;8082:17;;;652:3172:97;8075:24:86;:::o;7975:84::-;652:3172:97;;;8009:16:86;4622:13:96;652:3172:97;8009:16:86;:::i;:::-;652:3172:97;;;8001:24:86;:57;;;;;7975:84;;;;;;;8001:57;8029:29;8038:8;;;8029:18;8038:8;8029:23;8038:8;;:::i;:::-;8029:18;:::i;:::-;652:3172:97;;;;;8029:23:86;652:3172:97;;;;8029:29:86;;8001:57;;;;7884:77;7933:17;;;7789:27;7933:17;;;652:3172:97;7926:24:86;:::o;7682:83::-;7726:28;;;;:::i;7558:604::-;;652:3172:97;;7686:17:86;7682:83;;652:3172:97;7789:27:86;652:3172:97;7789:27:86;652:3172:97;;7789:27:86;;;;;;:::i;:::-;7860:14;;;:::i;:::-;652:3172:97;;;;;;;;;;;;;;;;7888:22:86;;;7884:77;;7975:21;-1:-1:-1;7975:84:86;;;;7558:604;7971:139;;;;8127:28;;;;:::i;7975:84::-;652:3172:97;;;8009:16:86;4994:12:96;652:3172:97;8009:16:86;:::i;:::-;652:3172:97;;;8001:24:86;:57;;;;;7975:84;;;;;;;8001:57;8029:29;8038:8;;;8029:18;8038:8;8029:23;8038:8;;:::i;:::-;8029:18;:::i;:29::-;;8001:57;;;;7682:83;7726:28;;;;:::i;7558:604::-;;652:3172:97;;7686:17:86;7682:83;;652:3172:97;7789:27:86;652:3172:97;7789:27:86;652:3172:97;;7789:27:86;;;;;;:::i;:::-;7860:14;;;;;:::i;:::-;652:3172:97;;;;;;;;;;;;;;;;7888:22:86;;;7884:77;;7975:21;-1:-1:-1;7975:84:86;;;;7558:604;7971:139;;;;8127:28;;;;:::i;7971:139::-;8082:17;;7789:27;8082:17;652:3172:97;8075:24:86;:::o;7975:84::-;652:3172:97;;;8009:16:86;652:3172:97;;8009:16:86;:::i;:::-;652:3172:97;;;8001:24:86;:57;;;;;7975:84;;;;;;;8001:57;8029:29;8038:8;;;8029:18;8038:8;8029:23;8038:8;;:::i;:::-;8029:18;;:::i;:29::-;;8001:57;;;;7884:77;7933:17;;;;;7789:27;7933:17;652:3172:97;7926:24:86;:::o;7682:83::-;7726:28;;;;:::i;4148:103:23:-;966:10:27;-1:-1:-1;652:3172:97;;;;;;;;;675:39:96;;652:3172:97;;3901:31:23;652:3172:97;;4468:23:23;4464:108;;4148:103;:::o;:::-;966:10:27;-1:-1:-1;652:3172:97;;;;;;;;;966:38:96;;652:3172:97;;3901:31:23;652:3172:97;4148:103:23;966:10:27;-1:-1:-1;652:3172:97;;;;;;;;;821:37:96;;652:3172:97;;3901:31:23;652:3172:97;4148:103:23;-1:-1:-1;652:3172:97;;;-1:-1:-1;;;;;;;;;;;652:3172:97;;;;;;;;966:10:27;652:3172:97;;;;;;;;;3901:31:23;652:3172:97;7270:387:23;-1:-1:-1;;;;;652:3172:97;;13555:17:95;652:3172:97;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2887:71:23;652:3172:97;;;;13555:17:95;652:3172:97;;;;;;;;;;;-1:-1:-1;;;;;652:3172:97;;;;;;;;;;-1:-1:-1;;652:3172:97;7509:4:23;652:3172:97;;;966:10:27;;-1:-1:-1;;;;;652:3172:97;-1:-1:-1;7532:40:23;-1:-1:-1;;7532:40:23;7509:4;7586:11;:::o;7432:219::-;7628:12;;13555:17:95;7628:12:23;:::o;7270:387::-;-1:-1:-1;;;;;652:3172:97;;-1:-1:-1;652:3172:97;;;;;;;;;675:39:96;;-1:-1:-1;;;;;;;;;;;2887:71:23;652:3172:97;;3901:31:23;652:3172:97;;;;-1:-1:-1;652:3172:97;;;;;;;;;;;-1:-1:-1;;;;;652:3172:97;;;;;;;;;;-1:-1:-1;;652:3172:97;7509:4:23;652:3172:97;;;966:10:27;;-1:-1:-1;;;;;652:3172:97;;7532:40:23;-1:-1:-1;;7532:40:23;7509:4;7586:11;:::o;7432:219::-;7628:12;;;-1:-1:-1;7628:12:23;:::o;7270:387::-;-1:-1:-1;;;;;652:3172:97;;-1:-1:-1;652:3172:97;;;;;;;;;821:37:96;;-1:-1:-1;;;;;;;;;;;2887:71:23;652:3172:97;;3901:31:23;652:3172:97;7270:387:23;-1:-1:-1;;;;;652:3172:97;;-1:-1:-1;652:3172:97;;;;;;;;;966:38:96;;-1:-1:-1;;;;;;;;;;;2887:71:23;652:3172:97;;3901:31:23;652:3172:97;7270:387:23;-1:-1:-1;;;;;652:3172:97;;-1:-1:-1;652:3172:97;;;;;;;;;1109:35:96;;-1:-1:-1;;;;;;;;;;;2887:71:23;652:3172:97;;3901:31:23;652:3172:97;7270:387:23;-1:-1:-1;652:3172:97;;;-1:-1:-1;;;;;;;;;;;652:3172:97;;;;;;;;-1:-1:-1;;;;;652:3172:97;;;;;;;;;;;;3901:31:23;652:3172:97;7892:388:23;-1:-1:-1;652:3172:97;;;-1:-1:-1;;;;;;;;;;;652:3172:97;;;;;;;;-1:-1:-1;;;;;652:3172:97;;;;;;;;;;;;;;;;-1:-1:-1;652:3172:97;;;;;;;;;;;-1:-1:-1;;;;;652:3172:97;;;;;;;;;;-1:-1:-1;;652:3172:97;;;966:10:27;;-1:-1:-1;;;;;652:3172:97;;8155:40:23;-1:-1:-1;;8155:40:23;652:3172:97;8209:11:23;:::o;652:3172:97:-;;;;;;;;;;;:::o;:::-;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;652:3172:97;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;652:3172:97;;;;;;;;;;;;;;;;-1:-1:-1;;;;;652:3172:97;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;652:3172:97;;;;;;;;;;-1:-1:-1;;;;;652:3172:97;;;;;;;;;;-1:-1:-1;;;;;652:3172:97;;;;;;;;;;-1:-1:-1;;;;;652:3172:97;;;;;;;;;;-1:-1:-1;;;;;652:3172:97;;;;;2658:162:24;-1:-1:-1;;;;;;;;;;;652:3172:97;-1:-1:-1;;;;;652:3172:97;966:10:27;2717:23:24;2713:101;;2658:162::o;2713:101::-;652:3172:97;;-1:-1:-1;;;2763:40:24;;966:10:27;2763:40:24;;;652:3172:97;;;2763:40:24;2557:104:57;;2641:5;;;;;;:13;2557:104;:::o;2641:13::-;;;2557:104;:::o;652:3172:97:-;;;;;;;:::o;3803:4116:57:-;;;652:3172:97;;;;-1:-1:-1;;3803:4116:57;;4383:131;;;;;;;;;;;;4595:10;;4591:368;;5065:20;;;;5061:88;;5435:300;;;652:3172:97;-1:-1:-1;652:3172:97;5954:31:57;;5999:371;;;6813:1;652:3172:97;;6794:1:57;652:3172:97;6793:21:57;652:3172:97;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5999:371:57;;;;-1:-1:-1;5999:371:57;;;5435:300;;;;;;652:3172:97;5435:300:57;;5999:371;6436:21;652:3172:97;3803:4116:57;:::o;5061:88::-;652:3172:97;;-1:-1:-1;;;5112:22:57;;;;;4591:368;4925:19;;;;;;;:::i;652:3172:97:-;7178:12:86;652:3172:97;;;;;;7178:12:86;-1:-1:-1;652:3172:97;-1:-1:-1;;;;;;;;;;;652:3172:97;;-1:-1:-1;652:3172:97;:::o;:::-;7178:12:86;652:3172:97;;;;;;7178:12:86;-1:-1:-1;652:3172:97;-1:-1:-1;;;;;;;;;;;652:3172:97;;-1:-1:-1;652:3172:97;:::o;:::-;;;;;;;;-1:-1:-1;652:3172:97;;-1:-1:-1;652:3172:97;;;-1:-1:-1;652:3172:97;:::o;:::-;6360:12:86;652:3172:97;-1:-1:-1;;;652:3172:97;;;;;;;;;6360:12:86;652:3172:97;;;;;;6360:12:86;-1:-1:-1;652:3172:97;-1:-1:-1;;;;;;;;;;;652:3172:97;;:::o;:::-;6360:12:86;652:3172:97;-1:-1:-1;;;652:3172:97;;;;;;;;;6360:12:86;652:3172:97;;;;;;6360:12:86;-1:-1:-1;652:3172:97;-1:-1:-1;;;;;;;;;;;652:3172:97;;:::o;:::-;;;;;-1:-1:-1;;;652:3172:97;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;12178:17:26;;;652:3172:97;;;;;;;;6246:584:86;;;;6360:12;652:3172:97;;;6360:24:86;;6356:75;;6246:584;6474:30;;;:::i;:::-;652:3172:97;;;;;;6578:12:86;;;:::i;:::-;6604:24;;;;6246:584;-1:-1:-1;6600:188:86;;;-1:-1:-1;;;652:3172:97;;;;;;;;;-1:-1:-1;652:3172:97;;;-1:-1:-1;652:3172:97;;;;;;6798:25:86;652:3172:97;6246:584:86:o;6600:188::-;8167:38:60;;-1:-1:-1;;;;;652:3172:97;;-1:-1:-1;8167:38:60;:::i;:::-;6753:24:86;;;;;:::i;:::-;6798:25;6246:584;:::o;6604:24::-;652:3172:97;;;;;;6614:14:86;;-1:-1:-1;6604:24:86;;;6356:75;-1:-1:-1;;;652:3172:97;;;;;;;;;;;;;;;;-1:-1:-1;652:3172:97;;;;-1:-1:-1;;;;;;;;;;;652:3172:97;;6356:75:86;;;6246:584;;;;6360:12;652:3172:97;;;6360:24:86;;6356:75;;6246:584;6474:30;;;:::i;:::-;652:3172:97;;;;;;6578:12:86;;;:::i;:::-;6604:24;;;;6246:584;-1:-1:-1;6600:188:86;;;-1:-1:-1;;;652:3172:97;;;;;;;;;-1:-1:-1;652:3172:97;;;-1:-1:-1;652:3172:97;;;;;;6798:25:86;652:3172:97;6246:584:86:o;6600:188::-;8167:38:60;;-1:-1:-1;;;;;652:3172:97;;-1:-1:-1;8167:38:60;:::i;:::-;6753:24:86;;;;;:::i;6604:::-;652:3172:97;;;;;;6614:14:86;;-1:-1:-1;6604:24:86;;;6356:75;-1:-1:-1;;;652:3172:97;;;;;;;;;;;;;;;;-1:-1:-1;652:3172:97;;;;-1:-1:-1;;;;;;;;;;;652:3172:97;;6356:75:86;;;6246:584;;;;;6360:12;;;652:3172:97;;;6360:24:86;;6356:75;;6246:584;6474:30;;;;;:::i;:::-;652:3172:97;;;;;;6578:12:86;;;;:::i;:::-;6604:24;;;;6246:584;-1:-1:-1;6600:188:86;;;-1:-1:-1;;;;;652:3172:97;;;;;;;6644:21:86;;;:29;:21;;:::i;6600:188::-;6753:24;;652:3172:97;;8167:38:60;;-1:-1:-1;;;;;652:3172:97;;;;;8167:38:60;:::i;:::-;6753:24:86;;;:::i;6604:::-;652:3172:97;;;;;;6614:14:86;;-1:-1:-1;6604:24:86;;;6356:75;-1:-1:-1;;;652:3172:97;;;;;;6360:12:86;652:3172:97;;;;;;;:::i;:::-;;;12178:17:26;;;652:3172:97;;;;;;;;6356:75:86;;;1303:160:45;652:3172:97;;-1:-1:-1;;;1412:43:45;;;;-1:-1:-1;;;;;652:3172:97;;;1412:43:45;;;652:3172:97;;;;;;;;;1412:43:45;;;652:3172:97;;;;-1:-1:-1;;;;;652:3172:97;;;;;;;;1412:43:45;652:3172:97;;;1412:43:45;:::i;12922:460:95:-;;13024:14;;:::i;:::-;13015:23;;;13011:75;;-1:-1:-1;652:3172:97;;;13100:20:95;652:3172:97;;;;;;;;13128:10:95;652:3172:97;;;;;;;;;;13096:93:95;;13208:32;13128:10;13208:32;;:::i;:::-;13255:11;;;13251:68;;-1:-1:-1;652:3172:97;;;13100:20:95;652:3172:97;;;;;;;;13128:10:95;652:3172:97;;;;;;;;;-1:-1:-1;;652:3172:97;13371:4:95;652:3172:97;;;12922:460:95:o;13251:68::-;652:3172:97;;-1:-1:-1;;;13289:19:95;;;;;13096:93;652:3172:97;;-1:-1:-1;;;13162:16:95;;;;;13011:75;652:3172:97;;-1:-1:-1;;;13061:14:95;;;;;10580:184:86;4803:13:96;652:3172:97;10303:8:60;;;:63;-1:-1:-1;10303:63:60;-1:-1:-1;;;;;652:3172:97;;10726:7:86;652:3172:97;;10736:12:86;652:3172:97;;;;;;10736:12:86;-1:-1:-1;652:3172:97;-1:-1:-1;;;;;;;;;;;652:3172:97;;10580:184:86;:::o;10726:31::-;;-1:-1:-1;10580:184:86;:::o;10303:63:60:-;12178:17:26;;;652:3172:97;;;;;4803:13:96;-1:-1:-1;14249:109:60;;;652:3172:97;;;10303:63:60;;10580:184:86;5173:12:96;652:3172:97;10303:8:60;;;:63;-1:-1:-1;10303:63:60;-1:-1:-1;;;;;652:3172:97;;10726:7:86;652:3172:97;;10736:12:86;652:3172:97;;;;;;10736:12:86;-1:-1:-1;652:3172:97;-1:-1:-1;;;;;;;;;;;652:3172:97;;10580:184:86;:::o;10303:63:60:-;12178:17:26;;;652:3172:97;;;;;5173:12:96;-1:-1:-1;14249:109:60;;;652:3172:97;;;10303:63:60;;10580:184:86;652:3172:97;;10303:8:60;;;:63;-1:-1:-1;10303:63:60;-1:-1:-1;;;;;652:3172:97;;10726:7:86;652:3172:97;;10736:12:86;:17;:12;;:17;:::i;:::-;652:3172:97;;;;;;10580:184:86;:::o;10303:63:60:-;12178:17:26;;652:3172:97;;;;;;;;14249:109:60;-1:-1:-1;14249:109:60;;-1:-1:-1;14249:109:60;;;652:3172:97;;;10303:63:60;;11224:487:26;;-1:-1:-1;;;;;652:3172:97;;;11389:19:26;11385:89;;652:3172:97;;11487:21:26;11483:90;;11582:20;:29;:20;;:::i;:29::-;652:3172:97;11224:487:26:o;1662:280:87:-;;;1884:1;652:3172:97;;;;;;;1884:1:87;652:3172:97;;;;;;;8188:25:57;;;:::i;6999:207:86:-;4622:13:96;652:3172:97;9594:15:60;-1:-1:-1;9619:18:60;9652:7;9658:1;9652:7;;9648:234;;6999:207:86;9906:53:60;;;;:::i;:::-;9977:8;;;:63;-1:-1:-1;9977:63:60;-1:-1:-1;;;;;652:3172:97;;7168:7:86;652:3172:97;;7178:17:86;652:3172:97;7178:17:86;;:::i;9977:63:60:-;9992:41;10025:7;9992:48;10025:7;;:::i;:::-;4622:13:96;14249:109:60;;-1:-1:-1;;;;;;;;;;;14249:109:60;14099:265;;9992:41;652:3172:97;;;;;9992:48:60;9977:63;;9648:234;9695:14;;;;;:::i;:::-;652:3172:97;;;;;;;9906:53:60;14249:109;4622:13:96;-1:-1:-1;14249:109:60;652:3172:97;14249:109:60;;-1:-1:-1;;;;;;;;;;;14249:109:60;652:3172:97;;;;;9727:48:60;9723:149;652:3172:97;;;9795:10:60;9723:149;9648:234;;9723:149;9850:7;;;;;;:::i;:::-;9723:149;9648:234;;6999:207:86;4994:12:96;652:3172:97;9594:15:60;-1:-1:-1;9619:18:60;9652:7;9658:1;9652:7;;9648:234;;6999:207:86;9906:53:60;;;;:::i;:::-;9977:8;;;:63;-1:-1:-1;9977:63:60;-1:-1:-1;;;;;652:3172:97;;7168:7:86;652:3172:97;;7178:17:86;652:3172:97;7178:17:86;;:::i;9977:63:60:-;9992:41;10025:7;9992:48;10025:7;;:::i;:::-;4994:12:96;14249:109:60;;-1:-1:-1;;;;;;;;;;;14249:109:60;14099:265;;9992:48;9977:63;;9648:234;9695:14;;;;;:::i;:::-;652:3172:97;;;;;;;9906:53:60;14249:109;4994:12:96;-1:-1:-1;14249:109:60;652:3172:97;14249:109:60;;-1:-1:-1;;;;;;;;;;;14249:109:60;652:3172:97;;;;;9727:48:60;9723:149;652:3172:97;;;9795:10:60;9723:149;9648:234;;9723:149;9850:7;;;;;;:::i;:::-;9723:149;9648:234;;6999:207:86;;652:3172:97;;9594:15:60;-1:-1:-1;9619:18:60;9652:7;9658:1;9652:7;;9648:234;;6999:207:86;9906:53:60;;;;;:::i;:::-;9977:8;;;:63;-1:-1:-1;9977:63:60;;-1:-1:-1;;;;;652:3172:97;;7168:7:86;652:3172:97;;;7178:12:86;;:17;:12;;:17;:::i;9977:63:60:-;9992:41;10025:7;9992:48;10025:7;;:::i;:::-;9992:41;14249:109;;;;;;14099:265;;9992:48;9977:63;;;9648:234;9695:14;;;;;:::i;:::-;652:3172:97;;;;;;;9906:53:60;14249:109;;-1:-1:-1;14249:109:60;652:3172:97;14249:109:60;;;-1:-1:-1;14249:109:60;;652:3172:97;;;;;9727:48:60;9723:149;652:3172:97;;;9795:10:60;9723:149;9648:234;;9723:149;9850:7;;;;;;:::i;:::-;9723:149;9648:234;;652:3172:97;;;;;;;:::i;:::-;-1:-1:-1;652:3172:97;;;;;;;:::o;11486:272:86:-;652:3172:97;;:::i;:::-;;;;:::i;:::-;;4622:13:96;652:3172:97;;;;;;;;4622:13:96;-1:-1:-1;652:3172:97;-1:-1:-1;;;;;;;;;;;652:3172:97;;:::i;:::-;;;;;;;;;;;;11731:17:86;;652:3172:97;;11718:12:86;652:3172:97;;;;;;11718:12:86;-1:-1:-1;652:3172:97;-1:-1:-1;;;;;;;;;;;652:3172:97;;;;;;;;:::i;:::-;;;;11672:79:86;;652:3172:97;11486:272:86;:::o;:::-;652:3172:97;;:::i;:::-;;;;:::i;:::-;;4994:12:96;652:3172:97;;;;;;;;4994:12:96;-1:-1:-1;652:3172:97;-1:-1:-1;;;;;;;;;;;652:3172:97;;:::i;:::-;;;;;;;;;;;;11731:17:86;;652:3172:97;;11718:12:86;652:3172:97;;;;;;11718:12:86;-1:-1:-1;652:3172:97;-1:-1:-1;;;;;;;;;;;652:3172:97;;;;;;;;:::i;11486:272:86:-;;652:3172:97;11308:22:60;11718:31:86;11486:272;652:3172:97;;:::i;:::-;;;;:::i;:::-;;11308:22:60;;:::i;:::-;652:3172:97;;:::i;:::-;;11718:12:86;652:3172:97;;;;;11731:17:86;652:3172:97;;;;;11731:17:86;;652:3172:97;;11718:12:86;;:31;:::i;:::-;652:3172:97;;;;;;;;;:::i;:::-;;;;;;11731:17:86;11672:79;;652:3172:97;11486:272:86;:::o;1702:188:45:-;652:3172:97;;-1:-1:-1;;;1829:53:45;;;;-1:-1:-1;;;;;652:3172:97;;;1829:53:45;;;652:3172:97;;;;;;;;;;;;;;;;;1829:53:45;;;652:3172:97;;;;;;;-1:-1:-1;;;;;652:3172:97;;;;;1829:53:45;652:3172:97;;;1829:53:45;:::i;7084:141:25:-;652:3172:97;-1:-1:-1;;;;;;;;;;;652:3172:97;;;;7150:18:25;7146:73;;7084:141::o;7146:73::-;652:3172:97;;-1:-1:-1;;;7191:17:25;;;;;652:3172:97;;;;;;;;;;;;:::i;13388:2406:95:-;13510:30;13388:2406;13510:30;652:3172:97;;;13510:30:95;;;;;;:::i;:::-;652:3172:97;;-1:-1:-1;;;;;652:3172:97;;;;13555:31:95;13551:88;;13653:20;;;;652:3172:97;;;;;;;;;;13653:25:95;13649:85;;13748:29;;;652:3172:97;;13748:29:95;;652:3172:97;13748:43:95;;-1:-1:-1;;;;;652:3172:97;;;13748:43:95;;13744:943;;13388:2406;652:3172:97;;;15647:32:95;652:3172:97;14817:36:95;652:3172:97;;;14697:30:95;652:3172:97;;;;;;;;;;;;13555:17:95;652:3172:97;;-1:-1:-1;;;;;;652:3172:97;;;;;;-1:-1:-1;;;;;652:3172:97;;;;;;;;14697:30:95;13510;14747:13;;652:3172:97;;;;-1:-1:-1;;;;;;652:3172:97;-1:-1:-1;;;;;652:3172:97;;;;;;;;;14771:36:95;819:34:62;837:15;819:34;:::i;:::-;14738:22:95;652:3172:97;;-1:-1:-1;;;;652:3172:97;;;;;;-1:-1:-1;;;652:3172:97;;;;;;;;;14738:22:95;652:3172:97;;-1:-1:-1;;;;;652:3172:97;;;;;;-1:-1:-1;;;;;;652:3172:97;;;;;;;;14817:36:95;14864:42;652:3172:97;14883:23:95;;;652:3172:97;;;;;;;;;13555:17:95;652:3172:97;;;;;;;13555:17:95;652:3172:97;;14864:42:95;14917:38;652:3172:97;14934:21:95;;;652:3172:97;;;;;;;13555:17:95;652:3172:97;;;;;;;;;;;;13555:17:95;652:3172:97;;14917:38:95;14965:34;14980:19;;;652:3172:97;14965:34:95;652:3172:97;;14965:34:95;652:3172:97;-1:-1:-1;;;;;652:3172:97;;;;;;;15010:135:95;;13388:2406;-1:-1:-1;15158:36:95;;;652:3172:97;-1:-1:-1;;;;;652:3172:97;;;;15154:157:95;;13388:2406;-1:-1:-1;15324:35:95;;;652:3172:97;-1:-1:-1;;;;;652:3172:97;;;;15320:153:95;;13388:2406;-1:-1:-1;15486:34:95;;;652:3172:97;-1:-1:-1;;;;;652:3172:97;;;;15482:152:95;;13388:2406;-1:-1:-1;15647:32:95;652:3172:97;-1:-1:-1;;;;;652:3172:97;;;;;;;15643:145:95;;13388:2406;:::o;15643:145::-;15709:68;;;:::i;:::-;;13388:2406::o;15482:152::-;15550:73;;;:::i;:::-;;15482:152;;;15320:153;15389:73;;;:::i;:::-;;15320:153;;;15154:157;15224:76;;;:::i;:::-;;15154:157;;;15010:135;15073:61;;;:::i;:::-;;15010:135;;;13744:943;13811:36;;;652:3172:97;13811:50:95;;-1:-1:-1;;;;;652:3172:97;;;13811:50:95;;13807:405;;13744:943;14230:34;;;652:3172:97;14230:48:95;;-1:-1:-1;;;;;652:3172:97;;;14230:48:95;13744:943;14226:451;14302:21;;;652:3172:97;;14302:21:95;;14351:19;;;652:3172:97;14351:24:95;:74;;;14298:365;14347:150;;14298:365;;652:3172:97;15647:32:95;14298:365;14817:36;652:3172:97;;14298:365:95;;14226:451;;;;;;;13744:943;;14347:150;652:3172:97;-1:-1:-1;;;14460:14:95;;;;;14351:74;-1:-1:-1;14379:32:95;;;652:3172:97;14379:46:95;;-1:-1:-1;;;;;652:3172:97;;;14379:46:95;;14351:74;;14298:365;14525:19;;;652:3172:97;14525:24:95;;;:74;;;14298:365;14521:142;;14298:365;;652:3172:97;15647:32:95;14298:365;14817:36;652:3172:97;;14298:365:95;;;14525:74;-1:-1:-1;14553:32:95;;;652:3172:97;14553:46:95;;-1:-1:-1;;;;;652:3172:97;;;14553:46:95;;;14525:74;;13807:405;13885:23;;;652:3172:97;;13885:23:95;;13936:35;;;652:3172:97;13936:49:95;;-1:-1:-1;;;;;652:3172:97;;;13936:49:95;13807:405;13932:125;652:3172:97;-1:-1:-1;;;14020:14:95;;;;;13881:317;14085:35;;;652:3172:97;14085:49:95;;-1:-1:-1;;;;;652:3172:97;;;14085:49:95;14081:117;13807:405;14081:117;652:3172:97;-1:-1:-1;;;14165:14:95;;;;;13649:85;652:3172:97;;-1:-1:-1;;;13701:22:95;;;;;13551:88;652:3172:97;;-1:-1:-1;;;13609:19:95;;;;;6893:76:25;;;;;:::i;:::-;;;:::i;:::-;652:3172:97;;-1:-1:-1;;;;;652:3172:97;;;;-1:-1:-1;;;;;;;;;;;652:3172:97;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;12178:17:26;;;652:3172:97;;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;652:3172:97;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;652:3172:97;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;12178:17:26;;652:3172:97;;2895:7:26;652:3172:97;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::o;10552:388:60:-;5173:12:96;652:3172:97;10728:8:60;;;10752:20;10690:17;10752:20;10690:17;10752:20;10690:17;10752:20;:::o;10724:210::-;12178:17:26;;;652:3172:97;;;;;14249:109:60;652:3172:97;14249:109:60;5173:12:96;10690:17:60;14249:109;;652:3172:97;:::i;:::-;;;;;;;14249:109:60;652:3172:97;;;;;10911:11:60;;652:3172:97;;10886:37:60;10870:1;10886:37;;;:::o;10552:388::-;4803:13:96;652:3172:97;10728:8:60;;;10752:20;10690:17;10752:20;10690:17;10752:20;10690:17;10752:20;:::o;10724:210::-;12178:17:26;;;652:3172:97;;;;;14249:109:60;652:3172:97;14249:109:60;4803:13:96;10690:17:60;14249:109;;652:3172:97;:::i;10552:388:60:-;652:3172:97;;10728:8:60;;;10752:20;;10690:17;10752:20;10690:17;10752:20;10690:17;10752:20;:::o;10724:210::-;12178:17:26;;652:3172:97;;;;;;;;;14249:109:60;10690:17;14249:109;;10690:17;14249:109;;;652:3172:97;:::i;4059:629:45:-;2847:1:46;4059:629:45;3510:55:46;4059:629:45;652:3172:97;;;;;;3462:31:46;;;;;;;;;;;;:::i;:::-;3510:55;;;:::i;:::-;652:3172:97;;4551:22:45;;;;:57;;;;4059:629;4547:135;;;;4059:629;:::o;4547:135::-;652:3172:97;;;;4631:40:45;;;;;;;;;652:3172:97;4631:40:45;4551:57;4578:30;;;3462:31:46;4578:30:45;;;;;;;;:::i;:::-;4577:31;4551:57;;;;1258:280:87;;;652:3172:97;;;;;;;;;;;;;;;;8188:25:57;;;;;:::i;:::-;8257;;;;;;8223:101;;1258:280:87;:::o;8223:101:57:-;652:3172:97;;;;;;;;1258:280:87;:::o;652:3172:97:-;;;;;;;;:::o;:::-;-1:-1:-1;;;;;;;;;;;;652:3172:97;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;-1:-1:-1;652:3172:97;;;;;;;;;-1:-1:-1;652:3172:97;;;;;;;;;;;;:::o;:::-;-1:-1:-1;;;;;;;;;;;;652:3172:97;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;-1:-1:-1;652:3172:97;;;;;;;;;-1:-1:-1;652:3172:97;;;;;;;;-1:-1:-1;;;;;652:3172:97;;;;-1:-1:-1;;;;;;;;;;;652:3172:97;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;12178:17:26;;;652:3172:97;;;;;;;;;;;;:::o;:::-;;;;;;;;-1:-1:-1;;;;;;;;;;;652:3172:97;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;12178:17:26;;652:3172:97;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5173:12:96;652:3172:97;;-1:-1:-1;;;652:3172:97;;;;;;;;;5173:12:96;652:3172:97;;;;;;5173:12:96;-1:-1:-1;652:3172:97;;;;;;;;;;-1:-1:-1;;652:3172:97;;;;;;;-1:-1:-1;;;;;;;;;;;652:3172:97;;;;:::o;:::-;4803:13:96;652:3172:97;;-1:-1:-1;;;652:3172:97;;;;;;;;;4803:13:96;652:3172:97;;;;;;4803:13:96;-1:-1:-1;652:3172:97;;;;;;;;;;-1:-1:-1;;652:3172:97;;;;;;;-1:-1:-1;;;;;;;;;;;652:3172:97;;;;:::o;:::-;;;-1:-1:-1;;;652:3172:97;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;652:3172:97;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;11513:870:60;5173:12:96;652:3172:97;11513:870:60;;;652:3172:97;11672:7:60;;;;652:3172:97;11775:28:60;11795:7;;;:::i;11775:28::-;652:3172:97;:::i;:::-;;;;;;;;;;-1:-1:-1;;11873:91:60;;652:3172:97;12233:11:60;652:3172:97;;;12027:16:60;652:3172:97;;;;;;;12027:16:60;;;;12083:7;12063:28;12083:7;12063:43;12083:7;;:::i;12063:28::-;652:3172:97;;;;;;;;;;;;;;;;;12063:43:60;12233:11;652:3172:97;-1:-1:-1;;;;;652:3172:97;;;12023:189:60;652:3172:97;;12145:52:60;652:3172:97;;12155:41:60;652:3172:97;;:::i;:::-;;;;;;;;12155:41:60;-1:-1:-1;;;;;652:3172:97;;12155:41:60;;;652:3172:97;12145:52:60;:::i;:::-;12023:189;;11873:91;652:3172:97;;-1:-1:-1;;;11919:30:60;;;;;11668:709;12283:52;652:3172:97;;12293:41:60;652:3172:97;;:::i;12293:41:60:-;-1:-1:-1;;;;;652:3172:97;;12293:41:60;;;652:3172:97;12145:52:60;:::i;12283:::-;11678:1;12349:17;;:::o;11513:870::-;4803:13:96;652:3172:97;11513:870:60;;;652:3172:97;11672:7:60;;;;652:3172:97;11775:28:60;11795:7;;;:::i;652:3172:97:-;;;;;;;;;;-1:-1:-1;;11873:91:60;;652:3172:97;12233:11:60;652:3172:97;;;12027:16:60;652:3172:97;;;;;;;12027:16:60;;;;12083:7;12063:28;12083:7;12063:43;12083:7;;:::i;12023:189::-;652:3172:97;;12145:52:60;652:3172:97;;12155:41:60;652:3172:97;;:::i;12155:41:60:-;-1:-1:-1;;;;;652:3172:97;;12155:41:60;;;652:3172:97;12145:52:60;:::i;11668:709::-;12283:52;652:3172:97;;12293:41:60;652:3172:97;;:::i;12293:41:60:-;-1:-1:-1;;;;;652:3172:97;;12293:41:60;;;652:3172:97;12145:52:60;:::i;11513:870::-;652:3172:97;;11513:870:60;;;652:3172:97;11513:870:60;11672:7;;;;652:3172:97;11775:28:60;11795:7;;;:::i;652:3172:97:-;;;;;;;;;;;;;;;;11877:15:60;-1:-1:-1;11873:91:60;;652:3172:97;;12233:11:60;652:3172:97;;;12027:16:60;652:3172:97;;;;;;;12027:16:60;;;;12083:7;12063:43;12083:7;;12063:28;12083:7;;:::i;:::-;12063:28;14249:109;;;;;;14099:265;;12023:189;652:3172:97;;;12145:52:60;652:3172:97;12155:41:60;652:3172:97;;:::i;:::-;;;;;;;;12155:41:60;-1:-1:-1;;;;;652:3172:97;;12155:41:60;;;652:3172:97;12145:52:60;:::i;11668:709::-;12283:52;652:3172:97;;12293:41:60;652:3172:97;;:::i;12293:41:60:-;-1:-1:-1;;;;;652:3172:97;;12293:41:60;;;652:3172:97;12145:52:60;:::i;8587:1642:57:-;8658:6;;8654:45;;9401:7;10201:10;10142:26;10093;10044;9995;9946;9897;9848;652:3172:97;10189:23:57;9401:7;8663:1;652:3172:97;;;;10826:16:57;10822:99;;8587:1642;652:3172:97;;;;10938:15:57;10934:96;;8587:1642;652:3172:97;;;;11047:15:57;11043:96;;8587:1642;652:3172:97;;;;11156:15:57;11152:96;;8587:1642;652:3172:97;;;;11265:14:57;11261:93;;8587:1642;652:3172:97;;;;11371:14:57;11367:93;;8587:1642;652:3172:97;;;;11477:14:57;11473:93;;8587:1642;652:3172:97;;;11579:64:57;;8587:1642;652:3172:97;;;9858:10:57;;;;:::i;:::-;652:3172:97;;;;;9848:26:57;9907:10;;;;:::i;9897:26::-;9956:10;;;;:::i;9946:26::-;10005:10;;;;:::i;9995:26::-;10054:10;;;;:::i;10044:26::-;10103:10;;;;:::i;10093:26::-;10152:10;;;;:::i;10142:26::-;10201:10;;;:::i;:::-;10189:23;;:::i;11579:64::-;652:3172:97;;11579:64:57;;11473:93;652:3172:97;11511:11:57;;652:3172:97;;11473:93:57;;;;11367;652:3172:97;11405:11:57;;652:3172:97;;11367:93:57;;;;11261;652:3172:97;11299:11:57;;652:3172:97;;11261:93:57;;;;11152:96;652:3172:97;11191:12:57;;652:3172:97;;11152:96:57;;;;11043;652:3172:97;11082:12:57;;652:3172:97;;11043:96:57;;;;10934;652:3172:97;10973:12:57;;652:3172:97;;10934:96:57;;;;10822:99;10862:13;;;652:3172:97;10822:99:57;;;;12736:433:60;;12919:10;;;;;;13151:11;;12736:433;:::o;12912:230::-;2900:5:57;;;;;652:3172:97;;2910:5:57;;;652:3172:97;;;;;;;;;4622:13:96;-1:-1:-1;14249:109:60;652:3172:97;14249:109:60;;-1:-1:-1;;;;;;;;;;;14249:109:60;652:3172:97;;;;;-1:-1:-1;12996:136:60;652:3172:97;;;13055:10:60;;12996:136;;12912:230;;;12996:136;652:3172:97;;;;;;;;;;;12996:136:60;;;12736:433;;12919:10;;;;;;13151:11;;12736:433;:::o;12912:230::-;2900:5:57;;;;;652:3172:97;;2910:5:57;;;652:3172:97;;;;;;;;;4994:12:96;-1:-1:-1;14249:109:60;652:3172:97;14249:109:60;;-1:-1:-1;;;;;;;;;;;14249:109:60;652:3172:97;;;;;-1:-1:-1;12996:136:60;652:3172:97;;;13055:10:60;;12996:136;;12912:230;;;12996:136;652:3172:97;;;;;;;;;;;12996:136:60;;;12736:433;;;12919:10;;;;;;13151:11;;;12736:433;:::o;12912:230::-;2900:5:57;;;;;;652:3172:97;;2910:5:57;;;652:3172:97;;;;;;;;;14249:109:60;-1:-1:-1;14249:109:60;652:3172:97;14249:109:60;;;-1:-1:-1;14249:109:60;;652:3172:97;;;;;-1:-1:-1;12996:136:60;652:3172:97;;;13055:10:60;;12996:136;;12912:230;;;;12996:136;652:3172:97;;;;;;;;;;;12996:136:60;;;4625:582:46;;4797:8;;-1:-1:-1;652:3172:97;;5874:21:46;:17;;6046:142;;;;;;5870:383;652:3172:97;;-1:-1:-1;;;6225:17:46;;;;;4793:408;652:3172:97;;5045:22:46;:49;;;4793:408;5041:119;;5173:17;;:::o;5041:119::-;652:3172:97;;-1:-1:-1;;;5121:24:46;;-1:-1:-1;;;;;652:3172:97;;;5121:24:46;;;652:3172:97;;;5121:24:46;5045:49;5071:18;;;:23;5045:49;","linkReferences":{},"immutableReferences":{"58075":[{"start":2715,"length":32},{"start":3267,"length":32}],"68715":[{"start":5506,"length":32},{"start":6953,"length":32}],"68718":[{"start":7314,"length":32},{"start":8687,"length":32}]}},"methodIdentifiers":{"DEFAULT_ADMIN_ROLE()":"a217fddf","DELEGATOR_FACTORY()":"6da3e06d","DEPOSITOR_WHITELIST_ROLE()":"1b66c9e1","DEPOSIT_LIMIT_SET_ROLE()":"a21a1df9","DEPOSIT_WHITELIST_SET_ROLE()":"db388715","FACTORY()":"2dd31000","IS_DEPOSIT_LIMIT_SET_ROLE()":"1415519b","SLASHER_FACTORY()":"87df0788","activeBalanceOf(address)":"59f769a9","activeBalanceOfAt(address,uint48,bytes)":"efb559d6","activeShares()":"bfefcd7b","activeSharesAt(uint48,bytes)":"50f22068","activeSharesOf(address)":"9d66201b","activeSharesOfAt(address,uint48,bytes)":"2d73c69c","activeStake()":"bd49c35f","activeStakeAt(uint48,bytes)":"810da75d","allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","burner()":"27810b6e","claim(address,uint256)":"aad3ec96","claimBatch(address,uint256[])":"7c04c80a","collateral()":"d8dfeb45","currentEpoch()":"76671808","currentEpochStart()":"61a8c8c4","decimals()":"313ce567","delegator()":"ce9b7930","deposit(address,uint256)":"47e7ef24","depositLimit()":"ecf70858","depositWhitelist()":"48d3b775","epochAt(uint48)":"7953b33b","epochDuration()":"4ff0876a","epochDurationInit()":"46361671","getRoleAdmin(bytes32)":"248a9ca3","grantRole(bytes32,address)":"2f2ff15d","hasRole(bytes32,address)":"91d14854","initialize(uint64,address,bytes)":"57ec83cc","isDelegatorInitialized()":"50861adc","isDepositLimit()":"a1b12202","isDepositorWhitelisted(address)":"794b15b7","isInitialized()":"392e53cd","isSlasherInitialized()":"6ec1e3f8","isWithdrawalsClaimed(uint256,address)":"a5d03223","migrate(uint64,bytes)":"2abe3048","name()":"06fdde03","nextEpochStart()":"73790ab3","onSlash(uint256,uint48)":"7278e31c","owner()":"8da5cb5b","previousEpochStart()":"281f5752","redeem(address,uint256)":"1e9a6950","renounceOwnership()":"715018a6","renounceRole(bytes32,address)":"36568abe","revokeRole(bytes32,address)":"d547741f","setDelegator(address)":"83cd9cc3","setDepositLimit(uint256)":"bdc8144b","setDepositWhitelist(bool)":"4105a7dd","setDepositorWhitelistStatus(address,bool)":"a2861466","setIsDepositLimit(bool)":"5346e34f","setSlasher(address)":"aabc2496","slashableBalanceOf(address)":"c31e8dd7","slasher()":"b1344271","staticDelegateCall(address,bytes)":"9f86fd85","supportsInterface(bytes4)":"01ffc9a7","symbol()":"95d89b41","totalStake()":"8b0e9f3f","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd","transferOwnership(address)":"f2fde38b","version()":"54fd4d50","withdraw(address,uint256)":"f3fef3a3","withdrawalShares(uint256)":"afba70ad","withdrawalSharesOf(uint256,address)":"a3b54172","withdrawals(uint256)":"5cc07076","withdrawalsOf(uint256,address)":"f5e7ee0f"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegatorFactory\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"slasherFactory\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"vaultFactory\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"AccessControlBadConfirmation\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"neededRole\",\"type\":\"bytes32\"}],\"name\":\"AccessControlUnauthorizedAccount\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"AddressEmptyCode\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"AddressInsufficientBalance\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AlreadyClaimed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AlreadyInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AlreadySet\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CheckpointUnorderedInsertion\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"DelegatorAlreadyInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"DepositLimitReached\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"allowance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientAllowance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSpender\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedInnerCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientClaim\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientDeposit\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientRedemption\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientWithdrawal\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidAccount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidCaptureEpoch\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidClaimer\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidCollateral\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidDelegator\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidEpoch\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidEpochDuration\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidLengthEpochs\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidOnBehalfOf\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidRecipient\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidSlasher\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidTimestamp\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MathOverflowedMulDiv\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MissingRoles\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NoPreviousEpoch\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotDelegator\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotFactory\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotSlasher\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotWhitelistedDepositor\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ReentrancyGuardReentrantCall\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"bits\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"SafeCastOverflowedUintDowncast\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"SafeERC20FailedOperation\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SlasherAlreadyInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TooMuchRedeem\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TooMuchWithdraw\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"claimer\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"epoch\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Claim\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"claimer\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"epochs\",\"type\":\"uint256[]\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"ClaimBatch\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"depositor\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"onBehalfOf\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"}],\"name\":\"Deposit\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint48\",\"name\":\"captureTimestamp\",\"type\":\"uint48\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"slashedAmount\",\"type\":\"uint256\"}],\"name\":\"OnSlash\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"previousAdminRole\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"newAdminRole\",\"type\":\"bytes32\"}],\"name\":\"RoleAdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleRevoked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"}],\"name\":\"SetDelegator\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"limit\",\"type\":\"uint256\"}],\"name\":\"SetDepositLimit\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"status\",\"type\":\"bool\"}],\"name\":\"SetDepositWhitelist\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"status\",\"type\":\"bool\"}],\"name\":\"SetDepositorWhitelistStatus\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"status\",\"type\":\"bool\"}],\"name\":\"SetIsDepositLimit\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"slasher\",\"type\":\"address\"}],\"name\":\"SetSlasher\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"withdrawer\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"claimer\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"burnedShares\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"mintedShares\",\"type\":\"uint256\"}],\"name\":\"Withdraw\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DEFAULT_ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"DELEGATOR_FACTORY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"DEPOSITOR_WHITELIST_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"DEPOSIT_LIMIT_SET_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"DEPOSIT_WHITELIST_SET_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"FACTORY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"IS_DEPOSIT_LIMIT_SET_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"SLASHER_FACTORY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"activeBalanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hints\",\"type\":\"bytes\"}],\"name\":\"activeBalanceOfAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"activeShares\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hint\",\"type\":\"bytes\"}],\"name\":\"activeSharesAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"activeSharesOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hint\",\"type\":\"bytes\"}],\"name\":\"activeSharesOfAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"activeStake\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hint\",\"type\":\"bytes\"}],\"name\":\"activeStakeAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"burner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"epoch\",\"type\":\"uint256\"}],\"name\":\"claim\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256[]\",\"name\":\"epochs\",\"type\":\"uint256[]\"}],\"name\":\"claimBatch\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"collateral\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"currentEpoch\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"currentEpochStart\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"delegator\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"onBehalfOf\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"deposit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"depositedAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"mintedShares\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"depositLimit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"depositWhitelist\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"}],\"name\":\"epochAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"epochDuration\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"epochDurationInit\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleAdmin\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"grantRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"initialVersion\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"owner_\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isDelegatorInitialized\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isDepositLimit\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"isDepositorWhitelisted\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"value\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isInitialized\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isSlasherInitialized\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"epoch\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"isWithdrawalsClaimed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"value\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"newVersion\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"migrate\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"nextEpochStart\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint48\",\"name\":\"captureTimestamp\",\"type\":\"uint48\"}],\"name\":\"onSlash\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"slashedAmount\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"previousEpochStart\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"claimer\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"}],\"name\":\"redeem\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"withdrawnAssets\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"mintedShares\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"callerConfirmation\",\"type\":\"address\"}],\"name\":\"renounceRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegator_\",\"type\":\"address\"}],\"name\":\"setDelegator\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"limit\",\"type\":\"uint256\"}],\"name\":\"setDepositLimit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"status\",\"type\":\"bool\"}],\"name\":\"setDepositWhitelist\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"status\",\"type\":\"bool\"}],\"name\":\"setDepositorWhitelistStatus\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"status\",\"type\":\"bool\"}],\"name\":\"setIsDepositLimit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"slasher_\",\"type\":\"address\"}],\"name\":\"setSlasher\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"slashableBalanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"slasher\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"staticDelegateCall\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalStake\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"version\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"claimer\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"withdraw\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"burnedShares\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"mintedShares\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"epoch\",\"type\":\"uint256\"}],\"name\":\"withdrawalShares\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"epoch\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"withdrawalSharesOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"epoch\",\"type\":\"uint256\"}],\"name\":\"withdrawals\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"epoch\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"withdrawalsOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"AccessControlBadConfirmation()\":[{\"details\":\"The caller of a function is not the expected one. NOTE: Don't confuse with {AccessControlUnauthorizedAccount}.\"}],\"AccessControlUnauthorizedAccount(address,bytes32)\":[{\"details\":\"The `account` is missing a role.\"}],\"AddressEmptyCode(address)\":[{\"details\":\"There's no code at `target` (it is not a contract).\"}],\"AddressInsufficientBalance(address)\":[{\"details\":\"The ETH balance of the account is not enough to perform the operation.\"}],\"CheckpointUnorderedInsertion()\":[{\"details\":\"A value was attempted to be inserted on a past checkpoint.\"}],\"ERC20InsufficientAllowance(address,uint256,uint256)\":[{\"details\":\"Indicates a failure with the `spender`\\u2019s `allowance`. Used in transfers.\",\"params\":{\"allowance\":\"Amount of tokens a `spender` is allowed to operate with.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"spender\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC20InsufficientBalance(address,uint256,uint256)\":[{\"details\":\"Indicates an error related to the current `balance` of a `sender`. Used in transfers.\",\"params\":{\"balance\":\"Current balance for the interacting account.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC20InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC20InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC20InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC20InvalidSpender(address)\":[{\"details\":\"Indicates a failure with the `spender` to be approved. Used in approvals.\",\"params\":{\"spender\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"FailedInnerCall()\":[{\"details\":\"A call to an address target failed. The target may have reverted.\"}],\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"MathOverflowedMulDiv()\":[{\"details\":\"Muldiv operation overflow.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}],\"ReentrancyGuardReentrantCall()\":[{\"details\":\"Unauthorized reentrant call.\"}],\"SafeCastOverflowedUintDowncast(uint8,uint256)\":[{\"details\":\"Value doesn't fit in an uint of `bits` size.\"}],\"SafeERC20FailedOperation(address)\":[{\"details\":\"An operation with an ERC20 token failed.\"}]},\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when the allowance of a `spender` for an `owner` is set by a call to {approve}. `value` is the new allowance.\"},\"Claim(address,address,uint256,uint256)\":{\"params\":{\"amount\":\"amount of the collateral claimed\",\"claimer\":\"account that claimed\",\"epoch\":\"epoch the collateral was claimed for\",\"recipient\":\"account that received the collateral\"}},\"ClaimBatch(address,address,uint256[],uint256)\":{\"params\":{\"amount\":\"amount of the collateral claimed\",\"claimer\":\"account that claimed\",\"epochs\":\"epochs the collateral was claimed for\",\"recipient\":\"account that received the collateral\"}},\"Deposit(address,address,uint256,uint256)\":{\"params\":{\"amount\":\"amount of the collateral deposited\",\"depositor\":\"account that made the deposit\",\"onBehalfOf\":\"account the deposit was made on behalf of\",\"shares\":\"amount of the active shares minted\"}},\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"OnSlash(uint256,uint48,uint256)\":{\"params\":{\"amount\":\"amount of the collateral to slash\",\"captureTimestamp\":\"time point when the stake was captured\",\"slashedAmount\":\"real amount of the collateral slashed\"}},\"RoleAdminChanged(bytes32,bytes32,bytes32)\":{\"details\":\"Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole` `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite {RoleAdminChanged} not being emitted signaling this.\"},\"RoleGranted(bytes32,address,address)\":{\"details\":\"Emitted when `account` is granted `role`. `sender` is the account that originated the contract call, an admin role bearer except when using {AccessControl-_setupRole}.\"},\"RoleRevoked(bytes32,address,address)\":{\"details\":\"Emitted when `account` is revoked `role`. `sender` is the account that originated the contract call: - if using `revokeRole`, it is the admin role bearer - if using `renounceRole`, it is the role bearer (i.e. `account`)\"},\"SetDelegator(address)\":{\"details\":\"Can be set only once.\",\"params\":{\"delegator\":\"vault's delegator to delegate the stake to networks and operators\"}},\"SetDepositLimit(uint256)\":{\"params\":{\"limit\":\"deposit limit (maximum amount of the collateral that can be in the vault simultaneously)\"}},\"SetDepositWhitelist(bool)\":{\"params\":{\"status\":\"if enabled deposit whitelist\"}},\"SetDepositorWhitelistStatus(address,bool)\":{\"params\":{\"account\":\"account for which the whitelist status is set\",\"status\":\"if whitelisted the account\"}},\"SetIsDepositLimit(bool)\":{\"params\":{\"status\":\"if enabled deposit limit\"}},\"SetSlasher(address)\":{\"details\":\"Can be set only once.\",\"params\":{\"slasher\":\"vault's slasher to provide a slashing mechanism to networks\"}},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `value` tokens are moved from one account (`from`) to another (`to`). Note that `value` may be zero.\"},\"Withdraw(address,address,uint256,uint256,uint256)\":{\"params\":{\"amount\":\"amount of the collateral withdrawn\",\"burnedShares\":\"amount of the active shares burned\",\"claimer\":\"account that needs to claim the withdrawal\",\"mintedShares\":\"amount of the epoch withdrawal shares minted\",\"withdrawer\":\"account that made the withdrawal\"}}},\"kind\":\"dev\",\"methods\":{\"activeBalanceOf(address)\":{\"params\":{\"account\":\"account to get the active balance for\"},\"returns\":{\"_0\":\"active balance for the account\"}},\"activeBalanceOfAt(address,uint48,bytes)\":{\"params\":{\"account\":\"account to get the active balance for\",\"hints\":\"hints for checkpoints' indexes\",\"timestamp\":\"time point to get the active balance for the account at\"},\"returns\":{\"_0\":\"active balance for the account at the timestamp\"}},\"activeShares()\":{\"returns\":{\"_0\":\"total number of active shares\"}},\"activeSharesAt(uint48,bytes)\":{\"params\":{\"hint\":\"hint for the checkpoint index\",\"timestamp\":\"time point to get the total number of active shares at\"},\"returns\":{\"_0\":\"total number of active shares at the timestamp\"}},\"activeSharesOf(address)\":{\"params\":{\"account\":\"account to get the number of active shares for\"},\"returns\":{\"_0\":\"number of active shares for the account\"}},\"activeSharesOfAt(address,uint48,bytes)\":{\"params\":{\"account\":\"account to get the number of active shares for\",\"hint\":\"hint for the checkpoint index\",\"timestamp\":\"time point to get the number of active shares for the account at\"},\"returns\":{\"_0\":\"number of active shares for the account at the timestamp\"}},\"activeStake()\":{\"returns\":{\"_0\":\"total amount of active stake\"}},\"activeStakeAt(uint48,bytes)\":{\"params\":{\"hint\":\"hint for the checkpoint index\",\"timestamp\":\"time point to get the total active stake at\"},\"returns\":{\"_0\":\"total amount of active stake at the timestamp\"}},\"allowance(address,address)\":{\"details\":\"See {IERC20-allowance}.\"},\"approve(address,uint256)\":{\"details\":\"See {IERC20-approve}. NOTE: If `value` is the maximum `uint256`, the allowance is not updated on `transferFrom`. This is semantically equivalent to an infinite approval. Requirements: - `spender` cannot be the zero address.\"},\"balanceOf(address)\":{\"details\":\"See {IERC20-balanceOf}.\"},\"claim(address,uint256)\":{\"params\":{\"epoch\":\"epoch to claim the collateral for\",\"recipient\":\"account that receives the collateral\"},\"returns\":{\"amount\":\"amount of the collateral claimed\"}},\"claimBatch(address,uint256[])\":{\"params\":{\"epochs\":\"epochs to claim the collateral for\",\"recipient\":\"account that receives the collateral\"},\"returns\":{\"amount\":\"amount of the collateral claimed\"}},\"currentEpoch()\":{\"returns\":{\"_0\":\"current epoch\"}},\"currentEpochStart()\":{\"returns\":{\"_0\":\"start of the current epoch\"}},\"decimals()\":{\"details\":\"Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5.05` (`505 / 10 ** 2`). Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei. This is the default value returned by this function, unless it's overridden. NOTE: This information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including {IERC20-balanceOf} and {IERC20-transfer}.\"},\"deposit(address,uint256)\":{\"params\":{\"amount\":\"amount of the collateral to deposit\",\"onBehalfOf\":\"account the deposit is made on behalf of\"},\"returns\":{\"depositedAmount\":\"real amount of the collateral deposited\",\"mintedShares\":\"amount of the active shares minted\"}},\"epochAt(uint48)\":{\"details\":\"Reverts if the timestamp is less than the start of the epoch 0.\",\"params\":{\"timestamp\":\"time point to get the epoch at\"},\"returns\":{\"_0\":\"epoch at the timestamp\"}},\"getRoleAdmin(bytes32)\":{\"details\":\"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}.\"},\"grantRole(bytes32,address)\":{\"details\":\"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event.\"},\"hasRole(bytes32,address)\":{\"details\":\"Returns `true` if `account` has been granted `role`.\"},\"initialize(uint64,address,bytes)\":{\"params\":{\"data\":\"some data to use\",\"initialVersion\":\"initial version of the entity\",\"owner\":\"initial owner of the entity\"}},\"isInitialized()\":{\"returns\":{\"_0\":\"if the vault is fully initialized\"}},\"migrate(uint64,bytes)\":{\"params\":{\"data\":\"some data to use\",\"newVersion\":\"new version of the entity\"}},\"name()\":{\"details\":\"Returns the name of the token.\"},\"nextEpochStart()\":{\"returns\":{\"_0\":\"start of the next epoch\"}},\"onSlash(uint256,uint48)\":{\"details\":\"Only the slasher can call this function.\",\"params\":{\"amount\":\"amount to slash\",\"captureTimestamp\":\"time point when the stake was captured\"},\"returns\":{\"slashedAmount\":\"real amount of the collateral slashed\"}},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"previousEpochStart()\":{\"details\":\"Reverts if the current epoch is 0.\",\"returns\":{\"_0\":\"start of the previous epoch\"}},\"redeem(address,uint256)\":{\"params\":{\"claimer\":\"account that needs to claim the withdrawal\",\"shares\":\"amount of the active shares to redeem\"},\"returns\":{\"mintedShares\":\"amount of the epoch withdrawal shares minted\",\"withdrawnAssets\":\"amount of the collateral withdrawn\"}},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"renounceRole(bytes32,address)\":{\"details\":\"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `callerConfirmation`. May emit a {RoleRevoked} event.\"},\"revokeRole(bytes32,address)\":{\"details\":\"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event.\"},\"setDepositLimit(uint256)\":{\"details\":\"Only a DEPOSIT_LIMIT_SET_ROLE holder can call this function.\",\"params\":{\"limit\":\"deposit limit (maximum amount of the collateral that can be in the vault simultaneously)\"}},\"setDepositWhitelist(bool)\":{\"details\":\"Only a DEPOSIT_WHITELIST_SET_ROLE holder can call this function.\",\"params\":{\"status\":\"if enabling deposit whitelist\"}},\"setDepositorWhitelistStatus(address,bool)\":{\"details\":\"Only a DEPOSITOR_WHITELIST_ROLE holder can call this function.\",\"params\":{\"account\":\"account for which the whitelist status is set\",\"status\":\"if whitelisting the account\"}},\"setIsDepositLimit(bool)\":{\"details\":\"Only a IS_DEPOSIT_LIMIT_SET_ROLE holder can call this function.\",\"params\":{\"status\":\"if enabling deposit limit\"}},\"slashableBalanceOf(address)\":{\"params\":{\"account\":\"account to get the slashable collateral for\"},\"returns\":{\"_0\":\"total amount of the account's slashable collateral\"}},\"staticDelegateCall(address,bytes)\":{\"details\":\"It allows to use this contract's storage on-chain.\",\"params\":{\"data\":\"data to make a delegatecall with\",\"target\":\"address of the contract to make a delegatecall to\"}},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"},\"symbol()\":{\"details\":\"Returns the symbol of the token, usually a shorter version of the name.\"},\"totalStake()\":{\"returns\":{\"_0\":\"total amount of the slashable collateral\"}},\"totalSupply()\":{\"details\":\"See {IERC20-totalSupply}.\"},\"transfer(address,uint256)\":{\"details\":\"See {IERC20-transfer}. Requirements: - `to` cannot be the zero address. - the caller must have a balance of at least `value`.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC20-transferFrom}. Emits an {Approval} event indicating the updated allowance. This is not required by the EIP. See the note at the beginning of {ERC20}. NOTE: Does not update the allowance if the current allowance is the maximum `uint256`. Requirements: - `from` and `to` cannot be the zero address. - `from` must have a balance of at least `value`. - the caller must have allowance for ``from``'s tokens of at least `value`.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"},\"version()\":{\"details\":\"Starts from 1.\",\"returns\":{\"_0\":\"version of the entity\"}},\"withdraw(address,uint256)\":{\"params\":{\"amount\":\"amount of the collateral to withdraw\",\"claimer\":\"account that needs to claim the withdrawal\"},\"returns\":{\"burnedShares\":\"amount of the active shares burned\",\"mintedShares\":\"amount of the epoch withdrawal shares minted\"}},\"withdrawalsOf(uint256,address)\":{\"params\":{\"account\":\"account to get the withdrawals for\",\"epoch\":\"epoch to get the withdrawals for the account at\"},\"returns\":{\"_0\":\"withdrawals for the account at the epoch\"}}},\"version\":1},\"userdoc\":{\"events\":{\"Claim(address,address,uint256,uint256)\":{\"notice\":\"Emitted when a claim is made.\"},\"ClaimBatch(address,address,uint256[],uint256)\":{\"notice\":\"Emitted when a batch claim is made.\"},\"Deposit(address,address,uint256,uint256)\":{\"notice\":\"Emitted when a deposit is made.\"},\"OnSlash(uint256,uint48,uint256)\":{\"notice\":\"Emitted when a slash happens.\"},\"SetDelegator(address)\":{\"notice\":\"Emitted when a delegator is set.\"},\"SetDepositLimit(uint256)\":{\"notice\":\"Emitted when a deposit limit is set.\"},\"SetDepositWhitelist(bool)\":{\"notice\":\"Emitted when a deposit whitelist status is enabled/disabled.\"},\"SetDepositorWhitelistStatus(address,bool)\":{\"notice\":\"Emitted when a depositor whitelist status is set.\"},\"SetIsDepositLimit(bool)\":{\"notice\":\"Emitted when a deposit limit status is enabled/disabled.\"},\"SetSlasher(address)\":{\"notice\":\"Emitted when a slasher is set.\"},\"Withdraw(address,address,uint256,uint256,uint256)\":{\"notice\":\"Emitted when a withdrawal is made.\"}},\"kind\":\"user\",\"methods\":{\"DELEGATOR_FACTORY()\":{\"notice\":\"Get the delegator factory's address.\"},\"DEPOSITOR_WHITELIST_ROLE()\":{\"notice\":\"Get a depositor whitelist status setter's role.\"},\"DEPOSIT_LIMIT_SET_ROLE()\":{\"notice\":\"Get a deposit limit setter's role.\"},\"DEPOSIT_WHITELIST_SET_ROLE()\":{\"notice\":\"Get a deposit whitelist enabler/disabler's role.\"},\"FACTORY()\":{\"notice\":\"Get the factory's address.\"},\"IS_DEPOSIT_LIMIT_SET_ROLE()\":{\"notice\":\"Get a deposit limit enabler/disabler's role.\"},\"SLASHER_FACTORY()\":{\"notice\":\"Get the slasher factory's address.\"},\"activeBalanceOf(address)\":{\"notice\":\"Get an active balance for a particular account.\"},\"activeBalanceOfAt(address,uint48,bytes)\":{\"notice\":\"Get an active balance for a particular account at a given timestamp using hints.\"},\"activeShares()\":{\"notice\":\"Get a total number of active shares in the vault.\"},\"activeSharesAt(uint48,bytes)\":{\"notice\":\"Get a total number of active shares in the vault at a given timestamp using a hint.\"},\"activeSharesOf(address)\":{\"notice\":\"Get a number of active shares for a particular account.\"},\"activeSharesOfAt(address,uint48,bytes)\":{\"notice\":\"Get a total number of active shares for a particular account at a given timestamp using a hint.\"},\"activeStake()\":{\"notice\":\"Get a total amount of active stake in the vault.\"},\"activeStakeAt(uint48,bytes)\":{\"notice\":\"Get a total amount of active stake in the vault at a given timestamp using a hint.\"},\"burner()\":{\"notice\":\"Get a burner to issue debt to (e.g., 0xdEaD or some unwrapper contract).\"},\"claim(address,uint256)\":{\"notice\":\"Claim collateral from the vault.\"},\"claimBatch(address,uint256[])\":{\"notice\":\"Claim collateral from the vault for multiple epochs.\"},\"collateral()\":{\"notice\":\"Get a vault collateral.\"},\"currentEpoch()\":{\"notice\":\"Get a current vault epoch.\"},\"currentEpochStart()\":{\"notice\":\"Get a start of the current vault epoch.\"},\"delegator()\":{\"notice\":\"Get a delegator (it delegates the vault's stake to networks and operators).\"},\"deposit(address,uint256)\":{\"notice\":\"Deposit collateral into the vault.\"},\"depositLimit()\":{\"notice\":\"Get a deposit limit (maximum amount of the active stake that can be in the vault simultaneously).\"},\"depositWhitelist()\":{\"notice\":\"Get if the deposit whitelist is enabled.\"},\"epochAt(uint48)\":{\"notice\":\"Get an epoch at a given timestamp.\"},\"epochDuration()\":{\"notice\":\"Get a duration of the vault epoch.\"},\"epochDurationInit()\":{\"notice\":\"Get a time point of the epoch duration set.\"},\"initialize(uint64,address,bytes)\":{\"notice\":\"Initialize this entity contract by using a given data and setting a particular version and owner.\"},\"isDelegatorInitialized()\":{\"notice\":\"Get if the delegator is initialized.\"},\"isDepositLimit()\":{\"notice\":\"Get if the deposit limit is set.\"},\"isDepositorWhitelisted(address)\":{\"notice\":\"Get if a given account is whitelisted as a depositor.\"},\"isInitialized()\":{\"notice\":\"Check if the vault is fully initialized (a delegator and a slasher are set).\"},\"isSlasherInitialized()\":{\"notice\":\"Get if the slasher is initialized.\"},\"isWithdrawalsClaimed(uint256,address)\":{\"notice\":\"Get if the withdrawals are claimed for a particular account at a given epoch.\"},\"migrate(uint64,bytes)\":{\"notice\":\"Migrate this entity to a particular newer version using a given data.\"},\"nextEpochStart()\":{\"notice\":\"Get a start of the next vault epoch.\"},\"onSlash(uint256,uint48)\":{\"notice\":\"Slash callback for burning collateral.\"},\"previousEpochStart()\":{\"notice\":\"Get a start of the previous vault epoch.\"},\"redeem(address,uint256)\":{\"notice\":\"Redeem collateral from the vault (it will be claimable after the next epoch).\"},\"setDepositLimit(uint256)\":{\"notice\":\"Set a deposit limit.\"},\"setDepositWhitelist(bool)\":{\"notice\":\"Enable/disable deposit whitelist.\"},\"setDepositorWhitelistStatus(address,bool)\":{\"notice\":\"Set a depositor whitelist status.\"},\"setIsDepositLimit(bool)\":{\"notice\":\"Enable/disable deposit limit.\"},\"slashableBalanceOf(address)\":{\"notice\":\"Get a total amount of the collateral that can be slashed for a given account.\"},\"slasher()\":{\"notice\":\"Get a slasher (it provides networks a slashing mechanism).\"},\"staticDelegateCall(address,bytes)\":{\"notice\":\"Make a delegatecall from this contract to a given target contract with a particular data (always reverts with a return data).\"},\"totalStake()\":{\"notice\":\"Get a total amount of the collateral that can be slashed.\"},\"version()\":{\"notice\":\"Get the entity's version.\"},\"withdraw(address,uint256)\":{\"notice\":\"Withdraw collateral from the vault (it will be claimable after the next epoch).\"},\"withdrawalShares(uint256)\":{\"notice\":\"Get a total number of withdrawal shares at a given epoch.\"},\"withdrawalSharesOf(uint256,address)\":{\"notice\":\"Get a number of withdrawal shares for a particular account at a given epoch (zero if claimed).\"},\"withdrawals(uint256)\":{\"notice\":\"Get a total amount of the withdrawals at a given epoch.\"},\"withdrawalsOf(uint256,address)\":{\"notice\":\"Get withdrawals for a particular account at a given epoch (zero if claimed).\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/contracts/vault/VaultTokenized.sol\":\"VaultTokenized\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol\":{\"keccak256\":\"0x6662ec4e5cefca03eeadd073e9469df8d2944bb2ee8ec8f7622c2c46aab5f225\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4d8544c6f8daa4d1bc215c6a72fe0acdb748664a105b0e5efc19295667521d45\",\"dweb:/ipfs/QmdGWqdnXT8S3RgCR6aV8XHZrsybieMQLLnug1NtpSjEXN\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0xc163fcf9bb10138631a9ba5564df1fa25db9adff73bd9ee868a8ae1858fe093a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9706d43a0124053d9880f6e31a59f31bc0a6a3dc1acd66ce0a16e1111658c5f6\",\"dweb:/ipfs/QmUFmfowzkRwGtDu36cXV9SPTBHJ3n7dG9xQiK5B28jTf2\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609\",\"dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/ERC20Upgradeable.sol\":{\"keccak256\":\"0x9a1766b1921bf91b3e61eb53c7a6e70725254befd4bdcbbcd3af40bd9f66856f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://29bf2fa41a172086a665c9738377b93655aa4b1ffda9fe839c8bdf646f185040\",\"dweb:/ipfs/QmeB21qDuo8WPQSrqXJbQmWHKsdeocGNSUWLhCwniVejrt\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9\",\"dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardUpgradeable.sol\":{\"keccak256\":\"0xb44e086e941292cdc7f440de51478493894ef0b1aeccb0c4047445919f667f74\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://942dad22fbdc1669f025540ba63aa3ccfad5f8458fc5d4525b31ebf272e7af45\",\"dweb:/ipfs/Qmdo4X2M82aM3AMoW2kf2jhYkSCyC4T1pHNd6obdsDFnAB\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol\":{\"keccak256\":\"0xdaba3f7c42c55b2896353f32bd27d4d5f8bae741b3b05d4c53f67abc4dc47ce8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1fa2e61141c602510bcd2cd936ed9561922ac8772a9b9c9a9db091a74e354a45\",\"dweb:/ipfs/QmcHQDDoEBwJmwUbzoVkytvJsBx3KVHYFFnDkvRGWh9Wmh\"]},\"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0xb6b36edd6a2999fd243ff226d6cbf84bd71af2432bbd0dfe19392996a1d9cb41\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1fd2f35495652e57e3f99bc6c510bc5f7dd398a176ea2e72d8ed730aebc6ca26\",\"dweb:/ipfs/QmTQV6X4gkikTib49cho5iDX3JvSQbdsoEChoDwrk3CbbH\"]},\"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x60c65f701957fdd6faea1acb0bb45825791d473693ed9ecb34726fdfaa849dd7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea290300e0efc4d901244949dc4d877fd46e6c5e43dc2b26620e8efab3ab803f\",\"dweb:/ipfs/QmcLLJppxKeJWqHxE2CUkcfhuRTgHSn8J4kijcLa5MYhSt\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c\",\"dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0xaa761817f6cd7892fcf158b3c776b34551cde36f48ff9703d53898bc45a94ea2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ad7c8d4d08938c8dfc43d75a148863fb324b80cf53e0a36f7e5a4ac29008850\",\"dweb:/ipfs/QmcrhfPgVNf5mkdhQvy1pMv51TFokD3Y4Wa5WZhFqVh8UV\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0x6008dabfe393240d73d7dd7688033f72740d570aa422254d29a7dce8568f3aff\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f5196ec75139918c6c7bb4251b36395e668f1fa6d206beba7e7520e74913940d\",\"dweb:/ipfs/QmSyqjksXxmm2mCG6qRd1yuwLykypkSVBbnBnGqJRcuJMi\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x37bb49513c49c87c4642a891b13b63571bc87013dde806617aa1efb54605f386\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b3036b3a83b7c48f96641f2a9002b9f2dcb6a5958dd670894ada21ae8229b3d0\",\"dweb:/ipfs/QmUNfSBdoVtjhETaUJCYcaC7pTMgbhht926tJ2uXJbiVd3\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0xaf28a975a78550e45f65e559a3ad6a5ad43b9b8a37366999abd1b7084eb70721\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b7bd24e224f67f65bfadf85dc2929fa965456bb2415478bd0125471b5ce35245\",\"dweb:/ipfs/QmRaydGr8BTHs1kvaZfsNU69pKzUAGFrvABn1KiRSbE51y\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875\",\"dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0xe19a4d5f31d2861e7344e8e535e2feafb913d806d3e2b5fe7782741a2a7094fe\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4aed79c0fa6f0546ed02f2f683e8f77f0fd2ed7eb34d8bbf3d373c9a6d95b13c\",\"dweb:/ipfs/QmWqVz6UAVqmnWU5pqYPt1o6iDEZyPaBraAA3rKfTTSfYj\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/Checkpoints.sol\":{\"keccak256\":\"0xbdc5e074d7dd6678f67e92b1a51a20226801a407b0e1af3da367c5d1ff4519ad\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a36cca6b22fff3db16fc789ff6c60eea71d4b156065d4d0c83a0bc5e91a77a8b\",\"dweb:/ipfs/QmYN3exd5AemxjBrN8XMB1p5LbbE16uC3sjbYjwi8AjcGR\"]},\"lib/openzeppelin-contracts/contracts/utils/types/Time.sol\":{\"keccak256\":\"0xc7755af115020049e4140f224f9ee88d7e1799ffb0646f37bf0df24bf6213f58\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7f09bf94d5274334ec021f61a04659db303f31e60460e14b709c9bf187740111\",\"dweb:/ipfs/QmNvgomZYUwFAt4cZbPWAiTeSZQreGehY9BK5xyVJsUttb\"]},\"src/contracts/common/MigratableEntity.sol\":{\"keccak256\":\"0x2d736f4dacd5d7e7697503bc426c78b8250fe1694ca157965ec178da6807de58\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://f1237acf96b4b9f9b69156e068eddd726a6e15bd8e87a18dc999cd4ba4da069c\",\"dweb:/ipfs/QmS6M8fiFFSeuJ4ZKKq1z8W7w4ybeHQSy5TLASGoc1LVic\"]},\"src/contracts/common/StaticDelegateCallable.sol\":{\"keccak256\":\"0x350029aa8955eacaffffaeb58babc5c98e80ebc5c5db388ed17ee6465f4a9d90\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://eb392a8ee9050e0af606897df63e3404e3829e8b688b580663892f9664195764\",\"dweb:/ipfs/QmaXC8jqV8UrrAFkzXTEv2fJF56sy33HhLxAzaRZmUxuXD\"]},\"src/contracts/libraries/Checkpoints.sol\":{\"keccak256\":\"0xba90097c8bfe0a975499428b5f8ac5569483c7d92ccc28c12d70de416aae040c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://12f5d93ca94cd06d3147db68993165a58e17903ed53682560de61f3085ad4609\",\"dweb:/ipfs/QmePiuAqvXprMLmFZkGZeGjvGPAvsEDHfCDv7BoQhXu9xE\"]},\"src/contracts/libraries/ERC4626Math.sol\":{\"keccak256\":\"0x8441160513c1cbeb1c3b9ee077bcc7e7ce20006b52a77c8dd39ff0ef89699939\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://943f8cc3e26ddf649f465f40c909819f5c864717c4baa339e9e403b9374a4653\",\"dweb:/ipfs/QmXPxi1sUDsrGprZdUgCzoPEosaZMv9ZhygWQ1vAi1phAB\"]},\"src/contracts/vault/Vault.sol\":{\"keccak256\":\"0x2ceff6ed3298c4cad144c99fcc79b51cb9397d6ebef00285b915848b476f8c2e\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://11f2fb3581854f3ab6e82e8d4935d9eb510c903a13c3f022346c2956a58f5307\",\"dweb:/ipfs/QmdUnoXoyYoG9SGWyQZCFyLDRUUX3eXyXetkRvw6jxqqBz\"]},\"src/contracts/vault/VaultStorage.sol\":{\"keccak256\":\"0x57db25b127d77ea3472de53e3a4af3354399655b9268638b99ca5925fa364a56\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://aa763d9a6ec508ae3abfb8228b72b9fd9525279e5135d4962e79ff059feb1173\",\"dweb:/ipfs/QmcbDR6E9wyEpu6V2FkEC4hnWy47zXA9LSKJde6zSGd33Q\"]},\"src/contracts/vault/VaultTokenized.sol\":{\"keccak256\":\"0xa9475a46a3e32b35e48bc37fdaf08e1a586fb7c9667ac5e014b716a08873c46d\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://0a292a4f35bc43ce7174b36e2d016bc44d6737e94b41e48cb5dd1bb1e4821e48\",\"dweb:/ipfs/QmduHZe2REPnygiWvQRV82yD4tYHdwX33FkYRFm1UZoXBA\"]},\"src/interfaces/common/IEntity.sol\":{\"keccak256\":\"0x8ef4b63d6da63489778ccd5f8d13ebdd527dd4b62730b2c616df5af7474d2d21\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a8d69576a9219d85c50816a18ad53a4d53cfcb27ed38b8cccc808dc2734b71b\",\"dweb:/ipfs/QmYVN3P4Q4REvBWJ97TbAcaxm3uyB2anV6NSGa6ZtSwcEv\"]},\"src/interfaces/common/IMigratableEntity.sol\":{\"keccak256\":\"0x8f5f2809f3afbe8ebfbb365dd7b57b4dd3b6f9943a6187eaf648d45895b8e3c4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ffe640537d539e7a4fde70d30d3e4c57f4ba9c2c25c450cea713aae38e8fd5c\",\"dweb:/ipfs/QmSUTGzvdcn1R1KB7tLThMRtESsfPbeXDhhhKWGtntzBds\"]},\"src/interfaces/common/IRegistry.sol\":{\"keccak256\":\"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014\",\"dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK\"]},\"src/interfaces/common/IStaticDelegateCallable.sol\":{\"keccak256\":\"0xa335d4e81b9071b7de66ef92b43ff20671d86516eb1be46fef29a3483cd3f5d5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d464b9db863c14c05547d2b23352f2e9b7b784799cf09f6bbc4906a2a74e3516\",\"dweb:/ipfs/QmUVWzFvJz7eEbDQKiFTTzwi7TEbjcs3VmwdM4kuptAKvi\"]},\"src/interfaces/delegator/IBaseDelegator.sol\":{\"keccak256\":\"0x96bb312f032e17accce3f8f80936d99468029d6b37c9ca74acdb4b026a0148ee\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2a66dcb5b7d1a6ef6a363431ea98ebd78bc4fdd3d7a134d9b542dc66e7d025c2\",\"dweb:/ipfs/QmRhTPLd2ZAyRHmJUFUcWKs9b3if49QY17LYZuRqWmghw8\"]},\"src/interfaces/slasher/IBaseSlasher.sol\":{\"keccak256\":\"0x7c82528b445659c313ab77335c407b0b6efe5e79027187bb287f7bc74202b404\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0274c90aa5df1aa6bb470a6aab53992fb14fd7e5472c9430416505b29647d9cf\",\"dweb:/ipfs/QmckbmJLDetPemVzCnnGcKYWAZV2BRFXGDsjiaec8jkHxx\"]},\"src/interfaces/vault/IVault.sol\":{\"keccak256\":\"0xffee01d383cd4e1a5530c614bf4360c1ef070c288abec9da1eb531b51bc07235\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://04f0046cac285d8ec44ebbb1f79dc94fab4495767190cad8364fbc1fafaadfb9\",\"dweb:/ipfs/QmUawAunwzXfCyShWfhKeThAgKtqe51hmrxvrXvM772M2R\"]},\"src/interfaces/vault/IVaultStorage.sol\":{\"keccak256\":\"0x592626f13754194f83047135de19229c49390bd59e34659b1bb38be71d973a22\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://06a6a9dfddd05e580b32bebe2cff4f63ba26a653180676d58225dd30d9c89d3e\",\"dweb:/ipfs/QmdgzBeY6Sxo8mGtyBxtv1tM1c2kU6J6zjeRd7vuXm4DU6\"]},\"src/interfaces/vault/IVaultTokenized.sol\":{\"keccak256\":\"0xb723560b49c30b38130634388a0550c9e07596f92a58edbfa2415e690024e0c4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://dc9dde973a0bbf0adbc305462a796fa3b2e5be9daa1984e4f3e4f48e3c254f39\",\"dweb:/ipfs/QmQydZsr7ESw7ZSe9mqaxZ3dycvru8ZFVwrL9pmVnpyd7c\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.25+commit.b61c2a91"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"delegatorFactory","type":"address"},{"internalType":"address","name":"slasherFactory","type":"address"},{"internalType":"address","name":"vaultFactory","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"AccessControlBadConfirmation"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bytes32","name":"neededRole","type":"bytes32"}],"type":"error","name":"AccessControlUnauthorizedAccount"},{"inputs":[{"internalType":"address","name":"target","type":"address"}],"type":"error","name":"AddressEmptyCode"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"AddressInsufficientBalance"},{"inputs":[],"type":"error","name":"AlreadyClaimed"},{"inputs":[],"type":"error","name":"AlreadyInitialized"},{"inputs":[],"type":"error","name":"AlreadySet"},{"inputs":[],"type":"error","name":"CheckpointUnorderedInsertion"},{"inputs":[],"type":"error","name":"DelegatorAlreadyInitialized"},{"inputs":[],"type":"error","name":"DepositLimitReached"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"allowance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"type":"error","name":"ERC20InsufficientAllowance"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"type":"error","name":"ERC20InsufficientBalance"},{"inputs":[{"internalType":"address","name":"approver","type":"address"}],"type":"error","name":"ERC20InvalidApprover"},{"inputs":[{"internalType":"address","name":"receiver","type":"address"}],"type":"error","name":"ERC20InvalidReceiver"},{"inputs":[{"internalType":"address","name":"sender","type":"address"}],"type":"error","name":"ERC20InvalidSender"},{"inputs":[{"internalType":"address","name":"spender","type":"address"}],"type":"error","name":"ERC20InvalidSpender"},{"inputs":[],"type":"error","name":"FailedInnerCall"},{"inputs":[],"type":"error","name":"InsufficientClaim"},{"inputs":[],"type":"error","name":"InsufficientDeposit"},{"inputs":[],"type":"error","name":"InsufficientRedemption"},{"inputs":[],"type":"error","name":"InsufficientWithdrawal"},{"inputs":[],"type":"error","name":"InvalidAccount"},{"inputs":[],"type":"error","name":"InvalidCaptureEpoch"},{"inputs":[],"type":"error","name":"InvalidClaimer"},{"inputs":[],"type":"error","name":"InvalidCollateral"},{"inputs":[],"type":"error","name":"InvalidDelegator"},{"inputs":[],"type":"error","name":"InvalidEpoch"},{"inputs":[],"type":"error","name":"InvalidEpochDuration"},{"inputs":[],"type":"error","name":"InvalidInitialization"},{"inputs":[],"type":"error","name":"InvalidLengthEpochs"},{"inputs":[],"type":"error","name":"InvalidOnBehalfOf"},{"inputs":[],"type":"error","name":"InvalidRecipient"},{"inputs":[],"type":"error","name":"InvalidSlasher"},{"inputs":[],"type":"error","name":"InvalidTimestamp"},{"inputs":[],"type":"error","name":"MathOverflowedMulDiv"},{"inputs":[],"type":"error","name":"MissingRoles"},{"inputs":[],"type":"error","name":"NoPreviousEpoch"},{"inputs":[],"type":"error","name":"NotDelegator"},{"inputs":[],"type":"error","name":"NotFactory"},{"inputs":[],"type":"error","name":"NotInitialized"},{"inputs":[],"type":"error","name":"NotInitializing"},{"inputs":[],"type":"error","name":"NotSlasher"},{"inputs":[],"type":"error","name":"NotWhitelistedDepositor"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"OwnableInvalidOwner"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"OwnableUnauthorizedAccount"},{"inputs":[],"type":"error","name":"ReentrancyGuardReentrantCall"},{"inputs":[{"internalType":"uint8","name":"bits","type":"uint8"},{"internalType":"uint256","name":"value","type":"uint256"}],"type":"error","name":"SafeCastOverflowedUintDowncast"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"type":"error","name":"SafeERC20FailedOperation"},{"inputs":[],"type":"error","name":"SlasherAlreadyInitialized"},{"inputs":[],"type":"error","name":"TooMuchRedeem"},{"inputs":[],"type":"error","name":"TooMuchWithdraw"},{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"spender","type":"address","indexed":true},{"internalType":"uint256","name":"value","type":"uint256","indexed":false}],"type":"event","name":"Approval","anonymous":false},{"inputs":[{"internalType":"address","name":"claimer","type":"address","indexed":true},{"internalType":"address","name":"recipient","type":"address","indexed":true},{"internalType":"uint256","name":"epoch","type":"uint256","indexed":false},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"Claim","anonymous":false},{"inputs":[{"internalType":"address","name":"claimer","type":"address","indexed":true},{"internalType":"address","name":"recipient","type":"address","indexed":true},{"internalType":"uint256[]","name":"epochs","type":"uint256[]","indexed":false},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"ClaimBatch","anonymous":false},{"inputs":[{"internalType":"address","name":"depositor","type":"address","indexed":true},{"internalType":"address","name":"onBehalfOf","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false},{"internalType":"uint256","name":"shares","type":"uint256","indexed":false}],"type":"event","name":"Deposit","anonymous":false},{"inputs":[{"internalType":"uint64","name":"version","type":"uint64","indexed":false}],"type":"event","name":"Initialized","anonymous":false},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256","indexed":false},{"internalType":"uint48","name":"captureTimestamp","type":"uint48","indexed":false},{"internalType":"uint256","name":"slashedAmount","type":"uint256","indexed":false}],"type":"event","name":"OnSlash","anonymous":false},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"bytes32","name":"previousAdminRole","type":"bytes32","indexed":true},{"internalType":"bytes32","name":"newAdminRole","type":"bytes32","indexed":true}],"type":"event","name":"RoleAdminChanged","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"address","name":"sender","type":"address","indexed":true}],"type":"event","name":"RoleGranted","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"address","name":"sender","type":"address","indexed":true}],"type":"event","name":"RoleRevoked","anonymous":false},{"inputs":[{"internalType":"address","name":"delegator","type":"address","indexed":true}],"type":"event","name":"SetDelegator","anonymous":false},{"inputs":[{"internalType":"uint256","name":"limit","type":"uint256","indexed":false}],"type":"event","name":"SetDepositLimit","anonymous":false},{"inputs":[{"internalType":"bool","name":"status","type":"bool","indexed":false}],"type":"event","name":"SetDepositWhitelist","anonymous":false},{"inputs":[{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"bool","name":"status","type":"bool","indexed":false}],"type":"event","name":"SetDepositorWhitelistStatus","anonymous":false},{"inputs":[{"internalType":"bool","name":"status","type":"bool","indexed":false}],"type":"event","name":"SetIsDepositLimit","anonymous":false},{"inputs":[{"internalType":"address","name":"slasher","type":"address","indexed":true}],"type":"event","name":"SetSlasher","anonymous":false},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"value","type":"uint256","indexed":false}],"type":"event","name":"Transfer","anonymous":false},{"inputs":[{"internalType":"address","name":"withdrawer","type":"address","indexed":true},{"internalType":"address","name":"claimer","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false},{"internalType":"uint256","name":"burnedShares","type":"uint256","indexed":false},{"internalType":"uint256","name":"mintedShares","type":"uint256","indexed":false}],"type":"event","name":"Withdraw","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"DEFAULT_ADMIN_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"DELEGATOR_FACTORY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"DEPOSITOR_WHITELIST_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"DEPOSIT_LIMIT_SET_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"DEPOSIT_WHITELIST_SET_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"FACTORY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"IS_DEPOSIT_LIMIT_SET_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"SLASHER_FACTORY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"activeBalanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint48","name":"timestamp","type":"uint48"},{"internalType":"bytes","name":"hints","type":"bytes"}],"stateMutability":"view","type":"function","name":"activeBalanceOfAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"activeShares","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint48","name":"timestamp","type":"uint48"},{"internalType":"bytes","name":"hint","type":"bytes"}],"stateMutability":"view","type":"function","name":"activeSharesAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"activeSharesOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint48","name":"timestamp","type":"uint48"},{"internalType":"bytes","name":"hint","type":"bytes"}],"stateMutability":"view","type":"function","name":"activeSharesOfAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"activeStake","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint48","name":"timestamp","type":"uint48"},{"internalType":"bytes","name":"hint","type":"bytes"}],"stateMutability":"view","type":"function","name":"activeStakeAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"stateMutability":"view","type":"function","name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"burner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"epoch","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"claim","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256[]","name":"epochs","type":"uint256[]"}],"stateMutability":"nonpayable","type":"function","name":"claimBatch","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"collateral","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"currentEpoch","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"currentEpochStart","outputs":[{"internalType":"uint48","name":"","type":"uint48"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"delegator","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"onBehalfOf","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"deposit","outputs":[{"internalType":"uint256","name":"depositedAmount","type":"uint256"},{"internalType":"uint256","name":"mintedShares","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"depositLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"depositWhitelist","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint48","name":"timestamp","type":"uint48"}],"stateMutability":"view","type":"function","name":"epochAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"epochDuration","outputs":[{"internalType":"uint48","name":"","type":"uint48"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"epochDurationInit","outputs":[{"internalType":"uint48","name":"","type":"uint48"}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getRoleAdmin","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"grantRole"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"hasRole","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint64","name":"initialVersion","type":"uint64"},{"internalType":"address","name":"owner_","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[],"stateMutability":"view","type":"function","name":"isDelegatorInitialized","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"isDepositLimit","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"isDepositorWhitelisted","outputs":[{"internalType":"bool","name":"value","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"isInitialized","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"isSlasherInitialized","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint256","name":"epoch","type":"uint256"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"isWithdrawalsClaimed","outputs":[{"internalType":"bool","name":"value","type":"bool"}]},{"inputs":[{"internalType":"uint64","name":"newVersion","type":"uint64"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"migrate"},{"inputs":[],"stateMutability":"view","type":"function","name":"name","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"nextEpochStart","outputs":[{"internalType":"uint48","name":"","type":"uint48"}]},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint48","name":"captureTimestamp","type":"uint48"}],"stateMutability":"nonpayable","type":"function","name":"onSlash","outputs":[{"internalType":"uint256","name":"slashedAmount","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"previousEpochStart","outputs":[{"internalType":"uint48","name":"","type":"uint48"}]},{"inputs":[{"internalType":"address","name":"claimer","type":"address"},{"internalType":"uint256","name":"shares","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"redeem","outputs":[{"internalType":"uint256","name":"withdrawnAssets","type":"uint256"},{"internalType":"uint256","name":"mintedShares","type":"uint256"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"callerConfirmation","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"renounceRole"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"revokeRole"},{"inputs":[{"internalType":"address","name":"delegator_","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setDelegator"},{"inputs":[{"internalType":"uint256","name":"limit","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setDepositLimit"},{"inputs":[{"internalType":"bool","name":"status","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"setDepositWhitelist"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"status","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"setDepositorWhitelistStatus"},{"inputs":[{"internalType":"bool","name":"status","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"setIsDepositLimit"},{"inputs":[{"internalType":"address","name":"slasher_","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setSlasher"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"slashableBalanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"slasher","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"staticDelegateCall"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"totalStake","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"},{"inputs":[],"stateMutability":"view","type":"function","name":"version","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[{"internalType":"address","name":"claimer","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"withdraw","outputs":[{"internalType":"uint256","name":"burnedShares","type":"uint256"},{"internalType":"uint256","name":"mintedShares","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"epoch","type":"uint256"}],"stateMutability":"view","type":"function","name":"withdrawalShares","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"epoch","type":"uint256"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"withdrawalSharesOf","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"epoch","type":"uint256"}],"stateMutability":"view","type":"function","name":"withdrawals","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"epoch","type":"uint256"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"withdrawalsOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]}],"devdoc":{"kind":"dev","methods":{"activeBalanceOf(address)":{"params":{"account":"account to get the active balance for"},"returns":{"_0":"active balance for the account"}},"activeBalanceOfAt(address,uint48,bytes)":{"params":{"account":"account to get the active balance for","hints":"hints for checkpoints' indexes","timestamp":"time point to get the active balance for the account at"},"returns":{"_0":"active balance for the account at the timestamp"}},"activeShares()":{"returns":{"_0":"total number of active shares"}},"activeSharesAt(uint48,bytes)":{"params":{"hint":"hint for the checkpoint index","timestamp":"time point to get the total number of active shares at"},"returns":{"_0":"total number of active shares at the timestamp"}},"activeSharesOf(address)":{"params":{"account":"account to get the number of active shares for"},"returns":{"_0":"number of active shares for the account"}},"activeSharesOfAt(address,uint48,bytes)":{"params":{"account":"account to get the number of active shares for","hint":"hint for the checkpoint index","timestamp":"time point to get the number of active shares for the account at"},"returns":{"_0":"number of active shares for the account at the timestamp"}},"activeStake()":{"returns":{"_0":"total amount of active stake"}},"activeStakeAt(uint48,bytes)":{"params":{"hint":"hint for the checkpoint index","timestamp":"time point to get the total active stake at"},"returns":{"_0":"total amount of active stake at the timestamp"}},"allowance(address,address)":{"details":"See {IERC20-allowance}."},"approve(address,uint256)":{"details":"See {IERC20-approve}. NOTE: If `value` is the maximum `uint256`, the allowance is not updated on `transferFrom`. This is semantically equivalent to an infinite approval. Requirements: - `spender` cannot be the zero address."},"balanceOf(address)":{"details":"See {IERC20-balanceOf}."},"claim(address,uint256)":{"params":{"epoch":"epoch to claim the collateral for","recipient":"account that receives the collateral"},"returns":{"amount":"amount of the collateral claimed"}},"claimBatch(address,uint256[])":{"params":{"epochs":"epochs to claim the collateral for","recipient":"account that receives the collateral"},"returns":{"amount":"amount of the collateral claimed"}},"currentEpoch()":{"returns":{"_0":"current epoch"}},"currentEpochStart()":{"returns":{"_0":"start of the current epoch"}},"decimals()":{"details":"Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5.05` (`505 / 10 ** 2`). Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei. This is the default value returned by this function, unless it's overridden. NOTE: This information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including {IERC20-balanceOf} and {IERC20-transfer}."},"deposit(address,uint256)":{"params":{"amount":"amount of the collateral to deposit","onBehalfOf":"account the deposit is made on behalf of"},"returns":{"depositedAmount":"real amount of the collateral deposited","mintedShares":"amount of the active shares minted"}},"epochAt(uint48)":{"details":"Reverts if the timestamp is less than the start of the epoch 0.","params":{"timestamp":"time point to get the epoch at"},"returns":{"_0":"epoch at the timestamp"}},"getRoleAdmin(bytes32)":{"details":"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}."},"grantRole(bytes32,address)":{"details":"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event."},"hasRole(bytes32,address)":{"details":"Returns `true` if `account` has been granted `role`."},"initialize(uint64,address,bytes)":{"params":{"data":"some data to use","initialVersion":"initial version of the entity","owner":"initial owner of the entity"}},"isInitialized()":{"returns":{"_0":"if the vault is fully initialized"}},"migrate(uint64,bytes)":{"params":{"data":"some data to use","newVersion":"new version of the entity"}},"name()":{"details":"Returns the name of the token."},"nextEpochStart()":{"returns":{"_0":"start of the next epoch"}},"onSlash(uint256,uint48)":{"details":"Only the slasher can call this function.","params":{"amount":"amount to slash","captureTimestamp":"time point when the stake was captured"},"returns":{"slashedAmount":"real amount of the collateral slashed"}},"owner()":{"details":"Returns the address of the current owner."},"previousEpochStart()":{"details":"Reverts if the current epoch is 0.","returns":{"_0":"start of the previous epoch"}},"redeem(address,uint256)":{"params":{"claimer":"account that needs to claim the withdrawal","shares":"amount of the active shares to redeem"},"returns":{"mintedShares":"amount of the epoch withdrawal shares minted","withdrawnAssets":"amount of the collateral withdrawn"}},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner."},"renounceRole(bytes32,address)":{"details":"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `callerConfirmation`. May emit a {RoleRevoked} event."},"revokeRole(bytes32,address)":{"details":"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event."},"setDepositLimit(uint256)":{"details":"Only a DEPOSIT_LIMIT_SET_ROLE holder can call this function.","params":{"limit":"deposit limit (maximum amount of the collateral that can be in the vault simultaneously)"}},"setDepositWhitelist(bool)":{"details":"Only a DEPOSIT_WHITELIST_SET_ROLE holder can call this function.","params":{"status":"if enabling deposit whitelist"}},"setDepositorWhitelistStatus(address,bool)":{"details":"Only a DEPOSITOR_WHITELIST_ROLE holder can call this function.","params":{"account":"account for which the whitelist status is set","status":"if whitelisting the account"}},"setIsDepositLimit(bool)":{"details":"Only a IS_DEPOSIT_LIMIT_SET_ROLE holder can call this function.","params":{"status":"if enabling deposit limit"}},"slashableBalanceOf(address)":{"params":{"account":"account to get the slashable collateral for"},"returns":{"_0":"total amount of the account's slashable collateral"}},"staticDelegateCall(address,bytes)":{"details":"It allows to use this contract's storage on-chain.","params":{"data":"data to make a delegatecall with","target":"address of the contract to make a delegatecall to"}},"supportsInterface(bytes4)":{"details":"See {IERC165-supportsInterface}."},"symbol()":{"details":"Returns the symbol of the token, usually a shorter version of the name."},"totalStake()":{"returns":{"_0":"total amount of the slashable collateral"}},"totalSupply()":{"details":"See {IERC20-totalSupply}."},"transfer(address,uint256)":{"details":"See {IERC20-transfer}. Requirements: - `to` cannot be the zero address. - the caller must have a balance of at least `value`."},"transferFrom(address,address,uint256)":{"details":"See {IERC20-transferFrom}. Emits an {Approval} event indicating the updated allowance. This is not required by the EIP. See the note at the beginning of {ERC20}. NOTE: Does not update the allowance if the current allowance is the maximum `uint256`. Requirements: - `from` and `to` cannot be the zero address. - `from` must have a balance of at least `value`. - the caller must have allowance for ``from``'s tokens of at least `value`."},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."},"version()":{"details":"Starts from 1.","returns":{"_0":"version of the entity"}},"withdraw(address,uint256)":{"params":{"amount":"amount of the collateral to withdraw","claimer":"account that needs to claim the withdrawal"},"returns":{"burnedShares":"amount of the active shares burned","mintedShares":"amount of the epoch withdrawal shares minted"}},"withdrawalsOf(uint256,address)":{"params":{"account":"account to get the withdrawals for","epoch":"epoch to get the withdrawals for the account at"},"returns":{"_0":"withdrawals for the account at the epoch"}}},"version":1},"userdoc":{"kind":"user","methods":{"DELEGATOR_FACTORY()":{"notice":"Get the delegator factory's address."},"DEPOSITOR_WHITELIST_ROLE()":{"notice":"Get a depositor whitelist status setter's role."},"DEPOSIT_LIMIT_SET_ROLE()":{"notice":"Get a deposit limit setter's role."},"DEPOSIT_WHITELIST_SET_ROLE()":{"notice":"Get a deposit whitelist enabler/disabler's role."},"FACTORY()":{"notice":"Get the factory's address."},"IS_DEPOSIT_LIMIT_SET_ROLE()":{"notice":"Get a deposit limit enabler/disabler's role."},"SLASHER_FACTORY()":{"notice":"Get the slasher factory's address."},"activeBalanceOf(address)":{"notice":"Get an active balance for a particular account."},"activeBalanceOfAt(address,uint48,bytes)":{"notice":"Get an active balance for a particular account at a given timestamp using hints."},"activeShares()":{"notice":"Get a total number of active shares in the vault."},"activeSharesAt(uint48,bytes)":{"notice":"Get a total number of active shares in the vault at a given timestamp using a hint."},"activeSharesOf(address)":{"notice":"Get a number of active shares for a particular account."},"activeSharesOfAt(address,uint48,bytes)":{"notice":"Get a total number of active shares for a particular account at a given timestamp using a hint."},"activeStake()":{"notice":"Get a total amount of active stake in the vault."},"activeStakeAt(uint48,bytes)":{"notice":"Get a total amount of active stake in the vault at a given timestamp using a hint."},"burner()":{"notice":"Get a burner to issue debt to (e.g., 0xdEaD or some unwrapper contract)."},"claim(address,uint256)":{"notice":"Claim collateral from the vault."},"claimBatch(address,uint256[])":{"notice":"Claim collateral from the vault for multiple epochs."},"collateral()":{"notice":"Get a vault collateral."},"currentEpoch()":{"notice":"Get a current vault epoch."},"currentEpochStart()":{"notice":"Get a start of the current vault epoch."},"delegator()":{"notice":"Get a delegator (it delegates the vault's stake to networks and operators)."},"deposit(address,uint256)":{"notice":"Deposit collateral into the vault."},"depositLimit()":{"notice":"Get a deposit limit (maximum amount of the active stake that can be in the vault simultaneously)."},"depositWhitelist()":{"notice":"Get if the deposit whitelist is enabled."},"epochAt(uint48)":{"notice":"Get an epoch at a given timestamp."},"epochDuration()":{"notice":"Get a duration of the vault epoch."},"epochDurationInit()":{"notice":"Get a time point of the epoch duration set."},"initialize(uint64,address,bytes)":{"notice":"Initialize this entity contract by using a given data and setting a particular version and owner."},"isDelegatorInitialized()":{"notice":"Get if the delegator is initialized."},"isDepositLimit()":{"notice":"Get if the deposit limit is set."},"isDepositorWhitelisted(address)":{"notice":"Get if a given account is whitelisted as a depositor."},"isInitialized()":{"notice":"Check if the vault is fully initialized (a delegator and a slasher are set)."},"isSlasherInitialized()":{"notice":"Get if the slasher is initialized."},"isWithdrawalsClaimed(uint256,address)":{"notice":"Get if the withdrawals are claimed for a particular account at a given epoch."},"migrate(uint64,bytes)":{"notice":"Migrate this entity to a particular newer version using a given data."},"nextEpochStart()":{"notice":"Get a start of the next vault epoch."},"onSlash(uint256,uint48)":{"notice":"Slash callback for burning collateral."},"previousEpochStart()":{"notice":"Get a start of the previous vault epoch."},"redeem(address,uint256)":{"notice":"Redeem collateral from the vault (it will be claimable after the next epoch)."},"setDepositLimit(uint256)":{"notice":"Set a deposit limit."},"setDepositWhitelist(bool)":{"notice":"Enable/disable deposit whitelist."},"setDepositorWhitelistStatus(address,bool)":{"notice":"Set a depositor whitelist status."},"setIsDepositLimit(bool)":{"notice":"Enable/disable deposit limit."},"slashableBalanceOf(address)":{"notice":"Get a total amount of the collateral that can be slashed for a given account."},"slasher()":{"notice":"Get a slasher (it provides networks a slashing mechanism)."},"staticDelegateCall(address,bytes)":{"notice":"Make a delegatecall from this contract to a given target contract with a particular data (always reverts with a return data)."},"totalStake()":{"notice":"Get a total amount of the collateral that can be slashed."},"version()":{"notice":"Get the entity's version."},"withdraw(address,uint256)":{"notice":"Withdraw collateral from the vault (it will be claimable after the next epoch)."},"withdrawalShares(uint256)":{"notice":"Get a total number of withdrawal shares at a given epoch."},"withdrawalSharesOf(uint256,address)":{"notice":"Get a number of withdrawal shares for a particular account at a given epoch (zero if claimed)."},"withdrawals(uint256)":{"notice":"Get a total amount of the withdrawals at a given epoch."},"withdrawalsOf(uint256,address)":{"notice":"Get withdrawals for a particular account at a given epoch (zero if claimed)."}},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/contracts/vault/VaultTokenized.sol":"VaultTokenized"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol":{"keccak256":"0x6662ec4e5cefca03eeadd073e9469df8d2944bb2ee8ec8f7622c2c46aab5f225","urls":["bzz-raw://4d8544c6f8daa4d1bc215c6a72fe0acdb748664a105b0e5efc19295667521d45","dweb:/ipfs/QmdGWqdnXT8S3RgCR6aV8XHZrsybieMQLLnug1NtpSjEXN"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol":{"keccak256":"0xc163fcf9bb10138631a9ba5564df1fa25db9adff73bd9ee868a8ae1858fe093a","urls":["bzz-raw://9706d43a0124053d9880f6e31a59f31bc0a6a3dc1acd66ce0a16e1111658c5f6","dweb:/ipfs/QmUFmfowzkRwGtDu36cXV9SPTBHJ3n7dG9xQiK5B28jTf2"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b","urls":["bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609","dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/ERC20Upgradeable.sol":{"keccak256":"0x9a1766b1921bf91b3e61eb53c7a6e70725254befd4bdcbbcd3af40bd9f66856f","urls":["bzz-raw://29bf2fa41a172086a665c9738377b93655aa4b1ffda9fe839c8bdf646f185040","dweb:/ipfs/QmeB21qDuo8WPQSrqXJbQmWHKsdeocGNSUWLhCwniVejrt"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol":{"keccak256":"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397","urls":["bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9","dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardUpgradeable.sol":{"keccak256":"0xb44e086e941292cdc7f440de51478493894ef0b1aeccb0c4047445919f667f74","urls":["bzz-raw://942dad22fbdc1669f025540ba63aa3ccfad5f8458fc5d4525b31ebf272e7af45","dweb:/ipfs/Qmdo4X2M82aM3AMoW2kf2jhYkSCyC4T1pHNd6obdsDFnAB"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol":{"keccak256":"0xdaba3f7c42c55b2896353f32bd27d4d5f8bae741b3b05d4c53f67abc4dc47ce8","urls":["bzz-raw://1fa2e61141c602510bcd2cd936ed9561922ac8772a9b9c9a9db091a74e354a45","dweb:/ipfs/QmcHQDDoEBwJmwUbzoVkytvJsBx3KVHYFFnDkvRGWh9Wmh"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol":{"keccak256":"0xb6b36edd6a2999fd243ff226d6cbf84bd71af2432bbd0dfe19392996a1d9cb41","urls":["bzz-raw://1fd2f35495652e57e3f99bc6c510bc5f7dd398a176ea2e72d8ed730aebc6ca26","dweb:/ipfs/QmTQV6X4gkikTib49cho5iDX3JvSQbdsoEChoDwrk3CbbH"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol":{"keccak256":"0x60c65f701957fdd6faea1acb0bb45825791d473693ed9ecb34726fdfaa849dd7","urls":["bzz-raw://ea290300e0efc4d901244949dc4d877fd46e6c5e43dc2b26620e8efab3ab803f","dweb:/ipfs/QmcLLJppxKeJWqHxE2CUkcfhuRTgHSn8J4kijcLa5MYhSt"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70","urls":["bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c","dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0xaa761817f6cd7892fcf158b3c776b34551cde36f48ff9703d53898bc45a94ea2","urls":["bzz-raw://0ad7c8d4d08938c8dfc43d75a148863fb324b80cf53e0a36f7e5a4ac29008850","dweb:/ipfs/QmcrhfPgVNf5mkdhQvy1pMv51TFokD3Y4Wa5WZhFqVh8UV"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol":{"keccak256":"0x6008dabfe393240d73d7dd7688033f72740d570aa422254d29a7dce8568f3aff","urls":["bzz-raw://f5196ec75139918c6c7bb4251b36395e668f1fa6d206beba7e7520e74913940d","dweb:/ipfs/QmSyqjksXxmm2mCG6qRd1yuwLykypkSVBbnBnGqJRcuJMi"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0x37bb49513c49c87c4642a891b13b63571bc87013dde806617aa1efb54605f386","urls":["bzz-raw://b3036b3a83b7c48f96641f2a9002b9f2dcb6a5958dd670894ada21ae8229b3d0","dweb:/ipfs/QmUNfSBdoVtjhETaUJCYcaC7pTMgbhht926tJ2uXJbiVd3"],"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/introspection/IERC165.sol":{"keccak256":"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b","urls":["bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df","dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d","urls":["bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875","dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol":{"keccak256":"0xe19a4d5f31d2861e7344e8e535e2feafb913d806d3e2b5fe7782741a2a7094fe","urls":["bzz-raw://4aed79c0fa6f0546ed02f2f683e8f77f0fd2ed7eb34d8bbf3d373c9a6d95b13c","dweb:/ipfs/QmWqVz6UAVqmnWU5pqYPt1o6iDEZyPaBraAA3rKfTTSfYj"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/Checkpoints.sol":{"keccak256":"0xbdc5e074d7dd6678f67e92b1a51a20226801a407b0e1af3da367c5d1ff4519ad","urls":["bzz-raw://a36cca6b22fff3db16fc789ff6c60eea71d4b156065d4d0c83a0bc5e91a77a8b","dweb:/ipfs/QmYN3exd5AemxjBrN8XMB1p5LbbE16uC3sjbYjwi8AjcGR"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/types/Time.sol":{"keccak256":"0xc7755af115020049e4140f224f9ee88d7e1799ffb0646f37bf0df24bf6213f58","urls":["bzz-raw://7f09bf94d5274334ec021f61a04659db303f31e60460e14b709c9bf187740111","dweb:/ipfs/QmNvgomZYUwFAt4cZbPWAiTeSZQreGehY9BK5xyVJsUttb"],"license":"MIT"},"src/contracts/common/MigratableEntity.sol":{"keccak256":"0x2d736f4dacd5d7e7697503bc426c78b8250fe1694ca157965ec178da6807de58","urls":["bzz-raw://f1237acf96b4b9f9b69156e068eddd726a6e15bd8e87a18dc999cd4ba4da069c","dweb:/ipfs/QmS6M8fiFFSeuJ4ZKKq1z8W7w4ybeHQSy5TLASGoc1LVic"],"license":"BUSL-1.1"},"src/contracts/common/StaticDelegateCallable.sol":{"keccak256":"0x350029aa8955eacaffffaeb58babc5c98e80ebc5c5db388ed17ee6465f4a9d90","urls":["bzz-raw://eb392a8ee9050e0af606897df63e3404e3829e8b688b580663892f9664195764","dweb:/ipfs/QmaXC8jqV8UrrAFkzXTEv2fJF56sy33HhLxAzaRZmUxuXD"],"license":"BUSL-1.1"},"src/contracts/libraries/Checkpoints.sol":{"keccak256":"0xba90097c8bfe0a975499428b5f8ac5569483c7d92ccc28c12d70de416aae040c","urls":["bzz-raw://12f5d93ca94cd06d3147db68993165a58e17903ed53682560de61f3085ad4609","dweb:/ipfs/QmePiuAqvXprMLmFZkGZeGjvGPAvsEDHfCDv7BoQhXu9xE"],"license":"MIT"},"src/contracts/libraries/ERC4626Math.sol":{"keccak256":"0x8441160513c1cbeb1c3b9ee077bcc7e7ce20006b52a77c8dd39ff0ef89699939","urls":["bzz-raw://943f8cc3e26ddf649f465f40c909819f5c864717c4baa339e9e403b9374a4653","dweb:/ipfs/QmXPxi1sUDsrGprZdUgCzoPEosaZMv9ZhygWQ1vAi1phAB"],"license":"MIT"},"src/contracts/vault/Vault.sol":{"keccak256":"0x2ceff6ed3298c4cad144c99fcc79b51cb9397d6ebef00285b915848b476f8c2e","urls":["bzz-raw://11f2fb3581854f3ab6e82e8d4935d9eb510c903a13c3f022346c2956a58f5307","dweb:/ipfs/QmdUnoXoyYoG9SGWyQZCFyLDRUUX3eXyXetkRvw6jxqqBz"],"license":"BUSL-1.1"},"src/contracts/vault/VaultStorage.sol":{"keccak256":"0x57db25b127d77ea3472de53e3a4af3354399655b9268638b99ca5925fa364a56","urls":["bzz-raw://aa763d9a6ec508ae3abfb8228b72b9fd9525279e5135d4962e79ff059feb1173","dweb:/ipfs/QmcbDR6E9wyEpu6V2FkEC4hnWy47zXA9LSKJde6zSGd33Q"],"license":"BUSL-1.1"},"src/contracts/vault/VaultTokenized.sol":{"keccak256":"0xa9475a46a3e32b35e48bc37fdaf08e1a586fb7c9667ac5e014b716a08873c46d","urls":["bzz-raw://0a292a4f35bc43ce7174b36e2d016bc44d6737e94b41e48cb5dd1bb1e4821e48","dweb:/ipfs/QmduHZe2REPnygiWvQRV82yD4tYHdwX33FkYRFm1UZoXBA"],"license":"BUSL-1.1"},"src/interfaces/common/IEntity.sol":{"keccak256":"0x8ef4b63d6da63489778ccd5f8d13ebdd527dd4b62730b2c616df5af7474d2d21","urls":["bzz-raw://5a8d69576a9219d85c50816a18ad53a4d53cfcb27ed38b8cccc808dc2734b71b","dweb:/ipfs/QmYVN3P4Q4REvBWJ97TbAcaxm3uyB2anV6NSGa6ZtSwcEv"],"license":"MIT"},"src/interfaces/common/IMigratableEntity.sol":{"keccak256":"0x8f5f2809f3afbe8ebfbb365dd7b57b4dd3b6f9943a6187eaf648d45895b8e3c4","urls":["bzz-raw://0ffe640537d539e7a4fde70d30d3e4c57f4ba9c2c25c450cea713aae38e8fd5c","dweb:/ipfs/QmSUTGzvdcn1R1KB7tLThMRtESsfPbeXDhhhKWGtntzBds"],"license":"MIT"},"src/interfaces/common/IRegistry.sol":{"keccak256":"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb","urls":["bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014","dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK"],"license":"MIT"},"src/interfaces/common/IStaticDelegateCallable.sol":{"keccak256":"0xa335d4e81b9071b7de66ef92b43ff20671d86516eb1be46fef29a3483cd3f5d5","urls":["bzz-raw://d464b9db863c14c05547d2b23352f2e9b7b784799cf09f6bbc4906a2a74e3516","dweb:/ipfs/QmUVWzFvJz7eEbDQKiFTTzwi7TEbjcs3VmwdM4kuptAKvi"],"license":"MIT"},"src/interfaces/delegator/IBaseDelegator.sol":{"keccak256":"0x96bb312f032e17accce3f8f80936d99468029d6b37c9ca74acdb4b026a0148ee","urls":["bzz-raw://2a66dcb5b7d1a6ef6a363431ea98ebd78bc4fdd3d7a134d9b542dc66e7d025c2","dweb:/ipfs/QmRhTPLd2ZAyRHmJUFUcWKs9b3if49QY17LYZuRqWmghw8"],"license":"MIT"},"src/interfaces/slasher/IBaseSlasher.sol":{"keccak256":"0x7c82528b445659c313ab77335c407b0b6efe5e79027187bb287f7bc74202b404","urls":["bzz-raw://0274c90aa5df1aa6bb470a6aab53992fb14fd7e5472c9430416505b29647d9cf","dweb:/ipfs/QmckbmJLDetPemVzCnnGcKYWAZV2BRFXGDsjiaec8jkHxx"],"license":"MIT"},"src/interfaces/vault/IVault.sol":{"keccak256":"0xffee01d383cd4e1a5530c614bf4360c1ef070c288abec9da1eb531b51bc07235","urls":["bzz-raw://04f0046cac285d8ec44ebbb1f79dc94fab4495767190cad8364fbc1fafaadfb9","dweb:/ipfs/QmUawAunwzXfCyShWfhKeThAgKtqe51hmrxvrXvM772M2R"],"license":"MIT"},"src/interfaces/vault/IVaultStorage.sol":{"keccak256":"0x592626f13754194f83047135de19229c49390bd59e34659b1bb38be71d973a22","urls":["bzz-raw://06a6a9dfddd05e580b32bebe2cff4f63ba26a653180676d58225dd30d9c89d3e","dweb:/ipfs/QmdgzBeY6Sxo8mGtyBxtv1tM1c2kU6J6zjeRd7vuXm4DU6"],"license":"MIT"},"src/interfaces/vault/IVaultTokenized.sol":{"keccak256":"0xb723560b49c30b38130634388a0550c9e07596f92a58edbfa2415e690024e0c4","urls":["bzz-raw://dc9dde973a0bbf0adbc305462a796fa3b2e5be9daa1984e4f3e4f48e3c254f39","dweb:/ipfs/QmQydZsr7ESw7ZSe9mqaxZ3dycvru8ZFVwrL9pmVnpyd7c"],"license":"MIT"}},"version":1},"id":97} \ No newline at end of file +{"abi":[{"type":"constructor","inputs":[{"name":"delegatorFactory","type":"address","internalType":"address"},{"name":"slasherFactory","type":"address","internalType":"address"},{"name":"vaultFactory","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"DEFAULT_ADMIN_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"DELEGATOR_FACTORY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"DEPOSITOR_WHITELIST_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"DEPOSIT_LIMIT_SET_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"DEPOSIT_WHITELIST_SET_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"FACTORY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"IS_DEPOSIT_LIMIT_SET_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"SLASHER_FACTORY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"activeBalanceOf","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"activeBalanceOfAt","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"timestamp","type":"uint48","internalType":"uint48"},{"name":"hints","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"activeShares","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"activeSharesAt","inputs":[{"name":"timestamp","type":"uint48","internalType":"uint48"},{"name":"hint","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"activeSharesOf","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"activeSharesOfAt","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"timestamp","type":"uint48","internalType":"uint48"},{"name":"hint","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"activeStake","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"activeStakeAt","inputs":[{"name":"timestamp","type":"uint48","internalType":"uint48"},{"name":"hint","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"allowance","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"spender","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"approve","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"balanceOf","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"burner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"claim","inputs":[{"name":"recipient","type":"address","internalType":"address"},{"name":"epoch","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"claimBatch","inputs":[{"name":"recipient","type":"address","internalType":"address"},{"name":"epochs","type":"uint256[]","internalType":"uint256[]"}],"outputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"collateral","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"currentEpoch","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"currentEpochStart","inputs":[],"outputs":[{"name":"","type":"uint48","internalType":"uint48"}],"stateMutability":"view"},{"type":"function","name":"decimals","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"uint8"}],"stateMutability":"view"},{"type":"function","name":"delegator","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"deposit","inputs":[{"name":"onBehalfOf","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"depositedAmount","type":"uint256","internalType":"uint256"},{"name":"mintedShares","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"depositLimit","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"depositWhitelist","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"epochAt","inputs":[{"name":"timestamp","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"epochDuration","inputs":[],"outputs":[{"name":"","type":"uint48","internalType":"uint48"}],"stateMutability":"view"},{"type":"function","name":"epochDurationInit","inputs":[],"outputs":[{"name":"","type":"uint48","internalType":"uint48"}],"stateMutability":"view"},{"type":"function","name":"getRoleAdmin","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"grantRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"hasRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"initialize","inputs":[{"name":"initialVersion","type":"uint64","internalType":"uint64"},{"name":"owner_","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"isDelegatorInitialized","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isDepositLimit","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isDepositorWhitelisted","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"value","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isInitialized","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isSlasherInitialized","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isWithdrawalsClaimed","inputs":[{"name":"epoch","type":"uint256","internalType":"uint256"},{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"value","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"migrate","inputs":[{"name":"newVersion","type":"uint64","internalType":"uint64"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"nextEpochStart","inputs":[],"outputs":[{"name":"","type":"uint48","internalType":"uint48"}],"stateMutability":"view"},{"type":"function","name":"onSlash","inputs":[{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"captureTimestamp","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"slashedAmount","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"previousEpochStart","inputs":[],"outputs":[{"name":"","type":"uint48","internalType":"uint48"}],"stateMutability":"view"},{"type":"function","name":"redeem","inputs":[{"name":"claimer","type":"address","internalType":"address"},{"name":"shares","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"withdrawnAssets","type":"uint256","internalType":"uint256"},{"name":"mintedShares","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"renounceRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"callerConfirmation","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"revokeRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setDelegator","inputs":[{"name":"delegator_","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setDepositLimit","inputs":[{"name":"limit","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setDepositWhitelist","inputs":[{"name":"status","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setDepositorWhitelistStatus","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"status","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setIsDepositLimit","inputs":[{"name":"status","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setSlasher","inputs":[{"name":"slasher_","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"slashableBalanceOf","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"slasher","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"staticDelegateCall","inputs":[{"name":"target","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"symbol","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"totalStake","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"totalSupply","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"transfer","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"transferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"version","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"withdraw","inputs":[{"name":"claimer","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"burnedShares","type":"uint256","internalType":"uint256"},{"name":"mintedShares","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"withdrawalShares","inputs":[{"name":"epoch","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"withdrawalSharesOf","inputs":[{"name":"epoch","type":"uint256","internalType":"uint256"},{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"withdrawals","inputs":[{"name":"epoch","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"withdrawalsOf","inputs":[{"name":"epoch","type":"uint256","internalType":"uint256"},{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"event","name":"Approval","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"spender","type":"address","indexed":true,"internalType":"address"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Claim","inputs":[{"name":"claimer","type":"address","indexed":true,"internalType":"address"},{"name":"recipient","type":"address","indexed":true,"internalType":"address"},{"name":"epoch","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"ClaimBatch","inputs":[{"name":"claimer","type":"address","indexed":true,"internalType":"address"},{"name":"recipient","type":"address","indexed":true,"internalType":"address"},{"name":"epochs","type":"uint256[]","indexed":false,"internalType":"uint256[]"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Deposit","inputs":[{"name":"depositor","type":"address","indexed":true,"internalType":"address"},{"name":"onBehalfOf","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"shares","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"OnSlash","inputs":[{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"captureTimestamp","type":"uint48","indexed":false,"internalType":"uint48"},{"name":"slashedAmount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"RoleAdminChanged","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"previousAdminRole","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"newAdminRole","type":"bytes32","indexed":true,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"RoleGranted","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"sender","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"RoleRevoked","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"sender","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"SetDelegator","inputs":[{"name":"delegator","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"SetDepositLimit","inputs":[{"name":"limit","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"SetDepositWhitelist","inputs":[{"name":"status","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"SetDepositorWhitelistStatus","inputs":[{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"status","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"SetIsDepositLimit","inputs":[{"name":"status","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"SetSlasher","inputs":[{"name":"slasher","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Withdraw","inputs":[{"name":"withdrawer","type":"address","indexed":true,"internalType":"address"},{"name":"claimer","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"burnedShares","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"mintedShares","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"error","name":"AccessControlBadConfirmation","inputs":[]},{"type":"error","name":"AccessControlUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"neededRole","type":"bytes32","internalType":"bytes32"}]},{"type":"error","name":"AddressEmptyCode","inputs":[{"name":"target","type":"address","internalType":"address"}]},{"type":"error","name":"AddressInsufficientBalance","inputs":[{"name":"account","type":"address","internalType":"address"}]},{"type":"error","name":"AlreadyClaimed","inputs":[]},{"type":"error","name":"AlreadyInitialized","inputs":[]},{"type":"error","name":"AlreadySet","inputs":[]},{"type":"error","name":"CheckpointUnorderedInsertion","inputs":[]},{"type":"error","name":"DelegatorAlreadyInitialized","inputs":[]},{"type":"error","name":"DepositLimitReached","inputs":[]},{"type":"error","name":"ERC20InsufficientAllowance","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"allowance","type":"uint256","internalType":"uint256"},{"name":"needed","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ERC20InsufficientBalance","inputs":[{"name":"sender","type":"address","internalType":"address"},{"name":"balance","type":"uint256","internalType":"uint256"},{"name":"needed","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ERC20InvalidApprover","inputs":[{"name":"approver","type":"address","internalType":"address"}]},{"type":"error","name":"ERC20InvalidReceiver","inputs":[{"name":"receiver","type":"address","internalType":"address"}]},{"type":"error","name":"ERC20InvalidSender","inputs":[{"name":"sender","type":"address","internalType":"address"}]},{"type":"error","name":"ERC20InvalidSpender","inputs":[{"name":"spender","type":"address","internalType":"address"}]},{"type":"error","name":"FailedInnerCall","inputs":[]},{"type":"error","name":"InsufficientClaim","inputs":[]},{"type":"error","name":"InsufficientDeposit","inputs":[]},{"type":"error","name":"InsufficientRedemption","inputs":[]},{"type":"error","name":"InsufficientWithdrawal","inputs":[]},{"type":"error","name":"InvalidAccount","inputs":[]},{"type":"error","name":"InvalidCaptureEpoch","inputs":[]},{"type":"error","name":"InvalidClaimer","inputs":[]},{"type":"error","name":"InvalidCollateral","inputs":[]},{"type":"error","name":"InvalidDelegator","inputs":[]},{"type":"error","name":"InvalidEpoch","inputs":[]},{"type":"error","name":"InvalidEpochDuration","inputs":[]},{"type":"error","name":"InvalidInitialization","inputs":[]},{"type":"error","name":"InvalidLengthEpochs","inputs":[]},{"type":"error","name":"InvalidOnBehalfOf","inputs":[]},{"type":"error","name":"InvalidRecipient","inputs":[]},{"type":"error","name":"InvalidSlasher","inputs":[]},{"type":"error","name":"InvalidTimestamp","inputs":[]},{"type":"error","name":"MathOverflowedMulDiv","inputs":[]},{"type":"error","name":"MissingRoles","inputs":[]},{"type":"error","name":"NoPreviousEpoch","inputs":[]},{"type":"error","name":"NotDelegator","inputs":[]},{"type":"error","name":"NotFactory","inputs":[]},{"type":"error","name":"NotInitialized","inputs":[]},{"type":"error","name":"NotInitializing","inputs":[]},{"type":"error","name":"NotSlasher","inputs":[]},{"type":"error","name":"NotWhitelistedDepositor","inputs":[]},{"type":"error","name":"OwnableInvalidOwner","inputs":[{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"OwnableUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"}]},{"type":"error","name":"ReentrancyGuardReentrantCall","inputs":[]},{"type":"error","name":"SafeCastOverflowedUintDowncast","inputs":[{"name":"bits","type":"uint8","internalType":"uint8"},{"name":"value","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"SafeERC20FailedOperation","inputs":[{"name":"token","type":"address","internalType":"address"}]},{"type":"error","name":"SlasherAlreadyInitialized","inputs":[]},{"type":"error","name":"TooMuchRedeem","inputs":[]},{"type":"error","name":"TooMuchWithdraw","inputs":[]}],"bytecode":{"object":"0x60e03461013c57601f61579138819003918201601f1916830192916001600160401b03918285118486101761014057816060928592604097885283398101031261013c5761004c82610154565b916100648461005d60208401610154565b9201610154565b9260805260a0527ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a009081549060ff82861c1661012b5780808316036100e7575b50505060c05251615628908161016982396080518181816115820152611b29015260a051818181611c9201526121ef015260c051818181610a9b0152610cc30152f35b6001600160401b0319909116811790915582519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a15f80806100a4565b845163f92ee8a960e01b8152600490fd5b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b51906001600160a01b038216820361013c5756fe60806040526004361015610011575f80fd5b5f3560e01c806301ffc9a7146104ba57806306fdde03146104b5578063095ea7b3146104b05780631415519b146104ab57806318160ddd146103895780631b66c9e1146104a65780631e9a6950146104a157806323b872dd1461049c578063248a9ca31461049757806327810b6e14610492578063281f57521461048d5780632abe3048146104885780632d73c69c146104835780632dd310001461047e5780632f2ff15d14610479578063313ce5671461047457806336568abe1461046f578063392e53cd1461046a5780634105a7dd14610465578063463616711461046057806347e7ef241461045b57806348d3b775146104565780634ff0876a1461045157806350861adc1461044c57806350f22068146104475780635346e34f1461044257806354fd4d501461043d57806357ec83cc1461043857806359f769a9146104335780635cc070761461042e57806361a8c8c4146104295780636da3e06d146104245780636ec1e3f81461041f57806370a08231146103d4578063715018a61461041a5780637278e31c1461041557806373790ab314610410578063766718081461040b578063794b15b7146104065780637953b33b146104015780637c04c80a146103fc578063810da75d146103f757806383cd9cc3146103f257806387df0788146103ed5780638b0e9f3f146103e85780638da5cb5b146103e357806391d14854146103de57806395d89b41146103d95780639d66201b146103d45780639f86fd85146103cf578063a1b12202146103ca578063a217fddf146103c5578063a21a1df9146103c0578063a2861466146103bb578063a3b54172146103b6578063a5d03223146103b1578063a9059cbb146103ac578063aabc2496146103a7578063aad3ec96146103a2578063afba70ad1461039d578063b134427114610398578063bd49c35f14610393578063bdc8144b1461038e578063bfefcd7b14610389578063c31e8dd714610384578063ce9b79301461037f578063d547741f1461037a578063d8dfeb4514610375578063db38871514610370578063dd62ed3e1461036b578063ecf7085814610366578063efb559d614610361578063f2fde38b1461035c578063f3fef3a3146103575763f5e7ee0f14610352575f80fd5b6128a9565b612803565b6127d6565b612687565b61266a565b612633565b6125f9565b6125ce565b612582565b61255a565b6124f0565b610749565b612412565b6123f8565b6123d0565b6123a6565b6122e5565b61212e565b6120f9565b6120b3565b612066565b611f73565b611f39565b611f1f565b611efb565b611e67565b6115d6565b611db5565b611d57565b611d23565b611cc1565b611c7d565b611ac4565b611aab565b611a45565b611a1e565b6119de565b61198c565b61194b565b611677565b611610565b6115b1565b61156d565b61151a565b6114f0565b6114c9565b611391565b61135f565b6112ca565b6112b1565b611254565b611234565b611213565b610f2b565b610f03565b610e68565b610e23565b610dd8565b610d40565b610cf2565b610cae565b610c42565b610a56565b610988565b610960565b610927565b61088a565b6107a5565b61076b565b61070f565b61064d565b61054c565b346105105760203660031901126105105760043563ffffffff60e01b811680910361051057602090637965db0b60e01b81149081156104ff575b506040519015158152f35b6301ffc9a760e01b1490505f6104f4565b5f80fd5b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b906020610549928181520190610514565b90565b34610510575f366003190112610510576040515f5f805160206154d383398151915280549061057a826128d3565b8085529160209160019182811690811561060f57506001146105b7575b6105b3866105a781880382610b86565b60405191829182610538565b0390f35b5f90815293507f2ae08a8e29253f69ac5d979a101956ab8f8d9d7ded63fa7a83b16fc47648eab05b8385106105fc575050505081016020016105a7826105b35f610597565b80548686018401529382019381016105df565b90508695506105b3969350602092506105a794915060ff191682840152151560051b82010192935f610597565b6001600160a01b0381160361051057565b346105105760403660031901126105105760043561066a8161063c565b60243533156106f7576001600160a01b0382169182156106df576106a78291610692336119a6565b9060018060a01b03165f5260205260405f2090565b556040519081527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560203392a3602060405160018152f35b604051634a1406b160e11b81525f6004820152602490fd5b60405163e602df0560e01b81525f6004820152602490fd5b34610510575f3660031901126105105760206040517fc6aaadd7371d5e8f9ed6849dd66a66573a3ba37167d03f4352c9ba5693678fac8152f35b34610510575f366003190112610510576020610763614003565b604051908152f35b34610510575f3660031901126105105760206040517f9c56d972d63cbb4195b3c1484691dfc220fa96a4c47e7b6613bd82a022029e068152f35b34610510576040366003190112610510576004356107c28161063c565b602435906107ce612e1a565b6001600160a01b0381161561087957335f908152600e602052604090206107f9906140f0565b6140f0565b82116108675761081961080a61407c565b610812614003565b9084614164565b918215610852578261082a92612e49565b9061084160015f805160206155b383398151915255565b604080519182526020820192909252f35b60405160016245ddc760e11b03198152600490fd5b604051632418411f60e11b8152600490fd5b6040516208978560e71b8152600490fd5b34610510576060366003190112610510576004356108a78161063c565b6024356108b38161063c565b604435906108c433610692856119a6565b5492600184016108e5575b6108d99350612fd9565b60405160018152602090f35b828410610901576108fc836108d99503338361413d565b6108cf565b604051637dc7a0d960e11b81523360048201526024810185905260448101849052606490fd5b34610510576020366003190112610510576004355f525f805160206155938339815191526020526020600160405f200154604051908152f35b34610510575f366003190112610510576001546040516001600160a01b039091168152602090f35b34610510575f366003190112610510576109a0612b3f565b8015610a015760015465ffffffffffff8160a01c16915f1981019081116109fc576109ce9160d01c9061293a565b81018091116109fc576109e36105b391613138565b60405165ffffffffffff90911681529081906020820190565b61290b565b604051639fa56a5b60e01b8152600490fd5b600435906001600160401b038216820361051057565b9181601f84011215610510578235916001600160401b038311610510576020838186019501011161051057565b3461051057604036600319011261051057610a6f610a13565b6001600160401b0360243581811161051057610a8f903690600401610a29565b5050610a99612e1a565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163303610b15575f805160206155d3833981519152549060ff8260401c16928315610b05575b505050610af3575f80fd5b60405163f92ee8a960e01b8152600490fd5b81169116101590505f8080610ae8565b604051631966391b60e11b8152600490fd5b65ffffffffffff81160361051057565b634e487b7160e01b5f52604160045260245ffd5b606081019081106001600160401b03821117610b6657604052565b610b37565b604081019081106001600160401b03821117610b6657604052565b90601f801991011681019081106001600160401b03821117610b6657604052565b6040519061016082018281106001600160401b03821117610b6657604052565b60405190610bd482610b6b565b565b6001600160401b038111610b6657601f01601f191660200190565b929192610bfd82610bd6565b91610c0b6040519384610b86565b829481845281830111610510578281602093845f960137010152565b9080601f830112156105105781602061054993359101610bf1565b3461051057606036600319011261051057600435610c5f8161063c565b60243590610c6c82610b27565b604435906001600160401b03821161051057602092610c92610763933690600401610c27565b6001600160a01b039092165f908152600e855260409020613331565b34610510575f366003190112610510576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461051057604036600319011261051057610d3e602435600435610d158261063c565b805f525f80516020615593833981519152602052610d39600160405f200154613508565b613808565b005b34610510575f366003190112610510575f5460405163313ce56760e01b8152906020908290600490829060101c6001600160a01b03165afa8015610dd3575f90610d95575b60405160ff919091168152602090f35b506020813d602011610dcb575b81610daf60209383610b86565b81010312610510575160ff81168103610510576105b390610d85565b3d9150610da2565b612989565b3461051057604036600319011261051057602435610df58161063c565b336001600160a01b03821603610e1157610d3e9060043561383e565b60405163334bd91960e11b8152600490fd5b34610510575f3660031901126105105760ff60025460a01c1680610e4f575b6020906040519015158152f35b5060035460a01c60ff16610e42565b8015150361051057565b3461051057602036600319011261051057600435610e8581610e5e565b610e8d612e1a565b610e956133fd565b5f54901515908160ff8216151514610ef15760ff191660ff8216175f556040519081527f3e12b7b36c75ac9609a3f58609b331210428e1a85909132638955ba0301eec3390602090a160015f805160206155b383398151915255005b60405163a741a04560e01b8152600490fd5b34610510575f36600319011261051057602065ffffffffffff60015460a01c16604051908152f35b3461051057604080600319360112610510576004803591610f4b8361063c565b610f53612e1a565b6001600160a01b0391838316908115611205575f5460ff8116806111ec575b6111dd5783516370a0823160e01b808252308483019081529096602093909160109190911c82169084908490819083010381845afa928315610dd3575f936111ba575b50610fc790602435903090339061453d565b5f5486519788523085890190815290979184918391908290819060200103918b60101c165afa908115610dd357611006935f9261118d575b505061292d565b93841561117e5760081c60ff1680611169575b61115b5750906105b3916110ca61102e61407c565b9561107761103a614003565b6110626110488a838b614164565b9961105c8a61105642613138565b9261295b565b90613c9e565b50506110718961105642613138565b90613d7e565b50506001600160a01b0381165f908152600e60205260409020906110c4886110bf6107f46110a442613138565b6001600160a01b039095165f908152600e6020526040902090565b61295b565b91613e5a565b5050815184815260208101869052819033907fdcbc1c05240f31ff3ad067ef1ee35ce4997762752e3a095284754544f4c709d790604090a361111860015f805160206155b383398151915255565b81518581525f907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90602090a35191825260208201929092529081906040820190565b8251632484557960e01b8152fd5b50611176846110bf61407c565b815410611019565b50825163070f6eed60e11b8152fd5b6111ac9250803d106111b3575b6111a48183610b86565b8101906138d0565b5f80610fff565b503d61119a565b610fc79193506111d690853d87116111b3576111a48183610b86565b9290610fb5565b5082516304f63b8560e01b8152fd5b50335f9081526005602052604090205460ff1615610f72565b8251630d534ce360e11b8152fd5b34610510575f36600319011261051057602060ff5f54166040519015158152f35b34610510575f36600319011261051057602060015460d01c604051908152f35b34610510575f36600319011261051057602060ff60025460a01c166040519015158152f35b9060406003198301126105105760043561129281610b27565b91602435906001600160401b0382116105105761054991600401610c27565b346105105760206107636112c436611279565b9061319b565b34610510576020366003190112610510576004356112e781610e5e565b6112ef612e1a565b6112f761345a565b5f54901515908160ff8260081c16151514610ef15761ff001916600882901b61ff0016175f556040519081527ffa7a25a0b611d4ba3c0ea990e90dc23d484a5dd7a1be4733fef2946ba74530c690602090a1610d3e60015f805160206155b383398151915255565b34610510575f3660031901126105105760206001600160401b035f805160206155d38339815191525416604051908152f35b34610510576060366003190112610510576113aa610a13565b6024356113b68161063c565b6001600160401b0391604435838111610510576113d7903690600401610a29565b5f805160206155d38339815191529491855494838616806114b85760ff8760401c169081156114ab575b50610af3577fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2966114a69661146e958716906001600160401b0319161790556114695f805160206155d3833981519152600160401b68ff000000000000000019825416179055565b612994565b5f805160206155d3833981519152805468ff0000000000000000191690556040516001600160401b0390911681529081906020820190565b0390a1005b905084861611155f611401565b60405162dc149f60e41b8152600490fd5b346105105760203660031901126105105760206107636004356114eb8161063c565b612aa8565b34610510576020366003190112610510576004355f526006602052602060405f2054604051908152f35b34610510575f3660031901126105105760015465ffffffffffff611550818360a01c1692611546612b3f565b9060d01c9061293a565b82018092116109fc57611564602092613138565b60405191168152f35b34610510575f366003190112610510576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b34610510575f36600319011261051057602060ff60035460a01c166040519015158152f35b34610510576020366003190112610510576004356115f38161063c565b60018060a01b03165f52600e602052602061076360405f206140f0565b34610510575f36600319011261051057611628613abc565b5f8051602061553383398151915280546001600160a01b031981169091555f906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b346105105760403660031901126105105760043560243561169781610b27565b61169f612e1a565b6003546116bc906001600160a01b03165b6001600160a01b031690565b3303611939576116ca612b3f565b906116d481612b73565b9082151580611928575b801561191f575b61190d576105b3937ff9d090c096f71cd1659861a9ce5b6f384bceb4e2fa4e4a19edf6489a9b8d56c79261171761407c565b946117326117248261294d565b5f52600660205260405f2090565b54908281036118265750611746818761295b565b6117508185613af4565b9687806117df575b50505050505b836117ab575b6040805191825265ffffffffffff929092166020820152908101839052606090a161179b60015f805160206155b383398151915255565b6040519081529081906020820190565b5f546117da9085906117c89060101c6001600160a01b03166116b0565b6001546001600160a01b031690613f18565b611764565b61181b93610fff8361105c6118056117fe611724986118159888613b10565b809661292d565b9461180f42613138565b9261292d565b9261294d565b555f80808087611758565b915061183a825f52600660205260405f2090565b549061184a816110bf848a61295b565b906118558286613af4565b9788611866575b505050505061175e565b6118db938361188e9361189b8c6118966118846118cc998884613b10565b9788958584613b10565b94859261292d565b61292d565b938484106118e6575b610fff9061105c6118ba95969761180f42613138565b6118c66117248761294d565b5561292d565b915f52600660205260405f2090565b555f8080808061185c565b91611902610fff916118fc866118ba979861292d565b9061295b565b8594509290506118a4565b604051635e18d2a560e01b8152600490fd5b508282116116e5565b506119328361291f565b82106116de565b60405163dabc4ad960e01b8152600490fd5b34610510575f3660031901126105105760015465ffffffffffff808260a01c1691611974612b3f565b600181018091116109fc576115509160d01c9061293a565b34610510575f366003190112610510576020610763612b3f565b6001600160a01b03165f9081527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace016020526040902090565b34610510576020366003190112610510576004356119fb8161063c565b60018060a01b03165f526005602052602060ff60405f2054166040519015158152f35b34610510576020366003190112610510576020610763600435611a4081610b27565b612b73565b3461051057604036600319011261051057600435611a628161063c565b6024356001600160401b038082116105105736602383011215610510578160040135908111610510573660248260051b84010111610510576105b392602461179b930190612bae565b34610510576020610763611abe36611279565b9061327c565b3461051057602080600319360112610510576004803590611ae48261063c565b611aec612e1a565b60025460a01c60ff16611c6e576040516302910f8b60e31b81526001600160a01b03838116838301908152909491908290829081906020010381887f0000000000000000000000000000000000000000000000000000000000000000165afa908115610dd3575f91611c41575b5015611c315760405163fbfa77cf60e01b8152838516949082818581895afa928315610dd3575f93611c02575b505030911603611bf35750600280546001600160a01b03929092166001600160a81b031990921691909117600160a01b1790557fdb2160616f776a37b24808115554e79439bf26cccbbd4438190cc6d28e80ecd15f80a2610d3e60015f805160206155b383398151915255565b60405163b9f0f17160e01b8152fd5b611c22929350803d10611c2a575b611c1a8183610b86565b810190612d07565b905f80611b86565b503d611c10565b506040516324e5af8d60e21b8152fd5b611c619150823d8411611c67575b611c598183610b86565b810190612ce7565b5f611b59565b503d611c4f565b604051631380833b60e01b8152fd5b34610510575f366003190112610510576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b34610510575f36600319011261051057611cd9612b3f565b611ce161407c565b90805f52600660205260405f205482018092116109fc57600181018091116109fc575f52600660205260405f205481018091116109fc57602090604051908152f35b34610510575f366003190112610510575f80516020615533833981519152546040516001600160a01b039091168152602090f35b3461051057604036600319011261051057602060ff611da9602435611d7b8161063c565b6004355f525f80516020615593833981519152845260405f209060018060a01b03165f5260205260405f2090565b54166040519015158152f35b34610510575f366003190112610510576040515f5f80516020615513833981519152805490611de3826128d3565b8085529160209160019182811690811561060f5750600114611e0f576105b3866105a781880382610b86565b5f90815293507f46a2803e59a4de4e7a4c574b1243f25977ac4c77d5a1a4a609b5394cebb4a2aa5b838510611e54575050505081016020016105a7826105b35f610597565b8054868601840152938201938101611e37565b3461051057604036600319011261051057600435611e848161063c565b6024356001600160401b038111610510575f91611ea683923690600401610a29565b90816040519283928337810184815203915af4611ef3611ec4612d1c565b91611ee5604051938492151560208401526040808401526060830190610514565b03601f198101835282610b86565b805190602001fd5b34610510575f36600319011261051057602060ff5f5460081c166040519015158152f35b34610510575f3660031901126105105760206040515f8152f35b34610510575f3660031901126105105760206040517f4a634bc14d77baf979756509ef4298c6f6318af357828612545267ee2eb792338152f35b3461051057604036600319011261051057600435611f908161063c565b602435611f9c81610e5e565b611fa4612e1a565b611fac6134b1565b6001600160a01b038216918215612054575f8381526005602052604090205460ff16151582151514610ef1576001600160a01b03165f9081526005602052604090207ff991b1ecfb5115cbb36a2b2e2240c058406d2acc2fcc6e9e2dc99d845ff70a629161203b91612029908260ff801983541691151516179055565b60405190151581529081906020820190565b0390a2610d3e60015f805160206155b383398151915255565b604051630da30f6560e31b8152600490fd5b346105105760403660031901126105105760206120aa6024356120888161063c565b6004355f526008835260405f209060018060a01b03165f5260205260405f2090565b54604051908152f35b3461051057604036600319011261051057602060ff611da96024356120d78161063c565b6004355f526009845260405f209060018060a01b03165f5260205260405f2090565b34610510576040366003190112610510576121236004356121198161063c565b6024359033612fd9565b602060405160018152f35b346105105760208060031936011261051057600480359061214e8261063c565b612156612e1a565b60035460a01c60ff166122d6576001600160a01b038281169390846121c4575b6003805460ff60a01b1916600160a01b179055847fe7e4c932e03abddfe20f83af42c33627e816115c7ec2b168441f65dc14bfc3ba5f80a2610d3e60015f805160206155b383398151915255565b6040516302910f8b60e31b81526001600160a01b0385168482019081528390829081906020010381857f0000000000000000000000000000000000000000000000000000000000000000165afa908115610dd3575f916122b9575b50156122a85760405163fbfa77cf60e01b815282818581895afa928315610dd3575f93612289575b50503091160361227a5750600380546001600160a01b0319166001600160a01b039092169190911790555f808080612176565b604051633f3e089160e21b8152fd5b6122a0929350803d10611c2a57611c1a8183610b86565b905f80612247565b60405163dabc4ad960e01b81528390fd5b6122d09150833d8511611c6757611c598183610b86565b5f61221f565b60405163703fe2e560e01b8152fd5b34610510576040366003190112610510576004356123028161063c565b6024359061230e612e1a565b6001600160a01b03918183169081156123945761233f6105b39461233183613f67565b9485915f5460101c16613f18565b604080519182526020820184905233917f865ca08d59f5cb456e85cd2f7ef63664ea4f73327414e9d8152c4158b0e946459190a360015f805160206155b3833981519152556040519081529081906020820190565b604051634e46966960e11b8152600490fd5b34610510576020366003190112610510576004355f526007602052602060405f2054604051908152f35b34610510575f366003190112610510576003546040516001600160a01b039091168152602090f35b34610510575f36600319011261051057602061076361407c565b346105105760203660031901126105105760043561242e612e1a565b335f9081527f2d4ccbfe9f7672a6f2537c1e5bce6adacb73706879154bbab6ce096012d6721660205260409020547f4a634bc14d77baf979756509ef4298c6f6318af357828612545267ee2eb792339060ff16156124d257508060045414610ef1576020817f854df3eb95564502c8bc871ebdd15310ee26270f955f6c6bd8cea68e75045bc092600455604051908152a160015f805160206155b383398151915255005b6044906040519063e2517d3f60e01b82523360048301526024820152fd5b346105105760203660031901126105105760043561250d8161063c565b612515612b3f565b61251e82612aa8565b916125298183612dbc565b83018093116109fc57600182018092116109fc5761254691612dbc565b81018091116109fc57602090604051908152f35b34610510575f366003190112610510576002546040516001600160a01b039091168152602090f35b3461051057604036600319011261051057610d3e6024356004356125a58261063c565b805f525f805160206155938339815191526020526125c9600160405f200154613508565b61383e565b34610510575f366003190112610510575f5460405160109190911c6001600160a01b03168152602090f35b34610510575f3660031901126105105760206040517fbae4ee3de6c709ff9a002e774c5b78cb381560b219213c88ae0f1e207c03c0238152f35b346105105760403660031901126105105760206120aa6004356126558161063c565b610692602435916126658361063c565b6119a6565b34610510575f366003190112610510576020600454604051908152f35b34610510576060366003190112610510576004356126a48161063c565b602435906126b182610b27565b6001600160401b0391604435838111610510576126d2903690600401610a29565b909260409384516126e281610b4b565b60608152606060208201526060868201529280612741575b6105b386612732878761272c6127138984845191612968565b928561272360208501518361327c565b9301519061319b565b91614164565b90519081529081906020820190565b8101939250602081850312610510578035908682116105105701926060848203126105105784519561277287610b4b565b84358181116105105782612787918701610c27565b8752602085013581811161051057826127a1918701610c27565b602088015285850135908111610510576105b3966127ca61272c93612713936127329801610c27565b878201529394506126fa565b3461051057602036600319011261051057610d3e6004356127f68161063c565b6127fe613abc565b612d4b565b34610510576040366003190112610510576004356128208161063c565b60243561282b612e1a565b6001600160a01b038216156108795780156128975761285a61284b614003565b61285361407c565b9083614c31565b335f908152600e60205260409020909290612874906140f0565b83116128855761082a918391612e49565b6040516321727a3760e11b8152600490fd5b604051636c6c627d60e11b8152600490fd5b346105105760403660031901126105105760206107636024356128cb8161063c565b600435612dbc565b90600182811c92168015612901575b60208310146128ed57565b634e487b7160e01b5f52602260045260245ffd5b91607f16916128e2565b634e487b7160e01b5f52601160045260245ffd5b5f198101919082116109fc57565b919082039182116109fc57565b818102929181159184041417156109fc57565b90600182018092116109fc57565b919082018092116109fc57565b6001600160a01b03165f908152600e60205260409020610549929190613331565b6040513d5f823e3d90fd5b916129d1926129a1614595565b6129a9614595565b60015f805160206155b3833981519152556001600160a01b038116612a8e575b503691610bf1565b80516020908201818101828483031261051057828401516001600160401b039485821161051057019283926101a093849103126105105760405193612a1585610b4b565b612a21838383016138ea565b8552610180810151868111610510578383612a3e928401016139b3565b9382860194855281015195861161051057612a66612a859383610bd498612a809401016139b3565b94604081019586525191611ee560405193849283016139f9565b6145d8565b51905190614994565b612aa290612a9a614595565b6127fe614595565b5f6129c9565b6001600160a01b03165f908152600e60205260409020612ac7906140f0565b612acf61407c565b612ad7614003565b90600181018091116109fc57600182018092116109fc5761054992613b10565b65ffffffffffff91821690821603919082116109fc57565b634e487b7160e01b5f52601260045260245ffd5b9065ffffffffffff809116918215612b3a57160490565b612b0f565b612b4842613138565b612b6f600154612b6565ffffffffffff93848360a01c1690612af7565b9060d01c90612b23565b1690565b6001549065ffffffffffff91828160a01c16918284821610612b9c57612b6f92612b6591612af7565b60405163b7d0949760e01b8152600490fd5b90612bb7612e1a565b5f926001600160a01b038316928315612394578115612c6f575f5b828110612c4d57505f547f326b6aff1cd2fb1c8234de4f9dcfb9047c5c36eb9ef2eb34af5121e969a75d279286929091612c22918491612c1d9060101c6001600160a01b03166116b0565b613f18565b612c33604051928392339684612caa565b0390a390610bd460015f805160206155b383398151915255565b94612c686001916118fc612c62898789612c95565b35613f67565b9501612bd2565b60405163edf3b93360e01b8152600490fd5b634e487b7160e01b5f52603260045260245ffd5b9190811015612ca55760051b0190565b612c81565b604080825281018390529392916001600160fb1b0381116105105760209160609160051b809183880137850101930152565b5190610bd482610e5e565b90816020910312610510575161054981610e5e565b5190610bd48261063c565b9081602091031261051057516105498161063c565b3d15612d46573d90612d2d82610bd6565b91612d3b6040519384610b86565b82523d5f602084013e565b606090565b6001600160a01b03908116908115612da4575f8051602061553383398151915280546001600160a01b031981168417909155167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3565b604051631e4fbdf760e01b81525f6004820152602490fd5b90612de290825f52600860205260405f209060018060a01b03165f5260205260405f2090565b54905f52600660205260405f2054600760205260405f205490600181018091116109fc57600182018092116109fc5761054992613b10565b5f805160206155b38339815191526002815414612e375760029055565b604051633ee5aeb560e01b8152600490fd5b335f908152600e6020526040812093949390929190612e8890612e6b42613138565b335f908152600e602052604090206110c4908990611896906140f0565b5050612ea2612e9642613138565b61107187611896614003565b5050612ebc612eb042613138565b61105c8461189661407c565b505081612f4e82610692612ed6612ed1612b3f565b61294d565b612f2d612eeb825f52600660205260405f2090565b54612efe835f52600760205260405f2090565b54612f15612f0d83838b614164565b9a8b9361295b565b612f27855f52600660205260405f2090565b5561295b565b612f3f825f52600760205260405f2090565b555f52600860205260405f2090565b612f5984825461295b565b9055604080519182526020820187905281018390526001600160a01b03919091169033907febff2602b3f468259e1e99f613fed6691f3a6526effe6ef3e768ba7ae7a36c4f90606090a36040519384529233907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9080602081015b0390a3565b916001600160a01b0380841692908315613120578116938415613108576001600160a01b0381165f908152600e60205260409020613016906140f0565b908382106130d657612fd4926130787fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef95936130656130c49460018060a01b03165f52600e60205260405f2090565b908561307042613138565b910391613e5a565b50506001600160a01b0381165f908152600e6020526040902090836130bd6107f46130a242613138565b6001600160a01b039094165f908152600e6020526040902090565b0191613e5a565b50506040519081529081906020820190565b60405163391434e360e21b81526001600160a01b03919091166004820152602481019190915260448101839052606490fd5b60405163ec442f0560e01b81525f6004820152602490fd5b604051634b637e8f60e11b81525f6004820152602490fd5b65ffffffffffff9081811161314b571690565b604490604051906306dfcc6560e41b8252603060048301526024820152fd5b90816020910312610510575163ffffffff811681036105105790565b90600163ffffffff809316019182116109fc57565b9080511561327257806020806131b69351830101910161316a565b6131bf816143d5565b906131d0825165ffffffffffff1690565b9065ffffffffffff80851692168281146132665782119182613206575b50506131fd575061054990614185565b60209150015190565b909150613214600a5461291f565b63ffffffff83161491821561322d575b50505f806131ed565b61325e91925061324761324261325392613186565b6143d5565b5165ffffffffffff1690565b65ffffffffffff1690565b115f80613224565b50505060209150015190565b5061054990614185565b9080511561332757806020806132979351830101910161316a565b6132a08161445a565b906132b1825165ffffffffffff1690565b9065ffffffffffff808516921682811461326657821191826132de575b50506131fd57506105499061424c565b9091506132ec600c5461291f565b63ffffffff831614918215613305575b50505f806132ce565b61331f91925061324761331a61325392613186565b61445a565b115f806132fc565b506105499061424c565b918051156133f3578060208061334c9351830101910161316a565b9161335783826144d5565b92613368845165ffffffffffff1690565b9065ffffffffffff80851692168281146133e7578211918261339e575b505061339557610549925061430c565b50506020015190565b9091506133ab835461291f565b63ffffffff8316149182156133c4575b50505f80613385565b6133df9192506132476133d961325392613186565b856144d5565b115f806133bb565b50505050506020015190565b506105499161430c565b335f9081527f03b26b53c87faa1058f30bb5d2fee64f717719a0d9b7e4f4df027aa5e9b6ed69602052604090207fbae4ee3de6c709ff9a002e774c5b78cb381560b219213c88ae0f1e207c03c0239060ff905b5416156124d25750565b335f9081527fe41986b390c4ce6791b87f7423b5fab7a81a0e6d89660b6264f697d008b2243a602052604090207fc6aaadd7371d5e8f9ed6849dd66a66573a3ba37167d03f4352c9ba5693678fac9060ff90613450565b335f9081527f0287ab4cb376ea253d7b2ce0c2cbf458f7deae9458470d74afdfbbee484e9540602052604090207f9c56d972d63cbb4195b3c1484691dfc220fa96a4c47e7b6613bd82a022029e069060ff90613450565b5f8181525f8051602061559383398151915260209081526040808320338452909152902060ff90613450565b6001600160a01b0381165f9081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d60205260409020545f805160206155938339815191529060ff166135df575f808052602091825260408082206001600160a01b038516835290925220805460ff1916600117905533906001600160a01b03165f7f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d8180a4600190565b50505f90565b6001600160a01b0381165f9081527f03b26b53c87faa1058f30bb5d2fee64f717719a0d9b7e4f4df027aa5e9b6ed69602052604090207fbae4ee3de6c709ff9a002e774c5b78cb381560b219213c88ae0f1e207c03c023905f805160206155938339815191529060ff905b54166136b4575f828152602091825260408082206001600160a01b038616835290925220805460ff1916600117905533916001600160a01b0316907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d5f80a4600190565b5050505f90565b6001600160a01b0381165f9081527f0287ab4cb376ea253d7b2ce0c2cbf458f7deae9458470d74afdfbbee484e9540602052604090207f9c56d972d63cbb4195b3c1484691dfc220fa96a4c47e7b6613bd82a022029e06905f805160206155938339815191529060ff90613650565b6001600160a01b0381165f9081527fe41986b390c4ce6791b87f7423b5fab7a81a0e6d89660b6264f697d008b2243a602052604090207fc6aaadd7371d5e8f9ed6849dd66a66573a3ba37167d03f4352c9ba5693678fac905f805160206155938339815191529060ff90613650565b6001600160a01b0381165f9081527f2d4ccbfe9f7672a6f2537c1e5bce6adacb73706879154bbab6ce096012d67216602052604090207f4a634bc14d77baf979756509ef4298c6f6318af357828612545267ee2eb79233905f805160206155938339815191529060ff90613650565b5f8181525f80516020615593833981519152602081815260408084206001600160a01b038716855290915290912060ff90613650565b5f8181525f80516020615593833981519152602081815260408084206001600160a01b03871685529091529091205460ff16156136b4575f828152602091825260408082206001600160a01b038616835290925220805460ff1916905533916001600160a01b0316907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b5f80a4600190565b90816020910312610510575190565b5190610bd482610b27565b919082610160910312610510576138ff610ba7565b9161390981612cfc565b835261391760208201612cfc565b6020840152613928604082016138df565b604084015261393960608201612cdc565b606084015261394a60808201612cdc565b608084015260a081015160a084015261396560c08201612cfc565b60c084015261397660e08201612cfc565b60e0840152610100613989818301612cfc565b9084015261012061399b818301612cfc565b908401526139ad610140809201612cfc565b90830152565b81601f82011215610510578051906139ca82610bd6565b926139d86040519485610b86565b8284526020838301011161051057815f9260208093018386015e8301015290565b81516001600160a01b0316815261016081019291610bd491906020818101516001600160a01b03169083015260408181015165ffffffffffff169083015260608181015115159083015260808181015115159083015260a0818101519083015260c0808201516001600160a01b03169083015260e0818101516001600160a01b031690830152610100818101516001600160a01b031690830152610120818101516001600160a01b031690830152610140908101516001600160a01b0316910152565b5f80516020615533833981519152546001600160a01b03163303613adc57565b60405163118cdaa760e01b8152336004820152602490fd5b9080821015613b01575090565b905090565b8115612b3a570490565b9091828202915f1984820993838086109503948086039514613b955784831115613b8357829109815f038216809204600280826003021880830282030280830282030280830282030280830282030280830282030280920290030293600183805f03040190848311900302920304170290565b60405163227bc15360e01b8152600490fd5b5050906105499250613b06565b600b54811015612ca557600b5f525f8051602061557383398151915201905f90565b600d54811015612ca557600d5f525f8051602061555383398151915201905f90565b8054821015612ca5575f5260205f2001905f90565b600d54600160401b811015610b66576001810180600d55811015612ca557600d5f525f805160206155538339815191520155565b600b54600160401b811015610b66576001810180600b55811015612ca557600b5f525f805160206155738339815191520155565b90815491600160401b831015610b665782613c86916001610bd495018155613be6565b90919082549060031b91821b915f19901b1916179055565b919091600d9081548015613d49575b50613cb6614add565b50929091815492613cc561407c565b9481613d34575b5015613d1157505f1982018281116109fc5781541115612ca5575f527fd7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb4018390559190565b613d25926001600160d01b03169150614f65565b5050613d3083613bfb565b9190565b65ffffffffffff83811691161490505f613ccc565b600160401b811015610b665760018101808455811015612ca5575f908382525f8051602061555383398151915201555f613cad565b919091600b9081548015613e25575b50613d96614b48565b50929091815492613da5614003565b9481613e10575b5015613df157505f1982018281116109fc5781541115612ca5575f527f0175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db8018390559190565b613e05926001600160d01b03169150615065565b5050613d3083613c2f565b65ffffffffffff83811691161490505f613dac565b600160401b811015610b665760018101808455811015612ca5575f908382525f8051602061557383398151915201555f613d8d565b90929192600182019081548015613ee8575b5084613e7784614b92565b50949092845493613e87836140f0565b9681613ed3575b5015613eb0575050505f1981019081116109fc57613c868591613d3093613be6565b613d30949293613ecc926001600160d01b03909116919061510f565b5050613c63565b65ffffffffffff83811691161490505f613e8e565b600160401b811015610b6657806001613f049201845583613be6565b8154905f199060031b1b191690555f613e6c565b60405163a9059cbb60e01b60208201526001600160a01b03909216602483015260448083019390935291815260808101916001600160401b03831182841017610b6657610bd492604052614bc0565b90613f70612b3f565b821015613ff1575f82815260096020908152604080832033845290915290205460ff16613fdf57613fa13383612dbc565b918215613fcd575f9081526009602090815260408083203384529091529020805460ff19166001179055565b6040516366c0bcbf60e11b8152600490fd5b604051630c8d9eab60e31b8152600490fd5b60405163d5b25b6360e01b8152600490fd5b600a548061404357505f5b6001600160d01b0381161561403e57600b54811015612ca557600b5f525f80516020615573833981519152015490565b505f90565b805f198101116109fc57600a5f527fc65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a7015460301c61400e565b600c54806140b757505f5b6001600160d01b0381161561403e57600d54811015612ca557600d5f525f80516020615553833981519152015490565b805f198101116109fc57600c5f527fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c6015460301c614087565b80548061411f57505f5b6001600160d01b038116156135df5760016141159201613be6565b90549060031b1c90565b5f199080828101116109fc57825f5260205f2001015460301c6140fa565b906001600160a01b03808316156106f7578116156106df57610692614161926119a6565b55565b9190600181018091116109fc57600182018092116109fc5761054992613b10565b600a54905f8291600584116141f3575b61419f935061531b565b806141c257505f5b6001600160d01b0381161561403e5761411561054991613ba2565b6141e76141d16141ee9261291f565b600a5f525f805160206154f38339815191520190565b5460301c90565b6141a7565b91926141fe816151e2565b81039081116109fc5761419f93600a5f5265ffffffffffff80835f805160206154f3833981519152015416908516105f1461423a575091614195565b9291506142469061294d565b90614195565b600c54905f8291600584116142b3575b6142669350615384565b8061428957505f5b6001600160d01b0381161561403e5761411561054991613bc4565b6141e76142986142ae9261291f565b600c5f525f805160206154b38339815191520190565b61426e565b91926142be816151e2565b81039081116109fc5761426693600c5f5265ffffffffffff80835f805160206154b3833981519152015416908516105f146142fa57509161425c565b9291506143069061294d565b9061425c565b908154905f82916005841161436f575b6143279350846153ed565b8061434f57505f905b6001600160d01b038216156135df576105499160016141159201613be6565b6141e761435e6143699261291f565b835f5260205f200190565b90614330565b919261437a816151e2565b81039081116109fc5761432793855f5265ffffffffffff808360205f20015416908516105f146143ab57509161431c565b9291506143b79061294d565b9061431c565b604051906143ca82610b6b565b5f6020838281520152565b6143dd6143bd565b506143e66143bd565b50600a54811015612ca55761440d90600a5f525f805160206154f383398151915201614ab9565b65ffffffffffff81511690602060018060d01b0391015116600b54811015612ca557600b5f525f8051602061557383398151915201546040519161445083610b6b565b8252602082015290565b6144626143bd565b5061446b6143bd565b50600c54811015612ca55761449290600c5f525f805160206154b383398151915201614ab9565b65ffffffffffff81511690602060018060d01b0391015116600d54811015612ca557600d5f525f8051602061555383398151915201546040519161445083610b6b565b906144fe6144f861451f926144e86143bd565b506144f16143bd565b5084613be6565b50614ab9565b91600165ffffffffffff845116936020828060d01b03910151169101613be6565b9054906040519261452f84610b6b565b835260031b1c602082015290565b6040516323b872dd60e01b60208201526001600160a01b03928316602482015292909116604483015260648083019390935291815260a08101918183106001600160401b03841117610b6657610bd492604052614bc0565b60ff5f805160206155d38339815191525460401c16156145b157565b604051631afcd79f60e31b8152600490fd5b906101608282031261051057610549916138ea565b6145eb90602080825183010191016145c3565b80516001600160a01b03919082161561498257604080820165ffffffffffff61461a825165ffffffffffff1690565b16156149715760c08301805190929061463b906001600160a01b03166116b0565b15614822575b509161476e6101409261470d6146e86147cc9661468f614667875160018060a01b031690565b5f805462010000600160b01b03191660109290921b62010000600160b01b0316919091179055565b6020860151600180546001600160a01b0319166001600160a01b039092169190911790556132476146bf42613138565b6001805465ffffffffffff60a01b191660a09290921b65ffffffffffff60a01b16919091179055565b600180546001600160d01b031660d09290921b6001600160d01b031916919091179055565b61472d61471d6060850151151590565b60ff80195f541691151516175f55565b61475461473d6080850151151590565b61ff005f5491151560081b169061ff001916175f55565b61476160a0840151600455565b516001600160a01b031690565b848116614812575b5060e08101516001600160a01b0316848116614802575b506101008101516001600160a01b03168481166147f2575b506101208101516001600160a01b03168481166147e2575b5001516001600160a01b031690565b9081166147d65750565b6147df90613799565b50565b6147eb9061372a565b505f6147bd565b6147fb906136bb565b505f6147a5565b61480b906135e5565b505f61478d565b61481b90613534565b505f614776565b60e0840151614839906001600160a01b03166116b0565b1561490e575b610120840151614857906001600160a01b03166116b0565b614641576080840151156148c45760a084015115806148a5575b61489557509161476e6101409261470d6146e86147cc965b94965050509250614641565b5163183c854560e21b8152600490fd5b506101408401516148be906001600160a01b03166116b0565b15614871565b60a0840151158015906148ee575b61489557509161476e6101409261470d6146e86147cc96614889565b50610140840151614907906001600160a01b03166116b0565b15156148d2565b60608401511561494457610100840151614930906001600160a01b03166116b0565b61483f575163183c854560e21b8152600490fd5b61010084015161495c906001600160a01b03166116b0565b1561483f575163183c854560e21b8152600490fd5b81516368f5f8f160e11b8152600490fd5b6040516368f7a67560e11b8152600490fd5b919061499e614595565b6149a6614595565b82516001600160401b038111610b66575f805160206154d3833981519152906149d8816149d384546128d3565b614c71565b602080601f8311600114614a1f57509080614a0d92610bd496975f92614a14575b50508160011b915f199060031b1c19161790565b9055614d63565b015190505f806149f9565b90601f19831696614a5d5f805160206154d38339815191525f527f2ae08a8e29253f69ac5d979a101956ab8f8d9d7ded63fa7a83b16fc47648eab090565b925f905b898210614aa157505090839291600194610bd4989910614a89575b505050811b019055614d63565b01515f1960f88460031b161c191690555f8080614a7c565b80600185968294968601518155019501930190614a61565b90604051614ac681610b6b565b915465ffffffffffff8116835260301c6020830152565b600c5480614aee57505f905f905f90565b805f198101116109fc577fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c6614b2791600c5f5201614ab9565b9065ffffffffffff82511691602060018060d01b0391015116906001929190565b600a5480614b5957505f905f905f90565b805f198101116109fc577fc65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a7614b2791600a5f5201614ab9565b805480614ba35750505f905f905f90565b5f199080828101116109fc57614b27925f5260205f200101614ab9565b5f80614be89260018060a01b03169360208151910182865af1614be1612d1c565b908361544f565b8051908115159182614c16575b5050614bfe5750565b60249060405190635274afe760e01b82526004820152fd5b614c299250602080918301019101612ce7565b155f80614bf5565b9190600181018091116109fc57600182018092116109fc57614c54828285613b10565b928215612b3a5709614c635790565b600181018091116109fc5790565b601f8111614c7d575050565b5f805160206154d38339815191525f527f2ae08a8e29253f69ac5d979a101956ab8f8d9d7ded63fa7a83b16fc47648eab0906020601f840160051c83019310614ce0575b601f0160051c01905b818110614cd5575050565b5f8155600101614cca565b9091508190614cc1565b601f8111614cf6575050565b5f805160206155138339815191525f527f46a2803e59a4de4e7a4c574b1243f25977ac4c77d5a1a4a609b5394cebb4a2aa906020601f840160051c83019310614d59575b601f0160051c01905b818110614d4e575050565b5f8155600101614d43565b9091508190614d3a565b9081516001600160401b038111610b66575f8051602061551383398151915290614d9681614d9184546128d3565b614cea565b602080601f8311600114614dcb57508190614dc79394955f92614a145750508160011b915f199060031b1c19161790565b9055565b90601f19831695614e095f805160206155138339815191525f527f46a2803e59a4de4e7a4c574b1243f25977ac4c77d5a1a4a609b5394cebb4a2aa90565b925f905b888210614e4457505083600195969710614e2c575b505050811b019055565b01515f1960f88460031b161c191690555f8080614e22565b80600185968294968601518155019501930190614e0d565b600c5490600160401b821015610b66576001820180600c55821015612ca557600c5f52805160209091015160301b65ffffffffffff191665ffffffffffff91909116175f805160206154b383398151915290910155565b600a5490600160401b821015610b66576001820180600a55821015612ca557600a5f52805160209091015160301b65ffffffffffff191665ffffffffffff91909116175f805160206154f383398151915290910155565b8054600160401b811015610b6657614f2791600182018155613be6565b614f5257815160209092015160301b65ffffffffffff191665ffffffffffff92909216919091179055565b634e487b7160e01b5f525f60045260245ffd5b600c5491929190811561503c57614f86614f816142988461291f565b614ab9565b805165ffffffffffff838116949116841061502a5785602093613d3095614fb6613253865165ffffffffffff1690565b03614ff25750614fcb614298614fe49361291f565b9065ffffffffffff82549181199060301b169116179055565b01516001600160d01b031690565b90506150259150615012615004610bc7565b65ffffffffffff9092168252565b6001600160d01b03871681850152614e5c565b614fe4565b604051632520601d60e01b8152600490fd5b615060915061504c615004610bc7565b6001600160d01b0384166020820152614e5c565b5f9190565b600a549192919081156150eb57615081614f816141d18461291f565b805165ffffffffffff838116949116841061502a5785602093613d30956150b1613253865165ffffffffffff1690565b036150c65750614fcb6141d1614fe49361291f565b905061502591506150d8615004610bc7565b6001600160d01b03871681850152614eb3565b61506091506150fb615004610bc7565b6001600160d01b0384166020820152614eb3565b8054929392919082156151be5761512b614f8161435e8561291f565b9061513c825165ffffffffffff1690565b65ffffffffffff8481169116811061502a57613d3094602094889261516a613253875165ffffffffffff1690565b0361518b5750614fe492615180614fcb9261291f565b905f5260205f200190565b915050615025916151ab61519d610bc7565b65ffffffffffff9093168352565b6001600160d01b03881682860152614f0a565b61506092506151ce61519d610bc7565b6001600160d01b0385166020830152614f0a565b801561403e57806152b46152ad6152a361529961528f61528561527b61527160016105499a5f908b60801c8061530f575b508060401c80615302575b508060201c806152f5575b508060101c806152e8575b508060081c806152db575b508060041c806152ce575b508060021c806152c1575b50821c6152ba575b811c1b61526a818b613b06565b0160011c90565b61526a818a613b06565b61526a8189613b06565b61526a8188613b06565b61526a8187613b06565b61526a8186613b06565b61526a8185613b06565b8092613b06565b90613af4565b810161525d565b600291509101905f615255565b600491509101905f61524a565b600891509101905f61523f565b601091509101905f615234565b602091509101905f615229565b604091509101905f61521e565b9150506080905f615213565b905b82811061532957505090565b9091808216906001818418811c83018093116109fc57600a5f5265ffffffffffff80845f805160206154f3833981519152015416908616105f14615371575050915b9061531d565b9093925081018091116109fc579061536b565b905b82811061539257505090565b9091808216906001818418811c83018093116109fc57600c5f5265ffffffffffff80845f805160206154b3833981519152015416908616105f146153da575050915b90615386565b9093925081018091116109fc57906153d4565b91905b8382106153fd5750505090565b909192808316906001818518811c83018093116109fc57855f5265ffffffffffff808460205f20015416908516105f1461543c575050925b91906153f0565b9094935081018091116109fc5791615435565b90615476575080511561546457805190602001fd5b604051630a12f52160e11b8152600490fd5b815115806154a9575b615487575090565b604051639996b31560e01b81526001600160a01b039091166004820152602490fd5b50803b1561547f56fedf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c752c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace03c65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a852c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace049016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300d7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb50175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db902dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268009b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a2646970667358221220fc8b386c3222118c0338e59dcf730ede1251801f67673f0524275156e175ffa264736f6c63430008190033","sourceMap":"652:3172:102:-:0;;;;;;;;;;;;;-1:-1:-1;;652:3172:102;;;;;-1:-1:-1;;;;;652:3172:102;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;:::i;:::-;3173:36:101;;;3219:32;;8837:64:26;652:3172:102;;;;;;;;;7896:76:26;;652:3172:102;;;;7985:34:26;7981:146;;-1:-1:-1;927:17:76;;;;;652:3172:102;;;;;;;3173:36:101;652:3172:102;;;;;;;;;;3219:32:101;652:3172:102;;;;;;;;;;927:17:76;652:3172:102;;;;;;;;;;;7981:146:26;-1:-1:-1;;;;;;652:3172:102;;;;;;;;;;;;;8087:29:26;;652:3172:102;;8087:29:26;7981:146;;;;;7896:76;652:3172:102;;-1:-1:-1;;;7938:23:26;;;;;652:3172:102;-1:-1:-1;652:3172:102;;;;;;-1:-1:-1;652:3172:102;;;;;-1:-1:-1;652:3172:102;;;;-1:-1:-1;;;;;652:3172:102;;;;;;:::o","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361015610011575f80fd5b5f3560e01c806301ffc9a7146104ba57806306fdde03146104b5578063095ea7b3146104b05780631415519b146104ab57806318160ddd146103895780631b66c9e1146104a65780631e9a6950146104a157806323b872dd1461049c578063248a9ca31461049757806327810b6e14610492578063281f57521461048d5780632abe3048146104885780632d73c69c146104835780632dd310001461047e5780632f2ff15d14610479578063313ce5671461047457806336568abe1461046f578063392e53cd1461046a5780634105a7dd14610465578063463616711461046057806347e7ef241461045b57806348d3b775146104565780634ff0876a1461045157806350861adc1461044c57806350f22068146104475780635346e34f1461044257806354fd4d501461043d57806357ec83cc1461043857806359f769a9146104335780635cc070761461042e57806361a8c8c4146104295780636da3e06d146104245780636ec1e3f81461041f57806370a08231146103d4578063715018a61461041a5780637278e31c1461041557806373790ab314610410578063766718081461040b578063794b15b7146104065780637953b33b146104015780637c04c80a146103fc578063810da75d146103f757806383cd9cc3146103f257806387df0788146103ed5780638b0e9f3f146103e85780638da5cb5b146103e357806391d14854146103de57806395d89b41146103d95780639d66201b146103d45780639f86fd85146103cf578063a1b12202146103ca578063a217fddf146103c5578063a21a1df9146103c0578063a2861466146103bb578063a3b54172146103b6578063a5d03223146103b1578063a9059cbb146103ac578063aabc2496146103a7578063aad3ec96146103a2578063afba70ad1461039d578063b134427114610398578063bd49c35f14610393578063bdc8144b1461038e578063bfefcd7b14610389578063c31e8dd714610384578063ce9b79301461037f578063d547741f1461037a578063d8dfeb4514610375578063db38871514610370578063dd62ed3e1461036b578063ecf7085814610366578063efb559d614610361578063f2fde38b1461035c578063f3fef3a3146103575763f5e7ee0f14610352575f80fd5b6128a9565b612803565b6127d6565b612687565b61266a565b612633565b6125f9565b6125ce565b612582565b61255a565b6124f0565b610749565b612412565b6123f8565b6123d0565b6123a6565b6122e5565b61212e565b6120f9565b6120b3565b612066565b611f73565b611f39565b611f1f565b611efb565b611e67565b6115d6565b611db5565b611d57565b611d23565b611cc1565b611c7d565b611ac4565b611aab565b611a45565b611a1e565b6119de565b61198c565b61194b565b611677565b611610565b6115b1565b61156d565b61151a565b6114f0565b6114c9565b611391565b61135f565b6112ca565b6112b1565b611254565b611234565b611213565b610f2b565b610f03565b610e68565b610e23565b610dd8565b610d40565b610cf2565b610cae565b610c42565b610a56565b610988565b610960565b610927565b61088a565b6107a5565b61076b565b61070f565b61064d565b61054c565b346105105760203660031901126105105760043563ffffffff60e01b811680910361051057602090637965db0b60e01b81149081156104ff575b506040519015158152f35b6301ffc9a760e01b1490505f6104f4565b5f80fd5b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b906020610549928181520190610514565b90565b34610510575f366003190112610510576040515f5f805160206154d383398151915280549061057a826128d3565b8085529160209160019182811690811561060f57506001146105b7575b6105b3866105a781880382610b86565b60405191829182610538565b0390f35b5f90815293507f2ae08a8e29253f69ac5d979a101956ab8f8d9d7ded63fa7a83b16fc47648eab05b8385106105fc575050505081016020016105a7826105b35f610597565b80548686018401529382019381016105df565b90508695506105b3969350602092506105a794915060ff191682840152151560051b82010192935f610597565b6001600160a01b0381160361051057565b346105105760403660031901126105105760043561066a8161063c565b60243533156106f7576001600160a01b0382169182156106df576106a78291610692336119a6565b9060018060a01b03165f5260205260405f2090565b556040519081527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560203392a3602060405160018152f35b604051634a1406b160e11b81525f6004820152602490fd5b60405163e602df0560e01b81525f6004820152602490fd5b34610510575f3660031901126105105760206040517fc6aaadd7371d5e8f9ed6849dd66a66573a3ba37167d03f4352c9ba5693678fac8152f35b34610510575f366003190112610510576020610763614003565b604051908152f35b34610510575f3660031901126105105760206040517f9c56d972d63cbb4195b3c1484691dfc220fa96a4c47e7b6613bd82a022029e068152f35b34610510576040366003190112610510576004356107c28161063c565b602435906107ce612e1a565b6001600160a01b0381161561087957335f908152600e602052604090206107f9906140f0565b6140f0565b82116108675761081961080a61407c565b610812614003565b9084614164565b918215610852578261082a92612e49565b9061084160015f805160206155b383398151915255565b604080519182526020820192909252f35b60405160016245ddc760e11b03198152600490fd5b604051632418411f60e11b8152600490fd5b6040516208978560e71b8152600490fd5b34610510576060366003190112610510576004356108a78161063c565b6024356108b38161063c565b604435906108c433610692856119a6565b5492600184016108e5575b6108d99350612fd9565b60405160018152602090f35b828410610901576108fc836108d99503338361413d565b6108cf565b604051637dc7a0d960e11b81523360048201526024810185905260448101849052606490fd5b34610510576020366003190112610510576004355f525f805160206155938339815191526020526020600160405f200154604051908152f35b34610510575f366003190112610510576001546040516001600160a01b039091168152602090f35b34610510575f366003190112610510576109a0612b3f565b8015610a015760015465ffffffffffff8160a01c16915f1981019081116109fc576109ce9160d01c9061293a565b81018091116109fc576109e36105b391613138565b60405165ffffffffffff90911681529081906020820190565b61290b565b604051639fa56a5b60e01b8152600490fd5b600435906001600160401b038216820361051057565b9181601f84011215610510578235916001600160401b038311610510576020838186019501011161051057565b3461051057604036600319011261051057610a6f610a13565b6001600160401b0360243581811161051057610a8f903690600401610a29565b5050610a99612e1a565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163303610b15575f805160206155d3833981519152549060ff8260401c16928315610b05575b505050610af3575f80fd5b60405163f92ee8a960e01b8152600490fd5b81169116101590505f8080610ae8565b604051631966391b60e11b8152600490fd5b65ffffffffffff81160361051057565b634e487b7160e01b5f52604160045260245ffd5b606081019081106001600160401b03821117610b6657604052565b610b37565b604081019081106001600160401b03821117610b6657604052565b90601f801991011681019081106001600160401b03821117610b6657604052565b6040519061016082018281106001600160401b03821117610b6657604052565b60405190610bd482610b6b565b565b6001600160401b038111610b6657601f01601f191660200190565b929192610bfd82610bd6565b91610c0b6040519384610b86565b829481845281830111610510578281602093845f960137010152565b9080601f830112156105105781602061054993359101610bf1565b3461051057606036600319011261051057600435610c5f8161063c565b60243590610c6c82610b27565b604435906001600160401b03821161051057602092610c92610763933690600401610c27565b6001600160a01b039092165f908152600e855260409020613331565b34610510575f366003190112610510576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461051057604036600319011261051057610d3e602435600435610d158261063c565b805f525f80516020615593833981519152602052610d39600160405f200154613508565b613808565b005b34610510575f366003190112610510575f5460405163313ce56760e01b8152906020908290600490829060101c6001600160a01b03165afa8015610dd3575f90610d95575b60405160ff919091168152602090f35b506020813d602011610dcb575b81610daf60209383610b86565b81010312610510575160ff81168103610510576105b390610d85565b3d9150610da2565b612989565b3461051057604036600319011261051057602435610df58161063c565b336001600160a01b03821603610e1157610d3e9060043561383e565b60405163334bd91960e11b8152600490fd5b34610510575f3660031901126105105760ff60025460a01c1680610e4f575b6020906040519015158152f35b5060035460a01c60ff16610e42565b8015150361051057565b3461051057602036600319011261051057600435610e8581610e5e565b610e8d612e1a565b610e956133fd565b5f54901515908160ff8216151514610ef15760ff191660ff8216175f556040519081527f3e12b7b36c75ac9609a3f58609b331210428e1a85909132638955ba0301eec3390602090a160015f805160206155b383398151915255005b60405163a741a04560e01b8152600490fd5b34610510575f36600319011261051057602065ffffffffffff60015460a01c16604051908152f35b3461051057604080600319360112610510576004803591610f4b8361063c565b610f53612e1a565b6001600160a01b0391838316908115611205575f5460ff8116806111ec575b6111dd5783516370a0823160e01b808252308483019081529096602093909160109190911c82169084908490819083010381845afa928315610dd3575f936111ba575b50610fc790602435903090339061453d565b5f5486519788523085890190815290979184918391908290819060200103918b60101c165afa908115610dd357611006935f9261118d575b505061292d565b93841561117e5760081c60ff1680611169575b61115b5750906105b3916110ca61102e61407c565b9561107761103a614003565b6110626110488a838b614164565b9961105c8a61105642613138565b9261295b565b90613c9e565b50506110718961105642613138565b90613d7e565b50506001600160a01b0381165f908152600e60205260409020906110c4886110bf6107f46110a442613138565b6001600160a01b039095165f908152600e6020526040902090565b61295b565b91613e5a565b5050815184815260208101869052819033907fdcbc1c05240f31ff3ad067ef1ee35ce4997762752e3a095284754544f4c709d790604090a361111860015f805160206155b383398151915255565b81518581525f907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90602090a35191825260208201929092529081906040820190565b8251632484557960e01b8152fd5b50611176846110bf61407c565b815410611019565b50825163070f6eed60e11b8152fd5b6111ac9250803d106111b3575b6111a48183610b86565b8101906138d0565b5f80610fff565b503d61119a565b610fc79193506111d690853d87116111b3576111a48183610b86565b9290610fb5565b5082516304f63b8560e01b8152fd5b50335f9081526005602052604090205460ff1615610f72565b8251630d534ce360e11b8152fd5b34610510575f36600319011261051057602060ff5f54166040519015158152f35b34610510575f36600319011261051057602060015460d01c604051908152f35b34610510575f36600319011261051057602060ff60025460a01c166040519015158152f35b9060406003198301126105105760043561129281610b27565b91602435906001600160401b0382116105105761054991600401610c27565b346105105760206107636112c436611279565b9061319b565b34610510576020366003190112610510576004356112e781610e5e565b6112ef612e1a565b6112f761345a565b5f54901515908160ff8260081c16151514610ef15761ff001916600882901b61ff0016175f556040519081527ffa7a25a0b611d4ba3c0ea990e90dc23d484a5dd7a1be4733fef2946ba74530c690602090a1610d3e60015f805160206155b383398151915255565b34610510575f3660031901126105105760206001600160401b035f805160206155d38339815191525416604051908152f35b34610510576060366003190112610510576113aa610a13565b6024356113b68161063c565b6001600160401b0391604435838111610510576113d7903690600401610a29565b5f805160206155d38339815191529491855494838616806114b85760ff8760401c169081156114ab575b50610af3577fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2966114a69661146e958716906001600160401b0319161790556114695f805160206155d3833981519152600160401b68ff000000000000000019825416179055565b612994565b5f805160206155d3833981519152805468ff0000000000000000191690556040516001600160401b0390911681529081906020820190565b0390a1005b905084861611155f611401565b60405162dc149f60e41b8152600490fd5b346105105760203660031901126105105760206107636004356114eb8161063c565b612aa8565b34610510576020366003190112610510576004355f526006602052602060405f2054604051908152f35b34610510575f3660031901126105105760015465ffffffffffff611550818360a01c1692611546612b3f565b9060d01c9061293a565b82018092116109fc57611564602092613138565b60405191168152f35b34610510575f366003190112610510576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b34610510575f36600319011261051057602060ff60035460a01c166040519015158152f35b34610510576020366003190112610510576004356115f38161063c565b60018060a01b03165f52600e602052602061076360405f206140f0565b34610510575f36600319011261051057611628613abc565b5f8051602061553383398151915280546001600160a01b031981169091555f906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b346105105760403660031901126105105760043560243561169781610b27565b61169f612e1a565b6003546116bc906001600160a01b03165b6001600160a01b031690565b3303611939576116ca612b3f565b906116d481612b73565b9082151580611928575b801561191f575b61190d576105b3937ff9d090c096f71cd1659861a9ce5b6f384bceb4e2fa4e4a19edf6489a9b8d56c79261171761407c565b946117326117248261294d565b5f52600660205260405f2090565b54908281036118265750611746818761295b565b6117508185613af4565b9687806117df575b50505050505b836117ab575b6040805191825265ffffffffffff929092166020820152908101839052606090a161179b60015f805160206155b383398151915255565b6040519081529081906020820190565b5f546117da9085906117c89060101c6001600160a01b03166116b0565b6001546001600160a01b031690613f18565b611764565b61181b93610fff8361105c6118056117fe611724986118159888613b10565b809661292d565b9461180f42613138565b9261292d565b9261294d565b555f80808087611758565b915061183a825f52600660205260405f2090565b549061184a816110bf848a61295b565b906118558286613af4565b9788611866575b505050505061175e565b6118db938361188e9361189b8c6118966118846118cc998884613b10565b9788958584613b10565b94859261292d565b61292d565b938484106118e6575b610fff9061105c6118ba95969761180f42613138565b6118c66117248761294d565b5561292d565b915f52600660205260405f2090565b555f8080808061185c565b91611902610fff916118fc866118ba979861292d565b9061295b565b8594509290506118a4565b604051635e18d2a560e01b8152600490fd5b508282116116e5565b506119328361291f565b82106116de565b60405163dabc4ad960e01b8152600490fd5b34610510575f3660031901126105105760015465ffffffffffff808260a01c1691611974612b3f565b600181018091116109fc576115509160d01c9061293a565b34610510575f366003190112610510576020610763612b3f565b6001600160a01b03165f9081527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace016020526040902090565b34610510576020366003190112610510576004356119fb8161063c565b60018060a01b03165f526005602052602060ff60405f2054166040519015158152f35b34610510576020366003190112610510576020610763600435611a4081610b27565b612b73565b3461051057604036600319011261051057600435611a628161063c565b6024356001600160401b038082116105105736602383011215610510578160040135908111610510573660248260051b84010111610510576105b392602461179b930190612bae565b34610510576020610763611abe36611279565b9061327c565b3461051057602080600319360112610510576004803590611ae48261063c565b611aec612e1a565b60025460a01c60ff16611c6e576040516302910f8b60e31b81526001600160a01b03838116838301908152909491908290829081906020010381887f0000000000000000000000000000000000000000000000000000000000000000165afa908115610dd3575f91611c41575b5015611c315760405163fbfa77cf60e01b8152838516949082818581895afa928315610dd3575f93611c02575b505030911603611bf35750600280546001600160a01b03929092166001600160a81b031990921691909117600160a01b1790557fdb2160616f776a37b24808115554e79439bf26cccbbd4438190cc6d28e80ecd15f80a2610d3e60015f805160206155b383398151915255565b60405163b9f0f17160e01b8152fd5b611c22929350803d10611c2a575b611c1a8183610b86565b810190612d07565b905f80611b86565b503d611c10565b506040516324e5af8d60e21b8152fd5b611c619150823d8411611c67575b611c598183610b86565b810190612ce7565b5f611b59565b503d611c4f565b604051631380833b60e01b8152fd5b34610510575f366003190112610510576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b34610510575f36600319011261051057611cd9612b3f565b611ce161407c565b90805f52600660205260405f205482018092116109fc57600181018091116109fc575f52600660205260405f205481018091116109fc57602090604051908152f35b34610510575f366003190112610510575f80516020615533833981519152546040516001600160a01b039091168152602090f35b3461051057604036600319011261051057602060ff611da9602435611d7b8161063c565b6004355f525f80516020615593833981519152845260405f209060018060a01b03165f5260205260405f2090565b54166040519015158152f35b34610510575f366003190112610510576040515f5f80516020615513833981519152805490611de3826128d3565b8085529160209160019182811690811561060f5750600114611e0f576105b3866105a781880382610b86565b5f90815293507f46a2803e59a4de4e7a4c574b1243f25977ac4c77d5a1a4a609b5394cebb4a2aa5b838510611e54575050505081016020016105a7826105b35f610597565b8054868601840152938201938101611e37565b3461051057604036600319011261051057600435611e848161063c565b6024356001600160401b038111610510575f91611ea683923690600401610a29565b90816040519283928337810184815203915af4611ef3611ec4612d1c565b91611ee5604051938492151560208401526040808401526060830190610514565b03601f198101835282610b86565b805190602001fd5b34610510575f36600319011261051057602060ff5f5460081c166040519015158152f35b34610510575f3660031901126105105760206040515f8152f35b34610510575f3660031901126105105760206040517f4a634bc14d77baf979756509ef4298c6f6318af357828612545267ee2eb792338152f35b3461051057604036600319011261051057600435611f908161063c565b602435611f9c81610e5e565b611fa4612e1a565b611fac6134b1565b6001600160a01b038216918215612054575f8381526005602052604090205460ff16151582151514610ef1576001600160a01b03165f9081526005602052604090207ff991b1ecfb5115cbb36a2b2e2240c058406d2acc2fcc6e9e2dc99d845ff70a629161203b91612029908260ff801983541691151516179055565b60405190151581529081906020820190565b0390a2610d3e60015f805160206155b383398151915255565b604051630da30f6560e31b8152600490fd5b346105105760403660031901126105105760206120aa6024356120888161063c565b6004355f526008835260405f209060018060a01b03165f5260205260405f2090565b54604051908152f35b3461051057604036600319011261051057602060ff611da96024356120d78161063c565b6004355f526009845260405f209060018060a01b03165f5260205260405f2090565b34610510576040366003190112610510576121236004356121198161063c565b6024359033612fd9565b602060405160018152f35b346105105760208060031936011261051057600480359061214e8261063c565b612156612e1a565b60035460a01c60ff166122d6576001600160a01b038281169390846121c4575b6003805460ff60a01b1916600160a01b179055847fe7e4c932e03abddfe20f83af42c33627e816115c7ec2b168441f65dc14bfc3ba5f80a2610d3e60015f805160206155b383398151915255565b6040516302910f8b60e31b81526001600160a01b0385168482019081528390829081906020010381857f0000000000000000000000000000000000000000000000000000000000000000165afa908115610dd3575f916122b9575b50156122a85760405163fbfa77cf60e01b815282818581895afa928315610dd3575f93612289575b50503091160361227a5750600380546001600160a01b0319166001600160a01b039092169190911790555f808080612176565b604051633f3e089160e21b8152fd5b6122a0929350803d10611c2a57611c1a8183610b86565b905f80612247565b60405163dabc4ad960e01b81528390fd5b6122d09150833d8511611c6757611c598183610b86565b5f61221f565b60405163703fe2e560e01b8152fd5b34610510576040366003190112610510576004356123028161063c565b6024359061230e612e1a565b6001600160a01b03918183169081156123945761233f6105b39461233183613f67565b9485915f5460101c16613f18565b604080519182526020820184905233917f865ca08d59f5cb456e85cd2f7ef63664ea4f73327414e9d8152c4158b0e946459190a360015f805160206155b3833981519152556040519081529081906020820190565b604051634e46966960e11b8152600490fd5b34610510576020366003190112610510576004355f526007602052602060405f2054604051908152f35b34610510575f366003190112610510576003546040516001600160a01b039091168152602090f35b34610510575f36600319011261051057602061076361407c565b346105105760203660031901126105105760043561242e612e1a565b335f9081527f2d4ccbfe9f7672a6f2537c1e5bce6adacb73706879154bbab6ce096012d6721660205260409020547f4a634bc14d77baf979756509ef4298c6f6318af357828612545267ee2eb792339060ff16156124d257508060045414610ef1576020817f854df3eb95564502c8bc871ebdd15310ee26270f955f6c6bd8cea68e75045bc092600455604051908152a160015f805160206155b383398151915255005b6044906040519063e2517d3f60e01b82523360048301526024820152fd5b346105105760203660031901126105105760043561250d8161063c565b612515612b3f565b61251e82612aa8565b916125298183612dbc565b83018093116109fc57600182018092116109fc5761254691612dbc565b81018091116109fc57602090604051908152f35b34610510575f366003190112610510576002546040516001600160a01b039091168152602090f35b3461051057604036600319011261051057610d3e6024356004356125a58261063c565b805f525f805160206155938339815191526020526125c9600160405f200154613508565b61383e565b34610510575f366003190112610510575f5460405160109190911c6001600160a01b03168152602090f35b34610510575f3660031901126105105760206040517fbae4ee3de6c709ff9a002e774c5b78cb381560b219213c88ae0f1e207c03c0238152f35b346105105760403660031901126105105760206120aa6004356126558161063c565b610692602435916126658361063c565b6119a6565b34610510575f366003190112610510576020600454604051908152f35b34610510576060366003190112610510576004356126a48161063c565b602435906126b182610b27565b6001600160401b0391604435838111610510576126d2903690600401610a29565b909260409384516126e281610b4b565b60608152606060208201526060868201529280612741575b6105b386612732878761272c6127138984845191612968565b928561272360208501518361327c565b9301519061319b565b91614164565b90519081529081906020820190565b8101939250602081850312610510578035908682116105105701926060848203126105105784519561277287610b4b565b84358181116105105782612787918701610c27565b8752602085013581811161051057826127a1918701610c27565b602088015285850135908111610510576105b3966127ca61272c93612713936127329801610c27565b878201529394506126fa565b3461051057602036600319011261051057610d3e6004356127f68161063c565b6127fe613abc565b612d4b565b34610510576040366003190112610510576004356128208161063c565b60243561282b612e1a565b6001600160a01b038216156108795780156128975761285a61284b614003565b61285361407c565b9083614c31565b335f908152600e60205260409020909290612874906140f0565b83116128855761082a918391612e49565b6040516321727a3760e11b8152600490fd5b604051636c6c627d60e11b8152600490fd5b346105105760403660031901126105105760206107636024356128cb8161063c565b600435612dbc565b90600182811c92168015612901575b60208310146128ed57565b634e487b7160e01b5f52602260045260245ffd5b91607f16916128e2565b634e487b7160e01b5f52601160045260245ffd5b5f198101919082116109fc57565b919082039182116109fc57565b818102929181159184041417156109fc57565b90600182018092116109fc57565b919082018092116109fc57565b6001600160a01b03165f908152600e60205260409020610549929190613331565b6040513d5f823e3d90fd5b916129d1926129a1614595565b6129a9614595565b60015f805160206155b3833981519152556001600160a01b038116612a8e575b503691610bf1565b80516020908201818101828483031261051057828401516001600160401b039485821161051057019283926101a093849103126105105760405193612a1585610b4b565b612a21838383016138ea565b8552610180810151868111610510578383612a3e928401016139b3565b9382860194855281015195861161051057612a66612a859383610bd498612a809401016139b3565b94604081019586525191611ee560405193849283016139f9565b6145d8565b51905190614994565b612aa290612a9a614595565b6127fe614595565b5f6129c9565b6001600160a01b03165f908152600e60205260409020612ac7906140f0565b612acf61407c565b612ad7614003565b90600181018091116109fc57600182018092116109fc5761054992613b10565b65ffffffffffff91821690821603919082116109fc57565b634e487b7160e01b5f52601260045260245ffd5b9065ffffffffffff809116918215612b3a57160490565b612b0f565b612b4842613138565b612b6f600154612b6565ffffffffffff93848360a01c1690612af7565b9060d01c90612b23565b1690565b6001549065ffffffffffff91828160a01c16918284821610612b9c57612b6f92612b6591612af7565b60405163b7d0949760e01b8152600490fd5b90612bb7612e1a565b5f926001600160a01b038316928315612394578115612c6f575f5b828110612c4d57505f547f326b6aff1cd2fb1c8234de4f9dcfb9047c5c36eb9ef2eb34af5121e969a75d279286929091612c22918491612c1d9060101c6001600160a01b03166116b0565b613f18565b612c33604051928392339684612caa565b0390a390610bd460015f805160206155b383398151915255565b94612c686001916118fc612c62898789612c95565b35613f67565b9501612bd2565b60405163edf3b93360e01b8152600490fd5b634e487b7160e01b5f52603260045260245ffd5b9190811015612ca55760051b0190565b612c81565b604080825281018390529392916001600160fb1b0381116105105760209160609160051b809183880137850101930152565b5190610bd482610e5e565b90816020910312610510575161054981610e5e565b5190610bd48261063c565b9081602091031261051057516105498161063c565b3d15612d46573d90612d2d82610bd6565b91612d3b6040519384610b86565b82523d5f602084013e565b606090565b6001600160a01b03908116908115612da4575f8051602061553383398151915280546001600160a01b031981168417909155167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3565b604051631e4fbdf760e01b81525f6004820152602490fd5b90612de290825f52600860205260405f209060018060a01b03165f5260205260405f2090565b54905f52600660205260405f2054600760205260405f205490600181018091116109fc57600182018092116109fc5761054992613b10565b5f805160206155b38339815191526002815414612e375760029055565b604051633ee5aeb560e01b8152600490fd5b335f908152600e6020526040812093949390929190612e8890612e6b42613138565b335f908152600e602052604090206110c4908990611896906140f0565b5050612ea2612e9642613138565b61107187611896614003565b5050612ebc612eb042613138565b61105c8461189661407c565b505081612f4e82610692612ed6612ed1612b3f565b61294d565b612f2d612eeb825f52600660205260405f2090565b54612efe835f52600760205260405f2090565b54612f15612f0d83838b614164565b9a8b9361295b565b612f27855f52600660205260405f2090565b5561295b565b612f3f825f52600760205260405f2090565b555f52600860205260405f2090565b612f5984825461295b565b9055604080519182526020820187905281018390526001600160a01b03919091169033907febff2602b3f468259e1e99f613fed6691f3a6526effe6ef3e768ba7ae7a36c4f90606090a36040519384529233907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9080602081015b0390a3565b916001600160a01b0380841692908315613120578116938415613108576001600160a01b0381165f908152600e60205260409020613016906140f0565b908382106130d657612fd4926130787fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef95936130656130c49460018060a01b03165f52600e60205260405f2090565b908561307042613138565b910391613e5a565b50506001600160a01b0381165f908152600e6020526040902090836130bd6107f46130a242613138565b6001600160a01b039094165f908152600e6020526040902090565b0191613e5a565b50506040519081529081906020820190565b60405163391434e360e21b81526001600160a01b03919091166004820152602481019190915260448101839052606490fd5b60405163ec442f0560e01b81525f6004820152602490fd5b604051634b637e8f60e11b81525f6004820152602490fd5b65ffffffffffff9081811161314b571690565b604490604051906306dfcc6560e41b8252603060048301526024820152fd5b90816020910312610510575163ffffffff811681036105105790565b90600163ffffffff809316019182116109fc57565b9080511561327257806020806131b69351830101910161316a565b6131bf816143d5565b906131d0825165ffffffffffff1690565b9065ffffffffffff80851692168281146132665782119182613206575b50506131fd575061054990614185565b60209150015190565b909150613214600a5461291f565b63ffffffff83161491821561322d575b50505f806131ed565b61325e91925061324761324261325392613186565b6143d5565b5165ffffffffffff1690565b65ffffffffffff1690565b115f80613224565b50505060209150015190565b5061054990614185565b9080511561332757806020806132979351830101910161316a565b6132a08161445a565b906132b1825165ffffffffffff1690565b9065ffffffffffff808516921682811461326657821191826132de575b50506131fd57506105499061424c565b9091506132ec600c5461291f565b63ffffffff831614918215613305575b50505f806132ce565b61331f91925061324761331a61325392613186565b61445a565b115f806132fc565b506105499061424c565b918051156133f3578060208061334c9351830101910161316a565b9161335783826144d5565b92613368845165ffffffffffff1690565b9065ffffffffffff80851692168281146133e7578211918261339e575b505061339557610549925061430c565b50506020015190565b9091506133ab835461291f565b63ffffffff8316149182156133c4575b50505f80613385565b6133df9192506132476133d961325392613186565b856144d5565b115f806133bb565b50505050506020015190565b506105499161430c565b335f9081527f03b26b53c87faa1058f30bb5d2fee64f717719a0d9b7e4f4df027aa5e9b6ed69602052604090207fbae4ee3de6c709ff9a002e774c5b78cb381560b219213c88ae0f1e207c03c0239060ff905b5416156124d25750565b335f9081527fe41986b390c4ce6791b87f7423b5fab7a81a0e6d89660b6264f697d008b2243a602052604090207fc6aaadd7371d5e8f9ed6849dd66a66573a3ba37167d03f4352c9ba5693678fac9060ff90613450565b335f9081527f0287ab4cb376ea253d7b2ce0c2cbf458f7deae9458470d74afdfbbee484e9540602052604090207f9c56d972d63cbb4195b3c1484691dfc220fa96a4c47e7b6613bd82a022029e069060ff90613450565b5f8181525f8051602061559383398151915260209081526040808320338452909152902060ff90613450565b6001600160a01b0381165f9081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d60205260409020545f805160206155938339815191529060ff166135df575f808052602091825260408082206001600160a01b038516835290925220805460ff1916600117905533906001600160a01b03165f7f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d8180a4600190565b50505f90565b6001600160a01b0381165f9081527f03b26b53c87faa1058f30bb5d2fee64f717719a0d9b7e4f4df027aa5e9b6ed69602052604090207fbae4ee3de6c709ff9a002e774c5b78cb381560b219213c88ae0f1e207c03c023905f805160206155938339815191529060ff905b54166136b4575f828152602091825260408082206001600160a01b038616835290925220805460ff1916600117905533916001600160a01b0316907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d5f80a4600190565b5050505f90565b6001600160a01b0381165f9081527f0287ab4cb376ea253d7b2ce0c2cbf458f7deae9458470d74afdfbbee484e9540602052604090207f9c56d972d63cbb4195b3c1484691dfc220fa96a4c47e7b6613bd82a022029e06905f805160206155938339815191529060ff90613650565b6001600160a01b0381165f9081527fe41986b390c4ce6791b87f7423b5fab7a81a0e6d89660b6264f697d008b2243a602052604090207fc6aaadd7371d5e8f9ed6849dd66a66573a3ba37167d03f4352c9ba5693678fac905f805160206155938339815191529060ff90613650565b6001600160a01b0381165f9081527f2d4ccbfe9f7672a6f2537c1e5bce6adacb73706879154bbab6ce096012d67216602052604090207f4a634bc14d77baf979756509ef4298c6f6318af357828612545267ee2eb79233905f805160206155938339815191529060ff90613650565b5f8181525f80516020615593833981519152602081815260408084206001600160a01b038716855290915290912060ff90613650565b5f8181525f80516020615593833981519152602081815260408084206001600160a01b03871685529091529091205460ff16156136b4575f828152602091825260408082206001600160a01b038616835290925220805460ff1916905533916001600160a01b0316907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b5f80a4600190565b90816020910312610510575190565b5190610bd482610b27565b919082610160910312610510576138ff610ba7565b9161390981612cfc565b835261391760208201612cfc565b6020840152613928604082016138df565b604084015261393960608201612cdc565b606084015261394a60808201612cdc565b608084015260a081015160a084015261396560c08201612cfc565b60c084015261397660e08201612cfc565b60e0840152610100613989818301612cfc565b9084015261012061399b818301612cfc565b908401526139ad610140809201612cfc565b90830152565b81601f82011215610510578051906139ca82610bd6565b926139d86040519485610b86565b8284526020838301011161051057815f9260208093018386015e8301015290565b81516001600160a01b0316815261016081019291610bd491906020818101516001600160a01b03169083015260408181015165ffffffffffff169083015260608181015115159083015260808181015115159083015260a0818101519083015260c0808201516001600160a01b03169083015260e0818101516001600160a01b031690830152610100818101516001600160a01b031690830152610120818101516001600160a01b031690830152610140908101516001600160a01b0316910152565b5f80516020615533833981519152546001600160a01b03163303613adc57565b60405163118cdaa760e01b8152336004820152602490fd5b9080821015613b01575090565b905090565b8115612b3a570490565b9091828202915f1984820993838086109503948086039514613b955784831115613b8357829109815f038216809204600280826003021880830282030280830282030280830282030280830282030280830282030280920290030293600183805f03040190848311900302920304170290565b60405163227bc15360e01b8152600490fd5b5050906105499250613b06565b600b54811015612ca557600b5f525f8051602061557383398151915201905f90565b600d54811015612ca557600d5f525f8051602061555383398151915201905f90565b8054821015612ca5575f5260205f2001905f90565b600d54600160401b811015610b66576001810180600d55811015612ca557600d5f525f805160206155538339815191520155565b600b54600160401b811015610b66576001810180600b55811015612ca557600b5f525f805160206155738339815191520155565b90815491600160401b831015610b665782613c86916001610bd495018155613be6565b90919082549060031b91821b915f19901b1916179055565b919091600d9081548015613d49575b50613cb6614add565b50929091815492613cc561407c565b9481613d34575b5015613d1157505f1982018281116109fc5781541115612ca5575f527fd7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb4018390559190565b613d25926001600160d01b03169150614f65565b5050613d3083613bfb565b9190565b65ffffffffffff83811691161490505f613ccc565b600160401b811015610b665760018101808455811015612ca5575f908382525f8051602061555383398151915201555f613cad565b919091600b9081548015613e25575b50613d96614b48565b50929091815492613da5614003565b9481613e10575b5015613df157505f1982018281116109fc5781541115612ca5575f527f0175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db8018390559190565b613e05926001600160d01b03169150615065565b5050613d3083613c2f565b65ffffffffffff83811691161490505f613dac565b600160401b811015610b665760018101808455811015612ca5575f908382525f8051602061557383398151915201555f613d8d565b90929192600182019081548015613ee8575b5084613e7784614b92565b50949092845493613e87836140f0565b9681613ed3575b5015613eb0575050505f1981019081116109fc57613c868591613d3093613be6565b613d30949293613ecc926001600160d01b03909116919061510f565b5050613c63565b65ffffffffffff83811691161490505f613e8e565b600160401b811015610b6657806001613f049201845583613be6565b8154905f199060031b1b191690555f613e6c565b60405163a9059cbb60e01b60208201526001600160a01b03909216602483015260448083019390935291815260808101916001600160401b03831182841017610b6657610bd492604052614bc0565b90613f70612b3f565b821015613ff1575f82815260096020908152604080832033845290915290205460ff16613fdf57613fa13383612dbc565b918215613fcd575f9081526009602090815260408083203384529091529020805460ff19166001179055565b6040516366c0bcbf60e11b8152600490fd5b604051630c8d9eab60e31b8152600490fd5b60405163d5b25b6360e01b8152600490fd5b600a548061404357505f5b6001600160d01b0381161561403e57600b54811015612ca557600b5f525f80516020615573833981519152015490565b505f90565b805f198101116109fc57600a5f527fc65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a7015460301c61400e565b600c54806140b757505f5b6001600160d01b0381161561403e57600d54811015612ca557600d5f525f80516020615553833981519152015490565b805f198101116109fc57600c5f527fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c6015460301c614087565b80548061411f57505f5b6001600160d01b038116156135df5760016141159201613be6565b90549060031b1c90565b5f199080828101116109fc57825f5260205f2001015460301c6140fa565b906001600160a01b03808316156106f7578116156106df57610692614161926119a6565b55565b9190600181018091116109fc57600182018092116109fc5761054992613b10565b600a54905f8291600584116141f3575b61419f935061531b565b806141c257505f5b6001600160d01b0381161561403e5761411561054991613ba2565b6141e76141d16141ee9261291f565b600a5f525f805160206154f38339815191520190565b5460301c90565b6141a7565b91926141fe816151e2565b81039081116109fc5761419f93600a5f5265ffffffffffff80835f805160206154f3833981519152015416908516105f1461423a575091614195565b9291506142469061294d565b90614195565b600c54905f8291600584116142b3575b6142669350615384565b8061428957505f5b6001600160d01b0381161561403e5761411561054991613bc4565b6141e76142986142ae9261291f565b600c5f525f805160206154b38339815191520190565b61426e565b91926142be816151e2565b81039081116109fc5761426693600c5f5265ffffffffffff80835f805160206154b3833981519152015416908516105f146142fa57509161425c565b9291506143069061294d565b9061425c565b908154905f82916005841161436f575b6143279350846153ed565b8061434f57505f905b6001600160d01b038216156135df576105499160016141159201613be6565b6141e761435e6143699261291f565b835f5260205f200190565b90614330565b919261437a816151e2565b81039081116109fc5761432793855f5265ffffffffffff808360205f20015416908516105f146143ab57509161431c565b9291506143b79061294d565b9061431c565b604051906143ca82610b6b565b5f6020838281520152565b6143dd6143bd565b506143e66143bd565b50600a54811015612ca55761440d90600a5f525f805160206154f383398151915201614ab9565b65ffffffffffff81511690602060018060d01b0391015116600b54811015612ca557600b5f525f8051602061557383398151915201546040519161445083610b6b565b8252602082015290565b6144626143bd565b5061446b6143bd565b50600c54811015612ca55761449290600c5f525f805160206154b383398151915201614ab9565b65ffffffffffff81511690602060018060d01b0391015116600d54811015612ca557600d5f525f8051602061555383398151915201546040519161445083610b6b565b906144fe6144f861451f926144e86143bd565b506144f16143bd565b5084613be6565b50614ab9565b91600165ffffffffffff845116936020828060d01b03910151169101613be6565b9054906040519261452f84610b6b565b835260031b1c602082015290565b6040516323b872dd60e01b60208201526001600160a01b03928316602482015292909116604483015260648083019390935291815260a08101918183106001600160401b03841117610b6657610bd492604052614bc0565b60ff5f805160206155d38339815191525460401c16156145b157565b604051631afcd79f60e31b8152600490fd5b906101608282031261051057610549916138ea565b6145eb90602080825183010191016145c3565b80516001600160a01b03919082161561498257604080820165ffffffffffff61461a825165ffffffffffff1690565b16156149715760c08301805190929061463b906001600160a01b03166116b0565b15614822575b509161476e6101409261470d6146e86147cc9661468f614667875160018060a01b031690565b5f805462010000600160b01b03191660109290921b62010000600160b01b0316919091179055565b6020860151600180546001600160a01b0319166001600160a01b039092169190911790556132476146bf42613138565b6001805465ffffffffffff60a01b191660a09290921b65ffffffffffff60a01b16919091179055565b600180546001600160d01b031660d09290921b6001600160d01b031916919091179055565b61472d61471d6060850151151590565b60ff80195f541691151516175f55565b61475461473d6080850151151590565b61ff005f5491151560081b169061ff001916175f55565b61476160a0840151600455565b516001600160a01b031690565b848116614812575b5060e08101516001600160a01b0316848116614802575b506101008101516001600160a01b03168481166147f2575b506101208101516001600160a01b03168481166147e2575b5001516001600160a01b031690565b9081166147d65750565b6147df90613799565b50565b6147eb9061372a565b505f6147bd565b6147fb906136bb565b505f6147a5565b61480b906135e5565b505f61478d565b61481b90613534565b505f614776565b60e0840151614839906001600160a01b03166116b0565b1561490e575b610120840151614857906001600160a01b03166116b0565b614641576080840151156148c45760a084015115806148a5575b61489557509161476e6101409261470d6146e86147cc965b94965050509250614641565b5163183c854560e21b8152600490fd5b506101408401516148be906001600160a01b03166116b0565b15614871565b60a0840151158015906148ee575b61489557509161476e6101409261470d6146e86147cc96614889565b50610140840151614907906001600160a01b03166116b0565b15156148d2565b60608401511561494457610100840151614930906001600160a01b03166116b0565b61483f575163183c854560e21b8152600490fd5b61010084015161495c906001600160a01b03166116b0565b1561483f575163183c854560e21b8152600490fd5b81516368f5f8f160e11b8152600490fd5b6040516368f7a67560e11b8152600490fd5b919061499e614595565b6149a6614595565b82516001600160401b038111610b66575f805160206154d3833981519152906149d8816149d384546128d3565b614c71565b602080601f8311600114614a1f57509080614a0d92610bd496975f92614a14575b50508160011b915f199060031b1c19161790565b9055614d63565b015190505f806149f9565b90601f19831696614a5d5f805160206154d38339815191525f527f2ae08a8e29253f69ac5d979a101956ab8f8d9d7ded63fa7a83b16fc47648eab090565b925f905b898210614aa157505090839291600194610bd4989910614a89575b505050811b019055614d63565b01515f1960f88460031b161c191690555f8080614a7c565b80600185968294968601518155019501930190614a61565b90604051614ac681610b6b565b915465ffffffffffff8116835260301c6020830152565b600c5480614aee57505f905f905f90565b805f198101116109fc577fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c6614b2791600c5f5201614ab9565b9065ffffffffffff82511691602060018060d01b0391015116906001929190565b600a5480614b5957505f905f905f90565b805f198101116109fc577fc65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a7614b2791600a5f5201614ab9565b805480614ba35750505f905f905f90565b5f199080828101116109fc57614b27925f5260205f200101614ab9565b5f80614be89260018060a01b03169360208151910182865af1614be1612d1c565b908361544f565b8051908115159182614c16575b5050614bfe5750565b60249060405190635274afe760e01b82526004820152fd5b614c299250602080918301019101612ce7565b155f80614bf5565b9190600181018091116109fc57600182018092116109fc57614c54828285613b10565b928215612b3a5709614c635790565b600181018091116109fc5790565b601f8111614c7d575050565b5f805160206154d38339815191525f527f2ae08a8e29253f69ac5d979a101956ab8f8d9d7ded63fa7a83b16fc47648eab0906020601f840160051c83019310614ce0575b601f0160051c01905b818110614cd5575050565b5f8155600101614cca565b9091508190614cc1565b601f8111614cf6575050565b5f805160206155138339815191525f527f46a2803e59a4de4e7a4c574b1243f25977ac4c77d5a1a4a609b5394cebb4a2aa906020601f840160051c83019310614d59575b601f0160051c01905b818110614d4e575050565b5f8155600101614d43565b9091508190614d3a565b9081516001600160401b038111610b66575f8051602061551383398151915290614d9681614d9184546128d3565b614cea565b602080601f8311600114614dcb57508190614dc79394955f92614a145750508160011b915f199060031b1c19161790565b9055565b90601f19831695614e095f805160206155138339815191525f527f46a2803e59a4de4e7a4c574b1243f25977ac4c77d5a1a4a609b5394cebb4a2aa90565b925f905b888210614e4457505083600195969710614e2c575b505050811b019055565b01515f1960f88460031b161c191690555f8080614e22565b80600185968294968601518155019501930190614e0d565b600c5490600160401b821015610b66576001820180600c55821015612ca557600c5f52805160209091015160301b65ffffffffffff191665ffffffffffff91909116175f805160206154b383398151915290910155565b600a5490600160401b821015610b66576001820180600a55821015612ca557600a5f52805160209091015160301b65ffffffffffff191665ffffffffffff91909116175f805160206154f383398151915290910155565b8054600160401b811015610b6657614f2791600182018155613be6565b614f5257815160209092015160301b65ffffffffffff191665ffffffffffff92909216919091179055565b634e487b7160e01b5f525f60045260245ffd5b600c5491929190811561503c57614f86614f816142988461291f565b614ab9565b805165ffffffffffff838116949116841061502a5785602093613d3095614fb6613253865165ffffffffffff1690565b03614ff25750614fcb614298614fe49361291f565b9065ffffffffffff82549181199060301b169116179055565b01516001600160d01b031690565b90506150259150615012615004610bc7565b65ffffffffffff9092168252565b6001600160d01b03871681850152614e5c565b614fe4565b604051632520601d60e01b8152600490fd5b615060915061504c615004610bc7565b6001600160d01b0384166020820152614e5c565b5f9190565b600a549192919081156150eb57615081614f816141d18461291f565b805165ffffffffffff838116949116841061502a5785602093613d30956150b1613253865165ffffffffffff1690565b036150c65750614fcb6141d1614fe49361291f565b905061502591506150d8615004610bc7565b6001600160d01b03871681850152614eb3565b61506091506150fb615004610bc7565b6001600160d01b0384166020820152614eb3565b8054929392919082156151be5761512b614f8161435e8561291f565b9061513c825165ffffffffffff1690565b65ffffffffffff8481169116811061502a57613d3094602094889261516a613253875165ffffffffffff1690565b0361518b5750614fe492615180614fcb9261291f565b905f5260205f200190565b915050615025916151ab61519d610bc7565b65ffffffffffff9093168352565b6001600160d01b03881682860152614f0a565b61506092506151ce61519d610bc7565b6001600160d01b0385166020830152614f0a565b801561403e57806152b46152ad6152a361529961528f61528561527b61527160016105499a5f908b60801c8061530f575b508060401c80615302575b508060201c806152f5575b508060101c806152e8575b508060081c806152db575b508060041c806152ce575b508060021c806152c1575b50821c6152ba575b811c1b61526a818b613b06565b0160011c90565b61526a818a613b06565b61526a8189613b06565b61526a8188613b06565b61526a8187613b06565b61526a8186613b06565b61526a8185613b06565b8092613b06565b90613af4565b810161525d565b600291509101905f615255565b600491509101905f61524a565b600891509101905f61523f565b601091509101905f615234565b602091509101905f615229565b604091509101905f61521e565b9150506080905f615213565b905b82811061532957505090565b9091808216906001818418811c83018093116109fc57600a5f5265ffffffffffff80845f805160206154f3833981519152015416908616105f14615371575050915b9061531d565b9093925081018091116109fc579061536b565b905b82811061539257505090565b9091808216906001818418811c83018093116109fc57600c5f5265ffffffffffff80845f805160206154b3833981519152015416908616105f146153da575050915b90615386565b9093925081018091116109fc57906153d4565b91905b8382106153fd5750505090565b909192808316906001818518811c83018093116109fc57855f5265ffffffffffff808460205f20015416908516105f1461543c575050925b91906153f0565b9094935081018091116109fc5791615435565b90615476575080511561546457805190602001fd5b604051630a12f52160e11b8152600490fd5b815115806154a9575b615487575090565b604051639996b31560e01b81526001600160a01b039091166004820152602490fd5b50803b1561547f56fedf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c752c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace03c65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a852c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace049016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300d7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb50175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db902dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268009b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a2646970667358221220fc8b386c3222118c0338e59dcf730ede1251801f67673f0524275156e175ffa264736f6c63430008190033","sourceMap":"652:3172:102:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;;;;;-1:-1:-1;;652:3172:102;;;;;;;;;;;;;;;;;;-1:-1:-1;;;3551:47:24;;;:87;;;;652:3172:102;;;;;;;;;;3551:87:24;-1:-1:-1;;;1133:40:30;;-1:-1:-1;3551:87:24;;;652:3172:102;-1:-1:-1;652:3172:102;;;;;;;;;;;;;;;;;;;-1:-1:-1;652:3172:102;;;;;;;;-1:-1:-1;;652:3172:102;;;;:::o;:::-;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;;-1:-1:-1;;652:3172:102;;;;;;;-1:-1:-1;;;;;;;;;;;652:3172:102;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;652:3172:102;;;;;;;-1:-1:-1;;;;652:3172:102;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;652:3172:102;;;;;:::o;:::-;;;;;;-1:-1:-1;;652:3172:102;;;;;;;;;:::i;:::-;;;966:10:28;11389:19:27;11385:89;;-1:-1:-1;;;;;652:3172:102;;;11487:21:27;;11483:90;;11582:29;966:10:28;;11582:20:27;966:10:28;11582:20:27;:::i;:::-;652:3172:102;;;;;;;;;;;;;;;;11582:29:27;652:3172:102;;;;;;11663:31:27;652:3172:102;966:10:28;11663:31:27;;652:3172:102;;;10380:4:27;652:3172:102;;;11483:90:27;652:3172:102;;-1:-1:-1;;;11531:31:27;;-1:-1:-1;652:3172:102;11531:31:27;;652:3172:102;;;11531:31:27;11385:89;652:3172:102;;-1:-1:-1;;;11431:32:27;;11406:1;652:3172:102;11431:32:27;;652:3172:102;;;11431:32:27;652:3172:102;;;;;;-1:-1:-1;;652:3172:102;;;;;;;966:38:101;652:3172:102;;;;;;;;;-1:-1:-1;;652:3172:102;;;;;4803:22:101;;:::i;:::-;652:3172:102;;;;;;;;;;;;-1:-1:-1;;652:3172:102;;;;;;;821:37:101;652:3172:102;;;;;;;;;-1:-1:-1;;652:3172:102;;;;;;;;;:::i;:::-;;;3217:103:29;;;:::i;:::-;-1:-1:-1;;;;;652:3172:102;;5525:21:100;5521:75;;5634:10;652:3172:102;;;;5606:15:101;652:3172:102;;;;;5606:33:101;;;:::i;:24::-;:33;:::i;:::-;5610:35:100;;5606:88;;1057:70:92;5173:21:101;;:::i;:::-;4803:22;;:::i;:::-;1057:70:92;;;:::i;:::-;5801:20:100;;;5797:82;;5904:43;;;;:::i;:::-;3282:1:29;;1805;-1:-1:-1;;;;;;;;;;;652:3172:102;3716:283:29;3282:1;652:3172:102;;;;;;;;;;;;;;5797:82:100;652:3172:102;;-1:-1:-1;;;;;;5844:24:100;;652:3172:102;;5844:24:100;5606:88;652:3172:102;;-1:-1:-1;;;5668:15:100;;652:3172:102;;5668:15:100;5521:75;652:3172:102;;-1:-1:-1;;;5569:16:100;;652:3172:102;;5569:16:100;652:3172:102;;;;;;-1:-1:-1;;652:3172:102;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;966:10:28;5162:29:27;966:10:28;5162:20:27;;;:::i;:29::-;652:3172:102;;12158:37:27;;;12154:310;;652:3172:102;6461:5:27;;;;:::i;:::-;652:3172:102;;5162:13:27;652:3172:102;;;;;12154:310:27;12215:24;;;12211:130;;12433:5;652:3172:102;6461:5:27;652:3172:102;;966:10:28;12433:5:27;;:::i;:::-;12154:310;;12211:130;652:3172:102;;-1:-1:-1;;;12266:60:27;;966:10:28;652:3172:102;12266:60:27;;652:3172:102;;;;;;;;;;;;;;;12266:60:27;652:3172:102;;;;;;-1:-1:-1;;652:3172:102;;;;;;-1:-1:-1;652:3172:102;-1:-1:-1;;;;;;;;;;;652:3172:102;;;4919:24:24;652:3172:102;-1:-1:-1;652:3172:102;4919:24:24;652:3172:102;;;;;;;;;;;;;-1:-1:-1;;652:3172:102;;;;;;;;-1:-1:-1;;;;;652:3172:102;;;;;;;;;;;;;;-1:-1:-1;;652:3172:102;;;;4084:14:101;;:::i;:::-;4112:10;;4108:65;;4190:17;652:3172:102;;;;;;12178:17:27;;;652:3172:102;;;;;;;4210:27:101;652:3172:102;;;4210:27:101;;:::i;:::-;652:3172:102;;;;;;;4189:60:101;652:3172:102;4189:60:101;;:::i;:::-;652:3172:102;;;;;;;;;;;;;;;;;;:::i;4108:65:101:-;652:3172:102;;-1:-1:-1;;;4145:17:101;;652:3172:102;;4145:17:101;652:3172:102;;;;-1:-1:-1;;;;;652:3172:102;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;652:3172:102;;;;;;;;;;;;;;;:::o;:::-;;;;;;-1:-1:-1;;652:3172:102;;;;;;:::i;:::-;-1:-1:-1;;;;;652:3172:102;;;;;;;;;;;;;;:::i;:::-;3217:103:29;;;;:::i;:::-;1673:7:76;-1:-1:-1;;;;;652:3172:102;1659:10:76;:21;1655:71;;-1:-1:-1;;;;;;;;;;;652:3172:102;;;;;;;6431:44:26;;;;;652:3172:102;6427:105:26;;;;;-1:-1:-1;15924:8:100;;6427:105:26;652:3172:102;;-1:-1:-1;;;6498:23:26;;652:3172:102;;6498:23:26;6431:44;652:3172:102;;;;6450:25:26;;;-1:-1:-1;6431:44:26;;;;;1655:71:76;652:3172:102;;-1:-1:-1;;;1703:12:76;;652:3172:102;;1703:12:76;652:3172:102;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;652:3172:102;;;;;;;:::o;:::-;;:::i;:::-;;;;;;;-1:-1:-1;;;;;652:3172:102;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;652:3172:102;;;;;;;:::o;:::-;;;;;;;;;;-1:-1:-1;;;;;652:3172:102;;;;;;;:::o;:::-;;;;;;;:::i;:::-;:::o;:::-;-1:-1:-1;;;;;652:3172:102;;;;;;-1:-1:-1;;652:3172:102;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;652:3172:102;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;652:3172:102;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;652:3172:102;;;;;;;5383:59:101;652:3172:102;;;;;;:::i;:::-;-1:-1:-1;;;;;652:3172:102;;;-1:-1:-1;652:3172:102;;;5383:15:101;652:3172:102;;;;;5383:59:101;:::i;652:3172:102:-;;;;;;-1:-1:-1;;652:3172:102;;;;;;655:32:76;-1:-1:-1;;;;;652:3172:102;;;;;;;;;;;;-1:-1:-1;;652:3172:102;;;;5350:25:24;652:3172:102;;;;;;;:::i;:::-;;-1:-1:-1;652:3172:102;-1:-1:-1;;;;;;;;;;;652:3172:102;;3202:4:24;4919:24;652:3172:102;-1:-1:-1;652:3172:102;4919:24:24;652:3172:102;3202:4:24;:::i;:::-;5350:25;:::i;:::-;652:3172:102;;;;;;;-1:-1:-1;;652:3172:102;;;;;;;;-1:-1:-1;;;1109:37:102;;652:3172;1109:37;;652:3172;;;;;;;;-1:-1:-1;;;;;652:3172:102;1109:37;;;;;;652:3172;1109:37;;;652:3172;;;;;;;;;;;;;1109:37;;;;;;;;;;;;;;;;:::i;:::-;;;652:3172;;;;;;;;;;;;;1109:37;;;;;;-1:-1:-1;1109:37:102;;;;:::i;652:3172::-;;;;;;-1:-1:-1;;652:3172:102;;;;;;;;;:::i;:::-;966:10:28;-1:-1:-1;;;;;652:3172:102;;6441:34:24;6437:102;;6549:37;652:3172:102;;;6549:37:24;:::i;6437:102::-;652:3172:102;;-1:-1:-1;;;6498:30:24;;652:3172:102;;6498:30:24;652:3172:102;;;;;;-1:-1:-1;;652:3172:102;;;;;1524:22:100;652:3172:102;;;;1524:46:100;;;652:3172:102;;;;;;;;;;;1524:46:100;-1:-1:-1;1550:20:100;652:3172:102;;;;;1524:46:100;;652:3172:102;;;;;;;:::o;:::-;;;;;;-1:-1:-1;;652:3172:102;;;;;;;;;:::i;:::-;3217:103:29;;:::i;:::-;3202:4:24;;:::i;:::-;-1:-1:-1;652:3172:102;;;;;;;;;;;9542:26:100;9538:76;;-1:-1:-1;;652:3172:102;;;;;-1:-1:-1;652:3172:102;;;;;;9665:27:100;;652:3172:102;;9665:27:100;1805:1:29;-1:-1:-1;;;;;;;;;;;652:3172:102;;9538:76:100;652:3172:102;;-1:-1:-1;;;9591:12:100;;652:3172:102;;9591:12:100;652:3172:102;;;;;;-1:-1:-1;;652:3172:102;;;;;;1718:31:101;652:3172:102;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3217:103:29;;:::i;:::-;-1:-1:-1;;;;;652:3172:102;;;;;3474:24:100;;3470:81;;-1:-1:-1;652:3172:102;;;;3565:55:100;;;652:3172:102;3561:118:100;;652:3172:102;;-1:-1:-1;;;3713:43:100;;;3750:4;3713:43;;;652:3172:102;;;;;;;;;;;;;;;;;;;;;;;;;3713:43:100;;;;;;;;;;-1:-1:-1;3713:43:100;;;652:3172:102;;3829:6:100;652:3172:102;;;3750:4:100;;3802:10;;3829:6;;:::i;:::-;-1:-1:-1;652:3172:102;;;3864:43:100;;;3750:4;3864:43;;;652:3172:102;;;;;;;;;;3864:43:100;652:3172:102;;;;;;3864:43:100;652:3172:102;;;;;3864:43:100;;;;;;;:59;:43;-1:-1:-1;3864:43:100;;;652:3172:102;3864:59:100;;;:::i;:::-;3938:20;;;3934:79;;652:3172:102;;;;;4027:64:100;;652:3172:102;4023:123:100;;5173:21:101;;652:3172:102;5173:21:101;4502:93:100;5173:21:101;;:::i;:::-;4803:22;4426:66:100;4803:22:101;;:::i;:::-;4349:67:100;390:70:92;;;;;:::i;:::-;837:15:63;4385:30:100;837:15:63;819:34;837:15;819:34;:::i;:::-;4385:30:100;;:::i;:::-;4349:67;;:::i;:::-;837:15:63;;4463:28:100;837:15:63;819:34;837:15;819:34;:::i;4463:28:100:-;4426:66;;:::i;:::-;-1:-1:-1;;;;;;;652:3172:102;;;;;;5606:15:101;652:3172:102;;;;;837:15:63;4553:41:100;837:15:63;5606:33:101;:24;819:34:63;837:15;819:34;:::i;:::-;-1:-1:-1;;;;;652:3172:102;;;;;;;5606:15:101;652:3172:102;;;;;;;5606:33:101;4553:41:100;:::i;:::-;4502:93;;:::i;:::-;-1:-1:-1;;652:3172:102;;;;;;;;;;;;;3802:10:100;;4611:62;;652:3172:102;;4611:62:100;3282:1:29;1805;-1:-1:-1;;;;;;;;;;;652:3172:102;3716:283:29;3282:1;652:3172:102;;;;;-1:-1:-1;;1808:46:102;;652:3172;;1808:46;652:3172;;;;;;;;;;;;;;;;;;;4023:123:100;652:3172:102;;-1:-1:-1;;;4114:21:100;;;4027:64;5173:21:101;4045:31:100;5173:21:101;;;:::i;4045:31:100:-;652:3172:102;;-1:-1:-1;4027:64:100;;3934:79;-1:-1:-1;652:3172:102;;-1:-1:-1;;;3981:21:100;;;3864:43;;;;;;-1:-1:-1;3864:43:100;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;3713;3829:6;3713:43;;;;;;;;;;;;;;;:::i;:::-;;;;;3561:118;-1:-1:-1;652:3172:102;;-1:-1:-1;;;3643:25:100;;;3565:55;-1:-1:-1;3609:10:100;652:3172:102;;;;3586:22:100;652:3172:102;;;;;;;;3585:35:100;3565:55;;3470:81;652:3172:102;;-1:-1:-1;;;3521:19:100;;;652:3172:102;;;;;;-1:-1:-1;;652:3172:102;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;652:3172:102;;;;;1805:27:101;652:3172:102;;;;;;;;;;;;;;;-1:-1:-1;;652:3172:102;;;;;;1968:34:101;652:3172:102;;;;;;;;;;;;;;;-1:-1:-1;;652:3172:102;;;;;;;;;;:::i;:::-;;;;;-1:-1:-1;;;;;652:3172:102;;;;;;;;;:::i;:::-;;;;;4622:48:101;652:3172:102;;;:::i;:::-;4622:48:101;;:::i;652:3172:102:-;;;;;;-1:-1:-1;;652:3172:102;;;;;;;;;:::i;:::-;3217:103:29;;:::i;:::-;3202:4:24;;:::i;:::-;-1:-1:-1;652:3172:102;;;;;;;;;;;;;10370:24:100;10366:74;;-1:-1:-1;;652:3172:102;;;;;;;;-1:-1:-1;652:3172:102;;;;;;10489:25:100;;652:3172:102;;10489:25:100;3282:1:29;1805;-1:-1:-1;;;;;;;;;;;652:3172:102;3716:283:29;652:3172:102;;;;;;-1:-1:-1;;652:3172:102;;;;;-1:-1:-1;;;;;;;;;;;;;;;;652:3172:102;;;;;;;;;;;;;;-1:-1:-1;;652:3172:102;;;;;;:::i;:::-;;;;;;:::i;:::-;-1:-1:-1;;;;;652:3172:102;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;8837:64:26;;652:3172:102;;;;;;734:29:76;730:87;;652:3172:102;;;;;6431:44:26;;;;;652:3172:102;6427:105:26;;;6656:20;652:3172:102;6656:20:26;652:3172:102;1167:340:76;652:3172:102;;;;-1:-1:-1;;;;;652:3172:102;;;;;6575:22:26;-1:-1:-1;;;;;;;;;;;;;;652:3172:102;;;;;;;;;6575:22:26;1167:340:76;:::i;:::-;-1:-1:-1;;;;;;;;;;;652:3172:102;;-1:-1:-1;;652:3172:102;;;;;-1:-1:-1;;;;;652:3172:102;;;;;;;;;;;;;6656:20:26;;;;652:3172:102;6431:44:26;652:3172:102;;;;;-1:-1:-1;6450:25:26;6431:44;;;730:87:76;652:3172:102;;-1:-1:-1;;;786:20:76;;652:3172:102;;786:20:76;652:3172:102;;;;;;-1:-1:-1;;652:3172:102;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;-1:-1:-1;;652:3172:102;;;;;;-1:-1:-1;652:3172:102;2431:59:101;652:3172:102;;;;-1:-1:-1;652:3172:102;;;;;;;;;;;;;;-1:-1:-1;;652:3172:102;;;;3875:17:101;652:3172:102;;3895:30:101;652:3172:102;;;;;3895:14:101;;;:::i;:::-;652:3172:102;;;3895:30:101;;:::i;:::-;652:3172:102;;;;;;;3874:63:101;652:3172:102;3874:63:101;;:::i;:::-;652:3172:102;;;;;;;;;;;;;-1:-1:-1;;652:3172:102;;;;;;1200:42:101;-1:-1:-1;;;;;652:3172:102;;;;;;;;;;;;-1:-1:-1;;652:3172:102;;;;;;2136:32:101;652:3172:102;;;;;;;;;;;;;;;;;;-1:-1:-1;;652:3172:102;;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;652:3172:102;5606:15:101;652:3172:102;;;5606:33:101;652:3172:102;-1:-1:-1;652:3172:102;5606:33:101;:::i;652:3172:102:-;;;;;;-1:-1:-1;;652:3172:102;;;;2303:62:25;;:::i;:::-;-1:-1:-1;;;;;;;;;;;652:3172:102;;-1:-1:-1;;;;;;652:3172:102;;;;;;;-1:-1:-1;;;;;652:3172:102;3975:40:25;652:3172:102;;3975:40:25;652:3172:102;;;;;;;-1:-1:-1;;652:3172:102;;;;;;;;;;;:::i;:::-;3217:103:29;;:::i;:::-;7131:7:100;652:3172:102;7117:21:100;;-1:-1:-1;;;;;652:3172:102;;-1:-1:-1;;;;;652:3172:102;;;7117:21:100;:10;:21;7113:71;;7218:14;;:::i;:::-;7265:25;;;;:::i;:::-;7305:17;;;;:53;;;652:3172:102;7304:87:100;;;;652:3172:102;7300:146:100;;652:3172:102;5173:21:101;9310:48:100;5173:21:101;;;:::i;:::-;7540:17:100;7528:30;7540:17;;;:::i;:::-;652:3172:102;;7528:11:100;652:3172:102;;;;;;;7528:30:100;652:3172:102;;7572:29:100;;;;;7642:30;;;;;:::i;:::-;7702:32;;;;:::i;:::-;7752:17;;;7748:384;;7568:1615;;;;;;;9197:17;9193:102;;7568:1615;652:3172:102;;;;;;;;;;;;;;;;;;;;;;;9310:48:100;3282:1:29;1805;-1:-1:-1;;;;;;;;;;;652:3172:102;3716:283:29;3282:1;652:3172:102;;;;;;;;;;;;;9193:102:100;-1:-1:-1;652:3172:102;9270:13:100;;652:3172:102;;9230:18:100;;652:3172:102;;-1:-1:-1;;;;;652:3172:102;;;9230:18:100;7556:1;652:3172:102;-1:-1:-1;;;;;652:3172:102;9270:13:100;;:::i;:::-;9193:102;;7748:384;8045:29;7813:50;7962:65;7813:50;7998:28;7914:29;7813:50;8057:16;7813:50;8077:40;7813:50;;;:::i;:::-;7914:29;;;:::i;:::-;837:15:63;819:34;837:15;819:34;:::i;:::-;7998:28:100;;:::i;8077:40::-;8057:16;;:::i;8045:29::-;652:3172:102;7748:384:100;;;;;;;7568:1615;8185:26;;;;652:3172:102;;7528:11:100;652:3172:102;;;;;;;8185:26:100;652:3172:102;8250:27:100;:45;:27;;;;;:::i;:45::-;8325:32;;;;;:::i;:::-;8375:17;;8371:802;;7568:1615;;;;;;;;8371:802;9096:26;8436:50;;8537:53;8436:50;8637:54;8436:50;8637:29;8436:50;9125:33;8436:50;;;;:::i;:::-;8537:53;;;;;;:::i;:::-;8637:29;;;;:::i;:::-;:54;:::i;:::-;8714:33;;;;8710:194;;8371:802;8922:65;837:15:63;8958:28:100;9038:40;837:15:63;;;819:34;837:15;819:34;:::i;9038:40:100:-;9005:30;9017:17;;;:::i;9005:30::-;652:3172:102;9125:33:100;:::i;:::-;9096:26;652:3172:102;;7528:11:100;652:3172:102;;;;;;;9096:26:100;652:3172:102;8371:802:100;;;;;;;8710:194;8797:33;8771:59;8922:65;8797:33;;;9038:40;8797:33;;;:::i;:::-;8771:59;;:::i;:::-;8852:33;;-1:-1:-1;8852:33:100;;-1:-1:-1;8710:194:100;;7300:146;652:3172:102;;-1:-1:-1;;;7414:21:100;;652:3172:102;;7414:21:100;7304:87;7363:28;;;;7304:87;;7305:53;7341:17;;;;:::i;:::-;7326:32;;7305:53;;7113:71;652:3172:102;;-1:-1:-1;;;7161:12:100;;652:3172:102;;7161:12:100;652:3172:102;;;;;;-1:-1:-1;;652:3172:102;;;;4384:17:101;652:3172:102;;;;;;;4405:14:101;;;:::i;:::-;4384:17;652:3172:102;;;;;;;4404:36:101;652:3172:102;;;4404:36:101;;:::i;652:3172:102:-;;;;;;-1:-1:-1;;652:3172:102;;;;;;;:::i;:::-;-1:-1:-1;;;;;652:3172:102;;;;;5162:13:27;652:3172:102;;;;;;:::o;:::-;;;;;;-1:-1:-1;;652:3172:102;;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;652:3172:102;2307:68:101;652:3172:102;;;;;-1:-1:-1;652:3172:102;;;;;;;;;;;;;;;;;-1:-1:-1;;652:3172:102;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;-1:-1:-1;;652:3172:102;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;652:3172:102;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6491:14:100;652:3172:102;;6491:14:100;;:::i;652:3172:102:-;;;;;4994:47:101;652:3172:102;;;:::i;:::-;4994:47:101;;:::i;652:3172:102:-;;;;;;;;;;;;;;;;;;;;:::i;:::-;3217:103:29;;:::i;:::-;10932:22:100;652:3172:102;;;;;10928:89:100;;652:3172:102;;-1:-1:-1;;;11032:49:100;;-1:-1:-1;;;;;652:3172:102;;;11032:49:100;;;652:3172:102;;;;;;;;;;;;;;;11032:49:100;11042:17;;;652:3172:102;11032:49:100;;;;;;;-1:-1:-1;11032:49:100;;;652:3172:102;11031:50:100;;11027:102;;652:3172:102;;-1:-1:-1;;;11143:34:100;;652:3172:102;;;;;11143:34:100;652:3172:102;11143:34:100;652:3172:102;;11143:34:100;;;;;;;-1:-1:-1;11143:34:100;;;652:3172:102;11189:4:100;;;652:3172:102;;11143:51:100;11139:107;;-1:-1:-1;10932:22:100;652:3172:102;;-1:-1:-1;;;;;652:3172:102;;;;-1:-1:-1;;;;;;652:3172:102;;;;;;;-1:-1:-1;;;652:3172:102;;;11334:24:100;-1:-1:-1;;11334:24:100;3282:1:29;1805;-1:-1:-1;;;;;;;;;;;652:3172:102;3716:283:29;11139:107:100;652:3172:102;;-1:-1:-1;;;11217:18:100;;;11143:34;;;;;;;-1:-1:-1;11143:34:100;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;11027:102;-1:-1:-1;652:3172:102;;-1:-1:-1;;;11104:14:100;;;11032:49;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;10928:89;652:3172:102;;-1:-1:-1;;;10977:29:100;;;652:3172:102;;;;;;-1:-1:-1;;652:3172:102;;;;;;1298:40:101;-1:-1:-1;;;;;652:3172:102;;;;;;;;;;;;-1:-1:-1;;652:3172:102;;;;1703:14:100;;:::i;:::-;5173:21:101;;:::i;:::-;652:3172:102;;;;1750:11:100;652:3172:102;;;;;;;;;;;;;1791:1:100;652:3172:102;;;;;;;;;1750:11:100;652:3172:102;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;652:3172:102;;;;-1:-1:-1;;;;;;;;;;;652:3172:102;;;-1:-1:-1;;;;;652:3172:102;;;;;;;;;;;;;;-1:-1:-1;;652:3172:102;;;;;;3901:31:24;652:3172:102;;;;;:::i;:::-;;;-1:-1:-1;652:3172:102;-1:-1:-1;;;;;;;;;;;652:3172:102;;;-1:-1:-1;652:3172:102;;;;;;;;;;;;;;;;;3901:31:24;652:3172:102;;;;;;;;;;;;;;;;-1:-1:-1;;652:3172:102;;;;;;;-1:-1:-1;;;;;;;;;;;652:3172:102;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;652:3172:102;;;;;;;-1:-1:-1;;;;652:3172:102;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;652:3172:102;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;652:3172:102;;;;-1:-1:-1;652:3172:102;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;416:25:80;;;;477:31;416:25;;:::i;:::-;652:3172:102;;;;;;;;;;477:31:80;;652:3172:102;;;;;;;;;;;:::i;:::-;477:31:80;652:3172:102;;477:31:80;;;;;;:::i;:::-;518:79;;;652:3172:102;518:79:80;;652:3172:102;;;;;;-1:-1:-1;;652:3172:102;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;652:3172:102;;;;;;;;;;;;;;;;;-1:-1:-1;;652:3172:102;;;;;;;1109:35:101;652:3172:102;;;;;;;;;-1:-1:-1;;652:3172:102;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;3217:103:29;;:::i;:::-;3202:4:24;;:::i;:::-;-1:-1:-1;;;;;652:3172:102;;;9907:21:100;;9903:75;;-1:-1:-1;652:3172:102;;;9992:22:100;652:3172:102;;;;;;;;;;;;;9992:41:100;9988:91;;-1:-1:-1;;;;;652:3172:102;;;;;3586:22:100;652:3172:102;;;;;10145:44:100;;;;10089:40;;:31;652:3172:102;;;;;;;;;;;;;;10089:40:100;652:3172:102;;;;;;;;;;;;;;;10145:44:100;;;;3282:1:29;1805;-1:-1:-1;;;;;;;;;;;652:3172:102;3716:283:29;9903:75:100;652:3172:102;;-1:-1:-1;;;9951:16:100;;652:3172:102;;9951:16:100;652:3172:102;;;;;;-1:-1:-1;;652:3172:102;;;;;2666:94:101;652:3172:102;;;;;:::i;:::-;;;-1:-1:-1;652:3172:102;2666:94:101;652:3172:102;;;-1:-1:-1;652:3172:102;;;;;;;;;;;;;;;;;2666:94:101;652:3172:102;;;;;;;;;;;;;-1:-1:-1;;652:3172:102;;;;;;2816:92:101;652:3172:102;;;;;:::i;:::-;;;-1:-1:-1;652:3172:102;2816:92:101;652:3172:102;;;-1:-1:-1;652:3172:102;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;652:3172:102;;;;4911:5:27;652:3172:102;;;;;:::i;:::-;;;966:10:28;;4911:5:27;:::i;:::-;652:3172:102;;;4934:4:27;652:3172:102;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3217:103:29;;:::i;:::-;11459:20:100;652:3172:102;;;;;11455:85:100;;-1:-1:-1;;;;;652:3172:102;;;;;;11550:312:100;;652:3172:102;11459:20:100;652:3172:102;;-1:-1:-1;;;;652:3172:102;-1:-1:-1;;;652:3172:102;;;11872:27:100;11915:20;-1:-1:-1;11915:20:100;;3282:1:29;1805;-1:-1:-1;;;;;;;;;;;652:3172:102;3716:283:29;11550:312:100;652:3172:102;;-1:-1:-1;;;11597:45:100;;-1:-1:-1;;;;;652:3172:102;;11597:45:100;;;652:3172:102;;;11597:45:100;;652:3172:102;;;;;;11597:45:100;11607:15;;;652:3172:102;11597:45:100;;;;;;;-1:-1:-1;11597:45:100;;;11550:312;11596:46;;11592:104;;652:3172:102;;-1:-1:-1;;;11714:30:100;;;652:3172:102;11714:30:100;652:3172:102;11714:30:100;;;;;;;;-1:-1:-1;11714:30:100;;;11550:312;11756:4;;;652:3172:102;;11714:47:100;11710:109;;-1:-1:-1;11459:20:100;652:3172:102;;-1:-1:-1;;;;;;652:3172:102;-1:-1:-1;;;;;652:3172:102;;;;;;;;;11550:312:100;;;;;;11710:109;652:3172:102;;-1:-1:-1;;;11788:16:100;;;11714:30;;;;;;;-1:-1:-1;11714:30:100;;;;;;:::i;:::-;;;;;;11592:104;652:3172:102;;-1:-1:-1;;;11669:12:100;;652:3172:102;;11669:12:100;11597:45;;;;;;;;;;;;;;:::i;:::-;;;;11455:85;652:3172:102;;-1:-1:-1;;;11502:27:100;;;652:3172:102;;;;;;-1:-1:-1;;652:3172:102;;;;;;;;;:::i;:::-;;;3217:103:29;;;:::i;:::-;-1:-1:-1;;;;;652:3172:102;;;;;6112:23:100;;6108:79;;6273:6;652:3172:102;6206:13:100;;;;:::i;:::-;652:3172:102;;;-1:-1:-1;652:3172:102;;;;6273:6:100;:::i;:::-;652:3172:102;;;;;;;;;;;;6302:10:100;;6296:43;;652:3172:102;6296:43:100;1805:1:29;-1:-1:-1;;;;;;;;;;;652:3172:102;;;;;;;;;;;;;;6108:79:100;652:3172:102;;-1:-1:-1;;;6158:18:100;;652:3172:102;;6158:18:100;652:3172:102;;;;;;-1:-1:-1;;652:3172:102;;;;;;-1:-1:-1;652:3172:102;2546:64:101;652:3172:102;;;;-1:-1:-1;652:3172:102;;;;;;;;;;;;;;-1:-1:-1;;652:3172:102;;;;2058:22:101;652:3172:102;;;-1:-1:-1;;;;;652:3172:102;;;;;;;;;;;;;;-1:-1:-1;;652:3172:102;;;;;5173:21:101;;:::i;652:3172:102:-;;;;;;-1:-1:-1;;652:3172:102;;;;;;3217:103:29;;:::i;:::-;966:10:28;-1:-1:-1;652:3172:102;;;;;;;;;;1109:35:101;;652:3172:102;;4468:23:24;4464:108;;652:3172:102;;;;10692:21:100;10688:71;;652:3172:102;;10805:22:100;652:3172:102;;;;;;;;10805:22:100;1805:1:29;-1:-1:-1;;;;;;;;;;;652:3172:102;;4464:108:24;652:3172:102;;;;4514:47:24;;;;;;966:10:28;652:3172:102;4514:47:24;;652:3172:102;;;;;4514:47:24;652:3172:102;;;;;;-1:-1:-1;;652:3172:102;;;;;;;;;:::i;:::-;3123:14:100;;:::i;:::-;3154:24;;;:::i;:::-;3181:29;;;;;:::i;:::-;652:3172:102;;;;;;;3235:1:100;652:3172:102;;;;;;;3213:33:100;;;:::i;:::-;652:3172:102;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;652:3172:102;;;;1888:24:101;652:3172:102;;;-1:-1:-1;;;;;652:3172:102;;;;;;;;;;;;;;-1:-1:-1;;652:3172:102;;;;5767:26:24;652:3172:102;;;;;;;:::i;:::-;;-1:-1:-1;652:3172:102;-1:-1:-1;;;;;;;;;;;652:3172:102;;3202:4:24;4919:24;652:3172:102;-1:-1:-1;652:3172:102;4919:24:24;652:3172:102;3202:4:24;:::i;:::-;5767:26;:::i;652:3172:102:-;;;;;;-1:-1:-1;;652:3172:102;;;;;;;;;;;;;-1:-1:-1;;;;;652:3172:102;;;;;;;;;;;;-1:-1:-1;;652:3172:102;;;;;;;675:39:101;652:3172:102;;;;;;;;;-1:-1:-1;;652:3172:102;;;;;5162:29:27;652:3172:102;;;;;:::i;:::-;5162:20:27;652:3172:102;;;;;;:::i;:::-;5162:20:27;:::i;652:3172:102:-;;;;;;-1:-1:-1;;652:3172:102;;;;;;;;;;;;;;;;;;;-1:-1:-1;;652:3172:102;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;-1:-1:-1;;;;;652:3172:102;;;;;;;;;;;;;;;:::i;:::-;1972:48:100;;652:3172:102;;;;;;;:::i;:::-;;;;;;;;;;;;;;2034:16:100;;2030:111;;652:3172:102;;2233:39:100;1057:70:92;2233:39:100;;4622:48:101;2196:77:100;2233:39;;;;2196:77;;:::i;:::-;2312:36;;4994:47:101;652:3172:102;2312:36:100;;;4994:47:101;;:::i;:::-;2389:37:100;;;4622:48:101;;:::i;:::-;1057:70:92;;:::i;:::-;652:3172:102;;;;;;;;;;;;;2030:111:100;2089:41;;;;-1:-1:-1;652:3172:102;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;4622:48:101;652:3172:102;2196:77:100;652:3172:102;1057:70:92;652:3172:102;;;:::i;:::-;;;;;2030:111:100;;;;;652:3172:102;;;;;;-1:-1:-1;;652:3172:102;;;;2357:1:25;652:3172:102;;;;;:::i;:::-;2303:62:25;;:::i;:::-;2357:1;:::i;652:3172:102:-;;;;;;-1:-1:-1;;652:3172:102;;;;;;;;;:::i;:::-;;;3217:103:29;;:::i;:::-;-1:-1:-1;;;;;652:3172:102;;4890:21:100;4886:75;;4975:11;;4971:73;;845:69:92;4803:22:101;;:::i;:::-;5173:21;;:::i;:::-;845:69:92;;;:::i;:::-;5180:10:100;652:3172:102;;;;5606:15:101;652:3172:102;;;;;5180:10:100;;;5606:33:101;;;:::i;:::-;5150:41:100;;5146:96;;5267:40;;;;;:::i;5146:96::-;652:3172:102;;-1:-1:-1;;;5214:17:100;;652:3172:102;;5214:17:100;4971:73;652:3172:102;;-1:-1:-1;;;5009:24:100;;652:3172:102;;5009:24:100;652:3172:102;;;;;;-1:-1:-1;;652:3172:102;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;652:3172:102;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;:::o;:::-;;7556:1:100;652:3172:102;;;;;;;:::o;:::-;;;;;;;;;;:::o;5256:193:101:-;-1:-1:-1;;;;;652:3172:102;-1:-1:-1;652:3172:102;;;5383:15:101;652:3172:102;;;;;5383:59:101;;5256:193;;5383:59;:::i;652:3172:102:-;;;;;;;;;;1167:340:76;;652:3172:102;1167:340:76;6893:76:26;;:::i;:::-;;;:::i;:::-;1805:1:29;-1:-1:-1;;;;;;;;;;;652:3172:102;-1:-1:-1;;;;;652:3172:102;;1376:73:76;;1167:340;652:3172:102;;;;:::i;:::-;;;3642:39;;;;;;;652:3172;;;;;;;3642:39;;;652:3172;-1:-1:-1;;;;;652:3172:102;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;3734:29;652:3172;;2577:147:27;652:3172:102;3734:29;652:3172;;;;:::i;:::-;;;;;;;;3745:17;652:3172;3734:29;652:3172;;3734:29;;;;;;:::i;:::-;;:::i;:::-;3788:11;3801:13;;2577:147:27;;:::i;1376:73:76:-;6961:1:26;6893:76;;;:::i;:::-;;;:::i;6961:1::-;1376:73:76;;;2492:191:100;-1:-1:-1;;;;;652:3172:102;-1:-1:-1;652:3172:102;;;5606:15:101;652:3172:102;;;;;5606:33:101;;;:::i;:::-;5173:21;;:::i;:::-;4803:22;;:::i;:::-;652:3172:102;1884:1:92;652:3172:102;;;;;;;1884:1:92;652:3172:102;;;;;;;8188:25:58;;;:::i;652:3172:102:-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;:::i;3612:132:101:-;819:34:63;837:15;819:34;:::i;:::-;3683:54:101;3703:17;652:3172:102;3684:36:101;652:3172:102;;;;;;;3684:36:101;;:::i;:::-;652:3172:102;;;3683:54:101;;:::i;:::-;652:3172:102;3612:132:101;:::o;3313:244::-;3418:17;652:3172:102;;;;;;;;;;;;;;3406:29:101;3402:85;;3503:47;3504:29;;;;:::i;3402:85::-;652:3172:102;;-1:-1:-1;;;3458:18:101;;;;;3217:103:29;;;;:::i;:::-;652:3172:102;;-1:-1:-1;;;;;652:3172:102;;;6521:23:100;;6517:79;;6650:11;;6646:70;;652:3172:102;6742:10:100;;;;;;-1:-1:-1;652:3172:102;;6887:49:100;;652:3172:102;;;;6864:6:100;;652:3172:102;;6821:18:100;;652:3172:102;;-1:-1:-1;;;;;652:3172:102;;;6821:18:100;6864:6;:::i;:::-;6887:49;652:3172:102;;6898:10:100;;;;6887:49;;;:::i;:::-;;;;3282:1:29;;1805;-1:-1:-1;;;;;;;;;;;652:3172:102;3716:283:29;6754:3:100;6790:9;6773:27;652:3172:102;6790:9:100;6783:17;6790:9;;;;;:::i;:::-;652:3172:102;6783:17:100;:::i;6773:27::-;6754:3;652:3172:102;6731:9:100;;6646:70;652:3172:102;;-1:-1:-1;;;6684:21:100;;;;;652:3172:102;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;652:3172:102;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;-1:-1:-1;652:3172:102;;;;:::o;:::-;;;:::o;3405:215:25:-;-1:-1:-1;;;;;652:3172:102;;;;3489:22:25;;3485:91;;-1:-1:-1;;;;;;;;;;;652:3172:102;;-1:-1:-1;;;;;;652:3172:102;;;;;;;;3975:40:25;-1:-1:-1;;3975:40:25;3405:215::o;3485:91::-;652:3172:102;;-1:-1:-1;;;3534:31:25;;3509:1;3534:31;;;652:3172:102;;;3534:31:25;2731:227:100;;2871:34;2731:227;652:3172:102;-1:-1:-1;652:3172:102;2871:18:100;652:3172:102;;;-1:-1:-1;652:3172:102;;;;;;;;;;;;;;;;;2871:34:100;652:3172:102;;-1:-1:-1;652:3172:102;2907:11:100;652:3172:102;;;-1:-1:-1;652:3172:102;;2927:16:100;652:3172:102;;;-1:-1:-1;652:3172:102;;;1884:1:92;652:3172:102;;;;;;;1884:1:92;652:3172:102;;;;;;;8188:25:58;;;:::i;3326:384:29:-;-1:-1:-1;;;;;;;;;;;1847:1:29;652:3172:102;;3526:20:29;3522:88;;1847:1;652:3172:102;;3326:384:29:o;3522:88::-;652:3172:102;;-1:-1:-1;;;3569:30:29;;;;;1867:311:102;12135:10:100;-1:-1:-1;652:3172:102;;;5606:15:101;652:3172:102;;;;;1867:311;;;-1:-1:-1;;1867:311:102;;12119:93:100;;819:34:63;837:15;819:34;:::i;:::-;12135:10:100;652:3172:102;;;;5606:15:101;652:3172:102;;;;;12170:41:100;;12135:10;;5606:33:101;;;:::i;12119:93:100:-;837:15:63;;12222:67:100;819:34:63;837:15;819:34;:::i;:::-;12259:29:100;4803:22:101;;;:::i;12222:67:100:-;837:15:63;;12299:68:100;819:34:63;837:15;819:34;:::i;:::-;12335:31:100;5173:21:101;;;:::i;12299:68:100:-;12394:14;;;12769:34;12394:14;12769:25;12394:18;:14;;:::i;:::-;:18;:::i;:::-;12726:33;12445:18;;652:3172:102;;7528:11:100;652:3172:102;;;;;;;12445:18:100;652:3172:102;12502:23:100;;652:3172:102;;12502:16:100;652:3172:102;;;;;;;12502:23:100;652:3172:102;12660:30:100;390:70:92;;;;;:::i;:::-;12660:30:100;;;;:::i;:::-;12639:18;;652:3172:102;;7528:11:100;652:3172:102;;;;;;;12639:18:100;652:3172:102;12726:33:100;:::i;:::-;12700:23;;652:3172:102;;12502:16:100;652:3172:102;;;;;;;12700:23:100;652:3172:102;;;12769:18:100;652:3172:102;;;;;;;12769:34:100;:50;652:3172:102;;;12769:50:100;:::i;:::-;652:3172:102;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;652:3172:102;;;;;12135:10:100;;12835:74;;652:3172:102;;12835:74:100;652:3172:102;;;;;;12135:10:100;;2125:46:102;;652:3172;;;;2125:46;;;;1867:311::o;6868:300:27:-;;-1:-1:-1;;;;;652:3172:102;;;;;6951:18:27;;6947:86;;652:3172:102;;7046:16:27;;;7042:86;;-1:-1:-1;;;;;652:3172:102;;;;;;5606:15:101;652:3172:102;;;;;5606:33:101;;;:::i;:::-;2607:19:102;;;;2603:115;;3459:25;2838:21;:65;3459:25;2838:21;;;3354:65;2838:21;652:3172;;;;;;;;5606:15:101;652:3172:102;;;;;;;2838:21;837:15:63;;819:34;837:15;819:34;:::i;:::-;652:3172:102;;2838:65;;:::i;:::-;-1:-1:-1;;;;;;;652:3172:102;;;;;;5606:15:101;652:3172:102;;;;;837:15:63;;5606:33:101;:24;819:34:63;837:15;819:34;:::i;:::-;-1:-1:-1;;;;;652:3172:102;;;;;;;5606:15:101;652:3172:102;;;;;;;5606:33:101;652:3172:102;3354:65;;:::i;:::-;-1:-1:-1;;652:3172:102;;;;;;;;;;;;;2603:115;652:3172;;-1:-1:-1;;;2653:50:102;;-1:-1:-1;;;;;652:3172:102;;;;2653:50;;;652:3172;;;;;;;;;;;;;;;;12266:60:27;7042:86;652:3172:102;;-1:-1:-1;;;7085:32:27;;6967:1;7085:32;;;652:3172:102;;;7085:32:27;6947:86;652:3172:102;;-1:-1:-1;;;6992:30:27;;6967:1;6992:30;;;652:3172:102;;;6992:30:27;14291:213:59;652:3172:102;14369:24:59;;;;14365:103;;652:3172:102;14291:213:59;:::o;14365:103::-;652:3172:102;;;;14416:41:59;;;;;;14447:2;14416:41;;;652:3172:102;;;;;14416:41:59;652:3172:102;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;:::o;7558:604:91:-;;652:3172:102;;7686:17:91;7682:83;;652:3172:102;7789:27:91;652:3172:102;7789:27:91;652:3172:102;;7789:27:91;;;;;;:::i;:::-;7860:14;;;:::i;:::-;652:3172:102;;;;;;;;;;;;;;;;7888:22:91;;;7884:77;;7975:21;-1:-1:-1;7975:84:91;;;;7558:604;7971:139;;;;8127:28;;;;:::i;7971:139::-;7789:27;8082:17;;;652:3172:102;8075:24:91;:::o;7975:84::-;652:3172:102;;;8009:16:91;4622:13:101;652:3172:102;8009:16:91;:::i;:::-;652:3172:102;;;8001:24:91;:57;;;;;7975:84;;;;;;;8001:57;8029:29;8038:8;;;8029:18;8038:8;8029:23;8038:8;;:::i;:::-;8029:18;:::i;:::-;652:3172:102;;;;;8029:23:91;652:3172:102;;;;8029:29:91;;8001:57;;;;7884:77;7933:17;;;7789:27;7933:17;;;652:3172:102;7926:24:91;:::o;7682:83::-;7726:28;;;;:::i;7558:604::-;;652:3172:102;;7686:17:91;7682:83;;652:3172:102;7789:27:91;652:3172:102;7789:27:91;652:3172:102;;7789:27:91;;;;;;:::i;:::-;7860:14;;;:::i;:::-;652:3172:102;;;;;;;;;;;;;;;;7888:22:91;;;7884:77;;7975:21;-1:-1:-1;7975:84:91;;;;7558:604;7971:139;;;;8127:28;;;;:::i;7975:84::-;652:3172:102;;;8009:16:91;4994:12:101;652:3172:102;8009:16:91;:::i;:::-;652:3172:102;;;8001:24:91;:57;;;;;7975:84;;;;;;;8001:57;8029:29;8038:8;;;8029:18;8038:8;8029:23;8038:8;;:::i;:::-;8029:18;:::i;:29::-;;8001:57;;;;7682:83;7726:28;;;;:::i;7558:604::-;;652:3172:102;;7686:17:91;7682:83;;652:3172:102;7789:27:91;652:3172:102;7789:27:91;652:3172:102;;7789:27:91;;;;;;:::i;:::-;7860:14;;;;;:::i;:::-;652:3172:102;;;;;;;;;;;;;;;;7888:22:91;;;7884:77;;7975:21;-1:-1:-1;7975:84:91;;;;7558:604;7971:139;;;;8127:28;;;;:::i;7971:139::-;8082:17;;7789:27;8082:17;652:3172:102;8075:24:91;:::o;7975:84::-;652:3172:102;;;8009:16:91;652:3172:102;;8009:16:91;:::i;:::-;652:3172:102;;;8001:24:91;:57;;;;;7975:84;;;;;;;8001:57;8029:29;8038:8;;;8029:18;8038:8;8029:23;8038:8;;:::i;:::-;8029:18;;:::i;:29::-;;8001:57;;;;7884:77;7933:17;;;;;7789:27;7933:17;652:3172:102;7926:24:91;:::o;7682:83::-;7726:28;;;;:::i;4148:103:24:-;966:10:28;-1:-1:-1;652:3172:102;;;;;;;;;675:39:101;;652:3172:102;;3901:31:24;652:3172:102;;4468:23:24;4464:108;;4148:103;:::o;:::-;966:10:28;-1:-1:-1;652:3172:102;;;;;;;;;966:38:101;;652:3172:102;;3901:31:24;652:3172:102;4148:103:24;966:10:28;-1:-1:-1;652:3172:102;;;;;;;;;821:37:101;;652:3172:102;;3901:31:24;652:3172:102;4148:103:24;-1:-1:-1;652:3172:102;;;-1:-1:-1;;;;;;;;;;;652:3172:102;;;;;;;;966:10:28;652:3172:102;;;;;;;;;3901:31:24;652:3172:102;7270:387:24;-1:-1:-1;;;;;652:3172:102;;13555:17:100;652:3172:102;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2887:71:24;652:3172:102;;;;13555:17:100;652:3172:102;;;;;;;;;;;-1:-1:-1;;;;;652:3172:102;;;;;;;;;;-1:-1:-1;;652:3172:102;7509:4:24;652:3172:102;;;966:10:28;;-1:-1:-1;;;;;652:3172:102;-1:-1:-1;7532:40:24;-1:-1:-1;;7532:40:24;7509:4;7586:11;:::o;7432:219::-;7628:12;;13555:17:100;7628:12:24;:::o;7270:387::-;-1:-1:-1;;;;;652:3172:102;;-1:-1:-1;652:3172:102;;;;;;;;;675:39:101;;-1:-1:-1;;;;;;;;;;;2887:71:24;652:3172:102;;3901:31:24;652:3172:102;;;;-1:-1:-1;652:3172:102;;;;;;;;;;;-1:-1:-1;;;;;652:3172:102;;;;;;;;;;-1:-1:-1;;652:3172:102;7509:4:24;652:3172:102;;;966:10:28;;-1:-1:-1;;;;;652:3172:102;;7532:40:24;-1:-1:-1;;7532:40:24;7509:4;7586:11;:::o;7432:219::-;7628:12;;;-1:-1:-1;7628:12:24;:::o;7270:387::-;-1:-1:-1;;;;;652:3172:102;;-1:-1:-1;652:3172:102;;;;;;;;;821:37:101;;-1:-1:-1;;;;;;;;;;;2887:71:24;652:3172:102;;3901:31:24;652:3172:102;7270:387:24;-1:-1:-1;;;;;652:3172:102;;-1:-1:-1;652:3172:102;;;;;;;;;966:38:101;;-1:-1:-1;;;;;;;;;;;2887:71:24;652:3172:102;;3901:31:24;652:3172:102;7270:387:24;-1:-1:-1;;;;;652:3172:102;;-1:-1:-1;652:3172:102;;;;;;;;;1109:35:101;;-1:-1:-1;;;;;;;;;;;2887:71:24;652:3172:102;;3901:31:24;652:3172:102;7270:387:24;-1:-1:-1;652:3172:102;;;-1:-1:-1;;;;;;;;;;;652:3172:102;;;;;;;;-1:-1:-1;;;;;652:3172:102;;;;;;;;;;;;3901:31:24;652:3172:102;7892:388:24;-1:-1:-1;652:3172:102;;;-1:-1:-1;;;;;;;;;;;652:3172:102;;;;;;;;-1:-1:-1;;;;;652:3172:102;;;;;;;;;;;;;;;;-1:-1:-1;652:3172:102;;;;;;;;;;;-1:-1:-1;;;;;652:3172:102;;;;;;;;;;-1:-1:-1;;652:3172:102;;;966:10:28;;-1:-1:-1;;;;;652:3172:102;;8155:40:24;-1:-1:-1;;8155:40:24;652:3172:102;8209:11:24;:::o;652:3172:102:-;;;;;;;;;;;:::o;:::-;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;652:3172:102;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;652:3172:102;;;;;;;;;;;;;;;;-1:-1:-1;;;;;652:3172:102;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;652:3172:102;;;;;;;;;;-1:-1:-1;;;;;652:3172:102;;;;;;;;;;-1:-1:-1;;;;;652:3172:102;;;;;;;;;;-1:-1:-1;;;;;652:3172:102;;;;;;;;;;-1:-1:-1;;;;;652:3172:102;;;;;2658:162:25;-1:-1:-1;;;;;;;;;;;652:3172:102;-1:-1:-1;;;;;652:3172:102;966:10:28;2717:23:25;2713:101;;2658:162::o;2713:101::-;652:3172:102;;-1:-1:-1;;;2763:40:25;;966:10:28;2763:40:25;;;652:3172:102;;;2763:40:25;2557:104:58;;2641:5;;;;;;:13;2557:104;:::o;2641:13::-;;;2557:104;:::o;652:3172:102:-;;;;;;;:::o;3803:4116:58:-;;;652:3172:102;;;;-1:-1:-1;;3803:4116:58;;4383:131;;;;;;;;;;;;4595:10;;4591:368;;5065:20;;;;5061:88;;5435:300;;;652:3172:102;-1:-1:-1;652:3172:102;5954:31:58;;5999:371;;;6813:1;652:3172:102;;6794:1:58;652:3172:102;6793:21:58;652:3172:102;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5999:371:58;;;;-1:-1:-1;5999:371:58;;;5435:300;;;;;;652:3172:102;5435:300:58;;5999:371;6436:21;652:3172:102;3803:4116:58;:::o;5061:88::-;652:3172:102;;-1:-1:-1;;;5112:22:58;;;;;4591:368;4925:19;;;;;;;:::i;652:3172:102:-;7178:12:91;652:3172:102;;;;;;7178:12:91;-1:-1:-1;652:3172:102;-1:-1:-1;;;;;;;;;;;652:3172:102;;-1:-1:-1;652:3172:102;:::o;:::-;7178:12:91;652:3172:102;;;;;;7178:12:91;-1:-1:-1;652:3172:102;-1:-1:-1;;;;;;;;;;;652:3172:102;;-1:-1:-1;652:3172:102;:::o;:::-;;;;;;;;-1:-1:-1;652:3172:102;;-1:-1:-1;652:3172:102;;;-1:-1:-1;652:3172:102;:::o;:::-;6360:12:91;652:3172:102;-1:-1:-1;;;652:3172:102;;;;;;;;;6360:12:91;652:3172:102;;;;;;6360:12:91;-1:-1:-1;652:3172:102;-1:-1:-1;;;;;;;;;;;652:3172:102;;:::o;:::-;6360:12:91;652:3172:102;-1:-1:-1;;;652:3172:102;;;;;;;;;6360:12:91;652:3172:102;;;;;;6360:12:91;-1:-1:-1;652:3172:102;-1:-1:-1;;;;;;;;;;;652:3172:102;;:::o;:::-;;;;;-1:-1:-1;;;652:3172:102;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;12178:17:27;;;652:3172:102;;;;;;;;6246:584:91;;;;6360:12;652:3172:102;;;6360:24:91;;6356:75;;6246:584;6474:30;;;:::i;:::-;652:3172:102;;;;;;6578:12:91;;;:::i;:::-;6604:24;;;;6246:584;-1:-1:-1;6600:188:91;;;-1:-1:-1;;;652:3172:102;;;;;;;;;-1:-1:-1;652:3172:102;;;-1:-1:-1;652:3172:102;;;;;;6798:25:91;652:3172:102;6246:584:91:o;6600:188::-;8167:38:61;;-1:-1:-1;;;;;652:3172:102;;-1:-1:-1;8167:38:61;:::i;:::-;6753:24:91;;;;;:::i;:::-;6798:25;6246:584;:::o;6604:24::-;652:3172:102;;;;;;6614:14:91;;-1:-1:-1;6604:24:91;;;6356:75;-1:-1:-1;;;652:3172:102;;;;;;;;;;;;;;;;-1:-1:-1;652:3172:102;;;;-1:-1:-1;;;;;;;;;;;652:3172:102;;6356:75:91;;;6246:584;;;;6360:12;652:3172:102;;;6360:24:91;;6356:75;;6246:584;6474:30;;;:::i;:::-;652:3172:102;;;;;;6578:12:91;;;:::i;:::-;6604:24;;;;6246:584;-1:-1:-1;6600:188:91;;;-1:-1:-1;;;652:3172:102;;;;;;;;;-1:-1:-1;652:3172:102;;;-1:-1:-1;652:3172:102;;;;;;6798:25:91;652:3172:102;6246:584:91:o;6600:188::-;8167:38:61;;-1:-1:-1;;;;;652:3172:102;;-1:-1:-1;8167:38:61;:::i;:::-;6753:24:91;;;;;:::i;6604:::-;652:3172:102;;;;;;6614:14:91;;-1:-1:-1;6604:24:91;;;6356:75;-1:-1:-1;;;652:3172:102;;;;;;;;;;;;;;;;-1:-1:-1;652:3172:102;;;;-1:-1:-1;;;;;;;;;;;652:3172:102;;6356:75:91;;;6246:584;;;;;6360:12;;;652:3172:102;;;6360:24:91;;6356:75;;6246:584;6474:30;;;;;:::i;:::-;652:3172:102;;;;;;6578:12:91;;;;:::i;:::-;6604:24;;;;6246:584;-1:-1:-1;6600:188:91;;;-1:-1:-1;;;;;652:3172:102;;;;;;;6644:21:91;;;:29;:21;;:::i;6600:188::-;6753:24;;652:3172:102;;8167:38:61;;-1:-1:-1;;;;;652:3172:102;;;;;8167:38:61;:::i;:::-;6753:24:91;;;:::i;6604:::-;652:3172:102;;;;;;6614:14:91;;-1:-1:-1;6604:24:91;;;6356:75;-1:-1:-1;;;652:3172:102;;;;;;6360:12:91;652:3172:102;;;;;;;:::i;:::-;;;12178:17:27;;;652:3172:102;;;;;;;;6356:75:91;;;1303:160:46;652:3172:102;;-1:-1:-1;;;1412:43:46;;;;-1:-1:-1;;;;;652:3172:102;;;1412:43:46;;;652:3172:102;;;;;;;;;1412:43:46;;;652:3172:102;;;;-1:-1:-1;;;;;652:3172:102;;;;;;;;1412:43:46;652:3172:102;;;1412:43:46;:::i;12922:460:100:-;;13024:14;;:::i;:::-;13015:23;;;13011:75;;-1:-1:-1;652:3172:102;;;13100:20:100;652:3172:102;;;;;;;;13128:10:100;652:3172:102;;;;;;;;;;13096:93:100;;13208:32;13128:10;13208:32;;:::i;:::-;13255:11;;;13251:68;;-1:-1:-1;652:3172:102;;;13100:20:100;652:3172:102;;;;;;;;13128:10:100;652:3172:102;;;;;;;;;-1:-1:-1;;652:3172:102;13371:4:100;652:3172:102;;;12922:460:100:o;13251:68::-;652:3172:102;;-1:-1:-1;;;13289:19:100;;;;;13096:93;652:3172:102;;-1:-1:-1;;;13162:16:100;;;;;13011:75;652:3172:102;;-1:-1:-1;;;13061:14:100;;;;;10580:184:91;4803:13:101;652:3172:102;10303:8:61;;;:63;-1:-1:-1;10303:63:61;-1:-1:-1;;;;;652:3172:102;;10726:7:91;652:3172:102;;10736:12:91;652:3172:102;;;;;;10736:12:91;-1:-1:-1;652:3172:102;-1:-1:-1;;;;;;;;;;;652:3172:102;;10580:184:91;:::o;10726:31::-;;-1:-1:-1;10580:184:91;:::o;10303:63:61:-;12178:17:27;;;652:3172:102;;;;;4803:13:101;-1:-1:-1;14249:109:61;;;652:3172:102;;;10303:63:61;;10580:184:91;5173:12:101;652:3172:102;10303:8:61;;;:63;-1:-1:-1;10303:63:61;-1:-1:-1;;;;;652:3172:102;;10726:7:91;652:3172:102;;10736:12:91;652:3172:102;;;;;;10736:12:91;-1:-1:-1;652:3172:102;-1:-1:-1;;;;;;;;;;;652:3172:102;;10580:184:91;:::o;10303:63:61:-;12178:17:27;;;652:3172:102;;;;;5173:12:101;-1:-1:-1;14249:109:61;;;652:3172:102;;;10303:63:61;;10580:184:91;652:3172:102;;10303:8:61;;;:63;-1:-1:-1;10303:63:61;-1:-1:-1;;;;;652:3172:102;;10726:7:91;652:3172:102;;10736:12:91;:17;:12;;:17;:::i;:::-;652:3172:102;;;;;;10580:184:91;:::o;10303:63:61:-;12178:17:27;;652:3172:102;;;;;;;;14249:109:61;-1:-1:-1;14249:109:61;;-1:-1:-1;14249:109:61;;;652:3172:102;;;10303:63:61;;11224:487:27;;-1:-1:-1;;;;;652:3172:102;;;11389:19:27;11385:89;;652:3172:102;;11487:21:27;11483:90;;11582:20;:29;:20;;:::i;:29::-;652:3172:102;11224:487:27:o;1662:280:92:-;;;1884:1;652:3172:102;;;;;;;1884:1:92;652:3172:102;;;;;;;8188:25:58;;;:::i;6999:207:91:-;4622:13:101;652:3172:102;9594:15:61;-1:-1:-1;9619:18:61;9652:7;9658:1;9652:7;;9648:234;;6999:207:91;9906:53:61;;;;:::i;:::-;9977:8;;;:63;-1:-1:-1;9977:63:61;-1:-1:-1;;;;;652:3172:102;;7168:7:91;652:3172:102;;7178:17:91;652:3172:102;7178:17:91;;:::i;9977:63:61:-;9992:41;10025:7;9992:48;10025:7;;:::i;:::-;4622:13:101;14249:109:61;;-1:-1:-1;;;;;;;;;;;14249:109:61;14099:265;;9992:41;652:3172:102;;;;;9992:48:61;9977:63;;9648:234;9695:14;;;;;:::i;:::-;652:3172:102;;;;;;;9906:53:61;14249:109;4622:13:101;-1:-1:-1;14249:109:61;652:3172:102;14249:109:61;;-1:-1:-1;;;;;;;;;;;14249:109:61;652:3172:102;;;;;9727:48:61;9723:149;652:3172:102;;;9795:10:61;9723:149;9648:234;;9723:149;9850:7;;;;;;:::i;:::-;9723:149;9648:234;;6999:207:91;4994:12:101;652:3172:102;9594:15:61;-1:-1:-1;9619:18:61;9652:7;9658:1;9652:7;;9648:234;;6999:207:91;9906:53:61;;;;:::i;:::-;9977:8;;;:63;-1:-1:-1;9977:63:61;-1:-1:-1;;;;;652:3172:102;;7168:7:91;652:3172:102;;7178:17:91;652:3172:102;7178:17:91;;:::i;9977:63:61:-;9992:41;10025:7;9992:48;10025:7;;:::i;:::-;4994:12:101;14249:109:61;;-1:-1:-1;;;;;;;;;;;14249:109:61;14099:265;;9992:48;9977:63;;9648:234;9695:14;;;;;:::i;:::-;652:3172:102;;;;;;;9906:53:61;14249:109;4994:12:101;-1:-1:-1;14249:109:61;652:3172:102;14249:109:61;;-1:-1:-1;;;;;;;;;;;14249:109:61;652:3172:102;;;;;9727:48:61;9723:149;652:3172:102;;;9795:10:61;9723:149;9648:234;;9723:149;9850:7;;;;;;:::i;:::-;9723:149;9648:234;;6999:207:91;;652:3172:102;;9594:15:61;-1:-1:-1;9619:18:61;9652:7;9658:1;9652:7;;9648:234;;6999:207:91;9906:53:61;;;;;:::i;:::-;9977:8;;;:63;-1:-1:-1;9977:63:61;;-1:-1:-1;;;;;652:3172:102;;7168:7:91;652:3172:102;;;7178:12:91;;:17;:12;;:17;:::i;9977:63:61:-;9992:41;10025:7;9992:48;10025:7;;:::i;:::-;9992:41;14249:109;;;;;;14099:265;;9992:48;9977:63;;;9648:234;9695:14;;;;;:::i;:::-;652:3172:102;;;;;;;9906:53:61;14249:109;;-1:-1:-1;14249:109:61;652:3172:102;14249:109:61;;;-1:-1:-1;14249:109:61;;652:3172:102;;;;;9727:48:61;9723:149;652:3172:102;;;9795:10:61;9723:149;9648:234;;9723:149;9850:7;;;;;;:::i;:::-;9723:149;9648:234;;652:3172:102;;;;;;;:::i;:::-;-1:-1:-1;652:3172:102;;;;;;;:::o;11486:272:91:-;652:3172:102;;:::i;:::-;;;;:::i;:::-;;4622:13:101;652:3172:102;;;;;;;;4622:13:101;-1:-1:-1;652:3172:102;-1:-1:-1;;;;;;;;;;;652:3172:102;;:::i;:::-;;;;;;;;;;;;11731:17:91;;652:3172:102;;11718:12:91;652:3172:102;;;;;;11718:12:91;-1:-1:-1;652:3172:102;-1:-1:-1;;;;;;;;;;;652:3172:102;;;;;;;;:::i;:::-;;;;11672:79:91;;652:3172:102;11486:272:91;:::o;:::-;652:3172:102;;:::i;:::-;;;;:::i;:::-;;4994:12:101;652:3172:102;;;;;;;;4994:12:101;-1:-1:-1;652:3172:102;-1:-1:-1;;;;;;;;;;;652:3172:102;;:::i;:::-;;;;;;;;;;;;11731:17:91;;652:3172:102;;11718:12:91;652:3172:102;;;;;;11718:12:91;-1:-1:-1;652:3172:102;-1:-1:-1;;;;;;;;;;;652:3172:102;;;;;;;;:::i;11486:272:91:-;;652:3172:102;11308:22:61;11718:31:91;11486:272;652:3172:102;;:::i;:::-;;;;:::i;:::-;;11308:22:61;;:::i;:::-;652:3172:102;;:::i;:::-;;11718:12:91;652:3172:102;;;;;11731:17:91;652:3172:102;;;;;11731:17:91;;652:3172:102;;11718:12:91;;:31;:::i;:::-;652:3172:102;;;;;;;;;:::i;:::-;;;;;;11731:17:91;11672:79;;652:3172:102;11486:272:91;:::o;1702:188:46:-;652:3172:102;;-1:-1:-1;;;1829:53:46;;;;-1:-1:-1;;;;;652:3172:102;;;1829:53:46;;;652:3172:102;;;;;;;;;;;;;;;;;1829:53:46;;;652:3172:102;;;;;;;-1:-1:-1;;;;;652:3172:102;;;;;1829:53:46;652:3172:102;;;1829:53:46;:::i;7084:141:26:-;652:3172:102;-1:-1:-1;;;;;;;;;;;652:3172:102;;;;7150:18:26;7146:73;;7084:141::o;7146:73::-;652:3172:102;;-1:-1:-1;;;7191:17:26;;;;;652:3172:102;;;;;;;;;;;;:::i;13388:2406:100:-;13510:30;13388:2406;13510:30;652:3172:102;;;13510:30:100;;;;;;:::i;:::-;652:3172:102;;-1:-1:-1;;;;;652:3172:102;;;;13555:31:100;13551:88;;13653:20;;;;652:3172:102;;;;;;;;;;13653:25:100;13649:85;;13748:29;;;652:3172:102;;13748:29:100;;652:3172:102;13748:43:100;;-1:-1:-1;;;;;652:3172:102;;;13748:43:100;;13744:943;;13388:2406;652:3172:102;;;15647:32:100;652:3172:102;14817:36:100;652:3172:102;;;14697:30:100;652:3172:102;;;;;;;;;;;;13555:17:100;652:3172:102;;-1:-1:-1;;;;;;652:3172:102;;;;;;-1:-1:-1;;;;;652:3172:102;;;;;;;;14697:30:100;13510;14747:13;;652:3172:102;;;;-1:-1:-1;;;;;;652:3172:102;-1:-1:-1;;;;;652:3172:102;;;;;;;;;14771:36:100;819:34:63;837:15;819:34;:::i;:::-;14738:22:100;652:3172:102;;-1:-1:-1;;;;652:3172:102;;;;;;-1:-1:-1;;;652:3172:102;;;;;;;;;14738:22:100;652:3172:102;;-1:-1:-1;;;;;652:3172:102;;;;;;-1:-1:-1;;;;;;652:3172:102;;;;;;;;14817:36:100;14864:42;652:3172:102;14883:23:100;;;652:3172:102;;;;;;;;;13555:17:100;652:3172:102;;;;;;;13555:17:100;652:3172:102;;14864:42:100;14917:38;652:3172:102;14934:21:100;;;652:3172:102;;;;;;;13555:17:100;652:3172:102;;;;;;;;;;;;13555:17:100;652:3172:102;;14917:38:100;14965:34;14980:19;;;652:3172:102;14965:34:100;652:3172:102;;14965:34:100;652:3172:102;-1:-1:-1;;;;;652:3172:102;;;;;;;15010:135:100;;13388:2406;-1:-1:-1;15158:36:100;;;652:3172:102;-1:-1:-1;;;;;652:3172:102;;;;15154:157:100;;13388:2406;-1:-1:-1;15324:35:100;;;652:3172:102;-1:-1:-1;;;;;652:3172:102;;;;15320:153:100;;13388:2406;-1:-1:-1;15486:34:100;;;652:3172:102;-1:-1:-1;;;;;652:3172:102;;;;15482:152:100;;13388:2406;-1:-1:-1;15647:32:100;652:3172:102;-1:-1:-1;;;;;652:3172:102;;;;;;;15643:145:100;;13388:2406;:::o;15643:145::-;15709:68;;;:::i;:::-;;13388:2406::o;15482:152::-;15550:73;;;:::i;:::-;;15482:152;;;15320:153;15389:73;;;:::i;:::-;;15320:153;;;15154:157;15224:76;;;:::i;:::-;;15154:157;;;15010:135;15073:61;;;:::i;:::-;;15010:135;;;13744:943;13811:36;;;652:3172:102;13811:50:100;;-1:-1:-1;;;;;652:3172:102;;;13811:50:100;;13807:405;;13744:943;14230:34;;;652:3172:102;14230:48:100;;-1:-1:-1;;;;;652:3172:102;;;14230:48:100;13744:943;14226:451;14302:21;;;652:3172:102;;14302:21:100;;14351:19;;;652:3172:102;14351:24:100;:74;;;14298:365;14347:150;;14298:365;;652:3172:102;15647:32:100;14298:365;14817:36;652:3172:102;;14298:365:100;;14226:451;;;;;;;13744:943;;14347:150;652:3172:102;-1:-1:-1;;;14460:14:100;;;;;14351:74;-1:-1:-1;14379:32:100;;;652:3172:102;14379:46:100;;-1:-1:-1;;;;;652:3172:102;;;14379:46:100;;14351:74;;14298:365;14525:19;;;652:3172:102;14525:24:100;;;:74;;;14298:365;14521:142;;14298:365;;652:3172:102;15647:32:100;14298:365;14817:36;652:3172:102;;14298:365:100;;;14525:74;-1:-1:-1;14553:32:100;;;652:3172:102;14553:46:100;;-1:-1:-1;;;;;652:3172:102;;;14553:46:100;;;14525:74;;13807:405;13885:23;;;652:3172:102;;13885:23:100;;13936:35;;;652:3172:102;13936:49:100;;-1:-1:-1;;;;;652:3172:102;;;13936:49:100;13807:405;13932:125;652:3172:102;-1:-1:-1;;;14020:14:100;;;;;13881:317;14085:35;;;652:3172:102;14085:49:100;;-1:-1:-1;;;;;652:3172:102;;;14085:49:100;14081:117;13807:405;14081:117;652:3172:102;-1:-1:-1;;;14165:14:100;;;;;13649:85;652:3172:102;;-1:-1:-1;;;13701:22:100;;;;;13551:88;652:3172:102;;-1:-1:-1;;;13609:19:100;;;;;6893:76:26;;;;;:::i;:::-;;;:::i;:::-;652:3172:102;;-1:-1:-1;;;;;652:3172:102;;;;-1:-1:-1;;;;;;;;;;;652:3172:102;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;12178:17:27;;;652:3172:102;;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;652:3172:102;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;652:3172:102;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;12178:17:27;;652:3172:102;;2895:7:27;652:3172:102;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::o;10552:388:61:-;5173:12:101;652:3172:102;10728:8:61;;;10752:20;10690:17;10752:20;10690:17;10752:20;10690:17;10752:20;:::o;10724:210::-;12178:17:27;;;652:3172:102;;;;;14249:109:61;652:3172:102;14249:109:61;5173:12:101;10690:17:61;14249:109;;652:3172:102;:::i;:::-;;;;;;;14249:109:61;652:3172:102;;;;;10911:11:61;;652:3172:102;;10886:37:61;10870:1;10886:37;;;:::o;10552:388::-;4803:13:101;652:3172:102;10728:8:61;;;10752:20;10690:17;10752:20;10690:17;10752:20;10690:17;10752:20;:::o;10724:210::-;12178:17:27;;;652:3172:102;;;;;14249:109:61;652:3172:102;14249:109:61;4803:13:101;10690:17:61;14249:109;;652:3172:102;:::i;10552:388:61:-;652:3172:102;;10728:8:61;;;10752:20;;10690:17;10752:20;10690:17;10752:20;10690:17;10752:20;:::o;10724:210::-;12178:17:27;;652:3172:102;;;;;;;;;14249:109:61;10690:17;14249:109;;10690:17;14249:109;;;652:3172:102;:::i;4059:629:46:-;2847:1:47;4059:629:46;3510:55:47;4059:629:46;652:3172:102;;;;;;3462:31:47;;;;;;;;;;;;:::i;:::-;3510:55;;;:::i;:::-;652:3172:102;;4551:22:46;;;;:57;;;;4059:629;4547:135;;;;4059:629;:::o;4547:135::-;652:3172:102;;;;4631:40:46;;;;;;;;;652:3172:102;4631:40:46;4551:57;4578:30;;;3462:31:47;4578:30:46;;;;;;;;:::i;:::-;4577:31;4551:57;;;;1258:280:92;;;652:3172:102;;;;;;;;;;;;;;;;8188:25:58;;;;;:::i;:::-;8257;;;;;;8223:101;;1258:280:92;:::o;8223:101:58:-;652:3172:102;;;;;;;;1258:280:92;:::o;652:3172:102:-;;;;;;;;:::o;:::-;-1:-1:-1;;;;;;;;;;;;652:3172:102;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;-1:-1:-1;652:3172:102;;;;;;;;;-1:-1:-1;652:3172:102;;;;;;;;;;;;:::o;:::-;-1:-1:-1;;;;;;;;;;;;652:3172:102;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;-1:-1:-1;652:3172:102;;;;;;;;;-1:-1:-1;652:3172:102;;;;;;;;-1:-1:-1;;;;;652:3172:102;;;;-1:-1:-1;;;;;;;;;;;652:3172:102;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;12178:17:27;;;652:3172:102;;;;;;;;;;;;:::o;:::-;;;;;;;;-1:-1:-1;;;;;;;;;;;652:3172:102;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;12178:17:27;;652:3172:102;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5173:12:101;652:3172:102;;-1:-1:-1;;;652:3172:102;;;;;;;;;5173:12:101;652:3172:102;;;;;;5173:12:101;-1:-1:-1;652:3172:102;;;;;;;;;;-1:-1:-1;;652:3172:102;;;;;;;-1:-1:-1;;;;;;;;;;;652:3172:102;;;;:::o;:::-;4803:13:101;652:3172:102;;-1:-1:-1;;;652:3172:102;;;;;;;;;4803:13:101;652:3172:102;;;;;;4803:13:101;-1:-1:-1;652:3172:102;;;;;;;;;;-1:-1:-1;;652:3172:102;;;;;;;-1:-1:-1;;;;;;;;;;;652:3172:102;;;;:::o;:::-;;;-1:-1:-1;;;652:3172:102;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;652:3172:102;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;11513:870:61;5173:12:101;652:3172:102;11513:870:61;;;652:3172:102;11672:7:61;;;;652:3172:102;11775:28:61;11795:7;;;:::i;11775:28::-;652:3172:102;:::i;:::-;;;;;;;;;;-1:-1:-1;;11873:91:61;;652:3172:102;12233:11:61;652:3172:102;;;12027:16:61;652:3172:102;;;;;;;12027:16:61;;;;12083:7;12063:28;12083:7;12063:43;12083:7;;:::i;12063:28::-;652:3172:102;;;;;;;;;;;;;;;;;12063:43:61;12233:11;652:3172:102;-1:-1:-1;;;;;652:3172:102;;;12023:189:61;652:3172:102;;12145:52:61;652:3172:102;;12155:41:61;652:3172:102;;:::i;:::-;;;;;;;;12155:41:61;-1:-1:-1;;;;;652:3172:102;;12155:41:61;;;652:3172:102;12145:52:61;:::i;:::-;12023:189;;11873:91;652:3172:102;;-1:-1:-1;;;11919:30:61;;;;;11668:709;12283:52;652:3172:102;;12293:41:61;652:3172:102;;:::i;12293:41:61:-;-1:-1:-1;;;;;652:3172:102;;12293:41:61;;;652:3172:102;12145:52:61;:::i;12283:::-;11678:1;12349:17;;:::o;11513:870::-;4803:13:101;652:3172:102;11513:870:61;;;652:3172:102;11672:7:61;;;;652:3172:102;11775:28:61;11795:7;;;:::i;652:3172:102:-;;;;;;;;;;-1:-1:-1;;11873:91:61;;652:3172:102;12233:11:61;652:3172:102;;;12027:16:61;652:3172:102;;;;;;;12027:16:61;;;;12083:7;12063:28;12083:7;12063:43;12083:7;;:::i;12023:189::-;652:3172:102;;12145:52:61;652:3172:102;;12155:41:61;652:3172:102;;:::i;12155:41:61:-;-1:-1:-1;;;;;652:3172:102;;12155:41:61;;;652:3172:102;12145:52:61;:::i;11668:709::-;12283:52;652:3172:102;;12293:41:61;652:3172:102;;:::i;12293:41:61:-;-1:-1:-1;;;;;652:3172:102;;12293:41:61;;;652:3172:102;12145:52:61;:::i;11513:870::-;652:3172:102;;11513:870:61;;;652:3172:102;11513:870:61;11672:7;;;;652:3172:102;11775:28:61;11795:7;;;:::i;652:3172:102:-;;;;;;;;;;;;;;;;11877:15:61;-1:-1:-1;11873:91:61;;652:3172:102;;12233:11:61;652:3172:102;;;12027:16:61;652:3172:102;;;;;;;12027:16:61;;;;12083:7;12063:43;12083:7;;12063:28;12083:7;;:::i;:::-;12063:28;14249:109;;;;;;14099:265;;12023:189;652:3172:102;;;12145:52:61;652:3172:102;12155:41:61;652:3172:102;;:::i;:::-;;;;;;;;12155:41:61;-1:-1:-1;;;;;652:3172:102;;12155:41:61;;;652:3172:102;12145:52:61;:::i;11668:709::-;12283:52;652:3172:102;;12293:41:61;652:3172:102;;:::i;12293:41:61:-;-1:-1:-1;;;;;652:3172:102;;12293:41:61;;;652:3172:102;12145:52:61;:::i;8587:1642:58:-;8658:6;;8654:45;;9401:7;10201:10;10142:26;10093;10044;9995;9946;9897;9848;652:3172:102;10189:23:58;9401:7;8663:1;652:3172:102;;;;10826:16:58;10822:99;;8587:1642;652:3172:102;;;;10938:15:58;10934:96;;8587:1642;652:3172:102;;;;11047:15:58;11043:96;;8587:1642;652:3172:102;;;;11156:15:58;11152:96;;8587:1642;652:3172:102;;;;11265:14:58;11261:93;;8587:1642;652:3172:102;;;;11371:14:58;11367:93;;8587:1642;652:3172:102;;;;11477:14:58;11473:93;;8587:1642;652:3172:102;;;11579:64:58;;8587:1642;652:3172:102;;;9858:10:58;;;;:::i;:::-;652:3172:102;;;;;9848:26:58;9907:10;;;;:::i;9897:26::-;9956:10;;;;:::i;9946:26::-;10005:10;;;;:::i;9995:26::-;10054:10;;;;:::i;10044:26::-;10103:10;;;;:::i;10093:26::-;10152:10;;;;:::i;10142:26::-;10201:10;;;:::i;:::-;10189:23;;:::i;11579:64::-;652:3172:102;;11579:64:58;;11473:93;652:3172:102;11511:11:58;;652:3172:102;;11473:93:58;;;;11367;652:3172:102;11405:11:58;;652:3172:102;;11367:93:58;;;;11261;652:3172:102;11299:11:58;;652:3172:102;;11261:93:58;;;;11152:96;652:3172:102;11191:12:58;;652:3172:102;;11152:96:58;;;;11043;652:3172:102;11082:12:58;;652:3172:102;;11043:96:58;;;;10934;652:3172:102;10973:12:58;;652:3172:102;;10934:96:58;;;;10822:99;10862:13;;;652:3172:102;10822:99:58;;;;12736:433:61;;12919:10;;;;;;13151:11;;12736:433;:::o;12912:230::-;2900:5:58;;;;;652:3172:102;;2910:5:58;;;652:3172:102;;;;;;;;;4622:13:101;-1:-1:-1;14249:109:61;652:3172:102;14249:109:61;;-1:-1:-1;;;;;;;;;;;14249:109:61;652:3172:102;;;;;-1:-1:-1;12996:136:61;652:3172:102;;;13055:10:61;;12996:136;;12912:230;;;12996:136;652:3172:102;;;;;;;;;;;12996:136:61;;;12736:433;;12919:10;;;;;;13151:11;;12736:433;:::o;12912:230::-;2900:5:58;;;;;652:3172:102;;2910:5:58;;;652:3172:102;;;;;;;;;4994:12:101;-1:-1:-1;14249:109:61;652:3172:102;14249:109:61;;-1:-1:-1;;;;;;;;;;;14249:109:61;652:3172:102;;;;;-1:-1:-1;12996:136:61;652:3172:102;;;13055:10:61;;12996:136;;12912:230;;;12996:136;652:3172:102;;;;;;;;;;;12996:136:61;;;12736:433;;;12919:10;;;;;;13151:11;;;12736:433;:::o;12912:230::-;2900:5:58;;;;;;652:3172:102;;2910:5:58;;;652:3172:102;;;;;;;;;14249:109:61;-1:-1:-1;14249:109:61;652:3172:102;14249:109:61;;;-1:-1:-1;14249:109:61;;652:3172:102;;;;;-1:-1:-1;12996:136:61;652:3172:102;;;13055:10:61;;12996:136;;12912:230;;;;12996:136;652:3172:102;;;;;;;;;;;12996:136:61;;;4625:582:47;;4797:8;;-1:-1:-1;652:3172:102;;5874:21:47;:17;;6046:142;;;;;;5870:383;652:3172:102;;-1:-1:-1;;;6225:17:47;;;;;4793:408;652:3172:102;;5045:22:47;:49;;;4793:408;5041:119;;5173:17;;:::o;5041:119::-;652:3172:102;;-1:-1:-1;;;5121:24:47;;-1:-1:-1;;;;;652:3172:102;;;5121:24:47;;;652:3172:102;;;5121:24:47;5045:49;5071:18;;;:23;5045:49;","linkReferences":{},"immutableReferences":{"64787":[{"start":2715,"length":32},{"start":3267,"length":32}],"75427":[{"start":5506,"length":32},{"start":6953,"length":32}],"75430":[{"start":7314,"length":32},{"start":8687,"length":32}]}},"methodIdentifiers":{"DEFAULT_ADMIN_ROLE()":"a217fddf","DELEGATOR_FACTORY()":"6da3e06d","DEPOSITOR_WHITELIST_ROLE()":"1b66c9e1","DEPOSIT_LIMIT_SET_ROLE()":"a21a1df9","DEPOSIT_WHITELIST_SET_ROLE()":"db388715","FACTORY()":"2dd31000","IS_DEPOSIT_LIMIT_SET_ROLE()":"1415519b","SLASHER_FACTORY()":"87df0788","activeBalanceOf(address)":"59f769a9","activeBalanceOfAt(address,uint48,bytes)":"efb559d6","activeShares()":"bfefcd7b","activeSharesAt(uint48,bytes)":"50f22068","activeSharesOf(address)":"9d66201b","activeSharesOfAt(address,uint48,bytes)":"2d73c69c","activeStake()":"bd49c35f","activeStakeAt(uint48,bytes)":"810da75d","allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","burner()":"27810b6e","claim(address,uint256)":"aad3ec96","claimBatch(address,uint256[])":"7c04c80a","collateral()":"d8dfeb45","currentEpoch()":"76671808","currentEpochStart()":"61a8c8c4","decimals()":"313ce567","delegator()":"ce9b7930","deposit(address,uint256)":"47e7ef24","depositLimit()":"ecf70858","depositWhitelist()":"48d3b775","epochAt(uint48)":"7953b33b","epochDuration()":"4ff0876a","epochDurationInit()":"46361671","getRoleAdmin(bytes32)":"248a9ca3","grantRole(bytes32,address)":"2f2ff15d","hasRole(bytes32,address)":"91d14854","initialize(uint64,address,bytes)":"57ec83cc","isDelegatorInitialized()":"50861adc","isDepositLimit()":"a1b12202","isDepositorWhitelisted(address)":"794b15b7","isInitialized()":"392e53cd","isSlasherInitialized()":"6ec1e3f8","isWithdrawalsClaimed(uint256,address)":"a5d03223","migrate(uint64,bytes)":"2abe3048","name()":"06fdde03","nextEpochStart()":"73790ab3","onSlash(uint256,uint48)":"7278e31c","owner()":"8da5cb5b","previousEpochStart()":"281f5752","redeem(address,uint256)":"1e9a6950","renounceOwnership()":"715018a6","renounceRole(bytes32,address)":"36568abe","revokeRole(bytes32,address)":"d547741f","setDelegator(address)":"83cd9cc3","setDepositLimit(uint256)":"bdc8144b","setDepositWhitelist(bool)":"4105a7dd","setDepositorWhitelistStatus(address,bool)":"a2861466","setIsDepositLimit(bool)":"5346e34f","setSlasher(address)":"aabc2496","slashableBalanceOf(address)":"c31e8dd7","slasher()":"b1344271","staticDelegateCall(address,bytes)":"9f86fd85","supportsInterface(bytes4)":"01ffc9a7","symbol()":"95d89b41","totalStake()":"8b0e9f3f","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd","transferOwnership(address)":"f2fde38b","version()":"54fd4d50","withdraw(address,uint256)":"f3fef3a3","withdrawalShares(uint256)":"afba70ad","withdrawalSharesOf(uint256,address)":"a3b54172","withdrawals(uint256)":"5cc07076","withdrawalsOf(uint256,address)":"f5e7ee0f"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegatorFactory\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"slasherFactory\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"vaultFactory\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"AccessControlBadConfirmation\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"neededRole\",\"type\":\"bytes32\"}],\"name\":\"AccessControlUnauthorizedAccount\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"AddressEmptyCode\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"AddressInsufficientBalance\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AlreadyClaimed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AlreadyInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AlreadySet\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CheckpointUnorderedInsertion\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"DelegatorAlreadyInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"DepositLimitReached\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"allowance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientAllowance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSpender\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedInnerCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientClaim\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientDeposit\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientRedemption\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientWithdrawal\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidAccount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidCaptureEpoch\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidClaimer\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidCollateral\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidDelegator\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidEpoch\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidEpochDuration\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidLengthEpochs\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidOnBehalfOf\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidRecipient\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidSlasher\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidTimestamp\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MathOverflowedMulDiv\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MissingRoles\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NoPreviousEpoch\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotDelegator\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotFactory\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotSlasher\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotWhitelistedDepositor\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ReentrancyGuardReentrantCall\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"bits\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"SafeCastOverflowedUintDowncast\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"SafeERC20FailedOperation\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SlasherAlreadyInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TooMuchRedeem\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TooMuchWithdraw\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"claimer\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"epoch\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Claim\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"claimer\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"epochs\",\"type\":\"uint256[]\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"ClaimBatch\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"depositor\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"onBehalfOf\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"}],\"name\":\"Deposit\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint48\",\"name\":\"captureTimestamp\",\"type\":\"uint48\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"slashedAmount\",\"type\":\"uint256\"}],\"name\":\"OnSlash\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"previousAdminRole\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"newAdminRole\",\"type\":\"bytes32\"}],\"name\":\"RoleAdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleRevoked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"}],\"name\":\"SetDelegator\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"limit\",\"type\":\"uint256\"}],\"name\":\"SetDepositLimit\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"status\",\"type\":\"bool\"}],\"name\":\"SetDepositWhitelist\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"status\",\"type\":\"bool\"}],\"name\":\"SetDepositorWhitelistStatus\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"status\",\"type\":\"bool\"}],\"name\":\"SetIsDepositLimit\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"slasher\",\"type\":\"address\"}],\"name\":\"SetSlasher\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"withdrawer\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"claimer\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"burnedShares\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"mintedShares\",\"type\":\"uint256\"}],\"name\":\"Withdraw\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DEFAULT_ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"DELEGATOR_FACTORY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"DEPOSITOR_WHITELIST_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"DEPOSIT_LIMIT_SET_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"DEPOSIT_WHITELIST_SET_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"FACTORY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"IS_DEPOSIT_LIMIT_SET_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"SLASHER_FACTORY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"activeBalanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hints\",\"type\":\"bytes\"}],\"name\":\"activeBalanceOfAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"activeShares\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hint\",\"type\":\"bytes\"}],\"name\":\"activeSharesAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"activeSharesOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hint\",\"type\":\"bytes\"}],\"name\":\"activeSharesOfAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"activeStake\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hint\",\"type\":\"bytes\"}],\"name\":\"activeStakeAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"burner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"epoch\",\"type\":\"uint256\"}],\"name\":\"claim\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256[]\",\"name\":\"epochs\",\"type\":\"uint256[]\"}],\"name\":\"claimBatch\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"collateral\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"currentEpoch\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"currentEpochStart\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"delegator\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"onBehalfOf\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"deposit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"depositedAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"mintedShares\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"depositLimit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"depositWhitelist\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"}],\"name\":\"epochAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"epochDuration\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"epochDurationInit\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleAdmin\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"grantRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"initialVersion\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"owner_\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isDelegatorInitialized\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isDepositLimit\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"isDepositorWhitelisted\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"value\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isInitialized\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isSlasherInitialized\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"epoch\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"isWithdrawalsClaimed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"value\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"newVersion\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"migrate\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"nextEpochStart\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint48\",\"name\":\"captureTimestamp\",\"type\":\"uint48\"}],\"name\":\"onSlash\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"slashedAmount\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"previousEpochStart\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"claimer\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"}],\"name\":\"redeem\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"withdrawnAssets\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"mintedShares\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"callerConfirmation\",\"type\":\"address\"}],\"name\":\"renounceRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegator_\",\"type\":\"address\"}],\"name\":\"setDelegator\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"limit\",\"type\":\"uint256\"}],\"name\":\"setDepositLimit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"status\",\"type\":\"bool\"}],\"name\":\"setDepositWhitelist\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"status\",\"type\":\"bool\"}],\"name\":\"setDepositorWhitelistStatus\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"status\",\"type\":\"bool\"}],\"name\":\"setIsDepositLimit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"slasher_\",\"type\":\"address\"}],\"name\":\"setSlasher\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"slashableBalanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"slasher\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"staticDelegateCall\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalStake\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"version\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"claimer\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"withdraw\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"burnedShares\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"mintedShares\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"epoch\",\"type\":\"uint256\"}],\"name\":\"withdrawalShares\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"epoch\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"withdrawalSharesOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"epoch\",\"type\":\"uint256\"}],\"name\":\"withdrawals\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"epoch\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"withdrawalsOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"AccessControlBadConfirmation()\":[{\"details\":\"The caller of a function is not the expected one. NOTE: Don't confuse with {AccessControlUnauthorizedAccount}.\"}],\"AccessControlUnauthorizedAccount(address,bytes32)\":[{\"details\":\"The `account` is missing a role.\"}],\"AddressEmptyCode(address)\":[{\"details\":\"There's no code at `target` (it is not a contract).\"}],\"AddressInsufficientBalance(address)\":[{\"details\":\"The ETH balance of the account is not enough to perform the operation.\"}],\"CheckpointUnorderedInsertion()\":[{\"details\":\"A value was attempted to be inserted on a past checkpoint.\"}],\"ERC20InsufficientAllowance(address,uint256,uint256)\":[{\"details\":\"Indicates a failure with the `spender`\\u2019s `allowance`. Used in transfers.\",\"params\":{\"allowance\":\"Amount of tokens a `spender` is allowed to operate with.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"spender\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC20InsufficientBalance(address,uint256,uint256)\":[{\"details\":\"Indicates an error related to the current `balance` of a `sender`. Used in transfers.\",\"params\":{\"balance\":\"Current balance for the interacting account.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC20InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC20InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC20InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC20InvalidSpender(address)\":[{\"details\":\"Indicates a failure with the `spender` to be approved. Used in approvals.\",\"params\":{\"spender\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"FailedInnerCall()\":[{\"details\":\"A call to an address target failed. The target may have reverted.\"}],\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"MathOverflowedMulDiv()\":[{\"details\":\"Muldiv operation overflow.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}],\"ReentrancyGuardReentrantCall()\":[{\"details\":\"Unauthorized reentrant call.\"}],\"SafeCastOverflowedUintDowncast(uint8,uint256)\":[{\"details\":\"Value doesn't fit in an uint of `bits` size.\"}],\"SafeERC20FailedOperation(address)\":[{\"details\":\"An operation with an ERC20 token failed.\"}]},\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when the allowance of a `spender` for an `owner` is set by a call to {approve}. `value` is the new allowance.\"},\"Claim(address,address,uint256,uint256)\":{\"params\":{\"amount\":\"amount of the collateral claimed\",\"claimer\":\"account that claimed\",\"epoch\":\"epoch the collateral was claimed for\",\"recipient\":\"account that received the collateral\"}},\"ClaimBatch(address,address,uint256[],uint256)\":{\"params\":{\"amount\":\"amount of the collateral claimed\",\"claimer\":\"account that claimed\",\"epochs\":\"epochs the collateral was claimed for\",\"recipient\":\"account that received the collateral\"}},\"Deposit(address,address,uint256,uint256)\":{\"params\":{\"amount\":\"amount of the collateral deposited\",\"depositor\":\"account that made the deposit\",\"onBehalfOf\":\"account the deposit was made on behalf of\",\"shares\":\"amount of the active shares minted\"}},\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"OnSlash(uint256,uint48,uint256)\":{\"params\":{\"amount\":\"amount of the collateral to slash\",\"captureTimestamp\":\"time point when the stake was captured\",\"slashedAmount\":\"real amount of the collateral slashed\"}},\"RoleAdminChanged(bytes32,bytes32,bytes32)\":{\"details\":\"Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole` `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite {RoleAdminChanged} not being emitted signaling this.\"},\"RoleGranted(bytes32,address,address)\":{\"details\":\"Emitted when `account` is granted `role`. `sender` is the account that originated the contract call, an admin role bearer except when using {AccessControl-_setupRole}.\"},\"RoleRevoked(bytes32,address,address)\":{\"details\":\"Emitted when `account` is revoked `role`. `sender` is the account that originated the contract call: - if using `revokeRole`, it is the admin role bearer - if using `renounceRole`, it is the role bearer (i.e. `account`)\"},\"SetDelegator(address)\":{\"details\":\"Can be set only once.\",\"params\":{\"delegator\":\"vault's delegator to delegate the stake to networks and operators\"}},\"SetDepositLimit(uint256)\":{\"params\":{\"limit\":\"deposit limit (maximum amount of the collateral that can be in the vault simultaneously)\"}},\"SetDepositWhitelist(bool)\":{\"params\":{\"status\":\"if enabled deposit whitelist\"}},\"SetDepositorWhitelistStatus(address,bool)\":{\"params\":{\"account\":\"account for which the whitelist status is set\",\"status\":\"if whitelisted the account\"}},\"SetIsDepositLimit(bool)\":{\"params\":{\"status\":\"if enabled deposit limit\"}},\"SetSlasher(address)\":{\"details\":\"Can be set only once.\",\"params\":{\"slasher\":\"vault's slasher to provide a slashing mechanism to networks\"}},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `value` tokens are moved from one account (`from`) to another (`to`). Note that `value` may be zero.\"},\"Withdraw(address,address,uint256,uint256,uint256)\":{\"params\":{\"amount\":\"amount of the collateral withdrawn\",\"burnedShares\":\"amount of the active shares burned\",\"claimer\":\"account that needs to claim the withdrawal\",\"mintedShares\":\"amount of the epoch withdrawal shares minted\",\"withdrawer\":\"account that made the withdrawal\"}}},\"kind\":\"dev\",\"methods\":{\"activeBalanceOf(address)\":{\"params\":{\"account\":\"account to get the active balance for\"},\"returns\":{\"_0\":\"active balance for the account\"}},\"activeBalanceOfAt(address,uint48,bytes)\":{\"params\":{\"account\":\"account to get the active balance for\",\"hints\":\"hints for checkpoints' indexes\",\"timestamp\":\"time point to get the active balance for the account at\"},\"returns\":{\"_0\":\"active balance for the account at the timestamp\"}},\"activeShares()\":{\"returns\":{\"_0\":\"total number of active shares\"}},\"activeSharesAt(uint48,bytes)\":{\"params\":{\"hint\":\"hint for the checkpoint index\",\"timestamp\":\"time point to get the total number of active shares at\"},\"returns\":{\"_0\":\"total number of active shares at the timestamp\"}},\"activeSharesOf(address)\":{\"params\":{\"account\":\"account to get the number of active shares for\"},\"returns\":{\"_0\":\"number of active shares for the account\"}},\"activeSharesOfAt(address,uint48,bytes)\":{\"params\":{\"account\":\"account to get the number of active shares for\",\"hint\":\"hint for the checkpoint index\",\"timestamp\":\"time point to get the number of active shares for the account at\"},\"returns\":{\"_0\":\"number of active shares for the account at the timestamp\"}},\"activeStake()\":{\"returns\":{\"_0\":\"total amount of active stake\"}},\"activeStakeAt(uint48,bytes)\":{\"params\":{\"hint\":\"hint for the checkpoint index\",\"timestamp\":\"time point to get the total active stake at\"},\"returns\":{\"_0\":\"total amount of active stake at the timestamp\"}},\"allowance(address,address)\":{\"details\":\"See {IERC20-allowance}.\"},\"approve(address,uint256)\":{\"details\":\"See {IERC20-approve}. NOTE: If `value` is the maximum `uint256`, the allowance is not updated on `transferFrom`. This is semantically equivalent to an infinite approval. Requirements: - `spender` cannot be the zero address.\"},\"balanceOf(address)\":{\"details\":\"See {IERC20-balanceOf}.\"},\"claim(address,uint256)\":{\"params\":{\"epoch\":\"epoch to claim the collateral for\",\"recipient\":\"account that receives the collateral\"},\"returns\":{\"amount\":\"amount of the collateral claimed\"}},\"claimBatch(address,uint256[])\":{\"params\":{\"epochs\":\"epochs to claim the collateral for\",\"recipient\":\"account that receives the collateral\"},\"returns\":{\"amount\":\"amount of the collateral claimed\"}},\"currentEpoch()\":{\"returns\":{\"_0\":\"current epoch\"}},\"currentEpochStart()\":{\"returns\":{\"_0\":\"start of the current epoch\"}},\"decimals()\":{\"details\":\"Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5.05` (`505 / 10 ** 2`). Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei. This is the default value returned by this function, unless it's overridden. NOTE: This information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including {IERC20-balanceOf} and {IERC20-transfer}.\"},\"deposit(address,uint256)\":{\"params\":{\"amount\":\"amount of the collateral to deposit\",\"onBehalfOf\":\"account the deposit is made on behalf of\"},\"returns\":{\"depositedAmount\":\"real amount of the collateral deposited\",\"mintedShares\":\"amount of the active shares minted\"}},\"epochAt(uint48)\":{\"details\":\"Reverts if the timestamp is less than the start of the epoch 0.\",\"params\":{\"timestamp\":\"time point to get the epoch at\"},\"returns\":{\"_0\":\"epoch at the timestamp\"}},\"getRoleAdmin(bytes32)\":{\"details\":\"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}.\"},\"grantRole(bytes32,address)\":{\"details\":\"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event.\"},\"hasRole(bytes32,address)\":{\"details\":\"Returns `true` if `account` has been granted `role`.\"},\"initialize(uint64,address,bytes)\":{\"params\":{\"data\":\"some data to use\",\"initialVersion\":\"initial version of the entity\",\"owner\":\"initial owner of the entity\"}},\"isInitialized()\":{\"returns\":{\"_0\":\"if the vault is fully initialized\"}},\"migrate(uint64,bytes)\":{\"params\":{\"data\":\"some data to use\",\"newVersion\":\"new version of the entity\"}},\"name()\":{\"details\":\"Returns the name of the token.\"},\"nextEpochStart()\":{\"returns\":{\"_0\":\"start of the next epoch\"}},\"onSlash(uint256,uint48)\":{\"details\":\"Only the slasher can call this function.\",\"params\":{\"amount\":\"amount to slash\",\"captureTimestamp\":\"time point when the stake was captured\"},\"returns\":{\"slashedAmount\":\"real amount of the collateral slashed\"}},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"previousEpochStart()\":{\"details\":\"Reverts if the current epoch is 0.\",\"returns\":{\"_0\":\"start of the previous epoch\"}},\"redeem(address,uint256)\":{\"params\":{\"claimer\":\"account that needs to claim the withdrawal\",\"shares\":\"amount of the active shares to redeem\"},\"returns\":{\"mintedShares\":\"amount of the epoch withdrawal shares minted\",\"withdrawnAssets\":\"amount of the collateral withdrawn\"}},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"renounceRole(bytes32,address)\":{\"details\":\"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `callerConfirmation`. May emit a {RoleRevoked} event.\"},\"revokeRole(bytes32,address)\":{\"details\":\"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event.\"},\"setDepositLimit(uint256)\":{\"details\":\"Only a DEPOSIT_LIMIT_SET_ROLE holder can call this function.\",\"params\":{\"limit\":\"deposit limit (maximum amount of the collateral that can be in the vault simultaneously)\"}},\"setDepositWhitelist(bool)\":{\"details\":\"Only a DEPOSIT_WHITELIST_SET_ROLE holder can call this function.\",\"params\":{\"status\":\"if enabling deposit whitelist\"}},\"setDepositorWhitelistStatus(address,bool)\":{\"details\":\"Only a DEPOSITOR_WHITELIST_ROLE holder can call this function.\",\"params\":{\"account\":\"account for which the whitelist status is set\",\"status\":\"if whitelisting the account\"}},\"setIsDepositLimit(bool)\":{\"details\":\"Only a IS_DEPOSIT_LIMIT_SET_ROLE holder can call this function.\",\"params\":{\"status\":\"if enabling deposit limit\"}},\"slashableBalanceOf(address)\":{\"params\":{\"account\":\"account to get the slashable collateral for\"},\"returns\":{\"_0\":\"total amount of the account's slashable collateral\"}},\"staticDelegateCall(address,bytes)\":{\"details\":\"It allows to use this contract's storage on-chain.\",\"params\":{\"data\":\"data to make a delegatecall with\",\"target\":\"address of the contract to make a delegatecall to\"}},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"},\"symbol()\":{\"details\":\"Returns the symbol of the token, usually a shorter version of the name.\"},\"totalStake()\":{\"returns\":{\"_0\":\"total amount of the slashable collateral\"}},\"totalSupply()\":{\"details\":\"See {IERC20-totalSupply}.\"},\"transfer(address,uint256)\":{\"details\":\"See {IERC20-transfer}. Requirements: - `to` cannot be the zero address. - the caller must have a balance of at least `value`.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC20-transferFrom}. Emits an {Approval} event indicating the updated allowance. This is not required by the EIP. See the note at the beginning of {ERC20}. NOTE: Does not update the allowance if the current allowance is the maximum `uint256`. Requirements: - `from` and `to` cannot be the zero address. - `from` must have a balance of at least `value`. - the caller must have allowance for ``from``'s tokens of at least `value`.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"},\"version()\":{\"details\":\"Starts from 1.\",\"returns\":{\"_0\":\"version of the entity\"}},\"withdraw(address,uint256)\":{\"params\":{\"amount\":\"amount of the collateral to withdraw\",\"claimer\":\"account that needs to claim the withdrawal\"},\"returns\":{\"burnedShares\":\"amount of the active shares burned\",\"mintedShares\":\"amount of the epoch withdrawal shares minted\"}},\"withdrawalsOf(uint256,address)\":{\"params\":{\"account\":\"account to get the withdrawals for\",\"epoch\":\"epoch to get the withdrawals for the account at\"},\"returns\":{\"_0\":\"withdrawals for the account at the epoch\"}}},\"version\":1},\"userdoc\":{\"events\":{\"Claim(address,address,uint256,uint256)\":{\"notice\":\"Emitted when a claim is made.\"},\"ClaimBatch(address,address,uint256[],uint256)\":{\"notice\":\"Emitted when a batch claim is made.\"},\"Deposit(address,address,uint256,uint256)\":{\"notice\":\"Emitted when a deposit is made.\"},\"OnSlash(uint256,uint48,uint256)\":{\"notice\":\"Emitted when a slash happens.\"},\"SetDelegator(address)\":{\"notice\":\"Emitted when a delegator is set.\"},\"SetDepositLimit(uint256)\":{\"notice\":\"Emitted when a deposit limit is set.\"},\"SetDepositWhitelist(bool)\":{\"notice\":\"Emitted when a deposit whitelist status is enabled/disabled.\"},\"SetDepositorWhitelistStatus(address,bool)\":{\"notice\":\"Emitted when a depositor whitelist status is set.\"},\"SetIsDepositLimit(bool)\":{\"notice\":\"Emitted when a deposit limit status is enabled/disabled.\"},\"SetSlasher(address)\":{\"notice\":\"Emitted when a slasher is set.\"},\"Withdraw(address,address,uint256,uint256,uint256)\":{\"notice\":\"Emitted when a withdrawal is made.\"}},\"kind\":\"user\",\"methods\":{\"DELEGATOR_FACTORY()\":{\"notice\":\"Get the delegator factory's address.\"},\"DEPOSITOR_WHITELIST_ROLE()\":{\"notice\":\"Get a depositor whitelist status setter's role.\"},\"DEPOSIT_LIMIT_SET_ROLE()\":{\"notice\":\"Get a deposit limit setter's role.\"},\"DEPOSIT_WHITELIST_SET_ROLE()\":{\"notice\":\"Get a deposit whitelist enabler/disabler's role.\"},\"FACTORY()\":{\"notice\":\"Get the factory's address.\"},\"IS_DEPOSIT_LIMIT_SET_ROLE()\":{\"notice\":\"Get a deposit limit enabler/disabler's role.\"},\"SLASHER_FACTORY()\":{\"notice\":\"Get the slasher factory's address.\"},\"activeBalanceOf(address)\":{\"notice\":\"Get an active balance for a particular account.\"},\"activeBalanceOfAt(address,uint48,bytes)\":{\"notice\":\"Get an active balance for a particular account at a given timestamp using hints.\"},\"activeShares()\":{\"notice\":\"Get a total number of active shares in the vault.\"},\"activeSharesAt(uint48,bytes)\":{\"notice\":\"Get a total number of active shares in the vault at a given timestamp using a hint.\"},\"activeSharesOf(address)\":{\"notice\":\"Get a number of active shares for a particular account.\"},\"activeSharesOfAt(address,uint48,bytes)\":{\"notice\":\"Get a total number of active shares for a particular account at a given timestamp using a hint.\"},\"activeStake()\":{\"notice\":\"Get a total amount of active stake in the vault.\"},\"activeStakeAt(uint48,bytes)\":{\"notice\":\"Get a total amount of active stake in the vault at a given timestamp using a hint.\"},\"burner()\":{\"notice\":\"Get a burner to issue debt to (e.g., 0xdEaD or some unwrapper contract).\"},\"claim(address,uint256)\":{\"notice\":\"Claim collateral from the vault.\"},\"claimBatch(address,uint256[])\":{\"notice\":\"Claim collateral from the vault for multiple epochs.\"},\"collateral()\":{\"notice\":\"Get a vault collateral.\"},\"currentEpoch()\":{\"notice\":\"Get a current vault epoch.\"},\"currentEpochStart()\":{\"notice\":\"Get a start of the current vault epoch.\"},\"delegator()\":{\"notice\":\"Get a delegator (it delegates the vault's stake to networks and operators).\"},\"deposit(address,uint256)\":{\"notice\":\"Deposit collateral into the vault.\"},\"depositLimit()\":{\"notice\":\"Get a deposit limit (maximum amount of the active stake that can be in the vault simultaneously).\"},\"depositWhitelist()\":{\"notice\":\"Get if the deposit whitelist is enabled.\"},\"epochAt(uint48)\":{\"notice\":\"Get an epoch at a given timestamp.\"},\"epochDuration()\":{\"notice\":\"Get a duration of the vault epoch.\"},\"epochDurationInit()\":{\"notice\":\"Get a time point of the epoch duration set.\"},\"initialize(uint64,address,bytes)\":{\"notice\":\"Initialize this entity contract by using a given data and setting a particular version and owner.\"},\"isDelegatorInitialized()\":{\"notice\":\"Get if the delegator is initialized.\"},\"isDepositLimit()\":{\"notice\":\"Get if the deposit limit is set.\"},\"isDepositorWhitelisted(address)\":{\"notice\":\"Get if a given account is whitelisted as a depositor.\"},\"isInitialized()\":{\"notice\":\"Check if the vault is fully initialized (a delegator and a slasher are set).\"},\"isSlasherInitialized()\":{\"notice\":\"Get if the slasher is initialized.\"},\"isWithdrawalsClaimed(uint256,address)\":{\"notice\":\"Get if the withdrawals are claimed for a particular account at a given epoch.\"},\"migrate(uint64,bytes)\":{\"notice\":\"Migrate this entity to a particular newer version using a given data.\"},\"nextEpochStart()\":{\"notice\":\"Get a start of the next vault epoch.\"},\"onSlash(uint256,uint48)\":{\"notice\":\"Slash callback for burning collateral.\"},\"previousEpochStart()\":{\"notice\":\"Get a start of the previous vault epoch.\"},\"redeem(address,uint256)\":{\"notice\":\"Redeem collateral from the vault (it will be claimable after the next epoch).\"},\"setDepositLimit(uint256)\":{\"notice\":\"Set a deposit limit.\"},\"setDepositWhitelist(bool)\":{\"notice\":\"Enable/disable deposit whitelist.\"},\"setDepositorWhitelistStatus(address,bool)\":{\"notice\":\"Set a depositor whitelist status.\"},\"setIsDepositLimit(bool)\":{\"notice\":\"Enable/disable deposit limit.\"},\"slashableBalanceOf(address)\":{\"notice\":\"Get a total amount of the collateral that can be slashed for a given account.\"},\"slasher()\":{\"notice\":\"Get a slasher (it provides networks a slashing mechanism).\"},\"staticDelegateCall(address,bytes)\":{\"notice\":\"Make a delegatecall from this contract to a given target contract with a particular data (always reverts with a return data).\"},\"totalStake()\":{\"notice\":\"Get a total amount of the collateral that can be slashed.\"},\"version()\":{\"notice\":\"Get the entity's version.\"},\"withdraw(address,uint256)\":{\"notice\":\"Withdraw collateral from the vault (it will be claimable after the next epoch).\"},\"withdrawalShares(uint256)\":{\"notice\":\"Get a total number of withdrawal shares at a given epoch.\"},\"withdrawalSharesOf(uint256,address)\":{\"notice\":\"Get a number of withdrawal shares for a particular account at a given epoch (zero if claimed).\"},\"withdrawals(uint256)\":{\"notice\":\"Get a total amount of the withdrawals at a given epoch.\"},\"withdrawalsOf(uint256,address)\":{\"notice\":\"Get withdrawals for a particular account at a given epoch (zero if claimed).\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/contracts/vault/VaultTokenized.sol\":\"VaultTokenized\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol\":{\"keccak256\":\"0x6662ec4e5cefca03eeadd073e9469df8d2944bb2ee8ec8f7622c2c46aab5f225\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4d8544c6f8daa4d1bc215c6a72fe0acdb748664a105b0e5efc19295667521d45\",\"dweb:/ipfs/QmdGWqdnXT8S3RgCR6aV8XHZrsybieMQLLnug1NtpSjEXN\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0xc163fcf9bb10138631a9ba5564df1fa25db9adff73bd9ee868a8ae1858fe093a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9706d43a0124053d9880f6e31a59f31bc0a6a3dc1acd66ce0a16e1111658c5f6\",\"dweb:/ipfs/QmUFmfowzkRwGtDu36cXV9SPTBHJ3n7dG9xQiK5B28jTf2\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609\",\"dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/ERC20Upgradeable.sol\":{\"keccak256\":\"0x9a1766b1921bf91b3e61eb53c7a6e70725254befd4bdcbbcd3af40bd9f66856f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://29bf2fa41a172086a665c9738377b93655aa4b1ffda9fe839c8bdf646f185040\",\"dweb:/ipfs/QmeB21qDuo8WPQSrqXJbQmWHKsdeocGNSUWLhCwniVejrt\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9\",\"dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardUpgradeable.sol\":{\"keccak256\":\"0xb44e086e941292cdc7f440de51478493894ef0b1aeccb0c4047445919f667f74\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://942dad22fbdc1669f025540ba63aa3ccfad5f8458fc5d4525b31ebf272e7af45\",\"dweb:/ipfs/Qmdo4X2M82aM3AMoW2kf2jhYkSCyC4T1pHNd6obdsDFnAB\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol\":{\"keccak256\":\"0xdaba3f7c42c55b2896353f32bd27d4d5f8bae741b3b05d4c53f67abc4dc47ce8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1fa2e61141c602510bcd2cd936ed9561922ac8772a9b9c9a9db091a74e354a45\",\"dweb:/ipfs/QmcHQDDoEBwJmwUbzoVkytvJsBx3KVHYFFnDkvRGWh9Wmh\"]},\"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0xb6b36edd6a2999fd243ff226d6cbf84bd71af2432bbd0dfe19392996a1d9cb41\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1fd2f35495652e57e3f99bc6c510bc5f7dd398a176ea2e72d8ed730aebc6ca26\",\"dweb:/ipfs/QmTQV6X4gkikTib49cho5iDX3JvSQbdsoEChoDwrk3CbbH\"]},\"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x60c65f701957fdd6faea1acb0bb45825791d473693ed9ecb34726fdfaa849dd7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea290300e0efc4d901244949dc4d877fd46e6c5e43dc2b26620e8efab3ab803f\",\"dweb:/ipfs/QmcLLJppxKeJWqHxE2CUkcfhuRTgHSn8J4kijcLa5MYhSt\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c\",\"dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0xaa761817f6cd7892fcf158b3c776b34551cde36f48ff9703d53898bc45a94ea2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ad7c8d4d08938c8dfc43d75a148863fb324b80cf53e0a36f7e5a4ac29008850\",\"dweb:/ipfs/QmcrhfPgVNf5mkdhQvy1pMv51TFokD3Y4Wa5WZhFqVh8UV\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0x6008dabfe393240d73d7dd7688033f72740d570aa422254d29a7dce8568f3aff\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f5196ec75139918c6c7bb4251b36395e668f1fa6d206beba7e7520e74913940d\",\"dweb:/ipfs/QmSyqjksXxmm2mCG6qRd1yuwLykypkSVBbnBnGqJRcuJMi\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x37bb49513c49c87c4642a891b13b63571bc87013dde806617aa1efb54605f386\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b3036b3a83b7c48f96641f2a9002b9f2dcb6a5958dd670894ada21ae8229b3d0\",\"dweb:/ipfs/QmUNfSBdoVtjhETaUJCYcaC7pTMgbhht926tJ2uXJbiVd3\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0xaf28a975a78550e45f65e559a3ad6a5ad43b9b8a37366999abd1b7084eb70721\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b7bd24e224f67f65bfadf85dc2929fa965456bb2415478bd0125471b5ce35245\",\"dweb:/ipfs/QmRaydGr8BTHs1kvaZfsNU69pKzUAGFrvABn1KiRSbE51y\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875\",\"dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0xe19a4d5f31d2861e7344e8e535e2feafb913d806d3e2b5fe7782741a2a7094fe\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4aed79c0fa6f0546ed02f2f683e8f77f0fd2ed7eb34d8bbf3d373c9a6d95b13c\",\"dweb:/ipfs/QmWqVz6UAVqmnWU5pqYPt1o6iDEZyPaBraAA3rKfTTSfYj\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/Checkpoints.sol\":{\"keccak256\":\"0xbdc5e074d7dd6678f67e92b1a51a20226801a407b0e1af3da367c5d1ff4519ad\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a36cca6b22fff3db16fc789ff6c60eea71d4b156065d4d0c83a0bc5e91a77a8b\",\"dweb:/ipfs/QmYN3exd5AemxjBrN8XMB1p5LbbE16uC3sjbYjwi8AjcGR\"]},\"lib/openzeppelin-contracts/contracts/utils/types/Time.sol\":{\"keccak256\":\"0xc7755af115020049e4140f224f9ee88d7e1799ffb0646f37bf0df24bf6213f58\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7f09bf94d5274334ec021f61a04659db303f31e60460e14b709c9bf187740111\",\"dweb:/ipfs/QmNvgomZYUwFAt4cZbPWAiTeSZQreGehY9BK5xyVJsUttb\"]},\"src/contracts/common/MigratableEntity.sol\":{\"keccak256\":\"0x2d736f4dacd5d7e7697503bc426c78b8250fe1694ca157965ec178da6807de58\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://f1237acf96b4b9f9b69156e068eddd726a6e15bd8e87a18dc999cd4ba4da069c\",\"dweb:/ipfs/QmS6M8fiFFSeuJ4ZKKq1z8W7w4ybeHQSy5TLASGoc1LVic\"]},\"src/contracts/common/StaticDelegateCallable.sol\":{\"keccak256\":\"0x350029aa8955eacaffffaeb58babc5c98e80ebc5c5db388ed17ee6465f4a9d90\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://eb392a8ee9050e0af606897df63e3404e3829e8b688b580663892f9664195764\",\"dweb:/ipfs/QmaXC8jqV8UrrAFkzXTEv2fJF56sy33HhLxAzaRZmUxuXD\"]},\"src/contracts/libraries/Checkpoints.sol\":{\"keccak256\":\"0xba90097c8bfe0a975499428b5f8ac5569483c7d92ccc28c12d70de416aae040c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://12f5d93ca94cd06d3147db68993165a58e17903ed53682560de61f3085ad4609\",\"dweb:/ipfs/QmePiuAqvXprMLmFZkGZeGjvGPAvsEDHfCDv7BoQhXu9xE\"]},\"src/contracts/libraries/ERC4626Math.sol\":{\"keccak256\":\"0x8441160513c1cbeb1c3b9ee077bcc7e7ce20006b52a77c8dd39ff0ef89699939\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://943f8cc3e26ddf649f465f40c909819f5c864717c4baa339e9e403b9374a4653\",\"dweb:/ipfs/QmXPxi1sUDsrGprZdUgCzoPEosaZMv9ZhygWQ1vAi1phAB\"]},\"src/contracts/vault/Vault.sol\":{\"keccak256\":\"0x2ceff6ed3298c4cad144c99fcc79b51cb9397d6ebef00285b915848b476f8c2e\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://11f2fb3581854f3ab6e82e8d4935d9eb510c903a13c3f022346c2956a58f5307\",\"dweb:/ipfs/QmdUnoXoyYoG9SGWyQZCFyLDRUUX3eXyXetkRvw6jxqqBz\"]},\"src/contracts/vault/VaultStorage.sol\":{\"keccak256\":\"0x57db25b127d77ea3472de53e3a4af3354399655b9268638b99ca5925fa364a56\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://aa763d9a6ec508ae3abfb8228b72b9fd9525279e5135d4962e79ff059feb1173\",\"dweb:/ipfs/QmcbDR6E9wyEpu6V2FkEC4hnWy47zXA9LSKJde6zSGd33Q\"]},\"src/contracts/vault/VaultTokenized.sol\":{\"keccak256\":\"0xa9475a46a3e32b35e48bc37fdaf08e1a586fb7c9667ac5e014b716a08873c46d\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://0a292a4f35bc43ce7174b36e2d016bc44d6737e94b41e48cb5dd1bb1e4821e48\",\"dweb:/ipfs/QmduHZe2REPnygiWvQRV82yD4tYHdwX33FkYRFm1UZoXBA\"]},\"src/interfaces/common/IEntity.sol\":{\"keccak256\":\"0x8ef4b63d6da63489778ccd5f8d13ebdd527dd4b62730b2c616df5af7474d2d21\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a8d69576a9219d85c50816a18ad53a4d53cfcb27ed38b8cccc808dc2734b71b\",\"dweb:/ipfs/QmYVN3P4Q4REvBWJ97TbAcaxm3uyB2anV6NSGa6ZtSwcEv\"]},\"src/interfaces/common/IMigratableEntity.sol\":{\"keccak256\":\"0x8f5f2809f3afbe8ebfbb365dd7b57b4dd3b6f9943a6187eaf648d45895b8e3c4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ffe640537d539e7a4fde70d30d3e4c57f4ba9c2c25c450cea713aae38e8fd5c\",\"dweb:/ipfs/QmSUTGzvdcn1R1KB7tLThMRtESsfPbeXDhhhKWGtntzBds\"]},\"src/interfaces/common/IRegistry.sol\":{\"keccak256\":\"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014\",\"dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK\"]},\"src/interfaces/common/IStaticDelegateCallable.sol\":{\"keccak256\":\"0xa335d4e81b9071b7de66ef92b43ff20671d86516eb1be46fef29a3483cd3f5d5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d464b9db863c14c05547d2b23352f2e9b7b784799cf09f6bbc4906a2a74e3516\",\"dweb:/ipfs/QmUVWzFvJz7eEbDQKiFTTzwi7TEbjcs3VmwdM4kuptAKvi\"]},\"src/interfaces/delegator/IBaseDelegator.sol\":{\"keccak256\":\"0x96bb312f032e17accce3f8f80936d99468029d6b37c9ca74acdb4b026a0148ee\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2a66dcb5b7d1a6ef6a363431ea98ebd78bc4fdd3d7a134d9b542dc66e7d025c2\",\"dweb:/ipfs/QmRhTPLd2ZAyRHmJUFUcWKs9b3if49QY17LYZuRqWmghw8\"]},\"src/interfaces/slasher/IBaseSlasher.sol\":{\"keccak256\":\"0x7c82528b445659c313ab77335c407b0b6efe5e79027187bb287f7bc74202b404\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0274c90aa5df1aa6bb470a6aab53992fb14fd7e5472c9430416505b29647d9cf\",\"dweb:/ipfs/QmckbmJLDetPemVzCnnGcKYWAZV2BRFXGDsjiaec8jkHxx\"]},\"src/interfaces/vault/IVault.sol\":{\"keccak256\":\"0xffee01d383cd4e1a5530c614bf4360c1ef070c288abec9da1eb531b51bc07235\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://04f0046cac285d8ec44ebbb1f79dc94fab4495767190cad8364fbc1fafaadfb9\",\"dweb:/ipfs/QmUawAunwzXfCyShWfhKeThAgKtqe51hmrxvrXvM772M2R\"]},\"src/interfaces/vault/IVaultStorage.sol\":{\"keccak256\":\"0x592626f13754194f83047135de19229c49390bd59e34659b1bb38be71d973a22\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://06a6a9dfddd05e580b32bebe2cff4f63ba26a653180676d58225dd30d9c89d3e\",\"dweb:/ipfs/QmdgzBeY6Sxo8mGtyBxtv1tM1c2kU6J6zjeRd7vuXm4DU6\"]},\"src/interfaces/vault/IVaultTokenized.sol\":{\"keccak256\":\"0xb723560b49c30b38130634388a0550c9e07596f92a58edbfa2415e690024e0c4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://dc9dde973a0bbf0adbc305462a796fa3b2e5be9daa1984e4f3e4f48e3c254f39\",\"dweb:/ipfs/QmQydZsr7ESw7ZSe9mqaxZ3dycvru8ZFVwrL9pmVnpyd7c\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.25+commit.b61c2a91"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"delegatorFactory","type":"address"},{"internalType":"address","name":"slasherFactory","type":"address"},{"internalType":"address","name":"vaultFactory","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"AccessControlBadConfirmation"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bytes32","name":"neededRole","type":"bytes32"}],"type":"error","name":"AccessControlUnauthorizedAccount"},{"inputs":[{"internalType":"address","name":"target","type":"address"}],"type":"error","name":"AddressEmptyCode"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"AddressInsufficientBalance"},{"inputs":[],"type":"error","name":"AlreadyClaimed"},{"inputs":[],"type":"error","name":"AlreadyInitialized"},{"inputs":[],"type":"error","name":"AlreadySet"},{"inputs":[],"type":"error","name":"CheckpointUnorderedInsertion"},{"inputs":[],"type":"error","name":"DelegatorAlreadyInitialized"},{"inputs":[],"type":"error","name":"DepositLimitReached"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"allowance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"type":"error","name":"ERC20InsufficientAllowance"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"type":"error","name":"ERC20InsufficientBalance"},{"inputs":[{"internalType":"address","name":"approver","type":"address"}],"type":"error","name":"ERC20InvalidApprover"},{"inputs":[{"internalType":"address","name":"receiver","type":"address"}],"type":"error","name":"ERC20InvalidReceiver"},{"inputs":[{"internalType":"address","name":"sender","type":"address"}],"type":"error","name":"ERC20InvalidSender"},{"inputs":[{"internalType":"address","name":"spender","type":"address"}],"type":"error","name":"ERC20InvalidSpender"},{"inputs":[],"type":"error","name":"FailedInnerCall"},{"inputs":[],"type":"error","name":"InsufficientClaim"},{"inputs":[],"type":"error","name":"InsufficientDeposit"},{"inputs":[],"type":"error","name":"InsufficientRedemption"},{"inputs":[],"type":"error","name":"InsufficientWithdrawal"},{"inputs":[],"type":"error","name":"InvalidAccount"},{"inputs":[],"type":"error","name":"InvalidCaptureEpoch"},{"inputs":[],"type":"error","name":"InvalidClaimer"},{"inputs":[],"type":"error","name":"InvalidCollateral"},{"inputs":[],"type":"error","name":"InvalidDelegator"},{"inputs":[],"type":"error","name":"InvalidEpoch"},{"inputs":[],"type":"error","name":"InvalidEpochDuration"},{"inputs":[],"type":"error","name":"InvalidInitialization"},{"inputs":[],"type":"error","name":"InvalidLengthEpochs"},{"inputs":[],"type":"error","name":"InvalidOnBehalfOf"},{"inputs":[],"type":"error","name":"InvalidRecipient"},{"inputs":[],"type":"error","name":"InvalidSlasher"},{"inputs":[],"type":"error","name":"InvalidTimestamp"},{"inputs":[],"type":"error","name":"MathOverflowedMulDiv"},{"inputs":[],"type":"error","name":"MissingRoles"},{"inputs":[],"type":"error","name":"NoPreviousEpoch"},{"inputs":[],"type":"error","name":"NotDelegator"},{"inputs":[],"type":"error","name":"NotFactory"},{"inputs":[],"type":"error","name":"NotInitialized"},{"inputs":[],"type":"error","name":"NotInitializing"},{"inputs":[],"type":"error","name":"NotSlasher"},{"inputs":[],"type":"error","name":"NotWhitelistedDepositor"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"OwnableInvalidOwner"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"OwnableUnauthorizedAccount"},{"inputs":[],"type":"error","name":"ReentrancyGuardReentrantCall"},{"inputs":[{"internalType":"uint8","name":"bits","type":"uint8"},{"internalType":"uint256","name":"value","type":"uint256"}],"type":"error","name":"SafeCastOverflowedUintDowncast"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"type":"error","name":"SafeERC20FailedOperation"},{"inputs":[],"type":"error","name":"SlasherAlreadyInitialized"},{"inputs":[],"type":"error","name":"TooMuchRedeem"},{"inputs":[],"type":"error","name":"TooMuchWithdraw"},{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"spender","type":"address","indexed":true},{"internalType":"uint256","name":"value","type":"uint256","indexed":false}],"type":"event","name":"Approval","anonymous":false},{"inputs":[{"internalType":"address","name":"claimer","type":"address","indexed":true},{"internalType":"address","name":"recipient","type":"address","indexed":true},{"internalType":"uint256","name":"epoch","type":"uint256","indexed":false},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"Claim","anonymous":false},{"inputs":[{"internalType":"address","name":"claimer","type":"address","indexed":true},{"internalType":"address","name":"recipient","type":"address","indexed":true},{"internalType":"uint256[]","name":"epochs","type":"uint256[]","indexed":false},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"ClaimBatch","anonymous":false},{"inputs":[{"internalType":"address","name":"depositor","type":"address","indexed":true},{"internalType":"address","name":"onBehalfOf","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false},{"internalType":"uint256","name":"shares","type":"uint256","indexed":false}],"type":"event","name":"Deposit","anonymous":false},{"inputs":[{"internalType":"uint64","name":"version","type":"uint64","indexed":false}],"type":"event","name":"Initialized","anonymous":false},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256","indexed":false},{"internalType":"uint48","name":"captureTimestamp","type":"uint48","indexed":false},{"internalType":"uint256","name":"slashedAmount","type":"uint256","indexed":false}],"type":"event","name":"OnSlash","anonymous":false},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"bytes32","name":"previousAdminRole","type":"bytes32","indexed":true},{"internalType":"bytes32","name":"newAdminRole","type":"bytes32","indexed":true}],"type":"event","name":"RoleAdminChanged","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"address","name":"sender","type":"address","indexed":true}],"type":"event","name":"RoleGranted","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"address","name":"sender","type":"address","indexed":true}],"type":"event","name":"RoleRevoked","anonymous":false},{"inputs":[{"internalType":"address","name":"delegator","type":"address","indexed":true}],"type":"event","name":"SetDelegator","anonymous":false},{"inputs":[{"internalType":"uint256","name":"limit","type":"uint256","indexed":false}],"type":"event","name":"SetDepositLimit","anonymous":false},{"inputs":[{"internalType":"bool","name":"status","type":"bool","indexed":false}],"type":"event","name":"SetDepositWhitelist","anonymous":false},{"inputs":[{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"bool","name":"status","type":"bool","indexed":false}],"type":"event","name":"SetDepositorWhitelistStatus","anonymous":false},{"inputs":[{"internalType":"bool","name":"status","type":"bool","indexed":false}],"type":"event","name":"SetIsDepositLimit","anonymous":false},{"inputs":[{"internalType":"address","name":"slasher","type":"address","indexed":true}],"type":"event","name":"SetSlasher","anonymous":false},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"value","type":"uint256","indexed":false}],"type":"event","name":"Transfer","anonymous":false},{"inputs":[{"internalType":"address","name":"withdrawer","type":"address","indexed":true},{"internalType":"address","name":"claimer","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false},{"internalType":"uint256","name":"burnedShares","type":"uint256","indexed":false},{"internalType":"uint256","name":"mintedShares","type":"uint256","indexed":false}],"type":"event","name":"Withdraw","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"DEFAULT_ADMIN_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"DELEGATOR_FACTORY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"DEPOSITOR_WHITELIST_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"DEPOSIT_LIMIT_SET_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"DEPOSIT_WHITELIST_SET_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"FACTORY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"IS_DEPOSIT_LIMIT_SET_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"SLASHER_FACTORY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"activeBalanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint48","name":"timestamp","type":"uint48"},{"internalType":"bytes","name":"hints","type":"bytes"}],"stateMutability":"view","type":"function","name":"activeBalanceOfAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"activeShares","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint48","name":"timestamp","type":"uint48"},{"internalType":"bytes","name":"hint","type":"bytes"}],"stateMutability":"view","type":"function","name":"activeSharesAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"activeSharesOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint48","name":"timestamp","type":"uint48"},{"internalType":"bytes","name":"hint","type":"bytes"}],"stateMutability":"view","type":"function","name":"activeSharesOfAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"activeStake","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint48","name":"timestamp","type":"uint48"},{"internalType":"bytes","name":"hint","type":"bytes"}],"stateMutability":"view","type":"function","name":"activeStakeAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"stateMutability":"view","type":"function","name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"burner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"epoch","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"claim","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256[]","name":"epochs","type":"uint256[]"}],"stateMutability":"nonpayable","type":"function","name":"claimBatch","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"collateral","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"currentEpoch","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"currentEpochStart","outputs":[{"internalType":"uint48","name":"","type":"uint48"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"delegator","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"onBehalfOf","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"deposit","outputs":[{"internalType":"uint256","name":"depositedAmount","type":"uint256"},{"internalType":"uint256","name":"mintedShares","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"depositLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"depositWhitelist","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint48","name":"timestamp","type":"uint48"}],"stateMutability":"view","type":"function","name":"epochAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"epochDuration","outputs":[{"internalType":"uint48","name":"","type":"uint48"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"epochDurationInit","outputs":[{"internalType":"uint48","name":"","type":"uint48"}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getRoleAdmin","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"grantRole"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"hasRole","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint64","name":"initialVersion","type":"uint64"},{"internalType":"address","name":"owner_","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[],"stateMutability":"view","type":"function","name":"isDelegatorInitialized","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"isDepositLimit","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"isDepositorWhitelisted","outputs":[{"internalType":"bool","name":"value","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"isInitialized","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"isSlasherInitialized","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint256","name":"epoch","type":"uint256"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"isWithdrawalsClaimed","outputs":[{"internalType":"bool","name":"value","type":"bool"}]},{"inputs":[{"internalType":"uint64","name":"newVersion","type":"uint64"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"migrate"},{"inputs":[],"stateMutability":"view","type":"function","name":"name","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"nextEpochStart","outputs":[{"internalType":"uint48","name":"","type":"uint48"}]},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint48","name":"captureTimestamp","type":"uint48"}],"stateMutability":"nonpayable","type":"function","name":"onSlash","outputs":[{"internalType":"uint256","name":"slashedAmount","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"previousEpochStart","outputs":[{"internalType":"uint48","name":"","type":"uint48"}]},{"inputs":[{"internalType":"address","name":"claimer","type":"address"},{"internalType":"uint256","name":"shares","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"redeem","outputs":[{"internalType":"uint256","name":"withdrawnAssets","type":"uint256"},{"internalType":"uint256","name":"mintedShares","type":"uint256"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"callerConfirmation","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"renounceRole"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"revokeRole"},{"inputs":[{"internalType":"address","name":"delegator_","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setDelegator"},{"inputs":[{"internalType":"uint256","name":"limit","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setDepositLimit"},{"inputs":[{"internalType":"bool","name":"status","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"setDepositWhitelist"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"status","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"setDepositorWhitelistStatus"},{"inputs":[{"internalType":"bool","name":"status","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"setIsDepositLimit"},{"inputs":[{"internalType":"address","name":"slasher_","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setSlasher"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"slashableBalanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"slasher","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"staticDelegateCall"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"totalStake","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"},{"inputs":[],"stateMutability":"view","type":"function","name":"version","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[{"internalType":"address","name":"claimer","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"withdraw","outputs":[{"internalType":"uint256","name":"burnedShares","type":"uint256"},{"internalType":"uint256","name":"mintedShares","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"epoch","type":"uint256"}],"stateMutability":"view","type":"function","name":"withdrawalShares","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"epoch","type":"uint256"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"withdrawalSharesOf","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"epoch","type":"uint256"}],"stateMutability":"view","type":"function","name":"withdrawals","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"epoch","type":"uint256"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"withdrawalsOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]}],"devdoc":{"kind":"dev","methods":{"activeBalanceOf(address)":{"params":{"account":"account to get the active balance for"},"returns":{"_0":"active balance for the account"}},"activeBalanceOfAt(address,uint48,bytes)":{"params":{"account":"account to get the active balance for","hints":"hints for checkpoints' indexes","timestamp":"time point to get the active balance for the account at"},"returns":{"_0":"active balance for the account at the timestamp"}},"activeShares()":{"returns":{"_0":"total number of active shares"}},"activeSharesAt(uint48,bytes)":{"params":{"hint":"hint for the checkpoint index","timestamp":"time point to get the total number of active shares at"},"returns":{"_0":"total number of active shares at the timestamp"}},"activeSharesOf(address)":{"params":{"account":"account to get the number of active shares for"},"returns":{"_0":"number of active shares for the account"}},"activeSharesOfAt(address,uint48,bytes)":{"params":{"account":"account to get the number of active shares for","hint":"hint for the checkpoint index","timestamp":"time point to get the number of active shares for the account at"},"returns":{"_0":"number of active shares for the account at the timestamp"}},"activeStake()":{"returns":{"_0":"total amount of active stake"}},"activeStakeAt(uint48,bytes)":{"params":{"hint":"hint for the checkpoint index","timestamp":"time point to get the total active stake at"},"returns":{"_0":"total amount of active stake at the timestamp"}},"allowance(address,address)":{"details":"See {IERC20-allowance}."},"approve(address,uint256)":{"details":"See {IERC20-approve}. NOTE: If `value` is the maximum `uint256`, the allowance is not updated on `transferFrom`. This is semantically equivalent to an infinite approval. Requirements: - `spender` cannot be the zero address."},"balanceOf(address)":{"details":"See {IERC20-balanceOf}."},"claim(address,uint256)":{"params":{"epoch":"epoch to claim the collateral for","recipient":"account that receives the collateral"},"returns":{"amount":"amount of the collateral claimed"}},"claimBatch(address,uint256[])":{"params":{"epochs":"epochs to claim the collateral for","recipient":"account that receives the collateral"},"returns":{"amount":"amount of the collateral claimed"}},"currentEpoch()":{"returns":{"_0":"current epoch"}},"currentEpochStart()":{"returns":{"_0":"start of the current epoch"}},"decimals()":{"details":"Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5.05` (`505 / 10 ** 2`). Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei. This is the default value returned by this function, unless it's overridden. NOTE: This information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including {IERC20-balanceOf} and {IERC20-transfer}."},"deposit(address,uint256)":{"params":{"amount":"amount of the collateral to deposit","onBehalfOf":"account the deposit is made on behalf of"},"returns":{"depositedAmount":"real amount of the collateral deposited","mintedShares":"amount of the active shares minted"}},"epochAt(uint48)":{"details":"Reverts if the timestamp is less than the start of the epoch 0.","params":{"timestamp":"time point to get the epoch at"},"returns":{"_0":"epoch at the timestamp"}},"getRoleAdmin(bytes32)":{"details":"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}."},"grantRole(bytes32,address)":{"details":"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event."},"hasRole(bytes32,address)":{"details":"Returns `true` if `account` has been granted `role`."},"initialize(uint64,address,bytes)":{"params":{"data":"some data to use","initialVersion":"initial version of the entity","owner":"initial owner of the entity"}},"isInitialized()":{"returns":{"_0":"if the vault is fully initialized"}},"migrate(uint64,bytes)":{"params":{"data":"some data to use","newVersion":"new version of the entity"}},"name()":{"details":"Returns the name of the token."},"nextEpochStart()":{"returns":{"_0":"start of the next epoch"}},"onSlash(uint256,uint48)":{"details":"Only the slasher can call this function.","params":{"amount":"amount to slash","captureTimestamp":"time point when the stake was captured"},"returns":{"slashedAmount":"real amount of the collateral slashed"}},"owner()":{"details":"Returns the address of the current owner."},"previousEpochStart()":{"details":"Reverts if the current epoch is 0.","returns":{"_0":"start of the previous epoch"}},"redeem(address,uint256)":{"params":{"claimer":"account that needs to claim the withdrawal","shares":"amount of the active shares to redeem"},"returns":{"mintedShares":"amount of the epoch withdrawal shares minted","withdrawnAssets":"amount of the collateral withdrawn"}},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner."},"renounceRole(bytes32,address)":{"details":"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `callerConfirmation`. May emit a {RoleRevoked} event."},"revokeRole(bytes32,address)":{"details":"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event."},"setDepositLimit(uint256)":{"details":"Only a DEPOSIT_LIMIT_SET_ROLE holder can call this function.","params":{"limit":"deposit limit (maximum amount of the collateral that can be in the vault simultaneously)"}},"setDepositWhitelist(bool)":{"details":"Only a DEPOSIT_WHITELIST_SET_ROLE holder can call this function.","params":{"status":"if enabling deposit whitelist"}},"setDepositorWhitelistStatus(address,bool)":{"details":"Only a DEPOSITOR_WHITELIST_ROLE holder can call this function.","params":{"account":"account for which the whitelist status is set","status":"if whitelisting the account"}},"setIsDepositLimit(bool)":{"details":"Only a IS_DEPOSIT_LIMIT_SET_ROLE holder can call this function.","params":{"status":"if enabling deposit limit"}},"slashableBalanceOf(address)":{"params":{"account":"account to get the slashable collateral for"},"returns":{"_0":"total amount of the account's slashable collateral"}},"staticDelegateCall(address,bytes)":{"details":"It allows to use this contract's storage on-chain.","params":{"data":"data to make a delegatecall with","target":"address of the contract to make a delegatecall to"}},"supportsInterface(bytes4)":{"details":"See {IERC165-supportsInterface}."},"symbol()":{"details":"Returns the symbol of the token, usually a shorter version of the name."},"totalStake()":{"returns":{"_0":"total amount of the slashable collateral"}},"totalSupply()":{"details":"See {IERC20-totalSupply}."},"transfer(address,uint256)":{"details":"See {IERC20-transfer}. Requirements: - `to` cannot be the zero address. - the caller must have a balance of at least `value`."},"transferFrom(address,address,uint256)":{"details":"See {IERC20-transferFrom}. Emits an {Approval} event indicating the updated allowance. This is not required by the EIP. See the note at the beginning of {ERC20}. NOTE: Does not update the allowance if the current allowance is the maximum `uint256`. Requirements: - `from` and `to` cannot be the zero address. - `from` must have a balance of at least `value`. - the caller must have allowance for ``from``'s tokens of at least `value`."},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."},"version()":{"details":"Starts from 1.","returns":{"_0":"version of the entity"}},"withdraw(address,uint256)":{"params":{"amount":"amount of the collateral to withdraw","claimer":"account that needs to claim the withdrawal"},"returns":{"burnedShares":"amount of the active shares burned","mintedShares":"amount of the epoch withdrawal shares minted"}},"withdrawalsOf(uint256,address)":{"params":{"account":"account to get the withdrawals for","epoch":"epoch to get the withdrawals for the account at"},"returns":{"_0":"withdrawals for the account at the epoch"}}},"version":1},"userdoc":{"kind":"user","methods":{"DELEGATOR_FACTORY()":{"notice":"Get the delegator factory's address."},"DEPOSITOR_WHITELIST_ROLE()":{"notice":"Get a depositor whitelist status setter's role."},"DEPOSIT_LIMIT_SET_ROLE()":{"notice":"Get a deposit limit setter's role."},"DEPOSIT_WHITELIST_SET_ROLE()":{"notice":"Get a deposit whitelist enabler/disabler's role."},"FACTORY()":{"notice":"Get the factory's address."},"IS_DEPOSIT_LIMIT_SET_ROLE()":{"notice":"Get a deposit limit enabler/disabler's role."},"SLASHER_FACTORY()":{"notice":"Get the slasher factory's address."},"activeBalanceOf(address)":{"notice":"Get an active balance for a particular account."},"activeBalanceOfAt(address,uint48,bytes)":{"notice":"Get an active balance for a particular account at a given timestamp using hints."},"activeShares()":{"notice":"Get a total number of active shares in the vault."},"activeSharesAt(uint48,bytes)":{"notice":"Get a total number of active shares in the vault at a given timestamp using a hint."},"activeSharesOf(address)":{"notice":"Get a number of active shares for a particular account."},"activeSharesOfAt(address,uint48,bytes)":{"notice":"Get a total number of active shares for a particular account at a given timestamp using a hint."},"activeStake()":{"notice":"Get a total amount of active stake in the vault."},"activeStakeAt(uint48,bytes)":{"notice":"Get a total amount of active stake in the vault at a given timestamp using a hint."},"burner()":{"notice":"Get a burner to issue debt to (e.g., 0xdEaD or some unwrapper contract)."},"claim(address,uint256)":{"notice":"Claim collateral from the vault."},"claimBatch(address,uint256[])":{"notice":"Claim collateral from the vault for multiple epochs."},"collateral()":{"notice":"Get a vault collateral."},"currentEpoch()":{"notice":"Get a current vault epoch."},"currentEpochStart()":{"notice":"Get a start of the current vault epoch."},"delegator()":{"notice":"Get a delegator (it delegates the vault's stake to networks and operators)."},"deposit(address,uint256)":{"notice":"Deposit collateral into the vault."},"depositLimit()":{"notice":"Get a deposit limit (maximum amount of the active stake that can be in the vault simultaneously)."},"depositWhitelist()":{"notice":"Get if the deposit whitelist is enabled."},"epochAt(uint48)":{"notice":"Get an epoch at a given timestamp."},"epochDuration()":{"notice":"Get a duration of the vault epoch."},"epochDurationInit()":{"notice":"Get a time point of the epoch duration set."},"initialize(uint64,address,bytes)":{"notice":"Initialize this entity contract by using a given data and setting a particular version and owner."},"isDelegatorInitialized()":{"notice":"Get if the delegator is initialized."},"isDepositLimit()":{"notice":"Get if the deposit limit is set."},"isDepositorWhitelisted(address)":{"notice":"Get if a given account is whitelisted as a depositor."},"isInitialized()":{"notice":"Check if the vault is fully initialized (a delegator and a slasher are set)."},"isSlasherInitialized()":{"notice":"Get if the slasher is initialized."},"isWithdrawalsClaimed(uint256,address)":{"notice":"Get if the withdrawals are claimed for a particular account at a given epoch."},"migrate(uint64,bytes)":{"notice":"Migrate this entity to a particular newer version using a given data."},"nextEpochStart()":{"notice":"Get a start of the next vault epoch."},"onSlash(uint256,uint48)":{"notice":"Slash callback for burning collateral."},"previousEpochStart()":{"notice":"Get a start of the previous vault epoch."},"redeem(address,uint256)":{"notice":"Redeem collateral from the vault (it will be claimable after the next epoch)."},"setDepositLimit(uint256)":{"notice":"Set a deposit limit."},"setDepositWhitelist(bool)":{"notice":"Enable/disable deposit whitelist."},"setDepositorWhitelistStatus(address,bool)":{"notice":"Set a depositor whitelist status."},"setIsDepositLimit(bool)":{"notice":"Enable/disable deposit limit."},"slashableBalanceOf(address)":{"notice":"Get a total amount of the collateral that can be slashed for a given account."},"slasher()":{"notice":"Get a slasher (it provides networks a slashing mechanism)."},"staticDelegateCall(address,bytes)":{"notice":"Make a delegatecall from this contract to a given target contract with a particular data (always reverts with a return data)."},"totalStake()":{"notice":"Get a total amount of the collateral that can be slashed."},"version()":{"notice":"Get the entity's version."},"withdraw(address,uint256)":{"notice":"Withdraw collateral from the vault (it will be claimable after the next epoch)."},"withdrawalShares(uint256)":{"notice":"Get a total number of withdrawal shares at a given epoch."},"withdrawalSharesOf(uint256,address)":{"notice":"Get a number of withdrawal shares for a particular account at a given epoch (zero if claimed)."},"withdrawals(uint256)":{"notice":"Get a total amount of the withdrawals at a given epoch."},"withdrawalsOf(uint256,address)":{"notice":"Get withdrawals for a particular account at a given epoch (zero if claimed)."}},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/contracts/vault/VaultTokenized.sol":"VaultTokenized"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol":{"keccak256":"0x6662ec4e5cefca03eeadd073e9469df8d2944bb2ee8ec8f7622c2c46aab5f225","urls":["bzz-raw://4d8544c6f8daa4d1bc215c6a72fe0acdb748664a105b0e5efc19295667521d45","dweb:/ipfs/QmdGWqdnXT8S3RgCR6aV8XHZrsybieMQLLnug1NtpSjEXN"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol":{"keccak256":"0xc163fcf9bb10138631a9ba5564df1fa25db9adff73bd9ee868a8ae1858fe093a","urls":["bzz-raw://9706d43a0124053d9880f6e31a59f31bc0a6a3dc1acd66ce0a16e1111658c5f6","dweb:/ipfs/QmUFmfowzkRwGtDu36cXV9SPTBHJ3n7dG9xQiK5B28jTf2"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b","urls":["bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609","dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/ERC20Upgradeable.sol":{"keccak256":"0x9a1766b1921bf91b3e61eb53c7a6e70725254befd4bdcbbcd3af40bd9f66856f","urls":["bzz-raw://29bf2fa41a172086a665c9738377b93655aa4b1ffda9fe839c8bdf646f185040","dweb:/ipfs/QmeB21qDuo8WPQSrqXJbQmWHKsdeocGNSUWLhCwniVejrt"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol":{"keccak256":"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397","urls":["bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9","dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardUpgradeable.sol":{"keccak256":"0xb44e086e941292cdc7f440de51478493894ef0b1aeccb0c4047445919f667f74","urls":["bzz-raw://942dad22fbdc1669f025540ba63aa3ccfad5f8458fc5d4525b31ebf272e7af45","dweb:/ipfs/Qmdo4X2M82aM3AMoW2kf2jhYkSCyC4T1pHNd6obdsDFnAB"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol":{"keccak256":"0xdaba3f7c42c55b2896353f32bd27d4d5f8bae741b3b05d4c53f67abc4dc47ce8","urls":["bzz-raw://1fa2e61141c602510bcd2cd936ed9561922ac8772a9b9c9a9db091a74e354a45","dweb:/ipfs/QmcHQDDoEBwJmwUbzoVkytvJsBx3KVHYFFnDkvRGWh9Wmh"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol":{"keccak256":"0xb6b36edd6a2999fd243ff226d6cbf84bd71af2432bbd0dfe19392996a1d9cb41","urls":["bzz-raw://1fd2f35495652e57e3f99bc6c510bc5f7dd398a176ea2e72d8ed730aebc6ca26","dweb:/ipfs/QmTQV6X4gkikTib49cho5iDX3JvSQbdsoEChoDwrk3CbbH"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol":{"keccak256":"0x60c65f701957fdd6faea1acb0bb45825791d473693ed9ecb34726fdfaa849dd7","urls":["bzz-raw://ea290300e0efc4d901244949dc4d877fd46e6c5e43dc2b26620e8efab3ab803f","dweb:/ipfs/QmcLLJppxKeJWqHxE2CUkcfhuRTgHSn8J4kijcLa5MYhSt"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70","urls":["bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c","dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0xaa761817f6cd7892fcf158b3c776b34551cde36f48ff9703d53898bc45a94ea2","urls":["bzz-raw://0ad7c8d4d08938c8dfc43d75a148863fb324b80cf53e0a36f7e5a4ac29008850","dweb:/ipfs/QmcrhfPgVNf5mkdhQvy1pMv51TFokD3Y4Wa5WZhFqVh8UV"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol":{"keccak256":"0x6008dabfe393240d73d7dd7688033f72740d570aa422254d29a7dce8568f3aff","urls":["bzz-raw://f5196ec75139918c6c7bb4251b36395e668f1fa6d206beba7e7520e74913940d","dweb:/ipfs/QmSyqjksXxmm2mCG6qRd1yuwLykypkSVBbnBnGqJRcuJMi"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0x37bb49513c49c87c4642a891b13b63571bc87013dde806617aa1efb54605f386","urls":["bzz-raw://b3036b3a83b7c48f96641f2a9002b9f2dcb6a5958dd670894ada21ae8229b3d0","dweb:/ipfs/QmUNfSBdoVtjhETaUJCYcaC7pTMgbhht926tJ2uXJbiVd3"],"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/introspection/IERC165.sol":{"keccak256":"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b","urls":["bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df","dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d","urls":["bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875","dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol":{"keccak256":"0xe19a4d5f31d2861e7344e8e535e2feafb913d806d3e2b5fe7782741a2a7094fe","urls":["bzz-raw://4aed79c0fa6f0546ed02f2f683e8f77f0fd2ed7eb34d8bbf3d373c9a6d95b13c","dweb:/ipfs/QmWqVz6UAVqmnWU5pqYPt1o6iDEZyPaBraAA3rKfTTSfYj"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/Checkpoints.sol":{"keccak256":"0xbdc5e074d7dd6678f67e92b1a51a20226801a407b0e1af3da367c5d1ff4519ad","urls":["bzz-raw://a36cca6b22fff3db16fc789ff6c60eea71d4b156065d4d0c83a0bc5e91a77a8b","dweb:/ipfs/QmYN3exd5AemxjBrN8XMB1p5LbbE16uC3sjbYjwi8AjcGR"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/types/Time.sol":{"keccak256":"0xc7755af115020049e4140f224f9ee88d7e1799ffb0646f37bf0df24bf6213f58","urls":["bzz-raw://7f09bf94d5274334ec021f61a04659db303f31e60460e14b709c9bf187740111","dweb:/ipfs/QmNvgomZYUwFAt4cZbPWAiTeSZQreGehY9BK5xyVJsUttb"],"license":"MIT"},"src/contracts/common/MigratableEntity.sol":{"keccak256":"0x2d736f4dacd5d7e7697503bc426c78b8250fe1694ca157965ec178da6807de58","urls":["bzz-raw://f1237acf96b4b9f9b69156e068eddd726a6e15bd8e87a18dc999cd4ba4da069c","dweb:/ipfs/QmS6M8fiFFSeuJ4ZKKq1z8W7w4ybeHQSy5TLASGoc1LVic"],"license":"BUSL-1.1"},"src/contracts/common/StaticDelegateCallable.sol":{"keccak256":"0x350029aa8955eacaffffaeb58babc5c98e80ebc5c5db388ed17ee6465f4a9d90","urls":["bzz-raw://eb392a8ee9050e0af606897df63e3404e3829e8b688b580663892f9664195764","dweb:/ipfs/QmaXC8jqV8UrrAFkzXTEv2fJF56sy33HhLxAzaRZmUxuXD"],"license":"BUSL-1.1"},"src/contracts/libraries/Checkpoints.sol":{"keccak256":"0xba90097c8bfe0a975499428b5f8ac5569483c7d92ccc28c12d70de416aae040c","urls":["bzz-raw://12f5d93ca94cd06d3147db68993165a58e17903ed53682560de61f3085ad4609","dweb:/ipfs/QmePiuAqvXprMLmFZkGZeGjvGPAvsEDHfCDv7BoQhXu9xE"],"license":"MIT"},"src/contracts/libraries/ERC4626Math.sol":{"keccak256":"0x8441160513c1cbeb1c3b9ee077bcc7e7ce20006b52a77c8dd39ff0ef89699939","urls":["bzz-raw://943f8cc3e26ddf649f465f40c909819f5c864717c4baa339e9e403b9374a4653","dweb:/ipfs/QmXPxi1sUDsrGprZdUgCzoPEosaZMv9ZhygWQ1vAi1phAB"],"license":"MIT"},"src/contracts/vault/Vault.sol":{"keccak256":"0x2ceff6ed3298c4cad144c99fcc79b51cb9397d6ebef00285b915848b476f8c2e","urls":["bzz-raw://11f2fb3581854f3ab6e82e8d4935d9eb510c903a13c3f022346c2956a58f5307","dweb:/ipfs/QmdUnoXoyYoG9SGWyQZCFyLDRUUX3eXyXetkRvw6jxqqBz"],"license":"BUSL-1.1"},"src/contracts/vault/VaultStorage.sol":{"keccak256":"0x57db25b127d77ea3472de53e3a4af3354399655b9268638b99ca5925fa364a56","urls":["bzz-raw://aa763d9a6ec508ae3abfb8228b72b9fd9525279e5135d4962e79ff059feb1173","dweb:/ipfs/QmcbDR6E9wyEpu6V2FkEC4hnWy47zXA9LSKJde6zSGd33Q"],"license":"BUSL-1.1"},"src/contracts/vault/VaultTokenized.sol":{"keccak256":"0xa9475a46a3e32b35e48bc37fdaf08e1a586fb7c9667ac5e014b716a08873c46d","urls":["bzz-raw://0a292a4f35bc43ce7174b36e2d016bc44d6737e94b41e48cb5dd1bb1e4821e48","dweb:/ipfs/QmduHZe2REPnygiWvQRV82yD4tYHdwX33FkYRFm1UZoXBA"],"license":"BUSL-1.1"},"src/interfaces/common/IEntity.sol":{"keccak256":"0x8ef4b63d6da63489778ccd5f8d13ebdd527dd4b62730b2c616df5af7474d2d21","urls":["bzz-raw://5a8d69576a9219d85c50816a18ad53a4d53cfcb27ed38b8cccc808dc2734b71b","dweb:/ipfs/QmYVN3P4Q4REvBWJ97TbAcaxm3uyB2anV6NSGa6ZtSwcEv"],"license":"MIT"},"src/interfaces/common/IMigratableEntity.sol":{"keccak256":"0x8f5f2809f3afbe8ebfbb365dd7b57b4dd3b6f9943a6187eaf648d45895b8e3c4","urls":["bzz-raw://0ffe640537d539e7a4fde70d30d3e4c57f4ba9c2c25c450cea713aae38e8fd5c","dweb:/ipfs/QmSUTGzvdcn1R1KB7tLThMRtESsfPbeXDhhhKWGtntzBds"],"license":"MIT"},"src/interfaces/common/IRegistry.sol":{"keccak256":"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb","urls":["bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014","dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK"],"license":"MIT"},"src/interfaces/common/IStaticDelegateCallable.sol":{"keccak256":"0xa335d4e81b9071b7de66ef92b43ff20671d86516eb1be46fef29a3483cd3f5d5","urls":["bzz-raw://d464b9db863c14c05547d2b23352f2e9b7b784799cf09f6bbc4906a2a74e3516","dweb:/ipfs/QmUVWzFvJz7eEbDQKiFTTzwi7TEbjcs3VmwdM4kuptAKvi"],"license":"MIT"},"src/interfaces/delegator/IBaseDelegator.sol":{"keccak256":"0x96bb312f032e17accce3f8f80936d99468029d6b37c9ca74acdb4b026a0148ee","urls":["bzz-raw://2a66dcb5b7d1a6ef6a363431ea98ebd78bc4fdd3d7a134d9b542dc66e7d025c2","dweb:/ipfs/QmRhTPLd2ZAyRHmJUFUcWKs9b3if49QY17LYZuRqWmghw8"],"license":"MIT"},"src/interfaces/slasher/IBaseSlasher.sol":{"keccak256":"0x7c82528b445659c313ab77335c407b0b6efe5e79027187bb287f7bc74202b404","urls":["bzz-raw://0274c90aa5df1aa6bb470a6aab53992fb14fd7e5472c9430416505b29647d9cf","dweb:/ipfs/QmckbmJLDetPemVzCnnGcKYWAZV2BRFXGDsjiaec8jkHxx"],"license":"MIT"},"src/interfaces/vault/IVault.sol":{"keccak256":"0xffee01d383cd4e1a5530c614bf4360c1ef070c288abec9da1eb531b51bc07235","urls":["bzz-raw://04f0046cac285d8ec44ebbb1f79dc94fab4495767190cad8364fbc1fafaadfb9","dweb:/ipfs/QmUawAunwzXfCyShWfhKeThAgKtqe51hmrxvrXvM772M2R"],"license":"MIT"},"src/interfaces/vault/IVaultStorage.sol":{"keccak256":"0x592626f13754194f83047135de19229c49390bd59e34659b1bb38be71d973a22","urls":["bzz-raw://06a6a9dfddd05e580b32bebe2cff4f63ba26a653180676d58225dd30d9c89d3e","dweb:/ipfs/QmdgzBeY6Sxo8mGtyBxtv1tM1c2kU6J6zjeRd7vuXm4DU6"],"license":"MIT"},"src/interfaces/vault/IVaultTokenized.sol":{"keccak256":"0xb723560b49c30b38130634388a0550c9e07596f92a58edbfa2415e690024e0c4","urls":["bzz-raw://dc9dde973a0bbf0adbc305462a796fa3b2e5be9daa1984e4f3e4f48e3c254f39","dweb:/ipfs/QmQydZsr7ESw7ZSe9mqaxZ3dycvru8ZFVwrL9pmVnpyd7c"],"license":"MIT"}},"version":1},"id":102} \ No newline at end of file diff --git a/out/VetoSlasher.sol/VetoSlasher.json b/out/VetoSlasher.sol/VetoSlasher.json index 3f6885e5..ca710649 100644 --- a/out/VetoSlasher.sol/VetoSlasher.json +++ b/out/VetoSlasher.sol/VetoSlasher.json @@ -1 +1 @@ -{"abi":[{"type":"constructor","inputs":[{"name":"vaultFactory","type":"address","internalType":"address"},{"name":"networkMiddlewareService","type":"address","internalType":"address"},{"name":"networkRegistry","type":"address","internalType":"address"},{"name":"slasherFactory","type":"address","internalType":"address"},{"name":"entityType","type":"uint64","internalType":"uint64"}],"stateMutability":"nonpayable"},{"type":"function","name":"BURNER_GAS_LIMIT","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"BURNER_RESERVE","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"FACTORY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"NETWORK_MIDDLEWARE_SERVICE","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"NETWORK_REGISTRY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"TYPE","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"VAULT_FACTORY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"cumulativeSlash","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"cumulativeSlashAt","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"timestamp","type":"uint48","internalType":"uint48"},{"name":"hint","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"executeSlash","inputs":[{"name":"slashIndex","type":"uint256","internalType":"uint256"},{"name":"hints","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"slashedAmount","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"initialize","inputs":[{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"isBurnerHook","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"latestSlashedCaptureTimestamp","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"value","type":"uint48","internalType":"uint48"}],"stateMutability":"view"},{"type":"function","name":"requestSlash","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"captureTimestamp","type":"uint48","internalType":"uint48"},{"name":"hints","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"slashIndex","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"resolver","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"hint","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"resolverAt","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"timestamp","type":"uint48","internalType":"uint48"},{"name":"hint","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"resolverSetEpochsDelay","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"setResolver","inputs":[{"name":"identifier","type":"uint96","internalType":"uint96"},{"name":"resolver_","type":"address","internalType":"address"},{"name":"hints","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"slashRequests","inputs":[{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"captureTimestamp","type":"uint48","internalType":"uint48"},{"name":"vetoDeadline","type":"uint48","internalType":"uint48"},{"name":"completed","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"slashRequestsLength","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"slashableStake","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"captureTimestamp","type":"uint48","internalType":"uint48"},{"name":"hints","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"staticDelegateCall","inputs":[{"name":"target","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"vault","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"vetoDuration","inputs":[],"outputs":[{"name":"","type":"uint48","internalType":"uint48"}],"stateMutability":"view"},{"type":"function","name":"vetoSlash","inputs":[{"name":"slashIndex","type":"uint256","internalType":"uint256"},{"name":"hints","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"ExecuteSlash","inputs":[{"name":"slashIndex","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"slashedAmount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"RequestSlash","inputs":[{"name":"slashIndex","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"subnetwork","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"slashAmount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"captureTimestamp","type":"uint48","indexed":false,"internalType":"uint48"},{"name":"vetoDeadline","type":"uint48","indexed":false,"internalType":"uint48"}],"anonymous":false},{"type":"event","name":"SetResolver","inputs":[{"name":"subnetwork","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"resolver","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"VetoSlash","inputs":[{"name":"slashIndex","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"resolver","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"error","name":"AlreadySet","inputs":[]},{"type":"error","name":"CheckpointUnorderedInsertion","inputs":[]},{"type":"error","name":"InsufficientBurnerGas","inputs":[]},{"type":"error","name":"InsufficientSlash","inputs":[]},{"type":"error","name":"InvalidCaptureTimestamp","inputs":[]},{"type":"error","name":"InvalidInitialization","inputs":[]},{"type":"error","name":"InvalidResolverSetEpochsDelay","inputs":[]},{"type":"error","name":"InvalidVetoDuration","inputs":[]},{"type":"error","name":"NoBurner","inputs":[]},{"type":"error","name":"NoResolver","inputs":[]},{"type":"error","name":"NotInitialized","inputs":[]},{"type":"error","name":"NotInitializing","inputs":[]},{"type":"error","name":"NotNetwork","inputs":[]},{"type":"error","name":"NotNetworkMiddleware","inputs":[]},{"type":"error","name":"NotResolver","inputs":[]},{"type":"error","name":"NotVault","inputs":[]},{"type":"error","name":"ReentrancyGuardReentrantCall","inputs":[]},{"type":"error","name":"SafeCastOverflowedUintDowncast","inputs":[{"name":"bits","type":"uint8","internalType":"uint8"},{"name":"value","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"SlashPeriodEnded","inputs":[]},{"type":"error","name":"SlashRequestCompleted","inputs":[]},{"type":"error","name":"SlashRequestNotExist","inputs":[]},{"type":"error","name":"VetoPeriodEnded","inputs":[]},{"type":"error","name":"VetoPeriodNotEnded","inputs":[]}],"bytecode":{"object":"0x6101203461017757601f612f8038819003918201601f19168301916001600160401b03918284118585101761017b578160a092869260409687528339810103126101775761004c8361018f565b6100586020850161018f565b9161006484860161018f565b9460806100736060830161018f565b910151918083168303610177577ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a009081549060ff82891c16610166578080831603610122575b50505060805260a05260c05260e05261010091825251612ddc91826101a483396080518261032a015260a0518281816113090152612445015260c0518281816101cc0152611b8e015260e0518281816102e60152611d180152518181816109ec015261135f0152f35b6001600160401b0319909116811790915585519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a15f80806100b9565b875163f92ee8a960e01b8152600490fd5b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b51906001600160a01b03821682036101775756fe60806040526004361015610011575f80fd5b5f3560e01c8063103f2907146101a45780631a2be2c41461019f578063267de1f31461019a5780632964f8dc146101955780632c9d45b3146101905780632dd310001461018b57806331ce4dfe1461018657806334d098ea14610181578063439fab911461017c578063545ce389146101775780638f42f9ab146101725780639168f9d21461016d5780639a896551146101685780639f86fd8514610163578063aa8e64891461015e578063aab3595f14610159578063b94c386e14610154578063bb24fe8a1461014f578063bc6eac5b1461014a578063c0cd7c3e14610145578063cd05b8a114610140578063d5c24e1a1461013b578063e054e08b14610136578063f9268d18146101315763fbfa77cf1461012c575f80fd5b611596565b611428565b611403565b6113e6565b61138e565b61134a565b61132d565b6112ea565b610f9e565b610f46565b610f08565b610e02565b610d77565b61094c565b61092f565b610695565b61055d565b61050c565b6104a3565b610315565b6102d1565b6102b5565b610260565b61020c565b6101b7565b5f9103126101b357565b5f80fd5b346101b3575f3660031901126101b3576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b6001600160a01b038116036101b357565b346101b35760403660031901126101b3576020610258610253602435610231816101fb565b6004355f526002845260405f209060018060a01b03165f5260205260405f2090565b61199e565b604051908152f35b346101b35760403660031901126101b357602065ffffffffffff6102ab602435610289816101fb565b6004355f526001845260405f209060018060a01b03165f5260205260405f2090565b5416604051908152f35b346101b3575f3660031901126101b3576020604051614e208152f35b346101b3575f3660031901126101b3576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346101b3575f3660031901126101b3576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b65ffffffffffff8116036101b357565b634e487b7160e01b5f52604160045260245ffd5b602081019081106001600160401b0382111761039857604052565b610369565b606081019081106001600160401b0382111761039857604052565b604081019081106001600160401b0382111761039857604052565b6001600160401b03811161039857604052565b90601f801991011681019081106001600160401b0382111761039857604052565b6040519060c082018281106001600160401b0382111761039857604052565b604051906104338261039d565b565b60405190610433826103b8565b6001600160401b03811161039857601f01601f191660200190565b81601f820112156101b35780359061047482610442565b9261048260405194856103e6565b828452602083830101116101b357815f926020809301838601378301015290565b346101b35760603660031901126101b3576024356104c081610359565b604435906001600160401b0382116101b3576105036104e5602093369060040161045d565b6004355f90815260068552604090206001600160a01b039390611a1e565b16604051908152f35b346101b3575f3660031901126101b357602060ff5f5460a01c166040519015158152f35b9181601f840112156101b3578235916001600160401b0383116101b357602083818601950101116101b357565b346101b35760203660031901126101b3576001600160401b036004358181116101b35761058e903690600401610530565b5f80516020612d87833981519152549260ff8460401c161593168015908161068d575b6001149081610683575b15908161067a575b50610668575f80516020612d87833981519152805467ffffffffffffffff191660011790556105f6918361064457611b57565b6105fc57005b5f80516020612d87833981519152805460ff60401b19169055604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a1005b5f80516020612d87833981519152805460ff60401b1916600160401b179055611b57565b60405163f92ee8a960e01b8152600490fd5b9050155f6105c3565b303b1591506105bb565b8491506105b1565b346101b35760a03660031901126101b357600460243581356106b6826101fb565b606435916106c383610359565b6084356001600160401b0381116101b3576106e19036908601610530565b93906106eb611cc1565b6106f484611cf0565b6106fc6115e2565b9480610919575b505061070e42611dd8565b610728610721875465ffffffffffff1690565b8092611657565b5f5490959061074d90610741906001600160a01b031681565b6001600160a01b031690565b958760206040988951928380926327f843b560e11b82525afa80156109145761078c92610781925f926108e3575b506116ad565b65ffffffffffff1690565b65ffffffffffff84169081109081156108cd575b506108bd576107b56107be9151848688611fc5565b50604435611d87565b9586156108af576108ab610884878988887f3cb7f4ff6cecf74cee0eb9ae3ebf8933fa60a53014cce52f96da72a78dba8464896108038a6107fe42611dd8565b611657565b92600354978894610854610815610407565b8881526001600160a01b0385166020820152808b018a905265ffffffffffff8616606082015265ffffffffffff831660808201525f60a08201526116d8565b885197885265ffffffffffff938416602089015290921660408701526001600160a01b0316949081906060820190565b0390a461089d60015f80516020612d6783398151915255565b519081529081906020820190565b0390f35b855163167f871760e31b8152fd5b8551631357ac9160e11b81528790fd5b90506108db61078142611dd8565b11155f6107a0565b61090691925060203d60201161090d575b6108fe81836103e6565b810190611676565b905f61077b565b503d6108f4565b61168b565b6109279295508101906115f5565b925f80610703565b346101b3575f3660031901126101b3576020600354604051908152f35b346101b35760603660031901126101b35760048035906bffffffffffffffffffffffff821682036101b357602435610983816101fb565b6044356001600160401b0381116101b3576109a19036908401610530565b906109aa611cc1565b6109b26115e2565b5081610d12575b5050604080516302910f8b60e31b8152338185019081526001600160a01b0395929491602091829082908190830103818a7f0000000000000000000000000000000000000000000000000000000000000000165afa908115610914575f91610ce5575b5015610cd6575f54610a57906001600160a01b0316936bffffffffffffffffffffffff166bffffffffffffffffffffffff193360601b161790565b95610a72610a6d885f52600660205260405f2090565b6128a9565b50949015610c6c57610a8661078142611dd8565b65ffffffffffff9586161115610c3657610ab0610aab895f52600660205260405f2090565b611d99565b505b610ad5610741610741610741610ad08c5f52600660205260405f2090565b612663565b91808716928303610b41575b505050505050610b26907f7b0b759b513b299fd2811f51926dca8854222a675557e8d544ce0933bf5b7570925b516001600160a01b0390911681529081906020820190565b0390a2610b3f60015f80516020612d6783398151915255565b005b610b588998959796985f52600660205260405f2090565b911692845163186a323160e21b815281818981885afa908115610914575f91610c19575b5081600554958751998a80926327f843b560e11b82525afa9081156109145789610be1610bf3977f7b0b759b513b299fd2811f51926dca8854222a675557e8d544ce0933bf5b75709c610be895610b269d610bed985f92610bfc575b505016906117e0565b9116611801565b611dd8565b90612b09565b82958495610ae1565b610c129250803d1061090d576108fe81836103e6565b5f80610bd8565b610c309150823d841161090d576108fe81836103e6565b5f610b7c565b610c54610741610741610741610ad08c5f52600660205260405f2090565b82871603610ab257865163a741a04560e01b81528490fd5b5093949385169250508115610cc8575091610b2691610cc17f7b0b759b513b299fd2811f51926dca8854222a675557e8d544ce0933bf5b757094610cb8875f52600660205260405f2090565b610bed42611dd8565b5050610b0e565b825163a741a04560e01b8152fd5b5083516323d53b9760e21b8152fd5b610d059150823d8411610d0b575b610cfd81836103e6565b8101906117cc565b5f610a1c565b503d610cf3565b610d1e918101906115f5565b505f806109b9565b634e487b7160e01b5f52603260045260245ffd5b600354811015610d725760035f5260021b7fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b01905f90565b610d26565b346101b35760203660031901126101b3576004356003548110156101b357610d9e90610d3a565b50805460018201546002830154600390930154604080519384526001600160a01b0390921660208401529082019290925265ffffffffffff808316606080840191909152603084901c90911660808301529190911c60ff16151560a082015260c090f35b346101b3576040806003193601126101b357600435610e20816101fb565b602435906001600160401b0382116101b3575f8091610e46610eaa943690600401610530565b908187519283928337810184815203915af43d15610eb257610e9c3d610e6b81610442565b90610e78865192836103e6565b81523d5f602083013e5b84519485931515602085015280840152606083019061180e565b03601f1981018352826103e6565b805190602001fd5b610e9c6060610e82565b9060806003198301126101b35760043591602435610ed9816101fb565b91604435610ee681610359565b91606435906001600160401b0382116101b357610f059160040161045d565b90565b346101b3576020610258610f41610f1e36610ebc565b939190925f526002865260405f209060018060a01b03165f5260205260405f2090565b611e0a565b346101b3576020610f62610f5936610ebc565b92919091611fc5565b50604051908152f35b9060406003198301126101b35760043591602435906001600160401b0382116101b357610f9a91600401610530565b9091565b346101b357610fac36610f6b565b9190610fb6611cc1565b610fbe61185e565b92806112d4575b50506003548110156112c257610fda81610d3a565b5090815490610fe882611cf0565b6003830180549365ffffffffffff9384861660018060a01b0361100d895183856115bd565b16151580611297575b8061127e575b61126c576110328161102d42611dd8565b6116ad565b5f5461104890610741906001600160a01b031681565b96600460206040998a51928380926327f843b560e11b82525afa80156109145782915f9161124d575b501691161161123c57600183018054909861109c93929188906001600160a01b031691015192611fc5565b906110ab816002850154611d87565b96871561122b5760601c60ff1661121a57926111d36111c6899461119e61118b8b9687876108ab9f6111998f9d8f9e6111d99f6110f586600160601b60ff60601b19825416179055565b8a54855461111791906001600160a01b0316885465ffffffffffff16916121f5565b8a5485546111309189916001600160a01b031690612275565b8a54945461114e906001600160a01b0316965465ffffffffffff1690565b97611157610426565b9384526020840152818301525196879160208301919091604080606083019480518452602081015160208501520151910152565b03601f1981018752866103e6565b6123e1565b6111b76111b1855465ffffffffffff1690565b866124ea565b5494546001600160a01b031690565b915465ffffffffffff1690565b92612567565b81518381527f5cc28df3b54da9d06f805d87616ebf969c81310f2aa8369cb14ca50f815d411190602090a261089d60015f80516020612d6783398151915255565b8551633428e90760e01b8152600490fd5b865163167f871760e31b8152600490fd5b8551639ea153eb60e01b8152600490fd5b611266915060203d60201161090d576108fe81836103e6565b5f611071565b60405163b62b15c760e01b8152600490fd5b5061128b61078142611dd8565b868860301c161161101c565b506112bb6107416112af6112aa42611dd8565b611696565b60208b015190856115bd565b1515611016565b604051637822972360e11b8152600490fd5b6112e292935081019061187d565b905f80610fc5565b346101b3575f3660031901126101b35760206040516001600160401b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b346101b3575f3660031901126101b3576020600554604051908152f35b346101b3575f3660031901126101b3576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346101b35760403660031901126101b3576024356001600160401b0381116101b3576113d46113c3602092369060040161045d565b6113cc42611dd8565b6004356115bd565b6040516001600160a01b039091168152f35b346101b3575f3660031901126101b3576020604051620249f08152f35b346101b3575f3660031901126101b357602065ffffffffffff60045416604051908152f35b346101b35761143636610f6b565b9061143f611cc1565b611447611905565b9180611582575b50506003548210156112c25761146382610d3a565b506003815491019182549165ffffffffffff9160018060a01b0361148b8251858716856115bd565b16918215918215611559575b5050611547573303611535576114af61078142611dd8565b908260301c1611156115245760601c60ff1661151257805460ff60601b1916600160601b17905533907f7d3d269c851b72257a5194a401d151902e9be4347d555996dcff3ff86a077e925f80a3610b3f60015f80516020612d6783398151915255565b604051633428e90760e01b8152600490fd5b60405162c457e560e81b8152600490fd5b604051635d154fe160e11b8152600490fd5b60405163dd1ebd9d60e01b8152600490fd5b61157a9250906107419160206115716112aa42611dd8565b910151916115bd565b155f80611497565b61158f925081019061191e565b5f8061144e565b346101b3575f3660031901126101b3575f546040516001600160a01b039091168152602090f35b5f9081526006602052604090206001600160a01b03926115de929091611a1e565b1690565b604051906115ef8261037d565b60608252565b906020828203126101b35781356001600160401b03928382116101b35701906020828203126101b3576040519261162b8461037d565b82359081116101b35761163e920161045d565b815290565b634e487b7160e01b5f52601160045260245ffd5b91909165ffffffffffff8080941691160191821161167157565b611643565b908160209103126101b35751610f0581610359565b6040513d5f823e3d90fd5b65ffffffffffff9081165f19019190821161167157565b65ffffffffffff918216908216039190821161167157565b634e487b7160e01b5f525f60045260245ffd5b600354600160401b811015610398578060016116f79201600355610d3a565b9190916117ba578051825560208101516001830180546001600160a01b0319166001600160a01b0392909216919091179055610433916117a09060a09060039060408501516002820155019261176d65ffffffffffff606083015116859065ffffffffffff1665ffffffffffff19825416179055565b60808101516bffffffffffff00000000000085549160301b16906bffffffffffff00000000000019161784550151151590565b815460ff60601b191690151560601b60ff60601b16179055565b6116c5565b519081151582036101b357565b908160209103126101b357610f05906117bf565b8181029291811591840414171561167157565b906001820180921161167157565b9190820180921161167157565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b5f9081526002602090815260408083206001600160a01b03909416835292905220610f05929190611e0a565b6040519061186b8261039d565b60606040838281528260208201520152565b906020828203126101b35781356001600160401b03928382116101b35701906060828203126101b357604051926118b38461039d565b82358181116101b357826118c891850161045d565b845260208301358181116101b357826118e291850161045d565b602085015260408301359081116101b3576118fd920161045d565b604082015290565b60405190611912826103b8565b60606020838281520152565b906020828203126101b35781356001600160401b03928382116101b35701906040828203126101b35760405192611954846103b8565b82358181116101b3578261196991850161045d565b845260208301359081116101b357611981920161045d565b602082015290565b8054821015610d72575f5260205f2001905f90565b6119a781612663565b6001600160d01b038116156119cc5760016119c29201611989565b90549060031b1c90565b50505f90565b908160209103126101b3575163ffffffff811681036101b35790565b5f1981019190821161167157565b9190820391821161167157565b90600163ffffffff8093160191821161167157565b91805115611b025780602080611a39935183010191016119d2565b91611a4483826126a3565b92611a55845165ffffffffffff1690565b9065ffffffffffff8085169216828114611ae95782119182611a94575b5050611a8257610f0592506129b5565b5050602001516001600160d01b031690565b909150611aa183546119ee565b63ffffffff831614918215611aba575b50505f80611a72565b611ae1919250611ad5611acf61078192611a09565b856126a3565b5165ffffffffffff1690565b115f80611ab1565b50505050602091909101516001600160d01b0316905090565b50610f05916129b5565b9190916040818403126101b3578035611b24816101fb565b9260208201356001600160401b0381116101b357610f05920161045d565b908160209103126101b35751610f05816101fb565b611b6391810190611b0c565b6040516302910f8b60e31b81526001600160a01b0392831660048201819052929160209182816024817f000000000000000000000000000000000000000000000000000000000000000088165afa908115610914575f91611ca4575b5015611c925781611bf4600492611bd46126f7565b5f80546001600160a01b0319166001600160a01b03891617905586612784565b94604051928380926313c085b760e11b82525afa918215610914575f92611c65575b5050161580611c5b575b611c4957516104339015155f805460ff60a01b191691151560a01b60ff60a01b16919091179055565b60405163d2420f5960e01b8152600490fd5b5080511515611c20565b611c849250803d10611c8b575b611c7c81836103e6565b810190611b42565b5f80611c16565b503d611c72565b6040516362df054560e01b8152600490fd5b611cbb9150833d8511610d0b57610cfd81836103e6565b5f611bbf565b5f80516020612d678339815191526002815414611cde5760029055565b604051633ee5aeb560e01b8152600490fd5b604051635daf681960e11b815260609190911c60048201526001600160a01b036020826024817f000000000000000000000000000000000000000000000000000000000000000085165afa918215610914575f92611d66575b5033911603611d5457565b60405163227bf64d60e01b8152600490fd5b611d8091925060203d602011611c8b57611c7c81836103e6565b905f611d49565b9080821015611d94575090565b905090565b90611da382612663565b9180548015611dc4575f190190611dba8282611989565b6117ba575f905555565b634e487b7160e01b5f52603160045260245ffd5b65ffffffffffff90818111611deb571690565b604490604051906306dfcc6560e41b8252603060048301526024820152fd5b91805115611ecc5780602080611e25935183010191016119d2565b91611e308382612903565b92611e41845165ffffffffffff1690565b9065ffffffffffff8085169216828114611ec05782119182611e77575b5050611e6e57610f0592506128f8565b50506020015190565b909150611e8483546119ee565b63ffffffff831614918215611e9d575b50505f80611e5e565b611eb8919250611ad5611eb261078192611a09565b85612903565b115f80611e94565b50505050506020015190565b50610f05916128f8565b81601f820112156101b357805190611eed82610442565b92611efb60405194856103e6565b828452602083830101116101b357815f9260208093018386015e8301015290565b906020828203126101b35781516001600160401b03928382116101b35701906040828203126101b35760405192611f52846103b8565b82518181116101b35782611f67918501611ed6565b845260208301519081116101b3576119819201611ed6565b908160209103126101b3575190565b9081526001600160a01b03909116602082015265ffffffffffff9091166040820152608060608201819052610f059291019061180e565b92611fce611905565b908051806121db575b5050611fe242611dd8565b5f54909490611ffb90610741906001600160a01b031681565b93604051956327f843b560e11b875260209687816004818a5afa80156109145761202f92610781925f926121c357506116ad565b65ffffffffffff82169081109081156121ac575b811561217b575b5061216f578560049560405196878092630ce9b79360e41b82525afa9485156109145761209c9587915f91612152575b50845190604051808099819463e02f693760e01b8352878b8a60048601611f8e565b03916001600160a01b03165afa9384156109145761210e955f95612111575b509261210385936121099361210396869a6120fa610253836120e5875f52600260205260405f2090565b9060018060a01b03165f5260205260405f2090565b95015192611832565b906119fc565b611d87565b91565b61210992955061210394919361213f612103928a3d8c1161214b575b61213781836103e6565b810190611f7f565b969350939194506120bb565b503d61212d565b6121699150823d8411611c8b57611c7c81836103e6565b5f61207a565b5050505050505f905f90565b90506121a5610781612199876120e5875f52600160205260405f2090565b5465ffffffffffff1690565b115f61204a565b90506121ba61078142611dd8565b81101590612043565b6109069192508a3d8c1161090d576108fe81836103e6565b6121ee9250602080918301019101611f1c565b5f80611fd7565b919091805f52600160205265ffffffffffff806122258560405f209060018060a01b03165f5260205260405f2090565b54169083161161223457505050565b6104339261225c915f52600160205260405f209060018060a01b03165f5260205260405f2090565b9065ffffffffffff1665ffffffffffff19825416179055565b9190825f5260026020526122cd6102536122a28360405f209060018060a01b03165f5260205260405f2090565b926122ac42611dd8565b955f52600260205260405f209060018060a01b03165f5260205260405f2090565b918201809211611671576001810190815415612371575b6122ed816128a9565b5094908354956122fc8461199e565b508161235c575b501561233b5750505f198301928311611671576104339261232391611989565b90919082549060031b91821b915f19901b1916179055565b61043394612355926001600160d01b039091169190612b09565b5050612992565b65ffffffffffff83811691161490505f612303565b61237a82612965565b6122e4565b60606020610f05938184526001600160401b0381511682850152015191604080820152019061180e565b919360a093610f05969565ffffffffffff938552600180871b031660208501526040840152166060820152816080820152019061180e565b929390600460206123fe6107416107415f5460018060a01b031690565b604051630ce9b79360e41b815292839182905afa90811561091457610e9c9161247c915f916124cb575b506001600160a01b03169361243b610435565b6001600160401b037f00000000000000000000000000000000000000000000000000000000000000001681529060208201526040519283916020830161237f565b823b156101b3575f946124a786926040519889978896879563724ab0f760e11b8752600487016123a9565b03925af18015610914576124b85750565b806124c5610433926103d3565b806101a9565b6124e4915060203d602011611c8b57611c7c81836103e6565b5f612428565b65ffffffffffff9160446020925f60018060a01b038154166040519687958694631c9e38c760e21b865260048601521660248401525af180156109145761252e5750565b6125469060203d60201161214b5761213781836103e6565b50565b8115612553570490565b634e487b7160e01b5f52601260045260245ffd5b92905f549060ff8260a01c1661257f575b5050505050565b6040516313c085b760e11b815291602090839060049082906001600160a01b03165afa918215610914575f9261263c575b5060405163065c1e0360e01b6020820190815260248201969096526001600160a01b039091166044820152606481019390935265ffffffffffff90911660848301526126098260a481015b03601f1981018452836103e6565b6202a15c5a1061262a575f928380935192620249f0f1505f80808080612578565b604051632153f33560e21b8152600490fd5b612609925061265c6125fb9160203d602011611c8b57611c7c81836103e6565b92506125b0565b8054806126705750505f90565b5f19918183810111611671575f5260205f2001015460301c90565b60405190612698826103b8565b5f6020838281520152565b6126c8916126c2916126b361268b565b506126bc61268b565b50611989565b50612885565b65ffffffffffff81511690602060018060d01b0391015116604051916126ed836103b8565b8252602082015290565b6126ff612a94565b612707612a94565b60015f80516020612d6783398151915255565b604051906127278261037d565b5f8252565b80910390606082126101b3576020604051926127478461039d565b126101b357604090815161275a8161037d565b612763826117bf565b81528352602081015161277581610359565b60208401520151604082015290565b9060049061279061271a565b5080516127a760209283808094830101910161272c565b6040516327f843b560e11b815290949093849182906001600160a01b03165afa918215610914575f92612866575b508201906127e9825165ffffffffffff1690565b65ffffffffffff91821691161015612854576040820160038151106128425761283861281e61283e935165ffffffffffff1690565b65ffffffffffff1665ffffffffffff196004541617600455565b51600555565b5190565b6040516354f778f360e01b8152600490fd5b6040516367d5e3df60e11b8152600490fd5b8161287e9293503d841161090d576108fe81836103e6565b905f6127d5565b90604051612892816103b8565b915465ffffffffffff8116835260301c6020830152565b8054806128ba5750505f905f905f90565b5f19908082810111611671576128d7925f5260205f200101612885565b9065ffffffffffff82511691602060018060d01b0391015116906001929190565b906119a790826129b5565b906129266126c26129479261291661268b565b5061291f61268b565b5084611989565b91600165ffffffffffff845116936020828060d01b03910151169101611989565b90549060405192612957846103b8565b835260031b1c602082015290565b8054600160401b8110156103985761298291600182018155611989565b8154905f199060031b1b19169055565b90815491600160401b831015610398578261232391600161043395018155611989565b908154905f918060058111612a4b575b50915b8281106129fe575050806129dc5750505f90565b610f05916129ec6129f7926119ee565b905f5260205f200190565b5460301c90565b90918082169080831860011c820180921161167157845f5265ffffffffffff808360205f20015416908516105f14612a395750915b906129c8565b929150612a45906117f3565b90612a33565b90612a5582612c28565b820391821161167157845f5265ffffffffffff808360205f20015416908416105f14612a8357505b5f6129c5565b9250612a8e906117f3565b91612a7d565b60ff5f80516020612d878339815191525460401c1615612ab057565b604051631afcd79f60e31b8152600490fd5b8054600160401b81101561039857612adf91600182018155611989565b6117ba57815160209092015160301b65ffffffffffff191665ffffffffffff909216919091179055565b805492939291908215612bff57612b35612b30612b25856119ee565b835f5260205f200190565b612885565b90612b46825165ffffffffffff1690565b65ffffffffffff84811691168110612bed57612bb1946020948892612b74610781875165ffffffffffff1690565b03612bb55750612ba3926129ec612b8a926119ee565b9065ffffffffffff82549181199060301b169116179055565b01516001600160d01b031690565b9190565b915050612be891612bd5612bc7610435565b65ffffffffffff9093168352565b6001600160d01b03881682860152612ac2565b612ba3565b604051632520601d60e01b8152600490fd5b612c239250612c0f612bc7610435565b6001600160d01b0385166020830152612ac2565b5f9190565b8015612d615780612cfa612cf3612ce9612cdf612cd5612ccb612cc1612cb76001610f059a5f908b60801c80612d55575b508060401c80612d48575b508060201c80612d3b575b508060101c80612d2e575b508060081c80612d21575b508060041c80612d14575b508060021c80612d07575b50821c612d00575b811c1b612cb0818b612549565b0160011c90565b612cb0818a612549565b612cb08189612549565b612cb08188612549565b612cb08187612549565b612cb08186612549565b612cb08185612549565b8092612549565b90611d87565b8101612ca3565b600291509101905f612c9b565b600491509101905f612c90565b600891509101905f612c85565b601091509101905f612c7a565b602091509101905f612c6f565b604091509101905f612c64565b9150506080905f612c59565b505f9056fe9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a2646970667358221220c44d0a668c61916d69f6b882dc7b74fb4cb4f53b7b38d1639b46585fd72ce7c264736f6c63430008190033","sourceMap":"707:8662:94:-:0;;;;;;;;;;;;;-1:-1:-1;;707:8662:94;;;;-1:-1:-1;;;;;707:8662:94;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;8837:64:25;707:8662:94;;;;;;;;;7896:76:25;;707:8662:94;;;;7985:34:25;7981:146;;-1:-1:-1;525:17:69;;;707:8662:94;525:17:69;707:8662:94;552:12:69;2353:28:92;;2391:53;;1620:34:94;;;;707:8662;;;;;;;;;;;;;;;;;;;;;;;;2353:28:92;707:8662:94;;;;;;;;;;2391:53:92;707:8662:94;;;;;;;;;;;;;;;;;;;;;7981:146:25;-1:-1:-1;;;;;;707:8662:94;;;;;;;;;;;;;8087:29:25;;707:8662:94;;8087:29:25;7981:146;;;;;7896:76;707:8662:94;;-1:-1:-1;;;7938:23:25;;;;;707:8662:94;-1:-1:-1;707:8662:94;;;;;;-1:-1:-1;707:8662:94;;;;;-1:-1:-1;707:8662:94;;;;-1:-1:-1;;;;;707:8662:94;;;;;;:::o","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361015610011575f80fd5b5f3560e01c8063103f2907146101a45780631a2be2c41461019f578063267de1f31461019a5780632964f8dc146101955780632c9d45b3146101905780632dd310001461018b57806331ce4dfe1461018657806334d098ea14610181578063439fab911461017c578063545ce389146101775780638f42f9ab146101725780639168f9d21461016d5780639a896551146101685780639f86fd8514610163578063aa8e64891461015e578063aab3595f14610159578063b94c386e14610154578063bb24fe8a1461014f578063bc6eac5b1461014a578063c0cd7c3e14610145578063cd05b8a114610140578063d5c24e1a1461013b578063e054e08b14610136578063f9268d18146101315763fbfa77cf1461012c575f80fd5b611596565b611428565b611403565b6113e6565b61138e565b61134a565b61132d565b6112ea565b610f9e565b610f46565b610f08565b610e02565b610d77565b61094c565b61092f565b610695565b61055d565b61050c565b6104a3565b610315565b6102d1565b6102b5565b610260565b61020c565b6101b7565b5f9103126101b357565b5f80fd5b346101b3575f3660031901126101b3576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b6001600160a01b038116036101b357565b346101b35760403660031901126101b3576020610258610253602435610231816101fb565b6004355f526002845260405f209060018060a01b03165f5260205260405f2090565b61199e565b604051908152f35b346101b35760403660031901126101b357602065ffffffffffff6102ab602435610289816101fb565b6004355f526001845260405f209060018060a01b03165f5260205260405f2090565b5416604051908152f35b346101b3575f3660031901126101b3576020604051614e208152f35b346101b3575f3660031901126101b3576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346101b3575f3660031901126101b3576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b65ffffffffffff8116036101b357565b634e487b7160e01b5f52604160045260245ffd5b602081019081106001600160401b0382111761039857604052565b610369565b606081019081106001600160401b0382111761039857604052565b604081019081106001600160401b0382111761039857604052565b6001600160401b03811161039857604052565b90601f801991011681019081106001600160401b0382111761039857604052565b6040519060c082018281106001600160401b0382111761039857604052565b604051906104338261039d565b565b60405190610433826103b8565b6001600160401b03811161039857601f01601f191660200190565b81601f820112156101b35780359061047482610442565b9261048260405194856103e6565b828452602083830101116101b357815f926020809301838601378301015290565b346101b35760603660031901126101b3576024356104c081610359565b604435906001600160401b0382116101b3576105036104e5602093369060040161045d565b6004355f90815260068552604090206001600160a01b039390611a1e565b16604051908152f35b346101b3575f3660031901126101b357602060ff5f5460a01c166040519015158152f35b9181601f840112156101b3578235916001600160401b0383116101b357602083818601950101116101b357565b346101b35760203660031901126101b3576001600160401b036004358181116101b35761058e903690600401610530565b5f80516020612d87833981519152549260ff8460401c161593168015908161068d575b6001149081610683575b15908161067a575b50610668575f80516020612d87833981519152805467ffffffffffffffff191660011790556105f6918361064457611b57565b6105fc57005b5f80516020612d87833981519152805460ff60401b19169055604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a1005b5f80516020612d87833981519152805460ff60401b1916600160401b179055611b57565b60405163f92ee8a960e01b8152600490fd5b9050155f6105c3565b303b1591506105bb565b8491506105b1565b346101b35760a03660031901126101b357600460243581356106b6826101fb565b606435916106c383610359565b6084356001600160401b0381116101b3576106e19036908601610530565b93906106eb611cc1565b6106f484611cf0565b6106fc6115e2565b9480610919575b505061070e42611dd8565b610728610721875465ffffffffffff1690565b8092611657565b5f5490959061074d90610741906001600160a01b031681565b6001600160a01b031690565b958760206040988951928380926327f843b560e11b82525afa80156109145761078c92610781925f926108e3575b506116ad565b65ffffffffffff1690565b65ffffffffffff84169081109081156108cd575b506108bd576107b56107be9151848688611fc5565b50604435611d87565b9586156108af576108ab610884878988887f3cb7f4ff6cecf74cee0eb9ae3ebf8933fa60a53014cce52f96da72a78dba8464896108038a6107fe42611dd8565b611657565b92600354978894610854610815610407565b8881526001600160a01b0385166020820152808b018a905265ffffffffffff8616606082015265ffffffffffff831660808201525f60a08201526116d8565b885197885265ffffffffffff938416602089015290921660408701526001600160a01b0316949081906060820190565b0390a461089d60015f80516020612d6783398151915255565b519081529081906020820190565b0390f35b855163167f871760e31b8152fd5b8551631357ac9160e11b81528790fd5b90506108db61078142611dd8565b11155f6107a0565b61090691925060203d60201161090d575b6108fe81836103e6565b810190611676565b905f61077b565b503d6108f4565b61168b565b6109279295508101906115f5565b925f80610703565b346101b3575f3660031901126101b3576020600354604051908152f35b346101b35760603660031901126101b35760048035906bffffffffffffffffffffffff821682036101b357602435610983816101fb565b6044356001600160401b0381116101b3576109a19036908401610530565b906109aa611cc1565b6109b26115e2565b5081610d12575b5050604080516302910f8b60e31b8152338185019081526001600160a01b0395929491602091829082908190830103818a7f0000000000000000000000000000000000000000000000000000000000000000165afa908115610914575f91610ce5575b5015610cd6575f54610a57906001600160a01b0316936bffffffffffffffffffffffff166bffffffffffffffffffffffff193360601b161790565b95610a72610a6d885f52600660205260405f2090565b6128a9565b50949015610c6c57610a8661078142611dd8565b65ffffffffffff9586161115610c3657610ab0610aab895f52600660205260405f2090565b611d99565b505b610ad5610741610741610741610ad08c5f52600660205260405f2090565b612663565b91808716928303610b41575b505050505050610b26907f7b0b759b513b299fd2811f51926dca8854222a675557e8d544ce0933bf5b7570925b516001600160a01b0390911681529081906020820190565b0390a2610b3f60015f80516020612d6783398151915255565b005b610b588998959796985f52600660205260405f2090565b911692845163186a323160e21b815281818981885afa908115610914575f91610c19575b5081600554958751998a80926327f843b560e11b82525afa9081156109145789610be1610bf3977f7b0b759b513b299fd2811f51926dca8854222a675557e8d544ce0933bf5b75709c610be895610b269d610bed985f92610bfc575b505016906117e0565b9116611801565b611dd8565b90612b09565b82958495610ae1565b610c129250803d1061090d576108fe81836103e6565b5f80610bd8565b610c309150823d841161090d576108fe81836103e6565b5f610b7c565b610c54610741610741610741610ad08c5f52600660205260405f2090565b82871603610ab257865163a741a04560e01b81528490fd5b5093949385169250508115610cc8575091610b2691610cc17f7b0b759b513b299fd2811f51926dca8854222a675557e8d544ce0933bf5b757094610cb8875f52600660205260405f2090565b610bed42611dd8565b5050610b0e565b825163a741a04560e01b8152fd5b5083516323d53b9760e21b8152fd5b610d059150823d8411610d0b575b610cfd81836103e6565b8101906117cc565b5f610a1c565b503d610cf3565b610d1e918101906115f5565b505f806109b9565b634e487b7160e01b5f52603260045260245ffd5b600354811015610d725760035f5260021b7fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b01905f90565b610d26565b346101b35760203660031901126101b3576004356003548110156101b357610d9e90610d3a565b50805460018201546002830154600390930154604080519384526001600160a01b0390921660208401529082019290925265ffffffffffff808316606080840191909152603084901c90911660808301529190911c60ff16151560a082015260c090f35b346101b3576040806003193601126101b357600435610e20816101fb565b602435906001600160401b0382116101b3575f8091610e46610eaa943690600401610530565b908187519283928337810184815203915af43d15610eb257610e9c3d610e6b81610442565b90610e78865192836103e6565b81523d5f602083013e5b84519485931515602085015280840152606083019061180e565b03601f1981018352826103e6565b805190602001fd5b610e9c6060610e82565b9060806003198301126101b35760043591602435610ed9816101fb565b91604435610ee681610359565b91606435906001600160401b0382116101b357610f059160040161045d565b90565b346101b3576020610258610f41610f1e36610ebc565b939190925f526002865260405f209060018060a01b03165f5260205260405f2090565b611e0a565b346101b3576020610f62610f5936610ebc565b92919091611fc5565b50604051908152f35b9060406003198301126101b35760043591602435906001600160401b0382116101b357610f9a91600401610530565b9091565b346101b357610fac36610f6b565b9190610fb6611cc1565b610fbe61185e565b92806112d4575b50506003548110156112c257610fda81610d3a565b5090815490610fe882611cf0565b6003830180549365ffffffffffff9384861660018060a01b0361100d895183856115bd565b16151580611297575b8061127e575b61126c576110328161102d42611dd8565b6116ad565b5f5461104890610741906001600160a01b031681565b96600460206040998a51928380926327f843b560e11b82525afa80156109145782915f9161124d575b501691161161123c57600183018054909861109c93929188906001600160a01b031691015192611fc5565b906110ab816002850154611d87565b96871561122b5760601c60ff1661121a57926111d36111c6899461119e61118b8b9687876108ab9f6111998f9d8f9e6111d99f6110f586600160601b60ff60601b19825416179055565b8a54855461111791906001600160a01b0316885465ffffffffffff16916121f5565b8a5485546111309189916001600160a01b031690612275565b8a54945461114e906001600160a01b0316965465ffffffffffff1690565b97611157610426565b9384526020840152818301525196879160208301919091604080606083019480518452602081015160208501520151910152565b03601f1981018752866103e6565b6123e1565b6111b76111b1855465ffffffffffff1690565b866124ea565b5494546001600160a01b031690565b915465ffffffffffff1690565b92612567565b81518381527f5cc28df3b54da9d06f805d87616ebf969c81310f2aa8369cb14ca50f815d411190602090a261089d60015f80516020612d6783398151915255565b8551633428e90760e01b8152600490fd5b865163167f871760e31b8152600490fd5b8551639ea153eb60e01b8152600490fd5b611266915060203d60201161090d576108fe81836103e6565b5f611071565b60405163b62b15c760e01b8152600490fd5b5061128b61078142611dd8565b868860301c161161101c565b506112bb6107416112af6112aa42611dd8565b611696565b60208b015190856115bd565b1515611016565b604051637822972360e11b8152600490fd5b6112e292935081019061187d565b905f80610fc5565b346101b3575f3660031901126101b35760206040516001600160401b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b346101b3575f3660031901126101b3576020600554604051908152f35b346101b3575f3660031901126101b3576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346101b35760403660031901126101b3576024356001600160401b0381116101b3576113d46113c3602092369060040161045d565b6113cc42611dd8565b6004356115bd565b6040516001600160a01b039091168152f35b346101b3575f3660031901126101b3576020604051620249f08152f35b346101b3575f3660031901126101b357602065ffffffffffff60045416604051908152f35b346101b35761143636610f6b565b9061143f611cc1565b611447611905565b9180611582575b50506003548210156112c25761146382610d3a565b506003815491019182549165ffffffffffff9160018060a01b0361148b8251858716856115bd565b16918215918215611559575b5050611547573303611535576114af61078142611dd8565b908260301c1611156115245760601c60ff1661151257805460ff60601b1916600160601b17905533907f7d3d269c851b72257a5194a401d151902e9be4347d555996dcff3ff86a077e925f80a3610b3f60015f80516020612d6783398151915255565b604051633428e90760e01b8152600490fd5b60405162c457e560e81b8152600490fd5b604051635d154fe160e11b8152600490fd5b60405163dd1ebd9d60e01b8152600490fd5b61157a9250906107419160206115716112aa42611dd8565b910151916115bd565b155f80611497565b61158f925081019061191e565b5f8061144e565b346101b3575f3660031901126101b3575f546040516001600160a01b039091168152602090f35b5f9081526006602052604090206001600160a01b03926115de929091611a1e565b1690565b604051906115ef8261037d565b60608252565b906020828203126101b35781356001600160401b03928382116101b35701906020828203126101b3576040519261162b8461037d565b82359081116101b35761163e920161045d565b815290565b634e487b7160e01b5f52601160045260245ffd5b91909165ffffffffffff8080941691160191821161167157565b611643565b908160209103126101b35751610f0581610359565b6040513d5f823e3d90fd5b65ffffffffffff9081165f19019190821161167157565b65ffffffffffff918216908216039190821161167157565b634e487b7160e01b5f525f60045260245ffd5b600354600160401b811015610398578060016116f79201600355610d3a565b9190916117ba578051825560208101516001830180546001600160a01b0319166001600160a01b0392909216919091179055610433916117a09060a09060039060408501516002820155019261176d65ffffffffffff606083015116859065ffffffffffff1665ffffffffffff19825416179055565b60808101516bffffffffffff00000000000085549160301b16906bffffffffffff00000000000019161784550151151590565b815460ff60601b191690151560601b60ff60601b16179055565b6116c5565b519081151582036101b357565b908160209103126101b357610f05906117bf565b8181029291811591840414171561167157565b906001820180921161167157565b9190820180921161167157565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b5f9081526002602090815260408083206001600160a01b03909416835292905220610f05929190611e0a565b6040519061186b8261039d565b60606040838281528260208201520152565b906020828203126101b35781356001600160401b03928382116101b35701906060828203126101b357604051926118b38461039d565b82358181116101b357826118c891850161045d565b845260208301358181116101b357826118e291850161045d565b602085015260408301359081116101b3576118fd920161045d565b604082015290565b60405190611912826103b8565b60606020838281520152565b906020828203126101b35781356001600160401b03928382116101b35701906040828203126101b35760405192611954846103b8565b82358181116101b3578261196991850161045d565b845260208301359081116101b357611981920161045d565b602082015290565b8054821015610d72575f5260205f2001905f90565b6119a781612663565b6001600160d01b038116156119cc5760016119c29201611989565b90549060031b1c90565b50505f90565b908160209103126101b3575163ffffffff811681036101b35790565b5f1981019190821161167157565b9190820391821161167157565b90600163ffffffff8093160191821161167157565b91805115611b025780602080611a39935183010191016119d2565b91611a4483826126a3565b92611a55845165ffffffffffff1690565b9065ffffffffffff8085169216828114611ae95782119182611a94575b5050611a8257610f0592506129b5565b5050602001516001600160d01b031690565b909150611aa183546119ee565b63ffffffff831614918215611aba575b50505f80611a72565b611ae1919250611ad5611acf61078192611a09565b856126a3565b5165ffffffffffff1690565b115f80611ab1565b50505050602091909101516001600160d01b0316905090565b50610f05916129b5565b9190916040818403126101b3578035611b24816101fb565b9260208201356001600160401b0381116101b357610f05920161045d565b908160209103126101b35751610f05816101fb565b611b6391810190611b0c565b6040516302910f8b60e31b81526001600160a01b0392831660048201819052929160209182816024817f000000000000000000000000000000000000000000000000000000000000000088165afa908115610914575f91611ca4575b5015611c925781611bf4600492611bd46126f7565b5f80546001600160a01b0319166001600160a01b03891617905586612784565b94604051928380926313c085b760e11b82525afa918215610914575f92611c65575b5050161580611c5b575b611c4957516104339015155f805460ff60a01b191691151560a01b60ff60a01b16919091179055565b60405163d2420f5960e01b8152600490fd5b5080511515611c20565b611c849250803d10611c8b575b611c7c81836103e6565b810190611b42565b5f80611c16565b503d611c72565b6040516362df054560e01b8152600490fd5b611cbb9150833d8511610d0b57610cfd81836103e6565b5f611bbf565b5f80516020612d678339815191526002815414611cde5760029055565b604051633ee5aeb560e01b8152600490fd5b604051635daf681960e11b815260609190911c60048201526001600160a01b036020826024817f000000000000000000000000000000000000000000000000000000000000000085165afa918215610914575f92611d66575b5033911603611d5457565b60405163227bf64d60e01b8152600490fd5b611d8091925060203d602011611c8b57611c7c81836103e6565b905f611d49565b9080821015611d94575090565b905090565b90611da382612663565b9180548015611dc4575f190190611dba8282611989565b6117ba575f905555565b634e487b7160e01b5f52603160045260245ffd5b65ffffffffffff90818111611deb571690565b604490604051906306dfcc6560e41b8252603060048301526024820152fd5b91805115611ecc5780602080611e25935183010191016119d2565b91611e308382612903565b92611e41845165ffffffffffff1690565b9065ffffffffffff8085169216828114611ec05782119182611e77575b5050611e6e57610f0592506128f8565b50506020015190565b909150611e8483546119ee565b63ffffffff831614918215611e9d575b50505f80611e5e565b611eb8919250611ad5611eb261078192611a09565b85612903565b115f80611e94565b50505050506020015190565b50610f05916128f8565b81601f820112156101b357805190611eed82610442565b92611efb60405194856103e6565b828452602083830101116101b357815f9260208093018386015e8301015290565b906020828203126101b35781516001600160401b03928382116101b35701906040828203126101b35760405192611f52846103b8565b82518181116101b35782611f67918501611ed6565b845260208301519081116101b3576119819201611ed6565b908160209103126101b3575190565b9081526001600160a01b03909116602082015265ffffffffffff9091166040820152608060608201819052610f059291019061180e565b92611fce611905565b908051806121db575b5050611fe242611dd8565b5f54909490611ffb90610741906001600160a01b031681565b93604051956327f843b560e11b875260209687816004818a5afa80156109145761202f92610781925f926121c357506116ad565b65ffffffffffff82169081109081156121ac575b811561217b575b5061216f578560049560405196878092630ce9b79360e41b82525afa9485156109145761209c9587915f91612152575b50845190604051808099819463e02f693760e01b8352878b8a60048601611f8e565b03916001600160a01b03165afa9384156109145761210e955f95612111575b509261210385936121099361210396869a6120fa610253836120e5875f52600260205260405f2090565b9060018060a01b03165f5260205260405f2090565b95015192611832565b906119fc565b611d87565b91565b61210992955061210394919361213f612103928a3d8c1161214b575b61213781836103e6565b810190611f7f565b969350939194506120bb565b503d61212d565b6121699150823d8411611c8b57611c7c81836103e6565b5f61207a565b5050505050505f905f90565b90506121a5610781612199876120e5875f52600160205260405f2090565b5465ffffffffffff1690565b115f61204a565b90506121ba61078142611dd8565b81101590612043565b6109069192508a3d8c1161090d576108fe81836103e6565b6121ee9250602080918301019101611f1c565b5f80611fd7565b919091805f52600160205265ffffffffffff806122258560405f209060018060a01b03165f5260205260405f2090565b54169083161161223457505050565b6104339261225c915f52600160205260405f209060018060a01b03165f5260205260405f2090565b9065ffffffffffff1665ffffffffffff19825416179055565b9190825f5260026020526122cd6102536122a28360405f209060018060a01b03165f5260205260405f2090565b926122ac42611dd8565b955f52600260205260405f209060018060a01b03165f5260205260405f2090565b918201809211611671576001810190815415612371575b6122ed816128a9565b5094908354956122fc8461199e565b508161235c575b501561233b5750505f198301928311611671576104339261232391611989565b90919082549060031b91821b915f19901b1916179055565b61043394612355926001600160d01b039091169190612b09565b5050612992565b65ffffffffffff83811691161490505f612303565b61237a82612965565b6122e4565b60606020610f05938184526001600160401b0381511682850152015191604080820152019061180e565b919360a093610f05969565ffffffffffff938552600180871b031660208501526040840152166060820152816080820152019061180e565b929390600460206123fe6107416107415f5460018060a01b031690565b604051630ce9b79360e41b815292839182905afa90811561091457610e9c9161247c915f916124cb575b506001600160a01b03169361243b610435565b6001600160401b037f00000000000000000000000000000000000000000000000000000000000000001681529060208201526040519283916020830161237f565b823b156101b3575f946124a786926040519889978896879563724ab0f760e11b8752600487016123a9565b03925af18015610914576124b85750565b806124c5610433926103d3565b806101a9565b6124e4915060203d602011611c8b57611c7c81836103e6565b5f612428565b65ffffffffffff9160446020925f60018060a01b038154166040519687958694631c9e38c760e21b865260048601521660248401525af180156109145761252e5750565b6125469060203d60201161214b5761213781836103e6565b50565b8115612553570490565b634e487b7160e01b5f52601260045260245ffd5b92905f549060ff8260a01c1661257f575b5050505050565b6040516313c085b760e11b815291602090839060049082906001600160a01b03165afa918215610914575f9261263c575b5060405163065c1e0360e01b6020820190815260248201969096526001600160a01b039091166044820152606481019390935265ffffffffffff90911660848301526126098260a481015b03601f1981018452836103e6565b6202a15c5a1061262a575f928380935192620249f0f1505f80808080612578565b604051632153f33560e21b8152600490fd5b612609925061265c6125fb9160203d602011611c8b57611c7c81836103e6565b92506125b0565b8054806126705750505f90565b5f19918183810111611671575f5260205f2001015460301c90565b60405190612698826103b8565b5f6020838281520152565b6126c8916126c2916126b361268b565b506126bc61268b565b50611989565b50612885565b65ffffffffffff81511690602060018060d01b0391015116604051916126ed836103b8565b8252602082015290565b6126ff612a94565b612707612a94565b60015f80516020612d6783398151915255565b604051906127278261037d565b5f8252565b80910390606082126101b3576020604051926127478461039d565b126101b357604090815161275a8161037d565b612763826117bf565b81528352602081015161277581610359565b60208401520151604082015290565b9060049061279061271a565b5080516127a760209283808094830101910161272c565b6040516327f843b560e11b815290949093849182906001600160a01b03165afa918215610914575f92612866575b508201906127e9825165ffffffffffff1690565b65ffffffffffff91821691161015612854576040820160038151106128425761283861281e61283e935165ffffffffffff1690565b65ffffffffffff1665ffffffffffff196004541617600455565b51600555565b5190565b6040516354f778f360e01b8152600490fd5b6040516367d5e3df60e11b8152600490fd5b8161287e9293503d841161090d576108fe81836103e6565b905f6127d5565b90604051612892816103b8565b915465ffffffffffff8116835260301c6020830152565b8054806128ba5750505f905f905f90565b5f19908082810111611671576128d7925f5260205f200101612885565b9065ffffffffffff82511691602060018060d01b0391015116906001929190565b906119a790826129b5565b906129266126c26129479261291661268b565b5061291f61268b565b5084611989565b91600165ffffffffffff845116936020828060d01b03910151169101611989565b90549060405192612957846103b8565b835260031b1c602082015290565b8054600160401b8110156103985761298291600182018155611989565b8154905f199060031b1b19169055565b90815491600160401b831015610398578261232391600161043395018155611989565b908154905f918060058111612a4b575b50915b8281106129fe575050806129dc5750505f90565b610f05916129ec6129f7926119ee565b905f5260205f200190565b5460301c90565b90918082169080831860011c820180921161167157845f5265ffffffffffff808360205f20015416908516105f14612a395750915b906129c8565b929150612a45906117f3565b90612a33565b90612a5582612c28565b820391821161167157845f5265ffffffffffff808360205f20015416908416105f14612a8357505b5f6129c5565b9250612a8e906117f3565b91612a7d565b60ff5f80516020612d878339815191525460401c1615612ab057565b604051631afcd79f60e31b8152600490fd5b8054600160401b81101561039857612adf91600182018155611989565b6117ba57815160209092015160301b65ffffffffffff191665ffffffffffff909216919091179055565b805492939291908215612bff57612b35612b30612b25856119ee565b835f5260205f200190565b612885565b90612b46825165ffffffffffff1690565b65ffffffffffff84811691168110612bed57612bb1946020948892612b74610781875165ffffffffffff1690565b03612bb55750612ba3926129ec612b8a926119ee565b9065ffffffffffff82549181199060301b169116179055565b01516001600160d01b031690565b9190565b915050612be891612bd5612bc7610435565b65ffffffffffff9093168352565b6001600160d01b03881682860152612ac2565b612ba3565b604051632520601d60e01b8152600490fd5b612c239250612c0f612bc7610435565b6001600160d01b0385166020830152612ac2565b5f9190565b8015612d615780612cfa612cf3612ce9612cdf612cd5612ccb612cc1612cb76001610f059a5f908b60801c80612d55575b508060401c80612d48575b508060201c80612d3b575b508060101c80612d2e575b508060081c80612d21575b508060041c80612d14575b508060021c80612d07575b50821c612d00575b811c1b612cb0818b612549565b0160011c90565b612cb0818a612549565b612cb08189612549565b612cb08188612549565b612cb08187612549565b612cb08186612549565b612cb08185612549565b8092612549565b90611d87565b8101612ca3565b600291509101905f612c9b565b600491509101905f612c90565b600891509101905f612c85565b601091509101905f612c7a565b602091509101905f612c6f565b604091509101905f612c64565b9150506080905f612c59565b505f9056fe9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a2646970667358221220c44d0a668c61916d69f6b882dc7b74fb4cb4f53b7b38d1639b46585fd72ce7c264736f6c63430008190033","sourceMap":"707:8662:94:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;;;;;;:::o;:::-;;;;;;;;;;-1:-1:-1;;707:8662:94;;;;;;1435:38:92;-1:-1:-1;;;;;707:8662:94;;;;;;;-1:-1:-1;;;;;707:8662:94;;;;;:::o;:::-;;;;;;-1:-1:-1;;707:8662:94;;;;;2936:47:92;:38;707:8662:94;;;;;:::i;:::-;;;-1:-1:-1;707:8662:94;2936:16:92;707:8662:94;;;-1:-1:-1;707:8662:94;;;;;;;;;;;;;;;;;2936:38:92;:47;:::i;:::-;707:8662:94;;;;;;;;;;;;-1:-1:-1;;707:8662:94;;;;;;1788:109:92;707:8662:94;;;;;:::i;:::-;;;-1:-1:-1;707:8662:94;1788:109:92;707:8662:94;;;-1:-1:-1;707:8662:94;;;;;;;;;;;;;;;;;1788:109:92;707:8662:94;;;;;;;;;;;;;;-1:-1:-1;;707:8662:94;;;;;;;1374:6:92;707:8662:94;;;;;;;;;-1:-1:-1;;707:8662:94;;;;;;1528:51:92;-1:-1:-1;;;;;707:8662:94;;;;;;;;;;;;-1:-1:-1;;707:8662:94;;;;;;322:32:69;-1:-1:-1;;;;;707:8662:94;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;707:8662:94;;;;;;;:::o;:::-;;:::i;:::-;;;;;;;-1:-1:-1;;;;;707:8662:94;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;707:8662:94;;;;;;;:::o;:::-;-1:-1:-1;;;;;707:8662:94;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;707:8662:94;;;;;;;:::o;:::-;;;;;;;;;;-1:-1:-1;;;;;707:8662:94;;;;;;;:::o;:::-;;;;;;;:::i;:::-;:::o;:::-;;;;;;;:::i;:::-;-1:-1:-1;;;;;707:8662:94;;;;;;-1:-1:-1;;707:8662:94;;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;707:8662:94;;;;;;;;;;;;;;:::o;:::-;;;;;;-1:-1:-1;;707:8662:94;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;707:8662:94;;;;2016:56;707:8662;;;;;;;;:::i;:::-;;;-1:-1:-1;707:8662:94;;;2016:9;707:8662;;;;;-1:-1:-1;;;;;707:8662:94;;2016:56;:::i;:::-;707:8662;;;;;;;;;;;;;-1:-1:-1;;707:8662:94;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;707:8662:94;;;;;;;;;;;;;;;:::o;:::-;;;;;;-1:-1:-1;;707:8662:94;;;;-1:-1:-1;;;;;707:8662:94;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;707:8662:94;;;;;;;4301:16:25;707:8662:94;;4726:16:25;;:34;;;;707:8662:94;4805:1:25;4790:16;:50;;;;707:8662:94;4855:13:25;:30;;;;707:8662:94;4851:91:25;;;-1:-1:-1;;;;;;;;;;;707:8662:94;;-1:-1:-1;;707:8662:94;;;;;718:4:69;;4951:18:25;4979:67;;718:4:69;:::i;:::-;5066:101:25;;707:8662:94;5066:101:25;-1:-1:-1;;;;;;;;;;;707:8662:94;;-1:-1:-1;;;;707:8662:94;;;;;-1:-1:-1;707:8662:94;;5142:14:25;;707:8662:94;;5142:14:25;707:8662:94;4979:67:25;-1:-1:-1;;;;;;;;;;;707:8662:94;;-1:-1:-1;;;;707:8662:94;-1:-1:-1;;;707:8662:94;;;718:4:69;:::i;4851:91:25:-;707:8662:94;;-1:-1:-1;;;4908:23:25;;707:8662:94;;4908:23:25;4855:30;4872:13;;;4855:30;;;4790:50;4818:4;4810:25;:30;;-1:-1:-1;4790:50:25;;4726:34;;;-1:-1:-1;4726:34:25;;707:8662:94;;;;;;-1:-1:-1;;707:8662:94;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;707:8662:94;;;;;;;;;;;:::i;:::-;3217:103:28;;;;:::i;:::-;2123:10:92;;;:::i;:::-;707:8662:94;;:::i;:::-;2666:16;;2662:105;;707:8662;837:15:62;;819:34;837:15;819:34;:::i;:::-;2813:31:94;707:8662;;;;;;;;2813:31;;;:::i;:::-;-1:-1:-1;707:8662:94;;;;2847:27;;:13;;-1:-1:-1;;;;;707:8662:94;2847:13;707:8662;;-1:-1:-1;;;;;707:8662:94;;;2847:27;707:8662;;;;;;;;;;;;;;2847:29;;;;;;;;2794:82;2847:29;2813:63;2847:29;-1:-1:-1;2847:29:94;;;707:8662;2813:63;;:::i;:::-;707:8662;;;;2794:82;707:8662;;;2794:82;;;:138;;;;;707:8662;2777:223;;;3248:62:92;3019:133:94;3104:37;;3248:62:92;;;;:::i;:::-;707:8662:94;;;3019:133;:::i;:::-;3166:11;;;3162:68;;707:8662;3671:86;837:15:62;;;;3671:86:94;837:15:62;3262:31:94;837:15:62;819:34;837:15;819:34;:::i;:::-;3262:31:94;:::i;:::-;707:8662;3317:13;707:8662;;;;3347:308;707:8662;;:::i;:::-;;;;-1:-1:-1;;;;;707:8662:94;;;3379:266;;707:8662;3379:266;;;707:8662;;;;;;;3379:266;;707:8662;;;;;3379:266;;707:8662;-1:-1:-1;707:8662:94;3379:266;;707:8662;3347:308;:::i;:::-;707:8662;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;707:8662:94;;;;;;;;;;3671:86;;;;3282:1:28;1805;-1:-1:-1;;;;;;;;;;;707:8662:94;3716:283:28;3282:1;707:8662:94;;;;;;;;;;;;;;;;3162:68;707:8662;;-1:-1:-1;;;3200:19:94;;;2777:223;707:8662;;-1:-1:-1;;;2964:25:94;;707:8662;;2964:25;2794:138;837:15:62;;2896:36:94;819:34:62;837:15;819:34;:::i;2896:36:94:-;-1:-1:-1;2896:36:94;2794:138;;;2847:29;;;;;707:8662;2847:29;707:8662;2847:29;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;;:::i;2662:105::-;2718:38;;;;;;;;:::i;:::-;2662:105;;;;;707:8662;;;;;;-1:-1:-1;;707:8662:94;;;;;1795:13;707:8662;;;;;;;;;;;;;-1:-1:-1;;707:8662:94;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;707:8662:94;;;;;;;;;;;:::i;:::-;3217:103:28;;;:::i;:::-;707:8662:94;;:::i;:::-;;7493:16;7489:103;;707:8662;-1:-1:-1;;707:8662:94;;;-1:-1:-1;;;7607:48:94;;7644:10;7607:48;;;707:8662;;;-1:-1:-1;;;;;707:8662:94;;;;;;;;;;;;;;7607:48;7617:16;;;707:8662;7607:48;;;;;;;-1:-1:-1;7607:48:94;;;707:8662;7606:49;;7602:99;;-1:-1:-1;707:8662:94;7764:35;;-1:-1:-1;;;;;707:8662:94;7644:10;707:8662;;-1:-1:-1;;7644:10:94;297:2:88;707:8662:94;;267:46:88;;152:169;7764:35:94;7850:21;5260:30:86;7850:21:94;;707:8662;;7850:9;707:8662;;;;;;;7850:21;5260:30:86;:::i;:::-;-1:-1:-1;7900:801:94;;;;;7930:34;819::62;837:15;819:34;:::i;7930::94:-;707:8662;;;;7930:34;;;;7984:27;:21;;707:8662;;7850:9;707:8662;;;;;;;7984:21;:27;:::i;:::-;;7926:225;8169:61;8182:48;8190:39;4928:20:86;8198:21:94;;707:8662;;7850:9;707:8662;;;;;;;8198:21;4928:20:86;:::i;8169:61:94:-;707:8662;;;;8169:61;;;8165:336;;7926:225;7900:801;;;;;;8716:34;7900:801;8716:34;7900:801;;707:8662;-1:-1:-1;;;;;707:8662:94;;;;;;;;;;;;;8716:34;;;;3282:1:28;1805;-1:-1:-1;;;;;;;;;;;707:8662:94;3716:283:28;3282:1;707:8662:94;8165:336;8250:21;;;;;;;707:8662;;7850:9;707:8662;;;;;;;8250:21;707:8662;;;;;;;;8299:34;;;;;;;;;;;;;;-1:-1:-1;8299:34:94;;;8165:336;707:8662;;8336:22;707:8662;;;;;;;;;;;8361:30;;;;;;;;;;8336:55;8167:38:60;8361:30:94;8716:34;8361:30;8299:92;8361:30;8716:34;8361:30;8298:130;8361:30;-1:-1:-1;8361:30:94;;;8165:336;707:8662;;;8336:55;;:::i;:::-;707:8662;;8299:92;:::i;:::-;8298:130;:::i;:::-;8167:38:60;;:::i;:::-;8165:336:94;;;;;;8361:30;;;;;;-1:-1:-1;8361:30:94;;;;;;:::i;:::-;;;;;8299:34;;;;;;;;;;;;;;:::i;:::-;;;;7926:225;8036:61;8049:48;8057:39;4928:20:86;8065:21:94;;707:8662;;7850:9;707:8662;;;;;;;8036:61;707:8662;;;8036:61;7926:225;8032:119;707:8662;;-1:-1:-1;;;8124:12:94;;707:8662;;8124:12;7900:801;-1:-1:-1;707:8662:94;;;;;;-1:-1:-1;;8535:23:94;;8531:81;;8626:21;;8716:34;8626:21;8167:38:60;8716:34:94;8626:21;;;707:8662;;7850:9;707:8662;;;;;;;8626:21;819:34:62;837:15;819:34;:::i;8167:38:60:-;7900:801:94;;;;8531:81;707:8662;;-1:-1:-1;;;8585:12:94;;;7602:99;-1:-1:-1;707:8662:94;;-1:-1:-1;;;7678:12:94;;;7607:48;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;7489:103;7544:37;;;;;;:::i;:::-;;7489:103;;;;707:8662;;;;;;;;;;;;;1050:35;707:8662;;;;;;1050:35;-1:-1:-1;707:8662:94;;;;;;-1:-1:-1;707:8662:94;:::o;:::-;;:::i;:::-;;;;;;-1:-1:-1;;707:8662:94;;;;;;1050:35;707:8662;1050:35;;;;;;;;:::i;:::-;-1:-1:-1;707:8662:94;;;1050:35;;707:8662;1050:35;;;707:8662;1050:35;;;;707:8662;;;;;;;-1:-1:-1;;;;;707:8662:94;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;707:8662:94;;;;-1:-1:-1;707:8662:94;;;477:31:75;707:8662:94;;;;;;:::i;:::-;;;;;;;;;;;;;;;416:25:75;;;;707:8662:94;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;-1:-1:-1;707:8662:94;;;;;;;;;;;;;477:31:75;;707:8662:94;;;;;;;;;;:::i;:::-;477:31:75;707:8662:94;;477:31:75;;;;;;:::i;:::-;518:79;;;707:8662:94;518:79:75;;707:8662:94;;;;;;;;-1:-1:-1;;707:8662:94;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;-1:-1:-1;;;;;707:8662:94;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;2692:73:92;:38;707:8662:94;;;:::i;:::-;;;;;-1:-1:-1;707:8662:94;2692:16:92;707:8662:94;;;-1:-1:-1;707:8662:94;;;;;;;;;;;;;;;;;2692:38:92;:73;:::i;707:8662:94:-;;;;;3248:62:92;707:8662:94;;;:::i;:::-;3248:62:92;;;;;:::i;:::-;707:8662:94;;;;;;;;;;-1:-1:-1;;707:8662:94;;;;;;;;;;;-1:-1:-1;;;;;707:8662:94;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;:::i;:::-;3217:103:28;;;;:::i;:::-;707:8662:94;;:::i;:::-;4024:16;;4020:105;;707:8662;;;4153:13;707:8662;4139:34;;;4135:94;;4270:25;;;:::i;:::-;707:8662;;;;4330:18;;;;:::i;:::-;4153:13;4408:24;;707:8662;;;;;;;;;;;;;4377:95;4434:37;;4377:95;;;:::i;:::-;707:8662;4377:125;;:250;;;707:8662;4377:309;;;707:8662;4360:389;;4763:43;837:15:62;819:34;837:15;819:34;:::i;:::-;4763:43:94;:::i;:::-;-1:-1:-1;707:8662:94;4809:27;;:13;;-1:-1:-1;;;;;707:8662:94;4809:13;707:8662;4809:27;707:8662;;4809:29;707:8662;;;;;;;;;;;4809:29;;;;;;;;;;-1:-1:-1;4809:29:94;;;707:8662;;;;;4763:75;4759:131;;4994:16;;;707:8662;;4994:16;;4945:140;;4994:16;;707:8662;;-1:-1:-1;;;;;707:8662:94;5038:37;;;4945:140;;:::i;:::-;5120:14;5111:41;5120:14;;;;707:8662;5111:41;:::i;:::-;5166:18;;;5162:75;;707:8662;;;;5247:78;;5335:24;707:8662;;5335:24;;5725:145;;5335:24;;;;707:8662;5335:24;5725:145;5335:24;;;;6024;5335;;;707:8662;;;;;;;;;;;;;;5335:24;707:8662;;;;5445:24;;707:8662;-1:-1:-1;;;;;707:8662:94;;;;;5445:24;;:::i;:::-;707:8662;;;;5542:13;;707:8662;;-1:-1:-1;;;;;707:8662:94;5542:13;;:::i;:::-;707:8662;;;;;;-1:-1:-1;;;;;707:8662:94;;;;;;;;;;;:::i;:::-;;;;4809:29;5753:103;;707:8662;5753:103;;;707:8662;;5725:145;;;4809:29;5725:145;;707:8662;;;;;;;;;;;;;;;;;;;;;;;;;;;5725:145;;707:8662;;5725:145;;;;;;:::i;:::-;;:::i;:::-;5920:24;707:8662;;;;;;;;5920:24;;:::i;:::-;707:8662;;;-1:-1:-1;;;;;707:8662:94;;;;;;;;;;;6024:24;;:::i;:::-;707:8662;;;;;6065:39;;707:8662;;6065:39;3282:1:28;1805;-1:-1:-1;;;;;;;;;;;707:8662:94;3716:283:28;5247:78:94;707:8662;;-1:-1:-1;;;5291:23:94;;707:8662;;5291:23;5162:75;707:8662;;-1:-1:-1;;;5207:19:94;;707:8662;;5207:19;4759:131;707:8662;;-1:-1:-1;;;4861:18:94;;707:8662;;4861:18;4809:29;;;;;;;;;;;;;;:::i;:::-;;;;4360:389;707:8662;;-1:-1:-1;;;4718:20:94;;707:8662;;4718:20;4377:309;837:15:62;4647:39:94;819:34:62;837:15;819:34;:::i;4647:39:94:-;707:8662;;;;;4647:39;4377:309;;:250;837:15:62;4522:105:94;:91;4553:20;819:34:62;837:15;819:34;:::i;:::-;4553:20:94;:::i;:::-;4575:37;;;;4522:91;;;:::i;:105::-;;;4377:250;;4135:94;707:8662;;-1:-1:-1;;;4196:22:94;;707:8662;;4196:22;4020:105;4076:38;;;;;;;;:::i;:::-;4020:105;;;;;707:8662;;;;;;-1:-1:-1;;707:8662:94;;;;;;;-1:-1:-1;;;;;404:28:69;707:8662:94;;;;;;;;;;-1:-1:-1;;707:8662:94;;;;;1221:37;707:8662;;;;;;;;;;;;;-1:-1:-1;;707:8662:94;;;;;;954:41;-1:-1:-1;;;;;707:8662:94;;;;;;;;;;;;-1:-1:-1;;707:8662:94;;;;;;-1:-1:-1;;;;;707:8662:94;;;;2239:46;707:8662;;;;;;;;:::i;:::-;819:34:62;837:15;819:34;:::i;:::-;707:8662:94;;2239:46;:::i;:::-;707:8662;;-1:-1:-1;;;;;707:8662:94;;;;;;;;;;;;-1:-1:-1;;707:8662:94;;;;;;;1271:7:92;707:8662:94;;;;;;;;;-1:-1:-1;;707:8662:94;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3217:103:28;;;:::i;:::-;707:8662:94;;:::i;:::-;6308:16;;6304:99;;707:8662;;;6431:13;707:8662;6417:34;;;6413:94;;6548:25;;;:::i;:::-;707:8662;6431:13;707:8662;;6653:24;;707:8662;;;;;;;;;;;6622:92;6679:34;;707:8662;;;6622:92;;:::i;:::-;707:8662;6741:29;;;:151;;;;;707:8662;6724:223;;;;6961:10;:29;6957:80;;7051:40;819:34:62;837:15;819:34;:::i;7051:40:94:-;707:8662;;;;;7051:40;;7047:95;;707:8662;;;;7152:78;;707:8662;;-1:-1:-1;;;;707:8662:94;-1:-1:-1;;;707:8662:94;;;6961:10;7280:33;;-1:-1:-1;7280:33:94;;3282:1:28;1805;-1:-1:-1;;;;;;;;;;;707:8662:94;3716:283:28;7152:78:94;707:8662;;-1:-1:-1;;;7196:23:94;;707:8662;;7196:23;7047:95;707:8662;;-1:-1:-1;;;7114:17:94;;707:8662;;7114:17;6957:80;707:8662;;-1:-1:-1;;;7013:13:94;;707:8662;;7013:13;6724:223;707:8662;;-1:-1:-1;;;6924:12:94;;707:8662;;6924:12;6741:151;6790:102;837:15:62;;;6790:88:94;837:15:62;6843:34:94;6821:20;819:34:62;837:15;819:34;:::i;6821:20:94:-;6843:34;;;6790:88;;:::i;:102::-;;6741:151;;;;6304:99;6357:35;;;;;;;:::i;:::-;6304:99;;;;707:8662;;;;;;-1:-1:-1;;707:8662:94;;;;;;;;-1:-1:-1;;;;;707:8662:94;;;;;;;;1876:205;-1:-1:-1;707:8662:94;;;2016:9;707:8662;;;;;-1:-1:-1;;;;;707:8662:94;2016:56;;1876:205;;2016:56;:::i;:::-;707:8662;1876:205;:::o;707:8662::-;;;;;;;:::i;:::-;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;;;;707:8662:94;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;-1:-1:-1;;707:8662:94;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;3317:13;707:8662;-1:-1:-1;;;707:8662:94;;;;;;;;;;3317:13;707:8662;;:::i;:::-;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;707:8662:94;-1:-1:-1;;;;;707:8662:94;;;;;;;;;;;;;;;;3317:13;;707:8662;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;707:8662:94;;;;;;-1:-1:-1;;;707:8662:94;;;;;;;:::i;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::o;:::-;;9856:1:60;707:8662:94;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;707:8662:94;;;;;;;;-1:-1:-1;;707:8662:94;;;;:::o;2505:267:92:-;-1:-1:-1;707:8662:94;;;2692:16:92;707:8662:94;;;;;;;;-1:-1:-1;;;;;707:8662:94;;;;;;;;;2692:73:92;;2505:267;;2692:73;:::i;707:8662:94:-;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;;;;707:8662:94;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;;;;707:8662:94;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::o;:::-;;;;;;;;-1:-1:-1;707:8662:94;;-1:-1:-1;707:8662:94;;;-1:-1:-1;707:8662:94;:::o;10580:184:86:-;10689:20;;;:::i;:::-;-1:-1:-1;;;;;707:8662:94;;10726:7:86;707:8662:94;;10736:12:86;:17;:12;;:17;:::i;:::-;707:8662:94;;;;;;10580:184:86;:::o;10726:31::-;;;10689:11;10580:184;:::o;707:8662:94:-;;;;;;;;;;;;;;;;;;:::o;:::-;-1:-1:-1;;707:8662:94;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;:::o;1818:604:86:-;;707:8662:94;;1946:17:86;1942:83;;707:8662:94;2049:27:86;707:8662:94;2049:27:86;707:8662:94;;2049:27:86;;;;;;:::i;:::-;2120:14;;;;;:::i;:::-;707:8662:94;;;;;;;;;;;;;;;;2148:22:86;;;2144:77;;2235:21;-1:-1:-1;2235:84:86;;;;1818:604;2231:139;;;;1425:34;;;;:::i;2231:139::-;-1:-1:-1;;2049:27:86;2342:17;707:8662:94;-1:-1:-1;;;;;707:8662:94;;:::o;2235:84:86:-;707:8662:94;;;2269:16:86;707:8662:94;;2269:16:86;:::i;:::-;707:8662:94;;;2261:24:86;:57;;;;;2235:84;;;;;;;2261:57;2289:29;2298:8;;;2289:18;2298:8;2289:23;2298:8;;:::i;:::-;2289:18;;:::i;:::-;707:8662:94;;;;;2289:29:86;;2261:57;;;;2144:77;-1:-1:-1;;;;2049:27:86;2193:17;;;;707:8662:94;-1:-1:-1;;;;;707:8662:94;;-1:-1:-1;707:8662:94;:::o;1942:83:86:-;1425:34;;;;:::i;707:8662:94:-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;707:8662:94;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;6491:564:92:-;6614:34;6491:564;6614:34;;;;:::i;:::-;707:8662:94;;-1:-1:-1;;;6664:41:92;;-1:-1:-1;;;;;707:8662:94;;;6664:41:92;;;707:8662:94;;;;;6664:41:92;;;707:8662:94;;;6674:13:92;707:8662:94;;6664:41:92;;;;;;;-1:-1:-1;6664:41:92;;;6491:564;6663:42;;6659:90;;2540:111:28;6850:27:92;6664:41;2540:111:28;;;:::i;:::-;-1:-1:-1;707:8662:94;;-1:-1:-1;;;;;;707:8662:94;-1:-1:-1;;;;;707:8662:94;;;;;6850:27:92;;:::i;:::-;707:8662:94;;;;;;;;;;6892:23:92;;;;;;;;;-1:-1:-1;6892:23:92;;;6491:564;707:8662:94;;;6892:37:92;:64;;;6491:564;6888:112;;707:8662:94;7010:38:92;;707:8662:94;;-1:-1:-1;707:8662:94;;-1:-1:-1;;;;707:8662:94;;;;;;-1:-1:-1;;;707:8662:94;;;;;;;;6888:112:92;707:8662:94;;-1:-1:-1;;;6979:10:92;;6664:41;;6979:10;6892:64;-1:-1:-1;707:8662:94;;;;6892:64:92;;:23;;;;;;-1:-1:-1;6892:23:92;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;6659:90;707:8662:94;;-1:-1:-1;;;6728:10:92;;6664:41;;6728:10;6664:41;;;;;;;;;;;;;;:::i;:::-;;;;3326:384:28;-1:-1:-1;;;;;;;;;;;1847:1:28;707:8662:94;;3526:20:28;3522:88;;1847:1;707:8662:94;;3326:384:28:o;3522:88::-;707:8662:94;;-1:-1:-1;;;3569:30:28;;;;;4451:257:92;707:8662:94;;-1:-1:-1;;;4546:86:92;;467:2:88;707:8662:94;;;;4546:86:92;;;707:8662:94;-1:-1:-1;;;;;4546:86:92;707:8662:94;;;4572:26:92;707:8662:94;;4546:86:92;;;;;;;-1:-1:-1;4546:86:92;;;4451:257;4636:10;;707:8662:94;;4546:100:92;4542:160;;4451:257::o;4542:160::-;707:8662:94;;-1:-1:-1;;;4669:22:92;;4546:86;;4669:22;4546:86;;;;;;;;;;;;;;;:::i;:::-;;;;;2557:104:57;;2641:5;;;;;;:13;2557:104;:::o;2641:13::-;;;2557:104;:::o;5905:168:86:-;;6006:20;;;:::i;:::-;707:8662:94;;;;;;;-1:-1:-1;;707:8662:94;;;;;;:::i;:::-;;;;;;;5905:168:86:o;707:8662:94:-;;;;;;;;;;;;14291:213:58;707:8662:94;14369:24:58;;;;14365:103;;707:8662:94;14291:213:58;:::o;14365:103::-;707:8662:94;;;;14416:41:58;;;;;;14447:2;14416:41;;;707:8662:94;;;;;14416:41:58;7558:604:86;;707:8662:94;;7686:17:86;7682:83;;707:8662:94;7789:27:86;707:8662:94;7789:27:86;707:8662:94;;7789:27:86;;;;;;:::i;:::-;7860:14;;;;;:::i;:::-;707:8662:94;;;;;;;;;;;;;;;;7888:22:86;;;7884:77;;7975:21;-1:-1:-1;7975:84:86;;;;7558:604;7971:139;;;;8127:28;;;;:::i;7971:139::-;8082:17;;7789:27;8082:17;707:8662:94;8075:24:86;:::o;7975:84::-;707:8662:94;;;8009:16:86;707:8662:94;;8009:16:86;:::i;:::-;707:8662:94;;;8001:24:86;:57;;;;;7975:84;;;;;;;8001:57;8029:29;8038:8;;;8029:18;8038:8;8029:23;8038:8;;:::i;:::-;8029:18;;:::i;:29::-;;8001:57;;;;7884:77;7933:17;;;;;7789:27;7933:17;707:8662:94;7926:24:86;:::o;7682:83::-;7726:28;;;;:::i;707:8662:94:-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;707:8662:94;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;;;;707:8662:94;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;707:8662:94;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;3323:1122:92:-;;707:8662:94;;:::i;:::-;;;;3608:16:92;3604:109;;3323:1122;837:15:62;;819:34;837:15;819:34;:::i;:::-;-1:-1:-1;707:8662:94;;;;3778:27:92;;:13;;-1:-1:-1;;;;;707:8662:94;3778:13:92;707:8662:94;3778:27:92;707:8662:94;;;;;;;3778:29:92;;;;;;;;;;;;;;;3740:67;3778:29;3759:48;3778:29;-1:-1:-1;3778:29:92;;;3759:48;;:::i;3740:67::-;707:8662:94;;;3740:67:92;;;:107;;;;;3323:1122;3740:197;;;;3323:1122;3723:263;;;707:8662:94;3778:29:92;707:8662:94;;;;;;;;;;4025:25:92;;;;;;;;;4010:143;4025:25;;;-1:-1:-1;4025:25:92;;;3323:1122;4113:30;;;707:8662:94;;;;;;;;;;;4010:143:92;;;;;3778:29;4010:143;;;:::i;:::-;;;-1:-1:-1;;;;;707:8662:94;4010:143:92;;;;;;;4181:257;4010:143;-1:-1:-1;4010:143:92;;;3323:1122;3996:157;;4293:102;3996:157;;4233:162;3996:157;4207:231;3996:157;;2936:28;:47;:38;:28;;;707:8662:94;;2936:16:92;707:8662:94;;;;;;;2936:28:92;707:8662:94;;;;;;;;;;;;;;;;2936:47:92;4351:43;;;4293:102;;:::i;:::-;4233:162;;:::i;:::-;4207:231;:::i;4181:257::-;3323:1122;:::o;4010:143::-;4233:162;4010:143;;;4207:231;4010:143;;;;4293:102;4010:143;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;;;;;4025:25;;;;;;;;;;;;;;:::i;:::-;;;;3723:263;3962:13;;;;;;-1:-1:-1;3962:13:92;-1:-1:-1;3962:13:92;:::o;3740:197::-;3886:41;;3867:70;3886:51;;:41;;;707:8662:94;;3886:29:92;707:8662:94;;;;;;;3886:51:92;707:8662:94;;;;;3867:70:92;-1:-1:-1;3740:197:92;;;:107;837:15:62;;3811:36:92;819:34:62;837:15;819:34;:::i;3811:36:92:-;;;;3740:107;;;3778:29;;;;;;;;;;;;;;;:::i;3604:109::-;3662:40;;;;;;;;;;;;:::i;:::-;3604:109;;;;4714:335;;;;707:8662:94;-1:-1:-1;707:8662:94;4876:29:92;707:8662:94;;;;4876:51:92;707:8662:94;;-1:-1:-1;707:8662:94;;;;;;;;;;;;;;;;;4876:51:92;707:8662:94;;;;;-1:-1:-1;4872:171:92;;4714:335;;;:::o;4872:171::-;4962:70;707:8662:94;4962:51:92;707:8662:94;-1:-1:-1;707:8662:94;4876:29:92;707:8662:94;;;-1:-1:-1;707:8662:94;;;;;;;;;;;;;;;;;4962:51:92;707:8662:94;;;;;;;;;;;;5055:221:92;;;707:8662:94;-1:-1:-1;707:8662:94;5160:16:92;707:8662:94;;2936:47:92;:38;5160;707:8662:94;;-1:-1:-1;707:8662:94;;;;;;;;;;;;;;;;;5160:38:92;837:15:62;819:34;837:15;819:34;:::i;:::-;707:8662:94;-1:-1:-1;707:8662:94;5160:16:92;707:8662:94;;;-1:-1:-1;707:8662:94;;;;;;;;;;;;;;;;;2936:47:92;707:8662:94;;;;;;;;6360:12:86;;;707:8662:94;;;6360:24:86;6356:75;;5055:221:92;6474:30:86;;;:::i;:::-;707:8662:94;;;;;6578:12:86;;;;:::i;:::-;;6604:24;;;5055:221:92;-1:-1:-1;6600:188:86;;;-1:-1:-1;;;;707:8662:94;;;;;;;6644:29:86;:21;;;;:::i;:::-;:29;707:8662:94;;;;;;;;;;;;;;;;;;;;;6600:188:86;6753:24;;8167:38:60;;-1:-1:-1;;;;;707:8662:94;;;;;8167:38:60;:::i;:::-;6753:24:86;;;:::i;6604:::-;707:8662:94;;;;;;6614:14:86;;-1:-1:-1;6604:24:86;;;6356:75;6400:20;;;:::i;:::-;6356:75;;707:8662:94;;;;;;;;-1:-1:-1;;;;;707:8662:94;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;5282:431:92:-;;;;5487:25;;:23;:13;707:8662:94;5494:5:92;707:8662:94;;;;;;;;;5487:23:92;707:8662:94;;-1:-1:-1;;;5487:25:92;;707:8662:94;;;;;5487:25:92;;;;;;;5631:65;5487:25;5631:65;5487:25;5494:5;5487:25;;;5282:431;-1:-1:-1;;;;;;707:8662:94;;;;:::i;:::-;-1:-1:-1;;;;;5677:4:92;707:8662:94;;;5677:4:92;5487:25;5642:53;;707:8662:94;;;5631:65:92;;;5487:25;5631:65;;;:::i;:::-;5472:234;;;;;5494:5;707:8662:94;5472:234:92;707:8662:94;;;;;;;;;;;;;;5472:234:92;;5487:25;5472:234;;;:::i;:::-;;;;;;;;;;;5282:431;:::o;5472:234::-;;;;;;:::i;:::-;;;:::i;5487:25::-;;;;;;;;;;;;;;:::i;:::-;;;;5719:137;707:8662:94;5719:137:92;707:8662:94;5802:47:92;5719:137;5809:5;707:8662:94;;;;;;;;;;;;;;;;;;5802:47:92;;;;;707:8662:94;;;;;;5802:47:92;;;;;;;;5719:137;:::o;5802:47::-;;;;;;;;;;;;;:::i;:::-;;5719:137::o;707:8662:94:-;;;;;;;:::o;:::-;;;;;;;;;;;;5862:623:92;;;5988:12;707:8662:94;;;;;;;5984:495:92;;5862:623;;;;;;:::o;5984:495::-;707:8662:94;;-1:-1:-1;;;6033:22:92;;707:8662:94;6033:22:92;;707:8662:94;;6033:22:92;;707:8662:94;;-1:-1:-1;;;;;707:8662:94;6033:22:92;;;;;;;5988:12;6033:22;;;5984:495;-1:-1:-1;707:8662:94;;-1:-1:-1;;;6033:22:92;6094:81;;;;;;;;707:8662:94;;;;-1:-1:-1;;;;;707:8662:94;;;;;;;;;;;;;;;;;;;;;;6094:81:92;707:8662:94;;;;6094:81:92;;707:8662:94;;6094:81:92;;;;;;:::i;:::-;707:8662:94;6194:9:92;:55;6190:124;;5988:12;6328:141;;;;;;1271:7;6328:141;;5984:495;;;;;;;6190:124;707:8662:94;;-1:-1:-1;;;6276:23:92;;6033:22;;6276:23;6033:22;6094:81;6033:22;;;6094:81;6033:22;;;;;;;;;;;:::i;:::-;;;;;10167:206:60;707:8662:94;;10303:8:60;;;:63;;10262:17;10167:206;:::o;10303:63::-;707:8662:94;;;;;;;;;;10262:17:60;14249:109;;10262:17;14249:109;;;707:8662:94;;;10167:206:60;:::o;707:8662:94:-;;;;;;;:::i;:::-;-1:-1:-1;707:8662:94;;;;;;;:::o;5573:258:86:-;707:8662:94;5573:258:86;11308:22:60;5573:258:86;707:8662:94;;:::i;:::-;;;;:::i;:::-;;11308:22:60;:::i;:::-;707:8662:94;;:::i;:::-;;;;;;5805:17:86;707:8662:94;;;;;5805:17:86;;707:8662:94;;;;;;;;:::i;:::-;;;5805:17:86;5759:65;;707:8662:94;5573:258:86;:::o;6893:76:25:-;;;:::i;:::-;;;:::i;:::-;1805:1:28;-1:-1:-1;;;;;;;;;;;707:8662:94;6893:76:25:o;707:8662:94:-;;;;;;;:::i;:::-;-1:-1:-1;707:8662:94;;:::o;:::-;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;:::o;8763:604::-;;8969:30;8763:604;707:8662;;:::i;:::-;;;;8905:30;;;;;;;;;;;;;:::i;:::-;707:8662;;-1:-1:-1;;;8969:30:94;;707:8662;;;;;;;;-1:-1:-1;;;;;707:8662:94;8969:30;;;;;;;;;;;8763:604;9013:19;;;707:8662;;;;;;;;;;;;;;;9013:36;;9009:95;;707:8662;9118:29;;9150:1;707:8662;;9118:33;9114:102;;9226:34;707:8662;9271:54;707:8662;;;;;;;;;;;8969:30;707:8662;;;8969:30;707:8662;;9226:34;707:8662;9271:54;707:8662;;9271:54;9343:17;8763:604;:::o;9114:102::-;707:8662;;-1:-1:-1;;;9174:31:94;;8969:30;;9174:31;9009:95;707:8662;;-1:-1:-1;;;9072:21:94;;8969:30;;9072:21;8969:30;;;;;;;;;;;;;;;:::i;:::-;;;;;707:8662;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::o;10552:388:60:-;707:8662:94;;10728:8:60;;;10752:20;;10690:17;10752:20;10690:17;10752:20;10690:17;10752:20;:::o;10724:210::-;707:8662:94;;;;;;;;;;;14249:109:60;10690:17;14249:109;;10690:17;14249:109;;;707:8662:94;:::i;:::-;;;;;;;14249:109:60;707:8662:94;;;;;10911:11:60;;707:8662:94;;10886:37:60;10870:1;10886:37;;;:::o;6999:207:86:-;;7117:34;6999:207;7117:34;;:::i;11486:272::-;;707:8662:94;11308:22:60;11718:31:86;11486:272;707:8662:94;;:::i;:::-;;;;:::i;:::-;;11308:22:60;;:::i;707:8662:94:-;;11718:12:86;707:8662:94;;;;;11731:17:86;707:8662:94;;;;;11731:17:86;;707:8662:94;;11718:12:86;;:31;:::i;:::-;707:8662:94;;;;;;;;;:::i;:::-;;;;;;11731:17:86;11672:79;;707:8662:94;11486:272:86;:::o;707:8662:94:-;;;-1:-1:-1;;;707:8662:94;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::o;:::-;;;;;-1:-1:-1;;;707:8662:94;;;;;;;;;;;;;;;:::i;9441:606:60:-;;707:8662:94;;9594:15:60;9559:17;9619:18;;9658:1;9652:7;;9648:234;;9441:606;9906:53;;12919:10;;;;;;-1:-1:-1;;9977:8:60;;;:63;;9559:17;9441:606;:::o;9977:63::-;9992:48;10025:7;;9992:41;10025:7;;:::i;:::-;9992:41;14249:109;;;;;;14099:265;;9992:41;707:8662:94;;;;;12912:230:60;2900:5:57;;;;;2910;;;;707:8662:94;;;;;;;;;14249:109:60;9559:17;14249:109;707:8662:94;14249:109:60;;;9559:17;14249:109;;707:8662:94;;;;;-1:-1:-1;12996:136:60;707:8662:94;;;13055:10:60;12996:136;;12912:230;;;12996:136;13110:7;;;;;;:::i;:::-;12996:136;;;9648:234;9695:14;;;;:::i;:::-;707:8662:94;;;;;;;14249:109:60;9559:17;14249:109;707:8662:94;14249:109:60;;;9559:17;14249:109;;707:8662:94;;;;;9727:48:60;9723:149;707:8662:94;;;9795:10:60;9723:149;9648:234;;;9723:149;9850:7;;;;;:::i;:::-;9723:149;;;7084:141:25;707:8662:94;-1:-1:-1;;;;;;;;;;;707:8662:94;;;;7150:18:25;7146:73;;7084:141::o;7146:73::-;707:8662:94;;-1:-1:-1;;;7191:17:25;;;;;707:8662:94;;;-1:-1:-1;;;707:8662:94;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;707:8662:94;;;;;;;;;;;:::o;11513:870:60:-;707:8662:94;;11513:870:60;;;707:8662:94;11513:870:60;11672:7;;;;707:8662:94;11775:28:60;11795:7;;;:::i;:::-;11775:28;14249:109;;;;;;14099:265;;11775:28;707:8662:94;:::i;:::-;;;;;;;;;;;;;;;;11877:15:60;-1:-1:-1;11873:91:60;;707:8662:94;;12233:11:60;707:8662:94;;;12027:16:60;707:8662:94;;;;;;;12027:16:60;;;;12083:7;12063:43;12083:7;;12063:28;12083:7;;:::i;12063:28::-;707:8662:94;;;;;;;;;;;;;;;;;12063:43:60;12233:11;707:8662:94;-1:-1:-1;;;;;707:8662:94;;;;12225:27:60;;:::o;12023:189::-;707:8662:94;;;12145:52:60;707:8662:94;12155:41:60;707:8662:94;;:::i;:::-;;;;;;;;12155:41:60;-1:-1:-1;;;;;707:8662:94;;12155:41:60;;;707:8662:94;12145:52:60;:::i;:::-;12023:189;;11873:91;707:8662:94;;-1:-1:-1;;;11919:30:60;;;;;11668:709;12283:52;707:8662:94;;12293:41:60;707:8662:94;;:::i;12293:41:60:-;-1:-1:-1;;;;;707:8662:94;;12293:41:60;;;707:8662:94;12145:52:60;:::i;12283:::-;11678:1;12349:17;;:::o;8587:1642:57:-;8658:6;;8654:45;;9401:7;10201:10;10142:26;10093;10044;9995;9946;9897;9848;707:8662:94;10189:23:57;9401:7;8663:1;707:8662:94;;;;10826:16:57;10822:99;;8587:1642;707:8662:94;;;;10938:15:57;10934:96;;8587:1642;707:8662:94;;;;11047:15:57;11043:96;;8587:1642;707:8662:94;;;;11156:15:57;11152:96;;8587:1642;707:8662:94;;;;11265:14:57;11261:93;;8587:1642;707:8662:94;;;;11371:14:57;11367:93;;8587:1642;707:8662:94;;;;11477:14:57;11473:93;;8587:1642;707:8662:94;;;11579:64:57;;8587:1642;707:8662:94;;;9858:10:57;;;;:::i;:::-;707:8662:94;;;;;9848:26:57;9907:10;;;;:::i;9897:26::-;9956:10;;;;:::i;9946:26::-;10005:10;;;;:::i;9995:26::-;10054:10;;;;:::i;10044:26::-;10103:10;;;;:::i;10093:26::-;10152:10;;;;:::i;10142:26::-;10201:10;;;:::i;:::-;10189:23;;:::i;11579:64::-;707:8662:94;;11579:64:57;;11473:93;707:8662:94;11511:11:57;;707:8662:94;;11473:93:57;;;;11367;707:8662:94;11405:11:57;;707:8662:94;;11367:93:57;;;;11261;707:8662:94;11299:11:57;;707:8662:94;;11261:93:57;;;;11152:96;707:8662:94;11191:12:57;;707:8662:94;;11152:96:57;;;;11043;707:8662:94;11082:12:57;;707:8662:94;;11043:96:57;;;;10934;707:8662:94;10973:12:57;;707:8662:94;;10934:96:57;;;;10822:99;10862:13;;;707:8662:94;10822:99:57;;;;8654:45;8680:8;8663:1;8680:8;:::o","linkReferences":{},"immutableReferences":{"57808":[{"start":810,"length":32}],"57811":[{"start":4873,"length":32},{"start":9285,"length":32}],"65592":[{"start":460,"length":32},{"start":7054,"length":32}],"65595":[{"start":742,"length":32},{"start":7448,"length":32}],"66325":[{"start":2540,"length":32},{"start":4959,"length":32}]}},"methodIdentifiers":{"BURNER_GAS_LIMIT()":"d5c24e1a","BURNER_RESERVE()":"2964f8dc","FACTORY()":"2dd31000","NETWORK_MIDDLEWARE_SERVICE()":"2c9d45b3","NETWORK_REGISTRY()":"c0cd7c3e","TYPE()":"bb24fe8a","VAULT_FACTORY()":"103f2907","cumulativeSlash(bytes32,address)":"1a2be2c4","cumulativeSlashAt(bytes32,address,uint48,bytes)":"aa8e6489","executeSlash(uint256,bytes)":"b94c386e","initialize(bytes)":"439fab91","isBurnerHook()":"34d098ea","latestSlashedCaptureTimestamp(bytes32,address)":"267de1f3","requestSlash(bytes32,address,uint256,uint48,bytes)":"545ce389","resolver(bytes32,bytes)":"cd05b8a1","resolverAt(bytes32,uint48,bytes)":"31ce4dfe","resolverSetEpochsDelay()":"bc6eac5b","setResolver(uint96,address,bytes)":"9168f9d2","slashRequests(uint256)":"9a896551","slashRequestsLength()":"8f42f9ab","slashableStake(bytes32,address,uint48,bytes)":"aab3595f","staticDelegateCall(address,bytes)":"9f86fd85","vault()":"fbfa77cf","vetoDuration()":"e054e08b","vetoSlash(uint256,bytes)":"f9268d18"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"vaultFactory\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"networkMiddlewareService\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"networkRegistry\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"slasherFactory\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"entityType\",\"type\":\"uint64\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"AlreadySet\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CheckpointUnorderedInsertion\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientBurnerGas\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientSlash\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidCaptureTimestamp\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidResolverSetEpochsDelay\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidVetoDuration\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NoBurner\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NoResolver\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotNetwork\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotNetworkMiddleware\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotResolver\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotVault\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ReentrancyGuardReentrantCall\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"bits\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"SafeCastOverflowedUintDowncast\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SlashPeriodEnded\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SlashRequestCompleted\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SlashRequestNotExist\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"VetoPeriodEnded\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"VetoPeriodNotEnded\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"slashIndex\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"slashedAmount\",\"type\":\"uint256\"}],\"name\":\"ExecuteSlash\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"slashIndex\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"slashAmount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint48\",\"name\":\"captureTimestamp\",\"type\":\"uint48\"},{\"indexed\":false,\"internalType\":\"uint48\",\"name\":\"vetoDeadline\",\"type\":\"uint48\"}],\"name\":\"RequestSlash\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"resolver\",\"type\":\"address\"}],\"name\":\"SetResolver\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"slashIndex\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"resolver\",\"type\":\"address\"}],\"name\":\"VetoSlash\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"BURNER_GAS_LIMIT\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"BURNER_RESERVE\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"FACTORY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"NETWORK_MIDDLEWARE_SERVICE\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"NETWORK_REGISTRY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"TYPE\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"VAULT_FACTORY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"cumulativeSlash\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hint\",\"type\":\"bytes\"}],\"name\":\"cumulativeSlashAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"slashIndex\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"hints\",\"type\":\"bytes\"}],\"name\":\"executeSlash\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"slashedAmount\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isBurnerHook\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"latestSlashedCaptureTimestamp\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"value\",\"type\":\"uint48\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint48\",\"name\":\"captureTimestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hints\",\"type\":\"bytes\"}],\"name\":\"requestSlash\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"slashIndex\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"hint\",\"type\":\"bytes\"}],\"name\":\"resolver\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hint\",\"type\":\"bytes\"}],\"name\":\"resolverAt\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"resolverSetEpochsDelay\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint96\",\"name\":\"identifier\",\"type\":\"uint96\"},{\"internalType\":\"address\",\"name\":\"resolver_\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"hints\",\"type\":\"bytes\"}],\"name\":\"setResolver\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"slashRequests\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint48\",\"name\":\"captureTimestamp\",\"type\":\"uint48\"},{\"internalType\":\"uint48\",\"name\":\"vetoDeadline\",\"type\":\"uint48\"},{\"internalType\":\"bool\",\"name\":\"completed\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"slashRequestsLength\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"captureTimestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hints\",\"type\":\"bytes\"}],\"name\":\"slashableStake\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"staticDelegateCall\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"vault\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"vetoDuration\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"slashIndex\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"hints\",\"type\":\"bytes\"}],\"name\":\"vetoSlash\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"CheckpointUnorderedInsertion()\":[{\"details\":\"A value was attempted to be inserted on a past checkpoint.\"}],\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"ReentrancyGuardReentrantCall()\":[{\"details\":\"Unauthorized reentrant call.\"}],\"SafeCastOverflowedUintDowncast(uint8,uint256)\":[{\"details\":\"Value doesn't fit in an uint of `bits` size.\"}]},\"events\":{\"ExecuteSlash(uint256,uint256)\":{\"params\":{\"slashIndex\":\"index of the slash request\",\"slashedAmount\":\"virtual amount of the collateral slashed\"}},\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"RequestSlash(uint256,bytes32,address,uint256,uint48,uint48)\":{\"params\":{\"captureTimestamp\":\"time point when the stake was captured\",\"operator\":\"operator that could be slashed (if the request is not vetoed)\",\"slashAmount\":\"maximum amount of the collateral to be slashed\",\"slashIndex\":\"index of the slash request\",\"subnetwork\":\"subnetwork that requested the slash\",\"vetoDeadline\":\"deadline for the resolver to veto the slash (exclusively)\"}},\"SetResolver(bytes32,address)\":{\"params\":{\"resolver\":\"address of the resolver\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"}},\"VetoSlash(uint256,address)\":{\"params\":{\"resolver\":\"address of the resolver that vetoed the slash\",\"slashIndex\":\"index of the slash request\"}}},\"kind\":\"dev\",\"methods\":{\"cumulativeSlash(bytes32,address)\":{\"params\":{\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"},\"returns\":{\"_0\":\"cumulative slash amount\"}},\"cumulativeSlashAt(bytes32,address,uint48,bytes)\":{\"params\":{\"hint\":\"hint for the checkpoint index\",\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\",\"timestamp\":\"time point to get the cumulative slash amount until (inclusively)\"},\"returns\":{\"_0\":\"cumulative slash amount until the given timestamp (inclusively)\"}},\"executeSlash(uint256,bytes)\":{\"details\":\"Only a network middleware can call this function.\",\"params\":{\"hints\":\"hints for checkpoints' indexes\",\"slashIndex\":\"index of the slash request\"},\"returns\":{\"slashedAmount\":\"virtual amount of the collateral slashed\"}},\"initialize(bytes)\":{\"params\":{\"data\":\"some data to use\"}},\"requestSlash(bytes32,address,uint256,uint48,bytes)\":{\"details\":\"Only a network middleware can call this function.\",\"params\":{\"amount\":\"maximum amount of the collateral to be slashed\",\"captureTimestamp\":\"time point when the stake was captured\",\"hints\":\"hints for checkpoints' indexes\",\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"},\"returns\":{\"slashIndex\":\"index of the slash request\"}},\"resolver(bytes32,bytes)\":{\"params\":{\"hint\":\"hint for the checkpoint index\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"},\"returns\":{\"_0\":\"address of the resolver\"}},\"resolverAt(bytes32,uint48,bytes)\":{\"params\":{\"hint\":\"hint for the checkpoint index\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\",\"timestamp\":\"timestamp to get the resolver at\"},\"returns\":{\"_0\":\"address of the resolver\"}},\"slashRequestsLength()\":{\"returns\":{\"_0\":\"total number of slash requests\"}},\"slashableStake(bytes32,address,uint48,bytes)\":{\"params\":{\"captureTimestamp\":\"time point to get the stake amount at\",\"hints\":\"hints for the checkpoints' indexes\",\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"},\"returns\":{\"amount\":\"slashable amount of the stake\"}},\"staticDelegateCall(address,bytes)\":{\"details\":\"It allows to use this contract's storage on-chain.\",\"params\":{\"data\":\"data to make a delegatecall with\",\"target\":\"address of the contract to make a delegatecall to\"}},\"vetoSlash(uint256,bytes)\":{\"details\":\"Only a resolver can call this function.\",\"params\":{\"hints\":\"hints for checkpoints' indexes\",\"slashIndex\":\"index of the slash request\"}}},\"stateVariables\":{\"NETWORK_REGISTRY\":{\"return\":\"address of the network registry\",\"returns\":{\"_0\":\"address of the network registry\"}},\"resolverSetEpochsDelay\":{\"return\":\"updating resolver delay in epochs\",\"returns\":{\"_0\":\"updating resolver delay in epochs\"}},\"slashRequests\":{\"params\":{\"slashIndex\":\"index of the slash request\"},\"returns\":{\"amount\":\"maximum amount of the collateral to be slashed\",\"captureTimestamp\":\"time point when the stake was captured\",\"completed\":\"if the slash was vetoed/executed\",\"operator\":\"operator that could be slashed (if the request is not vetoed)\",\"subnetwork\":\"subnetwork that requested the slash\",\"vetoDeadline\":\"deadline for the resolver to veto the slash (exclusively)\"}},\"vetoDuration\":{\"return\":\"duration of the veto period\",\"returns\":{\"_0\":\"duration of the veto period\"}}},\"version\":1},\"userdoc\":{\"events\":{\"ExecuteSlash(uint256,uint256)\":{\"notice\":\"Emitted when a slash request is executed.\"},\"RequestSlash(uint256,bytes32,address,uint256,uint48,uint48)\":{\"notice\":\"Emitted when a slash request is created.\"},\"SetResolver(bytes32,address)\":{\"notice\":\"Emitted when a resolver is set.\"},\"VetoSlash(uint256,address)\":{\"notice\":\"Emitted when a slash request is vetoed.\"}},\"kind\":\"user\",\"methods\":{\"BURNER_GAS_LIMIT()\":{\"notice\":\"Get a gas limit for the burner.\"},\"BURNER_RESERVE()\":{\"notice\":\"Get a reserve gas between the gas limit check and the burner's execution.\"},\"FACTORY()\":{\"notice\":\"Get the factory's address.\"},\"NETWORK_MIDDLEWARE_SERVICE()\":{\"notice\":\"Get the network middleware service's address.\"},\"NETWORK_REGISTRY()\":{\"notice\":\"Get the network registry's address.\"},\"TYPE()\":{\"notice\":\"Get the entity's type.\"},\"VAULT_FACTORY()\":{\"notice\":\"Get the vault factory's address.\"},\"cumulativeSlash(bytes32,address)\":{\"notice\":\"Get a cumulative slash amount for an operator on a subnetwork.\"},\"cumulativeSlashAt(bytes32,address,uint48,bytes)\":{\"notice\":\"Get a cumulative slash amount for an operator on a subnetwork until a given timestamp (inclusively) using a hint.\"},\"executeSlash(uint256,bytes)\":{\"notice\":\"Execute a slash with a given slash index using hints.\"},\"initialize(bytes)\":{\"notice\":\"Initialize this entity contract by using a given data.\"},\"isBurnerHook()\":{\"notice\":\"Get if the burner is needed to be called on a slashing.\"},\"latestSlashedCaptureTimestamp(bytes32,address)\":{\"notice\":\"Get the latest capture timestamp that was slashed on a subnetwork.\"},\"requestSlash(bytes32,address,uint256,uint48,bytes)\":{\"notice\":\"Request a slash using a subnetwork for a particular operator by a given amount using hints.\"},\"resolver(bytes32,bytes)\":{\"notice\":\"Get a resolver for a given subnetwork using a hint.\"},\"resolverAt(bytes32,uint48,bytes)\":{\"notice\":\"Get a resolver for a given subnetwork at a particular timestamp using a hint.\"},\"resolverSetEpochsDelay()\":{\"notice\":\"Get a delay for networks in epochs to update a resolver.\"},\"slashRequests(uint256)\":{\"notice\":\"Get a particular slash request.\"},\"slashRequestsLength()\":{\"notice\":\"Get a total number of slash requests.\"},\"slashableStake(bytes32,address,uint48,bytes)\":{\"notice\":\"Get a slashable amount of a stake got at a given capture timestamp using hints.\"},\"staticDelegateCall(address,bytes)\":{\"notice\":\"Make a delegatecall from this contract to a given target contract with a particular data (always reverts with a return data).\"},\"vault()\":{\"notice\":\"Get the vault's address.\"},\"vetoDuration()\":{\"notice\":\"Get a duration during which resolvers can veto slash requests.\"},\"vetoSlash(uint256,bytes)\":{\"notice\":\"Veto a slash with a given slash index using hints.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/contracts/slasher/VetoSlasher.sol\":\"VetoSlasher\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609\",\"dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardUpgradeable.sol\":{\"keccak256\":\"0xb44e086e941292cdc7f440de51478493894ef0b1aeccb0c4047445919f667f74\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://942dad22fbdc1669f025540ba63aa3ccfad5f8458fc5d4525b31ebf272e7af45\",\"dweb:/ipfs/Qmdo4X2M82aM3AMoW2kf2jhYkSCyC4T1pHNd6obdsDFnAB\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875\",\"dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0xe19a4d5f31d2861e7344e8e535e2feafb913d806d3e2b5fe7782741a2a7094fe\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4aed79c0fa6f0546ed02f2f683e8f77f0fd2ed7eb34d8bbf3d373c9a6d95b13c\",\"dweb:/ipfs/QmWqVz6UAVqmnWU5pqYPt1o6iDEZyPaBraAA3rKfTTSfYj\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/Checkpoints.sol\":{\"keccak256\":\"0xbdc5e074d7dd6678f67e92b1a51a20226801a407b0e1af3da367c5d1ff4519ad\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a36cca6b22fff3db16fc789ff6c60eea71d4b156065d4d0c83a0bc5e91a77a8b\",\"dweb:/ipfs/QmYN3exd5AemxjBrN8XMB1p5LbbE16uC3sjbYjwi8AjcGR\"]},\"lib/openzeppelin-contracts/contracts/utils/types/Time.sol\":{\"keccak256\":\"0xc7755af115020049e4140f224f9ee88d7e1799ffb0646f37bf0df24bf6213f58\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7f09bf94d5274334ec021f61a04659db303f31e60460e14b709c9bf187740111\",\"dweb:/ipfs/QmNvgomZYUwFAt4cZbPWAiTeSZQreGehY9BK5xyVJsUttb\"]},\"src/contracts/common/Entity.sol\":{\"keccak256\":\"0x3d61a932995b8443381f3950542d388223a2c26dd5d29a3274dea3baa7388bd7\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://7cdf5f03ca72fd263fd32ff59c8d88ddca911ae83896a287d10772c1bbe9b138\",\"dweb:/ipfs/QmbP84r5BWT1Rn9AYTntWSf3xUMTTCohTZJFhbBhDXFoHa\"]},\"src/contracts/common/StaticDelegateCallable.sol\":{\"keccak256\":\"0x350029aa8955eacaffffaeb58babc5c98e80ebc5c5db388ed17ee6465f4a9d90\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://eb392a8ee9050e0af606897df63e3404e3829e8b688b580663892f9664195764\",\"dweb:/ipfs/QmaXC8jqV8UrrAFkzXTEv2fJF56sy33HhLxAzaRZmUxuXD\"]},\"src/contracts/libraries/Checkpoints.sol\":{\"keccak256\":\"0xba90097c8bfe0a975499428b5f8ac5569483c7d92ccc28c12d70de416aae040c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://12f5d93ca94cd06d3147db68993165a58e17903ed53682560de61f3085ad4609\",\"dweb:/ipfs/QmePiuAqvXprMLmFZkGZeGjvGPAvsEDHfCDv7BoQhXu9xE\"]},\"src/contracts/libraries/Subnetwork.sol\":{\"keccak256\":\"0xf5ef5506fd66082b3c2e7f3df37529f5a8efad32ac62e7c8914bd63219190bfe\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba031a54ee0d0e9a270c2b9e18437f5668cfeb659cfd5fe0677459d7fcac2a56\",\"dweb:/ipfs/QmReP3H7qQ78tAfgLnJKsNEQNCQfF1X1Get38Ffd4kzq32\"]},\"src/contracts/slasher/BaseSlasher.sol\":{\"keccak256\":\"0x190e5dce196a061bdad42468c52e9f5b0eb7810cd7d0c19f04d6a2e94984f1b6\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://07ca08d0cd43c2fe5d54a5577f6bdd522ced410f5d3a52e764deaa7ba26b5f06\",\"dweb:/ipfs/QmZe3PiMKBQKWcwodaLupragdqxPjgS4v1qMC7RXau8hDF\"]},\"src/contracts/slasher/VetoSlasher.sol\":{\"keccak256\":\"0xeccc8128de5e1ad499c067feac1c526638fbbac1a18b96726fc7507969fd5897\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://cdfcf281338423625acbccdf8810115b258ef7cfe4aa3c10b8911ead1aa85429\",\"dweb:/ipfs/QmZFsDvZXpkFkx4PHcDXAVPN3ZCAahbSVfYpSVrMBvbt4k\"]},\"src/interfaces/common/IEntity.sol\":{\"keccak256\":\"0x8ef4b63d6da63489778ccd5f8d13ebdd527dd4b62730b2c616df5af7474d2d21\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a8d69576a9219d85c50816a18ad53a4d53cfcb27ed38b8cccc808dc2734b71b\",\"dweb:/ipfs/QmYVN3P4Q4REvBWJ97TbAcaxm3uyB2anV6NSGa6ZtSwcEv\"]},\"src/interfaces/common/IMigratableEntity.sol\":{\"keccak256\":\"0x8f5f2809f3afbe8ebfbb365dd7b57b4dd3b6f9943a6187eaf648d45895b8e3c4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ffe640537d539e7a4fde70d30d3e4c57f4ba9c2c25c450cea713aae38e8fd5c\",\"dweb:/ipfs/QmSUTGzvdcn1R1KB7tLThMRtESsfPbeXDhhhKWGtntzBds\"]},\"src/interfaces/common/IRegistry.sol\":{\"keccak256\":\"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014\",\"dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK\"]},\"src/interfaces/common/IStaticDelegateCallable.sol\":{\"keccak256\":\"0xa335d4e81b9071b7de66ef92b43ff20671d86516eb1be46fef29a3483cd3f5d5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d464b9db863c14c05547d2b23352f2e9b7b784799cf09f6bbc4906a2a74e3516\",\"dweb:/ipfs/QmUVWzFvJz7eEbDQKiFTTzwi7TEbjcs3VmwdM4kuptAKvi\"]},\"src/interfaces/delegator/IBaseDelegator.sol\":{\"keccak256\":\"0x96bb312f032e17accce3f8f80936d99468029d6b37c9ca74acdb4b026a0148ee\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2a66dcb5b7d1a6ef6a363431ea98ebd78bc4fdd3d7a134d9b542dc66e7d025c2\",\"dweb:/ipfs/QmRhTPLd2ZAyRHmJUFUcWKs9b3if49QY17LYZuRqWmghw8\"]},\"src/interfaces/service/INetworkMiddlewareService.sol\":{\"keccak256\":\"0x347afc7fcf1fbcdb96d66162070ef6c78aed27b3af2c1d5dfb4e511840631783\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2d90b8ceb495159e8e4e95d76447719dd166443f67dfabdd942846162071595c\",\"dweb:/ipfs/QmVVuiAWYx92T6vBvNMKZfTvraCf1fa16BsUKkdNs3hdHA\"]},\"src/interfaces/slasher/IBaseSlasher.sol\":{\"keccak256\":\"0x7c82528b445659c313ab77335c407b0b6efe5e79027187bb287f7bc74202b404\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0274c90aa5df1aa6bb470a6aab53992fb14fd7e5472c9430416505b29647d9cf\",\"dweb:/ipfs/QmckbmJLDetPemVzCnnGcKYWAZV2BRFXGDsjiaec8jkHxx\"]},\"src/interfaces/slasher/IBurner.sol\":{\"keccak256\":\"0xaf495dacc19ae0b3c787ba8021c5944927d70261536addd234d7dab146158c2b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9b3cc66251008be6ff9fc8b11ecc6831d5a9dca49a3fe9817fcd970253c1d447\",\"dweb:/ipfs/QmVxfb9ALGdF9W3SN2h41gQbUct6tawvu5bw4K89kFQ4HW\"]},\"src/interfaces/slasher/IVetoSlasher.sol\":{\"keccak256\":\"0xdf7edd04a4f36e9aec3a15241dcb6b6315b2e64927b12710c2c410d571fc55e9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c4be6ac339c2ebf230fed65363f036784224095d0cd0f3f2d01d64d6e0da9508\",\"dweb:/ipfs/QmRSMbpfaHExqrzUA8vYZMYZWh6eQW1KX9JKJSLdgronfg\"]},\"src/interfaces/vault/IVault.sol\":{\"keccak256\":\"0xffee01d383cd4e1a5530c614bf4360c1ef070c288abec9da1eb531b51bc07235\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://04f0046cac285d8ec44ebbb1f79dc94fab4495767190cad8364fbc1fafaadfb9\",\"dweb:/ipfs/QmUawAunwzXfCyShWfhKeThAgKtqe51hmrxvrXvM772M2R\"]},\"src/interfaces/vault/IVaultStorage.sol\":{\"keccak256\":\"0x592626f13754194f83047135de19229c49390bd59e34659b1bb38be71d973a22\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://06a6a9dfddd05e580b32bebe2cff4f63ba26a653180676d58225dd30d9c89d3e\",\"dweb:/ipfs/QmdgzBeY6Sxo8mGtyBxtv1tM1c2kU6J6zjeRd7vuXm4DU6\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.25+commit.b61c2a91"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"vaultFactory","type":"address"},{"internalType":"address","name":"networkMiddlewareService","type":"address"},{"internalType":"address","name":"networkRegistry","type":"address"},{"internalType":"address","name":"slasherFactory","type":"address"},{"internalType":"uint64","name":"entityType","type":"uint64"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"AlreadySet"},{"inputs":[],"type":"error","name":"CheckpointUnorderedInsertion"},{"inputs":[],"type":"error","name":"InsufficientBurnerGas"},{"inputs":[],"type":"error","name":"InsufficientSlash"},{"inputs":[],"type":"error","name":"InvalidCaptureTimestamp"},{"inputs":[],"type":"error","name":"InvalidInitialization"},{"inputs":[],"type":"error","name":"InvalidResolverSetEpochsDelay"},{"inputs":[],"type":"error","name":"InvalidVetoDuration"},{"inputs":[],"type":"error","name":"NoBurner"},{"inputs":[],"type":"error","name":"NoResolver"},{"inputs":[],"type":"error","name":"NotInitialized"},{"inputs":[],"type":"error","name":"NotInitializing"},{"inputs":[],"type":"error","name":"NotNetwork"},{"inputs":[],"type":"error","name":"NotNetworkMiddleware"},{"inputs":[],"type":"error","name":"NotResolver"},{"inputs":[],"type":"error","name":"NotVault"},{"inputs":[],"type":"error","name":"ReentrancyGuardReentrantCall"},{"inputs":[{"internalType":"uint8","name":"bits","type":"uint8"},{"internalType":"uint256","name":"value","type":"uint256"}],"type":"error","name":"SafeCastOverflowedUintDowncast"},{"inputs":[],"type":"error","name":"SlashPeriodEnded"},{"inputs":[],"type":"error","name":"SlashRequestCompleted"},{"inputs":[],"type":"error","name":"SlashRequestNotExist"},{"inputs":[],"type":"error","name":"VetoPeriodEnded"},{"inputs":[],"type":"error","name":"VetoPeriodNotEnded"},{"inputs":[{"internalType":"uint256","name":"slashIndex","type":"uint256","indexed":true},{"internalType":"uint256","name":"slashedAmount","type":"uint256","indexed":false}],"type":"event","name":"ExecuteSlash","anonymous":false},{"inputs":[{"internalType":"uint64","name":"version","type":"uint64","indexed":false}],"type":"event","name":"Initialized","anonymous":false},{"inputs":[{"internalType":"uint256","name":"slashIndex","type":"uint256","indexed":true},{"internalType":"bytes32","name":"subnetwork","type":"bytes32","indexed":true},{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"uint256","name":"slashAmount","type":"uint256","indexed":false},{"internalType":"uint48","name":"captureTimestamp","type":"uint48","indexed":false},{"internalType":"uint48","name":"vetoDeadline","type":"uint48","indexed":false}],"type":"event","name":"RequestSlash","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32","indexed":true},{"internalType":"address","name":"resolver","type":"address","indexed":false}],"type":"event","name":"SetResolver","anonymous":false},{"inputs":[{"internalType":"uint256","name":"slashIndex","type":"uint256","indexed":true},{"internalType":"address","name":"resolver","type":"address","indexed":true}],"type":"event","name":"VetoSlash","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"BURNER_GAS_LIMIT","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"BURNER_RESERVE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"FACTORY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"NETWORK_MIDDLEWARE_SERVICE","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"NETWORK_REGISTRY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"TYPE","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"VAULT_FACTORY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"cumulativeSlash","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint48","name":"timestamp","type":"uint48"},{"internalType":"bytes","name":"hint","type":"bytes"}],"stateMutability":"view","type":"function","name":"cumulativeSlashAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"slashIndex","type":"uint256"},{"internalType":"bytes","name":"hints","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"executeSlash","outputs":[{"internalType":"uint256","name":"slashedAmount","type":"uint256"}]},{"inputs":[{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[],"stateMutability":"view","type":"function","name":"isBurnerHook","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"latestSlashedCaptureTimestamp","outputs":[{"internalType":"uint48","name":"value","type":"uint48"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint48","name":"captureTimestamp","type":"uint48"},{"internalType":"bytes","name":"hints","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"requestSlash","outputs":[{"internalType":"uint256","name":"slashIndex","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"bytes","name":"hint","type":"bytes"}],"stateMutability":"view","type":"function","name":"resolver","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"uint48","name":"timestamp","type":"uint48"},{"internalType":"bytes","name":"hint","type":"bytes"}],"stateMutability":"view","type":"function","name":"resolverAt","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"resolverSetEpochsDelay","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint96","name":"identifier","type":"uint96"},{"internalType":"address","name":"resolver_","type":"address"},{"internalType":"bytes","name":"hints","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"setResolver"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function","name":"slashRequests","outputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint48","name":"captureTimestamp","type":"uint48"},{"internalType":"uint48","name":"vetoDeadline","type":"uint48"},{"internalType":"bool","name":"completed","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"slashRequestsLength","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint48","name":"captureTimestamp","type":"uint48"},{"internalType":"bytes","name":"hints","type":"bytes"}],"stateMutability":"view","type":"function","name":"slashableStake","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"staticDelegateCall"},{"inputs":[],"stateMutability":"view","type":"function","name":"vault","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"vetoDuration","outputs":[{"internalType":"uint48","name":"","type":"uint48"}]},{"inputs":[{"internalType":"uint256","name":"slashIndex","type":"uint256"},{"internalType":"bytes","name":"hints","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"vetoSlash"}],"devdoc":{"kind":"dev","methods":{"cumulativeSlash(bytes32,address)":{"params":{"operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"},"returns":{"_0":"cumulative slash amount"}},"cumulativeSlashAt(bytes32,address,uint48,bytes)":{"params":{"hint":"hint for the checkpoint index","operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)","timestamp":"time point to get the cumulative slash amount until (inclusively)"},"returns":{"_0":"cumulative slash amount until the given timestamp (inclusively)"}},"executeSlash(uint256,bytes)":{"details":"Only a network middleware can call this function.","params":{"hints":"hints for checkpoints' indexes","slashIndex":"index of the slash request"},"returns":{"slashedAmount":"virtual amount of the collateral slashed"}},"initialize(bytes)":{"params":{"data":"some data to use"}},"requestSlash(bytes32,address,uint256,uint48,bytes)":{"details":"Only a network middleware can call this function.","params":{"amount":"maximum amount of the collateral to be slashed","captureTimestamp":"time point when the stake was captured","hints":"hints for checkpoints' indexes","operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"},"returns":{"slashIndex":"index of the slash request"}},"resolver(bytes32,bytes)":{"params":{"hint":"hint for the checkpoint index","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"},"returns":{"_0":"address of the resolver"}},"resolverAt(bytes32,uint48,bytes)":{"params":{"hint":"hint for the checkpoint index","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)","timestamp":"timestamp to get the resolver at"},"returns":{"_0":"address of the resolver"}},"slashRequestsLength()":{"returns":{"_0":"total number of slash requests"}},"slashableStake(bytes32,address,uint48,bytes)":{"params":{"captureTimestamp":"time point to get the stake amount at","hints":"hints for the checkpoints' indexes","operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"},"returns":{"amount":"slashable amount of the stake"}},"staticDelegateCall(address,bytes)":{"details":"It allows to use this contract's storage on-chain.","params":{"data":"data to make a delegatecall with","target":"address of the contract to make a delegatecall to"}},"vetoSlash(uint256,bytes)":{"details":"Only a resolver can call this function.","params":{"hints":"hints for checkpoints' indexes","slashIndex":"index of the slash request"}}},"version":1},"userdoc":{"kind":"user","methods":{"BURNER_GAS_LIMIT()":{"notice":"Get a gas limit for the burner."},"BURNER_RESERVE()":{"notice":"Get a reserve gas between the gas limit check and the burner's execution."},"FACTORY()":{"notice":"Get the factory's address."},"NETWORK_MIDDLEWARE_SERVICE()":{"notice":"Get the network middleware service's address."},"NETWORK_REGISTRY()":{"notice":"Get the network registry's address."},"TYPE()":{"notice":"Get the entity's type."},"VAULT_FACTORY()":{"notice":"Get the vault factory's address."},"cumulativeSlash(bytes32,address)":{"notice":"Get a cumulative slash amount for an operator on a subnetwork."},"cumulativeSlashAt(bytes32,address,uint48,bytes)":{"notice":"Get a cumulative slash amount for an operator on a subnetwork until a given timestamp (inclusively) using a hint."},"executeSlash(uint256,bytes)":{"notice":"Execute a slash with a given slash index using hints."},"initialize(bytes)":{"notice":"Initialize this entity contract by using a given data."},"isBurnerHook()":{"notice":"Get if the burner is needed to be called on a slashing."},"latestSlashedCaptureTimestamp(bytes32,address)":{"notice":"Get the latest capture timestamp that was slashed on a subnetwork."},"requestSlash(bytes32,address,uint256,uint48,bytes)":{"notice":"Request a slash using a subnetwork for a particular operator by a given amount using hints."},"resolver(bytes32,bytes)":{"notice":"Get a resolver for a given subnetwork using a hint."},"resolverAt(bytes32,uint48,bytes)":{"notice":"Get a resolver for a given subnetwork at a particular timestamp using a hint."},"resolverSetEpochsDelay()":{"notice":"Get a delay for networks in epochs to update a resolver."},"slashRequests(uint256)":{"notice":"Get a particular slash request."},"slashRequestsLength()":{"notice":"Get a total number of slash requests."},"slashableStake(bytes32,address,uint48,bytes)":{"notice":"Get a slashable amount of a stake got at a given capture timestamp using hints."},"staticDelegateCall(address,bytes)":{"notice":"Make a delegatecall from this contract to a given target contract with a particular data (always reverts with a return data)."},"vault()":{"notice":"Get the vault's address."},"vetoDuration()":{"notice":"Get a duration during which resolvers can veto slash requests."},"vetoSlash(uint256,bytes)":{"notice":"Veto a slash with a given slash index using hints."}},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/contracts/slasher/VetoSlasher.sol":"VetoSlasher"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b","urls":["bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609","dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardUpgradeable.sol":{"keccak256":"0xb44e086e941292cdc7f440de51478493894ef0b1aeccb0c4047445919f667f74","urls":["bzz-raw://942dad22fbdc1669f025540ba63aa3ccfad5f8458fc5d4525b31ebf272e7af45","dweb:/ipfs/Qmdo4X2M82aM3AMoW2kf2jhYkSCyC4T1pHNd6obdsDFnAB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d","urls":["bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875","dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol":{"keccak256":"0xe19a4d5f31d2861e7344e8e535e2feafb913d806d3e2b5fe7782741a2a7094fe","urls":["bzz-raw://4aed79c0fa6f0546ed02f2f683e8f77f0fd2ed7eb34d8bbf3d373c9a6d95b13c","dweb:/ipfs/QmWqVz6UAVqmnWU5pqYPt1o6iDEZyPaBraAA3rKfTTSfYj"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/Checkpoints.sol":{"keccak256":"0xbdc5e074d7dd6678f67e92b1a51a20226801a407b0e1af3da367c5d1ff4519ad","urls":["bzz-raw://a36cca6b22fff3db16fc789ff6c60eea71d4b156065d4d0c83a0bc5e91a77a8b","dweb:/ipfs/QmYN3exd5AemxjBrN8XMB1p5LbbE16uC3sjbYjwi8AjcGR"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/types/Time.sol":{"keccak256":"0xc7755af115020049e4140f224f9ee88d7e1799ffb0646f37bf0df24bf6213f58","urls":["bzz-raw://7f09bf94d5274334ec021f61a04659db303f31e60460e14b709c9bf187740111","dweb:/ipfs/QmNvgomZYUwFAt4cZbPWAiTeSZQreGehY9BK5xyVJsUttb"],"license":"MIT"},"src/contracts/common/Entity.sol":{"keccak256":"0x3d61a932995b8443381f3950542d388223a2c26dd5d29a3274dea3baa7388bd7","urls":["bzz-raw://7cdf5f03ca72fd263fd32ff59c8d88ddca911ae83896a287d10772c1bbe9b138","dweb:/ipfs/QmbP84r5BWT1Rn9AYTntWSf3xUMTTCohTZJFhbBhDXFoHa"],"license":"BUSL-1.1"},"src/contracts/common/StaticDelegateCallable.sol":{"keccak256":"0x350029aa8955eacaffffaeb58babc5c98e80ebc5c5db388ed17ee6465f4a9d90","urls":["bzz-raw://eb392a8ee9050e0af606897df63e3404e3829e8b688b580663892f9664195764","dweb:/ipfs/QmaXC8jqV8UrrAFkzXTEv2fJF56sy33HhLxAzaRZmUxuXD"],"license":"BUSL-1.1"},"src/contracts/libraries/Checkpoints.sol":{"keccak256":"0xba90097c8bfe0a975499428b5f8ac5569483c7d92ccc28c12d70de416aae040c","urls":["bzz-raw://12f5d93ca94cd06d3147db68993165a58e17903ed53682560de61f3085ad4609","dweb:/ipfs/QmePiuAqvXprMLmFZkGZeGjvGPAvsEDHfCDv7BoQhXu9xE"],"license":"MIT"},"src/contracts/libraries/Subnetwork.sol":{"keccak256":"0xf5ef5506fd66082b3c2e7f3df37529f5a8efad32ac62e7c8914bd63219190bfe","urls":["bzz-raw://ba031a54ee0d0e9a270c2b9e18437f5668cfeb659cfd5fe0677459d7fcac2a56","dweb:/ipfs/QmReP3H7qQ78tAfgLnJKsNEQNCQfF1X1Get38Ffd4kzq32"],"license":"MIT"},"src/contracts/slasher/BaseSlasher.sol":{"keccak256":"0x190e5dce196a061bdad42468c52e9f5b0eb7810cd7d0c19f04d6a2e94984f1b6","urls":["bzz-raw://07ca08d0cd43c2fe5d54a5577f6bdd522ced410f5d3a52e764deaa7ba26b5f06","dweb:/ipfs/QmZe3PiMKBQKWcwodaLupragdqxPjgS4v1qMC7RXau8hDF"],"license":"BUSL-1.1"},"src/contracts/slasher/VetoSlasher.sol":{"keccak256":"0xeccc8128de5e1ad499c067feac1c526638fbbac1a18b96726fc7507969fd5897","urls":["bzz-raw://cdfcf281338423625acbccdf8810115b258ef7cfe4aa3c10b8911ead1aa85429","dweb:/ipfs/QmZFsDvZXpkFkx4PHcDXAVPN3ZCAahbSVfYpSVrMBvbt4k"],"license":"BUSL-1.1"},"src/interfaces/common/IEntity.sol":{"keccak256":"0x8ef4b63d6da63489778ccd5f8d13ebdd527dd4b62730b2c616df5af7474d2d21","urls":["bzz-raw://5a8d69576a9219d85c50816a18ad53a4d53cfcb27ed38b8cccc808dc2734b71b","dweb:/ipfs/QmYVN3P4Q4REvBWJ97TbAcaxm3uyB2anV6NSGa6ZtSwcEv"],"license":"MIT"},"src/interfaces/common/IMigratableEntity.sol":{"keccak256":"0x8f5f2809f3afbe8ebfbb365dd7b57b4dd3b6f9943a6187eaf648d45895b8e3c4","urls":["bzz-raw://0ffe640537d539e7a4fde70d30d3e4c57f4ba9c2c25c450cea713aae38e8fd5c","dweb:/ipfs/QmSUTGzvdcn1R1KB7tLThMRtESsfPbeXDhhhKWGtntzBds"],"license":"MIT"},"src/interfaces/common/IRegistry.sol":{"keccak256":"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb","urls":["bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014","dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK"],"license":"MIT"},"src/interfaces/common/IStaticDelegateCallable.sol":{"keccak256":"0xa335d4e81b9071b7de66ef92b43ff20671d86516eb1be46fef29a3483cd3f5d5","urls":["bzz-raw://d464b9db863c14c05547d2b23352f2e9b7b784799cf09f6bbc4906a2a74e3516","dweb:/ipfs/QmUVWzFvJz7eEbDQKiFTTzwi7TEbjcs3VmwdM4kuptAKvi"],"license":"MIT"},"src/interfaces/delegator/IBaseDelegator.sol":{"keccak256":"0x96bb312f032e17accce3f8f80936d99468029d6b37c9ca74acdb4b026a0148ee","urls":["bzz-raw://2a66dcb5b7d1a6ef6a363431ea98ebd78bc4fdd3d7a134d9b542dc66e7d025c2","dweb:/ipfs/QmRhTPLd2ZAyRHmJUFUcWKs9b3if49QY17LYZuRqWmghw8"],"license":"MIT"},"src/interfaces/service/INetworkMiddlewareService.sol":{"keccak256":"0x347afc7fcf1fbcdb96d66162070ef6c78aed27b3af2c1d5dfb4e511840631783","urls":["bzz-raw://2d90b8ceb495159e8e4e95d76447719dd166443f67dfabdd942846162071595c","dweb:/ipfs/QmVVuiAWYx92T6vBvNMKZfTvraCf1fa16BsUKkdNs3hdHA"],"license":"MIT"},"src/interfaces/slasher/IBaseSlasher.sol":{"keccak256":"0x7c82528b445659c313ab77335c407b0b6efe5e79027187bb287f7bc74202b404","urls":["bzz-raw://0274c90aa5df1aa6bb470a6aab53992fb14fd7e5472c9430416505b29647d9cf","dweb:/ipfs/QmckbmJLDetPemVzCnnGcKYWAZV2BRFXGDsjiaec8jkHxx"],"license":"MIT"},"src/interfaces/slasher/IBurner.sol":{"keccak256":"0xaf495dacc19ae0b3c787ba8021c5944927d70261536addd234d7dab146158c2b","urls":["bzz-raw://9b3cc66251008be6ff9fc8b11ecc6831d5a9dca49a3fe9817fcd970253c1d447","dweb:/ipfs/QmVxfb9ALGdF9W3SN2h41gQbUct6tawvu5bw4K89kFQ4HW"],"license":"MIT"},"src/interfaces/slasher/IVetoSlasher.sol":{"keccak256":"0xdf7edd04a4f36e9aec3a15241dcb6b6315b2e64927b12710c2c410d571fc55e9","urls":["bzz-raw://c4be6ac339c2ebf230fed65363f036784224095d0cd0f3f2d01d64d6e0da9508","dweb:/ipfs/QmRSMbpfaHExqrzUA8vYZMYZWh6eQW1KX9JKJSLdgronfg"],"license":"MIT"},"src/interfaces/vault/IVault.sol":{"keccak256":"0xffee01d383cd4e1a5530c614bf4360c1ef070c288abec9da1eb531b51bc07235","urls":["bzz-raw://04f0046cac285d8ec44ebbb1f79dc94fab4495767190cad8364fbc1fafaadfb9","dweb:/ipfs/QmUawAunwzXfCyShWfhKeThAgKtqe51hmrxvrXvM772M2R"],"license":"MIT"},"src/interfaces/vault/IVaultStorage.sol":{"keccak256":"0x592626f13754194f83047135de19229c49390bd59e34659b1bb38be71d973a22","urls":["bzz-raw://06a6a9dfddd05e580b32bebe2cff4f63ba26a653180676d58225dd30d9c89d3e","dweb:/ipfs/QmdgzBeY6Sxo8mGtyBxtv1tM1c2kU6J6zjeRd7vuXm4DU6"],"license":"MIT"}},"version":1},"id":94} \ No newline at end of file +{"abi":[{"type":"constructor","inputs":[{"name":"vaultFactory","type":"address","internalType":"address"},{"name":"networkMiddlewareService","type":"address","internalType":"address"},{"name":"networkRegistry","type":"address","internalType":"address"},{"name":"slasherFactory","type":"address","internalType":"address"},{"name":"entityType","type":"uint64","internalType":"uint64"}],"stateMutability":"nonpayable"},{"type":"function","name":"BURNER_GAS_LIMIT","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"BURNER_RESERVE","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"FACTORY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"NETWORK_MIDDLEWARE_SERVICE","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"NETWORK_REGISTRY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"TYPE","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"VAULT_FACTORY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"cumulativeSlash","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"cumulativeSlashAt","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"timestamp","type":"uint48","internalType":"uint48"},{"name":"hint","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"executeSlash","inputs":[{"name":"slashIndex","type":"uint256","internalType":"uint256"},{"name":"hints","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"slashedAmount","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"initialize","inputs":[{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"isBurnerHook","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"latestSlashedCaptureTimestamp","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"value","type":"uint48","internalType":"uint48"}],"stateMutability":"view"},{"type":"function","name":"requestSlash","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"captureTimestamp","type":"uint48","internalType":"uint48"},{"name":"hints","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"slashIndex","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"resolver","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"hint","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"resolverAt","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"timestamp","type":"uint48","internalType":"uint48"},{"name":"hint","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"resolverSetEpochsDelay","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"setResolver","inputs":[{"name":"identifier","type":"uint96","internalType":"uint96"},{"name":"resolver_","type":"address","internalType":"address"},{"name":"hints","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"slashRequests","inputs":[{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"captureTimestamp","type":"uint48","internalType":"uint48"},{"name":"vetoDeadline","type":"uint48","internalType":"uint48"},{"name":"completed","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"slashRequestsLength","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"slashableStake","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"captureTimestamp","type":"uint48","internalType":"uint48"},{"name":"hints","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"staticDelegateCall","inputs":[{"name":"target","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"vault","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"vetoDuration","inputs":[],"outputs":[{"name":"","type":"uint48","internalType":"uint48"}],"stateMutability":"view"},{"type":"function","name":"vetoSlash","inputs":[{"name":"slashIndex","type":"uint256","internalType":"uint256"},{"name":"hints","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"ExecuteSlash","inputs":[{"name":"slashIndex","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"slashedAmount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"RequestSlash","inputs":[{"name":"slashIndex","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"subnetwork","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"slashAmount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"captureTimestamp","type":"uint48","indexed":false,"internalType":"uint48"},{"name":"vetoDeadline","type":"uint48","indexed":false,"internalType":"uint48"}],"anonymous":false},{"type":"event","name":"SetResolver","inputs":[{"name":"subnetwork","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"resolver","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"VetoSlash","inputs":[{"name":"slashIndex","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"resolver","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"error","name":"AlreadySet","inputs":[]},{"type":"error","name":"CheckpointUnorderedInsertion","inputs":[]},{"type":"error","name":"InsufficientBurnerGas","inputs":[]},{"type":"error","name":"InsufficientSlash","inputs":[]},{"type":"error","name":"InvalidCaptureTimestamp","inputs":[]},{"type":"error","name":"InvalidInitialization","inputs":[]},{"type":"error","name":"InvalidResolverSetEpochsDelay","inputs":[]},{"type":"error","name":"InvalidVetoDuration","inputs":[]},{"type":"error","name":"NoBurner","inputs":[]},{"type":"error","name":"NoResolver","inputs":[]},{"type":"error","name":"NotInitialized","inputs":[]},{"type":"error","name":"NotInitializing","inputs":[]},{"type":"error","name":"NotNetwork","inputs":[]},{"type":"error","name":"NotNetworkMiddleware","inputs":[]},{"type":"error","name":"NotResolver","inputs":[]},{"type":"error","name":"NotVault","inputs":[]},{"type":"error","name":"ReentrancyGuardReentrantCall","inputs":[]},{"type":"error","name":"SafeCastOverflowedUintDowncast","inputs":[{"name":"bits","type":"uint8","internalType":"uint8"},{"name":"value","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"SlashPeriodEnded","inputs":[]},{"type":"error","name":"SlashRequestCompleted","inputs":[]},{"type":"error","name":"SlashRequestNotExist","inputs":[]},{"type":"error","name":"VetoPeriodEnded","inputs":[]},{"type":"error","name":"VetoPeriodNotEnded","inputs":[]}],"bytecode":{"object":"0x6101203461017757601f612f8038819003918201601f19168301916001600160401b03918284118585101761017b578160a092869260409687528339810103126101775761004c8361018f565b6100586020850161018f565b9161006484860161018f565b9460806100736060830161018f565b910151918083168303610177577ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a009081549060ff82891c16610166578080831603610122575b50505060805260a05260c05260e05261010091825251612ddc91826101a483396080518261032a015260a0518281816113090152612445015260c0518281816101cc0152611b8e015260e0518281816102e60152611d180152518181816109ec015261135f0152f35b6001600160401b0319909116811790915585519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a15f80806100b9565b875163f92ee8a960e01b8152600490fd5b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b51906001600160a01b03821682036101775756fe60806040526004361015610011575f80fd5b5f3560e01c8063103f2907146101a45780631a2be2c41461019f578063267de1f31461019a5780632964f8dc146101955780632c9d45b3146101905780632dd310001461018b57806331ce4dfe1461018657806334d098ea14610181578063439fab911461017c578063545ce389146101775780638f42f9ab146101725780639168f9d21461016d5780639a896551146101685780639f86fd8514610163578063aa8e64891461015e578063aab3595f14610159578063b94c386e14610154578063bb24fe8a1461014f578063bc6eac5b1461014a578063c0cd7c3e14610145578063cd05b8a114610140578063d5c24e1a1461013b578063e054e08b14610136578063f9268d18146101315763fbfa77cf1461012c575f80fd5b611596565b611428565b611403565b6113e6565b61138e565b61134a565b61132d565b6112ea565b610f9e565b610f46565b610f08565b610e02565b610d77565b61094c565b61092f565b610695565b61055d565b61050c565b6104a3565b610315565b6102d1565b6102b5565b610260565b61020c565b6101b7565b5f9103126101b357565b5f80fd5b346101b3575f3660031901126101b3576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b6001600160a01b038116036101b357565b346101b35760403660031901126101b3576020610258610253602435610231816101fb565b6004355f526002845260405f209060018060a01b03165f5260205260405f2090565b61199e565b604051908152f35b346101b35760403660031901126101b357602065ffffffffffff6102ab602435610289816101fb565b6004355f526001845260405f209060018060a01b03165f5260205260405f2090565b5416604051908152f35b346101b3575f3660031901126101b3576020604051614e208152f35b346101b3575f3660031901126101b3576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346101b3575f3660031901126101b3576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b65ffffffffffff8116036101b357565b634e487b7160e01b5f52604160045260245ffd5b602081019081106001600160401b0382111761039857604052565b610369565b606081019081106001600160401b0382111761039857604052565b604081019081106001600160401b0382111761039857604052565b6001600160401b03811161039857604052565b90601f801991011681019081106001600160401b0382111761039857604052565b6040519060c082018281106001600160401b0382111761039857604052565b604051906104338261039d565b565b60405190610433826103b8565b6001600160401b03811161039857601f01601f191660200190565b81601f820112156101b35780359061047482610442565b9261048260405194856103e6565b828452602083830101116101b357815f926020809301838601378301015290565b346101b35760603660031901126101b3576024356104c081610359565b604435906001600160401b0382116101b3576105036104e5602093369060040161045d565b6004355f90815260068552604090206001600160a01b039390611a1e565b16604051908152f35b346101b3575f3660031901126101b357602060ff5f5460a01c166040519015158152f35b9181601f840112156101b3578235916001600160401b0383116101b357602083818601950101116101b357565b346101b35760203660031901126101b3576001600160401b036004358181116101b35761058e903690600401610530565b5f80516020612d87833981519152549260ff8460401c161593168015908161068d575b6001149081610683575b15908161067a575b50610668575f80516020612d87833981519152805467ffffffffffffffff191660011790556105f6918361064457611b57565b6105fc57005b5f80516020612d87833981519152805460ff60401b19169055604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a1005b5f80516020612d87833981519152805460ff60401b1916600160401b179055611b57565b60405163f92ee8a960e01b8152600490fd5b9050155f6105c3565b303b1591506105bb565b8491506105b1565b346101b35760a03660031901126101b357600460243581356106b6826101fb565b606435916106c383610359565b6084356001600160401b0381116101b3576106e19036908601610530565b93906106eb611cc1565b6106f484611cf0565b6106fc6115e2565b9480610919575b505061070e42611dd8565b610728610721875465ffffffffffff1690565b8092611657565b5f5490959061074d90610741906001600160a01b031681565b6001600160a01b031690565b958760206040988951928380926327f843b560e11b82525afa80156109145761078c92610781925f926108e3575b506116ad565b65ffffffffffff1690565b65ffffffffffff84169081109081156108cd575b506108bd576107b56107be9151848688611fc5565b50604435611d87565b9586156108af576108ab610884878988887f3cb7f4ff6cecf74cee0eb9ae3ebf8933fa60a53014cce52f96da72a78dba8464896108038a6107fe42611dd8565b611657565b92600354978894610854610815610407565b8881526001600160a01b0385166020820152808b018a905265ffffffffffff8616606082015265ffffffffffff831660808201525f60a08201526116d8565b885197885265ffffffffffff938416602089015290921660408701526001600160a01b0316949081906060820190565b0390a461089d60015f80516020612d6783398151915255565b519081529081906020820190565b0390f35b855163167f871760e31b8152fd5b8551631357ac9160e11b81528790fd5b90506108db61078142611dd8565b11155f6107a0565b61090691925060203d60201161090d575b6108fe81836103e6565b810190611676565b905f61077b565b503d6108f4565b61168b565b6109279295508101906115f5565b925f80610703565b346101b3575f3660031901126101b3576020600354604051908152f35b346101b35760603660031901126101b35760048035906bffffffffffffffffffffffff821682036101b357602435610983816101fb565b6044356001600160401b0381116101b3576109a19036908401610530565b906109aa611cc1565b6109b26115e2565b5081610d12575b5050604080516302910f8b60e31b8152338185019081526001600160a01b0395929491602091829082908190830103818a7f0000000000000000000000000000000000000000000000000000000000000000165afa908115610914575f91610ce5575b5015610cd6575f54610a57906001600160a01b0316936bffffffffffffffffffffffff166bffffffffffffffffffffffff193360601b161790565b95610a72610a6d885f52600660205260405f2090565b6128a9565b50949015610c6c57610a8661078142611dd8565b65ffffffffffff9586161115610c3657610ab0610aab895f52600660205260405f2090565b611d99565b505b610ad5610741610741610741610ad08c5f52600660205260405f2090565b612663565b91808716928303610b41575b505050505050610b26907f7b0b759b513b299fd2811f51926dca8854222a675557e8d544ce0933bf5b7570925b516001600160a01b0390911681529081906020820190565b0390a2610b3f60015f80516020612d6783398151915255565b005b610b588998959796985f52600660205260405f2090565b911692845163186a323160e21b815281818981885afa908115610914575f91610c19575b5081600554958751998a80926327f843b560e11b82525afa9081156109145789610be1610bf3977f7b0b759b513b299fd2811f51926dca8854222a675557e8d544ce0933bf5b75709c610be895610b269d610bed985f92610bfc575b505016906117e0565b9116611801565b611dd8565b90612b09565b82958495610ae1565b610c129250803d1061090d576108fe81836103e6565b5f80610bd8565b610c309150823d841161090d576108fe81836103e6565b5f610b7c565b610c54610741610741610741610ad08c5f52600660205260405f2090565b82871603610ab257865163a741a04560e01b81528490fd5b5093949385169250508115610cc8575091610b2691610cc17f7b0b759b513b299fd2811f51926dca8854222a675557e8d544ce0933bf5b757094610cb8875f52600660205260405f2090565b610bed42611dd8565b5050610b0e565b825163a741a04560e01b8152fd5b5083516323d53b9760e21b8152fd5b610d059150823d8411610d0b575b610cfd81836103e6565b8101906117cc565b5f610a1c565b503d610cf3565b610d1e918101906115f5565b505f806109b9565b634e487b7160e01b5f52603260045260245ffd5b600354811015610d725760035f5260021b7fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b01905f90565b610d26565b346101b35760203660031901126101b3576004356003548110156101b357610d9e90610d3a565b50805460018201546002830154600390930154604080519384526001600160a01b0390921660208401529082019290925265ffffffffffff808316606080840191909152603084901c90911660808301529190911c60ff16151560a082015260c090f35b346101b3576040806003193601126101b357600435610e20816101fb565b602435906001600160401b0382116101b3575f8091610e46610eaa943690600401610530565b908187519283928337810184815203915af43d15610eb257610e9c3d610e6b81610442565b90610e78865192836103e6565b81523d5f602083013e5b84519485931515602085015280840152606083019061180e565b03601f1981018352826103e6565b805190602001fd5b610e9c6060610e82565b9060806003198301126101b35760043591602435610ed9816101fb565b91604435610ee681610359565b91606435906001600160401b0382116101b357610f059160040161045d565b90565b346101b3576020610258610f41610f1e36610ebc565b939190925f526002865260405f209060018060a01b03165f5260205260405f2090565b611e0a565b346101b3576020610f62610f5936610ebc565b92919091611fc5565b50604051908152f35b9060406003198301126101b35760043591602435906001600160401b0382116101b357610f9a91600401610530565b9091565b346101b357610fac36610f6b565b9190610fb6611cc1565b610fbe61185e565b92806112d4575b50506003548110156112c257610fda81610d3a565b5090815490610fe882611cf0565b6003830180549365ffffffffffff9384861660018060a01b0361100d895183856115bd565b16151580611297575b8061127e575b61126c576110328161102d42611dd8565b6116ad565b5f5461104890610741906001600160a01b031681565b96600460206040998a51928380926327f843b560e11b82525afa80156109145782915f9161124d575b501691161161123c57600183018054909861109c93929188906001600160a01b031691015192611fc5565b906110ab816002850154611d87565b96871561122b5760601c60ff1661121a57926111d36111c6899461119e61118b8b9687876108ab9f6111998f9d8f9e6111d99f6110f586600160601b60ff60601b19825416179055565b8a54855461111791906001600160a01b0316885465ffffffffffff16916121f5565b8a5485546111309189916001600160a01b031690612275565b8a54945461114e906001600160a01b0316965465ffffffffffff1690565b97611157610426565b9384526020840152818301525196879160208301919091604080606083019480518452602081015160208501520151910152565b03601f1981018752866103e6565b6123e1565b6111b76111b1855465ffffffffffff1690565b866124ea565b5494546001600160a01b031690565b915465ffffffffffff1690565b92612567565b81518381527f5cc28df3b54da9d06f805d87616ebf969c81310f2aa8369cb14ca50f815d411190602090a261089d60015f80516020612d6783398151915255565b8551633428e90760e01b8152600490fd5b865163167f871760e31b8152600490fd5b8551639ea153eb60e01b8152600490fd5b611266915060203d60201161090d576108fe81836103e6565b5f611071565b60405163b62b15c760e01b8152600490fd5b5061128b61078142611dd8565b868860301c161161101c565b506112bb6107416112af6112aa42611dd8565b611696565b60208b015190856115bd565b1515611016565b604051637822972360e11b8152600490fd5b6112e292935081019061187d565b905f80610fc5565b346101b3575f3660031901126101b35760206040516001600160401b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b346101b3575f3660031901126101b3576020600554604051908152f35b346101b3575f3660031901126101b3576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346101b35760403660031901126101b3576024356001600160401b0381116101b3576113d46113c3602092369060040161045d565b6113cc42611dd8565b6004356115bd565b6040516001600160a01b039091168152f35b346101b3575f3660031901126101b3576020604051620249f08152f35b346101b3575f3660031901126101b357602065ffffffffffff60045416604051908152f35b346101b35761143636610f6b565b9061143f611cc1565b611447611905565b9180611582575b50506003548210156112c25761146382610d3a565b506003815491019182549165ffffffffffff9160018060a01b0361148b8251858716856115bd565b16918215918215611559575b5050611547573303611535576114af61078142611dd8565b908260301c1611156115245760601c60ff1661151257805460ff60601b1916600160601b17905533907f7d3d269c851b72257a5194a401d151902e9be4347d555996dcff3ff86a077e925f80a3610b3f60015f80516020612d6783398151915255565b604051633428e90760e01b8152600490fd5b60405162c457e560e81b8152600490fd5b604051635d154fe160e11b8152600490fd5b60405163dd1ebd9d60e01b8152600490fd5b61157a9250906107419160206115716112aa42611dd8565b910151916115bd565b155f80611497565b61158f925081019061191e565b5f8061144e565b346101b3575f3660031901126101b3575f546040516001600160a01b039091168152602090f35b5f9081526006602052604090206001600160a01b03926115de929091611a1e565b1690565b604051906115ef8261037d565b60608252565b906020828203126101b35781356001600160401b03928382116101b35701906020828203126101b3576040519261162b8461037d565b82359081116101b35761163e920161045d565b815290565b634e487b7160e01b5f52601160045260245ffd5b91909165ffffffffffff8080941691160191821161167157565b611643565b908160209103126101b35751610f0581610359565b6040513d5f823e3d90fd5b65ffffffffffff9081165f19019190821161167157565b65ffffffffffff918216908216039190821161167157565b634e487b7160e01b5f525f60045260245ffd5b600354600160401b811015610398578060016116f79201600355610d3a565b9190916117ba578051825560208101516001830180546001600160a01b0319166001600160a01b0392909216919091179055610433916117a09060a09060039060408501516002820155019261176d65ffffffffffff606083015116859065ffffffffffff1665ffffffffffff19825416179055565b60808101516bffffffffffff00000000000085549160301b16906bffffffffffff00000000000019161784550151151590565b815460ff60601b191690151560601b60ff60601b16179055565b6116c5565b519081151582036101b357565b908160209103126101b357610f05906117bf565b8181029291811591840414171561167157565b906001820180921161167157565b9190820180921161167157565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b5f9081526002602090815260408083206001600160a01b03909416835292905220610f05929190611e0a565b6040519061186b8261039d565b60606040838281528260208201520152565b906020828203126101b35781356001600160401b03928382116101b35701906060828203126101b357604051926118b38461039d565b82358181116101b357826118c891850161045d565b845260208301358181116101b357826118e291850161045d565b602085015260408301359081116101b3576118fd920161045d565b604082015290565b60405190611912826103b8565b60606020838281520152565b906020828203126101b35781356001600160401b03928382116101b35701906040828203126101b35760405192611954846103b8565b82358181116101b3578261196991850161045d565b845260208301359081116101b357611981920161045d565b602082015290565b8054821015610d72575f5260205f2001905f90565b6119a781612663565b6001600160d01b038116156119cc5760016119c29201611989565b90549060031b1c90565b50505f90565b908160209103126101b3575163ffffffff811681036101b35790565b5f1981019190821161167157565b9190820391821161167157565b90600163ffffffff8093160191821161167157565b91805115611b025780602080611a39935183010191016119d2565b91611a4483826126a3565b92611a55845165ffffffffffff1690565b9065ffffffffffff8085169216828114611ae95782119182611a94575b5050611a8257610f0592506129b5565b5050602001516001600160d01b031690565b909150611aa183546119ee565b63ffffffff831614918215611aba575b50505f80611a72565b611ae1919250611ad5611acf61078192611a09565b856126a3565b5165ffffffffffff1690565b115f80611ab1565b50505050602091909101516001600160d01b0316905090565b50610f05916129b5565b9190916040818403126101b3578035611b24816101fb565b9260208201356001600160401b0381116101b357610f05920161045d565b908160209103126101b35751610f05816101fb565b611b6391810190611b0c565b6040516302910f8b60e31b81526001600160a01b0392831660048201819052929160209182816024817f000000000000000000000000000000000000000000000000000000000000000088165afa908115610914575f91611ca4575b5015611c925781611bf4600492611bd46126f7565b5f80546001600160a01b0319166001600160a01b03891617905586612784565b94604051928380926313c085b760e11b82525afa918215610914575f92611c65575b5050161580611c5b575b611c4957516104339015155f805460ff60a01b191691151560a01b60ff60a01b16919091179055565b60405163d2420f5960e01b8152600490fd5b5080511515611c20565b611c849250803d10611c8b575b611c7c81836103e6565b810190611b42565b5f80611c16565b503d611c72565b6040516362df054560e01b8152600490fd5b611cbb9150833d8511610d0b57610cfd81836103e6565b5f611bbf565b5f80516020612d678339815191526002815414611cde5760029055565b604051633ee5aeb560e01b8152600490fd5b604051635daf681960e11b815260609190911c60048201526001600160a01b036020826024817f000000000000000000000000000000000000000000000000000000000000000085165afa918215610914575f92611d66575b5033911603611d5457565b60405163227bf64d60e01b8152600490fd5b611d8091925060203d602011611c8b57611c7c81836103e6565b905f611d49565b9080821015611d94575090565b905090565b90611da382612663565b9180548015611dc4575f190190611dba8282611989565b6117ba575f905555565b634e487b7160e01b5f52603160045260245ffd5b65ffffffffffff90818111611deb571690565b604490604051906306dfcc6560e41b8252603060048301526024820152fd5b91805115611ecc5780602080611e25935183010191016119d2565b91611e308382612903565b92611e41845165ffffffffffff1690565b9065ffffffffffff8085169216828114611ec05782119182611e77575b5050611e6e57610f0592506128f8565b50506020015190565b909150611e8483546119ee565b63ffffffff831614918215611e9d575b50505f80611e5e565b611eb8919250611ad5611eb261078192611a09565b85612903565b115f80611e94565b50505050506020015190565b50610f05916128f8565b81601f820112156101b357805190611eed82610442565b92611efb60405194856103e6565b828452602083830101116101b357815f9260208093018386015e8301015290565b906020828203126101b35781516001600160401b03928382116101b35701906040828203126101b35760405192611f52846103b8565b82518181116101b35782611f67918501611ed6565b845260208301519081116101b3576119819201611ed6565b908160209103126101b3575190565b9081526001600160a01b03909116602082015265ffffffffffff9091166040820152608060608201819052610f059291019061180e565b92611fce611905565b908051806121db575b5050611fe242611dd8565b5f54909490611ffb90610741906001600160a01b031681565b93604051956327f843b560e11b875260209687816004818a5afa80156109145761202f92610781925f926121c357506116ad565b65ffffffffffff82169081109081156121ac575b811561217b575b5061216f578560049560405196878092630ce9b79360e41b82525afa9485156109145761209c9587915f91612152575b50845190604051808099819463e02f693760e01b8352878b8a60048601611f8e565b03916001600160a01b03165afa9384156109145761210e955f95612111575b509261210385936121099361210396869a6120fa610253836120e5875f52600260205260405f2090565b9060018060a01b03165f5260205260405f2090565b95015192611832565b906119fc565b611d87565b91565b61210992955061210394919361213f612103928a3d8c1161214b575b61213781836103e6565b810190611f7f565b969350939194506120bb565b503d61212d565b6121699150823d8411611c8b57611c7c81836103e6565b5f61207a565b5050505050505f905f90565b90506121a5610781612199876120e5875f52600160205260405f2090565b5465ffffffffffff1690565b115f61204a565b90506121ba61078142611dd8565b81101590612043565b6109069192508a3d8c1161090d576108fe81836103e6565b6121ee9250602080918301019101611f1c565b5f80611fd7565b919091805f52600160205265ffffffffffff806122258560405f209060018060a01b03165f5260205260405f2090565b54169083161161223457505050565b6104339261225c915f52600160205260405f209060018060a01b03165f5260205260405f2090565b9065ffffffffffff1665ffffffffffff19825416179055565b9190825f5260026020526122cd6102536122a28360405f209060018060a01b03165f5260205260405f2090565b926122ac42611dd8565b955f52600260205260405f209060018060a01b03165f5260205260405f2090565b918201809211611671576001810190815415612371575b6122ed816128a9565b5094908354956122fc8461199e565b508161235c575b501561233b5750505f198301928311611671576104339261232391611989565b90919082549060031b91821b915f19901b1916179055565b61043394612355926001600160d01b039091169190612b09565b5050612992565b65ffffffffffff83811691161490505f612303565b61237a82612965565b6122e4565b60606020610f05938184526001600160401b0381511682850152015191604080820152019061180e565b919360a093610f05969565ffffffffffff938552600180871b031660208501526040840152166060820152816080820152019061180e565b929390600460206123fe6107416107415f5460018060a01b031690565b604051630ce9b79360e41b815292839182905afa90811561091457610e9c9161247c915f916124cb575b506001600160a01b03169361243b610435565b6001600160401b037f00000000000000000000000000000000000000000000000000000000000000001681529060208201526040519283916020830161237f565b823b156101b3575f946124a786926040519889978896879563724ab0f760e11b8752600487016123a9565b03925af18015610914576124b85750565b806124c5610433926103d3565b806101a9565b6124e4915060203d602011611c8b57611c7c81836103e6565b5f612428565b65ffffffffffff9160446020925f60018060a01b038154166040519687958694631c9e38c760e21b865260048601521660248401525af180156109145761252e5750565b6125469060203d60201161214b5761213781836103e6565b50565b8115612553570490565b634e487b7160e01b5f52601260045260245ffd5b92905f549060ff8260a01c1661257f575b5050505050565b6040516313c085b760e11b815291602090839060049082906001600160a01b03165afa918215610914575f9261263c575b5060405163065c1e0360e01b6020820190815260248201969096526001600160a01b039091166044820152606481019390935265ffffffffffff90911660848301526126098260a481015b03601f1981018452836103e6565b6202a15c5a1061262a575f928380935192620249f0f1505f80808080612578565b604051632153f33560e21b8152600490fd5b612609925061265c6125fb9160203d602011611c8b57611c7c81836103e6565b92506125b0565b8054806126705750505f90565b5f19918183810111611671575f5260205f2001015460301c90565b60405190612698826103b8565b5f6020838281520152565b6126c8916126c2916126b361268b565b506126bc61268b565b50611989565b50612885565b65ffffffffffff81511690602060018060d01b0391015116604051916126ed836103b8565b8252602082015290565b6126ff612a94565b612707612a94565b60015f80516020612d6783398151915255565b604051906127278261037d565b5f8252565b80910390606082126101b3576020604051926127478461039d565b126101b357604090815161275a8161037d565b612763826117bf565b81528352602081015161277581610359565b60208401520151604082015290565b9060049061279061271a565b5080516127a760209283808094830101910161272c565b6040516327f843b560e11b815290949093849182906001600160a01b03165afa918215610914575f92612866575b508201906127e9825165ffffffffffff1690565b65ffffffffffff91821691161015612854576040820160038151106128425761283861281e61283e935165ffffffffffff1690565b65ffffffffffff1665ffffffffffff196004541617600455565b51600555565b5190565b6040516354f778f360e01b8152600490fd5b6040516367d5e3df60e11b8152600490fd5b8161287e9293503d841161090d576108fe81836103e6565b905f6127d5565b90604051612892816103b8565b915465ffffffffffff8116835260301c6020830152565b8054806128ba5750505f905f905f90565b5f19908082810111611671576128d7925f5260205f200101612885565b9065ffffffffffff82511691602060018060d01b0391015116906001929190565b906119a790826129b5565b906129266126c26129479261291661268b565b5061291f61268b565b5084611989565b91600165ffffffffffff845116936020828060d01b03910151169101611989565b90549060405192612957846103b8565b835260031b1c602082015290565b8054600160401b8110156103985761298291600182018155611989565b8154905f199060031b1b19169055565b90815491600160401b831015610398578261232391600161043395018155611989565b908154905f918060058111612a4b575b50915b8281106129fe575050806129dc5750505f90565b610f05916129ec6129f7926119ee565b905f5260205f200190565b5460301c90565b90918082169080831860011c820180921161167157845f5265ffffffffffff808360205f20015416908516105f14612a395750915b906129c8565b929150612a45906117f3565b90612a33565b90612a5582612c28565b820391821161167157845f5265ffffffffffff808360205f20015416908416105f14612a8357505b5f6129c5565b9250612a8e906117f3565b91612a7d565b60ff5f80516020612d878339815191525460401c1615612ab057565b604051631afcd79f60e31b8152600490fd5b8054600160401b81101561039857612adf91600182018155611989565b6117ba57815160209092015160301b65ffffffffffff191665ffffffffffff909216919091179055565b805492939291908215612bff57612b35612b30612b25856119ee565b835f5260205f200190565b612885565b90612b46825165ffffffffffff1690565b65ffffffffffff84811691168110612bed57612bb1946020948892612b74610781875165ffffffffffff1690565b03612bb55750612ba3926129ec612b8a926119ee565b9065ffffffffffff82549181199060301b169116179055565b01516001600160d01b031690565b9190565b915050612be891612bd5612bc7610435565b65ffffffffffff9093168352565b6001600160d01b03881682860152612ac2565b612ba3565b604051632520601d60e01b8152600490fd5b612c239250612c0f612bc7610435565b6001600160d01b0385166020830152612ac2565b5f9190565b8015612d615780612cfa612cf3612ce9612cdf612cd5612ccb612cc1612cb76001610f059a5f908b60801c80612d55575b508060401c80612d48575b508060201c80612d3b575b508060101c80612d2e575b508060081c80612d21575b508060041c80612d14575b508060021c80612d07575b50821c612d00575b811c1b612cb0818b612549565b0160011c90565b612cb0818a612549565b612cb08189612549565b612cb08188612549565b612cb08187612549565b612cb08186612549565b612cb08185612549565b8092612549565b90611d87565b8101612ca3565b600291509101905f612c9b565b600491509101905f612c90565b600891509101905f612c85565b601091509101905f612c7a565b602091509101905f612c6f565b604091509101905f612c64565b9150506080905f612c59565b505f9056fe9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a2646970667358221220a1301b9e117701c6e52f7271afc2f2c3e627b96bd0329f3eeaa67543396e82ed64736f6c63430008190033","sourceMap":"707:8662:99:-:0;;;;;;;;;;;;;-1:-1:-1;;707:8662:99;;;;-1:-1:-1;;;;;707:8662:99;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;8837:64:26;707:8662:99;;;;;;;;;7896:76:26;;707:8662:99;;;;7985:34:26;7981:146;;-1:-1:-1;525:17:74;;;707:8662:99;525:17:74;707:8662:99;552:12:74;2353:28:97;;2391:53;;1620:34:99;;;;707:8662;;;;;;;;;;;;;;;;;;;;;;;;2353:28:97;707:8662:99;;;;;;;;;;2391:53:97;707:8662:99;;;;;;;;;;;;;;;;;;;;;7981:146:26;-1:-1:-1;;;;;;707:8662:99;;;;;;;;;;;;;8087:29:26;;707:8662:99;;8087:29:26;7981:146;;;;;7896:76;707:8662:99;;-1:-1:-1;;;7938:23:26;;;;;707:8662:99;-1:-1:-1;707:8662:99;;;;;;-1:-1:-1;707:8662:99;;;;;-1:-1:-1;707:8662:99;;;;-1:-1:-1;;;;;707:8662:99;;;;;;:::o","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361015610011575f80fd5b5f3560e01c8063103f2907146101a45780631a2be2c41461019f578063267de1f31461019a5780632964f8dc146101955780632c9d45b3146101905780632dd310001461018b57806331ce4dfe1461018657806334d098ea14610181578063439fab911461017c578063545ce389146101775780638f42f9ab146101725780639168f9d21461016d5780639a896551146101685780639f86fd8514610163578063aa8e64891461015e578063aab3595f14610159578063b94c386e14610154578063bb24fe8a1461014f578063bc6eac5b1461014a578063c0cd7c3e14610145578063cd05b8a114610140578063d5c24e1a1461013b578063e054e08b14610136578063f9268d18146101315763fbfa77cf1461012c575f80fd5b611596565b611428565b611403565b6113e6565b61138e565b61134a565b61132d565b6112ea565b610f9e565b610f46565b610f08565b610e02565b610d77565b61094c565b61092f565b610695565b61055d565b61050c565b6104a3565b610315565b6102d1565b6102b5565b610260565b61020c565b6101b7565b5f9103126101b357565b5f80fd5b346101b3575f3660031901126101b3576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b6001600160a01b038116036101b357565b346101b35760403660031901126101b3576020610258610253602435610231816101fb565b6004355f526002845260405f209060018060a01b03165f5260205260405f2090565b61199e565b604051908152f35b346101b35760403660031901126101b357602065ffffffffffff6102ab602435610289816101fb565b6004355f526001845260405f209060018060a01b03165f5260205260405f2090565b5416604051908152f35b346101b3575f3660031901126101b3576020604051614e208152f35b346101b3575f3660031901126101b3576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346101b3575f3660031901126101b3576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b65ffffffffffff8116036101b357565b634e487b7160e01b5f52604160045260245ffd5b602081019081106001600160401b0382111761039857604052565b610369565b606081019081106001600160401b0382111761039857604052565b604081019081106001600160401b0382111761039857604052565b6001600160401b03811161039857604052565b90601f801991011681019081106001600160401b0382111761039857604052565b6040519060c082018281106001600160401b0382111761039857604052565b604051906104338261039d565b565b60405190610433826103b8565b6001600160401b03811161039857601f01601f191660200190565b81601f820112156101b35780359061047482610442565b9261048260405194856103e6565b828452602083830101116101b357815f926020809301838601378301015290565b346101b35760603660031901126101b3576024356104c081610359565b604435906001600160401b0382116101b3576105036104e5602093369060040161045d565b6004355f90815260068552604090206001600160a01b039390611a1e565b16604051908152f35b346101b3575f3660031901126101b357602060ff5f5460a01c166040519015158152f35b9181601f840112156101b3578235916001600160401b0383116101b357602083818601950101116101b357565b346101b35760203660031901126101b3576001600160401b036004358181116101b35761058e903690600401610530565b5f80516020612d87833981519152549260ff8460401c161593168015908161068d575b6001149081610683575b15908161067a575b50610668575f80516020612d87833981519152805467ffffffffffffffff191660011790556105f6918361064457611b57565b6105fc57005b5f80516020612d87833981519152805460ff60401b19169055604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a1005b5f80516020612d87833981519152805460ff60401b1916600160401b179055611b57565b60405163f92ee8a960e01b8152600490fd5b9050155f6105c3565b303b1591506105bb565b8491506105b1565b346101b35760a03660031901126101b357600460243581356106b6826101fb565b606435916106c383610359565b6084356001600160401b0381116101b3576106e19036908601610530565b93906106eb611cc1565b6106f484611cf0565b6106fc6115e2565b9480610919575b505061070e42611dd8565b610728610721875465ffffffffffff1690565b8092611657565b5f5490959061074d90610741906001600160a01b031681565b6001600160a01b031690565b958760206040988951928380926327f843b560e11b82525afa80156109145761078c92610781925f926108e3575b506116ad565b65ffffffffffff1690565b65ffffffffffff84169081109081156108cd575b506108bd576107b56107be9151848688611fc5565b50604435611d87565b9586156108af576108ab610884878988887f3cb7f4ff6cecf74cee0eb9ae3ebf8933fa60a53014cce52f96da72a78dba8464896108038a6107fe42611dd8565b611657565b92600354978894610854610815610407565b8881526001600160a01b0385166020820152808b018a905265ffffffffffff8616606082015265ffffffffffff831660808201525f60a08201526116d8565b885197885265ffffffffffff938416602089015290921660408701526001600160a01b0316949081906060820190565b0390a461089d60015f80516020612d6783398151915255565b519081529081906020820190565b0390f35b855163167f871760e31b8152fd5b8551631357ac9160e11b81528790fd5b90506108db61078142611dd8565b11155f6107a0565b61090691925060203d60201161090d575b6108fe81836103e6565b810190611676565b905f61077b565b503d6108f4565b61168b565b6109279295508101906115f5565b925f80610703565b346101b3575f3660031901126101b3576020600354604051908152f35b346101b35760603660031901126101b35760048035906bffffffffffffffffffffffff821682036101b357602435610983816101fb565b6044356001600160401b0381116101b3576109a19036908401610530565b906109aa611cc1565b6109b26115e2565b5081610d12575b5050604080516302910f8b60e31b8152338185019081526001600160a01b0395929491602091829082908190830103818a7f0000000000000000000000000000000000000000000000000000000000000000165afa908115610914575f91610ce5575b5015610cd6575f54610a57906001600160a01b0316936bffffffffffffffffffffffff166bffffffffffffffffffffffff193360601b161790565b95610a72610a6d885f52600660205260405f2090565b6128a9565b50949015610c6c57610a8661078142611dd8565b65ffffffffffff9586161115610c3657610ab0610aab895f52600660205260405f2090565b611d99565b505b610ad5610741610741610741610ad08c5f52600660205260405f2090565b612663565b91808716928303610b41575b505050505050610b26907f7b0b759b513b299fd2811f51926dca8854222a675557e8d544ce0933bf5b7570925b516001600160a01b0390911681529081906020820190565b0390a2610b3f60015f80516020612d6783398151915255565b005b610b588998959796985f52600660205260405f2090565b911692845163186a323160e21b815281818981885afa908115610914575f91610c19575b5081600554958751998a80926327f843b560e11b82525afa9081156109145789610be1610bf3977f7b0b759b513b299fd2811f51926dca8854222a675557e8d544ce0933bf5b75709c610be895610b269d610bed985f92610bfc575b505016906117e0565b9116611801565b611dd8565b90612b09565b82958495610ae1565b610c129250803d1061090d576108fe81836103e6565b5f80610bd8565b610c309150823d841161090d576108fe81836103e6565b5f610b7c565b610c54610741610741610741610ad08c5f52600660205260405f2090565b82871603610ab257865163a741a04560e01b81528490fd5b5093949385169250508115610cc8575091610b2691610cc17f7b0b759b513b299fd2811f51926dca8854222a675557e8d544ce0933bf5b757094610cb8875f52600660205260405f2090565b610bed42611dd8565b5050610b0e565b825163a741a04560e01b8152fd5b5083516323d53b9760e21b8152fd5b610d059150823d8411610d0b575b610cfd81836103e6565b8101906117cc565b5f610a1c565b503d610cf3565b610d1e918101906115f5565b505f806109b9565b634e487b7160e01b5f52603260045260245ffd5b600354811015610d725760035f5260021b7fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b01905f90565b610d26565b346101b35760203660031901126101b3576004356003548110156101b357610d9e90610d3a565b50805460018201546002830154600390930154604080519384526001600160a01b0390921660208401529082019290925265ffffffffffff808316606080840191909152603084901c90911660808301529190911c60ff16151560a082015260c090f35b346101b3576040806003193601126101b357600435610e20816101fb565b602435906001600160401b0382116101b3575f8091610e46610eaa943690600401610530565b908187519283928337810184815203915af43d15610eb257610e9c3d610e6b81610442565b90610e78865192836103e6565b81523d5f602083013e5b84519485931515602085015280840152606083019061180e565b03601f1981018352826103e6565b805190602001fd5b610e9c6060610e82565b9060806003198301126101b35760043591602435610ed9816101fb565b91604435610ee681610359565b91606435906001600160401b0382116101b357610f059160040161045d565b90565b346101b3576020610258610f41610f1e36610ebc565b939190925f526002865260405f209060018060a01b03165f5260205260405f2090565b611e0a565b346101b3576020610f62610f5936610ebc565b92919091611fc5565b50604051908152f35b9060406003198301126101b35760043591602435906001600160401b0382116101b357610f9a91600401610530565b9091565b346101b357610fac36610f6b565b9190610fb6611cc1565b610fbe61185e565b92806112d4575b50506003548110156112c257610fda81610d3a565b5090815490610fe882611cf0565b6003830180549365ffffffffffff9384861660018060a01b0361100d895183856115bd565b16151580611297575b8061127e575b61126c576110328161102d42611dd8565b6116ad565b5f5461104890610741906001600160a01b031681565b96600460206040998a51928380926327f843b560e11b82525afa80156109145782915f9161124d575b501691161161123c57600183018054909861109c93929188906001600160a01b031691015192611fc5565b906110ab816002850154611d87565b96871561122b5760601c60ff1661121a57926111d36111c6899461119e61118b8b9687876108ab9f6111998f9d8f9e6111d99f6110f586600160601b60ff60601b19825416179055565b8a54855461111791906001600160a01b0316885465ffffffffffff16916121f5565b8a5485546111309189916001600160a01b031690612275565b8a54945461114e906001600160a01b0316965465ffffffffffff1690565b97611157610426565b9384526020840152818301525196879160208301919091604080606083019480518452602081015160208501520151910152565b03601f1981018752866103e6565b6123e1565b6111b76111b1855465ffffffffffff1690565b866124ea565b5494546001600160a01b031690565b915465ffffffffffff1690565b92612567565b81518381527f5cc28df3b54da9d06f805d87616ebf969c81310f2aa8369cb14ca50f815d411190602090a261089d60015f80516020612d6783398151915255565b8551633428e90760e01b8152600490fd5b865163167f871760e31b8152600490fd5b8551639ea153eb60e01b8152600490fd5b611266915060203d60201161090d576108fe81836103e6565b5f611071565b60405163b62b15c760e01b8152600490fd5b5061128b61078142611dd8565b868860301c161161101c565b506112bb6107416112af6112aa42611dd8565b611696565b60208b015190856115bd565b1515611016565b604051637822972360e11b8152600490fd5b6112e292935081019061187d565b905f80610fc5565b346101b3575f3660031901126101b35760206040516001600160401b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b346101b3575f3660031901126101b3576020600554604051908152f35b346101b3575f3660031901126101b3576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346101b35760403660031901126101b3576024356001600160401b0381116101b3576113d46113c3602092369060040161045d565b6113cc42611dd8565b6004356115bd565b6040516001600160a01b039091168152f35b346101b3575f3660031901126101b3576020604051620249f08152f35b346101b3575f3660031901126101b357602065ffffffffffff60045416604051908152f35b346101b35761143636610f6b565b9061143f611cc1565b611447611905565b9180611582575b50506003548210156112c25761146382610d3a565b506003815491019182549165ffffffffffff9160018060a01b0361148b8251858716856115bd565b16918215918215611559575b5050611547573303611535576114af61078142611dd8565b908260301c1611156115245760601c60ff1661151257805460ff60601b1916600160601b17905533907f7d3d269c851b72257a5194a401d151902e9be4347d555996dcff3ff86a077e925f80a3610b3f60015f80516020612d6783398151915255565b604051633428e90760e01b8152600490fd5b60405162c457e560e81b8152600490fd5b604051635d154fe160e11b8152600490fd5b60405163dd1ebd9d60e01b8152600490fd5b61157a9250906107419160206115716112aa42611dd8565b910151916115bd565b155f80611497565b61158f925081019061191e565b5f8061144e565b346101b3575f3660031901126101b3575f546040516001600160a01b039091168152602090f35b5f9081526006602052604090206001600160a01b03926115de929091611a1e565b1690565b604051906115ef8261037d565b60608252565b906020828203126101b35781356001600160401b03928382116101b35701906020828203126101b3576040519261162b8461037d565b82359081116101b35761163e920161045d565b815290565b634e487b7160e01b5f52601160045260245ffd5b91909165ffffffffffff8080941691160191821161167157565b611643565b908160209103126101b35751610f0581610359565b6040513d5f823e3d90fd5b65ffffffffffff9081165f19019190821161167157565b65ffffffffffff918216908216039190821161167157565b634e487b7160e01b5f525f60045260245ffd5b600354600160401b811015610398578060016116f79201600355610d3a565b9190916117ba578051825560208101516001830180546001600160a01b0319166001600160a01b0392909216919091179055610433916117a09060a09060039060408501516002820155019261176d65ffffffffffff606083015116859065ffffffffffff1665ffffffffffff19825416179055565b60808101516bffffffffffff00000000000085549160301b16906bffffffffffff00000000000019161784550151151590565b815460ff60601b191690151560601b60ff60601b16179055565b6116c5565b519081151582036101b357565b908160209103126101b357610f05906117bf565b8181029291811591840414171561167157565b906001820180921161167157565b9190820180921161167157565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b5f9081526002602090815260408083206001600160a01b03909416835292905220610f05929190611e0a565b6040519061186b8261039d565b60606040838281528260208201520152565b906020828203126101b35781356001600160401b03928382116101b35701906060828203126101b357604051926118b38461039d565b82358181116101b357826118c891850161045d565b845260208301358181116101b357826118e291850161045d565b602085015260408301359081116101b3576118fd920161045d565b604082015290565b60405190611912826103b8565b60606020838281520152565b906020828203126101b35781356001600160401b03928382116101b35701906040828203126101b35760405192611954846103b8565b82358181116101b3578261196991850161045d565b845260208301359081116101b357611981920161045d565b602082015290565b8054821015610d72575f5260205f2001905f90565b6119a781612663565b6001600160d01b038116156119cc5760016119c29201611989565b90549060031b1c90565b50505f90565b908160209103126101b3575163ffffffff811681036101b35790565b5f1981019190821161167157565b9190820391821161167157565b90600163ffffffff8093160191821161167157565b91805115611b025780602080611a39935183010191016119d2565b91611a4483826126a3565b92611a55845165ffffffffffff1690565b9065ffffffffffff8085169216828114611ae95782119182611a94575b5050611a8257610f0592506129b5565b5050602001516001600160d01b031690565b909150611aa183546119ee565b63ffffffff831614918215611aba575b50505f80611a72565b611ae1919250611ad5611acf61078192611a09565b856126a3565b5165ffffffffffff1690565b115f80611ab1565b50505050602091909101516001600160d01b0316905090565b50610f05916129b5565b9190916040818403126101b3578035611b24816101fb565b9260208201356001600160401b0381116101b357610f05920161045d565b908160209103126101b35751610f05816101fb565b611b6391810190611b0c565b6040516302910f8b60e31b81526001600160a01b0392831660048201819052929160209182816024817f000000000000000000000000000000000000000000000000000000000000000088165afa908115610914575f91611ca4575b5015611c925781611bf4600492611bd46126f7565b5f80546001600160a01b0319166001600160a01b03891617905586612784565b94604051928380926313c085b760e11b82525afa918215610914575f92611c65575b5050161580611c5b575b611c4957516104339015155f805460ff60a01b191691151560a01b60ff60a01b16919091179055565b60405163d2420f5960e01b8152600490fd5b5080511515611c20565b611c849250803d10611c8b575b611c7c81836103e6565b810190611b42565b5f80611c16565b503d611c72565b6040516362df054560e01b8152600490fd5b611cbb9150833d8511610d0b57610cfd81836103e6565b5f611bbf565b5f80516020612d678339815191526002815414611cde5760029055565b604051633ee5aeb560e01b8152600490fd5b604051635daf681960e11b815260609190911c60048201526001600160a01b036020826024817f000000000000000000000000000000000000000000000000000000000000000085165afa918215610914575f92611d66575b5033911603611d5457565b60405163227bf64d60e01b8152600490fd5b611d8091925060203d602011611c8b57611c7c81836103e6565b905f611d49565b9080821015611d94575090565b905090565b90611da382612663565b9180548015611dc4575f190190611dba8282611989565b6117ba575f905555565b634e487b7160e01b5f52603160045260245ffd5b65ffffffffffff90818111611deb571690565b604490604051906306dfcc6560e41b8252603060048301526024820152fd5b91805115611ecc5780602080611e25935183010191016119d2565b91611e308382612903565b92611e41845165ffffffffffff1690565b9065ffffffffffff8085169216828114611ec05782119182611e77575b5050611e6e57610f0592506128f8565b50506020015190565b909150611e8483546119ee565b63ffffffff831614918215611e9d575b50505f80611e5e565b611eb8919250611ad5611eb261078192611a09565b85612903565b115f80611e94565b50505050506020015190565b50610f05916128f8565b81601f820112156101b357805190611eed82610442565b92611efb60405194856103e6565b828452602083830101116101b357815f9260208093018386015e8301015290565b906020828203126101b35781516001600160401b03928382116101b35701906040828203126101b35760405192611f52846103b8565b82518181116101b35782611f67918501611ed6565b845260208301519081116101b3576119819201611ed6565b908160209103126101b3575190565b9081526001600160a01b03909116602082015265ffffffffffff9091166040820152608060608201819052610f059291019061180e565b92611fce611905565b908051806121db575b5050611fe242611dd8565b5f54909490611ffb90610741906001600160a01b031681565b93604051956327f843b560e11b875260209687816004818a5afa80156109145761202f92610781925f926121c357506116ad565b65ffffffffffff82169081109081156121ac575b811561217b575b5061216f578560049560405196878092630ce9b79360e41b82525afa9485156109145761209c9587915f91612152575b50845190604051808099819463e02f693760e01b8352878b8a60048601611f8e565b03916001600160a01b03165afa9384156109145761210e955f95612111575b509261210385936121099361210396869a6120fa610253836120e5875f52600260205260405f2090565b9060018060a01b03165f5260205260405f2090565b95015192611832565b906119fc565b611d87565b91565b61210992955061210394919361213f612103928a3d8c1161214b575b61213781836103e6565b810190611f7f565b969350939194506120bb565b503d61212d565b6121699150823d8411611c8b57611c7c81836103e6565b5f61207a565b5050505050505f905f90565b90506121a5610781612199876120e5875f52600160205260405f2090565b5465ffffffffffff1690565b115f61204a565b90506121ba61078142611dd8565b81101590612043565b6109069192508a3d8c1161090d576108fe81836103e6565b6121ee9250602080918301019101611f1c565b5f80611fd7565b919091805f52600160205265ffffffffffff806122258560405f209060018060a01b03165f5260205260405f2090565b54169083161161223457505050565b6104339261225c915f52600160205260405f209060018060a01b03165f5260205260405f2090565b9065ffffffffffff1665ffffffffffff19825416179055565b9190825f5260026020526122cd6102536122a28360405f209060018060a01b03165f5260205260405f2090565b926122ac42611dd8565b955f52600260205260405f209060018060a01b03165f5260205260405f2090565b918201809211611671576001810190815415612371575b6122ed816128a9565b5094908354956122fc8461199e565b508161235c575b501561233b5750505f198301928311611671576104339261232391611989565b90919082549060031b91821b915f19901b1916179055565b61043394612355926001600160d01b039091169190612b09565b5050612992565b65ffffffffffff83811691161490505f612303565b61237a82612965565b6122e4565b60606020610f05938184526001600160401b0381511682850152015191604080820152019061180e565b919360a093610f05969565ffffffffffff938552600180871b031660208501526040840152166060820152816080820152019061180e565b929390600460206123fe6107416107415f5460018060a01b031690565b604051630ce9b79360e41b815292839182905afa90811561091457610e9c9161247c915f916124cb575b506001600160a01b03169361243b610435565b6001600160401b037f00000000000000000000000000000000000000000000000000000000000000001681529060208201526040519283916020830161237f565b823b156101b3575f946124a786926040519889978896879563724ab0f760e11b8752600487016123a9565b03925af18015610914576124b85750565b806124c5610433926103d3565b806101a9565b6124e4915060203d602011611c8b57611c7c81836103e6565b5f612428565b65ffffffffffff9160446020925f60018060a01b038154166040519687958694631c9e38c760e21b865260048601521660248401525af180156109145761252e5750565b6125469060203d60201161214b5761213781836103e6565b50565b8115612553570490565b634e487b7160e01b5f52601260045260245ffd5b92905f549060ff8260a01c1661257f575b5050505050565b6040516313c085b760e11b815291602090839060049082906001600160a01b03165afa918215610914575f9261263c575b5060405163065c1e0360e01b6020820190815260248201969096526001600160a01b039091166044820152606481019390935265ffffffffffff90911660848301526126098260a481015b03601f1981018452836103e6565b6202a15c5a1061262a575f928380935192620249f0f1505f80808080612578565b604051632153f33560e21b8152600490fd5b612609925061265c6125fb9160203d602011611c8b57611c7c81836103e6565b92506125b0565b8054806126705750505f90565b5f19918183810111611671575f5260205f2001015460301c90565b60405190612698826103b8565b5f6020838281520152565b6126c8916126c2916126b361268b565b506126bc61268b565b50611989565b50612885565b65ffffffffffff81511690602060018060d01b0391015116604051916126ed836103b8565b8252602082015290565b6126ff612a94565b612707612a94565b60015f80516020612d6783398151915255565b604051906127278261037d565b5f8252565b80910390606082126101b3576020604051926127478461039d565b126101b357604090815161275a8161037d565b612763826117bf565b81528352602081015161277581610359565b60208401520151604082015290565b9060049061279061271a565b5080516127a760209283808094830101910161272c565b6040516327f843b560e11b815290949093849182906001600160a01b03165afa918215610914575f92612866575b508201906127e9825165ffffffffffff1690565b65ffffffffffff91821691161015612854576040820160038151106128425761283861281e61283e935165ffffffffffff1690565b65ffffffffffff1665ffffffffffff196004541617600455565b51600555565b5190565b6040516354f778f360e01b8152600490fd5b6040516367d5e3df60e11b8152600490fd5b8161287e9293503d841161090d576108fe81836103e6565b905f6127d5565b90604051612892816103b8565b915465ffffffffffff8116835260301c6020830152565b8054806128ba5750505f905f905f90565b5f19908082810111611671576128d7925f5260205f200101612885565b9065ffffffffffff82511691602060018060d01b0391015116906001929190565b906119a790826129b5565b906129266126c26129479261291661268b565b5061291f61268b565b5084611989565b91600165ffffffffffff845116936020828060d01b03910151169101611989565b90549060405192612957846103b8565b835260031b1c602082015290565b8054600160401b8110156103985761298291600182018155611989565b8154905f199060031b1b19169055565b90815491600160401b831015610398578261232391600161043395018155611989565b908154905f918060058111612a4b575b50915b8281106129fe575050806129dc5750505f90565b610f05916129ec6129f7926119ee565b905f5260205f200190565b5460301c90565b90918082169080831860011c820180921161167157845f5265ffffffffffff808360205f20015416908516105f14612a395750915b906129c8565b929150612a45906117f3565b90612a33565b90612a5582612c28565b820391821161167157845f5265ffffffffffff808360205f20015416908416105f14612a8357505b5f6129c5565b9250612a8e906117f3565b91612a7d565b60ff5f80516020612d878339815191525460401c1615612ab057565b604051631afcd79f60e31b8152600490fd5b8054600160401b81101561039857612adf91600182018155611989565b6117ba57815160209092015160301b65ffffffffffff191665ffffffffffff909216919091179055565b805492939291908215612bff57612b35612b30612b25856119ee565b835f5260205f200190565b612885565b90612b46825165ffffffffffff1690565b65ffffffffffff84811691168110612bed57612bb1946020948892612b74610781875165ffffffffffff1690565b03612bb55750612ba3926129ec612b8a926119ee565b9065ffffffffffff82549181199060301b169116179055565b01516001600160d01b031690565b9190565b915050612be891612bd5612bc7610435565b65ffffffffffff9093168352565b6001600160d01b03881682860152612ac2565b612ba3565b604051632520601d60e01b8152600490fd5b612c239250612c0f612bc7610435565b6001600160d01b0385166020830152612ac2565b5f9190565b8015612d615780612cfa612cf3612ce9612cdf612cd5612ccb612cc1612cb76001610f059a5f908b60801c80612d55575b508060401c80612d48575b508060201c80612d3b575b508060101c80612d2e575b508060081c80612d21575b508060041c80612d14575b508060021c80612d07575b50821c612d00575b811c1b612cb0818b612549565b0160011c90565b612cb0818a612549565b612cb08189612549565b612cb08188612549565b612cb08187612549565b612cb08186612549565b612cb08185612549565b8092612549565b90611d87565b8101612ca3565b600291509101905f612c9b565b600491509101905f612c90565b600891509101905f612c85565b601091509101905f612c7a565b602091509101905f612c6f565b604091509101905f612c64565b9150506080905f612c59565b505f9056fe9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a2646970667358221220a1301b9e117701c6e52f7271afc2f2c3e627b96bd0329f3eeaa67543396e82ed64736f6c63430008190033","sourceMap":"707:8662:99:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;;;;;;:::o;:::-;;;;;;;;;;-1:-1:-1;;707:8662:99;;;;;;1435:38:97;-1:-1:-1;;;;;707:8662:99;;;;;;;-1:-1:-1;;;;;707:8662:99;;;;;:::o;:::-;;;;;;-1:-1:-1;;707:8662:99;;;;;2936:47:97;:38;707:8662:99;;;;;:::i;:::-;;;-1:-1:-1;707:8662:99;2936:16:97;707:8662:99;;;-1:-1:-1;707:8662:99;;;;;;;;;;;;;;;;;2936:38:97;:47;:::i;:::-;707:8662:99;;;;;;;;;;;;-1:-1:-1;;707:8662:99;;;;;;1788:109:97;707:8662:99;;;;;:::i;:::-;;;-1:-1:-1;707:8662:99;1788:109:97;707:8662:99;;;-1:-1:-1;707:8662:99;;;;;;;;;;;;;;;;;1788:109:97;707:8662:99;;;;;;;;;;;;;;-1:-1:-1;;707:8662:99;;;;;;;1374:6:97;707:8662:99;;;;;;;;;-1:-1:-1;;707:8662:99;;;;;;1528:51:97;-1:-1:-1;;;;;707:8662:99;;;;;;;;;;;;-1:-1:-1;;707:8662:99;;;;;;322:32:74;-1:-1:-1;;;;;707:8662:99;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;707:8662:99;;;;;;;:::o;:::-;;:::i;:::-;;;;;;;-1:-1:-1;;;;;707:8662:99;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;707:8662:99;;;;;;;:::o;:::-;-1:-1:-1;;;;;707:8662:99;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;707:8662:99;;;;;;;:::o;:::-;;;;;;;;;;-1:-1:-1;;;;;707:8662:99;;;;;;;:::o;:::-;;;;;;;:::i;:::-;:::o;:::-;;;;;;;:::i;:::-;-1:-1:-1;;;;;707:8662:99;;;;;;-1:-1:-1;;707:8662:99;;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;707:8662:99;;;;;;;;;;;;;;:::o;:::-;;;;;;-1:-1:-1;;707:8662:99;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;707:8662:99;;;;2016:56;707:8662;;;;;;;;:::i;:::-;;;-1:-1:-1;707:8662:99;;;2016:9;707:8662;;;;;-1:-1:-1;;;;;707:8662:99;;2016:56;:::i;:::-;707:8662;;;;;;;;;;;;;-1:-1:-1;;707:8662:99;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;707:8662:99;;;;;;;;;;;;;;;:::o;:::-;;;;;;-1:-1:-1;;707:8662:99;;;;-1:-1:-1;;;;;707:8662:99;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;707:8662:99;;;;;;;4301:16:26;707:8662:99;;4726:16:26;;:34;;;;707:8662:99;4805:1:26;4790:16;:50;;;;707:8662:99;4855:13:26;:30;;;;707:8662:99;4851:91:26;;;-1:-1:-1;;;;;;;;;;;707:8662:99;;-1:-1:-1;;707:8662:99;;;;;718:4:74;;4951:18:26;4979:67;;718:4:74;:::i;:::-;5066:101:26;;707:8662:99;5066:101:26;-1:-1:-1;;;;;;;;;;;707:8662:99;;-1:-1:-1;;;;707:8662:99;;;;;-1:-1:-1;707:8662:99;;5142:14:26;;707:8662:99;;5142:14:26;707:8662:99;4979:67:26;-1:-1:-1;;;;;;;;;;;707:8662:99;;-1:-1:-1;;;;707:8662:99;-1:-1:-1;;;707:8662:99;;;718:4:74;:::i;4851:91:26:-;707:8662:99;;-1:-1:-1;;;4908:23:26;;707:8662:99;;4908:23:26;4855:30;4872:13;;;4855:30;;;4790:50;4818:4;4810:25;:30;;-1:-1:-1;4790:50:26;;4726:34;;;-1:-1:-1;4726:34:26;;707:8662:99;;;;;;-1:-1:-1;;707:8662:99;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;707:8662:99;;;;;;;;;;;:::i;:::-;3217:103:29;;;;:::i;:::-;2123:10:97;;;:::i;:::-;707:8662:99;;:::i;:::-;2666:16;;2662:105;;707:8662;837:15:63;;819:34;837:15;819:34;:::i;:::-;2813:31:99;707:8662;;;;;;;;2813:31;;;:::i;:::-;-1:-1:-1;707:8662:99;;;;2847:27;;:13;;-1:-1:-1;;;;;707:8662:99;2847:13;707:8662;;-1:-1:-1;;;;;707:8662:99;;;2847:27;707:8662;;;;;;;;;;;;;;2847:29;;;;;;;;2794:82;2847:29;2813:63;2847:29;-1:-1:-1;2847:29:99;;;707:8662;2813:63;;:::i;:::-;707:8662;;;;2794:82;707:8662;;;2794:82;;;:138;;;;;707:8662;2777:223;;;3248:62:97;3019:133:99;3104:37;;3248:62:97;;;;:::i;:::-;707:8662:99;;;3019:133;:::i;:::-;3166:11;;;3162:68;;707:8662;3671:86;837:15:63;;;;3671:86:99;837:15:63;3262:31:99;837:15:63;819:34;837:15;819:34;:::i;:::-;3262:31:99;:::i;:::-;707:8662;3317:13;707:8662;;;;3347:308;707:8662;;:::i;:::-;;;;-1:-1:-1;;;;;707:8662:99;;;3379:266;;707:8662;3379:266;;;707:8662;;;;;;;3379:266;;707:8662;;;;;3379:266;;707:8662;-1:-1:-1;707:8662:99;3379:266;;707:8662;3347:308;:::i;:::-;707:8662;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;707:8662:99;;;;;;;;;;3671:86;;;;3282:1:29;1805;-1:-1:-1;;;;;;;;;;;707:8662:99;3716:283:29;3282:1;707:8662:99;;;;;;;;;;;;;;;;3162:68;707:8662;;-1:-1:-1;;;3200:19:99;;;2777:223;707:8662;;-1:-1:-1;;;2964:25:99;;707:8662;;2964:25;2794:138;837:15:63;;2896:36:99;819:34:63;837:15;819:34;:::i;2896:36:99:-;-1:-1:-1;2896:36:99;2794:138;;;2847:29;;;;;707:8662;2847:29;707:8662;2847:29;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;;:::i;2662:105::-;2718:38;;;;;;;;:::i;:::-;2662:105;;;;;707:8662;;;;;;-1:-1:-1;;707:8662:99;;;;;1795:13;707:8662;;;;;;;;;;;;;-1:-1:-1;;707:8662:99;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;707:8662:99;;;;;;;;;;;:::i;:::-;3217:103:29;;;:::i;:::-;707:8662:99;;:::i;:::-;;7493:16;7489:103;;707:8662;-1:-1:-1;;707:8662:99;;;-1:-1:-1;;;7607:48:99;;7644:10;7607:48;;;707:8662;;;-1:-1:-1;;;;;707:8662:99;;;;;;;;;;;;;;7607:48;7617:16;;;707:8662;7607:48;;;;;;;-1:-1:-1;7607:48:99;;;707:8662;7606:49;;7602:99;;-1:-1:-1;707:8662:99;7764:35;;-1:-1:-1;;;;;707:8662:99;7644:10;707:8662;;-1:-1:-1;;7644:10:99;297:2:93;707:8662:99;;267:46:93;;152:169;7764:35:99;7850:21;5260:30:91;7850:21:99;;707:8662;;7850:9;707:8662;;;;;;;7850:21;5260:30:91;:::i;:::-;-1:-1:-1;7900:801:99;;;;;7930:34;819::63;837:15;819:34;:::i;7930::99:-;707:8662;;;;7930:34;;;;7984:27;:21;;707:8662;;7850:9;707:8662;;;;;;;7984:21;:27;:::i;:::-;;7926:225;8169:61;8182:48;8190:39;4928:20:91;8198:21:99;;707:8662;;7850:9;707:8662;;;;;;;8198:21;4928:20:91;:::i;8169:61:99:-;707:8662;;;;8169:61;;;8165:336;;7926:225;7900:801;;;;;;8716:34;7900:801;8716:34;7900:801;;707:8662;-1:-1:-1;;;;;707:8662:99;;;;;;;;;;;;;8716:34;;;;3282:1:29;1805;-1:-1:-1;;;;;;;;;;;707:8662:99;3716:283:29;3282:1;707:8662:99;8165:336;8250:21;;;;;;;707:8662;;7850:9;707:8662;;;;;;;8250:21;707:8662;;;;;;;;8299:34;;;;;;;;;;;;;;-1:-1:-1;8299:34:99;;;8165:336;707:8662;;8336:22;707:8662;;;;;;;;;;;8361:30;;;;;;;;;;8336:55;8167:38:61;8361:30:99;8716:34;8361:30;8299:92;8361:30;8716:34;8361:30;8298:130;8361:30;-1:-1:-1;8361:30:99;;;8165:336;707:8662;;;8336:55;;:::i;:::-;707:8662;;8299:92;:::i;:::-;8298:130;:::i;:::-;8167:38:61;;:::i;:::-;8165:336:99;;;;;;8361:30;;;;;;-1:-1:-1;8361:30:99;;;;;;:::i;:::-;;;;;8299:34;;;;;;;;;;;;;;:::i;:::-;;;;7926:225;8036:61;8049:48;8057:39;4928:20:91;8065:21:99;;707:8662;;7850:9;707:8662;;;;;;;8036:61;707:8662;;;8036:61;7926:225;8032:119;707:8662;;-1:-1:-1;;;8124:12:99;;707:8662;;8124:12;7900:801;-1:-1:-1;707:8662:99;;;;;;-1:-1:-1;;8535:23:99;;8531:81;;8626:21;;8716:34;8626:21;8167:38:61;8716:34:99;8626:21;;;707:8662;;7850:9;707:8662;;;;;;;8626:21;819:34:63;837:15;819:34;:::i;8167:38:61:-;7900:801:99;;;;8531:81;707:8662;;-1:-1:-1;;;8585:12:99;;;7602:99;-1:-1:-1;707:8662:99;;-1:-1:-1;;;7678:12:99;;;7607:48;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;7489:103;7544:37;;;;;;:::i;:::-;;7489:103;;;;707:8662;;;;;;;;;;;;;1050:35;707:8662;;;;;;1050:35;-1:-1:-1;707:8662:99;;;;;;-1:-1:-1;707:8662:99;:::o;:::-;;:::i;:::-;;;;;;-1:-1:-1;;707:8662:99;;;;;;1050:35;707:8662;1050:35;;;;;;;;:::i;:::-;-1:-1:-1;707:8662:99;;;1050:35;;707:8662;1050:35;;;707:8662;1050:35;;;;707:8662;;;;;;;-1:-1:-1;;;;;707:8662:99;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;707:8662:99;;;;-1:-1:-1;707:8662:99;;;477:31:80;707:8662:99;;;;;;:::i;:::-;;;;;;;;;;;;;;;416:25:80;;;;707:8662:99;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;-1:-1:-1;707:8662:99;;;;;;;;;;;;;477:31:80;;707:8662:99;;;;;;;;;;:::i;:::-;477:31:80;707:8662:99;;477:31:80;;;;;;:::i;:::-;518:79;;;707:8662:99;518:79:80;;707:8662:99;;;;;;;;-1:-1:-1;;707:8662:99;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;-1:-1:-1;;;;;707:8662:99;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;2692:73:97;:38;707:8662:99;;;:::i;:::-;;;;;-1:-1:-1;707:8662:99;2692:16:97;707:8662:99;;;-1:-1:-1;707:8662:99;;;;;;;;;;;;;;;;;2692:38:97;:73;:::i;707:8662:99:-;;;;;3248:62:97;707:8662:99;;;:::i;:::-;3248:62:97;;;;;:::i;:::-;707:8662:99;;;;;;;;;;-1:-1:-1;;707:8662:99;;;;;;;;;;;-1:-1:-1;;;;;707:8662:99;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;:::i;:::-;3217:103:29;;;;:::i;:::-;707:8662:99;;:::i;:::-;4024:16;;4020:105;;707:8662;;;4153:13;707:8662;4139:34;;;4135:94;;4270:25;;;:::i;:::-;707:8662;;;;4330:18;;;;:::i;:::-;4153:13;4408:24;;707:8662;;;;;;;;;;;;;4377:95;4434:37;;4377:95;;;:::i;:::-;707:8662;4377:125;;:250;;;707:8662;4377:309;;;707:8662;4360:389;;4763:43;837:15:63;819:34;837:15;819:34;:::i;:::-;4763:43:99;:::i;:::-;-1:-1:-1;707:8662:99;4809:27;;:13;;-1:-1:-1;;;;;707:8662:99;4809:13;707:8662;4809:27;707:8662;;4809:29;707:8662;;;;;;;;;;;4809:29;;;;;;;;;;-1:-1:-1;4809:29:99;;;707:8662;;;;;4763:75;4759:131;;4994:16;;;707:8662;;4994:16;;4945:140;;4994:16;;707:8662;;-1:-1:-1;;;;;707:8662:99;5038:37;;;4945:140;;:::i;:::-;5120:14;5111:41;5120:14;;;;707:8662;5111:41;:::i;:::-;5166:18;;;5162:75;;707:8662;;;;5247:78;;5335:24;707:8662;;5335:24;;5725:145;;5335:24;;;;707:8662;5335:24;5725:145;5335:24;;;;6024;5335;;;707:8662;;;;;;;;;;;;;;5335:24;707:8662;;;;5445:24;;707:8662;-1:-1:-1;;;;;707:8662:99;;;;;5445:24;;:::i;:::-;707:8662;;;;5542:13;;707:8662;;-1:-1:-1;;;;;707:8662:99;5542:13;;:::i;:::-;707:8662;;;;;;-1:-1:-1;;;;;707:8662:99;;;;;;;;;;;:::i;:::-;;;;4809:29;5753:103;;707:8662;5753:103;;;707:8662;;5725:145;;;4809:29;5725:145;;707:8662;;;;;;;;;;;;;;;;;;;;;;;;;;;5725:145;;707:8662;;5725:145;;;;;;:::i;:::-;;:::i;:::-;5920:24;707:8662;;;;;;;;5920:24;;:::i;:::-;707:8662;;;-1:-1:-1;;;;;707:8662:99;;;;;;;;;;;6024:24;;:::i;:::-;707:8662;;;;;6065:39;;707:8662;;6065:39;3282:1:29;1805;-1:-1:-1;;;;;;;;;;;707:8662:99;3716:283:29;5247:78:99;707:8662;;-1:-1:-1;;;5291:23:99;;707:8662;;5291:23;5162:75;707:8662;;-1:-1:-1;;;5207:19:99;;707:8662;;5207:19;4759:131;707:8662;;-1:-1:-1;;;4861:18:99;;707:8662;;4861:18;4809:29;;;;;;;;;;;;;;:::i;:::-;;;;4360:389;707:8662;;-1:-1:-1;;;4718:20:99;;707:8662;;4718:20;4377:309;837:15:63;4647:39:99;819:34:63;837:15;819:34;:::i;4647:39:99:-;707:8662;;;;;4647:39;4377:309;;:250;837:15:63;4522:105:99;:91;4553:20;819:34:63;837:15;819:34;:::i;:::-;4553:20:99;:::i;:::-;4575:37;;;;4522:91;;;:::i;:105::-;;;4377:250;;4135:94;707:8662;;-1:-1:-1;;;4196:22:99;;707:8662;;4196:22;4020:105;4076:38;;;;;;;;:::i;:::-;4020:105;;;;;707:8662;;;;;;-1:-1:-1;;707:8662:99;;;;;;;-1:-1:-1;;;;;404:28:74;707:8662:99;;;;;;;;;;-1:-1:-1;;707:8662:99;;;;;1221:37;707:8662;;;;;;;;;;;;;-1:-1:-1;;707:8662:99;;;;;;954:41;-1:-1:-1;;;;;707:8662:99;;;;;;;;;;;;-1:-1:-1;;707:8662:99;;;;;;-1:-1:-1;;;;;707:8662:99;;;;2239:46;707:8662;;;;;;;;:::i;:::-;819:34:63;837:15;819:34;:::i;:::-;707:8662:99;;2239:46;:::i;:::-;707:8662;;-1:-1:-1;;;;;707:8662:99;;;;;;;;;;;;-1:-1:-1;;707:8662:99;;;;;;;1271:7:97;707:8662:99;;;;;;;;;-1:-1:-1;;707:8662:99;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3217:103:29;;;:::i;:::-;707:8662:99;;:::i;:::-;6308:16;;6304:99;;707:8662;;;6431:13;707:8662;6417:34;;;6413:94;;6548:25;;;:::i;:::-;707:8662;6431:13;707:8662;;6653:24;;707:8662;;;;;;;;;;;6622:92;6679:34;;707:8662;;;6622:92;;:::i;:::-;707:8662;6741:29;;;:151;;;;;707:8662;6724:223;;;;6961:10;:29;6957:80;;7051:40;819:34:63;837:15;819:34;:::i;7051:40:99:-;707:8662;;;;;7051:40;;7047:95;;707:8662;;;;7152:78;;707:8662;;-1:-1:-1;;;;707:8662:99;-1:-1:-1;;;707:8662:99;;;6961:10;7280:33;;-1:-1:-1;7280:33:99;;3282:1:29;1805;-1:-1:-1;;;;;;;;;;;707:8662:99;3716:283:29;7152:78:99;707:8662;;-1:-1:-1;;;7196:23:99;;707:8662;;7196:23;7047:95;707:8662;;-1:-1:-1;;;7114:17:99;;707:8662;;7114:17;6957:80;707:8662;;-1:-1:-1;;;7013:13:99;;707:8662;;7013:13;6724:223;707:8662;;-1:-1:-1;;;6924:12:99;;707:8662;;6924:12;6741:151;6790:102;837:15:63;;;6790:88:99;837:15:63;6843:34:99;6821:20;819:34:63;837:15;819:34;:::i;6821:20:99:-;6843:34;;;6790:88;;:::i;:102::-;;6741:151;;;;6304:99;6357:35;;;;;;;:::i;:::-;6304:99;;;;707:8662;;;;;;-1:-1:-1;;707:8662:99;;;;;;;;-1:-1:-1;;;;;707:8662:99;;;;;;;;1876:205;-1:-1:-1;707:8662:99;;;2016:9;707:8662;;;;;-1:-1:-1;;;;;707:8662:99;2016:56;;1876:205;;2016:56;:::i;:::-;707:8662;1876:205;:::o;707:8662::-;;;;;;;:::i;:::-;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;;;;707:8662:99;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;-1:-1:-1;;707:8662:99;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;3317:13;707:8662;-1:-1:-1;;;707:8662:99;;;;;;;;;;3317:13;707:8662;;:::i;:::-;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;707:8662:99;-1:-1:-1;;;;;707:8662:99;;;;;;;;;;;;;;;;3317:13;;707:8662;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;707:8662:99;;;;;;-1:-1:-1;;;707:8662:99;;;;;;;:::i;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::o;:::-;;9856:1:61;707:8662:99;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;707:8662:99;;;;;;;;-1:-1:-1;;707:8662:99;;;;:::o;2505:267:97:-;-1:-1:-1;707:8662:99;;;2692:16:97;707:8662:99;;;;;;;;-1:-1:-1;;;;;707:8662:99;;;;;;;;;2692:73:97;;2505:267;;2692:73;:::i;707:8662:99:-;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;;;;707:8662:99;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;;;;707:8662:99;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::o;:::-;;;;;;;;-1:-1:-1;707:8662:99;;-1:-1:-1;707:8662:99;;;-1:-1:-1;707:8662:99;:::o;10580:184:91:-;10689:20;;;:::i;:::-;-1:-1:-1;;;;;707:8662:99;;10726:7:91;707:8662:99;;10736:12:91;:17;:12;;:17;:::i;:::-;707:8662:99;;;;;;10580:184:91;:::o;10726:31::-;;;10689:11;10580:184;:::o;707:8662:99:-;;;;;;;;;;;;;;;;;;:::o;:::-;-1:-1:-1;;707:8662:99;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;:::o;1818:604:91:-;;707:8662:99;;1946:17:91;1942:83;;707:8662:99;2049:27:91;707:8662:99;2049:27:91;707:8662:99;;2049:27:91;;;;;;:::i;:::-;2120:14;;;;;:::i;:::-;707:8662:99;;;;;;;;;;;;;;;;2148:22:91;;;2144:77;;2235:21;-1:-1:-1;2235:84:91;;;;1818:604;2231:139;;;;1425:34;;;;:::i;2231:139::-;-1:-1:-1;;2049:27:91;2342:17;707:8662:99;-1:-1:-1;;;;;707:8662:99;;:::o;2235:84:91:-;707:8662:99;;;2269:16:91;707:8662:99;;2269:16:91;:::i;:::-;707:8662:99;;;2261:24:91;:57;;;;;2235:84;;;;;;;2261:57;2289:29;2298:8;;;2289:18;2298:8;2289:23;2298:8;;:::i;:::-;2289:18;;:::i;:::-;707:8662:99;;;;;2289:29:91;;2261:57;;;;2144:77;-1:-1:-1;;;;2049:27:91;2193:17;;;;707:8662:99;-1:-1:-1;;;;;707:8662:99;;-1:-1:-1;707:8662:99;:::o;1942:83:91:-;1425:34;;;;:::i;707:8662:99:-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;707:8662:99;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;6491:564:97:-;6614:34;6491:564;6614:34;;;;:::i;:::-;707:8662:99;;-1:-1:-1;;;6664:41:97;;-1:-1:-1;;;;;707:8662:99;;;6664:41:97;;;707:8662:99;;;;;6664:41:97;;;707:8662:99;;;6674:13:97;707:8662:99;;6664:41:97;;;;;;;-1:-1:-1;6664:41:97;;;6491:564;6663:42;;6659:90;;2540:111:29;6850:27:97;6664:41;2540:111:29;;;:::i;:::-;-1:-1:-1;707:8662:99;;-1:-1:-1;;;;;;707:8662:99;-1:-1:-1;;;;;707:8662:99;;;;;6850:27:97;;:::i;:::-;707:8662:99;;;;;;;;;;6892:23:97;;;;;;;;;-1:-1:-1;6892:23:97;;;6491:564;707:8662:99;;;6892:37:97;:64;;;6491:564;6888:112;;707:8662:99;7010:38:97;;707:8662:99;;-1:-1:-1;707:8662:99;;-1:-1:-1;;;;707:8662:99;;;;;;-1:-1:-1;;;707:8662:99;;;;;;;;6888:112:97;707:8662:99;;-1:-1:-1;;;6979:10:97;;6664:41;;6979:10;6892:64;-1:-1:-1;707:8662:99;;;;6892:64:97;;:23;;;;;;-1:-1:-1;6892:23:97;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;6659:90;707:8662:99;;-1:-1:-1;;;6728:10:97;;6664:41;;6728:10;6664:41;;;;;;;;;;;;;;:::i;:::-;;;;3326:384:29;-1:-1:-1;;;;;;;;;;;1847:1:29;707:8662:99;;3526:20:29;3522:88;;1847:1;707:8662:99;;3326:384:29:o;3522:88::-;707:8662:99;;-1:-1:-1;;;3569:30:29;;;;;4451:257:97;707:8662:99;;-1:-1:-1;;;4546:86:97;;467:2:93;707:8662:99;;;;4546:86:97;;;707:8662:99;-1:-1:-1;;;;;4546:86:97;707:8662:99;;;4572:26:97;707:8662:99;;4546:86:97;;;;;;;-1:-1:-1;4546:86:97;;;4451:257;4636:10;;707:8662:99;;4546:100:97;4542:160;;4451:257::o;4542:160::-;707:8662:99;;-1:-1:-1;;;4669:22:97;;4546:86;;4669:22;4546:86;;;;;;;;;;;;;;;:::i;:::-;;;;;2557:104:58;;2641:5;;;;;;:13;2557:104;:::o;2641:13::-;;;2557:104;:::o;5905:168:91:-;;6006:20;;;:::i;:::-;707:8662:99;;;;;;;-1:-1:-1;;707:8662:99;;;;;;:::i;:::-;;;;;;;5905:168:91:o;707:8662:99:-;;;;;;;;;;;;14291:213:59;707:8662:99;14369:24:59;;;;14365:103;;707:8662:99;14291:213:59;:::o;14365:103::-;707:8662:99;;;;14416:41:59;;;;;;14447:2;14416:41;;;707:8662:99;;;;;14416:41:59;7558:604:91;;707:8662:99;;7686:17:91;7682:83;;707:8662:99;7789:27:91;707:8662:99;7789:27:91;707:8662:99;;7789:27:91;;;;;;:::i;:::-;7860:14;;;;;:::i;:::-;707:8662:99;;;;;;;;;;;;;;;;7888:22:91;;;7884:77;;7975:21;-1:-1:-1;7975:84:91;;;;7558:604;7971:139;;;;8127:28;;;;:::i;7971:139::-;8082:17;;7789:27;8082:17;707:8662:99;8075:24:91;:::o;7975:84::-;707:8662:99;;;8009:16:91;707:8662:99;;8009:16:91;:::i;:::-;707:8662:99;;;8001:24:91;:57;;;;;7975:84;;;;;;;8001:57;8029:29;8038:8;;;8029:18;8038:8;8029:23;8038:8;;:::i;:::-;8029:18;;:::i;:29::-;;8001:57;;;;7884:77;7933:17;;;;;7789:27;7933:17;707:8662:99;7926:24:91;:::o;7682:83::-;7726:28;;;;:::i;707:8662:99:-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;707:8662:99;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;;;;707:8662:99;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;707:8662:99;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;3323:1122:97:-;;707:8662:99;;:::i;:::-;;;;3608:16:97;3604:109;;3323:1122;837:15:63;;819:34;837:15;819:34;:::i;:::-;-1:-1:-1;707:8662:99;;;;3778:27:97;;:13;;-1:-1:-1;;;;;707:8662:99;3778:13:97;707:8662:99;3778:27:97;707:8662:99;;;;;;;3778:29:97;;;;;;;;;;;;;;;3740:67;3778:29;3759:48;3778:29;-1:-1:-1;3778:29:97;;;3759:48;;:::i;3740:67::-;707:8662:99;;;3740:67:97;;;:107;;;;;3323:1122;3740:197;;;;3323:1122;3723:263;;;707:8662:99;3778:29:97;707:8662:99;;;;;;;;;;4025:25:97;;;;;;;;;4010:143;4025:25;;;-1:-1:-1;4025:25:97;;;3323:1122;4113:30;;;707:8662:99;;;;;;;;;;;4010:143:97;;;;;3778:29;4010:143;;;:::i;:::-;;;-1:-1:-1;;;;;707:8662:99;4010:143:97;;;;;;;4181:257;4010:143;-1:-1:-1;4010:143:97;;;3323:1122;3996:157;;4293:102;3996:157;;4233:162;3996:157;4207:231;3996:157;;2936:28;:47;:38;:28;;;707:8662:99;;2936:16:97;707:8662:99;;;;;;;2936:28:97;707:8662:99;;;;;;;;;;;;;;;;2936:47:97;4351:43;;;4293:102;;:::i;:::-;4233:162;;:::i;:::-;4207:231;:::i;4181:257::-;3323:1122;:::o;4010:143::-;4233:162;4010:143;;;4207:231;4010:143;;;;4293:102;4010:143;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;;;;;4025:25;;;;;;;;;;;;;;:::i;:::-;;;;3723:263;3962:13;;;;;;-1:-1:-1;3962:13:97;-1:-1:-1;3962:13:97;:::o;3740:197::-;3886:41;;3867:70;3886:51;;:41;;;707:8662:99;;3886:29:97;707:8662:99;;;;;;;3886:51:97;707:8662:99;;;;;3867:70:97;-1:-1:-1;3740:197:97;;;:107;837:15:63;;3811:36:97;819:34:63;837:15;819:34;:::i;3811:36:97:-;;;;3740:107;;;3778:29;;;;;;;;;;;;;;;:::i;3604:109::-;3662:40;;;;;;;;;;;;:::i;:::-;3604:109;;;;4714:335;;;;707:8662:99;-1:-1:-1;707:8662:99;4876:29:97;707:8662:99;;;;4876:51:97;707:8662:99;;-1:-1:-1;707:8662:99;;;;;;;;;;;;;;;;;4876:51:97;707:8662:99;;;;;-1:-1:-1;4872:171:97;;4714:335;;;:::o;4872:171::-;4962:70;707:8662:99;4962:51:97;707:8662:99;-1:-1:-1;707:8662:99;4876:29:97;707:8662:99;;;-1:-1:-1;707:8662:99;;;;;;;;;;;;;;;;;4962:51:97;707:8662:99;;;;;;;;;;;;5055:221:97;;;707:8662:99;-1:-1:-1;707:8662:99;5160:16:97;707:8662:99;;2936:47:97;:38;5160;707:8662:99;;-1:-1:-1;707:8662:99;;;;;;;;;;;;;;;;;5160:38:97;837:15:63;819:34;837:15;819:34;:::i;:::-;707:8662:99;-1:-1:-1;707:8662:99;5160:16:97;707:8662:99;;;-1:-1:-1;707:8662:99;;;;;;;;;;;;;;;;;2936:47:97;707:8662:99;;;;;;;;6360:12:91;;;707:8662:99;;;6360:24:91;6356:75;;5055:221:97;6474:30:91;;;:::i;:::-;707:8662:99;;;;;6578:12:91;;;;:::i;:::-;;6604:24;;;5055:221:97;-1:-1:-1;6600:188:91;;;-1:-1:-1;;;;707:8662:99;;;;;;;6644:29:91;:21;;;;:::i;:::-;:29;707:8662:99;;;;;;;;;;;;;;;;;;;;;6600:188:91;6753:24;;8167:38:61;;-1:-1:-1;;;;;707:8662:99;;;;;8167:38:61;:::i;:::-;6753:24:91;;;:::i;6604:::-;707:8662:99;;;;;;6614:14:91;;-1:-1:-1;6604:24:91;;;6356:75;6400:20;;;:::i;:::-;6356:75;;707:8662:99;;;;;;;;-1:-1:-1;;;;;707:8662:99;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;5282:431:97:-;;;;5487:25;;:23;:13;707:8662:99;5494:5:97;707:8662:99;;;;;;;;;5487:23:97;707:8662:99;;-1:-1:-1;;;5487:25:97;;707:8662:99;;;;;5487:25:97;;;;;;;5631:65;5487:25;5631:65;5487:25;5494:5;5487:25;;;5282:431;-1:-1:-1;;;;;;707:8662:99;;;;:::i;:::-;-1:-1:-1;;;;;5677:4:97;707:8662:99;;;5677:4:97;5487:25;5642:53;;707:8662:99;;;5631:65:97;;;5487:25;5631:65;;;:::i;:::-;5472:234;;;;;5494:5;707:8662:99;5472:234:97;707:8662:99;;;;;;;;;;;;;;5472:234:97;;5487:25;5472:234;;;:::i;:::-;;;;;;;;;;;5282:431;:::o;5472:234::-;;;;;;:::i;:::-;;;:::i;5487:25::-;;;;;;;;;;;;;;:::i;:::-;;;;5719:137;707:8662:99;5719:137:97;707:8662:99;5802:47:97;5719:137;5809:5;707:8662:99;;;;;;;;;;;;;;;;;;5802:47:97;;;;;707:8662:99;;;;;;5802:47:97;;;;;;;;5719:137;:::o;5802:47::-;;;;;;;;;;;;;:::i;:::-;;5719:137::o;707:8662:99:-;;;;;;;:::o;:::-;;;;;;;;;;;;5862:623:97;;;5988:12;707:8662:99;;;;;;;5984:495:97;;5862:623;;;;;;:::o;5984:495::-;707:8662:99;;-1:-1:-1;;;6033:22:97;;707:8662:99;6033:22:97;;707:8662:99;;6033:22:97;;707:8662:99;;-1:-1:-1;;;;;707:8662:99;6033:22:97;;;;;;;5988:12;6033:22;;;5984:495;-1:-1:-1;707:8662:99;;-1:-1:-1;;;6033:22:97;6094:81;;;;;;;;707:8662:99;;;;-1:-1:-1;;;;;707:8662:99;;;;;;;;;;;;;;;;;;;;;;6094:81:97;707:8662:99;;;;6094:81:97;;707:8662:99;;6094:81:97;;;;;;:::i;:::-;707:8662:99;6194:9:97;:55;6190:124;;5988:12;6328:141;;;;;;1271:7;6328:141;;5984:495;;;;;;;6190:124;707:8662:99;;-1:-1:-1;;;6276:23:97;;6033:22;;6276:23;6033:22;6094:81;6033:22;;;6094:81;6033:22;;;;;;;;;;;:::i;:::-;;;;;10167:206:61;707:8662:99;;10303:8:61;;;:63;;10262:17;10167:206;:::o;10303:63::-;707:8662:99;;;;;;;;;;10262:17:61;14249:109;;10262:17;14249:109;;;707:8662:99;;;10167:206:61;:::o;707:8662:99:-;;;;;;;:::i;:::-;-1:-1:-1;707:8662:99;;;;;;;:::o;5573:258:91:-;707:8662:99;5573:258:91;11308:22:61;5573:258:91;707:8662:99;;:::i;:::-;;;;:::i;:::-;;11308:22:61;:::i;:::-;707:8662:99;;:::i;:::-;;;;;;5805:17:91;707:8662:99;;;;;5805:17:91;;707:8662:99;;;;;;;;:::i;:::-;;;5805:17:91;5759:65;;707:8662:99;5573:258:91;:::o;6893:76:26:-;;;:::i;:::-;;;:::i;:::-;1805:1:29;-1:-1:-1;;;;;;;;;;;707:8662:99;6893:76:26:o;707:8662:99:-;;;;;;;:::i;:::-;-1:-1:-1;707:8662:99;;:::o;:::-;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;:::o;8763:604::-;;8969:30;8763:604;707:8662;;:::i;:::-;;;;8905:30;;;;;;;;;;;;;:::i;:::-;707:8662;;-1:-1:-1;;;8969:30:99;;707:8662;;;;;;;;-1:-1:-1;;;;;707:8662:99;8969:30;;;;;;;;;;;8763:604;9013:19;;;707:8662;;;;;;;;;;;;;;;9013:36;;9009:95;;707:8662;9118:29;;9150:1;707:8662;;9118:33;9114:102;;9226:34;707:8662;9271:54;707:8662;;;;;;;;;;;8969:30;707:8662;;;8969:30;707:8662;;9226:34;707:8662;9271:54;707:8662;;9271:54;9343:17;8763:604;:::o;9114:102::-;707:8662;;-1:-1:-1;;;9174:31:99;;8969:30;;9174:31;9009:95;707:8662;;-1:-1:-1;;;9072:21:99;;8969:30;;9072:21;8969:30;;;;;;;;;;;;;;;:::i;:::-;;;;;707:8662;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::o;10552:388:61:-;707:8662:99;;10728:8:61;;;10752:20;;10690:17;10752:20;10690:17;10752:20;10690:17;10752:20;:::o;10724:210::-;707:8662:99;;;;;;;;;;;14249:109:61;10690:17;14249:109;;10690:17;14249:109;;;707:8662:99;:::i;:::-;;;;;;;14249:109:61;707:8662:99;;;;;10911:11:61;;707:8662:99;;10886:37:61;10870:1;10886:37;;;:::o;6999:207:91:-;;7117:34;6999:207;7117:34;;:::i;11486:272::-;;707:8662:99;11308:22:61;11718:31:91;11486:272;707:8662:99;;:::i;:::-;;;;:::i;:::-;;11308:22:61;;:::i;707:8662:99:-;;11718:12:91;707:8662:99;;;;;11731:17:91;707:8662:99;;;;;11731:17:91;;707:8662:99;;11718:12:91;;:31;:::i;:::-;707:8662:99;;;;;;;;;:::i;:::-;;;;;;11731:17:91;11672:79;;707:8662:99;11486:272:91;:::o;707:8662:99:-;;;-1:-1:-1;;;707:8662:99;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::o;:::-;;;;;-1:-1:-1;;;707:8662:99;;;;;;;;;;;;;;;:::i;9441:606:61:-;;707:8662:99;;9594:15:61;9559:17;9619:18;;9658:1;9652:7;;9648:234;;9441:606;9906:53;;12919:10;;;;;;-1:-1:-1;;9977:8:61;;;:63;;9559:17;9441:606;:::o;9977:63::-;9992:48;10025:7;;9992:41;10025:7;;:::i;:::-;9992:41;14249:109;;;;;;14099:265;;9992:41;707:8662:99;;;;;12912:230:61;2900:5:58;;;;;2910;;;;707:8662:99;;;;;;;;;14249:109:61;9559:17;14249:109;707:8662:99;14249:109:61;;;9559:17;14249:109;;707:8662:99;;;;;-1:-1:-1;12996:136:61;707:8662:99;;;13055:10:61;12996:136;;12912:230;;;12996:136;13110:7;;;;;;:::i;:::-;12996:136;;;9648:234;9695:14;;;;:::i;:::-;707:8662:99;;;;;;;14249:109:61;9559:17;14249:109;707:8662:99;14249:109:61;;;9559:17;14249:109;;707:8662:99;;;;;9727:48:61;9723:149;707:8662:99;;;9795:10:61;9723:149;9648:234;;;9723:149;9850:7;;;;;:::i;:::-;9723:149;;;7084:141:26;707:8662:99;-1:-1:-1;;;;;;;;;;;707:8662:99;;;;7150:18:26;7146:73;;7084:141::o;7146:73::-;707:8662:99;;-1:-1:-1;;;7191:17:26;;;;;707:8662:99;;;-1:-1:-1;;;707:8662:99;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;707:8662:99;;;;;;;;;;;:::o;11513:870:61:-;707:8662:99;;11513:870:61;;;707:8662:99;11513:870:61;11672:7;;;;707:8662:99;11775:28:61;11795:7;;;:::i;:::-;11775:28;14249:109;;;;;;14099:265;;11775:28;707:8662:99;:::i;:::-;;;;;;;;;;;;;;;;11877:15:61;-1:-1:-1;11873:91:61;;707:8662:99;;12233:11:61;707:8662:99;;;12027:16:61;707:8662:99;;;;;;;12027:16:61;;;;12083:7;12063:43;12083:7;;12063:28;12083:7;;:::i;12063:28::-;707:8662:99;;;;;;;;;;;;;;;;;12063:43:61;12233:11;707:8662:99;-1:-1:-1;;;;;707:8662:99;;;;12225:27:61;;:::o;12023:189::-;707:8662:99;;;12145:52:61;707:8662:99;12155:41:61;707:8662:99;;:::i;:::-;;;;;;;;12155:41:61;-1:-1:-1;;;;;707:8662:99;;12155:41:61;;;707:8662:99;12145:52:61;:::i;:::-;12023:189;;11873:91;707:8662:99;;-1:-1:-1;;;11919:30:61;;;;;11668:709;12283:52;707:8662:99;;12293:41:61;707:8662:99;;:::i;12293:41:61:-;-1:-1:-1;;;;;707:8662:99;;12293:41:61;;;707:8662:99;12145:52:61;:::i;12283:::-;11678:1;12349:17;;:::o;8587:1642:58:-;8658:6;;8654:45;;9401:7;10201:10;10142:26;10093;10044;9995;9946;9897;9848;707:8662:99;10189:23:58;9401:7;8663:1;707:8662:99;;;;10826:16:58;10822:99;;8587:1642;707:8662:99;;;;10938:15:58;10934:96;;8587:1642;707:8662:99;;;;11047:15:58;11043:96;;8587:1642;707:8662:99;;;;11156:15:58;11152:96;;8587:1642;707:8662:99;;;;11265:14:58;11261:93;;8587:1642;707:8662:99;;;;11371:14:58;11367:93;;8587:1642;707:8662:99;;;;11477:14:58;11473:93;;8587:1642;707:8662:99;;;11579:64:58;;8587:1642;707:8662:99;;;9858:10:58;;;;:::i;:::-;707:8662:99;;;;;9848:26:58;9907:10;;;;:::i;9897:26::-;9956:10;;;;:::i;9946:26::-;10005:10;;;;:::i;9995:26::-;10054:10;;;;:::i;10044:26::-;10103:10;;;;:::i;10093:26::-;10152:10;;;;:::i;10142:26::-;10201:10;;;:::i;:::-;10189:23;;:::i;11579:64::-;707:8662:99;;11579:64:58;;11473:93;707:8662:99;11511:11:58;;707:8662:99;;11473:93:58;;;;11367;707:8662:99;11405:11:58;;707:8662:99;;11367:93:58;;;;11261;707:8662:99;11299:11:58;;707:8662:99;;11261:93:58;;;;11152:96;707:8662:99;11191:12:58;;707:8662:99;;11152:96:58;;;;11043;707:8662:99;11082:12:58;;707:8662:99;;11043:96:58;;;;10934;707:8662:99;10973:12:58;;707:8662:99;;10934:96:58;;;;10822:99;10862:13;;;707:8662:99;10822:99:58;;;;8654:45;8680:8;8663:1;8680:8;:::o","linkReferences":{},"immutableReferences":{"64520":[{"start":810,"length":32}],"64523":[{"start":4873,"length":32},{"start":9285,"length":32}],"72304":[{"start":460,"length":32},{"start":7054,"length":32}],"72307":[{"start":742,"length":32},{"start":7448,"length":32}],"73037":[{"start":2540,"length":32},{"start":4959,"length":32}]}},"methodIdentifiers":{"BURNER_GAS_LIMIT()":"d5c24e1a","BURNER_RESERVE()":"2964f8dc","FACTORY()":"2dd31000","NETWORK_MIDDLEWARE_SERVICE()":"2c9d45b3","NETWORK_REGISTRY()":"c0cd7c3e","TYPE()":"bb24fe8a","VAULT_FACTORY()":"103f2907","cumulativeSlash(bytes32,address)":"1a2be2c4","cumulativeSlashAt(bytes32,address,uint48,bytes)":"aa8e6489","executeSlash(uint256,bytes)":"b94c386e","initialize(bytes)":"439fab91","isBurnerHook()":"34d098ea","latestSlashedCaptureTimestamp(bytes32,address)":"267de1f3","requestSlash(bytes32,address,uint256,uint48,bytes)":"545ce389","resolver(bytes32,bytes)":"cd05b8a1","resolverAt(bytes32,uint48,bytes)":"31ce4dfe","resolverSetEpochsDelay()":"bc6eac5b","setResolver(uint96,address,bytes)":"9168f9d2","slashRequests(uint256)":"9a896551","slashRequestsLength()":"8f42f9ab","slashableStake(bytes32,address,uint48,bytes)":"aab3595f","staticDelegateCall(address,bytes)":"9f86fd85","vault()":"fbfa77cf","vetoDuration()":"e054e08b","vetoSlash(uint256,bytes)":"f9268d18"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"vaultFactory\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"networkMiddlewareService\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"networkRegistry\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"slasherFactory\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"entityType\",\"type\":\"uint64\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"AlreadySet\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CheckpointUnorderedInsertion\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientBurnerGas\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientSlash\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidCaptureTimestamp\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidResolverSetEpochsDelay\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidVetoDuration\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NoBurner\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NoResolver\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotNetwork\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotNetworkMiddleware\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotResolver\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotVault\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ReentrancyGuardReentrantCall\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"bits\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"SafeCastOverflowedUintDowncast\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SlashPeriodEnded\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SlashRequestCompleted\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SlashRequestNotExist\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"VetoPeriodEnded\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"VetoPeriodNotEnded\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"slashIndex\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"slashedAmount\",\"type\":\"uint256\"}],\"name\":\"ExecuteSlash\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"slashIndex\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"slashAmount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint48\",\"name\":\"captureTimestamp\",\"type\":\"uint48\"},{\"indexed\":false,\"internalType\":\"uint48\",\"name\":\"vetoDeadline\",\"type\":\"uint48\"}],\"name\":\"RequestSlash\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"resolver\",\"type\":\"address\"}],\"name\":\"SetResolver\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"slashIndex\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"resolver\",\"type\":\"address\"}],\"name\":\"VetoSlash\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"BURNER_GAS_LIMIT\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"BURNER_RESERVE\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"FACTORY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"NETWORK_MIDDLEWARE_SERVICE\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"NETWORK_REGISTRY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"TYPE\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"VAULT_FACTORY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"cumulativeSlash\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hint\",\"type\":\"bytes\"}],\"name\":\"cumulativeSlashAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"slashIndex\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"hints\",\"type\":\"bytes\"}],\"name\":\"executeSlash\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"slashedAmount\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isBurnerHook\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"latestSlashedCaptureTimestamp\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"value\",\"type\":\"uint48\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint48\",\"name\":\"captureTimestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hints\",\"type\":\"bytes\"}],\"name\":\"requestSlash\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"slashIndex\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"hint\",\"type\":\"bytes\"}],\"name\":\"resolver\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hint\",\"type\":\"bytes\"}],\"name\":\"resolverAt\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"resolverSetEpochsDelay\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint96\",\"name\":\"identifier\",\"type\":\"uint96\"},{\"internalType\":\"address\",\"name\":\"resolver_\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"hints\",\"type\":\"bytes\"}],\"name\":\"setResolver\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"slashRequests\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint48\",\"name\":\"captureTimestamp\",\"type\":\"uint48\"},{\"internalType\":\"uint48\",\"name\":\"vetoDeadline\",\"type\":\"uint48\"},{\"internalType\":\"bool\",\"name\":\"completed\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"slashRequestsLength\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"captureTimestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hints\",\"type\":\"bytes\"}],\"name\":\"slashableStake\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"staticDelegateCall\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"vault\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"vetoDuration\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"slashIndex\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"hints\",\"type\":\"bytes\"}],\"name\":\"vetoSlash\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"CheckpointUnorderedInsertion()\":[{\"details\":\"A value was attempted to be inserted on a past checkpoint.\"}],\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"ReentrancyGuardReentrantCall()\":[{\"details\":\"Unauthorized reentrant call.\"}],\"SafeCastOverflowedUintDowncast(uint8,uint256)\":[{\"details\":\"Value doesn't fit in an uint of `bits` size.\"}]},\"events\":{\"ExecuteSlash(uint256,uint256)\":{\"params\":{\"slashIndex\":\"index of the slash request\",\"slashedAmount\":\"virtual amount of the collateral slashed\"}},\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"RequestSlash(uint256,bytes32,address,uint256,uint48,uint48)\":{\"params\":{\"captureTimestamp\":\"time point when the stake was captured\",\"operator\":\"operator that could be slashed (if the request is not vetoed)\",\"slashAmount\":\"maximum amount of the collateral to be slashed\",\"slashIndex\":\"index of the slash request\",\"subnetwork\":\"subnetwork that requested the slash\",\"vetoDeadline\":\"deadline for the resolver to veto the slash (exclusively)\"}},\"SetResolver(bytes32,address)\":{\"params\":{\"resolver\":\"address of the resolver\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"}},\"VetoSlash(uint256,address)\":{\"params\":{\"resolver\":\"address of the resolver that vetoed the slash\",\"slashIndex\":\"index of the slash request\"}}},\"kind\":\"dev\",\"methods\":{\"cumulativeSlash(bytes32,address)\":{\"params\":{\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"},\"returns\":{\"_0\":\"cumulative slash amount\"}},\"cumulativeSlashAt(bytes32,address,uint48,bytes)\":{\"params\":{\"hint\":\"hint for the checkpoint index\",\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\",\"timestamp\":\"time point to get the cumulative slash amount until (inclusively)\"},\"returns\":{\"_0\":\"cumulative slash amount until the given timestamp (inclusively)\"}},\"executeSlash(uint256,bytes)\":{\"details\":\"Only a network middleware can call this function.\",\"params\":{\"hints\":\"hints for checkpoints' indexes\",\"slashIndex\":\"index of the slash request\"},\"returns\":{\"slashedAmount\":\"virtual amount of the collateral slashed\"}},\"initialize(bytes)\":{\"params\":{\"data\":\"some data to use\"}},\"requestSlash(bytes32,address,uint256,uint48,bytes)\":{\"details\":\"Only a network middleware can call this function.\",\"params\":{\"amount\":\"maximum amount of the collateral to be slashed\",\"captureTimestamp\":\"time point when the stake was captured\",\"hints\":\"hints for checkpoints' indexes\",\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"},\"returns\":{\"slashIndex\":\"index of the slash request\"}},\"resolver(bytes32,bytes)\":{\"params\":{\"hint\":\"hint for the checkpoint index\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"},\"returns\":{\"_0\":\"address of the resolver\"}},\"resolverAt(bytes32,uint48,bytes)\":{\"params\":{\"hint\":\"hint for the checkpoint index\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\",\"timestamp\":\"timestamp to get the resolver at\"},\"returns\":{\"_0\":\"address of the resolver\"}},\"slashRequestsLength()\":{\"returns\":{\"_0\":\"total number of slash requests\"}},\"slashableStake(bytes32,address,uint48,bytes)\":{\"params\":{\"captureTimestamp\":\"time point to get the stake amount at\",\"hints\":\"hints for the checkpoints' indexes\",\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"},\"returns\":{\"amount\":\"slashable amount of the stake\"}},\"staticDelegateCall(address,bytes)\":{\"details\":\"It allows to use this contract's storage on-chain.\",\"params\":{\"data\":\"data to make a delegatecall with\",\"target\":\"address of the contract to make a delegatecall to\"}},\"vetoSlash(uint256,bytes)\":{\"details\":\"Only a resolver can call this function.\",\"params\":{\"hints\":\"hints for checkpoints' indexes\",\"slashIndex\":\"index of the slash request\"}}},\"stateVariables\":{\"NETWORK_REGISTRY\":{\"return\":\"address of the network registry\",\"returns\":{\"_0\":\"address of the network registry\"}},\"resolverSetEpochsDelay\":{\"return\":\"updating resolver delay in epochs\",\"returns\":{\"_0\":\"updating resolver delay in epochs\"}},\"slashRequests\":{\"params\":{\"slashIndex\":\"index of the slash request\"},\"returns\":{\"amount\":\"maximum amount of the collateral to be slashed\",\"captureTimestamp\":\"time point when the stake was captured\",\"completed\":\"if the slash was vetoed/executed\",\"operator\":\"operator that could be slashed (if the request is not vetoed)\",\"subnetwork\":\"subnetwork that requested the slash\",\"vetoDeadline\":\"deadline for the resolver to veto the slash (exclusively)\"}},\"vetoDuration\":{\"return\":\"duration of the veto period\",\"returns\":{\"_0\":\"duration of the veto period\"}}},\"version\":1},\"userdoc\":{\"events\":{\"ExecuteSlash(uint256,uint256)\":{\"notice\":\"Emitted when a slash request is executed.\"},\"RequestSlash(uint256,bytes32,address,uint256,uint48,uint48)\":{\"notice\":\"Emitted when a slash request is created.\"},\"SetResolver(bytes32,address)\":{\"notice\":\"Emitted when a resolver is set.\"},\"VetoSlash(uint256,address)\":{\"notice\":\"Emitted when a slash request is vetoed.\"}},\"kind\":\"user\",\"methods\":{\"BURNER_GAS_LIMIT()\":{\"notice\":\"Get a gas limit for the burner.\"},\"BURNER_RESERVE()\":{\"notice\":\"Get a reserve gas between the gas limit check and the burner's execution.\"},\"FACTORY()\":{\"notice\":\"Get the factory's address.\"},\"NETWORK_MIDDLEWARE_SERVICE()\":{\"notice\":\"Get the network middleware service's address.\"},\"NETWORK_REGISTRY()\":{\"notice\":\"Get the network registry's address.\"},\"TYPE()\":{\"notice\":\"Get the entity's type.\"},\"VAULT_FACTORY()\":{\"notice\":\"Get the vault factory's address.\"},\"cumulativeSlash(bytes32,address)\":{\"notice\":\"Get a cumulative slash amount for an operator on a subnetwork.\"},\"cumulativeSlashAt(bytes32,address,uint48,bytes)\":{\"notice\":\"Get a cumulative slash amount for an operator on a subnetwork until a given timestamp (inclusively) using a hint.\"},\"executeSlash(uint256,bytes)\":{\"notice\":\"Execute a slash with a given slash index using hints.\"},\"initialize(bytes)\":{\"notice\":\"Initialize this entity contract by using a given data.\"},\"isBurnerHook()\":{\"notice\":\"Get if the burner is needed to be called on a slashing.\"},\"latestSlashedCaptureTimestamp(bytes32,address)\":{\"notice\":\"Get the latest capture timestamp that was slashed on a subnetwork.\"},\"requestSlash(bytes32,address,uint256,uint48,bytes)\":{\"notice\":\"Request a slash using a subnetwork for a particular operator by a given amount using hints.\"},\"resolver(bytes32,bytes)\":{\"notice\":\"Get a resolver for a given subnetwork using a hint.\"},\"resolverAt(bytes32,uint48,bytes)\":{\"notice\":\"Get a resolver for a given subnetwork at a particular timestamp using a hint.\"},\"resolverSetEpochsDelay()\":{\"notice\":\"Get a delay for networks in epochs to update a resolver.\"},\"slashRequests(uint256)\":{\"notice\":\"Get a particular slash request.\"},\"slashRequestsLength()\":{\"notice\":\"Get a total number of slash requests.\"},\"slashableStake(bytes32,address,uint48,bytes)\":{\"notice\":\"Get a slashable amount of a stake got at a given capture timestamp using hints.\"},\"staticDelegateCall(address,bytes)\":{\"notice\":\"Make a delegatecall from this contract to a given target contract with a particular data (always reverts with a return data).\"},\"vault()\":{\"notice\":\"Get the vault's address.\"},\"vetoDuration()\":{\"notice\":\"Get a duration during which resolvers can veto slash requests.\"},\"vetoSlash(uint256,bytes)\":{\"notice\":\"Veto a slash with a given slash index using hints.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/contracts/slasher/VetoSlasher.sol\":\"VetoSlasher\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609\",\"dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardUpgradeable.sol\":{\"keccak256\":\"0xb44e086e941292cdc7f440de51478493894ef0b1aeccb0c4047445919f667f74\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://942dad22fbdc1669f025540ba63aa3ccfad5f8458fc5d4525b31ebf272e7af45\",\"dweb:/ipfs/Qmdo4X2M82aM3AMoW2kf2jhYkSCyC4T1pHNd6obdsDFnAB\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875\",\"dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0xe19a4d5f31d2861e7344e8e535e2feafb913d806d3e2b5fe7782741a2a7094fe\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4aed79c0fa6f0546ed02f2f683e8f77f0fd2ed7eb34d8bbf3d373c9a6d95b13c\",\"dweb:/ipfs/QmWqVz6UAVqmnWU5pqYPt1o6iDEZyPaBraAA3rKfTTSfYj\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/Checkpoints.sol\":{\"keccak256\":\"0xbdc5e074d7dd6678f67e92b1a51a20226801a407b0e1af3da367c5d1ff4519ad\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a36cca6b22fff3db16fc789ff6c60eea71d4b156065d4d0c83a0bc5e91a77a8b\",\"dweb:/ipfs/QmYN3exd5AemxjBrN8XMB1p5LbbE16uC3sjbYjwi8AjcGR\"]},\"lib/openzeppelin-contracts/contracts/utils/types/Time.sol\":{\"keccak256\":\"0xc7755af115020049e4140f224f9ee88d7e1799ffb0646f37bf0df24bf6213f58\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7f09bf94d5274334ec021f61a04659db303f31e60460e14b709c9bf187740111\",\"dweb:/ipfs/QmNvgomZYUwFAt4cZbPWAiTeSZQreGehY9BK5xyVJsUttb\"]},\"src/contracts/common/Entity.sol\":{\"keccak256\":\"0x3d61a932995b8443381f3950542d388223a2c26dd5d29a3274dea3baa7388bd7\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://7cdf5f03ca72fd263fd32ff59c8d88ddca911ae83896a287d10772c1bbe9b138\",\"dweb:/ipfs/QmbP84r5BWT1Rn9AYTntWSf3xUMTTCohTZJFhbBhDXFoHa\"]},\"src/contracts/common/StaticDelegateCallable.sol\":{\"keccak256\":\"0x350029aa8955eacaffffaeb58babc5c98e80ebc5c5db388ed17ee6465f4a9d90\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://eb392a8ee9050e0af606897df63e3404e3829e8b688b580663892f9664195764\",\"dweb:/ipfs/QmaXC8jqV8UrrAFkzXTEv2fJF56sy33HhLxAzaRZmUxuXD\"]},\"src/contracts/libraries/Checkpoints.sol\":{\"keccak256\":\"0xba90097c8bfe0a975499428b5f8ac5569483c7d92ccc28c12d70de416aae040c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://12f5d93ca94cd06d3147db68993165a58e17903ed53682560de61f3085ad4609\",\"dweb:/ipfs/QmePiuAqvXprMLmFZkGZeGjvGPAvsEDHfCDv7BoQhXu9xE\"]},\"src/contracts/libraries/Subnetwork.sol\":{\"keccak256\":\"0xf5ef5506fd66082b3c2e7f3df37529f5a8efad32ac62e7c8914bd63219190bfe\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba031a54ee0d0e9a270c2b9e18437f5668cfeb659cfd5fe0677459d7fcac2a56\",\"dweb:/ipfs/QmReP3H7qQ78tAfgLnJKsNEQNCQfF1X1Get38Ffd4kzq32\"]},\"src/contracts/slasher/BaseSlasher.sol\":{\"keccak256\":\"0x190e5dce196a061bdad42468c52e9f5b0eb7810cd7d0c19f04d6a2e94984f1b6\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://07ca08d0cd43c2fe5d54a5577f6bdd522ced410f5d3a52e764deaa7ba26b5f06\",\"dweb:/ipfs/QmZe3PiMKBQKWcwodaLupragdqxPjgS4v1qMC7RXau8hDF\"]},\"src/contracts/slasher/VetoSlasher.sol\":{\"keccak256\":\"0xeccc8128de5e1ad499c067feac1c526638fbbac1a18b96726fc7507969fd5897\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://cdfcf281338423625acbccdf8810115b258ef7cfe4aa3c10b8911ead1aa85429\",\"dweb:/ipfs/QmZFsDvZXpkFkx4PHcDXAVPN3ZCAahbSVfYpSVrMBvbt4k\"]},\"src/interfaces/common/IEntity.sol\":{\"keccak256\":\"0x8ef4b63d6da63489778ccd5f8d13ebdd527dd4b62730b2c616df5af7474d2d21\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a8d69576a9219d85c50816a18ad53a4d53cfcb27ed38b8cccc808dc2734b71b\",\"dweb:/ipfs/QmYVN3P4Q4REvBWJ97TbAcaxm3uyB2anV6NSGa6ZtSwcEv\"]},\"src/interfaces/common/IMigratableEntity.sol\":{\"keccak256\":\"0x8f5f2809f3afbe8ebfbb365dd7b57b4dd3b6f9943a6187eaf648d45895b8e3c4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ffe640537d539e7a4fde70d30d3e4c57f4ba9c2c25c450cea713aae38e8fd5c\",\"dweb:/ipfs/QmSUTGzvdcn1R1KB7tLThMRtESsfPbeXDhhhKWGtntzBds\"]},\"src/interfaces/common/IRegistry.sol\":{\"keccak256\":\"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014\",\"dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK\"]},\"src/interfaces/common/IStaticDelegateCallable.sol\":{\"keccak256\":\"0xa335d4e81b9071b7de66ef92b43ff20671d86516eb1be46fef29a3483cd3f5d5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d464b9db863c14c05547d2b23352f2e9b7b784799cf09f6bbc4906a2a74e3516\",\"dweb:/ipfs/QmUVWzFvJz7eEbDQKiFTTzwi7TEbjcs3VmwdM4kuptAKvi\"]},\"src/interfaces/delegator/IBaseDelegator.sol\":{\"keccak256\":\"0x96bb312f032e17accce3f8f80936d99468029d6b37c9ca74acdb4b026a0148ee\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2a66dcb5b7d1a6ef6a363431ea98ebd78bc4fdd3d7a134d9b542dc66e7d025c2\",\"dweb:/ipfs/QmRhTPLd2ZAyRHmJUFUcWKs9b3if49QY17LYZuRqWmghw8\"]},\"src/interfaces/service/INetworkMiddlewareService.sol\":{\"keccak256\":\"0x347afc7fcf1fbcdb96d66162070ef6c78aed27b3af2c1d5dfb4e511840631783\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2d90b8ceb495159e8e4e95d76447719dd166443f67dfabdd942846162071595c\",\"dweb:/ipfs/QmVVuiAWYx92T6vBvNMKZfTvraCf1fa16BsUKkdNs3hdHA\"]},\"src/interfaces/slasher/IBaseSlasher.sol\":{\"keccak256\":\"0x7c82528b445659c313ab77335c407b0b6efe5e79027187bb287f7bc74202b404\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0274c90aa5df1aa6bb470a6aab53992fb14fd7e5472c9430416505b29647d9cf\",\"dweb:/ipfs/QmckbmJLDetPemVzCnnGcKYWAZV2BRFXGDsjiaec8jkHxx\"]},\"src/interfaces/slasher/IBurner.sol\":{\"keccak256\":\"0xaf495dacc19ae0b3c787ba8021c5944927d70261536addd234d7dab146158c2b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9b3cc66251008be6ff9fc8b11ecc6831d5a9dca49a3fe9817fcd970253c1d447\",\"dweb:/ipfs/QmVxfb9ALGdF9W3SN2h41gQbUct6tawvu5bw4K89kFQ4HW\"]},\"src/interfaces/slasher/IVetoSlasher.sol\":{\"keccak256\":\"0xdf7edd04a4f36e9aec3a15241dcb6b6315b2e64927b12710c2c410d571fc55e9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c4be6ac339c2ebf230fed65363f036784224095d0cd0f3f2d01d64d6e0da9508\",\"dweb:/ipfs/QmRSMbpfaHExqrzUA8vYZMYZWh6eQW1KX9JKJSLdgronfg\"]},\"src/interfaces/vault/IVault.sol\":{\"keccak256\":\"0xffee01d383cd4e1a5530c614bf4360c1ef070c288abec9da1eb531b51bc07235\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://04f0046cac285d8ec44ebbb1f79dc94fab4495767190cad8364fbc1fafaadfb9\",\"dweb:/ipfs/QmUawAunwzXfCyShWfhKeThAgKtqe51hmrxvrXvM772M2R\"]},\"src/interfaces/vault/IVaultStorage.sol\":{\"keccak256\":\"0x592626f13754194f83047135de19229c49390bd59e34659b1bb38be71d973a22\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://06a6a9dfddd05e580b32bebe2cff4f63ba26a653180676d58225dd30d9c89d3e\",\"dweb:/ipfs/QmdgzBeY6Sxo8mGtyBxtv1tM1c2kU6J6zjeRd7vuXm4DU6\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.25+commit.b61c2a91"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"vaultFactory","type":"address"},{"internalType":"address","name":"networkMiddlewareService","type":"address"},{"internalType":"address","name":"networkRegistry","type":"address"},{"internalType":"address","name":"slasherFactory","type":"address"},{"internalType":"uint64","name":"entityType","type":"uint64"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"AlreadySet"},{"inputs":[],"type":"error","name":"CheckpointUnorderedInsertion"},{"inputs":[],"type":"error","name":"InsufficientBurnerGas"},{"inputs":[],"type":"error","name":"InsufficientSlash"},{"inputs":[],"type":"error","name":"InvalidCaptureTimestamp"},{"inputs":[],"type":"error","name":"InvalidInitialization"},{"inputs":[],"type":"error","name":"InvalidResolverSetEpochsDelay"},{"inputs":[],"type":"error","name":"InvalidVetoDuration"},{"inputs":[],"type":"error","name":"NoBurner"},{"inputs":[],"type":"error","name":"NoResolver"},{"inputs":[],"type":"error","name":"NotInitialized"},{"inputs":[],"type":"error","name":"NotInitializing"},{"inputs":[],"type":"error","name":"NotNetwork"},{"inputs":[],"type":"error","name":"NotNetworkMiddleware"},{"inputs":[],"type":"error","name":"NotResolver"},{"inputs":[],"type":"error","name":"NotVault"},{"inputs":[],"type":"error","name":"ReentrancyGuardReentrantCall"},{"inputs":[{"internalType":"uint8","name":"bits","type":"uint8"},{"internalType":"uint256","name":"value","type":"uint256"}],"type":"error","name":"SafeCastOverflowedUintDowncast"},{"inputs":[],"type":"error","name":"SlashPeriodEnded"},{"inputs":[],"type":"error","name":"SlashRequestCompleted"},{"inputs":[],"type":"error","name":"SlashRequestNotExist"},{"inputs":[],"type":"error","name":"VetoPeriodEnded"},{"inputs":[],"type":"error","name":"VetoPeriodNotEnded"},{"inputs":[{"internalType":"uint256","name":"slashIndex","type":"uint256","indexed":true},{"internalType":"uint256","name":"slashedAmount","type":"uint256","indexed":false}],"type":"event","name":"ExecuteSlash","anonymous":false},{"inputs":[{"internalType":"uint64","name":"version","type":"uint64","indexed":false}],"type":"event","name":"Initialized","anonymous":false},{"inputs":[{"internalType":"uint256","name":"slashIndex","type":"uint256","indexed":true},{"internalType":"bytes32","name":"subnetwork","type":"bytes32","indexed":true},{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"uint256","name":"slashAmount","type":"uint256","indexed":false},{"internalType":"uint48","name":"captureTimestamp","type":"uint48","indexed":false},{"internalType":"uint48","name":"vetoDeadline","type":"uint48","indexed":false}],"type":"event","name":"RequestSlash","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32","indexed":true},{"internalType":"address","name":"resolver","type":"address","indexed":false}],"type":"event","name":"SetResolver","anonymous":false},{"inputs":[{"internalType":"uint256","name":"slashIndex","type":"uint256","indexed":true},{"internalType":"address","name":"resolver","type":"address","indexed":true}],"type":"event","name":"VetoSlash","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"BURNER_GAS_LIMIT","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"BURNER_RESERVE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"FACTORY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"NETWORK_MIDDLEWARE_SERVICE","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"NETWORK_REGISTRY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"TYPE","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"VAULT_FACTORY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"cumulativeSlash","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint48","name":"timestamp","type":"uint48"},{"internalType":"bytes","name":"hint","type":"bytes"}],"stateMutability":"view","type":"function","name":"cumulativeSlashAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"slashIndex","type":"uint256"},{"internalType":"bytes","name":"hints","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"executeSlash","outputs":[{"internalType":"uint256","name":"slashedAmount","type":"uint256"}]},{"inputs":[{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[],"stateMutability":"view","type":"function","name":"isBurnerHook","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"latestSlashedCaptureTimestamp","outputs":[{"internalType":"uint48","name":"value","type":"uint48"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint48","name":"captureTimestamp","type":"uint48"},{"internalType":"bytes","name":"hints","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"requestSlash","outputs":[{"internalType":"uint256","name":"slashIndex","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"bytes","name":"hint","type":"bytes"}],"stateMutability":"view","type":"function","name":"resolver","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"uint48","name":"timestamp","type":"uint48"},{"internalType":"bytes","name":"hint","type":"bytes"}],"stateMutability":"view","type":"function","name":"resolverAt","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"resolverSetEpochsDelay","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint96","name":"identifier","type":"uint96"},{"internalType":"address","name":"resolver_","type":"address"},{"internalType":"bytes","name":"hints","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"setResolver"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function","name":"slashRequests","outputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint48","name":"captureTimestamp","type":"uint48"},{"internalType":"uint48","name":"vetoDeadline","type":"uint48"},{"internalType":"bool","name":"completed","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"slashRequestsLength","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint48","name":"captureTimestamp","type":"uint48"},{"internalType":"bytes","name":"hints","type":"bytes"}],"stateMutability":"view","type":"function","name":"slashableStake","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"staticDelegateCall"},{"inputs":[],"stateMutability":"view","type":"function","name":"vault","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"vetoDuration","outputs":[{"internalType":"uint48","name":"","type":"uint48"}]},{"inputs":[{"internalType":"uint256","name":"slashIndex","type":"uint256"},{"internalType":"bytes","name":"hints","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"vetoSlash"}],"devdoc":{"kind":"dev","methods":{"cumulativeSlash(bytes32,address)":{"params":{"operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"},"returns":{"_0":"cumulative slash amount"}},"cumulativeSlashAt(bytes32,address,uint48,bytes)":{"params":{"hint":"hint for the checkpoint index","operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)","timestamp":"time point to get the cumulative slash amount until (inclusively)"},"returns":{"_0":"cumulative slash amount until the given timestamp (inclusively)"}},"executeSlash(uint256,bytes)":{"details":"Only a network middleware can call this function.","params":{"hints":"hints for checkpoints' indexes","slashIndex":"index of the slash request"},"returns":{"slashedAmount":"virtual amount of the collateral slashed"}},"initialize(bytes)":{"params":{"data":"some data to use"}},"requestSlash(bytes32,address,uint256,uint48,bytes)":{"details":"Only a network middleware can call this function.","params":{"amount":"maximum amount of the collateral to be slashed","captureTimestamp":"time point when the stake was captured","hints":"hints for checkpoints' indexes","operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"},"returns":{"slashIndex":"index of the slash request"}},"resolver(bytes32,bytes)":{"params":{"hint":"hint for the checkpoint index","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"},"returns":{"_0":"address of the resolver"}},"resolverAt(bytes32,uint48,bytes)":{"params":{"hint":"hint for the checkpoint index","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)","timestamp":"timestamp to get the resolver at"},"returns":{"_0":"address of the resolver"}},"slashRequestsLength()":{"returns":{"_0":"total number of slash requests"}},"slashableStake(bytes32,address,uint48,bytes)":{"params":{"captureTimestamp":"time point to get the stake amount at","hints":"hints for the checkpoints' indexes","operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"},"returns":{"amount":"slashable amount of the stake"}},"staticDelegateCall(address,bytes)":{"details":"It allows to use this contract's storage on-chain.","params":{"data":"data to make a delegatecall with","target":"address of the contract to make a delegatecall to"}},"vetoSlash(uint256,bytes)":{"details":"Only a resolver can call this function.","params":{"hints":"hints for checkpoints' indexes","slashIndex":"index of the slash request"}}},"version":1},"userdoc":{"kind":"user","methods":{"BURNER_GAS_LIMIT()":{"notice":"Get a gas limit for the burner."},"BURNER_RESERVE()":{"notice":"Get a reserve gas between the gas limit check and the burner's execution."},"FACTORY()":{"notice":"Get the factory's address."},"NETWORK_MIDDLEWARE_SERVICE()":{"notice":"Get the network middleware service's address."},"NETWORK_REGISTRY()":{"notice":"Get the network registry's address."},"TYPE()":{"notice":"Get the entity's type."},"VAULT_FACTORY()":{"notice":"Get the vault factory's address."},"cumulativeSlash(bytes32,address)":{"notice":"Get a cumulative slash amount for an operator on a subnetwork."},"cumulativeSlashAt(bytes32,address,uint48,bytes)":{"notice":"Get a cumulative slash amount for an operator on a subnetwork until a given timestamp (inclusively) using a hint."},"executeSlash(uint256,bytes)":{"notice":"Execute a slash with a given slash index using hints."},"initialize(bytes)":{"notice":"Initialize this entity contract by using a given data."},"isBurnerHook()":{"notice":"Get if the burner is needed to be called on a slashing."},"latestSlashedCaptureTimestamp(bytes32,address)":{"notice":"Get the latest capture timestamp that was slashed on a subnetwork."},"requestSlash(bytes32,address,uint256,uint48,bytes)":{"notice":"Request a slash using a subnetwork for a particular operator by a given amount using hints."},"resolver(bytes32,bytes)":{"notice":"Get a resolver for a given subnetwork using a hint."},"resolverAt(bytes32,uint48,bytes)":{"notice":"Get a resolver for a given subnetwork at a particular timestamp using a hint."},"resolverSetEpochsDelay()":{"notice":"Get a delay for networks in epochs to update a resolver."},"slashRequests(uint256)":{"notice":"Get a particular slash request."},"slashRequestsLength()":{"notice":"Get a total number of slash requests."},"slashableStake(bytes32,address,uint48,bytes)":{"notice":"Get a slashable amount of a stake got at a given capture timestamp using hints."},"staticDelegateCall(address,bytes)":{"notice":"Make a delegatecall from this contract to a given target contract with a particular data (always reverts with a return data)."},"vault()":{"notice":"Get the vault's address."},"vetoDuration()":{"notice":"Get a duration during which resolvers can veto slash requests."},"vetoSlash(uint256,bytes)":{"notice":"Veto a slash with a given slash index using hints."}},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/contracts/slasher/VetoSlasher.sol":"VetoSlasher"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b","urls":["bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609","dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardUpgradeable.sol":{"keccak256":"0xb44e086e941292cdc7f440de51478493894ef0b1aeccb0c4047445919f667f74","urls":["bzz-raw://942dad22fbdc1669f025540ba63aa3ccfad5f8458fc5d4525b31ebf272e7af45","dweb:/ipfs/Qmdo4X2M82aM3AMoW2kf2jhYkSCyC4T1pHNd6obdsDFnAB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d","urls":["bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875","dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol":{"keccak256":"0xe19a4d5f31d2861e7344e8e535e2feafb913d806d3e2b5fe7782741a2a7094fe","urls":["bzz-raw://4aed79c0fa6f0546ed02f2f683e8f77f0fd2ed7eb34d8bbf3d373c9a6d95b13c","dweb:/ipfs/QmWqVz6UAVqmnWU5pqYPt1o6iDEZyPaBraAA3rKfTTSfYj"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/Checkpoints.sol":{"keccak256":"0xbdc5e074d7dd6678f67e92b1a51a20226801a407b0e1af3da367c5d1ff4519ad","urls":["bzz-raw://a36cca6b22fff3db16fc789ff6c60eea71d4b156065d4d0c83a0bc5e91a77a8b","dweb:/ipfs/QmYN3exd5AemxjBrN8XMB1p5LbbE16uC3sjbYjwi8AjcGR"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/types/Time.sol":{"keccak256":"0xc7755af115020049e4140f224f9ee88d7e1799ffb0646f37bf0df24bf6213f58","urls":["bzz-raw://7f09bf94d5274334ec021f61a04659db303f31e60460e14b709c9bf187740111","dweb:/ipfs/QmNvgomZYUwFAt4cZbPWAiTeSZQreGehY9BK5xyVJsUttb"],"license":"MIT"},"src/contracts/common/Entity.sol":{"keccak256":"0x3d61a932995b8443381f3950542d388223a2c26dd5d29a3274dea3baa7388bd7","urls":["bzz-raw://7cdf5f03ca72fd263fd32ff59c8d88ddca911ae83896a287d10772c1bbe9b138","dweb:/ipfs/QmbP84r5BWT1Rn9AYTntWSf3xUMTTCohTZJFhbBhDXFoHa"],"license":"BUSL-1.1"},"src/contracts/common/StaticDelegateCallable.sol":{"keccak256":"0x350029aa8955eacaffffaeb58babc5c98e80ebc5c5db388ed17ee6465f4a9d90","urls":["bzz-raw://eb392a8ee9050e0af606897df63e3404e3829e8b688b580663892f9664195764","dweb:/ipfs/QmaXC8jqV8UrrAFkzXTEv2fJF56sy33HhLxAzaRZmUxuXD"],"license":"BUSL-1.1"},"src/contracts/libraries/Checkpoints.sol":{"keccak256":"0xba90097c8bfe0a975499428b5f8ac5569483c7d92ccc28c12d70de416aae040c","urls":["bzz-raw://12f5d93ca94cd06d3147db68993165a58e17903ed53682560de61f3085ad4609","dweb:/ipfs/QmePiuAqvXprMLmFZkGZeGjvGPAvsEDHfCDv7BoQhXu9xE"],"license":"MIT"},"src/contracts/libraries/Subnetwork.sol":{"keccak256":"0xf5ef5506fd66082b3c2e7f3df37529f5a8efad32ac62e7c8914bd63219190bfe","urls":["bzz-raw://ba031a54ee0d0e9a270c2b9e18437f5668cfeb659cfd5fe0677459d7fcac2a56","dweb:/ipfs/QmReP3H7qQ78tAfgLnJKsNEQNCQfF1X1Get38Ffd4kzq32"],"license":"MIT"},"src/contracts/slasher/BaseSlasher.sol":{"keccak256":"0x190e5dce196a061bdad42468c52e9f5b0eb7810cd7d0c19f04d6a2e94984f1b6","urls":["bzz-raw://07ca08d0cd43c2fe5d54a5577f6bdd522ced410f5d3a52e764deaa7ba26b5f06","dweb:/ipfs/QmZe3PiMKBQKWcwodaLupragdqxPjgS4v1qMC7RXau8hDF"],"license":"BUSL-1.1"},"src/contracts/slasher/VetoSlasher.sol":{"keccak256":"0xeccc8128de5e1ad499c067feac1c526638fbbac1a18b96726fc7507969fd5897","urls":["bzz-raw://cdfcf281338423625acbccdf8810115b258ef7cfe4aa3c10b8911ead1aa85429","dweb:/ipfs/QmZFsDvZXpkFkx4PHcDXAVPN3ZCAahbSVfYpSVrMBvbt4k"],"license":"BUSL-1.1"},"src/interfaces/common/IEntity.sol":{"keccak256":"0x8ef4b63d6da63489778ccd5f8d13ebdd527dd4b62730b2c616df5af7474d2d21","urls":["bzz-raw://5a8d69576a9219d85c50816a18ad53a4d53cfcb27ed38b8cccc808dc2734b71b","dweb:/ipfs/QmYVN3P4Q4REvBWJ97TbAcaxm3uyB2anV6NSGa6ZtSwcEv"],"license":"MIT"},"src/interfaces/common/IMigratableEntity.sol":{"keccak256":"0x8f5f2809f3afbe8ebfbb365dd7b57b4dd3b6f9943a6187eaf648d45895b8e3c4","urls":["bzz-raw://0ffe640537d539e7a4fde70d30d3e4c57f4ba9c2c25c450cea713aae38e8fd5c","dweb:/ipfs/QmSUTGzvdcn1R1KB7tLThMRtESsfPbeXDhhhKWGtntzBds"],"license":"MIT"},"src/interfaces/common/IRegistry.sol":{"keccak256":"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb","urls":["bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014","dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK"],"license":"MIT"},"src/interfaces/common/IStaticDelegateCallable.sol":{"keccak256":"0xa335d4e81b9071b7de66ef92b43ff20671d86516eb1be46fef29a3483cd3f5d5","urls":["bzz-raw://d464b9db863c14c05547d2b23352f2e9b7b784799cf09f6bbc4906a2a74e3516","dweb:/ipfs/QmUVWzFvJz7eEbDQKiFTTzwi7TEbjcs3VmwdM4kuptAKvi"],"license":"MIT"},"src/interfaces/delegator/IBaseDelegator.sol":{"keccak256":"0x96bb312f032e17accce3f8f80936d99468029d6b37c9ca74acdb4b026a0148ee","urls":["bzz-raw://2a66dcb5b7d1a6ef6a363431ea98ebd78bc4fdd3d7a134d9b542dc66e7d025c2","dweb:/ipfs/QmRhTPLd2ZAyRHmJUFUcWKs9b3if49QY17LYZuRqWmghw8"],"license":"MIT"},"src/interfaces/service/INetworkMiddlewareService.sol":{"keccak256":"0x347afc7fcf1fbcdb96d66162070ef6c78aed27b3af2c1d5dfb4e511840631783","urls":["bzz-raw://2d90b8ceb495159e8e4e95d76447719dd166443f67dfabdd942846162071595c","dweb:/ipfs/QmVVuiAWYx92T6vBvNMKZfTvraCf1fa16BsUKkdNs3hdHA"],"license":"MIT"},"src/interfaces/slasher/IBaseSlasher.sol":{"keccak256":"0x7c82528b445659c313ab77335c407b0b6efe5e79027187bb287f7bc74202b404","urls":["bzz-raw://0274c90aa5df1aa6bb470a6aab53992fb14fd7e5472c9430416505b29647d9cf","dweb:/ipfs/QmckbmJLDetPemVzCnnGcKYWAZV2BRFXGDsjiaec8jkHxx"],"license":"MIT"},"src/interfaces/slasher/IBurner.sol":{"keccak256":"0xaf495dacc19ae0b3c787ba8021c5944927d70261536addd234d7dab146158c2b","urls":["bzz-raw://9b3cc66251008be6ff9fc8b11ecc6831d5a9dca49a3fe9817fcd970253c1d447","dweb:/ipfs/QmVxfb9ALGdF9W3SN2h41gQbUct6tawvu5bw4K89kFQ4HW"],"license":"MIT"},"src/interfaces/slasher/IVetoSlasher.sol":{"keccak256":"0xdf7edd04a4f36e9aec3a15241dcb6b6315b2e64927b12710c2c410d571fc55e9","urls":["bzz-raw://c4be6ac339c2ebf230fed65363f036784224095d0cd0f3f2d01d64d6e0da9508","dweb:/ipfs/QmRSMbpfaHExqrzUA8vYZMYZWh6eQW1KX9JKJSLdgronfg"],"license":"MIT"},"src/interfaces/vault/IVault.sol":{"keccak256":"0xffee01d383cd4e1a5530c614bf4360c1ef070c288abec9da1eb531b51bc07235","urls":["bzz-raw://04f0046cac285d8ec44ebbb1f79dc94fab4495767190cad8364fbc1fafaadfb9","dweb:/ipfs/QmUawAunwzXfCyShWfhKeThAgKtqe51hmrxvrXvM772M2R"],"license":"MIT"},"src/interfaces/vault/IVaultStorage.sol":{"keccak256":"0x592626f13754194f83047135de19229c49390bd59e34659b1bb38be71d973a22","urls":["bzz-raw://06a6a9dfddd05e580b32bebe2cff4f63ba26a653180676d58225dd30d9c89d3e","dweb:/ipfs/QmdgzBeY6Sxo8mGtyBxtv1tM1c2kU6J6zjeRd7vuXm4DU6"],"license":"MIT"}},"version":1},"id":99} \ No newline at end of file diff --git a/script/integration/SymbioticCoreInit.sol b/script/integration/SymbioticCoreInit.sol index 839e1de9..1fa956db 100644 --- a/script/integration/SymbioticCoreInit.sol +++ b/script/integration/SymbioticCoreInit.sol @@ -14,6 +14,8 @@ import {IERC5267} from "@openzeppelin/contracts/interfaces/IERC5267.sol"; import {SafeERC20, IERC20} from "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol"; import {IAccessControl} from "@openzeppelin/contracts/access/IAccessControl.sol"; +import {VmSafe} from "forge-std/Vm.sol"; + contract SymbioticCoreInit is SymbioticInit, SymbioticCoreBindings { using SafeERC20 for IERC20; using Math for uint256; @@ -78,22 +80,23 @@ contract SymbioticCoreInit is SymbioticInit, SymbioticCoreBindings { symbioticCore = SymbioticCoreConstants.core(); } else { // non-deterministic deployment (uses standard create) + (,, address deployer) = vm.readCallers(); ISymbioticVaultFactory vaultFactory = ISymbioticVaultFactory( deployCode( string.concat(SYMBIOTIC_CORE_PROJECT_ROOT, "out/VaultFactory.sol/VaultFactory.json"), - abi.encode(SYMBIOTIC_CORE_OWNER == address(0) ? address(this) : SYMBIOTIC_CORE_OWNER) + abi.encode(SYMBIOTIC_CORE_OWNER == address(0) ? deployer : SYMBIOTIC_CORE_OWNER) ) ); ISymbioticDelegatorFactory delegatorFactory = ISymbioticDelegatorFactory( deployCode( string.concat(SYMBIOTIC_CORE_PROJECT_ROOT, "out/DelegatorFactory.sol/DelegatorFactory.json"), - abi.encode(SYMBIOTIC_CORE_OWNER == address(0) ? address(this) : SYMBIOTIC_CORE_OWNER) + abi.encode(SYMBIOTIC_CORE_OWNER == address(0) ? deployer : SYMBIOTIC_CORE_OWNER) ) ); ISymbioticSlasherFactory slasherFactory = ISymbioticSlasherFactory( deployCode( string.concat(SYMBIOTIC_CORE_PROJECT_ROOT, "out/SlasherFactory.sol/SlasherFactory.json"), - abi.encode(SYMBIOTIC_CORE_OWNER == address(0) ? address(this) : SYMBIOTIC_CORE_OWNER) + abi.encode(SYMBIOTIC_CORE_OWNER == address(0) ? deployer : SYMBIOTIC_CORE_OWNER) ) ); ISymbioticNetworkRegistry networkRegistry = ISymbioticNetworkRegistry( @@ -277,7 +280,11 @@ contract SymbioticCoreInit is SymbioticInit, SymbioticCoreBindings { function _getVault_SymbioticCore( address collateral ) internal virtual returns (address) { - address owner = tx.origin; + (Vm.CallerMode callerMode,, address owner) = vm.readCallers(); + if (callerMode == VmSafe.CallerMode.Broadcast) { + vm.stopBroadcast(); + } + uint48 epochDuration = 7 days; uint48 vetoDuration = 1 days; @@ -287,7 +294,7 @@ contract SymbioticCoreInit is SymbioticInit, SymbioticCoreBindings { operatorNetworkSharesSetRoleHolders[0] = owner; (address vault,,) = _createVault_SymbioticCore({ symbioticCore: symbioticCore, - who: tx.origin, + who: owner, version: 1, owner: owner, vaultParams: abi.encode( @@ -447,9 +454,13 @@ contract SymbioticCoreInit is SymbioticInit, SymbioticCoreBindings { ); } + (Vm.CallerMode callerMode,, address deployer) = vm.readCallers(); + if (callerMode == VmSafe.CallerMode.Broadcast) { + vm.stopBroadcast(); + } (address vault,,) = _createVault_SymbioticCore({ symbioticCore: symbioticCore, - who: tx.origin, + who: deployer, version: 1, owner: owner, vaultParams: vaultParams, @@ -512,8 +523,12 @@ contract SymbioticCoreInit is SymbioticInit, SymbioticCoreBindings { } uint64 slasherIndex = _randomPick_Symbiotic(slasherTypes); + (Vm.CallerMode callerMode,, address deployer) = vm.readCallers(); + if (callerMode == VmSafe.CallerMode.Broadcast) { + vm.stopBroadcast(); + } return _getVault_SymbioticCore( - operators.length == 0 ? tx.origin : _randomPick_Symbiotic(operators), + operators.length == 0 ? deployer : _randomPick_Symbiotic(operators), collateral, 0x000000000000000000000000000000000000dEaD, epochDuration, diff --git a/script/integration/SymbioticInit.sol b/script/integration/SymbioticInit.sol index 1582cbff..cd1f1420 100644 --- a/script/integration/SymbioticInit.sol +++ b/script/integration/SymbioticInit.sol @@ -101,13 +101,19 @@ contract SymbioticInit is Script, SymbioticCounter { } function _deal_Symbiotic(address token, address to, uint256 give) public virtual { - vm.startBroadcast(tx.origin); + (Vm.CallerMode callerMode,, address txOrigin) = vm.readCallers(); + if (callerMode != VmSafe.CallerMode.Broadcast) { + vm.startBroadcast(txOrigin); + } IERC20(token).safeTransfer(to, give); vm.stopBroadcast(); } function _deal_Symbiotic(address to, uint256 give) public virtual { - vm.startBroadcast(tx.origin); + (Vm.CallerMode callerMode,, address txOrigin) = vm.readCallers(); + if (callerMode != VmSafe.CallerMode.Broadcast) { + vm.startBroadcast(txOrigin); + } to.call{value: give}(""); vm.stopBroadcast(); } diff --git a/script/integration/examples/OnboardNetwork.s.sol b/script/integration/examples/OnboardNetwork.s.sol index c7fdfd3a..c0feecbe 100644 --- a/script/integration/examples/OnboardNetwork.s.sol +++ b/script/integration/examples/OnboardNetwork.s.sol @@ -41,7 +41,8 @@ contract OnboardNetworkScript is SymbioticCoreInit { SYMBIOTIC_CORE_DELEGATOR_TYPES = [0, 2]; - address NETWORK = tx.origin; + (,, address txOrigin) = vm.readCallers(); + address NETWORK = txOrigin; uint96 IDENTIFIER = 0; bytes32 SUBNETWORK = NETWORK.subnetwork(IDENTIFIER); address COLLATERAL = SymbioticCoreConstants.wstETH(); @@ -51,13 +52,13 @@ contract OnboardNetworkScript is SymbioticCoreInit { super.run(seed); if (COLLATERAL == SymbioticCoreConstants.wstETH()) { - uint256 balanceBefore = IERC20(COLLATERAL).balanceOf(tx.origin); + uint256 balanceBefore = IERC20(COLLATERAL).balanceOf(txOrigin); uint256 requiredAmount = _normalizeForToken_Symbiotic(SYMBIOTIC_CORE_TOKENS_TO_SET_TIMES_1e18, COLLATERAL) * SYMBIOTIC_CORE_NUMBER_OF_STAKERS; if (balanceBefore < requiredAmount) { address stETH = IwstETH(COLLATERAL).stETH(); uint256 toSend = IwstETH(COLLATERAL).getStETHByWstETH(requiredAmount - balanceBefore) * 101 / 100; - vm.startBroadcast(tx.origin); + vm.startBroadcast(txOrigin); stETH.call{value: toSend}(""); IERC20(stETH).forceApprove(COLLATERAL, toSend); IwstETH(COLLATERAL).wrap(toSend); diff --git a/test/integration/SymbioticCoreInit.sol b/test/integration/SymbioticCoreInit.sol index aaeb162e..f2c3928f 100644 --- a/test/integration/SymbioticCoreInit.sol +++ b/test/integration/SymbioticCoreInit.sol @@ -76,22 +76,23 @@ contract SymbioticCoreInit is SymbioticInit, SymbioticCoreBindings { symbioticCore = SymbioticCoreConstants.core(); } else { // non-deterministic deployment (uses standard create) + (,, address deployer) = vm.readCallers(); ISymbioticVaultFactory vaultFactory = ISymbioticVaultFactory( deployCode( string.concat(SYMBIOTIC_CORE_PROJECT_ROOT, "out/VaultFactory.sol/VaultFactory.json"), - abi.encode(SYMBIOTIC_CORE_OWNER == address(0) ? address(this) : SYMBIOTIC_CORE_OWNER) + abi.encode(SYMBIOTIC_CORE_OWNER == address(0) ? deployer : SYMBIOTIC_CORE_OWNER) ) ); ISymbioticDelegatorFactory delegatorFactory = ISymbioticDelegatorFactory( deployCode( string.concat(SYMBIOTIC_CORE_PROJECT_ROOT, "out/DelegatorFactory.sol/DelegatorFactory.json"), - abi.encode(SYMBIOTIC_CORE_OWNER == address(0) ? address(this) : SYMBIOTIC_CORE_OWNER) + abi.encode(SYMBIOTIC_CORE_OWNER == address(0) ? deployer : SYMBIOTIC_CORE_OWNER) ) ); ISymbioticSlasherFactory slasherFactory = ISymbioticSlasherFactory( deployCode( string.concat(SYMBIOTIC_CORE_PROJECT_ROOT, "out/SlasherFactory.sol/SlasherFactory.json"), - abi.encode(SYMBIOTIC_CORE_OWNER == address(0) ? address(this) : SYMBIOTIC_CORE_OWNER) + abi.encode(SYMBIOTIC_CORE_OWNER == address(0) ? deployer : SYMBIOTIC_CORE_OWNER) ) ); ISymbioticNetworkRegistry networkRegistry = ISymbioticNetworkRegistry( @@ -275,7 +276,11 @@ contract SymbioticCoreInit is SymbioticInit, SymbioticCoreBindings { function _getVault_SymbioticCore( address collateral ) internal virtual returns (address) { - address owner = address(this); + (Vm.CallerMode callerMode,, address owner) = vm.readCallers(); + if (callerMode == VmSafe.CallerMode.Prank) { + vm.stopPrank(); + } + uint48 epochDuration = 7 days; uint48 vetoDuration = 1 days; @@ -285,7 +290,7 @@ contract SymbioticCoreInit is SymbioticInit, SymbioticCoreBindings { operatorNetworkSharesSetRoleHolders[0] = owner; (address vault,,) = _createVault_SymbioticCore({ symbioticCore: symbioticCore, - who: address(this), + who: owner, version: 1, owner: owner, vaultParams: abi.encode( @@ -445,9 +450,13 @@ contract SymbioticCoreInit is SymbioticInit, SymbioticCoreBindings { ); } + (Vm.CallerMode callerMode,, address deployer) = vm.readCallers(); + if (callerMode == VmSafe.CallerMode.Prank) { + vm.stopPrank(); + } (address vault,,) = _createVault_SymbioticCore({ symbioticCore: symbioticCore, - who: address(this), + who: deployer, version: 1, owner: owner, vaultParams: vaultParams, @@ -510,8 +519,12 @@ contract SymbioticCoreInit is SymbioticInit, SymbioticCoreBindings { } uint64 slasherIndex = _randomPick_Symbiotic(slasherTypes); + (Vm.CallerMode callerMode,, address deployer) = vm.readCallers(); + if (callerMode == VmSafe.CallerMode.Prank) { + vm.stopPrank(); + } return _getVault_SymbioticCore( - operators.length == 0 ? address(this) : _randomPick_Symbiotic(operators), + operators.length == 0 ? deployer : _randomPick_Symbiotic(operators), collateral, 0x000000000000000000000000000000000000dEaD, epochDuration, From 94939beaa01de639c0a81f641d3281132fb9169e Mon Sep 17 00:00:00 2001 From: Andrey Date: Fri, 18 Jul 2025 03:51:40 +0400 Subject: [PATCH 2/4] fix: improve address management in integration/ --- script/integration/SymbioticCoreInit.sol | 26 +++++++++++++++++++----- script/integration/SymbioticInit.sol | 8 ++++++-- test/integration/SymbioticCoreInit.sol | 26 +++++++++++++++++++----- 3 files changed, 48 insertions(+), 12 deletions(-) diff --git a/script/integration/SymbioticCoreInit.sol b/script/integration/SymbioticCoreInit.sol index 1fa956db..ee839c3a 100644 --- a/script/integration/SymbioticCoreInit.sol +++ b/script/integration/SymbioticCoreInit.sol @@ -80,23 +80,26 @@ contract SymbioticCoreInit is SymbioticInit, SymbioticCoreBindings { symbioticCore = SymbioticCoreConstants.core(); } else { // non-deterministic deployment (uses standard create) - (,, address deployer) = vm.readCallers(); + (Vm.CallerMode callerMode,, address deployer) = vm.readCallers(); + if (callerMode != VmSafe.CallerMode.Broadcast) { + vm.startBroadcast(deployer); + } ISymbioticVaultFactory vaultFactory = ISymbioticVaultFactory( deployCode( string.concat(SYMBIOTIC_CORE_PROJECT_ROOT, "out/VaultFactory.sol/VaultFactory.json"), - abi.encode(SYMBIOTIC_CORE_OWNER == address(0) ? deployer : SYMBIOTIC_CORE_OWNER) + abi.encode(deployer) ) ); ISymbioticDelegatorFactory delegatorFactory = ISymbioticDelegatorFactory( deployCode( string.concat(SYMBIOTIC_CORE_PROJECT_ROOT, "out/DelegatorFactory.sol/DelegatorFactory.json"), - abi.encode(SYMBIOTIC_CORE_OWNER == address(0) ? deployer : SYMBIOTIC_CORE_OWNER) + abi.encode(deployer) ) ); ISymbioticSlasherFactory slasherFactory = ISymbioticSlasherFactory( deployCode( string.concat(SYMBIOTIC_CORE_PROJECT_ROOT, "out/SlasherFactory.sol/SlasherFactory.json"), - abi.encode(SYMBIOTIC_CORE_OWNER == address(0) ? deployer : SYMBIOTIC_CORE_OWNER) + abi.encode(deployer) ) ); ISymbioticNetworkRegistry networkRegistry = ISymbioticNetworkRegistry( @@ -254,6 +257,9 @@ contract SymbioticCoreInit is SymbioticInit, SymbioticCoreBindings { operatorNetworkOptInService: operatorNetworkOptInService, vaultConfigurator: vaultConfigurator }); + if (callerMode != VmSafe.CallerMode.Broadcast) { + vm.stopBroadcast(); + } } } @@ -334,6 +340,9 @@ contract SymbioticCoreInit is SymbioticInit, SymbioticCoreBindings { }) ) }); + if (callerMode == VmSafe.CallerMode.Broadcast) { + vm.startBroadcast(owner); + } return vault; } @@ -476,6 +485,9 @@ contract SymbioticCoreInit is SymbioticInit, SymbioticCoreBindings { _setDepositorWhitelistStatus_SymbioticCore(owner, vault, whitelistedDepositors[i], true); } } + if (callerMode == VmSafe.CallerMode.Broadcast) { + vm.startBroadcast(deployer); + } return vault; } @@ -527,7 +539,7 @@ contract SymbioticCoreInit is SymbioticInit, SymbioticCoreBindings { if (callerMode == VmSafe.CallerMode.Broadcast) { vm.stopBroadcast(); } - return _getVault_SymbioticCore( + address vault = _getVault_SymbioticCore( operators.length == 0 ? deployer : _randomPick_Symbiotic(operators), collateral, 0x000000000000000000000000000000000000dEaD, @@ -541,6 +553,10 @@ contract SymbioticCoreInit is SymbioticInit, SymbioticCoreBindings { slasherIndex, vetoDuration ); + if (callerMode == VmSafe.CallerMode.Broadcast) { + vm.startBroadcast(deployer); + } + return vault; } function _vaultValidating_SymbioticCore(address vault, bytes32 subnetwork) internal virtual returns (bool) { diff --git a/script/integration/SymbioticInit.sol b/script/integration/SymbioticInit.sol index cd1f1420..06ee7dbd 100644 --- a/script/integration/SymbioticInit.sol +++ b/script/integration/SymbioticInit.sol @@ -106,7 +106,9 @@ contract SymbioticInit is Script, SymbioticCounter { vm.startBroadcast(txOrigin); } IERC20(token).safeTransfer(to, give); - vm.stopBroadcast(); + if (callerMode != VmSafe.CallerMode.Broadcast) { + vm.stopBroadcast(); + } } function _deal_Symbiotic(address to, uint256 give) public virtual { @@ -115,7 +117,9 @@ contract SymbioticInit is Script, SymbioticCounter { vm.startBroadcast(txOrigin); } to.call{value: give}(""); - vm.stopBroadcast(); + if (callerMode != VmSafe.CallerMode.Broadcast) { + vm.stopBroadcast(); + } } function _vmWalletToAddress_Symbiotic( diff --git a/test/integration/SymbioticCoreInit.sol b/test/integration/SymbioticCoreInit.sol index f2c3928f..cd5e4093 100644 --- a/test/integration/SymbioticCoreInit.sol +++ b/test/integration/SymbioticCoreInit.sol @@ -76,23 +76,26 @@ contract SymbioticCoreInit is SymbioticInit, SymbioticCoreBindings { symbioticCore = SymbioticCoreConstants.core(); } else { // non-deterministic deployment (uses standard create) - (,, address deployer) = vm.readCallers(); + (VmSafe.CallerMode callerMode,, address deployer) = vm.readCallers(); + if (callerMode != VmSafe.CallerMode.Broadcast) { + vm.startPrank(deployer); + } ISymbioticVaultFactory vaultFactory = ISymbioticVaultFactory( deployCode( string.concat(SYMBIOTIC_CORE_PROJECT_ROOT, "out/VaultFactory.sol/VaultFactory.json"), - abi.encode(SYMBIOTIC_CORE_OWNER == address(0) ? deployer : SYMBIOTIC_CORE_OWNER) + abi.encode(deployer) ) ); ISymbioticDelegatorFactory delegatorFactory = ISymbioticDelegatorFactory( deployCode( string.concat(SYMBIOTIC_CORE_PROJECT_ROOT, "out/DelegatorFactory.sol/DelegatorFactory.json"), - abi.encode(SYMBIOTIC_CORE_OWNER == address(0) ? deployer : SYMBIOTIC_CORE_OWNER) + abi.encode(deployer) ) ); ISymbioticSlasherFactory slasherFactory = ISymbioticSlasherFactory( deployCode( string.concat(SYMBIOTIC_CORE_PROJECT_ROOT, "out/SlasherFactory.sol/SlasherFactory.json"), - abi.encode(SYMBIOTIC_CORE_OWNER == address(0) ? deployer : SYMBIOTIC_CORE_OWNER) + abi.encode(deployer) ) ); ISymbioticNetworkRegistry networkRegistry = ISymbioticNetworkRegistry( @@ -250,6 +253,9 @@ contract SymbioticCoreInit is SymbioticInit, SymbioticCoreBindings { operatorNetworkOptInService: operatorNetworkOptInService, vaultConfigurator: vaultConfigurator }); + if (callerMode != VmSafe.CallerMode.Prank) { + vm.stopPrank(); + } } } @@ -330,6 +336,9 @@ contract SymbioticCoreInit is SymbioticInit, SymbioticCoreBindings { }) ) }); + if (callerMode == VmSafe.CallerMode.Prank) { + vm.startPrank(owner); + } return vault; } @@ -472,6 +481,9 @@ contract SymbioticCoreInit is SymbioticInit, SymbioticCoreBindings { _setDepositorWhitelistStatus_SymbioticCore(owner, vault, whitelistedDepositors[i], true); } } + if (callerMode == VmSafe.CallerMode.Prank) { + vm.startPrank(owner); + } return vault; } @@ -523,7 +535,7 @@ contract SymbioticCoreInit is SymbioticInit, SymbioticCoreBindings { if (callerMode == VmSafe.CallerMode.Prank) { vm.stopPrank(); } - return _getVault_SymbioticCore( + address vault = _getVault_SymbioticCore( operators.length == 0 ? deployer : _randomPick_Symbiotic(operators), collateral, 0x000000000000000000000000000000000000dEaD, @@ -537,6 +549,10 @@ contract SymbioticCoreInit is SymbioticInit, SymbioticCoreBindings { slasherIndex, vetoDuration ); + if (callerMode == VmSafe.CallerMode.Prank) { + vm.startPrank(deployer); + } + return vault; } function _vaultValidating_SymbioticCore(address vault, bytes32 subnetwork) internal virtual returns (bool) { From ba84bd6e6ef6b827169511999902d024858b59ff Mon Sep 17 00:00:00 2001 From: Andrey Date: Fri, 18 Jul 2025 03:56:31 +0400 Subject: [PATCH 3/4] refactor: remove redundant variable --- script/integration/SymbioticCoreInit.sol | 2 -- test/integration/SymbioticCoreInit.sol | 2 -- 2 files changed, 4 deletions(-) diff --git a/script/integration/SymbioticCoreInit.sol b/script/integration/SymbioticCoreInit.sol index ee839c3a..9d7650ce 100644 --- a/script/integration/SymbioticCoreInit.sol +++ b/script/integration/SymbioticCoreInit.sol @@ -53,8 +53,6 @@ contract SymbioticCoreInit is SymbioticInit, SymbioticCoreBindings { uint256 public SYMBIOTIC_CORE_MIN_OPERATOR_NETWORK_SHARES = 1000; uint256 public SYMBIOTIC_CORE_MAX_OPERATOR_NETWORK_SHARES = 1e18; - address public SYMBIOTIC_CORE_OWNER = address(0); - SymbioticCoreConstants.Core public symbioticCore; function run( diff --git a/test/integration/SymbioticCoreInit.sol b/test/integration/SymbioticCoreInit.sol index cd5e4093..61bdcbfc 100644 --- a/test/integration/SymbioticCoreInit.sol +++ b/test/integration/SymbioticCoreInit.sol @@ -51,8 +51,6 @@ contract SymbioticCoreInit is SymbioticInit, SymbioticCoreBindings { uint256 public SYMBIOTIC_CORE_MIN_OPERATOR_NETWORK_SHARES = 1000; uint256 public SYMBIOTIC_CORE_MAX_OPERATOR_NETWORK_SHARES = 1e18; - address public SYMBIOTIC_CORE_OWNER = address(0); - SymbioticCoreConstants.Core public symbioticCore; function setUp() public virtual override { From 01ec8012a8ef4af3007e8cfbecaca660fcffa4a1 Mon Sep 17 00:00:00 2001 From: Andrey Date: Fri, 18 Jul 2025 13:14:56 +0400 Subject: [PATCH 4/4] fix: handle Recurrent(Prank|Broadcast) --- .../DelegatorFactory.json | 2 +- .../BaseDelegatorHints.json | 2 +- .../FullRestakeDelegatorHints.json | 2 +- .../NetworkRestakeDelegatorHints.json | 2 +- ...OperatorNetworkSpecificDelegatorHints.json | 2 +- .../OperatorSpecificDelegatorHints.json | 2 +- .../FullRestakeDelegator.json | 2 +- out/MetadataService.sol/MetadataService.json | 2 +- .../NetworkMiddlewareService.json | 2 +- out/NetworkRegistry.sol/NetworkRegistry.json | 2 +- .../NetworkRestakeDelegator.json | 2 +- .../OperatorNetworkSpecificDelegator.json | 2 +- .../OperatorRegistry.json | 2 +- .../OperatorSpecificDelegator.json | 2 +- out/OptInService.sol/OptInService.json | 2 +- .../OptInServiceHints.json | 2 +- out/Slasher.sol/Slasher.json | 2 +- out/SlasherFactory.sol/SlasherFactory.json | 2 +- out/SlasherHints.sol/BaseSlasherHints.json | 2 +- out/SlasherHints.sol/SlasherHints.json | 2 +- out/SlasherHints.sol/VetoSlasherHints.json | 2 +- out/Vault.sol/Vault.json | 2 +- .../VaultConfigurator.json | 2 +- out/VaultFactory.sol/VaultFactory.json | 2 +- out/VaultHints.sol/VaultHints.json | 2 +- out/VaultTokenized.sol/VaultTokenized.json | 2 +- out/VetoSlasher.sol/VetoSlasher.json | 2 +- script/integration/SymbioticCoreInit.sol | 19 +++++++++++-------- script/integration/SymbioticInit.sol | 14 ++++++++++---- test/integration/SymbioticCoreInit.sol | 19 +++++++++++-------- 30 files changed, 59 insertions(+), 47 deletions(-) diff --git a/out/DelegatorFactory.sol/DelegatorFactory.json b/out/DelegatorFactory.sol/DelegatorFactory.json index a71c8177..17b3eec2 100644 --- a/out/DelegatorFactory.sol/DelegatorFactory.json +++ b/out/DelegatorFactory.sol/DelegatorFactory.json @@ -1 +1 @@ -{"abi":[{"type":"constructor","inputs":[{"name":"owner_","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"blacklist","inputs":[{"name":"type_","type":"uint64","internalType":"uint64"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"blacklisted","inputs":[{"name":"type_","type":"uint64","internalType":"uint64"}],"outputs":[{"name":"value","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"create","inputs":[{"name":"type_","type":"uint64","internalType":"uint64"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"entity_","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"entity","inputs":[{"name":"index","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"implementation","inputs":[{"name":"type_","type":"uint64","internalType":"uint64"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"isEntity","inputs":[{"name":"entity_","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"totalEntities","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"totalTypes","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"whitelist","inputs":[{"name":"implementation_","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"AddEntity","inputs":[{"name":"entity","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Blacklist","inputs":[{"name":"type_","type":"uint64","indexed":true,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Whitelist","inputs":[{"name":"implementation","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"error","name":"AlreadyBlacklisted","inputs":[]},{"type":"error","name":"AlreadyWhitelisted","inputs":[]},{"type":"error","name":"ERC1167FailedCreateClone","inputs":[]},{"type":"error","name":"EntityNotExist","inputs":[]},{"type":"error","name":"InvalidImplementation","inputs":[]},{"type":"error","name":"InvalidType","inputs":[]},{"type":"error","name":"OwnableInvalidOwner","inputs":[{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"OwnableUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"}]}],"bytecode":{"object":"0x60803460b557601f6109a338819003918201601f19168301916001600160401b0383118484101760b95780849260209460405283398101031260b557516001600160a01b03908181169081900360b5578015609d57600280546001600160a01b03198116831790915560405192167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a36108d590816100ce8239f35b604051631e4fbdf760e01b81525f6004820152602490fd5b5f80fd5b634e487b7160e01b5f52604160045260245ffdfe6080604090808252600480361015610015575f80fd5b5f3560e01c91826314887c5814610698575081635cd8b15e1461067b578163715018a6146106205781638da5cb5b146105f85781639b19251a14610485578163b42ba2a21461041a578163b572a96614610375578163b6caa11914610338578163cd108ef814610194578163f15df2e51461016e578163f2fde38b146100dd575063f9661602146100a4575f80fd5b346100d95760203660031901126100d9576020906100c86100c36106d1565b61073e565b90516001600160a01b039091168152f35b5f80fd5b82346100d95760203660031901126100d9576001600160a01b038235818116939192908490036100d95761010f610799565b8315610158575050600254826bffffffffffffffffffffffff60a01b821617600255167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3005b905f6024925191631e4fbdf760e01b8352820152fd5b82346100d9575f3660031901126100d95767ffffffffffffffff60209254169051908152f35b82346100d957806003193601126100d9576101ad6106d1565b906024359167ffffffffffffffff8084116100d957366023850112156100d95783850135918183116100d957602485019460248436920101116100d9576e5af43d82803e903d91602b57fd5bf36102038261073e565b915f54908487519160208301938452168782015260608082015261023d8161022f60808201898c61071e565b03601f1981018352826106e8565b51902091763d602d80600a3d3981f3363d3d373d3d3d363d7300000062ffffff8260881c16175f5260781b1760205260018060a01b0390603760095ff5169384156103285761028b85610836565b50835192857fb919910dcefbf753bfd926ab3b1d3f85d877190c3d01ba1bd585047b99b99f0b5f80a2853b156100d957836102dd5f93829363439fab9160e01b845260208b850152602484019161071e565b038183885af1801561031e576102f8575b6020848451908152f35b811161030b5760209350815283806102ee565b604184634e487b7160e01b5f525260245ffd5b83513d5f823e3d90fd5b83516330be1a3d60e21b81528690fd5b82346100d95760203660031901126100d95760209067ffffffffffffffff61035e6106d1565b165f526003825260ff815f20541690519015158152f35b82346100d95760203660031901126100d95761038f6106d1565b91610398610799565b67ffffffffffffffff8082541693169283101561040c57825f52600360205260ff825f2054166103fe5750815f5260036020525f20600160ff198254161790557ffc8245c2838846b295ae66fbe0d08e20c799b737c93b56f7b209df2e5fa2d4585f80a2005b905163f53de75f60e01b8152fd5b905163b968846160e01b8152fd5b82346100d95760203660031901126100d95781355f54811015610472575f80527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563015490516001600160a01b03909116815260209150f35b603283634e487b7160e01b5f525260245ffd5b9050346100d957602091826003193601126100d95781356001600160a01b0381811694918590036100d9576104b8610799565b82516202dd3160ec1b81529082828681895afa9182156105ee575f926105b6575b501630148015919061053a575b5061052d576104f4836107c5565b1561052057827feb73900b98b6a3e2b8b01708fe544760cf570d21e7fbe5225f24e48b5b2b432e5f80a2005b5163b73e95e160e01b8152fd5b5163340aafcd60e11b8152fd5b8251635d927f4560e11b815290915081818581885afa91821561031e575f92610577575b505067ffffffffffffffff80845416911614155f6104e6565b90809250813d83116105af575b61058e81836106e8565b810103126100d9575167ffffffffffffffff811681036100d9575f8061055e565b503d610584565b9091508281813d83116105e7575b6105ce81836106e8565b810103126100d9575181811681036100d957905f6104d9565b503d6105c4565b84513d5f823e3d90fd5b82346100d9575f3660031901126100d95760025490516001600160a01b039091168152602090f35b346100d9575f3660031901126100d957610638610799565b600280546001600160a01b031981169091555f906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b82346100d9575f3660031901126100d9576020905f549051908152f35b9150346100d95760203660031901126100d957356001600160a01b03811692908390036100d9576020925f52600183525f205415158152f35b6004359067ffffffffffffffff821682036100d957565b90601f8019910116810190811067ffffffffffffffff82111761070a57604052565b634e487b7160e01b5f52604160045260245ffd5b908060209392818452848401375f828201840152601f01601f1916010190565b67ffffffffffffffff166004548110156107855760045f527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b01546001600160a01b031690565b634e487b7160e01b5f52603260045260245ffd5b6002546001600160a01b031633036107ad57565b60405163118cdaa760e01b8152336004820152602490fd5b805f52600560205260405f2054155f1461083157600454600160401b81101561070a5760018101806004558110156107855781907f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b0155600454905f52600560205260405f2055600190565b505f90565b805f52600160205260405f2054155f14610831575f54600160401b81101561070a5760018101805f558110156107855781907f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e56301555f54905f52600160205260405f205560019056fea26469706673582212204eb59cfe2273c94a1f402df148b2117bb906de5f0af9d371cd0b6f1be6f6c21c64736f6c63430008190033","sourceMap":"181:124:68:-:0;;;;;;;;;;;;;-1:-1:-1;;181:124:68;;;;-1:-1:-1;;;;;181:124:68;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;181:124:68;;;;;;;;;;1273:26:33;;1269:95;;3004:6;181:124:68;;-1:-1:-1;;;;;;181:124:68;;;;;;;;;;;3052:40:33;-1:-1:-1;;3052:40:33;181:124:68;;;;;;;1269:95:33;181:124:68;;-1:-1:-1;;;1322:31:33;;-1:-1:-1;1322:31:33;;;181:124:68;;;1322:31:33;181:124:68;-1:-1:-1;181:124:68;;;;;;-1:-1:-1;181:124:68;;;;;-1:-1:-1;181:124:68","linkReferences":{}},"deployedBytecode":{"object":"0x6080604090808252600480361015610015575f80fd5b5f3560e01c91826314887c5814610698575081635cd8b15e1461067b578163715018a6146106205781638da5cb5b146105f85781639b19251a14610485578163b42ba2a21461041a578163b572a96614610375578163b6caa11914610338578163cd108ef814610194578163f15df2e51461016e578163f2fde38b146100dd575063f9661602146100a4575f80fd5b346100d95760203660031901126100d9576020906100c86100c36106d1565b61073e565b90516001600160a01b039091168152f35b5f80fd5b82346100d95760203660031901126100d9576001600160a01b038235818116939192908490036100d95761010f610799565b8315610158575050600254826bffffffffffffffffffffffff60a01b821617600255167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3005b905f6024925191631e4fbdf760e01b8352820152fd5b82346100d9575f3660031901126100d95767ffffffffffffffff60209254169051908152f35b82346100d957806003193601126100d9576101ad6106d1565b906024359167ffffffffffffffff8084116100d957366023850112156100d95783850135918183116100d957602485019460248436920101116100d9576e5af43d82803e903d91602b57fd5bf36102038261073e565b915f54908487519160208301938452168782015260608082015261023d8161022f60808201898c61071e565b03601f1981018352826106e8565b51902091763d602d80600a3d3981f3363d3d373d3d3d363d7300000062ffffff8260881c16175f5260781b1760205260018060a01b0390603760095ff5169384156103285761028b85610836565b50835192857fb919910dcefbf753bfd926ab3b1d3f85d877190c3d01ba1bd585047b99b99f0b5f80a2853b156100d957836102dd5f93829363439fab9160e01b845260208b850152602484019161071e565b038183885af1801561031e576102f8575b6020848451908152f35b811161030b5760209350815283806102ee565b604184634e487b7160e01b5f525260245ffd5b83513d5f823e3d90fd5b83516330be1a3d60e21b81528690fd5b82346100d95760203660031901126100d95760209067ffffffffffffffff61035e6106d1565b165f526003825260ff815f20541690519015158152f35b82346100d95760203660031901126100d95761038f6106d1565b91610398610799565b67ffffffffffffffff8082541693169283101561040c57825f52600360205260ff825f2054166103fe5750815f5260036020525f20600160ff198254161790557ffc8245c2838846b295ae66fbe0d08e20c799b737c93b56f7b209df2e5fa2d4585f80a2005b905163f53de75f60e01b8152fd5b905163b968846160e01b8152fd5b82346100d95760203660031901126100d95781355f54811015610472575f80527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563015490516001600160a01b03909116815260209150f35b603283634e487b7160e01b5f525260245ffd5b9050346100d957602091826003193601126100d95781356001600160a01b0381811694918590036100d9576104b8610799565b82516202dd3160ec1b81529082828681895afa9182156105ee575f926105b6575b501630148015919061053a575b5061052d576104f4836107c5565b1561052057827feb73900b98b6a3e2b8b01708fe544760cf570d21e7fbe5225f24e48b5b2b432e5f80a2005b5163b73e95e160e01b8152fd5b5163340aafcd60e11b8152fd5b8251635d927f4560e11b815290915081818581885afa91821561031e575f92610577575b505067ffffffffffffffff80845416911614155f6104e6565b90809250813d83116105af575b61058e81836106e8565b810103126100d9575167ffffffffffffffff811681036100d9575f8061055e565b503d610584565b9091508281813d83116105e7575b6105ce81836106e8565b810103126100d9575181811681036100d957905f6104d9565b503d6105c4565b84513d5f823e3d90fd5b82346100d9575f3660031901126100d95760025490516001600160a01b039091168152602090f35b346100d9575f3660031901126100d957610638610799565b600280546001600160a01b031981169091555f906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b82346100d9575f3660031901126100d9576020905f549051908152f35b9150346100d95760203660031901126100d957356001600160a01b03811692908390036100d9576020925f52600183525f205415158152f35b6004359067ffffffffffffffff821682036100d957565b90601f8019910116810190811067ffffffffffffffff82111761070a57604052565b634e487b7160e01b5f52604160045260245ffd5b908060209392818452848401375f828201840152601f01601f1916010190565b67ffffffffffffffff166004548110156107855760045f527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b01546001600160a01b031690565b634e487b7160e01b5f52603260045260245ffd5b6002546001600160a01b031633036107ad57565b60405163118cdaa760e01b8152336004820152602490fd5b805f52600560205260405f2054155f1461083157600454600160401b81101561070a5760018101806004558110156107855781907f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b0155600454905f52600560205260405f2055600190565b505f90565b805f52600160205260405f2054155f14610831575f54600160401b81101561070a5760018101805f558110156107855781907f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e56301555f54905f52600160205260405f205560019056fea26469706673582212204eb59cfe2273c94a1f402df148b2117bb906de5f0af9d371cd0b6f1be6f6c21c64736f6c63430008190033","sourceMap":"181:124:68:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;181:124:68;;;;;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;181:124:68;;;;;;;;;;;;;;;;;-1:-1:-1;;181:124:68;;;;-1:-1:-1;;;;;181:124:68;;;;;;;;;;;;;;1500:62:33;;:::i;:::-;2627:22;;2623:91;;181:124:68;;3004:6:33;181:124:68;;;;;;;;3004:6:33;181:124:68;;3052:40:33;181:124:68;3052:40:33;;181:124:68;2623:91:33;181:124:68;;;;;2672:31:33;;;;;;;;181:124:68;2672:31:33;181:124:68;;;;;;;-1:-1:-1;;181:124:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2364:565:37;2248:21:75;;;:::i;:::-;181:124:68;;;;;;;2299:40:75;181:124:68;2299:40:75;;181:124:68;;;;;;;;;;;;;2299:40:75;181:124:68;;;;;;;;:::i;:::-;2299:40:75;;;;;;;;;:::i;:::-;181:124:68;2289:51:75;;2364:565:37;;;;;;;;181:124:68;2364:565:37;;;;181:124:68;2364:565:37;181:124:68;;;;;2364:565:37;;;181:124:68;2364:565:37;181:124:68;2942:22:37;;;2938:86;;8409:50:62;;;:::i;:::-;;181:124:68;;1077:18:79;;;181:124:68;1077:18:79;;2382:33:75;;;;;181:124:68;;;;;;;;;2382:33:75;;181:124:68;2382:33:75;;;181:124:68;;;;;;:::i;:::-;2382:33:75;;;;;;;;;;;;181:124:68;;;;;;;;;2382:33:75;181:124:68;;;;;;;;;2382:33:75;;;;181:124:68;;;;;;;;;;;;2382:33:75;181:124:68;;;;;;;;;2938:86:37;181:124:68;;-1:-1:-1;;;2987:26:37;;181:124:68;;2987:26:37;181:124:68;;;;;;;-1:-1:-1;;181:124:68;;;;;;;;;:::i;:::-;;;;633:54:75;181:124:68;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;181:124:68;;;;;;:::i;:::-;1500:62:33;;;:::i;:::-;181:124:68;;;;;;;822:21:75;;;;818:72;;181:124:68;;;1946:11:75;181:124:68;;;;;;;;1942:76:75;;181:124:68;;;;1946:11:75;181:124:68;;;;2049:4:75;181:124:68;;;;;;;;2069:16:75;181:124:68;2069:16:75;;181:124:68;1942:76:75;181:124:68;;-1:-1:-1;;;1987:20:75;;;818:72;181:124:68;;-1:-1:-1;;;866:13:75;;;181:124:68;;;;;;;-1:-1:-1;;181:124:68;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;181:124:68;;;;;;;-1:-1:-1;181:124:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;181:124:68;;;;;;;;;;1500:62:33;;:::i;:::-;181:124:68;;-1:-1:-1;;;1476:34:75;;181:124:68;1476:34:75;181:124:68;1476:34:75;181:124:68;1476:34:75;;;;;;;;181:124:68;1476:34:75;;;181:124:68;-1:-1:-1;181:124:68;1522:4:75;1476:51;;;;;:102;;181:124:68;1472:163:75;;;8409:50:62;;;:::i;:::-;1648:49:75;1644:107;;1766:26;;181:124:68;1766:26:75;;181:124:68;1644:107:75;181:124:68;-1:-1:-1;;;1720:20:75;;;1472:163;181:124:68;-1:-1:-1;;;1601:23:75;;;1476:102;181:124:68;;-1:-1:-1;;;1531:31:75;;181:124:68;;-1:-1:-1;181:124:68;;1531:31:75;181:124:68;1531:31:75;;;;;;;;181:124:68;1531:31:75;;;1476:102;181:124:68;;;;;;;;;1531:47:75;;1476:102;;;1531:31;;;;;;;;;;;;;;;;:::i;:::-;;;181:124:68;;;;;;;;;;;;1531:31:75;;;;;;;;;1476:34;;;;;;;;;;;;;;;;;:::i;:::-;;;181:124:68;;;;;;;;;;;;1476:34:75;;;;;;;;;;181:124:68;;;;;;;;;;;;;;;;-1:-1:-1;;181:124:68;;;;1710:6:33;181:124:68;;;-1:-1:-1;;;;;181:124:68;;;;;;;;;;;;;;-1:-1:-1;;181:124:68;;;;1500:62:33;;:::i;:::-;3004:6;181:124:68;;-1:-1:-1;;;;;;181:124:68;;;;;;;-1:-1:-1;;;;;181:124:68;3052:40:33;181:124:68;;3052:40:33;181:124:68;;;;;;;;-1:-1:-1;;181:124:68;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;181:124:68;;;;;-1:-1:-1;;;;;181:124:68;;;;;;;;;;;;;4360:14:62;181:124:68;;;;;4360:26:62;;181:124:68;;;;;;;;;;;;;;:::o;:::-;;;2299:40:75;;181:124:68;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;181:124:68;;;;;;;;-1:-1:-1;;181:124:68;;;;:::o;1192:143:75:-;181:124:68;;1291:27:75;181:124:68;;;;;;1291:27:75;-1:-1:-1;181:124:68;;;;-1:-1:-1;;;;;181:124:68;;1192:143:75:o;181:124:68:-;;;;-1:-1:-1;181:124:68;;1291:27:75;181:124:68;;-1:-1:-1;181:124:68;1796:162:33;1710:6;181:124:68;-1:-1:-1;;;;;181:124:68;735:10:48;1855:23:33;1851:101;;1796:162::o;1851:101::-;181:124:68;;-1:-1:-1;;;1901:40:33;;735:10:48;1901:40:33;;;181:124:68;;;1901:40:33;2241:406:62;181:124:68;-1:-1:-1;181:124:68;4360:14:62;181:124:68;;;-1:-1:-1;181:124:68;;4360:26:62;2320:321;181:124:68;;;;;-1:-1:-1;;;181:124:68;;;;;4360:14:62;181:124:68;;;;;;;;;;;;;;;;;;-1:-1:-1;181:124:68;4360:14:62;181:124:68;;;-1:-1:-1;181:124:68;;4360:14:62;2576:11;:::o;2320:321::-;2618:12;-1:-1:-1;2618:12:62;:::o;2241:406::-;181:124:68;;;4360:14:62;181:124:68;;;;;;4360:26:62;2320:321;181:124:68;;;;;-1:-1:-1;;;181:124:68;;;;;4360:14:62;181:124:68;;;;;;;;;;;;;;;;;;;;4360:14:62;181:124:68;;;;;;4360:14:62;2576:11;:::o","linkReferences":{}},"methodIdentifiers":{"blacklist(uint64)":"b572a966","blacklisted(uint64)":"b6caa119","create(uint64,bytes)":"cd108ef8","entity(uint256)":"b42ba2a2","implementation(uint64)":"f9661602","isEntity(address)":"14887c58","owner()":"8da5cb5b","renounceOwnership()":"715018a6","totalEntities()":"5cd8b15e","totalTypes()":"f15df2e5","transferOwnership(address)":"f2fde38b","whitelist(address)":"9b19251a"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner_\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"AlreadyBlacklisted\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AlreadyWhitelisted\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ERC1167FailedCreateClone\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"EntityNotExist\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidImplementation\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidType\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"entity\",\"type\":\"address\"}],\"name\":\"AddEntity\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"type_\",\"type\":\"uint64\"}],\"name\":\"Blacklist\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"Whitelist\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"type_\",\"type\":\"uint64\"}],\"name\":\"blacklist\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"type_\",\"type\":\"uint64\"}],\"name\":\"blacklisted\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"value\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"type_\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"create\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"entity_\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"entity\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"type_\",\"type\":\"uint64\"}],\"name\":\"implementation\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"entity_\",\"type\":\"address\"}],\"name\":\"isEntity\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalEntities\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalTypes\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"implementation_\",\"type\":\"address\"}],\"name\":\"whitelist\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"ERC1167FailedCreateClone()\":[{\"details\":\"A clone instance deployment failed.\"}],\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}]},\"events\":{\"AddEntity(address)\":{\"params\":{\"entity\":\"address of the added entity\"}},\"Blacklist(uint64)\":{\"details\":\"The given type is still deployable.\",\"params\":{\"type_\":\"type that was blacklisted\"}},\"Whitelist(address)\":{\"params\":{\"implementation\":\"address of the new implementation\"}}},\"kind\":\"dev\",\"methods\":{\"blacklist(uint64)\":{\"details\":\"The given type will still be deployable.\",\"params\":{\"type_\":\"type to blacklist\"}},\"create(uint64,bytes)\":{\"details\":\"CREATE2 salt is constructed from the given parameters.\",\"params\":{\"data\":\"initial data for the entity creation\",\"type_\":\"type's implementation to use\"},\"returns\":{\"entity_\":\"address of the entity\"}},\"entity(uint256)\":{\"params\":{\"index\":\"index of the entity to get\"},\"returns\":{\"_0\":\"address of the entity\"}},\"implementation(uint64)\":{\"params\":{\"type_\":\"position to get the implementation at\"},\"returns\":{\"_0\":\"address of the implementation\"}},\"isEntity(address)\":{\"params\":{\"account\":\"address to check\"},\"returns\":{\"_0\":\"if the given address is an entity\"}},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"totalEntities()\":{\"returns\":{\"_0\":\"total number of entities added\"}},\"totalTypes()\":{\"returns\":{\"_0\":\"total number of types\"}},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"},\"whitelist(address)\":{\"params\":{\"implementation\":\"address of the new implementation\"}}},\"version\":1},\"userdoc\":{\"events\":{\"AddEntity(address)\":{\"notice\":\"Emitted when an entity is added.\"},\"Blacklist(uint64)\":{\"notice\":\"Emitted when a type is blacklisted (e.g., in case of invalid implementation).\"},\"Whitelist(address)\":{\"notice\":\"Emitted when a new type is whitelisted.\"}},\"kind\":\"user\",\"methods\":{\"blacklist(uint64)\":{\"notice\":\"Blacklist a type of entity.\"},\"blacklisted(uint64)\":{\"notice\":\"Get if a type is blacklisted (e.g., in case of invalid implementation).\"},\"create(uint64,bytes)\":{\"notice\":\"Create a new entity at the factory.\"},\"entity(uint256)\":{\"notice\":\"Get an entity given its index.\"},\"implementation(uint64)\":{\"notice\":\"Get the implementation for a given type.\"},\"isEntity(address)\":{\"notice\":\"Get if a given address is an entity.\"},\"totalEntities()\":{\"notice\":\"Get a total number of entities.\"},\"totalTypes()\":{\"notice\":\"Get the total number of whitelisted types.\"},\"whitelist(address)\":{\"notice\":\"Whitelist a new type of entity.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/contracts/DelegatorFactory.sol\":\"DelegatorFactory\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"lib/openzeppelin-contracts/contracts/proxy/Clones.sol\":{\"keccak256\":\"0xd18408af8a91bedb3d56343eeb9b30eb852e6dea93a5e2d5c6db9ca4cb905155\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://061475b7302a732dc598907790f407417551c2b13e89daa57b3698489ef5484b\",\"dweb:/ipfs/QmdX5qmk3VSniSErFuD4aVawQxUi2MuUbP7spPcHddPfcX\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0x86c1470cbfd878491e5de030072b647352d36bd27122cffb928970b1945282aa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ad85dd393ee0a1917c57046abc5155f51f77844b2c6a42c05c1b8dd26d6ff3c1\",\"dweb:/ipfs/QmNqYc8To2NdnpP6E1tGz7t6A7beuENde5yovwov5pW1fA\"]},\"src/contracts/DelegatorFactory.sol\":{\"keccak256\":\"0x3c3fb62c441302f4f75d94703779f5c4bb755c06f310b4c923dbf24d6e0adda9\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://597fa8be7179d8a555bf942c1dea0504273a1d34f6ac4c206fc2e816da143e68\",\"dweb:/ipfs/Qmf54DKNYXC7fTMcAFABw68RC6ZFenVgyAPGhbPTf6s5TR\"]},\"src/contracts/common/Factory.sol\":{\"keccak256\":\"0x41764643e6a2a3d80d694a3efee91f50a2fd084fb2bcd13566259443840e6369\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://fefc1e2a2189275388826f4f82ca421ca79c2866d3ef39dc2c7df46fe7cbf7c9\",\"dweb:/ipfs/QmSJ4VGmgpYUv5ni4ZYoSV4qMuZrk5DLjyB3Vv9NbFgeNZ\"]},\"src/contracts/common/Registry.sol\":{\"keccak256\":\"0x4a4004836d920953a8ec6e223de9a330f43acf7a5b93c6b8b3e4a95e0f129889\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://e8bdda207f3852c683a2b481602239a914f7e26bcd042ade618e263a43b67652\",\"dweb:/ipfs/Qmb8GZykJWxZcfwNp3SqhFizDFydFuV6LXgemV3vnWyLyu\"]},\"src/interfaces/IDelegatorFactory.sol\":{\"keccak256\":\"0x7850453237ca93b301393506d2489a38830a60be0c29f39a4a1aee3508d836e6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8f418702b883c90e046af92d5654a25849baf79b61c11401ad603b861fed7b80\",\"dweb:/ipfs/Qmdju1XFJXx3uJidzoS7srcoSnzT8jUoPAmGEdbceYgB7j\"]},\"src/interfaces/common/IEntity.sol\":{\"keccak256\":\"0x8ef4b63d6da63489778ccd5f8d13ebdd527dd4b62730b2c616df5af7474d2d21\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a8d69576a9219d85c50816a18ad53a4d53cfcb27ed38b8cccc808dc2734b71b\",\"dweb:/ipfs/QmYVN3P4Q4REvBWJ97TbAcaxm3uyB2anV6NSGa6ZtSwcEv\"]},\"src/interfaces/common/IFactory.sol\":{\"keccak256\":\"0xe835ebda85d181b70874f6eb53f2a892aa3223d23efe247060da9b51d2b8e969\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://48b3dfb5f0491d90efbc8ed498b45358260ebac6e8f2aa0106b8b8fabdc988cb\",\"dweb:/ipfs/QmWnnCs3xiHeUvYfUWMJTSFZWc34bSYn9Zpm7f7syra3TA\"]},\"src/interfaces/common/IRegistry.sol\":{\"keccak256\":\"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014\",\"dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.25+commit.b61c2a91"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"owner_","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"AlreadyBlacklisted"},{"inputs":[],"type":"error","name":"AlreadyWhitelisted"},{"inputs":[],"type":"error","name":"ERC1167FailedCreateClone"},{"inputs":[],"type":"error","name":"EntityNotExist"},{"inputs":[],"type":"error","name":"InvalidImplementation"},{"inputs":[],"type":"error","name":"InvalidType"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"OwnableInvalidOwner"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"OwnableUnauthorizedAccount"},{"inputs":[{"internalType":"address","name":"entity","type":"address","indexed":true}],"type":"event","name":"AddEntity","anonymous":false},{"inputs":[{"internalType":"uint64","name":"type_","type":"uint64","indexed":true}],"type":"event","name":"Blacklist","anonymous":false},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"address","name":"implementation","type":"address","indexed":true}],"type":"event","name":"Whitelist","anonymous":false},{"inputs":[{"internalType":"uint64","name":"type_","type":"uint64"}],"stateMutability":"nonpayable","type":"function","name":"blacklist"},{"inputs":[{"internalType":"uint64","name":"type_","type":"uint64"}],"stateMutability":"view","type":"function","name":"blacklisted","outputs":[{"internalType":"bool","name":"value","type":"bool"}]},{"inputs":[{"internalType":"uint64","name":"type_","type":"uint64"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"create","outputs":[{"internalType":"address","name":"entity_","type":"address"}]},{"inputs":[{"internalType":"uint256","name":"index","type":"uint256"}],"stateMutability":"view","type":"function","name":"entity","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"uint64","name":"type_","type":"uint64"}],"stateMutability":"view","type":"function","name":"implementation","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"entity_","type":"address"}],"stateMutability":"view","type":"function","name":"isEntity","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[],"stateMutability":"view","type":"function","name":"totalEntities","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"totalTypes","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"},{"inputs":[{"internalType":"address","name":"implementation_","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"whitelist"}],"devdoc":{"kind":"dev","methods":{"blacklist(uint64)":{"details":"The given type will still be deployable.","params":{"type_":"type to blacklist"}},"create(uint64,bytes)":{"details":"CREATE2 salt is constructed from the given parameters.","params":{"data":"initial data for the entity creation","type_":"type's implementation to use"},"returns":{"entity_":"address of the entity"}},"entity(uint256)":{"params":{"index":"index of the entity to get"},"returns":{"_0":"address of the entity"}},"implementation(uint64)":{"params":{"type_":"position to get the implementation at"},"returns":{"_0":"address of the implementation"}},"isEntity(address)":{"params":{"account":"address to check"},"returns":{"_0":"if the given address is an entity"}},"owner()":{"details":"Returns the address of the current owner."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner."},"totalEntities()":{"returns":{"_0":"total number of entities added"}},"totalTypes()":{"returns":{"_0":"total number of types"}},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."},"whitelist(address)":{"params":{"implementation":"address of the new implementation"}}},"version":1},"userdoc":{"kind":"user","methods":{"blacklist(uint64)":{"notice":"Blacklist a type of entity."},"blacklisted(uint64)":{"notice":"Get if a type is blacklisted (e.g., in case of invalid implementation)."},"create(uint64,bytes)":{"notice":"Create a new entity at the factory."},"entity(uint256)":{"notice":"Get an entity given its index."},"implementation(uint64)":{"notice":"Get the implementation for a given type."},"isEntity(address)":{"notice":"Get if a given address is an entity."},"totalEntities()":{"notice":"Get a total number of entities."},"totalTypes()":{"notice":"Get the total number of whitelisted types."},"whitelist(address)":{"notice":"Whitelist a new type of entity."}},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/contracts/DelegatorFactory.sol":"DelegatorFactory"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts/contracts/access/Ownable.sol":{"keccak256":"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb","urls":["bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6","dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/Clones.sol":{"keccak256":"0xd18408af8a91bedb3d56343eeb9b30eb852e6dea93a5e2d5c6db9ca4cb905155","urls":["bzz-raw://061475b7302a732dc598907790f407417551c2b13e89daa57b3698489ef5484b","dweb:/ipfs/QmdX5qmk3VSniSErFuD4aVawQxUi2MuUbP7spPcHddPfcX"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0x86c1470cbfd878491e5de030072b647352d36bd27122cffb928970b1945282aa","urls":["bzz-raw://ad85dd393ee0a1917c57046abc5155f51f77844b2c6a42c05c1b8dd26d6ff3c1","dweb:/ipfs/QmNqYc8To2NdnpP6E1tGz7t6A7beuENde5yovwov5pW1fA"],"license":"MIT"},"src/contracts/DelegatorFactory.sol":{"keccak256":"0x3c3fb62c441302f4f75d94703779f5c4bb755c06f310b4c923dbf24d6e0adda9","urls":["bzz-raw://597fa8be7179d8a555bf942c1dea0504273a1d34f6ac4c206fc2e816da143e68","dweb:/ipfs/Qmf54DKNYXC7fTMcAFABw68RC6ZFenVgyAPGhbPTf6s5TR"],"license":"BUSL-1.1"},"src/contracts/common/Factory.sol":{"keccak256":"0x41764643e6a2a3d80d694a3efee91f50a2fd084fb2bcd13566259443840e6369","urls":["bzz-raw://fefc1e2a2189275388826f4f82ca421ca79c2866d3ef39dc2c7df46fe7cbf7c9","dweb:/ipfs/QmSJ4VGmgpYUv5ni4ZYoSV4qMuZrk5DLjyB3Vv9NbFgeNZ"],"license":"BUSL-1.1"},"src/contracts/common/Registry.sol":{"keccak256":"0x4a4004836d920953a8ec6e223de9a330f43acf7a5b93c6b8b3e4a95e0f129889","urls":["bzz-raw://e8bdda207f3852c683a2b481602239a914f7e26bcd042ade618e263a43b67652","dweb:/ipfs/Qmb8GZykJWxZcfwNp3SqhFizDFydFuV6LXgemV3vnWyLyu"],"license":"BUSL-1.1"},"src/interfaces/IDelegatorFactory.sol":{"keccak256":"0x7850453237ca93b301393506d2489a38830a60be0c29f39a4a1aee3508d836e6","urls":["bzz-raw://8f418702b883c90e046af92d5654a25849baf79b61c11401ad603b861fed7b80","dweb:/ipfs/Qmdju1XFJXx3uJidzoS7srcoSnzT8jUoPAmGEdbceYgB7j"],"license":"MIT"},"src/interfaces/common/IEntity.sol":{"keccak256":"0x8ef4b63d6da63489778ccd5f8d13ebdd527dd4b62730b2c616df5af7474d2d21","urls":["bzz-raw://5a8d69576a9219d85c50816a18ad53a4d53cfcb27ed38b8cccc808dc2734b71b","dweb:/ipfs/QmYVN3P4Q4REvBWJ97TbAcaxm3uyB2anV6NSGa6ZtSwcEv"],"license":"MIT"},"src/interfaces/common/IFactory.sol":{"keccak256":"0xe835ebda85d181b70874f6eb53f2a892aa3223d23efe247060da9b51d2b8e969","urls":["bzz-raw://48b3dfb5f0491d90efbc8ed498b45358260ebac6e8f2aa0106b8b8fabdc988cb","dweb:/ipfs/QmWnnCs3xiHeUvYfUWMJTSFZWc34bSYn9Zpm7f7syra3TA"],"license":"MIT"},"src/interfaces/common/IRegistry.sol":{"keccak256":"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb","urls":["bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014","dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK"],"license":"MIT"}},"version":1},"id":68} \ No newline at end of file +{"abi":[{"type":"constructor","inputs":[{"name":"owner_","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"blacklist","inputs":[{"name":"type_","type":"uint64","internalType":"uint64"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"blacklisted","inputs":[{"name":"type_","type":"uint64","internalType":"uint64"}],"outputs":[{"name":"value","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"create","inputs":[{"name":"type_","type":"uint64","internalType":"uint64"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"entity_","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"entity","inputs":[{"name":"index","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"implementation","inputs":[{"name":"type_","type":"uint64","internalType":"uint64"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"isEntity","inputs":[{"name":"entity_","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"totalEntities","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"totalTypes","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"whitelist","inputs":[{"name":"implementation_","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"AddEntity","inputs":[{"name":"entity","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Blacklist","inputs":[{"name":"type_","type":"uint64","indexed":true,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Whitelist","inputs":[{"name":"implementation","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"error","name":"AlreadyBlacklisted","inputs":[]},{"type":"error","name":"AlreadyWhitelisted","inputs":[]},{"type":"error","name":"ERC1167FailedCreateClone","inputs":[]},{"type":"error","name":"EntityNotExist","inputs":[]},{"type":"error","name":"InvalidImplementation","inputs":[]},{"type":"error","name":"InvalidType","inputs":[]},{"type":"error","name":"OwnableInvalidOwner","inputs":[{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"OwnableUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"}]}],"bytecode":{"object":"0x60803460b557601f6109a338819003918201601f19168301916001600160401b0383118484101760b95780849260209460405283398101031260b557516001600160a01b03908181169081900360b5578015609d57600280546001600160a01b03198116831790915560405192167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a36108d590816100ce8239f35b604051631e4fbdf760e01b81525f6004820152602490fd5b5f80fd5b634e487b7160e01b5f52604160045260245ffdfe6080604090808252600480361015610015575f80fd5b5f3560e01c91826314887c5814610698575081635cd8b15e1461067b578163715018a6146106205781638da5cb5b146105f85781639b19251a14610485578163b42ba2a21461041a578163b572a96614610375578163b6caa11914610338578163cd108ef814610194578163f15df2e51461016e578163f2fde38b146100dd575063f9661602146100a4575f80fd5b346100d95760203660031901126100d9576020906100c86100c36106d1565b61073e565b90516001600160a01b039091168152f35b5f80fd5b82346100d95760203660031901126100d9576001600160a01b038235818116939192908490036100d95761010f610799565b8315610158575050600254826bffffffffffffffffffffffff60a01b821617600255167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3005b905f6024925191631e4fbdf760e01b8352820152fd5b82346100d9575f3660031901126100d95767ffffffffffffffff60209254169051908152f35b82346100d957806003193601126100d9576101ad6106d1565b906024359167ffffffffffffffff8084116100d957366023850112156100d95783850135918183116100d957602485019460248436920101116100d9576e5af43d82803e903d91602b57fd5bf36102038261073e565b915f54908487519160208301938452168782015260608082015261023d8161022f60808201898c61071e565b03601f1981018352826106e8565b51902091763d602d80600a3d3981f3363d3d373d3d3d363d7300000062ffffff8260881c16175f5260781b1760205260018060a01b0390603760095ff5169384156103285761028b85610836565b50835192857fb919910dcefbf753bfd926ab3b1d3f85d877190c3d01ba1bd585047b99b99f0b5f80a2853b156100d957836102dd5f93829363439fab9160e01b845260208b850152602484019161071e565b038183885af1801561031e576102f8575b6020848451908152f35b811161030b5760209350815283806102ee565b604184634e487b7160e01b5f525260245ffd5b83513d5f823e3d90fd5b83516330be1a3d60e21b81528690fd5b82346100d95760203660031901126100d95760209067ffffffffffffffff61035e6106d1565b165f526003825260ff815f20541690519015158152f35b82346100d95760203660031901126100d95761038f6106d1565b91610398610799565b67ffffffffffffffff8082541693169283101561040c57825f52600360205260ff825f2054166103fe5750815f5260036020525f20600160ff198254161790557ffc8245c2838846b295ae66fbe0d08e20c799b737c93b56f7b209df2e5fa2d4585f80a2005b905163f53de75f60e01b8152fd5b905163b968846160e01b8152fd5b82346100d95760203660031901126100d95781355f54811015610472575f80527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563015490516001600160a01b03909116815260209150f35b603283634e487b7160e01b5f525260245ffd5b9050346100d957602091826003193601126100d95781356001600160a01b0381811694918590036100d9576104b8610799565b82516202dd3160ec1b81529082828681895afa9182156105ee575f926105b6575b501630148015919061053a575b5061052d576104f4836107c5565b1561052057827feb73900b98b6a3e2b8b01708fe544760cf570d21e7fbe5225f24e48b5b2b432e5f80a2005b5163b73e95e160e01b8152fd5b5163340aafcd60e11b8152fd5b8251635d927f4560e11b815290915081818581885afa91821561031e575f92610577575b505067ffffffffffffffff80845416911614155f6104e6565b90809250813d83116105af575b61058e81836106e8565b810103126100d9575167ffffffffffffffff811681036100d9575f8061055e565b503d610584565b9091508281813d83116105e7575b6105ce81836106e8565b810103126100d9575181811681036100d957905f6104d9565b503d6105c4565b84513d5f823e3d90fd5b82346100d9575f3660031901126100d95760025490516001600160a01b039091168152602090f35b346100d9575f3660031901126100d957610638610799565b600280546001600160a01b031981169091555f906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b82346100d9575f3660031901126100d9576020905f549051908152f35b9150346100d95760203660031901126100d957356001600160a01b03811692908390036100d9576020925f52600183525f205415158152f35b6004359067ffffffffffffffff821682036100d957565b90601f8019910116810190811067ffffffffffffffff82111761070a57604052565b634e487b7160e01b5f52604160045260245ffd5b908060209392818452848401375f828201840152601f01601f1916010190565b67ffffffffffffffff166004548110156107855760045f527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b01546001600160a01b031690565b634e487b7160e01b5f52603260045260245ffd5b6002546001600160a01b031633036107ad57565b60405163118cdaa760e01b8152336004820152602490fd5b805f52600560205260405f2054155f1461083157600454600160401b81101561070a5760018101806004558110156107855781907f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b0155600454905f52600560205260405f2055600190565b505f90565b805f52600160205260405f2054155f14610831575f54600160401b81101561070a5760018101805f558110156107855781907f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e56301555f54905f52600160205260405f205560019056fea2646970667358221220377c7c8f4b9c9b6585fa533deadc519659538dd3b8b8fd22fffd3bbad02b228064736f6c63430008190033","sourceMap":"181:124:63:-:0;;;;;;;;;;;;;-1:-1:-1;;181:124:63;;;;-1:-1:-1;;;;;181:124:63;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;181:124:63;;;;;;;;;;1273:26:32;;1269:95;;3004:6;181:124:63;;-1:-1:-1;;;;;;181:124:63;;;;;;;;;;;3052:40:32;-1:-1:-1;;3052:40:32;181:124:63;;;;;;;1269:95:32;181:124:63;;-1:-1:-1;;;1322:31:32;;-1:-1:-1;1322:31:32;;;181:124:63;;;1322:31:32;181:124:63;-1:-1:-1;181:124:63;;;;;;-1:-1:-1;181:124:63;;;;;-1:-1:-1;181:124:63","linkReferences":{}},"deployedBytecode":{"object":"0x6080604090808252600480361015610015575f80fd5b5f3560e01c91826314887c5814610698575081635cd8b15e1461067b578163715018a6146106205781638da5cb5b146105f85781639b19251a14610485578163b42ba2a21461041a578163b572a96614610375578163b6caa11914610338578163cd108ef814610194578163f15df2e51461016e578163f2fde38b146100dd575063f9661602146100a4575f80fd5b346100d95760203660031901126100d9576020906100c86100c36106d1565b61073e565b90516001600160a01b039091168152f35b5f80fd5b82346100d95760203660031901126100d9576001600160a01b038235818116939192908490036100d95761010f610799565b8315610158575050600254826bffffffffffffffffffffffff60a01b821617600255167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3005b905f6024925191631e4fbdf760e01b8352820152fd5b82346100d9575f3660031901126100d95767ffffffffffffffff60209254169051908152f35b82346100d957806003193601126100d9576101ad6106d1565b906024359167ffffffffffffffff8084116100d957366023850112156100d95783850135918183116100d957602485019460248436920101116100d9576e5af43d82803e903d91602b57fd5bf36102038261073e565b915f54908487519160208301938452168782015260608082015261023d8161022f60808201898c61071e565b03601f1981018352826106e8565b51902091763d602d80600a3d3981f3363d3d373d3d3d363d7300000062ffffff8260881c16175f5260781b1760205260018060a01b0390603760095ff5169384156103285761028b85610836565b50835192857fb919910dcefbf753bfd926ab3b1d3f85d877190c3d01ba1bd585047b99b99f0b5f80a2853b156100d957836102dd5f93829363439fab9160e01b845260208b850152602484019161071e565b038183885af1801561031e576102f8575b6020848451908152f35b811161030b5760209350815283806102ee565b604184634e487b7160e01b5f525260245ffd5b83513d5f823e3d90fd5b83516330be1a3d60e21b81528690fd5b82346100d95760203660031901126100d95760209067ffffffffffffffff61035e6106d1565b165f526003825260ff815f20541690519015158152f35b82346100d95760203660031901126100d95761038f6106d1565b91610398610799565b67ffffffffffffffff8082541693169283101561040c57825f52600360205260ff825f2054166103fe5750815f5260036020525f20600160ff198254161790557ffc8245c2838846b295ae66fbe0d08e20c799b737c93b56f7b209df2e5fa2d4585f80a2005b905163f53de75f60e01b8152fd5b905163b968846160e01b8152fd5b82346100d95760203660031901126100d95781355f54811015610472575f80527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563015490516001600160a01b03909116815260209150f35b603283634e487b7160e01b5f525260245ffd5b9050346100d957602091826003193601126100d95781356001600160a01b0381811694918590036100d9576104b8610799565b82516202dd3160ec1b81529082828681895afa9182156105ee575f926105b6575b501630148015919061053a575b5061052d576104f4836107c5565b1561052057827feb73900b98b6a3e2b8b01708fe544760cf570d21e7fbe5225f24e48b5b2b432e5f80a2005b5163b73e95e160e01b8152fd5b5163340aafcd60e11b8152fd5b8251635d927f4560e11b815290915081818581885afa91821561031e575f92610577575b505067ffffffffffffffff80845416911614155f6104e6565b90809250813d83116105af575b61058e81836106e8565b810103126100d9575167ffffffffffffffff811681036100d9575f8061055e565b503d610584565b9091508281813d83116105e7575b6105ce81836106e8565b810103126100d9575181811681036100d957905f6104d9565b503d6105c4565b84513d5f823e3d90fd5b82346100d9575f3660031901126100d95760025490516001600160a01b039091168152602090f35b346100d9575f3660031901126100d957610638610799565b600280546001600160a01b031981169091555f906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b82346100d9575f3660031901126100d9576020905f549051908152f35b9150346100d95760203660031901126100d957356001600160a01b03811692908390036100d9576020925f52600183525f205415158152f35b6004359067ffffffffffffffff821682036100d957565b90601f8019910116810190811067ffffffffffffffff82111761070a57604052565b634e487b7160e01b5f52604160045260245ffd5b908060209392818452848401375f828201840152601f01601f1916010190565b67ffffffffffffffff166004548110156107855760045f527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b01546001600160a01b031690565b634e487b7160e01b5f52603260045260245ffd5b6002546001600160a01b031633036107ad57565b60405163118cdaa760e01b8152336004820152602490fd5b805f52600560205260405f2054155f1461083157600454600160401b81101561070a5760018101806004558110156107855781907f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b0155600454905f52600560205260405f2055600190565b505f90565b805f52600160205260405f2054155f14610831575f54600160401b81101561070a5760018101805f558110156107855781907f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e56301555f54905f52600160205260405f205560019056fea2646970667358221220377c7c8f4b9c9b6585fa533deadc519659538dd3b8b8fd22fffd3bbad02b228064736f6c63430008190033","sourceMap":"181:124:63:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;181:124:63;;;;;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;181:124:63;;;;;;;;;;;;;;;;;-1:-1:-1;;181:124:63;;;;-1:-1:-1;;;;;181:124:63;;;;;;;;;;;;;;1500:62:32;;:::i;:::-;2627:22;;2623:91;;181:124:63;;3004:6:32;181:124:63;;;;;;;;3004:6:32;181:124:63;;3052:40:32;181:124:63;3052:40:32;;181:124:63;2623:91:32;181:124:63;;;;;2672:31:32;;;;;;;;181:124:63;2672:31:32;181:124:63;;;;;;;-1:-1:-1;;181:124:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2364:565:36;2248:21:70;;;:::i;:::-;181:124:63;;;;;;;2299:40:70;181:124:63;2299:40:70;;181:124:63;;;;;;;;;;;;;2299:40:70;181:124:63;;;;;;;;:::i;:::-;2299:40:70;;;;;;;;;:::i;:::-;181:124:63;2289:51:70;;2364:565:36;;;;;;;;181:124:63;2364:565:36;;;;181:124:63;2364:565:36;181:124:63;;;;;2364:565:36;;;181:124:63;2364:565:36;181:124:63;2942:22:36;;;2938:86;;8409:50:61;;;:::i;:::-;;181:124:63;;1077:18:74;;;181:124:63;1077:18:74;;2382:33:70;;;;;181:124:63;;;;;;;;;2382:33:70;;181:124:63;2382:33:70;;;181:124:63;;;;;;:::i;:::-;2382:33:70;;;;;;;;;;;;181:124:63;;;;;;;;;2382:33:70;181:124:63;;;;;;;;;2382:33:70;;;;181:124:63;;;;;;;;;;;;2382:33:70;181:124:63;;;;;;;;;2938:86:36;181:124:63;;-1:-1:-1;;;2987:26:36;;181:124:63;;2987:26:36;181:124:63;;;;;;;-1:-1:-1;;181:124:63;;;;;;;;;:::i;:::-;;;;633:54:70;181:124:63;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;181:124:63;;;;;;:::i;:::-;1500:62:32;;;:::i;:::-;181:124:63;;;;;;;822:21:70;;;;818:72;;181:124:63;;;1946:11:70;181:124:63;;;;;;;;1942:76:70;;181:124:63;;;;1946:11:70;181:124:63;;;;2049:4:70;181:124:63;;;;;;;;2069:16:70;181:124:63;2069:16:70;;181:124:63;1942:76:70;181:124:63;;-1:-1:-1;;;1987:20:70;;;818:72;181:124:63;;-1:-1:-1;;;866:13:70;;;181:124:63;;;;;;;-1:-1:-1;;181:124:63;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;181:124:63;;;;;;;-1:-1:-1;181:124:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;181:124:63;;;;;;;;;;1500:62:32;;:::i;:::-;181:124:63;;-1:-1:-1;;;1476:34:70;;181:124:63;1476:34:70;181:124:63;1476:34:70;181:124:63;1476:34:70;;;;;;;;181:124:63;1476:34:70;;;181:124:63;-1:-1:-1;181:124:63;1522:4:70;1476:51;;;;;:102;;181:124:63;1472:163:70;;;8409:50:61;;;:::i;:::-;1648:49:70;1644:107;;1766:26;;181:124:63;1766:26:70;;181:124:63;1644:107:70;181:124:63;-1:-1:-1;;;1720:20:70;;;1472:163;181:124:63;-1:-1:-1;;;1601:23:70;;;1476:102;181:124:63;;-1:-1:-1;;;1531:31:70;;181:124:63;;-1:-1:-1;181:124:63;;1531:31:70;181:124:63;1531:31:70;;;;;;;;181:124:63;1531:31:70;;;1476:102;181:124:63;;;;;;;;;1531:47:70;;1476:102;;;1531:31;;;;;;;;;;;;;;;;:::i;:::-;;;181:124:63;;;;;;;;;;;;1531:31:70;;;;;;;;;1476:34;;;;;;;;;;;;;;;;;:::i;:::-;;;181:124:63;;;;;;;;;;;;1476:34:70;;;;;;;;;;181:124:63;;;;;;;;;;;;;;;;-1:-1:-1;;181:124:63;;;;1710:6:32;181:124:63;;;-1:-1:-1;;;;;181:124:63;;;;;;;;;;;;;;-1:-1:-1;;181:124:63;;;;1500:62:32;;:::i;:::-;3004:6;181:124:63;;-1:-1:-1;;;;;;181:124:63;;;;;;;-1:-1:-1;;;;;181:124:63;3052:40:32;181:124:63;;3052:40:32;181:124:63;;;;;;;;-1:-1:-1;;181:124:63;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;181:124:63;;;;;-1:-1:-1;;;;;181:124:63;;;;;;;;;;;;;4360:14:61;181:124:63;;;;;4360:26:61;;181:124:63;;;;;;;;;;;;;;:::o;:::-;;;2299:40:70;;181:124:63;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;181:124:63;;;;;;;;-1:-1:-1;;181:124:63;;;;:::o;1192:143:70:-;181:124:63;;1291:27:70;181:124:63;;;;;;1291:27:70;-1:-1:-1;181:124:63;;;;-1:-1:-1;;;;;181:124:63;;1192:143:70:o;181:124:63:-;;;;-1:-1:-1;181:124:63;;1291:27:70;181:124:63;;-1:-1:-1;181:124:63;1796:162:32;1710:6;181:124:63;-1:-1:-1;;;;;181:124:63;735:10:47;1855:23:32;1851:101;;1796:162::o;1851:101::-;181:124:63;;-1:-1:-1;;;1901:40:32;;735:10:47;1901:40:32;;;181:124:63;;;1901:40:32;2241:406:61;181:124:63;-1:-1:-1;181:124:63;4360:14:61;181:124:63;;;-1:-1:-1;181:124:63;;4360:26:61;2320:321;181:124:63;;;;;-1:-1:-1;;;181:124:63;;;;;4360:14:61;181:124:63;;;;;;;;;;;;;;;;;;-1:-1:-1;181:124:63;4360:14:61;181:124:63;;;-1:-1:-1;181:124:63;;4360:14:61;2576:11;:::o;2320:321::-;2618:12;-1:-1:-1;2618:12:61;:::o;2241:406::-;181:124:63;;;4360:14:61;181:124:63;;;;;;4360:26:61;2320:321;181:124:63;;;;;-1:-1:-1;;;181:124:63;;;;;4360:14:61;181:124:63;;;;;;;;;;;;;;;;;;;;4360:14:61;181:124:63;;;;;;4360:14:61;2576:11;:::o","linkReferences":{}},"methodIdentifiers":{"blacklist(uint64)":"b572a966","blacklisted(uint64)":"b6caa119","create(uint64,bytes)":"cd108ef8","entity(uint256)":"b42ba2a2","implementation(uint64)":"f9661602","isEntity(address)":"14887c58","owner()":"8da5cb5b","renounceOwnership()":"715018a6","totalEntities()":"5cd8b15e","totalTypes()":"f15df2e5","transferOwnership(address)":"f2fde38b","whitelist(address)":"9b19251a"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner_\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"AlreadyBlacklisted\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AlreadyWhitelisted\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ERC1167FailedCreateClone\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"EntityNotExist\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidImplementation\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidType\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"entity\",\"type\":\"address\"}],\"name\":\"AddEntity\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"type_\",\"type\":\"uint64\"}],\"name\":\"Blacklist\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"Whitelist\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"type_\",\"type\":\"uint64\"}],\"name\":\"blacklist\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"type_\",\"type\":\"uint64\"}],\"name\":\"blacklisted\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"value\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"type_\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"create\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"entity_\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"entity\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"type_\",\"type\":\"uint64\"}],\"name\":\"implementation\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"entity_\",\"type\":\"address\"}],\"name\":\"isEntity\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalEntities\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalTypes\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"implementation_\",\"type\":\"address\"}],\"name\":\"whitelist\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"ERC1167FailedCreateClone()\":[{\"details\":\"A clone instance deployment failed.\"}],\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}]},\"events\":{\"AddEntity(address)\":{\"params\":{\"entity\":\"address of the added entity\"}},\"Blacklist(uint64)\":{\"details\":\"The given type is still deployable.\",\"params\":{\"type_\":\"type that was blacklisted\"}},\"Whitelist(address)\":{\"params\":{\"implementation\":\"address of the new implementation\"}}},\"kind\":\"dev\",\"methods\":{\"blacklist(uint64)\":{\"details\":\"The given type will still be deployable.\",\"params\":{\"type_\":\"type to blacklist\"}},\"create(uint64,bytes)\":{\"details\":\"CREATE2 salt is constructed from the given parameters.\",\"params\":{\"data\":\"initial data for the entity creation\",\"type_\":\"type's implementation to use\"},\"returns\":{\"entity_\":\"address of the entity\"}},\"entity(uint256)\":{\"params\":{\"index\":\"index of the entity to get\"},\"returns\":{\"_0\":\"address of the entity\"}},\"implementation(uint64)\":{\"params\":{\"type_\":\"position to get the implementation at\"},\"returns\":{\"_0\":\"address of the implementation\"}},\"isEntity(address)\":{\"params\":{\"account\":\"address to check\"},\"returns\":{\"_0\":\"if the given address is an entity\"}},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"totalEntities()\":{\"returns\":{\"_0\":\"total number of entities added\"}},\"totalTypes()\":{\"returns\":{\"_0\":\"total number of types\"}},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"},\"whitelist(address)\":{\"params\":{\"implementation\":\"address of the new implementation\"}}},\"version\":1},\"userdoc\":{\"events\":{\"AddEntity(address)\":{\"notice\":\"Emitted when an entity is added.\"},\"Blacklist(uint64)\":{\"notice\":\"Emitted when a type is blacklisted (e.g., in case of invalid implementation).\"},\"Whitelist(address)\":{\"notice\":\"Emitted when a new type is whitelisted.\"}},\"kind\":\"user\",\"methods\":{\"blacklist(uint64)\":{\"notice\":\"Blacklist a type of entity.\"},\"blacklisted(uint64)\":{\"notice\":\"Get if a type is blacklisted (e.g., in case of invalid implementation).\"},\"create(uint64,bytes)\":{\"notice\":\"Create a new entity at the factory.\"},\"entity(uint256)\":{\"notice\":\"Get an entity given its index.\"},\"implementation(uint64)\":{\"notice\":\"Get the implementation for a given type.\"},\"isEntity(address)\":{\"notice\":\"Get if a given address is an entity.\"},\"totalEntities()\":{\"notice\":\"Get a total number of entities.\"},\"totalTypes()\":{\"notice\":\"Get the total number of whitelisted types.\"},\"whitelist(address)\":{\"notice\":\"Whitelist a new type of entity.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/contracts/DelegatorFactory.sol\":\"DelegatorFactory\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"lib/openzeppelin-contracts/contracts/proxy/Clones.sol\":{\"keccak256\":\"0xd18408af8a91bedb3d56343eeb9b30eb852e6dea93a5e2d5c6db9ca4cb905155\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://061475b7302a732dc598907790f407417551c2b13e89daa57b3698489ef5484b\",\"dweb:/ipfs/QmdX5qmk3VSniSErFuD4aVawQxUi2MuUbP7spPcHddPfcX\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0x86c1470cbfd878491e5de030072b647352d36bd27122cffb928970b1945282aa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ad85dd393ee0a1917c57046abc5155f51f77844b2c6a42c05c1b8dd26d6ff3c1\",\"dweb:/ipfs/QmNqYc8To2NdnpP6E1tGz7t6A7beuENde5yovwov5pW1fA\"]},\"src/contracts/DelegatorFactory.sol\":{\"keccak256\":\"0x3c3fb62c441302f4f75d94703779f5c4bb755c06f310b4c923dbf24d6e0adda9\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://597fa8be7179d8a555bf942c1dea0504273a1d34f6ac4c206fc2e816da143e68\",\"dweb:/ipfs/Qmf54DKNYXC7fTMcAFABw68RC6ZFenVgyAPGhbPTf6s5TR\"]},\"src/contracts/common/Factory.sol\":{\"keccak256\":\"0x41764643e6a2a3d80d694a3efee91f50a2fd084fb2bcd13566259443840e6369\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://fefc1e2a2189275388826f4f82ca421ca79c2866d3ef39dc2c7df46fe7cbf7c9\",\"dweb:/ipfs/QmSJ4VGmgpYUv5ni4ZYoSV4qMuZrk5DLjyB3Vv9NbFgeNZ\"]},\"src/contracts/common/Registry.sol\":{\"keccak256\":\"0x4a4004836d920953a8ec6e223de9a330f43acf7a5b93c6b8b3e4a95e0f129889\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://e8bdda207f3852c683a2b481602239a914f7e26bcd042ade618e263a43b67652\",\"dweb:/ipfs/Qmb8GZykJWxZcfwNp3SqhFizDFydFuV6LXgemV3vnWyLyu\"]},\"src/interfaces/IDelegatorFactory.sol\":{\"keccak256\":\"0x7850453237ca93b301393506d2489a38830a60be0c29f39a4a1aee3508d836e6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8f418702b883c90e046af92d5654a25849baf79b61c11401ad603b861fed7b80\",\"dweb:/ipfs/Qmdju1XFJXx3uJidzoS7srcoSnzT8jUoPAmGEdbceYgB7j\"]},\"src/interfaces/common/IEntity.sol\":{\"keccak256\":\"0x8ef4b63d6da63489778ccd5f8d13ebdd527dd4b62730b2c616df5af7474d2d21\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a8d69576a9219d85c50816a18ad53a4d53cfcb27ed38b8cccc808dc2734b71b\",\"dweb:/ipfs/QmYVN3P4Q4REvBWJ97TbAcaxm3uyB2anV6NSGa6ZtSwcEv\"]},\"src/interfaces/common/IFactory.sol\":{\"keccak256\":\"0xe835ebda85d181b70874f6eb53f2a892aa3223d23efe247060da9b51d2b8e969\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://48b3dfb5f0491d90efbc8ed498b45358260ebac6e8f2aa0106b8b8fabdc988cb\",\"dweb:/ipfs/QmWnnCs3xiHeUvYfUWMJTSFZWc34bSYn9Zpm7f7syra3TA\"]},\"src/interfaces/common/IRegistry.sol\":{\"keccak256\":\"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014\",\"dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.25+commit.b61c2a91"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"owner_","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"AlreadyBlacklisted"},{"inputs":[],"type":"error","name":"AlreadyWhitelisted"},{"inputs":[],"type":"error","name":"ERC1167FailedCreateClone"},{"inputs":[],"type":"error","name":"EntityNotExist"},{"inputs":[],"type":"error","name":"InvalidImplementation"},{"inputs":[],"type":"error","name":"InvalidType"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"OwnableInvalidOwner"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"OwnableUnauthorizedAccount"},{"inputs":[{"internalType":"address","name":"entity","type":"address","indexed":true}],"type":"event","name":"AddEntity","anonymous":false},{"inputs":[{"internalType":"uint64","name":"type_","type":"uint64","indexed":true}],"type":"event","name":"Blacklist","anonymous":false},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"address","name":"implementation","type":"address","indexed":true}],"type":"event","name":"Whitelist","anonymous":false},{"inputs":[{"internalType":"uint64","name":"type_","type":"uint64"}],"stateMutability":"nonpayable","type":"function","name":"blacklist"},{"inputs":[{"internalType":"uint64","name":"type_","type":"uint64"}],"stateMutability":"view","type":"function","name":"blacklisted","outputs":[{"internalType":"bool","name":"value","type":"bool"}]},{"inputs":[{"internalType":"uint64","name":"type_","type":"uint64"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"create","outputs":[{"internalType":"address","name":"entity_","type":"address"}]},{"inputs":[{"internalType":"uint256","name":"index","type":"uint256"}],"stateMutability":"view","type":"function","name":"entity","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"uint64","name":"type_","type":"uint64"}],"stateMutability":"view","type":"function","name":"implementation","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"entity_","type":"address"}],"stateMutability":"view","type":"function","name":"isEntity","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[],"stateMutability":"view","type":"function","name":"totalEntities","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"totalTypes","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"},{"inputs":[{"internalType":"address","name":"implementation_","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"whitelist"}],"devdoc":{"kind":"dev","methods":{"blacklist(uint64)":{"details":"The given type will still be deployable.","params":{"type_":"type to blacklist"}},"create(uint64,bytes)":{"details":"CREATE2 salt is constructed from the given parameters.","params":{"data":"initial data for the entity creation","type_":"type's implementation to use"},"returns":{"entity_":"address of the entity"}},"entity(uint256)":{"params":{"index":"index of the entity to get"},"returns":{"_0":"address of the entity"}},"implementation(uint64)":{"params":{"type_":"position to get the implementation at"},"returns":{"_0":"address of the implementation"}},"isEntity(address)":{"params":{"account":"address to check"},"returns":{"_0":"if the given address is an entity"}},"owner()":{"details":"Returns the address of the current owner."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner."},"totalEntities()":{"returns":{"_0":"total number of entities added"}},"totalTypes()":{"returns":{"_0":"total number of types"}},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."},"whitelist(address)":{"params":{"implementation":"address of the new implementation"}}},"version":1},"userdoc":{"kind":"user","methods":{"blacklist(uint64)":{"notice":"Blacklist a type of entity."},"blacklisted(uint64)":{"notice":"Get if a type is blacklisted (e.g., in case of invalid implementation)."},"create(uint64,bytes)":{"notice":"Create a new entity at the factory."},"entity(uint256)":{"notice":"Get an entity given its index."},"implementation(uint64)":{"notice":"Get the implementation for a given type."},"isEntity(address)":{"notice":"Get if a given address is an entity."},"totalEntities()":{"notice":"Get a total number of entities."},"totalTypes()":{"notice":"Get the total number of whitelisted types."},"whitelist(address)":{"notice":"Whitelist a new type of entity."}},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/contracts/DelegatorFactory.sol":"DelegatorFactory"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts/contracts/access/Ownable.sol":{"keccak256":"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb","urls":["bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6","dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/Clones.sol":{"keccak256":"0xd18408af8a91bedb3d56343eeb9b30eb852e6dea93a5e2d5c6db9ca4cb905155","urls":["bzz-raw://061475b7302a732dc598907790f407417551c2b13e89daa57b3698489ef5484b","dweb:/ipfs/QmdX5qmk3VSniSErFuD4aVawQxUi2MuUbP7spPcHddPfcX"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0x86c1470cbfd878491e5de030072b647352d36bd27122cffb928970b1945282aa","urls":["bzz-raw://ad85dd393ee0a1917c57046abc5155f51f77844b2c6a42c05c1b8dd26d6ff3c1","dweb:/ipfs/QmNqYc8To2NdnpP6E1tGz7t6A7beuENde5yovwov5pW1fA"],"license":"MIT"},"src/contracts/DelegatorFactory.sol":{"keccak256":"0x3c3fb62c441302f4f75d94703779f5c4bb755c06f310b4c923dbf24d6e0adda9","urls":["bzz-raw://597fa8be7179d8a555bf942c1dea0504273a1d34f6ac4c206fc2e816da143e68","dweb:/ipfs/Qmf54DKNYXC7fTMcAFABw68RC6ZFenVgyAPGhbPTf6s5TR"],"license":"BUSL-1.1"},"src/contracts/common/Factory.sol":{"keccak256":"0x41764643e6a2a3d80d694a3efee91f50a2fd084fb2bcd13566259443840e6369","urls":["bzz-raw://fefc1e2a2189275388826f4f82ca421ca79c2866d3ef39dc2c7df46fe7cbf7c9","dweb:/ipfs/QmSJ4VGmgpYUv5ni4ZYoSV4qMuZrk5DLjyB3Vv9NbFgeNZ"],"license":"BUSL-1.1"},"src/contracts/common/Registry.sol":{"keccak256":"0x4a4004836d920953a8ec6e223de9a330f43acf7a5b93c6b8b3e4a95e0f129889","urls":["bzz-raw://e8bdda207f3852c683a2b481602239a914f7e26bcd042ade618e263a43b67652","dweb:/ipfs/Qmb8GZykJWxZcfwNp3SqhFizDFydFuV6LXgemV3vnWyLyu"],"license":"BUSL-1.1"},"src/interfaces/IDelegatorFactory.sol":{"keccak256":"0x7850453237ca93b301393506d2489a38830a60be0c29f39a4a1aee3508d836e6","urls":["bzz-raw://8f418702b883c90e046af92d5654a25849baf79b61c11401ad603b861fed7b80","dweb:/ipfs/Qmdju1XFJXx3uJidzoS7srcoSnzT8jUoPAmGEdbceYgB7j"],"license":"MIT"},"src/interfaces/common/IEntity.sol":{"keccak256":"0x8ef4b63d6da63489778ccd5f8d13ebdd527dd4b62730b2c616df5af7474d2d21","urls":["bzz-raw://5a8d69576a9219d85c50816a18ad53a4d53cfcb27ed38b8cccc808dc2734b71b","dweb:/ipfs/QmYVN3P4Q4REvBWJ97TbAcaxm3uyB2anV6NSGa6ZtSwcEv"],"license":"MIT"},"src/interfaces/common/IFactory.sol":{"keccak256":"0xe835ebda85d181b70874f6eb53f2a892aa3223d23efe247060da9b51d2b8e969","urls":["bzz-raw://48b3dfb5f0491d90efbc8ed498b45358260ebac6e8f2aa0106b8b8fabdc988cb","dweb:/ipfs/QmWnnCs3xiHeUvYfUWMJTSFZWc34bSYn9Zpm7f7syra3TA"],"license":"MIT"},"src/interfaces/common/IRegistry.sol":{"keccak256":"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb","urls":["bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014","dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK"],"license":"MIT"}},"version":1},"id":63} \ No newline at end of file diff --git a/out/DelegatorHints.sol/BaseDelegatorHints.json b/out/DelegatorHints.sol/BaseDelegatorHints.json index fa4ac467..043ebcef 100644 --- a/out/DelegatorHints.sol/BaseDelegatorHints.json +++ b/out/DelegatorHints.sol/BaseDelegatorHints.json @@ -1 +1 @@ -{"abi":[{"type":"constructor","inputs":[{"name":"optInServiceHints","type":"address","internalType":"address"},{"name":"vaultHints_","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"DEFAULT_ADMIN_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"FACTORY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"FULL_RESTAKE_DELEGATOR_HINTS","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"HOOK_GAS_LIMIT","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"HOOK_RESERVE","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"HOOK_SET_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"NETWORK_REGISTRY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"NETWORK_RESTAKE_DELEGATOR_HINTS","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"OPERATOR_NETWORK_OPT_IN_SERVICE","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"OPERATOR_VAULT_OPT_IN_SERVICE","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"OPT_IN_SERVICE_HINTS","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"TYPE","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"VAULT_FACTORY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"VERSION","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"pure"},{"type":"function","name":"getRoleAdmin","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"grantRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"hasRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"hook","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"initialize","inputs":[{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"maxNetworkLimit","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"value","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"onSlash","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"captureTimestamp","type":"uint48","internalType":"uint48"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"renounceRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"callerConfirmation","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"revokeRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setHook","inputs":[{"name":"hook_","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setMaxNetworkLimit","inputs":[{"name":"identifier","type":"uint96","internalType":"uint96"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"stake","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"stakeAt","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"timestamp","type":"uint48","internalType":"uint48"},{"name":"hints","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"stakeBaseHints","inputs":[{"name":"delegator","type":"address","internalType":"address"},{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"timestamp","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"stakeHints","inputs":[{"name":"delegator","type":"address","internalType":"address"},{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"timestamp","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"staticDelegateCall","inputs":[{"name":"target","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"vault","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"OnSlash","inputs":[{"name":"subnetwork","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"captureTimestamp","type":"uint48","indexed":false,"internalType":"uint48"}],"anonymous":false},{"type":"event","name":"RoleAdminChanged","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"previousAdminRole","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"newAdminRole","type":"bytes32","indexed":true,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"RoleGranted","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"sender","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"RoleRevoked","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"sender","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"SetHook","inputs":[{"name":"hook","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"SetMaxNetworkLimit","inputs":[{"name":"subnetwork","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"error","name":"AccessControlBadConfirmation","inputs":[]},{"type":"error","name":"AccessControlUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"neededRole","type":"bytes32","internalType":"bytes32"}]},{"type":"error","name":"AlreadySet","inputs":[]},{"type":"error","name":"ExternalCall","inputs":[]},{"type":"error","name":"InsufficientHookGas","inputs":[]},{"type":"error","name":"InvalidInitialization","inputs":[]},{"type":"error","name":"NotInitialized","inputs":[]},{"type":"error","name":"NotInitializing","inputs":[]},{"type":"error","name":"NotNetwork","inputs":[]},{"type":"error","name":"NotSlasher","inputs":[]},{"type":"error","name":"NotVault","inputs":[]},{"type":"error","name":"ReentrancyGuardReentrantCall","inputs":[]}],"bytecode":{"object":"0x6101c03461027157618ce76001600160401b03601f38839003908101601f191684019082821185831017610202578085916040958694855283398101031261027157610056602061004f85610275565b9401610275565b90306080527ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805460ff81861c166102605780838080931603610220575b5050505f60a0525f60c0525f60e052610100935f8552610120935f8552610140905f825261016092808452815161387d8082019082821088831117610202578389849361010093611ef286393081526001600160a01b0391821660208201529116604082015260600190565b03905ff09485156102165760018060a01b0396876101809716875283519261357891828501938585109085111761020257849361015c9361576f86393081526001600160a01b0391821660208201529116604082015260600190565b03905ff09485156101f8576101a0951685525194611c68968761028a883960805187505060a05187610623015260c05187610b5f015260e05187818161048f0152610b980152518681816102c70152611a4b01525185818161030b015261163d01525184818161034f01526116bb015251838181610a3d0152611190015251828181610283015261148f015251818181610dfa01526115510152f35b50513d5f823e3d90fd5b634e487b7160e01b5f52604160045260245ffd5b82513d5f823e3d90fd5b6001600160401b03191617905582518181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a15f8181610094565b845163f92ee8a960e01b8152600490fd5b5f80fd5b51906001600160a01b03821682036102715756fe60806040526004361015610011575f80fd5b5f3560e01c806301ffc9a714610214578063075db0361461020f578063103f29071461020a578063128e5d82146102055780631a80e500146102005780631bf10a3e146101fb57806323f752d5146101f6578063248a9ca3146101f157806325dc9708146101ec5780632dd31000146101e75780632f2ff15d146101e257806336568abe146101dd5780633dfd3873146101d8578063439fab91146101d3578063557cab44146101ce5780636679191e146101c95780637f5a7c7b146101c457806391d14854146101bf5780639b656b22146101ba5780639f86fd85146101b5578063a217fddf146101b0578063bb24fe8a146101ab578063c0cd7c3e146101a6578063d15b740e146101a1578063d547741f1461019c578063e02f693714610197578063e102831a14610192578063e49561ee1461018d578063fbfa77cf14610188578063fd4d447c14610183578063ff54740f1461017e5763ffa1ad7414610179575f80fd5b61108a565b61106d565b61103b565b611014565b610e29565b610de5565b610d02565b610bf1565b610bc7565b610b83565b610b40565b610b26565b610a6c565b610a28565b6109ca565b6109a2565b610968565b61094c565b61080f565b6106e9565b61069e565b610652565b61060e565b6105f1565b6105b8565b61043c565b610407565b61033a565b6102f6565b6102b2565b61026e565b3461026a57602036600319011261026a5760043563ffffffff60e01b811680910361026a57602090637965db0b60e01b8114908115610259575b506040519015158152f35b6301ffc9a760e01b1490505f61024e565b5f80fd5b3461026a575f36600319011261026a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461026a575f36600319011261026a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461026a575f36600319011261026a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461026a575f36600319011261026a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b6001600160a01b0381160361026a57565b6064359065ffffffffffff8216820361026a57565b608090600319011261026a576004356103bc8161037e565b90602435906044356103cd8161037e565b9060643565ffffffffffff8116810361026a5790565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b3461026a5761043861042461041b366103a4565b92919091611168565b6040519182916020835260208301906103e3565b0390f35b3461026a57604036600319011261026a576004356001600160601b038116810361026a576024359061046c611732565b6040516302910f8b60e31b81523360048201526020816024816001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165afa9081156105b3575f91610584575b5015610572576001600160601b03166bffffffffffffffffffffffff193360601b161790806104f6835f52600260205260405f2090565b541461056057610545817fc67e7929681aa1bccd63f52b3799bf5805f3009f197db6fdf584b14f7fbf608c92610534855f52600260205260405f2090565b556040519081529081906020820190565b0390a261055e60015f80516020611bf383398151915255565b005b60405163a741a04560e01b8152600490fd5b6040516323d53b9760e21b8152600490fd5b6105a6915060203d6020116105ac575b61059e8183610c71565b8101906113b9565b5f6104bf565b503d610594565b6110bd565b3461026a57602036600319011261026a576004355f525f80516020611bd38339815191526020526020600160405f200154604051908152f35b3461026a57610438610424610605366103a4565b929190916113f0565b3461026a575f36600319011261026a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461026a57604036600319011261026a5761055e6024356004356106758261037e565b805f525f80516020611bd3833981519152602052610699600160405f200154611761565b611918565b3461026a57604036600319011261026a576024356106bb8161037e565b336001600160a01b038216036106d75761055e9060043561194e565b60405163334bd91960e11b8152600490fd5b3461026a57602036600319011261026a576004356107068161037e565b61070e611732565b335f9081527f9ebbcbe0d2961d3fbe56ca6f679bc753bd848d3e6bb3eaf9041c51b286881d2c60205260409020547fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c9060ff16156107c457506001546001600160a01b039182169181168214610560576001600160a01b03191681176001557f5bbb1d3ebb6a3ad2a0f17ff35e579a83af60604d1d3c2a4c83c62adecadf666d5f80a260015f80516020611bf383398151915255005b6044906040519063e2517d3f60e01b82523360048301526024820152fd5b9181601f8401121561026a578235916001600160401b03831161026a576020838186019501011161026a57565b3461026a57602036600319011261026a576001600160401b0360043581811161026a576108409036906004016107e2565b5f80516020611c13833981519152549260ff8460401c1615931680159081610944575b600114908161093a575b159081610931575b5061091f575f80516020611c13833981519152805467ffffffffffffffff191660011790556108a891836108f657611a16565b6108ae57005b5f80516020611c13833981519152805460ff60401b19169055604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a1005b5f80516020611c13833981519152805460ff60401b191668010000000000000000179055611a16565b60405163f92ee8a960e01b8152600490fd5b9050155f610875565b303b15915061086d565b849150610863565b3461026a575f36600319011261026a576020604051614e208152f35b3461026a575f36600319011261026a5760206040517fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c8152f35b3461026a575f36600319011261026a576001546040516001600160a01b039091168152602090f35b3461026a57604036600319011261026a57602060ff610a1c6024356109ee8161037e565b6004355f525f80516020611bd3833981519152845260405f209060018060a01b03165f5260205260405f2090565b54166040519015158152f35b3461026a575f36600319011261026a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461026a5760408060031936011261026a57600435610a8a8161037e565b602435906001600160401b03821161026a575f8091610ab0610b149436906004016107e2565b908187519283928337810184815203915af43d15610b1c57610b063d610ad581610ca1565b90610ae286519283610c71565b81523d5f602083013e5b8451948593151560208501528084015260608301906103e3565b03601f198101835282610c71565b805190602001fd5b610b066060610aec565b3461026a575f36600319011261026a5760206040515f8152f35b3461026a575f36600319011261026a5760206040516001600160401b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461026a575f36600319011261026a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461026a57602036600319011261026a576004355f526002602052602060405f2054604051908152f35b3461026a57604036600319011261026a5761055e602435600435610c148261037e565b805f525f80516020611bd3833981519152602052610c38600160405f200154611761565b61194e565b634e487b7160e01b5f52604160045260245ffd5b604081019081106001600160401b03821117610c6c57604052565b610c3d565b90601f801991011681019081106001600160401b03821117610c6c57604052565b60405190610c9f82610c51565b565b6001600160401b038111610c6c57601f01601f191660200190565b81601f8201121561026a57803590610cd382610ca1565b92610ce16040519485610c71565b8284526020838301011161026a57815f926020809301838601378301015290565b3461026a5760808060031936011261026a57610d1f60243561037e565b60443565ffffffffffff81160361026a576001600160401b0360643581811161026a57610d50903690600401610cbc565b5060606020604051610d6181610c51565b828152015260605180610d79575b60206040515f8152f35b8281016020821261026a5783519183831161026a5782604091031261026a5760405193610da585610c51565b8281015184811161026a578282610dbe928601016110c8565b855260a083015193841161026a57602093610dda9301016110c8565b9101525f8080610d6f565b3461026a575f36600319011261026a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461026a5760a036600319011261026a57602435600435610e498261037e565b60443591610e5561038f565b90608435906001600160401b03821161026a57610e7760049236908401610cbc565b610e7f611732565b5f54602090610ea490610e98906001600160a01b031681565b6001600160a01b031690565b60405163b134427160e01b815294859182905afa9283156105b3575f93610fe3575b506001600160a01b039283163303610fd1576001546001600160a01b0316838116610f46575b50506040805195865265ffffffffffff909316602086015216927f741a5de99085c0d660f3e4192217b0ffb0ea4e35a0480de48e857a4bc3ee36ed91819081015b0390a361055e60015f80516020611bf383398151915255565b909360405194610f7d86610f6f602082019363724ab0f760e11b8552858c898d602487016115d0565b03601f198101885287610c71565b62042e305a10610fbf575f610f2d938192827f741a5de99085c0d660f3e4192217b0ffb0ea4e35a0480de48e857a4bc3ee36ed9951926203d090f15093610eec565b604051638072475160e01b8152600490fd5b60405163dabc4ad960e01b8152600490fd5b61100691935060203d60201161100d575b610ffe8183610c71565b8101906110a5565b915f610ec6565b503d610ff4565b3461026a575f36600319011261026a575f546040516001600160a01b039091168152602090f35b3461026a57604036600319011261026a57602061106560243561105d8161037e565b600435611608565b604051908152f35b3461026a575f36600319011261026a5760206040516203d0908152f35b3461026a575f36600319011261026a57602060405160018152f35b9081602091031261026a57516110ba8161037e565b90565b6040513d5f823e3d90fd5b81601f8201121561026a578051906110df82610ca1565b926110ed6040519485610c71565b8284526020838301011161026a57815f9260208093018386015e8301015290565b9060208282031261026a5781516001600160401b03811161026a576110ba92016110c8565b906110ba91602081526020611153835160408385015260608401906103e3565b920151906040601f19828503019101526103e3565b604080516309472ec160e11b8152606096956001600160a01b039384169591946020949192917f0000000000000000000000000000000000000000000000000000000000000000169085876004818b5afa9687156105b3575f9761139a575b50845163fbfa77cf60e01b81529686886004818c5afa80156105b357855f9161123b9a839161137d575b508851636a531c3160e11b8082526001600160a01b039586166004830152858916602483015294909116604482015265ffffffffffff909116606482015298899081906084820190565b0381865afa9788156105b3575f98611358575b508686979899600496975196878092621a80e560e81b82525afa9485156105b3575f95611335575b5086519081526001600160a01b03948516600482015293909216602484015260609190911c604483015265ffffffffffff9092166064820152905f9082908180608481015b03915afa9081156105b3575f91611313575b50835115801590611309575b6112e35750505050565b6110ba9394955090610b06916112f7610c92565b95865283860152519384928301611133565b50805115156112d9565b61132f91503d805f833e6113278183610c71565b81019061110e565b5f6112cd565b5f95506113516112bb918a3d8c1161100d57610ffe8183610c71565b9550611276565b8798509661137360049697983d805f833e6113278183610c71565b989796955061124e565b61139491508a3d8c1161100d57610ffe8183610c71565b5f6111f1565b6113b2919750863d881161100d57610ffe8183610c71565b955f6111c7565b9081602091031261026a5751801515810361026a5790565b9081602091031261026a57516001600160401b038116810361026a5790565b604051635d927f4560e11b8082526060969594936001600160a01b03939092909160209190858416908383600481855afa9283156105b3575f936115b1575b506001600160401b039283166114d65750506040516304bb92e160e31b81526001600160a01b0393841660048201526024810194909452505092909216604483015265ffffffffffff9290921660648201529192505f90829060849082907f0000000000000000000000000000000000000000000000000000000000000000165afa9081156105b3575f916114c2575090565b6110ba91503d805f833e6113278183610c71565b839060046040518094819382525afa9081156105b3576001935f92611584575b50501614611505575050505050565b6040516304bb92e160e31b81526001600160a01b039182166004820152602481019290925292909216604483015265ffffffffffff9290921660648201529192505f90829060849082907f0000000000000000000000000000000000000000000000000000000000000000165afa9081156105b3575f916114c2575090565b6115a39250803d106115aa575b61159b8183610c71565b8101906113d1565b5f806114f6565b503d611591565b6115c9919350843d86116115aa5761159b8183610c71565b915f61142f565b919360a0936110ba969565ffffffffffff938552600180871b03166020850152604084015216606082015281608082015201906103e3565b5f546040516308834cb560e21b8082526001600160a01b038581166004840152928316602483015293602092909183816044817f000000000000000000000000000000000000000000000000000000000000000086165afa9081156105b3575f91611715575b501593841561168a575b505050509050611686575f90565b5f90565b6040519586526001600160a01b0392909216600486015260609190911c6024850152909291508290829060449082907f0000000000000000000000000000000000000000000000000000000000000000165afa9182156105b3575f926116f8575b505015805f808080611678565b61170e9250803d106105ac5761059e8183610c71565b5f806116eb565b61172c9150843d86116105ac5761059e8183610c71565b5f61166e565b5f80516020611bf3833981519152600281541461174f5760029055565b604051633ee5aeb560e01b8152600490fd5b5f8181525f80516020611bd38339815191526020908152604080832033845290915290205460ff16156107c45750565b6001600160a01b0381165f9081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d60205260409020545f80516020611bd38339815191529060ff1661183c575f808052602091825260408082206001600160a01b038516835290925220805460ff1916600117905533906001600160a01b03165f7f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d8180a4600190565b50505f90565b6001600160a01b0381165f9081527f9ebbcbe0d2961d3fbe56ca6f679bc753bd848d3e6bb3eaf9041c51b286881d2c602052604090207fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c905f80516020611bd38339815191529060ff905b5416611911575f828152602091825260408082206001600160a01b038616835290925220805460ff1916600117905533916001600160a01b0316907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d5f80a4600190565b5050505f90565b5f8181525f80516020611bd3833981519152602081815260408084206001600160a01b038716855290915290912060ff906118ad565b5f8181525f80516020611bd3833981519152602081815260408084206001600160a01b03871685529091529091205460ff1615611911575f828152602091825260408082206001600160a01b038616835290925220805460ff1916905533916001600160a01b0316907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b5f80a4600190565b91909160408184031261026a5780356119f88161037e565b9260208201356001600160401b03811161026a576110ba9201610cbc565b611a22918101906119e0565b506040516302910f8b60e31b81526001600160a01b0391821660048201819052906020816024817f000000000000000000000000000000000000000000000000000000000000000087165afa9081156105b3575f91611b34575b5015611b2257611aa990611a8e611b53565b60018060a01b03166001600160601b0360a01b5f5416175f55565b611afc6040611ab6611b76565b6020810151600180546001600160a01b0319166001600160a01b0390921691909117905580516001600160a01b0316848116611b12575b5001516001600160a01b031690565b908116611b065750565b611b0f90611842565b50565b611b1b90611791565b505f611aed565b6040516362df054560e01b8152600490fd5b611b4d915060203d6020116105ac5761059e8183610c71565b5f611a7c565b611b5b611ba4565b611b63611ba4565b60015f80516020611bf383398151915255565b60405190606082018281106001600160401b03821117610c6c576040525f6040838281528260208201520152565b60ff5f80516020611c138339815191525460401c1615611bc057565b604051631afcd79f60e31b8152600490fdfe02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268009b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a264697066735822122041486f336ebdaac65e19ef0126b717f646b1c1410340c7bde35e3c51d12dd2d964736f6c634300081900336101c0346101cf57601f61387d38819003918201601f19168301916001600160401b0391828411858510176101d35781606092869260409687528339810103126101cf5761004c836101e7565b926100648361005d602084016101e7565b92016101e7565b91306080527ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a009081549060ff82871c166101be57808083160361017a575b5050505f60a0525f60c0525f60e052610100935f8552610120935f8552610140905f82526101609283526101809384526101a0948552519461368196876101fc88396080518781816105a001528181610fd70152611629015260a051876109e9015260c051876112ac015260e05187818161084b01526112e5015251868181610512015261298501525185818161055601528181611e330152611f3b0152518481816107c901528181611d9a0152611fb9015251838181610e95015261194d015251828181610d9701526119ee015251816110490152f35b6001600160401b0319909116811790915583519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a15f80806100a2565b855163f92ee8a960e01b8152600490fd5b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b51906001600160a01b03821682036101cf5756fe60806040526004361015610011575f80fd5b5f3560e01c806301ffc9a71461030457806302145348146102ff57806307f9d5fd146102fa578063103f2907146102f5578063128e5d82146102f0578063197aa7ea146102eb5780631a7a7044146102e65780631a80e500146102e157806323f752d5146102dc578063248a9ca3146102d757806325dc9708146102d25780632dd31000146102cd5780632f2ff15d146102c857806336568abe146102c35780633dfd3873146102be5780633eb22c0f146102b957806342c53e33146102b4578063439fab91146102af57806345e78fcb146102aa578063557cab44146102a55780635d32a1c9146102a05780636679191e1461029b57806379d89614146102965780637d24bb27146102915780637f5a7c7b1461028c5780638b3f10b01461028757806391d1485414610282578063987b3ee81461027d5780639b656b22146102785780639f86fd8514610273578063a217fddf1461026e578063a33bc28714610269578063b549ef1f14610264578063bb24fe8a1461025f578063c0cd7c3e1461025a578063c43dc03f14610255578063d15b740e14610250578063d547741f1461024b578063da749d2b14610246578063e02f693714610241578063e49561ee1461023c578063e78eb6ae14610237578063ed4d89e514610232578063fbfa77cf1461022d578063fd4d447c14610228578063ff54740f146102235763ffa1ad741461021e575f80fd5b6116dc565b6116bf565b611695565b61166e565b61160e565b6115d4565b6113e9565b6113cd565b6113b3565b611367565b61133d565b611314565b6112d0565b61128d565b611273565b611126565b61110c565b611078565b611034565b610fa6565b610f48565b610f25565b610efd565b610ec4565b610e80565b610e46565b610e23565b610dc6565b610d82565b610c4a565b610bd1565b610ba8565b610aaf565b610a64565b610a18565b6109d4565b6109b7565b61097e565b6107f8565b6107b4565b61076e565b610585565b610541565b6104fd565b6104c8565b61035e565b3461035a57602036600319011261035a5760043563ffffffff60e01b811680910361035a57602090637965db0b60e01b8114908115610349575b506040519015158152f35b6301ffc9a760e01b1490505f61033e565b5f80fd5b3461035a5760408060031936011261035a57600435906024359061038061202e565b825f526002602052805f2054821161041a57825f526003602052816103a6825f206128d7565b1461040a5781610405916103f57e899d104fc3d8820bd96540612bcc5c448c8837b13b9f7faa43ad0728f0c14f946103e6875f52600360205260405f2090565b6103ef42612d7a565b90612176565b5050519081529081906020820190565b0390a2005b5163a741a04560e01b8152600490fd5b51631eefc06360e31b8152600490fd5b6001600160a01b0381160361035a57565b6024359065ffffffffffff8216820361035a57565b6064359065ffffffffffff8216820361035a57565b608090600319011261035a5760043561047d8161042a565b906024359060443561048e8161042a565b9060643565ffffffffffff8116810361035a5790565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b3461035a576104f96104e56104dc36610465565b92919091611736565b6040519182916020835260208301906104a4565b0390f35b3461035a575f36600319011261035a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461035a575f36600319011261035a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461035a57604036600319011261035a5761059e61043b565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163303610602576105e5906004355f52600360205260405f206122f5565b60408051941515855263ffffffff91909116602085015292915050f35b604051637ca475e560e11b8152600490fd5b634e487b7160e01b5f52604160045260245ffd5b604081019081106001600160401b0382111761064357604052565b610614565b606081019081106001600160401b0382111761064357604052565b60a081019081106001600160401b0382111761064357604052565b90601f801991011681019081106001600160401b0382111761064357604052565b604051906106ac82610663565b565b604051906106ac82610628565b6001600160401b03811161064357601f01601f191660200190565b81601f8201121561035a578035906106ed826106bb565b926106fb604051948561067e565b8284526020838301011161035a57815f926020809301838601378301015290565b90608060031983011261035a57600435916024356107398161042a565b9160443565ffffffffffff8116810361035a5791606435906001600160401b03821161035a5761076b916004016106d6565b90565b3461035a5760206107ac6107a76107843661071c565b939190925f526005865260405f209060018060a01b03165f5260205260405f2090565b61242d565b604051908152f35b3461035a575f36600319011261035a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461035a57604036600319011261035a576004356001600160601b038116810361035a5760243590610828612505565b6040516302910f8b60e31b81523360048201526020816024816001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165afa908115610979575f9161094a575b5015610938576001600160601b03166bffffffffffffffffffffffff193360601b161790806108b2835f52600260205260405f2090565b54146109265761090b817fc67e7929681aa1bccd63f52b3799bf5805f3009f197db6fdf584b14f7fbf608c926108f0855f52600260205260405f2090565b556108fb8185612534565b6040519081529081906020820190565b0390a261092460015f8051602061360c83398151915255565b005b60405163a741a04560e01b8152600490fd5b6040516323d53b9760e21b8152600490fd5b61096c915060203d602011610972575b610964818361067e565b8101906117e8565b5f61087b565b503d61095a565b6117fc565b3461035a57602036600319011261035a576004355f525f805160206135ec8339815191526020526020600160405f200154604051908152f35b3461035a576104f96104e56109cb36610465565b92919091611904565b3461035a575f36600319011261035a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461035a57604036600319011261035a57610924602435600435610a3b8261042a565b805f525f805160206135ec833981519152602052610a5f600160405f2001546120e1565b61280f565b3461035a57604036600319011261035a57602435610a818161042a565b336001600160a01b03821603610a9d5761092490600435612845565b60405163334bd91960e11b8152600490fd5b3461035a57602036600319011261035a57600435610acc8161042a565b610ad4612505565b335f9081527f9ebbcbe0d2961d3fbe56ca6f679bc753bd848d3e6bb3eaf9041c51b286881d2c60205260409020547fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c9060ff1615610b8a57506001546001600160a01b039182169181168214610926576001600160a01b03191681176001557f5bbb1d3ebb6a3ad2a0f17ff35e579a83af60604d1d3c2a4c83c62adecadf666d5f80a260015f8051602061360c83398151915255005b6044906040519063e2517d3f60e01b82523360048301526024820152fd5b3461035a57602036600319011261035a576004355f52600360205260206107ac60405f206128d7565b3461035a57604036600319011261035a5760206107ac610c18602435610bf68161042a565b6004355f526005845260405f209060018060a01b03165f5260205260405f2090565b6128d7565b9181601f8401121561035a578235916001600160401b03831161035a576020838186019501011161035a57565b3461035a57602036600319011261035a576001600160401b0360043581811161035a57610c7b903690600401610c1d565b5f8051602061362c833981519152549260ff8460401c1615931680159081610d7a575b6001149081610d70575b159081610d67575b50610d55575f8051602061362c833981519152805467ffffffffffffffff19166001179055610ce39183610d3157612950565b610ce957005b5f8051602061362c833981519152805460ff60401b19169055604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a1005b5f8051602061362c833981519152805460ff60401b1916600160401b179055612950565b60405163f92ee8a960e01b8152600490fd5b9050155f610cb0565b303b159150610ca8565b849150610c9e565b3461035a575f36600319011261035a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461035a575f36600319011261035a576020604051614e208152f35b606060031982011261035a576004359160243565ffffffffffff8116810361035a5791604435906001600160401b03821161035a5761076b916004016106d6565b3461035a5760206107ac610e3636610de2565b915f526003845260405f2061242d565b3461035a575f36600319011261035a5760206040517fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c8152f35b3461035a575f36600319011261035a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461035a575f36600319011261035a5760206040517e8b9b1e5fa9cf3b14f87f435649268146305ddf689f082e5961a335b07a9abf8152f35b3461035a575f36600319011261035a576001546040516001600160a01b039091168152602090f35b3461035a5760206107ac610f3836610de2565b915f526004845260405f2061242d565b3461035a57604036600319011261035a57602060ff610f9a602435610f6c8161042a565b6004355f525f805160206135ec833981519152845260405f209060018060a01b03165f5260205260405f2090565b54166040519015158152f35b3461035a57606036600319011261035a57602435610fc38161042a565b60443565ffffffffffff8116810361035a577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633036106025761102f6105e5926004355f52600560205260405f209060018060a01b03165f5260205260405f2090565b6122f5565b3461035a575f36600319011261035a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461035a57604036600319011261035a576004356110958161042a565b6024356001600160401b03811161035a575f916110b783923690600401610c1d565b90816040519283928337810184815203915af46111046110d5611b60565b916110f66040519384921515602084015260408084015260608301906104a4565b03601f19810183528261067e565b805190602001fd5b3461035a575f36600319011261035a5760206040515f8152f35b3461035a57606036600319011261035a576024356004356111468261042a565b6044359161115261208a565b5f8281526005602090815260408083206001600160a01b0385168452909152902061117c906128d7565b838114610926577f739a5a3ec0ff71e2386d0013deac5f44e0935a98def2e2a5ddf9a709518c8294916111ef61123c92855f52600460205260405f20906111e9886111e46111c942612d7a565b936111df610c188c5f52600460205260405f2090565b611bb6565b611bd1565b91612176565b5050611220856103e68361120b885f52600560205260405f2090565b9060018060a01b03165f5260205260405f2090565b50506040519485526001600160a01b0316939081906020820190565b0390a3005b606090600319011261035a576004356112598161042a565b906024359060443565ffffffffffff8116810361035a5790565b3461035a576104f96104e561128736611241565b91611bde565b3461035a575f36600319011261035a5760206040516001600160401b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461035a575f36600319011261035a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461035a57602036600319011261035a576004355f52600460205260206107ac60405f206128d7565b3461035a57602036600319011261035a576004355f526002602052602060405f2054604051908152f35b3461035a57604036600319011261035a5761092460243560043561138a8261042a565b805f525f805160206135ec8339815191526020526113ae600160405f2001546120e1565b612845565b3461035a576104f96104e56113c736611241565b91611c28565b3461035a5760206107ac6113e03661071c565b92919091611d24565b3461035a5760a036600319011261035a576024356004356114098261042a565b60443591611415610450565b90608435906001600160401b03821161035a57611437600492369084016106d6565b61143f612505565b5f5460209061146490611458906001600160a01b031681565b6001600160a01b031690565b60405163b134427160e01b815294859182905afa928315610979575f936115a3575b506001600160a01b039283163303611591576001546001600160a01b0316838116611506575b50506040805195865265ffffffffffff909316602086015216927f741a5de99085c0d660f3e4192217b0ffb0ea4e35a0480de48e857a4bc3ee36ed91819081015b0390a361092460015f8051602061360c83398151915255565b90936040519461153d8661152f602082019363724ab0f760e11b8552858c898d60248701611eae565b03601f19810188528761067e565b62042e305a1061157f575f6114ed938192827f741a5de99085c0d660f3e4192217b0ffb0ea4e35a0480de48e857a4bc3ee36ed9951926203d090f150936114ac565b604051638072475160e01b8152600490fd5b60405163dabc4ad960e01b8152600490fd5b6115c691935060203d6020116115cd575b6115be818361067e565b810190611872565b915f611486565b503d6115b4565b3461035a575f36600319011261035a5760206040517f1312a1cf530e56add9be4fd84db9051dcc7635952f09f735f9a29405b55846258152f35b3461035a57604036600319011261035a5761162761043b565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163303610602576105e5906004355f52600460205260405f206122f5565b3461035a575f36600319011261035a575f546040516001600160a01b039091168152602090f35b3461035a57604036600319011261035a5760206107ac6024356116b78161042a565b600435611f04565b3461035a575f36600319011261035a5760206040516203d0908152f35b3461035a575f36600319011261035a57602060405160018152f35b5190811515820361035a57565b519063ffffffff8216820361035a57565b919082604091031261035a5761076b602061172f846116f7565b9301611704565b906117869165ffffffffffff6117959496956060976040519463130f67dd60e31b6020870152602486015260018060a01b031660448501521660648301526064825261178182610663565b612238565b60208082518301019101611715565b9061179d5750565b90915063ffffffff604051911660208201526020815261076b81610628565b5f9081526005602090815260408083206001600160a01b0390941683529290522061076b92919061242d565b9081602091031261035a5761076b906116f7565b6040513d5f823e3d90fd5b81601f8201121561035a5780519061181e826106bb565b9261182c604051948561067e565b8284526020838301011161035a57815f9260208093018386015e8301015290565b9060208282031261035a5781516001600160401b03811161035a5761076b9201611807565b9081602091031261035a575161076b8161042a565b9061076b91602081526118a6825160a0602084015260c08301906104a4565b9060a060806118f46118e16118cd602088015196601f1997888883030160408901526104a4565b6040880151878783030160608801526104a4565b60608701518686830301848701526104a4565b94015192828503019101526104a4565b604051630df8851f60e11b81526001600160a01b03828116600483015260248201849052848116604483015265ffffffffffff8616606483015295606095909491935f856084817f00000000000000000000000000000000000000000000000000000000000000008c165afa948515610979575f95611b18575b5060405163fbfa77cf60e01b8152602081600481888d165afa908115610979576119ea995f9285928491611af9575b5060405163192c0ff760e21b81526001600160a01b03909116600482015265ffffffffffff909216602483015290998a9190829081906044820190565b03917f0000000000000000000000000000000000000000000000000000000000000000165afa978815610979575f98611acf575b509081611a3b82611a3381611a419689611c28565b958388611736565b94611bde565b90835115801590611ac5575b8015611abb575b8015611ab1575b8015611aa7575b611a6f5750505050909150565b6110f6955061076b9496611a8161069f565b948552602085015260408401526060830152608082015260405192839160208301611887565b5081511515611a62565b5082511515611a5b565b5080511515611a54565b5086511515611a4d565b611a4192919850611af1903d805f833e611ae9818361067e565b81019061184d565b979091611a1e565b611b12915060203d6020116115cd576115be818361067e565b5f6119ad565b611b2d9195503d805f833e611ae9818361067e565b935f61197e565b9061076b92915f52600360205260405f2061242d565b9061076b92915f52600460205260405f2061242d565b3d15611b8a573d90611b71826106bb565b91611b7f604051938461067e565b82523d5f602084013e565b606090565b634e487b7160e01b5f52601160045260245ffd5b5f19810191908211611bb157565b611b8f565b91908203918211611bb157565b9060018201809211611bb157565b91908201809211611bb157565b60405163ed4d89e560e01b6020820152602481019290925265ffffffffffff909216604482015260609291611795916117869161178182606481015b03601f19810184528361067e565b604051630cbd53f560e11b6020820152602481019290925265ffffffffffff90921660448201526060929161179591611786916117818260648101611c1a565b60405190611c7582610628565b60606020838281520152565b9060208282031261035a5781516001600160401b039283821161035a57019060408282031261035a5760405192611cb784610628565b825181811161035a5782611ccc918501611807565b8452602083015190811161035a57611ce49201611807565b602082015290565b6001600160a01b0391821681529116602082015265ffffffffffff909116604082015260806060820181905261076b929101906104a4565b92611d3490929192828486612bb5565b929093611d3f611c68565b93805180611e92575b50508415938415611dfc575b8415611d6b575b50505050611d665790565b505f90565b602080949550611d96910151604051958694859463530e1d4360e01b865260601c9060048601611cec565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa908115610979575f91611ddd575b50155f808080611d5b565b611df6915060203d60201161097257610964818361067e565b5f611dd2565b5f549094506001600160a01b0316602084865192611e2f604051948593849363530e1d4360e01b85528960048601611cec565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa908115610979575f91611e73575b501593611d54565b611e8c915060203d60201161097257610964818361067e565b5f611e6b565b611ea6929550602080918301019101611c81565b925f80611d48565b919360a09361076b969565ffffffffffff938552600180871b03166020850152604084015216606082015281608082015201906104a4565b8115611ef0570490565b634e487b7160e01b5f52601260045260245ffd5b5f546040516308834cb560e21b8082526001600160a01b0385811660048401529283166024830152929392602092909183816044817f000000000000000000000000000000000000000000000000000000000000000086165afa908115610979575f91612011575b5015918215611f8d575b50509050611f875761076b91612cc5565b50505f90565b6040519081526001600160a01b0385166004820152606086901c602482015291508290829060449082907f0000000000000000000000000000000000000000000000000000000000000000165afa918215610979575f92611ff4575b505015805f80611f76565b61200a9250803d1061097257610964818361067e565b5f80611fe9565b6120289150843d861161097257610964818361067e565b5f611f6c565b335f9081527f72a65082a5691803ab2b62c9bc729b34205ba1b183d950896526b2fd8714d0c7602052604090207e8b9b1e5fa9cf3b14f87f435649268146305ddf689f082e5961a335b07a9abf9060ff905b541615610b8a5750565b335f9081527f8f2dae99798887da307a4daa2c2d11f840b0cb9a6a67822660c531e9ad14dd00602052604090207f1312a1cf530e56add9be4fd84db9051dcc7635952f09f735f9a29405b55846259060ff90612080565b5f8181525f805160206135ec83398151915260209081526040808320338452909152902060ff90612080565b634e487b7160e01b5f52603260045260245ffd5b8054821015612136575f5260205f2001905f90565b61210d565b90815491600160401b831015610643578261215e9160016106ac95018155612121565b90919082549060031b91821b915f19901b1916179055565b90929192600182019081548015612208575b508461219384612dac565b509490928454936121a3836128d7565b96816121f3575b50156121d0575050505f198101908111611bb15761215e85916121cc93612121565b9190565b6121cc9492936121ec926001600160d01b0390911691906134a7565b505061213b565b65ffffffffffff83811691161490505f6121aa565b600160401b811015610643578060016122249201845583612121565b8154905f199060031b1b191690555f612188565b5f9190829160405161226d816110f66020820194639f86fd8560e01b86523060248401526040604484015260648301906104a4565b51915afa5061227a611b60565b8051810160408282031261035a57612294602083016116f7565b916040810151916001600160401b03831161035a576122ba926020809201920101611807565b90156122c35790565b805190811561035a57602001fd5b906040516122de81610628565b915465ffffffffffff8116835260301c6020830152565b91908254905f82916005841161239d575b612311935085612f2e565b9081156123915761238a61238161237b61237161234361233e61233388611ba3565b895f5260205f200190565b6122d1565b96600161236a602061235b8b5165ffffffffffff1690565b9a01516001600160d01b031690565b9101612121565b90549060031b1c90565b93611ba3565b63ffffffff1690565b6001939291565b5f925082915081908190565b91926123a881612dfb565b8103908111611bb15761231193865f526123dc6123d18360205f200165ffffffffffff90541690565b65ffffffffffff1690565b65ffffffffffff851610156123f2575091612306565b9291506123fe90611bc3565b90612306565b9081602091031261035a5761076b90611704565b90600163ffffffff80931601918211611bb157565b918051156124fb578060208061244893518301019101612404565b916124538382613060565b92612464845165ffffffffffff1690565b9065ffffffffffff80851692168281146124ef578211918261249a575b50506124915761076b9250612f90565b50506020015190565b9091506124a78354611ba3565b63ffffffff8316149182156124c0575b50505f80612481565b6124e79192506124db6124d56123d192612418565b85613060565b5165ffffffffffff1690565b115f806124b7565b50505050506020015190565b5061076b91612f90565b5f8051602061360c83398151915260028154146125225760029055565b604051633ee5aeb560e01b8152600490fd5b90815f52600360205260405f208161254b82612dac565b9193905083156125a95761256b916001600160d01b031690600101612121565b90549060031b1c5b8261259f575b5050612583575050565b61259b915f52600360205260405f206103ef42612d7a565b5050565b119050815f612579565b50505f612573565b6001600160a01b0381165f9081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d60205260409020545f805160206135ec8339815191529060ff16611f87575f808052602091825260408082206001600160a01b038516835290925220805460ff1916600117905533906001600160a01b03165f7f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d8180a4600190565b6001600160a01b0381165f9081527f9ebbcbe0d2961d3fbe56ca6f679bc753bd848d3e6bb3eaf9041c51b286881d2c602052604090207fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c905f805160206135ec8339815191529060ff905b541661272b575f828152602091825260408082206001600160a01b038616835290925220805460ff1916600117905533916001600160a01b0316907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d5f80a4600190565b5050505f90565b6001600160a01b0381165f9081527f72a65082a5691803ab2b62c9bc729b34205ba1b183d950896526b2fd8714d0c7602052604090207e8b9b1e5fa9cf3b14f87f435649268146305ddf689f082e5961a335b07a9abf905f805160206135ec8339815191529060ff906126c7565b6001600160a01b0381165f9081527f8f2dae99798887da307a4daa2c2d11f840b0cb9a6a67822660c531e9ad14dd00602052604090207f1312a1cf530e56add9be4fd84db9051dcc7635952f09f735f9a29405b5584625905f805160206135ec8339815191529060ff906126c7565b5f8181525f805160206135ec833981519152602081815260408084206001600160a01b038716855290915290912060ff906126c7565b5f8181525f805160206135ec833981519152602081815260408084206001600160a01b03871685529091529091205460ff161561272b575f828152602091825260408082206001600160a01b038616835290925220805460ff1916905533916001600160a01b0316907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b5f80a4600190565b8054806128fc57505f5b6001600160d01b03811615611f875760016123719201612121565b5f19908082810111611bb157825f5260205f2001015460301c6128e1565b91909160408184031261035a5780356129328161042a565b9260208201356001600160401b03811161035a5761076b92016106d6565b61295c9181019061291a565b6040516302910f8b60e31b81526001600160a01b039283166004820181905291906020816024817f000000000000000000000000000000000000000000000000000000000000000088165afa908115610979575f91612a6f575b5015612a5d576129f16040916129ec612a37946129d16130c8565b60018060a01b03166001600160601b0360a01b5f5416175f55565b613248565b6020810151600180546001600160a01b0319166001600160a01b0390921691909117905580516001600160a01b0316848116612a4d575b5001516001600160a01b031690565b908116612a415750565b612a4a9061265c565b50565b612a56906125b1565b505f612a28565b6040516362df054560e01b8152600490fd5b612a88915060203d60201161097257610964818361067e565b5f6129b6565b6040519060a082018281106001600160401b038211176106435760405281608060609182815282602082015282604082015282808201520152565b9060208282031261035a5781516001600160401b039283821161035a57019060a08282031261035a57612afa61069f565b92825181811161035a5782612b10918501611807565b8452602083015181811161035a5782612b2a918501611807565b6020850152604083015181811161035a5782612b47918501611807565b6040850152606083015181811161035a5782612b64918501611807565b6060850152608083015190811161035a57612b7f9201611807565b608082015290565b9081602091031261035a575190565b60409065ffffffffffff61076b949316815281602082015201906104a4565b91939293612bc1612a8e565b94805180612ca9575b5050612bdb60608601518285611b4a565b9182612bed57505050509051905f9190565b612c01612c3b9183608089015191876117bc565b916020612c1a6114586114585f5460018060a01b031690565b8189015190604051808096819463810da75d60e01b83528760048401612b96565b03915afa801561097957612c7195612c6b935f92612c76575b50612c65919260408a015191611b34565b906133a8565b906133ba565b915190565b612c659250612c9c9060203d602011612ca2575b612c94818361067e565b810190612b87565b91612c54565b503d612c8a565b612cbd929650602080918301019101612ac9565b935f80612bca565b90612cdb610c18835f52600460205260405f2090565b9081612ce8575050505f90565b610c18612d019161120b855f52600560205260405f2090565b5f5460405163bd49c35f60e01b815290602090829060049082906001600160a01b03165afa80156109795761076b94612c6b925f92612d51575b50610c18612c65915f52600360205260405f2090565b612c65919250612d72610c189160203d602011612ca257612c94818361067e565b929150612d3b565b65ffffffffffff90818111612d8d571690565b604490604051906306dfcc6560e41b8252603060048301526024820152fd5b805480612dbd5750505f905f905f90565b5f19908082810111611bb157612dda925f5260205f2001016122d1565b9065ffffffffffff82511691602060018060d01b0391015116906001929190565b8015611d665780612c65612ec6612ebc612eb2612ea8612e9e612e94612e8a600161076b9a5f908b60801c80612f22575b508060401c80612f15575b508060201c80612f08575b508060101c80612efb575b508060081c80612eee575b508060041c80612ee1575b508060021c80612ed4575b50821c612ecd575b811c1b612e83818b611ee6565b0160011c90565b612e83818a611ee6565b612e838189611ee6565b612e838188611ee6565b612e838187611ee6565b612e838186611ee6565b612e838185611ee6565b8092611ee6565b8101612e76565b600291509101905f612e6e565b600491509101905f612e63565b600891509101905f612e58565b601091509101905f612e4d565b602091509101905f612e42565b604091509101905f612e37565b9150506080905f612e2c565b91905b838210612f3e5750505090565b909192808316906001818518811c8301809311611bb157855f5265ffffffffffff808460205f20015416908516105f14612f7d575050925b9190612f31565b909493508101809111611bb15791612f76565b908154905f829160058411612ffa575b612fab935084612f2e565b80612fd357505f905b6001600160d01b03821615611f875761076b9160016123719201612121565b612fed612fe2612ff492611ba3565b835f5260205f200190565b5460301c90565b90612fb4565b919261300581612dfb565b8103908111611bb157612fab93855f5265ffffffffffff808360205f20015416908516105f14613036575091612fa0565b92915061304290611bc3565b90612fa0565b6040519061305582610628565b5f6020838281520152565b906130896130836130aa92613073613048565b5061307c613048565b5084612121565b506122d1565b91600165ffffffffffff845116936020828060d01b03910151169101612121565b905490604051926130ba84610628565b835260031b1c602082015290565b6130d06135bd565b6130d86135bd565b60015f8051602061360c83398151915255565b604051906130f882610648565b5f6040838281528260208201520152565b81601f8201121561035a578051916020916001600160401b038411610643578360051b906040519461313d8584018761067e565b8552838086019282010192831161035a578301905b828210613160575050505090565b838091835161316e8161042a565b815201910190613152565b9060208282031261035a5781516001600160401b039283821161035a5701908181039260a0841261035a576060604051946131b386610648565b1261035a576040516131c481610648565b83516131cf8161042a565b815260208401516131df8161042a565b602082015260408401516131f28161042a565b60408201528452606083015181811161035a5782613211918501613109565b6020850152608083015190811161035a5761322c9201613109565b604082015290565b80518210156121365760209160051b010190565b613264906132546130eb565b5060208082518301019101613179565b8051519091906001600160a01b0316158061338e575b61337c579060208101905f5b82518051821015613300576114586132a1836132ae93613234565b516001600160a01b031690565b156132ee576132d06132cc6132c76132a1848751613234565b612732565b1590565b6132dc57600101613286565b604051635140fefd60e11b8152600490fd5b6040516323cda06760e01b8152600490fd5b506040925050818101905f5b82518051821015613373576114586132a18361332793613234565b15613362576133456132cc6133406132a1848751613234565b6127a0565b6133515760010161330c565b8351635140fefd60e11b8152600490fd5b83516323cda06760e01b8152600490fd5b50509150505190565b6040516303501f5960e11b8152600490fd5b50602082015151158061327a57506040820151511561327a565b90808210156133b5575090565b905090565b9091828202915f198482099383808610950394808603951461343f578483111561342d57829109815f038216809204600280826003021880830282030280830282030280830282030280830282030280830282030280920290030293600183805f03040190848311900302920304170290565b60405163227bc15360e01b8152600490fd5b50509061076b9250611ee6565b8054600160401b8110156106435761346991600182018155612121565b61349457815160209092015160301b65ffffffffffff191665ffffffffffff92909216919091179055565b634e487b7160e01b5f525f60045260245ffd5b805492939291908215613594576134c361233e612fe285611ba3565b906134d4825165ffffffffffff1690565b65ffffffffffff84811691168110613582576121cc9460209488926135026123d1875165ffffffffffff1690565b0361354a575061353c9261351861352392611ba3565b905f5260205f200190565b9065ffffffffffff82549181199060301b169116179055565b01516001600160d01b031690565b91505061357d9161356a61355c6106ae565b65ffffffffffff9093168352565b6001600160d01b0388168286015261344c565b61353c565b604051632520601d60e01b8152600490fd5b6135b892506135a461355c6106ae565b6001600160d01b038516602083015261344c565b5f9190565b60ff5f8051602061362c8339815191525460401c16156135d957565b604051631afcd79f60e31b8152600490fdfe02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268009b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a2646970667358221220dc71151e359446372f65ddedaab6f31862570ef5d8ce33546dbf0285e530953a64736f6c634300081900336101c0346101c857601f61357838819003918201601f19168301916001600160401b0391828411858510176101cc5781606092869260409687528339810103126101c85761004c836101e0565b926100648361005d602084016101e0565b92016101e0565b91306080527ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a009081549060ff82871c166101b7578080831603610173575b5050505f60a0525f60c0525f60e052610100935f8552610120935f8552610140905f82526101609283526101809384526101a0948552519461338396876101f58839608051878181610696015261148c015260a0518761092d015260c0518761114b015260e0518781816107a101526111840152518681816104e2015261266601525185818161064c01528181611be00152611d0f01525184818161071f01528181611b470152611d8d015251838181610ebc015261179a015251828181610c8f015261183b0152518161104f0152f35b6001600160401b0319909116811790915583519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a15f80806100a2565b855163f92ee8a960e01b8152600490fd5b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b51906001600160a01b03821682036101c85756fe60806040526004361015610011575f80fd5b5f3560e01c806301ffc9a7146102c4578063020cf0c2146102bf57806302145348146102ba578063103f2907146102b557806310a28b5d146102b057806311422095146102ab578063128e5d82146102a6578063197aa7ea146102a15780631a80e5001461029c57806323f752d514610297578063248a9ca31461029257806325dc97081461028d5780632dd31000146102885780632f2ff15d1461028357806336568abe1461027e5780633dfd3873146102795780633eb22c0f14610274578063439fab911461026f57806345e78fcb1461026a578063518504ba14610265578063557cab44146102605780635d32a1c91461025b5780636679191e1461025657806379d89614146102515780637d24bb271461024c5780637f5a7c7b1461024757806391d148541461024257806394d2558a1461023d5780639b656b22146102385780639f86fd8514610233578063a217fddf1461022e578063bb24fe8a14610229578063c0cd7c3e14610224578063d15b740e1461021f578063d547741f1461021a578063da749d2b14610215578063e02f693714610210578063e49561ee1461020b578063f7b0554714610206578063fbfa77cf14610201578063fd4d447c146101fc578063ff54740f146101f75763ffa1ad74146101f2575f80fd5b611557565b61153a565b611510565b6114e9565b611465565b61127a565b61125e565b611229565b6111dd565b6111b3565b61116f565b61112c565b611112565b61107e565b61103a565b610ffc565b610f4c565b610f24565b610eeb565b610ea7565b610e6d565b610e1c565b610cf8565b610cbe565b610c7a565b610b42565b610aec565b6109f3565b6109a8565b61095c565b610918565b6108fb565b6108c2565b61074e565b61070a565b61067b565b610637565b6105e8565b6105b3565b6104cd565b610410565b61032f565b3461031a57602036600319011261031a5760043563ffffffff60e01b811680910361031a57602090637965db0b60e01b8114908115610309575b506040519015158152f35b6301ffc9a760e01b1490505f6102fe565b5f80fd5b6001600160a01b0381160361031a57565b3461031a57606036600319011261031a5760243560043561034f8261031e565b6044359161035b611e02565b815f526004602052826103896103848360405f209060018060a01b03165f5260205260405f2090565b6120b3565b146103fe5760207ffc9545f07ffadfb668efd0144cdcaf2d6e2c8192dce1ea9fc131934f9c90fc7e91835f52600482526103e9856103da8360405f209060018060a01b03165f5260205260405f2090565b6103e342612b0e565b90611f58565b50506040519485526001600160a01b031693a3005b60405163a741a04560e01b8152600490fd5b3461031a5760408060031936011261031a576004359060243590610432611e5f565b825f526002602052805f205482116104bd57825f52600360205281610458825f206120b3565b146104ad57816104a8916104987e899d104fc3d8820bd96540612bcc5c448c8837b13b9f7faa43ad0728f0c14f946103da875f52600360205260405f2090565b5050519081529081906020820190565b0390a2005b5163a741a04560e01b8152600490fd5b51631eefc06360e31b8152600490fd5b3461031a575f36600319011261031a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b6024359065ffffffffffff8216820361031a57565b6044359065ffffffffffff8216820361031a57565b6064359065ffffffffffff8216820361031a57565b608090600319011261031a576004356105688161031e565b90602435906044356105798161031e565b9060643565ffffffffffff8116810361031a5790565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b3461031a576105e46105d06105c736610550565b929190916115b1565b60405191829160208352602083019061058f565b0390f35b3461031a57604036600319011261031a57602061062f61038460243561060d8161031e565b6004355f526004845260405f209060018060a01b03165f5260205260405f2090565b604051908152f35b3461031a575f36600319011261031a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461031a57604036600319011261031a57610694610511565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633036106f8576106db906004355f52600360205260405f20612124565b60408051941515855263ffffffff91909116602085015292915050f35b604051637ca475e560e11b8152600490fd5b3461031a575f36600319011261031a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461031a57604036600319011261031a576004356001600160601b038116810361031a576024359061077e612229565b6040516302910f8b60e31b81523360048201526020816024816001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165afa9081156108bd575f9161088e575b501561087c576001600160601b03166bffffffffffffffffffffffff193360601b16179080610808835f52600260205260405f2090565b54146103fe57610861817fc67e7929681aa1bccd63f52b3799bf5805f3009f197db6fdf584b14f7fbf608c92610846855f52600260205260405f2090565b556108518185612258565b6040519081529081906020820190565b0390a261087a60015f8051602061330e83398151915255565b005b6040516323d53b9760e21b8152600490fd5b6108b0915060203d6020116108b6575b6108a88183610d7e565b810190611649565b5f6107d1565b503d61089e565b61165d565b3461031a57602036600319011261031a576004355f525f805160206132ee8339815191526020526020600160405f200154604051908152f35b3461031a576105e46105d061090f36610550565b9291909161174e565b3461031a575f36600319011261031a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461031a57604036600319011261031a5761087a60243560043561097f8261031e565b805f525f805160206132ee8339815191526020526109a3600160405f200154611eb5565b612533565b3461031a57604036600319011261031a576024356109c58161031e565b336001600160a01b038216036109e15761087a90600435612569565b60405163334bd91960e11b8152600490fd5b3461031a57602036600319011261031a57600435610a108161031e565b610a18612229565b335f9081527f9ebbcbe0d2961d3fbe56ca6f679bc753bd848d3e6bb3eaf9041c51b286881d2c60205260409020547fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c9060ff1615610ace57506001546001600160a01b0391821691811682146103fe576001600160a01b03191681176001557f5bbb1d3ebb6a3ad2a0f17ff35e579a83af60604d1d3c2a4c83c62adecadf666d5f80a260015f8051602061330e83398151915255005b6044906040519063e2517d3f60e01b82523360048301526024820152fd5b3461031a57602036600319011261031a576004355f526003602052602061062f60405f206120b3565b9181601f8401121561031a578235916001600160401b03831161031a576020838186019501011161031a57565b3461031a57602036600319011261031a576001600160401b0360043581811161031a57610b73903690600401610b15565b5f8051602061332e833981519152549260ff8460401c1615931680159081610c72575b6001149081610c68575b159081610c5f575b50610c4d575f8051602061332e833981519152805467ffffffffffffffff19166001179055610bdb9183610c2957612631565b610be157005b5f8051602061332e833981519152805460ff60401b19169055604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a1005b5f8051602061332e833981519152805460ff60401b1916600160401b179055612631565b60405163f92ee8a960e01b8152600490fd5b9050155f610ba8565b303b159150610ba0565b849150610b96565b3461031a575f36600319011261031a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461031a575f36600319011261031a5760206040517f15e7c882d74e8821ebf34aaff46fd0e1d53b9393d91490019124113d28dc32a38152f35b3461031a575f36600319011261031a576020604051614e208152f35b634e487b7160e01b5f52604160045260245ffd5b604081019081106001600160401b03821117610d4357604052565b610d14565b606081019081106001600160401b03821117610d4357604052565b608081019081106001600160401b03821117610d4357604052565b90601f801991011681019081106001600160401b03821117610d4357604052565b60405190610dac82610d63565b565b60405190610dac82610d28565b6001600160401b038111610d4357601f01601f191660200190565b81601f8201121561031a57803590610ded82610dbb565b92610dfb6040519485610d7e565b8284526020838301011161031a57815f926020809301838601378301015290565b3461031a57606036600319011261031a57610e35610511565b6044356001600160401b03811161031a57602091610e5a61062f923690600401610dd6565b906004355f526003845260405f20612798565b3461031a575f36600319011261031a5760206040517fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c8152f35b3461031a575f36600319011261031a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461031a575f36600319011261031a5760206040517e8b9b1e5fa9cf3b14f87f435649268146305ddf689f082e5961a335b07a9abf8152f35b3461031a575f36600319011261031a576001546040516001600160a01b039091168152602090f35b3461031a57604036600319011261031a57602060ff610f9e602435610f708161031e565b6004355f525f805160206132ee833981519152845260405f209060018060a01b03165f5260205260405f2090565b54166040519015158152f35b90608060031983011261031a5760043591602435610fc78161031e565b9160443565ffffffffffff8116810361031a5791606435906001600160401b03821161031a57610ff991600401610dd6565b90565b3461031a57602061062f61103561101236610faa565b939190925f526004865260405f209060018060a01b03165f5260205260405f2090565b612798565b3461031a575f36600319011261031a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461031a57604036600319011261031a5760043561109b8161031e565b6024356001600160401b03811161031a575f916110bd83923690600401610b15565b90816040519283928337810184815203915af461110a6110db6119a3565b916110fc60405193849215156020840152604080840152606083019061058f565b03601f198101835282610d7e565b805190602001fd5b3461031a575f36600319011261031a5760206040515f8152f35b3461031a575f36600319011261031a5760206040516001600160401b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461031a575f36600319011261031a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461031a57602036600319011261031a576004355f526002602052602060405f2054604051908152f35b3461031a57604036600319011261031a5761087a6024356004356112008261031e565b805f525f805160206132ee833981519152602052611224600160405f200154611eb5565b612569565b3461031a57606036600319011261031a576105e46105d060043561124c8161031e565b611254610526565b90602435906119d2565b3461031a57602061062f61127136610faa565b92919091611ad1565b3461031a5760a036600319011261031a5760243560043561129a8261031e565b604435916112a661053b565b90608435906001600160401b03821161031a576112c860049236908401610dd6565b6112d0612229565b5f546020906112f5906112e9906001600160a01b031681565b6001600160a01b031690565b60405163b134427160e01b815294859182905afa9283156108bd575f93611434575b506001600160a01b039283163303611422576001546001600160a01b0316838116611397575b50506040805195865265ffffffffffff909316602086015216927f741a5de99085c0d660f3e4192217b0ffb0ea4e35a0480de48e857a4bc3ee36ed91819081015b0390a361087a60015f8051602061330e83398151915255565b9093604051946113ce866113c0602082019363724ab0f760e11b8552858c898d60248701611c5b565b03601f198101885287610d7e565b62042e305a10611410575f61137e938192827f741a5de99085c0d660f3e4192217b0ffb0ea4e35a0480de48e857a4bc3ee36ed9951926203d090f1509361133d565b604051638072475160e01b8152600490fd5b60405163dabc4ad960e01b8152600490fd5b61145791935060203d60201161145e575b61144f8183610d7e565b8101906116d3565b915f611317565b503d611445565b3461031a57606036600319011261031a576024356114828161031e565b61148a610526565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633036106f8576114e46106db926004355f52600460205260405f209060018060a01b03165f5260205260405f2090565b612124565b3461031a575f36600319011261031a575f546040516001600160a01b039091168152602090f35b3461031a57604036600319011261031a57602061062f6024356115328161031e565b600435611cd8565b3461031a575f36600319011261031a5760206040516203d0908152f35b3461031a575f36600319011261031a57602060405160018152f35b5190811515820361031a57565b519063ffffffff8216820361031a57565b919082604091031261031a57610ff960206115aa84611572565b930161157f565b91939265ffffffffffff906060956040519363f7b0554760e01b6020860152602485015260018060a01b031660448401521660648201526064815260a08101908082106001600160401b03831117610d4357611622926116139260405261201a565b60208082518301019101611590565b9061162a5750565b90915063ffffffff6040519116602082015260208152610ff981610d28565b9081602091031261031a57610ff990611572565b6040513d5f823e3d90fd5b81601f8201121561031a5780519061167f82610dbb565b9261168d6040519485610d7e565b8284526020838301011161031a57815f9260208093018386015e8301015290565b9060208282031261031a5781516001600160401b03811161031a57610ff99201611668565b9081602091031261031a5751610ff98161031e565b90610ff9916020815261170782516080602084015260a083019061058f565b906080606061173e61172b602087015195601f19968787830301604088015261058f565b604087015186868303018487015261058f565b940151928285030191015261058f565b604051630df8851f60e11b81526001600160a01b03828116600483015260248201849052848116604483015265ffffffffffff8616606483015295606095909491939091905f856084817f00000000000000000000000000000000000000000000000000000000000000008c165afa9485156108bd575f95611945575b5060405163fbfa77cf60e01b8152602081600481888d165afa9081156108bd57611837995f9286928491611926575b5060405163192c0ff760e21b81526001600160a01b03909116600482015265ffffffffffff909216602483015290998a9190829081906044820190565b03917f0000000000000000000000000000000000000000000000000000000000000000165afa9788156108bd575f986118fa575b50908161187d846118839594876119d2565b946115b1565b908251158015906118f0575b80156118e6575b80156118dc575b6118a957505050909150565b6110fc9450610ff993956118bb610d9f565b938452602084015260408301526060820152604051928391602083016116e8565b508151151561189d565b5080511515611896565b508551151561188f565b611883939291985061191d903d805f833e6119158183610d7e565b8101906116ae565b9790919261186b565b61193f915060203d60201161145e5761144f8183610d7e565b5f6117fa565b61195a9195503d805f833e6119158183610d7e565b935f6117cb565b90610ff992915f52600360205260405f20612798565b5f9081526004602090815260408083206001600160a01b03909416835292905220610ff9929190612798565b3d156119cd573d906119b482610dbb565b916119c26040519384610d7e565b82523d5f602084013e565b606090565b611622916116139194939465ffffffffffff60609660405193630cbd53f560e11b6020860152602485015216604483015260448252611a1082610d63565b61201a565b60405190611a2282610d28565b60606020838281520152565b9060208282031261031a5781516001600160401b039283821161031a57019060408282031261031a5760405192611a6484610d28565b825181811161031a5782611a79918501611668565b8452602083015190811161031a57611a919201611668565b602082015290565b6001600160a01b0391821681529116602082015265ffffffffffff9091166040820152608060608201819052610ff99291019061058f565b92611ae190929192828486612973565b929093611aec611a15565b93805180611c3f575b50508415938415611ba9575b8415611b18575b50505050611b135790565b505f90565b602080949550611b43910151604051958694859463530e1d4360e01b865260601c9060048601611a99565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa9081156108bd575f91611b8a575b50155f808080611b08565b611ba3915060203d6020116108b6576108a88183610d7e565b5f611b7f565b5f549094506001600160a01b0316602084865192611bdc604051948593849363530e1d4360e01b85528960048601611a99565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa9081156108bd575f91611c20575b501593611b01565b611c39915060203d6020116108b6576108a88183610d7e565b5f611c18565b611c53929550602080918301019101611a2e565b925f80611af5565b919360a093610ff9969565ffffffffffff938552600180871b031660208501526040840152166060820152816080820152019061058f565b634e487b7160e01b5f52601160045260245ffd5b8115611cb1570490565b634e487b7160e01b5f52601260045260245ffd5b9060018201809211611cd357565b611c93565b5f546040516308834cb560e21b8082526001600160a01b0385811660048401529283166024830152929392602092909183816044817f000000000000000000000000000000000000000000000000000000000000000086165afa9081156108bd575f91611de5575b5015918215611d61575b50509050611d5b57610ff991612a68565b50505f90565b6040519081526001600160a01b0385166004820152606086901c602482015291508290829060449082907f0000000000000000000000000000000000000000000000000000000000000000165afa9182156108bd575f92611dc8575b505015805f80611d4a565b611dde9250803d106108b6576108a88183610d7e565b5f80611dbd565b611dfc9150843d86116108b6576108a88183610d7e565b5f611d40565b335f9081527f24e48de785eeca8420b70f73d267a66970ccc187d459f2a4b53e74ed92a5ab86602052604090207f15e7c882d74e8821ebf34aaff46fd0e1d53b9393d91490019124113d28dc32a39060ff905b541615610ace5750565b335f9081527f72a65082a5691803ab2b62c9bc729b34205ba1b183d950896526b2fd8714d0c7602052604090207e8b9b1e5fa9cf3b14f87f435649268146305ddf689f082e5961a335b07a9abf9060ff90611e55565b5f8181525f805160206132ee83398151915260209081526040808320338452909152902060ff90611e55565b634e487b7160e01b5f52603260045260245ffd5b8054821015611f0a575f5260205f2001905f90565b611ee1565b90815491600160401b831015610d435782611f32916001610dac95018155611ef5565b90919082549060031b91821b915f19901b1916179055565b5f19810191908211611cd357565b90929192600182019081548015611fea575b5084611f7584612b40565b50949092845493611f85836120b3565b9681611fd5575b5015611fb2575050505f198101908111611cd357611f328591611fae93611ef5565b9190565b611fae949293611fce926001600160d01b0390911691906131a9565b5050611f0f565b65ffffffffffff83811691161490505f611f8c565b600160401b811015610d43578060016120069201845583611ef5565b8154905f199060031b1b191690555f611f6a565b5f9190829160405161204f816110fc6020820194639f86fd8560e01b865230602484015260406044840152606483019061058f565b51915afa5061205c6119a3565b8051810160408282031261031a5761207660208301611572565b916040810151916001600160401b03831161031a5761209c926020809201920101611668565b90156120a55790565b805190811561031a57602001fd5b8054806120e257505f5b6001600160d01b03811615611d5b5760016120d89201611ef5565b90549060031b1c90565b5f19908082810111611cd357825f5260205f2001015460301c6120bd565b9060405161210d81610d28565b915465ffffffffffff8116835260301c6020830152565b91908254905f8291600584116121c2575b612140935085612cc2565b9081156121b6576121af6121a66121a06120d861217261216d61216288611f4a565b895f5260205f200190565b612100565b966001612199602061218a8b5165ffffffffffff1690565b9a01516001600160d01b031690565b9101611ef5565b93611f4a565b63ffffffff1690565b6001939291565b5f925082915081908190565b91926121cd81612b8f565b8103908111611cd35761214093865f526122016121f68360205f200165ffffffffffff90541690565b65ffffffffffff1690565b65ffffffffffff85161015612217575091612135565b92915061222390611cc5565b90612135565b5f8051602061330e83398151915260028154146122465760029055565b604051633ee5aeb560e01b8152600490fd5b90815f52600360205260405f208161226f82612b40565b9193905083156122cd5761228f916001600160d01b031690600101611ef5565b90549060031b1c5b826122c3575b50506122a7575050565b6122bf915f52600360205260405f206103e342612b0e565b5050565b119050815f61229d565b50505f612297565b6001600160a01b0381165f9081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d60205260409020545f805160206132ee8339815191529060ff16611d5b575f808052602091825260408082206001600160a01b038516835290925220805460ff1916600117905533906001600160a01b03165f7f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d8180a4600190565b6001600160a01b0381165f9081527f9ebbcbe0d2961d3fbe56ca6f679bc753bd848d3e6bb3eaf9041c51b286881d2c602052604090207fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c905f805160206132ee8339815191529060ff905b541661244f575f828152602091825260408082206001600160a01b038616835290925220805460ff1916600117905533916001600160a01b0316907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d5f80a4600190565b5050505f90565b6001600160a01b0381165f9081527f72a65082a5691803ab2b62c9bc729b34205ba1b183d950896526b2fd8714d0c7602052604090207e8b9b1e5fa9cf3b14f87f435649268146305ddf689f082e5961a335b07a9abf905f805160206132ee8339815191529060ff906123eb565b6001600160a01b0381165f9081527f24e48de785eeca8420b70f73d267a66970ccc187d459f2a4b53e74ed92a5ab86602052604090207f15e7c882d74e8821ebf34aaff46fd0e1d53b9393d91490019124113d28dc32a3905f805160206132ee8339815191529060ff906123eb565b5f8181525f805160206132ee833981519152602081815260408084206001600160a01b038716855290915290912060ff906123eb565b5f8181525f805160206132ee833981519152602081815260408084206001600160a01b03871685529091529091205460ff161561244f575f828152602091825260408082206001600160a01b038616835290925220805460ff1916905533916001600160a01b0316907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b5f80a4600190565b91909160408184031261031a5780356126138161031e565b9260208201356001600160401b03811161031a57610ff99201610dd6565b61263d918101906125fb565b6040516302910f8b60e31b81526001600160a01b039283166004820181905291906020816024817f000000000000000000000000000000000000000000000000000000000000000088165afa9081156108bd575f91612750575b501561273e576126d26040916126cd612718946126b2612d24565b60018060a01b03166001600160601b0360a01b5f5416175f55565b612ea4565b6020810151600180546001600160a01b0319166001600160a01b0390921691909117905580516001600160a01b031684811661272e575b5001516001600160a01b031690565b9081166127225750565b61272b90612380565b50565b612737906122d5565b505f612709565b6040516362df054560e01b8152600490fd5b612769915060203d6020116108b6576108a88183610d7e565b5f612697565b9081602091031261031a57610ff99061157f565b90600163ffffffff80931601918211611cd357565b9180511561286657806020806127b39351830101910161276f565b916127be83826130d4565b926127cf845165ffffffffffff1690565b9065ffffffffffff808516921682811461285a5782119182612805575b50506127fc57610ff99250613004565b50506020015190565b9091506128128354611f4a565b63ffffffff83161491821561282b575b50505f806127ec565b6128529192506128466128406121f692612783565b856130d4565b5165ffffffffffff1690565b115f80612822565b50505050506020015190565b50610ff991613004565b60405190608082018281106001600160401b03821117610d4357604052606080838181528160208201528160408201520152565b9060208282031261031a5781516001600160401b039283821161031a57019060808282031261031a576128d5610d9f565b92825181811161031a57826128eb918501611668565b8452602083015181811161031a5782612905918501611668565b6020850152604083015181811161031a5782612922918501611668565b6040850152606083015190811161031a5761293d9201611668565b606082015290565b9081602091031261031a575190565b60409065ffffffffffff610ff99493168152816020820152019061058f565b9391909361297f612870565b93805180612a48575b50506129c992939460206129a86112e96112e95f5460018060a01b031690565b8188015190604051808098819463810da75d60e01b83528960048401612954565b03915afa9182156108bd57612a0a945f93612a0f575b50612a0490612a0493946129f860408a01518284611961565b9360608a015192611977565b9061313c565b915190565b612a04935090612a39612a049260203d602011612a41575b612a318183610d7e565b810190612945565b9350906129df565b503d612a27565b6129c994955090602080612a609383010191016128a4565b93925f612988565b5f5460405163bd49c35f60e01b8152929190602090849060049082906001600160a01b03165afa9081156108bd57610ff9935f92612ae3575b50612a04610384612a049394612ac2610384855f52600360205260405f2090565b935f52600460205260405f209060018060a01b03165f5260205260405f2090565b612a049250610384612b06612a049260203d602011612a4157612a318183610d7e565b935050612aa1565b65ffffffffffff90818111612b21571690565b604490604051906306dfcc6560e41b8252603060048301526024820152fd5b805480612b515750505f905f905f90565b5f19908082810111611cd357612b6e925f5260205f200101612100565b9065ffffffffffff82511691602060018060d01b0391015116906001929190565b8015611b135780612a04612c5a612c50612c46612c3c612c32612c28612c1e6001610ff99a5f908b60801c80612cb6575b508060401c80612ca9575b508060201c80612c9c575b508060101c80612c8f575b508060081c80612c82575b508060041c80612c75575b508060021c80612c68575b50821c612c61575b811c1b612c17818b611ca7565b0160011c90565b612c17818a611ca7565b612c178189611ca7565b612c178188611ca7565b612c178187611ca7565b612c178186611ca7565b612c178185611ca7565b8092611ca7565b8101612c0a565b600291509101905f612c02565b600491509101905f612bf7565b600891509101905f612bec565b601091509101905f612be1565b602091509101905f612bd6565b604091509101905f612bcb565b9150506080905f612bc0565b91905b838210612cd25750505090565b909192808316906001818518811c8301809311611cd357855f5265ffffffffffff808460205f20015416908516105f14612d11575050925b9190612cc5565b909493508101809111611cd35791612d0a565b612d2c6132bf565b612d346132bf565b60015f8051602061330e83398151915255565b60405190612d5482610d48565b5f6040838281528260208201520152565b81601f8201121561031a578051916020916001600160401b038411610d43578360051b9060405194612d9985840187610d7e565b8552838086019282010192831161031a578301905b828210612dbc575050505090565b8380918351612dca8161031e565b815201910190612dae565b9060208282031261031a5781516001600160401b039283821161031a5701908181039260a0841261031a57606060405194612e0f86610d48565b1261031a57604051612e2081610d48565b8351612e2b8161031e565b81526020840151612e3b8161031e565b60208201526040840151612e4e8161031e565b60408201528452606083015181811161031a5782612e6d918501612d65565b6020850152608083015190811161031a57612e889201612d65565b604082015290565b8051821015611f0a5760209160051b010190565b612ec090612eb0612d47565b5060208082518301019101612dd5565b8051519091906001600160a01b03161580612fea575b612fd8579060208101905f5b82518051821015612f5c576112e9612efd83612f0a93612e90565b516001600160a01b031690565b15612f4a57612f2c612f28612f23612efd848751612e90565b612456565b1590565b612f3857600101612ee2565b604051635140fefd60e11b8152600490fd5b6040516323cda06760e01b8152600490fd5b506040925050818101905f5b82518051821015612fcf576112e9612efd83612f8393612e90565b15612fbe57612fa1612f28612f9c612efd848751612e90565b6124c4565b612fad57600101612f68565b8351635140fefd60e11b8152600490fd5b83516323cda06760e01b8152600490fd5b50509150505190565b6040516303501f5960e11b8152600490fd5b506020820151511580612ed6575060408201515115612ed6565b908154905f82916005841161306e575b61301f935084612cc2565b8061304757505f905b6001600160d01b03821615611d5b57610ff99160016120d89201611ef5565b61306161305661306892611f4a565b835f5260205f200190565b5460301c90565b90613028565b919261307981612b8f565b8103908111611cd35761301f93855f5265ffffffffffff808360205f20015416908516105f146130aa575091613014565b9291506130b690611cc5565b90613014565b604051906130c982610d28565b5f6020838281520152565b906130fd6130f761311e926130e76130bc565b506130f06130bc565b5084611ef5565b50612100565b91600165ffffffffffff845116936020828060d01b03910151169101611ef5565b9054906040519261312e84610d28565b835260031b1c602082015290565b9080821015613149575090565b905090565b8054600160401b811015610d435761316b91600182018155611ef5565b61319657815160209092015160301b65ffffffffffff191665ffffffffffff92909216919091179055565b634e487b7160e01b5f525f60045260245ffd5b805492939291908215613296576131c561216d61305685611f4a565b906131d6825165ffffffffffff1690565b65ffffffffffff8481169116811061328457611fae9460209488926132046121f6875165ffffffffffff1690565b0361324c575061323e9261321a61322592611f4a565b905f5260205f200190565b9065ffffffffffff82549181199060301b169116179055565b01516001600160d01b031690565b91505061327f9161326c61325e610dae565b65ffffffffffff9093168352565b6001600160d01b0388168286015261314e565b61323e565b604051632520601d60e01b8152600490fd5b6132ba92506132a661325e610dae565b6001600160d01b038516602083015261314e565b5f9190565b60ff5f8051602061332e8339815191525460401c16156132db57565b604051631afcd79f60e31b8152600490fdfe02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268009b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a2646970667358221220b421717b7d05d309a1df30bec4959e6ea43c0ac83de4ab4b577f6f1e9cb2fa1664736f6c63430008190033","sourceMap":"765:2461:86:-:0;;;;;-1:-1:-1;;;;;765:2461:86;;;;;;;;-1:-1:-1;;765:2461:86;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;348:4:87;;332:21;;8837:64:26;765:2461:86;;;;;;;7896:76:26;;765:2461:86;;;;;;7985:34:26;7981:146;;-1:-1:-1;525:17:74;;;-1:-1:-1;525:17:74;;-1:-1:-1;552:12:74;;-1:-1:-1;2360:34:81;;2404:28;;-1:-1:-1;2404:28:81;;2442:57;;-1:-1:-1;2442:57:81;;2509:61;;-1:-1:-1;2509:61:81;;1248:40:86;;;;;765:2461;;1352:79;;;;;;;;;;;;;;;;;;;;;;;348:4:87;765:2461:86;;-1:-1:-1;;;;;765:2461:86;;;;;;;;;;;;;;;;;1352:79;;;-1:-1:-1;1352:79:86;;;;;;765:2461;;;;;1298:134;;;765:2461;;1298:134;;765:2461;;1493:76;;;;;;;;;;;;;;;;;;;;;;;348:4:87;765:2461:86;;-1:-1:-1;;;;;765:2461:86;;;;;;;;;;;;;;;;;1493:76;;;-1:-1:-1;1493:76:86;;;;;;1442:128;765:2461;;1442:128;;765:2461;;;;;;;;332:21:87;765:2461:86;;;;525:17:74;765:2461:86;;;;;552:12:74;765:2461:86;;;;;2360:34:81;765:2461:86;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1493:76;765:2461;;;-1:-1:-1;765:2461:86;;;;;1493:76;765:2461;;;-1:-1:-1;765:2461:86;;;;;-1:-1:-1;765:2461:86;1352:79;765:2461;;;-1:-1:-1;765:2461:86;;;;;7981:146:26;-1:-1:-1;;;;;;765:2461:86;;;;;;;;;8087:29:26;;765:2461:86;;8087:29:26;7981:146;;;;;7896:76;765:2461:86;;-1:-1:-1;;;7938:23:26;;;;;765:2461:86;-1:-1:-1;765:2461:86;;;;;-1:-1:-1;;;;;765:2461:86;;;;;;:::o","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361015610011575f80fd5b5f3560e01c806301ffc9a714610214578063075db0361461020f578063103f29071461020a578063128e5d82146102055780631a80e500146102005780631bf10a3e146101fb57806323f752d5146101f6578063248a9ca3146101f157806325dc9708146101ec5780632dd31000146101e75780632f2ff15d146101e257806336568abe146101dd5780633dfd3873146101d8578063439fab91146101d3578063557cab44146101ce5780636679191e146101c95780637f5a7c7b146101c457806391d14854146101bf5780639b656b22146101ba5780639f86fd85146101b5578063a217fddf146101b0578063bb24fe8a146101ab578063c0cd7c3e146101a6578063d15b740e146101a1578063d547741f1461019c578063e02f693714610197578063e102831a14610192578063e49561ee1461018d578063fbfa77cf14610188578063fd4d447c14610183578063ff54740f1461017e5763ffa1ad7414610179575f80fd5b61108a565b61106d565b61103b565b611014565b610e29565b610de5565b610d02565b610bf1565b610bc7565b610b83565b610b40565b610b26565b610a6c565b610a28565b6109ca565b6109a2565b610968565b61094c565b61080f565b6106e9565b61069e565b610652565b61060e565b6105f1565b6105b8565b61043c565b610407565b61033a565b6102f6565b6102b2565b61026e565b3461026a57602036600319011261026a5760043563ffffffff60e01b811680910361026a57602090637965db0b60e01b8114908115610259575b506040519015158152f35b6301ffc9a760e01b1490505f61024e565b5f80fd5b3461026a575f36600319011261026a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461026a575f36600319011261026a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461026a575f36600319011261026a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461026a575f36600319011261026a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b6001600160a01b0381160361026a57565b6064359065ffffffffffff8216820361026a57565b608090600319011261026a576004356103bc8161037e565b90602435906044356103cd8161037e565b9060643565ffffffffffff8116810361026a5790565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b3461026a5761043861042461041b366103a4565b92919091611168565b6040519182916020835260208301906103e3565b0390f35b3461026a57604036600319011261026a576004356001600160601b038116810361026a576024359061046c611732565b6040516302910f8b60e31b81523360048201526020816024816001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165afa9081156105b3575f91610584575b5015610572576001600160601b03166bffffffffffffffffffffffff193360601b161790806104f6835f52600260205260405f2090565b541461056057610545817fc67e7929681aa1bccd63f52b3799bf5805f3009f197db6fdf584b14f7fbf608c92610534855f52600260205260405f2090565b556040519081529081906020820190565b0390a261055e60015f80516020611bf383398151915255565b005b60405163a741a04560e01b8152600490fd5b6040516323d53b9760e21b8152600490fd5b6105a6915060203d6020116105ac575b61059e8183610c71565b8101906113b9565b5f6104bf565b503d610594565b6110bd565b3461026a57602036600319011261026a576004355f525f80516020611bd38339815191526020526020600160405f200154604051908152f35b3461026a57610438610424610605366103a4565b929190916113f0565b3461026a575f36600319011261026a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461026a57604036600319011261026a5761055e6024356004356106758261037e565b805f525f80516020611bd3833981519152602052610699600160405f200154611761565b611918565b3461026a57604036600319011261026a576024356106bb8161037e565b336001600160a01b038216036106d75761055e9060043561194e565b60405163334bd91960e11b8152600490fd5b3461026a57602036600319011261026a576004356107068161037e565b61070e611732565b335f9081527f9ebbcbe0d2961d3fbe56ca6f679bc753bd848d3e6bb3eaf9041c51b286881d2c60205260409020547fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c9060ff16156107c457506001546001600160a01b039182169181168214610560576001600160a01b03191681176001557f5bbb1d3ebb6a3ad2a0f17ff35e579a83af60604d1d3c2a4c83c62adecadf666d5f80a260015f80516020611bf383398151915255005b6044906040519063e2517d3f60e01b82523360048301526024820152fd5b9181601f8401121561026a578235916001600160401b03831161026a576020838186019501011161026a57565b3461026a57602036600319011261026a576001600160401b0360043581811161026a576108409036906004016107e2565b5f80516020611c13833981519152549260ff8460401c1615931680159081610944575b600114908161093a575b159081610931575b5061091f575f80516020611c13833981519152805467ffffffffffffffff191660011790556108a891836108f657611a16565b6108ae57005b5f80516020611c13833981519152805460ff60401b19169055604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a1005b5f80516020611c13833981519152805460ff60401b191668010000000000000000179055611a16565b60405163f92ee8a960e01b8152600490fd5b9050155f610875565b303b15915061086d565b849150610863565b3461026a575f36600319011261026a576020604051614e208152f35b3461026a575f36600319011261026a5760206040517fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c8152f35b3461026a575f36600319011261026a576001546040516001600160a01b039091168152602090f35b3461026a57604036600319011261026a57602060ff610a1c6024356109ee8161037e565b6004355f525f80516020611bd3833981519152845260405f209060018060a01b03165f5260205260405f2090565b54166040519015158152f35b3461026a575f36600319011261026a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461026a5760408060031936011261026a57600435610a8a8161037e565b602435906001600160401b03821161026a575f8091610ab0610b149436906004016107e2565b908187519283928337810184815203915af43d15610b1c57610b063d610ad581610ca1565b90610ae286519283610c71565b81523d5f602083013e5b8451948593151560208501528084015260608301906103e3565b03601f198101835282610c71565b805190602001fd5b610b066060610aec565b3461026a575f36600319011261026a5760206040515f8152f35b3461026a575f36600319011261026a5760206040516001600160401b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461026a575f36600319011261026a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461026a57602036600319011261026a576004355f526002602052602060405f2054604051908152f35b3461026a57604036600319011261026a5761055e602435600435610c148261037e565b805f525f80516020611bd3833981519152602052610c38600160405f200154611761565b61194e565b634e487b7160e01b5f52604160045260245ffd5b604081019081106001600160401b03821117610c6c57604052565b610c3d565b90601f801991011681019081106001600160401b03821117610c6c57604052565b60405190610c9f82610c51565b565b6001600160401b038111610c6c57601f01601f191660200190565b81601f8201121561026a57803590610cd382610ca1565b92610ce16040519485610c71565b8284526020838301011161026a57815f926020809301838601378301015290565b3461026a5760808060031936011261026a57610d1f60243561037e565b60443565ffffffffffff81160361026a576001600160401b0360643581811161026a57610d50903690600401610cbc565b5060606020604051610d6181610c51565b828152015260605180610d79575b60206040515f8152f35b8281016020821261026a5783519183831161026a5782604091031261026a5760405193610da585610c51565b8281015184811161026a578282610dbe928601016110c8565b855260a083015193841161026a57602093610dda9301016110c8565b9101525f8080610d6f565b3461026a575f36600319011261026a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461026a5760a036600319011261026a57602435600435610e498261037e565b60443591610e5561038f565b90608435906001600160401b03821161026a57610e7760049236908401610cbc565b610e7f611732565b5f54602090610ea490610e98906001600160a01b031681565b6001600160a01b031690565b60405163b134427160e01b815294859182905afa9283156105b3575f93610fe3575b506001600160a01b039283163303610fd1576001546001600160a01b0316838116610f46575b50506040805195865265ffffffffffff909316602086015216927f741a5de99085c0d660f3e4192217b0ffb0ea4e35a0480de48e857a4bc3ee36ed91819081015b0390a361055e60015f80516020611bf383398151915255565b909360405194610f7d86610f6f602082019363724ab0f760e11b8552858c898d602487016115d0565b03601f198101885287610c71565b62042e305a10610fbf575f610f2d938192827f741a5de99085c0d660f3e4192217b0ffb0ea4e35a0480de48e857a4bc3ee36ed9951926203d090f15093610eec565b604051638072475160e01b8152600490fd5b60405163dabc4ad960e01b8152600490fd5b61100691935060203d60201161100d575b610ffe8183610c71565b8101906110a5565b915f610ec6565b503d610ff4565b3461026a575f36600319011261026a575f546040516001600160a01b039091168152602090f35b3461026a57604036600319011261026a57602061106560243561105d8161037e565b600435611608565b604051908152f35b3461026a575f36600319011261026a5760206040516203d0908152f35b3461026a575f36600319011261026a57602060405160018152f35b9081602091031261026a57516110ba8161037e565b90565b6040513d5f823e3d90fd5b81601f8201121561026a578051906110df82610ca1565b926110ed6040519485610c71565b8284526020838301011161026a57815f9260208093018386015e8301015290565b9060208282031261026a5781516001600160401b03811161026a576110ba92016110c8565b906110ba91602081526020611153835160408385015260608401906103e3565b920151906040601f19828503019101526103e3565b604080516309472ec160e11b8152606096956001600160a01b039384169591946020949192917f0000000000000000000000000000000000000000000000000000000000000000169085876004818b5afa9687156105b3575f9761139a575b50845163fbfa77cf60e01b81529686886004818c5afa80156105b357855f9161123b9a839161137d575b508851636a531c3160e11b8082526001600160a01b039586166004830152858916602483015294909116604482015265ffffffffffff909116606482015298899081906084820190565b0381865afa9788156105b3575f98611358575b508686979899600496975196878092621a80e560e81b82525afa9485156105b3575f95611335575b5086519081526001600160a01b03948516600482015293909216602484015260609190911c604483015265ffffffffffff9092166064820152905f9082908180608481015b03915afa9081156105b3575f91611313575b50835115801590611309575b6112e35750505050565b6110ba9394955090610b06916112f7610c92565b95865283860152519384928301611133565b50805115156112d9565b61132f91503d805f833e6113278183610c71565b81019061110e565b5f6112cd565b5f95506113516112bb918a3d8c1161100d57610ffe8183610c71565b9550611276565b8798509661137360049697983d805f833e6113278183610c71565b989796955061124e565b61139491508a3d8c1161100d57610ffe8183610c71565b5f6111f1565b6113b2919750863d881161100d57610ffe8183610c71565b955f6111c7565b9081602091031261026a5751801515810361026a5790565b9081602091031261026a57516001600160401b038116810361026a5790565b604051635d927f4560e11b8082526060969594936001600160a01b03939092909160209190858416908383600481855afa9283156105b3575f936115b1575b506001600160401b039283166114d65750506040516304bb92e160e31b81526001600160a01b0393841660048201526024810194909452505092909216604483015265ffffffffffff9290921660648201529192505f90829060849082907f0000000000000000000000000000000000000000000000000000000000000000165afa9081156105b3575f916114c2575090565b6110ba91503d805f833e6113278183610c71565b839060046040518094819382525afa9081156105b3576001935f92611584575b50501614611505575050505050565b6040516304bb92e160e31b81526001600160a01b039182166004820152602481019290925292909216604483015265ffffffffffff9290921660648201529192505f90829060849082907f0000000000000000000000000000000000000000000000000000000000000000165afa9081156105b3575f916114c2575090565b6115a39250803d106115aa575b61159b8183610c71565b8101906113d1565b5f806114f6565b503d611591565b6115c9919350843d86116115aa5761159b8183610c71565b915f61142f565b919360a0936110ba969565ffffffffffff938552600180871b03166020850152604084015216606082015281608082015201906103e3565b5f546040516308834cb560e21b8082526001600160a01b038581166004840152928316602483015293602092909183816044817f000000000000000000000000000000000000000000000000000000000000000086165afa9081156105b3575f91611715575b501593841561168a575b505050509050611686575f90565b5f90565b6040519586526001600160a01b0392909216600486015260609190911c6024850152909291508290829060449082907f0000000000000000000000000000000000000000000000000000000000000000165afa9182156105b3575f926116f8575b505015805f808080611678565b61170e9250803d106105ac5761059e8183610c71565b5f806116eb565b61172c9150843d86116105ac5761059e8183610c71565b5f61166e565b5f80516020611bf3833981519152600281541461174f5760029055565b604051633ee5aeb560e01b8152600490fd5b5f8181525f80516020611bd38339815191526020908152604080832033845290915290205460ff16156107c45750565b6001600160a01b0381165f9081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d60205260409020545f80516020611bd38339815191529060ff1661183c575f808052602091825260408082206001600160a01b038516835290925220805460ff1916600117905533906001600160a01b03165f7f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d8180a4600190565b50505f90565b6001600160a01b0381165f9081527f9ebbcbe0d2961d3fbe56ca6f679bc753bd848d3e6bb3eaf9041c51b286881d2c602052604090207fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c905f80516020611bd38339815191529060ff905b5416611911575f828152602091825260408082206001600160a01b038616835290925220805460ff1916600117905533916001600160a01b0316907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d5f80a4600190565b5050505f90565b5f8181525f80516020611bd3833981519152602081815260408084206001600160a01b038716855290915290912060ff906118ad565b5f8181525f80516020611bd3833981519152602081815260408084206001600160a01b03871685529091529091205460ff1615611911575f828152602091825260408082206001600160a01b038616835290925220805460ff1916905533916001600160a01b0316907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b5f80a4600190565b91909160408184031261026a5780356119f88161037e565b9260208201356001600160401b03811161026a576110ba9201610cbc565b611a22918101906119e0565b506040516302910f8b60e31b81526001600160a01b0391821660048201819052906020816024817f000000000000000000000000000000000000000000000000000000000000000087165afa9081156105b3575f91611b34575b5015611b2257611aa990611a8e611b53565b60018060a01b03166001600160601b0360a01b5f5416175f55565b611afc6040611ab6611b76565b6020810151600180546001600160a01b0319166001600160a01b0390921691909117905580516001600160a01b0316848116611b12575b5001516001600160a01b031690565b908116611b065750565b611b0f90611842565b50565b611b1b90611791565b505f611aed565b6040516362df054560e01b8152600490fd5b611b4d915060203d6020116105ac5761059e8183610c71565b5f611a7c565b611b5b611ba4565b611b63611ba4565b60015f80516020611bf383398151915255565b60405190606082018281106001600160401b03821117610c6c576040525f6040838281528260208201520152565b60ff5f80516020611c138339815191525460401c1615611bc057565b604051631afcd79f60e31b8152600490fdfe02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268009b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a264697066735822122041486f336ebdaac65e19ef0126b717f646b1c1410340c7bde35e3c51d12dd2d964736f6c63430008190033","sourceMap":"765:2461:86:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;;;;;-1:-1:-1;;765:2461:86;;;;;;;;;;;;;;;;;;-1:-1:-1;;;3551:47:24;;;:87;;;;765:2461:86;;;;;;;;;;3551:87:24;-1:-1:-1;;;1133:40:30;;-1:-1:-1;3551:87:24;;;765:2461:86;-1:-1:-1;765:2461:86;;;;;;;;-1:-1:-1;;765:2461:86;;;;;;957:56;-1:-1:-1;;;;;765:2461:86;;;;;;;;;;;;-1:-1:-1;;765:2461:86;;;;;;1537:38:81;-1:-1:-1;;;;;765:2461:86;;;;;;;;;;;;-1:-1:-1;;765:2461:86;;;;;;1632:54:81;-1:-1:-1;;;;;765:2461:86;;;;;;;;;;;;-1:-1:-1;;765:2461:86;;;;;;1743:56:81;-1:-1:-1;;;;;765:2461:86;;;;;;;-1:-1:-1;;;;;765:2461:86;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;765:2461:86;;;;;;;;-1:-1:-1;;765:2461:86;;;;:::o;:::-;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;765:2461:86;;;;;;-1:-1:-1;;;;;765:2461:86;;;;;;;;3217:103:29;;;:::i;:::-;765:2461:86;;-1:-1:-1;;;4285:48:81;;4322:10;765:2461:86;4285:48:81;;765:2461:86;;;;;-1:-1:-1;;;;;4295:16:81;765:2461:86;4285:48:81;;;;;;;-1:-1:-1;4285:48:81;;;765:2461:86;4284:49:81;;4280:99;;-1:-1:-1;;;;;765:2461:86;-1:-1:-1;;4322:10:81;297:2:93;765:2461:86;;267:46:93;4459:27:81;;;;765:2461:86;;4459:15:81;765:2461:86;;;;;;;4459:27:81;765:2461:86;4459:37:81;4455:87;;4654:38;4552:27;4654:38;4552:27;;;765:2461:86;;4459:15:81;765:2461:86;;;;;;;4552:27:81;765:2461:86;;;;;;;;;;;;;;4654:38:81;;;;3282:1:29;1805;-1:-1:-1;;;;;;;;;;;765:2461:86;3716:283:29;3282:1;765:2461:86;4455:87:81;765:2461:86;;-1:-1:-1;;;4519:12:81;;765:2461:86;;4519:12:81;4280:99;765:2461:86;;-1:-1:-1;;;4356:12:81;;765:2461:86;;4356:12:81;4285:48;;;;765:2461:86;4285:48:81;765:2461:86;4285:48:81;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;:::i;765:2461:86:-;;;;;;-1:-1:-1;;765:2461:86;;;;;;-1:-1:-1;765:2461:86;-1:-1:-1;;;;;;;;;;;765:2461:86;;;4919:24:24;765:2461:86;-1:-1:-1;765:2461:86;4919:24:24;765:2461:86;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;-1:-1:-1;;765:2461:86;;;;;;322:32:74;-1:-1:-1;;;;;765:2461:86;;;;;;;;;;;;-1:-1:-1;;765:2461:86;;;;5350:25:24;765:2461:86;;;;;;;:::i;:::-;;-1:-1:-1;765:2461:86;-1:-1:-1;;;;;;;;;;;765:2461:86;;3202:4:24;4919:24;765:2461:86;-1:-1:-1;765:2461:86;4919:24:24;765:2461:86;3202:4:24;:::i;:::-;5350:25;:::i;765:2461:86:-;;;;;;-1:-1:-1;;765:2461:86;;;;;;;;;:::i;:::-;966:10:28;-1:-1:-1;;;;;765:2461:86;;6441:34:24;6437:102;;6549:37;765:2461:86;;;6549:37:24;:::i;6437:102::-;765:2461:86;;-1:-1:-1;;;6498:30:24;;765:2461:86;;6498:30:24;765:2461:86;;;;;;-1:-1:-1;;765:2461:86;;;;;;;;;:::i;:::-;3217:103:29;;:::i;:::-;966:10:28;-1:-1:-1;765:2461:86;;;;;;;;;;1356:26:81;;765:2461:86;;4468:23:24;4464:108;;-1:-1:-1;4861:4:81;765:2461:86;-1:-1:-1;;;;;765:2461:86;;;;;;4861:13:81;;4857:63;;-1:-1:-1;;;;;;765:2461:86;;;4861:4:81;765:2461:86;4958:14:81;-1:-1:-1;;4958:14:81;4861:4;-1:-1:-1;;;;;;;;;;;765:2461:86;;4464:108:24;765:2461:86;;;;4514:47:24;;;;;;966:10:28;765:2461:86;4514:47:24;;765:2461:86;;;;;4514:47:24;765:2461:86;;;;;;;;;;;;;-1:-1:-1;;;;;765:2461:86;;;;;;;;;;;;;;;:::o;:::-;;;;;;-1:-1:-1;;765:2461:86;;;;-1:-1:-1;;;;;765:2461:86;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;765:2461:86;;;;;;;4301:16:26;765:2461:86;;4726:16:26;;:34;;;;765:2461:86;4805:1:26;4790:16;:50;;;;765:2461:86;4855:13:26;:30;;;;765:2461:86;4851:91:26;;;-1:-1:-1;;;;;;;;;;;765:2461:86;;-1:-1:-1;;765:2461:86;;;;;718:4:74;;4951:18:26;4979:67;;718:4:74;:::i;:::-;5066:101:26;;765:2461:86;5066:101:26;-1:-1:-1;;;;;;;;;;;765:2461:86;;-1:-1:-1;;;;765:2461:86;;;;;-1:-1:-1;765:2461:86;;5142:14:26;;765:2461:86;;5142:14:26;765:2461:86;4979:67:26;-1:-1:-1;;;;;;;;;;;765:2461:86;;-1:-1:-1;;;;765:2461:86;;;;;718:4:74;:::i;4851:91:26:-;765:2461:86;;-1:-1:-1;;;4908:23:26;;765:2461:86;;4908:23:26;4855:30;4872:13;;;4855:30;;;4790:50;4818:4;4810:25;:30;;-1:-1:-1;4790:50:26;;4726:34;;;-1:-1:-1;4726:34:26;;765:2461:86;;;;;;-1:-1:-1;;765:2461:86;;;;;;;1253:6:81;765:2461:86;;;;;;;;;-1:-1:-1;;765:2461:86;;;;;;;1356:26:81;765:2461:86;;;;;;;;;-1:-1:-1;;765:2461:86;;;;;;;;-1:-1:-1;;;;;765:2461:86;;;;;;;;;;;;;;-1:-1:-1;;765:2461:86;;;;;;3901:31:24;765:2461:86;;;;;:::i;:::-;;;-1:-1:-1;765:2461:86;-1:-1:-1;;;;;;;;;;;765:2461:86;;;-1:-1:-1;765:2461:86;;;;;;;;;;;;;;;;;3901:31:24;765:2461:86;;;;;;;;;;;;;;;;-1:-1:-1;;765:2461:86;;;;;;906:45;-1:-1:-1;;;;;765:2461:86;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;765:2461:86;;;;-1:-1:-1;765:2461:86;;;477:31:80;765:2461:86;;;;;;:::i;:::-;;;;;;;;;;;;;;;416:25:80;;;;765:2461:86;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;-1:-1:-1;765:2461:86;;;;;;;;;;;;;477:31:80;;765:2461:86;;;;;;;;;;:::i;:::-;477:31:80;765:2461:86;;477:31:80;;;;;;:::i;:::-;518:79;;;765:2461:86;518:79:80;;765:2461:86;;;;;;;;;;;-1:-1:-1;;765:2461:86;;;;;;;;;;;;;;;;;-1:-1:-1;;765:2461:86;;;;;;;-1:-1:-1;;;;;404:28:74;765:2461:86;;;;;;;;;;-1:-1:-1;;765:2461:86;;;;;;1439:41:81;-1:-1:-1;;;;;765:2461:86;;;;;;;;;;;;-1:-1:-1;;765:2461:86;;;;;;-1:-1:-1;765:2461:86;2009:67:81;765:2461:86;;;;-1:-1:-1;765:2461:86;;;;;;;;;;;;;;-1:-1:-1;;765:2461:86;;;;5767:26:24;765:2461:86;;;;;;;:::i;:::-;;-1:-1:-1;765:2461:86;-1:-1:-1;;;;;;;;;;;765:2461:86;;3202:4:24;4919:24;765:2461:86;-1:-1:-1;765:2461:86;4919:24:24;765:2461:86;3202:4:24;:::i;:::-;5767:26;:::i;765:2461:86:-;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;765:2461:86;;;;;;;:::o;:::-;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;765:2461:86;;;;;;;:::o;:::-;;;;;;;:::i;:::-;:::o;:::-;-1:-1:-1;;;;;765:2461:86;;;;;;-1:-1:-1;;765:2461:86;;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;765:2461:86;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;765:2461:86;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;3086:20:81;3082:107;;765:2461:86;;;;-1:-1:-1;765:2461:86;;;3082:107:81;3139:39;;;765:2461:86;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;3082:107:81;;;;;765:2461:86;;;;;;-1:-1:-1;;765:2461:86;;;;;;1019:53;-1:-1:-1;;;;;765:2461:86;;;;;;;;;;;;-1:-1:-1;;765:2461:86;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;-1:-1:-1;;;;;765:2461:86;;;;;;;;;;;;:::i;:::-;3217:103:29;;:::i;:::-;-1:-1:-1;765:2461:86;;;5246:21:81;;:13;;-1:-1:-1;;;;;765:2461:86;5246:13:81;765:2461:86;;-1:-1:-1;;;;;765:2461:86;;;5246:21:81;765:2461:86;;-1:-1:-1;;;5246:23:81;;765:2461:86;;;;;5246:23:81;;;;;;;-1:-1:-1;5246:23:81;;;765:2461:86;-1:-1:-1;;;;;;765:2461:86;;;5232:10:81;:37;5228:87;;5341:4;765:2461:86;-1:-1:-1;;;;;765:2461:86;;;;5355:469:81;;765:2461:86;-1:-1:-1;;765:2461:86;;;;;;;;;;;;;;;;5839:55:81;;765:2461:86;;;;5839:55:81;;;;3282:1:29;1805;-1:-1:-1;;;;;;;;;;;765:2461:86;3716:283:29;5355:469:81;765:2461:86;;;;5435:94:81;;;;765:2461:86;5435:94:81;;;;;;;;;;;;765:2461:86;5435:94:81;;;:::i;:::-;;765:2461:86;;5435:94:81;;;;;;:::i;:::-;765:2461:86;5548:9:81;:51;5544:118;;-1:-1:-1;5839:55:81;5676:138;;;;5839:55;5676:138;;;1150:7;5676:138;;5355:469;;;5544:118;765:2461:86;;-1:-1:-1;;;5626:21:81;;765:2461:86;;5626:21:81;5228:87;765:2461:86;;-1:-1:-1;;;5292:12:81;;765:2461:86;;5292:12:81;5246:23;;;;;765:2461:86;5246:23:81;765:2461:86;5246:23:81;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;765:2461:86;;;;;;-1:-1:-1;;765:2461:86;;;;;;;;-1:-1:-1;;;;;765:2461:86;;;;;;;;;;;;;;-1:-1:-1;;765:2461:86;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;765:2461:86;;;;;;;1150:7:81;765:2461:86;;;;;;;;;-1:-1:-1;;765:2461:86;;;;;;;2700:1:81;765:2461:86;;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;765:2461:86;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;;;;765:2461:86;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;2213:1011::-;765:2461;;;-1:-1:-1;;;2498:56:86;;765:2461;;2213:1011;-1:-1:-1;;;;;765:2461:86;;;;;;2498:56;;2213:1011;;;2453:20;765:2461;;2498:56;765:2461;2498:56;765:2461;;2498:56;;;;;;;;;;;2213:1011;-1:-1:-1;765:2461:86;;-1:-1:-1;;;2590:32:86;;765:2461;2590:32;765:2461;2498:56;765:2461;2590:32;;;;;;;;2498:56;2590:32;2435:220;2590:32;;;;;2213:1011;-1:-1:-1;765:2461:86;;-1:-1:-1;;;2435:220:86;;;-1:-1:-1;;;;;765:2461:86;;;2498:56;2435:220;;765:2461;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2435:220;;;;;;;;;;;2498:56;2435:220;;;2213:1011;765:2461;;;;;;2498:56;765:2461;;;;;;;;;;2768:58;;;;;;;;;2498:56;2768:58;;;2213:1011;-1:-1:-1;765:2461:86;;2705:174;;;-1:-1:-1;;;;;765:2461:86;;;2498:56;2705:174;;765:2461;;;;;;;;;;;;;;;;;;;;;;;;;;;2498:56;;765:2461;;;;;;;2705:174;;;;;;;;;;2498:56;2705:174;;;2213:1011;765:2461;;;2894:34;;;:74;;;2213:1011;2890:328;;2213:1011;;;;:::o;2890:328::-;2991:216;765:2461;;;;;2991:216;765:2461;;;:::i;:::-;;;;3019:174;;;765:2461;;2991:216;;;;;;:::i;2894:74::-;765:2461;;;2932:36;;2894:74;;2705:174;;;;;;2498:56;2705:174;;;;;;:::i;:::-;;;;;:::i;:::-;;;;2768:58;2498:56;2768:58;;;2705:174;2768:58;;;;;;;;;;;:::i;:::-;;;;;2435:220;;;;;;2498:56;2435:220;;;;;2498:56;2435:220;;;;;;:::i;:::-;;;;;;;;2590:32;;;;;;;;;;;;;;:::i;:::-;;;;2498:56;;;;;;;;;;;;;;;:::i;:::-;;;;;765:2461;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;-1:-1:-1;;;;;765:2461:86;;;;;;;:::o;1583:624::-;765:2461;;-1:-1:-1;;;1765:31:86;;;765:2461;;1583:624;;;-1:-1:-1;;;;;765:2461:86;1583:624;;;;1765:31;;765:2461;;;;;1765:31;765:2461;1765:31;765:2461;;1765:31;;;;;;;;;;;1583:624;-1:-1:-1;;;;;;765:2461:86;;;;;-1:-1:-1;;765:2461:86;;-1:-1:-1;;;1824:146:86;;-1:-1:-1;;;;;765:2461:86;;;1765:31;1824:146;;765:2461;;;;;;;;-1:-1:-1;;765:2461:86;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;765:2461:86;;;;;;1853:31;765:2461;1824:146;;;;;;;1765:31;1824:146;;;1817:153;;:::o;1824:146::-;;;;;;1765:31;1824:146;;;;;;:::i;1761:440::-;765:2461;;1765:31;765:2461;;1991:31;;;;;;;;;;;;;2026:1;1991:31;1765;1991;;;1761:440;765:2461;;;1991:36;1987:214;;1761:440;;;;;1583:624::o;1987:214::-;765:2461;;-1:-1:-1;;;2050:140:86;;-1:-1:-1;;;;;765:2461:86;;;1765:31;2050:140;;765:2461;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;765:2461:86;;;;;;2076:28;765:2461;2050:140;;;;;;;1765:31;2050:140;;;2043:147;;:::o;1991:31::-;;;;;;-1:-1:-1;1991:31:86;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;1765;;;;;;;;;;;;;;;:::i;:::-;;;;;765:2461;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;3740:389:81:-;3918:5;765:2461:86;;;-1:-1:-1;;;3853:71:81;;;-1:-1:-1;;;;;765:2461:86;;;3853:71:81;;;765:2461:86;;;;;;;;;3853:71:81;;765:2461:86;;3853:71:81;765:2461:86;;;3867:29:81;765:2461:86;;3853:71:81;;;;;;;3918:5;3853:71;;;3740:389;3852:72;;765:2461:86;;;3852:181:81;;3740:389;3835:242;;;;;;;;3918:5;3740:389;:::o;3835:242::-;3918:5;4058:8;:::o;3852:181::-;765:2461:86;;3945:88:81;;;-1:-1:-1;;;;;765:2461:86;;;;3853:71:81;3945:88;;765:2461:86;467:2:93;765:2461:86;;;;;;;;;;;-1:-1:-1;765:2461:86;;;;;;;;3959:31:81;765:2461:86;3945:88:81;;;;;;;3918:5;3945:88;;;3852:181;3944:89;;;3852:181;;;;;;;3945:88;;;;;;-1:-1:-1;3945:88:81;;;;;;:::i;:::-;;;;;3853:71;;;;;;;;;;;;;;:::i;:::-;;;;3326:384:29;-1:-1:-1;;;;;;;;;;;1847:1:29;765:2461:86;;3526:20:29;3522:88;;1847:1;765:2461:86;;3326:384:29:o;3522:88::-;765:2461:86;;-1:-1:-1;;;3569:30:29;;;;;4148:103:24;-1:-1:-1;765:2461:86;;;-1:-1:-1;;;;;;;;;;;765:2461:86;;;;;;;;966:10:28;765:2461:86;;;;;;;;;;4468:23:24;4464:108;;4148:103;:::o;7270:387::-;-1:-1:-1;;;;;765:2461:86;;-1:-1:-1;765:2461:86;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2887:71:24;765:2461:86;;;;-1:-1:-1;765:2461:86;;;;;;;;;;;-1:-1:-1;;;;;765:2461:86;;;;;;;;;;-1:-1:-1;;765:2461:86;7509:4:24;765:2461:86;;;966:10:28;;-1:-1:-1;;;;;765:2461:86;-1:-1:-1;7532:40:24;-1:-1:-1;;7532:40:24;7509:4;7586:11;:::o;7432:219::-;7628:12;;-1:-1:-1;7628:12:24;:::o;7270:387::-;-1:-1:-1;;;;;765:2461:86;;-1:-1:-1;765:2461:86;;;;;;;;;1356:26:81;;-1:-1:-1;;;;;;;;;;;2887:71:24;765:2461:86;;3901:31:24;765:2461:86;;;;-1:-1:-1;765:2461:86;;;;;;;;;;;-1:-1:-1;;;;;765:2461:86;;;;;;;;;;-1:-1:-1;;765:2461:86;7509:4:24;765:2461:86;;;966:10:28;;-1:-1:-1;;;;;765:2461:86;;7532:40:24;-1:-1:-1;;7532:40:24;7509:4;7586:11;:::o;7432:219::-;7628:12;;;-1:-1:-1;7628:12:24;:::o;7270:387::-;-1:-1:-1;765:2461:86;;;-1:-1:-1;;;;;;;;;;;765:2461:86;;;;;;;;-1:-1:-1;;;;;765:2461:86;;;;;;;;;;;;3901:31:24;765:2461:86;7892:388:24;-1:-1:-1;765:2461:86;;;-1:-1:-1;;;;;;;;;;;765:2461:86;;;;;;;;-1:-1:-1;;;;;765:2461:86;;;;;;;;;;;;;;;;-1:-1:-1;765:2461:86;;;;;;;;;;;-1:-1:-1;;;;;765:2461:86;;;;;;;;;;-1:-1:-1;;765:2461:86;;;966:10:28;;-1:-1:-1;;;;;765:2461:86;;8155:40:24;-1:-1:-1;;8155:40:24;765:2461:86;8209:11:24;:::o;765:2461:86:-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;765:2461:86;;;;;;;;:::i;5907:716:81:-;6030:34;5907:716;6030:34;;;;:::i;:::-;-1:-1:-1;765:2461:86;;-1:-1:-1;;;6080:41:81;;-1:-1:-1;;;;;765:2461:86;;;6080:41:81;;;765:2461:86;;;;6080:41:81;765:2461:86;;;6090:13:81;765:2461:86;;6080:41:81;;;;;;;-1:-1:-1;6080:41:81;;;5907:716;6079:42;;6075:90;;6210:14;2540:111:29;;;:::i;:::-;765:2461:86;;;;;;-1:-1:-1;;;;;765:2461:86;;-1:-1:-1;765:2461:86;;;-1:-1:-1;765:2461:86;;6210:14:81;765:2461:86;;;;:::i;:::-;6080:41:81;6311:15;;765:2461:86;;;;-1:-1:-1;;;;;;765:2461:86;-1:-1:-1;;;;;765:2461:86;;;;;;;;;;;-1:-1:-1;;;;;765:2461:86;;;;6337:143:81;;5907:716;-1:-1:-1;6493:28:81;765:2461:86;-1:-1:-1;;;;;765:2461:86;;;;;;;6489:128:81;;5907:716;:::o;6489:128::-;6551:55;;;:::i;:::-;;5907:716::o;6337:143::-;6404:65;;;:::i;:::-;;6337:143;;;6075:90;765:2461:86;;-1:-1:-1;;;6144:10:81;;6080:41;;6144:10;6080:41;;;;;;;;;;;;;;:::i;:::-;;;;6893:76:26;;;:::i;:::-;;;:::i;:::-;1805:1:29;-1:-1:-1;;;;;;;;;;;765:2461:86;6893:76:26:o;765:2461:86:-;;;;;;;;;;-1:-1:-1;;;;;765:2461:86;;;;;;;-1:-1:-1;765:2461:86;;;;;;;;;;;;:::o;7084:141:26:-;765:2461:86;-1:-1:-1;;;;;;;;;;;765:2461:86;;;;7150:18:26;7146:73;;7084:141::o;7146:73::-;765:2461:86;;-1:-1:-1;;;7191:17:26;;;;","linkReferences":{},"immutableReferences":{"64520":[{"start":1571,"length":32}],"64523":[{"start":2911,"length":32}],"65474":[{"start":1167,"length":32},{"start":2968,"length":32}],"65477":[{"start":711,"length":32},{"start":6731,"length":32}],"65480":[{"start":779,"length":32},{"start":5693,"length":32}],"65483":[{"start":847,"length":32},{"start":5819,"length":32}],"67793":[{"start":2621,"length":32},{"start":4496,"length":32}],"67795":[{"start":643,"length":32},{"start":5263,"length":32}],"67797":[{"start":3578,"length":32},{"start":5457,"length":32}]}},"methodIdentifiers":{"DEFAULT_ADMIN_ROLE()":"a217fddf","FACTORY()":"2dd31000","FULL_RESTAKE_DELEGATOR_HINTS()":"e102831a","HOOK_GAS_LIMIT()":"ff54740f","HOOK_RESERVE()":"557cab44","HOOK_SET_ROLE()":"6679191e","NETWORK_REGISTRY()":"c0cd7c3e","NETWORK_RESTAKE_DELEGATOR_HINTS()":"075db036","OPERATOR_NETWORK_OPT_IN_SERVICE()":"1a80e500","OPERATOR_VAULT_OPT_IN_SERVICE()":"128e5d82","OPT_IN_SERVICE_HINTS()":"9b656b22","TYPE()":"bb24fe8a","VAULT_FACTORY()":"103f2907","VERSION()":"ffa1ad74","getRoleAdmin(bytes32)":"248a9ca3","grantRole(bytes32,address)":"2f2ff15d","hasRole(bytes32,address)":"91d14854","hook()":"7f5a7c7b","initialize(bytes)":"439fab91","maxNetworkLimit(bytes32)":"d15b740e","onSlash(bytes32,address,uint256,uint48,bytes)":"e49561ee","renounceRole(bytes32,address)":"36568abe","revokeRole(bytes32,address)":"d547741f","setHook(address)":"3dfd3873","setMaxNetworkLimit(uint96,uint256)":"23f752d5","stake(bytes32,address)":"fd4d447c","stakeAt(bytes32,address,uint48,bytes)":"e02f6937","stakeBaseHints(address,bytes32,address,uint48)":"1bf10a3e","stakeHints(address,bytes32,address,uint48)":"25dc9708","staticDelegateCall(address,bytes)":"9f86fd85","supportsInterface(bytes4)":"01ffc9a7","vault()":"fbfa77cf"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"optInServiceHints\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"vaultHints_\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"AccessControlBadConfirmation\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"neededRole\",\"type\":\"bytes32\"}],\"name\":\"AccessControlUnauthorizedAccount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AlreadySet\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ExternalCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientHookGas\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotNetwork\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotSlasher\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotVault\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ReentrancyGuardReentrantCall\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint48\",\"name\":\"captureTimestamp\",\"type\":\"uint48\"}],\"name\":\"OnSlash\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"previousAdminRole\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"newAdminRole\",\"type\":\"bytes32\"}],\"name\":\"RoleAdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleRevoked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"hook\",\"type\":\"address\"}],\"name\":\"SetHook\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"SetMaxNetworkLimit\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DEFAULT_ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"FACTORY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"FULL_RESTAKE_DELEGATOR_HINTS\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"HOOK_GAS_LIMIT\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"HOOK_RESERVE\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"HOOK_SET_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"NETWORK_REGISTRY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"NETWORK_RESTAKE_DELEGATOR_HINTS\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"OPERATOR_NETWORK_OPT_IN_SERVICE\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"OPERATOR_VAULT_OPT_IN_SERVICE\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"OPT_IN_SERVICE_HINTS\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"TYPE\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"VAULT_FACTORY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"VERSION\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleAdmin\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"grantRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"hook\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"}],\"name\":\"maxNetworkLimit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint48\",\"name\":\"captureTimestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"onSlash\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"callerConfirmation\",\"type\":\"address\"}],\"name\":\"renounceRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"hook_\",\"type\":\"address\"}],\"name\":\"setHook\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint96\",\"name\":\"identifier\",\"type\":\"uint96\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"setMaxNetworkLimit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"stake\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hints\",\"type\":\"bytes\"}],\"name\":\"stakeAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"}],\"name\":\"stakeBaseHints\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"}],\"name\":\"stakeHints\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"staticDelegateCall\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"vault\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"AccessControlBadConfirmation()\":[{\"details\":\"The caller of a function is not the expected one. NOTE: Don't confuse with {AccessControlUnauthorizedAccount}.\"}],\"AccessControlUnauthorizedAccount(address,bytes32)\":[{\"details\":\"The `account` is missing a role.\"}],\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"ReentrancyGuardReentrantCall()\":[{\"details\":\"Unauthorized reentrant call.\"}]},\"events\":{\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"OnSlash(bytes32,address,uint256,uint48)\":{\"params\":{\"amount\":\"amount of the collateral to be slashed\",\"captureTimestamp\":\"time point when the stake was captured\",\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"}},\"RoleAdminChanged(bytes32,bytes32,bytes32)\":{\"details\":\"Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole` `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite {RoleAdminChanged} not being emitted signaling this.\"},\"RoleGranted(bytes32,address,address)\":{\"details\":\"Emitted when `account` is granted `role`. `sender` is the account that originated the contract call, an admin role bearer except when using {AccessControl-_setupRole}.\"},\"RoleRevoked(bytes32,address,address)\":{\"details\":\"Emitted when `account` is revoked `role`. `sender` is the account that originated the contract call: - if using `revokeRole`, it is the admin role bearer - if using `renounceRole`, it is the role bearer (i.e. `account`)\"},\"SetHook(address)\":{\"params\":{\"hook\":\"address of the hook\"}},\"SetMaxNetworkLimit(bytes32,uint256)\":{\"params\":{\"amount\":\"new maximum subnetwork's limit (how much stake the subnetwork is ready to get)\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"}}},\"kind\":\"dev\",\"methods\":{\"VERSION()\":{\"details\":\"Must return 1 for this one.\",\"returns\":{\"_0\":\"version of the delegator\"}},\"getRoleAdmin(bytes32)\":{\"details\":\"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}.\"},\"grantRole(bytes32,address)\":{\"details\":\"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event.\"},\"hasRole(bytes32,address)\":{\"details\":\"Returns `true` if `account` has been granted `role`.\"},\"initialize(bytes)\":{\"params\":{\"data\":\"some data to use\"}},\"onSlash(bytes32,address,uint256,uint48,bytes)\":{\"details\":\"Only the vault's slasher can call this function.\",\"params\":{\"amount\":\"amount of the collateral slashed\",\"captureTimestamp\":\"time point when the stake was captured\",\"data\":\"some additional data\",\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"}},\"renounceRole(bytes32,address)\":{\"details\":\"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `callerConfirmation`. May emit a {RoleRevoked} event.\"},\"revokeRole(bytes32,address)\":{\"details\":\"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event.\"},\"setHook(address)\":{\"details\":\"Only a HOOK_SET_ROLE holder can call this function. The hook can have arbitrary logic under certain functions, however, it doesn't affect the stake guarantees.\",\"params\":{\"hook\":\"address of the hook\"}},\"setMaxNetworkLimit(uint96,uint256)\":{\"details\":\"Only a network can call this function.\",\"params\":{\"amount\":\"new maximum subnetwork's limit\"}},\"stake(bytes32,address)\":{\"details\":\"Warning: this function is not safe to use for stake capturing, as it can change by the end of the block.\",\"params\":{\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"},\"returns\":{\"_0\":\"slashable stake until the end of the next epoch\"}},\"stakeAt(bytes32,address,uint48,bytes)\":{\"details\":\"Warning: it is not safe to use timestamp >= current one for the stake capturing, as it can change later.\",\"params\":{\"hints\":\"hints for the checkpoints' indexes\",\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\",\"timestamp\":\"time point to capture the stake at\"},\"returns\":{\"_0\":\"slashable stake at the given timestamp until the end of the consequent epoch\"}},\"staticDelegateCall(address,bytes)\":{\"details\":\"It allows to use this contract's storage on-chain.\",\"params\":{\"data\":\"data to make a delegatecall with\",\"target\":\"address of the contract to make a delegatecall to\"}},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"}},\"version\":1},\"userdoc\":{\"events\":{\"OnSlash(bytes32,address,uint256,uint48)\":{\"notice\":\"Emitted when a slash happens.\"},\"SetHook(address)\":{\"notice\":\"Emitted when a hook is set.\"},\"SetMaxNetworkLimit(bytes32,uint256)\":{\"notice\":\"Emitted when a subnetwork's maximum limit is set.\"}},\"kind\":\"user\",\"methods\":{\"FACTORY()\":{\"notice\":\"Get the factory's address.\"},\"HOOK_GAS_LIMIT()\":{\"notice\":\"Get a gas limit for the hook.\"},\"HOOK_RESERVE()\":{\"notice\":\"Get a reserve gas between the gas limit check and the hook's execution.\"},\"HOOK_SET_ROLE()\":{\"notice\":\"Get a hook setter's role.\"},\"NETWORK_REGISTRY()\":{\"notice\":\"Get the network registry's address.\"},\"OPERATOR_NETWORK_OPT_IN_SERVICE()\":{\"notice\":\"Get the operator-network opt-in service's address.\"},\"OPERATOR_VAULT_OPT_IN_SERVICE()\":{\"notice\":\"Get the operator-vault opt-in service's address.\"},\"TYPE()\":{\"notice\":\"Get the entity's type.\"},\"VAULT_FACTORY()\":{\"notice\":\"Get the vault factory's address.\"},\"VERSION()\":{\"notice\":\"Get a version of the delegator (different versions mean different interfaces).\"},\"hook()\":{\"notice\":\"Get the hook's address.\"},\"initialize(bytes)\":{\"notice\":\"Initialize this entity contract by using a given data.\"},\"maxNetworkLimit(bytes32)\":{\"notice\":\"Get a particular subnetwork's maximum limit (meaning the subnetwork is not ready to get more as a stake).\"},\"onSlash(bytes32,address,uint256,uint48,bytes)\":{\"notice\":\"Called when a slash happens.\"},\"setHook(address)\":{\"notice\":\"Set a new hook.\"},\"setMaxNetworkLimit(uint96,uint256)\":{\"notice\":\"Set a maximum limit for a subnetwork (how much stake the subnetwork is ready to get). identifier identifier of the subnetwork\"},\"stake(bytes32,address)\":{\"notice\":\"Get a stake that a given subnetwork will be able to slash for a certain operator until the end of the next epoch (if no cross-slashing and no slashings by the subnetwork).\"},\"stakeAt(bytes32,address,uint48,bytes)\":{\"notice\":\"Get a stake that a given subnetwork could be able to slash for a certain operator at a given timestamp until the end of the consequent epoch using hints (if no cross-slashing and no slashings by the subnetwork).\"},\"staticDelegateCall(address,bytes)\":{\"notice\":\"Make a delegatecall from this contract to a given target contract with a particular data (always reverts with a return data).\"},\"vault()\":{\"notice\":\"Get the vault's address.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/contracts/hints/DelegatorHints.sol\":\"BaseDelegatorHints\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol\":{\"keccak256\":\"0x6662ec4e5cefca03eeadd073e9469df8d2944bb2ee8ec8f7622c2c46aab5f225\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4d8544c6f8daa4d1bc215c6a72fe0acdb748664a105b0e5efc19295667521d45\",\"dweb:/ipfs/QmdGWqdnXT8S3RgCR6aV8XHZrsybieMQLLnug1NtpSjEXN\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0xc163fcf9bb10138631a9ba5564df1fa25db9adff73bd9ee868a8ae1858fe093a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9706d43a0124053d9880f6e31a59f31bc0a6a3dc1acd66ce0a16e1111658c5f6\",\"dweb:/ipfs/QmUFmfowzkRwGtDu36cXV9SPTBHJ3n7dG9xQiK5B28jTf2\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609\",\"dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9\",\"dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardUpgradeable.sol\":{\"keccak256\":\"0xb44e086e941292cdc7f440de51478493894ef0b1aeccb0c4047445919f667f74\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://942dad22fbdc1669f025540ba63aa3ccfad5f8458fc5d4525b31ebf272e7af45\",\"dweb:/ipfs/Qmdo4X2M82aM3AMoW2kf2jhYkSCyC4T1pHNd6obdsDFnAB\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol\":{\"keccak256\":\"0xdaba3f7c42c55b2896353f32bd27d4d5f8bae741b3b05d4c53f67abc4dc47ce8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1fa2e61141c602510bcd2cd936ed9561922ac8772a9b9c9a9db091a74e354a45\",\"dweb:/ipfs/QmcHQDDoEBwJmwUbzoVkytvJsBx3KVHYFFnDkvRGWh9Wmh\"]},\"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0xb6b36edd6a2999fd243ff226d6cbf84bd71af2432bbd0dfe19392996a1d9cb41\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1fd2f35495652e57e3f99bc6c510bc5f7dd398a176ea2e72d8ed730aebc6ca26\",\"dweb:/ipfs/QmTQV6X4gkikTib49cho5iDX3JvSQbdsoEChoDwrk3CbbH\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC1271.sol\":{\"keccak256\":\"0x85a45f3f10014a0f8be41157a32b6a5f905753ea64a4b64e29fc12b7deeecf39\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c3c74009ce36136b36c77c23935b8e4a7b4f253be2da2be4fb4a916b1ce43743\",\"dweb:/ipfs/QmcH36v3iN7SJJuF73AunLR2LtNxhVJ1wm63ph4dPZ4pcL\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC5267.sol\":{\"keccak256\":\"0x92aa1df62dc3d33f1656d63bede0923e0df0b706ad4137c8b10b0a8fe549fd92\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c5c0f29195ad64cbe556da8e257dac8f05f78c53f90323c0d2accf8e6922d33a\",\"dweb:/ipfs/QmQ61TED8uaCZwcbh8KkgRSsCav7x7HbcGHwHts3U4DmUP\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c\",\"dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0x6008dabfe393240d73d7dd7688033f72740d570aa422254d29a7dce8568f3aff\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f5196ec75139918c6c7bb4251b36395e668f1fa6d206beba7e7520e74913940d\",\"dweb:/ipfs/QmSyqjksXxmm2mCG6qRd1yuwLykypkSVBbnBnGqJRcuJMi\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x37bb49513c49c87c4642a891b13b63571bc87013dde806617aa1efb54605f386\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b3036b3a83b7c48f96641f2a9002b9f2dcb6a5958dd670894ada21ae8229b3d0\",\"dweb:/ipfs/QmUNfSBdoVtjhETaUJCYcaC7pTMgbhht926tJ2uXJbiVd3\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0xaf28a975a78550e45f65e559a3ad6a5ad43b9b8a37366999abd1b7084eb70721\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b7bd24e224f67f65bfadf85dc2929fa965456bb2415478bd0125471b5ce35245\",\"dweb:/ipfs/QmRaydGr8BTHs1kvaZfsNU69pKzUAGFrvABn1KiRSbE51y\"]},\"lib/openzeppelin-contracts/contracts/utils/ShortStrings.sol\":{\"keccak256\":\"0x18a7171df639a934592915a520ecb97c5bbc9675a1105607aac8a94e72bf62c6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7478e1f13da69a2867ccd883001d836b75620362e743f196376d63ed0c422a1c\",\"dweb:/ipfs/QmWywcQ9TNfwtoqAxbn25d8C5VrV12PrPS9UjtGe6pL2BA\"]},\"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0x32ba59b4b7299237c8ba56319110989d7978a039faf754793064e967e5894418\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1ae50c8b562427df610cc4540c9bf104acca7ef8e2dcae567ae7e52272281e9c\",\"dweb:/ipfs/QmTHiadFCSJUPpRjNegc5SahmeU8bAoY8i9Aq6tVscbcKR\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0x55f102ea785d8399c0e58d1108e2d289506dde18abc6db1b7f68c1f9f9bc5792\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e52e0a7765c943ef14e5bcf11e46e6139fa044be564881378349236bf2e3453\",\"dweb:/ipfs/QmZEeeXoFPW47amyP35gfzomF9DixqqTEPwzBakv6cZw6i\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0xeed0a08b0b091f528356cbc7245891a4c748682d4f6a18055e8e6ca77d12a6cf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba80ba06c8e6be852847e4c5f4492cef801feb6558ae09ed705ff2e04ea8b13c\",\"dweb:/ipfs/QmXRJDv3xHLVQCVXg1ZvR35QS9sij5y9NDWYzMfUfAdTHF\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/EIP712.sol\":{\"keccak256\":\"0x999f705a027ed6dc2d4e0df2cc4a509852c6bfd11de1c8161bf88832d0503fd0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0798def67258d9a3cc20b2b4da7ebf351a5cefe0abfdd665d2d81f8e32f89b21\",\"dweb:/ipfs/QmPEvJosnPfzHNjKvCv2D3891mA2Ww8eUwkqrxBjuYdHCt\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol\":{\"keccak256\":\"0xba333517a3add42cd35fe877656fc3dfcc9de53baa4f3aabbd6d12a92e4ea435\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2ceacff44c0fdc81e48e0e0b1db87a2076d3c1fb497341de077bf1da9f6b406c\",\"dweb:/ipfs/QmRUo1muMRAewxrKQ7TkXUtknyRoR57AyEkoPpiuZQ8FzX\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/SignatureChecker.sol\":{\"keccak256\":\"0x6b11eb41a228cca35d4b662b4df69fcd75192851365102690f57b2ac01e83fe6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ab006a2983ed350d2af21ddcdd835dcae3b8340086cc4d088460da5abd041f69\",\"dweb:/ipfs/QmbEacDhkJZiGrgzLjB4pNtE8Z1uudjDw1DvcDUTVQFsLG\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875\",\"dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0xe19a4d5f31d2861e7344e8e535e2feafb913d806d3e2b5fe7782741a2a7094fe\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4aed79c0fa6f0546ed02f2f683e8f77f0fd2ed7eb34d8bbf3d373c9a6d95b13c\",\"dweb:/ipfs/QmWqVz6UAVqmnWU5pqYPt1o6iDEZyPaBraAA3rKfTTSfYj\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x5f7e4076e175393767754387c962926577f1660dd9b810187b9002407656be72\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7d533a1c97cd43a57cd9c465f7ee8dd0e39ae93a8fb8ff8e5303a356b081cdcc\",\"dweb:/ipfs/QmVBEei6aTnvYNZp2CHYVNKyZS4q1KkjANfY39WVXZXVoT\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/Checkpoints.sol\":{\"keccak256\":\"0xbdc5e074d7dd6678f67e92b1a51a20226801a407b0e1af3da367c5d1ff4519ad\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a36cca6b22fff3db16fc789ff6c60eea71d4b156065d4d0c83a0bc5e91a77a8b\",\"dweb:/ipfs/QmYN3exd5AemxjBrN8XMB1p5LbbE16uC3sjbYjwi8AjcGR\"]},\"lib/openzeppelin-contracts/contracts/utils/types/Time.sol\":{\"keccak256\":\"0xc7755af115020049e4140f224f9ee88d7e1799ffb0646f37bf0df24bf6213f58\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7f09bf94d5274334ec021f61a04659db303f31e60460e14b709c9bf187740111\",\"dweb:/ipfs/QmNvgomZYUwFAt4cZbPWAiTeSZQreGehY9BK5xyVJsUttb\"]},\"src/contracts/common/Entity.sol\":{\"keccak256\":\"0x3d61a932995b8443381f3950542d388223a2c26dd5d29a3274dea3baa7388bd7\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://7cdf5f03ca72fd263fd32ff59c8d88ddca911ae83896a287d10772c1bbe9b138\",\"dweb:/ipfs/QmbP84r5BWT1Rn9AYTntWSf3xUMTTCohTZJFhbBhDXFoHa\"]},\"src/contracts/common/MigratableEntity.sol\":{\"keccak256\":\"0x2d736f4dacd5d7e7697503bc426c78b8250fe1694ca157965ec178da6807de58\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://f1237acf96b4b9f9b69156e068eddd726a6e15bd8e87a18dc999cd4ba4da069c\",\"dweb:/ipfs/QmS6M8fiFFSeuJ4ZKKq1z8W7w4ybeHQSy5TLASGoc1LVic\"]},\"src/contracts/common/StaticDelegateCallable.sol\":{\"keccak256\":\"0x350029aa8955eacaffffaeb58babc5c98e80ebc5c5db388ed17ee6465f4a9d90\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://eb392a8ee9050e0af606897df63e3404e3829e8b688b580663892f9664195764\",\"dweb:/ipfs/QmaXC8jqV8UrrAFkzXTEv2fJF56sy33HhLxAzaRZmUxuXD\"]},\"src/contracts/delegator/BaseDelegator.sol\":{\"keccak256\":\"0x7c54d491fdd4415b764a9c8defa068e56d4c0c8c9419be0053a1d377669290e8\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://9238bfbad0f6eeb0dc7727724de14380f1980b395902269703d5e2ef07e52e10\",\"dweb:/ipfs/QmPJn1V4HNXcEghYvogGuSTF24dSQUPosR5qtsXcmNqRm3\"]},\"src/contracts/delegator/FullRestakeDelegator.sol\":{\"keccak256\":\"0x0a81c4f8e72914563a9cb771e93acf889c71ea36b7bec040e4eb562b199d5af1\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://6fc66b6ba02da77046a0bbbd1dd407a62c08f52e04486c9cbd2cb1cca3da555f\",\"dweb:/ipfs/QmZQivK1ZnMxfRQQ5aLpV9co5u55wQVNev5Rg1hzAqxhkE\"]},\"src/contracts/delegator/NetworkRestakeDelegator.sol\":{\"keccak256\":\"0xd3a8e6522f9c6fdcc2da837c9023afd6bdff2bce45a35590320c475519e3636d\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://58b17a87f6554f08376f9ea7fedf486a4aa75801bf0ad8b23ff5a46959b6b7a3\",\"dweb:/ipfs/QmSTmNh67tYt8CmjVZb57r8N3qX5yeYdMApKPJm3qvQgQw\"]},\"src/contracts/delegator/OperatorNetworkSpecificDelegator.sol\":{\"keccak256\":\"0x031a10722b9ec49048f0952710401131290adb87e71caf294e864e7ac3b98a16\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://72428febc875134b2f29205e6f294634a1c22a7d5c78d6a9cb2f8196f107c9b5\",\"dweb:/ipfs/QmTPwXR6h5oytckmkLrHdKeEMdphJxceDhYUR4zvQeWAwY\"]},\"src/contracts/delegator/OperatorSpecificDelegator.sol\":{\"keccak256\":\"0x630ce62fa30b9f3349ab7a8cf8dbf041319febc6dd757be2f94d3d25944ed328\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://c2ac59d47ce57d2a6819ae9833e1a618a371eccff93eb5ab367b201b01f42bfa\",\"dweb:/ipfs/QmdBpGMBivpNPv2WbH8vnCUy5xkVeaxQvGgqi33vKCz1kA\"]},\"src/contracts/hints/DelegatorHints.sol\":{\"keccak256\":\"0x44aa0c396311a54afbc7c73e8dadeed41e3165a4fd13f712b27d63d50fc3376d\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://2f255214f3531fc707d88be0d56a7a0aed4180439316d099d760d9118aa83093\",\"dweb:/ipfs/QmZD1w5p1ukJSXumUAjvxwGmkPhn7vsr21Y2atLGEZR2oi\"]},\"src/contracts/hints/Hints.sol\":{\"keccak256\":\"0x8b565df1ae35993c097a9e642002782a8f451f6fd01809cad6bcd345bdf1b99c\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://99a19adb01e350a92f534095b3078229df1f2f83077992d75d58d8684be45971\",\"dweb:/ipfs/QmbmwcuswVbzvwHQFTtrJG86oV98GnfxqYTb8cV8u1acox\"]},\"src/contracts/hints/OptInServiceHints.sol\":{\"keccak256\":\"0x95d9407900d27b9f4a1233b772aeed809c07b2dc5b31cfc9fa77ca26514c49e5\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://a13a8877e312d7e6b8b85bde3668c5d84ff5ecc83f762cd573f2b7104c64eb42\",\"dweb:/ipfs/QmYV2J55acuGzCNnS3juABuUHY5U1xc8g8o9jwEyFFdeG5\"]},\"src/contracts/hints/VaultHints.sol\":{\"keccak256\":\"0xccb505b7159b769cc114d67b87c2de6b106557f667fc8f3780114baad5c3c442\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://6d0c80a908fc16e96a8b5605a0bd53f9e89ad0ef0a738fbbae80ba4d3160749b\",\"dweb:/ipfs/QmXo5UtWoR8YmunqcbBU8rQMm1nvmvjNPoXcVrDhh4pEwR\"]},\"src/contracts/libraries/Checkpoints.sol\":{\"keccak256\":\"0xba90097c8bfe0a975499428b5f8ac5569483c7d92ccc28c12d70de416aae040c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://12f5d93ca94cd06d3147db68993165a58e17903ed53682560de61f3085ad4609\",\"dweb:/ipfs/QmePiuAqvXprMLmFZkGZeGjvGPAvsEDHfCDv7BoQhXu9xE\"]},\"src/contracts/libraries/ERC4626Math.sol\":{\"keccak256\":\"0x8441160513c1cbeb1c3b9ee077bcc7e7ce20006b52a77c8dd39ff0ef89699939\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://943f8cc3e26ddf649f465f40c909819f5c864717c4baa339e9e403b9374a4653\",\"dweb:/ipfs/QmXPxi1sUDsrGprZdUgCzoPEosaZMv9ZhygWQ1vAi1phAB\"]},\"src/contracts/libraries/Subnetwork.sol\":{\"keccak256\":\"0xf5ef5506fd66082b3c2e7f3df37529f5a8efad32ac62e7c8914bd63219190bfe\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba031a54ee0d0e9a270c2b9e18437f5668cfeb659cfd5fe0677459d7fcac2a56\",\"dweb:/ipfs/QmReP3H7qQ78tAfgLnJKsNEQNCQfF1X1Get38Ffd4kzq32\"]},\"src/contracts/service/OptInService.sol\":{\"keccak256\":\"0x4e0932077f2686b7990e10d59deb2535334c0d09e52ef6e57c6ab09eca21c4b1\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://7c00d311032ed4a1743aca7475f3c86ce15cdfc2218108efc3731c03d34a5278\",\"dweb:/ipfs/QmUGGfVwVhaHr5kS4177yKKYiLYzi5qZpkEmvYxBZqazxf\"]},\"src/contracts/vault/Vault.sol\":{\"keccak256\":\"0x2ceff6ed3298c4cad144c99fcc79b51cb9397d6ebef00285b915848b476f8c2e\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://11f2fb3581854f3ab6e82e8d4935d9eb510c903a13c3f022346c2956a58f5307\",\"dweb:/ipfs/QmdUnoXoyYoG9SGWyQZCFyLDRUUX3eXyXetkRvw6jxqqBz\"]},\"src/contracts/vault/VaultStorage.sol\":{\"keccak256\":\"0x57db25b127d77ea3472de53e3a4af3354399655b9268638b99ca5925fa364a56\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://aa763d9a6ec508ae3abfb8228b72b9fd9525279e5135d4962e79ff059feb1173\",\"dweb:/ipfs/QmcbDR6E9wyEpu6V2FkEC4hnWy47zXA9LSKJde6zSGd33Q\"]},\"src/interfaces/common/IEntity.sol\":{\"keccak256\":\"0x8ef4b63d6da63489778ccd5f8d13ebdd527dd4b62730b2c616df5af7474d2d21\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a8d69576a9219d85c50816a18ad53a4d53cfcb27ed38b8cccc808dc2734b71b\",\"dweb:/ipfs/QmYVN3P4Q4REvBWJ97TbAcaxm3uyB2anV6NSGa6ZtSwcEv\"]},\"src/interfaces/common/IMigratableEntity.sol\":{\"keccak256\":\"0x8f5f2809f3afbe8ebfbb365dd7b57b4dd3b6f9943a6187eaf648d45895b8e3c4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ffe640537d539e7a4fde70d30d3e4c57f4ba9c2c25c450cea713aae38e8fd5c\",\"dweb:/ipfs/QmSUTGzvdcn1R1KB7tLThMRtESsfPbeXDhhhKWGtntzBds\"]},\"src/interfaces/common/IRegistry.sol\":{\"keccak256\":\"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014\",\"dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK\"]},\"src/interfaces/common/IStaticDelegateCallable.sol\":{\"keccak256\":\"0xa335d4e81b9071b7de66ef92b43ff20671d86516eb1be46fef29a3483cd3f5d5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d464b9db863c14c05547d2b23352f2e9b7b784799cf09f6bbc4906a2a74e3516\",\"dweb:/ipfs/QmUVWzFvJz7eEbDQKiFTTzwi7TEbjcs3VmwdM4kuptAKvi\"]},\"src/interfaces/delegator/IBaseDelegator.sol\":{\"keccak256\":\"0x96bb312f032e17accce3f8f80936d99468029d6b37c9ca74acdb4b026a0148ee\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2a66dcb5b7d1a6ef6a363431ea98ebd78bc4fdd3d7a134d9b542dc66e7d025c2\",\"dweb:/ipfs/QmRhTPLd2ZAyRHmJUFUcWKs9b3if49QY17LYZuRqWmghw8\"]},\"src/interfaces/delegator/IDelegatorHook.sol\":{\"keccak256\":\"0xc51aa8d7d1f6c8043ee819b7aeb86da0e993912e1442098df897e299f01f9f46\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://adddf5cb2ba282aeb576b26efb28640f865a1721cc9b6eee8b3ee0457a2c9780\",\"dweb:/ipfs/QmNYgAmnLRwWZbhTuQhZs9rx4zcme1df5mEepkrniorSoW\"]},\"src/interfaces/delegator/IFullRestakeDelegator.sol\":{\"keccak256\":\"0xa3c8cb2e45d4d8ce90e95263bea40c01dc400f05ad65bc29597d878606be5e7d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://782cf5e201aa4cca037ebafd3807a68ff1cc721d5b8416a35244db0d0607369e\",\"dweb:/ipfs/QmQkJks6x7CKndeTPa9LxgTNygD5uEi7obhADhpq1Lsr9A\"]},\"src/interfaces/delegator/INetworkRestakeDelegator.sol\":{\"keccak256\":\"0xe7030fe30389a147fd710e3436ec346b4842695fd3e65a81b95375c9f1d633fc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://739c7e66d301778054f5c90bee45ec9438f68afba8a03eaaac52064c73b115ad\",\"dweb:/ipfs/QmfZ2ytKcTykAc76nxhg8ikUXV8NdBpetqb8W4YWPcox1Z\"]},\"src/interfaces/delegator/IOperatorNetworkSpecificDelegator.sol\":{\"keccak256\":\"0x74b95e64d29769202d45dd277bb830f623ff3d41ce77b80ce3ee4e318a5c71ec\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e512b903aae5c1b8a028c6e3f4f6223b5cb5d704503cfa6bd37b5346868f5c20\",\"dweb:/ipfs/QmZim9YExsPWtyxyeui993HTKAEmrg8MUcSkZ77Gp2JcuZ\"]},\"src/interfaces/delegator/IOperatorSpecificDelegator.sol\":{\"keccak256\":\"0x72075cab585dc17240cc3e32bc99b92f0d5627ddd988fed680e3e1a52d5a01e4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7448bc90699409ae61d85216b5efc2143a37f0f73354be2aea993bc54afca441\",\"dweb:/ipfs/QmXE4gAxM8pHosZK8mcTcj17puBx484meDCcmrDePskGHZ\"]},\"src/interfaces/service/IOptInService.sol\":{\"keccak256\":\"0x76fb5460a6d87a5705433d4fbeff7253cd75b8bbd0c888b2088f16e86ace146a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://990322019b3d11465f7024bae77ccbf7e2fe5d6fa3c754584778f37d04fa1337\",\"dweb:/ipfs/QmaSNHzcqxTkUCG9a4nqVfLECHLdjdrwAnDi3yDC7tDL24\"]},\"src/interfaces/slasher/IBaseSlasher.sol\":{\"keccak256\":\"0x7c82528b445659c313ab77335c407b0b6efe5e79027187bb287f7bc74202b404\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0274c90aa5df1aa6bb470a6aab53992fb14fd7e5472c9430416505b29647d9cf\",\"dweb:/ipfs/QmckbmJLDetPemVzCnnGcKYWAZV2BRFXGDsjiaec8jkHxx\"]},\"src/interfaces/vault/IVault.sol\":{\"keccak256\":\"0xffee01d383cd4e1a5530c614bf4360c1ef070c288abec9da1eb531b51bc07235\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://04f0046cac285d8ec44ebbb1f79dc94fab4495767190cad8364fbc1fafaadfb9\",\"dweb:/ipfs/QmUawAunwzXfCyShWfhKeThAgKtqe51hmrxvrXvM772M2R\"]},\"src/interfaces/vault/IVaultStorage.sol\":{\"keccak256\":\"0x592626f13754194f83047135de19229c49390bd59e34659b1bb38be71d973a22\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://06a6a9dfddd05e580b32bebe2cff4f63ba26a653180676d58225dd30d9c89d3e\",\"dweb:/ipfs/QmdgzBeY6Sxo8mGtyBxtv1tM1c2kU6J6zjeRd7vuXm4DU6\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.25+commit.b61c2a91"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"optInServiceHints","type":"address"},{"internalType":"address","name":"vaultHints_","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"AccessControlBadConfirmation"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bytes32","name":"neededRole","type":"bytes32"}],"type":"error","name":"AccessControlUnauthorizedAccount"},{"inputs":[],"type":"error","name":"AlreadySet"},{"inputs":[],"type":"error","name":"ExternalCall"},{"inputs":[],"type":"error","name":"InsufficientHookGas"},{"inputs":[],"type":"error","name":"InvalidInitialization"},{"inputs":[],"type":"error","name":"NotInitialized"},{"inputs":[],"type":"error","name":"NotInitializing"},{"inputs":[],"type":"error","name":"NotNetwork"},{"inputs":[],"type":"error","name":"NotSlasher"},{"inputs":[],"type":"error","name":"NotVault"},{"inputs":[],"type":"error","name":"ReentrancyGuardReentrantCall"},{"inputs":[{"internalType":"uint64","name":"version","type":"uint64","indexed":false}],"type":"event","name":"Initialized","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32","indexed":true},{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false},{"internalType":"uint48","name":"captureTimestamp","type":"uint48","indexed":false}],"type":"event","name":"OnSlash","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"bytes32","name":"previousAdminRole","type":"bytes32","indexed":true},{"internalType":"bytes32","name":"newAdminRole","type":"bytes32","indexed":true}],"type":"event","name":"RoleAdminChanged","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"address","name":"sender","type":"address","indexed":true}],"type":"event","name":"RoleGranted","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"address","name":"sender","type":"address","indexed":true}],"type":"event","name":"RoleRevoked","anonymous":false},{"inputs":[{"internalType":"address","name":"hook","type":"address","indexed":true}],"type":"event","name":"SetHook","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"SetMaxNetworkLimit","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"DEFAULT_ADMIN_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"FACTORY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"FULL_RESTAKE_DELEGATOR_HINTS","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"HOOK_GAS_LIMIT","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"HOOK_RESERVE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"HOOK_SET_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"NETWORK_REGISTRY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"NETWORK_RESTAKE_DELEGATOR_HINTS","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"OPERATOR_NETWORK_OPT_IN_SERVICE","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"OPERATOR_VAULT_OPT_IN_SERVICE","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"OPT_IN_SERVICE_HINTS","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"TYPE","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"VAULT_FACTORY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"VERSION","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getRoleAdmin","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"grantRole"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"hasRole","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"hook","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"}],"stateMutability":"view","type":"function","name":"maxNetworkLimit","outputs":[{"internalType":"uint256","name":"value","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint48","name":"captureTimestamp","type":"uint48"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"onSlash"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"callerConfirmation","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"renounceRole"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"revokeRole"},{"inputs":[{"internalType":"address","name":"hook_","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setHook"},{"inputs":[{"internalType":"uint96","name":"identifier","type":"uint96"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setMaxNetworkLimit"},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"stake","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint48","name":"timestamp","type":"uint48"},{"internalType":"bytes","name":"hints","type":"bytes"}],"stateMutability":"view","type":"function","name":"stakeAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"delegator","type":"address"},{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint48","name":"timestamp","type":"uint48"}],"stateMutability":"view","type":"function","name":"stakeBaseHints","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"address","name":"delegator","type":"address"},{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint48","name":"timestamp","type":"uint48"}],"stateMutability":"view","type":"function","name":"stakeHints","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"staticDelegateCall"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"vault","outputs":[{"internalType":"address","name":"","type":"address"}]}],"devdoc":{"kind":"dev","methods":{"VERSION()":{"details":"Must return 1 for this one.","returns":{"_0":"version of the delegator"}},"getRoleAdmin(bytes32)":{"details":"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}."},"grantRole(bytes32,address)":{"details":"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event."},"hasRole(bytes32,address)":{"details":"Returns `true` if `account` has been granted `role`."},"initialize(bytes)":{"params":{"data":"some data to use"}},"onSlash(bytes32,address,uint256,uint48,bytes)":{"details":"Only the vault's slasher can call this function.","params":{"amount":"amount of the collateral slashed","captureTimestamp":"time point when the stake was captured","data":"some additional data","operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"}},"renounceRole(bytes32,address)":{"details":"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `callerConfirmation`. May emit a {RoleRevoked} event."},"revokeRole(bytes32,address)":{"details":"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event."},"setHook(address)":{"details":"Only a HOOK_SET_ROLE holder can call this function. The hook can have arbitrary logic under certain functions, however, it doesn't affect the stake guarantees.","params":{"hook":"address of the hook"}},"setMaxNetworkLimit(uint96,uint256)":{"details":"Only a network can call this function.","params":{"amount":"new maximum subnetwork's limit"}},"stake(bytes32,address)":{"details":"Warning: this function is not safe to use for stake capturing, as it can change by the end of the block.","params":{"operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"},"returns":{"_0":"slashable stake until the end of the next epoch"}},"stakeAt(bytes32,address,uint48,bytes)":{"details":"Warning: it is not safe to use timestamp >= current one for the stake capturing, as it can change later.","params":{"hints":"hints for the checkpoints' indexes","operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)","timestamp":"time point to capture the stake at"},"returns":{"_0":"slashable stake at the given timestamp until the end of the consequent epoch"}},"staticDelegateCall(address,bytes)":{"details":"It allows to use this contract's storage on-chain.","params":{"data":"data to make a delegatecall with","target":"address of the contract to make a delegatecall to"}},"supportsInterface(bytes4)":{"details":"See {IERC165-supportsInterface}."}},"version":1},"userdoc":{"kind":"user","methods":{"FACTORY()":{"notice":"Get the factory's address."},"HOOK_GAS_LIMIT()":{"notice":"Get a gas limit for the hook."},"HOOK_RESERVE()":{"notice":"Get a reserve gas between the gas limit check and the hook's execution."},"HOOK_SET_ROLE()":{"notice":"Get a hook setter's role."},"NETWORK_REGISTRY()":{"notice":"Get the network registry's address."},"OPERATOR_NETWORK_OPT_IN_SERVICE()":{"notice":"Get the operator-network opt-in service's address."},"OPERATOR_VAULT_OPT_IN_SERVICE()":{"notice":"Get the operator-vault opt-in service's address."},"TYPE()":{"notice":"Get the entity's type."},"VAULT_FACTORY()":{"notice":"Get the vault factory's address."},"VERSION()":{"notice":"Get a version of the delegator (different versions mean different interfaces)."},"hook()":{"notice":"Get the hook's address."},"initialize(bytes)":{"notice":"Initialize this entity contract by using a given data."},"maxNetworkLimit(bytes32)":{"notice":"Get a particular subnetwork's maximum limit (meaning the subnetwork is not ready to get more as a stake)."},"onSlash(bytes32,address,uint256,uint48,bytes)":{"notice":"Called when a slash happens."},"setHook(address)":{"notice":"Set a new hook."},"setMaxNetworkLimit(uint96,uint256)":{"notice":"Set a maximum limit for a subnetwork (how much stake the subnetwork is ready to get). identifier identifier of the subnetwork"},"stake(bytes32,address)":{"notice":"Get a stake that a given subnetwork will be able to slash for a certain operator until the end of the next epoch (if no cross-slashing and no slashings by the subnetwork)."},"stakeAt(bytes32,address,uint48,bytes)":{"notice":"Get a stake that a given subnetwork could be able to slash for a certain operator at a given timestamp until the end of the consequent epoch using hints (if no cross-slashing and no slashings by the subnetwork)."},"staticDelegateCall(address,bytes)":{"notice":"Make a delegatecall from this contract to a given target contract with a particular data (always reverts with a return data)."},"vault()":{"notice":"Get the vault's address."}},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/contracts/hints/DelegatorHints.sol":"BaseDelegatorHints"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol":{"keccak256":"0x6662ec4e5cefca03eeadd073e9469df8d2944bb2ee8ec8f7622c2c46aab5f225","urls":["bzz-raw://4d8544c6f8daa4d1bc215c6a72fe0acdb748664a105b0e5efc19295667521d45","dweb:/ipfs/QmdGWqdnXT8S3RgCR6aV8XHZrsybieMQLLnug1NtpSjEXN"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol":{"keccak256":"0xc163fcf9bb10138631a9ba5564df1fa25db9adff73bd9ee868a8ae1858fe093a","urls":["bzz-raw://9706d43a0124053d9880f6e31a59f31bc0a6a3dc1acd66ce0a16e1111658c5f6","dweb:/ipfs/QmUFmfowzkRwGtDu36cXV9SPTBHJ3n7dG9xQiK5B28jTf2"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b","urls":["bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609","dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol":{"keccak256":"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397","urls":["bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9","dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardUpgradeable.sol":{"keccak256":"0xb44e086e941292cdc7f440de51478493894ef0b1aeccb0c4047445919f667f74","urls":["bzz-raw://942dad22fbdc1669f025540ba63aa3ccfad5f8458fc5d4525b31ebf272e7af45","dweb:/ipfs/Qmdo4X2M82aM3AMoW2kf2jhYkSCyC4T1pHNd6obdsDFnAB"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol":{"keccak256":"0xdaba3f7c42c55b2896353f32bd27d4d5f8bae741b3b05d4c53f67abc4dc47ce8","urls":["bzz-raw://1fa2e61141c602510bcd2cd936ed9561922ac8772a9b9c9a9db091a74e354a45","dweb:/ipfs/QmcHQDDoEBwJmwUbzoVkytvJsBx3KVHYFFnDkvRGWh9Wmh"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol":{"keccak256":"0xb6b36edd6a2999fd243ff226d6cbf84bd71af2432bbd0dfe19392996a1d9cb41","urls":["bzz-raw://1fd2f35495652e57e3f99bc6c510bc5f7dd398a176ea2e72d8ed730aebc6ca26","dweb:/ipfs/QmTQV6X4gkikTib49cho5iDX3JvSQbdsoEChoDwrk3CbbH"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC1271.sol":{"keccak256":"0x85a45f3f10014a0f8be41157a32b6a5f905753ea64a4b64e29fc12b7deeecf39","urls":["bzz-raw://c3c74009ce36136b36c77c23935b8e4a7b4f253be2da2be4fb4a916b1ce43743","dweb:/ipfs/QmcH36v3iN7SJJuF73AunLR2LtNxhVJ1wm63ph4dPZ4pcL"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC5267.sol":{"keccak256":"0x92aa1df62dc3d33f1656d63bede0923e0df0b706ad4137c8b10b0a8fe549fd92","urls":["bzz-raw://c5c0f29195ad64cbe556da8e257dac8f05f78c53f90323c0d2accf8e6922d33a","dweb:/ipfs/QmQ61TED8uaCZwcbh8KkgRSsCav7x7HbcGHwHts3U4DmUP"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70","urls":["bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c","dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol":{"keccak256":"0x6008dabfe393240d73d7dd7688033f72740d570aa422254d29a7dce8568f3aff","urls":["bzz-raw://f5196ec75139918c6c7bb4251b36395e668f1fa6d206beba7e7520e74913940d","dweb:/ipfs/QmSyqjksXxmm2mCG6qRd1yuwLykypkSVBbnBnGqJRcuJMi"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0x37bb49513c49c87c4642a891b13b63571bc87013dde806617aa1efb54605f386","urls":["bzz-raw://b3036b3a83b7c48f96641f2a9002b9f2dcb6a5958dd670894ada21ae8229b3d0","dweb:/ipfs/QmUNfSBdoVtjhETaUJCYcaC7pTMgbhht926tJ2uXJbiVd3"],"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/ShortStrings.sol":{"keccak256":"0x18a7171df639a934592915a520ecb97c5bbc9675a1105607aac8a94e72bf62c6","urls":["bzz-raw://7478e1f13da69a2867ccd883001d836b75620362e743f196376d63ed0c422a1c","dweb:/ipfs/QmWywcQ9TNfwtoqAxbn25d8C5VrV12PrPS9UjtGe6pL2BA"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol":{"keccak256":"0x32ba59b4b7299237c8ba56319110989d7978a039faf754793064e967e5894418","urls":["bzz-raw://1ae50c8b562427df610cc4540c9bf104acca7ef8e2dcae567ae7e52272281e9c","dweb:/ipfs/QmTHiadFCSJUPpRjNegc5SahmeU8bAoY8i9Aq6tVscbcKR"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0x55f102ea785d8399c0e58d1108e2d289506dde18abc6db1b7f68c1f9f9bc5792","urls":["bzz-raw://6e52e0a7765c943ef14e5bcf11e46e6139fa044be564881378349236bf2e3453","dweb:/ipfs/QmZEeeXoFPW47amyP35gfzomF9DixqqTEPwzBakv6cZw6i"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol":{"keccak256":"0xeed0a08b0b091f528356cbc7245891a4c748682d4f6a18055e8e6ca77d12a6cf","urls":["bzz-raw://ba80ba06c8e6be852847e4c5f4492cef801feb6558ae09ed705ff2e04ea8b13c","dweb:/ipfs/QmXRJDv3xHLVQCVXg1ZvR35QS9sij5y9NDWYzMfUfAdTHF"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/EIP712.sol":{"keccak256":"0x999f705a027ed6dc2d4e0df2cc4a509852c6bfd11de1c8161bf88832d0503fd0","urls":["bzz-raw://0798def67258d9a3cc20b2b4da7ebf351a5cefe0abfdd665d2d81f8e32f89b21","dweb:/ipfs/QmPEvJosnPfzHNjKvCv2D3891mA2Ww8eUwkqrxBjuYdHCt"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol":{"keccak256":"0xba333517a3add42cd35fe877656fc3dfcc9de53baa4f3aabbd6d12a92e4ea435","urls":["bzz-raw://2ceacff44c0fdc81e48e0e0b1db87a2076d3c1fb497341de077bf1da9f6b406c","dweb:/ipfs/QmRUo1muMRAewxrKQ7TkXUtknyRoR57AyEkoPpiuZQ8FzX"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/SignatureChecker.sol":{"keccak256":"0x6b11eb41a228cca35d4b662b4df69fcd75192851365102690f57b2ac01e83fe6","urls":["bzz-raw://ab006a2983ed350d2af21ddcdd835dcae3b8340086cc4d088460da5abd041f69","dweb:/ipfs/QmbEacDhkJZiGrgzLjB4pNtE8Z1uudjDw1DvcDUTVQFsLG"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b","urls":["bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df","dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d","urls":["bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875","dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol":{"keccak256":"0xe19a4d5f31d2861e7344e8e535e2feafb913d806d3e2b5fe7782741a2a7094fe","urls":["bzz-raw://4aed79c0fa6f0546ed02f2f683e8f77f0fd2ed7eb34d8bbf3d373c9a6d95b13c","dweb:/ipfs/QmWqVz6UAVqmnWU5pqYPt1o6iDEZyPaBraAA3rKfTTSfYj"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0x5f7e4076e175393767754387c962926577f1660dd9b810187b9002407656be72","urls":["bzz-raw://7d533a1c97cd43a57cd9c465f7ee8dd0e39ae93a8fb8ff8e5303a356b081cdcc","dweb:/ipfs/QmVBEei6aTnvYNZp2CHYVNKyZS4q1KkjANfY39WVXZXVoT"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/Checkpoints.sol":{"keccak256":"0xbdc5e074d7dd6678f67e92b1a51a20226801a407b0e1af3da367c5d1ff4519ad","urls":["bzz-raw://a36cca6b22fff3db16fc789ff6c60eea71d4b156065d4d0c83a0bc5e91a77a8b","dweb:/ipfs/QmYN3exd5AemxjBrN8XMB1p5LbbE16uC3sjbYjwi8AjcGR"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/types/Time.sol":{"keccak256":"0xc7755af115020049e4140f224f9ee88d7e1799ffb0646f37bf0df24bf6213f58","urls":["bzz-raw://7f09bf94d5274334ec021f61a04659db303f31e60460e14b709c9bf187740111","dweb:/ipfs/QmNvgomZYUwFAt4cZbPWAiTeSZQreGehY9BK5xyVJsUttb"],"license":"MIT"},"src/contracts/common/Entity.sol":{"keccak256":"0x3d61a932995b8443381f3950542d388223a2c26dd5d29a3274dea3baa7388bd7","urls":["bzz-raw://7cdf5f03ca72fd263fd32ff59c8d88ddca911ae83896a287d10772c1bbe9b138","dweb:/ipfs/QmbP84r5BWT1Rn9AYTntWSf3xUMTTCohTZJFhbBhDXFoHa"],"license":"BUSL-1.1"},"src/contracts/common/MigratableEntity.sol":{"keccak256":"0x2d736f4dacd5d7e7697503bc426c78b8250fe1694ca157965ec178da6807de58","urls":["bzz-raw://f1237acf96b4b9f9b69156e068eddd726a6e15bd8e87a18dc999cd4ba4da069c","dweb:/ipfs/QmS6M8fiFFSeuJ4ZKKq1z8W7w4ybeHQSy5TLASGoc1LVic"],"license":"BUSL-1.1"},"src/contracts/common/StaticDelegateCallable.sol":{"keccak256":"0x350029aa8955eacaffffaeb58babc5c98e80ebc5c5db388ed17ee6465f4a9d90","urls":["bzz-raw://eb392a8ee9050e0af606897df63e3404e3829e8b688b580663892f9664195764","dweb:/ipfs/QmaXC8jqV8UrrAFkzXTEv2fJF56sy33HhLxAzaRZmUxuXD"],"license":"BUSL-1.1"},"src/contracts/delegator/BaseDelegator.sol":{"keccak256":"0x7c54d491fdd4415b764a9c8defa068e56d4c0c8c9419be0053a1d377669290e8","urls":["bzz-raw://9238bfbad0f6eeb0dc7727724de14380f1980b395902269703d5e2ef07e52e10","dweb:/ipfs/QmPJn1V4HNXcEghYvogGuSTF24dSQUPosR5qtsXcmNqRm3"],"license":"BUSL-1.1"},"src/contracts/delegator/FullRestakeDelegator.sol":{"keccak256":"0x0a81c4f8e72914563a9cb771e93acf889c71ea36b7bec040e4eb562b199d5af1","urls":["bzz-raw://6fc66b6ba02da77046a0bbbd1dd407a62c08f52e04486c9cbd2cb1cca3da555f","dweb:/ipfs/QmZQivK1ZnMxfRQQ5aLpV9co5u55wQVNev5Rg1hzAqxhkE"],"license":"BUSL-1.1"},"src/contracts/delegator/NetworkRestakeDelegator.sol":{"keccak256":"0xd3a8e6522f9c6fdcc2da837c9023afd6bdff2bce45a35590320c475519e3636d","urls":["bzz-raw://58b17a87f6554f08376f9ea7fedf486a4aa75801bf0ad8b23ff5a46959b6b7a3","dweb:/ipfs/QmSTmNh67tYt8CmjVZb57r8N3qX5yeYdMApKPJm3qvQgQw"],"license":"BUSL-1.1"},"src/contracts/delegator/OperatorNetworkSpecificDelegator.sol":{"keccak256":"0x031a10722b9ec49048f0952710401131290adb87e71caf294e864e7ac3b98a16","urls":["bzz-raw://72428febc875134b2f29205e6f294634a1c22a7d5c78d6a9cb2f8196f107c9b5","dweb:/ipfs/QmTPwXR6h5oytckmkLrHdKeEMdphJxceDhYUR4zvQeWAwY"],"license":"BUSL-1.1"},"src/contracts/delegator/OperatorSpecificDelegator.sol":{"keccak256":"0x630ce62fa30b9f3349ab7a8cf8dbf041319febc6dd757be2f94d3d25944ed328","urls":["bzz-raw://c2ac59d47ce57d2a6819ae9833e1a618a371eccff93eb5ab367b201b01f42bfa","dweb:/ipfs/QmdBpGMBivpNPv2WbH8vnCUy5xkVeaxQvGgqi33vKCz1kA"],"license":"BUSL-1.1"},"src/contracts/hints/DelegatorHints.sol":{"keccak256":"0x44aa0c396311a54afbc7c73e8dadeed41e3165a4fd13f712b27d63d50fc3376d","urls":["bzz-raw://2f255214f3531fc707d88be0d56a7a0aed4180439316d099d760d9118aa83093","dweb:/ipfs/QmZD1w5p1ukJSXumUAjvxwGmkPhn7vsr21Y2atLGEZR2oi"],"license":"BUSL-1.1"},"src/contracts/hints/Hints.sol":{"keccak256":"0x8b565df1ae35993c097a9e642002782a8f451f6fd01809cad6bcd345bdf1b99c","urls":["bzz-raw://99a19adb01e350a92f534095b3078229df1f2f83077992d75d58d8684be45971","dweb:/ipfs/QmbmwcuswVbzvwHQFTtrJG86oV98GnfxqYTb8cV8u1acox"],"license":"BUSL-1.1"},"src/contracts/hints/OptInServiceHints.sol":{"keccak256":"0x95d9407900d27b9f4a1233b772aeed809c07b2dc5b31cfc9fa77ca26514c49e5","urls":["bzz-raw://a13a8877e312d7e6b8b85bde3668c5d84ff5ecc83f762cd573f2b7104c64eb42","dweb:/ipfs/QmYV2J55acuGzCNnS3juABuUHY5U1xc8g8o9jwEyFFdeG5"],"license":"BUSL-1.1"},"src/contracts/hints/VaultHints.sol":{"keccak256":"0xccb505b7159b769cc114d67b87c2de6b106557f667fc8f3780114baad5c3c442","urls":["bzz-raw://6d0c80a908fc16e96a8b5605a0bd53f9e89ad0ef0a738fbbae80ba4d3160749b","dweb:/ipfs/QmXo5UtWoR8YmunqcbBU8rQMm1nvmvjNPoXcVrDhh4pEwR"],"license":"BUSL-1.1"},"src/contracts/libraries/Checkpoints.sol":{"keccak256":"0xba90097c8bfe0a975499428b5f8ac5569483c7d92ccc28c12d70de416aae040c","urls":["bzz-raw://12f5d93ca94cd06d3147db68993165a58e17903ed53682560de61f3085ad4609","dweb:/ipfs/QmePiuAqvXprMLmFZkGZeGjvGPAvsEDHfCDv7BoQhXu9xE"],"license":"MIT"},"src/contracts/libraries/ERC4626Math.sol":{"keccak256":"0x8441160513c1cbeb1c3b9ee077bcc7e7ce20006b52a77c8dd39ff0ef89699939","urls":["bzz-raw://943f8cc3e26ddf649f465f40c909819f5c864717c4baa339e9e403b9374a4653","dweb:/ipfs/QmXPxi1sUDsrGprZdUgCzoPEosaZMv9ZhygWQ1vAi1phAB"],"license":"MIT"},"src/contracts/libraries/Subnetwork.sol":{"keccak256":"0xf5ef5506fd66082b3c2e7f3df37529f5a8efad32ac62e7c8914bd63219190bfe","urls":["bzz-raw://ba031a54ee0d0e9a270c2b9e18437f5668cfeb659cfd5fe0677459d7fcac2a56","dweb:/ipfs/QmReP3H7qQ78tAfgLnJKsNEQNCQfF1X1Get38Ffd4kzq32"],"license":"MIT"},"src/contracts/service/OptInService.sol":{"keccak256":"0x4e0932077f2686b7990e10d59deb2535334c0d09e52ef6e57c6ab09eca21c4b1","urls":["bzz-raw://7c00d311032ed4a1743aca7475f3c86ce15cdfc2218108efc3731c03d34a5278","dweb:/ipfs/QmUGGfVwVhaHr5kS4177yKKYiLYzi5qZpkEmvYxBZqazxf"],"license":"BUSL-1.1"},"src/contracts/vault/Vault.sol":{"keccak256":"0x2ceff6ed3298c4cad144c99fcc79b51cb9397d6ebef00285b915848b476f8c2e","urls":["bzz-raw://11f2fb3581854f3ab6e82e8d4935d9eb510c903a13c3f022346c2956a58f5307","dweb:/ipfs/QmdUnoXoyYoG9SGWyQZCFyLDRUUX3eXyXetkRvw6jxqqBz"],"license":"BUSL-1.1"},"src/contracts/vault/VaultStorage.sol":{"keccak256":"0x57db25b127d77ea3472de53e3a4af3354399655b9268638b99ca5925fa364a56","urls":["bzz-raw://aa763d9a6ec508ae3abfb8228b72b9fd9525279e5135d4962e79ff059feb1173","dweb:/ipfs/QmcbDR6E9wyEpu6V2FkEC4hnWy47zXA9LSKJde6zSGd33Q"],"license":"BUSL-1.1"},"src/interfaces/common/IEntity.sol":{"keccak256":"0x8ef4b63d6da63489778ccd5f8d13ebdd527dd4b62730b2c616df5af7474d2d21","urls":["bzz-raw://5a8d69576a9219d85c50816a18ad53a4d53cfcb27ed38b8cccc808dc2734b71b","dweb:/ipfs/QmYVN3P4Q4REvBWJ97TbAcaxm3uyB2anV6NSGa6ZtSwcEv"],"license":"MIT"},"src/interfaces/common/IMigratableEntity.sol":{"keccak256":"0x8f5f2809f3afbe8ebfbb365dd7b57b4dd3b6f9943a6187eaf648d45895b8e3c4","urls":["bzz-raw://0ffe640537d539e7a4fde70d30d3e4c57f4ba9c2c25c450cea713aae38e8fd5c","dweb:/ipfs/QmSUTGzvdcn1R1KB7tLThMRtESsfPbeXDhhhKWGtntzBds"],"license":"MIT"},"src/interfaces/common/IRegistry.sol":{"keccak256":"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb","urls":["bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014","dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK"],"license":"MIT"},"src/interfaces/common/IStaticDelegateCallable.sol":{"keccak256":"0xa335d4e81b9071b7de66ef92b43ff20671d86516eb1be46fef29a3483cd3f5d5","urls":["bzz-raw://d464b9db863c14c05547d2b23352f2e9b7b784799cf09f6bbc4906a2a74e3516","dweb:/ipfs/QmUVWzFvJz7eEbDQKiFTTzwi7TEbjcs3VmwdM4kuptAKvi"],"license":"MIT"},"src/interfaces/delegator/IBaseDelegator.sol":{"keccak256":"0x96bb312f032e17accce3f8f80936d99468029d6b37c9ca74acdb4b026a0148ee","urls":["bzz-raw://2a66dcb5b7d1a6ef6a363431ea98ebd78bc4fdd3d7a134d9b542dc66e7d025c2","dweb:/ipfs/QmRhTPLd2ZAyRHmJUFUcWKs9b3if49QY17LYZuRqWmghw8"],"license":"MIT"},"src/interfaces/delegator/IDelegatorHook.sol":{"keccak256":"0xc51aa8d7d1f6c8043ee819b7aeb86da0e993912e1442098df897e299f01f9f46","urls":["bzz-raw://adddf5cb2ba282aeb576b26efb28640f865a1721cc9b6eee8b3ee0457a2c9780","dweb:/ipfs/QmNYgAmnLRwWZbhTuQhZs9rx4zcme1df5mEepkrniorSoW"],"license":"MIT"},"src/interfaces/delegator/IFullRestakeDelegator.sol":{"keccak256":"0xa3c8cb2e45d4d8ce90e95263bea40c01dc400f05ad65bc29597d878606be5e7d","urls":["bzz-raw://782cf5e201aa4cca037ebafd3807a68ff1cc721d5b8416a35244db0d0607369e","dweb:/ipfs/QmQkJks6x7CKndeTPa9LxgTNygD5uEi7obhADhpq1Lsr9A"],"license":"MIT"},"src/interfaces/delegator/INetworkRestakeDelegator.sol":{"keccak256":"0xe7030fe30389a147fd710e3436ec346b4842695fd3e65a81b95375c9f1d633fc","urls":["bzz-raw://739c7e66d301778054f5c90bee45ec9438f68afba8a03eaaac52064c73b115ad","dweb:/ipfs/QmfZ2ytKcTykAc76nxhg8ikUXV8NdBpetqb8W4YWPcox1Z"],"license":"MIT"},"src/interfaces/delegator/IOperatorNetworkSpecificDelegator.sol":{"keccak256":"0x74b95e64d29769202d45dd277bb830f623ff3d41ce77b80ce3ee4e318a5c71ec","urls":["bzz-raw://e512b903aae5c1b8a028c6e3f4f6223b5cb5d704503cfa6bd37b5346868f5c20","dweb:/ipfs/QmZim9YExsPWtyxyeui993HTKAEmrg8MUcSkZ77Gp2JcuZ"],"license":"MIT"},"src/interfaces/delegator/IOperatorSpecificDelegator.sol":{"keccak256":"0x72075cab585dc17240cc3e32bc99b92f0d5627ddd988fed680e3e1a52d5a01e4","urls":["bzz-raw://7448bc90699409ae61d85216b5efc2143a37f0f73354be2aea993bc54afca441","dweb:/ipfs/QmXE4gAxM8pHosZK8mcTcj17puBx484meDCcmrDePskGHZ"],"license":"MIT"},"src/interfaces/service/IOptInService.sol":{"keccak256":"0x76fb5460a6d87a5705433d4fbeff7253cd75b8bbd0c888b2088f16e86ace146a","urls":["bzz-raw://990322019b3d11465f7024bae77ccbf7e2fe5d6fa3c754584778f37d04fa1337","dweb:/ipfs/QmaSNHzcqxTkUCG9a4nqVfLECHLdjdrwAnDi3yDC7tDL24"],"license":"MIT"},"src/interfaces/slasher/IBaseSlasher.sol":{"keccak256":"0x7c82528b445659c313ab77335c407b0b6efe5e79027187bb287f7bc74202b404","urls":["bzz-raw://0274c90aa5df1aa6bb470a6aab53992fb14fd7e5472c9430416505b29647d9cf","dweb:/ipfs/QmckbmJLDetPemVzCnnGcKYWAZV2BRFXGDsjiaec8jkHxx"],"license":"MIT"},"src/interfaces/vault/IVault.sol":{"keccak256":"0xffee01d383cd4e1a5530c614bf4360c1ef070c288abec9da1eb531b51bc07235","urls":["bzz-raw://04f0046cac285d8ec44ebbb1f79dc94fab4495767190cad8364fbc1fafaadfb9","dweb:/ipfs/QmUawAunwzXfCyShWfhKeThAgKtqe51hmrxvrXvM772M2R"],"license":"MIT"},"src/interfaces/vault/IVaultStorage.sol":{"keccak256":"0x592626f13754194f83047135de19229c49390bd59e34659b1bb38be71d973a22","urls":["bzz-raw://06a6a9dfddd05e580b32bebe2cff4f63ba26a653180676d58225dd30d9c89d3e","dweb:/ipfs/QmdgzBeY6Sxo8mGtyBxtv1tM1c2kU6J6zjeRd7vuXm4DU6"],"license":"MIT"}},"version":1},"id":86} \ No newline at end of file +{"abi":[{"type":"constructor","inputs":[{"name":"optInServiceHints","type":"address","internalType":"address"},{"name":"vaultHints_","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"DEFAULT_ADMIN_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"FACTORY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"FULL_RESTAKE_DELEGATOR_HINTS","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"HOOK_GAS_LIMIT","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"HOOK_RESERVE","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"HOOK_SET_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"NETWORK_REGISTRY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"NETWORK_RESTAKE_DELEGATOR_HINTS","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"OPERATOR_NETWORK_OPT_IN_SERVICE","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"OPERATOR_VAULT_OPT_IN_SERVICE","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"OPT_IN_SERVICE_HINTS","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"TYPE","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"VAULT_FACTORY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"VERSION","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"pure"},{"type":"function","name":"getRoleAdmin","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"grantRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"hasRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"hook","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"initialize","inputs":[{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"maxNetworkLimit","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"value","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"onSlash","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"captureTimestamp","type":"uint48","internalType":"uint48"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"renounceRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"callerConfirmation","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"revokeRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setHook","inputs":[{"name":"hook_","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setMaxNetworkLimit","inputs":[{"name":"identifier","type":"uint96","internalType":"uint96"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"stake","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"stakeAt","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"timestamp","type":"uint48","internalType":"uint48"},{"name":"hints","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"stakeBaseHints","inputs":[{"name":"delegator","type":"address","internalType":"address"},{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"timestamp","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"stakeHints","inputs":[{"name":"delegator","type":"address","internalType":"address"},{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"timestamp","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"staticDelegateCall","inputs":[{"name":"target","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"vault","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"OnSlash","inputs":[{"name":"subnetwork","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"captureTimestamp","type":"uint48","indexed":false,"internalType":"uint48"}],"anonymous":false},{"type":"event","name":"RoleAdminChanged","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"previousAdminRole","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"newAdminRole","type":"bytes32","indexed":true,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"RoleGranted","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"sender","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"RoleRevoked","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"sender","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"SetHook","inputs":[{"name":"hook","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"SetMaxNetworkLimit","inputs":[{"name":"subnetwork","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"error","name":"AccessControlBadConfirmation","inputs":[]},{"type":"error","name":"AccessControlUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"neededRole","type":"bytes32","internalType":"bytes32"}]},{"type":"error","name":"AlreadySet","inputs":[]},{"type":"error","name":"ExternalCall","inputs":[]},{"type":"error","name":"InsufficientHookGas","inputs":[]},{"type":"error","name":"InvalidInitialization","inputs":[]},{"type":"error","name":"NotInitialized","inputs":[]},{"type":"error","name":"NotInitializing","inputs":[]},{"type":"error","name":"NotNetwork","inputs":[]},{"type":"error","name":"NotSlasher","inputs":[]},{"type":"error","name":"NotVault","inputs":[]},{"type":"error","name":"ReentrancyGuardReentrantCall","inputs":[]}],"bytecode":{"object":"0x6101c03461027157618da96001600160401b03601f38839003908101601f191684019082821185831017610202578085916040958694855283398101031261027157610056602061004f85610275565b9401610275565b90306080527ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805460ff81861c166102605780838080931603610220575b5050505f60a0525f60c0525f60e052610100935f8552610120935f8552610140905f82526101609280845281516138de8082019082821088831117610202578389849361010093611ef286393081526001600160a01b0391821660208201529116604082015260600190565b03905ff09485156102165760018060a01b039687610180971687528351926135d991828501938585109085111761020257849361015c936157d086393081526001600160a01b0391821660208201529116604082015260600190565b03905ff09485156101f8576101a0951685525194611c68968761028a883960805187505060a05187610623015260c05187610b5f015260e05187818161048f0152610b980152518681816102c70152611a4b01525185818161030b015261163d01525184818161034f01526116bb015251838181610a3d0152611190015251828181610283015261148f015251818181610dfa01526115510152f35b50513d5f823e3d90fd5b634e487b7160e01b5f52604160045260245ffd5b82513d5f823e3d90fd5b6001600160401b03191617905582518181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a15f8181610094565b845163f92ee8a960e01b8152600490fd5b5f80fd5b51906001600160a01b03821682036102715756fe60806040526004361015610011575f80fd5b5f3560e01c806301ffc9a714610214578063075db0361461020f578063103f29071461020a578063128e5d82146102055780631a80e500146102005780631bf10a3e146101fb57806323f752d5146101f6578063248a9ca3146101f157806325dc9708146101ec5780632dd31000146101e75780632f2ff15d146101e257806336568abe146101dd5780633dfd3873146101d8578063439fab91146101d3578063557cab44146101ce5780636679191e146101c95780637f5a7c7b146101c457806391d14854146101bf5780639b656b22146101ba5780639f86fd85146101b5578063a217fddf146101b0578063bb24fe8a146101ab578063c0cd7c3e146101a6578063d15b740e146101a1578063d547741f1461019c578063e02f693714610197578063e102831a14610192578063e49561ee1461018d578063fbfa77cf14610188578063fd4d447c14610183578063ff54740f1461017e5763ffa1ad7414610179575f80fd5b61108a565b61106d565b61103b565b611014565b610e29565b610de5565b610d02565b610bf1565b610bc7565b610b83565b610b40565b610b26565b610a6c565b610a28565b6109ca565b6109a2565b610968565b61094c565b61080f565b6106e9565b61069e565b610652565b61060e565b6105f1565b6105b8565b61043c565b610407565b61033a565b6102f6565b6102b2565b61026e565b3461026a57602036600319011261026a5760043563ffffffff60e01b811680910361026a57602090637965db0b60e01b8114908115610259575b506040519015158152f35b6301ffc9a760e01b1490505f61024e565b5f80fd5b3461026a575f36600319011261026a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461026a575f36600319011261026a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461026a575f36600319011261026a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461026a575f36600319011261026a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b6001600160a01b0381160361026a57565b6064359065ffffffffffff8216820361026a57565b608090600319011261026a576004356103bc8161037e565b90602435906044356103cd8161037e565b9060643565ffffffffffff8116810361026a5790565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b3461026a5761043861042461041b366103a4565b92919091611168565b6040519182916020835260208301906103e3565b0390f35b3461026a57604036600319011261026a576004356001600160601b038116810361026a576024359061046c611732565b6040516302910f8b60e31b81523360048201526020816024816001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165afa9081156105b3575f91610584575b5015610572576001600160601b03166bffffffffffffffffffffffff193360601b161790806104f6835f52600260205260405f2090565b541461056057610545817fc67e7929681aa1bccd63f52b3799bf5805f3009f197db6fdf584b14f7fbf608c92610534855f52600260205260405f2090565b556040519081529081906020820190565b0390a261055e60015f80516020611bf383398151915255565b005b60405163a741a04560e01b8152600490fd5b6040516323d53b9760e21b8152600490fd5b6105a6915060203d6020116105ac575b61059e8183610c71565b8101906113b9565b5f6104bf565b503d610594565b6110bd565b3461026a57602036600319011261026a576004355f525f80516020611bd38339815191526020526020600160405f200154604051908152f35b3461026a57610438610424610605366103a4565b929190916113f0565b3461026a575f36600319011261026a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461026a57604036600319011261026a5761055e6024356004356106758261037e565b805f525f80516020611bd3833981519152602052610699600160405f200154611761565b611918565b3461026a57604036600319011261026a576024356106bb8161037e565b336001600160a01b038216036106d75761055e9060043561194e565b60405163334bd91960e11b8152600490fd5b3461026a57602036600319011261026a576004356107068161037e565b61070e611732565b335f9081527f9ebbcbe0d2961d3fbe56ca6f679bc753bd848d3e6bb3eaf9041c51b286881d2c60205260409020547fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c9060ff16156107c457506001546001600160a01b039182169181168214610560576001600160a01b03191681176001557f5bbb1d3ebb6a3ad2a0f17ff35e579a83af60604d1d3c2a4c83c62adecadf666d5f80a260015f80516020611bf383398151915255005b6044906040519063e2517d3f60e01b82523360048301526024820152fd5b9181601f8401121561026a578235916001600160401b03831161026a576020838186019501011161026a57565b3461026a57602036600319011261026a576001600160401b0360043581811161026a576108409036906004016107e2565b5f80516020611c13833981519152549260ff8460401c1615931680159081610944575b600114908161093a575b159081610931575b5061091f575f80516020611c13833981519152805467ffffffffffffffff191660011790556108a891836108f657611a16565b6108ae57005b5f80516020611c13833981519152805460ff60401b19169055604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a1005b5f80516020611c13833981519152805460ff60401b191668010000000000000000179055611a16565b60405163f92ee8a960e01b8152600490fd5b9050155f610875565b303b15915061086d565b849150610863565b3461026a575f36600319011261026a576020604051614e208152f35b3461026a575f36600319011261026a5760206040517fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c8152f35b3461026a575f36600319011261026a576001546040516001600160a01b039091168152602090f35b3461026a57604036600319011261026a57602060ff610a1c6024356109ee8161037e565b6004355f525f80516020611bd3833981519152845260405f209060018060a01b03165f5260205260405f2090565b54166040519015158152f35b3461026a575f36600319011261026a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461026a5760408060031936011261026a57600435610a8a8161037e565b602435906001600160401b03821161026a575f8091610ab0610b149436906004016107e2565b908187519283928337810184815203915af43d15610b1c57610b063d610ad581610ca1565b90610ae286519283610c71565b81523d5f602083013e5b8451948593151560208501528084015260608301906103e3565b03601f198101835282610c71565b805190602001fd5b610b066060610aec565b3461026a575f36600319011261026a5760206040515f8152f35b3461026a575f36600319011261026a5760206040516001600160401b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461026a575f36600319011261026a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461026a57602036600319011261026a576004355f526002602052602060405f2054604051908152f35b3461026a57604036600319011261026a5761055e602435600435610c148261037e565b805f525f80516020611bd3833981519152602052610c38600160405f200154611761565b61194e565b634e487b7160e01b5f52604160045260245ffd5b604081019081106001600160401b03821117610c6c57604052565b610c3d565b90601f801991011681019081106001600160401b03821117610c6c57604052565b60405190610c9f82610c51565b565b6001600160401b038111610c6c57601f01601f191660200190565b81601f8201121561026a57803590610cd382610ca1565b92610ce16040519485610c71565b8284526020838301011161026a57815f926020809301838601378301015290565b3461026a5760808060031936011261026a57610d1f60243561037e565b60443565ffffffffffff81160361026a576001600160401b0360643581811161026a57610d50903690600401610cbc565b5060606020604051610d6181610c51565b828152015260605180610d79575b60206040515f8152f35b8281016020821261026a5783519183831161026a5782604091031261026a5760405193610da585610c51565b8281015184811161026a578282610dbe928601016110c8565b855260a083015193841161026a57602093610dda9301016110c8565b9101525f8080610d6f565b3461026a575f36600319011261026a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461026a5760a036600319011261026a57602435600435610e498261037e565b60443591610e5561038f565b90608435906001600160401b03821161026a57610e7760049236908401610cbc565b610e7f611732565b5f54602090610ea490610e98906001600160a01b031681565b6001600160a01b031690565b60405163b134427160e01b815294859182905afa9283156105b3575f93610fe3575b506001600160a01b039283163303610fd1576001546001600160a01b0316838116610f46575b50506040805195865265ffffffffffff909316602086015216927f741a5de99085c0d660f3e4192217b0ffb0ea4e35a0480de48e857a4bc3ee36ed91819081015b0390a361055e60015f80516020611bf383398151915255565b909360405194610f7d86610f6f602082019363724ab0f760e11b8552858c898d602487016115d0565b03601f198101885287610c71565b62042e305a10610fbf575f610f2d938192827f741a5de99085c0d660f3e4192217b0ffb0ea4e35a0480de48e857a4bc3ee36ed9951926203d090f15093610eec565b604051638072475160e01b8152600490fd5b60405163dabc4ad960e01b8152600490fd5b61100691935060203d60201161100d575b610ffe8183610c71565b8101906110a5565b915f610ec6565b503d610ff4565b3461026a575f36600319011261026a575f546040516001600160a01b039091168152602090f35b3461026a57604036600319011261026a57602061106560243561105d8161037e565b600435611608565b604051908152f35b3461026a575f36600319011261026a5760206040516203d0908152f35b3461026a575f36600319011261026a57602060405160018152f35b9081602091031261026a57516110ba8161037e565b90565b6040513d5f823e3d90fd5b81601f8201121561026a578051906110df82610ca1565b926110ed6040519485610c71565b8284526020838301011161026a57815f9260208093018386015e8301015290565b9060208282031261026a5781516001600160401b03811161026a576110ba92016110c8565b906110ba91602081526020611153835160408385015260608401906103e3565b920151906040601f19828503019101526103e3565b604080516309472ec160e11b8152606096956001600160a01b039384169591946020949192917f0000000000000000000000000000000000000000000000000000000000000000169085876004818b5afa9687156105b3575f9761139a575b50845163fbfa77cf60e01b81529686886004818c5afa80156105b357855f9161123b9a839161137d575b508851636a531c3160e11b8082526001600160a01b039586166004830152858916602483015294909116604482015265ffffffffffff909116606482015298899081906084820190565b0381865afa9788156105b3575f98611358575b508686979899600496975196878092621a80e560e81b82525afa9485156105b3575f95611335575b5086519081526001600160a01b03948516600482015293909216602484015260609190911c604483015265ffffffffffff9092166064820152905f9082908180608481015b03915afa9081156105b3575f91611313575b50835115801590611309575b6112e35750505050565b6110ba9394955090610b06916112f7610c92565b95865283860152519384928301611133565b50805115156112d9565b61132f91503d805f833e6113278183610c71565b81019061110e565b5f6112cd565b5f95506113516112bb918a3d8c1161100d57610ffe8183610c71565b9550611276565b8798509661137360049697983d805f833e6113278183610c71565b989796955061124e565b61139491508a3d8c1161100d57610ffe8183610c71565b5f6111f1565b6113b2919750863d881161100d57610ffe8183610c71565b955f6111c7565b9081602091031261026a5751801515810361026a5790565b9081602091031261026a57516001600160401b038116810361026a5790565b604051635d927f4560e11b8082526060969594936001600160a01b03939092909160209190858416908383600481855afa9283156105b3575f936115b1575b506001600160401b039283166114d65750506040516304bb92e160e31b81526001600160a01b0393841660048201526024810194909452505092909216604483015265ffffffffffff9290921660648201529192505f90829060849082907f0000000000000000000000000000000000000000000000000000000000000000165afa9081156105b3575f916114c2575090565b6110ba91503d805f833e6113278183610c71565b839060046040518094819382525afa9081156105b3576001935f92611584575b50501614611505575050505050565b6040516304bb92e160e31b81526001600160a01b039182166004820152602481019290925292909216604483015265ffffffffffff9290921660648201529192505f90829060849082907f0000000000000000000000000000000000000000000000000000000000000000165afa9081156105b3575f916114c2575090565b6115a39250803d106115aa575b61159b8183610c71565b8101906113d1565b5f806114f6565b503d611591565b6115c9919350843d86116115aa5761159b8183610c71565b915f61142f565b919360a0936110ba969565ffffffffffff938552600180871b03166020850152604084015216606082015281608082015201906103e3565b5f546040516308834cb560e21b8082526001600160a01b038581166004840152928316602483015293602092909183816044817f000000000000000000000000000000000000000000000000000000000000000086165afa9081156105b3575f91611715575b501593841561168a575b505050509050611686575f90565b5f90565b6040519586526001600160a01b0392909216600486015260609190911c6024850152909291508290829060449082907f0000000000000000000000000000000000000000000000000000000000000000165afa9182156105b3575f926116f8575b505015805f808080611678565b61170e9250803d106105ac5761059e8183610c71565b5f806116eb565b61172c9150843d86116105ac5761059e8183610c71565b5f61166e565b5f80516020611bf3833981519152600281541461174f5760029055565b604051633ee5aeb560e01b8152600490fd5b5f8181525f80516020611bd38339815191526020908152604080832033845290915290205460ff16156107c45750565b6001600160a01b0381165f9081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d60205260409020545f80516020611bd38339815191529060ff1661183c575f808052602091825260408082206001600160a01b038516835290925220805460ff1916600117905533906001600160a01b03165f7f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d8180a4600190565b50505f90565b6001600160a01b0381165f9081527f9ebbcbe0d2961d3fbe56ca6f679bc753bd848d3e6bb3eaf9041c51b286881d2c602052604090207fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c905f80516020611bd38339815191529060ff905b5416611911575f828152602091825260408082206001600160a01b038616835290925220805460ff1916600117905533916001600160a01b0316907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d5f80a4600190565b5050505f90565b5f8181525f80516020611bd3833981519152602081815260408084206001600160a01b038716855290915290912060ff906118ad565b5f8181525f80516020611bd3833981519152602081815260408084206001600160a01b03871685529091529091205460ff1615611911575f828152602091825260408082206001600160a01b038616835290925220805460ff1916905533916001600160a01b0316907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b5f80a4600190565b91909160408184031261026a5780356119f88161037e565b9260208201356001600160401b03811161026a576110ba9201610cbc565b611a22918101906119e0565b506040516302910f8b60e31b81526001600160a01b0391821660048201819052906020816024817f000000000000000000000000000000000000000000000000000000000000000087165afa9081156105b3575f91611b34575b5015611b2257611aa990611a8e611b53565b60018060a01b03166001600160601b0360a01b5f5416175f55565b611afc6040611ab6611b76565b6020810151600180546001600160a01b0319166001600160a01b0390921691909117905580516001600160a01b0316848116611b12575b5001516001600160a01b031690565b908116611b065750565b611b0f90611842565b50565b611b1b90611791565b505f611aed565b6040516362df054560e01b8152600490fd5b611b4d915060203d6020116105ac5761059e8183610c71565b5f611a7c565b611b5b611ba4565b611b63611ba4565b60015f80516020611bf383398151915255565b60405190606082018281106001600160401b03821117610c6c576040525f6040838281528260208201520152565b60ff5f80516020611c138339815191525460401c1615611bc057565b604051631afcd79f60e31b8152600490fdfe02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268009b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a264697066735822122039dce195144b27a47a4223371e67014a21ca412ee10a9ba4d2d3f9eae39aa3a164736f6c634300081900336101c0346101cf57601f6138de38819003918201601f19168301916001600160401b0391828411858510176101d35781606092869260409687528339810103126101cf5761004c836101e7565b926100648361005d602084016101e7565b92016101e7565b91306080527ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a009081549060ff82871c166101be57808083160361017a575b5050505f60a0525f60c0525f60e052610100935f8552610120935f8552610140905f82526101609283526101809384526101a094855251946136e296876101fc88396080518781816105a001528181610fd70152611629015260a051876109e9015260c051876112ac015260e05187818161084b01526112e5015251868181610512015261298501525185818161055601528181611e330152611f3b0152518481816107c901528181611d9a0152611fb9015251838181610e95015261194d015251828181610d9701526119ee015251816110490152f35b6001600160401b0319909116811790915583519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a15f80806100a2565b855163f92ee8a960e01b8152600490fd5b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b51906001600160a01b03821682036101cf5756fe60806040526004361015610011575f80fd5b5f3560e01c806301ffc9a71461030457806302145348146102ff57806307f9d5fd146102fa578063103f2907146102f5578063128e5d82146102f0578063197aa7ea146102eb5780631a7a7044146102e65780631a80e500146102e157806323f752d5146102dc578063248a9ca3146102d757806325dc9708146102d25780632dd31000146102cd5780632f2ff15d146102c857806336568abe146102c35780633dfd3873146102be5780633eb22c0f146102b957806342c53e33146102b4578063439fab91146102af57806345e78fcb146102aa578063557cab44146102a55780635d32a1c9146102a05780636679191e1461029b57806379d89614146102965780637d24bb27146102915780637f5a7c7b1461028c5780638b3f10b01461028757806391d1485414610282578063987b3ee81461027d5780639b656b22146102785780639f86fd8514610273578063a217fddf1461026e578063a33bc28714610269578063b549ef1f14610264578063bb24fe8a1461025f578063c0cd7c3e1461025a578063c43dc03f14610255578063d15b740e14610250578063d547741f1461024b578063da749d2b14610246578063e02f693714610241578063e49561ee1461023c578063e78eb6ae14610237578063ed4d89e514610232578063fbfa77cf1461022d578063fd4d447c14610228578063ff54740f146102235763ffa1ad741461021e575f80fd5b6116dc565b6116bf565b611695565b61166e565b61160e565b6115d4565b6113e9565b6113cd565b6113b3565b611367565b61133d565b611314565b6112d0565b61128d565b611273565b611126565b61110c565b611078565b611034565b610fa6565b610f48565b610f25565b610efd565b610ec4565b610e80565b610e46565b610e23565b610dc6565b610d82565b610c4a565b610bd1565b610ba8565b610aaf565b610a64565b610a18565b6109d4565b6109b7565b61097e565b6107f8565b6107b4565b61076e565b610585565b610541565b6104fd565b6104c8565b61035e565b3461035a57602036600319011261035a5760043563ffffffff60e01b811680910361035a57602090637965db0b60e01b8114908115610349575b506040519015158152f35b6301ffc9a760e01b1490505f61033e565b5f80fd5b3461035a5760408060031936011261035a57600435906024359061038061202e565b825f526002602052805f2054821161041a57825f526003602052816103a6825f206128d7565b1461040a5781610405916103f57e899d104fc3d8820bd96540612bcc5c448c8837b13b9f7faa43ad0728f0c14f946103e6875f52600360205260405f2090565b6103ef42612d7a565b90612176565b5050519081529081906020820190565b0390a2005b5163a741a04560e01b8152600490fd5b51631eefc06360e31b8152600490fd5b6001600160a01b0381160361035a57565b6024359065ffffffffffff8216820361035a57565b6064359065ffffffffffff8216820361035a57565b608090600319011261035a5760043561047d8161042a565b906024359060443561048e8161042a565b9060643565ffffffffffff8116810361035a5790565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b3461035a576104f96104e56104dc36610465565b92919091611736565b6040519182916020835260208301906104a4565b0390f35b3461035a575f36600319011261035a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461035a575f36600319011261035a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461035a57604036600319011261035a5761059e61043b565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163303610602576105e5906004355f52600360205260405f206122f5565b60408051941515855263ffffffff91909116602085015292915050f35b604051637ca475e560e11b8152600490fd5b634e487b7160e01b5f52604160045260245ffd5b604081019081106001600160401b0382111761064357604052565b610614565b606081019081106001600160401b0382111761064357604052565b60a081019081106001600160401b0382111761064357604052565b90601f801991011681019081106001600160401b0382111761064357604052565b604051906106ac82610663565b565b604051906106ac82610628565b6001600160401b03811161064357601f01601f191660200190565b81601f8201121561035a578035906106ed826106bb565b926106fb604051948561067e565b8284526020838301011161035a57815f926020809301838601378301015290565b90608060031983011261035a57600435916024356107398161042a565b9160443565ffffffffffff8116810361035a5791606435906001600160401b03821161035a5761076b916004016106d6565b90565b3461035a5760206107ac6107a76107843661071c565b939190925f526005865260405f209060018060a01b03165f5260205260405f2090565b61242d565b604051908152f35b3461035a575f36600319011261035a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461035a57604036600319011261035a576004356001600160601b038116810361035a5760243590610828612505565b6040516302910f8b60e31b81523360048201526020816024816001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165afa908115610979575f9161094a575b5015610938576001600160601b03166bffffffffffffffffffffffff193360601b161790806108b2835f52600260205260405f2090565b54146109265761090b817fc67e7929681aa1bccd63f52b3799bf5805f3009f197db6fdf584b14f7fbf608c926108f0855f52600260205260405f2090565b556108fb8185612534565b6040519081529081906020820190565b0390a261092460015f8051602061366d83398151915255565b005b60405163a741a04560e01b8152600490fd5b6040516323d53b9760e21b8152600490fd5b61096c915060203d602011610972575b610964818361067e565b8101906117e8565b5f61087b565b503d61095a565b6117fc565b3461035a57602036600319011261035a576004355f525f8051602061364d8339815191526020526020600160405f200154604051908152f35b3461035a576104f96104e56109cb36610465565b92919091611904565b3461035a575f36600319011261035a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461035a57604036600319011261035a57610924602435600435610a3b8261042a565b805f525f8051602061364d833981519152602052610a5f600160405f2001546120e1565b61280f565b3461035a57604036600319011261035a57602435610a818161042a565b336001600160a01b03821603610a9d5761092490600435612845565b60405163334bd91960e11b8152600490fd5b3461035a57602036600319011261035a57600435610acc8161042a565b610ad4612505565b335f9081527f9ebbcbe0d2961d3fbe56ca6f679bc753bd848d3e6bb3eaf9041c51b286881d2c60205260409020547fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c9060ff1615610b8a57506001546001600160a01b039182169181168214610926576001600160a01b03191681176001557f5bbb1d3ebb6a3ad2a0f17ff35e579a83af60604d1d3c2a4c83c62adecadf666d5f80a260015f8051602061366d83398151915255005b6044906040519063e2517d3f60e01b82523360048301526024820152fd5b3461035a57602036600319011261035a576004355f52600360205260206107ac60405f206128d7565b3461035a57604036600319011261035a5760206107ac610c18602435610bf68161042a565b6004355f526005845260405f209060018060a01b03165f5260205260405f2090565b6128d7565b9181601f8401121561035a578235916001600160401b03831161035a576020838186019501011161035a57565b3461035a57602036600319011261035a576001600160401b0360043581811161035a57610c7b903690600401610c1d565b5f8051602061368d833981519152549260ff8460401c1615931680159081610d7a575b6001149081610d70575b159081610d67575b50610d55575f8051602061368d833981519152805467ffffffffffffffff19166001179055610ce39183610d3157612950565b610ce957005b5f8051602061368d833981519152805460ff60401b19169055604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a1005b5f8051602061368d833981519152805460ff60401b1916600160401b179055612950565b60405163f92ee8a960e01b8152600490fd5b9050155f610cb0565b303b159150610ca8565b849150610c9e565b3461035a575f36600319011261035a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461035a575f36600319011261035a576020604051614e208152f35b606060031982011261035a576004359160243565ffffffffffff8116810361035a5791604435906001600160401b03821161035a5761076b916004016106d6565b3461035a5760206107ac610e3636610de2565b915f526003845260405f2061242d565b3461035a575f36600319011261035a5760206040517fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c8152f35b3461035a575f36600319011261035a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461035a575f36600319011261035a5760206040517e8b9b1e5fa9cf3b14f87f435649268146305ddf689f082e5961a335b07a9abf8152f35b3461035a575f36600319011261035a576001546040516001600160a01b039091168152602090f35b3461035a5760206107ac610f3836610de2565b915f526004845260405f2061242d565b3461035a57604036600319011261035a57602060ff610f9a602435610f6c8161042a565b6004355f525f8051602061364d833981519152845260405f209060018060a01b03165f5260205260405f2090565b54166040519015158152f35b3461035a57606036600319011261035a57602435610fc38161042a565b60443565ffffffffffff8116810361035a577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633036106025761102f6105e5926004355f52600560205260405f209060018060a01b03165f5260205260405f2090565b6122f5565b3461035a575f36600319011261035a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461035a57604036600319011261035a576004356110958161042a565b6024356001600160401b03811161035a575f916110b783923690600401610c1d565b90816040519283928337810184815203915af46111046110d5611b60565b916110f66040519384921515602084015260408084015260608301906104a4565b03601f19810183528261067e565b805190602001fd5b3461035a575f36600319011261035a5760206040515f8152f35b3461035a57606036600319011261035a576024356004356111468261042a565b6044359161115261208a565b5f8281526005602090815260408083206001600160a01b0385168452909152902061117c906128d7565b838114610926577f739a5a3ec0ff71e2386d0013deac5f44e0935a98def2e2a5ddf9a709518c8294916111ef61123c92855f52600460205260405f20906111e9886111e46111c942612d7a565b936111df610c188c5f52600460205260405f2090565b611bb6565b611bd1565b91612176565b5050611220856103e68361120b885f52600560205260405f2090565b9060018060a01b03165f5260205260405f2090565b50506040519485526001600160a01b0316939081906020820190565b0390a3005b606090600319011261035a576004356112598161042a565b906024359060443565ffffffffffff8116810361035a5790565b3461035a576104f96104e561128736611241565b91611bde565b3461035a575f36600319011261035a5760206040516001600160401b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461035a575f36600319011261035a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461035a57602036600319011261035a576004355f52600460205260206107ac60405f206128d7565b3461035a57602036600319011261035a576004355f526002602052602060405f2054604051908152f35b3461035a57604036600319011261035a5761092460243560043561138a8261042a565b805f525f8051602061364d8339815191526020526113ae600160405f2001546120e1565b612845565b3461035a576104f96104e56113c736611241565b91611c28565b3461035a5760206107ac6113e03661071c565b92919091611d24565b3461035a5760a036600319011261035a576024356004356114098261042a565b60443591611415610450565b90608435906001600160401b03821161035a57611437600492369084016106d6565b61143f612505565b5f5460209061146490611458906001600160a01b031681565b6001600160a01b031690565b60405163b134427160e01b815294859182905afa928315610979575f936115a3575b506001600160a01b039283163303611591576001546001600160a01b0316838116611506575b50506040805195865265ffffffffffff909316602086015216927f741a5de99085c0d660f3e4192217b0ffb0ea4e35a0480de48e857a4bc3ee36ed91819081015b0390a361092460015f8051602061366d83398151915255565b90936040519461153d8661152f602082019363724ab0f760e11b8552858c898d60248701611eae565b03601f19810188528761067e565b62042e305a1061157f575f6114ed938192827f741a5de99085c0d660f3e4192217b0ffb0ea4e35a0480de48e857a4bc3ee36ed9951926203d090f150936114ac565b604051638072475160e01b8152600490fd5b60405163dabc4ad960e01b8152600490fd5b6115c691935060203d6020116115cd575b6115be818361067e565b810190611872565b915f611486565b503d6115b4565b3461035a575f36600319011261035a5760206040517f1312a1cf530e56add9be4fd84db9051dcc7635952f09f735f9a29405b55846258152f35b3461035a57604036600319011261035a5761162761043b565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163303610602576105e5906004355f52600460205260405f206122f5565b3461035a575f36600319011261035a575f546040516001600160a01b039091168152602090f35b3461035a57604036600319011261035a5760206107ac6024356116b78161042a565b600435611f04565b3461035a575f36600319011261035a5760206040516203d0908152f35b3461035a575f36600319011261035a57602060405160018152f35b5190811515820361035a57565b519063ffffffff8216820361035a57565b919082604091031261035a5761076b602061172f846116f7565b9301611704565b906117869165ffffffffffff6117959496956060976040519463130f67dd60e31b6020870152602486015260018060a01b031660448501521660648301526064825261178182610663565b612238565b60208082518301019101611715565b9061179d5750565b90915063ffffffff604051911660208201526020815261076b81610628565b5f9081526005602090815260408083206001600160a01b0390941683529290522061076b92919061242d565b9081602091031261035a5761076b906116f7565b6040513d5f823e3d90fd5b81601f8201121561035a5780519061181e826106bb565b9261182c604051948561067e565b8284526020838301011161035a57815f9260208093018386015e8301015290565b9060208282031261035a5781516001600160401b03811161035a5761076b9201611807565b9081602091031261035a575161076b8161042a565b9061076b91602081526118a6825160a0602084015260c08301906104a4565b9060a060806118f46118e16118cd602088015196601f1997888883030160408901526104a4565b6040880151878783030160608801526104a4565b60608701518686830301848701526104a4565b94015192828503019101526104a4565b604051630df8851f60e11b81526001600160a01b03828116600483015260248201849052848116604483015265ffffffffffff8616606483015295606095909491935f856084817f00000000000000000000000000000000000000000000000000000000000000008c165afa948515610979575f95611b18575b5060405163fbfa77cf60e01b8152602081600481888d165afa908115610979576119ea995f9285928491611af9575b5060405163192c0ff760e21b81526001600160a01b03909116600482015265ffffffffffff909216602483015290998a9190829081906044820190565b03917f0000000000000000000000000000000000000000000000000000000000000000165afa978815610979575f98611acf575b509081611a3b82611a3381611a419689611c28565b958388611736565b94611bde565b90835115801590611ac5575b8015611abb575b8015611ab1575b8015611aa7575b611a6f5750505050909150565b6110f6955061076b9496611a8161069f565b948552602085015260408401526060830152608082015260405192839160208301611887565b5081511515611a62565b5082511515611a5b565b5080511515611a54565b5086511515611a4d565b611a4192919850611af1903d805f833e611ae9818361067e565b81019061184d565b979091611a1e565b611b12915060203d6020116115cd576115be818361067e565b5f6119ad565b611b2d9195503d805f833e611ae9818361067e565b935f61197e565b9061076b92915f52600360205260405f2061242d565b9061076b92915f52600460205260405f2061242d565b3d15611b8a573d90611b71826106bb565b91611b7f604051938461067e565b82523d5f602084013e565b606090565b634e487b7160e01b5f52601160045260245ffd5b5f19810191908211611bb157565b611b8f565b91908203918211611bb157565b9060018201809211611bb157565b91908201809211611bb157565b60405163ed4d89e560e01b6020820152602481019290925265ffffffffffff909216604482015260609291611795916117869161178182606481015b03601f19810184528361067e565b604051630cbd53f560e11b6020820152602481019290925265ffffffffffff90921660448201526060929161179591611786916117818260648101611c1a565b60405190611c7582610628565b60606020838281520152565b9060208282031261035a5781516001600160401b039283821161035a57019060408282031261035a5760405192611cb784610628565b825181811161035a5782611ccc918501611807565b8452602083015190811161035a57611ce49201611807565b602082015290565b6001600160a01b0391821681529116602082015265ffffffffffff909116604082015260806060820181905261076b929101906104a4565b92611d3490929192828486612bb5565b929093611d3f611c68565b93805180611e92575b50508415938415611dfc575b8415611d6b575b50505050611d665790565b505f90565b602080949550611d96910151604051958694859463530e1d4360e01b865260601c9060048601611cec565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa908115610979575f91611ddd575b50155f808080611d5b565b611df6915060203d60201161097257610964818361067e565b5f611dd2565b5f549094506001600160a01b0316602084865192611e2f604051948593849363530e1d4360e01b85528960048601611cec565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa908115610979575f91611e73575b501593611d54565b611e8c915060203d60201161097257610964818361067e565b5f611e6b565b611ea6929550602080918301019101611c81565b925f80611d48565b919360a09361076b969565ffffffffffff938552600180871b03166020850152604084015216606082015281608082015201906104a4565b8115611ef0570490565b634e487b7160e01b5f52601260045260245ffd5b5f546040516308834cb560e21b8082526001600160a01b0385811660048401529283166024830152929392602092909183816044817f000000000000000000000000000000000000000000000000000000000000000086165afa908115610979575f91612011575b5015918215611f8d575b50509050611f875761076b91612cc5565b50505f90565b6040519081526001600160a01b0385166004820152606086901c602482015291508290829060449082907f0000000000000000000000000000000000000000000000000000000000000000165afa918215610979575f92611ff4575b505015805f80611f76565b61200a9250803d1061097257610964818361067e565b5f80611fe9565b6120289150843d861161097257610964818361067e565b5f611f6c565b335f9081527f72a65082a5691803ab2b62c9bc729b34205ba1b183d950896526b2fd8714d0c7602052604090207e8b9b1e5fa9cf3b14f87f435649268146305ddf689f082e5961a335b07a9abf9060ff905b541615610b8a5750565b335f9081527f8f2dae99798887da307a4daa2c2d11f840b0cb9a6a67822660c531e9ad14dd00602052604090207f1312a1cf530e56add9be4fd84db9051dcc7635952f09f735f9a29405b55846259060ff90612080565b5f8181525f8051602061364d83398151915260209081526040808320338452909152902060ff90612080565b634e487b7160e01b5f52603260045260245ffd5b8054821015612136575f5260205f2001905f90565b61210d565b90815491600160401b831015610643578261215e9160016106ac95018155612121565b90919082549060031b91821b915f19901b1916179055565b90929192600182019081548015612208575b508461219384612dac565b509490928454936121a3836128d7565b96816121f3575b50156121d0575050505f198101908111611bb15761215e85916121cc93612121565b9190565b6121cc9492936121ec926001600160d01b03909116919061349c565b505061213b565b65ffffffffffff83811691161490505f6121aa565b600160401b811015610643578060016122249201845583612121565b8154905f199060031b1b191690555f612188565b5f9190829160405161226d816110f66020820194639f86fd8560e01b86523060248401526040604484015260648301906104a4565b51915afa5061227a611b60565b8051810160408282031261035a57612294602083016116f7565b916040810151916001600160401b03831161035a576122ba926020809201920101611807565b90156122c35790565b805190811561035a57602001fd5b906040516122de81610628565b915465ffffffffffff8116835260301c6020830152565b91908254905f82916005841161239d575b612311935085612f2e565b9081156123915761238a61238161237b61237161234361233e61233388611ba3565b895f5260205f200190565b6122d1565b96600161236a602061235b8b5165ffffffffffff1690565b9a01516001600160d01b031690565b9101612121565b90549060031b1c90565b93611ba3565b63ffffffff1690565b6001939291565b5f925082915081908190565b91926123a881612dfb565b8103908111611bb15761231193865f526123dc6123d18360205f200165ffffffffffff90541690565b65ffffffffffff1690565b65ffffffffffff851610156123f2575091612306565b9291506123fe90611bc3565b90612306565b9081602091031261035a5761076b90611704565b90600163ffffffff80931601918211611bb157565b918051156124fb578060208061244893518301019101612404565b916124538382613055565b92612464845165ffffffffffff1690565b9065ffffffffffff80851692168281146124ef578211918261249a575b50506124915761076b9250612f85565b50506020015190565b9091506124a78354611ba3565b63ffffffff8316149182156124c0575b50505f80612481565b6124e79192506124db6124d56123d192612418565b85613055565b5165ffffffffffff1690565b115f806124b7565b50505050506020015190565b5061076b91612f85565b5f8051602061366d83398151915260028154146125225760029055565b604051633ee5aeb560e01b8152600490fd5b90815f52600360205260405f208161254b82612dac565b9193905083156125a95761256b916001600160d01b031690600101612121565b90549060031b1c5b8261259f575b5050612583575050565b61259b915f52600360205260405f206103ef42612d7a565b5050565b119050815f612579565b50505f612573565b6001600160a01b0381165f9081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d60205260409020545f8051602061364d8339815191529060ff16611f87575f808052602091825260408082206001600160a01b038516835290925220805460ff1916600117905533906001600160a01b03165f7f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d8180a4600190565b6001600160a01b0381165f9081527f9ebbcbe0d2961d3fbe56ca6f679bc753bd848d3e6bb3eaf9041c51b286881d2c602052604090207fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c905f8051602061364d8339815191529060ff905b541661272b575f828152602091825260408082206001600160a01b038616835290925220805460ff1916600117905533916001600160a01b0316907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d5f80a4600190565b5050505f90565b6001600160a01b0381165f9081527f72a65082a5691803ab2b62c9bc729b34205ba1b183d950896526b2fd8714d0c7602052604090207e8b9b1e5fa9cf3b14f87f435649268146305ddf689f082e5961a335b07a9abf905f8051602061364d8339815191529060ff906126c7565b6001600160a01b0381165f9081527f8f2dae99798887da307a4daa2c2d11f840b0cb9a6a67822660c531e9ad14dd00602052604090207f1312a1cf530e56add9be4fd84db9051dcc7635952f09f735f9a29405b5584625905f8051602061364d8339815191529060ff906126c7565b5f8181525f8051602061364d833981519152602081815260408084206001600160a01b038716855290915290912060ff906126c7565b5f8181525f8051602061364d833981519152602081815260408084206001600160a01b03871685529091529091205460ff161561272b575f828152602091825260408082206001600160a01b038616835290925220805460ff1916905533916001600160a01b0316907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b5f80a4600190565b8054806128fc57505f5b6001600160d01b03811615611f875760016123719201612121565b5f19908082810111611bb157825f5260205f2001015460301c6128e1565b91909160408184031261035a5780356129328161042a565b9260208201356001600160401b03811161035a5761076b92016106d6565b61295c9181019061291a565b6040516302910f8b60e31b81526001600160a01b039283166004820181905291906020816024817f000000000000000000000000000000000000000000000000000000000000000088165afa908115610979575f91612a6f575b5015612a5d576129f16040916129ec612a37946129d16130bd565b60018060a01b03166001600160601b0360a01b5f5416175f55565b61323d565b6020810151600180546001600160a01b0319166001600160a01b0390921691909117905580516001600160a01b0316848116612a4d575b5001516001600160a01b031690565b908116612a415750565b612a4a9061265c565b50565b612a56906125b1565b505f612a28565b6040516362df054560e01b8152600490fd5b612a88915060203d60201161097257610964818361067e565b5f6129b6565b6040519060a082018281106001600160401b038211176106435760405281608060609182815282602082015282604082015282808201520152565b9060208282031261035a5781516001600160401b039283821161035a57019060a08282031261035a57612afa61069f565b92825181811161035a5782612b10918501611807565b8452602083015181811161035a5782612b2a918501611807565b6020850152604083015181811161035a5782612b47918501611807565b6040850152606083015181811161035a5782612b64918501611807565b6060850152608083015190811161035a57612b7f9201611807565b608082015290565b9081602091031261035a575190565b60409065ffffffffffff61076b949316815281602082015201906104a4565b91939293612bc1612a8e565b94805180612ca9575b5050612bdb60608601518285611b4a565b9182612bed57505050509051905f9190565b612c01612c3b9183608089015191876117bc565b916020612c1a6114586114585f5460018060a01b031690565b8189015190604051808096819463810da75d60e01b83528760048401612b96565b03915afa801561097957612c7195612c6b935f92612c76575b50612c65919260408a015191611b34565b9061339d565b906133af565b915190565b612c659250612c9c9060203d602011612ca2575b612c94818361067e565b810190612b87565b91612c54565b503d612c8a565b612cbd929650602080918301019101612ac9565b935f80612bca565b90612cdb610c18835f52600460205260405f2090565b9081612ce8575050505f90565b610c18612d019161120b855f52600560205260405f2090565b5f5460405163bd49c35f60e01b815290602090829060049082906001600160a01b03165afa80156109795761076b94612c6b925f92612d51575b50610c18612c65915f52600360205260405f2090565b612c65919250612d72610c189160203d602011612ca257612c94818361067e565b929150612d3b565b65ffffffffffff90818111612d8d571690565b604490604051906306dfcc6560e41b8252603060048301526024820152fd5b805480612dbd5750505f905f905f90565b5f19908082810111611bb157612dda925f5260205f2001016122d1565b9065ffffffffffff82511691602060018060d01b0391015116906001929190565b8015611d665780612c65612ec6612ebc612eb2612ea8612e9e612e94612e8a600161076b9a5f908b60801c80612f22575b508060401c80612f15575b508060201c80612f08575b508060101c80612efb575b508060081c80612eee575b508060041c80612ee1575b508060021c80612ed4575b50821c612ecd575b811c1b612e83818b611ee6565b0160011c90565b612e83818a611ee6565b612e838189611ee6565b612e838188611ee6565b612e838187611ee6565b612e838186611ee6565b612e838185611ee6565b8092611ee6565b8101612e76565b600291509101905f612e6e565b600491509101905f612e63565b600891509101905f612e58565b601091509101905f612e4d565b602091509101905f612e42565b604091509101905f612e37565b9150506080905f612e2c565b905b838310612f3d5750505090565b909192612f4a81856135b2565b90835f5265ffffffffffff808360205f20015416908416105f14612f725750925b9190612f30565b93506001810180911115612f6b57611b8f565b908154905f829160058411612fef575b612fa09350846135f5565b80612fc857505f905b6001600160d01b03821615611f875761076b9160016123719201612121565b612fe2612fd7612fe992611ba3565b835f5260205f200190565b5460301c90565b90612fa9565b9192612ffa81612dfb565b8103908111611bb157612fa093855f5265ffffffffffff808360205f20015416908516105f1461302b575091612f95565b92915061303790611bc3565b90612f95565b6040519061304a82610628565b5f6020838281520152565b9061307e61307861309f9261306861303d565b5061307161303d565b5084612121565b506122d1565b91600165ffffffffffff845116936020828060d01b03910151169101612121565b905490604051926130af84610628565b835260031b1c602082015290565b6130c56135c7565b6130cd6135c7565b60015f8051602061366d83398151915255565b604051906130ed82610648565b5f6040838281528260208201520152565b81601f8201121561035a578051916020916001600160401b038411610643578360051b90604051946131328584018761067e565b8552838086019282010192831161035a578301905b828210613155575050505090565b83809183516131638161042a565b815201910190613147565b9060208282031261035a5781516001600160401b039283821161035a5701908181039260a0841261035a576060604051946131a886610648565b1261035a576040516131b981610648565b83516131c48161042a565b815260208401516131d48161042a565b602082015260408401516131e78161042a565b60408201528452606083015181811161035a57826132069185016130fe565b6020850152608083015190811161035a5761322192016130fe565b604082015290565b80518210156121365760209160051b010190565b613259906132496130e0565b506020808251830101910161316e565b8051519091906001600160a01b03161580613383575b613371579060208101905f5b825180518210156132f557611458613296836132a393613229565b516001600160a01b031690565b156132e3576132c56132c16132bc613296848751613229565b612732565b1590565b6132d15760010161327b565b604051635140fefd60e11b8152600490fd5b6040516323cda06760e01b8152600490fd5b506040925050818101905f5b82518051821015613368576114586132968361331c93613229565b156133575761333a6132c1613335613296848751613229565b6127a0565b61334657600101613301565b8351635140fefd60e11b8152600490fd5b83516323cda06760e01b8152600490fd5b50509150505190565b6040516303501f5960e11b8152600490fd5b50602082015151158061326f57506040820151511561326f565b90808210156133aa575090565b905090565b9091828202915f1984820993838086109503948086039514613434578483111561342257829109815f038216809204600280826003021880830282030280830282030280830282030280830282030280830282030280920290030293600183805f03040190848311900302920304170290565b60405163227bc15360e01b8152600490fd5b50509061076b9250611ee6565b8054600160401b8110156106435761345e91600182018155612121565b61348957815160209092015160301b65ffffffffffff191665ffffffffffff92909216919091179055565b634e487b7160e01b5f525f60045260245ffd5b805492939291908215613589576134b861233e612fd785611ba3565b906134c9825165ffffffffffff1690565b65ffffffffffff84811691168110613577576121cc9460209488926134f76123d1875165ffffffffffff1690565b0361353f57506135319261350d61351892611ba3565b905f5260205f200190565b9065ffffffffffff82549181199060301b169116179055565b01516001600160d01b031690565b9150506135729161355f6135516106ae565b65ffffffffffff9093168352565b6001600160d01b03881682860152613441565b613531565b604051632520601d60e01b8152600490fd5b6135ad92506135996135516106ae565b6001600160d01b0385166020830152613441565b5f9190565b90808216911860011c8101809111611bb15790565b60ff5f8051602061368d8339815191525460401c16156135e357565b604051631afcd79f60e31b8152600490fd5b905b8383106136045750505090565b90919261361181856135b2565b90835f5265ffffffffffff808360205f20015416908416105f146136395750925b91906135f7565b9350600181018091111561363257611b8f56fe02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268009b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a264697066735822122029f0973058268d4c15bb68cd12766d98013081e51e50292e237f8f15461e8b6864736f6c634300081900336101c0346101c857601f6135d938819003918201601f19168301916001600160401b0391828411858510176101cc5781606092869260409687528339810103126101c85761004c836101e0565b926100648361005d602084016101e0565b92016101e0565b91306080527ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a009081549060ff82871c166101b7578080831603610173575b5050505f60a0525f60c0525f60e052610100935f8552610120935f8552610140905f82526101609283526101809384526101a094855251946133e496876101f58839608051878181610696015261148c015260a0518761092d015260c0518761114b015260e0518781816107a101526111840152518681816104e2015261266601525185818161064c01528181611be00152611d0f01525184818161071f01528181611b470152611d8d015251838181610ebc015261179a015251828181610c8f015261183b0152518161104f0152f35b6001600160401b0319909116811790915583519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a15f80806100a2565b855163f92ee8a960e01b8152600490fd5b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b51906001600160a01b03821682036101c85756fe60806040526004361015610011575f80fd5b5f3560e01c806301ffc9a7146102c4578063020cf0c2146102bf57806302145348146102ba578063103f2907146102b557806310a28b5d146102b057806311422095146102ab578063128e5d82146102a6578063197aa7ea146102a15780631a80e5001461029c57806323f752d514610297578063248a9ca31461029257806325dc97081461028d5780632dd31000146102885780632f2ff15d1461028357806336568abe1461027e5780633dfd3873146102795780633eb22c0f14610274578063439fab911461026f57806345e78fcb1461026a578063518504ba14610265578063557cab44146102605780635d32a1c91461025b5780636679191e1461025657806379d89614146102515780637d24bb271461024c5780637f5a7c7b1461024757806391d148541461024257806394d2558a1461023d5780639b656b22146102385780639f86fd8514610233578063a217fddf1461022e578063bb24fe8a14610229578063c0cd7c3e14610224578063d15b740e1461021f578063d547741f1461021a578063da749d2b14610215578063e02f693714610210578063e49561ee1461020b578063f7b0554714610206578063fbfa77cf14610201578063fd4d447c146101fc578063ff54740f146101f75763ffa1ad74146101f2575f80fd5b611557565b61153a565b611510565b6114e9565b611465565b61127a565b61125e565b611229565b6111dd565b6111b3565b61116f565b61112c565b611112565b61107e565b61103a565b610ffc565b610f4c565b610f24565b610eeb565b610ea7565b610e6d565b610e1c565b610cf8565b610cbe565b610c7a565b610b42565b610aec565b6109f3565b6109a8565b61095c565b610918565b6108fb565b6108c2565b61074e565b61070a565b61067b565b610637565b6105e8565b6105b3565b6104cd565b610410565b61032f565b3461031a57602036600319011261031a5760043563ffffffff60e01b811680910361031a57602090637965db0b60e01b8114908115610309575b506040519015158152f35b6301ffc9a760e01b1490505f6102fe565b5f80fd5b6001600160a01b0381160361031a57565b3461031a57606036600319011261031a5760243560043561034f8261031e565b6044359161035b611e02565b815f526004602052826103896103848360405f209060018060a01b03165f5260205260405f2090565b6120b3565b146103fe5760207ffc9545f07ffadfb668efd0144cdcaf2d6e2c8192dce1ea9fc131934f9c90fc7e91835f52600482526103e9856103da8360405f209060018060a01b03165f5260205260405f2090565b6103e342612b0e565b90611f58565b50506040519485526001600160a01b031693a3005b60405163a741a04560e01b8152600490fd5b3461031a5760408060031936011261031a576004359060243590610432611e5f565b825f526002602052805f205482116104bd57825f52600360205281610458825f206120b3565b146104ad57816104a8916104987e899d104fc3d8820bd96540612bcc5c448c8837b13b9f7faa43ad0728f0c14f946103da875f52600360205260405f2090565b5050519081529081906020820190565b0390a2005b5163a741a04560e01b8152600490fd5b51631eefc06360e31b8152600490fd5b3461031a575f36600319011261031a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b6024359065ffffffffffff8216820361031a57565b6044359065ffffffffffff8216820361031a57565b6064359065ffffffffffff8216820361031a57565b608090600319011261031a576004356105688161031e565b90602435906044356105798161031e565b9060643565ffffffffffff8116810361031a5790565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b3461031a576105e46105d06105c736610550565b929190916115b1565b60405191829160208352602083019061058f565b0390f35b3461031a57604036600319011261031a57602061062f61038460243561060d8161031e565b6004355f526004845260405f209060018060a01b03165f5260205260405f2090565b604051908152f35b3461031a575f36600319011261031a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461031a57604036600319011261031a57610694610511565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633036106f8576106db906004355f52600360205260405f20612124565b60408051941515855263ffffffff91909116602085015292915050f35b604051637ca475e560e11b8152600490fd5b3461031a575f36600319011261031a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461031a57604036600319011261031a576004356001600160601b038116810361031a576024359061077e612229565b6040516302910f8b60e31b81523360048201526020816024816001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165afa9081156108bd575f9161088e575b501561087c576001600160601b03166bffffffffffffffffffffffff193360601b16179080610808835f52600260205260405f2090565b54146103fe57610861817fc67e7929681aa1bccd63f52b3799bf5805f3009f197db6fdf584b14f7fbf608c92610846855f52600260205260405f2090565b556108518185612258565b6040519081529081906020820190565b0390a261087a60015f8051602061336f83398151915255565b005b6040516323d53b9760e21b8152600490fd5b6108b0915060203d6020116108b6575b6108a88183610d7e565b810190611649565b5f6107d1565b503d61089e565b61165d565b3461031a57602036600319011261031a576004355f525f8051602061334f8339815191526020526020600160405f200154604051908152f35b3461031a576105e46105d061090f36610550565b9291909161174e565b3461031a575f36600319011261031a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461031a57604036600319011261031a5761087a60243560043561097f8261031e565b805f525f8051602061334f8339815191526020526109a3600160405f200154611eb5565b612533565b3461031a57604036600319011261031a576024356109c58161031e565b336001600160a01b038216036109e15761087a90600435612569565b60405163334bd91960e11b8152600490fd5b3461031a57602036600319011261031a57600435610a108161031e565b610a18612229565b335f9081527f9ebbcbe0d2961d3fbe56ca6f679bc753bd848d3e6bb3eaf9041c51b286881d2c60205260409020547fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c9060ff1615610ace57506001546001600160a01b0391821691811682146103fe576001600160a01b03191681176001557f5bbb1d3ebb6a3ad2a0f17ff35e579a83af60604d1d3c2a4c83c62adecadf666d5f80a260015f8051602061336f83398151915255005b6044906040519063e2517d3f60e01b82523360048301526024820152fd5b3461031a57602036600319011261031a576004355f526003602052602061062f60405f206120b3565b9181601f8401121561031a578235916001600160401b03831161031a576020838186019501011161031a57565b3461031a57602036600319011261031a576001600160401b0360043581811161031a57610b73903690600401610b15565b5f8051602061338f833981519152549260ff8460401c1615931680159081610c72575b6001149081610c68575b159081610c5f575b50610c4d575f8051602061338f833981519152805467ffffffffffffffff19166001179055610bdb9183610c2957612631565b610be157005b5f8051602061338f833981519152805460ff60401b19169055604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a1005b5f8051602061338f833981519152805460ff60401b1916600160401b179055612631565b60405163f92ee8a960e01b8152600490fd5b9050155f610ba8565b303b159150610ba0565b849150610b96565b3461031a575f36600319011261031a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461031a575f36600319011261031a5760206040517f15e7c882d74e8821ebf34aaff46fd0e1d53b9393d91490019124113d28dc32a38152f35b3461031a575f36600319011261031a576020604051614e208152f35b634e487b7160e01b5f52604160045260245ffd5b604081019081106001600160401b03821117610d4357604052565b610d14565b606081019081106001600160401b03821117610d4357604052565b608081019081106001600160401b03821117610d4357604052565b90601f801991011681019081106001600160401b03821117610d4357604052565b60405190610dac82610d63565b565b60405190610dac82610d28565b6001600160401b038111610d4357601f01601f191660200190565b81601f8201121561031a57803590610ded82610dbb565b92610dfb6040519485610d7e565b8284526020838301011161031a57815f926020809301838601378301015290565b3461031a57606036600319011261031a57610e35610511565b6044356001600160401b03811161031a57602091610e5a61062f923690600401610dd6565b906004355f526003845260405f20612798565b3461031a575f36600319011261031a5760206040517fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c8152f35b3461031a575f36600319011261031a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461031a575f36600319011261031a5760206040517e8b9b1e5fa9cf3b14f87f435649268146305ddf689f082e5961a335b07a9abf8152f35b3461031a575f36600319011261031a576001546040516001600160a01b039091168152602090f35b3461031a57604036600319011261031a57602060ff610f9e602435610f708161031e565b6004355f525f8051602061334f833981519152845260405f209060018060a01b03165f5260205260405f2090565b54166040519015158152f35b90608060031983011261031a5760043591602435610fc78161031e565b9160443565ffffffffffff8116810361031a5791606435906001600160401b03821161031a57610ff991600401610dd6565b90565b3461031a57602061062f61103561101236610faa565b939190925f526004865260405f209060018060a01b03165f5260205260405f2090565b612798565b3461031a575f36600319011261031a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461031a57604036600319011261031a5760043561109b8161031e565b6024356001600160401b03811161031a575f916110bd83923690600401610b15565b90816040519283928337810184815203915af461110a6110db6119a3565b916110fc60405193849215156020840152604080840152606083019061058f565b03601f198101835282610d7e565b805190602001fd5b3461031a575f36600319011261031a5760206040515f8152f35b3461031a575f36600319011261031a5760206040516001600160401b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461031a575f36600319011261031a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461031a57602036600319011261031a576004355f526002602052602060405f2054604051908152f35b3461031a57604036600319011261031a5761087a6024356004356112008261031e565b805f525f8051602061334f833981519152602052611224600160405f200154611eb5565b612569565b3461031a57606036600319011261031a576105e46105d060043561124c8161031e565b611254610526565b90602435906119d2565b3461031a57602061062f61127136610faa565b92919091611ad1565b3461031a5760a036600319011261031a5760243560043561129a8261031e565b604435916112a661053b565b90608435906001600160401b03821161031a576112c860049236908401610dd6565b6112d0612229565b5f546020906112f5906112e9906001600160a01b031681565b6001600160a01b031690565b60405163b134427160e01b815294859182905afa9283156108bd575f93611434575b506001600160a01b039283163303611422576001546001600160a01b0316838116611397575b50506040805195865265ffffffffffff909316602086015216927f741a5de99085c0d660f3e4192217b0ffb0ea4e35a0480de48e857a4bc3ee36ed91819081015b0390a361087a60015f8051602061336f83398151915255565b9093604051946113ce866113c0602082019363724ab0f760e11b8552858c898d60248701611c5b565b03601f198101885287610d7e565b62042e305a10611410575f61137e938192827f741a5de99085c0d660f3e4192217b0ffb0ea4e35a0480de48e857a4bc3ee36ed9951926203d090f1509361133d565b604051638072475160e01b8152600490fd5b60405163dabc4ad960e01b8152600490fd5b61145791935060203d60201161145e575b61144f8183610d7e565b8101906116d3565b915f611317565b503d611445565b3461031a57606036600319011261031a576024356114828161031e565b61148a610526565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633036106f8576114e46106db926004355f52600460205260405f209060018060a01b03165f5260205260405f2090565b612124565b3461031a575f36600319011261031a575f546040516001600160a01b039091168152602090f35b3461031a57604036600319011261031a57602061062f6024356115328161031e565b600435611cd8565b3461031a575f36600319011261031a5760206040516203d0908152f35b3461031a575f36600319011261031a57602060405160018152f35b5190811515820361031a57565b519063ffffffff8216820361031a57565b919082604091031261031a57610ff960206115aa84611572565b930161157f565b91939265ffffffffffff906060956040519363f7b0554760e01b6020860152602485015260018060a01b031660448401521660648201526064815260a08101908082106001600160401b03831117610d4357611622926116139260405261201a565b60208082518301019101611590565b9061162a5750565b90915063ffffffff6040519116602082015260208152610ff981610d28565b9081602091031261031a57610ff990611572565b6040513d5f823e3d90fd5b81601f8201121561031a5780519061167f82610dbb565b9261168d6040519485610d7e565b8284526020838301011161031a57815f9260208093018386015e8301015290565b9060208282031261031a5781516001600160401b03811161031a57610ff99201611668565b9081602091031261031a5751610ff98161031e565b90610ff9916020815261170782516080602084015260a083019061058f565b906080606061173e61172b602087015195601f19968787830301604088015261058f565b604087015186868303018487015261058f565b940151928285030191015261058f565b604051630df8851f60e11b81526001600160a01b03828116600483015260248201849052848116604483015265ffffffffffff8616606483015295606095909491939091905f856084817f00000000000000000000000000000000000000000000000000000000000000008c165afa9485156108bd575f95611945575b5060405163fbfa77cf60e01b8152602081600481888d165afa9081156108bd57611837995f9286928491611926575b5060405163192c0ff760e21b81526001600160a01b03909116600482015265ffffffffffff909216602483015290998a9190829081906044820190565b03917f0000000000000000000000000000000000000000000000000000000000000000165afa9788156108bd575f986118fa575b50908161187d846118839594876119d2565b946115b1565b908251158015906118f0575b80156118e6575b80156118dc575b6118a957505050909150565b6110fc9450610ff993956118bb610d9f565b938452602084015260408301526060820152604051928391602083016116e8565b508151151561189d565b5080511515611896565b508551151561188f565b611883939291985061191d903d805f833e6119158183610d7e565b8101906116ae565b9790919261186b565b61193f915060203d60201161145e5761144f8183610d7e565b5f6117fa565b61195a9195503d805f833e6119158183610d7e565b935f6117cb565b90610ff992915f52600360205260405f20612798565b5f9081526004602090815260408083206001600160a01b03909416835292905220610ff9929190612798565b3d156119cd573d906119b482610dbb565b916119c26040519384610d7e565b82523d5f602084013e565b606090565b611622916116139194939465ffffffffffff60609660405193630cbd53f560e11b6020860152602485015216604483015260448252611a1082610d63565b61201a565b60405190611a2282610d28565b60606020838281520152565b9060208282031261031a5781516001600160401b039283821161031a57019060408282031261031a5760405192611a6484610d28565b825181811161031a5782611a79918501611668565b8452602083015190811161031a57611a919201611668565b602082015290565b6001600160a01b0391821681529116602082015265ffffffffffff9091166040820152608060608201819052610ff99291019061058f565b92611ae190929192828486612973565b929093611aec611a15565b93805180611c3f575b50508415938415611ba9575b8415611b18575b50505050611b135790565b505f90565b602080949550611b43910151604051958694859463530e1d4360e01b865260601c9060048601611a99565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa9081156108bd575f91611b8a575b50155f808080611b08565b611ba3915060203d6020116108b6576108a88183610d7e565b5f611b7f565b5f549094506001600160a01b0316602084865192611bdc604051948593849363530e1d4360e01b85528960048601611a99565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa9081156108bd575f91611c20575b501593611b01565b611c39915060203d6020116108b6576108a88183610d7e565b5f611c18565b611c53929550602080918301019101611a2e565b925f80611af5565b919360a093610ff9969565ffffffffffff938552600180871b031660208501526040840152166060820152816080820152019061058f565b634e487b7160e01b5f52601160045260245ffd5b8115611cb1570490565b634e487b7160e01b5f52601260045260245ffd5b9060018201809211611cd357565b611c93565b5f546040516308834cb560e21b8082526001600160a01b0385811660048401529283166024830152929392602092909183816044817f000000000000000000000000000000000000000000000000000000000000000086165afa9081156108bd575f91611de5575b5015918215611d61575b50509050611d5b57610ff991612a68565b50505f90565b6040519081526001600160a01b0385166004820152606086901c602482015291508290829060449082907f0000000000000000000000000000000000000000000000000000000000000000165afa9182156108bd575f92611dc8575b505015805f80611d4a565b611dde9250803d106108b6576108a88183610d7e565b5f80611dbd565b611dfc9150843d86116108b6576108a88183610d7e565b5f611d40565b335f9081527f24e48de785eeca8420b70f73d267a66970ccc187d459f2a4b53e74ed92a5ab86602052604090207f15e7c882d74e8821ebf34aaff46fd0e1d53b9393d91490019124113d28dc32a39060ff905b541615610ace5750565b335f9081527f72a65082a5691803ab2b62c9bc729b34205ba1b183d950896526b2fd8714d0c7602052604090207e8b9b1e5fa9cf3b14f87f435649268146305ddf689f082e5961a335b07a9abf9060ff90611e55565b5f8181525f8051602061334f83398151915260209081526040808320338452909152902060ff90611e55565b634e487b7160e01b5f52603260045260245ffd5b8054821015611f0a575f5260205f2001905f90565b611ee1565b90815491600160401b831015610d435782611f32916001610dac95018155611ef5565b90919082549060031b91821b915f19901b1916179055565b5f19810191908211611cd357565b90929192600182019081548015611fea575b5084611f7584612b40565b50949092845493611f85836120b3565b9681611fd5575b5015611fb2575050505f198101908111611cd357611f328591611fae93611ef5565b9190565b611fae949293611fce926001600160d01b03909116919061319e565b5050611f0f565b65ffffffffffff83811691161490505f611f8c565b600160401b811015610d43578060016120069201845583611ef5565b8154905f199060031b1b191690555f611f6a565b5f9190829160405161204f816110fc6020820194639f86fd8560e01b865230602484015260406044840152606483019061058f565b51915afa5061205c6119a3565b8051810160408282031261031a5761207660208301611572565b916040810151916001600160401b03831161031a5761209c926020809201920101611668565b90156120a55790565b805190811561031a57602001fd5b8054806120e257505f5b6001600160d01b03811615611d5b5760016120d89201611ef5565b90549060031b1c90565b5f19908082810111611cd357825f5260205f2001015460301c6120bd565b9060405161210d81610d28565b915465ffffffffffff8116835260301c6020830152565b91908254905f8291600584116121c2575b612140935085612cc2565b9081156121b6576121af6121a66121a06120d861217261216d61216288611f4a565b895f5260205f200190565b612100565b966001612199602061218a8b5165ffffffffffff1690565b9a01516001600160d01b031690565b9101611ef5565b93611f4a565b63ffffffff1690565b6001939291565b5f925082915081908190565b91926121cd81612b8f565b8103908111611cd35761214093865f526122016121f68360205f200165ffffffffffff90541690565b65ffffffffffff1690565b65ffffffffffff85161015612217575091612135565b92915061222390611cc5565b90612135565b5f8051602061336f83398151915260028154146122465760029055565b604051633ee5aeb560e01b8152600490fd5b90815f52600360205260405f208161226f82612b40565b9193905083156122cd5761228f916001600160d01b031690600101611ef5565b90549060031b1c5b826122c3575b50506122a7575050565b6122bf915f52600360205260405f206103e342612b0e565b5050565b119050815f61229d565b50505f612297565b6001600160a01b0381165f9081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d60205260409020545f8051602061334f8339815191529060ff16611d5b575f808052602091825260408082206001600160a01b038516835290925220805460ff1916600117905533906001600160a01b03165f7f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d8180a4600190565b6001600160a01b0381165f9081527f9ebbcbe0d2961d3fbe56ca6f679bc753bd848d3e6bb3eaf9041c51b286881d2c602052604090207fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c905f8051602061334f8339815191529060ff905b541661244f575f828152602091825260408082206001600160a01b038616835290925220805460ff1916600117905533916001600160a01b0316907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d5f80a4600190565b5050505f90565b6001600160a01b0381165f9081527f72a65082a5691803ab2b62c9bc729b34205ba1b183d950896526b2fd8714d0c7602052604090207e8b9b1e5fa9cf3b14f87f435649268146305ddf689f082e5961a335b07a9abf905f8051602061334f8339815191529060ff906123eb565b6001600160a01b0381165f9081527f24e48de785eeca8420b70f73d267a66970ccc187d459f2a4b53e74ed92a5ab86602052604090207f15e7c882d74e8821ebf34aaff46fd0e1d53b9393d91490019124113d28dc32a3905f8051602061334f8339815191529060ff906123eb565b5f8181525f8051602061334f833981519152602081815260408084206001600160a01b038716855290915290912060ff906123eb565b5f8181525f8051602061334f833981519152602081815260408084206001600160a01b03871685529091529091205460ff161561244f575f828152602091825260408082206001600160a01b038616835290925220805460ff1916905533916001600160a01b0316907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b5f80a4600190565b91909160408184031261031a5780356126138161031e565b9260208201356001600160401b03811161031a57610ff99201610dd6565b61263d918101906125fb565b6040516302910f8b60e31b81526001600160a01b039283166004820181905291906020816024817f000000000000000000000000000000000000000000000000000000000000000088165afa9081156108bd575f91612750575b501561273e576126d26040916126cd612718946126b2612d19565b60018060a01b03166001600160601b0360a01b5f5416175f55565b612e99565b6020810151600180546001600160a01b0319166001600160a01b0390921691909117905580516001600160a01b031684811661272e575b5001516001600160a01b031690565b9081166127225750565b61272b90612380565b50565b612737906122d5565b505f612709565b6040516362df054560e01b8152600490fd5b612769915060203d6020116108b6576108a88183610d7e565b5f612697565b9081602091031261031a57610ff99061157f565b90600163ffffffff80931601918211611cd357565b9180511561286657806020806127b39351830101910161276f565b916127be83826130c9565b926127cf845165ffffffffffff1690565b9065ffffffffffff808516921682811461285a5782119182612805575b50506127fc57610ff99250612ff9565b50506020015190565b9091506128128354611f4a565b63ffffffff83161491821561282b575b50505f806127ec565b6128529192506128466128406121f692612783565b856130c9565b5165ffffffffffff1690565b115f80612822565b50505050506020015190565b50610ff991612ff9565b60405190608082018281106001600160401b03821117610d4357604052606080838181528160208201528160408201520152565b9060208282031261031a5781516001600160401b039283821161031a57019060808282031261031a576128d5610d9f565b92825181811161031a57826128eb918501611668565b8452602083015181811161031a5782612905918501611668565b6020850152604083015181811161031a5782612922918501611668565b6040850152606083015190811161031a5761293d9201611668565b606082015290565b9081602091031261031a575190565b60409065ffffffffffff610ff99493168152816020820152019061058f565b9391909361297f612870565b93805180612a48575b50506129c992939460206129a86112e96112e95f5460018060a01b031690565b8188015190604051808098819463810da75d60e01b83528960048401612954565b03915afa9182156108bd57612a0a945f93612a0f575b50612a0490612a0493946129f860408a01518284611961565b9360608a015192611977565b90613131565b915190565b612a04935090612a39612a049260203d602011612a41575b612a318183610d7e565b810190612945565b9350906129df565b503d612a27565b6129c994955090602080612a609383010191016128a4565b93925f612988565b5f5460405163bd49c35f60e01b8152929190602090849060049082906001600160a01b03165afa9081156108bd57610ff9935f92612ae3575b50612a04610384612a049394612ac2610384855f52600360205260405f2090565b935f52600460205260405f209060018060a01b03165f5260205260405f2090565b612a049250610384612b06612a049260203d602011612a4157612a318183610d7e565b935050612aa1565b65ffffffffffff90818111612b21571690565b604490604051906306dfcc6560e41b8252603060048301526024820152fd5b805480612b515750505f905f905f90565b5f19908082810111611cd357612b6e925f5260205f200101612100565b9065ffffffffffff82511691602060018060d01b0391015116906001929190565b8015611b135780612a04612c5a612c50612c46612c3c612c32612c28612c1e6001610ff99a5f908b60801c80612cb6575b508060401c80612ca9575b508060201c80612c9c575b508060101c80612c8f575b508060081c80612c82575b508060041c80612c75575b508060021c80612c68575b50821c612c61575b811c1b612c17818b611ca7565b0160011c90565b612c17818a611ca7565b612c178189611ca7565b612c178188611ca7565b612c178187611ca7565b612c178186611ca7565b612c178185611ca7565b8092611ca7565b8101612c0a565b600291509101905f612c02565b600491509101905f612bf7565b600891509101905f612bec565b601091509101905f612be1565b602091509101905f612bd6565b604091509101905f612bcb565b9150506080905f612bc0565b905b838310612cd15750505090565b909192612cde81856132b4565b90835f5265ffffffffffff808360205f20015416908416105f14612d065750925b9190612cc4565b93506001810180911115612cff57611c93565b612d216132c9565b612d296132c9565b60015f8051602061336f83398151915255565b60405190612d4982610d48565b5f6040838281528260208201520152565b81601f8201121561031a578051916020916001600160401b038411610d43578360051b9060405194612d8e85840187610d7e565b8552838086019282010192831161031a578301905b828210612db1575050505090565b8380918351612dbf8161031e565b815201910190612da3565b9060208282031261031a5781516001600160401b039283821161031a5701908181039260a0841261031a57606060405194612e0486610d48565b1261031a57604051612e1581610d48565b8351612e208161031e565b81526020840151612e308161031e565b60208201526040840151612e438161031e565b60408201528452606083015181811161031a5782612e62918501612d5a565b6020850152608083015190811161031a57612e7d9201612d5a565b604082015290565b8051821015611f0a5760209160051b010190565b612eb590612ea5612d3c565b5060208082518301019101612dca565b8051519091906001600160a01b03161580612fdf575b612fcd579060208101905f5b82518051821015612f51576112e9612ef283612eff93612e85565b516001600160a01b031690565b15612f3f57612f21612f1d612f18612ef2848751612e85565b612456565b1590565b612f2d57600101612ed7565b604051635140fefd60e11b8152600490fd5b6040516323cda06760e01b8152600490fd5b506040925050818101905f5b82518051821015612fc4576112e9612ef283612f7893612e85565b15612fb357612f96612f1d612f91612ef2848751612e85565b6124c4565b612fa257600101612f5d565b8351635140fefd60e11b8152600490fd5b83516323cda06760e01b8152600490fd5b50509150505190565b6040516303501f5960e11b8152600490fd5b506020820151511580612ecb575060408201515115612ecb565b908154905f829160058411613063575b6130149350846132f7565b8061303c57505f905b6001600160d01b03821615611d5b57610ff99160016120d89201611ef5565b61305661304b61305d92611f4a565b835f5260205f200190565b5460301c90565b9061301d565b919261306e81612b8f565b8103908111611cd35761301493855f5265ffffffffffff808360205f20015416908516105f1461309f575091613009565b9291506130ab90611cc5565b90613009565b604051906130be82610d28565b5f6020838281520152565b906130f26130ec613113926130dc6130b1565b506130e56130b1565b5084611ef5565b50612100565b91600165ffffffffffff845116936020828060d01b03910151169101611ef5565b9054906040519261312384610d28565b835260031b1c602082015290565b908082101561313e575090565b905090565b8054600160401b811015610d435761316091600182018155611ef5565b61318b57815160209092015160301b65ffffffffffff191665ffffffffffff92909216919091179055565b634e487b7160e01b5f525f60045260245ffd5b80549293929190821561328b576131ba61216d61304b85611f4a565b906131cb825165ffffffffffff1690565b65ffffffffffff8481169116811061327957611fae9460209488926131f96121f6875165ffffffffffff1690565b0361324157506132339261320f61321a92611f4a565b905f5260205f200190565b9065ffffffffffff82549181199060301b169116179055565b01516001600160d01b031690565b91505061327491613261613253610dae565b65ffffffffffff9093168352565b6001600160d01b03881682860152613143565b613233565b604051632520601d60e01b8152600490fd5b6132af925061329b613253610dae565b6001600160d01b0385166020830152613143565b5f9190565b90808216911860011c8101809111611cd35790565b60ff5f8051602061338f8339815191525460401c16156132e557565b604051631afcd79f60e31b8152600490fd5b905b8383106133065750505090565b90919261331381856132b4565b90835f5265ffffffffffff808360205f20015416908416105f1461333b5750925b91906132f9565b9350600181018091111561333457611c9356fe02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268009b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a2646970667358221220a114ef0ff5b29e345fe4269ee0528960ae4a86d65f802fa8e154dd6b83a6427064736f6c63430008190033","sourceMap":"765:2461:81:-:0;;;;;-1:-1:-1;;;;;765:2461:81;;;;;;;;-1:-1:-1;;765:2461:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;348:4:82;;332:21;;8837:64:25;765:2461:81;;;;;;;7896:76:25;;765:2461:81;;;;;;7985:34:25;7981:146;;-1:-1:-1;525:17:69;;;-1:-1:-1;525:17:69;;-1:-1:-1;552:12:69;;-1:-1:-1;2360:34:76;;2404:28;;-1:-1:-1;2404:28:76;;2442:57;;-1:-1:-1;2442:57:76;;2509:61;;-1:-1:-1;2509:61:76;;1248:40:81;;;;;765:2461;;1352:79;;;;;;;;;;;;;;;;;;;;;;;348:4:82;765:2461:81;;-1:-1:-1;;;;;765:2461:81;;;;;;;;;;;;;;;;;1352:79;;;-1:-1:-1;1352:79:81;;;;;;765:2461;;;;;1298:134;;;765:2461;;1298:134;;765:2461;;1493:76;;;;;;;;;;;;;;;;;;;;;;;348:4:82;765:2461:81;;-1:-1:-1;;;;;765:2461:81;;;;;;;;;;;;;;;;;1493:76;;;-1:-1:-1;1493:76:81;;;;;;1442:128;765:2461;;1442:128;;765:2461;;;;;;;;332:21:82;765:2461:81;;;;525:17:69;765:2461:81;;;;;552:12:69;765:2461:81;;;;;2360:34:76;765:2461:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1493:76;765:2461;;;-1:-1:-1;765:2461:81;;;;;1493:76;765:2461;;;-1:-1:-1;765:2461:81;;;;;-1:-1:-1;765:2461:81;1352:79;765:2461;;;-1:-1:-1;765:2461:81;;;;;7981:146:25;-1:-1:-1;;;;;;765:2461:81;;;;;;;;;8087:29:25;;765:2461:81;;8087:29:25;7981:146;;;;;7896:76;765:2461:81;;-1:-1:-1;;;7938:23:25;;;;;765:2461:81;-1:-1:-1;765:2461:81;;;;;-1:-1:-1;;;;;765:2461:81;;;;;;:::o","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361015610011575f80fd5b5f3560e01c806301ffc9a714610214578063075db0361461020f578063103f29071461020a578063128e5d82146102055780631a80e500146102005780631bf10a3e146101fb57806323f752d5146101f6578063248a9ca3146101f157806325dc9708146101ec5780632dd31000146101e75780632f2ff15d146101e257806336568abe146101dd5780633dfd3873146101d8578063439fab91146101d3578063557cab44146101ce5780636679191e146101c95780637f5a7c7b146101c457806391d14854146101bf5780639b656b22146101ba5780639f86fd85146101b5578063a217fddf146101b0578063bb24fe8a146101ab578063c0cd7c3e146101a6578063d15b740e146101a1578063d547741f1461019c578063e02f693714610197578063e102831a14610192578063e49561ee1461018d578063fbfa77cf14610188578063fd4d447c14610183578063ff54740f1461017e5763ffa1ad7414610179575f80fd5b61108a565b61106d565b61103b565b611014565b610e29565b610de5565b610d02565b610bf1565b610bc7565b610b83565b610b40565b610b26565b610a6c565b610a28565b6109ca565b6109a2565b610968565b61094c565b61080f565b6106e9565b61069e565b610652565b61060e565b6105f1565b6105b8565b61043c565b610407565b61033a565b6102f6565b6102b2565b61026e565b3461026a57602036600319011261026a5760043563ffffffff60e01b811680910361026a57602090637965db0b60e01b8114908115610259575b506040519015158152f35b6301ffc9a760e01b1490505f61024e565b5f80fd5b3461026a575f36600319011261026a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461026a575f36600319011261026a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461026a575f36600319011261026a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461026a575f36600319011261026a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b6001600160a01b0381160361026a57565b6064359065ffffffffffff8216820361026a57565b608090600319011261026a576004356103bc8161037e565b90602435906044356103cd8161037e565b9060643565ffffffffffff8116810361026a5790565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b3461026a5761043861042461041b366103a4565b92919091611168565b6040519182916020835260208301906103e3565b0390f35b3461026a57604036600319011261026a576004356001600160601b038116810361026a576024359061046c611732565b6040516302910f8b60e31b81523360048201526020816024816001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165afa9081156105b3575f91610584575b5015610572576001600160601b03166bffffffffffffffffffffffff193360601b161790806104f6835f52600260205260405f2090565b541461056057610545817fc67e7929681aa1bccd63f52b3799bf5805f3009f197db6fdf584b14f7fbf608c92610534855f52600260205260405f2090565b556040519081529081906020820190565b0390a261055e60015f80516020611bf383398151915255565b005b60405163a741a04560e01b8152600490fd5b6040516323d53b9760e21b8152600490fd5b6105a6915060203d6020116105ac575b61059e8183610c71565b8101906113b9565b5f6104bf565b503d610594565b6110bd565b3461026a57602036600319011261026a576004355f525f80516020611bd38339815191526020526020600160405f200154604051908152f35b3461026a57610438610424610605366103a4565b929190916113f0565b3461026a575f36600319011261026a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461026a57604036600319011261026a5761055e6024356004356106758261037e565b805f525f80516020611bd3833981519152602052610699600160405f200154611761565b611918565b3461026a57604036600319011261026a576024356106bb8161037e565b336001600160a01b038216036106d75761055e9060043561194e565b60405163334bd91960e11b8152600490fd5b3461026a57602036600319011261026a576004356107068161037e565b61070e611732565b335f9081527f9ebbcbe0d2961d3fbe56ca6f679bc753bd848d3e6bb3eaf9041c51b286881d2c60205260409020547fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c9060ff16156107c457506001546001600160a01b039182169181168214610560576001600160a01b03191681176001557f5bbb1d3ebb6a3ad2a0f17ff35e579a83af60604d1d3c2a4c83c62adecadf666d5f80a260015f80516020611bf383398151915255005b6044906040519063e2517d3f60e01b82523360048301526024820152fd5b9181601f8401121561026a578235916001600160401b03831161026a576020838186019501011161026a57565b3461026a57602036600319011261026a576001600160401b0360043581811161026a576108409036906004016107e2565b5f80516020611c13833981519152549260ff8460401c1615931680159081610944575b600114908161093a575b159081610931575b5061091f575f80516020611c13833981519152805467ffffffffffffffff191660011790556108a891836108f657611a16565b6108ae57005b5f80516020611c13833981519152805460ff60401b19169055604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a1005b5f80516020611c13833981519152805460ff60401b191668010000000000000000179055611a16565b60405163f92ee8a960e01b8152600490fd5b9050155f610875565b303b15915061086d565b849150610863565b3461026a575f36600319011261026a576020604051614e208152f35b3461026a575f36600319011261026a5760206040517fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c8152f35b3461026a575f36600319011261026a576001546040516001600160a01b039091168152602090f35b3461026a57604036600319011261026a57602060ff610a1c6024356109ee8161037e565b6004355f525f80516020611bd3833981519152845260405f209060018060a01b03165f5260205260405f2090565b54166040519015158152f35b3461026a575f36600319011261026a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461026a5760408060031936011261026a57600435610a8a8161037e565b602435906001600160401b03821161026a575f8091610ab0610b149436906004016107e2565b908187519283928337810184815203915af43d15610b1c57610b063d610ad581610ca1565b90610ae286519283610c71565b81523d5f602083013e5b8451948593151560208501528084015260608301906103e3565b03601f198101835282610c71565b805190602001fd5b610b066060610aec565b3461026a575f36600319011261026a5760206040515f8152f35b3461026a575f36600319011261026a5760206040516001600160401b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461026a575f36600319011261026a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461026a57602036600319011261026a576004355f526002602052602060405f2054604051908152f35b3461026a57604036600319011261026a5761055e602435600435610c148261037e565b805f525f80516020611bd3833981519152602052610c38600160405f200154611761565b61194e565b634e487b7160e01b5f52604160045260245ffd5b604081019081106001600160401b03821117610c6c57604052565b610c3d565b90601f801991011681019081106001600160401b03821117610c6c57604052565b60405190610c9f82610c51565b565b6001600160401b038111610c6c57601f01601f191660200190565b81601f8201121561026a57803590610cd382610ca1565b92610ce16040519485610c71565b8284526020838301011161026a57815f926020809301838601378301015290565b3461026a5760808060031936011261026a57610d1f60243561037e565b60443565ffffffffffff81160361026a576001600160401b0360643581811161026a57610d50903690600401610cbc565b5060606020604051610d6181610c51565b828152015260605180610d79575b60206040515f8152f35b8281016020821261026a5783519183831161026a5782604091031261026a5760405193610da585610c51565b8281015184811161026a578282610dbe928601016110c8565b855260a083015193841161026a57602093610dda9301016110c8565b9101525f8080610d6f565b3461026a575f36600319011261026a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461026a5760a036600319011261026a57602435600435610e498261037e565b60443591610e5561038f565b90608435906001600160401b03821161026a57610e7760049236908401610cbc565b610e7f611732565b5f54602090610ea490610e98906001600160a01b031681565b6001600160a01b031690565b60405163b134427160e01b815294859182905afa9283156105b3575f93610fe3575b506001600160a01b039283163303610fd1576001546001600160a01b0316838116610f46575b50506040805195865265ffffffffffff909316602086015216927f741a5de99085c0d660f3e4192217b0ffb0ea4e35a0480de48e857a4bc3ee36ed91819081015b0390a361055e60015f80516020611bf383398151915255565b909360405194610f7d86610f6f602082019363724ab0f760e11b8552858c898d602487016115d0565b03601f198101885287610c71565b62042e305a10610fbf575f610f2d938192827f741a5de99085c0d660f3e4192217b0ffb0ea4e35a0480de48e857a4bc3ee36ed9951926203d090f15093610eec565b604051638072475160e01b8152600490fd5b60405163dabc4ad960e01b8152600490fd5b61100691935060203d60201161100d575b610ffe8183610c71565b8101906110a5565b915f610ec6565b503d610ff4565b3461026a575f36600319011261026a575f546040516001600160a01b039091168152602090f35b3461026a57604036600319011261026a57602061106560243561105d8161037e565b600435611608565b604051908152f35b3461026a575f36600319011261026a5760206040516203d0908152f35b3461026a575f36600319011261026a57602060405160018152f35b9081602091031261026a57516110ba8161037e565b90565b6040513d5f823e3d90fd5b81601f8201121561026a578051906110df82610ca1565b926110ed6040519485610c71565b8284526020838301011161026a57815f9260208093018386015e8301015290565b9060208282031261026a5781516001600160401b03811161026a576110ba92016110c8565b906110ba91602081526020611153835160408385015260608401906103e3565b920151906040601f19828503019101526103e3565b604080516309472ec160e11b8152606096956001600160a01b039384169591946020949192917f0000000000000000000000000000000000000000000000000000000000000000169085876004818b5afa9687156105b3575f9761139a575b50845163fbfa77cf60e01b81529686886004818c5afa80156105b357855f9161123b9a839161137d575b508851636a531c3160e11b8082526001600160a01b039586166004830152858916602483015294909116604482015265ffffffffffff909116606482015298899081906084820190565b0381865afa9788156105b3575f98611358575b508686979899600496975196878092621a80e560e81b82525afa9485156105b3575f95611335575b5086519081526001600160a01b03948516600482015293909216602484015260609190911c604483015265ffffffffffff9092166064820152905f9082908180608481015b03915afa9081156105b3575f91611313575b50835115801590611309575b6112e35750505050565b6110ba9394955090610b06916112f7610c92565b95865283860152519384928301611133565b50805115156112d9565b61132f91503d805f833e6113278183610c71565b81019061110e565b5f6112cd565b5f95506113516112bb918a3d8c1161100d57610ffe8183610c71565b9550611276565b8798509661137360049697983d805f833e6113278183610c71565b989796955061124e565b61139491508a3d8c1161100d57610ffe8183610c71565b5f6111f1565b6113b2919750863d881161100d57610ffe8183610c71565b955f6111c7565b9081602091031261026a5751801515810361026a5790565b9081602091031261026a57516001600160401b038116810361026a5790565b604051635d927f4560e11b8082526060969594936001600160a01b03939092909160209190858416908383600481855afa9283156105b3575f936115b1575b506001600160401b039283166114d65750506040516304bb92e160e31b81526001600160a01b0393841660048201526024810194909452505092909216604483015265ffffffffffff9290921660648201529192505f90829060849082907f0000000000000000000000000000000000000000000000000000000000000000165afa9081156105b3575f916114c2575090565b6110ba91503d805f833e6113278183610c71565b839060046040518094819382525afa9081156105b3576001935f92611584575b50501614611505575050505050565b6040516304bb92e160e31b81526001600160a01b039182166004820152602481019290925292909216604483015265ffffffffffff9290921660648201529192505f90829060849082907f0000000000000000000000000000000000000000000000000000000000000000165afa9081156105b3575f916114c2575090565b6115a39250803d106115aa575b61159b8183610c71565b8101906113d1565b5f806114f6565b503d611591565b6115c9919350843d86116115aa5761159b8183610c71565b915f61142f565b919360a0936110ba969565ffffffffffff938552600180871b03166020850152604084015216606082015281608082015201906103e3565b5f546040516308834cb560e21b8082526001600160a01b038581166004840152928316602483015293602092909183816044817f000000000000000000000000000000000000000000000000000000000000000086165afa9081156105b3575f91611715575b501593841561168a575b505050509050611686575f90565b5f90565b6040519586526001600160a01b0392909216600486015260609190911c6024850152909291508290829060449082907f0000000000000000000000000000000000000000000000000000000000000000165afa9182156105b3575f926116f8575b505015805f808080611678565b61170e9250803d106105ac5761059e8183610c71565b5f806116eb565b61172c9150843d86116105ac5761059e8183610c71565b5f61166e565b5f80516020611bf3833981519152600281541461174f5760029055565b604051633ee5aeb560e01b8152600490fd5b5f8181525f80516020611bd38339815191526020908152604080832033845290915290205460ff16156107c45750565b6001600160a01b0381165f9081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d60205260409020545f80516020611bd38339815191529060ff1661183c575f808052602091825260408082206001600160a01b038516835290925220805460ff1916600117905533906001600160a01b03165f7f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d8180a4600190565b50505f90565b6001600160a01b0381165f9081527f9ebbcbe0d2961d3fbe56ca6f679bc753bd848d3e6bb3eaf9041c51b286881d2c602052604090207fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c905f80516020611bd38339815191529060ff905b5416611911575f828152602091825260408082206001600160a01b038616835290925220805460ff1916600117905533916001600160a01b0316907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d5f80a4600190565b5050505f90565b5f8181525f80516020611bd3833981519152602081815260408084206001600160a01b038716855290915290912060ff906118ad565b5f8181525f80516020611bd3833981519152602081815260408084206001600160a01b03871685529091529091205460ff1615611911575f828152602091825260408082206001600160a01b038616835290925220805460ff1916905533916001600160a01b0316907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b5f80a4600190565b91909160408184031261026a5780356119f88161037e565b9260208201356001600160401b03811161026a576110ba9201610cbc565b611a22918101906119e0565b506040516302910f8b60e31b81526001600160a01b0391821660048201819052906020816024817f000000000000000000000000000000000000000000000000000000000000000087165afa9081156105b3575f91611b34575b5015611b2257611aa990611a8e611b53565b60018060a01b03166001600160601b0360a01b5f5416175f55565b611afc6040611ab6611b76565b6020810151600180546001600160a01b0319166001600160a01b0390921691909117905580516001600160a01b0316848116611b12575b5001516001600160a01b031690565b908116611b065750565b611b0f90611842565b50565b611b1b90611791565b505f611aed565b6040516362df054560e01b8152600490fd5b611b4d915060203d6020116105ac5761059e8183610c71565b5f611a7c565b611b5b611ba4565b611b63611ba4565b60015f80516020611bf383398151915255565b60405190606082018281106001600160401b03821117610c6c576040525f6040838281528260208201520152565b60ff5f80516020611c138339815191525460401c1615611bc057565b604051631afcd79f60e31b8152600490fdfe02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268009b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a264697066735822122039dce195144b27a47a4223371e67014a21ca412ee10a9ba4d2d3f9eae39aa3a164736f6c63430008190033","sourceMap":"765:2461:81:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;;;;;-1:-1:-1;;765:2461:81;;;;;;;;;;;;;;;;;;-1:-1:-1;;;3551:47:23;;;:87;;;;765:2461:81;;;;;;;;;;3551:87:23;-1:-1:-1;;;1133:40:29;;-1:-1:-1;3551:87:23;;;765:2461:81;-1:-1:-1;765:2461:81;;;;;;;;-1:-1:-1;;765:2461:81;;;;;;957:56;-1:-1:-1;;;;;765:2461:81;;;;;;;;;;;;-1:-1:-1;;765:2461:81;;;;;;1537:38:76;-1:-1:-1;;;;;765:2461:81;;;;;;;;;;;;-1:-1:-1;;765:2461:81;;;;;;1632:54:76;-1:-1:-1;;;;;765:2461:81;;;;;;;;;;;;-1:-1:-1;;765:2461:81;;;;;;1743:56:76;-1:-1:-1;;;;;765:2461:81;;;;;;;-1:-1:-1;;;;;765:2461:81;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;765:2461:81;;;;;;;;-1:-1:-1;;765:2461:81;;;;:::o;:::-;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;765:2461:81;;;;;;-1:-1:-1;;;;;765:2461:81;;;;;;;;3217:103:28;;;:::i;:::-;765:2461:81;;-1:-1:-1;;;4285:48:76;;4322:10;765:2461:81;4285:48:76;;765:2461:81;;;;;-1:-1:-1;;;;;4295:16:76;765:2461:81;4285:48:76;;;;;;;-1:-1:-1;4285:48:76;;;765:2461:81;4284:49:76;;4280:99;;-1:-1:-1;;;;;765:2461:81;-1:-1:-1;;4322:10:76;297:2:88;765:2461:81;;267:46:88;4459:27:76;;;;765:2461:81;;4459:15:76;765:2461:81;;;;;;;4459:27:76;765:2461:81;4459:37:76;4455:87;;4654:38;4552:27;4654:38;4552:27;;;765:2461:81;;4459:15:76;765:2461:81;;;;;;;4552:27:76;765:2461:81;;;;;;;;;;;;;;4654:38:76;;;;3282:1:28;1805;-1:-1:-1;;;;;;;;;;;765:2461:81;3716:283:28;3282:1;765:2461:81;4455:87:76;765:2461:81;;-1:-1:-1;;;4519:12:76;;765:2461:81;;4519:12:76;4280:99;765:2461:81;;-1:-1:-1;;;4356:12:76;;765:2461:81;;4356:12:76;4285:48;;;;765:2461:81;4285:48:76;765:2461:81;4285:48:76;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;:::i;765:2461:81:-;;;;;;-1:-1:-1;;765:2461:81;;;;;;-1:-1:-1;765:2461:81;-1:-1:-1;;;;;;;;;;;765:2461:81;;;4919:24:23;765:2461:81;-1:-1:-1;765:2461:81;4919:24:23;765:2461:81;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;-1:-1:-1;;765:2461:81;;;;;;322:32:69;-1:-1:-1;;;;;765:2461:81;;;;;;;;;;;;-1:-1:-1;;765:2461:81;;;;5350:25:23;765:2461:81;;;;;;;:::i;:::-;;-1:-1:-1;765:2461:81;-1:-1:-1;;;;;;;;;;;765:2461:81;;3202:4:23;4919:24;765:2461:81;-1:-1:-1;765:2461:81;4919:24:23;765:2461:81;3202:4:23;:::i;:::-;5350:25;:::i;765:2461:81:-;;;;;;-1:-1:-1;;765:2461:81;;;;;;;;;:::i;:::-;966:10:27;-1:-1:-1;;;;;765:2461:81;;6441:34:23;6437:102;;6549:37;765:2461:81;;;6549:37:23;:::i;6437:102::-;765:2461:81;;-1:-1:-1;;;6498:30:23;;765:2461:81;;6498:30:23;765:2461:81;;;;;;-1:-1:-1;;765:2461:81;;;;;;;;;:::i;:::-;3217:103:28;;:::i;:::-;966:10:27;-1:-1:-1;765:2461:81;;;;;;;;;;1356:26:76;;765:2461:81;;4468:23:23;4464:108;;-1:-1:-1;4861:4:76;765:2461:81;-1:-1:-1;;;;;765:2461:81;;;;;;4861:13:76;;4857:63;;-1:-1:-1;;;;;;765:2461:81;;;4861:4:76;765:2461:81;4958:14:76;-1:-1:-1;;4958:14:76;4861:4;-1:-1:-1;;;;;;;;;;;765:2461:81;;4464:108:23;765:2461:81;;;;4514:47:23;;;;;;966:10:27;765:2461:81;4514:47:23;;765:2461:81;;;;;4514:47:23;765:2461:81;;;;;;;;;;;;;-1:-1:-1;;;;;765:2461:81;;;;;;;;;;;;;;;:::o;:::-;;;;;;-1:-1:-1;;765:2461:81;;;;-1:-1:-1;;;;;765:2461:81;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;765:2461:81;;;;;;;4301:16:25;765:2461:81;;4726:16:25;;:34;;;;765:2461:81;4805:1:25;4790:16;:50;;;;765:2461:81;4855:13:25;:30;;;;765:2461:81;4851:91:25;;;-1:-1:-1;;;;;;;;;;;765:2461:81;;-1:-1:-1;;765:2461:81;;;;;718:4:69;;4951:18:25;4979:67;;718:4:69;:::i;:::-;5066:101:25;;765:2461:81;5066:101:25;-1:-1:-1;;;;;;;;;;;765:2461:81;;-1:-1:-1;;;;765:2461:81;;;;;-1:-1:-1;765:2461:81;;5142:14:25;;765:2461:81;;5142:14:25;765:2461:81;4979:67:25;-1:-1:-1;;;;;;;;;;;765:2461:81;;-1:-1:-1;;;;765:2461:81;;;;;718:4:69;:::i;4851:91:25:-;765:2461:81;;-1:-1:-1;;;4908:23:25;;765:2461:81;;4908:23:25;4855:30;4872:13;;;4855:30;;;4790:50;4818:4;4810:25;:30;;-1:-1:-1;4790:50:25;;4726:34;;;-1:-1:-1;4726:34:25;;765:2461:81;;;;;;-1:-1:-1;;765:2461:81;;;;;;;1253:6:76;765:2461:81;;;;;;;;;-1:-1:-1;;765:2461:81;;;;;;;1356:26:76;765:2461:81;;;;;;;;;-1:-1:-1;;765:2461:81;;;;;;;;-1:-1:-1;;;;;765:2461:81;;;;;;;;;;;;;;-1:-1:-1;;765:2461:81;;;;;;3901:31:23;765:2461:81;;;;;:::i;:::-;;;-1:-1:-1;765:2461:81;-1:-1:-1;;;;;;;;;;;765:2461:81;;;-1:-1:-1;765:2461:81;;;;;;;;;;;;;;;;;3901:31:23;765:2461:81;;;;;;;;;;;;;;;;-1:-1:-1;;765:2461:81;;;;;;906:45;-1:-1:-1;;;;;765:2461:81;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;765:2461:81;;;;-1:-1:-1;765:2461:81;;;477:31:75;765:2461:81;;;;;;:::i;:::-;;;;;;;;;;;;;;;416:25:75;;;;765:2461:81;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;-1:-1:-1;765:2461:81;;;;;;;;;;;;;477:31:75;;765:2461:81;;;;;;;;;;:::i;:::-;477:31:75;765:2461:81;;477:31:75;;;;;;:::i;:::-;518:79;;;765:2461:81;518:79:75;;765:2461:81;;;;;;;;;;;-1:-1:-1;;765:2461:81;;;;;;;;;;;;;;;;;-1:-1:-1;;765:2461:81;;;;;;;-1:-1:-1;;;;;404:28:69;765:2461:81;;;;;;;;;;-1:-1:-1;;765:2461:81;;;;;;1439:41:76;-1:-1:-1;;;;;765:2461:81;;;;;;;;;;;;-1:-1:-1;;765:2461:81;;;;;;-1:-1:-1;765:2461:81;2009:67:76;765:2461:81;;;;-1:-1:-1;765:2461:81;;;;;;;;;;;;;;-1:-1:-1;;765:2461:81;;;;5767:26:23;765:2461:81;;;;;;;:::i;:::-;;-1:-1:-1;765:2461:81;-1:-1:-1;;;;;;;;;;;765:2461:81;;3202:4:23;4919:24;765:2461:81;-1:-1:-1;765:2461:81;4919:24:23;765:2461:81;3202:4:23;:::i;:::-;5767:26;:::i;765:2461:81:-;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;765:2461:81;;;;;;;:::o;:::-;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;765:2461:81;;;;;;;:::o;:::-;;;;;;;:::i;:::-;:::o;:::-;-1:-1:-1;;;;;765:2461:81;;;;;;-1:-1:-1;;765:2461:81;;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;765:2461:81;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;765:2461:81;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;3086:20:76;3082:107;;765:2461:81;;;;-1:-1:-1;765:2461:81;;;3082:107:76;3139:39;;;765:2461:81;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;3082:107:76;;;;;765:2461:81;;;;;;-1:-1:-1;;765:2461:81;;;;;;1019:53;-1:-1:-1;;;;;765:2461:81;;;;;;;;;;;;-1:-1:-1;;765:2461:81;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;-1:-1:-1;;;;;765:2461:81;;;;;;;;;;;;:::i;:::-;3217:103:28;;:::i;:::-;-1:-1:-1;765:2461:81;;;5246:21:76;;:13;;-1:-1:-1;;;;;765:2461:81;5246:13:76;765:2461:81;;-1:-1:-1;;;;;765:2461:81;;;5246:21:76;765:2461:81;;-1:-1:-1;;;5246:23:76;;765:2461:81;;;;;5246:23:76;;;;;;;-1:-1:-1;5246:23:76;;;765:2461:81;-1:-1:-1;;;;;;765:2461:81;;;5232:10:76;:37;5228:87;;5341:4;765:2461:81;-1:-1:-1;;;;;765:2461:81;;;;5355:469:76;;765:2461:81;-1:-1:-1;;765:2461:81;;;;;;;;;;;;;;;;5839:55:76;;765:2461:81;;;;5839:55:76;;;;3282:1:28;1805;-1:-1:-1;;;;;;;;;;;765:2461:81;3716:283:28;5355:469:76;765:2461:81;;;;5435:94:76;;;;765:2461:81;5435:94:76;;;;;;;;;;;;765:2461:81;5435:94:76;;;:::i;:::-;;765:2461:81;;5435:94:76;;;;;;:::i;:::-;765:2461:81;5548:9:76;:51;5544:118;;-1:-1:-1;5839:55:76;5676:138;;;;5839:55;5676:138;;;1150:7;5676:138;;5355:469;;;5544:118;765:2461:81;;-1:-1:-1;;;5626:21:76;;765:2461:81;;5626:21:76;5228:87;765:2461:81;;-1:-1:-1;;;5292:12:76;;765:2461:81;;5292:12:76;5246:23;;;;;765:2461:81;5246:23:76;765:2461:81;5246:23:76;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;765:2461:81;;;;;;-1:-1:-1;;765:2461:81;;;;;;;;-1:-1:-1;;;;;765:2461:81;;;;;;;;;;;;;;-1:-1:-1;;765:2461:81;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;765:2461:81;;;;;;;1150:7:76;765:2461:81;;;;;;;;;-1:-1:-1;;765:2461:81;;;;;;;2700:1:76;765:2461:81;;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;765:2461:81;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;;;;765:2461:81;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;2213:1011::-;765:2461;;;-1:-1:-1;;;2498:56:81;;765:2461;;2213:1011;-1:-1:-1;;;;;765:2461:81;;;;;;2498:56;;2213:1011;;;2453:20;765:2461;;2498:56;765:2461;2498:56;765:2461;;2498:56;;;;;;;;;;;2213:1011;-1:-1:-1;765:2461:81;;-1:-1:-1;;;2590:32:81;;765:2461;2590:32;765:2461;2498:56;765:2461;2590:32;;;;;;;;2498:56;2590:32;2435:220;2590:32;;;;;2213:1011;-1:-1:-1;765:2461:81;;-1:-1:-1;;;2435:220:81;;;-1:-1:-1;;;;;765:2461:81;;;2498:56;2435:220;;765:2461;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2435:220;;;;;;;;;;;2498:56;2435:220;;;2213:1011;765:2461;;;;;;2498:56;765:2461;;;;;;;;;;2768:58;;;;;;;;;2498:56;2768:58;;;2213:1011;-1:-1:-1;765:2461:81;;2705:174;;;-1:-1:-1;;;;;765:2461:81;;;2498:56;2705:174;;765:2461;;;;;;;;;;;;;;;;;;;;;;;;;;;2498:56;;765:2461;;;;;;;2705:174;;;;;;;;;;2498:56;2705:174;;;2213:1011;765:2461;;;2894:34;;;:74;;;2213:1011;2890:328;;2213:1011;;;;:::o;2890:328::-;2991:216;765:2461;;;;;2991:216;765:2461;;;:::i;:::-;;;;3019:174;;;765:2461;;2991:216;;;;;;:::i;2894:74::-;765:2461;;;2932:36;;2894:74;;2705:174;;;;;;2498:56;2705:174;;;;;;:::i;:::-;;;;;:::i;:::-;;;;2768:58;2498:56;2768:58;;;2705:174;2768:58;;;;;;;;;;;:::i;:::-;;;;;2435:220;;;;;;2498:56;2435:220;;;;;2498:56;2435:220;;;;;;:::i;:::-;;;;;;;;2590:32;;;;;;;;;;;;;;:::i;:::-;;;;2498:56;;;;;;;;;;;;;;;:::i;:::-;;;;;765:2461;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;-1:-1:-1;;;;;765:2461:81;;;;;;;:::o;1583:624::-;765:2461;;-1:-1:-1;;;1765:31:81;;;765:2461;;1583:624;;;-1:-1:-1;;;;;765:2461:81;1583:624;;;;1765:31;;765:2461;;;;;1765:31;765:2461;1765:31;765:2461;;1765:31;;;;;;;;;;;1583:624;-1:-1:-1;;;;;;765:2461:81;;;;;-1:-1:-1;;765:2461:81;;-1:-1:-1;;;1824:146:81;;-1:-1:-1;;;;;765:2461:81;;;1765:31;1824:146;;765:2461;;;;;;;;-1:-1:-1;;765:2461:81;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;765:2461:81;;;;;;1853:31;765:2461;1824:146;;;;;;;1765:31;1824:146;;;1817:153;;:::o;1824:146::-;;;;;;1765:31;1824:146;;;;;;:::i;1761:440::-;765:2461;;1765:31;765:2461;;1991:31;;;;;;;;;;;;;2026:1;1991:31;1765;1991;;;1761:440;765:2461;;;1991:36;1987:214;;1761:440;;;;;1583:624::o;1987:214::-;765:2461;;-1:-1:-1;;;2050:140:81;;-1:-1:-1;;;;;765:2461:81;;;1765:31;2050:140;;765:2461;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;765:2461:81;;;;;;2076:28;765:2461;2050:140;;;;;;;1765:31;2050:140;;;2043:147;;:::o;1991:31::-;;;;;;-1:-1:-1;1991:31:81;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;1765;;;;;;;;;;;;;;;:::i;:::-;;;;;765:2461;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;3740:389:76:-;3918:5;765:2461:81;;;-1:-1:-1;;;3853:71:76;;;-1:-1:-1;;;;;765:2461:81;;;3853:71:76;;;765:2461:81;;;;;;;;;3853:71:76;;765:2461:81;;3853:71:76;765:2461:81;;;3867:29:76;765:2461:81;;3853:71:76;;;;;;;3918:5;3853:71;;;3740:389;3852:72;;765:2461:81;;;3852:181:76;;3740:389;3835:242;;;;;;;;3918:5;3740:389;:::o;3835:242::-;3918:5;4058:8;:::o;3852:181::-;765:2461:81;;3945:88:76;;;-1:-1:-1;;;;;765:2461:81;;;;3853:71:76;3945:88;;765:2461:81;467:2:88;765:2461:81;;;;;;;;;;;-1:-1:-1;765:2461:81;;;;;;;;3959:31:76;765:2461:81;3945:88:76;;;;;;;3918:5;3945:88;;;3852:181;3944:89;;;3852:181;;;;;;;3945:88;;;;;;-1:-1:-1;3945:88:76;;;;;;:::i;:::-;;;;;3853:71;;;;;;;;;;;;;;:::i;:::-;;;;3326:384:28;-1:-1:-1;;;;;;;;;;;1847:1:28;765:2461:81;;3526:20:28;3522:88;;1847:1;765:2461:81;;3326:384:28:o;3522:88::-;765:2461:81;;-1:-1:-1;;;3569:30:28;;;;;4148:103:23;-1:-1:-1;765:2461:81;;;-1:-1:-1;;;;;;;;;;;765:2461:81;;;;;;;;966:10:27;765:2461:81;;;;;;;;;;4468:23:23;4464:108;;4148:103;:::o;7270:387::-;-1:-1:-1;;;;;765:2461:81;;-1:-1:-1;765:2461:81;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2887:71:23;765:2461:81;;;;-1:-1:-1;765:2461:81;;;;;;;;;;;-1:-1:-1;;;;;765:2461:81;;;;;;;;;;-1:-1:-1;;765:2461:81;7509:4:23;765:2461:81;;;966:10:27;;-1:-1:-1;;;;;765:2461:81;-1:-1:-1;7532:40:23;-1:-1:-1;;7532:40:23;7509:4;7586:11;:::o;7432:219::-;7628:12;;-1:-1:-1;7628:12:23;:::o;7270:387::-;-1:-1:-1;;;;;765:2461:81;;-1:-1:-1;765:2461:81;;;;;;;;;1356:26:76;;-1:-1:-1;;;;;;;;;;;2887:71:23;765:2461:81;;3901:31:23;765:2461:81;;;;-1:-1:-1;765:2461:81;;;;;;;;;;;-1:-1:-1;;;;;765:2461:81;;;;;;;;;;-1:-1:-1;;765:2461:81;7509:4:23;765:2461:81;;;966:10:27;;-1:-1:-1;;;;;765:2461:81;;7532:40:23;-1:-1:-1;;7532:40:23;7509:4;7586:11;:::o;7432:219::-;7628:12;;;-1:-1:-1;7628:12:23;:::o;7270:387::-;-1:-1:-1;765:2461:81;;;-1:-1:-1;;;;;;;;;;;765:2461:81;;;;;;;;-1:-1:-1;;;;;765:2461:81;;;;;;;;;;;;3901:31:23;765:2461:81;7892:388:23;-1:-1:-1;765:2461:81;;;-1:-1:-1;;;;;;;;;;;765:2461:81;;;;;;;;-1:-1:-1;;;;;765:2461:81;;;;;;;;;;;;;;;;-1:-1:-1;765:2461:81;;;;;;;;;;;-1:-1:-1;;;;;765:2461:81;;;;;;;;;;-1:-1:-1;;765:2461:81;;;966:10:27;;-1:-1:-1;;;;;765:2461:81;;8155:40:23;-1:-1:-1;;8155:40:23;765:2461:81;8209:11:23;:::o;765:2461:81:-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;765:2461:81;;;;;;;;:::i;5907:716:76:-;6030:34;5907:716;6030:34;;;;:::i;:::-;-1:-1:-1;765:2461:81;;-1:-1:-1;;;6080:41:76;;-1:-1:-1;;;;;765:2461:81;;;6080:41:76;;;765:2461:81;;;;6080:41:76;765:2461:81;;;6090:13:76;765:2461:81;;6080:41:76;;;;;;;-1:-1:-1;6080:41:76;;;5907:716;6079:42;;6075:90;;6210:14;2540:111:28;;;:::i;:::-;765:2461:81;;;;;;-1:-1:-1;;;;;765:2461:81;;-1:-1:-1;765:2461:81;;;-1:-1:-1;765:2461:81;;6210:14:76;765:2461:81;;;;:::i;:::-;6080:41:76;6311:15;;765:2461:81;;;;-1:-1:-1;;;;;;765:2461:81;-1:-1:-1;;;;;765:2461:81;;;;;;;;;;;-1:-1:-1;;;;;765:2461:81;;;;6337:143:76;;5907:716;-1:-1:-1;6493:28:76;765:2461:81;-1:-1:-1;;;;;765:2461:81;;;;;;;6489:128:76;;5907:716;:::o;6489:128::-;6551:55;;;:::i;:::-;;5907:716::o;6337:143::-;6404:65;;;:::i;:::-;;6337:143;;;6075:90;765:2461:81;;-1:-1:-1;;;6144:10:76;;6080:41;;6144:10;6080:41;;;;;;;;;;;;;;:::i;:::-;;;;6893:76:25;;;:::i;:::-;;;:::i;:::-;1805:1:28;-1:-1:-1;;;;;;;;;;;765:2461:81;6893:76:25:o;765:2461:81:-;;;;;;;;;;-1:-1:-1;;;;;765:2461:81;;;;;;;-1:-1:-1;765:2461:81;;;;;;;;;;;;:::o;7084:141:25:-;765:2461:81;-1:-1:-1;;;;;;;;;;;765:2461:81;;;;7150:18:25;7146:73;;7084:141::o;7146:73::-;765:2461:81;;-1:-1:-1;;;7191:17:25;;;;","linkReferences":{},"immutableReferences":{"57808":[{"start":1571,"length":32}],"57811":[{"start":2911,"length":32}],"58762":[{"start":1167,"length":32},{"start":2968,"length":32}],"58765":[{"start":711,"length":32},{"start":6731,"length":32}],"58768":[{"start":779,"length":32},{"start":5693,"length":32}],"58771":[{"start":847,"length":32},{"start":5819,"length":32}],"61081":[{"start":2621,"length":32},{"start":4496,"length":32}],"61083":[{"start":643,"length":32},{"start":5263,"length":32}],"61085":[{"start":3578,"length":32},{"start":5457,"length":32}]}},"methodIdentifiers":{"DEFAULT_ADMIN_ROLE()":"a217fddf","FACTORY()":"2dd31000","FULL_RESTAKE_DELEGATOR_HINTS()":"e102831a","HOOK_GAS_LIMIT()":"ff54740f","HOOK_RESERVE()":"557cab44","HOOK_SET_ROLE()":"6679191e","NETWORK_REGISTRY()":"c0cd7c3e","NETWORK_RESTAKE_DELEGATOR_HINTS()":"075db036","OPERATOR_NETWORK_OPT_IN_SERVICE()":"1a80e500","OPERATOR_VAULT_OPT_IN_SERVICE()":"128e5d82","OPT_IN_SERVICE_HINTS()":"9b656b22","TYPE()":"bb24fe8a","VAULT_FACTORY()":"103f2907","VERSION()":"ffa1ad74","getRoleAdmin(bytes32)":"248a9ca3","grantRole(bytes32,address)":"2f2ff15d","hasRole(bytes32,address)":"91d14854","hook()":"7f5a7c7b","initialize(bytes)":"439fab91","maxNetworkLimit(bytes32)":"d15b740e","onSlash(bytes32,address,uint256,uint48,bytes)":"e49561ee","renounceRole(bytes32,address)":"36568abe","revokeRole(bytes32,address)":"d547741f","setHook(address)":"3dfd3873","setMaxNetworkLimit(uint96,uint256)":"23f752d5","stake(bytes32,address)":"fd4d447c","stakeAt(bytes32,address,uint48,bytes)":"e02f6937","stakeBaseHints(address,bytes32,address,uint48)":"1bf10a3e","stakeHints(address,bytes32,address,uint48)":"25dc9708","staticDelegateCall(address,bytes)":"9f86fd85","supportsInterface(bytes4)":"01ffc9a7","vault()":"fbfa77cf"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"optInServiceHints\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"vaultHints_\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"AccessControlBadConfirmation\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"neededRole\",\"type\":\"bytes32\"}],\"name\":\"AccessControlUnauthorizedAccount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AlreadySet\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ExternalCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientHookGas\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotNetwork\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotSlasher\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotVault\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ReentrancyGuardReentrantCall\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint48\",\"name\":\"captureTimestamp\",\"type\":\"uint48\"}],\"name\":\"OnSlash\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"previousAdminRole\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"newAdminRole\",\"type\":\"bytes32\"}],\"name\":\"RoleAdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleRevoked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"hook\",\"type\":\"address\"}],\"name\":\"SetHook\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"SetMaxNetworkLimit\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DEFAULT_ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"FACTORY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"FULL_RESTAKE_DELEGATOR_HINTS\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"HOOK_GAS_LIMIT\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"HOOK_RESERVE\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"HOOK_SET_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"NETWORK_REGISTRY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"NETWORK_RESTAKE_DELEGATOR_HINTS\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"OPERATOR_NETWORK_OPT_IN_SERVICE\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"OPERATOR_VAULT_OPT_IN_SERVICE\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"OPT_IN_SERVICE_HINTS\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"TYPE\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"VAULT_FACTORY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"VERSION\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleAdmin\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"grantRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"hook\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"}],\"name\":\"maxNetworkLimit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint48\",\"name\":\"captureTimestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"onSlash\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"callerConfirmation\",\"type\":\"address\"}],\"name\":\"renounceRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"hook_\",\"type\":\"address\"}],\"name\":\"setHook\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint96\",\"name\":\"identifier\",\"type\":\"uint96\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"setMaxNetworkLimit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"stake\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hints\",\"type\":\"bytes\"}],\"name\":\"stakeAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"}],\"name\":\"stakeBaseHints\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"}],\"name\":\"stakeHints\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"staticDelegateCall\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"vault\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"AccessControlBadConfirmation()\":[{\"details\":\"The caller of a function is not the expected one. NOTE: Don't confuse with {AccessControlUnauthorizedAccount}.\"}],\"AccessControlUnauthorizedAccount(address,bytes32)\":[{\"details\":\"The `account` is missing a role.\"}],\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"ReentrancyGuardReentrantCall()\":[{\"details\":\"Unauthorized reentrant call.\"}]},\"events\":{\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"OnSlash(bytes32,address,uint256,uint48)\":{\"params\":{\"amount\":\"amount of the collateral to be slashed\",\"captureTimestamp\":\"time point when the stake was captured\",\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"}},\"RoleAdminChanged(bytes32,bytes32,bytes32)\":{\"details\":\"Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole` `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite {RoleAdminChanged} not being emitted signaling this.\"},\"RoleGranted(bytes32,address,address)\":{\"details\":\"Emitted when `account` is granted `role`. `sender` is the account that originated the contract call, an admin role bearer except when using {AccessControl-_setupRole}.\"},\"RoleRevoked(bytes32,address,address)\":{\"details\":\"Emitted when `account` is revoked `role`. `sender` is the account that originated the contract call: - if using `revokeRole`, it is the admin role bearer - if using `renounceRole`, it is the role bearer (i.e. `account`)\"},\"SetHook(address)\":{\"params\":{\"hook\":\"address of the hook\"}},\"SetMaxNetworkLimit(bytes32,uint256)\":{\"params\":{\"amount\":\"new maximum subnetwork's limit (how much stake the subnetwork is ready to get)\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"}}},\"kind\":\"dev\",\"methods\":{\"VERSION()\":{\"details\":\"Must return 1 for this one.\",\"returns\":{\"_0\":\"version of the delegator\"}},\"getRoleAdmin(bytes32)\":{\"details\":\"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}.\"},\"grantRole(bytes32,address)\":{\"details\":\"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event.\"},\"hasRole(bytes32,address)\":{\"details\":\"Returns `true` if `account` has been granted `role`.\"},\"initialize(bytes)\":{\"params\":{\"data\":\"some data to use\"}},\"onSlash(bytes32,address,uint256,uint48,bytes)\":{\"details\":\"Only the vault's slasher can call this function.\",\"params\":{\"amount\":\"amount of the collateral slashed\",\"captureTimestamp\":\"time point when the stake was captured\",\"data\":\"some additional data\",\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"}},\"renounceRole(bytes32,address)\":{\"details\":\"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `callerConfirmation`. May emit a {RoleRevoked} event.\"},\"revokeRole(bytes32,address)\":{\"details\":\"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event.\"},\"setHook(address)\":{\"details\":\"Only a HOOK_SET_ROLE holder can call this function. The hook can have arbitrary logic under certain functions, however, it doesn't affect the stake guarantees.\",\"params\":{\"hook\":\"address of the hook\"}},\"setMaxNetworkLimit(uint96,uint256)\":{\"details\":\"Only a network can call this function.\",\"params\":{\"amount\":\"new maximum subnetwork's limit\"}},\"stake(bytes32,address)\":{\"details\":\"Warning: this function is not safe to use for stake capturing, as it can change by the end of the block.\",\"params\":{\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"},\"returns\":{\"_0\":\"slashable stake until the end of the next epoch\"}},\"stakeAt(bytes32,address,uint48,bytes)\":{\"details\":\"Warning: it is not safe to use timestamp >= current one for the stake capturing, as it can change later.\",\"params\":{\"hints\":\"hints for the checkpoints' indexes\",\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\",\"timestamp\":\"time point to capture the stake at\"},\"returns\":{\"_0\":\"slashable stake at the given timestamp until the end of the consequent epoch\"}},\"staticDelegateCall(address,bytes)\":{\"details\":\"It allows to use this contract's storage on-chain.\",\"params\":{\"data\":\"data to make a delegatecall with\",\"target\":\"address of the contract to make a delegatecall to\"}},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"}},\"version\":1},\"userdoc\":{\"events\":{\"OnSlash(bytes32,address,uint256,uint48)\":{\"notice\":\"Emitted when a slash happens.\"},\"SetHook(address)\":{\"notice\":\"Emitted when a hook is set.\"},\"SetMaxNetworkLimit(bytes32,uint256)\":{\"notice\":\"Emitted when a subnetwork's maximum limit is set.\"}},\"kind\":\"user\",\"methods\":{\"FACTORY()\":{\"notice\":\"Get the factory's address.\"},\"HOOK_GAS_LIMIT()\":{\"notice\":\"Get a gas limit for the hook.\"},\"HOOK_RESERVE()\":{\"notice\":\"Get a reserve gas between the gas limit check and the hook's execution.\"},\"HOOK_SET_ROLE()\":{\"notice\":\"Get a hook setter's role.\"},\"NETWORK_REGISTRY()\":{\"notice\":\"Get the network registry's address.\"},\"OPERATOR_NETWORK_OPT_IN_SERVICE()\":{\"notice\":\"Get the operator-network opt-in service's address.\"},\"OPERATOR_VAULT_OPT_IN_SERVICE()\":{\"notice\":\"Get the operator-vault opt-in service's address.\"},\"TYPE()\":{\"notice\":\"Get the entity's type.\"},\"VAULT_FACTORY()\":{\"notice\":\"Get the vault factory's address.\"},\"VERSION()\":{\"notice\":\"Get a version of the delegator (different versions mean different interfaces).\"},\"hook()\":{\"notice\":\"Get the hook's address.\"},\"initialize(bytes)\":{\"notice\":\"Initialize this entity contract by using a given data.\"},\"maxNetworkLimit(bytes32)\":{\"notice\":\"Get a particular subnetwork's maximum limit (meaning the subnetwork is not ready to get more as a stake).\"},\"onSlash(bytes32,address,uint256,uint48,bytes)\":{\"notice\":\"Called when a slash happens.\"},\"setHook(address)\":{\"notice\":\"Set a new hook.\"},\"setMaxNetworkLimit(uint96,uint256)\":{\"notice\":\"Set a maximum limit for a subnetwork (how much stake the subnetwork is ready to get). identifier identifier of the subnetwork\"},\"stake(bytes32,address)\":{\"notice\":\"Get a stake that a given subnetwork will be able to slash for a certain operator until the end of the next epoch (if no cross-slashing and no slashings by the subnetwork).\"},\"stakeAt(bytes32,address,uint48,bytes)\":{\"notice\":\"Get a stake that a given subnetwork could be able to slash for a certain operator at a given timestamp until the end of the consequent epoch using hints (if no cross-slashing and no slashings by the subnetwork).\"},\"staticDelegateCall(address,bytes)\":{\"notice\":\"Make a delegatecall from this contract to a given target contract with a particular data (always reverts with a return data).\"},\"vault()\":{\"notice\":\"Get the vault's address.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/contracts/hints/DelegatorHints.sol\":\"BaseDelegatorHints\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol\":{\"keccak256\":\"0x6662ec4e5cefca03eeadd073e9469df8d2944bb2ee8ec8f7622c2c46aab5f225\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4d8544c6f8daa4d1bc215c6a72fe0acdb748664a105b0e5efc19295667521d45\",\"dweb:/ipfs/QmdGWqdnXT8S3RgCR6aV8XHZrsybieMQLLnug1NtpSjEXN\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0xc163fcf9bb10138631a9ba5564df1fa25db9adff73bd9ee868a8ae1858fe093a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9706d43a0124053d9880f6e31a59f31bc0a6a3dc1acd66ce0a16e1111658c5f6\",\"dweb:/ipfs/QmUFmfowzkRwGtDu36cXV9SPTBHJ3n7dG9xQiK5B28jTf2\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609\",\"dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9\",\"dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardUpgradeable.sol\":{\"keccak256\":\"0xb44e086e941292cdc7f440de51478493894ef0b1aeccb0c4047445919f667f74\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://942dad22fbdc1669f025540ba63aa3ccfad5f8458fc5d4525b31ebf272e7af45\",\"dweb:/ipfs/Qmdo4X2M82aM3AMoW2kf2jhYkSCyC4T1pHNd6obdsDFnAB\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol\":{\"keccak256\":\"0xdaba3f7c42c55b2896353f32bd27d4d5f8bae741b3b05d4c53f67abc4dc47ce8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1fa2e61141c602510bcd2cd936ed9561922ac8772a9b9c9a9db091a74e354a45\",\"dweb:/ipfs/QmcHQDDoEBwJmwUbzoVkytvJsBx3KVHYFFnDkvRGWh9Wmh\"]},\"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0xb6b36edd6a2999fd243ff226d6cbf84bd71af2432bbd0dfe19392996a1d9cb41\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1fd2f35495652e57e3f99bc6c510bc5f7dd398a176ea2e72d8ed730aebc6ca26\",\"dweb:/ipfs/QmTQV6X4gkikTib49cho5iDX3JvSQbdsoEChoDwrk3CbbH\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC1271.sol\":{\"keccak256\":\"0x85a45f3f10014a0f8be41157a32b6a5f905753ea64a4b64e29fc12b7deeecf39\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c3c74009ce36136b36c77c23935b8e4a7b4f253be2da2be4fb4a916b1ce43743\",\"dweb:/ipfs/QmcH36v3iN7SJJuF73AunLR2LtNxhVJ1wm63ph4dPZ4pcL\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC5267.sol\":{\"keccak256\":\"0x92aa1df62dc3d33f1656d63bede0923e0df0b706ad4137c8b10b0a8fe549fd92\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c5c0f29195ad64cbe556da8e257dac8f05f78c53f90323c0d2accf8e6922d33a\",\"dweb:/ipfs/QmQ61TED8uaCZwcbh8KkgRSsCav7x7HbcGHwHts3U4DmUP\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c\",\"dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0x6008dabfe393240d73d7dd7688033f72740d570aa422254d29a7dce8568f3aff\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f5196ec75139918c6c7bb4251b36395e668f1fa6d206beba7e7520e74913940d\",\"dweb:/ipfs/QmSyqjksXxmm2mCG6qRd1yuwLykypkSVBbnBnGqJRcuJMi\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x37bb49513c49c87c4642a891b13b63571bc87013dde806617aa1efb54605f386\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b3036b3a83b7c48f96641f2a9002b9f2dcb6a5958dd670894ada21ae8229b3d0\",\"dweb:/ipfs/QmUNfSBdoVtjhETaUJCYcaC7pTMgbhht926tJ2uXJbiVd3\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0xaf28a975a78550e45f65e559a3ad6a5ad43b9b8a37366999abd1b7084eb70721\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b7bd24e224f67f65bfadf85dc2929fa965456bb2415478bd0125471b5ce35245\",\"dweb:/ipfs/QmRaydGr8BTHs1kvaZfsNU69pKzUAGFrvABn1KiRSbE51y\"]},\"lib/openzeppelin-contracts/contracts/utils/ShortStrings.sol\":{\"keccak256\":\"0x18a7171df639a934592915a520ecb97c5bbc9675a1105607aac8a94e72bf62c6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7478e1f13da69a2867ccd883001d836b75620362e743f196376d63ed0c422a1c\",\"dweb:/ipfs/QmWywcQ9TNfwtoqAxbn25d8C5VrV12PrPS9UjtGe6pL2BA\"]},\"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0x32ba59b4b7299237c8ba56319110989d7978a039faf754793064e967e5894418\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1ae50c8b562427df610cc4540c9bf104acca7ef8e2dcae567ae7e52272281e9c\",\"dweb:/ipfs/QmTHiadFCSJUPpRjNegc5SahmeU8bAoY8i9Aq6tVscbcKR\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0x55f102ea785d8399c0e58d1108e2d289506dde18abc6db1b7f68c1f9f9bc5792\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e52e0a7765c943ef14e5bcf11e46e6139fa044be564881378349236bf2e3453\",\"dweb:/ipfs/QmZEeeXoFPW47amyP35gfzomF9DixqqTEPwzBakv6cZw6i\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0xeed0a08b0b091f528356cbc7245891a4c748682d4f6a18055e8e6ca77d12a6cf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba80ba06c8e6be852847e4c5f4492cef801feb6558ae09ed705ff2e04ea8b13c\",\"dweb:/ipfs/QmXRJDv3xHLVQCVXg1ZvR35QS9sij5y9NDWYzMfUfAdTHF\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/EIP712.sol\":{\"keccak256\":\"0x999f705a027ed6dc2d4e0df2cc4a509852c6bfd11de1c8161bf88832d0503fd0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0798def67258d9a3cc20b2b4da7ebf351a5cefe0abfdd665d2d81f8e32f89b21\",\"dweb:/ipfs/QmPEvJosnPfzHNjKvCv2D3891mA2Ww8eUwkqrxBjuYdHCt\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol\":{\"keccak256\":\"0xba333517a3add42cd35fe877656fc3dfcc9de53baa4f3aabbd6d12a92e4ea435\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2ceacff44c0fdc81e48e0e0b1db87a2076d3c1fb497341de077bf1da9f6b406c\",\"dweb:/ipfs/QmRUo1muMRAewxrKQ7TkXUtknyRoR57AyEkoPpiuZQ8FzX\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/SignatureChecker.sol\":{\"keccak256\":\"0x6b11eb41a228cca35d4b662b4df69fcd75192851365102690f57b2ac01e83fe6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ab006a2983ed350d2af21ddcdd835dcae3b8340086cc4d088460da5abd041f69\",\"dweb:/ipfs/QmbEacDhkJZiGrgzLjB4pNtE8Z1uudjDw1DvcDUTVQFsLG\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875\",\"dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0xe19a4d5f31d2861e7344e8e535e2feafb913d806d3e2b5fe7782741a2a7094fe\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4aed79c0fa6f0546ed02f2f683e8f77f0fd2ed7eb34d8bbf3d373c9a6d95b13c\",\"dweb:/ipfs/QmWqVz6UAVqmnWU5pqYPt1o6iDEZyPaBraAA3rKfTTSfYj\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x5f7e4076e175393767754387c962926577f1660dd9b810187b9002407656be72\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7d533a1c97cd43a57cd9c465f7ee8dd0e39ae93a8fb8ff8e5303a356b081cdcc\",\"dweb:/ipfs/QmVBEei6aTnvYNZp2CHYVNKyZS4q1KkjANfY39WVXZXVoT\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/Checkpoints.sol\":{\"keccak256\":\"0xbdc5e074d7dd6678f67e92b1a51a20226801a407b0e1af3da367c5d1ff4519ad\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a36cca6b22fff3db16fc789ff6c60eea71d4b156065d4d0c83a0bc5e91a77a8b\",\"dweb:/ipfs/QmYN3exd5AemxjBrN8XMB1p5LbbE16uC3sjbYjwi8AjcGR\"]},\"lib/openzeppelin-contracts/contracts/utils/types/Time.sol\":{\"keccak256\":\"0xc7755af115020049e4140f224f9ee88d7e1799ffb0646f37bf0df24bf6213f58\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7f09bf94d5274334ec021f61a04659db303f31e60460e14b709c9bf187740111\",\"dweb:/ipfs/QmNvgomZYUwFAt4cZbPWAiTeSZQreGehY9BK5xyVJsUttb\"]},\"src/contracts/common/Entity.sol\":{\"keccak256\":\"0x3d61a932995b8443381f3950542d388223a2c26dd5d29a3274dea3baa7388bd7\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://7cdf5f03ca72fd263fd32ff59c8d88ddca911ae83896a287d10772c1bbe9b138\",\"dweb:/ipfs/QmbP84r5BWT1Rn9AYTntWSf3xUMTTCohTZJFhbBhDXFoHa\"]},\"src/contracts/common/MigratableEntity.sol\":{\"keccak256\":\"0x2d736f4dacd5d7e7697503bc426c78b8250fe1694ca157965ec178da6807de58\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://f1237acf96b4b9f9b69156e068eddd726a6e15bd8e87a18dc999cd4ba4da069c\",\"dweb:/ipfs/QmS6M8fiFFSeuJ4ZKKq1z8W7w4ybeHQSy5TLASGoc1LVic\"]},\"src/contracts/common/StaticDelegateCallable.sol\":{\"keccak256\":\"0x350029aa8955eacaffffaeb58babc5c98e80ebc5c5db388ed17ee6465f4a9d90\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://eb392a8ee9050e0af606897df63e3404e3829e8b688b580663892f9664195764\",\"dweb:/ipfs/QmaXC8jqV8UrrAFkzXTEv2fJF56sy33HhLxAzaRZmUxuXD\"]},\"src/contracts/delegator/BaseDelegator.sol\":{\"keccak256\":\"0x7c54d491fdd4415b764a9c8defa068e56d4c0c8c9419be0053a1d377669290e8\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://9238bfbad0f6eeb0dc7727724de14380f1980b395902269703d5e2ef07e52e10\",\"dweb:/ipfs/QmPJn1V4HNXcEghYvogGuSTF24dSQUPosR5qtsXcmNqRm3\"]},\"src/contracts/delegator/FullRestakeDelegator.sol\":{\"keccak256\":\"0x0a81c4f8e72914563a9cb771e93acf889c71ea36b7bec040e4eb562b199d5af1\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://6fc66b6ba02da77046a0bbbd1dd407a62c08f52e04486c9cbd2cb1cca3da555f\",\"dweb:/ipfs/QmZQivK1ZnMxfRQQ5aLpV9co5u55wQVNev5Rg1hzAqxhkE\"]},\"src/contracts/delegator/NetworkRestakeDelegator.sol\":{\"keccak256\":\"0xd3a8e6522f9c6fdcc2da837c9023afd6bdff2bce45a35590320c475519e3636d\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://58b17a87f6554f08376f9ea7fedf486a4aa75801bf0ad8b23ff5a46959b6b7a3\",\"dweb:/ipfs/QmSTmNh67tYt8CmjVZb57r8N3qX5yeYdMApKPJm3qvQgQw\"]},\"src/contracts/delegator/OperatorNetworkSpecificDelegator.sol\":{\"keccak256\":\"0x031a10722b9ec49048f0952710401131290adb87e71caf294e864e7ac3b98a16\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://72428febc875134b2f29205e6f294634a1c22a7d5c78d6a9cb2f8196f107c9b5\",\"dweb:/ipfs/QmTPwXR6h5oytckmkLrHdKeEMdphJxceDhYUR4zvQeWAwY\"]},\"src/contracts/delegator/OperatorSpecificDelegator.sol\":{\"keccak256\":\"0x630ce62fa30b9f3349ab7a8cf8dbf041319febc6dd757be2f94d3d25944ed328\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://c2ac59d47ce57d2a6819ae9833e1a618a371eccff93eb5ab367b201b01f42bfa\",\"dweb:/ipfs/QmdBpGMBivpNPv2WbH8vnCUy5xkVeaxQvGgqi33vKCz1kA\"]},\"src/contracts/hints/DelegatorHints.sol\":{\"keccak256\":\"0x44aa0c396311a54afbc7c73e8dadeed41e3165a4fd13f712b27d63d50fc3376d\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://2f255214f3531fc707d88be0d56a7a0aed4180439316d099d760d9118aa83093\",\"dweb:/ipfs/QmZD1w5p1ukJSXumUAjvxwGmkPhn7vsr21Y2atLGEZR2oi\"]},\"src/contracts/hints/Hints.sol\":{\"keccak256\":\"0x8b565df1ae35993c097a9e642002782a8f451f6fd01809cad6bcd345bdf1b99c\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://99a19adb01e350a92f534095b3078229df1f2f83077992d75d58d8684be45971\",\"dweb:/ipfs/QmbmwcuswVbzvwHQFTtrJG86oV98GnfxqYTb8cV8u1acox\"]},\"src/contracts/hints/OptInServiceHints.sol\":{\"keccak256\":\"0x95d9407900d27b9f4a1233b772aeed809c07b2dc5b31cfc9fa77ca26514c49e5\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://a13a8877e312d7e6b8b85bde3668c5d84ff5ecc83f762cd573f2b7104c64eb42\",\"dweb:/ipfs/QmYV2J55acuGzCNnS3juABuUHY5U1xc8g8o9jwEyFFdeG5\"]},\"src/contracts/hints/VaultHints.sol\":{\"keccak256\":\"0xccb505b7159b769cc114d67b87c2de6b106557f667fc8f3780114baad5c3c442\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://6d0c80a908fc16e96a8b5605a0bd53f9e89ad0ef0a738fbbae80ba4d3160749b\",\"dweb:/ipfs/QmXo5UtWoR8YmunqcbBU8rQMm1nvmvjNPoXcVrDhh4pEwR\"]},\"src/contracts/libraries/Checkpoints.sol\":{\"keccak256\":\"0xba90097c8bfe0a975499428b5f8ac5569483c7d92ccc28c12d70de416aae040c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://12f5d93ca94cd06d3147db68993165a58e17903ed53682560de61f3085ad4609\",\"dweb:/ipfs/QmePiuAqvXprMLmFZkGZeGjvGPAvsEDHfCDv7BoQhXu9xE\"]},\"src/contracts/libraries/ERC4626Math.sol\":{\"keccak256\":\"0x8441160513c1cbeb1c3b9ee077bcc7e7ce20006b52a77c8dd39ff0ef89699939\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://943f8cc3e26ddf649f465f40c909819f5c864717c4baa339e9e403b9374a4653\",\"dweb:/ipfs/QmXPxi1sUDsrGprZdUgCzoPEosaZMv9ZhygWQ1vAi1phAB\"]},\"src/contracts/libraries/Subnetwork.sol\":{\"keccak256\":\"0xf5ef5506fd66082b3c2e7f3df37529f5a8efad32ac62e7c8914bd63219190bfe\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba031a54ee0d0e9a270c2b9e18437f5668cfeb659cfd5fe0677459d7fcac2a56\",\"dweb:/ipfs/QmReP3H7qQ78tAfgLnJKsNEQNCQfF1X1Get38Ffd4kzq32\"]},\"src/contracts/service/OptInService.sol\":{\"keccak256\":\"0x4e0932077f2686b7990e10d59deb2535334c0d09e52ef6e57c6ab09eca21c4b1\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://7c00d311032ed4a1743aca7475f3c86ce15cdfc2218108efc3731c03d34a5278\",\"dweb:/ipfs/QmUGGfVwVhaHr5kS4177yKKYiLYzi5qZpkEmvYxBZqazxf\"]},\"src/contracts/vault/Vault.sol\":{\"keccak256\":\"0x2ceff6ed3298c4cad144c99fcc79b51cb9397d6ebef00285b915848b476f8c2e\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://11f2fb3581854f3ab6e82e8d4935d9eb510c903a13c3f022346c2956a58f5307\",\"dweb:/ipfs/QmdUnoXoyYoG9SGWyQZCFyLDRUUX3eXyXetkRvw6jxqqBz\"]},\"src/contracts/vault/VaultStorage.sol\":{\"keccak256\":\"0x57db25b127d77ea3472de53e3a4af3354399655b9268638b99ca5925fa364a56\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://aa763d9a6ec508ae3abfb8228b72b9fd9525279e5135d4962e79ff059feb1173\",\"dweb:/ipfs/QmcbDR6E9wyEpu6V2FkEC4hnWy47zXA9LSKJde6zSGd33Q\"]},\"src/interfaces/common/IEntity.sol\":{\"keccak256\":\"0x8ef4b63d6da63489778ccd5f8d13ebdd527dd4b62730b2c616df5af7474d2d21\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a8d69576a9219d85c50816a18ad53a4d53cfcb27ed38b8cccc808dc2734b71b\",\"dweb:/ipfs/QmYVN3P4Q4REvBWJ97TbAcaxm3uyB2anV6NSGa6ZtSwcEv\"]},\"src/interfaces/common/IMigratableEntity.sol\":{\"keccak256\":\"0x8f5f2809f3afbe8ebfbb365dd7b57b4dd3b6f9943a6187eaf648d45895b8e3c4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ffe640537d539e7a4fde70d30d3e4c57f4ba9c2c25c450cea713aae38e8fd5c\",\"dweb:/ipfs/QmSUTGzvdcn1R1KB7tLThMRtESsfPbeXDhhhKWGtntzBds\"]},\"src/interfaces/common/IRegistry.sol\":{\"keccak256\":\"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014\",\"dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK\"]},\"src/interfaces/common/IStaticDelegateCallable.sol\":{\"keccak256\":\"0xa335d4e81b9071b7de66ef92b43ff20671d86516eb1be46fef29a3483cd3f5d5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d464b9db863c14c05547d2b23352f2e9b7b784799cf09f6bbc4906a2a74e3516\",\"dweb:/ipfs/QmUVWzFvJz7eEbDQKiFTTzwi7TEbjcs3VmwdM4kuptAKvi\"]},\"src/interfaces/delegator/IBaseDelegator.sol\":{\"keccak256\":\"0x96bb312f032e17accce3f8f80936d99468029d6b37c9ca74acdb4b026a0148ee\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2a66dcb5b7d1a6ef6a363431ea98ebd78bc4fdd3d7a134d9b542dc66e7d025c2\",\"dweb:/ipfs/QmRhTPLd2ZAyRHmJUFUcWKs9b3if49QY17LYZuRqWmghw8\"]},\"src/interfaces/delegator/IDelegatorHook.sol\":{\"keccak256\":\"0xc51aa8d7d1f6c8043ee819b7aeb86da0e993912e1442098df897e299f01f9f46\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://adddf5cb2ba282aeb576b26efb28640f865a1721cc9b6eee8b3ee0457a2c9780\",\"dweb:/ipfs/QmNYgAmnLRwWZbhTuQhZs9rx4zcme1df5mEepkrniorSoW\"]},\"src/interfaces/delegator/IFullRestakeDelegator.sol\":{\"keccak256\":\"0xa3c8cb2e45d4d8ce90e95263bea40c01dc400f05ad65bc29597d878606be5e7d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://782cf5e201aa4cca037ebafd3807a68ff1cc721d5b8416a35244db0d0607369e\",\"dweb:/ipfs/QmQkJks6x7CKndeTPa9LxgTNygD5uEi7obhADhpq1Lsr9A\"]},\"src/interfaces/delegator/INetworkRestakeDelegator.sol\":{\"keccak256\":\"0xe7030fe30389a147fd710e3436ec346b4842695fd3e65a81b95375c9f1d633fc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://739c7e66d301778054f5c90bee45ec9438f68afba8a03eaaac52064c73b115ad\",\"dweb:/ipfs/QmfZ2ytKcTykAc76nxhg8ikUXV8NdBpetqb8W4YWPcox1Z\"]},\"src/interfaces/delegator/IOperatorNetworkSpecificDelegator.sol\":{\"keccak256\":\"0x74b95e64d29769202d45dd277bb830f623ff3d41ce77b80ce3ee4e318a5c71ec\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e512b903aae5c1b8a028c6e3f4f6223b5cb5d704503cfa6bd37b5346868f5c20\",\"dweb:/ipfs/QmZim9YExsPWtyxyeui993HTKAEmrg8MUcSkZ77Gp2JcuZ\"]},\"src/interfaces/delegator/IOperatorSpecificDelegator.sol\":{\"keccak256\":\"0x72075cab585dc17240cc3e32bc99b92f0d5627ddd988fed680e3e1a52d5a01e4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7448bc90699409ae61d85216b5efc2143a37f0f73354be2aea993bc54afca441\",\"dweb:/ipfs/QmXE4gAxM8pHosZK8mcTcj17puBx484meDCcmrDePskGHZ\"]},\"src/interfaces/service/IOptInService.sol\":{\"keccak256\":\"0x76fb5460a6d87a5705433d4fbeff7253cd75b8bbd0c888b2088f16e86ace146a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://990322019b3d11465f7024bae77ccbf7e2fe5d6fa3c754584778f37d04fa1337\",\"dweb:/ipfs/QmaSNHzcqxTkUCG9a4nqVfLECHLdjdrwAnDi3yDC7tDL24\"]},\"src/interfaces/slasher/IBaseSlasher.sol\":{\"keccak256\":\"0x7c82528b445659c313ab77335c407b0b6efe5e79027187bb287f7bc74202b404\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0274c90aa5df1aa6bb470a6aab53992fb14fd7e5472c9430416505b29647d9cf\",\"dweb:/ipfs/QmckbmJLDetPemVzCnnGcKYWAZV2BRFXGDsjiaec8jkHxx\"]},\"src/interfaces/vault/IVault.sol\":{\"keccak256\":\"0xffee01d383cd4e1a5530c614bf4360c1ef070c288abec9da1eb531b51bc07235\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://04f0046cac285d8ec44ebbb1f79dc94fab4495767190cad8364fbc1fafaadfb9\",\"dweb:/ipfs/QmUawAunwzXfCyShWfhKeThAgKtqe51hmrxvrXvM772M2R\"]},\"src/interfaces/vault/IVaultStorage.sol\":{\"keccak256\":\"0x592626f13754194f83047135de19229c49390bd59e34659b1bb38be71d973a22\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://06a6a9dfddd05e580b32bebe2cff4f63ba26a653180676d58225dd30d9c89d3e\",\"dweb:/ipfs/QmdgzBeY6Sxo8mGtyBxtv1tM1c2kU6J6zjeRd7vuXm4DU6\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.25+commit.b61c2a91"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"optInServiceHints","type":"address"},{"internalType":"address","name":"vaultHints_","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"AccessControlBadConfirmation"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bytes32","name":"neededRole","type":"bytes32"}],"type":"error","name":"AccessControlUnauthorizedAccount"},{"inputs":[],"type":"error","name":"AlreadySet"},{"inputs":[],"type":"error","name":"ExternalCall"},{"inputs":[],"type":"error","name":"InsufficientHookGas"},{"inputs":[],"type":"error","name":"InvalidInitialization"},{"inputs":[],"type":"error","name":"NotInitialized"},{"inputs":[],"type":"error","name":"NotInitializing"},{"inputs":[],"type":"error","name":"NotNetwork"},{"inputs":[],"type":"error","name":"NotSlasher"},{"inputs":[],"type":"error","name":"NotVault"},{"inputs":[],"type":"error","name":"ReentrancyGuardReentrantCall"},{"inputs":[{"internalType":"uint64","name":"version","type":"uint64","indexed":false}],"type":"event","name":"Initialized","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32","indexed":true},{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false},{"internalType":"uint48","name":"captureTimestamp","type":"uint48","indexed":false}],"type":"event","name":"OnSlash","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"bytes32","name":"previousAdminRole","type":"bytes32","indexed":true},{"internalType":"bytes32","name":"newAdminRole","type":"bytes32","indexed":true}],"type":"event","name":"RoleAdminChanged","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"address","name":"sender","type":"address","indexed":true}],"type":"event","name":"RoleGranted","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"address","name":"sender","type":"address","indexed":true}],"type":"event","name":"RoleRevoked","anonymous":false},{"inputs":[{"internalType":"address","name":"hook","type":"address","indexed":true}],"type":"event","name":"SetHook","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"SetMaxNetworkLimit","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"DEFAULT_ADMIN_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"FACTORY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"FULL_RESTAKE_DELEGATOR_HINTS","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"HOOK_GAS_LIMIT","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"HOOK_RESERVE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"HOOK_SET_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"NETWORK_REGISTRY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"NETWORK_RESTAKE_DELEGATOR_HINTS","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"OPERATOR_NETWORK_OPT_IN_SERVICE","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"OPERATOR_VAULT_OPT_IN_SERVICE","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"OPT_IN_SERVICE_HINTS","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"TYPE","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"VAULT_FACTORY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"VERSION","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getRoleAdmin","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"grantRole"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"hasRole","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"hook","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"}],"stateMutability":"view","type":"function","name":"maxNetworkLimit","outputs":[{"internalType":"uint256","name":"value","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint48","name":"captureTimestamp","type":"uint48"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"onSlash"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"callerConfirmation","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"renounceRole"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"revokeRole"},{"inputs":[{"internalType":"address","name":"hook_","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setHook"},{"inputs":[{"internalType":"uint96","name":"identifier","type":"uint96"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setMaxNetworkLimit"},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"stake","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint48","name":"timestamp","type":"uint48"},{"internalType":"bytes","name":"hints","type":"bytes"}],"stateMutability":"view","type":"function","name":"stakeAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"delegator","type":"address"},{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint48","name":"timestamp","type":"uint48"}],"stateMutability":"view","type":"function","name":"stakeBaseHints","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"address","name":"delegator","type":"address"},{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint48","name":"timestamp","type":"uint48"}],"stateMutability":"view","type":"function","name":"stakeHints","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"staticDelegateCall"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"vault","outputs":[{"internalType":"address","name":"","type":"address"}]}],"devdoc":{"kind":"dev","methods":{"VERSION()":{"details":"Must return 1 for this one.","returns":{"_0":"version of the delegator"}},"getRoleAdmin(bytes32)":{"details":"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}."},"grantRole(bytes32,address)":{"details":"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event."},"hasRole(bytes32,address)":{"details":"Returns `true` if `account` has been granted `role`."},"initialize(bytes)":{"params":{"data":"some data to use"}},"onSlash(bytes32,address,uint256,uint48,bytes)":{"details":"Only the vault's slasher can call this function.","params":{"amount":"amount of the collateral slashed","captureTimestamp":"time point when the stake was captured","data":"some additional data","operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"}},"renounceRole(bytes32,address)":{"details":"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `callerConfirmation`. May emit a {RoleRevoked} event."},"revokeRole(bytes32,address)":{"details":"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event."},"setHook(address)":{"details":"Only a HOOK_SET_ROLE holder can call this function. The hook can have arbitrary logic under certain functions, however, it doesn't affect the stake guarantees.","params":{"hook":"address of the hook"}},"setMaxNetworkLimit(uint96,uint256)":{"details":"Only a network can call this function.","params":{"amount":"new maximum subnetwork's limit"}},"stake(bytes32,address)":{"details":"Warning: this function is not safe to use for stake capturing, as it can change by the end of the block.","params":{"operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"},"returns":{"_0":"slashable stake until the end of the next epoch"}},"stakeAt(bytes32,address,uint48,bytes)":{"details":"Warning: it is not safe to use timestamp >= current one for the stake capturing, as it can change later.","params":{"hints":"hints for the checkpoints' indexes","operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)","timestamp":"time point to capture the stake at"},"returns":{"_0":"slashable stake at the given timestamp until the end of the consequent epoch"}},"staticDelegateCall(address,bytes)":{"details":"It allows to use this contract's storage on-chain.","params":{"data":"data to make a delegatecall with","target":"address of the contract to make a delegatecall to"}},"supportsInterface(bytes4)":{"details":"See {IERC165-supportsInterface}."}},"version":1},"userdoc":{"kind":"user","methods":{"FACTORY()":{"notice":"Get the factory's address."},"HOOK_GAS_LIMIT()":{"notice":"Get a gas limit for the hook."},"HOOK_RESERVE()":{"notice":"Get a reserve gas between the gas limit check and the hook's execution."},"HOOK_SET_ROLE()":{"notice":"Get a hook setter's role."},"NETWORK_REGISTRY()":{"notice":"Get the network registry's address."},"OPERATOR_NETWORK_OPT_IN_SERVICE()":{"notice":"Get the operator-network opt-in service's address."},"OPERATOR_VAULT_OPT_IN_SERVICE()":{"notice":"Get the operator-vault opt-in service's address."},"TYPE()":{"notice":"Get the entity's type."},"VAULT_FACTORY()":{"notice":"Get the vault factory's address."},"VERSION()":{"notice":"Get a version of the delegator (different versions mean different interfaces)."},"hook()":{"notice":"Get the hook's address."},"initialize(bytes)":{"notice":"Initialize this entity contract by using a given data."},"maxNetworkLimit(bytes32)":{"notice":"Get a particular subnetwork's maximum limit (meaning the subnetwork is not ready to get more as a stake)."},"onSlash(bytes32,address,uint256,uint48,bytes)":{"notice":"Called when a slash happens."},"setHook(address)":{"notice":"Set a new hook."},"setMaxNetworkLimit(uint96,uint256)":{"notice":"Set a maximum limit for a subnetwork (how much stake the subnetwork is ready to get). identifier identifier of the subnetwork"},"stake(bytes32,address)":{"notice":"Get a stake that a given subnetwork will be able to slash for a certain operator until the end of the next epoch (if no cross-slashing and no slashings by the subnetwork)."},"stakeAt(bytes32,address,uint48,bytes)":{"notice":"Get a stake that a given subnetwork could be able to slash for a certain operator at a given timestamp until the end of the consequent epoch using hints (if no cross-slashing and no slashings by the subnetwork)."},"staticDelegateCall(address,bytes)":{"notice":"Make a delegatecall from this contract to a given target contract with a particular data (always reverts with a return data)."},"vault()":{"notice":"Get the vault's address."}},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/contracts/hints/DelegatorHints.sol":"BaseDelegatorHints"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol":{"keccak256":"0x6662ec4e5cefca03eeadd073e9469df8d2944bb2ee8ec8f7622c2c46aab5f225","urls":["bzz-raw://4d8544c6f8daa4d1bc215c6a72fe0acdb748664a105b0e5efc19295667521d45","dweb:/ipfs/QmdGWqdnXT8S3RgCR6aV8XHZrsybieMQLLnug1NtpSjEXN"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol":{"keccak256":"0xc163fcf9bb10138631a9ba5564df1fa25db9adff73bd9ee868a8ae1858fe093a","urls":["bzz-raw://9706d43a0124053d9880f6e31a59f31bc0a6a3dc1acd66ce0a16e1111658c5f6","dweb:/ipfs/QmUFmfowzkRwGtDu36cXV9SPTBHJ3n7dG9xQiK5B28jTf2"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b","urls":["bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609","dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol":{"keccak256":"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397","urls":["bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9","dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardUpgradeable.sol":{"keccak256":"0xb44e086e941292cdc7f440de51478493894ef0b1aeccb0c4047445919f667f74","urls":["bzz-raw://942dad22fbdc1669f025540ba63aa3ccfad5f8458fc5d4525b31ebf272e7af45","dweb:/ipfs/Qmdo4X2M82aM3AMoW2kf2jhYkSCyC4T1pHNd6obdsDFnAB"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol":{"keccak256":"0xdaba3f7c42c55b2896353f32bd27d4d5f8bae741b3b05d4c53f67abc4dc47ce8","urls":["bzz-raw://1fa2e61141c602510bcd2cd936ed9561922ac8772a9b9c9a9db091a74e354a45","dweb:/ipfs/QmcHQDDoEBwJmwUbzoVkytvJsBx3KVHYFFnDkvRGWh9Wmh"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol":{"keccak256":"0xb6b36edd6a2999fd243ff226d6cbf84bd71af2432bbd0dfe19392996a1d9cb41","urls":["bzz-raw://1fd2f35495652e57e3f99bc6c510bc5f7dd398a176ea2e72d8ed730aebc6ca26","dweb:/ipfs/QmTQV6X4gkikTib49cho5iDX3JvSQbdsoEChoDwrk3CbbH"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC1271.sol":{"keccak256":"0x85a45f3f10014a0f8be41157a32b6a5f905753ea64a4b64e29fc12b7deeecf39","urls":["bzz-raw://c3c74009ce36136b36c77c23935b8e4a7b4f253be2da2be4fb4a916b1ce43743","dweb:/ipfs/QmcH36v3iN7SJJuF73AunLR2LtNxhVJ1wm63ph4dPZ4pcL"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC5267.sol":{"keccak256":"0x92aa1df62dc3d33f1656d63bede0923e0df0b706ad4137c8b10b0a8fe549fd92","urls":["bzz-raw://c5c0f29195ad64cbe556da8e257dac8f05f78c53f90323c0d2accf8e6922d33a","dweb:/ipfs/QmQ61TED8uaCZwcbh8KkgRSsCav7x7HbcGHwHts3U4DmUP"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70","urls":["bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c","dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol":{"keccak256":"0x6008dabfe393240d73d7dd7688033f72740d570aa422254d29a7dce8568f3aff","urls":["bzz-raw://f5196ec75139918c6c7bb4251b36395e668f1fa6d206beba7e7520e74913940d","dweb:/ipfs/QmSyqjksXxmm2mCG6qRd1yuwLykypkSVBbnBnGqJRcuJMi"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0x37bb49513c49c87c4642a891b13b63571bc87013dde806617aa1efb54605f386","urls":["bzz-raw://b3036b3a83b7c48f96641f2a9002b9f2dcb6a5958dd670894ada21ae8229b3d0","dweb:/ipfs/QmUNfSBdoVtjhETaUJCYcaC7pTMgbhht926tJ2uXJbiVd3"],"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/ShortStrings.sol":{"keccak256":"0x18a7171df639a934592915a520ecb97c5bbc9675a1105607aac8a94e72bf62c6","urls":["bzz-raw://7478e1f13da69a2867ccd883001d836b75620362e743f196376d63ed0c422a1c","dweb:/ipfs/QmWywcQ9TNfwtoqAxbn25d8C5VrV12PrPS9UjtGe6pL2BA"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol":{"keccak256":"0x32ba59b4b7299237c8ba56319110989d7978a039faf754793064e967e5894418","urls":["bzz-raw://1ae50c8b562427df610cc4540c9bf104acca7ef8e2dcae567ae7e52272281e9c","dweb:/ipfs/QmTHiadFCSJUPpRjNegc5SahmeU8bAoY8i9Aq6tVscbcKR"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0x55f102ea785d8399c0e58d1108e2d289506dde18abc6db1b7f68c1f9f9bc5792","urls":["bzz-raw://6e52e0a7765c943ef14e5bcf11e46e6139fa044be564881378349236bf2e3453","dweb:/ipfs/QmZEeeXoFPW47amyP35gfzomF9DixqqTEPwzBakv6cZw6i"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol":{"keccak256":"0xeed0a08b0b091f528356cbc7245891a4c748682d4f6a18055e8e6ca77d12a6cf","urls":["bzz-raw://ba80ba06c8e6be852847e4c5f4492cef801feb6558ae09ed705ff2e04ea8b13c","dweb:/ipfs/QmXRJDv3xHLVQCVXg1ZvR35QS9sij5y9NDWYzMfUfAdTHF"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/EIP712.sol":{"keccak256":"0x999f705a027ed6dc2d4e0df2cc4a509852c6bfd11de1c8161bf88832d0503fd0","urls":["bzz-raw://0798def67258d9a3cc20b2b4da7ebf351a5cefe0abfdd665d2d81f8e32f89b21","dweb:/ipfs/QmPEvJosnPfzHNjKvCv2D3891mA2Ww8eUwkqrxBjuYdHCt"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol":{"keccak256":"0xba333517a3add42cd35fe877656fc3dfcc9de53baa4f3aabbd6d12a92e4ea435","urls":["bzz-raw://2ceacff44c0fdc81e48e0e0b1db87a2076d3c1fb497341de077bf1da9f6b406c","dweb:/ipfs/QmRUo1muMRAewxrKQ7TkXUtknyRoR57AyEkoPpiuZQ8FzX"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/SignatureChecker.sol":{"keccak256":"0x6b11eb41a228cca35d4b662b4df69fcd75192851365102690f57b2ac01e83fe6","urls":["bzz-raw://ab006a2983ed350d2af21ddcdd835dcae3b8340086cc4d088460da5abd041f69","dweb:/ipfs/QmbEacDhkJZiGrgzLjB4pNtE8Z1uudjDw1DvcDUTVQFsLG"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b","urls":["bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df","dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d","urls":["bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875","dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol":{"keccak256":"0xe19a4d5f31d2861e7344e8e535e2feafb913d806d3e2b5fe7782741a2a7094fe","urls":["bzz-raw://4aed79c0fa6f0546ed02f2f683e8f77f0fd2ed7eb34d8bbf3d373c9a6d95b13c","dweb:/ipfs/QmWqVz6UAVqmnWU5pqYPt1o6iDEZyPaBraAA3rKfTTSfYj"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0x5f7e4076e175393767754387c962926577f1660dd9b810187b9002407656be72","urls":["bzz-raw://7d533a1c97cd43a57cd9c465f7ee8dd0e39ae93a8fb8ff8e5303a356b081cdcc","dweb:/ipfs/QmVBEei6aTnvYNZp2CHYVNKyZS4q1KkjANfY39WVXZXVoT"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/Checkpoints.sol":{"keccak256":"0xbdc5e074d7dd6678f67e92b1a51a20226801a407b0e1af3da367c5d1ff4519ad","urls":["bzz-raw://a36cca6b22fff3db16fc789ff6c60eea71d4b156065d4d0c83a0bc5e91a77a8b","dweb:/ipfs/QmYN3exd5AemxjBrN8XMB1p5LbbE16uC3sjbYjwi8AjcGR"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/types/Time.sol":{"keccak256":"0xc7755af115020049e4140f224f9ee88d7e1799ffb0646f37bf0df24bf6213f58","urls":["bzz-raw://7f09bf94d5274334ec021f61a04659db303f31e60460e14b709c9bf187740111","dweb:/ipfs/QmNvgomZYUwFAt4cZbPWAiTeSZQreGehY9BK5xyVJsUttb"],"license":"MIT"},"src/contracts/common/Entity.sol":{"keccak256":"0x3d61a932995b8443381f3950542d388223a2c26dd5d29a3274dea3baa7388bd7","urls":["bzz-raw://7cdf5f03ca72fd263fd32ff59c8d88ddca911ae83896a287d10772c1bbe9b138","dweb:/ipfs/QmbP84r5BWT1Rn9AYTntWSf3xUMTTCohTZJFhbBhDXFoHa"],"license":"BUSL-1.1"},"src/contracts/common/MigratableEntity.sol":{"keccak256":"0x2d736f4dacd5d7e7697503bc426c78b8250fe1694ca157965ec178da6807de58","urls":["bzz-raw://f1237acf96b4b9f9b69156e068eddd726a6e15bd8e87a18dc999cd4ba4da069c","dweb:/ipfs/QmS6M8fiFFSeuJ4ZKKq1z8W7w4ybeHQSy5TLASGoc1LVic"],"license":"BUSL-1.1"},"src/contracts/common/StaticDelegateCallable.sol":{"keccak256":"0x350029aa8955eacaffffaeb58babc5c98e80ebc5c5db388ed17ee6465f4a9d90","urls":["bzz-raw://eb392a8ee9050e0af606897df63e3404e3829e8b688b580663892f9664195764","dweb:/ipfs/QmaXC8jqV8UrrAFkzXTEv2fJF56sy33HhLxAzaRZmUxuXD"],"license":"BUSL-1.1"},"src/contracts/delegator/BaseDelegator.sol":{"keccak256":"0x7c54d491fdd4415b764a9c8defa068e56d4c0c8c9419be0053a1d377669290e8","urls":["bzz-raw://9238bfbad0f6eeb0dc7727724de14380f1980b395902269703d5e2ef07e52e10","dweb:/ipfs/QmPJn1V4HNXcEghYvogGuSTF24dSQUPosR5qtsXcmNqRm3"],"license":"BUSL-1.1"},"src/contracts/delegator/FullRestakeDelegator.sol":{"keccak256":"0x0a81c4f8e72914563a9cb771e93acf889c71ea36b7bec040e4eb562b199d5af1","urls":["bzz-raw://6fc66b6ba02da77046a0bbbd1dd407a62c08f52e04486c9cbd2cb1cca3da555f","dweb:/ipfs/QmZQivK1ZnMxfRQQ5aLpV9co5u55wQVNev5Rg1hzAqxhkE"],"license":"BUSL-1.1"},"src/contracts/delegator/NetworkRestakeDelegator.sol":{"keccak256":"0xd3a8e6522f9c6fdcc2da837c9023afd6bdff2bce45a35590320c475519e3636d","urls":["bzz-raw://58b17a87f6554f08376f9ea7fedf486a4aa75801bf0ad8b23ff5a46959b6b7a3","dweb:/ipfs/QmSTmNh67tYt8CmjVZb57r8N3qX5yeYdMApKPJm3qvQgQw"],"license":"BUSL-1.1"},"src/contracts/delegator/OperatorNetworkSpecificDelegator.sol":{"keccak256":"0x031a10722b9ec49048f0952710401131290adb87e71caf294e864e7ac3b98a16","urls":["bzz-raw://72428febc875134b2f29205e6f294634a1c22a7d5c78d6a9cb2f8196f107c9b5","dweb:/ipfs/QmTPwXR6h5oytckmkLrHdKeEMdphJxceDhYUR4zvQeWAwY"],"license":"BUSL-1.1"},"src/contracts/delegator/OperatorSpecificDelegator.sol":{"keccak256":"0x630ce62fa30b9f3349ab7a8cf8dbf041319febc6dd757be2f94d3d25944ed328","urls":["bzz-raw://c2ac59d47ce57d2a6819ae9833e1a618a371eccff93eb5ab367b201b01f42bfa","dweb:/ipfs/QmdBpGMBivpNPv2WbH8vnCUy5xkVeaxQvGgqi33vKCz1kA"],"license":"BUSL-1.1"},"src/contracts/hints/DelegatorHints.sol":{"keccak256":"0x44aa0c396311a54afbc7c73e8dadeed41e3165a4fd13f712b27d63d50fc3376d","urls":["bzz-raw://2f255214f3531fc707d88be0d56a7a0aed4180439316d099d760d9118aa83093","dweb:/ipfs/QmZD1w5p1ukJSXumUAjvxwGmkPhn7vsr21Y2atLGEZR2oi"],"license":"BUSL-1.1"},"src/contracts/hints/Hints.sol":{"keccak256":"0x8b565df1ae35993c097a9e642002782a8f451f6fd01809cad6bcd345bdf1b99c","urls":["bzz-raw://99a19adb01e350a92f534095b3078229df1f2f83077992d75d58d8684be45971","dweb:/ipfs/QmbmwcuswVbzvwHQFTtrJG86oV98GnfxqYTb8cV8u1acox"],"license":"BUSL-1.1"},"src/contracts/hints/OptInServiceHints.sol":{"keccak256":"0x95d9407900d27b9f4a1233b772aeed809c07b2dc5b31cfc9fa77ca26514c49e5","urls":["bzz-raw://a13a8877e312d7e6b8b85bde3668c5d84ff5ecc83f762cd573f2b7104c64eb42","dweb:/ipfs/QmYV2J55acuGzCNnS3juABuUHY5U1xc8g8o9jwEyFFdeG5"],"license":"BUSL-1.1"},"src/contracts/hints/VaultHints.sol":{"keccak256":"0xccb505b7159b769cc114d67b87c2de6b106557f667fc8f3780114baad5c3c442","urls":["bzz-raw://6d0c80a908fc16e96a8b5605a0bd53f9e89ad0ef0a738fbbae80ba4d3160749b","dweb:/ipfs/QmXo5UtWoR8YmunqcbBU8rQMm1nvmvjNPoXcVrDhh4pEwR"],"license":"BUSL-1.1"},"src/contracts/libraries/Checkpoints.sol":{"keccak256":"0xba90097c8bfe0a975499428b5f8ac5569483c7d92ccc28c12d70de416aae040c","urls":["bzz-raw://12f5d93ca94cd06d3147db68993165a58e17903ed53682560de61f3085ad4609","dweb:/ipfs/QmePiuAqvXprMLmFZkGZeGjvGPAvsEDHfCDv7BoQhXu9xE"],"license":"MIT"},"src/contracts/libraries/ERC4626Math.sol":{"keccak256":"0x8441160513c1cbeb1c3b9ee077bcc7e7ce20006b52a77c8dd39ff0ef89699939","urls":["bzz-raw://943f8cc3e26ddf649f465f40c909819f5c864717c4baa339e9e403b9374a4653","dweb:/ipfs/QmXPxi1sUDsrGprZdUgCzoPEosaZMv9ZhygWQ1vAi1phAB"],"license":"MIT"},"src/contracts/libraries/Subnetwork.sol":{"keccak256":"0xf5ef5506fd66082b3c2e7f3df37529f5a8efad32ac62e7c8914bd63219190bfe","urls":["bzz-raw://ba031a54ee0d0e9a270c2b9e18437f5668cfeb659cfd5fe0677459d7fcac2a56","dweb:/ipfs/QmReP3H7qQ78tAfgLnJKsNEQNCQfF1X1Get38Ffd4kzq32"],"license":"MIT"},"src/contracts/service/OptInService.sol":{"keccak256":"0x4e0932077f2686b7990e10d59deb2535334c0d09e52ef6e57c6ab09eca21c4b1","urls":["bzz-raw://7c00d311032ed4a1743aca7475f3c86ce15cdfc2218108efc3731c03d34a5278","dweb:/ipfs/QmUGGfVwVhaHr5kS4177yKKYiLYzi5qZpkEmvYxBZqazxf"],"license":"BUSL-1.1"},"src/contracts/vault/Vault.sol":{"keccak256":"0x2ceff6ed3298c4cad144c99fcc79b51cb9397d6ebef00285b915848b476f8c2e","urls":["bzz-raw://11f2fb3581854f3ab6e82e8d4935d9eb510c903a13c3f022346c2956a58f5307","dweb:/ipfs/QmdUnoXoyYoG9SGWyQZCFyLDRUUX3eXyXetkRvw6jxqqBz"],"license":"BUSL-1.1"},"src/contracts/vault/VaultStorage.sol":{"keccak256":"0x57db25b127d77ea3472de53e3a4af3354399655b9268638b99ca5925fa364a56","urls":["bzz-raw://aa763d9a6ec508ae3abfb8228b72b9fd9525279e5135d4962e79ff059feb1173","dweb:/ipfs/QmcbDR6E9wyEpu6V2FkEC4hnWy47zXA9LSKJde6zSGd33Q"],"license":"BUSL-1.1"},"src/interfaces/common/IEntity.sol":{"keccak256":"0x8ef4b63d6da63489778ccd5f8d13ebdd527dd4b62730b2c616df5af7474d2d21","urls":["bzz-raw://5a8d69576a9219d85c50816a18ad53a4d53cfcb27ed38b8cccc808dc2734b71b","dweb:/ipfs/QmYVN3P4Q4REvBWJ97TbAcaxm3uyB2anV6NSGa6ZtSwcEv"],"license":"MIT"},"src/interfaces/common/IMigratableEntity.sol":{"keccak256":"0x8f5f2809f3afbe8ebfbb365dd7b57b4dd3b6f9943a6187eaf648d45895b8e3c4","urls":["bzz-raw://0ffe640537d539e7a4fde70d30d3e4c57f4ba9c2c25c450cea713aae38e8fd5c","dweb:/ipfs/QmSUTGzvdcn1R1KB7tLThMRtESsfPbeXDhhhKWGtntzBds"],"license":"MIT"},"src/interfaces/common/IRegistry.sol":{"keccak256":"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb","urls":["bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014","dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK"],"license":"MIT"},"src/interfaces/common/IStaticDelegateCallable.sol":{"keccak256":"0xa335d4e81b9071b7de66ef92b43ff20671d86516eb1be46fef29a3483cd3f5d5","urls":["bzz-raw://d464b9db863c14c05547d2b23352f2e9b7b784799cf09f6bbc4906a2a74e3516","dweb:/ipfs/QmUVWzFvJz7eEbDQKiFTTzwi7TEbjcs3VmwdM4kuptAKvi"],"license":"MIT"},"src/interfaces/delegator/IBaseDelegator.sol":{"keccak256":"0x96bb312f032e17accce3f8f80936d99468029d6b37c9ca74acdb4b026a0148ee","urls":["bzz-raw://2a66dcb5b7d1a6ef6a363431ea98ebd78bc4fdd3d7a134d9b542dc66e7d025c2","dweb:/ipfs/QmRhTPLd2ZAyRHmJUFUcWKs9b3if49QY17LYZuRqWmghw8"],"license":"MIT"},"src/interfaces/delegator/IDelegatorHook.sol":{"keccak256":"0xc51aa8d7d1f6c8043ee819b7aeb86da0e993912e1442098df897e299f01f9f46","urls":["bzz-raw://adddf5cb2ba282aeb576b26efb28640f865a1721cc9b6eee8b3ee0457a2c9780","dweb:/ipfs/QmNYgAmnLRwWZbhTuQhZs9rx4zcme1df5mEepkrniorSoW"],"license":"MIT"},"src/interfaces/delegator/IFullRestakeDelegator.sol":{"keccak256":"0xa3c8cb2e45d4d8ce90e95263bea40c01dc400f05ad65bc29597d878606be5e7d","urls":["bzz-raw://782cf5e201aa4cca037ebafd3807a68ff1cc721d5b8416a35244db0d0607369e","dweb:/ipfs/QmQkJks6x7CKndeTPa9LxgTNygD5uEi7obhADhpq1Lsr9A"],"license":"MIT"},"src/interfaces/delegator/INetworkRestakeDelegator.sol":{"keccak256":"0xe7030fe30389a147fd710e3436ec346b4842695fd3e65a81b95375c9f1d633fc","urls":["bzz-raw://739c7e66d301778054f5c90bee45ec9438f68afba8a03eaaac52064c73b115ad","dweb:/ipfs/QmfZ2ytKcTykAc76nxhg8ikUXV8NdBpetqb8W4YWPcox1Z"],"license":"MIT"},"src/interfaces/delegator/IOperatorNetworkSpecificDelegator.sol":{"keccak256":"0x74b95e64d29769202d45dd277bb830f623ff3d41ce77b80ce3ee4e318a5c71ec","urls":["bzz-raw://e512b903aae5c1b8a028c6e3f4f6223b5cb5d704503cfa6bd37b5346868f5c20","dweb:/ipfs/QmZim9YExsPWtyxyeui993HTKAEmrg8MUcSkZ77Gp2JcuZ"],"license":"MIT"},"src/interfaces/delegator/IOperatorSpecificDelegator.sol":{"keccak256":"0x72075cab585dc17240cc3e32bc99b92f0d5627ddd988fed680e3e1a52d5a01e4","urls":["bzz-raw://7448bc90699409ae61d85216b5efc2143a37f0f73354be2aea993bc54afca441","dweb:/ipfs/QmXE4gAxM8pHosZK8mcTcj17puBx484meDCcmrDePskGHZ"],"license":"MIT"},"src/interfaces/service/IOptInService.sol":{"keccak256":"0x76fb5460a6d87a5705433d4fbeff7253cd75b8bbd0c888b2088f16e86ace146a","urls":["bzz-raw://990322019b3d11465f7024bae77ccbf7e2fe5d6fa3c754584778f37d04fa1337","dweb:/ipfs/QmaSNHzcqxTkUCG9a4nqVfLECHLdjdrwAnDi3yDC7tDL24"],"license":"MIT"},"src/interfaces/slasher/IBaseSlasher.sol":{"keccak256":"0x7c82528b445659c313ab77335c407b0b6efe5e79027187bb287f7bc74202b404","urls":["bzz-raw://0274c90aa5df1aa6bb470a6aab53992fb14fd7e5472c9430416505b29647d9cf","dweb:/ipfs/QmckbmJLDetPemVzCnnGcKYWAZV2BRFXGDsjiaec8jkHxx"],"license":"MIT"},"src/interfaces/vault/IVault.sol":{"keccak256":"0xffee01d383cd4e1a5530c614bf4360c1ef070c288abec9da1eb531b51bc07235","urls":["bzz-raw://04f0046cac285d8ec44ebbb1f79dc94fab4495767190cad8364fbc1fafaadfb9","dweb:/ipfs/QmUawAunwzXfCyShWfhKeThAgKtqe51hmrxvrXvM772M2R"],"license":"MIT"},"src/interfaces/vault/IVaultStorage.sol":{"keccak256":"0x592626f13754194f83047135de19229c49390bd59e34659b1bb38be71d973a22","urls":["bzz-raw://06a6a9dfddd05e580b32bebe2cff4f63ba26a653180676d58225dd30d9c89d3e","dweb:/ipfs/QmdgzBeY6Sxo8mGtyBxtv1tM1c2kU6J6zjeRd7vuXm4DU6"],"license":"MIT"}},"version":1},"id":81} \ No newline at end of file diff --git a/out/DelegatorHints.sol/FullRestakeDelegatorHints.json b/out/DelegatorHints.sol/FullRestakeDelegatorHints.json index 4ecc0c27..6f78b64a 100644 --- a/out/DelegatorHints.sol/FullRestakeDelegatorHints.json +++ b/out/DelegatorHints.sol/FullRestakeDelegatorHints.json @@ -1 +1 @@ -{"abi":[{"type":"constructor","inputs":[{"name":"baseDelegatorHints","type":"address","internalType":"address"},{"name":"vaultHints","type":"address","internalType":"address"},{"name":"optInServiceHints","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"BASE_DELEGATOR_HINTS","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"DEFAULT_ADMIN_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"FACTORY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"HOOK_GAS_LIMIT","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"HOOK_RESERVE","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"HOOK_SET_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"NETWORK_LIMIT_SET_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"NETWORK_REGISTRY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"OPERATOR_NETWORK_LIMIT_SET_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"OPERATOR_NETWORK_OPT_IN_SERVICE","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"OPERATOR_VAULT_OPT_IN_SERVICE","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"OPT_IN_SERVICE_HINTS","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"TYPE","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"VAULT_FACTORY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"VAULT_HINTS","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"VERSION","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"pure"},{"type":"function","name":"getRoleAdmin","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"grantRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"hasRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"hook","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"initialize","inputs":[{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"maxNetworkLimit","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"value","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"networkLimit","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"networkLimitAt","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"timestamp","type":"uint48","internalType":"uint48"},{"name":"hint","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"networkLimitHint","inputs":[{"name":"delegator","type":"address","internalType":"address"},{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"timestamp","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"networkLimitHintInternal","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"timestamp","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"exists","type":"bool","internalType":"bool"},{"name":"hint","type":"uint32","internalType":"uint32"}],"stateMutability":"view"},{"type":"function","name":"onSlash","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"captureTimestamp","type":"uint48","internalType":"uint48"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"operatorNetworkLimit","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"operatorNetworkLimitAt","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"timestamp","type":"uint48","internalType":"uint48"},{"name":"hint","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"operatorNetworkLimitHint","inputs":[{"name":"delegator","type":"address","internalType":"address"},{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"timestamp","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"operatorNetworkLimitHintInternal","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"timestamp","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"exists","type":"bool","internalType":"bool"},{"name":"hint","type":"uint32","internalType":"uint32"}],"stateMutability":"view"},{"type":"function","name":"renounceRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"callerConfirmation","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"revokeRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setHook","inputs":[{"name":"hook_","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setMaxNetworkLimit","inputs":[{"name":"identifier","type":"uint96","internalType":"uint96"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setNetworkLimit","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setOperatorNetworkLimit","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"stake","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"stakeAt","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"timestamp","type":"uint48","internalType":"uint48"},{"name":"hints","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"stakeHints","inputs":[{"name":"delegator","type":"address","internalType":"address"},{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"timestamp","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"staticDelegateCall","inputs":[{"name":"target","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"vault","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"OnSlash","inputs":[{"name":"subnetwork","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"captureTimestamp","type":"uint48","indexed":false,"internalType":"uint48"}],"anonymous":false},{"type":"event","name":"RoleAdminChanged","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"previousAdminRole","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"newAdminRole","type":"bytes32","indexed":true,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"RoleGranted","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"sender","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"RoleRevoked","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"sender","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"SetHook","inputs":[{"name":"hook","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"SetMaxNetworkLimit","inputs":[{"name":"subnetwork","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"SetNetworkLimit","inputs":[{"name":"subnetwork","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"SetOperatorNetworkLimit","inputs":[{"name":"subnetwork","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"error","name":"AccessControlBadConfirmation","inputs":[]},{"type":"error","name":"AccessControlUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"neededRole","type":"bytes32","internalType":"bytes32"}]},{"type":"error","name":"AlreadySet","inputs":[]},{"type":"error","name":"CheckpointUnorderedInsertion","inputs":[]},{"type":"error","name":"DuplicateRoleHolder","inputs":[]},{"type":"error","name":"ExceedsMaxNetworkLimit","inputs":[]},{"type":"error","name":"ExternalCall","inputs":[]},{"type":"error","name":"InsufficientHookGas","inputs":[]},{"type":"error","name":"InvalidInitialization","inputs":[]},{"type":"error","name":"MissingRoleHolders","inputs":[]},{"type":"error","name":"NotInitialized","inputs":[]},{"type":"error","name":"NotInitializing","inputs":[]},{"type":"error","name":"NotNetwork","inputs":[]},{"type":"error","name":"NotSlasher","inputs":[]},{"type":"error","name":"NotVault","inputs":[]},{"type":"error","name":"ReentrancyGuardReentrantCall","inputs":[]},{"type":"error","name":"SafeCastOverflowedUintDowncast","inputs":[{"name":"bits","type":"uint8","internalType":"uint8"},{"name":"value","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ZeroAddressRoleHolder","inputs":[]}],"bytecode":{"object":"0x6101c0346101c857601f61357838819003918201601f19168301916001600160401b0391828411858510176101cc5781606092869260409687528339810103126101c85761004c836101e0565b926100648361005d602084016101e0565b92016101e0565b91306080527ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a009081549060ff82871c166101b7578080831603610173575b5050505f60a0525f60c0525f60e052610100935f8552610120935f8552610140905f82526101609283526101809384526101a0948552519461338396876101f58839608051878181610696015261148c015260a0518761092d015260c0518761114b015260e0518781816107a101526111840152518681816104e2015261266601525185818161064c01528181611be00152611d0f01525184818161071f01528181611b470152611d8d015251838181610ebc015261179a015251828181610c8f015261183b0152518161104f0152f35b6001600160401b0319909116811790915583519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a15f80806100a2565b855163f92ee8a960e01b8152600490fd5b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b51906001600160a01b03821682036101c85756fe60806040526004361015610011575f80fd5b5f3560e01c806301ffc9a7146102c4578063020cf0c2146102bf57806302145348146102ba578063103f2907146102b557806310a28b5d146102b057806311422095146102ab578063128e5d82146102a6578063197aa7ea146102a15780631a80e5001461029c57806323f752d514610297578063248a9ca31461029257806325dc97081461028d5780632dd31000146102885780632f2ff15d1461028357806336568abe1461027e5780633dfd3873146102795780633eb22c0f14610274578063439fab911461026f57806345e78fcb1461026a578063518504ba14610265578063557cab44146102605780635d32a1c91461025b5780636679191e1461025657806379d89614146102515780637d24bb271461024c5780637f5a7c7b1461024757806391d148541461024257806394d2558a1461023d5780639b656b22146102385780639f86fd8514610233578063a217fddf1461022e578063bb24fe8a14610229578063c0cd7c3e14610224578063d15b740e1461021f578063d547741f1461021a578063da749d2b14610215578063e02f693714610210578063e49561ee1461020b578063f7b0554714610206578063fbfa77cf14610201578063fd4d447c146101fc578063ff54740f146101f75763ffa1ad74146101f2575f80fd5b611557565b61153a565b611510565b6114e9565b611465565b61127a565b61125e565b611229565b6111dd565b6111b3565b61116f565b61112c565b611112565b61107e565b61103a565b610ffc565b610f4c565b610f24565b610eeb565b610ea7565b610e6d565b610e1c565b610cf8565b610cbe565b610c7a565b610b42565b610aec565b6109f3565b6109a8565b61095c565b610918565b6108fb565b6108c2565b61074e565b61070a565b61067b565b610637565b6105e8565b6105b3565b6104cd565b610410565b61032f565b3461031a57602036600319011261031a5760043563ffffffff60e01b811680910361031a57602090637965db0b60e01b8114908115610309575b506040519015158152f35b6301ffc9a760e01b1490505f6102fe565b5f80fd5b6001600160a01b0381160361031a57565b3461031a57606036600319011261031a5760243560043561034f8261031e565b6044359161035b611e02565b815f526004602052826103896103848360405f209060018060a01b03165f5260205260405f2090565b6120b3565b146103fe5760207ffc9545f07ffadfb668efd0144cdcaf2d6e2c8192dce1ea9fc131934f9c90fc7e91835f52600482526103e9856103da8360405f209060018060a01b03165f5260205260405f2090565b6103e342612b0e565b90611f58565b50506040519485526001600160a01b031693a3005b60405163a741a04560e01b8152600490fd5b3461031a5760408060031936011261031a576004359060243590610432611e5f565b825f526002602052805f205482116104bd57825f52600360205281610458825f206120b3565b146104ad57816104a8916104987e899d104fc3d8820bd96540612bcc5c448c8837b13b9f7faa43ad0728f0c14f946103da875f52600360205260405f2090565b5050519081529081906020820190565b0390a2005b5163a741a04560e01b8152600490fd5b51631eefc06360e31b8152600490fd5b3461031a575f36600319011261031a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b6024359065ffffffffffff8216820361031a57565b6044359065ffffffffffff8216820361031a57565b6064359065ffffffffffff8216820361031a57565b608090600319011261031a576004356105688161031e565b90602435906044356105798161031e565b9060643565ffffffffffff8116810361031a5790565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b3461031a576105e46105d06105c736610550565b929190916115b1565b60405191829160208352602083019061058f565b0390f35b3461031a57604036600319011261031a57602061062f61038460243561060d8161031e565b6004355f526004845260405f209060018060a01b03165f5260205260405f2090565b604051908152f35b3461031a575f36600319011261031a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461031a57604036600319011261031a57610694610511565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633036106f8576106db906004355f52600360205260405f20612124565b60408051941515855263ffffffff91909116602085015292915050f35b604051637ca475e560e11b8152600490fd5b3461031a575f36600319011261031a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461031a57604036600319011261031a576004356001600160601b038116810361031a576024359061077e612229565b6040516302910f8b60e31b81523360048201526020816024816001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165afa9081156108bd575f9161088e575b501561087c576001600160601b03166bffffffffffffffffffffffff193360601b16179080610808835f52600260205260405f2090565b54146103fe57610861817fc67e7929681aa1bccd63f52b3799bf5805f3009f197db6fdf584b14f7fbf608c92610846855f52600260205260405f2090565b556108518185612258565b6040519081529081906020820190565b0390a261087a60015f8051602061330e83398151915255565b005b6040516323d53b9760e21b8152600490fd5b6108b0915060203d6020116108b6575b6108a88183610d7e565b810190611649565b5f6107d1565b503d61089e565b61165d565b3461031a57602036600319011261031a576004355f525f805160206132ee8339815191526020526020600160405f200154604051908152f35b3461031a576105e46105d061090f36610550565b9291909161174e565b3461031a575f36600319011261031a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461031a57604036600319011261031a5761087a60243560043561097f8261031e565b805f525f805160206132ee8339815191526020526109a3600160405f200154611eb5565b612533565b3461031a57604036600319011261031a576024356109c58161031e565b336001600160a01b038216036109e15761087a90600435612569565b60405163334bd91960e11b8152600490fd5b3461031a57602036600319011261031a57600435610a108161031e565b610a18612229565b335f9081527f9ebbcbe0d2961d3fbe56ca6f679bc753bd848d3e6bb3eaf9041c51b286881d2c60205260409020547fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c9060ff1615610ace57506001546001600160a01b0391821691811682146103fe576001600160a01b03191681176001557f5bbb1d3ebb6a3ad2a0f17ff35e579a83af60604d1d3c2a4c83c62adecadf666d5f80a260015f8051602061330e83398151915255005b6044906040519063e2517d3f60e01b82523360048301526024820152fd5b3461031a57602036600319011261031a576004355f526003602052602061062f60405f206120b3565b9181601f8401121561031a578235916001600160401b03831161031a576020838186019501011161031a57565b3461031a57602036600319011261031a576001600160401b0360043581811161031a57610b73903690600401610b15565b5f8051602061332e833981519152549260ff8460401c1615931680159081610c72575b6001149081610c68575b159081610c5f575b50610c4d575f8051602061332e833981519152805467ffffffffffffffff19166001179055610bdb9183610c2957612631565b610be157005b5f8051602061332e833981519152805460ff60401b19169055604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a1005b5f8051602061332e833981519152805460ff60401b1916600160401b179055612631565b60405163f92ee8a960e01b8152600490fd5b9050155f610ba8565b303b159150610ba0565b849150610b96565b3461031a575f36600319011261031a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461031a575f36600319011261031a5760206040517f15e7c882d74e8821ebf34aaff46fd0e1d53b9393d91490019124113d28dc32a38152f35b3461031a575f36600319011261031a576020604051614e208152f35b634e487b7160e01b5f52604160045260245ffd5b604081019081106001600160401b03821117610d4357604052565b610d14565b606081019081106001600160401b03821117610d4357604052565b608081019081106001600160401b03821117610d4357604052565b90601f801991011681019081106001600160401b03821117610d4357604052565b60405190610dac82610d63565b565b60405190610dac82610d28565b6001600160401b038111610d4357601f01601f191660200190565b81601f8201121561031a57803590610ded82610dbb565b92610dfb6040519485610d7e565b8284526020838301011161031a57815f926020809301838601378301015290565b3461031a57606036600319011261031a57610e35610511565b6044356001600160401b03811161031a57602091610e5a61062f923690600401610dd6565b906004355f526003845260405f20612798565b3461031a575f36600319011261031a5760206040517fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c8152f35b3461031a575f36600319011261031a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461031a575f36600319011261031a5760206040517e8b9b1e5fa9cf3b14f87f435649268146305ddf689f082e5961a335b07a9abf8152f35b3461031a575f36600319011261031a576001546040516001600160a01b039091168152602090f35b3461031a57604036600319011261031a57602060ff610f9e602435610f708161031e565b6004355f525f805160206132ee833981519152845260405f209060018060a01b03165f5260205260405f2090565b54166040519015158152f35b90608060031983011261031a5760043591602435610fc78161031e565b9160443565ffffffffffff8116810361031a5791606435906001600160401b03821161031a57610ff991600401610dd6565b90565b3461031a57602061062f61103561101236610faa565b939190925f526004865260405f209060018060a01b03165f5260205260405f2090565b612798565b3461031a575f36600319011261031a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461031a57604036600319011261031a5760043561109b8161031e565b6024356001600160401b03811161031a575f916110bd83923690600401610b15565b90816040519283928337810184815203915af461110a6110db6119a3565b916110fc60405193849215156020840152604080840152606083019061058f565b03601f198101835282610d7e565b805190602001fd5b3461031a575f36600319011261031a5760206040515f8152f35b3461031a575f36600319011261031a5760206040516001600160401b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461031a575f36600319011261031a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461031a57602036600319011261031a576004355f526002602052602060405f2054604051908152f35b3461031a57604036600319011261031a5761087a6024356004356112008261031e565b805f525f805160206132ee833981519152602052611224600160405f200154611eb5565b612569565b3461031a57606036600319011261031a576105e46105d060043561124c8161031e565b611254610526565b90602435906119d2565b3461031a57602061062f61127136610faa565b92919091611ad1565b3461031a5760a036600319011261031a5760243560043561129a8261031e565b604435916112a661053b565b90608435906001600160401b03821161031a576112c860049236908401610dd6565b6112d0612229565b5f546020906112f5906112e9906001600160a01b031681565b6001600160a01b031690565b60405163b134427160e01b815294859182905afa9283156108bd575f93611434575b506001600160a01b039283163303611422576001546001600160a01b0316838116611397575b50506040805195865265ffffffffffff909316602086015216927f741a5de99085c0d660f3e4192217b0ffb0ea4e35a0480de48e857a4bc3ee36ed91819081015b0390a361087a60015f8051602061330e83398151915255565b9093604051946113ce866113c0602082019363724ab0f760e11b8552858c898d60248701611c5b565b03601f198101885287610d7e565b62042e305a10611410575f61137e938192827f741a5de99085c0d660f3e4192217b0ffb0ea4e35a0480de48e857a4bc3ee36ed9951926203d090f1509361133d565b604051638072475160e01b8152600490fd5b60405163dabc4ad960e01b8152600490fd5b61145791935060203d60201161145e575b61144f8183610d7e565b8101906116d3565b915f611317565b503d611445565b3461031a57606036600319011261031a576024356114828161031e565b61148a610526565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633036106f8576114e46106db926004355f52600460205260405f209060018060a01b03165f5260205260405f2090565b612124565b3461031a575f36600319011261031a575f546040516001600160a01b039091168152602090f35b3461031a57604036600319011261031a57602061062f6024356115328161031e565b600435611cd8565b3461031a575f36600319011261031a5760206040516203d0908152f35b3461031a575f36600319011261031a57602060405160018152f35b5190811515820361031a57565b519063ffffffff8216820361031a57565b919082604091031261031a57610ff960206115aa84611572565b930161157f565b91939265ffffffffffff906060956040519363f7b0554760e01b6020860152602485015260018060a01b031660448401521660648201526064815260a08101908082106001600160401b03831117610d4357611622926116139260405261201a565b60208082518301019101611590565b9061162a5750565b90915063ffffffff6040519116602082015260208152610ff981610d28565b9081602091031261031a57610ff990611572565b6040513d5f823e3d90fd5b81601f8201121561031a5780519061167f82610dbb565b9261168d6040519485610d7e565b8284526020838301011161031a57815f9260208093018386015e8301015290565b9060208282031261031a5781516001600160401b03811161031a57610ff99201611668565b9081602091031261031a5751610ff98161031e565b90610ff9916020815261170782516080602084015260a083019061058f565b906080606061173e61172b602087015195601f19968787830301604088015261058f565b604087015186868303018487015261058f565b940151928285030191015261058f565b604051630df8851f60e11b81526001600160a01b03828116600483015260248201849052848116604483015265ffffffffffff8616606483015295606095909491939091905f856084817f00000000000000000000000000000000000000000000000000000000000000008c165afa9485156108bd575f95611945575b5060405163fbfa77cf60e01b8152602081600481888d165afa9081156108bd57611837995f9286928491611926575b5060405163192c0ff760e21b81526001600160a01b03909116600482015265ffffffffffff909216602483015290998a9190829081906044820190565b03917f0000000000000000000000000000000000000000000000000000000000000000165afa9788156108bd575f986118fa575b50908161187d846118839594876119d2565b946115b1565b908251158015906118f0575b80156118e6575b80156118dc575b6118a957505050909150565b6110fc9450610ff993956118bb610d9f565b938452602084015260408301526060820152604051928391602083016116e8565b508151151561189d565b5080511515611896565b508551151561188f565b611883939291985061191d903d805f833e6119158183610d7e565b8101906116ae565b9790919261186b565b61193f915060203d60201161145e5761144f8183610d7e565b5f6117fa565b61195a9195503d805f833e6119158183610d7e565b935f6117cb565b90610ff992915f52600360205260405f20612798565b5f9081526004602090815260408083206001600160a01b03909416835292905220610ff9929190612798565b3d156119cd573d906119b482610dbb565b916119c26040519384610d7e565b82523d5f602084013e565b606090565b611622916116139194939465ffffffffffff60609660405193630cbd53f560e11b6020860152602485015216604483015260448252611a1082610d63565b61201a565b60405190611a2282610d28565b60606020838281520152565b9060208282031261031a5781516001600160401b039283821161031a57019060408282031261031a5760405192611a6484610d28565b825181811161031a5782611a79918501611668565b8452602083015190811161031a57611a919201611668565b602082015290565b6001600160a01b0391821681529116602082015265ffffffffffff9091166040820152608060608201819052610ff99291019061058f565b92611ae190929192828486612973565b929093611aec611a15565b93805180611c3f575b50508415938415611ba9575b8415611b18575b50505050611b135790565b505f90565b602080949550611b43910151604051958694859463530e1d4360e01b865260601c9060048601611a99565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa9081156108bd575f91611b8a575b50155f808080611b08565b611ba3915060203d6020116108b6576108a88183610d7e565b5f611b7f565b5f549094506001600160a01b0316602084865192611bdc604051948593849363530e1d4360e01b85528960048601611a99565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa9081156108bd575f91611c20575b501593611b01565b611c39915060203d6020116108b6576108a88183610d7e565b5f611c18565b611c53929550602080918301019101611a2e565b925f80611af5565b919360a093610ff9969565ffffffffffff938552600180871b031660208501526040840152166060820152816080820152019061058f565b634e487b7160e01b5f52601160045260245ffd5b8115611cb1570490565b634e487b7160e01b5f52601260045260245ffd5b9060018201809211611cd357565b611c93565b5f546040516308834cb560e21b8082526001600160a01b0385811660048401529283166024830152929392602092909183816044817f000000000000000000000000000000000000000000000000000000000000000086165afa9081156108bd575f91611de5575b5015918215611d61575b50509050611d5b57610ff991612a68565b50505f90565b6040519081526001600160a01b0385166004820152606086901c602482015291508290829060449082907f0000000000000000000000000000000000000000000000000000000000000000165afa9182156108bd575f92611dc8575b505015805f80611d4a565b611dde9250803d106108b6576108a88183610d7e565b5f80611dbd565b611dfc9150843d86116108b6576108a88183610d7e565b5f611d40565b335f9081527f24e48de785eeca8420b70f73d267a66970ccc187d459f2a4b53e74ed92a5ab86602052604090207f15e7c882d74e8821ebf34aaff46fd0e1d53b9393d91490019124113d28dc32a39060ff905b541615610ace5750565b335f9081527f72a65082a5691803ab2b62c9bc729b34205ba1b183d950896526b2fd8714d0c7602052604090207e8b9b1e5fa9cf3b14f87f435649268146305ddf689f082e5961a335b07a9abf9060ff90611e55565b5f8181525f805160206132ee83398151915260209081526040808320338452909152902060ff90611e55565b634e487b7160e01b5f52603260045260245ffd5b8054821015611f0a575f5260205f2001905f90565b611ee1565b90815491600160401b831015610d435782611f32916001610dac95018155611ef5565b90919082549060031b91821b915f19901b1916179055565b5f19810191908211611cd357565b90929192600182019081548015611fea575b5084611f7584612b40565b50949092845493611f85836120b3565b9681611fd5575b5015611fb2575050505f198101908111611cd357611f328591611fae93611ef5565b9190565b611fae949293611fce926001600160d01b0390911691906131a9565b5050611f0f565b65ffffffffffff83811691161490505f611f8c565b600160401b811015610d43578060016120069201845583611ef5565b8154905f199060031b1b191690555f611f6a565b5f9190829160405161204f816110fc6020820194639f86fd8560e01b865230602484015260406044840152606483019061058f565b51915afa5061205c6119a3565b8051810160408282031261031a5761207660208301611572565b916040810151916001600160401b03831161031a5761209c926020809201920101611668565b90156120a55790565b805190811561031a57602001fd5b8054806120e257505f5b6001600160d01b03811615611d5b5760016120d89201611ef5565b90549060031b1c90565b5f19908082810111611cd357825f5260205f2001015460301c6120bd565b9060405161210d81610d28565b915465ffffffffffff8116835260301c6020830152565b91908254905f8291600584116121c2575b612140935085612cc2565b9081156121b6576121af6121a66121a06120d861217261216d61216288611f4a565b895f5260205f200190565b612100565b966001612199602061218a8b5165ffffffffffff1690565b9a01516001600160d01b031690565b9101611ef5565b93611f4a565b63ffffffff1690565b6001939291565b5f925082915081908190565b91926121cd81612b8f565b8103908111611cd35761214093865f526122016121f68360205f200165ffffffffffff90541690565b65ffffffffffff1690565b65ffffffffffff85161015612217575091612135565b92915061222390611cc5565b90612135565b5f8051602061330e83398151915260028154146122465760029055565b604051633ee5aeb560e01b8152600490fd5b90815f52600360205260405f208161226f82612b40565b9193905083156122cd5761228f916001600160d01b031690600101611ef5565b90549060031b1c5b826122c3575b50506122a7575050565b6122bf915f52600360205260405f206103e342612b0e565b5050565b119050815f61229d565b50505f612297565b6001600160a01b0381165f9081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d60205260409020545f805160206132ee8339815191529060ff16611d5b575f808052602091825260408082206001600160a01b038516835290925220805460ff1916600117905533906001600160a01b03165f7f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d8180a4600190565b6001600160a01b0381165f9081527f9ebbcbe0d2961d3fbe56ca6f679bc753bd848d3e6bb3eaf9041c51b286881d2c602052604090207fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c905f805160206132ee8339815191529060ff905b541661244f575f828152602091825260408082206001600160a01b038616835290925220805460ff1916600117905533916001600160a01b0316907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d5f80a4600190565b5050505f90565b6001600160a01b0381165f9081527f72a65082a5691803ab2b62c9bc729b34205ba1b183d950896526b2fd8714d0c7602052604090207e8b9b1e5fa9cf3b14f87f435649268146305ddf689f082e5961a335b07a9abf905f805160206132ee8339815191529060ff906123eb565b6001600160a01b0381165f9081527f24e48de785eeca8420b70f73d267a66970ccc187d459f2a4b53e74ed92a5ab86602052604090207f15e7c882d74e8821ebf34aaff46fd0e1d53b9393d91490019124113d28dc32a3905f805160206132ee8339815191529060ff906123eb565b5f8181525f805160206132ee833981519152602081815260408084206001600160a01b038716855290915290912060ff906123eb565b5f8181525f805160206132ee833981519152602081815260408084206001600160a01b03871685529091529091205460ff161561244f575f828152602091825260408082206001600160a01b038616835290925220805460ff1916905533916001600160a01b0316907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b5f80a4600190565b91909160408184031261031a5780356126138161031e565b9260208201356001600160401b03811161031a57610ff99201610dd6565b61263d918101906125fb565b6040516302910f8b60e31b81526001600160a01b039283166004820181905291906020816024817f000000000000000000000000000000000000000000000000000000000000000088165afa9081156108bd575f91612750575b501561273e576126d26040916126cd612718946126b2612d24565b60018060a01b03166001600160601b0360a01b5f5416175f55565b612ea4565b6020810151600180546001600160a01b0319166001600160a01b0390921691909117905580516001600160a01b031684811661272e575b5001516001600160a01b031690565b9081166127225750565b61272b90612380565b50565b612737906122d5565b505f612709565b6040516362df054560e01b8152600490fd5b612769915060203d6020116108b6576108a88183610d7e565b5f612697565b9081602091031261031a57610ff99061157f565b90600163ffffffff80931601918211611cd357565b9180511561286657806020806127b39351830101910161276f565b916127be83826130d4565b926127cf845165ffffffffffff1690565b9065ffffffffffff808516921682811461285a5782119182612805575b50506127fc57610ff99250613004565b50506020015190565b9091506128128354611f4a565b63ffffffff83161491821561282b575b50505f806127ec565b6128529192506128466128406121f692612783565b856130d4565b5165ffffffffffff1690565b115f80612822565b50505050506020015190565b50610ff991613004565b60405190608082018281106001600160401b03821117610d4357604052606080838181528160208201528160408201520152565b9060208282031261031a5781516001600160401b039283821161031a57019060808282031261031a576128d5610d9f565b92825181811161031a57826128eb918501611668565b8452602083015181811161031a5782612905918501611668565b6020850152604083015181811161031a5782612922918501611668565b6040850152606083015190811161031a5761293d9201611668565b606082015290565b9081602091031261031a575190565b60409065ffffffffffff610ff99493168152816020820152019061058f565b9391909361297f612870565b93805180612a48575b50506129c992939460206129a86112e96112e95f5460018060a01b031690565b8188015190604051808098819463810da75d60e01b83528960048401612954565b03915afa9182156108bd57612a0a945f93612a0f575b50612a0490612a0493946129f860408a01518284611961565b9360608a015192611977565b9061313c565b915190565b612a04935090612a39612a049260203d602011612a41575b612a318183610d7e565b810190612945565b9350906129df565b503d612a27565b6129c994955090602080612a609383010191016128a4565b93925f612988565b5f5460405163bd49c35f60e01b8152929190602090849060049082906001600160a01b03165afa9081156108bd57610ff9935f92612ae3575b50612a04610384612a049394612ac2610384855f52600360205260405f2090565b935f52600460205260405f209060018060a01b03165f5260205260405f2090565b612a049250610384612b06612a049260203d602011612a4157612a318183610d7e565b935050612aa1565b65ffffffffffff90818111612b21571690565b604490604051906306dfcc6560e41b8252603060048301526024820152fd5b805480612b515750505f905f905f90565b5f19908082810111611cd357612b6e925f5260205f200101612100565b9065ffffffffffff82511691602060018060d01b0391015116906001929190565b8015611b135780612a04612c5a612c50612c46612c3c612c32612c28612c1e6001610ff99a5f908b60801c80612cb6575b508060401c80612ca9575b508060201c80612c9c575b508060101c80612c8f575b508060081c80612c82575b508060041c80612c75575b508060021c80612c68575b50821c612c61575b811c1b612c17818b611ca7565b0160011c90565b612c17818a611ca7565b612c178189611ca7565b612c178188611ca7565b612c178187611ca7565b612c178186611ca7565b612c178185611ca7565b8092611ca7565b8101612c0a565b600291509101905f612c02565b600491509101905f612bf7565b600891509101905f612bec565b601091509101905f612be1565b602091509101905f612bd6565b604091509101905f612bcb565b9150506080905f612bc0565b91905b838210612cd25750505090565b909192808316906001818518811c8301809311611cd357855f5265ffffffffffff808460205f20015416908516105f14612d11575050925b9190612cc5565b909493508101809111611cd35791612d0a565b612d2c6132bf565b612d346132bf565b60015f8051602061330e83398151915255565b60405190612d5482610d48565b5f6040838281528260208201520152565b81601f8201121561031a578051916020916001600160401b038411610d43578360051b9060405194612d9985840187610d7e565b8552838086019282010192831161031a578301905b828210612dbc575050505090565b8380918351612dca8161031e565b815201910190612dae565b9060208282031261031a5781516001600160401b039283821161031a5701908181039260a0841261031a57606060405194612e0f86610d48565b1261031a57604051612e2081610d48565b8351612e2b8161031e565b81526020840151612e3b8161031e565b60208201526040840151612e4e8161031e565b60408201528452606083015181811161031a5782612e6d918501612d65565b6020850152608083015190811161031a57612e889201612d65565b604082015290565b8051821015611f0a5760209160051b010190565b612ec090612eb0612d47565b5060208082518301019101612dd5565b8051519091906001600160a01b03161580612fea575b612fd8579060208101905f5b82518051821015612f5c576112e9612efd83612f0a93612e90565b516001600160a01b031690565b15612f4a57612f2c612f28612f23612efd848751612e90565b612456565b1590565b612f3857600101612ee2565b604051635140fefd60e11b8152600490fd5b6040516323cda06760e01b8152600490fd5b506040925050818101905f5b82518051821015612fcf576112e9612efd83612f8393612e90565b15612fbe57612fa1612f28612f9c612efd848751612e90565b6124c4565b612fad57600101612f68565b8351635140fefd60e11b8152600490fd5b83516323cda06760e01b8152600490fd5b50509150505190565b6040516303501f5960e11b8152600490fd5b506020820151511580612ed6575060408201515115612ed6565b908154905f82916005841161306e575b61301f935084612cc2565b8061304757505f905b6001600160d01b03821615611d5b57610ff99160016120d89201611ef5565b61306161305661306892611f4a565b835f5260205f200190565b5460301c90565b90613028565b919261307981612b8f565b8103908111611cd35761301f93855f5265ffffffffffff808360205f20015416908516105f146130aa575091613014565b9291506130b690611cc5565b90613014565b604051906130c982610d28565b5f6020838281520152565b906130fd6130f761311e926130e76130bc565b506130f06130bc565b5084611ef5565b50612100565b91600165ffffffffffff845116936020828060d01b03910151169101611ef5565b9054906040519261312e84610d28565b835260031b1c602082015290565b9080821015613149575090565b905090565b8054600160401b811015610d435761316b91600182018155611ef5565b61319657815160209092015160301b65ffffffffffff191665ffffffffffff92909216919091179055565b634e487b7160e01b5f525f60045260245ffd5b805492939291908215613296576131c561216d61305685611f4a565b906131d6825165ffffffffffff1690565b65ffffffffffff8481169116811061328457611fae9460209488926132046121f6875165ffffffffffff1690565b0361324c575061323e9261321a61322592611f4a565b905f5260205f200190565b9065ffffffffffff82549181199060301b169116179055565b01516001600160d01b031690565b91505061327f9161326c61325e610dae565b65ffffffffffff9093168352565b6001600160d01b0388168286015261314e565b61323e565b604051632520601d60e01b8152600490fd5b6132ba92506132a661325e610dae565b6001600160d01b038516602083015261314e565b5f9190565b60ff5f8051602061332e8339815191525460401c16156132db57565b604051631afcd79f60e31b8152600490fdfe02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268009b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a2646970667358221220b421717b7d05d309a1df30bec4959e6ea43c0ac83de4ab4b577f6f1e9cb2fa1664736f6c63430008190033","sourceMap":"7866:3473:86:-:0;;;;;;;;;;;;;-1:-1:-1;;7866:3473:86;;;;-1:-1:-1;;;;;7866:3473:86;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;:::i;:::-;348:4:87;;332:21;;8837:64:26;7866:3473:86;;;;;;;;;7896:76:26;;7866:3473:86;;;;7985:34:26;7981:146;;-1:-1:-1;525:17:74;;;-1:-1:-1;525:17:74;;-1:-1:-1;552:12:74;;-1:-1:-1;2360:34:81;;2404:28;;-1:-1:-1;2404:28:81;;2442:57;;-1:-1:-1;2442:57:81;;2509:61;;-1:-1:-1;2509:61:81;;8343:41:86;;;;8394:24;;;;8428:40;;;;7866:3473;;;;;;;;332:21:87;7866:3473:86;;;;;;;;;;525:17:74;7866:3473:86;;;;;552:12:74;7866:3473:86;;;;;2360:34:81;7866:3473:86;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7981:146:26;-1:-1:-1;;;;;;7866:3473:86;;;;;;;;;;;;;8087:29:26;;7866:3473:86;;8087:29:26;7981:146;;;;;7896:76;7866:3473:86;;-1:-1:-1;;;7938:23:26;;;;;7866:3473:86;-1:-1:-1;7866:3473:86;;;;;;-1:-1:-1;7866:3473:86;;;;;-1:-1:-1;7866:3473:86;;;;-1:-1:-1;;;;;7866:3473:86;;;;;;:::o","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361015610011575f80fd5b5f3560e01c806301ffc9a7146102c4578063020cf0c2146102bf57806302145348146102ba578063103f2907146102b557806310a28b5d146102b057806311422095146102ab578063128e5d82146102a6578063197aa7ea146102a15780631a80e5001461029c57806323f752d514610297578063248a9ca31461029257806325dc97081461028d5780632dd31000146102885780632f2ff15d1461028357806336568abe1461027e5780633dfd3873146102795780633eb22c0f14610274578063439fab911461026f57806345e78fcb1461026a578063518504ba14610265578063557cab44146102605780635d32a1c91461025b5780636679191e1461025657806379d89614146102515780637d24bb271461024c5780637f5a7c7b1461024757806391d148541461024257806394d2558a1461023d5780639b656b22146102385780639f86fd8514610233578063a217fddf1461022e578063bb24fe8a14610229578063c0cd7c3e14610224578063d15b740e1461021f578063d547741f1461021a578063da749d2b14610215578063e02f693714610210578063e49561ee1461020b578063f7b0554714610206578063fbfa77cf14610201578063fd4d447c146101fc578063ff54740f146101f75763ffa1ad74146101f2575f80fd5b611557565b61153a565b611510565b6114e9565b611465565b61127a565b61125e565b611229565b6111dd565b6111b3565b61116f565b61112c565b611112565b61107e565b61103a565b610ffc565b610f4c565b610f24565b610eeb565b610ea7565b610e6d565b610e1c565b610cf8565b610cbe565b610c7a565b610b42565b610aec565b6109f3565b6109a8565b61095c565b610918565b6108fb565b6108c2565b61074e565b61070a565b61067b565b610637565b6105e8565b6105b3565b6104cd565b610410565b61032f565b3461031a57602036600319011261031a5760043563ffffffff60e01b811680910361031a57602090637965db0b60e01b8114908115610309575b506040519015158152f35b6301ffc9a760e01b1490505f6102fe565b5f80fd5b6001600160a01b0381160361031a57565b3461031a57606036600319011261031a5760243560043561034f8261031e565b6044359161035b611e02565b815f526004602052826103896103848360405f209060018060a01b03165f5260205260405f2090565b6120b3565b146103fe5760207ffc9545f07ffadfb668efd0144cdcaf2d6e2c8192dce1ea9fc131934f9c90fc7e91835f52600482526103e9856103da8360405f209060018060a01b03165f5260205260405f2090565b6103e342612b0e565b90611f58565b50506040519485526001600160a01b031693a3005b60405163a741a04560e01b8152600490fd5b3461031a5760408060031936011261031a576004359060243590610432611e5f565b825f526002602052805f205482116104bd57825f52600360205281610458825f206120b3565b146104ad57816104a8916104987e899d104fc3d8820bd96540612bcc5c448c8837b13b9f7faa43ad0728f0c14f946103da875f52600360205260405f2090565b5050519081529081906020820190565b0390a2005b5163a741a04560e01b8152600490fd5b51631eefc06360e31b8152600490fd5b3461031a575f36600319011261031a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b6024359065ffffffffffff8216820361031a57565b6044359065ffffffffffff8216820361031a57565b6064359065ffffffffffff8216820361031a57565b608090600319011261031a576004356105688161031e565b90602435906044356105798161031e565b9060643565ffffffffffff8116810361031a5790565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b3461031a576105e46105d06105c736610550565b929190916115b1565b60405191829160208352602083019061058f565b0390f35b3461031a57604036600319011261031a57602061062f61038460243561060d8161031e565b6004355f526004845260405f209060018060a01b03165f5260205260405f2090565b604051908152f35b3461031a575f36600319011261031a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461031a57604036600319011261031a57610694610511565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633036106f8576106db906004355f52600360205260405f20612124565b60408051941515855263ffffffff91909116602085015292915050f35b604051637ca475e560e11b8152600490fd5b3461031a575f36600319011261031a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461031a57604036600319011261031a576004356001600160601b038116810361031a576024359061077e612229565b6040516302910f8b60e31b81523360048201526020816024816001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165afa9081156108bd575f9161088e575b501561087c576001600160601b03166bffffffffffffffffffffffff193360601b16179080610808835f52600260205260405f2090565b54146103fe57610861817fc67e7929681aa1bccd63f52b3799bf5805f3009f197db6fdf584b14f7fbf608c92610846855f52600260205260405f2090565b556108518185612258565b6040519081529081906020820190565b0390a261087a60015f8051602061330e83398151915255565b005b6040516323d53b9760e21b8152600490fd5b6108b0915060203d6020116108b6575b6108a88183610d7e565b810190611649565b5f6107d1565b503d61089e565b61165d565b3461031a57602036600319011261031a576004355f525f805160206132ee8339815191526020526020600160405f200154604051908152f35b3461031a576105e46105d061090f36610550565b9291909161174e565b3461031a575f36600319011261031a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461031a57604036600319011261031a5761087a60243560043561097f8261031e565b805f525f805160206132ee8339815191526020526109a3600160405f200154611eb5565b612533565b3461031a57604036600319011261031a576024356109c58161031e565b336001600160a01b038216036109e15761087a90600435612569565b60405163334bd91960e11b8152600490fd5b3461031a57602036600319011261031a57600435610a108161031e565b610a18612229565b335f9081527f9ebbcbe0d2961d3fbe56ca6f679bc753bd848d3e6bb3eaf9041c51b286881d2c60205260409020547fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c9060ff1615610ace57506001546001600160a01b0391821691811682146103fe576001600160a01b03191681176001557f5bbb1d3ebb6a3ad2a0f17ff35e579a83af60604d1d3c2a4c83c62adecadf666d5f80a260015f8051602061330e83398151915255005b6044906040519063e2517d3f60e01b82523360048301526024820152fd5b3461031a57602036600319011261031a576004355f526003602052602061062f60405f206120b3565b9181601f8401121561031a578235916001600160401b03831161031a576020838186019501011161031a57565b3461031a57602036600319011261031a576001600160401b0360043581811161031a57610b73903690600401610b15565b5f8051602061332e833981519152549260ff8460401c1615931680159081610c72575b6001149081610c68575b159081610c5f575b50610c4d575f8051602061332e833981519152805467ffffffffffffffff19166001179055610bdb9183610c2957612631565b610be157005b5f8051602061332e833981519152805460ff60401b19169055604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a1005b5f8051602061332e833981519152805460ff60401b1916600160401b179055612631565b60405163f92ee8a960e01b8152600490fd5b9050155f610ba8565b303b159150610ba0565b849150610b96565b3461031a575f36600319011261031a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461031a575f36600319011261031a5760206040517f15e7c882d74e8821ebf34aaff46fd0e1d53b9393d91490019124113d28dc32a38152f35b3461031a575f36600319011261031a576020604051614e208152f35b634e487b7160e01b5f52604160045260245ffd5b604081019081106001600160401b03821117610d4357604052565b610d14565b606081019081106001600160401b03821117610d4357604052565b608081019081106001600160401b03821117610d4357604052565b90601f801991011681019081106001600160401b03821117610d4357604052565b60405190610dac82610d63565b565b60405190610dac82610d28565b6001600160401b038111610d4357601f01601f191660200190565b81601f8201121561031a57803590610ded82610dbb565b92610dfb6040519485610d7e565b8284526020838301011161031a57815f926020809301838601378301015290565b3461031a57606036600319011261031a57610e35610511565b6044356001600160401b03811161031a57602091610e5a61062f923690600401610dd6565b906004355f526003845260405f20612798565b3461031a575f36600319011261031a5760206040517fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c8152f35b3461031a575f36600319011261031a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461031a575f36600319011261031a5760206040517e8b9b1e5fa9cf3b14f87f435649268146305ddf689f082e5961a335b07a9abf8152f35b3461031a575f36600319011261031a576001546040516001600160a01b039091168152602090f35b3461031a57604036600319011261031a57602060ff610f9e602435610f708161031e565b6004355f525f805160206132ee833981519152845260405f209060018060a01b03165f5260205260405f2090565b54166040519015158152f35b90608060031983011261031a5760043591602435610fc78161031e565b9160443565ffffffffffff8116810361031a5791606435906001600160401b03821161031a57610ff991600401610dd6565b90565b3461031a57602061062f61103561101236610faa565b939190925f526004865260405f209060018060a01b03165f5260205260405f2090565b612798565b3461031a575f36600319011261031a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461031a57604036600319011261031a5760043561109b8161031e565b6024356001600160401b03811161031a575f916110bd83923690600401610b15565b90816040519283928337810184815203915af461110a6110db6119a3565b916110fc60405193849215156020840152604080840152606083019061058f565b03601f198101835282610d7e565b805190602001fd5b3461031a575f36600319011261031a5760206040515f8152f35b3461031a575f36600319011261031a5760206040516001600160401b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461031a575f36600319011261031a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461031a57602036600319011261031a576004355f526002602052602060405f2054604051908152f35b3461031a57604036600319011261031a5761087a6024356004356112008261031e565b805f525f805160206132ee833981519152602052611224600160405f200154611eb5565b612569565b3461031a57606036600319011261031a576105e46105d060043561124c8161031e565b611254610526565b90602435906119d2565b3461031a57602061062f61127136610faa565b92919091611ad1565b3461031a5760a036600319011261031a5760243560043561129a8261031e565b604435916112a661053b565b90608435906001600160401b03821161031a576112c860049236908401610dd6565b6112d0612229565b5f546020906112f5906112e9906001600160a01b031681565b6001600160a01b031690565b60405163b134427160e01b815294859182905afa9283156108bd575f93611434575b506001600160a01b039283163303611422576001546001600160a01b0316838116611397575b50506040805195865265ffffffffffff909316602086015216927f741a5de99085c0d660f3e4192217b0ffb0ea4e35a0480de48e857a4bc3ee36ed91819081015b0390a361087a60015f8051602061330e83398151915255565b9093604051946113ce866113c0602082019363724ab0f760e11b8552858c898d60248701611c5b565b03601f198101885287610d7e565b62042e305a10611410575f61137e938192827f741a5de99085c0d660f3e4192217b0ffb0ea4e35a0480de48e857a4bc3ee36ed9951926203d090f1509361133d565b604051638072475160e01b8152600490fd5b60405163dabc4ad960e01b8152600490fd5b61145791935060203d60201161145e575b61144f8183610d7e565b8101906116d3565b915f611317565b503d611445565b3461031a57606036600319011261031a576024356114828161031e565b61148a610526565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633036106f8576114e46106db926004355f52600460205260405f209060018060a01b03165f5260205260405f2090565b612124565b3461031a575f36600319011261031a575f546040516001600160a01b039091168152602090f35b3461031a57604036600319011261031a57602061062f6024356115328161031e565b600435611cd8565b3461031a575f36600319011261031a5760206040516203d0908152f35b3461031a575f36600319011261031a57602060405160018152f35b5190811515820361031a57565b519063ffffffff8216820361031a57565b919082604091031261031a57610ff960206115aa84611572565b930161157f565b91939265ffffffffffff906060956040519363f7b0554760e01b6020860152602485015260018060a01b031660448401521660648201526064815260a08101908082106001600160401b03831117610d4357611622926116139260405261201a565b60208082518301019101611590565b9061162a5750565b90915063ffffffff6040519116602082015260208152610ff981610d28565b9081602091031261031a57610ff990611572565b6040513d5f823e3d90fd5b81601f8201121561031a5780519061167f82610dbb565b9261168d6040519485610d7e565b8284526020838301011161031a57815f9260208093018386015e8301015290565b9060208282031261031a5781516001600160401b03811161031a57610ff99201611668565b9081602091031261031a5751610ff98161031e565b90610ff9916020815261170782516080602084015260a083019061058f565b906080606061173e61172b602087015195601f19968787830301604088015261058f565b604087015186868303018487015261058f565b940151928285030191015261058f565b604051630df8851f60e11b81526001600160a01b03828116600483015260248201849052848116604483015265ffffffffffff8616606483015295606095909491939091905f856084817f00000000000000000000000000000000000000000000000000000000000000008c165afa9485156108bd575f95611945575b5060405163fbfa77cf60e01b8152602081600481888d165afa9081156108bd57611837995f9286928491611926575b5060405163192c0ff760e21b81526001600160a01b03909116600482015265ffffffffffff909216602483015290998a9190829081906044820190565b03917f0000000000000000000000000000000000000000000000000000000000000000165afa9788156108bd575f986118fa575b50908161187d846118839594876119d2565b946115b1565b908251158015906118f0575b80156118e6575b80156118dc575b6118a957505050909150565b6110fc9450610ff993956118bb610d9f565b938452602084015260408301526060820152604051928391602083016116e8565b508151151561189d565b5080511515611896565b508551151561188f565b611883939291985061191d903d805f833e6119158183610d7e565b8101906116ae565b9790919261186b565b61193f915060203d60201161145e5761144f8183610d7e565b5f6117fa565b61195a9195503d805f833e6119158183610d7e565b935f6117cb565b90610ff992915f52600360205260405f20612798565b5f9081526004602090815260408083206001600160a01b03909416835292905220610ff9929190612798565b3d156119cd573d906119b482610dbb565b916119c26040519384610d7e565b82523d5f602084013e565b606090565b611622916116139194939465ffffffffffff60609660405193630cbd53f560e11b6020860152602485015216604483015260448252611a1082610d63565b61201a565b60405190611a2282610d28565b60606020838281520152565b9060208282031261031a5781516001600160401b039283821161031a57019060408282031261031a5760405192611a6484610d28565b825181811161031a5782611a79918501611668565b8452602083015190811161031a57611a919201611668565b602082015290565b6001600160a01b0391821681529116602082015265ffffffffffff9091166040820152608060608201819052610ff99291019061058f565b92611ae190929192828486612973565b929093611aec611a15565b93805180611c3f575b50508415938415611ba9575b8415611b18575b50505050611b135790565b505f90565b602080949550611b43910151604051958694859463530e1d4360e01b865260601c9060048601611a99565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa9081156108bd575f91611b8a575b50155f808080611b08565b611ba3915060203d6020116108b6576108a88183610d7e565b5f611b7f565b5f549094506001600160a01b0316602084865192611bdc604051948593849363530e1d4360e01b85528960048601611a99565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa9081156108bd575f91611c20575b501593611b01565b611c39915060203d6020116108b6576108a88183610d7e565b5f611c18565b611c53929550602080918301019101611a2e565b925f80611af5565b919360a093610ff9969565ffffffffffff938552600180871b031660208501526040840152166060820152816080820152019061058f565b634e487b7160e01b5f52601160045260245ffd5b8115611cb1570490565b634e487b7160e01b5f52601260045260245ffd5b9060018201809211611cd357565b611c93565b5f546040516308834cb560e21b8082526001600160a01b0385811660048401529283166024830152929392602092909183816044817f000000000000000000000000000000000000000000000000000000000000000086165afa9081156108bd575f91611de5575b5015918215611d61575b50509050611d5b57610ff991612a68565b50505f90565b6040519081526001600160a01b0385166004820152606086901c602482015291508290829060449082907f0000000000000000000000000000000000000000000000000000000000000000165afa9182156108bd575f92611dc8575b505015805f80611d4a565b611dde9250803d106108b6576108a88183610d7e565b5f80611dbd565b611dfc9150843d86116108b6576108a88183610d7e565b5f611d40565b335f9081527f24e48de785eeca8420b70f73d267a66970ccc187d459f2a4b53e74ed92a5ab86602052604090207f15e7c882d74e8821ebf34aaff46fd0e1d53b9393d91490019124113d28dc32a39060ff905b541615610ace5750565b335f9081527f72a65082a5691803ab2b62c9bc729b34205ba1b183d950896526b2fd8714d0c7602052604090207e8b9b1e5fa9cf3b14f87f435649268146305ddf689f082e5961a335b07a9abf9060ff90611e55565b5f8181525f805160206132ee83398151915260209081526040808320338452909152902060ff90611e55565b634e487b7160e01b5f52603260045260245ffd5b8054821015611f0a575f5260205f2001905f90565b611ee1565b90815491600160401b831015610d435782611f32916001610dac95018155611ef5565b90919082549060031b91821b915f19901b1916179055565b5f19810191908211611cd357565b90929192600182019081548015611fea575b5084611f7584612b40565b50949092845493611f85836120b3565b9681611fd5575b5015611fb2575050505f198101908111611cd357611f328591611fae93611ef5565b9190565b611fae949293611fce926001600160d01b0390911691906131a9565b5050611f0f565b65ffffffffffff83811691161490505f611f8c565b600160401b811015610d43578060016120069201845583611ef5565b8154905f199060031b1b191690555f611f6a565b5f9190829160405161204f816110fc6020820194639f86fd8560e01b865230602484015260406044840152606483019061058f565b51915afa5061205c6119a3565b8051810160408282031261031a5761207660208301611572565b916040810151916001600160401b03831161031a5761209c926020809201920101611668565b90156120a55790565b805190811561031a57602001fd5b8054806120e257505f5b6001600160d01b03811615611d5b5760016120d89201611ef5565b90549060031b1c90565b5f19908082810111611cd357825f5260205f2001015460301c6120bd565b9060405161210d81610d28565b915465ffffffffffff8116835260301c6020830152565b91908254905f8291600584116121c2575b612140935085612cc2565b9081156121b6576121af6121a66121a06120d861217261216d61216288611f4a565b895f5260205f200190565b612100565b966001612199602061218a8b5165ffffffffffff1690565b9a01516001600160d01b031690565b9101611ef5565b93611f4a565b63ffffffff1690565b6001939291565b5f925082915081908190565b91926121cd81612b8f565b8103908111611cd35761214093865f526122016121f68360205f200165ffffffffffff90541690565b65ffffffffffff1690565b65ffffffffffff85161015612217575091612135565b92915061222390611cc5565b90612135565b5f8051602061330e83398151915260028154146122465760029055565b604051633ee5aeb560e01b8152600490fd5b90815f52600360205260405f208161226f82612b40565b9193905083156122cd5761228f916001600160d01b031690600101611ef5565b90549060031b1c5b826122c3575b50506122a7575050565b6122bf915f52600360205260405f206103e342612b0e565b5050565b119050815f61229d565b50505f612297565b6001600160a01b0381165f9081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d60205260409020545f805160206132ee8339815191529060ff16611d5b575f808052602091825260408082206001600160a01b038516835290925220805460ff1916600117905533906001600160a01b03165f7f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d8180a4600190565b6001600160a01b0381165f9081527f9ebbcbe0d2961d3fbe56ca6f679bc753bd848d3e6bb3eaf9041c51b286881d2c602052604090207fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c905f805160206132ee8339815191529060ff905b541661244f575f828152602091825260408082206001600160a01b038616835290925220805460ff1916600117905533916001600160a01b0316907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d5f80a4600190565b5050505f90565b6001600160a01b0381165f9081527f72a65082a5691803ab2b62c9bc729b34205ba1b183d950896526b2fd8714d0c7602052604090207e8b9b1e5fa9cf3b14f87f435649268146305ddf689f082e5961a335b07a9abf905f805160206132ee8339815191529060ff906123eb565b6001600160a01b0381165f9081527f24e48de785eeca8420b70f73d267a66970ccc187d459f2a4b53e74ed92a5ab86602052604090207f15e7c882d74e8821ebf34aaff46fd0e1d53b9393d91490019124113d28dc32a3905f805160206132ee8339815191529060ff906123eb565b5f8181525f805160206132ee833981519152602081815260408084206001600160a01b038716855290915290912060ff906123eb565b5f8181525f805160206132ee833981519152602081815260408084206001600160a01b03871685529091529091205460ff161561244f575f828152602091825260408082206001600160a01b038616835290925220805460ff1916905533916001600160a01b0316907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b5f80a4600190565b91909160408184031261031a5780356126138161031e565b9260208201356001600160401b03811161031a57610ff99201610dd6565b61263d918101906125fb565b6040516302910f8b60e31b81526001600160a01b039283166004820181905291906020816024817f000000000000000000000000000000000000000000000000000000000000000088165afa9081156108bd575f91612750575b501561273e576126d26040916126cd612718946126b2612d24565b60018060a01b03166001600160601b0360a01b5f5416175f55565b612ea4565b6020810151600180546001600160a01b0319166001600160a01b0390921691909117905580516001600160a01b031684811661272e575b5001516001600160a01b031690565b9081166127225750565b61272b90612380565b50565b612737906122d5565b505f612709565b6040516362df054560e01b8152600490fd5b612769915060203d6020116108b6576108a88183610d7e565b5f612697565b9081602091031261031a57610ff99061157f565b90600163ffffffff80931601918211611cd357565b9180511561286657806020806127b39351830101910161276f565b916127be83826130d4565b926127cf845165ffffffffffff1690565b9065ffffffffffff808516921682811461285a5782119182612805575b50506127fc57610ff99250613004565b50506020015190565b9091506128128354611f4a565b63ffffffff83161491821561282b575b50505f806127ec565b6128529192506128466128406121f692612783565b856130d4565b5165ffffffffffff1690565b115f80612822565b50505050506020015190565b50610ff991613004565b60405190608082018281106001600160401b03821117610d4357604052606080838181528160208201528160408201520152565b9060208282031261031a5781516001600160401b039283821161031a57019060808282031261031a576128d5610d9f565b92825181811161031a57826128eb918501611668565b8452602083015181811161031a5782612905918501611668565b6020850152604083015181811161031a5782612922918501611668565b6040850152606083015190811161031a5761293d9201611668565b606082015290565b9081602091031261031a575190565b60409065ffffffffffff610ff99493168152816020820152019061058f565b9391909361297f612870565b93805180612a48575b50506129c992939460206129a86112e96112e95f5460018060a01b031690565b8188015190604051808098819463810da75d60e01b83528960048401612954565b03915afa9182156108bd57612a0a945f93612a0f575b50612a0490612a0493946129f860408a01518284611961565b9360608a015192611977565b9061313c565b915190565b612a04935090612a39612a049260203d602011612a41575b612a318183610d7e565b810190612945565b9350906129df565b503d612a27565b6129c994955090602080612a609383010191016128a4565b93925f612988565b5f5460405163bd49c35f60e01b8152929190602090849060049082906001600160a01b03165afa9081156108bd57610ff9935f92612ae3575b50612a04610384612a049394612ac2610384855f52600360205260405f2090565b935f52600460205260405f209060018060a01b03165f5260205260405f2090565b612a049250610384612b06612a049260203d602011612a4157612a318183610d7e565b935050612aa1565b65ffffffffffff90818111612b21571690565b604490604051906306dfcc6560e41b8252603060048301526024820152fd5b805480612b515750505f905f905f90565b5f19908082810111611cd357612b6e925f5260205f200101612100565b9065ffffffffffff82511691602060018060d01b0391015116906001929190565b8015611b135780612a04612c5a612c50612c46612c3c612c32612c28612c1e6001610ff99a5f908b60801c80612cb6575b508060401c80612ca9575b508060201c80612c9c575b508060101c80612c8f575b508060081c80612c82575b508060041c80612c75575b508060021c80612c68575b50821c612c61575b811c1b612c17818b611ca7565b0160011c90565b612c17818a611ca7565b612c178189611ca7565b612c178188611ca7565b612c178187611ca7565b612c178186611ca7565b612c178185611ca7565b8092611ca7565b8101612c0a565b600291509101905f612c02565b600491509101905f612bf7565b600891509101905f612bec565b601091509101905f612be1565b602091509101905f612bd6565b604091509101905f612bcb565b9150506080905f612bc0565b91905b838210612cd25750505090565b909192808316906001818518811c8301809311611cd357855f5265ffffffffffff808460205f20015416908516105f14612d11575050925b9190612cc5565b909493508101809111611cd35791612d0a565b612d2c6132bf565b612d346132bf565b60015f8051602061330e83398151915255565b60405190612d5482610d48565b5f6040838281528260208201520152565b81601f8201121561031a578051916020916001600160401b038411610d43578360051b9060405194612d9985840187610d7e565b8552838086019282010192831161031a578301905b828210612dbc575050505090565b8380918351612dca8161031e565b815201910190612dae565b9060208282031261031a5781516001600160401b039283821161031a5701908181039260a0841261031a57606060405194612e0f86610d48565b1261031a57604051612e2081610d48565b8351612e2b8161031e565b81526020840151612e3b8161031e565b60208201526040840151612e4e8161031e565b60408201528452606083015181811161031a5782612e6d918501612d65565b6020850152608083015190811161031a57612e889201612d65565b604082015290565b8051821015611f0a5760209160051b010190565b612ec090612eb0612d47565b5060208082518301019101612dd5565b8051519091906001600160a01b03161580612fea575b612fd8579060208101905f5b82518051821015612f5c576112e9612efd83612f0a93612e90565b516001600160a01b031690565b15612f4a57612f2c612f28612f23612efd848751612e90565b612456565b1590565b612f3857600101612ee2565b604051635140fefd60e11b8152600490fd5b6040516323cda06760e01b8152600490fd5b506040925050818101905f5b82518051821015612fcf576112e9612efd83612f8393612e90565b15612fbe57612fa1612f28612f9c612efd848751612e90565b6124c4565b612fad57600101612f68565b8351635140fefd60e11b8152600490fd5b83516323cda06760e01b8152600490fd5b50509150505190565b6040516303501f5960e11b8152600490fd5b506020820151511580612ed6575060408201515115612ed6565b908154905f82916005841161306e575b61301f935084612cc2565b8061304757505f905b6001600160d01b03821615611d5b57610ff99160016120d89201611ef5565b61306161305661306892611f4a565b835f5260205f200190565b5460301c90565b90613028565b919261307981612b8f565b8103908111611cd35761301f93855f5265ffffffffffff808360205f20015416908516105f146130aa575091613014565b9291506130b690611cc5565b90613014565b604051906130c982610d28565b5f6020838281520152565b906130fd6130f761311e926130e76130bc565b506130f06130bc565b5084611ef5565b50612100565b91600165ffffffffffff845116936020828060d01b03910151169101611ef5565b9054906040519261312e84610d28565b835260031b1c602082015290565b9080821015613149575090565b905090565b8054600160401b811015610d435761316b91600182018155611ef5565b61319657815160209092015160301b65ffffffffffff191665ffffffffffff92909216919091179055565b634e487b7160e01b5f525f60045260245ffd5b805492939291908215613296576131c561216d61305685611f4a565b906131d6825165ffffffffffff1690565b65ffffffffffff8481169116811061328457611fae9460209488926132046121f6875165ffffffffffff1690565b0361324c575061323e9261321a61322592611f4a565b905f5260205f200190565b9065ffffffffffff82549181199060301b169116179055565b01516001600160d01b031690565b91505061327f9161326c61325e610dae565b65ffffffffffff9093168352565b6001600160d01b0388168286015261314e565b61323e565b604051632520601d60e01b8152600490fd5b6132ba92506132a661325e610dae565b6001600160d01b038516602083015261314e565b5f9190565b60ff5f8051602061332e8339815191525460401c16156132db57565b604051631afcd79f60e31b8152600490fdfe02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268009b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a2646970667358221220b421717b7d05d309a1df30bec4959e6ea43c0ac83de4ab4b577f6f1e9cb2fa1664736f6c63430008190033","sourceMap":"7866:3473:86:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;;;;;-1:-1:-1;;7866:3473:86;;;;;;;;;;;;;;;;;;-1:-1:-1;;;3551:47:24;;;:87;;;;7866:3473:86;;;;;;;;;;3551:87:24;-1:-1:-1;;;1133:40:30;;-1:-1:-1;3551:87:24;;;7866:3473:86;-1:-1:-1;7866:3473:86;;;-1:-1:-1;;;;;7866:3473:86;;;;;:::o;:::-;;;;;;-1:-1:-1;;7866:3473:86;;;;;;;;;;;:::i;:::-;;;3202:4:24;;;:::i;:::-;7866:3473:86;-1:-1:-1;7866:3473:86;;;;;2662:52:82;:43;7866:3473:86;;-1:-1:-1;7866:3473:86;;;;;;;;;;;;;;;;;2662:43:82;:52;:::i;:::-;3458;3454:102;;7866:3473:86;3656:53:82;7866:3473:86;;-1:-1:-1;7866:3473:86;;;;3566:74:82;7866:3473:86;3566:43:82;7866:3473:86;;-1:-1:-1;7866:3473:86;;;;;;;;;;;;;;;;;3566:43:82;819:34:63;837:15;819:34;:::i;:::-;3566:74:82;;:::i;:::-;-1:-1:-1;;7866:3473:86;;;;;-1:-1:-1;;;;;7866:3473:86;;3656:53:82;7866:3473:86;3454:102:82;7866:3473:86;;-1:-1:-1;;;3533:12:82;;7866:3473:86;;3533:12:82;7866:3473:86;;;;;;;;;;;;;;;;;;3202:4:24;;;:::i;:::-;7866:3473:86;-1:-1:-1;7866:3473:86;2910:15:82;7866:3473:86;;;-1:-1:-1;7866:3473:86;;2901:36:82;;2897:98;;7866:3473:86;-1:-1:-1;7866:3473:86;2103:13:82;7866:3473:86;;;2103:34:82;7866:3473:86;-1:-1:-1;7866:3473:86;2103:34:82;:::i;:::-;3009;3005:84;;3099:25;3171:35;3099:25;:56;3171:35;3099:25;;;7866:3473:86;;2103:13:82;7866:3473:86;;;;;;;3099:56:82;-1:-1:-1;;7866:3473:86;;;;;;;;;;;;3171:35:82;;;;7866:3473:86;3005:84:82;7866:3473:86;-1:-1:-1;;;3066:12:82;;7866:3473:86;;3066:12:82;2897:98;7866:3473:86;-1:-1:-1;;;2960:24:82;;7866:3473:86;;2960:24:82;7866:3473:86;;;;;;-1:-1:-1;;7866:3473:86;;;;;;1537:38:81;-1:-1:-1;;;;;7866:3473:86;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;7866:3473:86;;;;;;;;-1:-1:-1;;7866:3473:86;;;;:::o;:::-;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;7866:3473:86;;;;;2662:52:82;:43;7866:3473:86;;;;;:::i;:::-;;;-1:-1:-1;7866:3473:86;;;;;-1:-1:-1;7866:3473:86;;;;;;;;;;;;;;;;;2662:52:82;7866:3473:86;;;;;;;;;;;;-1:-1:-1;;7866:3473:86;;;;;;1632:54:81;-1:-1:-1;;;;;7866:3473:86;;;;;;;;;;;;-1:-1:-1;;7866:3473:86;;;;;;:::i;:::-;449:5:87;-1:-1:-1;;;;;7866:3473:86;435:10:87;:19;431:71;;8670:64:86;7866:3473;;;-1:-1:-1;7866:3473:86;8670:13;7866:3473;;;-1:-1:-1;7866:3473:86;8670:64;:::i;:::-;7866:3473;;;;;;;;;;;;;;;;;;;-1:-1:-1;;7866:3473:86;431:71:87;7866:3473:86;;-1:-1:-1;;;477:14:87;;7866:3473:86;;477:14:87;7866:3473:86;;;;;;-1:-1:-1;;7866:3473:86;;;;;;1743:56:81;-1:-1:-1;;;;;7866:3473:86;;;;;;;;;;;;-1:-1:-1;;7866:3473:86;;;;;;-1:-1:-1;;;;;7866:3473:86;;;;;;;;3217:103:29;;;:::i;:::-;7866:3473:86;;-1:-1:-1;;;4285:48:81;;4322:10;7866:3473:86;4285:48:81;;7866:3473:86;;;;;-1:-1:-1;;;;;4295:16:81;7866:3473:86;4285:48:81;;;;;;;-1:-1:-1;4285:48:81;;;7866:3473:86;4284:49:81;;4280:99;;-1:-1:-1;;;;;7866:3473:86;-1:-1:-1;;4322:10:81;297:2:93;7866:3473:86;;267:46:93;4459:27:81;;;;7866:3473:86;;4459:15:81;7866:3473:86;;;;;;;4459:27:81;7866:3473:86;4459:37:81;4455:87;;4654:38;4552:27;4654:38;4552:27;;;7866:3473:86;;4459:15:81;7866:3473:86;;;;;;;4552:27:81;7866:3473:86;4631:6:81;;;;:::i;:::-;7866:3473:86;;;;;;;;;;;;;4654:38:81;;;;3282:1:29;1805;-1:-1:-1;;;;;;;;;;;7866:3473:86;3716:283:29;3282:1;7866:3473:86;4280:99:81;7866:3473:86;;-1:-1:-1;;;4356:12:81;;7866:3473:86;;4356:12:81;4285:48;;;;7866:3473:86;4285:48:81;7866:3473:86;4285:48:81;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;:::i;7866:3473:86:-;;;;;;-1:-1:-1;;7866:3473:86;;;;;;-1:-1:-1;7866:3473:86;-1:-1:-1;;;;;;;;;;;7866:3473:86;;;4919:24:24;7866:3473:86;-1:-1:-1;7866:3473:86;4919:24:24;7866:3473:86;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;-1:-1:-1;;7866:3473:86;;;;;;322:32:74;-1:-1:-1;;;;;7866:3473:86;;;;;;;;;;;;-1:-1:-1;;7866:3473:86;;;;5350:25:24;7866:3473:86;;;;;;;:::i;:::-;;-1:-1:-1;7866:3473:86;-1:-1:-1;;;;;;;;;;;7866:3473:86;;3202:4:24;4919:24;7866:3473:86;-1:-1:-1;7866:3473:86;4919:24:24;7866:3473:86;3202:4:24;:::i;:::-;5350:25;:::i;7866:3473:86:-;;;;;;-1:-1:-1;;7866:3473:86;;;;;;;;;:::i;:::-;966:10:28;-1:-1:-1;;;;;7866:3473:86;;6441:34:24;6437:102;;6549:37;7866:3473:86;;;6549:37:24;:::i;6437:102::-;7866:3473:86;;-1:-1:-1;;;6498:30:24;;7866:3473:86;;6498:30:24;7866:3473:86;;;;;;-1:-1:-1;;7866:3473:86;;;;;;;;;:::i;:::-;3217:103:29;;:::i;:::-;966:10:28;-1:-1:-1;7866:3473:86;;;;;;;;;;1356:26:81;;7866:3473:86;;4468:23:24;4464:108;;-1:-1:-1;4861:4:81;7866:3473:86;-1:-1:-1;;;;;7866:3473:86;;;;;;4861:13:81;;4857:63;;-1:-1:-1;;;;;;7866:3473:86;;;4861:4:81;7866:3473:86;4958:14:81;-1:-1:-1;;4958:14:81;4861:4;-1:-1:-1;;;;;;;;;;;7866:3473:86;;4464:108:24;7866:3473:86;;;;4514:47:24;;;;;;966:10:28;7866:3473:86;4514:47:24;;7866:3473:86;;;;;4514:47:24;7866:3473:86;;;;;;-1:-1:-1;;7866:3473:86;;;;;;-1:-1:-1;7866:3473:86;2103:13:82;7866:3473:86;;;2103:34:82;7866:3473:86;-1:-1:-1;7866:3473:86;2103:34:82;:::i;7866:3473:86:-;;;;;;;;;;;;;-1:-1:-1;;;;;7866:3473:86;;;;;;;;;;;;;;;:::o;:::-;;;;;;-1:-1:-1;;7866:3473:86;;;;-1:-1:-1;;;;;7866:3473:86;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;7866:3473:86;;;;;;;4301:16:26;7866:3473:86;;4726:16:26;;:34;;;;7866:3473:86;4805:1:26;4790:16;:50;;;;7866:3473:86;4855:13:26;:30;;;;7866:3473:86;4851:91:26;;;-1:-1:-1;;;;;;;;;;;7866:3473:86;;-1:-1:-1;;7866:3473:86;;;;;718:4:74;;4951:18:26;4979:67;;718:4:74;:::i;:::-;5066:101:26;;7866:3473:86;5066:101:26;-1:-1:-1;;;;;;;;;;;7866:3473:86;;-1:-1:-1;;;;7866:3473:86;;;;;-1:-1:-1;7866:3473:86;;5142:14:26;;7866:3473:86;;5142:14:26;7866:3473:86;4979:67:26;-1:-1:-1;;;;;;;;;;;7866:3473:86;;-1:-1:-1;;;;7866:3473:86;-1:-1:-1;;;7866:3473:86;;;718:4:74;:::i;4851:91:26:-;7866:3473:86;;-1:-1:-1;;;4908:23:26;;7866:3473:86;;4908:23:26;4855:30;4872:13;;;4855:30;;;4790:50;4818:4;4810:25;:30;;-1:-1:-1;4790:50:26;;4726:34;;;-1:-1:-1;4726:34:26;;7866:3473:86;;;;;;-1:-1:-1;;7866:3473:86;;;;;;8038:36;-1:-1:-1;;;;;7866:3473:86;;;;;;;;;;;;-1:-1:-1;;7866:3473:86;;;;;;;952:44:82;7866:3473:86;;;;;;;;;-1:-1:-1;;7866:3473:86;;;;;;;1253:6:81;7866:3473:86;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7866:3473:86;;;;;;;:::o;:::-;;:::i;:::-;;;;;;;-1:-1:-1;;;;;7866:3473:86;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;7866:3473:86;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;7866:3473:86;;;;;;;:::o;:::-;;;;;;;:::i;:::-;:::o;:::-;;;;;;;:::i;:::-;-1:-1:-1;;;;;7866:3473:86;;;;;;-1:-1:-1;;7866:3473:86;;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;7866:3473:86;;;;;;;;;;;;;;:::o;:::-;;;;;;-1:-1:-1;;7866:3473:86;;;;;;:::i;:::-;;;-1:-1:-1;;;;;7866:3473:86;;;;;;;1870:60:82;7866:3473:86;;;;;;:::i;:::-;;;;-1:-1:-1;7866:3473:86;1870:13:82;7866:3473:86;;;-1:-1:-1;7866:3473:86;1870:60:82;:::i;7866:3473:86:-;;;;;;-1:-1:-1;;7866:3473:86;;;;;;;1356:26:81;7866:3473:86;;;;;;;;;-1:-1:-1;;7866:3473:86;;;;;;7987:45;-1:-1:-1;;;;;7866:3473:86;;;;;;;;;;;;-1:-1:-1;;7866:3473:86;;;;;;;795:35:82;7866:3473:86;;;;;;;;;-1:-1:-1;;7866:3473:86;;;;;;;;-1:-1:-1;;;;;7866:3473:86;;;;;;;;;;;;;;-1:-1:-1;;7866:3473:86;;;;;;3901:31:24;7866:3473:86;;;;;:::i;:::-;;;-1:-1:-1;7866:3473:86;-1:-1:-1;;;;;;;;;;;7866:3473:86;;;-1:-1:-1;7866:3473:86;;;;;;;;;;;;;;;;;3901:31:24;7866:3473:86;;;;;;;;;;;;;-1:-1:-1;;7866:3473:86;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;-1:-1:-1;;;;;7866:3473:86;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;2399:78:82;:43;7866:3473:86;;;:::i;:::-;;;;;-1:-1:-1;7866:3473:86;;;;;-1:-1:-1;7866:3473:86;;;;;;;;;;;;;;;;;2399:43:82;:78;:::i;7866:3473:86:-;;;;;;-1:-1:-1;;7866:3473:86;;;;;;8080:45;-1:-1:-1;;;;;7866:3473:86;;;;;;;;;;;;-1:-1:-1;;7866:3473:86;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;7866:3473:86;;;;-1:-1:-1;7866:3473:86;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;416:25:80;;;;477:31;416:25;;:::i;:::-;7866:3473:86;;;;;;;;;;477:31:80;;7866:3473:86;;;;;;;;;;;:::i;:::-;477:31:80;7866:3473:86;;477:31:80;;;;;;:::i;:::-;518:79;;;7866:3473:86;518:79:80;;7866:3473:86;;;;;;-1:-1:-1;;7866:3473:86;;;;;;;;;;;;;;;;;-1:-1:-1;;7866:3473:86;;;;;;;-1:-1:-1;;;;;404:28:74;7866:3473:86;;;;;;;;;;-1:-1:-1;;7866:3473:86;;;;;;1439:41:81;-1:-1:-1;;;;;7866:3473:86;;;;;;;;;;;;-1:-1:-1;;7866:3473:86;;;;;;-1:-1:-1;7866:3473:86;2009:67:81;7866:3473:86;;;;-1:-1:-1;7866:3473:86;;;;;;;;;;;;;;-1:-1:-1;;7866:3473:86;;;;5767:26:24;7866:3473:86;;;;;;;:::i;:::-;;-1:-1:-1;7866:3473:86;-1:-1:-1;;;;;;;;;;;7866:3473:86;;3202:4:24;4919:24;7866:3473:86;-1:-1:-1;7866:3473:86;4919:24:24;7866:3473:86;3202:4:24;:::i;:::-;5767:26;:::i;7866:3473:86:-;;;;;;-1:-1:-1;;7866:3473:86;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;-1:-1:-1;;7866:3473:86;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;-1:-1:-1;;;;;7866:3473:86;;;;;;;;;;;;:::i;:::-;3217:103:29;;:::i;:::-;-1:-1:-1;7866:3473:86;;;5246:21:81;;:13;;-1:-1:-1;;;;;7866:3473:86;5246:13:81;7866:3473:86;;-1:-1:-1;;;;;7866:3473:86;;;5246:21:81;7866:3473:86;;-1:-1:-1;;;5246:23:81;;7866:3473:86;;;;;5246:23:81;;;;;;;-1:-1:-1;5246:23:81;;;7866:3473:86;-1:-1:-1;;;;;;7866:3473:86;;;5232:10:81;:37;5228:87;;5341:4;7866:3473:86;-1:-1:-1;;;;;7866:3473:86;;;;5355:469:81;;7866:3473:86;-1:-1:-1;;7866:3473:86;;;;;;;;;;;;;;;;5839:55:81;;7866:3473:86;;;;5839:55:81;;;;3282:1:29;1805;-1:-1:-1;;;;;;;;;;;7866:3473:86;3716:283:29;5355:469:81;7866:3473:86;;;;5435:94:81;;;;7866:3473:86;5435:94:81;;;;;;;;;;;;7866:3473:86;5435:94:81;;;:::i;:::-;;7866:3473:86;;5435:94:81;;;;;;:::i;:::-;7866:3473:86;5548:9:81;:51;5544:118;;-1:-1:-1;5839:55:81;5676:138;;;;5839:55;5676:138;;;1150:7;5676:138;;5355:469;;;5544:118;7866:3473:86;;-1:-1:-1;;;5626:21:81;;7866:3473:86;;5626:21:81;5228:87;7866:3473:86;;-1:-1:-1;;;5292:12:81;;7866:3473:86;;5292:12:81;5246:23;;;;;7866:3473:86;5246:23:81;7866:3473:86;5246:23:81;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;7866:3473:86;;;;;;-1:-1:-1;;7866:3473:86;;;;;;;;;:::i;:::-;;;:::i;:::-;449:5:87;-1:-1:-1;;;;;7866:3473:86;435:10:87;:19;431:71;;9461:43:86;:82;7866:3473;;;-1:-1:-1;7866:3473:86;;;;;-1:-1:-1;7866:3473:86;;;;;;;;;;;;;;;;;9461:43;:82;:::i;7866:3473::-;;;;;;-1:-1:-1;;7866:3473:86;;;;;;;;-1:-1:-1;;;;;7866:3473:86;;;;;;;;;;;;;;-1:-1:-1;;7866:3473:86;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;-1:-1:-1;;7866:3473:86;;;;;;;1150:7:81;7866:3473:86;;;;;;;;;-1:-1:-1;;7866:3473:86;;;;;;;2700:1:81;7866:3473:86;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;:::i;9556:591::-;;;;7866:3473;9556:591;7866:3473;;;;9870:147;;;;;;;;;;;7866:3473;;;;;;;;;;;;;;;;;9870:147;;7866:3473;;;;;;;-1:-1:-1;;;;;7866:3473:86;;;;;9778:291;7866:3473;9802:229;7866:3473;;;9802:229;:::i;:::-;9870:147;7866:3473;;;9778:291;;;;;;:::i;:::-;10080:61;;;9556:591;:::o;10080:61::-;7866:3473;;;;;;;;9870:147;10113:17;;7866:3473;9870:147;10113:17;;;;;:::i;7866:3473::-;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;7866:3473:86;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;;;;7866:3473:86;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;10153:1184::-;7866:3473;;-1:-1:-1;;;10370:99:86;;-1:-1:-1;;;;;7866:3473:86;;;10370:99;;;7866:3473;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;7866:3473:86;;;10389:20;7866:3473;;10370:99;;;;;;;;;;;10153:1184;-1:-1:-1;7866:3473:86;;-1:-1:-1;;;10563:32:86;;;7866:3473;10370:99;7866:3473;;;;10563:32;;;;;;;10523:84;10563:32;10370:99;10563:32;;;;;;;10153:1184;-1:-1:-1;7866:3473:86;;-1:-1:-1;;;10523:84:86;;-1:-1:-1;;;;;7866:3473:86;;;10370:99;10523:84;;7866:3473;;;;;;;;;;;;;-1:-1:-1;7866:3473:86;;;;;;;;;10523:84;;10534:11;;7866:3473;10523:84;;;;;;;10370:99;10523:84;;;10153:1184;10651:50;;;;;10752:68;10651:50;;;;:::i;:::-;10752:68;;:::i;:::-;7866:3473;;;10848:21;;;:52;;;10153:1184;10848:85;;;;10153:1184;10848:142;;;;10153:1184;10831:500;;10153:1184;;;;;;:::o;10831:500::-;11022:298;7866:3473;;11022:298;7866:3473;;;;:::i;:::-;;;;10563:32;11050:256;;7866:3473;;11050:256;;7866:3473;;11050:256;;7866:3473;;;11022:298;;;10563:32;11022:298;;;:::i;10848:142::-;7866:3473;;;10953:37;;10848:142;;:85;7866:3473;;;10904:29;;10848:85;;:52;7866:3473;;;10873:27;;10848:52;;10523:84;10752:68;10523:84;;;;;;;;;10370:99;10523:84;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;10563:32;;;;;;;;;;;;;;:::i;:::-;;;;10370:99;;;;;;;;;;;;;;:::i;:::-;;;;;1742:195:82;;1870:60;1742:195;;-1:-1:-1;7866:3473:86;1870:13:82;7866:3473:86;;;-1:-1:-1;7866:3473:86;1870:60:82;:::i;2207:277::-;-1:-1:-1;7866:3473:86;;;2399:21:82;7866:3473:86;;;;;;;;-1:-1:-1;;;;;7866:3473:86;;;;;;;;;2399:78:82;;2207:277;;2399:78;:::i;7866:3473:86:-;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;-1:-1:-1;7866:3473:86;;;;:::o;:::-;;;:::o;8747:485::-;8935:219;8747:485;8959:157;8747:485;;;;7866:3473;;;;;9011:91;;;;;;;;;;;7866:3473;;;;;;;9011:91;;;;;:::i;:::-;8959:157;:::i;7866:3473::-;;;;;;;:::i;:::-;;;;;;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;;;;7866:3473:86;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::o;:::-;-1:-1:-1;;;;;7866:3473:86;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;2764:920:81:-;;2978:48;2764:920;;;;2978:48;;;;:::i;:::-;3036:36;;;7866:3473:86;;:::i;:::-;;;;3086:20:81;3082:107;;2764:920;3216:11;;;;:193;;;;;2764:920;3216:394;;;;2764:920;3199:455;;;;;;2764:920;:::o;3199:455::-;3635:8;-1:-1:-1;3635:8:81;:::o;3216:394::-;3553:39;;;;;3430:180;3553:39;;;7866:3473:86;;;;;;;;;;3430:180:81;;467:2:93;7866:3473:86;3430:180:81;;;;;:::i;:::-;;7866:3473:86;3444:31:81;-1:-1:-1;;;;;7866:3473:86;3430:180:81;;;;;;;-1:-1:-1;3430:180:81;;;3216:394;3429:181;;3216:394;;;;;;3430:180;;;;3553:39;3430:180;3553:39;3430:180;;;;;;;:::i;:::-;;;;3216:193;-1:-1:-1;7866:3473:86;;;-1:-1:-1;;;;;;7866:3473:86;3248:161:81;3354:37;;;7866:3473:86;3248:161:81;7866:3473:86;;;;;;;;;;3248:161:81;;;;;;;:::i;:::-;;7866:3473:86;3262:29:81;-1:-1:-1;;;;;7866:3473:86;3248:161:81;;;;;;;-1:-1:-1;3248:161:81;;;3216:193;3247:162;;3216:193;;;3248:161;;;;;;;;;;;;;;:::i;:::-;;;;3082:107;3139:39;;;;;;;;;;;;;:::i;:::-;3082:107;;;;;7866:3473:86;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;8889:1:91;7866:3473:86;;;;;;;:::o;:::-;;:::i;3740:389:81:-;3918:5;7866:3473:86;;;-1:-1:-1;;;3853:71:81;;;-1:-1:-1;;;;;7866:3473:86;;;3853:71:81;;;7866:3473:86;;;;;;;;3740:389:81;;7866:3473:86;3853:71:81;;7866:3473:86;;3853:71:81;7866:3473:86;;;3867:29:81;7866:3473:86;;3853:71:81;;;;;;;3918:5;3853:71;;;3740:389;3852:72;;7866:3473:86;;;3852:181:81;;3740:389;3835:242;;;;;;4094:28;;;:::i;3835:242::-;4058:8;;3918:5;4058:8;:::o;3852:181::-;7866:3473:86;;3945:88:81;;;-1:-1:-1;;;;;7866:3473:86;;3853:71:81;3945:88;;7866:3473:86;467:2:93;7866:3473:86;;;;;;;;-1:-1:-1;7866:3473:86;;;;;;;;3959:31:81;7866:3473:86;3945:88:81;;;;;;;3918:5;3945:88;;;3852:181;3944:89;;;3852:181;;;;;3945:88;;;;;;-1:-1:-1;3945:88:81;;;;;;:::i;:::-;;;;;3853:71;;;;;;;;;;;;;;:::i;:::-;;;;4148:103:24;966:10:28;-1:-1:-1;7866:3473:86;;;;;;;;;952:44:82;;7866:3473:86;;3901:31:24;7866:3473:86;;4468:23:24;4464:108;;4148:103;:::o;:::-;966:10:28;-1:-1:-1;7866:3473:86;;;;;;;;;795:35:82;;7866:3473:86;;3901:31:24;7866:3473:86;4148:103:24;-1:-1:-1;7866:3473:86;;;-1:-1:-1;;;;;;;;;;;7866:3473:86;;;;;;;;966:10:28;7866:3473:86;;;;;;;;;3901:31:24;7866:3473:86;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;7866:3473:86;;-1:-1:-1;7866:3473:86;;;-1:-1:-1;7866:3473:86;:::o;:::-;;:::i;:::-;;;;;-1:-1:-1;;;7866:3473:86;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;7866:3473:86;;;;;;;;:::o;6246:584:91:-;;;;;6360:12;;;7866:3473:86;;;6360:24:91;;6356:75;;6246:584;6474:30;;;;;:::i;:::-;7866:3473:86;;;;;;6578:12:91;;;;:::i;:::-;6604:24;;;;6246:584;-1:-1:-1;6600:188:91;;;-1:-1:-1;;;;;7866:3473:86;;;;;;;6644:21:91;;;:29;:21;;:::i;:29::-;6798:25;6246:584;:::o;6600:188::-;6753:24;;7866:3473:86;;8167:38:61;;-1:-1:-1;;;;;7866:3473:86;;;;;8167:38:61;:::i;:::-;6753:24:91;;;:::i;6604:::-;7866:3473:86;;;;;;6614:14:91;;-1:-1:-1;6604:24:91;;;6356:75;-1:-1:-1;;;7866:3473:86;;;;;;6360:12:91;7866:3473:86;;;;;;;:::i;:::-;;;;;;;;;;;;;;6356:75:91;;;525:595:87;-1:-1:-1;525:595:87;;;;7866:3473:86;;716:88:87;;7866:3473:86;716:88:87;;;;;;;;;783:4;716:88;;;7866:3473:86;;;;;;;;;;;:::i;716:88:87:-;698:107;;;;;;;:::i;:::-;7866:3473:86;;857:45:87;;7866:3473:86;;;;;;;;716:88:87;857:45;;7866:3473:86;:::i;:::-;;;;;;;-1:-1:-1;;;;;7866:3473:86;;;;;857:45:87;716:88;857:45;;;7866:3473:86;;;;:::i;:::-;916:8:87;;912:175;;525:595;:::o;912:175::-;7866:3473:86;;944:22:87;;;940:36;;716:88;990:87;;10580:184:91;7866:3473:86;;10303:8:61;;;:63;-1:-1:-1;10303:63:61;-1:-1:-1;;;;;7866:3473:86;;10726:7:91;7866:3473:86;;10736:12:91;:17;:12;;:17;:::i;:::-;7866:3473:86;;;;;;10580:184:91;:::o;10303:63:61:-;7866:3473:86;;;;;;;;;;13267:109:91;-1:-1:-1;13267:109:91;;-1:-1:-1;13267:109:91;;;7866:3473:86;;;10303:63:61;;7866:3473:86;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::o;8406:869:91:-;;;7866:3473:86;;8620:15:91;8578:11;8645:18;8678:7;8684:1;8678:7;;8674:241;;8406:869;8939:60;;;;;:::i;:::-;9014:8;;;9010:62;;9252:15;9259:7;7866:3473:86;9219:31:91;7866:3473:86;9130:48:91;9170:7;;;:::i;:::-;9130:48;13267:109;;;;;;13089:293;;9130:48;7866:3473:86;:::i;:::-;;9176:1:91;7866:3473:86;9232:17:91;7866:3473:86;;;;;;;;9232:17:91;;7866:3473:86;-1:-1:-1;;;;;7866:3473:86;;;;9219:12:91;;:31;:::i;7866:3473:86:-;9259:7:91;;:::i;:::-;7866:3473:86;;;;9252:15:91;9176:1;;9188:80;;8406:869::o;9010:62::-;8578:11;;-1:-1:-1;8578:11:91;;-1:-1:-1;8578:11:91;;;;9038:23::o;8674:241::-;8721:14;;;;;:::i;:::-;7866:3473:86;;;;;;;8939:60:91;13267:109;;8578:11;13267:109;8753:55;8759:49;13267:109;;8578:11;13267:109;;7866:3473:86;;;;;;8759:49:91;7866:3473:86;;;;8753:55:91;7866:3473:86;;;8753:55:91;13267:109;;;8828:10;8749:156;8674:241;;8749:156;8883:7;;;;;;:::i;:::-;8749:156;8674:241;;3326:384:29;-1:-1:-1;;;;;;;;;;;1847:1:29;7866:3473:86;;3526:20:29;3522:88;;1847:1;7866:3473:86;;3326:384:29:o;3522:88::-;7866:3473:86;;-1:-1:-1;;;3569:30:29;;;;;4758:308:82;;7866:3473:86;-1:-1:-1;7866:3473:86;4889:13:82;7866:3473:86;;;-1:-1:-1;7866:3473:86;11124:30:91;;;;:::i;:::-;11173;;;-1:-1:-1;11173:30:91;;;;11182:17;;-1:-1:-1;;;;;7866:3473:86;;11182:12:91;;:17;:::i;:::-;7866:3473:86;;;4889:13:82;7866:3473:86;;11173:30:91;4947::82;;;11173::91;4943:117:82;;;;4758:308;;:::o;4943:117::-;4993:56;7866:3473:86;-1:-1:-1;7866:3473:86;4889:13:82;7866:3473:86;;;-1:-1:-1;7866:3473:86;819:34:63;837:15;819:34;:::i;4993:56:82:-;4758:308;;:::o;4947:30::-;4957:20;;-1:-1:-1;4947:30:82;;;;11173::91;;;-1:-1:-1;11173:30:91;;7270:387:24;-1:-1:-1;;;;;7866:3473:86;;-1:-1:-1;7866:3473:86;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2887:71:24;7866:3473:86;;;;-1:-1:-1;7866:3473:86;;;;;;;;;;;-1:-1:-1;;;;;7866:3473:86;;;;;;;;;;-1:-1:-1;;7866:3473:86;7509:4:24;7866:3473:86;;;966:10:28;;-1:-1:-1;;;;;7866:3473:86;-1:-1:-1;7532:40:24;-1:-1:-1;;7532:40:24;7509:4;7586:11;:::o;7270:387::-;-1:-1:-1;;;;;7866:3473:86;;-1:-1:-1;7866:3473:86;;;;;;;;;1356:26:81;;-1:-1:-1;;;;;;;;;;;2887:71:24;7866:3473:86;;3901:31:24;7866:3473:86;;;;-1:-1:-1;7866:3473:86;;;;;;;;;;;-1:-1:-1;;;;;7866:3473:86;;;;;;;;;;-1:-1:-1;;7866:3473:86;7509:4:24;7866:3473:86;;;966:10:28;;-1:-1:-1;;;;;7866:3473:86;;7532:40:24;-1:-1:-1;;7532:40:24;7509:4;7586:11;:::o;7432:219::-;7628:12;;;-1:-1:-1;7628:12:24;:::o;7270:387::-;-1:-1:-1;;;;;7866:3473:86;;-1:-1:-1;7866:3473:86;;;;;;;;;795:35:82;;-1:-1:-1;;;;;;;;;;;2887:71:24;7866:3473:86;;3901:31:24;7866:3473:86;7270:387:24;-1:-1:-1;;;;;7866:3473:86;;-1:-1:-1;7866:3473:86;;;;;;;;;952:44:82;;-1:-1:-1;;;;;;;;;;;2887:71:24;7866:3473:86;;3901:31:24;7866:3473:86;7270:387:24;-1:-1:-1;7866:3473:86;;;-1:-1:-1;;;;;;;;;;;7866:3473:86;;;;;;;;-1:-1:-1;;;;;7866:3473:86;;;;;;;;;;;;3901:31:24;7866:3473:86;7892:388:24;-1:-1:-1;7866:3473:86;;;-1:-1:-1;;;;;;;;;;;7866:3473:86;;;;;;;;-1:-1:-1;;;;;7866:3473:86;;;;;;;;;;;;;;;;-1:-1:-1;7866:3473:86;;;;;;;;;;;-1:-1:-1;;;;;7866:3473:86;;;;;;;;;;-1:-1:-1;;7866:3473:86;;;966:10:28;;-1:-1:-1;;;;;7866:3473:86;;8155:40:24;-1:-1:-1;;8155:40:24;7866:3473:86;8209:11:24;:::o;7866:3473:86:-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;7866:3473:86;;;;;;;;:::i;5907:716:81:-;6030:34;5907:716;6030:34;;;;:::i;:::-;7866:3473:86;;-1:-1:-1;;;6080:41:81;;-1:-1:-1;;;;;7866:3473:86;;;6080:41:81;;;7866:3473:86;;;;;6080:41:81;7866:3473:86;;;6090:13:81;7866:3473:86;;6080:41:81;;;;;;;-1:-1:-1;6080:41:81;;;5907:716;6079:42;;6075:90;;6266:27;7866:3473:86;2540:111:29;6210:14:81;7866:3473:86;2540:111:29;;;:::i;:::-;7866:3473:86;;;;;;-1:-1:-1;;;;;7866:3473:86;;-1:-1:-1;7866:3473:86;;;-1:-1:-1;7866:3473:86;;6210:14:81;6266:27;:::i;:::-;6080:41;6311:15;;7866:3473:86;;;;-1:-1:-1;;;;;;7866:3473:86;-1:-1:-1;;;;;7866:3473:86;;;;;;;;;;;-1:-1:-1;;;;;7866:3473:86;;;;6337:143:81;;5907:716;-1:-1:-1;6493:28:81;7866:3473:86;-1:-1:-1;;;;;7866:3473:86;;;;;;;6489:128:81;;5907:716;:::o;6489:128::-;6551:55;;;:::i;:::-;;5907:716::o;6337:143::-;6404:65;;;:::i;:::-;;6337:143;;;6075:90;7866:3473:86;;-1:-1:-1;;;6144:10:81;;6080:41;;6144:10;6080:41;;;;;;;;;;;;;;:::i;:::-;;;;7866:3473:86;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::o;7558:604:91:-;;7866:3473:86;;7686:17:91;7682:83;;7866:3473:86;7789:27:91;7866:3473:86;7789:27:91;7866:3473:86;;7789:27:91;;;;;;:::i;:::-;7860:14;;;;;:::i;:::-;7866:3473:86;;;;;;;;;;;;;;;;7888:22:91;;;7884:77;;7975:21;-1:-1:-1;7975:84:91;;;;7558:604;7971:139;;;;8127:28;;;;:::i;7971:139::-;8082:17;;7789:27;8082:17;7866:3473:86;8075:24:91;:::o;7975:84::-;7866:3473:86;;;8009:16:91;7866:3473:86;;8009:16:91;:::i;:::-;7866:3473:86;;;8001:24:91;:57;;;;;7975:84;;;;;;;8001:57;8029:29;8038:8;;;8029:18;8038:8;8029:23;8038:8;;:::i;:::-;8029:18;;:::i;:::-;7866:3473:86;;;;;8029:29:91;;8001:57;;;;7884:77;7933:17;;;;;7789:27;7933:17;7866:3473:86;7926:24:91;:::o;7682:83::-;7726:28;;;;:::i;7866:3473:86:-;;;;;;;;;;-1:-1:-1;;;;;7866:3473:86;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;;;;7866:3473:86;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;:::i;3722:766:82:-;;;;;7866:3473:86;;:::i;:::-;;;;3962:16:82;3958:92;;3722:766;7866:3473:86;;4107:67:82;7866:3473:86;;;4146:27:82;4107;:13;7866:3473:86;-1:-1:-1;7866:3473:86;;;;;;;;;4107:27:82;4146;;;;7866:3473:86;;;;;;;;;;;4107:67:82;;;;;;;:::i;:::-;;;;;;;;;;4081:355;4107:67;-1:-1:-1;4107:67:82;;;3722:766;4260:28;4311:93;4260:28;4192:230;4260:28;;4222:67;7866:3473:86;4260:28:82;;;4222:67;;;:::i;:::-;4367:36;;;;;4311:93;;:::i;:::-;4192:230;;:::i;4081:355::-;4450:21;;3722:766;:::o;4107:67::-;4192:230;4107:67;;;;4311:93;4107:67;4146:27;4107:67;4146:27;4107:67;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;3958:92;4107:67;4008:31;;;;;;;;;;;;;;:::i;:::-;3958:92;;;;;4494:258;4635:5;7866:3473:86;;;-1:-1:-1;;;4628:27:82;;7866:3473:86;4494:258:82;;4628:27;;7866:3473:86;;4628:27:82;;7866:3473:86;;-1:-1:-1;;;;;7866:3473:86;4628:27:82;;;;;;;4606:139;4628:27;4635:5;4628:27;;;4494:258;2103:25;2662:52;:43;4657:78;2103:25;;:34;:25;;7866:3473:86;;2103:13:82;7866:3473:86;;;;;;;2103:34:82;7866:3473:86;4635:5:82;7866:3473:86;4628:27:82;;7866:3473:86;;4635:5:82;7866:3473:86;;;;;;;;;;;;;;;;;4628:27:82;4657:78;4628:27;;2662:43;4628:27;2662:52;4628:27;;;;;;;;;;;:::i;:::-;;;;;;14291:213:59;7866:3473:86;14369:24:59;;;;14365:103;;7866:3473:86;14291:213:59;:::o;14365:103::-;7866:3473:86;;;;14416:41:59;;;;;;14447:2;14416:41;;;7866:3473:86;;;;;14416:41:59;10552:388:61;7866:3473:86;;10728:8:61;;;10752:20;;10690:17;10752:20;10690:17;10752:20;10690:17;10752:20;:::o;10724:210::-;7866:3473:86;;;;;;;;;;;13267:109:91;10690:17:61;13267:109:91;;10690:17:61;13267:109:91;;;7866:3473:86;:::i;:::-;;;;;;;13267:109:91;7866:3473:86;;;;;10911:11:61;;7866:3473:86;;10886:37:61;10870:1;10886:37;;;:::o;8587:1642:58:-;8658:6;;8654:45;;9401:7;10201:10;10142:26;10093;10044;9995;9946;9897;9848;7866:3473:86;10189:23:58;9401:7;8663:1;7866:3473:86;;;;10826:16:58;10822:99;;8587:1642;7866:3473:86;;;;10938:15:58;10934:96;;8587:1642;7866:3473:86;;;;11047:15:58;11043:96;;8587:1642;7866:3473:86;;;;11156:15:58;11152:96;;8587:1642;7866:3473:86;;;;11265:14:58;11261:93;;8587:1642;7866:3473:86;;;;11371:14:58;11367:93;;8587:1642;7866:3473:86;;;;11477:14:58;11473:93;;8587:1642;7866:3473:86;;;11579:64:58;;8587:1642;7866:3473:86;;;9858:10:58;;;;:::i;:::-;7866:3473:86;;;;;9848:26:58;9907:10;;;;:::i;9897:26::-;9956:10;;;;:::i;9946:26::-;10005:10;;;;:::i;9995:26::-;10054:10;;;;:::i;10044:26::-;10103:10;;;;:::i;10093:26::-;10152:10;;;;:::i;10142:26::-;10201:10;;;:::i;11579:64::-;7866:3473:86;;11579:64:58;;11473:93;7866:3473:86;11511:11:58;;7866:3473:86;;11473:93:58;;;;11367;7866:3473:86;11405:11:58;;7866:3473:86;;11367:93:58;;;;11261;7866:3473:86;11299:11:58;;7866:3473:86;;11261:93:58;;;;11152:96;7866:3473:86;11191:12:58;;7866:3473:86;;11152:96:58;;;;11043;7866:3473:86;11082:12:58;;7866:3473:86;;11043:96:58;;;;10934;7866:3473:86;10973:12:58;;7866:3473:86;;10934:96:58;;;;10822:99;10862:13;;;7866:3473:86;10822:99:58;;;;12497:447:91;;;12694:10;;;;;;12926:11;;;12497:447;:::o;12687:230::-;2900:5:58;;;;;;7866:3473:86;;2910:5:58;;;7866:3473:86;;;;;;;;;13267:109:91;-1:-1:-1;13267:109:91;7866:3473:86;13267:109:91;;;-1:-1:-1;13267:109:91;;7866:3473:86;;;;;-1:-1:-1;12771:136:91;7866:3473:86;;;12830:10:91;;12771:136;;12687:230;;;;12771:136;7866:3473:86;;;;;;;;;;;12771:136:91;;;6893:76:26;;;:::i;:::-;;;:::i;:::-;1805:1:29;-1:-1:-1;;;;;;;;;;;7866:3473:86;6893:76:26:o;7866:3473:86:-;;;;;;;:::i;:::-;-1:-1:-1;7866:3473:86;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;-1:-1:-1;;;;;7866:3473:86;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7866:3473:86;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;5072:1269:82:-;5220:30;5072:1269;7866:3473:86;;:::i;:::-;;5220:30:82;7866:3473:86;;;5220:30:82;;;;;;:::i;:::-;5278:17;;7866:3473:86;5278:17:82;;7866:3473:86;-1:-1:-1;;;;;7866:3473:86;5278:54:82;;:178;;5072:1269;5261:258;;5534:9;5220:30;5549:33;;;5278:17;5591:3;5549:33;;7866:3473:86;;5545:44:82;;;;;5614:36;;;:50;:36;;:::i;:::-;7866:3473:86;-1:-1:-1;;;;;7866:3473:86;;;5614:50:82;;5610:119;;5747:73;5748:72;5783:36;;:33;;;:36;:::i;:::-;5748:72;:::i;:::-;5747:73;;7866:3473:86;5747:73:82;5743:140;;7866:3473:86;;5534:9:82;;5743:140;7866:3473:86;;-1:-1:-1;;;5847:21:82;;;;;5610:119;7866:3473:86;;-1:-1:-1;;;5691:23:82;;;;;5545:44;-1:-1:-1;5923:41:82;;-1:-1:-1;;5923:41:82;;;;5278:17;5973:3;5923:41;;7866:3473:86;;5919:52:82;;;;;5996:44;;;:58;:44;;:::i;:58::-;;5992:127;;6137:90;6138:89;6182:44;;:41;;;:44;:::i;:::-;6138:89;:::i;6137:90::-;6133:157;;7866:3473:86;;5908:9:82;;6133:157;7866:3473:86;;-1:-1:-1;;;6254:21:82;;;;;5992:127;7866:3473:86;;-1:-1:-1;;;6081:23:82;;;;;5919:52;;;;;;6317:17;5072:1269;:::o;5261:258::-;7866:3473:86;;-1:-1:-1;;;5488:20:82;;;;;5278:178;5353:33;5220:30;5353:33;;;7866:3473:86;5353:45:82;:102;5278:178;5353:102;5402:41;;;;;7866:3473:86;5402:53:82;5278:178;;6999:207:91;;7866:3473:86;;9594:15:61;-1:-1:-1;9619:18:61;9652:7;9658:1;9652:7;;9648:234;;6999:207:91;9906:53:61;;;;;:::i;:::-;9977:8;;;:63;-1:-1:-1;9977:63:61;;-1:-1:-1;;;;;7866:3473:86;;7168:7:91;7866:3473:86;;;7178:12:91;;:17;:12;;:17;:::i;9977:63:61:-;9992:41;10025:7;9992:48;10025:7;;:::i;:::-;9992:41;13267:109:91;;;;;;13089:293;;9992:41:61;7866:3473:86;;;;;9992:48:61;9977:63;;;9648:234;9695:14;;;;;:::i;:::-;7866:3473:86;;;;;;;9906:53:61;13267:109:91;;-1:-1:-1;13267:109:91;7866:3473:86;13267:109:91;;;-1:-1:-1;13267:109:91;;7866:3473:86;;;;;9727:48:61;9723:149;7866:3473:86;;;9795:10:61;9723:149;9648:234;;9723:149;9850:7;;;;;;:::i;:::-;9723:149;9648:234;;7866:3473:86;;;;;;;:::i;:::-;-1:-1:-1;7866:3473:86;;;;;;;:::o;11486:272:91:-;;7866:3473:86;11308:22:61;11718:31:91;11486:272;7866:3473:86;;:::i;:::-;;;;:::i;:::-;;11308:22:61;;:::i;:::-;7866:3473:86;;:::i;:::-;;11718:12:91;7866:3473:86;;;;;11731:17:91;7866:3473:86;;;;;11731:17:91;;7866:3473:86;;11718:12:91;;:31;:::i;:::-;7866:3473:86;;;;;;;;;:::i;:::-;;;;;;11731:17:91;11672:79;;7866:3473:86;11486:272:91;:::o;2557:104:58:-;;2641:5;;;;;;:13;2557:104;:::o;2641:13::-;;;2557:104;:::o;7866:3473:86:-;;;-1:-1:-1;;;7866:3473:86;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;7866:3473:86;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;11513:870:61;7866:3473:86;;11513:870:61;;;7866:3473:86;11513:870:61;11672:7;;;;7866:3473:86;11775:28:61;11795:7;;;:::i;7866:3473:86:-;;;;;;;;;;;;;;;;11877:15:61;-1:-1:-1;11873:91:61;;7866:3473:86;;12233:11:61;7866:3473:86;;;12027:16:61;7866:3473:86;;;;;;;12027:16:61;;;;12083:7;12063:43;12083:7;;12063:28;12083:7;;:::i;:::-;12063:28;13267:109:91;;;;;;13089:293;;12063:28:61;7866:3473:86;;;;;;;;;;;;;;;;;12063:43:61;12233:11;7866:3473:86;-1:-1:-1;;;;;7866:3473:86;;;12023:189:61;7866:3473:86;;;12145:52:61;7866:3473:86;12155:41:61;7866:3473:86;;:::i;:::-;;;;;;;;12155:41:61;-1:-1:-1;;;;;7866:3473:86;;12155:41:61;;;7866:3473:86;12145:52:61;:::i;:::-;12023:189;;11873:91;7866:3473:86;;-1:-1:-1;;;11919:30:61;;;;;11668:709;12283:52;7866:3473:86;;12293:41:61;7866:3473:86;;:::i;12293:41:61:-;-1:-1:-1;;;;;7866:3473:86;;12293:41:61;;;7866:3473:86;12145:52:61;:::i;12283:::-;11678:1;12349:17;;:::o;7084:141:26:-;7866:3473:86;-1:-1:-1;;;;;;;;;;;7866:3473:86;;;;7150:18:26;7146:73;;7084:141::o;7146:73::-;7866:3473:86;;-1:-1:-1;;;7191:17:26;;;;","linkReferences":{},"immutableReferences":{"64520":[{"start":2349,"length":32}],"64523":[{"start":4427,"length":32}],"65474":[{"start":1953,"length":32},{"start":4484,"length":32}],"65477":[{"start":1250,"length":32},{"start":9830,"length":32}],"65480":[{"start":1612,"length":32},{"start":7136,"length":32},{"start":7439,"length":32}],"65483":[{"start":1823,"length":32},{"start":6983,"length":32},{"start":7565,"length":32}],"68374":[{"start":3772,"length":32},{"start":6042,"length":32}],"68376":[{"start":3215,"length":32},{"start":6203,"length":32}],"68378":[{"start":4175,"length":32}],"69080":[{"start":1686,"length":32},{"start":5260,"length":32}]}},"methodIdentifiers":{"BASE_DELEGATOR_HINTS()":"79d89614","DEFAULT_ADMIN_ROLE()":"a217fddf","FACTORY()":"2dd31000","HOOK_GAS_LIMIT()":"ff54740f","HOOK_RESERVE()":"557cab44","HOOK_SET_ROLE()":"6679191e","NETWORK_LIMIT_SET_ROLE()":"7d24bb27","NETWORK_REGISTRY()":"c0cd7c3e","OPERATOR_NETWORK_LIMIT_SET_ROLE()":"518504ba","OPERATOR_NETWORK_OPT_IN_SERVICE()":"1a80e500","OPERATOR_VAULT_OPT_IN_SERVICE()":"128e5d82","OPT_IN_SERVICE_HINTS()":"9b656b22","TYPE()":"bb24fe8a","VAULT_FACTORY()":"103f2907","VAULT_HINTS()":"45e78fcb","VERSION()":"ffa1ad74","getRoleAdmin(bytes32)":"248a9ca3","grantRole(bytes32,address)":"2f2ff15d","hasRole(bytes32,address)":"91d14854","hook()":"7f5a7c7b","initialize(bytes)":"439fab91","maxNetworkLimit(bytes32)":"d15b740e","networkLimit(bytes32)":"3eb22c0f","networkLimitAt(bytes32,uint48,bytes)":"5d32a1c9","networkLimitHint(address,bytes32,uint48)":"da749d2b","networkLimitHintInternal(bytes32,uint48)":"197aa7ea","onSlash(bytes32,address,uint256,uint48,bytes)":"e49561ee","operatorNetworkLimit(bytes32,address)":"11422095","operatorNetworkLimitAt(bytes32,address,uint48,bytes)":"94d2558a","operatorNetworkLimitHint(address,bytes32,address,uint48)":"10a28b5d","operatorNetworkLimitHintInternal(bytes32,address,uint48)":"f7b05547","renounceRole(bytes32,address)":"36568abe","revokeRole(bytes32,address)":"d547741f","setHook(address)":"3dfd3873","setMaxNetworkLimit(uint96,uint256)":"23f752d5","setNetworkLimit(bytes32,uint256)":"02145348","setOperatorNetworkLimit(bytes32,address,uint256)":"020cf0c2","stake(bytes32,address)":"fd4d447c","stakeAt(bytes32,address,uint48,bytes)":"e02f6937","stakeHints(address,bytes32,address,uint48)":"25dc9708","staticDelegateCall(address,bytes)":"9f86fd85","supportsInterface(bytes4)":"01ffc9a7","vault()":"fbfa77cf"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"baseDelegatorHints\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"vaultHints\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"optInServiceHints\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"AccessControlBadConfirmation\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"neededRole\",\"type\":\"bytes32\"}],\"name\":\"AccessControlUnauthorizedAccount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AlreadySet\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CheckpointUnorderedInsertion\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"DuplicateRoleHolder\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ExceedsMaxNetworkLimit\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ExternalCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientHookGas\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MissingRoleHolders\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotNetwork\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotSlasher\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotVault\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ReentrancyGuardReentrantCall\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"bits\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"SafeCastOverflowedUintDowncast\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ZeroAddressRoleHolder\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint48\",\"name\":\"captureTimestamp\",\"type\":\"uint48\"}],\"name\":\"OnSlash\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"previousAdminRole\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"newAdminRole\",\"type\":\"bytes32\"}],\"name\":\"RoleAdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleRevoked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"hook\",\"type\":\"address\"}],\"name\":\"SetHook\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"SetMaxNetworkLimit\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"SetNetworkLimit\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"SetOperatorNetworkLimit\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"BASE_DELEGATOR_HINTS\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"DEFAULT_ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"FACTORY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"HOOK_GAS_LIMIT\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"HOOK_RESERVE\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"HOOK_SET_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"NETWORK_LIMIT_SET_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"NETWORK_REGISTRY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"OPERATOR_NETWORK_LIMIT_SET_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"OPERATOR_NETWORK_OPT_IN_SERVICE\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"OPERATOR_VAULT_OPT_IN_SERVICE\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"OPT_IN_SERVICE_HINTS\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"TYPE\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"VAULT_FACTORY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"VAULT_HINTS\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"VERSION\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleAdmin\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"grantRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"hook\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"}],\"name\":\"maxNetworkLimit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"}],\"name\":\"networkLimit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hint\",\"type\":\"bytes\"}],\"name\":\"networkLimitAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"}],\"name\":\"networkLimitHint\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"}],\"name\":\"networkLimitHintInternal\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"exists\",\"type\":\"bool\"},{\"internalType\":\"uint32\",\"name\":\"hint\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint48\",\"name\":\"captureTimestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"onSlash\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"operatorNetworkLimit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hint\",\"type\":\"bytes\"}],\"name\":\"operatorNetworkLimitAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"}],\"name\":\"operatorNetworkLimitHint\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"}],\"name\":\"operatorNetworkLimitHintInternal\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"exists\",\"type\":\"bool\"},{\"internalType\":\"uint32\",\"name\":\"hint\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"callerConfirmation\",\"type\":\"address\"}],\"name\":\"renounceRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"hook_\",\"type\":\"address\"}],\"name\":\"setHook\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint96\",\"name\":\"identifier\",\"type\":\"uint96\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"setMaxNetworkLimit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"setNetworkLimit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"setOperatorNetworkLimit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"stake\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hints\",\"type\":\"bytes\"}],\"name\":\"stakeAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"}],\"name\":\"stakeHints\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"staticDelegateCall\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"vault\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"AccessControlBadConfirmation()\":[{\"details\":\"The caller of a function is not the expected one. NOTE: Don't confuse with {AccessControlUnauthorizedAccount}.\"}],\"AccessControlUnauthorizedAccount(address,bytes32)\":[{\"details\":\"The `account` is missing a role.\"}],\"CheckpointUnorderedInsertion()\":[{\"details\":\"A value was attempted to be inserted on a past checkpoint.\"}],\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"ReentrancyGuardReentrantCall()\":[{\"details\":\"Unauthorized reentrant call.\"}],\"SafeCastOverflowedUintDowncast(uint8,uint256)\":[{\"details\":\"Value doesn't fit in an uint of `bits` size.\"}]},\"events\":{\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"OnSlash(bytes32,address,uint256,uint48)\":{\"params\":{\"amount\":\"amount of the collateral to be slashed\",\"captureTimestamp\":\"time point when the stake was captured\",\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"}},\"RoleAdminChanged(bytes32,bytes32,bytes32)\":{\"details\":\"Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole` `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite {RoleAdminChanged} not being emitted signaling this.\"},\"RoleGranted(bytes32,address,address)\":{\"details\":\"Emitted when `account` is granted `role`. `sender` is the account that originated the contract call, an admin role bearer except when using {AccessControl-_setupRole}.\"},\"RoleRevoked(bytes32,address,address)\":{\"details\":\"Emitted when `account` is revoked `role`. `sender` is the account that originated the contract call: - if using `revokeRole`, it is the admin role bearer - if using `renounceRole`, it is the role bearer (i.e. `account`)\"},\"SetHook(address)\":{\"params\":{\"hook\":\"address of the hook\"}},\"SetMaxNetworkLimit(bytes32,uint256)\":{\"params\":{\"amount\":\"new maximum subnetwork's limit (how much stake the subnetwork is ready to get)\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"}},\"SetNetworkLimit(bytes32,uint256)\":{\"params\":{\"amount\":\"new subnetwork's limit (how much stake the vault curator is ready to give to the subnetwork)\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"}},\"SetOperatorNetworkLimit(bytes32,address,uint256)\":{\"params\":{\"amount\":\"new operator's limit for the subnetwork (how much stake the vault curator is ready to give to the operator for the subnetwork)\",\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"}}},\"kind\":\"dev\",\"methods\":{\"VERSION()\":{\"details\":\"Must return 1 for this one.\",\"returns\":{\"_0\":\"version of the delegator\"}},\"getRoleAdmin(bytes32)\":{\"details\":\"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}.\"},\"grantRole(bytes32,address)\":{\"details\":\"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event.\"},\"hasRole(bytes32,address)\":{\"details\":\"Returns `true` if `account` has been granted `role`.\"},\"initialize(bytes)\":{\"params\":{\"data\":\"some data to use\"}},\"networkLimit(bytes32)\":{\"params\":{\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"},\"returns\":{\"_0\":\"limit of the subnetwork\"}},\"networkLimitAt(bytes32,uint48,bytes)\":{\"params\":{\"hint\":\"hint for checkpoint index\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\",\"timestamp\":\"time point to get the subnetwork limit at\"},\"returns\":{\"_0\":\"limit of the subnetwork at the given timestamp\"}},\"onSlash(bytes32,address,uint256,uint48,bytes)\":{\"details\":\"Only the vault's slasher can call this function.\",\"params\":{\"amount\":\"amount of the collateral slashed\",\"captureTimestamp\":\"time point when the stake was captured\",\"data\":\"some additional data\",\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"}},\"operatorNetworkLimit(bytes32,address)\":{\"params\":{\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"},\"returns\":{\"_0\":\"limit of the operator for the subnetwork\"}},\"operatorNetworkLimitAt(bytes32,address,uint48,bytes)\":{\"params\":{\"hint\":\"hint for checkpoint index\",\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\",\"timestamp\":\"time point to get the operator's limit for the subnetwork at\"},\"returns\":{\"_0\":\"limit of the operator for the subnetwork at the given timestamp\"}},\"renounceRole(bytes32,address)\":{\"details\":\"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `callerConfirmation`. May emit a {RoleRevoked} event.\"},\"revokeRole(bytes32,address)\":{\"details\":\"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event.\"},\"setHook(address)\":{\"details\":\"Only a HOOK_SET_ROLE holder can call this function. The hook can have arbitrary logic under certain functions, however, it doesn't affect the stake guarantees.\",\"params\":{\"hook\":\"address of the hook\"}},\"setMaxNetworkLimit(uint96,uint256)\":{\"details\":\"Only a network can call this function.\",\"params\":{\"amount\":\"new maximum subnetwork's limit\"}},\"setNetworkLimit(bytes32,uint256)\":{\"details\":\"Only a NETWORK_LIMIT_SET_ROLE holder can call this function.\",\"params\":{\"amount\":\"new limit of the subnetwork\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"}},\"setOperatorNetworkLimit(bytes32,address,uint256)\":{\"details\":\"Only an OPERATOR_NETWORK_LIMIT_SET_ROLE holder can call this function.\",\"params\":{\"amount\":\"new limit of the operator for the subnetwork\",\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"}},\"stake(bytes32,address)\":{\"details\":\"Warning: this function is not safe to use for stake capturing, as it can change by the end of the block.\",\"params\":{\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"},\"returns\":{\"_0\":\"slashable stake until the end of the next epoch\"}},\"stakeAt(bytes32,address,uint48,bytes)\":{\"details\":\"Warning: it is not safe to use timestamp >= current one for the stake capturing, as it can change later.\",\"params\":{\"hints\":\"hints for the checkpoints' indexes\",\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\",\"timestamp\":\"time point to capture the stake at\"},\"returns\":{\"_0\":\"slashable stake at the given timestamp until the end of the consequent epoch\"}},\"staticDelegateCall(address,bytes)\":{\"details\":\"It allows to use this contract's storage on-chain.\",\"params\":{\"data\":\"data to make a delegatecall with\",\"target\":\"address of the contract to make a delegatecall to\"}},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"}},\"version\":1},\"userdoc\":{\"events\":{\"OnSlash(bytes32,address,uint256,uint48)\":{\"notice\":\"Emitted when a slash happens.\"},\"SetHook(address)\":{\"notice\":\"Emitted when a hook is set.\"},\"SetMaxNetworkLimit(bytes32,uint256)\":{\"notice\":\"Emitted when a subnetwork's maximum limit is set.\"},\"SetNetworkLimit(bytes32,uint256)\":{\"notice\":\"Emitted when a subnetwork's limit is set.\"},\"SetOperatorNetworkLimit(bytes32,address,uint256)\":{\"notice\":\"Emitted when an operator's limit for a subnetwork is set.\"}},\"kind\":\"user\",\"methods\":{\"FACTORY()\":{\"notice\":\"Get the factory's address.\"},\"HOOK_GAS_LIMIT()\":{\"notice\":\"Get a gas limit for the hook.\"},\"HOOK_RESERVE()\":{\"notice\":\"Get a reserve gas between the gas limit check and the hook's execution.\"},\"HOOK_SET_ROLE()\":{\"notice\":\"Get a hook setter's role.\"},\"NETWORK_LIMIT_SET_ROLE()\":{\"notice\":\"Get a subnetwork limit setter's role.\"},\"NETWORK_REGISTRY()\":{\"notice\":\"Get the network registry's address.\"},\"OPERATOR_NETWORK_LIMIT_SET_ROLE()\":{\"notice\":\"Get an operator-subnetwork limit setter's role.\"},\"OPERATOR_NETWORK_OPT_IN_SERVICE()\":{\"notice\":\"Get the operator-network opt-in service's address.\"},\"OPERATOR_VAULT_OPT_IN_SERVICE()\":{\"notice\":\"Get the operator-vault opt-in service's address.\"},\"TYPE()\":{\"notice\":\"Get the entity's type.\"},\"VAULT_FACTORY()\":{\"notice\":\"Get the vault factory's address.\"},\"VERSION()\":{\"notice\":\"Get a version of the delegator (different versions mean different interfaces).\"},\"hook()\":{\"notice\":\"Get the hook's address.\"},\"initialize(bytes)\":{\"notice\":\"Initialize this entity contract by using a given data.\"},\"maxNetworkLimit(bytes32)\":{\"notice\":\"Get a particular subnetwork's maximum limit (meaning the subnetwork is not ready to get more as a stake).\"},\"networkLimit(bytes32)\":{\"notice\":\"Get a subnetwork's limit (how much stake the vault curator is ready to give to the subnetwork).\"},\"networkLimitAt(bytes32,uint48,bytes)\":{\"notice\":\"Get a subnetwork's limit at a given timestamp using a hint (how much stake the vault curator is ready to give to the subnetwork).\"},\"onSlash(bytes32,address,uint256,uint48,bytes)\":{\"notice\":\"Called when a slash happens.\"},\"operatorNetworkLimit(bytes32,address)\":{\"notice\":\"Get an operator's limit for a subnetwork. (how much stake the vault curator is ready to give to the operator for the subnetwork)\"},\"operatorNetworkLimitAt(bytes32,address,uint48,bytes)\":{\"notice\":\"Get an operator's limit for a subnetwork at a given timestamp using a hint (how much stake the vault curator is ready to give to the operator for the subnetwork).\"},\"setHook(address)\":{\"notice\":\"Set a new hook.\"},\"setMaxNetworkLimit(uint96,uint256)\":{\"notice\":\"Set a maximum limit for a subnetwork (how much stake the subnetwork is ready to get). identifier identifier of the subnetwork\"},\"setNetworkLimit(bytes32,uint256)\":{\"notice\":\"Set a subnetwork's limit (how much stake the vault curator is ready to give to the subnetwork).\"},\"setOperatorNetworkLimit(bytes32,address,uint256)\":{\"notice\":\"Set an operator's limit for a subnetwork. (how much stake the vault curator is ready to give to the operator for the subnetwork)\"},\"stake(bytes32,address)\":{\"notice\":\"Get a stake that a given subnetwork will be able to slash for a certain operator until the end of the next epoch (if no cross-slashing and no slashings by the subnetwork).\"},\"stakeAt(bytes32,address,uint48,bytes)\":{\"notice\":\"Get a stake that a given subnetwork could be able to slash for a certain operator at a given timestamp until the end of the consequent epoch using hints (if no cross-slashing and no slashings by the subnetwork).\"},\"staticDelegateCall(address,bytes)\":{\"notice\":\"Make a delegatecall from this contract to a given target contract with a particular data (always reverts with a return data).\"},\"vault()\":{\"notice\":\"Get the vault's address.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/contracts/hints/DelegatorHints.sol\":\"FullRestakeDelegatorHints\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol\":{\"keccak256\":\"0x6662ec4e5cefca03eeadd073e9469df8d2944bb2ee8ec8f7622c2c46aab5f225\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4d8544c6f8daa4d1bc215c6a72fe0acdb748664a105b0e5efc19295667521d45\",\"dweb:/ipfs/QmdGWqdnXT8S3RgCR6aV8XHZrsybieMQLLnug1NtpSjEXN\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0xc163fcf9bb10138631a9ba5564df1fa25db9adff73bd9ee868a8ae1858fe093a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9706d43a0124053d9880f6e31a59f31bc0a6a3dc1acd66ce0a16e1111658c5f6\",\"dweb:/ipfs/QmUFmfowzkRwGtDu36cXV9SPTBHJ3n7dG9xQiK5B28jTf2\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609\",\"dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9\",\"dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardUpgradeable.sol\":{\"keccak256\":\"0xb44e086e941292cdc7f440de51478493894ef0b1aeccb0c4047445919f667f74\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://942dad22fbdc1669f025540ba63aa3ccfad5f8458fc5d4525b31ebf272e7af45\",\"dweb:/ipfs/Qmdo4X2M82aM3AMoW2kf2jhYkSCyC4T1pHNd6obdsDFnAB\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol\":{\"keccak256\":\"0xdaba3f7c42c55b2896353f32bd27d4d5f8bae741b3b05d4c53f67abc4dc47ce8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1fa2e61141c602510bcd2cd936ed9561922ac8772a9b9c9a9db091a74e354a45\",\"dweb:/ipfs/QmcHQDDoEBwJmwUbzoVkytvJsBx3KVHYFFnDkvRGWh9Wmh\"]},\"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0xb6b36edd6a2999fd243ff226d6cbf84bd71af2432bbd0dfe19392996a1d9cb41\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1fd2f35495652e57e3f99bc6c510bc5f7dd398a176ea2e72d8ed730aebc6ca26\",\"dweb:/ipfs/QmTQV6X4gkikTib49cho5iDX3JvSQbdsoEChoDwrk3CbbH\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC1271.sol\":{\"keccak256\":\"0x85a45f3f10014a0f8be41157a32b6a5f905753ea64a4b64e29fc12b7deeecf39\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c3c74009ce36136b36c77c23935b8e4a7b4f253be2da2be4fb4a916b1ce43743\",\"dweb:/ipfs/QmcH36v3iN7SJJuF73AunLR2LtNxhVJ1wm63ph4dPZ4pcL\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC5267.sol\":{\"keccak256\":\"0x92aa1df62dc3d33f1656d63bede0923e0df0b706ad4137c8b10b0a8fe549fd92\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c5c0f29195ad64cbe556da8e257dac8f05f78c53f90323c0d2accf8e6922d33a\",\"dweb:/ipfs/QmQ61TED8uaCZwcbh8KkgRSsCav7x7HbcGHwHts3U4DmUP\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c\",\"dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0x6008dabfe393240d73d7dd7688033f72740d570aa422254d29a7dce8568f3aff\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f5196ec75139918c6c7bb4251b36395e668f1fa6d206beba7e7520e74913940d\",\"dweb:/ipfs/QmSyqjksXxmm2mCG6qRd1yuwLykypkSVBbnBnGqJRcuJMi\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x37bb49513c49c87c4642a891b13b63571bc87013dde806617aa1efb54605f386\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b3036b3a83b7c48f96641f2a9002b9f2dcb6a5958dd670894ada21ae8229b3d0\",\"dweb:/ipfs/QmUNfSBdoVtjhETaUJCYcaC7pTMgbhht926tJ2uXJbiVd3\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0xaf28a975a78550e45f65e559a3ad6a5ad43b9b8a37366999abd1b7084eb70721\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b7bd24e224f67f65bfadf85dc2929fa965456bb2415478bd0125471b5ce35245\",\"dweb:/ipfs/QmRaydGr8BTHs1kvaZfsNU69pKzUAGFrvABn1KiRSbE51y\"]},\"lib/openzeppelin-contracts/contracts/utils/ShortStrings.sol\":{\"keccak256\":\"0x18a7171df639a934592915a520ecb97c5bbc9675a1105607aac8a94e72bf62c6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7478e1f13da69a2867ccd883001d836b75620362e743f196376d63ed0c422a1c\",\"dweb:/ipfs/QmWywcQ9TNfwtoqAxbn25d8C5VrV12PrPS9UjtGe6pL2BA\"]},\"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0x32ba59b4b7299237c8ba56319110989d7978a039faf754793064e967e5894418\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1ae50c8b562427df610cc4540c9bf104acca7ef8e2dcae567ae7e52272281e9c\",\"dweb:/ipfs/QmTHiadFCSJUPpRjNegc5SahmeU8bAoY8i9Aq6tVscbcKR\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0x55f102ea785d8399c0e58d1108e2d289506dde18abc6db1b7f68c1f9f9bc5792\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e52e0a7765c943ef14e5bcf11e46e6139fa044be564881378349236bf2e3453\",\"dweb:/ipfs/QmZEeeXoFPW47amyP35gfzomF9DixqqTEPwzBakv6cZw6i\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0xeed0a08b0b091f528356cbc7245891a4c748682d4f6a18055e8e6ca77d12a6cf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba80ba06c8e6be852847e4c5f4492cef801feb6558ae09ed705ff2e04ea8b13c\",\"dweb:/ipfs/QmXRJDv3xHLVQCVXg1ZvR35QS9sij5y9NDWYzMfUfAdTHF\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/EIP712.sol\":{\"keccak256\":\"0x999f705a027ed6dc2d4e0df2cc4a509852c6bfd11de1c8161bf88832d0503fd0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0798def67258d9a3cc20b2b4da7ebf351a5cefe0abfdd665d2d81f8e32f89b21\",\"dweb:/ipfs/QmPEvJosnPfzHNjKvCv2D3891mA2Ww8eUwkqrxBjuYdHCt\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol\":{\"keccak256\":\"0xba333517a3add42cd35fe877656fc3dfcc9de53baa4f3aabbd6d12a92e4ea435\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2ceacff44c0fdc81e48e0e0b1db87a2076d3c1fb497341de077bf1da9f6b406c\",\"dweb:/ipfs/QmRUo1muMRAewxrKQ7TkXUtknyRoR57AyEkoPpiuZQ8FzX\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/SignatureChecker.sol\":{\"keccak256\":\"0x6b11eb41a228cca35d4b662b4df69fcd75192851365102690f57b2ac01e83fe6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ab006a2983ed350d2af21ddcdd835dcae3b8340086cc4d088460da5abd041f69\",\"dweb:/ipfs/QmbEacDhkJZiGrgzLjB4pNtE8Z1uudjDw1DvcDUTVQFsLG\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875\",\"dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0xe19a4d5f31d2861e7344e8e535e2feafb913d806d3e2b5fe7782741a2a7094fe\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4aed79c0fa6f0546ed02f2f683e8f77f0fd2ed7eb34d8bbf3d373c9a6d95b13c\",\"dweb:/ipfs/QmWqVz6UAVqmnWU5pqYPt1o6iDEZyPaBraAA3rKfTTSfYj\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x5f7e4076e175393767754387c962926577f1660dd9b810187b9002407656be72\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7d533a1c97cd43a57cd9c465f7ee8dd0e39ae93a8fb8ff8e5303a356b081cdcc\",\"dweb:/ipfs/QmVBEei6aTnvYNZp2CHYVNKyZS4q1KkjANfY39WVXZXVoT\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/Checkpoints.sol\":{\"keccak256\":\"0xbdc5e074d7dd6678f67e92b1a51a20226801a407b0e1af3da367c5d1ff4519ad\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a36cca6b22fff3db16fc789ff6c60eea71d4b156065d4d0c83a0bc5e91a77a8b\",\"dweb:/ipfs/QmYN3exd5AemxjBrN8XMB1p5LbbE16uC3sjbYjwi8AjcGR\"]},\"lib/openzeppelin-contracts/contracts/utils/types/Time.sol\":{\"keccak256\":\"0xc7755af115020049e4140f224f9ee88d7e1799ffb0646f37bf0df24bf6213f58\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7f09bf94d5274334ec021f61a04659db303f31e60460e14b709c9bf187740111\",\"dweb:/ipfs/QmNvgomZYUwFAt4cZbPWAiTeSZQreGehY9BK5xyVJsUttb\"]},\"src/contracts/common/Entity.sol\":{\"keccak256\":\"0x3d61a932995b8443381f3950542d388223a2c26dd5d29a3274dea3baa7388bd7\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://7cdf5f03ca72fd263fd32ff59c8d88ddca911ae83896a287d10772c1bbe9b138\",\"dweb:/ipfs/QmbP84r5BWT1Rn9AYTntWSf3xUMTTCohTZJFhbBhDXFoHa\"]},\"src/contracts/common/MigratableEntity.sol\":{\"keccak256\":\"0x2d736f4dacd5d7e7697503bc426c78b8250fe1694ca157965ec178da6807de58\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://f1237acf96b4b9f9b69156e068eddd726a6e15bd8e87a18dc999cd4ba4da069c\",\"dweb:/ipfs/QmS6M8fiFFSeuJ4ZKKq1z8W7w4ybeHQSy5TLASGoc1LVic\"]},\"src/contracts/common/StaticDelegateCallable.sol\":{\"keccak256\":\"0x350029aa8955eacaffffaeb58babc5c98e80ebc5c5db388ed17ee6465f4a9d90\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://eb392a8ee9050e0af606897df63e3404e3829e8b688b580663892f9664195764\",\"dweb:/ipfs/QmaXC8jqV8UrrAFkzXTEv2fJF56sy33HhLxAzaRZmUxuXD\"]},\"src/contracts/delegator/BaseDelegator.sol\":{\"keccak256\":\"0x7c54d491fdd4415b764a9c8defa068e56d4c0c8c9419be0053a1d377669290e8\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://9238bfbad0f6eeb0dc7727724de14380f1980b395902269703d5e2ef07e52e10\",\"dweb:/ipfs/QmPJn1V4HNXcEghYvogGuSTF24dSQUPosR5qtsXcmNqRm3\"]},\"src/contracts/delegator/FullRestakeDelegator.sol\":{\"keccak256\":\"0x0a81c4f8e72914563a9cb771e93acf889c71ea36b7bec040e4eb562b199d5af1\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://6fc66b6ba02da77046a0bbbd1dd407a62c08f52e04486c9cbd2cb1cca3da555f\",\"dweb:/ipfs/QmZQivK1ZnMxfRQQ5aLpV9co5u55wQVNev5Rg1hzAqxhkE\"]},\"src/contracts/delegator/NetworkRestakeDelegator.sol\":{\"keccak256\":\"0xd3a8e6522f9c6fdcc2da837c9023afd6bdff2bce45a35590320c475519e3636d\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://58b17a87f6554f08376f9ea7fedf486a4aa75801bf0ad8b23ff5a46959b6b7a3\",\"dweb:/ipfs/QmSTmNh67tYt8CmjVZb57r8N3qX5yeYdMApKPJm3qvQgQw\"]},\"src/contracts/delegator/OperatorNetworkSpecificDelegator.sol\":{\"keccak256\":\"0x031a10722b9ec49048f0952710401131290adb87e71caf294e864e7ac3b98a16\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://72428febc875134b2f29205e6f294634a1c22a7d5c78d6a9cb2f8196f107c9b5\",\"dweb:/ipfs/QmTPwXR6h5oytckmkLrHdKeEMdphJxceDhYUR4zvQeWAwY\"]},\"src/contracts/delegator/OperatorSpecificDelegator.sol\":{\"keccak256\":\"0x630ce62fa30b9f3349ab7a8cf8dbf041319febc6dd757be2f94d3d25944ed328\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://c2ac59d47ce57d2a6819ae9833e1a618a371eccff93eb5ab367b201b01f42bfa\",\"dweb:/ipfs/QmdBpGMBivpNPv2WbH8vnCUy5xkVeaxQvGgqi33vKCz1kA\"]},\"src/contracts/hints/DelegatorHints.sol\":{\"keccak256\":\"0x44aa0c396311a54afbc7c73e8dadeed41e3165a4fd13f712b27d63d50fc3376d\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://2f255214f3531fc707d88be0d56a7a0aed4180439316d099d760d9118aa83093\",\"dweb:/ipfs/QmZD1w5p1ukJSXumUAjvxwGmkPhn7vsr21Y2atLGEZR2oi\"]},\"src/contracts/hints/Hints.sol\":{\"keccak256\":\"0x8b565df1ae35993c097a9e642002782a8f451f6fd01809cad6bcd345bdf1b99c\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://99a19adb01e350a92f534095b3078229df1f2f83077992d75d58d8684be45971\",\"dweb:/ipfs/QmbmwcuswVbzvwHQFTtrJG86oV98GnfxqYTb8cV8u1acox\"]},\"src/contracts/hints/OptInServiceHints.sol\":{\"keccak256\":\"0x95d9407900d27b9f4a1233b772aeed809c07b2dc5b31cfc9fa77ca26514c49e5\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://a13a8877e312d7e6b8b85bde3668c5d84ff5ecc83f762cd573f2b7104c64eb42\",\"dweb:/ipfs/QmYV2J55acuGzCNnS3juABuUHY5U1xc8g8o9jwEyFFdeG5\"]},\"src/contracts/hints/VaultHints.sol\":{\"keccak256\":\"0xccb505b7159b769cc114d67b87c2de6b106557f667fc8f3780114baad5c3c442\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://6d0c80a908fc16e96a8b5605a0bd53f9e89ad0ef0a738fbbae80ba4d3160749b\",\"dweb:/ipfs/QmXo5UtWoR8YmunqcbBU8rQMm1nvmvjNPoXcVrDhh4pEwR\"]},\"src/contracts/libraries/Checkpoints.sol\":{\"keccak256\":\"0xba90097c8bfe0a975499428b5f8ac5569483c7d92ccc28c12d70de416aae040c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://12f5d93ca94cd06d3147db68993165a58e17903ed53682560de61f3085ad4609\",\"dweb:/ipfs/QmePiuAqvXprMLmFZkGZeGjvGPAvsEDHfCDv7BoQhXu9xE\"]},\"src/contracts/libraries/ERC4626Math.sol\":{\"keccak256\":\"0x8441160513c1cbeb1c3b9ee077bcc7e7ce20006b52a77c8dd39ff0ef89699939\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://943f8cc3e26ddf649f465f40c909819f5c864717c4baa339e9e403b9374a4653\",\"dweb:/ipfs/QmXPxi1sUDsrGprZdUgCzoPEosaZMv9ZhygWQ1vAi1phAB\"]},\"src/contracts/libraries/Subnetwork.sol\":{\"keccak256\":\"0xf5ef5506fd66082b3c2e7f3df37529f5a8efad32ac62e7c8914bd63219190bfe\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba031a54ee0d0e9a270c2b9e18437f5668cfeb659cfd5fe0677459d7fcac2a56\",\"dweb:/ipfs/QmReP3H7qQ78tAfgLnJKsNEQNCQfF1X1Get38Ffd4kzq32\"]},\"src/contracts/service/OptInService.sol\":{\"keccak256\":\"0x4e0932077f2686b7990e10d59deb2535334c0d09e52ef6e57c6ab09eca21c4b1\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://7c00d311032ed4a1743aca7475f3c86ce15cdfc2218108efc3731c03d34a5278\",\"dweb:/ipfs/QmUGGfVwVhaHr5kS4177yKKYiLYzi5qZpkEmvYxBZqazxf\"]},\"src/contracts/vault/Vault.sol\":{\"keccak256\":\"0x2ceff6ed3298c4cad144c99fcc79b51cb9397d6ebef00285b915848b476f8c2e\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://11f2fb3581854f3ab6e82e8d4935d9eb510c903a13c3f022346c2956a58f5307\",\"dweb:/ipfs/QmdUnoXoyYoG9SGWyQZCFyLDRUUX3eXyXetkRvw6jxqqBz\"]},\"src/contracts/vault/VaultStorage.sol\":{\"keccak256\":\"0x57db25b127d77ea3472de53e3a4af3354399655b9268638b99ca5925fa364a56\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://aa763d9a6ec508ae3abfb8228b72b9fd9525279e5135d4962e79ff059feb1173\",\"dweb:/ipfs/QmcbDR6E9wyEpu6V2FkEC4hnWy47zXA9LSKJde6zSGd33Q\"]},\"src/interfaces/common/IEntity.sol\":{\"keccak256\":\"0x8ef4b63d6da63489778ccd5f8d13ebdd527dd4b62730b2c616df5af7474d2d21\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a8d69576a9219d85c50816a18ad53a4d53cfcb27ed38b8cccc808dc2734b71b\",\"dweb:/ipfs/QmYVN3P4Q4REvBWJ97TbAcaxm3uyB2anV6NSGa6ZtSwcEv\"]},\"src/interfaces/common/IMigratableEntity.sol\":{\"keccak256\":\"0x8f5f2809f3afbe8ebfbb365dd7b57b4dd3b6f9943a6187eaf648d45895b8e3c4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ffe640537d539e7a4fde70d30d3e4c57f4ba9c2c25c450cea713aae38e8fd5c\",\"dweb:/ipfs/QmSUTGzvdcn1R1KB7tLThMRtESsfPbeXDhhhKWGtntzBds\"]},\"src/interfaces/common/IRegistry.sol\":{\"keccak256\":\"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014\",\"dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK\"]},\"src/interfaces/common/IStaticDelegateCallable.sol\":{\"keccak256\":\"0xa335d4e81b9071b7de66ef92b43ff20671d86516eb1be46fef29a3483cd3f5d5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d464b9db863c14c05547d2b23352f2e9b7b784799cf09f6bbc4906a2a74e3516\",\"dweb:/ipfs/QmUVWzFvJz7eEbDQKiFTTzwi7TEbjcs3VmwdM4kuptAKvi\"]},\"src/interfaces/delegator/IBaseDelegator.sol\":{\"keccak256\":\"0x96bb312f032e17accce3f8f80936d99468029d6b37c9ca74acdb4b026a0148ee\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2a66dcb5b7d1a6ef6a363431ea98ebd78bc4fdd3d7a134d9b542dc66e7d025c2\",\"dweb:/ipfs/QmRhTPLd2ZAyRHmJUFUcWKs9b3if49QY17LYZuRqWmghw8\"]},\"src/interfaces/delegator/IDelegatorHook.sol\":{\"keccak256\":\"0xc51aa8d7d1f6c8043ee819b7aeb86da0e993912e1442098df897e299f01f9f46\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://adddf5cb2ba282aeb576b26efb28640f865a1721cc9b6eee8b3ee0457a2c9780\",\"dweb:/ipfs/QmNYgAmnLRwWZbhTuQhZs9rx4zcme1df5mEepkrniorSoW\"]},\"src/interfaces/delegator/IFullRestakeDelegator.sol\":{\"keccak256\":\"0xa3c8cb2e45d4d8ce90e95263bea40c01dc400f05ad65bc29597d878606be5e7d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://782cf5e201aa4cca037ebafd3807a68ff1cc721d5b8416a35244db0d0607369e\",\"dweb:/ipfs/QmQkJks6x7CKndeTPa9LxgTNygD5uEi7obhADhpq1Lsr9A\"]},\"src/interfaces/delegator/INetworkRestakeDelegator.sol\":{\"keccak256\":\"0xe7030fe30389a147fd710e3436ec346b4842695fd3e65a81b95375c9f1d633fc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://739c7e66d301778054f5c90bee45ec9438f68afba8a03eaaac52064c73b115ad\",\"dweb:/ipfs/QmfZ2ytKcTykAc76nxhg8ikUXV8NdBpetqb8W4YWPcox1Z\"]},\"src/interfaces/delegator/IOperatorNetworkSpecificDelegator.sol\":{\"keccak256\":\"0x74b95e64d29769202d45dd277bb830f623ff3d41ce77b80ce3ee4e318a5c71ec\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e512b903aae5c1b8a028c6e3f4f6223b5cb5d704503cfa6bd37b5346868f5c20\",\"dweb:/ipfs/QmZim9YExsPWtyxyeui993HTKAEmrg8MUcSkZ77Gp2JcuZ\"]},\"src/interfaces/delegator/IOperatorSpecificDelegator.sol\":{\"keccak256\":\"0x72075cab585dc17240cc3e32bc99b92f0d5627ddd988fed680e3e1a52d5a01e4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7448bc90699409ae61d85216b5efc2143a37f0f73354be2aea993bc54afca441\",\"dweb:/ipfs/QmXE4gAxM8pHosZK8mcTcj17puBx484meDCcmrDePskGHZ\"]},\"src/interfaces/service/IOptInService.sol\":{\"keccak256\":\"0x76fb5460a6d87a5705433d4fbeff7253cd75b8bbd0c888b2088f16e86ace146a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://990322019b3d11465f7024bae77ccbf7e2fe5d6fa3c754584778f37d04fa1337\",\"dweb:/ipfs/QmaSNHzcqxTkUCG9a4nqVfLECHLdjdrwAnDi3yDC7tDL24\"]},\"src/interfaces/slasher/IBaseSlasher.sol\":{\"keccak256\":\"0x7c82528b445659c313ab77335c407b0b6efe5e79027187bb287f7bc74202b404\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0274c90aa5df1aa6bb470a6aab53992fb14fd7e5472c9430416505b29647d9cf\",\"dweb:/ipfs/QmckbmJLDetPemVzCnnGcKYWAZV2BRFXGDsjiaec8jkHxx\"]},\"src/interfaces/vault/IVault.sol\":{\"keccak256\":\"0xffee01d383cd4e1a5530c614bf4360c1ef070c288abec9da1eb531b51bc07235\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://04f0046cac285d8ec44ebbb1f79dc94fab4495767190cad8364fbc1fafaadfb9\",\"dweb:/ipfs/QmUawAunwzXfCyShWfhKeThAgKtqe51hmrxvrXvM772M2R\"]},\"src/interfaces/vault/IVaultStorage.sol\":{\"keccak256\":\"0x592626f13754194f83047135de19229c49390bd59e34659b1bb38be71d973a22\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://06a6a9dfddd05e580b32bebe2cff4f63ba26a653180676d58225dd30d9c89d3e\",\"dweb:/ipfs/QmdgzBeY6Sxo8mGtyBxtv1tM1c2kU6J6zjeRd7vuXm4DU6\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.25+commit.b61c2a91"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"baseDelegatorHints","type":"address"},{"internalType":"address","name":"vaultHints","type":"address"},{"internalType":"address","name":"optInServiceHints","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"AccessControlBadConfirmation"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bytes32","name":"neededRole","type":"bytes32"}],"type":"error","name":"AccessControlUnauthorizedAccount"},{"inputs":[],"type":"error","name":"AlreadySet"},{"inputs":[],"type":"error","name":"CheckpointUnorderedInsertion"},{"inputs":[],"type":"error","name":"DuplicateRoleHolder"},{"inputs":[],"type":"error","name":"ExceedsMaxNetworkLimit"},{"inputs":[],"type":"error","name":"ExternalCall"},{"inputs":[],"type":"error","name":"InsufficientHookGas"},{"inputs":[],"type":"error","name":"InvalidInitialization"},{"inputs":[],"type":"error","name":"MissingRoleHolders"},{"inputs":[],"type":"error","name":"NotInitialized"},{"inputs":[],"type":"error","name":"NotInitializing"},{"inputs":[],"type":"error","name":"NotNetwork"},{"inputs":[],"type":"error","name":"NotSlasher"},{"inputs":[],"type":"error","name":"NotVault"},{"inputs":[],"type":"error","name":"ReentrancyGuardReentrantCall"},{"inputs":[{"internalType":"uint8","name":"bits","type":"uint8"},{"internalType":"uint256","name":"value","type":"uint256"}],"type":"error","name":"SafeCastOverflowedUintDowncast"},{"inputs":[],"type":"error","name":"ZeroAddressRoleHolder"},{"inputs":[{"internalType":"uint64","name":"version","type":"uint64","indexed":false}],"type":"event","name":"Initialized","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32","indexed":true},{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false},{"internalType":"uint48","name":"captureTimestamp","type":"uint48","indexed":false}],"type":"event","name":"OnSlash","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"bytes32","name":"previousAdminRole","type":"bytes32","indexed":true},{"internalType":"bytes32","name":"newAdminRole","type":"bytes32","indexed":true}],"type":"event","name":"RoleAdminChanged","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"address","name":"sender","type":"address","indexed":true}],"type":"event","name":"RoleGranted","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"address","name":"sender","type":"address","indexed":true}],"type":"event","name":"RoleRevoked","anonymous":false},{"inputs":[{"internalType":"address","name":"hook","type":"address","indexed":true}],"type":"event","name":"SetHook","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"SetMaxNetworkLimit","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"SetNetworkLimit","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32","indexed":true},{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"SetOperatorNetworkLimit","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"BASE_DELEGATOR_HINTS","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"DEFAULT_ADMIN_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"FACTORY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"HOOK_GAS_LIMIT","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"HOOK_RESERVE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"HOOK_SET_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"NETWORK_LIMIT_SET_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"NETWORK_REGISTRY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"OPERATOR_NETWORK_LIMIT_SET_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"OPERATOR_NETWORK_OPT_IN_SERVICE","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"OPERATOR_VAULT_OPT_IN_SERVICE","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"OPT_IN_SERVICE_HINTS","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"TYPE","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"VAULT_FACTORY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"VAULT_HINTS","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"VERSION","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getRoleAdmin","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"grantRole"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"hasRole","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"hook","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"}],"stateMutability":"view","type":"function","name":"maxNetworkLimit","outputs":[{"internalType":"uint256","name":"value","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"}],"stateMutability":"view","type":"function","name":"networkLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"uint48","name":"timestamp","type":"uint48"},{"internalType":"bytes","name":"hint","type":"bytes"}],"stateMutability":"view","type":"function","name":"networkLimitAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"delegator","type":"address"},{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"uint48","name":"timestamp","type":"uint48"}],"stateMutability":"view","type":"function","name":"networkLimitHint","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"uint48","name":"timestamp","type":"uint48"}],"stateMutability":"view","type":"function","name":"networkLimitHintInternal","outputs":[{"internalType":"bool","name":"exists","type":"bool"},{"internalType":"uint32","name":"hint","type":"uint32"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint48","name":"captureTimestamp","type":"uint48"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"onSlash"},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"operatorNetworkLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint48","name":"timestamp","type":"uint48"},{"internalType":"bytes","name":"hint","type":"bytes"}],"stateMutability":"view","type":"function","name":"operatorNetworkLimitAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"delegator","type":"address"},{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint48","name":"timestamp","type":"uint48"}],"stateMutability":"view","type":"function","name":"operatorNetworkLimitHint","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint48","name":"timestamp","type":"uint48"}],"stateMutability":"view","type":"function","name":"operatorNetworkLimitHintInternal","outputs":[{"internalType":"bool","name":"exists","type":"bool"},{"internalType":"uint32","name":"hint","type":"uint32"}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"callerConfirmation","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"renounceRole"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"revokeRole"},{"inputs":[{"internalType":"address","name":"hook_","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setHook"},{"inputs":[{"internalType":"uint96","name":"identifier","type":"uint96"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setMaxNetworkLimit"},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setNetworkLimit"},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setOperatorNetworkLimit"},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"stake","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint48","name":"timestamp","type":"uint48"},{"internalType":"bytes","name":"hints","type":"bytes"}],"stateMutability":"view","type":"function","name":"stakeAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"delegator","type":"address"},{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint48","name":"timestamp","type":"uint48"}],"stateMutability":"view","type":"function","name":"stakeHints","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"staticDelegateCall"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"vault","outputs":[{"internalType":"address","name":"","type":"address"}]}],"devdoc":{"kind":"dev","methods":{"VERSION()":{"details":"Must return 1 for this one.","returns":{"_0":"version of the delegator"}},"getRoleAdmin(bytes32)":{"details":"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}."},"grantRole(bytes32,address)":{"details":"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event."},"hasRole(bytes32,address)":{"details":"Returns `true` if `account` has been granted `role`."},"initialize(bytes)":{"params":{"data":"some data to use"}},"networkLimit(bytes32)":{"params":{"subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"},"returns":{"_0":"limit of the subnetwork"}},"networkLimitAt(bytes32,uint48,bytes)":{"params":{"hint":"hint for checkpoint index","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)","timestamp":"time point to get the subnetwork limit at"},"returns":{"_0":"limit of the subnetwork at the given timestamp"}},"onSlash(bytes32,address,uint256,uint48,bytes)":{"details":"Only the vault's slasher can call this function.","params":{"amount":"amount of the collateral slashed","captureTimestamp":"time point when the stake was captured","data":"some additional data","operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"}},"operatorNetworkLimit(bytes32,address)":{"params":{"operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"},"returns":{"_0":"limit of the operator for the subnetwork"}},"operatorNetworkLimitAt(bytes32,address,uint48,bytes)":{"params":{"hint":"hint for checkpoint index","operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)","timestamp":"time point to get the operator's limit for the subnetwork at"},"returns":{"_0":"limit of the operator for the subnetwork at the given timestamp"}},"renounceRole(bytes32,address)":{"details":"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `callerConfirmation`. May emit a {RoleRevoked} event."},"revokeRole(bytes32,address)":{"details":"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event."},"setHook(address)":{"details":"Only a HOOK_SET_ROLE holder can call this function. The hook can have arbitrary logic under certain functions, however, it doesn't affect the stake guarantees.","params":{"hook":"address of the hook"}},"setMaxNetworkLimit(uint96,uint256)":{"details":"Only a network can call this function.","params":{"amount":"new maximum subnetwork's limit"}},"setNetworkLimit(bytes32,uint256)":{"details":"Only a NETWORK_LIMIT_SET_ROLE holder can call this function.","params":{"amount":"new limit of the subnetwork","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"}},"setOperatorNetworkLimit(bytes32,address,uint256)":{"details":"Only an OPERATOR_NETWORK_LIMIT_SET_ROLE holder can call this function.","params":{"amount":"new limit of the operator for the subnetwork","operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"}},"stake(bytes32,address)":{"details":"Warning: this function is not safe to use for stake capturing, as it can change by the end of the block.","params":{"operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"},"returns":{"_0":"slashable stake until the end of the next epoch"}},"stakeAt(bytes32,address,uint48,bytes)":{"details":"Warning: it is not safe to use timestamp >= current one for the stake capturing, as it can change later.","params":{"hints":"hints for the checkpoints' indexes","operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)","timestamp":"time point to capture the stake at"},"returns":{"_0":"slashable stake at the given timestamp until the end of the consequent epoch"}},"staticDelegateCall(address,bytes)":{"details":"It allows to use this contract's storage on-chain.","params":{"data":"data to make a delegatecall with","target":"address of the contract to make a delegatecall to"}},"supportsInterface(bytes4)":{"details":"See {IERC165-supportsInterface}."}},"version":1},"userdoc":{"kind":"user","methods":{"FACTORY()":{"notice":"Get the factory's address."},"HOOK_GAS_LIMIT()":{"notice":"Get a gas limit for the hook."},"HOOK_RESERVE()":{"notice":"Get a reserve gas between the gas limit check and the hook's execution."},"HOOK_SET_ROLE()":{"notice":"Get a hook setter's role."},"NETWORK_LIMIT_SET_ROLE()":{"notice":"Get a subnetwork limit setter's role."},"NETWORK_REGISTRY()":{"notice":"Get the network registry's address."},"OPERATOR_NETWORK_LIMIT_SET_ROLE()":{"notice":"Get an operator-subnetwork limit setter's role."},"OPERATOR_NETWORK_OPT_IN_SERVICE()":{"notice":"Get the operator-network opt-in service's address."},"OPERATOR_VAULT_OPT_IN_SERVICE()":{"notice":"Get the operator-vault opt-in service's address."},"TYPE()":{"notice":"Get the entity's type."},"VAULT_FACTORY()":{"notice":"Get the vault factory's address."},"VERSION()":{"notice":"Get a version of the delegator (different versions mean different interfaces)."},"hook()":{"notice":"Get the hook's address."},"initialize(bytes)":{"notice":"Initialize this entity contract by using a given data."},"maxNetworkLimit(bytes32)":{"notice":"Get a particular subnetwork's maximum limit (meaning the subnetwork is not ready to get more as a stake)."},"networkLimit(bytes32)":{"notice":"Get a subnetwork's limit (how much stake the vault curator is ready to give to the subnetwork)."},"networkLimitAt(bytes32,uint48,bytes)":{"notice":"Get a subnetwork's limit at a given timestamp using a hint (how much stake the vault curator is ready to give to the subnetwork)."},"onSlash(bytes32,address,uint256,uint48,bytes)":{"notice":"Called when a slash happens."},"operatorNetworkLimit(bytes32,address)":{"notice":"Get an operator's limit for a subnetwork. (how much stake the vault curator is ready to give to the operator for the subnetwork)"},"operatorNetworkLimitAt(bytes32,address,uint48,bytes)":{"notice":"Get an operator's limit for a subnetwork at a given timestamp using a hint (how much stake the vault curator is ready to give to the operator for the subnetwork)."},"setHook(address)":{"notice":"Set a new hook."},"setMaxNetworkLimit(uint96,uint256)":{"notice":"Set a maximum limit for a subnetwork (how much stake the subnetwork is ready to get). identifier identifier of the subnetwork"},"setNetworkLimit(bytes32,uint256)":{"notice":"Set a subnetwork's limit (how much stake the vault curator is ready to give to the subnetwork)."},"setOperatorNetworkLimit(bytes32,address,uint256)":{"notice":"Set an operator's limit for a subnetwork. (how much stake the vault curator is ready to give to the operator for the subnetwork)"},"stake(bytes32,address)":{"notice":"Get a stake that a given subnetwork will be able to slash for a certain operator until the end of the next epoch (if no cross-slashing and no slashings by the subnetwork)."},"stakeAt(bytes32,address,uint48,bytes)":{"notice":"Get a stake that a given subnetwork could be able to slash for a certain operator at a given timestamp until the end of the consequent epoch using hints (if no cross-slashing and no slashings by the subnetwork)."},"staticDelegateCall(address,bytes)":{"notice":"Make a delegatecall from this contract to a given target contract with a particular data (always reverts with a return data)."},"vault()":{"notice":"Get the vault's address."}},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/contracts/hints/DelegatorHints.sol":"FullRestakeDelegatorHints"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol":{"keccak256":"0x6662ec4e5cefca03eeadd073e9469df8d2944bb2ee8ec8f7622c2c46aab5f225","urls":["bzz-raw://4d8544c6f8daa4d1bc215c6a72fe0acdb748664a105b0e5efc19295667521d45","dweb:/ipfs/QmdGWqdnXT8S3RgCR6aV8XHZrsybieMQLLnug1NtpSjEXN"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol":{"keccak256":"0xc163fcf9bb10138631a9ba5564df1fa25db9adff73bd9ee868a8ae1858fe093a","urls":["bzz-raw://9706d43a0124053d9880f6e31a59f31bc0a6a3dc1acd66ce0a16e1111658c5f6","dweb:/ipfs/QmUFmfowzkRwGtDu36cXV9SPTBHJ3n7dG9xQiK5B28jTf2"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b","urls":["bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609","dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol":{"keccak256":"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397","urls":["bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9","dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardUpgradeable.sol":{"keccak256":"0xb44e086e941292cdc7f440de51478493894ef0b1aeccb0c4047445919f667f74","urls":["bzz-raw://942dad22fbdc1669f025540ba63aa3ccfad5f8458fc5d4525b31ebf272e7af45","dweb:/ipfs/Qmdo4X2M82aM3AMoW2kf2jhYkSCyC4T1pHNd6obdsDFnAB"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol":{"keccak256":"0xdaba3f7c42c55b2896353f32bd27d4d5f8bae741b3b05d4c53f67abc4dc47ce8","urls":["bzz-raw://1fa2e61141c602510bcd2cd936ed9561922ac8772a9b9c9a9db091a74e354a45","dweb:/ipfs/QmcHQDDoEBwJmwUbzoVkytvJsBx3KVHYFFnDkvRGWh9Wmh"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol":{"keccak256":"0xb6b36edd6a2999fd243ff226d6cbf84bd71af2432bbd0dfe19392996a1d9cb41","urls":["bzz-raw://1fd2f35495652e57e3f99bc6c510bc5f7dd398a176ea2e72d8ed730aebc6ca26","dweb:/ipfs/QmTQV6X4gkikTib49cho5iDX3JvSQbdsoEChoDwrk3CbbH"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC1271.sol":{"keccak256":"0x85a45f3f10014a0f8be41157a32b6a5f905753ea64a4b64e29fc12b7deeecf39","urls":["bzz-raw://c3c74009ce36136b36c77c23935b8e4a7b4f253be2da2be4fb4a916b1ce43743","dweb:/ipfs/QmcH36v3iN7SJJuF73AunLR2LtNxhVJ1wm63ph4dPZ4pcL"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC5267.sol":{"keccak256":"0x92aa1df62dc3d33f1656d63bede0923e0df0b706ad4137c8b10b0a8fe549fd92","urls":["bzz-raw://c5c0f29195ad64cbe556da8e257dac8f05f78c53f90323c0d2accf8e6922d33a","dweb:/ipfs/QmQ61TED8uaCZwcbh8KkgRSsCav7x7HbcGHwHts3U4DmUP"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70","urls":["bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c","dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol":{"keccak256":"0x6008dabfe393240d73d7dd7688033f72740d570aa422254d29a7dce8568f3aff","urls":["bzz-raw://f5196ec75139918c6c7bb4251b36395e668f1fa6d206beba7e7520e74913940d","dweb:/ipfs/QmSyqjksXxmm2mCG6qRd1yuwLykypkSVBbnBnGqJRcuJMi"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0x37bb49513c49c87c4642a891b13b63571bc87013dde806617aa1efb54605f386","urls":["bzz-raw://b3036b3a83b7c48f96641f2a9002b9f2dcb6a5958dd670894ada21ae8229b3d0","dweb:/ipfs/QmUNfSBdoVtjhETaUJCYcaC7pTMgbhht926tJ2uXJbiVd3"],"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/ShortStrings.sol":{"keccak256":"0x18a7171df639a934592915a520ecb97c5bbc9675a1105607aac8a94e72bf62c6","urls":["bzz-raw://7478e1f13da69a2867ccd883001d836b75620362e743f196376d63ed0c422a1c","dweb:/ipfs/QmWywcQ9TNfwtoqAxbn25d8C5VrV12PrPS9UjtGe6pL2BA"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol":{"keccak256":"0x32ba59b4b7299237c8ba56319110989d7978a039faf754793064e967e5894418","urls":["bzz-raw://1ae50c8b562427df610cc4540c9bf104acca7ef8e2dcae567ae7e52272281e9c","dweb:/ipfs/QmTHiadFCSJUPpRjNegc5SahmeU8bAoY8i9Aq6tVscbcKR"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0x55f102ea785d8399c0e58d1108e2d289506dde18abc6db1b7f68c1f9f9bc5792","urls":["bzz-raw://6e52e0a7765c943ef14e5bcf11e46e6139fa044be564881378349236bf2e3453","dweb:/ipfs/QmZEeeXoFPW47amyP35gfzomF9DixqqTEPwzBakv6cZw6i"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol":{"keccak256":"0xeed0a08b0b091f528356cbc7245891a4c748682d4f6a18055e8e6ca77d12a6cf","urls":["bzz-raw://ba80ba06c8e6be852847e4c5f4492cef801feb6558ae09ed705ff2e04ea8b13c","dweb:/ipfs/QmXRJDv3xHLVQCVXg1ZvR35QS9sij5y9NDWYzMfUfAdTHF"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/EIP712.sol":{"keccak256":"0x999f705a027ed6dc2d4e0df2cc4a509852c6bfd11de1c8161bf88832d0503fd0","urls":["bzz-raw://0798def67258d9a3cc20b2b4da7ebf351a5cefe0abfdd665d2d81f8e32f89b21","dweb:/ipfs/QmPEvJosnPfzHNjKvCv2D3891mA2Ww8eUwkqrxBjuYdHCt"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol":{"keccak256":"0xba333517a3add42cd35fe877656fc3dfcc9de53baa4f3aabbd6d12a92e4ea435","urls":["bzz-raw://2ceacff44c0fdc81e48e0e0b1db87a2076d3c1fb497341de077bf1da9f6b406c","dweb:/ipfs/QmRUo1muMRAewxrKQ7TkXUtknyRoR57AyEkoPpiuZQ8FzX"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/SignatureChecker.sol":{"keccak256":"0x6b11eb41a228cca35d4b662b4df69fcd75192851365102690f57b2ac01e83fe6","urls":["bzz-raw://ab006a2983ed350d2af21ddcdd835dcae3b8340086cc4d088460da5abd041f69","dweb:/ipfs/QmbEacDhkJZiGrgzLjB4pNtE8Z1uudjDw1DvcDUTVQFsLG"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b","urls":["bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df","dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d","urls":["bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875","dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol":{"keccak256":"0xe19a4d5f31d2861e7344e8e535e2feafb913d806d3e2b5fe7782741a2a7094fe","urls":["bzz-raw://4aed79c0fa6f0546ed02f2f683e8f77f0fd2ed7eb34d8bbf3d373c9a6d95b13c","dweb:/ipfs/QmWqVz6UAVqmnWU5pqYPt1o6iDEZyPaBraAA3rKfTTSfYj"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0x5f7e4076e175393767754387c962926577f1660dd9b810187b9002407656be72","urls":["bzz-raw://7d533a1c97cd43a57cd9c465f7ee8dd0e39ae93a8fb8ff8e5303a356b081cdcc","dweb:/ipfs/QmVBEei6aTnvYNZp2CHYVNKyZS4q1KkjANfY39WVXZXVoT"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/Checkpoints.sol":{"keccak256":"0xbdc5e074d7dd6678f67e92b1a51a20226801a407b0e1af3da367c5d1ff4519ad","urls":["bzz-raw://a36cca6b22fff3db16fc789ff6c60eea71d4b156065d4d0c83a0bc5e91a77a8b","dweb:/ipfs/QmYN3exd5AemxjBrN8XMB1p5LbbE16uC3sjbYjwi8AjcGR"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/types/Time.sol":{"keccak256":"0xc7755af115020049e4140f224f9ee88d7e1799ffb0646f37bf0df24bf6213f58","urls":["bzz-raw://7f09bf94d5274334ec021f61a04659db303f31e60460e14b709c9bf187740111","dweb:/ipfs/QmNvgomZYUwFAt4cZbPWAiTeSZQreGehY9BK5xyVJsUttb"],"license":"MIT"},"src/contracts/common/Entity.sol":{"keccak256":"0x3d61a932995b8443381f3950542d388223a2c26dd5d29a3274dea3baa7388bd7","urls":["bzz-raw://7cdf5f03ca72fd263fd32ff59c8d88ddca911ae83896a287d10772c1bbe9b138","dweb:/ipfs/QmbP84r5BWT1Rn9AYTntWSf3xUMTTCohTZJFhbBhDXFoHa"],"license":"BUSL-1.1"},"src/contracts/common/MigratableEntity.sol":{"keccak256":"0x2d736f4dacd5d7e7697503bc426c78b8250fe1694ca157965ec178da6807de58","urls":["bzz-raw://f1237acf96b4b9f9b69156e068eddd726a6e15bd8e87a18dc999cd4ba4da069c","dweb:/ipfs/QmS6M8fiFFSeuJ4ZKKq1z8W7w4ybeHQSy5TLASGoc1LVic"],"license":"BUSL-1.1"},"src/contracts/common/StaticDelegateCallable.sol":{"keccak256":"0x350029aa8955eacaffffaeb58babc5c98e80ebc5c5db388ed17ee6465f4a9d90","urls":["bzz-raw://eb392a8ee9050e0af606897df63e3404e3829e8b688b580663892f9664195764","dweb:/ipfs/QmaXC8jqV8UrrAFkzXTEv2fJF56sy33HhLxAzaRZmUxuXD"],"license":"BUSL-1.1"},"src/contracts/delegator/BaseDelegator.sol":{"keccak256":"0x7c54d491fdd4415b764a9c8defa068e56d4c0c8c9419be0053a1d377669290e8","urls":["bzz-raw://9238bfbad0f6eeb0dc7727724de14380f1980b395902269703d5e2ef07e52e10","dweb:/ipfs/QmPJn1V4HNXcEghYvogGuSTF24dSQUPosR5qtsXcmNqRm3"],"license":"BUSL-1.1"},"src/contracts/delegator/FullRestakeDelegator.sol":{"keccak256":"0x0a81c4f8e72914563a9cb771e93acf889c71ea36b7bec040e4eb562b199d5af1","urls":["bzz-raw://6fc66b6ba02da77046a0bbbd1dd407a62c08f52e04486c9cbd2cb1cca3da555f","dweb:/ipfs/QmZQivK1ZnMxfRQQ5aLpV9co5u55wQVNev5Rg1hzAqxhkE"],"license":"BUSL-1.1"},"src/contracts/delegator/NetworkRestakeDelegator.sol":{"keccak256":"0xd3a8e6522f9c6fdcc2da837c9023afd6bdff2bce45a35590320c475519e3636d","urls":["bzz-raw://58b17a87f6554f08376f9ea7fedf486a4aa75801bf0ad8b23ff5a46959b6b7a3","dweb:/ipfs/QmSTmNh67tYt8CmjVZb57r8N3qX5yeYdMApKPJm3qvQgQw"],"license":"BUSL-1.1"},"src/contracts/delegator/OperatorNetworkSpecificDelegator.sol":{"keccak256":"0x031a10722b9ec49048f0952710401131290adb87e71caf294e864e7ac3b98a16","urls":["bzz-raw://72428febc875134b2f29205e6f294634a1c22a7d5c78d6a9cb2f8196f107c9b5","dweb:/ipfs/QmTPwXR6h5oytckmkLrHdKeEMdphJxceDhYUR4zvQeWAwY"],"license":"BUSL-1.1"},"src/contracts/delegator/OperatorSpecificDelegator.sol":{"keccak256":"0x630ce62fa30b9f3349ab7a8cf8dbf041319febc6dd757be2f94d3d25944ed328","urls":["bzz-raw://c2ac59d47ce57d2a6819ae9833e1a618a371eccff93eb5ab367b201b01f42bfa","dweb:/ipfs/QmdBpGMBivpNPv2WbH8vnCUy5xkVeaxQvGgqi33vKCz1kA"],"license":"BUSL-1.1"},"src/contracts/hints/DelegatorHints.sol":{"keccak256":"0x44aa0c396311a54afbc7c73e8dadeed41e3165a4fd13f712b27d63d50fc3376d","urls":["bzz-raw://2f255214f3531fc707d88be0d56a7a0aed4180439316d099d760d9118aa83093","dweb:/ipfs/QmZD1w5p1ukJSXumUAjvxwGmkPhn7vsr21Y2atLGEZR2oi"],"license":"BUSL-1.1"},"src/contracts/hints/Hints.sol":{"keccak256":"0x8b565df1ae35993c097a9e642002782a8f451f6fd01809cad6bcd345bdf1b99c","urls":["bzz-raw://99a19adb01e350a92f534095b3078229df1f2f83077992d75d58d8684be45971","dweb:/ipfs/QmbmwcuswVbzvwHQFTtrJG86oV98GnfxqYTb8cV8u1acox"],"license":"BUSL-1.1"},"src/contracts/hints/OptInServiceHints.sol":{"keccak256":"0x95d9407900d27b9f4a1233b772aeed809c07b2dc5b31cfc9fa77ca26514c49e5","urls":["bzz-raw://a13a8877e312d7e6b8b85bde3668c5d84ff5ecc83f762cd573f2b7104c64eb42","dweb:/ipfs/QmYV2J55acuGzCNnS3juABuUHY5U1xc8g8o9jwEyFFdeG5"],"license":"BUSL-1.1"},"src/contracts/hints/VaultHints.sol":{"keccak256":"0xccb505b7159b769cc114d67b87c2de6b106557f667fc8f3780114baad5c3c442","urls":["bzz-raw://6d0c80a908fc16e96a8b5605a0bd53f9e89ad0ef0a738fbbae80ba4d3160749b","dweb:/ipfs/QmXo5UtWoR8YmunqcbBU8rQMm1nvmvjNPoXcVrDhh4pEwR"],"license":"BUSL-1.1"},"src/contracts/libraries/Checkpoints.sol":{"keccak256":"0xba90097c8bfe0a975499428b5f8ac5569483c7d92ccc28c12d70de416aae040c","urls":["bzz-raw://12f5d93ca94cd06d3147db68993165a58e17903ed53682560de61f3085ad4609","dweb:/ipfs/QmePiuAqvXprMLmFZkGZeGjvGPAvsEDHfCDv7BoQhXu9xE"],"license":"MIT"},"src/contracts/libraries/ERC4626Math.sol":{"keccak256":"0x8441160513c1cbeb1c3b9ee077bcc7e7ce20006b52a77c8dd39ff0ef89699939","urls":["bzz-raw://943f8cc3e26ddf649f465f40c909819f5c864717c4baa339e9e403b9374a4653","dweb:/ipfs/QmXPxi1sUDsrGprZdUgCzoPEosaZMv9ZhygWQ1vAi1phAB"],"license":"MIT"},"src/contracts/libraries/Subnetwork.sol":{"keccak256":"0xf5ef5506fd66082b3c2e7f3df37529f5a8efad32ac62e7c8914bd63219190bfe","urls":["bzz-raw://ba031a54ee0d0e9a270c2b9e18437f5668cfeb659cfd5fe0677459d7fcac2a56","dweb:/ipfs/QmReP3H7qQ78tAfgLnJKsNEQNCQfF1X1Get38Ffd4kzq32"],"license":"MIT"},"src/contracts/service/OptInService.sol":{"keccak256":"0x4e0932077f2686b7990e10d59deb2535334c0d09e52ef6e57c6ab09eca21c4b1","urls":["bzz-raw://7c00d311032ed4a1743aca7475f3c86ce15cdfc2218108efc3731c03d34a5278","dweb:/ipfs/QmUGGfVwVhaHr5kS4177yKKYiLYzi5qZpkEmvYxBZqazxf"],"license":"BUSL-1.1"},"src/contracts/vault/Vault.sol":{"keccak256":"0x2ceff6ed3298c4cad144c99fcc79b51cb9397d6ebef00285b915848b476f8c2e","urls":["bzz-raw://11f2fb3581854f3ab6e82e8d4935d9eb510c903a13c3f022346c2956a58f5307","dweb:/ipfs/QmdUnoXoyYoG9SGWyQZCFyLDRUUX3eXyXetkRvw6jxqqBz"],"license":"BUSL-1.1"},"src/contracts/vault/VaultStorage.sol":{"keccak256":"0x57db25b127d77ea3472de53e3a4af3354399655b9268638b99ca5925fa364a56","urls":["bzz-raw://aa763d9a6ec508ae3abfb8228b72b9fd9525279e5135d4962e79ff059feb1173","dweb:/ipfs/QmcbDR6E9wyEpu6V2FkEC4hnWy47zXA9LSKJde6zSGd33Q"],"license":"BUSL-1.1"},"src/interfaces/common/IEntity.sol":{"keccak256":"0x8ef4b63d6da63489778ccd5f8d13ebdd527dd4b62730b2c616df5af7474d2d21","urls":["bzz-raw://5a8d69576a9219d85c50816a18ad53a4d53cfcb27ed38b8cccc808dc2734b71b","dweb:/ipfs/QmYVN3P4Q4REvBWJ97TbAcaxm3uyB2anV6NSGa6ZtSwcEv"],"license":"MIT"},"src/interfaces/common/IMigratableEntity.sol":{"keccak256":"0x8f5f2809f3afbe8ebfbb365dd7b57b4dd3b6f9943a6187eaf648d45895b8e3c4","urls":["bzz-raw://0ffe640537d539e7a4fde70d30d3e4c57f4ba9c2c25c450cea713aae38e8fd5c","dweb:/ipfs/QmSUTGzvdcn1R1KB7tLThMRtESsfPbeXDhhhKWGtntzBds"],"license":"MIT"},"src/interfaces/common/IRegistry.sol":{"keccak256":"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb","urls":["bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014","dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK"],"license":"MIT"},"src/interfaces/common/IStaticDelegateCallable.sol":{"keccak256":"0xa335d4e81b9071b7de66ef92b43ff20671d86516eb1be46fef29a3483cd3f5d5","urls":["bzz-raw://d464b9db863c14c05547d2b23352f2e9b7b784799cf09f6bbc4906a2a74e3516","dweb:/ipfs/QmUVWzFvJz7eEbDQKiFTTzwi7TEbjcs3VmwdM4kuptAKvi"],"license":"MIT"},"src/interfaces/delegator/IBaseDelegator.sol":{"keccak256":"0x96bb312f032e17accce3f8f80936d99468029d6b37c9ca74acdb4b026a0148ee","urls":["bzz-raw://2a66dcb5b7d1a6ef6a363431ea98ebd78bc4fdd3d7a134d9b542dc66e7d025c2","dweb:/ipfs/QmRhTPLd2ZAyRHmJUFUcWKs9b3if49QY17LYZuRqWmghw8"],"license":"MIT"},"src/interfaces/delegator/IDelegatorHook.sol":{"keccak256":"0xc51aa8d7d1f6c8043ee819b7aeb86da0e993912e1442098df897e299f01f9f46","urls":["bzz-raw://adddf5cb2ba282aeb576b26efb28640f865a1721cc9b6eee8b3ee0457a2c9780","dweb:/ipfs/QmNYgAmnLRwWZbhTuQhZs9rx4zcme1df5mEepkrniorSoW"],"license":"MIT"},"src/interfaces/delegator/IFullRestakeDelegator.sol":{"keccak256":"0xa3c8cb2e45d4d8ce90e95263bea40c01dc400f05ad65bc29597d878606be5e7d","urls":["bzz-raw://782cf5e201aa4cca037ebafd3807a68ff1cc721d5b8416a35244db0d0607369e","dweb:/ipfs/QmQkJks6x7CKndeTPa9LxgTNygD5uEi7obhADhpq1Lsr9A"],"license":"MIT"},"src/interfaces/delegator/INetworkRestakeDelegator.sol":{"keccak256":"0xe7030fe30389a147fd710e3436ec346b4842695fd3e65a81b95375c9f1d633fc","urls":["bzz-raw://739c7e66d301778054f5c90bee45ec9438f68afba8a03eaaac52064c73b115ad","dweb:/ipfs/QmfZ2ytKcTykAc76nxhg8ikUXV8NdBpetqb8W4YWPcox1Z"],"license":"MIT"},"src/interfaces/delegator/IOperatorNetworkSpecificDelegator.sol":{"keccak256":"0x74b95e64d29769202d45dd277bb830f623ff3d41ce77b80ce3ee4e318a5c71ec","urls":["bzz-raw://e512b903aae5c1b8a028c6e3f4f6223b5cb5d704503cfa6bd37b5346868f5c20","dweb:/ipfs/QmZim9YExsPWtyxyeui993HTKAEmrg8MUcSkZ77Gp2JcuZ"],"license":"MIT"},"src/interfaces/delegator/IOperatorSpecificDelegator.sol":{"keccak256":"0x72075cab585dc17240cc3e32bc99b92f0d5627ddd988fed680e3e1a52d5a01e4","urls":["bzz-raw://7448bc90699409ae61d85216b5efc2143a37f0f73354be2aea993bc54afca441","dweb:/ipfs/QmXE4gAxM8pHosZK8mcTcj17puBx484meDCcmrDePskGHZ"],"license":"MIT"},"src/interfaces/service/IOptInService.sol":{"keccak256":"0x76fb5460a6d87a5705433d4fbeff7253cd75b8bbd0c888b2088f16e86ace146a","urls":["bzz-raw://990322019b3d11465f7024bae77ccbf7e2fe5d6fa3c754584778f37d04fa1337","dweb:/ipfs/QmaSNHzcqxTkUCG9a4nqVfLECHLdjdrwAnDi3yDC7tDL24"],"license":"MIT"},"src/interfaces/slasher/IBaseSlasher.sol":{"keccak256":"0x7c82528b445659c313ab77335c407b0b6efe5e79027187bb287f7bc74202b404","urls":["bzz-raw://0274c90aa5df1aa6bb470a6aab53992fb14fd7e5472c9430416505b29647d9cf","dweb:/ipfs/QmckbmJLDetPemVzCnnGcKYWAZV2BRFXGDsjiaec8jkHxx"],"license":"MIT"},"src/interfaces/vault/IVault.sol":{"keccak256":"0xffee01d383cd4e1a5530c614bf4360c1ef070c288abec9da1eb531b51bc07235","urls":["bzz-raw://04f0046cac285d8ec44ebbb1f79dc94fab4495767190cad8364fbc1fafaadfb9","dweb:/ipfs/QmUawAunwzXfCyShWfhKeThAgKtqe51hmrxvrXvM772M2R"],"license":"MIT"},"src/interfaces/vault/IVaultStorage.sol":{"keccak256":"0x592626f13754194f83047135de19229c49390bd59e34659b1bb38be71d973a22","urls":["bzz-raw://06a6a9dfddd05e580b32bebe2cff4f63ba26a653180676d58225dd30d9c89d3e","dweb:/ipfs/QmdgzBeY6Sxo8mGtyBxtv1tM1c2kU6J6zjeRd7vuXm4DU6"],"license":"MIT"}},"version":1},"id":86} \ No newline at end of file +{"abi":[{"type":"constructor","inputs":[{"name":"baseDelegatorHints","type":"address","internalType":"address"},{"name":"vaultHints","type":"address","internalType":"address"},{"name":"optInServiceHints","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"BASE_DELEGATOR_HINTS","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"DEFAULT_ADMIN_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"FACTORY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"HOOK_GAS_LIMIT","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"HOOK_RESERVE","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"HOOK_SET_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"NETWORK_LIMIT_SET_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"NETWORK_REGISTRY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"OPERATOR_NETWORK_LIMIT_SET_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"OPERATOR_NETWORK_OPT_IN_SERVICE","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"OPERATOR_VAULT_OPT_IN_SERVICE","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"OPT_IN_SERVICE_HINTS","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"TYPE","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"VAULT_FACTORY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"VAULT_HINTS","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"VERSION","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"pure"},{"type":"function","name":"getRoleAdmin","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"grantRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"hasRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"hook","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"initialize","inputs":[{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"maxNetworkLimit","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"value","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"networkLimit","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"networkLimitAt","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"timestamp","type":"uint48","internalType":"uint48"},{"name":"hint","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"networkLimitHint","inputs":[{"name":"delegator","type":"address","internalType":"address"},{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"timestamp","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"networkLimitHintInternal","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"timestamp","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"exists","type":"bool","internalType":"bool"},{"name":"hint","type":"uint32","internalType":"uint32"}],"stateMutability":"view"},{"type":"function","name":"onSlash","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"captureTimestamp","type":"uint48","internalType":"uint48"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"operatorNetworkLimit","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"operatorNetworkLimitAt","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"timestamp","type":"uint48","internalType":"uint48"},{"name":"hint","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"operatorNetworkLimitHint","inputs":[{"name":"delegator","type":"address","internalType":"address"},{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"timestamp","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"operatorNetworkLimitHintInternal","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"timestamp","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"exists","type":"bool","internalType":"bool"},{"name":"hint","type":"uint32","internalType":"uint32"}],"stateMutability":"view"},{"type":"function","name":"renounceRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"callerConfirmation","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"revokeRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setHook","inputs":[{"name":"hook_","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setMaxNetworkLimit","inputs":[{"name":"identifier","type":"uint96","internalType":"uint96"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setNetworkLimit","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setOperatorNetworkLimit","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"stake","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"stakeAt","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"timestamp","type":"uint48","internalType":"uint48"},{"name":"hints","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"stakeHints","inputs":[{"name":"delegator","type":"address","internalType":"address"},{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"timestamp","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"staticDelegateCall","inputs":[{"name":"target","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"vault","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"OnSlash","inputs":[{"name":"subnetwork","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"captureTimestamp","type":"uint48","indexed":false,"internalType":"uint48"}],"anonymous":false},{"type":"event","name":"RoleAdminChanged","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"previousAdminRole","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"newAdminRole","type":"bytes32","indexed":true,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"RoleGranted","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"sender","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"RoleRevoked","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"sender","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"SetHook","inputs":[{"name":"hook","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"SetMaxNetworkLimit","inputs":[{"name":"subnetwork","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"SetNetworkLimit","inputs":[{"name":"subnetwork","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"SetOperatorNetworkLimit","inputs":[{"name":"subnetwork","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"error","name":"AccessControlBadConfirmation","inputs":[]},{"type":"error","name":"AccessControlUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"neededRole","type":"bytes32","internalType":"bytes32"}]},{"type":"error","name":"AlreadySet","inputs":[]},{"type":"error","name":"CheckpointUnorderedInsertion","inputs":[]},{"type":"error","name":"DuplicateRoleHolder","inputs":[]},{"type":"error","name":"ExceedsMaxNetworkLimit","inputs":[]},{"type":"error","name":"ExternalCall","inputs":[]},{"type":"error","name":"InsufficientHookGas","inputs":[]},{"type":"error","name":"InvalidInitialization","inputs":[]},{"type":"error","name":"MissingRoleHolders","inputs":[]},{"type":"error","name":"NotInitialized","inputs":[]},{"type":"error","name":"NotInitializing","inputs":[]},{"type":"error","name":"NotNetwork","inputs":[]},{"type":"error","name":"NotSlasher","inputs":[]},{"type":"error","name":"NotVault","inputs":[]},{"type":"error","name":"ReentrancyGuardReentrantCall","inputs":[]},{"type":"error","name":"SafeCastOverflowedUintDowncast","inputs":[{"name":"bits","type":"uint8","internalType":"uint8"},{"name":"value","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ZeroAddressRoleHolder","inputs":[]}],"bytecode":{"object":"0x6101c0346101c857601f6135d938819003918201601f19168301916001600160401b0391828411858510176101cc5781606092869260409687528339810103126101c85761004c836101e0565b926100648361005d602084016101e0565b92016101e0565b91306080527ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a009081549060ff82871c166101b7578080831603610173575b5050505f60a0525f60c0525f60e052610100935f8552610120935f8552610140905f82526101609283526101809384526101a094855251946133e496876101f58839608051878181610696015261148c015260a0518761092d015260c0518761114b015260e0518781816107a101526111840152518681816104e2015261266601525185818161064c01528181611be00152611d0f01525184818161071f01528181611b470152611d8d015251838181610ebc015261179a015251828181610c8f015261183b0152518161104f0152f35b6001600160401b0319909116811790915583519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a15f80806100a2565b855163f92ee8a960e01b8152600490fd5b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b51906001600160a01b03821682036101c85756fe60806040526004361015610011575f80fd5b5f3560e01c806301ffc9a7146102c4578063020cf0c2146102bf57806302145348146102ba578063103f2907146102b557806310a28b5d146102b057806311422095146102ab578063128e5d82146102a6578063197aa7ea146102a15780631a80e5001461029c57806323f752d514610297578063248a9ca31461029257806325dc97081461028d5780632dd31000146102885780632f2ff15d1461028357806336568abe1461027e5780633dfd3873146102795780633eb22c0f14610274578063439fab911461026f57806345e78fcb1461026a578063518504ba14610265578063557cab44146102605780635d32a1c91461025b5780636679191e1461025657806379d89614146102515780637d24bb271461024c5780637f5a7c7b1461024757806391d148541461024257806394d2558a1461023d5780639b656b22146102385780639f86fd8514610233578063a217fddf1461022e578063bb24fe8a14610229578063c0cd7c3e14610224578063d15b740e1461021f578063d547741f1461021a578063da749d2b14610215578063e02f693714610210578063e49561ee1461020b578063f7b0554714610206578063fbfa77cf14610201578063fd4d447c146101fc578063ff54740f146101f75763ffa1ad74146101f2575f80fd5b611557565b61153a565b611510565b6114e9565b611465565b61127a565b61125e565b611229565b6111dd565b6111b3565b61116f565b61112c565b611112565b61107e565b61103a565b610ffc565b610f4c565b610f24565b610eeb565b610ea7565b610e6d565b610e1c565b610cf8565b610cbe565b610c7a565b610b42565b610aec565b6109f3565b6109a8565b61095c565b610918565b6108fb565b6108c2565b61074e565b61070a565b61067b565b610637565b6105e8565b6105b3565b6104cd565b610410565b61032f565b3461031a57602036600319011261031a5760043563ffffffff60e01b811680910361031a57602090637965db0b60e01b8114908115610309575b506040519015158152f35b6301ffc9a760e01b1490505f6102fe565b5f80fd5b6001600160a01b0381160361031a57565b3461031a57606036600319011261031a5760243560043561034f8261031e565b6044359161035b611e02565b815f526004602052826103896103848360405f209060018060a01b03165f5260205260405f2090565b6120b3565b146103fe5760207ffc9545f07ffadfb668efd0144cdcaf2d6e2c8192dce1ea9fc131934f9c90fc7e91835f52600482526103e9856103da8360405f209060018060a01b03165f5260205260405f2090565b6103e342612b0e565b90611f58565b50506040519485526001600160a01b031693a3005b60405163a741a04560e01b8152600490fd5b3461031a5760408060031936011261031a576004359060243590610432611e5f565b825f526002602052805f205482116104bd57825f52600360205281610458825f206120b3565b146104ad57816104a8916104987e899d104fc3d8820bd96540612bcc5c448c8837b13b9f7faa43ad0728f0c14f946103da875f52600360205260405f2090565b5050519081529081906020820190565b0390a2005b5163a741a04560e01b8152600490fd5b51631eefc06360e31b8152600490fd5b3461031a575f36600319011261031a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b6024359065ffffffffffff8216820361031a57565b6044359065ffffffffffff8216820361031a57565b6064359065ffffffffffff8216820361031a57565b608090600319011261031a576004356105688161031e565b90602435906044356105798161031e565b9060643565ffffffffffff8116810361031a5790565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b3461031a576105e46105d06105c736610550565b929190916115b1565b60405191829160208352602083019061058f565b0390f35b3461031a57604036600319011261031a57602061062f61038460243561060d8161031e565b6004355f526004845260405f209060018060a01b03165f5260205260405f2090565b604051908152f35b3461031a575f36600319011261031a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461031a57604036600319011261031a57610694610511565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633036106f8576106db906004355f52600360205260405f20612124565b60408051941515855263ffffffff91909116602085015292915050f35b604051637ca475e560e11b8152600490fd5b3461031a575f36600319011261031a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461031a57604036600319011261031a576004356001600160601b038116810361031a576024359061077e612229565b6040516302910f8b60e31b81523360048201526020816024816001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165afa9081156108bd575f9161088e575b501561087c576001600160601b03166bffffffffffffffffffffffff193360601b16179080610808835f52600260205260405f2090565b54146103fe57610861817fc67e7929681aa1bccd63f52b3799bf5805f3009f197db6fdf584b14f7fbf608c92610846855f52600260205260405f2090565b556108518185612258565b6040519081529081906020820190565b0390a261087a60015f8051602061336f83398151915255565b005b6040516323d53b9760e21b8152600490fd5b6108b0915060203d6020116108b6575b6108a88183610d7e565b810190611649565b5f6107d1565b503d61089e565b61165d565b3461031a57602036600319011261031a576004355f525f8051602061334f8339815191526020526020600160405f200154604051908152f35b3461031a576105e46105d061090f36610550565b9291909161174e565b3461031a575f36600319011261031a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461031a57604036600319011261031a5761087a60243560043561097f8261031e565b805f525f8051602061334f8339815191526020526109a3600160405f200154611eb5565b612533565b3461031a57604036600319011261031a576024356109c58161031e565b336001600160a01b038216036109e15761087a90600435612569565b60405163334bd91960e11b8152600490fd5b3461031a57602036600319011261031a57600435610a108161031e565b610a18612229565b335f9081527f9ebbcbe0d2961d3fbe56ca6f679bc753bd848d3e6bb3eaf9041c51b286881d2c60205260409020547fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c9060ff1615610ace57506001546001600160a01b0391821691811682146103fe576001600160a01b03191681176001557f5bbb1d3ebb6a3ad2a0f17ff35e579a83af60604d1d3c2a4c83c62adecadf666d5f80a260015f8051602061336f83398151915255005b6044906040519063e2517d3f60e01b82523360048301526024820152fd5b3461031a57602036600319011261031a576004355f526003602052602061062f60405f206120b3565b9181601f8401121561031a578235916001600160401b03831161031a576020838186019501011161031a57565b3461031a57602036600319011261031a576001600160401b0360043581811161031a57610b73903690600401610b15565b5f8051602061338f833981519152549260ff8460401c1615931680159081610c72575b6001149081610c68575b159081610c5f575b50610c4d575f8051602061338f833981519152805467ffffffffffffffff19166001179055610bdb9183610c2957612631565b610be157005b5f8051602061338f833981519152805460ff60401b19169055604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a1005b5f8051602061338f833981519152805460ff60401b1916600160401b179055612631565b60405163f92ee8a960e01b8152600490fd5b9050155f610ba8565b303b159150610ba0565b849150610b96565b3461031a575f36600319011261031a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461031a575f36600319011261031a5760206040517f15e7c882d74e8821ebf34aaff46fd0e1d53b9393d91490019124113d28dc32a38152f35b3461031a575f36600319011261031a576020604051614e208152f35b634e487b7160e01b5f52604160045260245ffd5b604081019081106001600160401b03821117610d4357604052565b610d14565b606081019081106001600160401b03821117610d4357604052565b608081019081106001600160401b03821117610d4357604052565b90601f801991011681019081106001600160401b03821117610d4357604052565b60405190610dac82610d63565b565b60405190610dac82610d28565b6001600160401b038111610d4357601f01601f191660200190565b81601f8201121561031a57803590610ded82610dbb565b92610dfb6040519485610d7e565b8284526020838301011161031a57815f926020809301838601378301015290565b3461031a57606036600319011261031a57610e35610511565b6044356001600160401b03811161031a57602091610e5a61062f923690600401610dd6565b906004355f526003845260405f20612798565b3461031a575f36600319011261031a5760206040517fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c8152f35b3461031a575f36600319011261031a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461031a575f36600319011261031a5760206040517e8b9b1e5fa9cf3b14f87f435649268146305ddf689f082e5961a335b07a9abf8152f35b3461031a575f36600319011261031a576001546040516001600160a01b039091168152602090f35b3461031a57604036600319011261031a57602060ff610f9e602435610f708161031e565b6004355f525f8051602061334f833981519152845260405f209060018060a01b03165f5260205260405f2090565b54166040519015158152f35b90608060031983011261031a5760043591602435610fc78161031e565b9160443565ffffffffffff8116810361031a5791606435906001600160401b03821161031a57610ff991600401610dd6565b90565b3461031a57602061062f61103561101236610faa565b939190925f526004865260405f209060018060a01b03165f5260205260405f2090565b612798565b3461031a575f36600319011261031a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461031a57604036600319011261031a5760043561109b8161031e565b6024356001600160401b03811161031a575f916110bd83923690600401610b15565b90816040519283928337810184815203915af461110a6110db6119a3565b916110fc60405193849215156020840152604080840152606083019061058f565b03601f198101835282610d7e565b805190602001fd5b3461031a575f36600319011261031a5760206040515f8152f35b3461031a575f36600319011261031a5760206040516001600160401b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461031a575f36600319011261031a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461031a57602036600319011261031a576004355f526002602052602060405f2054604051908152f35b3461031a57604036600319011261031a5761087a6024356004356112008261031e565b805f525f8051602061334f833981519152602052611224600160405f200154611eb5565b612569565b3461031a57606036600319011261031a576105e46105d060043561124c8161031e565b611254610526565b90602435906119d2565b3461031a57602061062f61127136610faa565b92919091611ad1565b3461031a5760a036600319011261031a5760243560043561129a8261031e565b604435916112a661053b565b90608435906001600160401b03821161031a576112c860049236908401610dd6565b6112d0612229565b5f546020906112f5906112e9906001600160a01b031681565b6001600160a01b031690565b60405163b134427160e01b815294859182905afa9283156108bd575f93611434575b506001600160a01b039283163303611422576001546001600160a01b0316838116611397575b50506040805195865265ffffffffffff909316602086015216927f741a5de99085c0d660f3e4192217b0ffb0ea4e35a0480de48e857a4bc3ee36ed91819081015b0390a361087a60015f8051602061336f83398151915255565b9093604051946113ce866113c0602082019363724ab0f760e11b8552858c898d60248701611c5b565b03601f198101885287610d7e565b62042e305a10611410575f61137e938192827f741a5de99085c0d660f3e4192217b0ffb0ea4e35a0480de48e857a4bc3ee36ed9951926203d090f1509361133d565b604051638072475160e01b8152600490fd5b60405163dabc4ad960e01b8152600490fd5b61145791935060203d60201161145e575b61144f8183610d7e565b8101906116d3565b915f611317565b503d611445565b3461031a57606036600319011261031a576024356114828161031e565b61148a610526565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633036106f8576114e46106db926004355f52600460205260405f209060018060a01b03165f5260205260405f2090565b612124565b3461031a575f36600319011261031a575f546040516001600160a01b039091168152602090f35b3461031a57604036600319011261031a57602061062f6024356115328161031e565b600435611cd8565b3461031a575f36600319011261031a5760206040516203d0908152f35b3461031a575f36600319011261031a57602060405160018152f35b5190811515820361031a57565b519063ffffffff8216820361031a57565b919082604091031261031a57610ff960206115aa84611572565b930161157f565b91939265ffffffffffff906060956040519363f7b0554760e01b6020860152602485015260018060a01b031660448401521660648201526064815260a08101908082106001600160401b03831117610d4357611622926116139260405261201a565b60208082518301019101611590565b9061162a5750565b90915063ffffffff6040519116602082015260208152610ff981610d28565b9081602091031261031a57610ff990611572565b6040513d5f823e3d90fd5b81601f8201121561031a5780519061167f82610dbb565b9261168d6040519485610d7e565b8284526020838301011161031a57815f9260208093018386015e8301015290565b9060208282031261031a5781516001600160401b03811161031a57610ff99201611668565b9081602091031261031a5751610ff98161031e565b90610ff9916020815261170782516080602084015260a083019061058f565b906080606061173e61172b602087015195601f19968787830301604088015261058f565b604087015186868303018487015261058f565b940151928285030191015261058f565b604051630df8851f60e11b81526001600160a01b03828116600483015260248201849052848116604483015265ffffffffffff8616606483015295606095909491939091905f856084817f00000000000000000000000000000000000000000000000000000000000000008c165afa9485156108bd575f95611945575b5060405163fbfa77cf60e01b8152602081600481888d165afa9081156108bd57611837995f9286928491611926575b5060405163192c0ff760e21b81526001600160a01b03909116600482015265ffffffffffff909216602483015290998a9190829081906044820190565b03917f0000000000000000000000000000000000000000000000000000000000000000165afa9788156108bd575f986118fa575b50908161187d846118839594876119d2565b946115b1565b908251158015906118f0575b80156118e6575b80156118dc575b6118a957505050909150565b6110fc9450610ff993956118bb610d9f565b938452602084015260408301526060820152604051928391602083016116e8565b508151151561189d565b5080511515611896565b508551151561188f565b611883939291985061191d903d805f833e6119158183610d7e565b8101906116ae565b9790919261186b565b61193f915060203d60201161145e5761144f8183610d7e565b5f6117fa565b61195a9195503d805f833e6119158183610d7e565b935f6117cb565b90610ff992915f52600360205260405f20612798565b5f9081526004602090815260408083206001600160a01b03909416835292905220610ff9929190612798565b3d156119cd573d906119b482610dbb565b916119c26040519384610d7e565b82523d5f602084013e565b606090565b611622916116139194939465ffffffffffff60609660405193630cbd53f560e11b6020860152602485015216604483015260448252611a1082610d63565b61201a565b60405190611a2282610d28565b60606020838281520152565b9060208282031261031a5781516001600160401b039283821161031a57019060408282031261031a5760405192611a6484610d28565b825181811161031a5782611a79918501611668565b8452602083015190811161031a57611a919201611668565b602082015290565b6001600160a01b0391821681529116602082015265ffffffffffff9091166040820152608060608201819052610ff99291019061058f565b92611ae190929192828486612973565b929093611aec611a15565b93805180611c3f575b50508415938415611ba9575b8415611b18575b50505050611b135790565b505f90565b602080949550611b43910151604051958694859463530e1d4360e01b865260601c9060048601611a99565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa9081156108bd575f91611b8a575b50155f808080611b08565b611ba3915060203d6020116108b6576108a88183610d7e565b5f611b7f565b5f549094506001600160a01b0316602084865192611bdc604051948593849363530e1d4360e01b85528960048601611a99565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa9081156108bd575f91611c20575b501593611b01565b611c39915060203d6020116108b6576108a88183610d7e565b5f611c18565b611c53929550602080918301019101611a2e565b925f80611af5565b919360a093610ff9969565ffffffffffff938552600180871b031660208501526040840152166060820152816080820152019061058f565b634e487b7160e01b5f52601160045260245ffd5b8115611cb1570490565b634e487b7160e01b5f52601260045260245ffd5b9060018201809211611cd357565b611c93565b5f546040516308834cb560e21b8082526001600160a01b0385811660048401529283166024830152929392602092909183816044817f000000000000000000000000000000000000000000000000000000000000000086165afa9081156108bd575f91611de5575b5015918215611d61575b50509050611d5b57610ff991612a68565b50505f90565b6040519081526001600160a01b0385166004820152606086901c602482015291508290829060449082907f0000000000000000000000000000000000000000000000000000000000000000165afa9182156108bd575f92611dc8575b505015805f80611d4a565b611dde9250803d106108b6576108a88183610d7e565b5f80611dbd565b611dfc9150843d86116108b6576108a88183610d7e565b5f611d40565b335f9081527f24e48de785eeca8420b70f73d267a66970ccc187d459f2a4b53e74ed92a5ab86602052604090207f15e7c882d74e8821ebf34aaff46fd0e1d53b9393d91490019124113d28dc32a39060ff905b541615610ace5750565b335f9081527f72a65082a5691803ab2b62c9bc729b34205ba1b183d950896526b2fd8714d0c7602052604090207e8b9b1e5fa9cf3b14f87f435649268146305ddf689f082e5961a335b07a9abf9060ff90611e55565b5f8181525f8051602061334f83398151915260209081526040808320338452909152902060ff90611e55565b634e487b7160e01b5f52603260045260245ffd5b8054821015611f0a575f5260205f2001905f90565b611ee1565b90815491600160401b831015610d435782611f32916001610dac95018155611ef5565b90919082549060031b91821b915f19901b1916179055565b5f19810191908211611cd357565b90929192600182019081548015611fea575b5084611f7584612b40565b50949092845493611f85836120b3565b9681611fd5575b5015611fb2575050505f198101908111611cd357611f328591611fae93611ef5565b9190565b611fae949293611fce926001600160d01b03909116919061319e565b5050611f0f565b65ffffffffffff83811691161490505f611f8c565b600160401b811015610d43578060016120069201845583611ef5565b8154905f199060031b1b191690555f611f6a565b5f9190829160405161204f816110fc6020820194639f86fd8560e01b865230602484015260406044840152606483019061058f565b51915afa5061205c6119a3565b8051810160408282031261031a5761207660208301611572565b916040810151916001600160401b03831161031a5761209c926020809201920101611668565b90156120a55790565b805190811561031a57602001fd5b8054806120e257505f5b6001600160d01b03811615611d5b5760016120d89201611ef5565b90549060031b1c90565b5f19908082810111611cd357825f5260205f2001015460301c6120bd565b9060405161210d81610d28565b915465ffffffffffff8116835260301c6020830152565b91908254905f8291600584116121c2575b612140935085612cc2565b9081156121b6576121af6121a66121a06120d861217261216d61216288611f4a565b895f5260205f200190565b612100565b966001612199602061218a8b5165ffffffffffff1690565b9a01516001600160d01b031690565b9101611ef5565b93611f4a565b63ffffffff1690565b6001939291565b5f925082915081908190565b91926121cd81612b8f565b8103908111611cd35761214093865f526122016121f68360205f200165ffffffffffff90541690565b65ffffffffffff1690565b65ffffffffffff85161015612217575091612135565b92915061222390611cc5565b90612135565b5f8051602061336f83398151915260028154146122465760029055565b604051633ee5aeb560e01b8152600490fd5b90815f52600360205260405f208161226f82612b40565b9193905083156122cd5761228f916001600160d01b031690600101611ef5565b90549060031b1c5b826122c3575b50506122a7575050565b6122bf915f52600360205260405f206103e342612b0e565b5050565b119050815f61229d565b50505f612297565b6001600160a01b0381165f9081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d60205260409020545f8051602061334f8339815191529060ff16611d5b575f808052602091825260408082206001600160a01b038516835290925220805460ff1916600117905533906001600160a01b03165f7f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d8180a4600190565b6001600160a01b0381165f9081527f9ebbcbe0d2961d3fbe56ca6f679bc753bd848d3e6bb3eaf9041c51b286881d2c602052604090207fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c905f8051602061334f8339815191529060ff905b541661244f575f828152602091825260408082206001600160a01b038616835290925220805460ff1916600117905533916001600160a01b0316907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d5f80a4600190565b5050505f90565b6001600160a01b0381165f9081527f72a65082a5691803ab2b62c9bc729b34205ba1b183d950896526b2fd8714d0c7602052604090207e8b9b1e5fa9cf3b14f87f435649268146305ddf689f082e5961a335b07a9abf905f8051602061334f8339815191529060ff906123eb565b6001600160a01b0381165f9081527f24e48de785eeca8420b70f73d267a66970ccc187d459f2a4b53e74ed92a5ab86602052604090207f15e7c882d74e8821ebf34aaff46fd0e1d53b9393d91490019124113d28dc32a3905f8051602061334f8339815191529060ff906123eb565b5f8181525f8051602061334f833981519152602081815260408084206001600160a01b038716855290915290912060ff906123eb565b5f8181525f8051602061334f833981519152602081815260408084206001600160a01b03871685529091529091205460ff161561244f575f828152602091825260408082206001600160a01b038616835290925220805460ff1916905533916001600160a01b0316907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b5f80a4600190565b91909160408184031261031a5780356126138161031e565b9260208201356001600160401b03811161031a57610ff99201610dd6565b61263d918101906125fb565b6040516302910f8b60e31b81526001600160a01b039283166004820181905291906020816024817f000000000000000000000000000000000000000000000000000000000000000088165afa9081156108bd575f91612750575b501561273e576126d26040916126cd612718946126b2612d19565b60018060a01b03166001600160601b0360a01b5f5416175f55565b612e99565b6020810151600180546001600160a01b0319166001600160a01b0390921691909117905580516001600160a01b031684811661272e575b5001516001600160a01b031690565b9081166127225750565b61272b90612380565b50565b612737906122d5565b505f612709565b6040516362df054560e01b8152600490fd5b612769915060203d6020116108b6576108a88183610d7e565b5f612697565b9081602091031261031a57610ff99061157f565b90600163ffffffff80931601918211611cd357565b9180511561286657806020806127b39351830101910161276f565b916127be83826130c9565b926127cf845165ffffffffffff1690565b9065ffffffffffff808516921682811461285a5782119182612805575b50506127fc57610ff99250612ff9565b50506020015190565b9091506128128354611f4a565b63ffffffff83161491821561282b575b50505f806127ec565b6128529192506128466128406121f692612783565b856130c9565b5165ffffffffffff1690565b115f80612822565b50505050506020015190565b50610ff991612ff9565b60405190608082018281106001600160401b03821117610d4357604052606080838181528160208201528160408201520152565b9060208282031261031a5781516001600160401b039283821161031a57019060808282031261031a576128d5610d9f565b92825181811161031a57826128eb918501611668565b8452602083015181811161031a5782612905918501611668565b6020850152604083015181811161031a5782612922918501611668565b6040850152606083015190811161031a5761293d9201611668565b606082015290565b9081602091031261031a575190565b60409065ffffffffffff610ff99493168152816020820152019061058f565b9391909361297f612870565b93805180612a48575b50506129c992939460206129a86112e96112e95f5460018060a01b031690565b8188015190604051808098819463810da75d60e01b83528960048401612954565b03915afa9182156108bd57612a0a945f93612a0f575b50612a0490612a0493946129f860408a01518284611961565b9360608a015192611977565b90613131565b915190565b612a04935090612a39612a049260203d602011612a41575b612a318183610d7e565b810190612945565b9350906129df565b503d612a27565b6129c994955090602080612a609383010191016128a4565b93925f612988565b5f5460405163bd49c35f60e01b8152929190602090849060049082906001600160a01b03165afa9081156108bd57610ff9935f92612ae3575b50612a04610384612a049394612ac2610384855f52600360205260405f2090565b935f52600460205260405f209060018060a01b03165f5260205260405f2090565b612a049250610384612b06612a049260203d602011612a4157612a318183610d7e565b935050612aa1565b65ffffffffffff90818111612b21571690565b604490604051906306dfcc6560e41b8252603060048301526024820152fd5b805480612b515750505f905f905f90565b5f19908082810111611cd357612b6e925f5260205f200101612100565b9065ffffffffffff82511691602060018060d01b0391015116906001929190565b8015611b135780612a04612c5a612c50612c46612c3c612c32612c28612c1e6001610ff99a5f908b60801c80612cb6575b508060401c80612ca9575b508060201c80612c9c575b508060101c80612c8f575b508060081c80612c82575b508060041c80612c75575b508060021c80612c68575b50821c612c61575b811c1b612c17818b611ca7565b0160011c90565b612c17818a611ca7565b612c178189611ca7565b612c178188611ca7565b612c178187611ca7565b612c178186611ca7565b612c178185611ca7565b8092611ca7565b8101612c0a565b600291509101905f612c02565b600491509101905f612bf7565b600891509101905f612bec565b601091509101905f612be1565b602091509101905f612bd6565b604091509101905f612bcb565b9150506080905f612bc0565b905b838310612cd15750505090565b909192612cde81856132b4565b90835f5265ffffffffffff808360205f20015416908416105f14612d065750925b9190612cc4565b93506001810180911115612cff57611c93565b612d216132c9565b612d296132c9565b60015f8051602061336f83398151915255565b60405190612d4982610d48565b5f6040838281528260208201520152565b81601f8201121561031a578051916020916001600160401b038411610d43578360051b9060405194612d8e85840187610d7e565b8552838086019282010192831161031a578301905b828210612db1575050505090565b8380918351612dbf8161031e565b815201910190612da3565b9060208282031261031a5781516001600160401b039283821161031a5701908181039260a0841261031a57606060405194612e0486610d48565b1261031a57604051612e1581610d48565b8351612e208161031e565b81526020840151612e308161031e565b60208201526040840151612e438161031e565b60408201528452606083015181811161031a5782612e62918501612d5a565b6020850152608083015190811161031a57612e7d9201612d5a565b604082015290565b8051821015611f0a5760209160051b010190565b612eb590612ea5612d3c565b5060208082518301019101612dca565b8051519091906001600160a01b03161580612fdf575b612fcd579060208101905f5b82518051821015612f51576112e9612ef283612eff93612e85565b516001600160a01b031690565b15612f3f57612f21612f1d612f18612ef2848751612e85565b612456565b1590565b612f2d57600101612ed7565b604051635140fefd60e11b8152600490fd5b6040516323cda06760e01b8152600490fd5b506040925050818101905f5b82518051821015612fc4576112e9612ef283612f7893612e85565b15612fb357612f96612f1d612f91612ef2848751612e85565b6124c4565b612fa257600101612f5d565b8351635140fefd60e11b8152600490fd5b83516323cda06760e01b8152600490fd5b50509150505190565b6040516303501f5960e11b8152600490fd5b506020820151511580612ecb575060408201515115612ecb565b908154905f829160058411613063575b6130149350846132f7565b8061303c57505f905b6001600160d01b03821615611d5b57610ff99160016120d89201611ef5565b61305661304b61305d92611f4a565b835f5260205f200190565b5460301c90565b9061301d565b919261306e81612b8f565b8103908111611cd35761301493855f5265ffffffffffff808360205f20015416908516105f1461309f575091613009565b9291506130ab90611cc5565b90613009565b604051906130be82610d28565b5f6020838281520152565b906130f26130ec613113926130dc6130b1565b506130e56130b1565b5084611ef5565b50612100565b91600165ffffffffffff845116936020828060d01b03910151169101611ef5565b9054906040519261312384610d28565b835260031b1c602082015290565b908082101561313e575090565b905090565b8054600160401b811015610d435761316091600182018155611ef5565b61318b57815160209092015160301b65ffffffffffff191665ffffffffffff92909216919091179055565b634e487b7160e01b5f525f60045260245ffd5b80549293929190821561328b576131ba61216d61304b85611f4a565b906131cb825165ffffffffffff1690565b65ffffffffffff8481169116811061327957611fae9460209488926131f96121f6875165ffffffffffff1690565b0361324157506132339261320f61321a92611f4a565b905f5260205f200190565b9065ffffffffffff82549181199060301b169116179055565b01516001600160d01b031690565b91505061327491613261613253610dae565b65ffffffffffff9093168352565b6001600160d01b03881682860152613143565b613233565b604051632520601d60e01b8152600490fd5b6132af925061329b613253610dae565b6001600160d01b0385166020830152613143565b5f9190565b90808216911860011c8101809111611cd35790565b60ff5f8051602061338f8339815191525460401c16156132e557565b604051631afcd79f60e31b8152600490fd5b905b8383106133065750505090565b90919261331381856132b4565b90835f5265ffffffffffff808360205f20015416908416105f1461333b5750925b91906132f9565b9350600181018091111561333457611c9356fe02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268009b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a2646970667358221220a114ef0ff5b29e345fe4269ee0528960ae4a86d65f802fa8e154dd6b83a6427064736f6c63430008190033","sourceMap":"7866:3473:81:-:0;;;;;;;;;;;;;-1:-1:-1;;7866:3473:81;;;;-1:-1:-1;;;;;7866:3473:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;:::i;:::-;348:4:82;;332:21;;8837:64:25;7866:3473:81;;;;;;;;;7896:76:25;;7866:3473:81;;;;7985:34:25;7981:146;;-1:-1:-1;525:17:69;;;-1:-1:-1;525:17:69;;-1:-1:-1;552:12:69;;-1:-1:-1;2360:34:76;;2404:28;;-1:-1:-1;2404:28:76;;2442:57;;-1:-1:-1;2442:57:76;;2509:61;;-1:-1:-1;2509:61:76;;8343:41:81;;;;8394:24;;;;8428:40;;;;7866:3473;;;;;;;;332:21:82;7866:3473:81;;;;;;;;;;525:17:69;7866:3473:81;;;;;552:12:69;7866:3473:81;;;;;2360:34:76;7866:3473:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7981:146:25;-1:-1:-1;;;;;;7866:3473:81;;;;;;;;;;;;;8087:29:25;;7866:3473:81;;8087:29:25;7981:146;;;;;7896:76;7866:3473:81;;-1:-1:-1;;;7938:23:25;;;;;7866:3473:81;-1:-1:-1;7866:3473:81;;;;;;-1:-1:-1;7866:3473:81;;;;;-1:-1:-1;7866:3473:81;;;;-1:-1:-1;;;;;7866:3473:81;;;;;;:::o","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361015610011575f80fd5b5f3560e01c806301ffc9a7146102c4578063020cf0c2146102bf57806302145348146102ba578063103f2907146102b557806310a28b5d146102b057806311422095146102ab578063128e5d82146102a6578063197aa7ea146102a15780631a80e5001461029c57806323f752d514610297578063248a9ca31461029257806325dc97081461028d5780632dd31000146102885780632f2ff15d1461028357806336568abe1461027e5780633dfd3873146102795780633eb22c0f14610274578063439fab911461026f57806345e78fcb1461026a578063518504ba14610265578063557cab44146102605780635d32a1c91461025b5780636679191e1461025657806379d89614146102515780637d24bb271461024c5780637f5a7c7b1461024757806391d148541461024257806394d2558a1461023d5780639b656b22146102385780639f86fd8514610233578063a217fddf1461022e578063bb24fe8a14610229578063c0cd7c3e14610224578063d15b740e1461021f578063d547741f1461021a578063da749d2b14610215578063e02f693714610210578063e49561ee1461020b578063f7b0554714610206578063fbfa77cf14610201578063fd4d447c146101fc578063ff54740f146101f75763ffa1ad74146101f2575f80fd5b611557565b61153a565b611510565b6114e9565b611465565b61127a565b61125e565b611229565b6111dd565b6111b3565b61116f565b61112c565b611112565b61107e565b61103a565b610ffc565b610f4c565b610f24565b610eeb565b610ea7565b610e6d565b610e1c565b610cf8565b610cbe565b610c7a565b610b42565b610aec565b6109f3565b6109a8565b61095c565b610918565b6108fb565b6108c2565b61074e565b61070a565b61067b565b610637565b6105e8565b6105b3565b6104cd565b610410565b61032f565b3461031a57602036600319011261031a5760043563ffffffff60e01b811680910361031a57602090637965db0b60e01b8114908115610309575b506040519015158152f35b6301ffc9a760e01b1490505f6102fe565b5f80fd5b6001600160a01b0381160361031a57565b3461031a57606036600319011261031a5760243560043561034f8261031e565b6044359161035b611e02565b815f526004602052826103896103848360405f209060018060a01b03165f5260205260405f2090565b6120b3565b146103fe5760207ffc9545f07ffadfb668efd0144cdcaf2d6e2c8192dce1ea9fc131934f9c90fc7e91835f52600482526103e9856103da8360405f209060018060a01b03165f5260205260405f2090565b6103e342612b0e565b90611f58565b50506040519485526001600160a01b031693a3005b60405163a741a04560e01b8152600490fd5b3461031a5760408060031936011261031a576004359060243590610432611e5f565b825f526002602052805f205482116104bd57825f52600360205281610458825f206120b3565b146104ad57816104a8916104987e899d104fc3d8820bd96540612bcc5c448c8837b13b9f7faa43ad0728f0c14f946103da875f52600360205260405f2090565b5050519081529081906020820190565b0390a2005b5163a741a04560e01b8152600490fd5b51631eefc06360e31b8152600490fd5b3461031a575f36600319011261031a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b6024359065ffffffffffff8216820361031a57565b6044359065ffffffffffff8216820361031a57565b6064359065ffffffffffff8216820361031a57565b608090600319011261031a576004356105688161031e565b90602435906044356105798161031e565b9060643565ffffffffffff8116810361031a5790565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b3461031a576105e46105d06105c736610550565b929190916115b1565b60405191829160208352602083019061058f565b0390f35b3461031a57604036600319011261031a57602061062f61038460243561060d8161031e565b6004355f526004845260405f209060018060a01b03165f5260205260405f2090565b604051908152f35b3461031a575f36600319011261031a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461031a57604036600319011261031a57610694610511565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633036106f8576106db906004355f52600360205260405f20612124565b60408051941515855263ffffffff91909116602085015292915050f35b604051637ca475e560e11b8152600490fd5b3461031a575f36600319011261031a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461031a57604036600319011261031a576004356001600160601b038116810361031a576024359061077e612229565b6040516302910f8b60e31b81523360048201526020816024816001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165afa9081156108bd575f9161088e575b501561087c576001600160601b03166bffffffffffffffffffffffff193360601b16179080610808835f52600260205260405f2090565b54146103fe57610861817fc67e7929681aa1bccd63f52b3799bf5805f3009f197db6fdf584b14f7fbf608c92610846855f52600260205260405f2090565b556108518185612258565b6040519081529081906020820190565b0390a261087a60015f8051602061336f83398151915255565b005b6040516323d53b9760e21b8152600490fd5b6108b0915060203d6020116108b6575b6108a88183610d7e565b810190611649565b5f6107d1565b503d61089e565b61165d565b3461031a57602036600319011261031a576004355f525f8051602061334f8339815191526020526020600160405f200154604051908152f35b3461031a576105e46105d061090f36610550565b9291909161174e565b3461031a575f36600319011261031a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461031a57604036600319011261031a5761087a60243560043561097f8261031e565b805f525f8051602061334f8339815191526020526109a3600160405f200154611eb5565b612533565b3461031a57604036600319011261031a576024356109c58161031e565b336001600160a01b038216036109e15761087a90600435612569565b60405163334bd91960e11b8152600490fd5b3461031a57602036600319011261031a57600435610a108161031e565b610a18612229565b335f9081527f9ebbcbe0d2961d3fbe56ca6f679bc753bd848d3e6bb3eaf9041c51b286881d2c60205260409020547fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c9060ff1615610ace57506001546001600160a01b0391821691811682146103fe576001600160a01b03191681176001557f5bbb1d3ebb6a3ad2a0f17ff35e579a83af60604d1d3c2a4c83c62adecadf666d5f80a260015f8051602061336f83398151915255005b6044906040519063e2517d3f60e01b82523360048301526024820152fd5b3461031a57602036600319011261031a576004355f526003602052602061062f60405f206120b3565b9181601f8401121561031a578235916001600160401b03831161031a576020838186019501011161031a57565b3461031a57602036600319011261031a576001600160401b0360043581811161031a57610b73903690600401610b15565b5f8051602061338f833981519152549260ff8460401c1615931680159081610c72575b6001149081610c68575b159081610c5f575b50610c4d575f8051602061338f833981519152805467ffffffffffffffff19166001179055610bdb9183610c2957612631565b610be157005b5f8051602061338f833981519152805460ff60401b19169055604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a1005b5f8051602061338f833981519152805460ff60401b1916600160401b179055612631565b60405163f92ee8a960e01b8152600490fd5b9050155f610ba8565b303b159150610ba0565b849150610b96565b3461031a575f36600319011261031a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461031a575f36600319011261031a5760206040517f15e7c882d74e8821ebf34aaff46fd0e1d53b9393d91490019124113d28dc32a38152f35b3461031a575f36600319011261031a576020604051614e208152f35b634e487b7160e01b5f52604160045260245ffd5b604081019081106001600160401b03821117610d4357604052565b610d14565b606081019081106001600160401b03821117610d4357604052565b608081019081106001600160401b03821117610d4357604052565b90601f801991011681019081106001600160401b03821117610d4357604052565b60405190610dac82610d63565b565b60405190610dac82610d28565b6001600160401b038111610d4357601f01601f191660200190565b81601f8201121561031a57803590610ded82610dbb565b92610dfb6040519485610d7e565b8284526020838301011161031a57815f926020809301838601378301015290565b3461031a57606036600319011261031a57610e35610511565b6044356001600160401b03811161031a57602091610e5a61062f923690600401610dd6565b906004355f526003845260405f20612798565b3461031a575f36600319011261031a5760206040517fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c8152f35b3461031a575f36600319011261031a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461031a575f36600319011261031a5760206040517e8b9b1e5fa9cf3b14f87f435649268146305ddf689f082e5961a335b07a9abf8152f35b3461031a575f36600319011261031a576001546040516001600160a01b039091168152602090f35b3461031a57604036600319011261031a57602060ff610f9e602435610f708161031e565b6004355f525f8051602061334f833981519152845260405f209060018060a01b03165f5260205260405f2090565b54166040519015158152f35b90608060031983011261031a5760043591602435610fc78161031e565b9160443565ffffffffffff8116810361031a5791606435906001600160401b03821161031a57610ff991600401610dd6565b90565b3461031a57602061062f61103561101236610faa565b939190925f526004865260405f209060018060a01b03165f5260205260405f2090565b612798565b3461031a575f36600319011261031a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461031a57604036600319011261031a5760043561109b8161031e565b6024356001600160401b03811161031a575f916110bd83923690600401610b15565b90816040519283928337810184815203915af461110a6110db6119a3565b916110fc60405193849215156020840152604080840152606083019061058f565b03601f198101835282610d7e565b805190602001fd5b3461031a575f36600319011261031a5760206040515f8152f35b3461031a575f36600319011261031a5760206040516001600160401b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461031a575f36600319011261031a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461031a57602036600319011261031a576004355f526002602052602060405f2054604051908152f35b3461031a57604036600319011261031a5761087a6024356004356112008261031e565b805f525f8051602061334f833981519152602052611224600160405f200154611eb5565b612569565b3461031a57606036600319011261031a576105e46105d060043561124c8161031e565b611254610526565b90602435906119d2565b3461031a57602061062f61127136610faa565b92919091611ad1565b3461031a5760a036600319011261031a5760243560043561129a8261031e565b604435916112a661053b565b90608435906001600160401b03821161031a576112c860049236908401610dd6565b6112d0612229565b5f546020906112f5906112e9906001600160a01b031681565b6001600160a01b031690565b60405163b134427160e01b815294859182905afa9283156108bd575f93611434575b506001600160a01b039283163303611422576001546001600160a01b0316838116611397575b50506040805195865265ffffffffffff909316602086015216927f741a5de99085c0d660f3e4192217b0ffb0ea4e35a0480de48e857a4bc3ee36ed91819081015b0390a361087a60015f8051602061336f83398151915255565b9093604051946113ce866113c0602082019363724ab0f760e11b8552858c898d60248701611c5b565b03601f198101885287610d7e565b62042e305a10611410575f61137e938192827f741a5de99085c0d660f3e4192217b0ffb0ea4e35a0480de48e857a4bc3ee36ed9951926203d090f1509361133d565b604051638072475160e01b8152600490fd5b60405163dabc4ad960e01b8152600490fd5b61145791935060203d60201161145e575b61144f8183610d7e565b8101906116d3565b915f611317565b503d611445565b3461031a57606036600319011261031a576024356114828161031e565b61148a610526565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633036106f8576114e46106db926004355f52600460205260405f209060018060a01b03165f5260205260405f2090565b612124565b3461031a575f36600319011261031a575f546040516001600160a01b039091168152602090f35b3461031a57604036600319011261031a57602061062f6024356115328161031e565b600435611cd8565b3461031a575f36600319011261031a5760206040516203d0908152f35b3461031a575f36600319011261031a57602060405160018152f35b5190811515820361031a57565b519063ffffffff8216820361031a57565b919082604091031261031a57610ff960206115aa84611572565b930161157f565b91939265ffffffffffff906060956040519363f7b0554760e01b6020860152602485015260018060a01b031660448401521660648201526064815260a08101908082106001600160401b03831117610d4357611622926116139260405261201a565b60208082518301019101611590565b9061162a5750565b90915063ffffffff6040519116602082015260208152610ff981610d28565b9081602091031261031a57610ff990611572565b6040513d5f823e3d90fd5b81601f8201121561031a5780519061167f82610dbb565b9261168d6040519485610d7e565b8284526020838301011161031a57815f9260208093018386015e8301015290565b9060208282031261031a5781516001600160401b03811161031a57610ff99201611668565b9081602091031261031a5751610ff98161031e565b90610ff9916020815261170782516080602084015260a083019061058f565b906080606061173e61172b602087015195601f19968787830301604088015261058f565b604087015186868303018487015261058f565b940151928285030191015261058f565b604051630df8851f60e11b81526001600160a01b03828116600483015260248201849052848116604483015265ffffffffffff8616606483015295606095909491939091905f856084817f00000000000000000000000000000000000000000000000000000000000000008c165afa9485156108bd575f95611945575b5060405163fbfa77cf60e01b8152602081600481888d165afa9081156108bd57611837995f9286928491611926575b5060405163192c0ff760e21b81526001600160a01b03909116600482015265ffffffffffff909216602483015290998a9190829081906044820190565b03917f0000000000000000000000000000000000000000000000000000000000000000165afa9788156108bd575f986118fa575b50908161187d846118839594876119d2565b946115b1565b908251158015906118f0575b80156118e6575b80156118dc575b6118a957505050909150565b6110fc9450610ff993956118bb610d9f565b938452602084015260408301526060820152604051928391602083016116e8565b508151151561189d565b5080511515611896565b508551151561188f565b611883939291985061191d903d805f833e6119158183610d7e565b8101906116ae565b9790919261186b565b61193f915060203d60201161145e5761144f8183610d7e565b5f6117fa565b61195a9195503d805f833e6119158183610d7e565b935f6117cb565b90610ff992915f52600360205260405f20612798565b5f9081526004602090815260408083206001600160a01b03909416835292905220610ff9929190612798565b3d156119cd573d906119b482610dbb565b916119c26040519384610d7e565b82523d5f602084013e565b606090565b611622916116139194939465ffffffffffff60609660405193630cbd53f560e11b6020860152602485015216604483015260448252611a1082610d63565b61201a565b60405190611a2282610d28565b60606020838281520152565b9060208282031261031a5781516001600160401b039283821161031a57019060408282031261031a5760405192611a6484610d28565b825181811161031a5782611a79918501611668565b8452602083015190811161031a57611a919201611668565b602082015290565b6001600160a01b0391821681529116602082015265ffffffffffff9091166040820152608060608201819052610ff99291019061058f565b92611ae190929192828486612973565b929093611aec611a15565b93805180611c3f575b50508415938415611ba9575b8415611b18575b50505050611b135790565b505f90565b602080949550611b43910151604051958694859463530e1d4360e01b865260601c9060048601611a99565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa9081156108bd575f91611b8a575b50155f808080611b08565b611ba3915060203d6020116108b6576108a88183610d7e565b5f611b7f565b5f549094506001600160a01b0316602084865192611bdc604051948593849363530e1d4360e01b85528960048601611a99565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa9081156108bd575f91611c20575b501593611b01565b611c39915060203d6020116108b6576108a88183610d7e565b5f611c18565b611c53929550602080918301019101611a2e565b925f80611af5565b919360a093610ff9969565ffffffffffff938552600180871b031660208501526040840152166060820152816080820152019061058f565b634e487b7160e01b5f52601160045260245ffd5b8115611cb1570490565b634e487b7160e01b5f52601260045260245ffd5b9060018201809211611cd357565b611c93565b5f546040516308834cb560e21b8082526001600160a01b0385811660048401529283166024830152929392602092909183816044817f000000000000000000000000000000000000000000000000000000000000000086165afa9081156108bd575f91611de5575b5015918215611d61575b50509050611d5b57610ff991612a68565b50505f90565b6040519081526001600160a01b0385166004820152606086901c602482015291508290829060449082907f0000000000000000000000000000000000000000000000000000000000000000165afa9182156108bd575f92611dc8575b505015805f80611d4a565b611dde9250803d106108b6576108a88183610d7e565b5f80611dbd565b611dfc9150843d86116108b6576108a88183610d7e565b5f611d40565b335f9081527f24e48de785eeca8420b70f73d267a66970ccc187d459f2a4b53e74ed92a5ab86602052604090207f15e7c882d74e8821ebf34aaff46fd0e1d53b9393d91490019124113d28dc32a39060ff905b541615610ace5750565b335f9081527f72a65082a5691803ab2b62c9bc729b34205ba1b183d950896526b2fd8714d0c7602052604090207e8b9b1e5fa9cf3b14f87f435649268146305ddf689f082e5961a335b07a9abf9060ff90611e55565b5f8181525f8051602061334f83398151915260209081526040808320338452909152902060ff90611e55565b634e487b7160e01b5f52603260045260245ffd5b8054821015611f0a575f5260205f2001905f90565b611ee1565b90815491600160401b831015610d435782611f32916001610dac95018155611ef5565b90919082549060031b91821b915f19901b1916179055565b5f19810191908211611cd357565b90929192600182019081548015611fea575b5084611f7584612b40565b50949092845493611f85836120b3565b9681611fd5575b5015611fb2575050505f198101908111611cd357611f328591611fae93611ef5565b9190565b611fae949293611fce926001600160d01b03909116919061319e565b5050611f0f565b65ffffffffffff83811691161490505f611f8c565b600160401b811015610d43578060016120069201845583611ef5565b8154905f199060031b1b191690555f611f6a565b5f9190829160405161204f816110fc6020820194639f86fd8560e01b865230602484015260406044840152606483019061058f565b51915afa5061205c6119a3565b8051810160408282031261031a5761207660208301611572565b916040810151916001600160401b03831161031a5761209c926020809201920101611668565b90156120a55790565b805190811561031a57602001fd5b8054806120e257505f5b6001600160d01b03811615611d5b5760016120d89201611ef5565b90549060031b1c90565b5f19908082810111611cd357825f5260205f2001015460301c6120bd565b9060405161210d81610d28565b915465ffffffffffff8116835260301c6020830152565b91908254905f8291600584116121c2575b612140935085612cc2565b9081156121b6576121af6121a66121a06120d861217261216d61216288611f4a565b895f5260205f200190565b612100565b966001612199602061218a8b5165ffffffffffff1690565b9a01516001600160d01b031690565b9101611ef5565b93611f4a565b63ffffffff1690565b6001939291565b5f925082915081908190565b91926121cd81612b8f565b8103908111611cd35761214093865f526122016121f68360205f200165ffffffffffff90541690565b65ffffffffffff1690565b65ffffffffffff85161015612217575091612135565b92915061222390611cc5565b90612135565b5f8051602061336f83398151915260028154146122465760029055565b604051633ee5aeb560e01b8152600490fd5b90815f52600360205260405f208161226f82612b40565b9193905083156122cd5761228f916001600160d01b031690600101611ef5565b90549060031b1c5b826122c3575b50506122a7575050565b6122bf915f52600360205260405f206103e342612b0e565b5050565b119050815f61229d565b50505f612297565b6001600160a01b0381165f9081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d60205260409020545f8051602061334f8339815191529060ff16611d5b575f808052602091825260408082206001600160a01b038516835290925220805460ff1916600117905533906001600160a01b03165f7f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d8180a4600190565b6001600160a01b0381165f9081527f9ebbcbe0d2961d3fbe56ca6f679bc753bd848d3e6bb3eaf9041c51b286881d2c602052604090207fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c905f8051602061334f8339815191529060ff905b541661244f575f828152602091825260408082206001600160a01b038616835290925220805460ff1916600117905533916001600160a01b0316907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d5f80a4600190565b5050505f90565b6001600160a01b0381165f9081527f72a65082a5691803ab2b62c9bc729b34205ba1b183d950896526b2fd8714d0c7602052604090207e8b9b1e5fa9cf3b14f87f435649268146305ddf689f082e5961a335b07a9abf905f8051602061334f8339815191529060ff906123eb565b6001600160a01b0381165f9081527f24e48de785eeca8420b70f73d267a66970ccc187d459f2a4b53e74ed92a5ab86602052604090207f15e7c882d74e8821ebf34aaff46fd0e1d53b9393d91490019124113d28dc32a3905f8051602061334f8339815191529060ff906123eb565b5f8181525f8051602061334f833981519152602081815260408084206001600160a01b038716855290915290912060ff906123eb565b5f8181525f8051602061334f833981519152602081815260408084206001600160a01b03871685529091529091205460ff161561244f575f828152602091825260408082206001600160a01b038616835290925220805460ff1916905533916001600160a01b0316907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b5f80a4600190565b91909160408184031261031a5780356126138161031e565b9260208201356001600160401b03811161031a57610ff99201610dd6565b61263d918101906125fb565b6040516302910f8b60e31b81526001600160a01b039283166004820181905291906020816024817f000000000000000000000000000000000000000000000000000000000000000088165afa9081156108bd575f91612750575b501561273e576126d26040916126cd612718946126b2612d19565b60018060a01b03166001600160601b0360a01b5f5416175f55565b612e99565b6020810151600180546001600160a01b0319166001600160a01b0390921691909117905580516001600160a01b031684811661272e575b5001516001600160a01b031690565b9081166127225750565b61272b90612380565b50565b612737906122d5565b505f612709565b6040516362df054560e01b8152600490fd5b612769915060203d6020116108b6576108a88183610d7e565b5f612697565b9081602091031261031a57610ff99061157f565b90600163ffffffff80931601918211611cd357565b9180511561286657806020806127b39351830101910161276f565b916127be83826130c9565b926127cf845165ffffffffffff1690565b9065ffffffffffff808516921682811461285a5782119182612805575b50506127fc57610ff99250612ff9565b50506020015190565b9091506128128354611f4a565b63ffffffff83161491821561282b575b50505f806127ec565b6128529192506128466128406121f692612783565b856130c9565b5165ffffffffffff1690565b115f80612822565b50505050506020015190565b50610ff991612ff9565b60405190608082018281106001600160401b03821117610d4357604052606080838181528160208201528160408201520152565b9060208282031261031a5781516001600160401b039283821161031a57019060808282031261031a576128d5610d9f565b92825181811161031a57826128eb918501611668565b8452602083015181811161031a5782612905918501611668565b6020850152604083015181811161031a5782612922918501611668565b6040850152606083015190811161031a5761293d9201611668565b606082015290565b9081602091031261031a575190565b60409065ffffffffffff610ff99493168152816020820152019061058f565b9391909361297f612870565b93805180612a48575b50506129c992939460206129a86112e96112e95f5460018060a01b031690565b8188015190604051808098819463810da75d60e01b83528960048401612954565b03915afa9182156108bd57612a0a945f93612a0f575b50612a0490612a0493946129f860408a01518284611961565b9360608a015192611977565b90613131565b915190565b612a04935090612a39612a049260203d602011612a41575b612a318183610d7e565b810190612945565b9350906129df565b503d612a27565b6129c994955090602080612a609383010191016128a4565b93925f612988565b5f5460405163bd49c35f60e01b8152929190602090849060049082906001600160a01b03165afa9081156108bd57610ff9935f92612ae3575b50612a04610384612a049394612ac2610384855f52600360205260405f2090565b935f52600460205260405f209060018060a01b03165f5260205260405f2090565b612a049250610384612b06612a049260203d602011612a4157612a318183610d7e565b935050612aa1565b65ffffffffffff90818111612b21571690565b604490604051906306dfcc6560e41b8252603060048301526024820152fd5b805480612b515750505f905f905f90565b5f19908082810111611cd357612b6e925f5260205f200101612100565b9065ffffffffffff82511691602060018060d01b0391015116906001929190565b8015611b135780612a04612c5a612c50612c46612c3c612c32612c28612c1e6001610ff99a5f908b60801c80612cb6575b508060401c80612ca9575b508060201c80612c9c575b508060101c80612c8f575b508060081c80612c82575b508060041c80612c75575b508060021c80612c68575b50821c612c61575b811c1b612c17818b611ca7565b0160011c90565b612c17818a611ca7565b612c178189611ca7565b612c178188611ca7565b612c178187611ca7565b612c178186611ca7565b612c178185611ca7565b8092611ca7565b8101612c0a565b600291509101905f612c02565b600491509101905f612bf7565b600891509101905f612bec565b601091509101905f612be1565b602091509101905f612bd6565b604091509101905f612bcb565b9150506080905f612bc0565b905b838310612cd15750505090565b909192612cde81856132b4565b90835f5265ffffffffffff808360205f20015416908416105f14612d065750925b9190612cc4565b93506001810180911115612cff57611c93565b612d216132c9565b612d296132c9565b60015f8051602061336f83398151915255565b60405190612d4982610d48565b5f6040838281528260208201520152565b81601f8201121561031a578051916020916001600160401b038411610d43578360051b9060405194612d8e85840187610d7e565b8552838086019282010192831161031a578301905b828210612db1575050505090565b8380918351612dbf8161031e565b815201910190612da3565b9060208282031261031a5781516001600160401b039283821161031a5701908181039260a0841261031a57606060405194612e0486610d48565b1261031a57604051612e1581610d48565b8351612e208161031e565b81526020840151612e308161031e565b60208201526040840151612e438161031e565b60408201528452606083015181811161031a5782612e62918501612d5a565b6020850152608083015190811161031a57612e7d9201612d5a565b604082015290565b8051821015611f0a5760209160051b010190565b612eb590612ea5612d3c565b5060208082518301019101612dca565b8051519091906001600160a01b03161580612fdf575b612fcd579060208101905f5b82518051821015612f51576112e9612ef283612eff93612e85565b516001600160a01b031690565b15612f3f57612f21612f1d612f18612ef2848751612e85565b612456565b1590565b612f2d57600101612ed7565b604051635140fefd60e11b8152600490fd5b6040516323cda06760e01b8152600490fd5b506040925050818101905f5b82518051821015612fc4576112e9612ef283612f7893612e85565b15612fb357612f96612f1d612f91612ef2848751612e85565b6124c4565b612fa257600101612f5d565b8351635140fefd60e11b8152600490fd5b83516323cda06760e01b8152600490fd5b50509150505190565b6040516303501f5960e11b8152600490fd5b506020820151511580612ecb575060408201515115612ecb565b908154905f829160058411613063575b6130149350846132f7565b8061303c57505f905b6001600160d01b03821615611d5b57610ff99160016120d89201611ef5565b61305661304b61305d92611f4a565b835f5260205f200190565b5460301c90565b9061301d565b919261306e81612b8f565b8103908111611cd35761301493855f5265ffffffffffff808360205f20015416908516105f1461309f575091613009565b9291506130ab90611cc5565b90613009565b604051906130be82610d28565b5f6020838281520152565b906130f26130ec613113926130dc6130b1565b506130e56130b1565b5084611ef5565b50612100565b91600165ffffffffffff845116936020828060d01b03910151169101611ef5565b9054906040519261312384610d28565b835260031b1c602082015290565b908082101561313e575090565b905090565b8054600160401b811015610d435761316091600182018155611ef5565b61318b57815160209092015160301b65ffffffffffff191665ffffffffffff92909216919091179055565b634e487b7160e01b5f525f60045260245ffd5b80549293929190821561328b576131ba61216d61304b85611f4a565b906131cb825165ffffffffffff1690565b65ffffffffffff8481169116811061327957611fae9460209488926131f96121f6875165ffffffffffff1690565b0361324157506132339261320f61321a92611f4a565b905f5260205f200190565b9065ffffffffffff82549181199060301b169116179055565b01516001600160d01b031690565b91505061327491613261613253610dae565b65ffffffffffff9093168352565b6001600160d01b03881682860152613143565b613233565b604051632520601d60e01b8152600490fd5b6132af925061329b613253610dae565b6001600160d01b0385166020830152613143565b5f9190565b90808216911860011c8101809111611cd35790565b60ff5f8051602061338f8339815191525460401c16156132e557565b604051631afcd79f60e31b8152600490fd5b905b8383106133065750505090565b90919261331381856132b4565b90835f5265ffffffffffff808360205f20015416908416105f1461333b5750925b91906132f9565b9350600181018091111561333457611c9356fe02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268009b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a2646970667358221220a114ef0ff5b29e345fe4269ee0528960ae4a86d65f802fa8e154dd6b83a6427064736f6c63430008190033","sourceMap":"7866:3473:81:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;;;;;-1:-1:-1;;7866:3473:81;;;;;;;;;;;;;;;;;;-1:-1:-1;;;3551:47:23;;;:87;;;;7866:3473:81;;;;;;;;;;3551:87:23;-1:-1:-1;;;1133:40:29;;-1:-1:-1;3551:87:23;;;7866:3473:81;-1:-1:-1;7866:3473:81;;;-1:-1:-1;;;;;7866:3473:81;;;;;:::o;:::-;;;;;;-1:-1:-1;;7866:3473:81;;;;;;;;;;;:::i;:::-;;;3202:4:23;;;:::i;:::-;7866:3473:81;-1:-1:-1;7866:3473:81;;;;;2662:52:77;:43;7866:3473:81;;-1:-1:-1;7866:3473:81;;;;;;;;;;;;;;;;;2662:43:77;:52;:::i;:::-;3458;3454:102;;7866:3473:81;3656:53:77;7866:3473:81;;-1:-1:-1;7866:3473:81;;;;3566:74:77;7866:3473:81;3566:43:77;7866:3473:81;;-1:-1:-1;7866:3473:81;;;;;;;;;;;;;;;;;3566:43:77;819:34:62;837:15;819:34;:::i;:::-;3566:74:77;;:::i;:::-;-1:-1:-1;;7866:3473:81;;;;;-1:-1:-1;;;;;7866:3473:81;;3656:53:77;7866:3473:81;3454:102:77;7866:3473:81;;-1:-1:-1;;;3533:12:77;;7866:3473:81;;3533:12:77;7866:3473:81;;;;;;;;;;;;;;;;;;3202:4:23;;;:::i;:::-;7866:3473:81;-1:-1:-1;7866:3473:81;2910:15:77;7866:3473:81;;;-1:-1:-1;7866:3473:81;;2901:36:77;;2897:98;;7866:3473:81;-1:-1:-1;7866:3473:81;2103:13:77;7866:3473:81;;;2103:34:77;7866:3473:81;-1:-1:-1;7866:3473:81;2103:34:77;:::i;:::-;3009;3005:84;;3099:25;3171:35;3099:25;:56;3171:35;3099:25;;;7866:3473:81;;2103:13:77;7866:3473:81;;;;;;;3099:56:77;-1:-1:-1;;7866:3473:81;;;;;;;;;;;;3171:35:77;;;;7866:3473:81;3005:84:77;7866:3473:81;-1:-1:-1;;;3066:12:77;;7866:3473:81;;3066:12:77;2897:98;7866:3473:81;-1:-1:-1;;;2960:24:77;;7866:3473:81;;2960:24:77;7866:3473:81;;;;;;-1:-1:-1;;7866:3473:81;;;;;;1537:38:76;-1:-1:-1;;;;;7866:3473:81;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;7866:3473:81;;;;;;;;-1:-1:-1;;7866:3473:81;;;;:::o;:::-;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;7866:3473:81;;;;;2662:52:77;:43;7866:3473:81;;;;;:::i;:::-;;;-1:-1:-1;7866:3473:81;;;;;-1:-1:-1;7866:3473:81;;;;;;;;;;;;;;;;;2662:52:77;7866:3473:81;;;;;;;;;;;;-1:-1:-1;;7866:3473:81;;;;;;1632:54:76;-1:-1:-1;;;;;7866:3473:81;;;;;;;;;;;;-1:-1:-1;;7866:3473:81;;;;;;:::i;:::-;449:5:82;-1:-1:-1;;;;;7866:3473:81;435:10:82;:19;431:71;;8670:64:81;7866:3473;;;-1:-1:-1;7866:3473:81;8670:13;7866:3473;;;-1:-1:-1;7866:3473:81;8670:64;:::i;:::-;7866:3473;;;;;;;;;;;;;;;;;;;-1:-1:-1;;7866:3473:81;431:71:82;7866:3473:81;;-1:-1:-1;;;477:14:82;;7866:3473:81;;477:14:82;7866:3473:81;;;;;;-1:-1:-1;;7866:3473:81;;;;;;1743:56:76;-1:-1:-1;;;;;7866:3473:81;;;;;;;;;;;;-1:-1:-1;;7866:3473:81;;;;;;-1:-1:-1;;;;;7866:3473:81;;;;;;;;3217:103:28;;;:::i;:::-;7866:3473:81;;-1:-1:-1;;;4285:48:76;;4322:10;7866:3473:81;4285:48:76;;7866:3473:81;;;;;-1:-1:-1;;;;;4295:16:76;7866:3473:81;4285:48:76;;;;;;;-1:-1:-1;4285:48:76;;;7866:3473:81;4284:49:76;;4280:99;;-1:-1:-1;;;;;7866:3473:81;-1:-1:-1;;4322:10:76;297:2:88;7866:3473:81;;267:46:88;4459:27:76;;;;7866:3473:81;;4459:15:76;7866:3473:81;;;;;;;4459:27:76;7866:3473:81;4459:37:76;4455:87;;4654:38;4552:27;4654:38;4552:27;;;7866:3473:81;;4459:15:76;7866:3473:81;;;;;;;4552:27:76;7866:3473:81;4631:6:76;;;;:::i;:::-;7866:3473:81;;;;;;;;;;;;;4654:38:76;;;;3282:1:28;1805;-1:-1:-1;;;;;;;;;;;7866:3473:81;3716:283:28;3282:1;7866:3473:81;4280:99:76;7866:3473:81;;-1:-1:-1;;;4356:12:76;;7866:3473:81;;4356:12:76;4285:48;;;;7866:3473:81;4285:48:76;7866:3473:81;4285:48:76;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;:::i;7866:3473:81:-;;;;;;-1:-1:-1;;7866:3473:81;;;;;;-1:-1:-1;7866:3473:81;-1:-1:-1;;;;;;;;;;;7866:3473:81;;;4919:24:23;7866:3473:81;-1:-1:-1;7866:3473:81;4919:24:23;7866:3473:81;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;-1:-1:-1;;7866:3473:81;;;;;;322:32:69;-1:-1:-1;;;;;7866:3473:81;;;;;;;;;;;;-1:-1:-1;;7866:3473:81;;;;5350:25:23;7866:3473:81;;;;;;;:::i;:::-;;-1:-1:-1;7866:3473:81;-1:-1:-1;;;;;;;;;;;7866:3473:81;;3202:4:23;4919:24;7866:3473:81;-1:-1:-1;7866:3473:81;4919:24:23;7866:3473:81;3202:4:23;:::i;:::-;5350:25;:::i;7866:3473:81:-;;;;;;-1:-1:-1;;7866:3473:81;;;;;;;;;:::i;:::-;966:10:27;-1:-1:-1;;;;;7866:3473:81;;6441:34:23;6437:102;;6549:37;7866:3473:81;;;6549:37:23;:::i;6437:102::-;7866:3473:81;;-1:-1:-1;;;6498:30:23;;7866:3473:81;;6498:30:23;7866:3473:81;;;;;;-1:-1:-1;;7866:3473:81;;;;;;;;;:::i;:::-;3217:103:28;;:::i;:::-;966:10:27;-1:-1:-1;7866:3473:81;;;;;;;;;;1356:26:76;;7866:3473:81;;4468:23:23;4464:108;;-1:-1:-1;4861:4:76;7866:3473:81;-1:-1:-1;;;;;7866:3473:81;;;;;;4861:13:76;;4857:63;;-1:-1:-1;;;;;;7866:3473:81;;;4861:4:76;7866:3473:81;4958:14:76;-1:-1:-1;;4958:14:76;4861:4;-1:-1:-1;;;;;;;;;;;7866:3473:81;;4464:108:23;7866:3473:81;;;;4514:47:23;;;;;;966:10:27;7866:3473:81;4514:47:23;;7866:3473:81;;;;;4514:47:23;7866:3473:81;;;;;;-1:-1:-1;;7866:3473:81;;;;;;-1:-1:-1;7866:3473:81;2103:13:77;7866:3473:81;;;2103:34:77;7866:3473:81;-1:-1:-1;7866:3473:81;2103:34:77;:::i;7866:3473:81:-;;;;;;;;;;;;;-1:-1:-1;;;;;7866:3473:81;;;;;;;;;;;;;;;:::o;:::-;;;;;;-1:-1:-1;;7866:3473:81;;;;-1:-1:-1;;;;;7866:3473:81;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;7866:3473:81;;;;;;;4301:16:25;7866:3473:81;;4726:16:25;;:34;;;;7866:3473:81;4805:1:25;4790:16;:50;;;;7866:3473:81;4855:13:25;:30;;;;7866:3473:81;4851:91:25;;;-1:-1:-1;;;;;;;;;;;7866:3473:81;;-1:-1:-1;;7866:3473:81;;;;;718:4:69;;4951:18:25;4979:67;;718:4:69;:::i;:::-;5066:101:25;;7866:3473:81;5066:101:25;-1:-1:-1;;;;;;;;;;;7866:3473:81;;-1:-1:-1;;;;7866:3473:81;;;;;-1:-1:-1;7866:3473:81;;5142:14:25;;7866:3473:81;;5142:14:25;7866:3473:81;4979:67:25;-1:-1:-1;;;;;;;;;;;7866:3473:81;;-1:-1:-1;;;;7866:3473:81;-1:-1:-1;;;7866:3473:81;;;718:4:69;:::i;4851:91:25:-;7866:3473:81;;-1:-1:-1;;;4908:23:25;;7866:3473:81;;4908:23:25;4855:30;4872:13;;;4855:30;;;4790:50;4818:4;4810:25;:30;;-1:-1:-1;4790:50:25;;4726:34;;;-1:-1:-1;4726:34:25;;7866:3473:81;;;;;;-1:-1:-1;;7866:3473:81;;;;;;8038:36;-1:-1:-1;;;;;7866:3473:81;;;;;;;;;;;;-1:-1:-1;;7866:3473:81;;;;;;;952:44:77;7866:3473:81;;;;;;;;;-1:-1:-1;;7866:3473:81;;;;;;;1253:6:76;7866:3473:81;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7866:3473:81;;;;;;;:::o;:::-;;:::i;:::-;;;;;;;-1:-1:-1;;;;;7866:3473:81;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;7866:3473:81;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;7866:3473:81;;;;;;;:::o;:::-;;;;;;;:::i;:::-;:::o;:::-;;;;;;;:::i;:::-;-1:-1:-1;;;;;7866:3473:81;;;;;;-1:-1:-1;;7866:3473:81;;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;7866:3473:81;;;;;;;;;;;;;;:::o;:::-;;;;;;-1:-1:-1;;7866:3473:81;;;;;;:::i;:::-;;;-1:-1:-1;;;;;7866:3473:81;;;;;;;1870:60:77;7866:3473:81;;;;;;:::i;:::-;;;;-1:-1:-1;7866:3473:81;1870:13:77;7866:3473:81;;;-1:-1:-1;7866:3473:81;1870:60:77;:::i;7866:3473:81:-;;;;;;-1:-1:-1;;7866:3473:81;;;;;;;1356:26:76;7866:3473:81;;;;;;;;;-1:-1:-1;;7866:3473:81;;;;;;7987:45;-1:-1:-1;;;;;7866:3473:81;;;;;;;;;;;;-1:-1:-1;;7866:3473:81;;;;;;;795:35:77;7866:3473:81;;;;;;;;;-1:-1:-1;;7866:3473:81;;;;;;;;-1:-1:-1;;;;;7866:3473:81;;;;;;;;;;;;;;-1:-1:-1;;7866:3473:81;;;;;;3901:31:23;7866:3473:81;;;;;:::i;:::-;;;-1:-1:-1;7866:3473:81;-1:-1:-1;;;;;;;;;;;7866:3473:81;;;-1:-1:-1;7866:3473:81;;;;;;;;;;;;;;;;;3901:31:23;7866:3473:81;;;;;;;;;;;;;-1:-1:-1;;7866:3473:81;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;-1:-1:-1;;;;;7866:3473:81;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;2399:78:77;:43;7866:3473:81;;;:::i;:::-;;;;;-1:-1:-1;7866:3473:81;;;;;-1:-1:-1;7866:3473:81;;;;;;;;;;;;;;;;;2399:43:77;:78;:::i;7866:3473:81:-;;;;;;-1:-1:-1;;7866:3473:81;;;;;;8080:45;-1:-1:-1;;;;;7866:3473:81;;;;;;;;;;;;-1:-1:-1;;7866:3473:81;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;7866:3473:81;;;;-1:-1:-1;7866:3473:81;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;416:25:75;;;;477:31;416:25;;:::i;:::-;7866:3473:81;;;;;;;;;;477:31:75;;7866:3473:81;;;;;;;;;;;:::i;:::-;477:31:75;7866:3473:81;;477:31:75;;;;;;:::i;:::-;518:79;;;7866:3473:81;518:79:75;;7866:3473:81;;;;;;-1:-1:-1;;7866:3473:81;;;;;;;;;;;;;;;;;-1:-1:-1;;7866:3473:81;;;;;;;-1:-1:-1;;;;;404:28:69;7866:3473:81;;;;;;;;;;-1:-1:-1;;7866:3473:81;;;;;;1439:41:76;-1:-1:-1;;;;;7866:3473:81;;;;;;;;;;;;-1:-1:-1;;7866:3473:81;;;;;;-1:-1:-1;7866:3473:81;2009:67:76;7866:3473:81;;;;-1:-1:-1;7866:3473:81;;;;;;;;;;;;;;-1:-1:-1;;7866:3473:81;;;;5767:26:23;7866:3473:81;;;;;;;:::i;:::-;;-1:-1:-1;7866:3473:81;-1:-1:-1;;;;;;;;;;;7866:3473:81;;3202:4:23;4919:24;7866:3473:81;-1:-1:-1;7866:3473:81;4919:24:23;7866:3473:81;3202:4:23;:::i;:::-;5767:26;:::i;7866:3473:81:-;;;;;;-1:-1:-1;;7866:3473:81;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;-1:-1:-1;;7866:3473:81;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;-1:-1:-1;;;;;7866:3473:81;;;;;;;;;;;;:::i;:::-;3217:103:28;;:::i;:::-;-1:-1:-1;7866:3473:81;;;5246:21:76;;:13;;-1:-1:-1;;;;;7866:3473:81;5246:13:76;7866:3473:81;;-1:-1:-1;;;;;7866:3473:81;;;5246:21:76;7866:3473:81;;-1:-1:-1;;;5246:23:76;;7866:3473:81;;;;;5246:23:76;;;;;;;-1:-1:-1;5246:23:76;;;7866:3473:81;-1:-1:-1;;;;;;7866:3473:81;;;5232:10:76;:37;5228:87;;5341:4;7866:3473:81;-1:-1:-1;;;;;7866:3473:81;;;;5355:469:76;;7866:3473:81;-1:-1:-1;;7866:3473:81;;;;;;;;;;;;;;;;5839:55:76;;7866:3473:81;;;;5839:55:76;;;;3282:1:28;1805;-1:-1:-1;;;;;;;;;;;7866:3473:81;3716:283:28;5355:469:76;7866:3473:81;;;;5435:94:76;;;;7866:3473:81;5435:94:76;;;;;;;;;;;;7866:3473:81;5435:94:76;;;:::i;:::-;;7866:3473:81;;5435:94:76;;;;;;:::i;:::-;7866:3473:81;5548:9:76;:51;5544:118;;-1:-1:-1;5839:55:76;5676:138;;;;5839:55;5676:138;;;1150:7;5676:138;;5355:469;;;5544:118;7866:3473:81;;-1:-1:-1;;;5626:21:76;;7866:3473:81;;5626:21:76;5228:87;7866:3473:81;;-1:-1:-1;;;5292:12:76;;7866:3473:81;;5292:12:76;5246:23;;;;;7866:3473:81;5246:23:76;7866:3473:81;5246:23:76;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;7866:3473:81;;;;;;-1:-1:-1;;7866:3473:81;;;;;;;;;:::i;:::-;;;:::i;:::-;449:5:82;-1:-1:-1;;;;;7866:3473:81;435:10:82;:19;431:71;;9461:43:81;:82;7866:3473;;;-1:-1:-1;7866:3473:81;;;;;-1:-1:-1;7866:3473:81;;;;;;;;;;;;;;;;;9461:43;:82;:::i;7866:3473::-;;;;;;-1:-1:-1;;7866:3473:81;;;;;;;;-1:-1:-1;;;;;7866:3473:81;;;;;;;;;;;;;;-1:-1:-1;;7866:3473:81;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;-1:-1:-1;;7866:3473:81;;;;;;;1150:7:76;7866:3473:81;;;;;;;;;-1:-1:-1;;7866:3473:81;;;;;;;2700:1:76;7866:3473:81;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;:::i;9556:591::-;;;;7866:3473;9556:591;7866:3473;;;;9870:147;;;;;;;;;;;7866:3473;;;;;;;;;;;;;;;;;9870:147;;7866:3473;;;;;;;-1:-1:-1;;;;;7866:3473:81;;;;;9778:291;7866:3473;9802:229;7866:3473;;;9802:229;:::i;:::-;9870:147;7866:3473;;;9778:291;;;;;;:::i;:::-;10080:61;;;9556:591;:::o;10080:61::-;7866:3473;;;;;;;;9870:147;10113:17;;7866:3473;9870:147;10113:17;;;;;:::i;7866:3473::-;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;7866:3473:81;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;;;;7866:3473:81;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;10153:1184::-;7866:3473;;-1:-1:-1;;;10370:99:81;;-1:-1:-1;;;;;7866:3473:81;;;10370:99;;;7866:3473;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;7866:3473:81;;;10389:20;7866:3473;;10370:99;;;;;;;;;;;10153:1184;-1:-1:-1;7866:3473:81;;-1:-1:-1;;;10563:32:81;;;7866:3473;10370:99;7866:3473;;;;10563:32;;;;;;;10523:84;10563:32;10370:99;10563:32;;;;;;;10153:1184;-1:-1:-1;7866:3473:81;;-1:-1:-1;;;10523:84:81;;-1:-1:-1;;;;;7866:3473:81;;;10370:99;10523:84;;7866:3473;;;;;;;;;;;;;-1:-1:-1;7866:3473:81;;;;;;;;;10523:84;;10534:11;;7866:3473;10523:84;;;;;;;10370:99;10523:84;;;10153:1184;10651:50;;;;;10752:68;10651:50;;;;:::i;:::-;10752:68;;:::i;:::-;7866:3473;;;10848:21;;;:52;;;10153:1184;10848:85;;;;10153:1184;10848:142;;;;10153:1184;10831:500;;10153:1184;;;;;;:::o;10831:500::-;11022:298;7866:3473;;11022:298;7866:3473;;;;:::i;:::-;;;;10563:32;11050:256;;7866:3473;;11050:256;;7866:3473;;11050:256;;7866:3473;;;11022:298;;;10563:32;11022:298;;;:::i;10848:142::-;7866:3473;;;10953:37;;10848:142;;:85;7866:3473;;;10904:29;;10848:85;;:52;7866:3473;;;10873:27;;10848:52;;10523:84;10752:68;10523:84;;;;;;;;;10370:99;10523:84;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;10563:32;;;;;;;;;;;;;;:::i;:::-;;;;10370:99;;;;;;;;;;;;;;:::i;:::-;;;;;1742:195:77;;1870:60;1742:195;;-1:-1:-1;7866:3473:81;1870:13:77;7866:3473:81;;;-1:-1:-1;7866:3473:81;1870:60:77;:::i;2207:277::-;-1:-1:-1;7866:3473:81;;;2399:21:77;7866:3473:81;;;;;;;;-1:-1:-1;;;;;7866:3473:81;;;;;;;;;2399:78:77;;2207:277;;2399:78;:::i;7866:3473:81:-;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;-1:-1:-1;7866:3473:81;;;;:::o;:::-;;;:::o;8747:485::-;8935:219;8747:485;8959:157;8747:485;;;;7866:3473;;;;;9011:91;;;;;;;;;;;7866:3473;;;;;;;9011:91;;;;;:::i;:::-;8959:157;:::i;7866:3473::-;;;;;;;:::i;:::-;;;;;;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;;;;7866:3473:81;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::o;:::-;-1:-1:-1;;;;;7866:3473:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;2764:920:76:-;;2978:48;2764:920;;;;2978:48;;;;:::i;:::-;3036:36;;;7866:3473:81;;:::i;:::-;;;;3086:20:76;3082:107;;2764:920;3216:11;;;;:193;;;;;2764:920;3216:394;;;;2764:920;3199:455;;;;;;2764:920;:::o;3199:455::-;3635:8;-1:-1:-1;3635:8:76;:::o;3216:394::-;3553:39;;;;;3430:180;3553:39;;;7866:3473:81;;;;;;;;;;3430:180:76;;467:2:88;7866:3473:81;3430:180:76;;;;;:::i;:::-;;7866:3473:81;3444:31:76;-1:-1:-1;;;;;7866:3473:81;3430:180:76;;;;;;;-1:-1:-1;3430:180:76;;;3216:394;3429:181;;3216:394;;;;;;3430:180;;;;3553:39;3430:180;3553:39;3430:180;;;;;;;:::i;:::-;;;;3216:193;-1:-1:-1;7866:3473:81;;;-1:-1:-1;;;;;;7866:3473:81;3248:161:76;3354:37;;;7866:3473:81;3248:161:76;7866:3473:81;;;;;;;;;;3248:161:76;;;;;;;:::i;:::-;;7866:3473:81;3262:29:76;-1:-1:-1;;;;;7866:3473:81;3248:161:76;;;;;;;-1:-1:-1;3248:161:76;;;3216:193;3247:162;;3216:193;;;3248:161;;;;;;;;;;;;;;:::i;:::-;;;;3082:107;3139:39;;;;;;;;;;;;;:::i;:::-;3082:107;;;;;7866:3473:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;8889:1:86;7866:3473:81;;;;;;;:::o;:::-;;:::i;3740:389:76:-;3918:5;7866:3473:81;;;-1:-1:-1;;;3853:71:76;;;-1:-1:-1;;;;;7866:3473:81;;;3853:71:76;;;7866:3473:81;;;;;;;;3740:389:76;;7866:3473:81;3853:71:76;;7866:3473:81;;3853:71:76;7866:3473:81;;;3867:29:76;7866:3473:81;;3853:71:76;;;;;;;3918:5;3853:71;;;3740:389;3852:72;;7866:3473:81;;;3852:181:76;;3740:389;3835:242;;;;;;4094:28;;;:::i;3835:242::-;4058:8;;3918:5;4058:8;:::o;3852:181::-;7866:3473:81;;3945:88:76;;;-1:-1:-1;;;;;7866:3473:81;;3853:71:76;3945:88;;7866:3473:81;467:2:88;7866:3473:81;;;;;;;;-1:-1:-1;7866:3473:81;;;;;;;;3959:31:76;7866:3473:81;3945:88:76;;;;;;;3918:5;3945:88;;;3852:181;3944:89;;;3852:181;;;;;3945:88;;;;;;-1:-1:-1;3945:88:76;;;;;;:::i;:::-;;;;;3853:71;;;;;;;;;;;;;;:::i;:::-;;;;4148:103:23;966:10:27;-1:-1:-1;7866:3473:81;;;;;;;;;952:44:77;;7866:3473:81;;3901:31:23;7866:3473:81;;4468:23:23;4464:108;;4148:103;:::o;:::-;966:10:27;-1:-1:-1;7866:3473:81;;;;;;;;;795:35:77;;7866:3473:81;;3901:31:23;7866:3473:81;4148:103:23;-1:-1:-1;7866:3473:81;;;-1:-1:-1;;;;;;;;;;;7866:3473:81;;;;;;;;966:10:27;7866:3473:81;;;;;;;;;3901:31:23;7866:3473:81;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;7866:3473:81;;-1:-1:-1;7866:3473:81;;;-1:-1:-1;7866:3473:81;:::o;:::-;;:::i;:::-;;;;;-1:-1:-1;;;7866:3473:81;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;7866:3473:81;;;;;;;;:::o;6246:584:86:-;;;;;6360:12;;;7866:3473:81;;;6360:24:86;;6356:75;;6246:584;6474:30;;;;;:::i;:::-;7866:3473:81;;;;;;6578:12:86;;;;:::i;:::-;6604:24;;;;6246:584;-1:-1:-1;6600:188:86;;;-1:-1:-1;;;;;7866:3473:81;;;;;;;6644:21:86;;;:29;:21;;:::i;:29::-;6798:25;6246:584;:::o;6600:188::-;6753:24;;7866:3473:81;;8167:38:60;;-1:-1:-1;;;;;7866:3473:81;;;;;8167:38:60;:::i;:::-;6753:24:86;;;:::i;6604:::-;7866:3473:81;;;;;;6614:14:86;;-1:-1:-1;6604:24:86;;;6356:75;-1:-1:-1;;;7866:3473:81;;;;;;6360:12:86;7866:3473:81;;;;;;;:::i;:::-;;;;;;;;;;;;;;6356:75:86;;;525:595:82;-1:-1:-1;525:595:82;;;;7866:3473:81;;716:88:82;;7866:3473:81;716:88:82;;;;;;;;;783:4;716:88;;;7866:3473:81;;;;;;;;;;;:::i;716:88:82:-;698:107;;;;;;;:::i;:::-;7866:3473:81;;857:45:82;;7866:3473:81;;;;;;;;716:88:82;857:45;;7866:3473:81;:::i;:::-;;;;;;;-1:-1:-1;;;;;7866:3473:81;;;;;857:45:82;716:88;857:45;;;7866:3473:81;;;;:::i;:::-;916:8:82;;912:175;;525:595;:::o;912:175::-;7866:3473:81;;944:22:82;;;940:36;;716:88;990:87;;10580:184:86;7866:3473:81;;10303:8:60;;;:63;-1:-1:-1;10303:63:60;-1:-1:-1;;;;;7866:3473:81;;10726:7:86;7866:3473:81;;10736:12:86;:17;:12;;:17;:::i;:::-;7866:3473:81;;;;;;10580:184:86;:::o;10303:63:60:-;7866:3473:81;;;;;;;;;;13267:109:86;-1:-1:-1;13267:109:86;;-1:-1:-1;13267:109:86;;;7866:3473:81;;;10303:63:60;;7866:3473:81;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::o;8406:869:86:-;;;7866:3473:81;;8620:15:86;8578:11;8645:18;8678:7;8684:1;8678:7;;8674:241;;8406:869;8939:60;;;;;:::i;:::-;9014:8;;;9010:62;;9252:15;9259:7;7866:3473:81;9219:31:86;7866:3473:81;9130:48:86;9170:7;;;:::i;:::-;9130:48;13267:109;;;;;;13089:293;;9130:48;7866:3473:81;:::i;:::-;;9176:1:86;7866:3473:81;9232:17:86;7866:3473:81;;;;;;;;9232:17:86;;7866:3473:81;-1:-1:-1;;;;;7866:3473:81;;;;9219:12:86;;:31;:::i;7866:3473:81:-;9259:7:86;;:::i;:::-;7866:3473:81;;;;9252:15:86;9176:1;;9188:80;;8406:869::o;9010:62::-;8578:11;;-1:-1:-1;8578:11:86;;-1:-1:-1;8578:11:86;;;;9038:23::o;8674:241::-;8721:14;;;;;:::i;:::-;7866:3473:81;;;;;;;8939:60:86;13267:109;;8578:11;13267:109;8753:55;8759:49;13267:109;;8578:11;13267:109;;7866:3473:81;;;;;;8759:49:86;7866:3473:81;;;;8753:55:86;7866:3473:81;;;8753:55:86;13267:109;;;8828:10;8749:156;8674:241;;8749:156;8883:7;;;;;;:::i;:::-;8749:156;8674:241;;3326:384:28;-1:-1:-1;;;;;;;;;;;1847:1:28;7866:3473:81;;3526:20:28;3522:88;;1847:1;7866:3473:81;;3326:384:28:o;3522:88::-;7866:3473:81;;-1:-1:-1;;;3569:30:28;;;;;4758:308:77;;7866:3473:81;-1:-1:-1;7866:3473:81;4889:13:77;7866:3473:81;;;-1:-1:-1;7866:3473:81;11124:30:86;;;;:::i;:::-;11173;;;-1:-1:-1;11173:30:86;;;;11182:17;;-1:-1:-1;;;;;7866:3473:81;;11182:12:86;;:17;:::i;:::-;7866:3473:81;;;4889:13:77;7866:3473:81;;11173:30:86;4947::77;;;11173::86;4943:117:77;;;;4758:308;;:::o;4943:117::-;4993:56;7866:3473:81;-1:-1:-1;7866:3473:81;4889:13:77;7866:3473:81;;;-1:-1:-1;7866:3473:81;819:34:62;837:15;819:34;:::i;4993:56:77:-;4758:308;;:::o;4947:30::-;4957:20;;-1:-1:-1;4947:30:77;;;;11173::86;;;-1:-1:-1;11173:30:86;;7270:387:23;-1:-1:-1;;;;;7866:3473:81;;-1:-1:-1;7866:3473:81;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2887:71:23;7866:3473:81;;;;-1:-1:-1;7866:3473:81;;;;;;;;;;;-1:-1:-1;;;;;7866:3473:81;;;;;;;;;;-1:-1:-1;;7866:3473:81;7509:4:23;7866:3473:81;;;966:10:27;;-1:-1:-1;;;;;7866:3473:81;-1:-1:-1;7532:40:23;-1:-1:-1;;7532:40:23;7509:4;7586:11;:::o;7270:387::-;-1:-1:-1;;;;;7866:3473:81;;-1:-1:-1;7866:3473:81;;;;;;;;;1356:26:76;;-1:-1:-1;;;;;;;;;;;2887:71:23;7866:3473:81;;3901:31:23;7866:3473:81;;;;-1:-1:-1;7866:3473:81;;;;;;;;;;;-1:-1:-1;;;;;7866:3473:81;;;;;;;;;;-1:-1:-1;;7866:3473:81;7509:4:23;7866:3473:81;;;966:10:27;;-1:-1:-1;;;;;7866:3473:81;;7532:40:23;-1:-1:-1;;7532:40:23;7509:4;7586:11;:::o;7432:219::-;7628:12;;;-1:-1:-1;7628:12:23;:::o;7270:387::-;-1:-1:-1;;;;;7866:3473:81;;-1:-1:-1;7866:3473:81;;;;;;;;;795:35:77;;-1:-1:-1;;;;;;;;;;;2887:71:23;7866:3473:81;;3901:31:23;7866:3473:81;7270:387:23;-1:-1:-1;;;;;7866:3473:81;;-1:-1:-1;7866:3473:81;;;;;;;;;952:44:77;;-1:-1:-1;;;;;;;;;;;2887:71:23;7866:3473:81;;3901:31:23;7866:3473:81;7270:387:23;-1:-1:-1;7866:3473:81;;;-1:-1:-1;;;;;;;;;;;7866:3473:81;;;;;;;;-1:-1:-1;;;;;7866:3473:81;;;;;;;;;;;;3901:31:23;7866:3473:81;7892:388:23;-1:-1:-1;7866:3473:81;;;-1:-1:-1;;;;;;;;;;;7866:3473:81;;;;;;;;-1:-1:-1;;;;;7866:3473:81;;;;;;;;;;;;;;;;-1:-1:-1;7866:3473:81;;;;;;;;;;;-1:-1:-1;;;;;7866:3473:81;;;;;;;;;;-1:-1:-1;;7866:3473:81;;;966:10:27;;-1:-1:-1;;;;;7866:3473:81;;8155:40:23;-1:-1:-1;;8155:40:23;7866:3473:81;8209:11:23;:::o;7866:3473:81:-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;7866:3473:81;;;;;;;;:::i;5907:716:76:-;6030:34;5907:716;6030:34;;;;:::i;:::-;7866:3473:81;;-1:-1:-1;;;6080:41:76;;-1:-1:-1;;;;;7866:3473:81;;;6080:41:76;;;7866:3473:81;;;;;6080:41:76;7866:3473:81;;;6090:13:76;7866:3473:81;;6080:41:76;;;;;;;-1:-1:-1;6080:41:76;;;5907:716;6079:42;;6075:90;;6266:27;7866:3473:81;2540:111:28;6210:14:76;7866:3473:81;2540:111:28;;;:::i;:::-;7866:3473:81;;;;;;-1:-1:-1;;;;;7866:3473:81;;-1:-1:-1;7866:3473:81;;;-1:-1:-1;7866:3473:81;;6210:14:76;6266:27;:::i;:::-;6080:41;6311:15;;7866:3473:81;;;;-1:-1:-1;;;;;;7866:3473:81;-1:-1:-1;;;;;7866:3473:81;;;;;;;;;;;-1:-1:-1;;;;;7866:3473:81;;;;6337:143:76;;5907:716;-1:-1:-1;6493:28:76;7866:3473:81;-1:-1:-1;;;;;7866:3473:81;;;;;;;6489:128:76;;5907:716;:::o;6489:128::-;6551:55;;;:::i;:::-;;5907:716::o;6337:143::-;6404:65;;;:::i;:::-;;6337:143;;;6075:90;7866:3473:81;;-1:-1:-1;;;6144:10:76;;6080:41;;6144:10;6080:41;;;;;;;;;;;;;;:::i;:::-;;;;7866:3473:81;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::o;7558:604:86:-;;7866:3473:81;;7686:17:86;7682:83;;7866:3473:81;7789:27:86;7866:3473:81;7789:27:86;7866:3473:81;;7789:27:86;;;;;;:::i;:::-;7860:14;;;;;:::i;:::-;7866:3473:81;;;;;;;;;;;;;;;;7888:22:86;;;7884:77;;7975:21;-1:-1:-1;7975:84:86;;;;7558:604;7971:139;;;;8127:28;;;;:::i;7971:139::-;8082:17;;7789:27;8082:17;7866:3473:81;8075:24:86;:::o;7975:84::-;7866:3473:81;;;8009:16:86;7866:3473:81;;8009:16:86;:::i;:::-;7866:3473:81;;;8001:24:86;:57;;;;;7975:84;;;;;;;8001:57;8029:29;8038:8;;;8029:18;8038:8;8029:23;8038:8;;:::i;:::-;8029:18;;:::i;:::-;7866:3473:81;;;;;8029:29:86;;8001:57;;;;7884:77;7933:17;;;;;7789:27;7933:17;7866:3473:81;7926:24:86;:::o;7682:83::-;7726:28;;;;:::i;7866:3473:81:-;;;;;;;;;;-1:-1:-1;;;;;7866:3473:81;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;;;;7866:3473:81;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;:::i;3722:766:77:-;;;;;7866:3473:81;;:::i;:::-;;;;3962:16:77;3958:92;;3722:766;7866:3473:81;;4107:67:77;7866:3473:81;;;4146:27:77;4107;:13;7866:3473:81;-1:-1:-1;7866:3473:81;;;;;;;;;4107:27:77;4146;;;;7866:3473:81;;;;;;;;;;;4107:67:77;;;;;;;:::i;:::-;;;;;;;;;;4081:355;4107:67;-1:-1:-1;4107:67:77;;;3722:766;4260:28;4311:93;4260:28;4192:230;4260:28;;4222:67;7866:3473:81;4260:28:77;;;4222:67;;;:::i;:::-;4367:36;;;;;4311:93;;:::i;:::-;4192:230;;:::i;4081:355::-;4450:21;;3722:766;:::o;4107:67::-;4192:230;4107:67;;;;4311:93;4107:67;4146:27;4107:67;4146:27;4107:67;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;3958:92;4107:67;4008:31;;;;;;;;;;;;;;:::i;:::-;3958:92;;;;;4494:258;4635:5;7866:3473:81;;;-1:-1:-1;;;4628:27:77;;7866:3473:81;4494:258:77;;4628:27;;7866:3473:81;;4628:27:77;;7866:3473:81;;-1:-1:-1;;;;;7866:3473:81;4628:27:77;;;;;;;4606:139;4628:27;4635:5;4628:27;;;4494:258;2103:25;2662:52;:43;4657:78;2103:25;;:34;:25;;7866:3473:81;;2103:13:77;7866:3473:81;;;;;;;2103:34:77;7866:3473:81;4635:5:77;7866:3473:81;4628:27:77;;7866:3473:81;;4635:5:77;7866:3473:81;;;;;;;;;;;;;;;;;4628:27:77;4657:78;4628:27;;2662:43;4628:27;2662:52;4628:27;;;;;;;;;;;:::i;:::-;;;;;;14291:213:58;7866:3473:81;14369:24:58;;;;14365:103;;7866:3473:81;14291:213:58;:::o;14365:103::-;7866:3473:81;;;;14416:41:58;;;;;;14447:2;14416:41;;;7866:3473:81;;;;;14416:41:58;10552:388:60;7866:3473:81;;10728:8:60;;;10752:20;;10690:17;10752:20;10690:17;10752:20;10690:17;10752:20;:::o;10724:210::-;7866:3473:81;;;;;;;;;;;13267:109:86;10690:17:60;13267:109:86;;10690:17:60;13267:109:86;;;7866:3473:81;:::i;:::-;;;;;;;13267:109:86;7866:3473:81;;;;;10911:11:60;;7866:3473:81;;10886:37:60;10870:1;10886:37;;;:::o;8587:1642:57:-;8658:6;;8654:45;;9401:7;10201:10;10142:26;10093;10044;9995;9946;9897;9848;7866:3473:81;10189:23:57;9401:7;8663:1;7866:3473:81;;;;10826:16:57;10822:99;;8587:1642;7866:3473:81;;;;10938:15:57;10934:96;;8587:1642;7866:3473:81;;;;11047:15:57;11043:96;;8587:1642;7866:3473:81;;;;11156:15:57;11152:96;;8587:1642;7866:3473:81;;;;11265:14:57;11261:93;;8587:1642;7866:3473:81;;;;11371:14:57;11367:93;;8587:1642;7866:3473:81;;;;11477:14:57;11473:93;;8587:1642;7866:3473:81;;;11579:64:57;;8587:1642;7866:3473:81;;;9858:10:57;;;;:::i;:::-;7866:3473:81;;;;;9848:26:57;9907:10;;;;:::i;9897:26::-;9956:10;;;;:::i;9946:26::-;10005:10;;;;:::i;9995:26::-;10054:10;;;;:::i;10044:26::-;10103:10;;;;:::i;10093:26::-;10152:10;;;;:::i;10142:26::-;10201:10;;;:::i;11579:64::-;7866:3473:81;;11579:64:57;;11473:93;7866:3473:81;11511:11:57;;7866:3473:81;;11473:93:57;;;;11367;7866:3473:81;11405:11:57;;7866:3473:81;;11367:93:57;;;;11261;7866:3473:81;11299:11:57;;7866:3473:81;;11261:93:57;;;;11152:96;7866:3473:81;11191:12:57;;7866:3473:81;;11152:96:57;;;;11043;7866:3473:81;11082:12:57;;7866:3473:81;;11043:96:57;;;;10934;7866:3473:81;10973:12:57;;7866:3473:81;;10934:96:57;;;;10822:99;10862:13;;;7866:3473:81;10822:99:57;;;;12497:447:86;;12694:10;;;;;;12926:11;;;12497:447;:::o;12687:230::-;12734:23;;;;;;;:::i;:::-;13267:109;;-1:-1:-1;13267:109:86;7866:3473:81;13267:109:86;;;-1:-1:-1;13267:109:86;;7866:3473:81;;;;;-1:-1:-1;12771:136:86;7866:3473:81;;;12830:10:86;12771:136;;12687:230;;;;12771:136;7866:3473:81;;12891:1:86;7866:3473:81;;;;;;12771:136:86;7866:3473:81;;:::i;6893:76:25:-;;;:::i;:::-;;;:::i;:::-;1805:1:28;-1:-1:-1;;;;;;;;;;;7866:3473:81;6893:76:25:o;7866:3473:81:-;;;;;;;:::i;:::-;-1:-1:-1;7866:3473:81;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;-1:-1:-1;;;;;7866:3473:81;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7866:3473:81;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;5072:1269:77:-;5220:30;5072:1269;7866:3473:81;;:::i;:::-;;5220:30:77;7866:3473:81;;;5220:30:77;;;;;;:::i;:::-;5278:17;;7866:3473:81;5278:17:77;;7866:3473:81;-1:-1:-1;;;;;7866:3473:81;5278:54:77;;:178;;5072:1269;5261:258;;5534:9;5220:30;5549:33;;;5278:17;5591:3;5549:33;;7866:3473:81;;5545:44:77;;;;;5614:36;;;:50;:36;;:::i;:::-;7866:3473:81;-1:-1:-1;;;;;7866:3473:81;;;5614:50:77;;5610:119;;5747:73;5748:72;5783:36;;:33;;;:36;:::i;:::-;5748:72;:::i;:::-;5747:73;;7866:3473:81;5747:73:77;5743:140;;7866:3473:81;;5534:9:77;;5743:140;7866:3473:81;;-1:-1:-1;;;5847:21:77;;;;;5610:119;7866:3473:81;;-1:-1:-1;;;5691:23:77;;;;;5545:44;-1:-1:-1;5923:41:77;;-1:-1:-1;;5923:41:77;;;;5278:17;5973:3;5923:41;;7866:3473:81;;5919:52:77;;;;;5996:44;;;:58;:44;;:::i;:58::-;;5992:127;;6137:90;6138:89;6182:44;;:41;;;:44;:::i;:::-;6138:89;:::i;6137:90::-;6133:157;;7866:3473:81;;5908:9:77;;6133:157;7866:3473:81;;-1:-1:-1;;;6254:21:77;;;;;5992:127;7866:3473:81;;-1:-1:-1;;;6081:23:77;;;;;5919:52;;;;;;6317:17;5072:1269;:::o;5261:258::-;7866:3473:81;;-1:-1:-1;;;5488:20:77;;;;;5278:178;5353:33;5220:30;5353:33;;;7866:3473:81;5353:45:77;:102;5278:178;5353:102;5402:41;;;;;7866:3473:81;5402:53:77;5278:178;;6999:207:86;;7866:3473:81;;9594:15:60;-1:-1:-1;9619:18:60;9652:7;9658:1;9652:7;;9648:234;;6999:207:86;9906:53:60;;;;;:::i;:::-;9977:8;;;:63;-1:-1:-1;9977:63:60;;-1:-1:-1;;;;;7866:3473:81;;7168:7:86;7866:3473:81;;;7178:12:86;;:17;:12;;:17;:::i;9977:63:60:-;9992:41;10025:7;9992:48;10025:7;;:::i;:::-;9992:41;13267:109:86;;;;;;13089:293;;9992:41:60;7866:3473:81;;;;;9992:48:60;9977:63;;;9648:234;9695:14;;;;;:::i;:::-;7866:3473:81;;;;;;;9906:53:60;13267:109:86;;-1:-1:-1;13267:109:86;7866:3473:81;13267:109:86;;;-1:-1:-1;13267:109:86;;7866:3473:81;;;;;9727:48:60;9723:149;7866:3473:81;;;9795:10:60;9723:149;9648:234;;9723:149;9850:7;;;;;;:::i;:::-;9723:149;9648:234;;7866:3473:81;;;;;;;:::i;:::-;-1:-1:-1;7866:3473:81;;;;;;;:::o;11486:272:86:-;;7866:3473:81;11308:22:60;11718:31:86;11486:272;7866:3473:81;;:::i;:::-;;;;:::i;:::-;;11308:22:60;;:::i;:::-;7866:3473:81;;:::i;:::-;;11718:12:86;7866:3473:81;;;;;11731:17:86;7866:3473:81;;;;;11731:17:86;;7866:3473:81;;11718:12:86;;:31;:::i;:::-;7866:3473:81;;;;;;;;;:::i;:::-;;;;;;11731:17:86;11672:79;;7866:3473:81;11486:272:86;:::o;2557:104:57:-;;2641:5;;;;;;:13;2557:104;:::o;2641:13::-;;;2557:104;:::o;7866:3473:81:-;;;-1:-1:-1;;;7866:3473:81;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;7866:3473:81;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;11513:870:60;7866:3473:81;;11513:870:60;;;7866:3473:81;11513:870:60;11672:7;;;;7866:3473:81;11775:28:60;11795:7;;;:::i;7866:3473:81:-;;;;;;;;;;;;;;;;11877:15:60;-1:-1:-1;11873:91:60;;7866:3473:81;;12233:11:60;7866:3473:81;;;12027:16:60;7866:3473:81;;;;;;;12027:16:60;;;;12083:7;12063:43;12083:7;;12063:28;12083:7;;:::i;:::-;12063:28;13267:109:86;;;;;;13089:293;;12063:28:60;7866:3473:81;;;;;;;;;;;;;;;;;12063:43:60;12233:11;7866:3473:81;-1:-1:-1;;;;;7866:3473:81;;;12023:189:60;7866:3473:81;;;12145:52:60;7866:3473:81;12155:41:60;7866:3473:81;;:::i;:::-;;;;;;;;12155:41:60;-1:-1:-1;;;;;7866:3473:81;;12155:41:60;;;7866:3473:81;12145:52:60;:::i;:::-;12023:189;;11873:91;7866:3473:81;;-1:-1:-1;;;11919:30:60;;;;;11668:709;12283:52;7866:3473:81;;12293:41:60;7866:3473:81;;:::i;12293:41:60:-;-1:-1:-1;;;;;7866:3473:81;;12293:41:60;;;7866:3473:81;12145:52:60;:::i;12283:::-;11678:1;12349:17;;:::o;2774:153:57:-;;2900:5;;;2910;;7866:3473:81;;;;;;;;;2774:153:57;:::o;7084:141:25:-;7866:3473:81;-1:-1:-1;;;;;;;;;;;7866:3473:81;;;;7150:18:25;7146:73;;7084:141::o;7146:73::-;7866:3473:81;;-1:-1:-1;;;7191:17:25;;;;;12736:433:60;;12919:10;;;;;;13151:11;;;12736:433;:::o;12912:230::-;12959:23;;;;;;;:::i;:::-;13267:109:86;;-1:-1:-1;13267:109:86;7866:3473:81;13267:109:86;;;-1:-1:-1;13267:109:86;;7866:3473:81;;;;;-1:-1:-1;12996:136:60;7866:3473:81;;;13055:10:60;12996:136;;12912:230;;;;12996:136;7866:3473:81;;13116:1:60;7866:3473:81;;;;;;12996:136:60;7866:3473:81;;:::i","linkReferences":{},"immutableReferences":{"57808":[{"start":2349,"length":32}],"57811":[{"start":4427,"length":32}],"58762":[{"start":1953,"length":32},{"start":4484,"length":32}],"58765":[{"start":1250,"length":32},{"start":9830,"length":32}],"58768":[{"start":1612,"length":32},{"start":7136,"length":32},{"start":7439,"length":32}],"58771":[{"start":1823,"length":32},{"start":6983,"length":32},{"start":7565,"length":32}],"61662":[{"start":3772,"length":32},{"start":6042,"length":32}],"61664":[{"start":3215,"length":32},{"start":6203,"length":32}],"61666":[{"start":4175,"length":32}],"62368":[{"start":1686,"length":32},{"start":5260,"length":32}]}},"methodIdentifiers":{"BASE_DELEGATOR_HINTS()":"79d89614","DEFAULT_ADMIN_ROLE()":"a217fddf","FACTORY()":"2dd31000","HOOK_GAS_LIMIT()":"ff54740f","HOOK_RESERVE()":"557cab44","HOOK_SET_ROLE()":"6679191e","NETWORK_LIMIT_SET_ROLE()":"7d24bb27","NETWORK_REGISTRY()":"c0cd7c3e","OPERATOR_NETWORK_LIMIT_SET_ROLE()":"518504ba","OPERATOR_NETWORK_OPT_IN_SERVICE()":"1a80e500","OPERATOR_VAULT_OPT_IN_SERVICE()":"128e5d82","OPT_IN_SERVICE_HINTS()":"9b656b22","TYPE()":"bb24fe8a","VAULT_FACTORY()":"103f2907","VAULT_HINTS()":"45e78fcb","VERSION()":"ffa1ad74","getRoleAdmin(bytes32)":"248a9ca3","grantRole(bytes32,address)":"2f2ff15d","hasRole(bytes32,address)":"91d14854","hook()":"7f5a7c7b","initialize(bytes)":"439fab91","maxNetworkLimit(bytes32)":"d15b740e","networkLimit(bytes32)":"3eb22c0f","networkLimitAt(bytes32,uint48,bytes)":"5d32a1c9","networkLimitHint(address,bytes32,uint48)":"da749d2b","networkLimitHintInternal(bytes32,uint48)":"197aa7ea","onSlash(bytes32,address,uint256,uint48,bytes)":"e49561ee","operatorNetworkLimit(bytes32,address)":"11422095","operatorNetworkLimitAt(bytes32,address,uint48,bytes)":"94d2558a","operatorNetworkLimitHint(address,bytes32,address,uint48)":"10a28b5d","operatorNetworkLimitHintInternal(bytes32,address,uint48)":"f7b05547","renounceRole(bytes32,address)":"36568abe","revokeRole(bytes32,address)":"d547741f","setHook(address)":"3dfd3873","setMaxNetworkLimit(uint96,uint256)":"23f752d5","setNetworkLimit(bytes32,uint256)":"02145348","setOperatorNetworkLimit(bytes32,address,uint256)":"020cf0c2","stake(bytes32,address)":"fd4d447c","stakeAt(bytes32,address,uint48,bytes)":"e02f6937","stakeHints(address,bytes32,address,uint48)":"25dc9708","staticDelegateCall(address,bytes)":"9f86fd85","supportsInterface(bytes4)":"01ffc9a7","vault()":"fbfa77cf"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"baseDelegatorHints\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"vaultHints\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"optInServiceHints\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"AccessControlBadConfirmation\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"neededRole\",\"type\":\"bytes32\"}],\"name\":\"AccessControlUnauthorizedAccount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AlreadySet\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CheckpointUnorderedInsertion\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"DuplicateRoleHolder\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ExceedsMaxNetworkLimit\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ExternalCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientHookGas\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MissingRoleHolders\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotNetwork\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotSlasher\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotVault\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ReentrancyGuardReentrantCall\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"bits\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"SafeCastOverflowedUintDowncast\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ZeroAddressRoleHolder\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint48\",\"name\":\"captureTimestamp\",\"type\":\"uint48\"}],\"name\":\"OnSlash\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"previousAdminRole\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"newAdminRole\",\"type\":\"bytes32\"}],\"name\":\"RoleAdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleRevoked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"hook\",\"type\":\"address\"}],\"name\":\"SetHook\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"SetMaxNetworkLimit\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"SetNetworkLimit\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"SetOperatorNetworkLimit\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"BASE_DELEGATOR_HINTS\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"DEFAULT_ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"FACTORY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"HOOK_GAS_LIMIT\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"HOOK_RESERVE\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"HOOK_SET_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"NETWORK_LIMIT_SET_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"NETWORK_REGISTRY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"OPERATOR_NETWORK_LIMIT_SET_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"OPERATOR_NETWORK_OPT_IN_SERVICE\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"OPERATOR_VAULT_OPT_IN_SERVICE\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"OPT_IN_SERVICE_HINTS\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"TYPE\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"VAULT_FACTORY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"VAULT_HINTS\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"VERSION\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleAdmin\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"grantRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"hook\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"}],\"name\":\"maxNetworkLimit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"}],\"name\":\"networkLimit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hint\",\"type\":\"bytes\"}],\"name\":\"networkLimitAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"}],\"name\":\"networkLimitHint\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"}],\"name\":\"networkLimitHintInternal\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"exists\",\"type\":\"bool\"},{\"internalType\":\"uint32\",\"name\":\"hint\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint48\",\"name\":\"captureTimestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"onSlash\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"operatorNetworkLimit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hint\",\"type\":\"bytes\"}],\"name\":\"operatorNetworkLimitAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"}],\"name\":\"operatorNetworkLimitHint\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"}],\"name\":\"operatorNetworkLimitHintInternal\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"exists\",\"type\":\"bool\"},{\"internalType\":\"uint32\",\"name\":\"hint\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"callerConfirmation\",\"type\":\"address\"}],\"name\":\"renounceRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"hook_\",\"type\":\"address\"}],\"name\":\"setHook\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint96\",\"name\":\"identifier\",\"type\":\"uint96\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"setMaxNetworkLimit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"setNetworkLimit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"setOperatorNetworkLimit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"stake\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hints\",\"type\":\"bytes\"}],\"name\":\"stakeAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"}],\"name\":\"stakeHints\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"staticDelegateCall\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"vault\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"AccessControlBadConfirmation()\":[{\"details\":\"The caller of a function is not the expected one. NOTE: Don't confuse with {AccessControlUnauthorizedAccount}.\"}],\"AccessControlUnauthorizedAccount(address,bytes32)\":[{\"details\":\"The `account` is missing a role.\"}],\"CheckpointUnorderedInsertion()\":[{\"details\":\"A value was attempted to be inserted on a past checkpoint.\"}],\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"ReentrancyGuardReentrantCall()\":[{\"details\":\"Unauthorized reentrant call.\"}],\"SafeCastOverflowedUintDowncast(uint8,uint256)\":[{\"details\":\"Value doesn't fit in an uint of `bits` size.\"}]},\"events\":{\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"OnSlash(bytes32,address,uint256,uint48)\":{\"params\":{\"amount\":\"amount of the collateral to be slashed\",\"captureTimestamp\":\"time point when the stake was captured\",\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"}},\"RoleAdminChanged(bytes32,bytes32,bytes32)\":{\"details\":\"Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole` `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite {RoleAdminChanged} not being emitted signaling this.\"},\"RoleGranted(bytes32,address,address)\":{\"details\":\"Emitted when `account` is granted `role`. `sender` is the account that originated the contract call, an admin role bearer except when using {AccessControl-_setupRole}.\"},\"RoleRevoked(bytes32,address,address)\":{\"details\":\"Emitted when `account` is revoked `role`. `sender` is the account that originated the contract call: - if using `revokeRole`, it is the admin role bearer - if using `renounceRole`, it is the role bearer (i.e. `account`)\"},\"SetHook(address)\":{\"params\":{\"hook\":\"address of the hook\"}},\"SetMaxNetworkLimit(bytes32,uint256)\":{\"params\":{\"amount\":\"new maximum subnetwork's limit (how much stake the subnetwork is ready to get)\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"}},\"SetNetworkLimit(bytes32,uint256)\":{\"params\":{\"amount\":\"new subnetwork's limit (how much stake the vault curator is ready to give to the subnetwork)\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"}},\"SetOperatorNetworkLimit(bytes32,address,uint256)\":{\"params\":{\"amount\":\"new operator's limit for the subnetwork (how much stake the vault curator is ready to give to the operator for the subnetwork)\",\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"}}},\"kind\":\"dev\",\"methods\":{\"VERSION()\":{\"details\":\"Must return 1 for this one.\",\"returns\":{\"_0\":\"version of the delegator\"}},\"getRoleAdmin(bytes32)\":{\"details\":\"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}.\"},\"grantRole(bytes32,address)\":{\"details\":\"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event.\"},\"hasRole(bytes32,address)\":{\"details\":\"Returns `true` if `account` has been granted `role`.\"},\"initialize(bytes)\":{\"params\":{\"data\":\"some data to use\"}},\"networkLimit(bytes32)\":{\"params\":{\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"},\"returns\":{\"_0\":\"limit of the subnetwork\"}},\"networkLimitAt(bytes32,uint48,bytes)\":{\"params\":{\"hint\":\"hint for checkpoint index\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\",\"timestamp\":\"time point to get the subnetwork limit at\"},\"returns\":{\"_0\":\"limit of the subnetwork at the given timestamp\"}},\"onSlash(bytes32,address,uint256,uint48,bytes)\":{\"details\":\"Only the vault's slasher can call this function.\",\"params\":{\"amount\":\"amount of the collateral slashed\",\"captureTimestamp\":\"time point when the stake was captured\",\"data\":\"some additional data\",\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"}},\"operatorNetworkLimit(bytes32,address)\":{\"params\":{\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"},\"returns\":{\"_0\":\"limit of the operator for the subnetwork\"}},\"operatorNetworkLimitAt(bytes32,address,uint48,bytes)\":{\"params\":{\"hint\":\"hint for checkpoint index\",\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\",\"timestamp\":\"time point to get the operator's limit for the subnetwork at\"},\"returns\":{\"_0\":\"limit of the operator for the subnetwork at the given timestamp\"}},\"renounceRole(bytes32,address)\":{\"details\":\"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `callerConfirmation`. May emit a {RoleRevoked} event.\"},\"revokeRole(bytes32,address)\":{\"details\":\"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event.\"},\"setHook(address)\":{\"details\":\"Only a HOOK_SET_ROLE holder can call this function. The hook can have arbitrary logic under certain functions, however, it doesn't affect the stake guarantees.\",\"params\":{\"hook\":\"address of the hook\"}},\"setMaxNetworkLimit(uint96,uint256)\":{\"details\":\"Only a network can call this function.\",\"params\":{\"amount\":\"new maximum subnetwork's limit\"}},\"setNetworkLimit(bytes32,uint256)\":{\"details\":\"Only a NETWORK_LIMIT_SET_ROLE holder can call this function.\",\"params\":{\"amount\":\"new limit of the subnetwork\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"}},\"setOperatorNetworkLimit(bytes32,address,uint256)\":{\"details\":\"Only an OPERATOR_NETWORK_LIMIT_SET_ROLE holder can call this function.\",\"params\":{\"amount\":\"new limit of the operator for the subnetwork\",\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"}},\"stake(bytes32,address)\":{\"details\":\"Warning: this function is not safe to use for stake capturing, as it can change by the end of the block.\",\"params\":{\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"},\"returns\":{\"_0\":\"slashable stake until the end of the next epoch\"}},\"stakeAt(bytes32,address,uint48,bytes)\":{\"details\":\"Warning: it is not safe to use timestamp >= current one for the stake capturing, as it can change later.\",\"params\":{\"hints\":\"hints for the checkpoints' indexes\",\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\",\"timestamp\":\"time point to capture the stake at\"},\"returns\":{\"_0\":\"slashable stake at the given timestamp until the end of the consequent epoch\"}},\"staticDelegateCall(address,bytes)\":{\"details\":\"It allows to use this contract's storage on-chain.\",\"params\":{\"data\":\"data to make a delegatecall with\",\"target\":\"address of the contract to make a delegatecall to\"}},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"}},\"version\":1},\"userdoc\":{\"events\":{\"OnSlash(bytes32,address,uint256,uint48)\":{\"notice\":\"Emitted when a slash happens.\"},\"SetHook(address)\":{\"notice\":\"Emitted when a hook is set.\"},\"SetMaxNetworkLimit(bytes32,uint256)\":{\"notice\":\"Emitted when a subnetwork's maximum limit is set.\"},\"SetNetworkLimit(bytes32,uint256)\":{\"notice\":\"Emitted when a subnetwork's limit is set.\"},\"SetOperatorNetworkLimit(bytes32,address,uint256)\":{\"notice\":\"Emitted when an operator's limit for a subnetwork is set.\"}},\"kind\":\"user\",\"methods\":{\"FACTORY()\":{\"notice\":\"Get the factory's address.\"},\"HOOK_GAS_LIMIT()\":{\"notice\":\"Get a gas limit for the hook.\"},\"HOOK_RESERVE()\":{\"notice\":\"Get a reserve gas between the gas limit check and the hook's execution.\"},\"HOOK_SET_ROLE()\":{\"notice\":\"Get a hook setter's role.\"},\"NETWORK_LIMIT_SET_ROLE()\":{\"notice\":\"Get a subnetwork limit setter's role.\"},\"NETWORK_REGISTRY()\":{\"notice\":\"Get the network registry's address.\"},\"OPERATOR_NETWORK_LIMIT_SET_ROLE()\":{\"notice\":\"Get an operator-subnetwork limit setter's role.\"},\"OPERATOR_NETWORK_OPT_IN_SERVICE()\":{\"notice\":\"Get the operator-network opt-in service's address.\"},\"OPERATOR_VAULT_OPT_IN_SERVICE()\":{\"notice\":\"Get the operator-vault opt-in service's address.\"},\"TYPE()\":{\"notice\":\"Get the entity's type.\"},\"VAULT_FACTORY()\":{\"notice\":\"Get the vault factory's address.\"},\"VERSION()\":{\"notice\":\"Get a version of the delegator (different versions mean different interfaces).\"},\"hook()\":{\"notice\":\"Get the hook's address.\"},\"initialize(bytes)\":{\"notice\":\"Initialize this entity contract by using a given data.\"},\"maxNetworkLimit(bytes32)\":{\"notice\":\"Get a particular subnetwork's maximum limit (meaning the subnetwork is not ready to get more as a stake).\"},\"networkLimit(bytes32)\":{\"notice\":\"Get a subnetwork's limit (how much stake the vault curator is ready to give to the subnetwork).\"},\"networkLimitAt(bytes32,uint48,bytes)\":{\"notice\":\"Get a subnetwork's limit at a given timestamp using a hint (how much stake the vault curator is ready to give to the subnetwork).\"},\"onSlash(bytes32,address,uint256,uint48,bytes)\":{\"notice\":\"Called when a slash happens.\"},\"operatorNetworkLimit(bytes32,address)\":{\"notice\":\"Get an operator's limit for a subnetwork. (how much stake the vault curator is ready to give to the operator for the subnetwork)\"},\"operatorNetworkLimitAt(bytes32,address,uint48,bytes)\":{\"notice\":\"Get an operator's limit for a subnetwork at a given timestamp using a hint (how much stake the vault curator is ready to give to the operator for the subnetwork).\"},\"setHook(address)\":{\"notice\":\"Set a new hook.\"},\"setMaxNetworkLimit(uint96,uint256)\":{\"notice\":\"Set a maximum limit for a subnetwork (how much stake the subnetwork is ready to get). identifier identifier of the subnetwork\"},\"setNetworkLimit(bytes32,uint256)\":{\"notice\":\"Set a subnetwork's limit (how much stake the vault curator is ready to give to the subnetwork).\"},\"setOperatorNetworkLimit(bytes32,address,uint256)\":{\"notice\":\"Set an operator's limit for a subnetwork. (how much stake the vault curator is ready to give to the operator for the subnetwork)\"},\"stake(bytes32,address)\":{\"notice\":\"Get a stake that a given subnetwork will be able to slash for a certain operator until the end of the next epoch (if no cross-slashing and no slashings by the subnetwork).\"},\"stakeAt(bytes32,address,uint48,bytes)\":{\"notice\":\"Get a stake that a given subnetwork could be able to slash for a certain operator at a given timestamp until the end of the consequent epoch using hints (if no cross-slashing and no slashings by the subnetwork).\"},\"staticDelegateCall(address,bytes)\":{\"notice\":\"Make a delegatecall from this contract to a given target contract with a particular data (always reverts with a return data).\"},\"vault()\":{\"notice\":\"Get the vault's address.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/contracts/hints/DelegatorHints.sol\":\"FullRestakeDelegatorHints\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol\":{\"keccak256\":\"0x6662ec4e5cefca03eeadd073e9469df8d2944bb2ee8ec8f7622c2c46aab5f225\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4d8544c6f8daa4d1bc215c6a72fe0acdb748664a105b0e5efc19295667521d45\",\"dweb:/ipfs/QmdGWqdnXT8S3RgCR6aV8XHZrsybieMQLLnug1NtpSjEXN\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0xc163fcf9bb10138631a9ba5564df1fa25db9adff73bd9ee868a8ae1858fe093a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9706d43a0124053d9880f6e31a59f31bc0a6a3dc1acd66ce0a16e1111658c5f6\",\"dweb:/ipfs/QmUFmfowzkRwGtDu36cXV9SPTBHJ3n7dG9xQiK5B28jTf2\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609\",\"dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9\",\"dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardUpgradeable.sol\":{\"keccak256\":\"0xb44e086e941292cdc7f440de51478493894ef0b1aeccb0c4047445919f667f74\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://942dad22fbdc1669f025540ba63aa3ccfad5f8458fc5d4525b31ebf272e7af45\",\"dweb:/ipfs/Qmdo4X2M82aM3AMoW2kf2jhYkSCyC4T1pHNd6obdsDFnAB\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol\":{\"keccak256\":\"0xdaba3f7c42c55b2896353f32bd27d4d5f8bae741b3b05d4c53f67abc4dc47ce8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1fa2e61141c602510bcd2cd936ed9561922ac8772a9b9c9a9db091a74e354a45\",\"dweb:/ipfs/QmcHQDDoEBwJmwUbzoVkytvJsBx3KVHYFFnDkvRGWh9Wmh\"]},\"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0xb6b36edd6a2999fd243ff226d6cbf84bd71af2432bbd0dfe19392996a1d9cb41\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1fd2f35495652e57e3f99bc6c510bc5f7dd398a176ea2e72d8ed730aebc6ca26\",\"dweb:/ipfs/QmTQV6X4gkikTib49cho5iDX3JvSQbdsoEChoDwrk3CbbH\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC1271.sol\":{\"keccak256\":\"0x85a45f3f10014a0f8be41157a32b6a5f905753ea64a4b64e29fc12b7deeecf39\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c3c74009ce36136b36c77c23935b8e4a7b4f253be2da2be4fb4a916b1ce43743\",\"dweb:/ipfs/QmcH36v3iN7SJJuF73AunLR2LtNxhVJ1wm63ph4dPZ4pcL\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC5267.sol\":{\"keccak256\":\"0x92aa1df62dc3d33f1656d63bede0923e0df0b706ad4137c8b10b0a8fe549fd92\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c5c0f29195ad64cbe556da8e257dac8f05f78c53f90323c0d2accf8e6922d33a\",\"dweb:/ipfs/QmQ61TED8uaCZwcbh8KkgRSsCav7x7HbcGHwHts3U4DmUP\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c\",\"dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0x6008dabfe393240d73d7dd7688033f72740d570aa422254d29a7dce8568f3aff\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f5196ec75139918c6c7bb4251b36395e668f1fa6d206beba7e7520e74913940d\",\"dweb:/ipfs/QmSyqjksXxmm2mCG6qRd1yuwLykypkSVBbnBnGqJRcuJMi\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x37bb49513c49c87c4642a891b13b63571bc87013dde806617aa1efb54605f386\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b3036b3a83b7c48f96641f2a9002b9f2dcb6a5958dd670894ada21ae8229b3d0\",\"dweb:/ipfs/QmUNfSBdoVtjhETaUJCYcaC7pTMgbhht926tJ2uXJbiVd3\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0xaf28a975a78550e45f65e559a3ad6a5ad43b9b8a37366999abd1b7084eb70721\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b7bd24e224f67f65bfadf85dc2929fa965456bb2415478bd0125471b5ce35245\",\"dweb:/ipfs/QmRaydGr8BTHs1kvaZfsNU69pKzUAGFrvABn1KiRSbE51y\"]},\"lib/openzeppelin-contracts/contracts/utils/ShortStrings.sol\":{\"keccak256\":\"0x18a7171df639a934592915a520ecb97c5bbc9675a1105607aac8a94e72bf62c6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7478e1f13da69a2867ccd883001d836b75620362e743f196376d63ed0c422a1c\",\"dweb:/ipfs/QmWywcQ9TNfwtoqAxbn25d8C5VrV12PrPS9UjtGe6pL2BA\"]},\"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0x32ba59b4b7299237c8ba56319110989d7978a039faf754793064e967e5894418\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1ae50c8b562427df610cc4540c9bf104acca7ef8e2dcae567ae7e52272281e9c\",\"dweb:/ipfs/QmTHiadFCSJUPpRjNegc5SahmeU8bAoY8i9Aq6tVscbcKR\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0x55f102ea785d8399c0e58d1108e2d289506dde18abc6db1b7f68c1f9f9bc5792\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e52e0a7765c943ef14e5bcf11e46e6139fa044be564881378349236bf2e3453\",\"dweb:/ipfs/QmZEeeXoFPW47amyP35gfzomF9DixqqTEPwzBakv6cZw6i\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0xeed0a08b0b091f528356cbc7245891a4c748682d4f6a18055e8e6ca77d12a6cf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba80ba06c8e6be852847e4c5f4492cef801feb6558ae09ed705ff2e04ea8b13c\",\"dweb:/ipfs/QmXRJDv3xHLVQCVXg1ZvR35QS9sij5y9NDWYzMfUfAdTHF\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/EIP712.sol\":{\"keccak256\":\"0x999f705a027ed6dc2d4e0df2cc4a509852c6bfd11de1c8161bf88832d0503fd0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0798def67258d9a3cc20b2b4da7ebf351a5cefe0abfdd665d2d81f8e32f89b21\",\"dweb:/ipfs/QmPEvJosnPfzHNjKvCv2D3891mA2Ww8eUwkqrxBjuYdHCt\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol\":{\"keccak256\":\"0xba333517a3add42cd35fe877656fc3dfcc9de53baa4f3aabbd6d12a92e4ea435\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2ceacff44c0fdc81e48e0e0b1db87a2076d3c1fb497341de077bf1da9f6b406c\",\"dweb:/ipfs/QmRUo1muMRAewxrKQ7TkXUtknyRoR57AyEkoPpiuZQ8FzX\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/SignatureChecker.sol\":{\"keccak256\":\"0x6b11eb41a228cca35d4b662b4df69fcd75192851365102690f57b2ac01e83fe6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ab006a2983ed350d2af21ddcdd835dcae3b8340086cc4d088460da5abd041f69\",\"dweb:/ipfs/QmbEacDhkJZiGrgzLjB4pNtE8Z1uudjDw1DvcDUTVQFsLG\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875\",\"dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0xe19a4d5f31d2861e7344e8e535e2feafb913d806d3e2b5fe7782741a2a7094fe\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4aed79c0fa6f0546ed02f2f683e8f77f0fd2ed7eb34d8bbf3d373c9a6d95b13c\",\"dweb:/ipfs/QmWqVz6UAVqmnWU5pqYPt1o6iDEZyPaBraAA3rKfTTSfYj\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x5f7e4076e175393767754387c962926577f1660dd9b810187b9002407656be72\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7d533a1c97cd43a57cd9c465f7ee8dd0e39ae93a8fb8ff8e5303a356b081cdcc\",\"dweb:/ipfs/QmVBEei6aTnvYNZp2CHYVNKyZS4q1KkjANfY39WVXZXVoT\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/Checkpoints.sol\":{\"keccak256\":\"0xbdc5e074d7dd6678f67e92b1a51a20226801a407b0e1af3da367c5d1ff4519ad\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a36cca6b22fff3db16fc789ff6c60eea71d4b156065d4d0c83a0bc5e91a77a8b\",\"dweb:/ipfs/QmYN3exd5AemxjBrN8XMB1p5LbbE16uC3sjbYjwi8AjcGR\"]},\"lib/openzeppelin-contracts/contracts/utils/types/Time.sol\":{\"keccak256\":\"0xc7755af115020049e4140f224f9ee88d7e1799ffb0646f37bf0df24bf6213f58\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7f09bf94d5274334ec021f61a04659db303f31e60460e14b709c9bf187740111\",\"dweb:/ipfs/QmNvgomZYUwFAt4cZbPWAiTeSZQreGehY9BK5xyVJsUttb\"]},\"src/contracts/common/Entity.sol\":{\"keccak256\":\"0x3d61a932995b8443381f3950542d388223a2c26dd5d29a3274dea3baa7388bd7\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://7cdf5f03ca72fd263fd32ff59c8d88ddca911ae83896a287d10772c1bbe9b138\",\"dweb:/ipfs/QmbP84r5BWT1Rn9AYTntWSf3xUMTTCohTZJFhbBhDXFoHa\"]},\"src/contracts/common/MigratableEntity.sol\":{\"keccak256\":\"0x2d736f4dacd5d7e7697503bc426c78b8250fe1694ca157965ec178da6807de58\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://f1237acf96b4b9f9b69156e068eddd726a6e15bd8e87a18dc999cd4ba4da069c\",\"dweb:/ipfs/QmS6M8fiFFSeuJ4ZKKq1z8W7w4ybeHQSy5TLASGoc1LVic\"]},\"src/contracts/common/StaticDelegateCallable.sol\":{\"keccak256\":\"0x350029aa8955eacaffffaeb58babc5c98e80ebc5c5db388ed17ee6465f4a9d90\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://eb392a8ee9050e0af606897df63e3404e3829e8b688b580663892f9664195764\",\"dweb:/ipfs/QmaXC8jqV8UrrAFkzXTEv2fJF56sy33HhLxAzaRZmUxuXD\"]},\"src/contracts/delegator/BaseDelegator.sol\":{\"keccak256\":\"0x7c54d491fdd4415b764a9c8defa068e56d4c0c8c9419be0053a1d377669290e8\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://9238bfbad0f6eeb0dc7727724de14380f1980b395902269703d5e2ef07e52e10\",\"dweb:/ipfs/QmPJn1V4HNXcEghYvogGuSTF24dSQUPosR5qtsXcmNqRm3\"]},\"src/contracts/delegator/FullRestakeDelegator.sol\":{\"keccak256\":\"0x0a81c4f8e72914563a9cb771e93acf889c71ea36b7bec040e4eb562b199d5af1\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://6fc66b6ba02da77046a0bbbd1dd407a62c08f52e04486c9cbd2cb1cca3da555f\",\"dweb:/ipfs/QmZQivK1ZnMxfRQQ5aLpV9co5u55wQVNev5Rg1hzAqxhkE\"]},\"src/contracts/delegator/NetworkRestakeDelegator.sol\":{\"keccak256\":\"0xd3a8e6522f9c6fdcc2da837c9023afd6bdff2bce45a35590320c475519e3636d\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://58b17a87f6554f08376f9ea7fedf486a4aa75801bf0ad8b23ff5a46959b6b7a3\",\"dweb:/ipfs/QmSTmNh67tYt8CmjVZb57r8N3qX5yeYdMApKPJm3qvQgQw\"]},\"src/contracts/delegator/OperatorNetworkSpecificDelegator.sol\":{\"keccak256\":\"0x031a10722b9ec49048f0952710401131290adb87e71caf294e864e7ac3b98a16\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://72428febc875134b2f29205e6f294634a1c22a7d5c78d6a9cb2f8196f107c9b5\",\"dweb:/ipfs/QmTPwXR6h5oytckmkLrHdKeEMdphJxceDhYUR4zvQeWAwY\"]},\"src/contracts/delegator/OperatorSpecificDelegator.sol\":{\"keccak256\":\"0x630ce62fa30b9f3349ab7a8cf8dbf041319febc6dd757be2f94d3d25944ed328\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://c2ac59d47ce57d2a6819ae9833e1a618a371eccff93eb5ab367b201b01f42bfa\",\"dweb:/ipfs/QmdBpGMBivpNPv2WbH8vnCUy5xkVeaxQvGgqi33vKCz1kA\"]},\"src/contracts/hints/DelegatorHints.sol\":{\"keccak256\":\"0x44aa0c396311a54afbc7c73e8dadeed41e3165a4fd13f712b27d63d50fc3376d\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://2f255214f3531fc707d88be0d56a7a0aed4180439316d099d760d9118aa83093\",\"dweb:/ipfs/QmZD1w5p1ukJSXumUAjvxwGmkPhn7vsr21Y2atLGEZR2oi\"]},\"src/contracts/hints/Hints.sol\":{\"keccak256\":\"0x8b565df1ae35993c097a9e642002782a8f451f6fd01809cad6bcd345bdf1b99c\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://99a19adb01e350a92f534095b3078229df1f2f83077992d75d58d8684be45971\",\"dweb:/ipfs/QmbmwcuswVbzvwHQFTtrJG86oV98GnfxqYTb8cV8u1acox\"]},\"src/contracts/hints/OptInServiceHints.sol\":{\"keccak256\":\"0x95d9407900d27b9f4a1233b772aeed809c07b2dc5b31cfc9fa77ca26514c49e5\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://a13a8877e312d7e6b8b85bde3668c5d84ff5ecc83f762cd573f2b7104c64eb42\",\"dweb:/ipfs/QmYV2J55acuGzCNnS3juABuUHY5U1xc8g8o9jwEyFFdeG5\"]},\"src/contracts/hints/VaultHints.sol\":{\"keccak256\":\"0xccb505b7159b769cc114d67b87c2de6b106557f667fc8f3780114baad5c3c442\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://6d0c80a908fc16e96a8b5605a0bd53f9e89ad0ef0a738fbbae80ba4d3160749b\",\"dweb:/ipfs/QmXo5UtWoR8YmunqcbBU8rQMm1nvmvjNPoXcVrDhh4pEwR\"]},\"src/contracts/libraries/Checkpoints.sol\":{\"keccak256\":\"0xba90097c8bfe0a975499428b5f8ac5569483c7d92ccc28c12d70de416aae040c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://12f5d93ca94cd06d3147db68993165a58e17903ed53682560de61f3085ad4609\",\"dweb:/ipfs/QmePiuAqvXprMLmFZkGZeGjvGPAvsEDHfCDv7BoQhXu9xE\"]},\"src/contracts/libraries/ERC4626Math.sol\":{\"keccak256\":\"0x8441160513c1cbeb1c3b9ee077bcc7e7ce20006b52a77c8dd39ff0ef89699939\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://943f8cc3e26ddf649f465f40c909819f5c864717c4baa339e9e403b9374a4653\",\"dweb:/ipfs/QmXPxi1sUDsrGprZdUgCzoPEosaZMv9ZhygWQ1vAi1phAB\"]},\"src/contracts/libraries/Subnetwork.sol\":{\"keccak256\":\"0xf5ef5506fd66082b3c2e7f3df37529f5a8efad32ac62e7c8914bd63219190bfe\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba031a54ee0d0e9a270c2b9e18437f5668cfeb659cfd5fe0677459d7fcac2a56\",\"dweb:/ipfs/QmReP3H7qQ78tAfgLnJKsNEQNCQfF1X1Get38Ffd4kzq32\"]},\"src/contracts/service/OptInService.sol\":{\"keccak256\":\"0x4e0932077f2686b7990e10d59deb2535334c0d09e52ef6e57c6ab09eca21c4b1\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://7c00d311032ed4a1743aca7475f3c86ce15cdfc2218108efc3731c03d34a5278\",\"dweb:/ipfs/QmUGGfVwVhaHr5kS4177yKKYiLYzi5qZpkEmvYxBZqazxf\"]},\"src/contracts/vault/Vault.sol\":{\"keccak256\":\"0x2ceff6ed3298c4cad144c99fcc79b51cb9397d6ebef00285b915848b476f8c2e\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://11f2fb3581854f3ab6e82e8d4935d9eb510c903a13c3f022346c2956a58f5307\",\"dweb:/ipfs/QmdUnoXoyYoG9SGWyQZCFyLDRUUX3eXyXetkRvw6jxqqBz\"]},\"src/contracts/vault/VaultStorage.sol\":{\"keccak256\":\"0x57db25b127d77ea3472de53e3a4af3354399655b9268638b99ca5925fa364a56\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://aa763d9a6ec508ae3abfb8228b72b9fd9525279e5135d4962e79ff059feb1173\",\"dweb:/ipfs/QmcbDR6E9wyEpu6V2FkEC4hnWy47zXA9LSKJde6zSGd33Q\"]},\"src/interfaces/common/IEntity.sol\":{\"keccak256\":\"0x8ef4b63d6da63489778ccd5f8d13ebdd527dd4b62730b2c616df5af7474d2d21\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a8d69576a9219d85c50816a18ad53a4d53cfcb27ed38b8cccc808dc2734b71b\",\"dweb:/ipfs/QmYVN3P4Q4REvBWJ97TbAcaxm3uyB2anV6NSGa6ZtSwcEv\"]},\"src/interfaces/common/IMigratableEntity.sol\":{\"keccak256\":\"0x8f5f2809f3afbe8ebfbb365dd7b57b4dd3b6f9943a6187eaf648d45895b8e3c4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ffe640537d539e7a4fde70d30d3e4c57f4ba9c2c25c450cea713aae38e8fd5c\",\"dweb:/ipfs/QmSUTGzvdcn1R1KB7tLThMRtESsfPbeXDhhhKWGtntzBds\"]},\"src/interfaces/common/IRegistry.sol\":{\"keccak256\":\"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014\",\"dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK\"]},\"src/interfaces/common/IStaticDelegateCallable.sol\":{\"keccak256\":\"0xa335d4e81b9071b7de66ef92b43ff20671d86516eb1be46fef29a3483cd3f5d5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d464b9db863c14c05547d2b23352f2e9b7b784799cf09f6bbc4906a2a74e3516\",\"dweb:/ipfs/QmUVWzFvJz7eEbDQKiFTTzwi7TEbjcs3VmwdM4kuptAKvi\"]},\"src/interfaces/delegator/IBaseDelegator.sol\":{\"keccak256\":\"0x96bb312f032e17accce3f8f80936d99468029d6b37c9ca74acdb4b026a0148ee\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2a66dcb5b7d1a6ef6a363431ea98ebd78bc4fdd3d7a134d9b542dc66e7d025c2\",\"dweb:/ipfs/QmRhTPLd2ZAyRHmJUFUcWKs9b3if49QY17LYZuRqWmghw8\"]},\"src/interfaces/delegator/IDelegatorHook.sol\":{\"keccak256\":\"0xc51aa8d7d1f6c8043ee819b7aeb86da0e993912e1442098df897e299f01f9f46\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://adddf5cb2ba282aeb576b26efb28640f865a1721cc9b6eee8b3ee0457a2c9780\",\"dweb:/ipfs/QmNYgAmnLRwWZbhTuQhZs9rx4zcme1df5mEepkrniorSoW\"]},\"src/interfaces/delegator/IFullRestakeDelegator.sol\":{\"keccak256\":\"0xa3c8cb2e45d4d8ce90e95263bea40c01dc400f05ad65bc29597d878606be5e7d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://782cf5e201aa4cca037ebafd3807a68ff1cc721d5b8416a35244db0d0607369e\",\"dweb:/ipfs/QmQkJks6x7CKndeTPa9LxgTNygD5uEi7obhADhpq1Lsr9A\"]},\"src/interfaces/delegator/INetworkRestakeDelegator.sol\":{\"keccak256\":\"0xe7030fe30389a147fd710e3436ec346b4842695fd3e65a81b95375c9f1d633fc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://739c7e66d301778054f5c90bee45ec9438f68afba8a03eaaac52064c73b115ad\",\"dweb:/ipfs/QmfZ2ytKcTykAc76nxhg8ikUXV8NdBpetqb8W4YWPcox1Z\"]},\"src/interfaces/delegator/IOperatorNetworkSpecificDelegator.sol\":{\"keccak256\":\"0x74b95e64d29769202d45dd277bb830f623ff3d41ce77b80ce3ee4e318a5c71ec\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e512b903aae5c1b8a028c6e3f4f6223b5cb5d704503cfa6bd37b5346868f5c20\",\"dweb:/ipfs/QmZim9YExsPWtyxyeui993HTKAEmrg8MUcSkZ77Gp2JcuZ\"]},\"src/interfaces/delegator/IOperatorSpecificDelegator.sol\":{\"keccak256\":\"0x72075cab585dc17240cc3e32bc99b92f0d5627ddd988fed680e3e1a52d5a01e4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7448bc90699409ae61d85216b5efc2143a37f0f73354be2aea993bc54afca441\",\"dweb:/ipfs/QmXE4gAxM8pHosZK8mcTcj17puBx484meDCcmrDePskGHZ\"]},\"src/interfaces/service/IOptInService.sol\":{\"keccak256\":\"0x76fb5460a6d87a5705433d4fbeff7253cd75b8bbd0c888b2088f16e86ace146a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://990322019b3d11465f7024bae77ccbf7e2fe5d6fa3c754584778f37d04fa1337\",\"dweb:/ipfs/QmaSNHzcqxTkUCG9a4nqVfLECHLdjdrwAnDi3yDC7tDL24\"]},\"src/interfaces/slasher/IBaseSlasher.sol\":{\"keccak256\":\"0x7c82528b445659c313ab77335c407b0b6efe5e79027187bb287f7bc74202b404\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0274c90aa5df1aa6bb470a6aab53992fb14fd7e5472c9430416505b29647d9cf\",\"dweb:/ipfs/QmckbmJLDetPemVzCnnGcKYWAZV2BRFXGDsjiaec8jkHxx\"]},\"src/interfaces/vault/IVault.sol\":{\"keccak256\":\"0xffee01d383cd4e1a5530c614bf4360c1ef070c288abec9da1eb531b51bc07235\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://04f0046cac285d8ec44ebbb1f79dc94fab4495767190cad8364fbc1fafaadfb9\",\"dweb:/ipfs/QmUawAunwzXfCyShWfhKeThAgKtqe51hmrxvrXvM772M2R\"]},\"src/interfaces/vault/IVaultStorage.sol\":{\"keccak256\":\"0x592626f13754194f83047135de19229c49390bd59e34659b1bb38be71d973a22\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://06a6a9dfddd05e580b32bebe2cff4f63ba26a653180676d58225dd30d9c89d3e\",\"dweb:/ipfs/QmdgzBeY6Sxo8mGtyBxtv1tM1c2kU6J6zjeRd7vuXm4DU6\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.25+commit.b61c2a91"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"baseDelegatorHints","type":"address"},{"internalType":"address","name":"vaultHints","type":"address"},{"internalType":"address","name":"optInServiceHints","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"AccessControlBadConfirmation"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bytes32","name":"neededRole","type":"bytes32"}],"type":"error","name":"AccessControlUnauthorizedAccount"},{"inputs":[],"type":"error","name":"AlreadySet"},{"inputs":[],"type":"error","name":"CheckpointUnorderedInsertion"},{"inputs":[],"type":"error","name":"DuplicateRoleHolder"},{"inputs":[],"type":"error","name":"ExceedsMaxNetworkLimit"},{"inputs":[],"type":"error","name":"ExternalCall"},{"inputs":[],"type":"error","name":"InsufficientHookGas"},{"inputs":[],"type":"error","name":"InvalidInitialization"},{"inputs":[],"type":"error","name":"MissingRoleHolders"},{"inputs":[],"type":"error","name":"NotInitialized"},{"inputs":[],"type":"error","name":"NotInitializing"},{"inputs":[],"type":"error","name":"NotNetwork"},{"inputs":[],"type":"error","name":"NotSlasher"},{"inputs":[],"type":"error","name":"NotVault"},{"inputs":[],"type":"error","name":"ReentrancyGuardReentrantCall"},{"inputs":[{"internalType":"uint8","name":"bits","type":"uint8"},{"internalType":"uint256","name":"value","type":"uint256"}],"type":"error","name":"SafeCastOverflowedUintDowncast"},{"inputs":[],"type":"error","name":"ZeroAddressRoleHolder"},{"inputs":[{"internalType":"uint64","name":"version","type":"uint64","indexed":false}],"type":"event","name":"Initialized","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32","indexed":true},{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false},{"internalType":"uint48","name":"captureTimestamp","type":"uint48","indexed":false}],"type":"event","name":"OnSlash","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"bytes32","name":"previousAdminRole","type":"bytes32","indexed":true},{"internalType":"bytes32","name":"newAdminRole","type":"bytes32","indexed":true}],"type":"event","name":"RoleAdminChanged","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"address","name":"sender","type":"address","indexed":true}],"type":"event","name":"RoleGranted","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"address","name":"sender","type":"address","indexed":true}],"type":"event","name":"RoleRevoked","anonymous":false},{"inputs":[{"internalType":"address","name":"hook","type":"address","indexed":true}],"type":"event","name":"SetHook","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"SetMaxNetworkLimit","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"SetNetworkLimit","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32","indexed":true},{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"SetOperatorNetworkLimit","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"BASE_DELEGATOR_HINTS","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"DEFAULT_ADMIN_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"FACTORY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"HOOK_GAS_LIMIT","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"HOOK_RESERVE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"HOOK_SET_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"NETWORK_LIMIT_SET_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"NETWORK_REGISTRY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"OPERATOR_NETWORK_LIMIT_SET_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"OPERATOR_NETWORK_OPT_IN_SERVICE","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"OPERATOR_VAULT_OPT_IN_SERVICE","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"OPT_IN_SERVICE_HINTS","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"TYPE","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"VAULT_FACTORY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"VAULT_HINTS","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"VERSION","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getRoleAdmin","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"grantRole"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"hasRole","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"hook","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"}],"stateMutability":"view","type":"function","name":"maxNetworkLimit","outputs":[{"internalType":"uint256","name":"value","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"}],"stateMutability":"view","type":"function","name":"networkLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"uint48","name":"timestamp","type":"uint48"},{"internalType":"bytes","name":"hint","type":"bytes"}],"stateMutability":"view","type":"function","name":"networkLimitAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"delegator","type":"address"},{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"uint48","name":"timestamp","type":"uint48"}],"stateMutability":"view","type":"function","name":"networkLimitHint","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"uint48","name":"timestamp","type":"uint48"}],"stateMutability":"view","type":"function","name":"networkLimitHintInternal","outputs":[{"internalType":"bool","name":"exists","type":"bool"},{"internalType":"uint32","name":"hint","type":"uint32"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint48","name":"captureTimestamp","type":"uint48"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"onSlash"},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"operatorNetworkLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint48","name":"timestamp","type":"uint48"},{"internalType":"bytes","name":"hint","type":"bytes"}],"stateMutability":"view","type":"function","name":"operatorNetworkLimitAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"delegator","type":"address"},{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint48","name":"timestamp","type":"uint48"}],"stateMutability":"view","type":"function","name":"operatorNetworkLimitHint","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint48","name":"timestamp","type":"uint48"}],"stateMutability":"view","type":"function","name":"operatorNetworkLimitHintInternal","outputs":[{"internalType":"bool","name":"exists","type":"bool"},{"internalType":"uint32","name":"hint","type":"uint32"}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"callerConfirmation","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"renounceRole"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"revokeRole"},{"inputs":[{"internalType":"address","name":"hook_","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setHook"},{"inputs":[{"internalType":"uint96","name":"identifier","type":"uint96"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setMaxNetworkLimit"},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setNetworkLimit"},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setOperatorNetworkLimit"},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"stake","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint48","name":"timestamp","type":"uint48"},{"internalType":"bytes","name":"hints","type":"bytes"}],"stateMutability":"view","type":"function","name":"stakeAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"delegator","type":"address"},{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint48","name":"timestamp","type":"uint48"}],"stateMutability":"view","type":"function","name":"stakeHints","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"staticDelegateCall"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"vault","outputs":[{"internalType":"address","name":"","type":"address"}]}],"devdoc":{"kind":"dev","methods":{"VERSION()":{"details":"Must return 1 for this one.","returns":{"_0":"version of the delegator"}},"getRoleAdmin(bytes32)":{"details":"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}."},"grantRole(bytes32,address)":{"details":"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event."},"hasRole(bytes32,address)":{"details":"Returns `true` if `account` has been granted `role`."},"initialize(bytes)":{"params":{"data":"some data to use"}},"networkLimit(bytes32)":{"params":{"subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"},"returns":{"_0":"limit of the subnetwork"}},"networkLimitAt(bytes32,uint48,bytes)":{"params":{"hint":"hint for checkpoint index","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)","timestamp":"time point to get the subnetwork limit at"},"returns":{"_0":"limit of the subnetwork at the given timestamp"}},"onSlash(bytes32,address,uint256,uint48,bytes)":{"details":"Only the vault's slasher can call this function.","params":{"amount":"amount of the collateral slashed","captureTimestamp":"time point when the stake was captured","data":"some additional data","operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"}},"operatorNetworkLimit(bytes32,address)":{"params":{"operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"},"returns":{"_0":"limit of the operator for the subnetwork"}},"operatorNetworkLimitAt(bytes32,address,uint48,bytes)":{"params":{"hint":"hint for checkpoint index","operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)","timestamp":"time point to get the operator's limit for the subnetwork at"},"returns":{"_0":"limit of the operator for the subnetwork at the given timestamp"}},"renounceRole(bytes32,address)":{"details":"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `callerConfirmation`. May emit a {RoleRevoked} event."},"revokeRole(bytes32,address)":{"details":"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event."},"setHook(address)":{"details":"Only a HOOK_SET_ROLE holder can call this function. The hook can have arbitrary logic under certain functions, however, it doesn't affect the stake guarantees.","params":{"hook":"address of the hook"}},"setMaxNetworkLimit(uint96,uint256)":{"details":"Only a network can call this function.","params":{"amount":"new maximum subnetwork's limit"}},"setNetworkLimit(bytes32,uint256)":{"details":"Only a NETWORK_LIMIT_SET_ROLE holder can call this function.","params":{"amount":"new limit of the subnetwork","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"}},"setOperatorNetworkLimit(bytes32,address,uint256)":{"details":"Only an OPERATOR_NETWORK_LIMIT_SET_ROLE holder can call this function.","params":{"amount":"new limit of the operator for the subnetwork","operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"}},"stake(bytes32,address)":{"details":"Warning: this function is not safe to use for stake capturing, as it can change by the end of the block.","params":{"operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"},"returns":{"_0":"slashable stake until the end of the next epoch"}},"stakeAt(bytes32,address,uint48,bytes)":{"details":"Warning: it is not safe to use timestamp >= current one for the stake capturing, as it can change later.","params":{"hints":"hints for the checkpoints' indexes","operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)","timestamp":"time point to capture the stake at"},"returns":{"_0":"slashable stake at the given timestamp until the end of the consequent epoch"}},"staticDelegateCall(address,bytes)":{"details":"It allows to use this contract's storage on-chain.","params":{"data":"data to make a delegatecall with","target":"address of the contract to make a delegatecall to"}},"supportsInterface(bytes4)":{"details":"See {IERC165-supportsInterface}."}},"version":1},"userdoc":{"kind":"user","methods":{"FACTORY()":{"notice":"Get the factory's address."},"HOOK_GAS_LIMIT()":{"notice":"Get a gas limit for the hook."},"HOOK_RESERVE()":{"notice":"Get a reserve gas between the gas limit check and the hook's execution."},"HOOK_SET_ROLE()":{"notice":"Get a hook setter's role."},"NETWORK_LIMIT_SET_ROLE()":{"notice":"Get a subnetwork limit setter's role."},"NETWORK_REGISTRY()":{"notice":"Get the network registry's address."},"OPERATOR_NETWORK_LIMIT_SET_ROLE()":{"notice":"Get an operator-subnetwork limit setter's role."},"OPERATOR_NETWORK_OPT_IN_SERVICE()":{"notice":"Get the operator-network opt-in service's address."},"OPERATOR_VAULT_OPT_IN_SERVICE()":{"notice":"Get the operator-vault opt-in service's address."},"TYPE()":{"notice":"Get the entity's type."},"VAULT_FACTORY()":{"notice":"Get the vault factory's address."},"VERSION()":{"notice":"Get a version of the delegator (different versions mean different interfaces)."},"hook()":{"notice":"Get the hook's address."},"initialize(bytes)":{"notice":"Initialize this entity contract by using a given data."},"maxNetworkLimit(bytes32)":{"notice":"Get a particular subnetwork's maximum limit (meaning the subnetwork is not ready to get more as a stake)."},"networkLimit(bytes32)":{"notice":"Get a subnetwork's limit (how much stake the vault curator is ready to give to the subnetwork)."},"networkLimitAt(bytes32,uint48,bytes)":{"notice":"Get a subnetwork's limit at a given timestamp using a hint (how much stake the vault curator is ready to give to the subnetwork)."},"onSlash(bytes32,address,uint256,uint48,bytes)":{"notice":"Called when a slash happens."},"operatorNetworkLimit(bytes32,address)":{"notice":"Get an operator's limit for a subnetwork. (how much stake the vault curator is ready to give to the operator for the subnetwork)"},"operatorNetworkLimitAt(bytes32,address,uint48,bytes)":{"notice":"Get an operator's limit for a subnetwork at a given timestamp using a hint (how much stake the vault curator is ready to give to the operator for the subnetwork)."},"setHook(address)":{"notice":"Set a new hook."},"setMaxNetworkLimit(uint96,uint256)":{"notice":"Set a maximum limit for a subnetwork (how much stake the subnetwork is ready to get). identifier identifier of the subnetwork"},"setNetworkLimit(bytes32,uint256)":{"notice":"Set a subnetwork's limit (how much stake the vault curator is ready to give to the subnetwork)."},"setOperatorNetworkLimit(bytes32,address,uint256)":{"notice":"Set an operator's limit for a subnetwork. (how much stake the vault curator is ready to give to the operator for the subnetwork)"},"stake(bytes32,address)":{"notice":"Get a stake that a given subnetwork will be able to slash for a certain operator until the end of the next epoch (if no cross-slashing and no slashings by the subnetwork)."},"stakeAt(bytes32,address,uint48,bytes)":{"notice":"Get a stake that a given subnetwork could be able to slash for a certain operator at a given timestamp until the end of the consequent epoch using hints (if no cross-slashing and no slashings by the subnetwork)."},"staticDelegateCall(address,bytes)":{"notice":"Make a delegatecall from this contract to a given target contract with a particular data (always reverts with a return data)."},"vault()":{"notice":"Get the vault's address."}},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/contracts/hints/DelegatorHints.sol":"FullRestakeDelegatorHints"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol":{"keccak256":"0x6662ec4e5cefca03eeadd073e9469df8d2944bb2ee8ec8f7622c2c46aab5f225","urls":["bzz-raw://4d8544c6f8daa4d1bc215c6a72fe0acdb748664a105b0e5efc19295667521d45","dweb:/ipfs/QmdGWqdnXT8S3RgCR6aV8XHZrsybieMQLLnug1NtpSjEXN"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol":{"keccak256":"0xc163fcf9bb10138631a9ba5564df1fa25db9adff73bd9ee868a8ae1858fe093a","urls":["bzz-raw://9706d43a0124053d9880f6e31a59f31bc0a6a3dc1acd66ce0a16e1111658c5f6","dweb:/ipfs/QmUFmfowzkRwGtDu36cXV9SPTBHJ3n7dG9xQiK5B28jTf2"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b","urls":["bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609","dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol":{"keccak256":"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397","urls":["bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9","dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardUpgradeable.sol":{"keccak256":"0xb44e086e941292cdc7f440de51478493894ef0b1aeccb0c4047445919f667f74","urls":["bzz-raw://942dad22fbdc1669f025540ba63aa3ccfad5f8458fc5d4525b31ebf272e7af45","dweb:/ipfs/Qmdo4X2M82aM3AMoW2kf2jhYkSCyC4T1pHNd6obdsDFnAB"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol":{"keccak256":"0xdaba3f7c42c55b2896353f32bd27d4d5f8bae741b3b05d4c53f67abc4dc47ce8","urls":["bzz-raw://1fa2e61141c602510bcd2cd936ed9561922ac8772a9b9c9a9db091a74e354a45","dweb:/ipfs/QmcHQDDoEBwJmwUbzoVkytvJsBx3KVHYFFnDkvRGWh9Wmh"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol":{"keccak256":"0xb6b36edd6a2999fd243ff226d6cbf84bd71af2432bbd0dfe19392996a1d9cb41","urls":["bzz-raw://1fd2f35495652e57e3f99bc6c510bc5f7dd398a176ea2e72d8ed730aebc6ca26","dweb:/ipfs/QmTQV6X4gkikTib49cho5iDX3JvSQbdsoEChoDwrk3CbbH"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC1271.sol":{"keccak256":"0x85a45f3f10014a0f8be41157a32b6a5f905753ea64a4b64e29fc12b7deeecf39","urls":["bzz-raw://c3c74009ce36136b36c77c23935b8e4a7b4f253be2da2be4fb4a916b1ce43743","dweb:/ipfs/QmcH36v3iN7SJJuF73AunLR2LtNxhVJ1wm63ph4dPZ4pcL"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC5267.sol":{"keccak256":"0x92aa1df62dc3d33f1656d63bede0923e0df0b706ad4137c8b10b0a8fe549fd92","urls":["bzz-raw://c5c0f29195ad64cbe556da8e257dac8f05f78c53f90323c0d2accf8e6922d33a","dweb:/ipfs/QmQ61TED8uaCZwcbh8KkgRSsCav7x7HbcGHwHts3U4DmUP"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70","urls":["bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c","dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol":{"keccak256":"0x6008dabfe393240d73d7dd7688033f72740d570aa422254d29a7dce8568f3aff","urls":["bzz-raw://f5196ec75139918c6c7bb4251b36395e668f1fa6d206beba7e7520e74913940d","dweb:/ipfs/QmSyqjksXxmm2mCG6qRd1yuwLykypkSVBbnBnGqJRcuJMi"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0x37bb49513c49c87c4642a891b13b63571bc87013dde806617aa1efb54605f386","urls":["bzz-raw://b3036b3a83b7c48f96641f2a9002b9f2dcb6a5958dd670894ada21ae8229b3d0","dweb:/ipfs/QmUNfSBdoVtjhETaUJCYcaC7pTMgbhht926tJ2uXJbiVd3"],"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/ShortStrings.sol":{"keccak256":"0x18a7171df639a934592915a520ecb97c5bbc9675a1105607aac8a94e72bf62c6","urls":["bzz-raw://7478e1f13da69a2867ccd883001d836b75620362e743f196376d63ed0c422a1c","dweb:/ipfs/QmWywcQ9TNfwtoqAxbn25d8C5VrV12PrPS9UjtGe6pL2BA"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol":{"keccak256":"0x32ba59b4b7299237c8ba56319110989d7978a039faf754793064e967e5894418","urls":["bzz-raw://1ae50c8b562427df610cc4540c9bf104acca7ef8e2dcae567ae7e52272281e9c","dweb:/ipfs/QmTHiadFCSJUPpRjNegc5SahmeU8bAoY8i9Aq6tVscbcKR"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0x55f102ea785d8399c0e58d1108e2d289506dde18abc6db1b7f68c1f9f9bc5792","urls":["bzz-raw://6e52e0a7765c943ef14e5bcf11e46e6139fa044be564881378349236bf2e3453","dweb:/ipfs/QmZEeeXoFPW47amyP35gfzomF9DixqqTEPwzBakv6cZw6i"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol":{"keccak256":"0xeed0a08b0b091f528356cbc7245891a4c748682d4f6a18055e8e6ca77d12a6cf","urls":["bzz-raw://ba80ba06c8e6be852847e4c5f4492cef801feb6558ae09ed705ff2e04ea8b13c","dweb:/ipfs/QmXRJDv3xHLVQCVXg1ZvR35QS9sij5y9NDWYzMfUfAdTHF"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/EIP712.sol":{"keccak256":"0x999f705a027ed6dc2d4e0df2cc4a509852c6bfd11de1c8161bf88832d0503fd0","urls":["bzz-raw://0798def67258d9a3cc20b2b4da7ebf351a5cefe0abfdd665d2d81f8e32f89b21","dweb:/ipfs/QmPEvJosnPfzHNjKvCv2D3891mA2Ww8eUwkqrxBjuYdHCt"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol":{"keccak256":"0xba333517a3add42cd35fe877656fc3dfcc9de53baa4f3aabbd6d12a92e4ea435","urls":["bzz-raw://2ceacff44c0fdc81e48e0e0b1db87a2076d3c1fb497341de077bf1da9f6b406c","dweb:/ipfs/QmRUo1muMRAewxrKQ7TkXUtknyRoR57AyEkoPpiuZQ8FzX"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/SignatureChecker.sol":{"keccak256":"0x6b11eb41a228cca35d4b662b4df69fcd75192851365102690f57b2ac01e83fe6","urls":["bzz-raw://ab006a2983ed350d2af21ddcdd835dcae3b8340086cc4d088460da5abd041f69","dweb:/ipfs/QmbEacDhkJZiGrgzLjB4pNtE8Z1uudjDw1DvcDUTVQFsLG"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b","urls":["bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df","dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d","urls":["bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875","dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol":{"keccak256":"0xe19a4d5f31d2861e7344e8e535e2feafb913d806d3e2b5fe7782741a2a7094fe","urls":["bzz-raw://4aed79c0fa6f0546ed02f2f683e8f77f0fd2ed7eb34d8bbf3d373c9a6d95b13c","dweb:/ipfs/QmWqVz6UAVqmnWU5pqYPt1o6iDEZyPaBraAA3rKfTTSfYj"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0x5f7e4076e175393767754387c962926577f1660dd9b810187b9002407656be72","urls":["bzz-raw://7d533a1c97cd43a57cd9c465f7ee8dd0e39ae93a8fb8ff8e5303a356b081cdcc","dweb:/ipfs/QmVBEei6aTnvYNZp2CHYVNKyZS4q1KkjANfY39WVXZXVoT"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/Checkpoints.sol":{"keccak256":"0xbdc5e074d7dd6678f67e92b1a51a20226801a407b0e1af3da367c5d1ff4519ad","urls":["bzz-raw://a36cca6b22fff3db16fc789ff6c60eea71d4b156065d4d0c83a0bc5e91a77a8b","dweb:/ipfs/QmYN3exd5AemxjBrN8XMB1p5LbbE16uC3sjbYjwi8AjcGR"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/types/Time.sol":{"keccak256":"0xc7755af115020049e4140f224f9ee88d7e1799ffb0646f37bf0df24bf6213f58","urls":["bzz-raw://7f09bf94d5274334ec021f61a04659db303f31e60460e14b709c9bf187740111","dweb:/ipfs/QmNvgomZYUwFAt4cZbPWAiTeSZQreGehY9BK5xyVJsUttb"],"license":"MIT"},"src/contracts/common/Entity.sol":{"keccak256":"0x3d61a932995b8443381f3950542d388223a2c26dd5d29a3274dea3baa7388bd7","urls":["bzz-raw://7cdf5f03ca72fd263fd32ff59c8d88ddca911ae83896a287d10772c1bbe9b138","dweb:/ipfs/QmbP84r5BWT1Rn9AYTntWSf3xUMTTCohTZJFhbBhDXFoHa"],"license":"BUSL-1.1"},"src/contracts/common/MigratableEntity.sol":{"keccak256":"0x2d736f4dacd5d7e7697503bc426c78b8250fe1694ca157965ec178da6807de58","urls":["bzz-raw://f1237acf96b4b9f9b69156e068eddd726a6e15bd8e87a18dc999cd4ba4da069c","dweb:/ipfs/QmS6M8fiFFSeuJ4ZKKq1z8W7w4ybeHQSy5TLASGoc1LVic"],"license":"BUSL-1.1"},"src/contracts/common/StaticDelegateCallable.sol":{"keccak256":"0x350029aa8955eacaffffaeb58babc5c98e80ebc5c5db388ed17ee6465f4a9d90","urls":["bzz-raw://eb392a8ee9050e0af606897df63e3404e3829e8b688b580663892f9664195764","dweb:/ipfs/QmaXC8jqV8UrrAFkzXTEv2fJF56sy33HhLxAzaRZmUxuXD"],"license":"BUSL-1.1"},"src/contracts/delegator/BaseDelegator.sol":{"keccak256":"0x7c54d491fdd4415b764a9c8defa068e56d4c0c8c9419be0053a1d377669290e8","urls":["bzz-raw://9238bfbad0f6eeb0dc7727724de14380f1980b395902269703d5e2ef07e52e10","dweb:/ipfs/QmPJn1V4HNXcEghYvogGuSTF24dSQUPosR5qtsXcmNqRm3"],"license":"BUSL-1.1"},"src/contracts/delegator/FullRestakeDelegator.sol":{"keccak256":"0x0a81c4f8e72914563a9cb771e93acf889c71ea36b7bec040e4eb562b199d5af1","urls":["bzz-raw://6fc66b6ba02da77046a0bbbd1dd407a62c08f52e04486c9cbd2cb1cca3da555f","dweb:/ipfs/QmZQivK1ZnMxfRQQ5aLpV9co5u55wQVNev5Rg1hzAqxhkE"],"license":"BUSL-1.1"},"src/contracts/delegator/NetworkRestakeDelegator.sol":{"keccak256":"0xd3a8e6522f9c6fdcc2da837c9023afd6bdff2bce45a35590320c475519e3636d","urls":["bzz-raw://58b17a87f6554f08376f9ea7fedf486a4aa75801bf0ad8b23ff5a46959b6b7a3","dweb:/ipfs/QmSTmNh67tYt8CmjVZb57r8N3qX5yeYdMApKPJm3qvQgQw"],"license":"BUSL-1.1"},"src/contracts/delegator/OperatorNetworkSpecificDelegator.sol":{"keccak256":"0x031a10722b9ec49048f0952710401131290adb87e71caf294e864e7ac3b98a16","urls":["bzz-raw://72428febc875134b2f29205e6f294634a1c22a7d5c78d6a9cb2f8196f107c9b5","dweb:/ipfs/QmTPwXR6h5oytckmkLrHdKeEMdphJxceDhYUR4zvQeWAwY"],"license":"BUSL-1.1"},"src/contracts/delegator/OperatorSpecificDelegator.sol":{"keccak256":"0x630ce62fa30b9f3349ab7a8cf8dbf041319febc6dd757be2f94d3d25944ed328","urls":["bzz-raw://c2ac59d47ce57d2a6819ae9833e1a618a371eccff93eb5ab367b201b01f42bfa","dweb:/ipfs/QmdBpGMBivpNPv2WbH8vnCUy5xkVeaxQvGgqi33vKCz1kA"],"license":"BUSL-1.1"},"src/contracts/hints/DelegatorHints.sol":{"keccak256":"0x44aa0c396311a54afbc7c73e8dadeed41e3165a4fd13f712b27d63d50fc3376d","urls":["bzz-raw://2f255214f3531fc707d88be0d56a7a0aed4180439316d099d760d9118aa83093","dweb:/ipfs/QmZD1w5p1ukJSXumUAjvxwGmkPhn7vsr21Y2atLGEZR2oi"],"license":"BUSL-1.1"},"src/contracts/hints/Hints.sol":{"keccak256":"0x8b565df1ae35993c097a9e642002782a8f451f6fd01809cad6bcd345bdf1b99c","urls":["bzz-raw://99a19adb01e350a92f534095b3078229df1f2f83077992d75d58d8684be45971","dweb:/ipfs/QmbmwcuswVbzvwHQFTtrJG86oV98GnfxqYTb8cV8u1acox"],"license":"BUSL-1.1"},"src/contracts/hints/OptInServiceHints.sol":{"keccak256":"0x95d9407900d27b9f4a1233b772aeed809c07b2dc5b31cfc9fa77ca26514c49e5","urls":["bzz-raw://a13a8877e312d7e6b8b85bde3668c5d84ff5ecc83f762cd573f2b7104c64eb42","dweb:/ipfs/QmYV2J55acuGzCNnS3juABuUHY5U1xc8g8o9jwEyFFdeG5"],"license":"BUSL-1.1"},"src/contracts/hints/VaultHints.sol":{"keccak256":"0xccb505b7159b769cc114d67b87c2de6b106557f667fc8f3780114baad5c3c442","urls":["bzz-raw://6d0c80a908fc16e96a8b5605a0bd53f9e89ad0ef0a738fbbae80ba4d3160749b","dweb:/ipfs/QmXo5UtWoR8YmunqcbBU8rQMm1nvmvjNPoXcVrDhh4pEwR"],"license":"BUSL-1.1"},"src/contracts/libraries/Checkpoints.sol":{"keccak256":"0xba90097c8bfe0a975499428b5f8ac5569483c7d92ccc28c12d70de416aae040c","urls":["bzz-raw://12f5d93ca94cd06d3147db68993165a58e17903ed53682560de61f3085ad4609","dweb:/ipfs/QmePiuAqvXprMLmFZkGZeGjvGPAvsEDHfCDv7BoQhXu9xE"],"license":"MIT"},"src/contracts/libraries/ERC4626Math.sol":{"keccak256":"0x8441160513c1cbeb1c3b9ee077bcc7e7ce20006b52a77c8dd39ff0ef89699939","urls":["bzz-raw://943f8cc3e26ddf649f465f40c909819f5c864717c4baa339e9e403b9374a4653","dweb:/ipfs/QmXPxi1sUDsrGprZdUgCzoPEosaZMv9ZhygWQ1vAi1phAB"],"license":"MIT"},"src/contracts/libraries/Subnetwork.sol":{"keccak256":"0xf5ef5506fd66082b3c2e7f3df37529f5a8efad32ac62e7c8914bd63219190bfe","urls":["bzz-raw://ba031a54ee0d0e9a270c2b9e18437f5668cfeb659cfd5fe0677459d7fcac2a56","dweb:/ipfs/QmReP3H7qQ78tAfgLnJKsNEQNCQfF1X1Get38Ffd4kzq32"],"license":"MIT"},"src/contracts/service/OptInService.sol":{"keccak256":"0x4e0932077f2686b7990e10d59deb2535334c0d09e52ef6e57c6ab09eca21c4b1","urls":["bzz-raw://7c00d311032ed4a1743aca7475f3c86ce15cdfc2218108efc3731c03d34a5278","dweb:/ipfs/QmUGGfVwVhaHr5kS4177yKKYiLYzi5qZpkEmvYxBZqazxf"],"license":"BUSL-1.1"},"src/contracts/vault/Vault.sol":{"keccak256":"0x2ceff6ed3298c4cad144c99fcc79b51cb9397d6ebef00285b915848b476f8c2e","urls":["bzz-raw://11f2fb3581854f3ab6e82e8d4935d9eb510c903a13c3f022346c2956a58f5307","dweb:/ipfs/QmdUnoXoyYoG9SGWyQZCFyLDRUUX3eXyXetkRvw6jxqqBz"],"license":"BUSL-1.1"},"src/contracts/vault/VaultStorage.sol":{"keccak256":"0x57db25b127d77ea3472de53e3a4af3354399655b9268638b99ca5925fa364a56","urls":["bzz-raw://aa763d9a6ec508ae3abfb8228b72b9fd9525279e5135d4962e79ff059feb1173","dweb:/ipfs/QmcbDR6E9wyEpu6V2FkEC4hnWy47zXA9LSKJde6zSGd33Q"],"license":"BUSL-1.1"},"src/interfaces/common/IEntity.sol":{"keccak256":"0x8ef4b63d6da63489778ccd5f8d13ebdd527dd4b62730b2c616df5af7474d2d21","urls":["bzz-raw://5a8d69576a9219d85c50816a18ad53a4d53cfcb27ed38b8cccc808dc2734b71b","dweb:/ipfs/QmYVN3P4Q4REvBWJ97TbAcaxm3uyB2anV6NSGa6ZtSwcEv"],"license":"MIT"},"src/interfaces/common/IMigratableEntity.sol":{"keccak256":"0x8f5f2809f3afbe8ebfbb365dd7b57b4dd3b6f9943a6187eaf648d45895b8e3c4","urls":["bzz-raw://0ffe640537d539e7a4fde70d30d3e4c57f4ba9c2c25c450cea713aae38e8fd5c","dweb:/ipfs/QmSUTGzvdcn1R1KB7tLThMRtESsfPbeXDhhhKWGtntzBds"],"license":"MIT"},"src/interfaces/common/IRegistry.sol":{"keccak256":"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb","urls":["bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014","dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK"],"license":"MIT"},"src/interfaces/common/IStaticDelegateCallable.sol":{"keccak256":"0xa335d4e81b9071b7de66ef92b43ff20671d86516eb1be46fef29a3483cd3f5d5","urls":["bzz-raw://d464b9db863c14c05547d2b23352f2e9b7b784799cf09f6bbc4906a2a74e3516","dweb:/ipfs/QmUVWzFvJz7eEbDQKiFTTzwi7TEbjcs3VmwdM4kuptAKvi"],"license":"MIT"},"src/interfaces/delegator/IBaseDelegator.sol":{"keccak256":"0x96bb312f032e17accce3f8f80936d99468029d6b37c9ca74acdb4b026a0148ee","urls":["bzz-raw://2a66dcb5b7d1a6ef6a363431ea98ebd78bc4fdd3d7a134d9b542dc66e7d025c2","dweb:/ipfs/QmRhTPLd2ZAyRHmJUFUcWKs9b3if49QY17LYZuRqWmghw8"],"license":"MIT"},"src/interfaces/delegator/IDelegatorHook.sol":{"keccak256":"0xc51aa8d7d1f6c8043ee819b7aeb86da0e993912e1442098df897e299f01f9f46","urls":["bzz-raw://adddf5cb2ba282aeb576b26efb28640f865a1721cc9b6eee8b3ee0457a2c9780","dweb:/ipfs/QmNYgAmnLRwWZbhTuQhZs9rx4zcme1df5mEepkrniorSoW"],"license":"MIT"},"src/interfaces/delegator/IFullRestakeDelegator.sol":{"keccak256":"0xa3c8cb2e45d4d8ce90e95263bea40c01dc400f05ad65bc29597d878606be5e7d","urls":["bzz-raw://782cf5e201aa4cca037ebafd3807a68ff1cc721d5b8416a35244db0d0607369e","dweb:/ipfs/QmQkJks6x7CKndeTPa9LxgTNygD5uEi7obhADhpq1Lsr9A"],"license":"MIT"},"src/interfaces/delegator/INetworkRestakeDelegator.sol":{"keccak256":"0xe7030fe30389a147fd710e3436ec346b4842695fd3e65a81b95375c9f1d633fc","urls":["bzz-raw://739c7e66d301778054f5c90bee45ec9438f68afba8a03eaaac52064c73b115ad","dweb:/ipfs/QmfZ2ytKcTykAc76nxhg8ikUXV8NdBpetqb8W4YWPcox1Z"],"license":"MIT"},"src/interfaces/delegator/IOperatorNetworkSpecificDelegator.sol":{"keccak256":"0x74b95e64d29769202d45dd277bb830f623ff3d41ce77b80ce3ee4e318a5c71ec","urls":["bzz-raw://e512b903aae5c1b8a028c6e3f4f6223b5cb5d704503cfa6bd37b5346868f5c20","dweb:/ipfs/QmZim9YExsPWtyxyeui993HTKAEmrg8MUcSkZ77Gp2JcuZ"],"license":"MIT"},"src/interfaces/delegator/IOperatorSpecificDelegator.sol":{"keccak256":"0x72075cab585dc17240cc3e32bc99b92f0d5627ddd988fed680e3e1a52d5a01e4","urls":["bzz-raw://7448bc90699409ae61d85216b5efc2143a37f0f73354be2aea993bc54afca441","dweb:/ipfs/QmXE4gAxM8pHosZK8mcTcj17puBx484meDCcmrDePskGHZ"],"license":"MIT"},"src/interfaces/service/IOptInService.sol":{"keccak256":"0x76fb5460a6d87a5705433d4fbeff7253cd75b8bbd0c888b2088f16e86ace146a","urls":["bzz-raw://990322019b3d11465f7024bae77ccbf7e2fe5d6fa3c754584778f37d04fa1337","dweb:/ipfs/QmaSNHzcqxTkUCG9a4nqVfLECHLdjdrwAnDi3yDC7tDL24"],"license":"MIT"},"src/interfaces/slasher/IBaseSlasher.sol":{"keccak256":"0x7c82528b445659c313ab77335c407b0b6efe5e79027187bb287f7bc74202b404","urls":["bzz-raw://0274c90aa5df1aa6bb470a6aab53992fb14fd7e5472c9430416505b29647d9cf","dweb:/ipfs/QmckbmJLDetPemVzCnnGcKYWAZV2BRFXGDsjiaec8jkHxx"],"license":"MIT"},"src/interfaces/vault/IVault.sol":{"keccak256":"0xffee01d383cd4e1a5530c614bf4360c1ef070c288abec9da1eb531b51bc07235","urls":["bzz-raw://04f0046cac285d8ec44ebbb1f79dc94fab4495767190cad8364fbc1fafaadfb9","dweb:/ipfs/QmUawAunwzXfCyShWfhKeThAgKtqe51hmrxvrXvM772M2R"],"license":"MIT"},"src/interfaces/vault/IVaultStorage.sol":{"keccak256":"0x592626f13754194f83047135de19229c49390bd59e34659b1bb38be71d973a22","urls":["bzz-raw://06a6a9dfddd05e580b32bebe2cff4f63ba26a653180676d58225dd30d9c89d3e","dweb:/ipfs/QmdgzBeY6Sxo8mGtyBxtv1tM1c2kU6J6zjeRd7vuXm4DU6"],"license":"MIT"}},"version":1},"id":81} \ No newline at end of file diff --git a/out/DelegatorHints.sol/NetworkRestakeDelegatorHints.json b/out/DelegatorHints.sol/NetworkRestakeDelegatorHints.json index 67f959e7..b826bb26 100644 --- a/out/DelegatorHints.sol/NetworkRestakeDelegatorHints.json +++ b/out/DelegatorHints.sol/NetworkRestakeDelegatorHints.json @@ -1 +1 @@ -{"abi":[{"type":"constructor","inputs":[{"name":"baseDelegatorHints","type":"address","internalType":"address"},{"name":"vaultHints","type":"address","internalType":"address"},{"name":"optInServiceHints","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"BASE_DELEGATOR_HINTS","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"DEFAULT_ADMIN_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"FACTORY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"HOOK_GAS_LIMIT","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"HOOK_RESERVE","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"HOOK_SET_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"NETWORK_LIMIT_SET_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"NETWORK_REGISTRY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"OPERATOR_NETWORK_OPT_IN_SERVICE","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"OPERATOR_NETWORK_SHARES_SET_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"OPERATOR_VAULT_OPT_IN_SERVICE","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"OPT_IN_SERVICE_HINTS","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"TYPE","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"VAULT_FACTORY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"VAULT_HINTS","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"VERSION","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"pure"},{"type":"function","name":"getRoleAdmin","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"grantRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"hasRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"hook","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"initialize","inputs":[{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"maxNetworkLimit","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"value","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"networkLimit","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"networkLimitAt","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"timestamp","type":"uint48","internalType":"uint48"},{"name":"hint","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"networkLimitHint","inputs":[{"name":"delegator","type":"address","internalType":"address"},{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"timestamp","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"networkLimitHintInternal","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"timestamp","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"exists","type":"bool","internalType":"bool"},{"name":"hint","type":"uint32","internalType":"uint32"}],"stateMutability":"view"},{"type":"function","name":"onSlash","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"captureTimestamp","type":"uint48","internalType":"uint48"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"operatorNetworkShares","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"operatorNetworkSharesAt","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"timestamp","type":"uint48","internalType":"uint48"},{"name":"hint","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"operatorNetworkSharesHint","inputs":[{"name":"delegator","type":"address","internalType":"address"},{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"timestamp","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"operatorNetworkSharesHintInternal","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"timestamp","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"exists","type":"bool","internalType":"bool"},{"name":"hint","type":"uint32","internalType":"uint32"}],"stateMutability":"view"},{"type":"function","name":"renounceRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"callerConfirmation","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"revokeRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setHook","inputs":[{"name":"hook_","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setMaxNetworkLimit","inputs":[{"name":"identifier","type":"uint96","internalType":"uint96"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setNetworkLimit","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setOperatorNetworkShares","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"shares","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"stake","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"stakeAt","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"timestamp","type":"uint48","internalType":"uint48"},{"name":"hints","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"stakeHints","inputs":[{"name":"delegator","type":"address","internalType":"address"},{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"timestamp","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"staticDelegateCall","inputs":[{"name":"target","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"totalOperatorNetworkShares","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"totalOperatorNetworkSharesAt","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"timestamp","type":"uint48","internalType":"uint48"},{"name":"hint","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"totalOperatorNetworkSharesHint","inputs":[{"name":"delegator","type":"address","internalType":"address"},{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"timestamp","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"totalOperatorNetworkSharesHintInternal","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"timestamp","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"exists","type":"bool","internalType":"bool"},{"name":"hint","type":"uint32","internalType":"uint32"}],"stateMutability":"view"},{"type":"function","name":"vault","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"OnSlash","inputs":[{"name":"subnetwork","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"captureTimestamp","type":"uint48","indexed":false,"internalType":"uint48"}],"anonymous":false},{"type":"event","name":"RoleAdminChanged","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"previousAdminRole","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"newAdminRole","type":"bytes32","indexed":true,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"RoleGranted","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"sender","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"RoleRevoked","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"sender","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"SetHook","inputs":[{"name":"hook","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"SetMaxNetworkLimit","inputs":[{"name":"subnetwork","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"SetNetworkLimit","inputs":[{"name":"subnetwork","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"SetOperatorNetworkShares","inputs":[{"name":"subnetwork","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"shares","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"error","name":"AccessControlBadConfirmation","inputs":[]},{"type":"error","name":"AccessControlUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"neededRole","type":"bytes32","internalType":"bytes32"}]},{"type":"error","name":"AlreadySet","inputs":[]},{"type":"error","name":"CheckpointUnorderedInsertion","inputs":[]},{"type":"error","name":"DuplicateRoleHolder","inputs":[]},{"type":"error","name":"ExceedsMaxNetworkLimit","inputs":[]},{"type":"error","name":"ExternalCall","inputs":[]},{"type":"error","name":"InsufficientHookGas","inputs":[]},{"type":"error","name":"InvalidInitialization","inputs":[]},{"type":"error","name":"MathOverflowedMulDiv","inputs":[]},{"type":"error","name":"MissingRoleHolders","inputs":[]},{"type":"error","name":"NotInitialized","inputs":[]},{"type":"error","name":"NotInitializing","inputs":[]},{"type":"error","name":"NotNetwork","inputs":[]},{"type":"error","name":"NotSlasher","inputs":[]},{"type":"error","name":"NotVault","inputs":[]},{"type":"error","name":"ReentrancyGuardReentrantCall","inputs":[]},{"type":"error","name":"SafeCastOverflowedUintDowncast","inputs":[{"name":"bits","type":"uint8","internalType":"uint8"},{"name":"value","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ZeroAddressRoleHolder","inputs":[]}],"bytecode":{"object":"0x6101c0346101cf57601f61387d38819003918201601f19168301916001600160401b0391828411858510176101d35781606092869260409687528339810103126101cf5761004c836101e7565b926100648361005d602084016101e7565b92016101e7565b91306080527ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a009081549060ff82871c166101be57808083160361017a575b5050505f60a0525f60c0525f60e052610100935f8552610120935f8552610140905f82526101609283526101809384526101a0948552519461368196876101fc88396080518781816105a001528181610fd70152611629015260a051876109e9015260c051876112ac015260e05187818161084b01526112e5015251868181610512015261298501525185818161055601528181611e330152611f3b0152518481816107c901528181611d9a0152611fb9015251838181610e95015261194d015251828181610d9701526119ee015251816110490152f35b6001600160401b0319909116811790915583519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a15f80806100a2565b855163f92ee8a960e01b8152600490fd5b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b51906001600160a01b03821682036101cf5756fe60806040526004361015610011575f80fd5b5f3560e01c806301ffc9a71461030457806302145348146102ff57806307f9d5fd146102fa578063103f2907146102f5578063128e5d82146102f0578063197aa7ea146102eb5780631a7a7044146102e65780631a80e500146102e157806323f752d5146102dc578063248a9ca3146102d757806325dc9708146102d25780632dd31000146102cd5780632f2ff15d146102c857806336568abe146102c35780633dfd3873146102be5780633eb22c0f146102b957806342c53e33146102b4578063439fab91146102af57806345e78fcb146102aa578063557cab44146102a55780635d32a1c9146102a05780636679191e1461029b57806379d89614146102965780637d24bb27146102915780637f5a7c7b1461028c5780638b3f10b01461028757806391d1485414610282578063987b3ee81461027d5780639b656b22146102785780639f86fd8514610273578063a217fddf1461026e578063a33bc28714610269578063b549ef1f14610264578063bb24fe8a1461025f578063c0cd7c3e1461025a578063c43dc03f14610255578063d15b740e14610250578063d547741f1461024b578063da749d2b14610246578063e02f693714610241578063e49561ee1461023c578063e78eb6ae14610237578063ed4d89e514610232578063fbfa77cf1461022d578063fd4d447c14610228578063ff54740f146102235763ffa1ad741461021e575f80fd5b6116dc565b6116bf565b611695565b61166e565b61160e565b6115d4565b6113e9565b6113cd565b6113b3565b611367565b61133d565b611314565b6112d0565b61128d565b611273565b611126565b61110c565b611078565b611034565b610fa6565b610f48565b610f25565b610efd565b610ec4565b610e80565b610e46565b610e23565b610dc6565b610d82565b610c4a565b610bd1565b610ba8565b610aaf565b610a64565b610a18565b6109d4565b6109b7565b61097e565b6107f8565b6107b4565b61076e565b610585565b610541565b6104fd565b6104c8565b61035e565b3461035a57602036600319011261035a5760043563ffffffff60e01b811680910361035a57602090637965db0b60e01b8114908115610349575b506040519015158152f35b6301ffc9a760e01b1490505f61033e565b5f80fd5b3461035a5760408060031936011261035a57600435906024359061038061202e565b825f526002602052805f2054821161041a57825f526003602052816103a6825f206128d7565b1461040a5781610405916103f57e899d104fc3d8820bd96540612bcc5c448c8837b13b9f7faa43ad0728f0c14f946103e6875f52600360205260405f2090565b6103ef42612d7a565b90612176565b5050519081529081906020820190565b0390a2005b5163a741a04560e01b8152600490fd5b51631eefc06360e31b8152600490fd5b6001600160a01b0381160361035a57565b6024359065ffffffffffff8216820361035a57565b6064359065ffffffffffff8216820361035a57565b608090600319011261035a5760043561047d8161042a565b906024359060443561048e8161042a565b9060643565ffffffffffff8116810361035a5790565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b3461035a576104f96104e56104dc36610465565b92919091611736565b6040519182916020835260208301906104a4565b0390f35b3461035a575f36600319011261035a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461035a575f36600319011261035a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461035a57604036600319011261035a5761059e61043b565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163303610602576105e5906004355f52600360205260405f206122f5565b60408051941515855263ffffffff91909116602085015292915050f35b604051637ca475e560e11b8152600490fd5b634e487b7160e01b5f52604160045260245ffd5b604081019081106001600160401b0382111761064357604052565b610614565b606081019081106001600160401b0382111761064357604052565b60a081019081106001600160401b0382111761064357604052565b90601f801991011681019081106001600160401b0382111761064357604052565b604051906106ac82610663565b565b604051906106ac82610628565b6001600160401b03811161064357601f01601f191660200190565b81601f8201121561035a578035906106ed826106bb565b926106fb604051948561067e565b8284526020838301011161035a57815f926020809301838601378301015290565b90608060031983011261035a57600435916024356107398161042a565b9160443565ffffffffffff8116810361035a5791606435906001600160401b03821161035a5761076b916004016106d6565b90565b3461035a5760206107ac6107a76107843661071c565b939190925f526005865260405f209060018060a01b03165f5260205260405f2090565b61242d565b604051908152f35b3461035a575f36600319011261035a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461035a57604036600319011261035a576004356001600160601b038116810361035a5760243590610828612505565b6040516302910f8b60e31b81523360048201526020816024816001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165afa908115610979575f9161094a575b5015610938576001600160601b03166bffffffffffffffffffffffff193360601b161790806108b2835f52600260205260405f2090565b54146109265761090b817fc67e7929681aa1bccd63f52b3799bf5805f3009f197db6fdf584b14f7fbf608c926108f0855f52600260205260405f2090565b556108fb8185612534565b6040519081529081906020820190565b0390a261092460015f8051602061360c83398151915255565b005b60405163a741a04560e01b8152600490fd5b6040516323d53b9760e21b8152600490fd5b61096c915060203d602011610972575b610964818361067e565b8101906117e8565b5f61087b565b503d61095a565b6117fc565b3461035a57602036600319011261035a576004355f525f805160206135ec8339815191526020526020600160405f200154604051908152f35b3461035a576104f96104e56109cb36610465565b92919091611904565b3461035a575f36600319011261035a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461035a57604036600319011261035a57610924602435600435610a3b8261042a565b805f525f805160206135ec833981519152602052610a5f600160405f2001546120e1565b61280f565b3461035a57604036600319011261035a57602435610a818161042a565b336001600160a01b03821603610a9d5761092490600435612845565b60405163334bd91960e11b8152600490fd5b3461035a57602036600319011261035a57600435610acc8161042a565b610ad4612505565b335f9081527f9ebbcbe0d2961d3fbe56ca6f679bc753bd848d3e6bb3eaf9041c51b286881d2c60205260409020547fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c9060ff1615610b8a57506001546001600160a01b039182169181168214610926576001600160a01b03191681176001557f5bbb1d3ebb6a3ad2a0f17ff35e579a83af60604d1d3c2a4c83c62adecadf666d5f80a260015f8051602061360c83398151915255005b6044906040519063e2517d3f60e01b82523360048301526024820152fd5b3461035a57602036600319011261035a576004355f52600360205260206107ac60405f206128d7565b3461035a57604036600319011261035a5760206107ac610c18602435610bf68161042a565b6004355f526005845260405f209060018060a01b03165f5260205260405f2090565b6128d7565b9181601f8401121561035a578235916001600160401b03831161035a576020838186019501011161035a57565b3461035a57602036600319011261035a576001600160401b0360043581811161035a57610c7b903690600401610c1d565b5f8051602061362c833981519152549260ff8460401c1615931680159081610d7a575b6001149081610d70575b159081610d67575b50610d55575f8051602061362c833981519152805467ffffffffffffffff19166001179055610ce39183610d3157612950565b610ce957005b5f8051602061362c833981519152805460ff60401b19169055604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a1005b5f8051602061362c833981519152805460ff60401b1916600160401b179055612950565b60405163f92ee8a960e01b8152600490fd5b9050155f610cb0565b303b159150610ca8565b849150610c9e565b3461035a575f36600319011261035a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461035a575f36600319011261035a576020604051614e208152f35b606060031982011261035a576004359160243565ffffffffffff8116810361035a5791604435906001600160401b03821161035a5761076b916004016106d6565b3461035a5760206107ac610e3636610de2565b915f526003845260405f2061242d565b3461035a575f36600319011261035a5760206040517fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c8152f35b3461035a575f36600319011261035a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461035a575f36600319011261035a5760206040517e8b9b1e5fa9cf3b14f87f435649268146305ddf689f082e5961a335b07a9abf8152f35b3461035a575f36600319011261035a576001546040516001600160a01b039091168152602090f35b3461035a5760206107ac610f3836610de2565b915f526004845260405f2061242d565b3461035a57604036600319011261035a57602060ff610f9a602435610f6c8161042a565b6004355f525f805160206135ec833981519152845260405f209060018060a01b03165f5260205260405f2090565b54166040519015158152f35b3461035a57606036600319011261035a57602435610fc38161042a565b60443565ffffffffffff8116810361035a577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633036106025761102f6105e5926004355f52600560205260405f209060018060a01b03165f5260205260405f2090565b6122f5565b3461035a575f36600319011261035a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461035a57604036600319011261035a576004356110958161042a565b6024356001600160401b03811161035a575f916110b783923690600401610c1d565b90816040519283928337810184815203915af46111046110d5611b60565b916110f66040519384921515602084015260408084015260608301906104a4565b03601f19810183528261067e565b805190602001fd5b3461035a575f36600319011261035a5760206040515f8152f35b3461035a57606036600319011261035a576024356004356111468261042a565b6044359161115261208a565b5f8281526005602090815260408083206001600160a01b0385168452909152902061117c906128d7565b838114610926577f739a5a3ec0ff71e2386d0013deac5f44e0935a98def2e2a5ddf9a709518c8294916111ef61123c92855f52600460205260405f20906111e9886111e46111c942612d7a565b936111df610c188c5f52600460205260405f2090565b611bb6565b611bd1565b91612176565b5050611220856103e68361120b885f52600560205260405f2090565b9060018060a01b03165f5260205260405f2090565b50506040519485526001600160a01b0316939081906020820190565b0390a3005b606090600319011261035a576004356112598161042a565b906024359060443565ffffffffffff8116810361035a5790565b3461035a576104f96104e561128736611241565b91611bde565b3461035a575f36600319011261035a5760206040516001600160401b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461035a575f36600319011261035a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461035a57602036600319011261035a576004355f52600460205260206107ac60405f206128d7565b3461035a57602036600319011261035a576004355f526002602052602060405f2054604051908152f35b3461035a57604036600319011261035a5761092460243560043561138a8261042a565b805f525f805160206135ec8339815191526020526113ae600160405f2001546120e1565b612845565b3461035a576104f96104e56113c736611241565b91611c28565b3461035a5760206107ac6113e03661071c565b92919091611d24565b3461035a5760a036600319011261035a576024356004356114098261042a565b60443591611415610450565b90608435906001600160401b03821161035a57611437600492369084016106d6565b61143f612505565b5f5460209061146490611458906001600160a01b031681565b6001600160a01b031690565b60405163b134427160e01b815294859182905afa928315610979575f936115a3575b506001600160a01b039283163303611591576001546001600160a01b0316838116611506575b50506040805195865265ffffffffffff909316602086015216927f741a5de99085c0d660f3e4192217b0ffb0ea4e35a0480de48e857a4bc3ee36ed91819081015b0390a361092460015f8051602061360c83398151915255565b90936040519461153d8661152f602082019363724ab0f760e11b8552858c898d60248701611eae565b03601f19810188528761067e565b62042e305a1061157f575f6114ed938192827f741a5de99085c0d660f3e4192217b0ffb0ea4e35a0480de48e857a4bc3ee36ed9951926203d090f150936114ac565b604051638072475160e01b8152600490fd5b60405163dabc4ad960e01b8152600490fd5b6115c691935060203d6020116115cd575b6115be818361067e565b810190611872565b915f611486565b503d6115b4565b3461035a575f36600319011261035a5760206040517f1312a1cf530e56add9be4fd84db9051dcc7635952f09f735f9a29405b55846258152f35b3461035a57604036600319011261035a5761162761043b565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163303610602576105e5906004355f52600460205260405f206122f5565b3461035a575f36600319011261035a575f546040516001600160a01b039091168152602090f35b3461035a57604036600319011261035a5760206107ac6024356116b78161042a565b600435611f04565b3461035a575f36600319011261035a5760206040516203d0908152f35b3461035a575f36600319011261035a57602060405160018152f35b5190811515820361035a57565b519063ffffffff8216820361035a57565b919082604091031261035a5761076b602061172f846116f7565b9301611704565b906117869165ffffffffffff6117959496956060976040519463130f67dd60e31b6020870152602486015260018060a01b031660448501521660648301526064825261178182610663565b612238565b60208082518301019101611715565b9061179d5750565b90915063ffffffff604051911660208201526020815261076b81610628565b5f9081526005602090815260408083206001600160a01b0390941683529290522061076b92919061242d565b9081602091031261035a5761076b906116f7565b6040513d5f823e3d90fd5b81601f8201121561035a5780519061181e826106bb565b9261182c604051948561067e565b8284526020838301011161035a57815f9260208093018386015e8301015290565b9060208282031261035a5781516001600160401b03811161035a5761076b9201611807565b9081602091031261035a575161076b8161042a565b9061076b91602081526118a6825160a0602084015260c08301906104a4565b9060a060806118f46118e16118cd602088015196601f1997888883030160408901526104a4565b6040880151878783030160608801526104a4565b60608701518686830301848701526104a4565b94015192828503019101526104a4565b604051630df8851f60e11b81526001600160a01b03828116600483015260248201849052848116604483015265ffffffffffff8616606483015295606095909491935f856084817f00000000000000000000000000000000000000000000000000000000000000008c165afa948515610979575f95611b18575b5060405163fbfa77cf60e01b8152602081600481888d165afa908115610979576119ea995f9285928491611af9575b5060405163192c0ff760e21b81526001600160a01b03909116600482015265ffffffffffff909216602483015290998a9190829081906044820190565b03917f0000000000000000000000000000000000000000000000000000000000000000165afa978815610979575f98611acf575b509081611a3b82611a3381611a419689611c28565b958388611736565b94611bde565b90835115801590611ac5575b8015611abb575b8015611ab1575b8015611aa7575b611a6f5750505050909150565b6110f6955061076b9496611a8161069f565b948552602085015260408401526060830152608082015260405192839160208301611887565b5081511515611a62565b5082511515611a5b565b5080511515611a54565b5086511515611a4d565b611a4192919850611af1903d805f833e611ae9818361067e565b81019061184d565b979091611a1e565b611b12915060203d6020116115cd576115be818361067e565b5f6119ad565b611b2d9195503d805f833e611ae9818361067e565b935f61197e565b9061076b92915f52600360205260405f2061242d565b9061076b92915f52600460205260405f2061242d565b3d15611b8a573d90611b71826106bb565b91611b7f604051938461067e565b82523d5f602084013e565b606090565b634e487b7160e01b5f52601160045260245ffd5b5f19810191908211611bb157565b611b8f565b91908203918211611bb157565b9060018201809211611bb157565b91908201809211611bb157565b60405163ed4d89e560e01b6020820152602481019290925265ffffffffffff909216604482015260609291611795916117869161178182606481015b03601f19810184528361067e565b604051630cbd53f560e11b6020820152602481019290925265ffffffffffff90921660448201526060929161179591611786916117818260648101611c1a565b60405190611c7582610628565b60606020838281520152565b9060208282031261035a5781516001600160401b039283821161035a57019060408282031261035a5760405192611cb784610628565b825181811161035a5782611ccc918501611807565b8452602083015190811161035a57611ce49201611807565b602082015290565b6001600160a01b0391821681529116602082015265ffffffffffff909116604082015260806060820181905261076b929101906104a4565b92611d3490929192828486612bb5565b929093611d3f611c68565b93805180611e92575b50508415938415611dfc575b8415611d6b575b50505050611d665790565b505f90565b602080949550611d96910151604051958694859463530e1d4360e01b865260601c9060048601611cec565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa908115610979575f91611ddd575b50155f808080611d5b565b611df6915060203d60201161097257610964818361067e565b5f611dd2565b5f549094506001600160a01b0316602084865192611e2f604051948593849363530e1d4360e01b85528960048601611cec565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa908115610979575f91611e73575b501593611d54565b611e8c915060203d60201161097257610964818361067e565b5f611e6b565b611ea6929550602080918301019101611c81565b925f80611d48565b919360a09361076b969565ffffffffffff938552600180871b03166020850152604084015216606082015281608082015201906104a4565b8115611ef0570490565b634e487b7160e01b5f52601260045260245ffd5b5f546040516308834cb560e21b8082526001600160a01b0385811660048401529283166024830152929392602092909183816044817f000000000000000000000000000000000000000000000000000000000000000086165afa908115610979575f91612011575b5015918215611f8d575b50509050611f875761076b91612cc5565b50505f90565b6040519081526001600160a01b0385166004820152606086901c602482015291508290829060449082907f0000000000000000000000000000000000000000000000000000000000000000165afa918215610979575f92611ff4575b505015805f80611f76565b61200a9250803d1061097257610964818361067e565b5f80611fe9565b6120289150843d861161097257610964818361067e565b5f611f6c565b335f9081527f72a65082a5691803ab2b62c9bc729b34205ba1b183d950896526b2fd8714d0c7602052604090207e8b9b1e5fa9cf3b14f87f435649268146305ddf689f082e5961a335b07a9abf9060ff905b541615610b8a5750565b335f9081527f8f2dae99798887da307a4daa2c2d11f840b0cb9a6a67822660c531e9ad14dd00602052604090207f1312a1cf530e56add9be4fd84db9051dcc7635952f09f735f9a29405b55846259060ff90612080565b5f8181525f805160206135ec83398151915260209081526040808320338452909152902060ff90612080565b634e487b7160e01b5f52603260045260245ffd5b8054821015612136575f5260205f2001905f90565b61210d565b90815491600160401b831015610643578261215e9160016106ac95018155612121565b90919082549060031b91821b915f19901b1916179055565b90929192600182019081548015612208575b508461219384612dac565b509490928454936121a3836128d7565b96816121f3575b50156121d0575050505f198101908111611bb15761215e85916121cc93612121565b9190565b6121cc9492936121ec926001600160d01b0390911691906134a7565b505061213b565b65ffffffffffff83811691161490505f6121aa565b600160401b811015610643578060016122249201845583612121565b8154905f199060031b1b191690555f612188565b5f9190829160405161226d816110f66020820194639f86fd8560e01b86523060248401526040604484015260648301906104a4565b51915afa5061227a611b60565b8051810160408282031261035a57612294602083016116f7565b916040810151916001600160401b03831161035a576122ba926020809201920101611807565b90156122c35790565b805190811561035a57602001fd5b906040516122de81610628565b915465ffffffffffff8116835260301c6020830152565b91908254905f82916005841161239d575b612311935085612f2e565b9081156123915761238a61238161237b61237161234361233e61233388611ba3565b895f5260205f200190565b6122d1565b96600161236a602061235b8b5165ffffffffffff1690565b9a01516001600160d01b031690565b9101612121565b90549060031b1c90565b93611ba3565b63ffffffff1690565b6001939291565b5f925082915081908190565b91926123a881612dfb565b8103908111611bb15761231193865f526123dc6123d18360205f200165ffffffffffff90541690565b65ffffffffffff1690565b65ffffffffffff851610156123f2575091612306565b9291506123fe90611bc3565b90612306565b9081602091031261035a5761076b90611704565b90600163ffffffff80931601918211611bb157565b918051156124fb578060208061244893518301019101612404565b916124538382613060565b92612464845165ffffffffffff1690565b9065ffffffffffff80851692168281146124ef578211918261249a575b50506124915761076b9250612f90565b50506020015190565b9091506124a78354611ba3565b63ffffffff8316149182156124c0575b50505f80612481565b6124e79192506124db6124d56123d192612418565b85613060565b5165ffffffffffff1690565b115f806124b7565b50505050506020015190565b5061076b91612f90565b5f8051602061360c83398151915260028154146125225760029055565b604051633ee5aeb560e01b8152600490fd5b90815f52600360205260405f208161254b82612dac565b9193905083156125a95761256b916001600160d01b031690600101612121565b90549060031b1c5b8261259f575b5050612583575050565b61259b915f52600360205260405f206103ef42612d7a565b5050565b119050815f612579565b50505f612573565b6001600160a01b0381165f9081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d60205260409020545f805160206135ec8339815191529060ff16611f87575f808052602091825260408082206001600160a01b038516835290925220805460ff1916600117905533906001600160a01b03165f7f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d8180a4600190565b6001600160a01b0381165f9081527f9ebbcbe0d2961d3fbe56ca6f679bc753bd848d3e6bb3eaf9041c51b286881d2c602052604090207fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c905f805160206135ec8339815191529060ff905b541661272b575f828152602091825260408082206001600160a01b038616835290925220805460ff1916600117905533916001600160a01b0316907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d5f80a4600190565b5050505f90565b6001600160a01b0381165f9081527f72a65082a5691803ab2b62c9bc729b34205ba1b183d950896526b2fd8714d0c7602052604090207e8b9b1e5fa9cf3b14f87f435649268146305ddf689f082e5961a335b07a9abf905f805160206135ec8339815191529060ff906126c7565b6001600160a01b0381165f9081527f8f2dae99798887da307a4daa2c2d11f840b0cb9a6a67822660c531e9ad14dd00602052604090207f1312a1cf530e56add9be4fd84db9051dcc7635952f09f735f9a29405b5584625905f805160206135ec8339815191529060ff906126c7565b5f8181525f805160206135ec833981519152602081815260408084206001600160a01b038716855290915290912060ff906126c7565b5f8181525f805160206135ec833981519152602081815260408084206001600160a01b03871685529091529091205460ff161561272b575f828152602091825260408082206001600160a01b038616835290925220805460ff1916905533916001600160a01b0316907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b5f80a4600190565b8054806128fc57505f5b6001600160d01b03811615611f875760016123719201612121565b5f19908082810111611bb157825f5260205f2001015460301c6128e1565b91909160408184031261035a5780356129328161042a565b9260208201356001600160401b03811161035a5761076b92016106d6565b61295c9181019061291a565b6040516302910f8b60e31b81526001600160a01b039283166004820181905291906020816024817f000000000000000000000000000000000000000000000000000000000000000088165afa908115610979575f91612a6f575b5015612a5d576129f16040916129ec612a37946129d16130c8565b60018060a01b03166001600160601b0360a01b5f5416175f55565b613248565b6020810151600180546001600160a01b0319166001600160a01b0390921691909117905580516001600160a01b0316848116612a4d575b5001516001600160a01b031690565b908116612a415750565b612a4a9061265c565b50565b612a56906125b1565b505f612a28565b6040516362df054560e01b8152600490fd5b612a88915060203d60201161097257610964818361067e565b5f6129b6565b6040519060a082018281106001600160401b038211176106435760405281608060609182815282602082015282604082015282808201520152565b9060208282031261035a5781516001600160401b039283821161035a57019060a08282031261035a57612afa61069f565b92825181811161035a5782612b10918501611807565b8452602083015181811161035a5782612b2a918501611807565b6020850152604083015181811161035a5782612b47918501611807565b6040850152606083015181811161035a5782612b64918501611807565b6060850152608083015190811161035a57612b7f9201611807565b608082015290565b9081602091031261035a575190565b60409065ffffffffffff61076b949316815281602082015201906104a4565b91939293612bc1612a8e565b94805180612ca9575b5050612bdb60608601518285611b4a565b9182612bed57505050509051905f9190565b612c01612c3b9183608089015191876117bc565b916020612c1a6114586114585f5460018060a01b031690565b8189015190604051808096819463810da75d60e01b83528760048401612b96565b03915afa801561097957612c7195612c6b935f92612c76575b50612c65919260408a015191611b34565b906133a8565b906133ba565b915190565b612c659250612c9c9060203d602011612ca2575b612c94818361067e565b810190612b87565b91612c54565b503d612c8a565b612cbd929650602080918301019101612ac9565b935f80612bca565b90612cdb610c18835f52600460205260405f2090565b9081612ce8575050505f90565b610c18612d019161120b855f52600560205260405f2090565b5f5460405163bd49c35f60e01b815290602090829060049082906001600160a01b03165afa80156109795761076b94612c6b925f92612d51575b50610c18612c65915f52600360205260405f2090565b612c65919250612d72610c189160203d602011612ca257612c94818361067e565b929150612d3b565b65ffffffffffff90818111612d8d571690565b604490604051906306dfcc6560e41b8252603060048301526024820152fd5b805480612dbd5750505f905f905f90565b5f19908082810111611bb157612dda925f5260205f2001016122d1565b9065ffffffffffff82511691602060018060d01b0391015116906001929190565b8015611d665780612c65612ec6612ebc612eb2612ea8612e9e612e94612e8a600161076b9a5f908b60801c80612f22575b508060401c80612f15575b508060201c80612f08575b508060101c80612efb575b508060081c80612eee575b508060041c80612ee1575b508060021c80612ed4575b50821c612ecd575b811c1b612e83818b611ee6565b0160011c90565b612e83818a611ee6565b612e838189611ee6565b612e838188611ee6565b612e838187611ee6565b612e838186611ee6565b612e838185611ee6565b8092611ee6565b8101612e76565b600291509101905f612e6e565b600491509101905f612e63565b600891509101905f612e58565b601091509101905f612e4d565b602091509101905f612e42565b604091509101905f612e37565b9150506080905f612e2c565b91905b838210612f3e5750505090565b909192808316906001818518811c8301809311611bb157855f5265ffffffffffff808460205f20015416908516105f14612f7d575050925b9190612f31565b909493508101809111611bb15791612f76565b908154905f829160058411612ffa575b612fab935084612f2e565b80612fd357505f905b6001600160d01b03821615611f875761076b9160016123719201612121565b612fed612fe2612ff492611ba3565b835f5260205f200190565b5460301c90565b90612fb4565b919261300581612dfb565b8103908111611bb157612fab93855f5265ffffffffffff808360205f20015416908516105f14613036575091612fa0565b92915061304290611bc3565b90612fa0565b6040519061305582610628565b5f6020838281520152565b906130896130836130aa92613073613048565b5061307c613048565b5084612121565b506122d1565b91600165ffffffffffff845116936020828060d01b03910151169101612121565b905490604051926130ba84610628565b835260031b1c602082015290565b6130d06135bd565b6130d86135bd565b60015f8051602061360c83398151915255565b604051906130f882610648565b5f6040838281528260208201520152565b81601f8201121561035a578051916020916001600160401b038411610643578360051b906040519461313d8584018761067e565b8552838086019282010192831161035a578301905b828210613160575050505090565b838091835161316e8161042a565b815201910190613152565b9060208282031261035a5781516001600160401b039283821161035a5701908181039260a0841261035a576060604051946131b386610648565b1261035a576040516131c481610648565b83516131cf8161042a565b815260208401516131df8161042a565b602082015260408401516131f28161042a565b60408201528452606083015181811161035a5782613211918501613109565b6020850152608083015190811161035a5761322c9201613109565b604082015290565b80518210156121365760209160051b010190565b613264906132546130eb565b5060208082518301019101613179565b8051519091906001600160a01b0316158061338e575b61337c579060208101905f5b82518051821015613300576114586132a1836132ae93613234565b516001600160a01b031690565b156132ee576132d06132cc6132c76132a1848751613234565b612732565b1590565b6132dc57600101613286565b604051635140fefd60e11b8152600490fd5b6040516323cda06760e01b8152600490fd5b506040925050818101905f5b82518051821015613373576114586132a18361332793613234565b15613362576133456132cc6133406132a1848751613234565b6127a0565b6133515760010161330c565b8351635140fefd60e11b8152600490fd5b83516323cda06760e01b8152600490fd5b50509150505190565b6040516303501f5960e11b8152600490fd5b50602082015151158061327a57506040820151511561327a565b90808210156133b5575090565b905090565b9091828202915f198482099383808610950394808603951461343f578483111561342d57829109815f038216809204600280826003021880830282030280830282030280830282030280830282030280830282030280920290030293600183805f03040190848311900302920304170290565b60405163227bc15360e01b8152600490fd5b50509061076b9250611ee6565b8054600160401b8110156106435761346991600182018155612121565b61349457815160209092015160301b65ffffffffffff191665ffffffffffff92909216919091179055565b634e487b7160e01b5f525f60045260245ffd5b805492939291908215613594576134c361233e612fe285611ba3565b906134d4825165ffffffffffff1690565b65ffffffffffff84811691168110613582576121cc9460209488926135026123d1875165ffffffffffff1690565b0361354a575061353c9261351861352392611ba3565b905f5260205f200190565b9065ffffffffffff82549181199060301b169116179055565b01516001600160d01b031690565b91505061357d9161356a61355c6106ae565b65ffffffffffff9093168352565b6001600160d01b0388168286015261344c565b61353c565b604051632520601d60e01b8152600490fd5b6135b892506135a461355c6106ae565b6001600160d01b038516602083015261344c565b5f9190565b60ff5f8051602061362c8339815191525460401c16156135d957565b604051631afcd79f60e31b8152600490fdfe02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268009b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a2646970667358221220dc71151e359446372f65ddedaab6f31862570ef5d8ce33546dbf0285e530953a64736f6c63430008190033","sourceMap":"3228:4636:86:-:0;;;;;;;;;;;;;-1:-1:-1;;3228:4636:86;;;;-1:-1:-1;;;;;3228:4636:86;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;:::i;:::-;348:4:87;;332:21;;8837:64:26;3228:4636:86;;;;;;;;;7896:76:26;;3228:4636:86;;;;7985:34:26;7981:146;;-1:-1:-1;525:17:74;;;-1:-1:-1;525:17:74;;-1:-1:-1;552:12:74;;-1:-1:-1;2360:34:81;;2404:28;;-1:-1:-1;2404:28:81;;2442:57;;-1:-1:-1;2442:57:81;;2509:61;;-1:-1:-1;2509:61:81;;3714:41:86;;;;3765:24;;;;3799:40;;;;3228:4636;;;;;;;;332:21:87;3228:4636:86;;;;;;;;;;;;;;;525:17:74;3228:4636:86;;;;;552:12:74;3228:4636:86;;;;;2360:34:81;3228:4636:86;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7981:146:26;-1:-1:-1;;;;;;3228:4636:86;;;;;;;;;;;;;8087:29:26;;3228:4636:86;;8087:29:26;7981:146;;;;;7896:76;3228:4636:86;;-1:-1:-1;;;7938:23:26;;;;;3228:4636:86;-1:-1:-1;3228:4636:86;;;;;;-1:-1:-1;3228:4636:86;;;;;-1:-1:-1;3228:4636:86;;;;-1:-1:-1;;;;;3228:4636:86;;;;;;:::o","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361015610011575f80fd5b5f3560e01c806301ffc9a71461030457806302145348146102ff57806307f9d5fd146102fa578063103f2907146102f5578063128e5d82146102f0578063197aa7ea146102eb5780631a7a7044146102e65780631a80e500146102e157806323f752d5146102dc578063248a9ca3146102d757806325dc9708146102d25780632dd31000146102cd5780632f2ff15d146102c857806336568abe146102c35780633dfd3873146102be5780633eb22c0f146102b957806342c53e33146102b4578063439fab91146102af57806345e78fcb146102aa578063557cab44146102a55780635d32a1c9146102a05780636679191e1461029b57806379d89614146102965780637d24bb27146102915780637f5a7c7b1461028c5780638b3f10b01461028757806391d1485414610282578063987b3ee81461027d5780639b656b22146102785780639f86fd8514610273578063a217fddf1461026e578063a33bc28714610269578063b549ef1f14610264578063bb24fe8a1461025f578063c0cd7c3e1461025a578063c43dc03f14610255578063d15b740e14610250578063d547741f1461024b578063da749d2b14610246578063e02f693714610241578063e49561ee1461023c578063e78eb6ae14610237578063ed4d89e514610232578063fbfa77cf1461022d578063fd4d447c14610228578063ff54740f146102235763ffa1ad741461021e575f80fd5b6116dc565b6116bf565b611695565b61166e565b61160e565b6115d4565b6113e9565b6113cd565b6113b3565b611367565b61133d565b611314565b6112d0565b61128d565b611273565b611126565b61110c565b611078565b611034565b610fa6565b610f48565b610f25565b610efd565b610ec4565b610e80565b610e46565b610e23565b610dc6565b610d82565b610c4a565b610bd1565b610ba8565b610aaf565b610a64565b610a18565b6109d4565b6109b7565b61097e565b6107f8565b6107b4565b61076e565b610585565b610541565b6104fd565b6104c8565b61035e565b3461035a57602036600319011261035a5760043563ffffffff60e01b811680910361035a57602090637965db0b60e01b8114908115610349575b506040519015158152f35b6301ffc9a760e01b1490505f61033e565b5f80fd5b3461035a5760408060031936011261035a57600435906024359061038061202e565b825f526002602052805f2054821161041a57825f526003602052816103a6825f206128d7565b1461040a5781610405916103f57e899d104fc3d8820bd96540612bcc5c448c8837b13b9f7faa43ad0728f0c14f946103e6875f52600360205260405f2090565b6103ef42612d7a565b90612176565b5050519081529081906020820190565b0390a2005b5163a741a04560e01b8152600490fd5b51631eefc06360e31b8152600490fd5b6001600160a01b0381160361035a57565b6024359065ffffffffffff8216820361035a57565b6064359065ffffffffffff8216820361035a57565b608090600319011261035a5760043561047d8161042a565b906024359060443561048e8161042a565b9060643565ffffffffffff8116810361035a5790565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b3461035a576104f96104e56104dc36610465565b92919091611736565b6040519182916020835260208301906104a4565b0390f35b3461035a575f36600319011261035a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461035a575f36600319011261035a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461035a57604036600319011261035a5761059e61043b565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163303610602576105e5906004355f52600360205260405f206122f5565b60408051941515855263ffffffff91909116602085015292915050f35b604051637ca475e560e11b8152600490fd5b634e487b7160e01b5f52604160045260245ffd5b604081019081106001600160401b0382111761064357604052565b610614565b606081019081106001600160401b0382111761064357604052565b60a081019081106001600160401b0382111761064357604052565b90601f801991011681019081106001600160401b0382111761064357604052565b604051906106ac82610663565b565b604051906106ac82610628565b6001600160401b03811161064357601f01601f191660200190565b81601f8201121561035a578035906106ed826106bb565b926106fb604051948561067e565b8284526020838301011161035a57815f926020809301838601378301015290565b90608060031983011261035a57600435916024356107398161042a565b9160443565ffffffffffff8116810361035a5791606435906001600160401b03821161035a5761076b916004016106d6565b90565b3461035a5760206107ac6107a76107843661071c565b939190925f526005865260405f209060018060a01b03165f5260205260405f2090565b61242d565b604051908152f35b3461035a575f36600319011261035a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461035a57604036600319011261035a576004356001600160601b038116810361035a5760243590610828612505565b6040516302910f8b60e31b81523360048201526020816024816001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165afa908115610979575f9161094a575b5015610938576001600160601b03166bffffffffffffffffffffffff193360601b161790806108b2835f52600260205260405f2090565b54146109265761090b817fc67e7929681aa1bccd63f52b3799bf5805f3009f197db6fdf584b14f7fbf608c926108f0855f52600260205260405f2090565b556108fb8185612534565b6040519081529081906020820190565b0390a261092460015f8051602061360c83398151915255565b005b60405163a741a04560e01b8152600490fd5b6040516323d53b9760e21b8152600490fd5b61096c915060203d602011610972575b610964818361067e565b8101906117e8565b5f61087b565b503d61095a565b6117fc565b3461035a57602036600319011261035a576004355f525f805160206135ec8339815191526020526020600160405f200154604051908152f35b3461035a576104f96104e56109cb36610465565b92919091611904565b3461035a575f36600319011261035a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461035a57604036600319011261035a57610924602435600435610a3b8261042a565b805f525f805160206135ec833981519152602052610a5f600160405f2001546120e1565b61280f565b3461035a57604036600319011261035a57602435610a818161042a565b336001600160a01b03821603610a9d5761092490600435612845565b60405163334bd91960e11b8152600490fd5b3461035a57602036600319011261035a57600435610acc8161042a565b610ad4612505565b335f9081527f9ebbcbe0d2961d3fbe56ca6f679bc753bd848d3e6bb3eaf9041c51b286881d2c60205260409020547fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c9060ff1615610b8a57506001546001600160a01b039182169181168214610926576001600160a01b03191681176001557f5bbb1d3ebb6a3ad2a0f17ff35e579a83af60604d1d3c2a4c83c62adecadf666d5f80a260015f8051602061360c83398151915255005b6044906040519063e2517d3f60e01b82523360048301526024820152fd5b3461035a57602036600319011261035a576004355f52600360205260206107ac60405f206128d7565b3461035a57604036600319011261035a5760206107ac610c18602435610bf68161042a565b6004355f526005845260405f209060018060a01b03165f5260205260405f2090565b6128d7565b9181601f8401121561035a578235916001600160401b03831161035a576020838186019501011161035a57565b3461035a57602036600319011261035a576001600160401b0360043581811161035a57610c7b903690600401610c1d565b5f8051602061362c833981519152549260ff8460401c1615931680159081610d7a575b6001149081610d70575b159081610d67575b50610d55575f8051602061362c833981519152805467ffffffffffffffff19166001179055610ce39183610d3157612950565b610ce957005b5f8051602061362c833981519152805460ff60401b19169055604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a1005b5f8051602061362c833981519152805460ff60401b1916600160401b179055612950565b60405163f92ee8a960e01b8152600490fd5b9050155f610cb0565b303b159150610ca8565b849150610c9e565b3461035a575f36600319011261035a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461035a575f36600319011261035a576020604051614e208152f35b606060031982011261035a576004359160243565ffffffffffff8116810361035a5791604435906001600160401b03821161035a5761076b916004016106d6565b3461035a5760206107ac610e3636610de2565b915f526003845260405f2061242d565b3461035a575f36600319011261035a5760206040517fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c8152f35b3461035a575f36600319011261035a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461035a575f36600319011261035a5760206040517e8b9b1e5fa9cf3b14f87f435649268146305ddf689f082e5961a335b07a9abf8152f35b3461035a575f36600319011261035a576001546040516001600160a01b039091168152602090f35b3461035a5760206107ac610f3836610de2565b915f526004845260405f2061242d565b3461035a57604036600319011261035a57602060ff610f9a602435610f6c8161042a565b6004355f525f805160206135ec833981519152845260405f209060018060a01b03165f5260205260405f2090565b54166040519015158152f35b3461035a57606036600319011261035a57602435610fc38161042a565b60443565ffffffffffff8116810361035a577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633036106025761102f6105e5926004355f52600560205260405f209060018060a01b03165f5260205260405f2090565b6122f5565b3461035a575f36600319011261035a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461035a57604036600319011261035a576004356110958161042a565b6024356001600160401b03811161035a575f916110b783923690600401610c1d565b90816040519283928337810184815203915af46111046110d5611b60565b916110f66040519384921515602084015260408084015260608301906104a4565b03601f19810183528261067e565b805190602001fd5b3461035a575f36600319011261035a5760206040515f8152f35b3461035a57606036600319011261035a576024356004356111468261042a565b6044359161115261208a565b5f8281526005602090815260408083206001600160a01b0385168452909152902061117c906128d7565b838114610926577f739a5a3ec0ff71e2386d0013deac5f44e0935a98def2e2a5ddf9a709518c8294916111ef61123c92855f52600460205260405f20906111e9886111e46111c942612d7a565b936111df610c188c5f52600460205260405f2090565b611bb6565b611bd1565b91612176565b5050611220856103e68361120b885f52600560205260405f2090565b9060018060a01b03165f5260205260405f2090565b50506040519485526001600160a01b0316939081906020820190565b0390a3005b606090600319011261035a576004356112598161042a565b906024359060443565ffffffffffff8116810361035a5790565b3461035a576104f96104e561128736611241565b91611bde565b3461035a575f36600319011261035a5760206040516001600160401b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461035a575f36600319011261035a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461035a57602036600319011261035a576004355f52600460205260206107ac60405f206128d7565b3461035a57602036600319011261035a576004355f526002602052602060405f2054604051908152f35b3461035a57604036600319011261035a5761092460243560043561138a8261042a565b805f525f805160206135ec8339815191526020526113ae600160405f2001546120e1565b612845565b3461035a576104f96104e56113c736611241565b91611c28565b3461035a5760206107ac6113e03661071c565b92919091611d24565b3461035a5760a036600319011261035a576024356004356114098261042a565b60443591611415610450565b90608435906001600160401b03821161035a57611437600492369084016106d6565b61143f612505565b5f5460209061146490611458906001600160a01b031681565b6001600160a01b031690565b60405163b134427160e01b815294859182905afa928315610979575f936115a3575b506001600160a01b039283163303611591576001546001600160a01b0316838116611506575b50506040805195865265ffffffffffff909316602086015216927f741a5de99085c0d660f3e4192217b0ffb0ea4e35a0480de48e857a4bc3ee36ed91819081015b0390a361092460015f8051602061360c83398151915255565b90936040519461153d8661152f602082019363724ab0f760e11b8552858c898d60248701611eae565b03601f19810188528761067e565b62042e305a1061157f575f6114ed938192827f741a5de99085c0d660f3e4192217b0ffb0ea4e35a0480de48e857a4bc3ee36ed9951926203d090f150936114ac565b604051638072475160e01b8152600490fd5b60405163dabc4ad960e01b8152600490fd5b6115c691935060203d6020116115cd575b6115be818361067e565b810190611872565b915f611486565b503d6115b4565b3461035a575f36600319011261035a5760206040517f1312a1cf530e56add9be4fd84db9051dcc7635952f09f735f9a29405b55846258152f35b3461035a57604036600319011261035a5761162761043b565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163303610602576105e5906004355f52600460205260405f206122f5565b3461035a575f36600319011261035a575f546040516001600160a01b039091168152602090f35b3461035a57604036600319011261035a5760206107ac6024356116b78161042a565b600435611f04565b3461035a575f36600319011261035a5760206040516203d0908152f35b3461035a575f36600319011261035a57602060405160018152f35b5190811515820361035a57565b519063ffffffff8216820361035a57565b919082604091031261035a5761076b602061172f846116f7565b9301611704565b906117869165ffffffffffff6117959496956060976040519463130f67dd60e31b6020870152602486015260018060a01b031660448501521660648301526064825261178182610663565b612238565b60208082518301019101611715565b9061179d5750565b90915063ffffffff604051911660208201526020815261076b81610628565b5f9081526005602090815260408083206001600160a01b0390941683529290522061076b92919061242d565b9081602091031261035a5761076b906116f7565b6040513d5f823e3d90fd5b81601f8201121561035a5780519061181e826106bb565b9261182c604051948561067e565b8284526020838301011161035a57815f9260208093018386015e8301015290565b9060208282031261035a5781516001600160401b03811161035a5761076b9201611807565b9081602091031261035a575161076b8161042a565b9061076b91602081526118a6825160a0602084015260c08301906104a4565b9060a060806118f46118e16118cd602088015196601f1997888883030160408901526104a4565b6040880151878783030160608801526104a4565b60608701518686830301848701526104a4565b94015192828503019101526104a4565b604051630df8851f60e11b81526001600160a01b03828116600483015260248201849052848116604483015265ffffffffffff8616606483015295606095909491935f856084817f00000000000000000000000000000000000000000000000000000000000000008c165afa948515610979575f95611b18575b5060405163fbfa77cf60e01b8152602081600481888d165afa908115610979576119ea995f9285928491611af9575b5060405163192c0ff760e21b81526001600160a01b03909116600482015265ffffffffffff909216602483015290998a9190829081906044820190565b03917f0000000000000000000000000000000000000000000000000000000000000000165afa978815610979575f98611acf575b509081611a3b82611a3381611a419689611c28565b958388611736565b94611bde565b90835115801590611ac5575b8015611abb575b8015611ab1575b8015611aa7575b611a6f5750505050909150565b6110f6955061076b9496611a8161069f565b948552602085015260408401526060830152608082015260405192839160208301611887565b5081511515611a62565b5082511515611a5b565b5080511515611a54565b5086511515611a4d565b611a4192919850611af1903d805f833e611ae9818361067e565b81019061184d565b979091611a1e565b611b12915060203d6020116115cd576115be818361067e565b5f6119ad565b611b2d9195503d805f833e611ae9818361067e565b935f61197e565b9061076b92915f52600360205260405f2061242d565b9061076b92915f52600460205260405f2061242d565b3d15611b8a573d90611b71826106bb565b91611b7f604051938461067e565b82523d5f602084013e565b606090565b634e487b7160e01b5f52601160045260245ffd5b5f19810191908211611bb157565b611b8f565b91908203918211611bb157565b9060018201809211611bb157565b91908201809211611bb157565b60405163ed4d89e560e01b6020820152602481019290925265ffffffffffff909216604482015260609291611795916117869161178182606481015b03601f19810184528361067e565b604051630cbd53f560e11b6020820152602481019290925265ffffffffffff90921660448201526060929161179591611786916117818260648101611c1a565b60405190611c7582610628565b60606020838281520152565b9060208282031261035a5781516001600160401b039283821161035a57019060408282031261035a5760405192611cb784610628565b825181811161035a5782611ccc918501611807565b8452602083015190811161035a57611ce49201611807565b602082015290565b6001600160a01b0391821681529116602082015265ffffffffffff909116604082015260806060820181905261076b929101906104a4565b92611d3490929192828486612bb5565b929093611d3f611c68565b93805180611e92575b50508415938415611dfc575b8415611d6b575b50505050611d665790565b505f90565b602080949550611d96910151604051958694859463530e1d4360e01b865260601c9060048601611cec565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa908115610979575f91611ddd575b50155f808080611d5b565b611df6915060203d60201161097257610964818361067e565b5f611dd2565b5f549094506001600160a01b0316602084865192611e2f604051948593849363530e1d4360e01b85528960048601611cec565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa908115610979575f91611e73575b501593611d54565b611e8c915060203d60201161097257610964818361067e565b5f611e6b565b611ea6929550602080918301019101611c81565b925f80611d48565b919360a09361076b969565ffffffffffff938552600180871b03166020850152604084015216606082015281608082015201906104a4565b8115611ef0570490565b634e487b7160e01b5f52601260045260245ffd5b5f546040516308834cb560e21b8082526001600160a01b0385811660048401529283166024830152929392602092909183816044817f000000000000000000000000000000000000000000000000000000000000000086165afa908115610979575f91612011575b5015918215611f8d575b50509050611f875761076b91612cc5565b50505f90565b6040519081526001600160a01b0385166004820152606086901c602482015291508290829060449082907f0000000000000000000000000000000000000000000000000000000000000000165afa918215610979575f92611ff4575b505015805f80611f76565b61200a9250803d1061097257610964818361067e565b5f80611fe9565b6120289150843d861161097257610964818361067e565b5f611f6c565b335f9081527f72a65082a5691803ab2b62c9bc729b34205ba1b183d950896526b2fd8714d0c7602052604090207e8b9b1e5fa9cf3b14f87f435649268146305ddf689f082e5961a335b07a9abf9060ff905b541615610b8a5750565b335f9081527f8f2dae99798887da307a4daa2c2d11f840b0cb9a6a67822660c531e9ad14dd00602052604090207f1312a1cf530e56add9be4fd84db9051dcc7635952f09f735f9a29405b55846259060ff90612080565b5f8181525f805160206135ec83398151915260209081526040808320338452909152902060ff90612080565b634e487b7160e01b5f52603260045260245ffd5b8054821015612136575f5260205f2001905f90565b61210d565b90815491600160401b831015610643578261215e9160016106ac95018155612121565b90919082549060031b91821b915f19901b1916179055565b90929192600182019081548015612208575b508461219384612dac565b509490928454936121a3836128d7565b96816121f3575b50156121d0575050505f198101908111611bb15761215e85916121cc93612121565b9190565b6121cc9492936121ec926001600160d01b0390911691906134a7565b505061213b565b65ffffffffffff83811691161490505f6121aa565b600160401b811015610643578060016122249201845583612121565b8154905f199060031b1b191690555f612188565b5f9190829160405161226d816110f66020820194639f86fd8560e01b86523060248401526040604484015260648301906104a4565b51915afa5061227a611b60565b8051810160408282031261035a57612294602083016116f7565b916040810151916001600160401b03831161035a576122ba926020809201920101611807565b90156122c35790565b805190811561035a57602001fd5b906040516122de81610628565b915465ffffffffffff8116835260301c6020830152565b91908254905f82916005841161239d575b612311935085612f2e565b9081156123915761238a61238161237b61237161234361233e61233388611ba3565b895f5260205f200190565b6122d1565b96600161236a602061235b8b5165ffffffffffff1690565b9a01516001600160d01b031690565b9101612121565b90549060031b1c90565b93611ba3565b63ffffffff1690565b6001939291565b5f925082915081908190565b91926123a881612dfb565b8103908111611bb15761231193865f526123dc6123d18360205f200165ffffffffffff90541690565b65ffffffffffff1690565b65ffffffffffff851610156123f2575091612306565b9291506123fe90611bc3565b90612306565b9081602091031261035a5761076b90611704565b90600163ffffffff80931601918211611bb157565b918051156124fb578060208061244893518301019101612404565b916124538382613060565b92612464845165ffffffffffff1690565b9065ffffffffffff80851692168281146124ef578211918261249a575b50506124915761076b9250612f90565b50506020015190565b9091506124a78354611ba3565b63ffffffff8316149182156124c0575b50505f80612481565b6124e79192506124db6124d56123d192612418565b85613060565b5165ffffffffffff1690565b115f806124b7565b50505050506020015190565b5061076b91612f90565b5f8051602061360c83398151915260028154146125225760029055565b604051633ee5aeb560e01b8152600490fd5b90815f52600360205260405f208161254b82612dac565b9193905083156125a95761256b916001600160d01b031690600101612121565b90549060031b1c5b8261259f575b5050612583575050565b61259b915f52600360205260405f206103ef42612d7a565b5050565b119050815f612579565b50505f612573565b6001600160a01b0381165f9081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d60205260409020545f805160206135ec8339815191529060ff16611f87575f808052602091825260408082206001600160a01b038516835290925220805460ff1916600117905533906001600160a01b03165f7f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d8180a4600190565b6001600160a01b0381165f9081527f9ebbcbe0d2961d3fbe56ca6f679bc753bd848d3e6bb3eaf9041c51b286881d2c602052604090207fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c905f805160206135ec8339815191529060ff905b541661272b575f828152602091825260408082206001600160a01b038616835290925220805460ff1916600117905533916001600160a01b0316907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d5f80a4600190565b5050505f90565b6001600160a01b0381165f9081527f72a65082a5691803ab2b62c9bc729b34205ba1b183d950896526b2fd8714d0c7602052604090207e8b9b1e5fa9cf3b14f87f435649268146305ddf689f082e5961a335b07a9abf905f805160206135ec8339815191529060ff906126c7565b6001600160a01b0381165f9081527f8f2dae99798887da307a4daa2c2d11f840b0cb9a6a67822660c531e9ad14dd00602052604090207f1312a1cf530e56add9be4fd84db9051dcc7635952f09f735f9a29405b5584625905f805160206135ec8339815191529060ff906126c7565b5f8181525f805160206135ec833981519152602081815260408084206001600160a01b038716855290915290912060ff906126c7565b5f8181525f805160206135ec833981519152602081815260408084206001600160a01b03871685529091529091205460ff161561272b575f828152602091825260408082206001600160a01b038616835290925220805460ff1916905533916001600160a01b0316907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b5f80a4600190565b8054806128fc57505f5b6001600160d01b03811615611f875760016123719201612121565b5f19908082810111611bb157825f5260205f2001015460301c6128e1565b91909160408184031261035a5780356129328161042a565b9260208201356001600160401b03811161035a5761076b92016106d6565b61295c9181019061291a565b6040516302910f8b60e31b81526001600160a01b039283166004820181905291906020816024817f000000000000000000000000000000000000000000000000000000000000000088165afa908115610979575f91612a6f575b5015612a5d576129f16040916129ec612a37946129d16130c8565b60018060a01b03166001600160601b0360a01b5f5416175f55565b613248565b6020810151600180546001600160a01b0319166001600160a01b0390921691909117905580516001600160a01b0316848116612a4d575b5001516001600160a01b031690565b908116612a415750565b612a4a9061265c565b50565b612a56906125b1565b505f612a28565b6040516362df054560e01b8152600490fd5b612a88915060203d60201161097257610964818361067e565b5f6129b6565b6040519060a082018281106001600160401b038211176106435760405281608060609182815282602082015282604082015282808201520152565b9060208282031261035a5781516001600160401b039283821161035a57019060a08282031261035a57612afa61069f565b92825181811161035a5782612b10918501611807565b8452602083015181811161035a5782612b2a918501611807565b6020850152604083015181811161035a5782612b47918501611807565b6040850152606083015181811161035a5782612b64918501611807565b6060850152608083015190811161035a57612b7f9201611807565b608082015290565b9081602091031261035a575190565b60409065ffffffffffff61076b949316815281602082015201906104a4565b91939293612bc1612a8e565b94805180612ca9575b5050612bdb60608601518285611b4a565b9182612bed57505050509051905f9190565b612c01612c3b9183608089015191876117bc565b916020612c1a6114586114585f5460018060a01b031690565b8189015190604051808096819463810da75d60e01b83528760048401612b96565b03915afa801561097957612c7195612c6b935f92612c76575b50612c65919260408a015191611b34565b906133a8565b906133ba565b915190565b612c659250612c9c9060203d602011612ca2575b612c94818361067e565b810190612b87565b91612c54565b503d612c8a565b612cbd929650602080918301019101612ac9565b935f80612bca565b90612cdb610c18835f52600460205260405f2090565b9081612ce8575050505f90565b610c18612d019161120b855f52600560205260405f2090565b5f5460405163bd49c35f60e01b815290602090829060049082906001600160a01b03165afa80156109795761076b94612c6b925f92612d51575b50610c18612c65915f52600360205260405f2090565b612c65919250612d72610c189160203d602011612ca257612c94818361067e565b929150612d3b565b65ffffffffffff90818111612d8d571690565b604490604051906306dfcc6560e41b8252603060048301526024820152fd5b805480612dbd5750505f905f905f90565b5f19908082810111611bb157612dda925f5260205f2001016122d1565b9065ffffffffffff82511691602060018060d01b0391015116906001929190565b8015611d665780612c65612ec6612ebc612eb2612ea8612e9e612e94612e8a600161076b9a5f908b60801c80612f22575b508060401c80612f15575b508060201c80612f08575b508060101c80612efb575b508060081c80612eee575b508060041c80612ee1575b508060021c80612ed4575b50821c612ecd575b811c1b612e83818b611ee6565b0160011c90565b612e83818a611ee6565b612e838189611ee6565b612e838188611ee6565b612e838187611ee6565b612e838186611ee6565b612e838185611ee6565b8092611ee6565b8101612e76565b600291509101905f612e6e565b600491509101905f612e63565b600891509101905f612e58565b601091509101905f612e4d565b602091509101905f612e42565b604091509101905f612e37565b9150506080905f612e2c565b91905b838210612f3e5750505090565b909192808316906001818518811c8301809311611bb157855f5265ffffffffffff808460205f20015416908516105f14612f7d575050925b9190612f31565b909493508101809111611bb15791612f76565b908154905f829160058411612ffa575b612fab935084612f2e565b80612fd357505f905b6001600160d01b03821615611f875761076b9160016123719201612121565b612fed612fe2612ff492611ba3565b835f5260205f200190565b5460301c90565b90612fb4565b919261300581612dfb565b8103908111611bb157612fab93855f5265ffffffffffff808360205f20015416908516105f14613036575091612fa0565b92915061304290611bc3565b90612fa0565b6040519061305582610628565b5f6020838281520152565b906130896130836130aa92613073613048565b5061307c613048565b5084612121565b506122d1565b91600165ffffffffffff845116936020828060d01b03910151169101612121565b905490604051926130ba84610628565b835260031b1c602082015290565b6130d06135bd565b6130d86135bd565b60015f8051602061360c83398151915255565b604051906130f882610648565b5f6040838281528260208201520152565b81601f8201121561035a578051916020916001600160401b038411610643578360051b906040519461313d8584018761067e565b8552838086019282010192831161035a578301905b828210613160575050505090565b838091835161316e8161042a565b815201910190613152565b9060208282031261035a5781516001600160401b039283821161035a5701908181039260a0841261035a576060604051946131b386610648565b1261035a576040516131c481610648565b83516131cf8161042a565b815260208401516131df8161042a565b602082015260408401516131f28161042a565b60408201528452606083015181811161035a5782613211918501613109565b6020850152608083015190811161035a5761322c9201613109565b604082015290565b80518210156121365760209160051b010190565b613264906132546130eb565b5060208082518301019101613179565b8051519091906001600160a01b0316158061338e575b61337c579060208101905f5b82518051821015613300576114586132a1836132ae93613234565b516001600160a01b031690565b156132ee576132d06132cc6132c76132a1848751613234565b612732565b1590565b6132dc57600101613286565b604051635140fefd60e11b8152600490fd5b6040516323cda06760e01b8152600490fd5b506040925050818101905f5b82518051821015613373576114586132a18361332793613234565b15613362576133456132cc6133406132a1848751613234565b6127a0565b6133515760010161330c565b8351635140fefd60e11b8152600490fd5b83516323cda06760e01b8152600490fd5b50509150505190565b6040516303501f5960e11b8152600490fd5b50602082015151158061327a57506040820151511561327a565b90808210156133b5575090565b905090565b9091828202915f198482099383808610950394808603951461343f578483111561342d57829109815f038216809204600280826003021880830282030280830282030280830282030280830282030280830282030280920290030293600183805f03040190848311900302920304170290565b60405163227bc15360e01b8152600490fd5b50509061076b9250611ee6565b8054600160401b8110156106435761346991600182018155612121565b61349457815160209092015160301b65ffffffffffff191665ffffffffffff92909216919091179055565b634e487b7160e01b5f525f60045260245ffd5b805492939291908215613594576134c361233e612fe285611ba3565b906134d4825165ffffffffffff1690565b65ffffffffffff84811691168110613582576121cc9460209488926135026123d1875165ffffffffffff1690565b0361354a575061353c9261351861352392611ba3565b905f5260205f200190565b9065ffffffffffff82549181199060301b169116179055565b01516001600160d01b031690565b91505061357d9161356a61355c6106ae565b65ffffffffffff9093168352565b6001600160d01b0388168286015261344c565b61353c565b604051632520601d60e01b8152600490fd5b6135b892506135a461355c6106ae565b6001600160d01b038516602083015261344c565b5f9190565b60ff5f8051602061362c8339815191525460401c16156135d957565b604051631afcd79f60e31b8152600490fdfe02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268009b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a2646970667358221220dc71151e359446372f65ddedaab6f31862570ef5d8ce33546dbf0285e530953a64736f6c63430008190033","sourceMap":"3228:4636:86:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;;;;;-1:-1:-1;;3228:4636:86;;;;;;;;;;;;;;;;;;-1:-1:-1;;;3551:47:24;;;:87;;;;3228:4636:86;;;;;;;;;;3551:87:24;-1:-1:-1;;;1133:40:30;;-1:-1:-1;3551:87:24;;;3228:4636:86;-1:-1:-1;3228:4636:86;;;;;;;;;;;;;;;;;;;;3202:4:24;;;:::i;:::-;3228:4636:86;-1:-1:-1;3228:4636:86;3610:15:83;3228:4636:86;;;-1:-1:-1;3228:4636:86;;3601:36:83;;3597:98;;3228:4636:86;-1:-1:-1;3228:4636:86;2233:13:83;3228:4636:86;;;2233:34:83;3228:4636:86;-1:-1:-1;3228:4636:86;2233:34:83;:::i;:::-;3709;3705:84;;3799:25;3871:35;3799:25;:56;3871:35;3799:25;;;3228:4636:86;;2233:13:83;3228:4636:86;;;;;;;3799:25:83;819:34:63;837:15;819:34;:::i;:::-;3799:56:83;;:::i;:::-;-1:-1:-1;;3228:4636:86;;;;;;;;;;;;3871:35:83;;;;3228:4636:86;3705:84:83;3228:4636:86;-1:-1:-1;;;3766:12:83;;3228:4636:86;;3766:12:83;3597:98;3228:4636:86;-1:-1:-1;;;3660:24:83;;3228:4636:86;;3660:24:83;3228:4636:86;-1:-1:-1;;;;;3228:4636:86;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;3228:4636:86;;;;;;;;-1:-1:-1;;3228:4636:86;;;;:::o;:::-;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;3228:4636:86;;;;;;1537:38:81;-1:-1:-1;;;;;3228:4636:86;;;;;;;;;;;;-1:-1:-1;;3228:4636:86;;;;;;1632:54:81;-1:-1:-1;;;;;3228:4636:86;;;;;;;;;;;;-1:-1:-1;;3228:4636:86;;;;;;:::i;:::-;449:5:87;-1:-1:-1;;;;;3228:4636:86;435:10:87;:19;431:71;;4041:64:86;3228:4636;;;-1:-1:-1;3228:4636:86;4041:13;3228:4636;;;-1:-1:-1;3228:4636:86;4041:64;:::i;:::-;3228:4636;;;;;;;;;;;;;;;;;;;-1:-1:-1;;3228:4636:86;431:71:87;3228:4636:86;;-1:-1:-1;;;477:14:87;;3228:4636:86;;477:14:87;3228:4636:86;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3228:4636:86;;;;;;;:::o;:::-;;:::i;:::-;;;;;;;-1:-1:-1;;;;;3228:4636:86;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;3228:4636:86;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;3228:4636:86;;;;;;;:::o;:::-;;;;;;;:::i;:::-;:::o;:::-;;;;;;;:::i;:::-;-1:-1:-1;;;;;3228:4636:86;;;;;;-1:-1:-1;;3228:4636:86;;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;3228:4636:86;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;3228:4636:86;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;-1:-1:-1;;;;;3228:4636:86;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;3090:79:83;:44;3228:4636:86;;;:::i;:::-;;;;;-1:-1:-1;3228:4636:86;3090:22:83;3228:4636:86;;;-1:-1:-1;3228:4636:86;;;;;;;;;;;;;;;;;3090:44:83;:79;:::i;:::-;3228:4636:86;;;;;;;;;;;;-1:-1:-1;;3228:4636:86;;;;;;1743:56:81;-1:-1:-1;;;;;3228:4636:86;;;;;;;;;;;;-1:-1:-1;;3228:4636:86;;;;;;-1:-1:-1;;;;;3228:4636:86;;;;;;;;3217:103:29;;;:::i;:::-;3228:4636:86;;-1:-1:-1;;;4285:48:81;;4322:10;3228:4636:86;4285:48:81;;3228:4636:86;;;;;-1:-1:-1;;;;;4295:16:81;3228:4636:86;4285:48:81;;;;;;;-1:-1:-1;4285:48:81;;;3228:4636:86;4284:49:81;;4280:99;;-1:-1:-1;;;;;3228:4636:86;-1:-1:-1;;4322:10:81;297:2:93;3228:4636:86;;267:46:93;4459:27:81;;;;3228:4636:86;;4459:15:81;3228:4636:86;;;;;;;4459:27:81;3228:4636:86;4459:37:81;4455:87;;4654:38;4552:27;4654:38;4552:27;;;3228:4636:86;;4459:15:81;3228:4636:86;;;;;;;4552:27:81;3228:4636:86;4631:6:81;;;;:::i;:::-;3228:4636:86;;;;;;;;;;;;;4654:38:81;;;;3282:1:29;1805;-1:-1:-1;;;;;;;;;;;3228:4636:86;3716:283:29;3282:1;3228:4636:86;4455:87:81;3228:4636:86;;-1:-1:-1;;;4519:12:81;;3228:4636:86;;4519:12:81;4280:99;3228:4636:86;;-1:-1:-1;;;4356:12:81;;3228:4636:86;;4356:12:81;4285:48;;;;3228:4636:86;4285:48:81;3228:4636:86;4285:48:81;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;:::i;3228:4636:86:-;;;;;;-1:-1:-1;;3228:4636:86;;;;;;-1:-1:-1;3228:4636:86;-1:-1:-1;;;;;;;;;;;3228:4636:86;;;4919:24:24;3228:4636:86;-1:-1:-1;3228:4636:86;4919:24:24;3228:4636:86;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;-1:-1:-1;;3228:4636:86;;;;;;322:32:74;-1:-1:-1;;;;;3228:4636:86;;;;;;;;;;;;-1:-1:-1;;3228:4636:86;;;;5350:25:24;3228:4636:86;;;;;;;:::i;:::-;;-1:-1:-1;3228:4636:86;-1:-1:-1;;;;;;;;;;;3228:4636:86;;3202:4:24;4919:24;3228:4636:86;-1:-1:-1;3228:4636:86;4919:24:24;3228:4636:86;3202:4:24;:::i;:::-;5350:25;:::i;3228:4636:86:-;;;;;;-1:-1:-1;;3228:4636:86;;;;;;;;;:::i;:::-;966:10:28;-1:-1:-1;;;;;3228:4636:86;;6441:34:24;6437:102;;6549:37;3228:4636:86;;;6549:37:24;:::i;6437:102::-;3228:4636:86;;-1:-1:-1;;;6498:30:24;;3228:4636:86;;6498:30:24;3228:4636:86;;;;;;-1:-1:-1;;3228:4636:86;;;;;;;;;:::i;:::-;3217:103:29;;:::i;:::-;966:10:28;-1:-1:-1;3228:4636:86;;;;;;;;;;1356:26:81;;3228:4636:86;;4468:23:24;4464:108;;-1:-1:-1;4861:4:81;3228:4636:86;-1:-1:-1;;;;;3228:4636:86;;;;;;4861:13:81;;4857:63;;-1:-1:-1;;;;;;3228:4636:86;;;4861:4:81;3228:4636:86;4958:14:81;-1:-1:-1;;4958:14:81;4861:4;-1:-1:-1;;;;;;;;;;;3228:4636:86;;4464:108:24;3228:4636:86;;;;4514:47:24;;;;;;966:10:28;3228:4636:86;4514:47:24;;3228:4636:86;;;;;4514:47:24;3228:4636:86;;;;;;-1:-1:-1;;3228:4636:86;;;;;;-1:-1:-1;3228:4636:86;2233:13:83;3228:4636:86;;;2233:34:83;3228:4636:86;-1:-1:-1;3228:4636:86;2233:34:83;:::i;3228:4636:86:-;;;;;;-1:-1:-1;;3228:4636:86;;;;;3358:53:83;:44;3228:4636:86;;;;;:::i;:::-;;;-1:-1:-1;3228:4636:86;3358:22:83;3228:4636:86;;;-1:-1:-1;3228:4636:86;;;;;;;;;;;;;;;;;3358:44:83;:53;:::i;3228:4636:86:-;;;;;;;;;;;;;-1:-1:-1;;;;;3228:4636:86;;;;;;;;;;;;;;;:::o;:::-;;;;;;-1:-1:-1;;3228:4636:86;;;;-1:-1:-1;;;;;3228:4636:86;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;3228:4636:86;;;;;;;4301:16:26;3228:4636:86;;4726:16:26;;:34;;;;3228:4636:86;4805:1:26;4790:16;:50;;;;3228:4636:86;4855:13:26;:30;;;;3228:4636:86;4851:91:26;;;-1:-1:-1;;;;;;;;;;;3228:4636:86;;-1:-1:-1;;3228:4636:86;;;;;718:4:74;;4951:18:26;4979:67;;718:4:74;:::i;:::-;5066:101:26;;3228:4636:86;5066:101:26;-1:-1:-1;;;;;;;;;;;3228:4636:86;;-1:-1:-1;;;;3228:4636:86;;;;;-1:-1:-1;3228:4636:86;;5142:14:26;;3228:4636:86;;5142:14:26;3228:4636:86;4979:67:26;-1:-1:-1;;;;;;;;;;;3228:4636:86;;-1:-1:-1;;;;3228:4636:86;-1:-1:-1;;;3228:4636:86;;;718:4:74;:::i;4851:91:26:-;3228:4636:86;;-1:-1:-1;;;4908:23:26;;3228:4636:86;;4908:23:26;4855:30;4872:13;;;4855:30;;;4790:50;4818:4;4810:25;:30;;-1:-1:-1;4790:50:26;;4726:34;;;-1:-1:-1;4726:34:26;;3228:4636:86;;;;;;-1:-1:-1;;3228:4636:86;;;;;;3406:36;-1:-1:-1;;;;;3228:4636:86;;;;;;;;;;;;-1:-1:-1;;3228:4636:86;;;;;;;1253:6:81;3228:4636:86;;;;;-1:-1:-1;;3228:4636:86;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3228:4636:86;;;;;;;;;:::i;:::-;;;;;1997:60:83;3228:4636:86;;;:::i;:::-;;-1:-1:-1;3228:4636:86;1997:13:83;3228:4636:86;;;-1:-1:-1;3228:4636:86;1997:60:83;:::i;3228:4636:86:-;;;;;;-1:-1:-1;;3228:4636:86;;;;;;;1356:26:81;3228:4636:86;;;;;;;;;-1:-1:-1;;3228:4636:86;;;;;;3355:45;-1:-1:-1;;;;;3228:4636:86;;;;;;;;;;;;-1:-1:-1;;3228:4636:86;;;;;;;810:35:83;3228:4636:86;;;;;;;;;-1:-1:-1;;3228:4636:86;;;;;;;;-1:-1:-1;;;;;3228:4636:86;;;;;;;;;;;;;2512:74:83;3228:4636:86;;;:::i;:::-;;-1:-1:-1;3228:4636:86;;;;;-1:-1:-1;3228:4636:86;2512:74:83;:::i;3228:4636:86:-;;;;;;-1:-1:-1;;3228:4636:86;;;;;;3901:31:24;3228:4636:86;;;;;:::i;:::-;;;-1:-1:-1;3228:4636:86;-1:-1:-1;;;;;;;;;;;3228:4636:86;;;-1:-1:-1;3228:4636:86;;;;;;;;;;;;;;;;;3901:31:24;3228:4636:86;;;;;;;;;;;;;;;;-1:-1:-1;;3228:4636:86;;;;;;;;;:::i;:::-;;;;;;;;;;449:5:87;-1:-1:-1;;;;;3228:4636:86;435:10:87;:19;431:71;;4852:44:86;:83;3228:4636;;;-1:-1:-1;3228:4636:86;4852:22;3228:4636;;;-1:-1:-1;3228:4636:86;;;;;;;;;;;;;;;;;4852:44;:83;:::i;3228:4636::-;;;;;;-1:-1:-1;;3228:4636:86;;;;;;3448:45;-1:-1:-1;;;;;3228:4636:86;;;;;;;;;;;;-1:-1:-1;;3228:4636:86;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;3228:4636:86;;;;-1:-1:-1;3228:4636:86;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;416:25:80;;;;477:31;416:25;;:::i;:::-;3228:4636:86;;;;;;;;;;477:31:80;;3228:4636:86;;;;;;;;;;;:::i;:::-;477:31:80;3228:4636:86;;477:31:80;;;;;;:::i;:::-;518:79;;;3228:4636:86;518:79:80;;3228:4636:86;;;;;;-1:-1:-1;;3228:4636:86;;;;;;;;;;;;;;;;;-1:-1:-1;;3228:4636:86;;;;;;;;;;;:::i;:::-;;;3202:4:24;;;:::i;:::-;-1:-1:-1;3228:4636:86;;;3358:22:83;3228:4636:86;;;;;;;;-1:-1:-1;;;;;3228:4636:86;;;;;;;;;3358:53:83;;;:::i;:::-;4249:32;;;4245:82;;4596:54;3228:4636:86;4337:158:83;4596:54;3228:4636:86;;-1:-1:-1;3228:4636:86;;;;;-1:-1:-1;3228:4636:86;837:15:63;4413:72:83;837:15:63;4413:63:83;819:34:63;837:15;819:34;:::i;:::-;2776:39:83;:48;:39;;3228:4636:86;;;;;;;;;;2776:48:83;4413:63;:::i;:::-;:72;:::i;:::-;4337:158;;:::i;:::-;4505:34;;:75;:34;:44;:34;;;3228:4636:86;;3358:22:83;3228:4636:86;;;;;;;4505:34:83;3228:4636:86;;;;;;;;;;;;;;;;4505:75:83;-1:-1:-1;;3228:4636:86;;;;;-1:-1:-1;;;;;3228:4636:86;;;;;;;;;;4596:54:83;;;;3228:4636:86;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;-1:-1:-1;;3228:4636:86;;;;;;;-1:-1:-1;;;;;404:28:74;3228:4636:86;;;;;;;;;;-1:-1:-1;;3228:4636:86;;;;;;1439:41:81;-1:-1:-1;;;;;3228:4636:86;;;;;;;;;;;;-1:-1:-1;;3228:4636:86;;;;;;-1:-1:-1;3228:4636:86;;;;;2776:48:83;3228:4636:86;-1:-1:-1;3228:4636:86;2776:48:83;:::i;3228:4636:86:-;;;;;;-1:-1:-1;;3228:4636:86;;;;;;-1:-1:-1;3228:4636:86;2009:67:81;3228:4636:86;;;;-1:-1:-1;3228:4636:86;;;;;;;;;;;;;;-1:-1:-1;;3228:4636:86;;;;5767:26:24;3228:4636:86;;;;;;;:::i;:::-;;-1:-1:-1;3228:4636:86;-1:-1:-1;;;;;;;;;;;3228:4636:86;;3202:4:24;4919:24;3228:4636:86;-1:-1:-1;3228:4636:86;4919:24:24;3228:4636:86;3202:4:24;:::i;:::-;5767:26;:::i;3228:4636:86:-;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;-1:-1:-1;;3228:4636:86;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;-1:-1:-1;;;;;3228:4636:86;;;;;;;;;;;;:::i;:::-;3217:103:29;;:::i;:::-;-1:-1:-1;3228:4636:86;;;5246:21:81;;:13;;-1:-1:-1;;;;;3228:4636:86;5246:13:81;3228:4636:86;;-1:-1:-1;;;;;3228:4636:86;;;5246:21:81;3228:4636:86;;-1:-1:-1;;;5246:23:81;;3228:4636:86;;;;;5246:23:81;;;;;;;-1:-1:-1;5246:23:81;;;3228:4636:86;-1:-1:-1;;;;;;3228:4636:86;;;5232:10:81;:37;5228:87;;5341:4;3228:4636:86;-1:-1:-1;;;;;3228:4636:86;;;;5355:469:81;;3228:4636:86;-1:-1:-1;;3228:4636:86;;;;;;;;;;;;;;;;5839:55:81;;3228:4636:86;;;;5839:55:81;;;;3282:1:29;1805;-1:-1:-1;;;;;;;;;;;3228:4636:86;3716:283:29;5355:469:81;3228:4636:86;;;;5435:94:81;;;;3228:4636:86;5435:94:81;;;;;;;;;;;;3228:4636:86;5435:94:81;;;:::i;:::-;;3228:4636:86;;5435:94:81;;;;;;:::i;:::-;3228:4636:86;5548:9:81;:51;5544:118;;-1:-1:-1;5839:55:81;5676:138;;;;5839:55;5676:138;;;1150:7;5676:138;;5355:469;;;5544:118;3228:4636:86;;-1:-1:-1;;;5626:21:81;;3228:4636:86;;5626:21:81;5228:87;3228:4636:86;;-1:-1:-1;;;5292:12:81;;3228:4636:86;;5292:12:81;5246:23;;;;;3228:4636:86;5246:23:81;3228:4636:86;5246:23:81;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;3228:4636:86;;;;;;-1:-1:-1;;3228:4636:86;;;;;;;971:45:83;3228:4636:86;;;;;;;;;-1:-1:-1;;3228:4636:86;;;;;;:::i;:::-;449:5:87;-1:-1:-1;;;;;3228:4636:86;435:10:87;:19;431:71;;5753:78:86;3228:4636;;;-1:-1:-1;3228:4636:86;;;;;-1:-1:-1;3228:4636:86;5753:78;:::i;3228:4636::-;;;;;;-1:-1:-1;;3228:4636:86;;;;;;;;-1:-1:-1;;;;;3228:4636:86;;;;;;;;;;;;;;-1:-1:-1;;3228:4636:86;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;-1:-1:-1;;3228:4636:86;;;;;;;1150:7:81;3228:4636:86;;;;;;;;;-1:-1:-1;;3228:4636:86;;;;;;;2700:1:81;3228:4636:86;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;:::i;4948:596::-;;5195:233;4948:596;3228:4636;5171:295;4948:596;;;3228:4636;;;;5263:151;;;;;;;;;;;3228:4636;;;;;;;;;;;;;;;;;5263:151;;;;;:::i;:::-;5195:233;:::i;:::-;5263:151;3228:4636;;;5171:295;;;;;;:::i;:::-;5477:61;;;4948:596;:::o;5477:61::-;3228:4636;;;;;;;;5263:151;5510:17;;3228:4636;5263:151;5510:17;;;;;:::i;2897:279:83:-;-1:-1:-1;3228:4636:86;;;3090:22:83;3228:4636:86;;;;;;;;-1:-1:-1;;;;;3228:4636:86;;;;;;;;;3090:79:83;;2897:279;;3090:79;:::i;3228:4636:86:-;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;3228:4636:86;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;;;;3228:4636:86;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;6420:1442::-;3228:4636;;-1:-1:-1;;;6637:99:86;;-1:-1:-1;;;;;3228:4636:86;;;6637:99;;;3228:4636;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3228:4636:86;;;6656:20;3228:4636;;6637:99;;;;;;;;;;;6420:1442;-1:-1:-1;3228:4636:86;;-1:-1:-1;;;6830:32:86;;;3228:4636;6637:99;3228:4636;;;;6830:32;;;;;;;6790:84;6830:32;6637:99;6830:32;;;;;;;6420:1442;-1:-1:-1;3228:4636:86;;-1:-1:-1;;;6790:84:86;;-1:-1:-1;;;;;3228:4636:86;;;6637:99;6790:84;;3228:4636;;;;;;;;;;;;;-1:-1:-1;3228:4636:86;;;;;;;;;6790:84;;6801:11;;3228:4636;6790:84;;;;;;;6637:99;6790:84;;;6420:1442;6918:50;;;7020:69;6918:50;;;7146:64;6918:50;;;:::i;:::-;7020:69;;;;:::i;:::-;7146:64;;:::i;:::-;3228:4636;;;7238:21;;;:52;;;6420:1442;7238:85;;;;6420:1442;7238:143;;;;6420:1442;7238:190;;;;6420:1442;7221:635;;6420:1442;;;;;;;:::o;7221:635::-;7460:385;3228:4636;;7460:385;3228:4636;;;;:::i;:::-;;;;6830:32;7488:343;;3228:4636;;7488:343;;3228:4636;;7488:343;;3228:4636;7488:343;;;3228:4636;;;7460:385;;;6830:32;7460:385;;;:::i;7238:190::-;3228:4636;;;7385:43;;7238:190;;:143;3228:4636;;;7343:38;;7238:143;;:85;3228:4636;;;7294:29;;7238:85;;:52;3228:4636;;;7263:27;;7238:52;;6790:84;7146:64;6790:84;;;;;;;;6637:99;6790:84;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;6830:32;;;;;;;;;;;;;;:::i;:::-;;;;6637:99;;;;;;;;;;;;;;:::i;:::-;;;;;1869:195:83;;1997:60;1869:195;;-1:-1:-1;3228:4636:86;1997:13:83;3228:4636:86;;;-1:-1:-1;3228:4636:86;1997:60:83;:::i;2340:253::-;;2512:74;2340:253;;-1:-1:-1;3228:4636:86;2512:27:83;3228:4636:86;;;-1:-1:-1;3228:4636:86;2512:74:83;:::i;3228:4636:86:-;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;-1:-1:-1;3228:4636:86;;;;:::o;:::-;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;3228:4636:86;;;;;;;;:::o;:::-;;:::i;:::-;;;;;;;;;;:::o;:::-;;8889:1:91;3228:4636:86;;;;;;;:::o;:::-;;;;;;;;;;:::o;5844:570::-;3228:4636;;-1:-1:-1;;;6138:146:86;;;;;;;3228:4636;;;;;;;;;;;;;;5844:570;6046:290;;6070:228;;6138:146;3228:4636;;;;6138:146;;3228:4636;;6138:146;;;;;;:::i;4118:504::-;3228:4636;;-1:-1:-1;;;4398:94:86;;;;;;;3228:4636;;;;;;;;;;;;;;4118:504;4306:238;;4330:176;;4398:94;3228:4636;;;;4398:94;3228:4636;;;;;;;;:::i;:::-;;;;;;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;;;;3228:4636:86;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::o;:::-;-1:-1:-1;;;;;3228:4636:86;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;2764:920:81:-;;2978:48;2764:920;;;;2978:48;;;;:::i;:::-;3036:36;;;3228:4636:86;;:::i;:::-;;;;3086:20:81;3082:107;;2764:920;3216:11;;;;:193;;;;;2764:920;3216:394;;;;2764:920;3199:455;;;;;;2764:920;:::o;3199:455::-;3635:8;-1:-1:-1;3635:8:81;:::o;3216:394::-;3553:39;;;;;3430:180;3553:39;;;3228:4636:86;;;;;;;;;;3430:180:81;;467:2:93;3228:4636:86;3430:180:81;;;;;:::i;:::-;;3228:4636:86;3444:31:81;-1:-1:-1;;;;;3228:4636:86;3430:180:81;;;;;;;-1:-1:-1;3430:180:81;;;3216:394;3429:181;;3216:394;;;;;;3430:180;;;;3553:39;3430:180;3553:39;3430:180;;;;;;;:::i;:::-;;;;3216:193;-1:-1:-1;3228:4636:86;;;-1:-1:-1;;;;;;3228:4636:86;3248:161:81;3354:37;;;3228:4636:86;3248:161:81;3228:4636:86;;;;;;;;;;3248:161:81;;;;;;;:::i;:::-;;3228:4636:86;3262:29:81;-1:-1:-1;;;;;3228:4636:86;3248:161:81;;;;;;;-1:-1:-1;3248:161:81;;;3216:193;3247:162;;3216:193;;;3248:161;;;;;;;;;;;;;;:::i;:::-;;;;3082:107;3139:39;;;;;;;;;;;;;:::i;:::-;3082:107;;;;;3228:4636:86;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::o;:::-;;;;;;;;;;;;3740:389:81;3918:5;3228:4636:86;;;-1:-1:-1;;;3853:71:81;;;-1:-1:-1;;;;;3228:4636:86;;;3853:71:81;;;3228:4636:86;;;;;;;;3740:389:81;;3228:4636:86;3853:71:81;;3228:4636:86;;3853:71:81;3228:4636:86;;;3867:29:81;3228:4636:86;;3853:71:81;;;;;;;3918:5;3853:71;;;3740:389;3852:72;;3228:4636:86;;;3852:181:81;;3740:389;3835:242;;;;;;4094:28;;;:::i;3835:242::-;4058:8;;3918:5;4058:8;:::o;3852:181::-;3228:4636:86;;3945:88:81;;;-1:-1:-1;;;;;3228:4636:86;;3853:71:81;3945:88;;3228:4636:86;467:2:93;3228:4636:86;;;;;;;;-1:-1:-1;3228:4636:86;;;;;;;;3959:31:81;3228:4636:86;3945:88:81;;;;;;;3918:5;3945:88;;;3852:181;3944:89;;;3852:181;;;;;3945:88;;;;;;-1:-1:-1;3945:88:81;;;;;;:::i;:::-;;;;;3853:71;;;;;;;;;;;;;;:::i;:::-;;;;4148:103:24;966:10:28;-1:-1:-1;3228:4636:86;;;;;;;;;810:35:83;;3228:4636:86;;3901:31:24;3228:4636:86;;4468:23:24;4464:108;;4148:103;:::o;:::-;966:10:28;-1:-1:-1;3228:4636:86;;;;;;;;;971:45:83;;3228:4636:86;;3901:31:24;3228:4636:86;4148:103:24;-1:-1:-1;3228:4636:86;;;-1:-1:-1;;;;;;;;;;;3228:4636:86;;;;;;;;966:10:28;3228:4636:86;;;;;;;;;3901:31:24;3228:4636:86;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3228:4636:86;;-1:-1:-1;3228:4636:86;;;-1:-1:-1;3228:4636:86;:::o;:::-;;:::i;:::-;;;;;-1:-1:-1;;;3228:4636:86;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;6246:584:91;;;;;6360:12;;;3228:4636:86;;;6360:24:91;;6356:75;;6246:584;6474:30;;;;;:::i;:::-;3228:4636:86;;;;;;6578:12:91;;;;:::i;:::-;6604:24;;;;6246:584;-1:-1:-1;6600:188:91;;;-1:-1:-1;;;;;3228:4636:86;;;;;;;6644:21:91;;;:29;:21;;:::i;:29::-;6798:25;6246:584;:::o;6600:188::-;6753:24;;3228:4636:86;;8167:38:61;;-1:-1:-1;;;;;3228:4636:86;;;;;8167:38:61;:::i;:::-;6753:24:91;;;:::i;6604:::-;3228:4636:86;;;;;;6614:14:91;;-1:-1:-1;6604:24:91;;;6356:75;-1:-1:-1;;;3228:4636:86;;;;;;6360:12:91;3228:4636:86;;;;;;;:::i;:::-;;;;;;;;;;;;;;6356:75:91;;;525:595:87;-1:-1:-1;525:595:87;;;;3228:4636:86;;716:88:87;;3228:4636:86;716:88:87;;;;;;;;;783:4;716:88;;;3228:4636:86;;;;;;;;;;;:::i;716:88:87:-;698:107;;;;;;;:::i;:::-;3228:4636:86;;857:45:87;;3228:4636:86;;;;;;;;716:88:87;857:45;;3228:4636:86;:::i;:::-;;;;;;;-1:-1:-1;;;;;3228:4636:86;;;;;857:45:87;716:88;857:45;;;3228:4636:86;;;;:::i;:::-;916:8:87;;912:175;;525:595;:::o;912:175::-;3228:4636:86;;944:22:87;;;940:36;;716:88;990:87;;3228:4636:86;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::o;8406:869:91:-;;;3228:4636:86;;8620:15:91;8578:11;8645:18;8678:7;8684:1;8678:7;;8674:241;;8406:869;8939:60;;;;;:::i;:::-;9014:8;;;9010:62;;9252:15;9259:7;3228:4636:86;9219:31:91;3228:4636:86;9130:48:91;9170:7;;;:::i;:::-;9130:48;13267:109;;;;;;13089:293;;9130:48;3228:4636:86;:::i;:::-;;9176:1:91;3228:4636:86;9232:17:91;3228:4636:86;;;;;;;;9232:17:91;;3228:4636:86;-1:-1:-1;;;;;3228:4636:86;;;;9219:12:91;;:31;:::i;:::-;3228:4636:86;;;;;;;;;9259:7:91;;:::i;:::-;3228:4636:86;;;;9252:15:91;9176:1;;9188:80;;8406:869::o;9010:62::-;8578:11;;-1:-1:-1;8578:11:91;;-1:-1:-1;8578:11:91;;;;9038:23::o;8674:241::-;8721:14;;;;;:::i;:::-;3228:4636:86;;;;;;;8939:60:91;13267:109;;8578:11;13267:109;8753:55;8759:49;13267:109;;8578:11;13267:109;;3228:4636:86;;;;;;8759:49:91;3228:4636:86;;;;8753:55:91;3228:4636:86;;;8753:55:91;13267:109;;;8828:10;8749:156;8674:241;;8749:156;8883:7;;;;;;:::i;:::-;8749:156;8674:241;;3228:4636:86;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::o;7558:604:91:-;;3228:4636:86;;7686:17:91;7682:83;;3228:4636:86;7789:27:91;3228:4636:86;7789:27:91;3228:4636:86;;7789:27:91;;;;;;:::i;:::-;7860:14;;;;;:::i;:::-;3228:4636:86;;;;;;;;;;;;;;;;7888:22:91;;;7884:77;;7975:21;-1:-1:-1;7975:84:91;;;;7558:604;7971:139;;;;8127:28;;;;:::i;7971:139::-;8082:17;;7789:27;8082:17;3228:4636:86;8075:24:91;:::o;7975:84::-;3228:4636:86;;;8009:16:91;3228:4636:86;;8009:16:91;:::i;:::-;3228:4636:86;;;8001:24:91;:57;;;;;7975:84;;;;;;;8001:57;8029:29;8038:8;;;8029:18;8038:8;8029:23;8038:8;;:::i;:::-;8029:18;;:::i;:::-;3228:4636:86;;;;;8029:29:91;;8001:57;;;;7884:77;7933:17;;;;;7789:27;7933:17;3228:4636:86;7926:24:91;:::o;7682:83::-;7726:28;;;;:::i;3326:384:29:-;-1:-1:-1;;;;;;;;;;;1847:1:29;3228:4636:86;;3526:20:29;3522:88;;1847:1;3228:4636:86;;3326:384:29:o;3522:88::-;3228:4636:86;;-1:-1:-1;;;3569:30:29;;;;;6196:308:83;;3228:4636:86;-1:-1:-1;3228:4636:86;6327:13:83;3228:4636:86;;;-1:-1:-1;3228:4636:86;11124:30:91;;;;:::i;:::-;11173;;;-1:-1:-1;11173:30:91;;;;11182:17;;-1:-1:-1;;;;;3228:4636:86;;11182:12:91;;:17;:::i;:::-;3228:4636:86;;;6327:13:83;3228:4636:86;;11173:30:91;6385::83;;;11173::91;6381:117:83;;;;6196:308;;:::o;6381:117::-;6431:56;3228:4636:86;-1:-1:-1;3228:4636:86;6327:13:83;3228:4636:86;;;-1:-1:-1;3228:4636:86;819:34:63;837:15;819:34;:::i;6431:56:83:-;6196:308;;:::o;6385:30::-;6395:20;;-1:-1:-1;6385:30:83;;;;11173::91;;;-1:-1:-1;11173:30:91;;7270:387:24;-1:-1:-1;;;;;3228:4636:86;;-1:-1:-1;3228:4636:86;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2887:71:24;3228:4636:86;;;;-1:-1:-1;3228:4636:86;;;;;;;;;;;-1:-1:-1;;;;;3228:4636:86;;;;;;;;;;-1:-1:-1;;3228:4636:86;7509:4:24;3228:4636:86;;;966:10:28;;-1:-1:-1;;;;;3228:4636:86;-1:-1:-1;7532:40:24;-1:-1:-1;;7532:40:24;7509:4;7586:11;:::o;7270:387::-;-1:-1:-1;;;;;3228:4636:86;;-1:-1:-1;3228:4636:86;;;;;;;;;1356:26:81;;-1:-1:-1;;;;;;;;;;;2887:71:24;3228:4636:86;;3901:31:24;3228:4636:86;;;;-1:-1:-1;3228:4636:86;;;;;;;;;;;-1:-1:-1;;;;;3228:4636:86;;;;;;;;;;-1:-1:-1;;3228:4636:86;7509:4:24;3228:4636:86;;;966:10:28;;-1:-1:-1;;;;;3228:4636:86;;7532:40:24;-1:-1:-1;;7532:40:24;7509:4;7586:11;:::o;7432:219::-;7628:12;;;-1:-1:-1;7628:12:24;:::o;7270:387::-;-1:-1:-1;;;;;3228:4636:86;;-1:-1:-1;3228:4636:86;;;;;;;;;810:35:83;;-1:-1:-1;;;;;;;;;;;2887:71:24;3228:4636:86;;3901:31:24;3228:4636:86;7270:387:24;-1:-1:-1;;;;;3228:4636:86;;-1:-1:-1;3228:4636:86;;;;;;;;;971:45:83;;-1:-1:-1;;;;;;;;;;;2887:71:24;3228:4636:86;;3901:31:24;3228:4636:86;7270:387:24;-1:-1:-1;3228:4636:86;;;-1:-1:-1;;;;;;;;;;;3228:4636:86;;;;;;;;-1:-1:-1;;;;;3228:4636:86;;;;;;;;;;;;3901:31:24;3228:4636:86;7892:388:24;-1:-1:-1;3228:4636:86;;;-1:-1:-1;;;;;;;;;;;3228:4636:86;;;;;;;;-1:-1:-1;;;;;3228:4636:86;;;;;;;;;;;;;;;;-1:-1:-1;3228:4636:86;;;;;;;;;;;-1:-1:-1;;;;;3228:4636:86;;;;;;;;;;-1:-1:-1;;3228:4636:86;;;966:10:28;;-1:-1:-1;;;;;3228:4636:86;;8155:40:24;-1:-1:-1;;8155:40:24;3228:4636:86;8209:11:24;:::o;10580:184:91:-;3228:4636:86;;10303:8:61;;;:63;-1:-1:-1;10303:63:61;-1:-1:-1;;;;;3228:4636:86;;10726:7:91;3228:4636:86;;10736:12:91;:17;:12;;:17;:::i;10303:63:61:-;3228:4636:86;;;;;;;;;;13267:109:91;-1:-1:-1;13267:109:91;;-1:-1:-1;13267:109:91;;;3228:4636:86;;;10303:63:61;;3228:4636:86;;;;;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;3228:4636:86;;;;;;;;:::i;5907:716:81:-;6030:34;5907:716;6030:34;;;;:::i;:::-;3228:4636:86;;-1:-1:-1;;;6080:41:81;;-1:-1:-1;;;;;3228:4636:86;;;6080:41:81;;;3228:4636:86;;;;;6080:41:81;3228:4636:86;;;6090:13:81;3228:4636:86;;6080:41:81;;;;;;;-1:-1:-1;6080:41:81;;;5907:716;6079:42;;6075:90;;6266:27;3228:4636:86;2540:111:29;6210:14:81;3228:4636:86;2540:111:29;;;:::i;:::-;3228:4636:86;;;;;;-1:-1:-1;;;;;3228:4636:86;;-1:-1:-1;3228:4636:86;;;-1:-1:-1;3228:4636:86;;6210:14:81;6266:27;:::i;:::-;6080:41;6311:15;;3228:4636:86;;;;-1:-1:-1;;;;;;3228:4636:86;-1:-1:-1;;;;;3228:4636:86;;;;;;;;;;;-1:-1:-1;;;;;3228:4636:86;;;;6337:143:81;;5907:716;-1:-1:-1;6493:28:81;3228:4636:86;-1:-1:-1;;;;;3228:4636:86;;;;;;;6489:128:81;;5907:716;:::o;6489:128::-;6551:55;;;:::i;:::-;;5907:716::o;6337:143::-;6404:65;;;:::i;:::-;;6337:143;;;6075:90;3228:4636:86;;-1:-1:-1;;;6144:10:81;;6080:41;;6144:10;6080:41;;;;;;;;;;;;;;:::i;:::-;;;;3228:4636:86;;;;;;;;;;-1:-1:-1;;;;;3228:4636:86;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;;;;3228:4636:86;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;:::i;4663:1079:83:-;;;;;3228:4636:86;;:::i;:::-;;;;4903:16:83;4899:92;;4663:1079;5105:42;;5053:95;5105:42;;;;5053:95;;;:::i;:::-;5165:570;:34;;;5218:21;;;;;;5165:570;-1:-1:-1;5158:577:83;4663:1079;:::o;5165:570::-;5273:95;5431:67;5330:37;;;;;;5273:95;;;:::i;:::-;3228:4636:86;5470:27:83;5431;:13;3228:4636:86;-1:-1:-1;3228:4636:86;;;;;;;;;5431:27:83;5470;;;;3228:4636:86;;;;;;;;;;;5431:67:83;;;;;;;:::i;:::-;;;;;;;;;5273:409;5431:67;5397:216;5431:67;-1:-1:-1;5431:67:83;;;5165:570;5562:28;5524:67;5562:28;;3228:4636:86;5562:28:83;;;5524:67;;:::i;:::-;5397:216;;:::i;:::-;5273:409;;:::i;:::-;5700:21;;4663:1079;:::o;5431:67::-;5524;5431;;;;5470:27;5431:67;5470:27;5431:67;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;4899:92;4949:31;;;;;;;;;;;;;:::i;:::-;4899:92;;;;;5748:442;;2776:48;:39;;3228:4636:86;;;;;;;;;;2776:48:83;5946:237;:32;;;:237;;;-1:-1:-1;5748:442:83;:::o;5946:237::-;3358:44;:53;:34;;;3228:4636:86;;3358:22:83;3228:4636:86;;;;;;;3358:53:83;-1:-1:-1;3228:4636:86;;;-1:-1:-1;;;6086:27:83;;3228:4636:86;6086:27:83;;3228:4636:86;;2776:27:83;;3228:4636:86;;-1:-1:-1;;;;;3228:4636:86;6086:27:83;;;;;;6009:174;6086:27;6077:63;6086:27;-1:-1:-1;6086:27:83;;;5946:237;2233:25;;:34;:25;3228:4636:86;;2233:13:83;3228:4636:86;;;;;;;6086:27:83;2233:34;6086:27;;;;2233:25;6086:27;;;;;;;;;;;:::i;:::-;;;;;;14291:213:59;3228:4636:86;14369:24:59;;;;14365:103;;3228:4636:86;14291:213:59;:::o;14365:103::-;3228:4636:86;;;;14416:41:59;;;;;;14447:2;14416:41;;;3228:4636:86;;;;;14416:41:59;10552:388:61;3228:4636:86;;10728:8:61;;;10752:20;;10690:17;10752:20;10690:17;10752:20;10690:17;10752:20;:::o;10724:210::-;3228:4636:86;;;;;;;;;;;13267:109:91;10690:17:61;13267:109:91;;10690:17:61;13267:109:91;;;3228:4636:86;:::i;:::-;;;;;;;13267:109:91;3228:4636:86;;;;;10911:11:61;;3228:4636:86;;10886:37:61;10870:1;10886:37;;;:::o;8587:1642:58:-;8658:6;;8654:45;;9401:7;10201:10;10142:26;10093;10044;9995;9946;9897;9848;3228:4636:86;10189:23:58;9401:7;8663:1;3228:4636:86;;;;10826:16:58;10822:99;;8587:1642;3228:4636:86;;;;10938:15:58;10934:96;;8587:1642;3228:4636:86;;;;11047:15:58;11043:96;;8587:1642;3228:4636:86;;;;11156:15:58;11152:96;;8587:1642;3228:4636:86;;;;11265:14:58;11261:93;;8587:1642;3228:4636:86;;;;11371:14:58;11367:93;;8587:1642;3228:4636:86;;;;11477:14:58;11473:93;;8587:1642;3228:4636:86;;;11579:64:58;;8587:1642;3228:4636:86;;;9858:10:58;;;;:::i;:::-;3228:4636:86;;;;;9848:26:58;9907:10;;;;:::i;9897:26::-;9956:10;;;;:::i;9946:26::-;10005:10;;;;:::i;9995:26::-;10054:10;;;;:::i;10044:26::-;10103:10;;;;:::i;10093:26::-;10152:10;;;;:::i;10142:26::-;10201:10;;;:::i;11579:64::-;3228:4636:86;;11579:64:58;;11473:93;3228:4636:86;11511:11:58;;3228:4636:86;;11473:93:58;;;;11367;3228:4636:86;11405:11:58;;3228:4636:86;;11367:93:58;;;;11261;3228:4636:86;11299:11:58;;3228:4636:86;;11261:93:58;;;;11152:96;3228:4636:86;11191:12:58;;3228:4636:86;;11152:96:58;;;;11043;3228:4636:86;11082:12:58;;3228:4636:86;;11043:96:58;;;;10934;3228:4636:86;10973:12:58;;3228:4636:86;;10934:96:58;;;;10822:99;10862:13;;;3228:4636:86;10822:99:58;;;;12497:447:91;;;12694:10;;;;;;12926:11;;;12497:447;:::o;12687:230::-;2900:5:58;;;;;;3228:4636:86;;2910:5:58;;;3228:4636:86;;;;;;;;;13267:109:91;-1:-1:-1;13267:109:91;3228:4636:86;13267:109:91;;;-1:-1:-1;13267:109:91;;3228:4636:86;;;;;-1:-1:-1;12771:136:91;3228:4636:86;;;12830:10:91;;12771:136;;12687:230;;;;12771:136;3228:4636:86;;;;;;;;;;;12771:136:91;;;6999:207;;3228:4636:86;;9594:15:61;-1:-1:-1;9619:18:61;9652:7;9658:1;9652:7;;9648:234;;6999:207:91;9906:53:61;;;;;:::i;:::-;9977:8;;;:63;-1:-1:-1;9977:63:61;;-1:-1:-1;;;;;3228:4636:86;;7168:7:91;3228:4636:86;;;7178:12:91;;:17;:12;;:17;:::i;9977:63:61:-;9992:41;10025:7;9992:48;10025:7;;:::i;:::-;9992:41;13267:109:91;;;;;;13089:293;;9992:41:61;3228:4636:86;;;;;9992:48:61;9977:63;;;9648:234;9695:14;;;;;:::i;:::-;3228:4636:86;;;;;;;9906:53:61;13267:109:91;;-1:-1:-1;13267:109:91;3228:4636:86;13267:109:91;;;-1:-1:-1;13267:109:91;;3228:4636:86;;;;;9727:48:61;9723:149;3228:4636:86;;;9795:10:61;9723:149;9648:234;;9723:149;9850:7;;;;;;:::i;:::-;9723:149;9648:234;;3228:4636:86;;;;;;;:::i;:::-;-1:-1:-1;3228:4636:86;;;;;;;:::o;11486:272:91:-;;3228:4636:86;11308:22:61;11718:31:91;11486:272;3228:4636:86;;:::i;:::-;;;;:::i;:::-;;11308:22:61;;:::i;:::-;3228:4636:86;;:::i;:::-;;11718:12:91;3228:4636:86;;;;;11731:17:91;3228:4636:86;;;;;11731:17:91;;3228:4636:86;;11718:12:91;;:31;:::i;:::-;3228:4636:86;;;;;;;;;:::i;:::-;;;;;;11731:17:91;11672:79;;3228:4636:86;11486:272:91;:::o;6893:76:26:-;;;:::i;:::-;;;:::i;:::-;1805:1:29;-1:-1:-1;;;;;;;;;;;3228:4636:86;6893:76:26:o;3228:4636:86:-;;;;;;;:::i;:::-;-1:-1:-1;3228:4636:86;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;-1:-1:-1;;;;;3228:4636:86;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3228:4636:86;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;6510:1274:83:-;6658:30;6510:1274;3228:4636:86;;:::i;:::-;;6658:30:83;3228:4636:86;;;6658:30:83;;;;;;:::i;:::-;6716:17;;3228:4636:86;6716:17:83;;3228:4636:86;-1:-1:-1;;;;;3228:4636:86;6716:54:83;;:179;;6510:1274;6699:259;;6973:9;6658:30;6988:33;;;6716:17;7030:3;6988:33;;3228:4636:86;;6984:44:83;;;;;7053:36;;;:50;:36;;:::i;:::-;3228:4636:86;-1:-1:-1;;;;;3228:4636:86;;;7053:50:83;;7049:119;;7186:73;7187:72;7222:36;;:33;;;:36;:::i;:::-;7187:72;:::i;:::-;7186:73;;3228:4636:86;7186:73:83;7182:140;;3228:4636:86;;6973:9:83;;7182:140;3228:4636:86;;-1:-1:-1;;;7286:21:83;;;;;7049:119;3228:4636:86;;-1:-1:-1;;;7130:23:83;;;;;6984:44;-1:-1:-1;7362:42:83;;-1:-1:-1;;7362:42:83;;;;6716:17;7413:3;7362:42;;3228:4636:86;;7358:53:83;;;;;7436:45;;;:59;:45;;:::i;:59::-;;7432:128;;7578:92;7579:91;7624:45;;:42;;;:45;:::i;:::-;7579:91;:::i;7578:92::-;7574:159;;3228:4636:86;;7347:9:83;;7574:159;3228:4636:86;;-1:-1:-1;;;7697:21:83;;;;;7432:128;3228:4636:86;;-1:-1:-1;;;7522:23:83;;;;;7358:53;;;;;;7760:17;6510:1274;:::o;6699:259::-;3228:4636:86;;-1:-1:-1;;;6927:20:83;;;;;6716:179;6791:33;6658:30;6791:33;;;3228:4636:86;6791:45:83;:103;6716:179;6791:103;6840:42;;;;;3228:4636:86;6840:54:83;6716:179;;2557:104:58;;2641:5;;;;;;:13;2557:104;:::o;2641:13::-;;;2557:104;:::o;3803:4116::-;;;3228:4636:86;;;;-1:-1:-1;;3803:4116:58;;4383:131;;;;;;;;;;;;4595:10;;4591:368;;5065:20;;;;5061:88;;5435:300;;;3228:4636:86;-1:-1:-1;3228:4636:86;5954:31:58;;5999:371;;;6813:1;3228:4636:86;;6794:1:58;3228:4636:86;6793:21:58;3228:4636:86;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5999:371:58;;;;-1:-1:-1;5999:371:58;;;5435:300;;;;;;3228:4636:86;5435:300:58;;5999:371;6436:21;3228:4636:86;3803:4116:58;:::o;5061:88::-;3228:4636:86;;-1:-1:-1;;;5112:22:58;;;;;4591:368;4925:19;;;;;;;:::i;3228:4636:86:-;;;-1:-1:-1;;;3228:4636:86;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;3228:4636:86;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;11513:870:61;3228:4636:86;;11513:870:61;;;3228:4636:86;11513:870:61;11672:7;;;;3228:4636:86;11775:28:61;11795:7;;;:::i;3228:4636:86:-;;;;;;;;;;;;;;;;11877:15:61;-1:-1:-1;11873:91:61;;3228:4636:86;;12233:11:61;3228:4636:86;;;12027:16:61;3228:4636:86;;;;;;;12027:16:61;;;;12083:7;12063:43;12083:7;;12063:28;12083:7;;:::i;:::-;12063:28;13267:109:91;;;;;;13089:293;;12063:28:61;3228:4636:86;;;;;;;;;;;;;;;;;12063:43:61;12233:11;3228:4636:86;-1:-1:-1;;;;;3228:4636:86;;;12023:189:61;3228:4636:86;;;12145:52:61;3228:4636:86;12155:41:61;3228:4636:86;;:::i;:::-;;;;;;;;12155:41:61;-1:-1:-1;;;;;3228:4636:86;;12155:41:61;;;3228:4636:86;12145:52:61;:::i;:::-;12023:189;;11873:91;3228:4636:86;;-1:-1:-1;;;11919:30:61;;;;;11668:709;12283:52;3228:4636:86;;12293:41:61;3228:4636:86;;:::i;12293:41:61:-;-1:-1:-1;;;;;3228:4636:86;;12293:41:61;;;3228:4636:86;12145:52:61;:::i;12283:::-;11678:1;12349:17;;:::o;7084:141:26:-;3228:4636:86;-1:-1:-1;;;;;;;;;;;3228:4636:86;;;;7150:18:26;7146:73;;7084:141::o;7146:73::-;3228:4636:86;;-1:-1:-1;;;7191:17:26;;;;","linkReferences":{},"immutableReferences":{"64520":[{"start":2537,"length":32}],"64523":[{"start":4780,"length":32}],"65474":[{"start":2123,"length":32},{"start":4837,"length":32}],"65477":[{"start":1298,"length":32},{"start":10629,"length":32}],"65480":[{"start":1366,"length":32},{"start":7731,"length":32},{"start":7995,"length":32}],"65483":[{"start":1993,"length":32},{"start":7578,"length":32},{"start":8121,"length":32}],"67998":[{"start":3733,"length":32},{"start":6477,"length":32}],"68000":[{"start":3479,"length":32},{"start":6638,"length":32}],"68002":[{"start":4169,"length":32}],"69080":[{"start":1440,"length":32},{"start":4055,"length":32},{"start":5673,"length":32}]}},"methodIdentifiers":{"BASE_DELEGATOR_HINTS()":"79d89614","DEFAULT_ADMIN_ROLE()":"a217fddf","FACTORY()":"2dd31000","HOOK_GAS_LIMIT()":"ff54740f","HOOK_RESERVE()":"557cab44","HOOK_SET_ROLE()":"6679191e","NETWORK_LIMIT_SET_ROLE()":"7d24bb27","NETWORK_REGISTRY()":"c0cd7c3e","OPERATOR_NETWORK_OPT_IN_SERVICE()":"1a80e500","OPERATOR_NETWORK_SHARES_SET_ROLE()":"e78eb6ae","OPERATOR_VAULT_OPT_IN_SERVICE()":"128e5d82","OPT_IN_SERVICE_HINTS()":"9b656b22","TYPE()":"bb24fe8a","VAULT_FACTORY()":"103f2907","VAULT_HINTS()":"45e78fcb","VERSION()":"ffa1ad74","getRoleAdmin(bytes32)":"248a9ca3","grantRole(bytes32,address)":"2f2ff15d","hasRole(bytes32,address)":"91d14854","hook()":"7f5a7c7b","initialize(bytes)":"439fab91","maxNetworkLimit(bytes32)":"d15b740e","networkLimit(bytes32)":"3eb22c0f","networkLimitAt(bytes32,uint48,bytes)":"5d32a1c9","networkLimitHint(address,bytes32,uint48)":"da749d2b","networkLimitHintInternal(bytes32,uint48)":"197aa7ea","onSlash(bytes32,address,uint256,uint48,bytes)":"e49561ee","operatorNetworkShares(bytes32,address)":"42c53e33","operatorNetworkSharesAt(bytes32,address,uint48,bytes)":"1a7a7044","operatorNetworkSharesHint(address,bytes32,address,uint48)":"07f9d5fd","operatorNetworkSharesHintInternal(bytes32,address,uint48)":"987b3ee8","renounceRole(bytes32,address)":"36568abe","revokeRole(bytes32,address)":"d547741f","setHook(address)":"3dfd3873","setMaxNetworkLimit(uint96,uint256)":"23f752d5","setNetworkLimit(bytes32,uint256)":"02145348","setOperatorNetworkShares(bytes32,address,uint256)":"a33bc287","stake(bytes32,address)":"fd4d447c","stakeAt(bytes32,address,uint48,bytes)":"e02f6937","stakeHints(address,bytes32,address,uint48)":"25dc9708","staticDelegateCall(address,bytes)":"9f86fd85","supportsInterface(bytes4)":"01ffc9a7","totalOperatorNetworkShares(bytes32)":"c43dc03f","totalOperatorNetworkSharesAt(bytes32,uint48,bytes)":"8b3f10b0","totalOperatorNetworkSharesHint(address,bytes32,uint48)":"b549ef1f","totalOperatorNetworkSharesHintInternal(bytes32,uint48)":"ed4d89e5","vault()":"fbfa77cf"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"baseDelegatorHints\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"vaultHints\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"optInServiceHints\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"AccessControlBadConfirmation\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"neededRole\",\"type\":\"bytes32\"}],\"name\":\"AccessControlUnauthorizedAccount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AlreadySet\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CheckpointUnorderedInsertion\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"DuplicateRoleHolder\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ExceedsMaxNetworkLimit\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ExternalCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientHookGas\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MathOverflowedMulDiv\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MissingRoleHolders\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotNetwork\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotSlasher\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotVault\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ReentrancyGuardReentrantCall\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"bits\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"SafeCastOverflowedUintDowncast\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ZeroAddressRoleHolder\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint48\",\"name\":\"captureTimestamp\",\"type\":\"uint48\"}],\"name\":\"OnSlash\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"previousAdminRole\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"newAdminRole\",\"type\":\"bytes32\"}],\"name\":\"RoleAdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleRevoked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"hook\",\"type\":\"address\"}],\"name\":\"SetHook\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"SetMaxNetworkLimit\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"SetNetworkLimit\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"}],\"name\":\"SetOperatorNetworkShares\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"BASE_DELEGATOR_HINTS\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"DEFAULT_ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"FACTORY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"HOOK_GAS_LIMIT\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"HOOK_RESERVE\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"HOOK_SET_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"NETWORK_LIMIT_SET_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"NETWORK_REGISTRY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"OPERATOR_NETWORK_OPT_IN_SERVICE\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"OPERATOR_NETWORK_SHARES_SET_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"OPERATOR_VAULT_OPT_IN_SERVICE\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"OPT_IN_SERVICE_HINTS\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"TYPE\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"VAULT_FACTORY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"VAULT_HINTS\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"VERSION\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleAdmin\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"grantRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"hook\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"}],\"name\":\"maxNetworkLimit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"}],\"name\":\"networkLimit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hint\",\"type\":\"bytes\"}],\"name\":\"networkLimitAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"}],\"name\":\"networkLimitHint\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"}],\"name\":\"networkLimitHintInternal\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"exists\",\"type\":\"bool\"},{\"internalType\":\"uint32\",\"name\":\"hint\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint48\",\"name\":\"captureTimestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"onSlash\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"operatorNetworkShares\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hint\",\"type\":\"bytes\"}],\"name\":\"operatorNetworkSharesAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"}],\"name\":\"operatorNetworkSharesHint\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"}],\"name\":\"operatorNetworkSharesHintInternal\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"exists\",\"type\":\"bool\"},{\"internalType\":\"uint32\",\"name\":\"hint\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"callerConfirmation\",\"type\":\"address\"}],\"name\":\"renounceRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"hook_\",\"type\":\"address\"}],\"name\":\"setHook\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint96\",\"name\":\"identifier\",\"type\":\"uint96\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"setMaxNetworkLimit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"setNetworkLimit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"}],\"name\":\"setOperatorNetworkShares\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"stake\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hints\",\"type\":\"bytes\"}],\"name\":\"stakeAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"}],\"name\":\"stakeHints\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"staticDelegateCall\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"}],\"name\":\"totalOperatorNetworkShares\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hint\",\"type\":\"bytes\"}],\"name\":\"totalOperatorNetworkSharesAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"}],\"name\":\"totalOperatorNetworkSharesHint\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"}],\"name\":\"totalOperatorNetworkSharesHintInternal\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"exists\",\"type\":\"bool\"},{\"internalType\":\"uint32\",\"name\":\"hint\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"vault\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"AccessControlBadConfirmation()\":[{\"details\":\"The caller of a function is not the expected one. NOTE: Don't confuse with {AccessControlUnauthorizedAccount}.\"}],\"AccessControlUnauthorizedAccount(address,bytes32)\":[{\"details\":\"The `account` is missing a role.\"}],\"CheckpointUnorderedInsertion()\":[{\"details\":\"A value was attempted to be inserted on a past checkpoint.\"}],\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"MathOverflowedMulDiv()\":[{\"details\":\"Muldiv operation overflow.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"ReentrancyGuardReentrantCall()\":[{\"details\":\"Unauthorized reentrant call.\"}],\"SafeCastOverflowedUintDowncast(uint8,uint256)\":[{\"details\":\"Value doesn't fit in an uint of `bits` size.\"}]},\"events\":{\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"OnSlash(bytes32,address,uint256,uint48)\":{\"params\":{\"amount\":\"amount of the collateral to be slashed\",\"captureTimestamp\":\"time point when the stake was captured\",\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"}},\"RoleAdminChanged(bytes32,bytes32,bytes32)\":{\"details\":\"Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole` `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite {RoleAdminChanged} not being emitted signaling this.\"},\"RoleGranted(bytes32,address,address)\":{\"details\":\"Emitted when `account` is granted `role`. `sender` is the account that originated the contract call, an admin role bearer except when using {AccessControl-_setupRole}.\"},\"RoleRevoked(bytes32,address,address)\":{\"details\":\"Emitted when `account` is revoked `role`. `sender` is the account that originated the contract call: - if using `revokeRole`, it is the admin role bearer - if using `renounceRole`, it is the role bearer (i.e. `account`)\"},\"SetHook(address)\":{\"params\":{\"hook\":\"address of the hook\"}},\"SetMaxNetworkLimit(bytes32,uint256)\":{\"params\":{\"amount\":\"new maximum subnetwork's limit (how much stake the subnetwork is ready to get)\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"}},\"SetNetworkLimit(bytes32,uint256)\":{\"params\":{\"amount\":\"new subnetwork's limit (how much stake the vault curator is ready to give to the subnetwork)\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"}},\"SetOperatorNetworkShares(bytes32,address,uint256)\":{\"params\":{\"operator\":\"address of the operator\",\"shares\":\"new operator's shares inside the subnetwork (what percentage, which is equal to the shares divided by the total operators' shares, of the subnetwork's stake the vault curator is ready to give to the operator)\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"}}},\"kind\":\"dev\",\"methods\":{\"VERSION()\":{\"details\":\"Must return 1 for this one.\",\"returns\":{\"_0\":\"version of the delegator\"}},\"getRoleAdmin(bytes32)\":{\"details\":\"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}.\"},\"grantRole(bytes32,address)\":{\"details\":\"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event.\"},\"hasRole(bytes32,address)\":{\"details\":\"Returns `true` if `account` has been granted `role`.\"},\"initialize(bytes)\":{\"params\":{\"data\":\"some data to use\"}},\"networkLimit(bytes32)\":{\"params\":{\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"},\"returns\":{\"_0\":\"limit of the subnetwork\"}},\"networkLimitAt(bytes32,uint48,bytes)\":{\"params\":{\"hint\":\"hint for checkpoint index\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\",\"timestamp\":\"time point to get the subnetwork limit at\"},\"returns\":{\"_0\":\"limit of the subnetwork at the given timestamp\"}},\"onSlash(bytes32,address,uint256,uint48,bytes)\":{\"details\":\"Only the vault's slasher can call this function.\",\"params\":{\"amount\":\"amount of the collateral slashed\",\"captureTimestamp\":\"time point when the stake was captured\",\"data\":\"some additional data\",\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"}},\"operatorNetworkShares(bytes32,address)\":{\"params\":{\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"},\"returns\":{\"_0\":\"shares of the operator for the subnetwork\"}},\"operatorNetworkSharesAt(bytes32,address,uint48,bytes)\":{\"params\":{\"hint\":\"hint for checkpoint index\",\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\",\"timestamp\":\"time point to get the operator's shares at\"},\"returns\":{\"_0\":\"shares of the operator for the subnetwork at the given timestamp\"}},\"renounceRole(bytes32,address)\":{\"details\":\"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `callerConfirmation`. May emit a {RoleRevoked} event.\"},\"revokeRole(bytes32,address)\":{\"details\":\"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event.\"},\"setHook(address)\":{\"details\":\"Only a HOOK_SET_ROLE holder can call this function. The hook can have arbitrary logic under certain functions, however, it doesn't affect the stake guarantees.\",\"params\":{\"hook\":\"address of the hook\"}},\"setMaxNetworkLimit(uint96,uint256)\":{\"details\":\"Only a network can call this function.\",\"params\":{\"amount\":\"new maximum subnetwork's limit\"}},\"setNetworkLimit(bytes32,uint256)\":{\"details\":\"Only a NETWORK_LIMIT_SET_ROLE holder can call this function.\",\"params\":{\"amount\":\"new limit of the subnetwork\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"}},\"setOperatorNetworkShares(bytes32,address,uint256)\":{\"details\":\"Only an OPERATOR_NETWORK_SHARES_SET_ROLE holder can call this function.\",\"params\":{\"operator\":\"address of the operator\",\"shares\":\"new shares of the operator for the subnetwork\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"}},\"stake(bytes32,address)\":{\"details\":\"Warning: this function is not safe to use for stake capturing, as it can change by the end of the block.\",\"params\":{\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"},\"returns\":{\"_0\":\"slashable stake until the end of the next epoch\"}},\"stakeAt(bytes32,address,uint48,bytes)\":{\"details\":\"Warning: it is not safe to use timestamp >= current one for the stake capturing, as it can change later.\",\"params\":{\"hints\":\"hints for the checkpoints' indexes\",\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\",\"timestamp\":\"time point to capture the stake at\"},\"returns\":{\"_0\":\"slashable stake at the given timestamp until the end of the consequent epoch\"}},\"staticDelegateCall(address,bytes)\":{\"details\":\"It allows to use this contract's storage on-chain.\",\"params\":{\"data\":\"data to make a delegatecall with\",\"target\":\"address of the contract to make a delegatecall to\"}},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"},\"totalOperatorNetworkShares(bytes32)\":{\"params\":{\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"},\"returns\":{\"_0\":\"total shares of the operators for the subnetwork\"}},\"totalOperatorNetworkSharesAt(bytes32,uint48,bytes)\":{\"params\":{\"hint\":\"hint for checkpoint index\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\",\"timestamp\":\"time point to get the total operators' shares at\"},\"returns\":{\"_0\":\"total shares of the operators for the subnetwork at the given timestamp\"}}},\"version\":1},\"userdoc\":{\"events\":{\"OnSlash(bytes32,address,uint256,uint48)\":{\"notice\":\"Emitted when a slash happens.\"},\"SetHook(address)\":{\"notice\":\"Emitted when a hook is set.\"},\"SetMaxNetworkLimit(bytes32,uint256)\":{\"notice\":\"Emitted when a subnetwork's maximum limit is set.\"},\"SetNetworkLimit(bytes32,uint256)\":{\"notice\":\"Emitted when a subnetwork's limit is set.\"},\"SetOperatorNetworkShares(bytes32,address,uint256)\":{\"notice\":\"Emitted when an operator's shares inside a subnetwork are set.\"}},\"kind\":\"user\",\"methods\":{\"FACTORY()\":{\"notice\":\"Get the factory's address.\"},\"HOOK_GAS_LIMIT()\":{\"notice\":\"Get a gas limit for the hook.\"},\"HOOK_RESERVE()\":{\"notice\":\"Get a reserve gas between the gas limit check and the hook's execution.\"},\"HOOK_SET_ROLE()\":{\"notice\":\"Get a hook setter's role.\"},\"NETWORK_LIMIT_SET_ROLE()\":{\"notice\":\"Get a subnetwork limit setter's role.\"},\"NETWORK_REGISTRY()\":{\"notice\":\"Get the network registry's address.\"},\"OPERATOR_NETWORK_OPT_IN_SERVICE()\":{\"notice\":\"Get the operator-network opt-in service's address.\"},\"OPERATOR_NETWORK_SHARES_SET_ROLE()\":{\"notice\":\"Get an operator-subnetwork shares setter's role.\"},\"OPERATOR_VAULT_OPT_IN_SERVICE()\":{\"notice\":\"Get the operator-vault opt-in service's address.\"},\"TYPE()\":{\"notice\":\"Get the entity's type.\"},\"VAULT_FACTORY()\":{\"notice\":\"Get the vault factory's address.\"},\"VERSION()\":{\"notice\":\"Get a version of the delegator (different versions mean different interfaces).\"},\"hook()\":{\"notice\":\"Get the hook's address.\"},\"initialize(bytes)\":{\"notice\":\"Initialize this entity contract by using a given data.\"},\"maxNetworkLimit(bytes32)\":{\"notice\":\"Get a particular subnetwork's maximum limit (meaning the subnetwork is not ready to get more as a stake).\"},\"networkLimit(bytes32)\":{\"notice\":\"Get a subnetwork's limit (how much stake the vault curator is ready to give to the subnetwork).\"},\"networkLimitAt(bytes32,uint48,bytes)\":{\"notice\":\"Get a subnetwork's limit at a given timestamp using a hint (how much stake the vault curator is ready to give to the subnetwork).\"},\"onSlash(bytes32,address,uint256,uint48,bytes)\":{\"notice\":\"Called when a slash happens.\"},\"operatorNetworkShares(bytes32,address)\":{\"notice\":\"Get an operator's shares for a subnetwork (what percentage, which is equal to the shares divided by the total operators' shares, of the subnetwork's stake the vault curator is ready to give to the operator).\"},\"operatorNetworkSharesAt(bytes32,address,uint48,bytes)\":{\"notice\":\"Get an operator's shares for a subnetwork at a given timestamp using a hint (what percentage, which is equal to the shares divided by the total operators' shares, of the subnetwork's stake the vault curator is ready to give to the operator).\"},\"setHook(address)\":{\"notice\":\"Set a new hook.\"},\"setMaxNetworkLimit(uint96,uint256)\":{\"notice\":\"Set a maximum limit for a subnetwork (how much stake the subnetwork is ready to get). identifier identifier of the subnetwork\"},\"setNetworkLimit(bytes32,uint256)\":{\"notice\":\"Set a subnetwork's limit (how much stake the vault curator is ready to give to the subnetwork).\"},\"setOperatorNetworkShares(bytes32,address,uint256)\":{\"notice\":\"Set an operator's shares for a subnetwork (what percentage, which is equal to the shares divided by the total operators' shares, of the subnetwork's stake the vault curator is ready to give to the operator).\"},\"stake(bytes32,address)\":{\"notice\":\"Get a stake that a given subnetwork will be able to slash for a certain operator until the end of the next epoch (if no cross-slashing and no slashings by the subnetwork).\"},\"stakeAt(bytes32,address,uint48,bytes)\":{\"notice\":\"Get a stake that a given subnetwork could be able to slash for a certain operator at a given timestamp until the end of the consequent epoch using hints (if no cross-slashing and no slashings by the subnetwork).\"},\"staticDelegateCall(address,bytes)\":{\"notice\":\"Make a delegatecall from this contract to a given target contract with a particular data (always reverts with a return data).\"},\"totalOperatorNetworkShares(bytes32)\":{\"notice\":\"Get a sum of operators' shares for a subnetwork.\"},\"totalOperatorNetworkSharesAt(bytes32,uint48,bytes)\":{\"notice\":\"Get a sum of operators' shares for a subnetwork at a given timestamp using a hint.\"},\"vault()\":{\"notice\":\"Get the vault's address.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/contracts/hints/DelegatorHints.sol\":\"NetworkRestakeDelegatorHints\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol\":{\"keccak256\":\"0x6662ec4e5cefca03eeadd073e9469df8d2944bb2ee8ec8f7622c2c46aab5f225\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4d8544c6f8daa4d1bc215c6a72fe0acdb748664a105b0e5efc19295667521d45\",\"dweb:/ipfs/QmdGWqdnXT8S3RgCR6aV8XHZrsybieMQLLnug1NtpSjEXN\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0xc163fcf9bb10138631a9ba5564df1fa25db9adff73bd9ee868a8ae1858fe093a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9706d43a0124053d9880f6e31a59f31bc0a6a3dc1acd66ce0a16e1111658c5f6\",\"dweb:/ipfs/QmUFmfowzkRwGtDu36cXV9SPTBHJ3n7dG9xQiK5B28jTf2\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609\",\"dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9\",\"dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardUpgradeable.sol\":{\"keccak256\":\"0xb44e086e941292cdc7f440de51478493894ef0b1aeccb0c4047445919f667f74\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://942dad22fbdc1669f025540ba63aa3ccfad5f8458fc5d4525b31ebf272e7af45\",\"dweb:/ipfs/Qmdo4X2M82aM3AMoW2kf2jhYkSCyC4T1pHNd6obdsDFnAB\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol\":{\"keccak256\":\"0xdaba3f7c42c55b2896353f32bd27d4d5f8bae741b3b05d4c53f67abc4dc47ce8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1fa2e61141c602510bcd2cd936ed9561922ac8772a9b9c9a9db091a74e354a45\",\"dweb:/ipfs/QmcHQDDoEBwJmwUbzoVkytvJsBx3KVHYFFnDkvRGWh9Wmh\"]},\"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0xb6b36edd6a2999fd243ff226d6cbf84bd71af2432bbd0dfe19392996a1d9cb41\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1fd2f35495652e57e3f99bc6c510bc5f7dd398a176ea2e72d8ed730aebc6ca26\",\"dweb:/ipfs/QmTQV6X4gkikTib49cho5iDX3JvSQbdsoEChoDwrk3CbbH\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC1271.sol\":{\"keccak256\":\"0x85a45f3f10014a0f8be41157a32b6a5f905753ea64a4b64e29fc12b7deeecf39\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c3c74009ce36136b36c77c23935b8e4a7b4f253be2da2be4fb4a916b1ce43743\",\"dweb:/ipfs/QmcH36v3iN7SJJuF73AunLR2LtNxhVJ1wm63ph4dPZ4pcL\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC5267.sol\":{\"keccak256\":\"0x92aa1df62dc3d33f1656d63bede0923e0df0b706ad4137c8b10b0a8fe549fd92\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c5c0f29195ad64cbe556da8e257dac8f05f78c53f90323c0d2accf8e6922d33a\",\"dweb:/ipfs/QmQ61TED8uaCZwcbh8KkgRSsCav7x7HbcGHwHts3U4DmUP\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c\",\"dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0x6008dabfe393240d73d7dd7688033f72740d570aa422254d29a7dce8568f3aff\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f5196ec75139918c6c7bb4251b36395e668f1fa6d206beba7e7520e74913940d\",\"dweb:/ipfs/QmSyqjksXxmm2mCG6qRd1yuwLykypkSVBbnBnGqJRcuJMi\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x37bb49513c49c87c4642a891b13b63571bc87013dde806617aa1efb54605f386\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b3036b3a83b7c48f96641f2a9002b9f2dcb6a5958dd670894ada21ae8229b3d0\",\"dweb:/ipfs/QmUNfSBdoVtjhETaUJCYcaC7pTMgbhht926tJ2uXJbiVd3\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0xaf28a975a78550e45f65e559a3ad6a5ad43b9b8a37366999abd1b7084eb70721\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b7bd24e224f67f65bfadf85dc2929fa965456bb2415478bd0125471b5ce35245\",\"dweb:/ipfs/QmRaydGr8BTHs1kvaZfsNU69pKzUAGFrvABn1KiRSbE51y\"]},\"lib/openzeppelin-contracts/contracts/utils/ShortStrings.sol\":{\"keccak256\":\"0x18a7171df639a934592915a520ecb97c5bbc9675a1105607aac8a94e72bf62c6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7478e1f13da69a2867ccd883001d836b75620362e743f196376d63ed0c422a1c\",\"dweb:/ipfs/QmWywcQ9TNfwtoqAxbn25d8C5VrV12PrPS9UjtGe6pL2BA\"]},\"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0x32ba59b4b7299237c8ba56319110989d7978a039faf754793064e967e5894418\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1ae50c8b562427df610cc4540c9bf104acca7ef8e2dcae567ae7e52272281e9c\",\"dweb:/ipfs/QmTHiadFCSJUPpRjNegc5SahmeU8bAoY8i9Aq6tVscbcKR\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0x55f102ea785d8399c0e58d1108e2d289506dde18abc6db1b7f68c1f9f9bc5792\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e52e0a7765c943ef14e5bcf11e46e6139fa044be564881378349236bf2e3453\",\"dweb:/ipfs/QmZEeeXoFPW47amyP35gfzomF9DixqqTEPwzBakv6cZw6i\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0xeed0a08b0b091f528356cbc7245891a4c748682d4f6a18055e8e6ca77d12a6cf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba80ba06c8e6be852847e4c5f4492cef801feb6558ae09ed705ff2e04ea8b13c\",\"dweb:/ipfs/QmXRJDv3xHLVQCVXg1ZvR35QS9sij5y9NDWYzMfUfAdTHF\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/EIP712.sol\":{\"keccak256\":\"0x999f705a027ed6dc2d4e0df2cc4a509852c6bfd11de1c8161bf88832d0503fd0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0798def67258d9a3cc20b2b4da7ebf351a5cefe0abfdd665d2d81f8e32f89b21\",\"dweb:/ipfs/QmPEvJosnPfzHNjKvCv2D3891mA2Ww8eUwkqrxBjuYdHCt\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol\":{\"keccak256\":\"0xba333517a3add42cd35fe877656fc3dfcc9de53baa4f3aabbd6d12a92e4ea435\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2ceacff44c0fdc81e48e0e0b1db87a2076d3c1fb497341de077bf1da9f6b406c\",\"dweb:/ipfs/QmRUo1muMRAewxrKQ7TkXUtknyRoR57AyEkoPpiuZQ8FzX\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/SignatureChecker.sol\":{\"keccak256\":\"0x6b11eb41a228cca35d4b662b4df69fcd75192851365102690f57b2ac01e83fe6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ab006a2983ed350d2af21ddcdd835dcae3b8340086cc4d088460da5abd041f69\",\"dweb:/ipfs/QmbEacDhkJZiGrgzLjB4pNtE8Z1uudjDw1DvcDUTVQFsLG\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875\",\"dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0xe19a4d5f31d2861e7344e8e535e2feafb913d806d3e2b5fe7782741a2a7094fe\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4aed79c0fa6f0546ed02f2f683e8f77f0fd2ed7eb34d8bbf3d373c9a6d95b13c\",\"dweb:/ipfs/QmWqVz6UAVqmnWU5pqYPt1o6iDEZyPaBraAA3rKfTTSfYj\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x5f7e4076e175393767754387c962926577f1660dd9b810187b9002407656be72\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7d533a1c97cd43a57cd9c465f7ee8dd0e39ae93a8fb8ff8e5303a356b081cdcc\",\"dweb:/ipfs/QmVBEei6aTnvYNZp2CHYVNKyZS4q1KkjANfY39WVXZXVoT\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/Checkpoints.sol\":{\"keccak256\":\"0xbdc5e074d7dd6678f67e92b1a51a20226801a407b0e1af3da367c5d1ff4519ad\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a36cca6b22fff3db16fc789ff6c60eea71d4b156065d4d0c83a0bc5e91a77a8b\",\"dweb:/ipfs/QmYN3exd5AemxjBrN8XMB1p5LbbE16uC3sjbYjwi8AjcGR\"]},\"lib/openzeppelin-contracts/contracts/utils/types/Time.sol\":{\"keccak256\":\"0xc7755af115020049e4140f224f9ee88d7e1799ffb0646f37bf0df24bf6213f58\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7f09bf94d5274334ec021f61a04659db303f31e60460e14b709c9bf187740111\",\"dweb:/ipfs/QmNvgomZYUwFAt4cZbPWAiTeSZQreGehY9BK5xyVJsUttb\"]},\"src/contracts/common/Entity.sol\":{\"keccak256\":\"0x3d61a932995b8443381f3950542d388223a2c26dd5d29a3274dea3baa7388bd7\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://7cdf5f03ca72fd263fd32ff59c8d88ddca911ae83896a287d10772c1bbe9b138\",\"dweb:/ipfs/QmbP84r5BWT1Rn9AYTntWSf3xUMTTCohTZJFhbBhDXFoHa\"]},\"src/contracts/common/MigratableEntity.sol\":{\"keccak256\":\"0x2d736f4dacd5d7e7697503bc426c78b8250fe1694ca157965ec178da6807de58\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://f1237acf96b4b9f9b69156e068eddd726a6e15bd8e87a18dc999cd4ba4da069c\",\"dweb:/ipfs/QmS6M8fiFFSeuJ4ZKKq1z8W7w4ybeHQSy5TLASGoc1LVic\"]},\"src/contracts/common/StaticDelegateCallable.sol\":{\"keccak256\":\"0x350029aa8955eacaffffaeb58babc5c98e80ebc5c5db388ed17ee6465f4a9d90\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://eb392a8ee9050e0af606897df63e3404e3829e8b688b580663892f9664195764\",\"dweb:/ipfs/QmaXC8jqV8UrrAFkzXTEv2fJF56sy33HhLxAzaRZmUxuXD\"]},\"src/contracts/delegator/BaseDelegator.sol\":{\"keccak256\":\"0x7c54d491fdd4415b764a9c8defa068e56d4c0c8c9419be0053a1d377669290e8\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://9238bfbad0f6eeb0dc7727724de14380f1980b395902269703d5e2ef07e52e10\",\"dweb:/ipfs/QmPJn1V4HNXcEghYvogGuSTF24dSQUPosR5qtsXcmNqRm3\"]},\"src/contracts/delegator/FullRestakeDelegator.sol\":{\"keccak256\":\"0x0a81c4f8e72914563a9cb771e93acf889c71ea36b7bec040e4eb562b199d5af1\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://6fc66b6ba02da77046a0bbbd1dd407a62c08f52e04486c9cbd2cb1cca3da555f\",\"dweb:/ipfs/QmZQivK1ZnMxfRQQ5aLpV9co5u55wQVNev5Rg1hzAqxhkE\"]},\"src/contracts/delegator/NetworkRestakeDelegator.sol\":{\"keccak256\":\"0xd3a8e6522f9c6fdcc2da837c9023afd6bdff2bce45a35590320c475519e3636d\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://58b17a87f6554f08376f9ea7fedf486a4aa75801bf0ad8b23ff5a46959b6b7a3\",\"dweb:/ipfs/QmSTmNh67tYt8CmjVZb57r8N3qX5yeYdMApKPJm3qvQgQw\"]},\"src/contracts/delegator/OperatorNetworkSpecificDelegator.sol\":{\"keccak256\":\"0x031a10722b9ec49048f0952710401131290adb87e71caf294e864e7ac3b98a16\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://72428febc875134b2f29205e6f294634a1c22a7d5c78d6a9cb2f8196f107c9b5\",\"dweb:/ipfs/QmTPwXR6h5oytckmkLrHdKeEMdphJxceDhYUR4zvQeWAwY\"]},\"src/contracts/delegator/OperatorSpecificDelegator.sol\":{\"keccak256\":\"0x630ce62fa30b9f3349ab7a8cf8dbf041319febc6dd757be2f94d3d25944ed328\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://c2ac59d47ce57d2a6819ae9833e1a618a371eccff93eb5ab367b201b01f42bfa\",\"dweb:/ipfs/QmdBpGMBivpNPv2WbH8vnCUy5xkVeaxQvGgqi33vKCz1kA\"]},\"src/contracts/hints/DelegatorHints.sol\":{\"keccak256\":\"0x44aa0c396311a54afbc7c73e8dadeed41e3165a4fd13f712b27d63d50fc3376d\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://2f255214f3531fc707d88be0d56a7a0aed4180439316d099d760d9118aa83093\",\"dweb:/ipfs/QmZD1w5p1ukJSXumUAjvxwGmkPhn7vsr21Y2atLGEZR2oi\"]},\"src/contracts/hints/Hints.sol\":{\"keccak256\":\"0x8b565df1ae35993c097a9e642002782a8f451f6fd01809cad6bcd345bdf1b99c\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://99a19adb01e350a92f534095b3078229df1f2f83077992d75d58d8684be45971\",\"dweb:/ipfs/QmbmwcuswVbzvwHQFTtrJG86oV98GnfxqYTb8cV8u1acox\"]},\"src/contracts/hints/OptInServiceHints.sol\":{\"keccak256\":\"0x95d9407900d27b9f4a1233b772aeed809c07b2dc5b31cfc9fa77ca26514c49e5\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://a13a8877e312d7e6b8b85bde3668c5d84ff5ecc83f762cd573f2b7104c64eb42\",\"dweb:/ipfs/QmYV2J55acuGzCNnS3juABuUHY5U1xc8g8o9jwEyFFdeG5\"]},\"src/contracts/hints/VaultHints.sol\":{\"keccak256\":\"0xccb505b7159b769cc114d67b87c2de6b106557f667fc8f3780114baad5c3c442\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://6d0c80a908fc16e96a8b5605a0bd53f9e89ad0ef0a738fbbae80ba4d3160749b\",\"dweb:/ipfs/QmXo5UtWoR8YmunqcbBU8rQMm1nvmvjNPoXcVrDhh4pEwR\"]},\"src/contracts/libraries/Checkpoints.sol\":{\"keccak256\":\"0xba90097c8bfe0a975499428b5f8ac5569483c7d92ccc28c12d70de416aae040c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://12f5d93ca94cd06d3147db68993165a58e17903ed53682560de61f3085ad4609\",\"dweb:/ipfs/QmePiuAqvXprMLmFZkGZeGjvGPAvsEDHfCDv7BoQhXu9xE\"]},\"src/contracts/libraries/ERC4626Math.sol\":{\"keccak256\":\"0x8441160513c1cbeb1c3b9ee077bcc7e7ce20006b52a77c8dd39ff0ef89699939\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://943f8cc3e26ddf649f465f40c909819f5c864717c4baa339e9e403b9374a4653\",\"dweb:/ipfs/QmXPxi1sUDsrGprZdUgCzoPEosaZMv9ZhygWQ1vAi1phAB\"]},\"src/contracts/libraries/Subnetwork.sol\":{\"keccak256\":\"0xf5ef5506fd66082b3c2e7f3df37529f5a8efad32ac62e7c8914bd63219190bfe\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba031a54ee0d0e9a270c2b9e18437f5668cfeb659cfd5fe0677459d7fcac2a56\",\"dweb:/ipfs/QmReP3H7qQ78tAfgLnJKsNEQNCQfF1X1Get38Ffd4kzq32\"]},\"src/contracts/service/OptInService.sol\":{\"keccak256\":\"0x4e0932077f2686b7990e10d59deb2535334c0d09e52ef6e57c6ab09eca21c4b1\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://7c00d311032ed4a1743aca7475f3c86ce15cdfc2218108efc3731c03d34a5278\",\"dweb:/ipfs/QmUGGfVwVhaHr5kS4177yKKYiLYzi5qZpkEmvYxBZqazxf\"]},\"src/contracts/vault/Vault.sol\":{\"keccak256\":\"0x2ceff6ed3298c4cad144c99fcc79b51cb9397d6ebef00285b915848b476f8c2e\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://11f2fb3581854f3ab6e82e8d4935d9eb510c903a13c3f022346c2956a58f5307\",\"dweb:/ipfs/QmdUnoXoyYoG9SGWyQZCFyLDRUUX3eXyXetkRvw6jxqqBz\"]},\"src/contracts/vault/VaultStorage.sol\":{\"keccak256\":\"0x57db25b127d77ea3472de53e3a4af3354399655b9268638b99ca5925fa364a56\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://aa763d9a6ec508ae3abfb8228b72b9fd9525279e5135d4962e79ff059feb1173\",\"dweb:/ipfs/QmcbDR6E9wyEpu6V2FkEC4hnWy47zXA9LSKJde6zSGd33Q\"]},\"src/interfaces/common/IEntity.sol\":{\"keccak256\":\"0x8ef4b63d6da63489778ccd5f8d13ebdd527dd4b62730b2c616df5af7474d2d21\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a8d69576a9219d85c50816a18ad53a4d53cfcb27ed38b8cccc808dc2734b71b\",\"dweb:/ipfs/QmYVN3P4Q4REvBWJ97TbAcaxm3uyB2anV6NSGa6ZtSwcEv\"]},\"src/interfaces/common/IMigratableEntity.sol\":{\"keccak256\":\"0x8f5f2809f3afbe8ebfbb365dd7b57b4dd3b6f9943a6187eaf648d45895b8e3c4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ffe640537d539e7a4fde70d30d3e4c57f4ba9c2c25c450cea713aae38e8fd5c\",\"dweb:/ipfs/QmSUTGzvdcn1R1KB7tLThMRtESsfPbeXDhhhKWGtntzBds\"]},\"src/interfaces/common/IRegistry.sol\":{\"keccak256\":\"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014\",\"dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK\"]},\"src/interfaces/common/IStaticDelegateCallable.sol\":{\"keccak256\":\"0xa335d4e81b9071b7de66ef92b43ff20671d86516eb1be46fef29a3483cd3f5d5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d464b9db863c14c05547d2b23352f2e9b7b784799cf09f6bbc4906a2a74e3516\",\"dweb:/ipfs/QmUVWzFvJz7eEbDQKiFTTzwi7TEbjcs3VmwdM4kuptAKvi\"]},\"src/interfaces/delegator/IBaseDelegator.sol\":{\"keccak256\":\"0x96bb312f032e17accce3f8f80936d99468029d6b37c9ca74acdb4b026a0148ee\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2a66dcb5b7d1a6ef6a363431ea98ebd78bc4fdd3d7a134d9b542dc66e7d025c2\",\"dweb:/ipfs/QmRhTPLd2ZAyRHmJUFUcWKs9b3if49QY17LYZuRqWmghw8\"]},\"src/interfaces/delegator/IDelegatorHook.sol\":{\"keccak256\":\"0xc51aa8d7d1f6c8043ee819b7aeb86da0e993912e1442098df897e299f01f9f46\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://adddf5cb2ba282aeb576b26efb28640f865a1721cc9b6eee8b3ee0457a2c9780\",\"dweb:/ipfs/QmNYgAmnLRwWZbhTuQhZs9rx4zcme1df5mEepkrniorSoW\"]},\"src/interfaces/delegator/IFullRestakeDelegator.sol\":{\"keccak256\":\"0xa3c8cb2e45d4d8ce90e95263bea40c01dc400f05ad65bc29597d878606be5e7d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://782cf5e201aa4cca037ebafd3807a68ff1cc721d5b8416a35244db0d0607369e\",\"dweb:/ipfs/QmQkJks6x7CKndeTPa9LxgTNygD5uEi7obhADhpq1Lsr9A\"]},\"src/interfaces/delegator/INetworkRestakeDelegator.sol\":{\"keccak256\":\"0xe7030fe30389a147fd710e3436ec346b4842695fd3e65a81b95375c9f1d633fc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://739c7e66d301778054f5c90bee45ec9438f68afba8a03eaaac52064c73b115ad\",\"dweb:/ipfs/QmfZ2ytKcTykAc76nxhg8ikUXV8NdBpetqb8W4YWPcox1Z\"]},\"src/interfaces/delegator/IOperatorNetworkSpecificDelegator.sol\":{\"keccak256\":\"0x74b95e64d29769202d45dd277bb830f623ff3d41ce77b80ce3ee4e318a5c71ec\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e512b903aae5c1b8a028c6e3f4f6223b5cb5d704503cfa6bd37b5346868f5c20\",\"dweb:/ipfs/QmZim9YExsPWtyxyeui993HTKAEmrg8MUcSkZ77Gp2JcuZ\"]},\"src/interfaces/delegator/IOperatorSpecificDelegator.sol\":{\"keccak256\":\"0x72075cab585dc17240cc3e32bc99b92f0d5627ddd988fed680e3e1a52d5a01e4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7448bc90699409ae61d85216b5efc2143a37f0f73354be2aea993bc54afca441\",\"dweb:/ipfs/QmXE4gAxM8pHosZK8mcTcj17puBx484meDCcmrDePskGHZ\"]},\"src/interfaces/service/IOptInService.sol\":{\"keccak256\":\"0x76fb5460a6d87a5705433d4fbeff7253cd75b8bbd0c888b2088f16e86ace146a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://990322019b3d11465f7024bae77ccbf7e2fe5d6fa3c754584778f37d04fa1337\",\"dweb:/ipfs/QmaSNHzcqxTkUCG9a4nqVfLECHLdjdrwAnDi3yDC7tDL24\"]},\"src/interfaces/slasher/IBaseSlasher.sol\":{\"keccak256\":\"0x7c82528b445659c313ab77335c407b0b6efe5e79027187bb287f7bc74202b404\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0274c90aa5df1aa6bb470a6aab53992fb14fd7e5472c9430416505b29647d9cf\",\"dweb:/ipfs/QmckbmJLDetPemVzCnnGcKYWAZV2BRFXGDsjiaec8jkHxx\"]},\"src/interfaces/vault/IVault.sol\":{\"keccak256\":\"0xffee01d383cd4e1a5530c614bf4360c1ef070c288abec9da1eb531b51bc07235\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://04f0046cac285d8ec44ebbb1f79dc94fab4495767190cad8364fbc1fafaadfb9\",\"dweb:/ipfs/QmUawAunwzXfCyShWfhKeThAgKtqe51hmrxvrXvM772M2R\"]},\"src/interfaces/vault/IVaultStorage.sol\":{\"keccak256\":\"0x592626f13754194f83047135de19229c49390bd59e34659b1bb38be71d973a22\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://06a6a9dfddd05e580b32bebe2cff4f63ba26a653180676d58225dd30d9c89d3e\",\"dweb:/ipfs/QmdgzBeY6Sxo8mGtyBxtv1tM1c2kU6J6zjeRd7vuXm4DU6\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.25+commit.b61c2a91"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"baseDelegatorHints","type":"address"},{"internalType":"address","name":"vaultHints","type":"address"},{"internalType":"address","name":"optInServiceHints","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"AccessControlBadConfirmation"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bytes32","name":"neededRole","type":"bytes32"}],"type":"error","name":"AccessControlUnauthorizedAccount"},{"inputs":[],"type":"error","name":"AlreadySet"},{"inputs":[],"type":"error","name":"CheckpointUnorderedInsertion"},{"inputs":[],"type":"error","name":"DuplicateRoleHolder"},{"inputs":[],"type":"error","name":"ExceedsMaxNetworkLimit"},{"inputs":[],"type":"error","name":"ExternalCall"},{"inputs":[],"type":"error","name":"InsufficientHookGas"},{"inputs":[],"type":"error","name":"InvalidInitialization"},{"inputs":[],"type":"error","name":"MathOverflowedMulDiv"},{"inputs":[],"type":"error","name":"MissingRoleHolders"},{"inputs":[],"type":"error","name":"NotInitialized"},{"inputs":[],"type":"error","name":"NotInitializing"},{"inputs":[],"type":"error","name":"NotNetwork"},{"inputs":[],"type":"error","name":"NotSlasher"},{"inputs":[],"type":"error","name":"NotVault"},{"inputs":[],"type":"error","name":"ReentrancyGuardReentrantCall"},{"inputs":[{"internalType":"uint8","name":"bits","type":"uint8"},{"internalType":"uint256","name":"value","type":"uint256"}],"type":"error","name":"SafeCastOverflowedUintDowncast"},{"inputs":[],"type":"error","name":"ZeroAddressRoleHolder"},{"inputs":[{"internalType":"uint64","name":"version","type":"uint64","indexed":false}],"type":"event","name":"Initialized","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32","indexed":true},{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false},{"internalType":"uint48","name":"captureTimestamp","type":"uint48","indexed":false}],"type":"event","name":"OnSlash","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"bytes32","name":"previousAdminRole","type":"bytes32","indexed":true},{"internalType":"bytes32","name":"newAdminRole","type":"bytes32","indexed":true}],"type":"event","name":"RoleAdminChanged","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"address","name":"sender","type":"address","indexed":true}],"type":"event","name":"RoleGranted","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"address","name":"sender","type":"address","indexed":true}],"type":"event","name":"RoleRevoked","anonymous":false},{"inputs":[{"internalType":"address","name":"hook","type":"address","indexed":true}],"type":"event","name":"SetHook","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"SetMaxNetworkLimit","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"SetNetworkLimit","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32","indexed":true},{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"uint256","name":"shares","type":"uint256","indexed":false}],"type":"event","name":"SetOperatorNetworkShares","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"BASE_DELEGATOR_HINTS","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"DEFAULT_ADMIN_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"FACTORY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"HOOK_GAS_LIMIT","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"HOOK_RESERVE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"HOOK_SET_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"NETWORK_LIMIT_SET_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"NETWORK_REGISTRY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"OPERATOR_NETWORK_OPT_IN_SERVICE","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"OPERATOR_NETWORK_SHARES_SET_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"OPERATOR_VAULT_OPT_IN_SERVICE","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"OPT_IN_SERVICE_HINTS","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"TYPE","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"VAULT_FACTORY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"VAULT_HINTS","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"VERSION","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getRoleAdmin","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"grantRole"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"hasRole","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"hook","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"}],"stateMutability":"view","type":"function","name":"maxNetworkLimit","outputs":[{"internalType":"uint256","name":"value","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"}],"stateMutability":"view","type":"function","name":"networkLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"uint48","name":"timestamp","type":"uint48"},{"internalType":"bytes","name":"hint","type":"bytes"}],"stateMutability":"view","type":"function","name":"networkLimitAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"delegator","type":"address"},{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"uint48","name":"timestamp","type":"uint48"}],"stateMutability":"view","type":"function","name":"networkLimitHint","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"uint48","name":"timestamp","type":"uint48"}],"stateMutability":"view","type":"function","name":"networkLimitHintInternal","outputs":[{"internalType":"bool","name":"exists","type":"bool"},{"internalType":"uint32","name":"hint","type":"uint32"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint48","name":"captureTimestamp","type":"uint48"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"onSlash"},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"operatorNetworkShares","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint48","name":"timestamp","type":"uint48"},{"internalType":"bytes","name":"hint","type":"bytes"}],"stateMutability":"view","type":"function","name":"operatorNetworkSharesAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"delegator","type":"address"},{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint48","name":"timestamp","type":"uint48"}],"stateMutability":"view","type":"function","name":"operatorNetworkSharesHint","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint48","name":"timestamp","type":"uint48"}],"stateMutability":"view","type":"function","name":"operatorNetworkSharesHintInternal","outputs":[{"internalType":"bool","name":"exists","type":"bool"},{"internalType":"uint32","name":"hint","type":"uint32"}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"callerConfirmation","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"renounceRole"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"revokeRole"},{"inputs":[{"internalType":"address","name":"hook_","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setHook"},{"inputs":[{"internalType":"uint96","name":"identifier","type":"uint96"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setMaxNetworkLimit"},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setNetworkLimit"},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint256","name":"shares","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setOperatorNetworkShares"},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"stake","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint48","name":"timestamp","type":"uint48"},{"internalType":"bytes","name":"hints","type":"bytes"}],"stateMutability":"view","type":"function","name":"stakeAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"delegator","type":"address"},{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint48","name":"timestamp","type":"uint48"}],"stateMutability":"view","type":"function","name":"stakeHints","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"staticDelegateCall"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"}],"stateMutability":"view","type":"function","name":"totalOperatorNetworkShares","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"uint48","name":"timestamp","type":"uint48"},{"internalType":"bytes","name":"hint","type":"bytes"}],"stateMutability":"view","type":"function","name":"totalOperatorNetworkSharesAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"delegator","type":"address"},{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"uint48","name":"timestamp","type":"uint48"}],"stateMutability":"view","type":"function","name":"totalOperatorNetworkSharesHint","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"uint48","name":"timestamp","type":"uint48"}],"stateMutability":"view","type":"function","name":"totalOperatorNetworkSharesHintInternal","outputs":[{"internalType":"bool","name":"exists","type":"bool"},{"internalType":"uint32","name":"hint","type":"uint32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"vault","outputs":[{"internalType":"address","name":"","type":"address"}]}],"devdoc":{"kind":"dev","methods":{"VERSION()":{"details":"Must return 1 for this one.","returns":{"_0":"version of the delegator"}},"getRoleAdmin(bytes32)":{"details":"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}."},"grantRole(bytes32,address)":{"details":"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event."},"hasRole(bytes32,address)":{"details":"Returns `true` if `account` has been granted `role`."},"initialize(bytes)":{"params":{"data":"some data to use"}},"networkLimit(bytes32)":{"params":{"subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"},"returns":{"_0":"limit of the subnetwork"}},"networkLimitAt(bytes32,uint48,bytes)":{"params":{"hint":"hint for checkpoint index","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)","timestamp":"time point to get the subnetwork limit at"},"returns":{"_0":"limit of the subnetwork at the given timestamp"}},"onSlash(bytes32,address,uint256,uint48,bytes)":{"details":"Only the vault's slasher can call this function.","params":{"amount":"amount of the collateral slashed","captureTimestamp":"time point when the stake was captured","data":"some additional data","operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"}},"operatorNetworkShares(bytes32,address)":{"params":{"operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"},"returns":{"_0":"shares of the operator for the subnetwork"}},"operatorNetworkSharesAt(bytes32,address,uint48,bytes)":{"params":{"hint":"hint for checkpoint index","operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)","timestamp":"time point to get the operator's shares at"},"returns":{"_0":"shares of the operator for the subnetwork at the given timestamp"}},"renounceRole(bytes32,address)":{"details":"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `callerConfirmation`. May emit a {RoleRevoked} event."},"revokeRole(bytes32,address)":{"details":"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event."},"setHook(address)":{"details":"Only a HOOK_SET_ROLE holder can call this function. The hook can have arbitrary logic under certain functions, however, it doesn't affect the stake guarantees.","params":{"hook":"address of the hook"}},"setMaxNetworkLimit(uint96,uint256)":{"details":"Only a network can call this function.","params":{"amount":"new maximum subnetwork's limit"}},"setNetworkLimit(bytes32,uint256)":{"details":"Only a NETWORK_LIMIT_SET_ROLE holder can call this function.","params":{"amount":"new limit of the subnetwork","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"}},"setOperatorNetworkShares(bytes32,address,uint256)":{"details":"Only an OPERATOR_NETWORK_SHARES_SET_ROLE holder can call this function.","params":{"operator":"address of the operator","shares":"new shares of the operator for the subnetwork","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"}},"stake(bytes32,address)":{"details":"Warning: this function is not safe to use for stake capturing, as it can change by the end of the block.","params":{"operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"},"returns":{"_0":"slashable stake until the end of the next epoch"}},"stakeAt(bytes32,address,uint48,bytes)":{"details":"Warning: it is not safe to use timestamp >= current one for the stake capturing, as it can change later.","params":{"hints":"hints for the checkpoints' indexes","operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)","timestamp":"time point to capture the stake at"},"returns":{"_0":"slashable stake at the given timestamp until the end of the consequent epoch"}},"staticDelegateCall(address,bytes)":{"details":"It allows to use this contract's storage on-chain.","params":{"data":"data to make a delegatecall with","target":"address of the contract to make a delegatecall to"}},"supportsInterface(bytes4)":{"details":"See {IERC165-supportsInterface}."},"totalOperatorNetworkShares(bytes32)":{"params":{"subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"},"returns":{"_0":"total shares of the operators for the subnetwork"}},"totalOperatorNetworkSharesAt(bytes32,uint48,bytes)":{"params":{"hint":"hint for checkpoint index","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)","timestamp":"time point to get the total operators' shares at"},"returns":{"_0":"total shares of the operators for the subnetwork at the given timestamp"}}},"version":1},"userdoc":{"kind":"user","methods":{"FACTORY()":{"notice":"Get the factory's address."},"HOOK_GAS_LIMIT()":{"notice":"Get a gas limit for the hook."},"HOOK_RESERVE()":{"notice":"Get a reserve gas between the gas limit check and the hook's execution."},"HOOK_SET_ROLE()":{"notice":"Get a hook setter's role."},"NETWORK_LIMIT_SET_ROLE()":{"notice":"Get a subnetwork limit setter's role."},"NETWORK_REGISTRY()":{"notice":"Get the network registry's address."},"OPERATOR_NETWORK_OPT_IN_SERVICE()":{"notice":"Get the operator-network opt-in service's address."},"OPERATOR_NETWORK_SHARES_SET_ROLE()":{"notice":"Get an operator-subnetwork shares setter's role."},"OPERATOR_VAULT_OPT_IN_SERVICE()":{"notice":"Get the operator-vault opt-in service's address."},"TYPE()":{"notice":"Get the entity's type."},"VAULT_FACTORY()":{"notice":"Get the vault factory's address."},"VERSION()":{"notice":"Get a version of the delegator (different versions mean different interfaces)."},"hook()":{"notice":"Get the hook's address."},"initialize(bytes)":{"notice":"Initialize this entity contract by using a given data."},"maxNetworkLimit(bytes32)":{"notice":"Get a particular subnetwork's maximum limit (meaning the subnetwork is not ready to get more as a stake)."},"networkLimit(bytes32)":{"notice":"Get a subnetwork's limit (how much stake the vault curator is ready to give to the subnetwork)."},"networkLimitAt(bytes32,uint48,bytes)":{"notice":"Get a subnetwork's limit at a given timestamp using a hint (how much stake the vault curator is ready to give to the subnetwork)."},"onSlash(bytes32,address,uint256,uint48,bytes)":{"notice":"Called when a slash happens."},"operatorNetworkShares(bytes32,address)":{"notice":"Get an operator's shares for a subnetwork (what percentage, which is equal to the shares divided by the total operators' shares, of the subnetwork's stake the vault curator is ready to give to the operator)."},"operatorNetworkSharesAt(bytes32,address,uint48,bytes)":{"notice":"Get an operator's shares for a subnetwork at a given timestamp using a hint (what percentage, which is equal to the shares divided by the total operators' shares, of the subnetwork's stake the vault curator is ready to give to the operator)."},"setHook(address)":{"notice":"Set a new hook."},"setMaxNetworkLimit(uint96,uint256)":{"notice":"Set a maximum limit for a subnetwork (how much stake the subnetwork is ready to get). identifier identifier of the subnetwork"},"setNetworkLimit(bytes32,uint256)":{"notice":"Set a subnetwork's limit (how much stake the vault curator is ready to give to the subnetwork)."},"setOperatorNetworkShares(bytes32,address,uint256)":{"notice":"Set an operator's shares for a subnetwork (what percentage, which is equal to the shares divided by the total operators' shares, of the subnetwork's stake the vault curator is ready to give to the operator)."},"stake(bytes32,address)":{"notice":"Get a stake that a given subnetwork will be able to slash for a certain operator until the end of the next epoch (if no cross-slashing and no slashings by the subnetwork)."},"stakeAt(bytes32,address,uint48,bytes)":{"notice":"Get a stake that a given subnetwork could be able to slash for a certain operator at a given timestamp until the end of the consequent epoch using hints (if no cross-slashing and no slashings by the subnetwork)."},"staticDelegateCall(address,bytes)":{"notice":"Make a delegatecall from this contract to a given target contract with a particular data (always reverts with a return data)."},"totalOperatorNetworkShares(bytes32)":{"notice":"Get a sum of operators' shares for a subnetwork."},"totalOperatorNetworkSharesAt(bytes32,uint48,bytes)":{"notice":"Get a sum of operators' shares for a subnetwork at a given timestamp using a hint."},"vault()":{"notice":"Get the vault's address."}},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/contracts/hints/DelegatorHints.sol":"NetworkRestakeDelegatorHints"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol":{"keccak256":"0x6662ec4e5cefca03eeadd073e9469df8d2944bb2ee8ec8f7622c2c46aab5f225","urls":["bzz-raw://4d8544c6f8daa4d1bc215c6a72fe0acdb748664a105b0e5efc19295667521d45","dweb:/ipfs/QmdGWqdnXT8S3RgCR6aV8XHZrsybieMQLLnug1NtpSjEXN"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol":{"keccak256":"0xc163fcf9bb10138631a9ba5564df1fa25db9adff73bd9ee868a8ae1858fe093a","urls":["bzz-raw://9706d43a0124053d9880f6e31a59f31bc0a6a3dc1acd66ce0a16e1111658c5f6","dweb:/ipfs/QmUFmfowzkRwGtDu36cXV9SPTBHJ3n7dG9xQiK5B28jTf2"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b","urls":["bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609","dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol":{"keccak256":"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397","urls":["bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9","dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardUpgradeable.sol":{"keccak256":"0xb44e086e941292cdc7f440de51478493894ef0b1aeccb0c4047445919f667f74","urls":["bzz-raw://942dad22fbdc1669f025540ba63aa3ccfad5f8458fc5d4525b31ebf272e7af45","dweb:/ipfs/Qmdo4X2M82aM3AMoW2kf2jhYkSCyC4T1pHNd6obdsDFnAB"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol":{"keccak256":"0xdaba3f7c42c55b2896353f32bd27d4d5f8bae741b3b05d4c53f67abc4dc47ce8","urls":["bzz-raw://1fa2e61141c602510bcd2cd936ed9561922ac8772a9b9c9a9db091a74e354a45","dweb:/ipfs/QmcHQDDoEBwJmwUbzoVkytvJsBx3KVHYFFnDkvRGWh9Wmh"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol":{"keccak256":"0xb6b36edd6a2999fd243ff226d6cbf84bd71af2432bbd0dfe19392996a1d9cb41","urls":["bzz-raw://1fd2f35495652e57e3f99bc6c510bc5f7dd398a176ea2e72d8ed730aebc6ca26","dweb:/ipfs/QmTQV6X4gkikTib49cho5iDX3JvSQbdsoEChoDwrk3CbbH"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC1271.sol":{"keccak256":"0x85a45f3f10014a0f8be41157a32b6a5f905753ea64a4b64e29fc12b7deeecf39","urls":["bzz-raw://c3c74009ce36136b36c77c23935b8e4a7b4f253be2da2be4fb4a916b1ce43743","dweb:/ipfs/QmcH36v3iN7SJJuF73AunLR2LtNxhVJ1wm63ph4dPZ4pcL"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC5267.sol":{"keccak256":"0x92aa1df62dc3d33f1656d63bede0923e0df0b706ad4137c8b10b0a8fe549fd92","urls":["bzz-raw://c5c0f29195ad64cbe556da8e257dac8f05f78c53f90323c0d2accf8e6922d33a","dweb:/ipfs/QmQ61TED8uaCZwcbh8KkgRSsCav7x7HbcGHwHts3U4DmUP"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70","urls":["bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c","dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol":{"keccak256":"0x6008dabfe393240d73d7dd7688033f72740d570aa422254d29a7dce8568f3aff","urls":["bzz-raw://f5196ec75139918c6c7bb4251b36395e668f1fa6d206beba7e7520e74913940d","dweb:/ipfs/QmSyqjksXxmm2mCG6qRd1yuwLykypkSVBbnBnGqJRcuJMi"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0x37bb49513c49c87c4642a891b13b63571bc87013dde806617aa1efb54605f386","urls":["bzz-raw://b3036b3a83b7c48f96641f2a9002b9f2dcb6a5958dd670894ada21ae8229b3d0","dweb:/ipfs/QmUNfSBdoVtjhETaUJCYcaC7pTMgbhht926tJ2uXJbiVd3"],"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/ShortStrings.sol":{"keccak256":"0x18a7171df639a934592915a520ecb97c5bbc9675a1105607aac8a94e72bf62c6","urls":["bzz-raw://7478e1f13da69a2867ccd883001d836b75620362e743f196376d63ed0c422a1c","dweb:/ipfs/QmWywcQ9TNfwtoqAxbn25d8C5VrV12PrPS9UjtGe6pL2BA"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol":{"keccak256":"0x32ba59b4b7299237c8ba56319110989d7978a039faf754793064e967e5894418","urls":["bzz-raw://1ae50c8b562427df610cc4540c9bf104acca7ef8e2dcae567ae7e52272281e9c","dweb:/ipfs/QmTHiadFCSJUPpRjNegc5SahmeU8bAoY8i9Aq6tVscbcKR"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0x55f102ea785d8399c0e58d1108e2d289506dde18abc6db1b7f68c1f9f9bc5792","urls":["bzz-raw://6e52e0a7765c943ef14e5bcf11e46e6139fa044be564881378349236bf2e3453","dweb:/ipfs/QmZEeeXoFPW47amyP35gfzomF9DixqqTEPwzBakv6cZw6i"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol":{"keccak256":"0xeed0a08b0b091f528356cbc7245891a4c748682d4f6a18055e8e6ca77d12a6cf","urls":["bzz-raw://ba80ba06c8e6be852847e4c5f4492cef801feb6558ae09ed705ff2e04ea8b13c","dweb:/ipfs/QmXRJDv3xHLVQCVXg1ZvR35QS9sij5y9NDWYzMfUfAdTHF"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/EIP712.sol":{"keccak256":"0x999f705a027ed6dc2d4e0df2cc4a509852c6bfd11de1c8161bf88832d0503fd0","urls":["bzz-raw://0798def67258d9a3cc20b2b4da7ebf351a5cefe0abfdd665d2d81f8e32f89b21","dweb:/ipfs/QmPEvJosnPfzHNjKvCv2D3891mA2Ww8eUwkqrxBjuYdHCt"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol":{"keccak256":"0xba333517a3add42cd35fe877656fc3dfcc9de53baa4f3aabbd6d12a92e4ea435","urls":["bzz-raw://2ceacff44c0fdc81e48e0e0b1db87a2076d3c1fb497341de077bf1da9f6b406c","dweb:/ipfs/QmRUo1muMRAewxrKQ7TkXUtknyRoR57AyEkoPpiuZQ8FzX"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/SignatureChecker.sol":{"keccak256":"0x6b11eb41a228cca35d4b662b4df69fcd75192851365102690f57b2ac01e83fe6","urls":["bzz-raw://ab006a2983ed350d2af21ddcdd835dcae3b8340086cc4d088460da5abd041f69","dweb:/ipfs/QmbEacDhkJZiGrgzLjB4pNtE8Z1uudjDw1DvcDUTVQFsLG"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b","urls":["bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df","dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d","urls":["bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875","dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol":{"keccak256":"0xe19a4d5f31d2861e7344e8e535e2feafb913d806d3e2b5fe7782741a2a7094fe","urls":["bzz-raw://4aed79c0fa6f0546ed02f2f683e8f77f0fd2ed7eb34d8bbf3d373c9a6d95b13c","dweb:/ipfs/QmWqVz6UAVqmnWU5pqYPt1o6iDEZyPaBraAA3rKfTTSfYj"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0x5f7e4076e175393767754387c962926577f1660dd9b810187b9002407656be72","urls":["bzz-raw://7d533a1c97cd43a57cd9c465f7ee8dd0e39ae93a8fb8ff8e5303a356b081cdcc","dweb:/ipfs/QmVBEei6aTnvYNZp2CHYVNKyZS4q1KkjANfY39WVXZXVoT"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/Checkpoints.sol":{"keccak256":"0xbdc5e074d7dd6678f67e92b1a51a20226801a407b0e1af3da367c5d1ff4519ad","urls":["bzz-raw://a36cca6b22fff3db16fc789ff6c60eea71d4b156065d4d0c83a0bc5e91a77a8b","dweb:/ipfs/QmYN3exd5AemxjBrN8XMB1p5LbbE16uC3sjbYjwi8AjcGR"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/types/Time.sol":{"keccak256":"0xc7755af115020049e4140f224f9ee88d7e1799ffb0646f37bf0df24bf6213f58","urls":["bzz-raw://7f09bf94d5274334ec021f61a04659db303f31e60460e14b709c9bf187740111","dweb:/ipfs/QmNvgomZYUwFAt4cZbPWAiTeSZQreGehY9BK5xyVJsUttb"],"license":"MIT"},"src/contracts/common/Entity.sol":{"keccak256":"0x3d61a932995b8443381f3950542d388223a2c26dd5d29a3274dea3baa7388bd7","urls":["bzz-raw://7cdf5f03ca72fd263fd32ff59c8d88ddca911ae83896a287d10772c1bbe9b138","dweb:/ipfs/QmbP84r5BWT1Rn9AYTntWSf3xUMTTCohTZJFhbBhDXFoHa"],"license":"BUSL-1.1"},"src/contracts/common/MigratableEntity.sol":{"keccak256":"0x2d736f4dacd5d7e7697503bc426c78b8250fe1694ca157965ec178da6807de58","urls":["bzz-raw://f1237acf96b4b9f9b69156e068eddd726a6e15bd8e87a18dc999cd4ba4da069c","dweb:/ipfs/QmS6M8fiFFSeuJ4ZKKq1z8W7w4ybeHQSy5TLASGoc1LVic"],"license":"BUSL-1.1"},"src/contracts/common/StaticDelegateCallable.sol":{"keccak256":"0x350029aa8955eacaffffaeb58babc5c98e80ebc5c5db388ed17ee6465f4a9d90","urls":["bzz-raw://eb392a8ee9050e0af606897df63e3404e3829e8b688b580663892f9664195764","dweb:/ipfs/QmaXC8jqV8UrrAFkzXTEv2fJF56sy33HhLxAzaRZmUxuXD"],"license":"BUSL-1.1"},"src/contracts/delegator/BaseDelegator.sol":{"keccak256":"0x7c54d491fdd4415b764a9c8defa068e56d4c0c8c9419be0053a1d377669290e8","urls":["bzz-raw://9238bfbad0f6eeb0dc7727724de14380f1980b395902269703d5e2ef07e52e10","dweb:/ipfs/QmPJn1V4HNXcEghYvogGuSTF24dSQUPosR5qtsXcmNqRm3"],"license":"BUSL-1.1"},"src/contracts/delegator/FullRestakeDelegator.sol":{"keccak256":"0x0a81c4f8e72914563a9cb771e93acf889c71ea36b7bec040e4eb562b199d5af1","urls":["bzz-raw://6fc66b6ba02da77046a0bbbd1dd407a62c08f52e04486c9cbd2cb1cca3da555f","dweb:/ipfs/QmZQivK1ZnMxfRQQ5aLpV9co5u55wQVNev5Rg1hzAqxhkE"],"license":"BUSL-1.1"},"src/contracts/delegator/NetworkRestakeDelegator.sol":{"keccak256":"0xd3a8e6522f9c6fdcc2da837c9023afd6bdff2bce45a35590320c475519e3636d","urls":["bzz-raw://58b17a87f6554f08376f9ea7fedf486a4aa75801bf0ad8b23ff5a46959b6b7a3","dweb:/ipfs/QmSTmNh67tYt8CmjVZb57r8N3qX5yeYdMApKPJm3qvQgQw"],"license":"BUSL-1.1"},"src/contracts/delegator/OperatorNetworkSpecificDelegator.sol":{"keccak256":"0x031a10722b9ec49048f0952710401131290adb87e71caf294e864e7ac3b98a16","urls":["bzz-raw://72428febc875134b2f29205e6f294634a1c22a7d5c78d6a9cb2f8196f107c9b5","dweb:/ipfs/QmTPwXR6h5oytckmkLrHdKeEMdphJxceDhYUR4zvQeWAwY"],"license":"BUSL-1.1"},"src/contracts/delegator/OperatorSpecificDelegator.sol":{"keccak256":"0x630ce62fa30b9f3349ab7a8cf8dbf041319febc6dd757be2f94d3d25944ed328","urls":["bzz-raw://c2ac59d47ce57d2a6819ae9833e1a618a371eccff93eb5ab367b201b01f42bfa","dweb:/ipfs/QmdBpGMBivpNPv2WbH8vnCUy5xkVeaxQvGgqi33vKCz1kA"],"license":"BUSL-1.1"},"src/contracts/hints/DelegatorHints.sol":{"keccak256":"0x44aa0c396311a54afbc7c73e8dadeed41e3165a4fd13f712b27d63d50fc3376d","urls":["bzz-raw://2f255214f3531fc707d88be0d56a7a0aed4180439316d099d760d9118aa83093","dweb:/ipfs/QmZD1w5p1ukJSXumUAjvxwGmkPhn7vsr21Y2atLGEZR2oi"],"license":"BUSL-1.1"},"src/contracts/hints/Hints.sol":{"keccak256":"0x8b565df1ae35993c097a9e642002782a8f451f6fd01809cad6bcd345bdf1b99c","urls":["bzz-raw://99a19adb01e350a92f534095b3078229df1f2f83077992d75d58d8684be45971","dweb:/ipfs/QmbmwcuswVbzvwHQFTtrJG86oV98GnfxqYTb8cV8u1acox"],"license":"BUSL-1.1"},"src/contracts/hints/OptInServiceHints.sol":{"keccak256":"0x95d9407900d27b9f4a1233b772aeed809c07b2dc5b31cfc9fa77ca26514c49e5","urls":["bzz-raw://a13a8877e312d7e6b8b85bde3668c5d84ff5ecc83f762cd573f2b7104c64eb42","dweb:/ipfs/QmYV2J55acuGzCNnS3juABuUHY5U1xc8g8o9jwEyFFdeG5"],"license":"BUSL-1.1"},"src/contracts/hints/VaultHints.sol":{"keccak256":"0xccb505b7159b769cc114d67b87c2de6b106557f667fc8f3780114baad5c3c442","urls":["bzz-raw://6d0c80a908fc16e96a8b5605a0bd53f9e89ad0ef0a738fbbae80ba4d3160749b","dweb:/ipfs/QmXo5UtWoR8YmunqcbBU8rQMm1nvmvjNPoXcVrDhh4pEwR"],"license":"BUSL-1.1"},"src/contracts/libraries/Checkpoints.sol":{"keccak256":"0xba90097c8bfe0a975499428b5f8ac5569483c7d92ccc28c12d70de416aae040c","urls":["bzz-raw://12f5d93ca94cd06d3147db68993165a58e17903ed53682560de61f3085ad4609","dweb:/ipfs/QmePiuAqvXprMLmFZkGZeGjvGPAvsEDHfCDv7BoQhXu9xE"],"license":"MIT"},"src/contracts/libraries/ERC4626Math.sol":{"keccak256":"0x8441160513c1cbeb1c3b9ee077bcc7e7ce20006b52a77c8dd39ff0ef89699939","urls":["bzz-raw://943f8cc3e26ddf649f465f40c909819f5c864717c4baa339e9e403b9374a4653","dweb:/ipfs/QmXPxi1sUDsrGprZdUgCzoPEosaZMv9ZhygWQ1vAi1phAB"],"license":"MIT"},"src/contracts/libraries/Subnetwork.sol":{"keccak256":"0xf5ef5506fd66082b3c2e7f3df37529f5a8efad32ac62e7c8914bd63219190bfe","urls":["bzz-raw://ba031a54ee0d0e9a270c2b9e18437f5668cfeb659cfd5fe0677459d7fcac2a56","dweb:/ipfs/QmReP3H7qQ78tAfgLnJKsNEQNCQfF1X1Get38Ffd4kzq32"],"license":"MIT"},"src/contracts/service/OptInService.sol":{"keccak256":"0x4e0932077f2686b7990e10d59deb2535334c0d09e52ef6e57c6ab09eca21c4b1","urls":["bzz-raw://7c00d311032ed4a1743aca7475f3c86ce15cdfc2218108efc3731c03d34a5278","dweb:/ipfs/QmUGGfVwVhaHr5kS4177yKKYiLYzi5qZpkEmvYxBZqazxf"],"license":"BUSL-1.1"},"src/contracts/vault/Vault.sol":{"keccak256":"0x2ceff6ed3298c4cad144c99fcc79b51cb9397d6ebef00285b915848b476f8c2e","urls":["bzz-raw://11f2fb3581854f3ab6e82e8d4935d9eb510c903a13c3f022346c2956a58f5307","dweb:/ipfs/QmdUnoXoyYoG9SGWyQZCFyLDRUUX3eXyXetkRvw6jxqqBz"],"license":"BUSL-1.1"},"src/contracts/vault/VaultStorage.sol":{"keccak256":"0x57db25b127d77ea3472de53e3a4af3354399655b9268638b99ca5925fa364a56","urls":["bzz-raw://aa763d9a6ec508ae3abfb8228b72b9fd9525279e5135d4962e79ff059feb1173","dweb:/ipfs/QmcbDR6E9wyEpu6V2FkEC4hnWy47zXA9LSKJde6zSGd33Q"],"license":"BUSL-1.1"},"src/interfaces/common/IEntity.sol":{"keccak256":"0x8ef4b63d6da63489778ccd5f8d13ebdd527dd4b62730b2c616df5af7474d2d21","urls":["bzz-raw://5a8d69576a9219d85c50816a18ad53a4d53cfcb27ed38b8cccc808dc2734b71b","dweb:/ipfs/QmYVN3P4Q4REvBWJ97TbAcaxm3uyB2anV6NSGa6ZtSwcEv"],"license":"MIT"},"src/interfaces/common/IMigratableEntity.sol":{"keccak256":"0x8f5f2809f3afbe8ebfbb365dd7b57b4dd3b6f9943a6187eaf648d45895b8e3c4","urls":["bzz-raw://0ffe640537d539e7a4fde70d30d3e4c57f4ba9c2c25c450cea713aae38e8fd5c","dweb:/ipfs/QmSUTGzvdcn1R1KB7tLThMRtESsfPbeXDhhhKWGtntzBds"],"license":"MIT"},"src/interfaces/common/IRegistry.sol":{"keccak256":"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb","urls":["bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014","dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK"],"license":"MIT"},"src/interfaces/common/IStaticDelegateCallable.sol":{"keccak256":"0xa335d4e81b9071b7de66ef92b43ff20671d86516eb1be46fef29a3483cd3f5d5","urls":["bzz-raw://d464b9db863c14c05547d2b23352f2e9b7b784799cf09f6bbc4906a2a74e3516","dweb:/ipfs/QmUVWzFvJz7eEbDQKiFTTzwi7TEbjcs3VmwdM4kuptAKvi"],"license":"MIT"},"src/interfaces/delegator/IBaseDelegator.sol":{"keccak256":"0x96bb312f032e17accce3f8f80936d99468029d6b37c9ca74acdb4b026a0148ee","urls":["bzz-raw://2a66dcb5b7d1a6ef6a363431ea98ebd78bc4fdd3d7a134d9b542dc66e7d025c2","dweb:/ipfs/QmRhTPLd2ZAyRHmJUFUcWKs9b3if49QY17LYZuRqWmghw8"],"license":"MIT"},"src/interfaces/delegator/IDelegatorHook.sol":{"keccak256":"0xc51aa8d7d1f6c8043ee819b7aeb86da0e993912e1442098df897e299f01f9f46","urls":["bzz-raw://adddf5cb2ba282aeb576b26efb28640f865a1721cc9b6eee8b3ee0457a2c9780","dweb:/ipfs/QmNYgAmnLRwWZbhTuQhZs9rx4zcme1df5mEepkrniorSoW"],"license":"MIT"},"src/interfaces/delegator/IFullRestakeDelegator.sol":{"keccak256":"0xa3c8cb2e45d4d8ce90e95263bea40c01dc400f05ad65bc29597d878606be5e7d","urls":["bzz-raw://782cf5e201aa4cca037ebafd3807a68ff1cc721d5b8416a35244db0d0607369e","dweb:/ipfs/QmQkJks6x7CKndeTPa9LxgTNygD5uEi7obhADhpq1Lsr9A"],"license":"MIT"},"src/interfaces/delegator/INetworkRestakeDelegator.sol":{"keccak256":"0xe7030fe30389a147fd710e3436ec346b4842695fd3e65a81b95375c9f1d633fc","urls":["bzz-raw://739c7e66d301778054f5c90bee45ec9438f68afba8a03eaaac52064c73b115ad","dweb:/ipfs/QmfZ2ytKcTykAc76nxhg8ikUXV8NdBpetqb8W4YWPcox1Z"],"license":"MIT"},"src/interfaces/delegator/IOperatorNetworkSpecificDelegator.sol":{"keccak256":"0x74b95e64d29769202d45dd277bb830f623ff3d41ce77b80ce3ee4e318a5c71ec","urls":["bzz-raw://e512b903aae5c1b8a028c6e3f4f6223b5cb5d704503cfa6bd37b5346868f5c20","dweb:/ipfs/QmZim9YExsPWtyxyeui993HTKAEmrg8MUcSkZ77Gp2JcuZ"],"license":"MIT"},"src/interfaces/delegator/IOperatorSpecificDelegator.sol":{"keccak256":"0x72075cab585dc17240cc3e32bc99b92f0d5627ddd988fed680e3e1a52d5a01e4","urls":["bzz-raw://7448bc90699409ae61d85216b5efc2143a37f0f73354be2aea993bc54afca441","dweb:/ipfs/QmXE4gAxM8pHosZK8mcTcj17puBx484meDCcmrDePskGHZ"],"license":"MIT"},"src/interfaces/service/IOptInService.sol":{"keccak256":"0x76fb5460a6d87a5705433d4fbeff7253cd75b8bbd0c888b2088f16e86ace146a","urls":["bzz-raw://990322019b3d11465f7024bae77ccbf7e2fe5d6fa3c754584778f37d04fa1337","dweb:/ipfs/QmaSNHzcqxTkUCG9a4nqVfLECHLdjdrwAnDi3yDC7tDL24"],"license":"MIT"},"src/interfaces/slasher/IBaseSlasher.sol":{"keccak256":"0x7c82528b445659c313ab77335c407b0b6efe5e79027187bb287f7bc74202b404","urls":["bzz-raw://0274c90aa5df1aa6bb470a6aab53992fb14fd7e5472c9430416505b29647d9cf","dweb:/ipfs/QmckbmJLDetPemVzCnnGcKYWAZV2BRFXGDsjiaec8jkHxx"],"license":"MIT"},"src/interfaces/vault/IVault.sol":{"keccak256":"0xffee01d383cd4e1a5530c614bf4360c1ef070c288abec9da1eb531b51bc07235","urls":["bzz-raw://04f0046cac285d8ec44ebbb1f79dc94fab4495767190cad8364fbc1fafaadfb9","dweb:/ipfs/QmUawAunwzXfCyShWfhKeThAgKtqe51hmrxvrXvM772M2R"],"license":"MIT"},"src/interfaces/vault/IVaultStorage.sol":{"keccak256":"0x592626f13754194f83047135de19229c49390bd59e34659b1bb38be71d973a22","urls":["bzz-raw://06a6a9dfddd05e580b32bebe2cff4f63ba26a653180676d58225dd30d9c89d3e","dweb:/ipfs/QmdgzBeY6Sxo8mGtyBxtv1tM1c2kU6J6zjeRd7vuXm4DU6"],"license":"MIT"}},"version":1},"id":86} \ No newline at end of file +{"abi":[{"type":"constructor","inputs":[{"name":"baseDelegatorHints","type":"address","internalType":"address"},{"name":"vaultHints","type":"address","internalType":"address"},{"name":"optInServiceHints","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"BASE_DELEGATOR_HINTS","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"DEFAULT_ADMIN_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"FACTORY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"HOOK_GAS_LIMIT","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"HOOK_RESERVE","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"HOOK_SET_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"NETWORK_LIMIT_SET_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"NETWORK_REGISTRY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"OPERATOR_NETWORK_OPT_IN_SERVICE","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"OPERATOR_NETWORK_SHARES_SET_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"OPERATOR_VAULT_OPT_IN_SERVICE","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"OPT_IN_SERVICE_HINTS","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"TYPE","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"VAULT_FACTORY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"VAULT_HINTS","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"VERSION","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"pure"},{"type":"function","name":"getRoleAdmin","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"grantRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"hasRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"hook","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"initialize","inputs":[{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"maxNetworkLimit","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"value","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"networkLimit","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"networkLimitAt","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"timestamp","type":"uint48","internalType":"uint48"},{"name":"hint","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"networkLimitHint","inputs":[{"name":"delegator","type":"address","internalType":"address"},{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"timestamp","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"networkLimitHintInternal","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"timestamp","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"exists","type":"bool","internalType":"bool"},{"name":"hint","type":"uint32","internalType":"uint32"}],"stateMutability":"view"},{"type":"function","name":"onSlash","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"captureTimestamp","type":"uint48","internalType":"uint48"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"operatorNetworkShares","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"operatorNetworkSharesAt","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"timestamp","type":"uint48","internalType":"uint48"},{"name":"hint","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"operatorNetworkSharesHint","inputs":[{"name":"delegator","type":"address","internalType":"address"},{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"timestamp","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"operatorNetworkSharesHintInternal","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"timestamp","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"exists","type":"bool","internalType":"bool"},{"name":"hint","type":"uint32","internalType":"uint32"}],"stateMutability":"view"},{"type":"function","name":"renounceRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"callerConfirmation","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"revokeRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setHook","inputs":[{"name":"hook_","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setMaxNetworkLimit","inputs":[{"name":"identifier","type":"uint96","internalType":"uint96"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setNetworkLimit","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setOperatorNetworkShares","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"shares","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"stake","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"stakeAt","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"timestamp","type":"uint48","internalType":"uint48"},{"name":"hints","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"stakeHints","inputs":[{"name":"delegator","type":"address","internalType":"address"},{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"timestamp","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"staticDelegateCall","inputs":[{"name":"target","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"totalOperatorNetworkShares","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"totalOperatorNetworkSharesAt","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"timestamp","type":"uint48","internalType":"uint48"},{"name":"hint","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"totalOperatorNetworkSharesHint","inputs":[{"name":"delegator","type":"address","internalType":"address"},{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"timestamp","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"totalOperatorNetworkSharesHintInternal","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"timestamp","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"exists","type":"bool","internalType":"bool"},{"name":"hint","type":"uint32","internalType":"uint32"}],"stateMutability":"view"},{"type":"function","name":"vault","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"OnSlash","inputs":[{"name":"subnetwork","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"captureTimestamp","type":"uint48","indexed":false,"internalType":"uint48"}],"anonymous":false},{"type":"event","name":"RoleAdminChanged","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"previousAdminRole","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"newAdminRole","type":"bytes32","indexed":true,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"RoleGranted","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"sender","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"RoleRevoked","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"sender","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"SetHook","inputs":[{"name":"hook","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"SetMaxNetworkLimit","inputs":[{"name":"subnetwork","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"SetNetworkLimit","inputs":[{"name":"subnetwork","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"SetOperatorNetworkShares","inputs":[{"name":"subnetwork","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"shares","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"error","name":"AccessControlBadConfirmation","inputs":[]},{"type":"error","name":"AccessControlUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"neededRole","type":"bytes32","internalType":"bytes32"}]},{"type":"error","name":"AlreadySet","inputs":[]},{"type":"error","name":"CheckpointUnorderedInsertion","inputs":[]},{"type":"error","name":"DuplicateRoleHolder","inputs":[]},{"type":"error","name":"ExceedsMaxNetworkLimit","inputs":[]},{"type":"error","name":"ExternalCall","inputs":[]},{"type":"error","name":"InsufficientHookGas","inputs":[]},{"type":"error","name":"InvalidInitialization","inputs":[]},{"type":"error","name":"MathOverflowedMulDiv","inputs":[]},{"type":"error","name":"MissingRoleHolders","inputs":[]},{"type":"error","name":"NotInitialized","inputs":[]},{"type":"error","name":"NotInitializing","inputs":[]},{"type":"error","name":"NotNetwork","inputs":[]},{"type":"error","name":"NotSlasher","inputs":[]},{"type":"error","name":"NotVault","inputs":[]},{"type":"error","name":"ReentrancyGuardReentrantCall","inputs":[]},{"type":"error","name":"SafeCastOverflowedUintDowncast","inputs":[{"name":"bits","type":"uint8","internalType":"uint8"},{"name":"value","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ZeroAddressRoleHolder","inputs":[]}],"bytecode":{"object":"0x6101c0346101cf57601f6138de38819003918201601f19168301916001600160401b0391828411858510176101d35781606092869260409687528339810103126101cf5761004c836101e7565b926100648361005d602084016101e7565b92016101e7565b91306080527ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a009081549060ff82871c166101be57808083160361017a575b5050505f60a0525f60c0525f60e052610100935f8552610120935f8552610140905f82526101609283526101809384526101a094855251946136e296876101fc88396080518781816105a001528181610fd70152611629015260a051876109e9015260c051876112ac015260e05187818161084b01526112e5015251868181610512015261298501525185818161055601528181611e330152611f3b0152518481816107c901528181611d9a0152611fb9015251838181610e95015261194d015251828181610d9701526119ee015251816110490152f35b6001600160401b0319909116811790915583519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a15f80806100a2565b855163f92ee8a960e01b8152600490fd5b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b51906001600160a01b03821682036101cf5756fe60806040526004361015610011575f80fd5b5f3560e01c806301ffc9a71461030457806302145348146102ff57806307f9d5fd146102fa578063103f2907146102f5578063128e5d82146102f0578063197aa7ea146102eb5780631a7a7044146102e65780631a80e500146102e157806323f752d5146102dc578063248a9ca3146102d757806325dc9708146102d25780632dd31000146102cd5780632f2ff15d146102c857806336568abe146102c35780633dfd3873146102be5780633eb22c0f146102b957806342c53e33146102b4578063439fab91146102af57806345e78fcb146102aa578063557cab44146102a55780635d32a1c9146102a05780636679191e1461029b57806379d89614146102965780637d24bb27146102915780637f5a7c7b1461028c5780638b3f10b01461028757806391d1485414610282578063987b3ee81461027d5780639b656b22146102785780639f86fd8514610273578063a217fddf1461026e578063a33bc28714610269578063b549ef1f14610264578063bb24fe8a1461025f578063c0cd7c3e1461025a578063c43dc03f14610255578063d15b740e14610250578063d547741f1461024b578063da749d2b14610246578063e02f693714610241578063e49561ee1461023c578063e78eb6ae14610237578063ed4d89e514610232578063fbfa77cf1461022d578063fd4d447c14610228578063ff54740f146102235763ffa1ad741461021e575f80fd5b6116dc565b6116bf565b611695565b61166e565b61160e565b6115d4565b6113e9565b6113cd565b6113b3565b611367565b61133d565b611314565b6112d0565b61128d565b611273565b611126565b61110c565b611078565b611034565b610fa6565b610f48565b610f25565b610efd565b610ec4565b610e80565b610e46565b610e23565b610dc6565b610d82565b610c4a565b610bd1565b610ba8565b610aaf565b610a64565b610a18565b6109d4565b6109b7565b61097e565b6107f8565b6107b4565b61076e565b610585565b610541565b6104fd565b6104c8565b61035e565b3461035a57602036600319011261035a5760043563ffffffff60e01b811680910361035a57602090637965db0b60e01b8114908115610349575b506040519015158152f35b6301ffc9a760e01b1490505f61033e565b5f80fd5b3461035a5760408060031936011261035a57600435906024359061038061202e565b825f526002602052805f2054821161041a57825f526003602052816103a6825f206128d7565b1461040a5781610405916103f57e899d104fc3d8820bd96540612bcc5c448c8837b13b9f7faa43ad0728f0c14f946103e6875f52600360205260405f2090565b6103ef42612d7a565b90612176565b5050519081529081906020820190565b0390a2005b5163a741a04560e01b8152600490fd5b51631eefc06360e31b8152600490fd5b6001600160a01b0381160361035a57565b6024359065ffffffffffff8216820361035a57565b6064359065ffffffffffff8216820361035a57565b608090600319011261035a5760043561047d8161042a565b906024359060443561048e8161042a565b9060643565ffffffffffff8116810361035a5790565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b3461035a576104f96104e56104dc36610465565b92919091611736565b6040519182916020835260208301906104a4565b0390f35b3461035a575f36600319011261035a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461035a575f36600319011261035a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461035a57604036600319011261035a5761059e61043b565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163303610602576105e5906004355f52600360205260405f206122f5565b60408051941515855263ffffffff91909116602085015292915050f35b604051637ca475e560e11b8152600490fd5b634e487b7160e01b5f52604160045260245ffd5b604081019081106001600160401b0382111761064357604052565b610614565b606081019081106001600160401b0382111761064357604052565b60a081019081106001600160401b0382111761064357604052565b90601f801991011681019081106001600160401b0382111761064357604052565b604051906106ac82610663565b565b604051906106ac82610628565b6001600160401b03811161064357601f01601f191660200190565b81601f8201121561035a578035906106ed826106bb565b926106fb604051948561067e565b8284526020838301011161035a57815f926020809301838601378301015290565b90608060031983011261035a57600435916024356107398161042a565b9160443565ffffffffffff8116810361035a5791606435906001600160401b03821161035a5761076b916004016106d6565b90565b3461035a5760206107ac6107a76107843661071c565b939190925f526005865260405f209060018060a01b03165f5260205260405f2090565b61242d565b604051908152f35b3461035a575f36600319011261035a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461035a57604036600319011261035a576004356001600160601b038116810361035a5760243590610828612505565b6040516302910f8b60e31b81523360048201526020816024816001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165afa908115610979575f9161094a575b5015610938576001600160601b03166bffffffffffffffffffffffff193360601b161790806108b2835f52600260205260405f2090565b54146109265761090b817fc67e7929681aa1bccd63f52b3799bf5805f3009f197db6fdf584b14f7fbf608c926108f0855f52600260205260405f2090565b556108fb8185612534565b6040519081529081906020820190565b0390a261092460015f8051602061366d83398151915255565b005b60405163a741a04560e01b8152600490fd5b6040516323d53b9760e21b8152600490fd5b61096c915060203d602011610972575b610964818361067e565b8101906117e8565b5f61087b565b503d61095a565b6117fc565b3461035a57602036600319011261035a576004355f525f8051602061364d8339815191526020526020600160405f200154604051908152f35b3461035a576104f96104e56109cb36610465565b92919091611904565b3461035a575f36600319011261035a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461035a57604036600319011261035a57610924602435600435610a3b8261042a565b805f525f8051602061364d833981519152602052610a5f600160405f2001546120e1565b61280f565b3461035a57604036600319011261035a57602435610a818161042a565b336001600160a01b03821603610a9d5761092490600435612845565b60405163334bd91960e11b8152600490fd5b3461035a57602036600319011261035a57600435610acc8161042a565b610ad4612505565b335f9081527f9ebbcbe0d2961d3fbe56ca6f679bc753bd848d3e6bb3eaf9041c51b286881d2c60205260409020547fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c9060ff1615610b8a57506001546001600160a01b039182169181168214610926576001600160a01b03191681176001557f5bbb1d3ebb6a3ad2a0f17ff35e579a83af60604d1d3c2a4c83c62adecadf666d5f80a260015f8051602061366d83398151915255005b6044906040519063e2517d3f60e01b82523360048301526024820152fd5b3461035a57602036600319011261035a576004355f52600360205260206107ac60405f206128d7565b3461035a57604036600319011261035a5760206107ac610c18602435610bf68161042a565b6004355f526005845260405f209060018060a01b03165f5260205260405f2090565b6128d7565b9181601f8401121561035a578235916001600160401b03831161035a576020838186019501011161035a57565b3461035a57602036600319011261035a576001600160401b0360043581811161035a57610c7b903690600401610c1d565b5f8051602061368d833981519152549260ff8460401c1615931680159081610d7a575b6001149081610d70575b159081610d67575b50610d55575f8051602061368d833981519152805467ffffffffffffffff19166001179055610ce39183610d3157612950565b610ce957005b5f8051602061368d833981519152805460ff60401b19169055604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a1005b5f8051602061368d833981519152805460ff60401b1916600160401b179055612950565b60405163f92ee8a960e01b8152600490fd5b9050155f610cb0565b303b159150610ca8565b849150610c9e565b3461035a575f36600319011261035a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461035a575f36600319011261035a576020604051614e208152f35b606060031982011261035a576004359160243565ffffffffffff8116810361035a5791604435906001600160401b03821161035a5761076b916004016106d6565b3461035a5760206107ac610e3636610de2565b915f526003845260405f2061242d565b3461035a575f36600319011261035a5760206040517fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c8152f35b3461035a575f36600319011261035a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461035a575f36600319011261035a5760206040517e8b9b1e5fa9cf3b14f87f435649268146305ddf689f082e5961a335b07a9abf8152f35b3461035a575f36600319011261035a576001546040516001600160a01b039091168152602090f35b3461035a5760206107ac610f3836610de2565b915f526004845260405f2061242d565b3461035a57604036600319011261035a57602060ff610f9a602435610f6c8161042a565b6004355f525f8051602061364d833981519152845260405f209060018060a01b03165f5260205260405f2090565b54166040519015158152f35b3461035a57606036600319011261035a57602435610fc38161042a565b60443565ffffffffffff8116810361035a577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633036106025761102f6105e5926004355f52600560205260405f209060018060a01b03165f5260205260405f2090565b6122f5565b3461035a575f36600319011261035a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461035a57604036600319011261035a576004356110958161042a565b6024356001600160401b03811161035a575f916110b783923690600401610c1d565b90816040519283928337810184815203915af46111046110d5611b60565b916110f66040519384921515602084015260408084015260608301906104a4565b03601f19810183528261067e565b805190602001fd5b3461035a575f36600319011261035a5760206040515f8152f35b3461035a57606036600319011261035a576024356004356111468261042a565b6044359161115261208a565b5f8281526005602090815260408083206001600160a01b0385168452909152902061117c906128d7565b838114610926577f739a5a3ec0ff71e2386d0013deac5f44e0935a98def2e2a5ddf9a709518c8294916111ef61123c92855f52600460205260405f20906111e9886111e46111c942612d7a565b936111df610c188c5f52600460205260405f2090565b611bb6565b611bd1565b91612176565b5050611220856103e68361120b885f52600560205260405f2090565b9060018060a01b03165f5260205260405f2090565b50506040519485526001600160a01b0316939081906020820190565b0390a3005b606090600319011261035a576004356112598161042a565b906024359060443565ffffffffffff8116810361035a5790565b3461035a576104f96104e561128736611241565b91611bde565b3461035a575f36600319011261035a5760206040516001600160401b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461035a575f36600319011261035a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461035a57602036600319011261035a576004355f52600460205260206107ac60405f206128d7565b3461035a57602036600319011261035a576004355f526002602052602060405f2054604051908152f35b3461035a57604036600319011261035a5761092460243560043561138a8261042a565b805f525f8051602061364d8339815191526020526113ae600160405f2001546120e1565b612845565b3461035a576104f96104e56113c736611241565b91611c28565b3461035a5760206107ac6113e03661071c565b92919091611d24565b3461035a5760a036600319011261035a576024356004356114098261042a565b60443591611415610450565b90608435906001600160401b03821161035a57611437600492369084016106d6565b61143f612505565b5f5460209061146490611458906001600160a01b031681565b6001600160a01b031690565b60405163b134427160e01b815294859182905afa928315610979575f936115a3575b506001600160a01b039283163303611591576001546001600160a01b0316838116611506575b50506040805195865265ffffffffffff909316602086015216927f741a5de99085c0d660f3e4192217b0ffb0ea4e35a0480de48e857a4bc3ee36ed91819081015b0390a361092460015f8051602061366d83398151915255565b90936040519461153d8661152f602082019363724ab0f760e11b8552858c898d60248701611eae565b03601f19810188528761067e565b62042e305a1061157f575f6114ed938192827f741a5de99085c0d660f3e4192217b0ffb0ea4e35a0480de48e857a4bc3ee36ed9951926203d090f150936114ac565b604051638072475160e01b8152600490fd5b60405163dabc4ad960e01b8152600490fd5b6115c691935060203d6020116115cd575b6115be818361067e565b810190611872565b915f611486565b503d6115b4565b3461035a575f36600319011261035a5760206040517f1312a1cf530e56add9be4fd84db9051dcc7635952f09f735f9a29405b55846258152f35b3461035a57604036600319011261035a5761162761043b565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163303610602576105e5906004355f52600460205260405f206122f5565b3461035a575f36600319011261035a575f546040516001600160a01b039091168152602090f35b3461035a57604036600319011261035a5760206107ac6024356116b78161042a565b600435611f04565b3461035a575f36600319011261035a5760206040516203d0908152f35b3461035a575f36600319011261035a57602060405160018152f35b5190811515820361035a57565b519063ffffffff8216820361035a57565b919082604091031261035a5761076b602061172f846116f7565b9301611704565b906117869165ffffffffffff6117959496956060976040519463130f67dd60e31b6020870152602486015260018060a01b031660448501521660648301526064825261178182610663565b612238565b60208082518301019101611715565b9061179d5750565b90915063ffffffff604051911660208201526020815261076b81610628565b5f9081526005602090815260408083206001600160a01b0390941683529290522061076b92919061242d565b9081602091031261035a5761076b906116f7565b6040513d5f823e3d90fd5b81601f8201121561035a5780519061181e826106bb565b9261182c604051948561067e565b8284526020838301011161035a57815f9260208093018386015e8301015290565b9060208282031261035a5781516001600160401b03811161035a5761076b9201611807565b9081602091031261035a575161076b8161042a565b9061076b91602081526118a6825160a0602084015260c08301906104a4565b9060a060806118f46118e16118cd602088015196601f1997888883030160408901526104a4565b6040880151878783030160608801526104a4565b60608701518686830301848701526104a4565b94015192828503019101526104a4565b604051630df8851f60e11b81526001600160a01b03828116600483015260248201849052848116604483015265ffffffffffff8616606483015295606095909491935f856084817f00000000000000000000000000000000000000000000000000000000000000008c165afa948515610979575f95611b18575b5060405163fbfa77cf60e01b8152602081600481888d165afa908115610979576119ea995f9285928491611af9575b5060405163192c0ff760e21b81526001600160a01b03909116600482015265ffffffffffff909216602483015290998a9190829081906044820190565b03917f0000000000000000000000000000000000000000000000000000000000000000165afa978815610979575f98611acf575b509081611a3b82611a3381611a419689611c28565b958388611736565b94611bde565b90835115801590611ac5575b8015611abb575b8015611ab1575b8015611aa7575b611a6f5750505050909150565b6110f6955061076b9496611a8161069f565b948552602085015260408401526060830152608082015260405192839160208301611887565b5081511515611a62565b5082511515611a5b565b5080511515611a54565b5086511515611a4d565b611a4192919850611af1903d805f833e611ae9818361067e565b81019061184d565b979091611a1e565b611b12915060203d6020116115cd576115be818361067e565b5f6119ad565b611b2d9195503d805f833e611ae9818361067e565b935f61197e565b9061076b92915f52600360205260405f2061242d565b9061076b92915f52600460205260405f2061242d565b3d15611b8a573d90611b71826106bb565b91611b7f604051938461067e565b82523d5f602084013e565b606090565b634e487b7160e01b5f52601160045260245ffd5b5f19810191908211611bb157565b611b8f565b91908203918211611bb157565b9060018201809211611bb157565b91908201809211611bb157565b60405163ed4d89e560e01b6020820152602481019290925265ffffffffffff909216604482015260609291611795916117869161178182606481015b03601f19810184528361067e565b604051630cbd53f560e11b6020820152602481019290925265ffffffffffff90921660448201526060929161179591611786916117818260648101611c1a565b60405190611c7582610628565b60606020838281520152565b9060208282031261035a5781516001600160401b039283821161035a57019060408282031261035a5760405192611cb784610628565b825181811161035a5782611ccc918501611807565b8452602083015190811161035a57611ce49201611807565b602082015290565b6001600160a01b0391821681529116602082015265ffffffffffff909116604082015260806060820181905261076b929101906104a4565b92611d3490929192828486612bb5565b929093611d3f611c68565b93805180611e92575b50508415938415611dfc575b8415611d6b575b50505050611d665790565b505f90565b602080949550611d96910151604051958694859463530e1d4360e01b865260601c9060048601611cec565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa908115610979575f91611ddd575b50155f808080611d5b565b611df6915060203d60201161097257610964818361067e565b5f611dd2565b5f549094506001600160a01b0316602084865192611e2f604051948593849363530e1d4360e01b85528960048601611cec565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa908115610979575f91611e73575b501593611d54565b611e8c915060203d60201161097257610964818361067e565b5f611e6b565b611ea6929550602080918301019101611c81565b925f80611d48565b919360a09361076b969565ffffffffffff938552600180871b03166020850152604084015216606082015281608082015201906104a4565b8115611ef0570490565b634e487b7160e01b5f52601260045260245ffd5b5f546040516308834cb560e21b8082526001600160a01b0385811660048401529283166024830152929392602092909183816044817f000000000000000000000000000000000000000000000000000000000000000086165afa908115610979575f91612011575b5015918215611f8d575b50509050611f875761076b91612cc5565b50505f90565b6040519081526001600160a01b0385166004820152606086901c602482015291508290829060449082907f0000000000000000000000000000000000000000000000000000000000000000165afa918215610979575f92611ff4575b505015805f80611f76565b61200a9250803d1061097257610964818361067e565b5f80611fe9565b6120289150843d861161097257610964818361067e565b5f611f6c565b335f9081527f72a65082a5691803ab2b62c9bc729b34205ba1b183d950896526b2fd8714d0c7602052604090207e8b9b1e5fa9cf3b14f87f435649268146305ddf689f082e5961a335b07a9abf9060ff905b541615610b8a5750565b335f9081527f8f2dae99798887da307a4daa2c2d11f840b0cb9a6a67822660c531e9ad14dd00602052604090207f1312a1cf530e56add9be4fd84db9051dcc7635952f09f735f9a29405b55846259060ff90612080565b5f8181525f8051602061364d83398151915260209081526040808320338452909152902060ff90612080565b634e487b7160e01b5f52603260045260245ffd5b8054821015612136575f5260205f2001905f90565b61210d565b90815491600160401b831015610643578261215e9160016106ac95018155612121565b90919082549060031b91821b915f19901b1916179055565b90929192600182019081548015612208575b508461219384612dac565b509490928454936121a3836128d7565b96816121f3575b50156121d0575050505f198101908111611bb15761215e85916121cc93612121565b9190565b6121cc9492936121ec926001600160d01b03909116919061349c565b505061213b565b65ffffffffffff83811691161490505f6121aa565b600160401b811015610643578060016122249201845583612121565b8154905f199060031b1b191690555f612188565b5f9190829160405161226d816110f66020820194639f86fd8560e01b86523060248401526040604484015260648301906104a4565b51915afa5061227a611b60565b8051810160408282031261035a57612294602083016116f7565b916040810151916001600160401b03831161035a576122ba926020809201920101611807565b90156122c35790565b805190811561035a57602001fd5b906040516122de81610628565b915465ffffffffffff8116835260301c6020830152565b91908254905f82916005841161239d575b612311935085612f2e565b9081156123915761238a61238161237b61237161234361233e61233388611ba3565b895f5260205f200190565b6122d1565b96600161236a602061235b8b5165ffffffffffff1690565b9a01516001600160d01b031690565b9101612121565b90549060031b1c90565b93611ba3565b63ffffffff1690565b6001939291565b5f925082915081908190565b91926123a881612dfb565b8103908111611bb15761231193865f526123dc6123d18360205f200165ffffffffffff90541690565b65ffffffffffff1690565b65ffffffffffff851610156123f2575091612306565b9291506123fe90611bc3565b90612306565b9081602091031261035a5761076b90611704565b90600163ffffffff80931601918211611bb157565b918051156124fb578060208061244893518301019101612404565b916124538382613055565b92612464845165ffffffffffff1690565b9065ffffffffffff80851692168281146124ef578211918261249a575b50506124915761076b9250612f85565b50506020015190565b9091506124a78354611ba3565b63ffffffff8316149182156124c0575b50505f80612481565b6124e79192506124db6124d56123d192612418565b85613055565b5165ffffffffffff1690565b115f806124b7565b50505050506020015190565b5061076b91612f85565b5f8051602061366d83398151915260028154146125225760029055565b604051633ee5aeb560e01b8152600490fd5b90815f52600360205260405f208161254b82612dac565b9193905083156125a95761256b916001600160d01b031690600101612121565b90549060031b1c5b8261259f575b5050612583575050565b61259b915f52600360205260405f206103ef42612d7a565b5050565b119050815f612579565b50505f612573565b6001600160a01b0381165f9081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d60205260409020545f8051602061364d8339815191529060ff16611f87575f808052602091825260408082206001600160a01b038516835290925220805460ff1916600117905533906001600160a01b03165f7f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d8180a4600190565b6001600160a01b0381165f9081527f9ebbcbe0d2961d3fbe56ca6f679bc753bd848d3e6bb3eaf9041c51b286881d2c602052604090207fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c905f8051602061364d8339815191529060ff905b541661272b575f828152602091825260408082206001600160a01b038616835290925220805460ff1916600117905533916001600160a01b0316907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d5f80a4600190565b5050505f90565b6001600160a01b0381165f9081527f72a65082a5691803ab2b62c9bc729b34205ba1b183d950896526b2fd8714d0c7602052604090207e8b9b1e5fa9cf3b14f87f435649268146305ddf689f082e5961a335b07a9abf905f8051602061364d8339815191529060ff906126c7565b6001600160a01b0381165f9081527f8f2dae99798887da307a4daa2c2d11f840b0cb9a6a67822660c531e9ad14dd00602052604090207f1312a1cf530e56add9be4fd84db9051dcc7635952f09f735f9a29405b5584625905f8051602061364d8339815191529060ff906126c7565b5f8181525f8051602061364d833981519152602081815260408084206001600160a01b038716855290915290912060ff906126c7565b5f8181525f8051602061364d833981519152602081815260408084206001600160a01b03871685529091529091205460ff161561272b575f828152602091825260408082206001600160a01b038616835290925220805460ff1916905533916001600160a01b0316907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b5f80a4600190565b8054806128fc57505f5b6001600160d01b03811615611f875760016123719201612121565b5f19908082810111611bb157825f5260205f2001015460301c6128e1565b91909160408184031261035a5780356129328161042a565b9260208201356001600160401b03811161035a5761076b92016106d6565b61295c9181019061291a565b6040516302910f8b60e31b81526001600160a01b039283166004820181905291906020816024817f000000000000000000000000000000000000000000000000000000000000000088165afa908115610979575f91612a6f575b5015612a5d576129f16040916129ec612a37946129d16130bd565b60018060a01b03166001600160601b0360a01b5f5416175f55565b61323d565b6020810151600180546001600160a01b0319166001600160a01b0390921691909117905580516001600160a01b0316848116612a4d575b5001516001600160a01b031690565b908116612a415750565b612a4a9061265c565b50565b612a56906125b1565b505f612a28565b6040516362df054560e01b8152600490fd5b612a88915060203d60201161097257610964818361067e565b5f6129b6565b6040519060a082018281106001600160401b038211176106435760405281608060609182815282602082015282604082015282808201520152565b9060208282031261035a5781516001600160401b039283821161035a57019060a08282031261035a57612afa61069f565b92825181811161035a5782612b10918501611807565b8452602083015181811161035a5782612b2a918501611807565b6020850152604083015181811161035a5782612b47918501611807565b6040850152606083015181811161035a5782612b64918501611807565b6060850152608083015190811161035a57612b7f9201611807565b608082015290565b9081602091031261035a575190565b60409065ffffffffffff61076b949316815281602082015201906104a4565b91939293612bc1612a8e565b94805180612ca9575b5050612bdb60608601518285611b4a565b9182612bed57505050509051905f9190565b612c01612c3b9183608089015191876117bc565b916020612c1a6114586114585f5460018060a01b031690565b8189015190604051808096819463810da75d60e01b83528760048401612b96565b03915afa801561097957612c7195612c6b935f92612c76575b50612c65919260408a015191611b34565b9061339d565b906133af565b915190565b612c659250612c9c9060203d602011612ca2575b612c94818361067e565b810190612b87565b91612c54565b503d612c8a565b612cbd929650602080918301019101612ac9565b935f80612bca565b90612cdb610c18835f52600460205260405f2090565b9081612ce8575050505f90565b610c18612d019161120b855f52600560205260405f2090565b5f5460405163bd49c35f60e01b815290602090829060049082906001600160a01b03165afa80156109795761076b94612c6b925f92612d51575b50610c18612c65915f52600360205260405f2090565b612c65919250612d72610c189160203d602011612ca257612c94818361067e565b929150612d3b565b65ffffffffffff90818111612d8d571690565b604490604051906306dfcc6560e41b8252603060048301526024820152fd5b805480612dbd5750505f905f905f90565b5f19908082810111611bb157612dda925f5260205f2001016122d1565b9065ffffffffffff82511691602060018060d01b0391015116906001929190565b8015611d665780612c65612ec6612ebc612eb2612ea8612e9e612e94612e8a600161076b9a5f908b60801c80612f22575b508060401c80612f15575b508060201c80612f08575b508060101c80612efb575b508060081c80612eee575b508060041c80612ee1575b508060021c80612ed4575b50821c612ecd575b811c1b612e83818b611ee6565b0160011c90565b612e83818a611ee6565b612e838189611ee6565b612e838188611ee6565b612e838187611ee6565b612e838186611ee6565b612e838185611ee6565b8092611ee6565b8101612e76565b600291509101905f612e6e565b600491509101905f612e63565b600891509101905f612e58565b601091509101905f612e4d565b602091509101905f612e42565b604091509101905f612e37565b9150506080905f612e2c565b905b838310612f3d5750505090565b909192612f4a81856135b2565b90835f5265ffffffffffff808360205f20015416908416105f14612f725750925b9190612f30565b93506001810180911115612f6b57611b8f565b908154905f829160058411612fef575b612fa09350846135f5565b80612fc857505f905b6001600160d01b03821615611f875761076b9160016123719201612121565b612fe2612fd7612fe992611ba3565b835f5260205f200190565b5460301c90565b90612fa9565b9192612ffa81612dfb565b8103908111611bb157612fa093855f5265ffffffffffff808360205f20015416908516105f1461302b575091612f95565b92915061303790611bc3565b90612f95565b6040519061304a82610628565b5f6020838281520152565b9061307e61307861309f9261306861303d565b5061307161303d565b5084612121565b506122d1565b91600165ffffffffffff845116936020828060d01b03910151169101612121565b905490604051926130af84610628565b835260031b1c602082015290565b6130c56135c7565b6130cd6135c7565b60015f8051602061366d83398151915255565b604051906130ed82610648565b5f6040838281528260208201520152565b81601f8201121561035a578051916020916001600160401b038411610643578360051b90604051946131328584018761067e565b8552838086019282010192831161035a578301905b828210613155575050505090565b83809183516131638161042a565b815201910190613147565b9060208282031261035a5781516001600160401b039283821161035a5701908181039260a0841261035a576060604051946131a886610648565b1261035a576040516131b981610648565b83516131c48161042a565b815260208401516131d48161042a565b602082015260408401516131e78161042a565b60408201528452606083015181811161035a57826132069185016130fe565b6020850152608083015190811161035a5761322192016130fe565b604082015290565b80518210156121365760209160051b010190565b613259906132496130e0565b506020808251830101910161316e565b8051519091906001600160a01b03161580613383575b613371579060208101905f5b825180518210156132f557611458613296836132a393613229565b516001600160a01b031690565b156132e3576132c56132c16132bc613296848751613229565b612732565b1590565b6132d15760010161327b565b604051635140fefd60e11b8152600490fd5b6040516323cda06760e01b8152600490fd5b506040925050818101905f5b82518051821015613368576114586132968361331c93613229565b156133575761333a6132c1613335613296848751613229565b6127a0565b61334657600101613301565b8351635140fefd60e11b8152600490fd5b83516323cda06760e01b8152600490fd5b50509150505190565b6040516303501f5960e11b8152600490fd5b50602082015151158061326f57506040820151511561326f565b90808210156133aa575090565b905090565b9091828202915f1984820993838086109503948086039514613434578483111561342257829109815f038216809204600280826003021880830282030280830282030280830282030280830282030280830282030280920290030293600183805f03040190848311900302920304170290565b60405163227bc15360e01b8152600490fd5b50509061076b9250611ee6565b8054600160401b8110156106435761345e91600182018155612121565b61348957815160209092015160301b65ffffffffffff191665ffffffffffff92909216919091179055565b634e487b7160e01b5f525f60045260245ffd5b805492939291908215613589576134b861233e612fd785611ba3565b906134c9825165ffffffffffff1690565b65ffffffffffff84811691168110613577576121cc9460209488926134f76123d1875165ffffffffffff1690565b0361353f57506135319261350d61351892611ba3565b905f5260205f200190565b9065ffffffffffff82549181199060301b169116179055565b01516001600160d01b031690565b9150506135729161355f6135516106ae565b65ffffffffffff9093168352565b6001600160d01b03881682860152613441565b613531565b604051632520601d60e01b8152600490fd5b6135ad92506135996135516106ae565b6001600160d01b0385166020830152613441565b5f9190565b90808216911860011c8101809111611bb15790565b60ff5f8051602061368d8339815191525460401c16156135e357565b604051631afcd79f60e31b8152600490fd5b905b8383106136045750505090565b90919261361181856135b2565b90835f5265ffffffffffff808360205f20015416908416105f146136395750925b91906135f7565b9350600181018091111561363257611b8f56fe02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268009b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a264697066735822122029f0973058268d4c15bb68cd12766d98013081e51e50292e237f8f15461e8b6864736f6c63430008190033","sourceMap":"3228:4636:81:-:0;;;;;;;;;;;;;-1:-1:-1;;3228:4636:81;;;;-1:-1:-1;;;;;3228:4636:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;:::i;:::-;348:4:82;;332:21;;8837:64:25;3228:4636:81;;;;;;;;;7896:76:25;;3228:4636:81;;;;7985:34:25;7981:146;;-1:-1:-1;525:17:69;;;-1:-1:-1;525:17:69;;-1:-1:-1;552:12:69;;-1:-1:-1;2360:34:76;;2404:28;;-1:-1:-1;2404:28:76;;2442:57;;-1:-1:-1;2442:57:76;;2509:61;;-1:-1:-1;2509:61:76;;3714:41:81;;;;3765:24;;;;3799:40;;;;3228:4636;;;;;;;;332:21:82;3228:4636:81;;;;;;;;;;;;;;;525:17:69;3228:4636:81;;;;;552:12:69;3228:4636:81;;;;;2360:34:76;3228:4636:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7981:146:25;-1:-1:-1;;;;;;3228:4636:81;;;;;;;;;;;;;8087:29:25;;3228:4636:81;;8087:29:25;7981:146;;;;;7896:76;3228:4636:81;;-1:-1:-1;;;7938:23:25;;;;;3228:4636:81;-1:-1:-1;3228:4636:81;;;;;;-1:-1:-1;3228:4636:81;;;;;-1:-1:-1;3228:4636:81;;;;-1:-1:-1;;;;;3228:4636:81;;;;;;:::o","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361015610011575f80fd5b5f3560e01c806301ffc9a71461030457806302145348146102ff57806307f9d5fd146102fa578063103f2907146102f5578063128e5d82146102f0578063197aa7ea146102eb5780631a7a7044146102e65780631a80e500146102e157806323f752d5146102dc578063248a9ca3146102d757806325dc9708146102d25780632dd31000146102cd5780632f2ff15d146102c857806336568abe146102c35780633dfd3873146102be5780633eb22c0f146102b957806342c53e33146102b4578063439fab91146102af57806345e78fcb146102aa578063557cab44146102a55780635d32a1c9146102a05780636679191e1461029b57806379d89614146102965780637d24bb27146102915780637f5a7c7b1461028c5780638b3f10b01461028757806391d1485414610282578063987b3ee81461027d5780639b656b22146102785780639f86fd8514610273578063a217fddf1461026e578063a33bc28714610269578063b549ef1f14610264578063bb24fe8a1461025f578063c0cd7c3e1461025a578063c43dc03f14610255578063d15b740e14610250578063d547741f1461024b578063da749d2b14610246578063e02f693714610241578063e49561ee1461023c578063e78eb6ae14610237578063ed4d89e514610232578063fbfa77cf1461022d578063fd4d447c14610228578063ff54740f146102235763ffa1ad741461021e575f80fd5b6116dc565b6116bf565b611695565b61166e565b61160e565b6115d4565b6113e9565b6113cd565b6113b3565b611367565b61133d565b611314565b6112d0565b61128d565b611273565b611126565b61110c565b611078565b611034565b610fa6565b610f48565b610f25565b610efd565b610ec4565b610e80565b610e46565b610e23565b610dc6565b610d82565b610c4a565b610bd1565b610ba8565b610aaf565b610a64565b610a18565b6109d4565b6109b7565b61097e565b6107f8565b6107b4565b61076e565b610585565b610541565b6104fd565b6104c8565b61035e565b3461035a57602036600319011261035a5760043563ffffffff60e01b811680910361035a57602090637965db0b60e01b8114908115610349575b506040519015158152f35b6301ffc9a760e01b1490505f61033e565b5f80fd5b3461035a5760408060031936011261035a57600435906024359061038061202e565b825f526002602052805f2054821161041a57825f526003602052816103a6825f206128d7565b1461040a5781610405916103f57e899d104fc3d8820bd96540612bcc5c448c8837b13b9f7faa43ad0728f0c14f946103e6875f52600360205260405f2090565b6103ef42612d7a565b90612176565b5050519081529081906020820190565b0390a2005b5163a741a04560e01b8152600490fd5b51631eefc06360e31b8152600490fd5b6001600160a01b0381160361035a57565b6024359065ffffffffffff8216820361035a57565b6064359065ffffffffffff8216820361035a57565b608090600319011261035a5760043561047d8161042a565b906024359060443561048e8161042a565b9060643565ffffffffffff8116810361035a5790565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b3461035a576104f96104e56104dc36610465565b92919091611736565b6040519182916020835260208301906104a4565b0390f35b3461035a575f36600319011261035a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461035a575f36600319011261035a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461035a57604036600319011261035a5761059e61043b565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163303610602576105e5906004355f52600360205260405f206122f5565b60408051941515855263ffffffff91909116602085015292915050f35b604051637ca475e560e11b8152600490fd5b634e487b7160e01b5f52604160045260245ffd5b604081019081106001600160401b0382111761064357604052565b610614565b606081019081106001600160401b0382111761064357604052565b60a081019081106001600160401b0382111761064357604052565b90601f801991011681019081106001600160401b0382111761064357604052565b604051906106ac82610663565b565b604051906106ac82610628565b6001600160401b03811161064357601f01601f191660200190565b81601f8201121561035a578035906106ed826106bb565b926106fb604051948561067e565b8284526020838301011161035a57815f926020809301838601378301015290565b90608060031983011261035a57600435916024356107398161042a565b9160443565ffffffffffff8116810361035a5791606435906001600160401b03821161035a5761076b916004016106d6565b90565b3461035a5760206107ac6107a76107843661071c565b939190925f526005865260405f209060018060a01b03165f5260205260405f2090565b61242d565b604051908152f35b3461035a575f36600319011261035a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461035a57604036600319011261035a576004356001600160601b038116810361035a5760243590610828612505565b6040516302910f8b60e31b81523360048201526020816024816001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165afa908115610979575f9161094a575b5015610938576001600160601b03166bffffffffffffffffffffffff193360601b161790806108b2835f52600260205260405f2090565b54146109265761090b817fc67e7929681aa1bccd63f52b3799bf5805f3009f197db6fdf584b14f7fbf608c926108f0855f52600260205260405f2090565b556108fb8185612534565b6040519081529081906020820190565b0390a261092460015f8051602061366d83398151915255565b005b60405163a741a04560e01b8152600490fd5b6040516323d53b9760e21b8152600490fd5b61096c915060203d602011610972575b610964818361067e565b8101906117e8565b5f61087b565b503d61095a565b6117fc565b3461035a57602036600319011261035a576004355f525f8051602061364d8339815191526020526020600160405f200154604051908152f35b3461035a576104f96104e56109cb36610465565b92919091611904565b3461035a575f36600319011261035a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461035a57604036600319011261035a57610924602435600435610a3b8261042a565b805f525f8051602061364d833981519152602052610a5f600160405f2001546120e1565b61280f565b3461035a57604036600319011261035a57602435610a818161042a565b336001600160a01b03821603610a9d5761092490600435612845565b60405163334bd91960e11b8152600490fd5b3461035a57602036600319011261035a57600435610acc8161042a565b610ad4612505565b335f9081527f9ebbcbe0d2961d3fbe56ca6f679bc753bd848d3e6bb3eaf9041c51b286881d2c60205260409020547fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c9060ff1615610b8a57506001546001600160a01b039182169181168214610926576001600160a01b03191681176001557f5bbb1d3ebb6a3ad2a0f17ff35e579a83af60604d1d3c2a4c83c62adecadf666d5f80a260015f8051602061366d83398151915255005b6044906040519063e2517d3f60e01b82523360048301526024820152fd5b3461035a57602036600319011261035a576004355f52600360205260206107ac60405f206128d7565b3461035a57604036600319011261035a5760206107ac610c18602435610bf68161042a565b6004355f526005845260405f209060018060a01b03165f5260205260405f2090565b6128d7565b9181601f8401121561035a578235916001600160401b03831161035a576020838186019501011161035a57565b3461035a57602036600319011261035a576001600160401b0360043581811161035a57610c7b903690600401610c1d565b5f8051602061368d833981519152549260ff8460401c1615931680159081610d7a575b6001149081610d70575b159081610d67575b50610d55575f8051602061368d833981519152805467ffffffffffffffff19166001179055610ce39183610d3157612950565b610ce957005b5f8051602061368d833981519152805460ff60401b19169055604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a1005b5f8051602061368d833981519152805460ff60401b1916600160401b179055612950565b60405163f92ee8a960e01b8152600490fd5b9050155f610cb0565b303b159150610ca8565b849150610c9e565b3461035a575f36600319011261035a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461035a575f36600319011261035a576020604051614e208152f35b606060031982011261035a576004359160243565ffffffffffff8116810361035a5791604435906001600160401b03821161035a5761076b916004016106d6565b3461035a5760206107ac610e3636610de2565b915f526003845260405f2061242d565b3461035a575f36600319011261035a5760206040517fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c8152f35b3461035a575f36600319011261035a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461035a575f36600319011261035a5760206040517e8b9b1e5fa9cf3b14f87f435649268146305ddf689f082e5961a335b07a9abf8152f35b3461035a575f36600319011261035a576001546040516001600160a01b039091168152602090f35b3461035a5760206107ac610f3836610de2565b915f526004845260405f2061242d565b3461035a57604036600319011261035a57602060ff610f9a602435610f6c8161042a565b6004355f525f8051602061364d833981519152845260405f209060018060a01b03165f5260205260405f2090565b54166040519015158152f35b3461035a57606036600319011261035a57602435610fc38161042a565b60443565ffffffffffff8116810361035a577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633036106025761102f6105e5926004355f52600560205260405f209060018060a01b03165f5260205260405f2090565b6122f5565b3461035a575f36600319011261035a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461035a57604036600319011261035a576004356110958161042a565b6024356001600160401b03811161035a575f916110b783923690600401610c1d565b90816040519283928337810184815203915af46111046110d5611b60565b916110f66040519384921515602084015260408084015260608301906104a4565b03601f19810183528261067e565b805190602001fd5b3461035a575f36600319011261035a5760206040515f8152f35b3461035a57606036600319011261035a576024356004356111468261042a565b6044359161115261208a565b5f8281526005602090815260408083206001600160a01b0385168452909152902061117c906128d7565b838114610926577f739a5a3ec0ff71e2386d0013deac5f44e0935a98def2e2a5ddf9a709518c8294916111ef61123c92855f52600460205260405f20906111e9886111e46111c942612d7a565b936111df610c188c5f52600460205260405f2090565b611bb6565b611bd1565b91612176565b5050611220856103e68361120b885f52600560205260405f2090565b9060018060a01b03165f5260205260405f2090565b50506040519485526001600160a01b0316939081906020820190565b0390a3005b606090600319011261035a576004356112598161042a565b906024359060443565ffffffffffff8116810361035a5790565b3461035a576104f96104e561128736611241565b91611bde565b3461035a575f36600319011261035a5760206040516001600160401b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461035a575f36600319011261035a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461035a57602036600319011261035a576004355f52600460205260206107ac60405f206128d7565b3461035a57602036600319011261035a576004355f526002602052602060405f2054604051908152f35b3461035a57604036600319011261035a5761092460243560043561138a8261042a565b805f525f8051602061364d8339815191526020526113ae600160405f2001546120e1565b612845565b3461035a576104f96104e56113c736611241565b91611c28565b3461035a5760206107ac6113e03661071c565b92919091611d24565b3461035a5760a036600319011261035a576024356004356114098261042a565b60443591611415610450565b90608435906001600160401b03821161035a57611437600492369084016106d6565b61143f612505565b5f5460209061146490611458906001600160a01b031681565b6001600160a01b031690565b60405163b134427160e01b815294859182905afa928315610979575f936115a3575b506001600160a01b039283163303611591576001546001600160a01b0316838116611506575b50506040805195865265ffffffffffff909316602086015216927f741a5de99085c0d660f3e4192217b0ffb0ea4e35a0480de48e857a4bc3ee36ed91819081015b0390a361092460015f8051602061366d83398151915255565b90936040519461153d8661152f602082019363724ab0f760e11b8552858c898d60248701611eae565b03601f19810188528761067e565b62042e305a1061157f575f6114ed938192827f741a5de99085c0d660f3e4192217b0ffb0ea4e35a0480de48e857a4bc3ee36ed9951926203d090f150936114ac565b604051638072475160e01b8152600490fd5b60405163dabc4ad960e01b8152600490fd5b6115c691935060203d6020116115cd575b6115be818361067e565b810190611872565b915f611486565b503d6115b4565b3461035a575f36600319011261035a5760206040517f1312a1cf530e56add9be4fd84db9051dcc7635952f09f735f9a29405b55846258152f35b3461035a57604036600319011261035a5761162761043b565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163303610602576105e5906004355f52600460205260405f206122f5565b3461035a575f36600319011261035a575f546040516001600160a01b039091168152602090f35b3461035a57604036600319011261035a5760206107ac6024356116b78161042a565b600435611f04565b3461035a575f36600319011261035a5760206040516203d0908152f35b3461035a575f36600319011261035a57602060405160018152f35b5190811515820361035a57565b519063ffffffff8216820361035a57565b919082604091031261035a5761076b602061172f846116f7565b9301611704565b906117869165ffffffffffff6117959496956060976040519463130f67dd60e31b6020870152602486015260018060a01b031660448501521660648301526064825261178182610663565b612238565b60208082518301019101611715565b9061179d5750565b90915063ffffffff604051911660208201526020815261076b81610628565b5f9081526005602090815260408083206001600160a01b0390941683529290522061076b92919061242d565b9081602091031261035a5761076b906116f7565b6040513d5f823e3d90fd5b81601f8201121561035a5780519061181e826106bb565b9261182c604051948561067e565b8284526020838301011161035a57815f9260208093018386015e8301015290565b9060208282031261035a5781516001600160401b03811161035a5761076b9201611807565b9081602091031261035a575161076b8161042a565b9061076b91602081526118a6825160a0602084015260c08301906104a4565b9060a060806118f46118e16118cd602088015196601f1997888883030160408901526104a4565b6040880151878783030160608801526104a4565b60608701518686830301848701526104a4565b94015192828503019101526104a4565b604051630df8851f60e11b81526001600160a01b03828116600483015260248201849052848116604483015265ffffffffffff8616606483015295606095909491935f856084817f00000000000000000000000000000000000000000000000000000000000000008c165afa948515610979575f95611b18575b5060405163fbfa77cf60e01b8152602081600481888d165afa908115610979576119ea995f9285928491611af9575b5060405163192c0ff760e21b81526001600160a01b03909116600482015265ffffffffffff909216602483015290998a9190829081906044820190565b03917f0000000000000000000000000000000000000000000000000000000000000000165afa978815610979575f98611acf575b509081611a3b82611a3381611a419689611c28565b958388611736565b94611bde565b90835115801590611ac5575b8015611abb575b8015611ab1575b8015611aa7575b611a6f5750505050909150565b6110f6955061076b9496611a8161069f565b948552602085015260408401526060830152608082015260405192839160208301611887565b5081511515611a62565b5082511515611a5b565b5080511515611a54565b5086511515611a4d565b611a4192919850611af1903d805f833e611ae9818361067e565b81019061184d565b979091611a1e565b611b12915060203d6020116115cd576115be818361067e565b5f6119ad565b611b2d9195503d805f833e611ae9818361067e565b935f61197e565b9061076b92915f52600360205260405f2061242d565b9061076b92915f52600460205260405f2061242d565b3d15611b8a573d90611b71826106bb565b91611b7f604051938461067e565b82523d5f602084013e565b606090565b634e487b7160e01b5f52601160045260245ffd5b5f19810191908211611bb157565b611b8f565b91908203918211611bb157565b9060018201809211611bb157565b91908201809211611bb157565b60405163ed4d89e560e01b6020820152602481019290925265ffffffffffff909216604482015260609291611795916117869161178182606481015b03601f19810184528361067e565b604051630cbd53f560e11b6020820152602481019290925265ffffffffffff90921660448201526060929161179591611786916117818260648101611c1a565b60405190611c7582610628565b60606020838281520152565b9060208282031261035a5781516001600160401b039283821161035a57019060408282031261035a5760405192611cb784610628565b825181811161035a5782611ccc918501611807565b8452602083015190811161035a57611ce49201611807565b602082015290565b6001600160a01b0391821681529116602082015265ffffffffffff909116604082015260806060820181905261076b929101906104a4565b92611d3490929192828486612bb5565b929093611d3f611c68565b93805180611e92575b50508415938415611dfc575b8415611d6b575b50505050611d665790565b505f90565b602080949550611d96910151604051958694859463530e1d4360e01b865260601c9060048601611cec565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa908115610979575f91611ddd575b50155f808080611d5b565b611df6915060203d60201161097257610964818361067e565b5f611dd2565b5f549094506001600160a01b0316602084865192611e2f604051948593849363530e1d4360e01b85528960048601611cec565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa908115610979575f91611e73575b501593611d54565b611e8c915060203d60201161097257610964818361067e565b5f611e6b565b611ea6929550602080918301019101611c81565b925f80611d48565b919360a09361076b969565ffffffffffff938552600180871b03166020850152604084015216606082015281608082015201906104a4565b8115611ef0570490565b634e487b7160e01b5f52601260045260245ffd5b5f546040516308834cb560e21b8082526001600160a01b0385811660048401529283166024830152929392602092909183816044817f000000000000000000000000000000000000000000000000000000000000000086165afa908115610979575f91612011575b5015918215611f8d575b50509050611f875761076b91612cc5565b50505f90565b6040519081526001600160a01b0385166004820152606086901c602482015291508290829060449082907f0000000000000000000000000000000000000000000000000000000000000000165afa918215610979575f92611ff4575b505015805f80611f76565b61200a9250803d1061097257610964818361067e565b5f80611fe9565b6120289150843d861161097257610964818361067e565b5f611f6c565b335f9081527f72a65082a5691803ab2b62c9bc729b34205ba1b183d950896526b2fd8714d0c7602052604090207e8b9b1e5fa9cf3b14f87f435649268146305ddf689f082e5961a335b07a9abf9060ff905b541615610b8a5750565b335f9081527f8f2dae99798887da307a4daa2c2d11f840b0cb9a6a67822660c531e9ad14dd00602052604090207f1312a1cf530e56add9be4fd84db9051dcc7635952f09f735f9a29405b55846259060ff90612080565b5f8181525f8051602061364d83398151915260209081526040808320338452909152902060ff90612080565b634e487b7160e01b5f52603260045260245ffd5b8054821015612136575f5260205f2001905f90565b61210d565b90815491600160401b831015610643578261215e9160016106ac95018155612121565b90919082549060031b91821b915f19901b1916179055565b90929192600182019081548015612208575b508461219384612dac565b509490928454936121a3836128d7565b96816121f3575b50156121d0575050505f198101908111611bb15761215e85916121cc93612121565b9190565b6121cc9492936121ec926001600160d01b03909116919061349c565b505061213b565b65ffffffffffff83811691161490505f6121aa565b600160401b811015610643578060016122249201845583612121565b8154905f199060031b1b191690555f612188565b5f9190829160405161226d816110f66020820194639f86fd8560e01b86523060248401526040604484015260648301906104a4565b51915afa5061227a611b60565b8051810160408282031261035a57612294602083016116f7565b916040810151916001600160401b03831161035a576122ba926020809201920101611807565b90156122c35790565b805190811561035a57602001fd5b906040516122de81610628565b915465ffffffffffff8116835260301c6020830152565b91908254905f82916005841161239d575b612311935085612f2e565b9081156123915761238a61238161237b61237161234361233e61233388611ba3565b895f5260205f200190565b6122d1565b96600161236a602061235b8b5165ffffffffffff1690565b9a01516001600160d01b031690565b9101612121565b90549060031b1c90565b93611ba3565b63ffffffff1690565b6001939291565b5f925082915081908190565b91926123a881612dfb565b8103908111611bb15761231193865f526123dc6123d18360205f200165ffffffffffff90541690565b65ffffffffffff1690565b65ffffffffffff851610156123f2575091612306565b9291506123fe90611bc3565b90612306565b9081602091031261035a5761076b90611704565b90600163ffffffff80931601918211611bb157565b918051156124fb578060208061244893518301019101612404565b916124538382613055565b92612464845165ffffffffffff1690565b9065ffffffffffff80851692168281146124ef578211918261249a575b50506124915761076b9250612f85565b50506020015190565b9091506124a78354611ba3565b63ffffffff8316149182156124c0575b50505f80612481565b6124e79192506124db6124d56123d192612418565b85613055565b5165ffffffffffff1690565b115f806124b7565b50505050506020015190565b5061076b91612f85565b5f8051602061366d83398151915260028154146125225760029055565b604051633ee5aeb560e01b8152600490fd5b90815f52600360205260405f208161254b82612dac565b9193905083156125a95761256b916001600160d01b031690600101612121565b90549060031b1c5b8261259f575b5050612583575050565b61259b915f52600360205260405f206103ef42612d7a565b5050565b119050815f612579565b50505f612573565b6001600160a01b0381165f9081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d60205260409020545f8051602061364d8339815191529060ff16611f87575f808052602091825260408082206001600160a01b038516835290925220805460ff1916600117905533906001600160a01b03165f7f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d8180a4600190565b6001600160a01b0381165f9081527f9ebbcbe0d2961d3fbe56ca6f679bc753bd848d3e6bb3eaf9041c51b286881d2c602052604090207fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c905f8051602061364d8339815191529060ff905b541661272b575f828152602091825260408082206001600160a01b038616835290925220805460ff1916600117905533916001600160a01b0316907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d5f80a4600190565b5050505f90565b6001600160a01b0381165f9081527f72a65082a5691803ab2b62c9bc729b34205ba1b183d950896526b2fd8714d0c7602052604090207e8b9b1e5fa9cf3b14f87f435649268146305ddf689f082e5961a335b07a9abf905f8051602061364d8339815191529060ff906126c7565b6001600160a01b0381165f9081527f8f2dae99798887da307a4daa2c2d11f840b0cb9a6a67822660c531e9ad14dd00602052604090207f1312a1cf530e56add9be4fd84db9051dcc7635952f09f735f9a29405b5584625905f8051602061364d8339815191529060ff906126c7565b5f8181525f8051602061364d833981519152602081815260408084206001600160a01b038716855290915290912060ff906126c7565b5f8181525f8051602061364d833981519152602081815260408084206001600160a01b03871685529091529091205460ff161561272b575f828152602091825260408082206001600160a01b038616835290925220805460ff1916905533916001600160a01b0316907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b5f80a4600190565b8054806128fc57505f5b6001600160d01b03811615611f875760016123719201612121565b5f19908082810111611bb157825f5260205f2001015460301c6128e1565b91909160408184031261035a5780356129328161042a565b9260208201356001600160401b03811161035a5761076b92016106d6565b61295c9181019061291a565b6040516302910f8b60e31b81526001600160a01b039283166004820181905291906020816024817f000000000000000000000000000000000000000000000000000000000000000088165afa908115610979575f91612a6f575b5015612a5d576129f16040916129ec612a37946129d16130bd565b60018060a01b03166001600160601b0360a01b5f5416175f55565b61323d565b6020810151600180546001600160a01b0319166001600160a01b0390921691909117905580516001600160a01b0316848116612a4d575b5001516001600160a01b031690565b908116612a415750565b612a4a9061265c565b50565b612a56906125b1565b505f612a28565b6040516362df054560e01b8152600490fd5b612a88915060203d60201161097257610964818361067e565b5f6129b6565b6040519060a082018281106001600160401b038211176106435760405281608060609182815282602082015282604082015282808201520152565b9060208282031261035a5781516001600160401b039283821161035a57019060a08282031261035a57612afa61069f565b92825181811161035a5782612b10918501611807565b8452602083015181811161035a5782612b2a918501611807565b6020850152604083015181811161035a5782612b47918501611807565b6040850152606083015181811161035a5782612b64918501611807565b6060850152608083015190811161035a57612b7f9201611807565b608082015290565b9081602091031261035a575190565b60409065ffffffffffff61076b949316815281602082015201906104a4565b91939293612bc1612a8e565b94805180612ca9575b5050612bdb60608601518285611b4a565b9182612bed57505050509051905f9190565b612c01612c3b9183608089015191876117bc565b916020612c1a6114586114585f5460018060a01b031690565b8189015190604051808096819463810da75d60e01b83528760048401612b96565b03915afa801561097957612c7195612c6b935f92612c76575b50612c65919260408a015191611b34565b9061339d565b906133af565b915190565b612c659250612c9c9060203d602011612ca2575b612c94818361067e565b810190612b87565b91612c54565b503d612c8a565b612cbd929650602080918301019101612ac9565b935f80612bca565b90612cdb610c18835f52600460205260405f2090565b9081612ce8575050505f90565b610c18612d019161120b855f52600560205260405f2090565b5f5460405163bd49c35f60e01b815290602090829060049082906001600160a01b03165afa80156109795761076b94612c6b925f92612d51575b50610c18612c65915f52600360205260405f2090565b612c65919250612d72610c189160203d602011612ca257612c94818361067e565b929150612d3b565b65ffffffffffff90818111612d8d571690565b604490604051906306dfcc6560e41b8252603060048301526024820152fd5b805480612dbd5750505f905f905f90565b5f19908082810111611bb157612dda925f5260205f2001016122d1565b9065ffffffffffff82511691602060018060d01b0391015116906001929190565b8015611d665780612c65612ec6612ebc612eb2612ea8612e9e612e94612e8a600161076b9a5f908b60801c80612f22575b508060401c80612f15575b508060201c80612f08575b508060101c80612efb575b508060081c80612eee575b508060041c80612ee1575b508060021c80612ed4575b50821c612ecd575b811c1b612e83818b611ee6565b0160011c90565b612e83818a611ee6565b612e838189611ee6565b612e838188611ee6565b612e838187611ee6565b612e838186611ee6565b612e838185611ee6565b8092611ee6565b8101612e76565b600291509101905f612e6e565b600491509101905f612e63565b600891509101905f612e58565b601091509101905f612e4d565b602091509101905f612e42565b604091509101905f612e37565b9150506080905f612e2c565b905b838310612f3d5750505090565b909192612f4a81856135b2565b90835f5265ffffffffffff808360205f20015416908416105f14612f725750925b9190612f30565b93506001810180911115612f6b57611b8f565b908154905f829160058411612fef575b612fa09350846135f5565b80612fc857505f905b6001600160d01b03821615611f875761076b9160016123719201612121565b612fe2612fd7612fe992611ba3565b835f5260205f200190565b5460301c90565b90612fa9565b9192612ffa81612dfb565b8103908111611bb157612fa093855f5265ffffffffffff808360205f20015416908516105f1461302b575091612f95565b92915061303790611bc3565b90612f95565b6040519061304a82610628565b5f6020838281520152565b9061307e61307861309f9261306861303d565b5061307161303d565b5084612121565b506122d1565b91600165ffffffffffff845116936020828060d01b03910151169101612121565b905490604051926130af84610628565b835260031b1c602082015290565b6130c56135c7565b6130cd6135c7565b60015f8051602061366d83398151915255565b604051906130ed82610648565b5f6040838281528260208201520152565b81601f8201121561035a578051916020916001600160401b038411610643578360051b90604051946131328584018761067e565b8552838086019282010192831161035a578301905b828210613155575050505090565b83809183516131638161042a565b815201910190613147565b9060208282031261035a5781516001600160401b039283821161035a5701908181039260a0841261035a576060604051946131a886610648565b1261035a576040516131b981610648565b83516131c48161042a565b815260208401516131d48161042a565b602082015260408401516131e78161042a565b60408201528452606083015181811161035a57826132069185016130fe565b6020850152608083015190811161035a5761322192016130fe565b604082015290565b80518210156121365760209160051b010190565b613259906132496130e0565b506020808251830101910161316e565b8051519091906001600160a01b03161580613383575b613371579060208101905f5b825180518210156132f557611458613296836132a393613229565b516001600160a01b031690565b156132e3576132c56132c16132bc613296848751613229565b612732565b1590565b6132d15760010161327b565b604051635140fefd60e11b8152600490fd5b6040516323cda06760e01b8152600490fd5b506040925050818101905f5b82518051821015613368576114586132968361331c93613229565b156133575761333a6132c1613335613296848751613229565b6127a0565b61334657600101613301565b8351635140fefd60e11b8152600490fd5b83516323cda06760e01b8152600490fd5b50509150505190565b6040516303501f5960e11b8152600490fd5b50602082015151158061326f57506040820151511561326f565b90808210156133aa575090565b905090565b9091828202915f1984820993838086109503948086039514613434578483111561342257829109815f038216809204600280826003021880830282030280830282030280830282030280830282030280830282030280920290030293600183805f03040190848311900302920304170290565b60405163227bc15360e01b8152600490fd5b50509061076b9250611ee6565b8054600160401b8110156106435761345e91600182018155612121565b61348957815160209092015160301b65ffffffffffff191665ffffffffffff92909216919091179055565b634e487b7160e01b5f525f60045260245ffd5b805492939291908215613589576134b861233e612fd785611ba3565b906134c9825165ffffffffffff1690565b65ffffffffffff84811691168110613577576121cc9460209488926134f76123d1875165ffffffffffff1690565b0361353f57506135319261350d61351892611ba3565b905f5260205f200190565b9065ffffffffffff82549181199060301b169116179055565b01516001600160d01b031690565b9150506135729161355f6135516106ae565b65ffffffffffff9093168352565b6001600160d01b03881682860152613441565b613531565b604051632520601d60e01b8152600490fd5b6135ad92506135996135516106ae565b6001600160d01b0385166020830152613441565b5f9190565b90808216911860011c8101809111611bb15790565b60ff5f8051602061368d8339815191525460401c16156135e357565b604051631afcd79f60e31b8152600490fd5b905b8383106136045750505090565b90919261361181856135b2565b90835f5265ffffffffffff808360205f20015416908416105f146136395750925b91906135f7565b9350600181018091111561363257611b8f56fe02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268009b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a264697066735822122029f0973058268d4c15bb68cd12766d98013081e51e50292e237f8f15461e8b6864736f6c63430008190033","sourceMap":"3228:4636:81:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;;;;;-1:-1:-1;;3228:4636:81;;;;;;;;;;;;;;;;;;-1:-1:-1;;;3551:47:23;;;:87;;;;3228:4636:81;;;;;;;;;;3551:87:23;-1:-1:-1;;;1133:40:29;;-1:-1:-1;3551:87:23;;;3228:4636:81;-1:-1:-1;3228:4636:81;;;;;;;;;;;;;;;;;;;;3202:4:23;;;:::i;:::-;3228:4636:81;-1:-1:-1;3228:4636:81;3610:15:78;3228:4636:81;;;-1:-1:-1;3228:4636:81;;3601:36:78;;3597:98;;3228:4636:81;-1:-1:-1;3228:4636:81;2233:13:78;3228:4636:81;;;2233:34:78;3228:4636:81;-1:-1:-1;3228:4636:81;2233:34:78;:::i;:::-;3709;3705:84;;3799:25;3871:35;3799:25;:56;3871:35;3799:25;;;3228:4636:81;;2233:13:78;3228:4636:81;;;;;;;3799:25:78;819:34:62;837:15;819:34;:::i;:::-;3799:56:78;;:::i;:::-;-1:-1:-1;;3228:4636:81;;;;;;;;;;;;3871:35:78;;;;3228:4636:81;3705:84:78;3228:4636:81;-1:-1:-1;;;3766:12:78;;3228:4636:81;;3766:12:78;3597:98;3228:4636:81;-1:-1:-1;;;3660:24:78;;3228:4636:81;;3660:24:78;3228:4636:81;-1:-1:-1;;;;;3228:4636:81;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;3228:4636:81;;;;;;;;-1:-1:-1;;3228:4636:81;;;;:::o;:::-;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;3228:4636:81;;;;;;1537:38:76;-1:-1:-1;;;;;3228:4636:81;;;;;;;;;;;;-1:-1:-1;;3228:4636:81;;;;;;1632:54:76;-1:-1:-1;;;;;3228:4636:81;;;;;;;;;;;;-1:-1:-1;;3228:4636:81;;;;;;:::i;:::-;449:5:82;-1:-1:-1;;;;;3228:4636:81;435:10:82;:19;431:71;;4041:64:81;3228:4636;;;-1:-1:-1;3228:4636:81;4041:13;3228:4636;;;-1:-1:-1;3228:4636:81;4041:64;:::i;:::-;3228:4636;;;;;;;;;;;;;;;;;;;-1:-1:-1;;3228:4636:81;431:71:82;3228:4636:81;;-1:-1:-1;;;477:14:82;;3228:4636:81;;477:14:82;3228:4636:81;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3228:4636:81;;;;;;;:::o;:::-;;:::i;:::-;;;;;;;-1:-1:-1;;;;;3228:4636:81;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;3228:4636:81;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;3228:4636:81;;;;;;;:::o;:::-;;;;;;;:::i;:::-;:::o;:::-;;;;;;;:::i;:::-;-1:-1:-1;;;;;3228:4636:81;;;;;;-1:-1:-1;;3228:4636:81;;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;3228:4636:81;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;3228:4636:81;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;-1:-1:-1;;;;;3228:4636:81;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;3090:79:78;:44;3228:4636:81;;;:::i;:::-;;;;;-1:-1:-1;3228:4636:81;3090:22:78;3228:4636:81;;;-1:-1:-1;3228:4636:81;;;;;;;;;;;;;;;;;3090:44:78;:79;:::i;:::-;3228:4636:81;;;;;;;;;;;;-1:-1:-1;;3228:4636:81;;;;;;1743:56:76;-1:-1:-1;;;;;3228:4636:81;;;;;;;;;;;;-1:-1:-1;;3228:4636:81;;;;;;-1:-1:-1;;;;;3228:4636:81;;;;;;;;3217:103:28;;;:::i;:::-;3228:4636:81;;-1:-1:-1;;;4285:48:76;;4322:10;3228:4636:81;4285:48:76;;3228:4636:81;;;;;-1:-1:-1;;;;;4295:16:76;3228:4636:81;4285:48:76;;;;;;;-1:-1:-1;4285:48:76;;;3228:4636:81;4284:49:76;;4280:99;;-1:-1:-1;;;;;3228:4636:81;-1:-1:-1;;4322:10:76;297:2:88;3228:4636:81;;267:46:88;4459:27:76;;;;3228:4636:81;;4459:15:76;3228:4636:81;;;;;;;4459:27:76;3228:4636:81;4459:37:76;4455:87;;4654:38;4552:27;4654:38;4552:27;;;3228:4636:81;;4459:15:76;3228:4636:81;;;;;;;4552:27:76;3228:4636:81;4631:6:76;;;;:::i;:::-;3228:4636:81;;;;;;;;;;;;;4654:38:76;;;;3282:1:28;1805;-1:-1:-1;;;;;;;;;;;3228:4636:81;3716:283:28;3282:1;3228:4636:81;4455:87:76;3228:4636:81;;-1:-1:-1;;;4519:12:76;;3228:4636:81;;4519:12:76;4280:99;3228:4636:81;;-1:-1:-1;;;4356:12:76;;3228:4636:81;;4356:12:76;4285:48;;;;3228:4636:81;4285:48:76;3228:4636:81;4285:48:76;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;:::i;3228:4636:81:-;;;;;;-1:-1:-1;;3228:4636:81;;;;;;-1:-1:-1;3228:4636:81;-1:-1:-1;;;;;;;;;;;3228:4636:81;;;4919:24:23;3228:4636:81;-1:-1:-1;3228:4636:81;4919:24:23;3228:4636:81;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;-1:-1:-1;;3228:4636:81;;;;;;322:32:69;-1:-1:-1;;;;;3228:4636:81;;;;;;;;;;;;-1:-1:-1;;3228:4636:81;;;;5350:25:23;3228:4636:81;;;;;;;:::i;:::-;;-1:-1:-1;3228:4636:81;-1:-1:-1;;;;;;;;;;;3228:4636:81;;3202:4:23;4919:24;3228:4636:81;-1:-1:-1;3228:4636:81;4919:24:23;3228:4636:81;3202:4:23;:::i;:::-;5350:25;:::i;3228:4636:81:-;;;;;;-1:-1:-1;;3228:4636:81;;;;;;;;;:::i;:::-;966:10:27;-1:-1:-1;;;;;3228:4636:81;;6441:34:23;6437:102;;6549:37;3228:4636:81;;;6549:37:23;:::i;6437:102::-;3228:4636:81;;-1:-1:-1;;;6498:30:23;;3228:4636:81;;6498:30:23;3228:4636:81;;;;;;-1:-1:-1;;3228:4636:81;;;;;;;;;:::i;:::-;3217:103:28;;:::i;:::-;966:10:27;-1:-1:-1;3228:4636:81;;;;;;;;;;1356:26:76;;3228:4636:81;;4468:23:23;4464:108;;-1:-1:-1;4861:4:76;3228:4636:81;-1:-1:-1;;;;;3228:4636:81;;;;;;4861:13:76;;4857:63;;-1:-1:-1;;;;;;3228:4636:81;;;4861:4:76;3228:4636:81;4958:14:76;-1:-1:-1;;4958:14:76;4861:4;-1:-1:-1;;;;;;;;;;;3228:4636:81;;4464:108:23;3228:4636:81;;;;4514:47:23;;;;;;966:10:27;3228:4636:81;4514:47:23;;3228:4636:81;;;;;4514:47:23;3228:4636:81;;;;;;-1:-1:-1;;3228:4636:81;;;;;;-1:-1:-1;3228:4636:81;2233:13:78;3228:4636:81;;;2233:34:78;3228:4636:81;-1:-1:-1;3228:4636:81;2233:34:78;:::i;3228:4636:81:-;;;;;;-1:-1:-1;;3228:4636:81;;;;;3358:53:78;:44;3228:4636:81;;;;;:::i;:::-;;;-1:-1:-1;3228:4636:81;3358:22:78;3228:4636:81;;;-1:-1:-1;3228:4636:81;;;;;;;;;;;;;;;;;3358:44:78;:53;:::i;3228:4636:81:-;;;;;;;;;;;;;-1:-1:-1;;;;;3228:4636:81;;;;;;;;;;;;;;;:::o;:::-;;;;;;-1:-1:-1;;3228:4636:81;;;;-1:-1:-1;;;;;3228:4636:81;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;3228:4636:81;;;;;;;4301:16:25;3228:4636:81;;4726:16:25;;:34;;;;3228:4636:81;4805:1:25;4790:16;:50;;;;3228:4636:81;4855:13:25;:30;;;;3228:4636:81;4851:91:25;;;-1:-1:-1;;;;;;;;;;;3228:4636:81;;-1:-1:-1;;3228:4636:81;;;;;718:4:69;;4951:18:25;4979:67;;718:4:69;:::i;:::-;5066:101:25;;3228:4636:81;5066:101:25;-1:-1:-1;;;;;;;;;;;3228:4636:81;;-1:-1:-1;;;;3228:4636:81;;;;;-1:-1:-1;3228:4636:81;;5142:14:25;;3228:4636:81;;5142:14:25;3228:4636:81;4979:67:25;-1:-1:-1;;;;;;;;;;;3228:4636:81;;-1:-1:-1;;;;3228:4636:81;-1:-1:-1;;;3228:4636:81;;;718:4:69;:::i;4851:91:25:-;3228:4636:81;;-1:-1:-1;;;4908:23:25;;3228:4636:81;;4908:23:25;4855:30;4872:13;;;4855:30;;;4790:50;4818:4;4810:25;:30;;-1:-1:-1;4790:50:25;;4726:34;;;-1:-1:-1;4726:34:25;;3228:4636:81;;;;;;-1:-1:-1;;3228:4636:81;;;;;;3406:36;-1:-1:-1;;;;;3228:4636:81;;;;;;;;;;;;-1:-1:-1;;3228:4636:81;;;;;;;1253:6:76;3228:4636:81;;;;;-1:-1:-1;;3228:4636:81;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3228:4636:81;;;;;;;;;:::i;:::-;;;;;1997:60:78;3228:4636:81;;;:::i;:::-;;-1:-1:-1;3228:4636:81;1997:13:78;3228:4636:81;;;-1:-1:-1;3228:4636:81;1997:60:78;:::i;3228:4636:81:-;;;;;;-1:-1:-1;;3228:4636:81;;;;;;;1356:26:76;3228:4636:81;;;;;;;;;-1:-1:-1;;3228:4636:81;;;;;;3355:45;-1:-1:-1;;;;;3228:4636:81;;;;;;;;;;;;-1:-1:-1;;3228:4636:81;;;;;;;810:35:78;3228:4636:81;;;;;;;;;-1:-1:-1;;3228:4636:81;;;;;;;;-1:-1:-1;;;;;3228:4636:81;;;;;;;;;;;;;2512:74:78;3228:4636:81;;;:::i;:::-;;-1:-1:-1;3228:4636:81;;;;;-1:-1:-1;3228:4636:81;2512:74:78;:::i;3228:4636:81:-;;;;;;-1:-1:-1;;3228:4636:81;;;;;;3901:31:23;3228:4636:81;;;;;:::i;:::-;;;-1:-1:-1;3228:4636:81;-1:-1:-1;;;;;;;;;;;3228:4636:81;;;-1:-1:-1;3228:4636:81;;;;;;;;;;;;;;;;;3901:31:23;3228:4636:81;;;;;;;;;;;;;;;;-1:-1:-1;;3228:4636:81;;;;;;;;;:::i;:::-;;;;;;;;;;449:5:82;-1:-1:-1;;;;;3228:4636:81;435:10:82;:19;431:71;;4852:44:81;:83;3228:4636;;;-1:-1:-1;3228:4636:81;4852:22;3228:4636;;;-1:-1:-1;3228:4636:81;;;;;;;;;;;;;;;;;4852:44;:83;:::i;3228:4636::-;;;;;;-1:-1:-1;;3228:4636:81;;;;;;3448:45;-1:-1:-1;;;;;3228:4636:81;;;;;;;;;;;;-1:-1:-1;;3228:4636:81;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;3228:4636:81;;;;-1:-1:-1;3228:4636:81;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;416:25:75;;;;477:31;416:25;;:::i;:::-;3228:4636:81;;;;;;;;;;477:31:75;;3228:4636:81;;;;;;;;;;;:::i;:::-;477:31:75;3228:4636:81;;477:31:75;;;;;;:::i;:::-;518:79;;;3228:4636:81;518:79:75;;3228:4636:81;;;;;;-1:-1:-1;;3228:4636:81;;;;;;;;;;;;;;;;;-1:-1:-1;;3228:4636:81;;;;;;;;;;;:::i;:::-;;;3202:4:23;;;:::i;:::-;-1:-1:-1;3228:4636:81;;;3358:22:78;3228:4636:81;;;;;;;;-1:-1:-1;;;;;3228:4636:81;;;;;;;;;3358:53:78;;;:::i;:::-;4249:32;;;4245:82;;4596:54;3228:4636:81;4337:158:78;4596:54;3228:4636:81;;-1:-1:-1;3228:4636:81;;;;;-1:-1:-1;3228:4636:81;837:15:62;4413:72:78;837:15:62;4413:63:78;819:34:62;837:15;819:34;:::i;:::-;2776:39:78;:48;:39;;3228:4636:81;;;;;;;;;;2776:48:78;4413:63;:::i;:::-;:72;:::i;:::-;4337:158;;:::i;:::-;4505:34;;:75;:34;:44;:34;;;3228:4636:81;;3358:22:78;3228:4636:81;;;;;;;4505:34:78;3228:4636:81;;;;;;;;;;;;;;;;4505:75:78;-1:-1:-1;;3228:4636:81;;;;;-1:-1:-1;;;;;3228:4636:81;;;;;;;;;;4596:54:78;;;;3228:4636:81;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;-1:-1:-1;;3228:4636:81;;;;;;;-1:-1:-1;;;;;404:28:69;3228:4636:81;;;;;;;;;;-1:-1:-1;;3228:4636:81;;;;;;1439:41:76;-1:-1:-1;;;;;3228:4636:81;;;;;;;;;;;;-1:-1:-1;;3228:4636:81;;;;;;-1:-1:-1;3228:4636:81;;;;;2776:48:78;3228:4636:81;-1:-1:-1;3228:4636:81;2776:48:78;:::i;3228:4636:81:-;;;;;;-1:-1:-1;;3228:4636:81;;;;;;-1:-1:-1;3228:4636:81;2009:67:76;3228:4636:81;;;;-1:-1:-1;3228:4636:81;;;;;;;;;;;;;;-1:-1:-1;;3228:4636:81;;;;5767:26:23;3228:4636:81;;;;;;;:::i;:::-;;-1:-1:-1;3228:4636:81;-1:-1:-1;;;;;;;;;;;3228:4636:81;;3202:4:23;4919:24;3228:4636:81;-1:-1:-1;3228:4636:81;4919:24:23;3228:4636:81;3202:4:23;:::i;:::-;5767:26;:::i;3228:4636:81:-;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;-1:-1:-1;;3228:4636:81;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;-1:-1:-1;;;;;3228:4636:81;;;;;;;;;;;;:::i;:::-;3217:103:28;;:::i;:::-;-1:-1:-1;3228:4636:81;;;5246:21:76;;:13;;-1:-1:-1;;;;;3228:4636:81;5246:13:76;3228:4636:81;;-1:-1:-1;;;;;3228:4636:81;;;5246:21:76;3228:4636:81;;-1:-1:-1;;;5246:23:76;;3228:4636:81;;;;;5246:23:76;;;;;;;-1:-1:-1;5246:23:76;;;3228:4636:81;-1:-1:-1;;;;;;3228:4636:81;;;5232:10:76;:37;5228:87;;5341:4;3228:4636:81;-1:-1:-1;;;;;3228:4636:81;;;;5355:469:76;;3228:4636:81;-1:-1:-1;;3228:4636:81;;;;;;;;;;;;;;;;5839:55:76;;3228:4636:81;;;;5839:55:76;;;;3282:1:28;1805;-1:-1:-1;;;;;;;;;;;3228:4636:81;3716:283:28;5355:469:76;3228:4636:81;;;;5435:94:76;;;;3228:4636:81;5435:94:76;;;;;;;;;;;;3228:4636:81;5435:94:76;;;:::i;:::-;;3228:4636:81;;5435:94:76;;;;;;:::i;:::-;3228:4636:81;5548:9:76;:51;5544:118;;-1:-1:-1;5839:55:76;5676:138;;;;5839:55;5676:138;;;1150:7;5676:138;;5355:469;;;5544:118;3228:4636:81;;-1:-1:-1;;;5626:21:76;;3228:4636:81;;5626:21:76;5228:87;3228:4636:81;;-1:-1:-1;;;5292:12:76;;3228:4636:81;;5292:12:76;5246:23;;;;;3228:4636:81;5246:23:76;3228:4636:81;5246:23:76;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;3228:4636:81;;;;;;-1:-1:-1;;3228:4636:81;;;;;;;971:45:78;3228:4636:81;;;;;;;;;-1:-1:-1;;3228:4636:81;;;;;;:::i;:::-;449:5:82;-1:-1:-1;;;;;3228:4636:81;435:10:82;:19;431:71;;5753:78:81;3228:4636;;;-1:-1:-1;3228:4636:81;;;;;-1:-1:-1;3228:4636:81;5753:78;:::i;3228:4636::-;;;;;;-1:-1:-1;;3228:4636:81;;;;;;;;-1:-1:-1;;;;;3228:4636:81;;;;;;;;;;;;;;-1:-1:-1;;3228:4636:81;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;-1:-1:-1;;3228:4636:81;;;;;;;1150:7:76;3228:4636:81;;;;;;;;;-1:-1:-1;;3228:4636:81;;;;;;;2700:1:76;3228:4636:81;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;:::i;4948:596::-;;5195:233;4948:596;3228:4636;5171:295;4948:596;;;3228:4636;;;;5263:151;;;;;;;;;;;3228:4636;;;;;;;;;;;;;;;;;5263:151;;;;;:::i;:::-;5195:233;:::i;:::-;5263:151;3228:4636;;;5171:295;;;;;;:::i;:::-;5477:61;;;4948:596;:::o;5477:61::-;3228:4636;;;;;;;;5263:151;5510:17;;3228:4636;5263:151;5510:17;;;;;:::i;2897:279:78:-;-1:-1:-1;3228:4636:81;;;3090:22:78;3228:4636:81;;;;;;;;-1:-1:-1;;;;;3228:4636:81;;;;;;;;;3090:79:78;;2897:279;;3090:79;:::i;3228:4636:81:-;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;3228:4636:81;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;;;;3228:4636:81;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;6420:1442::-;3228:4636;;-1:-1:-1;;;6637:99:81;;-1:-1:-1;;;;;3228:4636:81;;;6637:99;;;3228:4636;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3228:4636:81;;;6656:20;3228:4636;;6637:99;;;;;;;;;;;6420:1442;-1:-1:-1;3228:4636:81;;-1:-1:-1;;;6830:32:81;;;3228:4636;6637:99;3228:4636;;;;6830:32;;;;;;;6790:84;6830:32;6637:99;6830:32;;;;;;;6420:1442;-1:-1:-1;3228:4636:81;;-1:-1:-1;;;6790:84:81;;-1:-1:-1;;;;;3228:4636:81;;;6637:99;6790:84;;3228:4636;;;;;;;;;;;;;-1:-1:-1;3228:4636:81;;;;;;;;;6790:84;;6801:11;;3228:4636;6790:84;;;;;;;6637:99;6790:84;;;6420:1442;6918:50;;;7020:69;6918:50;;;7146:64;6918:50;;;:::i;:::-;7020:69;;;;:::i;:::-;7146:64;;:::i;:::-;3228:4636;;;7238:21;;;:52;;;6420:1442;7238:85;;;;6420:1442;7238:143;;;;6420:1442;7238:190;;;;6420:1442;7221:635;;6420:1442;;;;;;;:::o;7221:635::-;7460:385;3228:4636;;7460:385;3228:4636;;;;:::i;:::-;;;;6830:32;7488:343;;3228:4636;;7488:343;;3228:4636;;7488:343;;3228:4636;7488:343;;;3228:4636;;;7460:385;;;6830:32;7460:385;;;:::i;7238:190::-;3228:4636;;;7385:43;;7238:190;;:143;3228:4636;;;7343:38;;7238:143;;:85;3228:4636;;;7294:29;;7238:85;;:52;3228:4636;;;7263:27;;7238:52;;6790:84;7146:64;6790:84;;;;;;;;6637:99;6790:84;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;6830:32;;;;;;;;;;;;;;:::i;:::-;;;;6637:99;;;;;;;;;;;;;;:::i;:::-;;;;;1869:195:78;;1997:60;1869:195;;-1:-1:-1;3228:4636:81;1997:13:78;3228:4636:81;;;-1:-1:-1;3228:4636:81;1997:60:78;:::i;2340:253::-;;2512:74;2340:253;;-1:-1:-1;3228:4636:81;2512:27:78;3228:4636:81;;;-1:-1:-1;3228:4636:81;2512:74:78;:::i;3228:4636:81:-;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;-1:-1:-1;3228:4636:81;;;;:::o;:::-;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;3228:4636:81;;;;;;;;:::o;:::-;;:::i;:::-;;;;;;;;;;:::o;:::-;;8889:1:86;3228:4636:81;;;;;;;:::o;:::-;;;;;;;;;;:::o;5844:570::-;3228:4636;;-1:-1:-1;;;6138:146:81;;;;;;;3228:4636;;;;;;;;;;;;;;5844:570;6046:290;;6070:228;;6138:146;3228:4636;;;;6138:146;;3228:4636;;6138:146;;;;;;:::i;4118:504::-;3228:4636;;-1:-1:-1;;;4398:94:81;;;;;;;3228:4636;;;;;;;;;;;;;;4118:504;4306:238;;4330:176;;4398:94;3228:4636;;;;4398:94;3228:4636;;;;;;;;:::i;:::-;;;;;;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;;;;3228:4636:81;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::o;:::-;-1:-1:-1;;;;;3228:4636:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;2764:920:76:-;;2978:48;2764:920;;;;2978:48;;;;:::i;:::-;3036:36;;;3228:4636:81;;:::i;:::-;;;;3086:20:76;3082:107;;2764:920;3216:11;;;;:193;;;;;2764:920;3216:394;;;;2764:920;3199:455;;;;;;2764:920;:::o;3199:455::-;3635:8;-1:-1:-1;3635:8:76;:::o;3216:394::-;3553:39;;;;;3430:180;3553:39;;;3228:4636:81;;;;;;;;;;3430:180:76;;467:2:88;3228:4636:81;3430:180:76;;;;;:::i;:::-;;3228:4636:81;3444:31:76;-1:-1:-1;;;;;3228:4636:81;3430:180:76;;;;;;;-1:-1:-1;3430:180:76;;;3216:394;3429:181;;3216:394;;;;;;3430:180;;;;3553:39;3430:180;3553:39;3430:180;;;;;;;:::i;:::-;;;;3216:193;-1:-1:-1;3228:4636:81;;;-1:-1:-1;;;;;;3228:4636:81;3248:161:76;3354:37;;;3228:4636:81;3248:161:76;3228:4636:81;;;;;;;;;;3248:161:76;;;;;;;:::i;:::-;;3228:4636:81;3262:29:76;-1:-1:-1;;;;;3228:4636:81;3248:161:76;;;;;;;-1:-1:-1;3248:161:76;;;3216:193;3247:162;;3216:193;;;3248:161;;;;;;;;;;;;;;:::i;:::-;;;;3082:107;3139:39;;;;;;;;;;;;;:::i;:::-;3082:107;;;;;3228:4636:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::o;:::-;;;;;;;;;;;;3740:389:76;3918:5;3228:4636:81;;;-1:-1:-1;;;3853:71:76;;;-1:-1:-1;;;;;3228:4636:81;;;3853:71:76;;;3228:4636:81;;;;;;;;3740:389:76;;3228:4636:81;3853:71:76;;3228:4636:81;;3853:71:76;3228:4636:81;;;3867:29:76;3228:4636:81;;3853:71:76;;;;;;;3918:5;3853:71;;;3740:389;3852:72;;3228:4636:81;;;3852:181:76;;3740:389;3835:242;;;;;;4094:28;;;:::i;3835:242::-;4058:8;;3918:5;4058:8;:::o;3852:181::-;3228:4636:81;;3945:88:76;;;-1:-1:-1;;;;;3228:4636:81;;3853:71:76;3945:88;;3228:4636:81;467:2:88;3228:4636:81;;;;;;;;-1:-1:-1;3228:4636:81;;;;;;;;3959:31:76;3228:4636:81;3945:88:76;;;;;;;3918:5;3945:88;;;3852:181;3944:89;;;3852:181;;;;;3945:88;;;;;;-1:-1:-1;3945:88:76;;;;;;:::i;:::-;;;;;3853:71;;;;;;;;;;;;;;:::i;:::-;;;;4148:103:23;966:10:27;-1:-1:-1;3228:4636:81;;;;;;;;;810:35:78;;3228:4636:81;;3901:31:23;3228:4636:81;;4468:23:23;4464:108;;4148:103;:::o;:::-;966:10:27;-1:-1:-1;3228:4636:81;;;;;;;;;971:45:78;;3228:4636:81;;3901:31:23;3228:4636:81;4148:103:23;-1:-1:-1;3228:4636:81;;;-1:-1:-1;;;;;;;;;;;3228:4636:81;;;;;;;;966:10:27;3228:4636:81;;;;;;;;;3901:31:23;3228:4636:81;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3228:4636:81;;-1:-1:-1;3228:4636:81;;;-1:-1:-1;3228:4636:81;:::o;:::-;;:::i;:::-;;;;;-1:-1:-1;;;3228:4636:81;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;6246:584:86;;;;;6360:12;;;3228:4636:81;;;6360:24:86;;6356:75;;6246:584;6474:30;;;;;:::i;:::-;3228:4636:81;;;;;;6578:12:86;;;;:::i;:::-;6604:24;;;;6246:584;-1:-1:-1;6600:188:86;;;-1:-1:-1;;;;;3228:4636:81;;;;;;;6644:21:86;;;:29;:21;;:::i;:29::-;6798:25;6246:584;:::o;6600:188::-;6753:24;;3228:4636:81;;8167:38:60;;-1:-1:-1;;;;;3228:4636:81;;;;;8167:38:60;:::i;:::-;6753:24:86;;;:::i;6604:::-;3228:4636:81;;;;;;6614:14:86;;-1:-1:-1;6604:24:86;;;6356:75;-1:-1:-1;;;3228:4636:81;;;;;;6360:12:86;3228:4636:81;;;;;;;:::i;:::-;;;;;;;;;;;;;;6356:75:86;;;525:595:82;-1:-1:-1;525:595:82;;;;3228:4636:81;;716:88:82;;3228:4636:81;716:88:82;;;;;;;;;783:4;716:88;;;3228:4636:81;;;;;;;;;;;:::i;716:88:82:-;698:107;;;;;;;:::i;:::-;3228:4636:81;;857:45:82;;3228:4636:81;;;;;;;;716:88:82;857:45;;3228:4636:81;:::i;:::-;;;;;;;-1:-1:-1;;;;;3228:4636:81;;;;;857:45:82;716:88;857:45;;;3228:4636:81;;;;:::i;:::-;916:8:82;;912:175;;525:595;:::o;912:175::-;3228:4636:81;;944:22:82;;;940:36;;716:88;990:87;;3228:4636:81;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::o;8406:869:86:-;;;3228:4636:81;;8620:15:86;8578:11;8645:18;8678:7;8684:1;8678:7;;8674:241;;8406:869;8939:60;;;;;:::i;:::-;9014:8;;;9010:62;;9252:15;9259:7;3228:4636:81;9219:31:86;3228:4636:81;9130:48:86;9170:7;;;:::i;:::-;9130:48;13267:109;;;;;;13089:293;;9130:48;3228:4636:81;:::i;:::-;;9176:1:86;3228:4636:81;9232:17:86;3228:4636:81;;;;;;;;9232:17:86;;3228:4636:81;-1:-1:-1;;;;;3228:4636:81;;;;9219:12:86;;:31;:::i;:::-;3228:4636:81;;;;;;;;;9259:7:86;;:::i;:::-;3228:4636:81;;;;9252:15:86;9176:1;;9188:80;;8406:869::o;9010:62::-;8578:11;;-1:-1:-1;8578:11:86;;-1:-1:-1;8578:11:86;;;;9038:23::o;8674:241::-;8721:14;;;;;:::i;:::-;3228:4636:81;;;;;;;8939:60:86;13267:109;;8578:11;13267:109;8753:55;8759:49;13267:109;;8578:11;13267:109;;3228:4636:81;;;;;;8759:49:86;3228:4636:81;;;;8753:55:86;3228:4636:81;;;8753:55:86;13267:109;;;8828:10;8749:156;8674:241;;8749:156;8883:7;;;;;;:::i;:::-;8749:156;8674:241;;3228:4636:81;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::o;7558:604:86:-;;3228:4636:81;;7686:17:86;7682:83;;3228:4636:81;7789:27:86;3228:4636:81;7789:27:86;3228:4636:81;;7789:27:86;;;;;;:::i;:::-;7860:14;;;;;:::i;:::-;3228:4636:81;;;;;;;;;;;;;;;;7888:22:86;;;7884:77;;7975:21;-1:-1:-1;7975:84:86;;;;7558:604;7971:139;;;;8127:28;;;;:::i;7971:139::-;8082:17;;7789:27;8082:17;3228:4636:81;8075:24:86;:::o;7975:84::-;3228:4636:81;;;8009:16:86;3228:4636:81;;8009:16:86;:::i;:::-;3228:4636:81;;;8001:24:86;:57;;;;;7975:84;;;;;;;8001:57;8029:29;8038:8;;;8029:18;8038:8;8029:23;8038:8;;:::i;:::-;8029:18;;:::i;:::-;3228:4636:81;;;;;8029:29:86;;8001:57;;;;7884:77;7933:17;;;;;7789:27;7933:17;3228:4636:81;7926:24:86;:::o;7682:83::-;7726:28;;;;:::i;3326:384:28:-;-1:-1:-1;;;;;;;;;;;1847:1:28;3228:4636:81;;3526:20:28;3522:88;;1847:1;3228:4636:81;;3326:384:28:o;3522:88::-;3228:4636:81;;-1:-1:-1;;;3569:30:28;;;;;6196:308:78;;3228:4636:81;-1:-1:-1;3228:4636:81;6327:13:78;3228:4636:81;;;-1:-1:-1;3228:4636:81;11124:30:86;;;;:::i;:::-;11173;;;-1:-1:-1;11173:30:86;;;;11182:17;;-1:-1:-1;;;;;3228:4636:81;;11182:12:86;;:17;:::i;:::-;3228:4636:81;;;6327:13:78;3228:4636:81;;11173:30:86;6385::78;;;11173::86;6381:117:78;;;;6196:308;;:::o;6381:117::-;6431:56;3228:4636:81;-1:-1:-1;3228:4636:81;6327:13:78;3228:4636:81;;;-1:-1:-1;3228:4636:81;819:34:62;837:15;819:34;:::i;6431:56:78:-;6196:308;;:::o;6385:30::-;6395:20;;-1:-1:-1;6385:30:78;;;;11173::86;;;-1:-1:-1;11173:30:86;;7270:387:23;-1:-1:-1;;;;;3228:4636:81;;-1:-1:-1;3228:4636:81;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2887:71:23;3228:4636:81;;;;-1:-1:-1;3228:4636:81;;;;;;;;;;;-1:-1:-1;;;;;3228:4636:81;;;;;;;;;;-1:-1:-1;;3228:4636:81;7509:4:23;3228:4636:81;;;966:10:27;;-1:-1:-1;;;;;3228:4636:81;-1:-1:-1;7532:40:23;-1:-1:-1;;7532:40:23;7509:4;7586:11;:::o;7270:387::-;-1:-1:-1;;;;;3228:4636:81;;-1:-1:-1;3228:4636:81;;;;;;;;;1356:26:76;;-1:-1:-1;;;;;;;;;;;2887:71:23;3228:4636:81;;3901:31:23;3228:4636:81;;;;-1:-1:-1;3228:4636:81;;;;;;;;;;;-1:-1:-1;;;;;3228:4636:81;;;;;;;;;;-1:-1:-1;;3228:4636:81;7509:4:23;3228:4636:81;;;966:10:27;;-1:-1:-1;;;;;3228:4636:81;;7532:40:23;-1:-1:-1;;7532:40:23;7509:4;7586:11;:::o;7432:219::-;7628:12;;;-1:-1:-1;7628:12:23;:::o;7270:387::-;-1:-1:-1;;;;;3228:4636:81;;-1:-1:-1;3228:4636:81;;;;;;;;;810:35:78;;-1:-1:-1;;;;;;;;;;;2887:71:23;3228:4636:81;;3901:31:23;3228:4636:81;7270:387:23;-1:-1:-1;;;;;3228:4636:81;;-1:-1:-1;3228:4636:81;;;;;;;;;971:45:78;;-1:-1:-1;;;;;;;;;;;2887:71:23;3228:4636:81;;3901:31:23;3228:4636:81;7270:387:23;-1:-1:-1;3228:4636:81;;;-1:-1:-1;;;;;;;;;;;3228:4636:81;;;;;;;;-1:-1:-1;;;;;3228:4636:81;;;;;;;;;;;;3901:31:23;3228:4636:81;7892:388:23;-1:-1:-1;3228:4636:81;;;-1:-1:-1;;;;;;;;;;;3228:4636:81;;;;;;;;-1:-1:-1;;;;;3228:4636:81;;;;;;;;;;;;;;;;-1:-1:-1;3228:4636:81;;;;;;;;;;;-1:-1:-1;;;;;3228:4636:81;;;;;;;;;;-1:-1:-1;;3228:4636:81;;;966:10:27;;-1:-1:-1;;;;;3228:4636:81;;8155:40:23;-1:-1:-1;;8155:40:23;3228:4636:81;8209:11:23;:::o;10580:184:86:-;3228:4636:81;;10303:8:60;;;:63;-1:-1:-1;10303:63:60;-1:-1:-1;;;;;3228:4636:81;;10726:7:86;3228:4636:81;;10736:12:86;:17;:12;;:17;:::i;10303:63:60:-;3228:4636:81;;;;;;;;;;13267:109:86;-1:-1:-1;13267:109:86;;-1:-1:-1;13267:109:86;;;3228:4636:81;;;10303:63:60;;3228:4636:81;;;;;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;3228:4636:81;;;;;;;;:::i;5907:716:76:-;6030:34;5907:716;6030:34;;;;:::i;:::-;3228:4636:81;;-1:-1:-1;;;6080:41:76;;-1:-1:-1;;;;;3228:4636:81;;;6080:41:76;;;3228:4636:81;;;;;6080:41:76;3228:4636:81;;;6090:13:76;3228:4636:81;;6080:41:76;;;;;;;-1:-1:-1;6080:41:76;;;5907:716;6079:42;;6075:90;;6266:27;3228:4636:81;2540:111:28;6210:14:76;3228:4636:81;2540:111:28;;;:::i;:::-;3228:4636:81;;;;;;-1:-1:-1;;;;;3228:4636:81;;-1:-1:-1;3228:4636:81;;;-1:-1:-1;3228:4636:81;;6210:14:76;6266:27;:::i;:::-;6080:41;6311:15;;3228:4636:81;;;;-1:-1:-1;;;;;;3228:4636:81;-1:-1:-1;;;;;3228:4636:81;;;;;;;;;;;-1:-1:-1;;;;;3228:4636:81;;;;6337:143:76;;5907:716;-1:-1:-1;6493:28:76;3228:4636:81;-1:-1:-1;;;;;3228:4636:81;;;;;;;6489:128:76;;5907:716;:::o;6489:128::-;6551:55;;;:::i;:::-;;5907:716::o;6337:143::-;6404:65;;;:::i;:::-;;6337:143;;;6075:90;3228:4636:81;;-1:-1:-1;;;6144:10:76;;6080:41;;6144:10;6080:41;;;;;;;;;;;;;;:::i;:::-;;;;3228:4636:81;;;;;;;;;;-1:-1:-1;;;;;3228:4636:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;;;;3228:4636:81;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;:::i;4663:1079:78:-;;;;;3228:4636:81;;:::i;:::-;;;;4903:16:78;4899:92;;4663:1079;5105:42;;5053:95;5105:42;;;;5053:95;;;:::i;:::-;5165:570;:34;;;5218:21;;;;;;5165:570;-1:-1:-1;5158:577:78;4663:1079;:::o;5165:570::-;5273:95;5431:67;5330:37;;;;;;5273:95;;;:::i;:::-;3228:4636:81;5470:27:78;5431;:13;3228:4636:81;-1:-1:-1;3228:4636:81;;;;;;;;;5431:27:78;5470;;;;3228:4636:81;;;;;;;;;;;5431:67:78;;;;;;;:::i;:::-;;;;;;;;;5273:409;5431:67;5397:216;5431:67;-1:-1:-1;5431:67:78;;;5165:570;5562:28;5524:67;5562:28;;3228:4636:81;5562:28:78;;;5524:67;;:::i;:::-;5397:216;;:::i;:::-;5273:409;;:::i;:::-;5700:21;;4663:1079;:::o;5431:67::-;5524;5431;;;;5470:27;5431:67;5470:27;5431:67;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;4899:92;4949:31;;;;;;;;;;;;;:::i;:::-;4899:92;;;;;5748:442;;2776:48;:39;;3228:4636:81;;;;;;;;;;2776:48:78;5946:237;:32;;;:237;;;-1:-1:-1;5748:442:78;:::o;5946:237::-;3358:44;:53;:34;;;3228:4636:81;;3358:22:78;3228:4636:81;;;;;;;3358:53:78;-1:-1:-1;3228:4636:81;;;-1:-1:-1;;;6086:27:78;;3228:4636:81;6086:27:78;;3228:4636:81;;2776:27:78;;3228:4636:81;;-1:-1:-1;;;;;3228:4636:81;6086:27:78;;;;;;6009:174;6086:27;6077:63;6086:27;-1:-1:-1;6086:27:78;;;5946:237;2233:25;;:34;:25;3228:4636:81;;2233:13:78;3228:4636:81;;;;;;;6086:27:78;2233:34;6086:27;;;;2233:25;6086:27;;;;;;;;;;;:::i;:::-;;;;;;14291:213:58;3228:4636:81;14369:24:58;;;;14365:103;;3228:4636:81;14291:213:58;:::o;14365:103::-;3228:4636:81;;;;14416:41:58;;;;;;14447:2;14416:41;;;3228:4636:81;;;;;14416:41:58;10552:388:60;3228:4636:81;;10728:8:60;;;10752:20;;10690:17;10752:20;10690:17;10752:20;10690:17;10752:20;:::o;10724:210::-;3228:4636:81;;;;;;;;;;;13267:109:86;10690:17:60;13267:109:86;;10690:17:60;13267:109:86;;;3228:4636:81;:::i;:::-;;;;;;;13267:109:86;3228:4636:81;;;;;10911:11:60;;3228:4636:81;;10886:37:60;10870:1;10886:37;;;:::o;8587:1642:57:-;8658:6;;8654:45;;9401:7;10201:10;10142:26;10093;10044;9995;9946;9897;9848;3228:4636:81;10189:23:57;9401:7;8663:1;3228:4636:81;;;;10826:16:57;10822:99;;8587:1642;3228:4636:81;;;;10938:15:57;10934:96;;8587:1642;3228:4636:81;;;;11047:15:57;11043:96;;8587:1642;3228:4636:81;;;;11156:15:57;11152:96;;8587:1642;3228:4636:81;;;;11265:14:57;11261:93;;8587:1642;3228:4636:81;;;;11371:14:57;11367:93;;8587:1642;3228:4636:81;;;;11477:14:57;11473:93;;8587:1642;3228:4636:81;;;11579:64:57;;8587:1642;3228:4636:81;;;9858:10:57;;;;:::i;:::-;3228:4636:81;;;;;9848:26:57;9907:10;;;;:::i;9897:26::-;9956:10;;;;:::i;9946:26::-;10005:10;;;;:::i;9995:26::-;10054:10;;;;:::i;10044:26::-;10103:10;;;;:::i;10093:26::-;10152:10;;;;:::i;10142:26::-;10201:10;;;:::i;11579:64::-;3228:4636:81;;11579:64:57;;11473:93;3228:4636:81;11511:11:57;;3228:4636:81;;11473:93:57;;;;11367;3228:4636:81;11405:11:57;;3228:4636:81;;11367:93:57;;;;11261;3228:4636:81;11299:11:57;;3228:4636:81;;11261:93:57;;;;11152:96;3228:4636:81;11191:12:57;;3228:4636:81;;11152:96:57;;;;11043;3228:4636:81;11082:12:57;;3228:4636:81;;11043:96:57;;;;10934;3228:4636:81;10973:12:57;;3228:4636:81;;10934:96:57;;;;10822:99;10862:13;;;3228:4636:81;10822:99:57;;;;12497:447:86;;12694:10;;;;;;12926:11;;;12497:447;:::o;12687:230::-;12734:23;;;;;;;:::i;:::-;13267:109;;-1:-1:-1;13267:109:86;3228:4636:81;13267:109:86;;;-1:-1:-1;13267:109:86;;3228:4636:81;;;;;-1:-1:-1;12771:136:86;3228:4636:81;;;12830:10:86;12771:136;;12687:230;;;;12771:136;3228:4636:81;;12891:1:86;3228:4636:81;;;;;;12771:136:86;3228:4636:81;;:::i;6999:207:86:-;;3228:4636:81;;9594:15:60;-1:-1:-1;9619:18:60;9652:7;9658:1;9652:7;;9648:234;;6999:207:86;9906:53:60;;;;;:::i;:::-;9977:8;;;:63;-1:-1:-1;9977:63:60;;-1:-1:-1;;;;;3228:4636:81;;7168:7:86;3228:4636:81;;;7178:12:86;;:17;:12;;:17;:::i;9977:63:60:-;9992:41;10025:7;9992:48;10025:7;;:::i;:::-;9992:41;13267:109:86;;;;;;13089:293;;9992:41:60;3228:4636:81;;;;;9992:48:60;9977:63;;;9648:234;9695:14;;;;;:::i;:::-;3228:4636:81;;;;;;;9906:53:60;13267:109:86;;-1:-1:-1;13267:109:86;3228:4636:81;13267:109:86;;;-1:-1:-1;13267:109:86;;3228:4636:81;;;;;9727:48:60;9723:149;3228:4636:81;;;9795:10:60;9723:149;9648:234;;9723:149;9850:7;;;;;;:::i;:::-;9723:149;9648:234;;3228:4636:81;;;;;;;:::i;:::-;-1:-1:-1;3228:4636:81;;;;;;;:::o;11486:272:86:-;;3228:4636:81;11308:22:60;11718:31:86;11486:272;3228:4636:81;;:::i;:::-;;;;:::i;:::-;;11308:22:60;;:::i;:::-;3228:4636:81;;:::i;:::-;;11718:12:86;3228:4636:81;;;;;11731:17:86;3228:4636:81;;;;;11731:17:86;;3228:4636:81;;11718:12:86;;:31;:::i;:::-;3228:4636:81;;;;;;;;;:::i;:::-;;;;;;11731:17:86;11672:79;;3228:4636:81;11486:272:86;:::o;6893:76:25:-;;;:::i;:::-;;;:::i;:::-;1805:1:28;-1:-1:-1;;;;;;;;;;;3228:4636:81;6893:76:25:o;3228:4636:81:-;;;;;;;:::i;:::-;-1:-1:-1;3228:4636:81;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;-1:-1:-1;;;;;3228:4636:81;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3228:4636:81;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;6510:1274:78:-;6658:30;6510:1274;3228:4636:81;;:::i;:::-;;6658:30:78;3228:4636:81;;;6658:30:78;;;;;;:::i;:::-;6716:17;;3228:4636:81;6716:17:78;;3228:4636:81;-1:-1:-1;;;;;3228:4636:81;6716:54:78;;:179;;6510:1274;6699:259;;6973:9;6658:30;6988:33;;;6716:17;7030:3;6988:33;;3228:4636:81;;6984:44:78;;;;;7053:36;;;:50;:36;;:::i;:::-;3228:4636:81;-1:-1:-1;;;;;3228:4636:81;;;7053:50:78;;7049:119;;7186:73;7187:72;7222:36;;:33;;;:36;:::i;:::-;7187:72;:::i;:::-;7186:73;;3228:4636:81;7186:73:78;7182:140;;3228:4636:81;;6973:9:78;;7182:140;3228:4636:81;;-1:-1:-1;;;7286:21:78;;;;;7049:119;3228:4636:81;;-1:-1:-1;;;7130:23:78;;;;;6984:44;-1:-1:-1;7362:42:78;;-1:-1:-1;;7362:42:78;;;;6716:17;7413:3;7362:42;;3228:4636:81;;7358:53:78;;;;;7436:45;;;:59;:45;;:::i;:59::-;;7432:128;;7578:92;7579:91;7624:45;;:42;;;:45;:::i;:::-;7579:91;:::i;7578:92::-;7574:159;;3228:4636:81;;7347:9:78;;7574:159;3228:4636:81;;-1:-1:-1;;;7697:21:78;;;;;7432:128;3228:4636:81;;-1:-1:-1;;;7522:23:78;;;;;7358:53;;;;;;7760:17;6510:1274;:::o;6699:259::-;3228:4636:81;;-1:-1:-1;;;6927:20:78;;;;;6716:179;6791:33;6658:30;6791:33;;;3228:4636:81;6791:45:78;:103;6716:179;6791:103;6840:42;;;;;3228:4636:81;6840:54:78;6716:179;;2557:104:57;;2641:5;;;;;;:13;2557:104;:::o;2641:13::-;;;2557:104;:::o;3803:4116::-;;;3228:4636:81;;;;-1:-1:-1;;3803:4116:57;;4383:131;;;;;;;;;;;;4595:10;;4591:368;;5065:20;;;;5061:88;;5435:300;;;3228:4636:81;-1:-1:-1;3228:4636:81;5954:31:57;;5999:371;;;6813:1;3228:4636:81;;6794:1:57;3228:4636:81;6793:21:57;3228:4636:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5999:371:57;;;;-1:-1:-1;5999:371:57;;;5435:300;;;;;;3228:4636:81;5435:300:57;;5999:371;6436:21;3228:4636:81;3803:4116:57;:::o;5061:88::-;3228:4636:81;;-1:-1:-1;;;5112:22:57;;;;;4591:368;4925:19;;;;;;;:::i;3228:4636:81:-;;;-1:-1:-1;;;3228:4636:81;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;3228:4636:81;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;11513:870:60;3228:4636:81;;11513:870:60;;;3228:4636:81;11513:870:60;11672:7;;;;3228:4636:81;11775:28:60;11795:7;;;:::i;3228:4636:81:-;;;;;;;;;;;;;;;;11877:15:60;-1:-1:-1;11873:91:60;;3228:4636:81;;12233:11:60;3228:4636:81;;;12027:16:60;3228:4636:81;;;;;;;12027:16:60;;;;12083:7;12063:43;12083:7;;12063:28;12083:7;;:::i;:::-;12063:28;13267:109:86;;;;;;13089:293;;12063:28:60;3228:4636:81;;;;;;;;;;;;;;;;;12063:43:60;12233:11;3228:4636:81;-1:-1:-1;;;;;3228:4636:81;;;12023:189:60;3228:4636:81;;;12145:52:60;3228:4636:81;12155:41:60;3228:4636:81;;:::i;:::-;;;;;;;;12155:41:60;-1:-1:-1;;;;;3228:4636:81;;12155:41:60;;;3228:4636:81;12145:52:60;:::i;:::-;12023:189;;11873:91;3228:4636:81;;-1:-1:-1;;;11919:30:60;;;;;11668:709;12283:52;3228:4636:81;;12293:41:60;3228:4636:81;;:::i;12293:41:60:-;-1:-1:-1;;;;;3228:4636:81;;12293:41:60;;;3228:4636:81;12145:52:60;:::i;12283:::-;11678:1;12349:17;;:::o;2774:153:57:-;;2900:5;;;2910;;3228:4636:81;;;;;;;;;2774:153:57;:::o;7084:141:25:-;3228:4636:81;-1:-1:-1;;;;;;;;;;;3228:4636:81;;;;7150:18:25;7146:73;;7084:141::o;7146:73::-;3228:4636:81;;-1:-1:-1;;;7191:17:25;;;;;12736:433:60;;12919:10;;;;;;13151:11;;;12736:433;:::o;12912:230::-;12959:23;;;;;;;:::i;:::-;13267:109:86;;-1:-1:-1;13267:109:86;3228:4636:81;13267:109:86;;;-1:-1:-1;13267:109:86;;3228:4636:81;;;;;-1:-1:-1;12996:136:60;3228:4636:81;;;13055:10:60;12996:136;;12912:230;;;;12996:136;3228:4636:81;;13116:1:60;3228:4636:81;;;;;;12996:136:60;3228:4636:81;;:::i","linkReferences":{},"immutableReferences":{"57808":[{"start":2537,"length":32}],"57811":[{"start":4780,"length":32}],"58762":[{"start":2123,"length":32},{"start":4837,"length":32}],"58765":[{"start":1298,"length":32},{"start":10629,"length":32}],"58768":[{"start":1366,"length":32},{"start":7731,"length":32},{"start":7995,"length":32}],"58771":[{"start":1993,"length":32},{"start":7578,"length":32},{"start":8121,"length":32}],"61286":[{"start":3733,"length":32},{"start":6477,"length":32}],"61288":[{"start":3479,"length":32},{"start":6638,"length":32}],"61290":[{"start":4169,"length":32}],"62368":[{"start":1440,"length":32},{"start":4055,"length":32},{"start":5673,"length":32}]}},"methodIdentifiers":{"BASE_DELEGATOR_HINTS()":"79d89614","DEFAULT_ADMIN_ROLE()":"a217fddf","FACTORY()":"2dd31000","HOOK_GAS_LIMIT()":"ff54740f","HOOK_RESERVE()":"557cab44","HOOK_SET_ROLE()":"6679191e","NETWORK_LIMIT_SET_ROLE()":"7d24bb27","NETWORK_REGISTRY()":"c0cd7c3e","OPERATOR_NETWORK_OPT_IN_SERVICE()":"1a80e500","OPERATOR_NETWORK_SHARES_SET_ROLE()":"e78eb6ae","OPERATOR_VAULT_OPT_IN_SERVICE()":"128e5d82","OPT_IN_SERVICE_HINTS()":"9b656b22","TYPE()":"bb24fe8a","VAULT_FACTORY()":"103f2907","VAULT_HINTS()":"45e78fcb","VERSION()":"ffa1ad74","getRoleAdmin(bytes32)":"248a9ca3","grantRole(bytes32,address)":"2f2ff15d","hasRole(bytes32,address)":"91d14854","hook()":"7f5a7c7b","initialize(bytes)":"439fab91","maxNetworkLimit(bytes32)":"d15b740e","networkLimit(bytes32)":"3eb22c0f","networkLimitAt(bytes32,uint48,bytes)":"5d32a1c9","networkLimitHint(address,bytes32,uint48)":"da749d2b","networkLimitHintInternal(bytes32,uint48)":"197aa7ea","onSlash(bytes32,address,uint256,uint48,bytes)":"e49561ee","operatorNetworkShares(bytes32,address)":"42c53e33","operatorNetworkSharesAt(bytes32,address,uint48,bytes)":"1a7a7044","operatorNetworkSharesHint(address,bytes32,address,uint48)":"07f9d5fd","operatorNetworkSharesHintInternal(bytes32,address,uint48)":"987b3ee8","renounceRole(bytes32,address)":"36568abe","revokeRole(bytes32,address)":"d547741f","setHook(address)":"3dfd3873","setMaxNetworkLimit(uint96,uint256)":"23f752d5","setNetworkLimit(bytes32,uint256)":"02145348","setOperatorNetworkShares(bytes32,address,uint256)":"a33bc287","stake(bytes32,address)":"fd4d447c","stakeAt(bytes32,address,uint48,bytes)":"e02f6937","stakeHints(address,bytes32,address,uint48)":"25dc9708","staticDelegateCall(address,bytes)":"9f86fd85","supportsInterface(bytes4)":"01ffc9a7","totalOperatorNetworkShares(bytes32)":"c43dc03f","totalOperatorNetworkSharesAt(bytes32,uint48,bytes)":"8b3f10b0","totalOperatorNetworkSharesHint(address,bytes32,uint48)":"b549ef1f","totalOperatorNetworkSharesHintInternal(bytes32,uint48)":"ed4d89e5","vault()":"fbfa77cf"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"baseDelegatorHints\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"vaultHints\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"optInServiceHints\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"AccessControlBadConfirmation\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"neededRole\",\"type\":\"bytes32\"}],\"name\":\"AccessControlUnauthorizedAccount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AlreadySet\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CheckpointUnorderedInsertion\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"DuplicateRoleHolder\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ExceedsMaxNetworkLimit\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ExternalCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientHookGas\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MathOverflowedMulDiv\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MissingRoleHolders\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotNetwork\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotSlasher\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotVault\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ReentrancyGuardReentrantCall\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"bits\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"SafeCastOverflowedUintDowncast\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ZeroAddressRoleHolder\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint48\",\"name\":\"captureTimestamp\",\"type\":\"uint48\"}],\"name\":\"OnSlash\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"previousAdminRole\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"newAdminRole\",\"type\":\"bytes32\"}],\"name\":\"RoleAdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleRevoked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"hook\",\"type\":\"address\"}],\"name\":\"SetHook\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"SetMaxNetworkLimit\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"SetNetworkLimit\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"}],\"name\":\"SetOperatorNetworkShares\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"BASE_DELEGATOR_HINTS\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"DEFAULT_ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"FACTORY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"HOOK_GAS_LIMIT\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"HOOK_RESERVE\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"HOOK_SET_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"NETWORK_LIMIT_SET_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"NETWORK_REGISTRY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"OPERATOR_NETWORK_OPT_IN_SERVICE\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"OPERATOR_NETWORK_SHARES_SET_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"OPERATOR_VAULT_OPT_IN_SERVICE\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"OPT_IN_SERVICE_HINTS\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"TYPE\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"VAULT_FACTORY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"VAULT_HINTS\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"VERSION\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleAdmin\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"grantRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"hook\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"}],\"name\":\"maxNetworkLimit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"}],\"name\":\"networkLimit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hint\",\"type\":\"bytes\"}],\"name\":\"networkLimitAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"}],\"name\":\"networkLimitHint\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"}],\"name\":\"networkLimitHintInternal\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"exists\",\"type\":\"bool\"},{\"internalType\":\"uint32\",\"name\":\"hint\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint48\",\"name\":\"captureTimestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"onSlash\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"operatorNetworkShares\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hint\",\"type\":\"bytes\"}],\"name\":\"operatorNetworkSharesAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"}],\"name\":\"operatorNetworkSharesHint\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"}],\"name\":\"operatorNetworkSharesHintInternal\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"exists\",\"type\":\"bool\"},{\"internalType\":\"uint32\",\"name\":\"hint\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"callerConfirmation\",\"type\":\"address\"}],\"name\":\"renounceRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"hook_\",\"type\":\"address\"}],\"name\":\"setHook\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint96\",\"name\":\"identifier\",\"type\":\"uint96\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"setMaxNetworkLimit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"setNetworkLimit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"}],\"name\":\"setOperatorNetworkShares\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"stake\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hints\",\"type\":\"bytes\"}],\"name\":\"stakeAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"}],\"name\":\"stakeHints\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"staticDelegateCall\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"}],\"name\":\"totalOperatorNetworkShares\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hint\",\"type\":\"bytes\"}],\"name\":\"totalOperatorNetworkSharesAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"}],\"name\":\"totalOperatorNetworkSharesHint\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"}],\"name\":\"totalOperatorNetworkSharesHintInternal\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"exists\",\"type\":\"bool\"},{\"internalType\":\"uint32\",\"name\":\"hint\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"vault\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"AccessControlBadConfirmation()\":[{\"details\":\"The caller of a function is not the expected one. NOTE: Don't confuse with {AccessControlUnauthorizedAccount}.\"}],\"AccessControlUnauthorizedAccount(address,bytes32)\":[{\"details\":\"The `account` is missing a role.\"}],\"CheckpointUnorderedInsertion()\":[{\"details\":\"A value was attempted to be inserted on a past checkpoint.\"}],\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"MathOverflowedMulDiv()\":[{\"details\":\"Muldiv operation overflow.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"ReentrancyGuardReentrantCall()\":[{\"details\":\"Unauthorized reentrant call.\"}],\"SafeCastOverflowedUintDowncast(uint8,uint256)\":[{\"details\":\"Value doesn't fit in an uint of `bits` size.\"}]},\"events\":{\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"OnSlash(bytes32,address,uint256,uint48)\":{\"params\":{\"amount\":\"amount of the collateral to be slashed\",\"captureTimestamp\":\"time point when the stake was captured\",\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"}},\"RoleAdminChanged(bytes32,bytes32,bytes32)\":{\"details\":\"Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole` `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite {RoleAdminChanged} not being emitted signaling this.\"},\"RoleGranted(bytes32,address,address)\":{\"details\":\"Emitted when `account` is granted `role`. `sender` is the account that originated the contract call, an admin role bearer except when using {AccessControl-_setupRole}.\"},\"RoleRevoked(bytes32,address,address)\":{\"details\":\"Emitted when `account` is revoked `role`. `sender` is the account that originated the contract call: - if using `revokeRole`, it is the admin role bearer - if using `renounceRole`, it is the role bearer (i.e. `account`)\"},\"SetHook(address)\":{\"params\":{\"hook\":\"address of the hook\"}},\"SetMaxNetworkLimit(bytes32,uint256)\":{\"params\":{\"amount\":\"new maximum subnetwork's limit (how much stake the subnetwork is ready to get)\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"}},\"SetNetworkLimit(bytes32,uint256)\":{\"params\":{\"amount\":\"new subnetwork's limit (how much stake the vault curator is ready to give to the subnetwork)\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"}},\"SetOperatorNetworkShares(bytes32,address,uint256)\":{\"params\":{\"operator\":\"address of the operator\",\"shares\":\"new operator's shares inside the subnetwork (what percentage, which is equal to the shares divided by the total operators' shares, of the subnetwork's stake the vault curator is ready to give to the operator)\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"}}},\"kind\":\"dev\",\"methods\":{\"VERSION()\":{\"details\":\"Must return 1 for this one.\",\"returns\":{\"_0\":\"version of the delegator\"}},\"getRoleAdmin(bytes32)\":{\"details\":\"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}.\"},\"grantRole(bytes32,address)\":{\"details\":\"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event.\"},\"hasRole(bytes32,address)\":{\"details\":\"Returns `true` if `account` has been granted `role`.\"},\"initialize(bytes)\":{\"params\":{\"data\":\"some data to use\"}},\"networkLimit(bytes32)\":{\"params\":{\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"},\"returns\":{\"_0\":\"limit of the subnetwork\"}},\"networkLimitAt(bytes32,uint48,bytes)\":{\"params\":{\"hint\":\"hint for checkpoint index\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\",\"timestamp\":\"time point to get the subnetwork limit at\"},\"returns\":{\"_0\":\"limit of the subnetwork at the given timestamp\"}},\"onSlash(bytes32,address,uint256,uint48,bytes)\":{\"details\":\"Only the vault's slasher can call this function.\",\"params\":{\"amount\":\"amount of the collateral slashed\",\"captureTimestamp\":\"time point when the stake was captured\",\"data\":\"some additional data\",\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"}},\"operatorNetworkShares(bytes32,address)\":{\"params\":{\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"},\"returns\":{\"_0\":\"shares of the operator for the subnetwork\"}},\"operatorNetworkSharesAt(bytes32,address,uint48,bytes)\":{\"params\":{\"hint\":\"hint for checkpoint index\",\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\",\"timestamp\":\"time point to get the operator's shares at\"},\"returns\":{\"_0\":\"shares of the operator for the subnetwork at the given timestamp\"}},\"renounceRole(bytes32,address)\":{\"details\":\"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `callerConfirmation`. May emit a {RoleRevoked} event.\"},\"revokeRole(bytes32,address)\":{\"details\":\"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event.\"},\"setHook(address)\":{\"details\":\"Only a HOOK_SET_ROLE holder can call this function. The hook can have arbitrary logic under certain functions, however, it doesn't affect the stake guarantees.\",\"params\":{\"hook\":\"address of the hook\"}},\"setMaxNetworkLimit(uint96,uint256)\":{\"details\":\"Only a network can call this function.\",\"params\":{\"amount\":\"new maximum subnetwork's limit\"}},\"setNetworkLimit(bytes32,uint256)\":{\"details\":\"Only a NETWORK_LIMIT_SET_ROLE holder can call this function.\",\"params\":{\"amount\":\"new limit of the subnetwork\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"}},\"setOperatorNetworkShares(bytes32,address,uint256)\":{\"details\":\"Only an OPERATOR_NETWORK_SHARES_SET_ROLE holder can call this function.\",\"params\":{\"operator\":\"address of the operator\",\"shares\":\"new shares of the operator for the subnetwork\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"}},\"stake(bytes32,address)\":{\"details\":\"Warning: this function is not safe to use for stake capturing, as it can change by the end of the block.\",\"params\":{\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"},\"returns\":{\"_0\":\"slashable stake until the end of the next epoch\"}},\"stakeAt(bytes32,address,uint48,bytes)\":{\"details\":\"Warning: it is not safe to use timestamp >= current one for the stake capturing, as it can change later.\",\"params\":{\"hints\":\"hints for the checkpoints' indexes\",\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\",\"timestamp\":\"time point to capture the stake at\"},\"returns\":{\"_0\":\"slashable stake at the given timestamp until the end of the consequent epoch\"}},\"staticDelegateCall(address,bytes)\":{\"details\":\"It allows to use this contract's storage on-chain.\",\"params\":{\"data\":\"data to make a delegatecall with\",\"target\":\"address of the contract to make a delegatecall to\"}},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"},\"totalOperatorNetworkShares(bytes32)\":{\"params\":{\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"},\"returns\":{\"_0\":\"total shares of the operators for the subnetwork\"}},\"totalOperatorNetworkSharesAt(bytes32,uint48,bytes)\":{\"params\":{\"hint\":\"hint for checkpoint index\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\",\"timestamp\":\"time point to get the total operators' shares at\"},\"returns\":{\"_0\":\"total shares of the operators for the subnetwork at the given timestamp\"}}},\"version\":1},\"userdoc\":{\"events\":{\"OnSlash(bytes32,address,uint256,uint48)\":{\"notice\":\"Emitted when a slash happens.\"},\"SetHook(address)\":{\"notice\":\"Emitted when a hook is set.\"},\"SetMaxNetworkLimit(bytes32,uint256)\":{\"notice\":\"Emitted when a subnetwork's maximum limit is set.\"},\"SetNetworkLimit(bytes32,uint256)\":{\"notice\":\"Emitted when a subnetwork's limit is set.\"},\"SetOperatorNetworkShares(bytes32,address,uint256)\":{\"notice\":\"Emitted when an operator's shares inside a subnetwork are set.\"}},\"kind\":\"user\",\"methods\":{\"FACTORY()\":{\"notice\":\"Get the factory's address.\"},\"HOOK_GAS_LIMIT()\":{\"notice\":\"Get a gas limit for the hook.\"},\"HOOK_RESERVE()\":{\"notice\":\"Get a reserve gas between the gas limit check and the hook's execution.\"},\"HOOK_SET_ROLE()\":{\"notice\":\"Get a hook setter's role.\"},\"NETWORK_LIMIT_SET_ROLE()\":{\"notice\":\"Get a subnetwork limit setter's role.\"},\"NETWORK_REGISTRY()\":{\"notice\":\"Get the network registry's address.\"},\"OPERATOR_NETWORK_OPT_IN_SERVICE()\":{\"notice\":\"Get the operator-network opt-in service's address.\"},\"OPERATOR_NETWORK_SHARES_SET_ROLE()\":{\"notice\":\"Get an operator-subnetwork shares setter's role.\"},\"OPERATOR_VAULT_OPT_IN_SERVICE()\":{\"notice\":\"Get the operator-vault opt-in service's address.\"},\"TYPE()\":{\"notice\":\"Get the entity's type.\"},\"VAULT_FACTORY()\":{\"notice\":\"Get the vault factory's address.\"},\"VERSION()\":{\"notice\":\"Get a version of the delegator (different versions mean different interfaces).\"},\"hook()\":{\"notice\":\"Get the hook's address.\"},\"initialize(bytes)\":{\"notice\":\"Initialize this entity contract by using a given data.\"},\"maxNetworkLimit(bytes32)\":{\"notice\":\"Get a particular subnetwork's maximum limit (meaning the subnetwork is not ready to get more as a stake).\"},\"networkLimit(bytes32)\":{\"notice\":\"Get a subnetwork's limit (how much stake the vault curator is ready to give to the subnetwork).\"},\"networkLimitAt(bytes32,uint48,bytes)\":{\"notice\":\"Get a subnetwork's limit at a given timestamp using a hint (how much stake the vault curator is ready to give to the subnetwork).\"},\"onSlash(bytes32,address,uint256,uint48,bytes)\":{\"notice\":\"Called when a slash happens.\"},\"operatorNetworkShares(bytes32,address)\":{\"notice\":\"Get an operator's shares for a subnetwork (what percentage, which is equal to the shares divided by the total operators' shares, of the subnetwork's stake the vault curator is ready to give to the operator).\"},\"operatorNetworkSharesAt(bytes32,address,uint48,bytes)\":{\"notice\":\"Get an operator's shares for a subnetwork at a given timestamp using a hint (what percentage, which is equal to the shares divided by the total operators' shares, of the subnetwork's stake the vault curator is ready to give to the operator).\"},\"setHook(address)\":{\"notice\":\"Set a new hook.\"},\"setMaxNetworkLimit(uint96,uint256)\":{\"notice\":\"Set a maximum limit for a subnetwork (how much stake the subnetwork is ready to get). identifier identifier of the subnetwork\"},\"setNetworkLimit(bytes32,uint256)\":{\"notice\":\"Set a subnetwork's limit (how much stake the vault curator is ready to give to the subnetwork).\"},\"setOperatorNetworkShares(bytes32,address,uint256)\":{\"notice\":\"Set an operator's shares for a subnetwork (what percentage, which is equal to the shares divided by the total operators' shares, of the subnetwork's stake the vault curator is ready to give to the operator).\"},\"stake(bytes32,address)\":{\"notice\":\"Get a stake that a given subnetwork will be able to slash for a certain operator until the end of the next epoch (if no cross-slashing and no slashings by the subnetwork).\"},\"stakeAt(bytes32,address,uint48,bytes)\":{\"notice\":\"Get a stake that a given subnetwork could be able to slash for a certain operator at a given timestamp until the end of the consequent epoch using hints (if no cross-slashing and no slashings by the subnetwork).\"},\"staticDelegateCall(address,bytes)\":{\"notice\":\"Make a delegatecall from this contract to a given target contract with a particular data (always reverts with a return data).\"},\"totalOperatorNetworkShares(bytes32)\":{\"notice\":\"Get a sum of operators' shares for a subnetwork.\"},\"totalOperatorNetworkSharesAt(bytes32,uint48,bytes)\":{\"notice\":\"Get a sum of operators' shares for a subnetwork at a given timestamp using a hint.\"},\"vault()\":{\"notice\":\"Get the vault's address.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/contracts/hints/DelegatorHints.sol\":\"NetworkRestakeDelegatorHints\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol\":{\"keccak256\":\"0x6662ec4e5cefca03eeadd073e9469df8d2944bb2ee8ec8f7622c2c46aab5f225\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4d8544c6f8daa4d1bc215c6a72fe0acdb748664a105b0e5efc19295667521d45\",\"dweb:/ipfs/QmdGWqdnXT8S3RgCR6aV8XHZrsybieMQLLnug1NtpSjEXN\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0xc163fcf9bb10138631a9ba5564df1fa25db9adff73bd9ee868a8ae1858fe093a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9706d43a0124053d9880f6e31a59f31bc0a6a3dc1acd66ce0a16e1111658c5f6\",\"dweb:/ipfs/QmUFmfowzkRwGtDu36cXV9SPTBHJ3n7dG9xQiK5B28jTf2\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609\",\"dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9\",\"dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardUpgradeable.sol\":{\"keccak256\":\"0xb44e086e941292cdc7f440de51478493894ef0b1aeccb0c4047445919f667f74\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://942dad22fbdc1669f025540ba63aa3ccfad5f8458fc5d4525b31ebf272e7af45\",\"dweb:/ipfs/Qmdo4X2M82aM3AMoW2kf2jhYkSCyC4T1pHNd6obdsDFnAB\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol\":{\"keccak256\":\"0xdaba3f7c42c55b2896353f32bd27d4d5f8bae741b3b05d4c53f67abc4dc47ce8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1fa2e61141c602510bcd2cd936ed9561922ac8772a9b9c9a9db091a74e354a45\",\"dweb:/ipfs/QmcHQDDoEBwJmwUbzoVkytvJsBx3KVHYFFnDkvRGWh9Wmh\"]},\"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0xb6b36edd6a2999fd243ff226d6cbf84bd71af2432bbd0dfe19392996a1d9cb41\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1fd2f35495652e57e3f99bc6c510bc5f7dd398a176ea2e72d8ed730aebc6ca26\",\"dweb:/ipfs/QmTQV6X4gkikTib49cho5iDX3JvSQbdsoEChoDwrk3CbbH\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC1271.sol\":{\"keccak256\":\"0x85a45f3f10014a0f8be41157a32b6a5f905753ea64a4b64e29fc12b7deeecf39\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c3c74009ce36136b36c77c23935b8e4a7b4f253be2da2be4fb4a916b1ce43743\",\"dweb:/ipfs/QmcH36v3iN7SJJuF73AunLR2LtNxhVJ1wm63ph4dPZ4pcL\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC5267.sol\":{\"keccak256\":\"0x92aa1df62dc3d33f1656d63bede0923e0df0b706ad4137c8b10b0a8fe549fd92\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c5c0f29195ad64cbe556da8e257dac8f05f78c53f90323c0d2accf8e6922d33a\",\"dweb:/ipfs/QmQ61TED8uaCZwcbh8KkgRSsCav7x7HbcGHwHts3U4DmUP\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c\",\"dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0x6008dabfe393240d73d7dd7688033f72740d570aa422254d29a7dce8568f3aff\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f5196ec75139918c6c7bb4251b36395e668f1fa6d206beba7e7520e74913940d\",\"dweb:/ipfs/QmSyqjksXxmm2mCG6qRd1yuwLykypkSVBbnBnGqJRcuJMi\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x37bb49513c49c87c4642a891b13b63571bc87013dde806617aa1efb54605f386\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b3036b3a83b7c48f96641f2a9002b9f2dcb6a5958dd670894ada21ae8229b3d0\",\"dweb:/ipfs/QmUNfSBdoVtjhETaUJCYcaC7pTMgbhht926tJ2uXJbiVd3\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0xaf28a975a78550e45f65e559a3ad6a5ad43b9b8a37366999abd1b7084eb70721\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b7bd24e224f67f65bfadf85dc2929fa965456bb2415478bd0125471b5ce35245\",\"dweb:/ipfs/QmRaydGr8BTHs1kvaZfsNU69pKzUAGFrvABn1KiRSbE51y\"]},\"lib/openzeppelin-contracts/contracts/utils/ShortStrings.sol\":{\"keccak256\":\"0x18a7171df639a934592915a520ecb97c5bbc9675a1105607aac8a94e72bf62c6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7478e1f13da69a2867ccd883001d836b75620362e743f196376d63ed0c422a1c\",\"dweb:/ipfs/QmWywcQ9TNfwtoqAxbn25d8C5VrV12PrPS9UjtGe6pL2BA\"]},\"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0x32ba59b4b7299237c8ba56319110989d7978a039faf754793064e967e5894418\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1ae50c8b562427df610cc4540c9bf104acca7ef8e2dcae567ae7e52272281e9c\",\"dweb:/ipfs/QmTHiadFCSJUPpRjNegc5SahmeU8bAoY8i9Aq6tVscbcKR\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0x55f102ea785d8399c0e58d1108e2d289506dde18abc6db1b7f68c1f9f9bc5792\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e52e0a7765c943ef14e5bcf11e46e6139fa044be564881378349236bf2e3453\",\"dweb:/ipfs/QmZEeeXoFPW47amyP35gfzomF9DixqqTEPwzBakv6cZw6i\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0xeed0a08b0b091f528356cbc7245891a4c748682d4f6a18055e8e6ca77d12a6cf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba80ba06c8e6be852847e4c5f4492cef801feb6558ae09ed705ff2e04ea8b13c\",\"dweb:/ipfs/QmXRJDv3xHLVQCVXg1ZvR35QS9sij5y9NDWYzMfUfAdTHF\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/EIP712.sol\":{\"keccak256\":\"0x999f705a027ed6dc2d4e0df2cc4a509852c6bfd11de1c8161bf88832d0503fd0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0798def67258d9a3cc20b2b4da7ebf351a5cefe0abfdd665d2d81f8e32f89b21\",\"dweb:/ipfs/QmPEvJosnPfzHNjKvCv2D3891mA2Ww8eUwkqrxBjuYdHCt\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol\":{\"keccak256\":\"0xba333517a3add42cd35fe877656fc3dfcc9de53baa4f3aabbd6d12a92e4ea435\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2ceacff44c0fdc81e48e0e0b1db87a2076d3c1fb497341de077bf1da9f6b406c\",\"dweb:/ipfs/QmRUo1muMRAewxrKQ7TkXUtknyRoR57AyEkoPpiuZQ8FzX\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/SignatureChecker.sol\":{\"keccak256\":\"0x6b11eb41a228cca35d4b662b4df69fcd75192851365102690f57b2ac01e83fe6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ab006a2983ed350d2af21ddcdd835dcae3b8340086cc4d088460da5abd041f69\",\"dweb:/ipfs/QmbEacDhkJZiGrgzLjB4pNtE8Z1uudjDw1DvcDUTVQFsLG\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875\",\"dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0xe19a4d5f31d2861e7344e8e535e2feafb913d806d3e2b5fe7782741a2a7094fe\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4aed79c0fa6f0546ed02f2f683e8f77f0fd2ed7eb34d8bbf3d373c9a6d95b13c\",\"dweb:/ipfs/QmWqVz6UAVqmnWU5pqYPt1o6iDEZyPaBraAA3rKfTTSfYj\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x5f7e4076e175393767754387c962926577f1660dd9b810187b9002407656be72\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7d533a1c97cd43a57cd9c465f7ee8dd0e39ae93a8fb8ff8e5303a356b081cdcc\",\"dweb:/ipfs/QmVBEei6aTnvYNZp2CHYVNKyZS4q1KkjANfY39WVXZXVoT\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/Checkpoints.sol\":{\"keccak256\":\"0xbdc5e074d7dd6678f67e92b1a51a20226801a407b0e1af3da367c5d1ff4519ad\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a36cca6b22fff3db16fc789ff6c60eea71d4b156065d4d0c83a0bc5e91a77a8b\",\"dweb:/ipfs/QmYN3exd5AemxjBrN8XMB1p5LbbE16uC3sjbYjwi8AjcGR\"]},\"lib/openzeppelin-contracts/contracts/utils/types/Time.sol\":{\"keccak256\":\"0xc7755af115020049e4140f224f9ee88d7e1799ffb0646f37bf0df24bf6213f58\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7f09bf94d5274334ec021f61a04659db303f31e60460e14b709c9bf187740111\",\"dweb:/ipfs/QmNvgomZYUwFAt4cZbPWAiTeSZQreGehY9BK5xyVJsUttb\"]},\"src/contracts/common/Entity.sol\":{\"keccak256\":\"0x3d61a932995b8443381f3950542d388223a2c26dd5d29a3274dea3baa7388bd7\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://7cdf5f03ca72fd263fd32ff59c8d88ddca911ae83896a287d10772c1bbe9b138\",\"dweb:/ipfs/QmbP84r5BWT1Rn9AYTntWSf3xUMTTCohTZJFhbBhDXFoHa\"]},\"src/contracts/common/MigratableEntity.sol\":{\"keccak256\":\"0x2d736f4dacd5d7e7697503bc426c78b8250fe1694ca157965ec178da6807de58\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://f1237acf96b4b9f9b69156e068eddd726a6e15bd8e87a18dc999cd4ba4da069c\",\"dweb:/ipfs/QmS6M8fiFFSeuJ4ZKKq1z8W7w4ybeHQSy5TLASGoc1LVic\"]},\"src/contracts/common/StaticDelegateCallable.sol\":{\"keccak256\":\"0x350029aa8955eacaffffaeb58babc5c98e80ebc5c5db388ed17ee6465f4a9d90\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://eb392a8ee9050e0af606897df63e3404e3829e8b688b580663892f9664195764\",\"dweb:/ipfs/QmaXC8jqV8UrrAFkzXTEv2fJF56sy33HhLxAzaRZmUxuXD\"]},\"src/contracts/delegator/BaseDelegator.sol\":{\"keccak256\":\"0x7c54d491fdd4415b764a9c8defa068e56d4c0c8c9419be0053a1d377669290e8\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://9238bfbad0f6eeb0dc7727724de14380f1980b395902269703d5e2ef07e52e10\",\"dweb:/ipfs/QmPJn1V4HNXcEghYvogGuSTF24dSQUPosR5qtsXcmNqRm3\"]},\"src/contracts/delegator/FullRestakeDelegator.sol\":{\"keccak256\":\"0x0a81c4f8e72914563a9cb771e93acf889c71ea36b7bec040e4eb562b199d5af1\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://6fc66b6ba02da77046a0bbbd1dd407a62c08f52e04486c9cbd2cb1cca3da555f\",\"dweb:/ipfs/QmZQivK1ZnMxfRQQ5aLpV9co5u55wQVNev5Rg1hzAqxhkE\"]},\"src/contracts/delegator/NetworkRestakeDelegator.sol\":{\"keccak256\":\"0xd3a8e6522f9c6fdcc2da837c9023afd6bdff2bce45a35590320c475519e3636d\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://58b17a87f6554f08376f9ea7fedf486a4aa75801bf0ad8b23ff5a46959b6b7a3\",\"dweb:/ipfs/QmSTmNh67tYt8CmjVZb57r8N3qX5yeYdMApKPJm3qvQgQw\"]},\"src/contracts/delegator/OperatorNetworkSpecificDelegator.sol\":{\"keccak256\":\"0x031a10722b9ec49048f0952710401131290adb87e71caf294e864e7ac3b98a16\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://72428febc875134b2f29205e6f294634a1c22a7d5c78d6a9cb2f8196f107c9b5\",\"dweb:/ipfs/QmTPwXR6h5oytckmkLrHdKeEMdphJxceDhYUR4zvQeWAwY\"]},\"src/contracts/delegator/OperatorSpecificDelegator.sol\":{\"keccak256\":\"0x630ce62fa30b9f3349ab7a8cf8dbf041319febc6dd757be2f94d3d25944ed328\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://c2ac59d47ce57d2a6819ae9833e1a618a371eccff93eb5ab367b201b01f42bfa\",\"dweb:/ipfs/QmdBpGMBivpNPv2WbH8vnCUy5xkVeaxQvGgqi33vKCz1kA\"]},\"src/contracts/hints/DelegatorHints.sol\":{\"keccak256\":\"0x44aa0c396311a54afbc7c73e8dadeed41e3165a4fd13f712b27d63d50fc3376d\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://2f255214f3531fc707d88be0d56a7a0aed4180439316d099d760d9118aa83093\",\"dweb:/ipfs/QmZD1w5p1ukJSXumUAjvxwGmkPhn7vsr21Y2atLGEZR2oi\"]},\"src/contracts/hints/Hints.sol\":{\"keccak256\":\"0x8b565df1ae35993c097a9e642002782a8f451f6fd01809cad6bcd345bdf1b99c\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://99a19adb01e350a92f534095b3078229df1f2f83077992d75d58d8684be45971\",\"dweb:/ipfs/QmbmwcuswVbzvwHQFTtrJG86oV98GnfxqYTb8cV8u1acox\"]},\"src/contracts/hints/OptInServiceHints.sol\":{\"keccak256\":\"0x95d9407900d27b9f4a1233b772aeed809c07b2dc5b31cfc9fa77ca26514c49e5\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://a13a8877e312d7e6b8b85bde3668c5d84ff5ecc83f762cd573f2b7104c64eb42\",\"dweb:/ipfs/QmYV2J55acuGzCNnS3juABuUHY5U1xc8g8o9jwEyFFdeG5\"]},\"src/contracts/hints/VaultHints.sol\":{\"keccak256\":\"0xccb505b7159b769cc114d67b87c2de6b106557f667fc8f3780114baad5c3c442\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://6d0c80a908fc16e96a8b5605a0bd53f9e89ad0ef0a738fbbae80ba4d3160749b\",\"dweb:/ipfs/QmXo5UtWoR8YmunqcbBU8rQMm1nvmvjNPoXcVrDhh4pEwR\"]},\"src/contracts/libraries/Checkpoints.sol\":{\"keccak256\":\"0xba90097c8bfe0a975499428b5f8ac5569483c7d92ccc28c12d70de416aae040c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://12f5d93ca94cd06d3147db68993165a58e17903ed53682560de61f3085ad4609\",\"dweb:/ipfs/QmePiuAqvXprMLmFZkGZeGjvGPAvsEDHfCDv7BoQhXu9xE\"]},\"src/contracts/libraries/ERC4626Math.sol\":{\"keccak256\":\"0x8441160513c1cbeb1c3b9ee077bcc7e7ce20006b52a77c8dd39ff0ef89699939\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://943f8cc3e26ddf649f465f40c909819f5c864717c4baa339e9e403b9374a4653\",\"dweb:/ipfs/QmXPxi1sUDsrGprZdUgCzoPEosaZMv9ZhygWQ1vAi1phAB\"]},\"src/contracts/libraries/Subnetwork.sol\":{\"keccak256\":\"0xf5ef5506fd66082b3c2e7f3df37529f5a8efad32ac62e7c8914bd63219190bfe\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba031a54ee0d0e9a270c2b9e18437f5668cfeb659cfd5fe0677459d7fcac2a56\",\"dweb:/ipfs/QmReP3H7qQ78tAfgLnJKsNEQNCQfF1X1Get38Ffd4kzq32\"]},\"src/contracts/service/OptInService.sol\":{\"keccak256\":\"0x4e0932077f2686b7990e10d59deb2535334c0d09e52ef6e57c6ab09eca21c4b1\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://7c00d311032ed4a1743aca7475f3c86ce15cdfc2218108efc3731c03d34a5278\",\"dweb:/ipfs/QmUGGfVwVhaHr5kS4177yKKYiLYzi5qZpkEmvYxBZqazxf\"]},\"src/contracts/vault/Vault.sol\":{\"keccak256\":\"0x2ceff6ed3298c4cad144c99fcc79b51cb9397d6ebef00285b915848b476f8c2e\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://11f2fb3581854f3ab6e82e8d4935d9eb510c903a13c3f022346c2956a58f5307\",\"dweb:/ipfs/QmdUnoXoyYoG9SGWyQZCFyLDRUUX3eXyXetkRvw6jxqqBz\"]},\"src/contracts/vault/VaultStorage.sol\":{\"keccak256\":\"0x57db25b127d77ea3472de53e3a4af3354399655b9268638b99ca5925fa364a56\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://aa763d9a6ec508ae3abfb8228b72b9fd9525279e5135d4962e79ff059feb1173\",\"dweb:/ipfs/QmcbDR6E9wyEpu6V2FkEC4hnWy47zXA9LSKJde6zSGd33Q\"]},\"src/interfaces/common/IEntity.sol\":{\"keccak256\":\"0x8ef4b63d6da63489778ccd5f8d13ebdd527dd4b62730b2c616df5af7474d2d21\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a8d69576a9219d85c50816a18ad53a4d53cfcb27ed38b8cccc808dc2734b71b\",\"dweb:/ipfs/QmYVN3P4Q4REvBWJ97TbAcaxm3uyB2anV6NSGa6ZtSwcEv\"]},\"src/interfaces/common/IMigratableEntity.sol\":{\"keccak256\":\"0x8f5f2809f3afbe8ebfbb365dd7b57b4dd3b6f9943a6187eaf648d45895b8e3c4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ffe640537d539e7a4fde70d30d3e4c57f4ba9c2c25c450cea713aae38e8fd5c\",\"dweb:/ipfs/QmSUTGzvdcn1R1KB7tLThMRtESsfPbeXDhhhKWGtntzBds\"]},\"src/interfaces/common/IRegistry.sol\":{\"keccak256\":\"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014\",\"dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK\"]},\"src/interfaces/common/IStaticDelegateCallable.sol\":{\"keccak256\":\"0xa335d4e81b9071b7de66ef92b43ff20671d86516eb1be46fef29a3483cd3f5d5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d464b9db863c14c05547d2b23352f2e9b7b784799cf09f6bbc4906a2a74e3516\",\"dweb:/ipfs/QmUVWzFvJz7eEbDQKiFTTzwi7TEbjcs3VmwdM4kuptAKvi\"]},\"src/interfaces/delegator/IBaseDelegator.sol\":{\"keccak256\":\"0x96bb312f032e17accce3f8f80936d99468029d6b37c9ca74acdb4b026a0148ee\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2a66dcb5b7d1a6ef6a363431ea98ebd78bc4fdd3d7a134d9b542dc66e7d025c2\",\"dweb:/ipfs/QmRhTPLd2ZAyRHmJUFUcWKs9b3if49QY17LYZuRqWmghw8\"]},\"src/interfaces/delegator/IDelegatorHook.sol\":{\"keccak256\":\"0xc51aa8d7d1f6c8043ee819b7aeb86da0e993912e1442098df897e299f01f9f46\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://adddf5cb2ba282aeb576b26efb28640f865a1721cc9b6eee8b3ee0457a2c9780\",\"dweb:/ipfs/QmNYgAmnLRwWZbhTuQhZs9rx4zcme1df5mEepkrniorSoW\"]},\"src/interfaces/delegator/IFullRestakeDelegator.sol\":{\"keccak256\":\"0xa3c8cb2e45d4d8ce90e95263bea40c01dc400f05ad65bc29597d878606be5e7d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://782cf5e201aa4cca037ebafd3807a68ff1cc721d5b8416a35244db0d0607369e\",\"dweb:/ipfs/QmQkJks6x7CKndeTPa9LxgTNygD5uEi7obhADhpq1Lsr9A\"]},\"src/interfaces/delegator/INetworkRestakeDelegator.sol\":{\"keccak256\":\"0xe7030fe30389a147fd710e3436ec346b4842695fd3e65a81b95375c9f1d633fc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://739c7e66d301778054f5c90bee45ec9438f68afba8a03eaaac52064c73b115ad\",\"dweb:/ipfs/QmfZ2ytKcTykAc76nxhg8ikUXV8NdBpetqb8W4YWPcox1Z\"]},\"src/interfaces/delegator/IOperatorNetworkSpecificDelegator.sol\":{\"keccak256\":\"0x74b95e64d29769202d45dd277bb830f623ff3d41ce77b80ce3ee4e318a5c71ec\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e512b903aae5c1b8a028c6e3f4f6223b5cb5d704503cfa6bd37b5346868f5c20\",\"dweb:/ipfs/QmZim9YExsPWtyxyeui993HTKAEmrg8MUcSkZ77Gp2JcuZ\"]},\"src/interfaces/delegator/IOperatorSpecificDelegator.sol\":{\"keccak256\":\"0x72075cab585dc17240cc3e32bc99b92f0d5627ddd988fed680e3e1a52d5a01e4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7448bc90699409ae61d85216b5efc2143a37f0f73354be2aea993bc54afca441\",\"dweb:/ipfs/QmXE4gAxM8pHosZK8mcTcj17puBx484meDCcmrDePskGHZ\"]},\"src/interfaces/service/IOptInService.sol\":{\"keccak256\":\"0x76fb5460a6d87a5705433d4fbeff7253cd75b8bbd0c888b2088f16e86ace146a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://990322019b3d11465f7024bae77ccbf7e2fe5d6fa3c754584778f37d04fa1337\",\"dweb:/ipfs/QmaSNHzcqxTkUCG9a4nqVfLECHLdjdrwAnDi3yDC7tDL24\"]},\"src/interfaces/slasher/IBaseSlasher.sol\":{\"keccak256\":\"0x7c82528b445659c313ab77335c407b0b6efe5e79027187bb287f7bc74202b404\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0274c90aa5df1aa6bb470a6aab53992fb14fd7e5472c9430416505b29647d9cf\",\"dweb:/ipfs/QmckbmJLDetPemVzCnnGcKYWAZV2BRFXGDsjiaec8jkHxx\"]},\"src/interfaces/vault/IVault.sol\":{\"keccak256\":\"0xffee01d383cd4e1a5530c614bf4360c1ef070c288abec9da1eb531b51bc07235\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://04f0046cac285d8ec44ebbb1f79dc94fab4495767190cad8364fbc1fafaadfb9\",\"dweb:/ipfs/QmUawAunwzXfCyShWfhKeThAgKtqe51hmrxvrXvM772M2R\"]},\"src/interfaces/vault/IVaultStorage.sol\":{\"keccak256\":\"0x592626f13754194f83047135de19229c49390bd59e34659b1bb38be71d973a22\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://06a6a9dfddd05e580b32bebe2cff4f63ba26a653180676d58225dd30d9c89d3e\",\"dweb:/ipfs/QmdgzBeY6Sxo8mGtyBxtv1tM1c2kU6J6zjeRd7vuXm4DU6\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.25+commit.b61c2a91"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"baseDelegatorHints","type":"address"},{"internalType":"address","name":"vaultHints","type":"address"},{"internalType":"address","name":"optInServiceHints","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"AccessControlBadConfirmation"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bytes32","name":"neededRole","type":"bytes32"}],"type":"error","name":"AccessControlUnauthorizedAccount"},{"inputs":[],"type":"error","name":"AlreadySet"},{"inputs":[],"type":"error","name":"CheckpointUnorderedInsertion"},{"inputs":[],"type":"error","name":"DuplicateRoleHolder"},{"inputs":[],"type":"error","name":"ExceedsMaxNetworkLimit"},{"inputs":[],"type":"error","name":"ExternalCall"},{"inputs":[],"type":"error","name":"InsufficientHookGas"},{"inputs":[],"type":"error","name":"InvalidInitialization"},{"inputs":[],"type":"error","name":"MathOverflowedMulDiv"},{"inputs":[],"type":"error","name":"MissingRoleHolders"},{"inputs":[],"type":"error","name":"NotInitialized"},{"inputs":[],"type":"error","name":"NotInitializing"},{"inputs":[],"type":"error","name":"NotNetwork"},{"inputs":[],"type":"error","name":"NotSlasher"},{"inputs":[],"type":"error","name":"NotVault"},{"inputs":[],"type":"error","name":"ReentrancyGuardReentrantCall"},{"inputs":[{"internalType":"uint8","name":"bits","type":"uint8"},{"internalType":"uint256","name":"value","type":"uint256"}],"type":"error","name":"SafeCastOverflowedUintDowncast"},{"inputs":[],"type":"error","name":"ZeroAddressRoleHolder"},{"inputs":[{"internalType":"uint64","name":"version","type":"uint64","indexed":false}],"type":"event","name":"Initialized","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32","indexed":true},{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false},{"internalType":"uint48","name":"captureTimestamp","type":"uint48","indexed":false}],"type":"event","name":"OnSlash","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"bytes32","name":"previousAdminRole","type":"bytes32","indexed":true},{"internalType":"bytes32","name":"newAdminRole","type":"bytes32","indexed":true}],"type":"event","name":"RoleAdminChanged","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"address","name":"sender","type":"address","indexed":true}],"type":"event","name":"RoleGranted","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"address","name":"sender","type":"address","indexed":true}],"type":"event","name":"RoleRevoked","anonymous":false},{"inputs":[{"internalType":"address","name":"hook","type":"address","indexed":true}],"type":"event","name":"SetHook","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"SetMaxNetworkLimit","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"SetNetworkLimit","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32","indexed":true},{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"uint256","name":"shares","type":"uint256","indexed":false}],"type":"event","name":"SetOperatorNetworkShares","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"BASE_DELEGATOR_HINTS","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"DEFAULT_ADMIN_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"FACTORY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"HOOK_GAS_LIMIT","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"HOOK_RESERVE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"HOOK_SET_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"NETWORK_LIMIT_SET_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"NETWORK_REGISTRY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"OPERATOR_NETWORK_OPT_IN_SERVICE","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"OPERATOR_NETWORK_SHARES_SET_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"OPERATOR_VAULT_OPT_IN_SERVICE","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"OPT_IN_SERVICE_HINTS","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"TYPE","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"VAULT_FACTORY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"VAULT_HINTS","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"VERSION","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getRoleAdmin","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"grantRole"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"hasRole","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"hook","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"}],"stateMutability":"view","type":"function","name":"maxNetworkLimit","outputs":[{"internalType":"uint256","name":"value","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"}],"stateMutability":"view","type":"function","name":"networkLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"uint48","name":"timestamp","type":"uint48"},{"internalType":"bytes","name":"hint","type":"bytes"}],"stateMutability":"view","type":"function","name":"networkLimitAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"delegator","type":"address"},{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"uint48","name":"timestamp","type":"uint48"}],"stateMutability":"view","type":"function","name":"networkLimitHint","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"uint48","name":"timestamp","type":"uint48"}],"stateMutability":"view","type":"function","name":"networkLimitHintInternal","outputs":[{"internalType":"bool","name":"exists","type":"bool"},{"internalType":"uint32","name":"hint","type":"uint32"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint48","name":"captureTimestamp","type":"uint48"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"onSlash"},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"operatorNetworkShares","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint48","name":"timestamp","type":"uint48"},{"internalType":"bytes","name":"hint","type":"bytes"}],"stateMutability":"view","type":"function","name":"operatorNetworkSharesAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"delegator","type":"address"},{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint48","name":"timestamp","type":"uint48"}],"stateMutability":"view","type":"function","name":"operatorNetworkSharesHint","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint48","name":"timestamp","type":"uint48"}],"stateMutability":"view","type":"function","name":"operatorNetworkSharesHintInternal","outputs":[{"internalType":"bool","name":"exists","type":"bool"},{"internalType":"uint32","name":"hint","type":"uint32"}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"callerConfirmation","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"renounceRole"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"revokeRole"},{"inputs":[{"internalType":"address","name":"hook_","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setHook"},{"inputs":[{"internalType":"uint96","name":"identifier","type":"uint96"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setMaxNetworkLimit"},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setNetworkLimit"},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint256","name":"shares","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setOperatorNetworkShares"},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"stake","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint48","name":"timestamp","type":"uint48"},{"internalType":"bytes","name":"hints","type":"bytes"}],"stateMutability":"view","type":"function","name":"stakeAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"delegator","type":"address"},{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint48","name":"timestamp","type":"uint48"}],"stateMutability":"view","type":"function","name":"stakeHints","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"staticDelegateCall"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"}],"stateMutability":"view","type":"function","name":"totalOperatorNetworkShares","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"uint48","name":"timestamp","type":"uint48"},{"internalType":"bytes","name":"hint","type":"bytes"}],"stateMutability":"view","type":"function","name":"totalOperatorNetworkSharesAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"delegator","type":"address"},{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"uint48","name":"timestamp","type":"uint48"}],"stateMutability":"view","type":"function","name":"totalOperatorNetworkSharesHint","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"uint48","name":"timestamp","type":"uint48"}],"stateMutability":"view","type":"function","name":"totalOperatorNetworkSharesHintInternal","outputs":[{"internalType":"bool","name":"exists","type":"bool"},{"internalType":"uint32","name":"hint","type":"uint32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"vault","outputs":[{"internalType":"address","name":"","type":"address"}]}],"devdoc":{"kind":"dev","methods":{"VERSION()":{"details":"Must return 1 for this one.","returns":{"_0":"version of the delegator"}},"getRoleAdmin(bytes32)":{"details":"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}."},"grantRole(bytes32,address)":{"details":"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event."},"hasRole(bytes32,address)":{"details":"Returns `true` if `account` has been granted `role`."},"initialize(bytes)":{"params":{"data":"some data to use"}},"networkLimit(bytes32)":{"params":{"subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"},"returns":{"_0":"limit of the subnetwork"}},"networkLimitAt(bytes32,uint48,bytes)":{"params":{"hint":"hint for checkpoint index","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)","timestamp":"time point to get the subnetwork limit at"},"returns":{"_0":"limit of the subnetwork at the given timestamp"}},"onSlash(bytes32,address,uint256,uint48,bytes)":{"details":"Only the vault's slasher can call this function.","params":{"amount":"amount of the collateral slashed","captureTimestamp":"time point when the stake was captured","data":"some additional data","operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"}},"operatorNetworkShares(bytes32,address)":{"params":{"operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"},"returns":{"_0":"shares of the operator for the subnetwork"}},"operatorNetworkSharesAt(bytes32,address,uint48,bytes)":{"params":{"hint":"hint for checkpoint index","operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)","timestamp":"time point to get the operator's shares at"},"returns":{"_0":"shares of the operator for the subnetwork at the given timestamp"}},"renounceRole(bytes32,address)":{"details":"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `callerConfirmation`. May emit a {RoleRevoked} event."},"revokeRole(bytes32,address)":{"details":"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event."},"setHook(address)":{"details":"Only a HOOK_SET_ROLE holder can call this function. The hook can have arbitrary logic under certain functions, however, it doesn't affect the stake guarantees.","params":{"hook":"address of the hook"}},"setMaxNetworkLimit(uint96,uint256)":{"details":"Only a network can call this function.","params":{"amount":"new maximum subnetwork's limit"}},"setNetworkLimit(bytes32,uint256)":{"details":"Only a NETWORK_LIMIT_SET_ROLE holder can call this function.","params":{"amount":"new limit of the subnetwork","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"}},"setOperatorNetworkShares(bytes32,address,uint256)":{"details":"Only an OPERATOR_NETWORK_SHARES_SET_ROLE holder can call this function.","params":{"operator":"address of the operator","shares":"new shares of the operator for the subnetwork","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"}},"stake(bytes32,address)":{"details":"Warning: this function is not safe to use for stake capturing, as it can change by the end of the block.","params":{"operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"},"returns":{"_0":"slashable stake until the end of the next epoch"}},"stakeAt(bytes32,address,uint48,bytes)":{"details":"Warning: it is not safe to use timestamp >= current one for the stake capturing, as it can change later.","params":{"hints":"hints for the checkpoints' indexes","operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)","timestamp":"time point to capture the stake at"},"returns":{"_0":"slashable stake at the given timestamp until the end of the consequent epoch"}},"staticDelegateCall(address,bytes)":{"details":"It allows to use this contract's storage on-chain.","params":{"data":"data to make a delegatecall with","target":"address of the contract to make a delegatecall to"}},"supportsInterface(bytes4)":{"details":"See {IERC165-supportsInterface}."},"totalOperatorNetworkShares(bytes32)":{"params":{"subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"},"returns":{"_0":"total shares of the operators for the subnetwork"}},"totalOperatorNetworkSharesAt(bytes32,uint48,bytes)":{"params":{"hint":"hint for checkpoint index","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)","timestamp":"time point to get the total operators' shares at"},"returns":{"_0":"total shares of the operators for the subnetwork at the given timestamp"}}},"version":1},"userdoc":{"kind":"user","methods":{"FACTORY()":{"notice":"Get the factory's address."},"HOOK_GAS_LIMIT()":{"notice":"Get a gas limit for the hook."},"HOOK_RESERVE()":{"notice":"Get a reserve gas between the gas limit check and the hook's execution."},"HOOK_SET_ROLE()":{"notice":"Get a hook setter's role."},"NETWORK_LIMIT_SET_ROLE()":{"notice":"Get a subnetwork limit setter's role."},"NETWORK_REGISTRY()":{"notice":"Get the network registry's address."},"OPERATOR_NETWORK_OPT_IN_SERVICE()":{"notice":"Get the operator-network opt-in service's address."},"OPERATOR_NETWORK_SHARES_SET_ROLE()":{"notice":"Get an operator-subnetwork shares setter's role."},"OPERATOR_VAULT_OPT_IN_SERVICE()":{"notice":"Get the operator-vault opt-in service's address."},"TYPE()":{"notice":"Get the entity's type."},"VAULT_FACTORY()":{"notice":"Get the vault factory's address."},"VERSION()":{"notice":"Get a version of the delegator (different versions mean different interfaces)."},"hook()":{"notice":"Get the hook's address."},"initialize(bytes)":{"notice":"Initialize this entity contract by using a given data."},"maxNetworkLimit(bytes32)":{"notice":"Get a particular subnetwork's maximum limit (meaning the subnetwork is not ready to get more as a stake)."},"networkLimit(bytes32)":{"notice":"Get a subnetwork's limit (how much stake the vault curator is ready to give to the subnetwork)."},"networkLimitAt(bytes32,uint48,bytes)":{"notice":"Get a subnetwork's limit at a given timestamp using a hint (how much stake the vault curator is ready to give to the subnetwork)."},"onSlash(bytes32,address,uint256,uint48,bytes)":{"notice":"Called when a slash happens."},"operatorNetworkShares(bytes32,address)":{"notice":"Get an operator's shares for a subnetwork (what percentage, which is equal to the shares divided by the total operators' shares, of the subnetwork's stake the vault curator is ready to give to the operator)."},"operatorNetworkSharesAt(bytes32,address,uint48,bytes)":{"notice":"Get an operator's shares for a subnetwork at a given timestamp using a hint (what percentage, which is equal to the shares divided by the total operators' shares, of the subnetwork's stake the vault curator is ready to give to the operator)."},"setHook(address)":{"notice":"Set a new hook."},"setMaxNetworkLimit(uint96,uint256)":{"notice":"Set a maximum limit for a subnetwork (how much stake the subnetwork is ready to get). identifier identifier of the subnetwork"},"setNetworkLimit(bytes32,uint256)":{"notice":"Set a subnetwork's limit (how much stake the vault curator is ready to give to the subnetwork)."},"setOperatorNetworkShares(bytes32,address,uint256)":{"notice":"Set an operator's shares for a subnetwork (what percentage, which is equal to the shares divided by the total operators' shares, of the subnetwork's stake the vault curator is ready to give to the operator)."},"stake(bytes32,address)":{"notice":"Get a stake that a given subnetwork will be able to slash for a certain operator until the end of the next epoch (if no cross-slashing and no slashings by the subnetwork)."},"stakeAt(bytes32,address,uint48,bytes)":{"notice":"Get a stake that a given subnetwork could be able to slash for a certain operator at a given timestamp until the end of the consequent epoch using hints (if no cross-slashing and no slashings by the subnetwork)."},"staticDelegateCall(address,bytes)":{"notice":"Make a delegatecall from this contract to a given target contract with a particular data (always reverts with a return data)."},"totalOperatorNetworkShares(bytes32)":{"notice":"Get a sum of operators' shares for a subnetwork."},"totalOperatorNetworkSharesAt(bytes32,uint48,bytes)":{"notice":"Get a sum of operators' shares for a subnetwork at a given timestamp using a hint."},"vault()":{"notice":"Get the vault's address."}},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/contracts/hints/DelegatorHints.sol":"NetworkRestakeDelegatorHints"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol":{"keccak256":"0x6662ec4e5cefca03eeadd073e9469df8d2944bb2ee8ec8f7622c2c46aab5f225","urls":["bzz-raw://4d8544c6f8daa4d1bc215c6a72fe0acdb748664a105b0e5efc19295667521d45","dweb:/ipfs/QmdGWqdnXT8S3RgCR6aV8XHZrsybieMQLLnug1NtpSjEXN"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol":{"keccak256":"0xc163fcf9bb10138631a9ba5564df1fa25db9adff73bd9ee868a8ae1858fe093a","urls":["bzz-raw://9706d43a0124053d9880f6e31a59f31bc0a6a3dc1acd66ce0a16e1111658c5f6","dweb:/ipfs/QmUFmfowzkRwGtDu36cXV9SPTBHJ3n7dG9xQiK5B28jTf2"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b","urls":["bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609","dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol":{"keccak256":"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397","urls":["bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9","dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardUpgradeable.sol":{"keccak256":"0xb44e086e941292cdc7f440de51478493894ef0b1aeccb0c4047445919f667f74","urls":["bzz-raw://942dad22fbdc1669f025540ba63aa3ccfad5f8458fc5d4525b31ebf272e7af45","dweb:/ipfs/Qmdo4X2M82aM3AMoW2kf2jhYkSCyC4T1pHNd6obdsDFnAB"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol":{"keccak256":"0xdaba3f7c42c55b2896353f32bd27d4d5f8bae741b3b05d4c53f67abc4dc47ce8","urls":["bzz-raw://1fa2e61141c602510bcd2cd936ed9561922ac8772a9b9c9a9db091a74e354a45","dweb:/ipfs/QmcHQDDoEBwJmwUbzoVkytvJsBx3KVHYFFnDkvRGWh9Wmh"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol":{"keccak256":"0xb6b36edd6a2999fd243ff226d6cbf84bd71af2432bbd0dfe19392996a1d9cb41","urls":["bzz-raw://1fd2f35495652e57e3f99bc6c510bc5f7dd398a176ea2e72d8ed730aebc6ca26","dweb:/ipfs/QmTQV6X4gkikTib49cho5iDX3JvSQbdsoEChoDwrk3CbbH"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC1271.sol":{"keccak256":"0x85a45f3f10014a0f8be41157a32b6a5f905753ea64a4b64e29fc12b7deeecf39","urls":["bzz-raw://c3c74009ce36136b36c77c23935b8e4a7b4f253be2da2be4fb4a916b1ce43743","dweb:/ipfs/QmcH36v3iN7SJJuF73AunLR2LtNxhVJ1wm63ph4dPZ4pcL"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC5267.sol":{"keccak256":"0x92aa1df62dc3d33f1656d63bede0923e0df0b706ad4137c8b10b0a8fe549fd92","urls":["bzz-raw://c5c0f29195ad64cbe556da8e257dac8f05f78c53f90323c0d2accf8e6922d33a","dweb:/ipfs/QmQ61TED8uaCZwcbh8KkgRSsCav7x7HbcGHwHts3U4DmUP"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70","urls":["bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c","dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol":{"keccak256":"0x6008dabfe393240d73d7dd7688033f72740d570aa422254d29a7dce8568f3aff","urls":["bzz-raw://f5196ec75139918c6c7bb4251b36395e668f1fa6d206beba7e7520e74913940d","dweb:/ipfs/QmSyqjksXxmm2mCG6qRd1yuwLykypkSVBbnBnGqJRcuJMi"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0x37bb49513c49c87c4642a891b13b63571bc87013dde806617aa1efb54605f386","urls":["bzz-raw://b3036b3a83b7c48f96641f2a9002b9f2dcb6a5958dd670894ada21ae8229b3d0","dweb:/ipfs/QmUNfSBdoVtjhETaUJCYcaC7pTMgbhht926tJ2uXJbiVd3"],"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/ShortStrings.sol":{"keccak256":"0x18a7171df639a934592915a520ecb97c5bbc9675a1105607aac8a94e72bf62c6","urls":["bzz-raw://7478e1f13da69a2867ccd883001d836b75620362e743f196376d63ed0c422a1c","dweb:/ipfs/QmWywcQ9TNfwtoqAxbn25d8C5VrV12PrPS9UjtGe6pL2BA"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol":{"keccak256":"0x32ba59b4b7299237c8ba56319110989d7978a039faf754793064e967e5894418","urls":["bzz-raw://1ae50c8b562427df610cc4540c9bf104acca7ef8e2dcae567ae7e52272281e9c","dweb:/ipfs/QmTHiadFCSJUPpRjNegc5SahmeU8bAoY8i9Aq6tVscbcKR"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0x55f102ea785d8399c0e58d1108e2d289506dde18abc6db1b7f68c1f9f9bc5792","urls":["bzz-raw://6e52e0a7765c943ef14e5bcf11e46e6139fa044be564881378349236bf2e3453","dweb:/ipfs/QmZEeeXoFPW47amyP35gfzomF9DixqqTEPwzBakv6cZw6i"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol":{"keccak256":"0xeed0a08b0b091f528356cbc7245891a4c748682d4f6a18055e8e6ca77d12a6cf","urls":["bzz-raw://ba80ba06c8e6be852847e4c5f4492cef801feb6558ae09ed705ff2e04ea8b13c","dweb:/ipfs/QmXRJDv3xHLVQCVXg1ZvR35QS9sij5y9NDWYzMfUfAdTHF"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/EIP712.sol":{"keccak256":"0x999f705a027ed6dc2d4e0df2cc4a509852c6bfd11de1c8161bf88832d0503fd0","urls":["bzz-raw://0798def67258d9a3cc20b2b4da7ebf351a5cefe0abfdd665d2d81f8e32f89b21","dweb:/ipfs/QmPEvJosnPfzHNjKvCv2D3891mA2Ww8eUwkqrxBjuYdHCt"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol":{"keccak256":"0xba333517a3add42cd35fe877656fc3dfcc9de53baa4f3aabbd6d12a92e4ea435","urls":["bzz-raw://2ceacff44c0fdc81e48e0e0b1db87a2076d3c1fb497341de077bf1da9f6b406c","dweb:/ipfs/QmRUo1muMRAewxrKQ7TkXUtknyRoR57AyEkoPpiuZQ8FzX"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/SignatureChecker.sol":{"keccak256":"0x6b11eb41a228cca35d4b662b4df69fcd75192851365102690f57b2ac01e83fe6","urls":["bzz-raw://ab006a2983ed350d2af21ddcdd835dcae3b8340086cc4d088460da5abd041f69","dweb:/ipfs/QmbEacDhkJZiGrgzLjB4pNtE8Z1uudjDw1DvcDUTVQFsLG"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b","urls":["bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df","dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d","urls":["bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875","dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol":{"keccak256":"0xe19a4d5f31d2861e7344e8e535e2feafb913d806d3e2b5fe7782741a2a7094fe","urls":["bzz-raw://4aed79c0fa6f0546ed02f2f683e8f77f0fd2ed7eb34d8bbf3d373c9a6d95b13c","dweb:/ipfs/QmWqVz6UAVqmnWU5pqYPt1o6iDEZyPaBraAA3rKfTTSfYj"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0x5f7e4076e175393767754387c962926577f1660dd9b810187b9002407656be72","urls":["bzz-raw://7d533a1c97cd43a57cd9c465f7ee8dd0e39ae93a8fb8ff8e5303a356b081cdcc","dweb:/ipfs/QmVBEei6aTnvYNZp2CHYVNKyZS4q1KkjANfY39WVXZXVoT"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/Checkpoints.sol":{"keccak256":"0xbdc5e074d7dd6678f67e92b1a51a20226801a407b0e1af3da367c5d1ff4519ad","urls":["bzz-raw://a36cca6b22fff3db16fc789ff6c60eea71d4b156065d4d0c83a0bc5e91a77a8b","dweb:/ipfs/QmYN3exd5AemxjBrN8XMB1p5LbbE16uC3sjbYjwi8AjcGR"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/types/Time.sol":{"keccak256":"0xc7755af115020049e4140f224f9ee88d7e1799ffb0646f37bf0df24bf6213f58","urls":["bzz-raw://7f09bf94d5274334ec021f61a04659db303f31e60460e14b709c9bf187740111","dweb:/ipfs/QmNvgomZYUwFAt4cZbPWAiTeSZQreGehY9BK5xyVJsUttb"],"license":"MIT"},"src/contracts/common/Entity.sol":{"keccak256":"0x3d61a932995b8443381f3950542d388223a2c26dd5d29a3274dea3baa7388bd7","urls":["bzz-raw://7cdf5f03ca72fd263fd32ff59c8d88ddca911ae83896a287d10772c1bbe9b138","dweb:/ipfs/QmbP84r5BWT1Rn9AYTntWSf3xUMTTCohTZJFhbBhDXFoHa"],"license":"BUSL-1.1"},"src/contracts/common/MigratableEntity.sol":{"keccak256":"0x2d736f4dacd5d7e7697503bc426c78b8250fe1694ca157965ec178da6807de58","urls":["bzz-raw://f1237acf96b4b9f9b69156e068eddd726a6e15bd8e87a18dc999cd4ba4da069c","dweb:/ipfs/QmS6M8fiFFSeuJ4ZKKq1z8W7w4ybeHQSy5TLASGoc1LVic"],"license":"BUSL-1.1"},"src/contracts/common/StaticDelegateCallable.sol":{"keccak256":"0x350029aa8955eacaffffaeb58babc5c98e80ebc5c5db388ed17ee6465f4a9d90","urls":["bzz-raw://eb392a8ee9050e0af606897df63e3404e3829e8b688b580663892f9664195764","dweb:/ipfs/QmaXC8jqV8UrrAFkzXTEv2fJF56sy33HhLxAzaRZmUxuXD"],"license":"BUSL-1.1"},"src/contracts/delegator/BaseDelegator.sol":{"keccak256":"0x7c54d491fdd4415b764a9c8defa068e56d4c0c8c9419be0053a1d377669290e8","urls":["bzz-raw://9238bfbad0f6eeb0dc7727724de14380f1980b395902269703d5e2ef07e52e10","dweb:/ipfs/QmPJn1V4HNXcEghYvogGuSTF24dSQUPosR5qtsXcmNqRm3"],"license":"BUSL-1.1"},"src/contracts/delegator/FullRestakeDelegator.sol":{"keccak256":"0x0a81c4f8e72914563a9cb771e93acf889c71ea36b7bec040e4eb562b199d5af1","urls":["bzz-raw://6fc66b6ba02da77046a0bbbd1dd407a62c08f52e04486c9cbd2cb1cca3da555f","dweb:/ipfs/QmZQivK1ZnMxfRQQ5aLpV9co5u55wQVNev5Rg1hzAqxhkE"],"license":"BUSL-1.1"},"src/contracts/delegator/NetworkRestakeDelegator.sol":{"keccak256":"0xd3a8e6522f9c6fdcc2da837c9023afd6bdff2bce45a35590320c475519e3636d","urls":["bzz-raw://58b17a87f6554f08376f9ea7fedf486a4aa75801bf0ad8b23ff5a46959b6b7a3","dweb:/ipfs/QmSTmNh67tYt8CmjVZb57r8N3qX5yeYdMApKPJm3qvQgQw"],"license":"BUSL-1.1"},"src/contracts/delegator/OperatorNetworkSpecificDelegator.sol":{"keccak256":"0x031a10722b9ec49048f0952710401131290adb87e71caf294e864e7ac3b98a16","urls":["bzz-raw://72428febc875134b2f29205e6f294634a1c22a7d5c78d6a9cb2f8196f107c9b5","dweb:/ipfs/QmTPwXR6h5oytckmkLrHdKeEMdphJxceDhYUR4zvQeWAwY"],"license":"BUSL-1.1"},"src/contracts/delegator/OperatorSpecificDelegator.sol":{"keccak256":"0x630ce62fa30b9f3349ab7a8cf8dbf041319febc6dd757be2f94d3d25944ed328","urls":["bzz-raw://c2ac59d47ce57d2a6819ae9833e1a618a371eccff93eb5ab367b201b01f42bfa","dweb:/ipfs/QmdBpGMBivpNPv2WbH8vnCUy5xkVeaxQvGgqi33vKCz1kA"],"license":"BUSL-1.1"},"src/contracts/hints/DelegatorHints.sol":{"keccak256":"0x44aa0c396311a54afbc7c73e8dadeed41e3165a4fd13f712b27d63d50fc3376d","urls":["bzz-raw://2f255214f3531fc707d88be0d56a7a0aed4180439316d099d760d9118aa83093","dweb:/ipfs/QmZD1w5p1ukJSXumUAjvxwGmkPhn7vsr21Y2atLGEZR2oi"],"license":"BUSL-1.1"},"src/contracts/hints/Hints.sol":{"keccak256":"0x8b565df1ae35993c097a9e642002782a8f451f6fd01809cad6bcd345bdf1b99c","urls":["bzz-raw://99a19adb01e350a92f534095b3078229df1f2f83077992d75d58d8684be45971","dweb:/ipfs/QmbmwcuswVbzvwHQFTtrJG86oV98GnfxqYTb8cV8u1acox"],"license":"BUSL-1.1"},"src/contracts/hints/OptInServiceHints.sol":{"keccak256":"0x95d9407900d27b9f4a1233b772aeed809c07b2dc5b31cfc9fa77ca26514c49e5","urls":["bzz-raw://a13a8877e312d7e6b8b85bde3668c5d84ff5ecc83f762cd573f2b7104c64eb42","dweb:/ipfs/QmYV2J55acuGzCNnS3juABuUHY5U1xc8g8o9jwEyFFdeG5"],"license":"BUSL-1.1"},"src/contracts/hints/VaultHints.sol":{"keccak256":"0xccb505b7159b769cc114d67b87c2de6b106557f667fc8f3780114baad5c3c442","urls":["bzz-raw://6d0c80a908fc16e96a8b5605a0bd53f9e89ad0ef0a738fbbae80ba4d3160749b","dweb:/ipfs/QmXo5UtWoR8YmunqcbBU8rQMm1nvmvjNPoXcVrDhh4pEwR"],"license":"BUSL-1.1"},"src/contracts/libraries/Checkpoints.sol":{"keccak256":"0xba90097c8bfe0a975499428b5f8ac5569483c7d92ccc28c12d70de416aae040c","urls":["bzz-raw://12f5d93ca94cd06d3147db68993165a58e17903ed53682560de61f3085ad4609","dweb:/ipfs/QmePiuAqvXprMLmFZkGZeGjvGPAvsEDHfCDv7BoQhXu9xE"],"license":"MIT"},"src/contracts/libraries/ERC4626Math.sol":{"keccak256":"0x8441160513c1cbeb1c3b9ee077bcc7e7ce20006b52a77c8dd39ff0ef89699939","urls":["bzz-raw://943f8cc3e26ddf649f465f40c909819f5c864717c4baa339e9e403b9374a4653","dweb:/ipfs/QmXPxi1sUDsrGprZdUgCzoPEosaZMv9ZhygWQ1vAi1phAB"],"license":"MIT"},"src/contracts/libraries/Subnetwork.sol":{"keccak256":"0xf5ef5506fd66082b3c2e7f3df37529f5a8efad32ac62e7c8914bd63219190bfe","urls":["bzz-raw://ba031a54ee0d0e9a270c2b9e18437f5668cfeb659cfd5fe0677459d7fcac2a56","dweb:/ipfs/QmReP3H7qQ78tAfgLnJKsNEQNCQfF1X1Get38Ffd4kzq32"],"license":"MIT"},"src/contracts/service/OptInService.sol":{"keccak256":"0x4e0932077f2686b7990e10d59deb2535334c0d09e52ef6e57c6ab09eca21c4b1","urls":["bzz-raw://7c00d311032ed4a1743aca7475f3c86ce15cdfc2218108efc3731c03d34a5278","dweb:/ipfs/QmUGGfVwVhaHr5kS4177yKKYiLYzi5qZpkEmvYxBZqazxf"],"license":"BUSL-1.1"},"src/contracts/vault/Vault.sol":{"keccak256":"0x2ceff6ed3298c4cad144c99fcc79b51cb9397d6ebef00285b915848b476f8c2e","urls":["bzz-raw://11f2fb3581854f3ab6e82e8d4935d9eb510c903a13c3f022346c2956a58f5307","dweb:/ipfs/QmdUnoXoyYoG9SGWyQZCFyLDRUUX3eXyXetkRvw6jxqqBz"],"license":"BUSL-1.1"},"src/contracts/vault/VaultStorage.sol":{"keccak256":"0x57db25b127d77ea3472de53e3a4af3354399655b9268638b99ca5925fa364a56","urls":["bzz-raw://aa763d9a6ec508ae3abfb8228b72b9fd9525279e5135d4962e79ff059feb1173","dweb:/ipfs/QmcbDR6E9wyEpu6V2FkEC4hnWy47zXA9LSKJde6zSGd33Q"],"license":"BUSL-1.1"},"src/interfaces/common/IEntity.sol":{"keccak256":"0x8ef4b63d6da63489778ccd5f8d13ebdd527dd4b62730b2c616df5af7474d2d21","urls":["bzz-raw://5a8d69576a9219d85c50816a18ad53a4d53cfcb27ed38b8cccc808dc2734b71b","dweb:/ipfs/QmYVN3P4Q4REvBWJ97TbAcaxm3uyB2anV6NSGa6ZtSwcEv"],"license":"MIT"},"src/interfaces/common/IMigratableEntity.sol":{"keccak256":"0x8f5f2809f3afbe8ebfbb365dd7b57b4dd3b6f9943a6187eaf648d45895b8e3c4","urls":["bzz-raw://0ffe640537d539e7a4fde70d30d3e4c57f4ba9c2c25c450cea713aae38e8fd5c","dweb:/ipfs/QmSUTGzvdcn1R1KB7tLThMRtESsfPbeXDhhhKWGtntzBds"],"license":"MIT"},"src/interfaces/common/IRegistry.sol":{"keccak256":"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb","urls":["bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014","dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK"],"license":"MIT"},"src/interfaces/common/IStaticDelegateCallable.sol":{"keccak256":"0xa335d4e81b9071b7de66ef92b43ff20671d86516eb1be46fef29a3483cd3f5d5","urls":["bzz-raw://d464b9db863c14c05547d2b23352f2e9b7b784799cf09f6bbc4906a2a74e3516","dweb:/ipfs/QmUVWzFvJz7eEbDQKiFTTzwi7TEbjcs3VmwdM4kuptAKvi"],"license":"MIT"},"src/interfaces/delegator/IBaseDelegator.sol":{"keccak256":"0x96bb312f032e17accce3f8f80936d99468029d6b37c9ca74acdb4b026a0148ee","urls":["bzz-raw://2a66dcb5b7d1a6ef6a363431ea98ebd78bc4fdd3d7a134d9b542dc66e7d025c2","dweb:/ipfs/QmRhTPLd2ZAyRHmJUFUcWKs9b3if49QY17LYZuRqWmghw8"],"license":"MIT"},"src/interfaces/delegator/IDelegatorHook.sol":{"keccak256":"0xc51aa8d7d1f6c8043ee819b7aeb86da0e993912e1442098df897e299f01f9f46","urls":["bzz-raw://adddf5cb2ba282aeb576b26efb28640f865a1721cc9b6eee8b3ee0457a2c9780","dweb:/ipfs/QmNYgAmnLRwWZbhTuQhZs9rx4zcme1df5mEepkrniorSoW"],"license":"MIT"},"src/interfaces/delegator/IFullRestakeDelegator.sol":{"keccak256":"0xa3c8cb2e45d4d8ce90e95263bea40c01dc400f05ad65bc29597d878606be5e7d","urls":["bzz-raw://782cf5e201aa4cca037ebafd3807a68ff1cc721d5b8416a35244db0d0607369e","dweb:/ipfs/QmQkJks6x7CKndeTPa9LxgTNygD5uEi7obhADhpq1Lsr9A"],"license":"MIT"},"src/interfaces/delegator/INetworkRestakeDelegator.sol":{"keccak256":"0xe7030fe30389a147fd710e3436ec346b4842695fd3e65a81b95375c9f1d633fc","urls":["bzz-raw://739c7e66d301778054f5c90bee45ec9438f68afba8a03eaaac52064c73b115ad","dweb:/ipfs/QmfZ2ytKcTykAc76nxhg8ikUXV8NdBpetqb8W4YWPcox1Z"],"license":"MIT"},"src/interfaces/delegator/IOperatorNetworkSpecificDelegator.sol":{"keccak256":"0x74b95e64d29769202d45dd277bb830f623ff3d41ce77b80ce3ee4e318a5c71ec","urls":["bzz-raw://e512b903aae5c1b8a028c6e3f4f6223b5cb5d704503cfa6bd37b5346868f5c20","dweb:/ipfs/QmZim9YExsPWtyxyeui993HTKAEmrg8MUcSkZ77Gp2JcuZ"],"license":"MIT"},"src/interfaces/delegator/IOperatorSpecificDelegator.sol":{"keccak256":"0x72075cab585dc17240cc3e32bc99b92f0d5627ddd988fed680e3e1a52d5a01e4","urls":["bzz-raw://7448bc90699409ae61d85216b5efc2143a37f0f73354be2aea993bc54afca441","dweb:/ipfs/QmXE4gAxM8pHosZK8mcTcj17puBx484meDCcmrDePskGHZ"],"license":"MIT"},"src/interfaces/service/IOptInService.sol":{"keccak256":"0x76fb5460a6d87a5705433d4fbeff7253cd75b8bbd0c888b2088f16e86ace146a","urls":["bzz-raw://990322019b3d11465f7024bae77ccbf7e2fe5d6fa3c754584778f37d04fa1337","dweb:/ipfs/QmaSNHzcqxTkUCG9a4nqVfLECHLdjdrwAnDi3yDC7tDL24"],"license":"MIT"},"src/interfaces/slasher/IBaseSlasher.sol":{"keccak256":"0x7c82528b445659c313ab77335c407b0b6efe5e79027187bb287f7bc74202b404","urls":["bzz-raw://0274c90aa5df1aa6bb470a6aab53992fb14fd7e5472c9430416505b29647d9cf","dweb:/ipfs/QmckbmJLDetPemVzCnnGcKYWAZV2BRFXGDsjiaec8jkHxx"],"license":"MIT"},"src/interfaces/vault/IVault.sol":{"keccak256":"0xffee01d383cd4e1a5530c614bf4360c1ef070c288abec9da1eb531b51bc07235","urls":["bzz-raw://04f0046cac285d8ec44ebbb1f79dc94fab4495767190cad8364fbc1fafaadfb9","dweb:/ipfs/QmUawAunwzXfCyShWfhKeThAgKtqe51hmrxvrXvM772M2R"],"license":"MIT"},"src/interfaces/vault/IVaultStorage.sol":{"keccak256":"0x592626f13754194f83047135de19229c49390bd59e34659b1bb38be71d973a22","urls":["bzz-raw://06a6a9dfddd05e580b32bebe2cff4f63ba26a653180676d58225dd30d9c89d3e","dweb:/ipfs/QmdgzBeY6Sxo8mGtyBxtv1tM1c2kU6J6zjeRd7vuXm4DU6"],"license":"MIT"}},"version":1},"id":81} \ No newline at end of file diff --git a/out/DelegatorHints.sol/OperatorNetworkSpecificDelegatorHints.json b/out/DelegatorHints.sol/OperatorNetworkSpecificDelegatorHints.json index 2d0c9812..1883f667 100644 --- a/out/DelegatorHints.sol/OperatorNetworkSpecificDelegatorHints.json +++ b/out/DelegatorHints.sol/OperatorNetworkSpecificDelegatorHints.json @@ -1 +1 @@ -{"abi":[{"type":"constructor","inputs":[{"name":"baseDelegatorHints","type":"address","internalType":"address"},{"name":"vaultHints","type":"address","internalType":"address"},{"name":"optInServiceHints","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"BASE_DELEGATOR_HINTS","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"DEFAULT_ADMIN_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"FACTORY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"HOOK_GAS_LIMIT","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"HOOK_RESERVE","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"HOOK_SET_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"NETWORK_REGISTRY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"OPERATOR_NETWORK_OPT_IN_SERVICE","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"OPERATOR_REGISTRY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"OPERATOR_VAULT_OPT_IN_SERVICE","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"OPT_IN_SERVICE_HINTS","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"TYPE","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"VAULT_FACTORY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"VAULT_HINTS","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"VERSION","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"pure"},{"type":"function","name":"getRoleAdmin","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"grantRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"hasRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"hook","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"initialize","inputs":[{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"maxNetworkLimit","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"value","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"maxNetworkLimitAt","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"timestamp","type":"uint48","internalType":"uint48"},{"name":"hint","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"maxNetworkLimitHint","inputs":[{"name":"delegator","type":"address","internalType":"address"},{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"timestamp","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"maxNetworkLimitHintInternal","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"timestamp","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"exists","type":"bool","internalType":"bool"},{"name":"hint","type":"uint32","internalType":"uint32"}],"stateMutability":"view"},{"type":"function","name":"network","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"onSlash","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"captureTimestamp","type":"uint48","internalType":"uint48"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"operator","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"renounceRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"callerConfirmation","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"revokeRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setHook","inputs":[{"name":"hook_","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setMaxNetworkLimit","inputs":[{"name":"identifier","type":"uint96","internalType":"uint96"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"stake","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"stakeAt","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"timestamp","type":"uint48","internalType":"uint48"},{"name":"hints","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"stakeHints","inputs":[{"name":"delegator","type":"address","internalType":"address"},{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"timestamp","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"staticDelegateCall","inputs":[{"name":"target","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"vault","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"OnSlash","inputs":[{"name":"subnetwork","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"captureTimestamp","type":"uint48","indexed":false,"internalType":"uint48"}],"anonymous":false},{"type":"event","name":"RoleAdminChanged","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"previousAdminRole","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"newAdminRole","type":"bytes32","indexed":true,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"RoleGranted","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"sender","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"RoleRevoked","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"sender","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"SetHook","inputs":[{"name":"hook","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"SetMaxNetworkLimit","inputs":[{"name":"subnetwork","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"error","name":"AccessControlBadConfirmation","inputs":[]},{"type":"error","name":"AccessControlUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"neededRole","type":"bytes32","internalType":"bytes32"}]},{"type":"error","name":"AlreadySet","inputs":[]},{"type":"error","name":"CheckpointUnorderedInsertion","inputs":[]},{"type":"error","name":"ExternalCall","inputs":[]},{"type":"error","name":"InsufficientHookGas","inputs":[]},{"type":"error","name":"InvalidInitialization","inputs":[]},{"type":"error","name":"InvalidNetwork","inputs":[]},{"type":"error","name":"NotInitialized","inputs":[]},{"type":"error","name":"NotInitializing","inputs":[]},{"type":"error","name":"NotNetwork","inputs":[]},{"type":"error","name":"NotOperator","inputs":[]},{"type":"error","name":"NotSlasher","inputs":[]},{"type":"error","name":"NotVault","inputs":[]},{"type":"error","name":"ReentrancyGuardReentrantCall","inputs":[]},{"type":"error","name":"SafeCastOverflowedUintDowncast","inputs":[{"name":"bits","type":"uint8","internalType":"uint8"},{"name":"value","type":"uint256","internalType":"uint256"}]}],"bytecode":{"object":"0x6101e0346101dc57601f612f1438819003918201601f19168301916001600160401b0391828411858510176101e05781606092869260409687528339810103126101dc5761004c836101f4565b926100648361005d602084016101f4565b92016101f4565b91306080527ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a009081549060ff82871c166101cb578080831603610187575b5050505f60a0525f60c0525f60e052610100935f8552610120935f85526101405f8152610160915f83526101809384526101a09485526101c09586525195612d0b9788610209893960805188610e71015260a0518861062b015260c05188610dee015260e0518881816103dd01528181610e2701526127ae0152518781816102d30152611fd201525186818161031701528181611841015261197001525185818161035b015281816117a801526119ee015251848181610c1b0152612827015251838181610baf0152611369015251828181610ac5015261140a01525181610cf20152f35b6001600160401b0319909116811790915583519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a15f80806100a2565b855163f92ee8a960e01b8152600490fd5b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b51906001600160a01b03821682036101dc5756fe60806040526004361015610011575f80fd5b5f3560e01c806301ffc9a714610264578063103f29071461025f578063128e5d821461025a5780631a80e5001461025557806323f752d514610250578063248a9ca31461024b57806325dc9708146102465780632dd31000146102415780632f2ff15d1461023c57806336568abe146102375780633dfd387314610232578063437224a31461022d578063439fab911461022857806345e78fcb14610223578063557cab441461021e578063570ca735146102195780636679191e146102145780636739afca1461020f57806379d896141461020a5780637f5a7c7b1461020557806383ce03221461020057806391d14854146101fb578063991d1162146101f65780639b656b22146101f15780639f86fd85146101ec578063a217fddf146101e7578063bb24fe8a146101e2578063c0cd7c3e146101dd578063d0f1f901146101d8578063d15b740e146101d3578063d547741f146101ce578063e02f6937146101c9578063e49561ee146101c4578063fbfa77cf146101bf578063fd4d447c146101ba578063ff54740f146101b55763ffa1ad74146101b0575f80fd5b611207565b6111ea565b6111c0565b611199565b610fae565b610f59565b610f0d565b610ee3565b610e56565b610e12565b610dcf565b610db5565b610d21565b610cdd565b610ca8565b610c4a565b610c06565b610bde565b610b9a565b610b72565b610b38565b610b10565b610af4565b610ab0565b610978565b6108f2565b6106f1565b6106a6565b61065a565b610616565b6105bd565b610510565b61038a565b610346565b610302565b6102be565b346102ba5760203660031901126102ba5760043563ffffffff60e01b81168091036102ba57602090637965db0b60e01b81149081156102a9575b506040519015158152f35b6301ffc9a760e01b1490505f61029e565b5f80fd5b346102ba575f3660031901126102ba576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346102ba575f3660031901126102ba576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346102ba575f3660031901126102ba576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346102ba5760403660031901126102ba576004356001600160601b03811681036102ba57602435906103ba611a63565b6040516302910f8b60e31b81523360048201526020816024816001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165afa90811561050b575f916104dc575b50156104ca576001600160601b03166bffffffffffffffffffffffff193360601b16179080610444835f52600260205260405f2090565b54146104b85761049d817fc67e7929681aa1bccd63f52b3799bf5805f3009f197db6fdf584b14f7fbf608c92610482855f52600260205260405f2090565b5561048d8185611a92565b6040519081529081906020820190565b0390a26104b660015f80516020612c9683398151915255565b005b60405163a741a04560e01b8152600490fd5b6040516323d53b9760e21b8152600490fd5b6104fe915060203d602011610504575b6104f68183610854565b81019061122f565b5f61040d565b503d6104ec565b611246565b346102ba5760203660031901126102ba576004355f525f80516020612c768339815191526020526020600160405f200154604051908152f35b6001600160a01b038116036102ba57565b6064359065ffffffffffff821682036102ba57565b6024359065ffffffffffff821682036102ba57565b6044359065ffffffffffff821682036102ba57565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b346102ba5760803660031901126102ba576106126105fe6004356105e081610549565b6044356105ec81610549565b6105f461055a565b9160243590611320565b604051918291602083526020830190610599565b0390f35b346102ba575f3660031901126102ba576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346102ba5760403660031901126102ba576104b660243560043561067d82610549565b805f525f80516020612c768339815191526020526106a1600160405f200154611bd4565b611d85565b346102ba5760403660031901126102ba576024356106c381610549565b336001600160a01b038216036106df576104b690600435611dbb565b60405163334bd91960e11b8152600490fd5b346102ba5760203660031901126102ba5760043561070e81610549565b610716611a63565b335f9081527f9ebbcbe0d2961d3fbe56ca6f679bc753bd848d3e6bb3eaf9041c51b286881d2c60205260409020547fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c9060ff16156107cc57506001546001600160a01b0391821691811682146104b8576001600160a01b03191681176001557f5bbb1d3ebb6a3ad2a0f17ff35e579a83af60604d1d3c2a4c83c62adecadf666d5f80a260015f80516020612c9683398151915255005b6044906040519063e2517d3f60e01b82523360048301526024820152fd5b634e487b7160e01b5f52604160045260245ffd5b604081019081106001600160401b0382111761081957604052565b6107ea565b606081019081106001600160401b0382111761081957604052565b608081019081106001600160401b0382111761081957604052565b90601f801991011681019081106001600160401b0382111761081957604052565b604051906108828261081e565b565b60405190610882826107fe565b6001600160401b03811161081957601f01601f191660200190565b81601f820112156102ba578035906108c382610891565b926108d16040519485610854565b828452602083830101116102ba57815f926020809301838601378301015290565b346102ba5760603660031901126102ba5761090b61056f565b6044356001600160401b0381116102ba576020916109306109439236906004016108ac565b906004355f526003845260405f20611e84565b604051908152f35b9181601f840112156102ba578235916001600160401b0383116102ba57602083818601950101116102ba57565b346102ba5760203660031901126102ba576001600160401b036004358181116102ba576109a990369060040161094b565b5f80516020612cb6833981519152549260ff8460401c1615931680159081610aa8575b6001149081610a9e575b159081610a95575b50610a83575f80516020612cb6833981519152805467ffffffffffffffff19166001179055610a119183610a5f57611f9d565b610a1757005b5f80516020612cb6833981519152805460ff60401b19169055604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a1005b5f80516020612cb6833981519152805460ff60401b1916600160401b179055611f9d565b60405163f92ee8a960e01b8152600490fd5b9050155f6109de565b303b1591506109d6565b8491506109cc565b346102ba575f3660031901126102ba576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346102ba575f3660031901126102ba576020604051614e208152f35b346102ba575f3660031901126102ba576005546040516001600160a01b039091168152602090f35b346102ba575f3660031901126102ba5760206040517fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c8152f35b346102ba575f3660031901126102ba576004546040516001600160a01b039091168152602090f35b346102ba575f3660031901126102ba576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346102ba575f3660031901126102ba576001546040516001600160a01b039091168152602090f35b346102ba575f3660031901126102ba576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346102ba5760403660031901126102ba57602060ff610c9c602435610c6e81610549565b6004355f525f80516020612c76833981519152845260405f209060018060a01b03165f5260205260405f2090565b54166040519015158152f35b346102ba5760603660031901126102ba576106126105fe600435610ccb81610549565b610cd3610584565b906024359061154e565b346102ba575f3660031901126102ba576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346102ba5760403660031901126102ba57600435610d3e81610549565b6024356001600160401b0381116102ba575f91610d608392369060040161094b565b90816040519283928337810184815203915af4610dad610d7e611647565b91610d9f604051938492151560208401526040808401526060830190610599565b03601f198101835282610854565b805190602001fd5b346102ba575f3660031901126102ba5760206040515f8152f35b346102ba575f3660031901126102ba5760206040516001600160401b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b346102ba575f3660031901126102ba576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346102ba5760403660031901126102ba57610e6f61056f565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163303610ed15763ffffffff610ebc6040926004355f526003602052835f2061215c565b91505083929192519215158352166020820152f35b604051637ca475e560e11b8152600490fd5b346102ba5760203660031901126102ba576004355f526002602052602060405f2054604051908152f35b346102ba5760403660031901126102ba576104b6602435600435610f3082610549565b805f525f80516020612c76833981519152602052610f54600160405f200154611bd4565b611dbb565b346102ba5760803660031901126102ba57602435610f7681610549565b610f7e610584565b90606435906001600160401b0382116102ba57602092610fa56109439336906004016108ac565b91600435611732565b346102ba5760a03660031901126102ba57602435600435610fce82610549565b60443591610fda61055a565b90608435906001600160401b0382116102ba57610ffc600492369084016108ac565b611004611a63565b5f546020906110299061101d906001600160a01b031681565b6001600160a01b031690565b60405163b134427160e01b815294859182905afa92831561050b575f93611168575b506001600160a01b039283163303611156576001546001600160a01b03168381166110cb575b50506040805195865265ffffffffffff909316602086015216927f741a5de99085c0d660f3e4192217b0ffb0ea4e35a0480de48e857a4bc3ee36ed91819081015b0390a36104b660015f80516020612c9683398151915255565b909360405194611102866110f4602082019363724ab0f760e11b8552858c898d602487016118bc565b03601f198101885287610854565b62042e305a10611144575f6110b2938192827f741a5de99085c0d660f3e4192217b0ffb0ea4e35a0480de48e857a4bc3ee36ed9951926203d090f15093611071565b604051638072475160e01b8152600490fd5b60405163dabc4ad960e01b8152600490fd5b61118b91935060203d602011611192575b6111838183610854565b8101906112bc565b915f61104b565b503d611179565b346102ba575f3660031901126102ba575f546040516001600160a01b039091168152602090f35b346102ba5760403660031901126102ba5760206109436024356111e281610549565b600435611939565b346102ba575f3660031901126102ba5760206040516203d0908152f35b346102ba575f3660031901126102ba57602060405160018152f35b519081151582036102ba57565b908160209103126102ba5761124390611222565b90565b6040513d5f823e3d90fd5b81601f820112156102ba5780519061126882610891565b926112766040519485610854565b828452602083830101116102ba57815f9260208093018386015e8301015290565b906020828203126102ba5781516001600160401b0381116102ba576112439201611251565b908160209103126102ba575161124381610549565b9061124391602081526112f08251606060208401526080830190610599565b9060606040611310602086015194601f1995868683030184870152610599565b9401519282850301910152610599565b604051630df8851f60e11b81526001600160a01b03828116600483015260248201849052938416604482015265ffffffffffff8516606482015260609594909391925f856084817f000000000000000000000000000000000000000000000000000000000000000087165afa94851561050b575f956114ea575b5060405163fbfa77cf60e01b81526020816004818888165afa90811561050b57611406945f92859284916114cb575b5060405163192c0ff760e21b81526001600160a01b03909116600482015265ffffffffffff90921660248301529094859190829081906044820190565b03917f0000000000000000000000000000000000000000000000000000000000000000165afa92831561050b575f936114a5575b50611445929361154e565b9082511580159061149b575b8015611491575b61146157505050565b610d9f939450906112439291611475610875565b92835260208301526040820152604051928391602083016112d1565b5081511515611458565b5080511515611451565b61144593506114c5903d805f833e6114bd8183610854565b810190611297565b9261143a565b6114e4915060203d602011611192576111838183610854565b5f6113c9565b6114ff9195503d805f833e6114bd8183610854565b935f61139a565b9061124392915f52600360205260405f20611e84565b519063ffffffff821682036102ba57565b91908260409103126102ba57611243602061154784611222565b930161151c565b92915f8060609565ffffffffffff6040519460209663d0f1f90160e01b8888015260248701521660448501526044845261158784610839565b60405193846115b487820192639f86fd8560e01b8452306024840152604060448401526064830190610599565b03946115c8601f1996878101835282610854565b51915afa506115e66115d8611647565b8380825183010191016120db565b9015611639578083806115fe9351830101910161152d565b929061160957505050565b6112439293945061162d604051948592830191909163ffffffff6020820193169052565b03908101835282610854565b809150519182156102ba5701fd5b3d15611671573d9061165882610891565b916116666040519384610854565b82523d5f602084013e565b606090565b60405190611683826107fe565b60606020838281520152565b906020828203126102ba5781516001600160401b03928382116102ba5701906040828203126102ba57604051926116c5846107fe565b82518181116102ba57826116da918501611251565b845260208301519081116102ba576116f29201611251565b602082015290565b6001600160a01b0391821681529116602082015265ffffffffffff909116604082015260806060820181905261124392910190610599565b9261174290929192828486612335565b92909361174d611676565b938051806118a0575b5050841593841561180a575b8415611779575b505050506117745790565b505f90565b6020809495506117a4910151604051958694859463530e1d4360e01b865260601c90600486016116fa565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa90811561050b575f916117eb575b50155f808080611769565b611804915060203d602011610504576104f68183610854565b5f6117e0565b5f549094506001600160a01b031660208486519261183d604051948593849363530e1d4360e01b855289600486016116fa565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa90811561050b575f91611881575b501593611762565b61189a915060203d602011610504576104f68183610854565b5f611879565b6118b492955060208091830101910161168f565b925f80611756565b919360a093611243969565ffffffffffff938552600180871b0316602085015260408401521660608201528160808201520190610599565b634e487b7160e01b5f52601160045260245ffd5b8115611912570490565b634e487b7160e01b5f52601260045260245ffd5b906001820180921161193457565b6118f4565b5f546040516308834cb560e21b8082526001600160a01b0385811660048401529283166024830152929392602092909183816044817f000000000000000000000000000000000000000000000000000000000000000086165afa90811561050b575f91611a46575b50159182156119c2575b505090506119bc5761124391612454565b50505f90565b6040519081526001600160a01b0385166004820152606086901c602482015291508290829060449082907f0000000000000000000000000000000000000000000000000000000000000000165afa91821561050b575f92611a29575b505015805f806119ab565b611a3f9250803d10610504576104f68183610854565b5f80611a1e565b611a5d9150843d8611610504576104f68183610854565b5f6119a1565b5f80516020612c968339815191526002815414611a805760029055565b604051633ee5aeb560e01b8152600490fd5b6004546001600160a01b0316606082901c03611bc2575f52600360205260405f209065ffffffffffff91824211611ba357824216926001820191825415611b95575b611add81612a83565b509590845493835480155f14611b7657505f975b6001600160d01b0398808a1615611b7057611b0c9088612133565b50505b82611b64575b505015611b4e575050610882935090611b30611b3692611e61565b90612133565b90919082549060031b91821b915f19901b1916179055565b61088295611b5d931691612b5b565b5050612543565b16821490505f80611b15565b50611b0f565b5f1990808281011161193457855f5260205f2001015460301c97611af1565b611b9e83612516565b611ad4565b6040516306dfcc6560e41b815260306004820152426024820152604490fd5b6040516386eab41b60e01b8152600490fd5b5f8181525f80516020612c768339815191526020908152604080832033845290915290205460ff16156107cc5750565b6001600160a01b0381165f9081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d60205260409020545f80516020612c768339815191529060ff166119bc575f808052602091825260408082206001600160a01b038516835290925220805460ff1916600117905533906001600160a01b03165f7f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d8180a4600190565b6001600160a01b0381165f9081527f9ebbcbe0d2961d3fbe56ca6f679bc753bd848d3e6bb3eaf9041c51b286881d2c602052604090207fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c905f80516020612c768339815191529060ff905b5416611d7e575f828152602091825260408082206001600160a01b038616835290925220805460ff1916600117905533916001600160a01b0316907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d5f80a4600190565b5050505f90565b5f8181525f80516020612c76833981519152602081815260408084206001600160a01b038716855290915290912060ff90611d1a565b5f8181525f80516020612c76833981519152602081815260408084206001600160a01b03871685529091529091205460ff1615611d7e575f828152602091825260408082206001600160a01b038616835290925220805460ff1916905533916001600160a01b0316907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b5f80a4600190565b908160209103126102ba576112439061151c565b5f1981019190821161193457565b90600163ffffffff8093160191821161193457565b91805115611f5d5780602080611e9f93518301019101611e4d565b91611eaa8382612636565b92611ebb845165ffffffffffff1690565b9065ffffffffffff8085169216828114611f515782119182611ef1575b5050611ee8576112439250612566565b50506020015190565b909150611efe8354611e61565b63ffffffff831614918215611f17575b50505f80611ed8565b611f49919250611f32611f2c611f3e92611e6f565b85612636565b5165ffffffffffff1690565b65ffffffffffff1690565b115f80611f0e565b50505050506020015190565b5061124391612566565b9190916040818403126102ba578035611f7f81610549565b9260208201356001600160401b0381116102ba5761124392016108ac565b611fa991810190611f67565b6040516302910f8b60e31b81526001600160a01b039283166004820181905291906020816024817f000000000000000000000000000000000000000000000000000000000000000088165afa90811561050b575f916120bc575b50156120aa5761203e6040916120396120849461201e61269e565b60018060a01b03166001600160601b0360a01b5f5416175f55565b612761565b6020810151600180546001600160a01b0319166001600160a01b0390921691909117905580516001600160a01b031684811661209a575b5001516001600160a01b031690565b90811661208e5750565b61209790611caf565b50565b6120a390611c04565b505f612075565b6040516362df054560e01b8152600490fd5b6120d5915060203d602011610504576104f68183610854565b5f612003565b9190916040818403126102ba576120f181611222565b9260208201516001600160401b0381116102ba576112439201611251565b9060405161211c816107fe565b915465ffffffffffff8116835260301c6020830152565b8054821015612148575f5260205f2001905f90565b634e487b7160e01b5f52603260045260245ffd5b91908254905f829160058411612204575b612178935085612a0f565b9081156121f8576121f16121e86121e26121d86121aa6121a561219a88611e61565b895f5260205f200190565b61210f565b9660016121d160206121c28b5165ffffffffffff1690565b9a01516001600160d01b031690565b9101612133565b90549060031b1c90565b93611e61565b63ffffffff1690565b6001939291565b5f925082915081908190565b919261220f816128dc565b81039081116119345761217893865f52612238611f3e8360205f200165ffffffffffff90541690565b65ffffffffffff8516101561224e57509161216d565b92915061225a90611926565b9061216d565b6040519061226d8261081e565b60606040838281528260208201520152565b906020828203126102ba5781516001600160401b03928382116102ba5701906060828203126102ba57604051926122b58461081e565b82518181116102ba57826122ca918501611251565b845260208301518181116102ba57826122e4918501611251565b602085015260408301519081116102ba576122ff9201611251565b604082015290565b908160209103126102ba575190565b60409065ffffffffffff61124394931681528160208201520190610599565b90939293612341612260565b94805180612438575b5050600454606083901c6001600160a01b0391821614801592919061241d575b5050612415575f546123b092919060209061238f9061101d906001600160a01b031681565b8187015190604051808097819463810da75d60e01b83528860048401612316565b03915afa90811561050b576123dd935f926123e2575b506123d79192604087015191611506565b90612a71565b915190565b6123d792506124089060203d60201161240e575b6124008183610854565b810190612307565b916123c6565b503d6123f6565b505090515f91565b60055481166001600160a01b03169116141590505f8061236a565b61244c92965060208091830101910161227f565b935f8061234a565b6004549091606083901c6001600160a01b0392831614801592906124fb575b5050611774575f54600491906020906124969061101d906001600160a01b031681565b60405163bd49c35f60e01b815293849182905afa90811561050b57611243925f926124d6575b506124cf905f52600260205260405f2090565b5490612a71565b6124cf9192506124f49060203d60201161240e576124008183610854565b91906124bc565b60055481166001600160a01b03169116141590505f80612473565b8054600160401b8110156108195761253391600182018155612133565b8154905f199060031b1b19169055565b90815491600160401b8310156108195782611b3691600161088295018155612133565b908154905f8291600584116125d0575b612581935084612a0f565b806125a957505f905b6001600160d01b038216156119bc576112439160016121d89201612133565b6125c36125b86125ca92611e61565b835f5260205f200190565b5460301c90565b9061258a565b91926125db816128dc565b81039081116119345761258193855f5265ffffffffffff808360205f20015416908516105f1461260c575091612576565b92915061261890611926565b90612576565b6040519061262b826107fe565b5f6020838281520152565b9061265f6126596126809261264961261e565b5061265261261e565b5084612133565b5061210f565b91600165ffffffffffff845116936020828060d01b03910151169101612133565b90549060405192612690846107fe565b835260031b1c602082015290565b6126a6612ad2565b6126ae612ad2565b60015f80516020612c9683398151915255565b604051906126ce8261081e565b5f6040838281528260208201520152565b8091039060a082126102ba576060604051926126fa8461081e565b126102ba5760809060405161270e8161081e565b815161271981610549565b8152602082015161272981610549565b6020820152604082015161273c81610549565b60408201528352606081015161275181610549565b602084015201516122ff81610549565b6127696126c1565b5061277f815191602080809483010191016126df565b80820180516040516302910f8b60e31b8082526001600160a01b039283166004830152939491939082816024817f000000000000000000000000000000000000000000000000000000000000000089165afa90811561050b575f916128bf575b50156104ca57816128239160408701956127ff875160018060a01b031690565b6040519283526001600160a01b031660048301529092839190829081906024820190565b03917f0000000000000000000000000000000000000000000000000000000000000000165afa91821561050b575f926128a2575b5050156128905751600480546001600160a01b039283166001600160a01b03199182161790915591516005805490931691161790555190565b604051631f0853c160e21b8152600490fd5b6128b89250803d10610504576104f68183610854565b5f80612857565b6128d69150833d8511610504576104f68183610854565b5f6127df565b801561177457806123d76129a761299d61299361298961297f61297561296b60016112439a5f908b60801c80612a03575b508060401c806129f6575b508060201c806129e9575b508060101c806129dc575b508060081c806129cf575b508060041c806129c2575b508060021c806129b5575b50821c6129ae575b811c1b612964818b611908565b0160011c90565b612964818a611908565b6129648189611908565b6129648188611908565b6129648187611908565b6129648186611908565b6129648185611908565b8092611908565b8101612957565b600291509101905f61294f565b600491509101905f612944565b600891509101905f612939565b601091509101905f61292e565b602091509101905f612923565b604091509101905f612918565b9150506080905f61290d565b91905b838210612a1f5750505090565b909192808316906001818518811c830180931161193457855f5265ffffffffffff808460205f20015416908516105f14612a5e575050925b9190612a12565b9094935081018091116119345791612a57565b9080821015612a7e575090565b905090565b805480612a945750505f905f905f90565b5f1990808281011161193457612ab1925f5260205f20010161210f565b9065ffffffffffff82511691602060018060d01b0391015116906001929190565b60ff5f80516020612cb68339815191525460401c1615612aee57565b604051631afcd79f60e31b8152600490fd5b8054600160401b81101561081957612b1d91600182018155612133565b612b4857815160209092015160301b65ffffffffffff191665ffffffffffff92909216919091179055565b634e487b7160e01b5f525f60045260245ffd5b805492939291908215612c4c57612b776121a56125b885611e61565b90612b88825165ffffffffffff1690565b65ffffffffffff84811691168110612c3a57612bfe946020948892612bb6611f3e875165ffffffffffff1690565b03612c025750612bf092612bcc612bd792611e61565b905f5260205f200190565b9065ffffffffffff82549181199060301b169116179055565b01516001600160d01b031690565b9190565b915050612c3591612c22612c14610884565b65ffffffffffff9093168352565b6001600160d01b03881682860152612b00565b612bf0565b604051632520601d60e01b8152600490fd5b612c709250612c5c612c14610884565b6001600160d01b0385166020830152612b00565b5f919056fe02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268009b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a2646970667358221220b429c7bca684dfb2f61f82de0ac89efce21c9bbd39e89867846fcc10df363dbb64736f6c63430008190033","sourceMap":"13653:2443:86:-:0;;;;;;;;;;;;;-1:-1:-1;;13653:2443:86;;;;-1:-1:-1;;;;;13653:2443:86;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;:::i;:::-;348:4:87;;332:21;;8837:64:26;13653:2443:86;;;;;;;;;7896:76:26;;13653:2443:86;;;;7985:34:26;7981:146;;-1:-1:-1;525:17:74;;;-1:-1:-1;525:17:74;;-1:-1:-1;552:12:74;;-1:-1:-1;2360:34:81;;2404:28;;-1:-1:-1;2404:28:81;;2442:57;;-1:-1:-1;2442:57:81;;2509:61;-1:-1:-1;2509:61:81;;1796:36:84;;-1:-1:-1;1796:36:84;;14178:41:86;;;;14229:24;;;;14263:40;;;;13653:2443;;;;;;;;332:21:87;13653:2443:86;;;;;525:17:74;13653:2443:86;;;;;552:12:74;13653:2443:86;;;;;2360:34:81;13653:2443:86;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7981:146:26;-1:-1:-1;;;;;;13653:2443:86;;;;;;;;;;;;;8087:29:26;;13653:2443:86;;8087:29:26;7981:146;;;;;7896:76;13653:2443:86;;-1:-1:-1;;;7938:23:26;;;;;13653:2443:86;-1:-1:-1;13653:2443:86;;;;;;-1:-1:-1;13653:2443:86;;;;;-1:-1:-1;13653:2443:86;;;;-1:-1:-1;;;;;13653:2443:86;;;;;;:::o","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361015610011575f80fd5b5f3560e01c806301ffc9a714610264578063103f29071461025f578063128e5d821461025a5780631a80e5001461025557806323f752d514610250578063248a9ca31461024b57806325dc9708146102465780632dd31000146102415780632f2ff15d1461023c57806336568abe146102375780633dfd387314610232578063437224a31461022d578063439fab911461022857806345e78fcb14610223578063557cab441461021e578063570ca735146102195780636679191e146102145780636739afca1461020f57806379d896141461020a5780637f5a7c7b1461020557806383ce03221461020057806391d14854146101fb578063991d1162146101f65780639b656b22146101f15780639f86fd85146101ec578063a217fddf146101e7578063bb24fe8a146101e2578063c0cd7c3e146101dd578063d0f1f901146101d8578063d15b740e146101d3578063d547741f146101ce578063e02f6937146101c9578063e49561ee146101c4578063fbfa77cf146101bf578063fd4d447c146101ba578063ff54740f146101b55763ffa1ad74146101b0575f80fd5b611207565b6111ea565b6111c0565b611199565b610fae565b610f59565b610f0d565b610ee3565b610e56565b610e12565b610dcf565b610db5565b610d21565b610cdd565b610ca8565b610c4a565b610c06565b610bde565b610b9a565b610b72565b610b38565b610b10565b610af4565b610ab0565b610978565b6108f2565b6106f1565b6106a6565b61065a565b610616565b6105bd565b610510565b61038a565b610346565b610302565b6102be565b346102ba5760203660031901126102ba5760043563ffffffff60e01b81168091036102ba57602090637965db0b60e01b81149081156102a9575b506040519015158152f35b6301ffc9a760e01b1490505f61029e565b5f80fd5b346102ba575f3660031901126102ba576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346102ba575f3660031901126102ba576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346102ba575f3660031901126102ba576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346102ba5760403660031901126102ba576004356001600160601b03811681036102ba57602435906103ba611a63565b6040516302910f8b60e31b81523360048201526020816024816001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165afa90811561050b575f916104dc575b50156104ca576001600160601b03166bffffffffffffffffffffffff193360601b16179080610444835f52600260205260405f2090565b54146104b85761049d817fc67e7929681aa1bccd63f52b3799bf5805f3009f197db6fdf584b14f7fbf608c92610482855f52600260205260405f2090565b5561048d8185611a92565b6040519081529081906020820190565b0390a26104b660015f80516020612c9683398151915255565b005b60405163a741a04560e01b8152600490fd5b6040516323d53b9760e21b8152600490fd5b6104fe915060203d602011610504575b6104f68183610854565b81019061122f565b5f61040d565b503d6104ec565b611246565b346102ba5760203660031901126102ba576004355f525f80516020612c768339815191526020526020600160405f200154604051908152f35b6001600160a01b038116036102ba57565b6064359065ffffffffffff821682036102ba57565b6024359065ffffffffffff821682036102ba57565b6044359065ffffffffffff821682036102ba57565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b346102ba5760803660031901126102ba576106126105fe6004356105e081610549565b6044356105ec81610549565b6105f461055a565b9160243590611320565b604051918291602083526020830190610599565b0390f35b346102ba575f3660031901126102ba576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346102ba5760403660031901126102ba576104b660243560043561067d82610549565b805f525f80516020612c768339815191526020526106a1600160405f200154611bd4565b611d85565b346102ba5760403660031901126102ba576024356106c381610549565b336001600160a01b038216036106df576104b690600435611dbb565b60405163334bd91960e11b8152600490fd5b346102ba5760203660031901126102ba5760043561070e81610549565b610716611a63565b335f9081527f9ebbcbe0d2961d3fbe56ca6f679bc753bd848d3e6bb3eaf9041c51b286881d2c60205260409020547fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c9060ff16156107cc57506001546001600160a01b0391821691811682146104b8576001600160a01b03191681176001557f5bbb1d3ebb6a3ad2a0f17ff35e579a83af60604d1d3c2a4c83c62adecadf666d5f80a260015f80516020612c9683398151915255005b6044906040519063e2517d3f60e01b82523360048301526024820152fd5b634e487b7160e01b5f52604160045260245ffd5b604081019081106001600160401b0382111761081957604052565b6107ea565b606081019081106001600160401b0382111761081957604052565b608081019081106001600160401b0382111761081957604052565b90601f801991011681019081106001600160401b0382111761081957604052565b604051906108828261081e565b565b60405190610882826107fe565b6001600160401b03811161081957601f01601f191660200190565b81601f820112156102ba578035906108c382610891565b926108d16040519485610854565b828452602083830101116102ba57815f926020809301838601378301015290565b346102ba5760603660031901126102ba5761090b61056f565b6044356001600160401b0381116102ba576020916109306109439236906004016108ac565b906004355f526003845260405f20611e84565b604051908152f35b9181601f840112156102ba578235916001600160401b0383116102ba57602083818601950101116102ba57565b346102ba5760203660031901126102ba576001600160401b036004358181116102ba576109a990369060040161094b565b5f80516020612cb6833981519152549260ff8460401c1615931680159081610aa8575b6001149081610a9e575b159081610a95575b50610a83575f80516020612cb6833981519152805467ffffffffffffffff19166001179055610a119183610a5f57611f9d565b610a1757005b5f80516020612cb6833981519152805460ff60401b19169055604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a1005b5f80516020612cb6833981519152805460ff60401b1916600160401b179055611f9d565b60405163f92ee8a960e01b8152600490fd5b9050155f6109de565b303b1591506109d6565b8491506109cc565b346102ba575f3660031901126102ba576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346102ba575f3660031901126102ba576020604051614e208152f35b346102ba575f3660031901126102ba576005546040516001600160a01b039091168152602090f35b346102ba575f3660031901126102ba5760206040517fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c8152f35b346102ba575f3660031901126102ba576004546040516001600160a01b039091168152602090f35b346102ba575f3660031901126102ba576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346102ba575f3660031901126102ba576001546040516001600160a01b039091168152602090f35b346102ba575f3660031901126102ba576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346102ba5760403660031901126102ba57602060ff610c9c602435610c6e81610549565b6004355f525f80516020612c76833981519152845260405f209060018060a01b03165f5260205260405f2090565b54166040519015158152f35b346102ba5760603660031901126102ba576106126105fe600435610ccb81610549565b610cd3610584565b906024359061154e565b346102ba575f3660031901126102ba576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346102ba5760403660031901126102ba57600435610d3e81610549565b6024356001600160401b0381116102ba575f91610d608392369060040161094b565b90816040519283928337810184815203915af4610dad610d7e611647565b91610d9f604051938492151560208401526040808401526060830190610599565b03601f198101835282610854565b805190602001fd5b346102ba575f3660031901126102ba5760206040515f8152f35b346102ba575f3660031901126102ba5760206040516001600160401b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b346102ba575f3660031901126102ba576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346102ba5760403660031901126102ba57610e6f61056f565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163303610ed15763ffffffff610ebc6040926004355f526003602052835f2061215c565b91505083929192519215158352166020820152f35b604051637ca475e560e11b8152600490fd5b346102ba5760203660031901126102ba576004355f526002602052602060405f2054604051908152f35b346102ba5760403660031901126102ba576104b6602435600435610f3082610549565b805f525f80516020612c76833981519152602052610f54600160405f200154611bd4565b611dbb565b346102ba5760803660031901126102ba57602435610f7681610549565b610f7e610584565b90606435906001600160401b0382116102ba57602092610fa56109439336906004016108ac565b91600435611732565b346102ba5760a03660031901126102ba57602435600435610fce82610549565b60443591610fda61055a565b90608435906001600160401b0382116102ba57610ffc600492369084016108ac565b611004611a63565b5f546020906110299061101d906001600160a01b031681565b6001600160a01b031690565b60405163b134427160e01b815294859182905afa92831561050b575f93611168575b506001600160a01b039283163303611156576001546001600160a01b03168381166110cb575b50506040805195865265ffffffffffff909316602086015216927f741a5de99085c0d660f3e4192217b0ffb0ea4e35a0480de48e857a4bc3ee36ed91819081015b0390a36104b660015f80516020612c9683398151915255565b909360405194611102866110f4602082019363724ab0f760e11b8552858c898d602487016118bc565b03601f198101885287610854565b62042e305a10611144575f6110b2938192827f741a5de99085c0d660f3e4192217b0ffb0ea4e35a0480de48e857a4bc3ee36ed9951926203d090f15093611071565b604051638072475160e01b8152600490fd5b60405163dabc4ad960e01b8152600490fd5b61118b91935060203d602011611192575b6111838183610854565b8101906112bc565b915f61104b565b503d611179565b346102ba575f3660031901126102ba575f546040516001600160a01b039091168152602090f35b346102ba5760403660031901126102ba5760206109436024356111e281610549565b600435611939565b346102ba575f3660031901126102ba5760206040516203d0908152f35b346102ba575f3660031901126102ba57602060405160018152f35b519081151582036102ba57565b908160209103126102ba5761124390611222565b90565b6040513d5f823e3d90fd5b81601f820112156102ba5780519061126882610891565b926112766040519485610854565b828452602083830101116102ba57815f9260208093018386015e8301015290565b906020828203126102ba5781516001600160401b0381116102ba576112439201611251565b908160209103126102ba575161124381610549565b9061124391602081526112f08251606060208401526080830190610599565b9060606040611310602086015194601f1995868683030184870152610599565b9401519282850301910152610599565b604051630df8851f60e11b81526001600160a01b03828116600483015260248201849052938416604482015265ffffffffffff8516606482015260609594909391925f856084817f000000000000000000000000000000000000000000000000000000000000000087165afa94851561050b575f956114ea575b5060405163fbfa77cf60e01b81526020816004818888165afa90811561050b57611406945f92859284916114cb575b5060405163192c0ff760e21b81526001600160a01b03909116600482015265ffffffffffff90921660248301529094859190829081906044820190565b03917f0000000000000000000000000000000000000000000000000000000000000000165afa92831561050b575f936114a5575b50611445929361154e565b9082511580159061149b575b8015611491575b61146157505050565b610d9f939450906112439291611475610875565b92835260208301526040820152604051928391602083016112d1565b5081511515611458565b5080511515611451565b61144593506114c5903d805f833e6114bd8183610854565b810190611297565b9261143a565b6114e4915060203d602011611192576111838183610854565b5f6113c9565b6114ff9195503d805f833e6114bd8183610854565b935f61139a565b9061124392915f52600360205260405f20611e84565b519063ffffffff821682036102ba57565b91908260409103126102ba57611243602061154784611222565b930161151c565b92915f8060609565ffffffffffff6040519460209663d0f1f90160e01b8888015260248701521660448501526044845261158784610839565b60405193846115b487820192639f86fd8560e01b8452306024840152604060448401526064830190610599565b03946115c8601f1996878101835282610854565b51915afa506115e66115d8611647565b8380825183010191016120db565b9015611639578083806115fe9351830101910161152d565b929061160957505050565b6112439293945061162d604051948592830191909163ffffffff6020820193169052565b03908101835282610854565b809150519182156102ba5701fd5b3d15611671573d9061165882610891565b916116666040519384610854565b82523d5f602084013e565b606090565b60405190611683826107fe565b60606020838281520152565b906020828203126102ba5781516001600160401b03928382116102ba5701906040828203126102ba57604051926116c5846107fe565b82518181116102ba57826116da918501611251565b845260208301519081116102ba576116f29201611251565b602082015290565b6001600160a01b0391821681529116602082015265ffffffffffff909116604082015260806060820181905261124392910190610599565b9261174290929192828486612335565b92909361174d611676565b938051806118a0575b5050841593841561180a575b8415611779575b505050506117745790565b505f90565b6020809495506117a4910151604051958694859463530e1d4360e01b865260601c90600486016116fa565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa90811561050b575f916117eb575b50155f808080611769565b611804915060203d602011610504576104f68183610854565b5f6117e0565b5f549094506001600160a01b031660208486519261183d604051948593849363530e1d4360e01b855289600486016116fa565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa90811561050b575f91611881575b501593611762565b61189a915060203d602011610504576104f68183610854565b5f611879565b6118b492955060208091830101910161168f565b925f80611756565b919360a093611243969565ffffffffffff938552600180871b0316602085015260408401521660608201528160808201520190610599565b634e487b7160e01b5f52601160045260245ffd5b8115611912570490565b634e487b7160e01b5f52601260045260245ffd5b906001820180921161193457565b6118f4565b5f546040516308834cb560e21b8082526001600160a01b0385811660048401529283166024830152929392602092909183816044817f000000000000000000000000000000000000000000000000000000000000000086165afa90811561050b575f91611a46575b50159182156119c2575b505090506119bc5761124391612454565b50505f90565b6040519081526001600160a01b0385166004820152606086901c602482015291508290829060449082907f0000000000000000000000000000000000000000000000000000000000000000165afa91821561050b575f92611a29575b505015805f806119ab565b611a3f9250803d10610504576104f68183610854565b5f80611a1e565b611a5d9150843d8611610504576104f68183610854565b5f6119a1565b5f80516020612c968339815191526002815414611a805760029055565b604051633ee5aeb560e01b8152600490fd5b6004546001600160a01b0316606082901c03611bc2575f52600360205260405f209065ffffffffffff91824211611ba357824216926001820191825415611b95575b611add81612a83565b509590845493835480155f14611b7657505f975b6001600160d01b0398808a1615611b7057611b0c9088612133565b50505b82611b64575b505015611b4e575050610882935090611b30611b3692611e61565b90612133565b90919082549060031b91821b915f19901b1916179055565b61088295611b5d931691612b5b565b5050612543565b16821490505f80611b15565b50611b0f565b5f1990808281011161193457855f5260205f2001015460301c97611af1565b611b9e83612516565b611ad4565b6040516306dfcc6560e41b815260306004820152426024820152604490fd5b6040516386eab41b60e01b8152600490fd5b5f8181525f80516020612c768339815191526020908152604080832033845290915290205460ff16156107cc5750565b6001600160a01b0381165f9081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d60205260409020545f80516020612c768339815191529060ff166119bc575f808052602091825260408082206001600160a01b038516835290925220805460ff1916600117905533906001600160a01b03165f7f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d8180a4600190565b6001600160a01b0381165f9081527f9ebbcbe0d2961d3fbe56ca6f679bc753bd848d3e6bb3eaf9041c51b286881d2c602052604090207fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c905f80516020612c768339815191529060ff905b5416611d7e575f828152602091825260408082206001600160a01b038616835290925220805460ff1916600117905533916001600160a01b0316907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d5f80a4600190565b5050505f90565b5f8181525f80516020612c76833981519152602081815260408084206001600160a01b038716855290915290912060ff90611d1a565b5f8181525f80516020612c76833981519152602081815260408084206001600160a01b03871685529091529091205460ff1615611d7e575f828152602091825260408082206001600160a01b038616835290925220805460ff1916905533916001600160a01b0316907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b5f80a4600190565b908160209103126102ba576112439061151c565b5f1981019190821161193457565b90600163ffffffff8093160191821161193457565b91805115611f5d5780602080611e9f93518301019101611e4d565b91611eaa8382612636565b92611ebb845165ffffffffffff1690565b9065ffffffffffff8085169216828114611f515782119182611ef1575b5050611ee8576112439250612566565b50506020015190565b909150611efe8354611e61565b63ffffffff831614918215611f17575b50505f80611ed8565b611f49919250611f32611f2c611f3e92611e6f565b85612636565b5165ffffffffffff1690565b65ffffffffffff1690565b115f80611f0e565b50505050506020015190565b5061124391612566565b9190916040818403126102ba578035611f7f81610549565b9260208201356001600160401b0381116102ba5761124392016108ac565b611fa991810190611f67565b6040516302910f8b60e31b81526001600160a01b039283166004820181905291906020816024817f000000000000000000000000000000000000000000000000000000000000000088165afa90811561050b575f916120bc575b50156120aa5761203e6040916120396120849461201e61269e565b60018060a01b03166001600160601b0360a01b5f5416175f55565b612761565b6020810151600180546001600160a01b0319166001600160a01b0390921691909117905580516001600160a01b031684811661209a575b5001516001600160a01b031690565b90811661208e5750565b61209790611caf565b50565b6120a390611c04565b505f612075565b6040516362df054560e01b8152600490fd5b6120d5915060203d602011610504576104f68183610854565b5f612003565b9190916040818403126102ba576120f181611222565b9260208201516001600160401b0381116102ba576112439201611251565b9060405161211c816107fe565b915465ffffffffffff8116835260301c6020830152565b8054821015612148575f5260205f2001905f90565b634e487b7160e01b5f52603260045260245ffd5b91908254905f829160058411612204575b612178935085612a0f565b9081156121f8576121f16121e86121e26121d86121aa6121a561219a88611e61565b895f5260205f200190565b61210f565b9660016121d160206121c28b5165ffffffffffff1690565b9a01516001600160d01b031690565b9101612133565b90549060031b1c90565b93611e61565b63ffffffff1690565b6001939291565b5f925082915081908190565b919261220f816128dc565b81039081116119345761217893865f52612238611f3e8360205f200165ffffffffffff90541690565b65ffffffffffff8516101561224e57509161216d565b92915061225a90611926565b9061216d565b6040519061226d8261081e565b60606040838281528260208201520152565b906020828203126102ba5781516001600160401b03928382116102ba5701906060828203126102ba57604051926122b58461081e565b82518181116102ba57826122ca918501611251565b845260208301518181116102ba57826122e4918501611251565b602085015260408301519081116102ba576122ff9201611251565b604082015290565b908160209103126102ba575190565b60409065ffffffffffff61124394931681528160208201520190610599565b90939293612341612260565b94805180612438575b5050600454606083901c6001600160a01b0391821614801592919061241d575b5050612415575f546123b092919060209061238f9061101d906001600160a01b031681565b8187015190604051808097819463810da75d60e01b83528860048401612316565b03915afa90811561050b576123dd935f926123e2575b506123d79192604087015191611506565b90612a71565b915190565b6123d792506124089060203d60201161240e575b6124008183610854565b810190612307565b916123c6565b503d6123f6565b505090515f91565b60055481166001600160a01b03169116141590505f8061236a565b61244c92965060208091830101910161227f565b935f8061234a565b6004549091606083901c6001600160a01b0392831614801592906124fb575b5050611774575f54600491906020906124969061101d906001600160a01b031681565b60405163bd49c35f60e01b815293849182905afa90811561050b57611243925f926124d6575b506124cf905f52600260205260405f2090565b5490612a71565b6124cf9192506124f49060203d60201161240e576124008183610854565b91906124bc565b60055481166001600160a01b03169116141590505f80612473565b8054600160401b8110156108195761253391600182018155612133565b8154905f199060031b1b19169055565b90815491600160401b8310156108195782611b3691600161088295018155612133565b908154905f8291600584116125d0575b612581935084612a0f565b806125a957505f905b6001600160d01b038216156119bc576112439160016121d89201612133565b6125c36125b86125ca92611e61565b835f5260205f200190565b5460301c90565b9061258a565b91926125db816128dc565b81039081116119345761258193855f5265ffffffffffff808360205f20015416908516105f1461260c575091612576565b92915061261890611926565b90612576565b6040519061262b826107fe565b5f6020838281520152565b9061265f6126596126809261264961261e565b5061265261261e565b5084612133565b5061210f565b91600165ffffffffffff845116936020828060d01b03910151169101612133565b90549060405192612690846107fe565b835260031b1c602082015290565b6126a6612ad2565b6126ae612ad2565b60015f80516020612c9683398151915255565b604051906126ce8261081e565b5f6040838281528260208201520152565b8091039060a082126102ba576060604051926126fa8461081e565b126102ba5760809060405161270e8161081e565b815161271981610549565b8152602082015161272981610549565b6020820152604082015161273c81610549565b60408201528352606081015161275181610549565b602084015201516122ff81610549565b6127696126c1565b5061277f815191602080809483010191016126df565b80820180516040516302910f8b60e31b8082526001600160a01b039283166004830152939491939082816024817f000000000000000000000000000000000000000000000000000000000000000089165afa90811561050b575f916128bf575b50156104ca57816128239160408701956127ff875160018060a01b031690565b6040519283526001600160a01b031660048301529092839190829081906024820190565b03917f0000000000000000000000000000000000000000000000000000000000000000165afa91821561050b575f926128a2575b5050156128905751600480546001600160a01b039283166001600160a01b03199182161790915591516005805490931691161790555190565b604051631f0853c160e21b8152600490fd5b6128b89250803d10610504576104f68183610854565b5f80612857565b6128d69150833d8511610504576104f68183610854565b5f6127df565b801561177457806123d76129a761299d61299361298961297f61297561296b60016112439a5f908b60801c80612a03575b508060401c806129f6575b508060201c806129e9575b508060101c806129dc575b508060081c806129cf575b508060041c806129c2575b508060021c806129b5575b50821c6129ae575b811c1b612964818b611908565b0160011c90565b612964818a611908565b6129648189611908565b6129648188611908565b6129648187611908565b6129648186611908565b6129648185611908565b8092611908565b8101612957565b600291509101905f61294f565b600491509101905f612944565b600891509101905f612939565b601091509101905f61292e565b602091509101905f612923565b604091509101905f612918565b9150506080905f61290d565b91905b838210612a1f5750505090565b909192808316906001818518811c830180931161193457855f5265ffffffffffff808460205f20015416908516105f14612a5e575050925b9190612a12565b9094935081018091116119345791612a57565b9080821015612a7e575090565b905090565b805480612a945750505f905f905f90565b5f1990808281011161193457612ab1925f5260205f20010161210f565b9065ffffffffffff82511691602060018060d01b0391015116906001929190565b60ff5f80516020612cb68339815191525460401c1615612aee57565b604051631afcd79f60e31b8152600490fd5b8054600160401b81101561081957612b1d91600182018155612133565b612b4857815160209092015160301b65ffffffffffff191665ffffffffffff92909216919091179055565b634e487b7160e01b5f525f60045260245ffd5b805492939291908215612c4c57612b776121a56125b885611e61565b90612b88825165ffffffffffff1690565b65ffffffffffff84811691168110612c3a57612bfe946020948892612bb6611f3e875165ffffffffffff1690565b03612c025750612bf092612bcc612bd792611e61565b905f5260205f200190565b9065ffffffffffff82549181199060301b169116179055565b01516001600160d01b031690565b9190565b915050612c3591612c22612c14610884565b65ffffffffffff9093168352565b6001600160d01b03881682860152612b00565b612bf0565b604051632520601d60e01b8152600490fd5b612c709250612c5c612c14610884565b6001600160d01b0385166020830152612b00565b5f919056fe02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268009b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a2646970667358221220b429c7bca684dfb2f61f82de0ac89efce21c9bbd39e89867846fcc10df363dbb64736f6c63430008190033","sourceMap":"13653:2443:86:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;;;;;-1:-1:-1;;13653:2443:86;;;;;;;;;;;;;;;;;;-1:-1:-1;;;3551:47:24;;;:87;;;;13653:2443:86;;;;;;;;;;3551:87:24;-1:-1:-1;;;1133:40:30;;-1:-1:-1;3551:87:24;;;13653:2443:86;-1:-1:-1;13653:2443:86;;;;;;;;-1:-1:-1;;13653:2443:86;;;;;;1537:38:81;-1:-1:-1;;;;;13653:2443:86;;;;;;;;;;;;-1:-1:-1;;13653:2443:86;;;;;;1632:54:81;-1:-1:-1;;;;;13653:2443:86;;;;;;;;;;;;-1:-1:-1;;13653:2443:86;;;;;;1743:56:81;-1:-1:-1;;;;;13653:2443:86;;;;;;;;;;;;-1:-1:-1;;13653:2443:86;;;;;;-1:-1:-1;;;;;13653:2443:86;;;;;;;;3217:103:29;;;:::i;:::-;13653:2443:86;;-1:-1:-1;;;4285:48:81;;4322:10;13653:2443:86;4285:48:81;;13653:2443:86;;;;;-1:-1:-1;;;;;4295:16:81;13653:2443:86;4285:48:81;;;;;;;-1:-1:-1;4285:48:81;;;13653:2443:86;4284:49:81;;4280:99;;-1:-1:-1;;;;;13653:2443:86;-1:-1:-1;;4322:10:81;297:2:93;13653:2443:86;;267:46:93;4459:27:81;;;;13653:2443:86;;4459:15:81;13653:2443:86;;;;;;;4459:27:81;13653:2443:86;4459:37:81;4455:87;;4654:38;4552:27;4654:38;4552:27;;;13653:2443:86;;4459:15:81;13653:2443:86;;;;;;;4552:27:81;13653:2443:86;4631:6:81;;;;:::i;:::-;13653:2443:86;;;;;;;;;;;;;4654:38:81;;;;3282:1:29;1805;-1:-1:-1;;;;;;;;;;;13653:2443:86;3716:283:29;3282:1;13653:2443:86;4455:87:81;13653:2443:86;;-1:-1:-1;;;4519:12:81;;13653:2443:86;;4519:12:81;4280:99;13653:2443:86;;-1:-1:-1;;;4356:12:81;;13653:2443:86;;4356:12:81;4285:48;;;;13653:2443:86;4285:48:81;13653:2443:86;4285:48:81;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;:::i;13653:2443:86:-;;;;;;-1:-1:-1;;13653:2443:86;;;;;;-1:-1:-1;13653:2443:86;-1:-1:-1;;;;;;;;;;;13653:2443:86;;;4919:24:24;13653:2443:86;-1:-1:-1;13653:2443:86;4919:24:24;13653:2443:86;;;;;;;;-1:-1:-1;;;;;13653:2443:86;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;13653:2443:86;;;;;;;;-1:-1:-1;;13653:2443:86;;;;:::o;:::-;;;;;;-1:-1:-1;;13653:2443:86;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;13653:2443:86;;;;;;322:32:74;-1:-1:-1;;;;;13653:2443:86;;;;;;;;;;;;-1:-1:-1;;13653:2443:86;;;;5350:25:24;13653:2443:86;;;;;;;:::i;:::-;;-1:-1:-1;13653:2443:86;-1:-1:-1;;;;;;;;;;;13653:2443:86;;3202:4:24;4919:24;13653:2443:86;-1:-1:-1;13653:2443:86;4919:24:24;13653:2443:86;3202:4:24;:::i;:::-;5350:25;:::i;13653:2443:86:-;;;;;;-1:-1:-1;;13653:2443:86;;;;;;;;;:::i;:::-;966:10:28;-1:-1:-1;;;;;13653:2443:86;;6441:34:24;6437:102;;6549:37;13653:2443:86;;;6549:37:24;:::i;6437:102::-;13653:2443:86;;-1:-1:-1;;;6498:30:24;;13653:2443:86;;6498:30:24;13653:2443:86;;;;;;-1:-1:-1;;13653:2443:86;;;;;;;;;:::i;:::-;3217:103:29;;:::i;:::-;966:10:28;-1:-1:-1;13653:2443:86;;;;;;;;;;1356:26:81;;13653:2443:86;;4468:23:24;4464:108;;-1:-1:-1;4861:4:81;13653:2443:86;-1:-1:-1;;;;;13653:2443:86;;;;;;4861:13:81;;4857:63;;-1:-1:-1;;;;;;13653:2443:86;;;4861:4:81;13653:2443:86;4958:14:81;-1:-1:-1;;4958:14:81;4861:4;-1:-1:-1;;;;;;;;;;;13653:2443:86;;4464:108:24;13653:2443:86;;;;4514:47:24;;;;;;966:10:28;13653:2443:86;4514:47:24;;13653:2443:86;;;;;4514:47:24;13653:2443:86;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;13653:2443:86;;;;;;;:::o;:::-;;:::i;:::-;;;;;;;-1:-1:-1;;;;;13653:2443:86;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;13653:2443:86;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;13653:2443:86;;;;;;;:::o;:::-;;;;;;;:::i;:::-;:::o;:::-;;;;;;;:::i;:::-;-1:-1:-1;;;;;13653:2443:86;;;;;;-1:-1:-1;;13653:2443:86;;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;13653:2443:86;;;;;;;;;;;;;;:::o;:::-;;;;;;-1:-1:-1;;13653:2443:86;;;;;;:::i;:::-;;;-1:-1:-1;;;;;13653:2443:86;;;;;;;2045:63:84;13653:2443:86;;;;;;:::i;:::-;;;;-1:-1:-1;13653:2443:86;2045:16:84;13653:2443:86;;;-1:-1:-1;13653:2443:86;2045:63:84;:::i;:::-;13653:2443:86;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;13653:2443:86;;;;;;;;;;;;;;;:::o;:::-;;;;;;-1:-1:-1;;13653:2443:86;;;;-1:-1:-1;;;;;13653:2443:86;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;13653:2443:86;;;;;;;4301:16:26;13653:2443:86;;4726:16:26;;:34;;;;13653:2443:86;4805:1:26;4790:16;:50;;;;13653:2443:86;4855:13:26;:30;;;;13653:2443:86;4851:91:26;;;-1:-1:-1;;;;;;;;;;;13653:2443:86;;-1:-1:-1;;13653:2443:86;;;;;718:4:74;;4951:18:26;4979:67;;718:4:74;:::i;:::-;5066:101:26;;13653:2443:86;5066:101:26;-1:-1:-1;;;;;;;;;;;13653:2443:86;;-1:-1:-1;;;;13653:2443:86;;;;;-1:-1:-1;13653:2443:86;;5142:14:26;;13653:2443:86;;5142:14:26;13653:2443:86;4979:67:26;-1:-1:-1;;;;;;;;;;;13653:2443:86;;-1:-1:-1;;;;13653:2443:86;-1:-1:-1;;;13653:2443:86;;;718:4:74;:::i;4851:91:26:-;13653:2443:86;;-1:-1:-1;;;4908:23:26;;13653:2443:86;;4908:23:26;4855:30;4872:13;;;4855:30;;;4790:50;4818:4;4810:25;:30;;-1:-1:-1;4790:50:26;;4726:34;;;-1:-1:-1;4726:34:26;;13653:2443:86;;;;;;-1:-1:-1;;13653:2443:86;;;;;;13849:36;-1:-1:-1;;;;;13653:2443:86;;;;;;;;;;;;-1:-1:-1;;13653:2443:86;;;;;;;1253:6:81;13653:2443:86;;;;;;;;;-1:-1:-1;;13653:2443:86;;;;1267:23:84;13653:2443:86;;;-1:-1:-1;;;;;13653:2443:86;;;;;;;;;;;;;;-1:-1:-1;;13653:2443:86;;;;;;;1356:26:81;13653:2443:86;;;;;;;;;-1:-1:-1;;13653:2443:86;;;;;;;;-1:-1:-1;;;;;13653:2443:86;;;;;;;;;;;;;;-1:-1:-1;;13653:2443:86;;;;;;13798:45;-1:-1:-1;;;;;13653:2443:86;;;;;;;;;;;;-1:-1:-1;;13653:2443:86;;;;;;;;-1:-1:-1;;;;;13653:2443:86;;;;;;;;;;;;;;-1:-1:-1;;13653:2443:86;;;;;;961:42:84;-1:-1:-1;;;;;13653:2443:86;;;;;;;;;;;;-1:-1:-1;;13653:2443:86;;;;;;3901:31:24;13653:2443:86;;;;;:::i;:::-;;;-1:-1:-1;13653:2443:86;-1:-1:-1;;;;;;;;;;;13653:2443:86;;;-1:-1:-1;13653:2443:86;;;;;;;;;;;;;;;;;3901:31:24;13653:2443:86;;;;;;;;;;;;;;;;-1:-1:-1;;13653:2443:86;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;:::i;:::-;;;;;;-1:-1:-1;;13653:2443:86;;;;;;13891:45;-1:-1:-1;;;;;13653:2443:86;;;;;;;;;;;;-1:-1:-1;;13653:2443:86;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;13653:2443:86;;;;-1:-1:-1;13653:2443:86;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;416:25:80;;;;477:31;416:25;;:::i;:::-;13653:2443:86;;;;;;;;;;477:31:80;;13653:2443:86;;;;;;;;;;;:::i;:::-;477:31:80;13653:2443:86;;477:31:80;;;;;;:::i;:::-;518:79;;;13653:2443:86;518:79:80;;13653:2443:86;;;;;;-1:-1:-1;;13653:2443:86;;;;;;;;;;;;;;;;;-1:-1:-1;;13653:2443:86;;;;;;;-1:-1:-1;;;;;404:28:74;13653:2443:86;;;;;;;;;;-1:-1:-1;;13653:2443:86;;;;;;1439:41:81;-1:-1:-1;;;;;13653:2443:86;;;;;;;;;;;;-1:-1:-1;;13653:2443:86;;;;;;:::i;:::-;449:5:87;-1:-1:-1;;;;;13653:2443:86;435:10:87;:19;431:71;;13653:2443:86;14508:67;13653:2443;;;;-1:-1:-1;13653:2443:86;14508:16;13653:2443;;;-1:-1:-1;13653:2443:86;14508:67;:::i;:::-;13653:2443;;;;;;;;;;;;;;;;;;;431:71:87;13653:2443:86;;-1:-1:-1;;;477:14:87;;13653:2443:86;;477:14:87;13653:2443:86;;;;;;-1:-1:-1;;13653:2443:86;;;;;;-1:-1:-1;13653:2443:86;2009:67:81;13653:2443:86;;;;-1:-1:-1;13653:2443:86;;;;;;;;;;;;;;-1:-1:-1;;13653:2443:86;;;;5767:26:24;13653:2443:86;;;;;;;:::i;:::-;;-1:-1:-1;13653:2443:86;-1:-1:-1;;;;;;;;;;;13653:2443:86;;3202:4:24;4919:24;13653:2443:86;-1:-1:-1;13653:2443:86;4919:24:24;13653:2443:86;3202:4:24;:::i;:::-;5767:26;:::i;13653:2443:86:-;;;;;;-1:-1:-1;;13653:2443:86;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;-1:-1:-1;;;;;13653:2443:86;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;-1:-1:-1;;13653:2443:86;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;-1:-1:-1;;;;;13653:2443:86;;;;;;;;;;;;:::i;:::-;3217:103:29;;:::i;:::-;-1:-1:-1;13653:2443:86;;;5246:21:81;;:13;;-1:-1:-1;;;;;13653:2443:86;5246:13:81;13653:2443:86;;-1:-1:-1;;;;;13653:2443:86;;;5246:21:81;13653:2443:86;;-1:-1:-1;;;5246:23:81;;13653:2443:86;;;;;5246:23:81;;;;;;;-1:-1:-1;5246:23:81;;;13653:2443:86;-1:-1:-1;;;;;;13653:2443:86;;;5232:10:81;:37;5228:87;;5341:4;13653:2443:86;-1:-1:-1;;;;;13653:2443:86;;;;5355:469:81;;13653:2443:86;-1:-1:-1;;13653:2443:86;;;;;;;;;;;;;;;;5839:55:81;;13653:2443:86;;;;5839:55:81;;;;3282:1:29;1805;-1:-1:-1;;;;;;;;;;;13653:2443:86;3716:283:29;5355:469:81;13653:2443:86;;;;5435:94:81;;;;13653:2443:86;5435:94:81;;;;;;;;;;;;13653:2443:86;5435:94:81;;;:::i;:::-;;13653:2443:86;;5435:94:81;;;;;;:::i;:::-;13653:2443:86;5548:9:81;:51;5544:118;;-1:-1:-1;5839:55:81;5676:138;;;;5839:55;5676:138;;;1150:7;5676:138;;5355:469;;;5544:118;13653:2443:86;;-1:-1:-1;;;5626:21:81;;13653:2443:86;;5626:21:81;5228:87;13653:2443:86;;-1:-1:-1;;;5292:12:81;;13653:2443:86;;5292:12:81;5246:23;;;;;13653:2443:86;5246:23:81;13653:2443:86;5246:23:81;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;13653:2443:86;;;;;;-1:-1:-1;;13653:2443:86;;;;;;;;-1:-1:-1;;;;;13653:2443:86;;;;;;;;;;;;;;-1:-1:-1;;13653:2443:86;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;-1:-1:-1;;13653:2443:86;;;;;;;1150:7:81;13653:2443:86;;;;;;;;;-1:-1:-1;;13653:2443:86;;;;;;;2700:1:81;13653:2443:86;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;13653:2443:86;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;;;;13653:2443:86;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;15166:928::-;13653:2443;;-1:-1:-1;;;15383:99:86;;-1:-1:-1;;;;;13653:2443:86;;;15383:99;;;13653:2443;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;13653:2443:86;;;15402:20;13653:2443;;15383:99;;;;;;;;;;;15166:928;-1:-1:-1;13653:2443:86;;-1:-1:-1;;;15576:32:86;;;13653:2443;15383:99;13653:2443;;;;15576:32;;;;;;;15536:84;15576:32;15383:99;15576:32;;;;;;;15166:928;-1:-1:-1;13653:2443:86;;-1:-1:-1;;;15536:84:86;;-1:-1:-1;;;;;13653:2443:86;;;15383:99;15536:84;;13653:2443;;;;;;;;;;;;;-1:-1:-1;13653:2443:86;;;;;;;;;15536:84;;15547:11;;13653:2443;15536:84;;;;;;;15383:99;15536:84;;;15166:928;15667:53;;;;;:::i;:::-;13653:2443;;;15735:21;;;:52;;;15166:928;15735:88;;;;15166:928;15731:357;;15166:928;;;:::o;15731:357::-;15846:231;13653:2443;;;;15846:231;13653:2443;;;;:::i;:::-;;;;15576:32;15874:189;;13653:2443;;15874:189;;13653:2443;;;15846:231;;;15576:32;15846:231;;;:::i;15735:88::-;13653:2443;;;15791:32;;15735:88;;:52;13653:2443;;;15760:27;;15735:52;;15536:84;15667:53;15536:84;;;;;;15383:99;15536:84;;;;;;:::i;:::-;;;;;:::i;:::-;;;;15576:32;;;;;;;;;;;;;;:::i;:::-;;;;15383:99;;;;;;;;;;;;;;:::i;:::-;;;;;1914:201:84;;2045:63;1914:201;;-1:-1:-1;13653:2443:86;2045:16:84;13653:2443:86;;;-1:-1:-1;13653:2443:86;2045:63:84;:::i;13653:2443:86:-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;:::i;14588:572::-;;;-1:-1:-1;14725:12:86;13653:2443;;;;;14871:159;;14915:74;;;;14871:159;;;;;;;13653:2443;;;;;;;14871:159;;;;;:::i;:::-;13653:2443;;716:88:87;;13653:2443:86;716:88:87;;;;;;;;;783:4;14871:159:86;716:88:87;;13653:2443:86;;;;;;;;;;;:::i;:::-;716:88:87;13653:2443:86;716:88:87;13653:2443:86;;716:88:87;;;;;;;;:::i;:::-;698:107;;;;;857:45;698:107;;:::i;:::-;13653:2443:86;;;;857:45:87;;;;;;:::i;:::-;916:8;;912:175;;13653:2443:86;;;14779:303;13653:2443;;14779:303;;;;;;:::i;:::-;15093:61;;;;14588:572;;;:::o;15093:61::-;15126:17;13653:2443;;;;15126:17;13653:2443;;15126:17;;;;;13653:2443;;;;;;;;;;;;15126:17;;;;;;;;;:::i;912:175:87:-;13653:2443:86;;;;944:22:87;;;940:36;;990:87;;13653:2443:86;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;-1:-1:-1;13653:2443:86;;;;:::o;:::-;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;;;;13653:2443:86;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::o;:::-;-1:-1:-1;;;;;13653:2443:86;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;2764:920:81:-;;2978:48;2764:920;;;;2978:48;;;;:::i;:::-;3036:36;;;13653:2443:86;;:::i;:::-;;;;3086:20:81;3082:107;;2764:920;3216:11;;;;:193;;;;;2764:920;3216:394;;;;2764:920;3199:455;;;;;;2764:920;:::o;3199:455::-;3635:8;-1:-1:-1;3635:8:81;:::o;3216:394::-;3553:39;;;;;3430:180;3553:39;;;13653:2443:86;;;;;;;;;;3430:180:81;;467:2:93;13653:2443:86;3430:180:81;;;;;:::i;:::-;;13653:2443:86;3444:31:81;-1:-1:-1;;;;;13653:2443:86;3430:180:81;;;;;;;-1:-1:-1;3430:180:81;;;3216:394;3429:181;;3216:394;;;;;;3430:180;;;;3553:39;3430:180;3553:39;3430:180;;;;;;;:::i;:::-;;;;3216:193;-1:-1:-1;13653:2443:86;;;-1:-1:-1;;;;;;13653:2443:86;3248:161:81;3354:37;;;13653:2443:86;3248:161:81;13653:2443:86;;;;;;;;;;3248:161:81;;;;;;;:::i;:::-;;13653:2443:86;3262:29:81;-1:-1:-1;;;;;13653:2443:86;3248:161:81;;;;;;;-1:-1:-1;3248:161:81;;;3216:193;3247:162;;3216:193;;;3248:161;;;;;;;;;;;;;;:::i;:::-;;;;3082:107;3139:39;;;;;;;;;;;;;:::i;:::-;3082:107;;;;;13653:2443:86;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;8889:1:91;13653:2443:86;;;;;;;:::o;:::-;;:::i;3740:389:81:-;3918:5;13653:2443:86;;;-1:-1:-1;;;3853:71:81;;;-1:-1:-1;;;;;13653:2443:86;;;3853:71:81;;;13653:2443:86;;;;;;;;3740:389:81;;13653:2443:86;3853:71:81;;13653:2443:86;;3853:71:81;13653:2443:86;;;3867:29:81;13653:2443:86;;3853:71:81;;;;;;;3918:5;3853:71;;;3740:389;3852:72;;13653:2443:86;;;3852:181:81;;3740:389;3835:242;;;;;;4094:28;;;:::i;3835:242::-;4058:8;;3918:5;4058:8;:::o;3852:181::-;13653:2443:86;;3945:88:81;;;-1:-1:-1;;;;;13653:2443:86;;3853:71:81;3945:88;;13653:2443:86;467:2:93;13653:2443:86;;;;;;;;-1:-1:-1;13653:2443:86;;;;;;;;3959:31:81;13653:2443:86;3945:88:81;;;;;;;3918:5;3945:88;;;3852:181;3944:89;;;3852:181;;;;;3945:88;;;;;;-1:-1:-1;3945:88:81;;;;;;:::i;:::-;;;;;3853:71;;;;;;;;;;;;;;:::i;:::-;;;;3326:384:29;-1:-1:-1;;;;;;;;;;;1847:1:29;13653:2443:86;;3526:20:29;3522:88;;1847:1;13653:2443:86;;3326:384:29:o;3522:88::-;13653:2443:86;;-1:-1:-1;;;3569:30:29;;;;;3164:253:84;3261:7;13653:2443:86;-1:-1:-1;;;;;13653:2443:86;467:2:93;13653:2443:86;;;3261:31:84;3257:85;;-1:-1:-1;13653:2443:86;3351:16:84;13653:2443:86;;;-1:-1:-1;13653:2443:86;;;837:15:63;;;14369:24:59;14365:103;;837:15:63;;13653:2443:86;6360:12:91;;;;13653:2443:86;;;6360:24:91;6356:75;;3164:253:84;6474:30:91;;;:::i;:::-;13653:2443:86;;;;;;;;10303:8:61;;:63;:8;;;:63;-1:-1:-1;10303:63:61;;-1:-1:-1;;;;;13653:2443:86;;;;10726:7:91;13653:2443:86;;10736:17:91;;;;:::i;:::-;10726:31;;;6604:24;;;10726:31;-1:-1:-1;;6600:188:91;;;6657:7;;6644:29;6657:7;;;;6644:21;6657:7;;:::i;:::-;6644:21;;:::i;:::-;:29;13653:2443:86;;;;;;;;;;;;;;;;;;;;;6600:188:91;6753:24;13653:2443:86;8167:38:61;13653:2443:86;;8167:38:61;;:::i;:::-;6753:24:91;;;:::i;6604:::-;13653:2443:86;6614:14:91;;;-1:-1:-1;6604:24:91;;;;10726:31;;;;10303:63:61;13653:2443:86;;;;;;;;;;13267:109:91;-1:-1:-1;13267:109:91;13653:2443:86;-1:-1:-1;13267:109:91;;;13653:2443:86;;;10303:63:61;;;6356:75:91;6400:20;;;:::i;:::-;6356:75;;14365:103:59;13653:2443:86;;-1:-1:-1;;;14416:41:59;;14447:2;3261:7:84;14416:41:59;;13653:2443:86;837:15:63;13653:2443:86;;;;;;14416:41:59;3257:85:84;13653:2443:86;;-1:-1:-1;;;3315:16:84;;3261:7;;3315:16;4148:103:24;-1:-1:-1;13653:2443:86;;;-1:-1:-1;;;;;;;;;;;13653:2443:86;;;;;;;;966:10:28;13653:2443:86;;;;;;;;;;4468:23:24;4464:108;;4148:103;:::o;7270:387::-;-1:-1:-1;;;;;13653:2443:86;;-1:-1:-1;13653:2443:86;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2887:71:24;13653:2443:86;;;;-1:-1:-1;13653:2443:86;;;;;;;;;;;-1:-1:-1;;;;;13653:2443:86;;;;;;;;;;-1:-1:-1;;13653:2443:86;7509:4:24;13653:2443:86;;;966:10:28;;-1:-1:-1;;;;;13653:2443:86;-1:-1:-1;7532:40:24;-1:-1:-1;;7532:40:24;7509:4;7586:11;:::o;7270:387::-;-1:-1:-1;;;;;13653:2443:86;;-1:-1:-1;13653:2443:86;;;;;;;;;1356:26:81;;-1:-1:-1;;;;;;;;;;;2887:71:24;13653:2443:86;;3901:31:24;13653:2443:86;;;;-1:-1:-1;13653:2443:86;;;;;;;;;;;-1:-1:-1;;;;;13653:2443:86;;;;;;;;;;-1:-1:-1;;13653:2443:86;7509:4:24;13653:2443:86;;;966:10:28;;-1:-1:-1;;;;;13653:2443:86;;7532:40:24;-1:-1:-1;;7532:40:24;7509:4;7586:11;:::o;7432:219::-;7628:12;;;-1:-1:-1;7628:12:24;:::o;7270:387::-;-1:-1:-1;13653:2443:86;;;-1:-1:-1;;;;;;;;;;;13653:2443:86;;;;;;;;-1:-1:-1;;;;;13653:2443:86;;;;;;;;;;;;3901:31:24;13653:2443:86;7892:388:24;-1:-1:-1;13653:2443:86;;;-1:-1:-1;;;;;;;;;;;13653:2443:86;;;;;;;;-1:-1:-1;;;;;13653:2443:86;;;;;;;;;;;;;;;;-1:-1:-1;13653:2443:86;;;;;;;;;;;-1:-1:-1;;;;;13653:2443:86;;;;;;;;;;-1:-1:-1;;13653:2443:86;;;966:10:28;;-1:-1:-1;;;;;13653:2443:86;;8155:40:24;-1:-1:-1;;8155:40:24;13653:2443:86;8209:11:24;:::o;13653:2443:86:-;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;13653:2443:86;;;;;;;;:::o;:::-;;;;;;;;;;;;;:::o;7558:604:91:-;;13653:2443:86;;7686:17:91;7682:83;;13653:2443:86;7789:27:91;13653:2443:86;7789:27:91;13653:2443:86;;7789:27:91;;;;;;:::i;:::-;7860:14;;;;;:::i;:::-;13653:2443:86;;;;;;;;;;;;;;;;7888:22:91;;;7884:77;;7975:21;-1:-1:-1;7975:84:91;;;;7558:604;7971:139;;;;8127:28;;;;:::i;7971:139::-;8082:17;;7789:27;8082:17;13653:2443:86;8075:24:91;:::o;7975:84::-;13653:2443:86;;;8009:16:91;13653:2443:86;;8009:16:91;:::i;:::-;13653:2443:86;;;8001:24:91;:57;;;;;7975:84;;;;;;;8001:57;8029:29;8038:8;;;8029:18;8038:8;8029:23;8038:8;;:::i;:::-;8029:18;;:::i;:::-;13653:2443:86;;;;;8029:23:91;13653:2443:86;;;;8029:29:91;;8001:57;;;;7884:77;7933:17;;;;;7789:27;7933:17;13653:2443:86;7926:24:91;:::o;7682:83::-;7726:28;;;;:::i;13653:2443:86:-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;13653:2443:86;;;;;;;;:::i;5907:716:81:-;6030:34;5907:716;6030:34;;;;:::i;:::-;13653:2443:86;;-1:-1:-1;;;6080:41:81;;-1:-1:-1;;;;;13653:2443:86;;;6080:41:81;;;13653:2443:86;;;;;6080:41:81;13653:2443:86;;;6090:13:81;13653:2443:86;;6080:41:81;;;;;;;-1:-1:-1;6080:41:81;;;5907:716;6079:42;;6075:90;;6266:27;13653:2443:86;2540:111:29;6210:14:81;13653:2443:86;2540:111:29;;;:::i;:::-;13653:2443:86;;;;;;-1:-1:-1;;;;;13653:2443:86;;-1:-1:-1;13653:2443:86;;;-1:-1:-1;13653:2443:86;;6210:14:81;6266:27;:::i;:::-;6080:41;6311:15;;13653:2443:86;;;;-1:-1:-1;;;;;;13653:2443:86;-1:-1:-1;;;;;13653:2443:86;;;;;;;;;;;-1:-1:-1;;;;;13653:2443:86;;;;6337:143:81;;5907:716;-1:-1:-1;6493:28:81;13653:2443:86;-1:-1:-1;;;;;13653:2443:86;;;;;;;6489:128:81;;5907:716;:::o;6489:128::-;6551:55;;;:::i;:::-;;5907:716::o;6337:143::-;6404:65;;;:::i;:::-;;6337:143;;;6075:90;13653:2443:86;;-1:-1:-1;;;6144:10:81;;6080:41;;6144:10;6080:41;;;;;;;;;;;;;;:::i;:::-;;;;13653:2443:86;;;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;13653:2443:86;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::o;:::-;;;;;;;;-1:-1:-1;13653:2443:86;;-1:-1:-1;13653:2443:86;;;-1:-1:-1;13653:2443:86;:::o;:::-;;;;;;;;;;;;8406:869:91;;;13653:2443:86;;8620:15:91;8578:11;8645:18;8678:7;8684:1;8678:7;;8674:241;;8406:869;8939:60;;;;;:::i;:::-;9014:8;;;9010:62;;9252:15;9259:7;13653:2443:86;9219:31:91;13653:2443:86;9130:48:91;9170:7;;;:::i;:::-;9130:48;13267:109;;;;;;13089:293;;9130:48;13653:2443:86;:::i;:::-;;9176:1:91;13653:2443:86;9232:17:91;13653:2443:86;;;;;;;;9232:17:91;;13653:2443:86;-1:-1:-1;;;;;13653:2443:86;;;;9219:12:91;;:31;:::i;:::-;13653:2443:86;;;;;;;;;9259:7:91;;:::i;:::-;13653:2443:86;;;;9252:15:91;9176:1;;9188:80;;8406:869::o;9010:62::-;8578:11;;-1:-1:-1;8578:11:91;;-1:-1:-1;8578:11:91;;;;9038:23::o;8674:241::-;8721:14;;;;;:::i;:::-;13653:2443:86;;;;;;;8939:60:91;13267:109;;8578:11;13267:109;8753:55;8759:49;13267:109;;8578:11;13267:109;;13653:2443:86;;;;;;8753:55:91;13653:2443:86;;;8753:55:91;13267:109;;;8828:10;8749:156;8674:241;;8749:156;8883:7;;;;;;:::i;:::-;8749:156;8674:241;;13653:2443:86;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;;;;13653:2443:86;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;:::i;2121:740:84:-;;;;;13653:2443:86;;:::i;:::-;;;;2362:16:84;2358:92;;2121:740;-1:-1:-1;;2464:7:84;13653:2443:86;467:2:93;13653:2443:86;;;-1:-1:-1;;;;;13653:2443:86;;;2464:31:84;;;;;13653:2443:86;2464:56:84;;2121:740;2460:120;;;;-1:-1:-1;13653:2443:86;2637:67:84;;13653:2443:86;;2676:27:84;;2637;;:13;;-1:-1:-1;;;;;13653:2443:86;2637:13:84;13653:2443:86;2637:27:84;2676;;;;13653:2443:86;;;;;;;;;;;2637:67:84;;;2464:7;2637:67;;;:::i;:::-;;;;;;;;;;2611:198;2637:67;-1:-1:-1;2637:67:84;;;2121:740;2763:31;2722:73;2763:31;;13653:2443:86;2763:31:84;;;2722:73;;:::i;:::-;2611:198;;:::i;:::-;2823:21;;2121:740;:::o;2637:67::-;2722:73;2637:67;;;;2676:27;2637:67;2676:27;2637:67;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;2460:120;-1:-1:-1;;2547:21:84;;-1:-1:-1;;2536:33:84:o;2464:56::-;2499:8;13653:2443:86;;;-1:-1:-1;;;;;13653:2443:86;;;2499:21:84;;;-1:-1:-1;2464:56:84;;;;2358:92;2408:31;;;;;;;;;;;;;:::i;:::-;2358:92;;;;;2867:291;2977:7;13653:2443:86;2867:291:84;;13653:2443:86;;;;-1:-1:-1;;;;;13653:2443:86;;;2977:31:84;;;;13653:2443:86;2977:56:84;;2867:291;2973:95;;;;-1:-1:-1;13653:2443:86;2977:7:84;;13653:2443:86;3094:27:84;;:25;;:13;;-1:-1:-1;;;;;13653:2443:86;3094:13:84;13653:2443:86;3094:25:84;13653:2443:86;;-1:-1:-1;;;3094:27:84;;13653:2443:86;;;;;3094:27:84;;;;;;;3085:66;3094:27;-1:-1:-1;3094:27:84;;;2867:291;3123:27;;;13653:2443:86;;4459:15:81;13653:2443:86;;;;;;;3123:27:84;13653:2443:86;3085:66:84;;:::i;3094:27::-;3123;3094;;;;;;;;;;;;;;;:::i;:::-;;;;;2977:56;3012:8;13653:2443:86;;;-1:-1:-1;;;;;13653:2443:86;;;3012:21:84;;;-1:-1:-1;2977:56:84;;;;13653:2443:86;;;-1:-1:-1;;;13653:2443:86;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::o;:::-;;;;;-1:-1:-1;;;13653:2443:86;;;;;;;;;;;;;;;:::i;6999:207:91:-;;13653:2443:86;;9594:15:61;-1:-1:-1;9619:18:61;9652:7;9658:1;9652:7;;9648:234;;6999:207:91;9906:53:61;;;;;:::i;:::-;9977:8;;;:63;-1:-1:-1;9977:63:61;;-1:-1:-1;;;;;13653:2443:86;;7168:7:91;13653:2443:86;;;7178:12:91;;:17;:12;;:17;:::i;9977:63:61:-;9992:41;10025:7;9992:48;10025:7;;:::i;:::-;9992:41;13267:109:91;;;;;;13089:293;;9992:41:61;13653:2443:86;;;;;9992:48:61;9977:63;;;9648:234;9695:14;;;;;:::i;:::-;13653:2443:86;;;;;;;9906:53:61;13267:109:91;;-1:-1:-1;13267:109:91;13653:2443:86;13267:109:91;;;-1:-1:-1;13267:109:91;;13653:2443:86;;;;;9727:48:61;9723:149;13653:2443:86;;;9795:10:61;9723:149;9648:234;;9723:149;9850:7;;;;;;:::i;:::-;9723:149;9648:234;;13653:2443:86;;;;;;;:::i;:::-;-1:-1:-1;13653:2443:86;;;;;;;:::o;11486:272:91:-;;13653:2443:86;11308:22:61;11718:31:91;11486:272;13653:2443:86;;:::i;:::-;;;;:::i;:::-;;11308:22:61;;:::i;:::-;13653:2443:86;;:::i;:::-;;11718:12:91;13653:2443:86;;;;;11731:17:91;13653:2443:86;;;;;11731:17:91;;13653:2443:86;;11718:12:91;;:31;:::i;:::-;13653:2443:86;;;;;;;;;:::i;:::-;;;;;;11731:17:91;11672:79;;13653:2443:86;11486:272:91;:::o;6893:76:26:-;;;:::i;:::-;;;:::i;:::-;1805:1:29;-1:-1:-1;;;;;;;;;;;13653:2443:86;6893:76:26:o;13653:2443:86:-;;;;;;;:::i;:::-;-1:-1:-1;13653:2443:86;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;3423:520:84:-;13653:2443:86;;:::i;:::-;;3571:30:84;13653:2443:86;;3571:30:84;;;;;;;;;;;:::i;:::-;3654:14;;;13653:2443:86;;;;-1:-1:-1;;;3617:52:84;;;-1:-1:-1;;;;;13653:2443:86;;;3617:52:84;;;13653:2443:86;3654:14:84;;13653:2443:86;;;3654:14:84;13653:2443:86;;;3627:16:84;13653:2443:86;;3617:52:84;;;;;;;-1:-1:-1;3617:52:84;;;3423:520;3616:53;;3612:103;;3768:15;3730:54;3768:15;13653:2443:86;3768:15:84;;13653:2443:86;;;;;;;;;;;;;;;3730:54:84;;;-1:-1:-1;;;;;13653:2443:86;3617:52:84;3730:54;;13653:2443:86;;;;;-1:-1:-1;13653:2443:86;;;;;;;;;3730:54:84;;3740:17;;13653:2443:86;3730:54:84;;;;;;;-1:-1:-1;3730:54:84;;;3423:520;3729:55;;;3725:106;;13653:2443:86;3617:52:84;13653:2443:86;;-1:-1:-1;;;;;13653:2443:86;;;-1:-1:-1;;;;;;13653:2443:86;;;;;;;;;3875:26:84;13653:2443:86;;;;;;;;;;3919:17:84;3423:520;:::o;3725:106::-;13653:2443:86;;-1:-1:-1;;;3807:13:84;;3617:52;;3807:13;3730:54;;;;;;-1:-1:-1;3730:54:84;;;;;;:::i;:::-;;;;;3617:52;;;;;;;;;;;;;;:::i;:::-;;;;8587:1642:58;8658:6;;8654:45;;9401:7;10201:10;10142:26;10093;10044;9995;9946;9897;9848;13653:2443:86;10189:23:58;9401:7;8663:1;13653:2443:86;;;;10826:16:58;10822:99;;8587:1642;13653:2443:86;;;;10938:15:58;10934:96;;8587:1642;13653:2443:86;;;;11047:15:58;11043:96;;8587:1642;13653:2443:86;;;;11156:15:58;11152:96;;8587:1642;13653:2443:86;;;;11265:14:58;11261:93;;8587:1642;13653:2443:86;;;;11371:14:58;11367:93;;8587:1642;13653:2443:86;;;;11477:14:58;11473:93;;8587:1642;13653:2443:86;;;11579:64:58;;8587:1642;13653:2443:86;;;9858:10:58;;;;:::i;:::-;13653:2443:86;;;;;9848:26:58;9907:10;;;;:::i;9897:26::-;9956:10;;;;:::i;9946:26::-;10005:10;;;;:::i;9995:26::-;10054:10;;;;:::i;10044:26::-;10103:10;;;;:::i;10093:26::-;10152:10;;;;:::i;10142:26::-;10201:10;;;:::i;11579:64::-;13653:2443:86;;11579:64:58;;11473:93;13653:2443:86;11511:11:58;;13653:2443:86;;11473:93:58;;;;11367;13653:2443:86;11405:11:58;;13653:2443:86;;11367:93:58;;;;11261;13653:2443:86;11299:11:58;;13653:2443:86;;11261:93:58;;;;11152:96;13653:2443:86;11191:12:58;;13653:2443:86;;11152:96:58;;;;11043;13653:2443:86;11082:12:58;;13653:2443:86;;11043:96:58;;;;10934;13653:2443:86;10973:12:58;;13653:2443:86;;10934:96:58;;;;10822:99;10862:13;;;13653:2443:86;10822:99:58;;;;12497:447:91;;;12694:10;;;;;;12926:11;;;12497:447;:::o;12687:230::-;2900:5:58;;;;;;13653:2443:86;;2910:5:58;;;13653:2443:86;;;;;;;;;13267:109:91;-1:-1:-1;13267:109:91;13653:2443:86;13267:109:91;;;-1:-1:-1;13267:109:91;;13653:2443:86;;;;;-1:-1:-1;12771:136:91;13653:2443:86;;;12830:10:91;;12771:136;;12687:230;;;;12771:136;13653:2443:86;;;;;;;;;;;12771:136:91;;;2557:104:58;;2641:5;;;;;;:13;2557:104;:::o;2641:13::-;;;2557:104;:::o;10552:388:61:-;13653:2443:86;;10728:8:61;;;10752:20;;10690:17;10752:20;10690:17;10752:20;10690:17;10752:20;:::o;10724:210::-;13653:2443:86;;;;;;;;;;;13267:109:91;10690:17:61;13267:109:91;;10690:17:61;13267:109:91;;;13653:2443:86;:::i;:::-;;;;;;;13267:109:91;13653:2443:86;;;;;10911:11:61;;13653:2443:86;;10886:37:61;10870:1;10886:37;;;:::o;7084:141:26:-;13653:2443:86;-1:-1:-1;;;;;;;;;;;13653:2443:86;;;;7150:18:26;7146:73;;7084:141::o;7146:73::-;13653:2443:86;;-1:-1:-1;;;7191:17:26;;;;;13653:2443:86;;;-1:-1:-1;;;13653:2443:86;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;13653:2443:86;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;11513:870:61;13653:2443:86;;11513:870:61;;;13653:2443:86;11513:870:61;11672:7;;;;13653:2443:86;11775:28:61;11795:7;;;:::i;13653:2443:86:-;;;;;;;;;;;;;;;;11877:15:61;-1:-1:-1;11873:91:61;;13653:2443:86;;12233:11:61;13653:2443:86;;;12027:16:61;13653:2443:86;;;;;;;12027:16:61;;;;12083:7;12063:43;12083:7;;12063:28;12083:7;;:::i;:::-;12063:28;13267:109:91;;;;;;13089:293;;12063:28:61;13653:2443:86;;;;;;;;;;;;;;;;;12063:43:61;12233:11;13653:2443:86;-1:-1:-1;;;;;13653:2443:86;;;;12225:27:61;;:::o;12023:189::-;13653:2443:86;;;12145:52:61;13653:2443:86;12155:41:61;13653:2443:86;;:::i;:::-;;;;;;;;12155:41:61;-1:-1:-1;;;;;13653:2443:86;;12155:41:61;;;13653:2443:86;12145:52:61;:::i;:::-;12023:189;;11873:91;13653:2443:86;;-1:-1:-1;;;11919:30:61;;;;;11668:709;12283:52;13653:2443:86;;12293:41:61;13653:2443:86;;:::i;12293:41:61:-;-1:-1:-1;;;;;13653:2443:86;;12293:41:61;;;13653:2443:86;12145:52:61;:::i;12283:::-;11678:1;12349:17;;:::o","linkReferences":{},"immutableReferences":{"64520":[{"start":1579,"length":32}],"64523":[{"start":3566,"length":32}],"65474":[{"start":989,"length":32},{"start":3623,"length":32},{"start":10158,"length":32}],"65477":[{"start":723,"length":32},{"start":8146,"length":32}],"65480":[{"start":791,"length":32},{"start":6209,"length":32},{"start":6512,"length":32}],"65483":[{"start":859,"length":32},{"start":6056,"length":32},{"start":6638,"length":32}],"67099":[{"start":3099,"length":32},{"start":10279,"length":32}],"68873":[{"start":2991,"length":32},{"start":4969,"length":32}],"68875":[{"start":2757,"length":32},{"start":5130,"length":32}],"68877":[{"start":3314,"length":32}],"69080":[{"start":3697,"length":32}]}},"methodIdentifiers":{"BASE_DELEGATOR_HINTS()":"79d89614","DEFAULT_ADMIN_ROLE()":"a217fddf","FACTORY()":"2dd31000","HOOK_GAS_LIMIT()":"ff54740f","HOOK_RESERVE()":"557cab44","HOOK_SET_ROLE()":"6679191e","NETWORK_REGISTRY()":"c0cd7c3e","OPERATOR_NETWORK_OPT_IN_SERVICE()":"1a80e500","OPERATOR_REGISTRY()":"83ce0322","OPERATOR_VAULT_OPT_IN_SERVICE()":"128e5d82","OPT_IN_SERVICE_HINTS()":"9b656b22","TYPE()":"bb24fe8a","VAULT_FACTORY()":"103f2907","VAULT_HINTS()":"45e78fcb","VERSION()":"ffa1ad74","getRoleAdmin(bytes32)":"248a9ca3","grantRole(bytes32,address)":"2f2ff15d","hasRole(bytes32,address)":"91d14854","hook()":"7f5a7c7b","initialize(bytes)":"439fab91","maxNetworkLimit(bytes32)":"d15b740e","maxNetworkLimitAt(bytes32,uint48,bytes)":"437224a3","maxNetworkLimitHint(address,bytes32,uint48)":"991d1162","maxNetworkLimitHintInternal(bytes32,uint48)":"d0f1f901","network()":"6739afca","onSlash(bytes32,address,uint256,uint48,bytes)":"e49561ee","operator()":"570ca735","renounceRole(bytes32,address)":"36568abe","revokeRole(bytes32,address)":"d547741f","setHook(address)":"3dfd3873","setMaxNetworkLimit(uint96,uint256)":"23f752d5","stake(bytes32,address)":"fd4d447c","stakeAt(bytes32,address,uint48,bytes)":"e02f6937","stakeHints(address,bytes32,address,uint48)":"25dc9708","staticDelegateCall(address,bytes)":"9f86fd85","supportsInterface(bytes4)":"01ffc9a7","vault()":"fbfa77cf"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"baseDelegatorHints\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"vaultHints\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"optInServiceHints\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"AccessControlBadConfirmation\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"neededRole\",\"type\":\"bytes32\"}],\"name\":\"AccessControlUnauthorizedAccount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AlreadySet\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CheckpointUnorderedInsertion\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ExternalCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientHookGas\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidNetwork\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotNetwork\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotOperator\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotSlasher\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotVault\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ReentrancyGuardReentrantCall\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"bits\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"SafeCastOverflowedUintDowncast\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint48\",\"name\":\"captureTimestamp\",\"type\":\"uint48\"}],\"name\":\"OnSlash\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"previousAdminRole\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"newAdminRole\",\"type\":\"bytes32\"}],\"name\":\"RoleAdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleRevoked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"hook\",\"type\":\"address\"}],\"name\":\"SetHook\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"SetMaxNetworkLimit\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"BASE_DELEGATOR_HINTS\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"DEFAULT_ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"FACTORY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"HOOK_GAS_LIMIT\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"HOOK_RESERVE\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"HOOK_SET_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"NETWORK_REGISTRY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"OPERATOR_NETWORK_OPT_IN_SERVICE\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"OPERATOR_REGISTRY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"OPERATOR_VAULT_OPT_IN_SERVICE\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"OPT_IN_SERVICE_HINTS\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"TYPE\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"VAULT_FACTORY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"VAULT_HINTS\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"VERSION\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleAdmin\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"grantRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"hook\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"}],\"name\":\"maxNetworkLimit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hint\",\"type\":\"bytes\"}],\"name\":\"maxNetworkLimitAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"}],\"name\":\"maxNetworkLimitHint\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"}],\"name\":\"maxNetworkLimitHintInternal\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"exists\",\"type\":\"bool\"},{\"internalType\":\"uint32\",\"name\":\"hint\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"network\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint48\",\"name\":\"captureTimestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"onSlash\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"operator\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"callerConfirmation\",\"type\":\"address\"}],\"name\":\"renounceRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"hook_\",\"type\":\"address\"}],\"name\":\"setHook\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint96\",\"name\":\"identifier\",\"type\":\"uint96\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"setMaxNetworkLimit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"stake\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hints\",\"type\":\"bytes\"}],\"name\":\"stakeAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"}],\"name\":\"stakeHints\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"staticDelegateCall\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"vault\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"AccessControlBadConfirmation()\":[{\"details\":\"The caller of a function is not the expected one. NOTE: Don't confuse with {AccessControlUnauthorizedAccount}.\"}],\"AccessControlUnauthorizedAccount(address,bytes32)\":[{\"details\":\"The `account` is missing a role.\"}],\"CheckpointUnorderedInsertion()\":[{\"details\":\"A value was attempted to be inserted on a past checkpoint.\"}],\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"ReentrancyGuardReentrantCall()\":[{\"details\":\"Unauthorized reentrant call.\"}],\"SafeCastOverflowedUintDowncast(uint8,uint256)\":[{\"details\":\"Value doesn't fit in an uint of `bits` size.\"}]},\"events\":{\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"OnSlash(bytes32,address,uint256,uint48)\":{\"params\":{\"amount\":\"amount of the collateral to be slashed\",\"captureTimestamp\":\"time point when the stake was captured\",\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"}},\"RoleAdminChanged(bytes32,bytes32,bytes32)\":{\"details\":\"Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole` `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite {RoleAdminChanged} not being emitted signaling this.\"},\"RoleGranted(bytes32,address,address)\":{\"details\":\"Emitted when `account` is granted `role`. `sender` is the account that originated the contract call, an admin role bearer except when using {AccessControl-_setupRole}.\"},\"RoleRevoked(bytes32,address,address)\":{\"details\":\"Emitted when `account` is revoked `role`. `sender` is the account that originated the contract call: - if using `revokeRole`, it is the admin role bearer - if using `renounceRole`, it is the role bearer (i.e. `account`)\"},\"SetHook(address)\":{\"params\":{\"hook\":\"address of the hook\"}},\"SetMaxNetworkLimit(bytes32,uint256)\":{\"params\":{\"amount\":\"new maximum subnetwork's limit (how much stake the subnetwork is ready to get)\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"}}},\"kind\":\"dev\",\"methods\":{\"VERSION()\":{\"details\":\"Must return 1 for this one.\",\"returns\":{\"_0\":\"version of the delegator\"}},\"getRoleAdmin(bytes32)\":{\"details\":\"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}.\"},\"grantRole(bytes32,address)\":{\"details\":\"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event.\"},\"hasRole(bytes32,address)\":{\"details\":\"Returns `true` if `account` has been granted `role`.\"},\"initialize(bytes)\":{\"params\":{\"data\":\"some data to use\"}},\"maxNetworkLimitAt(bytes32,uint48,bytes)\":{\"params\":{\"hint\":\"hint for checkpoint index\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\",\"timestamp\":\"time point to get the maximum subnetwork limit at\"},\"returns\":{\"_0\":\"maximum limit of the subnetwork\"}},\"onSlash(bytes32,address,uint256,uint48,bytes)\":{\"details\":\"Only the vault's slasher can call this function.\",\"params\":{\"amount\":\"amount of the collateral slashed\",\"captureTimestamp\":\"time point when the stake was captured\",\"data\":\"some additional data\",\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"}},\"renounceRole(bytes32,address)\":{\"details\":\"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `callerConfirmation`. May emit a {RoleRevoked} event.\"},\"revokeRole(bytes32,address)\":{\"details\":\"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event.\"},\"setHook(address)\":{\"details\":\"Only a HOOK_SET_ROLE holder can call this function. The hook can have arbitrary logic under certain functions, however, it doesn't affect the stake guarantees.\",\"params\":{\"hook\":\"address of the hook\"}},\"setMaxNetworkLimit(uint96,uint256)\":{\"details\":\"Only a network can call this function.\",\"params\":{\"amount\":\"new maximum subnetwork's limit\"}},\"stake(bytes32,address)\":{\"details\":\"Warning: this function is not safe to use for stake capturing, as it can change by the end of the block.\",\"params\":{\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"},\"returns\":{\"_0\":\"slashable stake until the end of the next epoch\"}},\"stakeAt(bytes32,address,uint48,bytes)\":{\"details\":\"Warning: it is not safe to use timestamp >= current one for the stake capturing, as it can change later.\",\"params\":{\"hints\":\"hints for the checkpoints' indexes\",\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\",\"timestamp\":\"time point to capture the stake at\"},\"returns\":{\"_0\":\"slashable stake at the given timestamp until the end of the consequent epoch\"}},\"staticDelegateCall(address,bytes)\":{\"details\":\"It allows to use this contract's storage on-chain.\",\"params\":{\"data\":\"data to make a delegatecall with\",\"target\":\"address of the contract to make a delegatecall to\"}},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"}},\"version\":1},\"userdoc\":{\"events\":{\"OnSlash(bytes32,address,uint256,uint48)\":{\"notice\":\"Emitted when a slash happens.\"},\"SetHook(address)\":{\"notice\":\"Emitted when a hook is set.\"},\"SetMaxNetworkLimit(bytes32,uint256)\":{\"notice\":\"Emitted when a subnetwork's maximum limit is set.\"}},\"kind\":\"user\",\"methods\":{\"FACTORY()\":{\"notice\":\"Get the factory's address.\"},\"HOOK_GAS_LIMIT()\":{\"notice\":\"Get a gas limit for the hook.\"},\"HOOK_RESERVE()\":{\"notice\":\"Get a reserve gas between the gas limit check and the hook's execution.\"},\"HOOK_SET_ROLE()\":{\"notice\":\"Get a hook setter's role.\"},\"NETWORK_REGISTRY()\":{\"notice\":\"Get the network registry's address.\"},\"OPERATOR_NETWORK_OPT_IN_SERVICE()\":{\"notice\":\"Get the operator-network opt-in service's address.\"},\"OPERATOR_REGISTRY()\":{\"notice\":\"Get the operator registry's address.\"},\"OPERATOR_VAULT_OPT_IN_SERVICE()\":{\"notice\":\"Get the operator-vault opt-in service's address.\"},\"TYPE()\":{\"notice\":\"Get the entity's type.\"},\"VAULT_FACTORY()\":{\"notice\":\"Get the vault factory's address.\"},\"VERSION()\":{\"notice\":\"Get a version of the delegator (different versions mean different interfaces).\"},\"hook()\":{\"notice\":\"Get the hook's address.\"},\"initialize(bytes)\":{\"notice\":\"Initialize this entity contract by using a given data.\"},\"maxNetworkLimit(bytes32)\":{\"notice\":\"Get a particular subnetwork's maximum limit (meaning the subnetwork is not ready to get more as a stake).\"},\"maxNetworkLimitAt(bytes32,uint48,bytes)\":{\"notice\":\"Get a particular subnetwork's maximum limit at a given timestamp using a hint (meaning the subnetwork is not ready to get more as a stake).\"},\"network()\":{\"notice\":\"Get a network the vault delegates funds to.\"},\"onSlash(bytes32,address,uint256,uint48,bytes)\":{\"notice\":\"Called when a slash happens.\"},\"operator()\":{\"notice\":\"Get an operator managing the vault's funds.\"},\"setHook(address)\":{\"notice\":\"Set a new hook.\"},\"setMaxNetworkLimit(uint96,uint256)\":{\"notice\":\"Set a maximum limit for a subnetwork (how much stake the subnetwork is ready to get). identifier identifier of the subnetwork\"},\"stake(bytes32,address)\":{\"notice\":\"Get a stake that a given subnetwork will be able to slash for a certain operator until the end of the next epoch (if no cross-slashing and no slashings by the subnetwork).\"},\"stakeAt(bytes32,address,uint48,bytes)\":{\"notice\":\"Get a stake that a given subnetwork could be able to slash for a certain operator at a given timestamp until the end of the consequent epoch using hints (if no cross-slashing and no slashings by the subnetwork).\"},\"staticDelegateCall(address,bytes)\":{\"notice\":\"Make a delegatecall from this contract to a given target contract with a particular data (always reverts with a return data).\"},\"vault()\":{\"notice\":\"Get the vault's address.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/contracts/hints/DelegatorHints.sol\":\"OperatorNetworkSpecificDelegatorHints\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol\":{\"keccak256\":\"0x6662ec4e5cefca03eeadd073e9469df8d2944bb2ee8ec8f7622c2c46aab5f225\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4d8544c6f8daa4d1bc215c6a72fe0acdb748664a105b0e5efc19295667521d45\",\"dweb:/ipfs/QmdGWqdnXT8S3RgCR6aV8XHZrsybieMQLLnug1NtpSjEXN\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0xc163fcf9bb10138631a9ba5564df1fa25db9adff73bd9ee868a8ae1858fe093a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9706d43a0124053d9880f6e31a59f31bc0a6a3dc1acd66ce0a16e1111658c5f6\",\"dweb:/ipfs/QmUFmfowzkRwGtDu36cXV9SPTBHJ3n7dG9xQiK5B28jTf2\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609\",\"dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9\",\"dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardUpgradeable.sol\":{\"keccak256\":\"0xb44e086e941292cdc7f440de51478493894ef0b1aeccb0c4047445919f667f74\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://942dad22fbdc1669f025540ba63aa3ccfad5f8458fc5d4525b31ebf272e7af45\",\"dweb:/ipfs/Qmdo4X2M82aM3AMoW2kf2jhYkSCyC4T1pHNd6obdsDFnAB\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol\":{\"keccak256\":\"0xdaba3f7c42c55b2896353f32bd27d4d5f8bae741b3b05d4c53f67abc4dc47ce8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1fa2e61141c602510bcd2cd936ed9561922ac8772a9b9c9a9db091a74e354a45\",\"dweb:/ipfs/QmcHQDDoEBwJmwUbzoVkytvJsBx3KVHYFFnDkvRGWh9Wmh\"]},\"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0xb6b36edd6a2999fd243ff226d6cbf84bd71af2432bbd0dfe19392996a1d9cb41\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1fd2f35495652e57e3f99bc6c510bc5f7dd398a176ea2e72d8ed730aebc6ca26\",\"dweb:/ipfs/QmTQV6X4gkikTib49cho5iDX3JvSQbdsoEChoDwrk3CbbH\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC1271.sol\":{\"keccak256\":\"0x85a45f3f10014a0f8be41157a32b6a5f905753ea64a4b64e29fc12b7deeecf39\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c3c74009ce36136b36c77c23935b8e4a7b4f253be2da2be4fb4a916b1ce43743\",\"dweb:/ipfs/QmcH36v3iN7SJJuF73AunLR2LtNxhVJ1wm63ph4dPZ4pcL\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC5267.sol\":{\"keccak256\":\"0x92aa1df62dc3d33f1656d63bede0923e0df0b706ad4137c8b10b0a8fe549fd92\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c5c0f29195ad64cbe556da8e257dac8f05f78c53f90323c0d2accf8e6922d33a\",\"dweb:/ipfs/QmQ61TED8uaCZwcbh8KkgRSsCav7x7HbcGHwHts3U4DmUP\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c\",\"dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0x6008dabfe393240d73d7dd7688033f72740d570aa422254d29a7dce8568f3aff\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f5196ec75139918c6c7bb4251b36395e668f1fa6d206beba7e7520e74913940d\",\"dweb:/ipfs/QmSyqjksXxmm2mCG6qRd1yuwLykypkSVBbnBnGqJRcuJMi\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x37bb49513c49c87c4642a891b13b63571bc87013dde806617aa1efb54605f386\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b3036b3a83b7c48f96641f2a9002b9f2dcb6a5958dd670894ada21ae8229b3d0\",\"dweb:/ipfs/QmUNfSBdoVtjhETaUJCYcaC7pTMgbhht926tJ2uXJbiVd3\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0xaf28a975a78550e45f65e559a3ad6a5ad43b9b8a37366999abd1b7084eb70721\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b7bd24e224f67f65bfadf85dc2929fa965456bb2415478bd0125471b5ce35245\",\"dweb:/ipfs/QmRaydGr8BTHs1kvaZfsNU69pKzUAGFrvABn1KiRSbE51y\"]},\"lib/openzeppelin-contracts/contracts/utils/ShortStrings.sol\":{\"keccak256\":\"0x18a7171df639a934592915a520ecb97c5bbc9675a1105607aac8a94e72bf62c6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7478e1f13da69a2867ccd883001d836b75620362e743f196376d63ed0c422a1c\",\"dweb:/ipfs/QmWywcQ9TNfwtoqAxbn25d8C5VrV12PrPS9UjtGe6pL2BA\"]},\"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0x32ba59b4b7299237c8ba56319110989d7978a039faf754793064e967e5894418\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1ae50c8b562427df610cc4540c9bf104acca7ef8e2dcae567ae7e52272281e9c\",\"dweb:/ipfs/QmTHiadFCSJUPpRjNegc5SahmeU8bAoY8i9Aq6tVscbcKR\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0x55f102ea785d8399c0e58d1108e2d289506dde18abc6db1b7f68c1f9f9bc5792\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e52e0a7765c943ef14e5bcf11e46e6139fa044be564881378349236bf2e3453\",\"dweb:/ipfs/QmZEeeXoFPW47amyP35gfzomF9DixqqTEPwzBakv6cZw6i\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0xeed0a08b0b091f528356cbc7245891a4c748682d4f6a18055e8e6ca77d12a6cf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba80ba06c8e6be852847e4c5f4492cef801feb6558ae09ed705ff2e04ea8b13c\",\"dweb:/ipfs/QmXRJDv3xHLVQCVXg1ZvR35QS9sij5y9NDWYzMfUfAdTHF\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/EIP712.sol\":{\"keccak256\":\"0x999f705a027ed6dc2d4e0df2cc4a509852c6bfd11de1c8161bf88832d0503fd0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0798def67258d9a3cc20b2b4da7ebf351a5cefe0abfdd665d2d81f8e32f89b21\",\"dweb:/ipfs/QmPEvJosnPfzHNjKvCv2D3891mA2Ww8eUwkqrxBjuYdHCt\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol\":{\"keccak256\":\"0xba333517a3add42cd35fe877656fc3dfcc9de53baa4f3aabbd6d12a92e4ea435\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2ceacff44c0fdc81e48e0e0b1db87a2076d3c1fb497341de077bf1da9f6b406c\",\"dweb:/ipfs/QmRUo1muMRAewxrKQ7TkXUtknyRoR57AyEkoPpiuZQ8FzX\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/SignatureChecker.sol\":{\"keccak256\":\"0x6b11eb41a228cca35d4b662b4df69fcd75192851365102690f57b2ac01e83fe6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ab006a2983ed350d2af21ddcdd835dcae3b8340086cc4d088460da5abd041f69\",\"dweb:/ipfs/QmbEacDhkJZiGrgzLjB4pNtE8Z1uudjDw1DvcDUTVQFsLG\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875\",\"dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0xe19a4d5f31d2861e7344e8e535e2feafb913d806d3e2b5fe7782741a2a7094fe\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4aed79c0fa6f0546ed02f2f683e8f77f0fd2ed7eb34d8bbf3d373c9a6d95b13c\",\"dweb:/ipfs/QmWqVz6UAVqmnWU5pqYPt1o6iDEZyPaBraAA3rKfTTSfYj\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x5f7e4076e175393767754387c962926577f1660dd9b810187b9002407656be72\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7d533a1c97cd43a57cd9c465f7ee8dd0e39ae93a8fb8ff8e5303a356b081cdcc\",\"dweb:/ipfs/QmVBEei6aTnvYNZp2CHYVNKyZS4q1KkjANfY39WVXZXVoT\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/Checkpoints.sol\":{\"keccak256\":\"0xbdc5e074d7dd6678f67e92b1a51a20226801a407b0e1af3da367c5d1ff4519ad\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a36cca6b22fff3db16fc789ff6c60eea71d4b156065d4d0c83a0bc5e91a77a8b\",\"dweb:/ipfs/QmYN3exd5AemxjBrN8XMB1p5LbbE16uC3sjbYjwi8AjcGR\"]},\"lib/openzeppelin-contracts/contracts/utils/types/Time.sol\":{\"keccak256\":\"0xc7755af115020049e4140f224f9ee88d7e1799ffb0646f37bf0df24bf6213f58\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7f09bf94d5274334ec021f61a04659db303f31e60460e14b709c9bf187740111\",\"dweb:/ipfs/QmNvgomZYUwFAt4cZbPWAiTeSZQreGehY9BK5xyVJsUttb\"]},\"src/contracts/common/Entity.sol\":{\"keccak256\":\"0x3d61a932995b8443381f3950542d388223a2c26dd5d29a3274dea3baa7388bd7\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://7cdf5f03ca72fd263fd32ff59c8d88ddca911ae83896a287d10772c1bbe9b138\",\"dweb:/ipfs/QmbP84r5BWT1Rn9AYTntWSf3xUMTTCohTZJFhbBhDXFoHa\"]},\"src/contracts/common/MigratableEntity.sol\":{\"keccak256\":\"0x2d736f4dacd5d7e7697503bc426c78b8250fe1694ca157965ec178da6807de58\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://f1237acf96b4b9f9b69156e068eddd726a6e15bd8e87a18dc999cd4ba4da069c\",\"dweb:/ipfs/QmS6M8fiFFSeuJ4ZKKq1z8W7w4ybeHQSy5TLASGoc1LVic\"]},\"src/contracts/common/StaticDelegateCallable.sol\":{\"keccak256\":\"0x350029aa8955eacaffffaeb58babc5c98e80ebc5c5db388ed17ee6465f4a9d90\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://eb392a8ee9050e0af606897df63e3404e3829e8b688b580663892f9664195764\",\"dweb:/ipfs/QmaXC8jqV8UrrAFkzXTEv2fJF56sy33HhLxAzaRZmUxuXD\"]},\"src/contracts/delegator/BaseDelegator.sol\":{\"keccak256\":\"0x7c54d491fdd4415b764a9c8defa068e56d4c0c8c9419be0053a1d377669290e8\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://9238bfbad0f6eeb0dc7727724de14380f1980b395902269703d5e2ef07e52e10\",\"dweb:/ipfs/QmPJn1V4HNXcEghYvogGuSTF24dSQUPosR5qtsXcmNqRm3\"]},\"src/contracts/delegator/FullRestakeDelegator.sol\":{\"keccak256\":\"0x0a81c4f8e72914563a9cb771e93acf889c71ea36b7bec040e4eb562b199d5af1\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://6fc66b6ba02da77046a0bbbd1dd407a62c08f52e04486c9cbd2cb1cca3da555f\",\"dweb:/ipfs/QmZQivK1ZnMxfRQQ5aLpV9co5u55wQVNev5Rg1hzAqxhkE\"]},\"src/contracts/delegator/NetworkRestakeDelegator.sol\":{\"keccak256\":\"0xd3a8e6522f9c6fdcc2da837c9023afd6bdff2bce45a35590320c475519e3636d\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://58b17a87f6554f08376f9ea7fedf486a4aa75801bf0ad8b23ff5a46959b6b7a3\",\"dweb:/ipfs/QmSTmNh67tYt8CmjVZb57r8N3qX5yeYdMApKPJm3qvQgQw\"]},\"src/contracts/delegator/OperatorNetworkSpecificDelegator.sol\":{\"keccak256\":\"0x031a10722b9ec49048f0952710401131290adb87e71caf294e864e7ac3b98a16\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://72428febc875134b2f29205e6f294634a1c22a7d5c78d6a9cb2f8196f107c9b5\",\"dweb:/ipfs/QmTPwXR6h5oytckmkLrHdKeEMdphJxceDhYUR4zvQeWAwY\"]},\"src/contracts/delegator/OperatorSpecificDelegator.sol\":{\"keccak256\":\"0x630ce62fa30b9f3349ab7a8cf8dbf041319febc6dd757be2f94d3d25944ed328\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://c2ac59d47ce57d2a6819ae9833e1a618a371eccff93eb5ab367b201b01f42bfa\",\"dweb:/ipfs/QmdBpGMBivpNPv2WbH8vnCUy5xkVeaxQvGgqi33vKCz1kA\"]},\"src/contracts/hints/DelegatorHints.sol\":{\"keccak256\":\"0x44aa0c396311a54afbc7c73e8dadeed41e3165a4fd13f712b27d63d50fc3376d\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://2f255214f3531fc707d88be0d56a7a0aed4180439316d099d760d9118aa83093\",\"dweb:/ipfs/QmZD1w5p1ukJSXumUAjvxwGmkPhn7vsr21Y2atLGEZR2oi\"]},\"src/contracts/hints/Hints.sol\":{\"keccak256\":\"0x8b565df1ae35993c097a9e642002782a8f451f6fd01809cad6bcd345bdf1b99c\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://99a19adb01e350a92f534095b3078229df1f2f83077992d75d58d8684be45971\",\"dweb:/ipfs/QmbmwcuswVbzvwHQFTtrJG86oV98GnfxqYTb8cV8u1acox\"]},\"src/contracts/hints/OptInServiceHints.sol\":{\"keccak256\":\"0x95d9407900d27b9f4a1233b772aeed809c07b2dc5b31cfc9fa77ca26514c49e5\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://a13a8877e312d7e6b8b85bde3668c5d84ff5ecc83f762cd573f2b7104c64eb42\",\"dweb:/ipfs/QmYV2J55acuGzCNnS3juABuUHY5U1xc8g8o9jwEyFFdeG5\"]},\"src/contracts/hints/VaultHints.sol\":{\"keccak256\":\"0xccb505b7159b769cc114d67b87c2de6b106557f667fc8f3780114baad5c3c442\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://6d0c80a908fc16e96a8b5605a0bd53f9e89ad0ef0a738fbbae80ba4d3160749b\",\"dweb:/ipfs/QmXo5UtWoR8YmunqcbBU8rQMm1nvmvjNPoXcVrDhh4pEwR\"]},\"src/contracts/libraries/Checkpoints.sol\":{\"keccak256\":\"0xba90097c8bfe0a975499428b5f8ac5569483c7d92ccc28c12d70de416aae040c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://12f5d93ca94cd06d3147db68993165a58e17903ed53682560de61f3085ad4609\",\"dweb:/ipfs/QmePiuAqvXprMLmFZkGZeGjvGPAvsEDHfCDv7BoQhXu9xE\"]},\"src/contracts/libraries/ERC4626Math.sol\":{\"keccak256\":\"0x8441160513c1cbeb1c3b9ee077bcc7e7ce20006b52a77c8dd39ff0ef89699939\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://943f8cc3e26ddf649f465f40c909819f5c864717c4baa339e9e403b9374a4653\",\"dweb:/ipfs/QmXPxi1sUDsrGprZdUgCzoPEosaZMv9ZhygWQ1vAi1phAB\"]},\"src/contracts/libraries/Subnetwork.sol\":{\"keccak256\":\"0xf5ef5506fd66082b3c2e7f3df37529f5a8efad32ac62e7c8914bd63219190bfe\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba031a54ee0d0e9a270c2b9e18437f5668cfeb659cfd5fe0677459d7fcac2a56\",\"dweb:/ipfs/QmReP3H7qQ78tAfgLnJKsNEQNCQfF1X1Get38Ffd4kzq32\"]},\"src/contracts/service/OptInService.sol\":{\"keccak256\":\"0x4e0932077f2686b7990e10d59deb2535334c0d09e52ef6e57c6ab09eca21c4b1\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://7c00d311032ed4a1743aca7475f3c86ce15cdfc2218108efc3731c03d34a5278\",\"dweb:/ipfs/QmUGGfVwVhaHr5kS4177yKKYiLYzi5qZpkEmvYxBZqazxf\"]},\"src/contracts/vault/Vault.sol\":{\"keccak256\":\"0x2ceff6ed3298c4cad144c99fcc79b51cb9397d6ebef00285b915848b476f8c2e\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://11f2fb3581854f3ab6e82e8d4935d9eb510c903a13c3f022346c2956a58f5307\",\"dweb:/ipfs/QmdUnoXoyYoG9SGWyQZCFyLDRUUX3eXyXetkRvw6jxqqBz\"]},\"src/contracts/vault/VaultStorage.sol\":{\"keccak256\":\"0x57db25b127d77ea3472de53e3a4af3354399655b9268638b99ca5925fa364a56\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://aa763d9a6ec508ae3abfb8228b72b9fd9525279e5135d4962e79ff059feb1173\",\"dweb:/ipfs/QmcbDR6E9wyEpu6V2FkEC4hnWy47zXA9LSKJde6zSGd33Q\"]},\"src/interfaces/common/IEntity.sol\":{\"keccak256\":\"0x8ef4b63d6da63489778ccd5f8d13ebdd527dd4b62730b2c616df5af7474d2d21\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a8d69576a9219d85c50816a18ad53a4d53cfcb27ed38b8cccc808dc2734b71b\",\"dweb:/ipfs/QmYVN3P4Q4REvBWJ97TbAcaxm3uyB2anV6NSGa6ZtSwcEv\"]},\"src/interfaces/common/IMigratableEntity.sol\":{\"keccak256\":\"0x8f5f2809f3afbe8ebfbb365dd7b57b4dd3b6f9943a6187eaf648d45895b8e3c4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ffe640537d539e7a4fde70d30d3e4c57f4ba9c2c25c450cea713aae38e8fd5c\",\"dweb:/ipfs/QmSUTGzvdcn1R1KB7tLThMRtESsfPbeXDhhhKWGtntzBds\"]},\"src/interfaces/common/IRegistry.sol\":{\"keccak256\":\"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014\",\"dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK\"]},\"src/interfaces/common/IStaticDelegateCallable.sol\":{\"keccak256\":\"0xa335d4e81b9071b7de66ef92b43ff20671d86516eb1be46fef29a3483cd3f5d5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d464b9db863c14c05547d2b23352f2e9b7b784799cf09f6bbc4906a2a74e3516\",\"dweb:/ipfs/QmUVWzFvJz7eEbDQKiFTTzwi7TEbjcs3VmwdM4kuptAKvi\"]},\"src/interfaces/delegator/IBaseDelegator.sol\":{\"keccak256\":\"0x96bb312f032e17accce3f8f80936d99468029d6b37c9ca74acdb4b026a0148ee\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2a66dcb5b7d1a6ef6a363431ea98ebd78bc4fdd3d7a134d9b542dc66e7d025c2\",\"dweb:/ipfs/QmRhTPLd2ZAyRHmJUFUcWKs9b3if49QY17LYZuRqWmghw8\"]},\"src/interfaces/delegator/IDelegatorHook.sol\":{\"keccak256\":\"0xc51aa8d7d1f6c8043ee819b7aeb86da0e993912e1442098df897e299f01f9f46\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://adddf5cb2ba282aeb576b26efb28640f865a1721cc9b6eee8b3ee0457a2c9780\",\"dweb:/ipfs/QmNYgAmnLRwWZbhTuQhZs9rx4zcme1df5mEepkrniorSoW\"]},\"src/interfaces/delegator/IFullRestakeDelegator.sol\":{\"keccak256\":\"0xa3c8cb2e45d4d8ce90e95263bea40c01dc400f05ad65bc29597d878606be5e7d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://782cf5e201aa4cca037ebafd3807a68ff1cc721d5b8416a35244db0d0607369e\",\"dweb:/ipfs/QmQkJks6x7CKndeTPa9LxgTNygD5uEi7obhADhpq1Lsr9A\"]},\"src/interfaces/delegator/INetworkRestakeDelegator.sol\":{\"keccak256\":\"0xe7030fe30389a147fd710e3436ec346b4842695fd3e65a81b95375c9f1d633fc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://739c7e66d301778054f5c90bee45ec9438f68afba8a03eaaac52064c73b115ad\",\"dweb:/ipfs/QmfZ2ytKcTykAc76nxhg8ikUXV8NdBpetqb8W4YWPcox1Z\"]},\"src/interfaces/delegator/IOperatorNetworkSpecificDelegator.sol\":{\"keccak256\":\"0x74b95e64d29769202d45dd277bb830f623ff3d41ce77b80ce3ee4e318a5c71ec\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e512b903aae5c1b8a028c6e3f4f6223b5cb5d704503cfa6bd37b5346868f5c20\",\"dweb:/ipfs/QmZim9YExsPWtyxyeui993HTKAEmrg8MUcSkZ77Gp2JcuZ\"]},\"src/interfaces/delegator/IOperatorSpecificDelegator.sol\":{\"keccak256\":\"0x72075cab585dc17240cc3e32bc99b92f0d5627ddd988fed680e3e1a52d5a01e4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7448bc90699409ae61d85216b5efc2143a37f0f73354be2aea993bc54afca441\",\"dweb:/ipfs/QmXE4gAxM8pHosZK8mcTcj17puBx484meDCcmrDePskGHZ\"]},\"src/interfaces/service/IOptInService.sol\":{\"keccak256\":\"0x76fb5460a6d87a5705433d4fbeff7253cd75b8bbd0c888b2088f16e86ace146a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://990322019b3d11465f7024bae77ccbf7e2fe5d6fa3c754584778f37d04fa1337\",\"dweb:/ipfs/QmaSNHzcqxTkUCG9a4nqVfLECHLdjdrwAnDi3yDC7tDL24\"]},\"src/interfaces/slasher/IBaseSlasher.sol\":{\"keccak256\":\"0x7c82528b445659c313ab77335c407b0b6efe5e79027187bb287f7bc74202b404\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0274c90aa5df1aa6bb470a6aab53992fb14fd7e5472c9430416505b29647d9cf\",\"dweb:/ipfs/QmckbmJLDetPemVzCnnGcKYWAZV2BRFXGDsjiaec8jkHxx\"]},\"src/interfaces/vault/IVault.sol\":{\"keccak256\":\"0xffee01d383cd4e1a5530c614bf4360c1ef070c288abec9da1eb531b51bc07235\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://04f0046cac285d8ec44ebbb1f79dc94fab4495767190cad8364fbc1fafaadfb9\",\"dweb:/ipfs/QmUawAunwzXfCyShWfhKeThAgKtqe51hmrxvrXvM772M2R\"]},\"src/interfaces/vault/IVaultStorage.sol\":{\"keccak256\":\"0x592626f13754194f83047135de19229c49390bd59e34659b1bb38be71d973a22\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://06a6a9dfddd05e580b32bebe2cff4f63ba26a653180676d58225dd30d9c89d3e\",\"dweb:/ipfs/QmdgzBeY6Sxo8mGtyBxtv1tM1c2kU6J6zjeRd7vuXm4DU6\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.25+commit.b61c2a91"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"baseDelegatorHints","type":"address"},{"internalType":"address","name":"vaultHints","type":"address"},{"internalType":"address","name":"optInServiceHints","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"AccessControlBadConfirmation"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bytes32","name":"neededRole","type":"bytes32"}],"type":"error","name":"AccessControlUnauthorizedAccount"},{"inputs":[],"type":"error","name":"AlreadySet"},{"inputs":[],"type":"error","name":"CheckpointUnorderedInsertion"},{"inputs":[],"type":"error","name":"ExternalCall"},{"inputs":[],"type":"error","name":"InsufficientHookGas"},{"inputs":[],"type":"error","name":"InvalidInitialization"},{"inputs":[],"type":"error","name":"InvalidNetwork"},{"inputs":[],"type":"error","name":"NotInitialized"},{"inputs":[],"type":"error","name":"NotInitializing"},{"inputs":[],"type":"error","name":"NotNetwork"},{"inputs":[],"type":"error","name":"NotOperator"},{"inputs":[],"type":"error","name":"NotSlasher"},{"inputs":[],"type":"error","name":"NotVault"},{"inputs":[],"type":"error","name":"ReentrancyGuardReentrantCall"},{"inputs":[{"internalType":"uint8","name":"bits","type":"uint8"},{"internalType":"uint256","name":"value","type":"uint256"}],"type":"error","name":"SafeCastOverflowedUintDowncast"},{"inputs":[{"internalType":"uint64","name":"version","type":"uint64","indexed":false}],"type":"event","name":"Initialized","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32","indexed":true},{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false},{"internalType":"uint48","name":"captureTimestamp","type":"uint48","indexed":false}],"type":"event","name":"OnSlash","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"bytes32","name":"previousAdminRole","type":"bytes32","indexed":true},{"internalType":"bytes32","name":"newAdminRole","type":"bytes32","indexed":true}],"type":"event","name":"RoleAdminChanged","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"address","name":"sender","type":"address","indexed":true}],"type":"event","name":"RoleGranted","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"address","name":"sender","type":"address","indexed":true}],"type":"event","name":"RoleRevoked","anonymous":false},{"inputs":[{"internalType":"address","name":"hook","type":"address","indexed":true}],"type":"event","name":"SetHook","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"SetMaxNetworkLimit","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"BASE_DELEGATOR_HINTS","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"DEFAULT_ADMIN_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"FACTORY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"HOOK_GAS_LIMIT","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"HOOK_RESERVE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"HOOK_SET_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"NETWORK_REGISTRY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"OPERATOR_NETWORK_OPT_IN_SERVICE","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"OPERATOR_REGISTRY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"OPERATOR_VAULT_OPT_IN_SERVICE","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"OPT_IN_SERVICE_HINTS","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"TYPE","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"VAULT_FACTORY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"VAULT_HINTS","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"VERSION","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getRoleAdmin","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"grantRole"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"hasRole","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"hook","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"}],"stateMutability":"view","type":"function","name":"maxNetworkLimit","outputs":[{"internalType":"uint256","name":"value","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"uint48","name":"timestamp","type":"uint48"},{"internalType":"bytes","name":"hint","type":"bytes"}],"stateMutability":"view","type":"function","name":"maxNetworkLimitAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"delegator","type":"address"},{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"uint48","name":"timestamp","type":"uint48"}],"stateMutability":"view","type":"function","name":"maxNetworkLimitHint","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"uint48","name":"timestamp","type":"uint48"}],"stateMutability":"view","type":"function","name":"maxNetworkLimitHintInternal","outputs":[{"internalType":"bool","name":"exists","type":"bool"},{"internalType":"uint32","name":"hint","type":"uint32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"network","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint48","name":"captureTimestamp","type":"uint48"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"onSlash"},{"inputs":[],"stateMutability":"view","type":"function","name":"operator","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"callerConfirmation","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"renounceRole"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"revokeRole"},{"inputs":[{"internalType":"address","name":"hook_","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setHook"},{"inputs":[{"internalType":"uint96","name":"identifier","type":"uint96"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setMaxNetworkLimit"},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"stake","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint48","name":"timestamp","type":"uint48"},{"internalType":"bytes","name":"hints","type":"bytes"}],"stateMutability":"view","type":"function","name":"stakeAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"delegator","type":"address"},{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint48","name":"timestamp","type":"uint48"}],"stateMutability":"view","type":"function","name":"stakeHints","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"staticDelegateCall"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"vault","outputs":[{"internalType":"address","name":"","type":"address"}]}],"devdoc":{"kind":"dev","methods":{"VERSION()":{"details":"Must return 1 for this one.","returns":{"_0":"version of the delegator"}},"getRoleAdmin(bytes32)":{"details":"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}."},"grantRole(bytes32,address)":{"details":"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event."},"hasRole(bytes32,address)":{"details":"Returns `true` if `account` has been granted `role`."},"initialize(bytes)":{"params":{"data":"some data to use"}},"maxNetworkLimitAt(bytes32,uint48,bytes)":{"params":{"hint":"hint for checkpoint index","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)","timestamp":"time point to get the maximum subnetwork limit at"},"returns":{"_0":"maximum limit of the subnetwork"}},"onSlash(bytes32,address,uint256,uint48,bytes)":{"details":"Only the vault's slasher can call this function.","params":{"amount":"amount of the collateral slashed","captureTimestamp":"time point when the stake was captured","data":"some additional data","operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"}},"renounceRole(bytes32,address)":{"details":"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `callerConfirmation`. May emit a {RoleRevoked} event."},"revokeRole(bytes32,address)":{"details":"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event."},"setHook(address)":{"details":"Only a HOOK_SET_ROLE holder can call this function. The hook can have arbitrary logic under certain functions, however, it doesn't affect the stake guarantees.","params":{"hook":"address of the hook"}},"setMaxNetworkLimit(uint96,uint256)":{"details":"Only a network can call this function.","params":{"amount":"new maximum subnetwork's limit"}},"stake(bytes32,address)":{"details":"Warning: this function is not safe to use for stake capturing, as it can change by the end of the block.","params":{"operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"},"returns":{"_0":"slashable stake until the end of the next epoch"}},"stakeAt(bytes32,address,uint48,bytes)":{"details":"Warning: it is not safe to use timestamp >= current one for the stake capturing, as it can change later.","params":{"hints":"hints for the checkpoints' indexes","operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)","timestamp":"time point to capture the stake at"},"returns":{"_0":"slashable stake at the given timestamp until the end of the consequent epoch"}},"staticDelegateCall(address,bytes)":{"details":"It allows to use this contract's storage on-chain.","params":{"data":"data to make a delegatecall with","target":"address of the contract to make a delegatecall to"}},"supportsInterface(bytes4)":{"details":"See {IERC165-supportsInterface}."}},"version":1},"userdoc":{"kind":"user","methods":{"FACTORY()":{"notice":"Get the factory's address."},"HOOK_GAS_LIMIT()":{"notice":"Get a gas limit for the hook."},"HOOK_RESERVE()":{"notice":"Get a reserve gas between the gas limit check and the hook's execution."},"HOOK_SET_ROLE()":{"notice":"Get a hook setter's role."},"NETWORK_REGISTRY()":{"notice":"Get the network registry's address."},"OPERATOR_NETWORK_OPT_IN_SERVICE()":{"notice":"Get the operator-network opt-in service's address."},"OPERATOR_REGISTRY()":{"notice":"Get the operator registry's address."},"OPERATOR_VAULT_OPT_IN_SERVICE()":{"notice":"Get the operator-vault opt-in service's address."},"TYPE()":{"notice":"Get the entity's type."},"VAULT_FACTORY()":{"notice":"Get the vault factory's address."},"VERSION()":{"notice":"Get a version of the delegator (different versions mean different interfaces)."},"hook()":{"notice":"Get the hook's address."},"initialize(bytes)":{"notice":"Initialize this entity contract by using a given data."},"maxNetworkLimit(bytes32)":{"notice":"Get a particular subnetwork's maximum limit (meaning the subnetwork is not ready to get more as a stake)."},"maxNetworkLimitAt(bytes32,uint48,bytes)":{"notice":"Get a particular subnetwork's maximum limit at a given timestamp using a hint (meaning the subnetwork is not ready to get more as a stake)."},"network()":{"notice":"Get a network the vault delegates funds to."},"onSlash(bytes32,address,uint256,uint48,bytes)":{"notice":"Called when a slash happens."},"operator()":{"notice":"Get an operator managing the vault's funds."},"setHook(address)":{"notice":"Set a new hook."},"setMaxNetworkLimit(uint96,uint256)":{"notice":"Set a maximum limit for a subnetwork (how much stake the subnetwork is ready to get). identifier identifier of the subnetwork"},"stake(bytes32,address)":{"notice":"Get a stake that a given subnetwork will be able to slash for a certain operator until the end of the next epoch (if no cross-slashing and no slashings by the subnetwork)."},"stakeAt(bytes32,address,uint48,bytes)":{"notice":"Get a stake that a given subnetwork could be able to slash for a certain operator at a given timestamp until the end of the consequent epoch using hints (if no cross-slashing and no slashings by the subnetwork)."},"staticDelegateCall(address,bytes)":{"notice":"Make a delegatecall from this contract to a given target contract with a particular data (always reverts with a return data)."},"vault()":{"notice":"Get the vault's address."}},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/contracts/hints/DelegatorHints.sol":"OperatorNetworkSpecificDelegatorHints"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol":{"keccak256":"0x6662ec4e5cefca03eeadd073e9469df8d2944bb2ee8ec8f7622c2c46aab5f225","urls":["bzz-raw://4d8544c6f8daa4d1bc215c6a72fe0acdb748664a105b0e5efc19295667521d45","dweb:/ipfs/QmdGWqdnXT8S3RgCR6aV8XHZrsybieMQLLnug1NtpSjEXN"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol":{"keccak256":"0xc163fcf9bb10138631a9ba5564df1fa25db9adff73bd9ee868a8ae1858fe093a","urls":["bzz-raw://9706d43a0124053d9880f6e31a59f31bc0a6a3dc1acd66ce0a16e1111658c5f6","dweb:/ipfs/QmUFmfowzkRwGtDu36cXV9SPTBHJ3n7dG9xQiK5B28jTf2"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b","urls":["bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609","dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol":{"keccak256":"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397","urls":["bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9","dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardUpgradeable.sol":{"keccak256":"0xb44e086e941292cdc7f440de51478493894ef0b1aeccb0c4047445919f667f74","urls":["bzz-raw://942dad22fbdc1669f025540ba63aa3ccfad5f8458fc5d4525b31ebf272e7af45","dweb:/ipfs/Qmdo4X2M82aM3AMoW2kf2jhYkSCyC4T1pHNd6obdsDFnAB"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol":{"keccak256":"0xdaba3f7c42c55b2896353f32bd27d4d5f8bae741b3b05d4c53f67abc4dc47ce8","urls":["bzz-raw://1fa2e61141c602510bcd2cd936ed9561922ac8772a9b9c9a9db091a74e354a45","dweb:/ipfs/QmcHQDDoEBwJmwUbzoVkytvJsBx3KVHYFFnDkvRGWh9Wmh"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol":{"keccak256":"0xb6b36edd6a2999fd243ff226d6cbf84bd71af2432bbd0dfe19392996a1d9cb41","urls":["bzz-raw://1fd2f35495652e57e3f99bc6c510bc5f7dd398a176ea2e72d8ed730aebc6ca26","dweb:/ipfs/QmTQV6X4gkikTib49cho5iDX3JvSQbdsoEChoDwrk3CbbH"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC1271.sol":{"keccak256":"0x85a45f3f10014a0f8be41157a32b6a5f905753ea64a4b64e29fc12b7deeecf39","urls":["bzz-raw://c3c74009ce36136b36c77c23935b8e4a7b4f253be2da2be4fb4a916b1ce43743","dweb:/ipfs/QmcH36v3iN7SJJuF73AunLR2LtNxhVJ1wm63ph4dPZ4pcL"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC5267.sol":{"keccak256":"0x92aa1df62dc3d33f1656d63bede0923e0df0b706ad4137c8b10b0a8fe549fd92","urls":["bzz-raw://c5c0f29195ad64cbe556da8e257dac8f05f78c53f90323c0d2accf8e6922d33a","dweb:/ipfs/QmQ61TED8uaCZwcbh8KkgRSsCav7x7HbcGHwHts3U4DmUP"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70","urls":["bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c","dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol":{"keccak256":"0x6008dabfe393240d73d7dd7688033f72740d570aa422254d29a7dce8568f3aff","urls":["bzz-raw://f5196ec75139918c6c7bb4251b36395e668f1fa6d206beba7e7520e74913940d","dweb:/ipfs/QmSyqjksXxmm2mCG6qRd1yuwLykypkSVBbnBnGqJRcuJMi"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0x37bb49513c49c87c4642a891b13b63571bc87013dde806617aa1efb54605f386","urls":["bzz-raw://b3036b3a83b7c48f96641f2a9002b9f2dcb6a5958dd670894ada21ae8229b3d0","dweb:/ipfs/QmUNfSBdoVtjhETaUJCYcaC7pTMgbhht926tJ2uXJbiVd3"],"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/ShortStrings.sol":{"keccak256":"0x18a7171df639a934592915a520ecb97c5bbc9675a1105607aac8a94e72bf62c6","urls":["bzz-raw://7478e1f13da69a2867ccd883001d836b75620362e743f196376d63ed0c422a1c","dweb:/ipfs/QmWywcQ9TNfwtoqAxbn25d8C5VrV12PrPS9UjtGe6pL2BA"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol":{"keccak256":"0x32ba59b4b7299237c8ba56319110989d7978a039faf754793064e967e5894418","urls":["bzz-raw://1ae50c8b562427df610cc4540c9bf104acca7ef8e2dcae567ae7e52272281e9c","dweb:/ipfs/QmTHiadFCSJUPpRjNegc5SahmeU8bAoY8i9Aq6tVscbcKR"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0x55f102ea785d8399c0e58d1108e2d289506dde18abc6db1b7f68c1f9f9bc5792","urls":["bzz-raw://6e52e0a7765c943ef14e5bcf11e46e6139fa044be564881378349236bf2e3453","dweb:/ipfs/QmZEeeXoFPW47amyP35gfzomF9DixqqTEPwzBakv6cZw6i"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol":{"keccak256":"0xeed0a08b0b091f528356cbc7245891a4c748682d4f6a18055e8e6ca77d12a6cf","urls":["bzz-raw://ba80ba06c8e6be852847e4c5f4492cef801feb6558ae09ed705ff2e04ea8b13c","dweb:/ipfs/QmXRJDv3xHLVQCVXg1ZvR35QS9sij5y9NDWYzMfUfAdTHF"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/EIP712.sol":{"keccak256":"0x999f705a027ed6dc2d4e0df2cc4a509852c6bfd11de1c8161bf88832d0503fd0","urls":["bzz-raw://0798def67258d9a3cc20b2b4da7ebf351a5cefe0abfdd665d2d81f8e32f89b21","dweb:/ipfs/QmPEvJosnPfzHNjKvCv2D3891mA2Ww8eUwkqrxBjuYdHCt"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol":{"keccak256":"0xba333517a3add42cd35fe877656fc3dfcc9de53baa4f3aabbd6d12a92e4ea435","urls":["bzz-raw://2ceacff44c0fdc81e48e0e0b1db87a2076d3c1fb497341de077bf1da9f6b406c","dweb:/ipfs/QmRUo1muMRAewxrKQ7TkXUtknyRoR57AyEkoPpiuZQ8FzX"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/SignatureChecker.sol":{"keccak256":"0x6b11eb41a228cca35d4b662b4df69fcd75192851365102690f57b2ac01e83fe6","urls":["bzz-raw://ab006a2983ed350d2af21ddcdd835dcae3b8340086cc4d088460da5abd041f69","dweb:/ipfs/QmbEacDhkJZiGrgzLjB4pNtE8Z1uudjDw1DvcDUTVQFsLG"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b","urls":["bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df","dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d","urls":["bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875","dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol":{"keccak256":"0xe19a4d5f31d2861e7344e8e535e2feafb913d806d3e2b5fe7782741a2a7094fe","urls":["bzz-raw://4aed79c0fa6f0546ed02f2f683e8f77f0fd2ed7eb34d8bbf3d373c9a6d95b13c","dweb:/ipfs/QmWqVz6UAVqmnWU5pqYPt1o6iDEZyPaBraAA3rKfTTSfYj"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0x5f7e4076e175393767754387c962926577f1660dd9b810187b9002407656be72","urls":["bzz-raw://7d533a1c97cd43a57cd9c465f7ee8dd0e39ae93a8fb8ff8e5303a356b081cdcc","dweb:/ipfs/QmVBEei6aTnvYNZp2CHYVNKyZS4q1KkjANfY39WVXZXVoT"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/Checkpoints.sol":{"keccak256":"0xbdc5e074d7dd6678f67e92b1a51a20226801a407b0e1af3da367c5d1ff4519ad","urls":["bzz-raw://a36cca6b22fff3db16fc789ff6c60eea71d4b156065d4d0c83a0bc5e91a77a8b","dweb:/ipfs/QmYN3exd5AemxjBrN8XMB1p5LbbE16uC3sjbYjwi8AjcGR"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/types/Time.sol":{"keccak256":"0xc7755af115020049e4140f224f9ee88d7e1799ffb0646f37bf0df24bf6213f58","urls":["bzz-raw://7f09bf94d5274334ec021f61a04659db303f31e60460e14b709c9bf187740111","dweb:/ipfs/QmNvgomZYUwFAt4cZbPWAiTeSZQreGehY9BK5xyVJsUttb"],"license":"MIT"},"src/contracts/common/Entity.sol":{"keccak256":"0x3d61a932995b8443381f3950542d388223a2c26dd5d29a3274dea3baa7388bd7","urls":["bzz-raw://7cdf5f03ca72fd263fd32ff59c8d88ddca911ae83896a287d10772c1bbe9b138","dweb:/ipfs/QmbP84r5BWT1Rn9AYTntWSf3xUMTTCohTZJFhbBhDXFoHa"],"license":"BUSL-1.1"},"src/contracts/common/MigratableEntity.sol":{"keccak256":"0x2d736f4dacd5d7e7697503bc426c78b8250fe1694ca157965ec178da6807de58","urls":["bzz-raw://f1237acf96b4b9f9b69156e068eddd726a6e15bd8e87a18dc999cd4ba4da069c","dweb:/ipfs/QmS6M8fiFFSeuJ4ZKKq1z8W7w4ybeHQSy5TLASGoc1LVic"],"license":"BUSL-1.1"},"src/contracts/common/StaticDelegateCallable.sol":{"keccak256":"0x350029aa8955eacaffffaeb58babc5c98e80ebc5c5db388ed17ee6465f4a9d90","urls":["bzz-raw://eb392a8ee9050e0af606897df63e3404e3829e8b688b580663892f9664195764","dweb:/ipfs/QmaXC8jqV8UrrAFkzXTEv2fJF56sy33HhLxAzaRZmUxuXD"],"license":"BUSL-1.1"},"src/contracts/delegator/BaseDelegator.sol":{"keccak256":"0x7c54d491fdd4415b764a9c8defa068e56d4c0c8c9419be0053a1d377669290e8","urls":["bzz-raw://9238bfbad0f6eeb0dc7727724de14380f1980b395902269703d5e2ef07e52e10","dweb:/ipfs/QmPJn1V4HNXcEghYvogGuSTF24dSQUPosR5qtsXcmNqRm3"],"license":"BUSL-1.1"},"src/contracts/delegator/FullRestakeDelegator.sol":{"keccak256":"0x0a81c4f8e72914563a9cb771e93acf889c71ea36b7bec040e4eb562b199d5af1","urls":["bzz-raw://6fc66b6ba02da77046a0bbbd1dd407a62c08f52e04486c9cbd2cb1cca3da555f","dweb:/ipfs/QmZQivK1ZnMxfRQQ5aLpV9co5u55wQVNev5Rg1hzAqxhkE"],"license":"BUSL-1.1"},"src/contracts/delegator/NetworkRestakeDelegator.sol":{"keccak256":"0xd3a8e6522f9c6fdcc2da837c9023afd6bdff2bce45a35590320c475519e3636d","urls":["bzz-raw://58b17a87f6554f08376f9ea7fedf486a4aa75801bf0ad8b23ff5a46959b6b7a3","dweb:/ipfs/QmSTmNh67tYt8CmjVZb57r8N3qX5yeYdMApKPJm3qvQgQw"],"license":"BUSL-1.1"},"src/contracts/delegator/OperatorNetworkSpecificDelegator.sol":{"keccak256":"0x031a10722b9ec49048f0952710401131290adb87e71caf294e864e7ac3b98a16","urls":["bzz-raw://72428febc875134b2f29205e6f294634a1c22a7d5c78d6a9cb2f8196f107c9b5","dweb:/ipfs/QmTPwXR6h5oytckmkLrHdKeEMdphJxceDhYUR4zvQeWAwY"],"license":"BUSL-1.1"},"src/contracts/delegator/OperatorSpecificDelegator.sol":{"keccak256":"0x630ce62fa30b9f3349ab7a8cf8dbf041319febc6dd757be2f94d3d25944ed328","urls":["bzz-raw://c2ac59d47ce57d2a6819ae9833e1a618a371eccff93eb5ab367b201b01f42bfa","dweb:/ipfs/QmdBpGMBivpNPv2WbH8vnCUy5xkVeaxQvGgqi33vKCz1kA"],"license":"BUSL-1.1"},"src/contracts/hints/DelegatorHints.sol":{"keccak256":"0x44aa0c396311a54afbc7c73e8dadeed41e3165a4fd13f712b27d63d50fc3376d","urls":["bzz-raw://2f255214f3531fc707d88be0d56a7a0aed4180439316d099d760d9118aa83093","dweb:/ipfs/QmZD1w5p1ukJSXumUAjvxwGmkPhn7vsr21Y2atLGEZR2oi"],"license":"BUSL-1.1"},"src/contracts/hints/Hints.sol":{"keccak256":"0x8b565df1ae35993c097a9e642002782a8f451f6fd01809cad6bcd345bdf1b99c","urls":["bzz-raw://99a19adb01e350a92f534095b3078229df1f2f83077992d75d58d8684be45971","dweb:/ipfs/QmbmwcuswVbzvwHQFTtrJG86oV98GnfxqYTb8cV8u1acox"],"license":"BUSL-1.1"},"src/contracts/hints/OptInServiceHints.sol":{"keccak256":"0x95d9407900d27b9f4a1233b772aeed809c07b2dc5b31cfc9fa77ca26514c49e5","urls":["bzz-raw://a13a8877e312d7e6b8b85bde3668c5d84ff5ecc83f762cd573f2b7104c64eb42","dweb:/ipfs/QmYV2J55acuGzCNnS3juABuUHY5U1xc8g8o9jwEyFFdeG5"],"license":"BUSL-1.1"},"src/contracts/hints/VaultHints.sol":{"keccak256":"0xccb505b7159b769cc114d67b87c2de6b106557f667fc8f3780114baad5c3c442","urls":["bzz-raw://6d0c80a908fc16e96a8b5605a0bd53f9e89ad0ef0a738fbbae80ba4d3160749b","dweb:/ipfs/QmXo5UtWoR8YmunqcbBU8rQMm1nvmvjNPoXcVrDhh4pEwR"],"license":"BUSL-1.1"},"src/contracts/libraries/Checkpoints.sol":{"keccak256":"0xba90097c8bfe0a975499428b5f8ac5569483c7d92ccc28c12d70de416aae040c","urls":["bzz-raw://12f5d93ca94cd06d3147db68993165a58e17903ed53682560de61f3085ad4609","dweb:/ipfs/QmePiuAqvXprMLmFZkGZeGjvGPAvsEDHfCDv7BoQhXu9xE"],"license":"MIT"},"src/contracts/libraries/ERC4626Math.sol":{"keccak256":"0x8441160513c1cbeb1c3b9ee077bcc7e7ce20006b52a77c8dd39ff0ef89699939","urls":["bzz-raw://943f8cc3e26ddf649f465f40c909819f5c864717c4baa339e9e403b9374a4653","dweb:/ipfs/QmXPxi1sUDsrGprZdUgCzoPEosaZMv9ZhygWQ1vAi1phAB"],"license":"MIT"},"src/contracts/libraries/Subnetwork.sol":{"keccak256":"0xf5ef5506fd66082b3c2e7f3df37529f5a8efad32ac62e7c8914bd63219190bfe","urls":["bzz-raw://ba031a54ee0d0e9a270c2b9e18437f5668cfeb659cfd5fe0677459d7fcac2a56","dweb:/ipfs/QmReP3H7qQ78tAfgLnJKsNEQNCQfF1X1Get38Ffd4kzq32"],"license":"MIT"},"src/contracts/service/OptInService.sol":{"keccak256":"0x4e0932077f2686b7990e10d59deb2535334c0d09e52ef6e57c6ab09eca21c4b1","urls":["bzz-raw://7c00d311032ed4a1743aca7475f3c86ce15cdfc2218108efc3731c03d34a5278","dweb:/ipfs/QmUGGfVwVhaHr5kS4177yKKYiLYzi5qZpkEmvYxBZqazxf"],"license":"BUSL-1.1"},"src/contracts/vault/Vault.sol":{"keccak256":"0x2ceff6ed3298c4cad144c99fcc79b51cb9397d6ebef00285b915848b476f8c2e","urls":["bzz-raw://11f2fb3581854f3ab6e82e8d4935d9eb510c903a13c3f022346c2956a58f5307","dweb:/ipfs/QmdUnoXoyYoG9SGWyQZCFyLDRUUX3eXyXetkRvw6jxqqBz"],"license":"BUSL-1.1"},"src/contracts/vault/VaultStorage.sol":{"keccak256":"0x57db25b127d77ea3472de53e3a4af3354399655b9268638b99ca5925fa364a56","urls":["bzz-raw://aa763d9a6ec508ae3abfb8228b72b9fd9525279e5135d4962e79ff059feb1173","dweb:/ipfs/QmcbDR6E9wyEpu6V2FkEC4hnWy47zXA9LSKJde6zSGd33Q"],"license":"BUSL-1.1"},"src/interfaces/common/IEntity.sol":{"keccak256":"0x8ef4b63d6da63489778ccd5f8d13ebdd527dd4b62730b2c616df5af7474d2d21","urls":["bzz-raw://5a8d69576a9219d85c50816a18ad53a4d53cfcb27ed38b8cccc808dc2734b71b","dweb:/ipfs/QmYVN3P4Q4REvBWJ97TbAcaxm3uyB2anV6NSGa6ZtSwcEv"],"license":"MIT"},"src/interfaces/common/IMigratableEntity.sol":{"keccak256":"0x8f5f2809f3afbe8ebfbb365dd7b57b4dd3b6f9943a6187eaf648d45895b8e3c4","urls":["bzz-raw://0ffe640537d539e7a4fde70d30d3e4c57f4ba9c2c25c450cea713aae38e8fd5c","dweb:/ipfs/QmSUTGzvdcn1R1KB7tLThMRtESsfPbeXDhhhKWGtntzBds"],"license":"MIT"},"src/interfaces/common/IRegistry.sol":{"keccak256":"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb","urls":["bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014","dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK"],"license":"MIT"},"src/interfaces/common/IStaticDelegateCallable.sol":{"keccak256":"0xa335d4e81b9071b7de66ef92b43ff20671d86516eb1be46fef29a3483cd3f5d5","urls":["bzz-raw://d464b9db863c14c05547d2b23352f2e9b7b784799cf09f6bbc4906a2a74e3516","dweb:/ipfs/QmUVWzFvJz7eEbDQKiFTTzwi7TEbjcs3VmwdM4kuptAKvi"],"license":"MIT"},"src/interfaces/delegator/IBaseDelegator.sol":{"keccak256":"0x96bb312f032e17accce3f8f80936d99468029d6b37c9ca74acdb4b026a0148ee","urls":["bzz-raw://2a66dcb5b7d1a6ef6a363431ea98ebd78bc4fdd3d7a134d9b542dc66e7d025c2","dweb:/ipfs/QmRhTPLd2ZAyRHmJUFUcWKs9b3if49QY17LYZuRqWmghw8"],"license":"MIT"},"src/interfaces/delegator/IDelegatorHook.sol":{"keccak256":"0xc51aa8d7d1f6c8043ee819b7aeb86da0e993912e1442098df897e299f01f9f46","urls":["bzz-raw://adddf5cb2ba282aeb576b26efb28640f865a1721cc9b6eee8b3ee0457a2c9780","dweb:/ipfs/QmNYgAmnLRwWZbhTuQhZs9rx4zcme1df5mEepkrniorSoW"],"license":"MIT"},"src/interfaces/delegator/IFullRestakeDelegator.sol":{"keccak256":"0xa3c8cb2e45d4d8ce90e95263bea40c01dc400f05ad65bc29597d878606be5e7d","urls":["bzz-raw://782cf5e201aa4cca037ebafd3807a68ff1cc721d5b8416a35244db0d0607369e","dweb:/ipfs/QmQkJks6x7CKndeTPa9LxgTNygD5uEi7obhADhpq1Lsr9A"],"license":"MIT"},"src/interfaces/delegator/INetworkRestakeDelegator.sol":{"keccak256":"0xe7030fe30389a147fd710e3436ec346b4842695fd3e65a81b95375c9f1d633fc","urls":["bzz-raw://739c7e66d301778054f5c90bee45ec9438f68afba8a03eaaac52064c73b115ad","dweb:/ipfs/QmfZ2ytKcTykAc76nxhg8ikUXV8NdBpetqb8W4YWPcox1Z"],"license":"MIT"},"src/interfaces/delegator/IOperatorNetworkSpecificDelegator.sol":{"keccak256":"0x74b95e64d29769202d45dd277bb830f623ff3d41ce77b80ce3ee4e318a5c71ec","urls":["bzz-raw://e512b903aae5c1b8a028c6e3f4f6223b5cb5d704503cfa6bd37b5346868f5c20","dweb:/ipfs/QmZim9YExsPWtyxyeui993HTKAEmrg8MUcSkZ77Gp2JcuZ"],"license":"MIT"},"src/interfaces/delegator/IOperatorSpecificDelegator.sol":{"keccak256":"0x72075cab585dc17240cc3e32bc99b92f0d5627ddd988fed680e3e1a52d5a01e4","urls":["bzz-raw://7448bc90699409ae61d85216b5efc2143a37f0f73354be2aea993bc54afca441","dweb:/ipfs/QmXE4gAxM8pHosZK8mcTcj17puBx484meDCcmrDePskGHZ"],"license":"MIT"},"src/interfaces/service/IOptInService.sol":{"keccak256":"0x76fb5460a6d87a5705433d4fbeff7253cd75b8bbd0c888b2088f16e86ace146a","urls":["bzz-raw://990322019b3d11465f7024bae77ccbf7e2fe5d6fa3c754584778f37d04fa1337","dweb:/ipfs/QmaSNHzcqxTkUCG9a4nqVfLECHLdjdrwAnDi3yDC7tDL24"],"license":"MIT"},"src/interfaces/slasher/IBaseSlasher.sol":{"keccak256":"0x7c82528b445659c313ab77335c407b0b6efe5e79027187bb287f7bc74202b404","urls":["bzz-raw://0274c90aa5df1aa6bb470a6aab53992fb14fd7e5472c9430416505b29647d9cf","dweb:/ipfs/QmckbmJLDetPemVzCnnGcKYWAZV2BRFXGDsjiaec8jkHxx"],"license":"MIT"},"src/interfaces/vault/IVault.sol":{"keccak256":"0xffee01d383cd4e1a5530c614bf4360c1ef070c288abec9da1eb531b51bc07235","urls":["bzz-raw://04f0046cac285d8ec44ebbb1f79dc94fab4495767190cad8364fbc1fafaadfb9","dweb:/ipfs/QmUawAunwzXfCyShWfhKeThAgKtqe51hmrxvrXvM772M2R"],"license":"MIT"},"src/interfaces/vault/IVaultStorage.sol":{"keccak256":"0x592626f13754194f83047135de19229c49390bd59e34659b1bb38be71d973a22","urls":["bzz-raw://06a6a9dfddd05e580b32bebe2cff4f63ba26a653180676d58225dd30d9c89d3e","dweb:/ipfs/QmdgzBeY6Sxo8mGtyBxtv1tM1c2kU6J6zjeRd7vuXm4DU6"],"license":"MIT"}},"version":1},"id":86} \ No newline at end of file +{"abi":[{"type":"constructor","inputs":[{"name":"baseDelegatorHints","type":"address","internalType":"address"},{"name":"vaultHints","type":"address","internalType":"address"},{"name":"optInServiceHints","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"BASE_DELEGATOR_HINTS","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"DEFAULT_ADMIN_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"FACTORY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"HOOK_GAS_LIMIT","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"HOOK_RESERVE","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"HOOK_SET_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"NETWORK_REGISTRY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"OPERATOR_NETWORK_OPT_IN_SERVICE","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"OPERATOR_REGISTRY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"OPERATOR_VAULT_OPT_IN_SERVICE","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"OPT_IN_SERVICE_HINTS","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"TYPE","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"VAULT_FACTORY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"VAULT_HINTS","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"VERSION","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"pure"},{"type":"function","name":"getRoleAdmin","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"grantRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"hasRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"hook","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"initialize","inputs":[{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"maxNetworkLimit","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"value","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"maxNetworkLimitAt","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"timestamp","type":"uint48","internalType":"uint48"},{"name":"hint","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"maxNetworkLimitHint","inputs":[{"name":"delegator","type":"address","internalType":"address"},{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"timestamp","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"maxNetworkLimitHintInternal","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"timestamp","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"exists","type":"bool","internalType":"bool"},{"name":"hint","type":"uint32","internalType":"uint32"}],"stateMutability":"view"},{"type":"function","name":"network","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"onSlash","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"captureTimestamp","type":"uint48","internalType":"uint48"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"operator","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"renounceRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"callerConfirmation","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"revokeRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setHook","inputs":[{"name":"hook_","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setMaxNetworkLimit","inputs":[{"name":"identifier","type":"uint96","internalType":"uint96"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"stake","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"stakeAt","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"timestamp","type":"uint48","internalType":"uint48"},{"name":"hints","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"stakeHints","inputs":[{"name":"delegator","type":"address","internalType":"address"},{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"timestamp","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"staticDelegateCall","inputs":[{"name":"target","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"vault","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"OnSlash","inputs":[{"name":"subnetwork","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"captureTimestamp","type":"uint48","indexed":false,"internalType":"uint48"}],"anonymous":false},{"type":"event","name":"RoleAdminChanged","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"previousAdminRole","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"newAdminRole","type":"bytes32","indexed":true,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"RoleGranted","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"sender","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"RoleRevoked","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"sender","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"SetHook","inputs":[{"name":"hook","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"SetMaxNetworkLimit","inputs":[{"name":"subnetwork","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"error","name":"AccessControlBadConfirmation","inputs":[]},{"type":"error","name":"AccessControlUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"neededRole","type":"bytes32","internalType":"bytes32"}]},{"type":"error","name":"AlreadySet","inputs":[]},{"type":"error","name":"CheckpointUnorderedInsertion","inputs":[]},{"type":"error","name":"ExternalCall","inputs":[]},{"type":"error","name":"InsufficientHookGas","inputs":[]},{"type":"error","name":"InvalidInitialization","inputs":[]},{"type":"error","name":"InvalidNetwork","inputs":[]},{"type":"error","name":"NotInitialized","inputs":[]},{"type":"error","name":"NotInitializing","inputs":[]},{"type":"error","name":"NotNetwork","inputs":[]},{"type":"error","name":"NotOperator","inputs":[]},{"type":"error","name":"NotSlasher","inputs":[]},{"type":"error","name":"NotVault","inputs":[]},{"type":"error","name":"ReentrancyGuardReentrantCall","inputs":[]},{"type":"error","name":"SafeCastOverflowedUintDowncast","inputs":[{"name":"bits","type":"uint8","internalType":"uint8"},{"name":"value","type":"uint256","internalType":"uint256"}]}],"bytecode":{"object":"0x6101e0346101dc57601f612f7538819003918201601f19168301916001600160401b0391828411858510176101e05781606092869260409687528339810103126101dc5761004c836101f4565b926100648361005d602084016101f4565b92016101f4565b91306080527ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a009081549060ff82871c166101cb578080831603610187575b5050505f60a0525f60c0525f60e052610100935f8552610120935f85526101405f8152610160915f83526101809384526101a09485526101c09586525195612d6c9788610209893960805188610e71015260a0518861062b015260c05188610dee015260e0518881816103dd01528181610e2701526127ae0152518781816102d30152611fd201525186818161031701528181611841015261197001525185818161035b015281816117a801526119ee015251848181610c1b0152612827015251838181610baf0152611369015251828181610ac5015261140a01525181610cf20152f35b6001600160401b0319909116811790915583519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a15f80806100a2565b855163f92ee8a960e01b8152600490fd5b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b51906001600160a01b03821682036101dc5756fe60806040526004361015610011575f80fd5b5f3560e01c806301ffc9a714610264578063103f29071461025f578063128e5d821461025a5780631a80e5001461025557806323f752d514610250578063248a9ca31461024b57806325dc9708146102465780632dd31000146102415780632f2ff15d1461023c57806336568abe146102375780633dfd387314610232578063437224a31461022d578063439fab911461022857806345e78fcb14610223578063557cab441461021e578063570ca735146102195780636679191e146102145780636739afca1461020f57806379d896141461020a5780637f5a7c7b1461020557806383ce03221461020057806391d14854146101fb578063991d1162146101f65780639b656b22146101f15780639f86fd85146101ec578063a217fddf146101e7578063bb24fe8a146101e2578063c0cd7c3e146101dd578063d0f1f901146101d8578063d15b740e146101d3578063d547741f146101ce578063e02f6937146101c9578063e49561ee146101c4578063fbfa77cf146101bf578063fd4d447c146101ba578063ff54740f146101b55763ffa1ad74146101b0575f80fd5b611207565b6111ea565b6111c0565b611199565b610fae565b610f59565b610f0d565b610ee3565b610e56565b610e12565b610dcf565b610db5565b610d21565b610cdd565b610ca8565b610c4a565b610c06565b610bde565b610b9a565b610b72565b610b38565b610b10565b610af4565b610ab0565b610978565b6108f2565b6106f1565b6106a6565b61065a565b610616565b6105bd565b610510565b61038a565b610346565b610302565b6102be565b346102ba5760203660031901126102ba5760043563ffffffff60e01b81168091036102ba57602090637965db0b60e01b81149081156102a9575b506040519015158152f35b6301ffc9a760e01b1490505f61029e565b5f80fd5b346102ba575f3660031901126102ba576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346102ba575f3660031901126102ba576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346102ba575f3660031901126102ba576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346102ba5760403660031901126102ba576004356001600160601b03811681036102ba57602435906103ba611a63565b6040516302910f8b60e31b81523360048201526020816024816001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165afa90811561050b575f916104dc575b50156104ca576001600160601b03166bffffffffffffffffffffffff193360601b16179080610444835f52600260205260405f2090565b54146104b85761049d817fc67e7929681aa1bccd63f52b3799bf5805f3009f197db6fdf584b14f7fbf608c92610482855f52600260205260405f2090565b5561048d8185611a92565b6040519081529081906020820190565b0390a26104b660015f80516020612cf783398151915255565b005b60405163a741a04560e01b8152600490fd5b6040516323d53b9760e21b8152600490fd5b6104fe915060203d602011610504575b6104f68183610854565b81019061122f565b5f61040d565b503d6104ec565b611246565b346102ba5760203660031901126102ba576004355f525f80516020612cd78339815191526020526020600160405f200154604051908152f35b6001600160a01b038116036102ba57565b6064359065ffffffffffff821682036102ba57565b6024359065ffffffffffff821682036102ba57565b6044359065ffffffffffff821682036102ba57565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b346102ba5760803660031901126102ba576106126105fe6004356105e081610549565b6044356105ec81610549565b6105f461055a565b9160243590611320565b604051918291602083526020830190610599565b0390f35b346102ba575f3660031901126102ba576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346102ba5760403660031901126102ba576104b660243560043561067d82610549565b805f525f80516020612cd78339815191526020526106a1600160405f200154611bd4565b611d85565b346102ba5760403660031901126102ba576024356106c381610549565b336001600160a01b038216036106df576104b690600435611dbb565b60405163334bd91960e11b8152600490fd5b346102ba5760203660031901126102ba5760043561070e81610549565b610716611a63565b335f9081527f9ebbcbe0d2961d3fbe56ca6f679bc753bd848d3e6bb3eaf9041c51b286881d2c60205260409020547fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c9060ff16156107cc57506001546001600160a01b0391821691811682146104b8576001600160a01b03191681176001557f5bbb1d3ebb6a3ad2a0f17ff35e579a83af60604d1d3c2a4c83c62adecadf666d5f80a260015f80516020612cf783398151915255005b6044906040519063e2517d3f60e01b82523360048301526024820152fd5b634e487b7160e01b5f52604160045260245ffd5b604081019081106001600160401b0382111761081957604052565b6107ea565b606081019081106001600160401b0382111761081957604052565b608081019081106001600160401b0382111761081957604052565b90601f801991011681019081106001600160401b0382111761081957604052565b604051906108828261081e565b565b60405190610882826107fe565b6001600160401b03811161081957601f01601f191660200190565b81601f820112156102ba578035906108c382610891565b926108d16040519485610854565b828452602083830101116102ba57815f926020809301838601378301015290565b346102ba5760603660031901126102ba5761090b61056f565b6044356001600160401b0381116102ba576020916109306109439236906004016108ac565b906004355f526003845260405f20611e84565b604051908152f35b9181601f840112156102ba578235916001600160401b0383116102ba57602083818601950101116102ba57565b346102ba5760203660031901126102ba576001600160401b036004358181116102ba576109a990369060040161094b565b5f80516020612d17833981519152549260ff8460401c1615931680159081610aa8575b6001149081610a9e575b159081610a95575b50610a83575f80516020612d17833981519152805467ffffffffffffffff19166001179055610a119183610a5f57611f9d565b610a1757005b5f80516020612d17833981519152805460ff60401b19169055604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a1005b5f80516020612d17833981519152805460ff60401b1916600160401b179055611f9d565b60405163f92ee8a960e01b8152600490fd5b9050155f6109de565b303b1591506109d6565b8491506109cc565b346102ba575f3660031901126102ba576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346102ba575f3660031901126102ba576020604051614e208152f35b346102ba575f3660031901126102ba576005546040516001600160a01b039091168152602090f35b346102ba575f3660031901126102ba5760206040517fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c8152f35b346102ba575f3660031901126102ba576004546040516001600160a01b039091168152602090f35b346102ba575f3660031901126102ba576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346102ba575f3660031901126102ba576001546040516001600160a01b039091168152602090f35b346102ba575f3660031901126102ba576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346102ba5760403660031901126102ba57602060ff610c9c602435610c6e81610549565b6004355f525f80516020612cd7833981519152845260405f209060018060a01b03165f5260205260405f2090565b54166040519015158152f35b346102ba5760603660031901126102ba576106126105fe600435610ccb81610549565b610cd3610584565b906024359061154e565b346102ba575f3660031901126102ba576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346102ba5760403660031901126102ba57600435610d3e81610549565b6024356001600160401b0381116102ba575f91610d608392369060040161094b565b90816040519283928337810184815203915af4610dad610d7e611647565b91610d9f604051938492151560208401526040808401526060830190610599565b03601f198101835282610854565b805190602001fd5b346102ba575f3660031901126102ba5760206040515f8152f35b346102ba575f3660031901126102ba5760206040516001600160401b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b346102ba575f3660031901126102ba576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346102ba5760403660031901126102ba57610e6f61056f565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163303610ed15763ffffffff610ebc6040926004355f526003602052835f2061215c565b91505083929192519215158352166020820152f35b604051637ca475e560e11b8152600490fd5b346102ba5760203660031901126102ba576004355f526002602052602060405f2054604051908152f35b346102ba5760403660031901126102ba576104b6602435600435610f3082610549565b805f525f80516020612cd7833981519152602052610f54600160405f200154611bd4565b611dbb565b346102ba5760803660031901126102ba57602435610f7681610549565b610f7e610584565b90606435906001600160401b0382116102ba57602092610fa56109439336906004016108ac565b91600435611732565b346102ba5760a03660031901126102ba57602435600435610fce82610549565b60443591610fda61055a565b90608435906001600160401b0382116102ba57610ffc600492369084016108ac565b611004611a63565b5f546020906110299061101d906001600160a01b031681565b6001600160a01b031690565b60405163b134427160e01b815294859182905afa92831561050b575f93611168575b506001600160a01b039283163303611156576001546001600160a01b03168381166110cb575b50506040805195865265ffffffffffff909316602086015216927f741a5de99085c0d660f3e4192217b0ffb0ea4e35a0480de48e857a4bc3ee36ed91819081015b0390a36104b660015f80516020612cf783398151915255565b909360405194611102866110f4602082019363724ab0f760e11b8552858c898d602487016118bc565b03601f198101885287610854565b62042e305a10611144575f6110b2938192827f741a5de99085c0d660f3e4192217b0ffb0ea4e35a0480de48e857a4bc3ee36ed9951926203d090f15093611071565b604051638072475160e01b8152600490fd5b60405163dabc4ad960e01b8152600490fd5b61118b91935060203d602011611192575b6111838183610854565b8101906112bc565b915f61104b565b503d611179565b346102ba575f3660031901126102ba575f546040516001600160a01b039091168152602090f35b346102ba5760403660031901126102ba5760206109436024356111e281610549565b600435611939565b346102ba575f3660031901126102ba5760206040516203d0908152f35b346102ba575f3660031901126102ba57602060405160018152f35b519081151582036102ba57565b908160209103126102ba5761124390611222565b90565b6040513d5f823e3d90fd5b81601f820112156102ba5780519061126882610891565b926112766040519485610854565b828452602083830101116102ba57815f9260208093018386015e8301015290565b906020828203126102ba5781516001600160401b0381116102ba576112439201611251565b908160209103126102ba575161124381610549565b9061124391602081526112f08251606060208401526080830190610599565b9060606040611310602086015194601f1995868683030184870152610599565b9401519282850301910152610599565b604051630df8851f60e11b81526001600160a01b03828116600483015260248201849052938416604482015265ffffffffffff8516606482015260609594909391925f856084817f000000000000000000000000000000000000000000000000000000000000000087165afa94851561050b575f956114ea575b5060405163fbfa77cf60e01b81526020816004818888165afa90811561050b57611406945f92859284916114cb575b5060405163192c0ff760e21b81526001600160a01b03909116600482015265ffffffffffff90921660248301529094859190829081906044820190565b03917f0000000000000000000000000000000000000000000000000000000000000000165afa92831561050b575f936114a5575b50611445929361154e565b9082511580159061149b575b8015611491575b61146157505050565b610d9f939450906112439291611475610875565b92835260208301526040820152604051928391602083016112d1565b5081511515611458565b5080511515611451565b61144593506114c5903d805f833e6114bd8183610854565b810190611297565b9261143a565b6114e4915060203d602011611192576111838183610854565b5f6113c9565b6114ff9195503d805f833e6114bd8183610854565b935f61139a565b9061124392915f52600360205260405f20611e84565b519063ffffffff821682036102ba57565b91908260409103126102ba57611243602061154784611222565b930161151c565b92915f8060609565ffffffffffff6040519460209663d0f1f90160e01b8888015260248701521660448501526044845261158784610839565b60405193846115b487820192639f86fd8560e01b8452306024840152604060448401526064830190610599565b03946115c8601f1996878101835282610854565b51915afa506115e66115d8611647565b8380825183010191016120db565b9015611639578083806115fe9351830101910161152d565b929061160957505050565b6112439293945061162d604051948592830191909163ffffffff6020820193169052565b03908101835282610854565b809150519182156102ba5701fd5b3d15611671573d9061165882610891565b916116666040519384610854565b82523d5f602084013e565b606090565b60405190611683826107fe565b60606020838281520152565b906020828203126102ba5781516001600160401b03928382116102ba5701906040828203126102ba57604051926116c5846107fe565b82518181116102ba57826116da918501611251565b845260208301519081116102ba576116f29201611251565b602082015290565b6001600160a01b0391821681529116602082015265ffffffffffff909116604082015260806060820181905261124392910190610599565b9261174290929192828486612335565b92909361174d611676565b938051806118a0575b5050841593841561180a575b8415611779575b505050506117745790565b505f90565b6020809495506117a4910151604051958694859463530e1d4360e01b865260601c90600486016116fa565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa90811561050b575f916117eb575b50155f808080611769565b611804915060203d602011610504576104f68183610854565b5f6117e0565b5f549094506001600160a01b031660208486519261183d604051948593849363530e1d4360e01b855289600486016116fa565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa90811561050b575f91611881575b501593611762565b61189a915060203d602011610504576104f68183610854565b5f611879565b6118b492955060208091830101910161168f565b925f80611756565b919360a093611243969565ffffffffffff938552600180871b0316602085015260408401521660608201528160808201520190610599565b634e487b7160e01b5f52601160045260245ffd5b8115611912570490565b634e487b7160e01b5f52601260045260245ffd5b906001820180921161193457565b6118f4565b5f546040516308834cb560e21b8082526001600160a01b0385811660048401529283166024830152929392602092909183816044817f000000000000000000000000000000000000000000000000000000000000000086165afa90811561050b575f91611a46575b50159182156119c2575b505090506119bc5761124391612454565b50505f90565b6040519081526001600160a01b0385166004820152606086901c602482015291508290829060449082907f0000000000000000000000000000000000000000000000000000000000000000165afa91821561050b575f92611a29575b505015805f806119ab565b611a3f9250803d10610504576104f68183610854565b5f80611a1e565b611a5d9150843d8611610504576104f68183610854565b5f6119a1565b5f80516020612cf78339815191526002815414611a805760029055565b604051633ee5aeb560e01b8152600490fd5b6004546001600160a01b0316606082901c03611bc2575f52600360205260405f209065ffffffffffff91824211611ba357824216926001820191825415611b95575b611add81612a78565b509590845493835480155f14611b7657505f975b6001600160d01b0398808a1615611b7057611b0c9088612133565b50505b82611b64575b505015611b4e575050610882935090611b30611b3692611e61565b90612133565b90919082549060031b91821b915f19901b1916179055565b61088295611b5d931691612b65565b5050612543565b16821490505f80611b15565b50611b0f565b5f1990808281011161193457855f5260205f2001015460301c97611af1565b611b9e83612516565b611ad4565b6040516306dfcc6560e41b815260306004820152426024820152604490fd5b6040516386eab41b60e01b8152600490fd5b5f8181525f80516020612cd78339815191526020908152604080832033845290915290205460ff16156107cc5750565b6001600160a01b0381165f9081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d60205260409020545f80516020612cd78339815191529060ff166119bc575f808052602091825260408082206001600160a01b038516835290925220805460ff1916600117905533906001600160a01b03165f7f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d8180a4600190565b6001600160a01b0381165f9081527f9ebbcbe0d2961d3fbe56ca6f679bc753bd848d3e6bb3eaf9041c51b286881d2c602052604090207fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c905f80516020612cd78339815191529060ff905b5416611d7e575f828152602091825260408082206001600160a01b038616835290925220805460ff1916600117905533916001600160a01b0316907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d5f80a4600190565b5050505f90565b5f8181525f80516020612cd7833981519152602081815260408084206001600160a01b038716855290915290912060ff90611d1a565b5f8181525f80516020612cd7833981519152602081815260408084206001600160a01b03871685529091529091205460ff1615611d7e575f828152602091825260408082206001600160a01b038616835290925220805460ff1916905533916001600160a01b0316907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b5f80a4600190565b908160209103126102ba576112439061151c565b5f1981019190821161193457565b90600163ffffffff8093160191821161193457565b91805115611f5d5780602080611e9f93518301019101611e4d565b91611eaa8382612636565b92611ebb845165ffffffffffff1690565b9065ffffffffffff8085169216828114611f515782119182611ef1575b5050611ee8576112439250612566565b50506020015190565b909150611efe8354611e61565b63ffffffff831614918215611f17575b50505f80611ed8565b611f49919250611f32611f2c611f3e92611e6f565b85612636565b5165ffffffffffff1690565b65ffffffffffff1690565b115f80611f0e565b50505050506020015190565b5061124391612566565b9190916040818403126102ba578035611f7f81610549565b9260208201356001600160401b0381116102ba5761124392016108ac565b611fa991810190611f67565b6040516302910f8b60e31b81526001600160a01b039283166004820181905291906020816024817f000000000000000000000000000000000000000000000000000000000000000088165afa90811561050b575f916120bc575b50156120aa5761203e6040916120396120849461201e61269e565b60018060a01b03166001600160601b0360a01b5f5416175f55565b612761565b6020810151600180546001600160a01b0319166001600160a01b0390921691909117905580516001600160a01b031684811661209a575b5001516001600160a01b031690565b90811661208e5750565b61209790611caf565b50565b6120a390611c04565b505f612075565b6040516362df054560e01b8152600490fd5b6120d5915060203d602011610504576104f68183610854565b5f612003565b9190916040818403126102ba576120f181611222565b9260208201516001600160401b0381116102ba576112439201611251565b9060405161211c816107fe565b915465ffffffffffff8116835260301c6020830152565b8054821015612148575f5260205f2001905f90565b634e487b7160e01b5f52603260045260245ffd5b91908254905f829160058411612204575b612178935085612a0f565b9081156121f8576121f16121e86121e26121d86121aa6121a561219a88611e61565b895f5260205f200190565b61210f565b9660016121d160206121c28b5165ffffffffffff1690565b9a01516001600160d01b031690565b9101612133565b90549060031b1c90565b93611e61565b63ffffffff1690565b6001939291565b5f925082915081908190565b919261220f816128dc565b81039081116119345761217893865f52612238611f3e8360205f200165ffffffffffff90541690565b65ffffffffffff8516101561224e57509161216d565b92915061225a90611926565b9061216d565b6040519061226d8261081e565b60606040838281528260208201520152565b906020828203126102ba5781516001600160401b03928382116102ba5701906060828203126102ba57604051926122b58461081e565b82518181116102ba57826122ca918501611251565b845260208301518181116102ba57826122e4918501611251565b602085015260408301519081116102ba576122ff9201611251565b604082015290565b908160209103126102ba575190565b60409065ffffffffffff61124394931681528160208201520190610599565b90939293612341612260565b94805180612438575b5050600454606083901c6001600160a01b0391821614801592919061241d575b5050612415575f546123b092919060209061238f9061101d906001600160a01b031681565b8187015190604051808097819463810da75d60e01b83528860048401612316565b03915afa90811561050b576123dd935f926123e2575b506123d79192604087015191611506565b90612a66565b915190565b6123d792506124089060203d60201161240e575b6124008183610854565b810190612307565b916123c6565b503d6123f6565b505090515f91565b60055481166001600160a01b03169116141590505f8061236a565b61244c92965060208091830101910161227f565b935f8061234a565b6004549091606083901c6001600160a01b0392831614801592906124fb575b5050611774575f54600491906020906124969061101d906001600160a01b031681565b60405163bd49c35f60e01b815293849182905afa90811561050b57611243925f926124d6575b506124cf905f52600260205260405f2090565b5490612a66565b6124cf9192506124f49060203d60201161240e576124008183610854565b91906124bc565b60055481166001600160a01b03169116141590505f80612473565b8054600160401b8110156108195761253391600182018155612133565b8154905f199060031b1b19169055565b90815491600160401b8310156108195782611b3691600161088295018155612133565b908154905f8291600584116125d0575b612581935084612c7f565b806125a957505f905b6001600160d01b038216156119bc576112439160016121d89201612133565b6125c36125b86125ca92611e61565b835f5260205f200190565b5460301c90565b9061258a565b91926125db816128dc565b81039081116119345761258193855f5265ffffffffffff808360205f20015416908516105f1461260c575091612576565b92915061261890611926565b90612576565b6040519061262b826107fe565b5f6020838281520152565b9061265f6126596126809261264961261e565b5061265261261e565b5084612133565b5061210f565b91600165ffffffffffff845116936020828060d01b03910151169101612133565b90549060405192612690846107fe565b835260031b1c602082015290565b6126a6612ac7565b6126ae612ac7565b60015f80516020612cf783398151915255565b604051906126ce8261081e565b5f6040838281528260208201520152565b8091039060a082126102ba576060604051926126fa8461081e565b126102ba5760809060405161270e8161081e565b815161271981610549565b8152602082015161272981610549565b6020820152604082015161273c81610549565b60408201528352606081015161275181610549565b602084015201516122ff81610549565b6127696126c1565b5061277f815191602080809483010191016126df565b80820180516040516302910f8b60e31b8082526001600160a01b039283166004830152939491939082816024817f000000000000000000000000000000000000000000000000000000000000000089165afa90811561050b575f916128bf575b50156104ca57816128239160408701956127ff875160018060a01b031690565b6040519283526001600160a01b031660048301529092839190829081906024820190565b03917f0000000000000000000000000000000000000000000000000000000000000000165afa91821561050b575f926128a2575b5050156128905751600480546001600160a01b039283166001600160a01b03199182161790915591516005805490931691161790555190565b604051631f0853c160e21b8152600490fd5b6128b89250803d10610504576104f68183610854565b5f80612857565b6128d69150833d8511610504576104f68183610854565b5f6127df565b801561177457806123d76129a761299d61299361298961297f61297561296b60016112439a5f908b60801c80612a03575b508060401c806129f6575b508060201c806129e9575b508060101c806129dc575b508060081c806129cf575b508060041c806129c2575b508060021c806129b5575b50821c6129ae575b811c1b612964818b611908565b0160011c90565b612964818a611908565b6129648189611908565b6129648188611908565b6129648187611908565b6129648186611908565b6129648185611908565b8092611908565b8101612957565b600291509101905f61294f565b600491509101905f612944565b600891509101905f612939565b601091509101905f61292e565b602091509101905f612923565b604091509101905f612918565b9150506080905f61290d565b905b838310612a1e5750505090565b909192612a2b8185612af5565b90835f5265ffffffffffff808360205f20015416908416105f14612a535750925b9190612a11565b93506001810180911115612a4c576118f4565b9080821015612a73575090565b905090565b805480612a895750505f905f905f90565b5f1990808281011161193457612aa6925f5260205f20010161210f565b9065ffffffffffff82511691602060018060d01b0391015116906001929190565b60ff5f80516020612d178339815191525460401c1615612ae357565b604051631afcd79f60e31b8152600490fd5b90808216911860011c81018091116119345790565b8054600160401b81101561081957612b2791600182018155612133565b612b5257815160209092015160301b65ffffffffffff191665ffffffffffff92909216919091179055565b634e487b7160e01b5f525f60045260245ffd5b805492939291908215612c5657612b816121a56125b885611e61565b90612b92825165ffffffffffff1690565b65ffffffffffff84811691168110612c4457612c08946020948892612bc0611f3e875165ffffffffffff1690565b03612c0c5750612bfa92612bd6612be192611e61565b905f5260205f200190565b9065ffffffffffff82549181199060301b169116179055565b01516001600160d01b031690565b9190565b915050612c3f91612c2c612c1e610884565b65ffffffffffff9093168352565b6001600160d01b03881682860152612b0a565b612bfa565b604051632520601d60e01b8152600490fd5b612c7a9250612c66612c1e610884565b6001600160d01b0385166020830152612b0a565b5f9190565b905b838310612c8e5750505090565b909192612c9b8185612af5565b90835f5265ffffffffffff808360205f20015416908416105f14612cc35750925b9190612c81565b93506001810180911115612cbc576118f456fe02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268009b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a2646970667358221220b3d48f3b18b846e419493dd0360a4608f48b3385c35e3d4c6be558d241bcf96364736f6c63430008190033","sourceMap":"13653:2443:81:-:0;;;;;;;;;;;;;-1:-1:-1;;13653:2443:81;;;;-1:-1:-1;;;;;13653:2443:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;:::i;:::-;348:4:82;;332:21;;8837:64:25;13653:2443:81;;;;;;;;;7896:76:25;;13653:2443:81;;;;7985:34:25;7981:146;;-1:-1:-1;525:17:69;;;-1:-1:-1;525:17:69;;-1:-1:-1;552:12:69;;-1:-1:-1;2360:34:76;;2404:28;;-1:-1:-1;2404:28:76;;2442:57;;-1:-1:-1;2442:57:76;;2509:61;-1:-1:-1;2509:61:76;;1796:36:79;;-1:-1:-1;1796:36:79;;14178:41:81;;;;14229:24;;;;14263:40;;;;13653:2443;;;;;;;;332:21:82;13653:2443:81;;;;;525:17:69;13653:2443:81;;;;;552:12:69;13653:2443:81;;;;;2360:34:76;13653:2443:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7981:146:25;-1:-1:-1;;;;;;13653:2443:81;;;;;;;;;;;;;8087:29:25;;13653:2443:81;;8087:29:25;7981:146;;;;;7896:76;13653:2443:81;;-1:-1:-1;;;7938:23:25;;;;;13653:2443:81;-1:-1:-1;13653:2443:81;;;;;;-1:-1:-1;13653:2443:81;;;;;-1:-1:-1;13653:2443:81;;;;-1:-1:-1;;;;;13653:2443:81;;;;;;:::o","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361015610011575f80fd5b5f3560e01c806301ffc9a714610264578063103f29071461025f578063128e5d821461025a5780631a80e5001461025557806323f752d514610250578063248a9ca31461024b57806325dc9708146102465780632dd31000146102415780632f2ff15d1461023c57806336568abe146102375780633dfd387314610232578063437224a31461022d578063439fab911461022857806345e78fcb14610223578063557cab441461021e578063570ca735146102195780636679191e146102145780636739afca1461020f57806379d896141461020a5780637f5a7c7b1461020557806383ce03221461020057806391d14854146101fb578063991d1162146101f65780639b656b22146101f15780639f86fd85146101ec578063a217fddf146101e7578063bb24fe8a146101e2578063c0cd7c3e146101dd578063d0f1f901146101d8578063d15b740e146101d3578063d547741f146101ce578063e02f6937146101c9578063e49561ee146101c4578063fbfa77cf146101bf578063fd4d447c146101ba578063ff54740f146101b55763ffa1ad74146101b0575f80fd5b611207565b6111ea565b6111c0565b611199565b610fae565b610f59565b610f0d565b610ee3565b610e56565b610e12565b610dcf565b610db5565b610d21565b610cdd565b610ca8565b610c4a565b610c06565b610bde565b610b9a565b610b72565b610b38565b610b10565b610af4565b610ab0565b610978565b6108f2565b6106f1565b6106a6565b61065a565b610616565b6105bd565b610510565b61038a565b610346565b610302565b6102be565b346102ba5760203660031901126102ba5760043563ffffffff60e01b81168091036102ba57602090637965db0b60e01b81149081156102a9575b506040519015158152f35b6301ffc9a760e01b1490505f61029e565b5f80fd5b346102ba575f3660031901126102ba576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346102ba575f3660031901126102ba576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346102ba575f3660031901126102ba576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346102ba5760403660031901126102ba576004356001600160601b03811681036102ba57602435906103ba611a63565b6040516302910f8b60e31b81523360048201526020816024816001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165afa90811561050b575f916104dc575b50156104ca576001600160601b03166bffffffffffffffffffffffff193360601b16179080610444835f52600260205260405f2090565b54146104b85761049d817fc67e7929681aa1bccd63f52b3799bf5805f3009f197db6fdf584b14f7fbf608c92610482855f52600260205260405f2090565b5561048d8185611a92565b6040519081529081906020820190565b0390a26104b660015f80516020612cf783398151915255565b005b60405163a741a04560e01b8152600490fd5b6040516323d53b9760e21b8152600490fd5b6104fe915060203d602011610504575b6104f68183610854565b81019061122f565b5f61040d565b503d6104ec565b611246565b346102ba5760203660031901126102ba576004355f525f80516020612cd78339815191526020526020600160405f200154604051908152f35b6001600160a01b038116036102ba57565b6064359065ffffffffffff821682036102ba57565b6024359065ffffffffffff821682036102ba57565b6044359065ffffffffffff821682036102ba57565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b346102ba5760803660031901126102ba576106126105fe6004356105e081610549565b6044356105ec81610549565b6105f461055a565b9160243590611320565b604051918291602083526020830190610599565b0390f35b346102ba575f3660031901126102ba576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346102ba5760403660031901126102ba576104b660243560043561067d82610549565b805f525f80516020612cd78339815191526020526106a1600160405f200154611bd4565b611d85565b346102ba5760403660031901126102ba576024356106c381610549565b336001600160a01b038216036106df576104b690600435611dbb565b60405163334bd91960e11b8152600490fd5b346102ba5760203660031901126102ba5760043561070e81610549565b610716611a63565b335f9081527f9ebbcbe0d2961d3fbe56ca6f679bc753bd848d3e6bb3eaf9041c51b286881d2c60205260409020547fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c9060ff16156107cc57506001546001600160a01b0391821691811682146104b8576001600160a01b03191681176001557f5bbb1d3ebb6a3ad2a0f17ff35e579a83af60604d1d3c2a4c83c62adecadf666d5f80a260015f80516020612cf783398151915255005b6044906040519063e2517d3f60e01b82523360048301526024820152fd5b634e487b7160e01b5f52604160045260245ffd5b604081019081106001600160401b0382111761081957604052565b6107ea565b606081019081106001600160401b0382111761081957604052565b608081019081106001600160401b0382111761081957604052565b90601f801991011681019081106001600160401b0382111761081957604052565b604051906108828261081e565b565b60405190610882826107fe565b6001600160401b03811161081957601f01601f191660200190565b81601f820112156102ba578035906108c382610891565b926108d16040519485610854565b828452602083830101116102ba57815f926020809301838601378301015290565b346102ba5760603660031901126102ba5761090b61056f565b6044356001600160401b0381116102ba576020916109306109439236906004016108ac565b906004355f526003845260405f20611e84565b604051908152f35b9181601f840112156102ba578235916001600160401b0383116102ba57602083818601950101116102ba57565b346102ba5760203660031901126102ba576001600160401b036004358181116102ba576109a990369060040161094b565b5f80516020612d17833981519152549260ff8460401c1615931680159081610aa8575b6001149081610a9e575b159081610a95575b50610a83575f80516020612d17833981519152805467ffffffffffffffff19166001179055610a119183610a5f57611f9d565b610a1757005b5f80516020612d17833981519152805460ff60401b19169055604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a1005b5f80516020612d17833981519152805460ff60401b1916600160401b179055611f9d565b60405163f92ee8a960e01b8152600490fd5b9050155f6109de565b303b1591506109d6565b8491506109cc565b346102ba575f3660031901126102ba576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346102ba575f3660031901126102ba576020604051614e208152f35b346102ba575f3660031901126102ba576005546040516001600160a01b039091168152602090f35b346102ba575f3660031901126102ba5760206040517fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c8152f35b346102ba575f3660031901126102ba576004546040516001600160a01b039091168152602090f35b346102ba575f3660031901126102ba576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346102ba575f3660031901126102ba576001546040516001600160a01b039091168152602090f35b346102ba575f3660031901126102ba576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346102ba5760403660031901126102ba57602060ff610c9c602435610c6e81610549565b6004355f525f80516020612cd7833981519152845260405f209060018060a01b03165f5260205260405f2090565b54166040519015158152f35b346102ba5760603660031901126102ba576106126105fe600435610ccb81610549565b610cd3610584565b906024359061154e565b346102ba575f3660031901126102ba576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346102ba5760403660031901126102ba57600435610d3e81610549565b6024356001600160401b0381116102ba575f91610d608392369060040161094b565b90816040519283928337810184815203915af4610dad610d7e611647565b91610d9f604051938492151560208401526040808401526060830190610599565b03601f198101835282610854565b805190602001fd5b346102ba575f3660031901126102ba5760206040515f8152f35b346102ba575f3660031901126102ba5760206040516001600160401b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b346102ba575f3660031901126102ba576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346102ba5760403660031901126102ba57610e6f61056f565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163303610ed15763ffffffff610ebc6040926004355f526003602052835f2061215c565b91505083929192519215158352166020820152f35b604051637ca475e560e11b8152600490fd5b346102ba5760203660031901126102ba576004355f526002602052602060405f2054604051908152f35b346102ba5760403660031901126102ba576104b6602435600435610f3082610549565b805f525f80516020612cd7833981519152602052610f54600160405f200154611bd4565b611dbb565b346102ba5760803660031901126102ba57602435610f7681610549565b610f7e610584565b90606435906001600160401b0382116102ba57602092610fa56109439336906004016108ac565b91600435611732565b346102ba5760a03660031901126102ba57602435600435610fce82610549565b60443591610fda61055a565b90608435906001600160401b0382116102ba57610ffc600492369084016108ac565b611004611a63565b5f546020906110299061101d906001600160a01b031681565b6001600160a01b031690565b60405163b134427160e01b815294859182905afa92831561050b575f93611168575b506001600160a01b039283163303611156576001546001600160a01b03168381166110cb575b50506040805195865265ffffffffffff909316602086015216927f741a5de99085c0d660f3e4192217b0ffb0ea4e35a0480de48e857a4bc3ee36ed91819081015b0390a36104b660015f80516020612cf783398151915255565b909360405194611102866110f4602082019363724ab0f760e11b8552858c898d602487016118bc565b03601f198101885287610854565b62042e305a10611144575f6110b2938192827f741a5de99085c0d660f3e4192217b0ffb0ea4e35a0480de48e857a4bc3ee36ed9951926203d090f15093611071565b604051638072475160e01b8152600490fd5b60405163dabc4ad960e01b8152600490fd5b61118b91935060203d602011611192575b6111838183610854565b8101906112bc565b915f61104b565b503d611179565b346102ba575f3660031901126102ba575f546040516001600160a01b039091168152602090f35b346102ba5760403660031901126102ba5760206109436024356111e281610549565b600435611939565b346102ba575f3660031901126102ba5760206040516203d0908152f35b346102ba575f3660031901126102ba57602060405160018152f35b519081151582036102ba57565b908160209103126102ba5761124390611222565b90565b6040513d5f823e3d90fd5b81601f820112156102ba5780519061126882610891565b926112766040519485610854565b828452602083830101116102ba57815f9260208093018386015e8301015290565b906020828203126102ba5781516001600160401b0381116102ba576112439201611251565b908160209103126102ba575161124381610549565b9061124391602081526112f08251606060208401526080830190610599565b9060606040611310602086015194601f1995868683030184870152610599565b9401519282850301910152610599565b604051630df8851f60e11b81526001600160a01b03828116600483015260248201849052938416604482015265ffffffffffff8516606482015260609594909391925f856084817f000000000000000000000000000000000000000000000000000000000000000087165afa94851561050b575f956114ea575b5060405163fbfa77cf60e01b81526020816004818888165afa90811561050b57611406945f92859284916114cb575b5060405163192c0ff760e21b81526001600160a01b03909116600482015265ffffffffffff90921660248301529094859190829081906044820190565b03917f0000000000000000000000000000000000000000000000000000000000000000165afa92831561050b575f936114a5575b50611445929361154e565b9082511580159061149b575b8015611491575b61146157505050565b610d9f939450906112439291611475610875565b92835260208301526040820152604051928391602083016112d1565b5081511515611458565b5080511515611451565b61144593506114c5903d805f833e6114bd8183610854565b810190611297565b9261143a565b6114e4915060203d602011611192576111838183610854565b5f6113c9565b6114ff9195503d805f833e6114bd8183610854565b935f61139a565b9061124392915f52600360205260405f20611e84565b519063ffffffff821682036102ba57565b91908260409103126102ba57611243602061154784611222565b930161151c565b92915f8060609565ffffffffffff6040519460209663d0f1f90160e01b8888015260248701521660448501526044845261158784610839565b60405193846115b487820192639f86fd8560e01b8452306024840152604060448401526064830190610599565b03946115c8601f1996878101835282610854565b51915afa506115e66115d8611647565b8380825183010191016120db565b9015611639578083806115fe9351830101910161152d565b929061160957505050565b6112439293945061162d604051948592830191909163ffffffff6020820193169052565b03908101835282610854565b809150519182156102ba5701fd5b3d15611671573d9061165882610891565b916116666040519384610854565b82523d5f602084013e565b606090565b60405190611683826107fe565b60606020838281520152565b906020828203126102ba5781516001600160401b03928382116102ba5701906040828203126102ba57604051926116c5846107fe565b82518181116102ba57826116da918501611251565b845260208301519081116102ba576116f29201611251565b602082015290565b6001600160a01b0391821681529116602082015265ffffffffffff909116604082015260806060820181905261124392910190610599565b9261174290929192828486612335565b92909361174d611676565b938051806118a0575b5050841593841561180a575b8415611779575b505050506117745790565b505f90565b6020809495506117a4910151604051958694859463530e1d4360e01b865260601c90600486016116fa565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa90811561050b575f916117eb575b50155f808080611769565b611804915060203d602011610504576104f68183610854565b5f6117e0565b5f549094506001600160a01b031660208486519261183d604051948593849363530e1d4360e01b855289600486016116fa565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa90811561050b575f91611881575b501593611762565b61189a915060203d602011610504576104f68183610854565b5f611879565b6118b492955060208091830101910161168f565b925f80611756565b919360a093611243969565ffffffffffff938552600180871b0316602085015260408401521660608201528160808201520190610599565b634e487b7160e01b5f52601160045260245ffd5b8115611912570490565b634e487b7160e01b5f52601260045260245ffd5b906001820180921161193457565b6118f4565b5f546040516308834cb560e21b8082526001600160a01b0385811660048401529283166024830152929392602092909183816044817f000000000000000000000000000000000000000000000000000000000000000086165afa90811561050b575f91611a46575b50159182156119c2575b505090506119bc5761124391612454565b50505f90565b6040519081526001600160a01b0385166004820152606086901c602482015291508290829060449082907f0000000000000000000000000000000000000000000000000000000000000000165afa91821561050b575f92611a29575b505015805f806119ab565b611a3f9250803d10610504576104f68183610854565b5f80611a1e565b611a5d9150843d8611610504576104f68183610854565b5f6119a1565b5f80516020612cf78339815191526002815414611a805760029055565b604051633ee5aeb560e01b8152600490fd5b6004546001600160a01b0316606082901c03611bc2575f52600360205260405f209065ffffffffffff91824211611ba357824216926001820191825415611b95575b611add81612a78565b509590845493835480155f14611b7657505f975b6001600160d01b0398808a1615611b7057611b0c9088612133565b50505b82611b64575b505015611b4e575050610882935090611b30611b3692611e61565b90612133565b90919082549060031b91821b915f19901b1916179055565b61088295611b5d931691612b65565b5050612543565b16821490505f80611b15565b50611b0f565b5f1990808281011161193457855f5260205f2001015460301c97611af1565b611b9e83612516565b611ad4565b6040516306dfcc6560e41b815260306004820152426024820152604490fd5b6040516386eab41b60e01b8152600490fd5b5f8181525f80516020612cd78339815191526020908152604080832033845290915290205460ff16156107cc5750565b6001600160a01b0381165f9081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d60205260409020545f80516020612cd78339815191529060ff166119bc575f808052602091825260408082206001600160a01b038516835290925220805460ff1916600117905533906001600160a01b03165f7f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d8180a4600190565b6001600160a01b0381165f9081527f9ebbcbe0d2961d3fbe56ca6f679bc753bd848d3e6bb3eaf9041c51b286881d2c602052604090207fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c905f80516020612cd78339815191529060ff905b5416611d7e575f828152602091825260408082206001600160a01b038616835290925220805460ff1916600117905533916001600160a01b0316907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d5f80a4600190565b5050505f90565b5f8181525f80516020612cd7833981519152602081815260408084206001600160a01b038716855290915290912060ff90611d1a565b5f8181525f80516020612cd7833981519152602081815260408084206001600160a01b03871685529091529091205460ff1615611d7e575f828152602091825260408082206001600160a01b038616835290925220805460ff1916905533916001600160a01b0316907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b5f80a4600190565b908160209103126102ba576112439061151c565b5f1981019190821161193457565b90600163ffffffff8093160191821161193457565b91805115611f5d5780602080611e9f93518301019101611e4d565b91611eaa8382612636565b92611ebb845165ffffffffffff1690565b9065ffffffffffff8085169216828114611f515782119182611ef1575b5050611ee8576112439250612566565b50506020015190565b909150611efe8354611e61565b63ffffffff831614918215611f17575b50505f80611ed8565b611f49919250611f32611f2c611f3e92611e6f565b85612636565b5165ffffffffffff1690565b65ffffffffffff1690565b115f80611f0e565b50505050506020015190565b5061124391612566565b9190916040818403126102ba578035611f7f81610549565b9260208201356001600160401b0381116102ba5761124392016108ac565b611fa991810190611f67565b6040516302910f8b60e31b81526001600160a01b039283166004820181905291906020816024817f000000000000000000000000000000000000000000000000000000000000000088165afa90811561050b575f916120bc575b50156120aa5761203e6040916120396120849461201e61269e565b60018060a01b03166001600160601b0360a01b5f5416175f55565b612761565b6020810151600180546001600160a01b0319166001600160a01b0390921691909117905580516001600160a01b031684811661209a575b5001516001600160a01b031690565b90811661208e5750565b61209790611caf565b50565b6120a390611c04565b505f612075565b6040516362df054560e01b8152600490fd5b6120d5915060203d602011610504576104f68183610854565b5f612003565b9190916040818403126102ba576120f181611222565b9260208201516001600160401b0381116102ba576112439201611251565b9060405161211c816107fe565b915465ffffffffffff8116835260301c6020830152565b8054821015612148575f5260205f2001905f90565b634e487b7160e01b5f52603260045260245ffd5b91908254905f829160058411612204575b612178935085612a0f565b9081156121f8576121f16121e86121e26121d86121aa6121a561219a88611e61565b895f5260205f200190565b61210f565b9660016121d160206121c28b5165ffffffffffff1690565b9a01516001600160d01b031690565b9101612133565b90549060031b1c90565b93611e61565b63ffffffff1690565b6001939291565b5f925082915081908190565b919261220f816128dc565b81039081116119345761217893865f52612238611f3e8360205f200165ffffffffffff90541690565b65ffffffffffff8516101561224e57509161216d565b92915061225a90611926565b9061216d565b6040519061226d8261081e565b60606040838281528260208201520152565b906020828203126102ba5781516001600160401b03928382116102ba5701906060828203126102ba57604051926122b58461081e565b82518181116102ba57826122ca918501611251565b845260208301518181116102ba57826122e4918501611251565b602085015260408301519081116102ba576122ff9201611251565b604082015290565b908160209103126102ba575190565b60409065ffffffffffff61124394931681528160208201520190610599565b90939293612341612260565b94805180612438575b5050600454606083901c6001600160a01b0391821614801592919061241d575b5050612415575f546123b092919060209061238f9061101d906001600160a01b031681565b8187015190604051808097819463810da75d60e01b83528860048401612316565b03915afa90811561050b576123dd935f926123e2575b506123d79192604087015191611506565b90612a66565b915190565b6123d792506124089060203d60201161240e575b6124008183610854565b810190612307565b916123c6565b503d6123f6565b505090515f91565b60055481166001600160a01b03169116141590505f8061236a565b61244c92965060208091830101910161227f565b935f8061234a565b6004549091606083901c6001600160a01b0392831614801592906124fb575b5050611774575f54600491906020906124969061101d906001600160a01b031681565b60405163bd49c35f60e01b815293849182905afa90811561050b57611243925f926124d6575b506124cf905f52600260205260405f2090565b5490612a66565b6124cf9192506124f49060203d60201161240e576124008183610854565b91906124bc565b60055481166001600160a01b03169116141590505f80612473565b8054600160401b8110156108195761253391600182018155612133565b8154905f199060031b1b19169055565b90815491600160401b8310156108195782611b3691600161088295018155612133565b908154905f8291600584116125d0575b612581935084612c7f565b806125a957505f905b6001600160d01b038216156119bc576112439160016121d89201612133565b6125c36125b86125ca92611e61565b835f5260205f200190565b5460301c90565b9061258a565b91926125db816128dc565b81039081116119345761258193855f5265ffffffffffff808360205f20015416908516105f1461260c575091612576565b92915061261890611926565b90612576565b6040519061262b826107fe565b5f6020838281520152565b9061265f6126596126809261264961261e565b5061265261261e565b5084612133565b5061210f565b91600165ffffffffffff845116936020828060d01b03910151169101612133565b90549060405192612690846107fe565b835260031b1c602082015290565b6126a6612ac7565b6126ae612ac7565b60015f80516020612cf783398151915255565b604051906126ce8261081e565b5f6040838281528260208201520152565b8091039060a082126102ba576060604051926126fa8461081e565b126102ba5760809060405161270e8161081e565b815161271981610549565b8152602082015161272981610549565b6020820152604082015161273c81610549565b60408201528352606081015161275181610549565b602084015201516122ff81610549565b6127696126c1565b5061277f815191602080809483010191016126df565b80820180516040516302910f8b60e31b8082526001600160a01b039283166004830152939491939082816024817f000000000000000000000000000000000000000000000000000000000000000089165afa90811561050b575f916128bf575b50156104ca57816128239160408701956127ff875160018060a01b031690565b6040519283526001600160a01b031660048301529092839190829081906024820190565b03917f0000000000000000000000000000000000000000000000000000000000000000165afa91821561050b575f926128a2575b5050156128905751600480546001600160a01b039283166001600160a01b03199182161790915591516005805490931691161790555190565b604051631f0853c160e21b8152600490fd5b6128b89250803d10610504576104f68183610854565b5f80612857565b6128d69150833d8511610504576104f68183610854565b5f6127df565b801561177457806123d76129a761299d61299361298961297f61297561296b60016112439a5f908b60801c80612a03575b508060401c806129f6575b508060201c806129e9575b508060101c806129dc575b508060081c806129cf575b508060041c806129c2575b508060021c806129b5575b50821c6129ae575b811c1b612964818b611908565b0160011c90565b612964818a611908565b6129648189611908565b6129648188611908565b6129648187611908565b6129648186611908565b6129648185611908565b8092611908565b8101612957565b600291509101905f61294f565b600491509101905f612944565b600891509101905f612939565b601091509101905f61292e565b602091509101905f612923565b604091509101905f612918565b9150506080905f61290d565b905b838310612a1e5750505090565b909192612a2b8185612af5565b90835f5265ffffffffffff808360205f20015416908416105f14612a535750925b9190612a11565b93506001810180911115612a4c576118f4565b9080821015612a73575090565b905090565b805480612a895750505f905f905f90565b5f1990808281011161193457612aa6925f5260205f20010161210f565b9065ffffffffffff82511691602060018060d01b0391015116906001929190565b60ff5f80516020612d178339815191525460401c1615612ae357565b604051631afcd79f60e31b8152600490fd5b90808216911860011c81018091116119345790565b8054600160401b81101561081957612b2791600182018155612133565b612b5257815160209092015160301b65ffffffffffff191665ffffffffffff92909216919091179055565b634e487b7160e01b5f525f60045260245ffd5b805492939291908215612c5657612b816121a56125b885611e61565b90612b92825165ffffffffffff1690565b65ffffffffffff84811691168110612c4457612c08946020948892612bc0611f3e875165ffffffffffff1690565b03612c0c5750612bfa92612bd6612be192611e61565b905f5260205f200190565b9065ffffffffffff82549181199060301b169116179055565b01516001600160d01b031690565b9190565b915050612c3f91612c2c612c1e610884565b65ffffffffffff9093168352565b6001600160d01b03881682860152612b0a565b612bfa565b604051632520601d60e01b8152600490fd5b612c7a9250612c66612c1e610884565b6001600160d01b0385166020830152612b0a565b5f9190565b905b838310612c8e5750505090565b909192612c9b8185612af5565b90835f5265ffffffffffff808360205f20015416908416105f14612cc35750925b9190612c81565b93506001810180911115612cbc576118f456fe02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268009b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a2646970667358221220b3d48f3b18b846e419493dd0360a4608f48b3385c35e3d4c6be558d241bcf96364736f6c63430008190033","sourceMap":"13653:2443:81:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;;;;;-1:-1:-1;;13653:2443:81;;;;;;;;;;;;;;;;;;-1:-1:-1;;;3551:47:23;;;:87;;;;13653:2443:81;;;;;;;;;;3551:87:23;-1:-1:-1;;;1133:40:29;;-1:-1:-1;3551:87:23;;;13653:2443:81;-1:-1:-1;13653:2443:81;;;;;;;;-1:-1:-1;;13653:2443:81;;;;;;1537:38:76;-1:-1:-1;;;;;13653:2443:81;;;;;;;;;;;;-1:-1:-1;;13653:2443:81;;;;;;1632:54:76;-1:-1:-1;;;;;13653:2443:81;;;;;;;;;;;;-1:-1:-1;;13653:2443:81;;;;;;1743:56:76;-1:-1:-1;;;;;13653:2443:81;;;;;;;;;;;;-1:-1:-1;;13653:2443:81;;;;;;-1:-1:-1;;;;;13653:2443:81;;;;;;;;3217:103:28;;;:::i;:::-;13653:2443:81;;-1:-1:-1;;;4285:48:76;;4322:10;13653:2443:81;4285:48:76;;13653:2443:81;;;;;-1:-1:-1;;;;;4295:16:76;13653:2443:81;4285:48:76;;;;;;;-1:-1:-1;4285:48:76;;;13653:2443:81;4284:49:76;;4280:99;;-1:-1:-1;;;;;13653:2443:81;-1:-1:-1;;4322:10:76;297:2:88;13653:2443:81;;267:46:88;4459:27:76;;;;13653:2443:81;;4459:15:76;13653:2443:81;;;;;;;4459:27:76;13653:2443:81;4459:37:76;4455:87;;4654:38;4552:27;4654:38;4552:27;;;13653:2443:81;;4459:15:76;13653:2443:81;;;;;;;4552:27:76;13653:2443:81;4631:6:76;;;;:::i;:::-;13653:2443:81;;;;;;;;;;;;;4654:38:76;;;;3282:1:28;1805;-1:-1:-1;;;;;;;;;;;13653:2443:81;3716:283:28;3282:1;13653:2443:81;4455:87:76;13653:2443:81;;-1:-1:-1;;;4519:12:76;;13653:2443:81;;4519:12:76;4280:99;13653:2443:81;;-1:-1:-1;;;4356:12:76;;13653:2443:81;;4356:12:76;4285:48;;;;13653:2443:81;4285:48:76;13653:2443:81;4285:48:76;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;:::i;13653:2443:81:-;;;;;;-1:-1:-1;;13653:2443:81;;;;;;-1:-1:-1;13653:2443:81;-1:-1:-1;;;;;;;;;;;13653:2443:81;;;4919:24:23;13653:2443:81;-1:-1:-1;13653:2443:81;4919:24:23;13653:2443:81;;;;;;;;-1:-1:-1;;;;;13653:2443:81;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;13653:2443:81;;;;;;;;-1:-1:-1;;13653:2443:81;;;;:::o;:::-;;;;;;-1:-1:-1;;13653:2443:81;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;13653:2443:81;;;;;;322:32:69;-1:-1:-1;;;;;13653:2443:81;;;;;;;;;;;;-1:-1:-1;;13653:2443:81;;;;5350:25:23;13653:2443:81;;;;;;;:::i;:::-;;-1:-1:-1;13653:2443:81;-1:-1:-1;;;;;;;;;;;13653:2443:81;;3202:4:23;4919:24;13653:2443:81;-1:-1:-1;13653:2443:81;4919:24:23;13653:2443:81;3202:4:23;:::i;:::-;5350:25;:::i;13653:2443:81:-;;;;;;-1:-1:-1;;13653:2443:81;;;;;;;;;:::i;:::-;966:10:27;-1:-1:-1;;;;;13653:2443:81;;6441:34:23;6437:102;;6549:37;13653:2443:81;;;6549:37:23;:::i;6437:102::-;13653:2443:81;;-1:-1:-1;;;6498:30:23;;13653:2443:81;;6498:30:23;13653:2443:81;;;;;;-1:-1:-1;;13653:2443:81;;;;;;;;;:::i;:::-;3217:103:28;;:::i;:::-;966:10:27;-1:-1:-1;13653:2443:81;;;;;;;;;;1356:26:76;;13653:2443:81;;4468:23:23;4464:108;;-1:-1:-1;4861:4:76;13653:2443:81;-1:-1:-1;;;;;13653:2443:81;;;;;;4861:13:76;;4857:63;;-1:-1:-1;;;;;;13653:2443:81;;;4861:4:76;13653:2443:81;4958:14:76;-1:-1:-1;;4958:14:76;4861:4;-1:-1:-1;;;;;;;;;;;13653:2443:81;;4464:108:23;13653:2443:81;;;;4514:47:23;;;;;;966:10:27;13653:2443:81;4514:47:23;;13653:2443:81;;;;;4514:47:23;13653:2443:81;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;13653:2443:81;;;;;;;:::o;:::-;;:::i;:::-;;;;;;;-1:-1:-1;;;;;13653:2443:81;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;13653:2443:81;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;13653:2443:81;;;;;;;:::o;:::-;;;;;;;:::i;:::-;:::o;:::-;;;;;;;:::i;:::-;-1:-1:-1;;;;;13653:2443:81;;;;;;-1:-1:-1;;13653:2443:81;;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;13653:2443:81;;;;;;;;;;;;;;:::o;:::-;;;;;;-1:-1:-1;;13653:2443:81;;;;;;:::i;:::-;;;-1:-1:-1;;;;;13653:2443:81;;;;;;;2045:63:79;13653:2443:81;;;;;;:::i;:::-;;;;-1:-1:-1;13653:2443:81;2045:16:79;13653:2443:81;;;-1:-1:-1;13653:2443:81;2045:63:79;:::i;:::-;13653:2443:81;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;13653:2443:81;;;;;;;;;;;;;;;:::o;:::-;;;;;;-1:-1:-1;;13653:2443:81;;;;-1:-1:-1;;;;;13653:2443:81;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;13653:2443:81;;;;;;;4301:16:25;13653:2443:81;;4726:16:25;;:34;;;;13653:2443:81;4805:1:25;4790:16;:50;;;;13653:2443:81;4855:13:25;:30;;;;13653:2443:81;4851:91:25;;;-1:-1:-1;;;;;;;;;;;13653:2443:81;;-1:-1:-1;;13653:2443:81;;;;;718:4:69;;4951:18:25;4979:67;;718:4:69;:::i;:::-;5066:101:25;;13653:2443:81;5066:101:25;-1:-1:-1;;;;;;;;;;;13653:2443:81;;-1:-1:-1;;;;13653:2443:81;;;;;-1:-1:-1;13653:2443:81;;5142:14:25;;13653:2443:81;;5142:14:25;13653:2443:81;4979:67:25;-1:-1:-1;;;;;;;;;;;13653:2443:81;;-1:-1:-1;;;;13653:2443:81;-1:-1:-1;;;13653:2443:81;;;718:4:69;:::i;4851:91:25:-;13653:2443:81;;-1:-1:-1;;;4908:23:25;;13653:2443:81;;4908:23:25;4855:30;4872:13;;;4855:30;;;4790:50;4818:4;4810:25;:30;;-1:-1:-1;4790:50:25;;4726:34;;;-1:-1:-1;4726:34:25;;13653:2443:81;;;;;;-1:-1:-1;;13653:2443:81;;;;;;13849:36;-1:-1:-1;;;;;13653:2443:81;;;;;;;;;;;;-1:-1:-1;;13653:2443:81;;;;;;;1253:6:76;13653:2443:81;;;;;;;;;-1:-1:-1;;13653:2443:81;;;;1267:23:79;13653:2443:81;;;-1:-1:-1;;;;;13653:2443:81;;;;;;;;;;;;;;-1:-1:-1;;13653:2443:81;;;;;;;1356:26:76;13653:2443:81;;;;;;;;;-1:-1:-1;;13653:2443:81;;;;;;;;-1:-1:-1;;;;;13653:2443:81;;;;;;;;;;;;;;-1:-1:-1;;13653:2443:81;;;;;;13798:45;-1:-1:-1;;;;;13653:2443:81;;;;;;;;;;;;-1:-1:-1;;13653:2443:81;;;;;;;;-1:-1:-1;;;;;13653:2443:81;;;;;;;;;;;;;;-1:-1:-1;;13653:2443:81;;;;;;961:42:79;-1:-1:-1;;;;;13653:2443:81;;;;;;;;;;;;-1:-1:-1;;13653:2443:81;;;;;;3901:31:23;13653:2443:81;;;;;:::i;:::-;;;-1:-1:-1;13653:2443:81;-1:-1:-1;;;;;;;;;;;13653:2443:81;;;-1:-1:-1;13653:2443:81;;;;;;;;;;;;;;;;;3901:31:23;13653:2443:81;;;;;;;;;;;;;;;;-1:-1:-1;;13653:2443:81;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;:::i;:::-;;;;;;-1:-1:-1;;13653:2443:81;;;;;;13891:45;-1:-1:-1;;;;;13653:2443:81;;;;;;;;;;;;-1:-1:-1;;13653:2443:81;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;13653:2443:81;;;;-1:-1:-1;13653:2443:81;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;416:25:75;;;;477:31;416:25;;:::i;:::-;13653:2443:81;;;;;;;;;;477:31:75;;13653:2443:81;;;;;;;;;;;:::i;:::-;477:31:75;13653:2443:81;;477:31:75;;;;;;:::i;:::-;518:79;;;13653:2443:81;518:79:75;;13653:2443:81;;;;;;-1:-1:-1;;13653:2443:81;;;;;;;;;;;;;;;;;-1:-1:-1;;13653:2443:81;;;;;;;-1:-1:-1;;;;;404:28:69;13653:2443:81;;;;;;;;;;-1:-1:-1;;13653:2443:81;;;;;;1439:41:76;-1:-1:-1;;;;;13653:2443:81;;;;;;;;;;;;-1:-1:-1;;13653:2443:81;;;;;;:::i;:::-;449:5:82;-1:-1:-1;;;;;13653:2443:81;435:10:82;:19;431:71;;13653:2443:81;14508:67;13653:2443;;;;-1:-1:-1;13653:2443:81;14508:16;13653:2443;;;-1:-1:-1;13653:2443:81;14508:67;:::i;:::-;13653:2443;;;;;;;;;;;;;;;;;;;431:71:82;13653:2443:81;;-1:-1:-1;;;477:14:82;;13653:2443:81;;477:14:82;13653:2443:81;;;;;;-1:-1:-1;;13653:2443:81;;;;;;-1:-1:-1;13653:2443:81;2009:67:76;13653:2443:81;;;;-1:-1:-1;13653:2443:81;;;;;;;;;;;;;;-1:-1:-1;;13653:2443:81;;;;5767:26:23;13653:2443:81;;;;;;;:::i;:::-;;-1:-1:-1;13653:2443:81;-1:-1:-1;;;;;;;;;;;13653:2443:81;;3202:4:23;4919:24;13653:2443:81;-1:-1:-1;13653:2443:81;4919:24:23;13653:2443:81;3202:4:23;:::i;:::-;5767:26;:::i;13653:2443:81:-;;;;;;-1:-1:-1;;13653:2443:81;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;-1:-1:-1;;;;;13653:2443:81;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;-1:-1:-1;;13653:2443:81;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;-1:-1:-1;;;;;13653:2443:81;;;;;;;;;;;;:::i;:::-;3217:103:28;;:::i;:::-;-1:-1:-1;13653:2443:81;;;5246:21:76;;:13;;-1:-1:-1;;;;;13653:2443:81;5246:13:76;13653:2443:81;;-1:-1:-1;;;;;13653:2443:81;;;5246:21:76;13653:2443:81;;-1:-1:-1;;;5246:23:76;;13653:2443:81;;;;;5246:23:76;;;;;;;-1:-1:-1;5246:23:76;;;13653:2443:81;-1:-1:-1;;;;;;13653:2443:81;;;5232:10:76;:37;5228:87;;5341:4;13653:2443:81;-1:-1:-1;;;;;13653:2443:81;;;;5355:469:76;;13653:2443:81;-1:-1:-1;;13653:2443:81;;;;;;;;;;;;;;;;5839:55:76;;13653:2443:81;;;;5839:55:76;;;;3282:1:28;1805;-1:-1:-1;;;;;;;;;;;13653:2443:81;3716:283:28;5355:469:76;13653:2443:81;;;;5435:94:76;;;;13653:2443:81;5435:94:76;;;;;;;;;;;;13653:2443:81;5435:94:76;;;:::i;:::-;;13653:2443:81;;5435:94:76;;;;;;:::i;:::-;13653:2443:81;5548:9:76;:51;5544:118;;-1:-1:-1;5839:55:76;5676:138;;;;5839:55;5676:138;;;1150:7;5676:138;;5355:469;;;5544:118;13653:2443:81;;-1:-1:-1;;;5626:21:76;;13653:2443:81;;5626:21:76;5228:87;13653:2443:81;;-1:-1:-1;;;5292:12:76;;13653:2443:81;;5292:12:76;5246:23;;;;;13653:2443:81;5246:23:76;13653:2443:81;5246:23:76;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;13653:2443:81;;;;;;-1:-1:-1;;13653:2443:81;;;;;;;;-1:-1:-1;;;;;13653:2443:81;;;;;;;;;;;;;;-1:-1:-1;;13653:2443:81;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;-1:-1:-1;;13653:2443:81;;;;;;;1150:7:76;13653:2443:81;;;;;;;;;-1:-1:-1;;13653:2443:81;;;;;;;2700:1:76;13653:2443:81;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;13653:2443:81;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;;;;13653:2443:81;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;15166:928::-;13653:2443;;-1:-1:-1;;;15383:99:81;;-1:-1:-1;;;;;13653:2443:81;;;15383:99;;;13653:2443;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;13653:2443:81;;;15402:20;13653:2443;;15383:99;;;;;;;;;;;15166:928;-1:-1:-1;13653:2443:81;;-1:-1:-1;;;15576:32:81;;;13653:2443;15383:99;13653:2443;;;;15576:32;;;;;;;15536:84;15576:32;15383:99;15576:32;;;;;;;15166:928;-1:-1:-1;13653:2443:81;;-1:-1:-1;;;15536:84:81;;-1:-1:-1;;;;;13653:2443:81;;;15383:99;15536:84;;13653:2443;;;;;;;;;;;;;-1:-1:-1;13653:2443:81;;;;;;;;;15536:84;;15547:11;;13653:2443;15536:84;;;;;;;15383:99;15536:84;;;15166:928;15667:53;;;;;:::i;:::-;13653:2443;;;15735:21;;;:52;;;15166:928;15735:88;;;;15166:928;15731:357;;15166:928;;;:::o;15731:357::-;15846:231;13653:2443;;;;15846:231;13653:2443;;;;:::i;:::-;;;;15576:32;15874:189;;13653:2443;;15874:189;;13653:2443;;;15846:231;;;15576:32;15846:231;;;:::i;15735:88::-;13653:2443;;;15791:32;;15735:88;;:52;13653:2443;;;15760:27;;15735:52;;15536:84;15667:53;15536:84;;;;;;15383:99;15536:84;;;;;;:::i;:::-;;;;;:::i;:::-;;;;15576:32;;;;;;;;;;;;;;:::i;:::-;;;;15383:99;;;;;;;;;;;;;;:::i;:::-;;;;;1914:201:79;;2045:63;1914:201;;-1:-1:-1;13653:2443:81;2045:16:79;13653:2443:81;;;-1:-1:-1;13653:2443:81;2045:63:79;:::i;13653:2443:81:-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;:::i;14588:572::-;;;-1:-1:-1;14725:12:81;13653:2443;;;;;14871:159;;14915:74;;;;14871:159;;;;;;;13653:2443;;;;;;;14871:159;;;;;:::i;:::-;13653:2443;;716:88:82;;13653:2443:81;716:88:82;;;;;;;;;783:4;14871:159:81;716:88:82;;13653:2443:81;;;;;;;;;;;:::i;:::-;716:88:82;13653:2443:81;716:88:82;13653:2443:81;;716:88:82;;;;;;;;:::i;:::-;698:107;;;;;857:45;698:107;;:::i;:::-;13653:2443:81;;;;857:45:82;;;;;;:::i;:::-;916:8;;912:175;;13653:2443:81;;;14779:303;13653:2443;;14779:303;;;;;;:::i;:::-;15093:61;;;;14588:572;;;:::o;15093:61::-;15126:17;13653:2443;;;;15126:17;13653:2443;;15126:17;;;;;13653:2443;;;;;;;;;;;;15126:17;;;;;;;;;:::i;912:175:82:-;13653:2443:81;;;;944:22:82;;;940:36;;990:87;;13653:2443:81;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;-1:-1:-1;13653:2443:81;;;;:::o;:::-;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;;;;13653:2443:81;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::o;:::-;-1:-1:-1;;;;;13653:2443:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;2764:920:76:-;;2978:48;2764:920;;;;2978:48;;;;:::i;:::-;3036:36;;;13653:2443:81;;:::i;:::-;;;;3086:20:76;3082:107;;2764:920;3216:11;;;;:193;;;;;2764:920;3216:394;;;;2764:920;3199:455;;;;;;2764:920;:::o;3199:455::-;3635:8;-1:-1:-1;3635:8:76;:::o;3216:394::-;3553:39;;;;;3430:180;3553:39;;;13653:2443:81;;;;;;;;;;3430:180:76;;467:2:88;13653:2443:81;3430:180:76;;;;;:::i;:::-;;13653:2443:81;3444:31:76;-1:-1:-1;;;;;13653:2443:81;3430:180:76;;;;;;;-1:-1:-1;3430:180:76;;;3216:394;3429:181;;3216:394;;;;;;3430:180;;;;3553:39;3430:180;3553:39;3430:180;;;;;;;:::i;:::-;;;;3216:193;-1:-1:-1;13653:2443:81;;;-1:-1:-1;;;;;;13653:2443:81;3248:161:76;3354:37;;;13653:2443:81;3248:161:76;13653:2443:81;;;;;;;;;;3248:161:76;;;;;;;:::i;:::-;;13653:2443:81;3262:29:76;-1:-1:-1;;;;;13653:2443:81;3248:161:76;;;;;;;-1:-1:-1;3248:161:76;;;3216:193;3247:162;;3216:193;;;3248:161;;;;;;;;;;;;;;:::i;:::-;;;;3082:107;3139:39;;;;;;;;;;;;;:::i;:::-;3082:107;;;;;13653:2443:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;8889:1:86;13653:2443:81;;;;;;;:::o;:::-;;:::i;3740:389:76:-;3918:5;13653:2443:81;;;-1:-1:-1;;;3853:71:76;;;-1:-1:-1;;;;;13653:2443:81;;;3853:71:76;;;13653:2443:81;;;;;;;;3740:389:76;;13653:2443:81;3853:71:76;;13653:2443:81;;3853:71:76;13653:2443:81;;;3867:29:76;13653:2443:81;;3853:71:76;;;;;;;3918:5;3853:71;;;3740:389;3852:72;;13653:2443:81;;;3852:181:76;;3740:389;3835:242;;;;;;4094:28;;;:::i;3835:242::-;4058:8;;3918:5;4058:8;:::o;3852:181::-;13653:2443:81;;3945:88:76;;;-1:-1:-1;;;;;13653:2443:81;;3853:71:76;3945:88;;13653:2443:81;467:2:88;13653:2443:81;;;;;;;;-1:-1:-1;13653:2443:81;;;;;;;;3959:31:76;13653:2443:81;3945:88:76;;;;;;;3918:5;3945:88;;;3852:181;3944:89;;;3852:181;;;;;3945:88;;;;;;-1:-1:-1;3945:88:76;;;;;;:::i;:::-;;;;;3853:71;;;;;;;;;;;;;;:::i;:::-;;;;3326:384:28;-1:-1:-1;;;;;;;;;;;1847:1:28;13653:2443:81;;3526:20:28;3522:88;;1847:1;13653:2443:81;;3326:384:28:o;3522:88::-;13653:2443:81;;-1:-1:-1;;;3569:30:28;;;;;3164:253:79;3261:7;13653:2443:81;-1:-1:-1;;;;;13653:2443:81;467:2:88;13653:2443:81;;;3261:31:79;3257:85;;-1:-1:-1;13653:2443:81;3351:16:79;13653:2443:81;;;-1:-1:-1;13653:2443:81;;;837:15:62;;;14369:24:58;14365:103;;837:15:62;;13653:2443:81;6360:12:86;;;;13653:2443:81;;;6360:24:86;6356:75;;3164:253:79;6474:30:86;;;:::i;:::-;13653:2443:81;;;;;;;;10303:8:60;;:63;:8;;;:63;-1:-1:-1;10303:63:60;;-1:-1:-1;;;;;13653:2443:81;;;;10726:7:86;13653:2443:81;;10736:17:86;;;;:::i;:::-;10726:31;;;6604:24;;;10726:31;-1:-1:-1;;6600:188:86;;;6657:7;;6644:29;6657:7;;;;6644:21;6657:7;;:::i;:::-;6644:21;;:::i;:::-;:29;13653:2443:81;;;;;;;;;;;;;;;;;;;;;6600:188:86;6753:24;13653:2443:81;8167:38:60;13653:2443:81;;8167:38:60;;:::i;:::-;6753:24:86;;;:::i;6604:::-;13653:2443:81;6614:14:86;;;-1:-1:-1;6604:24:86;;;;10726:31;;;;10303:63:60;13653:2443:81;;;;;;;;;;13267:109:86;-1:-1:-1;13267:109:86;13653:2443:81;-1:-1:-1;13267:109:86;;;13653:2443:81;;;10303:63:60;;;6356:75:86;6400:20;;;:::i;:::-;6356:75;;14365:103:58;13653:2443:81;;-1:-1:-1;;;14416:41:58;;14447:2;3261:7:79;14416:41:58;;13653:2443:81;837:15:62;13653:2443:81;;;;;;14416:41:58;3257:85:79;13653:2443:81;;-1:-1:-1;;;3315:16:79;;3261:7;;3315:16;4148:103:23;-1:-1:-1;13653:2443:81;;;-1:-1:-1;;;;;;;;;;;13653:2443:81;;;;;;;;966:10:27;13653:2443:81;;;;;;;;;;4468:23:23;4464:108;;4148:103;:::o;7270:387::-;-1:-1:-1;;;;;13653:2443:81;;-1:-1:-1;13653:2443:81;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2887:71:23;13653:2443:81;;;;-1:-1:-1;13653:2443:81;;;;;;;;;;;-1:-1:-1;;;;;13653:2443:81;;;;;;;;;;-1:-1:-1;;13653:2443:81;7509:4:23;13653:2443:81;;;966:10:27;;-1:-1:-1;;;;;13653:2443:81;-1:-1:-1;7532:40:23;-1:-1:-1;;7532:40:23;7509:4;7586:11;:::o;7270:387::-;-1:-1:-1;;;;;13653:2443:81;;-1:-1:-1;13653:2443:81;;;;;;;;;1356:26:76;;-1:-1:-1;;;;;;;;;;;2887:71:23;13653:2443:81;;3901:31:23;13653:2443:81;;;;-1:-1:-1;13653:2443:81;;;;;;;;;;;-1:-1:-1;;;;;13653:2443:81;;;;;;;;;;-1:-1:-1;;13653:2443:81;7509:4:23;13653:2443:81;;;966:10:27;;-1:-1:-1;;;;;13653:2443:81;;7532:40:23;-1:-1:-1;;7532:40:23;7509:4;7586:11;:::o;7432:219::-;7628:12;;;-1:-1:-1;7628:12:23;:::o;7270:387::-;-1:-1:-1;13653:2443:81;;;-1:-1:-1;;;;;;;;;;;13653:2443:81;;;;;;;;-1:-1:-1;;;;;13653:2443:81;;;;;;;;;;;;3901:31:23;13653:2443:81;7892:388:23;-1:-1:-1;13653:2443:81;;;-1:-1:-1;;;;;;;;;;;13653:2443:81;;;;;;;;-1:-1:-1;;;;;13653:2443:81;;;;;;;;;;;;;;;;-1:-1:-1;13653:2443:81;;;;;;;;;;;-1:-1:-1;;;;;13653:2443:81;;;;;;;;;;-1:-1:-1;;13653:2443:81;;;966:10:27;;-1:-1:-1;;;;;13653:2443:81;;8155:40:23;-1:-1:-1;;8155:40:23;13653:2443:81;8209:11:23;:::o;13653:2443:81:-;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;13653:2443:81;;;;;;;;:::o;:::-;;;;;;;;;;;;;:::o;7558:604:86:-;;13653:2443:81;;7686:17:86;7682:83;;13653:2443:81;7789:27:86;13653:2443:81;7789:27:86;13653:2443:81;;7789:27:86;;;;;;:::i;:::-;7860:14;;;;;:::i;:::-;13653:2443:81;;;;;;;;;;;;;;;;7888:22:86;;;7884:77;;7975:21;-1:-1:-1;7975:84:86;;;;7558:604;7971:139;;;;8127:28;;;;:::i;7971:139::-;8082:17;;7789:27;8082:17;13653:2443:81;8075:24:86;:::o;7975:84::-;13653:2443:81;;;8009:16:86;13653:2443:81;;8009:16:86;:::i;:::-;13653:2443:81;;;8001:24:86;:57;;;;;7975:84;;;;;;;8001:57;8029:29;8038:8;;;8029:18;8038:8;8029:23;8038:8;;:::i;:::-;8029:18;;:::i;:::-;13653:2443:81;;;;;8029:23:86;13653:2443:81;;;;8029:29:86;;8001:57;;;;7884:77;7933:17;;;;;7789:27;7933:17;13653:2443:81;7926:24:86;:::o;7682:83::-;7726:28;;;;:::i;13653:2443:81:-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;13653:2443:81;;;;;;;;:::i;5907:716:76:-;6030:34;5907:716;6030:34;;;;:::i;:::-;13653:2443:81;;-1:-1:-1;;;6080:41:76;;-1:-1:-1;;;;;13653:2443:81;;;6080:41:76;;;13653:2443:81;;;;;6080:41:76;13653:2443:81;;;6090:13:76;13653:2443:81;;6080:41:76;;;;;;;-1:-1:-1;6080:41:76;;;5907:716;6079:42;;6075:90;;6266:27;13653:2443:81;2540:111:28;6210:14:76;13653:2443:81;2540:111:28;;;:::i;:::-;13653:2443:81;;;;;;-1:-1:-1;;;;;13653:2443:81;;-1:-1:-1;13653:2443:81;;;-1:-1:-1;13653:2443:81;;6210:14:76;6266:27;:::i;:::-;6080:41;6311:15;;13653:2443:81;;;;-1:-1:-1;;;;;;13653:2443:81;-1:-1:-1;;;;;13653:2443:81;;;;;;;;;;;-1:-1:-1;;;;;13653:2443:81;;;;6337:143:76;;5907:716;-1:-1:-1;6493:28:76;13653:2443:81;-1:-1:-1;;;;;13653:2443:81;;;;;;;6489:128:76;;5907:716;:::o;6489:128::-;6551:55;;;:::i;:::-;;5907:716::o;6337:143::-;6404:65;;;:::i;:::-;;6337:143;;;6075:90;13653:2443:81;;-1:-1:-1;;;6144:10:76;;6080:41;;6144:10;6080:41;;;;;;;;;;;;;;:::i;:::-;;;;13653:2443:81;;;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;13653:2443:81;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::o;:::-;;;;;;;;-1:-1:-1;13653:2443:81;;-1:-1:-1;13653:2443:81;;;-1:-1:-1;13653:2443:81;:::o;:::-;;;;;;;;;;;;8406:869:86;;;13653:2443:81;;8620:15:86;8578:11;8645:18;8678:7;8684:1;8678:7;;8674:241;;8406:869;8939:60;;;;;:::i;:::-;9014:8;;;9010:62;;9252:15;9259:7;13653:2443:81;9219:31:86;13653:2443:81;9130:48:86;9170:7;;;:::i;:::-;9130:48;13267:109;;;;;;13089:293;;9130:48;13653:2443:81;:::i;:::-;;9176:1:86;13653:2443:81;9232:17:86;13653:2443:81;;;;;;;;9232:17:86;;13653:2443:81;-1:-1:-1;;;;;13653:2443:81;;;;9219:12:86;;:31;:::i;:::-;13653:2443:81;;;;;;;;;9259:7:86;;:::i;:::-;13653:2443:81;;;;9252:15:86;9176:1;;9188:80;;8406:869::o;9010:62::-;8578:11;;-1:-1:-1;8578:11:86;;-1:-1:-1;8578:11:86;;;;9038:23::o;8674:241::-;8721:14;;;;;:::i;:::-;13653:2443:81;;;;;;;8939:60:86;13267:109;;8578:11;13267:109;8753:55;8759:49;13267:109;;8578:11;13267:109;;13653:2443:81;;;;;;8753:55:86;13653:2443:81;;;8753:55:86;13267:109;;;8828:10;8749:156;8674:241;;8749:156;8883:7;;;;;;:::i;:::-;8749:156;8674:241;;13653:2443:81;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;;;;13653:2443:81;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;:::i;2121:740:79:-;;;;;13653:2443:81;;:::i;:::-;;;;2362:16:79;2358:92;;2121:740;-1:-1:-1;;2464:7:79;13653:2443:81;467:2:88;13653:2443:81;;;-1:-1:-1;;;;;13653:2443:81;;;2464:31:79;;;;;13653:2443:81;2464:56:79;;2121:740;2460:120;;;;-1:-1:-1;13653:2443:81;2637:67:79;;13653:2443:81;;2676:27:79;;2637;;:13;;-1:-1:-1;;;;;13653:2443:81;2637:13:79;13653:2443:81;2637:27:79;2676;;;;13653:2443:81;;;;;;;;;;;2637:67:79;;;2464:7;2637:67;;;:::i;:::-;;;;;;;;;;2611:198;2637:67;-1:-1:-1;2637:67:79;;;2121:740;2763:31;2722:73;2763:31;;13653:2443:81;2763:31:79;;;2722:73;;:::i;:::-;2611:198;;:::i;:::-;2823:21;;2121:740;:::o;2637:67::-;2722:73;2637:67;;;;2676:27;2637:67;2676:27;2637:67;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;2460:120;-1:-1:-1;;2547:21:79;;-1:-1:-1;;2536:33:79:o;2464:56::-;2499:8;13653:2443:81;;;-1:-1:-1;;;;;13653:2443:81;;;2499:21:79;;;-1:-1:-1;2464:56:79;;;;2358:92;2408:31;;;;;;;;;;;;;:::i;:::-;2358:92;;;;;2867:291;2977:7;13653:2443:81;2867:291:79;;13653:2443:81;;;;-1:-1:-1;;;;;13653:2443:81;;;2977:31:79;;;;13653:2443:81;2977:56:79;;2867:291;2973:95;;;;-1:-1:-1;13653:2443:81;2977:7:79;;13653:2443:81;3094:27:79;;:25;;:13;;-1:-1:-1;;;;;13653:2443:81;3094:13:79;13653:2443:81;3094:25:79;13653:2443:81;;-1:-1:-1;;;3094:27:79;;13653:2443:81;;;;;3094:27:79;;;;;;;3085:66;3094:27;-1:-1:-1;3094:27:79;;;2867:291;3123:27;;;13653:2443:81;;4459:15:76;13653:2443:81;;;;;;;3123:27:79;13653:2443:81;3085:66:79;;:::i;3094:27::-;3123;3094;;;;;;;;;;;;;;;:::i;:::-;;;;;2977:56;3012:8;13653:2443:81;;;-1:-1:-1;;;;;13653:2443:81;;;3012:21:79;;;-1:-1:-1;2977:56:79;;;;13653:2443:81;;;-1:-1:-1;;;13653:2443:81;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::o;:::-;;;;;-1:-1:-1;;;13653:2443:81;;;;;;;;;;;;;;;:::i;6999:207:86:-;;13653:2443:81;;9594:15:60;-1:-1:-1;9619:18:60;9652:7;9658:1;9652:7;;9648:234;;6999:207:86;9906:53:60;;;;;:::i;:::-;9977:8;;;:63;-1:-1:-1;9977:63:60;;-1:-1:-1;;;;;13653:2443:81;;7168:7:86;13653:2443:81;;;7178:12:86;;:17;:12;;:17;:::i;9977:63:60:-;9992:41;10025:7;9992:48;10025:7;;:::i;:::-;9992:41;13267:109:86;;;;;;13089:293;;9992:41:60;13653:2443:81;;;;;9992:48:60;9977:63;;;9648:234;9695:14;;;;;:::i;:::-;13653:2443:81;;;;;;;9906:53:60;13267:109:86;;-1:-1:-1;13267:109:86;13653:2443:81;13267:109:86;;;-1:-1:-1;13267:109:86;;13653:2443:81;;;;;9727:48:60;9723:149;13653:2443:81;;;9795:10:60;9723:149;9648:234;;9723:149;9850:7;;;;;;:::i;:::-;9723:149;9648:234;;13653:2443:81;;;;;;;:::i;:::-;-1:-1:-1;13653:2443:81;;;;;;;:::o;11486:272:86:-;;13653:2443:81;11308:22:60;11718:31:86;11486:272;13653:2443:81;;:::i;:::-;;;;:::i;:::-;;11308:22:60;;:::i;:::-;13653:2443:81;;:::i;:::-;;11718:12:86;13653:2443:81;;;;;11731:17:86;13653:2443:81;;;;;11731:17:86;;13653:2443:81;;11718:12:86;;:31;:::i;:::-;13653:2443:81;;;;;;;;;:::i;:::-;;;;;;11731:17:86;11672:79;;13653:2443:81;11486:272:86;:::o;6893:76:25:-;;;:::i;:::-;;;:::i;:::-;1805:1:28;-1:-1:-1;;;;;;;;;;;13653:2443:81;6893:76:25:o;13653:2443:81:-;;;;;;;:::i;:::-;-1:-1:-1;13653:2443:81;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;3423:520:79:-;13653:2443:81;;:::i;:::-;;3571:30:79;13653:2443:81;;3571:30:79;;;;;;;;;;;:::i;:::-;3654:14;;;13653:2443:81;;;;-1:-1:-1;;;3617:52:79;;;-1:-1:-1;;;;;13653:2443:81;;;3617:52:79;;;13653:2443:81;3654:14:79;;13653:2443:81;;;3654:14:79;13653:2443:81;;;3627:16:79;13653:2443:81;;3617:52:79;;;;;;;-1:-1:-1;3617:52:79;;;3423:520;3616:53;;3612:103;;3768:15;3730:54;3768:15;13653:2443:81;3768:15:79;;13653:2443:81;;;;;;;;;;;;;;;3730:54:79;;;-1:-1:-1;;;;;13653:2443:81;3617:52:79;3730:54;;13653:2443:81;;;;;-1:-1:-1;13653:2443:81;;;;;;;;;3730:54:79;;3740:17;;13653:2443:81;3730:54:79;;;;;;;-1:-1:-1;3730:54:79;;;3423:520;3729:55;;;3725:106;;13653:2443:81;3617:52:79;13653:2443:81;;-1:-1:-1;;;;;13653:2443:81;;;-1:-1:-1;;;;;;13653:2443:81;;;;;;;;;3875:26:79;13653:2443:81;;;;;;;;;;3919:17:79;3423:520;:::o;3725:106::-;13653:2443:81;;-1:-1:-1;;;3807:13:79;;3617:52;;3807:13;3730:54;;;;;;-1:-1:-1;3730:54:79;;;;;;:::i;:::-;;;;;3617:52;;;;;;;;;;;;;;:::i;:::-;;;;8587:1642:57;8658:6;;8654:45;;9401:7;10201:10;10142:26;10093;10044;9995;9946;9897;9848;13653:2443:81;10189:23:57;9401:7;8663:1;13653:2443:81;;;;10826:16:57;10822:99;;8587:1642;13653:2443:81;;;;10938:15:57;10934:96;;8587:1642;13653:2443:81;;;;11047:15:57;11043:96;;8587:1642;13653:2443:81;;;;11156:15:57;11152:96;;8587:1642;13653:2443:81;;;;11265:14:57;11261:93;;8587:1642;13653:2443:81;;;;11371:14:57;11367:93;;8587:1642;13653:2443:81;;;;11477:14:57;11473:93;;8587:1642;13653:2443:81;;;11579:64:57;;8587:1642;13653:2443:81;;;9858:10:57;;;;:::i;:::-;13653:2443:81;;;;;9848:26:57;9907:10;;;;:::i;9897:26::-;9956:10;;;;:::i;9946:26::-;10005:10;;;;:::i;9995:26::-;10054:10;;;;:::i;10044:26::-;10103:10;;;;:::i;10093:26::-;10152:10;;;;:::i;10142:26::-;10201:10;;;:::i;11579:64::-;13653:2443:81;;11579:64:57;;11473:93;13653:2443:81;11511:11:57;;13653:2443:81;;11473:93:57;;;;11367;13653:2443:81;11405:11:57;;13653:2443:81;;11367:93:57;;;;11261;13653:2443:81;11299:11:57;;13653:2443:81;;11261:93:57;;;;11152:96;13653:2443:81;11191:12:57;;13653:2443:81;;11152:96:57;;;;11043;13653:2443:81;11082:12:57;;13653:2443:81;;11043:96:57;;;;10934;13653:2443:81;10973:12:57;;13653:2443:81;;10934:96:57;;;;10822:99;10862:13;;;13653:2443:81;10822:99:57;;;;12497:447:86;;12694:10;;;;;;12926:11;;;12497:447;:::o;12687:230::-;12734:23;;;;;;;:::i;:::-;13267:109;;-1:-1:-1;13267:109:86;13653:2443:81;13267:109:86;;;-1:-1:-1;13267:109:86;;13653:2443:81;;;;;-1:-1:-1;12771:136:86;13653:2443:81;;;12830:10:86;12771:136;;12687:230;;;;12771:136;13653:2443:81;;12891:1:86;13653:2443:81;;;;;;12771:136:86;13653:2443:81;;:::i;2557:104:57:-;;2641:5;;;;;;:13;2557:104;:::o;2641:13::-;;;2557:104;:::o;10552:388:60:-;13653:2443:81;;10728:8:60;;;10752:20;;10690:17;10752:20;10690:17;10752:20;10690:17;10752:20;:::o;10724:210::-;13653:2443:81;;;;;;;;;;;13267:109:86;10690:17:60;13267:109:86;;10690:17:60;13267:109:86;;;13653:2443:81;:::i;:::-;;;;;;;13267:109:86;13653:2443:81;;;;;10911:11:60;;13653:2443:81;;10886:37:60;10870:1;10886:37;;;:::o;7084:141:25:-;13653:2443:81;-1:-1:-1;;;;;;;;;;;13653:2443:81;;;;7150:18:25;7146:73;;7084:141::o;7146:73::-;13653:2443:81;;-1:-1:-1;;;7191:17:25;;;;;2774:153:57;;2900:5;;;2910;;13653:2443:81;;;;;;;;;2774:153:57;:::o;13653:2443:81:-;;;-1:-1:-1;;;13653:2443:81;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;13653:2443:81;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;11513:870:60;13653:2443:81;;11513:870:60;;;13653:2443:81;11513:870:60;11672:7;;;;13653:2443:81;11775:28:60;11795:7;;;:::i;13653:2443:81:-;;;;;;;;;;;;;;;;11877:15:60;-1:-1:-1;11873:91:60;;13653:2443:81;;12233:11:60;13653:2443:81;;;12027:16:60;13653:2443:81;;;;;;;12027:16:60;;;;12083:7;12063:43;12083:7;;12063:28;12083:7;;:::i;:::-;12063:28;13267:109:86;;;;;;13089:293;;12063:28:60;13653:2443:81;;;;;;;;;;;;;;;;;12063:43:60;12233:11;13653:2443:81;-1:-1:-1;;;;;13653:2443:81;;;;12225:27:60;;:::o;12023:189::-;13653:2443:81;;;12145:52:60;13653:2443:81;12155:41:60;13653:2443:81;;:::i;:::-;;;;;;;;12155:41:60;-1:-1:-1;;;;;13653:2443:81;;12155:41:60;;;13653:2443:81;12145:52:60;:::i;:::-;12023:189;;11873:91;13653:2443:81;;-1:-1:-1;;;11919:30:60;;;;;11668:709;12283:52;13653:2443:81;;12293:41:60;13653:2443:81;;:::i;12293:41:60:-;-1:-1:-1;;;;;13653:2443:81;;12293:41:60;;;13653:2443:81;12145:52:60;:::i;12283:::-;11678:1;12349:17;;:::o;12736:433::-;;12919:10;;;;;;13151:11;;;12736:433;:::o;12912:230::-;12959:23;;;;;;;:::i;:::-;13267:109:86;;-1:-1:-1;13267:109:86;13653:2443:81;13267:109:86;;;-1:-1:-1;13267:109:86;;13653:2443:81;;;;;-1:-1:-1;12996:136:60;13653:2443:81;;;13055:10:60;12996:136;;12912:230;;;;12996:136;13653:2443:81;;13116:1:60;13653:2443:81;;;;;;12996:136:60;13653:2443:81;;:::i","linkReferences":{},"immutableReferences":{"57808":[{"start":1579,"length":32}],"57811":[{"start":3566,"length":32}],"58762":[{"start":989,"length":32},{"start":3623,"length":32},{"start":10158,"length":32}],"58765":[{"start":723,"length":32},{"start":8146,"length":32}],"58768":[{"start":791,"length":32},{"start":6209,"length":32},{"start":6512,"length":32}],"58771":[{"start":859,"length":32},{"start":6056,"length":32},{"start":6638,"length":32}],"60387":[{"start":3099,"length":32},{"start":10279,"length":32}],"62161":[{"start":2991,"length":32},{"start":4969,"length":32}],"62163":[{"start":2757,"length":32},{"start":5130,"length":32}],"62165":[{"start":3314,"length":32}],"62368":[{"start":3697,"length":32}]}},"methodIdentifiers":{"BASE_DELEGATOR_HINTS()":"79d89614","DEFAULT_ADMIN_ROLE()":"a217fddf","FACTORY()":"2dd31000","HOOK_GAS_LIMIT()":"ff54740f","HOOK_RESERVE()":"557cab44","HOOK_SET_ROLE()":"6679191e","NETWORK_REGISTRY()":"c0cd7c3e","OPERATOR_NETWORK_OPT_IN_SERVICE()":"1a80e500","OPERATOR_REGISTRY()":"83ce0322","OPERATOR_VAULT_OPT_IN_SERVICE()":"128e5d82","OPT_IN_SERVICE_HINTS()":"9b656b22","TYPE()":"bb24fe8a","VAULT_FACTORY()":"103f2907","VAULT_HINTS()":"45e78fcb","VERSION()":"ffa1ad74","getRoleAdmin(bytes32)":"248a9ca3","grantRole(bytes32,address)":"2f2ff15d","hasRole(bytes32,address)":"91d14854","hook()":"7f5a7c7b","initialize(bytes)":"439fab91","maxNetworkLimit(bytes32)":"d15b740e","maxNetworkLimitAt(bytes32,uint48,bytes)":"437224a3","maxNetworkLimitHint(address,bytes32,uint48)":"991d1162","maxNetworkLimitHintInternal(bytes32,uint48)":"d0f1f901","network()":"6739afca","onSlash(bytes32,address,uint256,uint48,bytes)":"e49561ee","operator()":"570ca735","renounceRole(bytes32,address)":"36568abe","revokeRole(bytes32,address)":"d547741f","setHook(address)":"3dfd3873","setMaxNetworkLimit(uint96,uint256)":"23f752d5","stake(bytes32,address)":"fd4d447c","stakeAt(bytes32,address,uint48,bytes)":"e02f6937","stakeHints(address,bytes32,address,uint48)":"25dc9708","staticDelegateCall(address,bytes)":"9f86fd85","supportsInterface(bytes4)":"01ffc9a7","vault()":"fbfa77cf"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"baseDelegatorHints\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"vaultHints\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"optInServiceHints\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"AccessControlBadConfirmation\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"neededRole\",\"type\":\"bytes32\"}],\"name\":\"AccessControlUnauthorizedAccount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AlreadySet\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CheckpointUnorderedInsertion\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ExternalCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientHookGas\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidNetwork\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotNetwork\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotOperator\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotSlasher\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotVault\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ReentrancyGuardReentrantCall\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"bits\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"SafeCastOverflowedUintDowncast\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint48\",\"name\":\"captureTimestamp\",\"type\":\"uint48\"}],\"name\":\"OnSlash\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"previousAdminRole\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"newAdminRole\",\"type\":\"bytes32\"}],\"name\":\"RoleAdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleRevoked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"hook\",\"type\":\"address\"}],\"name\":\"SetHook\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"SetMaxNetworkLimit\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"BASE_DELEGATOR_HINTS\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"DEFAULT_ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"FACTORY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"HOOK_GAS_LIMIT\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"HOOK_RESERVE\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"HOOK_SET_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"NETWORK_REGISTRY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"OPERATOR_NETWORK_OPT_IN_SERVICE\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"OPERATOR_REGISTRY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"OPERATOR_VAULT_OPT_IN_SERVICE\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"OPT_IN_SERVICE_HINTS\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"TYPE\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"VAULT_FACTORY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"VAULT_HINTS\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"VERSION\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleAdmin\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"grantRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"hook\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"}],\"name\":\"maxNetworkLimit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hint\",\"type\":\"bytes\"}],\"name\":\"maxNetworkLimitAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"}],\"name\":\"maxNetworkLimitHint\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"}],\"name\":\"maxNetworkLimitHintInternal\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"exists\",\"type\":\"bool\"},{\"internalType\":\"uint32\",\"name\":\"hint\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"network\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint48\",\"name\":\"captureTimestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"onSlash\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"operator\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"callerConfirmation\",\"type\":\"address\"}],\"name\":\"renounceRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"hook_\",\"type\":\"address\"}],\"name\":\"setHook\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint96\",\"name\":\"identifier\",\"type\":\"uint96\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"setMaxNetworkLimit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"stake\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hints\",\"type\":\"bytes\"}],\"name\":\"stakeAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"}],\"name\":\"stakeHints\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"staticDelegateCall\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"vault\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"AccessControlBadConfirmation()\":[{\"details\":\"The caller of a function is not the expected one. NOTE: Don't confuse with {AccessControlUnauthorizedAccount}.\"}],\"AccessControlUnauthorizedAccount(address,bytes32)\":[{\"details\":\"The `account` is missing a role.\"}],\"CheckpointUnorderedInsertion()\":[{\"details\":\"A value was attempted to be inserted on a past checkpoint.\"}],\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"ReentrancyGuardReentrantCall()\":[{\"details\":\"Unauthorized reentrant call.\"}],\"SafeCastOverflowedUintDowncast(uint8,uint256)\":[{\"details\":\"Value doesn't fit in an uint of `bits` size.\"}]},\"events\":{\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"OnSlash(bytes32,address,uint256,uint48)\":{\"params\":{\"amount\":\"amount of the collateral to be slashed\",\"captureTimestamp\":\"time point when the stake was captured\",\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"}},\"RoleAdminChanged(bytes32,bytes32,bytes32)\":{\"details\":\"Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole` `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite {RoleAdminChanged} not being emitted signaling this.\"},\"RoleGranted(bytes32,address,address)\":{\"details\":\"Emitted when `account` is granted `role`. `sender` is the account that originated the contract call, an admin role bearer except when using {AccessControl-_setupRole}.\"},\"RoleRevoked(bytes32,address,address)\":{\"details\":\"Emitted when `account` is revoked `role`. `sender` is the account that originated the contract call: - if using `revokeRole`, it is the admin role bearer - if using `renounceRole`, it is the role bearer (i.e. `account`)\"},\"SetHook(address)\":{\"params\":{\"hook\":\"address of the hook\"}},\"SetMaxNetworkLimit(bytes32,uint256)\":{\"params\":{\"amount\":\"new maximum subnetwork's limit (how much stake the subnetwork is ready to get)\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"}}},\"kind\":\"dev\",\"methods\":{\"VERSION()\":{\"details\":\"Must return 1 for this one.\",\"returns\":{\"_0\":\"version of the delegator\"}},\"getRoleAdmin(bytes32)\":{\"details\":\"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}.\"},\"grantRole(bytes32,address)\":{\"details\":\"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event.\"},\"hasRole(bytes32,address)\":{\"details\":\"Returns `true` if `account` has been granted `role`.\"},\"initialize(bytes)\":{\"params\":{\"data\":\"some data to use\"}},\"maxNetworkLimitAt(bytes32,uint48,bytes)\":{\"params\":{\"hint\":\"hint for checkpoint index\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\",\"timestamp\":\"time point to get the maximum subnetwork limit at\"},\"returns\":{\"_0\":\"maximum limit of the subnetwork\"}},\"onSlash(bytes32,address,uint256,uint48,bytes)\":{\"details\":\"Only the vault's slasher can call this function.\",\"params\":{\"amount\":\"amount of the collateral slashed\",\"captureTimestamp\":\"time point when the stake was captured\",\"data\":\"some additional data\",\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"}},\"renounceRole(bytes32,address)\":{\"details\":\"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `callerConfirmation`. May emit a {RoleRevoked} event.\"},\"revokeRole(bytes32,address)\":{\"details\":\"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event.\"},\"setHook(address)\":{\"details\":\"Only a HOOK_SET_ROLE holder can call this function. The hook can have arbitrary logic under certain functions, however, it doesn't affect the stake guarantees.\",\"params\":{\"hook\":\"address of the hook\"}},\"setMaxNetworkLimit(uint96,uint256)\":{\"details\":\"Only a network can call this function.\",\"params\":{\"amount\":\"new maximum subnetwork's limit\"}},\"stake(bytes32,address)\":{\"details\":\"Warning: this function is not safe to use for stake capturing, as it can change by the end of the block.\",\"params\":{\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"},\"returns\":{\"_0\":\"slashable stake until the end of the next epoch\"}},\"stakeAt(bytes32,address,uint48,bytes)\":{\"details\":\"Warning: it is not safe to use timestamp >= current one for the stake capturing, as it can change later.\",\"params\":{\"hints\":\"hints for the checkpoints' indexes\",\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\",\"timestamp\":\"time point to capture the stake at\"},\"returns\":{\"_0\":\"slashable stake at the given timestamp until the end of the consequent epoch\"}},\"staticDelegateCall(address,bytes)\":{\"details\":\"It allows to use this contract's storage on-chain.\",\"params\":{\"data\":\"data to make a delegatecall with\",\"target\":\"address of the contract to make a delegatecall to\"}},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"}},\"version\":1},\"userdoc\":{\"events\":{\"OnSlash(bytes32,address,uint256,uint48)\":{\"notice\":\"Emitted when a slash happens.\"},\"SetHook(address)\":{\"notice\":\"Emitted when a hook is set.\"},\"SetMaxNetworkLimit(bytes32,uint256)\":{\"notice\":\"Emitted when a subnetwork's maximum limit is set.\"}},\"kind\":\"user\",\"methods\":{\"FACTORY()\":{\"notice\":\"Get the factory's address.\"},\"HOOK_GAS_LIMIT()\":{\"notice\":\"Get a gas limit for the hook.\"},\"HOOK_RESERVE()\":{\"notice\":\"Get a reserve gas between the gas limit check and the hook's execution.\"},\"HOOK_SET_ROLE()\":{\"notice\":\"Get a hook setter's role.\"},\"NETWORK_REGISTRY()\":{\"notice\":\"Get the network registry's address.\"},\"OPERATOR_NETWORK_OPT_IN_SERVICE()\":{\"notice\":\"Get the operator-network opt-in service's address.\"},\"OPERATOR_REGISTRY()\":{\"notice\":\"Get the operator registry's address.\"},\"OPERATOR_VAULT_OPT_IN_SERVICE()\":{\"notice\":\"Get the operator-vault opt-in service's address.\"},\"TYPE()\":{\"notice\":\"Get the entity's type.\"},\"VAULT_FACTORY()\":{\"notice\":\"Get the vault factory's address.\"},\"VERSION()\":{\"notice\":\"Get a version of the delegator (different versions mean different interfaces).\"},\"hook()\":{\"notice\":\"Get the hook's address.\"},\"initialize(bytes)\":{\"notice\":\"Initialize this entity contract by using a given data.\"},\"maxNetworkLimit(bytes32)\":{\"notice\":\"Get a particular subnetwork's maximum limit (meaning the subnetwork is not ready to get more as a stake).\"},\"maxNetworkLimitAt(bytes32,uint48,bytes)\":{\"notice\":\"Get a particular subnetwork's maximum limit at a given timestamp using a hint (meaning the subnetwork is not ready to get more as a stake).\"},\"network()\":{\"notice\":\"Get a network the vault delegates funds to.\"},\"onSlash(bytes32,address,uint256,uint48,bytes)\":{\"notice\":\"Called when a slash happens.\"},\"operator()\":{\"notice\":\"Get an operator managing the vault's funds.\"},\"setHook(address)\":{\"notice\":\"Set a new hook.\"},\"setMaxNetworkLimit(uint96,uint256)\":{\"notice\":\"Set a maximum limit for a subnetwork (how much stake the subnetwork is ready to get). identifier identifier of the subnetwork\"},\"stake(bytes32,address)\":{\"notice\":\"Get a stake that a given subnetwork will be able to slash for a certain operator until the end of the next epoch (if no cross-slashing and no slashings by the subnetwork).\"},\"stakeAt(bytes32,address,uint48,bytes)\":{\"notice\":\"Get a stake that a given subnetwork could be able to slash for a certain operator at a given timestamp until the end of the consequent epoch using hints (if no cross-slashing and no slashings by the subnetwork).\"},\"staticDelegateCall(address,bytes)\":{\"notice\":\"Make a delegatecall from this contract to a given target contract with a particular data (always reverts with a return data).\"},\"vault()\":{\"notice\":\"Get the vault's address.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/contracts/hints/DelegatorHints.sol\":\"OperatorNetworkSpecificDelegatorHints\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol\":{\"keccak256\":\"0x6662ec4e5cefca03eeadd073e9469df8d2944bb2ee8ec8f7622c2c46aab5f225\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4d8544c6f8daa4d1bc215c6a72fe0acdb748664a105b0e5efc19295667521d45\",\"dweb:/ipfs/QmdGWqdnXT8S3RgCR6aV8XHZrsybieMQLLnug1NtpSjEXN\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0xc163fcf9bb10138631a9ba5564df1fa25db9adff73bd9ee868a8ae1858fe093a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9706d43a0124053d9880f6e31a59f31bc0a6a3dc1acd66ce0a16e1111658c5f6\",\"dweb:/ipfs/QmUFmfowzkRwGtDu36cXV9SPTBHJ3n7dG9xQiK5B28jTf2\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609\",\"dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9\",\"dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardUpgradeable.sol\":{\"keccak256\":\"0xb44e086e941292cdc7f440de51478493894ef0b1aeccb0c4047445919f667f74\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://942dad22fbdc1669f025540ba63aa3ccfad5f8458fc5d4525b31ebf272e7af45\",\"dweb:/ipfs/Qmdo4X2M82aM3AMoW2kf2jhYkSCyC4T1pHNd6obdsDFnAB\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol\":{\"keccak256\":\"0xdaba3f7c42c55b2896353f32bd27d4d5f8bae741b3b05d4c53f67abc4dc47ce8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1fa2e61141c602510bcd2cd936ed9561922ac8772a9b9c9a9db091a74e354a45\",\"dweb:/ipfs/QmcHQDDoEBwJmwUbzoVkytvJsBx3KVHYFFnDkvRGWh9Wmh\"]},\"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0xb6b36edd6a2999fd243ff226d6cbf84bd71af2432bbd0dfe19392996a1d9cb41\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1fd2f35495652e57e3f99bc6c510bc5f7dd398a176ea2e72d8ed730aebc6ca26\",\"dweb:/ipfs/QmTQV6X4gkikTib49cho5iDX3JvSQbdsoEChoDwrk3CbbH\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC1271.sol\":{\"keccak256\":\"0x85a45f3f10014a0f8be41157a32b6a5f905753ea64a4b64e29fc12b7deeecf39\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c3c74009ce36136b36c77c23935b8e4a7b4f253be2da2be4fb4a916b1ce43743\",\"dweb:/ipfs/QmcH36v3iN7SJJuF73AunLR2LtNxhVJ1wm63ph4dPZ4pcL\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC5267.sol\":{\"keccak256\":\"0x92aa1df62dc3d33f1656d63bede0923e0df0b706ad4137c8b10b0a8fe549fd92\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c5c0f29195ad64cbe556da8e257dac8f05f78c53f90323c0d2accf8e6922d33a\",\"dweb:/ipfs/QmQ61TED8uaCZwcbh8KkgRSsCav7x7HbcGHwHts3U4DmUP\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c\",\"dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0x6008dabfe393240d73d7dd7688033f72740d570aa422254d29a7dce8568f3aff\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f5196ec75139918c6c7bb4251b36395e668f1fa6d206beba7e7520e74913940d\",\"dweb:/ipfs/QmSyqjksXxmm2mCG6qRd1yuwLykypkSVBbnBnGqJRcuJMi\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x37bb49513c49c87c4642a891b13b63571bc87013dde806617aa1efb54605f386\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b3036b3a83b7c48f96641f2a9002b9f2dcb6a5958dd670894ada21ae8229b3d0\",\"dweb:/ipfs/QmUNfSBdoVtjhETaUJCYcaC7pTMgbhht926tJ2uXJbiVd3\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0xaf28a975a78550e45f65e559a3ad6a5ad43b9b8a37366999abd1b7084eb70721\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b7bd24e224f67f65bfadf85dc2929fa965456bb2415478bd0125471b5ce35245\",\"dweb:/ipfs/QmRaydGr8BTHs1kvaZfsNU69pKzUAGFrvABn1KiRSbE51y\"]},\"lib/openzeppelin-contracts/contracts/utils/ShortStrings.sol\":{\"keccak256\":\"0x18a7171df639a934592915a520ecb97c5bbc9675a1105607aac8a94e72bf62c6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7478e1f13da69a2867ccd883001d836b75620362e743f196376d63ed0c422a1c\",\"dweb:/ipfs/QmWywcQ9TNfwtoqAxbn25d8C5VrV12PrPS9UjtGe6pL2BA\"]},\"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0x32ba59b4b7299237c8ba56319110989d7978a039faf754793064e967e5894418\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1ae50c8b562427df610cc4540c9bf104acca7ef8e2dcae567ae7e52272281e9c\",\"dweb:/ipfs/QmTHiadFCSJUPpRjNegc5SahmeU8bAoY8i9Aq6tVscbcKR\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0x55f102ea785d8399c0e58d1108e2d289506dde18abc6db1b7f68c1f9f9bc5792\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e52e0a7765c943ef14e5bcf11e46e6139fa044be564881378349236bf2e3453\",\"dweb:/ipfs/QmZEeeXoFPW47amyP35gfzomF9DixqqTEPwzBakv6cZw6i\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0xeed0a08b0b091f528356cbc7245891a4c748682d4f6a18055e8e6ca77d12a6cf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba80ba06c8e6be852847e4c5f4492cef801feb6558ae09ed705ff2e04ea8b13c\",\"dweb:/ipfs/QmXRJDv3xHLVQCVXg1ZvR35QS9sij5y9NDWYzMfUfAdTHF\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/EIP712.sol\":{\"keccak256\":\"0x999f705a027ed6dc2d4e0df2cc4a509852c6bfd11de1c8161bf88832d0503fd0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0798def67258d9a3cc20b2b4da7ebf351a5cefe0abfdd665d2d81f8e32f89b21\",\"dweb:/ipfs/QmPEvJosnPfzHNjKvCv2D3891mA2Ww8eUwkqrxBjuYdHCt\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol\":{\"keccak256\":\"0xba333517a3add42cd35fe877656fc3dfcc9de53baa4f3aabbd6d12a92e4ea435\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2ceacff44c0fdc81e48e0e0b1db87a2076d3c1fb497341de077bf1da9f6b406c\",\"dweb:/ipfs/QmRUo1muMRAewxrKQ7TkXUtknyRoR57AyEkoPpiuZQ8FzX\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/SignatureChecker.sol\":{\"keccak256\":\"0x6b11eb41a228cca35d4b662b4df69fcd75192851365102690f57b2ac01e83fe6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ab006a2983ed350d2af21ddcdd835dcae3b8340086cc4d088460da5abd041f69\",\"dweb:/ipfs/QmbEacDhkJZiGrgzLjB4pNtE8Z1uudjDw1DvcDUTVQFsLG\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875\",\"dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0xe19a4d5f31d2861e7344e8e535e2feafb913d806d3e2b5fe7782741a2a7094fe\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4aed79c0fa6f0546ed02f2f683e8f77f0fd2ed7eb34d8bbf3d373c9a6d95b13c\",\"dweb:/ipfs/QmWqVz6UAVqmnWU5pqYPt1o6iDEZyPaBraAA3rKfTTSfYj\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x5f7e4076e175393767754387c962926577f1660dd9b810187b9002407656be72\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7d533a1c97cd43a57cd9c465f7ee8dd0e39ae93a8fb8ff8e5303a356b081cdcc\",\"dweb:/ipfs/QmVBEei6aTnvYNZp2CHYVNKyZS4q1KkjANfY39WVXZXVoT\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/Checkpoints.sol\":{\"keccak256\":\"0xbdc5e074d7dd6678f67e92b1a51a20226801a407b0e1af3da367c5d1ff4519ad\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a36cca6b22fff3db16fc789ff6c60eea71d4b156065d4d0c83a0bc5e91a77a8b\",\"dweb:/ipfs/QmYN3exd5AemxjBrN8XMB1p5LbbE16uC3sjbYjwi8AjcGR\"]},\"lib/openzeppelin-contracts/contracts/utils/types/Time.sol\":{\"keccak256\":\"0xc7755af115020049e4140f224f9ee88d7e1799ffb0646f37bf0df24bf6213f58\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7f09bf94d5274334ec021f61a04659db303f31e60460e14b709c9bf187740111\",\"dweb:/ipfs/QmNvgomZYUwFAt4cZbPWAiTeSZQreGehY9BK5xyVJsUttb\"]},\"src/contracts/common/Entity.sol\":{\"keccak256\":\"0x3d61a932995b8443381f3950542d388223a2c26dd5d29a3274dea3baa7388bd7\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://7cdf5f03ca72fd263fd32ff59c8d88ddca911ae83896a287d10772c1bbe9b138\",\"dweb:/ipfs/QmbP84r5BWT1Rn9AYTntWSf3xUMTTCohTZJFhbBhDXFoHa\"]},\"src/contracts/common/MigratableEntity.sol\":{\"keccak256\":\"0x2d736f4dacd5d7e7697503bc426c78b8250fe1694ca157965ec178da6807de58\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://f1237acf96b4b9f9b69156e068eddd726a6e15bd8e87a18dc999cd4ba4da069c\",\"dweb:/ipfs/QmS6M8fiFFSeuJ4ZKKq1z8W7w4ybeHQSy5TLASGoc1LVic\"]},\"src/contracts/common/StaticDelegateCallable.sol\":{\"keccak256\":\"0x350029aa8955eacaffffaeb58babc5c98e80ebc5c5db388ed17ee6465f4a9d90\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://eb392a8ee9050e0af606897df63e3404e3829e8b688b580663892f9664195764\",\"dweb:/ipfs/QmaXC8jqV8UrrAFkzXTEv2fJF56sy33HhLxAzaRZmUxuXD\"]},\"src/contracts/delegator/BaseDelegator.sol\":{\"keccak256\":\"0x7c54d491fdd4415b764a9c8defa068e56d4c0c8c9419be0053a1d377669290e8\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://9238bfbad0f6eeb0dc7727724de14380f1980b395902269703d5e2ef07e52e10\",\"dweb:/ipfs/QmPJn1V4HNXcEghYvogGuSTF24dSQUPosR5qtsXcmNqRm3\"]},\"src/contracts/delegator/FullRestakeDelegator.sol\":{\"keccak256\":\"0x0a81c4f8e72914563a9cb771e93acf889c71ea36b7bec040e4eb562b199d5af1\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://6fc66b6ba02da77046a0bbbd1dd407a62c08f52e04486c9cbd2cb1cca3da555f\",\"dweb:/ipfs/QmZQivK1ZnMxfRQQ5aLpV9co5u55wQVNev5Rg1hzAqxhkE\"]},\"src/contracts/delegator/NetworkRestakeDelegator.sol\":{\"keccak256\":\"0xd3a8e6522f9c6fdcc2da837c9023afd6bdff2bce45a35590320c475519e3636d\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://58b17a87f6554f08376f9ea7fedf486a4aa75801bf0ad8b23ff5a46959b6b7a3\",\"dweb:/ipfs/QmSTmNh67tYt8CmjVZb57r8N3qX5yeYdMApKPJm3qvQgQw\"]},\"src/contracts/delegator/OperatorNetworkSpecificDelegator.sol\":{\"keccak256\":\"0x031a10722b9ec49048f0952710401131290adb87e71caf294e864e7ac3b98a16\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://72428febc875134b2f29205e6f294634a1c22a7d5c78d6a9cb2f8196f107c9b5\",\"dweb:/ipfs/QmTPwXR6h5oytckmkLrHdKeEMdphJxceDhYUR4zvQeWAwY\"]},\"src/contracts/delegator/OperatorSpecificDelegator.sol\":{\"keccak256\":\"0x630ce62fa30b9f3349ab7a8cf8dbf041319febc6dd757be2f94d3d25944ed328\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://c2ac59d47ce57d2a6819ae9833e1a618a371eccff93eb5ab367b201b01f42bfa\",\"dweb:/ipfs/QmdBpGMBivpNPv2WbH8vnCUy5xkVeaxQvGgqi33vKCz1kA\"]},\"src/contracts/hints/DelegatorHints.sol\":{\"keccak256\":\"0x44aa0c396311a54afbc7c73e8dadeed41e3165a4fd13f712b27d63d50fc3376d\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://2f255214f3531fc707d88be0d56a7a0aed4180439316d099d760d9118aa83093\",\"dweb:/ipfs/QmZD1w5p1ukJSXumUAjvxwGmkPhn7vsr21Y2atLGEZR2oi\"]},\"src/contracts/hints/Hints.sol\":{\"keccak256\":\"0x8b565df1ae35993c097a9e642002782a8f451f6fd01809cad6bcd345bdf1b99c\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://99a19adb01e350a92f534095b3078229df1f2f83077992d75d58d8684be45971\",\"dweb:/ipfs/QmbmwcuswVbzvwHQFTtrJG86oV98GnfxqYTb8cV8u1acox\"]},\"src/contracts/hints/OptInServiceHints.sol\":{\"keccak256\":\"0x95d9407900d27b9f4a1233b772aeed809c07b2dc5b31cfc9fa77ca26514c49e5\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://a13a8877e312d7e6b8b85bde3668c5d84ff5ecc83f762cd573f2b7104c64eb42\",\"dweb:/ipfs/QmYV2J55acuGzCNnS3juABuUHY5U1xc8g8o9jwEyFFdeG5\"]},\"src/contracts/hints/VaultHints.sol\":{\"keccak256\":\"0xccb505b7159b769cc114d67b87c2de6b106557f667fc8f3780114baad5c3c442\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://6d0c80a908fc16e96a8b5605a0bd53f9e89ad0ef0a738fbbae80ba4d3160749b\",\"dweb:/ipfs/QmXo5UtWoR8YmunqcbBU8rQMm1nvmvjNPoXcVrDhh4pEwR\"]},\"src/contracts/libraries/Checkpoints.sol\":{\"keccak256\":\"0xba90097c8bfe0a975499428b5f8ac5569483c7d92ccc28c12d70de416aae040c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://12f5d93ca94cd06d3147db68993165a58e17903ed53682560de61f3085ad4609\",\"dweb:/ipfs/QmePiuAqvXprMLmFZkGZeGjvGPAvsEDHfCDv7BoQhXu9xE\"]},\"src/contracts/libraries/ERC4626Math.sol\":{\"keccak256\":\"0x8441160513c1cbeb1c3b9ee077bcc7e7ce20006b52a77c8dd39ff0ef89699939\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://943f8cc3e26ddf649f465f40c909819f5c864717c4baa339e9e403b9374a4653\",\"dweb:/ipfs/QmXPxi1sUDsrGprZdUgCzoPEosaZMv9ZhygWQ1vAi1phAB\"]},\"src/contracts/libraries/Subnetwork.sol\":{\"keccak256\":\"0xf5ef5506fd66082b3c2e7f3df37529f5a8efad32ac62e7c8914bd63219190bfe\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba031a54ee0d0e9a270c2b9e18437f5668cfeb659cfd5fe0677459d7fcac2a56\",\"dweb:/ipfs/QmReP3H7qQ78tAfgLnJKsNEQNCQfF1X1Get38Ffd4kzq32\"]},\"src/contracts/service/OptInService.sol\":{\"keccak256\":\"0x4e0932077f2686b7990e10d59deb2535334c0d09e52ef6e57c6ab09eca21c4b1\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://7c00d311032ed4a1743aca7475f3c86ce15cdfc2218108efc3731c03d34a5278\",\"dweb:/ipfs/QmUGGfVwVhaHr5kS4177yKKYiLYzi5qZpkEmvYxBZqazxf\"]},\"src/contracts/vault/Vault.sol\":{\"keccak256\":\"0x2ceff6ed3298c4cad144c99fcc79b51cb9397d6ebef00285b915848b476f8c2e\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://11f2fb3581854f3ab6e82e8d4935d9eb510c903a13c3f022346c2956a58f5307\",\"dweb:/ipfs/QmdUnoXoyYoG9SGWyQZCFyLDRUUX3eXyXetkRvw6jxqqBz\"]},\"src/contracts/vault/VaultStorage.sol\":{\"keccak256\":\"0x57db25b127d77ea3472de53e3a4af3354399655b9268638b99ca5925fa364a56\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://aa763d9a6ec508ae3abfb8228b72b9fd9525279e5135d4962e79ff059feb1173\",\"dweb:/ipfs/QmcbDR6E9wyEpu6V2FkEC4hnWy47zXA9LSKJde6zSGd33Q\"]},\"src/interfaces/common/IEntity.sol\":{\"keccak256\":\"0x8ef4b63d6da63489778ccd5f8d13ebdd527dd4b62730b2c616df5af7474d2d21\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a8d69576a9219d85c50816a18ad53a4d53cfcb27ed38b8cccc808dc2734b71b\",\"dweb:/ipfs/QmYVN3P4Q4REvBWJ97TbAcaxm3uyB2anV6NSGa6ZtSwcEv\"]},\"src/interfaces/common/IMigratableEntity.sol\":{\"keccak256\":\"0x8f5f2809f3afbe8ebfbb365dd7b57b4dd3b6f9943a6187eaf648d45895b8e3c4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ffe640537d539e7a4fde70d30d3e4c57f4ba9c2c25c450cea713aae38e8fd5c\",\"dweb:/ipfs/QmSUTGzvdcn1R1KB7tLThMRtESsfPbeXDhhhKWGtntzBds\"]},\"src/interfaces/common/IRegistry.sol\":{\"keccak256\":\"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014\",\"dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK\"]},\"src/interfaces/common/IStaticDelegateCallable.sol\":{\"keccak256\":\"0xa335d4e81b9071b7de66ef92b43ff20671d86516eb1be46fef29a3483cd3f5d5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d464b9db863c14c05547d2b23352f2e9b7b784799cf09f6bbc4906a2a74e3516\",\"dweb:/ipfs/QmUVWzFvJz7eEbDQKiFTTzwi7TEbjcs3VmwdM4kuptAKvi\"]},\"src/interfaces/delegator/IBaseDelegator.sol\":{\"keccak256\":\"0x96bb312f032e17accce3f8f80936d99468029d6b37c9ca74acdb4b026a0148ee\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2a66dcb5b7d1a6ef6a363431ea98ebd78bc4fdd3d7a134d9b542dc66e7d025c2\",\"dweb:/ipfs/QmRhTPLd2ZAyRHmJUFUcWKs9b3if49QY17LYZuRqWmghw8\"]},\"src/interfaces/delegator/IDelegatorHook.sol\":{\"keccak256\":\"0xc51aa8d7d1f6c8043ee819b7aeb86da0e993912e1442098df897e299f01f9f46\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://adddf5cb2ba282aeb576b26efb28640f865a1721cc9b6eee8b3ee0457a2c9780\",\"dweb:/ipfs/QmNYgAmnLRwWZbhTuQhZs9rx4zcme1df5mEepkrniorSoW\"]},\"src/interfaces/delegator/IFullRestakeDelegator.sol\":{\"keccak256\":\"0xa3c8cb2e45d4d8ce90e95263bea40c01dc400f05ad65bc29597d878606be5e7d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://782cf5e201aa4cca037ebafd3807a68ff1cc721d5b8416a35244db0d0607369e\",\"dweb:/ipfs/QmQkJks6x7CKndeTPa9LxgTNygD5uEi7obhADhpq1Lsr9A\"]},\"src/interfaces/delegator/INetworkRestakeDelegator.sol\":{\"keccak256\":\"0xe7030fe30389a147fd710e3436ec346b4842695fd3e65a81b95375c9f1d633fc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://739c7e66d301778054f5c90bee45ec9438f68afba8a03eaaac52064c73b115ad\",\"dweb:/ipfs/QmfZ2ytKcTykAc76nxhg8ikUXV8NdBpetqb8W4YWPcox1Z\"]},\"src/interfaces/delegator/IOperatorNetworkSpecificDelegator.sol\":{\"keccak256\":\"0x74b95e64d29769202d45dd277bb830f623ff3d41ce77b80ce3ee4e318a5c71ec\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e512b903aae5c1b8a028c6e3f4f6223b5cb5d704503cfa6bd37b5346868f5c20\",\"dweb:/ipfs/QmZim9YExsPWtyxyeui993HTKAEmrg8MUcSkZ77Gp2JcuZ\"]},\"src/interfaces/delegator/IOperatorSpecificDelegator.sol\":{\"keccak256\":\"0x72075cab585dc17240cc3e32bc99b92f0d5627ddd988fed680e3e1a52d5a01e4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7448bc90699409ae61d85216b5efc2143a37f0f73354be2aea993bc54afca441\",\"dweb:/ipfs/QmXE4gAxM8pHosZK8mcTcj17puBx484meDCcmrDePskGHZ\"]},\"src/interfaces/service/IOptInService.sol\":{\"keccak256\":\"0x76fb5460a6d87a5705433d4fbeff7253cd75b8bbd0c888b2088f16e86ace146a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://990322019b3d11465f7024bae77ccbf7e2fe5d6fa3c754584778f37d04fa1337\",\"dweb:/ipfs/QmaSNHzcqxTkUCG9a4nqVfLECHLdjdrwAnDi3yDC7tDL24\"]},\"src/interfaces/slasher/IBaseSlasher.sol\":{\"keccak256\":\"0x7c82528b445659c313ab77335c407b0b6efe5e79027187bb287f7bc74202b404\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0274c90aa5df1aa6bb470a6aab53992fb14fd7e5472c9430416505b29647d9cf\",\"dweb:/ipfs/QmckbmJLDetPemVzCnnGcKYWAZV2BRFXGDsjiaec8jkHxx\"]},\"src/interfaces/vault/IVault.sol\":{\"keccak256\":\"0xffee01d383cd4e1a5530c614bf4360c1ef070c288abec9da1eb531b51bc07235\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://04f0046cac285d8ec44ebbb1f79dc94fab4495767190cad8364fbc1fafaadfb9\",\"dweb:/ipfs/QmUawAunwzXfCyShWfhKeThAgKtqe51hmrxvrXvM772M2R\"]},\"src/interfaces/vault/IVaultStorage.sol\":{\"keccak256\":\"0x592626f13754194f83047135de19229c49390bd59e34659b1bb38be71d973a22\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://06a6a9dfddd05e580b32bebe2cff4f63ba26a653180676d58225dd30d9c89d3e\",\"dweb:/ipfs/QmdgzBeY6Sxo8mGtyBxtv1tM1c2kU6J6zjeRd7vuXm4DU6\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.25+commit.b61c2a91"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"baseDelegatorHints","type":"address"},{"internalType":"address","name":"vaultHints","type":"address"},{"internalType":"address","name":"optInServiceHints","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"AccessControlBadConfirmation"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bytes32","name":"neededRole","type":"bytes32"}],"type":"error","name":"AccessControlUnauthorizedAccount"},{"inputs":[],"type":"error","name":"AlreadySet"},{"inputs":[],"type":"error","name":"CheckpointUnorderedInsertion"},{"inputs":[],"type":"error","name":"ExternalCall"},{"inputs":[],"type":"error","name":"InsufficientHookGas"},{"inputs":[],"type":"error","name":"InvalidInitialization"},{"inputs":[],"type":"error","name":"InvalidNetwork"},{"inputs":[],"type":"error","name":"NotInitialized"},{"inputs":[],"type":"error","name":"NotInitializing"},{"inputs":[],"type":"error","name":"NotNetwork"},{"inputs":[],"type":"error","name":"NotOperator"},{"inputs":[],"type":"error","name":"NotSlasher"},{"inputs":[],"type":"error","name":"NotVault"},{"inputs":[],"type":"error","name":"ReentrancyGuardReentrantCall"},{"inputs":[{"internalType":"uint8","name":"bits","type":"uint8"},{"internalType":"uint256","name":"value","type":"uint256"}],"type":"error","name":"SafeCastOverflowedUintDowncast"},{"inputs":[{"internalType":"uint64","name":"version","type":"uint64","indexed":false}],"type":"event","name":"Initialized","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32","indexed":true},{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false},{"internalType":"uint48","name":"captureTimestamp","type":"uint48","indexed":false}],"type":"event","name":"OnSlash","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"bytes32","name":"previousAdminRole","type":"bytes32","indexed":true},{"internalType":"bytes32","name":"newAdminRole","type":"bytes32","indexed":true}],"type":"event","name":"RoleAdminChanged","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"address","name":"sender","type":"address","indexed":true}],"type":"event","name":"RoleGranted","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"address","name":"sender","type":"address","indexed":true}],"type":"event","name":"RoleRevoked","anonymous":false},{"inputs":[{"internalType":"address","name":"hook","type":"address","indexed":true}],"type":"event","name":"SetHook","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"SetMaxNetworkLimit","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"BASE_DELEGATOR_HINTS","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"DEFAULT_ADMIN_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"FACTORY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"HOOK_GAS_LIMIT","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"HOOK_RESERVE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"HOOK_SET_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"NETWORK_REGISTRY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"OPERATOR_NETWORK_OPT_IN_SERVICE","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"OPERATOR_REGISTRY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"OPERATOR_VAULT_OPT_IN_SERVICE","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"OPT_IN_SERVICE_HINTS","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"TYPE","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"VAULT_FACTORY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"VAULT_HINTS","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"VERSION","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getRoleAdmin","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"grantRole"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"hasRole","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"hook","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"}],"stateMutability":"view","type":"function","name":"maxNetworkLimit","outputs":[{"internalType":"uint256","name":"value","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"uint48","name":"timestamp","type":"uint48"},{"internalType":"bytes","name":"hint","type":"bytes"}],"stateMutability":"view","type":"function","name":"maxNetworkLimitAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"delegator","type":"address"},{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"uint48","name":"timestamp","type":"uint48"}],"stateMutability":"view","type":"function","name":"maxNetworkLimitHint","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"uint48","name":"timestamp","type":"uint48"}],"stateMutability":"view","type":"function","name":"maxNetworkLimitHintInternal","outputs":[{"internalType":"bool","name":"exists","type":"bool"},{"internalType":"uint32","name":"hint","type":"uint32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"network","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint48","name":"captureTimestamp","type":"uint48"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"onSlash"},{"inputs":[],"stateMutability":"view","type":"function","name":"operator","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"callerConfirmation","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"renounceRole"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"revokeRole"},{"inputs":[{"internalType":"address","name":"hook_","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setHook"},{"inputs":[{"internalType":"uint96","name":"identifier","type":"uint96"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setMaxNetworkLimit"},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"stake","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint48","name":"timestamp","type":"uint48"},{"internalType":"bytes","name":"hints","type":"bytes"}],"stateMutability":"view","type":"function","name":"stakeAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"delegator","type":"address"},{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint48","name":"timestamp","type":"uint48"}],"stateMutability":"view","type":"function","name":"stakeHints","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"staticDelegateCall"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"vault","outputs":[{"internalType":"address","name":"","type":"address"}]}],"devdoc":{"kind":"dev","methods":{"VERSION()":{"details":"Must return 1 for this one.","returns":{"_0":"version of the delegator"}},"getRoleAdmin(bytes32)":{"details":"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}."},"grantRole(bytes32,address)":{"details":"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event."},"hasRole(bytes32,address)":{"details":"Returns `true` if `account` has been granted `role`."},"initialize(bytes)":{"params":{"data":"some data to use"}},"maxNetworkLimitAt(bytes32,uint48,bytes)":{"params":{"hint":"hint for checkpoint index","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)","timestamp":"time point to get the maximum subnetwork limit at"},"returns":{"_0":"maximum limit of the subnetwork"}},"onSlash(bytes32,address,uint256,uint48,bytes)":{"details":"Only the vault's slasher can call this function.","params":{"amount":"amount of the collateral slashed","captureTimestamp":"time point when the stake was captured","data":"some additional data","operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"}},"renounceRole(bytes32,address)":{"details":"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `callerConfirmation`. May emit a {RoleRevoked} event."},"revokeRole(bytes32,address)":{"details":"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event."},"setHook(address)":{"details":"Only a HOOK_SET_ROLE holder can call this function. The hook can have arbitrary logic under certain functions, however, it doesn't affect the stake guarantees.","params":{"hook":"address of the hook"}},"setMaxNetworkLimit(uint96,uint256)":{"details":"Only a network can call this function.","params":{"amount":"new maximum subnetwork's limit"}},"stake(bytes32,address)":{"details":"Warning: this function is not safe to use for stake capturing, as it can change by the end of the block.","params":{"operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"},"returns":{"_0":"slashable stake until the end of the next epoch"}},"stakeAt(bytes32,address,uint48,bytes)":{"details":"Warning: it is not safe to use timestamp >= current one for the stake capturing, as it can change later.","params":{"hints":"hints for the checkpoints' indexes","operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)","timestamp":"time point to capture the stake at"},"returns":{"_0":"slashable stake at the given timestamp until the end of the consequent epoch"}},"staticDelegateCall(address,bytes)":{"details":"It allows to use this contract's storage on-chain.","params":{"data":"data to make a delegatecall with","target":"address of the contract to make a delegatecall to"}},"supportsInterface(bytes4)":{"details":"See {IERC165-supportsInterface}."}},"version":1},"userdoc":{"kind":"user","methods":{"FACTORY()":{"notice":"Get the factory's address."},"HOOK_GAS_LIMIT()":{"notice":"Get a gas limit for the hook."},"HOOK_RESERVE()":{"notice":"Get a reserve gas between the gas limit check and the hook's execution."},"HOOK_SET_ROLE()":{"notice":"Get a hook setter's role."},"NETWORK_REGISTRY()":{"notice":"Get the network registry's address."},"OPERATOR_NETWORK_OPT_IN_SERVICE()":{"notice":"Get the operator-network opt-in service's address."},"OPERATOR_REGISTRY()":{"notice":"Get the operator registry's address."},"OPERATOR_VAULT_OPT_IN_SERVICE()":{"notice":"Get the operator-vault opt-in service's address."},"TYPE()":{"notice":"Get the entity's type."},"VAULT_FACTORY()":{"notice":"Get the vault factory's address."},"VERSION()":{"notice":"Get a version of the delegator (different versions mean different interfaces)."},"hook()":{"notice":"Get the hook's address."},"initialize(bytes)":{"notice":"Initialize this entity contract by using a given data."},"maxNetworkLimit(bytes32)":{"notice":"Get a particular subnetwork's maximum limit (meaning the subnetwork is not ready to get more as a stake)."},"maxNetworkLimitAt(bytes32,uint48,bytes)":{"notice":"Get a particular subnetwork's maximum limit at a given timestamp using a hint (meaning the subnetwork is not ready to get more as a stake)."},"network()":{"notice":"Get a network the vault delegates funds to."},"onSlash(bytes32,address,uint256,uint48,bytes)":{"notice":"Called when a slash happens."},"operator()":{"notice":"Get an operator managing the vault's funds."},"setHook(address)":{"notice":"Set a new hook."},"setMaxNetworkLimit(uint96,uint256)":{"notice":"Set a maximum limit for a subnetwork (how much stake the subnetwork is ready to get). identifier identifier of the subnetwork"},"stake(bytes32,address)":{"notice":"Get a stake that a given subnetwork will be able to slash for a certain operator until the end of the next epoch (if no cross-slashing and no slashings by the subnetwork)."},"stakeAt(bytes32,address,uint48,bytes)":{"notice":"Get a stake that a given subnetwork could be able to slash for a certain operator at a given timestamp until the end of the consequent epoch using hints (if no cross-slashing and no slashings by the subnetwork)."},"staticDelegateCall(address,bytes)":{"notice":"Make a delegatecall from this contract to a given target contract with a particular data (always reverts with a return data)."},"vault()":{"notice":"Get the vault's address."}},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/contracts/hints/DelegatorHints.sol":"OperatorNetworkSpecificDelegatorHints"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol":{"keccak256":"0x6662ec4e5cefca03eeadd073e9469df8d2944bb2ee8ec8f7622c2c46aab5f225","urls":["bzz-raw://4d8544c6f8daa4d1bc215c6a72fe0acdb748664a105b0e5efc19295667521d45","dweb:/ipfs/QmdGWqdnXT8S3RgCR6aV8XHZrsybieMQLLnug1NtpSjEXN"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol":{"keccak256":"0xc163fcf9bb10138631a9ba5564df1fa25db9adff73bd9ee868a8ae1858fe093a","urls":["bzz-raw://9706d43a0124053d9880f6e31a59f31bc0a6a3dc1acd66ce0a16e1111658c5f6","dweb:/ipfs/QmUFmfowzkRwGtDu36cXV9SPTBHJ3n7dG9xQiK5B28jTf2"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b","urls":["bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609","dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol":{"keccak256":"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397","urls":["bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9","dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardUpgradeable.sol":{"keccak256":"0xb44e086e941292cdc7f440de51478493894ef0b1aeccb0c4047445919f667f74","urls":["bzz-raw://942dad22fbdc1669f025540ba63aa3ccfad5f8458fc5d4525b31ebf272e7af45","dweb:/ipfs/Qmdo4X2M82aM3AMoW2kf2jhYkSCyC4T1pHNd6obdsDFnAB"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol":{"keccak256":"0xdaba3f7c42c55b2896353f32bd27d4d5f8bae741b3b05d4c53f67abc4dc47ce8","urls":["bzz-raw://1fa2e61141c602510bcd2cd936ed9561922ac8772a9b9c9a9db091a74e354a45","dweb:/ipfs/QmcHQDDoEBwJmwUbzoVkytvJsBx3KVHYFFnDkvRGWh9Wmh"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol":{"keccak256":"0xb6b36edd6a2999fd243ff226d6cbf84bd71af2432bbd0dfe19392996a1d9cb41","urls":["bzz-raw://1fd2f35495652e57e3f99bc6c510bc5f7dd398a176ea2e72d8ed730aebc6ca26","dweb:/ipfs/QmTQV6X4gkikTib49cho5iDX3JvSQbdsoEChoDwrk3CbbH"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC1271.sol":{"keccak256":"0x85a45f3f10014a0f8be41157a32b6a5f905753ea64a4b64e29fc12b7deeecf39","urls":["bzz-raw://c3c74009ce36136b36c77c23935b8e4a7b4f253be2da2be4fb4a916b1ce43743","dweb:/ipfs/QmcH36v3iN7SJJuF73AunLR2LtNxhVJ1wm63ph4dPZ4pcL"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC5267.sol":{"keccak256":"0x92aa1df62dc3d33f1656d63bede0923e0df0b706ad4137c8b10b0a8fe549fd92","urls":["bzz-raw://c5c0f29195ad64cbe556da8e257dac8f05f78c53f90323c0d2accf8e6922d33a","dweb:/ipfs/QmQ61TED8uaCZwcbh8KkgRSsCav7x7HbcGHwHts3U4DmUP"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70","urls":["bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c","dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol":{"keccak256":"0x6008dabfe393240d73d7dd7688033f72740d570aa422254d29a7dce8568f3aff","urls":["bzz-raw://f5196ec75139918c6c7bb4251b36395e668f1fa6d206beba7e7520e74913940d","dweb:/ipfs/QmSyqjksXxmm2mCG6qRd1yuwLykypkSVBbnBnGqJRcuJMi"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0x37bb49513c49c87c4642a891b13b63571bc87013dde806617aa1efb54605f386","urls":["bzz-raw://b3036b3a83b7c48f96641f2a9002b9f2dcb6a5958dd670894ada21ae8229b3d0","dweb:/ipfs/QmUNfSBdoVtjhETaUJCYcaC7pTMgbhht926tJ2uXJbiVd3"],"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/ShortStrings.sol":{"keccak256":"0x18a7171df639a934592915a520ecb97c5bbc9675a1105607aac8a94e72bf62c6","urls":["bzz-raw://7478e1f13da69a2867ccd883001d836b75620362e743f196376d63ed0c422a1c","dweb:/ipfs/QmWywcQ9TNfwtoqAxbn25d8C5VrV12PrPS9UjtGe6pL2BA"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol":{"keccak256":"0x32ba59b4b7299237c8ba56319110989d7978a039faf754793064e967e5894418","urls":["bzz-raw://1ae50c8b562427df610cc4540c9bf104acca7ef8e2dcae567ae7e52272281e9c","dweb:/ipfs/QmTHiadFCSJUPpRjNegc5SahmeU8bAoY8i9Aq6tVscbcKR"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0x55f102ea785d8399c0e58d1108e2d289506dde18abc6db1b7f68c1f9f9bc5792","urls":["bzz-raw://6e52e0a7765c943ef14e5bcf11e46e6139fa044be564881378349236bf2e3453","dweb:/ipfs/QmZEeeXoFPW47amyP35gfzomF9DixqqTEPwzBakv6cZw6i"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol":{"keccak256":"0xeed0a08b0b091f528356cbc7245891a4c748682d4f6a18055e8e6ca77d12a6cf","urls":["bzz-raw://ba80ba06c8e6be852847e4c5f4492cef801feb6558ae09ed705ff2e04ea8b13c","dweb:/ipfs/QmXRJDv3xHLVQCVXg1ZvR35QS9sij5y9NDWYzMfUfAdTHF"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/EIP712.sol":{"keccak256":"0x999f705a027ed6dc2d4e0df2cc4a509852c6bfd11de1c8161bf88832d0503fd0","urls":["bzz-raw://0798def67258d9a3cc20b2b4da7ebf351a5cefe0abfdd665d2d81f8e32f89b21","dweb:/ipfs/QmPEvJosnPfzHNjKvCv2D3891mA2Ww8eUwkqrxBjuYdHCt"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol":{"keccak256":"0xba333517a3add42cd35fe877656fc3dfcc9de53baa4f3aabbd6d12a92e4ea435","urls":["bzz-raw://2ceacff44c0fdc81e48e0e0b1db87a2076d3c1fb497341de077bf1da9f6b406c","dweb:/ipfs/QmRUo1muMRAewxrKQ7TkXUtknyRoR57AyEkoPpiuZQ8FzX"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/SignatureChecker.sol":{"keccak256":"0x6b11eb41a228cca35d4b662b4df69fcd75192851365102690f57b2ac01e83fe6","urls":["bzz-raw://ab006a2983ed350d2af21ddcdd835dcae3b8340086cc4d088460da5abd041f69","dweb:/ipfs/QmbEacDhkJZiGrgzLjB4pNtE8Z1uudjDw1DvcDUTVQFsLG"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b","urls":["bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df","dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d","urls":["bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875","dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol":{"keccak256":"0xe19a4d5f31d2861e7344e8e535e2feafb913d806d3e2b5fe7782741a2a7094fe","urls":["bzz-raw://4aed79c0fa6f0546ed02f2f683e8f77f0fd2ed7eb34d8bbf3d373c9a6d95b13c","dweb:/ipfs/QmWqVz6UAVqmnWU5pqYPt1o6iDEZyPaBraAA3rKfTTSfYj"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0x5f7e4076e175393767754387c962926577f1660dd9b810187b9002407656be72","urls":["bzz-raw://7d533a1c97cd43a57cd9c465f7ee8dd0e39ae93a8fb8ff8e5303a356b081cdcc","dweb:/ipfs/QmVBEei6aTnvYNZp2CHYVNKyZS4q1KkjANfY39WVXZXVoT"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/Checkpoints.sol":{"keccak256":"0xbdc5e074d7dd6678f67e92b1a51a20226801a407b0e1af3da367c5d1ff4519ad","urls":["bzz-raw://a36cca6b22fff3db16fc789ff6c60eea71d4b156065d4d0c83a0bc5e91a77a8b","dweb:/ipfs/QmYN3exd5AemxjBrN8XMB1p5LbbE16uC3sjbYjwi8AjcGR"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/types/Time.sol":{"keccak256":"0xc7755af115020049e4140f224f9ee88d7e1799ffb0646f37bf0df24bf6213f58","urls":["bzz-raw://7f09bf94d5274334ec021f61a04659db303f31e60460e14b709c9bf187740111","dweb:/ipfs/QmNvgomZYUwFAt4cZbPWAiTeSZQreGehY9BK5xyVJsUttb"],"license":"MIT"},"src/contracts/common/Entity.sol":{"keccak256":"0x3d61a932995b8443381f3950542d388223a2c26dd5d29a3274dea3baa7388bd7","urls":["bzz-raw://7cdf5f03ca72fd263fd32ff59c8d88ddca911ae83896a287d10772c1bbe9b138","dweb:/ipfs/QmbP84r5BWT1Rn9AYTntWSf3xUMTTCohTZJFhbBhDXFoHa"],"license":"BUSL-1.1"},"src/contracts/common/MigratableEntity.sol":{"keccak256":"0x2d736f4dacd5d7e7697503bc426c78b8250fe1694ca157965ec178da6807de58","urls":["bzz-raw://f1237acf96b4b9f9b69156e068eddd726a6e15bd8e87a18dc999cd4ba4da069c","dweb:/ipfs/QmS6M8fiFFSeuJ4ZKKq1z8W7w4ybeHQSy5TLASGoc1LVic"],"license":"BUSL-1.1"},"src/contracts/common/StaticDelegateCallable.sol":{"keccak256":"0x350029aa8955eacaffffaeb58babc5c98e80ebc5c5db388ed17ee6465f4a9d90","urls":["bzz-raw://eb392a8ee9050e0af606897df63e3404e3829e8b688b580663892f9664195764","dweb:/ipfs/QmaXC8jqV8UrrAFkzXTEv2fJF56sy33HhLxAzaRZmUxuXD"],"license":"BUSL-1.1"},"src/contracts/delegator/BaseDelegator.sol":{"keccak256":"0x7c54d491fdd4415b764a9c8defa068e56d4c0c8c9419be0053a1d377669290e8","urls":["bzz-raw://9238bfbad0f6eeb0dc7727724de14380f1980b395902269703d5e2ef07e52e10","dweb:/ipfs/QmPJn1V4HNXcEghYvogGuSTF24dSQUPosR5qtsXcmNqRm3"],"license":"BUSL-1.1"},"src/contracts/delegator/FullRestakeDelegator.sol":{"keccak256":"0x0a81c4f8e72914563a9cb771e93acf889c71ea36b7bec040e4eb562b199d5af1","urls":["bzz-raw://6fc66b6ba02da77046a0bbbd1dd407a62c08f52e04486c9cbd2cb1cca3da555f","dweb:/ipfs/QmZQivK1ZnMxfRQQ5aLpV9co5u55wQVNev5Rg1hzAqxhkE"],"license":"BUSL-1.1"},"src/contracts/delegator/NetworkRestakeDelegator.sol":{"keccak256":"0xd3a8e6522f9c6fdcc2da837c9023afd6bdff2bce45a35590320c475519e3636d","urls":["bzz-raw://58b17a87f6554f08376f9ea7fedf486a4aa75801bf0ad8b23ff5a46959b6b7a3","dweb:/ipfs/QmSTmNh67tYt8CmjVZb57r8N3qX5yeYdMApKPJm3qvQgQw"],"license":"BUSL-1.1"},"src/contracts/delegator/OperatorNetworkSpecificDelegator.sol":{"keccak256":"0x031a10722b9ec49048f0952710401131290adb87e71caf294e864e7ac3b98a16","urls":["bzz-raw://72428febc875134b2f29205e6f294634a1c22a7d5c78d6a9cb2f8196f107c9b5","dweb:/ipfs/QmTPwXR6h5oytckmkLrHdKeEMdphJxceDhYUR4zvQeWAwY"],"license":"BUSL-1.1"},"src/contracts/delegator/OperatorSpecificDelegator.sol":{"keccak256":"0x630ce62fa30b9f3349ab7a8cf8dbf041319febc6dd757be2f94d3d25944ed328","urls":["bzz-raw://c2ac59d47ce57d2a6819ae9833e1a618a371eccff93eb5ab367b201b01f42bfa","dweb:/ipfs/QmdBpGMBivpNPv2WbH8vnCUy5xkVeaxQvGgqi33vKCz1kA"],"license":"BUSL-1.1"},"src/contracts/hints/DelegatorHints.sol":{"keccak256":"0x44aa0c396311a54afbc7c73e8dadeed41e3165a4fd13f712b27d63d50fc3376d","urls":["bzz-raw://2f255214f3531fc707d88be0d56a7a0aed4180439316d099d760d9118aa83093","dweb:/ipfs/QmZD1w5p1ukJSXumUAjvxwGmkPhn7vsr21Y2atLGEZR2oi"],"license":"BUSL-1.1"},"src/contracts/hints/Hints.sol":{"keccak256":"0x8b565df1ae35993c097a9e642002782a8f451f6fd01809cad6bcd345bdf1b99c","urls":["bzz-raw://99a19adb01e350a92f534095b3078229df1f2f83077992d75d58d8684be45971","dweb:/ipfs/QmbmwcuswVbzvwHQFTtrJG86oV98GnfxqYTb8cV8u1acox"],"license":"BUSL-1.1"},"src/contracts/hints/OptInServiceHints.sol":{"keccak256":"0x95d9407900d27b9f4a1233b772aeed809c07b2dc5b31cfc9fa77ca26514c49e5","urls":["bzz-raw://a13a8877e312d7e6b8b85bde3668c5d84ff5ecc83f762cd573f2b7104c64eb42","dweb:/ipfs/QmYV2J55acuGzCNnS3juABuUHY5U1xc8g8o9jwEyFFdeG5"],"license":"BUSL-1.1"},"src/contracts/hints/VaultHints.sol":{"keccak256":"0xccb505b7159b769cc114d67b87c2de6b106557f667fc8f3780114baad5c3c442","urls":["bzz-raw://6d0c80a908fc16e96a8b5605a0bd53f9e89ad0ef0a738fbbae80ba4d3160749b","dweb:/ipfs/QmXo5UtWoR8YmunqcbBU8rQMm1nvmvjNPoXcVrDhh4pEwR"],"license":"BUSL-1.1"},"src/contracts/libraries/Checkpoints.sol":{"keccak256":"0xba90097c8bfe0a975499428b5f8ac5569483c7d92ccc28c12d70de416aae040c","urls":["bzz-raw://12f5d93ca94cd06d3147db68993165a58e17903ed53682560de61f3085ad4609","dweb:/ipfs/QmePiuAqvXprMLmFZkGZeGjvGPAvsEDHfCDv7BoQhXu9xE"],"license":"MIT"},"src/contracts/libraries/ERC4626Math.sol":{"keccak256":"0x8441160513c1cbeb1c3b9ee077bcc7e7ce20006b52a77c8dd39ff0ef89699939","urls":["bzz-raw://943f8cc3e26ddf649f465f40c909819f5c864717c4baa339e9e403b9374a4653","dweb:/ipfs/QmXPxi1sUDsrGprZdUgCzoPEosaZMv9ZhygWQ1vAi1phAB"],"license":"MIT"},"src/contracts/libraries/Subnetwork.sol":{"keccak256":"0xf5ef5506fd66082b3c2e7f3df37529f5a8efad32ac62e7c8914bd63219190bfe","urls":["bzz-raw://ba031a54ee0d0e9a270c2b9e18437f5668cfeb659cfd5fe0677459d7fcac2a56","dweb:/ipfs/QmReP3H7qQ78tAfgLnJKsNEQNCQfF1X1Get38Ffd4kzq32"],"license":"MIT"},"src/contracts/service/OptInService.sol":{"keccak256":"0x4e0932077f2686b7990e10d59deb2535334c0d09e52ef6e57c6ab09eca21c4b1","urls":["bzz-raw://7c00d311032ed4a1743aca7475f3c86ce15cdfc2218108efc3731c03d34a5278","dweb:/ipfs/QmUGGfVwVhaHr5kS4177yKKYiLYzi5qZpkEmvYxBZqazxf"],"license":"BUSL-1.1"},"src/contracts/vault/Vault.sol":{"keccak256":"0x2ceff6ed3298c4cad144c99fcc79b51cb9397d6ebef00285b915848b476f8c2e","urls":["bzz-raw://11f2fb3581854f3ab6e82e8d4935d9eb510c903a13c3f022346c2956a58f5307","dweb:/ipfs/QmdUnoXoyYoG9SGWyQZCFyLDRUUX3eXyXetkRvw6jxqqBz"],"license":"BUSL-1.1"},"src/contracts/vault/VaultStorage.sol":{"keccak256":"0x57db25b127d77ea3472de53e3a4af3354399655b9268638b99ca5925fa364a56","urls":["bzz-raw://aa763d9a6ec508ae3abfb8228b72b9fd9525279e5135d4962e79ff059feb1173","dweb:/ipfs/QmcbDR6E9wyEpu6V2FkEC4hnWy47zXA9LSKJde6zSGd33Q"],"license":"BUSL-1.1"},"src/interfaces/common/IEntity.sol":{"keccak256":"0x8ef4b63d6da63489778ccd5f8d13ebdd527dd4b62730b2c616df5af7474d2d21","urls":["bzz-raw://5a8d69576a9219d85c50816a18ad53a4d53cfcb27ed38b8cccc808dc2734b71b","dweb:/ipfs/QmYVN3P4Q4REvBWJ97TbAcaxm3uyB2anV6NSGa6ZtSwcEv"],"license":"MIT"},"src/interfaces/common/IMigratableEntity.sol":{"keccak256":"0x8f5f2809f3afbe8ebfbb365dd7b57b4dd3b6f9943a6187eaf648d45895b8e3c4","urls":["bzz-raw://0ffe640537d539e7a4fde70d30d3e4c57f4ba9c2c25c450cea713aae38e8fd5c","dweb:/ipfs/QmSUTGzvdcn1R1KB7tLThMRtESsfPbeXDhhhKWGtntzBds"],"license":"MIT"},"src/interfaces/common/IRegistry.sol":{"keccak256":"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb","urls":["bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014","dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK"],"license":"MIT"},"src/interfaces/common/IStaticDelegateCallable.sol":{"keccak256":"0xa335d4e81b9071b7de66ef92b43ff20671d86516eb1be46fef29a3483cd3f5d5","urls":["bzz-raw://d464b9db863c14c05547d2b23352f2e9b7b784799cf09f6bbc4906a2a74e3516","dweb:/ipfs/QmUVWzFvJz7eEbDQKiFTTzwi7TEbjcs3VmwdM4kuptAKvi"],"license":"MIT"},"src/interfaces/delegator/IBaseDelegator.sol":{"keccak256":"0x96bb312f032e17accce3f8f80936d99468029d6b37c9ca74acdb4b026a0148ee","urls":["bzz-raw://2a66dcb5b7d1a6ef6a363431ea98ebd78bc4fdd3d7a134d9b542dc66e7d025c2","dweb:/ipfs/QmRhTPLd2ZAyRHmJUFUcWKs9b3if49QY17LYZuRqWmghw8"],"license":"MIT"},"src/interfaces/delegator/IDelegatorHook.sol":{"keccak256":"0xc51aa8d7d1f6c8043ee819b7aeb86da0e993912e1442098df897e299f01f9f46","urls":["bzz-raw://adddf5cb2ba282aeb576b26efb28640f865a1721cc9b6eee8b3ee0457a2c9780","dweb:/ipfs/QmNYgAmnLRwWZbhTuQhZs9rx4zcme1df5mEepkrniorSoW"],"license":"MIT"},"src/interfaces/delegator/IFullRestakeDelegator.sol":{"keccak256":"0xa3c8cb2e45d4d8ce90e95263bea40c01dc400f05ad65bc29597d878606be5e7d","urls":["bzz-raw://782cf5e201aa4cca037ebafd3807a68ff1cc721d5b8416a35244db0d0607369e","dweb:/ipfs/QmQkJks6x7CKndeTPa9LxgTNygD5uEi7obhADhpq1Lsr9A"],"license":"MIT"},"src/interfaces/delegator/INetworkRestakeDelegator.sol":{"keccak256":"0xe7030fe30389a147fd710e3436ec346b4842695fd3e65a81b95375c9f1d633fc","urls":["bzz-raw://739c7e66d301778054f5c90bee45ec9438f68afba8a03eaaac52064c73b115ad","dweb:/ipfs/QmfZ2ytKcTykAc76nxhg8ikUXV8NdBpetqb8W4YWPcox1Z"],"license":"MIT"},"src/interfaces/delegator/IOperatorNetworkSpecificDelegator.sol":{"keccak256":"0x74b95e64d29769202d45dd277bb830f623ff3d41ce77b80ce3ee4e318a5c71ec","urls":["bzz-raw://e512b903aae5c1b8a028c6e3f4f6223b5cb5d704503cfa6bd37b5346868f5c20","dweb:/ipfs/QmZim9YExsPWtyxyeui993HTKAEmrg8MUcSkZ77Gp2JcuZ"],"license":"MIT"},"src/interfaces/delegator/IOperatorSpecificDelegator.sol":{"keccak256":"0x72075cab585dc17240cc3e32bc99b92f0d5627ddd988fed680e3e1a52d5a01e4","urls":["bzz-raw://7448bc90699409ae61d85216b5efc2143a37f0f73354be2aea993bc54afca441","dweb:/ipfs/QmXE4gAxM8pHosZK8mcTcj17puBx484meDCcmrDePskGHZ"],"license":"MIT"},"src/interfaces/service/IOptInService.sol":{"keccak256":"0x76fb5460a6d87a5705433d4fbeff7253cd75b8bbd0c888b2088f16e86ace146a","urls":["bzz-raw://990322019b3d11465f7024bae77ccbf7e2fe5d6fa3c754584778f37d04fa1337","dweb:/ipfs/QmaSNHzcqxTkUCG9a4nqVfLECHLdjdrwAnDi3yDC7tDL24"],"license":"MIT"},"src/interfaces/slasher/IBaseSlasher.sol":{"keccak256":"0x7c82528b445659c313ab77335c407b0b6efe5e79027187bb287f7bc74202b404","urls":["bzz-raw://0274c90aa5df1aa6bb470a6aab53992fb14fd7e5472c9430416505b29647d9cf","dweb:/ipfs/QmckbmJLDetPemVzCnnGcKYWAZV2BRFXGDsjiaec8jkHxx"],"license":"MIT"},"src/interfaces/vault/IVault.sol":{"keccak256":"0xffee01d383cd4e1a5530c614bf4360c1ef070c288abec9da1eb531b51bc07235","urls":["bzz-raw://04f0046cac285d8ec44ebbb1f79dc94fab4495767190cad8364fbc1fafaadfb9","dweb:/ipfs/QmUawAunwzXfCyShWfhKeThAgKtqe51hmrxvrXvM772M2R"],"license":"MIT"},"src/interfaces/vault/IVaultStorage.sol":{"keccak256":"0x592626f13754194f83047135de19229c49390bd59e34659b1bb38be71d973a22","urls":["bzz-raw://06a6a9dfddd05e580b32bebe2cff4f63ba26a653180676d58225dd30d9c89d3e","dweb:/ipfs/QmdgzBeY6Sxo8mGtyBxtv1tM1c2kU6J6zjeRd7vuXm4DU6"],"license":"MIT"}},"version":1},"id":81} \ No newline at end of file diff --git a/out/DelegatorHints.sol/OperatorSpecificDelegatorHints.json b/out/DelegatorHints.sol/OperatorSpecificDelegatorHints.json index d09eee0a..874ccf82 100644 --- a/out/DelegatorHints.sol/OperatorSpecificDelegatorHints.json +++ b/out/DelegatorHints.sol/OperatorSpecificDelegatorHints.json @@ -1 +1 @@ -{"abi":[{"type":"constructor","inputs":[{"name":"baseDelegatorHints","type":"address","internalType":"address"},{"name":"vaultHints","type":"address","internalType":"address"},{"name":"optInServiceHints","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"BASE_DELEGATOR_HINTS","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"DEFAULT_ADMIN_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"FACTORY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"HOOK_GAS_LIMIT","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"HOOK_RESERVE","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"HOOK_SET_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"NETWORK_LIMIT_SET_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"NETWORK_REGISTRY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"OPERATOR_NETWORK_OPT_IN_SERVICE","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"OPERATOR_REGISTRY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"OPERATOR_VAULT_OPT_IN_SERVICE","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"OPT_IN_SERVICE_HINTS","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"TYPE","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"VAULT_FACTORY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"VAULT_HINTS","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"VERSION","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"pure"},{"type":"function","name":"getRoleAdmin","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"grantRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"hasRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"hook","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"initialize","inputs":[{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"maxNetworkLimit","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"value","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"networkLimit","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"networkLimitAt","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"timestamp","type":"uint48","internalType":"uint48"},{"name":"hint","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"networkLimitHint","inputs":[{"name":"delegator","type":"address","internalType":"address"},{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"timestamp","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"networkLimitHintInternal","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"timestamp","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"exists","type":"bool","internalType":"bool"},{"name":"hint","type":"uint32","internalType":"uint32"}],"stateMutability":"view"},{"type":"function","name":"onSlash","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"captureTimestamp","type":"uint48","internalType":"uint48"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"operator","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"renounceRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"callerConfirmation","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"revokeRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setHook","inputs":[{"name":"hook_","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setMaxNetworkLimit","inputs":[{"name":"identifier","type":"uint96","internalType":"uint96"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setNetworkLimit","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"stake","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"stakeAt","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"timestamp","type":"uint48","internalType":"uint48"},{"name":"hints","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"stakeHints","inputs":[{"name":"delegator","type":"address","internalType":"address"},{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"timestamp","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"staticDelegateCall","inputs":[{"name":"target","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"vault","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"OnSlash","inputs":[{"name":"subnetwork","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"captureTimestamp","type":"uint48","indexed":false,"internalType":"uint48"}],"anonymous":false},{"type":"event","name":"RoleAdminChanged","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"previousAdminRole","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"newAdminRole","type":"bytes32","indexed":true,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"RoleGranted","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"sender","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"RoleRevoked","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"sender","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"SetHook","inputs":[{"name":"hook","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"SetMaxNetworkLimit","inputs":[{"name":"subnetwork","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"SetNetworkLimit","inputs":[{"name":"subnetwork","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"error","name":"AccessControlBadConfirmation","inputs":[]},{"type":"error","name":"AccessControlUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"neededRole","type":"bytes32","internalType":"bytes32"}]},{"type":"error","name":"AlreadySet","inputs":[]},{"type":"error","name":"CheckpointUnorderedInsertion","inputs":[]},{"type":"error","name":"DuplicateRoleHolder","inputs":[]},{"type":"error","name":"ExceedsMaxNetworkLimit","inputs":[]},{"type":"error","name":"ExternalCall","inputs":[]},{"type":"error","name":"InsufficientHookGas","inputs":[]},{"type":"error","name":"InvalidInitialization","inputs":[]},{"type":"error","name":"MissingRoleHolders","inputs":[]},{"type":"error","name":"NotInitialized","inputs":[]},{"type":"error","name":"NotInitializing","inputs":[]},{"type":"error","name":"NotNetwork","inputs":[]},{"type":"error","name":"NotOperator","inputs":[]},{"type":"error","name":"NotSlasher","inputs":[]},{"type":"error","name":"NotVault","inputs":[]},{"type":"error","name":"ReentrancyGuardReentrantCall","inputs":[]},{"type":"error","name":"SafeCastOverflowedUintDowncast","inputs":[{"name":"bits","type":"uint8","internalType":"uint8"},{"name":"value","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ZeroAddressRoleHolder","inputs":[]}],"bytecode":{"object":"0x6101e0346101d557601f6131cd38819003918201601f19168301916001600160401b0391828411858510176101d95781606092869260409687528339810103126101d55761004c836101ed565b926100648361005d602084016101ed565b92016101ed565b91306080527ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a009081549060ff82871c166101c4578080831603610180575b5050505f60a0525f60c0525f60e052610100935f8552610120935f85526101405f8152610160915f83526101809384526101a09485526101c09586525195612fcb978861020289396080518861048c015260a051886107a4015260c05188610f6c015260e0518881816105950152610fa50152518781816103bf0152612299015251868181610403015281816119720152611aa1015251858181610513015281816118d90152611b1f015251848181610dce0152612b1b015251838181610d29015261149a015251828181610b0e015261153b01525181610e700152f35b6001600160401b0319909116811790915583519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a15f80806100a2565b855163f92ee8a960e01b8152600490fd5b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b51906001600160a01b03821682036101d55756fe60806040526004361015610011575f80fd5b5f3560e01c806301ffc9a714610284578063021453481461027f578063103f29071461027a578063128e5d8214610275578063197aa7ea146102705780631a80e5001461026b57806323f752d514610266578063248a9ca31461026157806325dc97081461025c5780632dd31000146102575780632f2ff15d1461025257806336568abe1461024d5780633dfd3873146102485780633eb22c0f14610243578063439fab911461023e57806345e78fcb14610239578063557cab4414610234578063570ca7351461022f5780635d32a1c91461022a5780636679191e1461022557806379d89614146102205780637d24bb271461021b5780637f5a7c7b1461021657806383ce03221461021157806391d148541461020c5780639b656b22146102075780639f86fd8514610202578063a217fddf146101fd578063bb24fe8a146101f8578063c0cd7c3e146101f3578063d15b740e146101ee578063d547741f146101e9578063da749d2b146101e4578063e02f6937146101df578063e49561ee146101da578063fbfa77cf146101d5578063fd4d447c146101d0578063ff54740f146101cb5763ffa1ad74146101c6575f80fd5b61132d565b611310565b6112e6565b6112bf565b6110d4565b61107f565b61104a565b610ffe565b610fd4565b610f90565b610f4d565b610f33565b610e9f565b610e5b565b610dfd565b610db9565b610d91565b610d58565b610d14565b610cda565b610c89565b610b59565b610b3d565b610af9565b6109c1565b610963565b61086a565b61081f565b6107d3565b61078f565b610736565b6106c8565b610542565b6104fe565b610471565b6103ee565b6103aa565b6102de565b346102da5760203660031901126102da5760043563ffffffff60e01b81168091036102da57602090637965db0b60e01b81149081156102c9575b506040519015158152f35b6301ffc9a760e01b1490505f6102be565b5f80fd5b346102da576040806003193601126102da576004359060243590610300611b94565b825f526002602052805f2054821161039a57825f52600360205281610326825f206121eb565b1461038a5781610385916103757e899d104fc3d8820bd96540612bcc5c448c8837b13b9f7faa43ad0728f0c14f94610366875f52600360205260405f2090565b61036f42612729565b90611c93565b5050519081529081906020820190565b0390a2005b5163a741a04560e01b8152600490fd5b51631eefc06360e31b8152600490fd5b346102da575f3660031901126102da576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346102da575f3660031901126102da576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b6024359065ffffffffffff821682036102da57565b6064359065ffffffffffff821682036102da57565b6044359065ffffffffffff821682036102da57565b346102da5760403660031901126102da5761048a610432565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633036104ec5763ffffffff6104d76040926004355f526003602052835f20611d79565b91505083929192519215158352166020820152f35b604051637ca475e560e11b8152600490fd5b346102da575f3660031901126102da576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346102da5760403660031901126102da576004356001600160601b03811681036102da5760243590610572611e88565b6040516302910f8b60e31b81523360048201526020816024816001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165afa9081156106c3575f91610694575b5015610682576001600160601b03166bffffffffffffffffffffffff193360601b161790806105fc835f52600260205260405f2090565b541461067057610655817fc67e7929681aa1bccd63f52b3799bf5805f3009f197db6fdf584b14f7fbf608c9261063a855f52600260205260405f2090565b556106458185611eb7565b6040519081529081906020820190565b0390a261066e60015f80516020612f5683398151915255565b005b60405163a741a04560e01b8152600490fd5b6040516323d53b9760e21b8152600490fd5b6106b6915060203d6020116106bc575b6106ae8183610beb565b810190611355565b5f6105c5565b503d6106a4565b61136c565b346102da5760203660031901126102da576004355f525f80516020612f368339815191526020526020600160405f200154604051908152f35b6001600160a01b038116036102da57565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b346102da5760803660031901126102da5761078b61077760043561075981610701565b60443561076581610701565b61076d610447565b9160243590611451565b604051918291602083526020830190610712565b0390f35b346102da575f3660031901126102da576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346102da5760403660031901126102da5761066e6024356004356107f682610701565b805f525f80516020612f3683398151915260205261081a600160405f200154611bf0565b612123565b346102da5760403660031901126102da5760243561083c81610701565b336001600160a01b038216036108585761066e90600435612159565b60405163334bd91960e11b8152600490fd5b346102da5760203660031901126102da5760043561088781610701565b61088f611e88565b335f9081527f9ebbcbe0d2961d3fbe56ca6f679bc753bd848d3e6bb3eaf9041c51b286881d2c60205260409020547fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c9060ff161561094557506001546001600160a01b039182169181168214610670576001600160a01b03191681176001557f5bbb1d3ebb6a3ad2a0f17ff35e579a83af60604d1d3c2a4c83c62adecadf666d5f80a260015f80516020612f5683398151915255005b6044906040519063e2517d3f60e01b82523360048301526024820152fd5b346102da5760203660031901126102da576004355f526003602052602061098c60405f206121eb565b604051908152f35b9181601f840112156102da578235916001600160401b0383116102da57602083818601950101116102da57565b346102da5760203660031901126102da576001600160401b036004358181116102da576109f2903690600401610994565b5f80516020612f76833981519152549260ff8460401c1615931680159081610af1575b6001149081610ae7575b159081610ade575b50610acc575f80516020612f76833981519152805467ffffffffffffffff19166001179055610a5a9183610aa857612264565b610a6057005b5f80516020612f76833981519152805460ff60401b19169055604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a1005b5f80516020612f76833981519152805460ff60401b1916600160401b179055612264565b60405163f92ee8a960e01b8152600490fd5b9050155f610a27565b303b159150610a1f565b849150610a15565b346102da575f3660031901126102da576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346102da575f3660031901126102da576020604051614e208152f35b346102da575f3660031901126102da576004546040516001600160a01b039091168152602090f35b634e487b7160e01b5f52604160045260245ffd5b604081019081106001600160401b03821117610bb057604052565b610b81565b606081019081106001600160401b03821117610bb057604052565b608081019081106001600160401b03821117610bb057604052565b90601f801991011681019081106001600160401b03821117610bb057604052565b60405190610c1982610bb5565b565b60405190610c1982610b95565b6001600160401b038111610bb057601f01601f191660200190565b81601f820112156102da57803590610c5a82610c28565b92610c686040519485610beb565b828452602083830101116102da57815f926020809301838601378301015290565b346102da5760603660031901126102da57610ca2610432565b6044356001600160401b0381116102da57602091610cc761098c923690600401610c43565b906004355f526003845260405f206123cb565b346102da575f3660031901126102da5760206040517fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c8152f35b346102da575f3660031901126102da576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346102da575f3660031901126102da5760206040517e8b9b1e5fa9cf3b14f87f435649268146305ddf689f082e5961a335b07a9abf8152f35b346102da575f3660031901126102da576001546040516001600160a01b039091168152602090f35b346102da575f3660031901126102da576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346102da5760403660031901126102da57602060ff610e4f602435610e2181610701565b6004355f525f80516020612f36833981519152845260405f209060018060a01b03165f5260205260405f2090565b54166040519015158152f35b346102da575f3660031901126102da576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346102da5760403660031901126102da57600435610ebc81610701565b6024356001600160401b0381116102da575f91610ede83923690600401610994565b90816040519283928337810184815203915af4610f2b610efc61164d565b91610f1d604051938492151560208401526040808401526060830190610712565b03601f198101835282610beb565b805190602001fd5b346102da575f3660031901126102da5760206040515f8152f35b346102da575f3660031901126102da5760206040516001600160401b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b346102da575f3660031901126102da576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346102da5760203660031901126102da576004355f526002602052602060405f2054604051908152f35b346102da5760403660031901126102da5761066e60243560043561102182610701565b805f525f80516020612f36833981519152602052611045600160405f200154611bf0565b612159565b346102da5760603660031901126102da5761078b61077760043561106d81610701565b61107561045c565b90602435906116ae565b346102da5760803660031901126102da5760243561109c81610701565b6110a461045c565b90606435906001600160401b0382116102da576020926110cb61098c933690600401610c43565b91600435611863565b346102da5760a03660031901126102da576024356004356110f482610701565b60443591611100610447565b90608435906001600160401b0382116102da5761112260049236908401610c43565b61112a611e88565b5f5460209061114f90611143906001600160a01b031681565b6001600160a01b031690565b60405163b134427160e01b815294859182905afa9283156106c3575f9361128e575b506001600160a01b03928316330361127c576001546001600160a01b03168381166111f1575b50506040805195865265ffffffffffff909316602086015216927f741a5de99085c0d660f3e4192217b0ffb0ea4e35a0480de48e857a4bc3ee36ed91819081015b0390a361066e60015f80516020612f5683398151915255565b9093604051946112288661121a602082019363724ab0f760e11b8552858c898d602487016119ed565b03601f198101885287610beb565b62042e305a1061126a575f6111d8938192827f741a5de99085c0d660f3e4192217b0ffb0ea4e35a0480de48e857a4bc3ee36ed9951926203d090f15093611197565b604051638072475160e01b8152600490fd5b60405163dabc4ad960e01b8152600490fd5b6112b191935060203d6020116112b8575b6112a98183610beb565b8101906113ed565b915f611171565b503d61129f565b346102da575f3660031901126102da575f546040516001600160a01b039091168152602090f35b346102da5760403660031901126102da57602061098c60243561130881610701565b600435611a6a565b346102da575f3660031901126102da5760206040516203d0908152f35b346102da575f3660031901126102da57602060405160018152f35b519081151582036102da57565b908160209103126102da5761136990611348565b90565b6040513d5f823e3d90fd5b81601f820112156102da5780519061138e82610c28565b9261139c6040519485610beb565b828452602083830101116102da57815f9260208093018386015e8301015290565b906020828203126102da5781516001600160401b0381116102da576113699201611377565b5190610c1982610701565b908160209103126102da575161136981610701565b9061136991602081526114218251606060208401526080830190610712565b9060606040611441602086015194601f1995868683030184870152610712565b9401519282850301910152610712565b604051630df8851f60e11b81526001600160a01b03828116600483015260248201849052938416604482015265ffffffffffff8516606482015260609594909391925f856084817f000000000000000000000000000000000000000000000000000000000000000087165afa9485156106c3575f9561161b575b5060405163fbfa77cf60e01b81526020816004818888165afa9081156106c357611537945f92859284916115fc575b5060405163192c0ff760e21b81526001600160a01b03909116600482015265ffffffffffff90921660248301529094859190829081906044820190565b03917f0000000000000000000000000000000000000000000000000000000000000000165afa9283156106c3575f936115d6575b5061157692936116ae565b908251158015906115cc575b80156115c2575b61159257505050565b610f1d9394509061136992916115a6610c0c565b9283526020830152604082015260405192839160208301611402565b5081511515611589565b5080511515611582565b61157693506115f6903d805f833e6115ee8183610beb565b8101906113bd565b9261156b565b611615915060203d6020116112b8576112a98183610beb565b5f6114fa565b6116309195503d805f833e6115ee8183610beb565b935f6114cb565b9061136992915f52600360205260405f206123cb565b3d15611677573d9061165e82610c28565b9161166c6040519384610beb565b82523d5f602084013e565b606090565b519063ffffffff821682036102da57565b91908260409103126102da5761136960206116a784611348565b930161167c565b92915f8060609565ffffffffffff60405194602096630cbd53f560e11b888801526024870152166044850152604484526116e784610bd0565b604051938461171487820192639f86fd8560e01b8452306024840152604060448401526064830190610712565b0394611728601f1996878101835282610beb565b51915afa5061174661173861164d565b8380825183010191016124a3565b90156117995780838061175e9351830101910161168d565b929061176957505050565b6113699293945061178d604051948592830191909163ffffffff6020820193169052565b03908101835282610beb565b809150519182156102da5701fd5b604051906117b482610b95565b60606020838281520152565b906020828203126102da5781516001600160401b03928382116102da5701906040828203126102da57604051926117f684610b95565b82518181116102da578261180b918501611377565b845260208301519081116102da576118239201611377565b602082015290565b6001600160a01b0391821681529116602082015265ffffffffffff909116604082015260806060820181905261136992910190610712565b92611873909291928284866125ac565b92909361187e6117a7565b938051806119d1575b5050841593841561193b575b84156118aa575b505050506118a55790565b505f90565b6020809495506118d5910151604051958694859463530e1d4360e01b865260601c906004860161182b565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa9081156106c3575f9161191c575b50155f80808061189a565b611935915060203d6020116106bc576106ae8183610beb565b5f611911565b5f549094506001600160a01b031660208486519261196e604051948593849363530e1d4360e01b8552896004860161182b565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa9081156106c3575f916119b2575b501593611893565b6119cb915060203d6020116106bc576106ae8183610beb565b5f6119aa565b6119e59295506020809183010191016117c0565b925f80611887565b919360a093611369969565ffffffffffff938552600180871b0316602085015260408401521660608201528160808201520190610712565b634e487b7160e01b5f52601160045260245ffd5b8115611a43570490565b634e487b7160e01b5f52601260045260245ffd5b9060018201809211611a6557565b611a25565b5f546040516308834cb560e21b8082526001600160a01b0385811660048401529283166024830152929392602092909183816044817f000000000000000000000000000000000000000000000000000000000000000086165afa9081156106c3575f91611b77575b5015918215611af3575b50509050611aed57611369916126a1565b50505f90565b6040519081526001600160a01b0385166004820152606086901c602482015291508290829060449082907f0000000000000000000000000000000000000000000000000000000000000000165afa9182156106c3575f92611b5a575b505015805f80611adc565b611b709250803d106106bc576106ae8183610beb565b5f80611b4f565b611b8e9150843d86116106bc576106ae8183610beb565b5f611ad2565b335f9081527f72a65082a5691803ab2b62c9bc729b34205ba1b183d950896526b2fd8714d0c7602052604090207e8b9b1e5fa9cf3b14f87f435649268146305ddf689f082e5961a335b07a9abf9060ff905b5416156109455750565b5f8181525f80516020612f3683398151915260209081526040808320338452909152902060ff90611be6565b634e487b7160e01b5f52603260045260245ffd5b8054821015611c45575f5260205f2001905f90565b611c1c565b90815491600160401b831015610bb05782611c6d916001610c1995018155611c30565b90919082549060031b91821b915f19901b1916179055565b5f19810191908211611a6557565b90929192600182019081548015611d25575b5084611cb08461275b565b50949092845493611cc0836121eb565b9681611d10575b5015611ced575050505f198101908111611a6557611c6d8591611ce993611c30565b9190565b611ce9949293611d09926001600160d01b039091169190612df1565b5050611c4a565b65ffffffffffff83811691161490505f611cc7565b600160401b811015610bb057806001611d419201845583611c30565b8154905f199060031b1b191690555f611ca5565b90604051611d6281610b95565b915465ffffffffffff8116835260301c6020830152565b91908254905f829160058411611e21575b611d959350856128dd565b908115611e1557611e0e611e05611dff611df5611dc7611dc2611db788611c85565b895f5260205f200190565b611d55565b966001611dee6020611ddf8b5165ffffffffffff1690565b9a01516001600160d01b031690565b9101611c30565b90549060031b1c90565b93611c85565b63ffffffff1690565b6001939291565b5f925082915081908190565b9192611e2c816127aa565b8103908111611a6557611d9593865f52611e60611e558360205f200165ffffffffffff90541690565b65ffffffffffff1690565b65ffffffffffff85161015611e76575091611d8a565b929150611e8290611a57565b90611d8a565b5f80516020612f568339815191526002815414611ea55760029055565b604051633ee5aeb560e01b8152600490fd5b90815f52600360205260405f2081611ece8261275b565b919390508315611f2c57611eee916001600160d01b031690600101611c30565b90549060031b1c5b82611f22575b5050611f06575050565b611f1e915f52600360205260405f2061036f42612729565b5050565b119050815f611efc565b50505f611ef6565b6001600160a01b0381165f9081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d60205260409020545f80516020612f368339815191529060ff16611aed575f808052602091825260408082206001600160a01b038516835290925220805460ff1916600117905533906001600160a01b03165f7f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d8180a4600190565b6001600160a01b0381165f9081527f9ebbcbe0d2961d3fbe56ca6f679bc753bd848d3e6bb3eaf9041c51b286881d2c602052604090207fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c905f80516020612f368339815191529060ff905b54166120ae575f828152602091825260408082206001600160a01b038616835290925220805460ff1916600117905533916001600160a01b0316907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d5f80a4600190565b5050505f90565b6001600160a01b0381165f9081527f72a65082a5691803ab2b62c9bc729b34205ba1b183d950896526b2fd8714d0c7602052604090207e8b9b1e5fa9cf3b14f87f435649268146305ddf689f082e5961a335b07a9abf905f80516020612f368339815191529060ff9061204a565b5f8181525f80516020612f36833981519152602081815260408084206001600160a01b038716855290915290912060ff9061204a565b5f8181525f80516020612f36833981519152602081815260408084206001600160a01b03871685529091529091205460ff16156120ae575f828152602091825260408082206001600160a01b038616835290925220805460ff1916905533916001600160a01b0316907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b5f80a4600190565b80548061221057505f5b6001600160d01b03811615611aed576001611df59201611c30565b5f19908082810111611a6557825f5260205f2001015460301c6121f5565b9190916040818403126102da57803561224681610701565b9260208201356001600160401b0381116102da576113699201610c43565b6122709181019061222e565b6040516302910f8b60e31b81526001600160a01b039283166004820181905291906020816024817f000000000000000000000000000000000000000000000000000000000000000088165afa9081156106c3575f91612383575b50156123715761230560409161230061234b946122e561293f565b60018060a01b03166001600160601b0360a01b5f5416175f55565b612aab565b6020810151600180546001600160a01b0319166001600160a01b0390921691909117905580516001600160a01b0316848116612361575b5001516001600160a01b031690565b9081166123555750565b61235e90611fdf565b50565b61236a90611f34565b505f61233c565b6040516362df054560e01b8152600490fd5b61239c915060203d6020116106bc576106ae8183610beb565b5f6122ca565b908160209103126102da576113699061167c565b90600163ffffffff80931601918211611a6557565b9180511561249957806020806123e6935183010191016123a2565b916123f18382612d1c565b92612402845165ffffffffffff1690565b9065ffffffffffff808516921682811461248d5782119182612438575b505061242f576113699250612c4c565b50506020015190565b9091506124458354611c85565b63ffffffff83161491821561245e575b50505f8061241f565b612485919250612479612473611e55926123b6565b85612d1c565b5165ffffffffffff1690565b115f80612455565b50505050506020015190565b5061136991612c4c565b9190916040818403126102da576124b981611348565b9260208201516001600160401b0381116102da576113699201611377565b604051906124e482610bb5565b60606040838281528260208201520152565b906020828203126102da5781516001600160401b03928382116102da5701906060828203126102da576040519261252c84610bb5565b82518181116102da5782612541918501611377565b845260208301518181116102da578261255b918501611377565b602085015260408301519081116102da576125769201611377565b604082015290565b908160209103126102da575190565b60409065ffffffffffff61136994931681528160208201520190610712565b909392936125b86124d7565b94805180612685575b50506004546001600160a01b0391821691160361267d575f546126189291906020906125f790611143906001600160a01b031681565b8187015190604051808097819463810da75d60e01b8352886004840161258d565b03915afa9081156106c357612645935f9261264a575b5061263f9192604087015191611637565b90612d84565b915190565b61263f92506126709060203d602011612676575b6126688183610beb565b81019061257e565b9161262e565b503d61265e565b505090515f91565b6126999296506020809183010191016124f6565b935f806125c1565b6004546001600160a01b039290831690831603611aed5760206004925f54166040519384809263bd49c35f60e01b82525afa9081156106c357611369925f92612700575b506126fb61263f915f52600360205260405f2090565b6121eb565b61263f9192506127216126fb9160203d602011612676576126688183610beb565b9291506126e5565b65ffffffffffff9081811161273c571690565b604490604051906306dfcc6560e41b8252603060048301526024820152fd5b80548061276c5750505f905f905f90565b5f19908082810111611a6557612789925f5260205f200101611d55565b9065ffffffffffff82511691602060018060d01b0391015116906001929190565b80156118a5578061263f61287561286b61286161285761284d61284361283960016113699a5f908b60801c806128d1575b508060401c806128c4575b508060201c806128b7575b508060101c806128aa575b508060081c8061289d575b508060041c80612890575b508060021c80612883575b50821c61287c575b811c1b612832818b611a39565b0160011c90565b612832818a611a39565b6128328189611a39565b6128328188611a39565b6128328187611a39565b6128328186611a39565b6128328185611a39565b8092611a39565b8101612825565b600291509101905f61281d565b600491509101905f612812565b600891509101905f612807565b601091509101905f6127fc565b602091509101905f6127f1565b604091509101905f6127e6565b9150506080905f6127db565b91905b8382106128ed5750505090565b909192808316906001818518811c8301809311611a6557855f5265ffffffffffff808460205f20015416908516105f1461292c575050925b91906128e0565b909493508101809111611a655791612925565b612947612f07565b61294f612f07565b60015f80516020612f5683398151915255565b6040519061296f82610bb5565b5f6040838281528260208201520152565b81601f820112156102da578051916020916001600160401b038411610bb0578360051b90604051946129b485840187610beb565b855283808601928201019283116102da578301905b8282106129d7575050505090565b83809183516129e581610701565b8152019101906129c9565b6020818303126102da5780516001600160401b03918282116102da5701918281039260a084126102da57606060405194612a2986610bb5565b126102da57604051612a3a81610bb5565b8151612a4581610701565b81526020820151612a5581610701565b60208201526040820151612a6881610701565b6040820152845260608101519283116102da57612a8c608092612576948301612980565b6020850152016113e2565b8051821015611c455760209160051b010190565b612ab3612962565b50612ac9815191602080809483010191016129f0565b8051516001600160a01b0393919084161580612c40575b612c2e576040818101805182516302910f8b60e31b81526001600160a01b0390911660048083019190915296929491928690829060249082907f0000000000000000000000000000000000000000000000000000000000000000165afa9081156106c3575f91612c11575b5015612bff5791938401915f5b83518051821015612bce57611143612b7383612b8093612a97565b516001600160a01b031690565b15612bbe57612ba2612b9e612b99612b73848851612a97565b6120b5565b1590565b612bae57600101612b58565b8451635140fefd60e11b81528790fd5b84516323cda06760e01b81528790fd5b50509051600480546001600160a01b0319166001600160a01b039092169190911790559350612bfb915050565b5190565b604051631f0853c160e21b8152600490fd5b612c289150863d88116106bc576106ae8183610beb565b5f612b4b565b6040516303501f5960e11b8152600490fd5b50828101515115612ae0565b908154905f829160058411612cb6575b612c679350846128dd565b80612c8f57505f905b6001600160d01b03821615611aed57611369916001611df59201611c30565b612ca9612c9e612cb092611c85565b835f5260205f200190565b5460301c90565b90612c70565b9192612cc1816127aa565b8103908111611a6557612c6793855f5265ffffffffffff808360205f20015416908516105f14612cf2575091612c5c565b929150612cfe90611a57565b90612c5c565b60405190612d1182610b95565b5f6020838281520152565b90612d45612d3f612d6692612d2f612d04565b50612d38612d04565b5084611c30565b50611d55565b91600165ffffffffffff845116936020828060d01b03910151169101611c30565b90549060405192612d7684610b95565b835260031b1c602082015290565b9080821015612d91575090565b905090565b8054600160401b811015610bb057612db391600182018155611c30565b612dde57815160209092015160301b65ffffffffffff191665ffffffffffff92909216919091179055565b634e487b7160e01b5f525f60045260245ffd5b805492939291908215612ede57612e0d611dc2612c9e85611c85565b90612e1e825165ffffffffffff1690565b65ffffffffffff84811691168110612ecc57611ce9946020948892612e4c611e55875165ffffffffffff1690565b03612e945750612e8692612e62612e6d92611c85565b905f5260205f200190565b9065ffffffffffff82549181199060301b169116179055565b01516001600160d01b031690565b915050612ec791612eb4612ea6610c1b565b65ffffffffffff9093168352565b6001600160d01b03881682860152612d96565b612e86565b604051632520601d60e01b8152600490fd5b612f029250612eee612ea6610c1b565b6001600160d01b0385166020830152612d96565b5f9190565b60ff5f80516020612f768339815191525460401c1615612f2357565b604051631afcd79f60e31b8152600490fdfe02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268009b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a264697066735822122089d73316305ab9c3a653dfde65e2f393eca68e4db958a734afd5e3f53e84cdbc64736f6c63430008190033","sourceMap":"11341:2310:86:-:0;;;;;;;;;;;;;-1:-1:-1;;11341:2310:86;;;;-1:-1:-1;;;;;11341:2310:86;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;:::i;:::-;348:4:87;;332:21;;8837:64:26;11341:2310:86;;;;;;;;;7896:76:26;;11341:2310:86;;;;7985:34:26;7981:146;;-1:-1:-1;525:17:74;;;-1:-1:-1;525:17:74;;-1:-1:-1;552:12:74;;-1:-1:-1;2360:34:81;;2404:28;;-1:-1:-1;2404:28:81;;2442:57;;-1:-1:-1;2442:57:81;;2509:61;-1:-1:-1;2509:61:81;;1716:36:85;;-1:-1:-1;1716:36:85;;11845:41:86;;;;11896:24;;;;11930:40;;;;11341:2310;;;;;;;;332:21:87;11341:2310:86;;;;;525:17:74;11341:2310:86;;;;;552:12:74;11341:2310:86;;;;;2360:34:81;11341:2310:86;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7981:146:26;-1:-1:-1;;;;;;11341:2310:86;;;;;;;;;;;;;8087:29:26;;11341:2310:86;;8087:29:26;7981:146;;;;;7896:76;11341:2310:86;;-1:-1:-1;;;7938:23:26;;;;;11341:2310:86;-1:-1:-1;11341:2310:86;;;;;;-1:-1:-1;11341:2310:86;;;;;-1:-1:-1;11341:2310:86;;;;-1:-1:-1;;;;;11341:2310:86;;;;;;:::o","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361015610011575f80fd5b5f3560e01c806301ffc9a714610284578063021453481461027f578063103f29071461027a578063128e5d8214610275578063197aa7ea146102705780631a80e5001461026b57806323f752d514610266578063248a9ca31461026157806325dc97081461025c5780632dd31000146102575780632f2ff15d1461025257806336568abe1461024d5780633dfd3873146102485780633eb22c0f14610243578063439fab911461023e57806345e78fcb14610239578063557cab4414610234578063570ca7351461022f5780635d32a1c91461022a5780636679191e1461022557806379d89614146102205780637d24bb271461021b5780637f5a7c7b1461021657806383ce03221461021157806391d148541461020c5780639b656b22146102075780639f86fd8514610202578063a217fddf146101fd578063bb24fe8a146101f8578063c0cd7c3e146101f3578063d15b740e146101ee578063d547741f146101e9578063da749d2b146101e4578063e02f6937146101df578063e49561ee146101da578063fbfa77cf146101d5578063fd4d447c146101d0578063ff54740f146101cb5763ffa1ad74146101c6575f80fd5b61132d565b611310565b6112e6565b6112bf565b6110d4565b61107f565b61104a565b610ffe565b610fd4565b610f90565b610f4d565b610f33565b610e9f565b610e5b565b610dfd565b610db9565b610d91565b610d58565b610d14565b610cda565b610c89565b610b59565b610b3d565b610af9565b6109c1565b610963565b61086a565b61081f565b6107d3565b61078f565b610736565b6106c8565b610542565b6104fe565b610471565b6103ee565b6103aa565b6102de565b346102da5760203660031901126102da5760043563ffffffff60e01b81168091036102da57602090637965db0b60e01b81149081156102c9575b506040519015158152f35b6301ffc9a760e01b1490505f6102be565b5f80fd5b346102da576040806003193601126102da576004359060243590610300611b94565b825f526002602052805f2054821161039a57825f52600360205281610326825f206121eb565b1461038a5781610385916103757e899d104fc3d8820bd96540612bcc5c448c8837b13b9f7faa43ad0728f0c14f94610366875f52600360205260405f2090565b61036f42612729565b90611c93565b5050519081529081906020820190565b0390a2005b5163a741a04560e01b8152600490fd5b51631eefc06360e31b8152600490fd5b346102da575f3660031901126102da576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346102da575f3660031901126102da576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b6024359065ffffffffffff821682036102da57565b6064359065ffffffffffff821682036102da57565b6044359065ffffffffffff821682036102da57565b346102da5760403660031901126102da5761048a610432565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633036104ec5763ffffffff6104d76040926004355f526003602052835f20611d79565b91505083929192519215158352166020820152f35b604051637ca475e560e11b8152600490fd5b346102da575f3660031901126102da576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346102da5760403660031901126102da576004356001600160601b03811681036102da5760243590610572611e88565b6040516302910f8b60e31b81523360048201526020816024816001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165afa9081156106c3575f91610694575b5015610682576001600160601b03166bffffffffffffffffffffffff193360601b161790806105fc835f52600260205260405f2090565b541461067057610655817fc67e7929681aa1bccd63f52b3799bf5805f3009f197db6fdf584b14f7fbf608c9261063a855f52600260205260405f2090565b556106458185611eb7565b6040519081529081906020820190565b0390a261066e60015f80516020612f5683398151915255565b005b60405163a741a04560e01b8152600490fd5b6040516323d53b9760e21b8152600490fd5b6106b6915060203d6020116106bc575b6106ae8183610beb565b810190611355565b5f6105c5565b503d6106a4565b61136c565b346102da5760203660031901126102da576004355f525f80516020612f368339815191526020526020600160405f200154604051908152f35b6001600160a01b038116036102da57565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b346102da5760803660031901126102da5761078b61077760043561075981610701565b60443561076581610701565b61076d610447565b9160243590611451565b604051918291602083526020830190610712565b0390f35b346102da575f3660031901126102da576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346102da5760403660031901126102da5761066e6024356004356107f682610701565b805f525f80516020612f3683398151915260205261081a600160405f200154611bf0565b612123565b346102da5760403660031901126102da5760243561083c81610701565b336001600160a01b038216036108585761066e90600435612159565b60405163334bd91960e11b8152600490fd5b346102da5760203660031901126102da5760043561088781610701565b61088f611e88565b335f9081527f9ebbcbe0d2961d3fbe56ca6f679bc753bd848d3e6bb3eaf9041c51b286881d2c60205260409020547fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c9060ff161561094557506001546001600160a01b039182169181168214610670576001600160a01b03191681176001557f5bbb1d3ebb6a3ad2a0f17ff35e579a83af60604d1d3c2a4c83c62adecadf666d5f80a260015f80516020612f5683398151915255005b6044906040519063e2517d3f60e01b82523360048301526024820152fd5b346102da5760203660031901126102da576004355f526003602052602061098c60405f206121eb565b604051908152f35b9181601f840112156102da578235916001600160401b0383116102da57602083818601950101116102da57565b346102da5760203660031901126102da576001600160401b036004358181116102da576109f2903690600401610994565b5f80516020612f76833981519152549260ff8460401c1615931680159081610af1575b6001149081610ae7575b159081610ade575b50610acc575f80516020612f76833981519152805467ffffffffffffffff19166001179055610a5a9183610aa857612264565b610a6057005b5f80516020612f76833981519152805460ff60401b19169055604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a1005b5f80516020612f76833981519152805460ff60401b1916600160401b179055612264565b60405163f92ee8a960e01b8152600490fd5b9050155f610a27565b303b159150610a1f565b849150610a15565b346102da575f3660031901126102da576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346102da575f3660031901126102da576020604051614e208152f35b346102da575f3660031901126102da576004546040516001600160a01b039091168152602090f35b634e487b7160e01b5f52604160045260245ffd5b604081019081106001600160401b03821117610bb057604052565b610b81565b606081019081106001600160401b03821117610bb057604052565b608081019081106001600160401b03821117610bb057604052565b90601f801991011681019081106001600160401b03821117610bb057604052565b60405190610c1982610bb5565b565b60405190610c1982610b95565b6001600160401b038111610bb057601f01601f191660200190565b81601f820112156102da57803590610c5a82610c28565b92610c686040519485610beb565b828452602083830101116102da57815f926020809301838601378301015290565b346102da5760603660031901126102da57610ca2610432565b6044356001600160401b0381116102da57602091610cc761098c923690600401610c43565b906004355f526003845260405f206123cb565b346102da575f3660031901126102da5760206040517fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c8152f35b346102da575f3660031901126102da576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346102da575f3660031901126102da5760206040517e8b9b1e5fa9cf3b14f87f435649268146305ddf689f082e5961a335b07a9abf8152f35b346102da575f3660031901126102da576001546040516001600160a01b039091168152602090f35b346102da575f3660031901126102da576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346102da5760403660031901126102da57602060ff610e4f602435610e2181610701565b6004355f525f80516020612f36833981519152845260405f209060018060a01b03165f5260205260405f2090565b54166040519015158152f35b346102da575f3660031901126102da576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346102da5760403660031901126102da57600435610ebc81610701565b6024356001600160401b0381116102da575f91610ede83923690600401610994565b90816040519283928337810184815203915af4610f2b610efc61164d565b91610f1d604051938492151560208401526040808401526060830190610712565b03601f198101835282610beb565b805190602001fd5b346102da575f3660031901126102da5760206040515f8152f35b346102da575f3660031901126102da5760206040516001600160401b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b346102da575f3660031901126102da576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346102da5760203660031901126102da576004355f526002602052602060405f2054604051908152f35b346102da5760403660031901126102da5761066e60243560043561102182610701565b805f525f80516020612f36833981519152602052611045600160405f200154611bf0565b612159565b346102da5760603660031901126102da5761078b61077760043561106d81610701565b61107561045c565b90602435906116ae565b346102da5760803660031901126102da5760243561109c81610701565b6110a461045c565b90606435906001600160401b0382116102da576020926110cb61098c933690600401610c43565b91600435611863565b346102da5760a03660031901126102da576024356004356110f482610701565b60443591611100610447565b90608435906001600160401b0382116102da5761112260049236908401610c43565b61112a611e88565b5f5460209061114f90611143906001600160a01b031681565b6001600160a01b031690565b60405163b134427160e01b815294859182905afa9283156106c3575f9361128e575b506001600160a01b03928316330361127c576001546001600160a01b03168381166111f1575b50506040805195865265ffffffffffff909316602086015216927f741a5de99085c0d660f3e4192217b0ffb0ea4e35a0480de48e857a4bc3ee36ed91819081015b0390a361066e60015f80516020612f5683398151915255565b9093604051946112288661121a602082019363724ab0f760e11b8552858c898d602487016119ed565b03601f198101885287610beb565b62042e305a1061126a575f6111d8938192827f741a5de99085c0d660f3e4192217b0ffb0ea4e35a0480de48e857a4bc3ee36ed9951926203d090f15093611197565b604051638072475160e01b8152600490fd5b60405163dabc4ad960e01b8152600490fd5b6112b191935060203d6020116112b8575b6112a98183610beb565b8101906113ed565b915f611171565b503d61129f565b346102da575f3660031901126102da575f546040516001600160a01b039091168152602090f35b346102da5760403660031901126102da57602061098c60243561130881610701565b600435611a6a565b346102da575f3660031901126102da5760206040516203d0908152f35b346102da575f3660031901126102da57602060405160018152f35b519081151582036102da57565b908160209103126102da5761136990611348565b90565b6040513d5f823e3d90fd5b81601f820112156102da5780519061138e82610c28565b9261139c6040519485610beb565b828452602083830101116102da57815f9260208093018386015e8301015290565b906020828203126102da5781516001600160401b0381116102da576113699201611377565b5190610c1982610701565b908160209103126102da575161136981610701565b9061136991602081526114218251606060208401526080830190610712565b9060606040611441602086015194601f1995868683030184870152610712565b9401519282850301910152610712565b604051630df8851f60e11b81526001600160a01b03828116600483015260248201849052938416604482015265ffffffffffff8516606482015260609594909391925f856084817f000000000000000000000000000000000000000000000000000000000000000087165afa9485156106c3575f9561161b575b5060405163fbfa77cf60e01b81526020816004818888165afa9081156106c357611537945f92859284916115fc575b5060405163192c0ff760e21b81526001600160a01b03909116600482015265ffffffffffff90921660248301529094859190829081906044820190565b03917f0000000000000000000000000000000000000000000000000000000000000000165afa9283156106c3575f936115d6575b5061157692936116ae565b908251158015906115cc575b80156115c2575b61159257505050565b610f1d9394509061136992916115a6610c0c565b9283526020830152604082015260405192839160208301611402565b5081511515611589565b5080511515611582565b61157693506115f6903d805f833e6115ee8183610beb565b8101906113bd565b9261156b565b611615915060203d6020116112b8576112a98183610beb565b5f6114fa565b6116309195503d805f833e6115ee8183610beb565b935f6114cb565b9061136992915f52600360205260405f206123cb565b3d15611677573d9061165e82610c28565b9161166c6040519384610beb565b82523d5f602084013e565b606090565b519063ffffffff821682036102da57565b91908260409103126102da5761136960206116a784611348565b930161167c565b92915f8060609565ffffffffffff60405194602096630cbd53f560e11b888801526024870152166044850152604484526116e784610bd0565b604051938461171487820192639f86fd8560e01b8452306024840152604060448401526064830190610712565b0394611728601f1996878101835282610beb565b51915afa5061174661173861164d565b8380825183010191016124a3565b90156117995780838061175e9351830101910161168d565b929061176957505050565b6113699293945061178d604051948592830191909163ffffffff6020820193169052565b03908101835282610beb565b809150519182156102da5701fd5b604051906117b482610b95565b60606020838281520152565b906020828203126102da5781516001600160401b03928382116102da5701906040828203126102da57604051926117f684610b95565b82518181116102da578261180b918501611377565b845260208301519081116102da576118239201611377565b602082015290565b6001600160a01b0391821681529116602082015265ffffffffffff909116604082015260806060820181905261136992910190610712565b92611873909291928284866125ac565b92909361187e6117a7565b938051806119d1575b5050841593841561193b575b84156118aa575b505050506118a55790565b505f90565b6020809495506118d5910151604051958694859463530e1d4360e01b865260601c906004860161182b565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa9081156106c3575f9161191c575b50155f80808061189a565b611935915060203d6020116106bc576106ae8183610beb565b5f611911565b5f549094506001600160a01b031660208486519261196e604051948593849363530e1d4360e01b8552896004860161182b565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa9081156106c3575f916119b2575b501593611893565b6119cb915060203d6020116106bc576106ae8183610beb565b5f6119aa565b6119e59295506020809183010191016117c0565b925f80611887565b919360a093611369969565ffffffffffff938552600180871b0316602085015260408401521660608201528160808201520190610712565b634e487b7160e01b5f52601160045260245ffd5b8115611a43570490565b634e487b7160e01b5f52601260045260245ffd5b9060018201809211611a6557565b611a25565b5f546040516308834cb560e21b8082526001600160a01b0385811660048401529283166024830152929392602092909183816044817f000000000000000000000000000000000000000000000000000000000000000086165afa9081156106c3575f91611b77575b5015918215611af3575b50509050611aed57611369916126a1565b50505f90565b6040519081526001600160a01b0385166004820152606086901c602482015291508290829060449082907f0000000000000000000000000000000000000000000000000000000000000000165afa9182156106c3575f92611b5a575b505015805f80611adc565b611b709250803d106106bc576106ae8183610beb565b5f80611b4f565b611b8e9150843d86116106bc576106ae8183610beb565b5f611ad2565b335f9081527f72a65082a5691803ab2b62c9bc729b34205ba1b183d950896526b2fd8714d0c7602052604090207e8b9b1e5fa9cf3b14f87f435649268146305ddf689f082e5961a335b07a9abf9060ff905b5416156109455750565b5f8181525f80516020612f3683398151915260209081526040808320338452909152902060ff90611be6565b634e487b7160e01b5f52603260045260245ffd5b8054821015611c45575f5260205f2001905f90565b611c1c565b90815491600160401b831015610bb05782611c6d916001610c1995018155611c30565b90919082549060031b91821b915f19901b1916179055565b5f19810191908211611a6557565b90929192600182019081548015611d25575b5084611cb08461275b565b50949092845493611cc0836121eb565b9681611d10575b5015611ced575050505f198101908111611a6557611c6d8591611ce993611c30565b9190565b611ce9949293611d09926001600160d01b039091169190612df1565b5050611c4a565b65ffffffffffff83811691161490505f611cc7565b600160401b811015610bb057806001611d419201845583611c30565b8154905f199060031b1b191690555f611ca5565b90604051611d6281610b95565b915465ffffffffffff8116835260301c6020830152565b91908254905f829160058411611e21575b611d959350856128dd565b908115611e1557611e0e611e05611dff611df5611dc7611dc2611db788611c85565b895f5260205f200190565b611d55565b966001611dee6020611ddf8b5165ffffffffffff1690565b9a01516001600160d01b031690565b9101611c30565b90549060031b1c90565b93611c85565b63ffffffff1690565b6001939291565b5f925082915081908190565b9192611e2c816127aa565b8103908111611a6557611d9593865f52611e60611e558360205f200165ffffffffffff90541690565b65ffffffffffff1690565b65ffffffffffff85161015611e76575091611d8a565b929150611e8290611a57565b90611d8a565b5f80516020612f568339815191526002815414611ea55760029055565b604051633ee5aeb560e01b8152600490fd5b90815f52600360205260405f2081611ece8261275b565b919390508315611f2c57611eee916001600160d01b031690600101611c30565b90549060031b1c5b82611f22575b5050611f06575050565b611f1e915f52600360205260405f2061036f42612729565b5050565b119050815f611efc565b50505f611ef6565b6001600160a01b0381165f9081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d60205260409020545f80516020612f368339815191529060ff16611aed575f808052602091825260408082206001600160a01b038516835290925220805460ff1916600117905533906001600160a01b03165f7f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d8180a4600190565b6001600160a01b0381165f9081527f9ebbcbe0d2961d3fbe56ca6f679bc753bd848d3e6bb3eaf9041c51b286881d2c602052604090207fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c905f80516020612f368339815191529060ff905b54166120ae575f828152602091825260408082206001600160a01b038616835290925220805460ff1916600117905533916001600160a01b0316907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d5f80a4600190565b5050505f90565b6001600160a01b0381165f9081527f72a65082a5691803ab2b62c9bc729b34205ba1b183d950896526b2fd8714d0c7602052604090207e8b9b1e5fa9cf3b14f87f435649268146305ddf689f082e5961a335b07a9abf905f80516020612f368339815191529060ff9061204a565b5f8181525f80516020612f36833981519152602081815260408084206001600160a01b038716855290915290912060ff9061204a565b5f8181525f80516020612f36833981519152602081815260408084206001600160a01b03871685529091529091205460ff16156120ae575f828152602091825260408082206001600160a01b038616835290925220805460ff1916905533916001600160a01b0316907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b5f80a4600190565b80548061221057505f5b6001600160d01b03811615611aed576001611df59201611c30565b5f19908082810111611a6557825f5260205f2001015460301c6121f5565b9190916040818403126102da57803561224681610701565b9260208201356001600160401b0381116102da576113699201610c43565b6122709181019061222e565b6040516302910f8b60e31b81526001600160a01b039283166004820181905291906020816024817f000000000000000000000000000000000000000000000000000000000000000088165afa9081156106c3575f91612383575b50156123715761230560409161230061234b946122e561293f565b60018060a01b03166001600160601b0360a01b5f5416175f55565b612aab565b6020810151600180546001600160a01b0319166001600160a01b0390921691909117905580516001600160a01b0316848116612361575b5001516001600160a01b031690565b9081166123555750565b61235e90611fdf565b50565b61236a90611f34565b505f61233c565b6040516362df054560e01b8152600490fd5b61239c915060203d6020116106bc576106ae8183610beb565b5f6122ca565b908160209103126102da576113699061167c565b90600163ffffffff80931601918211611a6557565b9180511561249957806020806123e6935183010191016123a2565b916123f18382612d1c565b92612402845165ffffffffffff1690565b9065ffffffffffff808516921682811461248d5782119182612438575b505061242f576113699250612c4c565b50506020015190565b9091506124458354611c85565b63ffffffff83161491821561245e575b50505f8061241f565b612485919250612479612473611e55926123b6565b85612d1c565b5165ffffffffffff1690565b115f80612455565b50505050506020015190565b5061136991612c4c565b9190916040818403126102da576124b981611348565b9260208201516001600160401b0381116102da576113699201611377565b604051906124e482610bb5565b60606040838281528260208201520152565b906020828203126102da5781516001600160401b03928382116102da5701906060828203126102da576040519261252c84610bb5565b82518181116102da5782612541918501611377565b845260208301518181116102da578261255b918501611377565b602085015260408301519081116102da576125769201611377565b604082015290565b908160209103126102da575190565b60409065ffffffffffff61136994931681528160208201520190610712565b909392936125b86124d7565b94805180612685575b50506004546001600160a01b0391821691160361267d575f546126189291906020906125f790611143906001600160a01b031681565b8187015190604051808097819463810da75d60e01b8352886004840161258d565b03915afa9081156106c357612645935f9261264a575b5061263f9192604087015191611637565b90612d84565b915190565b61263f92506126709060203d602011612676575b6126688183610beb565b81019061257e565b9161262e565b503d61265e565b505090515f91565b6126999296506020809183010191016124f6565b935f806125c1565b6004546001600160a01b039290831690831603611aed5760206004925f54166040519384809263bd49c35f60e01b82525afa9081156106c357611369925f92612700575b506126fb61263f915f52600360205260405f2090565b6121eb565b61263f9192506127216126fb9160203d602011612676576126688183610beb565b9291506126e5565b65ffffffffffff9081811161273c571690565b604490604051906306dfcc6560e41b8252603060048301526024820152fd5b80548061276c5750505f905f905f90565b5f19908082810111611a6557612789925f5260205f200101611d55565b9065ffffffffffff82511691602060018060d01b0391015116906001929190565b80156118a5578061263f61287561286b61286161285761284d61284361283960016113699a5f908b60801c806128d1575b508060401c806128c4575b508060201c806128b7575b508060101c806128aa575b508060081c8061289d575b508060041c80612890575b508060021c80612883575b50821c61287c575b811c1b612832818b611a39565b0160011c90565b612832818a611a39565b6128328189611a39565b6128328188611a39565b6128328187611a39565b6128328186611a39565b6128328185611a39565b8092611a39565b8101612825565b600291509101905f61281d565b600491509101905f612812565b600891509101905f612807565b601091509101905f6127fc565b602091509101905f6127f1565b604091509101905f6127e6565b9150506080905f6127db565b91905b8382106128ed5750505090565b909192808316906001818518811c8301809311611a6557855f5265ffffffffffff808460205f20015416908516105f1461292c575050925b91906128e0565b909493508101809111611a655791612925565b612947612f07565b61294f612f07565b60015f80516020612f5683398151915255565b6040519061296f82610bb5565b5f6040838281528260208201520152565b81601f820112156102da578051916020916001600160401b038411610bb0578360051b90604051946129b485840187610beb565b855283808601928201019283116102da578301905b8282106129d7575050505090565b83809183516129e581610701565b8152019101906129c9565b6020818303126102da5780516001600160401b03918282116102da5701918281039260a084126102da57606060405194612a2986610bb5565b126102da57604051612a3a81610bb5565b8151612a4581610701565b81526020820151612a5581610701565b60208201526040820151612a6881610701565b6040820152845260608101519283116102da57612a8c608092612576948301612980565b6020850152016113e2565b8051821015611c455760209160051b010190565b612ab3612962565b50612ac9815191602080809483010191016129f0565b8051516001600160a01b0393919084161580612c40575b612c2e576040818101805182516302910f8b60e31b81526001600160a01b0390911660048083019190915296929491928690829060249082907f0000000000000000000000000000000000000000000000000000000000000000165afa9081156106c3575f91612c11575b5015612bff5791938401915f5b83518051821015612bce57611143612b7383612b8093612a97565b516001600160a01b031690565b15612bbe57612ba2612b9e612b99612b73848851612a97565b6120b5565b1590565b612bae57600101612b58565b8451635140fefd60e11b81528790fd5b84516323cda06760e01b81528790fd5b50509051600480546001600160a01b0319166001600160a01b039092169190911790559350612bfb915050565b5190565b604051631f0853c160e21b8152600490fd5b612c289150863d88116106bc576106ae8183610beb565b5f612b4b565b6040516303501f5960e11b8152600490fd5b50828101515115612ae0565b908154905f829160058411612cb6575b612c679350846128dd565b80612c8f57505f905b6001600160d01b03821615611aed57611369916001611df59201611c30565b612ca9612c9e612cb092611c85565b835f5260205f200190565b5460301c90565b90612c70565b9192612cc1816127aa565b8103908111611a6557612c6793855f5265ffffffffffff808360205f20015416908516105f14612cf2575091612c5c565b929150612cfe90611a57565b90612c5c565b60405190612d1182610b95565b5f6020838281520152565b90612d45612d3f612d6692612d2f612d04565b50612d38612d04565b5084611c30565b50611d55565b91600165ffffffffffff845116936020828060d01b03910151169101611c30565b90549060405192612d7684610b95565b835260031b1c602082015290565b9080821015612d91575090565b905090565b8054600160401b811015610bb057612db391600182018155611c30565b612dde57815160209092015160301b65ffffffffffff191665ffffffffffff92909216919091179055565b634e487b7160e01b5f525f60045260245ffd5b805492939291908215612ede57612e0d611dc2612c9e85611c85565b90612e1e825165ffffffffffff1690565b65ffffffffffff84811691168110612ecc57611ce9946020948892612e4c611e55875165ffffffffffff1690565b03612e945750612e8692612e62612e6d92611c85565b905f5260205f200190565b9065ffffffffffff82549181199060301b169116179055565b01516001600160d01b031690565b915050612ec791612eb4612ea6610c1b565b65ffffffffffff9093168352565b6001600160d01b03881682860152612d96565b612e86565b604051632520601d60e01b8152600490fd5b612f029250612eee612ea6610c1b565b6001600160d01b0385166020830152612d96565b5f9190565b60ff5f80516020612f768339815191525460401c1615612f2357565b604051631afcd79f60e31b8152600490fdfe02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268009b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a264697066735822122089d73316305ab9c3a653dfde65e2f393eca68e4db958a734afd5e3f53e84cdbc64736f6c63430008190033","sourceMap":"11341:2310:86:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;;;;;-1:-1:-1;;11341:2310:86;;;;;;;;;;;;;;;;;;-1:-1:-1;;;3551:47:24;;;:87;;;;11341:2310:86;;;;;;;;;;3551:87:24;-1:-1:-1;;;1133:40:30;;-1:-1:-1;3551:87:24;;;11341:2310:86;-1:-1:-1;11341:2310:86;;;;;;;;;;;;;;;;;;;;3202:4:24;;;:::i;:::-;11341:2310:86;-1:-1:-1;11341:2310:86;2428:15:85;11341:2310:86;;;-1:-1:-1;11341:2310:86;;2419:36:85;;2415:98;;11341:2310:86;-1:-1:-1;11341:2310:86;2193:13:85;11341:2310:86;;;2193:34:85;11341:2310:86;-1:-1:-1;11341:2310:86;2193:34:85;:::i;:::-;2527;2523:84;;2617:25;2689:35;2617:25;:56;2689:35;2617:25;;;11341:2310:86;;2193:13:85;11341:2310:86;;;;;;;2617:25:85;819:34:63;837:15;819:34;:::i;:::-;2617:56:85;;:::i;:::-;-1:-1:-1;;11341:2310:86;;;;;;;;;;;;2689:35:85;;;;11341:2310:86;2523:84:85;11341:2310:86;-1:-1:-1;;;2584:12:85;;11341:2310:86;;2584:12:85;2415:98;11341:2310:86;-1:-1:-1;;;2478:24:85;;11341:2310:86;;2478:24:85;11341:2310:86;;;;;;-1:-1:-1;;11341:2310:86;;;;;;1537:38:81;-1:-1:-1;;;;;11341:2310:86;;;;;;;;;;;;-1:-1:-1;;11341:2310:86;;;;;;1632:54:81;-1:-1:-1;;;;;11341:2310:86;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;-1:-1:-1;;11341:2310:86;;;;;;:::i;:::-;449:5:87;-1:-1:-1;;;;;11341:2310:86;435:10:87;:19;431:71;;11341:2310:86;12172:64;11341:2310;;;;-1:-1:-1;11341:2310:86;12172:13;11341:2310;;;-1:-1:-1;11341:2310:86;12172:64;:::i;:::-;11341:2310;;;;;;;;;;;;;;;;;;;431:71:87;11341:2310:86;;-1:-1:-1;;;477:14:87;;11341:2310:86;;477:14:87;11341:2310:86;;;;;;-1:-1:-1;;11341:2310:86;;;;;;1743:56:81;-1:-1:-1;;;;;11341:2310:86;;;;;;;;;;;;-1:-1:-1;;11341:2310:86;;;;;;-1:-1:-1;;;;;11341:2310:86;;;;;;;;3217:103:29;;;:::i;:::-;11341:2310:86;;-1:-1:-1;;;4285:48:81;;4322:10;11341:2310:86;4285:48:81;;11341:2310:86;;;;;-1:-1:-1;;;;;4295:16:81;11341:2310:86;4285:48:81;;;;;;;-1:-1:-1;4285:48:81;;;11341:2310:86;4284:49:81;;4280:99;;-1:-1:-1;;;;;11341:2310:86;-1:-1:-1;;4322:10:81;297:2:93;11341:2310:86;;267:46:93;4459:27:81;;;;11341:2310:86;;4459:15:81;11341:2310:86;;;;;;;4459:27:81;11341:2310:86;4459:37:81;4455:87;;4654:38;4552:27;4654:38;4552:27;;;11341:2310:86;;4459:15:81;11341:2310:86;;;;;;;4552:27:81;11341:2310:86;4631:6:81;;;;:::i;:::-;11341:2310:86;;;;;;;;;;;;;4654:38:81;;;;3282:1:29;1805;-1:-1:-1;;;;;;;;;;;11341:2310:86;3716:283:29;3282:1;11341:2310:86;4455:87:81;11341:2310:86;;-1:-1:-1;;;4519:12:81;;11341:2310:86;;4519:12:81;4280:99;11341:2310:86;;-1:-1:-1;;;4356:12:81;;11341:2310:86;;4356:12:81;4285:48;;;;11341:2310:86;4285:48:81;11341:2310:86;4285:48:81;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;:::i;11341:2310:86:-;;;;;;-1:-1:-1;;11341:2310:86;;;;;;-1:-1:-1;11341:2310:86;-1:-1:-1;;;;;;;;;;;11341:2310:86;;;4919:24:24;11341:2310:86;-1:-1:-1;11341:2310:86;4919:24:24;11341:2310:86;;;;;;;;-1:-1:-1;;;;;11341:2310:86;;;;;:::o;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;11341:2310:86;;;;;;;;-1:-1:-1;;11341:2310:86;;;;:::o;:::-;;;;;;-1:-1:-1;;11341:2310:86;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;11341:2310:86;;;;;;322:32:74;-1:-1:-1;;;;;11341:2310:86;;;;;;;;;;;;-1:-1:-1;;11341:2310:86;;;;5350:25:24;11341:2310:86;;;;;;;:::i;:::-;;-1:-1:-1;11341:2310:86;-1:-1:-1;;;;;;;;;;;11341:2310:86;;3202:4:24;4919:24;11341:2310:86;-1:-1:-1;11341:2310:86;4919:24:24;11341:2310:86;3202:4:24;:::i;:::-;5350:25;:::i;11341:2310:86:-;;;;;;-1:-1:-1;;11341:2310:86;;;;;;;;;:::i;:::-;966:10:28;-1:-1:-1;;;;;11341:2310:86;;6441:34:24;6437:102;;6549:37;11341:2310:86;;;6549:37:24;:::i;6437:102::-;11341:2310:86;;-1:-1:-1;;;6498:30:24;;11341:2310:86;;6498:30:24;11341:2310:86;;;;;;-1:-1:-1;;11341:2310:86;;;;;;;;;:::i;:::-;3217:103:29;;:::i;:::-;966:10:28;-1:-1:-1;11341:2310:86;;;;;;;;;;1356:26:81;;11341:2310:86;;4468:23:24;4464:108;;-1:-1:-1;4861:4:81;11341:2310:86;-1:-1:-1;;;;;11341:2310:86;;;;;;4861:13:81;;4857:63;;-1:-1:-1;;;;;;11341:2310:86;;;4861:4:81;11341:2310:86;4958:14:81;-1:-1:-1;;4958:14:81;4861:4;-1:-1:-1;;;;;;;;;;;11341:2310:86;;4464:108:24;11341:2310:86;;;;4514:47:24;;;;;;966:10:28;11341:2310:86;4514:47:24;;11341:2310:86;;;;;4514:47:24;11341:2310:86;;;;;;-1:-1:-1;;11341:2310:86;;;;;;-1:-1:-1;11341:2310:86;2193:13:85;11341:2310:86;;;2193:34:85;11341:2310:86;-1:-1:-1;11341:2310:86;2193:34:85;:::i;:::-;11341:2310:86;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;11341:2310:86;;;;;;;;;;;;;;;:::o;:::-;;;;;;-1:-1:-1;;11341:2310:86;;;;-1:-1:-1;;;;;11341:2310:86;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;11341:2310:86;;;;;;;4301:16:26;11341:2310:86;;4726:16:26;;:34;;;;11341:2310:86;4805:1:26;4790:16;:50;;;;11341:2310:86;4855:13:26;:30;;;;11341:2310:86;4851:91:26;;;-1:-1:-1;;;;;;;;;;;11341:2310:86;;-1:-1:-1;;11341:2310:86;;;;;718:4:74;;4951:18:26;4979:67;;718:4:74;:::i;:::-;5066:101:26;;11341:2310:86;5066:101:26;-1:-1:-1;;;;;;;;;;;11341:2310:86;;-1:-1:-1;;;;11341:2310:86;;;;;-1:-1:-1;11341:2310:86;;5142:14:26;;11341:2310:86;;5142:14:26;11341:2310:86;4979:67:26;-1:-1:-1;;;;;;;;;;;11341:2310:86;;-1:-1:-1;;;;11341:2310:86;-1:-1:-1;;;11341:2310:86;;;718:4:74;:::i;4851:91:26:-;11341:2310:86;;-1:-1:-1;;;4908:23:26;;11341:2310:86;;4908:23:26;4855:30;4872:13;;;4855:30;;;4790:50;4818:4;4810:25;:30;;-1:-1:-1;4790:50:26;;4726:34;;;-1:-1:-1;4726:34:26;;11341:2310:86;;;;;;-1:-1:-1;;11341:2310:86;;;;;;11523:36;-1:-1:-1;;;;;11341:2310:86;;;;;;;;;;;;-1:-1:-1;;11341:2310:86;;;;;;;1253:6:81;11341:2310:86;;;;;;;;;-1:-1:-1;;11341:2310:86;;;;;;;;-1:-1:-1;;;;;11341:2310:86;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;11341:2310:86;;;;;;;:::o;:::-;;:::i;:::-;;;;;;;-1:-1:-1;;;;;11341:2310:86;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;11341:2310:86;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;11341:2310:86;;;;;;;:::o;:::-;;;;;;;:::i;:::-;:::o;:::-;;;;;;;:::i;:::-;-1:-1:-1;;;;;11341:2310:86;;;;;;-1:-1:-1;;11341:2310:86;;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;11341:2310:86;;;;;;;;;;;;;;:::o;:::-;;;;;;-1:-1:-1;;11341:2310:86;;;;;;:::i;:::-;;;-1:-1:-1;;;;;11341:2310:86;;;;;;;1955:60:85;11341:2310:86;;;;;;:::i;:::-;;;;-1:-1:-1;11341:2310:86;1955:13:85;11341:2310:86;;;-1:-1:-1;11341:2310:86;1955:60:85;:::i;11341:2310:86:-;;;;;;-1:-1:-1;;11341:2310:86;;;;;;;1356:26:81;11341:2310:86;;;;;;;;;-1:-1:-1;;11341:2310:86;;;;;;11472:45;-1:-1:-1;;;;;11341:2310:86;;;;;;;;;;;;-1:-1:-1;;11341:2310:86;;;;;;;885:35:85;11341:2310:86;;;;;;;;;-1:-1:-1;;11341:2310:86;;;;;;;;-1:-1:-1;;;;;11341:2310:86;;;;;;;;;;;;;;-1:-1:-1;;11341:2310:86;;;;;;989:42:85;-1:-1:-1;;;;;11341:2310:86;;;;;;;;;;;;-1:-1:-1;;11341:2310:86;;;;;;3901:31:24;11341:2310:86;;;;;:::i;:::-;;;-1:-1:-1;11341:2310:86;-1:-1:-1;;;;;;;;;;;11341:2310:86;;;-1:-1:-1;11341:2310:86;;;;;;;;;;;;;;;;;3901:31:24;11341:2310:86;;;;;;;;;;;;;;;;-1:-1:-1;;11341:2310:86;;;;;;11565:45;-1:-1:-1;;;;;11341:2310:86;;;;;;;;;;;;-1:-1:-1;;11341:2310:86;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;11341:2310:86;;;;-1:-1:-1;11341:2310:86;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;416:25:80;;;;477:31;416:25;;:::i;:::-;11341:2310:86;;;;;;;;;;477:31:80;;11341:2310:86;;;;;;;;;;;:::i;:::-;477:31:80;11341:2310:86;;477:31:80;;;;;;:::i;:::-;518:79;;;11341:2310:86;518:79:80;;11341:2310:86;;;;;;-1:-1:-1;;11341:2310:86;;;;;;;;;;;;;;;;;-1:-1:-1;;11341:2310:86;;;;;;;-1:-1:-1;;;;;404:28:74;11341:2310:86;;;;;;;;;;-1:-1:-1;;11341:2310:86;;;;;;1439:41:81;-1:-1:-1;;;;;11341:2310:86;;;;;;;;;;;;-1:-1:-1;;11341:2310:86;;;;;;-1:-1:-1;11341:2310:86;2009:67:81;11341:2310:86;;;;-1:-1:-1;11341:2310:86;;;;;;;;;;;;;;-1:-1:-1;;11341:2310:86;;;;5767:26:24;11341:2310:86;;;;;;;:::i;:::-;;-1:-1:-1;11341:2310:86;-1:-1:-1;;;;;;;;;;;11341:2310:86;;3202:4:24;4919:24;11341:2310:86;-1:-1:-1;11341:2310:86;4919:24:24;11341:2310:86;3202:4:24;:::i;:::-;5767:26;:::i;11341:2310:86:-;;;;;;-1:-1:-1;;11341:2310:86;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;:::i;:::-;;;;;;-1:-1:-1;;11341:2310:86;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;-1:-1:-1;;;;;11341:2310:86;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;-1:-1:-1;;11341:2310:86;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;-1:-1:-1;;;;;11341:2310:86;;;;;;;;;;;;:::i;:::-;3217:103:29;;:::i;:::-;-1:-1:-1;11341:2310:86;;;5246:21:81;;:13;;-1:-1:-1;;;;;11341:2310:86;5246:13:81;11341:2310:86;;-1:-1:-1;;;;;11341:2310:86;;;5246:21:81;11341:2310:86;;-1:-1:-1;;;5246:23:81;;11341:2310:86;;;;;5246:23:81;;;;;;;-1:-1:-1;5246:23:81;;;11341:2310:86;-1:-1:-1;;;;;;11341:2310:86;;;5232:10:81;:37;5228:87;;5341:4;11341:2310:86;-1:-1:-1;;;;;11341:2310:86;;;;5355:469:81;;11341:2310:86;-1:-1:-1;;11341:2310:86;;;;;;;;;;;;;;;;5839:55:81;;11341:2310:86;;;;5839:55:81;;;;3282:1:29;1805;-1:-1:-1;;;;;;;;;;;11341:2310:86;3716:283:29;5355:469:81;11341:2310:86;;;;5435:94:81;;;;11341:2310:86;5435:94:81;;;;;;;;;;;;11341:2310:86;5435:94:81;;;:::i;:::-;;11341:2310:86;;5435:94:81;;;;;;:::i;:::-;11341:2310:86;5548:9:81;:51;5544:118;;-1:-1:-1;5839:55:81;5676:138;;;;5839:55;5676:138;;;1150:7;5676:138;;5355:469;;;5544:118;11341:2310:86;;-1:-1:-1;;;5626:21:81;;11341:2310:86;;5626:21:81;5228:87;11341:2310:86;;-1:-1:-1;;;5292:12:81;;11341:2310:86;;5292:12:81;5246:23;;;;;11341:2310:86;5246:23:81;11341:2310:86;5246:23:81;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;11341:2310:86;;;;;;-1:-1:-1;;11341:2310:86;;;;;;;;-1:-1:-1;;;;;11341:2310:86;;;;;;;;;;;;;;-1:-1:-1;;11341:2310:86;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;-1:-1:-1;;11341:2310:86;;;;;;;1150:7:81;11341:2310:86;;;;;;;;;-1:-1:-1;;11341:2310:86;;;;;;;2700:1:81;11341:2310:86;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;11341:2310:86;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;;;;11341:2310:86;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;12814:835::-;11341:2310;;-1:-1:-1;;;13031:99:86;;-1:-1:-1;;;;;11341:2310:86;;;13031:99;;;11341:2310;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;11341:2310:86;;;13050:20;11341:2310;;13031:99;;;;;;;;;;;12814:835;-1:-1:-1;11341:2310:86;;-1:-1:-1;;;13224:32:86;;;11341:2310;13031:99;11341:2310;;;;13224:32;;;;;;;13184:84;13224:32;13031:99;13224:32;;;;;;;12814:835;-1:-1:-1;11341:2310:86;;-1:-1:-1;;;13184:84:86;;-1:-1:-1;;;;;11341:2310:86;;;13031:99;13184:84;;11341:2310;;;;;;;;;;;;;-1:-1:-1;11341:2310:86;;;;;;;;;13184:84;;13195:11;;11341:2310;13184:84;;;;;;;13031:99;13184:84;;;12814:835;13312:50;;;;;:::i;:::-;11341:2310;;;13377:21;;;:52;;;12814:835;13377:85;;;;12814:835;13373:270;;12814:835;;;:::o;13373:270::-;13485:147;11341:2310;;;;13485:147;11341:2310;;;;:::i;:::-;;;;13224:32;13513:105;;11341:2310;;13513:105;;11341:2310;;;13485:147;;;13224:32;13485:147;;;:::i;13377:85::-;11341:2310;;;13433:29;;13377:85;;:52;11341:2310;;;13402:27;;13377:52;;13184:84;13312:50;13184:84;;;;;;13031:99;13184:84;;;;;;:::i;:::-;;;;;:::i;:::-;;;;13224:32;;;;;;;;;;;;;;:::i;:::-;;;;13031:99;;;;;;;;;;;;;;:::i;:::-;;;;;1827:195:85;;1955:60;1827:195;;-1:-1:-1;11341:2310:86;1955:13:85;11341:2310:86;;;-1:-1:-1;11341:2310:86;1955:60:85;:::i;11341:2310:86:-;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;-1:-1:-1;11341:2310:86;;;;:::o;:::-;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;:::i;12249:559::-;;;-1:-1:-1;12383:12:86;11341:2310;;;;;12529:149;;12573:64;;;;12529:149;;;;;;;11341:2310;;;;;;;12529:149;;;;;:::i;:::-;11341:2310;;716:88:87;;11341:2310:86;716:88:87;;;;;;;;;783:4;12529:149:86;716:88:87;;11341:2310:86;;;;;;;;;;;:::i;:::-;716:88:87;11341:2310:86;716:88:87;11341:2310:86;;716:88:87;;;;;;;;:::i;:::-;698:107;;;;;857:45;698:107;;:::i;:::-;11341:2310:86;;;;857:45:87;;;;;;:::i;:::-;916:8;;912:175;;11341:2310:86;;;12437:293;11341:2310;;12437:293;;;;;;:::i;:::-;12741:61;;;;12249:559;;;:::o;12741:61::-;12774:17;11341:2310;;;;12774:17;11341:2310;;12774:17;;;;;11341:2310;;;;;;;;;;;;12774:17;;;;;;;;;:::i;912:175:87:-;11341:2310:86;;;;944:22:87;;;940:36;;990:87;;11341:2310:86;;;;;;;:::i;:::-;;;;;;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;;;;11341:2310:86;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::o;:::-;-1:-1:-1;;;;;11341:2310:86;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;2764:920:81:-;;2978:48;2764:920;;;;2978:48;;;;:::i;:::-;3036:36;;;11341:2310:86;;:::i;:::-;;;;3086:20:81;3082:107;;2764:920;3216:11;;;;:193;;;;;2764:920;3216:394;;;;2764:920;3199:455;;;;;;2764:920;:::o;3199:455::-;3635:8;-1:-1:-1;3635:8:81;:::o;3216:394::-;3553:39;;;;;3430:180;3553:39;;;11341:2310:86;;;;;;;;;;3430:180:81;;467:2:93;11341:2310:86;3430:180:81;;;;;:::i;:::-;;11341:2310:86;3444:31:81;-1:-1:-1;;;;;11341:2310:86;3430:180:81;;;;;;;-1:-1:-1;3430:180:81;;;3216:394;3429:181;;3216:394;;;;;;3430:180;;;;3553:39;3430:180;3553:39;3430:180;;;;;;;:::i;:::-;;;;3216:193;-1:-1:-1;11341:2310:86;;;-1:-1:-1;;;;;;11341:2310:86;3248:161:81;3354:37;;;11341:2310:86;3248:161:81;11341:2310:86;;;;;;;;;;3248:161:81;;;;;;;:::i;:::-;;11341:2310:86;3262:29:81;-1:-1:-1;;;;;11341:2310:86;3248:161:81;;;;;;;-1:-1:-1;3248:161:81;;;3216:193;3247:162;;3216:193;;;3248:161;;;;;;;;;;;;;;:::i;:::-;;;;3082:107;3139:39;;;;;;;;;;;;;:::i;:::-;3082:107;;;;;11341:2310:86;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;8889:1:91;11341:2310:86;;;;;;;:::o;:::-;;:::i;3740:389:81:-;3918:5;11341:2310:86;;;-1:-1:-1;;;3853:71:81;;;-1:-1:-1;;;;;11341:2310:86;;;3853:71:81;;;11341:2310:86;;;;;;;;3740:389:81;;11341:2310:86;3853:71:81;;11341:2310:86;;3853:71:81;11341:2310:86;;;3867:29:81;11341:2310:86;;3853:71:81;;;;;;;3918:5;3853:71;;;3740:389;3852:72;;11341:2310:86;;;3852:181:81;;3740:389;3835:242;;;;;;4094:28;;;:::i;3835:242::-;4058:8;;3918:5;4058:8;:::o;3852:181::-;11341:2310:86;;3945:88:81;;;-1:-1:-1;;;;;11341:2310:86;;3853:71:81;3945:88;;11341:2310:86;467:2:93;11341:2310:86;;;;;;;;-1:-1:-1;11341:2310:86;;;;;;;;3959:31:81;11341:2310:86;3945:88:81;;;;;;;3918:5;3945:88;;;3852:181;3944:89;;;3852:181;;;;;3945:88;;;;;;-1:-1:-1;3945:88:81;;;;;;:::i;:::-;;;;;3853:71;;;;;;;;;;;;;;:::i;:::-;;;;4148:103:24;966:10:28;-1:-1:-1;11341:2310:86;;;;;;;;;885:35:85;;11341:2310:86;;3901:31:24;11341:2310:86;;4468:23:24;4464:108;;4148:103;:::o;:::-;-1:-1:-1;11341:2310:86;;;-1:-1:-1;;;;;;;;;;;11341:2310:86;;;;;;;;966:10:28;11341:2310:86;;;;;;;;;3901:31:24;11341:2310:86;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;11341:2310:86;;-1:-1:-1;11341:2310:86;;;-1:-1:-1;11341:2310:86;:::o;:::-;;:::i;:::-;;;;;-1:-1:-1;;;11341:2310:86;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;11341:2310:86;;;;;;;;:::o;6246:584:91:-;;;;;6360:12;;;11341:2310:86;;;6360:24:91;;6356:75;;6246:584;6474:30;;;;;:::i;:::-;11341:2310:86;;;;;;6578:12:91;;;;:::i;:::-;6604:24;;;;6246:584;-1:-1:-1;6600:188:91;;;-1:-1:-1;;;;;11341:2310:86;;;;;;;6644:21:91;;;:29;:21;;:::i;:29::-;6798:25;6246:584;:::o;6600:188::-;6753:24;;11341:2310:86;;8167:38:61;;-1:-1:-1;;;;;11341:2310:86;;;;;8167:38:61;:::i;:::-;6753:24:91;;;:::i;6604:::-;11341:2310:86;;;;;;6614:14:91;;-1:-1:-1;6604:24:91;;;6356:75;-1:-1:-1;;;11341:2310:86;;;;;;6360:12:91;11341:2310:86;;;;;;;:::i;:::-;;;;;;;;;;;;;;6356:75:91;;;11341:2310:86;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::o;8406:869:91:-;;;11341:2310:86;;8620:15:91;8578:11;8645:18;8678:7;8684:1;8678:7;;8674:241;;8406:869;8939:60;;;;;:::i;:::-;9014:8;;;9010:62;;9252:15;9259:7;11341:2310:86;9219:31:91;11341:2310:86;9130:48:91;9170:7;;;:::i;:::-;9130:48;13267:109;;;;;;13089:293;;9130:48;11341:2310:86;:::i;:::-;;9176:1:91;11341:2310:86;9232:17:91;11341:2310:86;;;;;;;;9232:17:91;;11341:2310:86;-1:-1:-1;;;;;11341:2310:86;;;;9219:12:91;;:31;:::i;:::-;11341:2310:86;;;;;;;;;9259:7:91;;:::i;:::-;11341:2310:86;;;;9252:15:91;9176:1;;9188:80;;8406:869::o;9010:62::-;8578:11;;-1:-1:-1;8578:11:91;;-1:-1:-1;8578:11:91;;;;9038:23::o;8674:241::-;8721:14;;;;;:::i;:::-;11341:2310:86;;;;;;;8939:60:91;13267:109;;8578:11;13267:109;8753:55;8759:49;13267:109;;8578:11;13267:109;;11341:2310:86;;;;;;8759:49:91;11341:2310:86;;;;8753:55:91;11341:2310:86;;;8753:55:91;13267:109;;;8828:10;8749:156;8674:241;;8749:156;8883:7;;;;;;:::i;:::-;8749:156;8674:241;;3326:384:29;-1:-1:-1;;;;;;;;;;;1847:1:29;11341:2310:86;;3526:20:29;3522:88;;1847:1;11341:2310:86;;3326:384:29:o;3522:88::-;11341:2310:86;;-1:-1:-1;;;3569:30:29;;;;;3701:308:85;;11341:2310:86;-1:-1:-1;11341:2310:86;3832:13:85;11341:2310:86;;;-1:-1:-1;11341:2310:86;11124:30:91;;;;:::i;:::-;11173;;;-1:-1:-1;11173:30:91;;;;11182:17;;-1:-1:-1;;;;;11341:2310:86;;11182:12:91;;:17;:::i;:::-;11341:2310:86;;;3832:13:85;11341:2310:86;;11173:30:91;3890::85;;;11173::91;3886:117:85;;;;3701:308;;:::o;3886:117::-;3936:56;11341:2310:86;-1:-1:-1;11341:2310:86;3832:13:85;11341:2310:86;;;-1:-1:-1;11341:2310:86;819:34:63;837:15;819:34;:::i;3936:56:85:-;3701:308;;:::o;3890:30::-;3900:20;;-1:-1:-1;3890:30:85;;;;11173::91;;;-1:-1:-1;11173:30:91;;7270:387:24;-1:-1:-1;;;;;11341:2310:86;;-1:-1:-1;11341:2310:86;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2887:71:24;11341:2310:86;;;;-1:-1:-1;11341:2310:86;;;;;;;;;;;-1:-1:-1;;;;;11341:2310:86;;;;;;;;;;-1:-1:-1;;11341:2310:86;7509:4:24;11341:2310:86;;;966:10:28;;-1:-1:-1;;;;;11341:2310:86;-1:-1:-1;7532:40:24;-1:-1:-1;;7532:40:24;7509:4;7586:11;:::o;7270:387::-;-1:-1:-1;;;;;11341:2310:86;;-1:-1:-1;11341:2310:86;;;;;;;;;1356:26:81;;-1:-1:-1;;;;;;;;;;;2887:71:24;11341:2310:86;;3901:31:24;11341:2310:86;;;;-1:-1:-1;11341:2310:86;;;;;;;;;;;-1:-1:-1;;;;;11341:2310:86;;;;;;;;;;-1:-1:-1;;11341:2310:86;7509:4:24;11341:2310:86;;;966:10:28;;-1:-1:-1;;;;;11341:2310:86;;7532:40:24;-1:-1:-1;;7532:40:24;7509:4;7586:11;:::o;7432:219::-;7628:12;;;-1:-1:-1;7628:12:24;:::o;7270:387::-;-1:-1:-1;;;;;11341:2310:86;;-1:-1:-1;11341:2310:86;;;;;;;;;885:35:85;;-1:-1:-1;;;;;;;;;;;2887:71:24;11341:2310:86;;3901:31:24;11341:2310:86;7270:387:24;-1:-1:-1;11341:2310:86;;;-1:-1:-1;;;;;;;;;;;11341:2310:86;;;;;;;;-1:-1:-1;;;;;11341:2310:86;;;;;;;;;;;;3901:31:24;11341:2310:86;7892:388:24;-1:-1:-1;11341:2310:86;;;-1:-1:-1;;;;;;;;;;;11341:2310:86;;;;;;;;-1:-1:-1;;;;;11341:2310:86;;;;;;;;;;;;;;;;-1:-1:-1;11341:2310:86;;;;;;;;;;;-1:-1:-1;;;;;11341:2310:86;;;;;;;;;;-1:-1:-1;;11341:2310:86;;;966:10:28;;-1:-1:-1;;;;;11341:2310:86;;8155:40:24;-1:-1:-1;;8155:40:24;11341:2310:86;8209:11:24;:::o;10580:184:91:-;11341:2310:86;;10303:8:61;;;:63;-1:-1:-1;10303:63:61;-1:-1:-1;;;;;11341:2310:86;;10726:7:91;11341:2310:86;;10736:12:91;:17;:12;;:17;:::i;10303:63:61:-;11341:2310:86;;;;;;;;;;13267:109:91;-1:-1:-1;13267:109:91;;-1:-1:-1;13267:109:91;;;11341:2310:86;;;10303:63:61;;11341:2310:86;;;;;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;11341:2310:86;;;;;;;;:::i;5907:716:81:-;6030:34;5907:716;6030:34;;;;:::i;:::-;11341:2310:86;;-1:-1:-1;;;6080:41:81;;-1:-1:-1;;;;;11341:2310:86;;;6080:41:81;;;11341:2310:86;;;;;6080:41:81;11341:2310:86;;;6090:13:81;11341:2310:86;;6080:41:81;;;;;;;-1:-1:-1;6080:41:81;;;5907:716;6079:42;;6075:90;;6266:27;11341:2310:86;2540:111:29;6210:14:81;11341:2310:86;2540:111:29;;;:::i;:::-;11341:2310:86;;;;;;-1:-1:-1;;;;;11341:2310:86;;-1:-1:-1;11341:2310:86;;;-1:-1:-1;11341:2310:86;;6210:14:81;6266:27;:::i;:::-;6080:41;6311:15;;11341:2310:86;;;;-1:-1:-1;;;;;;11341:2310:86;-1:-1:-1;;;;;11341:2310:86;;;;;;;;;;;-1:-1:-1;;;;;11341:2310:86;;;;6337:143:81;;5907:716;-1:-1:-1;6493:28:81;11341:2310:86;-1:-1:-1;;;;;11341:2310:86;;;;;;;6489:128:81;;5907:716;:::o;6489:128::-;6551:55;;;:::i;:::-;;5907:716::o;6337:143::-;6404:65;;;:::i;:::-;;6337:143;;;6075:90;11341:2310:86;;-1:-1:-1;;;6144:10:81;;6080:41;;6144:10;6080:41;;;;;;;;;;;;;;:::i;:::-;;;;11341:2310:86;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::o;7558:604:91:-;;11341:2310:86;;7686:17:91;7682:83;;11341:2310:86;7789:27:91;11341:2310:86;7789:27:91;11341:2310:86;;7789:27:91;;;;;;:::i;:::-;7860:14;;;;;:::i;:::-;11341:2310:86;;;;;;;;;;;;;;;;7888:22:91;;;7884:77;;7975:21;-1:-1:-1;7975:84:91;;;;7558:604;7971:139;;;;8127:28;;;;:::i;7971:139::-;8082:17;;7789:27;8082:17;11341:2310:86;8075:24:91;:::o;7975:84::-;11341:2310:86;;;8009:16:91;11341:2310:86;;8009:16:91;:::i;:::-;11341:2310:86;;;8001:24:91;:57;;;;;7975:84;;;;;;;8001:57;8029:29;8038:8;;;8029:18;8038:8;8029:23;8038:8;;:::i;:::-;8029:18;;:::i;:::-;11341:2310:86;;;;;8029:29:91;;8001:57;;;;7884:77;7933:17;;;;;7789:27;7933:17;11341:2310:86;7926:24:91;:::o;7682:83::-;7726:28;;;;:::i;11341:2310:86:-;;;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;11341:2310:86;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;;;;11341:2310:86;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;:::i;2737:699:85:-;;;;;11341:2310:86;;:::i;:::-;;;;2978:16:85;2974:92;;2737:699;-1:-1:-1;;3080:8:85;11341:2310:86;-1:-1:-1;;;;;11341:2310:86;;;;;3080:21:85;3076:85;;-1:-1:-1;11341:2310:86;3218:67:85;;11341:2310:86;;3257:27:85;;3218;;:13;;-1:-1:-1;;;;;11341:2310:86;3218:13:85;11341:2310:86;3218:27:85;3257;;;;11341:2310:86;;;;;;;;;;;3218:67:85;;;3080:8;3218:67;;;:::i;:::-;;;;;;;;;;3192:192;3218:67;-1:-1:-1;3218:67:85;;;2737:699;3341:28;3303:67;3341:28;;11341:2310:86;3341:28:85;;;3303:67;;:::i;:::-;3192:192;;:::i;:::-;3398:21;;2737:699;:::o;3218:67::-;3303;3218;;;;3257:27;3218:67;3257:27;3218:67;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;3076:85;-1:-1:-1;;3128:21:85;;-1:-1:-1;;3117:33:85:o;2974:92::-;3024:31;;;;;;;;;;;;;:::i;:::-;2974:92;;;;;3442:253;3552:8;11341:2310:86;-1:-1:-1;;;;;11341:2310:86;;;;;;;3552:21:85;3548:60;;3634:27;3552:8;11341:2310:86;-1:-1:-1;11341:2310:86;;;;;;;;;;;3634:27:85;;;;;;;;;3625:63;3634:27;-1:-1:-1;3634:27:85;;;3442:253;2193:25;;:34;:25;11341:2310:86;;2193:13:85;11341:2310:86;;;;;;;2193:25:85;:34;:::i;3634:27::-;2193:34;3634:27;;;;2193:25;3634:27;;;;;;;;;;;:::i;:::-;;;;;;14291:213:59;11341:2310:86;14369:24:59;;;;14365:103;;11341:2310:86;14291:213:59;:::o;14365:103::-;11341:2310:86;;;;14416:41:59;;;;;;14447:2;14416:41;;;11341:2310:86;;;;;14416:41:59;10552:388:61;11341:2310:86;;10728:8:61;;;10752:20;;10690:17;10752:20;10690:17;10752:20;10690:17;10752:20;:::o;10724:210::-;11341:2310:86;;;;;;;;;;;13267:109:91;10690:17:61;13267:109:91;;10690:17:61;13267:109:91;;;11341:2310:86;:::i;:::-;;;;;;;13267:109:91;11341:2310:86;;;;;10911:11:61;;11341:2310:86;;10886:37:61;10870:1;10886:37;;;:::o;8587:1642:58:-;8658:6;;8654:45;;9401:7;10201:10;10142:26;10093;10044;9995;9946;9897;9848;11341:2310:86;10189:23:58;9401:7;8663:1;11341:2310:86;;;;10826:16:58;10822:99;;8587:1642;11341:2310:86;;;;10938:15:58;10934:96;;8587:1642;11341:2310:86;;;;11047:15:58;11043:96;;8587:1642;11341:2310:86;;;;11156:15:58;11152:96;;8587:1642;11341:2310:86;;;;11265:14:58;11261:93;;8587:1642;11341:2310:86;;;;11371:14:58;11367:93;;8587:1642;11341:2310:86;;;;11477:14:58;11473:93;;8587:1642;11341:2310:86;;;11579:64:58;;8587:1642;11341:2310:86;;;9858:10:58;;;;:::i;:::-;11341:2310:86;;;;;9848:26:58;9907:10;;;;:::i;9897:26::-;9956:10;;;;:::i;9946:26::-;10005:10;;;;:::i;9995:26::-;10054:10;;;;:::i;10044:26::-;10103:10;;;;:::i;10093:26::-;10152:10;;;;:::i;10142:26::-;10201:10;;;:::i;11579:64::-;11341:2310:86;;11579:64:58;;11473:93;11341:2310:86;11511:11:58;;11341:2310:86;;11473:93:58;;;;11367;11341:2310:86;11405:11:58;;11341:2310:86;;11367:93:58;;;;11261;11341:2310:86;11299:11:58;;11341:2310:86;;11261:93:58;;;;11152:96;11341:2310:86;11191:12:58;;11341:2310:86;;11152:96:58;;;;11043;11341:2310:86;11082:12:58;;11341:2310:86;;11043:96:58;;;;10934;11341:2310:86;10973:12:58;;11341:2310:86;;10934:96:58;;;;10822:99;10862:13;;;11341:2310:86;10822:99:58;;;;12497:447:91;;;12694:10;;;;;;12926:11;;;12497:447;:::o;12687:230::-;2900:5:58;;;;;;11341:2310:86;;2910:5:58;;;11341:2310:86;;;;;;;;;13267:109:91;-1:-1:-1;13267:109:91;11341:2310:86;13267:109:91;;;-1:-1:-1;13267:109:91;;11341:2310:86;;;;;-1:-1:-1;12771:136:91;11341:2310:86;;;12830:10:91;;12771:136;;12687:230;;;;12771:136;11341:2310:86;;;;;;;;;;;12771:136:91;;;6893:76:26;;;:::i;:::-;;;:::i;:::-;1805:1:29;-1:-1:-1;;;;;;;;;;;11341:2310:86;6893:76:26:o;11341:2310:86:-;;;;;;;:::i;:::-;-1:-1:-1;11341:2310:86;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;-1:-1:-1;;;;;11341:2310:86;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;11341:2310:86;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::o;4015:918:85:-;11341:2310:86;;:::i;:::-;;4163:30:85;11341:2310:86;;4163:30:85;;;;;;;;;;;:::i;:::-;4208:17;;11341:2310:86;-1:-1:-1;;;;;11341:2310:86;;4208:17:85;11341:2310:86;;4208:54:85;;:103;;4015:918;4204:161;;4418:15;;;;11341:2310:86;;;;-1:-1:-1;;;4380:54:85;;-1:-1:-1;;;;;11341:2310:86;;;4380:54:85;;;;11341:2310:86;;;;4380:54:85;4418:15;;;;11341:2310:86;;;;;;;;4390:17:85;11341:2310:86;4380:54:85;;;;;;;4208:17;4380:54;;;4015:918;4379:55;;4375:106;;4496:9;;4511:33;;;4208:17;4553:3;4511:33;;11341:2310:86;;4507:44:85;;;;;4576:36;;;:50;:36;;:::i;:::-;11341:2310:86;-1:-1:-1;;;;;11341:2310:86;;;4576:50:85;;4572:119;;4709:73;4710:72;4745:36;;:33;;;:36;:::i;:::-;4710:72;:::i;:::-;4709:73;;11341:2310:86;4709:73:85;4705:140;;11341:2310:86;;4496:9:85;;4705:140;11341:2310:86;;-1:-1:-1;;;4809:21:85;;11341:2310:86;;4809:21:85;4572:119;11341:2310:86;;-1:-1:-1;;;4653:23:85;;11341:2310:86;;4653:23:85;4507:44;-1:-1:-1;;11341:2310:86;;4380:54:85;11341:2310:86;;-1:-1:-1;;;;;;11341:2310:86;-1:-1:-1;;;;;11341:2310:86;;;;;;;;;;-1:-1:-1;4865:26:85;;-1:-1:-1;;11341:2310:86;4865:26:85;4909:17;4015:918;:::o;4375:106::-;4418:15;11341:2310:86;-1:-1:-1;;;4457:13:85;;4380:54;;4457:13;4380:54;;;;;;;;;;;;;;:::i;:::-;;;;4204:161;11341:2310:86;;-1:-1:-1;;;4334:20:85;;;;;4208:103;4266:33;;;;;11341:2310:86;4266:45:85;4208:103;;6999:207:91;;11341:2310:86;;9594:15:61;-1:-1:-1;9619:18:61;9652:7;9658:1;9652:7;;9648:234;;6999:207:91;9906:53:61;;;;;:::i;:::-;9977:8;;;:63;-1:-1:-1;9977:63:61;;-1:-1:-1;;;;;11341:2310:86;;7168:7:91;11341:2310:86;;;7178:12:91;;:17;:12;;:17;:::i;9977:63:61:-;9992:41;10025:7;9992:48;10025:7;;:::i;:::-;9992:41;13267:109:91;;;;;;13089:293;;9992:41:61;11341:2310:86;;;;;9992:48:61;9977:63;;;9648:234;9695:14;;;;;:::i;:::-;11341:2310:86;;;;;;;9906:53:61;13267:109:91;;-1:-1:-1;13267:109:91;11341:2310:86;13267:109:91;;;-1:-1:-1;13267:109:91;;11341:2310:86;;;;;9727:48:61;9723:149;11341:2310:86;;;9795:10:61;9723:149;9648:234;;9723:149;9850:7;;;;;;:::i;:::-;9723:149;9648:234;;11341:2310:86;;;;;;;:::i;:::-;-1:-1:-1;11341:2310:86;;;;;;;:::o;11486:272:91:-;;11341:2310:86;11308:22:61;11718:31:91;11486:272;11341:2310:86;;:::i;:::-;;;;:::i;:::-;;11308:22:61;;:::i;:::-;11341:2310:86;;:::i;:::-;;11718:12:91;11341:2310:86;;;;;11731:17:91;11341:2310:86;;;;;11731:17:91;;11341:2310:86;;11718:12:91;;:31;:::i;:::-;11341:2310:86;;;;;;;;;:::i;:::-;;;;;;11731:17:91;11672:79;;11341:2310:86;11486:272:91;:::o;2557:104:58:-;;2641:5;;;;;;:13;2557:104;:::o;2641:13::-;;;2557:104;:::o;11341:2310:86:-;;;-1:-1:-1;;;11341:2310:86;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;11341:2310:86;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;11513:870:61;11341:2310:86;;11513:870:61;;;11341:2310:86;11513:870:61;11672:7;;;;11341:2310:86;11775:28:61;11795:7;;;:::i;11341:2310:86:-;;;;;;;;;;;;;;;;11877:15:61;-1:-1:-1;11873:91:61;;11341:2310:86;;12233:11:61;11341:2310:86;;;12027:16:61;11341:2310:86;;;;;;;12027:16:61;;;;12083:7;12063:43;12083:7;;12063:28;12083:7;;:::i;:::-;12063:28;13267:109:91;;;;;;13089:293;;12063:28:61;11341:2310:86;;;;;;;;;;;;;;;;;12063:43:61;12233:11;11341:2310:86;-1:-1:-1;;;;;11341:2310:86;;;12023:189:61;11341:2310:86;;;12145:52:61;11341:2310:86;12155:41:61;11341:2310:86;;:::i;:::-;;;;;;;;12155:41:61;-1:-1:-1;;;;;11341:2310:86;;12155:41:61;;;11341:2310:86;12145:52:61;:::i;:::-;12023:189;;11873:91;11341:2310:86;;-1:-1:-1;;;11919:30:61;;;;;11668:709;12283:52;11341:2310:86;;12293:41:61;11341:2310:86;;:::i;12293:41:61:-;-1:-1:-1;;;;;11341:2310:86;;12293:41:61;;;11341:2310:86;12145:52:61;:::i;12283:::-;11678:1;12349:17;;:::o;7084:141:26:-;11341:2310:86;-1:-1:-1;;;;;;;;;;;11341:2310:86;;;;7150:18:26;7146:73;;7084:141::o;7146:73::-;11341:2310:86;;-1:-1:-1;;;7191:17:26;;;;","linkReferences":{},"immutableReferences":{"64520":[{"start":1956,"length":32}],"64523":[{"start":3948,"length":32}],"65474":[{"start":1429,"length":32},{"start":4005,"length":32}],"65477":[{"start":959,"length":32},{"start":8857,"length":32}],"65480":[{"start":1027,"length":32},{"start":6514,"length":32},{"start":6817,"length":32}],"65483":[{"start":1299,"length":32},{"start":6361,"length":32},{"start":6943,"length":32}],"67399":[{"start":3534,"length":32},{"start":11035,"length":32}],"68667":[{"start":3369,"length":32},{"start":5274,"length":32}],"68669":[{"start":2830,"length":32},{"start":5435,"length":32}],"68671":[{"start":3696,"length":32}],"69080":[{"start":1164,"length":32}]}},"methodIdentifiers":{"BASE_DELEGATOR_HINTS()":"79d89614","DEFAULT_ADMIN_ROLE()":"a217fddf","FACTORY()":"2dd31000","HOOK_GAS_LIMIT()":"ff54740f","HOOK_RESERVE()":"557cab44","HOOK_SET_ROLE()":"6679191e","NETWORK_LIMIT_SET_ROLE()":"7d24bb27","NETWORK_REGISTRY()":"c0cd7c3e","OPERATOR_NETWORK_OPT_IN_SERVICE()":"1a80e500","OPERATOR_REGISTRY()":"83ce0322","OPERATOR_VAULT_OPT_IN_SERVICE()":"128e5d82","OPT_IN_SERVICE_HINTS()":"9b656b22","TYPE()":"bb24fe8a","VAULT_FACTORY()":"103f2907","VAULT_HINTS()":"45e78fcb","VERSION()":"ffa1ad74","getRoleAdmin(bytes32)":"248a9ca3","grantRole(bytes32,address)":"2f2ff15d","hasRole(bytes32,address)":"91d14854","hook()":"7f5a7c7b","initialize(bytes)":"439fab91","maxNetworkLimit(bytes32)":"d15b740e","networkLimit(bytes32)":"3eb22c0f","networkLimitAt(bytes32,uint48,bytes)":"5d32a1c9","networkLimitHint(address,bytes32,uint48)":"da749d2b","networkLimitHintInternal(bytes32,uint48)":"197aa7ea","onSlash(bytes32,address,uint256,uint48,bytes)":"e49561ee","operator()":"570ca735","renounceRole(bytes32,address)":"36568abe","revokeRole(bytes32,address)":"d547741f","setHook(address)":"3dfd3873","setMaxNetworkLimit(uint96,uint256)":"23f752d5","setNetworkLimit(bytes32,uint256)":"02145348","stake(bytes32,address)":"fd4d447c","stakeAt(bytes32,address,uint48,bytes)":"e02f6937","stakeHints(address,bytes32,address,uint48)":"25dc9708","staticDelegateCall(address,bytes)":"9f86fd85","supportsInterface(bytes4)":"01ffc9a7","vault()":"fbfa77cf"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"baseDelegatorHints\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"vaultHints\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"optInServiceHints\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"AccessControlBadConfirmation\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"neededRole\",\"type\":\"bytes32\"}],\"name\":\"AccessControlUnauthorizedAccount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AlreadySet\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CheckpointUnorderedInsertion\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"DuplicateRoleHolder\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ExceedsMaxNetworkLimit\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ExternalCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientHookGas\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MissingRoleHolders\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotNetwork\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotOperator\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotSlasher\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotVault\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ReentrancyGuardReentrantCall\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"bits\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"SafeCastOverflowedUintDowncast\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ZeroAddressRoleHolder\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint48\",\"name\":\"captureTimestamp\",\"type\":\"uint48\"}],\"name\":\"OnSlash\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"previousAdminRole\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"newAdminRole\",\"type\":\"bytes32\"}],\"name\":\"RoleAdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleRevoked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"hook\",\"type\":\"address\"}],\"name\":\"SetHook\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"SetMaxNetworkLimit\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"SetNetworkLimit\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"BASE_DELEGATOR_HINTS\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"DEFAULT_ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"FACTORY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"HOOK_GAS_LIMIT\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"HOOK_RESERVE\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"HOOK_SET_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"NETWORK_LIMIT_SET_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"NETWORK_REGISTRY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"OPERATOR_NETWORK_OPT_IN_SERVICE\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"OPERATOR_REGISTRY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"OPERATOR_VAULT_OPT_IN_SERVICE\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"OPT_IN_SERVICE_HINTS\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"TYPE\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"VAULT_FACTORY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"VAULT_HINTS\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"VERSION\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleAdmin\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"grantRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"hook\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"}],\"name\":\"maxNetworkLimit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"}],\"name\":\"networkLimit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hint\",\"type\":\"bytes\"}],\"name\":\"networkLimitAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"}],\"name\":\"networkLimitHint\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"}],\"name\":\"networkLimitHintInternal\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"exists\",\"type\":\"bool\"},{\"internalType\":\"uint32\",\"name\":\"hint\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint48\",\"name\":\"captureTimestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"onSlash\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"operator\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"callerConfirmation\",\"type\":\"address\"}],\"name\":\"renounceRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"hook_\",\"type\":\"address\"}],\"name\":\"setHook\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint96\",\"name\":\"identifier\",\"type\":\"uint96\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"setMaxNetworkLimit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"setNetworkLimit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"stake\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hints\",\"type\":\"bytes\"}],\"name\":\"stakeAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"}],\"name\":\"stakeHints\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"staticDelegateCall\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"vault\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"AccessControlBadConfirmation()\":[{\"details\":\"The caller of a function is not the expected one. NOTE: Don't confuse with {AccessControlUnauthorizedAccount}.\"}],\"AccessControlUnauthorizedAccount(address,bytes32)\":[{\"details\":\"The `account` is missing a role.\"}],\"CheckpointUnorderedInsertion()\":[{\"details\":\"A value was attempted to be inserted on a past checkpoint.\"}],\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"ReentrancyGuardReentrantCall()\":[{\"details\":\"Unauthorized reentrant call.\"}],\"SafeCastOverflowedUintDowncast(uint8,uint256)\":[{\"details\":\"Value doesn't fit in an uint of `bits` size.\"}]},\"events\":{\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"OnSlash(bytes32,address,uint256,uint48)\":{\"params\":{\"amount\":\"amount of the collateral to be slashed\",\"captureTimestamp\":\"time point when the stake was captured\",\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"}},\"RoleAdminChanged(bytes32,bytes32,bytes32)\":{\"details\":\"Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole` `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite {RoleAdminChanged} not being emitted signaling this.\"},\"RoleGranted(bytes32,address,address)\":{\"details\":\"Emitted when `account` is granted `role`. `sender` is the account that originated the contract call, an admin role bearer except when using {AccessControl-_setupRole}.\"},\"RoleRevoked(bytes32,address,address)\":{\"details\":\"Emitted when `account` is revoked `role`. `sender` is the account that originated the contract call: - if using `revokeRole`, it is the admin role bearer - if using `renounceRole`, it is the role bearer (i.e. `account`)\"},\"SetHook(address)\":{\"params\":{\"hook\":\"address of the hook\"}},\"SetMaxNetworkLimit(bytes32,uint256)\":{\"params\":{\"amount\":\"new maximum subnetwork's limit (how much stake the subnetwork is ready to get)\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"}},\"SetNetworkLimit(bytes32,uint256)\":{\"params\":{\"amount\":\"new subnetwork's limit (how much stake the vault curator is ready to give to the subnetwork)\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"}}},\"kind\":\"dev\",\"methods\":{\"VERSION()\":{\"details\":\"Must return 1 for this one.\",\"returns\":{\"_0\":\"version of the delegator\"}},\"getRoleAdmin(bytes32)\":{\"details\":\"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}.\"},\"grantRole(bytes32,address)\":{\"details\":\"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event.\"},\"hasRole(bytes32,address)\":{\"details\":\"Returns `true` if `account` has been granted `role`.\"},\"initialize(bytes)\":{\"params\":{\"data\":\"some data to use\"}},\"networkLimit(bytes32)\":{\"params\":{\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"},\"returns\":{\"_0\":\"limit of the subnetwork\"}},\"networkLimitAt(bytes32,uint48,bytes)\":{\"params\":{\"hint\":\"hint for checkpoint index\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\",\"timestamp\":\"time point to get the subnetwork limit at\"},\"returns\":{\"_0\":\"limit of the subnetwork at the given timestamp\"}},\"onSlash(bytes32,address,uint256,uint48,bytes)\":{\"details\":\"Only the vault's slasher can call this function.\",\"params\":{\"amount\":\"amount of the collateral slashed\",\"captureTimestamp\":\"time point when the stake was captured\",\"data\":\"some additional data\",\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"}},\"renounceRole(bytes32,address)\":{\"details\":\"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `callerConfirmation`. May emit a {RoleRevoked} event.\"},\"revokeRole(bytes32,address)\":{\"details\":\"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event.\"},\"setHook(address)\":{\"details\":\"Only a HOOK_SET_ROLE holder can call this function. The hook can have arbitrary logic under certain functions, however, it doesn't affect the stake guarantees.\",\"params\":{\"hook\":\"address of the hook\"}},\"setMaxNetworkLimit(uint96,uint256)\":{\"details\":\"Only a network can call this function.\",\"params\":{\"amount\":\"new maximum subnetwork's limit\"}},\"setNetworkLimit(bytes32,uint256)\":{\"details\":\"Only a NETWORK_LIMIT_SET_ROLE holder can call this function.\",\"params\":{\"amount\":\"new limit of the subnetwork\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"}},\"stake(bytes32,address)\":{\"details\":\"Warning: this function is not safe to use for stake capturing, as it can change by the end of the block.\",\"params\":{\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"},\"returns\":{\"_0\":\"slashable stake until the end of the next epoch\"}},\"stakeAt(bytes32,address,uint48,bytes)\":{\"details\":\"Warning: it is not safe to use timestamp >= current one for the stake capturing, as it can change later.\",\"params\":{\"hints\":\"hints for the checkpoints' indexes\",\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\",\"timestamp\":\"time point to capture the stake at\"},\"returns\":{\"_0\":\"slashable stake at the given timestamp until the end of the consequent epoch\"}},\"staticDelegateCall(address,bytes)\":{\"details\":\"It allows to use this contract's storage on-chain.\",\"params\":{\"data\":\"data to make a delegatecall with\",\"target\":\"address of the contract to make a delegatecall to\"}},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"}},\"version\":1},\"userdoc\":{\"events\":{\"OnSlash(bytes32,address,uint256,uint48)\":{\"notice\":\"Emitted when a slash happens.\"},\"SetHook(address)\":{\"notice\":\"Emitted when a hook is set.\"},\"SetMaxNetworkLimit(bytes32,uint256)\":{\"notice\":\"Emitted when a subnetwork's maximum limit is set.\"},\"SetNetworkLimit(bytes32,uint256)\":{\"notice\":\"Emitted when a subnetwork's limit is set.\"}},\"kind\":\"user\",\"methods\":{\"FACTORY()\":{\"notice\":\"Get the factory's address.\"},\"HOOK_GAS_LIMIT()\":{\"notice\":\"Get a gas limit for the hook.\"},\"HOOK_RESERVE()\":{\"notice\":\"Get a reserve gas between the gas limit check and the hook's execution.\"},\"HOOK_SET_ROLE()\":{\"notice\":\"Get a hook setter's role.\"},\"NETWORK_LIMIT_SET_ROLE()\":{\"notice\":\"Get a subnetwork limit setter's role.\"},\"NETWORK_REGISTRY()\":{\"notice\":\"Get the network registry's address.\"},\"OPERATOR_NETWORK_OPT_IN_SERVICE()\":{\"notice\":\"Get the operator-network opt-in service's address.\"},\"OPERATOR_REGISTRY()\":{\"notice\":\"Get the operator registry's address.\"},\"OPERATOR_VAULT_OPT_IN_SERVICE()\":{\"notice\":\"Get the operator-vault opt-in service's address.\"},\"TYPE()\":{\"notice\":\"Get the entity's type.\"},\"VAULT_FACTORY()\":{\"notice\":\"Get the vault factory's address.\"},\"VERSION()\":{\"notice\":\"Get a version of the delegator (different versions mean different interfaces).\"},\"hook()\":{\"notice\":\"Get the hook's address.\"},\"initialize(bytes)\":{\"notice\":\"Initialize this entity contract by using a given data.\"},\"maxNetworkLimit(bytes32)\":{\"notice\":\"Get a particular subnetwork's maximum limit (meaning the subnetwork is not ready to get more as a stake).\"},\"networkLimit(bytes32)\":{\"notice\":\"Get a subnetwork's limit (how much stake the vault curator is ready to give to the subnetwork).\"},\"networkLimitAt(bytes32,uint48,bytes)\":{\"notice\":\"Get a subnetwork's limit at a given timestamp using a hint (how much stake the vault curator is ready to give to the subnetwork).\"},\"onSlash(bytes32,address,uint256,uint48,bytes)\":{\"notice\":\"Called when a slash happens.\"},\"operator()\":{\"notice\":\"Get an operator managing the vault's funds.\"},\"setHook(address)\":{\"notice\":\"Set a new hook.\"},\"setMaxNetworkLimit(uint96,uint256)\":{\"notice\":\"Set a maximum limit for a subnetwork (how much stake the subnetwork is ready to get). identifier identifier of the subnetwork\"},\"setNetworkLimit(bytes32,uint256)\":{\"notice\":\"Set a subnetwork's limit (how much stake the vault curator is ready to give to the subnetwork).\"},\"stake(bytes32,address)\":{\"notice\":\"Get a stake that a given subnetwork will be able to slash for a certain operator until the end of the next epoch (if no cross-slashing and no slashings by the subnetwork).\"},\"stakeAt(bytes32,address,uint48,bytes)\":{\"notice\":\"Get a stake that a given subnetwork could be able to slash for a certain operator at a given timestamp until the end of the consequent epoch using hints (if no cross-slashing and no slashings by the subnetwork).\"},\"staticDelegateCall(address,bytes)\":{\"notice\":\"Make a delegatecall from this contract to a given target contract with a particular data (always reverts with a return data).\"},\"vault()\":{\"notice\":\"Get the vault's address.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/contracts/hints/DelegatorHints.sol\":\"OperatorSpecificDelegatorHints\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol\":{\"keccak256\":\"0x6662ec4e5cefca03eeadd073e9469df8d2944bb2ee8ec8f7622c2c46aab5f225\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4d8544c6f8daa4d1bc215c6a72fe0acdb748664a105b0e5efc19295667521d45\",\"dweb:/ipfs/QmdGWqdnXT8S3RgCR6aV8XHZrsybieMQLLnug1NtpSjEXN\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0xc163fcf9bb10138631a9ba5564df1fa25db9adff73bd9ee868a8ae1858fe093a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9706d43a0124053d9880f6e31a59f31bc0a6a3dc1acd66ce0a16e1111658c5f6\",\"dweb:/ipfs/QmUFmfowzkRwGtDu36cXV9SPTBHJ3n7dG9xQiK5B28jTf2\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609\",\"dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9\",\"dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardUpgradeable.sol\":{\"keccak256\":\"0xb44e086e941292cdc7f440de51478493894ef0b1aeccb0c4047445919f667f74\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://942dad22fbdc1669f025540ba63aa3ccfad5f8458fc5d4525b31ebf272e7af45\",\"dweb:/ipfs/Qmdo4X2M82aM3AMoW2kf2jhYkSCyC4T1pHNd6obdsDFnAB\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol\":{\"keccak256\":\"0xdaba3f7c42c55b2896353f32bd27d4d5f8bae741b3b05d4c53f67abc4dc47ce8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1fa2e61141c602510bcd2cd936ed9561922ac8772a9b9c9a9db091a74e354a45\",\"dweb:/ipfs/QmcHQDDoEBwJmwUbzoVkytvJsBx3KVHYFFnDkvRGWh9Wmh\"]},\"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0xb6b36edd6a2999fd243ff226d6cbf84bd71af2432bbd0dfe19392996a1d9cb41\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1fd2f35495652e57e3f99bc6c510bc5f7dd398a176ea2e72d8ed730aebc6ca26\",\"dweb:/ipfs/QmTQV6X4gkikTib49cho5iDX3JvSQbdsoEChoDwrk3CbbH\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC1271.sol\":{\"keccak256\":\"0x85a45f3f10014a0f8be41157a32b6a5f905753ea64a4b64e29fc12b7deeecf39\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c3c74009ce36136b36c77c23935b8e4a7b4f253be2da2be4fb4a916b1ce43743\",\"dweb:/ipfs/QmcH36v3iN7SJJuF73AunLR2LtNxhVJ1wm63ph4dPZ4pcL\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC5267.sol\":{\"keccak256\":\"0x92aa1df62dc3d33f1656d63bede0923e0df0b706ad4137c8b10b0a8fe549fd92\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c5c0f29195ad64cbe556da8e257dac8f05f78c53f90323c0d2accf8e6922d33a\",\"dweb:/ipfs/QmQ61TED8uaCZwcbh8KkgRSsCav7x7HbcGHwHts3U4DmUP\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c\",\"dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0x6008dabfe393240d73d7dd7688033f72740d570aa422254d29a7dce8568f3aff\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f5196ec75139918c6c7bb4251b36395e668f1fa6d206beba7e7520e74913940d\",\"dweb:/ipfs/QmSyqjksXxmm2mCG6qRd1yuwLykypkSVBbnBnGqJRcuJMi\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x37bb49513c49c87c4642a891b13b63571bc87013dde806617aa1efb54605f386\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b3036b3a83b7c48f96641f2a9002b9f2dcb6a5958dd670894ada21ae8229b3d0\",\"dweb:/ipfs/QmUNfSBdoVtjhETaUJCYcaC7pTMgbhht926tJ2uXJbiVd3\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0xaf28a975a78550e45f65e559a3ad6a5ad43b9b8a37366999abd1b7084eb70721\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b7bd24e224f67f65bfadf85dc2929fa965456bb2415478bd0125471b5ce35245\",\"dweb:/ipfs/QmRaydGr8BTHs1kvaZfsNU69pKzUAGFrvABn1KiRSbE51y\"]},\"lib/openzeppelin-contracts/contracts/utils/ShortStrings.sol\":{\"keccak256\":\"0x18a7171df639a934592915a520ecb97c5bbc9675a1105607aac8a94e72bf62c6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7478e1f13da69a2867ccd883001d836b75620362e743f196376d63ed0c422a1c\",\"dweb:/ipfs/QmWywcQ9TNfwtoqAxbn25d8C5VrV12PrPS9UjtGe6pL2BA\"]},\"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0x32ba59b4b7299237c8ba56319110989d7978a039faf754793064e967e5894418\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1ae50c8b562427df610cc4540c9bf104acca7ef8e2dcae567ae7e52272281e9c\",\"dweb:/ipfs/QmTHiadFCSJUPpRjNegc5SahmeU8bAoY8i9Aq6tVscbcKR\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0x55f102ea785d8399c0e58d1108e2d289506dde18abc6db1b7f68c1f9f9bc5792\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e52e0a7765c943ef14e5bcf11e46e6139fa044be564881378349236bf2e3453\",\"dweb:/ipfs/QmZEeeXoFPW47amyP35gfzomF9DixqqTEPwzBakv6cZw6i\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0xeed0a08b0b091f528356cbc7245891a4c748682d4f6a18055e8e6ca77d12a6cf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba80ba06c8e6be852847e4c5f4492cef801feb6558ae09ed705ff2e04ea8b13c\",\"dweb:/ipfs/QmXRJDv3xHLVQCVXg1ZvR35QS9sij5y9NDWYzMfUfAdTHF\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/EIP712.sol\":{\"keccak256\":\"0x999f705a027ed6dc2d4e0df2cc4a509852c6bfd11de1c8161bf88832d0503fd0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0798def67258d9a3cc20b2b4da7ebf351a5cefe0abfdd665d2d81f8e32f89b21\",\"dweb:/ipfs/QmPEvJosnPfzHNjKvCv2D3891mA2Ww8eUwkqrxBjuYdHCt\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol\":{\"keccak256\":\"0xba333517a3add42cd35fe877656fc3dfcc9de53baa4f3aabbd6d12a92e4ea435\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2ceacff44c0fdc81e48e0e0b1db87a2076d3c1fb497341de077bf1da9f6b406c\",\"dweb:/ipfs/QmRUo1muMRAewxrKQ7TkXUtknyRoR57AyEkoPpiuZQ8FzX\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/SignatureChecker.sol\":{\"keccak256\":\"0x6b11eb41a228cca35d4b662b4df69fcd75192851365102690f57b2ac01e83fe6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ab006a2983ed350d2af21ddcdd835dcae3b8340086cc4d088460da5abd041f69\",\"dweb:/ipfs/QmbEacDhkJZiGrgzLjB4pNtE8Z1uudjDw1DvcDUTVQFsLG\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875\",\"dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0xe19a4d5f31d2861e7344e8e535e2feafb913d806d3e2b5fe7782741a2a7094fe\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4aed79c0fa6f0546ed02f2f683e8f77f0fd2ed7eb34d8bbf3d373c9a6d95b13c\",\"dweb:/ipfs/QmWqVz6UAVqmnWU5pqYPt1o6iDEZyPaBraAA3rKfTTSfYj\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x5f7e4076e175393767754387c962926577f1660dd9b810187b9002407656be72\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7d533a1c97cd43a57cd9c465f7ee8dd0e39ae93a8fb8ff8e5303a356b081cdcc\",\"dweb:/ipfs/QmVBEei6aTnvYNZp2CHYVNKyZS4q1KkjANfY39WVXZXVoT\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/Checkpoints.sol\":{\"keccak256\":\"0xbdc5e074d7dd6678f67e92b1a51a20226801a407b0e1af3da367c5d1ff4519ad\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a36cca6b22fff3db16fc789ff6c60eea71d4b156065d4d0c83a0bc5e91a77a8b\",\"dweb:/ipfs/QmYN3exd5AemxjBrN8XMB1p5LbbE16uC3sjbYjwi8AjcGR\"]},\"lib/openzeppelin-contracts/contracts/utils/types/Time.sol\":{\"keccak256\":\"0xc7755af115020049e4140f224f9ee88d7e1799ffb0646f37bf0df24bf6213f58\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7f09bf94d5274334ec021f61a04659db303f31e60460e14b709c9bf187740111\",\"dweb:/ipfs/QmNvgomZYUwFAt4cZbPWAiTeSZQreGehY9BK5xyVJsUttb\"]},\"src/contracts/common/Entity.sol\":{\"keccak256\":\"0x3d61a932995b8443381f3950542d388223a2c26dd5d29a3274dea3baa7388bd7\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://7cdf5f03ca72fd263fd32ff59c8d88ddca911ae83896a287d10772c1bbe9b138\",\"dweb:/ipfs/QmbP84r5BWT1Rn9AYTntWSf3xUMTTCohTZJFhbBhDXFoHa\"]},\"src/contracts/common/MigratableEntity.sol\":{\"keccak256\":\"0x2d736f4dacd5d7e7697503bc426c78b8250fe1694ca157965ec178da6807de58\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://f1237acf96b4b9f9b69156e068eddd726a6e15bd8e87a18dc999cd4ba4da069c\",\"dweb:/ipfs/QmS6M8fiFFSeuJ4ZKKq1z8W7w4ybeHQSy5TLASGoc1LVic\"]},\"src/contracts/common/StaticDelegateCallable.sol\":{\"keccak256\":\"0x350029aa8955eacaffffaeb58babc5c98e80ebc5c5db388ed17ee6465f4a9d90\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://eb392a8ee9050e0af606897df63e3404e3829e8b688b580663892f9664195764\",\"dweb:/ipfs/QmaXC8jqV8UrrAFkzXTEv2fJF56sy33HhLxAzaRZmUxuXD\"]},\"src/contracts/delegator/BaseDelegator.sol\":{\"keccak256\":\"0x7c54d491fdd4415b764a9c8defa068e56d4c0c8c9419be0053a1d377669290e8\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://9238bfbad0f6eeb0dc7727724de14380f1980b395902269703d5e2ef07e52e10\",\"dweb:/ipfs/QmPJn1V4HNXcEghYvogGuSTF24dSQUPosR5qtsXcmNqRm3\"]},\"src/contracts/delegator/FullRestakeDelegator.sol\":{\"keccak256\":\"0x0a81c4f8e72914563a9cb771e93acf889c71ea36b7bec040e4eb562b199d5af1\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://6fc66b6ba02da77046a0bbbd1dd407a62c08f52e04486c9cbd2cb1cca3da555f\",\"dweb:/ipfs/QmZQivK1ZnMxfRQQ5aLpV9co5u55wQVNev5Rg1hzAqxhkE\"]},\"src/contracts/delegator/NetworkRestakeDelegator.sol\":{\"keccak256\":\"0xd3a8e6522f9c6fdcc2da837c9023afd6bdff2bce45a35590320c475519e3636d\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://58b17a87f6554f08376f9ea7fedf486a4aa75801bf0ad8b23ff5a46959b6b7a3\",\"dweb:/ipfs/QmSTmNh67tYt8CmjVZb57r8N3qX5yeYdMApKPJm3qvQgQw\"]},\"src/contracts/delegator/OperatorNetworkSpecificDelegator.sol\":{\"keccak256\":\"0x031a10722b9ec49048f0952710401131290adb87e71caf294e864e7ac3b98a16\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://72428febc875134b2f29205e6f294634a1c22a7d5c78d6a9cb2f8196f107c9b5\",\"dweb:/ipfs/QmTPwXR6h5oytckmkLrHdKeEMdphJxceDhYUR4zvQeWAwY\"]},\"src/contracts/delegator/OperatorSpecificDelegator.sol\":{\"keccak256\":\"0x630ce62fa30b9f3349ab7a8cf8dbf041319febc6dd757be2f94d3d25944ed328\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://c2ac59d47ce57d2a6819ae9833e1a618a371eccff93eb5ab367b201b01f42bfa\",\"dweb:/ipfs/QmdBpGMBivpNPv2WbH8vnCUy5xkVeaxQvGgqi33vKCz1kA\"]},\"src/contracts/hints/DelegatorHints.sol\":{\"keccak256\":\"0x44aa0c396311a54afbc7c73e8dadeed41e3165a4fd13f712b27d63d50fc3376d\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://2f255214f3531fc707d88be0d56a7a0aed4180439316d099d760d9118aa83093\",\"dweb:/ipfs/QmZD1w5p1ukJSXumUAjvxwGmkPhn7vsr21Y2atLGEZR2oi\"]},\"src/contracts/hints/Hints.sol\":{\"keccak256\":\"0x8b565df1ae35993c097a9e642002782a8f451f6fd01809cad6bcd345bdf1b99c\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://99a19adb01e350a92f534095b3078229df1f2f83077992d75d58d8684be45971\",\"dweb:/ipfs/QmbmwcuswVbzvwHQFTtrJG86oV98GnfxqYTb8cV8u1acox\"]},\"src/contracts/hints/OptInServiceHints.sol\":{\"keccak256\":\"0x95d9407900d27b9f4a1233b772aeed809c07b2dc5b31cfc9fa77ca26514c49e5\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://a13a8877e312d7e6b8b85bde3668c5d84ff5ecc83f762cd573f2b7104c64eb42\",\"dweb:/ipfs/QmYV2J55acuGzCNnS3juABuUHY5U1xc8g8o9jwEyFFdeG5\"]},\"src/contracts/hints/VaultHints.sol\":{\"keccak256\":\"0xccb505b7159b769cc114d67b87c2de6b106557f667fc8f3780114baad5c3c442\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://6d0c80a908fc16e96a8b5605a0bd53f9e89ad0ef0a738fbbae80ba4d3160749b\",\"dweb:/ipfs/QmXo5UtWoR8YmunqcbBU8rQMm1nvmvjNPoXcVrDhh4pEwR\"]},\"src/contracts/libraries/Checkpoints.sol\":{\"keccak256\":\"0xba90097c8bfe0a975499428b5f8ac5569483c7d92ccc28c12d70de416aae040c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://12f5d93ca94cd06d3147db68993165a58e17903ed53682560de61f3085ad4609\",\"dweb:/ipfs/QmePiuAqvXprMLmFZkGZeGjvGPAvsEDHfCDv7BoQhXu9xE\"]},\"src/contracts/libraries/ERC4626Math.sol\":{\"keccak256\":\"0x8441160513c1cbeb1c3b9ee077bcc7e7ce20006b52a77c8dd39ff0ef89699939\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://943f8cc3e26ddf649f465f40c909819f5c864717c4baa339e9e403b9374a4653\",\"dweb:/ipfs/QmXPxi1sUDsrGprZdUgCzoPEosaZMv9ZhygWQ1vAi1phAB\"]},\"src/contracts/libraries/Subnetwork.sol\":{\"keccak256\":\"0xf5ef5506fd66082b3c2e7f3df37529f5a8efad32ac62e7c8914bd63219190bfe\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba031a54ee0d0e9a270c2b9e18437f5668cfeb659cfd5fe0677459d7fcac2a56\",\"dweb:/ipfs/QmReP3H7qQ78tAfgLnJKsNEQNCQfF1X1Get38Ffd4kzq32\"]},\"src/contracts/service/OptInService.sol\":{\"keccak256\":\"0x4e0932077f2686b7990e10d59deb2535334c0d09e52ef6e57c6ab09eca21c4b1\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://7c00d311032ed4a1743aca7475f3c86ce15cdfc2218108efc3731c03d34a5278\",\"dweb:/ipfs/QmUGGfVwVhaHr5kS4177yKKYiLYzi5qZpkEmvYxBZqazxf\"]},\"src/contracts/vault/Vault.sol\":{\"keccak256\":\"0x2ceff6ed3298c4cad144c99fcc79b51cb9397d6ebef00285b915848b476f8c2e\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://11f2fb3581854f3ab6e82e8d4935d9eb510c903a13c3f022346c2956a58f5307\",\"dweb:/ipfs/QmdUnoXoyYoG9SGWyQZCFyLDRUUX3eXyXetkRvw6jxqqBz\"]},\"src/contracts/vault/VaultStorage.sol\":{\"keccak256\":\"0x57db25b127d77ea3472de53e3a4af3354399655b9268638b99ca5925fa364a56\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://aa763d9a6ec508ae3abfb8228b72b9fd9525279e5135d4962e79ff059feb1173\",\"dweb:/ipfs/QmcbDR6E9wyEpu6V2FkEC4hnWy47zXA9LSKJde6zSGd33Q\"]},\"src/interfaces/common/IEntity.sol\":{\"keccak256\":\"0x8ef4b63d6da63489778ccd5f8d13ebdd527dd4b62730b2c616df5af7474d2d21\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a8d69576a9219d85c50816a18ad53a4d53cfcb27ed38b8cccc808dc2734b71b\",\"dweb:/ipfs/QmYVN3P4Q4REvBWJ97TbAcaxm3uyB2anV6NSGa6ZtSwcEv\"]},\"src/interfaces/common/IMigratableEntity.sol\":{\"keccak256\":\"0x8f5f2809f3afbe8ebfbb365dd7b57b4dd3b6f9943a6187eaf648d45895b8e3c4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ffe640537d539e7a4fde70d30d3e4c57f4ba9c2c25c450cea713aae38e8fd5c\",\"dweb:/ipfs/QmSUTGzvdcn1R1KB7tLThMRtESsfPbeXDhhhKWGtntzBds\"]},\"src/interfaces/common/IRegistry.sol\":{\"keccak256\":\"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014\",\"dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK\"]},\"src/interfaces/common/IStaticDelegateCallable.sol\":{\"keccak256\":\"0xa335d4e81b9071b7de66ef92b43ff20671d86516eb1be46fef29a3483cd3f5d5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d464b9db863c14c05547d2b23352f2e9b7b784799cf09f6bbc4906a2a74e3516\",\"dweb:/ipfs/QmUVWzFvJz7eEbDQKiFTTzwi7TEbjcs3VmwdM4kuptAKvi\"]},\"src/interfaces/delegator/IBaseDelegator.sol\":{\"keccak256\":\"0x96bb312f032e17accce3f8f80936d99468029d6b37c9ca74acdb4b026a0148ee\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2a66dcb5b7d1a6ef6a363431ea98ebd78bc4fdd3d7a134d9b542dc66e7d025c2\",\"dweb:/ipfs/QmRhTPLd2ZAyRHmJUFUcWKs9b3if49QY17LYZuRqWmghw8\"]},\"src/interfaces/delegator/IDelegatorHook.sol\":{\"keccak256\":\"0xc51aa8d7d1f6c8043ee819b7aeb86da0e993912e1442098df897e299f01f9f46\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://adddf5cb2ba282aeb576b26efb28640f865a1721cc9b6eee8b3ee0457a2c9780\",\"dweb:/ipfs/QmNYgAmnLRwWZbhTuQhZs9rx4zcme1df5mEepkrniorSoW\"]},\"src/interfaces/delegator/IFullRestakeDelegator.sol\":{\"keccak256\":\"0xa3c8cb2e45d4d8ce90e95263bea40c01dc400f05ad65bc29597d878606be5e7d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://782cf5e201aa4cca037ebafd3807a68ff1cc721d5b8416a35244db0d0607369e\",\"dweb:/ipfs/QmQkJks6x7CKndeTPa9LxgTNygD5uEi7obhADhpq1Lsr9A\"]},\"src/interfaces/delegator/INetworkRestakeDelegator.sol\":{\"keccak256\":\"0xe7030fe30389a147fd710e3436ec346b4842695fd3e65a81b95375c9f1d633fc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://739c7e66d301778054f5c90bee45ec9438f68afba8a03eaaac52064c73b115ad\",\"dweb:/ipfs/QmfZ2ytKcTykAc76nxhg8ikUXV8NdBpetqb8W4YWPcox1Z\"]},\"src/interfaces/delegator/IOperatorNetworkSpecificDelegator.sol\":{\"keccak256\":\"0x74b95e64d29769202d45dd277bb830f623ff3d41ce77b80ce3ee4e318a5c71ec\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e512b903aae5c1b8a028c6e3f4f6223b5cb5d704503cfa6bd37b5346868f5c20\",\"dweb:/ipfs/QmZim9YExsPWtyxyeui993HTKAEmrg8MUcSkZ77Gp2JcuZ\"]},\"src/interfaces/delegator/IOperatorSpecificDelegator.sol\":{\"keccak256\":\"0x72075cab585dc17240cc3e32bc99b92f0d5627ddd988fed680e3e1a52d5a01e4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7448bc90699409ae61d85216b5efc2143a37f0f73354be2aea993bc54afca441\",\"dweb:/ipfs/QmXE4gAxM8pHosZK8mcTcj17puBx484meDCcmrDePskGHZ\"]},\"src/interfaces/service/IOptInService.sol\":{\"keccak256\":\"0x76fb5460a6d87a5705433d4fbeff7253cd75b8bbd0c888b2088f16e86ace146a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://990322019b3d11465f7024bae77ccbf7e2fe5d6fa3c754584778f37d04fa1337\",\"dweb:/ipfs/QmaSNHzcqxTkUCG9a4nqVfLECHLdjdrwAnDi3yDC7tDL24\"]},\"src/interfaces/slasher/IBaseSlasher.sol\":{\"keccak256\":\"0x7c82528b445659c313ab77335c407b0b6efe5e79027187bb287f7bc74202b404\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0274c90aa5df1aa6bb470a6aab53992fb14fd7e5472c9430416505b29647d9cf\",\"dweb:/ipfs/QmckbmJLDetPemVzCnnGcKYWAZV2BRFXGDsjiaec8jkHxx\"]},\"src/interfaces/vault/IVault.sol\":{\"keccak256\":\"0xffee01d383cd4e1a5530c614bf4360c1ef070c288abec9da1eb531b51bc07235\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://04f0046cac285d8ec44ebbb1f79dc94fab4495767190cad8364fbc1fafaadfb9\",\"dweb:/ipfs/QmUawAunwzXfCyShWfhKeThAgKtqe51hmrxvrXvM772M2R\"]},\"src/interfaces/vault/IVaultStorage.sol\":{\"keccak256\":\"0x592626f13754194f83047135de19229c49390bd59e34659b1bb38be71d973a22\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://06a6a9dfddd05e580b32bebe2cff4f63ba26a653180676d58225dd30d9c89d3e\",\"dweb:/ipfs/QmdgzBeY6Sxo8mGtyBxtv1tM1c2kU6J6zjeRd7vuXm4DU6\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.25+commit.b61c2a91"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"baseDelegatorHints","type":"address"},{"internalType":"address","name":"vaultHints","type":"address"},{"internalType":"address","name":"optInServiceHints","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"AccessControlBadConfirmation"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bytes32","name":"neededRole","type":"bytes32"}],"type":"error","name":"AccessControlUnauthorizedAccount"},{"inputs":[],"type":"error","name":"AlreadySet"},{"inputs":[],"type":"error","name":"CheckpointUnorderedInsertion"},{"inputs":[],"type":"error","name":"DuplicateRoleHolder"},{"inputs":[],"type":"error","name":"ExceedsMaxNetworkLimit"},{"inputs":[],"type":"error","name":"ExternalCall"},{"inputs":[],"type":"error","name":"InsufficientHookGas"},{"inputs":[],"type":"error","name":"InvalidInitialization"},{"inputs":[],"type":"error","name":"MissingRoleHolders"},{"inputs":[],"type":"error","name":"NotInitialized"},{"inputs":[],"type":"error","name":"NotInitializing"},{"inputs":[],"type":"error","name":"NotNetwork"},{"inputs":[],"type":"error","name":"NotOperator"},{"inputs":[],"type":"error","name":"NotSlasher"},{"inputs":[],"type":"error","name":"NotVault"},{"inputs":[],"type":"error","name":"ReentrancyGuardReentrantCall"},{"inputs":[{"internalType":"uint8","name":"bits","type":"uint8"},{"internalType":"uint256","name":"value","type":"uint256"}],"type":"error","name":"SafeCastOverflowedUintDowncast"},{"inputs":[],"type":"error","name":"ZeroAddressRoleHolder"},{"inputs":[{"internalType":"uint64","name":"version","type":"uint64","indexed":false}],"type":"event","name":"Initialized","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32","indexed":true},{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false},{"internalType":"uint48","name":"captureTimestamp","type":"uint48","indexed":false}],"type":"event","name":"OnSlash","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"bytes32","name":"previousAdminRole","type":"bytes32","indexed":true},{"internalType":"bytes32","name":"newAdminRole","type":"bytes32","indexed":true}],"type":"event","name":"RoleAdminChanged","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"address","name":"sender","type":"address","indexed":true}],"type":"event","name":"RoleGranted","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"address","name":"sender","type":"address","indexed":true}],"type":"event","name":"RoleRevoked","anonymous":false},{"inputs":[{"internalType":"address","name":"hook","type":"address","indexed":true}],"type":"event","name":"SetHook","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"SetMaxNetworkLimit","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"SetNetworkLimit","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"BASE_DELEGATOR_HINTS","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"DEFAULT_ADMIN_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"FACTORY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"HOOK_GAS_LIMIT","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"HOOK_RESERVE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"HOOK_SET_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"NETWORK_LIMIT_SET_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"NETWORK_REGISTRY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"OPERATOR_NETWORK_OPT_IN_SERVICE","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"OPERATOR_REGISTRY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"OPERATOR_VAULT_OPT_IN_SERVICE","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"OPT_IN_SERVICE_HINTS","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"TYPE","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"VAULT_FACTORY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"VAULT_HINTS","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"VERSION","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getRoleAdmin","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"grantRole"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"hasRole","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"hook","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"}],"stateMutability":"view","type":"function","name":"maxNetworkLimit","outputs":[{"internalType":"uint256","name":"value","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"}],"stateMutability":"view","type":"function","name":"networkLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"uint48","name":"timestamp","type":"uint48"},{"internalType":"bytes","name":"hint","type":"bytes"}],"stateMutability":"view","type":"function","name":"networkLimitAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"delegator","type":"address"},{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"uint48","name":"timestamp","type":"uint48"}],"stateMutability":"view","type":"function","name":"networkLimitHint","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"uint48","name":"timestamp","type":"uint48"}],"stateMutability":"view","type":"function","name":"networkLimitHintInternal","outputs":[{"internalType":"bool","name":"exists","type":"bool"},{"internalType":"uint32","name":"hint","type":"uint32"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint48","name":"captureTimestamp","type":"uint48"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"onSlash"},{"inputs":[],"stateMutability":"view","type":"function","name":"operator","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"callerConfirmation","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"renounceRole"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"revokeRole"},{"inputs":[{"internalType":"address","name":"hook_","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setHook"},{"inputs":[{"internalType":"uint96","name":"identifier","type":"uint96"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setMaxNetworkLimit"},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setNetworkLimit"},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"stake","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint48","name":"timestamp","type":"uint48"},{"internalType":"bytes","name":"hints","type":"bytes"}],"stateMutability":"view","type":"function","name":"stakeAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"delegator","type":"address"},{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint48","name":"timestamp","type":"uint48"}],"stateMutability":"view","type":"function","name":"stakeHints","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"staticDelegateCall"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"vault","outputs":[{"internalType":"address","name":"","type":"address"}]}],"devdoc":{"kind":"dev","methods":{"VERSION()":{"details":"Must return 1 for this one.","returns":{"_0":"version of the delegator"}},"getRoleAdmin(bytes32)":{"details":"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}."},"grantRole(bytes32,address)":{"details":"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event."},"hasRole(bytes32,address)":{"details":"Returns `true` if `account` has been granted `role`."},"initialize(bytes)":{"params":{"data":"some data to use"}},"networkLimit(bytes32)":{"params":{"subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"},"returns":{"_0":"limit of the subnetwork"}},"networkLimitAt(bytes32,uint48,bytes)":{"params":{"hint":"hint for checkpoint index","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)","timestamp":"time point to get the subnetwork limit at"},"returns":{"_0":"limit of the subnetwork at the given timestamp"}},"onSlash(bytes32,address,uint256,uint48,bytes)":{"details":"Only the vault's slasher can call this function.","params":{"amount":"amount of the collateral slashed","captureTimestamp":"time point when the stake was captured","data":"some additional data","operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"}},"renounceRole(bytes32,address)":{"details":"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `callerConfirmation`. May emit a {RoleRevoked} event."},"revokeRole(bytes32,address)":{"details":"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event."},"setHook(address)":{"details":"Only a HOOK_SET_ROLE holder can call this function. The hook can have arbitrary logic under certain functions, however, it doesn't affect the stake guarantees.","params":{"hook":"address of the hook"}},"setMaxNetworkLimit(uint96,uint256)":{"details":"Only a network can call this function.","params":{"amount":"new maximum subnetwork's limit"}},"setNetworkLimit(bytes32,uint256)":{"details":"Only a NETWORK_LIMIT_SET_ROLE holder can call this function.","params":{"amount":"new limit of the subnetwork","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"}},"stake(bytes32,address)":{"details":"Warning: this function is not safe to use for stake capturing, as it can change by the end of the block.","params":{"operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"},"returns":{"_0":"slashable stake until the end of the next epoch"}},"stakeAt(bytes32,address,uint48,bytes)":{"details":"Warning: it is not safe to use timestamp >= current one for the stake capturing, as it can change later.","params":{"hints":"hints for the checkpoints' indexes","operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)","timestamp":"time point to capture the stake at"},"returns":{"_0":"slashable stake at the given timestamp until the end of the consequent epoch"}},"staticDelegateCall(address,bytes)":{"details":"It allows to use this contract's storage on-chain.","params":{"data":"data to make a delegatecall with","target":"address of the contract to make a delegatecall to"}},"supportsInterface(bytes4)":{"details":"See {IERC165-supportsInterface}."}},"version":1},"userdoc":{"kind":"user","methods":{"FACTORY()":{"notice":"Get the factory's address."},"HOOK_GAS_LIMIT()":{"notice":"Get a gas limit for the hook."},"HOOK_RESERVE()":{"notice":"Get a reserve gas between the gas limit check and the hook's execution."},"HOOK_SET_ROLE()":{"notice":"Get a hook setter's role."},"NETWORK_LIMIT_SET_ROLE()":{"notice":"Get a subnetwork limit setter's role."},"NETWORK_REGISTRY()":{"notice":"Get the network registry's address."},"OPERATOR_NETWORK_OPT_IN_SERVICE()":{"notice":"Get the operator-network opt-in service's address."},"OPERATOR_REGISTRY()":{"notice":"Get the operator registry's address."},"OPERATOR_VAULT_OPT_IN_SERVICE()":{"notice":"Get the operator-vault opt-in service's address."},"TYPE()":{"notice":"Get the entity's type."},"VAULT_FACTORY()":{"notice":"Get the vault factory's address."},"VERSION()":{"notice":"Get a version of the delegator (different versions mean different interfaces)."},"hook()":{"notice":"Get the hook's address."},"initialize(bytes)":{"notice":"Initialize this entity contract by using a given data."},"maxNetworkLimit(bytes32)":{"notice":"Get a particular subnetwork's maximum limit (meaning the subnetwork is not ready to get more as a stake)."},"networkLimit(bytes32)":{"notice":"Get a subnetwork's limit (how much stake the vault curator is ready to give to the subnetwork)."},"networkLimitAt(bytes32,uint48,bytes)":{"notice":"Get a subnetwork's limit at a given timestamp using a hint (how much stake the vault curator is ready to give to the subnetwork)."},"onSlash(bytes32,address,uint256,uint48,bytes)":{"notice":"Called when a slash happens."},"operator()":{"notice":"Get an operator managing the vault's funds."},"setHook(address)":{"notice":"Set a new hook."},"setMaxNetworkLimit(uint96,uint256)":{"notice":"Set a maximum limit for a subnetwork (how much stake the subnetwork is ready to get). identifier identifier of the subnetwork"},"setNetworkLimit(bytes32,uint256)":{"notice":"Set a subnetwork's limit (how much stake the vault curator is ready to give to the subnetwork)."},"stake(bytes32,address)":{"notice":"Get a stake that a given subnetwork will be able to slash for a certain operator until the end of the next epoch (if no cross-slashing and no slashings by the subnetwork)."},"stakeAt(bytes32,address,uint48,bytes)":{"notice":"Get a stake that a given subnetwork could be able to slash for a certain operator at a given timestamp until the end of the consequent epoch using hints (if no cross-slashing and no slashings by the subnetwork)."},"staticDelegateCall(address,bytes)":{"notice":"Make a delegatecall from this contract to a given target contract with a particular data (always reverts with a return data)."},"vault()":{"notice":"Get the vault's address."}},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/contracts/hints/DelegatorHints.sol":"OperatorSpecificDelegatorHints"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol":{"keccak256":"0x6662ec4e5cefca03eeadd073e9469df8d2944bb2ee8ec8f7622c2c46aab5f225","urls":["bzz-raw://4d8544c6f8daa4d1bc215c6a72fe0acdb748664a105b0e5efc19295667521d45","dweb:/ipfs/QmdGWqdnXT8S3RgCR6aV8XHZrsybieMQLLnug1NtpSjEXN"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol":{"keccak256":"0xc163fcf9bb10138631a9ba5564df1fa25db9adff73bd9ee868a8ae1858fe093a","urls":["bzz-raw://9706d43a0124053d9880f6e31a59f31bc0a6a3dc1acd66ce0a16e1111658c5f6","dweb:/ipfs/QmUFmfowzkRwGtDu36cXV9SPTBHJ3n7dG9xQiK5B28jTf2"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b","urls":["bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609","dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol":{"keccak256":"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397","urls":["bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9","dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardUpgradeable.sol":{"keccak256":"0xb44e086e941292cdc7f440de51478493894ef0b1aeccb0c4047445919f667f74","urls":["bzz-raw://942dad22fbdc1669f025540ba63aa3ccfad5f8458fc5d4525b31ebf272e7af45","dweb:/ipfs/Qmdo4X2M82aM3AMoW2kf2jhYkSCyC4T1pHNd6obdsDFnAB"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol":{"keccak256":"0xdaba3f7c42c55b2896353f32bd27d4d5f8bae741b3b05d4c53f67abc4dc47ce8","urls":["bzz-raw://1fa2e61141c602510bcd2cd936ed9561922ac8772a9b9c9a9db091a74e354a45","dweb:/ipfs/QmcHQDDoEBwJmwUbzoVkytvJsBx3KVHYFFnDkvRGWh9Wmh"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol":{"keccak256":"0xb6b36edd6a2999fd243ff226d6cbf84bd71af2432bbd0dfe19392996a1d9cb41","urls":["bzz-raw://1fd2f35495652e57e3f99bc6c510bc5f7dd398a176ea2e72d8ed730aebc6ca26","dweb:/ipfs/QmTQV6X4gkikTib49cho5iDX3JvSQbdsoEChoDwrk3CbbH"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC1271.sol":{"keccak256":"0x85a45f3f10014a0f8be41157a32b6a5f905753ea64a4b64e29fc12b7deeecf39","urls":["bzz-raw://c3c74009ce36136b36c77c23935b8e4a7b4f253be2da2be4fb4a916b1ce43743","dweb:/ipfs/QmcH36v3iN7SJJuF73AunLR2LtNxhVJ1wm63ph4dPZ4pcL"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC5267.sol":{"keccak256":"0x92aa1df62dc3d33f1656d63bede0923e0df0b706ad4137c8b10b0a8fe549fd92","urls":["bzz-raw://c5c0f29195ad64cbe556da8e257dac8f05f78c53f90323c0d2accf8e6922d33a","dweb:/ipfs/QmQ61TED8uaCZwcbh8KkgRSsCav7x7HbcGHwHts3U4DmUP"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70","urls":["bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c","dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol":{"keccak256":"0x6008dabfe393240d73d7dd7688033f72740d570aa422254d29a7dce8568f3aff","urls":["bzz-raw://f5196ec75139918c6c7bb4251b36395e668f1fa6d206beba7e7520e74913940d","dweb:/ipfs/QmSyqjksXxmm2mCG6qRd1yuwLykypkSVBbnBnGqJRcuJMi"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0x37bb49513c49c87c4642a891b13b63571bc87013dde806617aa1efb54605f386","urls":["bzz-raw://b3036b3a83b7c48f96641f2a9002b9f2dcb6a5958dd670894ada21ae8229b3d0","dweb:/ipfs/QmUNfSBdoVtjhETaUJCYcaC7pTMgbhht926tJ2uXJbiVd3"],"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/ShortStrings.sol":{"keccak256":"0x18a7171df639a934592915a520ecb97c5bbc9675a1105607aac8a94e72bf62c6","urls":["bzz-raw://7478e1f13da69a2867ccd883001d836b75620362e743f196376d63ed0c422a1c","dweb:/ipfs/QmWywcQ9TNfwtoqAxbn25d8C5VrV12PrPS9UjtGe6pL2BA"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol":{"keccak256":"0x32ba59b4b7299237c8ba56319110989d7978a039faf754793064e967e5894418","urls":["bzz-raw://1ae50c8b562427df610cc4540c9bf104acca7ef8e2dcae567ae7e52272281e9c","dweb:/ipfs/QmTHiadFCSJUPpRjNegc5SahmeU8bAoY8i9Aq6tVscbcKR"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0x55f102ea785d8399c0e58d1108e2d289506dde18abc6db1b7f68c1f9f9bc5792","urls":["bzz-raw://6e52e0a7765c943ef14e5bcf11e46e6139fa044be564881378349236bf2e3453","dweb:/ipfs/QmZEeeXoFPW47amyP35gfzomF9DixqqTEPwzBakv6cZw6i"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol":{"keccak256":"0xeed0a08b0b091f528356cbc7245891a4c748682d4f6a18055e8e6ca77d12a6cf","urls":["bzz-raw://ba80ba06c8e6be852847e4c5f4492cef801feb6558ae09ed705ff2e04ea8b13c","dweb:/ipfs/QmXRJDv3xHLVQCVXg1ZvR35QS9sij5y9NDWYzMfUfAdTHF"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/EIP712.sol":{"keccak256":"0x999f705a027ed6dc2d4e0df2cc4a509852c6bfd11de1c8161bf88832d0503fd0","urls":["bzz-raw://0798def67258d9a3cc20b2b4da7ebf351a5cefe0abfdd665d2d81f8e32f89b21","dweb:/ipfs/QmPEvJosnPfzHNjKvCv2D3891mA2Ww8eUwkqrxBjuYdHCt"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol":{"keccak256":"0xba333517a3add42cd35fe877656fc3dfcc9de53baa4f3aabbd6d12a92e4ea435","urls":["bzz-raw://2ceacff44c0fdc81e48e0e0b1db87a2076d3c1fb497341de077bf1da9f6b406c","dweb:/ipfs/QmRUo1muMRAewxrKQ7TkXUtknyRoR57AyEkoPpiuZQ8FzX"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/SignatureChecker.sol":{"keccak256":"0x6b11eb41a228cca35d4b662b4df69fcd75192851365102690f57b2ac01e83fe6","urls":["bzz-raw://ab006a2983ed350d2af21ddcdd835dcae3b8340086cc4d088460da5abd041f69","dweb:/ipfs/QmbEacDhkJZiGrgzLjB4pNtE8Z1uudjDw1DvcDUTVQFsLG"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b","urls":["bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df","dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d","urls":["bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875","dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol":{"keccak256":"0xe19a4d5f31d2861e7344e8e535e2feafb913d806d3e2b5fe7782741a2a7094fe","urls":["bzz-raw://4aed79c0fa6f0546ed02f2f683e8f77f0fd2ed7eb34d8bbf3d373c9a6d95b13c","dweb:/ipfs/QmWqVz6UAVqmnWU5pqYPt1o6iDEZyPaBraAA3rKfTTSfYj"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0x5f7e4076e175393767754387c962926577f1660dd9b810187b9002407656be72","urls":["bzz-raw://7d533a1c97cd43a57cd9c465f7ee8dd0e39ae93a8fb8ff8e5303a356b081cdcc","dweb:/ipfs/QmVBEei6aTnvYNZp2CHYVNKyZS4q1KkjANfY39WVXZXVoT"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/Checkpoints.sol":{"keccak256":"0xbdc5e074d7dd6678f67e92b1a51a20226801a407b0e1af3da367c5d1ff4519ad","urls":["bzz-raw://a36cca6b22fff3db16fc789ff6c60eea71d4b156065d4d0c83a0bc5e91a77a8b","dweb:/ipfs/QmYN3exd5AemxjBrN8XMB1p5LbbE16uC3sjbYjwi8AjcGR"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/types/Time.sol":{"keccak256":"0xc7755af115020049e4140f224f9ee88d7e1799ffb0646f37bf0df24bf6213f58","urls":["bzz-raw://7f09bf94d5274334ec021f61a04659db303f31e60460e14b709c9bf187740111","dweb:/ipfs/QmNvgomZYUwFAt4cZbPWAiTeSZQreGehY9BK5xyVJsUttb"],"license":"MIT"},"src/contracts/common/Entity.sol":{"keccak256":"0x3d61a932995b8443381f3950542d388223a2c26dd5d29a3274dea3baa7388bd7","urls":["bzz-raw://7cdf5f03ca72fd263fd32ff59c8d88ddca911ae83896a287d10772c1bbe9b138","dweb:/ipfs/QmbP84r5BWT1Rn9AYTntWSf3xUMTTCohTZJFhbBhDXFoHa"],"license":"BUSL-1.1"},"src/contracts/common/MigratableEntity.sol":{"keccak256":"0x2d736f4dacd5d7e7697503bc426c78b8250fe1694ca157965ec178da6807de58","urls":["bzz-raw://f1237acf96b4b9f9b69156e068eddd726a6e15bd8e87a18dc999cd4ba4da069c","dweb:/ipfs/QmS6M8fiFFSeuJ4ZKKq1z8W7w4ybeHQSy5TLASGoc1LVic"],"license":"BUSL-1.1"},"src/contracts/common/StaticDelegateCallable.sol":{"keccak256":"0x350029aa8955eacaffffaeb58babc5c98e80ebc5c5db388ed17ee6465f4a9d90","urls":["bzz-raw://eb392a8ee9050e0af606897df63e3404e3829e8b688b580663892f9664195764","dweb:/ipfs/QmaXC8jqV8UrrAFkzXTEv2fJF56sy33HhLxAzaRZmUxuXD"],"license":"BUSL-1.1"},"src/contracts/delegator/BaseDelegator.sol":{"keccak256":"0x7c54d491fdd4415b764a9c8defa068e56d4c0c8c9419be0053a1d377669290e8","urls":["bzz-raw://9238bfbad0f6eeb0dc7727724de14380f1980b395902269703d5e2ef07e52e10","dweb:/ipfs/QmPJn1V4HNXcEghYvogGuSTF24dSQUPosR5qtsXcmNqRm3"],"license":"BUSL-1.1"},"src/contracts/delegator/FullRestakeDelegator.sol":{"keccak256":"0x0a81c4f8e72914563a9cb771e93acf889c71ea36b7bec040e4eb562b199d5af1","urls":["bzz-raw://6fc66b6ba02da77046a0bbbd1dd407a62c08f52e04486c9cbd2cb1cca3da555f","dweb:/ipfs/QmZQivK1ZnMxfRQQ5aLpV9co5u55wQVNev5Rg1hzAqxhkE"],"license":"BUSL-1.1"},"src/contracts/delegator/NetworkRestakeDelegator.sol":{"keccak256":"0xd3a8e6522f9c6fdcc2da837c9023afd6bdff2bce45a35590320c475519e3636d","urls":["bzz-raw://58b17a87f6554f08376f9ea7fedf486a4aa75801bf0ad8b23ff5a46959b6b7a3","dweb:/ipfs/QmSTmNh67tYt8CmjVZb57r8N3qX5yeYdMApKPJm3qvQgQw"],"license":"BUSL-1.1"},"src/contracts/delegator/OperatorNetworkSpecificDelegator.sol":{"keccak256":"0x031a10722b9ec49048f0952710401131290adb87e71caf294e864e7ac3b98a16","urls":["bzz-raw://72428febc875134b2f29205e6f294634a1c22a7d5c78d6a9cb2f8196f107c9b5","dweb:/ipfs/QmTPwXR6h5oytckmkLrHdKeEMdphJxceDhYUR4zvQeWAwY"],"license":"BUSL-1.1"},"src/contracts/delegator/OperatorSpecificDelegator.sol":{"keccak256":"0x630ce62fa30b9f3349ab7a8cf8dbf041319febc6dd757be2f94d3d25944ed328","urls":["bzz-raw://c2ac59d47ce57d2a6819ae9833e1a618a371eccff93eb5ab367b201b01f42bfa","dweb:/ipfs/QmdBpGMBivpNPv2WbH8vnCUy5xkVeaxQvGgqi33vKCz1kA"],"license":"BUSL-1.1"},"src/contracts/hints/DelegatorHints.sol":{"keccak256":"0x44aa0c396311a54afbc7c73e8dadeed41e3165a4fd13f712b27d63d50fc3376d","urls":["bzz-raw://2f255214f3531fc707d88be0d56a7a0aed4180439316d099d760d9118aa83093","dweb:/ipfs/QmZD1w5p1ukJSXumUAjvxwGmkPhn7vsr21Y2atLGEZR2oi"],"license":"BUSL-1.1"},"src/contracts/hints/Hints.sol":{"keccak256":"0x8b565df1ae35993c097a9e642002782a8f451f6fd01809cad6bcd345bdf1b99c","urls":["bzz-raw://99a19adb01e350a92f534095b3078229df1f2f83077992d75d58d8684be45971","dweb:/ipfs/QmbmwcuswVbzvwHQFTtrJG86oV98GnfxqYTb8cV8u1acox"],"license":"BUSL-1.1"},"src/contracts/hints/OptInServiceHints.sol":{"keccak256":"0x95d9407900d27b9f4a1233b772aeed809c07b2dc5b31cfc9fa77ca26514c49e5","urls":["bzz-raw://a13a8877e312d7e6b8b85bde3668c5d84ff5ecc83f762cd573f2b7104c64eb42","dweb:/ipfs/QmYV2J55acuGzCNnS3juABuUHY5U1xc8g8o9jwEyFFdeG5"],"license":"BUSL-1.1"},"src/contracts/hints/VaultHints.sol":{"keccak256":"0xccb505b7159b769cc114d67b87c2de6b106557f667fc8f3780114baad5c3c442","urls":["bzz-raw://6d0c80a908fc16e96a8b5605a0bd53f9e89ad0ef0a738fbbae80ba4d3160749b","dweb:/ipfs/QmXo5UtWoR8YmunqcbBU8rQMm1nvmvjNPoXcVrDhh4pEwR"],"license":"BUSL-1.1"},"src/contracts/libraries/Checkpoints.sol":{"keccak256":"0xba90097c8bfe0a975499428b5f8ac5569483c7d92ccc28c12d70de416aae040c","urls":["bzz-raw://12f5d93ca94cd06d3147db68993165a58e17903ed53682560de61f3085ad4609","dweb:/ipfs/QmePiuAqvXprMLmFZkGZeGjvGPAvsEDHfCDv7BoQhXu9xE"],"license":"MIT"},"src/contracts/libraries/ERC4626Math.sol":{"keccak256":"0x8441160513c1cbeb1c3b9ee077bcc7e7ce20006b52a77c8dd39ff0ef89699939","urls":["bzz-raw://943f8cc3e26ddf649f465f40c909819f5c864717c4baa339e9e403b9374a4653","dweb:/ipfs/QmXPxi1sUDsrGprZdUgCzoPEosaZMv9ZhygWQ1vAi1phAB"],"license":"MIT"},"src/contracts/libraries/Subnetwork.sol":{"keccak256":"0xf5ef5506fd66082b3c2e7f3df37529f5a8efad32ac62e7c8914bd63219190bfe","urls":["bzz-raw://ba031a54ee0d0e9a270c2b9e18437f5668cfeb659cfd5fe0677459d7fcac2a56","dweb:/ipfs/QmReP3H7qQ78tAfgLnJKsNEQNCQfF1X1Get38Ffd4kzq32"],"license":"MIT"},"src/contracts/service/OptInService.sol":{"keccak256":"0x4e0932077f2686b7990e10d59deb2535334c0d09e52ef6e57c6ab09eca21c4b1","urls":["bzz-raw://7c00d311032ed4a1743aca7475f3c86ce15cdfc2218108efc3731c03d34a5278","dweb:/ipfs/QmUGGfVwVhaHr5kS4177yKKYiLYzi5qZpkEmvYxBZqazxf"],"license":"BUSL-1.1"},"src/contracts/vault/Vault.sol":{"keccak256":"0x2ceff6ed3298c4cad144c99fcc79b51cb9397d6ebef00285b915848b476f8c2e","urls":["bzz-raw://11f2fb3581854f3ab6e82e8d4935d9eb510c903a13c3f022346c2956a58f5307","dweb:/ipfs/QmdUnoXoyYoG9SGWyQZCFyLDRUUX3eXyXetkRvw6jxqqBz"],"license":"BUSL-1.1"},"src/contracts/vault/VaultStorage.sol":{"keccak256":"0x57db25b127d77ea3472de53e3a4af3354399655b9268638b99ca5925fa364a56","urls":["bzz-raw://aa763d9a6ec508ae3abfb8228b72b9fd9525279e5135d4962e79ff059feb1173","dweb:/ipfs/QmcbDR6E9wyEpu6V2FkEC4hnWy47zXA9LSKJde6zSGd33Q"],"license":"BUSL-1.1"},"src/interfaces/common/IEntity.sol":{"keccak256":"0x8ef4b63d6da63489778ccd5f8d13ebdd527dd4b62730b2c616df5af7474d2d21","urls":["bzz-raw://5a8d69576a9219d85c50816a18ad53a4d53cfcb27ed38b8cccc808dc2734b71b","dweb:/ipfs/QmYVN3P4Q4REvBWJ97TbAcaxm3uyB2anV6NSGa6ZtSwcEv"],"license":"MIT"},"src/interfaces/common/IMigratableEntity.sol":{"keccak256":"0x8f5f2809f3afbe8ebfbb365dd7b57b4dd3b6f9943a6187eaf648d45895b8e3c4","urls":["bzz-raw://0ffe640537d539e7a4fde70d30d3e4c57f4ba9c2c25c450cea713aae38e8fd5c","dweb:/ipfs/QmSUTGzvdcn1R1KB7tLThMRtESsfPbeXDhhhKWGtntzBds"],"license":"MIT"},"src/interfaces/common/IRegistry.sol":{"keccak256":"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb","urls":["bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014","dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK"],"license":"MIT"},"src/interfaces/common/IStaticDelegateCallable.sol":{"keccak256":"0xa335d4e81b9071b7de66ef92b43ff20671d86516eb1be46fef29a3483cd3f5d5","urls":["bzz-raw://d464b9db863c14c05547d2b23352f2e9b7b784799cf09f6bbc4906a2a74e3516","dweb:/ipfs/QmUVWzFvJz7eEbDQKiFTTzwi7TEbjcs3VmwdM4kuptAKvi"],"license":"MIT"},"src/interfaces/delegator/IBaseDelegator.sol":{"keccak256":"0x96bb312f032e17accce3f8f80936d99468029d6b37c9ca74acdb4b026a0148ee","urls":["bzz-raw://2a66dcb5b7d1a6ef6a363431ea98ebd78bc4fdd3d7a134d9b542dc66e7d025c2","dweb:/ipfs/QmRhTPLd2ZAyRHmJUFUcWKs9b3if49QY17LYZuRqWmghw8"],"license":"MIT"},"src/interfaces/delegator/IDelegatorHook.sol":{"keccak256":"0xc51aa8d7d1f6c8043ee819b7aeb86da0e993912e1442098df897e299f01f9f46","urls":["bzz-raw://adddf5cb2ba282aeb576b26efb28640f865a1721cc9b6eee8b3ee0457a2c9780","dweb:/ipfs/QmNYgAmnLRwWZbhTuQhZs9rx4zcme1df5mEepkrniorSoW"],"license":"MIT"},"src/interfaces/delegator/IFullRestakeDelegator.sol":{"keccak256":"0xa3c8cb2e45d4d8ce90e95263bea40c01dc400f05ad65bc29597d878606be5e7d","urls":["bzz-raw://782cf5e201aa4cca037ebafd3807a68ff1cc721d5b8416a35244db0d0607369e","dweb:/ipfs/QmQkJks6x7CKndeTPa9LxgTNygD5uEi7obhADhpq1Lsr9A"],"license":"MIT"},"src/interfaces/delegator/INetworkRestakeDelegator.sol":{"keccak256":"0xe7030fe30389a147fd710e3436ec346b4842695fd3e65a81b95375c9f1d633fc","urls":["bzz-raw://739c7e66d301778054f5c90bee45ec9438f68afba8a03eaaac52064c73b115ad","dweb:/ipfs/QmfZ2ytKcTykAc76nxhg8ikUXV8NdBpetqb8W4YWPcox1Z"],"license":"MIT"},"src/interfaces/delegator/IOperatorNetworkSpecificDelegator.sol":{"keccak256":"0x74b95e64d29769202d45dd277bb830f623ff3d41ce77b80ce3ee4e318a5c71ec","urls":["bzz-raw://e512b903aae5c1b8a028c6e3f4f6223b5cb5d704503cfa6bd37b5346868f5c20","dweb:/ipfs/QmZim9YExsPWtyxyeui993HTKAEmrg8MUcSkZ77Gp2JcuZ"],"license":"MIT"},"src/interfaces/delegator/IOperatorSpecificDelegator.sol":{"keccak256":"0x72075cab585dc17240cc3e32bc99b92f0d5627ddd988fed680e3e1a52d5a01e4","urls":["bzz-raw://7448bc90699409ae61d85216b5efc2143a37f0f73354be2aea993bc54afca441","dweb:/ipfs/QmXE4gAxM8pHosZK8mcTcj17puBx484meDCcmrDePskGHZ"],"license":"MIT"},"src/interfaces/service/IOptInService.sol":{"keccak256":"0x76fb5460a6d87a5705433d4fbeff7253cd75b8bbd0c888b2088f16e86ace146a","urls":["bzz-raw://990322019b3d11465f7024bae77ccbf7e2fe5d6fa3c754584778f37d04fa1337","dweb:/ipfs/QmaSNHzcqxTkUCG9a4nqVfLECHLdjdrwAnDi3yDC7tDL24"],"license":"MIT"},"src/interfaces/slasher/IBaseSlasher.sol":{"keccak256":"0x7c82528b445659c313ab77335c407b0b6efe5e79027187bb287f7bc74202b404","urls":["bzz-raw://0274c90aa5df1aa6bb470a6aab53992fb14fd7e5472c9430416505b29647d9cf","dweb:/ipfs/QmckbmJLDetPemVzCnnGcKYWAZV2BRFXGDsjiaec8jkHxx"],"license":"MIT"},"src/interfaces/vault/IVault.sol":{"keccak256":"0xffee01d383cd4e1a5530c614bf4360c1ef070c288abec9da1eb531b51bc07235","urls":["bzz-raw://04f0046cac285d8ec44ebbb1f79dc94fab4495767190cad8364fbc1fafaadfb9","dweb:/ipfs/QmUawAunwzXfCyShWfhKeThAgKtqe51hmrxvrXvM772M2R"],"license":"MIT"},"src/interfaces/vault/IVaultStorage.sol":{"keccak256":"0x592626f13754194f83047135de19229c49390bd59e34659b1bb38be71d973a22","urls":["bzz-raw://06a6a9dfddd05e580b32bebe2cff4f63ba26a653180676d58225dd30d9c89d3e","dweb:/ipfs/QmdgzBeY6Sxo8mGtyBxtv1tM1c2kU6J6zjeRd7vuXm4DU6"],"license":"MIT"}},"version":1},"id":86} \ No newline at end of file +{"abi":[{"type":"constructor","inputs":[{"name":"baseDelegatorHints","type":"address","internalType":"address"},{"name":"vaultHints","type":"address","internalType":"address"},{"name":"optInServiceHints","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"BASE_DELEGATOR_HINTS","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"DEFAULT_ADMIN_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"FACTORY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"HOOK_GAS_LIMIT","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"HOOK_RESERVE","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"HOOK_SET_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"NETWORK_LIMIT_SET_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"NETWORK_REGISTRY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"OPERATOR_NETWORK_OPT_IN_SERVICE","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"OPERATOR_REGISTRY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"OPERATOR_VAULT_OPT_IN_SERVICE","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"OPT_IN_SERVICE_HINTS","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"TYPE","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"VAULT_FACTORY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"VAULT_HINTS","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"VERSION","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"pure"},{"type":"function","name":"getRoleAdmin","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"grantRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"hasRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"hook","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"initialize","inputs":[{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"maxNetworkLimit","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"value","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"networkLimit","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"networkLimitAt","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"timestamp","type":"uint48","internalType":"uint48"},{"name":"hint","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"networkLimitHint","inputs":[{"name":"delegator","type":"address","internalType":"address"},{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"timestamp","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"networkLimitHintInternal","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"timestamp","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"exists","type":"bool","internalType":"bool"},{"name":"hint","type":"uint32","internalType":"uint32"}],"stateMutability":"view"},{"type":"function","name":"onSlash","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"captureTimestamp","type":"uint48","internalType":"uint48"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"operator","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"renounceRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"callerConfirmation","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"revokeRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setHook","inputs":[{"name":"hook_","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setMaxNetworkLimit","inputs":[{"name":"identifier","type":"uint96","internalType":"uint96"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setNetworkLimit","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"stake","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"stakeAt","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"timestamp","type":"uint48","internalType":"uint48"},{"name":"hints","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"stakeHints","inputs":[{"name":"delegator","type":"address","internalType":"address"},{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"timestamp","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"staticDelegateCall","inputs":[{"name":"target","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"vault","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"OnSlash","inputs":[{"name":"subnetwork","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"captureTimestamp","type":"uint48","indexed":false,"internalType":"uint48"}],"anonymous":false},{"type":"event","name":"RoleAdminChanged","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"previousAdminRole","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"newAdminRole","type":"bytes32","indexed":true,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"RoleGranted","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"sender","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"RoleRevoked","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"sender","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"SetHook","inputs":[{"name":"hook","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"SetMaxNetworkLimit","inputs":[{"name":"subnetwork","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"SetNetworkLimit","inputs":[{"name":"subnetwork","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"error","name":"AccessControlBadConfirmation","inputs":[]},{"type":"error","name":"AccessControlUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"neededRole","type":"bytes32","internalType":"bytes32"}]},{"type":"error","name":"AlreadySet","inputs":[]},{"type":"error","name":"CheckpointUnorderedInsertion","inputs":[]},{"type":"error","name":"DuplicateRoleHolder","inputs":[]},{"type":"error","name":"ExceedsMaxNetworkLimit","inputs":[]},{"type":"error","name":"ExternalCall","inputs":[]},{"type":"error","name":"InsufficientHookGas","inputs":[]},{"type":"error","name":"InvalidInitialization","inputs":[]},{"type":"error","name":"MissingRoleHolders","inputs":[]},{"type":"error","name":"NotInitialized","inputs":[]},{"type":"error","name":"NotInitializing","inputs":[]},{"type":"error","name":"NotNetwork","inputs":[]},{"type":"error","name":"NotOperator","inputs":[]},{"type":"error","name":"NotSlasher","inputs":[]},{"type":"error","name":"NotVault","inputs":[]},{"type":"error","name":"ReentrancyGuardReentrantCall","inputs":[]},{"type":"error","name":"SafeCastOverflowedUintDowncast","inputs":[{"name":"bits","type":"uint8","internalType":"uint8"},{"name":"value","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ZeroAddressRoleHolder","inputs":[]}],"bytecode":{"object":"0x6101e0346101d557601f61322e38819003918201601f19168301916001600160401b0391828411858510176101d95781606092869260409687528339810103126101d55761004c836101ed565b926100648361005d602084016101ed565b92016101ed565b91306080527ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a009081549060ff82871c166101c4578080831603610180575b5050505f60a0525f60c0525f60e052610100935f8552610120935f85526101405f8152610160915f83526101809384526101a09485526101c0958652519561302c978861020289396080518861048c015260a051886107a4015260c05188610f6c015260e0518881816105950152610fa50152518781816103bf0152612299015251868181610403015281816119720152611aa1015251858181610513015281816118d90152611b1f015251848181610dce0152612b10015251838181610d29015261149a015251828181610b0e015261153b01525181610e700152f35b6001600160401b0319909116811790915583519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a15f80806100a2565b855163f92ee8a960e01b8152600490fd5b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b51906001600160a01b03821682036101d55756fe60806040526004361015610011575f80fd5b5f3560e01c806301ffc9a714610284578063021453481461027f578063103f29071461027a578063128e5d8214610275578063197aa7ea146102705780631a80e5001461026b57806323f752d514610266578063248a9ca31461026157806325dc97081461025c5780632dd31000146102575780632f2ff15d1461025257806336568abe1461024d5780633dfd3873146102485780633eb22c0f14610243578063439fab911461023e57806345e78fcb14610239578063557cab4414610234578063570ca7351461022f5780635d32a1c91461022a5780636679191e1461022557806379d89614146102205780637d24bb271461021b5780637f5a7c7b1461021657806383ce03221461021157806391d148541461020c5780639b656b22146102075780639f86fd8514610202578063a217fddf146101fd578063bb24fe8a146101f8578063c0cd7c3e146101f3578063d15b740e146101ee578063d547741f146101e9578063da749d2b146101e4578063e02f6937146101df578063e49561ee146101da578063fbfa77cf146101d5578063fd4d447c146101d0578063ff54740f146101cb5763ffa1ad74146101c6575f80fd5b61132d565b611310565b6112e6565b6112bf565b6110d4565b61107f565b61104a565b610ffe565b610fd4565b610f90565b610f4d565b610f33565b610e9f565b610e5b565b610dfd565b610db9565b610d91565b610d58565b610d14565b610cda565b610c89565b610b59565b610b3d565b610af9565b6109c1565b610963565b61086a565b61081f565b6107d3565b61078f565b610736565b6106c8565b610542565b6104fe565b610471565b6103ee565b6103aa565b6102de565b346102da5760203660031901126102da5760043563ffffffff60e01b81168091036102da57602090637965db0b60e01b81149081156102c9575b506040519015158152f35b6301ffc9a760e01b1490505f6102be565b5f80fd5b346102da576040806003193601126102da576004359060243590610300611b94565b825f526002602052805f2054821161039a57825f52600360205281610326825f206121eb565b1461038a5781610385916103757e899d104fc3d8820bd96540612bcc5c448c8837b13b9f7faa43ad0728f0c14f94610366875f52600360205260405f2090565b61036f42612729565b90611c93565b5050519081529081906020820190565b0390a2005b5163a741a04560e01b8152600490fd5b51631eefc06360e31b8152600490fd5b346102da575f3660031901126102da576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346102da575f3660031901126102da576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b6024359065ffffffffffff821682036102da57565b6064359065ffffffffffff821682036102da57565b6044359065ffffffffffff821682036102da57565b346102da5760403660031901126102da5761048a610432565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633036104ec5763ffffffff6104d76040926004355f526003602052835f20611d79565b91505083929192519215158352166020820152f35b604051637ca475e560e11b8152600490fd5b346102da575f3660031901126102da576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346102da5760403660031901126102da576004356001600160601b03811681036102da5760243590610572611e88565b6040516302910f8b60e31b81523360048201526020816024816001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165afa9081156106c3575f91610694575b5015610682576001600160601b03166bffffffffffffffffffffffff193360601b161790806105fc835f52600260205260405f2090565b541461067057610655817fc67e7929681aa1bccd63f52b3799bf5805f3009f197db6fdf584b14f7fbf608c9261063a855f52600260205260405f2090565b556106458185611eb7565b6040519081529081906020820190565b0390a261066e60015f80516020612fb783398151915255565b005b60405163a741a04560e01b8152600490fd5b6040516323d53b9760e21b8152600490fd5b6106b6915060203d6020116106bc575b6106ae8183610beb565b810190611355565b5f6105c5565b503d6106a4565b61136c565b346102da5760203660031901126102da576004355f525f80516020612f978339815191526020526020600160405f200154604051908152f35b6001600160a01b038116036102da57565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b346102da5760803660031901126102da5761078b61077760043561075981610701565b60443561076581610701565b61076d610447565b9160243590611451565b604051918291602083526020830190610712565b0390f35b346102da575f3660031901126102da576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346102da5760403660031901126102da5761066e6024356004356107f682610701565b805f525f80516020612f9783398151915260205261081a600160405f200154611bf0565b612123565b346102da5760403660031901126102da5760243561083c81610701565b336001600160a01b038216036108585761066e90600435612159565b60405163334bd91960e11b8152600490fd5b346102da5760203660031901126102da5760043561088781610701565b61088f611e88565b335f9081527f9ebbcbe0d2961d3fbe56ca6f679bc753bd848d3e6bb3eaf9041c51b286881d2c60205260409020547fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c9060ff161561094557506001546001600160a01b039182169181168214610670576001600160a01b03191681176001557f5bbb1d3ebb6a3ad2a0f17ff35e579a83af60604d1d3c2a4c83c62adecadf666d5f80a260015f80516020612fb783398151915255005b6044906040519063e2517d3f60e01b82523360048301526024820152fd5b346102da5760203660031901126102da576004355f526003602052602061098c60405f206121eb565b604051908152f35b9181601f840112156102da578235916001600160401b0383116102da57602083818601950101116102da57565b346102da5760203660031901126102da576001600160401b036004358181116102da576109f2903690600401610994565b5f80516020612fd7833981519152549260ff8460401c1615931680159081610af1575b6001149081610ae7575b159081610ade575b50610acc575f80516020612fd7833981519152805467ffffffffffffffff19166001179055610a5a9183610aa857612264565b610a6057005b5f80516020612fd7833981519152805460ff60401b19169055604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a1005b5f80516020612fd7833981519152805460ff60401b1916600160401b179055612264565b60405163f92ee8a960e01b8152600490fd5b9050155f610a27565b303b159150610a1f565b849150610a15565b346102da575f3660031901126102da576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346102da575f3660031901126102da576020604051614e208152f35b346102da575f3660031901126102da576004546040516001600160a01b039091168152602090f35b634e487b7160e01b5f52604160045260245ffd5b604081019081106001600160401b03821117610bb057604052565b610b81565b606081019081106001600160401b03821117610bb057604052565b608081019081106001600160401b03821117610bb057604052565b90601f801991011681019081106001600160401b03821117610bb057604052565b60405190610c1982610bb5565b565b60405190610c1982610b95565b6001600160401b038111610bb057601f01601f191660200190565b81601f820112156102da57803590610c5a82610c28565b92610c686040519485610beb565b828452602083830101116102da57815f926020809301838601378301015290565b346102da5760603660031901126102da57610ca2610432565b6044356001600160401b0381116102da57602091610cc761098c923690600401610c43565b906004355f526003845260405f206123cb565b346102da575f3660031901126102da5760206040517fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c8152f35b346102da575f3660031901126102da576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346102da575f3660031901126102da5760206040517e8b9b1e5fa9cf3b14f87f435649268146305ddf689f082e5961a335b07a9abf8152f35b346102da575f3660031901126102da576001546040516001600160a01b039091168152602090f35b346102da575f3660031901126102da576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346102da5760403660031901126102da57602060ff610e4f602435610e2181610701565b6004355f525f80516020612f97833981519152845260405f209060018060a01b03165f5260205260405f2090565b54166040519015158152f35b346102da575f3660031901126102da576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346102da5760403660031901126102da57600435610ebc81610701565b6024356001600160401b0381116102da575f91610ede83923690600401610994565b90816040519283928337810184815203915af4610f2b610efc61164d565b91610f1d604051938492151560208401526040808401526060830190610712565b03601f198101835282610beb565b805190602001fd5b346102da575f3660031901126102da5760206040515f8152f35b346102da575f3660031901126102da5760206040516001600160401b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b346102da575f3660031901126102da576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346102da5760203660031901126102da576004355f526002602052602060405f2054604051908152f35b346102da5760403660031901126102da5761066e60243560043561102182610701565b805f525f80516020612f97833981519152602052611045600160405f200154611bf0565b612159565b346102da5760603660031901126102da5761078b61077760043561106d81610701565b61107561045c565b90602435906116ae565b346102da5760803660031901126102da5760243561109c81610701565b6110a461045c565b90606435906001600160401b0382116102da576020926110cb61098c933690600401610c43565b91600435611863565b346102da5760a03660031901126102da576024356004356110f482610701565b60443591611100610447565b90608435906001600160401b0382116102da5761112260049236908401610c43565b61112a611e88565b5f5460209061114f90611143906001600160a01b031681565b6001600160a01b031690565b60405163b134427160e01b815294859182905afa9283156106c3575f9361128e575b506001600160a01b03928316330361127c576001546001600160a01b03168381166111f1575b50506040805195865265ffffffffffff909316602086015216927f741a5de99085c0d660f3e4192217b0ffb0ea4e35a0480de48e857a4bc3ee36ed91819081015b0390a361066e60015f80516020612fb783398151915255565b9093604051946112288661121a602082019363724ab0f760e11b8552858c898d602487016119ed565b03601f198101885287610beb565b62042e305a1061126a575f6111d8938192827f741a5de99085c0d660f3e4192217b0ffb0ea4e35a0480de48e857a4bc3ee36ed9951926203d090f15093611197565b604051638072475160e01b8152600490fd5b60405163dabc4ad960e01b8152600490fd5b6112b191935060203d6020116112b8575b6112a98183610beb565b8101906113ed565b915f611171565b503d61129f565b346102da575f3660031901126102da575f546040516001600160a01b039091168152602090f35b346102da5760403660031901126102da57602061098c60243561130881610701565b600435611a6a565b346102da575f3660031901126102da5760206040516203d0908152f35b346102da575f3660031901126102da57602060405160018152f35b519081151582036102da57565b908160209103126102da5761136990611348565b90565b6040513d5f823e3d90fd5b81601f820112156102da5780519061138e82610c28565b9261139c6040519485610beb565b828452602083830101116102da57815f9260208093018386015e8301015290565b906020828203126102da5781516001600160401b0381116102da576113699201611377565b5190610c1982610701565b908160209103126102da575161136981610701565b9061136991602081526114218251606060208401526080830190610712565b9060606040611441602086015194601f1995868683030184870152610712565b9401519282850301910152610712565b604051630df8851f60e11b81526001600160a01b03828116600483015260248201849052938416604482015265ffffffffffff8516606482015260609594909391925f856084817f000000000000000000000000000000000000000000000000000000000000000087165afa9485156106c3575f9561161b575b5060405163fbfa77cf60e01b81526020816004818888165afa9081156106c357611537945f92859284916115fc575b5060405163192c0ff760e21b81526001600160a01b03909116600482015265ffffffffffff90921660248301529094859190829081906044820190565b03917f0000000000000000000000000000000000000000000000000000000000000000165afa9283156106c3575f936115d6575b5061157692936116ae565b908251158015906115cc575b80156115c2575b61159257505050565b610f1d9394509061136992916115a6610c0c565b9283526020830152604082015260405192839160208301611402565b5081511515611589565b5080511515611582565b61157693506115f6903d805f833e6115ee8183610beb565b8101906113bd565b9261156b565b611615915060203d6020116112b8576112a98183610beb565b5f6114fa565b6116309195503d805f833e6115ee8183610beb565b935f6114cb565b9061136992915f52600360205260405f206123cb565b3d15611677573d9061165e82610c28565b9161166c6040519384610beb565b82523d5f602084013e565b606090565b519063ffffffff821682036102da57565b91908260409103126102da5761136960206116a784611348565b930161167c565b92915f8060609565ffffffffffff60405194602096630cbd53f560e11b888801526024870152166044850152604484526116e784610bd0565b604051938461171487820192639f86fd8560e01b8452306024840152604060448401526064830190610712565b0394611728601f1996878101835282610beb565b51915afa5061174661173861164d565b8380825183010191016124a3565b90156117995780838061175e9351830101910161168d565b929061176957505050565b6113699293945061178d604051948592830191909163ffffffff6020820193169052565b03908101835282610beb565b809150519182156102da5701fd5b604051906117b482610b95565b60606020838281520152565b906020828203126102da5781516001600160401b03928382116102da5701906040828203126102da57604051926117f684610b95565b82518181116102da578261180b918501611377565b845260208301519081116102da576118239201611377565b602082015290565b6001600160a01b0391821681529116602082015265ffffffffffff909116604082015260806060820181905261136992910190610712565b92611873909291928284866125ac565b92909361187e6117a7565b938051806119d1575b5050841593841561193b575b84156118aa575b505050506118a55790565b505f90565b6020809495506118d5910151604051958694859463530e1d4360e01b865260601c906004860161182b565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa9081156106c3575f9161191c575b50155f80808061189a565b611935915060203d6020116106bc576106ae8183610beb565b5f611911565b5f549094506001600160a01b031660208486519261196e604051948593849363530e1d4360e01b8552896004860161182b565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa9081156106c3575f916119b2575b501593611893565b6119cb915060203d6020116106bc576106ae8183610beb565b5f6119aa565b6119e59295506020809183010191016117c0565b925f80611887565b919360a093611369969565ffffffffffff938552600180871b0316602085015260408401521660608201528160808201520190610712565b634e487b7160e01b5f52601160045260245ffd5b8115611a43570490565b634e487b7160e01b5f52601260045260245ffd5b9060018201809211611a6557565b611a25565b5f546040516308834cb560e21b8082526001600160a01b0385811660048401529283166024830152929392602092909183816044817f000000000000000000000000000000000000000000000000000000000000000086165afa9081156106c3575f91611b77575b5015918215611af3575b50509050611aed57611369916126a1565b50505f90565b6040519081526001600160a01b0385166004820152606086901c602482015291508290829060449082907f0000000000000000000000000000000000000000000000000000000000000000165afa9182156106c3575f92611b5a575b505015805f80611adc565b611b709250803d106106bc576106ae8183610beb565b5f80611b4f565b611b8e9150843d86116106bc576106ae8183610beb565b5f611ad2565b335f9081527f72a65082a5691803ab2b62c9bc729b34205ba1b183d950896526b2fd8714d0c7602052604090207e8b9b1e5fa9cf3b14f87f435649268146305ddf689f082e5961a335b07a9abf9060ff905b5416156109455750565b5f8181525f80516020612f9783398151915260209081526040808320338452909152902060ff90611be6565b634e487b7160e01b5f52603260045260245ffd5b8054821015611c45575f5260205f2001905f90565b611c1c565b90815491600160401b831015610bb05782611c6d916001610c1995018155611c30565b90919082549060031b91821b915f19901b1916179055565b5f19810191908211611a6557565b90929192600182019081548015611d25575b5084611cb08461275b565b50949092845493611cc0836121eb565b9681611d10575b5015611ced575050505f198101908111611a6557611c6d8591611ce993611c30565b9190565b611ce9949293611d09926001600160d01b039091169190612de6565b5050611c4a565b65ffffffffffff83811691161490505f611cc7565b600160401b811015610bb057806001611d419201845583611c30565b8154905f199060031b1b191690555f611ca5565b90604051611d6281610b95565b915465ffffffffffff8116835260301c6020830152565b91908254905f829160058411611e21575b611d959350856128dd565b908115611e1557611e0e611e05611dff611df5611dc7611dc2611db788611c85565b895f5260205f200190565b611d55565b966001611dee6020611ddf8b5165ffffffffffff1690565b9a01516001600160d01b031690565b9101611c30565b90549060031b1c90565b93611c85565b63ffffffff1690565b6001939291565b5f925082915081908190565b9192611e2c816127aa565b8103908111611a6557611d9593865f52611e60611e558360205f200165ffffffffffff90541690565b65ffffffffffff1690565b65ffffffffffff85161015611e76575091611d8a565b929150611e8290611a57565b90611d8a565b5f80516020612fb78339815191526002815414611ea55760029055565b604051633ee5aeb560e01b8152600490fd5b90815f52600360205260405f2081611ece8261275b565b919390508315611f2c57611eee916001600160d01b031690600101611c30565b90549060031b1c5b82611f22575b5050611f06575050565b611f1e915f52600360205260405f2061036f42612729565b5050565b119050815f611efc565b50505f611ef6565b6001600160a01b0381165f9081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d60205260409020545f80516020612f978339815191529060ff16611aed575f808052602091825260408082206001600160a01b038516835290925220805460ff1916600117905533906001600160a01b03165f7f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d8180a4600190565b6001600160a01b0381165f9081527f9ebbcbe0d2961d3fbe56ca6f679bc753bd848d3e6bb3eaf9041c51b286881d2c602052604090207fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c905f80516020612f978339815191529060ff905b54166120ae575f828152602091825260408082206001600160a01b038616835290925220805460ff1916600117905533916001600160a01b0316907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d5f80a4600190565b5050505f90565b6001600160a01b0381165f9081527f72a65082a5691803ab2b62c9bc729b34205ba1b183d950896526b2fd8714d0c7602052604090207e8b9b1e5fa9cf3b14f87f435649268146305ddf689f082e5961a335b07a9abf905f80516020612f978339815191529060ff9061204a565b5f8181525f80516020612f97833981519152602081815260408084206001600160a01b038716855290915290912060ff9061204a565b5f8181525f80516020612f97833981519152602081815260408084206001600160a01b03871685529091529091205460ff16156120ae575f828152602091825260408082206001600160a01b038616835290925220805460ff1916905533916001600160a01b0316907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b5f80a4600190565b80548061221057505f5b6001600160d01b03811615611aed576001611df59201611c30565b5f19908082810111611a6557825f5260205f2001015460301c6121f5565b9190916040818403126102da57803561224681610701565b9260208201356001600160401b0381116102da576113699201610c43565b6122709181019061222e565b6040516302910f8b60e31b81526001600160a01b039283166004820181905291906020816024817f000000000000000000000000000000000000000000000000000000000000000088165afa9081156106c3575f91612383575b50156123715761230560409161230061234b946122e5612934565b60018060a01b03166001600160601b0360a01b5f5416175f55565b612aa0565b6020810151600180546001600160a01b0319166001600160a01b0390921691909117905580516001600160a01b0316848116612361575b5001516001600160a01b031690565b9081166123555750565b61235e90611fdf565b50565b61236a90611f34565b505f61233c565b6040516362df054560e01b8152600490fd5b61239c915060203d6020116106bc576106ae8183610beb565b5f6122ca565b908160209103126102da576113699061167c565b90600163ffffffff80931601918211611a6557565b9180511561249957806020806123e6935183010191016123a2565b916123f18382612d11565b92612402845165ffffffffffff1690565b9065ffffffffffff808516921682811461248d5782119182612438575b505061242f576113699250612c41565b50506020015190565b9091506124458354611c85565b63ffffffff83161491821561245e575b50505f8061241f565b612485919250612479612473611e55926123b6565b85612d11565b5165ffffffffffff1690565b115f80612455565b50505050506020015190565b5061136991612c41565b9190916040818403126102da576124b981611348565b9260208201516001600160401b0381116102da576113699201611377565b604051906124e482610bb5565b60606040838281528260208201520152565b906020828203126102da5781516001600160401b03928382116102da5701906060828203126102da576040519261252c84610bb5565b82518181116102da5782612541918501611377565b845260208301518181116102da578261255b918501611377565b602085015260408301519081116102da576125769201611377565b604082015290565b908160209103126102da575190565b60409065ffffffffffff61136994931681528160208201520190610712565b909392936125b86124d7565b94805180612685575b50506004546001600160a01b0391821691160361267d575f546126189291906020906125f790611143906001600160a01b031681565b8187015190604051808097819463810da75d60e01b8352886004840161258d565b03915afa9081156106c357612645935f9261264a575b5061263f9192604087015191611637565b90612d79565b915190565b61263f92506126709060203d602011612676575b6126688183610beb565b81019061257e565b9161262e565b503d61265e565b505090515f91565b6126999296506020809183010191016124f6565b935f806125c1565b6004546001600160a01b039290831690831603611aed5760206004925f54166040519384809263bd49c35f60e01b82525afa9081156106c357611369925f92612700575b506126fb61263f915f52600360205260405f2090565b6121eb565b61263f9192506127216126fb9160203d602011612676576126688183610beb565b9291506126e5565b65ffffffffffff9081811161273c571690565b604490604051906306dfcc6560e41b8252603060048301526024820152fd5b80548061276c5750505f905f905f90565b5f19908082810111611a6557612789925f5260205f200101611d55565b9065ffffffffffff82511691602060018060d01b0391015116906001929190565b80156118a5578061263f61287561286b61286161285761284d61284361283960016113699a5f908b60801c806128d1575b508060401c806128c4575b508060201c806128b7575b508060101c806128aa575b508060081c8061289d575b508060041c80612890575b508060021c80612883575b50821c61287c575b811c1b612832818b611a39565b0160011c90565b612832818a611a39565b6128328189611a39565b6128328188611a39565b6128328187611a39565b6128328186611a39565b6128328185611a39565b8092611a39565b8101612825565b600291509101905f61281d565b600491509101905f612812565b600891509101905f612807565b601091509101905f6127fc565b602091509101905f6127f1565b604091509101905f6127e6565b9150506080905f6127db565b905b8383106128ec5750505090565b9091926128f98185612efc565b90835f5265ffffffffffff808360205f20015416908416105f146129215750925b91906128df565b9350600181018091111561291a57611a25565b61293c612f11565b612944612f11565b60015f80516020612fb783398151915255565b6040519061296482610bb5565b5f6040838281528260208201520152565b81601f820112156102da578051916020916001600160401b038411610bb0578360051b90604051946129a985840187610beb565b855283808601928201019283116102da578301905b8282106129cc575050505090565b83809183516129da81610701565b8152019101906129be565b6020818303126102da5780516001600160401b03918282116102da5701918281039260a084126102da57606060405194612a1e86610bb5565b126102da57604051612a2f81610bb5565b8151612a3a81610701565b81526020820151612a4a81610701565b60208201526040820151612a5d81610701565b6040820152845260608101519283116102da57612a81608092612576948301612975565b6020850152016113e2565b8051821015611c455760209160051b010190565b612aa8612957565b50612abe815191602080809483010191016129e5565b8051516001600160a01b0393919084161580612c35575b612c23576040818101805182516302910f8b60e31b81526001600160a01b0390911660048083019190915296929491928690829060249082907f0000000000000000000000000000000000000000000000000000000000000000165afa9081156106c3575f91612c06575b5015612bf45791938401915f5b83518051821015612bc357611143612b6883612b7593612a8c565b516001600160a01b031690565b15612bb357612b97612b93612b8e612b68848851612a8c565b6120b5565b1590565b612ba357600101612b4d565b8451635140fefd60e11b81528790fd5b84516323cda06760e01b81528790fd5b50509051600480546001600160a01b0319166001600160a01b039092169190911790559350612bf0915050565b5190565b604051631f0853c160e21b8152600490fd5b612c1d9150863d88116106bc576106ae8183610beb565b5f612b40565b6040516303501f5960e11b8152600490fd5b50828101515115612ad5565b908154905f829160058411612cab575b612c5c935084612f3f565b80612c8457505f905b6001600160d01b03821615611aed57611369916001611df59201611c30565b612c9e612c93612ca592611c85565b835f5260205f200190565b5460301c90565b90612c65565b9192612cb6816127aa565b8103908111611a6557612c5c93855f5265ffffffffffff808360205f20015416908516105f14612ce7575091612c51565b929150612cf390611a57565b90612c51565b60405190612d0682610b95565b5f6020838281520152565b90612d3a612d34612d5b92612d24612cf9565b50612d2d612cf9565b5084611c30565b50611d55565b91600165ffffffffffff845116936020828060d01b03910151169101611c30565b90549060405192612d6b84610b95565b835260031b1c602082015290565b9080821015612d86575090565b905090565b8054600160401b811015610bb057612da891600182018155611c30565b612dd357815160209092015160301b65ffffffffffff191665ffffffffffff92909216919091179055565b634e487b7160e01b5f525f60045260245ffd5b805492939291908215612ed357612e02611dc2612c9385611c85565b90612e13825165ffffffffffff1690565b65ffffffffffff84811691168110612ec157611ce9946020948892612e41611e55875165ffffffffffff1690565b03612e895750612e7b92612e57612e6292611c85565b905f5260205f200190565b9065ffffffffffff82549181199060301b169116179055565b01516001600160d01b031690565b915050612ebc91612ea9612e9b610c1b565b65ffffffffffff9093168352565b6001600160d01b03881682860152612d8b565b612e7b565b604051632520601d60e01b8152600490fd5b612ef79250612ee3612e9b610c1b565b6001600160d01b0385166020830152612d8b565b5f9190565b90808216911860011c8101809111611a655790565b60ff5f80516020612fd78339815191525460401c1615612f2d57565b604051631afcd79f60e31b8152600490fd5b905b838310612f4e5750505090565b909192612f5b8185612efc565b90835f5265ffffffffffff808360205f20015416908416105f14612f835750925b9190612f41565b93506001810180911115612f7c57611a2556fe02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268009b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a26469706673582212202077fedb9993c6133279d30f1d446f0f32fbff7e0bf1efb91c3d996684e117c464736f6c63430008190033","sourceMap":"11341:2310:81:-:0;;;;;;;;;;;;;-1:-1:-1;;11341:2310:81;;;;-1:-1:-1;;;;;11341:2310:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;:::i;:::-;348:4:82;;332:21;;8837:64:25;11341:2310:81;;;;;;;;;7896:76:25;;11341:2310:81;;;;7985:34:25;7981:146;;-1:-1:-1;525:17:69;;;-1:-1:-1;525:17:69;;-1:-1:-1;552:12:69;;-1:-1:-1;2360:34:76;;2404:28;;-1:-1:-1;2404:28:76;;2442:57;;-1:-1:-1;2442:57:76;;2509:61;-1:-1:-1;2509:61:76;;1716:36:80;;-1:-1:-1;1716:36:80;;11845:41:81;;;;11896:24;;;;11930:40;;;;11341:2310;;;;;;;;332:21:82;11341:2310:81;;;;;525:17:69;11341:2310:81;;;;;552:12:69;11341:2310:81;;;;;2360:34:76;11341:2310:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7981:146:25;-1:-1:-1;;;;;;11341:2310:81;;;;;;;;;;;;;8087:29:25;;11341:2310:81;;8087:29:25;7981:146;;;;;7896:76;11341:2310:81;;-1:-1:-1;;;7938:23:25;;;;;11341:2310:81;-1:-1:-1;11341:2310:81;;;;;;-1:-1:-1;11341:2310:81;;;;;-1:-1:-1;11341:2310:81;;;;-1:-1:-1;;;;;11341:2310:81;;;;;;:::o","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361015610011575f80fd5b5f3560e01c806301ffc9a714610284578063021453481461027f578063103f29071461027a578063128e5d8214610275578063197aa7ea146102705780631a80e5001461026b57806323f752d514610266578063248a9ca31461026157806325dc97081461025c5780632dd31000146102575780632f2ff15d1461025257806336568abe1461024d5780633dfd3873146102485780633eb22c0f14610243578063439fab911461023e57806345e78fcb14610239578063557cab4414610234578063570ca7351461022f5780635d32a1c91461022a5780636679191e1461022557806379d89614146102205780637d24bb271461021b5780637f5a7c7b1461021657806383ce03221461021157806391d148541461020c5780639b656b22146102075780639f86fd8514610202578063a217fddf146101fd578063bb24fe8a146101f8578063c0cd7c3e146101f3578063d15b740e146101ee578063d547741f146101e9578063da749d2b146101e4578063e02f6937146101df578063e49561ee146101da578063fbfa77cf146101d5578063fd4d447c146101d0578063ff54740f146101cb5763ffa1ad74146101c6575f80fd5b61132d565b611310565b6112e6565b6112bf565b6110d4565b61107f565b61104a565b610ffe565b610fd4565b610f90565b610f4d565b610f33565b610e9f565b610e5b565b610dfd565b610db9565b610d91565b610d58565b610d14565b610cda565b610c89565b610b59565b610b3d565b610af9565b6109c1565b610963565b61086a565b61081f565b6107d3565b61078f565b610736565b6106c8565b610542565b6104fe565b610471565b6103ee565b6103aa565b6102de565b346102da5760203660031901126102da5760043563ffffffff60e01b81168091036102da57602090637965db0b60e01b81149081156102c9575b506040519015158152f35b6301ffc9a760e01b1490505f6102be565b5f80fd5b346102da576040806003193601126102da576004359060243590610300611b94565b825f526002602052805f2054821161039a57825f52600360205281610326825f206121eb565b1461038a5781610385916103757e899d104fc3d8820bd96540612bcc5c448c8837b13b9f7faa43ad0728f0c14f94610366875f52600360205260405f2090565b61036f42612729565b90611c93565b5050519081529081906020820190565b0390a2005b5163a741a04560e01b8152600490fd5b51631eefc06360e31b8152600490fd5b346102da575f3660031901126102da576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346102da575f3660031901126102da576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b6024359065ffffffffffff821682036102da57565b6064359065ffffffffffff821682036102da57565b6044359065ffffffffffff821682036102da57565b346102da5760403660031901126102da5761048a610432565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633036104ec5763ffffffff6104d76040926004355f526003602052835f20611d79565b91505083929192519215158352166020820152f35b604051637ca475e560e11b8152600490fd5b346102da575f3660031901126102da576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346102da5760403660031901126102da576004356001600160601b03811681036102da5760243590610572611e88565b6040516302910f8b60e31b81523360048201526020816024816001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165afa9081156106c3575f91610694575b5015610682576001600160601b03166bffffffffffffffffffffffff193360601b161790806105fc835f52600260205260405f2090565b541461067057610655817fc67e7929681aa1bccd63f52b3799bf5805f3009f197db6fdf584b14f7fbf608c9261063a855f52600260205260405f2090565b556106458185611eb7565b6040519081529081906020820190565b0390a261066e60015f80516020612fb783398151915255565b005b60405163a741a04560e01b8152600490fd5b6040516323d53b9760e21b8152600490fd5b6106b6915060203d6020116106bc575b6106ae8183610beb565b810190611355565b5f6105c5565b503d6106a4565b61136c565b346102da5760203660031901126102da576004355f525f80516020612f978339815191526020526020600160405f200154604051908152f35b6001600160a01b038116036102da57565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b346102da5760803660031901126102da5761078b61077760043561075981610701565b60443561076581610701565b61076d610447565b9160243590611451565b604051918291602083526020830190610712565b0390f35b346102da575f3660031901126102da576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346102da5760403660031901126102da5761066e6024356004356107f682610701565b805f525f80516020612f9783398151915260205261081a600160405f200154611bf0565b612123565b346102da5760403660031901126102da5760243561083c81610701565b336001600160a01b038216036108585761066e90600435612159565b60405163334bd91960e11b8152600490fd5b346102da5760203660031901126102da5760043561088781610701565b61088f611e88565b335f9081527f9ebbcbe0d2961d3fbe56ca6f679bc753bd848d3e6bb3eaf9041c51b286881d2c60205260409020547fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c9060ff161561094557506001546001600160a01b039182169181168214610670576001600160a01b03191681176001557f5bbb1d3ebb6a3ad2a0f17ff35e579a83af60604d1d3c2a4c83c62adecadf666d5f80a260015f80516020612fb783398151915255005b6044906040519063e2517d3f60e01b82523360048301526024820152fd5b346102da5760203660031901126102da576004355f526003602052602061098c60405f206121eb565b604051908152f35b9181601f840112156102da578235916001600160401b0383116102da57602083818601950101116102da57565b346102da5760203660031901126102da576001600160401b036004358181116102da576109f2903690600401610994565b5f80516020612fd7833981519152549260ff8460401c1615931680159081610af1575b6001149081610ae7575b159081610ade575b50610acc575f80516020612fd7833981519152805467ffffffffffffffff19166001179055610a5a9183610aa857612264565b610a6057005b5f80516020612fd7833981519152805460ff60401b19169055604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a1005b5f80516020612fd7833981519152805460ff60401b1916600160401b179055612264565b60405163f92ee8a960e01b8152600490fd5b9050155f610a27565b303b159150610a1f565b849150610a15565b346102da575f3660031901126102da576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346102da575f3660031901126102da576020604051614e208152f35b346102da575f3660031901126102da576004546040516001600160a01b039091168152602090f35b634e487b7160e01b5f52604160045260245ffd5b604081019081106001600160401b03821117610bb057604052565b610b81565b606081019081106001600160401b03821117610bb057604052565b608081019081106001600160401b03821117610bb057604052565b90601f801991011681019081106001600160401b03821117610bb057604052565b60405190610c1982610bb5565b565b60405190610c1982610b95565b6001600160401b038111610bb057601f01601f191660200190565b81601f820112156102da57803590610c5a82610c28565b92610c686040519485610beb565b828452602083830101116102da57815f926020809301838601378301015290565b346102da5760603660031901126102da57610ca2610432565b6044356001600160401b0381116102da57602091610cc761098c923690600401610c43565b906004355f526003845260405f206123cb565b346102da575f3660031901126102da5760206040517fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c8152f35b346102da575f3660031901126102da576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346102da575f3660031901126102da5760206040517e8b9b1e5fa9cf3b14f87f435649268146305ddf689f082e5961a335b07a9abf8152f35b346102da575f3660031901126102da576001546040516001600160a01b039091168152602090f35b346102da575f3660031901126102da576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346102da5760403660031901126102da57602060ff610e4f602435610e2181610701565b6004355f525f80516020612f97833981519152845260405f209060018060a01b03165f5260205260405f2090565b54166040519015158152f35b346102da575f3660031901126102da576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346102da5760403660031901126102da57600435610ebc81610701565b6024356001600160401b0381116102da575f91610ede83923690600401610994565b90816040519283928337810184815203915af4610f2b610efc61164d565b91610f1d604051938492151560208401526040808401526060830190610712565b03601f198101835282610beb565b805190602001fd5b346102da575f3660031901126102da5760206040515f8152f35b346102da575f3660031901126102da5760206040516001600160401b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b346102da575f3660031901126102da576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346102da5760203660031901126102da576004355f526002602052602060405f2054604051908152f35b346102da5760403660031901126102da5761066e60243560043561102182610701565b805f525f80516020612f97833981519152602052611045600160405f200154611bf0565b612159565b346102da5760603660031901126102da5761078b61077760043561106d81610701565b61107561045c565b90602435906116ae565b346102da5760803660031901126102da5760243561109c81610701565b6110a461045c565b90606435906001600160401b0382116102da576020926110cb61098c933690600401610c43565b91600435611863565b346102da5760a03660031901126102da576024356004356110f482610701565b60443591611100610447565b90608435906001600160401b0382116102da5761112260049236908401610c43565b61112a611e88565b5f5460209061114f90611143906001600160a01b031681565b6001600160a01b031690565b60405163b134427160e01b815294859182905afa9283156106c3575f9361128e575b506001600160a01b03928316330361127c576001546001600160a01b03168381166111f1575b50506040805195865265ffffffffffff909316602086015216927f741a5de99085c0d660f3e4192217b0ffb0ea4e35a0480de48e857a4bc3ee36ed91819081015b0390a361066e60015f80516020612fb783398151915255565b9093604051946112288661121a602082019363724ab0f760e11b8552858c898d602487016119ed565b03601f198101885287610beb565b62042e305a1061126a575f6111d8938192827f741a5de99085c0d660f3e4192217b0ffb0ea4e35a0480de48e857a4bc3ee36ed9951926203d090f15093611197565b604051638072475160e01b8152600490fd5b60405163dabc4ad960e01b8152600490fd5b6112b191935060203d6020116112b8575b6112a98183610beb565b8101906113ed565b915f611171565b503d61129f565b346102da575f3660031901126102da575f546040516001600160a01b039091168152602090f35b346102da5760403660031901126102da57602061098c60243561130881610701565b600435611a6a565b346102da575f3660031901126102da5760206040516203d0908152f35b346102da575f3660031901126102da57602060405160018152f35b519081151582036102da57565b908160209103126102da5761136990611348565b90565b6040513d5f823e3d90fd5b81601f820112156102da5780519061138e82610c28565b9261139c6040519485610beb565b828452602083830101116102da57815f9260208093018386015e8301015290565b906020828203126102da5781516001600160401b0381116102da576113699201611377565b5190610c1982610701565b908160209103126102da575161136981610701565b9061136991602081526114218251606060208401526080830190610712565b9060606040611441602086015194601f1995868683030184870152610712565b9401519282850301910152610712565b604051630df8851f60e11b81526001600160a01b03828116600483015260248201849052938416604482015265ffffffffffff8516606482015260609594909391925f856084817f000000000000000000000000000000000000000000000000000000000000000087165afa9485156106c3575f9561161b575b5060405163fbfa77cf60e01b81526020816004818888165afa9081156106c357611537945f92859284916115fc575b5060405163192c0ff760e21b81526001600160a01b03909116600482015265ffffffffffff90921660248301529094859190829081906044820190565b03917f0000000000000000000000000000000000000000000000000000000000000000165afa9283156106c3575f936115d6575b5061157692936116ae565b908251158015906115cc575b80156115c2575b61159257505050565b610f1d9394509061136992916115a6610c0c565b9283526020830152604082015260405192839160208301611402565b5081511515611589565b5080511515611582565b61157693506115f6903d805f833e6115ee8183610beb565b8101906113bd565b9261156b565b611615915060203d6020116112b8576112a98183610beb565b5f6114fa565b6116309195503d805f833e6115ee8183610beb565b935f6114cb565b9061136992915f52600360205260405f206123cb565b3d15611677573d9061165e82610c28565b9161166c6040519384610beb565b82523d5f602084013e565b606090565b519063ffffffff821682036102da57565b91908260409103126102da5761136960206116a784611348565b930161167c565b92915f8060609565ffffffffffff60405194602096630cbd53f560e11b888801526024870152166044850152604484526116e784610bd0565b604051938461171487820192639f86fd8560e01b8452306024840152604060448401526064830190610712565b0394611728601f1996878101835282610beb565b51915afa5061174661173861164d565b8380825183010191016124a3565b90156117995780838061175e9351830101910161168d565b929061176957505050565b6113699293945061178d604051948592830191909163ffffffff6020820193169052565b03908101835282610beb565b809150519182156102da5701fd5b604051906117b482610b95565b60606020838281520152565b906020828203126102da5781516001600160401b03928382116102da5701906040828203126102da57604051926117f684610b95565b82518181116102da578261180b918501611377565b845260208301519081116102da576118239201611377565b602082015290565b6001600160a01b0391821681529116602082015265ffffffffffff909116604082015260806060820181905261136992910190610712565b92611873909291928284866125ac565b92909361187e6117a7565b938051806119d1575b5050841593841561193b575b84156118aa575b505050506118a55790565b505f90565b6020809495506118d5910151604051958694859463530e1d4360e01b865260601c906004860161182b565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa9081156106c3575f9161191c575b50155f80808061189a565b611935915060203d6020116106bc576106ae8183610beb565b5f611911565b5f549094506001600160a01b031660208486519261196e604051948593849363530e1d4360e01b8552896004860161182b565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa9081156106c3575f916119b2575b501593611893565b6119cb915060203d6020116106bc576106ae8183610beb565b5f6119aa565b6119e59295506020809183010191016117c0565b925f80611887565b919360a093611369969565ffffffffffff938552600180871b0316602085015260408401521660608201528160808201520190610712565b634e487b7160e01b5f52601160045260245ffd5b8115611a43570490565b634e487b7160e01b5f52601260045260245ffd5b9060018201809211611a6557565b611a25565b5f546040516308834cb560e21b8082526001600160a01b0385811660048401529283166024830152929392602092909183816044817f000000000000000000000000000000000000000000000000000000000000000086165afa9081156106c3575f91611b77575b5015918215611af3575b50509050611aed57611369916126a1565b50505f90565b6040519081526001600160a01b0385166004820152606086901c602482015291508290829060449082907f0000000000000000000000000000000000000000000000000000000000000000165afa9182156106c3575f92611b5a575b505015805f80611adc565b611b709250803d106106bc576106ae8183610beb565b5f80611b4f565b611b8e9150843d86116106bc576106ae8183610beb565b5f611ad2565b335f9081527f72a65082a5691803ab2b62c9bc729b34205ba1b183d950896526b2fd8714d0c7602052604090207e8b9b1e5fa9cf3b14f87f435649268146305ddf689f082e5961a335b07a9abf9060ff905b5416156109455750565b5f8181525f80516020612f9783398151915260209081526040808320338452909152902060ff90611be6565b634e487b7160e01b5f52603260045260245ffd5b8054821015611c45575f5260205f2001905f90565b611c1c565b90815491600160401b831015610bb05782611c6d916001610c1995018155611c30565b90919082549060031b91821b915f19901b1916179055565b5f19810191908211611a6557565b90929192600182019081548015611d25575b5084611cb08461275b565b50949092845493611cc0836121eb565b9681611d10575b5015611ced575050505f198101908111611a6557611c6d8591611ce993611c30565b9190565b611ce9949293611d09926001600160d01b039091169190612de6565b5050611c4a565b65ffffffffffff83811691161490505f611cc7565b600160401b811015610bb057806001611d419201845583611c30565b8154905f199060031b1b191690555f611ca5565b90604051611d6281610b95565b915465ffffffffffff8116835260301c6020830152565b91908254905f829160058411611e21575b611d959350856128dd565b908115611e1557611e0e611e05611dff611df5611dc7611dc2611db788611c85565b895f5260205f200190565b611d55565b966001611dee6020611ddf8b5165ffffffffffff1690565b9a01516001600160d01b031690565b9101611c30565b90549060031b1c90565b93611c85565b63ffffffff1690565b6001939291565b5f925082915081908190565b9192611e2c816127aa565b8103908111611a6557611d9593865f52611e60611e558360205f200165ffffffffffff90541690565b65ffffffffffff1690565b65ffffffffffff85161015611e76575091611d8a565b929150611e8290611a57565b90611d8a565b5f80516020612fb78339815191526002815414611ea55760029055565b604051633ee5aeb560e01b8152600490fd5b90815f52600360205260405f2081611ece8261275b565b919390508315611f2c57611eee916001600160d01b031690600101611c30565b90549060031b1c5b82611f22575b5050611f06575050565b611f1e915f52600360205260405f2061036f42612729565b5050565b119050815f611efc565b50505f611ef6565b6001600160a01b0381165f9081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d60205260409020545f80516020612f978339815191529060ff16611aed575f808052602091825260408082206001600160a01b038516835290925220805460ff1916600117905533906001600160a01b03165f7f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d8180a4600190565b6001600160a01b0381165f9081527f9ebbcbe0d2961d3fbe56ca6f679bc753bd848d3e6bb3eaf9041c51b286881d2c602052604090207fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c905f80516020612f978339815191529060ff905b54166120ae575f828152602091825260408082206001600160a01b038616835290925220805460ff1916600117905533916001600160a01b0316907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d5f80a4600190565b5050505f90565b6001600160a01b0381165f9081527f72a65082a5691803ab2b62c9bc729b34205ba1b183d950896526b2fd8714d0c7602052604090207e8b9b1e5fa9cf3b14f87f435649268146305ddf689f082e5961a335b07a9abf905f80516020612f978339815191529060ff9061204a565b5f8181525f80516020612f97833981519152602081815260408084206001600160a01b038716855290915290912060ff9061204a565b5f8181525f80516020612f97833981519152602081815260408084206001600160a01b03871685529091529091205460ff16156120ae575f828152602091825260408082206001600160a01b038616835290925220805460ff1916905533916001600160a01b0316907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b5f80a4600190565b80548061221057505f5b6001600160d01b03811615611aed576001611df59201611c30565b5f19908082810111611a6557825f5260205f2001015460301c6121f5565b9190916040818403126102da57803561224681610701565b9260208201356001600160401b0381116102da576113699201610c43565b6122709181019061222e565b6040516302910f8b60e31b81526001600160a01b039283166004820181905291906020816024817f000000000000000000000000000000000000000000000000000000000000000088165afa9081156106c3575f91612383575b50156123715761230560409161230061234b946122e5612934565b60018060a01b03166001600160601b0360a01b5f5416175f55565b612aa0565b6020810151600180546001600160a01b0319166001600160a01b0390921691909117905580516001600160a01b0316848116612361575b5001516001600160a01b031690565b9081166123555750565b61235e90611fdf565b50565b61236a90611f34565b505f61233c565b6040516362df054560e01b8152600490fd5b61239c915060203d6020116106bc576106ae8183610beb565b5f6122ca565b908160209103126102da576113699061167c565b90600163ffffffff80931601918211611a6557565b9180511561249957806020806123e6935183010191016123a2565b916123f18382612d11565b92612402845165ffffffffffff1690565b9065ffffffffffff808516921682811461248d5782119182612438575b505061242f576113699250612c41565b50506020015190565b9091506124458354611c85565b63ffffffff83161491821561245e575b50505f8061241f565b612485919250612479612473611e55926123b6565b85612d11565b5165ffffffffffff1690565b115f80612455565b50505050506020015190565b5061136991612c41565b9190916040818403126102da576124b981611348565b9260208201516001600160401b0381116102da576113699201611377565b604051906124e482610bb5565b60606040838281528260208201520152565b906020828203126102da5781516001600160401b03928382116102da5701906060828203126102da576040519261252c84610bb5565b82518181116102da5782612541918501611377565b845260208301518181116102da578261255b918501611377565b602085015260408301519081116102da576125769201611377565b604082015290565b908160209103126102da575190565b60409065ffffffffffff61136994931681528160208201520190610712565b909392936125b86124d7565b94805180612685575b50506004546001600160a01b0391821691160361267d575f546126189291906020906125f790611143906001600160a01b031681565b8187015190604051808097819463810da75d60e01b8352886004840161258d565b03915afa9081156106c357612645935f9261264a575b5061263f9192604087015191611637565b90612d79565b915190565b61263f92506126709060203d602011612676575b6126688183610beb565b81019061257e565b9161262e565b503d61265e565b505090515f91565b6126999296506020809183010191016124f6565b935f806125c1565b6004546001600160a01b039290831690831603611aed5760206004925f54166040519384809263bd49c35f60e01b82525afa9081156106c357611369925f92612700575b506126fb61263f915f52600360205260405f2090565b6121eb565b61263f9192506127216126fb9160203d602011612676576126688183610beb565b9291506126e5565b65ffffffffffff9081811161273c571690565b604490604051906306dfcc6560e41b8252603060048301526024820152fd5b80548061276c5750505f905f905f90565b5f19908082810111611a6557612789925f5260205f200101611d55565b9065ffffffffffff82511691602060018060d01b0391015116906001929190565b80156118a5578061263f61287561286b61286161285761284d61284361283960016113699a5f908b60801c806128d1575b508060401c806128c4575b508060201c806128b7575b508060101c806128aa575b508060081c8061289d575b508060041c80612890575b508060021c80612883575b50821c61287c575b811c1b612832818b611a39565b0160011c90565b612832818a611a39565b6128328189611a39565b6128328188611a39565b6128328187611a39565b6128328186611a39565b6128328185611a39565b8092611a39565b8101612825565b600291509101905f61281d565b600491509101905f612812565b600891509101905f612807565b601091509101905f6127fc565b602091509101905f6127f1565b604091509101905f6127e6565b9150506080905f6127db565b905b8383106128ec5750505090565b9091926128f98185612efc565b90835f5265ffffffffffff808360205f20015416908416105f146129215750925b91906128df565b9350600181018091111561291a57611a25565b61293c612f11565b612944612f11565b60015f80516020612fb783398151915255565b6040519061296482610bb5565b5f6040838281528260208201520152565b81601f820112156102da578051916020916001600160401b038411610bb0578360051b90604051946129a985840187610beb565b855283808601928201019283116102da578301905b8282106129cc575050505090565b83809183516129da81610701565b8152019101906129be565b6020818303126102da5780516001600160401b03918282116102da5701918281039260a084126102da57606060405194612a1e86610bb5565b126102da57604051612a2f81610bb5565b8151612a3a81610701565b81526020820151612a4a81610701565b60208201526040820151612a5d81610701565b6040820152845260608101519283116102da57612a81608092612576948301612975565b6020850152016113e2565b8051821015611c455760209160051b010190565b612aa8612957565b50612abe815191602080809483010191016129e5565b8051516001600160a01b0393919084161580612c35575b612c23576040818101805182516302910f8b60e31b81526001600160a01b0390911660048083019190915296929491928690829060249082907f0000000000000000000000000000000000000000000000000000000000000000165afa9081156106c3575f91612c06575b5015612bf45791938401915f5b83518051821015612bc357611143612b6883612b7593612a8c565b516001600160a01b031690565b15612bb357612b97612b93612b8e612b68848851612a8c565b6120b5565b1590565b612ba357600101612b4d565b8451635140fefd60e11b81528790fd5b84516323cda06760e01b81528790fd5b50509051600480546001600160a01b0319166001600160a01b039092169190911790559350612bf0915050565b5190565b604051631f0853c160e21b8152600490fd5b612c1d9150863d88116106bc576106ae8183610beb565b5f612b40565b6040516303501f5960e11b8152600490fd5b50828101515115612ad5565b908154905f829160058411612cab575b612c5c935084612f3f565b80612c8457505f905b6001600160d01b03821615611aed57611369916001611df59201611c30565b612c9e612c93612ca592611c85565b835f5260205f200190565b5460301c90565b90612c65565b9192612cb6816127aa565b8103908111611a6557612c5c93855f5265ffffffffffff808360205f20015416908516105f14612ce7575091612c51565b929150612cf390611a57565b90612c51565b60405190612d0682610b95565b5f6020838281520152565b90612d3a612d34612d5b92612d24612cf9565b50612d2d612cf9565b5084611c30565b50611d55565b91600165ffffffffffff845116936020828060d01b03910151169101611c30565b90549060405192612d6b84610b95565b835260031b1c602082015290565b9080821015612d86575090565b905090565b8054600160401b811015610bb057612da891600182018155611c30565b612dd357815160209092015160301b65ffffffffffff191665ffffffffffff92909216919091179055565b634e487b7160e01b5f525f60045260245ffd5b805492939291908215612ed357612e02611dc2612c9385611c85565b90612e13825165ffffffffffff1690565b65ffffffffffff84811691168110612ec157611ce9946020948892612e41611e55875165ffffffffffff1690565b03612e895750612e7b92612e57612e6292611c85565b905f5260205f200190565b9065ffffffffffff82549181199060301b169116179055565b01516001600160d01b031690565b915050612ebc91612ea9612e9b610c1b565b65ffffffffffff9093168352565b6001600160d01b03881682860152612d8b565b612e7b565b604051632520601d60e01b8152600490fd5b612ef79250612ee3612e9b610c1b565b6001600160d01b0385166020830152612d8b565b5f9190565b90808216911860011c8101809111611a655790565b60ff5f80516020612fd78339815191525460401c1615612f2d57565b604051631afcd79f60e31b8152600490fd5b905b838310612f4e5750505090565b909192612f5b8185612efc565b90835f5265ffffffffffff808360205f20015416908416105f14612f835750925b9190612f41565b93506001810180911115612f7c57611a2556fe02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268009b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a26469706673582212202077fedb9993c6133279d30f1d446f0f32fbff7e0bf1efb91c3d996684e117c464736f6c63430008190033","sourceMap":"11341:2310:81:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;;;;;-1:-1:-1;;11341:2310:81;;;;;;;;;;;;;;;;;;-1:-1:-1;;;3551:47:23;;;:87;;;;11341:2310:81;;;;;;;;;;3551:87:23;-1:-1:-1;;;1133:40:29;;-1:-1:-1;3551:87:23;;;11341:2310:81;-1:-1:-1;11341:2310:81;;;;;;;;;;;;;;;;;;;;3202:4:23;;;:::i;:::-;11341:2310:81;-1:-1:-1;11341:2310:81;2428:15:80;11341:2310:81;;;-1:-1:-1;11341:2310:81;;2419:36:80;;2415:98;;11341:2310:81;-1:-1:-1;11341:2310:81;2193:13:80;11341:2310:81;;;2193:34:80;11341:2310:81;-1:-1:-1;11341:2310:81;2193:34:80;:::i;:::-;2527;2523:84;;2617:25;2689:35;2617:25;:56;2689:35;2617:25;;;11341:2310:81;;2193:13:80;11341:2310:81;;;;;;;2617:25:80;819:34:62;837:15;819:34;:::i;:::-;2617:56:80;;:::i;:::-;-1:-1:-1;;11341:2310:81;;;;;;;;;;;;2689:35:80;;;;11341:2310:81;2523:84:80;11341:2310:81;-1:-1:-1;;;2584:12:80;;11341:2310:81;;2584:12:80;2415:98;11341:2310:81;-1:-1:-1;;;2478:24:80;;11341:2310:81;;2478:24:80;11341:2310:81;;;;;;-1:-1:-1;;11341:2310:81;;;;;;1537:38:76;-1:-1:-1;;;;;11341:2310:81;;;;;;;;;;;;-1:-1:-1;;11341:2310:81;;;;;;1632:54:76;-1:-1:-1;;;;;11341:2310:81;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;-1:-1:-1;;11341:2310:81;;;;;;:::i;:::-;449:5:82;-1:-1:-1;;;;;11341:2310:81;435:10:82;:19;431:71;;11341:2310:81;12172:64;11341:2310;;;;-1:-1:-1;11341:2310:81;12172:13;11341:2310;;;-1:-1:-1;11341:2310:81;12172:64;:::i;:::-;11341:2310;;;;;;;;;;;;;;;;;;;431:71:82;11341:2310:81;;-1:-1:-1;;;477:14:82;;11341:2310:81;;477:14:82;11341:2310:81;;;;;;-1:-1:-1;;11341:2310:81;;;;;;1743:56:76;-1:-1:-1;;;;;11341:2310:81;;;;;;;;;;;;-1:-1:-1;;11341:2310:81;;;;;;-1:-1:-1;;;;;11341:2310:81;;;;;;;;3217:103:28;;;:::i;:::-;11341:2310:81;;-1:-1:-1;;;4285:48:76;;4322:10;11341:2310:81;4285:48:76;;11341:2310:81;;;;;-1:-1:-1;;;;;4295:16:76;11341:2310:81;4285:48:76;;;;;;;-1:-1:-1;4285:48:76;;;11341:2310:81;4284:49:76;;4280:99;;-1:-1:-1;;;;;11341:2310:81;-1:-1:-1;;4322:10:76;297:2:88;11341:2310:81;;267:46:88;4459:27:76;;;;11341:2310:81;;4459:15:76;11341:2310:81;;;;;;;4459:27:76;11341:2310:81;4459:37:76;4455:87;;4654:38;4552:27;4654:38;4552:27;;;11341:2310:81;;4459:15:76;11341:2310:81;;;;;;;4552:27:76;11341:2310:81;4631:6:76;;;;:::i;:::-;11341:2310:81;;;;;;;;;;;;;4654:38:76;;;;3282:1:28;1805;-1:-1:-1;;;;;;;;;;;11341:2310:81;3716:283:28;3282:1;11341:2310:81;4455:87:76;11341:2310:81;;-1:-1:-1;;;4519:12:76;;11341:2310:81;;4519:12:76;4280:99;11341:2310:81;;-1:-1:-1;;;4356:12:76;;11341:2310:81;;4356:12:76;4285:48;;;;11341:2310:81;4285:48:76;11341:2310:81;4285:48:76;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;:::i;11341:2310:81:-;;;;;;-1:-1:-1;;11341:2310:81;;;;;;-1:-1:-1;11341:2310:81;-1:-1:-1;;;;;;;;;;;11341:2310:81;;;4919:24:23;11341:2310:81;-1:-1:-1;11341:2310:81;4919:24:23;11341:2310:81;;;;;;;;-1:-1:-1;;;;;11341:2310:81;;;;;:::o;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;11341:2310:81;;;;;;;;-1:-1:-1;;11341:2310:81;;;;:::o;:::-;;;;;;-1:-1:-1;;11341:2310:81;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;11341:2310:81;;;;;;322:32:69;-1:-1:-1;;;;;11341:2310:81;;;;;;;;;;;;-1:-1:-1;;11341:2310:81;;;;5350:25:23;11341:2310:81;;;;;;;:::i;:::-;;-1:-1:-1;11341:2310:81;-1:-1:-1;;;;;;;;;;;11341:2310:81;;3202:4:23;4919:24;11341:2310:81;-1:-1:-1;11341:2310:81;4919:24:23;11341:2310:81;3202:4:23;:::i;:::-;5350:25;:::i;11341:2310:81:-;;;;;;-1:-1:-1;;11341:2310:81;;;;;;;;;:::i;:::-;966:10:27;-1:-1:-1;;;;;11341:2310:81;;6441:34:23;6437:102;;6549:37;11341:2310:81;;;6549:37:23;:::i;6437:102::-;11341:2310:81;;-1:-1:-1;;;6498:30:23;;11341:2310:81;;6498:30:23;11341:2310:81;;;;;;-1:-1:-1;;11341:2310:81;;;;;;;;;:::i;:::-;3217:103:28;;:::i;:::-;966:10:27;-1:-1:-1;11341:2310:81;;;;;;;;;;1356:26:76;;11341:2310:81;;4468:23:23;4464:108;;-1:-1:-1;4861:4:76;11341:2310:81;-1:-1:-1;;;;;11341:2310:81;;;;;;4861:13:76;;4857:63;;-1:-1:-1;;;;;;11341:2310:81;;;4861:4:76;11341:2310:81;4958:14:76;-1:-1:-1;;4958:14:76;4861:4;-1:-1:-1;;;;;;;;;;;11341:2310:81;;4464:108:23;11341:2310:81;;;;4514:47:23;;;;;;966:10:27;11341:2310:81;4514:47:23;;11341:2310:81;;;;;4514:47:23;11341:2310:81;;;;;;-1:-1:-1;;11341:2310:81;;;;;;-1:-1:-1;11341:2310:81;2193:13:80;11341:2310:81;;;2193:34:80;11341:2310:81;-1:-1:-1;11341:2310:81;2193:34:80;:::i;:::-;11341:2310:81;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;11341:2310:81;;;;;;;;;;;;;;;:::o;:::-;;;;;;-1:-1:-1;;11341:2310:81;;;;-1:-1:-1;;;;;11341:2310:81;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;11341:2310:81;;;;;;;4301:16:25;11341:2310:81;;4726:16:25;;:34;;;;11341:2310:81;4805:1:25;4790:16;:50;;;;11341:2310:81;4855:13:25;:30;;;;11341:2310:81;4851:91:25;;;-1:-1:-1;;;;;;;;;;;11341:2310:81;;-1:-1:-1;;11341:2310:81;;;;;718:4:69;;4951:18:25;4979:67;;718:4:69;:::i;:::-;5066:101:25;;11341:2310:81;5066:101:25;-1:-1:-1;;;;;;;;;;;11341:2310:81;;-1:-1:-1;;;;11341:2310:81;;;;;-1:-1:-1;11341:2310:81;;5142:14:25;;11341:2310:81;;5142:14:25;11341:2310:81;4979:67:25;-1:-1:-1;;;;;;;;;;;11341:2310:81;;-1:-1:-1;;;;11341:2310:81;-1:-1:-1;;;11341:2310:81;;;718:4:69;:::i;4851:91:25:-;11341:2310:81;;-1:-1:-1;;;4908:23:25;;11341:2310:81;;4908:23:25;4855:30;4872:13;;;4855:30;;;4790:50;4818:4;4810:25;:30;;-1:-1:-1;4790:50:25;;4726:34;;;-1:-1:-1;4726:34:25;;11341:2310:81;;;;;;-1:-1:-1;;11341:2310:81;;;;;;11523:36;-1:-1:-1;;;;;11341:2310:81;;;;;;;;;;;;-1:-1:-1;;11341:2310:81;;;;;;;1253:6:76;11341:2310:81;;;;;;;;;-1:-1:-1;;11341:2310:81;;;;;;;;-1:-1:-1;;;;;11341:2310:81;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;11341:2310:81;;;;;;;:::o;:::-;;:::i;:::-;;;;;;;-1:-1:-1;;;;;11341:2310:81;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;11341:2310:81;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;11341:2310:81;;;;;;;:::o;:::-;;;;;;;:::i;:::-;:::o;:::-;;;;;;;:::i;:::-;-1:-1:-1;;;;;11341:2310:81;;;;;;-1:-1:-1;;11341:2310:81;;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;11341:2310:81;;;;;;;;;;;;;;:::o;:::-;;;;;;-1:-1:-1;;11341:2310:81;;;;;;:::i;:::-;;;-1:-1:-1;;;;;11341:2310:81;;;;;;;1955:60:80;11341:2310:81;;;;;;:::i;:::-;;;;-1:-1:-1;11341:2310:81;1955:13:80;11341:2310:81;;;-1:-1:-1;11341:2310:81;1955:60:80;:::i;11341:2310:81:-;;;;;;-1:-1:-1;;11341:2310:81;;;;;;;1356:26:76;11341:2310:81;;;;;;;;;-1:-1:-1;;11341:2310:81;;;;;;11472:45;-1:-1:-1;;;;;11341:2310:81;;;;;;;;;;;;-1:-1:-1;;11341:2310:81;;;;;;;885:35:80;11341:2310:81;;;;;;;;;-1:-1:-1;;11341:2310:81;;;;;;;;-1:-1:-1;;;;;11341:2310:81;;;;;;;;;;;;;;-1:-1:-1;;11341:2310:81;;;;;;989:42:80;-1:-1:-1;;;;;11341:2310:81;;;;;;;;;;;;-1:-1:-1;;11341:2310:81;;;;;;3901:31:23;11341:2310:81;;;;;:::i;:::-;;;-1:-1:-1;11341:2310:81;-1:-1:-1;;;;;;;;;;;11341:2310:81;;;-1:-1:-1;11341:2310:81;;;;;;;;;;;;;;;;;3901:31:23;11341:2310:81;;;;;;;;;;;;;;;;-1:-1:-1;;11341:2310:81;;;;;;11565:45;-1:-1:-1;;;;;11341:2310:81;;;;;;;;;;;;-1:-1:-1;;11341:2310:81;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;11341:2310:81;;;;-1:-1:-1;11341:2310:81;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;416:25:75;;;;477:31;416:25;;:::i;:::-;11341:2310:81;;;;;;;;;;477:31:75;;11341:2310:81;;;;;;;;;;;:::i;:::-;477:31:75;11341:2310:81;;477:31:75;;;;;;:::i;:::-;518:79;;;11341:2310:81;518:79:75;;11341:2310:81;;;;;;-1:-1:-1;;11341:2310:81;;;;;;;;;;;;;;;;;-1:-1:-1;;11341:2310:81;;;;;;;-1:-1:-1;;;;;404:28:69;11341:2310:81;;;;;;;;;;-1:-1:-1;;11341:2310:81;;;;;;1439:41:76;-1:-1:-1;;;;;11341:2310:81;;;;;;;;;;;;-1:-1:-1;;11341:2310:81;;;;;;-1:-1:-1;11341:2310:81;2009:67:76;11341:2310:81;;;;-1:-1:-1;11341:2310:81;;;;;;;;;;;;;;-1:-1:-1;;11341:2310:81;;;;5767:26:23;11341:2310:81;;;;;;;:::i;:::-;;-1:-1:-1;11341:2310:81;-1:-1:-1;;;;;;;;;;;11341:2310:81;;3202:4:23;4919:24;11341:2310:81;-1:-1:-1;11341:2310:81;4919:24:23;11341:2310:81;3202:4:23;:::i;:::-;5767:26;:::i;11341:2310:81:-;;;;;;-1:-1:-1;;11341:2310:81;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;:::i;:::-;;;;;;-1:-1:-1;;11341:2310:81;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;-1:-1:-1;;;;;11341:2310:81;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;-1:-1:-1;;11341:2310:81;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;-1:-1:-1;;;;;11341:2310:81;;;;;;;;;;;;:::i;:::-;3217:103:28;;:::i;:::-;-1:-1:-1;11341:2310:81;;;5246:21:76;;:13;;-1:-1:-1;;;;;11341:2310:81;5246:13:76;11341:2310:81;;-1:-1:-1;;;;;11341:2310:81;;;5246:21:76;11341:2310:81;;-1:-1:-1;;;5246:23:76;;11341:2310:81;;;;;5246:23:76;;;;;;;-1:-1:-1;5246:23:76;;;11341:2310:81;-1:-1:-1;;;;;;11341:2310:81;;;5232:10:76;:37;5228:87;;5341:4;11341:2310:81;-1:-1:-1;;;;;11341:2310:81;;;;5355:469:76;;11341:2310:81;-1:-1:-1;;11341:2310:81;;;;;;;;;;;;;;;;5839:55:76;;11341:2310:81;;;;5839:55:76;;;;3282:1:28;1805;-1:-1:-1;;;;;;;;;;;11341:2310:81;3716:283:28;5355:469:76;11341:2310:81;;;;5435:94:76;;;;11341:2310:81;5435:94:76;;;;;;;;;;;;11341:2310:81;5435:94:76;;;:::i;:::-;;11341:2310:81;;5435:94:76;;;;;;:::i;:::-;11341:2310:81;5548:9:76;:51;5544:118;;-1:-1:-1;5839:55:76;5676:138;;;;5839:55;5676:138;;;1150:7;5676:138;;5355:469;;;5544:118;11341:2310:81;;-1:-1:-1;;;5626:21:76;;11341:2310:81;;5626:21:76;5228:87;11341:2310:81;;-1:-1:-1;;;5292:12:76;;11341:2310:81;;5292:12:76;5246:23;;;;;11341:2310:81;5246:23:76;11341:2310:81;5246:23:76;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;11341:2310:81;;;;;;-1:-1:-1;;11341:2310:81;;;;;;;;-1:-1:-1;;;;;11341:2310:81;;;;;;;;;;;;;;-1:-1:-1;;11341:2310:81;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;-1:-1:-1;;11341:2310:81;;;;;;;1150:7:76;11341:2310:81;;;;;;;;;-1:-1:-1;;11341:2310:81;;;;;;;2700:1:76;11341:2310:81;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;11341:2310:81;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;;;;11341:2310:81;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;12814:835::-;11341:2310;;-1:-1:-1;;;13031:99:81;;-1:-1:-1;;;;;11341:2310:81;;;13031:99;;;11341:2310;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;11341:2310:81;;;13050:20;11341:2310;;13031:99;;;;;;;;;;;12814:835;-1:-1:-1;11341:2310:81;;-1:-1:-1;;;13224:32:81;;;11341:2310;13031:99;11341:2310;;;;13224:32;;;;;;;13184:84;13224:32;13031:99;13224:32;;;;;;;12814:835;-1:-1:-1;11341:2310:81;;-1:-1:-1;;;13184:84:81;;-1:-1:-1;;;;;11341:2310:81;;;13031:99;13184:84;;11341:2310;;;;;;;;;;;;;-1:-1:-1;11341:2310:81;;;;;;;;;13184:84;;13195:11;;11341:2310;13184:84;;;;;;;13031:99;13184:84;;;12814:835;13312:50;;;;;:::i;:::-;11341:2310;;;13377:21;;;:52;;;12814:835;13377:85;;;;12814:835;13373:270;;12814:835;;;:::o;13373:270::-;13485:147;11341:2310;;;;13485:147;11341:2310;;;;:::i;:::-;;;;13224:32;13513:105;;11341:2310;;13513:105;;11341:2310;;;13485:147;;;13224:32;13485:147;;;:::i;13377:85::-;11341:2310;;;13433:29;;13377:85;;:52;11341:2310;;;13402:27;;13377:52;;13184:84;13312:50;13184:84;;;;;;13031:99;13184:84;;;;;;:::i;:::-;;;;;:::i;:::-;;;;13224:32;;;;;;;;;;;;;;:::i;:::-;;;;13031:99;;;;;;;;;;;;;;:::i;:::-;;;;;1827:195:80;;1955:60;1827:195;;-1:-1:-1;11341:2310:81;1955:13:80;11341:2310:81;;;-1:-1:-1;11341:2310:81;1955:60:80;:::i;11341:2310:81:-;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;-1:-1:-1;11341:2310:81;;;;:::o;:::-;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;:::i;12249:559::-;;;-1:-1:-1;12383:12:81;11341:2310;;;;;12529:149;;12573:64;;;;12529:149;;;;;;;11341:2310;;;;;;;12529:149;;;;;:::i;:::-;11341:2310;;716:88:82;;11341:2310:81;716:88:82;;;;;;;;;783:4;12529:149:81;716:88:82;;11341:2310:81;;;;;;;;;;;:::i;:::-;716:88:82;11341:2310:81;716:88:82;11341:2310:81;;716:88:82;;;;;;;;:::i;:::-;698:107;;;;;857:45;698:107;;:::i;:::-;11341:2310:81;;;;857:45:82;;;;;;:::i;:::-;916:8;;912:175;;11341:2310:81;;;12437:293;11341:2310;;12437:293;;;;;;:::i;:::-;12741:61;;;;12249:559;;;:::o;12741:61::-;12774:17;11341:2310;;;;12774:17;11341:2310;;12774:17;;;;;11341:2310;;;;;;;;;;;;12774:17;;;;;;;;;:::i;912:175:82:-;11341:2310:81;;;;944:22:82;;;940:36;;990:87;;11341:2310:81;;;;;;;:::i;:::-;;;;;;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;;;;11341:2310:81;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::o;:::-;-1:-1:-1;;;;;11341:2310:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;2764:920:76:-;;2978:48;2764:920;;;;2978:48;;;;:::i;:::-;3036:36;;;11341:2310:81;;:::i;:::-;;;;3086:20:76;3082:107;;2764:920;3216:11;;;;:193;;;;;2764:920;3216:394;;;;2764:920;3199:455;;;;;;2764:920;:::o;3199:455::-;3635:8;-1:-1:-1;3635:8:76;:::o;3216:394::-;3553:39;;;;;3430:180;3553:39;;;11341:2310:81;;;;;;;;;;3430:180:76;;467:2:88;11341:2310:81;3430:180:76;;;;;:::i;:::-;;11341:2310:81;3444:31:76;-1:-1:-1;;;;;11341:2310:81;3430:180:76;;;;;;;-1:-1:-1;3430:180:76;;;3216:394;3429:181;;3216:394;;;;;;3430:180;;;;3553:39;3430:180;3553:39;3430:180;;;;;;;:::i;:::-;;;;3216:193;-1:-1:-1;11341:2310:81;;;-1:-1:-1;;;;;;11341:2310:81;3248:161:76;3354:37;;;11341:2310:81;3248:161:76;11341:2310:81;;;;;;;;;;3248:161:76;;;;;;;:::i;:::-;;11341:2310:81;3262:29:76;-1:-1:-1;;;;;11341:2310:81;3248:161:76;;;;;;;-1:-1:-1;3248:161:76;;;3216:193;3247:162;;3216:193;;;3248:161;;;;;;;;;;;;;;:::i;:::-;;;;3082:107;3139:39;;;;;;;;;;;;;:::i;:::-;3082:107;;;;;11341:2310:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;8889:1:86;11341:2310:81;;;;;;;:::o;:::-;;:::i;3740:389:76:-;3918:5;11341:2310:81;;;-1:-1:-1;;;3853:71:76;;;-1:-1:-1;;;;;11341:2310:81;;;3853:71:76;;;11341:2310:81;;;;;;;;3740:389:76;;11341:2310:81;3853:71:76;;11341:2310:81;;3853:71:76;11341:2310:81;;;3867:29:76;11341:2310:81;;3853:71:76;;;;;;;3918:5;3853:71;;;3740:389;3852:72;;11341:2310:81;;;3852:181:76;;3740:389;3835:242;;;;;;4094:28;;;:::i;3835:242::-;4058:8;;3918:5;4058:8;:::o;3852:181::-;11341:2310:81;;3945:88:76;;;-1:-1:-1;;;;;11341:2310:81;;3853:71:76;3945:88;;11341:2310:81;467:2:88;11341:2310:81;;;;;;;;-1:-1:-1;11341:2310:81;;;;;;;;3959:31:76;11341:2310:81;3945:88:76;;;;;;;3918:5;3945:88;;;3852:181;3944:89;;;3852:181;;;;;3945:88;;;;;;-1:-1:-1;3945:88:76;;;;;;:::i;:::-;;;;;3853:71;;;;;;;;;;;;;;:::i;:::-;;;;4148:103:23;966:10:27;-1:-1:-1;11341:2310:81;;;;;;;;;885:35:80;;11341:2310:81;;3901:31:23;11341:2310:81;;4468:23:23;4464:108;;4148:103;:::o;:::-;-1:-1:-1;11341:2310:81;;;-1:-1:-1;;;;;;;;;;;11341:2310:81;;;;;;;;966:10:27;11341:2310:81;;;;;;;;;3901:31:23;11341:2310:81;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;11341:2310:81;;-1:-1:-1;11341:2310:81;;;-1:-1:-1;11341:2310:81;:::o;:::-;;:::i;:::-;;;;;-1:-1:-1;;;11341:2310:81;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;11341:2310:81;;;;;;;;:::o;6246:584:86:-;;;;;6360:12;;;11341:2310:81;;;6360:24:86;;6356:75;;6246:584;6474:30;;;;;:::i;:::-;11341:2310:81;;;;;;6578:12:86;;;;:::i;:::-;6604:24;;;;6246:584;-1:-1:-1;6600:188:86;;;-1:-1:-1;;;;;11341:2310:81;;;;;;;6644:21:86;;;:29;:21;;:::i;:29::-;6798:25;6246:584;:::o;6600:188::-;6753:24;;11341:2310:81;;8167:38:60;;-1:-1:-1;;;;;11341:2310:81;;;;;8167:38:60;:::i;:::-;6753:24:86;;;:::i;6604:::-;11341:2310:81;;;;;;6614:14:86;;-1:-1:-1;6604:24:86;;;6356:75;-1:-1:-1;;;11341:2310:81;;;;;;6360:12:86;11341:2310:81;;;;;;;:::i;:::-;;;;;;;;;;;;;;6356:75:86;;;11341:2310:81;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::o;8406:869:86:-;;;11341:2310:81;;8620:15:86;8578:11;8645:18;8678:7;8684:1;8678:7;;8674:241;;8406:869;8939:60;;;;;:::i;:::-;9014:8;;;9010:62;;9252:15;9259:7;11341:2310:81;9219:31:86;11341:2310:81;9130:48:86;9170:7;;;:::i;:::-;9130:48;13267:109;;;;;;13089:293;;9130:48;11341:2310:81;:::i;:::-;;9176:1:86;11341:2310:81;9232:17:86;11341:2310:81;;;;;;;;9232:17:86;;11341:2310:81;-1:-1:-1;;;;;11341:2310:81;;;;9219:12:86;;:31;:::i;:::-;11341:2310:81;;;;;;;;;9259:7:86;;:::i;:::-;11341:2310:81;;;;9252:15:86;9176:1;;9188:80;;8406:869::o;9010:62::-;8578:11;;-1:-1:-1;8578:11:86;;-1:-1:-1;8578:11:86;;;;9038:23::o;8674:241::-;8721:14;;;;;:::i;:::-;11341:2310:81;;;;;;;8939:60:86;13267:109;;8578:11;13267:109;8753:55;8759:49;13267:109;;8578:11;13267:109;;11341:2310:81;;;;;;8759:49:86;11341:2310:81;;;;8753:55:86;11341:2310:81;;;8753:55:86;13267:109;;;8828:10;8749:156;8674:241;;8749:156;8883:7;;;;;;:::i;:::-;8749:156;8674:241;;3326:384:28;-1:-1:-1;;;;;;;;;;;1847:1:28;11341:2310:81;;3526:20:28;3522:88;;1847:1;11341:2310:81;;3326:384:28:o;3522:88::-;11341:2310:81;;-1:-1:-1;;;3569:30:28;;;;;3701:308:80;;11341:2310:81;-1:-1:-1;11341:2310:81;3832:13:80;11341:2310:81;;;-1:-1:-1;11341:2310:81;11124:30:86;;;;:::i;:::-;11173;;;-1:-1:-1;11173:30:86;;;;11182:17;;-1:-1:-1;;;;;11341:2310:81;;11182:12:86;;:17;:::i;:::-;11341:2310:81;;;3832:13:80;11341:2310:81;;11173:30:86;3890::80;;;11173::86;3886:117:80;;;;3701:308;;:::o;3886:117::-;3936:56;11341:2310:81;-1:-1:-1;11341:2310:81;3832:13:80;11341:2310:81;;;-1:-1:-1;11341:2310:81;819:34:62;837:15;819:34;:::i;3936:56:80:-;3701:308;;:::o;3890:30::-;3900:20;;-1:-1:-1;3890:30:80;;;;11173::86;;;-1:-1:-1;11173:30:86;;7270:387:23;-1:-1:-1;;;;;11341:2310:81;;-1:-1:-1;11341:2310:81;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2887:71:23;11341:2310:81;;;;-1:-1:-1;11341:2310:81;;;;;;;;;;;-1:-1:-1;;;;;11341:2310:81;;;;;;;;;;-1:-1:-1;;11341:2310:81;7509:4:23;11341:2310:81;;;966:10:27;;-1:-1:-1;;;;;11341:2310:81;-1:-1:-1;7532:40:23;-1:-1:-1;;7532:40:23;7509:4;7586:11;:::o;7270:387::-;-1:-1:-1;;;;;11341:2310:81;;-1:-1:-1;11341:2310:81;;;;;;;;;1356:26:76;;-1:-1:-1;;;;;;;;;;;2887:71:23;11341:2310:81;;3901:31:23;11341:2310:81;;;;-1:-1:-1;11341:2310:81;;;;;;;;;;;-1:-1:-1;;;;;11341:2310:81;;;;;;;;;;-1:-1:-1;;11341:2310:81;7509:4:23;11341:2310:81;;;966:10:27;;-1:-1:-1;;;;;11341:2310:81;;7532:40:23;-1:-1:-1;;7532:40:23;7509:4;7586:11;:::o;7432:219::-;7628:12;;;-1:-1:-1;7628:12:23;:::o;7270:387::-;-1:-1:-1;;;;;11341:2310:81;;-1:-1:-1;11341:2310:81;;;;;;;;;885:35:80;;-1:-1:-1;;;;;;;;;;;2887:71:23;11341:2310:81;;3901:31:23;11341:2310:81;7270:387:23;-1:-1:-1;11341:2310:81;;;-1:-1:-1;;;;;;;;;;;11341:2310:81;;;;;;;;-1:-1:-1;;;;;11341:2310:81;;;;;;;;;;;;3901:31:23;11341:2310:81;7892:388:23;-1:-1:-1;11341:2310:81;;;-1:-1:-1;;;;;;;;;;;11341:2310:81;;;;;;;;-1:-1:-1;;;;;11341:2310:81;;;;;;;;;;;;;;;;-1:-1:-1;11341:2310:81;;;;;;;;;;;-1:-1:-1;;;;;11341:2310:81;;;;;;;;;;-1:-1:-1;;11341:2310:81;;;966:10:27;;-1:-1:-1;;;;;11341:2310:81;;8155:40:23;-1:-1:-1;;8155:40:23;11341:2310:81;8209:11:23;:::o;10580:184:86:-;11341:2310:81;;10303:8:60;;;:63;-1:-1:-1;10303:63:60;-1:-1:-1;;;;;11341:2310:81;;10726:7:86;11341:2310:81;;10736:12:86;:17;:12;;:17;:::i;10303:63:60:-;11341:2310:81;;;;;;;;;;13267:109:86;-1:-1:-1;13267:109:86;;-1:-1:-1;13267:109:86;;;11341:2310:81;;;10303:63:60;;11341:2310:81;;;;;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;11341:2310:81;;;;;;;;:::i;5907:716:76:-;6030:34;5907:716;6030:34;;;;:::i;:::-;11341:2310:81;;-1:-1:-1;;;6080:41:76;;-1:-1:-1;;;;;11341:2310:81;;;6080:41:76;;;11341:2310:81;;;;;6080:41:76;11341:2310:81;;;6090:13:76;11341:2310:81;;6080:41:76;;;;;;;-1:-1:-1;6080:41:76;;;5907:716;6079:42;;6075:90;;6266:27;11341:2310:81;2540:111:28;6210:14:76;11341:2310:81;2540:111:28;;;:::i;:::-;11341:2310:81;;;;;;-1:-1:-1;;;;;11341:2310:81;;-1:-1:-1;11341:2310:81;;;-1:-1:-1;11341:2310:81;;6210:14:76;6266:27;:::i;:::-;6080:41;6311:15;;11341:2310:81;;;;-1:-1:-1;;;;;;11341:2310:81;-1:-1:-1;;;;;11341:2310:81;;;;;;;;;;;-1:-1:-1;;;;;11341:2310:81;;;;6337:143:76;;5907:716;-1:-1:-1;6493:28:76;11341:2310:81;-1:-1:-1;;;;;11341:2310:81;;;;;;;6489:128:76;;5907:716;:::o;6489:128::-;6551:55;;;:::i;:::-;;5907:716::o;6337:143::-;6404:65;;;:::i;:::-;;6337:143;;;6075:90;11341:2310:81;;-1:-1:-1;;;6144:10:76;;6080:41;;6144:10;6080:41;;;;;;;;;;;;;;:::i;:::-;;;;11341:2310:81;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::o;7558:604:86:-;;11341:2310:81;;7686:17:86;7682:83;;11341:2310:81;7789:27:86;11341:2310:81;7789:27:86;11341:2310:81;;7789:27:86;;;;;;:::i;:::-;7860:14;;;;;:::i;:::-;11341:2310:81;;;;;;;;;;;;;;;;7888:22:86;;;7884:77;;7975:21;-1:-1:-1;7975:84:86;;;;7558:604;7971:139;;;;8127:28;;;;:::i;7971:139::-;8082:17;;7789:27;8082:17;11341:2310:81;8075:24:86;:::o;7975:84::-;11341:2310:81;;;8009:16:86;11341:2310:81;;8009:16:86;:::i;:::-;11341:2310:81;;;8001:24:86;:57;;;;;7975:84;;;;;;;8001:57;8029:29;8038:8;;;8029:18;8038:8;8029:23;8038:8;;:::i;:::-;8029:18;;:::i;:::-;11341:2310:81;;;;;8029:29:86;;8001:57;;;;7884:77;7933:17;;;;;7789:27;7933:17;11341:2310:81;7926:24:86;:::o;7682:83::-;7726:28;;;;:::i;11341:2310:81:-;;;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;11341:2310:81;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;;;;11341:2310:81;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;:::i;2737:699:80:-;;;;;11341:2310:81;;:::i;:::-;;;;2978:16:80;2974:92;;2737:699;-1:-1:-1;;3080:8:80;11341:2310:81;-1:-1:-1;;;;;11341:2310:81;;;;;3080:21:80;3076:85;;-1:-1:-1;11341:2310:81;3218:67:80;;11341:2310:81;;3257:27:80;;3218;;:13;;-1:-1:-1;;;;;11341:2310:81;3218:13:80;11341:2310:81;3218:27:80;3257;;;;11341:2310:81;;;;;;;;;;;3218:67:80;;;3080:8;3218:67;;;:::i;:::-;;;;;;;;;;3192:192;3218:67;-1:-1:-1;3218:67:80;;;2737:699;3341:28;3303:67;3341:28;;11341:2310:81;3341:28:80;;;3303:67;;:::i;:::-;3192:192;;:::i;:::-;3398:21;;2737:699;:::o;3218:67::-;3303;3218;;;;3257:27;3218:67;3257:27;3218:67;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;3076:85;-1:-1:-1;;3128:21:80;;-1:-1:-1;;3117:33:80:o;2974:92::-;3024:31;;;;;;;;;;;;;:::i;:::-;2974:92;;;;;3442:253;3552:8;11341:2310:81;-1:-1:-1;;;;;11341:2310:81;;;;;;;3552:21:80;3548:60;;3634:27;3552:8;11341:2310:81;-1:-1:-1;11341:2310:81;;;;;;;;;;;3634:27:80;;;;;;;;;3625:63;3634:27;-1:-1:-1;3634:27:80;;;3442:253;2193:25;;:34;:25;11341:2310:81;;2193:13:80;11341:2310:81;;;;;;;2193:25:80;:34;:::i;3634:27::-;2193:34;3634:27;;;;2193:25;3634:27;;;;;;;;;;;:::i;:::-;;;;;;14291:213:58;11341:2310:81;14369:24:58;;;;14365:103;;11341:2310:81;14291:213:58;:::o;14365:103::-;11341:2310:81;;;;14416:41:58;;;;;;14447:2;14416:41;;;11341:2310:81;;;;;14416:41:58;10552:388:60;11341:2310:81;;10728:8:60;;;10752:20;;10690:17;10752:20;10690:17;10752:20;10690:17;10752:20;:::o;10724:210::-;11341:2310:81;;;;;;;;;;;13267:109:86;10690:17:60;13267:109:86;;10690:17:60;13267:109:86;;;11341:2310:81;:::i;:::-;;;;;;;13267:109:86;11341:2310:81;;;;;10911:11:60;;11341:2310:81;;10886:37:60;10870:1;10886:37;;;:::o;8587:1642:57:-;8658:6;;8654:45;;9401:7;10201:10;10142:26;10093;10044;9995;9946;9897;9848;11341:2310:81;10189:23:57;9401:7;8663:1;11341:2310:81;;;;10826:16:57;10822:99;;8587:1642;11341:2310:81;;;;10938:15:57;10934:96;;8587:1642;11341:2310:81;;;;11047:15:57;11043:96;;8587:1642;11341:2310:81;;;;11156:15:57;11152:96;;8587:1642;11341:2310:81;;;;11265:14:57;11261:93;;8587:1642;11341:2310:81;;;;11371:14:57;11367:93;;8587:1642;11341:2310:81;;;;11477:14:57;11473:93;;8587:1642;11341:2310:81;;;11579:64:57;;8587:1642;11341:2310:81;;;9858:10:57;;;;:::i;:::-;11341:2310:81;;;;;9848:26:57;9907:10;;;;:::i;9897:26::-;9956:10;;;;:::i;9946:26::-;10005:10;;;;:::i;9995:26::-;10054:10;;;;:::i;10044:26::-;10103:10;;;;:::i;10093:26::-;10152:10;;;;:::i;10142:26::-;10201:10;;;:::i;11579:64::-;11341:2310:81;;11579:64:57;;11473:93;11341:2310:81;11511:11:57;;11341:2310:81;;11473:93:57;;;;11367;11341:2310:81;11405:11:57;;11341:2310:81;;11367:93:57;;;;11261;11341:2310:81;11299:11:57;;11341:2310:81;;11261:93:57;;;;11152:96;11341:2310:81;11191:12:57;;11341:2310:81;;11152:96:57;;;;11043;11341:2310:81;11082:12:57;;11341:2310:81;;11043:96:57;;;;10934;11341:2310:81;10973:12:57;;11341:2310:81;;10934:96:57;;;;10822:99;10862:13;;;11341:2310:81;10822:99:57;;;;12497:447:86;;12694:10;;;;;;12926:11;;;12497:447;:::o;12687:230::-;12734:23;;;;;;;:::i;:::-;13267:109;;-1:-1:-1;13267:109:86;11341:2310:81;13267:109:86;;;-1:-1:-1;13267:109:86;;11341:2310:81;;;;;-1:-1:-1;12771:136:86;11341:2310:81;;;12830:10:86;12771:136;;12687:230;;;;12771:136;11341:2310:81;;12891:1:86;11341:2310:81;;;;;;12771:136:86;11341:2310:81;;:::i;6893:76:25:-;;;:::i;:::-;;;:::i;:::-;1805:1:28;-1:-1:-1;;;;;;;;;;;11341:2310:81;6893:76:25:o;11341:2310:81:-;;;;;;;:::i;:::-;-1:-1:-1;11341:2310:81;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;-1:-1:-1;;;;;11341:2310:81;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;11341:2310:81;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::o;4015:918:80:-;11341:2310:81;;:::i;:::-;;4163:30:80;11341:2310:81;;4163:30:80;;;;;;;;;;;:::i;:::-;4208:17;;11341:2310:81;-1:-1:-1;;;;;11341:2310:81;;4208:17:80;11341:2310:81;;4208:54:80;;:103;;4015:918;4204:161;;4418:15;;;;11341:2310:81;;;;-1:-1:-1;;;4380:54:80;;-1:-1:-1;;;;;11341:2310:81;;;4380:54:80;;;;11341:2310:81;;;;4380:54:80;4418:15;;;;11341:2310:81;;;;;;;;4390:17:80;11341:2310:81;4380:54:80;;;;;;;4208:17;4380:54;;;4015:918;4379:55;;4375:106;;4496:9;;4511:33;;;4208:17;4553:3;4511:33;;11341:2310:81;;4507:44:80;;;;;4576:36;;;:50;:36;;:::i;:::-;11341:2310:81;-1:-1:-1;;;;;11341:2310:81;;;4576:50:80;;4572:119;;4709:73;4710:72;4745:36;;:33;;;:36;:::i;:::-;4710:72;:::i;:::-;4709:73;;11341:2310:81;4709:73:80;4705:140;;11341:2310:81;;4496:9:80;;4705:140;11341:2310:81;;-1:-1:-1;;;4809:21:80;;11341:2310:81;;4809:21:80;4572:119;11341:2310:81;;-1:-1:-1;;;4653:23:80;;11341:2310:81;;4653:23:80;4507:44;-1:-1:-1;;11341:2310:81;;4380:54:80;11341:2310:81;;-1:-1:-1;;;;;;11341:2310:81;-1:-1:-1;;;;;11341:2310:81;;;;;;;;;;-1:-1:-1;4865:26:80;;-1:-1:-1;;11341:2310:81;4865:26:80;4909:17;4015:918;:::o;4375:106::-;4418:15;11341:2310:81;-1:-1:-1;;;4457:13:80;;4380:54;;4457:13;4380:54;;;;;;;;;;;;;;:::i;:::-;;;;4204:161;11341:2310:81;;-1:-1:-1;;;4334:20:80;;;;;4208:103;4266:33;;;;;11341:2310:81;4266:45:80;4208:103;;6999:207:86;;11341:2310:81;;9594:15:60;-1:-1:-1;9619:18:60;9652:7;9658:1;9652:7;;9648:234;;6999:207:86;9906:53:60;;;;;:::i;:::-;9977:8;;;:63;-1:-1:-1;9977:63:60;;-1:-1:-1;;;;;11341:2310:81;;7168:7:86;11341:2310:81;;;7178:12:86;;:17;:12;;:17;:::i;9977:63:60:-;9992:41;10025:7;9992:48;10025:7;;:::i;:::-;9992:41;13267:109:86;;;;;;13089:293;;9992:41:60;11341:2310:81;;;;;9992:48:60;9977:63;;;9648:234;9695:14;;;;;:::i;:::-;11341:2310:81;;;;;;;9906:53:60;13267:109:86;;-1:-1:-1;13267:109:86;11341:2310:81;13267:109:86;;;-1:-1:-1;13267:109:86;;11341:2310:81;;;;;9727:48:60;9723:149;11341:2310:81;;;9795:10:60;9723:149;9648:234;;9723:149;9850:7;;;;;;:::i;:::-;9723:149;9648:234;;11341:2310:81;;;;;;;:::i;:::-;-1:-1:-1;11341:2310:81;;;;;;;:::o;11486:272:86:-;;11341:2310:81;11308:22:60;11718:31:86;11486:272;11341:2310:81;;:::i;:::-;;;;:::i;:::-;;11308:22:60;;:::i;:::-;11341:2310:81;;:::i;:::-;;11718:12:86;11341:2310:81;;;;;11731:17:86;11341:2310:81;;;;;11731:17:86;;11341:2310:81;;11718:12:86;;:31;:::i;:::-;11341:2310:81;;;;;;;;;:::i;:::-;;;;;;11731:17:86;11672:79;;11341:2310:81;11486:272:86;:::o;2557:104:57:-;;2641:5;;;;;;:13;2557:104;:::o;2641:13::-;;;2557:104;:::o;11341:2310:81:-;;;-1:-1:-1;;;11341:2310:81;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;11341:2310:81;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;11513:870:60;11341:2310:81;;11513:870:60;;;11341:2310:81;11513:870:60;11672:7;;;;11341:2310:81;11775:28:60;11795:7;;;:::i;11341:2310:81:-;;;;;;;;;;;;;;;;11877:15:60;-1:-1:-1;11873:91:60;;11341:2310:81;;12233:11:60;11341:2310:81;;;12027:16:60;11341:2310:81;;;;;;;12027:16:60;;;;12083:7;12063:43;12083:7;;12063:28;12083:7;;:::i;:::-;12063:28;13267:109:86;;;;;;13089:293;;12063:28:60;11341:2310:81;;;;;;;;;;;;;;;;;12063:43:60;12233:11;11341:2310:81;-1:-1:-1;;;;;11341:2310:81;;;12023:189:60;11341:2310:81;;;12145:52:60;11341:2310:81;12155:41:60;11341:2310:81;;:::i;:::-;;;;;;;;12155:41:60;-1:-1:-1;;;;;11341:2310:81;;12155:41:60;;;11341:2310:81;12145:52:60;:::i;:::-;12023:189;;11873:91;11341:2310:81;;-1:-1:-1;;;11919:30:60;;;;;11668:709;12283:52;11341:2310:81;;12293:41:60;11341:2310:81;;:::i;12293:41:60:-;-1:-1:-1;;;;;11341:2310:81;;12293:41:60;;;11341:2310:81;12145:52:60;:::i;12283:::-;11678:1;12349:17;;:::o;2774:153:57:-;;2900:5;;;2910;;11341:2310:81;;;;;;;;;2774:153:57;:::o;7084:141:25:-;11341:2310:81;-1:-1:-1;;;;;;;;;;;11341:2310:81;;;;7150:18:25;7146:73;;7084:141::o;7146:73::-;11341:2310:81;;-1:-1:-1;;;7191:17:25;;;;;12736:433:60;;12919:10;;;;;;13151:11;;;12736:433;:::o;12912:230::-;12959:23;;;;;;;:::i;:::-;13267:109:86;;-1:-1:-1;13267:109:86;11341:2310:81;13267:109:86;;;-1:-1:-1;13267:109:86;;11341:2310:81;;;;;-1:-1:-1;12996:136:60;11341:2310:81;;;13055:10:60;12996:136;;12912:230;;;;12996:136;11341:2310:81;;13116:1:60;11341:2310:81;;;;;;12996:136:60;11341:2310:81;;:::i","linkReferences":{},"immutableReferences":{"57808":[{"start":1956,"length":32}],"57811":[{"start":3948,"length":32}],"58762":[{"start":1429,"length":32},{"start":4005,"length":32}],"58765":[{"start":959,"length":32},{"start":8857,"length":32}],"58768":[{"start":1027,"length":32},{"start":6514,"length":32},{"start":6817,"length":32}],"58771":[{"start":1299,"length":32},{"start":6361,"length":32},{"start":6943,"length":32}],"60687":[{"start":3534,"length":32},{"start":11024,"length":32}],"61955":[{"start":3369,"length":32},{"start":5274,"length":32}],"61957":[{"start":2830,"length":32},{"start":5435,"length":32}],"61959":[{"start":3696,"length":32}],"62368":[{"start":1164,"length":32}]}},"methodIdentifiers":{"BASE_DELEGATOR_HINTS()":"79d89614","DEFAULT_ADMIN_ROLE()":"a217fddf","FACTORY()":"2dd31000","HOOK_GAS_LIMIT()":"ff54740f","HOOK_RESERVE()":"557cab44","HOOK_SET_ROLE()":"6679191e","NETWORK_LIMIT_SET_ROLE()":"7d24bb27","NETWORK_REGISTRY()":"c0cd7c3e","OPERATOR_NETWORK_OPT_IN_SERVICE()":"1a80e500","OPERATOR_REGISTRY()":"83ce0322","OPERATOR_VAULT_OPT_IN_SERVICE()":"128e5d82","OPT_IN_SERVICE_HINTS()":"9b656b22","TYPE()":"bb24fe8a","VAULT_FACTORY()":"103f2907","VAULT_HINTS()":"45e78fcb","VERSION()":"ffa1ad74","getRoleAdmin(bytes32)":"248a9ca3","grantRole(bytes32,address)":"2f2ff15d","hasRole(bytes32,address)":"91d14854","hook()":"7f5a7c7b","initialize(bytes)":"439fab91","maxNetworkLimit(bytes32)":"d15b740e","networkLimit(bytes32)":"3eb22c0f","networkLimitAt(bytes32,uint48,bytes)":"5d32a1c9","networkLimitHint(address,bytes32,uint48)":"da749d2b","networkLimitHintInternal(bytes32,uint48)":"197aa7ea","onSlash(bytes32,address,uint256,uint48,bytes)":"e49561ee","operator()":"570ca735","renounceRole(bytes32,address)":"36568abe","revokeRole(bytes32,address)":"d547741f","setHook(address)":"3dfd3873","setMaxNetworkLimit(uint96,uint256)":"23f752d5","setNetworkLimit(bytes32,uint256)":"02145348","stake(bytes32,address)":"fd4d447c","stakeAt(bytes32,address,uint48,bytes)":"e02f6937","stakeHints(address,bytes32,address,uint48)":"25dc9708","staticDelegateCall(address,bytes)":"9f86fd85","supportsInterface(bytes4)":"01ffc9a7","vault()":"fbfa77cf"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"baseDelegatorHints\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"vaultHints\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"optInServiceHints\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"AccessControlBadConfirmation\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"neededRole\",\"type\":\"bytes32\"}],\"name\":\"AccessControlUnauthorizedAccount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AlreadySet\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CheckpointUnorderedInsertion\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"DuplicateRoleHolder\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ExceedsMaxNetworkLimit\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ExternalCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientHookGas\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MissingRoleHolders\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotNetwork\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotOperator\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotSlasher\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotVault\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ReentrancyGuardReentrantCall\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"bits\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"SafeCastOverflowedUintDowncast\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ZeroAddressRoleHolder\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint48\",\"name\":\"captureTimestamp\",\"type\":\"uint48\"}],\"name\":\"OnSlash\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"previousAdminRole\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"newAdminRole\",\"type\":\"bytes32\"}],\"name\":\"RoleAdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleRevoked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"hook\",\"type\":\"address\"}],\"name\":\"SetHook\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"SetMaxNetworkLimit\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"SetNetworkLimit\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"BASE_DELEGATOR_HINTS\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"DEFAULT_ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"FACTORY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"HOOK_GAS_LIMIT\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"HOOK_RESERVE\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"HOOK_SET_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"NETWORK_LIMIT_SET_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"NETWORK_REGISTRY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"OPERATOR_NETWORK_OPT_IN_SERVICE\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"OPERATOR_REGISTRY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"OPERATOR_VAULT_OPT_IN_SERVICE\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"OPT_IN_SERVICE_HINTS\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"TYPE\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"VAULT_FACTORY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"VAULT_HINTS\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"VERSION\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleAdmin\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"grantRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"hook\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"}],\"name\":\"maxNetworkLimit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"}],\"name\":\"networkLimit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hint\",\"type\":\"bytes\"}],\"name\":\"networkLimitAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"}],\"name\":\"networkLimitHint\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"}],\"name\":\"networkLimitHintInternal\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"exists\",\"type\":\"bool\"},{\"internalType\":\"uint32\",\"name\":\"hint\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint48\",\"name\":\"captureTimestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"onSlash\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"operator\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"callerConfirmation\",\"type\":\"address\"}],\"name\":\"renounceRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"hook_\",\"type\":\"address\"}],\"name\":\"setHook\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint96\",\"name\":\"identifier\",\"type\":\"uint96\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"setMaxNetworkLimit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"setNetworkLimit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"stake\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hints\",\"type\":\"bytes\"}],\"name\":\"stakeAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"}],\"name\":\"stakeHints\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"staticDelegateCall\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"vault\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"AccessControlBadConfirmation()\":[{\"details\":\"The caller of a function is not the expected one. NOTE: Don't confuse with {AccessControlUnauthorizedAccount}.\"}],\"AccessControlUnauthorizedAccount(address,bytes32)\":[{\"details\":\"The `account` is missing a role.\"}],\"CheckpointUnorderedInsertion()\":[{\"details\":\"A value was attempted to be inserted on a past checkpoint.\"}],\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"ReentrancyGuardReentrantCall()\":[{\"details\":\"Unauthorized reentrant call.\"}],\"SafeCastOverflowedUintDowncast(uint8,uint256)\":[{\"details\":\"Value doesn't fit in an uint of `bits` size.\"}]},\"events\":{\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"OnSlash(bytes32,address,uint256,uint48)\":{\"params\":{\"amount\":\"amount of the collateral to be slashed\",\"captureTimestamp\":\"time point when the stake was captured\",\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"}},\"RoleAdminChanged(bytes32,bytes32,bytes32)\":{\"details\":\"Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole` `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite {RoleAdminChanged} not being emitted signaling this.\"},\"RoleGranted(bytes32,address,address)\":{\"details\":\"Emitted when `account` is granted `role`. `sender` is the account that originated the contract call, an admin role bearer except when using {AccessControl-_setupRole}.\"},\"RoleRevoked(bytes32,address,address)\":{\"details\":\"Emitted when `account` is revoked `role`. `sender` is the account that originated the contract call: - if using `revokeRole`, it is the admin role bearer - if using `renounceRole`, it is the role bearer (i.e. `account`)\"},\"SetHook(address)\":{\"params\":{\"hook\":\"address of the hook\"}},\"SetMaxNetworkLimit(bytes32,uint256)\":{\"params\":{\"amount\":\"new maximum subnetwork's limit (how much stake the subnetwork is ready to get)\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"}},\"SetNetworkLimit(bytes32,uint256)\":{\"params\":{\"amount\":\"new subnetwork's limit (how much stake the vault curator is ready to give to the subnetwork)\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"}}},\"kind\":\"dev\",\"methods\":{\"VERSION()\":{\"details\":\"Must return 1 for this one.\",\"returns\":{\"_0\":\"version of the delegator\"}},\"getRoleAdmin(bytes32)\":{\"details\":\"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}.\"},\"grantRole(bytes32,address)\":{\"details\":\"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event.\"},\"hasRole(bytes32,address)\":{\"details\":\"Returns `true` if `account` has been granted `role`.\"},\"initialize(bytes)\":{\"params\":{\"data\":\"some data to use\"}},\"networkLimit(bytes32)\":{\"params\":{\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"},\"returns\":{\"_0\":\"limit of the subnetwork\"}},\"networkLimitAt(bytes32,uint48,bytes)\":{\"params\":{\"hint\":\"hint for checkpoint index\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\",\"timestamp\":\"time point to get the subnetwork limit at\"},\"returns\":{\"_0\":\"limit of the subnetwork at the given timestamp\"}},\"onSlash(bytes32,address,uint256,uint48,bytes)\":{\"details\":\"Only the vault's slasher can call this function.\",\"params\":{\"amount\":\"amount of the collateral slashed\",\"captureTimestamp\":\"time point when the stake was captured\",\"data\":\"some additional data\",\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"}},\"renounceRole(bytes32,address)\":{\"details\":\"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `callerConfirmation`. May emit a {RoleRevoked} event.\"},\"revokeRole(bytes32,address)\":{\"details\":\"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event.\"},\"setHook(address)\":{\"details\":\"Only a HOOK_SET_ROLE holder can call this function. The hook can have arbitrary logic under certain functions, however, it doesn't affect the stake guarantees.\",\"params\":{\"hook\":\"address of the hook\"}},\"setMaxNetworkLimit(uint96,uint256)\":{\"details\":\"Only a network can call this function.\",\"params\":{\"amount\":\"new maximum subnetwork's limit\"}},\"setNetworkLimit(bytes32,uint256)\":{\"details\":\"Only a NETWORK_LIMIT_SET_ROLE holder can call this function.\",\"params\":{\"amount\":\"new limit of the subnetwork\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"}},\"stake(bytes32,address)\":{\"details\":\"Warning: this function is not safe to use for stake capturing, as it can change by the end of the block.\",\"params\":{\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"},\"returns\":{\"_0\":\"slashable stake until the end of the next epoch\"}},\"stakeAt(bytes32,address,uint48,bytes)\":{\"details\":\"Warning: it is not safe to use timestamp >= current one for the stake capturing, as it can change later.\",\"params\":{\"hints\":\"hints for the checkpoints' indexes\",\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\",\"timestamp\":\"time point to capture the stake at\"},\"returns\":{\"_0\":\"slashable stake at the given timestamp until the end of the consequent epoch\"}},\"staticDelegateCall(address,bytes)\":{\"details\":\"It allows to use this contract's storage on-chain.\",\"params\":{\"data\":\"data to make a delegatecall with\",\"target\":\"address of the contract to make a delegatecall to\"}},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"}},\"version\":1},\"userdoc\":{\"events\":{\"OnSlash(bytes32,address,uint256,uint48)\":{\"notice\":\"Emitted when a slash happens.\"},\"SetHook(address)\":{\"notice\":\"Emitted when a hook is set.\"},\"SetMaxNetworkLimit(bytes32,uint256)\":{\"notice\":\"Emitted when a subnetwork's maximum limit is set.\"},\"SetNetworkLimit(bytes32,uint256)\":{\"notice\":\"Emitted when a subnetwork's limit is set.\"}},\"kind\":\"user\",\"methods\":{\"FACTORY()\":{\"notice\":\"Get the factory's address.\"},\"HOOK_GAS_LIMIT()\":{\"notice\":\"Get a gas limit for the hook.\"},\"HOOK_RESERVE()\":{\"notice\":\"Get a reserve gas between the gas limit check and the hook's execution.\"},\"HOOK_SET_ROLE()\":{\"notice\":\"Get a hook setter's role.\"},\"NETWORK_LIMIT_SET_ROLE()\":{\"notice\":\"Get a subnetwork limit setter's role.\"},\"NETWORK_REGISTRY()\":{\"notice\":\"Get the network registry's address.\"},\"OPERATOR_NETWORK_OPT_IN_SERVICE()\":{\"notice\":\"Get the operator-network opt-in service's address.\"},\"OPERATOR_REGISTRY()\":{\"notice\":\"Get the operator registry's address.\"},\"OPERATOR_VAULT_OPT_IN_SERVICE()\":{\"notice\":\"Get the operator-vault opt-in service's address.\"},\"TYPE()\":{\"notice\":\"Get the entity's type.\"},\"VAULT_FACTORY()\":{\"notice\":\"Get the vault factory's address.\"},\"VERSION()\":{\"notice\":\"Get a version of the delegator (different versions mean different interfaces).\"},\"hook()\":{\"notice\":\"Get the hook's address.\"},\"initialize(bytes)\":{\"notice\":\"Initialize this entity contract by using a given data.\"},\"maxNetworkLimit(bytes32)\":{\"notice\":\"Get a particular subnetwork's maximum limit (meaning the subnetwork is not ready to get more as a stake).\"},\"networkLimit(bytes32)\":{\"notice\":\"Get a subnetwork's limit (how much stake the vault curator is ready to give to the subnetwork).\"},\"networkLimitAt(bytes32,uint48,bytes)\":{\"notice\":\"Get a subnetwork's limit at a given timestamp using a hint (how much stake the vault curator is ready to give to the subnetwork).\"},\"onSlash(bytes32,address,uint256,uint48,bytes)\":{\"notice\":\"Called when a slash happens.\"},\"operator()\":{\"notice\":\"Get an operator managing the vault's funds.\"},\"setHook(address)\":{\"notice\":\"Set a new hook.\"},\"setMaxNetworkLimit(uint96,uint256)\":{\"notice\":\"Set a maximum limit for a subnetwork (how much stake the subnetwork is ready to get). identifier identifier of the subnetwork\"},\"setNetworkLimit(bytes32,uint256)\":{\"notice\":\"Set a subnetwork's limit (how much stake the vault curator is ready to give to the subnetwork).\"},\"stake(bytes32,address)\":{\"notice\":\"Get a stake that a given subnetwork will be able to slash for a certain operator until the end of the next epoch (if no cross-slashing and no slashings by the subnetwork).\"},\"stakeAt(bytes32,address,uint48,bytes)\":{\"notice\":\"Get a stake that a given subnetwork could be able to slash for a certain operator at a given timestamp until the end of the consequent epoch using hints (if no cross-slashing and no slashings by the subnetwork).\"},\"staticDelegateCall(address,bytes)\":{\"notice\":\"Make a delegatecall from this contract to a given target contract with a particular data (always reverts with a return data).\"},\"vault()\":{\"notice\":\"Get the vault's address.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/contracts/hints/DelegatorHints.sol\":\"OperatorSpecificDelegatorHints\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol\":{\"keccak256\":\"0x6662ec4e5cefca03eeadd073e9469df8d2944bb2ee8ec8f7622c2c46aab5f225\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4d8544c6f8daa4d1bc215c6a72fe0acdb748664a105b0e5efc19295667521d45\",\"dweb:/ipfs/QmdGWqdnXT8S3RgCR6aV8XHZrsybieMQLLnug1NtpSjEXN\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0xc163fcf9bb10138631a9ba5564df1fa25db9adff73bd9ee868a8ae1858fe093a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9706d43a0124053d9880f6e31a59f31bc0a6a3dc1acd66ce0a16e1111658c5f6\",\"dweb:/ipfs/QmUFmfowzkRwGtDu36cXV9SPTBHJ3n7dG9xQiK5B28jTf2\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609\",\"dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9\",\"dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardUpgradeable.sol\":{\"keccak256\":\"0xb44e086e941292cdc7f440de51478493894ef0b1aeccb0c4047445919f667f74\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://942dad22fbdc1669f025540ba63aa3ccfad5f8458fc5d4525b31ebf272e7af45\",\"dweb:/ipfs/Qmdo4X2M82aM3AMoW2kf2jhYkSCyC4T1pHNd6obdsDFnAB\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol\":{\"keccak256\":\"0xdaba3f7c42c55b2896353f32bd27d4d5f8bae741b3b05d4c53f67abc4dc47ce8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1fa2e61141c602510bcd2cd936ed9561922ac8772a9b9c9a9db091a74e354a45\",\"dweb:/ipfs/QmcHQDDoEBwJmwUbzoVkytvJsBx3KVHYFFnDkvRGWh9Wmh\"]},\"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0xb6b36edd6a2999fd243ff226d6cbf84bd71af2432bbd0dfe19392996a1d9cb41\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1fd2f35495652e57e3f99bc6c510bc5f7dd398a176ea2e72d8ed730aebc6ca26\",\"dweb:/ipfs/QmTQV6X4gkikTib49cho5iDX3JvSQbdsoEChoDwrk3CbbH\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC1271.sol\":{\"keccak256\":\"0x85a45f3f10014a0f8be41157a32b6a5f905753ea64a4b64e29fc12b7deeecf39\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c3c74009ce36136b36c77c23935b8e4a7b4f253be2da2be4fb4a916b1ce43743\",\"dweb:/ipfs/QmcH36v3iN7SJJuF73AunLR2LtNxhVJ1wm63ph4dPZ4pcL\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC5267.sol\":{\"keccak256\":\"0x92aa1df62dc3d33f1656d63bede0923e0df0b706ad4137c8b10b0a8fe549fd92\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c5c0f29195ad64cbe556da8e257dac8f05f78c53f90323c0d2accf8e6922d33a\",\"dweb:/ipfs/QmQ61TED8uaCZwcbh8KkgRSsCav7x7HbcGHwHts3U4DmUP\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c\",\"dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0x6008dabfe393240d73d7dd7688033f72740d570aa422254d29a7dce8568f3aff\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f5196ec75139918c6c7bb4251b36395e668f1fa6d206beba7e7520e74913940d\",\"dweb:/ipfs/QmSyqjksXxmm2mCG6qRd1yuwLykypkSVBbnBnGqJRcuJMi\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x37bb49513c49c87c4642a891b13b63571bc87013dde806617aa1efb54605f386\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b3036b3a83b7c48f96641f2a9002b9f2dcb6a5958dd670894ada21ae8229b3d0\",\"dweb:/ipfs/QmUNfSBdoVtjhETaUJCYcaC7pTMgbhht926tJ2uXJbiVd3\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0xaf28a975a78550e45f65e559a3ad6a5ad43b9b8a37366999abd1b7084eb70721\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b7bd24e224f67f65bfadf85dc2929fa965456bb2415478bd0125471b5ce35245\",\"dweb:/ipfs/QmRaydGr8BTHs1kvaZfsNU69pKzUAGFrvABn1KiRSbE51y\"]},\"lib/openzeppelin-contracts/contracts/utils/ShortStrings.sol\":{\"keccak256\":\"0x18a7171df639a934592915a520ecb97c5bbc9675a1105607aac8a94e72bf62c6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7478e1f13da69a2867ccd883001d836b75620362e743f196376d63ed0c422a1c\",\"dweb:/ipfs/QmWywcQ9TNfwtoqAxbn25d8C5VrV12PrPS9UjtGe6pL2BA\"]},\"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0x32ba59b4b7299237c8ba56319110989d7978a039faf754793064e967e5894418\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1ae50c8b562427df610cc4540c9bf104acca7ef8e2dcae567ae7e52272281e9c\",\"dweb:/ipfs/QmTHiadFCSJUPpRjNegc5SahmeU8bAoY8i9Aq6tVscbcKR\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0x55f102ea785d8399c0e58d1108e2d289506dde18abc6db1b7f68c1f9f9bc5792\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e52e0a7765c943ef14e5bcf11e46e6139fa044be564881378349236bf2e3453\",\"dweb:/ipfs/QmZEeeXoFPW47amyP35gfzomF9DixqqTEPwzBakv6cZw6i\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0xeed0a08b0b091f528356cbc7245891a4c748682d4f6a18055e8e6ca77d12a6cf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba80ba06c8e6be852847e4c5f4492cef801feb6558ae09ed705ff2e04ea8b13c\",\"dweb:/ipfs/QmXRJDv3xHLVQCVXg1ZvR35QS9sij5y9NDWYzMfUfAdTHF\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/EIP712.sol\":{\"keccak256\":\"0x999f705a027ed6dc2d4e0df2cc4a509852c6bfd11de1c8161bf88832d0503fd0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0798def67258d9a3cc20b2b4da7ebf351a5cefe0abfdd665d2d81f8e32f89b21\",\"dweb:/ipfs/QmPEvJosnPfzHNjKvCv2D3891mA2Ww8eUwkqrxBjuYdHCt\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol\":{\"keccak256\":\"0xba333517a3add42cd35fe877656fc3dfcc9de53baa4f3aabbd6d12a92e4ea435\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2ceacff44c0fdc81e48e0e0b1db87a2076d3c1fb497341de077bf1da9f6b406c\",\"dweb:/ipfs/QmRUo1muMRAewxrKQ7TkXUtknyRoR57AyEkoPpiuZQ8FzX\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/SignatureChecker.sol\":{\"keccak256\":\"0x6b11eb41a228cca35d4b662b4df69fcd75192851365102690f57b2ac01e83fe6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ab006a2983ed350d2af21ddcdd835dcae3b8340086cc4d088460da5abd041f69\",\"dweb:/ipfs/QmbEacDhkJZiGrgzLjB4pNtE8Z1uudjDw1DvcDUTVQFsLG\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875\",\"dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0xe19a4d5f31d2861e7344e8e535e2feafb913d806d3e2b5fe7782741a2a7094fe\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4aed79c0fa6f0546ed02f2f683e8f77f0fd2ed7eb34d8bbf3d373c9a6d95b13c\",\"dweb:/ipfs/QmWqVz6UAVqmnWU5pqYPt1o6iDEZyPaBraAA3rKfTTSfYj\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x5f7e4076e175393767754387c962926577f1660dd9b810187b9002407656be72\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7d533a1c97cd43a57cd9c465f7ee8dd0e39ae93a8fb8ff8e5303a356b081cdcc\",\"dweb:/ipfs/QmVBEei6aTnvYNZp2CHYVNKyZS4q1KkjANfY39WVXZXVoT\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/Checkpoints.sol\":{\"keccak256\":\"0xbdc5e074d7dd6678f67e92b1a51a20226801a407b0e1af3da367c5d1ff4519ad\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a36cca6b22fff3db16fc789ff6c60eea71d4b156065d4d0c83a0bc5e91a77a8b\",\"dweb:/ipfs/QmYN3exd5AemxjBrN8XMB1p5LbbE16uC3sjbYjwi8AjcGR\"]},\"lib/openzeppelin-contracts/contracts/utils/types/Time.sol\":{\"keccak256\":\"0xc7755af115020049e4140f224f9ee88d7e1799ffb0646f37bf0df24bf6213f58\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7f09bf94d5274334ec021f61a04659db303f31e60460e14b709c9bf187740111\",\"dweb:/ipfs/QmNvgomZYUwFAt4cZbPWAiTeSZQreGehY9BK5xyVJsUttb\"]},\"src/contracts/common/Entity.sol\":{\"keccak256\":\"0x3d61a932995b8443381f3950542d388223a2c26dd5d29a3274dea3baa7388bd7\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://7cdf5f03ca72fd263fd32ff59c8d88ddca911ae83896a287d10772c1bbe9b138\",\"dweb:/ipfs/QmbP84r5BWT1Rn9AYTntWSf3xUMTTCohTZJFhbBhDXFoHa\"]},\"src/contracts/common/MigratableEntity.sol\":{\"keccak256\":\"0x2d736f4dacd5d7e7697503bc426c78b8250fe1694ca157965ec178da6807de58\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://f1237acf96b4b9f9b69156e068eddd726a6e15bd8e87a18dc999cd4ba4da069c\",\"dweb:/ipfs/QmS6M8fiFFSeuJ4ZKKq1z8W7w4ybeHQSy5TLASGoc1LVic\"]},\"src/contracts/common/StaticDelegateCallable.sol\":{\"keccak256\":\"0x350029aa8955eacaffffaeb58babc5c98e80ebc5c5db388ed17ee6465f4a9d90\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://eb392a8ee9050e0af606897df63e3404e3829e8b688b580663892f9664195764\",\"dweb:/ipfs/QmaXC8jqV8UrrAFkzXTEv2fJF56sy33HhLxAzaRZmUxuXD\"]},\"src/contracts/delegator/BaseDelegator.sol\":{\"keccak256\":\"0x7c54d491fdd4415b764a9c8defa068e56d4c0c8c9419be0053a1d377669290e8\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://9238bfbad0f6eeb0dc7727724de14380f1980b395902269703d5e2ef07e52e10\",\"dweb:/ipfs/QmPJn1V4HNXcEghYvogGuSTF24dSQUPosR5qtsXcmNqRm3\"]},\"src/contracts/delegator/FullRestakeDelegator.sol\":{\"keccak256\":\"0x0a81c4f8e72914563a9cb771e93acf889c71ea36b7bec040e4eb562b199d5af1\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://6fc66b6ba02da77046a0bbbd1dd407a62c08f52e04486c9cbd2cb1cca3da555f\",\"dweb:/ipfs/QmZQivK1ZnMxfRQQ5aLpV9co5u55wQVNev5Rg1hzAqxhkE\"]},\"src/contracts/delegator/NetworkRestakeDelegator.sol\":{\"keccak256\":\"0xd3a8e6522f9c6fdcc2da837c9023afd6bdff2bce45a35590320c475519e3636d\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://58b17a87f6554f08376f9ea7fedf486a4aa75801bf0ad8b23ff5a46959b6b7a3\",\"dweb:/ipfs/QmSTmNh67tYt8CmjVZb57r8N3qX5yeYdMApKPJm3qvQgQw\"]},\"src/contracts/delegator/OperatorNetworkSpecificDelegator.sol\":{\"keccak256\":\"0x031a10722b9ec49048f0952710401131290adb87e71caf294e864e7ac3b98a16\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://72428febc875134b2f29205e6f294634a1c22a7d5c78d6a9cb2f8196f107c9b5\",\"dweb:/ipfs/QmTPwXR6h5oytckmkLrHdKeEMdphJxceDhYUR4zvQeWAwY\"]},\"src/contracts/delegator/OperatorSpecificDelegator.sol\":{\"keccak256\":\"0x630ce62fa30b9f3349ab7a8cf8dbf041319febc6dd757be2f94d3d25944ed328\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://c2ac59d47ce57d2a6819ae9833e1a618a371eccff93eb5ab367b201b01f42bfa\",\"dweb:/ipfs/QmdBpGMBivpNPv2WbH8vnCUy5xkVeaxQvGgqi33vKCz1kA\"]},\"src/contracts/hints/DelegatorHints.sol\":{\"keccak256\":\"0x44aa0c396311a54afbc7c73e8dadeed41e3165a4fd13f712b27d63d50fc3376d\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://2f255214f3531fc707d88be0d56a7a0aed4180439316d099d760d9118aa83093\",\"dweb:/ipfs/QmZD1w5p1ukJSXumUAjvxwGmkPhn7vsr21Y2atLGEZR2oi\"]},\"src/contracts/hints/Hints.sol\":{\"keccak256\":\"0x8b565df1ae35993c097a9e642002782a8f451f6fd01809cad6bcd345bdf1b99c\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://99a19adb01e350a92f534095b3078229df1f2f83077992d75d58d8684be45971\",\"dweb:/ipfs/QmbmwcuswVbzvwHQFTtrJG86oV98GnfxqYTb8cV8u1acox\"]},\"src/contracts/hints/OptInServiceHints.sol\":{\"keccak256\":\"0x95d9407900d27b9f4a1233b772aeed809c07b2dc5b31cfc9fa77ca26514c49e5\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://a13a8877e312d7e6b8b85bde3668c5d84ff5ecc83f762cd573f2b7104c64eb42\",\"dweb:/ipfs/QmYV2J55acuGzCNnS3juABuUHY5U1xc8g8o9jwEyFFdeG5\"]},\"src/contracts/hints/VaultHints.sol\":{\"keccak256\":\"0xccb505b7159b769cc114d67b87c2de6b106557f667fc8f3780114baad5c3c442\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://6d0c80a908fc16e96a8b5605a0bd53f9e89ad0ef0a738fbbae80ba4d3160749b\",\"dweb:/ipfs/QmXo5UtWoR8YmunqcbBU8rQMm1nvmvjNPoXcVrDhh4pEwR\"]},\"src/contracts/libraries/Checkpoints.sol\":{\"keccak256\":\"0xba90097c8bfe0a975499428b5f8ac5569483c7d92ccc28c12d70de416aae040c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://12f5d93ca94cd06d3147db68993165a58e17903ed53682560de61f3085ad4609\",\"dweb:/ipfs/QmePiuAqvXprMLmFZkGZeGjvGPAvsEDHfCDv7BoQhXu9xE\"]},\"src/contracts/libraries/ERC4626Math.sol\":{\"keccak256\":\"0x8441160513c1cbeb1c3b9ee077bcc7e7ce20006b52a77c8dd39ff0ef89699939\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://943f8cc3e26ddf649f465f40c909819f5c864717c4baa339e9e403b9374a4653\",\"dweb:/ipfs/QmXPxi1sUDsrGprZdUgCzoPEosaZMv9ZhygWQ1vAi1phAB\"]},\"src/contracts/libraries/Subnetwork.sol\":{\"keccak256\":\"0xf5ef5506fd66082b3c2e7f3df37529f5a8efad32ac62e7c8914bd63219190bfe\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba031a54ee0d0e9a270c2b9e18437f5668cfeb659cfd5fe0677459d7fcac2a56\",\"dweb:/ipfs/QmReP3H7qQ78tAfgLnJKsNEQNCQfF1X1Get38Ffd4kzq32\"]},\"src/contracts/service/OptInService.sol\":{\"keccak256\":\"0x4e0932077f2686b7990e10d59deb2535334c0d09e52ef6e57c6ab09eca21c4b1\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://7c00d311032ed4a1743aca7475f3c86ce15cdfc2218108efc3731c03d34a5278\",\"dweb:/ipfs/QmUGGfVwVhaHr5kS4177yKKYiLYzi5qZpkEmvYxBZqazxf\"]},\"src/contracts/vault/Vault.sol\":{\"keccak256\":\"0x2ceff6ed3298c4cad144c99fcc79b51cb9397d6ebef00285b915848b476f8c2e\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://11f2fb3581854f3ab6e82e8d4935d9eb510c903a13c3f022346c2956a58f5307\",\"dweb:/ipfs/QmdUnoXoyYoG9SGWyQZCFyLDRUUX3eXyXetkRvw6jxqqBz\"]},\"src/contracts/vault/VaultStorage.sol\":{\"keccak256\":\"0x57db25b127d77ea3472de53e3a4af3354399655b9268638b99ca5925fa364a56\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://aa763d9a6ec508ae3abfb8228b72b9fd9525279e5135d4962e79ff059feb1173\",\"dweb:/ipfs/QmcbDR6E9wyEpu6V2FkEC4hnWy47zXA9LSKJde6zSGd33Q\"]},\"src/interfaces/common/IEntity.sol\":{\"keccak256\":\"0x8ef4b63d6da63489778ccd5f8d13ebdd527dd4b62730b2c616df5af7474d2d21\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a8d69576a9219d85c50816a18ad53a4d53cfcb27ed38b8cccc808dc2734b71b\",\"dweb:/ipfs/QmYVN3P4Q4REvBWJ97TbAcaxm3uyB2anV6NSGa6ZtSwcEv\"]},\"src/interfaces/common/IMigratableEntity.sol\":{\"keccak256\":\"0x8f5f2809f3afbe8ebfbb365dd7b57b4dd3b6f9943a6187eaf648d45895b8e3c4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ffe640537d539e7a4fde70d30d3e4c57f4ba9c2c25c450cea713aae38e8fd5c\",\"dweb:/ipfs/QmSUTGzvdcn1R1KB7tLThMRtESsfPbeXDhhhKWGtntzBds\"]},\"src/interfaces/common/IRegistry.sol\":{\"keccak256\":\"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014\",\"dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK\"]},\"src/interfaces/common/IStaticDelegateCallable.sol\":{\"keccak256\":\"0xa335d4e81b9071b7de66ef92b43ff20671d86516eb1be46fef29a3483cd3f5d5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d464b9db863c14c05547d2b23352f2e9b7b784799cf09f6bbc4906a2a74e3516\",\"dweb:/ipfs/QmUVWzFvJz7eEbDQKiFTTzwi7TEbjcs3VmwdM4kuptAKvi\"]},\"src/interfaces/delegator/IBaseDelegator.sol\":{\"keccak256\":\"0x96bb312f032e17accce3f8f80936d99468029d6b37c9ca74acdb4b026a0148ee\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2a66dcb5b7d1a6ef6a363431ea98ebd78bc4fdd3d7a134d9b542dc66e7d025c2\",\"dweb:/ipfs/QmRhTPLd2ZAyRHmJUFUcWKs9b3if49QY17LYZuRqWmghw8\"]},\"src/interfaces/delegator/IDelegatorHook.sol\":{\"keccak256\":\"0xc51aa8d7d1f6c8043ee819b7aeb86da0e993912e1442098df897e299f01f9f46\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://adddf5cb2ba282aeb576b26efb28640f865a1721cc9b6eee8b3ee0457a2c9780\",\"dweb:/ipfs/QmNYgAmnLRwWZbhTuQhZs9rx4zcme1df5mEepkrniorSoW\"]},\"src/interfaces/delegator/IFullRestakeDelegator.sol\":{\"keccak256\":\"0xa3c8cb2e45d4d8ce90e95263bea40c01dc400f05ad65bc29597d878606be5e7d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://782cf5e201aa4cca037ebafd3807a68ff1cc721d5b8416a35244db0d0607369e\",\"dweb:/ipfs/QmQkJks6x7CKndeTPa9LxgTNygD5uEi7obhADhpq1Lsr9A\"]},\"src/interfaces/delegator/INetworkRestakeDelegator.sol\":{\"keccak256\":\"0xe7030fe30389a147fd710e3436ec346b4842695fd3e65a81b95375c9f1d633fc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://739c7e66d301778054f5c90bee45ec9438f68afba8a03eaaac52064c73b115ad\",\"dweb:/ipfs/QmfZ2ytKcTykAc76nxhg8ikUXV8NdBpetqb8W4YWPcox1Z\"]},\"src/interfaces/delegator/IOperatorNetworkSpecificDelegator.sol\":{\"keccak256\":\"0x74b95e64d29769202d45dd277bb830f623ff3d41ce77b80ce3ee4e318a5c71ec\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e512b903aae5c1b8a028c6e3f4f6223b5cb5d704503cfa6bd37b5346868f5c20\",\"dweb:/ipfs/QmZim9YExsPWtyxyeui993HTKAEmrg8MUcSkZ77Gp2JcuZ\"]},\"src/interfaces/delegator/IOperatorSpecificDelegator.sol\":{\"keccak256\":\"0x72075cab585dc17240cc3e32bc99b92f0d5627ddd988fed680e3e1a52d5a01e4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7448bc90699409ae61d85216b5efc2143a37f0f73354be2aea993bc54afca441\",\"dweb:/ipfs/QmXE4gAxM8pHosZK8mcTcj17puBx484meDCcmrDePskGHZ\"]},\"src/interfaces/service/IOptInService.sol\":{\"keccak256\":\"0x76fb5460a6d87a5705433d4fbeff7253cd75b8bbd0c888b2088f16e86ace146a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://990322019b3d11465f7024bae77ccbf7e2fe5d6fa3c754584778f37d04fa1337\",\"dweb:/ipfs/QmaSNHzcqxTkUCG9a4nqVfLECHLdjdrwAnDi3yDC7tDL24\"]},\"src/interfaces/slasher/IBaseSlasher.sol\":{\"keccak256\":\"0x7c82528b445659c313ab77335c407b0b6efe5e79027187bb287f7bc74202b404\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0274c90aa5df1aa6bb470a6aab53992fb14fd7e5472c9430416505b29647d9cf\",\"dweb:/ipfs/QmckbmJLDetPemVzCnnGcKYWAZV2BRFXGDsjiaec8jkHxx\"]},\"src/interfaces/vault/IVault.sol\":{\"keccak256\":\"0xffee01d383cd4e1a5530c614bf4360c1ef070c288abec9da1eb531b51bc07235\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://04f0046cac285d8ec44ebbb1f79dc94fab4495767190cad8364fbc1fafaadfb9\",\"dweb:/ipfs/QmUawAunwzXfCyShWfhKeThAgKtqe51hmrxvrXvM772M2R\"]},\"src/interfaces/vault/IVaultStorage.sol\":{\"keccak256\":\"0x592626f13754194f83047135de19229c49390bd59e34659b1bb38be71d973a22\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://06a6a9dfddd05e580b32bebe2cff4f63ba26a653180676d58225dd30d9c89d3e\",\"dweb:/ipfs/QmdgzBeY6Sxo8mGtyBxtv1tM1c2kU6J6zjeRd7vuXm4DU6\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.25+commit.b61c2a91"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"baseDelegatorHints","type":"address"},{"internalType":"address","name":"vaultHints","type":"address"},{"internalType":"address","name":"optInServiceHints","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"AccessControlBadConfirmation"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bytes32","name":"neededRole","type":"bytes32"}],"type":"error","name":"AccessControlUnauthorizedAccount"},{"inputs":[],"type":"error","name":"AlreadySet"},{"inputs":[],"type":"error","name":"CheckpointUnorderedInsertion"},{"inputs":[],"type":"error","name":"DuplicateRoleHolder"},{"inputs":[],"type":"error","name":"ExceedsMaxNetworkLimit"},{"inputs":[],"type":"error","name":"ExternalCall"},{"inputs":[],"type":"error","name":"InsufficientHookGas"},{"inputs":[],"type":"error","name":"InvalidInitialization"},{"inputs":[],"type":"error","name":"MissingRoleHolders"},{"inputs":[],"type":"error","name":"NotInitialized"},{"inputs":[],"type":"error","name":"NotInitializing"},{"inputs":[],"type":"error","name":"NotNetwork"},{"inputs":[],"type":"error","name":"NotOperator"},{"inputs":[],"type":"error","name":"NotSlasher"},{"inputs":[],"type":"error","name":"NotVault"},{"inputs":[],"type":"error","name":"ReentrancyGuardReentrantCall"},{"inputs":[{"internalType":"uint8","name":"bits","type":"uint8"},{"internalType":"uint256","name":"value","type":"uint256"}],"type":"error","name":"SafeCastOverflowedUintDowncast"},{"inputs":[],"type":"error","name":"ZeroAddressRoleHolder"},{"inputs":[{"internalType":"uint64","name":"version","type":"uint64","indexed":false}],"type":"event","name":"Initialized","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32","indexed":true},{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false},{"internalType":"uint48","name":"captureTimestamp","type":"uint48","indexed":false}],"type":"event","name":"OnSlash","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"bytes32","name":"previousAdminRole","type":"bytes32","indexed":true},{"internalType":"bytes32","name":"newAdminRole","type":"bytes32","indexed":true}],"type":"event","name":"RoleAdminChanged","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"address","name":"sender","type":"address","indexed":true}],"type":"event","name":"RoleGranted","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"address","name":"sender","type":"address","indexed":true}],"type":"event","name":"RoleRevoked","anonymous":false},{"inputs":[{"internalType":"address","name":"hook","type":"address","indexed":true}],"type":"event","name":"SetHook","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"SetMaxNetworkLimit","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"SetNetworkLimit","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"BASE_DELEGATOR_HINTS","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"DEFAULT_ADMIN_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"FACTORY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"HOOK_GAS_LIMIT","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"HOOK_RESERVE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"HOOK_SET_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"NETWORK_LIMIT_SET_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"NETWORK_REGISTRY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"OPERATOR_NETWORK_OPT_IN_SERVICE","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"OPERATOR_REGISTRY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"OPERATOR_VAULT_OPT_IN_SERVICE","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"OPT_IN_SERVICE_HINTS","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"TYPE","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"VAULT_FACTORY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"VAULT_HINTS","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"VERSION","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getRoleAdmin","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"grantRole"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"hasRole","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"hook","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"}],"stateMutability":"view","type":"function","name":"maxNetworkLimit","outputs":[{"internalType":"uint256","name":"value","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"}],"stateMutability":"view","type":"function","name":"networkLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"uint48","name":"timestamp","type":"uint48"},{"internalType":"bytes","name":"hint","type":"bytes"}],"stateMutability":"view","type":"function","name":"networkLimitAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"delegator","type":"address"},{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"uint48","name":"timestamp","type":"uint48"}],"stateMutability":"view","type":"function","name":"networkLimitHint","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"uint48","name":"timestamp","type":"uint48"}],"stateMutability":"view","type":"function","name":"networkLimitHintInternal","outputs":[{"internalType":"bool","name":"exists","type":"bool"},{"internalType":"uint32","name":"hint","type":"uint32"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint48","name":"captureTimestamp","type":"uint48"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"onSlash"},{"inputs":[],"stateMutability":"view","type":"function","name":"operator","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"callerConfirmation","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"renounceRole"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"revokeRole"},{"inputs":[{"internalType":"address","name":"hook_","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setHook"},{"inputs":[{"internalType":"uint96","name":"identifier","type":"uint96"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setMaxNetworkLimit"},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setNetworkLimit"},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"stake","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint48","name":"timestamp","type":"uint48"},{"internalType":"bytes","name":"hints","type":"bytes"}],"stateMutability":"view","type":"function","name":"stakeAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"delegator","type":"address"},{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint48","name":"timestamp","type":"uint48"}],"stateMutability":"view","type":"function","name":"stakeHints","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"staticDelegateCall"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"vault","outputs":[{"internalType":"address","name":"","type":"address"}]}],"devdoc":{"kind":"dev","methods":{"VERSION()":{"details":"Must return 1 for this one.","returns":{"_0":"version of the delegator"}},"getRoleAdmin(bytes32)":{"details":"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}."},"grantRole(bytes32,address)":{"details":"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event."},"hasRole(bytes32,address)":{"details":"Returns `true` if `account` has been granted `role`."},"initialize(bytes)":{"params":{"data":"some data to use"}},"networkLimit(bytes32)":{"params":{"subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"},"returns":{"_0":"limit of the subnetwork"}},"networkLimitAt(bytes32,uint48,bytes)":{"params":{"hint":"hint for checkpoint index","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)","timestamp":"time point to get the subnetwork limit at"},"returns":{"_0":"limit of the subnetwork at the given timestamp"}},"onSlash(bytes32,address,uint256,uint48,bytes)":{"details":"Only the vault's slasher can call this function.","params":{"amount":"amount of the collateral slashed","captureTimestamp":"time point when the stake was captured","data":"some additional data","operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"}},"renounceRole(bytes32,address)":{"details":"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `callerConfirmation`. May emit a {RoleRevoked} event."},"revokeRole(bytes32,address)":{"details":"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event."},"setHook(address)":{"details":"Only a HOOK_SET_ROLE holder can call this function. The hook can have arbitrary logic under certain functions, however, it doesn't affect the stake guarantees.","params":{"hook":"address of the hook"}},"setMaxNetworkLimit(uint96,uint256)":{"details":"Only a network can call this function.","params":{"amount":"new maximum subnetwork's limit"}},"setNetworkLimit(bytes32,uint256)":{"details":"Only a NETWORK_LIMIT_SET_ROLE holder can call this function.","params":{"amount":"new limit of the subnetwork","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"}},"stake(bytes32,address)":{"details":"Warning: this function is not safe to use for stake capturing, as it can change by the end of the block.","params":{"operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"},"returns":{"_0":"slashable stake until the end of the next epoch"}},"stakeAt(bytes32,address,uint48,bytes)":{"details":"Warning: it is not safe to use timestamp >= current one for the stake capturing, as it can change later.","params":{"hints":"hints for the checkpoints' indexes","operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)","timestamp":"time point to capture the stake at"},"returns":{"_0":"slashable stake at the given timestamp until the end of the consequent epoch"}},"staticDelegateCall(address,bytes)":{"details":"It allows to use this contract's storage on-chain.","params":{"data":"data to make a delegatecall with","target":"address of the contract to make a delegatecall to"}},"supportsInterface(bytes4)":{"details":"See {IERC165-supportsInterface}."}},"version":1},"userdoc":{"kind":"user","methods":{"FACTORY()":{"notice":"Get the factory's address."},"HOOK_GAS_LIMIT()":{"notice":"Get a gas limit for the hook."},"HOOK_RESERVE()":{"notice":"Get a reserve gas between the gas limit check and the hook's execution."},"HOOK_SET_ROLE()":{"notice":"Get a hook setter's role."},"NETWORK_LIMIT_SET_ROLE()":{"notice":"Get a subnetwork limit setter's role."},"NETWORK_REGISTRY()":{"notice":"Get the network registry's address."},"OPERATOR_NETWORK_OPT_IN_SERVICE()":{"notice":"Get the operator-network opt-in service's address."},"OPERATOR_REGISTRY()":{"notice":"Get the operator registry's address."},"OPERATOR_VAULT_OPT_IN_SERVICE()":{"notice":"Get the operator-vault opt-in service's address."},"TYPE()":{"notice":"Get the entity's type."},"VAULT_FACTORY()":{"notice":"Get the vault factory's address."},"VERSION()":{"notice":"Get a version of the delegator (different versions mean different interfaces)."},"hook()":{"notice":"Get the hook's address."},"initialize(bytes)":{"notice":"Initialize this entity contract by using a given data."},"maxNetworkLimit(bytes32)":{"notice":"Get a particular subnetwork's maximum limit (meaning the subnetwork is not ready to get more as a stake)."},"networkLimit(bytes32)":{"notice":"Get a subnetwork's limit (how much stake the vault curator is ready to give to the subnetwork)."},"networkLimitAt(bytes32,uint48,bytes)":{"notice":"Get a subnetwork's limit at a given timestamp using a hint (how much stake the vault curator is ready to give to the subnetwork)."},"onSlash(bytes32,address,uint256,uint48,bytes)":{"notice":"Called when a slash happens."},"operator()":{"notice":"Get an operator managing the vault's funds."},"setHook(address)":{"notice":"Set a new hook."},"setMaxNetworkLimit(uint96,uint256)":{"notice":"Set a maximum limit for a subnetwork (how much stake the subnetwork is ready to get). identifier identifier of the subnetwork"},"setNetworkLimit(bytes32,uint256)":{"notice":"Set a subnetwork's limit (how much stake the vault curator is ready to give to the subnetwork)."},"stake(bytes32,address)":{"notice":"Get a stake that a given subnetwork will be able to slash for a certain operator until the end of the next epoch (if no cross-slashing and no slashings by the subnetwork)."},"stakeAt(bytes32,address,uint48,bytes)":{"notice":"Get a stake that a given subnetwork could be able to slash for a certain operator at a given timestamp until the end of the consequent epoch using hints (if no cross-slashing and no slashings by the subnetwork)."},"staticDelegateCall(address,bytes)":{"notice":"Make a delegatecall from this contract to a given target contract with a particular data (always reverts with a return data)."},"vault()":{"notice":"Get the vault's address."}},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/contracts/hints/DelegatorHints.sol":"OperatorSpecificDelegatorHints"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol":{"keccak256":"0x6662ec4e5cefca03eeadd073e9469df8d2944bb2ee8ec8f7622c2c46aab5f225","urls":["bzz-raw://4d8544c6f8daa4d1bc215c6a72fe0acdb748664a105b0e5efc19295667521d45","dweb:/ipfs/QmdGWqdnXT8S3RgCR6aV8XHZrsybieMQLLnug1NtpSjEXN"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol":{"keccak256":"0xc163fcf9bb10138631a9ba5564df1fa25db9adff73bd9ee868a8ae1858fe093a","urls":["bzz-raw://9706d43a0124053d9880f6e31a59f31bc0a6a3dc1acd66ce0a16e1111658c5f6","dweb:/ipfs/QmUFmfowzkRwGtDu36cXV9SPTBHJ3n7dG9xQiK5B28jTf2"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b","urls":["bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609","dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol":{"keccak256":"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397","urls":["bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9","dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardUpgradeable.sol":{"keccak256":"0xb44e086e941292cdc7f440de51478493894ef0b1aeccb0c4047445919f667f74","urls":["bzz-raw://942dad22fbdc1669f025540ba63aa3ccfad5f8458fc5d4525b31ebf272e7af45","dweb:/ipfs/Qmdo4X2M82aM3AMoW2kf2jhYkSCyC4T1pHNd6obdsDFnAB"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol":{"keccak256":"0xdaba3f7c42c55b2896353f32bd27d4d5f8bae741b3b05d4c53f67abc4dc47ce8","urls":["bzz-raw://1fa2e61141c602510bcd2cd936ed9561922ac8772a9b9c9a9db091a74e354a45","dweb:/ipfs/QmcHQDDoEBwJmwUbzoVkytvJsBx3KVHYFFnDkvRGWh9Wmh"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol":{"keccak256":"0xb6b36edd6a2999fd243ff226d6cbf84bd71af2432bbd0dfe19392996a1d9cb41","urls":["bzz-raw://1fd2f35495652e57e3f99bc6c510bc5f7dd398a176ea2e72d8ed730aebc6ca26","dweb:/ipfs/QmTQV6X4gkikTib49cho5iDX3JvSQbdsoEChoDwrk3CbbH"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC1271.sol":{"keccak256":"0x85a45f3f10014a0f8be41157a32b6a5f905753ea64a4b64e29fc12b7deeecf39","urls":["bzz-raw://c3c74009ce36136b36c77c23935b8e4a7b4f253be2da2be4fb4a916b1ce43743","dweb:/ipfs/QmcH36v3iN7SJJuF73AunLR2LtNxhVJ1wm63ph4dPZ4pcL"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC5267.sol":{"keccak256":"0x92aa1df62dc3d33f1656d63bede0923e0df0b706ad4137c8b10b0a8fe549fd92","urls":["bzz-raw://c5c0f29195ad64cbe556da8e257dac8f05f78c53f90323c0d2accf8e6922d33a","dweb:/ipfs/QmQ61TED8uaCZwcbh8KkgRSsCav7x7HbcGHwHts3U4DmUP"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70","urls":["bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c","dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol":{"keccak256":"0x6008dabfe393240d73d7dd7688033f72740d570aa422254d29a7dce8568f3aff","urls":["bzz-raw://f5196ec75139918c6c7bb4251b36395e668f1fa6d206beba7e7520e74913940d","dweb:/ipfs/QmSyqjksXxmm2mCG6qRd1yuwLykypkSVBbnBnGqJRcuJMi"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0x37bb49513c49c87c4642a891b13b63571bc87013dde806617aa1efb54605f386","urls":["bzz-raw://b3036b3a83b7c48f96641f2a9002b9f2dcb6a5958dd670894ada21ae8229b3d0","dweb:/ipfs/QmUNfSBdoVtjhETaUJCYcaC7pTMgbhht926tJ2uXJbiVd3"],"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/ShortStrings.sol":{"keccak256":"0x18a7171df639a934592915a520ecb97c5bbc9675a1105607aac8a94e72bf62c6","urls":["bzz-raw://7478e1f13da69a2867ccd883001d836b75620362e743f196376d63ed0c422a1c","dweb:/ipfs/QmWywcQ9TNfwtoqAxbn25d8C5VrV12PrPS9UjtGe6pL2BA"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol":{"keccak256":"0x32ba59b4b7299237c8ba56319110989d7978a039faf754793064e967e5894418","urls":["bzz-raw://1ae50c8b562427df610cc4540c9bf104acca7ef8e2dcae567ae7e52272281e9c","dweb:/ipfs/QmTHiadFCSJUPpRjNegc5SahmeU8bAoY8i9Aq6tVscbcKR"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0x55f102ea785d8399c0e58d1108e2d289506dde18abc6db1b7f68c1f9f9bc5792","urls":["bzz-raw://6e52e0a7765c943ef14e5bcf11e46e6139fa044be564881378349236bf2e3453","dweb:/ipfs/QmZEeeXoFPW47amyP35gfzomF9DixqqTEPwzBakv6cZw6i"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol":{"keccak256":"0xeed0a08b0b091f528356cbc7245891a4c748682d4f6a18055e8e6ca77d12a6cf","urls":["bzz-raw://ba80ba06c8e6be852847e4c5f4492cef801feb6558ae09ed705ff2e04ea8b13c","dweb:/ipfs/QmXRJDv3xHLVQCVXg1ZvR35QS9sij5y9NDWYzMfUfAdTHF"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/EIP712.sol":{"keccak256":"0x999f705a027ed6dc2d4e0df2cc4a509852c6bfd11de1c8161bf88832d0503fd0","urls":["bzz-raw://0798def67258d9a3cc20b2b4da7ebf351a5cefe0abfdd665d2d81f8e32f89b21","dweb:/ipfs/QmPEvJosnPfzHNjKvCv2D3891mA2Ww8eUwkqrxBjuYdHCt"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol":{"keccak256":"0xba333517a3add42cd35fe877656fc3dfcc9de53baa4f3aabbd6d12a92e4ea435","urls":["bzz-raw://2ceacff44c0fdc81e48e0e0b1db87a2076d3c1fb497341de077bf1da9f6b406c","dweb:/ipfs/QmRUo1muMRAewxrKQ7TkXUtknyRoR57AyEkoPpiuZQ8FzX"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/SignatureChecker.sol":{"keccak256":"0x6b11eb41a228cca35d4b662b4df69fcd75192851365102690f57b2ac01e83fe6","urls":["bzz-raw://ab006a2983ed350d2af21ddcdd835dcae3b8340086cc4d088460da5abd041f69","dweb:/ipfs/QmbEacDhkJZiGrgzLjB4pNtE8Z1uudjDw1DvcDUTVQFsLG"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b","urls":["bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df","dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d","urls":["bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875","dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol":{"keccak256":"0xe19a4d5f31d2861e7344e8e535e2feafb913d806d3e2b5fe7782741a2a7094fe","urls":["bzz-raw://4aed79c0fa6f0546ed02f2f683e8f77f0fd2ed7eb34d8bbf3d373c9a6d95b13c","dweb:/ipfs/QmWqVz6UAVqmnWU5pqYPt1o6iDEZyPaBraAA3rKfTTSfYj"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0x5f7e4076e175393767754387c962926577f1660dd9b810187b9002407656be72","urls":["bzz-raw://7d533a1c97cd43a57cd9c465f7ee8dd0e39ae93a8fb8ff8e5303a356b081cdcc","dweb:/ipfs/QmVBEei6aTnvYNZp2CHYVNKyZS4q1KkjANfY39WVXZXVoT"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/Checkpoints.sol":{"keccak256":"0xbdc5e074d7dd6678f67e92b1a51a20226801a407b0e1af3da367c5d1ff4519ad","urls":["bzz-raw://a36cca6b22fff3db16fc789ff6c60eea71d4b156065d4d0c83a0bc5e91a77a8b","dweb:/ipfs/QmYN3exd5AemxjBrN8XMB1p5LbbE16uC3sjbYjwi8AjcGR"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/types/Time.sol":{"keccak256":"0xc7755af115020049e4140f224f9ee88d7e1799ffb0646f37bf0df24bf6213f58","urls":["bzz-raw://7f09bf94d5274334ec021f61a04659db303f31e60460e14b709c9bf187740111","dweb:/ipfs/QmNvgomZYUwFAt4cZbPWAiTeSZQreGehY9BK5xyVJsUttb"],"license":"MIT"},"src/contracts/common/Entity.sol":{"keccak256":"0x3d61a932995b8443381f3950542d388223a2c26dd5d29a3274dea3baa7388bd7","urls":["bzz-raw://7cdf5f03ca72fd263fd32ff59c8d88ddca911ae83896a287d10772c1bbe9b138","dweb:/ipfs/QmbP84r5BWT1Rn9AYTntWSf3xUMTTCohTZJFhbBhDXFoHa"],"license":"BUSL-1.1"},"src/contracts/common/MigratableEntity.sol":{"keccak256":"0x2d736f4dacd5d7e7697503bc426c78b8250fe1694ca157965ec178da6807de58","urls":["bzz-raw://f1237acf96b4b9f9b69156e068eddd726a6e15bd8e87a18dc999cd4ba4da069c","dweb:/ipfs/QmS6M8fiFFSeuJ4ZKKq1z8W7w4ybeHQSy5TLASGoc1LVic"],"license":"BUSL-1.1"},"src/contracts/common/StaticDelegateCallable.sol":{"keccak256":"0x350029aa8955eacaffffaeb58babc5c98e80ebc5c5db388ed17ee6465f4a9d90","urls":["bzz-raw://eb392a8ee9050e0af606897df63e3404e3829e8b688b580663892f9664195764","dweb:/ipfs/QmaXC8jqV8UrrAFkzXTEv2fJF56sy33HhLxAzaRZmUxuXD"],"license":"BUSL-1.1"},"src/contracts/delegator/BaseDelegator.sol":{"keccak256":"0x7c54d491fdd4415b764a9c8defa068e56d4c0c8c9419be0053a1d377669290e8","urls":["bzz-raw://9238bfbad0f6eeb0dc7727724de14380f1980b395902269703d5e2ef07e52e10","dweb:/ipfs/QmPJn1V4HNXcEghYvogGuSTF24dSQUPosR5qtsXcmNqRm3"],"license":"BUSL-1.1"},"src/contracts/delegator/FullRestakeDelegator.sol":{"keccak256":"0x0a81c4f8e72914563a9cb771e93acf889c71ea36b7bec040e4eb562b199d5af1","urls":["bzz-raw://6fc66b6ba02da77046a0bbbd1dd407a62c08f52e04486c9cbd2cb1cca3da555f","dweb:/ipfs/QmZQivK1ZnMxfRQQ5aLpV9co5u55wQVNev5Rg1hzAqxhkE"],"license":"BUSL-1.1"},"src/contracts/delegator/NetworkRestakeDelegator.sol":{"keccak256":"0xd3a8e6522f9c6fdcc2da837c9023afd6bdff2bce45a35590320c475519e3636d","urls":["bzz-raw://58b17a87f6554f08376f9ea7fedf486a4aa75801bf0ad8b23ff5a46959b6b7a3","dweb:/ipfs/QmSTmNh67tYt8CmjVZb57r8N3qX5yeYdMApKPJm3qvQgQw"],"license":"BUSL-1.1"},"src/contracts/delegator/OperatorNetworkSpecificDelegator.sol":{"keccak256":"0x031a10722b9ec49048f0952710401131290adb87e71caf294e864e7ac3b98a16","urls":["bzz-raw://72428febc875134b2f29205e6f294634a1c22a7d5c78d6a9cb2f8196f107c9b5","dweb:/ipfs/QmTPwXR6h5oytckmkLrHdKeEMdphJxceDhYUR4zvQeWAwY"],"license":"BUSL-1.1"},"src/contracts/delegator/OperatorSpecificDelegator.sol":{"keccak256":"0x630ce62fa30b9f3349ab7a8cf8dbf041319febc6dd757be2f94d3d25944ed328","urls":["bzz-raw://c2ac59d47ce57d2a6819ae9833e1a618a371eccff93eb5ab367b201b01f42bfa","dweb:/ipfs/QmdBpGMBivpNPv2WbH8vnCUy5xkVeaxQvGgqi33vKCz1kA"],"license":"BUSL-1.1"},"src/contracts/hints/DelegatorHints.sol":{"keccak256":"0x44aa0c396311a54afbc7c73e8dadeed41e3165a4fd13f712b27d63d50fc3376d","urls":["bzz-raw://2f255214f3531fc707d88be0d56a7a0aed4180439316d099d760d9118aa83093","dweb:/ipfs/QmZD1w5p1ukJSXumUAjvxwGmkPhn7vsr21Y2atLGEZR2oi"],"license":"BUSL-1.1"},"src/contracts/hints/Hints.sol":{"keccak256":"0x8b565df1ae35993c097a9e642002782a8f451f6fd01809cad6bcd345bdf1b99c","urls":["bzz-raw://99a19adb01e350a92f534095b3078229df1f2f83077992d75d58d8684be45971","dweb:/ipfs/QmbmwcuswVbzvwHQFTtrJG86oV98GnfxqYTb8cV8u1acox"],"license":"BUSL-1.1"},"src/contracts/hints/OptInServiceHints.sol":{"keccak256":"0x95d9407900d27b9f4a1233b772aeed809c07b2dc5b31cfc9fa77ca26514c49e5","urls":["bzz-raw://a13a8877e312d7e6b8b85bde3668c5d84ff5ecc83f762cd573f2b7104c64eb42","dweb:/ipfs/QmYV2J55acuGzCNnS3juABuUHY5U1xc8g8o9jwEyFFdeG5"],"license":"BUSL-1.1"},"src/contracts/hints/VaultHints.sol":{"keccak256":"0xccb505b7159b769cc114d67b87c2de6b106557f667fc8f3780114baad5c3c442","urls":["bzz-raw://6d0c80a908fc16e96a8b5605a0bd53f9e89ad0ef0a738fbbae80ba4d3160749b","dweb:/ipfs/QmXo5UtWoR8YmunqcbBU8rQMm1nvmvjNPoXcVrDhh4pEwR"],"license":"BUSL-1.1"},"src/contracts/libraries/Checkpoints.sol":{"keccak256":"0xba90097c8bfe0a975499428b5f8ac5569483c7d92ccc28c12d70de416aae040c","urls":["bzz-raw://12f5d93ca94cd06d3147db68993165a58e17903ed53682560de61f3085ad4609","dweb:/ipfs/QmePiuAqvXprMLmFZkGZeGjvGPAvsEDHfCDv7BoQhXu9xE"],"license":"MIT"},"src/contracts/libraries/ERC4626Math.sol":{"keccak256":"0x8441160513c1cbeb1c3b9ee077bcc7e7ce20006b52a77c8dd39ff0ef89699939","urls":["bzz-raw://943f8cc3e26ddf649f465f40c909819f5c864717c4baa339e9e403b9374a4653","dweb:/ipfs/QmXPxi1sUDsrGprZdUgCzoPEosaZMv9ZhygWQ1vAi1phAB"],"license":"MIT"},"src/contracts/libraries/Subnetwork.sol":{"keccak256":"0xf5ef5506fd66082b3c2e7f3df37529f5a8efad32ac62e7c8914bd63219190bfe","urls":["bzz-raw://ba031a54ee0d0e9a270c2b9e18437f5668cfeb659cfd5fe0677459d7fcac2a56","dweb:/ipfs/QmReP3H7qQ78tAfgLnJKsNEQNCQfF1X1Get38Ffd4kzq32"],"license":"MIT"},"src/contracts/service/OptInService.sol":{"keccak256":"0x4e0932077f2686b7990e10d59deb2535334c0d09e52ef6e57c6ab09eca21c4b1","urls":["bzz-raw://7c00d311032ed4a1743aca7475f3c86ce15cdfc2218108efc3731c03d34a5278","dweb:/ipfs/QmUGGfVwVhaHr5kS4177yKKYiLYzi5qZpkEmvYxBZqazxf"],"license":"BUSL-1.1"},"src/contracts/vault/Vault.sol":{"keccak256":"0x2ceff6ed3298c4cad144c99fcc79b51cb9397d6ebef00285b915848b476f8c2e","urls":["bzz-raw://11f2fb3581854f3ab6e82e8d4935d9eb510c903a13c3f022346c2956a58f5307","dweb:/ipfs/QmdUnoXoyYoG9SGWyQZCFyLDRUUX3eXyXetkRvw6jxqqBz"],"license":"BUSL-1.1"},"src/contracts/vault/VaultStorage.sol":{"keccak256":"0x57db25b127d77ea3472de53e3a4af3354399655b9268638b99ca5925fa364a56","urls":["bzz-raw://aa763d9a6ec508ae3abfb8228b72b9fd9525279e5135d4962e79ff059feb1173","dweb:/ipfs/QmcbDR6E9wyEpu6V2FkEC4hnWy47zXA9LSKJde6zSGd33Q"],"license":"BUSL-1.1"},"src/interfaces/common/IEntity.sol":{"keccak256":"0x8ef4b63d6da63489778ccd5f8d13ebdd527dd4b62730b2c616df5af7474d2d21","urls":["bzz-raw://5a8d69576a9219d85c50816a18ad53a4d53cfcb27ed38b8cccc808dc2734b71b","dweb:/ipfs/QmYVN3P4Q4REvBWJ97TbAcaxm3uyB2anV6NSGa6ZtSwcEv"],"license":"MIT"},"src/interfaces/common/IMigratableEntity.sol":{"keccak256":"0x8f5f2809f3afbe8ebfbb365dd7b57b4dd3b6f9943a6187eaf648d45895b8e3c4","urls":["bzz-raw://0ffe640537d539e7a4fde70d30d3e4c57f4ba9c2c25c450cea713aae38e8fd5c","dweb:/ipfs/QmSUTGzvdcn1R1KB7tLThMRtESsfPbeXDhhhKWGtntzBds"],"license":"MIT"},"src/interfaces/common/IRegistry.sol":{"keccak256":"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb","urls":["bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014","dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK"],"license":"MIT"},"src/interfaces/common/IStaticDelegateCallable.sol":{"keccak256":"0xa335d4e81b9071b7de66ef92b43ff20671d86516eb1be46fef29a3483cd3f5d5","urls":["bzz-raw://d464b9db863c14c05547d2b23352f2e9b7b784799cf09f6bbc4906a2a74e3516","dweb:/ipfs/QmUVWzFvJz7eEbDQKiFTTzwi7TEbjcs3VmwdM4kuptAKvi"],"license":"MIT"},"src/interfaces/delegator/IBaseDelegator.sol":{"keccak256":"0x96bb312f032e17accce3f8f80936d99468029d6b37c9ca74acdb4b026a0148ee","urls":["bzz-raw://2a66dcb5b7d1a6ef6a363431ea98ebd78bc4fdd3d7a134d9b542dc66e7d025c2","dweb:/ipfs/QmRhTPLd2ZAyRHmJUFUcWKs9b3if49QY17LYZuRqWmghw8"],"license":"MIT"},"src/interfaces/delegator/IDelegatorHook.sol":{"keccak256":"0xc51aa8d7d1f6c8043ee819b7aeb86da0e993912e1442098df897e299f01f9f46","urls":["bzz-raw://adddf5cb2ba282aeb576b26efb28640f865a1721cc9b6eee8b3ee0457a2c9780","dweb:/ipfs/QmNYgAmnLRwWZbhTuQhZs9rx4zcme1df5mEepkrniorSoW"],"license":"MIT"},"src/interfaces/delegator/IFullRestakeDelegator.sol":{"keccak256":"0xa3c8cb2e45d4d8ce90e95263bea40c01dc400f05ad65bc29597d878606be5e7d","urls":["bzz-raw://782cf5e201aa4cca037ebafd3807a68ff1cc721d5b8416a35244db0d0607369e","dweb:/ipfs/QmQkJks6x7CKndeTPa9LxgTNygD5uEi7obhADhpq1Lsr9A"],"license":"MIT"},"src/interfaces/delegator/INetworkRestakeDelegator.sol":{"keccak256":"0xe7030fe30389a147fd710e3436ec346b4842695fd3e65a81b95375c9f1d633fc","urls":["bzz-raw://739c7e66d301778054f5c90bee45ec9438f68afba8a03eaaac52064c73b115ad","dweb:/ipfs/QmfZ2ytKcTykAc76nxhg8ikUXV8NdBpetqb8W4YWPcox1Z"],"license":"MIT"},"src/interfaces/delegator/IOperatorNetworkSpecificDelegator.sol":{"keccak256":"0x74b95e64d29769202d45dd277bb830f623ff3d41ce77b80ce3ee4e318a5c71ec","urls":["bzz-raw://e512b903aae5c1b8a028c6e3f4f6223b5cb5d704503cfa6bd37b5346868f5c20","dweb:/ipfs/QmZim9YExsPWtyxyeui993HTKAEmrg8MUcSkZ77Gp2JcuZ"],"license":"MIT"},"src/interfaces/delegator/IOperatorSpecificDelegator.sol":{"keccak256":"0x72075cab585dc17240cc3e32bc99b92f0d5627ddd988fed680e3e1a52d5a01e4","urls":["bzz-raw://7448bc90699409ae61d85216b5efc2143a37f0f73354be2aea993bc54afca441","dweb:/ipfs/QmXE4gAxM8pHosZK8mcTcj17puBx484meDCcmrDePskGHZ"],"license":"MIT"},"src/interfaces/service/IOptInService.sol":{"keccak256":"0x76fb5460a6d87a5705433d4fbeff7253cd75b8bbd0c888b2088f16e86ace146a","urls":["bzz-raw://990322019b3d11465f7024bae77ccbf7e2fe5d6fa3c754584778f37d04fa1337","dweb:/ipfs/QmaSNHzcqxTkUCG9a4nqVfLECHLdjdrwAnDi3yDC7tDL24"],"license":"MIT"},"src/interfaces/slasher/IBaseSlasher.sol":{"keccak256":"0x7c82528b445659c313ab77335c407b0b6efe5e79027187bb287f7bc74202b404","urls":["bzz-raw://0274c90aa5df1aa6bb470a6aab53992fb14fd7e5472c9430416505b29647d9cf","dweb:/ipfs/QmckbmJLDetPemVzCnnGcKYWAZV2BRFXGDsjiaec8jkHxx"],"license":"MIT"},"src/interfaces/vault/IVault.sol":{"keccak256":"0xffee01d383cd4e1a5530c614bf4360c1ef070c288abec9da1eb531b51bc07235","urls":["bzz-raw://04f0046cac285d8ec44ebbb1f79dc94fab4495767190cad8364fbc1fafaadfb9","dweb:/ipfs/QmUawAunwzXfCyShWfhKeThAgKtqe51hmrxvrXvM772M2R"],"license":"MIT"},"src/interfaces/vault/IVaultStorage.sol":{"keccak256":"0x592626f13754194f83047135de19229c49390bd59e34659b1bb38be71d973a22","urls":["bzz-raw://06a6a9dfddd05e580b32bebe2cff4f63ba26a653180676d58225dd30d9c89d3e","dweb:/ipfs/QmdgzBeY6Sxo8mGtyBxtv1tM1c2kU6J6zjeRd7vuXm4DU6"],"license":"MIT"}},"version":1},"id":81} \ No newline at end of file diff --git a/out/FullRestakeDelegator.sol/FullRestakeDelegator.json b/out/FullRestakeDelegator.sol/FullRestakeDelegator.json index 773fe4ed..c9e0ec0f 100644 --- a/out/FullRestakeDelegator.sol/FullRestakeDelegator.json +++ b/out/FullRestakeDelegator.sol/FullRestakeDelegator.json @@ -1 +1 @@ -{"abi":[{"type":"constructor","inputs":[{"name":"networkRegistry","type":"address","internalType":"address"},{"name":"vaultFactory","type":"address","internalType":"address"},{"name":"operatorVaultOptInService","type":"address","internalType":"address"},{"name":"operatorNetworkOptInService","type":"address","internalType":"address"},{"name":"delegatorFactory","type":"address","internalType":"address"},{"name":"entityType","type":"uint64","internalType":"uint64"}],"stateMutability":"nonpayable"},{"type":"function","name":"DEFAULT_ADMIN_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"FACTORY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"HOOK_GAS_LIMIT","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"HOOK_RESERVE","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"HOOK_SET_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"NETWORK_LIMIT_SET_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"NETWORK_REGISTRY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"OPERATOR_NETWORK_LIMIT_SET_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"OPERATOR_NETWORK_OPT_IN_SERVICE","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"OPERATOR_VAULT_OPT_IN_SERVICE","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"TYPE","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"VAULT_FACTORY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"VERSION","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"pure"},{"type":"function","name":"getRoleAdmin","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"grantRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"hasRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"hook","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"initialize","inputs":[{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"maxNetworkLimit","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"value","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"networkLimit","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"networkLimitAt","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"timestamp","type":"uint48","internalType":"uint48"},{"name":"hint","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"onSlash","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"captureTimestamp","type":"uint48","internalType":"uint48"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"operatorNetworkLimit","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"operatorNetworkLimitAt","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"timestamp","type":"uint48","internalType":"uint48"},{"name":"hint","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"renounceRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"callerConfirmation","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"revokeRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setHook","inputs":[{"name":"hook_","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setMaxNetworkLimit","inputs":[{"name":"identifier","type":"uint96","internalType":"uint96"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setNetworkLimit","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setOperatorNetworkLimit","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"stake","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"stakeAt","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"timestamp","type":"uint48","internalType":"uint48"},{"name":"hints","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"staticDelegateCall","inputs":[{"name":"target","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"vault","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"OnSlash","inputs":[{"name":"subnetwork","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"captureTimestamp","type":"uint48","indexed":false,"internalType":"uint48"}],"anonymous":false},{"type":"event","name":"RoleAdminChanged","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"previousAdminRole","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"newAdminRole","type":"bytes32","indexed":true,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"RoleGranted","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"sender","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"RoleRevoked","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"sender","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"SetHook","inputs":[{"name":"hook","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"SetMaxNetworkLimit","inputs":[{"name":"subnetwork","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"SetNetworkLimit","inputs":[{"name":"subnetwork","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"SetOperatorNetworkLimit","inputs":[{"name":"subnetwork","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"error","name":"AccessControlBadConfirmation","inputs":[]},{"type":"error","name":"AccessControlUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"neededRole","type":"bytes32","internalType":"bytes32"}]},{"type":"error","name":"AlreadySet","inputs":[]},{"type":"error","name":"CheckpointUnorderedInsertion","inputs":[]},{"type":"error","name":"DuplicateRoleHolder","inputs":[]},{"type":"error","name":"ExceedsMaxNetworkLimit","inputs":[]},{"type":"error","name":"InsufficientHookGas","inputs":[]},{"type":"error","name":"InvalidInitialization","inputs":[]},{"type":"error","name":"MissingRoleHolders","inputs":[]},{"type":"error","name":"NotInitialized","inputs":[]},{"type":"error","name":"NotInitializing","inputs":[]},{"type":"error","name":"NotNetwork","inputs":[]},{"type":"error","name":"NotSlasher","inputs":[]},{"type":"error","name":"NotVault","inputs":[]},{"type":"error","name":"ReentrancyGuardReentrantCall","inputs":[]},{"type":"error","name":"SafeCastOverflowedUintDowncast","inputs":[{"name":"bits","type":"uint8","internalType":"uint8"},{"name":"value","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ZeroAddressRoleHolder","inputs":[]}],"bytecode":{"object":"0x610140346101a1576001600160401b0390601f612cbd38819003918201601f191683019190848311848410176101a5578160c092859260409586528339810103126101a15761004d826101b9565b610059602084016101b9565b906100658385016101b9565b94610072606086016101b9565b9460a0610081608083016101b9565b9101519180831683036101a1577ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a009081549060ff82891c1661019057808083160361014c575b50505060805260a05260c05260e0526101009283526101209182525190612aef92836101ce84396080518361072a015260a05183610eb8015260c0518381816105bb0152610ef1015260e0518381816104620152611d990152518281816104f5015281816114c001526116040152518181816105390152818161142701526116820152f35b6001600160401b0319909116811790915585519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a15f80806100c7565b875163f92ee8a960e01b8152600490fd5b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b51906001600160a01b03821682036101a15756fe60806040526004361015610011575f80fd5b5f3560e01c806301ffc9a714610244578063020cf0c21461023f578063021453481461023a578063103f2907146102355780631142209514610230578063128e5d821461022b5780631a80e5001461022657806323f752d514610221578063248a9ca31461021c5780632dd31000146102175780632f2ff15d1461021257806336568abe1461020d5780633dfd3873146102085780633eb22c0f14610203578063439fab91146101fe578063518504ba146101f9578063557cab44146101f45780635d32a1c9146101ef5780636679191e146101ea5780637d24bb27146101e55780637f5a7c7b146101e057806391d14854146101db57806394d2558a146101d65780639f86fd85146101d1578063a217fddf146101cc578063bb24fe8a146101c7578063c0cd7c3e146101c2578063d15b740e146101bd578063d547741f146101b8578063e02f6937146101b3578063e49561ee146101ae578063fbfa77cf146101a9578063fd4d447c146101a4578063ff54740f1461019f5763ffa1ad741461019a575f80fd5b61120b565b6111ee565b6111c4565b61119d565b610fb2565b610f96565b610f4a565b610f20565b610edc565b610e99565b610e7f565b610dc5565b610d87565b610cd7565b610caf565b610c76565b610c3c565b610be1565b610ab1565b610a77565b61093f565b6108e9565b6107f0565b6107a5565b610759565b610715565b6106dc565b610568565b610524565b6104e0565b610491565b61044d565b610390565b6102af565b3461029a57602036600319011261029a5760043563ffffffff60e01b811680910361029a57602090637965db0b60e01b8114908115610289575b506040519015158152f35b6301ffc9a760e01b1490505f61027e565b5f80fd5b6001600160a01b0381160361029a57565b3461029a57606036600319011261029a576024356004356102cf8261029e565b604435916102db6116f7565b815f526004602052826103096103048360405f209060018060a01b03165f5260205260405f2090565b61190f565b1461037e5760207ffc9545f07ffadfb668efd0144cdcaf2d6e2c8192dce1ea9fc131934f9c90fc7e91835f52600482526103698561035a8360405f209060018060a01b03165f5260205260405f2090565b61036342612254565b9061184d565b50506040519485526001600160a01b031693a3005b60405163a741a04560e01b8152600490fd5b3461029a5760408060031936011261029a5760043590602435906103b2611754565b825f526002602052805f2054821161043d57825f526003602052816103d8825f2061190f565b1461042d5781610428916104187e899d104fc3d8820bd96540612bcc5c448c8837b13b9f7faa43ad0728f0c14f9461035a875f52600360205260405f2090565b5050519081529081906020820190565b0390a2005b5163a741a04560e01b8152600490fd5b51631eefc06360e31b8152600490fd5b3461029a575f36600319011261029a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461029a57604036600319011261029a5760206104d86103046024356104b68161029e565b6004355f526004845260405f209060018060a01b03165f5260205260405f2090565b604051908152f35b3461029a575f36600319011261029a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461029a575f36600319011261029a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461029a57604036600319011261029a576004356001600160601b038116810361029a576024359061059861195c565b6040516302910f8b60e31b81523360048201526020816024816001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165afa9081156106d7575f916106a8575b5015610696576001600160601b03166bffffffffffffffffffffffff193360601b16179080610622835f52600260205260405f2090565b541461037e5761067b817fc67e7929681aa1bccd63f52b3799bf5805f3009f197db6fdf584b14f7fbf608c92610660855f52600260205260405f2090565b5561066b818561198b565b6040519081529081906020820190565b0390a261069460015f80516020612a7a83398151915255565b005b6040516323d53b9760e21b8152600490fd5b6106ca915060203d6020116106d0575b6106c28183610b31565b810190611226565b5f6105eb565b503d6106b8565b61123e565b3461029a57602036600319011261029a576004355f525f80516020612a5a8339815191526020526020600160405f200154604051908152f35b3461029a575f36600319011261029a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461029a57604036600319011261029a5761069460243560043561077c8261029e565b805f525f80516020612a5a8339815191526020526107a0600160405f2001546117aa565b611c66565b3461029a57604036600319011261029a576024356107c28161029e565b336001600160a01b038216036107de5761069490600435611c9c565b60405163334bd91960e11b8152600490fd5b3461029a57602036600319011261029a5760043561080d8161029e565b61081561195c565b335f9081527f9ebbcbe0d2961d3fbe56ca6f679bc753bd848d3e6bb3eaf9041c51b286881d2c60205260409020547fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c9060ff16156108cb57506001546001600160a01b03918216918116821461037e576001600160a01b03191681176001557f5bbb1d3ebb6a3ad2a0f17ff35e579a83af60604d1d3c2a4c83c62adecadf666d5f80a260015f80516020612a7a83398151915255005b6044906040519063e2517d3f60e01b82523360048301526024820152fd5b3461029a57602036600319011261029a576004355f52600360205260206104d860405f2061190f565b9181601f8401121561029a578235916001600160401b03831161029a576020838186019501011161029a57565b3461029a57602036600319011261029a576001600160401b0360043581811161029a57610970903690600401610912565b5f80516020612a9a833981519152549260ff8460401c1615931680159081610a6f575b6001149081610a65575b159081610a5c575b50610a4a575f80516020612a9a833981519152805467ffffffffffffffff191660011790556109d89183610a2657611d64565b6109de57005b5f80516020612a9a833981519152805460ff60401b19169055604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a1005b5f80516020612a9a833981519152805460ff60401b1916600160401b179055611d64565b60405163f92ee8a960e01b8152600490fd5b9050155f6109a5565b303b15915061099d565b849150610993565b3461029a575f36600319011261029a5760206040517f15e7c882d74e8821ebf34aaff46fd0e1d53b9393d91490019124113d28dc32a38152f35b3461029a575f36600319011261029a576020604051614e208152f35b6064359065ffffffffffff8216820361029a57565b634e487b7160e01b5f52604160045260245ffd5b604081019081106001600160401b03821117610b1157604052565b610ae2565b606081019081106001600160401b03821117610b1157604052565b90601f801991011681019081106001600160401b03821117610b1157604052565b60405190608082018281106001600160401b03821117610b1157604052565b60405190610b7e82610af6565b565b6001600160401b038111610b1157601f01601f191660200190565b81601f8201121561029a57803590610bb282610b80565b92610bc06040519485610b31565b8284526020838301011161029a57815f926020809301838601378301015290565b3461029a57606036600319011261029a5760243565ffffffffffff8116810361029a576044356001600160401b03811161029a57602091610c296104d8923690600401610b9b565b906004355f526003845260405f20611ed3565b3461029a575f36600319011261029a5760206040517fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c8152f35b3461029a575f36600319011261029a5760206040517e8b9b1e5fa9cf3b14f87f435649268146305ddf689f082e5961a335b07a9abf8152f35b3461029a575f36600319011261029a576001546040516001600160a01b039091168152602090f35b3461029a57604036600319011261029a57602060ff610d29602435610cfb8161029e565b6004355f525f80516020612a5a833981519152845260405f209060018060a01b03165f5260205260405f2090565b54166040519015158152f35b90608060031983011261029a5760043591602435610d528161029e565b9160443565ffffffffffff8116810361029a5791606435906001600160401b03821161029a57610d8491600401610b9b565b90565b3461029a5760206104d8610dc0610d9d36610d35565b939190925f526004865260405f209060018060a01b03165f5260205260405f2090565b611ed3565b3461029a5760408060031936011261029a57600435610de38161029e565b602435906001600160401b03821161029a575f8091610e09610e6d943690600401610912565b908187519283928337810184815203915af43d15610e7557610e5f3d610e2e81610b80565b90610e3b86519283610b31565b81523d5f602083013e5b84519485931515602085015280840152606083019061128b565b03601f198101835282610b31565b805190602001fd5b610e5f6060610e45565b3461029a575f36600319011261029a5760206040515f8152f35b3461029a575f36600319011261029a5760206040516001600160401b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461029a575f36600319011261029a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461029a57602036600319011261029a576004355f526002602052602060405f2054604051908152f35b3461029a57604036600319011261029a57610694602435600435610f6d8261029e565b805f525f80516020612a5a833981519152602052610f91600160405f2001546117aa565b611c9c565b3461029a5760206104d8610fa936610d35565b929190916113b1565b3461029a5760a036600319011261029a57602435600435610fd28261029e565b60443591610fde610acd565b90608435906001600160401b03821161029a5761100060049236908401610b9b565b61100861195c565b5f5460209061102d90611021906001600160a01b031681565b6001600160a01b031690565b60405163b134427160e01b815294859182905afa9283156106d7575f9361116c575b506001600160a01b03928316330361115a576001546001600160a01b03168381166110cf575b50506040805195865265ffffffffffff909316602086015216927f741a5de99085c0d660f3e4192217b0ffb0ea4e35a0480de48e857a4bc3ee36ed91819081015b0390a361069460015f80516020612a7a83398151915255565b909360405194611106866110f8602082019363724ab0f760e11b8552858c898d60248701611550565b03601f198101885287610b31565b62042e305a10611148575f6110b6938192827f741a5de99085c0d660f3e4192217b0ffb0ea4e35a0480de48e857a4bc3ee36ed9951926203d090f15093611075565b604051638072475160e01b8152600490fd5b60405163dabc4ad960e01b8152600490fd5b61118f91935060203d602011611196575b6111878183610b31565b81019061153b565b915f61104f565b503d61117d565b3461029a575f36600319011261029a575f546040516001600160a01b039091168152602090f35b3461029a57604036600319011261029a5760206104d86024356111e68161029e565b6004356115cd565b3461029a575f36600319011261029a5760206040516203d0908152f35b3461029a575f36600319011261029a57602060405160018152f35b9081602091031261029a5751801515810361029a5790565b6040513d5f823e3d90fd5b90610d8492915f52600360205260405f20611ed3565b5f9081526004602090815260408083206001600160a01b03909416835292905220610d84929190611ed3565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b604051906112bc82610af6565b60606020838281520152565b81601f8201121561029a578051906112df82610b80565b926112ed6040519485610b31565b8284526020838301011161029a57815f9260208093018386015e8301015290565b9060208282031261029a5781516001600160401b039283821161029a57019060408282031261029a576040519261134484610af6565b825181811161029a57826113599185016112c8565b8452602083015190811161029a5761137192016112c8565b602082015290565b6001600160a01b0391821681529116602082015265ffffffffffff9091166040820152608060608201819052610d849291019061128b565b926113c1909291928284866120b9565b9290936113cc6112af565b9380518061151f575b50508415938415611489575b84156113f8575b505050506113f35790565b505f90565b602080949550611423910151604051958694859463530e1d4360e01b865260601c9060048601611379565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa9081156106d7575f9161146a575b50155f8080806113e8565b611483915060203d6020116106d0576106c28183610b31565b5f61145f565b5f549094506001600160a01b03166020848651926114bc604051948593849363530e1d4360e01b85528960048601611379565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa9081156106d7575f91611500575b5015936113e1565b611519915060203d6020116106d0576106c28183610b31565b5f6114f8565b61153392955060208091830101910161130e565b925f806113d5565b9081602091031261029a5751610d848161029e565b919360a093610d84969565ffffffffffff938552600180871b031660208501526040840152166060820152816080820152019061128b565b634e487b7160e01b5f52601160045260245ffd5b81156115a6570490565b634e487b7160e01b5f52601260045260245ffd5b90600182018092116115c857565b611588565b5f546040516308834cb560e21b8082526001600160a01b0385811660048401529283166024830152929392602092909183816044817f000000000000000000000000000000000000000000000000000000000000000086165afa9081156106d7575f916116da575b5015918215611656575b5050905061165057610d84916121ae565b50505f90565b6040519081526001600160a01b0385166004820152606086901c602482015291508290829060449082907f0000000000000000000000000000000000000000000000000000000000000000165afa9182156106d7575f926116bd575b505015805f8061163f565b6116d39250803d106106d0576106c28183610b31565b5f806116b2565b6116f19150843d86116106d0576106c28183610b31565b5f611635565b335f9081527f24e48de785eeca8420b70f73d267a66970ccc187d459f2a4b53e74ed92a5ab86602052604090207f15e7c882d74e8821ebf34aaff46fd0e1d53b9393d91490019124113d28dc32a39060ff905b5416156108cb5750565b335f9081527f72a65082a5691803ab2b62c9bc729b34205ba1b183d950896526b2fd8714d0c7602052604090207e8b9b1e5fa9cf3b14f87f435649268146305ddf689f082e5961a335b07a9abf9060ff9061174a565b5f8181525f80516020612a5a83398151915260209081526040808320338452909152902060ff9061174a565b634e487b7160e01b5f52603260045260245ffd5b80548210156117ff575f5260205f2001905f90565b6117d6565b90815491600160401b831015610b115782611827916001610b7e950181556117ea565b90919082549060031b91821b915f19901b1916179055565b5f198101919082116115c857565b909291926001820190815480156118df575b508461186a846122aa565b5094909284549361187a8361190f565b96816118ca575b50156118a7575050505f1981019081116115c85761182785916118a3936117ea565b9190565b6118a39492936118c3926001600160d01b03909116919061277e565b5050611804565b65ffffffffffff83811691161490505f611881565b600160401b811015610b11578060016118fb92018455836117ea565b8154905f199060031b1b191690555f61185f565b80548061193e57505f5b6001600160d01b0381161561165057600161193492016117ea565b90549060031b1c90565b5f199080828101116115c857825f5260205f2001015460301c611919565b5f80516020612a7a83398151915260028154146119795760029055565b604051633ee5aeb560e01b8152600490fd5b90815f52600360205260405f20816119a2826122aa565b919390508315611a00576119c2916001600160d01b0316906001016117ea565b90549060031b1c5b826119f6575b50506119da575050565b6119f2915f52600360205260405f2061036342612254565b5050565b119050815f6119d0565b50505f6119ca565b6001600160a01b0381165f9081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d60205260409020545f80516020612a5a8339815191529060ff16611650575f808052602091825260408082206001600160a01b038516835290925220805460ff1916600117905533906001600160a01b03165f7f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d8180a4600190565b6001600160a01b0381165f9081527f9ebbcbe0d2961d3fbe56ca6f679bc753bd848d3e6bb3eaf9041c51b286881d2c602052604090207fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c905f80516020612a5a8339815191529060ff905b5416611b82575f828152602091825260408082206001600160a01b038616835290925220805460ff1916600117905533916001600160a01b0316907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d5f80a4600190565b5050505f90565b6001600160a01b0381165f9081527f72a65082a5691803ab2b62c9bc729b34205ba1b183d950896526b2fd8714d0c7602052604090207e8b9b1e5fa9cf3b14f87f435649268146305ddf689f082e5961a335b07a9abf905f80516020612a5a8339815191529060ff90611b1e565b6001600160a01b0381165f9081527f24e48de785eeca8420b70f73d267a66970ccc187d459f2a4b53e74ed92a5ab86602052604090207f15e7c882d74e8821ebf34aaff46fd0e1d53b9393d91490019124113d28dc32a3905f80516020612a5a8339815191529060ff90611b1e565b5f8181525f80516020612a5a833981519152602081815260408084206001600160a01b038716855290915290912060ff90611b1e565b5f8181525f80516020612a5a833981519152602081815260408084206001600160a01b03871685529091529091205460ff1615611b82575f828152602091825260408082206001600160a01b038616835290925220805460ff1916905533916001600160a01b0316907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b5f80a4600190565b91909160408184031261029a578035611d468161029e565b9260208201356001600160401b03811161029a57610d849201610b9b565b611d7091810190611d2e565b6040516302910f8b60e31b81526001600160a01b039283166004820181905291906020816024817f000000000000000000000000000000000000000000000000000000000000000088165afa9081156106d7575f91611e83575b5015611e7157611e05604091611e00611e4b94611de56122f9565b60018060a01b03166001600160601b0360a01b5f5416175f55565b612479565b6020810151600180546001600160a01b0319166001600160a01b0390921691909117905580516001600160a01b0316848116611e61575b5001516001600160a01b031690565b908116611e555750565b611e5e90611ab3565b50565b611e6a90611a08565b505f611e3c565b6040516362df054560e01b8152600490fd5b611e9c915060203d6020116106d0576106c28183610b31565b5f611dca565b9081602091031261029a575163ffffffff8116810361029a5790565b90600163ffffffff809316019182116115c857565b91805115611fac5780602080611eee93518301019101611ea2565b91611ef983826126a9565b92611f0a845165ffffffffffff1690565b9065ffffffffffff8085169216828114611fa05782119182611f40575b5050611f3757610d8492506125d9565b50506020015190565b909150611f4d835461183f565b63ffffffff831614918215611f66575b50505f80611f27565b611f98919250611f81611f7b611f8d92611ebe565b856126a9565b5165ffffffffffff1690565b65ffffffffffff1690565b115f80611f5d565b50505050506020015190565b50610d84916125d9565b60405190608082018281106001600160401b03821117610b1157604052606080838181528160208201528160408201520152565b9060208282031261029a5781516001600160401b039283821161029a57019060808282031261029a5761201b610b52565b92825181811161029a57826120319185016112c8565b8452602083015181811161029a578261204b9185016112c8565b6020850152604083015181811161029a57826120689185016112c8565b6040850152606083015190811161029a5761208392016112c8565b606082015290565b9081602091031261029a575190565b60409065ffffffffffff610d849493168152816020820152019061128b565b939190936120c5611fb6565b9380518061218e575b505061210f92939460206120ee6110216110215f5460018060a01b031690565b8188015190604051808098819463810da75d60e01b8352896004840161209a565b03915afa9182156106d757612150945f93612155575b5061214a9061214a939461213e60408a01518284611249565b9360608a01519261125f565b90612711565b915190565b61214a93509061217f61214a9260203d602011612187575b6121778183610b31565b81019061208b565b935090612125565b503d61216d565b61210f949550906020806121a6938301019101611fea565b93925f6120ce565b5f5460405163bd49c35f60e01b8152929190602090849060049082906001600160a01b03165afa9081156106d757610d84935f92612229575b5061214a61030461214a9394612208610304855f52600360205260405f2090565b935f52600460205260405f209060018060a01b03165f5260205260405f2090565b61214a925061030461224c61214a9260203d602011612187576121778183610b31565b9350506121e7565b65ffffffffffff90818111612267571690565b604490604051906306dfcc6560e41b8252603060048301526024820152fd5b9060405161229381610af6565b915465ffffffffffff8116835260301c6020830152565b8054806122bb5750505f905f905f90565b5f199080828101116115c8576122d8925f5260205f200101612286565b9065ffffffffffff82511691602060018060d01b0391015116906001929190565b612301612899565b612309612899565b60015f80516020612a7a83398151915255565b6040519061232982610b16565b5f6040838281528260208201520152565b81601f8201121561029a578051916020916001600160401b038411610b11578360051b906040519461236e85840187610b31565b8552838086019282010192831161029a578301905b828210612391575050505090565b838091835161239f8161029e565b815201910190612383565b9060208282031261029a5781516001600160401b039283821161029a5701908181039260a0841261029a576060604051946123e486610b16565b1261029a576040516123f581610b16565b83516124008161029e565b815260208401516124108161029e565b602082015260408401516124238161029e565b60408201528452606083015181811161029a578261244291850161233a565b6020850152608083015190811161029a5761245d920161233a565b604082015290565b80518210156117ff5760209160051b010190565b6124959061248561231c565b50602080825183010191016123aa565b8051519091906001600160a01b031615806125bf575b6125ad579060208101905f5b82518051821015612531576110216124d2836124df93612465565b516001600160a01b031690565b1561251f576125016124fd6124f86124d2848751612465565b611b89565b1590565b61250d576001016124b7565b604051635140fefd60e11b8152600490fd5b6040516323cda06760e01b8152600490fd5b506040925050818101905f5b825180518210156125a4576110216124d28361255893612465565b15612593576125766124fd6125716124d2848751612465565b611bf7565b6125825760010161253d565b8351635140fefd60e11b8152600490fd5b83516323cda06760e01b8152600490fd5b50509150505190565b6040516303501f5960e11b8152600490fd5b5060208201515115806124ab5750604082015151156124ab565b908154905f829160058411612643575b6125f49350846129fa565b8061261c57505f905b6001600160d01b0382161561165057610d8491600161193492016117ea565b61263661262b61263d9261183f565b835f5260205f200190565b5460301c90565b906125fd565b919261264e816128c7565b81039081116115c8576125f493855f5265ffffffffffff808360205f20015416908516105f1461267f5750916125e9565b92915061268b906115ba565b906125e9565b6040519061269e82610af6565b5f6020838281520152565b906126d26126cc6126f3926126bc612691565b506126c5612691565b50846117ea565b50612286565b91600165ffffffffffff845116936020828060d01b039101511691016117ea565b9054906040519261270384610af6565b835260031b1c602082015290565b908082101561271e575090565b905090565b8054600160401b811015610b1157612740916001820181556117ea565b61276b57815160209092015160301b65ffffffffffff191665ffffffffffff92909216919091179055565b634e487b7160e01b5f525f60045260245ffd5b8054929392919082156128705761279f61279a61262b8561183f565b612286565b906127b0825165ffffffffffff1690565b65ffffffffffff8481169116811061285e576118a39460209488926127de611f8d875165ffffffffffff1690565b036128265750612818926127f46127ff9261183f565b905f5260205f200190565b9065ffffffffffff82549181199060301b169116179055565b01516001600160d01b031690565b91505061285991612846612838610b71565b65ffffffffffff9093168352565b6001600160d01b03881682860152612723565b612818565b604051632520601d60e01b8152600490fd5b6128949250612880612838610b71565b6001600160d01b0385166020830152612723565b5f9190565b60ff5f80516020612a9a8339815191525460401c16156128b557565b604051631afcd79f60e31b8152600490fd5b80156113f3578061214a61299261298861297e61297461296a6129606129566001610d849a5f908b60801c806129ee575b508060401c806129e1575b508060201c806129d4575b508060101c806129c7575b508060081c806129ba575b508060041c806129ad575b508060021c806129a0575b50821c612999575b811c1b61294f818b61159c565b0160011c90565b61294f818a61159c565b61294f818961159c565b61294f818861159c565b61294f818761159c565b61294f818661159c565b61294f818561159c565b809261159c565b8101612942565b600291509101905f61293a565b600491509101905f61292f565b600891509101905f612924565b601091509101905f612919565b602091509101905f61290e565b604091509101905f612903565b9150506080905f6128f8565b91905b838210612a0a5750505090565b9091928083169080841860011c82018092116115c857845f5265ffffffffffff808360205f20015416908416105f14612a475750925b91906129fd565b939250612a53906115ba565b91612a4056fe02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268009b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a2646970667358221220dd919c92c5c4e9880f5a51cce7ea94075f9e1664049d05ef4b127cb5a770ab1464736f6c63430008190033","sourceMap":"536:5807:82:-:0;;;;-1:-1:-1;;;;;536:5807:82;;;;;;;;;;-1:-1:-1;;536:5807:82;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;8837:64:26;536:5807:82;;;;;;;;;7896:76:26;;536:5807:82;;;;7985:34:26;7981:146;;-1:-1:-1;525:17:74;;;536:5807:82;525:17:74;536:5807:82;552:12:74;536:5807:82;2360:34:81;2404:28;;2442:57;;;;2509:61;;;;536:5807:82;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2404:28:81;536:5807:82;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7981:146:26;-1:-1:-1;;;;;;536:5807:82;;;;;;;;;;;;;8087:29:26;;536:5807:82;;8087:29:26;7981:146;;;;;7896:76;536:5807:82;;-1:-1:-1;;;7938:23:26;;;;;536:5807:82;-1:-1:-1;536:5807:82;;;;;;-1:-1:-1;536:5807:82;;;;;-1:-1:-1;536:5807:82;;;;-1:-1:-1;;;;;536:5807:82;;;;;;:::o","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361015610011575f80fd5b5f3560e01c806301ffc9a714610244578063020cf0c21461023f578063021453481461023a578063103f2907146102355780631142209514610230578063128e5d821461022b5780631a80e5001461022657806323f752d514610221578063248a9ca31461021c5780632dd31000146102175780632f2ff15d1461021257806336568abe1461020d5780633dfd3873146102085780633eb22c0f14610203578063439fab91146101fe578063518504ba146101f9578063557cab44146101f45780635d32a1c9146101ef5780636679191e146101ea5780637d24bb27146101e55780637f5a7c7b146101e057806391d14854146101db57806394d2558a146101d65780639f86fd85146101d1578063a217fddf146101cc578063bb24fe8a146101c7578063c0cd7c3e146101c2578063d15b740e146101bd578063d547741f146101b8578063e02f6937146101b3578063e49561ee146101ae578063fbfa77cf146101a9578063fd4d447c146101a4578063ff54740f1461019f5763ffa1ad741461019a575f80fd5b61120b565b6111ee565b6111c4565b61119d565b610fb2565b610f96565b610f4a565b610f20565b610edc565b610e99565b610e7f565b610dc5565b610d87565b610cd7565b610caf565b610c76565b610c3c565b610be1565b610ab1565b610a77565b61093f565b6108e9565b6107f0565b6107a5565b610759565b610715565b6106dc565b610568565b610524565b6104e0565b610491565b61044d565b610390565b6102af565b3461029a57602036600319011261029a5760043563ffffffff60e01b811680910361029a57602090637965db0b60e01b8114908115610289575b506040519015158152f35b6301ffc9a760e01b1490505f61027e565b5f80fd5b6001600160a01b0381160361029a57565b3461029a57606036600319011261029a576024356004356102cf8261029e565b604435916102db6116f7565b815f526004602052826103096103048360405f209060018060a01b03165f5260205260405f2090565b61190f565b1461037e5760207ffc9545f07ffadfb668efd0144cdcaf2d6e2c8192dce1ea9fc131934f9c90fc7e91835f52600482526103698561035a8360405f209060018060a01b03165f5260205260405f2090565b61036342612254565b9061184d565b50506040519485526001600160a01b031693a3005b60405163a741a04560e01b8152600490fd5b3461029a5760408060031936011261029a5760043590602435906103b2611754565b825f526002602052805f2054821161043d57825f526003602052816103d8825f2061190f565b1461042d5781610428916104187e899d104fc3d8820bd96540612bcc5c448c8837b13b9f7faa43ad0728f0c14f9461035a875f52600360205260405f2090565b5050519081529081906020820190565b0390a2005b5163a741a04560e01b8152600490fd5b51631eefc06360e31b8152600490fd5b3461029a575f36600319011261029a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461029a57604036600319011261029a5760206104d86103046024356104b68161029e565b6004355f526004845260405f209060018060a01b03165f5260205260405f2090565b604051908152f35b3461029a575f36600319011261029a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461029a575f36600319011261029a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461029a57604036600319011261029a576004356001600160601b038116810361029a576024359061059861195c565b6040516302910f8b60e31b81523360048201526020816024816001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165afa9081156106d7575f916106a8575b5015610696576001600160601b03166bffffffffffffffffffffffff193360601b16179080610622835f52600260205260405f2090565b541461037e5761067b817fc67e7929681aa1bccd63f52b3799bf5805f3009f197db6fdf584b14f7fbf608c92610660855f52600260205260405f2090565b5561066b818561198b565b6040519081529081906020820190565b0390a261069460015f80516020612a7a83398151915255565b005b6040516323d53b9760e21b8152600490fd5b6106ca915060203d6020116106d0575b6106c28183610b31565b810190611226565b5f6105eb565b503d6106b8565b61123e565b3461029a57602036600319011261029a576004355f525f80516020612a5a8339815191526020526020600160405f200154604051908152f35b3461029a575f36600319011261029a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461029a57604036600319011261029a5761069460243560043561077c8261029e565b805f525f80516020612a5a8339815191526020526107a0600160405f2001546117aa565b611c66565b3461029a57604036600319011261029a576024356107c28161029e565b336001600160a01b038216036107de5761069490600435611c9c565b60405163334bd91960e11b8152600490fd5b3461029a57602036600319011261029a5760043561080d8161029e565b61081561195c565b335f9081527f9ebbcbe0d2961d3fbe56ca6f679bc753bd848d3e6bb3eaf9041c51b286881d2c60205260409020547fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c9060ff16156108cb57506001546001600160a01b03918216918116821461037e576001600160a01b03191681176001557f5bbb1d3ebb6a3ad2a0f17ff35e579a83af60604d1d3c2a4c83c62adecadf666d5f80a260015f80516020612a7a83398151915255005b6044906040519063e2517d3f60e01b82523360048301526024820152fd5b3461029a57602036600319011261029a576004355f52600360205260206104d860405f2061190f565b9181601f8401121561029a578235916001600160401b03831161029a576020838186019501011161029a57565b3461029a57602036600319011261029a576001600160401b0360043581811161029a57610970903690600401610912565b5f80516020612a9a833981519152549260ff8460401c1615931680159081610a6f575b6001149081610a65575b159081610a5c575b50610a4a575f80516020612a9a833981519152805467ffffffffffffffff191660011790556109d89183610a2657611d64565b6109de57005b5f80516020612a9a833981519152805460ff60401b19169055604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a1005b5f80516020612a9a833981519152805460ff60401b1916600160401b179055611d64565b60405163f92ee8a960e01b8152600490fd5b9050155f6109a5565b303b15915061099d565b849150610993565b3461029a575f36600319011261029a5760206040517f15e7c882d74e8821ebf34aaff46fd0e1d53b9393d91490019124113d28dc32a38152f35b3461029a575f36600319011261029a576020604051614e208152f35b6064359065ffffffffffff8216820361029a57565b634e487b7160e01b5f52604160045260245ffd5b604081019081106001600160401b03821117610b1157604052565b610ae2565b606081019081106001600160401b03821117610b1157604052565b90601f801991011681019081106001600160401b03821117610b1157604052565b60405190608082018281106001600160401b03821117610b1157604052565b60405190610b7e82610af6565b565b6001600160401b038111610b1157601f01601f191660200190565b81601f8201121561029a57803590610bb282610b80565b92610bc06040519485610b31565b8284526020838301011161029a57815f926020809301838601378301015290565b3461029a57606036600319011261029a5760243565ffffffffffff8116810361029a576044356001600160401b03811161029a57602091610c296104d8923690600401610b9b565b906004355f526003845260405f20611ed3565b3461029a575f36600319011261029a5760206040517fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c8152f35b3461029a575f36600319011261029a5760206040517e8b9b1e5fa9cf3b14f87f435649268146305ddf689f082e5961a335b07a9abf8152f35b3461029a575f36600319011261029a576001546040516001600160a01b039091168152602090f35b3461029a57604036600319011261029a57602060ff610d29602435610cfb8161029e565b6004355f525f80516020612a5a833981519152845260405f209060018060a01b03165f5260205260405f2090565b54166040519015158152f35b90608060031983011261029a5760043591602435610d528161029e565b9160443565ffffffffffff8116810361029a5791606435906001600160401b03821161029a57610d8491600401610b9b565b90565b3461029a5760206104d8610dc0610d9d36610d35565b939190925f526004865260405f209060018060a01b03165f5260205260405f2090565b611ed3565b3461029a5760408060031936011261029a57600435610de38161029e565b602435906001600160401b03821161029a575f8091610e09610e6d943690600401610912565b908187519283928337810184815203915af43d15610e7557610e5f3d610e2e81610b80565b90610e3b86519283610b31565b81523d5f602083013e5b84519485931515602085015280840152606083019061128b565b03601f198101835282610b31565b805190602001fd5b610e5f6060610e45565b3461029a575f36600319011261029a5760206040515f8152f35b3461029a575f36600319011261029a5760206040516001600160401b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461029a575f36600319011261029a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461029a57602036600319011261029a576004355f526002602052602060405f2054604051908152f35b3461029a57604036600319011261029a57610694602435600435610f6d8261029e565b805f525f80516020612a5a833981519152602052610f91600160405f2001546117aa565b611c9c565b3461029a5760206104d8610fa936610d35565b929190916113b1565b3461029a5760a036600319011261029a57602435600435610fd28261029e565b60443591610fde610acd565b90608435906001600160401b03821161029a5761100060049236908401610b9b565b61100861195c565b5f5460209061102d90611021906001600160a01b031681565b6001600160a01b031690565b60405163b134427160e01b815294859182905afa9283156106d7575f9361116c575b506001600160a01b03928316330361115a576001546001600160a01b03168381166110cf575b50506040805195865265ffffffffffff909316602086015216927f741a5de99085c0d660f3e4192217b0ffb0ea4e35a0480de48e857a4bc3ee36ed91819081015b0390a361069460015f80516020612a7a83398151915255565b909360405194611106866110f8602082019363724ab0f760e11b8552858c898d60248701611550565b03601f198101885287610b31565b62042e305a10611148575f6110b6938192827f741a5de99085c0d660f3e4192217b0ffb0ea4e35a0480de48e857a4bc3ee36ed9951926203d090f15093611075565b604051638072475160e01b8152600490fd5b60405163dabc4ad960e01b8152600490fd5b61118f91935060203d602011611196575b6111878183610b31565b81019061153b565b915f61104f565b503d61117d565b3461029a575f36600319011261029a575f546040516001600160a01b039091168152602090f35b3461029a57604036600319011261029a5760206104d86024356111e68161029e565b6004356115cd565b3461029a575f36600319011261029a5760206040516203d0908152f35b3461029a575f36600319011261029a57602060405160018152f35b9081602091031261029a5751801515810361029a5790565b6040513d5f823e3d90fd5b90610d8492915f52600360205260405f20611ed3565b5f9081526004602090815260408083206001600160a01b03909416835292905220610d84929190611ed3565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b604051906112bc82610af6565b60606020838281520152565b81601f8201121561029a578051906112df82610b80565b926112ed6040519485610b31565b8284526020838301011161029a57815f9260208093018386015e8301015290565b9060208282031261029a5781516001600160401b039283821161029a57019060408282031261029a576040519261134484610af6565b825181811161029a57826113599185016112c8565b8452602083015190811161029a5761137192016112c8565b602082015290565b6001600160a01b0391821681529116602082015265ffffffffffff9091166040820152608060608201819052610d849291019061128b565b926113c1909291928284866120b9565b9290936113cc6112af565b9380518061151f575b50508415938415611489575b84156113f8575b505050506113f35790565b505f90565b602080949550611423910151604051958694859463530e1d4360e01b865260601c9060048601611379565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa9081156106d7575f9161146a575b50155f8080806113e8565b611483915060203d6020116106d0576106c28183610b31565b5f61145f565b5f549094506001600160a01b03166020848651926114bc604051948593849363530e1d4360e01b85528960048601611379565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa9081156106d7575f91611500575b5015936113e1565b611519915060203d6020116106d0576106c28183610b31565b5f6114f8565b61153392955060208091830101910161130e565b925f806113d5565b9081602091031261029a5751610d848161029e565b919360a093610d84969565ffffffffffff938552600180871b031660208501526040840152166060820152816080820152019061128b565b634e487b7160e01b5f52601160045260245ffd5b81156115a6570490565b634e487b7160e01b5f52601260045260245ffd5b90600182018092116115c857565b611588565b5f546040516308834cb560e21b8082526001600160a01b0385811660048401529283166024830152929392602092909183816044817f000000000000000000000000000000000000000000000000000000000000000086165afa9081156106d7575f916116da575b5015918215611656575b5050905061165057610d84916121ae565b50505f90565b6040519081526001600160a01b0385166004820152606086901c602482015291508290829060449082907f0000000000000000000000000000000000000000000000000000000000000000165afa9182156106d7575f926116bd575b505015805f8061163f565b6116d39250803d106106d0576106c28183610b31565b5f806116b2565b6116f19150843d86116106d0576106c28183610b31565b5f611635565b335f9081527f24e48de785eeca8420b70f73d267a66970ccc187d459f2a4b53e74ed92a5ab86602052604090207f15e7c882d74e8821ebf34aaff46fd0e1d53b9393d91490019124113d28dc32a39060ff905b5416156108cb5750565b335f9081527f72a65082a5691803ab2b62c9bc729b34205ba1b183d950896526b2fd8714d0c7602052604090207e8b9b1e5fa9cf3b14f87f435649268146305ddf689f082e5961a335b07a9abf9060ff9061174a565b5f8181525f80516020612a5a83398151915260209081526040808320338452909152902060ff9061174a565b634e487b7160e01b5f52603260045260245ffd5b80548210156117ff575f5260205f2001905f90565b6117d6565b90815491600160401b831015610b115782611827916001610b7e950181556117ea565b90919082549060031b91821b915f19901b1916179055565b5f198101919082116115c857565b909291926001820190815480156118df575b508461186a846122aa565b5094909284549361187a8361190f565b96816118ca575b50156118a7575050505f1981019081116115c85761182785916118a3936117ea565b9190565b6118a39492936118c3926001600160d01b03909116919061277e565b5050611804565b65ffffffffffff83811691161490505f611881565b600160401b811015610b11578060016118fb92018455836117ea565b8154905f199060031b1b191690555f61185f565b80548061193e57505f5b6001600160d01b0381161561165057600161193492016117ea565b90549060031b1c90565b5f199080828101116115c857825f5260205f2001015460301c611919565b5f80516020612a7a83398151915260028154146119795760029055565b604051633ee5aeb560e01b8152600490fd5b90815f52600360205260405f20816119a2826122aa565b919390508315611a00576119c2916001600160d01b0316906001016117ea565b90549060031b1c5b826119f6575b50506119da575050565b6119f2915f52600360205260405f2061036342612254565b5050565b119050815f6119d0565b50505f6119ca565b6001600160a01b0381165f9081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d60205260409020545f80516020612a5a8339815191529060ff16611650575f808052602091825260408082206001600160a01b038516835290925220805460ff1916600117905533906001600160a01b03165f7f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d8180a4600190565b6001600160a01b0381165f9081527f9ebbcbe0d2961d3fbe56ca6f679bc753bd848d3e6bb3eaf9041c51b286881d2c602052604090207fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c905f80516020612a5a8339815191529060ff905b5416611b82575f828152602091825260408082206001600160a01b038616835290925220805460ff1916600117905533916001600160a01b0316907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d5f80a4600190565b5050505f90565b6001600160a01b0381165f9081527f72a65082a5691803ab2b62c9bc729b34205ba1b183d950896526b2fd8714d0c7602052604090207e8b9b1e5fa9cf3b14f87f435649268146305ddf689f082e5961a335b07a9abf905f80516020612a5a8339815191529060ff90611b1e565b6001600160a01b0381165f9081527f24e48de785eeca8420b70f73d267a66970ccc187d459f2a4b53e74ed92a5ab86602052604090207f15e7c882d74e8821ebf34aaff46fd0e1d53b9393d91490019124113d28dc32a3905f80516020612a5a8339815191529060ff90611b1e565b5f8181525f80516020612a5a833981519152602081815260408084206001600160a01b038716855290915290912060ff90611b1e565b5f8181525f80516020612a5a833981519152602081815260408084206001600160a01b03871685529091529091205460ff1615611b82575f828152602091825260408082206001600160a01b038616835290925220805460ff1916905533916001600160a01b0316907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b5f80a4600190565b91909160408184031261029a578035611d468161029e565b9260208201356001600160401b03811161029a57610d849201610b9b565b611d7091810190611d2e565b6040516302910f8b60e31b81526001600160a01b039283166004820181905291906020816024817f000000000000000000000000000000000000000000000000000000000000000088165afa9081156106d7575f91611e83575b5015611e7157611e05604091611e00611e4b94611de56122f9565b60018060a01b03166001600160601b0360a01b5f5416175f55565b612479565b6020810151600180546001600160a01b0319166001600160a01b0390921691909117905580516001600160a01b0316848116611e61575b5001516001600160a01b031690565b908116611e555750565b611e5e90611ab3565b50565b611e6a90611a08565b505f611e3c565b6040516362df054560e01b8152600490fd5b611e9c915060203d6020116106d0576106c28183610b31565b5f611dca565b9081602091031261029a575163ffffffff8116810361029a5790565b90600163ffffffff809316019182116115c857565b91805115611fac5780602080611eee93518301019101611ea2565b91611ef983826126a9565b92611f0a845165ffffffffffff1690565b9065ffffffffffff8085169216828114611fa05782119182611f40575b5050611f3757610d8492506125d9565b50506020015190565b909150611f4d835461183f565b63ffffffff831614918215611f66575b50505f80611f27565b611f98919250611f81611f7b611f8d92611ebe565b856126a9565b5165ffffffffffff1690565b65ffffffffffff1690565b115f80611f5d565b50505050506020015190565b50610d84916125d9565b60405190608082018281106001600160401b03821117610b1157604052606080838181528160208201528160408201520152565b9060208282031261029a5781516001600160401b039283821161029a57019060808282031261029a5761201b610b52565b92825181811161029a57826120319185016112c8565b8452602083015181811161029a578261204b9185016112c8565b6020850152604083015181811161029a57826120689185016112c8565b6040850152606083015190811161029a5761208392016112c8565b606082015290565b9081602091031261029a575190565b60409065ffffffffffff610d849493168152816020820152019061128b565b939190936120c5611fb6565b9380518061218e575b505061210f92939460206120ee6110216110215f5460018060a01b031690565b8188015190604051808098819463810da75d60e01b8352896004840161209a565b03915afa9182156106d757612150945f93612155575b5061214a9061214a939461213e60408a01518284611249565b9360608a01519261125f565b90612711565b915190565b61214a93509061217f61214a9260203d602011612187575b6121778183610b31565b81019061208b565b935090612125565b503d61216d565b61210f949550906020806121a6938301019101611fea565b93925f6120ce565b5f5460405163bd49c35f60e01b8152929190602090849060049082906001600160a01b03165afa9081156106d757610d84935f92612229575b5061214a61030461214a9394612208610304855f52600360205260405f2090565b935f52600460205260405f209060018060a01b03165f5260205260405f2090565b61214a925061030461224c61214a9260203d602011612187576121778183610b31565b9350506121e7565b65ffffffffffff90818111612267571690565b604490604051906306dfcc6560e41b8252603060048301526024820152fd5b9060405161229381610af6565b915465ffffffffffff8116835260301c6020830152565b8054806122bb5750505f905f905f90565b5f199080828101116115c8576122d8925f5260205f200101612286565b9065ffffffffffff82511691602060018060d01b0391015116906001929190565b612301612899565b612309612899565b60015f80516020612a7a83398151915255565b6040519061232982610b16565b5f6040838281528260208201520152565b81601f8201121561029a578051916020916001600160401b038411610b11578360051b906040519461236e85840187610b31565b8552838086019282010192831161029a578301905b828210612391575050505090565b838091835161239f8161029e565b815201910190612383565b9060208282031261029a5781516001600160401b039283821161029a5701908181039260a0841261029a576060604051946123e486610b16565b1261029a576040516123f581610b16565b83516124008161029e565b815260208401516124108161029e565b602082015260408401516124238161029e565b60408201528452606083015181811161029a578261244291850161233a565b6020850152608083015190811161029a5761245d920161233a565b604082015290565b80518210156117ff5760209160051b010190565b6124959061248561231c565b50602080825183010191016123aa565b8051519091906001600160a01b031615806125bf575b6125ad579060208101905f5b82518051821015612531576110216124d2836124df93612465565b516001600160a01b031690565b1561251f576125016124fd6124f86124d2848751612465565b611b89565b1590565b61250d576001016124b7565b604051635140fefd60e11b8152600490fd5b6040516323cda06760e01b8152600490fd5b506040925050818101905f5b825180518210156125a4576110216124d28361255893612465565b15612593576125766124fd6125716124d2848751612465565b611bf7565b6125825760010161253d565b8351635140fefd60e11b8152600490fd5b83516323cda06760e01b8152600490fd5b50509150505190565b6040516303501f5960e11b8152600490fd5b5060208201515115806124ab5750604082015151156124ab565b908154905f829160058411612643575b6125f49350846129fa565b8061261c57505f905b6001600160d01b0382161561165057610d8491600161193492016117ea565b61263661262b61263d9261183f565b835f5260205f200190565b5460301c90565b906125fd565b919261264e816128c7565b81039081116115c8576125f493855f5265ffffffffffff808360205f20015416908516105f1461267f5750916125e9565b92915061268b906115ba565b906125e9565b6040519061269e82610af6565b5f6020838281520152565b906126d26126cc6126f3926126bc612691565b506126c5612691565b50846117ea565b50612286565b91600165ffffffffffff845116936020828060d01b039101511691016117ea565b9054906040519261270384610af6565b835260031b1c602082015290565b908082101561271e575090565b905090565b8054600160401b811015610b1157612740916001820181556117ea565b61276b57815160209092015160301b65ffffffffffff191665ffffffffffff92909216919091179055565b634e487b7160e01b5f525f60045260245ffd5b8054929392919082156128705761279f61279a61262b8561183f565b612286565b906127b0825165ffffffffffff1690565b65ffffffffffff8481169116811061285e576118a39460209488926127de611f8d875165ffffffffffff1690565b036128265750612818926127f46127ff9261183f565b905f5260205f200190565b9065ffffffffffff82549181199060301b169116179055565b01516001600160d01b031690565b91505061285991612846612838610b71565b65ffffffffffff9093168352565b6001600160d01b03881682860152612723565b612818565b604051632520601d60e01b8152600490fd5b6128949250612880612838610b71565b6001600160d01b0385166020830152612723565b5f9190565b60ff5f80516020612a9a8339815191525460401c16156128b557565b604051631afcd79f60e31b8152600490fd5b80156113f3578061214a61299261298861297e61297461296a6129606129566001610d849a5f908b60801c806129ee575b508060401c806129e1575b508060201c806129d4575b508060101c806129c7575b508060081c806129ba575b508060041c806129ad575b508060021c806129a0575b50821c612999575b811c1b61294f818b61159c565b0160011c90565b61294f818a61159c565b61294f818961159c565b61294f818861159c565b61294f818761159c565b61294f818661159c565b61294f818561159c565b809261159c565b8101612942565b600291509101905f61293a565b600491509101905f61292f565b600891509101905f612924565b601091509101905f612919565b602091509101905f61290e565b604091509101905f612903565b9150506080905f6128f8565b91905b838210612a0a5750505090565b9091928083169080841860011c82018092116115c857845f5265ffffffffffff808360205f20015416908416105f14612a475750925b91906129fd565b939250612a53906115ba565b91612a4056fe02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268009b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a2646970667358221220dd919c92c5c4e9880f5a51cce7ea94075f9e1664049d05ef4b127cb5a770ab1464736f6c63430008190033","sourceMap":"536:5807:82:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;;;;;-1:-1:-1;;536:5807:82;;;;;;;;;;;;;;;;;;-1:-1:-1;;;3551:47:24;;;:87;;;;536:5807:82;;;;;;;;;;3551:87:24;-1:-1:-1;;;1133:40:30;;-1:-1:-1;3551:87:24;;;536:5807:82;-1:-1:-1;536:5807:82;;;-1:-1:-1;;;;;536:5807:82;;;;;:::o;:::-;;;;;;-1:-1:-1;;536:5807:82;;;;;;;;;;;:::i;:::-;;;3202:4:24;;;:::i;:::-;536:5807:82;-1:-1:-1;536:5807:82;;;;;2662:52;:43;536:5807;;-1:-1:-1;536:5807:82;;;;;;;;;;;;;;;;;2662:43;:52;:::i;:::-;3458;3454:102;;536:5807;3656:53;536:5807;;-1:-1:-1;536:5807:82;;;;3566:74;536:5807;3566:43;536:5807;;-1:-1:-1;536:5807:82;;;;;;;;;;;;;;;;;3566:43;819:34:63;837:15;819:34;:::i;:::-;3566:74:82;;:::i;:::-;-1:-1:-1;;536:5807:82;;;;;-1:-1:-1;;;;;536:5807:82;;3656:53;536:5807;3454:102;536:5807;;-1:-1:-1;;;3533:12:82;;536:5807;;3533:12;536:5807;;;;;;;;;;;;;;;;;;3202:4:24;;;:::i;:::-;536:5807:82;-1:-1:-1;536:5807:82;2910:15;536:5807;;;-1:-1:-1;536:5807:82;;2901:36;;2897:98;;536:5807;-1:-1:-1;536:5807:82;2103:13;536:5807;;;2103:34;536:5807;-1:-1:-1;536:5807:82;2103:34;:::i;:::-;3009;3005:84;;3099:25;3171:35;3099:25;:56;3171:35;3099:25;;;536:5807;;2103:13;536:5807;;;;;;;3099:56;-1:-1:-1;;536:5807:82;;;;;;;;;;;;3171:35;;;;536:5807;3005:84;536:5807;-1:-1:-1;;;3066:12:82;;536:5807;;3066:12;2897:98;536:5807;-1:-1:-1;;;2960:24:82;;536:5807;;2960:24;536:5807;;;;;;-1:-1:-1;;536:5807:82;;;;;;1537:38:81;-1:-1:-1;;;;;536:5807:82;;;;;;;;;;;;-1:-1:-1;;536:5807:82;;;;;2662:52;:43;536:5807;;;;;:::i;:::-;;;-1:-1:-1;536:5807:82;;;;;-1:-1:-1;536:5807:82;;;;;;;;;;;;;;;;;2662:52;536:5807;;;;;;;;;;;;-1:-1:-1;;536:5807:82;;;;;;1632:54:81;-1:-1:-1;;;;;536:5807:82;;;;;;;;;;;;-1:-1:-1;;536:5807:82;;;;;;1743:56:81;-1:-1:-1;;;;;536:5807:82;;;;;;;;;;;;-1:-1:-1;;536:5807:82;;;;;;-1:-1:-1;;;;;536:5807:82;;;;;;;;3217:103:29;;;:::i;:::-;536:5807:82;;-1:-1:-1;;;4285:48:81;;4322:10;536:5807:82;4285:48:81;;536:5807:82;;;;;-1:-1:-1;;;;;4295:16:81;536:5807:82;4285:48:81;;;;;;;-1:-1:-1;4285:48:81;;;536:5807:82;4284:49:81;;4280:99;;-1:-1:-1;;;;;536:5807:82;-1:-1:-1;;4322:10:81;297:2:93;536:5807:82;;267:46:93;4459:27:81;;;;536:5807:82;;4459:15:81;536:5807:82;;;;;;;4459:27:81;536:5807:82;4459:37:81;4455:87;;4654:38;4552:27;4654:38;4552:27;;;536:5807:82;;4459:15:81;536:5807:82;;;;;;;4552:27:81;536:5807:82;4631:6:81;;;;:::i;:::-;536:5807:82;;;;;;;;;;;;;4654:38:81;;;;3282:1:29;1805;-1:-1:-1;;;;;;;;;;;536:5807:82;3716:283:29;3282:1;536:5807:82;4280:99:81;536:5807:82;;-1:-1:-1;;;4356:12:81;;536:5807:82;;4356:12:81;4285:48;;;;536:5807:82;4285:48:81;536:5807:82;4285:48:81;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;:::i;536:5807:82:-;;;;;;-1:-1:-1;;536:5807:82;;;;;;-1:-1:-1;536:5807:82;-1:-1:-1;;;;;;;;;;;536:5807:82;;;4919:24:24;536:5807:82;-1:-1:-1;536:5807:82;4919:24:24;536:5807:82;;;;;;;;;;;;;-1:-1:-1;;536:5807:82;;;;;;322:32:74;-1:-1:-1;;;;;536:5807:82;;;;;;;;;;;;-1:-1:-1;;536:5807:82;;;;5350:25:24;536:5807:82;;;;;;;:::i;:::-;;-1:-1:-1;536:5807:82;-1:-1:-1;;;;;;;;;;;536:5807:82;;3202:4:24;4919:24;536:5807:82;-1:-1:-1;536:5807:82;4919:24:24;536:5807:82;3202:4:24;:::i;:::-;5350:25;:::i;536:5807:82:-;;;;;;-1:-1:-1;;536:5807:82;;;;;;;;;:::i;:::-;966:10:28;-1:-1:-1;;;;;536:5807:82;;6441:34:24;6437:102;;6549:37;536:5807:82;;;6549:37:24;:::i;6437:102::-;536:5807:82;;-1:-1:-1;;;6498:30:24;;536:5807:82;;6498:30:24;536:5807:82;;;;;;-1:-1:-1;;536:5807:82;;;;;;;;;:::i;:::-;3217:103:29;;:::i;:::-;966:10:28;-1:-1:-1;536:5807:82;;;;;;;;;;1356:26:81;;536:5807:82;;4468:23:24;4464:108;;-1:-1:-1;4861:4:81;536:5807:82;-1:-1:-1;;;;;536:5807:82;;;;;;4861:13:81;;4857:63;;-1:-1:-1;;;;;;536:5807:82;;;4861:4:81;536:5807:82;4958:14:81;-1:-1:-1;;4958:14:81;4861:4;-1:-1:-1;;;;;;;;;;;536:5807:82;;4464:108:24;536:5807:82;;;;4514:47:24;;;;;;966:10:28;536:5807:82;4514:47:24;;536:5807:82;;;;;4514:47:24;536:5807:82;;;;;;-1:-1:-1;;536:5807:82;;;;;;-1:-1:-1;536:5807:82;2103:13;536:5807;;;2103:34;536:5807;-1:-1:-1;536:5807:82;2103:34;:::i;536:5807::-;;;;;;;;;;;;;-1:-1:-1;;;;;536:5807:82;;;;;;;;;;;;;;;:::o;:::-;;;;;;-1:-1:-1;;536:5807:82;;;;-1:-1:-1;;;;;536:5807:82;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;536:5807:82;;;;;;;4301:16:26;536:5807:82;;4726:16:26;;:34;;;;536:5807:82;4805:1:26;4790:16;:50;;;;536:5807:82;4855:13:26;:30;;;;536:5807:82;4851:91:26;;;-1:-1:-1;;;;;;;;;;;536:5807:82;;-1:-1:-1;;536:5807:82;;;;;718:4:74;;4951:18:26;4979:67;;718:4:74;:::i;:::-;5066:101:26;;536:5807:82;5066:101:26;-1:-1:-1;;;;;;;;;;;536:5807:82;;-1:-1:-1;;;;536:5807:82;;;;;-1:-1:-1;536:5807:82;;5142:14:26;;536:5807:82;;5142:14:26;536:5807:82;4979:67:26;-1:-1:-1;;;;;;;;;;;536:5807:82;;-1:-1:-1;;;;536:5807:82;-1:-1:-1;;;536:5807:82;;;718:4:74;:::i;4851:91:26:-;536:5807:82;;-1:-1:-1;;;4908:23:26;;536:5807:82;;4908:23:26;4855:30;4872:13;;;4855:30;;;4790:50;4818:4;4810:25;:30;;-1:-1:-1;4790:50:26;;4726:34;;;-1:-1:-1;4726:34:26;;536:5807:82;;;;;;-1:-1:-1;;536:5807:82;;;;;;;952:44;536:5807;;;;;;;;;-1:-1:-1;;536:5807:82;;;;;;;1253:6:81;536:5807:82;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;536:5807:82;;;;;;;:::o;:::-;;:::i;:::-;;;;;;;-1:-1:-1;;;;;536:5807:82;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;536:5807:82;;;;;;;:::o;:::-;;;;;;;;;;-1:-1:-1;;;;;536:5807:82;;;;;;;:::o;:::-;;;;;;;:::i;:::-;:::o;:::-;-1:-1:-1;;;;;536:5807:82;;;;;;-1:-1:-1;;536:5807:82;;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;536:5807:82;;;;;;;;;;;;;;:::o;:::-;;;;;;-1:-1:-1;;536:5807:82;;;;;;;;;;;;;;;-1:-1:-1;;;;;536:5807:82;;;;;;;1870:60;536:5807;;;;;;:::i;:::-;;;;-1:-1:-1;536:5807:82;1870:13;536:5807;;;-1:-1:-1;536:5807:82;1870:60;:::i;536:5807::-;;;;;;-1:-1:-1;;536:5807:82;;;;;;;1356:26:81;536:5807:82;;;;;;;;;-1:-1:-1;;536:5807:82;;;;;;;795:35;536:5807;;;;;;;;;-1:-1:-1;;536:5807:82;;;;;;;;-1:-1:-1;;;;;536:5807:82;;;;;;;;;;;;;;-1:-1:-1;;536:5807:82;;;;;;3901:31:24;536:5807:82;;;;;:::i;:::-;;;-1:-1:-1;536:5807:82;-1:-1:-1;;;;;;;;;;;536:5807:82;;;-1:-1:-1;536:5807:82;;;;;;;;;;;;;;;;;3901:31:24;536:5807:82;;;;;;;;;;;;;-1:-1:-1;;536:5807:82;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;-1:-1:-1;;;;;536:5807:82;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;2399:78;:43;536:5807;;;:::i;:::-;;;;;-1:-1:-1;536:5807:82;;;;;-1:-1:-1;536:5807:82;;;;;;;;;;;;;;;;;2399:43;:78;:::i;536:5807::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;536:5807:82;;;;-1:-1:-1;536:5807:82;;;477:31:80;536:5807:82;;;;;;:::i;:::-;;;;;;;;;;;;;;;416:25:80;;;;536:5807:82;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;-1:-1:-1;536:5807:82;;;;;;;;;;;;;477:31:80;;536:5807:82;;;;;;;;;;:::i;:::-;477:31:80;536:5807:82;;477:31:80;;;;;;:::i;:::-;518:79;;;536:5807:82;518:79:80;;536:5807:82;;;;;;;;;;;-1:-1:-1;;536:5807:82;;;;;;;;;;;;;;;;;-1:-1:-1;;536:5807:82;;;;;;;-1:-1:-1;;;;;404:28:74;536:5807:82;;;;;;;;;;-1:-1:-1;;536:5807:82;;;;;;1439:41:81;-1:-1:-1;;;;;536:5807:82;;;;;;;;;;;;-1:-1:-1;;536:5807:82;;;;;;-1:-1:-1;536:5807:82;2009:67:81;536:5807:82;;;;-1:-1:-1;536:5807:82;;;;;;;;;;;;;;-1:-1:-1;;536:5807:82;;;;5767:26:24;536:5807:82;;;;;;;:::i;:::-;;-1:-1:-1;536:5807:82;-1:-1:-1;;;;;;;;;;;536:5807:82;;3202:4:24;4919:24;536:5807:82;-1:-1:-1;536:5807:82;4919:24:24;536:5807:82;3202:4:24;:::i;:::-;5767:26;:::i;536:5807:82:-;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;-1:-1:-1;;536:5807:82;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;-1:-1:-1;;;;;536:5807:82;;;;;;;;;;;;:::i;:::-;3217:103:29;;:::i;:::-;-1:-1:-1;536:5807:82;;;5246:21:81;;:13;;-1:-1:-1;;;;;536:5807:82;5246:13:81;536:5807:82;;-1:-1:-1;;;;;536:5807:82;;;5246:21:81;536:5807:82;;-1:-1:-1;;;5246:23:81;;536:5807:82;;;;;5246:23:81;;;;;;;-1:-1:-1;5246:23:81;;;536:5807:82;-1:-1:-1;;;;;;536:5807:82;;;5232:10:81;:37;5228:87;;5341:4;536:5807:82;-1:-1:-1;;;;;536:5807:82;;;;5355:469:81;;536:5807:82;-1:-1:-1;;536:5807:82;;;;;;;;;;;;;;;;5839:55:81;;536:5807:82;;;;5839:55:81;;;;3282:1:29;1805;-1:-1:-1;;;;;;;;;;;536:5807:82;3716:283:29;5355:469:81;536:5807:82;;;;5435:94:81;;;;536:5807:82;5435:94:81;;;;;;;;;;;;536:5807:82;5435:94:81;;;:::i;:::-;;536:5807:82;;5435:94:81;;;;;;:::i;:::-;536:5807:82;5548:9:81;:51;5544:118;;-1:-1:-1;5839:55:81;5676:138;;;;5839:55;5676:138;;;1150:7;5676:138;;5355:469;;;5544:118;536:5807:82;;-1:-1:-1;;;5626:21:81;;536:5807:82;;5626:21:81;5228:87;536:5807:82;;-1:-1:-1;;;5292:12:81;;536:5807:82;;5292:12:81;5246:23;;;;;536:5807:82;5246:23:81;536:5807:82;5246:23:81;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;536:5807:82;;;;;;-1:-1:-1;;536:5807:82;;;;;;;;-1:-1:-1;;;;;536:5807:82;;;;;;;;;;;;;;-1:-1:-1;;536:5807:82;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;-1:-1:-1;;536:5807:82;;;;;;;1150:7:81;536:5807:82;;;;;;;;;-1:-1:-1;;536:5807:82;;;;;;;2700:1:81;536:5807:82;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;1742:195;;1870:60;1742:195;;-1:-1:-1;536:5807:82;1870:13;536:5807;;;-1:-1:-1;536:5807:82;1870:60;:::i;2207:277::-;-1:-1:-1;536:5807:82;;;2399:21;536:5807;;;;;;;;-1:-1:-1;;;;;536:5807:82;;;;;;;;;2399:78;;2207:277;;2399:78;:::i;536:5807::-;;;;;;;;;;;;;;;;;-1:-1:-1;536:5807:82;;;;;;;;-1:-1:-1;;536:5807:82;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;536:5807:82;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;;;;536:5807:82;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::o;:::-;-1:-1:-1;;;;;536:5807:82;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;2764:920:81:-;;2978:48;2764:920;;;;2978:48;;;;:::i;:::-;3036:36;;;536:5807:82;;:::i;:::-;;;;3086:20:81;3082:107;;2764:920;3216:11;;;;:193;;;;;2764:920;3216:394;;;;2764:920;3199:455;;;;;;2764:920;:::o;3199:455::-;3635:8;-1:-1:-1;3635:8:81;:::o;3216:394::-;3553:39;;;;;3430:180;3553:39;;;536:5807:82;;;;;;;;;;3430:180:81;;467:2:93;536:5807:82;3430:180:81;;;;;:::i;:::-;;536:5807:82;3444:31:81;-1:-1:-1;;;;;536:5807:82;3430:180:81;;;;;;;-1:-1:-1;3430:180:81;;;3216:394;3429:181;;3216:394;;;;;;3430:180;;;;3553:39;3430:180;3553:39;3430:180;;;;;;;:::i;:::-;;;;3216:193;-1:-1:-1;536:5807:82;;;-1:-1:-1;;;;;;536:5807:82;3248:161:81;3354:37;;;536:5807:82;3248:161:81;536:5807:82;;;;;;;;;;3248:161:81;;;;;;;:::i;:::-;;536:5807:82;3262:29:81;-1:-1:-1;;;;;536:5807:82;3248:161:81;;;;;;;-1:-1:-1;3248:161:81;;;3216:193;3247:162;;3216:193;;;3248:161;;;;;;;;;;;;;;:::i;:::-;;;;3082:107;3139:39;;;;;;;;;;;;;:::i;:::-;3082:107;;;;;536:5807:82;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;9856:1:61;536:5807:82;;;;;;;:::o;:::-;;:::i;3740:389:81:-;3918:5;536:5807:82;;;-1:-1:-1;;;3853:71:81;;;-1:-1:-1;;;;;536:5807:82;;;3853:71:81;;;536:5807:82;;;;;;;;3740:389:81;;536:5807:82;3853:71:81;;536:5807:82;;3853:71:81;536:5807:82;;;3867:29:81;536:5807:82;;3853:71:81;;;;;;;3918:5;3853:71;;;3740:389;3852:72;;536:5807:82;;;3852:181:81;;3740:389;3835:242;;;;;;4094:28;;;:::i;3835:242::-;4058:8;;3918:5;4058:8;:::o;3852:181::-;536:5807:82;;3945:88:81;;;-1:-1:-1;;;;;536:5807:82;;3853:71:81;3945:88;;536:5807:82;467:2:93;536:5807:82;;;;;;;;-1:-1:-1;536:5807:82;;;;;;;;3959:31:81;536:5807:82;3945:88:81;;;;;;;3918:5;3945:88;;;3852:181;3944:89;;;3852:181;;;;;3945:88;;;;;;-1:-1:-1;3945:88:81;;;;;;:::i;:::-;;;;;3853:71;;;;;;;;;;;;;;:::i;:::-;;;;4148:103:24;966:10:28;-1:-1:-1;536:5807:82;;;;;;;;;952:44;;536:5807;;3901:31:24;536:5807:82;;4468:23:24;4464:108;;4148:103;:::o;:::-;966:10:28;-1:-1:-1;536:5807:82;;;;;;;;;795:35;;536:5807;;3901:31:24;536:5807:82;4148:103:24;-1:-1:-1;536:5807:82;;;-1:-1:-1;;;;;;;;;;;536:5807:82;;;;;;;;966:10:28;536:5807:82;;;;;;;;;3901:31:24;536:5807:82;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;536:5807:82;;-1:-1:-1;536:5807:82;;;-1:-1:-1;536:5807:82;:::o;:::-;;:::i;:::-;;;;;-1:-1:-1;;;536:5807:82;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;536:5807:82;;;;;;;;:::o;6246:584:91:-;;;;;6360:12;;;536:5807:82;;;6360:24:91;;6356:75;;6246:584;6474:30;;;;;:::i;:::-;536:5807:82;;;;;;6578:12:91;;;;:::i;:::-;6604:24;;;;6246:584;-1:-1:-1;6600:188:91;;;-1:-1:-1;;;;;536:5807:82;;;;;;;6644:21:91;;;:29;:21;;:::i;:29::-;6798:25;6246:584;:::o;6600:188::-;6753:24;;536:5807:82;;8167:38:61;;-1:-1:-1;;;;;536:5807:82;;;;;8167:38:61;:::i;:::-;6753:24:91;;;:::i;6604:::-;536:5807:82;;;;;;6614:14:91;;-1:-1:-1;6604:24:91;;;6356:75;-1:-1:-1;;;536:5807:82;;;;;;6360:12:91;536:5807:82;;;;;;;:::i;:::-;;;;;;;;;;;;;;6356:75:91;;;10580:184;536:5807:82;;10303:8:61;;;:63;-1:-1:-1;10303:63:61;-1:-1:-1;;;;;536:5807:82;;10726:7:91;536:5807:82;;10736:12:91;:17;:12;;:17;:::i;:::-;536:5807:82;;;;;;10580:184:91;:::o;10303:63:61:-;536:5807:82;;;;;;;;;;14249:109:61;-1:-1:-1;14249:109:61;;-1:-1:-1;14249:109:61;;;536:5807:82;;;10303:63:61;;3326:384:29;-1:-1:-1;;;;;;;;;;;1847:1:29;536:5807:82;;3526:20:29;3522:88;;1847:1;536:5807:82;;3326:384:29:o;3522:88::-;536:5807:82;;-1:-1:-1;;;3569:30:29;;;;;4758:308:82;;536:5807;-1:-1:-1;536:5807:82;4889:13;536:5807;;;-1:-1:-1;536:5807:82;11124:30:91;;;;:::i;:::-;11173;;;-1:-1:-1;11173:30:91;;;;11182:17;;-1:-1:-1;;;;;536:5807:82;;11182:12:91;;:17;:::i;:::-;536:5807:82;;;4889:13;536:5807;;11173:30:91;4947::82;;;11173::91;4943:117:82;;;;4758:308;;:::o;4943:117::-;4993:56;536:5807;-1:-1:-1;536:5807:82;4889:13;536:5807;;;-1:-1:-1;536:5807:82;819:34:63;837:15;819:34;:::i;4993:56:82:-;4758:308;;:::o;4947:30::-;4957:20;;-1:-1:-1;4947:30:82;;;;11173::91;;;-1:-1:-1;11173:30:91;;7270:387:24;-1:-1:-1;;;;;536:5807:82;;-1:-1:-1;536:5807:82;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2887:71:24;536:5807:82;;;;-1:-1:-1;536:5807:82;;;;;;;;;;;-1:-1:-1;;;;;536:5807:82;;;;;;;;;;-1:-1:-1;;536:5807:82;7509:4:24;536:5807:82;;;966:10:28;;-1:-1:-1;;;;;536:5807:82;-1:-1:-1;7532:40:24;-1:-1:-1;;7532:40:24;7509:4;7586:11;:::o;7270:387::-;-1:-1:-1;;;;;536:5807:82;;-1:-1:-1;536:5807:82;;;;;;;;;1356:26:81;;-1:-1:-1;;;;;;;;;;;2887:71:24;536:5807:82;;3901:31:24;536:5807:82;;;;-1:-1:-1;536:5807:82;;;;;;;;;;;-1:-1:-1;;;;;536:5807:82;;;;;;;;;;-1:-1:-1;;536:5807:82;7509:4:24;536:5807:82;;;966:10:28;;-1:-1:-1;;;;;536:5807:82;;7532:40:24;-1:-1:-1;;7532:40:24;7509:4;7586:11;:::o;7432:219::-;7628:12;;;-1:-1:-1;7628:12:24;:::o;7270:387::-;-1:-1:-1;;;;;536:5807:82;;-1:-1:-1;536:5807:82;;;;;;;;;795:35;;-1:-1:-1;;;;;;;;;;;2887:71:24;536:5807:82;;3901:31:24;536:5807:82;7270:387:24;-1:-1:-1;;;;;536:5807:82;;-1:-1:-1;536:5807:82;;;;;;;;;952:44;;-1:-1:-1;;;;;;;;;;;2887:71:24;536:5807:82;;3901:31:24;536:5807:82;7270:387:24;-1:-1:-1;536:5807:82;;;-1:-1:-1;;;;;;;;;;;536:5807:82;;;;;;;;-1:-1:-1;;;;;536:5807:82;;;;;;;;;;;;3901:31:24;536:5807:82;7892:388:24;-1:-1:-1;536:5807:82;;;-1:-1:-1;;;;;;;;;;;536:5807:82;;;;;;;;-1:-1:-1;;;;;536:5807:82;;;;;;;;;;;;;;;;-1:-1:-1;536:5807:82;;;;;;;;;;;-1:-1:-1;;;;;536:5807:82;;;;;;;;;;-1:-1:-1;;536:5807:82;;;966:10:28;;-1:-1:-1;;;;;536:5807:82;;8155:40:24;-1:-1:-1;;8155:40:24;536:5807:82;8209:11:24;:::o;536:5807:82:-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;536:5807:82;;;;;;;;:::i;5907:716:81:-;6030:34;5907:716;6030:34;;;;:::i;:::-;536:5807:82;;-1:-1:-1;;;6080:41:81;;-1:-1:-1;;;;;536:5807:82;;;6080:41:81;;;536:5807:82;;;;;6080:41:81;536:5807:82;;;6090:13:81;536:5807:82;;6080:41:81;;;;;;;-1:-1:-1;6080:41:81;;;5907:716;6079:42;;6075:90;;6266:27;536:5807:82;2540:111:29;6210:14:81;536:5807:82;2540:111:29;;;:::i;:::-;536:5807:82;;;;;;-1:-1:-1;;;;;536:5807:82;;-1:-1:-1;536:5807:82;;;-1:-1:-1;536:5807:82;;6210:14:81;6266:27;:::i;:::-;6080:41;6311:15;;536:5807:82;;;;-1:-1:-1;;;;;;536:5807:82;-1:-1:-1;;;;;536:5807:82;;;;;;;;;;;-1:-1:-1;;;;;536:5807:82;;;;6337:143:81;;5907:716;-1:-1:-1;6493:28:81;536:5807:82;-1:-1:-1;;;;;536:5807:82;;;;;;;6489:128:81;;5907:716;:::o;6489:128::-;6551:55;;;:::i;:::-;;5907:716::o;6337:143::-;6404:65;;;:::i;:::-;;6337:143;;;6075:90;536:5807:82;;-1:-1:-1;;;6144:10:81;;6080:41;;6144:10;6080:41;;;;;;;;;;;;;;:::i;:::-;;;;536:5807:82;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;:::o;7558:604:91:-;;536:5807:82;;7686:17:91;7682:83;;536:5807:82;7789:27:91;536:5807:82;7789:27:91;536:5807:82;;7789:27:91;;;;;;:::i;:::-;7860:14;;;;;:::i;:::-;536:5807:82;;;;;;;;;;;;;;;;7888:22:91;;;7884:77;;7975:21;-1:-1:-1;7975:84:91;;;;7558:604;7971:139;;;;8127:28;;;;:::i;7971:139::-;8082:17;;7789:27;8082:17;536:5807:82;8075:24:91;:::o;7975:84::-;536:5807:82;;;8009:16:91;536:5807:82;;8009:16:91;:::i;:::-;536:5807:82;;;8001:24:91;:57;;;;;7975:84;;;;;;;8001:57;8029:29;8038:8;;;8029:18;8038:8;8029:23;8038:8;;:::i;:::-;8029:18;;:::i;:::-;536:5807:82;;;;;8029:23:91;536:5807:82;;;;8029:29:91;;8001:57;;;;7884:77;7933:17;;;;;7789:27;7933:17;536:5807:82;7926:24:91;:::o;7682:83::-;7726:28;;;;:::i;536:5807:82:-;;;;;;;;;;-1:-1:-1;;;;;536:5807:82;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;;;;536:5807:82;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;:::i;3722:766::-;;;;;536:5807;;:::i;:::-;;;;3962:16;3958:92;;3722:766;536:5807;;4107:67;536:5807;;;4146:27;4107;:13;536:5807;-1:-1:-1;536:5807:82;;;;;;;;;4107:27;4146;;;;536:5807;;;;;;;;;;;4107:67;;;;;;;:::i;:::-;;;;;;;;;;4081:355;4107:67;-1:-1:-1;4107:67:82;;;3722:766;4260:28;4311:93;4260:28;4192:230;4260:28;;4222:67;536:5807;4260:28;;;4222:67;;;:::i;:::-;4367:36;;;;;4311:93;;:::i;:::-;4192:230;;:::i;4081:355::-;4450:21;;3722:766;:::o;4107:67::-;4192:230;4107:67;;;;4311:93;4107:67;4146:27;4107:67;4146:27;4107:67;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;3958:92;4107:67;4008:31;;;;;;;;;;;;;;:::i;:::-;3958:92;;;;;4494:258;4635:5;536:5807;;;-1:-1:-1;;;4628:27:82;;536:5807;4494:258;;4628:27;;536:5807;;4628:27;;536:5807;;-1:-1:-1;;;;;536:5807:82;4628:27;;;;;;;4606:139;4628:27;4635:5;4628:27;;;4494:258;2103:25;2662:52;:43;4657:78;2103:25;;:34;:25;;536:5807;;2103:13;536:5807;;;;;;;2103:34;536:5807;4635:5;536:5807;4628:27;;536:5807;;4635:5;536:5807;;;;;;;;;;;;;;;;;4628:27;4657:78;4628:27;;2662:43;4628:27;2662:52;4628:27;;;;;;;;;;;:::i;:::-;;;;;;14291:213:59;536:5807:82;14369:24:59;;;;14365:103;;536:5807:82;14291:213:59;:::o;14365:103::-;536:5807:82;;;;14416:41:59;;;;;;14447:2;14416:41;;;536:5807:82;;;;;14416:41:59;536:5807:82;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::o;10552:388:61:-;536:5807:82;;10728:8:61;;;10752:20;;10690:17;10752:20;10690:17;10752:20;10690:17;10752:20;:::o;10724:210::-;536:5807:82;;;;;;;;;;;14249:109:61;10690:17;14249:109;;10690:17;14249:109;;;536:5807:82;:::i;:::-;;;;;;;14249:109:61;536:5807:82;;;;;10911:11:61;;536:5807:82;;10886:37:61;10870:1;10886:37;;;:::o;6893:76:26:-;;;:::i;:::-;;;:::i;:::-;1805:1:29;-1:-1:-1;;;;;;;;;;;536:5807:82;6893:76:26:o;536:5807:82:-;;;;;;;:::i;:::-;-1:-1:-1;536:5807:82;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;-1:-1:-1;;;;;536:5807:82;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;536:5807:82;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;5072:1269::-;5220:30;5072:1269;536:5807;;:::i;:::-;;5220:30;536:5807;;;5220:30;;;;;;:::i;:::-;5278:17;;536:5807;5278:17;;536:5807;-1:-1:-1;;;;;536:5807:82;5278:54;;:178;;5072:1269;5261:258;;5534:9;5220:30;5549:33;;;5278:17;5591:3;5549:33;;536:5807;;5545:44;;;;;5614:36;;;:50;:36;;:::i;:::-;536:5807;-1:-1:-1;;;;;536:5807:82;;;5614:50;;5610:119;;5747:73;5748:72;5783:36;;:33;;;:36;:::i;:::-;5748:72;:::i;:::-;5747:73;;536:5807;5747:73;5743:140;;536:5807;;5534:9;;5743:140;536:5807;;-1:-1:-1;;;5847:21:82;;;;;5610:119;536:5807;;-1:-1:-1;;;5691:23:82;;;;;5545:44;-1:-1:-1;5923:41:82;;-1:-1:-1;;5923:41:82;;;;5278:17;5973:3;5923:41;;536:5807;;5919:52;;;;;5996:44;;;:58;:44;;:::i;:58::-;;5992:127;;6137:90;6138:89;6182:44;;:41;;;:44;:::i;:::-;6138:89;:::i;6137:90::-;6133:157;;536:5807;;5908:9;;6133:157;536:5807;;-1:-1:-1;;;6254:21:82;;;;;5992:127;536:5807;;-1:-1:-1;;;6081:23:82;;;;;5919:52;;;;;;6317:17;5072:1269;:::o;5261:258::-;536:5807;;-1:-1:-1;;;5488:20:82;;;;;5278:178;5353:33;5220:30;5353:33;;;536:5807;5353:45;:102;5278:178;5353:102;5402:41;;;;;536:5807;5402:53;5278:178;;6999:207:91;;536:5807:82;;9594:15:61;-1:-1:-1;9619:18:61;9652:7;9658:1;9652:7;;9648:234;;6999:207:91;9906:53:61;;;;;:::i;:::-;9977:8;;;:63;-1:-1:-1;9977:63:61;;-1:-1:-1;;;;;536:5807:82;;7168:7:91;536:5807:82;;;7178:12:91;;:17;:12;;:17;:::i;9977:63:61:-;9992:41;10025:7;9992:48;10025:7;;:::i;:::-;9992:41;14249:109;;;;;;14099:265;;9992:41;536:5807:82;;;;;9992:48:61;9977:63;;;9648:234;9695:14;;;;;:::i;:::-;536:5807:82;;;;;;;9906:53:61;14249:109;;-1:-1:-1;14249:109:61;536:5807:82;14249:109:61;;;-1:-1:-1;14249:109:61;;536:5807:82;;;;;9727:48:61;9723:149;536:5807:82;;;9795:10:61;9723:149;9648:234;;9723:149;9850:7;;;;;;:::i;:::-;9723:149;9648:234;;536:5807:82;;;;;;;:::i;:::-;-1:-1:-1;536:5807:82;;;;;;;:::o;11486:272:91:-;;536:5807:82;11308:22:61;11718:31:91;11486:272;536:5807:82;;:::i;:::-;;;;:::i;:::-;;11308:22:61;;:::i;:::-;536:5807:82;;:::i;:::-;;11718:12:91;536:5807:82;;;;;11731:17:91;536:5807:82;;;;;11731:17:91;;536:5807:82;;11718:12:91;;:31;:::i;:::-;536:5807:82;;;;;;;;;:::i;:::-;;;;;;11731:17:91;11672:79;;536:5807:82;11486:272:91;:::o;2557:104:58:-;;2641:5;;;;;;:13;2557:104;:::o;2641:13::-;;;2557:104;:::o;536:5807:82:-;;;-1:-1:-1;;;536:5807:82;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;536:5807:82;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;11513:870:61;536:5807:82;;11513:870:61;;;536:5807:82;11513:870:61;11672:7;;;;536:5807:82;11775:28:61;11795:7;;;:::i;11775:28::-;536:5807:82;:::i;:::-;;;;;;;;;;;;;;;;11877:15:61;-1:-1:-1;11873:91:61;;536:5807:82;;12233:11:61;536:5807:82;;;12027:16:61;536:5807:82;;;;;;;12027:16:61;;;;12083:7;12063:43;12083:7;;12063:28;12083:7;;:::i;:::-;12063:28;14249:109;;;;;;14099:265;;12063:28;536:5807:82;;;;;;;;;;;;;;;;;12063:43:61;12233:11;536:5807:82;-1:-1:-1;;;;;536:5807:82;;;12023:189:61;536:5807:82;;;12145:52:61;536:5807:82;12155:41:61;536:5807:82;;:::i;:::-;;;;;;;;12155:41:61;-1:-1:-1;;;;;536:5807:82;;12155:41:61;;;536:5807:82;12145:52:61;:::i;:::-;12023:189;;11873:91;536:5807:82;;-1:-1:-1;;;11919:30:61;;;;;11668:709;12283:52;536:5807:82;;12293:41:61;536:5807:82;;:::i;12293:41:61:-;-1:-1:-1;;;;;536:5807:82;;12293:41:61;;;536:5807:82;12145:52:61;:::i;12283:::-;11678:1;12349:17;;:::o;7084:141:26:-;536:5807:82;-1:-1:-1;;;;;;;;;;;536:5807:82;;;;7150:18:26;7146:73;;7084:141::o;7146:73::-;536:5807:82;;-1:-1:-1;;;7191:17:26;;;;;8587:1642:58;8658:6;;8654:45;;9401:7;10201:10;10142:26;10093;10044;9995;9946;9897;9848;536:5807:82;10189:23:58;9401:7;8663:1;536:5807:82;;;;10826:16:58;10822:99;;8587:1642;536:5807:82;;;;10938:15:58;10934:96;;8587:1642;536:5807:82;;;;11047:15:58;11043:96;;8587:1642;536:5807:82;;;;11156:15:58;11152:96;;8587:1642;536:5807:82;;;;11265:14:58;11261:93;;8587:1642;536:5807:82;;;;11371:14:58;11367:93;;8587:1642;536:5807:82;;;;11477:14:58;11473:93;;8587:1642;536:5807:82;;;11579:64:58;;8587:1642;536:5807:82;;;9858:10:58;;;;:::i;:::-;536:5807:82;;;;;9848:26:58;9907:10;;;;:::i;9897:26::-;9956:10;;;;:::i;9946:26::-;10005:10;;;;:::i;9995:26::-;10054:10;;;;:::i;10044:26::-;10103:10;;;;:::i;10093:26::-;10152:10;;;;:::i;10142:26::-;10201:10;;;:::i;11579:64::-;536:5807:82;;11579:64:58;;11473:93;536:5807:82;11511:11:58;;536:5807:82;;11473:93:58;;;;11367;536:5807:82;11405:11:58;;536:5807:82;;11367:93:58;;;;11261;536:5807:82;11299:11:58;;536:5807:82;;11261:93:58;;;;11152:96;536:5807:82;11191:12:58;;536:5807:82;;11152:96:58;;;;11043;536:5807:82;11082:12:58;;536:5807:82;;11043:96:58;;;;10934;536:5807:82;10973:12:58;;536:5807:82;;10934:96:58;;;;10822:99;10862:13;;;536:5807:82;10822:99:58;;;;12736:433:61;;;12919:10;;;;;;13151:11;;;12736:433;:::o;12912:230::-;2900:5:58;;;;;;2910;;;;536:5807:82;;;;;;;;;14249:109:61;-1:-1:-1;14249:109:61;536:5807:82;14249:109:61;;;-1:-1:-1;14249:109:61;;536:5807:82;;;;;-1:-1:-1;12996:136:61;536:5807:82;;;13055:10:61;12996:136;;12912:230;;;;12996:136;13110:7;;;;;;:::i;:::-;12996:136;;","linkReferences":{},"immutableReferences":{"64520":[{"start":1834,"length":32}],"64523":[{"start":3768,"length":32}],"65474":[{"start":1467,"length":32},{"start":3825,"length":32}],"65477":[{"start":1122,"length":32},{"start":7577,"length":32}],"65480":[{"start":1269,"length":32},{"start":5312,"length":32},{"start":5636,"length":32}],"65483":[{"start":1337,"length":32},{"start":5159,"length":32},{"start":5762,"length":32}]}},"methodIdentifiers":{"DEFAULT_ADMIN_ROLE()":"a217fddf","FACTORY()":"2dd31000","HOOK_GAS_LIMIT()":"ff54740f","HOOK_RESERVE()":"557cab44","HOOK_SET_ROLE()":"6679191e","NETWORK_LIMIT_SET_ROLE()":"7d24bb27","NETWORK_REGISTRY()":"c0cd7c3e","OPERATOR_NETWORK_LIMIT_SET_ROLE()":"518504ba","OPERATOR_NETWORK_OPT_IN_SERVICE()":"1a80e500","OPERATOR_VAULT_OPT_IN_SERVICE()":"128e5d82","TYPE()":"bb24fe8a","VAULT_FACTORY()":"103f2907","VERSION()":"ffa1ad74","getRoleAdmin(bytes32)":"248a9ca3","grantRole(bytes32,address)":"2f2ff15d","hasRole(bytes32,address)":"91d14854","hook()":"7f5a7c7b","initialize(bytes)":"439fab91","maxNetworkLimit(bytes32)":"d15b740e","networkLimit(bytes32)":"3eb22c0f","networkLimitAt(bytes32,uint48,bytes)":"5d32a1c9","onSlash(bytes32,address,uint256,uint48,bytes)":"e49561ee","operatorNetworkLimit(bytes32,address)":"11422095","operatorNetworkLimitAt(bytes32,address,uint48,bytes)":"94d2558a","renounceRole(bytes32,address)":"36568abe","revokeRole(bytes32,address)":"d547741f","setHook(address)":"3dfd3873","setMaxNetworkLimit(uint96,uint256)":"23f752d5","setNetworkLimit(bytes32,uint256)":"02145348","setOperatorNetworkLimit(bytes32,address,uint256)":"020cf0c2","stake(bytes32,address)":"fd4d447c","stakeAt(bytes32,address,uint48,bytes)":"e02f6937","staticDelegateCall(address,bytes)":"9f86fd85","supportsInterface(bytes4)":"01ffc9a7","vault()":"fbfa77cf"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"networkRegistry\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"vaultFactory\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operatorVaultOptInService\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operatorNetworkOptInService\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"delegatorFactory\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"entityType\",\"type\":\"uint64\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"AccessControlBadConfirmation\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"neededRole\",\"type\":\"bytes32\"}],\"name\":\"AccessControlUnauthorizedAccount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AlreadySet\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CheckpointUnorderedInsertion\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"DuplicateRoleHolder\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ExceedsMaxNetworkLimit\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientHookGas\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MissingRoleHolders\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotNetwork\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotSlasher\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotVault\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ReentrancyGuardReentrantCall\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"bits\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"SafeCastOverflowedUintDowncast\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ZeroAddressRoleHolder\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint48\",\"name\":\"captureTimestamp\",\"type\":\"uint48\"}],\"name\":\"OnSlash\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"previousAdminRole\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"newAdminRole\",\"type\":\"bytes32\"}],\"name\":\"RoleAdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleRevoked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"hook\",\"type\":\"address\"}],\"name\":\"SetHook\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"SetMaxNetworkLimit\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"SetNetworkLimit\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"SetOperatorNetworkLimit\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DEFAULT_ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"FACTORY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"HOOK_GAS_LIMIT\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"HOOK_RESERVE\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"HOOK_SET_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"NETWORK_LIMIT_SET_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"NETWORK_REGISTRY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"OPERATOR_NETWORK_LIMIT_SET_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"OPERATOR_NETWORK_OPT_IN_SERVICE\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"OPERATOR_VAULT_OPT_IN_SERVICE\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"TYPE\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"VAULT_FACTORY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"VERSION\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleAdmin\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"grantRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"hook\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"}],\"name\":\"maxNetworkLimit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"}],\"name\":\"networkLimit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hint\",\"type\":\"bytes\"}],\"name\":\"networkLimitAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint48\",\"name\":\"captureTimestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"onSlash\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"operatorNetworkLimit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hint\",\"type\":\"bytes\"}],\"name\":\"operatorNetworkLimitAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"callerConfirmation\",\"type\":\"address\"}],\"name\":\"renounceRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"hook_\",\"type\":\"address\"}],\"name\":\"setHook\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint96\",\"name\":\"identifier\",\"type\":\"uint96\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"setMaxNetworkLimit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"setNetworkLimit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"setOperatorNetworkLimit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"stake\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hints\",\"type\":\"bytes\"}],\"name\":\"stakeAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"staticDelegateCall\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"vault\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"AccessControlBadConfirmation()\":[{\"details\":\"The caller of a function is not the expected one. NOTE: Don't confuse with {AccessControlUnauthorizedAccount}.\"}],\"AccessControlUnauthorizedAccount(address,bytes32)\":[{\"details\":\"The `account` is missing a role.\"}],\"CheckpointUnorderedInsertion()\":[{\"details\":\"A value was attempted to be inserted on a past checkpoint.\"}],\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"ReentrancyGuardReentrantCall()\":[{\"details\":\"Unauthorized reentrant call.\"}],\"SafeCastOverflowedUintDowncast(uint8,uint256)\":[{\"details\":\"Value doesn't fit in an uint of `bits` size.\"}]},\"events\":{\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"OnSlash(bytes32,address,uint256,uint48)\":{\"params\":{\"amount\":\"amount of the collateral to be slashed\",\"captureTimestamp\":\"time point when the stake was captured\",\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"}},\"RoleAdminChanged(bytes32,bytes32,bytes32)\":{\"details\":\"Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole` `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite {RoleAdminChanged} not being emitted signaling this.\"},\"RoleGranted(bytes32,address,address)\":{\"details\":\"Emitted when `account` is granted `role`. `sender` is the account that originated the contract call, an admin role bearer except when using {AccessControl-_setupRole}.\"},\"RoleRevoked(bytes32,address,address)\":{\"details\":\"Emitted when `account` is revoked `role`. `sender` is the account that originated the contract call: - if using `revokeRole`, it is the admin role bearer - if using `renounceRole`, it is the role bearer (i.e. `account`)\"},\"SetHook(address)\":{\"params\":{\"hook\":\"address of the hook\"}},\"SetMaxNetworkLimit(bytes32,uint256)\":{\"params\":{\"amount\":\"new maximum subnetwork's limit (how much stake the subnetwork is ready to get)\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"}},\"SetNetworkLimit(bytes32,uint256)\":{\"params\":{\"amount\":\"new subnetwork's limit (how much stake the vault curator is ready to give to the subnetwork)\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"}},\"SetOperatorNetworkLimit(bytes32,address,uint256)\":{\"params\":{\"amount\":\"new operator's limit for the subnetwork (how much stake the vault curator is ready to give to the operator for the subnetwork)\",\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"}}},\"kind\":\"dev\",\"methods\":{\"VERSION()\":{\"details\":\"Must return 1 for this one.\",\"returns\":{\"_0\":\"version of the delegator\"}},\"getRoleAdmin(bytes32)\":{\"details\":\"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}.\"},\"grantRole(bytes32,address)\":{\"details\":\"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event.\"},\"hasRole(bytes32,address)\":{\"details\":\"Returns `true` if `account` has been granted `role`.\"},\"initialize(bytes)\":{\"params\":{\"data\":\"some data to use\"}},\"networkLimit(bytes32)\":{\"params\":{\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"},\"returns\":{\"_0\":\"limit of the subnetwork\"}},\"networkLimitAt(bytes32,uint48,bytes)\":{\"params\":{\"hint\":\"hint for checkpoint index\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\",\"timestamp\":\"time point to get the subnetwork limit at\"},\"returns\":{\"_0\":\"limit of the subnetwork at the given timestamp\"}},\"onSlash(bytes32,address,uint256,uint48,bytes)\":{\"details\":\"Only the vault's slasher can call this function.\",\"params\":{\"amount\":\"amount of the collateral slashed\",\"captureTimestamp\":\"time point when the stake was captured\",\"data\":\"some additional data\",\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"}},\"operatorNetworkLimit(bytes32,address)\":{\"params\":{\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"},\"returns\":{\"_0\":\"limit of the operator for the subnetwork\"}},\"operatorNetworkLimitAt(bytes32,address,uint48,bytes)\":{\"params\":{\"hint\":\"hint for checkpoint index\",\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\",\"timestamp\":\"time point to get the operator's limit for the subnetwork at\"},\"returns\":{\"_0\":\"limit of the operator for the subnetwork at the given timestamp\"}},\"renounceRole(bytes32,address)\":{\"details\":\"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `callerConfirmation`. May emit a {RoleRevoked} event.\"},\"revokeRole(bytes32,address)\":{\"details\":\"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event.\"},\"setHook(address)\":{\"details\":\"Only a HOOK_SET_ROLE holder can call this function. The hook can have arbitrary logic under certain functions, however, it doesn't affect the stake guarantees.\",\"params\":{\"hook\":\"address of the hook\"}},\"setMaxNetworkLimit(uint96,uint256)\":{\"details\":\"Only a network can call this function.\",\"params\":{\"amount\":\"new maximum subnetwork's limit\"}},\"setNetworkLimit(bytes32,uint256)\":{\"details\":\"Only a NETWORK_LIMIT_SET_ROLE holder can call this function.\",\"params\":{\"amount\":\"new limit of the subnetwork\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"}},\"setOperatorNetworkLimit(bytes32,address,uint256)\":{\"details\":\"Only an OPERATOR_NETWORK_LIMIT_SET_ROLE holder can call this function.\",\"params\":{\"amount\":\"new limit of the operator for the subnetwork\",\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"}},\"stake(bytes32,address)\":{\"details\":\"Warning: this function is not safe to use for stake capturing, as it can change by the end of the block.\",\"params\":{\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"},\"returns\":{\"_0\":\"slashable stake until the end of the next epoch\"}},\"stakeAt(bytes32,address,uint48,bytes)\":{\"details\":\"Warning: it is not safe to use timestamp >= current one for the stake capturing, as it can change later.\",\"params\":{\"hints\":\"hints for the checkpoints' indexes\",\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\",\"timestamp\":\"time point to capture the stake at\"},\"returns\":{\"_0\":\"slashable stake at the given timestamp until the end of the consequent epoch\"}},\"staticDelegateCall(address,bytes)\":{\"details\":\"It allows to use this contract's storage on-chain.\",\"params\":{\"data\":\"data to make a delegatecall with\",\"target\":\"address of the contract to make a delegatecall to\"}},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"}},\"stateVariables\":{\"NETWORK_LIMIT_SET_ROLE\":{\"return\":\"identifier of the subnetwork limit setter role\",\"returns\":{\"_0\":\"identifier of the subnetwork limit setter role\"}},\"OPERATOR_NETWORK_LIMIT_SET_ROLE\":{\"return\":\"identifier of the operator-subnetwork limit setter role\",\"returns\":{\"_0\":\"identifier of the operator-subnetwork limit setter role\"}}},\"version\":1},\"userdoc\":{\"events\":{\"OnSlash(bytes32,address,uint256,uint48)\":{\"notice\":\"Emitted when a slash happens.\"},\"SetHook(address)\":{\"notice\":\"Emitted when a hook is set.\"},\"SetMaxNetworkLimit(bytes32,uint256)\":{\"notice\":\"Emitted when a subnetwork's maximum limit is set.\"},\"SetNetworkLimit(bytes32,uint256)\":{\"notice\":\"Emitted when a subnetwork's limit is set.\"},\"SetOperatorNetworkLimit(bytes32,address,uint256)\":{\"notice\":\"Emitted when an operator's limit for a subnetwork is set.\"}},\"kind\":\"user\",\"methods\":{\"FACTORY()\":{\"notice\":\"Get the factory's address.\"},\"HOOK_GAS_LIMIT()\":{\"notice\":\"Get a gas limit for the hook.\"},\"HOOK_RESERVE()\":{\"notice\":\"Get a reserve gas between the gas limit check and the hook's execution.\"},\"HOOK_SET_ROLE()\":{\"notice\":\"Get a hook setter's role.\"},\"NETWORK_LIMIT_SET_ROLE()\":{\"notice\":\"Get a subnetwork limit setter's role.\"},\"NETWORK_REGISTRY()\":{\"notice\":\"Get the network registry's address.\"},\"OPERATOR_NETWORK_LIMIT_SET_ROLE()\":{\"notice\":\"Get an operator-subnetwork limit setter's role.\"},\"OPERATOR_NETWORK_OPT_IN_SERVICE()\":{\"notice\":\"Get the operator-network opt-in service's address.\"},\"OPERATOR_VAULT_OPT_IN_SERVICE()\":{\"notice\":\"Get the operator-vault opt-in service's address.\"},\"TYPE()\":{\"notice\":\"Get the entity's type.\"},\"VAULT_FACTORY()\":{\"notice\":\"Get the vault factory's address.\"},\"VERSION()\":{\"notice\":\"Get a version of the delegator (different versions mean different interfaces).\"},\"hook()\":{\"notice\":\"Get the hook's address.\"},\"initialize(bytes)\":{\"notice\":\"Initialize this entity contract by using a given data.\"},\"maxNetworkLimit(bytes32)\":{\"notice\":\"Get a particular subnetwork's maximum limit (meaning the subnetwork is not ready to get more as a stake).\"},\"networkLimit(bytes32)\":{\"notice\":\"Get a subnetwork's limit (how much stake the vault curator is ready to give to the subnetwork).\"},\"networkLimitAt(bytes32,uint48,bytes)\":{\"notice\":\"Get a subnetwork's limit at a given timestamp using a hint (how much stake the vault curator is ready to give to the subnetwork).\"},\"onSlash(bytes32,address,uint256,uint48,bytes)\":{\"notice\":\"Called when a slash happens.\"},\"operatorNetworkLimit(bytes32,address)\":{\"notice\":\"Get an operator's limit for a subnetwork. (how much stake the vault curator is ready to give to the operator for the subnetwork)\"},\"operatorNetworkLimitAt(bytes32,address,uint48,bytes)\":{\"notice\":\"Get an operator's limit for a subnetwork at a given timestamp using a hint (how much stake the vault curator is ready to give to the operator for the subnetwork).\"},\"setHook(address)\":{\"notice\":\"Set a new hook.\"},\"setMaxNetworkLimit(uint96,uint256)\":{\"notice\":\"Set a maximum limit for a subnetwork (how much stake the subnetwork is ready to get). identifier identifier of the subnetwork\"},\"setNetworkLimit(bytes32,uint256)\":{\"notice\":\"Set a subnetwork's limit (how much stake the vault curator is ready to give to the subnetwork).\"},\"setOperatorNetworkLimit(bytes32,address,uint256)\":{\"notice\":\"Set an operator's limit for a subnetwork. (how much stake the vault curator is ready to give to the operator for the subnetwork)\"},\"stake(bytes32,address)\":{\"notice\":\"Get a stake that a given subnetwork will be able to slash for a certain operator until the end of the next epoch (if no cross-slashing and no slashings by the subnetwork).\"},\"stakeAt(bytes32,address,uint48,bytes)\":{\"notice\":\"Get a stake that a given subnetwork could be able to slash for a certain operator at a given timestamp until the end of the consequent epoch using hints (if no cross-slashing and no slashings by the subnetwork).\"},\"staticDelegateCall(address,bytes)\":{\"notice\":\"Make a delegatecall from this contract to a given target contract with a particular data (always reverts with a return data).\"},\"vault()\":{\"notice\":\"Get the vault's address.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/contracts/delegator/FullRestakeDelegator.sol\":\"FullRestakeDelegator\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol\":{\"keccak256\":\"0x6662ec4e5cefca03eeadd073e9469df8d2944bb2ee8ec8f7622c2c46aab5f225\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4d8544c6f8daa4d1bc215c6a72fe0acdb748664a105b0e5efc19295667521d45\",\"dweb:/ipfs/QmdGWqdnXT8S3RgCR6aV8XHZrsybieMQLLnug1NtpSjEXN\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609\",\"dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9\",\"dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardUpgradeable.sol\":{\"keccak256\":\"0xb44e086e941292cdc7f440de51478493894ef0b1aeccb0c4047445919f667f74\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://942dad22fbdc1669f025540ba63aa3ccfad5f8458fc5d4525b31ebf272e7af45\",\"dweb:/ipfs/Qmdo4X2M82aM3AMoW2kf2jhYkSCyC4T1pHNd6obdsDFnAB\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol\":{\"keccak256\":\"0xdaba3f7c42c55b2896353f32bd27d4d5f8bae741b3b05d4c53f67abc4dc47ce8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1fa2e61141c602510bcd2cd936ed9561922ac8772a9b9c9a9db091a74e354a45\",\"dweb:/ipfs/QmcHQDDoEBwJmwUbzoVkytvJsBx3KVHYFFnDkvRGWh9Wmh\"]},\"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0xb6b36edd6a2999fd243ff226d6cbf84bd71af2432bbd0dfe19392996a1d9cb41\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1fd2f35495652e57e3f99bc6c510bc5f7dd398a176ea2e72d8ed730aebc6ca26\",\"dweb:/ipfs/QmTQV6X4gkikTib49cho5iDX3JvSQbdsoEChoDwrk3CbbH\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875\",\"dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0xe19a4d5f31d2861e7344e8e535e2feafb913d806d3e2b5fe7782741a2a7094fe\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4aed79c0fa6f0546ed02f2f683e8f77f0fd2ed7eb34d8bbf3d373c9a6d95b13c\",\"dweb:/ipfs/QmWqVz6UAVqmnWU5pqYPt1o6iDEZyPaBraAA3rKfTTSfYj\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/Checkpoints.sol\":{\"keccak256\":\"0xbdc5e074d7dd6678f67e92b1a51a20226801a407b0e1af3da367c5d1ff4519ad\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a36cca6b22fff3db16fc789ff6c60eea71d4b156065d4d0c83a0bc5e91a77a8b\",\"dweb:/ipfs/QmYN3exd5AemxjBrN8XMB1p5LbbE16uC3sjbYjwi8AjcGR\"]},\"lib/openzeppelin-contracts/contracts/utils/types/Time.sol\":{\"keccak256\":\"0xc7755af115020049e4140f224f9ee88d7e1799ffb0646f37bf0df24bf6213f58\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7f09bf94d5274334ec021f61a04659db303f31e60460e14b709c9bf187740111\",\"dweb:/ipfs/QmNvgomZYUwFAt4cZbPWAiTeSZQreGehY9BK5xyVJsUttb\"]},\"src/contracts/common/Entity.sol\":{\"keccak256\":\"0x3d61a932995b8443381f3950542d388223a2c26dd5d29a3274dea3baa7388bd7\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://7cdf5f03ca72fd263fd32ff59c8d88ddca911ae83896a287d10772c1bbe9b138\",\"dweb:/ipfs/QmbP84r5BWT1Rn9AYTntWSf3xUMTTCohTZJFhbBhDXFoHa\"]},\"src/contracts/common/StaticDelegateCallable.sol\":{\"keccak256\":\"0x350029aa8955eacaffffaeb58babc5c98e80ebc5c5db388ed17ee6465f4a9d90\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://eb392a8ee9050e0af606897df63e3404e3829e8b688b580663892f9664195764\",\"dweb:/ipfs/QmaXC8jqV8UrrAFkzXTEv2fJF56sy33HhLxAzaRZmUxuXD\"]},\"src/contracts/delegator/BaseDelegator.sol\":{\"keccak256\":\"0x7c54d491fdd4415b764a9c8defa068e56d4c0c8c9419be0053a1d377669290e8\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://9238bfbad0f6eeb0dc7727724de14380f1980b395902269703d5e2ef07e52e10\",\"dweb:/ipfs/QmPJn1V4HNXcEghYvogGuSTF24dSQUPosR5qtsXcmNqRm3\"]},\"src/contracts/delegator/FullRestakeDelegator.sol\":{\"keccak256\":\"0x0a81c4f8e72914563a9cb771e93acf889c71ea36b7bec040e4eb562b199d5af1\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://6fc66b6ba02da77046a0bbbd1dd407a62c08f52e04486c9cbd2cb1cca3da555f\",\"dweb:/ipfs/QmZQivK1ZnMxfRQQ5aLpV9co5u55wQVNev5Rg1hzAqxhkE\"]},\"src/contracts/libraries/Checkpoints.sol\":{\"keccak256\":\"0xba90097c8bfe0a975499428b5f8ac5569483c7d92ccc28c12d70de416aae040c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://12f5d93ca94cd06d3147db68993165a58e17903ed53682560de61f3085ad4609\",\"dweb:/ipfs/QmePiuAqvXprMLmFZkGZeGjvGPAvsEDHfCDv7BoQhXu9xE\"]},\"src/contracts/libraries/Subnetwork.sol\":{\"keccak256\":\"0xf5ef5506fd66082b3c2e7f3df37529f5a8efad32ac62e7c8914bd63219190bfe\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba031a54ee0d0e9a270c2b9e18437f5668cfeb659cfd5fe0677459d7fcac2a56\",\"dweb:/ipfs/QmReP3H7qQ78tAfgLnJKsNEQNCQfF1X1Get38Ffd4kzq32\"]},\"src/interfaces/common/IEntity.sol\":{\"keccak256\":\"0x8ef4b63d6da63489778ccd5f8d13ebdd527dd4b62730b2c616df5af7474d2d21\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a8d69576a9219d85c50816a18ad53a4d53cfcb27ed38b8cccc808dc2734b71b\",\"dweb:/ipfs/QmYVN3P4Q4REvBWJ97TbAcaxm3uyB2anV6NSGa6ZtSwcEv\"]},\"src/interfaces/common/IMigratableEntity.sol\":{\"keccak256\":\"0x8f5f2809f3afbe8ebfbb365dd7b57b4dd3b6f9943a6187eaf648d45895b8e3c4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ffe640537d539e7a4fde70d30d3e4c57f4ba9c2c25c450cea713aae38e8fd5c\",\"dweb:/ipfs/QmSUTGzvdcn1R1KB7tLThMRtESsfPbeXDhhhKWGtntzBds\"]},\"src/interfaces/common/IRegistry.sol\":{\"keccak256\":\"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014\",\"dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK\"]},\"src/interfaces/common/IStaticDelegateCallable.sol\":{\"keccak256\":\"0xa335d4e81b9071b7de66ef92b43ff20671d86516eb1be46fef29a3483cd3f5d5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d464b9db863c14c05547d2b23352f2e9b7b784799cf09f6bbc4906a2a74e3516\",\"dweb:/ipfs/QmUVWzFvJz7eEbDQKiFTTzwi7TEbjcs3VmwdM4kuptAKvi\"]},\"src/interfaces/delegator/IBaseDelegator.sol\":{\"keccak256\":\"0x96bb312f032e17accce3f8f80936d99468029d6b37c9ca74acdb4b026a0148ee\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2a66dcb5b7d1a6ef6a363431ea98ebd78bc4fdd3d7a134d9b542dc66e7d025c2\",\"dweb:/ipfs/QmRhTPLd2ZAyRHmJUFUcWKs9b3if49QY17LYZuRqWmghw8\"]},\"src/interfaces/delegator/IDelegatorHook.sol\":{\"keccak256\":\"0xc51aa8d7d1f6c8043ee819b7aeb86da0e993912e1442098df897e299f01f9f46\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://adddf5cb2ba282aeb576b26efb28640f865a1721cc9b6eee8b3ee0457a2c9780\",\"dweb:/ipfs/QmNYgAmnLRwWZbhTuQhZs9rx4zcme1df5mEepkrniorSoW\"]},\"src/interfaces/delegator/IFullRestakeDelegator.sol\":{\"keccak256\":\"0xa3c8cb2e45d4d8ce90e95263bea40c01dc400f05ad65bc29597d878606be5e7d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://782cf5e201aa4cca037ebafd3807a68ff1cc721d5b8416a35244db0d0607369e\",\"dweb:/ipfs/QmQkJks6x7CKndeTPa9LxgTNygD5uEi7obhADhpq1Lsr9A\"]},\"src/interfaces/service/IOptInService.sol\":{\"keccak256\":\"0x76fb5460a6d87a5705433d4fbeff7253cd75b8bbd0c888b2088f16e86ace146a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://990322019b3d11465f7024bae77ccbf7e2fe5d6fa3c754584778f37d04fa1337\",\"dweb:/ipfs/QmaSNHzcqxTkUCG9a4nqVfLECHLdjdrwAnDi3yDC7tDL24\"]},\"src/interfaces/vault/IVault.sol\":{\"keccak256\":\"0xffee01d383cd4e1a5530c614bf4360c1ef070c288abec9da1eb531b51bc07235\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://04f0046cac285d8ec44ebbb1f79dc94fab4495767190cad8364fbc1fafaadfb9\",\"dweb:/ipfs/QmUawAunwzXfCyShWfhKeThAgKtqe51hmrxvrXvM772M2R\"]},\"src/interfaces/vault/IVaultStorage.sol\":{\"keccak256\":\"0x592626f13754194f83047135de19229c49390bd59e34659b1bb38be71d973a22\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://06a6a9dfddd05e580b32bebe2cff4f63ba26a653180676d58225dd30d9c89d3e\",\"dweb:/ipfs/QmdgzBeY6Sxo8mGtyBxtv1tM1c2kU6J6zjeRd7vuXm4DU6\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.25+commit.b61c2a91"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"networkRegistry","type":"address"},{"internalType":"address","name":"vaultFactory","type":"address"},{"internalType":"address","name":"operatorVaultOptInService","type":"address"},{"internalType":"address","name":"operatorNetworkOptInService","type":"address"},{"internalType":"address","name":"delegatorFactory","type":"address"},{"internalType":"uint64","name":"entityType","type":"uint64"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"AccessControlBadConfirmation"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bytes32","name":"neededRole","type":"bytes32"}],"type":"error","name":"AccessControlUnauthorizedAccount"},{"inputs":[],"type":"error","name":"AlreadySet"},{"inputs":[],"type":"error","name":"CheckpointUnorderedInsertion"},{"inputs":[],"type":"error","name":"DuplicateRoleHolder"},{"inputs":[],"type":"error","name":"ExceedsMaxNetworkLimit"},{"inputs":[],"type":"error","name":"InsufficientHookGas"},{"inputs":[],"type":"error","name":"InvalidInitialization"},{"inputs":[],"type":"error","name":"MissingRoleHolders"},{"inputs":[],"type":"error","name":"NotInitialized"},{"inputs":[],"type":"error","name":"NotInitializing"},{"inputs":[],"type":"error","name":"NotNetwork"},{"inputs":[],"type":"error","name":"NotSlasher"},{"inputs":[],"type":"error","name":"NotVault"},{"inputs":[],"type":"error","name":"ReentrancyGuardReentrantCall"},{"inputs":[{"internalType":"uint8","name":"bits","type":"uint8"},{"internalType":"uint256","name":"value","type":"uint256"}],"type":"error","name":"SafeCastOverflowedUintDowncast"},{"inputs":[],"type":"error","name":"ZeroAddressRoleHolder"},{"inputs":[{"internalType":"uint64","name":"version","type":"uint64","indexed":false}],"type":"event","name":"Initialized","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32","indexed":true},{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false},{"internalType":"uint48","name":"captureTimestamp","type":"uint48","indexed":false}],"type":"event","name":"OnSlash","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"bytes32","name":"previousAdminRole","type":"bytes32","indexed":true},{"internalType":"bytes32","name":"newAdminRole","type":"bytes32","indexed":true}],"type":"event","name":"RoleAdminChanged","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"address","name":"sender","type":"address","indexed":true}],"type":"event","name":"RoleGranted","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"address","name":"sender","type":"address","indexed":true}],"type":"event","name":"RoleRevoked","anonymous":false},{"inputs":[{"internalType":"address","name":"hook","type":"address","indexed":true}],"type":"event","name":"SetHook","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"SetMaxNetworkLimit","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"SetNetworkLimit","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32","indexed":true},{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"SetOperatorNetworkLimit","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"DEFAULT_ADMIN_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"FACTORY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"HOOK_GAS_LIMIT","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"HOOK_RESERVE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"HOOK_SET_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"NETWORK_LIMIT_SET_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"NETWORK_REGISTRY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"OPERATOR_NETWORK_LIMIT_SET_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"OPERATOR_NETWORK_OPT_IN_SERVICE","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"OPERATOR_VAULT_OPT_IN_SERVICE","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"TYPE","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"VAULT_FACTORY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"VERSION","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getRoleAdmin","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"grantRole"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"hasRole","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"hook","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"}],"stateMutability":"view","type":"function","name":"maxNetworkLimit","outputs":[{"internalType":"uint256","name":"value","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"}],"stateMutability":"view","type":"function","name":"networkLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"uint48","name":"timestamp","type":"uint48"},{"internalType":"bytes","name":"hint","type":"bytes"}],"stateMutability":"view","type":"function","name":"networkLimitAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint48","name":"captureTimestamp","type":"uint48"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"onSlash"},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"operatorNetworkLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint48","name":"timestamp","type":"uint48"},{"internalType":"bytes","name":"hint","type":"bytes"}],"stateMutability":"view","type":"function","name":"operatorNetworkLimitAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"callerConfirmation","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"renounceRole"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"revokeRole"},{"inputs":[{"internalType":"address","name":"hook_","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setHook"},{"inputs":[{"internalType":"uint96","name":"identifier","type":"uint96"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setMaxNetworkLimit"},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setNetworkLimit"},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setOperatorNetworkLimit"},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"stake","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint48","name":"timestamp","type":"uint48"},{"internalType":"bytes","name":"hints","type":"bytes"}],"stateMutability":"view","type":"function","name":"stakeAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"staticDelegateCall"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"vault","outputs":[{"internalType":"address","name":"","type":"address"}]}],"devdoc":{"kind":"dev","methods":{"VERSION()":{"details":"Must return 1 for this one.","returns":{"_0":"version of the delegator"}},"getRoleAdmin(bytes32)":{"details":"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}."},"grantRole(bytes32,address)":{"details":"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event."},"hasRole(bytes32,address)":{"details":"Returns `true` if `account` has been granted `role`."},"initialize(bytes)":{"params":{"data":"some data to use"}},"networkLimit(bytes32)":{"params":{"subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"},"returns":{"_0":"limit of the subnetwork"}},"networkLimitAt(bytes32,uint48,bytes)":{"params":{"hint":"hint for checkpoint index","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)","timestamp":"time point to get the subnetwork limit at"},"returns":{"_0":"limit of the subnetwork at the given timestamp"}},"onSlash(bytes32,address,uint256,uint48,bytes)":{"details":"Only the vault's slasher can call this function.","params":{"amount":"amount of the collateral slashed","captureTimestamp":"time point when the stake was captured","data":"some additional data","operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"}},"operatorNetworkLimit(bytes32,address)":{"params":{"operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"},"returns":{"_0":"limit of the operator for the subnetwork"}},"operatorNetworkLimitAt(bytes32,address,uint48,bytes)":{"params":{"hint":"hint for checkpoint index","operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)","timestamp":"time point to get the operator's limit for the subnetwork at"},"returns":{"_0":"limit of the operator for the subnetwork at the given timestamp"}},"renounceRole(bytes32,address)":{"details":"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `callerConfirmation`. May emit a {RoleRevoked} event."},"revokeRole(bytes32,address)":{"details":"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event."},"setHook(address)":{"details":"Only a HOOK_SET_ROLE holder can call this function. The hook can have arbitrary logic under certain functions, however, it doesn't affect the stake guarantees.","params":{"hook":"address of the hook"}},"setMaxNetworkLimit(uint96,uint256)":{"details":"Only a network can call this function.","params":{"amount":"new maximum subnetwork's limit"}},"setNetworkLimit(bytes32,uint256)":{"details":"Only a NETWORK_LIMIT_SET_ROLE holder can call this function.","params":{"amount":"new limit of the subnetwork","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"}},"setOperatorNetworkLimit(bytes32,address,uint256)":{"details":"Only an OPERATOR_NETWORK_LIMIT_SET_ROLE holder can call this function.","params":{"amount":"new limit of the operator for the subnetwork","operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"}},"stake(bytes32,address)":{"details":"Warning: this function is not safe to use for stake capturing, as it can change by the end of the block.","params":{"operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"},"returns":{"_0":"slashable stake until the end of the next epoch"}},"stakeAt(bytes32,address,uint48,bytes)":{"details":"Warning: it is not safe to use timestamp >= current one for the stake capturing, as it can change later.","params":{"hints":"hints for the checkpoints' indexes","operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)","timestamp":"time point to capture the stake at"},"returns":{"_0":"slashable stake at the given timestamp until the end of the consequent epoch"}},"staticDelegateCall(address,bytes)":{"details":"It allows to use this contract's storage on-chain.","params":{"data":"data to make a delegatecall with","target":"address of the contract to make a delegatecall to"}},"supportsInterface(bytes4)":{"details":"See {IERC165-supportsInterface}."}},"version":1},"userdoc":{"kind":"user","methods":{"FACTORY()":{"notice":"Get the factory's address."},"HOOK_GAS_LIMIT()":{"notice":"Get a gas limit for the hook."},"HOOK_RESERVE()":{"notice":"Get a reserve gas between the gas limit check and the hook's execution."},"HOOK_SET_ROLE()":{"notice":"Get a hook setter's role."},"NETWORK_LIMIT_SET_ROLE()":{"notice":"Get a subnetwork limit setter's role."},"NETWORK_REGISTRY()":{"notice":"Get the network registry's address."},"OPERATOR_NETWORK_LIMIT_SET_ROLE()":{"notice":"Get an operator-subnetwork limit setter's role."},"OPERATOR_NETWORK_OPT_IN_SERVICE()":{"notice":"Get the operator-network opt-in service's address."},"OPERATOR_VAULT_OPT_IN_SERVICE()":{"notice":"Get the operator-vault opt-in service's address."},"TYPE()":{"notice":"Get the entity's type."},"VAULT_FACTORY()":{"notice":"Get the vault factory's address."},"VERSION()":{"notice":"Get a version of the delegator (different versions mean different interfaces)."},"hook()":{"notice":"Get the hook's address."},"initialize(bytes)":{"notice":"Initialize this entity contract by using a given data."},"maxNetworkLimit(bytes32)":{"notice":"Get a particular subnetwork's maximum limit (meaning the subnetwork is not ready to get more as a stake)."},"networkLimit(bytes32)":{"notice":"Get a subnetwork's limit (how much stake the vault curator is ready to give to the subnetwork)."},"networkLimitAt(bytes32,uint48,bytes)":{"notice":"Get a subnetwork's limit at a given timestamp using a hint (how much stake the vault curator is ready to give to the subnetwork)."},"onSlash(bytes32,address,uint256,uint48,bytes)":{"notice":"Called when a slash happens."},"operatorNetworkLimit(bytes32,address)":{"notice":"Get an operator's limit for a subnetwork. (how much stake the vault curator is ready to give to the operator for the subnetwork)"},"operatorNetworkLimitAt(bytes32,address,uint48,bytes)":{"notice":"Get an operator's limit for a subnetwork at a given timestamp using a hint (how much stake the vault curator is ready to give to the operator for the subnetwork)."},"setHook(address)":{"notice":"Set a new hook."},"setMaxNetworkLimit(uint96,uint256)":{"notice":"Set a maximum limit for a subnetwork (how much stake the subnetwork is ready to get). identifier identifier of the subnetwork"},"setNetworkLimit(bytes32,uint256)":{"notice":"Set a subnetwork's limit (how much stake the vault curator is ready to give to the subnetwork)."},"setOperatorNetworkLimit(bytes32,address,uint256)":{"notice":"Set an operator's limit for a subnetwork. (how much stake the vault curator is ready to give to the operator for the subnetwork)"},"stake(bytes32,address)":{"notice":"Get a stake that a given subnetwork will be able to slash for a certain operator until the end of the next epoch (if no cross-slashing and no slashings by the subnetwork)."},"stakeAt(bytes32,address,uint48,bytes)":{"notice":"Get a stake that a given subnetwork could be able to slash for a certain operator at a given timestamp until the end of the consequent epoch using hints (if no cross-slashing and no slashings by the subnetwork)."},"staticDelegateCall(address,bytes)":{"notice":"Make a delegatecall from this contract to a given target contract with a particular data (always reverts with a return data)."},"vault()":{"notice":"Get the vault's address."}},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/contracts/delegator/FullRestakeDelegator.sol":"FullRestakeDelegator"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol":{"keccak256":"0x6662ec4e5cefca03eeadd073e9469df8d2944bb2ee8ec8f7622c2c46aab5f225","urls":["bzz-raw://4d8544c6f8daa4d1bc215c6a72fe0acdb748664a105b0e5efc19295667521d45","dweb:/ipfs/QmdGWqdnXT8S3RgCR6aV8XHZrsybieMQLLnug1NtpSjEXN"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b","urls":["bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609","dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol":{"keccak256":"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397","urls":["bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9","dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardUpgradeable.sol":{"keccak256":"0xb44e086e941292cdc7f440de51478493894ef0b1aeccb0c4047445919f667f74","urls":["bzz-raw://942dad22fbdc1669f025540ba63aa3ccfad5f8458fc5d4525b31ebf272e7af45","dweb:/ipfs/Qmdo4X2M82aM3AMoW2kf2jhYkSCyC4T1pHNd6obdsDFnAB"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol":{"keccak256":"0xdaba3f7c42c55b2896353f32bd27d4d5f8bae741b3b05d4c53f67abc4dc47ce8","urls":["bzz-raw://1fa2e61141c602510bcd2cd936ed9561922ac8772a9b9c9a9db091a74e354a45","dweb:/ipfs/QmcHQDDoEBwJmwUbzoVkytvJsBx3KVHYFFnDkvRGWh9Wmh"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol":{"keccak256":"0xb6b36edd6a2999fd243ff226d6cbf84bd71af2432bbd0dfe19392996a1d9cb41","urls":["bzz-raw://1fd2f35495652e57e3f99bc6c510bc5f7dd398a176ea2e72d8ed730aebc6ca26","dweb:/ipfs/QmTQV6X4gkikTib49cho5iDX3JvSQbdsoEChoDwrk3CbbH"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b","urls":["bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df","dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d","urls":["bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875","dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol":{"keccak256":"0xe19a4d5f31d2861e7344e8e535e2feafb913d806d3e2b5fe7782741a2a7094fe","urls":["bzz-raw://4aed79c0fa6f0546ed02f2f683e8f77f0fd2ed7eb34d8bbf3d373c9a6d95b13c","dweb:/ipfs/QmWqVz6UAVqmnWU5pqYPt1o6iDEZyPaBraAA3rKfTTSfYj"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/Checkpoints.sol":{"keccak256":"0xbdc5e074d7dd6678f67e92b1a51a20226801a407b0e1af3da367c5d1ff4519ad","urls":["bzz-raw://a36cca6b22fff3db16fc789ff6c60eea71d4b156065d4d0c83a0bc5e91a77a8b","dweb:/ipfs/QmYN3exd5AemxjBrN8XMB1p5LbbE16uC3sjbYjwi8AjcGR"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/types/Time.sol":{"keccak256":"0xc7755af115020049e4140f224f9ee88d7e1799ffb0646f37bf0df24bf6213f58","urls":["bzz-raw://7f09bf94d5274334ec021f61a04659db303f31e60460e14b709c9bf187740111","dweb:/ipfs/QmNvgomZYUwFAt4cZbPWAiTeSZQreGehY9BK5xyVJsUttb"],"license":"MIT"},"src/contracts/common/Entity.sol":{"keccak256":"0x3d61a932995b8443381f3950542d388223a2c26dd5d29a3274dea3baa7388bd7","urls":["bzz-raw://7cdf5f03ca72fd263fd32ff59c8d88ddca911ae83896a287d10772c1bbe9b138","dweb:/ipfs/QmbP84r5BWT1Rn9AYTntWSf3xUMTTCohTZJFhbBhDXFoHa"],"license":"BUSL-1.1"},"src/contracts/common/StaticDelegateCallable.sol":{"keccak256":"0x350029aa8955eacaffffaeb58babc5c98e80ebc5c5db388ed17ee6465f4a9d90","urls":["bzz-raw://eb392a8ee9050e0af606897df63e3404e3829e8b688b580663892f9664195764","dweb:/ipfs/QmaXC8jqV8UrrAFkzXTEv2fJF56sy33HhLxAzaRZmUxuXD"],"license":"BUSL-1.1"},"src/contracts/delegator/BaseDelegator.sol":{"keccak256":"0x7c54d491fdd4415b764a9c8defa068e56d4c0c8c9419be0053a1d377669290e8","urls":["bzz-raw://9238bfbad0f6eeb0dc7727724de14380f1980b395902269703d5e2ef07e52e10","dweb:/ipfs/QmPJn1V4HNXcEghYvogGuSTF24dSQUPosR5qtsXcmNqRm3"],"license":"BUSL-1.1"},"src/contracts/delegator/FullRestakeDelegator.sol":{"keccak256":"0x0a81c4f8e72914563a9cb771e93acf889c71ea36b7bec040e4eb562b199d5af1","urls":["bzz-raw://6fc66b6ba02da77046a0bbbd1dd407a62c08f52e04486c9cbd2cb1cca3da555f","dweb:/ipfs/QmZQivK1ZnMxfRQQ5aLpV9co5u55wQVNev5Rg1hzAqxhkE"],"license":"BUSL-1.1"},"src/contracts/libraries/Checkpoints.sol":{"keccak256":"0xba90097c8bfe0a975499428b5f8ac5569483c7d92ccc28c12d70de416aae040c","urls":["bzz-raw://12f5d93ca94cd06d3147db68993165a58e17903ed53682560de61f3085ad4609","dweb:/ipfs/QmePiuAqvXprMLmFZkGZeGjvGPAvsEDHfCDv7BoQhXu9xE"],"license":"MIT"},"src/contracts/libraries/Subnetwork.sol":{"keccak256":"0xf5ef5506fd66082b3c2e7f3df37529f5a8efad32ac62e7c8914bd63219190bfe","urls":["bzz-raw://ba031a54ee0d0e9a270c2b9e18437f5668cfeb659cfd5fe0677459d7fcac2a56","dweb:/ipfs/QmReP3H7qQ78tAfgLnJKsNEQNCQfF1X1Get38Ffd4kzq32"],"license":"MIT"},"src/interfaces/common/IEntity.sol":{"keccak256":"0x8ef4b63d6da63489778ccd5f8d13ebdd527dd4b62730b2c616df5af7474d2d21","urls":["bzz-raw://5a8d69576a9219d85c50816a18ad53a4d53cfcb27ed38b8cccc808dc2734b71b","dweb:/ipfs/QmYVN3P4Q4REvBWJ97TbAcaxm3uyB2anV6NSGa6ZtSwcEv"],"license":"MIT"},"src/interfaces/common/IMigratableEntity.sol":{"keccak256":"0x8f5f2809f3afbe8ebfbb365dd7b57b4dd3b6f9943a6187eaf648d45895b8e3c4","urls":["bzz-raw://0ffe640537d539e7a4fde70d30d3e4c57f4ba9c2c25c450cea713aae38e8fd5c","dweb:/ipfs/QmSUTGzvdcn1R1KB7tLThMRtESsfPbeXDhhhKWGtntzBds"],"license":"MIT"},"src/interfaces/common/IRegistry.sol":{"keccak256":"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb","urls":["bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014","dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK"],"license":"MIT"},"src/interfaces/common/IStaticDelegateCallable.sol":{"keccak256":"0xa335d4e81b9071b7de66ef92b43ff20671d86516eb1be46fef29a3483cd3f5d5","urls":["bzz-raw://d464b9db863c14c05547d2b23352f2e9b7b784799cf09f6bbc4906a2a74e3516","dweb:/ipfs/QmUVWzFvJz7eEbDQKiFTTzwi7TEbjcs3VmwdM4kuptAKvi"],"license":"MIT"},"src/interfaces/delegator/IBaseDelegator.sol":{"keccak256":"0x96bb312f032e17accce3f8f80936d99468029d6b37c9ca74acdb4b026a0148ee","urls":["bzz-raw://2a66dcb5b7d1a6ef6a363431ea98ebd78bc4fdd3d7a134d9b542dc66e7d025c2","dweb:/ipfs/QmRhTPLd2ZAyRHmJUFUcWKs9b3if49QY17LYZuRqWmghw8"],"license":"MIT"},"src/interfaces/delegator/IDelegatorHook.sol":{"keccak256":"0xc51aa8d7d1f6c8043ee819b7aeb86da0e993912e1442098df897e299f01f9f46","urls":["bzz-raw://adddf5cb2ba282aeb576b26efb28640f865a1721cc9b6eee8b3ee0457a2c9780","dweb:/ipfs/QmNYgAmnLRwWZbhTuQhZs9rx4zcme1df5mEepkrniorSoW"],"license":"MIT"},"src/interfaces/delegator/IFullRestakeDelegator.sol":{"keccak256":"0xa3c8cb2e45d4d8ce90e95263bea40c01dc400f05ad65bc29597d878606be5e7d","urls":["bzz-raw://782cf5e201aa4cca037ebafd3807a68ff1cc721d5b8416a35244db0d0607369e","dweb:/ipfs/QmQkJks6x7CKndeTPa9LxgTNygD5uEi7obhADhpq1Lsr9A"],"license":"MIT"},"src/interfaces/service/IOptInService.sol":{"keccak256":"0x76fb5460a6d87a5705433d4fbeff7253cd75b8bbd0c888b2088f16e86ace146a","urls":["bzz-raw://990322019b3d11465f7024bae77ccbf7e2fe5d6fa3c754584778f37d04fa1337","dweb:/ipfs/QmaSNHzcqxTkUCG9a4nqVfLECHLdjdrwAnDi3yDC7tDL24"],"license":"MIT"},"src/interfaces/vault/IVault.sol":{"keccak256":"0xffee01d383cd4e1a5530c614bf4360c1ef070c288abec9da1eb531b51bc07235","urls":["bzz-raw://04f0046cac285d8ec44ebbb1f79dc94fab4495767190cad8364fbc1fafaadfb9","dweb:/ipfs/QmUawAunwzXfCyShWfhKeThAgKtqe51hmrxvrXvM772M2R"],"license":"MIT"},"src/interfaces/vault/IVaultStorage.sol":{"keccak256":"0x592626f13754194f83047135de19229c49390bd59e34659b1bb38be71d973a22","urls":["bzz-raw://06a6a9dfddd05e580b32bebe2cff4f63ba26a653180676d58225dd30d9c89d3e","dweb:/ipfs/QmdgzBeY6Sxo8mGtyBxtv1tM1c2kU6J6zjeRd7vuXm4DU6"],"license":"MIT"}},"version":1},"id":82} \ No newline at end of file +{"abi":[{"type":"constructor","inputs":[{"name":"networkRegistry","type":"address","internalType":"address"},{"name":"vaultFactory","type":"address","internalType":"address"},{"name":"operatorVaultOptInService","type":"address","internalType":"address"},{"name":"operatorNetworkOptInService","type":"address","internalType":"address"},{"name":"delegatorFactory","type":"address","internalType":"address"},{"name":"entityType","type":"uint64","internalType":"uint64"}],"stateMutability":"nonpayable"},{"type":"function","name":"DEFAULT_ADMIN_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"FACTORY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"HOOK_GAS_LIMIT","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"HOOK_RESERVE","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"HOOK_SET_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"NETWORK_LIMIT_SET_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"NETWORK_REGISTRY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"OPERATOR_NETWORK_LIMIT_SET_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"OPERATOR_NETWORK_OPT_IN_SERVICE","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"OPERATOR_VAULT_OPT_IN_SERVICE","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"TYPE","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"VAULT_FACTORY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"VERSION","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"pure"},{"type":"function","name":"getRoleAdmin","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"grantRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"hasRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"hook","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"initialize","inputs":[{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"maxNetworkLimit","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"value","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"networkLimit","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"networkLimitAt","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"timestamp","type":"uint48","internalType":"uint48"},{"name":"hint","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"onSlash","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"captureTimestamp","type":"uint48","internalType":"uint48"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"operatorNetworkLimit","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"operatorNetworkLimitAt","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"timestamp","type":"uint48","internalType":"uint48"},{"name":"hint","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"renounceRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"callerConfirmation","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"revokeRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setHook","inputs":[{"name":"hook_","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setMaxNetworkLimit","inputs":[{"name":"identifier","type":"uint96","internalType":"uint96"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setNetworkLimit","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setOperatorNetworkLimit","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"stake","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"stakeAt","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"timestamp","type":"uint48","internalType":"uint48"},{"name":"hints","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"staticDelegateCall","inputs":[{"name":"target","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"vault","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"OnSlash","inputs":[{"name":"subnetwork","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"captureTimestamp","type":"uint48","indexed":false,"internalType":"uint48"}],"anonymous":false},{"type":"event","name":"RoleAdminChanged","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"previousAdminRole","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"newAdminRole","type":"bytes32","indexed":true,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"RoleGranted","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"sender","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"RoleRevoked","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"sender","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"SetHook","inputs":[{"name":"hook","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"SetMaxNetworkLimit","inputs":[{"name":"subnetwork","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"SetNetworkLimit","inputs":[{"name":"subnetwork","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"SetOperatorNetworkLimit","inputs":[{"name":"subnetwork","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"error","name":"AccessControlBadConfirmation","inputs":[]},{"type":"error","name":"AccessControlUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"neededRole","type":"bytes32","internalType":"bytes32"}]},{"type":"error","name":"AlreadySet","inputs":[]},{"type":"error","name":"CheckpointUnorderedInsertion","inputs":[]},{"type":"error","name":"DuplicateRoleHolder","inputs":[]},{"type":"error","name":"ExceedsMaxNetworkLimit","inputs":[]},{"type":"error","name":"InsufficientHookGas","inputs":[]},{"type":"error","name":"InvalidInitialization","inputs":[]},{"type":"error","name":"MissingRoleHolders","inputs":[]},{"type":"error","name":"NotInitialized","inputs":[]},{"type":"error","name":"NotInitializing","inputs":[]},{"type":"error","name":"NotNetwork","inputs":[]},{"type":"error","name":"NotSlasher","inputs":[]},{"type":"error","name":"NotVault","inputs":[]},{"type":"error","name":"ReentrancyGuardReentrantCall","inputs":[]},{"type":"error","name":"SafeCastOverflowedUintDowncast","inputs":[{"name":"bits","type":"uint8","internalType":"uint8"},{"name":"value","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ZeroAddressRoleHolder","inputs":[]}],"bytecode":{"object":"0x610140346101a1576001600160401b0390601f612cbd38819003918201601f191683019190848311848410176101a5578160c092859260409586528339810103126101a15761004d826101b9565b610059602084016101b9565b906100658385016101b9565b94610072606086016101b9565b9460a0610081608083016101b9565b9101519180831683036101a1577ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a009081549060ff82891c1661019057808083160361014c575b50505060805260a05260c05260e0526101009283526101209182525190612aef92836101ce84396080518361072a015260a05183610eb8015260c0518381816105bb0152610ef1015260e0518381816104620152611d990152518281816104f5015281816114c001526116040152518181816105390152818161142701526116820152f35b6001600160401b0319909116811790915585519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a15f80806100c7565b875163f92ee8a960e01b8152600490fd5b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b51906001600160a01b03821682036101a15756fe60806040526004361015610011575f80fd5b5f3560e01c806301ffc9a714610244578063020cf0c21461023f578063021453481461023a578063103f2907146102355780631142209514610230578063128e5d821461022b5780631a80e5001461022657806323f752d514610221578063248a9ca31461021c5780632dd31000146102175780632f2ff15d1461021257806336568abe1461020d5780633dfd3873146102085780633eb22c0f14610203578063439fab91146101fe578063518504ba146101f9578063557cab44146101f45780635d32a1c9146101ef5780636679191e146101ea5780637d24bb27146101e55780637f5a7c7b146101e057806391d14854146101db57806394d2558a146101d65780639f86fd85146101d1578063a217fddf146101cc578063bb24fe8a146101c7578063c0cd7c3e146101c2578063d15b740e146101bd578063d547741f146101b8578063e02f6937146101b3578063e49561ee146101ae578063fbfa77cf146101a9578063fd4d447c146101a4578063ff54740f1461019f5763ffa1ad741461019a575f80fd5b61120b565b6111ee565b6111c4565b61119d565b610fb2565b610f96565b610f4a565b610f20565b610edc565b610e99565b610e7f565b610dc5565b610d87565b610cd7565b610caf565b610c76565b610c3c565b610be1565b610ab1565b610a77565b61093f565b6108e9565b6107f0565b6107a5565b610759565b610715565b6106dc565b610568565b610524565b6104e0565b610491565b61044d565b610390565b6102af565b3461029a57602036600319011261029a5760043563ffffffff60e01b811680910361029a57602090637965db0b60e01b8114908115610289575b506040519015158152f35b6301ffc9a760e01b1490505f61027e565b5f80fd5b6001600160a01b0381160361029a57565b3461029a57606036600319011261029a576024356004356102cf8261029e565b604435916102db6116f7565b815f526004602052826103096103048360405f209060018060a01b03165f5260205260405f2090565b61190f565b1461037e5760207ffc9545f07ffadfb668efd0144cdcaf2d6e2c8192dce1ea9fc131934f9c90fc7e91835f52600482526103698561035a8360405f209060018060a01b03165f5260205260405f2090565b61036342612254565b9061184d565b50506040519485526001600160a01b031693a3005b60405163a741a04560e01b8152600490fd5b3461029a5760408060031936011261029a5760043590602435906103b2611754565b825f526002602052805f2054821161043d57825f526003602052816103d8825f2061190f565b1461042d5781610428916104187e899d104fc3d8820bd96540612bcc5c448c8837b13b9f7faa43ad0728f0c14f9461035a875f52600360205260405f2090565b5050519081529081906020820190565b0390a2005b5163a741a04560e01b8152600490fd5b51631eefc06360e31b8152600490fd5b3461029a575f36600319011261029a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461029a57604036600319011261029a5760206104d86103046024356104b68161029e565b6004355f526004845260405f209060018060a01b03165f5260205260405f2090565b604051908152f35b3461029a575f36600319011261029a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461029a575f36600319011261029a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461029a57604036600319011261029a576004356001600160601b038116810361029a576024359061059861195c565b6040516302910f8b60e31b81523360048201526020816024816001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165afa9081156106d7575f916106a8575b5015610696576001600160601b03166bffffffffffffffffffffffff193360601b16179080610622835f52600260205260405f2090565b541461037e5761067b817fc67e7929681aa1bccd63f52b3799bf5805f3009f197db6fdf584b14f7fbf608c92610660855f52600260205260405f2090565b5561066b818561198b565b6040519081529081906020820190565b0390a261069460015f80516020612a7a83398151915255565b005b6040516323d53b9760e21b8152600490fd5b6106ca915060203d6020116106d0575b6106c28183610b31565b810190611226565b5f6105eb565b503d6106b8565b61123e565b3461029a57602036600319011261029a576004355f525f80516020612a5a8339815191526020526020600160405f200154604051908152f35b3461029a575f36600319011261029a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461029a57604036600319011261029a5761069460243560043561077c8261029e565b805f525f80516020612a5a8339815191526020526107a0600160405f2001546117aa565b611c66565b3461029a57604036600319011261029a576024356107c28161029e565b336001600160a01b038216036107de5761069490600435611c9c565b60405163334bd91960e11b8152600490fd5b3461029a57602036600319011261029a5760043561080d8161029e565b61081561195c565b335f9081527f9ebbcbe0d2961d3fbe56ca6f679bc753bd848d3e6bb3eaf9041c51b286881d2c60205260409020547fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c9060ff16156108cb57506001546001600160a01b03918216918116821461037e576001600160a01b03191681176001557f5bbb1d3ebb6a3ad2a0f17ff35e579a83af60604d1d3c2a4c83c62adecadf666d5f80a260015f80516020612a7a83398151915255005b6044906040519063e2517d3f60e01b82523360048301526024820152fd5b3461029a57602036600319011261029a576004355f52600360205260206104d860405f2061190f565b9181601f8401121561029a578235916001600160401b03831161029a576020838186019501011161029a57565b3461029a57602036600319011261029a576001600160401b0360043581811161029a57610970903690600401610912565b5f80516020612a9a833981519152549260ff8460401c1615931680159081610a6f575b6001149081610a65575b159081610a5c575b50610a4a575f80516020612a9a833981519152805467ffffffffffffffff191660011790556109d89183610a2657611d64565b6109de57005b5f80516020612a9a833981519152805460ff60401b19169055604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a1005b5f80516020612a9a833981519152805460ff60401b1916600160401b179055611d64565b60405163f92ee8a960e01b8152600490fd5b9050155f6109a5565b303b15915061099d565b849150610993565b3461029a575f36600319011261029a5760206040517f15e7c882d74e8821ebf34aaff46fd0e1d53b9393d91490019124113d28dc32a38152f35b3461029a575f36600319011261029a576020604051614e208152f35b6064359065ffffffffffff8216820361029a57565b634e487b7160e01b5f52604160045260245ffd5b604081019081106001600160401b03821117610b1157604052565b610ae2565b606081019081106001600160401b03821117610b1157604052565b90601f801991011681019081106001600160401b03821117610b1157604052565b60405190608082018281106001600160401b03821117610b1157604052565b60405190610b7e82610af6565b565b6001600160401b038111610b1157601f01601f191660200190565b81601f8201121561029a57803590610bb282610b80565b92610bc06040519485610b31565b8284526020838301011161029a57815f926020809301838601378301015290565b3461029a57606036600319011261029a5760243565ffffffffffff8116810361029a576044356001600160401b03811161029a57602091610c296104d8923690600401610b9b565b906004355f526003845260405f20611ed3565b3461029a575f36600319011261029a5760206040517fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c8152f35b3461029a575f36600319011261029a5760206040517e8b9b1e5fa9cf3b14f87f435649268146305ddf689f082e5961a335b07a9abf8152f35b3461029a575f36600319011261029a576001546040516001600160a01b039091168152602090f35b3461029a57604036600319011261029a57602060ff610d29602435610cfb8161029e565b6004355f525f80516020612a5a833981519152845260405f209060018060a01b03165f5260205260405f2090565b54166040519015158152f35b90608060031983011261029a5760043591602435610d528161029e565b9160443565ffffffffffff8116810361029a5791606435906001600160401b03821161029a57610d8491600401610b9b565b90565b3461029a5760206104d8610dc0610d9d36610d35565b939190925f526004865260405f209060018060a01b03165f5260205260405f2090565b611ed3565b3461029a5760408060031936011261029a57600435610de38161029e565b602435906001600160401b03821161029a575f8091610e09610e6d943690600401610912565b908187519283928337810184815203915af43d15610e7557610e5f3d610e2e81610b80565b90610e3b86519283610b31565b81523d5f602083013e5b84519485931515602085015280840152606083019061128b565b03601f198101835282610b31565b805190602001fd5b610e5f6060610e45565b3461029a575f36600319011261029a5760206040515f8152f35b3461029a575f36600319011261029a5760206040516001600160401b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461029a575f36600319011261029a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461029a57602036600319011261029a576004355f526002602052602060405f2054604051908152f35b3461029a57604036600319011261029a57610694602435600435610f6d8261029e565b805f525f80516020612a5a833981519152602052610f91600160405f2001546117aa565b611c9c565b3461029a5760206104d8610fa936610d35565b929190916113b1565b3461029a5760a036600319011261029a57602435600435610fd28261029e565b60443591610fde610acd565b90608435906001600160401b03821161029a5761100060049236908401610b9b565b61100861195c565b5f5460209061102d90611021906001600160a01b031681565b6001600160a01b031690565b60405163b134427160e01b815294859182905afa9283156106d7575f9361116c575b506001600160a01b03928316330361115a576001546001600160a01b03168381166110cf575b50506040805195865265ffffffffffff909316602086015216927f741a5de99085c0d660f3e4192217b0ffb0ea4e35a0480de48e857a4bc3ee36ed91819081015b0390a361069460015f80516020612a7a83398151915255565b909360405194611106866110f8602082019363724ab0f760e11b8552858c898d60248701611550565b03601f198101885287610b31565b62042e305a10611148575f6110b6938192827f741a5de99085c0d660f3e4192217b0ffb0ea4e35a0480de48e857a4bc3ee36ed9951926203d090f15093611075565b604051638072475160e01b8152600490fd5b60405163dabc4ad960e01b8152600490fd5b61118f91935060203d602011611196575b6111878183610b31565b81019061153b565b915f61104f565b503d61117d565b3461029a575f36600319011261029a575f546040516001600160a01b039091168152602090f35b3461029a57604036600319011261029a5760206104d86024356111e68161029e565b6004356115cd565b3461029a575f36600319011261029a5760206040516203d0908152f35b3461029a575f36600319011261029a57602060405160018152f35b9081602091031261029a5751801515810361029a5790565b6040513d5f823e3d90fd5b90610d8492915f52600360205260405f20611ed3565b5f9081526004602090815260408083206001600160a01b03909416835292905220610d84929190611ed3565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b604051906112bc82610af6565b60606020838281520152565b81601f8201121561029a578051906112df82610b80565b926112ed6040519485610b31565b8284526020838301011161029a57815f9260208093018386015e8301015290565b9060208282031261029a5781516001600160401b039283821161029a57019060408282031261029a576040519261134484610af6565b825181811161029a57826113599185016112c8565b8452602083015190811161029a5761137192016112c8565b602082015290565b6001600160a01b0391821681529116602082015265ffffffffffff9091166040820152608060608201819052610d849291019061128b565b926113c1909291928284866120b9565b9290936113cc6112af565b9380518061151f575b50508415938415611489575b84156113f8575b505050506113f35790565b505f90565b602080949550611423910151604051958694859463530e1d4360e01b865260601c9060048601611379565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa9081156106d7575f9161146a575b50155f8080806113e8565b611483915060203d6020116106d0576106c28183610b31565b5f61145f565b5f549094506001600160a01b03166020848651926114bc604051948593849363530e1d4360e01b85528960048601611379565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa9081156106d7575f91611500575b5015936113e1565b611519915060203d6020116106d0576106c28183610b31565b5f6114f8565b61153392955060208091830101910161130e565b925f806113d5565b9081602091031261029a5751610d848161029e565b919360a093610d84969565ffffffffffff938552600180871b031660208501526040840152166060820152816080820152019061128b565b634e487b7160e01b5f52601160045260245ffd5b81156115a6570490565b634e487b7160e01b5f52601260045260245ffd5b90600182018092116115c857565b611588565b5f546040516308834cb560e21b8082526001600160a01b0385811660048401529283166024830152929392602092909183816044817f000000000000000000000000000000000000000000000000000000000000000086165afa9081156106d7575f916116da575b5015918215611656575b5050905061165057610d84916121ae565b50505f90565b6040519081526001600160a01b0385166004820152606086901c602482015291508290829060449082907f0000000000000000000000000000000000000000000000000000000000000000165afa9182156106d7575f926116bd575b505015805f8061163f565b6116d39250803d106106d0576106c28183610b31565b5f806116b2565b6116f19150843d86116106d0576106c28183610b31565b5f611635565b335f9081527f24e48de785eeca8420b70f73d267a66970ccc187d459f2a4b53e74ed92a5ab86602052604090207f15e7c882d74e8821ebf34aaff46fd0e1d53b9393d91490019124113d28dc32a39060ff905b5416156108cb5750565b335f9081527f72a65082a5691803ab2b62c9bc729b34205ba1b183d950896526b2fd8714d0c7602052604090207e8b9b1e5fa9cf3b14f87f435649268146305ddf689f082e5961a335b07a9abf9060ff9061174a565b5f8181525f80516020612a5a83398151915260209081526040808320338452909152902060ff9061174a565b634e487b7160e01b5f52603260045260245ffd5b80548210156117ff575f5260205f2001905f90565b6117d6565b90815491600160401b831015610b115782611827916001610b7e950181556117ea565b90919082549060031b91821b915f19901b1916179055565b5f198101919082116115c857565b909291926001820190815480156118df575b508461186a846122aa565b5094909284549361187a8361190f565b96816118ca575b50156118a7575050505f1981019081116115c85761182785916118a3936117ea565b9190565b6118a39492936118c3926001600160d01b03909116919061277e565b5050611804565b65ffffffffffff83811691161490505f611881565b600160401b811015610b11578060016118fb92018455836117ea565b8154905f199060031b1b191690555f61185f565b80548061193e57505f5b6001600160d01b0381161561165057600161193492016117ea565b90549060031b1c90565b5f199080828101116115c857825f5260205f2001015460301c611919565b5f80516020612a7a83398151915260028154146119795760029055565b604051633ee5aeb560e01b8152600490fd5b90815f52600360205260405f20816119a2826122aa565b919390508315611a00576119c2916001600160d01b0316906001016117ea565b90549060031b1c5b826119f6575b50506119da575050565b6119f2915f52600360205260405f2061036342612254565b5050565b119050815f6119d0565b50505f6119ca565b6001600160a01b0381165f9081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d60205260409020545f80516020612a5a8339815191529060ff16611650575f808052602091825260408082206001600160a01b038516835290925220805460ff1916600117905533906001600160a01b03165f7f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d8180a4600190565b6001600160a01b0381165f9081527f9ebbcbe0d2961d3fbe56ca6f679bc753bd848d3e6bb3eaf9041c51b286881d2c602052604090207fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c905f80516020612a5a8339815191529060ff905b5416611b82575f828152602091825260408082206001600160a01b038616835290925220805460ff1916600117905533916001600160a01b0316907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d5f80a4600190565b5050505f90565b6001600160a01b0381165f9081527f72a65082a5691803ab2b62c9bc729b34205ba1b183d950896526b2fd8714d0c7602052604090207e8b9b1e5fa9cf3b14f87f435649268146305ddf689f082e5961a335b07a9abf905f80516020612a5a8339815191529060ff90611b1e565b6001600160a01b0381165f9081527f24e48de785eeca8420b70f73d267a66970ccc187d459f2a4b53e74ed92a5ab86602052604090207f15e7c882d74e8821ebf34aaff46fd0e1d53b9393d91490019124113d28dc32a3905f80516020612a5a8339815191529060ff90611b1e565b5f8181525f80516020612a5a833981519152602081815260408084206001600160a01b038716855290915290912060ff90611b1e565b5f8181525f80516020612a5a833981519152602081815260408084206001600160a01b03871685529091529091205460ff1615611b82575f828152602091825260408082206001600160a01b038616835290925220805460ff1916905533916001600160a01b0316907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b5f80a4600190565b91909160408184031261029a578035611d468161029e565b9260208201356001600160401b03811161029a57610d849201610b9b565b611d7091810190611d2e565b6040516302910f8b60e31b81526001600160a01b039283166004820181905291906020816024817f000000000000000000000000000000000000000000000000000000000000000088165afa9081156106d7575f91611e83575b5015611e7157611e05604091611e00611e4b94611de56122f9565b60018060a01b03166001600160601b0360a01b5f5416175f55565b612479565b6020810151600180546001600160a01b0319166001600160a01b0390921691909117905580516001600160a01b0316848116611e61575b5001516001600160a01b031690565b908116611e555750565b611e5e90611ab3565b50565b611e6a90611a08565b505f611e3c565b6040516362df054560e01b8152600490fd5b611e9c915060203d6020116106d0576106c28183610b31565b5f611dca565b9081602091031261029a575163ffffffff8116810361029a5790565b90600163ffffffff809316019182116115c857565b91805115611fac5780602080611eee93518301019101611ea2565b91611ef983826126a9565b92611f0a845165ffffffffffff1690565b9065ffffffffffff8085169216828114611fa05782119182611f40575b5050611f3757610d8492506125d9565b50506020015190565b909150611f4d835461183f565b63ffffffff831614918215611f66575b50505f80611f27565b611f98919250611f81611f7b611f8d92611ebe565b856126a9565b5165ffffffffffff1690565b65ffffffffffff1690565b115f80611f5d565b50505050506020015190565b50610d84916125d9565b60405190608082018281106001600160401b03821117610b1157604052606080838181528160208201528160408201520152565b9060208282031261029a5781516001600160401b039283821161029a57019060808282031261029a5761201b610b52565b92825181811161029a57826120319185016112c8565b8452602083015181811161029a578261204b9185016112c8565b6020850152604083015181811161029a57826120689185016112c8565b6040850152606083015190811161029a5761208392016112c8565b606082015290565b9081602091031261029a575190565b60409065ffffffffffff610d849493168152816020820152019061128b565b939190936120c5611fb6565b9380518061218e575b505061210f92939460206120ee6110216110215f5460018060a01b031690565b8188015190604051808098819463810da75d60e01b8352896004840161209a565b03915afa9182156106d757612150945f93612155575b5061214a9061214a939461213e60408a01518284611249565b9360608a01519261125f565b90612711565b915190565b61214a93509061217f61214a9260203d602011612187575b6121778183610b31565b81019061208b565b935090612125565b503d61216d565b61210f949550906020806121a6938301019101611fea565b93925f6120ce565b5f5460405163bd49c35f60e01b8152929190602090849060049082906001600160a01b03165afa9081156106d757610d84935f92612229575b5061214a61030461214a9394612208610304855f52600360205260405f2090565b935f52600460205260405f209060018060a01b03165f5260205260405f2090565b61214a925061030461224c61214a9260203d602011612187576121778183610b31565b9350506121e7565b65ffffffffffff90818111612267571690565b604490604051906306dfcc6560e41b8252603060048301526024820152fd5b9060405161229381610af6565b915465ffffffffffff8116835260301c6020830152565b8054806122bb5750505f905f905f90565b5f199080828101116115c8576122d8925f5260205f200101612286565b9065ffffffffffff82511691602060018060d01b0391015116906001929190565b612301612899565b612309612899565b60015f80516020612a7a83398151915255565b6040519061232982610b16565b5f6040838281528260208201520152565b81601f8201121561029a578051916020916001600160401b038411610b11578360051b906040519461236e85840187610b31565b8552838086019282010192831161029a578301905b828210612391575050505090565b838091835161239f8161029e565b815201910190612383565b9060208282031261029a5781516001600160401b039283821161029a5701908181039260a0841261029a576060604051946123e486610b16565b1261029a576040516123f581610b16565b83516124008161029e565b815260208401516124108161029e565b602082015260408401516124238161029e565b60408201528452606083015181811161029a578261244291850161233a565b6020850152608083015190811161029a5761245d920161233a565b604082015290565b80518210156117ff5760209160051b010190565b6124959061248561231c565b50602080825183010191016123aa565b8051519091906001600160a01b031615806125bf575b6125ad579060208101905f5b82518051821015612531576110216124d2836124df93612465565b516001600160a01b031690565b1561251f576125016124fd6124f86124d2848751612465565b611b89565b1590565b61250d576001016124b7565b604051635140fefd60e11b8152600490fd5b6040516323cda06760e01b8152600490fd5b506040925050818101905f5b825180518210156125a4576110216124d28361255893612465565b15612593576125766124fd6125716124d2848751612465565b611bf7565b6125825760010161253d565b8351635140fefd60e11b8152600490fd5b83516323cda06760e01b8152600490fd5b50509150505190565b6040516303501f5960e11b8152600490fd5b5060208201515115806124ab5750604082015151156124ab565b908154905f829160058411612643575b6125f49350846129fa565b8061261c57505f905b6001600160d01b0382161561165057610d8491600161193492016117ea565b61263661262b61263d9261183f565b835f5260205f200190565b5460301c90565b906125fd565b919261264e816128c7565b81039081116115c8576125f493855f5265ffffffffffff808360205f20015416908516105f1461267f5750916125e9565b92915061268b906115ba565b906125e9565b6040519061269e82610af6565b5f6020838281520152565b906126d26126cc6126f3926126bc612691565b506126c5612691565b50846117ea565b50612286565b91600165ffffffffffff845116936020828060d01b039101511691016117ea565b9054906040519261270384610af6565b835260031b1c602082015290565b908082101561271e575090565b905090565b8054600160401b811015610b1157612740916001820181556117ea565b61276b57815160209092015160301b65ffffffffffff191665ffffffffffff92909216919091179055565b634e487b7160e01b5f525f60045260245ffd5b8054929392919082156128705761279f61279a61262b8561183f565b612286565b906127b0825165ffffffffffff1690565b65ffffffffffff8481169116811061285e576118a39460209488926127de611f8d875165ffffffffffff1690565b036128265750612818926127f46127ff9261183f565b905f5260205f200190565b9065ffffffffffff82549181199060301b169116179055565b01516001600160d01b031690565b91505061285991612846612838610b71565b65ffffffffffff9093168352565b6001600160d01b03881682860152612723565b612818565b604051632520601d60e01b8152600490fd5b6128949250612880612838610b71565b6001600160d01b0385166020830152612723565b5f9190565b60ff5f80516020612a9a8339815191525460401c16156128b557565b604051631afcd79f60e31b8152600490fd5b80156113f3578061214a61299261298861297e61297461296a6129606129566001610d849a5f908b60801c806129ee575b508060401c806129e1575b508060201c806129d4575b508060101c806129c7575b508060081c806129ba575b508060041c806129ad575b508060021c806129a0575b50821c612999575b811c1b61294f818b61159c565b0160011c90565b61294f818a61159c565b61294f818961159c565b61294f818861159c565b61294f818761159c565b61294f818661159c565b61294f818561159c565b809261159c565b8101612942565b600291509101905f61293a565b600491509101905f61292f565b600891509101905f612924565b601091509101905f612919565b602091509101905f61290e565b604091509101905f612903565b9150506080905f6128f8565b91905b838210612a0a5750505090565b9091928083169080841860011c82018092116115c857845f5265ffffffffffff808360205f20015416908416105f14612a475750925b91906129fd565b939250612a53906115ba565b91612a4056fe02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268009b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a26469706673582212205a47ef0800ec8586221910bfda595b4c0690e3271bc72e3aaf2a5da09d84aada64736f6c63430008190033","sourceMap":"536:5807:77:-:0;;;;-1:-1:-1;;;;;536:5807:77;;;;;;;;;;-1:-1:-1;;536:5807:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;8837:64:25;536:5807:77;;;;;;;;;7896:76:25;;536:5807:77;;;;7985:34:25;7981:146;;-1:-1:-1;525:17:69;;;536:5807:77;525:17:69;536:5807:77;552:12:69;536:5807:77;2360:34:76;2404:28;;2442:57;;;;2509:61;;;;536:5807:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2404:28:76;536:5807:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7981:146:25;-1:-1:-1;;;;;;536:5807:77;;;;;;;;;;;;;8087:29:25;;536:5807:77;;8087:29:25;7981:146;;;;;7896:76;536:5807:77;;-1:-1:-1;;;7938:23:25;;;;;536:5807:77;-1:-1:-1;536:5807:77;;;;;;-1:-1:-1;536:5807:77;;;;;-1:-1:-1;536:5807:77;;;;-1:-1:-1;;;;;536:5807:77;;;;;;:::o","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361015610011575f80fd5b5f3560e01c806301ffc9a714610244578063020cf0c21461023f578063021453481461023a578063103f2907146102355780631142209514610230578063128e5d821461022b5780631a80e5001461022657806323f752d514610221578063248a9ca31461021c5780632dd31000146102175780632f2ff15d1461021257806336568abe1461020d5780633dfd3873146102085780633eb22c0f14610203578063439fab91146101fe578063518504ba146101f9578063557cab44146101f45780635d32a1c9146101ef5780636679191e146101ea5780637d24bb27146101e55780637f5a7c7b146101e057806391d14854146101db57806394d2558a146101d65780639f86fd85146101d1578063a217fddf146101cc578063bb24fe8a146101c7578063c0cd7c3e146101c2578063d15b740e146101bd578063d547741f146101b8578063e02f6937146101b3578063e49561ee146101ae578063fbfa77cf146101a9578063fd4d447c146101a4578063ff54740f1461019f5763ffa1ad741461019a575f80fd5b61120b565b6111ee565b6111c4565b61119d565b610fb2565b610f96565b610f4a565b610f20565b610edc565b610e99565b610e7f565b610dc5565b610d87565b610cd7565b610caf565b610c76565b610c3c565b610be1565b610ab1565b610a77565b61093f565b6108e9565b6107f0565b6107a5565b610759565b610715565b6106dc565b610568565b610524565b6104e0565b610491565b61044d565b610390565b6102af565b3461029a57602036600319011261029a5760043563ffffffff60e01b811680910361029a57602090637965db0b60e01b8114908115610289575b506040519015158152f35b6301ffc9a760e01b1490505f61027e565b5f80fd5b6001600160a01b0381160361029a57565b3461029a57606036600319011261029a576024356004356102cf8261029e565b604435916102db6116f7565b815f526004602052826103096103048360405f209060018060a01b03165f5260205260405f2090565b61190f565b1461037e5760207ffc9545f07ffadfb668efd0144cdcaf2d6e2c8192dce1ea9fc131934f9c90fc7e91835f52600482526103698561035a8360405f209060018060a01b03165f5260205260405f2090565b61036342612254565b9061184d565b50506040519485526001600160a01b031693a3005b60405163a741a04560e01b8152600490fd5b3461029a5760408060031936011261029a5760043590602435906103b2611754565b825f526002602052805f2054821161043d57825f526003602052816103d8825f2061190f565b1461042d5781610428916104187e899d104fc3d8820bd96540612bcc5c448c8837b13b9f7faa43ad0728f0c14f9461035a875f52600360205260405f2090565b5050519081529081906020820190565b0390a2005b5163a741a04560e01b8152600490fd5b51631eefc06360e31b8152600490fd5b3461029a575f36600319011261029a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461029a57604036600319011261029a5760206104d86103046024356104b68161029e565b6004355f526004845260405f209060018060a01b03165f5260205260405f2090565b604051908152f35b3461029a575f36600319011261029a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461029a575f36600319011261029a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461029a57604036600319011261029a576004356001600160601b038116810361029a576024359061059861195c565b6040516302910f8b60e31b81523360048201526020816024816001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165afa9081156106d7575f916106a8575b5015610696576001600160601b03166bffffffffffffffffffffffff193360601b16179080610622835f52600260205260405f2090565b541461037e5761067b817fc67e7929681aa1bccd63f52b3799bf5805f3009f197db6fdf584b14f7fbf608c92610660855f52600260205260405f2090565b5561066b818561198b565b6040519081529081906020820190565b0390a261069460015f80516020612a7a83398151915255565b005b6040516323d53b9760e21b8152600490fd5b6106ca915060203d6020116106d0575b6106c28183610b31565b810190611226565b5f6105eb565b503d6106b8565b61123e565b3461029a57602036600319011261029a576004355f525f80516020612a5a8339815191526020526020600160405f200154604051908152f35b3461029a575f36600319011261029a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461029a57604036600319011261029a5761069460243560043561077c8261029e565b805f525f80516020612a5a8339815191526020526107a0600160405f2001546117aa565b611c66565b3461029a57604036600319011261029a576024356107c28161029e565b336001600160a01b038216036107de5761069490600435611c9c565b60405163334bd91960e11b8152600490fd5b3461029a57602036600319011261029a5760043561080d8161029e565b61081561195c565b335f9081527f9ebbcbe0d2961d3fbe56ca6f679bc753bd848d3e6bb3eaf9041c51b286881d2c60205260409020547fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c9060ff16156108cb57506001546001600160a01b03918216918116821461037e576001600160a01b03191681176001557f5bbb1d3ebb6a3ad2a0f17ff35e579a83af60604d1d3c2a4c83c62adecadf666d5f80a260015f80516020612a7a83398151915255005b6044906040519063e2517d3f60e01b82523360048301526024820152fd5b3461029a57602036600319011261029a576004355f52600360205260206104d860405f2061190f565b9181601f8401121561029a578235916001600160401b03831161029a576020838186019501011161029a57565b3461029a57602036600319011261029a576001600160401b0360043581811161029a57610970903690600401610912565b5f80516020612a9a833981519152549260ff8460401c1615931680159081610a6f575b6001149081610a65575b159081610a5c575b50610a4a575f80516020612a9a833981519152805467ffffffffffffffff191660011790556109d89183610a2657611d64565b6109de57005b5f80516020612a9a833981519152805460ff60401b19169055604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a1005b5f80516020612a9a833981519152805460ff60401b1916600160401b179055611d64565b60405163f92ee8a960e01b8152600490fd5b9050155f6109a5565b303b15915061099d565b849150610993565b3461029a575f36600319011261029a5760206040517f15e7c882d74e8821ebf34aaff46fd0e1d53b9393d91490019124113d28dc32a38152f35b3461029a575f36600319011261029a576020604051614e208152f35b6064359065ffffffffffff8216820361029a57565b634e487b7160e01b5f52604160045260245ffd5b604081019081106001600160401b03821117610b1157604052565b610ae2565b606081019081106001600160401b03821117610b1157604052565b90601f801991011681019081106001600160401b03821117610b1157604052565b60405190608082018281106001600160401b03821117610b1157604052565b60405190610b7e82610af6565b565b6001600160401b038111610b1157601f01601f191660200190565b81601f8201121561029a57803590610bb282610b80565b92610bc06040519485610b31565b8284526020838301011161029a57815f926020809301838601378301015290565b3461029a57606036600319011261029a5760243565ffffffffffff8116810361029a576044356001600160401b03811161029a57602091610c296104d8923690600401610b9b565b906004355f526003845260405f20611ed3565b3461029a575f36600319011261029a5760206040517fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c8152f35b3461029a575f36600319011261029a5760206040517e8b9b1e5fa9cf3b14f87f435649268146305ddf689f082e5961a335b07a9abf8152f35b3461029a575f36600319011261029a576001546040516001600160a01b039091168152602090f35b3461029a57604036600319011261029a57602060ff610d29602435610cfb8161029e565b6004355f525f80516020612a5a833981519152845260405f209060018060a01b03165f5260205260405f2090565b54166040519015158152f35b90608060031983011261029a5760043591602435610d528161029e565b9160443565ffffffffffff8116810361029a5791606435906001600160401b03821161029a57610d8491600401610b9b565b90565b3461029a5760206104d8610dc0610d9d36610d35565b939190925f526004865260405f209060018060a01b03165f5260205260405f2090565b611ed3565b3461029a5760408060031936011261029a57600435610de38161029e565b602435906001600160401b03821161029a575f8091610e09610e6d943690600401610912565b908187519283928337810184815203915af43d15610e7557610e5f3d610e2e81610b80565b90610e3b86519283610b31565b81523d5f602083013e5b84519485931515602085015280840152606083019061128b565b03601f198101835282610b31565b805190602001fd5b610e5f6060610e45565b3461029a575f36600319011261029a5760206040515f8152f35b3461029a575f36600319011261029a5760206040516001600160401b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461029a575f36600319011261029a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461029a57602036600319011261029a576004355f526002602052602060405f2054604051908152f35b3461029a57604036600319011261029a57610694602435600435610f6d8261029e565b805f525f80516020612a5a833981519152602052610f91600160405f2001546117aa565b611c9c565b3461029a5760206104d8610fa936610d35565b929190916113b1565b3461029a5760a036600319011261029a57602435600435610fd28261029e565b60443591610fde610acd565b90608435906001600160401b03821161029a5761100060049236908401610b9b565b61100861195c565b5f5460209061102d90611021906001600160a01b031681565b6001600160a01b031690565b60405163b134427160e01b815294859182905afa9283156106d7575f9361116c575b506001600160a01b03928316330361115a576001546001600160a01b03168381166110cf575b50506040805195865265ffffffffffff909316602086015216927f741a5de99085c0d660f3e4192217b0ffb0ea4e35a0480de48e857a4bc3ee36ed91819081015b0390a361069460015f80516020612a7a83398151915255565b909360405194611106866110f8602082019363724ab0f760e11b8552858c898d60248701611550565b03601f198101885287610b31565b62042e305a10611148575f6110b6938192827f741a5de99085c0d660f3e4192217b0ffb0ea4e35a0480de48e857a4bc3ee36ed9951926203d090f15093611075565b604051638072475160e01b8152600490fd5b60405163dabc4ad960e01b8152600490fd5b61118f91935060203d602011611196575b6111878183610b31565b81019061153b565b915f61104f565b503d61117d565b3461029a575f36600319011261029a575f546040516001600160a01b039091168152602090f35b3461029a57604036600319011261029a5760206104d86024356111e68161029e565b6004356115cd565b3461029a575f36600319011261029a5760206040516203d0908152f35b3461029a575f36600319011261029a57602060405160018152f35b9081602091031261029a5751801515810361029a5790565b6040513d5f823e3d90fd5b90610d8492915f52600360205260405f20611ed3565b5f9081526004602090815260408083206001600160a01b03909416835292905220610d84929190611ed3565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b604051906112bc82610af6565b60606020838281520152565b81601f8201121561029a578051906112df82610b80565b926112ed6040519485610b31565b8284526020838301011161029a57815f9260208093018386015e8301015290565b9060208282031261029a5781516001600160401b039283821161029a57019060408282031261029a576040519261134484610af6565b825181811161029a57826113599185016112c8565b8452602083015190811161029a5761137192016112c8565b602082015290565b6001600160a01b0391821681529116602082015265ffffffffffff9091166040820152608060608201819052610d849291019061128b565b926113c1909291928284866120b9565b9290936113cc6112af565b9380518061151f575b50508415938415611489575b84156113f8575b505050506113f35790565b505f90565b602080949550611423910151604051958694859463530e1d4360e01b865260601c9060048601611379565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa9081156106d7575f9161146a575b50155f8080806113e8565b611483915060203d6020116106d0576106c28183610b31565b5f61145f565b5f549094506001600160a01b03166020848651926114bc604051948593849363530e1d4360e01b85528960048601611379565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa9081156106d7575f91611500575b5015936113e1565b611519915060203d6020116106d0576106c28183610b31565b5f6114f8565b61153392955060208091830101910161130e565b925f806113d5565b9081602091031261029a5751610d848161029e565b919360a093610d84969565ffffffffffff938552600180871b031660208501526040840152166060820152816080820152019061128b565b634e487b7160e01b5f52601160045260245ffd5b81156115a6570490565b634e487b7160e01b5f52601260045260245ffd5b90600182018092116115c857565b611588565b5f546040516308834cb560e21b8082526001600160a01b0385811660048401529283166024830152929392602092909183816044817f000000000000000000000000000000000000000000000000000000000000000086165afa9081156106d7575f916116da575b5015918215611656575b5050905061165057610d84916121ae565b50505f90565b6040519081526001600160a01b0385166004820152606086901c602482015291508290829060449082907f0000000000000000000000000000000000000000000000000000000000000000165afa9182156106d7575f926116bd575b505015805f8061163f565b6116d39250803d106106d0576106c28183610b31565b5f806116b2565b6116f19150843d86116106d0576106c28183610b31565b5f611635565b335f9081527f24e48de785eeca8420b70f73d267a66970ccc187d459f2a4b53e74ed92a5ab86602052604090207f15e7c882d74e8821ebf34aaff46fd0e1d53b9393d91490019124113d28dc32a39060ff905b5416156108cb5750565b335f9081527f72a65082a5691803ab2b62c9bc729b34205ba1b183d950896526b2fd8714d0c7602052604090207e8b9b1e5fa9cf3b14f87f435649268146305ddf689f082e5961a335b07a9abf9060ff9061174a565b5f8181525f80516020612a5a83398151915260209081526040808320338452909152902060ff9061174a565b634e487b7160e01b5f52603260045260245ffd5b80548210156117ff575f5260205f2001905f90565b6117d6565b90815491600160401b831015610b115782611827916001610b7e950181556117ea565b90919082549060031b91821b915f19901b1916179055565b5f198101919082116115c857565b909291926001820190815480156118df575b508461186a846122aa565b5094909284549361187a8361190f565b96816118ca575b50156118a7575050505f1981019081116115c85761182785916118a3936117ea565b9190565b6118a39492936118c3926001600160d01b03909116919061277e565b5050611804565b65ffffffffffff83811691161490505f611881565b600160401b811015610b11578060016118fb92018455836117ea565b8154905f199060031b1b191690555f61185f565b80548061193e57505f5b6001600160d01b0381161561165057600161193492016117ea565b90549060031b1c90565b5f199080828101116115c857825f5260205f2001015460301c611919565b5f80516020612a7a83398151915260028154146119795760029055565b604051633ee5aeb560e01b8152600490fd5b90815f52600360205260405f20816119a2826122aa565b919390508315611a00576119c2916001600160d01b0316906001016117ea565b90549060031b1c5b826119f6575b50506119da575050565b6119f2915f52600360205260405f2061036342612254565b5050565b119050815f6119d0565b50505f6119ca565b6001600160a01b0381165f9081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d60205260409020545f80516020612a5a8339815191529060ff16611650575f808052602091825260408082206001600160a01b038516835290925220805460ff1916600117905533906001600160a01b03165f7f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d8180a4600190565b6001600160a01b0381165f9081527f9ebbcbe0d2961d3fbe56ca6f679bc753bd848d3e6bb3eaf9041c51b286881d2c602052604090207fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c905f80516020612a5a8339815191529060ff905b5416611b82575f828152602091825260408082206001600160a01b038616835290925220805460ff1916600117905533916001600160a01b0316907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d5f80a4600190565b5050505f90565b6001600160a01b0381165f9081527f72a65082a5691803ab2b62c9bc729b34205ba1b183d950896526b2fd8714d0c7602052604090207e8b9b1e5fa9cf3b14f87f435649268146305ddf689f082e5961a335b07a9abf905f80516020612a5a8339815191529060ff90611b1e565b6001600160a01b0381165f9081527f24e48de785eeca8420b70f73d267a66970ccc187d459f2a4b53e74ed92a5ab86602052604090207f15e7c882d74e8821ebf34aaff46fd0e1d53b9393d91490019124113d28dc32a3905f80516020612a5a8339815191529060ff90611b1e565b5f8181525f80516020612a5a833981519152602081815260408084206001600160a01b038716855290915290912060ff90611b1e565b5f8181525f80516020612a5a833981519152602081815260408084206001600160a01b03871685529091529091205460ff1615611b82575f828152602091825260408082206001600160a01b038616835290925220805460ff1916905533916001600160a01b0316907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b5f80a4600190565b91909160408184031261029a578035611d468161029e565b9260208201356001600160401b03811161029a57610d849201610b9b565b611d7091810190611d2e565b6040516302910f8b60e31b81526001600160a01b039283166004820181905291906020816024817f000000000000000000000000000000000000000000000000000000000000000088165afa9081156106d7575f91611e83575b5015611e7157611e05604091611e00611e4b94611de56122f9565b60018060a01b03166001600160601b0360a01b5f5416175f55565b612479565b6020810151600180546001600160a01b0319166001600160a01b0390921691909117905580516001600160a01b0316848116611e61575b5001516001600160a01b031690565b908116611e555750565b611e5e90611ab3565b50565b611e6a90611a08565b505f611e3c565b6040516362df054560e01b8152600490fd5b611e9c915060203d6020116106d0576106c28183610b31565b5f611dca565b9081602091031261029a575163ffffffff8116810361029a5790565b90600163ffffffff809316019182116115c857565b91805115611fac5780602080611eee93518301019101611ea2565b91611ef983826126a9565b92611f0a845165ffffffffffff1690565b9065ffffffffffff8085169216828114611fa05782119182611f40575b5050611f3757610d8492506125d9565b50506020015190565b909150611f4d835461183f565b63ffffffff831614918215611f66575b50505f80611f27565b611f98919250611f81611f7b611f8d92611ebe565b856126a9565b5165ffffffffffff1690565b65ffffffffffff1690565b115f80611f5d565b50505050506020015190565b50610d84916125d9565b60405190608082018281106001600160401b03821117610b1157604052606080838181528160208201528160408201520152565b9060208282031261029a5781516001600160401b039283821161029a57019060808282031261029a5761201b610b52565b92825181811161029a57826120319185016112c8565b8452602083015181811161029a578261204b9185016112c8565b6020850152604083015181811161029a57826120689185016112c8565b6040850152606083015190811161029a5761208392016112c8565b606082015290565b9081602091031261029a575190565b60409065ffffffffffff610d849493168152816020820152019061128b565b939190936120c5611fb6565b9380518061218e575b505061210f92939460206120ee6110216110215f5460018060a01b031690565b8188015190604051808098819463810da75d60e01b8352896004840161209a565b03915afa9182156106d757612150945f93612155575b5061214a9061214a939461213e60408a01518284611249565b9360608a01519261125f565b90612711565b915190565b61214a93509061217f61214a9260203d602011612187575b6121778183610b31565b81019061208b565b935090612125565b503d61216d565b61210f949550906020806121a6938301019101611fea565b93925f6120ce565b5f5460405163bd49c35f60e01b8152929190602090849060049082906001600160a01b03165afa9081156106d757610d84935f92612229575b5061214a61030461214a9394612208610304855f52600360205260405f2090565b935f52600460205260405f209060018060a01b03165f5260205260405f2090565b61214a925061030461224c61214a9260203d602011612187576121778183610b31565b9350506121e7565b65ffffffffffff90818111612267571690565b604490604051906306dfcc6560e41b8252603060048301526024820152fd5b9060405161229381610af6565b915465ffffffffffff8116835260301c6020830152565b8054806122bb5750505f905f905f90565b5f199080828101116115c8576122d8925f5260205f200101612286565b9065ffffffffffff82511691602060018060d01b0391015116906001929190565b612301612899565b612309612899565b60015f80516020612a7a83398151915255565b6040519061232982610b16565b5f6040838281528260208201520152565b81601f8201121561029a578051916020916001600160401b038411610b11578360051b906040519461236e85840187610b31565b8552838086019282010192831161029a578301905b828210612391575050505090565b838091835161239f8161029e565b815201910190612383565b9060208282031261029a5781516001600160401b039283821161029a5701908181039260a0841261029a576060604051946123e486610b16565b1261029a576040516123f581610b16565b83516124008161029e565b815260208401516124108161029e565b602082015260408401516124238161029e565b60408201528452606083015181811161029a578261244291850161233a565b6020850152608083015190811161029a5761245d920161233a565b604082015290565b80518210156117ff5760209160051b010190565b6124959061248561231c565b50602080825183010191016123aa565b8051519091906001600160a01b031615806125bf575b6125ad579060208101905f5b82518051821015612531576110216124d2836124df93612465565b516001600160a01b031690565b1561251f576125016124fd6124f86124d2848751612465565b611b89565b1590565b61250d576001016124b7565b604051635140fefd60e11b8152600490fd5b6040516323cda06760e01b8152600490fd5b506040925050818101905f5b825180518210156125a4576110216124d28361255893612465565b15612593576125766124fd6125716124d2848751612465565b611bf7565b6125825760010161253d565b8351635140fefd60e11b8152600490fd5b83516323cda06760e01b8152600490fd5b50509150505190565b6040516303501f5960e11b8152600490fd5b5060208201515115806124ab5750604082015151156124ab565b908154905f829160058411612643575b6125f49350846129fa565b8061261c57505f905b6001600160d01b0382161561165057610d8491600161193492016117ea565b61263661262b61263d9261183f565b835f5260205f200190565b5460301c90565b906125fd565b919261264e816128c7565b81039081116115c8576125f493855f5265ffffffffffff808360205f20015416908516105f1461267f5750916125e9565b92915061268b906115ba565b906125e9565b6040519061269e82610af6565b5f6020838281520152565b906126d26126cc6126f3926126bc612691565b506126c5612691565b50846117ea565b50612286565b91600165ffffffffffff845116936020828060d01b039101511691016117ea565b9054906040519261270384610af6565b835260031b1c602082015290565b908082101561271e575090565b905090565b8054600160401b811015610b1157612740916001820181556117ea565b61276b57815160209092015160301b65ffffffffffff191665ffffffffffff92909216919091179055565b634e487b7160e01b5f525f60045260245ffd5b8054929392919082156128705761279f61279a61262b8561183f565b612286565b906127b0825165ffffffffffff1690565b65ffffffffffff8481169116811061285e576118a39460209488926127de611f8d875165ffffffffffff1690565b036128265750612818926127f46127ff9261183f565b905f5260205f200190565b9065ffffffffffff82549181199060301b169116179055565b01516001600160d01b031690565b91505061285991612846612838610b71565b65ffffffffffff9093168352565b6001600160d01b03881682860152612723565b612818565b604051632520601d60e01b8152600490fd5b6128949250612880612838610b71565b6001600160d01b0385166020830152612723565b5f9190565b60ff5f80516020612a9a8339815191525460401c16156128b557565b604051631afcd79f60e31b8152600490fd5b80156113f3578061214a61299261298861297e61297461296a6129606129566001610d849a5f908b60801c806129ee575b508060401c806129e1575b508060201c806129d4575b508060101c806129c7575b508060081c806129ba575b508060041c806129ad575b508060021c806129a0575b50821c612999575b811c1b61294f818b61159c565b0160011c90565b61294f818a61159c565b61294f818961159c565b61294f818861159c565b61294f818761159c565b61294f818661159c565b61294f818561159c565b809261159c565b8101612942565b600291509101905f61293a565b600491509101905f61292f565b600891509101905f612924565b601091509101905f612919565b602091509101905f61290e565b604091509101905f612903565b9150506080905f6128f8565b91905b838210612a0a5750505090565b9091928083169080841860011c82018092116115c857845f5265ffffffffffff808360205f20015416908416105f14612a475750925b91906129fd565b939250612a53906115ba565b91612a4056fe02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268009b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a26469706673582212205a47ef0800ec8586221910bfda595b4c0690e3271bc72e3aaf2a5da09d84aada64736f6c63430008190033","sourceMap":"536:5807:77:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;;;;;-1:-1:-1;;536:5807:77;;;;;;;;;;;;;;;;;;-1:-1:-1;;;3551:47:23;;;:87;;;;536:5807:77;;;;;;;;;;3551:87:23;-1:-1:-1;;;1133:40:29;;-1:-1:-1;3551:87:23;;;536:5807:77;-1:-1:-1;536:5807:77;;;-1:-1:-1;;;;;536:5807:77;;;;;:::o;:::-;;;;;;-1:-1:-1;;536:5807:77;;;;;;;;;;;:::i;:::-;;;3202:4:23;;;:::i;:::-;536:5807:77;-1:-1:-1;536:5807:77;;;;;2662:52;:43;536:5807;;-1:-1:-1;536:5807:77;;;;;;;;;;;;;;;;;2662:43;:52;:::i;:::-;3458;3454:102;;536:5807;3656:53;536:5807;;-1:-1:-1;536:5807:77;;;;3566:74;536:5807;3566:43;536:5807;;-1:-1:-1;536:5807:77;;;;;;;;;;;;;;;;;3566:43;819:34:62;837:15;819:34;:::i;:::-;3566:74:77;;:::i;:::-;-1:-1:-1;;536:5807:77;;;;;-1:-1:-1;;;;;536:5807:77;;3656:53;536:5807;3454:102;536:5807;;-1:-1:-1;;;3533:12:77;;536:5807;;3533:12;536:5807;;;;;;;;;;;;;;;;;;3202:4:23;;;:::i;:::-;536:5807:77;-1:-1:-1;536:5807:77;2910:15;536:5807;;;-1:-1:-1;536:5807:77;;2901:36;;2897:98;;536:5807;-1:-1:-1;536:5807:77;2103:13;536:5807;;;2103:34;536:5807;-1:-1:-1;536:5807:77;2103:34;:::i;:::-;3009;3005:84;;3099:25;3171:35;3099:25;:56;3171:35;3099:25;;;536:5807;;2103:13;536:5807;;;;;;;3099:56;-1:-1:-1;;536:5807:77;;;;;;;;;;;;3171:35;;;;536:5807;3005:84;536:5807;-1:-1:-1;;;3066:12:77;;536:5807;;3066:12;2897:98;536:5807;-1:-1:-1;;;2960:24:77;;536:5807;;2960:24;536:5807;;;;;;-1:-1:-1;;536:5807:77;;;;;;1537:38:76;-1:-1:-1;;;;;536:5807:77;;;;;;;;;;;;-1:-1:-1;;536:5807:77;;;;;2662:52;:43;536:5807;;;;;:::i;:::-;;;-1:-1:-1;536:5807:77;;;;;-1:-1:-1;536:5807:77;;;;;;;;;;;;;;;;;2662:52;536:5807;;;;;;;;;;;;-1:-1:-1;;536:5807:77;;;;;;1632:54:76;-1:-1:-1;;;;;536:5807:77;;;;;;;;;;;;-1:-1:-1;;536:5807:77;;;;;;1743:56:76;-1:-1:-1;;;;;536:5807:77;;;;;;;;;;;;-1:-1:-1;;536:5807:77;;;;;;-1:-1:-1;;;;;536:5807:77;;;;;;;;3217:103:28;;;:::i;:::-;536:5807:77;;-1:-1:-1;;;4285:48:76;;4322:10;536:5807:77;4285:48:76;;536:5807:77;;;;;-1:-1:-1;;;;;4295:16:76;536:5807:77;4285:48:76;;;;;;;-1:-1:-1;4285:48:76;;;536:5807:77;4284:49:76;;4280:99;;-1:-1:-1;;;;;536:5807:77;-1:-1:-1;;4322:10:76;297:2:88;536:5807:77;;267:46:88;4459:27:76;;;;536:5807:77;;4459:15:76;536:5807:77;;;;;;;4459:27:76;536:5807:77;4459:37:76;4455:87;;4654:38;4552:27;4654:38;4552:27;;;536:5807:77;;4459:15:76;536:5807:77;;;;;;;4552:27:76;536:5807:77;4631:6:76;;;;:::i;:::-;536:5807:77;;;;;;;;;;;;;4654:38:76;;;;3282:1:28;1805;-1:-1:-1;;;;;;;;;;;536:5807:77;3716:283:28;3282:1;536:5807:77;4280:99:76;536:5807:77;;-1:-1:-1;;;4356:12:76;;536:5807:77;;4356:12:76;4285:48;;;;536:5807:77;4285:48:76;536:5807:77;4285:48:76;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;:::i;536:5807:77:-;;;;;;-1:-1:-1;;536:5807:77;;;;;;-1:-1:-1;536:5807:77;-1:-1:-1;;;;;;;;;;;536:5807:77;;;4919:24:23;536:5807:77;-1:-1:-1;536:5807:77;4919:24:23;536:5807:77;;;;;;;;;;;;;-1:-1:-1;;536:5807:77;;;;;;322:32:69;-1:-1:-1;;;;;536:5807:77;;;;;;;;;;;;-1:-1:-1;;536:5807:77;;;;5350:25:23;536:5807:77;;;;;;;:::i;:::-;;-1:-1:-1;536:5807:77;-1:-1:-1;;;;;;;;;;;536:5807:77;;3202:4:23;4919:24;536:5807:77;-1:-1:-1;536:5807:77;4919:24:23;536:5807:77;3202:4:23;:::i;:::-;5350:25;:::i;536:5807:77:-;;;;;;-1:-1:-1;;536:5807:77;;;;;;;;;:::i;:::-;966:10:27;-1:-1:-1;;;;;536:5807:77;;6441:34:23;6437:102;;6549:37;536:5807:77;;;6549:37:23;:::i;6437:102::-;536:5807:77;;-1:-1:-1;;;6498:30:23;;536:5807:77;;6498:30:23;536:5807:77;;;;;;-1:-1:-1;;536:5807:77;;;;;;;;;:::i;:::-;3217:103:28;;:::i;:::-;966:10:27;-1:-1:-1;536:5807:77;;;;;;;;;;1356:26:76;;536:5807:77;;4468:23:23;4464:108;;-1:-1:-1;4861:4:76;536:5807:77;-1:-1:-1;;;;;536:5807:77;;;;;;4861:13:76;;4857:63;;-1:-1:-1;;;;;;536:5807:77;;;4861:4:76;536:5807:77;4958:14:76;-1:-1:-1;;4958:14:76;4861:4;-1:-1:-1;;;;;;;;;;;536:5807:77;;4464:108:23;536:5807:77;;;;4514:47:23;;;;;;966:10:27;536:5807:77;4514:47:23;;536:5807:77;;;;;4514:47:23;536:5807:77;;;;;;-1:-1:-1;;536:5807:77;;;;;;-1:-1:-1;536:5807:77;2103:13;536:5807;;;2103:34;536:5807;-1:-1:-1;536:5807:77;2103:34;:::i;536:5807::-;;;;;;;;;;;;;-1:-1:-1;;;;;536:5807:77;;;;;;;;;;;;;;;:::o;:::-;;;;;;-1:-1:-1;;536:5807:77;;;;-1:-1:-1;;;;;536:5807:77;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;536:5807:77;;;;;;;4301:16:25;536:5807:77;;4726:16:25;;:34;;;;536:5807:77;4805:1:25;4790:16;:50;;;;536:5807:77;4855:13:25;:30;;;;536:5807:77;4851:91:25;;;-1:-1:-1;;;;;;;;;;;536:5807:77;;-1:-1:-1;;536:5807:77;;;;;718:4:69;;4951:18:25;4979:67;;718:4:69;:::i;:::-;5066:101:25;;536:5807:77;5066:101:25;-1:-1:-1;;;;;;;;;;;536:5807:77;;-1:-1:-1;;;;536:5807:77;;;;;-1:-1:-1;536:5807:77;;5142:14:25;;536:5807:77;;5142:14:25;536:5807:77;4979:67:25;-1:-1:-1;;;;;;;;;;;536:5807:77;;-1:-1:-1;;;;536:5807:77;-1:-1:-1;;;536:5807:77;;;718:4:69;:::i;4851:91:25:-;536:5807:77;;-1:-1:-1;;;4908:23:25;;536:5807:77;;4908:23:25;4855:30;4872:13;;;4855:30;;;4790:50;4818:4;4810:25;:30;;-1:-1:-1;4790:50:25;;4726:34;;;-1:-1:-1;4726:34:25;;536:5807:77;;;;;;-1:-1:-1;;536:5807:77;;;;;;;952:44;536:5807;;;;;;;;;-1:-1:-1;;536:5807:77;;;;;;;1253:6:76;536:5807:77;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;536:5807:77;;;;;;;:::o;:::-;;:::i;:::-;;;;;;;-1:-1:-1;;;;;536:5807:77;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;536:5807:77;;;;;;;:::o;:::-;;;;;;;;;;-1:-1:-1;;;;;536:5807:77;;;;;;;:::o;:::-;;;;;;;:::i;:::-;:::o;:::-;-1:-1:-1;;;;;536:5807:77;;;;;;-1:-1:-1;;536:5807:77;;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;536:5807:77;;;;;;;;;;;;;;:::o;:::-;;;;;;-1:-1:-1;;536:5807:77;;;;;;;;;;;;;;;-1:-1:-1;;;;;536:5807:77;;;;;;;1870:60;536:5807;;;;;;:::i;:::-;;;;-1:-1:-1;536:5807:77;1870:13;536:5807;;;-1:-1:-1;536:5807:77;1870:60;:::i;536:5807::-;;;;;;-1:-1:-1;;536:5807:77;;;;;;;1356:26:76;536:5807:77;;;;;;;;;-1:-1:-1;;536:5807:77;;;;;;;795:35;536:5807;;;;;;;;;-1:-1:-1;;536:5807:77;;;;;;;;-1:-1:-1;;;;;536:5807:77;;;;;;;;;;;;;;-1:-1:-1;;536:5807:77;;;;;;3901:31:23;536:5807:77;;;;;:::i;:::-;;;-1:-1:-1;536:5807:77;-1:-1:-1;;;;;;;;;;;536:5807:77;;;-1:-1:-1;536:5807:77;;;;;;;;;;;;;;;;;3901:31:23;536:5807:77;;;;;;;;;;;;;-1:-1:-1;;536:5807:77;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;-1:-1:-1;;;;;536:5807:77;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;2399:78;:43;536:5807;;;:::i;:::-;;;;;-1:-1:-1;536:5807:77;;;;;-1:-1:-1;536:5807:77;;;;;;;;;;;;;;;;;2399:43;:78;:::i;536:5807::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;536:5807:77;;;;-1:-1:-1;536:5807:77;;;477:31:75;536:5807:77;;;;;;:::i;:::-;;;;;;;;;;;;;;;416:25:75;;;;536:5807:77;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;-1:-1:-1;536:5807:77;;;;;;;;;;;;;477:31:75;;536:5807:77;;;;;;;;;;:::i;:::-;477:31:75;536:5807:77;;477:31:75;;;;;;:::i;:::-;518:79;;;536:5807:77;518:79:75;;536:5807:77;;;;;;;;;;;-1:-1:-1;;536:5807:77;;;;;;;;;;;;;;;;;-1:-1:-1;;536:5807:77;;;;;;;-1:-1:-1;;;;;404:28:69;536:5807:77;;;;;;;;;;-1:-1:-1;;536:5807:77;;;;;;1439:41:76;-1:-1:-1;;;;;536:5807:77;;;;;;;;;;;;-1:-1:-1;;536:5807:77;;;;;;-1:-1:-1;536:5807:77;2009:67:76;536:5807:77;;;;-1:-1:-1;536:5807:77;;;;;;;;;;;;;;-1:-1:-1;;536:5807:77;;;;5767:26:23;536:5807:77;;;;;;;:::i;:::-;;-1:-1:-1;536:5807:77;-1:-1:-1;;;;;;;;;;;536:5807:77;;3202:4:23;4919:24;536:5807:77;-1:-1:-1;536:5807:77;4919:24:23;536:5807:77;3202:4:23;:::i;:::-;5767:26;:::i;536:5807:77:-;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;-1:-1:-1;;536:5807:77;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;-1:-1:-1;;;;;536:5807:77;;;;;;;;;;;;:::i;:::-;3217:103:28;;:::i;:::-;-1:-1:-1;536:5807:77;;;5246:21:76;;:13;;-1:-1:-1;;;;;536:5807:77;5246:13:76;536:5807:77;;-1:-1:-1;;;;;536:5807:77;;;5246:21:76;536:5807:77;;-1:-1:-1;;;5246:23:76;;536:5807:77;;;;;5246:23:76;;;;;;;-1:-1:-1;5246:23:76;;;536:5807:77;-1:-1:-1;;;;;;536:5807:77;;;5232:10:76;:37;5228:87;;5341:4;536:5807:77;-1:-1:-1;;;;;536:5807:77;;;;5355:469:76;;536:5807:77;-1:-1:-1;;536:5807:77;;;;;;;;;;;;;;;;5839:55:76;;536:5807:77;;;;5839:55:76;;;;3282:1:28;1805;-1:-1:-1;;;;;;;;;;;536:5807:77;3716:283:28;5355:469:76;536:5807:77;;;;5435:94:76;;;;536:5807:77;5435:94:76;;;;;;;;;;;;536:5807:77;5435:94:76;;;:::i;:::-;;536:5807:77;;5435:94:76;;;;;;:::i;:::-;536:5807:77;5548:9:76;:51;5544:118;;-1:-1:-1;5839:55:76;5676:138;;;;5839:55;5676:138;;;1150:7;5676:138;;5355:469;;;5544:118;536:5807:77;;-1:-1:-1;;;5626:21:76;;536:5807:77;;5626:21:76;5228:87;536:5807:77;;-1:-1:-1;;;5292:12:76;;536:5807:77;;5292:12:76;5246:23;;;;;536:5807:77;5246:23:76;536:5807:77;5246:23:76;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;536:5807:77;;;;;;-1:-1:-1;;536:5807:77;;;;;;;;-1:-1:-1;;;;;536:5807:77;;;;;;;;;;;;;;-1:-1:-1;;536:5807:77;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;-1:-1:-1;;536:5807:77;;;;;;;1150:7:76;536:5807:77;;;;;;;;;-1:-1:-1;;536:5807:77;;;;;;;2700:1:76;536:5807:77;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;1742:195;;1870:60;1742:195;;-1:-1:-1;536:5807:77;1870:13;536:5807;;;-1:-1:-1;536:5807:77;1870:60;:::i;2207:277::-;-1:-1:-1;536:5807:77;;;2399:21;536:5807;;;;;;;;-1:-1:-1;;;;;536:5807:77;;;;;;;;;2399:78;;2207:277;;2399:78;:::i;536:5807::-;;;;;;;;;;;;;;;;;-1:-1:-1;536:5807:77;;;;;;;;-1:-1:-1;;536:5807:77;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;536:5807:77;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;;;;536:5807:77;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::o;:::-;-1:-1:-1;;;;;536:5807:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;2764:920:76:-;;2978:48;2764:920;;;;2978:48;;;;:::i;:::-;3036:36;;;536:5807:77;;:::i;:::-;;;;3086:20:76;3082:107;;2764:920;3216:11;;;;:193;;;;;2764:920;3216:394;;;;2764:920;3199:455;;;;;;2764:920;:::o;3199:455::-;3635:8;-1:-1:-1;3635:8:76;:::o;3216:394::-;3553:39;;;;;3430:180;3553:39;;;536:5807:77;;;;;;;;;;3430:180:76;;467:2:88;536:5807:77;3430:180:76;;;;;:::i;:::-;;536:5807:77;3444:31:76;-1:-1:-1;;;;;536:5807:77;3430:180:76;;;;;;;-1:-1:-1;3430:180:76;;;3216:394;3429:181;;3216:394;;;;;;3430:180;;;;3553:39;3430:180;3553:39;3430:180;;;;;;;:::i;:::-;;;;3216:193;-1:-1:-1;536:5807:77;;;-1:-1:-1;;;;;;536:5807:77;3248:161:76;3354:37;;;536:5807:77;3248:161:76;536:5807:77;;;;;;;;;;3248:161:76;;;;;;;:::i;:::-;;536:5807:77;3262:29:76;-1:-1:-1;;;;;536:5807:77;3248:161:76;;;;;;;-1:-1:-1;3248:161:76;;;3216:193;3247:162;;3216:193;;;3248:161;;;;;;;;;;;;;;:::i;:::-;;;;3082:107;3139:39;;;;;;;;;;;;;:::i;:::-;3082:107;;;;;536:5807:77;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;9856:1:60;536:5807:77;;;;;;;:::o;:::-;;:::i;3740:389:76:-;3918:5;536:5807:77;;;-1:-1:-1;;;3853:71:76;;;-1:-1:-1;;;;;536:5807:77;;;3853:71:76;;;536:5807:77;;;;;;;;3740:389:76;;536:5807:77;3853:71:76;;536:5807:77;;3853:71:76;536:5807:77;;;3867:29:76;536:5807:77;;3853:71:76;;;;;;;3918:5;3853:71;;;3740:389;3852:72;;536:5807:77;;;3852:181:76;;3740:389;3835:242;;;;;;4094:28;;;:::i;3835:242::-;4058:8;;3918:5;4058:8;:::o;3852:181::-;536:5807:77;;3945:88:76;;;-1:-1:-1;;;;;536:5807:77;;3853:71:76;3945:88;;536:5807:77;467:2:88;536:5807:77;;;;;;;;-1:-1:-1;536:5807:77;;;;;;;;3959:31:76;536:5807:77;3945:88:76;;;;;;;3918:5;3945:88;;;3852:181;3944:89;;;3852:181;;;;;3945:88;;;;;;-1:-1:-1;3945:88:76;;;;;;:::i;:::-;;;;;3853:71;;;;;;;;;;;;;;:::i;:::-;;;;4148:103:23;966:10:27;-1:-1:-1;536:5807:77;;;;;;;;;952:44;;536:5807;;3901:31:23;536:5807:77;;4468:23:23;4464:108;;4148:103;:::o;:::-;966:10:27;-1:-1:-1;536:5807:77;;;;;;;;;795:35;;536:5807;;3901:31:23;536:5807:77;4148:103:23;-1:-1:-1;536:5807:77;;;-1:-1:-1;;;;;;;;;;;536:5807:77;;;;;;;;966:10:27;536:5807:77;;;;;;;;;3901:31:23;536:5807:77;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;536:5807:77;;-1:-1:-1;536:5807:77;;;-1:-1:-1;536:5807:77;:::o;:::-;;:::i;:::-;;;;;-1:-1:-1;;;536:5807:77;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;536:5807:77;;;;;;;;:::o;6246:584:86:-;;;;;6360:12;;;536:5807:77;;;6360:24:86;;6356:75;;6246:584;6474:30;;;;;:::i;:::-;536:5807:77;;;;;;6578:12:86;;;;:::i;:::-;6604:24;;;;6246:584;-1:-1:-1;6600:188:86;;;-1:-1:-1;;;;;536:5807:77;;;;;;;6644:21:86;;;:29;:21;;:::i;:29::-;6798:25;6246:584;:::o;6600:188::-;6753:24;;536:5807:77;;8167:38:60;;-1:-1:-1;;;;;536:5807:77;;;;;8167:38:60;:::i;:::-;6753:24:86;;;:::i;6604:::-;536:5807:77;;;;;;6614:14:86;;-1:-1:-1;6604:24:86;;;6356:75;-1:-1:-1;;;536:5807:77;;;;;;6360:12:86;536:5807:77;;;;;;;:::i;:::-;;;;;;;;;;;;;;6356:75:86;;;10580:184;536:5807:77;;10303:8:60;;;:63;-1:-1:-1;10303:63:60;-1:-1:-1;;;;;536:5807:77;;10726:7:86;536:5807:77;;10736:12:86;:17;:12;;:17;:::i;:::-;536:5807:77;;;;;;10580:184:86;:::o;10303:63:60:-;536:5807:77;;;;;;;;;;14249:109:60;-1:-1:-1;14249:109:60;;-1:-1:-1;14249:109:60;;;536:5807:77;;;10303:63:60;;3326:384:28;-1:-1:-1;;;;;;;;;;;1847:1:28;536:5807:77;;3526:20:28;3522:88;;1847:1;536:5807:77;;3326:384:28:o;3522:88::-;536:5807:77;;-1:-1:-1;;;3569:30:28;;;;;4758:308:77;;536:5807;-1:-1:-1;536:5807:77;4889:13;536:5807;;;-1:-1:-1;536:5807:77;11124:30:86;;;;:::i;:::-;11173;;;-1:-1:-1;11173:30:86;;;;11182:17;;-1:-1:-1;;;;;536:5807:77;;11182:12:86;;:17;:::i;:::-;536:5807:77;;;4889:13;536:5807;;11173:30:86;4947::77;;;11173::86;4943:117:77;;;;4758:308;;:::o;4943:117::-;4993:56;536:5807;-1:-1:-1;536:5807:77;4889:13;536:5807;;;-1:-1:-1;536:5807:77;819:34:62;837:15;819:34;:::i;4993:56:77:-;4758:308;;:::o;4947:30::-;4957:20;;-1:-1:-1;4947:30:77;;;;11173::86;;;-1:-1:-1;11173:30:86;;7270:387:23;-1:-1:-1;;;;;536:5807:77;;-1:-1:-1;536:5807:77;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2887:71:23;536:5807:77;;;;-1:-1:-1;536:5807:77;;;;;;;;;;;-1:-1:-1;;;;;536:5807:77;;;;;;;;;;-1:-1:-1;;536:5807:77;7509:4:23;536:5807:77;;;966:10:27;;-1:-1:-1;;;;;536:5807:77;-1:-1:-1;7532:40:23;-1:-1:-1;;7532:40:23;7509:4;7586:11;:::o;7270:387::-;-1:-1:-1;;;;;536:5807:77;;-1:-1:-1;536:5807:77;;;;;;;;;1356:26:76;;-1:-1:-1;;;;;;;;;;;2887:71:23;536:5807:77;;3901:31:23;536:5807:77;;;;-1:-1:-1;536:5807:77;;;;;;;;;;;-1:-1:-1;;;;;536:5807:77;;;;;;;;;;-1:-1:-1;;536:5807:77;7509:4:23;536:5807:77;;;966:10:27;;-1:-1:-1;;;;;536:5807:77;;7532:40:23;-1:-1:-1;;7532:40:23;7509:4;7586:11;:::o;7432:219::-;7628:12;;;-1:-1:-1;7628:12:23;:::o;7270:387::-;-1:-1:-1;;;;;536:5807:77;;-1:-1:-1;536:5807:77;;;;;;;;;795:35;;-1:-1:-1;;;;;;;;;;;2887:71:23;536:5807:77;;3901:31:23;536:5807:77;7270:387:23;-1:-1:-1;;;;;536:5807:77;;-1:-1:-1;536:5807:77;;;;;;;;;952:44;;-1:-1:-1;;;;;;;;;;;2887:71:23;536:5807:77;;3901:31:23;536:5807:77;7270:387:23;-1:-1:-1;536:5807:77;;;-1:-1:-1;;;;;;;;;;;536:5807:77;;;;;;;;-1:-1:-1;;;;;536:5807:77;;;;;;;;;;;;3901:31:23;536:5807:77;7892:388:23;-1:-1:-1;536:5807:77;;;-1:-1:-1;;;;;;;;;;;536:5807:77;;;;;;;;-1:-1:-1;;;;;536:5807:77;;;;;;;;;;;;;;;;-1:-1:-1;536:5807:77;;;;;;;;;;;-1:-1:-1;;;;;536:5807:77;;;;;;;;;;-1:-1:-1;;536:5807:77;;;966:10:27;;-1:-1:-1;;;;;536:5807:77;;8155:40:23;-1:-1:-1;;8155:40:23;536:5807:77;8209:11:23;:::o;536:5807:77:-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;536:5807:77;;;;;;;;:::i;5907:716:76:-;6030:34;5907:716;6030:34;;;;:::i;:::-;536:5807:77;;-1:-1:-1;;;6080:41:76;;-1:-1:-1;;;;;536:5807:77;;;6080:41:76;;;536:5807:77;;;;;6080:41:76;536:5807:77;;;6090:13:76;536:5807:77;;6080:41:76;;;;;;;-1:-1:-1;6080:41:76;;;5907:716;6079:42;;6075:90;;6266:27;536:5807:77;2540:111:28;6210:14:76;536:5807:77;2540:111:28;;;:::i;:::-;536:5807:77;;;;;;-1:-1:-1;;;;;536:5807:77;;-1:-1:-1;536:5807:77;;;-1:-1:-1;536:5807:77;;6210:14:76;6266:27;:::i;:::-;6080:41;6311:15;;536:5807:77;;;;-1:-1:-1;;;;;;536:5807:77;-1:-1:-1;;;;;536:5807:77;;;;;;;;;;;-1:-1:-1;;;;;536:5807:77;;;;6337:143:76;;5907:716;-1:-1:-1;6493:28:76;536:5807:77;-1:-1:-1;;;;;536:5807:77;;;;;;;6489:128:76;;5907:716;:::o;6489:128::-;6551:55;;;:::i;:::-;;5907:716::o;6337:143::-;6404:65;;;:::i;:::-;;6337:143;;;6075:90;536:5807:77;;-1:-1:-1;;;6144:10:76;;6080:41;;6144:10;6080:41;;;;;;;;;;;;;;:::i;:::-;;;;536:5807:77;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;:::o;7558:604:86:-;;536:5807:77;;7686:17:86;7682:83;;536:5807:77;7789:27:86;536:5807:77;7789:27:86;536:5807:77;;7789:27:86;;;;;;:::i;:::-;7860:14;;;;;:::i;:::-;536:5807:77;;;;;;;;;;;;;;;;7888:22:86;;;7884:77;;7975:21;-1:-1:-1;7975:84:86;;;;7558:604;7971:139;;;;8127:28;;;;:::i;7971:139::-;8082:17;;7789:27;8082:17;536:5807:77;8075:24:86;:::o;7975:84::-;536:5807:77;;;8009:16:86;536:5807:77;;8009:16:86;:::i;:::-;536:5807:77;;;8001:24:86;:57;;;;;7975:84;;;;;;;8001:57;8029:29;8038:8;;;8029:18;8038:8;8029:23;8038:8;;:::i;:::-;8029:18;;:::i;:::-;536:5807:77;;;;;8029:23:86;536:5807:77;;;;8029:29:86;;8001:57;;;;7884:77;7933:17;;;;;7789:27;7933:17;536:5807:77;7926:24:86;:::o;7682:83::-;7726:28;;;;:::i;536:5807:77:-;;;;;;;;;;-1:-1:-1;;;;;536:5807:77;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;;;;536:5807:77;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;:::i;3722:766::-;;;;;536:5807;;:::i;:::-;;;;3962:16;3958:92;;3722:766;536:5807;;4107:67;536:5807;;;4146:27;4107;:13;536:5807;-1:-1:-1;536:5807:77;;;;;;;;;4107:27;4146;;;;536:5807;;;;;;;;;;;4107:67;;;;;;;:::i;:::-;;;;;;;;;;4081:355;4107:67;-1:-1:-1;4107:67:77;;;3722:766;4260:28;4311:93;4260:28;4192:230;4260:28;;4222:67;536:5807;4260:28;;;4222:67;;;:::i;:::-;4367:36;;;;;4311:93;;:::i;:::-;4192:230;;:::i;4081:355::-;4450:21;;3722:766;:::o;4107:67::-;4192:230;4107:67;;;;4311:93;4107:67;4146:27;4107:67;4146:27;4107:67;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;3958:92;4107:67;4008:31;;;;;;;;;;;;;;:::i;:::-;3958:92;;;;;4494:258;4635:5;536:5807;;;-1:-1:-1;;;4628:27:77;;536:5807;4494:258;;4628:27;;536:5807;;4628:27;;536:5807;;-1:-1:-1;;;;;536:5807:77;4628:27;;;;;;;4606:139;4628:27;4635:5;4628:27;;;4494:258;2103:25;2662:52;:43;4657:78;2103:25;;:34;:25;;536:5807;;2103:13;536:5807;;;;;;;2103:34;536:5807;4635:5;536:5807;4628:27;;536:5807;;4635:5;536:5807;;;;;;;;;;;;;;;;;4628:27;4657:78;4628:27;;2662:43;4628:27;2662:52;4628:27;;;;;;;;;;;:::i;:::-;;;;;;14291:213:58;536:5807:77;14369:24:58;;;;14365:103;;536:5807:77;14291:213:58;:::o;14365:103::-;536:5807:77;;;;14416:41:58;;;;;;14447:2;14416:41;;;536:5807:77;;;;;14416:41:58;536:5807:77;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::o;10552:388:60:-;536:5807:77;;10728:8:60;;;10752:20;;10690:17;10752:20;10690:17;10752:20;10690:17;10752:20;:::o;10724:210::-;536:5807:77;;;;;;;;;;;14249:109:60;10690:17;14249:109;;10690:17;14249:109;;;536:5807:77;:::i;:::-;;;;;;;14249:109:60;536:5807:77;;;;;10911:11:60;;536:5807:77;;10886:37:60;10870:1;10886:37;;;:::o;6893:76:25:-;;;:::i;:::-;;;:::i;:::-;1805:1:28;-1:-1:-1;;;;;;;;;;;536:5807:77;6893:76:25:o;536:5807:77:-;;;;;;;:::i;:::-;-1:-1:-1;536:5807:77;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;-1:-1:-1;;;;;536:5807:77;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;536:5807:77;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;5072:1269::-;5220:30;5072:1269;536:5807;;:::i;:::-;;5220:30;536:5807;;;5220:30;;;;;;:::i;:::-;5278:17;;536:5807;5278:17;;536:5807;-1:-1:-1;;;;;536:5807:77;5278:54;;:178;;5072:1269;5261:258;;5534:9;5220:30;5549:33;;;5278:17;5591:3;5549:33;;536:5807;;5545:44;;;;;5614:36;;;:50;:36;;:::i;:::-;536:5807;-1:-1:-1;;;;;536:5807:77;;;5614:50;;5610:119;;5747:73;5748:72;5783:36;;:33;;;:36;:::i;:::-;5748:72;:::i;:::-;5747:73;;536:5807;5747:73;5743:140;;536:5807;;5534:9;;5743:140;536:5807;;-1:-1:-1;;;5847:21:77;;;;;5610:119;536:5807;;-1:-1:-1;;;5691:23:77;;;;;5545:44;-1:-1:-1;5923:41:77;;-1:-1:-1;;5923:41:77;;;;5278:17;5973:3;5923:41;;536:5807;;5919:52;;;;;5996:44;;;:58;:44;;:::i;:58::-;;5992:127;;6137:90;6138:89;6182:44;;:41;;;:44;:::i;:::-;6138:89;:::i;6137:90::-;6133:157;;536:5807;;5908:9;;6133:157;536:5807;;-1:-1:-1;;;6254:21:77;;;;;5992:127;536:5807;;-1:-1:-1;;;6081:23:77;;;;;5919:52;;;;;;6317:17;5072:1269;:::o;5261:258::-;536:5807;;-1:-1:-1;;;5488:20:77;;;;;5278:178;5353:33;5220:30;5353:33;;;536:5807;5353:45;:102;5278:178;5353:102;5402:41;;;;;536:5807;5402:53;5278:178;;6999:207:86;;536:5807:77;;9594:15:60;-1:-1:-1;9619:18:60;9652:7;9658:1;9652:7;;9648:234;;6999:207:86;9906:53:60;;;;;:::i;:::-;9977:8;;;:63;-1:-1:-1;9977:63:60;;-1:-1:-1;;;;;536:5807:77;;7168:7:86;536:5807:77;;;7178:12:86;;:17;:12;;:17;:::i;9977:63:60:-;9992:41;10025:7;9992:48;10025:7;;:::i;:::-;9992:41;14249:109;;;;;;14099:265;;9992:41;536:5807:77;;;;;9992:48:60;9977:63;;;9648:234;9695:14;;;;;:::i;:::-;536:5807:77;;;;;;;9906:53:60;14249:109;;-1:-1:-1;14249:109:60;536:5807:77;14249:109:60;;;-1:-1:-1;14249:109:60;;536:5807:77;;;;;9727:48:60;9723:149;536:5807:77;;;9795:10:60;9723:149;9648:234;;9723:149;9850:7;;;;;;:::i;:::-;9723:149;9648:234;;536:5807:77;;;;;;;:::i;:::-;-1:-1:-1;536:5807:77;;;;;;;:::o;11486:272:86:-;;536:5807:77;11308:22:60;11718:31:86;11486:272;536:5807:77;;:::i;:::-;;;;:::i;:::-;;11308:22:60;;:::i;:::-;536:5807:77;;:::i;:::-;;11718:12:86;536:5807:77;;;;;11731:17:86;536:5807:77;;;;;11731:17:86;;536:5807:77;;11718:12:86;;:31;:::i;:::-;536:5807:77;;;;;;;;;:::i;:::-;;;;;;11731:17:86;11672:79;;536:5807:77;11486:272:86;:::o;2557:104:57:-;;2641:5;;;;;;:13;2557:104;:::o;2641:13::-;;;2557:104;:::o;536:5807:77:-;;;-1:-1:-1;;;536:5807:77;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;536:5807:77;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;11513:870:60;536:5807:77;;11513:870:60;;;536:5807:77;11513:870:60;11672:7;;;;536:5807:77;11775:28:60;11795:7;;;:::i;11775:28::-;536:5807:77;:::i;:::-;;;;;;;;;;;;;;;;11877:15:60;-1:-1:-1;11873:91:60;;536:5807:77;;12233:11:60;536:5807:77;;;12027:16:60;536:5807:77;;;;;;;12027:16:60;;;;12083:7;12063:43;12083:7;;12063:28;12083:7;;:::i;:::-;12063:28;14249:109;;;;;;14099:265;;12063:28;536:5807:77;;;;;;;;;;;;;;;;;12063:43:60;12233:11;536:5807:77;-1:-1:-1;;;;;536:5807:77;;;12023:189:60;536:5807:77;;;12145:52:60;536:5807:77;12155:41:60;536:5807:77;;:::i;:::-;;;;;;;;12155:41:60;-1:-1:-1;;;;;536:5807:77;;12155:41:60;;;536:5807:77;12145:52:60;:::i;:::-;12023:189;;11873:91;536:5807:77;;-1:-1:-1;;;11919:30:60;;;;;11668:709;12283:52;536:5807:77;;12293:41:60;536:5807:77;;:::i;12293:41:60:-;-1:-1:-1;;;;;536:5807:77;;12293:41:60;;;536:5807:77;12145:52:60;:::i;12283:::-;11678:1;12349:17;;:::o;7084:141:25:-;536:5807:77;-1:-1:-1;;;;;;;;;;;536:5807:77;;;;7150:18:25;7146:73;;7084:141::o;7146:73::-;536:5807:77;;-1:-1:-1;;;7191:17:25;;;;;8587:1642:57;8658:6;;8654:45;;9401:7;10201:10;10142:26;10093;10044;9995;9946;9897;9848;536:5807:77;10189:23:57;9401:7;8663:1;536:5807:77;;;;10826:16:57;10822:99;;8587:1642;536:5807:77;;;;10938:15:57;10934:96;;8587:1642;536:5807:77;;;;11047:15:57;11043:96;;8587:1642;536:5807:77;;;;11156:15:57;11152:96;;8587:1642;536:5807:77;;;;11265:14:57;11261:93;;8587:1642;536:5807:77;;;;11371:14:57;11367:93;;8587:1642;536:5807:77;;;;11477:14:57;11473:93;;8587:1642;536:5807:77;;;11579:64:57;;8587:1642;536:5807:77;;;9858:10:57;;;;:::i;:::-;536:5807:77;;;;;9848:26:57;9907:10;;;;:::i;9897:26::-;9956:10;;;;:::i;9946:26::-;10005:10;;;;:::i;9995:26::-;10054:10;;;;:::i;10044:26::-;10103:10;;;;:::i;10093:26::-;10152:10;;;;:::i;10142:26::-;10201:10;;;:::i;11579:64::-;536:5807:77;;11579:64:57;;11473:93;536:5807:77;11511:11:57;;536:5807:77;;11473:93:57;;;;11367;536:5807:77;11405:11:57;;536:5807:77;;11367:93:57;;;;11261;536:5807:77;11299:11:57;;536:5807:77;;11261:93:57;;;;11152:96;536:5807:77;11191:12:57;;536:5807:77;;11152:96:57;;;;11043;536:5807:77;11082:12:57;;536:5807:77;;11043:96:57;;;;10934;536:5807:77;10973:12:57;;536:5807:77;;10934:96:57;;;;10822:99;10862:13;;;536:5807:77;10822:99:57;;;;12736:433:60;;;12919:10;;;;;;13151:11;;;12736:433;:::o;12912:230::-;2900:5:57;;;;;;2910;;;;536:5807:77;;;;;;;;;14249:109:60;-1:-1:-1;14249:109:60;536:5807:77;14249:109:60;;;-1:-1:-1;14249:109:60;;536:5807:77;;;;;-1:-1:-1;12996:136:60;536:5807:77;;;13055:10:60;12996:136;;12912:230;;;;12996:136;13110:7;;;;;;:::i;:::-;12996:136;;","linkReferences":{},"immutableReferences":{"57808":[{"start":1834,"length":32}],"57811":[{"start":3768,"length":32}],"58762":[{"start":1467,"length":32},{"start":3825,"length":32}],"58765":[{"start":1122,"length":32},{"start":7577,"length":32}],"58768":[{"start":1269,"length":32},{"start":5312,"length":32},{"start":5636,"length":32}],"58771":[{"start":1337,"length":32},{"start":5159,"length":32},{"start":5762,"length":32}]}},"methodIdentifiers":{"DEFAULT_ADMIN_ROLE()":"a217fddf","FACTORY()":"2dd31000","HOOK_GAS_LIMIT()":"ff54740f","HOOK_RESERVE()":"557cab44","HOOK_SET_ROLE()":"6679191e","NETWORK_LIMIT_SET_ROLE()":"7d24bb27","NETWORK_REGISTRY()":"c0cd7c3e","OPERATOR_NETWORK_LIMIT_SET_ROLE()":"518504ba","OPERATOR_NETWORK_OPT_IN_SERVICE()":"1a80e500","OPERATOR_VAULT_OPT_IN_SERVICE()":"128e5d82","TYPE()":"bb24fe8a","VAULT_FACTORY()":"103f2907","VERSION()":"ffa1ad74","getRoleAdmin(bytes32)":"248a9ca3","grantRole(bytes32,address)":"2f2ff15d","hasRole(bytes32,address)":"91d14854","hook()":"7f5a7c7b","initialize(bytes)":"439fab91","maxNetworkLimit(bytes32)":"d15b740e","networkLimit(bytes32)":"3eb22c0f","networkLimitAt(bytes32,uint48,bytes)":"5d32a1c9","onSlash(bytes32,address,uint256,uint48,bytes)":"e49561ee","operatorNetworkLimit(bytes32,address)":"11422095","operatorNetworkLimitAt(bytes32,address,uint48,bytes)":"94d2558a","renounceRole(bytes32,address)":"36568abe","revokeRole(bytes32,address)":"d547741f","setHook(address)":"3dfd3873","setMaxNetworkLimit(uint96,uint256)":"23f752d5","setNetworkLimit(bytes32,uint256)":"02145348","setOperatorNetworkLimit(bytes32,address,uint256)":"020cf0c2","stake(bytes32,address)":"fd4d447c","stakeAt(bytes32,address,uint48,bytes)":"e02f6937","staticDelegateCall(address,bytes)":"9f86fd85","supportsInterface(bytes4)":"01ffc9a7","vault()":"fbfa77cf"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"networkRegistry\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"vaultFactory\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operatorVaultOptInService\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operatorNetworkOptInService\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"delegatorFactory\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"entityType\",\"type\":\"uint64\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"AccessControlBadConfirmation\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"neededRole\",\"type\":\"bytes32\"}],\"name\":\"AccessControlUnauthorizedAccount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AlreadySet\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CheckpointUnorderedInsertion\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"DuplicateRoleHolder\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ExceedsMaxNetworkLimit\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientHookGas\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MissingRoleHolders\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotNetwork\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotSlasher\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotVault\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ReentrancyGuardReentrantCall\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"bits\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"SafeCastOverflowedUintDowncast\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ZeroAddressRoleHolder\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint48\",\"name\":\"captureTimestamp\",\"type\":\"uint48\"}],\"name\":\"OnSlash\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"previousAdminRole\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"newAdminRole\",\"type\":\"bytes32\"}],\"name\":\"RoleAdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleRevoked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"hook\",\"type\":\"address\"}],\"name\":\"SetHook\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"SetMaxNetworkLimit\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"SetNetworkLimit\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"SetOperatorNetworkLimit\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DEFAULT_ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"FACTORY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"HOOK_GAS_LIMIT\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"HOOK_RESERVE\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"HOOK_SET_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"NETWORK_LIMIT_SET_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"NETWORK_REGISTRY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"OPERATOR_NETWORK_LIMIT_SET_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"OPERATOR_NETWORK_OPT_IN_SERVICE\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"OPERATOR_VAULT_OPT_IN_SERVICE\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"TYPE\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"VAULT_FACTORY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"VERSION\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleAdmin\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"grantRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"hook\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"}],\"name\":\"maxNetworkLimit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"}],\"name\":\"networkLimit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hint\",\"type\":\"bytes\"}],\"name\":\"networkLimitAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint48\",\"name\":\"captureTimestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"onSlash\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"operatorNetworkLimit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hint\",\"type\":\"bytes\"}],\"name\":\"operatorNetworkLimitAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"callerConfirmation\",\"type\":\"address\"}],\"name\":\"renounceRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"hook_\",\"type\":\"address\"}],\"name\":\"setHook\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint96\",\"name\":\"identifier\",\"type\":\"uint96\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"setMaxNetworkLimit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"setNetworkLimit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"setOperatorNetworkLimit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"stake\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hints\",\"type\":\"bytes\"}],\"name\":\"stakeAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"staticDelegateCall\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"vault\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"AccessControlBadConfirmation()\":[{\"details\":\"The caller of a function is not the expected one. NOTE: Don't confuse with {AccessControlUnauthorizedAccount}.\"}],\"AccessControlUnauthorizedAccount(address,bytes32)\":[{\"details\":\"The `account` is missing a role.\"}],\"CheckpointUnorderedInsertion()\":[{\"details\":\"A value was attempted to be inserted on a past checkpoint.\"}],\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"ReentrancyGuardReentrantCall()\":[{\"details\":\"Unauthorized reentrant call.\"}],\"SafeCastOverflowedUintDowncast(uint8,uint256)\":[{\"details\":\"Value doesn't fit in an uint of `bits` size.\"}]},\"events\":{\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"OnSlash(bytes32,address,uint256,uint48)\":{\"params\":{\"amount\":\"amount of the collateral to be slashed\",\"captureTimestamp\":\"time point when the stake was captured\",\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"}},\"RoleAdminChanged(bytes32,bytes32,bytes32)\":{\"details\":\"Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole` `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite {RoleAdminChanged} not being emitted signaling this.\"},\"RoleGranted(bytes32,address,address)\":{\"details\":\"Emitted when `account` is granted `role`. `sender` is the account that originated the contract call, an admin role bearer except when using {AccessControl-_setupRole}.\"},\"RoleRevoked(bytes32,address,address)\":{\"details\":\"Emitted when `account` is revoked `role`. `sender` is the account that originated the contract call: - if using `revokeRole`, it is the admin role bearer - if using `renounceRole`, it is the role bearer (i.e. `account`)\"},\"SetHook(address)\":{\"params\":{\"hook\":\"address of the hook\"}},\"SetMaxNetworkLimit(bytes32,uint256)\":{\"params\":{\"amount\":\"new maximum subnetwork's limit (how much stake the subnetwork is ready to get)\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"}},\"SetNetworkLimit(bytes32,uint256)\":{\"params\":{\"amount\":\"new subnetwork's limit (how much stake the vault curator is ready to give to the subnetwork)\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"}},\"SetOperatorNetworkLimit(bytes32,address,uint256)\":{\"params\":{\"amount\":\"new operator's limit for the subnetwork (how much stake the vault curator is ready to give to the operator for the subnetwork)\",\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"}}},\"kind\":\"dev\",\"methods\":{\"VERSION()\":{\"details\":\"Must return 1 for this one.\",\"returns\":{\"_0\":\"version of the delegator\"}},\"getRoleAdmin(bytes32)\":{\"details\":\"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}.\"},\"grantRole(bytes32,address)\":{\"details\":\"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event.\"},\"hasRole(bytes32,address)\":{\"details\":\"Returns `true` if `account` has been granted `role`.\"},\"initialize(bytes)\":{\"params\":{\"data\":\"some data to use\"}},\"networkLimit(bytes32)\":{\"params\":{\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"},\"returns\":{\"_0\":\"limit of the subnetwork\"}},\"networkLimitAt(bytes32,uint48,bytes)\":{\"params\":{\"hint\":\"hint for checkpoint index\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\",\"timestamp\":\"time point to get the subnetwork limit at\"},\"returns\":{\"_0\":\"limit of the subnetwork at the given timestamp\"}},\"onSlash(bytes32,address,uint256,uint48,bytes)\":{\"details\":\"Only the vault's slasher can call this function.\",\"params\":{\"amount\":\"amount of the collateral slashed\",\"captureTimestamp\":\"time point when the stake was captured\",\"data\":\"some additional data\",\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"}},\"operatorNetworkLimit(bytes32,address)\":{\"params\":{\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"},\"returns\":{\"_0\":\"limit of the operator for the subnetwork\"}},\"operatorNetworkLimitAt(bytes32,address,uint48,bytes)\":{\"params\":{\"hint\":\"hint for checkpoint index\",\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\",\"timestamp\":\"time point to get the operator's limit for the subnetwork at\"},\"returns\":{\"_0\":\"limit of the operator for the subnetwork at the given timestamp\"}},\"renounceRole(bytes32,address)\":{\"details\":\"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `callerConfirmation`. May emit a {RoleRevoked} event.\"},\"revokeRole(bytes32,address)\":{\"details\":\"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event.\"},\"setHook(address)\":{\"details\":\"Only a HOOK_SET_ROLE holder can call this function. The hook can have arbitrary logic under certain functions, however, it doesn't affect the stake guarantees.\",\"params\":{\"hook\":\"address of the hook\"}},\"setMaxNetworkLimit(uint96,uint256)\":{\"details\":\"Only a network can call this function.\",\"params\":{\"amount\":\"new maximum subnetwork's limit\"}},\"setNetworkLimit(bytes32,uint256)\":{\"details\":\"Only a NETWORK_LIMIT_SET_ROLE holder can call this function.\",\"params\":{\"amount\":\"new limit of the subnetwork\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"}},\"setOperatorNetworkLimit(bytes32,address,uint256)\":{\"details\":\"Only an OPERATOR_NETWORK_LIMIT_SET_ROLE holder can call this function.\",\"params\":{\"amount\":\"new limit of the operator for the subnetwork\",\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"}},\"stake(bytes32,address)\":{\"details\":\"Warning: this function is not safe to use for stake capturing, as it can change by the end of the block.\",\"params\":{\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"},\"returns\":{\"_0\":\"slashable stake until the end of the next epoch\"}},\"stakeAt(bytes32,address,uint48,bytes)\":{\"details\":\"Warning: it is not safe to use timestamp >= current one for the stake capturing, as it can change later.\",\"params\":{\"hints\":\"hints for the checkpoints' indexes\",\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\",\"timestamp\":\"time point to capture the stake at\"},\"returns\":{\"_0\":\"slashable stake at the given timestamp until the end of the consequent epoch\"}},\"staticDelegateCall(address,bytes)\":{\"details\":\"It allows to use this contract's storage on-chain.\",\"params\":{\"data\":\"data to make a delegatecall with\",\"target\":\"address of the contract to make a delegatecall to\"}},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"}},\"stateVariables\":{\"NETWORK_LIMIT_SET_ROLE\":{\"return\":\"identifier of the subnetwork limit setter role\",\"returns\":{\"_0\":\"identifier of the subnetwork limit setter role\"}},\"OPERATOR_NETWORK_LIMIT_SET_ROLE\":{\"return\":\"identifier of the operator-subnetwork limit setter role\",\"returns\":{\"_0\":\"identifier of the operator-subnetwork limit setter role\"}}},\"version\":1},\"userdoc\":{\"events\":{\"OnSlash(bytes32,address,uint256,uint48)\":{\"notice\":\"Emitted when a slash happens.\"},\"SetHook(address)\":{\"notice\":\"Emitted when a hook is set.\"},\"SetMaxNetworkLimit(bytes32,uint256)\":{\"notice\":\"Emitted when a subnetwork's maximum limit is set.\"},\"SetNetworkLimit(bytes32,uint256)\":{\"notice\":\"Emitted when a subnetwork's limit is set.\"},\"SetOperatorNetworkLimit(bytes32,address,uint256)\":{\"notice\":\"Emitted when an operator's limit for a subnetwork is set.\"}},\"kind\":\"user\",\"methods\":{\"FACTORY()\":{\"notice\":\"Get the factory's address.\"},\"HOOK_GAS_LIMIT()\":{\"notice\":\"Get a gas limit for the hook.\"},\"HOOK_RESERVE()\":{\"notice\":\"Get a reserve gas between the gas limit check and the hook's execution.\"},\"HOOK_SET_ROLE()\":{\"notice\":\"Get a hook setter's role.\"},\"NETWORK_LIMIT_SET_ROLE()\":{\"notice\":\"Get a subnetwork limit setter's role.\"},\"NETWORK_REGISTRY()\":{\"notice\":\"Get the network registry's address.\"},\"OPERATOR_NETWORK_LIMIT_SET_ROLE()\":{\"notice\":\"Get an operator-subnetwork limit setter's role.\"},\"OPERATOR_NETWORK_OPT_IN_SERVICE()\":{\"notice\":\"Get the operator-network opt-in service's address.\"},\"OPERATOR_VAULT_OPT_IN_SERVICE()\":{\"notice\":\"Get the operator-vault opt-in service's address.\"},\"TYPE()\":{\"notice\":\"Get the entity's type.\"},\"VAULT_FACTORY()\":{\"notice\":\"Get the vault factory's address.\"},\"VERSION()\":{\"notice\":\"Get a version of the delegator (different versions mean different interfaces).\"},\"hook()\":{\"notice\":\"Get the hook's address.\"},\"initialize(bytes)\":{\"notice\":\"Initialize this entity contract by using a given data.\"},\"maxNetworkLimit(bytes32)\":{\"notice\":\"Get a particular subnetwork's maximum limit (meaning the subnetwork is not ready to get more as a stake).\"},\"networkLimit(bytes32)\":{\"notice\":\"Get a subnetwork's limit (how much stake the vault curator is ready to give to the subnetwork).\"},\"networkLimitAt(bytes32,uint48,bytes)\":{\"notice\":\"Get a subnetwork's limit at a given timestamp using a hint (how much stake the vault curator is ready to give to the subnetwork).\"},\"onSlash(bytes32,address,uint256,uint48,bytes)\":{\"notice\":\"Called when a slash happens.\"},\"operatorNetworkLimit(bytes32,address)\":{\"notice\":\"Get an operator's limit for a subnetwork. (how much stake the vault curator is ready to give to the operator for the subnetwork)\"},\"operatorNetworkLimitAt(bytes32,address,uint48,bytes)\":{\"notice\":\"Get an operator's limit for a subnetwork at a given timestamp using a hint (how much stake the vault curator is ready to give to the operator for the subnetwork).\"},\"setHook(address)\":{\"notice\":\"Set a new hook.\"},\"setMaxNetworkLimit(uint96,uint256)\":{\"notice\":\"Set a maximum limit for a subnetwork (how much stake the subnetwork is ready to get). identifier identifier of the subnetwork\"},\"setNetworkLimit(bytes32,uint256)\":{\"notice\":\"Set a subnetwork's limit (how much stake the vault curator is ready to give to the subnetwork).\"},\"setOperatorNetworkLimit(bytes32,address,uint256)\":{\"notice\":\"Set an operator's limit for a subnetwork. (how much stake the vault curator is ready to give to the operator for the subnetwork)\"},\"stake(bytes32,address)\":{\"notice\":\"Get a stake that a given subnetwork will be able to slash for a certain operator until the end of the next epoch (if no cross-slashing and no slashings by the subnetwork).\"},\"stakeAt(bytes32,address,uint48,bytes)\":{\"notice\":\"Get a stake that a given subnetwork could be able to slash for a certain operator at a given timestamp until the end of the consequent epoch using hints (if no cross-slashing and no slashings by the subnetwork).\"},\"staticDelegateCall(address,bytes)\":{\"notice\":\"Make a delegatecall from this contract to a given target contract with a particular data (always reverts with a return data).\"},\"vault()\":{\"notice\":\"Get the vault's address.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/contracts/delegator/FullRestakeDelegator.sol\":\"FullRestakeDelegator\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol\":{\"keccak256\":\"0x6662ec4e5cefca03eeadd073e9469df8d2944bb2ee8ec8f7622c2c46aab5f225\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4d8544c6f8daa4d1bc215c6a72fe0acdb748664a105b0e5efc19295667521d45\",\"dweb:/ipfs/QmdGWqdnXT8S3RgCR6aV8XHZrsybieMQLLnug1NtpSjEXN\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609\",\"dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9\",\"dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardUpgradeable.sol\":{\"keccak256\":\"0xb44e086e941292cdc7f440de51478493894ef0b1aeccb0c4047445919f667f74\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://942dad22fbdc1669f025540ba63aa3ccfad5f8458fc5d4525b31ebf272e7af45\",\"dweb:/ipfs/Qmdo4X2M82aM3AMoW2kf2jhYkSCyC4T1pHNd6obdsDFnAB\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol\":{\"keccak256\":\"0xdaba3f7c42c55b2896353f32bd27d4d5f8bae741b3b05d4c53f67abc4dc47ce8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1fa2e61141c602510bcd2cd936ed9561922ac8772a9b9c9a9db091a74e354a45\",\"dweb:/ipfs/QmcHQDDoEBwJmwUbzoVkytvJsBx3KVHYFFnDkvRGWh9Wmh\"]},\"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0xb6b36edd6a2999fd243ff226d6cbf84bd71af2432bbd0dfe19392996a1d9cb41\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1fd2f35495652e57e3f99bc6c510bc5f7dd398a176ea2e72d8ed730aebc6ca26\",\"dweb:/ipfs/QmTQV6X4gkikTib49cho5iDX3JvSQbdsoEChoDwrk3CbbH\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875\",\"dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0xe19a4d5f31d2861e7344e8e535e2feafb913d806d3e2b5fe7782741a2a7094fe\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4aed79c0fa6f0546ed02f2f683e8f77f0fd2ed7eb34d8bbf3d373c9a6d95b13c\",\"dweb:/ipfs/QmWqVz6UAVqmnWU5pqYPt1o6iDEZyPaBraAA3rKfTTSfYj\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/Checkpoints.sol\":{\"keccak256\":\"0xbdc5e074d7dd6678f67e92b1a51a20226801a407b0e1af3da367c5d1ff4519ad\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a36cca6b22fff3db16fc789ff6c60eea71d4b156065d4d0c83a0bc5e91a77a8b\",\"dweb:/ipfs/QmYN3exd5AemxjBrN8XMB1p5LbbE16uC3sjbYjwi8AjcGR\"]},\"lib/openzeppelin-contracts/contracts/utils/types/Time.sol\":{\"keccak256\":\"0xc7755af115020049e4140f224f9ee88d7e1799ffb0646f37bf0df24bf6213f58\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7f09bf94d5274334ec021f61a04659db303f31e60460e14b709c9bf187740111\",\"dweb:/ipfs/QmNvgomZYUwFAt4cZbPWAiTeSZQreGehY9BK5xyVJsUttb\"]},\"src/contracts/common/Entity.sol\":{\"keccak256\":\"0x3d61a932995b8443381f3950542d388223a2c26dd5d29a3274dea3baa7388bd7\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://7cdf5f03ca72fd263fd32ff59c8d88ddca911ae83896a287d10772c1bbe9b138\",\"dweb:/ipfs/QmbP84r5BWT1Rn9AYTntWSf3xUMTTCohTZJFhbBhDXFoHa\"]},\"src/contracts/common/StaticDelegateCallable.sol\":{\"keccak256\":\"0x350029aa8955eacaffffaeb58babc5c98e80ebc5c5db388ed17ee6465f4a9d90\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://eb392a8ee9050e0af606897df63e3404e3829e8b688b580663892f9664195764\",\"dweb:/ipfs/QmaXC8jqV8UrrAFkzXTEv2fJF56sy33HhLxAzaRZmUxuXD\"]},\"src/contracts/delegator/BaseDelegator.sol\":{\"keccak256\":\"0x7c54d491fdd4415b764a9c8defa068e56d4c0c8c9419be0053a1d377669290e8\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://9238bfbad0f6eeb0dc7727724de14380f1980b395902269703d5e2ef07e52e10\",\"dweb:/ipfs/QmPJn1V4HNXcEghYvogGuSTF24dSQUPosR5qtsXcmNqRm3\"]},\"src/contracts/delegator/FullRestakeDelegator.sol\":{\"keccak256\":\"0x0a81c4f8e72914563a9cb771e93acf889c71ea36b7bec040e4eb562b199d5af1\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://6fc66b6ba02da77046a0bbbd1dd407a62c08f52e04486c9cbd2cb1cca3da555f\",\"dweb:/ipfs/QmZQivK1ZnMxfRQQ5aLpV9co5u55wQVNev5Rg1hzAqxhkE\"]},\"src/contracts/libraries/Checkpoints.sol\":{\"keccak256\":\"0xba90097c8bfe0a975499428b5f8ac5569483c7d92ccc28c12d70de416aae040c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://12f5d93ca94cd06d3147db68993165a58e17903ed53682560de61f3085ad4609\",\"dweb:/ipfs/QmePiuAqvXprMLmFZkGZeGjvGPAvsEDHfCDv7BoQhXu9xE\"]},\"src/contracts/libraries/Subnetwork.sol\":{\"keccak256\":\"0xf5ef5506fd66082b3c2e7f3df37529f5a8efad32ac62e7c8914bd63219190bfe\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba031a54ee0d0e9a270c2b9e18437f5668cfeb659cfd5fe0677459d7fcac2a56\",\"dweb:/ipfs/QmReP3H7qQ78tAfgLnJKsNEQNCQfF1X1Get38Ffd4kzq32\"]},\"src/interfaces/common/IEntity.sol\":{\"keccak256\":\"0x8ef4b63d6da63489778ccd5f8d13ebdd527dd4b62730b2c616df5af7474d2d21\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a8d69576a9219d85c50816a18ad53a4d53cfcb27ed38b8cccc808dc2734b71b\",\"dweb:/ipfs/QmYVN3P4Q4REvBWJ97TbAcaxm3uyB2anV6NSGa6ZtSwcEv\"]},\"src/interfaces/common/IMigratableEntity.sol\":{\"keccak256\":\"0x8f5f2809f3afbe8ebfbb365dd7b57b4dd3b6f9943a6187eaf648d45895b8e3c4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ffe640537d539e7a4fde70d30d3e4c57f4ba9c2c25c450cea713aae38e8fd5c\",\"dweb:/ipfs/QmSUTGzvdcn1R1KB7tLThMRtESsfPbeXDhhhKWGtntzBds\"]},\"src/interfaces/common/IRegistry.sol\":{\"keccak256\":\"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014\",\"dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK\"]},\"src/interfaces/common/IStaticDelegateCallable.sol\":{\"keccak256\":\"0xa335d4e81b9071b7de66ef92b43ff20671d86516eb1be46fef29a3483cd3f5d5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d464b9db863c14c05547d2b23352f2e9b7b784799cf09f6bbc4906a2a74e3516\",\"dweb:/ipfs/QmUVWzFvJz7eEbDQKiFTTzwi7TEbjcs3VmwdM4kuptAKvi\"]},\"src/interfaces/delegator/IBaseDelegator.sol\":{\"keccak256\":\"0x96bb312f032e17accce3f8f80936d99468029d6b37c9ca74acdb4b026a0148ee\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2a66dcb5b7d1a6ef6a363431ea98ebd78bc4fdd3d7a134d9b542dc66e7d025c2\",\"dweb:/ipfs/QmRhTPLd2ZAyRHmJUFUcWKs9b3if49QY17LYZuRqWmghw8\"]},\"src/interfaces/delegator/IDelegatorHook.sol\":{\"keccak256\":\"0xc51aa8d7d1f6c8043ee819b7aeb86da0e993912e1442098df897e299f01f9f46\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://adddf5cb2ba282aeb576b26efb28640f865a1721cc9b6eee8b3ee0457a2c9780\",\"dweb:/ipfs/QmNYgAmnLRwWZbhTuQhZs9rx4zcme1df5mEepkrniorSoW\"]},\"src/interfaces/delegator/IFullRestakeDelegator.sol\":{\"keccak256\":\"0xa3c8cb2e45d4d8ce90e95263bea40c01dc400f05ad65bc29597d878606be5e7d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://782cf5e201aa4cca037ebafd3807a68ff1cc721d5b8416a35244db0d0607369e\",\"dweb:/ipfs/QmQkJks6x7CKndeTPa9LxgTNygD5uEi7obhADhpq1Lsr9A\"]},\"src/interfaces/service/IOptInService.sol\":{\"keccak256\":\"0x76fb5460a6d87a5705433d4fbeff7253cd75b8bbd0c888b2088f16e86ace146a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://990322019b3d11465f7024bae77ccbf7e2fe5d6fa3c754584778f37d04fa1337\",\"dweb:/ipfs/QmaSNHzcqxTkUCG9a4nqVfLECHLdjdrwAnDi3yDC7tDL24\"]},\"src/interfaces/vault/IVault.sol\":{\"keccak256\":\"0xffee01d383cd4e1a5530c614bf4360c1ef070c288abec9da1eb531b51bc07235\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://04f0046cac285d8ec44ebbb1f79dc94fab4495767190cad8364fbc1fafaadfb9\",\"dweb:/ipfs/QmUawAunwzXfCyShWfhKeThAgKtqe51hmrxvrXvM772M2R\"]},\"src/interfaces/vault/IVaultStorage.sol\":{\"keccak256\":\"0x592626f13754194f83047135de19229c49390bd59e34659b1bb38be71d973a22\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://06a6a9dfddd05e580b32bebe2cff4f63ba26a653180676d58225dd30d9c89d3e\",\"dweb:/ipfs/QmdgzBeY6Sxo8mGtyBxtv1tM1c2kU6J6zjeRd7vuXm4DU6\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.25+commit.b61c2a91"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"networkRegistry","type":"address"},{"internalType":"address","name":"vaultFactory","type":"address"},{"internalType":"address","name":"operatorVaultOptInService","type":"address"},{"internalType":"address","name":"operatorNetworkOptInService","type":"address"},{"internalType":"address","name":"delegatorFactory","type":"address"},{"internalType":"uint64","name":"entityType","type":"uint64"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"AccessControlBadConfirmation"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bytes32","name":"neededRole","type":"bytes32"}],"type":"error","name":"AccessControlUnauthorizedAccount"},{"inputs":[],"type":"error","name":"AlreadySet"},{"inputs":[],"type":"error","name":"CheckpointUnorderedInsertion"},{"inputs":[],"type":"error","name":"DuplicateRoleHolder"},{"inputs":[],"type":"error","name":"ExceedsMaxNetworkLimit"},{"inputs":[],"type":"error","name":"InsufficientHookGas"},{"inputs":[],"type":"error","name":"InvalidInitialization"},{"inputs":[],"type":"error","name":"MissingRoleHolders"},{"inputs":[],"type":"error","name":"NotInitialized"},{"inputs":[],"type":"error","name":"NotInitializing"},{"inputs":[],"type":"error","name":"NotNetwork"},{"inputs":[],"type":"error","name":"NotSlasher"},{"inputs":[],"type":"error","name":"NotVault"},{"inputs":[],"type":"error","name":"ReentrancyGuardReentrantCall"},{"inputs":[{"internalType":"uint8","name":"bits","type":"uint8"},{"internalType":"uint256","name":"value","type":"uint256"}],"type":"error","name":"SafeCastOverflowedUintDowncast"},{"inputs":[],"type":"error","name":"ZeroAddressRoleHolder"},{"inputs":[{"internalType":"uint64","name":"version","type":"uint64","indexed":false}],"type":"event","name":"Initialized","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32","indexed":true},{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false},{"internalType":"uint48","name":"captureTimestamp","type":"uint48","indexed":false}],"type":"event","name":"OnSlash","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"bytes32","name":"previousAdminRole","type":"bytes32","indexed":true},{"internalType":"bytes32","name":"newAdminRole","type":"bytes32","indexed":true}],"type":"event","name":"RoleAdminChanged","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"address","name":"sender","type":"address","indexed":true}],"type":"event","name":"RoleGranted","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"address","name":"sender","type":"address","indexed":true}],"type":"event","name":"RoleRevoked","anonymous":false},{"inputs":[{"internalType":"address","name":"hook","type":"address","indexed":true}],"type":"event","name":"SetHook","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"SetMaxNetworkLimit","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"SetNetworkLimit","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32","indexed":true},{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"SetOperatorNetworkLimit","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"DEFAULT_ADMIN_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"FACTORY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"HOOK_GAS_LIMIT","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"HOOK_RESERVE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"HOOK_SET_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"NETWORK_LIMIT_SET_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"NETWORK_REGISTRY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"OPERATOR_NETWORK_LIMIT_SET_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"OPERATOR_NETWORK_OPT_IN_SERVICE","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"OPERATOR_VAULT_OPT_IN_SERVICE","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"TYPE","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"VAULT_FACTORY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"VERSION","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getRoleAdmin","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"grantRole"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"hasRole","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"hook","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"}],"stateMutability":"view","type":"function","name":"maxNetworkLimit","outputs":[{"internalType":"uint256","name":"value","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"}],"stateMutability":"view","type":"function","name":"networkLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"uint48","name":"timestamp","type":"uint48"},{"internalType":"bytes","name":"hint","type":"bytes"}],"stateMutability":"view","type":"function","name":"networkLimitAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint48","name":"captureTimestamp","type":"uint48"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"onSlash"},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"operatorNetworkLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint48","name":"timestamp","type":"uint48"},{"internalType":"bytes","name":"hint","type":"bytes"}],"stateMutability":"view","type":"function","name":"operatorNetworkLimitAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"callerConfirmation","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"renounceRole"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"revokeRole"},{"inputs":[{"internalType":"address","name":"hook_","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setHook"},{"inputs":[{"internalType":"uint96","name":"identifier","type":"uint96"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setMaxNetworkLimit"},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setNetworkLimit"},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setOperatorNetworkLimit"},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"stake","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint48","name":"timestamp","type":"uint48"},{"internalType":"bytes","name":"hints","type":"bytes"}],"stateMutability":"view","type":"function","name":"stakeAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"staticDelegateCall"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"vault","outputs":[{"internalType":"address","name":"","type":"address"}]}],"devdoc":{"kind":"dev","methods":{"VERSION()":{"details":"Must return 1 for this one.","returns":{"_0":"version of the delegator"}},"getRoleAdmin(bytes32)":{"details":"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}."},"grantRole(bytes32,address)":{"details":"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event."},"hasRole(bytes32,address)":{"details":"Returns `true` if `account` has been granted `role`."},"initialize(bytes)":{"params":{"data":"some data to use"}},"networkLimit(bytes32)":{"params":{"subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"},"returns":{"_0":"limit of the subnetwork"}},"networkLimitAt(bytes32,uint48,bytes)":{"params":{"hint":"hint for checkpoint index","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)","timestamp":"time point to get the subnetwork limit at"},"returns":{"_0":"limit of the subnetwork at the given timestamp"}},"onSlash(bytes32,address,uint256,uint48,bytes)":{"details":"Only the vault's slasher can call this function.","params":{"amount":"amount of the collateral slashed","captureTimestamp":"time point when the stake was captured","data":"some additional data","operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"}},"operatorNetworkLimit(bytes32,address)":{"params":{"operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"},"returns":{"_0":"limit of the operator for the subnetwork"}},"operatorNetworkLimitAt(bytes32,address,uint48,bytes)":{"params":{"hint":"hint for checkpoint index","operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)","timestamp":"time point to get the operator's limit for the subnetwork at"},"returns":{"_0":"limit of the operator for the subnetwork at the given timestamp"}},"renounceRole(bytes32,address)":{"details":"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `callerConfirmation`. May emit a {RoleRevoked} event."},"revokeRole(bytes32,address)":{"details":"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event."},"setHook(address)":{"details":"Only a HOOK_SET_ROLE holder can call this function. The hook can have arbitrary logic under certain functions, however, it doesn't affect the stake guarantees.","params":{"hook":"address of the hook"}},"setMaxNetworkLimit(uint96,uint256)":{"details":"Only a network can call this function.","params":{"amount":"new maximum subnetwork's limit"}},"setNetworkLimit(bytes32,uint256)":{"details":"Only a NETWORK_LIMIT_SET_ROLE holder can call this function.","params":{"amount":"new limit of the subnetwork","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"}},"setOperatorNetworkLimit(bytes32,address,uint256)":{"details":"Only an OPERATOR_NETWORK_LIMIT_SET_ROLE holder can call this function.","params":{"amount":"new limit of the operator for the subnetwork","operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"}},"stake(bytes32,address)":{"details":"Warning: this function is not safe to use for stake capturing, as it can change by the end of the block.","params":{"operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"},"returns":{"_0":"slashable stake until the end of the next epoch"}},"stakeAt(bytes32,address,uint48,bytes)":{"details":"Warning: it is not safe to use timestamp >= current one for the stake capturing, as it can change later.","params":{"hints":"hints for the checkpoints' indexes","operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)","timestamp":"time point to capture the stake at"},"returns":{"_0":"slashable stake at the given timestamp until the end of the consequent epoch"}},"staticDelegateCall(address,bytes)":{"details":"It allows to use this contract's storage on-chain.","params":{"data":"data to make a delegatecall with","target":"address of the contract to make a delegatecall to"}},"supportsInterface(bytes4)":{"details":"See {IERC165-supportsInterface}."}},"version":1},"userdoc":{"kind":"user","methods":{"FACTORY()":{"notice":"Get the factory's address."},"HOOK_GAS_LIMIT()":{"notice":"Get a gas limit for the hook."},"HOOK_RESERVE()":{"notice":"Get a reserve gas between the gas limit check and the hook's execution."},"HOOK_SET_ROLE()":{"notice":"Get a hook setter's role."},"NETWORK_LIMIT_SET_ROLE()":{"notice":"Get a subnetwork limit setter's role."},"NETWORK_REGISTRY()":{"notice":"Get the network registry's address."},"OPERATOR_NETWORK_LIMIT_SET_ROLE()":{"notice":"Get an operator-subnetwork limit setter's role."},"OPERATOR_NETWORK_OPT_IN_SERVICE()":{"notice":"Get the operator-network opt-in service's address."},"OPERATOR_VAULT_OPT_IN_SERVICE()":{"notice":"Get the operator-vault opt-in service's address."},"TYPE()":{"notice":"Get the entity's type."},"VAULT_FACTORY()":{"notice":"Get the vault factory's address."},"VERSION()":{"notice":"Get a version of the delegator (different versions mean different interfaces)."},"hook()":{"notice":"Get the hook's address."},"initialize(bytes)":{"notice":"Initialize this entity contract by using a given data."},"maxNetworkLimit(bytes32)":{"notice":"Get a particular subnetwork's maximum limit (meaning the subnetwork is not ready to get more as a stake)."},"networkLimit(bytes32)":{"notice":"Get a subnetwork's limit (how much stake the vault curator is ready to give to the subnetwork)."},"networkLimitAt(bytes32,uint48,bytes)":{"notice":"Get a subnetwork's limit at a given timestamp using a hint (how much stake the vault curator is ready to give to the subnetwork)."},"onSlash(bytes32,address,uint256,uint48,bytes)":{"notice":"Called when a slash happens."},"operatorNetworkLimit(bytes32,address)":{"notice":"Get an operator's limit for a subnetwork. (how much stake the vault curator is ready to give to the operator for the subnetwork)"},"operatorNetworkLimitAt(bytes32,address,uint48,bytes)":{"notice":"Get an operator's limit for a subnetwork at a given timestamp using a hint (how much stake the vault curator is ready to give to the operator for the subnetwork)."},"setHook(address)":{"notice":"Set a new hook."},"setMaxNetworkLimit(uint96,uint256)":{"notice":"Set a maximum limit for a subnetwork (how much stake the subnetwork is ready to get). identifier identifier of the subnetwork"},"setNetworkLimit(bytes32,uint256)":{"notice":"Set a subnetwork's limit (how much stake the vault curator is ready to give to the subnetwork)."},"setOperatorNetworkLimit(bytes32,address,uint256)":{"notice":"Set an operator's limit for a subnetwork. (how much stake the vault curator is ready to give to the operator for the subnetwork)"},"stake(bytes32,address)":{"notice":"Get a stake that a given subnetwork will be able to slash for a certain operator until the end of the next epoch (if no cross-slashing and no slashings by the subnetwork)."},"stakeAt(bytes32,address,uint48,bytes)":{"notice":"Get a stake that a given subnetwork could be able to slash for a certain operator at a given timestamp until the end of the consequent epoch using hints (if no cross-slashing and no slashings by the subnetwork)."},"staticDelegateCall(address,bytes)":{"notice":"Make a delegatecall from this contract to a given target contract with a particular data (always reverts with a return data)."},"vault()":{"notice":"Get the vault's address."}},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/contracts/delegator/FullRestakeDelegator.sol":"FullRestakeDelegator"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol":{"keccak256":"0x6662ec4e5cefca03eeadd073e9469df8d2944bb2ee8ec8f7622c2c46aab5f225","urls":["bzz-raw://4d8544c6f8daa4d1bc215c6a72fe0acdb748664a105b0e5efc19295667521d45","dweb:/ipfs/QmdGWqdnXT8S3RgCR6aV8XHZrsybieMQLLnug1NtpSjEXN"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b","urls":["bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609","dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol":{"keccak256":"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397","urls":["bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9","dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardUpgradeable.sol":{"keccak256":"0xb44e086e941292cdc7f440de51478493894ef0b1aeccb0c4047445919f667f74","urls":["bzz-raw://942dad22fbdc1669f025540ba63aa3ccfad5f8458fc5d4525b31ebf272e7af45","dweb:/ipfs/Qmdo4X2M82aM3AMoW2kf2jhYkSCyC4T1pHNd6obdsDFnAB"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol":{"keccak256":"0xdaba3f7c42c55b2896353f32bd27d4d5f8bae741b3b05d4c53f67abc4dc47ce8","urls":["bzz-raw://1fa2e61141c602510bcd2cd936ed9561922ac8772a9b9c9a9db091a74e354a45","dweb:/ipfs/QmcHQDDoEBwJmwUbzoVkytvJsBx3KVHYFFnDkvRGWh9Wmh"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol":{"keccak256":"0xb6b36edd6a2999fd243ff226d6cbf84bd71af2432bbd0dfe19392996a1d9cb41","urls":["bzz-raw://1fd2f35495652e57e3f99bc6c510bc5f7dd398a176ea2e72d8ed730aebc6ca26","dweb:/ipfs/QmTQV6X4gkikTib49cho5iDX3JvSQbdsoEChoDwrk3CbbH"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b","urls":["bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df","dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d","urls":["bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875","dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol":{"keccak256":"0xe19a4d5f31d2861e7344e8e535e2feafb913d806d3e2b5fe7782741a2a7094fe","urls":["bzz-raw://4aed79c0fa6f0546ed02f2f683e8f77f0fd2ed7eb34d8bbf3d373c9a6d95b13c","dweb:/ipfs/QmWqVz6UAVqmnWU5pqYPt1o6iDEZyPaBraAA3rKfTTSfYj"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/Checkpoints.sol":{"keccak256":"0xbdc5e074d7dd6678f67e92b1a51a20226801a407b0e1af3da367c5d1ff4519ad","urls":["bzz-raw://a36cca6b22fff3db16fc789ff6c60eea71d4b156065d4d0c83a0bc5e91a77a8b","dweb:/ipfs/QmYN3exd5AemxjBrN8XMB1p5LbbE16uC3sjbYjwi8AjcGR"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/types/Time.sol":{"keccak256":"0xc7755af115020049e4140f224f9ee88d7e1799ffb0646f37bf0df24bf6213f58","urls":["bzz-raw://7f09bf94d5274334ec021f61a04659db303f31e60460e14b709c9bf187740111","dweb:/ipfs/QmNvgomZYUwFAt4cZbPWAiTeSZQreGehY9BK5xyVJsUttb"],"license":"MIT"},"src/contracts/common/Entity.sol":{"keccak256":"0x3d61a932995b8443381f3950542d388223a2c26dd5d29a3274dea3baa7388bd7","urls":["bzz-raw://7cdf5f03ca72fd263fd32ff59c8d88ddca911ae83896a287d10772c1bbe9b138","dweb:/ipfs/QmbP84r5BWT1Rn9AYTntWSf3xUMTTCohTZJFhbBhDXFoHa"],"license":"BUSL-1.1"},"src/contracts/common/StaticDelegateCallable.sol":{"keccak256":"0x350029aa8955eacaffffaeb58babc5c98e80ebc5c5db388ed17ee6465f4a9d90","urls":["bzz-raw://eb392a8ee9050e0af606897df63e3404e3829e8b688b580663892f9664195764","dweb:/ipfs/QmaXC8jqV8UrrAFkzXTEv2fJF56sy33HhLxAzaRZmUxuXD"],"license":"BUSL-1.1"},"src/contracts/delegator/BaseDelegator.sol":{"keccak256":"0x7c54d491fdd4415b764a9c8defa068e56d4c0c8c9419be0053a1d377669290e8","urls":["bzz-raw://9238bfbad0f6eeb0dc7727724de14380f1980b395902269703d5e2ef07e52e10","dweb:/ipfs/QmPJn1V4HNXcEghYvogGuSTF24dSQUPosR5qtsXcmNqRm3"],"license":"BUSL-1.1"},"src/contracts/delegator/FullRestakeDelegator.sol":{"keccak256":"0x0a81c4f8e72914563a9cb771e93acf889c71ea36b7bec040e4eb562b199d5af1","urls":["bzz-raw://6fc66b6ba02da77046a0bbbd1dd407a62c08f52e04486c9cbd2cb1cca3da555f","dweb:/ipfs/QmZQivK1ZnMxfRQQ5aLpV9co5u55wQVNev5Rg1hzAqxhkE"],"license":"BUSL-1.1"},"src/contracts/libraries/Checkpoints.sol":{"keccak256":"0xba90097c8bfe0a975499428b5f8ac5569483c7d92ccc28c12d70de416aae040c","urls":["bzz-raw://12f5d93ca94cd06d3147db68993165a58e17903ed53682560de61f3085ad4609","dweb:/ipfs/QmePiuAqvXprMLmFZkGZeGjvGPAvsEDHfCDv7BoQhXu9xE"],"license":"MIT"},"src/contracts/libraries/Subnetwork.sol":{"keccak256":"0xf5ef5506fd66082b3c2e7f3df37529f5a8efad32ac62e7c8914bd63219190bfe","urls":["bzz-raw://ba031a54ee0d0e9a270c2b9e18437f5668cfeb659cfd5fe0677459d7fcac2a56","dweb:/ipfs/QmReP3H7qQ78tAfgLnJKsNEQNCQfF1X1Get38Ffd4kzq32"],"license":"MIT"},"src/interfaces/common/IEntity.sol":{"keccak256":"0x8ef4b63d6da63489778ccd5f8d13ebdd527dd4b62730b2c616df5af7474d2d21","urls":["bzz-raw://5a8d69576a9219d85c50816a18ad53a4d53cfcb27ed38b8cccc808dc2734b71b","dweb:/ipfs/QmYVN3P4Q4REvBWJ97TbAcaxm3uyB2anV6NSGa6ZtSwcEv"],"license":"MIT"},"src/interfaces/common/IMigratableEntity.sol":{"keccak256":"0x8f5f2809f3afbe8ebfbb365dd7b57b4dd3b6f9943a6187eaf648d45895b8e3c4","urls":["bzz-raw://0ffe640537d539e7a4fde70d30d3e4c57f4ba9c2c25c450cea713aae38e8fd5c","dweb:/ipfs/QmSUTGzvdcn1R1KB7tLThMRtESsfPbeXDhhhKWGtntzBds"],"license":"MIT"},"src/interfaces/common/IRegistry.sol":{"keccak256":"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb","urls":["bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014","dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK"],"license":"MIT"},"src/interfaces/common/IStaticDelegateCallable.sol":{"keccak256":"0xa335d4e81b9071b7de66ef92b43ff20671d86516eb1be46fef29a3483cd3f5d5","urls":["bzz-raw://d464b9db863c14c05547d2b23352f2e9b7b784799cf09f6bbc4906a2a74e3516","dweb:/ipfs/QmUVWzFvJz7eEbDQKiFTTzwi7TEbjcs3VmwdM4kuptAKvi"],"license":"MIT"},"src/interfaces/delegator/IBaseDelegator.sol":{"keccak256":"0x96bb312f032e17accce3f8f80936d99468029d6b37c9ca74acdb4b026a0148ee","urls":["bzz-raw://2a66dcb5b7d1a6ef6a363431ea98ebd78bc4fdd3d7a134d9b542dc66e7d025c2","dweb:/ipfs/QmRhTPLd2ZAyRHmJUFUcWKs9b3if49QY17LYZuRqWmghw8"],"license":"MIT"},"src/interfaces/delegator/IDelegatorHook.sol":{"keccak256":"0xc51aa8d7d1f6c8043ee819b7aeb86da0e993912e1442098df897e299f01f9f46","urls":["bzz-raw://adddf5cb2ba282aeb576b26efb28640f865a1721cc9b6eee8b3ee0457a2c9780","dweb:/ipfs/QmNYgAmnLRwWZbhTuQhZs9rx4zcme1df5mEepkrniorSoW"],"license":"MIT"},"src/interfaces/delegator/IFullRestakeDelegator.sol":{"keccak256":"0xa3c8cb2e45d4d8ce90e95263bea40c01dc400f05ad65bc29597d878606be5e7d","urls":["bzz-raw://782cf5e201aa4cca037ebafd3807a68ff1cc721d5b8416a35244db0d0607369e","dweb:/ipfs/QmQkJks6x7CKndeTPa9LxgTNygD5uEi7obhADhpq1Lsr9A"],"license":"MIT"},"src/interfaces/service/IOptInService.sol":{"keccak256":"0x76fb5460a6d87a5705433d4fbeff7253cd75b8bbd0c888b2088f16e86ace146a","urls":["bzz-raw://990322019b3d11465f7024bae77ccbf7e2fe5d6fa3c754584778f37d04fa1337","dweb:/ipfs/QmaSNHzcqxTkUCG9a4nqVfLECHLdjdrwAnDi3yDC7tDL24"],"license":"MIT"},"src/interfaces/vault/IVault.sol":{"keccak256":"0xffee01d383cd4e1a5530c614bf4360c1ef070c288abec9da1eb531b51bc07235","urls":["bzz-raw://04f0046cac285d8ec44ebbb1f79dc94fab4495767190cad8364fbc1fafaadfb9","dweb:/ipfs/QmUawAunwzXfCyShWfhKeThAgKtqe51hmrxvrXvM772M2R"],"license":"MIT"},"src/interfaces/vault/IVaultStorage.sol":{"keccak256":"0x592626f13754194f83047135de19229c49390bd59e34659b1bb38be71d973a22","urls":["bzz-raw://06a6a9dfddd05e580b32bebe2cff4f63ba26a653180676d58225dd30d9c89d3e","dweb:/ipfs/QmdgzBeY6Sxo8mGtyBxtv1tM1c2kU6J6zjeRd7vuXm4DU6"],"license":"MIT"}},"version":1},"id":77} \ No newline at end of file diff --git a/out/MetadataService.sol/MetadataService.json b/out/MetadataService.sol/MetadataService.json index 3a88ea29..8cf03c99 100644 --- a/out/MetadataService.sol/MetadataService.json +++ b/out/MetadataService.sol/MetadataService.json @@ -1 +1 @@ -{"abi":[{"type":"constructor","inputs":[{"name":"registry","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"REGISTRY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"metadataURL","inputs":[{"name":"entity","type":"address","internalType":"address"}],"outputs":[{"name":"value","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"setMetadataURL","inputs":[{"name":"metadataURL_","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"SetMetadataURL","inputs":[{"name":"entity","type":"address","indexed":true,"internalType":"address"},{"name":"metadataURL","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"error","name":"AlreadySet","inputs":[]},{"type":"error","name":"NotEntity","inputs":[]}],"bytecode":{"object":"0x60a034606c57601f61058b38819003918201601f19168301916001600160401b03831184841017607057808492602094604052833981010312606c57516001600160a01b0381168103606c576080526040516105069081610085823960805181818160a501526103910152f35b5f80fd5b634e487b7160e01b5f52604160045260245ffdfe608060409080825260049081361015610016575f80fd5b5f3560e01c90816306433b1b1461037f575080634edb8f391461031a5763747daec514610041575f80fd5b34610305576020806003193601126103055781359267ffffffffffffffff808511610305573660238601121561030557848401359081116103055760249485810190368784830101116103055783516302910f8b60e31b81523387820152858189817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa908115610310575f916102d6575b50156102c657335f525f85526100f4845f2061042e565b95601f840191601f19918284169887516101108a8c01826103f8565b87815289810190888883375f8b8a8301015282519051908b82821494856102b5575b50505050506102a75750335f525f8752855f209261015084546103c0565b90601f821161026c575b50505f91601f86116001146101dc5750928492837ff8dac27f20d622a0759394313683066cb713a406633a3a7dde8799654015ea64999a5f9794899789936101cf575b5050508360011b9087198560031b1c19161790555b8184519780895288015283870137840101528133948101030190a2005b01013590505f808061019d565b859991991691835f52875f20925f5b8181106102535750927ff8dac27f20d622a0759394313683066cb713a406633a3a7dde8799654015ea64999a889693889693875f9a9710610238575b50505050600183811b0190556101b2565b891960f88860031b161c19920101351690555f808080610227565b91938960018192868f89010135815501950192016101eb565b845f52885f209060051c81019189881061029d575b601f0160051c01905b8181101561015a575f815560010161028a565b9091508190610281565b865163a741a04560e01b8152fd5b012091201490505f80808b81610132565b835163184849cf60e01b81528690fd5b90508581813d8311610309575b6102ed81836103f8565b8101031261030557518015158103610305575f6100dd565b5f80fd5b503d6102e3565b85513d5f823e3d90fd5b503461030557602036600319011261030557356001600160a01b0381169190829003610305576020915f525f8252610353815f2061042e565b815192839181835280519182918282860152018484015e5f828201840152601f01601f19168101030190f35b34610305575f366003190112610305577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b90600182811c921680156103ee575b60208310146103da57565b634e487b7160e01b5f52602260045260245ffd5b91607f16916103cf565b90601f8019910116810190811067ffffffffffffffff82111761041a57604052565b634e487b7160e01b5f52604160045260245ffd5b9060405191825f8254610440816103c0565b908184526020946001916001811690815f146104ae5750600114610470575b50505061046e925003836103f8565b565b5f90815285812095935091905b81831061049657505061046e93508201015f808061045f565b8554888401850152948501948794509183019161047d565b9250505061046e94925060ff191682840152151560051b8201015f808061045f56fea2646970667358221220f4bc091bd988455bdb09ec457ffd06e9cb593557a0d80a0aa1a63dd679ee71b764736f6c63430008190033","sourceMap":"276:822:94:-:0;;;;;;;;;;;;;-1:-1:-1;;276:822:94;;;;-1:-1:-1;;;;;276:822:94;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;276:822:94;;;;;;621:19;;276:822;;;;;;;;621:19;276:822;;;;;;;;;;;;-1:-1:-1;276:822:94;;;;;;-1:-1:-1;276:822:94;;;;;-1:-1:-1;276:822:94","linkReferences":{}},"deployedBytecode":{"object":"0x608060409080825260049081361015610016575f80fd5b5f3560e01c90816306433b1b1461037f575080634edb8f391461031a5763747daec514610041575f80fd5b34610305576020806003193601126103055781359267ffffffffffffffff808511610305573660238601121561030557848401359081116103055760249485810190368784830101116103055783516302910f8b60e31b81523387820152858189817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa908115610310575f916102d6575b50156102c657335f525f85526100f4845f2061042e565b95601f840191601f19918284169887516101108a8c01826103f8565b87815289810190888883375f8b8a8301015282519051908b82821494856102b5575b50505050506102a75750335f525f8752855f209261015084546103c0565b90601f821161026c575b50505f91601f86116001146101dc5750928492837ff8dac27f20d622a0759394313683066cb713a406633a3a7dde8799654015ea64999a5f9794899789936101cf575b5050508360011b9087198560031b1c19161790555b8184519780895288015283870137840101528133948101030190a2005b01013590505f808061019d565b859991991691835f52875f20925f5b8181106102535750927ff8dac27f20d622a0759394313683066cb713a406633a3a7dde8799654015ea64999a889693889693875f9a9710610238575b50505050600183811b0190556101b2565b891960f88860031b161c19920101351690555f808080610227565b91938960018192868f89010135815501950192016101eb565b845f52885f209060051c81019189881061029d575b601f0160051c01905b8181101561015a575f815560010161028a565b9091508190610281565b865163a741a04560e01b8152fd5b012091201490505f80808b81610132565b835163184849cf60e01b81528690fd5b90508581813d8311610309575b6102ed81836103f8565b8101031261030557518015158103610305575f6100dd565b5f80fd5b503d6102e3565b85513d5f823e3d90fd5b503461030557602036600319011261030557356001600160a01b0381169190829003610305576020915f525f8252610353815f2061042e565b815192839181835280519182918282860152018484015e5f828201840152601f01601f19168101030190f35b34610305575f366003190112610305577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b90600182811c921680156103ee575b60208310146103da57565b634e487b7160e01b5f52602260045260245ffd5b91607f16916103cf565b90601f8019910116810190811067ffffffffffffffff82111761041a57604052565b634e487b7160e01b5f52604160045260245ffd5b9060405191825f8254610440816103c0565b908184526020946001916001811690815f146104ae5750600114610470575b50505061046e925003836103f8565b565b5f90815285812095935091905b81831061049657505061046e93508201015f808061045f565b8554888401850152948501948794509183019161047d565b9250505061046e94925060ff191682840152151560051b8201015f808061045f56fea2646970667358221220f4bc091bd988455bdb09ec457ffd06e9cb593557a0d80a0aa1a63dd679ee71b764736f6c63430008190033","sourceMap":"276:822:94:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;797:40:94;;826:10;797:40;;;276:822;;;;;807:8;-1:-1:-1;;;;;276:822:94;797:40;;;;;;;276:822;797:40;;;276:822;796:41;;792:90;;826:10;276:822;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;3009:34:51;;;;;:80;;;;276:822:94;892:93;;;;;;;826:10;;276:822;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;1049:40;276:822;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;826:10;;276:822;;;1049:40;;;;276:822;;;;;;-1:-1:-1;276:822:94;;;;;;;;;;;;;;;;;;;;;;;;;;;;1049:40;276:822;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;276:822:94;;;;892:93;276:822;;-1:-1:-1;;;962:12:94;;;3009:80:51;276:822:94;3047:19:51;3070;;3047:42;;-1:-1:-1;3009:80:51;;;;;;;792:90:94;276:822;;-1:-1:-1;;;860:11:94;;276:822;;860:11;797:40;;;;;;;;;;;;;;;;:::i;:::-;;;276:822;;;;;;;;;;;;797:40;;;276:822;;;;797:40;;;;;;276:822;;;;;;;;;;;;;;;;-1:-1:-1;;276:822:94;;;;;-1:-1:-1;;;;;276:822:94;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;276:822:94;;;;;;;;;;;;;-1:-1:-1;;276:822:94;;;;410:33;-1:-1:-1;;;;;276:822:94;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;-1:-1:-1;276:822:94;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:::o;:::-;-1:-1:-1;276:822:94;;;;;;;;-1:-1:-1;;276:822:94;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;276:822:94;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","linkReferences":{},"immutableReferences":{"71682":[{"start":165,"length":32},{"start":913,"length":32}]}},"methodIdentifiers":{"REGISTRY()":"06433b1b","metadataURL(address)":"4edb8f39","setMetadataURL(string)":"747daec5"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"registry\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"AlreadySet\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotEntity\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"entity\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"metadataURL\",\"type\":\"string\"}],\"name\":\"SetMetadataURL\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"REGISTRY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"entity\",\"type\":\"address\"}],\"name\":\"metadataURL\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"value\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"metadataURL_\",\"type\":\"string\"}],\"name\":\"setMetadataURL\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"events\":{\"SetMetadataURL(address,string)\":{\"params\":{\"entity\":\"address of the entity\",\"metadataURL\":\"new metadata URL of the entity\"}}},\"kind\":\"dev\",\"methods\":{\"setMetadataURL(string)\":{\"params\":{\"metadataURL\":\"new metadata URL of the entity\"}}},\"stateVariables\":{\"REGISTRY\":{\"return\":\"address of the registry\",\"returns\":{\"_0\":\"address of the registry\"}},\"metadataURL\":{\"params\":{\"entity\":\"address of the entity\"},\"return\":\"value metadata URL of the entity\",\"returns\":{\"value\":\"metadata URL of the entity\"}}},\"version\":1},\"userdoc\":{\"events\":{\"SetMetadataURL(address,string)\":{\"notice\":\"Emitted when a metadata URL is set for an entity.\"}},\"kind\":\"user\",\"methods\":{\"REGISTRY()\":{\"notice\":\"Get the registry's address.\"},\"metadataURL(address)\":{\"notice\":\"Get a URL with an entity's metadata.\"},\"setMetadataURL(string)\":{\"notice\":\"Set a new metadata URL for a calling entity.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/contracts/service/MetadataService.sol\":\"MetadataService\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0x55f102ea785d8399c0e58d1108e2d289506dde18abc6db1b7f68c1f9f9bc5792\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e52e0a7765c943ef14e5bcf11e46e6139fa044be564881378349236bf2e3453\",\"dweb:/ipfs/QmZEeeXoFPW47amyP35gfzomF9DixqqTEPwzBakv6cZw6i\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875\",\"dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x5f7e4076e175393767754387c962926577f1660dd9b810187b9002407656be72\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7d533a1c97cd43a57cd9c465f7ee8dd0e39ae93a8fb8ff8e5303a356b081cdcc\",\"dweb:/ipfs/QmVBEei6aTnvYNZp2CHYVNKyZS4q1KkjANfY39WVXZXVoT\"]},\"src/contracts/service/MetadataService.sol\":{\"keccak256\":\"0x0c6867f020aea3c5536de919032a286c701fce7ec2069935922c33595c3fbb7b\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://5f1e26b31957977e6e9ba3d81b8dcd478989ac3317f61e3c197e152db971ae39\",\"dweb:/ipfs/QmbN2rtWtzPsoBqjXR8B4RmcuDkh3kaZyjL4VMq6RibkvX\"]},\"src/interfaces/common/IRegistry.sol\":{\"keccak256\":\"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014\",\"dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK\"]},\"src/interfaces/service/IMetadataService.sol\":{\"keccak256\":\"0xadc4d573ffbacb9b81ae8bfbfe0bb709a90aa3c98e62a0106cb10abb2253e394\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bc2051cce94b6df7612b44061b3da656e3af473b3032384895ff6ec3a3dd86bd\",\"dweb:/ipfs/QmaJr5pU56eVfZNiL44dpXfb5Ze2HNiTXXMTSHsU4QBF3t\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.25+commit.b61c2a91"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"registry","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"AlreadySet"},{"inputs":[],"type":"error","name":"NotEntity"},{"inputs":[{"internalType":"address","name":"entity","type":"address","indexed":true},{"internalType":"string","name":"metadataURL","type":"string","indexed":false}],"type":"event","name":"SetMetadataURL","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"REGISTRY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"entity","type":"address"}],"stateMutability":"view","type":"function","name":"metadataURL","outputs":[{"internalType":"string","name":"value","type":"string"}]},{"inputs":[{"internalType":"string","name":"metadataURL_","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"setMetadataURL"}],"devdoc":{"kind":"dev","methods":{"setMetadataURL(string)":{"params":{"metadataURL":"new metadata URL of the entity"}}},"version":1},"userdoc":{"kind":"user","methods":{"REGISTRY()":{"notice":"Get the registry's address."},"metadataURL(address)":{"notice":"Get a URL with an entity's metadata."},"setMetadataURL(string)":{"notice":"Set a new metadata URL for a calling entity."}},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/contracts/service/MetadataService.sol":"MetadataService"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0x55f102ea785d8399c0e58d1108e2d289506dde18abc6db1b7f68c1f9f9bc5792","urls":["bzz-raw://6e52e0a7765c943ef14e5bcf11e46e6139fa044be564881378349236bf2e3453","dweb:/ipfs/QmZEeeXoFPW47amyP35gfzomF9DixqqTEPwzBakv6cZw6i"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d","urls":["bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875","dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0x5f7e4076e175393767754387c962926577f1660dd9b810187b9002407656be72","urls":["bzz-raw://7d533a1c97cd43a57cd9c465f7ee8dd0e39ae93a8fb8ff8e5303a356b081cdcc","dweb:/ipfs/QmVBEei6aTnvYNZp2CHYVNKyZS4q1KkjANfY39WVXZXVoT"],"license":"MIT"},"src/contracts/service/MetadataService.sol":{"keccak256":"0x0c6867f020aea3c5536de919032a286c701fce7ec2069935922c33595c3fbb7b","urls":["bzz-raw://5f1e26b31957977e6e9ba3d81b8dcd478989ac3317f61e3c197e152db971ae39","dweb:/ipfs/QmbN2rtWtzPsoBqjXR8B4RmcuDkh3kaZyjL4VMq6RibkvX"],"license":"BUSL-1.1"},"src/interfaces/common/IRegistry.sol":{"keccak256":"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb","urls":["bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014","dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK"],"license":"MIT"},"src/interfaces/service/IMetadataService.sol":{"keccak256":"0xadc4d573ffbacb9b81ae8bfbfe0bb709a90aa3c98e62a0106cb10abb2253e394","urls":["bzz-raw://bc2051cce94b6df7612b44061b3da656e3af473b3032384895ff6ec3a3dd86bd","dweb:/ipfs/QmaJr5pU56eVfZNiL44dpXfb5Ze2HNiTXXMTSHsU4QBF3t"],"license":"MIT"}},"version":1},"id":94} \ No newline at end of file +{"abi":[{"type":"constructor","inputs":[{"name":"registry","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"REGISTRY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"metadataURL","inputs":[{"name":"entity","type":"address","internalType":"address"}],"outputs":[{"name":"value","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"setMetadataURL","inputs":[{"name":"metadataURL_","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"SetMetadataURL","inputs":[{"name":"entity","type":"address","indexed":true,"internalType":"address"},{"name":"metadataURL","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"error","name":"AlreadySet","inputs":[]},{"type":"error","name":"NotEntity","inputs":[]}],"bytecode":{"object":"0x60a034606c57601f61058b38819003918201601f19168301916001600160401b03831184841017607057808492602094604052833981010312606c57516001600160a01b0381168103606c576080526040516105069081610085823960805181818160a501526103910152f35b5f80fd5b634e487b7160e01b5f52604160045260245ffdfe608060409080825260049081361015610016575f80fd5b5f3560e01c90816306433b1b1461037f575080634edb8f391461031a5763747daec514610041575f80fd5b34610305576020806003193601126103055781359267ffffffffffffffff808511610305573660238601121561030557848401359081116103055760249485810190368784830101116103055783516302910f8b60e31b81523387820152858189817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa908115610310575f916102d6575b50156102c657335f525f85526100f4845f2061042e565b95601f840191601f19918284169887516101108a8c01826103f8565b87815289810190888883375f8b8a8301015282519051908b82821494856102b5575b50505050506102a75750335f525f8752855f209261015084546103c0565b90601f821161026c575b50505f91601f86116001146101dc5750928492837ff8dac27f20d622a0759394313683066cb713a406633a3a7dde8799654015ea64999a5f9794899789936101cf575b5050508360011b9087198560031b1c19161790555b8184519780895288015283870137840101528133948101030190a2005b01013590505f808061019d565b859991991691835f52875f20925f5b8181106102535750927ff8dac27f20d622a0759394313683066cb713a406633a3a7dde8799654015ea64999a889693889693875f9a9710610238575b50505050600183811b0190556101b2565b891960f88860031b161c19920101351690555f808080610227565b91938960018192868f89010135815501950192016101eb565b845f52885f209060051c81019189881061029d575b601f0160051c01905b8181101561015a575f815560010161028a565b9091508190610281565b865163a741a04560e01b8152fd5b012091201490505f80808b81610132565b835163184849cf60e01b81528690fd5b90508581813d8311610309575b6102ed81836103f8565b8101031261030557518015158103610305575f6100dd565b5f80fd5b503d6102e3565b85513d5f823e3d90fd5b503461030557602036600319011261030557356001600160a01b0381169190829003610305576020915f525f8252610353815f2061042e565b815192839181835280519182918282860152018484015e5f828201840152601f01601f19168101030190f35b34610305575f366003190112610305577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b90600182811c921680156103ee575b60208310146103da57565b634e487b7160e01b5f52602260045260245ffd5b91607f16916103cf565b90601f8019910116810190811067ffffffffffffffff82111761041a57604052565b634e487b7160e01b5f52604160045260245ffd5b9060405191825f8254610440816103c0565b908184526020946001916001811690815f146104ae5750600114610470575b50505061046e925003836103f8565b565b5f90815285812095935091905b81831061049657505061046e93508201015f808061045f565b8554888401850152948501948794509183019161047d565b9250505061046e94925060ff191682840152151560051b8201015f808061045f56fea2646970667358221220b3f8fcdf85ffa9ec7d50bd86823cb074384a705df32dfa8a52117fc6e9ab1b4964736f6c63430008190033","sourceMap":"276:822:89:-:0;;;;;;;;;;;;;-1:-1:-1;;276:822:89;;;;-1:-1:-1;;;;;276:822:89;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;276:822:89;;;;;;621:19;;276:822;;;;;;;;621:19;276:822;;;;;;;;;;;;-1:-1:-1;276:822:89;;;;;;-1:-1:-1;276:822:89;;;;;-1:-1:-1;276:822:89","linkReferences":{}},"deployedBytecode":{"object":"0x608060409080825260049081361015610016575f80fd5b5f3560e01c90816306433b1b1461037f575080634edb8f391461031a5763747daec514610041575f80fd5b34610305576020806003193601126103055781359267ffffffffffffffff808511610305573660238601121561030557848401359081116103055760249485810190368784830101116103055783516302910f8b60e31b81523387820152858189817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa908115610310575f916102d6575b50156102c657335f525f85526100f4845f2061042e565b95601f840191601f19918284169887516101108a8c01826103f8565b87815289810190888883375f8b8a8301015282519051908b82821494856102b5575b50505050506102a75750335f525f8752855f209261015084546103c0565b90601f821161026c575b50505f91601f86116001146101dc5750928492837ff8dac27f20d622a0759394313683066cb713a406633a3a7dde8799654015ea64999a5f9794899789936101cf575b5050508360011b9087198560031b1c19161790555b8184519780895288015283870137840101528133948101030190a2005b01013590505f808061019d565b859991991691835f52875f20925f5b8181106102535750927ff8dac27f20d622a0759394313683066cb713a406633a3a7dde8799654015ea64999a889693889693875f9a9710610238575b50505050600183811b0190556101b2565b891960f88860031b161c19920101351690555f808080610227565b91938960018192868f89010135815501950192016101eb565b845f52885f209060051c81019189881061029d575b601f0160051c01905b8181101561015a575f815560010161028a565b9091508190610281565b865163a741a04560e01b8152fd5b012091201490505f80808b81610132565b835163184849cf60e01b81528690fd5b90508581813d8311610309575b6102ed81836103f8565b8101031261030557518015158103610305575f6100dd565b5f80fd5b503d6102e3565b85513d5f823e3d90fd5b503461030557602036600319011261030557356001600160a01b0381169190829003610305576020915f525f8252610353815f2061042e565b815192839181835280519182918282860152018484015e5f828201840152601f01601f19168101030190f35b34610305575f366003190112610305577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b90600182811c921680156103ee575b60208310146103da57565b634e487b7160e01b5f52602260045260245ffd5b91607f16916103cf565b90601f8019910116810190811067ffffffffffffffff82111761041a57604052565b634e487b7160e01b5f52604160045260245ffd5b9060405191825f8254610440816103c0565b908184526020946001916001811690815f146104ae5750600114610470575b50505061046e925003836103f8565b565b5f90815285812095935091905b81831061049657505061046e93508201015f808061045f565b8554888401850152948501948794509183019161047d565b9250505061046e94925060ff191682840152151560051b8201015f808061045f56fea2646970667358221220b3f8fcdf85ffa9ec7d50bd86823cb074384a705df32dfa8a52117fc6e9ab1b4964736f6c63430008190033","sourceMap":"276:822:89:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;797:40:89;;826:10;797:40;;;276:822;;;;;807:8;-1:-1:-1;;;;;276:822:89;797:40;;;;;;;276:822;797:40;;;276:822;796:41;;792:90;;826:10;276:822;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;3009:34:50;;;;;:80;;;;276:822:89;892:93;;;;;;;826:10;;276:822;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;1049:40;276:822;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;826:10;;276:822;;;1049:40;;;;276:822;;;;;;-1:-1:-1;276:822:89;;;;;;;;;;;;;;;;;;;;;;;;;;;;1049:40;276:822;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;276:822:89;;;;892:93;276:822;;-1:-1:-1;;;962:12:89;;;3009:80:50;276:822:89;3047:19:50;3070;;3047:42;;-1:-1:-1;3009:80:50;;;;;;;792:90:89;276:822;;-1:-1:-1;;;860:11:89;;276:822;;860:11;797:40;;;;;;;;;;;;;;;;:::i;:::-;;;276:822;;;;;;;;;;;;797:40;;;276:822;;;;797:40;;;;;;276:822;;;;;;;;;;;;;;;;-1:-1:-1;;276:822:89;;;;;-1:-1:-1;;;;;276:822:89;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;276:822:89;;;;;;;;;;;;;-1:-1:-1;;276:822:89;;;;410:33;-1:-1:-1;;;;;276:822:89;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;-1:-1:-1;276:822:89;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:::o;:::-;-1:-1:-1;276:822:89;;;;;;;;-1:-1:-1;;276:822:89;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;276:822:89;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","linkReferences":{},"immutableReferences":{"64970":[{"start":165,"length":32},{"start":913,"length":32}]}},"methodIdentifiers":{"REGISTRY()":"06433b1b","metadataURL(address)":"4edb8f39","setMetadataURL(string)":"747daec5"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"registry\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"AlreadySet\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotEntity\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"entity\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"metadataURL\",\"type\":\"string\"}],\"name\":\"SetMetadataURL\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"REGISTRY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"entity\",\"type\":\"address\"}],\"name\":\"metadataURL\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"value\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"metadataURL_\",\"type\":\"string\"}],\"name\":\"setMetadataURL\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"events\":{\"SetMetadataURL(address,string)\":{\"params\":{\"entity\":\"address of the entity\",\"metadataURL\":\"new metadata URL of the entity\"}}},\"kind\":\"dev\",\"methods\":{\"setMetadataURL(string)\":{\"params\":{\"metadataURL\":\"new metadata URL of the entity\"}}},\"stateVariables\":{\"REGISTRY\":{\"return\":\"address of the registry\",\"returns\":{\"_0\":\"address of the registry\"}},\"metadataURL\":{\"params\":{\"entity\":\"address of the entity\"},\"return\":\"value metadata URL of the entity\",\"returns\":{\"value\":\"metadata URL of the entity\"}}},\"version\":1},\"userdoc\":{\"events\":{\"SetMetadataURL(address,string)\":{\"notice\":\"Emitted when a metadata URL is set for an entity.\"}},\"kind\":\"user\",\"methods\":{\"REGISTRY()\":{\"notice\":\"Get the registry's address.\"},\"metadataURL(address)\":{\"notice\":\"Get a URL with an entity's metadata.\"},\"setMetadataURL(string)\":{\"notice\":\"Set a new metadata URL for a calling entity.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/contracts/service/MetadataService.sol\":\"MetadataService\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0x55f102ea785d8399c0e58d1108e2d289506dde18abc6db1b7f68c1f9f9bc5792\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e52e0a7765c943ef14e5bcf11e46e6139fa044be564881378349236bf2e3453\",\"dweb:/ipfs/QmZEeeXoFPW47amyP35gfzomF9DixqqTEPwzBakv6cZw6i\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875\",\"dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x5f7e4076e175393767754387c962926577f1660dd9b810187b9002407656be72\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7d533a1c97cd43a57cd9c465f7ee8dd0e39ae93a8fb8ff8e5303a356b081cdcc\",\"dweb:/ipfs/QmVBEei6aTnvYNZp2CHYVNKyZS4q1KkjANfY39WVXZXVoT\"]},\"src/contracts/service/MetadataService.sol\":{\"keccak256\":\"0x0c6867f020aea3c5536de919032a286c701fce7ec2069935922c33595c3fbb7b\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://5f1e26b31957977e6e9ba3d81b8dcd478989ac3317f61e3c197e152db971ae39\",\"dweb:/ipfs/QmbN2rtWtzPsoBqjXR8B4RmcuDkh3kaZyjL4VMq6RibkvX\"]},\"src/interfaces/common/IRegistry.sol\":{\"keccak256\":\"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014\",\"dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK\"]},\"src/interfaces/service/IMetadataService.sol\":{\"keccak256\":\"0xadc4d573ffbacb9b81ae8bfbfe0bb709a90aa3c98e62a0106cb10abb2253e394\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bc2051cce94b6df7612b44061b3da656e3af473b3032384895ff6ec3a3dd86bd\",\"dweb:/ipfs/QmaJr5pU56eVfZNiL44dpXfb5Ze2HNiTXXMTSHsU4QBF3t\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.25+commit.b61c2a91"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"registry","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"AlreadySet"},{"inputs":[],"type":"error","name":"NotEntity"},{"inputs":[{"internalType":"address","name":"entity","type":"address","indexed":true},{"internalType":"string","name":"metadataURL","type":"string","indexed":false}],"type":"event","name":"SetMetadataURL","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"REGISTRY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"entity","type":"address"}],"stateMutability":"view","type":"function","name":"metadataURL","outputs":[{"internalType":"string","name":"value","type":"string"}]},{"inputs":[{"internalType":"string","name":"metadataURL_","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"setMetadataURL"}],"devdoc":{"kind":"dev","methods":{"setMetadataURL(string)":{"params":{"metadataURL":"new metadata URL of the entity"}}},"version":1},"userdoc":{"kind":"user","methods":{"REGISTRY()":{"notice":"Get the registry's address."},"metadataURL(address)":{"notice":"Get a URL with an entity's metadata."},"setMetadataURL(string)":{"notice":"Set a new metadata URL for a calling entity."}},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/contracts/service/MetadataService.sol":"MetadataService"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0x55f102ea785d8399c0e58d1108e2d289506dde18abc6db1b7f68c1f9f9bc5792","urls":["bzz-raw://6e52e0a7765c943ef14e5bcf11e46e6139fa044be564881378349236bf2e3453","dweb:/ipfs/QmZEeeXoFPW47amyP35gfzomF9DixqqTEPwzBakv6cZw6i"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d","urls":["bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875","dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0x5f7e4076e175393767754387c962926577f1660dd9b810187b9002407656be72","urls":["bzz-raw://7d533a1c97cd43a57cd9c465f7ee8dd0e39ae93a8fb8ff8e5303a356b081cdcc","dweb:/ipfs/QmVBEei6aTnvYNZp2CHYVNKyZS4q1KkjANfY39WVXZXVoT"],"license":"MIT"},"src/contracts/service/MetadataService.sol":{"keccak256":"0x0c6867f020aea3c5536de919032a286c701fce7ec2069935922c33595c3fbb7b","urls":["bzz-raw://5f1e26b31957977e6e9ba3d81b8dcd478989ac3317f61e3c197e152db971ae39","dweb:/ipfs/QmbN2rtWtzPsoBqjXR8B4RmcuDkh3kaZyjL4VMq6RibkvX"],"license":"BUSL-1.1"},"src/interfaces/common/IRegistry.sol":{"keccak256":"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb","urls":["bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014","dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK"],"license":"MIT"},"src/interfaces/service/IMetadataService.sol":{"keccak256":"0xadc4d573ffbacb9b81ae8bfbfe0bb709a90aa3c98e62a0106cb10abb2253e394","urls":["bzz-raw://bc2051cce94b6df7612b44061b3da656e3af473b3032384895ff6ec3a3dd86bd","dweb:/ipfs/QmaJr5pU56eVfZNiL44dpXfb5Ze2HNiTXXMTSHsU4QBF3t"],"license":"MIT"}},"version":1},"id":89} \ No newline at end of file diff --git a/out/NetworkMiddlewareService.sol/NetworkMiddlewareService.json b/out/NetworkMiddlewareService.sol/NetworkMiddlewareService.json index 773addc9..919728bc 100644 --- a/out/NetworkMiddlewareService.sol/NetworkMiddlewareService.json +++ b/out/NetworkMiddlewareService.sol/NetworkMiddlewareService.json @@ -1 +1 @@ -{"abi":[{"type":"constructor","inputs":[{"name":"networkRegistry","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"NETWORK_REGISTRY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"middleware","inputs":[{"name":"network","type":"address","internalType":"address"}],"outputs":[{"name":"value","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"setMiddleware","inputs":[{"name":"middleware_","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"SetMiddleware","inputs":[{"name":"network","type":"address","indexed":true,"internalType":"address"},{"name":"middleware","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"error","name":"AlreadySet","inputs":[]},{"type":"error","name":"NotNetwork","inputs":[]}],"bytecode":{"object":"0x60a034606c57601f6102dc38819003918201601f19168301916001600160401b03831184841017607057808492602094604052833981010312606c57516001600160a01b0381168103606c5760805260405161025790816100858239608051818181605401526101030152f35b5f80fd5b634e487b7160e01b5f52604160045260245ffdfe6080604090808252600480361015610015575f80fd5b5f3560e01c918263b7d8e1a9146100c357508163bb5ed03214610087575063c0cd7c3e14610041575f80fd5b34610083575f36600319011261008357517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b5f80fd5b90503461008357602036600319011261008357356001600160a01b038181169291839003610083576020925f525f8352815f2054169051908152f35b83346100835760209081600319360112610083576001600160a01b0384358181169490859003610083576302910f8b60e31b8152338682015283816024817f000000000000000000000000000000000000000000000000000000000000000086165afa908115610217575f916101b7575b50156101a7578390335f525f8452825f2054161461019857907ff64e2a8734392e221de13f5e56deb22d308e292cad394052affa97dbaf41ec9891335f525f8252805f20846bffffffffffffffffffffffff60a01b825416179055519283523392a2005b5163a741a04560e01b81528390fd5b81516323d53b9760e21b81528590fd5b9050833d8511610210575b601f8101601f1916820167ffffffffffffffff8111838210176101fd5785918391865281010312610083575180151581036100835786610134565b604188634e487b7160e01b5f525260245ffd5b503d6101c2565b83513d5f823e3d90fdfea2646970667358221220edefbf25e21854c550c2299b8ff4a53611aa3ce64b16ba939ee5df729cf4591564736f6c63430008190033","sourceMap":"226:856:95:-:0;;;;;;;;;;;;;-1:-1:-1;;226:856:95;;;;-1:-1:-1;;;;;226:856:95;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;226:856:95;;;;;;592:34;;226:856;;;;;;;;592:34;226:856;;;;;;;;;;;;-1:-1:-1;226:856:95;;;;;;-1:-1:-1;226:856:95;;;;;-1:-1:-1;226:856:95","linkReferences":{}},"deployedBytecode":{"object":"0x6080604090808252600480361015610015575f80fd5b5f3560e01c918263b7d8e1a9146100c357508163bb5ed03214610087575063c0cd7c3e14610041575f80fd5b34610083575f36600319011261008357517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b5f80fd5b90503461008357602036600319011261008357356001600160a01b038181169291839003610083576020925f525f8352815f2054169051908152f35b83346100835760209081600319360112610083576001600160a01b0384358181169490859003610083576302910f8b60e31b8152338682015283816024817f000000000000000000000000000000000000000000000000000000000000000086165afa908115610217575f916101b7575b50156101a7578390335f525f8452825f2054161461019857907ff64e2a8734392e221de13f5e56deb22d308e292cad394052affa97dbaf41ec9891335f525f8252805f20846bffffffffffffffffffffffff60a01b825416179055519283523392a2005b5163a741a04560e01b81528390fd5b81516323d53b9760e21b81528590fd5b9050833d8511610210575b601f8101601f1916820167ffffffffffffffff8111838210176101fd5785918391865281010312610083575180151581036100835786610134565b604188634e487b7160e01b5f525260245ffd5b503d6101c2565b83513d5f823e3d90fdfea2646970667358221220edefbf25e21854c550c2299b8ff4a53611aa3ce64b16ba939ee5df729cf4591564736f6c63430008190033","sourceMap":"226:856:95:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;226:856:95;;;;;356:41;-1:-1:-1;;;;;226:856:95;;;;;;;;;;;;;;;;;;-1:-1:-1;;226:856:95;;;;;-1:-1:-1;;;;;226:856:95;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;226:856:95;;;;;;;;;;;;-1:-1:-1;;;782:48:95;;819:10;782:48;;;226:856;792:16;782:48;226:856;782:48;792:16;226:856;;782:48;;;;;;;226:856;782:48;;;226:856;781:49;;777:99;;819:10;;;226:856;;;;;;;;;;890:37;886:87;;819:10;1035:38;819:10;;226:856;;;;;;;;;;;;;;;;;;;;;;819:10;1035:38;;226:856;886:87;226:856;-1:-1:-1;;;950:12:95;;226:856;;950:12;777:99;226:856;;-1:-1:-1;;;853:12:95;;226:856;;853:12;782:48;;;;;;;;;;226:856;;;-1:-1:-1;;226:856:95;;;;;;;;;;;;;;;;;;782:48;;226:856;;;;;;;;;;;;782:48;;;226:856;;;;;;;;;;;;782:48;;;;;;226:856;;;;;;;;","linkReferences":{},"immutableReferences":{"71754":[{"start":84,"length":32},{"start":259,"length":32}]}},"methodIdentifiers":{"NETWORK_REGISTRY()":"c0cd7c3e","middleware(address)":"bb5ed032","setMiddleware(address)":"b7d8e1a9"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"networkRegistry\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"AlreadySet\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotNetwork\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"network\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"middleware\",\"type\":\"address\"}],\"name\":\"SetMiddleware\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"NETWORK_REGISTRY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"network\",\"type\":\"address\"}],\"name\":\"middleware\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"value\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"middleware_\",\"type\":\"address\"}],\"name\":\"setMiddleware\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"events\":{\"SetMiddleware(address,address)\":{\"params\":{\"middleware\":\"new middleware of the network\",\"network\":\"address of the network\"}}},\"kind\":\"dev\",\"methods\":{\"setMiddleware(address)\":{\"params\":{\"middleware\":\"new middleware of the network\"}}},\"stateVariables\":{\"NETWORK_REGISTRY\":{\"return\":\"address of the network registry\",\"returns\":{\"_0\":\"address of the network registry\"}},\"middleware\":{\"params\":{\"network\":\"address of the network\"},\"return\":\"value middleware of the network\",\"returns\":{\"value\":\"middleware of the network\"}}},\"version\":1},\"userdoc\":{\"events\":{\"SetMiddleware(address,address)\":{\"notice\":\"Emitted when a middleware is set for a network.\"}},\"kind\":\"user\",\"methods\":{\"NETWORK_REGISTRY()\":{\"notice\":\"Get the network registry's address.\"},\"middleware(address)\":{\"notice\":\"Get a given network's middleware.\"},\"setMiddleware(address)\":{\"notice\":\"Set a new middleware for a calling network.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/contracts/service/NetworkMiddlewareService.sol\":\"NetworkMiddlewareService\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"],\"viaIR\":true},\"sources\":{\"src/contracts/service/NetworkMiddlewareService.sol\":{\"keccak256\":\"0x37c47d77b514ba404d7e20bcd4d5d281474af2c6b79e465b9132e4827f078fc5\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://bac73b7feb32cb266f06314e71c04cbaf22bd1fcc1b0ca519b38e22c4e47b05c\",\"dweb:/ipfs/QmYN1WaKob9fQd5RkmMT6n72enPW5XkPashuYrFXppiCYK\"]},\"src/interfaces/common/IRegistry.sol\":{\"keccak256\":\"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014\",\"dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK\"]},\"src/interfaces/service/INetworkMiddlewareService.sol\":{\"keccak256\":\"0x347afc7fcf1fbcdb96d66162070ef6c78aed27b3af2c1d5dfb4e511840631783\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2d90b8ceb495159e8e4e95d76447719dd166443f67dfabdd942846162071595c\",\"dweb:/ipfs/QmVVuiAWYx92T6vBvNMKZfTvraCf1fa16BsUKkdNs3hdHA\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.25+commit.b61c2a91"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"networkRegistry","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"AlreadySet"},{"inputs":[],"type":"error","name":"NotNetwork"},{"inputs":[{"internalType":"address","name":"network","type":"address","indexed":true},{"internalType":"address","name":"middleware","type":"address","indexed":false}],"type":"event","name":"SetMiddleware","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"NETWORK_REGISTRY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"network","type":"address"}],"stateMutability":"view","type":"function","name":"middleware","outputs":[{"internalType":"address","name":"value","type":"address"}]},{"inputs":[{"internalType":"address","name":"middleware_","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setMiddleware"}],"devdoc":{"kind":"dev","methods":{"setMiddleware(address)":{"params":{"middleware":"new middleware of the network"}}},"version":1},"userdoc":{"kind":"user","methods":{"NETWORK_REGISTRY()":{"notice":"Get the network registry's address."},"middleware(address)":{"notice":"Get a given network's middleware."},"setMiddleware(address)":{"notice":"Set a new middleware for a calling network."}},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/contracts/service/NetworkMiddlewareService.sol":"NetworkMiddlewareService"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"src/contracts/service/NetworkMiddlewareService.sol":{"keccak256":"0x37c47d77b514ba404d7e20bcd4d5d281474af2c6b79e465b9132e4827f078fc5","urls":["bzz-raw://bac73b7feb32cb266f06314e71c04cbaf22bd1fcc1b0ca519b38e22c4e47b05c","dweb:/ipfs/QmYN1WaKob9fQd5RkmMT6n72enPW5XkPashuYrFXppiCYK"],"license":"BUSL-1.1"},"src/interfaces/common/IRegistry.sol":{"keccak256":"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb","urls":["bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014","dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK"],"license":"MIT"},"src/interfaces/service/INetworkMiddlewareService.sol":{"keccak256":"0x347afc7fcf1fbcdb96d66162070ef6c78aed27b3af2c1d5dfb4e511840631783","urls":["bzz-raw://2d90b8ceb495159e8e4e95d76447719dd166443f67dfabdd942846162071595c","dweb:/ipfs/QmVVuiAWYx92T6vBvNMKZfTvraCf1fa16BsUKkdNs3hdHA"],"license":"MIT"}},"version":1},"id":95} \ No newline at end of file +{"abi":[{"type":"constructor","inputs":[{"name":"networkRegistry","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"NETWORK_REGISTRY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"middleware","inputs":[{"name":"network","type":"address","internalType":"address"}],"outputs":[{"name":"value","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"setMiddleware","inputs":[{"name":"middleware_","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"SetMiddleware","inputs":[{"name":"network","type":"address","indexed":true,"internalType":"address"},{"name":"middleware","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"error","name":"AlreadySet","inputs":[]},{"type":"error","name":"NotNetwork","inputs":[]}],"bytecode":{"object":"0x60a034606c57601f6102dc38819003918201601f19168301916001600160401b03831184841017607057808492602094604052833981010312606c57516001600160a01b0381168103606c5760805260405161025790816100858239608051818181605401526101030152f35b5f80fd5b634e487b7160e01b5f52604160045260245ffdfe6080604090808252600480361015610015575f80fd5b5f3560e01c918263b7d8e1a9146100c357508163bb5ed03214610087575063c0cd7c3e14610041575f80fd5b34610083575f36600319011261008357517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b5f80fd5b90503461008357602036600319011261008357356001600160a01b038181169291839003610083576020925f525f8352815f2054169051908152f35b83346100835760209081600319360112610083576001600160a01b0384358181169490859003610083576302910f8b60e31b8152338682015283816024817f000000000000000000000000000000000000000000000000000000000000000086165afa908115610217575f916101b7575b50156101a7578390335f525f8452825f2054161461019857907ff64e2a8734392e221de13f5e56deb22d308e292cad394052affa97dbaf41ec9891335f525f8252805f20846bffffffffffffffffffffffff60a01b825416179055519283523392a2005b5163a741a04560e01b81528390fd5b81516323d53b9760e21b81528590fd5b9050833d8511610210575b601f8101601f1916820167ffffffffffffffff8111838210176101fd5785918391865281010312610083575180151581036100835786610134565b604188634e487b7160e01b5f525260245ffd5b503d6101c2565b83513d5f823e3d90fdfea26469706673582212204f9d8e7d56920d88e2358268d67aed11c7bec9fb5cfaaed34c7210bbd86b22e464736f6c63430008190033","sourceMap":"226:856:90:-:0;;;;;;;;;;;;;-1:-1:-1;;226:856:90;;;;-1:-1:-1;;;;;226:856:90;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;226:856:90;;;;;;592:34;;226:856;;;;;;;;592:34;226:856;;;;;;;;;;;;-1:-1:-1;226:856:90;;;;;;-1:-1:-1;226:856:90;;;;;-1:-1:-1;226:856:90","linkReferences":{}},"deployedBytecode":{"object":"0x6080604090808252600480361015610015575f80fd5b5f3560e01c918263b7d8e1a9146100c357508163bb5ed03214610087575063c0cd7c3e14610041575f80fd5b34610083575f36600319011261008357517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b5f80fd5b90503461008357602036600319011261008357356001600160a01b038181169291839003610083576020925f525f8352815f2054169051908152f35b83346100835760209081600319360112610083576001600160a01b0384358181169490859003610083576302910f8b60e31b8152338682015283816024817f000000000000000000000000000000000000000000000000000000000000000086165afa908115610217575f916101b7575b50156101a7578390335f525f8452825f2054161461019857907ff64e2a8734392e221de13f5e56deb22d308e292cad394052affa97dbaf41ec9891335f525f8252805f20846bffffffffffffffffffffffff60a01b825416179055519283523392a2005b5163a741a04560e01b81528390fd5b81516323d53b9760e21b81528590fd5b9050833d8511610210575b601f8101601f1916820167ffffffffffffffff8111838210176101fd5785918391865281010312610083575180151581036100835786610134565b604188634e487b7160e01b5f525260245ffd5b503d6101c2565b83513d5f823e3d90fdfea26469706673582212204f9d8e7d56920d88e2358268d67aed11c7bec9fb5cfaaed34c7210bbd86b22e464736f6c63430008190033","sourceMap":"226:856:90:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;226:856:90;;;;;356:41;-1:-1:-1;;;;;226:856:90;;;;;;;;;;;;;;;;;;-1:-1:-1;;226:856:90;;;;;-1:-1:-1;;;;;226:856:90;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;226:856:90;;;;;;;;;;;;-1:-1:-1;;;782:48:90;;819:10;782:48;;;226:856;792:16;782:48;226:856;782:48;792:16;226:856;;782:48;;;;;;;226:856;782:48;;;226:856;781:49;;777:99;;819:10;;;226:856;;;;;;;;;;890:37;886:87;;819:10;1035:38;819:10;;226:856;;;;;;;;;;;;;;;;;;;;;;819:10;1035:38;;226:856;886:87;226:856;-1:-1:-1;;;950:12:90;;226:856;;950:12;777:99;226:856;;-1:-1:-1;;;853:12:90;;226:856;;853:12;782:48;;;;;;;;;;226:856;;;-1:-1:-1;;226:856:90;;;;;;;;;;;;;;;;;;782:48;;226:856;;;;;;;;;;;;782:48;;;226:856;;;;;;;;;;;;782:48;;;;;;226:856;;;;;;;;","linkReferences":{},"immutableReferences":{"65042":[{"start":84,"length":32},{"start":259,"length":32}]}},"methodIdentifiers":{"NETWORK_REGISTRY()":"c0cd7c3e","middleware(address)":"bb5ed032","setMiddleware(address)":"b7d8e1a9"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"networkRegistry\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"AlreadySet\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotNetwork\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"network\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"middleware\",\"type\":\"address\"}],\"name\":\"SetMiddleware\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"NETWORK_REGISTRY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"network\",\"type\":\"address\"}],\"name\":\"middleware\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"value\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"middleware_\",\"type\":\"address\"}],\"name\":\"setMiddleware\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"events\":{\"SetMiddleware(address,address)\":{\"params\":{\"middleware\":\"new middleware of the network\",\"network\":\"address of the network\"}}},\"kind\":\"dev\",\"methods\":{\"setMiddleware(address)\":{\"params\":{\"middleware\":\"new middleware of the network\"}}},\"stateVariables\":{\"NETWORK_REGISTRY\":{\"return\":\"address of the network registry\",\"returns\":{\"_0\":\"address of the network registry\"}},\"middleware\":{\"params\":{\"network\":\"address of the network\"},\"return\":\"value middleware of the network\",\"returns\":{\"value\":\"middleware of the network\"}}},\"version\":1},\"userdoc\":{\"events\":{\"SetMiddleware(address,address)\":{\"notice\":\"Emitted when a middleware is set for a network.\"}},\"kind\":\"user\",\"methods\":{\"NETWORK_REGISTRY()\":{\"notice\":\"Get the network registry's address.\"},\"middleware(address)\":{\"notice\":\"Get a given network's middleware.\"},\"setMiddleware(address)\":{\"notice\":\"Set a new middleware for a calling network.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/contracts/service/NetworkMiddlewareService.sol\":\"NetworkMiddlewareService\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"],\"viaIR\":true},\"sources\":{\"src/contracts/service/NetworkMiddlewareService.sol\":{\"keccak256\":\"0x37c47d77b514ba404d7e20bcd4d5d281474af2c6b79e465b9132e4827f078fc5\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://bac73b7feb32cb266f06314e71c04cbaf22bd1fcc1b0ca519b38e22c4e47b05c\",\"dweb:/ipfs/QmYN1WaKob9fQd5RkmMT6n72enPW5XkPashuYrFXppiCYK\"]},\"src/interfaces/common/IRegistry.sol\":{\"keccak256\":\"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014\",\"dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK\"]},\"src/interfaces/service/INetworkMiddlewareService.sol\":{\"keccak256\":\"0x347afc7fcf1fbcdb96d66162070ef6c78aed27b3af2c1d5dfb4e511840631783\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2d90b8ceb495159e8e4e95d76447719dd166443f67dfabdd942846162071595c\",\"dweb:/ipfs/QmVVuiAWYx92T6vBvNMKZfTvraCf1fa16BsUKkdNs3hdHA\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.25+commit.b61c2a91"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"networkRegistry","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"AlreadySet"},{"inputs":[],"type":"error","name":"NotNetwork"},{"inputs":[{"internalType":"address","name":"network","type":"address","indexed":true},{"internalType":"address","name":"middleware","type":"address","indexed":false}],"type":"event","name":"SetMiddleware","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"NETWORK_REGISTRY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"network","type":"address"}],"stateMutability":"view","type":"function","name":"middleware","outputs":[{"internalType":"address","name":"value","type":"address"}]},{"inputs":[{"internalType":"address","name":"middleware_","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setMiddleware"}],"devdoc":{"kind":"dev","methods":{"setMiddleware(address)":{"params":{"middleware":"new middleware of the network"}}},"version":1},"userdoc":{"kind":"user","methods":{"NETWORK_REGISTRY()":{"notice":"Get the network registry's address."},"middleware(address)":{"notice":"Get a given network's middleware."},"setMiddleware(address)":{"notice":"Set a new middleware for a calling network."}},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/contracts/service/NetworkMiddlewareService.sol":"NetworkMiddlewareService"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"src/contracts/service/NetworkMiddlewareService.sol":{"keccak256":"0x37c47d77b514ba404d7e20bcd4d5d281474af2c6b79e465b9132e4827f078fc5","urls":["bzz-raw://bac73b7feb32cb266f06314e71c04cbaf22bd1fcc1b0ca519b38e22c4e47b05c","dweb:/ipfs/QmYN1WaKob9fQd5RkmMT6n72enPW5XkPashuYrFXppiCYK"],"license":"BUSL-1.1"},"src/interfaces/common/IRegistry.sol":{"keccak256":"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb","urls":["bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014","dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK"],"license":"MIT"},"src/interfaces/service/INetworkMiddlewareService.sol":{"keccak256":"0x347afc7fcf1fbcdb96d66162070ef6c78aed27b3af2c1d5dfb4e511840631783","urls":["bzz-raw://2d90b8ceb495159e8e4e95d76447719dd166443f67dfabdd942846162071595c","dweb:/ipfs/QmVVuiAWYx92T6vBvNMKZfTvraCf1fa16BsUKkdNs3hdHA"],"license":"MIT"}},"version":1},"id":90} \ No newline at end of file diff --git a/out/NetworkRegistry.sol/NetworkRegistry.json b/out/NetworkRegistry.sol/NetworkRegistry.json index c62d918e..32aab214 100644 --- a/out/NetworkRegistry.sol/NetworkRegistry.json +++ b/out/NetworkRegistry.sol/NetworkRegistry.json @@ -1 +1 @@ -{"abi":[{"type":"function","name":"entity","inputs":[{"name":"index","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"isEntity","inputs":[{"name":"entity_","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"registerNetwork","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"totalEntities","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"event","name":"AddEntity","inputs":[{"name":"entity","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"error","name":"EntityNotExist","inputs":[]},{"type":"error","name":"NetworkAlreadyRegistered","inputs":[]}],"bytecode":{"object":"0x60808060405234601557610241908161001a8239f35b5f80fdfe60806040526004361015610011575f80fd5b5f3560e01c806314887c581461013d5780635cd8b15e1461012157806387140b5b146100b55763b42ba2a214610045575f80fd5b346100b15760203660031901126100b1576004355f5481101561009d575f80527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e56301546040516001600160a01b039091168152602090f35b634e487b7160e01b5f52603260045260245ffd5b5f80fd5b346100b1575f3660031901126100b1576100da335f52600160205260405f2054151590565b61010f576100e733610184565b50337fb919910dcefbf753bfd926ab3b1d3f85d877190c3d01ba1bd585047b99b99f0b5f80a2005b60405163ad5fcda560e01b8152600490fd5b346100b1575f3660031901126100b15760205f54604051908152f35b346100b15760203660031901126100b1576004356001600160a01b038116908190036100b15761017a6020915f52600160205260405f2054151590565b6040519015158152f35b805f52600160205260405f2054155f14610206575f54680100000000000000008110156101f25760018101805f5581101561009d5781907f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e56301555f54905f52600160205260405f2055600190565b634e487b7160e01b5f52604160045260245ffd5b505f9056fea264697066735822122090eb7e699b2d71a03df819f8fd21ac23ecd223b2d0c56f2835c6e092ca0962e364736f6c63430008190033","sourceMap":"181:284:69:-:0;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361015610011575f80fd5b5f3560e01c806314887c581461013d5780635cd8b15e1461012157806387140b5b146100b55763b42ba2a214610045575f80fd5b346100b15760203660031901126100b1576004355f5481101561009d575f80527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e56301546040516001600160a01b039091168152602090f35b634e487b7160e01b5f52603260045260245ffd5b5f80fd5b346100b1575f3660031901126100b1576100da335f52600160205260405f2054151590565b61010f576100e733610184565b50337fb919910dcefbf753bfd926ab3b1d3f85d877190c3d01ba1bd585047b99b99f0b5f80a2005b60405163ad5fcda560e01b8152600490fd5b346100b1575f3660031901126100b15760205f54604051908152f35b346100b15760203660031901126100b1576004356001600160a01b038116908190036100b15761017a6020915f52600160205260405f2054151590565b6040519015158152f35b805f52600160205260405f2054155f14610206575f54680100000000000000008110156101f25760018101805f5581101561009d5781907f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e56301555f54905f52600160205260405f2055600190565b634e487b7160e01b5f52604160045260245ffd5b505f9056fea264697066735822122090eb7e699b2d71a03df819f8fd21ac23ecd223b2d0c56f2835c6e092ca0962e364736f6c63430008190033","sourceMap":"181:284:69:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;181:284:69;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;181:284:69;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;181:284:69;;;;8974:55:62;353:10:69;181:284;;4360:14:62;181:284:69;;;;;;4360:26:62;;4264:129;;8974:55;340:84:69;;8409:50:62;353:10:69;8409:50:62;:::i;:::-;;353:10:69;1077:18:79;181:284:69;1077:18:79;;181:284:69;340:84;181:284;;-1:-1:-1;;;387:26:69;;181:284;;387:26;181:284;;;;;;-1:-1:-1;;181:284:69;;;;;;;;;;;;;;;;;;;-1:-1:-1;;181:284:69;;;;;;-1:-1:-1;;;;;181:284:69;;;;;;;;8974:55:62;181:284:69;8974:55:62;181:284:69;;4360:14:62;181:284:69;;;;;;4360:26:62;;4264:129;;8974:55;181:284:69;;;;;;;;2241:406:62;181:284:69;;;4360:14:62;181:284:69;;;;;;4360:26:62;2320:321;181:284:69;;;;;;;;;;;4360:14:62;181:284:69;;;;;;;;;;;;;;;;;;;;4360:14:62;181:284:69;;;;;;4360:14:62;2576:11;:::o;181:284:69:-;;;;;;;;;;;;2320:321:62;2618:12;181:284:69;2618:12:62;:::o","linkReferences":{}},"methodIdentifiers":{"entity(uint256)":"b42ba2a2","isEntity(address)":"14887c58","registerNetwork()":"87140b5b","totalEntities()":"5cd8b15e"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"EntityNotExist\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NetworkAlreadyRegistered\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"entity\",\"type\":\"address\"}],\"name\":\"AddEntity\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"entity\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"entity_\",\"type\":\"address\"}],\"name\":\"isEntity\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"registerNetwork\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalEntities\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"events\":{\"AddEntity(address)\":{\"params\":{\"entity\":\"address of the added entity\"}}},\"kind\":\"dev\",\"methods\":{\"entity(uint256)\":{\"params\":{\"index\":\"index of the entity to get\"},\"returns\":{\"_0\":\"address of the entity\"}},\"isEntity(address)\":{\"params\":{\"account\":\"address to check\"},\"returns\":{\"_0\":\"if the given address is an entity\"}},\"totalEntities()\":{\"returns\":{\"_0\":\"total number of entities added\"}}},\"version\":1},\"userdoc\":{\"events\":{\"AddEntity(address)\":{\"notice\":\"Emitted when an entity is added.\"}},\"kind\":\"user\",\"methods\":{\"entity(uint256)\":{\"notice\":\"Get an entity given its index.\"},\"isEntity(address)\":{\"notice\":\"Get if a given address is an entity.\"},\"registerNetwork()\":{\"notice\":\"Register the caller as a network.\"},\"totalEntities()\":{\"notice\":\"Get a total number of entities.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/contracts/NetworkRegistry.sol\":\"NetworkRegistry\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0x86c1470cbfd878491e5de030072b647352d36bd27122cffb928970b1945282aa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ad85dd393ee0a1917c57046abc5155f51f77844b2c6a42c05c1b8dd26d6ff3c1\",\"dweb:/ipfs/QmNqYc8To2NdnpP6E1tGz7t6A7beuENde5yovwov5pW1fA\"]},\"src/contracts/NetworkRegistry.sol\":{\"keccak256\":\"0x4b4c95351e9dc7aed572eed27ff3c1aba57c13c8b1f50fc0f07c1ec36c504970\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://ec74d6259a902cb663304fc797d025d175c17c4836fd29a099513ea001319567\",\"dweb:/ipfs/QmRcRCkuR7Ey5B4F8rCvXh1ApVbqteGY1cJjt5ik1wAYPd\"]},\"src/contracts/common/Registry.sol\":{\"keccak256\":\"0x4a4004836d920953a8ec6e223de9a330f43acf7a5b93c6b8b3e4a95e0f129889\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://e8bdda207f3852c683a2b481602239a914f7e26bcd042ade618e263a43b67652\",\"dweb:/ipfs/Qmb8GZykJWxZcfwNp3SqhFizDFydFuV6LXgemV3vnWyLyu\"]},\"src/interfaces/INetworkRegistry.sol\":{\"keccak256\":\"0x60dcd8ad04980a471f42b6ed57f6b96fbc4091db97b6314cb198914975327938\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fc207782fcb74a144ecb0c7dc1f427ee6de38710e0966c3cd43040493e11379f\",\"dweb:/ipfs/QmSa8LVejhmRr5T3pWYvUTrDr4fCfohfqyJfRyW2fV4zYy\"]},\"src/interfaces/common/IRegistry.sol\":{\"keccak256\":\"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014\",\"dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.25+commit.b61c2a91"},"language":"Solidity","output":{"abi":[{"inputs":[],"type":"error","name":"EntityNotExist"},{"inputs":[],"type":"error","name":"NetworkAlreadyRegistered"},{"inputs":[{"internalType":"address","name":"entity","type":"address","indexed":true}],"type":"event","name":"AddEntity","anonymous":false},{"inputs":[{"internalType":"uint256","name":"index","type":"uint256"}],"stateMutability":"view","type":"function","name":"entity","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"entity_","type":"address"}],"stateMutability":"view","type":"function","name":"isEntity","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"registerNetwork"},{"inputs":[],"stateMutability":"view","type":"function","name":"totalEntities","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]}],"devdoc":{"kind":"dev","methods":{"entity(uint256)":{"params":{"index":"index of the entity to get"},"returns":{"_0":"address of the entity"}},"isEntity(address)":{"params":{"account":"address to check"},"returns":{"_0":"if the given address is an entity"}},"totalEntities()":{"returns":{"_0":"total number of entities added"}}},"version":1},"userdoc":{"kind":"user","methods":{"entity(uint256)":{"notice":"Get an entity given its index."},"isEntity(address)":{"notice":"Get if a given address is an entity."},"registerNetwork()":{"notice":"Register the caller as a network."},"totalEntities()":{"notice":"Get a total number of entities."}},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/contracts/NetworkRegistry.sol":"NetworkRegistry"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0x86c1470cbfd878491e5de030072b647352d36bd27122cffb928970b1945282aa","urls":["bzz-raw://ad85dd393ee0a1917c57046abc5155f51f77844b2c6a42c05c1b8dd26d6ff3c1","dweb:/ipfs/QmNqYc8To2NdnpP6E1tGz7t6A7beuENde5yovwov5pW1fA"],"license":"MIT"},"src/contracts/NetworkRegistry.sol":{"keccak256":"0x4b4c95351e9dc7aed572eed27ff3c1aba57c13c8b1f50fc0f07c1ec36c504970","urls":["bzz-raw://ec74d6259a902cb663304fc797d025d175c17c4836fd29a099513ea001319567","dweb:/ipfs/QmRcRCkuR7Ey5B4F8rCvXh1ApVbqteGY1cJjt5ik1wAYPd"],"license":"BUSL-1.1"},"src/contracts/common/Registry.sol":{"keccak256":"0x4a4004836d920953a8ec6e223de9a330f43acf7a5b93c6b8b3e4a95e0f129889","urls":["bzz-raw://e8bdda207f3852c683a2b481602239a914f7e26bcd042ade618e263a43b67652","dweb:/ipfs/Qmb8GZykJWxZcfwNp3SqhFizDFydFuV6LXgemV3vnWyLyu"],"license":"BUSL-1.1"},"src/interfaces/INetworkRegistry.sol":{"keccak256":"0x60dcd8ad04980a471f42b6ed57f6b96fbc4091db97b6314cb198914975327938","urls":["bzz-raw://fc207782fcb74a144ecb0c7dc1f427ee6de38710e0966c3cd43040493e11379f","dweb:/ipfs/QmSa8LVejhmRr5T3pWYvUTrDr4fCfohfqyJfRyW2fV4zYy"],"license":"MIT"},"src/interfaces/common/IRegistry.sol":{"keccak256":"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb","urls":["bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014","dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK"],"license":"MIT"}},"version":1},"id":69} \ No newline at end of file +{"abi":[{"type":"function","name":"entity","inputs":[{"name":"index","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"isEntity","inputs":[{"name":"entity_","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"registerNetwork","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"totalEntities","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"event","name":"AddEntity","inputs":[{"name":"entity","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"error","name":"EntityNotExist","inputs":[]},{"type":"error","name":"NetworkAlreadyRegistered","inputs":[]}],"bytecode":{"object":"0x60808060405234601557610241908161001a8239f35b5f80fdfe60806040526004361015610011575f80fd5b5f3560e01c806314887c581461013d5780635cd8b15e1461012157806387140b5b146100b55763b42ba2a214610045575f80fd5b346100b15760203660031901126100b1576004355f5481101561009d575f80527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e56301546040516001600160a01b039091168152602090f35b634e487b7160e01b5f52603260045260245ffd5b5f80fd5b346100b1575f3660031901126100b1576100da335f52600160205260405f2054151590565b61010f576100e733610184565b50337fb919910dcefbf753bfd926ab3b1d3f85d877190c3d01ba1bd585047b99b99f0b5f80a2005b60405163ad5fcda560e01b8152600490fd5b346100b1575f3660031901126100b15760205f54604051908152f35b346100b15760203660031901126100b1576004356001600160a01b038116908190036100b15761017a6020915f52600160205260405f2054151590565b6040519015158152f35b805f52600160205260405f2054155f14610206575f54680100000000000000008110156101f25760018101805f5581101561009d5781907f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e56301555f54905f52600160205260405f2055600190565b634e487b7160e01b5f52604160045260245ffd5b505f9056fea2646970667358221220cc20ba223c75c11e4bd6429db6fcb715270e8a6175f384753dacda65f1f603d864736f6c63430008190033","sourceMap":"181:284:64:-:0;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361015610011575f80fd5b5f3560e01c806314887c581461013d5780635cd8b15e1461012157806387140b5b146100b55763b42ba2a214610045575f80fd5b346100b15760203660031901126100b1576004355f5481101561009d575f80527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e56301546040516001600160a01b039091168152602090f35b634e487b7160e01b5f52603260045260245ffd5b5f80fd5b346100b1575f3660031901126100b1576100da335f52600160205260405f2054151590565b61010f576100e733610184565b50337fb919910dcefbf753bfd926ab3b1d3f85d877190c3d01ba1bd585047b99b99f0b5f80a2005b60405163ad5fcda560e01b8152600490fd5b346100b1575f3660031901126100b15760205f54604051908152f35b346100b15760203660031901126100b1576004356001600160a01b038116908190036100b15761017a6020915f52600160205260405f2054151590565b6040519015158152f35b805f52600160205260405f2054155f14610206575f54680100000000000000008110156101f25760018101805f5581101561009d5781907f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e56301555f54905f52600160205260405f2055600190565b634e487b7160e01b5f52604160045260245ffd5b505f9056fea2646970667358221220cc20ba223c75c11e4bd6429db6fcb715270e8a6175f384753dacda65f1f603d864736f6c63430008190033","sourceMap":"181:284:64:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;181:284:64;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;181:284:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;181:284:64;;;;8974:55:61;353:10:64;181:284;;4360:14:61;181:284:64;;;;;;4360:26:61;;4264:129;;8974:55;340:84:64;;8409:50:61;353:10:64;8409:50:61;:::i;:::-;;353:10:64;1077:18:74;181:284:64;1077:18:74;;181:284:64;340:84;181:284;;-1:-1:-1;;;387:26:64;;181:284;;387:26;181:284;;;;;;-1:-1:-1;;181:284:64;;;;;;;;;;;;;;;;;;;-1:-1:-1;;181:284:64;;;;;;-1:-1:-1;;;;;181:284:64;;;;;;;;8974:55:61;181:284:64;8974:55:61;181:284:64;;4360:14:61;181:284:64;;;;;;4360:26:61;;4264:129;;8974:55;181:284:64;;;;;;;;2241:406:61;181:284:64;;;4360:14:61;181:284:64;;;;;;4360:26:61;2320:321;181:284:64;;;;;;;;;;;4360:14:61;181:284:64;;;;;;;;;;;;;;;;;;;;4360:14:61;181:284:64;;;;;;4360:14:61;2576:11;:::o;181:284:64:-;;;;;;;;;;;;2320:321:61;2618:12;181:284:64;2618:12:61;:::o","linkReferences":{}},"methodIdentifiers":{"entity(uint256)":"b42ba2a2","isEntity(address)":"14887c58","registerNetwork()":"87140b5b","totalEntities()":"5cd8b15e"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"EntityNotExist\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NetworkAlreadyRegistered\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"entity\",\"type\":\"address\"}],\"name\":\"AddEntity\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"entity\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"entity_\",\"type\":\"address\"}],\"name\":\"isEntity\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"registerNetwork\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalEntities\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"events\":{\"AddEntity(address)\":{\"params\":{\"entity\":\"address of the added entity\"}}},\"kind\":\"dev\",\"methods\":{\"entity(uint256)\":{\"params\":{\"index\":\"index of the entity to get\"},\"returns\":{\"_0\":\"address of the entity\"}},\"isEntity(address)\":{\"params\":{\"account\":\"address to check\"},\"returns\":{\"_0\":\"if the given address is an entity\"}},\"totalEntities()\":{\"returns\":{\"_0\":\"total number of entities added\"}}},\"version\":1},\"userdoc\":{\"events\":{\"AddEntity(address)\":{\"notice\":\"Emitted when an entity is added.\"}},\"kind\":\"user\",\"methods\":{\"entity(uint256)\":{\"notice\":\"Get an entity given its index.\"},\"isEntity(address)\":{\"notice\":\"Get if a given address is an entity.\"},\"registerNetwork()\":{\"notice\":\"Register the caller as a network.\"},\"totalEntities()\":{\"notice\":\"Get a total number of entities.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/contracts/NetworkRegistry.sol\":\"NetworkRegistry\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0x86c1470cbfd878491e5de030072b647352d36bd27122cffb928970b1945282aa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ad85dd393ee0a1917c57046abc5155f51f77844b2c6a42c05c1b8dd26d6ff3c1\",\"dweb:/ipfs/QmNqYc8To2NdnpP6E1tGz7t6A7beuENde5yovwov5pW1fA\"]},\"src/contracts/NetworkRegistry.sol\":{\"keccak256\":\"0x4b4c95351e9dc7aed572eed27ff3c1aba57c13c8b1f50fc0f07c1ec36c504970\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://ec74d6259a902cb663304fc797d025d175c17c4836fd29a099513ea001319567\",\"dweb:/ipfs/QmRcRCkuR7Ey5B4F8rCvXh1ApVbqteGY1cJjt5ik1wAYPd\"]},\"src/contracts/common/Registry.sol\":{\"keccak256\":\"0x4a4004836d920953a8ec6e223de9a330f43acf7a5b93c6b8b3e4a95e0f129889\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://e8bdda207f3852c683a2b481602239a914f7e26bcd042ade618e263a43b67652\",\"dweb:/ipfs/Qmb8GZykJWxZcfwNp3SqhFizDFydFuV6LXgemV3vnWyLyu\"]},\"src/interfaces/INetworkRegistry.sol\":{\"keccak256\":\"0x60dcd8ad04980a471f42b6ed57f6b96fbc4091db97b6314cb198914975327938\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fc207782fcb74a144ecb0c7dc1f427ee6de38710e0966c3cd43040493e11379f\",\"dweb:/ipfs/QmSa8LVejhmRr5T3pWYvUTrDr4fCfohfqyJfRyW2fV4zYy\"]},\"src/interfaces/common/IRegistry.sol\":{\"keccak256\":\"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014\",\"dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.25+commit.b61c2a91"},"language":"Solidity","output":{"abi":[{"inputs":[],"type":"error","name":"EntityNotExist"},{"inputs":[],"type":"error","name":"NetworkAlreadyRegistered"},{"inputs":[{"internalType":"address","name":"entity","type":"address","indexed":true}],"type":"event","name":"AddEntity","anonymous":false},{"inputs":[{"internalType":"uint256","name":"index","type":"uint256"}],"stateMutability":"view","type":"function","name":"entity","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"entity_","type":"address"}],"stateMutability":"view","type":"function","name":"isEntity","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"registerNetwork"},{"inputs":[],"stateMutability":"view","type":"function","name":"totalEntities","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]}],"devdoc":{"kind":"dev","methods":{"entity(uint256)":{"params":{"index":"index of the entity to get"},"returns":{"_0":"address of the entity"}},"isEntity(address)":{"params":{"account":"address to check"},"returns":{"_0":"if the given address is an entity"}},"totalEntities()":{"returns":{"_0":"total number of entities added"}}},"version":1},"userdoc":{"kind":"user","methods":{"entity(uint256)":{"notice":"Get an entity given its index."},"isEntity(address)":{"notice":"Get if a given address is an entity."},"registerNetwork()":{"notice":"Register the caller as a network."},"totalEntities()":{"notice":"Get a total number of entities."}},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/contracts/NetworkRegistry.sol":"NetworkRegistry"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0x86c1470cbfd878491e5de030072b647352d36bd27122cffb928970b1945282aa","urls":["bzz-raw://ad85dd393ee0a1917c57046abc5155f51f77844b2c6a42c05c1b8dd26d6ff3c1","dweb:/ipfs/QmNqYc8To2NdnpP6E1tGz7t6A7beuENde5yovwov5pW1fA"],"license":"MIT"},"src/contracts/NetworkRegistry.sol":{"keccak256":"0x4b4c95351e9dc7aed572eed27ff3c1aba57c13c8b1f50fc0f07c1ec36c504970","urls":["bzz-raw://ec74d6259a902cb663304fc797d025d175c17c4836fd29a099513ea001319567","dweb:/ipfs/QmRcRCkuR7Ey5B4F8rCvXh1ApVbqteGY1cJjt5ik1wAYPd"],"license":"BUSL-1.1"},"src/contracts/common/Registry.sol":{"keccak256":"0x4a4004836d920953a8ec6e223de9a330f43acf7a5b93c6b8b3e4a95e0f129889","urls":["bzz-raw://e8bdda207f3852c683a2b481602239a914f7e26bcd042ade618e263a43b67652","dweb:/ipfs/Qmb8GZykJWxZcfwNp3SqhFizDFydFuV6LXgemV3vnWyLyu"],"license":"BUSL-1.1"},"src/interfaces/INetworkRegistry.sol":{"keccak256":"0x60dcd8ad04980a471f42b6ed57f6b96fbc4091db97b6314cb198914975327938","urls":["bzz-raw://fc207782fcb74a144ecb0c7dc1f427ee6de38710e0966c3cd43040493e11379f","dweb:/ipfs/QmSa8LVejhmRr5T3pWYvUTrDr4fCfohfqyJfRyW2fV4zYy"],"license":"MIT"},"src/interfaces/common/IRegistry.sol":{"keccak256":"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb","urls":["bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014","dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK"],"license":"MIT"}},"version":1},"id":64} \ No newline at end of file diff --git a/out/NetworkRestakeDelegator.sol/NetworkRestakeDelegator.json b/out/NetworkRestakeDelegator.sol/NetworkRestakeDelegator.json index 710a5169..64c3566d 100644 --- a/out/NetworkRestakeDelegator.sol/NetworkRestakeDelegator.json +++ b/out/NetworkRestakeDelegator.sol/NetworkRestakeDelegator.json @@ -1 +1 @@ -{"abi":[{"type":"constructor","inputs":[{"name":"networkRegistry","type":"address","internalType":"address"},{"name":"vaultFactory","type":"address","internalType":"address"},{"name":"operatorVaultOptInService","type":"address","internalType":"address"},{"name":"operatorNetworkOptInService","type":"address","internalType":"address"},{"name":"delegatorFactory","type":"address","internalType":"address"},{"name":"entityType","type":"uint64","internalType":"uint64"}],"stateMutability":"nonpayable"},{"type":"function","name":"DEFAULT_ADMIN_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"FACTORY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"HOOK_GAS_LIMIT","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"HOOK_RESERVE","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"HOOK_SET_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"NETWORK_LIMIT_SET_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"NETWORK_REGISTRY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"OPERATOR_NETWORK_OPT_IN_SERVICE","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"OPERATOR_NETWORK_SHARES_SET_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"OPERATOR_VAULT_OPT_IN_SERVICE","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"TYPE","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"VAULT_FACTORY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"VERSION","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"pure"},{"type":"function","name":"getRoleAdmin","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"grantRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"hasRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"hook","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"initialize","inputs":[{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"maxNetworkLimit","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"value","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"networkLimit","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"networkLimitAt","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"timestamp","type":"uint48","internalType":"uint48"},{"name":"hint","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"onSlash","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"captureTimestamp","type":"uint48","internalType":"uint48"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"operatorNetworkShares","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"operatorNetworkSharesAt","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"timestamp","type":"uint48","internalType":"uint48"},{"name":"hint","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"renounceRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"callerConfirmation","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"revokeRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setHook","inputs":[{"name":"hook_","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setMaxNetworkLimit","inputs":[{"name":"identifier","type":"uint96","internalType":"uint96"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setNetworkLimit","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setOperatorNetworkShares","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"shares","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"stake","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"stakeAt","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"timestamp","type":"uint48","internalType":"uint48"},{"name":"hints","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"staticDelegateCall","inputs":[{"name":"target","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"totalOperatorNetworkShares","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"totalOperatorNetworkSharesAt","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"timestamp","type":"uint48","internalType":"uint48"},{"name":"hint","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"vault","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"OnSlash","inputs":[{"name":"subnetwork","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"captureTimestamp","type":"uint48","indexed":false,"internalType":"uint48"}],"anonymous":false},{"type":"event","name":"RoleAdminChanged","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"previousAdminRole","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"newAdminRole","type":"bytes32","indexed":true,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"RoleGranted","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"sender","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"RoleRevoked","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"sender","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"SetHook","inputs":[{"name":"hook","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"SetMaxNetworkLimit","inputs":[{"name":"subnetwork","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"SetNetworkLimit","inputs":[{"name":"subnetwork","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"SetOperatorNetworkShares","inputs":[{"name":"subnetwork","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"shares","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"error","name":"AccessControlBadConfirmation","inputs":[]},{"type":"error","name":"AccessControlUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"neededRole","type":"bytes32","internalType":"bytes32"}]},{"type":"error","name":"AlreadySet","inputs":[]},{"type":"error","name":"CheckpointUnorderedInsertion","inputs":[]},{"type":"error","name":"DuplicateRoleHolder","inputs":[]},{"type":"error","name":"ExceedsMaxNetworkLimit","inputs":[]},{"type":"error","name":"InsufficientHookGas","inputs":[]},{"type":"error","name":"InvalidInitialization","inputs":[]},{"type":"error","name":"MathOverflowedMulDiv","inputs":[]},{"type":"error","name":"MissingRoleHolders","inputs":[]},{"type":"error","name":"NotInitialized","inputs":[]},{"type":"error","name":"NotInitializing","inputs":[]},{"type":"error","name":"NotNetwork","inputs":[]},{"type":"error","name":"NotSlasher","inputs":[]},{"type":"error","name":"NotVault","inputs":[]},{"type":"error","name":"ReentrancyGuardReentrantCall","inputs":[]},{"type":"error","name":"SafeCastOverflowedUintDowncast","inputs":[{"name":"bits","type":"uint8","internalType":"uint8"},{"name":"value","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ZeroAddressRoleHolder","inputs":[]}],"bytecode":{"object":"0x610140346101a1576001600160401b0390601f612ea238819003918201601f191683019190848311848410176101a5578160c092859260409586528339810103126101a15761004d826101b9565b610059602084016101b9565b906100658385016101b9565b94610072606086016101b9565b9460a0610081608083016101b9565b9101519180831683036101a1577ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a009081549060ff82891c1661019057808083160361014c575b50505060805260a05260c05260e0526101009283526101209182525190612cd492836101ce8439608051836107e7015260a05183610f2a015260c0518381816106660152610f63015260e05183818161039f0152611fb20152518281816103e3015281816115fa01526117170152518181816105e40152818161156101526117950152f35b6001600160401b0319909116811790915585519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a15f80806100c7565b875163f92ee8a960e01b8152600490fd5b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b51906001600160a01b03821682036101a15756fe60806040526004361015610011575f80fd5b5f3560e01c806301ffc9a714610264578063021453481461025f578063103f29071461025a578063128e5d82146102555780631a7a7044146102505780631a80e5001461024b57806323f752d514610246578063248a9ca3146102415780632dd310001461023c5780632f2ff15d1461023757806336568abe146102325780633dfd38731461022d5780633eb22c0f1461022857806342c53e3314610223578063439fab911461021e578063557cab44146102195780635d32a1c9146102145780636679191e1461020f5780637d24bb271461020a5780637f5a7c7b146102055780638b3f10b01461020057806391d14854146101fb5780639f86fd85146101f6578063a217fddf146101f1578063a33bc287146101ec578063bb24fe8a146101e7578063c0cd7c3e146101e2578063c43dc03f146101dd578063d15b740e146101d8578063d547741f146101d3578063e02f6937146101ce578063e49561ee146101c9578063e78eb6ae146101c4578063fbfa77cf146101bf578063fd4d447c146101ba578063ff54740f146101b55763ffa1ad74146101b0575f80fd5b6112e0565b6112c3565b611299565b611272565b611238565b61104d565b611031565b610fe5565b610fbb565b610f92565b610f4e565b610f0b565b610df0565b610dd6565b610d1c565b610cbe565b610c9b565b610c73565b610c3a565b610c00565b610bdd565b610b80565b610a48565b6109cf565b6109a6565b6108ad565b610862565b610816565b6107d2565b610799565b610613565b6105cf565b610589565b6103ce565b61038a565b6102be565b346102ba5760203660031901126102ba5760043563ffffffff60e01b81168091036102ba57602090637965db0b60e01b81149081156102a9575b506040519015158152f35b6301ffc9a760e01b1490505f61029e565b5f80fd5b346102ba576040806003193601126102ba5760043590602435906102e061180a565b825f526002602052805f2054821161037a57825f52600360205281610306825f20611efa565b1461036a5781610365916103557e899d104fc3d8820bd96540612bcc5c448c8837b13b9f7faa43ad0728f0c14f94610346875f52600360205260405f2090565b61034f426123a7565b90611952565b5050519081529081906020820190565b0390a2005b5163a741a04560e01b8152600490fd5b51631eefc06360e31b8152600490fd5b346102ba575f3660031901126102ba576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346102ba575f3660031901126102ba576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b6001600160a01b038116036102ba57565b6064359065ffffffffffff821682036102ba57565b634e487b7160e01b5f52604160045260245ffd5b604081019081106001600160401b0382111761046757604052565b610438565b606081019081106001600160401b0382111761046757604052565b90601f801991011681019081106001600160401b0382111761046757604052565b6040519060a082018281106001600160401b0382111761046757604052565b604051906104d48261044c565b565b6001600160401b03811161046757601f01601f191660200190565b81601f820112156102ba57803590610508826104d6565b926105166040519485610487565b828452602083830101116102ba57815f926020809301838601378301015290565b9060806003198301126102ba576004359160243561055481610412565b9160443565ffffffffffff811681036102ba5791606435906001600160401b0382116102ba57610586916004016104f1565b90565b346102ba5760206105c76105c261059f36610537565b939190925f526005865260405f209060018060a01b03165f5260205260405f2090565b611a45565b604051908152f35b346102ba575f3660031901126102ba576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346102ba5760403660031901126102ba576004356001600160601b03811681036102ba5760243590610643611b28565b6040516302910f8b60e31b81523360048201526020816024816001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165afa908115610794575f91610765575b5015610753576001600160601b03166bffffffffffffffffffffffff193360601b161790806106cd835f52600260205260405f2090565b541461074157610726817fc67e7929681aa1bccd63f52b3799bf5805f3009f197db6fdf584b14f7fbf608c9261070b855f52600260205260405f2090565b556107168185611b57565b6040519081529081906020820190565b0390a261073f60015f80516020612c5f83398151915255565b005b60405163a741a04560e01b8152600490fd5b6040516323d53b9760e21b8152600490fd5b610787915060203d60201161078d575b61077f8183610487565b810190611327565b5f610696565b503d610775565b61133f565b346102ba5760203660031901126102ba576004355f525f80516020612c3f8339815191526020526020600160405f200154604051908152f35b346102ba575f3660031901126102ba576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346102ba5760403660031901126102ba5761073f60243560043561083982610412565b805f525f80516020612c3f83398151915260205261085d600160405f2001546118bd565b611e32565b346102ba5760403660031901126102ba5760243561087f81610412565b336001600160a01b0382160361089b5761073f90600435611e68565b60405163334bd91960e11b8152600490fd5b346102ba5760203660031901126102ba576004356108ca81610412565b6108d2611b28565b335f9081527f9ebbcbe0d2961d3fbe56ca6f679bc753bd848d3e6bb3eaf9041c51b286881d2c60205260409020547fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c9060ff161561098857506001546001600160a01b039182169181168214610741576001600160a01b03191681176001557f5bbb1d3ebb6a3ad2a0f17ff35e579a83af60604d1d3c2a4c83c62adecadf666d5f80a260015f80516020612c5f83398151915255005b6044906040519063e2517d3f60e01b82523360048301526024820152fd5b346102ba5760203660031901126102ba576004355f52600360205260206105c760405f20611efa565b346102ba5760403660031901126102ba5760206105c7610a166024356109f481610412565b6004355f526005845260405f209060018060a01b03165f5260205260405f2090565b611efa565b9181601f840112156102ba578235916001600160401b0383116102ba57602083818601950101116102ba57565b346102ba5760203660031901126102ba576001600160401b036004358181116102ba57610a79903690600401610a1b565b5f80516020612c7f833981519152549260ff8460401c1615931680159081610b78575b6001149081610b6e575b159081610b65575b50610b53575f80516020612c7f833981519152805467ffffffffffffffff19166001179055610ae19183610b2f57611f7d565b610ae757005b5f80516020612c7f833981519152805460ff60401b19169055604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a1005b5f80516020612c7f833981519152805460ff60401b1916600160401b179055611f7d565b60405163f92ee8a960e01b8152600490fd5b9050155f610aae565b303b159150610aa6565b849150610a9c565b346102ba575f3660031901126102ba576020604051614e208152f35b60606003198201126102ba576004359160243565ffffffffffff811681036102ba5791604435906001600160401b0382116102ba57610586916004016104f1565b346102ba5760206105c7610bf036610b9c565b915f526003845260405f20611a45565b346102ba575f3660031901126102ba5760206040517fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c8152f35b346102ba575f3660031901126102ba5760206040517e8b9b1e5fa9cf3b14f87f435649268146305ddf689f082e5961a335b07a9abf8152f35b346102ba575f3660031901126102ba576001546040516001600160a01b039091168152602090f35b346102ba5760206105c7610cae36610b9c565b915f526004845260405f20611a45565b346102ba5760403660031901126102ba57602060ff610d10602435610ce281610412565b6004355f525f80516020612c3f833981519152845260405f209060018060a01b03165f5260205260405f2090565b54166040519015158152f35b346102ba576040806003193601126102ba57600435610d3a81610412565b602435906001600160401b0382116102ba575f8091610d60610dc4943690600401610a1b565b908187519283928337810184815203915af43d15610dcc57610db63d610d85816104d6565b90610d9286519283610487565b81523d5f602083013e5b845194859315156020850152808401526060830190611376565b03601f198101835282610487565b805190602001fd5b610db66060610d9c565b346102ba575f3660031901126102ba5760206040515f8152f35b346102ba5760603660031901126102ba57602435600435610e1082610412565b60443591610e1c611866565b5f8281526005602090815260408083206001600160a01b03851684529091529020610e4690611efa565b838114610741577f739a5a3ec0ff71e2386d0013deac5f44e0935a98def2e2a5ddf9a709518c829491610eb9610f0692855f52600460205260405f2090610eb388610eae610e93426123a7565b93610ea9610a168c5f52600460205260405f2090565b6113c1565b6113dc565b91611952565b5050610eea8561034683610ed5885f52600560205260405f2090565b9060018060a01b03165f5260205260405f2090565b50506040519485526001600160a01b0316939081906020820190565b0390a3005b346102ba575f3660031901126102ba5760206040516001600160401b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b346102ba575f3660031901126102ba576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346102ba5760203660031901126102ba576004355f52600460205260206105c760405f20611efa565b346102ba5760203660031901126102ba576004355f526002602052602060405f2054604051908152f35b346102ba5760403660031901126102ba5761073f60243560043561100882610412565b805f525f80516020612c3f83398151915260205261102c600160405f2001546118bd565b611e68565b346102ba5760206105c761104436610537565b929190916114eb565b346102ba5760a03660031901126102ba5760243560043561106d82610412565b60443591611079610423565b90608435906001600160401b0382116102ba5761109b600492369084016104f1565b6110a3611b28565b5f546020906110c8906110bc906001600160a01b031681565b6001600160a01b031690565b60405163b134427160e01b815294859182905afa928315610794575f93611207575b506001600160a01b0392831633036111f5576001546001600160a01b031683811661116a575b50506040805195865265ffffffffffff909316602086015216927f741a5de99085c0d660f3e4192217b0ffb0ea4e35a0480de48e857a4bc3ee36ed91819081015b0390a361073f60015f80516020612c5f83398151915255565b9093604051946111a186611193602082019363724ab0f760e11b8552858c898d6024870161168a565b03601f198101885287610487565b62042e305a106111e3575f611151938192827f741a5de99085c0d660f3e4192217b0ffb0ea4e35a0480de48e857a4bc3ee36ed9951926203d090f15093611110565b604051638072475160e01b8152600490fd5b60405163dabc4ad960e01b8152600490fd5b61122a91935060203d602011611231575b6112228183610487565b810190611675565b915f6110ea565b503d611218565b346102ba575f3660031901126102ba5760206040517f1312a1cf530e56add9be4fd84db9051dcc7635952f09f735f9a29405b55846258152f35b346102ba575f3660031901126102ba575f546040516001600160a01b039091168152602090f35b346102ba5760403660031901126102ba5760206105c76024356112bb81610412565b6004356116e0565b346102ba575f3660031901126102ba5760206040516203d0908152f35b346102ba575f3660031901126102ba57602060405160018152f35b5f9081526005602090815260408083206001600160a01b03909416835292905220610586929190611a45565b908160209103126102ba575180151581036102ba5790565b6040513d5f823e3d90fd5b9061058692915f52600360205260405f20611a45565b9061058692915f52600460205260405f20611a45565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b634e487b7160e01b5f52601160045260245ffd5b5f198101919082116113bc57565b61139a565b919082039182116113bc57565b90600182018092116113bc57565b919082018092116113bc57565b604051906113f68261044c565b60606020838281520152565b81601f820112156102ba57805190611419826104d6565b926114276040519485610487565b828452602083830101116102ba57815f9260208093018386015e8301015290565b906020828203126102ba5781516001600160401b03928382116102ba5701906040828203126102ba576040519261147e8461044c565b82518181116102ba5782611493918501611402565b845260208301519081116102ba576114ab9201611402565b602082015290565b6001600160a01b0391821681529116602082015265ffffffffffff909116604082015260806060820181905261058692910190611376565b926114fb909291928284866121e2565b9290936115066113e9565b93805180611659575b505084159384156115c3575b8415611532575b5050505061152d5790565b505f90565b60208094955061155d910151604051958694859463530e1d4360e01b865260601c90600486016114b3565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa908115610794575f916115a4575b50155f808080611522565b6115bd915060203d60201161078d5761077f8183610487565b5f611599565b5f549094506001600160a01b03166020848651926115f6604051948593849363530e1d4360e01b855289600486016114b3565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa908115610794575f9161163a575b50159361151b565b611653915060203d60201161078d5761077f8183610487565b5f611632565b61166d929550602080918301019101611448565b925f8061150f565b908160209103126102ba575161058681610412565b919360a093610586969565ffffffffffff938552600180871b0316602085015260408401521660608201528160808201520190611376565b81156116cc570490565b634e487b7160e01b5f52601260045260245ffd5b5f546040516308834cb560e21b8082526001600160a01b0385811660048401529283166024830152929392602092909183816044817f000000000000000000000000000000000000000000000000000000000000000086165afa908115610794575f916117ed575b5015918215611769575b5050905061176357610586916122f2565b50505f90565b6040519081526001600160a01b0385166004820152606086901c602482015291508290829060449082907f0000000000000000000000000000000000000000000000000000000000000000165afa918215610794575f926117d0575b505015805f80611752565b6117e69250803d1061078d5761077f8183610487565b5f806117c5565b6118049150843d861161078d5761077f8183610487565b5f611748565b335f9081527f72a65082a5691803ab2b62c9bc729b34205ba1b183d950896526b2fd8714d0c7602052604090207e8b9b1e5fa9cf3b14f87f435649268146305ddf689f082e5961a335b07a9abf9060ff905b5416156109885750565b335f9081527f8f2dae99798887da307a4daa2c2d11f840b0cb9a6a67822660c531e9ad14dd00602052604090207f1312a1cf530e56add9be4fd84db9051dcc7635952f09f735f9a29405b55846259060ff9061185c565b5f8181525f80516020612c3f83398151915260209081526040808320338452909152902060ff9061185c565b634e487b7160e01b5f52603260045260245ffd5b8054821015611912575f5260205f2001905f90565b6118e9565b90815491600160401b831015610467578261193a9160016104d4950181556118fd565b90919082549060031b91821b915f19901b1916179055565b909291926001820190815480156119e4575b508461196f846123fd565b5094909284549361197f83611efa565b96816119cf575b50156119ac575050505f1981019081116113bc5761193a85916119a8936118fd565b9190565b6119a89492936119c8926001600160d01b039091169190612963565b5050611917565b65ffffffffffff83811691161490505f611986565b600160401b81101561046757806001611a0092018455836118fd565b8154905f199060031b1b191690555f611964565b908160209103126102ba575163ffffffff811681036102ba5790565b90600163ffffffff809316019182116113bc57565b91805115611b1e5780602080611a6093518301019101611a14565b91611a6b838261251c565b92611a7c845165ffffffffffff1690565b9065ffffffffffff8085169216828114611b125782119182611ab2575b5050611aa957610586925061244c565b50506020015190565b909150611abf83546113ae565b63ffffffff831614918215611ad8575b50505f80611a99565b611b0a919250611af3611aed611aff92611a30565b8561251c565b5165ffffffffffff1690565b65ffffffffffff1690565b115f80611acf565b50505050506020015190565b506105869161244c565b5f80516020612c5f8339815191526002815414611b455760029055565b604051633ee5aeb560e01b8152600490fd5b90815f52600360205260405f2081611b6e826123fd565b919390508315611bcc57611b8e916001600160d01b0316906001016118fd565b90549060031b1c5b82611bc2575b5050611ba6575050565b611bbe915f52600360205260405f2061034f426123a7565b5050565b119050815f611b9c565b50505f611b96565b6001600160a01b0381165f9081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d60205260409020545f80516020612c3f8339815191529060ff16611763575f808052602091825260408082206001600160a01b038516835290925220805460ff1916600117905533906001600160a01b03165f7f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d8180a4600190565b6001600160a01b0381165f9081527f9ebbcbe0d2961d3fbe56ca6f679bc753bd848d3e6bb3eaf9041c51b286881d2c602052604090207fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c905f80516020612c3f8339815191529060ff905b5416611d4e575f828152602091825260408082206001600160a01b038616835290925220805460ff1916600117905533916001600160a01b0316907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d5f80a4600190565b5050505f90565b6001600160a01b0381165f9081527f72a65082a5691803ab2b62c9bc729b34205ba1b183d950896526b2fd8714d0c7602052604090207e8b9b1e5fa9cf3b14f87f435649268146305ddf689f082e5961a335b07a9abf905f80516020612c3f8339815191529060ff90611cea565b6001600160a01b0381165f9081527f8f2dae99798887da307a4daa2c2d11f840b0cb9a6a67822660c531e9ad14dd00602052604090207f1312a1cf530e56add9be4fd84db9051dcc7635952f09f735f9a29405b5584625905f80516020612c3f8339815191529060ff90611cea565b5f8181525f80516020612c3f833981519152602081815260408084206001600160a01b038716855290915290912060ff90611cea565b5f8181525f80516020612c3f833981519152602081815260408084206001600160a01b03871685529091529091205460ff1615611d4e575f828152602091825260408082206001600160a01b038616835290925220805460ff1916905533916001600160a01b0316907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b5f80a4600190565b805480611f2957505f5b6001600160d01b03811615611763576001611f1f92016118fd565b90549060031b1c90565b5f199080828101116113bc57825f5260205f2001015460301c611f04565b9190916040818403126102ba578035611f5f81610412565b9260208201356001600160401b0381116102ba5761058692016104f1565b611f8991810190611f47565b6040516302910f8b60e31b81526001600160a01b039283166004820181905291906020816024817f000000000000000000000000000000000000000000000000000000000000000088165afa908115610794575f9161209c575b501561208a5761201e60409161201961206494611ffe612584565b60018060a01b03166001600160601b0360a01b5f5416175f55565b612704565b6020810151600180546001600160a01b0319166001600160a01b0390921691909117905580516001600160a01b031684811661207a575b5001516001600160a01b031690565b90811661206e5750565b61207790611c7f565b50565b61208390611bd4565b505f612055565b6040516362df054560e01b8152600490fd5b6120b5915060203d60201161078d5761077f8183610487565b5f611fe3565b6040519060a082018281106001600160401b038211176104675760405281608060609182815282602082015282604082015282808201520152565b906020828203126102ba5781516001600160401b03928382116102ba57019060a0828203126102ba576121276104a8565b9282518181116102ba578261213d918501611402565b845260208301518181116102ba5782612157918501611402565b602085015260408301518181116102ba5782612174918501611402565b604085015260608301518181116102ba5782612191918501611402565b606085015260808301519081116102ba576121ac9201611402565b608082015290565b908160209103126102ba575190565b60409065ffffffffffff61058694931681528160208201520190611376565b919392936121ee6120bb565b948051806122d6575b505061220860608601518285611360565b918261221a57505050509051905f9190565b61222e6122689183608089015191876112fb565b9160206122476110bc6110bc5f5460018060a01b031690565b8189015190604051808096819463810da75d60e01b835287600484016121c3565b03915afa80156107945761229e95612298935f926122a3575b50612292919260408a01519161134a565b90612864565b90612876565b915190565b61229292506122c99060203d6020116122cf575b6122c18183610487565b8101906121b4565b91612281565b503d6122b7565b6122ea9296506020809183010191016120f6565b935f806121f7565b90612308610a16835f52600460205260405f2090565b9081612315575050505f90565b610a1661232e91610ed5855f52600560205260405f2090565b5f5460405163bd49c35f60e01b815290602090829060049082906001600160a01b03165afa80156107945761058694612298925f9261237e575b50610a16612292915f52600360205260405f2090565b61229291925061239f610a169160203d6020116122cf576122c18183610487565b929150612368565b65ffffffffffff908181116123ba571690565b604490604051906306dfcc6560e41b8252603060048301526024820152fd5b906040516123e68161044c565b915465ffffffffffff8116835260301c6020830152565b80548061240e5750505f905f905f90565b5f199080828101116113bc5761242b925f5260205f2001016123d9565b9065ffffffffffff82511691602060018060d01b0391015116906001929190565b908154905f8291600584116124b6575b612467935084612bdf565b8061248f57505f905b6001600160d01b0382161561176357610586916001611f1f92016118fd565b6124a961249e6124b0926113ae565b835f5260205f200190565b5460301c90565b90612470565b91926124c181612aac565b81039081116113bc5761246793855f5265ffffffffffff808360205f20015416908516105f146124f257509161245c565b9291506124fe906113ce565b9061245c565b604051906125118261044c565b5f6020838281520152565b9061254561253f6125669261252f612504565b50612538612504565b50846118fd565b506123d9565b91600165ffffffffffff845116936020828060d01b039101511691016118fd565b905490604051926125768461044c565b835260031b1c602082015290565b61258c612a7e565b612594612a7e565b60015f80516020612c5f83398151915255565b604051906125b48261046c565b5f6040838281528260208201520152565b81601f820112156102ba578051916020916001600160401b038411610467578360051b90604051946125f985840187610487565b855283808601928201019283116102ba578301905b82821061261c575050505090565b838091835161262a81610412565b81520191019061260e565b906020828203126102ba5781516001600160401b03928382116102ba5701908181039260a084126102ba5760606040519461266f8661046c565b126102ba576040516126808161046c565b835161268b81610412565b8152602084015161269b81610412565b602082015260408401516126ae81610412565b6040820152845260608301518181116102ba57826126cd9185016125c5565b602085015260808301519081116102ba576126e892016125c5565b604082015290565b80518210156119125760209160051b010190565b612720906127106125a7565b5060208082518301019101612635565b8051519091906001600160a01b0316158061284a575b612838579060208101905f5b825180518210156127bc576110bc61275d8361276a936126f0565b516001600160a01b031690565b156127aa5761278c61278861278361275d8487516126f0565b611d55565b1590565b61279857600101612742565b604051635140fefd60e11b8152600490fd5b6040516323cda06760e01b8152600490fd5b506040925050818101905f5b8251805182101561282f576110bc61275d836127e3936126f0565b1561281e576128016127886127fc61275d8487516126f0565b611dc3565b61280d576001016127c8565b8351635140fefd60e11b8152600490fd5b83516323cda06760e01b8152600490fd5b50509150505190565b6040516303501f5960e11b8152600490fd5b506020820151511580612736575060408201515115612736565b9080821015612871575090565b905090565b9091828202915f19848209938380861095039480860395146128fb57848311156128e957829109815f038216809204600280826003021880830282030280830282030280830282030280830282030280830282030280920290030293600183805f03040190848311900302920304170290565b60405163227bc15360e01b8152600490fd5b50509061058692506116c2565b8054600160401b81101561046757612925916001820181556118fd565b61295057815160209092015160301b65ffffffffffff191665ffffffffffff92909216919091179055565b634e487b7160e01b5f525f60045260245ffd5b805492939291908215612a555761298461297f61249e856113ae565b6123d9565b90612995825165ffffffffffff1690565b65ffffffffffff84811691168110612a43576119a89460209488926129c3611aff875165ffffffffffff1690565b03612a0b57506129fd926129d96129e4926113ae565b905f5260205f200190565b9065ffffffffffff82549181199060301b169116179055565b01516001600160d01b031690565b915050612a3e91612a2b612a1d6104c7565b65ffffffffffff9093168352565b6001600160d01b03881682860152612908565b6129fd565b604051632520601d60e01b8152600490fd5b612a799250612a65612a1d6104c7565b6001600160d01b0385166020830152612908565b5f9190565b60ff5f80516020612c7f8339815191525460401c1615612a9a57565b604051631afcd79f60e31b8152600490fd5b801561152d5780612292612b77612b6d612b63612b59612b4f612b45612b3b60016105869a5f908b60801c80612bd3575b508060401c80612bc6575b508060201c80612bb9575b508060101c80612bac575b508060081c80612b9f575b508060041c80612b92575b508060021c80612b85575b50821c612b7e575b811c1b612b34818b6116c2565b0160011c90565b612b34818a6116c2565b612b3481896116c2565b612b3481886116c2565b612b3481876116c2565b612b3481866116c2565b612b3481856116c2565b80926116c2565b8101612b27565b600291509101905f612b1f565b600491509101905f612b14565b600891509101905f612b09565b601091509101905f612afe565b602091509101905f612af3565b604091509101905f612ae8565b9150506080905f612add565b91905b838210612bef5750505090565b9091928083169080841860011c82018092116113bc57845f5265ffffffffffff808360205f20015416908416105f14612c2c5750925b9190612be2565b939250612c38906113ce565b91612c2556fe02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268009b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a26469706673582212207c0b67c843f77296f04a0b4a7f59c05f359258f77a9185191f16f67fbfab711f64736f6c63430008190033","sourceMap":"542:7244:83:-:0;;;;-1:-1:-1;;;;;542:7244:83;;;;;;;;;;-1:-1:-1;;542:7244:83;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;8837:64:26;542:7244:83;;;;;;;;;7896:76:26;;542:7244:83;;;;7985:34:26;7981:146;;-1:-1:-1;525:17:74;;;542:7244:83;525:17:74;542:7244:83;552:12:74;542:7244:83;2360:34:81;2404:28;;2442:57;;;;2509:61;;;;542:7244:83;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2404:28:81;542:7244:83;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7981:146:26;-1:-1:-1;;;;;;542:7244:83;;;;;;;;;;;;;8087:29:26;;542:7244:83;;8087:29:26;7981:146;;;;;7896:76;542:7244:83;;-1:-1:-1;;;7938:23:26;;;;;542:7244:83;-1:-1:-1;542:7244:83;;;;;;-1:-1:-1;542:7244:83;;;;;-1:-1:-1;542:7244:83;;;;-1:-1:-1;;;;;542:7244:83;;;;;;:::o","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361015610011575f80fd5b5f3560e01c806301ffc9a714610264578063021453481461025f578063103f29071461025a578063128e5d82146102555780631a7a7044146102505780631a80e5001461024b57806323f752d514610246578063248a9ca3146102415780632dd310001461023c5780632f2ff15d1461023757806336568abe146102325780633dfd38731461022d5780633eb22c0f1461022857806342c53e3314610223578063439fab911461021e578063557cab44146102195780635d32a1c9146102145780636679191e1461020f5780637d24bb271461020a5780637f5a7c7b146102055780638b3f10b01461020057806391d14854146101fb5780639f86fd85146101f6578063a217fddf146101f1578063a33bc287146101ec578063bb24fe8a146101e7578063c0cd7c3e146101e2578063c43dc03f146101dd578063d15b740e146101d8578063d547741f146101d3578063e02f6937146101ce578063e49561ee146101c9578063e78eb6ae146101c4578063fbfa77cf146101bf578063fd4d447c146101ba578063ff54740f146101b55763ffa1ad74146101b0575f80fd5b6112e0565b6112c3565b611299565b611272565b611238565b61104d565b611031565b610fe5565b610fbb565b610f92565b610f4e565b610f0b565b610df0565b610dd6565b610d1c565b610cbe565b610c9b565b610c73565b610c3a565b610c00565b610bdd565b610b80565b610a48565b6109cf565b6109a6565b6108ad565b610862565b610816565b6107d2565b610799565b610613565b6105cf565b610589565b6103ce565b61038a565b6102be565b346102ba5760203660031901126102ba5760043563ffffffff60e01b81168091036102ba57602090637965db0b60e01b81149081156102a9575b506040519015158152f35b6301ffc9a760e01b1490505f61029e565b5f80fd5b346102ba576040806003193601126102ba5760043590602435906102e061180a565b825f526002602052805f2054821161037a57825f52600360205281610306825f20611efa565b1461036a5781610365916103557e899d104fc3d8820bd96540612bcc5c448c8837b13b9f7faa43ad0728f0c14f94610346875f52600360205260405f2090565b61034f426123a7565b90611952565b5050519081529081906020820190565b0390a2005b5163a741a04560e01b8152600490fd5b51631eefc06360e31b8152600490fd5b346102ba575f3660031901126102ba576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346102ba575f3660031901126102ba576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b6001600160a01b038116036102ba57565b6064359065ffffffffffff821682036102ba57565b634e487b7160e01b5f52604160045260245ffd5b604081019081106001600160401b0382111761046757604052565b610438565b606081019081106001600160401b0382111761046757604052565b90601f801991011681019081106001600160401b0382111761046757604052565b6040519060a082018281106001600160401b0382111761046757604052565b604051906104d48261044c565b565b6001600160401b03811161046757601f01601f191660200190565b81601f820112156102ba57803590610508826104d6565b926105166040519485610487565b828452602083830101116102ba57815f926020809301838601378301015290565b9060806003198301126102ba576004359160243561055481610412565b9160443565ffffffffffff811681036102ba5791606435906001600160401b0382116102ba57610586916004016104f1565b90565b346102ba5760206105c76105c261059f36610537565b939190925f526005865260405f209060018060a01b03165f5260205260405f2090565b611a45565b604051908152f35b346102ba575f3660031901126102ba576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346102ba5760403660031901126102ba576004356001600160601b03811681036102ba5760243590610643611b28565b6040516302910f8b60e31b81523360048201526020816024816001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165afa908115610794575f91610765575b5015610753576001600160601b03166bffffffffffffffffffffffff193360601b161790806106cd835f52600260205260405f2090565b541461074157610726817fc67e7929681aa1bccd63f52b3799bf5805f3009f197db6fdf584b14f7fbf608c9261070b855f52600260205260405f2090565b556107168185611b57565b6040519081529081906020820190565b0390a261073f60015f80516020612c5f83398151915255565b005b60405163a741a04560e01b8152600490fd5b6040516323d53b9760e21b8152600490fd5b610787915060203d60201161078d575b61077f8183610487565b810190611327565b5f610696565b503d610775565b61133f565b346102ba5760203660031901126102ba576004355f525f80516020612c3f8339815191526020526020600160405f200154604051908152f35b346102ba575f3660031901126102ba576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346102ba5760403660031901126102ba5761073f60243560043561083982610412565b805f525f80516020612c3f83398151915260205261085d600160405f2001546118bd565b611e32565b346102ba5760403660031901126102ba5760243561087f81610412565b336001600160a01b0382160361089b5761073f90600435611e68565b60405163334bd91960e11b8152600490fd5b346102ba5760203660031901126102ba576004356108ca81610412565b6108d2611b28565b335f9081527f9ebbcbe0d2961d3fbe56ca6f679bc753bd848d3e6bb3eaf9041c51b286881d2c60205260409020547fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c9060ff161561098857506001546001600160a01b039182169181168214610741576001600160a01b03191681176001557f5bbb1d3ebb6a3ad2a0f17ff35e579a83af60604d1d3c2a4c83c62adecadf666d5f80a260015f80516020612c5f83398151915255005b6044906040519063e2517d3f60e01b82523360048301526024820152fd5b346102ba5760203660031901126102ba576004355f52600360205260206105c760405f20611efa565b346102ba5760403660031901126102ba5760206105c7610a166024356109f481610412565b6004355f526005845260405f209060018060a01b03165f5260205260405f2090565b611efa565b9181601f840112156102ba578235916001600160401b0383116102ba57602083818601950101116102ba57565b346102ba5760203660031901126102ba576001600160401b036004358181116102ba57610a79903690600401610a1b565b5f80516020612c7f833981519152549260ff8460401c1615931680159081610b78575b6001149081610b6e575b159081610b65575b50610b53575f80516020612c7f833981519152805467ffffffffffffffff19166001179055610ae19183610b2f57611f7d565b610ae757005b5f80516020612c7f833981519152805460ff60401b19169055604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a1005b5f80516020612c7f833981519152805460ff60401b1916600160401b179055611f7d565b60405163f92ee8a960e01b8152600490fd5b9050155f610aae565b303b159150610aa6565b849150610a9c565b346102ba575f3660031901126102ba576020604051614e208152f35b60606003198201126102ba576004359160243565ffffffffffff811681036102ba5791604435906001600160401b0382116102ba57610586916004016104f1565b346102ba5760206105c7610bf036610b9c565b915f526003845260405f20611a45565b346102ba575f3660031901126102ba5760206040517fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c8152f35b346102ba575f3660031901126102ba5760206040517e8b9b1e5fa9cf3b14f87f435649268146305ddf689f082e5961a335b07a9abf8152f35b346102ba575f3660031901126102ba576001546040516001600160a01b039091168152602090f35b346102ba5760206105c7610cae36610b9c565b915f526004845260405f20611a45565b346102ba5760403660031901126102ba57602060ff610d10602435610ce281610412565b6004355f525f80516020612c3f833981519152845260405f209060018060a01b03165f5260205260405f2090565b54166040519015158152f35b346102ba576040806003193601126102ba57600435610d3a81610412565b602435906001600160401b0382116102ba575f8091610d60610dc4943690600401610a1b565b908187519283928337810184815203915af43d15610dcc57610db63d610d85816104d6565b90610d9286519283610487565b81523d5f602083013e5b845194859315156020850152808401526060830190611376565b03601f198101835282610487565b805190602001fd5b610db66060610d9c565b346102ba575f3660031901126102ba5760206040515f8152f35b346102ba5760603660031901126102ba57602435600435610e1082610412565b60443591610e1c611866565b5f8281526005602090815260408083206001600160a01b03851684529091529020610e4690611efa565b838114610741577f739a5a3ec0ff71e2386d0013deac5f44e0935a98def2e2a5ddf9a709518c829491610eb9610f0692855f52600460205260405f2090610eb388610eae610e93426123a7565b93610ea9610a168c5f52600460205260405f2090565b6113c1565b6113dc565b91611952565b5050610eea8561034683610ed5885f52600560205260405f2090565b9060018060a01b03165f5260205260405f2090565b50506040519485526001600160a01b0316939081906020820190565b0390a3005b346102ba575f3660031901126102ba5760206040516001600160401b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b346102ba575f3660031901126102ba576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346102ba5760203660031901126102ba576004355f52600460205260206105c760405f20611efa565b346102ba5760203660031901126102ba576004355f526002602052602060405f2054604051908152f35b346102ba5760403660031901126102ba5761073f60243560043561100882610412565b805f525f80516020612c3f83398151915260205261102c600160405f2001546118bd565b611e68565b346102ba5760206105c761104436610537565b929190916114eb565b346102ba5760a03660031901126102ba5760243560043561106d82610412565b60443591611079610423565b90608435906001600160401b0382116102ba5761109b600492369084016104f1565b6110a3611b28565b5f546020906110c8906110bc906001600160a01b031681565b6001600160a01b031690565b60405163b134427160e01b815294859182905afa928315610794575f93611207575b506001600160a01b0392831633036111f5576001546001600160a01b031683811661116a575b50506040805195865265ffffffffffff909316602086015216927f741a5de99085c0d660f3e4192217b0ffb0ea4e35a0480de48e857a4bc3ee36ed91819081015b0390a361073f60015f80516020612c5f83398151915255565b9093604051946111a186611193602082019363724ab0f760e11b8552858c898d6024870161168a565b03601f198101885287610487565b62042e305a106111e3575f611151938192827f741a5de99085c0d660f3e4192217b0ffb0ea4e35a0480de48e857a4bc3ee36ed9951926203d090f15093611110565b604051638072475160e01b8152600490fd5b60405163dabc4ad960e01b8152600490fd5b61122a91935060203d602011611231575b6112228183610487565b810190611675565b915f6110ea565b503d611218565b346102ba575f3660031901126102ba5760206040517f1312a1cf530e56add9be4fd84db9051dcc7635952f09f735f9a29405b55846258152f35b346102ba575f3660031901126102ba575f546040516001600160a01b039091168152602090f35b346102ba5760403660031901126102ba5760206105c76024356112bb81610412565b6004356116e0565b346102ba575f3660031901126102ba5760206040516203d0908152f35b346102ba575f3660031901126102ba57602060405160018152f35b5f9081526005602090815260408083206001600160a01b03909416835292905220610586929190611a45565b908160209103126102ba575180151581036102ba5790565b6040513d5f823e3d90fd5b9061058692915f52600360205260405f20611a45565b9061058692915f52600460205260405f20611a45565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b634e487b7160e01b5f52601160045260245ffd5b5f198101919082116113bc57565b61139a565b919082039182116113bc57565b90600182018092116113bc57565b919082018092116113bc57565b604051906113f68261044c565b60606020838281520152565b81601f820112156102ba57805190611419826104d6565b926114276040519485610487565b828452602083830101116102ba57815f9260208093018386015e8301015290565b906020828203126102ba5781516001600160401b03928382116102ba5701906040828203126102ba576040519261147e8461044c565b82518181116102ba5782611493918501611402565b845260208301519081116102ba576114ab9201611402565b602082015290565b6001600160a01b0391821681529116602082015265ffffffffffff909116604082015260806060820181905261058692910190611376565b926114fb909291928284866121e2565b9290936115066113e9565b93805180611659575b505084159384156115c3575b8415611532575b5050505061152d5790565b505f90565b60208094955061155d910151604051958694859463530e1d4360e01b865260601c90600486016114b3565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa908115610794575f916115a4575b50155f808080611522565b6115bd915060203d60201161078d5761077f8183610487565b5f611599565b5f549094506001600160a01b03166020848651926115f6604051948593849363530e1d4360e01b855289600486016114b3565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa908115610794575f9161163a575b50159361151b565b611653915060203d60201161078d5761077f8183610487565b5f611632565b61166d929550602080918301019101611448565b925f8061150f565b908160209103126102ba575161058681610412565b919360a093610586969565ffffffffffff938552600180871b0316602085015260408401521660608201528160808201520190611376565b81156116cc570490565b634e487b7160e01b5f52601260045260245ffd5b5f546040516308834cb560e21b8082526001600160a01b0385811660048401529283166024830152929392602092909183816044817f000000000000000000000000000000000000000000000000000000000000000086165afa908115610794575f916117ed575b5015918215611769575b5050905061176357610586916122f2565b50505f90565b6040519081526001600160a01b0385166004820152606086901c602482015291508290829060449082907f0000000000000000000000000000000000000000000000000000000000000000165afa918215610794575f926117d0575b505015805f80611752565b6117e69250803d1061078d5761077f8183610487565b5f806117c5565b6118049150843d861161078d5761077f8183610487565b5f611748565b335f9081527f72a65082a5691803ab2b62c9bc729b34205ba1b183d950896526b2fd8714d0c7602052604090207e8b9b1e5fa9cf3b14f87f435649268146305ddf689f082e5961a335b07a9abf9060ff905b5416156109885750565b335f9081527f8f2dae99798887da307a4daa2c2d11f840b0cb9a6a67822660c531e9ad14dd00602052604090207f1312a1cf530e56add9be4fd84db9051dcc7635952f09f735f9a29405b55846259060ff9061185c565b5f8181525f80516020612c3f83398151915260209081526040808320338452909152902060ff9061185c565b634e487b7160e01b5f52603260045260245ffd5b8054821015611912575f5260205f2001905f90565b6118e9565b90815491600160401b831015610467578261193a9160016104d4950181556118fd565b90919082549060031b91821b915f19901b1916179055565b909291926001820190815480156119e4575b508461196f846123fd565b5094909284549361197f83611efa565b96816119cf575b50156119ac575050505f1981019081116113bc5761193a85916119a8936118fd565b9190565b6119a89492936119c8926001600160d01b039091169190612963565b5050611917565b65ffffffffffff83811691161490505f611986565b600160401b81101561046757806001611a0092018455836118fd565b8154905f199060031b1b191690555f611964565b908160209103126102ba575163ffffffff811681036102ba5790565b90600163ffffffff809316019182116113bc57565b91805115611b1e5780602080611a6093518301019101611a14565b91611a6b838261251c565b92611a7c845165ffffffffffff1690565b9065ffffffffffff8085169216828114611b125782119182611ab2575b5050611aa957610586925061244c565b50506020015190565b909150611abf83546113ae565b63ffffffff831614918215611ad8575b50505f80611a99565b611b0a919250611af3611aed611aff92611a30565b8561251c565b5165ffffffffffff1690565b65ffffffffffff1690565b115f80611acf565b50505050506020015190565b506105869161244c565b5f80516020612c5f8339815191526002815414611b455760029055565b604051633ee5aeb560e01b8152600490fd5b90815f52600360205260405f2081611b6e826123fd565b919390508315611bcc57611b8e916001600160d01b0316906001016118fd565b90549060031b1c5b82611bc2575b5050611ba6575050565b611bbe915f52600360205260405f2061034f426123a7565b5050565b119050815f611b9c565b50505f611b96565b6001600160a01b0381165f9081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d60205260409020545f80516020612c3f8339815191529060ff16611763575f808052602091825260408082206001600160a01b038516835290925220805460ff1916600117905533906001600160a01b03165f7f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d8180a4600190565b6001600160a01b0381165f9081527f9ebbcbe0d2961d3fbe56ca6f679bc753bd848d3e6bb3eaf9041c51b286881d2c602052604090207fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c905f80516020612c3f8339815191529060ff905b5416611d4e575f828152602091825260408082206001600160a01b038616835290925220805460ff1916600117905533916001600160a01b0316907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d5f80a4600190565b5050505f90565b6001600160a01b0381165f9081527f72a65082a5691803ab2b62c9bc729b34205ba1b183d950896526b2fd8714d0c7602052604090207e8b9b1e5fa9cf3b14f87f435649268146305ddf689f082e5961a335b07a9abf905f80516020612c3f8339815191529060ff90611cea565b6001600160a01b0381165f9081527f8f2dae99798887da307a4daa2c2d11f840b0cb9a6a67822660c531e9ad14dd00602052604090207f1312a1cf530e56add9be4fd84db9051dcc7635952f09f735f9a29405b5584625905f80516020612c3f8339815191529060ff90611cea565b5f8181525f80516020612c3f833981519152602081815260408084206001600160a01b038716855290915290912060ff90611cea565b5f8181525f80516020612c3f833981519152602081815260408084206001600160a01b03871685529091529091205460ff1615611d4e575f828152602091825260408082206001600160a01b038616835290925220805460ff1916905533916001600160a01b0316907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b5f80a4600190565b805480611f2957505f5b6001600160d01b03811615611763576001611f1f92016118fd565b90549060031b1c90565b5f199080828101116113bc57825f5260205f2001015460301c611f04565b9190916040818403126102ba578035611f5f81610412565b9260208201356001600160401b0381116102ba5761058692016104f1565b611f8991810190611f47565b6040516302910f8b60e31b81526001600160a01b039283166004820181905291906020816024817f000000000000000000000000000000000000000000000000000000000000000088165afa908115610794575f9161209c575b501561208a5761201e60409161201961206494611ffe612584565b60018060a01b03166001600160601b0360a01b5f5416175f55565b612704565b6020810151600180546001600160a01b0319166001600160a01b0390921691909117905580516001600160a01b031684811661207a575b5001516001600160a01b031690565b90811661206e5750565b61207790611c7f565b50565b61208390611bd4565b505f612055565b6040516362df054560e01b8152600490fd5b6120b5915060203d60201161078d5761077f8183610487565b5f611fe3565b6040519060a082018281106001600160401b038211176104675760405281608060609182815282602082015282604082015282808201520152565b906020828203126102ba5781516001600160401b03928382116102ba57019060a0828203126102ba576121276104a8565b9282518181116102ba578261213d918501611402565b845260208301518181116102ba5782612157918501611402565b602085015260408301518181116102ba5782612174918501611402565b604085015260608301518181116102ba5782612191918501611402565b606085015260808301519081116102ba576121ac9201611402565b608082015290565b908160209103126102ba575190565b60409065ffffffffffff61058694931681528160208201520190611376565b919392936121ee6120bb565b948051806122d6575b505061220860608601518285611360565b918261221a57505050509051905f9190565b61222e6122689183608089015191876112fb565b9160206122476110bc6110bc5f5460018060a01b031690565b8189015190604051808096819463810da75d60e01b835287600484016121c3565b03915afa80156107945761229e95612298935f926122a3575b50612292919260408a01519161134a565b90612864565b90612876565b915190565b61229292506122c99060203d6020116122cf575b6122c18183610487565b8101906121b4565b91612281565b503d6122b7565b6122ea9296506020809183010191016120f6565b935f806121f7565b90612308610a16835f52600460205260405f2090565b9081612315575050505f90565b610a1661232e91610ed5855f52600560205260405f2090565b5f5460405163bd49c35f60e01b815290602090829060049082906001600160a01b03165afa80156107945761058694612298925f9261237e575b50610a16612292915f52600360205260405f2090565b61229291925061239f610a169160203d6020116122cf576122c18183610487565b929150612368565b65ffffffffffff908181116123ba571690565b604490604051906306dfcc6560e41b8252603060048301526024820152fd5b906040516123e68161044c565b915465ffffffffffff8116835260301c6020830152565b80548061240e5750505f905f905f90565b5f199080828101116113bc5761242b925f5260205f2001016123d9565b9065ffffffffffff82511691602060018060d01b0391015116906001929190565b908154905f8291600584116124b6575b612467935084612bdf565b8061248f57505f905b6001600160d01b0382161561176357610586916001611f1f92016118fd565b6124a961249e6124b0926113ae565b835f5260205f200190565b5460301c90565b90612470565b91926124c181612aac565b81039081116113bc5761246793855f5265ffffffffffff808360205f20015416908516105f146124f257509161245c565b9291506124fe906113ce565b9061245c565b604051906125118261044c565b5f6020838281520152565b9061254561253f6125669261252f612504565b50612538612504565b50846118fd565b506123d9565b91600165ffffffffffff845116936020828060d01b039101511691016118fd565b905490604051926125768461044c565b835260031b1c602082015290565b61258c612a7e565b612594612a7e565b60015f80516020612c5f83398151915255565b604051906125b48261046c565b5f6040838281528260208201520152565b81601f820112156102ba578051916020916001600160401b038411610467578360051b90604051946125f985840187610487565b855283808601928201019283116102ba578301905b82821061261c575050505090565b838091835161262a81610412565b81520191019061260e565b906020828203126102ba5781516001600160401b03928382116102ba5701908181039260a084126102ba5760606040519461266f8661046c565b126102ba576040516126808161046c565b835161268b81610412565b8152602084015161269b81610412565b602082015260408401516126ae81610412565b6040820152845260608301518181116102ba57826126cd9185016125c5565b602085015260808301519081116102ba576126e892016125c5565b604082015290565b80518210156119125760209160051b010190565b612720906127106125a7565b5060208082518301019101612635565b8051519091906001600160a01b0316158061284a575b612838579060208101905f5b825180518210156127bc576110bc61275d8361276a936126f0565b516001600160a01b031690565b156127aa5761278c61278861278361275d8487516126f0565b611d55565b1590565b61279857600101612742565b604051635140fefd60e11b8152600490fd5b6040516323cda06760e01b8152600490fd5b506040925050818101905f5b8251805182101561282f576110bc61275d836127e3936126f0565b1561281e576128016127886127fc61275d8487516126f0565b611dc3565b61280d576001016127c8565b8351635140fefd60e11b8152600490fd5b83516323cda06760e01b8152600490fd5b50509150505190565b6040516303501f5960e11b8152600490fd5b506020820151511580612736575060408201515115612736565b9080821015612871575090565b905090565b9091828202915f19848209938380861095039480860395146128fb57848311156128e957829109815f038216809204600280826003021880830282030280830282030280830282030280830282030280830282030280920290030293600183805f03040190848311900302920304170290565b60405163227bc15360e01b8152600490fd5b50509061058692506116c2565b8054600160401b81101561046757612925916001820181556118fd565b61295057815160209092015160301b65ffffffffffff191665ffffffffffff92909216919091179055565b634e487b7160e01b5f525f60045260245ffd5b805492939291908215612a555761298461297f61249e856113ae565b6123d9565b90612995825165ffffffffffff1690565b65ffffffffffff84811691168110612a43576119a89460209488926129c3611aff875165ffffffffffff1690565b03612a0b57506129fd926129d96129e4926113ae565b905f5260205f200190565b9065ffffffffffff82549181199060301b169116179055565b01516001600160d01b031690565b915050612a3e91612a2b612a1d6104c7565b65ffffffffffff9093168352565b6001600160d01b03881682860152612908565b6129fd565b604051632520601d60e01b8152600490fd5b612a799250612a65612a1d6104c7565b6001600160d01b0385166020830152612908565b5f9190565b60ff5f80516020612c7f8339815191525460401c1615612a9a57565b604051631afcd79f60e31b8152600490fd5b801561152d5780612292612b77612b6d612b63612b59612b4f612b45612b3b60016105869a5f908b60801c80612bd3575b508060401c80612bc6575b508060201c80612bb9575b508060101c80612bac575b508060081c80612b9f575b508060041c80612b92575b508060021c80612b85575b50821c612b7e575b811c1b612b34818b6116c2565b0160011c90565b612b34818a6116c2565b612b3481896116c2565b612b3481886116c2565b612b3481876116c2565b612b3481866116c2565b612b3481856116c2565b80926116c2565b8101612b27565b600291509101905f612b1f565b600491509101905f612b14565b600891509101905f612b09565b601091509101905f612afe565b602091509101905f612af3565b604091509101905f612ae8565b9150506080905f612add565b91905b838210612bef5750505090565b9091928083169080841860011c82018092116113bc57845f5265ffffffffffff808360205f20015416908416105f14612c2c5750925b9190612be2565b939250612c38906113ce565b91612c2556fe02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268009b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a26469706673582212207c0b67c843f77296f04a0b4a7f59c05f359258f77a9185191f16f67fbfab711f64736f6c63430008190033","sourceMap":"542:7244:83:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;;;;;-1:-1:-1;;542:7244:83;;;;;;;;;;;;;;;;;;-1:-1:-1;;;3551:47:24;;;:87;;;;542:7244:83;;;;;;;;;;3551:87:24;-1:-1:-1;;;1133:40:30;;-1:-1:-1;3551:87:24;;;542:7244:83;-1:-1:-1;542:7244:83;;;;;;;;;;;;;;;;;;;;3202:4:24;;;:::i;:::-;542:7244:83;-1:-1:-1;542:7244:83;3610:15;542:7244;;;-1:-1:-1;542:7244:83;;3601:36;;3597:98;;542:7244;-1:-1:-1;542:7244:83;2233:13;542:7244;;;2233:34;542:7244;-1:-1:-1;542:7244:83;2233:34;:::i;:::-;3709;3705:84;;3799:25;3871:35;3799:25;:56;3871:35;3799:25;;;542:7244;;2233:13;542:7244;;;;;;;3799:25;819:34:63;837:15;819:34;:::i;:::-;3799:56:83;;:::i;:::-;-1:-1:-1;;542:7244:83;;;;;;;;;;;;3871:35;;;;542:7244;3705:84;542:7244;-1:-1:-1;;;3766:12:83;;542:7244;;3766:12;3597:98;542:7244;-1:-1:-1;;;3660:24:83;;542:7244;;3660:24;542:7244;;;;;;-1:-1:-1;;542:7244:83;;;;;;1537:38:81;-1:-1:-1;;;;;542:7244:83;;;;;;;;;;;;-1:-1:-1;;542:7244:83;;;;;;1632:54:81;-1:-1:-1;;;;;542:7244:83;;;;;;;-1:-1:-1;;;;;542:7244:83;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;542:7244:83;;;;;;;:::o;:::-;;:::i;:::-;;;;;;;-1:-1:-1;;;;;542:7244:83;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;542:7244:83;;;;;;;:::o;:::-;;;;;;;;;;-1:-1:-1;;;;;542:7244:83;;;;;;;:::o;:::-;;;;;;;:::i;:::-;:::o;:::-;-1:-1:-1;;;;;542:7244:83;;;;;;-1:-1:-1;;542:7244:83;;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;542:7244:83;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;542:7244:83;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;-1:-1:-1;;;;;542:7244:83;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;3090:79;:44;542:7244;;;:::i;:::-;;;;;-1:-1:-1;542:7244:83;3090:22;542:7244;;;-1:-1:-1;542:7244:83;;;;;;;;;;;;;;;;;3090:44;:79;:::i;:::-;542:7244;;;;;;;;;;;;-1:-1:-1;;542:7244:83;;;;;;1743:56:81;-1:-1:-1;;;;;542:7244:83;;;;;;;;;;;;-1:-1:-1;;542:7244:83;;;;;;-1:-1:-1;;;;;542:7244:83;;;;;;;;3217:103:29;;;:::i;:::-;542:7244:83;;-1:-1:-1;;;4285:48:81;;4322:10;542:7244:83;4285:48:81;;542:7244:83;;;;;-1:-1:-1;;;;;4295:16:81;542:7244:83;4285:48:81;;;;;;;-1:-1:-1;4285:48:81;;;542:7244:83;4284:49:81;;4280:99;;-1:-1:-1;;;;;542:7244:83;-1:-1:-1;;4322:10:81;297:2:93;542:7244:83;;267:46:93;4459:27:81;;;;542:7244:83;;4459:15:81;542:7244:83;;;;;;;4459:27:81;542:7244:83;4459:37:81;4455:87;;4654:38;4552:27;4654:38;4552:27;;;542:7244:83;;4459:15:81;542:7244:83;;;;;;;4552:27:81;542:7244:83;4631:6:81;;;;:::i;:::-;542:7244:83;;;;;;;;;;;;;4654:38:81;;;;3282:1:29;1805;-1:-1:-1;;;;;;;;;;;542:7244:83;3716:283:29;3282:1;542:7244:83;4455:87:81;542:7244:83;;-1:-1:-1;;;4519:12:81;;542:7244:83;;4519:12:81;4280:99;542:7244:83;;-1:-1:-1;;;4356:12:81;;542:7244:83;;4356:12:81;4285:48;;;;542:7244:83;4285:48:81;542:7244:83;4285:48:81;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;:::i;542:7244:83:-;;;;;;-1:-1:-1;;542:7244:83;;;;;;-1:-1:-1;542:7244:83;-1:-1:-1;;;;;;;;;;;542:7244:83;;;4919:24:24;542:7244:83;-1:-1:-1;542:7244:83;4919:24:24;542:7244:83;;;;;;;;;;;;;-1:-1:-1;;542:7244:83;;;;;;322:32:74;-1:-1:-1;;;;;542:7244:83;;;;;;;;;;;;-1:-1:-1;;542:7244:83;;;;5350:25:24;542:7244:83;;;;;;;:::i;:::-;;-1:-1:-1;542:7244:83;-1:-1:-1;;;;;;;;;;;542:7244:83;;3202:4:24;4919:24;542:7244:83;-1:-1:-1;542:7244:83;4919:24:24;542:7244:83;3202:4:24;:::i;:::-;5350:25;:::i;542:7244:83:-;;;;;;-1:-1:-1;;542:7244:83;;;;;;;;;:::i;:::-;966:10:28;-1:-1:-1;;;;;542:7244:83;;6441:34:24;6437:102;;6549:37;542:7244:83;;;6549:37:24;:::i;6437:102::-;542:7244:83;;-1:-1:-1;;;6498:30:24;;542:7244:83;;6498:30:24;542:7244:83;;;;;;-1:-1:-1;;542:7244:83;;;;;;;;;:::i;:::-;3217:103:29;;:::i;:::-;966:10:28;-1:-1:-1;542:7244:83;;;;;;;;;;1356:26:81;;542:7244:83;;4468:23:24;4464:108;;-1:-1:-1;4861:4:81;542:7244:83;-1:-1:-1;;;;;542:7244:83;;;;;;4861:13:81;;4857:63;;-1:-1:-1;;;;;;542:7244:83;;;4861:4:81;542:7244:83;4958:14:81;-1:-1:-1;;4958:14:81;4861:4;-1:-1:-1;;;;;;;;;;;542:7244:83;;4464:108:24;542:7244:83;;;;4514:47:24;;;;;;966:10:28;542:7244:83;4514:47:24;;542:7244:83;;;;;4514:47:24;542:7244:83;;;;;;-1:-1:-1;;542:7244:83;;;;;;-1:-1:-1;542:7244:83;2233:13;542:7244;;;2233:34;542:7244;-1:-1:-1;542:7244:83;2233:34;:::i;542:7244::-;;;;;;-1:-1:-1;;542:7244:83;;;;;3358:53;:44;542:7244;;;;;:::i;:::-;;;-1:-1:-1;542:7244:83;3358:22;542:7244;;;-1:-1:-1;542:7244:83;;;;;;;;;;;;;;;;;3358:44;:53;:::i;542:7244::-;;;;;;;;;;;;;-1:-1:-1;;;;;542:7244:83;;;;;;;;;;;;;;;:::o;:::-;;;;;;-1:-1:-1;;542:7244:83;;;;-1:-1:-1;;;;;542:7244:83;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;542:7244:83;;;;;;;4301:16:26;542:7244:83;;4726:16:26;;:34;;;;542:7244:83;4805:1:26;4790:16;:50;;;;542:7244:83;4855:13:26;:30;;;;542:7244:83;4851:91:26;;;-1:-1:-1;;;;;;;;;;;542:7244:83;;-1:-1:-1;;542:7244:83;;;;;718:4:74;;4951:18:26;4979:67;;718:4:74;:::i;:::-;5066:101:26;;542:7244:83;5066:101:26;-1:-1:-1;;;;;;;;;;;542:7244:83;;-1:-1:-1;;;;542:7244:83;;;;;-1:-1:-1;542:7244:83;;5142:14:26;;542:7244:83;;5142:14:26;542:7244:83;4979:67:26;-1:-1:-1;;;;;;;;;;;542:7244:83;;-1:-1:-1;;;;542:7244:83;-1:-1:-1;;;542:7244:83;;;718:4:74;:::i;4851:91:26:-;542:7244:83;;-1:-1:-1;;;4908:23:26;;542:7244:83;;4908:23:26;4855:30;4872:13;;;4855:30;;;4790:50;4818:4;4810:25;:30;;-1:-1:-1;4790:50:26;;4726:34;;;-1:-1:-1;4726:34:26;;542:7244:83;;;;;;-1:-1:-1;;542:7244:83;;;;;;;1253:6:81;542:7244:83;;;;;-1:-1:-1;;542:7244:83;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;542:7244:83;;;;;;;;;:::i;:::-;;;;;1997:60;542:7244;;;:::i;:::-;;-1:-1:-1;542:7244:83;1997:13;542:7244;;;-1:-1:-1;542:7244:83;1997:60;:::i;542:7244::-;;;;;;-1:-1:-1;;542:7244:83;;;;;;;1356:26:81;542:7244:83;;;;;;;;;-1:-1:-1;;542:7244:83;;;;;;;810:35;542:7244;;;;;;;;;-1:-1:-1;;542:7244:83;;;;;;;;-1:-1:-1;;;;;542:7244:83;;;;;;;;;;;;;2512:74;542:7244;;;:::i;:::-;;-1:-1:-1;542:7244:83;;;;;-1:-1:-1;542:7244:83;2512:74;:::i;542:7244::-;;;;;;-1:-1:-1;;542:7244:83;;;;;;3901:31:24;542:7244:83;;;;;:::i;:::-;;;-1:-1:-1;542:7244:83;-1:-1:-1;;;;;;;;;;;542:7244:83;;;-1:-1:-1;542:7244:83;;;;;;;;;;;;;;;;;3901:31:24;542:7244:83;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;542:7244:83;;;;-1:-1:-1;542:7244:83;;;477:31:80;542:7244:83;;;;;;:::i;:::-;;;;;;;;;;;;;;;416:25:80;;;;542:7244:83;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;-1:-1:-1;542:7244:83;;;;;;;;;;;;;477:31:80;;542:7244:83;;;;;;;;;;:::i;:::-;477:31:80;542:7244:83;;477:31:80;;;;;;:::i;:::-;518:79;;;542:7244:83;518:79:80;;542:7244:83;;;;;;;;;;;-1:-1:-1;;542:7244:83;;;;;;;;;;;;;;;;;-1:-1:-1;;542:7244:83;;;;;;;;;;;:::i;:::-;;;3202:4:24;;;:::i;:::-;-1:-1:-1;542:7244:83;;;3358:22;542:7244;;;;;;;;-1:-1:-1;;;;;542:7244:83;;;;;;;;;3358:53;;;:::i;:::-;4249:32;;;4245:82;;4596:54;542:7244;4337:158;4596:54;542:7244;;-1:-1:-1;542:7244:83;;;;;-1:-1:-1;542:7244:83;837:15:63;4413:72:83;837:15:63;4413:63:83;819:34:63;837:15;819:34;:::i;:::-;2776:39:83;:48;:39;;542:7244;;;;;;;;;;2776:48;4413:63;:::i;:::-;:72;:::i;:::-;4337:158;;:::i;:::-;4505:34;;:75;:34;:44;:34;;;542:7244;;3358:22;542:7244;;;;;;;4505:34;542:7244;;;;;;;;;;;;;;;;4505:75;-1:-1:-1;;542:7244:83;;;;;-1:-1:-1;;;;;542:7244:83;;;;;;;;;;4596:54;;;;542:7244;;;;;;;-1:-1:-1;;542:7244:83;;;;;;;-1:-1:-1;;;;;404:28:74;542:7244:83;;;;;;;;;;-1:-1:-1;;542:7244:83;;;;;;1439:41:81;-1:-1:-1;;;;;542:7244:83;;;;;;;;;;;;-1:-1:-1;;542:7244:83;;;;;;-1:-1:-1;542:7244:83;;;;;2776:48;542:7244;-1:-1:-1;542:7244:83;2776:48;:::i;542:7244::-;;;;;;-1:-1:-1;;542:7244:83;;;;;;-1:-1:-1;542:7244:83;2009:67:81;542:7244:83;;;;-1:-1:-1;542:7244:83;;;;;;;;;;;;;;-1:-1:-1;;542:7244:83;;;;5767:26:24;542:7244:83;;;;;;;:::i;:::-;;-1:-1:-1;542:7244:83;-1:-1:-1;;;;;;;;;;;542:7244:83;;3202:4:24;4919:24;542:7244:83;-1:-1:-1;542:7244:83;4919:24:24;542:7244:83;3202:4:24;:::i;:::-;5767:26;:::i;542:7244:83:-;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;-1:-1:-1;;542:7244:83;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;-1:-1:-1;;;;;542:7244:83;;;;;;;;;;;;:::i;:::-;3217:103:29;;:::i;:::-;-1:-1:-1;542:7244:83;;;5246:21:81;;:13;;-1:-1:-1;;;;;542:7244:83;5246:13:81;542:7244:83;;-1:-1:-1;;;;;542:7244:83;;;5246:21:81;542:7244:83;;-1:-1:-1;;;5246:23:81;;542:7244:83;;;;;5246:23:81;;;;;;;-1:-1:-1;5246:23:81;;;542:7244:83;-1:-1:-1;;;;;;542:7244:83;;;5232:10:81;:37;5228:87;;5341:4;542:7244:83;-1:-1:-1;;;;;542:7244:83;;;;5355:469:81;;542:7244:83;-1:-1:-1;;542:7244:83;;;;;;;;;;;;;;;;5839:55:81;;542:7244:83;;;;5839:55:81;;;;3282:1:29;1805;-1:-1:-1;;;;;;;;;;;542:7244:83;3716:283:29;5355:469:81;542:7244:83;;;;5435:94:81;;;;542:7244:83;5435:94:81;;;;;;;;;;;;542:7244:83;5435:94:81;;;:::i;:::-;;542:7244:83;;5435:94:81;;;;;;:::i;:::-;542:7244:83;5548:9:81;:51;5544:118;;-1:-1:-1;5839:55:81;5676:138;;;;5839:55;5676:138;;;1150:7;5676:138;;5355:469;;;5544:118;542:7244:83;;-1:-1:-1;;;5626:21:81;;542:7244:83;;5626:21:81;5228:87;542:7244:83;;-1:-1:-1;;;5292:12:81;;542:7244:83;;5292:12:81;5246:23;;;;;542:7244:83;5246:23:81;542:7244:83;5246:23:81;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;542:7244:83;;;;;;-1:-1:-1;;542:7244:83;;;;;;;971:45;542:7244;;;;;;;;;-1:-1:-1;;542:7244:83;;;;;;;;-1:-1:-1;;;;;542:7244:83;;;;;;;;;;;;;;-1:-1:-1;;542:7244:83;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;-1:-1:-1;;542:7244:83;;;;;;;1150:7:81;542:7244:83;;;;;;;;;-1:-1:-1;;542:7244:83;;;;;;;2700:1:81;542:7244:83;;;2897:279;-1:-1:-1;542:7244:83;;;3090:22;542:7244;;;;;;;;-1:-1:-1;;;;;542:7244:83;;;;;;;;;3090:79;;2897:279;;3090:79;:::i;542:7244::-;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;1869:195;;1997:60;1869:195;;-1:-1:-1;542:7244:83;1997:13;542:7244;;;-1:-1:-1;542:7244:83;1997:60;:::i;2340:253::-;;2512:74;2340:253;;-1:-1:-1;542:7244:83;2512:27;542:7244;;;-1:-1:-1;542:7244:83;2512:74;:::i;542:7244::-;;;;;;;;;;;;;;;;;-1:-1:-1;542:7244:83;;;;;;;;-1:-1:-1;;542:7244:83;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;542:7244:83;;;;;;;;:::o;:::-;;:::i;:::-;;;;;;;;;;:::o;:::-;;9856:1:61;542:7244:83;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;542:7244:83;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;;;;542:7244:83;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::o;:::-;-1:-1:-1;;;;;542:7244:83;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;2764:920:81:-;;2978:48;2764:920;;;;2978:48;;;;:::i;:::-;3036:36;;;542:7244:83;;:::i;:::-;;;;3086:20:81;3082:107;;2764:920;3216:11;;;;:193;;;;;2764:920;3216:394;;;;2764:920;3199:455;;;;;;2764:920;:::o;3199:455::-;3635:8;-1:-1:-1;3635:8:81;:::o;3216:394::-;3553:39;;;;;3430:180;3553:39;;;542:7244:83;;;;;;;;;;3430:180:81;;467:2:93;542:7244:83;3430:180:81;;;;;:::i;:::-;;542:7244:83;3444:31:81;-1:-1:-1;;;;;542:7244:83;3430:180:81;;;;;;;-1:-1:-1;3430:180:81;;;3216:394;3429:181;;3216:394;;;;;;3430:180;;;;3553:39;3430:180;3553:39;3430:180;;;;;;;:::i;:::-;;;;3216:193;-1:-1:-1;542:7244:83;;;-1:-1:-1;;;;;;542:7244:83;3248:161:81;3354:37;;;542:7244:83;3248:161:81;542:7244:83;;;;;;;;;;3248:161:81;;;;;;;:::i;:::-;;542:7244:83;3262:29:81;-1:-1:-1;;;;;542:7244:83;3248:161:81;;;;;;;-1:-1:-1;3248:161:81;;;3216:193;3247:162;;3216:193;;;3248:161;;;;;;;;;;;;;;:::i;:::-;;;;3082:107;3139:39;;;;;;;;;;;;;:::i;:::-;3082:107;;;;;542:7244:83;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::o;:::-;;;;;;;;;;;;3740:389:81;3918:5;542:7244:83;;;-1:-1:-1;;;3853:71:81;;;-1:-1:-1;;;;;542:7244:83;;;3853:71:81;;;542:7244:83;;;;;;;;3740:389:81;;542:7244:83;3853:71:81;;542:7244:83;;3853:71:81;542:7244:83;;;3867:29:81;542:7244:83;;3853:71:81;;;;;;;3918:5;3853:71;;;3740:389;3852:72;;542:7244:83;;;3852:181:81;;3740:389;3835:242;;;;;;4094:28;;;:::i;3835:242::-;4058:8;;3918:5;4058:8;:::o;3852:181::-;542:7244:83;;3945:88:81;;;-1:-1:-1;;;;;542:7244:83;;3853:71:81;3945:88;;542:7244:83;467:2:93;542:7244:83;;;;;;;;-1:-1:-1;542:7244:83;;;;;;;;3959:31:81;542:7244:83;3945:88:81;;;;;;;3918:5;3945:88;;;3852:181;3944:89;;;3852:181;;;;;3945:88;;;;;;-1:-1:-1;3945:88:81;;;;;;:::i;:::-;;;;;3853:71;;;;;;;;;;;;;;:::i;:::-;;;;4148:103:24;966:10:28;-1:-1:-1;542:7244:83;;;;;;;;;810:35;;542:7244;;3901:31:24;542:7244:83;;4468:23:24;4464:108;;4148:103;:::o;:::-;966:10:28;-1:-1:-1;542:7244:83;;;;;;;;;971:45;;542:7244;;3901:31:24;542:7244:83;4148:103:24;-1:-1:-1;542:7244:83;;;-1:-1:-1;;;;;;;;;;;542:7244:83;;;;;;;;966:10:28;542:7244:83;;;;;;;;;3901:31:24;542:7244:83;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;542:7244:83;;-1:-1:-1;542:7244:83;;;-1:-1:-1;542:7244:83;:::o;:::-;;:::i;:::-;;;;;-1:-1:-1;;;542:7244:83;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;6246:584:91;;;;;6360:12;;;542:7244:83;;;6360:24:91;;6356:75;;6246:584;6474:30;;;;;:::i;:::-;542:7244:83;;;;;;6578:12:91;;;;:::i;:::-;6604:24;;;;6246:584;-1:-1:-1;6600:188:91;;;-1:-1:-1;;;;;542:7244:83;;;;;;;6644:21:91;;;:29;:21;;:::i;:29::-;6798:25;6246:584;:::o;6600:188::-;6753:24;;542:7244:83;;8167:38:61;;-1:-1:-1;;;;;542:7244:83;;;;;8167:38:61;:::i;:::-;6753:24:91;;;:::i;6604:::-;542:7244:83;;;;;;6614:14:91;;-1:-1:-1;6604:24:91;;;6356:75;-1:-1:-1;;;542:7244:83;;;;;;6360:12:91;542:7244:83;;;;;;;:::i;:::-;;;;;;;;;;;;;;6356:75:91;;;542:7244:83;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;:::o;7558:604:91:-;;542:7244:83;;7686:17:91;7682:83;;542:7244:83;7789:27:91;542:7244:83;7789:27:91;542:7244:83;;7789:27:91;;;;;;:::i;:::-;7860:14;;;;;:::i;:::-;542:7244:83;;;;;;;;;;;;;;;;7888:22:91;;;7884:77;;7975:21;-1:-1:-1;7975:84:91;;;;7558:604;7971:139;;;;8127:28;;;;:::i;7971:139::-;8082:17;;7789:27;8082:17;542:7244:83;8075:24:91;:::o;7975:84::-;542:7244:83;;;8009:16:91;542:7244:83;;8009:16:91;:::i;:::-;542:7244:83;;;8001:24:91;:57;;;;;7975:84;;;;;;;8001:57;8029:29;8038:8;;;8029:18;8038:8;8029:23;8038:8;;:::i;:::-;8029:18;;:::i;:::-;542:7244:83;;;;;8029:23:91;542:7244:83;;;;8029:29:91;;8001:57;;;;7884:77;7933:17;;;;;7789:27;7933:17;542:7244:83;7926:24:91;:::o;7682:83::-;7726:28;;;;:::i;3326:384:29:-;-1:-1:-1;;;;;;;;;;;1847:1:29;542:7244:83;;3526:20:29;3522:88;;1847:1;542:7244:83;;3326:384:29:o;3522:88::-;542:7244:83;;-1:-1:-1;;;3569:30:29;;;;;6196:308:83;;542:7244;-1:-1:-1;542:7244:83;6327:13;542:7244;;;-1:-1:-1;542:7244:83;11124:30:91;;;;:::i;:::-;11173;;;-1:-1:-1;11173:30:91;;;;11182:17;;-1:-1:-1;;;;;542:7244:83;;11182:12:91;;:17;:::i;:::-;542:7244:83;;;6327:13;542:7244;;11173:30:91;6385::83;;;11173::91;6381:117:83;;;;6196:308;;:::o;6381:117::-;6431:56;542:7244;-1:-1:-1;542:7244:83;6327:13;542:7244;;;-1:-1:-1;542:7244:83;819:34:63;837:15;819:34;:::i;6431:56:83:-;6196:308;;:::o;6385:30::-;6395:20;;-1:-1:-1;6385:30:83;;;;11173::91;;;-1:-1:-1;11173:30:91;;7270:387:24;-1:-1:-1;;;;;542:7244:83;;-1:-1:-1;542:7244:83;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2887:71:24;542:7244:83;;;;-1:-1:-1;542:7244:83;;;;;;;;;;;-1:-1:-1;;;;;542:7244:83;;;;;;;;;;-1:-1:-1;;542:7244:83;7509:4:24;542:7244:83;;;966:10:28;;-1:-1:-1;;;;;542:7244:83;-1:-1:-1;7532:40:24;-1:-1:-1;;7532:40:24;7509:4;7586:11;:::o;7270:387::-;-1:-1:-1;;;;;542:7244:83;;-1:-1:-1;542:7244:83;;;;;;;;;1356:26:81;;-1:-1:-1;;;;;;;;;;;2887:71:24;542:7244:83;;3901:31:24;542:7244:83;;;;-1:-1:-1;542:7244:83;;;;;;;;;;;-1:-1:-1;;;;;542:7244:83;;;;;;;;;;-1:-1:-1;;542:7244:83;7509:4:24;542:7244:83;;;966:10:28;;-1:-1:-1;;;;;542:7244:83;;7532:40:24;-1:-1:-1;;7532:40:24;7509:4;7586:11;:::o;7432:219::-;7628:12;;;-1:-1:-1;7628:12:24;:::o;7270:387::-;-1:-1:-1;;;;;542:7244:83;;-1:-1:-1;542:7244:83;;;;;;;;;810:35;;-1:-1:-1;;;;;;;;;;;2887:71:24;542:7244:83;;3901:31:24;542:7244:83;7270:387:24;-1:-1:-1;;;;;542:7244:83;;-1:-1:-1;542:7244:83;;;;;;;;;971:45;;-1:-1:-1;;;;;;;;;;;2887:71:24;542:7244:83;;3901:31:24;542:7244:83;7270:387:24;-1:-1:-1;542:7244:83;;;-1:-1:-1;;;;;;;;;;;542:7244:83;;;;;;;;-1:-1:-1;;;;;542:7244:83;;;;;;;;;;;;3901:31:24;542:7244:83;7892:388:24;-1:-1:-1;542:7244:83;;;-1:-1:-1;;;;;;;;;;;542:7244:83;;;;;;;;-1:-1:-1;;;;;542:7244:83;;;;;;;;;;;;;;;;-1:-1:-1;542:7244:83;;;;;;;;;;;-1:-1:-1;;;;;542:7244:83;;;;;;;;;;-1:-1:-1;;542:7244:83;;;966:10:28;;-1:-1:-1;;;;;542:7244:83;;8155:40:24;-1:-1:-1;;8155:40:24;542:7244:83;8209:11:24;:::o;10580:184:91:-;542:7244:83;;10303:8:61;;;:63;-1:-1:-1;10303:63:61;-1:-1:-1;;;;;542:7244:83;;10726:7:91;542:7244:83;;10736:12:91;:17;:12;;:17;:::i;:::-;542:7244:83;;;;;;10580:184:91;:::o;10303:63:61:-;542:7244:83;;;;;;;;;;14249:109:61;-1:-1:-1;14249:109:61;;-1:-1:-1;14249:109:61;;;542:7244:83;;;10303:63:61;;542:7244:83;;;;;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;542:7244:83;;;;;;;;:::i;5907:716:81:-;6030:34;5907:716;6030:34;;;;:::i;:::-;542:7244:83;;-1:-1:-1;;;6080:41:81;;-1:-1:-1;;;;;542:7244:83;;;6080:41:81;;;542:7244:83;;;;;6080:41:81;542:7244:83;;;6090:13:81;542:7244:83;;6080:41:81;;;;;;;-1:-1:-1;6080:41:81;;;5907:716;6079:42;;6075:90;;6266:27;542:7244:83;2540:111:29;6210:14:81;542:7244:83;2540:111:29;;;:::i;:::-;542:7244:83;;;;;;-1:-1:-1;;;;;542:7244:83;;-1:-1:-1;542:7244:83;;;-1:-1:-1;542:7244:83;;6210:14:81;6266:27;:::i;:::-;6080:41;6311:15;;542:7244:83;;;;-1:-1:-1;;;;;;542:7244:83;-1:-1:-1;;;;;542:7244:83;;;;;;;;;;;-1:-1:-1;;;;;542:7244:83;;;;6337:143:81;;5907:716;-1:-1:-1;6493:28:81;542:7244:83;-1:-1:-1;;;;;542:7244:83;;;;;;;6489:128:81;;5907:716;:::o;6489:128::-;6551:55;;;:::i;:::-;;5907:716::o;6337:143::-;6404:65;;;:::i;:::-;;6337:143;;;6075:90;542:7244:83;;-1:-1:-1;;;6144:10:81;;6080:41;;6144:10;6080:41;;;;;;;;;;;;;;:::i;:::-;;;;542:7244:83;;;;;;;;;;-1:-1:-1;;;;;542:7244:83;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;;;;542:7244:83;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;:::i;4663:1079::-;;;;;542:7244;;:::i;:::-;;;;4903:16;4899:92;;4663:1079;5105:42;;5053:95;5105:42;;;;5053:95;;;:::i;:::-;5165:570;:34;;;5218:21;;;;;;5165:570;-1:-1:-1;5158:577:83;4663:1079;:::o;5165:570::-;5273:95;5431:67;5330:37;;;;;;5273:95;;;:::i;:::-;542:7244;5470:27;5431;:13;542:7244;-1:-1:-1;542:7244:83;;;;;;;;;5431:27;5470;;;;542:7244;;;;;;;;;;;5431:67;;;;;;;:::i;:::-;;;;;;;;;5273:409;5431:67;5397:216;5431:67;-1:-1:-1;5431:67:83;;;5165:570;5562:28;5524:67;5562:28;;542:7244;5562:28;;;5524:67;;:::i;:::-;5397:216;;:::i;:::-;5273:409;;:::i;:::-;5700:21;;4663:1079;:::o;5431:67::-;5524;5431;;;;5470:27;5431:67;5470:27;5431:67;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;4899:92;4949:31;;;;;;;;;;;;;:::i;:::-;4899:92;;;;;5748:442;;2776:48;:39;;542:7244;;;;;;;;;;2776:48;5946:237;:32;;;:237;;;-1:-1:-1;5748:442:83;:::o;5946:237::-;3358:44;:53;:34;;;542:7244;;3358:22;542:7244;;;;;;;3358:53;-1:-1:-1;542:7244:83;;;-1:-1:-1;;;6086:27:83;;542:7244;6086:27;;542:7244;;2776:27;;542:7244;;-1:-1:-1;;;;;542:7244:83;6086:27;;;;;;6009:174;6086:27;6077:63;6086:27;-1:-1:-1;6086:27:83;;;5946:237;2233:25;;:34;:25;542:7244;;2233:13;542:7244;;;;;;;6086:27;2233:34;6086:27;;;;2233:25;6086:27;;;;;;;;;;;:::i;:::-;;;;;;14291:213:59;542:7244:83;14369:24:59;;;;14365:103;;542:7244:83;14291:213:59;:::o;14365:103::-;542:7244:83;;;;14416:41:59;;;;;;14447:2;14416:41;;;542:7244:83;;;;;14416:41:59;542:7244:83;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::o;10552:388:61:-;542:7244:83;;10728:8:61;;;10752:20;;10690:17;10752:20;10690:17;10752:20;10690:17;10752:20;:::o;10724:210::-;542:7244:83;;;;;;;;;;;14249:109:61;10690:17;14249:109;;10690:17;14249:109;;;542:7244:83;:::i;:::-;;;;;;;14249:109:61;542:7244:83;;;;;10911:11:61;;542:7244:83;;10886:37:61;10870:1;10886:37;;;:::o;6999:207:91:-;;542:7244:83;;9594:15:61;-1:-1:-1;9619:18:61;9652:7;9658:1;9652:7;;9648:234;;6999:207:91;9906:53:61;;;;;:::i;:::-;9977:8;;;:63;-1:-1:-1;9977:63:61;;-1:-1:-1;;;;;542:7244:83;;7168:7:91;542:7244:83;;;7178:12:91;;:17;:12;;:17;:::i;9977:63:61:-;9992:41;10025:7;9992:48;10025:7;;:::i;:::-;9992:41;14249:109;;;;;;14099:265;;9992:41;542:7244:83;;;;;9992:48:61;9977:63;;;9648:234;9695:14;;;;;:::i;:::-;542:7244:83;;;;;;;9906:53:61;14249:109;;-1:-1:-1;14249:109:61;542:7244:83;14249:109:61;;;-1:-1:-1;14249:109:61;;542:7244:83;;;;;9727:48:61;9723:149;542:7244:83;;;9795:10:61;9723:149;9648:234;;9723:149;9850:7;;;;;;:::i;:::-;9723:149;9648:234;;542:7244:83;;;;;;;:::i;:::-;-1:-1:-1;542:7244:83;;;;;;;:::o;11486:272:91:-;;542:7244:83;11308:22:61;11718:31:91;11486:272;542:7244:83;;:::i;:::-;;;;:::i;:::-;;11308:22:61;;:::i;:::-;542:7244:83;;:::i;:::-;;11718:12:91;542:7244:83;;;;;11731:17:91;542:7244:83;;;;;11731:17:91;;542:7244:83;;11718:12:91;;:31;:::i;:::-;542:7244:83;;;;;;;;;:::i;:::-;;;;;;11731:17:91;11672:79;;542:7244:83;11486:272:91;:::o;6893:76:26:-;;;:::i;:::-;;;:::i;:::-;1805:1:29;-1:-1:-1;;;;;;;;;;;542:7244:83;6893:76:26:o;542:7244:83:-;;;;;;;:::i;:::-;-1:-1:-1;542:7244:83;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;-1:-1:-1;;;;;542:7244:83;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;542:7244:83;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;6510:1274::-;6658:30;6510:1274;542:7244;;:::i;:::-;;6658:30;542:7244;;;6658:30;;;;;;:::i;:::-;6716:17;;542:7244;6716:17;;542:7244;-1:-1:-1;;;;;542:7244:83;6716:54;;:179;;6510:1274;6699:259;;6973:9;6658:30;6988:33;;;6716:17;7030:3;6988:33;;542:7244;;6984:44;;;;;7053:36;;;:50;:36;;:::i;:::-;542:7244;-1:-1:-1;;;;;542:7244:83;;;7053:50;;7049:119;;7186:73;7187:72;7222:36;;:33;;;:36;:::i;:::-;7187:72;:::i;:::-;7186:73;;542:7244;7186:73;7182:140;;542:7244;;6973:9;;7182:140;542:7244;;-1:-1:-1;;;7286:21:83;;;;;7049:119;542:7244;;-1:-1:-1;;;7130:23:83;;;;;6984:44;-1:-1:-1;7362:42:83;;-1:-1:-1;;7362:42:83;;;;6716:17;7413:3;7362:42;;542:7244;;7358:53;;;;;7436:45;;;:59;:45;;:::i;:59::-;;7432:128;;7578:92;7579:91;7624:45;;:42;;;:45;:::i;:::-;7579:91;:::i;7578:92::-;7574:159;;542:7244;;7347:9;;7574:159;542:7244;;-1:-1:-1;;;7697:21:83;;;;;7432:128;542:7244;;-1:-1:-1;;;7522:23:83;;;;;7358:53;;;;;;7760:17;6510:1274;:::o;6699:259::-;542:7244;;-1:-1:-1;;;6927:20:83;;;;;6716:179;6791:33;6658:30;6791:33;;;542:7244;6791:45;:103;6716:179;6791:103;6840:42;;;;;542:7244;6840:54;6716:179;;2557:104:58;;2641:5;;;;;;:13;2557:104;:::o;2641:13::-;;;2557:104;:::o;3803:4116::-;;;542:7244:83;;;;-1:-1:-1;;3803:4116:58;;4383:131;;;;;;;;;;;;4595:10;;4591:368;;5065:20;;;;5061:88;;5435:300;;;542:7244:83;-1:-1:-1;542:7244:83;5954:31:58;;5999:371;;;6813:1;542:7244:83;;6794:1:58;542:7244:83;6793:21:58;542:7244:83;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5999:371:58;;;;-1:-1:-1;5999:371:58;;;5435:300;;;;;;542:7244:83;5435:300:58;;5999:371;6436:21;542:7244:83;3803:4116:58;:::o;5061:88::-;542:7244:83;;-1:-1:-1;;;5112:22:58;;;;;4591:368;4925:19;;;;;;;:::i;542:7244:83:-;;;-1:-1:-1;;;542:7244:83;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;542:7244:83;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;11513:870:61;542:7244:83;;11513:870:61;;;542:7244:83;11513:870:61;11672:7;;;;542:7244:83;11775:28:61;11795:7;;;:::i;11775:28::-;542:7244:83;:::i;:::-;;;;;;;;;;;;;;;;11877:15:61;-1:-1:-1;11873:91:61;;542:7244:83;;12233:11:61;542:7244:83;;;12027:16:61;542:7244:83;;;;;;;12027:16:61;;;;12083:7;12063:43;12083:7;;12063:28;12083:7;;:::i;:::-;12063:28;14249:109;;;;;;14099:265;;12063:28;542:7244:83;;;;;;;;;;;;;;;;;12063:43:61;12233:11;542:7244:83;-1:-1:-1;;;;;542:7244:83;;;12023:189:61;542:7244:83;;;12145:52:61;542:7244:83;12155:41:61;542:7244:83;;:::i;:::-;;;;;;;;12155:41:61;-1:-1:-1;;;;;542:7244:83;;12155:41:61;;;542:7244:83;12145:52:61;:::i;:::-;12023:189;;11873:91;542:7244:83;;-1:-1:-1;;;11919:30:61;;;;;11668:709;12283:52;542:7244:83;;12293:41:61;542:7244:83;;:::i;12293:41:61:-;-1:-1:-1;;;;;542:7244:83;;12293:41:61;;;542:7244:83;12145:52:61;:::i;12283:::-;11678:1;12349:17;;:::o;7084:141:26:-;542:7244:83;-1:-1:-1;;;;;;;;;;;542:7244:83;;;;7150:18:26;7146:73;;7084:141::o;7146:73::-;542:7244:83;;-1:-1:-1;;;7191:17:26;;;;;8587:1642:58;8658:6;;8654:45;;9401:7;10201:10;10142:26;10093;10044;9995;9946;9897;9848;542:7244:83;10189:23:58;9401:7;8663:1;542:7244:83;;;;10826:16:58;10822:99;;8587:1642;542:7244:83;;;;10938:15:58;10934:96;;8587:1642;542:7244:83;;;;11047:15:58;11043:96;;8587:1642;542:7244:83;;;;11156:15:58;11152:96;;8587:1642;542:7244:83;;;;11265:14:58;11261:93;;8587:1642;542:7244:83;;;;11371:14:58;11367:93;;8587:1642;542:7244:83;;;;11477:14:58;11473:93;;8587:1642;542:7244:83;;;11579:64:58;;8587:1642;542:7244:83;;;9858:10:58;;;;:::i;:::-;542:7244:83;;;;;9848:26:58;9907:10;;;;:::i;9897:26::-;9956:10;;;;:::i;9946:26::-;10005:10;;;;:::i;9995:26::-;10054:10;;;;:::i;10044:26::-;10103:10;;;;:::i;10093:26::-;10152:10;;;;:::i;10142:26::-;10201:10;;;:::i;11579:64::-;542:7244:83;;11579:64:58;;11473:93;542:7244:83;11511:11:58;;542:7244:83;;11473:93:58;;;;11367;542:7244:83;11405:11:58;;542:7244:83;;11367:93:58;;;;11261;542:7244:83;11299:11:58;;542:7244:83;;11261:93:58;;;;11152:96;542:7244:83;11191:12:58;;542:7244:83;;11152:96:58;;;;11043;542:7244:83;11082:12:58;;542:7244:83;;11043:96:58;;;;10934;542:7244:83;10973:12:58;;542:7244:83;;10934:96:58;;;;10822:99;10862:13;;;542:7244:83;10822:99:58;;;;12736:433:61;;;12919:10;;;;;;13151:11;;;12736:433;:::o;12912:230::-;2900:5:58;;;;;;2910;;;;542:7244:83;;;;;;;;;14249:109:61;-1:-1:-1;14249:109:61;542:7244:83;14249:109:61;;;-1:-1:-1;14249:109:61;;542:7244:83;;;;;-1:-1:-1;12996:136:61;542:7244:83;;;13055:10:61;12996:136;;12912:230;;;;12996:136;13110:7;;;;;;:::i;:::-;12996:136;;","linkReferences":{},"immutableReferences":{"64520":[{"start":2023,"length":32}],"64523":[{"start":3882,"length":32}],"65474":[{"start":1638,"length":32},{"start":3939,"length":32}],"65477":[{"start":927,"length":32},{"start":8114,"length":32}],"65480":[{"start":995,"length":32},{"start":5626,"length":32},{"start":5911,"length":32}],"65483":[{"start":1508,"length":32},{"start":5473,"length":32},{"start":6037,"length":32}]}},"methodIdentifiers":{"DEFAULT_ADMIN_ROLE()":"a217fddf","FACTORY()":"2dd31000","HOOK_GAS_LIMIT()":"ff54740f","HOOK_RESERVE()":"557cab44","HOOK_SET_ROLE()":"6679191e","NETWORK_LIMIT_SET_ROLE()":"7d24bb27","NETWORK_REGISTRY()":"c0cd7c3e","OPERATOR_NETWORK_OPT_IN_SERVICE()":"1a80e500","OPERATOR_NETWORK_SHARES_SET_ROLE()":"e78eb6ae","OPERATOR_VAULT_OPT_IN_SERVICE()":"128e5d82","TYPE()":"bb24fe8a","VAULT_FACTORY()":"103f2907","VERSION()":"ffa1ad74","getRoleAdmin(bytes32)":"248a9ca3","grantRole(bytes32,address)":"2f2ff15d","hasRole(bytes32,address)":"91d14854","hook()":"7f5a7c7b","initialize(bytes)":"439fab91","maxNetworkLimit(bytes32)":"d15b740e","networkLimit(bytes32)":"3eb22c0f","networkLimitAt(bytes32,uint48,bytes)":"5d32a1c9","onSlash(bytes32,address,uint256,uint48,bytes)":"e49561ee","operatorNetworkShares(bytes32,address)":"42c53e33","operatorNetworkSharesAt(bytes32,address,uint48,bytes)":"1a7a7044","renounceRole(bytes32,address)":"36568abe","revokeRole(bytes32,address)":"d547741f","setHook(address)":"3dfd3873","setMaxNetworkLimit(uint96,uint256)":"23f752d5","setNetworkLimit(bytes32,uint256)":"02145348","setOperatorNetworkShares(bytes32,address,uint256)":"a33bc287","stake(bytes32,address)":"fd4d447c","stakeAt(bytes32,address,uint48,bytes)":"e02f6937","staticDelegateCall(address,bytes)":"9f86fd85","supportsInterface(bytes4)":"01ffc9a7","totalOperatorNetworkShares(bytes32)":"c43dc03f","totalOperatorNetworkSharesAt(bytes32,uint48,bytes)":"8b3f10b0","vault()":"fbfa77cf"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"networkRegistry\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"vaultFactory\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operatorVaultOptInService\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operatorNetworkOptInService\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"delegatorFactory\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"entityType\",\"type\":\"uint64\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"AccessControlBadConfirmation\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"neededRole\",\"type\":\"bytes32\"}],\"name\":\"AccessControlUnauthorizedAccount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AlreadySet\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CheckpointUnorderedInsertion\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"DuplicateRoleHolder\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ExceedsMaxNetworkLimit\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientHookGas\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MathOverflowedMulDiv\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MissingRoleHolders\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotNetwork\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotSlasher\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotVault\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ReentrancyGuardReentrantCall\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"bits\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"SafeCastOverflowedUintDowncast\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ZeroAddressRoleHolder\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint48\",\"name\":\"captureTimestamp\",\"type\":\"uint48\"}],\"name\":\"OnSlash\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"previousAdminRole\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"newAdminRole\",\"type\":\"bytes32\"}],\"name\":\"RoleAdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleRevoked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"hook\",\"type\":\"address\"}],\"name\":\"SetHook\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"SetMaxNetworkLimit\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"SetNetworkLimit\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"}],\"name\":\"SetOperatorNetworkShares\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DEFAULT_ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"FACTORY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"HOOK_GAS_LIMIT\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"HOOK_RESERVE\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"HOOK_SET_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"NETWORK_LIMIT_SET_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"NETWORK_REGISTRY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"OPERATOR_NETWORK_OPT_IN_SERVICE\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"OPERATOR_NETWORK_SHARES_SET_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"OPERATOR_VAULT_OPT_IN_SERVICE\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"TYPE\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"VAULT_FACTORY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"VERSION\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleAdmin\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"grantRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"hook\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"}],\"name\":\"maxNetworkLimit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"}],\"name\":\"networkLimit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hint\",\"type\":\"bytes\"}],\"name\":\"networkLimitAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint48\",\"name\":\"captureTimestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"onSlash\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"operatorNetworkShares\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hint\",\"type\":\"bytes\"}],\"name\":\"operatorNetworkSharesAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"callerConfirmation\",\"type\":\"address\"}],\"name\":\"renounceRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"hook_\",\"type\":\"address\"}],\"name\":\"setHook\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint96\",\"name\":\"identifier\",\"type\":\"uint96\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"setMaxNetworkLimit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"setNetworkLimit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"}],\"name\":\"setOperatorNetworkShares\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"stake\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hints\",\"type\":\"bytes\"}],\"name\":\"stakeAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"staticDelegateCall\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"}],\"name\":\"totalOperatorNetworkShares\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hint\",\"type\":\"bytes\"}],\"name\":\"totalOperatorNetworkSharesAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"vault\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"AccessControlBadConfirmation()\":[{\"details\":\"The caller of a function is not the expected one. NOTE: Don't confuse with {AccessControlUnauthorizedAccount}.\"}],\"AccessControlUnauthorizedAccount(address,bytes32)\":[{\"details\":\"The `account` is missing a role.\"}],\"CheckpointUnorderedInsertion()\":[{\"details\":\"A value was attempted to be inserted on a past checkpoint.\"}],\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"MathOverflowedMulDiv()\":[{\"details\":\"Muldiv operation overflow.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"ReentrancyGuardReentrantCall()\":[{\"details\":\"Unauthorized reentrant call.\"}],\"SafeCastOverflowedUintDowncast(uint8,uint256)\":[{\"details\":\"Value doesn't fit in an uint of `bits` size.\"}]},\"events\":{\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"OnSlash(bytes32,address,uint256,uint48)\":{\"params\":{\"amount\":\"amount of the collateral to be slashed\",\"captureTimestamp\":\"time point when the stake was captured\",\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"}},\"RoleAdminChanged(bytes32,bytes32,bytes32)\":{\"details\":\"Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole` `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite {RoleAdminChanged} not being emitted signaling this.\"},\"RoleGranted(bytes32,address,address)\":{\"details\":\"Emitted when `account` is granted `role`. `sender` is the account that originated the contract call, an admin role bearer except when using {AccessControl-_setupRole}.\"},\"RoleRevoked(bytes32,address,address)\":{\"details\":\"Emitted when `account` is revoked `role`. `sender` is the account that originated the contract call: - if using `revokeRole`, it is the admin role bearer - if using `renounceRole`, it is the role bearer (i.e. `account`)\"},\"SetHook(address)\":{\"params\":{\"hook\":\"address of the hook\"}},\"SetMaxNetworkLimit(bytes32,uint256)\":{\"params\":{\"amount\":\"new maximum subnetwork's limit (how much stake the subnetwork is ready to get)\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"}},\"SetNetworkLimit(bytes32,uint256)\":{\"params\":{\"amount\":\"new subnetwork's limit (how much stake the vault curator is ready to give to the subnetwork)\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"}},\"SetOperatorNetworkShares(bytes32,address,uint256)\":{\"params\":{\"operator\":\"address of the operator\",\"shares\":\"new operator's shares inside the subnetwork (what percentage, which is equal to the shares divided by the total operators' shares, of the subnetwork's stake the vault curator is ready to give to the operator)\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"}}},\"kind\":\"dev\",\"methods\":{\"VERSION()\":{\"details\":\"Must return 1 for this one.\",\"returns\":{\"_0\":\"version of the delegator\"}},\"getRoleAdmin(bytes32)\":{\"details\":\"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}.\"},\"grantRole(bytes32,address)\":{\"details\":\"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event.\"},\"hasRole(bytes32,address)\":{\"details\":\"Returns `true` if `account` has been granted `role`.\"},\"initialize(bytes)\":{\"params\":{\"data\":\"some data to use\"}},\"networkLimit(bytes32)\":{\"params\":{\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"},\"returns\":{\"_0\":\"limit of the subnetwork\"}},\"networkLimitAt(bytes32,uint48,bytes)\":{\"params\":{\"hint\":\"hint for checkpoint index\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\",\"timestamp\":\"time point to get the subnetwork limit at\"},\"returns\":{\"_0\":\"limit of the subnetwork at the given timestamp\"}},\"onSlash(bytes32,address,uint256,uint48,bytes)\":{\"details\":\"Only the vault's slasher can call this function.\",\"params\":{\"amount\":\"amount of the collateral slashed\",\"captureTimestamp\":\"time point when the stake was captured\",\"data\":\"some additional data\",\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"}},\"operatorNetworkShares(bytes32,address)\":{\"params\":{\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"},\"returns\":{\"_0\":\"shares of the operator for the subnetwork\"}},\"operatorNetworkSharesAt(bytes32,address,uint48,bytes)\":{\"params\":{\"hint\":\"hint for checkpoint index\",\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\",\"timestamp\":\"time point to get the operator's shares at\"},\"returns\":{\"_0\":\"shares of the operator for the subnetwork at the given timestamp\"}},\"renounceRole(bytes32,address)\":{\"details\":\"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `callerConfirmation`. May emit a {RoleRevoked} event.\"},\"revokeRole(bytes32,address)\":{\"details\":\"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event.\"},\"setHook(address)\":{\"details\":\"Only a HOOK_SET_ROLE holder can call this function. The hook can have arbitrary logic under certain functions, however, it doesn't affect the stake guarantees.\",\"params\":{\"hook\":\"address of the hook\"}},\"setMaxNetworkLimit(uint96,uint256)\":{\"details\":\"Only a network can call this function.\",\"params\":{\"amount\":\"new maximum subnetwork's limit\"}},\"setNetworkLimit(bytes32,uint256)\":{\"details\":\"Only a NETWORK_LIMIT_SET_ROLE holder can call this function.\",\"params\":{\"amount\":\"new limit of the subnetwork\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"}},\"setOperatorNetworkShares(bytes32,address,uint256)\":{\"details\":\"Only an OPERATOR_NETWORK_SHARES_SET_ROLE holder can call this function.\",\"params\":{\"operator\":\"address of the operator\",\"shares\":\"new shares of the operator for the subnetwork\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"}},\"stake(bytes32,address)\":{\"details\":\"Warning: this function is not safe to use for stake capturing, as it can change by the end of the block.\",\"params\":{\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"},\"returns\":{\"_0\":\"slashable stake until the end of the next epoch\"}},\"stakeAt(bytes32,address,uint48,bytes)\":{\"details\":\"Warning: it is not safe to use timestamp >= current one for the stake capturing, as it can change later.\",\"params\":{\"hints\":\"hints for the checkpoints' indexes\",\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\",\"timestamp\":\"time point to capture the stake at\"},\"returns\":{\"_0\":\"slashable stake at the given timestamp until the end of the consequent epoch\"}},\"staticDelegateCall(address,bytes)\":{\"details\":\"It allows to use this contract's storage on-chain.\",\"params\":{\"data\":\"data to make a delegatecall with\",\"target\":\"address of the contract to make a delegatecall to\"}},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"},\"totalOperatorNetworkShares(bytes32)\":{\"params\":{\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"},\"returns\":{\"_0\":\"total shares of the operators for the subnetwork\"}},\"totalOperatorNetworkSharesAt(bytes32,uint48,bytes)\":{\"params\":{\"hint\":\"hint for checkpoint index\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\",\"timestamp\":\"time point to get the total operators' shares at\"},\"returns\":{\"_0\":\"total shares of the operators for the subnetwork at the given timestamp\"}}},\"stateVariables\":{\"NETWORK_LIMIT_SET_ROLE\":{\"return\":\"identifier of the subnetwork limit setter role\",\"returns\":{\"_0\":\"identifier of the subnetwork limit setter role\"}},\"OPERATOR_NETWORK_SHARES_SET_ROLE\":{\"return\":\"identifier of the operator-subnetwork shares setter role\",\"returns\":{\"_0\":\"identifier of the operator-subnetwork shares setter role\"}}},\"version\":1},\"userdoc\":{\"events\":{\"OnSlash(bytes32,address,uint256,uint48)\":{\"notice\":\"Emitted when a slash happens.\"},\"SetHook(address)\":{\"notice\":\"Emitted when a hook is set.\"},\"SetMaxNetworkLimit(bytes32,uint256)\":{\"notice\":\"Emitted when a subnetwork's maximum limit is set.\"},\"SetNetworkLimit(bytes32,uint256)\":{\"notice\":\"Emitted when a subnetwork's limit is set.\"},\"SetOperatorNetworkShares(bytes32,address,uint256)\":{\"notice\":\"Emitted when an operator's shares inside a subnetwork are set.\"}},\"kind\":\"user\",\"methods\":{\"FACTORY()\":{\"notice\":\"Get the factory's address.\"},\"HOOK_GAS_LIMIT()\":{\"notice\":\"Get a gas limit for the hook.\"},\"HOOK_RESERVE()\":{\"notice\":\"Get a reserve gas between the gas limit check and the hook's execution.\"},\"HOOK_SET_ROLE()\":{\"notice\":\"Get a hook setter's role.\"},\"NETWORK_LIMIT_SET_ROLE()\":{\"notice\":\"Get a subnetwork limit setter's role.\"},\"NETWORK_REGISTRY()\":{\"notice\":\"Get the network registry's address.\"},\"OPERATOR_NETWORK_OPT_IN_SERVICE()\":{\"notice\":\"Get the operator-network opt-in service's address.\"},\"OPERATOR_NETWORK_SHARES_SET_ROLE()\":{\"notice\":\"Get an operator-subnetwork shares setter's role.\"},\"OPERATOR_VAULT_OPT_IN_SERVICE()\":{\"notice\":\"Get the operator-vault opt-in service's address.\"},\"TYPE()\":{\"notice\":\"Get the entity's type.\"},\"VAULT_FACTORY()\":{\"notice\":\"Get the vault factory's address.\"},\"VERSION()\":{\"notice\":\"Get a version of the delegator (different versions mean different interfaces).\"},\"hook()\":{\"notice\":\"Get the hook's address.\"},\"initialize(bytes)\":{\"notice\":\"Initialize this entity contract by using a given data.\"},\"maxNetworkLimit(bytes32)\":{\"notice\":\"Get a particular subnetwork's maximum limit (meaning the subnetwork is not ready to get more as a stake).\"},\"networkLimit(bytes32)\":{\"notice\":\"Get a subnetwork's limit (how much stake the vault curator is ready to give to the subnetwork).\"},\"networkLimitAt(bytes32,uint48,bytes)\":{\"notice\":\"Get a subnetwork's limit at a given timestamp using a hint (how much stake the vault curator is ready to give to the subnetwork).\"},\"onSlash(bytes32,address,uint256,uint48,bytes)\":{\"notice\":\"Called when a slash happens.\"},\"operatorNetworkShares(bytes32,address)\":{\"notice\":\"Get an operator's shares for a subnetwork (what percentage, which is equal to the shares divided by the total operators' shares, of the subnetwork's stake the vault curator is ready to give to the operator).\"},\"operatorNetworkSharesAt(bytes32,address,uint48,bytes)\":{\"notice\":\"Get an operator's shares for a subnetwork at a given timestamp using a hint (what percentage, which is equal to the shares divided by the total operators' shares, of the subnetwork's stake the vault curator is ready to give to the operator).\"},\"setHook(address)\":{\"notice\":\"Set a new hook.\"},\"setMaxNetworkLimit(uint96,uint256)\":{\"notice\":\"Set a maximum limit for a subnetwork (how much stake the subnetwork is ready to get). identifier identifier of the subnetwork\"},\"setNetworkLimit(bytes32,uint256)\":{\"notice\":\"Set a subnetwork's limit (how much stake the vault curator is ready to give to the subnetwork).\"},\"setOperatorNetworkShares(bytes32,address,uint256)\":{\"notice\":\"Set an operator's shares for a subnetwork (what percentage, which is equal to the shares divided by the total operators' shares, of the subnetwork's stake the vault curator is ready to give to the operator).\"},\"stake(bytes32,address)\":{\"notice\":\"Get a stake that a given subnetwork will be able to slash for a certain operator until the end of the next epoch (if no cross-slashing and no slashings by the subnetwork).\"},\"stakeAt(bytes32,address,uint48,bytes)\":{\"notice\":\"Get a stake that a given subnetwork could be able to slash for a certain operator at a given timestamp until the end of the consequent epoch using hints (if no cross-slashing and no slashings by the subnetwork).\"},\"staticDelegateCall(address,bytes)\":{\"notice\":\"Make a delegatecall from this contract to a given target contract with a particular data (always reverts with a return data).\"},\"totalOperatorNetworkShares(bytes32)\":{\"notice\":\"Get a sum of operators' shares for a subnetwork.\"},\"totalOperatorNetworkSharesAt(bytes32,uint48,bytes)\":{\"notice\":\"Get a sum of operators' shares for a subnetwork at a given timestamp using a hint.\"},\"vault()\":{\"notice\":\"Get the vault's address.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/contracts/delegator/NetworkRestakeDelegator.sol\":\"NetworkRestakeDelegator\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol\":{\"keccak256\":\"0x6662ec4e5cefca03eeadd073e9469df8d2944bb2ee8ec8f7622c2c46aab5f225\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4d8544c6f8daa4d1bc215c6a72fe0acdb748664a105b0e5efc19295667521d45\",\"dweb:/ipfs/QmdGWqdnXT8S3RgCR6aV8XHZrsybieMQLLnug1NtpSjEXN\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609\",\"dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9\",\"dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardUpgradeable.sol\":{\"keccak256\":\"0xb44e086e941292cdc7f440de51478493894ef0b1aeccb0c4047445919f667f74\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://942dad22fbdc1669f025540ba63aa3ccfad5f8458fc5d4525b31ebf272e7af45\",\"dweb:/ipfs/Qmdo4X2M82aM3AMoW2kf2jhYkSCyC4T1pHNd6obdsDFnAB\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol\":{\"keccak256\":\"0xdaba3f7c42c55b2896353f32bd27d4d5f8bae741b3b05d4c53f67abc4dc47ce8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1fa2e61141c602510bcd2cd936ed9561922ac8772a9b9c9a9db091a74e354a45\",\"dweb:/ipfs/QmcHQDDoEBwJmwUbzoVkytvJsBx3KVHYFFnDkvRGWh9Wmh\"]},\"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0xb6b36edd6a2999fd243ff226d6cbf84bd71af2432bbd0dfe19392996a1d9cb41\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1fd2f35495652e57e3f99bc6c510bc5f7dd398a176ea2e72d8ed730aebc6ca26\",\"dweb:/ipfs/QmTQV6X4gkikTib49cho5iDX3JvSQbdsoEChoDwrk3CbbH\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875\",\"dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0xe19a4d5f31d2861e7344e8e535e2feafb913d806d3e2b5fe7782741a2a7094fe\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4aed79c0fa6f0546ed02f2f683e8f77f0fd2ed7eb34d8bbf3d373c9a6d95b13c\",\"dweb:/ipfs/QmWqVz6UAVqmnWU5pqYPt1o6iDEZyPaBraAA3rKfTTSfYj\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/Checkpoints.sol\":{\"keccak256\":\"0xbdc5e074d7dd6678f67e92b1a51a20226801a407b0e1af3da367c5d1ff4519ad\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a36cca6b22fff3db16fc789ff6c60eea71d4b156065d4d0c83a0bc5e91a77a8b\",\"dweb:/ipfs/QmYN3exd5AemxjBrN8XMB1p5LbbE16uC3sjbYjwi8AjcGR\"]},\"lib/openzeppelin-contracts/contracts/utils/types/Time.sol\":{\"keccak256\":\"0xc7755af115020049e4140f224f9ee88d7e1799ffb0646f37bf0df24bf6213f58\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7f09bf94d5274334ec021f61a04659db303f31e60460e14b709c9bf187740111\",\"dweb:/ipfs/QmNvgomZYUwFAt4cZbPWAiTeSZQreGehY9BK5xyVJsUttb\"]},\"src/contracts/common/Entity.sol\":{\"keccak256\":\"0x3d61a932995b8443381f3950542d388223a2c26dd5d29a3274dea3baa7388bd7\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://7cdf5f03ca72fd263fd32ff59c8d88ddca911ae83896a287d10772c1bbe9b138\",\"dweb:/ipfs/QmbP84r5BWT1Rn9AYTntWSf3xUMTTCohTZJFhbBhDXFoHa\"]},\"src/contracts/common/StaticDelegateCallable.sol\":{\"keccak256\":\"0x350029aa8955eacaffffaeb58babc5c98e80ebc5c5db388ed17ee6465f4a9d90\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://eb392a8ee9050e0af606897df63e3404e3829e8b688b580663892f9664195764\",\"dweb:/ipfs/QmaXC8jqV8UrrAFkzXTEv2fJF56sy33HhLxAzaRZmUxuXD\"]},\"src/contracts/delegator/BaseDelegator.sol\":{\"keccak256\":\"0x7c54d491fdd4415b764a9c8defa068e56d4c0c8c9419be0053a1d377669290e8\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://9238bfbad0f6eeb0dc7727724de14380f1980b395902269703d5e2ef07e52e10\",\"dweb:/ipfs/QmPJn1V4HNXcEghYvogGuSTF24dSQUPosR5qtsXcmNqRm3\"]},\"src/contracts/delegator/NetworkRestakeDelegator.sol\":{\"keccak256\":\"0xd3a8e6522f9c6fdcc2da837c9023afd6bdff2bce45a35590320c475519e3636d\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://58b17a87f6554f08376f9ea7fedf486a4aa75801bf0ad8b23ff5a46959b6b7a3\",\"dweb:/ipfs/QmSTmNh67tYt8CmjVZb57r8N3qX5yeYdMApKPJm3qvQgQw\"]},\"src/contracts/libraries/Checkpoints.sol\":{\"keccak256\":\"0xba90097c8bfe0a975499428b5f8ac5569483c7d92ccc28c12d70de416aae040c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://12f5d93ca94cd06d3147db68993165a58e17903ed53682560de61f3085ad4609\",\"dweb:/ipfs/QmePiuAqvXprMLmFZkGZeGjvGPAvsEDHfCDv7BoQhXu9xE\"]},\"src/contracts/libraries/Subnetwork.sol\":{\"keccak256\":\"0xf5ef5506fd66082b3c2e7f3df37529f5a8efad32ac62e7c8914bd63219190bfe\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba031a54ee0d0e9a270c2b9e18437f5668cfeb659cfd5fe0677459d7fcac2a56\",\"dweb:/ipfs/QmReP3H7qQ78tAfgLnJKsNEQNCQfF1X1Get38Ffd4kzq32\"]},\"src/interfaces/common/IEntity.sol\":{\"keccak256\":\"0x8ef4b63d6da63489778ccd5f8d13ebdd527dd4b62730b2c616df5af7474d2d21\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a8d69576a9219d85c50816a18ad53a4d53cfcb27ed38b8cccc808dc2734b71b\",\"dweb:/ipfs/QmYVN3P4Q4REvBWJ97TbAcaxm3uyB2anV6NSGa6ZtSwcEv\"]},\"src/interfaces/common/IMigratableEntity.sol\":{\"keccak256\":\"0x8f5f2809f3afbe8ebfbb365dd7b57b4dd3b6f9943a6187eaf648d45895b8e3c4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ffe640537d539e7a4fde70d30d3e4c57f4ba9c2c25c450cea713aae38e8fd5c\",\"dweb:/ipfs/QmSUTGzvdcn1R1KB7tLThMRtESsfPbeXDhhhKWGtntzBds\"]},\"src/interfaces/common/IRegistry.sol\":{\"keccak256\":\"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014\",\"dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK\"]},\"src/interfaces/common/IStaticDelegateCallable.sol\":{\"keccak256\":\"0xa335d4e81b9071b7de66ef92b43ff20671d86516eb1be46fef29a3483cd3f5d5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d464b9db863c14c05547d2b23352f2e9b7b784799cf09f6bbc4906a2a74e3516\",\"dweb:/ipfs/QmUVWzFvJz7eEbDQKiFTTzwi7TEbjcs3VmwdM4kuptAKvi\"]},\"src/interfaces/delegator/IBaseDelegator.sol\":{\"keccak256\":\"0x96bb312f032e17accce3f8f80936d99468029d6b37c9ca74acdb4b026a0148ee\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2a66dcb5b7d1a6ef6a363431ea98ebd78bc4fdd3d7a134d9b542dc66e7d025c2\",\"dweb:/ipfs/QmRhTPLd2ZAyRHmJUFUcWKs9b3if49QY17LYZuRqWmghw8\"]},\"src/interfaces/delegator/IDelegatorHook.sol\":{\"keccak256\":\"0xc51aa8d7d1f6c8043ee819b7aeb86da0e993912e1442098df897e299f01f9f46\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://adddf5cb2ba282aeb576b26efb28640f865a1721cc9b6eee8b3ee0457a2c9780\",\"dweb:/ipfs/QmNYgAmnLRwWZbhTuQhZs9rx4zcme1df5mEepkrniorSoW\"]},\"src/interfaces/delegator/INetworkRestakeDelegator.sol\":{\"keccak256\":\"0xe7030fe30389a147fd710e3436ec346b4842695fd3e65a81b95375c9f1d633fc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://739c7e66d301778054f5c90bee45ec9438f68afba8a03eaaac52064c73b115ad\",\"dweb:/ipfs/QmfZ2ytKcTykAc76nxhg8ikUXV8NdBpetqb8W4YWPcox1Z\"]},\"src/interfaces/service/IOptInService.sol\":{\"keccak256\":\"0x76fb5460a6d87a5705433d4fbeff7253cd75b8bbd0c888b2088f16e86ace146a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://990322019b3d11465f7024bae77ccbf7e2fe5d6fa3c754584778f37d04fa1337\",\"dweb:/ipfs/QmaSNHzcqxTkUCG9a4nqVfLECHLdjdrwAnDi3yDC7tDL24\"]},\"src/interfaces/vault/IVault.sol\":{\"keccak256\":\"0xffee01d383cd4e1a5530c614bf4360c1ef070c288abec9da1eb531b51bc07235\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://04f0046cac285d8ec44ebbb1f79dc94fab4495767190cad8364fbc1fafaadfb9\",\"dweb:/ipfs/QmUawAunwzXfCyShWfhKeThAgKtqe51hmrxvrXvM772M2R\"]},\"src/interfaces/vault/IVaultStorage.sol\":{\"keccak256\":\"0x592626f13754194f83047135de19229c49390bd59e34659b1bb38be71d973a22\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://06a6a9dfddd05e580b32bebe2cff4f63ba26a653180676d58225dd30d9c89d3e\",\"dweb:/ipfs/QmdgzBeY6Sxo8mGtyBxtv1tM1c2kU6J6zjeRd7vuXm4DU6\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.25+commit.b61c2a91"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"networkRegistry","type":"address"},{"internalType":"address","name":"vaultFactory","type":"address"},{"internalType":"address","name":"operatorVaultOptInService","type":"address"},{"internalType":"address","name":"operatorNetworkOptInService","type":"address"},{"internalType":"address","name":"delegatorFactory","type":"address"},{"internalType":"uint64","name":"entityType","type":"uint64"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"AccessControlBadConfirmation"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bytes32","name":"neededRole","type":"bytes32"}],"type":"error","name":"AccessControlUnauthorizedAccount"},{"inputs":[],"type":"error","name":"AlreadySet"},{"inputs":[],"type":"error","name":"CheckpointUnorderedInsertion"},{"inputs":[],"type":"error","name":"DuplicateRoleHolder"},{"inputs":[],"type":"error","name":"ExceedsMaxNetworkLimit"},{"inputs":[],"type":"error","name":"InsufficientHookGas"},{"inputs":[],"type":"error","name":"InvalidInitialization"},{"inputs":[],"type":"error","name":"MathOverflowedMulDiv"},{"inputs":[],"type":"error","name":"MissingRoleHolders"},{"inputs":[],"type":"error","name":"NotInitialized"},{"inputs":[],"type":"error","name":"NotInitializing"},{"inputs":[],"type":"error","name":"NotNetwork"},{"inputs":[],"type":"error","name":"NotSlasher"},{"inputs":[],"type":"error","name":"NotVault"},{"inputs":[],"type":"error","name":"ReentrancyGuardReentrantCall"},{"inputs":[{"internalType":"uint8","name":"bits","type":"uint8"},{"internalType":"uint256","name":"value","type":"uint256"}],"type":"error","name":"SafeCastOverflowedUintDowncast"},{"inputs":[],"type":"error","name":"ZeroAddressRoleHolder"},{"inputs":[{"internalType":"uint64","name":"version","type":"uint64","indexed":false}],"type":"event","name":"Initialized","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32","indexed":true},{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false},{"internalType":"uint48","name":"captureTimestamp","type":"uint48","indexed":false}],"type":"event","name":"OnSlash","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"bytes32","name":"previousAdminRole","type":"bytes32","indexed":true},{"internalType":"bytes32","name":"newAdminRole","type":"bytes32","indexed":true}],"type":"event","name":"RoleAdminChanged","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"address","name":"sender","type":"address","indexed":true}],"type":"event","name":"RoleGranted","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"address","name":"sender","type":"address","indexed":true}],"type":"event","name":"RoleRevoked","anonymous":false},{"inputs":[{"internalType":"address","name":"hook","type":"address","indexed":true}],"type":"event","name":"SetHook","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"SetMaxNetworkLimit","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"SetNetworkLimit","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32","indexed":true},{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"uint256","name":"shares","type":"uint256","indexed":false}],"type":"event","name":"SetOperatorNetworkShares","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"DEFAULT_ADMIN_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"FACTORY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"HOOK_GAS_LIMIT","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"HOOK_RESERVE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"HOOK_SET_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"NETWORK_LIMIT_SET_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"NETWORK_REGISTRY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"OPERATOR_NETWORK_OPT_IN_SERVICE","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"OPERATOR_NETWORK_SHARES_SET_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"OPERATOR_VAULT_OPT_IN_SERVICE","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"TYPE","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"VAULT_FACTORY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"VERSION","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getRoleAdmin","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"grantRole"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"hasRole","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"hook","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"}],"stateMutability":"view","type":"function","name":"maxNetworkLimit","outputs":[{"internalType":"uint256","name":"value","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"}],"stateMutability":"view","type":"function","name":"networkLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"uint48","name":"timestamp","type":"uint48"},{"internalType":"bytes","name":"hint","type":"bytes"}],"stateMutability":"view","type":"function","name":"networkLimitAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint48","name":"captureTimestamp","type":"uint48"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"onSlash"},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"operatorNetworkShares","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint48","name":"timestamp","type":"uint48"},{"internalType":"bytes","name":"hint","type":"bytes"}],"stateMutability":"view","type":"function","name":"operatorNetworkSharesAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"callerConfirmation","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"renounceRole"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"revokeRole"},{"inputs":[{"internalType":"address","name":"hook_","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setHook"},{"inputs":[{"internalType":"uint96","name":"identifier","type":"uint96"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setMaxNetworkLimit"},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setNetworkLimit"},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint256","name":"shares","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setOperatorNetworkShares"},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"stake","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint48","name":"timestamp","type":"uint48"},{"internalType":"bytes","name":"hints","type":"bytes"}],"stateMutability":"view","type":"function","name":"stakeAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"staticDelegateCall"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"}],"stateMutability":"view","type":"function","name":"totalOperatorNetworkShares","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"uint48","name":"timestamp","type":"uint48"},{"internalType":"bytes","name":"hint","type":"bytes"}],"stateMutability":"view","type":"function","name":"totalOperatorNetworkSharesAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"vault","outputs":[{"internalType":"address","name":"","type":"address"}]}],"devdoc":{"kind":"dev","methods":{"VERSION()":{"details":"Must return 1 for this one.","returns":{"_0":"version of the delegator"}},"getRoleAdmin(bytes32)":{"details":"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}."},"grantRole(bytes32,address)":{"details":"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event."},"hasRole(bytes32,address)":{"details":"Returns `true` if `account` has been granted `role`."},"initialize(bytes)":{"params":{"data":"some data to use"}},"networkLimit(bytes32)":{"params":{"subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"},"returns":{"_0":"limit of the subnetwork"}},"networkLimitAt(bytes32,uint48,bytes)":{"params":{"hint":"hint for checkpoint index","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)","timestamp":"time point to get the subnetwork limit at"},"returns":{"_0":"limit of the subnetwork at the given timestamp"}},"onSlash(bytes32,address,uint256,uint48,bytes)":{"details":"Only the vault's slasher can call this function.","params":{"amount":"amount of the collateral slashed","captureTimestamp":"time point when the stake was captured","data":"some additional data","operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"}},"operatorNetworkShares(bytes32,address)":{"params":{"operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"},"returns":{"_0":"shares of the operator for the subnetwork"}},"operatorNetworkSharesAt(bytes32,address,uint48,bytes)":{"params":{"hint":"hint for checkpoint index","operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)","timestamp":"time point to get the operator's shares at"},"returns":{"_0":"shares of the operator for the subnetwork at the given timestamp"}},"renounceRole(bytes32,address)":{"details":"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `callerConfirmation`. May emit a {RoleRevoked} event."},"revokeRole(bytes32,address)":{"details":"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event."},"setHook(address)":{"details":"Only a HOOK_SET_ROLE holder can call this function. The hook can have arbitrary logic under certain functions, however, it doesn't affect the stake guarantees.","params":{"hook":"address of the hook"}},"setMaxNetworkLimit(uint96,uint256)":{"details":"Only a network can call this function.","params":{"amount":"new maximum subnetwork's limit"}},"setNetworkLimit(bytes32,uint256)":{"details":"Only a NETWORK_LIMIT_SET_ROLE holder can call this function.","params":{"amount":"new limit of the subnetwork","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"}},"setOperatorNetworkShares(bytes32,address,uint256)":{"details":"Only an OPERATOR_NETWORK_SHARES_SET_ROLE holder can call this function.","params":{"operator":"address of the operator","shares":"new shares of the operator for the subnetwork","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"}},"stake(bytes32,address)":{"details":"Warning: this function is not safe to use for stake capturing, as it can change by the end of the block.","params":{"operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"},"returns":{"_0":"slashable stake until the end of the next epoch"}},"stakeAt(bytes32,address,uint48,bytes)":{"details":"Warning: it is not safe to use timestamp >= current one for the stake capturing, as it can change later.","params":{"hints":"hints for the checkpoints' indexes","operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)","timestamp":"time point to capture the stake at"},"returns":{"_0":"slashable stake at the given timestamp until the end of the consequent epoch"}},"staticDelegateCall(address,bytes)":{"details":"It allows to use this contract's storage on-chain.","params":{"data":"data to make a delegatecall with","target":"address of the contract to make a delegatecall to"}},"supportsInterface(bytes4)":{"details":"See {IERC165-supportsInterface}."},"totalOperatorNetworkShares(bytes32)":{"params":{"subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"},"returns":{"_0":"total shares of the operators for the subnetwork"}},"totalOperatorNetworkSharesAt(bytes32,uint48,bytes)":{"params":{"hint":"hint for checkpoint index","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)","timestamp":"time point to get the total operators' shares at"},"returns":{"_0":"total shares of the operators for the subnetwork at the given timestamp"}}},"version":1},"userdoc":{"kind":"user","methods":{"FACTORY()":{"notice":"Get the factory's address."},"HOOK_GAS_LIMIT()":{"notice":"Get a gas limit for the hook."},"HOOK_RESERVE()":{"notice":"Get a reserve gas between the gas limit check and the hook's execution."},"HOOK_SET_ROLE()":{"notice":"Get a hook setter's role."},"NETWORK_LIMIT_SET_ROLE()":{"notice":"Get a subnetwork limit setter's role."},"NETWORK_REGISTRY()":{"notice":"Get the network registry's address."},"OPERATOR_NETWORK_OPT_IN_SERVICE()":{"notice":"Get the operator-network opt-in service's address."},"OPERATOR_NETWORK_SHARES_SET_ROLE()":{"notice":"Get an operator-subnetwork shares setter's role."},"OPERATOR_VAULT_OPT_IN_SERVICE()":{"notice":"Get the operator-vault opt-in service's address."},"TYPE()":{"notice":"Get the entity's type."},"VAULT_FACTORY()":{"notice":"Get the vault factory's address."},"VERSION()":{"notice":"Get a version of the delegator (different versions mean different interfaces)."},"hook()":{"notice":"Get the hook's address."},"initialize(bytes)":{"notice":"Initialize this entity contract by using a given data."},"maxNetworkLimit(bytes32)":{"notice":"Get a particular subnetwork's maximum limit (meaning the subnetwork is not ready to get more as a stake)."},"networkLimit(bytes32)":{"notice":"Get a subnetwork's limit (how much stake the vault curator is ready to give to the subnetwork)."},"networkLimitAt(bytes32,uint48,bytes)":{"notice":"Get a subnetwork's limit at a given timestamp using a hint (how much stake the vault curator is ready to give to the subnetwork)."},"onSlash(bytes32,address,uint256,uint48,bytes)":{"notice":"Called when a slash happens."},"operatorNetworkShares(bytes32,address)":{"notice":"Get an operator's shares for a subnetwork (what percentage, which is equal to the shares divided by the total operators' shares, of the subnetwork's stake the vault curator is ready to give to the operator)."},"operatorNetworkSharesAt(bytes32,address,uint48,bytes)":{"notice":"Get an operator's shares for a subnetwork at a given timestamp using a hint (what percentage, which is equal to the shares divided by the total operators' shares, of the subnetwork's stake the vault curator is ready to give to the operator)."},"setHook(address)":{"notice":"Set a new hook."},"setMaxNetworkLimit(uint96,uint256)":{"notice":"Set a maximum limit for a subnetwork (how much stake the subnetwork is ready to get). identifier identifier of the subnetwork"},"setNetworkLimit(bytes32,uint256)":{"notice":"Set a subnetwork's limit (how much stake the vault curator is ready to give to the subnetwork)."},"setOperatorNetworkShares(bytes32,address,uint256)":{"notice":"Set an operator's shares for a subnetwork (what percentage, which is equal to the shares divided by the total operators' shares, of the subnetwork's stake the vault curator is ready to give to the operator)."},"stake(bytes32,address)":{"notice":"Get a stake that a given subnetwork will be able to slash for a certain operator until the end of the next epoch (if no cross-slashing and no slashings by the subnetwork)."},"stakeAt(bytes32,address,uint48,bytes)":{"notice":"Get a stake that a given subnetwork could be able to slash for a certain operator at a given timestamp until the end of the consequent epoch using hints (if no cross-slashing and no slashings by the subnetwork)."},"staticDelegateCall(address,bytes)":{"notice":"Make a delegatecall from this contract to a given target contract with a particular data (always reverts with a return data)."},"totalOperatorNetworkShares(bytes32)":{"notice":"Get a sum of operators' shares for a subnetwork."},"totalOperatorNetworkSharesAt(bytes32,uint48,bytes)":{"notice":"Get a sum of operators' shares for a subnetwork at a given timestamp using a hint."},"vault()":{"notice":"Get the vault's address."}},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/contracts/delegator/NetworkRestakeDelegator.sol":"NetworkRestakeDelegator"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol":{"keccak256":"0x6662ec4e5cefca03eeadd073e9469df8d2944bb2ee8ec8f7622c2c46aab5f225","urls":["bzz-raw://4d8544c6f8daa4d1bc215c6a72fe0acdb748664a105b0e5efc19295667521d45","dweb:/ipfs/QmdGWqdnXT8S3RgCR6aV8XHZrsybieMQLLnug1NtpSjEXN"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b","urls":["bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609","dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol":{"keccak256":"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397","urls":["bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9","dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardUpgradeable.sol":{"keccak256":"0xb44e086e941292cdc7f440de51478493894ef0b1aeccb0c4047445919f667f74","urls":["bzz-raw://942dad22fbdc1669f025540ba63aa3ccfad5f8458fc5d4525b31ebf272e7af45","dweb:/ipfs/Qmdo4X2M82aM3AMoW2kf2jhYkSCyC4T1pHNd6obdsDFnAB"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol":{"keccak256":"0xdaba3f7c42c55b2896353f32bd27d4d5f8bae741b3b05d4c53f67abc4dc47ce8","urls":["bzz-raw://1fa2e61141c602510bcd2cd936ed9561922ac8772a9b9c9a9db091a74e354a45","dweb:/ipfs/QmcHQDDoEBwJmwUbzoVkytvJsBx3KVHYFFnDkvRGWh9Wmh"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol":{"keccak256":"0xb6b36edd6a2999fd243ff226d6cbf84bd71af2432bbd0dfe19392996a1d9cb41","urls":["bzz-raw://1fd2f35495652e57e3f99bc6c510bc5f7dd398a176ea2e72d8ed730aebc6ca26","dweb:/ipfs/QmTQV6X4gkikTib49cho5iDX3JvSQbdsoEChoDwrk3CbbH"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b","urls":["bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df","dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d","urls":["bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875","dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol":{"keccak256":"0xe19a4d5f31d2861e7344e8e535e2feafb913d806d3e2b5fe7782741a2a7094fe","urls":["bzz-raw://4aed79c0fa6f0546ed02f2f683e8f77f0fd2ed7eb34d8bbf3d373c9a6d95b13c","dweb:/ipfs/QmWqVz6UAVqmnWU5pqYPt1o6iDEZyPaBraAA3rKfTTSfYj"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/Checkpoints.sol":{"keccak256":"0xbdc5e074d7dd6678f67e92b1a51a20226801a407b0e1af3da367c5d1ff4519ad","urls":["bzz-raw://a36cca6b22fff3db16fc789ff6c60eea71d4b156065d4d0c83a0bc5e91a77a8b","dweb:/ipfs/QmYN3exd5AemxjBrN8XMB1p5LbbE16uC3sjbYjwi8AjcGR"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/types/Time.sol":{"keccak256":"0xc7755af115020049e4140f224f9ee88d7e1799ffb0646f37bf0df24bf6213f58","urls":["bzz-raw://7f09bf94d5274334ec021f61a04659db303f31e60460e14b709c9bf187740111","dweb:/ipfs/QmNvgomZYUwFAt4cZbPWAiTeSZQreGehY9BK5xyVJsUttb"],"license":"MIT"},"src/contracts/common/Entity.sol":{"keccak256":"0x3d61a932995b8443381f3950542d388223a2c26dd5d29a3274dea3baa7388bd7","urls":["bzz-raw://7cdf5f03ca72fd263fd32ff59c8d88ddca911ae83896a287d10772c1bbe9b138","dweb:/ipfs/QmbP84r5BWT1Rn9AYTntWSf3xUMTTCohTZJFhbBhDXFoHa"],"license":"BUSL-1.1"},"src/contracts/common/StaticDelegateCallable.sol":{"keccak256":"0x350029aa8955eacaffffaeb58babc5c98e80ebc5c5db388ed17ee6465f4a9d90","urls":["bzz-raw://eb392a8ee9050e0af606897df63e3404e3829e8b688b580663892f9664195764","dweb:/ipfs/QmaXC8jqV8UrrAFkzXTEv2fJF56sy33HhLxAzaRZmUxuXD"],"license":"BUSL-1.1"},"src/contracts/delegator/BaseDelegator.sol":{"keccak256":"0x7c54d491fdd4415b764a9c8defa068e56d4c0c8c9419be0053a1d377669290e8","urls":["bzz-raw://9238bfbad0f6eeb0dc7727724de14380f1980b395902269703d5e2ef07e52e10","dweb:/ipfs/QmPJn1V4HNXcEghYvogGuSTF24dSQUPosR5qtsXcmNqRm3"],"license":"BUSL-1.1"},"src/contracts/delegator/NetworkRestakeDelegator.sol":{"keccak256":"0xd3a8e6522f9c6fdcc2da837c9023afd6bdff2bce45a35590320c475519e3636d","urls":["bzz-raw://58b17a87f6554f08376f9ea7fedf486a4aa75801bf0ad8b23ff5a46959b6b7a3","dweb:/ipfs/QmSTmNh67tYt8CmjVZb57r8N3qX5yeYdMApKPJm3qvQgQw"],"license":"BUSL-1.1"},"src/contracts/libraries/Checkpoints.sol":{"keccak256":"0xba90097c8bfe0a975499428b5f8ac5569483c7d92ccc28c12d70de416aae040c","urls":["bzz-raw://12f5d93ca94cd06d3147db68993165a58e17903ed53682560de61f3085ad4609","dweb:/ipfs/QmePiuAqvXprMLmFZkGZeGjvGPAvsEDHfCDv7BoQhXu9xE"],"license":"MIT"},"src/contracts/libraries/Subnetwork.sol":{"keccak256":"0xf5ef5506fd66082b3c2e7f3df37529f5a8efad32ac62e7c8914bd63219190bfe","urls":["bzz-raw://ba031a54ee0d0e9a270c2b9e18437f5668cfeb659cfd5fe0677459d7fcac2a56","dweb:/ipfs/QmReP3H7qQ78tAfgLnJKsNEQNCQfF1X1Get38Ffd4kzq32"],"license":"MIT"},"src/interfaces/common/IEntity.sol":{"keccak256":"0x8ef4b63d6da63489778ccd5f8d13ebdd527dd4b62730b2c616df5af7474d2d21","urls":["bzz-raw://5a8d69576a9219d85c50816a18ad53a4d53cfcb27ed38b8cccc808dc2734b71b","dweb:/ipfs/QmYVN3P4Q4REvBWJ97TbAcaxm3uyB2anV6NSGa6ZtSwcEv"],"license":"MIT"},"src/interfaces/common/IMigratableEntity.sol":{"keccak256":"0x8f5f2809f3afbe8ebfbb365dd7b57b4dd3b6f9943a6187eaf648d45895b8e3c4","urls":["bzz-raw://0ffe640537d539e7a4fde70d30d3e4c57f4ba9c2c25c450cea713aae38e8fd5c","dweb:/ipfs/QmSUTGzvdcn1R1KB7tLThMRtESsfPbeXDhhhKWGtntzBds"],"license":"MIT"},"src/interfaces/common/IRegistry.sol":{"keccak256":"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb","urls":["bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014","dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK"],"license":"MIT"},"src/interfaces/common/IStaticDelegateCallable.sol":{"keccak256":"0xa335d4e81b9071b7de66ef92b43ff20671d86516eb1be46fef29a3483cd3f5d5","urls":["bzz-raw://d464b9db863c14c05547d2b23352f2e9b7b784799cf09f6bbc4906a2a74e3516","dweb:/ipfs/QmUVWzFvJz7eEbDQKiFTTzwi7TEbjcs3VmwdM4kuptAKvi"],"license":"MIT"},"src/interfaces/delegator/IBaseDelegator.sol":{"keccak256":"0x96bb312f032e17accce3f8f80936d99468029d6b37c9ca74acdb4b026a0148ee","urls":["bzz-raw://2a66dcb5b7d1a6ef6a363431ea98ebd78bc4fdd3d7a134d9b542dc66e7d025c2","dweb:/ipfs/QmRhTPLd2ZAyRHmJUFUcWKs9b3if49QY17LYZuRqWmghw8"],"license":"MIT"},"src/interfaces/delegator/IDelegatorHook.sol":{"keccak256":"0xc51aa8d7d1f6c8043ee819b7aeb86da0e993912e1442098df897e299f01f9f46","urls":["bzz-raw://adddf5cb2ba282aeb576b26efb28640f865a1721cc9b6eee8b3ee0457a2c9780","dweb:/ipfs/QmNYgAmnLRwWZbhTuQhZs9rx4zcme1df5mEepkrniorSoW"],"license":"MIT"},"src/interfaces/delegator/INetworkRestakeDelegator.sol":{"keccak256":"0xe7030fe30389a147fd710e3436ec346b4842695fd3e65a81b95375c9f1d633fc","urls":["bzz-raw://739c7e66d301778054f5c90bee45ec9438f68afba8a03eaaac52064c73b115ad","dweb:/ipfs/QmfZ2ytKcTykAc76nxhg8ikUXV8NdBpetqb8W4YWPcox1Z"],"license":"MIT"},"src/interfaces/service/IOptInService.sol":{"keccak256":"0x76fb5460a6d87a5705433d4fbeff7253cd75b8bbd0c888b2088f16e86ace146a","urls":["bzz-raw://990322019b3d11465f7024bae77ccbf7e2fe5d6fa3c754584778f37d04fa1337","dweb:/ipfs/QmaSNHzcqxTkUCG9a4nqVfLECHLdjdrwAnDi3yDC7tDL24"],"license":"MIT"},"src/interfaces/vault/IVault.sol":{"keccak256":"0xffee01d383cd4e1a5530c614bf4360c1ef070c288abec9da1eb531b51bc07235","urls":["bzz-raw://04f0046cac285d8ec44ebbb1f79dc94fab4495767190cad8364fbc1fafaadfb9","dweb:/ipfs/QmUawAunwzXfCyShWfhKeThAgKtqe51hmrxvrXvM772M2R"],"license":"MIT"},"src/interfaces/vault/IVaultStorage.sol":{"keccak256":"0x592626f13754194f83047135de19229c49390bd59e34659b1bb38be71d973a22","urls":["bzz-raw://06a6a9dfddd05e580b32bebe2cff4f63ba26a653180676d58225dd30d9c89d3e","dweb:/ipfs/QmdgzBeY6Sxo8mGtyBxtv1tM1c2kU6J6zjeRd7vuXm4DU6"],"license":"MIT"}},"version":1},"id":83} \ No newline at end of file +{"abi":[{"type":"constructor","inputs":[{"name":"networkRegistry","type":"address","internalType":"address"},{"name":"vaultFactory","type":"address","internalType":"address"},{"name":"operatorVaultOptInService","type":"address","internalType":"address"},{"name":"operatorNetworkOptInService","type":"address","internalType":"address"},{"name":"delegatorFactory","type":"address","internalType":"address"},{"name":"entityType","type":"uint64","internalType":"uint64"}],"stateMutability":"nonpayable"},{"type":"function","name":"DEFAULT_ADMIN_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"FACTORY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"HOOK_GAS_LIMIT","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"HOOK_RESERVE","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"HOOK_SET_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"NETWORK_LIMIT_SET_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"NETWORK_REGISTRY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"OPERATOR_NETWORK_OPT_IN_SERVICE","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"OPERATOR_NETWORK_SHARES_SET_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"OPERATOR_VAULT_OPT_IN_SERVICE","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"TYPE","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"VAULT_FACTORY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"VERSION","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"pure"},{"type":"function","name":"getRoleAdmin","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"grantRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"hasRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"hook","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"initialize","inputs":[{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"maxNetworkLimit","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"value","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"networkLimit","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"networkLimitAt","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"timestamp","type":"uint48","internalType":"uint48"},{"name":"hint","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"onSlash","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"captureTimestamp","type":"uint48","internalType":"uint48"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"operatorNetworkShares","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"operatorNetworkSharesAt","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"timestamp","type":"uint48","internalType":"uint48"},{"name":"hint","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"renounceRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"callerConfirmation","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"revokeRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setHook","inputs":[{"name":"hook_","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setMaxNetworkLimit","inputs":[{"name":"identifier","type":"uint96","internalType":"uint96"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setNetworkLimit","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setOperatorNetworkShares","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"shares","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"stake","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"stakeAt","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"timestamp","type":"uint48","internalType":"uint48"},{"name":"hints","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"staticDelegateCall","inputs":[{"name":"target","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"totalOperatorNetworkShares","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"totalOperatorNetworkSharesAt","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"timestamp","type":"uint48","internalType":"uint48"},{"name":"hint","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"vault","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"OnSlash","inputs":[{"name":"subnetwork","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"captureTimestamp","type":"uint48","indexed":false,"internalType":"uint48"}],"anonymous":false},{"type":"event","name":"RoleAdminChanged","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"previousAdminRole","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"newAdminRole","type":"bytes32","indexed":true,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"RoleGranted","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"sender","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"RoleRevoked","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"sender","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"SetHook","inputs":[{"name":"hook","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"SetMaxNetworkLimit","inputs":[{"name":"subnetwork","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"SetNetworkLimit","inputs":[{"name":"subnetwork","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"SetOperatorNetworkShares","inputs":[{"name":"subnetwork","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"shares","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"error","name":"AccessControlBadConfirmation","inputs":[]},{"type":"error","name":"AccessControlUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"neededRole","type":"bytes32","internalType":"bytes32"}]},{"type":"error","name":"AlreadySet","inputs":[]},{"type":"error","name":"CheckpointUnorderedInsertion","inputs":[]},{"type":"error","name":"DuplicateRoleHolder","inputs":[]},{"type":"error","name":"ExceedsMaxNetworkLimit","inputs":[]},{"type":"error","name":"InsufficientHookGas","inputs":[]},{"type":"error","name":"InvalidInitialization","inputs":[]},{"type":"error","name":"MathOverflowedMulDiv","inputs":[]},{"type":"error","name":"MissingRoleHolders","inputs":[]},{"type":"error","name":"NotInitialized","inputs":[]},{"type":"error","name":"NotInitializing","inputs":[]},{"type":"error","name":"NotNetwork","inputs":[]},{"type":"error","name":"NotSlasher","inputs":[]},{"type":"error","name":"NotVault","inputs":[]},{"type":"error","name":"ReentrancyGuardReentrantCall","inputs":[]},{"type":"error","name":"SafeCastOverflowedUintDowncast","inputs":[{"name":"bits","type":"uint8","internalType":"uint8"},{"name":"value","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ZeroAddressRoleHolder","inputs":[]}],"bytecode":{"object":"0x610140346101a1576001600160401b0390601f612ea238819003918201601f191683019190848311848410176101a5578160c092859260409586528339810103126101a15761004d826101b9565b610059602084016101b9565b906100658385016101b9565b94610072606086016101b9565b9460a0610081608083016101b9565b9101519180831683036101a1577ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a009081549060ff82891c1661019057808083160361014c575b50505060805260a05260c05260e0526101009283526101209182525190612cd492836101ce8439608051836107e7015260a05183610f2a015260c0518381816106660152610f63015260e05183818161039f0152611fb20152518281816103e3015281816115fa01526117170152518181816105e40152818161156101526117950152f35b6001600160401b0319909116811790915585519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a15f80806100c7565b875163f92ee8a960e01b8152600490fd5b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b51906001600160a01b03821682036101a15756fe60806040526004361015610011575f80fd5b5f3560e01c806301ffc9a714610264578063021453481461025f578063103f29071461025a578063128e5d82146102555780631a7a7044146102505780631a80e5001461024b57806323f752d514610246578063248a9ca3146102415780632dd310001461023c5780632f2ff15d1461023757806336568abe146102325780633dfd38731461022d5780633eb22c0f1461022857806342c53e3314610223578063439fab911461021e578063557cab44146102195780635d32a1c9146102145780636679191e1461020f5780637d24bb271461020a5780637f5a7c7b146102055780638b3f10b01461020057806391d14854146101fb5780639f86fd85146101f6578063a217fddf146101f1578063a33bc287146101ec578063bb24fe8a146101e7578063c0cd7c3e146101e2578063c43dc03f146101dd578063d15b740e146101d8578063d547741f146101d3578063e02f6937146101ce578063e49561ee146101c9578063e78eb6ae146101c4578063fbfa77cf146101bf578063fd4d447c146101ba578063ff54740f146101b55763ffa1ad74146101b0575f80fd5b6112e0565b6112c3565b611299565b611272565b611238565b61104d565b611031565b610fe5565b610fbb565b610f92565b610f4e565b610f0b565b610df0565b610dd6565b610d1c565b610cbe565b610c9b565b610c73565b610c3a565b610c00565b610bdd565b610b80565b610a48565b6109cf565b6109a6565b6108ad565b610862565b610816565b6107d2565b610799565b610613565b6105cf565b610589565b6103ce565b61038a565b6102be565b346102ba5760203660031901126102ba5760043563ffffffff60e01b81168091036102ba57602090637965db0b60e01b81149081156102a9575b506040519015158152f35b6301ffc9a760e01b1490505f61029e565b5f80fd5b346102ba576040806003193601126102ba5760043590602435906102e061180a565b825f526002602052805f2054821161037a57825f52600360205281610306825f20611efa565b1461036a5781610365916103557e899d104fc3d8820bd96540612bcc5c448c8837b13b9f7faa43ad0728f0c14f94610346875f52600360205260405f2090565b61034f426123a7565b90611952565b5050519081529081906020820190565b0390a2005b5163a741a04560e01b8152600490fd5b51631eefc06360e31b8152600490fd5b346102ba575f3660031901126102ba576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346102ba575f3660031901126102ba576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b6001600160a01b038116036102ba57565b6064359065ffffffffffff821682036102ba57565b634e487b7160e01b5f52604160045260245ffd5b604081019081106001600160401b0382111761046757604052565b610438565b606081019081106001600160401b0382111761046757604052565b90601f801991011681019081106001600160401b0382111761046757604052565b6040519060a082018281106001600160401b0382111761046757604052565b604051906104d48261044c565b565b6001600160401b03811161046757601f01601f191660200190565b81601f820112156102ba57803590610508826104d6565b926105166040519485610487565b828452602083830101116102ba57815f926020809301838601378301015290565b9060806003198301126102ba576004359160243561055481610412565b9160443565ffffffffffff811681036102ba5791606435906001600160401b0382116102ba57610586916004016104f1565b90565b346102ba5760206105c76105c261059f36610537565b939190925f526005865260405f209060018060a01b03165f5260205260405f2090565b611a45565b604051908152f35b346102ba575f3660031901126102ba576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346102ba5760403660031901126102ba576004356001600160601b03811681036102ba5760243590610643611b28565b6040516302910f8b60e31b81523360048201526020816024816001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165afa908115610794575f91610765575b5015610753576001600160601b03166bffffffffffffffffffffffff193360601b161790806106cd835f52600260205260405f2090565b541461074157610726817fc67e7929681aa1bccd63f52b3799bf5805f3009f197db6fdf584b14f7fbf608c9261070b855f52600260205260405f2090565b556107168185611b57565b6040519081529081906020820190565b0390a261073f60015f80516020612c5f83398151915255565b005b60405163a741a04560e01b8152600490fd5b6040516323d53b9760e21b8152600490fd5b610787915060203d60201161078d575b61077f8183610487565b810190611327565b5f610696565b503d610775565b61133f565b346102ba5760203660031901126102ba576004355f525f80516020612c3f8339815191526020526020600160405f200154604051908152f35b346102ba575f3660031901126102ba576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346102ba5760403660031901126102ba5761073f60243560043561083982610412565b805f525f80516020612c3f83398151915260205261085d600160405f2001546118bd565b611e32565b346102ba5760403660031901126102ba5760243561087f81610412565b336001600160a01b0382160361089b5761073f90600435611e68565b60405163334bd91960e11b8152600490fd5b346102ba5760203660031901126102ba576004356108ca81610412565b6108d2611b28565b335f9081527f9ebbcbe0d2961d3fbe56ca6f679bc753bd848d3e6bb3eaf9041c51b286881d2c60205260409020547fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c9060ff161561098857506001546001600160a01b039182169181168214610741576001600160a01b03191681176001557f5bbb1d3ebb6a3ad2a0f17ff35e579a83af60604d1d3c2a4c83c62adecadf666d5f80a260015f80516020612c5f83398151915255005b6044906040519063e2517d3f60e01b82523360048301526024820152fd5b346102ba5760203660031901126102ba576004355f52600360205260206105c760405f20611efa565b346102ba5760403660031901126102ba5760206105c7610a166024356109f481610412565b6004355f526005845260405f209060018060a01b03165f5260205260405f2090565b611efa565b9181601f840112156102ba578235916001600160401b0383116102ba57602083818601950101116102ba57565b346102ba5760203660031901126102ba576001600160401b036004358181116102ba57610a79903690600401610a1b565b5f80516020612c7f833981519152549260ff8460401c1615931680159081610b78575b6001149081610b6e575b159081610b65575b50610b53575f80516020612c7f833981519152805467ffffffffffffffff19166001179055610ae19183610b2f57611f7d565b610ae757005b5f80516020612c7f833981519152805460ff60401b19169055604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a1005b5f80516020612c7f833981519152805460ff60401b1916600160401b179055611f7d565b60405163f92ee8a960e01b8152600490fd5b9050155f610aae565b303b159150610aa6565b849150610a9c565b346102ba575f3660031901126102ba576020604051614e208152f35b60606003198201126102ba576004359160243565ffffffffffff811681036102ba5791604435906001600160401b0382116102ba57610586916004016104f1565b346102ba5760206105c7610bf036610b9c565b915f526003845260405f20611a45565b346102ba575f3660031901126102ba5760206040517fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c8152f35b346102ba575f3660031901126102ba5760206040517e8b9b1e5fa9cf3b14f87f435649268146305ddf689f082e5961a335b07a9abf8152f35b346102ba575f3660031901126102ba576001546040516001600160a01b039091168152602090f35b346102ba5760206105c7610cae36610b9c565b915f526004845260405f20611a45565b346102ba5760403660031901126102ba57602060ff610d10602435610ce281610412565b6004355f525f80516020612c3f833981519152845260405f209060018060a01b03165f5260205260405f2090565b54166040519015158152f35b346102ba576040806003193601126102ba57600435610d3a81610412565b602435906001600160401b0382116102ba575f8091610d60610dc4943690600401610a1b565b908187519283928337810184815203915af43d15610dcc57610db63d610d85816104d6565b90610d9286519283610487565b81523d5f602083013e5b845194859315156020850152808401526060830190611376565b03601f198101835282610487565b805190602001fd5b610db66060610d9c565b346102ba575f3660031901126102ba5760206040515f8152f35b346102ba5760603660031901126102ba57602435600435610e1082610412565b60443591610e1c611866565b5f8281526005602090815260408083206001600160a01b03851684529091529020610e4690611efa565b838114610741577f739a5a3ec0ff71e2386d0013deac5f44e0935a98def2e2a5ddf9a709518c829491610eb9610f0692855f52600460205260405f2090610eb388610eae610e93426123a7565b93610ea9610a168c5f52600460205260405f2090565b6113c1565b6113dc565b91611952565b5050610eea8561034683610ed5885f52600560205260405f2090565b9060018060a01b03165f5260205260405f2090565b50506040519485526001600160a01b0316939081906020820190565b0390a3005b346102ba575f3660031901126102ba5760206040516001600160401b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b346102ba575f3660031901126102ba576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346102ba5760203660031901126102ba576004355f52600460205260206105c760405f20611efa565b346102ba5760203660031901126102ba576004355f526002602052602060405f2054604051908152f35b346102ba5760403660031901126102ba5761073f60243560043561100882610412565b805f525f80516020612c3f83398151915260205261102c600160405f2001546118bd565b611e68565b346102ba5760206105c761104436610537565b929190916114eb565b346102ba5760a03660031901126102ba5760243560043561106d82610412565b60443591611079610423565b90608435906001600160401b0382116102ba5761109b600492369084016104f1565b6110a3611b28565b5f546020906110c8906110bc906001600160a01b031681565b6001600160a01b031690565b60405163b134427160e01b815294859182905afa928315610794575f93611207575b506001600160a01b0392831633036111f5576001546001600160a01b031683811661116a575b50506040805195865265ffffffffffff909316602086015216927f741a5de99085c0d660f3e4192217b0ffb0ea4e35a0480de48e857a4bc3ee36ed91819081015b0390a361073f60015f80516020612c5f83398151915255565b9093604051946111a186611193602082019363724ab0f760e11b8552858c898d6024870161168a565b03601f198101885287610487565b62042e305a106111e3575f611151938192827f741a5de99085c0d660f3e4192217b0ffb0ea4e35a0480de48e857a4bc3ee36ed9951926203d090f15093611110565b604051638072475160e01b8152600490fd5b60405163dabc4ad960e01b8152600490fd5b61122a91935060203d602011611231575b6112228183610487565b810190611675565b915f6110ea565b503d611218565b346102ba575f3660031901126102ba5760206040517f1312a1cf530e56add9be4fd84db9051dcc7635952f09f735f9a29405b55846258152f35b346102ba575f3660031901126102ba575f546040516001600160a01b039091168152602090f35b346102ba5760403660031901126102ba5760206105c76024356112bb81610412565b6004356116e0565b346102ba575f3660031901126102ba5760206040516203d0908152f35b346102ba575f3660031901126102ba57602060405160018152f35b5f9081526005602090815260408083206001600160a01b03909416835292905220610586929190611a45565b908160209103126102ba575180151581036102ba5790565b6040513d5f823e3d90fd5b9061058692915f52600360205260405f20611a45565b9061058692915f52600460205260405f20611a45565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b634e487b7160e01b5f52601160045260245ffd5b5f198101919082116113bc57565b61139a565b919082039182116113bc57565b90600182018092116113bc57565b919082018092116113bc57565b604051906113f68261044c565b60606020838281520152565b81601f820112156102ba57805190611419826104d6565b926114276040519485610487565b828452602083830101116102ba57815f9260208093018386015e8301015290565b906020828203126102ba5781516001600160401b03928382116102ba5701906040828203126102ba576040519261147e8461044c565b82518181116102ba5782611493918501611402565b845260208301519081116102ba576114ab9201611402565b602082015290565b6001600160a01b0391821681529116602082015265ffffffffffff909116604082015260806060820181905261058692910190611376565b926114fb909291928284866121e2565b9290936115066113e9565b93805180611659575b505084159384156115c3575b8415611532575b5050505061152d5790565b505f90565b60208094955061155d910151604051958694859463530e1d4360e01b865260601c90600486016114b3565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa908115610794575f916115a4575b50155f808080611522565b6115bd915060203d60201161078d5761077f8183610487565b5f611599565b5f549094506001600160a01b03166020848651926115f6604051948593849363530e1d4360e01b855289600486016114b3565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa908115610794575f9161163a575b50159361151b565b611653915060203d60201161078d5761077f8183610487565b5f611632565b61166d929550602080918301019101611448565b925f8061150f565b908160209103126102ba575161058681610412565b919360a093610586969565ffffffffffff938552600180871b0316602085015260408401521660608201528160808201520190611376565b81156116cc570490565b634e487b7160e01b5f52601260045260245ffd5b5f546040516308834cb560e21b8082526001600160a01b0385811660048401529283166024830152929392602092909183816044817f000000000000000000000000000000000000000000000000000000000000000086165afa908115610794575f916117ed575b5015918215611769575b5050905061176357610586916122f2565b50505f90565b6040519081526001600160a01b0385166004820152606086901c602482015291508290829060449082907f0000000000000000000000000000000000000000000000000000000000000000165afa918215610794575f926117d0575b505015805f80611752565b6117e69250803d1061078d5761077f8183610487565b5f806117c5565b6118049150843d861161078d5761077f8183610487565b5f611748565b335f9081527f72a65082a5691803ab2b62c9bc729b34205ba1b183d950896526b2fd8714d0c7602052604090207e8b9b1e5fa9cf3b14f87f435649268146305ddf689f082e5961a335b07a9abf9060ff905b5416156109885750565b335f9081527f8f2dae99798887da307a4daa2c2d11f840b0cb9a6a67822660c531e9ad14dd00602052604090207f1312a1cf530e56add9be4fd84db9051dcc7635952f09f735f9a29405b55846259060ff9061185c565b5f8181525f80516020612c3f83398151915260209081526040808320338452909152902060ff9061185c565b634e487b7160e01b5f52603260045260245ffd5b8054821015611912575f5260205f2001905f90565b6118e9565b90815491600160401b831015610467578261193a9160016104d4950181556118fd565b90919082549060031b91821b915f19901b1916179055565b909291926001820190815480156119e4575b508461196f846123fd565b5094909284549361197f83611efa565b96816119cf575b50156119ac575050505f1981019081116113bc5761193a85916119a8936118fd565b9190565b6119a89492936119c8926001600160d01b039091169190612963565b5050611917565b65ffffffffffff83811691161490505f611986565b600160401b81101561046757806001611a0092018455836118fd565b8154905f199060031b1b191690555f611964565b908160209103126102ba575163ffffffff811681036102ba5790565b90600163ffffffff809316019182116113bc57565b91805115611b1e5780602080611a6093518301019101611a14565b91611a6b838261251c565b92611a7c845165ffffffffffff1690565b9065ffffffffffff8085169216828114611b125782119182611ab2575b5050611aa957610586925061244c565b50506020015190565b909150611abf83546113ae565b63ffffffff831614918215611ad8575b50505f80611a99565b611b0a919250611af3611aed611aff92611a30565b8561251c565b5165ffffffffffff1690565b65ffffffffffff1690565b115f80611acf565b50505050506020015190565b506105869161244c565b5f80516020612c5f8339815191526002815414611b455760029055565b604051633ee5aeb560e01b8152600490fd5b90815f52600360205260405f2081611b6e826123fd565b919390508315611bcc57611b8e916001600160d01b0316906001016118fd565b90549060031b1c5b82611bc2575b5050611ba6575050565b611bbe915f52600360205260405f2061034f426123a7565b5050565b119050815f611b9c565b50505f611b96565b6001600160a01b0381165f9081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d60205260409020545f80516020612c3f8339815191529060ff16611763575f808052602091825260408082206001600160a01b038516835290925220805460ff1916600117905533906001600160a01b03165f7f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d8180a4600190565b6001600160a01b0381165f9081527f9ebbcbe0d2961d3fbe56ca6f679bc753bd848d3e6bb3eaf9041c51b286881d2c602052604090207fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c905f80516020612c3f8339815191529060ff905b5416611d4e575f828152602091825260408082206001600160a01b038616835290925220805460ff1916600117905533916001600160a01b0316907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d5f80a4600190565b5050505f90565b6001600160a01b0381165f9081527f72a65082a5691803ab2b62c9bc729b34205ba1b183d950896526b2fd8714d0c7602052604090207e8b9b1e5fa9cf3b14f87f435649268146305ddf689f082e5961a335b07a9abf905f80516020612c3f8339815191529060ff90611cea565b6001600160a01b0381165f9081527f8f2dae99798887da307a4daa2c2d11f840b0cb9a6a67822660c531e9ad14dd00602052604090207f1312a1cf530e56add9be4fd84db9051dcc7635952f09f735f9a29405b5584625905f80516020612c3f8339815191529060ff90611cea565b5f8181525f80516020612c3f833981519152602081815260408084206001600160a01b038716855290915290912060ff90611cea565b5f8181525f80516020612c3f833981519152602081815260408084206001600160a01b03871685529091529091205460ff1615611d4e575f828152602091825260408082206001600160a01b038616835290925220805460ff1916905533916001600160a01b0316907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b5f80a4600190565b805480611f2957505f5b6001600160d01b03811615611763576001611f1f92016118fd565b90549060031b1c90565b5f199080828101116113bc57825f5260205f2001015460301c611f04565b9190916040818403126102ba578035611f5f81610412565b9260208201356001600160401b0381116102ba5761058692016104f1565b611f8991810190611f47565b6040516302910f8b60e31b81526001600160a01b039283166004820181905291906020816024817f000000000000000000000000000000000000000000000000000000000000000088165afa908115610794575f9161209c575b501561208a5761201e60409161201961206494611ffe612584565b60018060a01b03166001600160601b0360a01b5f5416175f55565b612704565b6020810151600180546001600160a01b0319166001600160a01b0390921691909117905580516001600160a01b031684811661207a575b5001516001600160a01b031690565b90811661206e5750565b61207790611c7f565b50565b61208390611bd4565b505f612055565b6040516362df054560e01b8152600490fd5b6120b5915060203d60201161078d5761077f8183610487565b5f611fe3565b6040519060a082018281106001600160401b038211176104675760405281608060609182815282602082015282604082015282808201520152565b906020828203126102ba5781516001600160401b03928382116102ba57019060a0828203126102ba576121276104a8565b9282518181116102ba578261213d918501611402565b845260208301518181116102ba5782612157918501611402565b602085015260408301518181116102ba5782612174918501611402565b604085015260608301518181116102ba5782612191918501611402565b606085015260808301519081116102ba576121ac9201611402565b608082015290565b908160209103126102ba575190565b60409065ffffffffffff61058694931681528160208201520190611376565b919392936121ee6120bb565b948051806122d6575b505061220860608601518285611360565b918261221a57505050509051905f9190565b61222e6122689183608089015191876112fb565b9160206122476110bc6110bc5f5460018060a01b031690565b8189015190604051808096819463810da75d60e01b835287600484016121c3565b03915afa80156107945761229e95612298935f926122a3575b50612292919260408a01519161134a565b90612864565b90612876565b915190565b61229292506122c99060203d6020116122cf575b6122c18183610487565b8101906121b4565b91612281565b503d6122b7565b6122ea9296506020809183010191016120f6565b935f806121f7565b90612308610a16835f52600460205260405f2090565b9081612315575050505f90565b610a1661232e91610ed5855f52600560205260405f2090565b5f5460405163bd49c35f60e01b815290602090829060049082906001600160a01b03165afa80156107945761058694612298925f9261237e575b50610a16612292915f52600360205260405f2090565b61229291925061239f610a169160203d6020116122cf576122c18183610487565b929150612368565b65ffffffffffff908181116123ba571690565b604490604051906306dfcc6560e41b8252603060048301526024820152fd5b906040516123e68161044c565b915465ffffffffffff8116835260301c6020830152565b80548061240e5750505f905f905f90565b5f199080828101116113bc5761242b925f5260205f2001016123d9565b9065ffffffffffff82511691602060018060d01b0391015116906001929190565b908154905f8291600584116124b6575b612467935084612bdf565b8061248f57505f905b6001600160d01b0382161561176357610586916001611f1f92016118fd565b6124a961249e6124b0926113ae565b835f5260205f200190565b5460301c90565b90612470565b91926124c181612aac565b81039081116113bc5761246793855f5265ffffffffffff808360205f20015416908516105f146124f257509161245c565b9291506124fe906113ce565b9061245c565b604051906125118261044c565b5f6020838281520152565b9061254561253f6125669261252f612504565b50612538612504565b50846118fd565b506123d9565b91600165ffffffffffff845116936020828060d01b039101511691016118fd565b905490604051926125768461044c565b835260031b1c602082015290565b61258c612a7e565b612594612a7e565b60015f80516020612c5f83398151915255565b604051906125b48261046c565b5f6040838281528260208201520152565b81601f820112156102ba578051916020916001600160401b038411610467578360051b90604051946125f985840187610487565b855283808601928201019283116102ba578301905b82821061261c575050505090565b838091835161262a81610412565b81520191019061260e565b906020828203126102ba5781516001600160401b03928382116102ba5701908181039260a084126102ba5760606040519461266f8661046c565b126102ba576040516126808161046c565b835161268b81610412565b8152602084015161269b81610412565b602082015260408401516126ae81610412565b6040820152845260608301518181116102ba57826126cd9185016125c5565b602085015260808301519081116102ba576126e892016125c5565b604082015290565b80518210156119125760209160051b010190565b612720906127106125a7565b5060208082518301019101612635565b8051519091906001600160a01b0316158061284a575b612838579060208101905f5b825180518210156127bc576110bc61275d8361276a936126f0565b516001600160a01b031690565b156127aa5761278c61278861278361275d8487516126f0565b611d55565b1590565b61279857600101612742565b604051635140fefd60e11b8152600490fd5b6040516323cda06760e01b8152600490fd5b506040925050818101905f5b8251805182101561282f576110bc61275d836127e3936126f0565b1561281e576128016127886127fc61275d8487516126f0565b611dc3565b61280d576001016127c8565b8351635140fefd60e11b8152600490fd5b83516323cda06760e01b8152600490fd5b50509150505190565b6040516303501f5960e11b8152600490fd5b506020820151511580612736575060408201515115612736565b9080821015612871575090565b905090565b9091828202915f19848209938380861095039480860395146128fb57848311156128e957829109815f038216809204600280826003021880830282030280830282030280830282030280830282030280830282030280920290030293600183805f03040190848311900302920304170290565b60405163227bc15360e01b8152600490fd5b50509061058692506116c2565b8054600160401b81101561046757612925916001820181556118fd565b61295057815160209092015160301b65ffffffffffff191665ffffffffffff92909216919091179055565b634e487b7160e01b5f525f60045260245ffd5b805492939291908215612a555761298461297f61249e856113ae565b6123d9565b90612995825165ffffffffffff1690565b65ffffffffffff84811691168110612a43576119a89460209488926129c3611aff875165ffffffffffff1690565b03612a0b57506129fd926129d96129e4926113ae565b905f5260205f200190565b9065ffffffffffff82549181199060301b169116179055565b01516001600160d01b031690565b915050612a3e91612a2b612a1d6104c7565b65ffffffffffff9093168352565b6001600160d01b03881682860152612908565b6129fd565b604051632520601d60e01b8152600490fd5b612a799250612a65612a1d6104c7565b6001600160d01b0385166020830152612908565b5f9190565b60ff5f80516020612c7f8339815191525460401c1615612a9a57565b604051631afcd79f60e31b8152600490fd5b801561152d5780612292612b77612b6d612b63612b59612b4f612b45612b3b60016105869a5f908b60801c80612bd3575b508060401c80612bc6575b508060201c80612bb9575b508060101c80612bac575b508060081c80612b9f575b508060041c80612b92575b508060021c80612b85575b50821c612b7e575b811c1b612b34818b6116c2565b0160011c90565b612b34818a6116c2565b612b3481896116c2565b612b3481886116c2565b612b3481876116c2565b612b3481866116c2565b612b3481856116c2565b80926116c2565b8101612b27565b600291509101905f612b1f565b600491509101905f612b14565b600891509101905f612b09565b601091509101905f612afe565b602091509101905f612af3565b604091509101905f612ae8565b9150506080905f612add565b91905b838210612bef5750505090565b9091928083169080841860011c82018092116113bc57845f5265ffffffffffff808360205f20015416908416105f14612c2c5750925b9190612be2565b939250612c38906113ce565b91612c2556fe02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268009b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a2646970667358221220b254b860c7c949491b5c7d1363cf98acdb518a309f471651f9f806b7024a05a764736f6c63430008190033","sourceMap":"542:7244:78:-:0;;;;-1:-1:-1;;;;;542:7244:78;;;;;;;;;;-1:-1:-1;;542:7244:78;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;8837:64:25;542:7244:78;;;;;;;;;7896:76:25;;542:7244:78;;;;7985:34:25;7981:146;;-1:-1:-1;525:17:69;;;542:7244:78;525:17:69;542:7244:78;552:12:69;542:7244:78;2360:34:76;2404:28;;2442:57;;;;2509:61;;;;542:7244:78;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2404:28:76;542:7244:78;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7981:146:25;-1:-1:-1;;;;;;542:7244:78;;;;;;;;;;;;;8087:29:25;;542:7244:78;;8087:29:25;7981:146;;;;;7896:76;542:7244:78;;-1:-1:-1;;;7938:23:25;;;;;542:7244:78;-1:-1:-1;542:7244:78;;;;;;-1:-1:-1;542:7244:78;;;;;-1:-1:-1;542:7244:78;;;;-1:-1:-1;;;;;542:7244:78;;;;;;:::o","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361015610011575f80fd5b5f3560e01c806301ffc9a714610264578063021453481461025f578063103f29071461025a578063128e5d82146102555780631a7a7044146102505780631a80e5001461024b57806323f752d514610246578063248a9ca3146102415780632dd310001461023c5780632f2ff15d1461023757806336568abe146102325780633dfd38731461022d5780633eb22c0f1461022857806342c53e3314610223578063439fab911461021e578063557cab44146102195780635d32a1c9146102145780636679191e1461020f5780637d24bb271461020a5780637f5a7c7b146102055780638b3f10b01461020057806391d14854146101fb5780639f86fd85146101f6578063a217fddf146101f1578063a33bc287146101ec578063bb24fe8a146101e7578063c0cd7c3e146101e2578063c43dc03f146101dd578063d15b740e146101d8578063d547741f146101d3578063e02f6937146101ce578063e49561ee146101c9578063e78eb6ae146101c4578063fbfa77cf146101bf578063fd4d447c146101ba578063ff54740f146101b55763ffa1ad74146101b0575f80fd5b6112e0565b6112c3565b611299565b611272565b611238565b61104d565b611031565b610fe5565b610fbb565b610f92565b610f4e565b610f0b565b610df0565b610dd6565b610d1c565b610cbe565b610c9b565b610c73565b610c3a565b610c00565b610bdd565b610b80565b610a48565b6109cf565b6109a6565b6108ad565b610862565b610816565b6107d2565b610799565b610613565b6105cf565b610589565b6103ce565b61038a565b6102be565b346102ba5760203660031901126102ba5760043563ffffffff60e01b81168091036102ba57602090637965db0b60e01b81149081156102a9575b506040519015158152f35b6301ffc9a760e01b1490505f61029e565b5f80fd5b346102ba576040806003193601126102ba5760043590602435906102e061180a565b825f526002602052805f2054821161037a57825f52600360205281610306825f20611efa565b1461036a5781610365916103557e899d104fc3d8820bd96540612bcc5c448c8837b13b9f7faa43ad0728f0c14f94610346875f52600360205260405f2090565b61034f426123a7565b90611952565b5050519081529081906020820190565b0390a2005b5163a741a04560e01b8152600490fd5b51631eefc06360e31b8152600490fd5b346102ba575f3660031901126102ba576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346102ba575f3660031901126102ba576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b6001600160a01b038116036102ba57565b6064359065ffffffffffff821682036102ba57565b634e487b7160e01b5f52604160045260245ffd5b604081019081106001600160401b0382111761046757604052565b610438565b606081019081106001600160401b0382111761046757604052565b90601f801991011681019081106001600160401b0382111761046757604052565b6040519060a082018281106001600160401b0382111761046757604052565b604051906104d48261044c565b565b6001600160401b03811161046757601f01601f191660200190565b81601f820112156102ba57803590610508826104d6565b926105166040519485610487565b828452602083830101116102ba57815f926020809301838601378301015290565b9060806003198301126102ba576004359160243561055481610412565b9160443565ffffffffffff811681036102ba5791606435906001600160401b0382116102ba57610586916004016104f1565b90565b346102ba5760206105c76105c261059f36610537565b939190925f526005865260405f209060018060a01b03165f5260205260405f2090565b611a45565b604051908152f35b346102ba575f3660031901126102ba576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346102ba5760403660031901126102ba576004356001600160601b03811681036102ba5760243590610643611b28565b6040516302910f8b60e31b81523360048201526020816024816001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165afa908115610794575f91610765575b5015610753576001600160601b03166bffffffffffffffffffffffff193360601b161790806106cd835f52600260205260405f2090565b541461074157610726817fc67e7929681aa1bccd63f52b3799bf5805f3009f197db6fdf584b14f7fbf608c9261070b855f52600260205260405f2090565b556107168185611b57565b6040519081529081906020820190565b0390a261073f60015f80516020612c5f83398151915255565b005b60405163a741a04560e01b8152600490fd5b6040516323d53b9760e21b8152600490fd5b610787915060203d60201161078d575b61077f8183610487565b810190611327565b5f610696565b503d610775565b61133f565b346102ba5760203660031901126102ba576004355f525f80516020612c3f8339815191526020526020600160405f200154604051908152f35b346102ba575f3660031901126102ba576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346102ba5760403660031901126102ba5761073f60243560043561083982610412565b805f525f80516020612c3f83398151915260205261085d600160405f2001546118bd565b611e32565b346102ba5760403660031901126102ba5760243561087f81610412565b336001600160a01b0382160361089b5761073f90600435611e68565b60405163334bd91960e11b8152600490fd5b346102ba5760203660031901126102ba576004356108ca81610412565b6108d2611b28565b335f9081527f9ebbcbe0d2961d3fbe56ca6f679bc753bd848d3e6bb3eaf9041c51b286881d2c60205260409020547fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c9060ff161561098857506001546001600160a01b039182169181168214610741576001600160a01b03191681176001557f5bbb1d3ebb6a3ad2a0f17ff35e579a83af60604d1d3c2a4c83c62adecadf666d5f80a260015f80516020612c5f83398151915255005b6044906040519063e2517d3f60e01b82523360048301526024820152fd5b346102ba5760203660031901126102ba576004355f52600360205260206105c760405f20611efa565b346102ba5760403660031901126102ba5760206105c7610a166024356109f481610412565b6004355f526005845260405f209060018060a01b03165f5260205260405f2090565b611efa565b9181601f840112156102ba578235916001600160401b0383116102ba57602083818601950101116102ba57565b346102ba5760203660031901126102ba576001600160401b036004358181116102ba57610a79903690600401610a1b565b5f80516020612c7f833981519152549260ff8460401c1615931680159081610b78575b6001149081610b6e575b159081610b65575b50610b53575f80516020612c7f833981519152805467ffffffffffffffff19166001179055610ae19183610b2f57611f7d565b610ae757005b5f80516020612c7f833981519152805460ff60401b19169055604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a1005b5f80516020612c7f833981519152805460ff60401b1916600160401b179055611f7d565b60405163f92ee8a960e01b8152600490fd5b9050155f610aae565b303b159150610aa6565b849150610a9c565b346102ba575f3660031901126102ba576020604051614e208152f35b60606003198201126102ba576004359160243565ffffffffffff811681036102ba5791604435906001600160401b0382116102ba57610586916004016104f1565b346102ba5760206105c7610bf036610b9c565b915f526003845260405f20611a45565b346102ba575f3660031901126102ba5760206040517fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c8152f35b346102ba575f3660031901126102ba5760206040517e8b9b1e5fa9cf3b14f87f435649268146305ddf689f082e5961a335b07a9abf8152f35b346102ba575f3660031901126102ba576001546040516001600160a01b039091168152602090f35b346102ba5760206105c7610cae36610b9c565b915f526004845260405f20611a45565b346102ba5760403660031901126102ba57602060ff610d10602435610ce281610412565b6004355f525f80516020612c3f833981519152845260405f209060018060a01b03165f5260205260405f2090565b54166040519015158152f35b346102ba576040806003193601126102ba57600435610d3a81610412565b602435906001600160401b0382116102ba575f8091610d60610dc4943690600401610a1b565b908187519283928337810184815203915af43d15610dcc57610db63d610d85816104d6565b90610d9286519283610487565b81523d5f602083013e5b845194859315156020850152808401526060830190611376565b03601f198101835282610487565b805190602001fd5b610db66060610d9c565b346102ba575f3660031901126102ba5760206040515f8152f35b346102ba5760603660031901126102ba57602435600435610e1082610412565b60443591610e1c611866565b5f8281526005602090815260408083206001600160a01b03851684529091529020610e4690611efa565b838114610741577f739a5a3ec0ff71e2386d0013deac5f44e0935a98def2e2a5ddf9a709518c829491610eb9610f0692855f52600460205260405f2090610eb388610eae610e93426123a7565b93610ea9610a168c5f52600460205260405f2090565b6113c1565b6113dc565b91611952565b5050610eea8561034683610ed5885f52600560205260405f2090565b9060018060a01b03165f5260205260405f2090565b50506040519485526001600160a01b0316939081906020820190565b0390a3005b346102ba575f3660031901126102ba5760206040516001600160401b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b346102ba575f3660031901126102ba576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346102ba5760203660031901126102ba576004355f52600460205260206105c760405f20611efa565b346102ba5760203660031901126102ba576004355f526002602052602060405f2054604051908152f35b346102ba5760403660031901126102ba5761073f60243560043561100882610412565b805f525f80516020612c3f83398151915260205261102c600160405f2001546118bd565b611e68565b346102ba5760206105c761104436610537565b929190916114eb565b346102ba5760a03660031901126102ba5760243560043561106d82610412565b60443591611079610423565b90608435906001600160401b0382116102ba5761109b600492369084016104f1565b6110a3611b28565b5f546020906110c8906110bc906001600160a01b031681565b6001600160a01b031690565b60405163b134427160e01b815294859182905afa928315610794575f93611207575b506001600160a01b0392831633036111f5576001546001600160a01b031683811661116a575b50506040805195865265ffffffffffff909316602086015216927f741a5de99085c0d660f3e4192217b0ffb0ea4e35a0480de48e857a4bc3ee36ed91819081015b0390a361073f60015f80516020612c5f83398151915255565b9093604051946111a186611193602082019363724ab0f760e11b8552858c898d6024870161168a565b03601f198101885287610487565b62042e305a106111e3575f611151938192827f741a5de99085c0d660f3e4192217b0ffb0ea4e35a0480de48e857a4bc3ee36ed9951926203d090f15093611110565b604051638072475160e01b8152600490fd5b60405163dabc4ad960e01b8152600490fd5b61122a91935060203d602011611231575b6112228183610487565b810190611675565b915f6110ea565b503d611218565b346102ba575f3660031901126102ba5760206040517f1312a1cf530e56add9be4fd84db9051dcc7635952f09f735f9a29405b55846258152f35b346102ba575f3660031901126102ba575f546040516001600160a01b039091168152602090f35b346102ba5760403660031901126102ba5760206105c76024356112bb81610412565b6004356116e0565b346102ba575f3660031901126102ba5760206040516203d0908152f35b346102ba575f3660031901126102ba57602060405160018152f35b5f9081526005602090815260408083206001600160a01b03909416835292905220610586929190611a45565b908160209103126102ba575180151581036102ba5790565b6040513d5f823e3d90fd5b9061058692915f52600360205260405f20611a45565b9061058692915f52600460205260405f20611a45565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b634e487b7160e01b5f52601160045260245ffd5b5f198101919082116113bc57565b61139a565b919082039182116113bc57565b90600182018092116113bc57565b919082018092116113bc57565b604051906113f68261044c565b60606020838281520152565b81601f820112156102ba57805190611419826104d6565b926114276040519485610487565b828452602083830101116102ba57815f9260208093018386015e8301015290565b906020828203126102ba5781516001600160401b03928382116102ba5701906040828203126102ba576040519261147e8461044c565b82518181116102ba5782611493918501611402565b845260208301519081116102ba576114ab9201611402565b602082015290565b6001600160a01b0391821681529116602082015265ffffffffffff909116604082015260806060820181905261058692910190611376565b926114fb909291928284866121e2565b9290936115066113e9565b93805180611659575b505084159384156115c3575b8415611532575b5050505061152d5790565b505f90565b60208094955061155d910151604051958694859463530e1d4360e01b865260601c90600486016114b3565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa908115610794575f916115a4575b50155f808080611522565b6115bd915060203d60201161078d5761077f8183610487565b5f611599565b5f549094506001600160a01b03166020848651926115f6604051948593849363530e1d4360e01b855289600486016114b3565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa908115610794575f9161163a575b50159361151b565b611653915060203d60201161078d5761077f8183610487565b5f611632565b61166d929550602080918301019101611448565b925f8061150f565b908160209103126102ba575161058681610412565b919360a093610586969565ffffffffffff938552600180871b0316602085015260408401521660608201528160808201520190611376565b81156116cc570490565b634e487b7160e01b5f52601260045260245ffd5b5f546040516308834cb560e21b8082526001600160a01b0385811660048401529283166024830152929392602092909183816044817f000000000000000000000000000000000000000000000000000000000000000086165afa908115610794575f916117ed575b5015918215611769575b5050905061176357610586916122f2565b50505f90565b6040519081526001600160a01b0385166004820152606086901c602482015291508290829060449082907f0000000000000000000000000000000000000000000000000000000000000000165afa918215610794575f926117d0575b505015805f80611752565b6117e69250803d1061078d5761077f8183610487565b5f806117c5565b6118049150843d861161078d5761077f8183610487565b5f611748565b335f9081527f72a65082a5691803ab2b62c9bc729b34205ba1b183d950896526b2fd8714d0c7602052604090207e8b9b1e5fa9cf3b14f87f435649268146305ddf689f082e5961a335b07a9abf9060ff905b5416156109885750565b335f9081527f8f2dae99798887da307a4daa2c2d11f840b0cb9a6a67822660c531e9ad14dd00602052604090207f1312a1cf530e56add9be4fd84db9051dcc7635952f09f735f9a29405b55846259060ff9061185c565b5f8181525f80516020612c3f83398151915260209081526040808320338452909152902060ff9061185c565b634e487b7160e01b5f52603260045260245ffd5b8054821015611912575f5260205f2001905f90565b6118e9565b90815491600160401b831015610467578261193a9160016104d4950181556118fd565b90919082549060031b91821b915f19901b1916179055565b909291926001820190815480156119e4575b508461196f846123fd565b5094909284549361197f83611efa565b96816119cf575b50156119ac575050505f1981019081116113bc5761193a85916119a8936118fd565b9190565b6119a89492936119c8926001600160d01b039091169190612963565b5050611917565b65ffffffffffff83811691161490505f611986565b600160401b81101561046757806001611a0092018455836118fd565b8154905f199060031b1b191690555f611964565b908160209103126102ba575163ffffffff811681036102ba5790565b90600163ffffffff809316019182116113bc57565b91805115611b1e5780602080611a6093518301019101611a14565b91611a6b838261251c565b92611a7c845165ffffffffffff1690565b9065ffffffffffff8085169216828114611b125782119182611ab2575b5050611aa957610586925061244c565b50506020015190565b909150611abf83546113ae565b63ffffffff831614918215611ad8575b50505f80611a99565b611b0a919250611af3611aed611aff92611a30565b8561251c565b5165ffffffffffff1690565b65ffffffffffff1690565b115f80611acf565b50505050506020015190565b506105869161244c565b5f80516020612c5f8339815191526002815414611b455760029055565b604051633ee5aeb560e01b8152600490fd5b90815f52600360205260405f2081611b6e826123fd565b919390508315611bcc57611b8e916001600160d01b0316906001016118fd565b90549060031b1c5b82611bc2575b5050611ba6575050565b611bbe915f52600360205260405f2061034f426123a7565b5050565b119050815f611b9c565b50505f611b96565b6001600160a01b0381165f9081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d60205260409020545f80516020612c3f8339815191529060ff16611763575f808052602091825260408082206001600160a01b038516835290925220805460ff1916600117905533906001600160a01b03165f7f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d8180a4600190565b6001600160a01b0381165f9081527f9ebbcbe0d2961d3fbe56ca6f679bc753bd848d3e6bb3eaf9041c51b286881d2c602052604090207fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c905f80516020612c3f8339815191529060ff905b5416611d4e575f828152602091825260408082206001600160a01b038616835290925220805460ff1916600117905533916001600160a01b0316907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d5f80a4600190565b5050505f90565b6001600160a01b0381165f9081527f72a65082a5691803ab2b62c9bc729b34205ba1b183d950896526b2fd8714d0c7602052604090207e8b9b1e5fa9cf3b14f87f435649268146305ddf689f082e5961a335b07a9abf905f80516020612c3f8339815191529060ff90611cea565b6001600160a01b0381165f9081527f8f2dae99798887da307a4daa2c2d11f840b0cb9a6a67822660c531e9ad14dd00602052604090207f1312a1cf530e56add9be4fd84db9051dcc7635952f09f735f9a29405b5584625905f80516020612c3f8339815191529060ff90611cea565b5f8181525f80516020612c3f833981519152602081815260408084206001600160a01b038716855290915290912060ff90611cea565b5f8181525f80516020612c3f833981519152602081815260408084206001600160a01b03871685529091529091205460ff1615611d4e575f828152602091825260408082206001600160a01b038616835290925220805460ff1916905533916001600160a01b0316907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b5f80a4600190565b805480611f2957505f5b6001600160d01b03811615611763576001611f1f92016118fd565b90549060031b1c90565b5f199080828101116113bc57825f5260205f2001015460301c611f04565b9190916040818403126102ba578035611f5f81610412565b9260208201356001600160401b0381116102ba5761058692016104f1565b611f8991810190611f47565b6040516302910f8b60e31b81526001600160a01b039283166004820181905291906020816024817f000000000000000000000000000000000000000000000000000000000000000088165afa908115610794575f9161209c575b501561208a5761201e60409161201961206494611ffe612584565b60018060a01b03166001600160601b0360a01b5f5416175f55565b612704565b6020810151600180546001600160a01b0319166001600160a01b0390921691909117905580516001600160a01b031684811661207a575b5001516001600160a01b031690565b90811661206e5750565b61207790611c7f565b50565b61208390611bd4565b505f612055565b6040516362df054560e01b8152600490fd5b6120b5915060203d60201161078d5761077f8183610487565b5f611fe3565b6040519060a082018281106001600160401b038211176104675760405281608060609182815282602082015282604082015282808201520152565b906020828203126102ba5781516001600160401b03928382116102ba57019060a0828203126102ba576121276104a8565b9282518181116102ba578261213d918501611402565b845260208301518181116102ba5782612157918501611402565b602085015260408301518181116102ba5782612174918501611402565b604085015260608301518181116102ba5782612191918501611402565b606085015260808301519081116102ba576121ac9201611402565b608082015290565b908160209103126102ba575190565b60409065ffffffffffff61058694931681528160208201520190611376565b919392936121ee6120bb565b948051806122d6575b505061220860608601518285611360565b918261221a57505050509051905f9190565b61222e6122689183608089015191876112fb565b9160206122476110bc6110bc5f5460018060a01b031690565b8189015190604051808096819463810da75d60e01b835287600484016121c3565b03915afa80156107945761229e95612298935f926122a3575b50612292919260408a01519161134a565b90612864565b90612876565b915190565b61229292506122c99060203d6020116122cf575b6122c18183610487565b8101906121b4565b91612281565b503d6122b7565b6122ea9296506020809183010191016120f6565b935f806121f7565b90612308610a16835f52600460205260405f2090565b9081612315575050505f90565b610a1661232e91610ed5855f52600560205260405f2090565b5f5460405163bd49c35f60e01b815290602090829060049082906001600160a01b03165afa80156107945761058694612298925f9261237e575b50610a16612292915f52600360205260405f2090565b61229291925061239f610a169160203d6020116122cf576122c18183610487565b929150612368565b65ffffffffffff908181116123ba571690565b604490604051906306dfcc6560e41b8252603060048301526024820152fd5b906040516123e68161044c565b915465ffffffffffff8116835260301c6020830152565b80548061240e5750505f905f905f90565b5f199080828101116113bc5761242b925f5260205f2001016123d9565b9065ffffffffffff82511691602060018060d01b0391015116906001929190565b908154905f8291600584116124b6575b612467935084612bdf565b8061248f57505f905b6001600160d01b0382161561176357610586916001611f1f92016118fd565b6124a961249e6124b0926113ae565b835f5260205f200190565b5460301c90565b90612470565b91926124c181612aac565b81039081116113bc5761246793855f5265ffffffffffff808360205f20015416908516105f146124f257509161245c565b9291506124fe906113ce565b9061245c565b604051906125118261044c565b5f6020838281520152565b9061254561253f6125669261252f612504565b50612538612504565b50846118fd565b506123d9565b91600165ffffffffffff845116936020828060d01b039101511691016118fd565b905490604051926125768461044c565b835260031b1c602082015290565b61258c612a7e565b612594612a7e565b60015f80516020612c5f83398151915255565b604051906125b48261046c565b5f6040838281528260208201520152565b81601f820112156102ba578051916020916001600160401b038411610467578360051b90604051946125f985840187610487565b855283808601928201019283116102ba578301905b82821061261c575050505090565b838091835161262a81610412565b81520191019061260e565b906020828203126102ba5781516001600160401b03928382116102ba5701908181039260a084126102ba5760606040519461266f8661046c565b126102ba576040516126808161046c565b835161268b81610412565b8152602084015161269b81610412565b602082015260408401516126ae81610412565b6040820152845260608301518181116102ba57826126cd9185016125c5565b602085015260808301519081116102ba576126e892016125c5565b604082015290565b80518210156119125760209160051b010190565b612720906127106125a7565b5060208082518301019101612635565b8051519091906001600160a01b0316158061284a575b612838579060208101905f5b825180518210156127bc576110bc61275d8361276a936126f0565b516001600160a01b031690565b156127aa5761278c61278861278361275d8487516126f0565b611d55565b1590565b61279857600101612742565b604051635140fefd60e11b8152600490fd5b6040516323cda06760e01b8152600490fd5b506040925050818101905f5b8251805182101561282f576110bc61275d836127e3936126f0565b1561281e576128016127886127fc61275d8487516126f0565b611dc3565b61280d576001016127c8565b8351635140fefd60e11b8152600490fd5b83516323cda06760e01b8152600490fd5b50509150505190565b6040516303501f5960e11b8152600490fd5b506020820151511580612736575060408201515115612736565b9080821015612871575090565b905090565b9091828202915f19848209938380861095039480860395146128fb57848311156128e957829109815f038216809204600280826003021880830282030280830282030280830282030280830282030280830282030280920290030293600183805f03040190848311900302920304170290565b60405163227bc15360e01b8152600490fd5b50509061058692506116c2565b8054600160401b81101561046757612925916001820181556118fd565b61295057815160209092015160301b65ffffffffffff191665ffffffffffff92909216919091179055565b634e487b7160e01b5f525f60045260245ffd5b805492939291908215612a555761298461297f61249e856113ae565b6123d9565b90612995825165ffffffffffff1690565b65ffffffffffff84811691168110612a43576119a89460209488926129c3611aff875165ffffffffffff1690565b03612a0b57506129fd926129d96129e4926113ae565b905f5260205f200190565b9065ffffffffffff82549181199060301b169116179055565b01516001600160d01b031690565b915050612a3e91612a2b612a1d6104c7565b65ffffffffffff9093168352565b6001600160d01b03881682860152612908565b6129fd565b604051632520601d60e01b8152600490fd5b612a799250612a65612a1d6104c7565b6001600160d01b0385166020830152612908565b5f9190565b60ff5f80516020612c7f8339815191525460401c1615612a9a57565b604051631afcd79f60e31b8152600490fd5b801561152d5780612292612b77612b6d612b63612b59612b4f612b45612b3b60016105869a5f908b60801c80612bd3575b508060401c80612bc6575b508060201c80612bb9575b508060101c80612bac575b508060081c80612b9f575b508060041c80612b92575b508060021c80612b85575b50821c612b7e575b811c1b612b34818b6116c2565b0160011c90565b612b34818a6116c2565b612b3481896116c2565b612b3481886116c2565b612b3481876116c2565b612b3481866116c2565b612b3481856116c2565b80926116c2565b8101612b27565b600291509101905f612b1f565b600491509101905f612b14565b600891509101905f612b09565b601091509101905f612afe565b602091509101905f612af3565b604091509101905f612ae8565b9150506080905f612add565b91905b838210612bef5750505090565b9091928083169080841860011c82018092116113bc57845f5265ffffffffffff808360205f20015416908416105f14612c2c5750925b9190612be2565b939250612c38906113ce565b91612c2556fe02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268009b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a2646970667358221220b254b860c7c949491b5c7d1363cf98acdb518a309f471651f9f806b7024a05a764736f6c63430008190033","sourceMap":"542:7244:78:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;;;;;-1:-1:-1;;542:7244:78;;;;;;;;;;;;;;;;;;-1:-1:-1;;;3551:47:23;;;:87;;;;542:7244:78;;;;;;;;;;3551:87:23;-1:-1:-1;;;1133:40:29;;-1:-1:-1;3551:87:23;;;542:7244:78;-1:-1:-1;542:7244:78;;;;;;;;;;;;;;;;;;;;3202:4:23;;;:::i;:::-;542:7244:78;-1:-1:-1;542:7244:78;3610:15;542:7244;;;-1:-1:-1;542:7244:78;;3601:36;;3597:98;;542:7244;-1:-1:-1;542:7244:78;2233:13;542:7244;;;2233:34;542:7244;-1:-1:-1;542:7244:78;2233:34;:::i;:::-;3709;3705:84;;3799:25;3871:35;3799:25;:56;3871:35;3799:25;;;542:7244;;2233:13;542:7244;;;;;;;3799:25;819:34:62;837:15;819:34;:::i;:::-;3799:56:78;;:::i;:::-;-1:-1:-1;;542:7244:78;;;;;;;;;;;;3871:35;;;;542:7244;3705:84;542:7244;-1:-1:-1;;;3766:12:78;;542:7244;;3766:12;3597:98;542:7244;-1:-1:-1;;;3660:24:78;;542:7244;;3660:24;542:7244;;;;;;-1:-1:-1;;542:7244:78;;;;;;1537:38:76;-1:-1:-1;;;;;542:7244:78;;;;;;;;;;;;-1:-1:-1;;542:7244:78;;;;;;1632:54:76;-1:-1:-1;;;;;542:7244:78;;;;;;;-1:-1:-1;;;;;542:7244:78;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;542:7244:78;;;;;;;:::o;:::-;;:::i;:::-;;;;;;;-1:-1:-1;;;;;542:7244:78;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;542:7244:78;;;;;;;:::o;:::-;;;;;;;;;;-1:-1:-1;;;;;542:7244:78;;;;;;;:::o;:::-;;;;;;;:::i;:::-;:::o;:::-;-1:-1:-1;;;;;542:7244:78;;;;;;-1:-1:-1;;542:7244:78;;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;542:7244:78;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;542:7244:78;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;-1:-1:-1;;;;;542:7244:78;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;3090:79;:44;542:7244;;;:::i;:::-;;;;;-1:-1:-1;542:7244:78;3090:22;542:7244;;;-1:-1:-1;542:7244:78;;;;;;;;;;;;;;;;;3090:44;:79;:::i;:::-;542:7244;;;;;;;;;;;;-1:-1:-1;;542:7244:78;;;;;;1743:56:76;-1:-1:-1;;;;;542:7244:78;;;;;;;;;;;;-1:-1:-1;;542:7244:78;;;;;;-1:-1:-1;;;;;542:7244:78;;;;;;;;3217:103:28;;;:::i;:::-;542:7244:78;;-1:-1:-1;;;4285:48:76;;4322:10;542:7244:78;4285:48:76;;542:7244:78;;;;;-1:-1:-1;;;;;4295:16:76;542:7244:78;4285:48:76;;;;;;;-1:-1:-1;4285:48:76;;;542:7244:78;4284:49:76;;4280:99;;-1:-1:-1;;;;;542:7244:78;-1:-1:-1;;4322:10:76;297:2:88;542:7244:78;;267:46:88;4459:27:76;;;;542:7244:78;;4459:15:76;542:7244:78;;;;;;;4459:27:76;542:7244:78;4459:37:76;4455:87;;4654:38;4552:27;4654:38;4552:27;;;542:7244:78;;4459:15:76;542:7244:78;;;;;;;4552:27:76;542:7244:78;4631:6:76;;;;:::i;:::-;542:7244:78;;;;;;;;;;;;;4654:38:76;;;;3282:1:28;1805;-1:-1:-1;;;;;;;;;;;542:7244:78;3716:283:28;3282:1;542:7244:78;4455:87:76;542:7244:78;;-1:-1:-1;;;4519:12:76;;542:7244:78;;4519:12:76;4280:99;542:7244:78;;-1:-1:-1;;;4356:12:76;;542:7244:78;;4356:12:76;4285:48;;;;542:7244:78;4285:48:76;542:7244:78;4285:48:76;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;:::i;542:7244:78:-;;;;;;-1:-1:-1;;542:7244:78;;;;;;-1:-1:-1;542:7244:78;-1:-1:-1;;;;;;;;;;;542:7244:78;;;4919:24:23;542:7244:78;-1:-1:-1;542:7244:78;4919:24:23;542:7244:78;;;;;;;;;;;;;-1:-1:-1;;542:7244:78;;;;;;322:32:69;-1:-1:-1;;;;;542:7244:78;;;;;;;;;;;;-1:-1:-1;;542:7244:78;;;;5350:25:23;542:7244:78;;;;;;;:::i;:::-;;-1:-1:-1;542:7244:78;-1:-1:-1;;;;;;;;;;;542:7244:78;;3202:4:23;4919:24;542:7244:78;-1:-1:-1;542:7244:78;4919:24:23;542:7244:78;3202:4:23;:::i;:::-;5350:25;:::i;542:7244:78:-;;;;;;-1:-1:-1;;542:7244:78;;;;;;;;;:::i;:::-;966:10:27;-1:-1:-1;;;;;542:7244:78;;6441:34:23;6437:102;;6549:37;542:7244:78;;;6549:37:23;:::i;6437:102::-;542:7244:78;;-1:-1:-1;;;6498:30:23;;542:7244:78;;6498:30:23;542:7244:78;;;;;;-1:-1:-1;;542:7244:78;;;;;;;;;:::i;:::-;3217:103:28;;:::i;:::-;966:10:27;-1:-1:-1;542:7244:78;;;;;;;;;;1356:26:76;;542:7244:78;;4468:23:23;4464:108;;-1:-1:-1;4861:4:76;542:7244:78;-1:-1:-1;;;;;542:7244:78;;;;;;4861:13:76;;4857:63;;-1:-1:-1;;;;;;542:7244:78;;;4861:4:76;542:7244:78;4958:14:76;-1:-1:-1;;4958:14:76;4861:4;-1:-1:-1;;;;;;;;;;;542:7244:78;;4464:108:23;542:7244:78;;;;4514:47:23;;;;;;966:10:27;542:7244:78;4514:47:23;;542:7244:78;;;;;4514:47:23;542:7244:78;;;;;;-1:-1:-1;;542:7244:78;;;;;;-1:-1:-1;542:7244:78;2233:13;542:7244;;;2233:34;542:7244;-1:-1:-1;542:7244:78;2233:34;:::i;542:7244::-;;;;;;-1:-1:-1;;542:7244:78;;;;;3358:53;:44;542:7244;;;;;:::i;:::-;;;-1:-1:-1;542:7244:78;3358:22;542:7244;;;-1:-1:-1;542:7244:78;;;;;;;;;;;;;;;;;3358:44;:53;:::i;542:7244::-;;;;;;;;;;;;;-1:-1:-1;;;;;542:7244:78;;;;;;;;;;;;;;;:::o;:::-;;;;;;-1:-1:-1;;542:7244:78;;;;-1:-1:-1;;;;;542:7244:78;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;542:7244:78;;;;;;;4301:16:25;542:7244:78;;4726:16:25;;:34;;;;542:7244:78;4805:1:25;4790:16;:50;;;;542:7244:78;4855:13:25;:30;;;;542:7244:78;4851:91:25;;;-1:-1:-1;;;;;;;;;;;542:7244:78;;-1:-1:-1;;542:7244:78;;;;;718:4:69;;4951:18:25;4979:67;;718:4:69;:::i;:::-;5066:101:25;;542:7244:78;5066:101:25;-1:-1:-1;;;;;;;;;;;542:7244:78;;-1:-1:-1;;;;542:7244:78;;;;;-1:-1:-1;542:7244:78;;5142:14:25;;542:7244:78;;5142:14:25;542:7244:78;4979:67:25;-1:-1:-1;;;;;;;;;;;542:7244:78;;-1:-1:-1;;;;542:7244:78;-1:-1:-1;;;542:7244:78;;;718:4:69;:::i;4851:91:25:-;542:7244:78;;-1:-1:-1;;;4908:23:25;;542:7244:78;;4908:23:25;4855:30;4872:13;;;4855:30;;;4790:50;4818:4;4810:25;:30;;-1:-1:-1;4790:50:25;;4726:34;;;-1:-1:-1;4726:34:25;;542:7244:78;;;;;;-1:-1:-1;;542:7244:78;;;;;;;1253:6:76;542:7244:78;;;;;-1:-1:-1;;542:7244:78;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;542:7244:78;;;;;;;;;:::i;:::-;;;;;1997:60;542:7244;;;:::i;:::-;;-1:-1:-1;542:7244:78;1997:13;542:7244;;;-1:-1:-1;542:7244:78;1997:60;:::i;542:7244::-;;;;;;-1:-1:-1;;542:7244:78;;;;;;;1356:26:76;542:7244:78;;;;;;;;;-1:-1:-1;;542:7244:78;;;;;;;810:35;542:7244;;;;;;;;;-1:-1:-1;;542:7244:78;;;;;;;;-1:-1:-1;;;;;542:7244:78;;;;;;;;;;;;;2512:74;542:7244;;;:::i;:::-;;-1:-1:-1;542:7244:78;;;;;-1:-1:-1;542:7244:78;2512:74;:::i;542:7244::-;;;;;;-1:-1:-1;;542:7244:78;;;;;;3901:31:23;542:7244:78;;;;;:::i;:::-;;;-1:-1:-1;542:7244:78;-1:-1:-1;;;;;;;;;;;542:7244:78;;;-1:-1:-1;542:7244:78;;;;;;;;;;;;;;;;;3901:31:23;542:7244:78;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;542:7244:78;;;;-1:-1:-1;542:7244:78;;;477:31:75;542:7244:78;;;;;;:::i;:::-;;;;;;;;;;;;;;;416:25:75;;;;542:7244:78;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;-1:-1:-1;542:7244:78;;;;;;;;;;;;;477:31:75;;542:7244:78;;;;;;;;;;:::i;:::-;477:31:75;542:7244:78;;477:31:75;;;;;;:::i;:::-;518:79;;;542:7244:78;518:79:75;;542:7244:78;;;;;;;;;;;-1:-1:-1;;542:7244:78;;;;;;;;;;;;;;;;;-1:-1:-1;;542:7244:78;;;;;;;;;;;:::i;:::-;;;3202:4:23;;;:::i;:::-;-1:-1:-1;542:7244:78;;;3358:22;542:7244;;;;;;;;-1:-1:-1;;;;;542:7244:78;;;;;;;;;3358:53;;;:::i;:::-;4249:32;;;4245:82;;4596:54;542:7244;4337:158;4596:54;542:7244;;-1:-1:-1;542:7244:78;;;;;-1:-1:-1;542:7244:78;837:15:62;4413:72:78;837:15:62;4413:63:78;819:34:62;837:15;819:34;:::i;:::-;2776:39:78;:48;:39;;542:7244;;;;;;;;;;2776:48;4413:63;:::i;:::-;:72;:::i;:::-;4337:158;;:::i;:::-;4505:34;;:75;:34;:44;:34;;;542:7244;;3358:22;542:7244;;;;;;;4505:34;542:7244;;;;;;;;;;;;;;;;4505:75;-1:-1:-1;;542:7244:78;;;;;-1:-1:-1;;;;;542:7244:78;;;;;;;;;;4596:54;;;;542:7244;;;;;;;-1:-1:-1;;542:7244:78;;;;;;;-1:-1:-1;;;;;404:28:69;542:7244:78;;;;;;;;;;-1:-1:-1;;542:7244:78;;;;;;1439:41:76;-1:-1:-1;;;;;542:7244:78;;;;;;;;;;;;-1:-1:-1;;542:7244:78;;;;;;-1:-1:-1;542:7244:78;;;;;2776:48;542:7244;-1:-1:-1;542:7244:78;2776:48;:::i;542:7244::-;;;;;;-1:-1:-1;;542:7244:78;;;;;;-1:-1:-1;542:7244:78;2009:67:76;542:7244:78;;;;-1:-1:-1;542:7244:78;;;;;;;;;;;;;;-1:-1:-1;;542:7244:78;;;;5767:26:23;542:7244:78;;;;;;;:::i;:::-;;-1:-1:-1;542:7244:78;-1:-1:-1;;;;;;;;;;;542:7244:78;;3202:4:23;4919:24;542:7244:78;-1:-1:-1;542:7244:78;4919:24:23;542:7244:78;3202:4:23;:::i;:::-;5767:26;:::i;542:7244:78:-;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;-1:-1:-1;;542:7244:78;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;-1:-1:-1;;;;;542:7244:78;;;;;;;;;;;;:::i;:::-;3217:103:28;;:::i;:::-;-1:-1:-1;542:7244:78;;;5246:21:76;;:13;;-1:-1:-1;;;;;542:7244:78;5246:13:76;542:7244:78;;-1:-1:-1;;;;;542:7244:78;;;5246:21:76;542:7244:78;;-1:-1:-1;;;5246:23:76;;542:7244:78;;;;;5246:23:76;;;;;;;-1:-1:-1;5246:23:76;;;542:7244:78;-1:-1:-1;;;;;;542:7244:78;;;5232:10:76;:37;5228:87;;5341:4;542:7244:78;-1:-1:-1;;;;;542:7244:78;;;;5355:469:76;;542:7244:78;-1:-1:-1;;542:7244:78;;;;;;;;;;;;;;;;5839:55:76;;542:7244:78;;;;5839:55:76;;;;3282:1:28;1805;-1:-1:-1;;;;;;;;;;;542:7244:78;3716:283:28;5355:469:76;542:7244:78;;;;5435:94:76;;;;542:7244:78;5435:94:76;;;;;;;;;;;;542:7244:78;5435:94:76;;;:::i;:::-;;542:7244:78;;5435:94:76;;;;;;:::i;:::-;542:7244:78;5548:9:76;:51;5544:118;;-1:-1:-1;5839:55:76;5676:138;;;;5839:55;5676:138;;;1150:7;5676:138;;5355:469;;;5544:118;542:7244:78;;-1:-1:-1;;;5626:21:76;;542:7244:78;;5626:21:76;5228:87;542:7244:78;;-1:-1:-1;;;5292:12:76;;542:7244:78;;5292:12:76;5246:23;;;;;542:7244:78;5246:23:76;542:7244:78;5246:23:76;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;542:7244:78;;;;;;-1:-1:-1;;542:7244:78;;;;;;;971:45;542:7244;;;;;;;;;-1:-1:-1;;542:7244:78;;;;;;;;-1:-1:-1;;;;;542:7244:78;;;;;;;;;;;;;;-1:-1:-1;;542:7244:78;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;-1:-1:-1;;542:7244:78;;;;;;;1150:7:76;542:7244:78;;;;;;;;;-1:-1:-1;;542:7244:78;;;;;;;2700:1:76;542:7244:78;;;2897:279;-1:-1:-1;542:7244:78;;;3090:22;542:7244;;;;;;;;-1:-1:-1;;;;;542:7244:78;;;;;;;;;3090:79;;2897:279;;3090:79;:::i;542:7244::-;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;1869:195;;1997:60;1869:195;;-1:-1:-1;542:7244:78;1997:13;542:7244;;;-1:-1:-1;542:7244:78;1997:60;:::i;2340:253::-;;2512:74;2340:253;;-1:-1:-1;542:7244:78;2512:27;542:7244;;;-1:-1:-1;542:7244:78;2512:74;:::i;542:7244::-;;;;;;;;;;;;;;;;;-1:-1:-1;542:7244:78;;;;;;;;-1:-1:-1;;542:7244:78;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;542:7244:78;;;;;;;;:::o;:::-;;:::i;:::-;;;;;;;;;;:::o;:::-;;9856:1:60;542:7244:78;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;542:7244:78;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;;;;542:7244:78;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::o;:::-;-1:-1:-1;;;;;542:7244:78;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;2764:920:76:-;;2978:48;2764:920;;;;2978:48;;;;:::i;:::-;3036:36;;;542:7244:78;;:::i;:::-;;;;3086:20:76;3082:107;;2764:920;3216:11;;;;:193;;;;;2764:920;3216:394;;;;2764:920;3199:455;;;;;;2764:920;:::o;3199:455::-;3635:8;-1:-1:-1;3635:8:76;:::o;3216:394::-;3553:39;;;;;3430:180;3553:39;;;542:7244:78;;;;;;;;;;3430:180:76;;467:2:88;542:7244:78;3430:180:76;;;;;:::i;:::-;;542:7244:78;3444:31:76;-1:-1:-1;;;;;542:7244:78;3430:180:76;;;;;;;-1:-1:-1;3430:180:76;;;3216:394;3429:181;;3216:394;;;;;;3430:180;;;;3553:39;3430:180;3553:39;3430:180;;;;;;;:::i;:::-;;;;3216:193;-1:-1:-1;542:7244:78;;;-1:-1:-1;;;;;;542:7244:78;3248:161:76;3354:37;;;542:7244:78;3248:161:76;542:7244:78;;;;;;;;;;3248:161:76;;;;;;;:::i;:::-;;542:7244:78;3262:29:76;-1:-1:-1;;;;;542:7244:78;3248:161:76;;;;;;;-1:-1:-1;3248:161:76;;;3216:193;3247:162;;3216:193;;;3248:161;;;;;;;;;;;;;;:::i;:::-;;;;3082:107;3139:39;;;;;;;;;;;;;:::i;:::-;3082:107;;;;;542:7244:78;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::o;:::-;;;;;;;;;;;;3740:389:76;3918:5;542:7244:78;;;-1:-1:-1;;;3853:71:76;;;-1:-1:-1;;;;;542:7244:78;;;3853:71:76;;;542:7244:78;;;;;;;;3740:389:76;;542:7244:78;3853:71:76;;542:7244:78;;3853:71:76;542:7244:78;;;3867:29:76;542:7244:78;;3853:71:76;;;;;;;3918:5;3853:71;;;3740:389;3852:72;;542:7244:78;;;3852:181:76;;3740:389;3835:242;;;;;;4094:28;;;:::i;3835:242::-;4058:8;;3918:5;4058:8;:::o;3852:181::-;542:7244:78;;3945:88:76;;;-1:-1:-1;;;;;542:7244:78;;3853:71:76;3945:88;;542:7244:78;467:2:88;542:7244:78;;;;;;;;-1:-1:-1;542:7244:78;;;;;;;;3959:31:76;542:7244:78;3945:88:76;;;;;;;3918:5;3945:88;;;3852:181;3944:89;;;3852:181;;;;;3945:88;;;;;;-1:-1:-1;3945:88:76;;;;;;:::i;:::-;;;;;3853:71;;;;;;;;;;;;;;:::i;:::-;;;;4148:103:23;966:10:27;-1:-1:-1;542:7244:78;;;;;;;;;810:35;;542:7244;;3901:31:23;542:7244:78;;4468:23:23;4464:108;;4148:103;:::o;:::-;966:10:27;-1:-1:-1;542:7244:78;;;;;;;;;971:45;;542:7244;;3901:31:23;542:7244:78;4148:103:23;-1:-1:-1;542:7244:78;;;-1:-1:-1;;;;;;;;;;;542:7244:78;;;;;;;;966:10:27;542:7244:78;;;;;;;;;3901:31:23;542:7244:78;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;542:7244:78;;-1:-1:-1;542:7244:78;;;-1:-1:-1;542:7244:78;:::o;:::-;;:::i;:::-;;;;;-1:-1:-1;;;542:7244:78;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;6246:584:86;;;;;6360:12;;;542:7244:78;;;6360:24:86;;6356:75;;6246:584;6474:30;;;;;:::i;:::-;542:7244:78;;;;;;6578:12:86;;;;:::i;:::-;6604:24;;;;6246:584;-1:-1:-1;6600:188:86;;;-1:-1:-1;;;;;542:7244:78;;;;;;;6644:21:86;;;:29;:21;;:::i;:29::-;6798:25;6246:584;:::o;6600:188::-;6753:24;;542:7244:78;;8167:38:60;;-1:-1:-1;;;;;542:7244:78;;;;;8167:38:60;:::i;:::-;6753:24:86;;;:::i;6604:::-;542:7244:78;;;;;;6614:14:86;;-1:-1:-1;6604:24:86;;;6356:75;-1:-1:-1;;;542:7244:78;;;;;;6360:12:86;542:7244:78;;;;;;;:::i;:::-;;;;;;;;;;;;;;6356:75:86;;;542:7244:78;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;:::o;7558:604:86:-;;542:7244:78;;7686:17:86;7682:83;;542:7244:78;7789:27:86;542:7244:78;7789:27:86;542:7244:78;;7789:27:86;;;;;;:::i;:::-;7860:14;;;;;:::i;:::-;542:7244:78;;;;;;;;;;;;;;;;7888:22:86;;;7884:77;;7975:21;-1:-1:-1;7975:84:86;;;;7558:604;7971:139;;;;8127:28;;;;:::i;7971:139::-;8082:17;;7789:27;8082:17;542:7244:78;8075:24:86;:::o;7975:84::-;542:7244:78;;;8009:16:86;542:7244:78;;8009:16:86;:::i;:::-;542:7244:78;;;8001:24:86;:57;;;;;7975:84;;;;;;;8001:57;8029:29;8038:8;;;8029:18;8038:8;8029:23;8038:8;;:::i;:::-;8029:18;;:::i;:::-;542:7244:78;;;;;8029:23:86;542:7244:78;;;;8029:29:86;;8001:57;;;;7884:77;7933:17;;;;;7789:27;7933:17;542:7244:78;7926:24:86;:::o;7682:83::-;7726:28;;;;:::i;3326:384:28:-;-1:-1:-1;;;;;;;;;;;1847:1:28;542:7244:78;;3526:20:28;3522:88;;1847:1;542:7244:78;;3326:384:28:o;3522:88::-;542:7244:78;;-1:-1:-1;;;3569:30:28;;;;;6196:308:78;;542:7244;-1:-1:-1;542:7244:78;6327:13;542:7244;;;-1:-1:-1;542:7244:78;11124:30:86;;;;:::i;:::-;11173;;;-1:-1:-1;11173:30:86;;;;11182:17;;-1:-1:-1;;;;;542:7244:78;;11182:12:86;;:17;:::i;:::-;542:7244:78;;;6327:13;542:7244;;11173:30:86;6385::78;;;11173::86;6381:117:78;;;;6196:308;;:::o;6381:117::-;6431:56;542:7244;-1:-1:-1;542:7244:78;6327:13;542:7244;;;-1:-1:-1;542:7244:78;819:34:62;837:15;819:34;:::i;6431:56:78:-;6196:308;;:::o;6385:30::-;6395:20;;-1:-1:-1;6385:30:78;;;;11173::86;;;-1:-1:-1;11173:30:86;;7270:387:23;-1:-1:-1;;;;;542:7244:78;;-1:-1:-1;542:7244:78;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2887:71:23;542:7244:78;;;;-1:-1:-1;542:7244:78;;;;;;;;;;;-1:-1:-1;;;;;542:7244:78;;;;;;;;;;-1:-1:-1;;542:7244:78;7509:4:23;542:7244:78;;;966:10:27;;-1:-1:-1;;;;;542:7244:78;-1:-1:-1;7532:40:23;-1:-1:-1;;7532:40:23;7509:4;7586:11;:::o;7270:387::-;-1:-1:-1;;;;;542:7244:78;;-1:-1:-1;542:7244:78;;;;;;;;;1356:26:76;;-1:-1:-1;;;;;;;;;;;2887:71:23;542:7244:78;;3901:31:23;542:7244:78;;;;-1:-1:-1;542:7244:78;;;;;;;;;;;-1:-1:-1;;;;;542:7244:78;;;;;;;;;;-1:-1:-1;;542:7244:78;7509:4:23;542:7244:78;;;966:10:27;;-1:-1:-1;;;;;542:7244:78;;7532:40:23;-1:-1:-1;;7532:40:23;7509:4;7586:11;:::o;7432:219::-;7628:12;;;-1:-1:-1;7628:12:23;:::o;7270:387::-;-1:-1:-1;;;;;542:7244:78;;-1:-1:-1;542:7244:78;;;;;;;;;810:35;;-1:-1:-1;;;;;;;;;;;2887:71:23;542:7244:78;;3901:31:23;542:7244:78;7270:387:23;-1:-1:-1;;;;;542:7244:78;;-1:-1:-1;542:7244:78;;;;;;;;;971:45;;-1:-1:-1;;;;;;;;;;;2887:71:23;542:7244:78;;3901:31:23;542:7244:78;7270:387:23;-1:-1:-1;542:7244:78;;;-1:-1:-1;;;;;;;;;;;542:7244:78;;;;;;;;-1:-1:-1;;;;;542:7244:78;;;;;;;;;;;;3901:31:23;542:7244:78;7892:388:23;-1:-1:-1;542:7244:78;;;-1:-1:-1;;;;;;;;;;;542:7244:78;;;;;;;;-1:-1:-1;;;;;542:7244:78;;;;;;;;;;;;;;;;-1:-1:-1;542:7244:78;;;;;;;;;;;-1:-1:-1;;;;;542:7244:78;;;;;;;;;;-1:-1:-1;;542:7244:78;;;966:10:27;;-1:-1:-1;;;;;542:7244:78;;8155:40:23;-1:-1:-1;;8155:40:23;542:7244:78;8209:11:23;:::o;10580:184:86:-;542:7244:78;;10303:8:60;;;:63;-1:-1:-1;10303:63:60;-1:-1:-1;;;;;542:7244:78;;10726:7:86;542:7244:78;;10736:12:86;:17;:12;;:17;:::i;:::-;542:7244:78;;;;;;10580:184:86;:::o;10303:63:60:-;542:7244:78;;;;;;;;;;14249:109:60;-1:-1:-1;14249:109:60;;-1:-1:-1;14249:109:60;;;542:7244:78;;;10303:63:60;;542:7244:78;;;;;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;542:7244:78;;;;;;;;:::i;5907:716:76:-;6030:34;5907:716;6030:34;;;;:::i;:::-;542:7244:78;;-1:-1:-1;;;6080:41:76;;-1:-1:-1;;;;;542:7244:78;;;6080:41:76;;;542:7244:78;;;;;6080:41:76;542:7244:78;;;6090:13:76;542:7244:78;;6080:41:76;;;;;;;-1:-1:-1;6080:41:76;;;5907:716;6079:42;;6075:90;;6266:27;542:7244:78;2540:111:28;6210:14:76;542:7244:78;2540:111:28;;;:::i;:::-;542:7244:78;;;;;;-1:-1:-1;;;;;542:7244:78;;-1:-1:-1;542:7244:78;;;-1:-1:-1;542:7244:78;;6210:14:76;6266:27;:::i;:::-;6080:41;6311:15;;542:7244:78;;;;-1:-1:-1;;;;;;542:7244:78;-1:-1:-1;;;;;542:7244:78;;;;;;;;;;;-1:-1:-1;;;;;542:7244:78;;;;6337:143:76;;5907:716;-1:-1:-1;6493:28:76;542:7244:78;-1:-1:-1;;;;;542:7244:78;;;;;;;6489:128:76;;5907:716;:::o;6489:128::-;6551:55;;;:::i;:::-;;5907:716::o;6337:143::-;6404:65;;;:::i;:::-;;6337:143;;;6075:90;542:7244:78;;-1:-1:-1;;;6144:10:76;;6080:41;;6144:10;6080:41;;;;;;;;;;;;;;:::i;:::-;;;;542:7244:78;;;;;;;;;;-1:-1:-1;;;;;542:7244:78;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;;;;542:7244:78;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;:::i;4663:1079::-;;;;;542:7244;;:::i;:::-;;;;4903:16;4899:92;;4663:1079;5105:42;;5053:95;5105:42;;;;5053:95;;;:::i;:::-;5165:570;:34;;;5218:21;;;;;;5165:570;-1:-1:-1;5158:577:78;4663:1079;:::o;5165:570::-;5273:95;5431:67;5330:37;;;;;;5273:95;;;:::i;:::-;542:7244;5470:27;5431;:13;542:7244;-1:-1:-1;542:7244:78;;;;;;;;;5431:27;5470;;;;542:7244;;;;;;;;;;;5431:67;;;;;;;:::i;:::-;;;;;;;;;5273:409;5431:67;5397:216;5431:67;-1:-1:-1;5431:67:78;;;5165:570;5562:28;5524:67;5562:28;;542:7244;5562:28;;;5524:67;;:::i;:::-;5397:216;;:::i;:::-;5273:409;;:::i;:::-;5700:21;;4663:1079;:::o;5431:67::-;5524;5431;;;;5470:27;5431:67;5470:27;5431:67;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;4899:92;4949:31;;;;;;;;;;;;;:::i;:::-;4899:92;;;;;5748:442;;2776:48;:39;;542:7244;;;;;;;;;;2776:48;5946:237;:32;;;:237;;;-1:-1:-1;5748:442:78;:::o;5946:237::-;3358:44;:53;:34;;;542:7244;;3358:22;542:7244;;;;;;;3358:53;-1:-1:-1;542:7244:78;;;-1:-1:-1;;;6086:27:78;;542:7244;6086:27;;542:7244;;2776:27;;542:7244;;-1:-1:-1;;;;;542:7244:78;6086:27;;;;;;6009:174;6086:27;6077:63;6086:27;-1:-1:-1;6086:27:78;;;5946:237;2233:25;;:34;:25;542:7244;;2233:13;542:7244;;;;;;;6086:27;2233:34;6086:27;;;;2233:25;6086:27;;;;;;;;;;;:::i;:::-;;;;;;14291:213:58;542:7244:78;14369:24:58;;;;14365:103;;542:7244:78;14291:213:58;:::o;14365:103::-;542:7244:78;;;;14416:41:58;;;;;;14447:2;14416:41;;;542:7244:78;;;;;14416:41:58;542:7244:78;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::o;10552:388:60:-;542:7244:78;;10728:8:60;;;10752:20;;10690:17;10752:20;10690:17;10752:20;10690:17;10752:20;:::o;10724:210::-;542:7244:78;;;;;;;;;;;14249:109:60;10690:17;14249:109;;10690:17;14249:109;;;542:7244:78;:::i;:::-;;;;;;;14249:109:60;542:7244:78;;;;;10911:11:60;;542:7244:78;;10886:37:60;10870:1;10886:37;;;:::o;6999:207:86:-;;542:7244:78;;9594:15:60;-1:-1:-1;9619:18:60;9652:7;9658:1;9652:7;;9648:234;;6999:207:86;9906:53:60;;;;;:::i;:::-;9977:8;;;:63;-1:-1:-1;9977:63:60;;-1:-1:-1;;;;;542:7244:78;;7168:7:86;542:7244:78;;;7178:12:86;;:17;:12;;:17;:::i;9977:63:60:-;9992:41;10025:7;9992:48;10025:7;;:::i;:::-;9992:41;14249:109;;;;;;14099:265;;9992:41;542:7244:78;;;;;9992:48:60;9977:63;;;9648:234;9695:14;;;;;:::i;:::-;542:7244:78;;;;;;;9906:53:60;14249:109;;-1:-1:-1;14249:109:60;542:7244:78;14249:109:60;;;-1:-1:-1;14249:109:60;;542:7244:78;;;;;9727:48:60;9723:149;542:7244:78;;;9795:10:60;9723:149;9648:234;;9723:149;9850:7;;;;;;:::i;:::-;9723:149;9648:234;;542:7244:78;;;;;;;:::i;:::-;-1:-1:-1;542:7244:78;;;;;;;:::o;11486:272:86:-;;542:7244:78;11308:22:60;11718:31:86;11486:272;542:7244:78;;:::i;:::-;;;;:::i;:::-;;11308:22:60;;:::i;:::-;542:7244:78;;:::i;:::-;;11718:12:86;542:7244:78;;;;;11731:17:86;542:7244:78;;;;;11731:17:86;;542:7244:78;;11718:12:86;;:31;:::i;:::-;542:7244:78;;;;;;;;;:::i;:::-;;;;;;11731:17:86;11672:79;;542:7244:78;11486:272:86;:::o;6893:76:25:-;;;:::i;:::-;;;:::i;:::-;1805:1:28;-1:-1:-1;;;;;;;;;;;542:7244:78;6893:76:25:o;542:7244:78:-;;;;;;;:::i;:::-;-1:-1:-1;542:7244:78;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;-1:-1:-1;;;;;542:7244:78;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;542:7244:78;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;6510:1274::-;6658:30;6510:1274;542:7244;;:::i;:::-;;6658:30;542:7244;;;6658:30;;;;;;:::i;:::-;6716:17;;542:7244;6716:17;;542:7244;-1:-1:-1;;;;;542:7244:78;6716:54;;:179;;6510:1274;6699:259;;6973:9;6658:30;6988:33;;;6716:17;7030:3;6988:33;;542:7244;;6984:44;;;;;7053:36;;;:50;:36;;:::i;:::-;542:7244;-1:-1:-1;;;;;542:7244:78;;;7053:50;;7049:119;;7186:73;7187:72;7222:36;;:33;;;:36;:::i;:::-;7187:72;:::i;:::-;7186:73;;542:7244;7186:73;7182:140;;542:7244;;6973:9;;7182:140;542:7244;;-1:-1:-1;;;7286:21:78;;;;;7049:119;542:7244;;-1:-1:-1;;;7130:23:78;;;;;6984:44;-1:-1:-1;7362:42:78;;-1:-1:-1;;7362:42:78;;;;6716:17;7413:3;7362:42;;542:7244;;7358:53;;;;;7436:45;;;:59;:45;;:::i;:59::-;;7432:128;;7578:92;7579:91;7624:45;;:42;;;:45;:::i;:::-;7579:91;:::i;7578:92::-;7574:159;;542:7244;;7347:9;;7574:159;542:7244;;-1:-1:-1;;;7697:21:78;;;;;7432:128;542:7244;;-1:-1:-1;;;7522:23:78;;;;;7358:53;;;;;;7760:17;6510:1274;:::o;6699:259::-;542:7244;;-1:-1:-1;;;6927:20:78;;;;;6716:179;6791:33;6658:30;6791:33;;;542:7244;6791:45;:103;6716:179;6791:103;6840:42;;;;;542:7244;6840:54;6716:179;;2557:104:57;;2641:5;;;;;;:13;2557:104;:::o;2641:13::-;;;2557:104;:::o;3803:4116::-;;;542:7244:78;;;;-1:-1:-1;;3803:4116:57;;4383:131;;;;;;;;;;;;4595:10;;4591:368;;5065:20;;;;5061:88;;5435:300;;;542:7244:78;-1:-1:-1;542:7244:78;5954:31:57;;5999:371;;;6813:1;542:7244:78;;6794:1:57;542:7244:78;6793:21:57;542:7244:78;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5999:371:57;;;;-1:-1:-1;5999:371:57;;;5435:300;;;;;;542:7244:78;5435:300:57;;5999:371;6436:21;542:7244:78;3803:4116:57;:::o;5061:88::-;542:7244:78;;-1:-1:-1;;;5112:22:57;;;;;4591:368;4925:19;;;;;;;:::i;542:7244:78:-;;;-1:-1:-1;;;542:7244:78;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;542:7244:78;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;11513:870:60;542:7244:78;;11513:870:60;;;542:7244:78;11513:870:60;11672:7;;;;542:7244:78;11775:28:60;11795:7;;;:::i;11775:28::-;542:7244:78;:::i;:::-;;;;;;;;;;;;;;;;11877:15:60;-1:-1:-1;11873:91:60;;542:7244:78;;12233:11:60;542:7244:78;;;12027:16:60;542:7244:78;;;;;;;12027:16:60;;;;12083:7;12063:43;12083:7;;12063:28;12083:7;;:::i;:::-;12063:28;14249:109;;;;;;14099:265;;12063:28;542:7244:78;;;;;;;;;;;;;;;;;12063:43:60;12233:11;542:7244:78;-1:-1:-1;;;;;542:7244:78;;;12023:189:60;542:7244:78;;;12145:52:60;542:7244:78;12155:41:60;542:7244:78;;:::i;:::-;;;;;;;;12155:41:60;-1:-1:-1;;;;;542:7244:78;;12155:41:60;;;542:7244:78;12145:52:60;:::i;:::-;12023:189;;11873:91;542:7244:78;;-1:-1:-1;;;11919:30:60;;;;;11668:709;12283:52;542:7244:78;;12293:41:60;542:7244:78;;:::i;12293:41:60:-;-1:-1:-1;;;;;542:7244:78;;12293:41:60;;;542:7244:78;12145:52:60;:::i;12283:::-;11678:1;12349:17;;:::o;7084:141:25:-;542:7244:78;-1:-1:-1;;;;;;;;;;;542:7244:78;;;;7150:18:25;7146:73;;7084:141::o;7146:73::-;542:7244:78;;-1:-1:-1;;;7191:17:25;;;;;8587:1642:57;8658:6;;8654:45;;9401:7;10201:10;10142:26;10093;10044;9995;9946;9897;9848;542:7244:78;10189:23:57;9401:7;8663:1;542:7244:78;;;;10826:16:57;10822:99;;8587:1642;542:7244:78;;;;10938:15:57;10934:96;;8587:1642;542:7244:78;;;;11047:15:57;11043:96;;8587:1642;542:7244:78;;;;11156:15:57;11152:96;;8587:1642;542:7244:78;;;;11265:14:57;11261:93;;8587:1642;542:7244:78;;;;11371:14:57;11367:93;;8587:1642;542:7244:78;;;;11477:14:57;11473:93;;8587:1642;542:7244:78;;;11579:64:57;;8587:1642;542:7244:78;;;9858:10:57;;;;:::i;:::-;542:7244:78;;;;;9848:26:57;9907:10;;;;:::i;9897:26::-;9956:10;;;;:::i;9946:26::-;10005:10;;;;:::i;9995:26::-;10054:10;;;;:::i;10044:26::-;10103:10;;;;:::i;10093:26::-;10152:10;;;;:::i;10142:26::-;10201:10;;;:::i;11579:64::-;542:7244:78;;11579:64:57;;11473:93;542:7244:78;11511:11:57;;542:7244:78;;11473:93:57;;;;11367;542:7244:78;11405:11:57;;542:7244:78;;11367:93:57;;;;11261;542:7244:78;11299:11:57;;542:7244:78;;11261:93:57;;;;11152:96;542:7244:78;11191:12:57;;542:7244:78;;11152:96:57;;;;11043;542:7244:78;11082:12:57;;542:7244:78;;11043:96:57;;;;10934;542:7244:78;10973:12:57;;542:7244:78;;10934:96:57;;;;10822:99;10862:13;;;542:7244:78;10822:99:57;;;;12736:433:60;;;12919:10;;;;;;13151:11;;;12736:433;:::o;12912:230::-;2900:5:57;;;;;;2910;;;;542:7244:78;;;;;;;;;14249:109:60;-1:-1:-1;14249:109:60;542:7244:78;14249:109:60;;;-1:-1:-1;14249:109:60;;542:7244:78;;;;;-1:-1:-1;12996:136:60;542:7244:78;;;13055:10:60;12996:136;;12912:230;;;;12996:136;13110:7;;;;;;:::i;:::-;12996:136;;","linkReferences":{},"immutableReferences":{"57808":[{"start":2023,"length":32}],"57811":[{"start":3882,"length":32}],"58762":[{"start":1638,"length":32},{"start":3939,"length":32}],"58765":[{"start":927,"length":32},{"start":8114,"length":32}],"58768":[{"start":995,"length":32},{"start":5626,"length":32},{"start":5911,"length":32}],"58771":[{"start":1508,"length":32},{"start":5473,"length":32},{"start":6037,"length":32}]}},"methodIdentifiers":{"DEFAULT_ADMIN_ROLE()":"a217fddf","FACTORY()":"2dd31000","HOOK_GAS_LIMIT()":"ff54740f","HOOK_RESERVE()":"557cab44","HOOK_SET_ROLE()":"6679191e","NETWORK_LIMIT_SET_ROLE()":"7d24bb27","NETWORK_REGISTRY()":"c0cd7c3e","OPERATOR_NETWORK_OPT_IN_SERVICE()":"1a80e500","OPERATOR_NETWORK_SHARES_SET_ROLE()":"e78eb6ae","OPERATOR_VAULT_OPT_IN_SERVICE()":"128e5d82","TYPE()":"bb24fe8a","VAULT_FACTORY()":"103f2907","VERSION()":"ffa1ad74","getRoleAdmin(bytes32)":"248a9ca3","grantRole(bytes32,address)":"2f2ff15d","hasRole(bytes32,address)":"91d14854","hook()":"7f5a7c7b","initialize(bytes)":"439fab91","maxNetworkLimit(bytes32)":"d15b740e","networkLimit(bytes32)":"3eb22c0f","networkLimitAt(bytes32,uint48,bytes)":"5d32a1c9","onSlash(bytes32,address,uint256,uint48,bytes)":"e49561ee","operatorNetworkShares(bytes32,address)":"42c53e33","operatorNetworkSharesAt(bytes32,address,uint48,bytes)":"1a7a7044","renounceRole(bytes32,address)":"36568abe","revokeRole(bytes32,address)":"d547741f","setHook(address)":"3dfd3873","setMaxNetworkLimit(uint96,uint256)":"23f752d5","setNetworkLimit(bytes32,uint256)":"02145348","setOperatorNetworkShares(bytes32,address,uint256)":"a33bc287","stake(bytes32,address)":"fd4d447c","stakeAt(bytes32,address,uint48,bytes)":"e02f6937","staticDelegateCall(address,bytes)":"9f86fd85","supportsInterface(bytes4)":"01ffc9a7","totalOperatorNetworkShares(bytes32)":"c43dc03f","totalOperatorNetworkSharesAt(bytes32,uint48,bytes)":"8b3f10b0","vault()":"fbfa77cf"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"networkRegistry\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"vaultFactory\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operatorVaultOptInService\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operatorNetworkOptInService\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"delegatorFactory\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"entityType\",\"type\":\"uint64\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"AccessControlBadConfirmation\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"neededRole\",\"type\":\"bytes32\"}],\"name\":\"AccessControlUnauthorizedAccount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AlreadySet\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CheckpointUnorderedInsertion\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"DuplicateRoleHolder\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ExceedsMaxNetworkLimit\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientHookGas\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MathOverflowedMulDiv\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MissingRoleHolders\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotNetwork\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotSlasher\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotVault\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ReentrancyGuardReentrantCall\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"bits\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"SafeCastOverflowedUintDowncast\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ZeroAddressRoleHolder\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint48\",\"name\":\"captureTimestamp\",\"type\":\"uint48\"}],\"name\":\"OnSlash\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"previousAdminRole\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"newAdminRole\",\"type\":\"bytes32\"}],\"name\":\"RoleAdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleRevoked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"hook\",\"type\":\"address\"}],\"name\":\"SetHook\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"SetMaxNetworkLimit\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"SetNetworkLimit\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"}],\"name\":\"SetOperatorNetworkShares\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DEFAULT_ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"FACTORY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"HOOK_GAS_LIMIT\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"HOOK_RESERVE\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"HOOK_SET_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"NETWORK_LIMIT_SET_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"NETWORK_REGISTRY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"OPERATOR_NETWORK_OPT_IN_SERVICE\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"OPERATOR_NETWORK_SHARES_SET_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"OPERATOR_VAULT_OPT_IN_SERVICE\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"TYPE\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"VAULT_FACTORY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"VERSION\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleAdmin\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"grantRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"hook\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"}],\"name\":\"maxNetworkLimit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"}],\"name\":\"networkLimit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hint\",\"type\":\"bytes\"}],\"name\":\"networkLimitAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint48\",\"name\":\"captureTimestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"onSlash\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"operatorNetworkShares\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hint\",\"type\":\"bytes\"}],\"name\":\"operatorNetworkSharesAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"callerConfirmation\",\"type\":\"address\"}],\"name\":\"renounceRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"hook_\",\"type\":\"address\"}],\"name\":\"setHook\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint96\",\"name\":\"identifier\",\"type\":\"uint96\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"setMaxNetworkLimit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"setNetworkLimit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"}],\"name\":\"setOperatorNetworkShares\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"stake\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hints\",\"type\":\"bytes\"}],\"name\":\"stakeAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"staticDelegateCall\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"}],\"name\":\"totalOperatorNetworkShares\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hint\",\"type\":\"bytes\"}],\"name\":\"totalOperatorNetworkSharesAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"vault\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"AccessControlBadConfirmation()\":[{\"details\":\"The caller of a function is not the expected one. NOTE: Don't confuse with {AccessControlUnauthorizedAccount}.\"}],\"AccessControlUnauthorizedAccount(address,bytes32)\":[{\"details\":\"The `account` is missing a role.\"}],\"CheckpointUnorderedInsertion()\":[{\"details\":\"A value was attempted to be inserted on a past checkpoint.\"}],\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"MathOverflowedMulDiv()\":[{\"details\":\"Muldiv operation overflow.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"ReentrancyGuardReentrantCall()\":[{\"details\":\"Unauthorized reentrant call.\"}],\"SafeCastOverflowedUintDowncast(uint8,uint256)\":[{\"details\":\"Value doesn't fit in an uint of `bits` size.\"}]},\"events\":{\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"OnSlash(bytes32,address,uint256,uint48)\":{\"params\":{\"amount\":\"amount of the collateral to be slashed\",\"captureTimestamp\":\"time point when the stake was captured\",\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"}},\"RoleAdminChanged(bytes32,bytes32,bytes32)\":{\"details\":\"Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole` `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite {RoleAdminChanged} not being emitted signaling this.\"},\"RoleGranted(bytes32,address,address)\":{\"details\":\"Emitted when `account` is granted `role`. `sender` is the account that originated the contract call, an admin role bearer except when using {AccessControl-_setupRole}.\"},\"RoleRevoked(bytes32,address,address)\":{\"details\":\"Emitted when `account` is revoked `role`. `sender` is the account that originated the contract call: - if using `revokeRole`, it is the admin role bearer - if using `renounceRole`, it is the role bearer (i.e. `account`)\"},\"SetHook(address)\":{\"params\":{\"hook\":\"address of the hook\"}},\"SetMaxNetworkLimit(bytes32,uint256)\":{\"params\":{\"amount\":\"new maximum subnetwork's limit (how much stake the subnetwork is ready to get)\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"}},\"SetNetworkLimit(bytes32,uint256)\":{\"params\":{\"amount\":\"new subnetwork's limit (how much stake the vault curator is ready to give to the subnetwork)\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"}},\"SetOperatorNetworkShares(bytes32,address,uint256)\":{\"params\":{\"operator\":\"address of the operator\",\"shares\":\"new operator's shares inside the subnetwork (what percentage, which is equal to the shares divided by the total operators' shares, of the subnetwork's stake the vault curator is ready to give to the operator)\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"}}},\"kind\":\"dev\",\"methods\":{\"VERSION()\":{\"details\":\"Must return 1 for this one.\",\"returns\":{\"_0\":\"version of the delegator\"}},\"getRoleAdmin(bytes32)\":{\"details\":\"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}.\"},\"grantRole(bytes32,address)\":{\"details\":\"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event.\"},\"hasRole(bytes32,address)\":{\"details\":\"Returns `true` if `account` has been granted `role`.\"},\"initialize(bytes)\":{\"params\":{\"data\":\"some data to use\"}},\"networkLimit(bytes32)\":{\"params\":{\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"},\"returns\":{\"_0\":\"limit of the subnetwork\"}},\"networkLimitAt(bytes32,uint48,bytes)\":{\"params\":{\"hint\":\"hint for checkpoint index\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\",\"timestamp\":\"time point to get the subnetwork limit at\"},\"returns\":{\"_0\":\"limit of the subnetwork at the given timestamp\"}},\"onSlash(bytes32,address,uint256,uint48,bytes)\":{\"details\":\"Only the vault's slasher can call this function.\",\"params\":{\"amount\":\"amount of the collateral slashed\",\"captureTimestamp\":\"time point when the stake was captured\",\"data\":\"some additional data\",\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"}},\"operatorNetworkShares(bytes32,address)\":{\"params\":{\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"},\"returns\":{\"_0\":\"shares of the operator for the subnetwork\"}},\"operatorNetworkSharesAt(bytes32,address,uint48,bytes)\":{\"params\":{\"hint\":\"hint for checkpoint index\",\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\",\"timestamp\":\"time point to get the operator's shares at\"},\"returns\":{\"_0\":\"shares of the operator for the subnetwork at the given timestamp\"}},\"renounceRole(bytes32,address)\":{\"details\":\"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `callerConfirmation`. May emit a {RoleRevoked} event.\"},\"revokeRole(bytes32,address)\":{\"details\":\"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event.\"},\"setHook(address)\":{\"details\":\"Only a HOOK_SET_ROLE holder can call this function. The hook can have arbitrary logic under certain functions, however, it doesn't affect the stake guarantees.\",\"params\":{\"hook\":\"address of the hook\"}},\"setMaxNetworkLimit(uint96,uint256)\":{\"details\":\"Only a network can call this function.\",\"params\":{\"amount\":\"new maximum subnetwork's limit\"}},\"setNetworkLimit(bytes32,uint256)\":{\"details\":\"Only a NETWORK_LIMIT_SET_ROLE holder can call this function.\",\"params\":{\"amount\":\"new limit of the subnetwork\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"}},\"setOperatorNetworkShares(bytes32,address,uint256)\":{\"details\":\"Only an OPERATOR_NETWORK_SHARES_SET_ROLE holder can call this function.\",\"params\":{\"operator\":\"address of the operator\",\"shares\":\"new shares of the operator for the subnetwork\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"}},\"stake(bytes32,address)\":{\"details\":\"Warning: this function is not safe to use for stake capturing, as it can change by the end of the block.\",\"params\":{\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"},\"returns\":{\"_0\":\"slashable stake until the end of the next epoch\"}},\"stakeAt(bytes32,address,uint48,bytes)\":{\"details\":\"Warning: it is not safe to use timestamp >= current one for the stake capturing, as it can change later.\",\"params\":{\"hints\":\"hints for the checkpoints' indexes\",\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\",\"timestamp\":\"time point to capture the stake at\"},\"returns\":{\"_0\":\"slashable stake at the given timestamp until the end of the consequent epoch\"}},\"staticDelegateCall(address,bytes)\":{\"details\":\"It allows to use this contract's storage on-chain.\",\"params\":{\"data\":\"data to make a delegatecall with\",\"target\":\"address of the contract to make a delegatecall to\"}},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"},\"totalOperatorNetworkShares(bytes32)\":{\"params\":{\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"},\"returns\":{\"_0\":\"total shares of the operators for the subnetwork\"}},\"totalOperatorNetworkSharesAt(bytes32,uint48,bytes)\":{\"params\":{\"hint\":\"hint for checkpoint index\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\",\"timestamp\":\"time point to get the total operators' shares at\"},\"returns\":{\"_0\":\"total shares of the operators for the subnetwork at the given timestamp\"}}},\"stateVariables\":{\"NETWORK_LIMIT_SET_ROLE\":{\"return\":\"identifier of the subnetwork limit setter role\",\"returns\":{\"_0\":\"identifier of the subnetwork limit setter role\"}},\"OPERATOR_NETWORK_SHARES_SET_ROLE\":{\"return\":\"identifier of the operator-subnetwork shares setter role\",\"returns\":{\"_0\":\"identifier of the operator-subnetwork shares setter role\"}}},\"version\":1},\"userdoc\":{\"events\":{\"OnSlash(bytes32,address,uint256,uint48)\":{\"notice\":\"Emitted when a slash happens.\"},\"SetHook(address)\":{\"notice\":\"Emitted when a hook is set.\"},\"SetMaxNetworkLimit(bytes32,uint256)\":{\"notice\":\"Emitted when a subnetwork's maximum limit is set.\"},\"SetNetworkLimit(bytes32,uint256)\":{\"notice\":\"Emitted when a subnetwork's limit is set.\"},\"SetOperatorNetworkShares(bytes32,address,uint256)\":{\"notice\":\"Emitted when an operator's shares inside a subnetwork are set.\"}},\"kind\":\"user\",\"methods\":{\"FACTORY()\":{\"notice\":\"Get the factory's address.\"},\"HOOK_GAS_LIMIT()\":{\"notice\":\"Get a gas limit for the hook.\"},\"HOOK_RESERVE()\":{\"notice\":\"Get a reserve gas between the gas limit check and the hook's execution.\"},\"HOOK_SET_ROLE()\":{\"notice\":\"Get a hook setter's role.\"},\"NETWORK_LIMIT_SET_ROLE()\":{\"notice\":\"Get a subnetwork limit setter's role.\"},\"NETWORK_REGISTRY()\":{\"notice\":\"Get the network registry's address.\"},\"OPERATOR_NETWORK_OPT_IN_SERVICE()\":{\"notice\":\"Get the operator-network opt-in service's address.\"},\"OPERATOR_NETWORK_SHARES_SET_ROLE()\":{\"notice\":\"Get an operator-subnetwork shares setter's role.\"},\"OPERATOR_VAULT_OPT_IN_SERVICE()\":{\"notice\":\"Get the operator-vault opt-in service's address.\"},\"TYPE()\":{\"notice\":\"Get the entity's type.\"},\"VAULT_FACTORY()\":{\"notice\":\"Get the vault factory's address.\"},\"VERSION()\":{\"notice\":\"Get a version of the delegator (different versions mean different interfaces).\"},\"hook()\":{\"notice\":\"Get the hook's address.\"},\"initialize(bytes)\":{\"notice\":\"Initialize this entity contract by using a given data.\"},\"maxNetworkLimit(bytes32)\":{\"notice\":\"Get a particular subnetwork's maximum limit (meaning the subnetwork is not ready to get more as a stake).\"},\"networkLimit(bytes32)\":{\"notice\":\"Get a subnetwork's limit (how much stake the vault curator is ready to give to the subnetwork).\"},\"networkLimitAt(bytes32,uint48,bytes)\":{\"notice\":\"Get a subnetwork's limit at a given timestamp using a hint (how much stake the vault curator is ready to give to the subnetwork).\"},\"onSlash(bytes32,address,uint256,uint48,bytes)\":{\"notice\":\"Called when a slash happens.\"},\"operatorNetworkShares(bytes32,address)\":{\"notice\":\"Get an operator's shares for a subnetwork (what percentage, which is equal to the shares divided by the total operators' shares, of the subnetwork's stake the vault curator is ready to give to the operator).\"},\"operatorNetworkSharesAt(bytes32,address,uint48,bytes)\":{\"notice\":\"Get an operator's shares for a subnetwork at a given timestamp using a hint (what percentage, which is equal to the shares divided by the total operators' shares, of the subnetwork's stake the vault curator is ready to give to the operator).\"},\"setHook(address)\":{\"notice\":\"Set a new hook.\"},\"setMaxNetworkLimit(uint96,uint256)\":{\"notice\":\"Set a maximum limit for a subnetwork (how much stake the subnetwork is ready to get). identifier identifier of the subnetwork\"},\"setNetworkLimit(bytes32,uint256)\":{\"notice\":\"Set a subnetwork's limit (how much stake the vault curator is ready to give to the subnetwork).\"},\"setOperatorNetworkShares(bytes32,address,uint256)\":{\"notice\":\"Set an operator's shares for a subnetwork (what percentage, which is equal to the shares divided by the total operators' shares, of the subnetwork's stake the vault curator is ready to give to the operator).\"},\"stake(bytes32,address)\":{\"notice\":\"Get a stake that a given subnetwork will be able to slash for a certain operator until the end of the next epoch (if no cross-slashing and no slashings by the subnetwork).\"},\"stakeAt(bytes32,address,uint48,bytes)\":{\"notice\":\"Get a stake that a given subnetwork could be able to slash for a certain operator at a given timestamp until the end of the consequent epoch using hints (if no cross-slashing and no slashings by the subnetwork).\"},\"staticDelegateCall(address,bytes)\":{\"notice\":\"Make a delegatecall from this contract to a given target contract with a particular data (always reverts with a return data).\"},\"totalOperatorNetworkShares(bytes32)\":{\"notice\":\"Get a sum of operators' shares for a subnetwork.\"},\"totalOperatorNetworkSharesAt(bytes32,uint48,bytes)\":{\"notice\":\"Get a sum of operators' shares for a subnetwork at a given timestamp using a hint.\"},\"vault()\":{\"notice\":\"Get the vault's address.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/contracts/delegator/NetworkRestakeDelegator.sol\":\"NetworkRestakeDelegator\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol\":{\"keccak256\":\"0x6662ec4e5cefca03eeadd073e9469df8d2944bb2ee8ec8f7622c2c46aab5f225\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4d8544c6f8daa4d1bc215c6a72fe0acdb748664a105b0e5efc19295667521d45\",\"dweb:/ipfs/QmdGWqdnXT8S3RgCR6aV8XHZrsybieMQLLnug1NtpSjEXN\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609\",\"dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9\",\"dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardUpgradeable.sol\":{\"keccak256\":\"0xb44e086e941292cdc7f440de51478493894ef0b1aeccb0c4047445919f667f74\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://942dad22fbdc1669f025540ba63aa3ccfad5f8458fc5d4525b31ebf272e7af45\",\"dweb:/ipfs/Qmdo4X2M82aM3AMoW2kf2jhYkSCyC4T1pHNd6obdsDFnAB\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol\":{\"keccak256\":\"0xdaba3f7c42c55b2896353f32bd27d4d5f8bae741b3b05d4c53f67abc4dc47ce8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1fa2e61141c602510bcd2cd936ed9561922ac8772a9b9c9a9db091a74e354a45\",\"dweb:/ipfs/QmcHQDDoEBwJmwUbzoVkytvJsBx3KVHYFFnDkvRGWh9Wmh\"]},\"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0xb6b36edd6a2999fd243ff226d6cbf84bd71af2432bbd0dfe19392996a1d9cb41\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1fd2f35495652e57e3f99bc6c510bc5f7dd398a176ea2e72d8ed730aebc6ca26\",\"dweb:/ipfs/QmTQV6X4gkikTib49cho5iDX3JvSQbdsoEChoDwrk3CbbH\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875\",\"dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0xe19a4d5f31d2861e7344e8e535e2feafb913d806d3e2b5fe7782741a2a7094fe\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4aed79c0fa6f0546ed02f2f683e8f77f0fd2ed7eb34d8bbf3d373c9a6d95b13c\",\"dweb:/ipfs/QmWqVz6UAVqmnWU5pqYPt1o6iDEZyPaBraAA3rKfTTSfYj\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/Checkpoints.sol\":{\"keccak256\":\"0xbdc5e074d7dd6678f67e92b1a51a20226801a407b0e1af3da367c5d1ff4519ad\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a36cca6b22fff3db16fc789ff6c60eea71d4b156065d4d0c83a0bc5e91a77a8b\",\"dweb:/ipfs/QmYN3exd5AemxjBrN8XMB1p5LbbE16uC3sjbYjwi8AjcGR\"]},\"lib/openzeppelin-contracts/contracts/utils/types/Time.sol\":{\"keccak256\":\"0xc7755af115020049e4140f224f9ee88d7e1799ffb0646f37bf0df24bf6213f58\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7f09bf94d5274334ec021f61a04659db303f31e60460e14b709c9bf187740111\",\"dweb:/ipfs/QmNvgomZYUwFAt4cZbPWAiTeSZQreGehY9BK5xyVJsUttb\"]},\"src/contracts/common/Entity.sol\":{\"keccak256\":\"0x3d61a932995b8443381f3950542d388223a2c26dd5d29a3274dea3baa7388bd7\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://7cdf5f03ca72fd263fd32ff59c8d88ddca911ae83896a287d10772c1bbe9b138\",\"dweb:/ipfs/QmbP84r5BWT1Rn9AYTntWSf3xUMTTCohTZJFhbBhDXFoHa\"]},\"src/contracts/common/StaticDelegateCallable.sol\":{\"keccak256\":\"0x350029aa8955eacaffffaeb58babc5c98e80ebc5c5db388ed17ee6465f4a9d90\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://eb392a8ee9050e0af606897df63e3404e3829e8b688b580663892f9664195764\",\"dweb:/ipfs/QmaXC8jqV8UrrAFkzXTEv2fJF56sy33HhLxAzaRZmUxuXD\"]},\"src/contracts/delegator/BaseDelegator.sol\":{\"keccak256\":\"0x7c54d491fdd4415b764a9c8defa068e56d4c0c8c9419be0053a1d377669290e8\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://9238bfbad0f6eeb0dc7727724de14380f1980b395902269703d5e2ef07e52e10\",\"dweb:/ipfs/QmPJn1V4HNXcEghYvogGuSTF24dSQUPosR5qtsXcmNqRm3\"]},\"src/contracts/delegator/NetworkRestakeDelegator.sol\":{\"keccak256\":\"0xd3a8e6522f9c6fdcc2da837c9023afd6bdff2bce45a35590320c475519e3636d\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://58b17a87f6554f08376f9ea7fedf486a4aa75801bf0ad8b23ff5a46959b6b7a3\",\"dweb:/ipfs/QmSTmNh67tYt8CmjVZb57r8N3qX5yeYdMApKPJm3qvQgQw\"]},\"src/contracts/libraries/Checkpoints.sol\":{\"keccak256\":\"0xba90097c8bfe0a975499428b5f8ac5569483c7d92ccc28c12d70de416aae040c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://12f5d93ca94cd06d3147db68993165a58e17903ed53682560de61f3085ad4609\",\"dweb:/ipfs/QmePiuAqvXprMLmFZkGZeGjvGPAvsEDHfCDv7BoQhXu9xE\"]},\"src/contracts/libraries/Subnetwork.sol\":{\"keccak256\":\"0xf5ef5506fd66082b3c2e7f3df37529f5a8efad32ac62e7c8914bd63219190bfe\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba031a54ee0d0e9a270c2b9e18437f5668cfeb659cfd5fe0677459d7fcac2a56\",\"dweb:/ipfs/QmReP3H7qQ78tAfgLnJKsNEQNCQfF1X1Get38Ffd4kzq32\"]},\"src/interfaces/common/IEntity.sol\":{\"keccak256\":\"0x8ef4b63d6da63489778ccd5f8d13ebdd527dd4b62730b2c616df5af7474d2d21\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a8d69576a9219d85c50816a18ad53a4d53cfcb27ed38b8cccc808dc2734b71b\",\"dweb:/ipfs/QmYVN3P4Q4REvBWJ97TbAcaxm3uyB2anV6NSGa6ZtSwcEv\"]},\"src/interfaces/common/IMigratableEntity.sol\":{\"keccak256\":\"0x8f5f2809f3afbe8ebfbb365dd7b57b4dd3b6f9943a6187eaf648d45895b8e3c4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ffe640537d539e7a4fde70d30d3e4c57f4ba9c2c25c450cea713aae38e8fd5c\",\"dweb:/ipfs/QmSUTGzvdcn1R1KB7tLThMRtESsfPbeXDhhhKWGtntzBds\"]},\"src/interfaces/common/IRegistry.sol\":{\"keccak256\":\"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014\",\"dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK\"]},\"src/interfaces/common/IStaticDelegateCallable.sol\":{\"keccak256\":\"0xa335d4e81b9071b7de66ef92b43ff20671d86516eb1be46fef29a3483cd3f5d5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d464b9db863c14c05547d2b23352f2e9b7b784799cf09f6bbc4906a2a74e3516\",\"dweb:/ipfs/QmUVWzFvJz7eEbDQKiFTTzwi7TEbjcs3VmwdM4kuptAKvi\"]},\"src/interfaces/delegator/IBaseDelegator.sol\":{\"keccak256\":\"0x96bb312f032e17accce3f8f80936d99468029d6b37c9ca74acdb4b026a0148ee\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2a66dcb5b7d1a6ef6a363431ea98ebd78bc4fdd3d7a134d9b542dc66e7d025c2\",\"dweb:/ipfs/QmRhTPLd2ZAyRHmJUFUcWKs9b3if49QY17LYZuRqWmghw8\"]},\"src/interfaces/delegator/IDelegatorHook.sol\":{\"keccak256\":\"0xc51aa8d7d1f6c8043ee819b7aeb86da0e993912e1442098df897e299f01f9f46\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://adddf5cb2ba282aeb576b26efb28640f865a1721cc9b6eee8b3ee0457a2c9780\",\"dweb:/ipfs/QmNYgAmnLRwWZbhTuQhZs9rx4zcme1df5mEepkrniorSoW\"]},\"src/interfaces/delegator/INetworkRestakeDelegator.sol\":{\"keccak256\":\"0xe7030fe30389a147fd710e3436ec346b4842695fd3e65a81b95375c9f1d633fc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://739c7e66d301778054f5c90bee45ec9438f68afba8a03eaaac52064c73b115ad\",\"dweb:/ipfs/QmfZ2ytKcTykAc76nxhg8ikUXV8NdBpetqb8W4YWPcox1Z\"]},\"src/interfaces/service/IOptInService.sol\":{\"keccak256\":\"0x76fb5460a6d87a5705433d4fbeff7253cd75b8bbd0c888b2088f16e86ace146a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://990322019b3d11465f7024bae77ccbf7e2fe5d6fa3c754584778f37d04fa1337\",\"dweb:/ipfs/QmaSNHzcqxTkUCG9a4nqVfLECHLdjdrwAnDi3yDC7tDL24\"]},\"src/interfaces/vault/IVault.sol\":{\"keccak256\":\"0xffee01d383cd4e1a5530c614bf4360c1ef070c288abec9da1eb531b51bc07235\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://04f0046cac285d8ec44ebbb1f79dc94fab4495767190cad8364fbc1fafaadfb9\",\"dweb:/ipfs/QmUawAunwzXfCyShWfhKeThAgKtqe51hmrxvrXvM772M2R\"]},\"src/interfaces/vault/IVaultStorage.sol\":{\"keccak256\":\"0x592626f13754194f83047135de19229c49390bd59e34659b1bb38be71d973a22\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://06a6a9dfddd05e580b32bebe2cff4f63ba26a653180676d58225dd30d9c89d3e\",\"dweb:/ipfs/QmdgzBeY6Sxo8mGtyBxtv1tM1c2kU6J6zjeRd7vuXm4DU6\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.25+commit.b61c2a91"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"networkRegistry","type":"address"},{"internalType":"address","name":"vaultFactory","type":"address"},{"internalType":"address","name":"operatorVaultOptInService","type":"address"},{"internalType":"address","name":"operatorNetworkOptInService","type":"address"},{"internalType":"address","name":"delegatorFactory","type":"address"},{"internalType":"uint64","name":"entityType","type":"uint64"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"AccessControlBadConfirmation"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bytes32","name":"neededRole","type":"bytes32"}],"type":"error","name":"AccessControlUnauthorizedAccount"},{"inputs":[],"type":"error","name":"AlreadySet"},{"inputs":[],"type":"error","name":"CheckpointUnorderedInsertion"},{"inputs":[],"type":"error","name":"DuplicateRoleHolder"},{"inputs":[],"type":"error","name":"ExceedsMaxNetworkLimit"},{"inputs":[],"type":"error","name":"InsufficientHookGas"},{"inputs":[],"type":"error","name":"InvalidInitialization"},{"inputs":[],"type":"error","name":"MathOverflowedMulDiv"},{"inputs":[],"type":"error","name":"MissingRoleHolders"},{"inputs":[],"type":"error","name":"NotInitialized"},{"inputs":[],"type":"error","name":"NotInitializing"},{"inputs":[],"type":"error","name":"NotNetwork"},{"inputs":[],"type":"error","name":"NotSlasher"},{"inputs":[],"type":"error","name":"NotVault"},{"inputs":[],"type":"error","name":"ReentrancyGuardReentrantCall"},{"inputs":[{"internalType":"uint8","name":"bits","type":"uint8"},{"internalType":"uint256","name":"value","type":"uint256"}],"type":"error","name":"SafeCastOverflowedUintDowncast"},{"inputs":[],"type":"error","name":"ZeroAddressRoleHolder"},{"inputs":[{"internalType":"uint64","name":"version","type":"uint64","indexed":false}],"type":"event","name":"Initialized","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32","indexed":true},{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false},{"internalType":"uint48","name":"captureTimestamp","type":"uint48","indexed":false}],"type":"event","name":"OnSlash","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"bytes32","name":"previousAdminRole","type":"bytes32","indexed":true},{"internalType":"bytes32","name":"newAdminRole","type":"bytes32","indexed":true}],"type":"event","name":"RoleAdminChanged","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"address","name":"sender","type":"address","indexed":true}],"type":"event","name":"RoleGranted","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"address","name":"sender","type":"address","indexed":true}],"type":"event","name":"RoleRevoked","anonymous":false},{"inputs":[{"internalType":"address","name":"hook","type":"address","indexed":true}],"type":"event","name":"SetHook","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"SetMaxNetworkLimit","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"SetNetworkLimit","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32","indexed":true},{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"uint256","name":"shares","type":"uint256","indexed":false}],"type":"event","name":"SetOperatorNetworkShares","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"DEFAULT_ADMIN_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"FACTORY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"HOOK_GAS_LIMIT","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"HOOK_RESERVE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"HOOK_SET_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"NETWORK_LIMIT_SET_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"NETWORK_REGISTRY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"OPERATOR_NETWORK_OPT_IN_SERVICE","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"OPERATOR_NETWORK_SHARES_SET_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"OPERATOR_VAULT_OPT_IN_SERVICE","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"TYPE","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"VAULT_FACTORY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"VERSION","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getRoleAdmin","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"grantRole"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"hasRole","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"hook","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"}],"stateMutability":"view","type":"function","name":"maxNetworkLimit","outputs":[{"internalType":"uint256","name":"value","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"}],"stateMutability":"view","type":"function","name":"networkLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"uint48","name":"timestamp","type":"uint48"},{"internalType":"bytes","name":"hint","type":"bytes"}],"stateMutability":"view","type":"function","name":"networkLimitAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint48","name":"captureTimestamp","type":"uint48"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"onSlash"},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"operatorNetworkShares","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint48","name":"timestamp","type":"uint48"},{"internalType":"bytes","name":"hint","type":"bytes"}],"stateMutability":"view","type":"function","name":"operatorNetworkSharesAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"callerConfirmation","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"renounceRole"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"revokeRole"},{"inputs":[{"internalType":"address","name":"hook_","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setHook"},{"inputs":[{"internalType":"uint96","name":"identifier","type":"uint96"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setMaxNetworkLimit"},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setNetworkLimit"},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint256","name":"shares","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setOperatorNetworkShares"},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"stake","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint48","name":"timestamp","type":"uint48"},{"internalType":"bytes","name":"hints","type":"bytes"}],"stateMutability":"view","type":"function","name":"stakeAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"staticDelegateCall"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"}],"stateMutability":"view","type":"function","name":"totalOperatorNetworkShares","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"uint48","name":"timestamp","type":"uint48"},{"internalType":"bytes","name":"hint","type":"bytes"}],"stateMutability":"view","type":"function","name":"totalOperatorNetworkSharesAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"vault","outputs":[{"internalType":"address","name":"","type":"address"}]}],"devdoc":{"kind":"dev","methods":{"VERSION()":{"details":"Must return 1 for this one.","returns":{"_0":"version of the delegator"}},"getRoleAdmin(bytes32)":{"details":"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}."},"grantRole(bytes32,address)":{"details":"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event."},"hasRole(bytes32,address)":{"details":"Returns `true` if `account` has been granted `role`."},"initialize(bytes)":{"params":{"data":"some data to use"}},"networkLimit(bytes32)":{"params":{"subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"},"returns":{"_0":"limit of the subnetwork"}},"networkLimitAt(bytes32,uint48,bytes)":{"params":{"hint":"hint for checkpoint index","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)","timestamp":"time point to get the subnetwork limit at"},"returns":{"_0":"limit of the subnetwork at the given timestamp"}},"onSlash(bytes32,address,uint256,uint48,bytes)":{"details":"Only the vault's slasher can call this function.","params":{"amount":"amount of the collateral slashed","captureTimestamp":"time point when the stake was captured","data":"some additional data","operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"}},"operatorNetworkShares(bytes32,address)":{"params":{"operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"},"returns":{"_0":"shares of the operator for the subnetwork"}},"operatorNetworkSharesAt(bytes32,address,uint48,bytes)":{"params":{"hint":"hint for checkpoint index","operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)","timestamp":"time point to get the operator's shares at"},"returns":{"_0":"shares of the operator for the subnetwork at the given timestamp"}},"renounceRole(bytes32,address)":{"details":"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `callerConfirmation`. May emit a {RoleRevoked} event."},"revokeRole(bytes32,address)":{"details":"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event."},"setHook(address)":{"details":"Only a HOOK_SET_ROLE holder can call this function. The hook can have arbitrary logic under certain functions, however, it doesn't affect the stake guarantees.","params":{"hook":"address of the hook"}},"setMaxNetworkLimit(uint96,uint256)":{"details":"Only a network can call this function.","params":{"amount":"new maximum subnetwork's limit"}},"setNetworkLimit(bytes32,uint256)":{"details":"Only a NETWORK_LIMIT_SET_ROLE holder can call this function.","params":{"amount":"new limit of the subnetwork","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"}},"setOperatorNetworkShares(bytes32,address,uint256)":{"details":"Only an OPERATOR_NETWORK_SHARES_SET_ROLE holder can call this function.","params":{"operator":"address of the operator","shares":"new shares of the operator for the subnetwork","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"}},"stake(bytes32,address)":{"details":"Warning: this function is not safe to use for stake capturing, as it can change by the end of the block.","params":{"operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"},"returns":{"_0":"slashable stake until the end of the next epoch"}},"stakeAt(bytes32,address,uint48,bytes)":{"details":"Warning: it is not safe to use timestamp >= current one for the stake capturing, as it can change later.","params":{"hints":"hints for the checkpoints' indexes","operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)","timestamp":"time point to capture the stake at"},"returns":{"_0":"slashable stake at the given timestamp until the end of the consequent epoch"}},"staticDelegateCall(address,bytes)":{"details":"It allows to use this contract's storage on-chain.","params":{"data":"data to make a delegatecall with","target":"address of the contract to make a delegatecall to"}},"supportsInterface(bytes4)":{"details":"See {IERC165-supportsInterface}."},"totalOperatorNetworkShares(bytes32)":{"params":{"subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"},"returns":{"_0":"total shares of the operators for the subnetwork"}},"totalOperatorNetworkSharesAt(bytes32,uint48,bytes)":{"params":{"hint":"hint for checkpoint index","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)","timestamp":"time point to get the total operators' shares at"},"returns":{"_0":"total shares of the operators for the subnetwork at the given timestamp"}}},"version":1},"userdoc":{"kind":"user","methods":{"FACTORY()":{"notice":"Get the factory's address."},"HOOK_GAS_LIMIT()":{"notice":"Get a gas limit for the hook."},"HOOK_RESERVE()":{"notice":"Get a reserve gas between the gas limit check and the hook's execution."},"HOOK_SET_ROLE()":{"notice":"Get a hook setter's role."},"NETWORK_LIMIT_SET_ROLE()":{"notice":"Get a subnetwork limit setter's role."},"NETWORK_REGISTRY()":{"notice":"Get the network registry's address."},"OPERATOR_NETWORK_OPT_IN_SERVICE()":{"notice":"Get the operator-network opt-in service's address."},"OPERATOR_NETWORK_SHARES_SET_ROLE()":{"notice":"Get an operator-subnetwork shares setter's role."},"OPERATOR_VAULT_OPT_IN_SERVICE()":{"notice":"Get the operator-vault opt-in service's address."},"TYPE()":{"notice":"Get the entity's type."},"VAULT_FACTORY()":{"notice":"Get the vault factory's address."},"VERSION()":{"notice":"Get a version of the delegator (different versions mean different interfaces)."},"hook()":{"notice":"Get the hook's address."},"initialize(bytes)":{"notice":"Initialize this entity contract by using a given data."},"maxNetworkLimit(bytes32)":{"notice":"Get a particular subnetwork's maximum limit (meaning the subnetwork is not ready to get more as a stake)."},"networkLimit(bytes32)":{"notice":"Get a subnetwork's limit (how much stake the vault curator is ready to give to the subnetwork)."},"networkLimitAt(bytes32,uint48,bytes)":{"notice":"Get a subnetwork's limit at a given timestamp using a hint (how much stake the vault curator is ready to give to the subnetwork)."},"onSlash(bytes32,address,uint256,uint48,bytes)":{"notice":"Called when a slash happens."},"operatorNetworkShares(bytes32,address)":{"notice":"Get an operator's shares for a subnetwork (what percentage, which is equal to the shares divided by the total operators' shares, of the subnetwork's stake the vault curator is ready to give to the operator)."},"operatorNetworkSharesAt(bytes32,address,uint48,bytes)":{"notice":"Get an operator's shares for a subnetwork at a given timestamp using a hint (what percentage, which is equal to the shares divided by the total operators' shares, of the subnetwork's stake the vault curator is ready to give to the operator)."},"setHook(address)":{"notice":"Set a new hook."},"setMaxNetworkLimit(uint96,uint256)":{"notice":"Set a maximum limit for a subnetwork (how much stake the subnetwork is ready to get). identifier identifier of the subnetwork"},"setNetworkLimit(bytes32,uint256)":{"notice":"Set a subnetwork's limit (how much stake the vault curator is ready to give to the subnetwork)."},"setOperatorNetworkShares(bytes32,address,uint256)":{"notice":"Set an operator's shares for a subnetwork (what percentage, which is equal to the shares divided by the total operators' shares, of the subnetwork's stake the vault curator is ready to give to the operator)."},"stake(bytes32,address)":{"notice":"Get a stake that a given subnetwork will be able to slash for a certain operator until the end of the next epoch (if no cross-slashing and no slashings by the subnetwork)."},"stakeAt(bytes32,address,uint48,bytes)":{"notice":"Get a stake that a given subnetwork could be able to slash for a certain operator at a given timestamp until the end of the consequent epoch using hints (if no cross-slashing and no slashings by the subnetwork)."},"staticDelegateCall(address,bytes)":{"notice":"Make a delegatecall from this contract to a given target contract with a particular data (always reverts with a return data)."},"totalOperatorNetworkShares(bytes32)":{"notice":"Get a sum of operators' shares for a subnetwork."},"totalOperatorNetworkSharesAt(bytes32,uint48,bytes)":{"notice":"Get a sum of operators' shares for a subnetwork at a given timestamp using a hint."},"vault()":{"notice":"Get the vault's address."}},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/contracts/delegator/NetworkRestakeDelegator.sol":"NetworkRestakeDelegator"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol":{"keccak256":"0x6662ec4e5cefca03eeadd073e9469df8d2944bb2ee8ec8f7622c2c46aab5f225","urls":["bzz-raw://4d8544c6f8daa4d1bc215c6a72fe0acdb748664a105b0e5efc19295667521d45","dweb:/ipfs/QmdGWqdnXT8S3RgCR6aV8XHZrsybieMQLLnug1NtpSjEXN"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b","urls":["bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609","dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol":{"keccak256":"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397","urls":["bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9","dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardUpgradeable.sol":{"keccak256":"0xb44e086e941292cdc7f440de51478493894ef0b1aeccb0c4047445919f667f74","urls":["bzz-raw://942dad22fbdc1669f025540ba63aa3ccfad5f8458fc5d4525b31ebf272e7af45","dweb:/ipfs/Qmdo4X2M82aM3AMoW2kf2jhYkSCyC4T1pHNd6obdsDFnAB"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol":{"keccak256":"0xdaba3f7c42c55b2896353f32bd27d4d5f8bae741b3b05d4c53f67abc4dc47ce8","urls":["bzz-raw://1fa2e61141c602510bcd2cd936ed9561922ac8772a9b9c9a9db091a74e354a45","dweb:/ipfs/QmcHQDDoEBwJmwUbzoVkytvJsBx3KVHYFFnDkvRGWh9Wmh"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol":{"keccak256":"0xb6b36edd6a2999fd243ff226d6cbf84bd71af2432bbd0dfe19392996a1d9cb41","urls":["bzz-raw://1fd2f35495652e57e3f99bc6c510bc5f7dd398a176ea2e72d8ed730aebc6ca26","dweb:/ipfs/QmTQV6X4gkikTib49cho5iDX3JvSQbdsoEChoDwrk3CbbH"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b","urls":["bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df","dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d","urls":["bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875","dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol":{"keccak256":"0xe19a4d5f31d2861e7344e8e535e2feafb913d806d3e2b5fe7782741a2a7094fe","urls":["bzz-raw://4aed79c0fa6f0546ed02f2f683e8f77f0fd2ed7eb34d8bbf3d373c9a6d95b13c","dweb:/ipfs/QmWqVz6UAVqmnWU5pqYPt1o6iDEZyPaBraAA3rKfTTSfYj"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/Checkpoints.sol":{"keccak256":"0xbdc5e074d7dd6678f67e92b1a51a20226801a407b0e1af3da367c5d1ff4519ad","urls":["bzz-raw://a36cca6b22fff3db16fc789ff6c60eea71d4b156065d4d0c83a0bc5e91a77a8b","dweb:/ipfs/QmYN3exd5AemxjBrN8XMB1p5LbbE16uC3sjbYjwi8AjcGR"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/types/Time.sol":{"keccak256":"0xc7755af115020049e4140f224f9ee88d7e1799ffb0646f37bf0df24bf6213f58","urls":["bzz-raw://7f09bf94d5274334ec021f61a04659db303f31e60460e14b709c9bf187740111","dweb:/ipfs/QmNvgomZYUwFAt4cZbPWAiTeSZQreGehY9BK5xyVJsUttb"],"license":"MIT"},"src/contracts/common/Entity.sol":{"keccak256":"0x3d61a932995b8443381f3950542d388223a2c26dd5d29a3274dea3baa7388bd7","urls":["bzz-raw://7cdf5f03ca72fd263fd32ff59c8d88ddca911ae83896a287d10772c1bbe9b138","dweb:/ipfs/QmbP84r5BWT1Rn9AYTntWSf3xUMTTCohTZJFhbBhDXFoHa"],"license":"BUSL-1.1"},"src/contracts/common/StaticDelegateCallable.sol":{"keccak256":"0x350029aa8955eacaffffaeb58babc5c98e80ebc5c5db388ed17ee6465f4a9d90","urls":["bzz-raw://eb392a8ee9050e0af606897df63e3404e3829e8b688b580663892f9664195764","dweb:/ipfs/QmaXC8jqV8UrrAFkzXTEv2fJF56sy33HhLxAzaRZmUxuXD"],"license":"BUSL-1.1"},"src/contracts/delegator/BaseDelegator.sol":{"keccak256":"0x7c54d491fdd4415b764a9c8defa068e56d4c0c8c9419be0053a1d377669290e8","urls":["bzz-raw://9238bfbad0f6eeb0dc7727724de14380f1980b395902269703d5e2ef07e52e10","dweb:/ipfs/QmPJn1V4HNXcEghYvogGuSTF24dSQUPosR5qtsXcmNqRm3"],"license":"BUSL-1.1"},"src/contracts/delegator/NetworkRestakeDelegator.sol":{"keccak256":"0xd3a8e6522f9c6fdcc2da837c9023afd6bdff2bce45a35590320c475519e3636d","urls":["bzz-raw://58b17a87f6554f08376f9ea7fedf486a4aa75801bf0ad8b23ff5a46959b6b7a3","dweb:/ipfs/QmSTmNh67tYt8CmjVZb57r8N3qX5yeYdMApKPJm3qvQgQw"],"license":"BUSL-1.1"},"src/contracts/libraries/Checkpoints.sol":{"keccak256":"0xba90097c8bfe0a975499428b5f8ac5569483c7d92ccc28c12d70de416aae040c","urls":["bzz-raw://12f5d93ca94cd06d3147db68993165a58e17903ed53682560de61f3085ad4609","dweb:/ipfs/QmePiuAqvXprMLmFZkGZeGjvGPAvsEDHfCDv7BoQhXu9xE"],"license":"MIT"},"src/contracts/libraries/Subnetwork.sol":{"keccak256":"0xf5ef5506fd66082b3c2e7f3df37529f5a8efad32ac62e7c8914bd63219190bfe","urls":["bzz-raw://ba031a54ee0d0e9a270c2b9e18437f5668cfeb659cfd5fe0677459d7fcac2a56","dweb:/ipfs/QmReP3H7qQ78tAfgLnJKsNEQNCQfF1X1Get38Ffd4kzq32"],"license":"MIT"},"src/interfaces/common/IEntity.sol":{"keccak256":"0x8ef4b63d6da63489778ccd5f8d13ebdd527dd4b62730b2c616df5af7474d2d21","urls":["bzz-raw://5a8d69576a9219d85c50816a18ad53a4d53cfcb27ed38b8cccc808dc2734b71b","dweb:/ipfs/QmYVN3P4Q4REvBWJ97TbAcaxm3uyB2anV6NSGa6ZtSwcEv"],"license":"MIT"},"src/interfaces/common/IMigratableEntity.sol":{"keccak256":"0x8f5f2809f3afbe8ebfbb365dd7b57b4dd3b6f9943a6187eaf648d45895b8e3c4","urls":["bzz-raw://0ffe640537d539e7a4fde70d30d3e4c57f4ba9c2c25c450cea713aae38e8fd5c","dweb:/ipfs/QmSUTGzvdcn1R1KB7tLThMRtESsfPbeXDhhhKWGtntzBds"],"license":"MIT"},"src/interfaces/common/IRegistry.sol":{"keccak256":"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb","urls":["bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014","dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK"],"license":"MIT"},"src/interfaces/common/IStaticDelegateCallable.sol":{"keccak256":"0xa335d4e81b9071b7de66ef92b43ff20671d86516eb1be46fef29a3483cd3f5d5","urls":["bzz-raw://d464b9db863c14c05547d2b23352f2e9b7b784799cf09f6bbc4906a2a74e3516","dweb:/ipfs/QmUVWzFvJz7eEbDQKiFTTzwi7TEbjcs3VmwdM4kuptAKvi"],"license":"MIT"},"src/interfaces/delegator/IBaseDelegator.sol":{"keccak256":"0x96bb312f032e17accce3f8f80936d99468029d6b37c9ca74acdb4b026a0148ee","urls":["bzz-raw://2a66dcb5b7d1a6ef6a363431ea98ebd78bc4fdd3d7a134d9b542dc66e7d025c2","dweb:/ipfs/QmRhTPLd2ZAyRHmJUFUcWKs9b3if49QY17LYZuRqWmghw8"],"license":"MIT"},"src/interfaces/delegator/IDelegatorHook.sol":{"keccak256":"0xc51aa8d7d1f6c8043ee819b7aeb86da0e993912e1442098df897e299f01f9f46","urls":["bzz-raw://adddf5cb2ba282aeb576b26efb28640f865a1721cc9b6eee8b3ee0457a2c9780","dweb:/ipfs/QmNYgAmnLRwWZbhTuQhZs9rx4zcme1df5mEepkrniorSoW"],"license":"MIT"},"src/interfaces/delegator/INetworkRestakeDelegator.sol":{"keccak256":"0xe7030fe30389a147fd710e3436ec346b4842695fd3e65a81b95375c9f1d633fc","urls":["bzz-raw://739c7e66d301778054f5c90bee45ec9438f68afba8a03eaaac52064c73b115ad","dweb:/ipfs/QmfZ2ytKcTykAc76nxhg8ikUXV8NdBpetqb8W4YWPcox1Z"],"license":"MIT"},"src/interfaces/service/IOptInService.sol":{"keccak256":"0x76fb5460a6d87a5705433d4fbeff7253cd75b8bbd0c888b2088f16e86ace146a","urls":["bzz-raw://990322019b3d11465f7024bae77ccbf7e2fe5d6fa3c754584778f37d04fa1337","dweb:/ipfs/QmaSNHzcqxTkUCG9a4nqVfLECHLdjdrwAnDi3yDC7tDL24"],"license":"MIT"},"src/interfaces/vault/IVault.sol":{"keccak256":"0xffee01d383cd4e1a5530c614bf4360c1ef070c288abec9da1eb531b51bc07235","urls":["bzz-raw://04f0046cac285d8ec44ebbb1f79dc94fab4495767190cad8364fbc1fafaadfb9","dweb:/ipfs/QmUawAunwzXfCyShWfhKeThAgKtqe51hmrxvrXvM772M2R"],"license":"MIT"},"src/interfaces/vault/IVaultStorage.sol":{"keccak256":"0x592626f13754194f83047135de19229c49390bd59e34659b1bb38be71d973a22","urls":["bzz-raw://06a6a9dfddd05e580b32bebe2cff4f63ba26a653180676d58225dd30d9c89d3e","dweb:/ipfs/QmdgzBeY6Sxo8mGtyBxtv1tM1c2kU6J6zjeRd7vuXm4DU6"],"license":"MIT"}},"version":1},"id":78} \ No newline at end of file diff --git a/out/OperatorNetworkSpecificDelegator.sol/OperatorNetworkSpecificDelegator.json b/out/OperatorNetworkSpecificDelegator.sol/OperatorNetworkSpecificDelegator.json index 3dd45780..38ff684b 100644 --- a/out/OperatorNetworkSpecificDelegator.sol/OperatorNetworkSpecificDelegator.json +++ b/out/OperatorNetworkSpecificDelegator.sol/OperatorNetworkSpecificDelegator.json @@ -1 +1 @@ -{"abi":[{"type":"constructor","inputs":[{"name":"operatorRegistry","type":"address","internalType":"address"},{"name":"networkRegistry","type":"address","internalType":"address"},{"name":"vaultFactory","type":"address","internalType":"address"},{"name":"operatorVaultOptInService","type":"address","internalType":"address"},{"name":"operatorNetworkOptInService","type":"address","internalType":"address"},{"name":"delegatorFactory","type":"address","internalType":"address"},{"name":"entityType","type":"uint64","internalType":"uint64"}],"stateMutability":"nonpayable"},{"type":"function","name":"DEFAULT_ADMIN_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"FACTORY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"HOOK_GAS_LIMIT","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"HOOK_RESERVE","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"HOOK_SET_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"NETWORK_REGISTRY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"OPERATOR_NETWORK_OPT_IN_SERVICE","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"OPERATOR_REGISTRY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"OPERATOR_VAULT_OPT_IN_SERVICE","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"TYPE","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"VAULT_FACTORY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"VERSION","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"pure"},{"type":"function","name":"getRoleAdmin","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"grantRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"hasRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"hook","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"initialize","inputs":[{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"maxNetworkLimit","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"value","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"maxNetworkLimitAt","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"timestamp","type":"uint48","internalType":"uint48"},{"name":"hint","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"network","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"onSlash","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"captureTimestamp","type":"uint48","internalType":"uint48"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"operator","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"renounceRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"callerConfirmation","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"revokeRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setHook","inputs":[{"name":"hook_","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setMaxNetworkLimit","inputs":[{"name":"identifier","type":"uint96","internalType":"uint96"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"stake","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"stakeAt","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"timestamp","type":"uint48","internalType":"uint48"},{"name":"hints","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"staticDelegateCall","inputs":[{"name":"target","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"vault","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"OnSlash","inputs":[{"name":"subnetwork","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"captureTimestamp","type":"uint48","indexed":false,"internalType":"uint48"}],"anonymous":false},{"type":"event","name":"RoleAdminChanged","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"previousAdminRole","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"newAdminRole","type":"bytes32","indexed":true,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"RoleGranted","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"sender","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"RoleRevoked","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"sender","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"SetHook","inputs":[{"name":"hook","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"SetMaxNetworkLimit","inputs":[{"name":"subnetwork","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"error","name":"AccessControlBadConfirmation","inputs":[]},{"type":"error","name":"AccessControlUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"neededRole","type":"bytes32","internalType":"bytes32"}]},{"type":"error","name":"AlreadySet","inputs":[]},{"type":"error","name":"CheckpointUnorderedInsertion","inputs":[]},{"type":"error","name":"InsufficientHookGas","inputs":[]},{"type":"error","name":"InvalidInitialization","inputs":[]},{"type":"error","name":"InvalidNetwork","inputs":[]},{"type":"error","name":"NotInitialized","inputs":[]},{"type":"error","name":"NotInitializing","inputs":[]},{"type":"error","name":"NotNetwork","inputs":[]},{"type":"error","name":"NotOperator","inputs":[]},{"type":"error","name":"NotSlasher","inputs":[]},{"type":"error","name":"NotVault","inputs":[]},{"type":"error","name":"ReentrancyGuardReentrantCall","inputs":[]},{"type":"error","name":"SafeCastOverflowedUintDowncast","inputs":[{"name":"bits","type":"uint8","internalType":"uint8"},{"name":"value","type":"uint256","internalType":"uint256"}]}],"bytecode":{"object":"0x610160346101c9576001600160401b0390601f6127c138819003918201601f191683019190848311848410176101cd578160e092859260409586528339810103126101c95761004d826101e1565b9061005a602084016101e1565b6100658285016101e1565b90610072606086016101e1565b9561007f608087016101e1565b9560c061008e60a083016101e1565b9101519180831683036101c9577ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a009081549060ff82891c166101b8578080831603610174575b50505060805260a05260c05260e05261010093845261012092835261014091825251916125cb93846101f68539608051846104fe015260a05184610bee015260c05184818161037d01528181610c270152612048015260e05184818161027301526119be0152518381816102b70152818161121001526113540152518281816102fb0152818161117701526113d2015251818181610a6e01526120c10152f35b6001600160401b0319909116811790915585519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a15f80806100d4565b875163f92ee8a960e01b8152600490fd5b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b51906001600160a01b03821682036101c95756fe60806040526004361015610011575f80fd5b5f3560e01c806301ffc9a714610204578063103f2907146101ff578063128e5d82146101fa5780631a80e500146101f557806323f752d5146101f0578063248a9ca3146101eb5780632dd31000146101e65780632f2ff15d146101e157806336568abe146101dc5780633dfd3873146101d7578063437224a3146101d2578063439fab91146101cd578063557cab44146101c8578063570ca735146101c35780636679191e146101be5780636739afca146101b95780637f5a7c7b146101b457806383ce0322146101af57806391d14854146101aa5780639f86fd85146101a5578063a217fddf146101a0578063bb24fe8a1461019b578063c0cd7c3e14610196578063d15b740e14610191578063d547741f1461018c578063e02f693714610187578063e49561ee14610182578063fbfa77cf1461017d578063fd4d447c14610178578063ff54740f146101735763ffa1ad741461016e575f80fd5b610f84565b610f67565b610f3d565b610f16565b610d2b565b610ccc565b610c80565b610c56565b610c12565b610bcf565b610bb5565b610afb565b610a9d565b610a59565b610a31565b610a09565b6109cf565b6109a7565b61098b565b610853565b6107c3565b6105d5565b61058a565b61053e565b6104e9565b6104b0565b61032a565b6102e6565b6102a2565b61025e565b3461025a57602036600319011261025a5760043563ffffffff60e01b811680910361025a57602090637965db0b60e01b8114908115610249575b506040519015158152f35b6301ffc9a760e01b1490505f61023e565b5f80fd5b3461025a575f36600319011261025a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461025a575f36600319011261025a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461025a575f36600319011261025a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461025a57604036600319011261025a576004356001600160601b038116810361025a576024359061035a611447565b6040516302910f8b60e31b81523360048201526020816024816001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165afa9081156104ab575f9161047c575b501561046a576001600160601b03166bffffffffffffffffffffffff193360601b161790806103e4835f52600260205260405f2090565b54146104585761043d817fc67e7929681aa1bccd63f52b3799bf5805f3009f197db6fdf584b14f7fbf608c92610422855f52600260205260405f2090565b5561042d8185611476565b6040519081529081906020820190565b0390a261045660015f8051602061255683398151915255565b005b60405163a741a04560e01b8152600490fd5b6040516323d53b9760e21b8152600490fd5b61049e915060203d6020116104a4575b6104968183610732565b810190610f9f565b5f6103ad565b503d61048c565b610fb7565b3461025a57602036600319011261025a576004355f525f805160206125368339815191526020526020600160405f200154604051908152f35b3461025a575f36600319011261025a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b6001600160a01b0381160361025a57565b3461025a57604036600319011261025a576104566024356004356105618261052d565b805f525f80516020612536833981519152602052610585600160405f2001546115b8565b611769565b3461025a57604036600319011261025a576024356105a78161052d565b336001600160a01b038216036105c3576104569060043561179f565b60405163334bd91960e11b8152600490fd5b3461025a57602036600319011261025a576004356105f28161052d565b6105fa611447565b335f9081527f9ebbcbe0d2961d3fbe56ca6f679bc753bd848d3e6bb3eaf9041c51b286881d2c60205260409020547fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c9060ff16156106b057506001546001600160a01b039182169181168214610458576001600160a01b03191681176001557f5bbb1d3ebb6a3ad2a0f17ff35e579a83af60604d1d3c2a4c83c62adecadf666d5f80a260015f8051602061255683398151915255005b6044906040519063e2517d3f60e01b82523360048301526024820152fd5b6064359065ffffffffffff8216820361025a57565b634e487b7160e01b5f52604160045260245ffd5b604081019081106001600160401b0382111761071257604052565b6106e3565b606081019081106001600160401b0382111761071257604052565b90601f801991011681019081106001600160401b0382111761071257604052565b60405190610760826106f7565b565b6001600160401b03811161071257601f01601f191660200190565b81601f8201121561025a5780359061079482610762565b926107a26040519485610732565b8284526020838301011161025a57815f926020809301838601378301015290565b3461025a57606036600319011261025a5760243565ffffffffffff8116810361025a576044356001600160401b03811161025a5760209161080b61081e92369060040161077d565b906004355f526003845260405f20611870565b604051908152f35b9181601f8401121561025a578235916001600160401b03831161025a576020838186019501011161025a57565b3461025a57602036600319011261025a576001600160401b0360043581811161025a57610884903690600401610826565b5f80516020612576833981519152549260ff8460401c1615931680159081610983575b6001149081610979575b159081610970575b5061095e575f80516020612576833981519152805467ffffffffffffffff191660011790556108ec918361093a57611989565b6108f257005b5f80516020612576833981519152805460ff60401b19169055604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a1005b5f80516020612576833981519152805460ff60401b1916600160401b179055611989565b60405163f92ee8a960e01b8152600490fd5b9050155f6108b9565b303b1591506108b1565b8491506108a7565b3461025a575f36600319011261025a576020604051614e208152f35b3461025a575f36600319011261025a576005546040516001600160a01b039091168152602090f35b3461025a575f36600319011261025a5760206040517fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c8152f35b3461025a575f36600319011261025a576004546040516001600160a01b039091168152602090f35b3461025a575f36600319011261025a576001546040516001600160a01b039091168152602090f35b3461025a575f36600319011261025a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461025a57604036600319011261025a57602060ff610aef602435610ac18161052d565b6004355f525f80516020612536833981519152845260405f209060018060a01b03165f5260205260405f2090565b54166040519015158152f35b3461025a5760408060031936011261025a57600435610b198161052d565b602435906001600160401b03821161025a575f8091610b3f610ba3943690600401610826565b908187519283928337810184815203915af43d15610bab57610b953d610b6481610762565b90610b7186519283610732565b81523d5f602083013e5b845194859315156020850152808401526060830190610fdb565b03601f198101835282610732565b805190602001fd5b610b956060610b7b565b3461025a575f36600319011261025a5760206040515f8152f35b3461025a575f36600319011261025a5760206040516001600160401b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461025a575f36600319011261025a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461025a57602036600319011261025a576004355f526002602052602060405f2054604051908152f35b3461025a57604036600319011261025a57610456602435600435610ca38261052d565b805f525f80516020612536833981519152602052610cc7600160405f2001546115b8565b61179f565b3461025a57608036600319011261025a57602435610ce98161052d565b6044359065ffffffffffff8216820361025a57606435906001600160401b03821161025a57602092610d2261081e93369060040161077d565b91600435611101565b3461025a5760a036600319011261025a57602435600435610d4b8261052d565b60443591610d576106ce565b90608435906001600160401b03821161025a57610d796004923690840161077d565b610d81611447565b5f54602090610da690610d9a906001600160a01b031681565b6001600160a01b031690565b60405163b134427160e01b815294859182905afa9283156104ab575f93610ee5575b506001600160a01b039283163303610ed3576001546001600160a01b0316838116610e48575b50506040805195865265ffffffffffff909316602086015216927f741a5de99085c0d660f3e4192217b0ffb0ea4e35a0480de48e857a4bc3ee36ed91819081015b0390a361045660015f8051602061255683398151915255565b909360405194610e7f86610e71602082019363724ab0f760e11b8552858c898d602487016112a0565b03601f198101885287610732565b62042e305a10610ec1575f610e2f938192827f741a5de99085c0d660f3e4192217b0ffb0ea4e35a0480de48e857a4bc3ee36ed9951926203d090f15093610dee565b604051638072475160e01b8152600490fd5b60405163dabc4ad960e01b8152600490fd5b610f0891935060203d602011610f0f575b610f008183610732565b81019061128b565b915f610dc8565b503d610ef6565b3461025a575f36600319011261025a575f546040516001600160a01b039091168152602090f35b3461025a57604036600319011261025a57602061081e602435610f5f8161052d565b60043561131d565b3461025a575f36600319011261025a5760206040516203d0908152f35b3461025a575f36600319011261025a57602060405160018152f35b9081602091031261025a5751801515810361025a5790565b6040513d5f823e3d90fd5b90610fd892915f52600360205260405f20611870565b90565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b6040519061100c826106f7565b60606020838281520152565b81601f8201121561025a5780519061102f82610762565b9261103d6040519485610732565b8284526020838301011161025a57815f9260208093018386015e8301015290565b9060208282031261025a5781516001600160401b039283821161025a57019060408282031261025a5760405192611094846106f7565b825181811161025a57826110a9918501611018565b8452602083015190811161025a576110c19201611018565b602082015290565b6001600160a01b0391821681529116602082015265ffffffffffff9091166040820152608060608201819052610fd892910190610fdb565b9261111190929192828486611b9c565b92909361111c610fff565b9380518061126f575b505084159384156111d9575b8415611148575b505050506111435790565b505f90565b602080949550611173910151604051958694859463530e1d4360e01b865260601c90600486016110c9565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa9081156104ab575f916111ba575b50155f808080611138565b6111d3915060203d6020116104a4576104968183610732565b5f6111af565b5f549094506001600160a01b031660208486519261120c604051948593849363530e1d4360e01b855289600486016110c9565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa9081156104ab575f91611250575b501593611131565b611269915060203d6020116104a4576104968183610732565b5f611248565b61128392955060208091830101910161105e565b925f80611125565b9081602091031261025a5751610fd88161052d565b919360a093610fd8969565ffffffffffff938552600180871b0316602085015260408401521660608201528160808201520190610fdb565b634e487b7160e01b5f52601160045260245ffd5b81156112f6570490565b634e487b7160e01b5f52601260045260245ffd5b906001820180921161131857565b6112d8565b5f546040516308834cb560e21b8082526001600160a01b0385811660048401529283166024830152929392602092909183816044817f000000000000000000000000000000000000000000000000000000000000000086165afa9081156104ab575f9161142a575b50159182156113a6575b505090506113a057610fd891611cbb565b50505f90565b6040519081526001600160a01b0385166004820152606086901c602482015291508290829060449082907f0000000000000000000000000000000000000000000000000000000000000000165afa9182156104ab575f9261140d575b505015805f8061138f565b6114239250803d106104a4576104968183610732565b5f80611402565b6114419150843d86116104a4576104968183610732565b5f611385565b5f8051602061255683398151915260028154146114645760029055565b604051633ee5aeb560e01b8152600490fd5b6004546001600160a01b0316606082901c036115a6575f52600360205260405f209065ffffffffffff9182421161158757824216926001820191825415611579575b6114c1816121ac565b509590845493835480155f1461155a57505f975b6001600160d01b0398808a1615611554576114f09088611d7d565b50505b82611548575b50501561153257505061076093509061151461151a9261184d565b90611d7d565b90919082549060031b91821b915f19901b1916179055565b61076095611541931691612284565b5050611dd3565b16821490505f806114f9565b506114f3565b5f1990808281011161131857855f5260205f2001015460301c976114d5565b61158283611da6565b6114b8565b6040516306dfcc6560e41b815260306004820152426024820152604490fd5b6040516386eab41b60e01b8152600490fd5b5f8181525f805160206125368339815191526020908152604080832033845290915290205460ff16156106b05750565b6001600160a01b0381165f9081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d60205260409020545f805160206125368339815191529060ff166113a0575f808052602091825260408082206001600160a01b038516835290925220805460ff1916600117905533906001600160a01b03165f7f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d8180a4600190565b6001600160a01b0381165f9081527f9ebbcbe0d2961d3fbe56ca6f679bc753bd848d3e6bb3eaf9041c51b286881d2c602052604090207fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c905f805160206125368339815191529060ff905b5416611762575f828152602091825260408082206001600160a01b038616835290925220805460ff1916600117905533916001600160a01b0316907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d5f80a4600190565b5050505f90565b5f8181525f80516020612536833981519152602081815260408084206001600160a01b038716855290915290912060ff906116fe565b5f8181525f80516020612536833981519152602081815260408084206001600160a01b03871685529091529091205460ff1615611762575f828152602091825260408082206001600160a01b038616835290925220805460ff1916905533916001600160a01b0316907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b5f80a4600190565b9081602091031261025a575163ffffffff8116810361025a5790565b5f1981019190821161131857565b90600163ffffffff8093160191821161131857565b91805115611949578060208061188b93518301019101611831565b916118968382611ed0565b926118a7845165ffffffffffff1690565b9065ffffffffffff808516921682811461193d57821191826118dd575b50506118d457610fd89250611df6565b50506020015190565b9091506118ea835461184d565b63ffffffff831614918215611903575b50505f806118c4565b61193591925061191e61191861192a9261185b565b85611ed0565b5165ffffffffffff1690565b65ffffffffffff1690565b115f806118fa565b50505050506020015190565b50610fd891611df6565b91909160408184031261025a57803561196b8161052d565b9260208201356001600160401b03811161025a57610fd8920161077d565b61199591810190611953565b6040516302910f8b60e31b81526001600160a01b039283166004820181905291906020816024817f000000000000000000000000000000000000000000000000000000000000000088165afa9081156104ab575f91611aa8575b5015611a9657611a2a604091611a25611a7094611a0a611f38565b60018060a01b03166001600160601b0360a01b5f5416175f55565b611ffb565b6020810151600180546001600160a01b0319166001600160a01b0390921691909117905580516001600160a01b0316848116611a86575b5001516001600160a01b031690565b908116611a7a5750565b611a8390611693565b50565b611a8f906115e8565b505f611a61565b6040516362df054560e01b8152600490fd5b611ac1915060203d6020116104a4576104968183610732565b5f6119ef565b60405190611ad482610717565b60606040838281528260208201520152565b9060208282031261025a5781516001600160401b039283821161025a57019060608282031261025a5760405192611b1c84610717565b825181811161025a5782611b31918501611018565b8452602083015181811161025a5782611b4b918501611018565b6020850152604083015190811161025a57611b669201611018565b604082015290565b9081602091031261025a575190565b60409065ffffffffffff610fd894931681528160208201520190610fdb565b90939293611ba8611ac7565b94805180611c9f575b5050600454606083901c6001600160a01b03918216148015929190611c84575b5050611c7c575f54611c17929190602090611bf690610d9a906001600160a01b031681565b8187015190604051808097819463810da75d60e01b83528860048401611b7d565b03915afa9081156104ab57611c44935f92611c49575b50611c3e9192604087015191610fc2565b90612176565b915190565b611c3e9250611c6f9060203d602011611c75575b611c678183610732565b810190611b6e565b91611c2d565b503d611c5d565b505090515f91565b60055481166001600160a01b03169116141590505f80611bd1565b611cb3929650602080918301019101611ae6565b935f80611bb1565b6004549091606083901c6001600160a01b039283161480159290611d62575b5050611143575f5460049190602090611cfd90610d9a906001600160a01b031681565b60405163bd49c35f60e01b815293849182905afa9081156104ab57610fd8925f92611d3d575b50611d36905f52600260205260405f2090565b5490612176565b611d36919250611d5b9060203d602011611c7557611c678183610732565b9190611d23565b60055481166001600160a01b03169116141590505f80611cda565b8054821015611d92575f5260205f2001905f90565b634e487b7160e01b5f52603260045260245ffd5b8054600160401b81101561071257611dc391600182018155611d7d565b8154905f199060031b1b19169055565b90815491600160401b831015610712578261151a91600161076095018155611d7d565b908154905f829160058411611e6a575b611e119350846124d6565b80611e4357505f905b6001600160d01b038216156113a057610fd8916001611e399201611d7d565b90549060031b1c90565b611e5d611e52611e649261184d565b835f5260205f200190565b5460301c90565b90611e1a565b9192611e75816123a3565b810390811161131857611e1193855f5265ffffffffffff808360205f20015416908516105f14611ea6575091611e06565b929150611eb29061130a565b90611e06565b60405190611ec5826106f7565b5f6020838281520152565b90611ef9611ef3611f1a92611ee3611eb8565b50611eec611eb8565b5084611d7d565b50612188565b91600165ffffffffffff845116936020828060d01b03910151169101611d7d565b90549060405192611f2a846106f7565b835260031b1c602082015290565b611f406121fb565b611f486121fb565b60015f8051602061255683398151915255565b60405190611f6882610717565b5f6040838281528260208201520152565b8091039060a0821261025a57606060405192611f9484610717565b1261025a57608090604051611fa881610717565b8151611fb38161052d565b81526020820151611fc38161052d565b60208201526040820151611fd68161052d565b604082015283526060810151611feb8161052d565b60208401520151611b668161052d565b612003611f5b565b5061201981519160208080948301019101611f79565b80820180516040516302910f8b60e31b8082526001600160a01b039283166004830152939491939082816024817f000000000000000000000000000000000000000000000000000000000000000089165afa9081156104ab575f91612159575b501561046a57816120bd916040870195612099875160018060a01b031690565b6040519283526001600160a01b031660048301529092839190829081906024820190565b03917f0000000000000000000000000000000000000000000000000000000000000000165afa9182156104ab575f9261213c575b50501561212a5751600480546001600160a01b039283166001600160a01b03199182161790915591516005805490931691161790555190565b604051631f0853c160e21b8152600490fd5b6121529250803d106104a4576104968183610732565b5f806120f1565b6121709150833d85116104a4576104968183610732565b5f612079565b9080821015612183575090565b905090565b90604051612195816106f7565b915465ffffffffffff8116835260301c6020830152565b8054806121bd5750505f905f905f90565b5f19908082810111611318576121da925f5260205f200101612188565b9065ffffffffffff82511691602060018060d01b0391015116906001929190565b60ff5f805160206125768339815191525460401c161561221757565b604051631afcd79f60e31b8152600490fd5b8054600160401b8110156107125761224691600182018155611d7d565b61227157815160209092015160301b65ffffffffffff191665ffffffffffff92909216919091179055565b634e487b7160e01b5f525f60045260245ffd5b80549293929190821561237a576122a56122a0611e528561184d565b612188565b906122b6825165ffffffffffff1690565b65ffffffffffff848116911681106123685761232c9460209488926122e461192a875165ffffffffffff1690565b03612330575061231e926122fa6123059261184d565b905f5260205f200190565b9065ffffffffffff82549181199060301b169116179055565b01516001600160d01b031690565b9190565b91505061236391612350612342610753565b65ffffffffffff9093168352565b6001600160d01b03881682860152612229565b61231e565b604051632520601d60e01b8152600490fd5b61239e925061238a612342610753565b6001600160d01b0385166020830152612229565b5f9190565b80156111435780611c3e61246e61246461245a61245061244661243c6124326001610fd89a5f908b60801c806124ca575b508060401c806124bd575b508060201c806124b0575b508060101c806124a3575b508060081c80612496575b508060041c80612489575b508060021c8061247c575b50821c612475575b811c1b61242b818b6112ec565b0160011c90565b61242b818a6112ec565b61242b81896112ec565b61242b81886112ec565b61242b81876112ec565b61242b81866112ec565b61242b81856112ec565b80926112ec565b810161241e565b600291509101905f612416565b600491509101905f61240b565b600891509101905f612400565b601091509101905f6123f5565b602091509101905f6123ea565b604091509101905f6123df565b9150506080905f6123d4565b91905b8382106124e65750505090565b9091928083169080841860011c820180921161131857845f5265ffffffffffff808360205f20015416908416105f146125235750925b91906124d9565b93925061252f9061130a565b9161251c56fe02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268009b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a264697066735822122064d4f8eb5326c677a800a0d904350a2a63febf437fecf588a849d07e0ee0fe1f64736f6c63430008190033","sourceMap":"681:3264:84:-:0;;;;-1:-1:-1;;;;;681:3264:84;;;;;;;;;;-1:-1:-1;;681:3264:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;8837:64:26;681:3264:84;;;;;;;;;7896:76:26;;681:3264:84;;;;7985:34:26;7981:146;;-1:-1:-1;525:17:74;;;681:3264:84;525:17:74;681:3264:84;552:12:74;681:3264:84;2360:34:81;681:3264:84;2404:28:81;2442:57;;;;2509:61;;;;1796:36:84;;;;681:3264;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7981:146:26;-1:-1:-1;;;;;;681:3264:84;;;;;;;;;;;;;8087:29:26;;681:3264:84;;8087:29:26;7981:146;;;;;7896:76;681:3264:84;;-1:-1:-1;;;7938:23:26;;;;;681:3264:84;-1:-1:-1;681:3264:84;;;;;;-1:-1:-1;681:3264:84;;;;;-1:-1:-1;681:3264:84;;;;-1:-1:-1;;;;;681:3264:84;;;;;;:::o","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361015610011575f80fd5b5f3560e01c806301ffc9a714610204578063103f2907146101ff578063128e5d82146101fa5780631a80e500146101f557806323f752d5146101f0578063248a9ca3146101eb5780632dd31000146101e65780632f2ff15d146101e157806336568abe146101dc5780633dfd3873146101d7578063437224a3146101d2578063439fab91146101cd578063557cab44146101c8578063570ca735146101c35780636679191e146101be5780636739afca146101b95780637f5a7c7b146101b457806383ce0322146101af57806391d14854146101aa5780639f86fd85146101a5578063a217fddf146101a0578063bb24fe8a1461019b578063c0cd7c3e14610196578063d15b740e14610191578063d547741f1461018c578063e02f693714610187578063e49561ee14610182578063fbfa77cf1461017d578063fd4d447c14610178578063ff54740f146101735763ffa1ad741461016e575f80fd5b610f84565b610f67565b610f3d565b610f16565b610d2b565b610ccc565b610c80565b610c56565b610c12565b610bcf565b610bb5565b610afb565b610a9d565b610a59565b610a31565b610a09565b6109cf565b6109a7565b61098b565b610853565b6107c3565b6105d5565b61058a565b61053e565b6104e9565b6104b0565b61032a565b6102e6565b6102a2565b61025e565b3461025a57602036600319011261025a5760043563ffffffff60e01b811680910361025a57602090637965db0b60e01b8114908115610249575b506040519015158152f35b6301ffc9a760e01b1490505f61023e565b5f80fd5b3461025a575f36600319011261025a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461025a575f36600319011261025a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461025a575f36600319011261025a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461025a57604036600319011261025a576004356001600160601b038116810361025a576024359061035a611447565b6040516302910f8b60e31b81523360048201526020816024816001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165afa9081156104ab575f9161047c575b501561046a576001600160601b03166bffffffffffffffffffffffff193360601b161790806103e4835f52600260205260405f2090565b54146104585761043d817fc67e7929681aa1bccd63f52b3799bf5805f3009f197db6fdf584b14f7fbf608c92610422855f52600260205260405f2090565b5561042d8185611476565b6040519081529081906020820190565b0390a261045660015f8051602061255683398151915255565b005b60405163a741a04560e01b8152600490fd5b6040516323d53b9760e21b8152600490fd5b61049e915060203d6020116104a4575b6104968183610732565b810190610f9f565b5f6103ad565b503d61048c565b610fb7565b3461025a57602036600319011261025a576004355f525f805160206125368339815191526020526020600160405f200154604051908152f35b3461025a575f36600319011261025a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b6001600160a01b0381160361025a57565b3461025a57604036600319011261025a576104566024356004356105618261052d565b805f525f80516020612536833981519152602052610585600160405f2001546115b8565b611769565b3461025a57604036600319011261025a576024356105a78161052d565b336001600160a01b038216036105c3576104569060043561179f565b60405163334bd91960e11b8152600490fd5b3461025a57602036600319011261025a576004356105f28161052d565b6105fa611447565b335f9081527f9ebbcbe0d2961d3fbe56ca6f679bc753bd848d3e6bb3eaf9041c51b286881d2c60205260409020547fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c9060ff16156106b057506001546001600160a01b039182169181168214610458576001600160a01b03191681176001557f5bbb1d3ebb6a3ad2a0f17ff35e579a83af60604d1d3c2a4c83c62adecadf666d5f80a260015f8051602061255683398151915255005b6044906040519063e2517d3f60e01b82523360048301526024820152fd5b6064359065ffffffffffff8216820361025a57565b634e487b7160e01b5f52604160045260245ffd5b604081019081106001600160401b0382111761071257604052565b6106e3565b606081019081106001600160401b0382111761071257604052565b90601f801991011681019081106001600160401b0382111761071257604052565b60405190610760826106f7565b565b6001600160401b03811161071257601f01601f191660200190565b81601f8201121561025a5780359061079482610762565b926107a26040519485610732565b8284526020838301011161025a57815f926020809301838601378301015290565b3461025a57606036600319011261025a5760243565ffffffffffff8116810361025a576044356001600160401b03811161025a5760209161080b61081e92369060040161077d565b906004355f526003845260405f20611870565b604051908152f35b9181601f8401121561025a578235916001600160401b03831161025a576020838186019501011161025a57565b3461025a57602036600319011261025a576001600160401b0360043581811161025a57610884903690600401610826565b5f80516020612576833981519152549260ff8460401c1615931680159081610983575b6001149081610979575b159081610970575b5061095e575f80516020612576833981519152805467ffffffffffffffff191660011790556108ec918361093a57611989565b6108f257005b5f80516020612576833981519152805460ff60401b19169055604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a1005b5f80516020612576833981519152805460ff60401b1916600160401b179055611989565b60405163f92ee8a960e01b8152600490fd5b9050155f6108b9565b303b1591506108b1565b8491506108a7565b3461025a575f36600319011261025a576020604051614e208152f35b3461025a575f36600319011261025a576005546040516001600160a01b039091168152602090f35b3461025a575f36600319011261025a5760206040517fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c8152f35b3461025a575f36600319011261025a576004546040516001600160a01b039091168152602090f35b3461025a575f36600319011261025a576001546040516001600160a01b039091168152602090f35b3461025a575f36600319011261025a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461025a57604036600319011261025a57602060ff610aef602435610ac18161052d565b6004355f525f80516020612536833981519152845260405f209060018060a01b03165f5260205260405f2090565b54166040519015158152f35b3461025a5760408060031936011261025a57600435610b198161052d565b602435906001600160401b03821161025a575f8091610b3f610ba3943690600401610826565b908187519283928337810184815203915af43d15610bab57610b953d610b6481610762565b90610b7186519283610732565b81523d5f602083013e5b845194859315156020850152808401526060830190610fdb565b03601f198101835282610732565b805190602001fd5b610b956060610b7b565b3461025a575f36600319011261025a5760206040515f8152f35b3461025a575f36600319011261025a5760206040516001600160401b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461025a575f36600319011261025a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461025a57602036600319011261025a576004355f526002602052602060405f2054604051908152f35b3461025a57604036600319011261025a57610456602435600435610ca38261052d565b805f525f80516020612536833981519152602052610cc7600160405f2001546115b8565b61179f565b3461025a57608036600319011261025a57602435610ce98161052d565b6044359065ffffffffffff8216820361025a57606435906001600160401b03821161025a57602092610d2261081e93369060040161077d565b91600435611101565b3461025a5760a036600319011261025a57602435600435610d4b8261052d565b60443591610d576106ce565b90608435906001600160401b03821161025a57610d796004923690840161077d565b610d81611447565b5f54602090610da690610d9a906001600160a01b031681565b6001600160a01b031690565b60405163b134427160e01b815294859182905afa9283156104ab575f93610ee5575b506001600160a01b039283163303610ed3576001546001600160a01b0316838116610e48575b50506040805195865265ffffffffffff909316602086015216927f741a5de99085c0d660f3e4192217b0ffb0ea4e35a0480de48e857a4bc3ee36ed91819081015b0390a361045660015f8051602061255683398151915255565b909360405194610e7f86610e71602082019363724ab0f760e11b8552858c898d602487016112a0565b03601f198101885287610732565b62042e305a10610ec1575f610e2f938192827f741a5de99085c0d660f3e4192217b0ffb0ea4e35a0480de48e857a4bc3ee36ed9951926203d090f15093610dee565b604051638072475160e01b8152600490fd5b60405163dabc4ad960e01b8152600490fd5b610f0891935060203d602011610f0f575b610f008183610732565b81019061128b565b915f610dc8565b503d610ef6565b3461025a575f36600319011261025a575f546040516001600160a01b039091168152602090f35b3461025a57604036600319011261025a57602061081e602435610f5f8161052d565b60043561131d565b3461025a575f36600319011261025a5760206040516203d0908152f35b3461025a575f36600319011261025a57602060405160018152f35b9081602091031261025a5751801515810361025a5790565b6040513d5f823e3d90fd5b90610fd892915f52600360205260405f20611870565b90565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b6040519061100c826106f7565b60606020838281520152565b81601f8201121561025a5780519061102f82610762565b9261103d6040519485610732565b8284526020838301011161025a57815f9260208093018386015e8301015290565b9060208282031261025a5781516001600160401b039283821161025a57019060408282031261025a5760405192611094846106f7565b825181811161025a57826110a9918501611018565b8452602083015190811161025a576110c19201611018565b602082015290565b6001600160a01b0391821681529116602082015265ffffffffffff9091166040820152608060608201819052610fd892910190610fdb565b9261111190929192828486611b9c565b92909361111c610fff565b9380518061126f575b505084159384156111d9575b8415611148575b505050506111435790565b505f90565b602080949550611173910151604051958694859463530e1d4360e01b865260601c90600486016110c9565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa9081156104ab575f916111ba575b50155f808080611138565b6111d3915060203d6020116104a4576104968183610732565b5f6111af565b5f549094506001600160a01b031660208486519261120c604051948593849363530e1d4360e01b855289600486016110c9565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa9081156104ab575f91611250575b501593611131565b611269915060203d6020116104a4576104968183610732565b5f611248565b61128392955060208091830101910161105e565b925f80611125565b9081602091031261025a5751610fd88161052d565b919360a093610fd8969565ffffffffffff938552600180871b0316602085015260408401521660608201528160808201520190610fdb565b634e487b7160e01b5f52601160045260245ffd5b81156112f6570490565b634e487b7160e01b5f52601260045260245ffd5b906001820180921161131857565b6112d8565b5f546040516308834cb560e21b8082526001600160a01b0385811660048401529283166024830152929392602092909183816044817f000000000000000000000000000000000000000000000000000000000000000086165afa9081156104ab575f9161142a575b50159182156113a6575b505090506113a057610fd891611cbb565b50505f90565b6040519081526001600160a01b0385166004820152606086901c602482015291508290829060449082907f0000000000000000000000000000000000000000000000000000000000000000165afa9182156104ab575f9261140d575b505015805f8061138f565b6114239250803d106104a4576104968183610732565b5f80611402565b6114419150843d86116104a4576104968183610732565b5f611385565b5f8051602061255683398151915260028154146114645760029055565b604051633ee5aeb560e01b8152600490fd5b6004546001600160a01b0316606082901c036115a6575f52600360205260405f209065ffffffffffff9182421161158757824216926001820191825415611579575b6114c1816121ac565b509590845493835480155f1461155a57505f975b6001600160d01b0398808a1615611554576114f09088611d7d565b50505b82611548575b50501561153257505061076093509061151461151a9261184d565b90611d7d565b90919082549060031b91821b915f19901b1916179055565b61076095611541931691612284565b5050611dd3565b16821490505f806114f9565b506114f3565b5f1990808281011161131857855f5260205f2001015460301c976114d5565b61158283611da6565b6114b8565b6040516306dfcc6560e41b815260306004820152426024820152604490fd5b6040516386eab41b60e01b8152600490fd5b5f8181525f805160206125368339815191526020908152604080832033845290915290205460ff16156106b05750565b6001600160a01b0381165f9081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d60205260409020545f805160206125368339815191529060ff166113a0575f808052602091825260408082206001600160a01b038516835290925220805460ff1916600117905533906001600160a01b03165f7f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d8180a4600190565b6001600160a01b0381165f9081527f9ebbcbe0d2961d3fbe56ca6f679bc753bd848d3e6bb3eaf9041c51b286881d2c602052604090207fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c905f805160206125368339815191529060ff905b5416611762575f828152602091825260408082206001600160a01b038616835290925220805460ff1916600117905533916001600160a01b0316907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d5f80a4600190565b5050505f90565b5f8181525f80516020612536833981519152602081815260408084206001600160a01b038716855290915290912060ff906116fe565b5f8181525f80516020612536833981519152602081815260408084206001600160a01b03871685529091529091205460ff1615611762575f828152602091825260408082206001600160a01b038616835290925220805460ff1916905533916001600160a01b0316907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b5f80a4600190565b9081602091031261025a575163ffffffff8116810361025a5790565b5f1981019190821161131857565b90600163ffffffff8093160191821161131857565b91805115611949578060208061188b93518301019101611831565b916118968382611ed0565b926118a7845165ffffffffffff1690565b9065ffffffffffff808516921682811461193d57821191826118dd575b50506118d457610fd89250611df6565b50506020015190565b9091506118ea835461184d565b63ffffffff831614918215611903575b50505f806118c4565b61193591925061191e61191861192a9261185b565b85611ed0565b5165ffffffffffff1690565b65ffffffffffff1690565b115f806118fa565b50505050506020015190565b50610fd891611df6565b91909160408184031261025a57803561196b8161052d565b9260208201356001600160401b03811161025a57610fd8920161077d565b61199591810190611953565b6040516302910f8b60e31b81526001600160a01b039283166004820181905291906020816024817f000000000000000000000000000000000000000000000000000000000000000088165afa9081156104ab575f91611aa8575b5015611a9657611a2a604091611a25611a7094611a0a611f38565b60018060a01b03166001600160601b0360a01b5f5416175f55565b611ffb565b6020810151600180546001600160a01b0319166001600160a01b0390921691909117905580516001600160a01b0316848116611a86575b5001516001600160a01b031690565b908116611a7a5750565b611a8390611693565b50565b611a8f906115e8565b505f611a61565b6040516362df054560e01b8152600490fd5b611ac1915060203d6020116104a4576104968183610732565b5f6119ef565b60405190611ad482610717565b60606040838281528260208201520152565b9060208282031261025a5781516001600160401b039283821161025a57019060608282031261025a5760405192611b1c84610717565b825181811161025a5782611b31918501611018565b8452602083015181811161025a5782611b4b918501611018565b6020850152604083015190811161025a57611b669201611018565b604082015290565b9081602091031261025a575190565b60409065ffffffffffff610fd894931681528160208201520190610fdb565b90939293611ba8611ac7565b94805180611c9f575b5050600454606083901c6001600160a01b03918216148015929190611c84575b5050611c7c575f54611c17929190602090611bf690610d9a906001600160a01b031681565b8187015190604051808097819463810da75d60e01b83528860048401611b7d565b03915afa9081156104ab57611c44935f92611c49575b50611c3e9192604087015191610fc2565b90612176565b915190565b611c3e9250611c6f9060203d602011611c75575b611c678183610732565b810190611b6e565b91611c2d565b503d611c5d565b505090515f91565b60055481166001600160a01b03169116141590505f80611bd1565b611cb3929650602080918301019101611ae6565b935f80611bb1565b6004549091606083901c6001600160a01b039283161480159290611d62575b5050611143575f5460049190602090611cfd90610d9a906001600160a01b031681565b60405163bd49c35f60e01b815293849182905afa9081156104ab57610fd8925f92611d3d575b50611d36905f52600260205260405f2090565b5490612176565b611d36919250611d5b9060203d602011611c7557611c678183610732565b9190611d23565b60055481166001600160a01b03169116141590505f80611cda565b8054821015611d92575f5260205f2001905f90565b634e487b7160e01b5f52603260045260245ffd5b8054600160401b81101561071257611dc391600182018155611d7d565b8154905f199060031b1b19169055565b90815491600160401b831015610712578261151a91600161076095018155611d7d565b908154905f829160058411611e6a575b611e119350846124d6565b80611e4357505f905b6001600160d01b038216156113a057610fd8916001611e399201611d7d565b90549060031b1c90565b611e5d611e52611e649261184d565b835f5260205f200190565b5460301c90565b90611e1a565b9192611e75816123a3565b810390811161131857611e1193855f5265ffffffffffff808360205f20015416908516105f14611ea6575091611e06565b929150611eb29061130a565b90611e06565b60405190611ec5826106f7565b5f6020838281520152565b90611ef9611ef3611f1a92611ee3611eb8565b50611eec611eb8565b5084611d7d565b50612188565b91600165ffffffffffff845116936020828060d01b03910151169101611d7d565b90549060405192611f2a846106f7565b835260031b1c602082015290565b611f406121fb565b611f486121fb565b60015f8051602061255683398151915255565b60405190611f6882610717565b5f6040838281528260208201520152565b8091039060a0821261025a57606060405192611f9484610717565b1261025a57608090604051611fa881610717565b8151611fb38161052d565b81526020820151611fc38161052d565b60208201526040820151611fd68161052d565b604082015283526060810151611feb8161052d565b60208401520151611b668161052d565b612003611f5b565b5061201981519160208080948301019101611f79565b80820180516040516302910f8b60e31b8082526001600160a01b039283166004830152939491939082816024817f000000000000000000000000000000000000000000000000000000000000000089165afa9081156104ab575f91612159575b501561046a57816120bd916040870195612099875160018060a01b031690565b6040519283526001600160a01b031660048301529092839190829081906024820190565b03917f0000000000000000000000000000000000000000000000000000000000000000165afa9182156104ab575f9261213c575b50501561212a5751600480546001600160a01b039283166001600160a01b03199182161790915591516005805490931691161790555190565b604051631f0853c160e21b8152600490fd5b6121529250803d106104a4576104968183610732565b5f806120f1565b6121709150833d85116104a4576104968183610732565b5f612079565b9080821015612183575090565b905090565b90604051612195816106f7565b915465ffffffffffff8116835260301c6020830152565b8054806121bd5750505f905f905f90565b5f19908082810111611318576121da925f5260205f200101612188565b9065ffffffffffff82511691602060018060d01b0391015116906001929190565b60ff5f805160206125768339815191525460401c161561221757565b604051631afcd79f60e31b8152600490fd5b8054600160401b8110156107125761224691600182018155611d7d565b61227157815160209092015160301b65ffffffffffff191665ffffffffffff92909216919091179055565b634e487b7160e01b5f525f60045260245ffd5b80549293929190821561237a576122a56122a0611e528561184d565b612188565b906122b6825165ffffffffffff1690565b65ffffffffffff848116911681106123685761232c9460209488926122e461192a875165ffffffffffff1690565b03612330575061231e926122fa6123059261184d565b905f5260205f200190565b9065ffffffffffff82549181199060301b169116179055565b01516001600160d01b031690565b9190565b91505061236391612350612342610753565b65ffffffffffff9093168352565b6001600160d01b03881682860152612229565b61231e565b604051632520601d60e01b8152600490fd5b61239e925061238a612342610753565b6001600160d01b0385166020830152612229565b5f9190565b80156111435780611c3e61246e61246461245a61245061244661243c6124326001610fd89a5f908b60801c806124ca575b508060401c806124bd575b508060201c806124b0575b508060101c806124a3575b508060081c80612496575b508060041c80612489575b508060021c8061247c575b50821c612475575b811c1b61242b818b6112ec565b0160011c90565b61242b818a6112ec565b61242b81896112ec565b61242b81886112ec565b61242b81876112ec565b61242b81866112ec565b61242b81856112ec565b80926112ec565b810161241e565b600291509101905f612416565b600491509101905f61240b565b600891509101905f612400565b601091509101905f6123f5565b602091509101905f6123ea565b604091509101905f6123df565b9150506080905f6123d4565b91905b8382106124e65750505090565b9091928083169080841860011c820180921161131857845f5265ffffffffffff808360205f20015416908416105f146125235750925b91906124d9565b93925061252f9061130a565b9161251c56fe02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268009b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a264697066735822122064d4f8eb5326c677a800a0d904350a2a63febf437fecf588a849d07e0ee0fe1f64736f6c63430008190033","sourceMap":"681:3264:84:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;;;;;-1:-1:-1;;681:3264:84;;;;;;;;;;;;;;;;;;-1:-1:-1;;;3551:47:24;;;:87;;;;681:3264:84;;;;;;;;;;3551:87:24;-1:-1:-1;;;1133:40:30;;-1:-1:-1;3551:87:24;;;681:3264:84;-1:-1:-1;681:3264:84;;;;;;;;-1:-1:-1;;681:3264:84;;;;;;1537:38:81;-1:-1:-1;;;;;681:3264:84;;;;;;;;;;;;-1:-1:-1;;681:3264:84;;;;;;1632:54:81;-1:-1:-1;;;;;681:3264:84;;;;;;;;;;;;-1:-1:-1;;681:3264:84;;;;;;1743:56:81;-1:-1:-1;;;;;681:3264:84;;;;;;;;;;;;-1:-1:-1;;681:3264:84;;;;;;-1:-1:-1;;;;;681:3264:84;;;;;;;;3217:103:29;;;:::i;:::-;681:3264:84;;-1:-1:-1;;;4285:48:81;;4322:10;681:3264:84;4285:48:81;;681:3264:84;;;;;-1:-1:-1;;;;;4295:16:81;681:3264:84;4285:48:81;;;;;;;-1:-1:-1;4285:48:81;;;681:3264:84;4284:49:81;;4280:99;;-1:-1:-1;;;;;681:3264:84;-1:-1:-1;;4322:10:81;297:2:93;681:3264:84;;267:46:93;4459:27:81;;;;681:3264:84;;4459:15:81;681:3264:84;;;;;;;4459:27:81;681:3264:84;4459:37:81;4455:87;;4654:38;4552:27;4654:38;4552:27;;;681:3264:84;;4459:15:81;681:3264:84;;;;;;;4552:27:81;681:3264:84;4631:6:81;;;;:::i;:::-;681:3264:84;;;;;;;;;;;;;4654:38:81;;;;3282:1:29;1805;-1:-1:-1;;;;;;;;;;;681:3264:84;3716:283:29;3282:1;681:3264:84;4455:87:81;681:3264:84;;-1:-1:-1;;;4519:12:81;;681:3264:84;;4519:12:81;4280:99;681:3264:84;;-1:-1:-1;;;4356:12:81;;681:3264:84;;4356:12:81;4285:48;;;;681:3264:84;4285:48:81;681:3264:84;4285:48:81;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;:::i;681:3264:84:-;;;;;;-1:-1:-1;;681:3264:84;;;;;;-1:-1:-1;681:3264:84;-1:-1:-1;;;;;;;;;;;681:3264:84;;;4919:24:24;681:3264:84;-1:-1:-1;681:3264:84;4919:24:24;681:3264:84;;;;;;;;;;;;;-1:-1:-1;;681:3264:84;;;;;;322:32:74;-1:-1:-1;;;;;681:3264:84;;;;;;;-1:-1:-1;;;;;681:3264:84;;;;;:::o;:::-;;;;;;-1:-1:-1;;681:3264:84;;;;5350:25:24;681:3264:84;;;;;;;:::i;:::-;;-1:-1:-1;681:3264:84;-1:-1:-1;;;;;;;;;;;681:3264:84;;3202:4:24;4919:24;681:3264:84;-1:-1:-1;681:3264:84;4919:24:24;681:3264:84;3202:4:24;:::i;:::-;5350:25;:::i;681:3264:84:-;;;;;;-1:-1:-1;;681:3264:84;;;;;;;;;:::i;:::-;966:10:28;-1:-1:-1;;;;;681:3264:84;;6441:34:24;6437:102;;6549:37;681:3264:84;;;6549:37:24;:::i;6437:102::-;681:3264:84;;-1:-1:-1;;;6498:30:24;;681:3264:84;;6498:30:24;681:3264:84;;;;;;-1:-1:-1;;681:3264:84;;;;;;;;;:::i;:::-;3217:103:29;;:::i;:::-;966:10:28;-1:-1:-1;681:3264:84;;;;;;;;;;1356:26:81;;681:3264:84;;4468:23:24;4464:108;;-1:-1:-1;4861:4:81;681:3264:84;-1:-1:-1;;;;;681:3264:84;;;;;;4861:13:81;;4857:63;;-1:-1:-1;;;;;;681:3264:84;;;4861:4:81;681:3264:84;4958:14:81;-1:-1:-1;;4958:14:81;4861:4;-1:-1:-1;;;;;;;;;;;681:3264:84;;4464:108:24;681:3264:84;;;;4514:47:24;;;;;;966:10:28;681:3264:84;4514:47:24;;681:3264:84;;;;;4514:47:24;681:3264:84;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;681:3264:84;;;;;;;:::o;:::-;;:::i;:::-;;;;;;;-1:-1:-1;;;;;681:3264:84;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;681:3264:84;;;;;;;:::o;:::-;;;;;;;:::i;:::-;:::o;:::-;-1:-1:-1;;;;;681:3264:84;;;;;;-1:-1:-1;;681:3264:84;;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;681:3264:84;;;;;;;;;;;;;;:::o;:::-;;;;;;-1:-1:-1;;681:3264:84;;;;;;;;;;;;;;;-1:-1:-1;;;;;681:3264:84;;;;;;;2045:63;681:3264;;;;;;:::i;:::-;;;;-1:-1:-1;681:3264:84;2045:16;681:3264;;;-1:-1:-1;681:3264:84;2045:63;:::i;:::-;681:3264;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;681:3264:84;;;;;;;;;;;;;;;:::o;:::-;;;;;;-1:-1:-1;;681:3264:84;;;;-1:-1:-1;;;;;681:3264:84;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;681:3264:84;;;;;;;4301:16:26;681:3264:84;;4726:16:26;;:34;;;;681:3264:84;4805:1:26;4790:16;:50;;;;681:3264:84;4855:13:26;:30;;;;681:3264:84;4851:91:26;;;-1:-1:-1;;;;;;;;;;;681:3264:84;;-1:-1:-1;;681:3264:84;;;;;718:4:74;;4951:18:26;4979:67;;718:4:74;:::i;:::-;5066:101:26;;681:3264:84;5066:101:26;-1:-1:-1;;;;;;;;;;;681:3264:84;;-1:-1:-1;;;;681:3264:84;;;;;-1:-1:-1;681:3264:84;;5142:14:26;;681:3264:84;;5142:14:26;681:3264:84;4979:67:26;-1:-1:-1;;;;;;;;;;;681:3264:84;;-1:-1:-1;;;;681:3264:84;-1:-1:-1;;;681:3264:84;;;718:4:74;:::i;4851:91:26:-;681:3264:84;;-1:-1:-1;;;4908:23:26;;681:3264:84;;4908:23:26;4855:30;4872:13;;;4855:30;;;4790:50;4818:4;4810:25;:30;;-1:-1:-1;4790:50:26;;4726:34;;;-1:-1:-1;4726:34:26;;681:3264:84;;;;;;-1:-1:-1;;681:3264:84;;;;;;;1253:6:81;681:3264:84;;;;;;;;;-1:-1:-1;;681:3264:84;;;;1267:23;681:3264;;;-1:-1:-1;;;;;681:3264:84;;;;;;;;;;;;;;-1:-1:-1;;681:3264:84;;;;;;;1356:26:81;681:3264:84;;;;;;;;;-1:-1:-1;;681:3264:84;;;;;;;;-1:-1:-1;;;;;681:3264:84;;;;;;;;;;;;;;-1:-1:-1;;681:3264:84;;;;;;;;-1:-1:-1;;;;;681:3264:84;;;;;;;;;;;;;;-1:-1:-1;;681:3264:84;;;;;;961:42;-1:-1:-1;;;;;681:3264:84;;;;;;;;;;;;-1:-1:-1;;681:3264:84;;;;;;3901:31:24;681:3264:84;;;;;:::i;:::-;;;-1:-1:-1;681:3264:84;-1:-1:-1;;;;;;;;;;;681:3264:84;;;-1:-1:-1;681:3264:84;;;;;;;;;;;;;;;;;3901:31:24;681:3264:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;681:3264:84;;;;-1:-1:-1;681:3264:84;;;477:31:80;681:3264:84;;;;;;:::i;:::-;;;;;;;;;;;;;;;416:25:80;;;;681:3264:84;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;-1:-1:-1;681:3264:84;;;;;;;;;;;;;477:31:80;;681:3264:84;;;;;;;;;;:::i;:::-;477:31:80;681:3264:84;;477:31:80;;;;;;:::i;:::-;518:79;;;681:3264:84;518:79:80;;681:3264:84;;;;;;;;;;;-1:-1:-1;;681:3264:84;;;;;;;;;;;;;;;;;-1:-1:-1;;681:3264:84;;;;;;;-1:-1:-1;;;;;404:28:74;681:3264:84;;;;;;;;;;-1:-1:-1;;681:3264:84;;;;;;1439:41:81;-1:-1:-1;;;;;681:3264:84;;;;;;;;;;;;-1:-1:-1;;681:3264:84;;;;;;-1:-1:-1;681:3264:84;2009:67:81;681:3264:84;;;;-1:-1:-1;681:3264:84;;;;;;;;;;;;;;-1:-1:-1;;681:3264:84;;;;5767:26:24;681:3264:84;;;;;;;:::i;:::-;;-1:-1:-1;681:3264:84;-1:-1:-1;;;;;;;;;;;681:3264:84;;3202:4:24;4919:24;681:3264:84;-1:-1:-1;681:3264:84;4919:24:24;681:3264:84;3202:4:24;:::i;:::-;5767:26;:::i;681:3264:84:-;;;;;;-1:-1:-1;;681:3264:84;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;-1:-1:-1;;;;;681:3264:84;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;-1:-1:-1;;681:3264:84;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;-1:-1:-1;;;;;681:3264:84;;;;;;;;;;;;:::i;:::-;3217:103:29;;:::i;:::-;-1:-1:-1;681:3264:84;;;5246:21:81;;:13;;-1:-1:-1;;;;;681:3264:84;5246:13:81;681:3264:84;;-1:-1:-1;;;;;681:3264:84;;;5246:21:81;681:3264:84;;-1:-1:-1;;;5246:23:81;;681:3264:84;;;;;5246:23:81;;;;;;;-1:-1:-1;5246:23:81;;;681:3264:84;-1:-1:-1;;;;;;681:3264:84;;;5232:10:81;:37;5228:87;;5341:4;681:3264:84;-1:-1:-1;;;;;681:3264:84;;;;5355:469:81;;681:3264:84;-1:-1:-1;;681:3264:84;;;;;;;;;;;;;;;;5839:55:81;;681:3264:84;;;;5839:55:81;;;;3282:1:29;1805;-1:-1:-1;;;;;;;;;;;681:3264:84;3716:283:29;5355:469:81;681:3264:84;;;;5435:94:81;;;;681:3264:84;5435:94:81;;;;;;;;;;;;681:3264:84;5435:94:81;;;:::i;:::-;;681:3264:84;;5435:94:81;;;;;;:::i;:::-;681:3264:84;5548:9:81;:51;5544:118;;-1:-1:-1;5839:55:81;5676:138;;;;5839:55;5676:138;;;1150:7;5676:138;;5355:469;;;5544:118;681:3264:84;;-1:-1:-1;;;5626:21:81;;681:3264:84;;5626:21:81;5228:87;681:3264:84;;-1:-1:-1;;;5292:12:81;;681:3264:84;;5292:12:81;5246:23;;;;;681:3264:84;5246:23:81;681:3264:84;5246:23:81;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;681:3264:84;;;;;;-1:-1:-1;;681:3264:84;;;;;;;;-1:-1:-1;;;;;681:3264:84;;;;;;;;;;;;;;-1:-1:-1;;681:3264:84;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;-1:-1:-1;;681:3264:84;;;;;;;1150:7:81;681:3264:84;;;;;;;;;-1:-1:-1;;681:3264:84;;;;;;;2700:1:81;681:3264:84;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;1914:201;;2045:63;1914:201;;-1:-1:-1;681:3264:84;2045:16;681:3264;;;-1:-1:-1;681:3264:84;2045:63;:::i;:::-;1914:201;:::o;681:3264::-;;;;;;;;;;;;;;;;;-1:-1:-1;681:3264:84;;;;;;;;-1:-1:-1;;681:3264:84;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;681:3264:84;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;;;;681:3264:84;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::o;:::-;-1:-1:-1;;;;;681:3264:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;2764:920:81:-;;2978:48;2764:920;;;;2978:48;;;;:::i;:::-;3036:36;;;681:3264:84;;:::i;:::-;;;;3086:20:81;3082:107;;2764:920;3216:11;;;;:193;;;;;2764:920;3216:394;;;;2764:920;3199:455;;;;;;2764:920;:::o;3199:455::-;3635:8;-1:-1:-1;3635:8:81;:::o;3216:394::-;3553:39;;;;;3430:180;3553:39;;;681:3264:84;;;;;;;;;;3430:180:81;;467:2:93;681:3264:84;3430:180:81;;;;;:::i;:::-;;681:3264:84;3444:31:81;-1:-1:-1;;;;;681:3264:84;3430:180:81;;;;;;;-1:-1:-1;3430:180:81;;;3216:394;3429:181;;3216:394;;;;;;3430:180;;;;3553:39;3430:180;3553:39;3430:180;;;;;;;:::i;:::-;;;;3216:193;-1:-1:-1;681:3264:84;;;-1:-1:-1;;;;;;681:3264:84;3248:161:81;3354:37;;;681:3264:84;3248:161:81;681:3264:84;;;;;;;;;;3248:161:81;;;;;;;:::i;:::-;;681:3264:84;3262:29:81;-1:-1:-1;;;;;681:3264:84;3248:161:81;;;;;;;-1:-1:-1;3248:161:81;;;3216:193;3247:162;;3216:193;;;3248:161;;;;;;;;;;;;;;:::i;:::-;;;;3082:107;3139:39;;;;;;;;;;;;;:::i;:::-;3082:107;;;;;681:3264:84;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;9856:1:61;681:3264:84;;;;;;;:::o;:::-;;:::i;3740:389:81:-;3918:5;681:3264:84;;;-1:-1:-1;;;3853:71:81;;;-1:-1:-1;;;;;681:3264:84;;;3853:71:81;;;681:3264:84;;;;;;;;3740:389:81;;681:3264:84;3853:71:81;;681:3264:84;;3853:71:81;681:3264:84;;;3867:29:81;681:3264:84;;3853:71:81;;;;;;;3918:5;3853:71;;;3740:389;3852:72;;681:3264:84;;;3852:181:81;;3740:389;3835:242;;;;;;4094:28;;;:::i;3835:242::-;4058:8;;3918:5;4058:8;:::o;3852:181::-;681:3264:84;;3945:88:81;;;-1:-1:-1;;;;;681:3264:84;;3853:71:81;3945:88;;681:3264:84;467:2:93;681:3264:84;;;;;;;;-1:-1:-1;681:3264:84;;;;;;;;3959:31:81;681:3264:84;3945:88:81;;;;;;;3918:5;3945:88;;;3852:181;3944:89;;;3852:181;;;;;3945:88;;;;;;-1:-1:-1;3945:88:81;;;;;;:::i;:::-;;;;;3853:71;;;;;;;;;;;;;;:::i;:::-;;;;3326:384:29;-1:-1:-1;;;;;;;;;;;1847:1:29;681:3264:84;;3526:20:29;3522:88;;1847:1;681:3264:84;;3326:384:29:o;3522:88::-;681:3264:84;;-1:-1:-1;;;3569:30:29;;;;;3164:253:84;3261:7;681:3264;-1:-1:-1;;;;;681:3264:84;467:2:93;681:3264:84;;;3261:31;3257:85;;-1:-1:-1;681:3264:84;3351:16;681:3264;;;-1:-1:-1;681:3264:84;;;837:15:63;;;14369:24:59;14365:103;;837:15:63;;681:3264:84;6360:12:91;;;;681:3264:84;;;6360:24:91;6356:75;;3164:253:84;6474:30:91;;;:::i;:::-;681:3264:84;;;;;;;;10303:8:61;;:63;:8;;;:63;-1:-1:-1;10303:63:61;;-1:-1:-1;;;;;681:3264:84;;;;10726:7:91;681:3264:84;;10736:17:91;;;;:::i;:::-;10726:31;;;6604:24;;;10726:31;-1:-1:-1;;6600:188:91;;;6657:7;;6644:29;6657:7;;;;6644:21;6657:7;;:::i;:::-;6644:21;;:::i;:::-;:29;681:3264:84;;;;;;;;;;;;;;;;;;;;;6600:188:91;6753:24;681:3264:84;8167:38:61;681:3264:84;;8167:38:61;;:::i;:::-;6753:24:91;;;:::i;6604:::-;681:3264:84;6614:14:91;;;-1:-1:-1;6604:24:91;;;;10726:31;;;;10303:63:61;681:3264:84;;;;;;;;;;14249:109:61;-1:-1:-1;14249:109:61;681:3264:84;-1:-1:-1;14249:109:61;;;681:3264:84;;;10303:63:61;;;6356:75:91;6400:20;;;:::i;:::-;6356:75;;14365:103:59;681:3264:84;;-1:-1:-1;;;14416:41:59;;14447:2;3261:7:84;14416:41:59;;681:3264:84;837:15:63;681:3264:84;;;;;;14416:41:59;3257:85:84;681:3264;;-1:-1:-1;;;3315:16:84;;3261:7;;3315:16;4148:103:24;-1:-1:-1;681:3264:84;;;-1:-1:-1;;;;;;;;;;;681:3264:84;;;;;;;;966:10:28;681:3264:84;;;;;;;;;;4468:23:24;4464:108;;4148:103;:::o;7270:387::-;-1:-1:-1;;;;;681:3264:84;;-1:-1:-1;681:3264:84;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2887:71:24;681:3264:84;;;;-1:-1:-1;681:3264:84;;;;;;;;;;;-1:-1:-1;;;;;681:3264:84;;;;;;;;;;-1:-1:-1;;681:3264:84;7509:4:24;681:3264:84;;;966:10:28;;-1:-1:-1;;;;;681:3264:84;-1:-1:-1;7532:40:24;-1:-1:-1;;7532:40:24;7509:4;7586:11;:::o;7270:387::-;-1:-1:-1;;;;;681:3264:84;;-1:-1:-1;681:3264:84;;;;;;;;;1356:26:81;;-1:-1:-1;;;;;;;;;;;2887:71:24;681:3264:84;;3901:31:24;681:3264:84;;;;-1:-1:-1;681:3264:84;;;;;;;;;;;-1:-1:-1;;;;;681:3264:84;;;;;;;;;;-1:-1:-1;;681:3264:84;7509:4:24;681:3264:84;;;966:10:28;;-1:-1:-1;;;;;681:3264:84;;7532:40:24;-1:-1:-1;;7532:40:24;7509:4;7586:11;:::o;7432:219::-;7628:12;;;-1:-1:-1;7628:12:24;:::o;7270:387::-;-1:-1:-1;681:3264:84;;;-1:-1:-1;;;;;;;;;;;681:3264:84;;;;;;;;-1:-1:-1;;;;;681:3264:84;;;;;;;;;;;;3901:31:24;681:3264:84;7892:388:24;-1:-1:-1;681:3264:84;;;-1:-1:-1;;;;;;;;;;;681:3264:84;;;;;;;;-1:-1:-1;;;;;681:3264:84;;;;;;;;;;;;;;;;-1:-1:-1;681:3264:84;;;;;;;;;;;-1:-1:-1;;;;;681:3264:84;;;;;;;;;;-1:-1:-1;;681:3264:84;;;966:10:28;;-1:-1:-1;;;;;681:3264:84;;8155:40:24;-1:-1:-1;;8155:40:24;681:3264:84;8209:11:24;:::o;681:3264:84:-;;;;;;;;;;;;;;;;;;:::o;:::-;-1:-1:-1;;681:3264:84;;;;;;;;:::o;:::-;;;;;;;;;;;;;:::o;7558:604:91:-;;681:3264:84;;7686:17:91;7682:83;;681:3264:84;7789:27:91;681:3264:84;7789:27:91;681:3264:84;;7789:27:91;;;;;;:::i;:::-;7860:14;;;;;:::i;:::-;681:3264:84;;;;;;;;;;;;;;;;7888:22:91;;;7884:77;;7975:21;-1:-1:-1;7975:84:91;;;;7558:604;7971:139;;;;8127:28;;;;:::i;7971:139::-;8082:17;;7789:27;8082:17;681:3264:84;8075:24:91;:::o;7975:84::-;681:3264:84;;;8009:16:91;681:3264:84;;8009:16:91;:::i;:::-;681:3264:84;;;8001:24:91;:57;;;;;7975:84;;;;;;;8001:57;8029:29;8038:8;;;8029:18;8038:8;8029:23;8038:8;;:::i;:::-;8029:18;;:::i;:::-;681:3264:84;;;;;8029:23:91;681:3264:84;;;;8029:29:91;;8001:57;;;;7884:77;7933:17;;;;;7789:27;7933:17;681:3264:84;7926:24:91;:::o;7682:83::-;7726:28;;;;:::i;681:3264:84:-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;681:3264:84;;;;;;;;:::i;5907:716:81:-;6030:34;5907:716;6030:34;;;;:::i;:::-;681:3264:84;;-1:-1:-1;;;6080:41:81;;-1:-1:-1;;;;;681:3264:84;;;6080:41:81;;;681:3264:84;;;;;6080:41:81;681:3264:84;;;6090:13:81;681:3264:84;;6080:41:81;;;;;;;-1:-1:-1;6080:41:81;;;5907:716;6079:42;;6075:90;;6266:27;681:3264:84;2540:111:29;6210:14:81;681:3264:84;2540:111:29;;;:::i;:::-;681:3264:84;;;;;;-1:-1:-1;;;;;681:3264:84;;-1:-1:-1;681:3264:84;;;-1:-1:-1;681:3264:84;;6210:14:81;6266:27;:::i;:::-;6080:41;6311:15;;681:3264:84;;;;-1:-1:-1;;;;;;681:3264:84;-1:-1:-1;;;;;681:3264:84;;;;;;;;;;;-1:-1:-1;;;;;681:3264:84;;;;6337:143:81;;5907:716;-1:-1:-1;6493:28:81;681:3264:84;-1:-1:-1;;;;;681:3264:84;;;;;;;6489:128:81;;5907:716;:::o;6489:128::-;6551:55;;;:::i;:::-;;5907:716::o;6337:143::-;6404:65;;;:::i;:::-;;6337:143;;;6075:90;681:3264:84;;-1:-1:-1;;;6144:10:81;;6080:41;;6144:10;6080:41;;;;;;;;;;;;;;:::i;:::-;;;;681:3264:84;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;;;;681:3264:84;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;:::i;2121:740::-;;;;;681:3264;;:::i;:::-;;;;2362:16;2358:92;;2121:740;-1:-1:-1;;2464:7:84;681:3264;467:2:93;681:3264:84;;;-1:-1:-1;;;;;681:3264:84;;;2464:31;;;;;681:3264;2464:56;;2121:740;2460:120;;;;-1:-1:-1;681:3264:84;2637:67;;681:3264;;2676:27;;2637;;:13;;-1:-1:-1;;;;;681:3264:84;2637:13;681:3264;2637:27;2676;;;;681:3264;;;;;;;;;;;2637:67;;;2464:7;2637:67;;;:::i;:::-;;;;;;;;;;2611:198;2637:67;-1:-1:-1;2637:67:84;;;2121:740;2763:31;2722:73;2763:31;;681:3264;2763:31;;;2722:73;;:::i;:::-;2611:198;;:::i;:::-;2823:21;;2121:740;:::o;2637:67::-;2722:73;2637:67;;;;2676:27;2637:67;2676:27;2637:67;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;2460:120;-1:-1:-1;;2547:21:84;;-1:-1:-1;;2536:33:84:o;2464:56::-;2499:8;681:3264;;;-1:-1:-1;;;;;681:3264:84;;;2499:21;;;-1:-1:-1;2464:56:84;;;;2358:92;2408:31;;;;;;;;;;;;;:::i;:::-;2358:92;;;;;2867:291;2977:7;681:3264;2867:291;;681:3264;;;;-1:-1:-1;;;;;681:3264:84;;;2977:31;;;;681:3264;2977:56;;2867:291;2973:95;;;;-1:-1:-1;681:3264:84;2977:7;;681:3264;3094:27;;:25;;:13;;-1:-1:-1;;;;;681:3264:84;3094:13;681:3264;3094:25;681:3264;;-1:-1:-1;;;3094:27:84;;681:3264;;;;;3094:27;;;;;;;3085:66;3094:27;-1:-1:-1;3094:27:84;;;2867:291;3123:27;;;681:3264;;4459:15:81;681:3264:84;;;;;;;3123:27;681:3264;3085:66;;:::i;3094:27::-;3123;3094;;;;;;;;;;;;;;;:::i;:::-;;;;;2977:56;3012:8;681:3264;;;-1:-1:-1;;;;;681:3264:84;;;3012:21;;;-1:-1:-1;2977:56:84;;;;681:3264;;;;;;;;-1:-1:-1;681:3264:84;;-1:-1:-1;681:3264:84;;;-1:-1:-1;681:3264:84;:::o;:::-;;;;;;;;;;;;;;;-1:-1:-1;;;681:3264:84;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::o;:::-;;;;;-1:-1:-1;;;681:3264:84;;;;;;;;;;;;;;;:::i;6999:207:91:-;;681:3264:84;;9594:15:61;-1:-1:-1;9619:18:61;9652:7;9658:1;9652:7;;9648:234;;6999:207:91;9906:53:61;;;;;:::i;:::-;9977:8;;;:63;-1:-1:-1;9977:63:61;;-1:-1:-1;;;;;681:3264:84;;7168:7:91;681:3264:84;;;7178:12:91;;:17;:12;;:17;:::i;:::-;681:3264:84;;;;;;;;9977:63:61;9992:41;10025:7;9992:48;10025:7;;:::i;:::-;9992:41;14249:109;;;;;;14099:265;;9992:41;681:3264:84;;;;;9992:48:61;9977:63;;;9648:234;9695:14;;;;;:::i;:::-;681:3264:84;;;;;;;9906:53:61;14249:109;;-1:-1:-1;14249:109:61;681:3264:84;14249:109:61;;;-1:-1:-1;14249:109:61;;681:3264:84;;;;;9727:48:61;9723:149;681:3264:84;;;9795:10:61;9723:149;9648:234;;9723:149;9850:7;;;;;;:::i;:::-;9723:149;9648:234;;681:3264:84;;;;;;;:::i;:::-;-1:-1:-1;681:3264:84;;;;;;;:::o;11486:272:91:-;;681:3264:84;11308:22:61;11718:31:91;11486:272;681:3264:84;;:::i;:::-;;;;:::i;:::-;;11308:22:61;;:::i;:::-;681:3264:84;;:::i;:::-;;11718:12:91;681:3264:84;;;;;11731:17:91;681:3264:84;;;;;11731:17:91;;681:3264:84;;11718:12:91;;:31;:::i;:::-;681:3264:84;;;;;;;;;:::i;:::-;;;;;;11731:17:91;11672:79;;681:3264:84;11486:272:91;:::o;6893:76:26:-;;;:::i;:::-;;;:::i;:::-;1805:1:29;-1:-1:-1;;;;;;;;;;;681:3264:84;6893:76:26:o;681:3264:84:-;;;;;;;:::i;:::-;-1:-1:-1;681:3264:84;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;3423:520::-;681:3264;;:::i;:::-;;3571:30;681:3264;;3571:30;;;;;;;;;;;:::i;:::-;3654:14;;;681:3264;;;;-1:-1:-1;;;3617:52:84;;;-1:-1:-1;;;;;681:3264:84;;;3617:52;;;681:3264;3654:14;;681:3264;;;3654:14;681:3264;;;3627:16;681:3264;;3617:52;;;;;;;-1:-1:-1;3617:52:84;;;3423:520;3616:53;;3612:103;;3768:15;3730:54;3768:15;681:3264;3768:15;;681:3264;;;;;;;;;;;;;;;3730:54;;;-1:-1:-1;;;;;681:3264:84;3617:52;3730:54;;681:3264;;;;;-1:-1:-1;681:3264:84;;;;;;;;;3730:54;;3740:17;;681:3264;3730:54;;;;;;;-1:-1:-1;3730:54:84;;;3423:520;3729:55;;;3725:106;;681:3264;3617:52;681:3264;;-1:-1:-1;;;;;681:3264:84;;;-1:-1:-1;;;;;;681:3264:84;;;;;;;;;3875:26;681:3264;;;;;;;;;;3919:17;3423:520;:::o;3725:106::-;681:3264;;-1:-1:-1;;;3807:13:84;;3617:52;;3807:13;3730:54;;;;;;-1:-1:-1;3730:54:84;;;;;;:::i;:::-;;;;;3617:52;;;;;;;;;;;;;;:::i;:::-;;;;2557:104:58;;2641:5;;;;;;:13;2557:104;:::o;2641:13::-;;;2557:104;:::o;681:3264:84:-;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::o;10552:388:61:-;681:3264:84;;10728:8:61;;;10752:20;;10690:17;10752:20;10690:17;10752:20;10690:17;10752:20;:::o;10724:210::-;681:3264:84;;;;;;;;;;;14249:109:61;10690:17;14249:109;;10690:17;14249:109;;;681:3264:84;:::i;:::-;;;;;;;14249:109:61;681:3264:84;;;;;10911:11:61;;681:3264:84;;10886:37:61;10870:1;10886:37;;;:::o;7084:141:26:-;681:3264:84;-1:-1:-1;;;;;;;;;;;681:3264:84;;;;7150:18:26;7146:73;;7084:141::o;7146:73::-;681:3264:84;;-1:-1:-1;;;7191:17:26;;;;;681:3264:84;;;-1:-1:-1;;;681:3264:84;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;681:3264:84;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;11513:870:61;681:3264:84;;11513:870:61;;;681:3264:84;11513:870:61;11672:7;;;;681:3264:84;11775:28:61;11795:7;;;:::i;11775:28::-;681:3264:84;:::i;:::-;;;;;;;;;;;;;;;;11877:15:61;-1:-1:-1;11873:91:61;;681:3264:84;;12233:11:61;681:3264:84;;;12027:16:61;681:3264:84;;;;;;;12027:16:61;;;;12083:7;12063:43;12083:7;;12063:28;12083:7;;:::i;:::-;12063:28;14249:109;;;;;;14099:265;;12063:28;681:3264:84;;;;;;;;;;;;;;;;;12063:43:61;12233:11;681:3264:84;-1:-1:-1;;;;;681:3264:84;;;;12225:27:61;;:::o;12023:189::-;681:3264:84;;;12145:52:61;681:3264:84;12155:41:61;681:3264:84;;:::i;:::-;;;;;;;;12155:41:61;-1:-1:-1;;;;;681:3264:84;;12155:41:61;;;681:3264:84;12145:52:61;:::i;:::-;12023:189;;11873:91;681:3264:84;;-1:-1:-1;;;11919:30:61;;;;;11668:709;12283:52;681:3264:84;;12293:41:61;681:3264:84;;:::i;12293:41:61:-;-1:-1:-1;;;;;681:3264:84;;12293:41:61;;;681:3264:84;12145:52:61;:::i;12283:::-;11678:1;12349:17;;:::o;8587:1642:58:-;8658:6;;8654:45;;9401:7;10201:10;10142:26;10093;10044;9995;9946;9897;9848;681:3264:84;10189:23:58;9401:7;8663:1;681:3264:84;;;;10826:16:58;10822:99;;8587:1642;681:3264:84;;;;10938:15:58;10934:96;;8587:1642;681:3264:84;;;;11047:15:58;11043:96;;8587:1642;681:3264:84;;;;11156:15:58;11152:96;;8587:1642;681:3264:84;;;;11265:14:58;11261:93;;8587:1642;681:3264:84;;;;11371:14:58;11367:93;;8587:1642;681:3264:84;;;;11477:14:58;11473:93;;8587:1642;681:3264:84;;;11579:64:58;;8587:1642;681:3264:84;;;9858:10:58;;;;:::i;:::-;681:3264:84;;;;;9848:26:58;9907:10;;;;:::i;9897:26::-;9956:10;;;;:::i;9946:26::-;10005:10;;;;:::i;9995:26::-;10054:10;;;;:::i;10044:26::-;10103:10;;;;:::i;10093:26::-;10152:10;;;;:::i;10142:26::-;10201:10;;;:::i;11579:64::-;681:3264:84;;11579:64:58;;11473:93;681:3264:84;11511:11:58;;681:3264:84;;11473:93:58;;;;11367;681:3264:84;11405:11:58;;681:3264:84;;11367:93:58;;;;11261;681:3264:84;11299:11:58;;681:3264:84;;11261:93:58;;;;11152:96;681:3264:84;11191:12:58;;681:3264:84;;11152:96:58;;;;11043;681:3264:84;11082:12:58;;681:3264:84;;11043:96:58;;;;10934;681:3264:84;10973:12:58;;681:3264:84;;10934:96:58;;;;10822:99;10862:13;;;681:3264:84;10822:99:58;;;;12736:433:61;;;12919:10;;;;;;13151:11;;;12736:433;:::o;12912:230::-;2900:5:58;;;;;;2910;;;;681:3264:84;;;;;;;;;14249:109:61;-1:-1:-1;14249:109:61;681:3264:84;14249:109:61;;;-1:-1:-1;14249:109:61;;681:3264:84;;;;;-1:-1:-1;12996:136:61;681:3264:84;;;13055:10:61;12996:136;;12912:230;;;;12996:136;13110:7;;;;;;:::i;:::-;12996:136;;","linkReferences":{},"immutableReferences":{"64520":[{"start":1278,"length":32}],"64523":[{"start":3054,"length":32}],"65474":[{"start":893,"length":32},{"start":3111,"length":32},{"start":8264,"length":32}],"65477":[{"start":627,"length":32},{"start":6590,"length":32}],"65480":[{"start":695,"length":32},{"start":4624,"length":32},{"start":4948,"length":32}],"65483":[{"start":763,"length":32},{"start":4471,"length":32},{"start":5074,"length":32}],"67099":[{"start":2670,"length":32},{"start":8385,"length":32}]}},"methodIdentifiers":{"DEFAULT_ADMIN_ROLE()":"a217fddf","FACTORY()":"2dd31000","HOOK_GAS_LIMIT()":"ff54740f","HOOK_RESERVE()":"557cab44","HOOK_SET_ROLE()":"6679191e","NETWORK_REGISTRY()":"c0cd7c3e","OPERATOR_NETWORK_OPT_IN_SERVICE()":"1a80e500","OPERATOR_REGISTRY()":"83ce0322","OPERATOR_VAULT_OPT_IN_SERVICE()":"128e5d82","TYPE()":"bb24fe8a","VAULT_FACTORY()":"103f2907","VERSION()":"ffa1ad74","getRoleAdmin(bytes32)":"248a9ca3","grantRole(bytes32,address)":"2f2ff15d","hasRole(bytes32,address)":"91d14854","hook()":"7f5a7c7b","initialize(bytes)":"439fab91","maxNetworkLimit(bytes32)":"d15b740e","maxNetworkLimitAt(bytes32,uint48,bytes)":"437224a3","network()":"6739afca","onSlash(bytes32,address,uint256,uint48,bytes)":"e49561ee","operator()":"570ca735","renounceRole(bytes32,address)":"36568abe","revokeRole(bytes32,address)":"d547741f","setHook(address)":"3dfd3873","setMaxNetworkLimit(uint96,uint256)":"23f752d5","stake(bytes32,address)":"fd4d447c","stakeAt(bytes32,address,uint48,bytes)":"e02f6937","staticDelegateCall(address,bytes)":"9f86fd85","supportsInterface(bytes4)":"01ffc9a7","vault()":"fbfa77cf"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operatorRegistry\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"networkRegistry\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"vaultFactory\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operatorVaultOptInService\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operatorNetworkOptInService\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"delegatorFactory\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"entityType\",\"type\":\"uint64\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"AccessControlBadConfirmation\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"neededRole\",\"type\":\"bytes32\"}],\"name\":\"AccessControlUnauthorizedAccount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AlreadySet\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CheckpointUnorderedInsertion\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientHookGas\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidNetwork\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotNetwork\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotOperator\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotSlasher\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotVault\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ReentrancyGuardReentrantCall\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"bits\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"SafeCastOverflowedUintDowncast\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint48\",\"name\":\"captureTimestamp\",\"type\":\"uint48\"}],\"name\":\"OnSlash\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"previousAdminRole\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"newAdminRole\",\"type\":\"bytes32\"}],\"name\":\"RoleAdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleRevoked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"hook\",\"type\":\"address\"}],\"name\":\"SetHook\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"SetMaxNetworkLimit\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DEFAULT_ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"FACTORY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"HOOK_GAS_LIMIT\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"HOOK_RESERVE\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"HOOK_SET_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"NETWORK_REGISTRY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"OPERATOR_NETWORK_OPT_IN_SERVICE\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"OPERATOR_REGISTRY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"OPERATOR_VAULT_OPT_IN_SERVICE\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"TYPE\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"VAULT_FACTORY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"VERSION\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleAdmin\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"grantRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"hook\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"}],\"name\":\"maxNetworkLimit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hint\",\"type\":\"bytes\"}],\"name\":\"maxNetworkLimitAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"network\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint48\",\"name\":\"captureTimestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"onSlash\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"operator\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"callerConfirmation\",\"type\":\"address\"}],\"name\":\"renounceRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"hook_\",\"type\":\"address\"}],\"name\":\"setHook\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint96\",\"name\":\"identifier\",\"type\":\"uint96\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"setMaxNetworkLimit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"stake\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hints\",\"type\":\"bytes\"}],\"name\":\"stakeAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"staticDelegateCall\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"vault\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"AccessControlBadConfirmation()\":[{\"details\":\"The caller of a function is not the expected one. NOTE: Don't confuse with {AccessControlUnauthorizedAccount}.\"}],\"AccessControlUnauthorizedAccount(address,bytes32)\":[{\"details\":\"The `account` is missing a role.\"}],\"CheckpointUnorderedInsertion()\":[{\"details\":\"A value was attempted to be inserted on a past checkpoint.\"}],\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"ReentrancyGuardReentrantCall()\":[{\"details\":\"Unauthorized reentrant call.\"}],\"SafeCastOverflowedUintDowncast(uint8,uint256)\":[{\"details\":\"Value doesn't fit in an uint of `bits` size.\"}]},\"events\":{\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"OnSlash(bytes32,address,uint256,uint48)\":{\"params\":{\"amount\":\"amount of the collateral to be slashed\",\"captureTimestamp\":\"time point when the stake was captured\",\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"}},\"RoleAdminChanged(bytes32,bytes32,bytes32)\":{\"details\":\"Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole` `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite {RoleAdminChanged} not being emitted signaling this.\"},\"RoleGranted(bytes32,address,address)\":{\"details\":\"Emitted when `account` is granted `role`. `sender` is the account that originated the contract call, an admin role bearer except when using {AccessControl-_setupRole}.\"},\"RoleRevoked(bytes32,address,address)\":{\"details\":\"Emitted when `account` is revoked `role`. `sender` is the account that originated the contract call: - if using `revokeRole`, it is the admin role bearer - if using `renounceRole`, it is the role bearer (i.e. `account`)\"},\"SetHook(address)\":{\"params\":{\"hook\":\"address of the hook\"}},\"SetMaxNetworkLimit(bytes32,uint256)\":{\"params\":{\"amount\":\"new maximum subnetwork's limit (how much stake the subnetwork is ready to get)\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"}}},\"kind\":\"dev\",\"methods\":{\"VERSION()\":{\"details\":\"Must return 1 for this one.\",\"returns\":{\"_0\":\"version of the delegator\"}},\"getRoleAdmin(bytes32)\":{\"details\":\"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}.\"},\"grantRole(bytes32,address)\":{\"details\":\"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event.\"},\"hasRole(bytes32,address)\":{\"details\":\"Returns `true` if `account` has been granted `role`.\"},\"initialize(bytes)\":{\"params\":{\"data\":\"some data to use\"}},\"maxNetworkLimitAt(bytes32,uint48,bytes)\":{\"params\":{\"hint\":\"hint for checkpoint index\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\",\"timestamp\":\"time point to get the maximum subnetwork limit at\"},\"returns\":{\"_0\":\"maximum limit of the subnetwork\"}},\"onSlash(bytes32,address,uint256,uint48,bytes)\":{\"details\":\"Only the vault's slasher can call this function.\",\"params\":{\"amount\":\"amount of the collateral slashed\",\"captureTimestamp\":\"time point when the stake was captured\",\"data\":\"some additional data\",\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"}},\"renounceRole(bytes32,address)\":{\"details\":\"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `callerConfirmation`. May emit a {RoleRevoked} event.\"},\"revokeRole(bytes32,address)\":{\"details\":\"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event.\"},\"setHook(address)\":{\"details\":\"Only a HOOK_SET_ROLE holder can call this function. The hook can have arbitrary logic under certain functions, however, it doesn't affect the stake guarantees.\",\"params\":{\"hook\":\"address of the hook\"}},\"setMaxNetworkLimit(uint96,uint256)\":{\"details\":\"Only a network can call this function.\",\"params\":{\"amount\":\"new maximum subnetwork's limit\"}},\"stake(bytes32,address)\":{\"details\":\"Warning: this function is not safe to use for stake capturing, as it can change by the end of the block.\",\"params\":{\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"},\"returns\":{\"_0\":\"slashable stake until the end of the next epoch\"}},\"stakeAt(bytes32,address,uint48,bytes)\":{\"details\":\"Warning: it is not safe to use timestamp >= current one for the stake capturing, as it can change later.\",\"params\":{\"hints\":\"hints for the checkpoints' indexes\",\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\",\"timestamp\":\"time point to capture the stake at\"},\"returns\":{\"_0\":\"slashable stake at the given timestamp until the end of the consequent epoch\"}},\"staticDelegateCall(address,bytes)\":{\"details\":\"It allows to use this contract's storage on-chain.\",\"params\":{\"data\":\"data to make a delegatecall with\",\"target\":\"address of the contract to make a delegatecall to\"}},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"}},\"stateVariables\":{\"OPERATOR_REGISTRY\":{\"return\":\"address of the operator registry\",\"returns\":{\"_0\":\"address of the operator registry\"}},\"network\":{\"return\":\"address of the network\",\"returns\":{\"_0\":\"address of the network\"}},\"operator\":{\"return\":\"address of the operator\",\"returns\":{\"_0\":\"address of the operator\"}}},\"version\":1},\"userdoc\":{\"events\":{\"OnSlash(bytes32,address,uint256,uint48)\":{\"notice\":\"Emitted when a slash happens.\"},\"SetHook(address)\":{\"notice\":\"Emitted when a hook is set.\"},\"SetMaxNetworkLimit(bytes32,uint256)\":{\"notice\":\"Emitted when a subnetwork's maximum limit is set.\"}},\"kind\":\"user\",\"methods\":{\"FACTORY()\":{\"notice\":\"Get the factory's address.\"},\"HOOK_GAS_LIMIT()\":{\"notice\":\"Get a gas limit for the hook.\"},\"HOOK_RESERVE()\":{\"notice\":\"Get a reserve gas between the gas limit check and the hook's execution.\"},\"HOOK_SET_ROLE()\":{\"notice\":\"Get a hook setter's role.\"},\"NETWORK_REGISTRY()\":{\"notice\":\"Get the network registry's address.\"},\"OPERATOR_NETWORK_OPT_IN_SERVICE()\":{\"notice\":\"Get the operator-network opt-in service's address.\"},\"OPERATOR_REGISTRY()\":{\"notice\":\"Get the operator registry's address.\"},\"OPERATOR_VAULT_OPT_IN_SERVICE()\":{\"notice\":\"Get the operator-vault opt-in service's address.\"},\"TYPE()\":{\"notice\":\"Get the entity's type.\"},\"VAULT_FACTORY()\":{\"notice\":\"Get the vault factory's address.\"},\"VERSION()\":{\"notice\":\"Get a version of the delegator (different versions mean different interfaces).\"},\"hook()\":{\"notice\":\"Get the hook's address.\"},\"initialize(bytes)\":{\"notice\":\"Initialize this entity contract by using a given data.\"},\"maxNetworkLimit(bytes32)\":{\"notice\":\"Get a particular subnetwork's maximum limit (meaning the subnetwork is not ready to get more as a stake).\"},\"maxNetworkLimitAt(bytes32,uint48,bytes)\":{\"notice\":\"Get a particular subnetwork's maximum limit at a given timestamp using a hint (meaning the subnetwork is not ready to get more as a stake).\"},\"network()\":{\"notice\":\"Get a network the vault delegates funds to.\"},\"onSlash(bytes32,address,uint256,uint48,bytes)\":{\"notice\":\"Called when a slash happens.\"},\"operator()\":{\"notice\":\"Get an operator managing the vault's funds.\"},\"setHook(address)\":{\"notice\":\"Set a new hook.\"},\"setMaxNetworkLimit(uint96,uint256)\":{\"notice\":\"Set a maximum limit for a subnetwork (how much stake the subnetwork is ready to get). identifier identifier of the subnetwork\"},\"stake(bytes32,address)\":{\"notice\":\"Get a stake that a given subnetwork will be able to slash for a certain operator until the end of the next epoch (if no cross-slashing and no slashings by the subnetwork).\"},\"stakeAt(bytes32,address,uint48,bytes)\":{\"notice\":\"Get a stake that a given subnetwork could be able to slash for a certain operator at a given timestamp until the end of the consequent epoch using hints (if no cross-slashing and no slashings by the subnetwork).\"},\"staticDelegateCall(address,bytes)\":{\"notice\":\"Make a delegatecall from this contract to a given target contract with a particular data (always reverts with a return data).\"},\"vault()\":{\"notice\":\"Get the vault's address.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/contracts/delegator/OperatorNetworkSpecificDelegator.sol\":\"OperatorNetworkSpecificDelegator\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol\":{\"keccak256\":\"0x6662ec4e5cefca03eeadd073e9469df8d2944bb2ee8ec8f7622c2c46aab5f225\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4d8544c6f8daa4d1bc215c6a72fe0acdb748664a105b0e5efc19295667521d45\",\"dweb:/ipfs/QmdGWqdnXT8S3RgCR6aV8XHZrsybieMQLLnug1NtpSjEXN\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609\",\"dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9\",\"dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardUpgradeable.sol\":{\"keccak256\":\"0xb44e086e941292cdc7f440de51478493894ef0b1aeccb0c4047445919f667f74\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://942dad22fbdc1669f025540ba63aa3ccfad5f8458fc5d4525b31ebf272e7af45\",\"dweb:/ipfs/Qmdo4X2M82aM3AMoW2kf2jhYkSCyC4T1pHNd6obdsDFnAB\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol\":{\"keccak256\":\"0xdaba3f7c42c55b2896353f32bd27d4d5f8bae741b3b05d4c53f67abc4dc47ce8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1fa2e61141c602510bcd2cd936ed9561922ac8772a9b9c9a9db091a74e354a45\",\"dweb:/ipfs/QmcHQDDoEBwJmwUbzoVkytvJsBx3KVHYFFnDkvRGWh9Wmh\"]},\"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0xb6b36edd6a2999fd243ff226d6cbf84bd71af2432bbd0dfe19392996a1d9cb41\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1fd2f35495652e57e3f99bc6c510bc5f7dd398a176ea2e72d8ed730aebc6ca26\",\"dweb:/ipfs/QmTQV6X4gkikTib49cho5iDX3JvSQbdsoEChoDwrk3CbbH\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875\",\"dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0xe19a4d5f31d2861e7344e8e535e2feafb913d806d3e2b5fe7782741a2a7094fe\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4aed79c0fa6f0546ed02f2f683e8f77f0fd2ed7eb34d8bbf3d373c9a6d95b13c\",\"dweb:/ipfs/QmWqVz6UAVqmnWU5pqYPt1o6iDEZyPaBraAA3rKfTTSfYj\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/Checkpoints.sol\":{\"keccak256\":\"0xbdc5e074d7dd6678f67e92b1a51a20226801a407b0e1af3da367c5d1ff4519ad\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a36cca6b22fff3db16fc789ff6c60eea71d4b156065d4d0c83a0bc5e91a77a8b\",\"dweb:/ipfs/QmYN3exd5AemxjBrN8XMB1p5LbbE16uC3sjbYjwi8AjcGR\"]},\"lib/openzeppelin-contracts/contracts/utils/types/Time.sol\":{\"keccak256\":\"0xc7755af115020049e4140f224f9ee88d7e1799ffb0646f37bf0df24bf6213f58\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7f09bf94d5274334ec021f61a04659db303f31e60460e14b709c9bf187740111\",\"dweb:/ipfs/QmNvgomZYUwFAt4cZbPWAiTeSZQreGehY9BK5xyVJsUttb\"]},\"src/contracts/common/Entity.sol\":{\"keccak256\":\"0x3d61a932995b8443381f3950542d388223a2c26dd5d29a3274dea3baa7388bd7\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://7cdf5f03ca72fd263fd32ff59c8d88ddca911ae83896a287d10772c1bbe9b138\",\"dweb:/ipfs/QmbP84r5BWT1Rn9AYTntWSf3xUMTTCohTZJFhbBhDXFoHa\"]},\"src/contracts/common/StaticDelegateCallable.sol\":{\"keccak256\":\"0x350029aa8955eacaffffaeb58babc5c98e80ebc5c5db388ed17ee6465f4a9d90\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://eb392a8ee9050e0af606897df63e3404e3829e8b688b580663892f9664195764\",\"dweb:/ipfs/QmaXC8jqV8UrrAFkzXTEv2fJF56sy33HhLxAzaRZmUxuXD\"]},\"src/contracts/delegator/BaseDelegator.sol\":{\"keccak256\":\"0x7c54d491fdd4415b764a9c8defa068e56d4c0c8c9419be0053a1d377669290e8\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://9238bfbad0f6eeb0dc7727724de14380f1980b395902269703d5e2ef07e52e10\",\"dweb:/ipfs/QmPJn1V4HNXcEghYvogGuSTF24dSQUPosR5qtsXcmNqRm3\"]},\"src/contracts/delegator/OperatorNetworkSpecificDelegator.sol\":{\"keccak256\":\"0x031a10722b9ec49048f0952710401131290adb87e71caf294e864e7ac3b98a16\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://72428febc875134b2f29205e6f294634a1c22a7d5c78d6a9cb2f8196f107c9b5\",\"dweb:/ipfs/QmTPwXR6h5oytckmkLrHdKeEMdphJxceDhYUR4zvQeWAwY\"]},\"src/contracts/libraries/Checkpoints.sol\":{\"keccak256\":\"0xba90097c8bfe0a975499428b5f8ac5569483c7d92ccc28c12d70de416aae040c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://12f5d93ca94cd06d3147db68993165a58e17903ed53682560de61f3085ad4609\",\"dweb:/ipfs/QmePiuAqvXprMLmFZkGZeGjvGPAvsEDHfCDv7BoQhXu9xE\"]},\"src/contracts/libraries/Subnetwork.sol\":{\"keccak256\":\"0xf5ef5506fd66082b3c2e7f3df37529f5a8efad32ac62e7c8914bd63219190bfe\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba031a54ee0d0e9a270c2b9e18437f5668cfeb659cfd5fe0677459d7fcac2a56\",\"dweb:/ipfs/QmReP3H7qQ78tAfgLnJKsNEQNCQfF1X1Get38Ffd4kzq32\"]},\"src/interfaces/common/IEntity.sol\":{\"keccak256\":\"0x8ef4b63d6da63489778ccd5f8d13ebdd527dd4b62730b2c616df5af7474d2d21\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a8d69576a9219d85c50816a18ad53a4d53cfcb27ed38b8cccc808dc2734b71b\",\"dweb:/ipfs/QmYVN3P4Q4REvBWJ97TbAcaxm3uyB2anV6NSGa6ZtSwcEv\"]},\"src/interfaces/common/IMigratableEntity.sol\":{\"keccak256\":\"0x8f5f2809f3afbe8ebfbb365dd7b57b4dd3b6f9943a6187eaf648d45895b8e3c4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ffe640537d539e7a4fde70d30d3e4c57f4ba9c2c25c450cea713aae38e8fd5c\",\"dweb:/ipfs/QmSUTGzvdcn1R1KB7tLThMRtESsfPbeXDhhhKWGtntzBds\"]},\"src/interfaces/common/IRegistry.sol\":{\"keccak256\":\"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014\",\"dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK\"]},\"src/interfaces/common/IStaticDelegateCallable.sol\":{\"keccak256\":\"0xa335d4e81b9071b7de66ef92b43ff20671d86516eb1be46fef29a3483cd3f5d5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d464b9db863c14c05547d2b23352f2e9b7b784799cf09f6bbc4906a2a74e3516\",\"dweb:/ipfs/QmUVWzFvJz7eEbDQKiFTTzwi7TEbjcs3VmwdM4kuptAKvi\"]},\"src/interfaces/delegator/IBaseDelegator.sol\":{\"keccak256\":\"0x96bb312f032e17accce3f8f80936d99468029d6b37c9ca74acdb4b026a0148ee\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2a66dcb5b7d1a6ef6a363431ea98ebd78bc4fdd3d7a134d9b542dc66e7d025c2\",\"dweb:/ipfs/QmRhTPLd2ZAyRHmJUFUcWKs9b3if49QY17LYZuRqWmghw8\"]},\"src/interfaces/delegator/IDelegatorHook.sol\":{\"keccak256\":\"0xc51aa8d7d1f6c8043ee819b7aeb86da0e993912e1442098df897e299f01f9f46\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://adddf5cb2ba282aeb576b26efb28640f865a1721cc9b6eee8b3ee0457a2c9780\",\"dweb:/ipfs/QmNYgAmnLRwWZbhTuQhZs9rx4zcme1df5mEepkrniorSoW\"]},\"src/interfaces/delegator/IOperatorNetworkSpecificDelegator.sol\":{\"keccak256\":\"0x74b95e64d29769202d45dd277bb830f623ff3d41ce77b80ce3ee4e318a5c71ec\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e512b903aae5c1b8a028c6e3f4f6223b5cb5d704503cfa6bd37b5346868f5c20\",\"dweb:/ipfs/QmZim9YExsPWtyxyeui993HTKAEmrg8MUcSkZ77Gp2JcuZ\"]},\"src/interfaces/service/IOptInService.sol\":{\"keccak256\":\"0x76fb5460a6d87a5705433d4fbeff7253cd75b8bbd0c888b2088f16e86ace146a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://990322019b3d11465f7024bae77ccbf7e2fe5d6fa3c754584778f37d04fa1337\",\"dweb:/ipfs/QmaSNHzcqxTkUCG9a4nqVfLECHLdjdrwAnDi3yDC7tDL24\"]},\"src/interfaces/vault/IVault.sol\":{\"keccak256\":\"0xffee01d383cd4e1a5530c614bf4360c1ef070c288abec9da1eb531b51bc07235\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://04f0046cac285d8ec44ebbb1f79dc94fab4495767190cad8364fbc1fafaadfb9\",\"dweb:/ipfs/QmUawAunwzXfCyShWfhKeThAgKtqe51hmrxvrXvM772M2R\"]},\"src/interfaces/vault/IVaultStorage.sol\":{\"keccak256\":\"0x592626f13754194f83047135de19229c49390bd59e34659b1bb38be71d973a22\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://06a6a9dfddd05e580b32bebe2cff4f63ba26a653180676d58225dd30d9c89d3e\",\"dweb:/ipfs/QmdgzBeY6Sxo8mGtyBxtv1tM1c2kU6J6zjeRd7vuXm4DU6\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.25+commit.b61c2a91"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"operatorRegistry","type":"address"},{"internalType":"address","name":"networkRegistry","type":"address"},{"internalType":"address","name":"vaultFactory","type":"address"},{"internalType":"address","name":"operatorVaultOptInService","type":"address"},{"internalType":"address","name":"operatorNetworkOptInService","type":"address"},{"internalType":"address","name":"delegatorFactory","type":"address"},{"internalType":"uint64","name":"entityType","type":"uint64"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"AccessControlBadConfirmation"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bytes32","name":"neededRole","type":"bytes32"}],"type":"error","name":"AccessControlUnauthorizedAccount"},{"inputs":[],"type":"error","name":"AlreadySet"},{"inputs":[],"type":"error","name":"CheckpointUnorderedInsertion"},{"inputs":[],"type":"error","name":"InsufficientHookGas"},{"inputs":[],"type":"error","name":"InvalidInitialization"},{"inputs":[],"type":"error","name":"InvalidNetwork"},{"inputs":[],"type":"error","name":"NotInitialized"},{"inputs":[],"type":"error","name":"NotInitializing"},{"inputs":[],"type":"error","name":"NotNetwork"},{"inputs":[],"type":"error","name":"NotOperator"},{"inputs":[],"type":"error","name":"NotSlasher"},{"inputs":[],"type":"error","name":"NotVault"},{"inputs":[],"type":"error","name":"ReentrancyGuardReentrantCall"},{"inputs":[{"internalType":"uint8","name":"bits","type":"uint8"},{"internalType":"uint256","name":"value","type":"uint256"}],"type":"error","name":"SafeCastOverflowedUintDowncast"},{"inputs":[{"internalType":"uint64","name":"version","type":"uint64","indexed":false}],"type":"event","name":"Initialized","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32","indexed":true},{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false},{"internalType":"uint48","name":"captureTimestamp","type":"uint48","indexed":false}],"type":"event","name":"OnSlash","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"bytes32","name":"previousAdminRole","type":"bytes32","indexed":true},{"internalType":"bytes32","name":"newAdminRole","type":"bytes32","indexed":true}],"type":"event","name":"RoleAdminChanged","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"address","name":"sender","type":"address","indexed":true}],"type":"event","name":"RoleGranted","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"address","name":"sender","type":"address","indexed":true}],"type":"event","name":"RoleRevoked","anonymous":false},{"inputs":[{"internalType":"address","name":"hook","type":"address","indexed":true}],"type":"event","name":"SetHook","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"SetMaxNetworkLimit","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"DEFAULT_ADMIN_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"FACTORY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"HOOK_GAS_LIMIT","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"HOOK_RESERVE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"HOOK_SET_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"NETWORK_REGISTRY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"OPERATOR_NETWORK_OPT_IN_SERVICE","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"OPERATOR_REGISTRY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"OPERATOR_VAULT_OPT_IN_SERVICE","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"TYPE","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"VAULT_FACTORY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"VERSION","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getRoleAdmin","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"grantRole"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"hasRole","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"hook","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"}],"stateMutability":"view","type":"function","name":"maxNetworkLimit","outputs":[{"internalType":"uint256","name":"value","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"uint48","name":"timestamp","type":"uint48"},{"internalType":"bytes","name":"hint","type":"bytes"}],"stateMutability":"view","type":"function","name":"maxNetworkLimitAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"network","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint48","name":"captureTimestamp","type":"uint48"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"onSlash"},{"inputs":[],"stateMutability":"view","type":"function","name":"operator","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"callerConfirmation","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"renounceRole"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"revokeRole"},{"inputs":[{"internalType":"address","name":"hook_","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setHook"},{"inputs":[{"internalType":"uint96","name":"identifier","type":"uint96"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setMaxNetworkLimit"},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"stake","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint48","name":"timestamp","type":"uint48"},{"internalType":"bytes","name":"hints","type":"bytes"}],"stateMutability":"view","type":"function","name":"stakeAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"staticDelegateCall"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"vault","outputs":[{"internalType":"address","name":"","type":"address"}]}],"devdoc":{"kind":"dev","methods":{"VERSION()":{"details":"Must return 1 for this one.","returns":{"_0":"version of the delegator"}},"getRoleAdmin(bytes32)":{"details":"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}."},"grantRole(bytes32,address)":{"details":"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event."},"hasRole(bytes32,address)":{"details":"Returns `true` if `account` has been granted `role`."},"initialize(bytes)":{"params":{"data":"some data to use"}},"maxNetworkLimitAt(bytes32,uint48,bytes)":{"params":{"hint":"hint for checkpoint index","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)","timestamp":"time point to get the maximum subnetwork limit at"},"returns":{"_0":"maximum limit of the subnetwork"}},"onSlash(bytes32,address,uint256,uint48,bytes)":{"details":"Only the vault's slasher can call this function.","params":{"amount":"amount of the collateral slashed","captureTimestamp":"time point when the stake was captured","data":"some additional data","operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"}},"renounceRole(bytes32,address)":{"details":"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `callerConfirmation`. May emit a {RoleRevoked} event."},"revokeRole(bytes32,address)":{"details":"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event."},"setHook(address)":{"details":"Only a HOOK_SET_ROLE holder can call this function. The hook can have arbitrary logic under certain functions, however, it doesn't affect the stake guarantees.","params":{"hook":"address of the hook"}},"setMaxNetworkLimit(uint96,uint256)":{"details":"Only a network can call this function.","params":{"amount":"new maximum subnetwork's limit"}},"stake(bytes32,address)":{"details":"Warning: this function is not safe to use for stake capturing, as it can change by the end of the block.","params":{"operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"},"returns":{"_0":"slashable stake until the end of the next epoch"}},"stakeAt(bytes32,address,uint48,bytes)":{"details":"Warning: it is not safe to use timestamp >= current one for the stake capturing, as it can change later.","params":{"hints":"hints for the checkpoints' indexes","operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)","timestamp":"time point to capture the stake at"},"returns":{"_0":"slashable stake at the given timestamp until the end of the consequent epoch"}},"staticDelegateCall(address,bytes)":{"details":"It allows to use this contract's storage on-chain.","params":{"data":"data to make a delegatecall with","target":"address of the contract to make a delegatecall to"}},"supportsInterface(bytes4)":{"details":"See {IERC165-supportsInterface}."}},"version":1},"userdoc":{"kind":"user","methods":{"FACTORY()":{"notice":"Get the factory's address."},"HOOK_GAS_LIMIT()":{"notice":"Get a gas limit for the hook."},"HOOK_RESERVE()":{"notice":"Get a reserve gas between the gas limit check and the hook's execution."},"HOOK_SET_ROLE()":{"notice":"Get a hook setter's role."},"NETWORK_REGISTRY()":{"notice":"Get the network registry's address."},"OPERATOR_NETWORK_OPT_IN_SERVICE()":{"notice":"Get the operator-network opt-in service's address."},"OPERATOR_REGISTRY()":{"notice":"Get the operator registry's address."},"OPERATOR_VAULT_OPT_IN_SERVICE()":{"notice":"Get the operator-vault opt-in service's address."},"TYPE()":{"notice":"Get the entity's type."},"VAULT_FACTORY()":{"notice":"Get the vault factory's address."},"VERSION()":{"notice":"Get a version of the delegator (different versions mean different interfaces)."},"hook()":{"notice":"Get the hook's address."},"initialize(bytes)":{"notice":"Initialize this entity contract by using a given data."},"maxNetworkLimit(bytes32)":{"notice":"Get a particular subnetwork's maximum limit (meaning the subnetwork is not ready to get more as a stake)."},"maxNetworkLimitAt(bytes32,uint48,bytes)":{"notice":"Get a particular subnetwork's maximum limit at a given timestamp using a hint (meaning the subnetwork is not ready to get more as a stake)."},"network()":{"notice":"Get a network the vault delegates funds to."},"onSlash(bytes32,address,uint256,uint48,bytes)":{"notice":"Called when a slash happens."},"operator()":{"notice":"Get an operator managing the vault's funds."},"setHook(address)":{"notice":"Set a new hook."},"setMaxNetworkLimit(uint96,uint256)":{"notice":"Set a maximum limit for a subnetwork (how much stake the subnetwork is ready to get). identifier identifier of the subnetwork"},"stake(bytes32,address)":{"notice":"Get a stake that a given subnetwork will be able to slash for a certain operator until the end of the next epoch (if no cross-slashing and no slashings by the subnetwork)."},"stakeAt(bytes32,address,uint48,bytes)":{"notice":"Get a stake that a given subnetwork could be able to slash for a certain operator at a given timestamp until the end of the consequent epoch using hints (if no cross-slashing and no slashings by the subnetwork)."},"staticDelegateCall(address,bytes)":{"notice":"Make a delegatecall from this contract to a given target contract with a particular data (always reverts with a return data)."},"vault()":{"notice":"Get the vault's address."}},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/contracts/delegator/OperatorNetworkSpecificDelegator.sol":"OperatorNetworkSpecificDelegator"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol":{"keccak256":"0x6662ec4e5cefca03eeadd073e9469df8d2944bb2ee8ec8f7622c2c46aab5f225","urls":["bzz-raw://4d8544c6f8daa4d1bc215c6a72fe0acdb748664a105b0e5efc19295667521d45","dweb:/ipfs/QmdGWqdnXT8S3RgCR6aV8XHZrsybieMQLLnug1NtpSjEXN"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b","urls":["bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609","dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol":{"keccak256":"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397","urls":["bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9","dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardUpgradeable.sol":{"keccak256":"0xb44e086e941292cdc7f440de51478493894ef0b1aeccb0c4047445919f667f74","urls":["bzz-raw://942dad22fbdc1669f025540ba63aa3ccfad5f8458fc5d4525b31ebf272e7af45","dweb:/ipfs/Qmdo4X2M82aM3AMoW2kf2jhYkSCyC4T1pHNd6obdsDFnAB"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol":{"keccak256":"0xdaba3f7c42c55b2896353f32bd27d4d5f8bae741b3b05d4c53f67abc4dc47ce8","urls":["bzz-raw://1fa2e61141c602510bcd2cd936ed9561922ac8772a9b9c9a9db091a74e354a45","dweb:/ipfs/QmcHQDDoEBwJmwUbzoVkytvJsBx3KVHYFFnDkvRGWh9Wmh"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol":{"keccak256":"0xb6b36edd6a2999fd243ff226d6cbf84bd71af2432bbd0dfe19392996a1d9cb41","urls":["bzz-raw://1fd2f35495652e57e3f99bc6c510bc5f7dd398a176ea2e72d8ed730aebc6ca26","dweb:/ipfs/QmTQV6X4gkikTib49cho5iDX3JvSQbdsoEChoDwrk3CbbH"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b","urls":["bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df","dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d","urls":["bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875","dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol":{"keccak256":"0xe19a4d5f31d2861e7344e8e535e2feafb913d806d3e2b5fe7782741a2a7094fe","urls":["bzz-raw://4aed79c0fa6f0546ed02f2f683e8f77f0fd2ed7eb34d8bbf3d373c9a6d95b13c","dweb:/ipfs/QmWqVz6UAVqmnWU5pqYPt1o6iDEZyPaBraAA3rKfTTSfYj"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/Checkpoints.sol":{"keccak256":"0xbdc5e074d7dd6678f67e92b1a51a20226801a407b0e1af3da367c5d1ff4519ad","urls":["bzz-raw://a36cca6b22fff3db16fc789ff6c60eea71d4b156065d4d0c83a0bc5e91a77a8b","dweb:/ipfs/QmYN3exd5AemxjBrN8XMB1p5LbbE16uC3sjbYjwi8AjcGR"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/types/Time.sol":{"keccak256":"0xc7755af115020049e4140f224f9ee88d7e1799ffb0646f37bf0df24bf6213f58","urls":["bzz-raw://7f09bf94d5274334ec021f61a04659db303f31e60460e14b709c9bf187740111","dweb:/ipfs/QmNvgomZYUwFAt4cZbPWAiTeSZQreGehY9BK5xyVJsUttb"],"license":"MIT"},"src/contracts/common/Entity.sol":{"keccak256":"0x3d61a932995b8443381f3950542d388223a2c26dd5d29a3274dea3baa7388bd7","urls":["bzz-raw://7cdf5f03ca72fd263fd32ff59c8d88ddca911ae83896a287d10772c1bbe9b138","dweb:/ipfs/QmbP84r5BWT1Rn9AYTntWSf3xUMTTCohTZJFhbBhDXFoHa"],"license":"BUSL-1.1"},"src/contracts/common/StaticDelegateCallable.sol":{"keccak256":"0x350029aa8955eacaffffaeb58babc5c98e80ebc5c5db388ed17ee6465f4a9d90","urls":["bzz-raw://eb392a8ee9050e0af606897df63e3404e3829e8b688b580663892f9664195764","dweb:/ipfs/QmaXC8jqV8UrrAFkzXTEv2fJF56sy33HhLxAzaRZmUxuXD"],"license":"BUSL-1.1"},"src/contracts/delegator/BaseDelegator.sol":{"keccak256":"0x7c54d491fdd4415b764a9c8defa068e56d4c0c8c9419be0053a1d377669290e8","urls":["bzz-raw://9238bfbad0f6eeb0dc7727724de14380f1980b395902269703d5e2ef07e52e10","dweb:/ipfs/QmPJn1V4HNXcEghYvogGuSTF24dSQUPosR5qtsXcmNqRm3"],"license":"BUSL-1.1"},"src/contracts/delegator/OperatorNetworkSpecificDelegator.sol":{"keccak256":"0x031a10722b9ec49048f0952710401131290adb87e71caf294e864e7ac3b98a16","urls":["bzz-raw://72428febc875134b2f29205e6f294634a1c22a7d5c78d6a9cb2f8196f107c9b5","dweb:/ipfs/QmTPwXR6h5oytckmkLrHdKeEMdphJxceDhYUR4zvQeWAwY"],"license":"BUSL-1.1"},"src/contracts/libraries/Checkpoints.sol":{"keccak256":"0xba90097c8bfe0a975499428b5f8ac5569483c7d92ccc28c12d70de416aae040c","urls":["bzz-raw://12f5d93ca94cd06d3147db68993165a58e17903ed53682560de61f3085ad4609","dweb:/ipfs/QmePiuAqvXprMLmFZkGZeGjvGPAvsEDHfCDv7BoQhXu9xE"],"license":"MIT"},"src/contracts/libraries/Subnetwork.sol":{"keccak256":"0xf5ef5506fd66082b3c2e7f3df37529f5a8efad32ac62e7c8914bd63219190bfe","urls":["bzz-raw://ba031a54ee0d0e9a270c2b9e18437f5668cfeb659cfd5fe0677459d7fcac2a56","dweb:/ipfs/QmReP3H7qQ78tAfgLnJKsNEQNCQfF1X1Get38Ffd4kzq32"],"license":"MIT"},"src/interfaces/common/IEntity.sol":{"keccak256":"0x8ef4b63d6da63489778ccd5f8d13ebdd527dd4b62730b2c616df5af7474d2d21","urls":["bzz-raw://5a8d69576a9219d85c50816a18ad53a4d53cfcb27ed38b8cccc808dc2734b71b","dweb:/ipfs/QmYVN3P4Q4REvBWJ97TbAcaxm3uyB2anV6NSGa6ZtSwcEv"],"license":"MIT"},"src/interfaces/common/IMigratableEntity.sol":{"keccak256":"0x8f5f2809f3afbe8ebfbb365dd7b57b4dd3b6f9943a6187eaf648d45895b8e3c4","urls":["bzz-raw://0ffe640537d539e7a4fde70d30d3e4c57f4ba9c2c25c450cea713aae38e8fd5c","dweb:/ipfs/QmSUTGzvdcn1R1KB7tLThMRtESsfPbeXDhhhKWGtntzBds"],"license":"MIT"},"src/interfaces/common/IRegistry.sol":{"keccak256":"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb","urls":["bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014","dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK"],"license":"MIT"},"src/interfaces/common/IStaticDelegateCallable.sol":{"keccak256":"0xa335d4e81b9071b7de66ef92b43ff20671d86516eb1be46fef29a3483cd3f5d5","urls":["bzz-raw://d464b9db863c14c05547d2b23352f2e9b7b784799cf09f6bbc4906a2a74e3516","dweb:/ipfs/QmUVWzFvJz7eEbDQKiFTTzwi7TEbjcs3VmwdM4kuptAKvi"],"license":"MIT"},"src/interfaces/delegator/IBaseDelegator.sol":{"keccak256":"0x96bb312f032e17accce3f8f80936d99468029d6b37c9ca74acdb4b026a0148ee","urls":["bzz-raw://2a66dcb5b7d1a6ef6a363431ea98ebd78bc4fdd3d7a134d9b542dc66e7d025c2","dweb:/ipfs/QmRhTPLd2ZAyRHmJUFUcWKs9b3if49QY17LYZuRqWmghw8"],"license":"MIT"},"src/interfaces/delegator/IDelegatorHook.sol":{"keccak256":"0xc51aa8d7d1f6c8043ee819b7aeb86da0e993912e1442098df897e299f01f9f46","urls":["bzz-raw://adddf5cb2ba282aeb576b26efb28640f865a1721cc9b6eee8b3ee0457a2c9780","dweb:/ipfs/QmNYgAmnLRwWZbhTuQhZs9rx4zcme1df5mEepkrniorSoW"],"license":"MIT"},"src/interfaces/delegator/IOperatorNetworkSpecificDelegator.sol":{"keccak256":"0x74b95e64d29769202d45dd277bb830f623ff3d41ce77b80ce3ee4e318a5c71ec","urls":["bzz-raw://e512b903aae5c1b8a028c6e3f4f6223b5cb5d704503cfa6bd37b5346868f5c20","dweb:/ipfs/QmZim9YExsPWtyxyeui993HTKAEmrg8MUcSkZ77Gp2JcuZ"],"license":"MIT"},"src/interfaces/service/IOptInService.sol":{"keccak256":"0x76fb5460a6d87a5705433d4fbeff7253cd75b8bbd0c888b2088f16e86ace146a","urls":["bzz-raw://990322019b3d11465f7024bae77ccbf7e2fe5d6fa3c754584778f37d04fa1337","dweb:/ipfs/QmaSNHzcqxTkUCG9a4nqVfLECHLdjdrwAnDi3yDC7tDL24"],"license":"MIT"},"src/interfaces/vault/IVault.sol":{"keccak256":"0xffee01d383cd4e1a5530c614bf4360c1ef070c288abec9da1eb531b51bc07235","urls":["bzz-raw://04f0046cac285d8ec44ebbb1f79dc94fab4495767190cad8364fbc1fafaadfb9","dweb:/ipfs/QmUawAunwzXfCyShWfhKeThAgKtqe51hmrxvrXvM772M2R"],"license":"MIT"},"src/interfaces/vault/IVaultStorage.sol":{"keccak256":"0x592626f13754194f83047135de19229c49390bd59e34659b1bb38be71d973a22","urls":["bzz-raw://06a6a9dfddd05e580b32bebe2cff4f63ba26a653180676d58225dd30d9c89d3e","dweb:/ipfs/QmdgzBeY6Sxo8mGtyBxtv1tM1c2kU6J6zjeRd7vuXm4DU6"],"license":"MIT"}},"version":1},"id":84} \ No newline at end of file +{"abi":[{"type":"constructor","inputs":[{"name":"operatorRegistry","type":"address","internalType":"address"},{"name":"networkRegistry","type":"address","internalType":"address"},{"name":"vaultFactory","type":"address","internalType":"address"},{"name":"operatorVaultOptInService","type":"address","internalType":"address"},{"name":"operatorNetworkOptInService","type":"address","internalType":"address"},{"name":"delegatorFactory","type":"address","internalType":"address"},{"name":"entityType","type":"uint64","internalType":"uint64"}],"stateMutability":"nonpayable"},{"type":"function","name":"DEFAULT_ADMIN_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"FACTORY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"HOOK_GAS_LIMIT","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"HOOK_RESERVE","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"HOOK_SET_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"NETWORK_REGISTRY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"OPERATOR_NETWORK_OPT_IN_SERVICE","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"OPERATOR_REGISTRY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"OPERATOR_VAULT_OPT_IN_SERVICE","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"TYPE","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"VAULT_FACTORY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"VERSION","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"pure"},{"type":"function","name":"getRoleAdmin","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"grantRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"hasRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"hook","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"initialize","inputs":[{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"maxNetworkLimit","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"value","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"maxNetworkLimitAt","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"timestamp","type":"uint48","internalType":"uint48"},{"name":"hint","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"network","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"onSlash","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"captureTimestamp","type":"uint48","internalType":"uint48"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"operator","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"renounceRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"callerConfirmation","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"revokeRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setHook","inputs":[{"name":"hook_","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setMaxNetworkLimit","inputs":[{"name":"identifier","type":"uint96","internalType":"uint96"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"stake","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"stakeAt","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"timestamp","type":"uint48","internalType":"uint48"},{"name":"hints","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"staticDelegateCall","inputs":[{"name":"target","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"vault","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"OnSlash","inputs":[{"name":"subnetwork","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"captureTimestamp","type":"uint48","indexed":false,"internalType":"uint48"}],"anonymous":false},{"type":"event","name":"RoleAdminChanged","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"previousAdminRole","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"newAdminRole","type":"bytes32","indexed":true,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"RoleGranted","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"sender","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"RoleRevoked","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"sender","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"SetHook","inputs":[{"name":"hook","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"SetMaxNetworkLimit","inputs":[{"name":"subnetwork","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"error","name":"AccessControlBadConfirmation","inputs":[]},{"type":"error","name":"AccessControlUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"neededRole","type":"bytes32","internalType":"bytes32"}]},{"type":"error","name":"AlreadySet","inputs":[]},{"type":"error","name":"CheckpointUnorderedInsertion","inputs":[]},{"type":"error","name":"InsufficientHookGas","inputs":[]},{"type":"error","name":"InvalidInitialization","inputs":[]},{"type":"error","name":"InvalidNetwork","inputs":[]},{"type":"error","name":"NotInitialized","inputs":[]},{"type":"error","name":"NotInitializing","inputs":[]},{"type":"error","name":"NotNetwork","inputs":[]},{"type":"error","name":"NotOperator","inputs":[]},{"type":"error","name":"NotSlasher","inputs":[]},{"type":"error","name":"NotVault","inputs":[]},{"type":"error","name":"ReentrancyGuardReentrantCall","inputs":[]},{"type":"error","name":"SafeCastOverflowedUintDowncast","inputs":[{"name":"bits","type":"uint8","internalType":"uint8"},{"name":"value","type":"uint256","internalType":"uint256"}]}],"bytecode":{"object":"0x610160346101c9576001600160401b0390601f6127c138819003918201601f191683019190848311848410176101cd578160e092859260409586528339810103126101c95761004d826101e1565b9061005a602084016101e1565b6100658285016101e1565b90610072606086016101e1565b9561007f608087016101e1565b9560c061008e60a083016101e1565b9101519180831683036101c9577ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a009081549060ff82891c166101b8578080831603610174575b50505060805260a05260c05260e05261010093845261012092835261014091825251916125cb93846101f68539608051846104fe015260a05184610bee015260c05184818161037d01528181610c270152612048015260e05184818161027301526119be0152518381816102b70152818161121001526113540152518281816102fb0152818161117701526113d2015251818181610a6e01526120c10152f35b6001600160401b0319909116811790915585519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a15f80806100d4565b875163f92ee8a960e01b8152600490fd5b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b51906001600160a01b03821682036101c95756fe60806040526004361015610011575f80fd5b5f3560e01c806301ffc9a714610204578063103f2907146101ff578063128e5d82146101fa5780631a80e500146101f557806323f752d5146101f0578063248a9ca3146101eb5780632dd31000146101e65780632f2ff15d146101e157806336568abe146101dc5780633dfd3873146101d7578063437224a3146101d2578063439fab91146101cd578063557cab44146101c8578063570ca735146101c35780636679191e146101be5780636739afca146101b95780637f5a7c7b146101b457806383ce0322146101af57806391d14854146101aa5780639f86fd85146101a5578063a217fddf146101a0578063bb24fe8a1461019b578063c0cd7c3e14610196578063d15b740e14610191578063d547741f1461018c578063e02f693714610187578063e49561ee14610182578063fbfa77cf1461017d578063fd4d447c14610178578063ff54740f146101735763ffa1ad741461016e575f80fd5b610f84565b610f67565b610f3d565b610f16565b610d2b565b610ccc565b610c80565b610c56565b610c12565b610bcf565b610bb5565b610afb565b610a9d565b610a59565b610a31565b610a09565b6109cf565b6109a7565b61098b565b610853565b6107c3565b6105d5565b61058a565b61053e565b6104e9565b6104b0565b61032a565b6102e6565b6102a2565b61025e565b3461025a57602036600319011261025a5760043563ffffffff60e01b811680910361025a57602090637965db0b60e01b8114908115610249575b506040519015158152f35b6301ffc9a760e01b1490505f61023e565b5f80fd5b3461025a575f36600319011261025a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461025a575f36600319011261025a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461025a575f36600319011261025a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461025a57604036600319011261025a576004356001600160601b038116810361025a576024359061035a611447565b6040516302910f8b60e31b81523360048201526020816024816001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165afa9081156104ab575f9161047c575b501561046a576001600160601b03166bffffffffffffffffffffffff193360601b161790806103e4835f52600260205260405f2090565b54146104585761043d817fc67e7929681aa1bccd63f52b3799bf5805f3009f197db6fdf584b14f7fbf608c92610422855f52600260205260405f2090565b5561042d8185611476565b6040519081529081906020820190565b0390a261045660015f8051602061255683398151915255565b005b60405163a741a04560e01b8152600490fd5b6040516323d53b9760e21b8152600490fd5b61049e915060203d6020116104a4575b6104968183610732565b810190610f9f565b5f6103ad565b503d61048c565b610fb7565b3461025a57602036600319011261025a576004355f525f805160206125368339815191526020526020600160405f200154604051908152f35b3461025a575f36600319011261025a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b6001600160a01b0381160361025a57565b3461025a57604036600319011261025a576104566024356004356105618261052d565b805f525f80516020612536833981519152602052610585600160405f2001546115b8565b611769565b3461025a57604036600319011261025a576024356105a78161052d565b336001600160a01b038216036105c3576104569060043561179f565b60405163334bd91960e11b8152600490fd5b3461025a57602036600319011261025a576004356105f28161052d565b6105fa611447565b335f9081527f9ebbcbe0d2961d3fbe56ca6f679bc753bd848d3e6bb3eaf9041c51b286881d2c60205260409020547fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c9060ff16156106b057506001546001600160a01b039182169181168214610458576001600160a01b03191681176001557f5bbb1d3ebb6a3ad2a0f17ff35e579a83af60604d1d3c2a4c83c62adecadf666d5f80a260015f8051602061255683398151915255005b6044906040519063e2517d3f60e01b82523360048301526024820152fd5b6064359065ffffffffffff8216820361025a57565b634e487b7160e01b5f52604160045260245ffd5b604081019081106001600160401b0382111761071257604052565b6106e3565b606081019081106001600160401b0382111761071257604052565b90601f801991011681019081106001600160401b0382111761071257604052565b60405190610760826106f7565b565b6001600160401b03811161071257601f01601f191660200190565b81601f8201121561025a5780359061079482610762565b926107a26040519485610732565b8284526020838301011161025a57815f926020809301838601378301015290565b3461025a57606036600319011261025a5760243565ffffffffffff8116810361025a576044356001600160401b03811161025a5760209161080b61081e92369060040161077d565b906004355f526003845260405f20611870565b604051908152f35b9181601f8401121561025a578235916001600160401b03831161025a576020838186019501011161025a57565b3461025a57602036600319011261025a576001600160401b0360043581811161025a57610884903690600401610826565b5f80516020612576833981519152549260ff8460401c1615931680159081610983575b6001149081610979575b159081610970575b5061095e575f80516020612576833981519152805467ffffffffffffffff191660011790556108ec918361093a57611989565b6108f257005b5f80516020612576833981519152805460ff60401b19169055604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a1005b5f80516020612576833981519152805460ff60401b1916600160401b179055611989565b60405163f92ee8a960e01b8152600490fd5b9050155f6108b9565b303b1591506108b1565b8491506108a7565b3461025a575f36600319011261025a576020604051614e208152f35b3461025a575f36600319011261025a576005546040516001600160a01b039091168152602090f35b3461025a575f36600319011261025a5760206040517fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c8152f35b3461025a575f36600319011261025a576004546040516001600160a01b039091168152602090f35b3461025a575f36600319011261025a576001546040516001600160a01b039091168152602090f35b3461025a575f36600319011261025a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461025a57604036600319011261025a57602060ff610aef602435610ac18161052d565b6004355f525f80516020612536833981519152845260405f209060018060a01b03165f5260205260405f2090565b54166040519015158152f35b3461025a5760408060031936011261025a57600435610b198161052d565b602435906001600160401b03821161025a575f8091610b3f610ba3943690600401610826565b908187519283928337810184815203915af43d15610bab57610b953d610b6481610762565b90610b7186519283610732565b81523d5f602083013e5b845194859315156020850152808401526060830190610fdb565b03601f198101835282610732565b805190602001fd5b610b956060610b7b565b3461025a575f36600319011261025a5760206040515f8152f35b3461025a575f36600319011261025a5760206040516001600160401b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461025a575f36600319011261025a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461025a57602036600319011261025a576004355f526002602052602060405f2054604051908152f35b3461025a57604036600319011261025a57610456602435600435610ca38261052d565b805f525f80516020612536833981519152602052610cc7600160405f2001546115b8565b61179f565b3461025a57608036600319011261025a57602435610ce98161052d565b6044359065ffffffffffff8216820361025a57606435906001600160401b03821161025a57602092610d2261081e93369060040161077d565b91600435611101565b3461025a5760a036600319011261025a57602435600435610d4b8261052d565b60443591610d576106ce565b90608435906001600160401b03821161025a57610d796004923690840161077d565b610d81611447565b5f54602090610da690610d9a906001600160a01b031681565b6001600160a01b031690565b60405163b134427160e01b815294859182905afa9283156104ab575f93610ee5575b506001600160a01b039283163303610ed3576001546001600160a01b0316838116610e48575b50506040805195865265ffffffffffff909316602086015216927f741a5de99085c0d660f3e4192217b0ffb0ea4e35a0480de48e857a4bc3ee36ed91819081015b0390a361045660015f8051602061255683398151915255565b909360405194610e7f86610e71602082019363724ab0f760e11b8552858c898d602487016112a0565b03601f198101885287610732565b62042e305a10610ec1575f610e2f938192827f741a5de99085c0d660f3e4192217b0ffb0ea4e35a0480de48e857a4bc3ee36ed9951926203d090f15093610dee565b604051638072475160e01b8152600490fd5b60405163dabc4ad960e01b8152600490fd5b610f0891935060203d602011610f0f575b610f008183610732565b81019061128b565b915f610dc8565b503d610ef6565b3461025a575f36600319011261025a575f546040516001600160a01b039091168152602090f35b3461025a57604036600319011261025a57602061081e602435610f5f8161052d565b60043561131d565b3461025a575f36600319011261025a5760206040516203d0908152f35b3461025a575f36600319011261025a57602060405160018152f35b9081602091031261025a5751801515810361025a5790565b6040513d5f823e3d90fd5b90610fd892915f52600360205260405f20611870565b90565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b6040519061100c826106f7565b60606020838281520152565b81601f8201121561025a5780519061102f82610762565b9261103d6040519485610732565b8284526020838301011161025a57815f9260208093018386015e8301015290565b9060208282031261025a5781516001600160401b039283821161025a57019060408282031261025a5760405192611094846106f7565b825181811161025a57826110a9918501611018565b8452602083015190811161025a576110c19201611018565b602082015290565b6001600160a01b0391821681529116602082015265ffffffffffff9091166040820152608060608201819052610fd892910190610fdb565b9261111190929192828486611b9c565b92909361111c610fff565b9380518061126f575b505084159384156111d9575b8415611148575b505050506111435790565b505f90565b602080949550611173910151604051958694859463530e1d4360e01b865260601c90600486016110c9565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa9081156104ab575f916111ba575b50155f808080611138565b6111d3915060203d6020116104a4576104968183610732565b5f6111af565b5f549094506001600160a01b031660208486519261120c604051948593849363530e1d4360e01b855289600486016110c9565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa9081156104ab575f91611250575b501593611131565b611269915060203d6020116104a4576104968183610732565b5f611248565b61128392955060208091830101910161105e565b925f80611125565b9081602091031261025a5751610fd88161052d565b919360a093610fd8969565ffffffffffff938552600180871b0316602085015260408401521660608201528160808201520190610fdb565b634e487b7160e01b5f52601160045260245ffd5b81156112f6570490565b634e487b7160e01b5f52601260045260245ffd5b906001820180921161131857565b6112d8565b5f546040516308834cb560e21b8082526001600160a01b0385811660048401529283166024830152929392602092909183816044817f000000000000000000000000000000000000000000000000000000000000000086165afa9081156104ab575f9161142a575b50159182156113a6575b505090506113a057610fd891611cbb565b50505f90565b6040519081526001600160a01b0385166004820152606086901c602482015291508290829060449082907f0000000000000000000000000000000000000000000000000000000000000000165afa9182156104ab575f9261140d575b505015805f8061138f565b6114239250803d106104a4576104968183610732565b5f80611402565b6114419150843d86116104a4576104968183610732565b5f611385565b5f8051602061255683398151915260028154146114645760029055565b604051633ee5aeb560e01b8152600490fd5b6004546001600160a01b0316606082901c036115a6575f52600360205260405f209065ffffffffffff9182421161158757824216926001820191825415611579575b6114c1816121ac565b509590845493835480155f1461155a57505f975b6001600160d01b0398808a1615611554576114f09088611d7d565b50505b82611548575b50501561153257505061076093509061151461151a9261184d565b90611d7d565b90919082549060031b91821b915f19901b1916179055565b61076095611541931691612284565b5050611dd3565b16821490505f806114f9565b506114f3565b5f1990808281011161131857855f5260205f2001015460301c976114d5565b61158283611da6565b6114b8565b6040516306dfcc6560e41b815260306004820152426024820152604490fd5b6040516386eab41b60e01b8152600490fd5b5f8181525f805160206125368339815191526020908152604080832033845290915290205460ff16156106b05750565b6001600160a01b0381165f9081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d60205260409020545f805160206125368339815191529060ff166113a0575f808052602091825260408082206001600160a01b038516835290925220805460ff1916600117905533906001600160a01b03165f7f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d8180a4600190565b6001600160a01b0381165f9081527f9ebbcbe0d2961d3fbe56ca6f679bc753bd848d3e6bb3eaf9041c51b286881d2c602052604090207fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c905f805160206125368339815191529060ff905b5416611762575f828152602091825260408082206001600160a01b038616835290925220805460ff1916600117905533916001600160a01b0316907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d5f80a4600190565b5050505f90565b5f8181525f80516020612536833981519152602081815260408084206001600160a01b038716855290915290912060ff906116fe565b5f8181525f80516020612536833981519152602081815260408084206001600160a01b03871685529091529091205460ff1615611762575f828152602091825260408082206001600160a01b038616835290925220805460ff1916905533916001600160a01b0316907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b5f80a4600190565b9081602091031261025a575163ffffffff8116810361025a5790565b5f1981019190821161131857565b90600163ffffffff8093160191821161131857565b91805115611949578060208061188b93518301019101611831565b916118968382611ed0565b926118a7845165ffffffffffff1690565b9065ffffffffffff808516921682811461193d57821191826118dd575b50506118d457610fd89250611df6565b50506020015190565b9091506118ea835461184d565b63ffffffff831614918215611903575b50505f806118c4565b61193591925061191e61191861192a9261185b565b85611ed0565b5165ffffffffffff1690565b65ffffffffffff1690565b115f806118fa565b50505050506020015190565b50610fd891611df6565b91909160408184031261025a57803561196b8161052d565b9260208201356001600160401b03811161025a57610fd8920161077d565b61199591810190611953565b6040516302910f8b60e31b81526001600160a01b039283166004820181905291906020816024817f000000000000000000000000000000000000000000000000000000000000000088165afa9081156104ab575f91611aa8575b5015611a9657611a2a604091611a25611a7094611a0a611f38565b60018060a01b03166001600160601b0360a01b5f5416175f55565b611ffb565b6020810151600180546001600160a01b0319166001600160a01b0390921691909117905580516001600160a01b0316848116611a86575b5001516001600160a01b031690565b908116611a7a5750565b611a8390611693565b50565b611a8f906115e8565b505f611a61565b6040516362df054560e01b8152600490fd5b611ac1915060203d6020116104a4576104968183610732565b5f6119ef565b60405190611ad482610717565b60606040838281528260208201520152565b9060208282031261025a5781516001600160401b039283821161025a57019060608282031261025a5760405192611b1c84610717565b825181811161025a5782611b31918501611018565b8452602083015181811161025a5782611b4b918501611018565b6020850152604083015190811161025a57611b669201611018565b604082015290565b9081602091031261025a575190565b60409065ffffffffffff610fd894931681528160208201520190610fdb565b90939293611ba8611ac7565b94805180611c9f575b5050600454606083901c6001600160a01b03918216148015929190611c84575b5050611c7c575f54611c17929190602090611bf690610d9a906001600160a01b031681565b8187015190604051808097819463810da75d60e01b83528860048401611b7d565b03915afa9081156104ab57611c44935f92611c49575b50611c3e9192604087015191610fc2565b90612176565b915190565b611c3e9250611c6f9060203d602011611c75575b611c678183610732565b810190611b6e565b91611c2d565b503d611c5d565b505090515f91565b60055481166001600160a01b03169116141590505f80611bd1565b611cb3929650602080918301019101611ae6565b935f80611bb1565b6004549091606083901c6001600160a01b039283161480159290611d62575b5050611143575f5460049190602090611cfd90610d9a906001600160a01b031681565b60405163bd49c35f60e01b815293849182905afa9081156104ab57610fd8925f92611d3d575b50611d36905f52600260205260405f2090565b5490612176565b611d36919250611d5b9060203d602011611c7557611c678183610732565b9190611d23565b60055481166001600160a01b03169116141590505f80611cda565b8054821015611d92575f5260205f2001905f90565b634e487b7160e01b5f52603260045260245ffd5b8054600160401b81101561071257611dc391600182018155611d7d565b8154905f199060031b1b19169055565b90815491600160401b831015610712578261151a91600161076095018155611d7d565b908154905f829160058411611e6a575b611e119350846124d6565b80611e4357505f905b6001600160d01b038216156113a057610fd8916001611e399201611d7d565b90549060031b1c90565b611e5d611e52611e649261184d565b835f5260205f200190565b5460301c90565b90611e1a565b9192611e75816123a3565b810390811161131857611e1193855f5265ffffffffffff808360205f20015416908516105f14611ea6575091611e06565b929150611eb29061130a565b90611e06565b60405190611ec5826106f7565b5f6020838281520152565b90611ef9611ef3611f1a92611ee3611eb8565b50611eec611eb8565b5084611d7d565b50612188565b91600165ffffffffffff845116936020828060d01b03910151169101611d7d565b90549060405192611f2a846106f7565b835260031b1c602082015290565b611f406121fb565b611f486121fb565b60015f8051602061255683398151915255565b60405190611f6882610717565b5f6040838281528260208201520152565b8091039060a0821261025a57606060405192611f9484610717565b1261025a57608090604051611fa881610717565b8151611fb38161052d565b81526020820151611fc38161052d565b60208201526040820151611fd68161052d565b604082015283526060810151611feb8161052d565b60208401520151611b668161052d565b612003611f5b565b5061201981519160208080948301019101611f79565b80820180516040516302910f8b60e31b8082526001600160a01b039283166004830152939491939082816024817f000000000000000000000000000000000000000000000000000000000000000089165afa9081156104ab575f91612159575b501561046a57816120bd916040870195612099875160018060a01b031690565b6040519283526001600160a01b031660048301529092839190829081906024820190565b03917f0000000000000000000000000000000000000000000000000000000000000000165afa9182156104ab575f9261213c575b50501561212a5751600480546001600160a01b039283166001600160a01b03199182161790915591516005805490931691161790555190565b604051631f0853c160e21b8152600490fd5b6121529250803d106104a4576104968183610732565b5f806120f1565b6121709150833d85116104a4576104968183610732565b5f612079565b9080821015612183575090565b905090565b90604051612195816106f7565b915465ffffffffffff8116835260301c6020830152565b8054806121bd5750505f905f905f90565b5f19908082810111611318576121da925f5260205f200101612188565b9065ffffffffffff82511691602060018060d01b0391015116906001929190565b60ff5f805160206125768339815191525460401c161561221757565b604051631afcd79f60e31b8152600490fd5b8054600160401b8110156107125761224691600182018155611d7d565b61227157815160209092015160301b65ffffffffffff191665ffffffffffff92909216919091179055565b634e487b7160e01b5f525f60045260245ffd5b80549293929190821561237a576122a56122a0611e528561184d565b612188565b906122b6825165ffffffffffff1690565b65ffffffffffff848116911681106123685761232c9460209488926122e461192a875165ffffffffffff1690565b03612330575061231e926122fa6123059261184d565b905f5260205f200190565b9065ffffffffffff82549181199060301b169116179055565b01516001600160d01b031690565b9190565b91505061236391612350612342610753565b65ffffffffffff9093168352565b6001600160d01b03881682860152612229565b61231e565b604051632520601d60e01b8152600490fd5b61239e925061238a612342610753565b6001600160d01b0385166020830152612229565b5f9190565b80156111435780611c3e61246e61246461245a61245061244661243c6124326001610fd89a5f908b60801c806124ca575b508060401c806124bd575b508060201c806124b0575b508060101c806124a3575b508060081c80612496575b508060041c80612489575b508060021c8061247c575b50821c612475575b811c1b61242b818b6112ec565b0160011c90565b61242b818a6112ec565b61242b81896112ec565b61242b81886112ec565b61242b81876112ec565b61242b81866112ec565b61242b81856112ec565b80926112ec565b810161241e565b600291509101905f612416565b600491509101905f61240b565b600891509101905f612400565b601091509101905f6123f5565b602091509101905f6123ea565b604091509101905f6123df565b9150506080905f6123d4565b91905b8382106124e65750505090565b9091928083169080841860011c820180921161131857845f5265ffffffffffff808360205f20015416908416105f146125235750925b91906124d9565b93925061252f9061130a565b9161251c56fe02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268009b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a2646970667358221220dae242242ae38bf129200c0400461c817fd7d45e08b63cbee29f0e840f1e00d864736f6c63430008190033","sourceMap":"681:3264:79:-:0;;;;-1:-1:-1;;;;;681:3264:79;;;;;;;;;;-1:-1:-1;;681:3264:79;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;8837:64:25;681:3264:79;;;;;;;;;7896:76:25;;681:3264:79;;;;7985:34:25;7981:146;;-1:-1:-1;525:17:69;;;681:3264:79;525:17:69;681:3264:79;552:12:69;681:3264:79;2360:34:76;681:3264:79;2404:28:76;2442:57;;;;2509:61;;;;1796:36:79;;;;681:3264;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7981:146:25;-1:-1:-1;;;;;;681:3264:79;;;;;;;;;;;;;8087:29:25;;681:3264:79;;8087:29:25;7981:146;;;;;7896:76;681:3264:79;;-1:-1:-1;;;7938:23:25;;;;;681:3264:79;-1:-1:-1;681:3264:79;;;;;;-1:-1:-1;681:3264:79;;;;;-1:-1:-1;681:3264:79;;;;-1:-1:-1;;;;;681:3264:79;;;;;;:::o","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361015610011575f80fd5b5f3560e01c806301ffc9a714610204578063103f2907146101ff578063128e5d82146101fa5780631a80e500146101f557806323f752d5146101f0578063248a9ca3146101eb5780632dd31000146101e65780632f2ff15d146101e157806336568abe146101dc5780633dfd3873146101d7578063437224a3146101d2578063439fab91146101cd578063557cab44146101c8578063570ca735146101c35780636679191e146101be5780636739afca146101b95780637f5a7c7b146101b457806383ce0322146101af57806391d14854146101aa5780639f86fd85146101a5578063a217fddf146101a0578063bb24fe8a1461019b578063c0cd7c3e14610196578063d15b740e14610191578063d547741f1461018c578063e02f693714610187578063e49561ee14610182578063fbfa77cf1461017d578063fd4d447c14610178578063ff54740f146101735763ffa1ad741461016e575f80fd5b610f84565b610f67565b610f3d565b610f16565b610d2b565b610ccc565b610c80565b610c56565b610c12565b610bcf565b610bb5565b610afb565b610a9d565b610a59565b610a31565b610a09565b6109cf565b6109a7565b61098b565b610853565b6107c3565b6105d5565b61058a565b61053e565b6104e9565b6104b0565b61032a565b6102e6565b6102a2565b61025e565b3461025a57602036600319011261025a5760043563ffffffff60e01b811680910361025a57602090637965db0b60e01b8114908115610249575b506040519015158152f35b6301ffc9a760e01b1490505f61023e565b5f80fd5b3461025a575f36600319011261025a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461025a575f36600319011261025a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461025a575f36600319011261025a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461025a57604036600319011261025a576004356001600160601b038116810361025a576024359061035a611447565b6040516302910f8b60e31b81523360048201526020816024816001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165afa9081156104ab575f9161047c575b501561046a576001600160601b03166bffffffffffffffffffffffff193360601b161790806103e4835f52600260205260405f2090565b54146104585761043d817fc67e7929681aa1bccd63f52b3799bf5805f3009f197db6fdf584b14f7fbf608c92610422855f52600260205260405f2090565b5561042d8185611476565b6040519081529081906020820190565b0390a261045660015f8051602061255683398151915255565b005b60405163a741a04560e01b8152600490fd5b6040516323d53b9760e21b8152600490fd5b61049e915060203d6020116104a4575b6104968183610732565b810190610f9f565b5f6103ad565b503d61048c565b610fb7565b3461025a57602036600319011261025a576004355f525f805160206125368339815191526020526020600160405f200154604051908152f35b3461025a575f36600319011261025a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b6001600160a01b0381160361025a57565b3461025a57604036600319011261025a576104566024356004356105618261052d565b805f525f80516020612536833981519152602052610585600160405f2001546115b8565b611769565b3461025a57604036600319011261025a576024356105a78161052d565b336001600160a01b038216036105c3576104569060043561179f565b60405163334bd91960e11b8152600490fd5b3461025a57602036600319011261025a576004356105f28161052d565b6105fa611447565b335f9081527f9ebbcbe0d2961d3fbe56ca6f679bc753bd848d3e6bb3eaf9041c51b286881d2c60205260409020547fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c9060ff16156106b057506001546001600160a01b039182169181168214610458576001600160a01b03191681176001557f5bbb1d3ebb6a3ad2a0f17ff35e579a83af60604d1d3c2a4c83c62adecadf666d5f80a260015f8051602061255683398151915255005b6044906040519063e2517d3f60e01b82523360048301526024820152fd5b6064359065ffffffffffff8216820361025a57565b634e487b7160e01b5f52604160045260245ffd5b604081019081106001600160401b0382111761071257604052565b6106e3565b606081019081106001600160401b0382111761071257604052565b90601f801991011681019081106001600160401b0382111761071257604052565b60405190610760826106f7565b565b6001600160401b03811161071257601f01601f191660200190565b81601f8201121561025a5780359061079482610762565b926107a26040519485610732565b8284526020838301011161025a57815f926020809301838601378301015290565b3461025a57606036600319011261025a5760243565ffffffffffff8116810361025a576044356001600160401b03811161025a5760209161080b61081e92369060040161077d565b906004355f526003845260405f20611870565b604051908152f35b9181601f8401121561025a578235916001600160401b03831161025a576020838186019501011161025a57565b3461025a57602036600319011261025a576001600160401b0360043581811161025a57610884903690600401610826565b5f80516020612576833981519152549260ff8460401c1615931680159081610983575b6001149081610979575b159081610970575b5061095e575f80516020612576833981519152805467ffffffffffffffff191660011790556108ec918361093a57611989565b6108f257005b5f80516020612576833981519152805460ff60401b19169055604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a1005b5f80516020612576833981519152805460ff60401b1916600160401b179055611989565b60405163f92ee8a960e01b8152600490fd5b9050155f6108b9565b303b1591506108b1565b8491506108a7565b3461025a575f36600319011261025a576020604051614e208152f35b3461025a575f36600319011261025a576005546040516001600160a01b039091168152602090f35b3461025a575f36600319011261025a5760206040517fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c8152f35b3461025a575f36600319011261025a576004546040516001600160a01b039091168152602090f35b3461025a575f36600319011261025a576001546040516001600160a01b039091168152602090f35b3461025a575f36600319011261025a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461025a57604036600319011261025a57602060ff610aef602435610ac18161052d565b6004355f525f80516020612536833981519152845260405f209060018060a01b03165f5260205260405f2090565b54166040519015158152f35b3461025a5760408060031936011261025a57600435610b198161052d565b602435906001600160401b03821161025a575f8091610b3f610ba3943690600401610826565b908187519283928337810184815203915af43d15610bab57610b953d610b6481610762565b90610b7186519283610732565b81523d5f602083013e5b845194859315156020850152808401526060830190610fdb565b03601f198101835282610732565b805190602001fd5b610b956060610b7b565b3461025a575f36600319011261025a5760206040515f8152f35b3461025a575f36600319011261025a5760206040516001600160401b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461025a575f36600319011261025a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461025a57602036600319011261025a576004355f526002602052602060405f2054604051908152f35b3461025a57604036600319011261025a57610456602435600435610ca38261052d565b805f525f80516020612536833981519152602052610cc7600160405f2001546115b8565b61179f565b3461025a57608036600319011261025a57602435610ce98161052d565b6044359065ffffffffffff8216820361025a57606435906001600160401b03821161025a57602092610d2261081e93369060040161077d565b91600435611101565b3461025a5760a036600319011261025a57602435600435610d4b8261052d565b60443591610d576106ce565b90608435906001600160401b03821161025a57610d796004923690840161077d565b610d81611447565b5f54602090610da690610d9a906001600160a01b031681565b6001600160a01b031690565b60405163b134427160e01b815294859182905afa9283156104ab575f93610ee5575b506001600160a01b039283163303610ed3576001546001600160a01b0316838116610e48575b50506040805195865265ffffffffffff909316602086015216927f741a5de99085c0d660f3e4192217b0ffb0ea4e35a0480de48e857a4bc3ee36ed91819081015b0390a361045660015f8051602061255683398151915255565b909360405194610e7f86610e71602082019363724ab0f760e11b8552858c898d602487016112a0565b03601f198101885287610732565b62042e305a10610ec1575f610e2f938192827f741a5de99085c0d660f3e4192217b0ffb0ea4e35a0480de48e857a4bc3ee36ed9951926203d090f15093610dee565b604051638072475160e01b8152600490fd5b60405163dabc4ad960e01b8152600490fd5b610f0891935060203d602011610f0f575b610f008183610732565b81019061128b565b915f610dc8565b503d610ef6565b3461025a575f36600319011261025a575f546040516001600160a01b039091168152602090f35b3461025a57604036600319011261025a57602061081e602435610f5f8161052d565b60043561131d565b3461025a575f36600319011261025a5760206040516203d0908152f35b3461025a575f36600319011261025a57602060405160018152f35b9081602091031261025a5751801515810361025a5790565b6040513d5f823e3d90fd5b90610fd892915f52600360205260405f20611870565b90565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b6040519061100c826106f7565b60606020838281520152565b81601f8201121561025a5780519061102f82610762565b9261103d6040519485610732565b8284526020838301011161025a57815f9260208093018386015e8301015290565b9060208282031261025a5781516001600160401b039283821161025a57019060408282031261025a5760405192611094846106f7565b825181811161025a57826110a9918501611018565b8452602083015190811161025a576110c19201611018565b602082015290565b6001600160a01b0391821681529116602082015265ffffffffffff9091166040820152608060608201819052610fd892910190610fdb565b9261111190929192828486611b9c565b92909361111c610fff565b9380518061126f575b505084159384156111d9575b8415611148575b505050506111435790565b505f90565b602080949550611173910151604051958694859463530e1d4360e01b865260601c90600486016110c9565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa9081156104ab575f916111ba575b50155f808080611138565b6111d3915060203d6020116104a4576104968183610732565b5f6111af565b5f549094506001600160a01b031660208486519261120c604051948593849363530e1d4360e01b855289600486016110c9565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa9081156104ab575f91611250575b501593611131565b611269915060203d6020116104a4576104968183610732565b5f611248565b61128392955060208091830101910161105e565b925f80611125565b9081602091031261025a5751610fd88161052d565b919360a093610fd8969565ffffffffffff938552600180871b0316602085015260408401521660608201528160808201520190610fdb565b634e487b7160e01b5f52601160045260245ffd5b81156112f6570490565b634e487b7160e01b5f52601260045260245ffd5b906001820180921161131857565b6112d8565b5f546040516308834cb560e21b8082526001600160a01b0385811660048401529283166024830152929392602092909183816044817f000000000000000000000000000000000000000000000000000000000000000086165afa9081156104ab575f9161142a575b50159182156113a6575b505090506113a057610fd891611cbb565b50505f90565b6040519081526001600160a01b0385166004820152606086901c602482015291508290829060449082907f0000000000000000000000000000000000000000000000000000000000000000165afa9182156104ab575f9261140d575b505015805f8061138f565b6114239250803d106104a4576104968183610732565b5f80611402565b6114419150843d86116104a4576104968183610732565b5f611385565b5f8051602061255683398151915260028154146114645760029055565b604051633ee5aeb560e01b8152600490fd5b6004546001600160a01b0316606082901c036115a6575f52600360205260405f209065ffffffffffff9182421161158757824216926001820191825415611579575b6114c1816121ac565b509590845493835480155f1461155a57505f975b6001600160d01b0398808a1615611554576114f09088611d7d565b50505b82611548575b50501561153257505061076093509061151461151a9261184d565b90611d7d565b90919082549060031b91821b915f19901b1916179055565b61076095611541931691612284565b5050611dd3565b16821490505f806114f9565b506114f3565b5f1990808281011161131857855f5260205f2001015460301c976114d5565b61158283611da6565b6114b8565b6040516306dfcc6560e41b815260306004820152426024820152604490fd5b6040516386eab41b60e01b8152600490fd5b5f8181525f805160206125368339815191526020908152604080832033845290915290205460ff16156106b05750565b6001600160a01b0381165f9081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d60205260409020545f805160206125368339815191529060ff166113a0575f808052602091825260408082206001600160a01b038516835290925220805460ff1916600117905533906001600160a01b03165f7f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d8180a4600190565b6001600160a01b0381165f9081527f9ebbcbe0d2961d3fbe56ca6f679bc753bd848d3e6bb3eaf9041c51b286881d2c602052604090207fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c905f805160206125368339815191529060ff905b5416611762575f828152602091825260408082206001600160a01b038616835290925220805460ff1916600117905533916001600160a01b0316907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d5f80a4600190565b5050505f90565b5f8181525f80516020612536833981519152602081815260408084206001600160a01b038716855290915290912060ff906116fe565b5f8181525f80516020612536833981519152602081815260408084206001600160a01b03871685529091529091205460ff1615611762575f828152602091825260408082206001600160a01b038616835290925220805460ff1916905533916001600160a01b0316907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b5f80a4600190565b9081602091031261025a575163ffffffff8116810361025a5790565b5f1981019190821161131857565b90600163ffffffff8093160191821161131857565b91805115611949578060208061188b93518301019101611831565b916118968382611ed0565b926118a7845165ffffffffffff1690565b9065ffffffffffff808516921682811461193d57821191826118dd575b50506118d457610fd89250611df6565b50506020015190565b9091506118ea835461184d565b63ffffffff831614918215611903575b50505f806118c4565b61193591925061191e61191861192a9261185b565b85611ed0565b5165ffffffffffff1690565b65ffffffffffff1690565b115f806118fa565b50505050506020015190565b50610fd891611df6565b91909160408184031261025a57803561196b8161052d565b9260208201356001600160401b03811161025a57610fd8920161077d565b61199591810190611953565b6040516302910f8b60e31b81526001600160a01b039283166004820181905291906020816024817f000000000000000000000000000000000000000000000000000000000000000088165afa9081156104ab575f91611aa8575b5015611a9657611a2a604091611a25611a7094611a0a611f38565b60018060a01b03166001600160601b0360a01b5f5416175f55565b611ffb565b6020810151600180546001600160a01b0319166001600160a01b0390921691909117905580516001600160a01b0316848116611a86575b5001516001600160a01b031690565b908116611a7a5750565b611a8390611693565b50565b611a8f906115e8565b505f611a61565b6040516362df054560e01b8152600490fd5b611ac1915060203d6020116104a4576104968183610732565b5f6119ef565b60405190611ad482610717565b60606040838281528260208201520152565b9060208282031261025a5781516001600160401b039283821161025a57019060608282031261025a5760405192611b1c84610717565b825181811161025a5782611b31918501611018565b8452602083015181811161025a5782611b4b918501611018565b6020850152604083015190811161025a57611b669201611018565b604082015290565b9081602091031261025a575190565b60409065ffffffffffff610fd894931681528160208201520190610fdb565b90939293611ba8611ac7565b94805180611c9f575b5050600454606083901c6001600160a01b03918216148015929190611c84575b5050611c7c575f54611c17929190602090611bf690610d9a906001600160a01b031681565b8187015190604051808097819463810da75d60e01b83528860048401611b7d565b03915afa9081156104ab57611c44935f92611c49575b50611c3e9192604087015191610fc2565b90612176565b915190565b611c3e9250611c6f9060203d602011611c75575b611c678183610732565b810190611b6e565b91611c2d565b503d611c5d565b505090515f91565b60055481166001600160a01b03169116141590505f80611bd1565b611cb3929650602080918301019101611ae6565b935f80611bb1565b6004549091606083901c6001600160a01b039283161480159290611d62575b5050611143575f5460049190602090611cfd90610d9a906001600160a01b031681565b60405163bd49c35f60e01b815293849182905afa9081156104ab57610fd8925f92611d3d575b50611d36905f52600260205260405f2090565b5490612176565b611d36919250611d5b9060203d602011611c7557611c678183610732565b9190611d23565b60055481166001600160a01b03169116141590505f80611cda565b8054821015611d92575f5260205f2001905f90565b634e487b7160e01b5f52603260045260245ffd5b8054600160401b81101561071257611dc391600182018155611d7d565b8154905f199060031b1b19169055565b90815491600160401b831015610712578261151a91600161076095018155611d7d565b908154905f829160058411611e6a575b611e119350846124d6565b80611e4357505f905b6001600160d01b038216156113a057610fd8916001611e399201611d7d565b90549060031b1c90565b611e5d611e52611e649261184d565b835f5260205f200190565b5460301c90565b90611e1a565b9192611e75816123a3565b810390811161131857611e1193855f5265ffffffffffff808360205f20015416908516105f14611ea6575091611e06565b929150611eb29061130a565b90611e06565b60405190611ec5826106f7565b5f6020838281520152565b90611ef9611ef3611f1a92611ee3611eb8565b50611eec611eb8565b5084611d7d565b50612188565b91600165ffffffffffff845116936020828060d01b03910151169101611d7d565b90549060405192611f2a846106f7565b835260031b1c602082015290565b611f406121fb565b611f486121fb565b60015f8051602061255683398151915255565b60405190611f6882610717565b5f6040838281528260208201520152565b8091039060a0821261025a57606060405192611f9484610717565b1261025a57608090604051611fa881610717565b8151611fb38161052d565b81526020820151611fc38161052d565b60208201526040820151611fd68161052d565b604082015283526060810151611feb8161052d565b60208401520151611b668161052d565b612003611f5b565b5061201981519160208080948301019101611f79565b80820180516040516302910f8b60e31b8082526001600160a01b039283166004830152939491939082816024817f000000000000000000000000000000000000000000000000000000000000000089165afa9081156104ab575f91612159575b501561046a57816120bd916040870195612099875160018060a01b031690565b6040519283526001600160a01b031660048301529092839190829081906024820190565b03917f0000000000000000000000000000000000000000000000000000000000000000165afa9182156104ab575f9261213c575b50501561212a5751600480546001600160a01b039283166001600160a01b03199182161790915591516005805490931691161790555190565b604051631f0853c160e21b8152600490fd5b6121529250803d106104a4576104968183610732565b5f806120f1565b6121709150833d85116104a4576104968183610732565b5f612079565b9080821015612183575090565b905090565b90604051612195816106f7565b915465ffffffffffff8116835260301c6020830152565b8054806121bd5750505f905f905f90565b5f19908082810111611318576121da925f5260205f200101612188565b9065ffffffffffff82511691602060018060d01b0391015116906001929190565b60ff5f805160206125768339815191525460401c161561221757565b604051631afcd79f60e31b8152600490fd5b8054600160401b8110156107125761224691600182018155611d7d565b61227157815160209092015160301b65ffffffffffff191665ffffffffffff92909216919091179055565b634e487b7160e01b5f525f60045260245ffd5b80549293929190821561237a576122a56122a0611e528561184d565b612188565b906122b6825165ffffffffffff1690565b65ffffffffffff848116911681106123685761232c9460209488926122e461192a875165ffffffffffff1690565b03612330575061231e926122fa6123059261184d565b905f5260205f200190565b9065ffffffffffff82549181199060301b169116179055565b01516001600160d01b031690565b9190565b91505061236391612350612342610753565b65ffffffffffff9093168352565b6001600160d01b03881682860152612229565b61231e565b604051632520601d60e01b8152600490fd5b61239e925061238a612342610753565b6001600160d01b0385166020830152612229565b5f9190565b80156111435780611c3e61246e61246461245a61245061244661243c6124326001610fd89a5f908b60801c806124ca575b508060401c806124bd575b508060201c806124b0575b508060101c806124a3575b508060081c80612496575b508060041c80612489575b508060021c8061247c575b50821c612475575b811c1b61242b818b6112ec565b0160011c90565b61242b818a6112ec565b61242b81896112ec565b61242b81886112ec565b61242b81876112ec565b61242b81866112ec565b61242b81856112ec565b80926112ec565b810161241e565b600291509101905f612416565b600491509101905f61240b565b600891509101905f612400565b601091509101905f6123f5565b602091509101905f6123ea565b604091509101905f6123df565b9150506080905f6123d4565b91905b8382106124e65750505090565b9091928083169080841860011c820180921161131857845f5265ffffffffffff808360205f20015416908416105f146125235750925b91906124d9565b93925061252f9061130a565b9161251c56fe02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268009b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a2646970667358221220dae242242ae38bf129200c0400461c817fd7d45e08b63cbee29f0e840f1e00d864736f6c63430008190033","sourceMap":"681:3264:79:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;;;;;-1:-1:-1;;681:3264:79;;;;;;;;;;;;;;;;;;-1:-1:-1;;;3551:47:23;;;:87;;;;681:3264:79;;;;;;;;;;3551:87:23;-1:-1:-1;;;1133:40:29;;-1:-1:-1;3551:87:23;;;681:3264:79;-1:-1:-1;681:3264:79;;;;;;;;-1:-1:-1;;681:3264:79;;;;;;1537:38:76;-1:-1:-1;;;;;681:3264:79;;;;;;;;;;;;-1:-1:-1;;681:3264:79;;;;;;1632:54:76;-1:-1:-1;;;;;681:3264:79;;;;;;;;;;;;-1:-1:-1;;681:3264:79;;;;;;1743:56:76;-1:-1:-1;;;;;681:3264:79;;;;;;;;;;;;-1:-1:-1;;681:3264:79;;;;;;-1:-1:-1;;;;;681:3264:79;;;;;;;;3217:103:28;;;:::i;:::-;681:3264:79;;-1:-1:-1;;;4285:48:76;;4322:10;681:3264:79;4285:48:76;;681:3264:79;;;;;-1:-1:-1;;;;;4295:16:76;681:3264:79;4285:48:76;;;;;;;-1:-1:-1;4285:48:76;;;681:3264:79;4284:49:76;;4280:99;;-1:-1:-1;;;;;681:3264:79;-1:-1:-1;;4322:10:76;297:2:88;681:3264:79;;267:46:88;4459:27:76;;;;681:3264:79;;4459:15:76;681:3264:79;;;;;;;4459:27:76;681:3264:79;4459:37:76;4455:87;;4654:38;4552:27;4654:38;4552:27;;;681:3264:79;;4459:15:76;681:3264:79;;;;;;;4552:27:76;681:3264:79;4631:6:76;;;;:::i;:::-;681:3264:79;;;;;;;;;;;;;4654:38:76;;;;3282:1:28;1805;-1:-1:-1;;;;;;;;;;;681:3264:79;3716:283:28;3282:1;681:3264:79;4455:87:76;681:3264:79;;-1:-1:-1;;;4519:12:76;;681:3264:79;;4519:12:76;4280:99;681:3264:79;;-1:-1:-1;;;4356:12:76;;681:3264:79;;4356:12:76;4285:48;;;;681:3264:79;4285:48:76;681:3264:79;4285:48:76;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;:::i;681:3264:79:-;;;;;;-1:-1:-1;;681:3264:79;;;;;;-1:-1:-1;681:3264:79;-1:-1:-1;;;;;;;;;;;681:3264:79;;;4919:24:23;681:3264:79;-1:-1:-1;681:3264:79;4919:24:23;681:3264:79;;;;;;;;;;;;;-1:-1:-1;;681:3264:79;;;;;;322:32:69;-1:-1:-1;;;;;681:3264:79;;;;;;;-1:-1:-1;;;;;681:3264:79;;;;;:::o;:::-;;;;;;-1:-1:-1;;681:3264:79;;;;5350:25:23;681:3264:79;;;;;;;:::i;:::-;;-1:-1:-1;681:3264:79;-1:-1:-1;;;;;;;;;;;681:3264:79;;3202:4:23;4919:24;681:3264:79;-1:-1:-1;681:3264:79;4919:24:23;681:3264:79;3202:4:23;:::i;:::-;5350:25;:::i;681:3264:79:-;;;;;;-1:-1:-1;;681:3264:79;;;;;;;;;:::i;:::-;966:10:27;-1:-1:-1;;;;;681:3264:79;;6441:34:23;6437:102;;6549:37;681:3264:79;;;6549:37:23;:::i;6437:102::-;681:3264:79;;-1:-1:-1;;;6498:30:23;;681:3264:79;;6498:30:23;681:3264:79;;;;;;-1:-1:-1;;681:3264:79;;;;;;;;;:::i;:::-;3217:103:28;;:::i;:::-;966:10:27;-1:-1:-1;681:3264:79;;;;;;;;;;1356:26:76;;681:3264:79;;4468:23:23;4464:108;;-1:-1:-1;4861:4:76;681:3264:79;-1:-1:-1;;;;;681:3264:79;;;;;;4861:13:76;;4857:63;;-1:-1:-1;;;;;;681:3264:79;;;4861:4:76;681:3264:79;4958:14:76;-1:-1:-1;;4958:14:76;4861:4;-1:-1:-1;;;;;;;;;;;681:3264:79;;4464:108:23;681:3264:79;;;;4514:47:23;;;;;;966:10:27;681:3264:79;4514:47:23;;681:3264:79;;;;;4514:47:23;681:3264:79;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;681:3264:79;;;;;;;:::o;:::-;;:::i;:::-;;;;;;;-1:-1:-1;;;;;681:3264:79;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;681:3264:79;;;;;;;:::o;:::-;;;;;;;:::i;:::-;:::o;:::-;-1:-1:-1;;;;;681:3264:79;;;;;;-1:-1:-1;;681:3264:79;;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;681:3264:79;;;;;;;;;;;;;;:::o;:::-;;;;;;-1:-1:-1;;681:3264:79;;;;;;;;;;;;;;;-1:-1:-1;;;;;681:3264:79;;;;;;;2045:63;681:3264;;;;;;:::i;:::-;;;;-1:-1:-1;681:3264:79;2045:16;681:3264;;;-1:-1:-1;681:3264:79;2045:63;:::i;:::-;681:3264;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;681:3264:79;;;;;;;;;;;;;;;:::o;:::-;;;;;;-1:-1:-1;;681:3264:79;;;;-1:-1:-1;;;;;681:3264:79;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;681:3264:79;;;;;;;4301:16:25;681:3264:79;;4726:16:25;;:34;;;;681:3264:79;4805:1:25;4790:16;:50;;;;681:3264:79;4855:13:25;:30;;;;681:3264:79;4851:91:25;;;-1:-1:-1;;;;;;;;;;;681:3264:79;;-1:-1:-1;;681:3264:79;;;;;718:4:69;;4951:18:25;4979:67;;718:4:69;:::i;:::-;5066:101:25;;681:3264:79;5066:101:25;-1:-1:-1;;;;;;;;;;;681:3264:79;;-1:-1:-1;;;;681:3264:79;;;;;-1:-1:-1;681:3264:79;;5142:14:25;;681:3264:79;;5142:14:25;681:3264:79;4979:67:25;-1:-1:-1;;;;;;;;;;;681:3264:79;;-1:-1:-1;;;;681:3264:79;-1:-1:-1;;;681:3264:79;;;718:4:69;:::i;4851:91:25:-;681:3264:79;;-1:-1:-1;;;4908:23:25;;681:3264:79;;4908:23:25;4855:30;4872:13;;;4855:30;;;4790:50;4818:4;4810:25;:30;;-1:-1:-1;4790:50:25;;4726:34;;;-1:-1:-1;4726:34:25;;681:3264:79;;;;;;-1:-1:-1;;681:3264:79;;;;;;;1253:6:76;681:3264:79;;;;;;;;;-1:-1:-1;;681:3264:79;;;;1267:23;681:3264;;;-1:-1:-1;;;;;681:3264:79;;;;;;;;;;;;;;-1:-1:-1;;681:3264:79;;;;;;;1356:26:76;681:3264:79;;;;;;;;;-1:-1:-1;;681:3264:79;;;;;;;;-1:-1:-1;;;;;681:3264:79;;;;;;;;;;;;;;-1:-1:-1;;681:3264:79;;;;;;;;-1:-1:-1;;;;;681:3264:79;;;;;;;;;;;;;;-1:-1:-1;;681:3264:79;;;;;;961:42;-1:-1:-1;;;;;681:3264:79;;;;;;;;;;;;-1:-1:-1;;681:3264:79;;;;;;3901:31:23;681:3264:79;;;;;:::i;:::-;;;-1:-1:-1;681:3264:79;-1:-1:-1;;;;;;;;;;;681:3264:79;;;-1:-1:-1;681:3264:79;;;;;;;;;;;;;;;;;3901:31:23;681:3264:79;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;681:3264:79;;;;-1:-1:-1;681:3264:79;;;477:31:75;681:3264:79;;;;;;:::i;:::-;;;;;;;;;;;;;;;416:25:75;;;;681:3264:79;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;-1:-1:-1;681:3264:79;;;;;;;;;;;;;477:31:75;;681:3264:79;;;;;;;;;;:::i;:::-;477:31:75;681:3264:79;;477:31:75;;;;;;:::i;:::-;518:79;;;681:3264:79;518:79:75;;681:3264:79;;;;;;;;;;;-1:-1:-1;;681:3264:79;;;;;;;;;;;;;;;;;-1:-1:-1;;681:3264:79;;;;;;;-1:-1:-1;;;;;404:28:69;681:3264:79;;;;;;;;;;-1:-1:-1;;681:3264:79;;;;;;1439:41:76;-1:-1:-1;;;;;681:3264:79;;;;;;;;;;;;-1:-1:-1;;681:3264:79;;;;;;-1:-1:-1;681:3264:79;2009:67:76;681:3264:79;;;;-1:-1:-1;681:3264:79;;;;;;;;;;;;;;-1:-1:-1;;681:3264:79;;;;5767:26:23;681:3264:79;;;;;;;:::i;:::-;;-1:-1:-1;681:3264:79;-1:-1:-1;;;;;;;;;;;681:3264:79;;3202:4:23;4919:24;681:3264:79;-1:-1:-1;681:3264:79;4919:24:23;681:3264:79;3202:4:23;:::i;:::-;5767:26;:::i;681:3264:79:-;;;;;;-1:-1:-1;;681:3264:79;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;-1:-1:-1;;;;;681:3264:79;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;-1:-1:-1;;681:3264:79;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;-1:-1:-1;;;;;681:3264:79;;;;;;;;;;;;:::i;:::-;3217:103:28;;:::i;:::-;-1:-1:-1;681:3264:79;;;5246:21:76;;:13;;-1:-1:-1;;;;;681:3264:79;5246:13:76;681:3264:79;;-1:-1:-1;;;;;681:3264:79;;;5246:21:76;681:3264:79;;-1:-1:-1;;;5246:23:76;;681:3264:79;;;;;5246:23:76;;;;;;;-1:-1:-1;5246:23:76;;;681:3264:79;-1:-1:-1;;;;;;681:3264:79;;;5232:10:76;:37;5228:87;;5341:4;681:3264:79;-1:-1:-1;;;;;681:3264:79;;;;5355:469:76;;681:3264:79;-1:-1:-1;;681:3264:79;;;;;;;;;;;;;;;;5839:55:76;;681:3264:79;;;;5839:55:76;;;;3282:1:28;1805;-1:-1:-1;;;;;;;;;;;681:3264:79;3716:283:28;5355:469:76;681:3264:79;;;;5435:94:76;;;;681:3264:79;5435:94:76;;;;;;;;;;;;681:3264:79;5435:94:76;;;:::i;:::-;;681:3264:79;;5435:94:76;;;;;;:::i;:::-;681:3264:79;5548:9:76;:51;5544:118;;-1:-1:-1;5839:55:76;5676:138;;;;5839:55;5676:138;;;1150:7;5676:138;;5355:469;;;5544:118;681:3264:79;;-1:-1:-1;;;5626:21:76;;681:3264:79;;5626:21:76;5228:87;681:3264:79;;-1:-1:-1;;;5292:12:76;;681:3264:79;;5292:12:76;5246:23;;;;;681:3264:79;5246:23:76;681:3264:79;5246:23:76;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;681:3264:79;;;;;;-1:-1:-1;;681:3264:79;;;;;;;;-1:-1:-1;;;;;681:3264:79;;;;;;;;;;;;;;-1:-1:-1;;681:3264:79;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;-1:-1:-1;;681:3264:79;;;;;;;1150:7:76;681:3264:79;;;;;;;;;-1:-1:-1;;681:3264:79;;;;;;;2700:1:76;681:3264:79;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;1914:201;;2045:63;1914:201;;-1:-1:-1;681:3264:79;2045:16;681:3264;;;-1:-1:-1;681:3264:79;2045:63;:::i;:::-;1914:201;:::o;681:3264::-;;;;;;;;;;;;;;;;;-1:-1:-1;681:3264:79;;;;;;;;-1:-1:-1;;681:3264:79;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;681:3264:79;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;;;;681:3264:79;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::o;:::-;-1:-1:-1;;;;;681:3264:79;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;2764:920:76:-;;2978:48;2764:920;;;;2978:48;;;;:::i;:::-;3036:36;;;681:3264:79;;:::i;:::-;;;;3086:20:76;3082:107;;2764:920;3216:11;;;;:193;;;;;2764:920;3216:394;;;;2764:920;3199:455;;;;;;2764:920;:::o;3199:455::-;3635:8;-1:-1:-1;3635:8:76;:::o;3216:394::-;3553:39;;;;;3430:180;3553:39;;;681:3264:79;;;;;;;;;;3430:180:76;;467:2:88;681:3264:79;3430:180:76;;;;;:::i;:::-;;681:3264:79;3444:31:76;-1:-1:-1;;;;;681:3264:79;3430:180:76;;;;;;;-1:-1:-1;3430:180:76;;;3216:394;3429:181;;3216:394;;;;;;3430:180;;;;3553:39;3430:180;3553:39;3430:180;;;;;;;:::i;:::-;;;;3216:193;-1:-1:-1;681:3264:79;;;-1:-1:-1;;;;;;681:3264:79;3248:161:76;3354:37;;;681:3264:79;3248:161:76;681:3264:79;;;;;;;;;;3248:161:76;;;;;;;:::i;:::-;;681:3264:79;3262:29:76;-1:-1:-1;;;;;681:3264:79;3248:161:76;;;;;;;-1:-1:-1;3248:161:76;;;3216:193;3247:162;;3216:193;;;3248:161;;;;;;;;;;;;;;:::i;:::-;;;;3082:107;3139:39;;;;;;;;;;;;;:::i;:::-;3082:107;;;;;681:3264:79;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;9856:1:60;681:3264:79;;;;;;;:::o;:::-;;:::i;3740:389:76:-;3918:5;681:3264:79;;;-1:-1:-1;;;3853:71:76;;;-1:-1:-1;;;;;681:3264:79;;;3853:71:76;;;681:3264:79;;;;;;;;3740:389:76;;681:3264:79;3853:71:76;;681:3264:79;;3853:71:76;681:3264:79;;;3867:29:76;681:3264:79;;3853:71:76;;;;;;;3918:5;3853:71;;;3740:389;3852:72;;681:3264:79;;;3852:181:76;;3740:389;3835:242;;;;;;4094:28;;;:::i;3835:242::-;4058:8;;3918:5;4058:8;:::o;3852:181::-;681:3264:79;;3945:88:76;;;-1:-1:-1;;;;;681:3264:79;;3853:71:76;3945:88;;681:3264:79;467:2:88;681:3264:79;;;;;;;;-1:-1:-1;681:3264:79;;;;;;;;3959:31:76;681:3264:79;3945:88:76;;;;;;;3918:5;3945:88;;;3852:181;3944:89;;;3852:181;;;;;3945:88;;;;;;-1:-1:-1;3945:88:76;;;;;;:::i;:::-;;;;;3853:71;;;;;;;;;;;;;;:::i;:::-;;;;3326:384:28;-1:-1:-1;;;;;;;;;;;1847:1:28;681:3264:79;;3526:20:28;3522:88;;1847:1;681:3264:79;;3326:384:28:o;3522:88::-;681:3264:79;;-1:-1:-1;;;3569:30:28;;;;;3164:253:79;3261:7;681:3264;-1:-1:-1;;;;;681:3264:79;467:2:88;681:3264:79;;;3261:31;3257:85;;-1:-1:-1;681:3264:79;3351:16;681:3264;;;-1:-1:-1;681:3264:79;;;837:15:62;;;14369:24:58;14365:103;;837:15:62;;681:3264:79;6360:12:86;;;;681:3264:79;;;6360:24:86;6356:75;;3164:253:79;6474:30:86;;;:::i;:::-;681:3264:79;;;;;;;;10303:8:60;;:63;:8;;;:63;-1:-1:-1;10303:63:60;;-1:-1:-1;;;;;681:3264:79;;;;10726:7:86;681:3264:79;;10736:17:86;;;;:::i;:::-;10726:31;;;6604:24;;;10726:31;-1:-1:-1;;6600:188:86;;;6657:7;;6644:29;6657:7;;;;6644:21;6657:7;;:::i;:::-;6644:21;;:::i;:::-;:29;681:3264:79;;;;;;;;;;;;;;;;;;;;;6600:188:86;6753:24;681:3264:79;8167:38:60;681:3264:79;;8167:38:60;;:::i;:::-;6753:24:86;;;:::i;6604:::-;681:3264:79;6614:14:86;;;-1:-1:-1;6604:24:86;;;;10726:31;;;;10303:63:60;681:3264:79;;;;;;;;;;14249:109:60;-1:-1:-1;14249:109:60;681:3264:79;-1:-1:-1;14249:109:60;;;681:3264:79;;;10303:63:60;;;6356:75:86;6400:20;;;:::i;:::-;6356:75;;14365:103:58;681:3264:79;;-1:-1:-1;;;14416:41:58;;14447:2;3261:7:79;14416:41:58;;681:3264:79;837:15:62;681:3264:79;;;;;;14416:41:58;3257:85:79;681:3264;;-1:-1:-1;;;3315:16:79;;3261:7;;3315:16;4148:103:23;-1:-1:-1;681:3264:79;;;-1:-1:-1;;;;;;;;;;;681:3264:79;;;;;;;;966:10:27;681:3264:79;;;;;;;;;;4468:23:23;4464:108;;4148:103;:::o;7270:387::-;-1:-1:-1;;;;;681:3264:79;;-1:-1:-1;681:3264:79;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2887:71:23;681:3264:79;;;;-1:-1:-1;681:3264:79;;;;;;;;;;;-1:-1:-1;;;;;681:3264:79;;;;;;;;;;-1:-1:-1;;681:3264:79;7509:4:23;681:3264:79;;;966:10:27;;-1:-1:-1;;;;;681:3264:79;-1:-1:-1;7532:40:23;-1:-1:-1;;7532:40:23;7509:4;7586:11;:::o;7270:387::-;-1:-1:-1;;;;;681:3264:79;;-1:-1:-1;681:3264:79;;;;;;;;;1356:26:76;;-1:-1:-1;;;;;;;;;;;2887:71:23;681:3264:79;;3901:31:23;681:3264:79;;;;-1:-1:-1;681:3264:79;;;;;;;;;;;-1:-1:-1;;;;;681:3264:79;;;;;;;;;;-1:-1:-1;;681:3264:79;7509:4:23;681:3264:79;;;966:10:27;;-1:-1:-1;;;;;681:3264:79;;7532:40:23;-1:-1:-1;;7532:40:23;7509:4;7586:11;:::o;7432:219::-;7628:12;;;-1:-1:-1;7628:12:23;:::o;7270:387::-;-1:-1:-1;681:3264:79;;;-1:-1:-1;;;;;;;;;;;681:3264:79;;;;;;;;-1:-1:-1;;;;;681:3264:79;;;;;;;;;;;;3901:31:23;681:3264:79;7892:388:23;-1:-1:-1;681:3264:79;;;-1:-1:-1;;;;;;;;;;;681:3264:79;;;;;;;;-1:-1:-1;;;;;681:3264:79;;;;;;;;;;;;;;;;-1:-1:-1;681:3264:79;;;;;;;;;;;-1:-1:-1;;;;;681:3264:79;;;;;;;;;;-1:-1:-1;;681:3264:79;;;966:10:27;;-1:-1:-1;;;;;681:3264:79;;8155:40:23;-1:-1:-1;;8155:40:23;681:3264:79;8209:11:23;:::o;681:3264:79:-;;;;;;;;;;;;;;;;;;:::o;:::-;-1:-1:-1;;681:3264:79;;;;;;;;:::o;:::-;;;;;;;;;;;;;:::o;7558:604:86:-;;681:3264:79;;7686:17:86;7682:83;;681:3264:79;7789:27:86;681:3264:79;7789:27:86;681:3264:79;;7789:27:86;;;;;;:::i;:::-;7860:14;;;;;:::i;:::-;681:3264:79;;;;;;;;;;;;;;;;7888:22:86;;;7884:77;;7975:21;-1:-1:-1;7975:84:86;;;;7558:604;7971:139;;;;8127:28;;;;:::i;7971:139::-;8082:17;;7789:27;8082:17;681:3264:79;8075:24:86;:::o;7975:84::-;681:3264:79;;;8009:16:86;681:3264:79;;8009:16:86;:::i;:::-;681:3264:79;;;8001:24:86;:57;;;;;7975:84;;;;;;;8001:57;8029:29;8038:8;;;8029:18;8038:8;8029:23;8038:8;;:::i;:::-;8029:18;;:::i;:::-;681:3264:79;;;;;8029:23:86;681:3264:79;;;;8029:29:86;;8001:57;;;;7884:77;7933:17;;;;;7789:27;7933:17;681:3264:79;7926:24:86;:::o;7682:83::-;7726:28;;;;:::i;681:3264:79:-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;681:3264:79;;;;;;;;:::i;5907:716:76:-;6030:34;5907:716;6030:34;;;;:::i;:::-;681:3264:79;;-1:-1:-1;;;6080:41:76;;-1:-1:-1;;;;;681:3264:79;;;6080:41:76;;;681:3264:79;;;;;6080:41:76;681:3264:79;;;6090:13:76;681:3264:79;;6080:41:76;;;;;;;-1:-1:-1;6080:41:76;;;5907:716;6079:42;;6075:90;;6266:27;681:3264:79;2540:111:28;6210:14:76;681:3264:79;2540:111:28;;;:::i;:::-;681:3264:79;;;;;;-1:-1:-1;;;;;681:3264:79;;-1:-1:-1;681:3264:79;;;-1:-1:-1;681:3264:79;;6210:14:76;6266:27;:::i;:::-;6080:41;6311:15;;681:3264:79;;;;-1:-1:-1;;;;;;681:3264:79;-1:-1:-1;;;;;681:3264:79;;;;;;;;;;;-1:-1:-1;;;;;681:3264:79;;;;6337:143:76;;5907:716;-1:-1:-1;6493:28:76;681:3264:79;-1:-1:-1;;;;;681:3264:79;;;;;;;6489:128:76;;5907:716;:::o;6489:128::-;6551:55;;;:::i;:::-;;5907:716::o;6337:143::-;6404:65;;;:::i;:::-;;6337:143;;;6075:90;681:3264:79;;-1:-1:-1;;;6144:10:76;;6080:41;;6144:10;6080:41;;;;;;;;;;;;;;:::i;:::-;;;;681:3264:79;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;;;;681:3264:79;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;:::i;2121:740::-;;;;;681:3264;;:::i;:::-;;;;2362:16;2358:92;;2121:740;-1:-1:-1;;2464:7:79;681:3264;467:2:88;681:3264:79;;;-1:-1:-1;;;;;681:3264:79;;;2464:31;;;;;681:3264;2464:56;;2121:740;2460:120;;;;-1:-1:-1;681:3264:79;2637:67;;681:3264;;2676:27;;2637;;:13;;-1:-1:-1;;;;;681:3264:79;2637:13;681:3264;2637:27;2676;;;;681:3264;;;;;;;;;;;2637:67;;;2464:7;2637:67;;;:::i;:::-;;;;;;;;;;2611:198;2637:67;-1:-1:-1;2637:67:79;;;2121:740;2763:31;2722:73;2763:31;;681:3264;2763:31;;;2722:73;;:::i;:::-;2611:198;;:::i;:::-;2823:21;;2121:740;:::o;2637:67::-;2722:73;2637:67;;;;2676:27;2637:67;2676:27;2637:67;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;2460:120;-1:-1:-1;;2547:21:79;;-1:-1:-1;;2536:33:79:o;2464:56::-;2499:8;681:3264;;;-1:-1:-1;;;;;681:3264:79;;;2499:21;;;-1:-1:-1;2464:56:79;;;;2358:92;2408:31;;;;;;;;;;;;;:::i;:::-;2358:92;;;;;2867:291;2977:7;681:3264;2867:291;;681:3264;;;;-1:-1:-1;;;;;681:3264:79;;;2977:31;;;;681:3264;2977:56;;2867:291;2973:95;;;;-1:-1:-1;681:3264:79;2977:7;;681:3264;3094:27;;:25;;:13;;-1:-1:-1;;;;;681:3264:79;3094:13;681:3264;3094:25;681:3264;;-1:-1:-1;;;3094:27:79;;681:3264;;;;;3094:27;;;;;;;3085:66;3094:27;-1:-1:-1;3094:27:79;;;2867:291;3123:27;;;681:3264;;4459:15:76;681:3264:79;;;;;;;3123:27;681:3264;3085:66;;:::i;3094:27::-;3123;3094;;;;;;;;;;;;;;;:::i;:::-;;;;;2977:56;3012:8;681:3264;;;-1:-1:-1;;;;;681:3264:79;;;3012:21;;;-1:-1:-1;2977:56:79;;;;681:3264;;;;;;;;-1:-1:-1;681:3264:79;;-1:-1:-1;681:3264:79;;;-1:-1:-1;681:3264:79;:::o;:::-;;;;;;;;;;;;;;;-1:-1:-1;;;681:3264:79;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::o;:::-;;;;;-1:-1:-1;;;681:3264:79;;;;;;;;;;;;;;;:::i;6999:207:86:-;;681:3264:79;;9594:15:60;-1:-1:-1;9619:18:60;9652:7;9658:1;9652:7;;9648:234;;6999:207:86;9906:53:60;;;;;:::i;:::-;9977:8;;;:63;-1:-1:-1;9977:63:60;;-1:-1:-1;;;;;681:3264:79;;7168:7:86;681:3264:79;;;7178:12:86;;:17;:12;;:17;:::i;:::-;681:3264:79;;;;;;;;9977:63:60;9992:41;10025:7;9992:48;10025:7;;:::i;:::-;9992:41;14249:109;;;;;;14099:265;;9992:41;681:3264:79;;;;;9992:48:60;9977:63;;;9648:234;9695:14;;;;;:::i;:::-;681:3264:79;;;;;;;9906:53:60;14249:109;;-1:-1:-1;14249:109:60;681:3264:79;14249:109:60;;;-1:-1:-1;14249:109:60;;681:3264:79;;;;;9727:48:60;9723:149;681:3264:79;;;9795:10:60;9723:149;9648:234;;9723:149;9850:7;;;;;;:::i;:::-;9723:149;9648:234;;681:3264:79;;;;;;;:::i;:::-;-1:-1:-1;681:3264:79;;;;;;;:::o;11486:272:86:-;;681:3264:79;11308:22:60;11718:31:86;11486:272;681:3264:79;;:::i;:::-;;;;:::i;:::-;;11308:22:60;;:::i;:::-;681:3264:79;;:::i;:::-;;11718:12:86;681:3264:79;;;;;11731:17:86;681:3264:79;;;;;11731:17:86;;681:3264:79;;11718:12:86;;:31;:::i;:::-;681:3264:79;;;;;;;;;:::i;:::-;;;;;;11731:17:86;11672:79;;681:3264:79;11486:272:86;:::o;6893:76:25:-;;;:::i;:::-;;;:::i;:::-;1805:1:28;-1:-1:-1;;;;;;;;;;;681:3264:79;6893:76:25:o;681:3264:79:-;;;;;;;:::i;:::-;-1:-1:-1;681:3264:79;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;3423:520::-;681:3264;;:::i;:::-;;3571:30;681:3264;;3571:30;;;;;;;;;;;:::i;:::-;3654:14;;;681:3264;;;;-1:-1:-1;;;3617:52:79;;;-1:-1:-1;;;;;681:3264:79;;;3617:52;;;681:3264;3654:14;;681:3264;;;3654:14;681:3264;;;3627:16;681:3264;;3617:52;;;;;;;-1:-1:-1;3617:52:79;;;3423:520;3616:53;;3612:103;;3768:15;3730:54;3768:15;681:3264;3768:15;;681:3264;;;;;;;;;;;;;;;3730:54;;;-1:-1:-1;;;;;681:3264:79;3617:52;3730:54;;681:3264;;;;;-1:-1:-1;681:3264:79;;;;;;;;;3730:54;;3740:17;;681:3264;3730:54;;;;;;;-1:-1:-1;3730:54:79;;;3423:520;3729:55;;;3725:106;;681:3264;3617:52;681:3264;;-1:-1:-1;;;;;681:3264:79;;;-1:-1:-1;;;;;;681:3264:79;;;;;;;;;3875:26;681:3264;;;;;;;;;;3919:17;3423:520;:::o;3725:106::-;681:3264;;-1:-1:-1;;;3807:13:79;;3617:52;;3807:13;3730:54;;;;;;-1:-1:-1;3730:54:79;;;;;;:::i;:::-;;;;;3617:52;;;;;;;;;;;;;;:::i;:::-;;;;2557:104:57;;2641:5;;;;;;:13;2557:104;:::o;2641:13::-;;;2557:104;:::o;681:3264:79:-;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::o;10552:388:60:-;681:3264:79;;10728:8:60;;;10752:20;;10690:17;10752:20;10690:17;10752:20;10690:17;10752:20;:::o;10724:210::-;681:3264:79;;;;;;;;;;;14249:109:60;10690:17;14249:109;;10690:17;14249:109;;;681:3264:79;:::i;:::-;;;;;;;14249:109:60;681:3264:79;;;;;10911:11:60;;681:3264:79;;10886:37:60;10870:1;10886:37;;;:::o;7084:141:25:-;681:3264:79;-1:-1:-1;;;;;;;;;;;681:3264:79;;;;7150:18:25;7146:73;;7084:141::o;7146:73::-;681:3264:79;;-1:-1:-1;;;7191:17:25;;;;;681:3264:79;;;-1:-1:-1;;;681:3264:79;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;681:3264:79;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;11513:870:60;681:3264:79;;11513:870:60;;;681:3264:79;11513:870:60;11672:7;;;;681:3264:79;11775:28:60;11795:7;;;:::i;11775:28::-;681:3264:79;:::i;:::-;;;;;;;;;;;;;;;;11877:15:60;-1:-1:-1;11873:91:60;;681:3264:79;;12233:11:60;681:3264:79;;;12027:16:60;681:3264:79;;;;;;;12027:16:60;;;;12083:7;12063:43;12083:7;;12063:28;12083:7;;:::i;:::-;12063:28;14249:109;;;;;;14099:265;;12063:28;681:3264:79;;;;;;;;;;;;;;;;;12063:43:60;12233:11;681:3264:79;-1:-1:-1;;;;;681:3264:79;;;;12225:27:60;;:::o;12023:189::-;681:3264:79;;;12145:52:60;681:3264:79;12155:41:60;681:3264:79;;:::i;:::-;;;;;;;;12155:41:60;-1:-1:-1;;;;;681:3264:79;;12155:41:60;;;681:3264:79;12145:52:60;:::i;:::-;12023:189;;11873:91;681:3264:79;;-1:-1:-1;;;11919:30:60;;;;;11668:709;12283:52;681:3264:79;;12293:41:60;681:3264:79;;:::i;12293:41:60:-;-1:-1:-1;;;;;681:3264:79;;12293:41:60;;;681:3264:79;12145:52:60;:::i;12283:::-;11678:1;12349:17;;:::o;8587:1642:57:-;8658:6;;8654:45;;9401:7;10201:10;10142:26;10093;10044;9995;9946;9897;9848;681:3264:79;10189:23:57;9401:7;8663:1;681:3264:79;;;;10826:16:57;10822:99;;8587:1642;681:3264:79;;;;10938:15:57;10934:96;;8587:1642;681:3264:79;;;;11047:15:57;11043:96;;8587:1642;681:3264:79;;;;11156:15:57;11152:96;;8587:1642;681:3264:79;;;;11265:14:57;11261:93;;8587:1642;681:3264:79;;;;11371:14:57;11367:93;;8587:1642;681:3264:79;;;;11477:14:57;11473:93;;8587:1642;681:3264:79;;;11579:64:57;;8587:1642;681:3264:79;;;9858:10:57;;;;:::i;:::-;681:3264:79;;;;;9848:26:57;9907:10;;;;:::i;9897:26::-;9956:10;;;;:::i;9946:26::-;10005:10;;;;:::i;9995:26::-;10054:10;;;;:::i;10044:26::-;10103:10;;;;:::i;10093:26::-;10152:10;;;;:::i;10142:26::-;10201:10;;;:::i;11579:64::-;681:3264:79;;11579:64:57;;11473:93;681:3264:79;11511:11:57;;681:3264:79;;11473:93:57;;;;11367;681:3264:79;11405:11:57;;681:3264:79;;11367:93:57;;;;11261;681:3264:79;11299:11:57;;681:3264:79;;11261:93:57;;;;11152:96;681:3264:79;11191:12:57;;681:3264:79;;11152:96:57;;;;11043;681:3264:79;11082:12:57;;681:3264:79;;11043:96:57;;;;10934;681:3264:79;10973:12:57;;681:3264:79;;10934:96:57;;;;10822:99;10862:13;;;681:3264:79;10822:99:57;;;;12736:433:60;;;12919:10;;;;;;13151:11;;;12736:433;:::o;12912:230::-;2900:5:57;;;;;;2910;;;;681:3264:79;;;;;;;;;14249:109:60;-1:-1:-1;14249:109:60;681:3264:79;14249:109:60;;;-1:-1:-1;14249:109:60;;681:3264:79;;;;;-1:-1:-1;12996:136:60;681:3264:79;;;13055:10:60;12996:136;;12912:230;;;;12996:136;13110:7;;;;;;:::i;:::-;12996:136;;","linkReferences":{},"immutableReferences":{"57808":[{"start":1278,"length":32}],"57811":[{"start":3054,"length":32}],"58762":[{"start":893,"length":32},{"start":3111,"length":32},{"start":8264,"length":32}],"58765":[{"start":627,"length":32},{"start":6590,"length":32}],"58768":[{"start":695,"length":32},{"start":4624,"length":32},{"start":4948,"length":32}],"58771":[{"start":763,"length":32},{"start":4471,"length":32},{"start":5074,"length":32}],"60387":[{"start":2670,"length":32},{"start":8385,"length":32}]}},"methodIdentifiers":{"DEFAULT_ADMIN_ROLE()":"a217fddf","FACTORY()":"2dd31000","HOOK_GAS_LIMIT()":"ff54740f","HOOK_RESERVE()":"557cab44","HOOK_SET_ROLE()":"6679191e","NETWORK_REGISTRY()":"c0cd7c3e","OPERATOR_NETWORK_OPT_IN_SERVICE()":"1a80e500","OPERATOR_REGISTRY()":"83ce0322","OPERATOR_VAULT_OPT_IN_SERVICE()":"128e5d82","TYPE()":"bb24fe8a","VAULT_FACTORY()":"103f2907","VERSION()":"ffa1ad74","getRoleAdmin(bytes32)":"248a9ca3","grantRole(bytes32,address)":"2f2ff15d","hasRole(bytes32,address)":"91d14854","hook()":"7f5a7c7b","initialize(bytes)":"439fab91","maxNetworkLimit(bytes32)":"d15b740e","maxNetworkLimitAt(bytes32,uint48,bytes)":"437224a3","network()":"6739afca","onSlash(bytes32,address,uint256,uint48,bytes)":"e49561ee","operator()":"570ca735","renounceRole(bytes32,address)":"36568abe","revokeRole(bytes32,address)":"d547741f","setHook(address)":"3dfd3873","setMaxNetworkLimit(uint96,uint256)":"23f752d5","stake(bytes32,address)":"fd4d447c","stakeAt(bytes32,address,uint48,bytes)":"e02f6937","staticDelegateCall(address,bytes)":"9f86fd85","supportsInterface(bytes4)":"01ffc9a7","vault()":"fbfa77cf"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operatorRegistry\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"networkRegistry\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"vaultFactory\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operatorVaultOptInService\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operatorNetworkOptInService\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"delegatorFactory\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"entityType\",\"type\":\"uint64\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"AccessControlBadConfirmation\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"neededRole\",\"type\":\"bytes32\"}],\"name\":\"AccessControlUnauthorizedAccount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AlreadySet\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CheckpointUnorderedInsertion\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientHookGas\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidNetwork\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotNetwork\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotOperator\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotSlasher\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotVault\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ReentrancyGuardReentrantCall\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"bits\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"SafeCastOverflowedUintDowncast\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint48\",\"name\":\"captureTimestamp\",\"type\":\"uint48\"}],\"name\":\"OnSlash\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"previousAdminRole\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"newAdminRole\",\"type\":\"bytes32\"}],\"name\":\"RoleAdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleRevoked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"hook\",\"type\":\"address\"}],\"name\":\"SetHook\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"SetMaxNetworkLimit\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DEFAULT_ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"FACTORY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"HOOK_GAS_LIMIT\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"HOOK_RESERVE\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"HOOK_SET_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"NETWORK_REGISTRY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"OPERATOR_NETWORK_OPT_IN_SERVICE\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"OPERATOR_REGISTRY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"OPERATOR_VAULT_OPT_IN_SERVICE\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"TYPE\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"VAULT_FACTORY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"VERSION\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleAdmin\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"grantRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"hook\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"}],\"name\":\"maxNetworkLimit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hint\",\"type\":\"bytes\"}],\"name\":\"maxNetworkLimitAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"network\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint48\",\"name\":\"captureTimestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"onSlash\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"operator\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"callerConfirmation\",\"type\":\"address\"}],\"name\":\"renounceRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"hook_\",\"type\":\"address\"}],\"name\":\"setHook\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint96\",\"name\":\"identifier\",\"type\":\"uint96\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"setMaxNetworkLimit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"stake\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hints\",\"type\":\"bytes\"}],\"name\":\"stakeAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"staticDelegateCall\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"vault\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"AccessControlBadConfirmation()\":[{\"details\":\"The caller of a function is not the expected one. NOTE: Don't confuse with {AccessControlUnauthorizedAccount}.\"}],\"AccessControlUnauthorizedAccount(address,bytes32)\":[{\"details\":\"The `account` is missing a role.\"}],\"CheckpointUnorderedInsertion()\":[{\"details\":\"A value was attempted to be inserted on a past checkpoint.\"}],\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"ReentrancyGuardReentrantCall()\":[{\"details\":\"Unauthorized reentrant call.\"}],\"SafeCastOverflowedUintDowncast(uint8,uint256)\":[{\"details\":\"Value doesn't fit in an uint of `bits` size.\"}]},\"events\":{\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"OnSlash(bytes32,address,uint256,uint48)\":{\"params\":{\"amount\":\"amount of the collateral to be slashed\",\"captureTimestamp\":\"time point when the stake was captured\",\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"}},\"RoleAdminChanged(bytes32,bytes32,bytes32)\":{\"details\":\"Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole` `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite {RoleAdminChanged} not being emitted signaling this.\"},\"RoleGranted(bytes32,address,address)\":{\"details\":\"Emitted when `account` is granted `role`. `sender` is the account that originated the contract call, an admin role bearer except when using {AccessControl-_setupRole}.\"},\"RoleRevoked(bytes32,address,address)\":{\"details\":\"Emitted when `account` is revoked `role`. `sender` is the account that originated the contract call: - if using `revokeRole`, it is the admin role bearer - if using `renounceRole`, it is the role bearer (i.e. `account`)\"},\"SetHook(address)\":{\"params\":{\"hook\":\"address of the hook\"}},\"SetMaxNetworkLimit(bytes32,uint256)\":{\"params\":{\"amount\":\"new maximum subnetwork's limit (how much stake the subnetwork is ready to get)\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"}}},\"kind\":\"dev\",\"methods\":{\"VERSION()\":{\"details\":\"Must return 1 for this one.\",\"returns\":{\"_0\":\"version of the delegator\"}},\"getRoleAdmin(bytes32)\":{\"details\":\"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}.\"},\"grantRole(bytes32,address)\":{\"details\":\"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event.\"},\"hasRole(bytes32,address)\":{\"details\":\"Returns `true` if `account` has been granted `role`.\"},\"initialize(bytes)\":{\"params\":{\"data\":\"some data to use\"}},\"maxNetworkLimitAt(bytes32,uint48,bytes)\":{\"params\":{\"hint\":\"hint for checkpoint index\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\",\"timestamp\":\"time point to get the maximum subnetwork limit at\"},\"returns\":{\"_0\":\"maximum limit of the subnetwork\"}},\"onSlash(bytes32,address,uint256,uint48,bytes)\":{\"details\":\"Only the vault's slasher can call this function.\",\"params\":{\"amount\":\"amount of the collateral slashed\",\"captureTimestamp\":\"time point when the stake was captured\",\"data\":\"some additional data\",\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"}},\"renounceRole(bytes32,address)\":{\"details\":\"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `callerConfirmation`. May emit a {RoleRevoked} event.\"},\"revokeRole(bytes32,address)\":{\"details\":\"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event.\"},\"setHook(address)\":{\"details\":\"Only a HOOK_SET_ROLE holder can call this function. The hook can have arbitrary logic under certain functions, however, it doesn't affect the stake guarantees.\",\"params\":{\"hook\":\"address of the hook\"}},\"setMaxNetworkLimit(uint96,uint256)\":{\"details\":\"Only a network can call this function.\",\"params\":{\"amount\":\"new maximum subnetwork's limit\"}},\"stake(bytes32,address)\":{\"details\":\"Warning: this function is not safe to use for stake capturing, as it can change by the end of the block.\",\"params\":{\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"},\"returns\":{\"_0\":\"slashable stake until the end of the next epoch\"}},\"stakeAt(bytes32,address,uint48,bytes)\":{\"details\":\"Warning: it is not safe to use timestamp >= current one for the stake capturing, as it can change later.\",\"params\":{\"hints\":\"hints for the checkpoints' indexes\",\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\",\"timestamp\":\"time point to capture the stake at\"},\"returns\":{\"_0\":\"slashable stake at the given timestamp until the end of the consequent epoch\"}},\"staticDelegateCall(address,bytes)\":{\"details\":\"It allows to use this contract's storage on-chain.\",\"params\":{\"data\":\"data to make a delegatecall with\",\"target\":\"address of the contract to make a delegatecall to\"}},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"}},\"stateVariables\":{\"OPERATOR_REGISTRY\":{\"return\":\"address of the operator registry\",\"returns\":{\"_0\":\"address of the operator registry\"}},\"network\":{\"return\":\"address of the network\",\"returns\":{\"_0\":\"address of the network\"}},\"operator\":{\"return\":\"address of the operator\",\"returns\":{\"_0\":\"address of the operator\"}}},\"version\":1},\"userdoc\":{\"events\":{\"OnSlash(bytes32,address,uint256,uint48)\":{\"notice\":\"Emitted when a slash happens.\"},\"SetHook(address)\":{\"notice\":\"Emitted when a hook is set.\"},\"SetMaxNetworkLimit(bytes32,uint256)\":{\"notice\":\"Emitted when a subnetwork's maximum limit is set.\"}},\"kind\":\"user\",\"methods\":{\"FACTORY()\":{\"notice\":\"Get the factory's address.\"},\"HOOK_GAS_LIMIT()\":{\"notice\":\"Get a gas limit for the hook.\"},\"HOOK_RESERVE()\":{\"notice\":\"Get a reserve gas between the gas limit check and the hook's execution.\"},\"HOOK_SET_ROLE()\":{\"notice\":\"Get a hook setter's role.\"},\"NETWORK_REGISTRY()\":{\"notice\":\"Get the network registry's address.\"},\"OPERATOR_NETWORK_OPT_IN_SERVICE()\":{\"notice\":\"Get the operator-network opt-in service's address.\"},\"OPERATOR_REGISTRY()\":{\"notice\":\"Get the operator registry's address.\"},\"OPERATOR_VAULT_OPT_IN_SERVICE()\":{\"notice\":\"Get the operator-vault opt-in service's address.\"},\"TYPE()\":{\"notice\":\"Get the entity's type.\"},\"VAULT_FACTORY()\":{\"notice\":\"Get the vault factory's address.\"},\"VERSION()\":{\"notice\":\"Get a version of the delegator (different versions mean different interfaces).\"},\"hook()\":{\"notice\":\"Get the hook's address.\"},\"initialize(bytes)\":{\"notice\":\"Initialize this entity contract by using a given data.\"},\"maxNetworkLimit(bytes32)\":{\"notice\":\"Get a particular subnetwork's maximum limit (meaning the subnetwork is not ready to get more as a stake).\"},\"maxNetworkLimitAt(bytes32,uint48,bytes)\":{\"notice\":\"Get a particular subnetwork's maximum limit at a given timestamp using a hint (meaning the subnetwork is not ready to get more as a stake).\"},\"network()\":{\"notice\":\"Get a network the vault delegates funds to.\"},\"onSlash(bytes32,address,uint256,uint48,bytes)\":{\"notice\":\"Called when a slash happens.\"},\"operator()\":{\"notice\":\"Get an operator managing the vault's funds.\"},\"setHook(address)\":{\"notice\":\"Set a new hook.\"},\"setMaxNetworkLimit(uint96,uint256)\":{\"notice\":\"Set a maximum limit for a subnetwork (how much stake the subnetwork is ready to get). identifier identifier of the subnetwork\"},\"stake(bytes32,address)\":{\"notice\":\"Get a stake that a given subnetwork will be able to slash for a certain operator until the end of the next epoch (if no cross-slashing and no slashings by the subnetwork).\"},\"stakeAt(bytes32,address,uint48,bytes)\":{\"notice\":\"Get a stake that a given subnetwork could be able to slash for a certain operator at a given timestamp until the end of the consequent epoch using hints (if no cross-slashing and no slashings by the subnetwork).\"},\"staticDelegateCall(address,bytes)\":{\"notice\":\"Make a delegatecall from this contract to a given target contract with a particular data (always reverts with a return data).\"},\"vault()\":{\"notice\":\"Get the vault's address.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/contracts/delegator/OperatorNetworkSpecificDelegator.sol\":\"OperatorNetworkSpecificDelegator\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol\":{\"keccak256\":\"0x6662ec4e5cefca03eeadd073e9469df8d2944bb2ee8ec8f7622c2c46aab5f225\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4d8544c6f8daa4d1bc215c6a72fe0acdb748664a105b0e5efc19295667521d45\",\"dweb:/ipfs/QmdGWqdnXT8S3RgCR6aV8XHZrsybieMQLLnug1NtpSjEXN\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609\",\"dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9\",\"dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardUpgradeable.sol\":{\"keccak256\":\"0xb44e086e941292cdc7f440de51478493894ef0b1aeccb0c4047445919f667f74\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://942dad22fbdc1669f025540ba63aa3ccfad5f8458fc5d4525b31ebf272e7af45\",\"dweb:/ipfs/Qmdo4X2M82aM3AMoW2kf2jhYkSCyC4T1pHNd6obdsDFnAB\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol\":{\"keccak256\":\"0xdaba3f7c42c55b2896353f32bd27d4d5f8bae741b3b05d4c53f67abc4dc47ce8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1fa2e61141c602510bcd2cd936ed9561922ac8772a9b9c9a9db091a74e354a45\",\"dweb:/ipfs/QmcHQDDoEBwJmwUbzoVkytvJsBx3KVHYFFnDkvRGWh9Wmh\"]},\"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0xb6b36edd6a2999fd243ff226d6cbf84bd71af2432bbd0dfe19392996a1d9cb41\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1fd2f35495652e57e3f99bc6c510bc5f7dd398a176ea2e72d8ed730aebc6ca26\",\"dweb:/ipfs/QmTQV6X4gkikTib49cho5iDX3JvSQbdsoEChoDwrk3CbbH\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875\",\"dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0xe19a4d5f31d2861e7344e8e535e2feafb913d806d3e2b5fe7782741a2a7094fe\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4aed79c0fa6f0546ed02f2f683e8f77f0fd2ed7eb34d8bbf3d373c9a6d95b13c\",\"dweb:/ipfs/QmWqVz6UAVqmnWU5pqYPt1o6iDEZyPaBraAA3rKfTTSfYj\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/Checkpoints.sol\":{\"keccak256\":\"0xbdc5e074d7dd6678f67e92b1a51a20226801a407b0e1af3da367c5d1ff4519ad\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a36cca6b22fff3db16fc789ff6c60eea71d4b156065d4d0c83a0bc5e91a77a8b\",\"dweb:/ipfs/QmYN3exd5AemxjBrN8XMB1p5LbbE16uC3sjbYjwi8AjcGR\"]},\"lib/openzeppelin-contracts/contracts/utils/types/Time.sol\":{\"keccak256\":\"0xc7755af115020049e4140f224f9ee88d7e1799ffb0646f37bf0df24bf6213f58\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7f09bf94d5274334ec021f61a04659db303f31e60460e14b709c9bf187740111\",\"dweb:/ipfs/QmNvgomZYUwFAt4cZbPWAiTeSZQreGehY9BK5xyVJsUttb\"]},\"src/contracts/common/Entity.sol\":{\"keccak256\":\"0x3d61a932995b8443381f3950542d388223a2c26dd5d29a3274dea3baa7388bd7\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://7cdf5f03ca72fd263fd32ff59c8d88ddca911ae83896a287d10772c1bbe9b138\",\"dweb:/ipfs/QmbP84r5BWT1Rn9AYTntWSf3xUMTTCohTZJFhbBhDXFoHa\"]},\"src/contracts/common/StaticDelegateCallable.sol\":{\"keccak256\":\"0x350029aa8955eacaffffaeb58babc5c98e80ebc5c5db388ed17ee6465f4a9d90\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://eb392a8ee9050e0af606897df63e3404e3829e8b688b580663892f9664195764\",\"dweb:/ipfs/QmaXC8jqV8UrrAFkzXTEv2fJF56sy33HhLxAzaRZmUxuXD\"]},\"src/contracts/delegator/BaseDelegator.sol\":{\"keccak256\":\"0x7c54d491fdd4415b764a9c8defa068e56d4c0c8c9419be0053a1d377669290e8\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://9238bfbad0f6eeb0dc7727724de14380f1980b395902269703d5e2ef07e52e10\",\"dweb:/ipfs/QmPJn1V4HNXcEghYvogGuSTF24dSQUPosR5qtsXcmNqRm3\"]},\"src/contracts/delegator/OperatorNetworkSpecificDelegator.sol\":{\"keccak256\":\"0x031a10722b9ec49048f0952710401131290adb87e71caf294e864e7ac3b98a16\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://72428febc875134b2f29205e6f294634a1c22a7d5c78d6a9cb2f8196f107c9b5\",\"dweb:/ipfs/QmTPwXR6h5oytckmkLrHdKeEMdphJxceDhYUR4zvQeWAwY\"]},\"src/contracts/libraries/Checkpoints.sol\":{\"keccak256\":\"0xba90097c8bfe0a975499428b5f8ac5569483c7d92ccc28c12d70de416aae040c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://12f5d93ca94cd06d3147db68993165a58e17903ed53682560de61f3085ad4609\",\"dweb:/ipfs/QmePiuAqvXprMLmFZkGZeGjvGPAvsEDHfCDv7BoQhXu9xE\"]},\"src/contracts/libraries/Subnetwork.sol\":{\"keccak256\":\"0xf5ef5506fd66082b3c2e7f3df37529f5a8efad32ac62e7c8914bd63219190bfe\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba031a54ee0d0e9a270c2b9e18437f5668cfeb659cfd5fe0677459d7fcac2a56\",\"dweb:/ipfs/QmReP3H7qQ78tAfgLnJKsNEQNCQfF1X1Get38Ffd4kzq32\"]},\"src/interfaces/common/IEntity.sol\":{\"keccak256\":\"0x8ef4b63d6da63489778ccd5f8d13ebdd527dd4b62730b2c616df5af7474d2d21\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a8d69576a9219d85c50816a18ad53a4d53cfcb27ed38b8cccc808dc2734b71b\",\"dweb:/ipfs/QmYVN3P4Q4REvBWJ97TbAcaxm3uyB2anV6NSGa6ZtSwcEv\"]},\"src/interfaces/common/IMigratableEntity.sol\":{\"keccak256\":\"0x8f5f2809f3afbe8ebfbb365dd7b57b4dd3b6f9943a6187eaf648d45895b8e3c4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ffe640537d539e7a4fde70d30d3e4c57f4ba9c2c25c450cea713aae38e8fd5c\",\"dweb:/ipfs/QmSUTGzvdcn1R1KB7tLThMRtESsfPbeXDhhhKWGtntzBds\"]},\"src/interfaces/common/IRegistry.sol\":{\"keccak256\":\"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014\",\"dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK\"]},\"src/interfaces/common/IStaticDelegateCallable.sol\":{\"keccak256\":\"0xa335d4e81b9071b7de66ef92b43ff20671d86516eb1be46fef29a3483cd3f5d5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d464b9db863c14c05547d2b23352f2e9b7b784799cf09f6bbc4906a2a74e3516\",\"dweb:/ipfs/QmUVWzFvJz7eEbDQKiFTTzwi7TEbjcs3VmwdM4kuptAKvi\"]},\"src/interfaces/delegator/IBaseDelegator.sol\":{\"keccak256\":\"0x96bb312f032e17accce3f8f80936d99468029d6b37c9ca74acdb4b026a0148ee\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2a66dcb5b7d1a6ef6a363431ea98ebd78bc4fdd3d7a134d9b542dc66e7d025c2\",\"dweb:/ipfs/QmRhTPLd2ZAyRHmJUFUcWKs9b3if49QY17LYZuRqWmghw8\"]},\"src/interfaces/delegator/IDelegatorHook.sol\":{\"keccak256\":\"0xc51aa8d7d1f6c8043ee819b7aeb86da0e993912e1442098df897e299f01f9f46\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://adddf5cb2ba282aeb576b26efb28640f865a1721cc9b6eee8b3ee0457a2c9780\",\"dweb:/ipfs/QmNYgAmnLRwWZbhTuQhZs9rx4zcme1df5mEepkrniorSoW\"]},\"src/interfaces/delegator/IOperatorNetworkSpecificDelegator.sol\":{\"keccak256\":\"0x74b95e64d29769202d45dd277bb830f623ff3d41ce77b80ce3ee4e318a5c71ec\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e512b903aae5c1b8a028c6e3f4f6223b5cb5d704503cfa6bd37b5346868f5c20\",\"dweb:/ipfs/QmZim9YExsPWtyxyeui993HTKAEmrg8MUcSkZ77Gp2JcuZ\"]},\"src/interfaces/service/IOptInService.sol\":{\"keccak256\":\"0x76fb5460a6d87a5705433d4fbeff7253cd75b8bbd0c888b2088f16e86ace146a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://990322019b3d11465f7024bae77ccbf7e2fe5d6fa3c754584778f37d04fa1337\",\"dweb:/ipfs/QmaSNHzcqxTkUCG9a4nqVfLECHLdjdrwAnDi3yDC7tDL24\"]},\"src/interfaces/vault/IVault.sol\":{\"keccak256\":\"0xffee01d383cd4e1a5530c614bf4360c1ef070c288abec9da1eb531b51bc07235\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://04f0046cac285d8ec44ebbb1f79dc94fab4495767190cad8364fbc1fafaadfb9\",\"dweb:/ipfs/QmUawAunwzXfCyShWfhKeThAgKtqe51hmrxvrXvM772M2R\"]},\"src/interfaces/vault/IVaultStorage.sol\":{\"keccak256\":\"0x592626f13754194f83047135de19229c49390bd59e34659b1bb38be71d973a22\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://06a6a9dfddd05e580b32bebe2cff4f63ba26a653180676d58225dd30d9c89d3e\",\"dweb:/ipfs/QmdgzBeY6Sxo8mGtyBxtv1tM1c2kU6J6zjeRd7vuXm4DU6\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.25+commit.b61c2a91"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"operatorRegistry","type":"address"},{"internalType":"address","name":"networkRegistry","type":"address"},{"internalType":"address","name":"vaultFactory","type":"address"},{"internalType":"address","name":"operatorVaultOptInService","type":"address"},{"internalType":"address","name":"operatorNetworkOptInService","type":"address"},{"internalType":"address","name":"delegatorFactory","type":"address"},{"internalType":"uint64","name":"entityType","type":"uint64"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"AccessControlBadConfirmation"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bytes32","name":"neededRole","type":"bytes32"}],"type":"error","name":"AccessControlUnauthorizedAccount"},{"inputs":[],"type":"error","name":"AlreadySet"},{"inputs":[],"type":"error","name":"CheckpointUnorderedInsertion"},{"inputs":[],"type":"error","name":"InsufficientHookGas"},{"inputs":[],"type":"error","name":"InvalidInitialization"},{"inputs":[],"type":"error","name":"InvalidNetwork"},{"inputs":[],"type":"error","name":"NotInitialized"},{"inputs":[],"type":"error","name":"NotInitializing"},{"inputs":[],"type":"error","name":"NotNetwork"},{"inputs":[],"type":"error","name":"NotOperator"},{"inputs":[],"type":"error","name":"NotSlasher"},{"inputs":[],"type":"error","name":"NotVault"},{"inputs":[],"type":"error","name":"ReentrancyGuardReentrantCall"},{"inputs":[{"internalType":"uint8","name":"bits","type":"uint8"},{"internalType":"uint256","name":"value","type":"uint256"}],"type":"error","name":"SafeCastOverflowedUintDowncast"},{"inputs":[{"internalType":"uint64","name":"version","type":"uint64","indexed":false}],"type":"event","name":"Initialized","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32","indexed":true},{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false},{"internalType":"uint48","name":"captureTimestamp","type":"uint48","indexed":false}],"type":"event","name":"OnSlash","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"bytes32","name":"previousAdminRole","type":"bytes32","indexed":true},{"internalType":"bytes32","name":"newAdminRole","type":"bytes32","indexed":true}],"type":"event","name":"RoleAdminChanged","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"address","name":"sender","type":"address","indexed":true}],"type":"event","name":"RoleGranted","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"address","name":"sender","type":"address","indexed":true}],"type":"event","name":"RoleRevoked","anonymous":false},{"inputs":[{"internalType":"address","name":"hook","type":"address","indexed":true}],"type":"event","name":"SetHook","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"SetMaxNetworkLimit","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"DEFAULT_ADMIN_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"FACTORY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"HOOK_GAS_LIMIT","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"HOOK_RESERVE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"HOOK_SET_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"NETWORK_REGISTRY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"OPERATOR_NETWORK_OPT_IN_SERVICE","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"OPERATOR_REGISTRY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"OPERATOR_VAULT_OPT_IN_SERVICE","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"TYPE","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"VAULT_FACTORY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"VERSION","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getRoleAdmin","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"grantRole"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"hasRole","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"hook","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"}],"stateMutability":"view","type":"function","name":"maxNetworkLimit","outputs":[{"internalType":"uint256","name":"value","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"uint48","name":"timestamp","type":"uint48"},{"internalType":"bytes","name":"hint","type":"bytes"}],"stateMutability":"view","type":"function","name":"maxNetworkLimitAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"network","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint48","name":"captureTimestamp","type":"uint48"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"onSlash"},{"inputs":[],"stateMutability":"view","type":"function","name":"operator","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"callerConfirmation","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"renounceRole"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"revokeRole"},{"inputs":[{"internalType":"address","name":"hook_","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setHook"},{"inputs":[{"internalType":"uint96","name":"identifier","type":"uint96"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setMaxNetworkLimit"},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"stake","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint48","name":"timestamp","type":"uint48"},{"internalType":"bytes","name":"hints","type":"bytes"}],"stateMutability":"view","type":"function","name":"stakeAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"staticDelegateCall"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"vault","outputs":[{"internalType":"address","name":"","type":"address"}]}],"devdoc":{"kind":"dev","methods":{"VERSION()":{"details":"Must return 1 for this one.","returns":{"_0":"version of the delegator"}},"getRoleAdmin(bytes32)":{"details":"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}."},"grantRole(bytes32,address)":{"details":"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event."},"hasRole(bytes32,address)":{"details":"Returns `true` if `account` has been granted `role`."},"initialize(bytes)":{"params":{"data":"some data to use"}},"maxNetworkLimitAt(bytes32,uint48,bytes)":{"params":{"hint":"hint for checkpoint index","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)","timestamp":"time point to get the maximum subnetwork limit at"},"returns":{"_0":"maximum limit of the subnetwork"}},"onSlash(bytes32,address,uint256,uint48,bytes)":{"details":"Only the vault's slasher can call this function.","params":{"amount":"amount of the collateral slashed","captureTimestamp":"time point when the stake was captured","data":"some additional data","operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"}},"renounceRole(bytes32,address)":{"details":"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `callerConfirmation`. May emit a {RoleRevoked} event."},"revokeRole(bytes32,address)":{"details":"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event."},"setHook(address)":{"details":"Only a HOOK_SET_ROLE holder can call this function. The hook can have arbitrary logic under certain functions, however, it doesn't affect the stake guarantees.","params":{"hook":"address of the hook"}},"setMaxNetworkLimit(uint96,uint256)":{"details":"Only a network can call this function.","params":{"amount":"new maximum subnetwork's limit"}},"stake(bytes32,address)":{"details":"Warning: this function is not safe to use for stake capturing, as it can change by the end of the block.","params":{"operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"},"returns":{"_0":"slashable stake until the end of the next epoch"}},"stakeAt(bytes32,address,uint48,bytes)":{"details":"Warning: it is not safe to use timestamp >= current one for the stake capturing, as it can change later.","params":{"hints":"hints for the checkpoints' indexes","operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)","timestamp":"time point to capture the stake at"},"returns":{"_0":"slashable stake at the given timestamp until the end of the consequent epoch"}},"staticDelegateCall(address,bytes)":{"details":"It allows to use this contract's storage on-chain.","params":{"data":"data to make a delegatecall with","target":"address of the contract to make a delegatecall to"}},"supportsInterface(bytes4)":{"details":"See {IERC165-supportsInterface}."}},"version":1},"userdoc":{"kind":"user","methods":{"FACTORY()":{"notice":"Get the factory's address."},"HOOK_GAS_LIMIT()":{"notice":"Get a gas limit for the hook."},"HOOK_RESERVE()":{"notice":"Get a reserve gas between the gas limit check and the hook's execution."},"HOOK_SET_ROLE()":{"notice":"Get a hook setter's role."},"NETWORK_REGISTRY()":{"notice":"Get the network registry's address."},"OPERATOR_NETWORK_OPT_IN_SERVICE()":{"notice":"Get the operator-network opt-in service's address."},"OPERATOR_REGISTRY()":{"notice":"Get the operator registry's address."},"OPERATOR_VAULT_OPT_IN_SERVICE()":{"notice":"Get the operator-vault opt-in service's address."},"TYPE()":{"notice":"Get the entity's type."},"VAULT_FACTORY()":{"notice":"Get the vault factory's address."},"VERSION()":{"notice":"Get a version of the delegator (different versions mean different interfaces)."},"hook()":{"notice":"Get the hook's address."},"initialize(bytes)":{"notice":"Initialize this entity contract by using a given data."},"maxNetworkLimit(bytes32)":{"notice":"Get a particular subnetwork's maximum limit (meaning the subnetwork is not ready to get more as a stake)."},"maxNetworkLimitAt(bytes32,uint48,bytes)":{"notice":"Get a particular subnetwork's maximum limit at a given timestamp using a hint (meaning the subnetwork is not ready to get more as a stake)."},"network()":{"notice":"Get a network the vault delegates funds to."},"onSlash(bytes32,address,uint256,uint48,bytes)":{"notice":"Called when a slash happens."},"operator()":{"notice":"Get an operator managing the vault's funds."},"setHook(address)":{"notice":"Set a new hook."},"setMaxNetworkLimit(uint96,uint256)":{"notice":"Set a maximum limit for a subnetwork (how much stake the subnetwork is ready to get). identifier identifier of the subnetwork"},"stake(bytes32,address)":{"notice":"Get a stake that a given subnetwork will be able to slash for a certain operator until the end of the next epoch (if no cross-slashing and no slashings by the subnetwork)."},"stakeAt(bytes32,address,uint48,bytes)":{"notice":"Get a stake that a given subnetwork could be able to slash for a certain operator at a given timestamp until the end of the consequent epoch using hints (if no cross-slashing and no slashings by the subnetwork)."},"staticDelegateCall(address,bytes)":{"notice":"Make a delegatecall from this contract to a given target contract with a particular data (always reverts with a return data)."},"vault()":{"notice":"Get the vault's address."}},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/contracts/delegator/OperatorNetworkSpecificDelegator.sol":"OperatorNetworkSpecificDelegator"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol":{"keccak256":"0x6662ec4e5cefca03eeadd073e9469df8d2944bb2ee8ec8f7622c2c46aab5f225","urls":["bzz-raw://4d8544c6f8daa4d1bc215c6a72fe0acdb748664a105b0e5efc19295667521d45","dweb:/ipfs/QmdGWqdnXT8S3RgCR6aV8XHZrsybieMQLLnug1NtpSjEXN"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b","urls":["bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609","dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol":{"keccak256":"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397","urls":["bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9","dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardUpgradeable.sol":{"keccak256":"0xb44e086e941292cdc7f440de51478493894ef0b1aeccb0c4047445919f667f74","urls":["bzz-raw://942dad22fbdc1669f025540ba63aa3ccfad5f8458fc5d4525b31ebf272e7af45","dweb:/ipfs/Qmdo4X2M82aM3AMoW2kf2jhYkSCyC4T1pHNd6obdsDFnAB"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol":{"keccak256":"0xdaba3f7c42c55b2896353f32bd27d4d5f8bae741b3b05d4c53f67abc4dc47ce8","urls":["bzz-raw://1fa2e61141c602510bcd2cd936ed9561922ac8772a9b9c9a9db091a74e354a45","dweb:/ipfs/QmcHQDDoEBwJmwUbzoVkytvJsBx3KVHYFFnDkvRGWh9Wmh"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol":{"keccak256":"0xb6b36edd6a2999fd243ff226d6cbf84bd71af2432bbd0dfe19392996a1d9cb41","urls":["bzz-raw://1fd2f35495652e57e3f99bc6c510bc5f7dd398a176ea2e72d8ed730aebc6ca26","dweb:/ipfs/QmTQV6X4gkikTib49cho5iDX3JvSQbdsoEChoDwrk3CbbH"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b","urls":["bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df","dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d","urls":["bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875","dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol":{"keccak256":"0xe19a4d5f31d2861e7344e8e535e2feafb913d806d3e2b5fe7782741a2a7094fe","urls":["bzz-raw://4aed79c0fa6f0546ed02f2f683e8f77f0fd2ed7eb34d8bbf3d373c9a6d95b13c","dweb:/ipfs/QmWqVz6UAVqmnWU5pqYPt1o6iDEZyPaBraAA3rKfTTSfYj"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/Checkpoints.sol":{"keccak256":"0xbdc5e074d7dd6678f67e92b1a51a20226801a407b0e1af3da367c5d1ff4519ad","urls":["bzz-raw://a36cca6b22fff3db16fc789ff6c60eea71d4b156065d4d0c83a0bc5e91a77a8b","dweb:/ipfs/QmYN3exd5AemxjBrN8XMB1p5LbbE16uC3sjbYjwi8AjcGR"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/types/Time.sol":{"keccak256":"0xc7755af115020049e4140f224f9ee88d7e1799ffb0646f37bf0df24bf6213f58","urls":["bzz-raw://7f09bf94d5274334ec021f61a04659db303f31e60460e14b709c9bf187740111","dweb:/ipfs/QmNvgomZYUwFAt4cZbPWAiTeSZQreGehY9BK5xyVJsUttb"],"license":"MIT"},"src/contracts/common/Entity.sol":{"keccak256":"0x3d61a932995b8443381f3950542d388223a2c26dd5d29a3274dea3baa7388bd7","urls":["bzz-raw://7cdf5f03ca72fd263fd32ff59c8d88ddca911ae83896a287d10772c1bbe9b138","dweb:/ipfs/QmbP84r5BWT1Rn9AYTntWSf3xUMTTCohTZJFhbBhDXFoHa"],"license":"BUSL-1.1"},"src/contracts/common/StaticDelegateCallable.sol":{"keccak256":"0x350029aa8955eacaffffaeb58babc5c98e80ebc5c5db388ed17ee6465f4a9d90","urls":["bzz-raw://eb392a8ee9050e0af606897df63e3404e3829e8b688b580663892f9664195764","dweb:/ipfs/QmaXC8jqV8UrrAFkzXTEv2fJF56sy33HhLxAzaRZmUxuXD"],"license":"BUSL-1.1"},"src/contracts/delegator/BaseDelegator.sol":{"keccak256":"0x7c54d491fdd4415b764a9c8defa068e56d4c0c8c9419be0053a1d377669290e8","urls":["bzz-raw://9238bfbad0f6eeb0dc7727724de14380f1980b395902269703d5e2ef07e52e10","dweb:/ipfs/QmPJn1V4HNXcEghYvogGuSTF24dSQUPosR5qtsXcmNqRm3"],"license":"BUSL-1.1"},"src/contracts/delegator/OperatorNetworkSpecificDelegator.sol":{"keccak256":"0x031a10722b9ec49048f0952710401131290adb87e71caf294e864e7ac3b98a16","urls":["bzz-raw://72428febc875134b2f29205e6f294634a1c22a7d5c78d6a9cb2f8196f107c9b5","dweb:/ipfs/QmTPwXR6h5oytckmkLrHdKeEMdphJxceDhYUR4zvQeWAwY"],"license":"BUSL-1.1"},"src/contracts/libraries/Checkpoints.sol":{"keccak256":"0xba90097c8bfe0a975499428b5f8ac5569483c7d92ccc28c12d70de416aae040c","urls":["bzz-raw://12f5d93ca94cd06d3147db68993165a58e17903ed53682560de61f3085ad4609","dweb:/ipfs/QmePiuAqvXprMLmFZkGZeGjvGPAvsEDHfCDv7BoQhXu9xE"],"license":"MIT"},"src/contracts/libraries/Subnetwork.sol":{"keccak256":"0xf5ef5506fd66082b3c2e7f3df37529f5a8efad32ac62e7c8914bd63219190bfe","urls":["bzz-raw://ba031a54ee0d0e9a270c2b9e18437f5668cfeb659cfd5fe0677459d7fcac2a56","dweb:/ipfs/QmReP3H7qQ78tAfgLnJKsNEQNCQfF1X1Get38Ffd4kzq32"],"license":"MIT"},"src/interfaces/common/IEntity.sol":{"keccak256":"0x8ef4b63d6da63489778ccd5f8d13ebdd527dd4b62730b2c616df5af7474d2d21","urls":["bzz-raw://5a8d69576a9219d85c50816a18ad53a4d53cfcb27ed38b8cccc808dc2734b71b","dweb:/ipfs/QmYVN3P4Q4REvBWJ97TbAcaxm3uyB2anV6NSGa6ZtSwcEv"],"license":"MIT"},"src/interfaces/common/IMigratableEntity.sol":{"keccak256":"0x8f5f2809f3afbe8ebfbb365dd7b57b4dd3b6f9943a6187eaf648d45895b8e3c4","urls":["bzz-raw://0ffe640537d539e7a4fde70d30d3e4c57f4ba9c2c25c450cea713aae38e8fd5c","dweb:/ipfs/QmSUTGzvdcn1R1KB7tLThMRtESsfPbeXDhhhKWGtntzBds"],"license":"MIT"},"src/interfaces/common/IRegistry.sol":{"keccak256":"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb","urls":["bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014","dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK"],"license":"MIT"},"src/interfaces/common/IStaticDelegateCallable.sol":{"keccak256":"0xa335d4e81b9071b7de66ef92b43ff20671d86516eb1be46fef29a3483cd3f5d5","urls":["bzz-raw://d464b9db863c14c05547d2b23352f2e9b7b784799cf09f6bbc4906a2a74e3516","dweb:/ipfs/QmUVWzFvJz7eEbDQKiFTTzwi7TEbjcs3VmwdM4kuptAKvi"],"license":"MIT"},"src/interfaces/delegator/IBaseDelegator.sol":{"keccak256":"0x96bb312f032e17accce3f8f80936d99468029d6b37c9ca74acdb4b026a0148ee","urls":["bzz-raw://2a66dcb5b7d1a6ef6a363431ea98ebd78bc4fdd3d7a134d9b542dc66e7d025c2","dweb:/ipfs/QmRhTPLd2ZAyRHmJUFUcWKs9b3if49QY17LYZuRqWmghw8"],"license":"MIT"},"src/interfaces/delegator/IDelegatorHook.sol":{"keccak256":"0xc51aa8d7d1f6c8043ee819b7aeb86da0e993912e1442098df897e299f01f9f46","urls":["bzz-raw://adddf5cb2ba282aeb576b26efb28640f865a1721cc9b6eee8b3ee0457a2c9780","dweb:/ipfs/QmNYgAmnLRwWZbhTuQhZs9rx4zcme1df5mEepkrniorSoW"],"license":"MIT"},"src/interfaces/delegator/IOperatorNetworkSpecificDelegator.sol":{"keccak256":"0x74b95e64d29769202d45dd277bb830f623ff3d41ce77b80ce3ee4e318a5c71ec","urls":["bzz-raw://e512b903aae5c1b8a028c6e3f4f6223b5cb5d704503cfa6bd37b5346868f5c20","dweb:/ipfs/QmZim9YExsPWtyxyeui993HTKAEmrg8MUcSkZ77Gp2JcuZ"],"license":"MIT"},"src/interfaces/service/IOptInService.sol":{"keccak256":"0x76fb5460a6d87a5705433d4fbeff7253cd75b8bbd0c888b2088f16e86ace146a","urls":["bzz-raw://990322019b3d11465f7024bae77ccbf7e2fe5d6fa3c754584778f37d04fa1337","dweb:/ipfs/QmaSNHzcqxTkUCG9a4nqVfLECHLdjdrwAnDi3yDC7tDL24"],"license":"MIT"},"src/interfaces/vault/IVault.sol":{"keccak256":"0xffee01d383cd4e1a5530c614bf4360c1ef070c288abec9da1eb531b51bc07235","urls":["bzz-raw://04f0046cac285d8ec44ebbb1f79dc94fab4495767190cad8364fbc1fafaadfb9","dweb:/ipfs/QmUawAunwzXfCyShWfhKeThAgKtqe51hmrxvrXvM772M2R"],"license":"MIT"},"src/interfaces/vault/IVaultStorage.sol":{"keccak256":"0x592626f13754194f83047135de19229c49390bd59e34659b1bb38be71d973a22","urls":["bzz-raw://06a6a9dfddd05e580b32bebe2cff4f63ba26a653180676d58225dd30d9c89d3e","dweb:/ipfs/QmdgzBeY6Sxo8mGtyBxtv1tM1c2kU6J6zjeRd7vuXm4DU6"],"license":"MIT"}},"version":1},"id":79} \ No newline at end of file diff --git a/out/OperatorRegistry.sol/OperatorRegistry.json b/out/OperatorRegistry.sol/OperatorRegistry.json index 35b2b075..fb64bec1 100644 --- a/out/OperatorRegistry.sol/OperatorRegistry.json +++ b/out/OperatorRegistry.sol/OperatorRegistry.json @@ -1 +1 @@ -{"abi":[{"type":"function","name":"entity","inputs":[{"name":"index","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"isEntity","inputs":[{"name":"entity_","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"registerOperator","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"totalEntities","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"event","name":"AddEntity","inputs":[{"name":"entity","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"error","name":"EntityNotExist","inputs":[]},{"type":"error","name":"OperatorAlreadyRegistered","inputs":[]}],"bytecode":{"object":"0x60808060405234601557610241908161001a8239f35b5f80fdfe60806040526004361015610011575f80fd5b5f3560e01c806314887c581461013d5780632acde098146100d15780635cd8b15e146100b55763b42ba2a214610045575f80fd5b346100b15760203660031901126100b1576004355f5481101561009d575f80527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e56301546040516001600160a01b039091168152602090f35b634e487b7160e01b5f52603260045260245ffd5b5f80fd5b346100b1575f3660031901126100b15760205f54604051908152f35b346100b1575f3660031901126100b1576100f6335f52600160205260405f2054151590565b61012b5761010333610184565b50337fb919910dcefbf753bfd926ab3b1d3f85d877190c3d01ba1bd585047b99b99f0b5f80a2005b6040516342ee68b560e01b8152600490fd5b346100b15760203660031901126100b1576004356001600160a01b038116908190036100b15761017a6020915f52600160205260405f2054151590565b6040519015158152f35b805f52600160205260405f2054155f14610206575f54680100000000000000008110156101f25760018101805f5581101561009d5781907f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e56301555f54905f52600160205260405f2055600190565b634e487b7160e01b5f52604160045260245ffd5b505f9056fea264697066735822122075b5716387895e629e74b8e3c027010c3b81a41d26ee7b556bbe4c038045108064736f6c63430008190033","sourceMap":"183:289:70:-:0;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361015610011575f80fd5b5f3560e01c806314887c581461013d5780632acde098146100d15780635cd8b15e146100b55763b42ba2a214610045575f80fd5b346100b15760203660031901126100b1576004355f5481101561009d575f80527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e56301546040516001600160a01b039091168152602090f35b634e487b7160e01b5f52603260045260245ffd5b5f80fd5b346100b1575f3660031901126100b15760205f54604051908152f35b346100b1575f3660031901126100b1576100f6335f52600160205260405f2054151590565b61012b5761010333610184565b50337fb919910dcefbf753bfd926ab3b1d3f85d877190c3d01ba1bd585047b99b99f0b5f80a2005b6040516342ee68b560e01b8152600490fd5b346100b15760203660031901126100b1576004356001600160a01b038116908190036100b15761017a6020915f52600160205260405f2054151590565b6040519015158152f35b805f52600160205260405f2054155f14610206575f54680100000000000000008110156101f25760018101805f5581101561009d5781907f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e56301555f54905f52600160205260405f2055600190565b634e487b7160e01b5f52604160045260245ffd5b505f9056fea264697066735822122075b5716387895e629e74b8e3c027010c3b81a41d26ee7b556bbe4c038045108064736f6c63430008190033","sourceMap":"183:289:70:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;183:289:70;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;183:289:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;183:289:70;;;;;;;;;;;;;;;;;;;-1:-1:-1;;183:289:70;;;;8974:55:62;359:10:70;183:289;;4360:14:62;183:289:70;;;;;;4360:26:62;;4264:129;;8974:55;346:85:70;;8409:50:62;359:10:70;8409:50:62;:::i;:::-;;359:10:70;1077:18:79;183:289:70;1077:18:79;;183:289:70;346:85;183:289;;-1:-1:-1;;;393:27:70;;183:289;;393:27;183:289;;;;;;-1:-1:-1;;183:289:70;;;;;;-1:-1:-1;;;;;183:289:70;;;;;;;;8974:55:62;183:289:70;8974:55:62;183:289:70;;4360:14:62;183:289:70;;;;;;4360:26:62;;4264:129;;8974:55;183:289:70;;;;;;;;2241:406:62;183:289:70;;;4360:14:62;183:289:70;;;;;;4360:26:62;2320:321;183:289:70;;;;;;;;;;;4360:14:62;183:289:70;;;;;;;;;;;;;;;;;;;;4360:14:62;183:289:70;;;;;;4360:14:62;2576:11;:::o;183:289:70:-;;;;;;;;;;;;2320:321:62;2618:12;183:289:70;2618:12:62;:::o","linkReferences":{}},"methodIdentifiers":{"entity(uint256)":"b42ba2a2","isEntity(address)":"14887c58","registerOperator()":"2acde098","totalEntities()":"5cd8b15e"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"EntityNotExist\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OperatorAlreadyRegistered\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"entity\",\"type\":\"address\"}],\"name\":\"AddEntity\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"entity\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"entity_\",\"type\":\"address\"}],\"name\":\"isEntity\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"registerOperator\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalEntities\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"events\":{\"AddEntity(address)\":{\"params\":{\"entity\":\"address of the added entity\"}}},\"kind\":\"dev\",\"methods\":{\"entity(uint256)\":{\"params\":{\"index\":\"index of the entity to get\"},\"returns\":{\"_0\":\"address of the entity\"}},\"isEntity(address)\":{\"params\":{\"account\":\"address to check\"},\"returns\":{\"_0\":\"if the given address is an entity\"}},\"totalEntities()\":{\"returns\":{\"_0\":\"total number of entities added\"}}},\"version\":1},\"userdoc\":{\"events\":{\"AddEntity(address)\":{\"notice\":\"Emitted when an entity is added.\"}},\"kind\":\"user\",\"methods\":{\"entity(uint256)\":{\"notice\":\"Get an entity given its index.\"},\"isEntity(address)\":{\"notice\":\"Get if a given address is an entity.\"},\"registerOperator()\":{\"notice\":\"Register the caller as an operator.\"},\"totalEntities()\":{\"notice\":\"Get a total number of entities.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/contracts/OperatorRegistry.sol\":\"OperatorRegistry\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0x86c1470cbfd878491e5de030072b647352d36bd27122cffb928970b1945282aa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ad85dd393ee0a1917c57046abc5155f51f77844b2c6a42c05c1b8dd26d6ff3c1\",\"dweb:/ipfs/QmNqYc8To2NdnpP6E1tGz7t6A7beuENde5yovwov5pW1fA\"]},\"src/contracts/OperatorRegistry.sol\":{\"keccak256\":\"0xa2d811a9525b3dcbef2dd87ba0ece6fbc30f8d404a8ec9ca01a42d16414dbed4\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://6c20a1f1a47c33c7bd1ebc53163de727622ee20ac0a883fee81676be5d8fc10d\",\"dweb:/ipfs/QmYDfR13eeiKws7UZ898ur86xYvq5RQb9p8RF5q65yyQsT\"]},\"src/contracts/common/Registry.sol\":{\"keccak256\":\"0x4a4004836d920953a8ec6e223de9a330f43acf7a5b93c6b8b3e4a95e0f129889\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://e8bdda207f3852c683a2b481602239a914f7e26bcd042ade618e263a43b67652\",\"dweb:/ipfs/Qmb8GZykJWxZcfwNp3SqhFizDFydFuV6LXgemV3vnWyLyu\"]},\"src/interfaces/IOperatorRegistry.sol\":{\"keccak256\":\"0x6a606147504ec73b241a390739a3554add67fbd1b7e1dd2e2011acbf68d077af\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d46135057ecf37739be6965bf8a5439f911b463f209f66b53b97823c7e7299fe\",\"dweb:/ipfs/QmQSTrGuR8opR8n2anAnQFu7KQysdFzDjR44xCC7dbqs8v\"]},\"src/interfaces/common/IRegistry.sol\":{\"keccak256\":\"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014\",\"dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.25+commit.b61c2a91"},"language":"Solidity","output":{"abi":[{"inputs":[],"type":"error","name":"EntityNotExist"},{"inputs":[],"type":"error","name":"OperatorAlreadyRegistered"},{"inputs":[{"internalType":"address","name":"entity","type":"address","indexed":true}],"type":"event","name":"AddEntity","anonymous":false},{"inputs":[{"internalType":"uint256","name":"index","type":"uint256"}],"stateMutability":"view","type":"function","name":"entity","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"entity_","type":"address"}],"stateMutability":"view","type":"function","name":"isEntity","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"registerOperator"},{"inputs":[],"stateMutability":"view","type":"function","name":"totalEntities","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]}],"devdoc":{"kind":"dev","methods":{"entity(uint256)":{"params":{"index":"index of the entity to get"},"returns":{"_0":"address of the entity"}},"isEntity(address)":{"params":{"account":"address to check"},"returns":{"_0":"if the given address is an entity"}},"totalEntities()":{"returns":{"_0":"total number of entities added"}}},"version":1},"userdoc":{"kind":"user","methods":{"entity(uint256)":{"notice":"Get an entity given its index."},"isEntity(address)":{"notice":"Get if a given address is an entity."},"registerOperator()":{"notice":"Register the caller as an operator."},"totalEntities()":{"notice":"Get a total number of entities."}},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/contracts/OperatorRegistry.sol":"OperatorRegistry"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0x86c1470cbfd878491e5de030072b647352d36bd27122cffb928970b1945282aa","urls":["bzz-raw://ad85dd393ee0a1917c57046abc5155f51f77844b2c6a42c05c1b8dd26d6ff3c1","dweb:/ipfs/QmNqYc8To2NdnpP6E1tGz7t6A7beuENde5yovwov5pW1fA"],"license":"MIT"},"src/contracts/OperatorRegistry.sol":{"keccak256":"0xa2d811a9525b3dcbef2dd87ba0ece6fbc30f8d404a8ec9ca01a42d16414dbed4","urls":["bzz-raw://6c20a1f1a47c33c7bd1ebc53163de727622ee20ac0a883fee81676be5d8fc10d","dweb:/ipfs/QmYDfR13eeiKws7UZ898ur86xYvq5RQb9p8RF5q65yyQsT"],"license":"BUSL-1.1"},"src/contracts/common/Registry.sol":{"keccak256":"0x4a4004836d920953a8ec6e223de9a330f43acf7a5b93c6b8b3e4a95e0f129889","urls":["bzz-raw://e8bdda207f3852c683a2b481602239a914f7e26bcd042ade618e263a43b67652","dweb:/ipfs/Qmb8GZykJWxZcfwNp3SqhFizDFydFuV6LXgemV3vnWyLyu"],"license":"BUSL-1.1"},"src/interfaces/IOperatorRegistry.sol":{"keccak256":"0x6a606147504ec73b241a390739a3554add67fbd1b7e1dd2e2011acbf68d077af","urls":["bzz-raw://d46135057ecf37739be6965bf8a5439f911b463f209f66b53b97823c7e7299fe","dweb:/ipfs/QmQSTrGuR8opR8n2anAnQFu7KQysdFzDjR44xCC7dbqs8v"],"license":"MIT"},"src/interfaces/common/IRegistry.sol":{"keccak256":"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb","urls":["bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014","dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK"],"license":"MIT"}},"version":1},"id":70} \ No newline at end of file +{"abi":[{"type":"function","name":"entity","inputs":[{"name":"index","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"isEntity","inputs":[{"name":"entity_","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"registerOperator","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"totalEntities","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"event","name":"AddEntity","inputs":[{"name":"entity","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"error","name":"EntityNotExist","inputs":[]},{"type":"error","name":"OperatorAlreadyRegistered","inputs":[]}],"bytecode":{"object":"0x60808060405234601557610241908161001a8239f35b5f80fdfe60806040526004361015610011575f80fd5b5f3560e01c806314887c581461013d5780632acde098146100d15780635cd8b15e146100b55763b42ba2a214610045575f80fd5b346100b15760203660031901126100b1576004355f5481101561009d575f80527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e56301546040516001600160a01b039091168152602090f35b634e487b7160e01b5f52603260045260245ffd5b5f80fd5b346100b1575f3660031901126100b15760205f54604051908152f35b346100b1575f3660031901126100b1576100f6335f52600160205260405f2054151590565b61012b5761010333610184565b50337fb919910dcefbf753bfd926ab3b1d3f85d877190c3d01ba1bd585047b99b99f0b5f80a2005b6040516342ee68b560e01b8152600490fd5b346100b15760203660031901126100b1576004356001600160a01b038116908190036100b15761017a6020915f52600160205260405f2054151590565b6040519015158152f35b805f52600160205260405f2054155f14610206575f54680100000000000000008110156101f25760018101805f5581101561009d5781907f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e56301555f54905f52600160205260405f2055600190565b634e487b7160e01b5f52604160045260245ffd5b505f9056fea264697066735822122077e93113fb982ae02c0a41b82d2748dbea47776eb9ecfa1fc44d11a0333ed06864736f6c63430008190033","sourceMap":"183:289:65:-:0;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361015610011575f80fd5b5f3560e01c806314887c581461013d5780632acde098146100d15780635cd8b15e146100b55763b42ba2a214610045575f80fd5b346100b15760203660031901126100b1576004355f5481101561009d575f80527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e56301546040516001600160a01b039091168152602090f35b634e487b7160e01b5f52603260045260245ffd5b5f80fd5b346100b1575f3660031901126100b15760205f54604051908152f35b346100b1575f3660031901126100b1576100f6335f52600160205260405f2054151590565b61012b5761010333610184565b50337fb919910dcefbf753bfd926ab3b1d3f85d877190c3d01ba1bd585047b99b99f0b5f80a2005b6040516342ee68b560e01b8152600490fd5b346100b15760203660031901126100b1576004356001600160a01b038116908190036100b15761017a6020915f52600160205260405f2054151590565b6040519015158152f35b805f52600160205260405f2054155f14610206575f54680100000000000000008110156101f25760018101805f5581101561009d5781907f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e56301555f54905f52600160205260405f2055600190565b634e487b7160e01b5f52604160045260245ffd5b505f9056fea264697066735822122077e93113fb982ae02c0a41b82d2748dbea47776eb9ecfa1fc44d11a0333ed06864736f6c63430008190033","sourceMap":"183:289:65:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;183:289:65;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;183:289:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;183:289:65;;;;;;;;;;;;;;;;;;;-1:-1:-1;;183:289:65;;;;8974:55:61;359:10:65;183:289;;4360:14:61;183:289:65;;;;;;4360:26:61;;4264:129;;8974:55;346:85:65;;8409:50:61;359:10:65;8409:50:61;:::i;:::-;;359:10:65;1077:18:74;183:289:65;1077:18:74;;183:289:65;346:85;183:289;;-1:-1:-1;;;393:27:65;;183:289;;393:27;183:289;;;;;;-1:-1:-1;;183:289:65;;;;;;-1:-1:-1;;;;;183:289:65;;;;;;;;8974:55:61;183:289:65;8974:55:61;183:289:65;;4360:14:61;183:289:65;;;;;;4360:26:61;;4264:129;;8974:55;183:289:65;;;;;;;;2241:406:61;183:289:65;;;4360:14:61;183:289:65;;;;;;4360:26:61;2320:321;183:289:65;;;;;;;;;;;4360:14:61;183:289:65;;;;;;;;;;;;;;;;;;;;4360:14:61;183:289:65;;;;;;4360:14:61;2576:11;:::o;183:289:65:-;;;;;;;;;;;;2320:321:61;2618:12;183:289:65;2618:12:61;:::o","linkReferences":{}},"methodIdentifiers":{"entity(uint256)":"b42ba2a2","isEntity(address)":"14887c58","registerOperator()":"2acde098","totalEntities()":"5cd8b15e"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"EntityNotExist\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OperatorAlreadyRegistered\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"entity\",\"type\":\"address\"}],\"name\":\"AddEntity\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"entity\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"entity_\",\"type\":\"address\"}],\"name\":\"isEntity\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"registerOperator\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalEntities\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"events\":{\"AddEntity(address)\":{\"params\":{\"entity\":\"address of the added entity\"}}},\"kind\":\"dev\",\"methods\":{\"entity(uint256)\":{\"params\":{\"index\":\"index of the entity to get\"},\"returns\":{\"_0\":\"address of the entity\"}},\"isEntity(address)\":{\"params\":{\"account\":\"address to check\"},\"returns\":{\"_0\":\"if the given address is an entity\"}},\"totalEntities()\":{\"returns\":{\"_0\":\"total number of entities added\"}}},\"version\":1},\"userdoc\":{\"events\":{\"AddEntity(address)\":{\"notice\":\"Emitted when an entity is added.\"}},\"kind\":\"user\",\"methods\":{\"entity(uint256)\":{\"notice\":\"Get an entity given its index.\"},\"isEntity(address)\":{\"notice\":\"Get if a given address is an entity.\"},\"registerOperator()\":{\"notice\":\"Register the caller as an operator.\"},\"totalEntities()\":{\"notice\":\"Get a total number of entities.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/contracts/OperatorRegistry.sol\":\"OperatorRegistry\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0x86c1470cbfd878491e5de030072b647352d36bd27122cffb928970b1945282aa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ad85dd393ee0a1917c57046abc5155f51f77844b2c6a42c05c1b8dd26d6ff3c1\",\"dweb:/ipfs/QmNqYc8To2NdnpP6E1tGz7t6A7beuENde5yovwov5pW1fA\"]},\"src/contracts/OperatorRegistry.sol\":{\"keccak256\":\"0xa2d811a9525b3dcbef2dd87ba0ece6fbc30f8d404a8ec9ca01a42d16414dbed4\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://6c20a1f1a47c33c7bd1ebc53163de727622ee20ac0a883fee81676be5d8fc10d\",\"dweb:/ipfs/QmYDfR13eeiKws7UZ898ur86xYvq5RQb9p8RF5q65yyQsT\"]},\"src/contracts/common/Registry.sol\":{\"keccak256\":\"0x4a4004836d920953a8ec6e223de9a330f43acf7a5b93c6b8b3e4a95e0f129889\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://e8bdda207f3852c683a2b481602239a914f7e26bcd042ade618e263a43b67652\",\"dweb:/ipfs/Qmb8GZykJWxZcfwNp3SqhFizDFydFuV6LXgemV3vnWyLyu\"]},\"src/interfaces/IOperatorRegistry.sol\":{\"keccak256\":\"0x6a606147504ec73b241a390739a3554add67fbd1b7e1dd2e2011acbf68d077af\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d46135057ecf37739be6965bf8a5439f911b463f209f66b53b97823c7e7299fe\",\"dweb:/ipfs/QmQSTrGuR8opR8n2anAnQFu7KQysdFzDjR44xCC7dbqs8v\"]},\"src/interfaces/common/IRegistry.sol\":{\"keccak256\":\"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014\",\"dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.25+commit.b61c2a91"},"language":"Solidity","output":{"abi":[{"inputs":[],"type":"error","name":"EntityNotExist"},{"inputs":[],"type":"error","name":"OperatorAlreadyRegistered"},{"inputs":[{"internalType":"address","name":"entity","type":"address","indexed":true}],"type":"event","name":"AddEntity","anonymous":false},{"inputs":[{"internalType":"uint256","name":"index","type":"uint256"}],"stateMutability":"view","type":"function","name":"entity","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"entity_","type":"address"}],"stateMutability":"view","type":"function","name":"isEntity","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"registerOperator"},{"inputs":[],"stateMutability":"view","type":"function","name":"totalEntities","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]}],"devdoc":{"kind":"dev","methods":{"entity(uint256)":{"params":{"index":"index of the entity to get"},"returns":{"_0":"address of the entity"}},"isEntity(address)":{"params":{"account":"address to check"},"returns":{"_0":"if the given address is an entity"}},"totalEntities()":{"returns":{"_0":"total number of entities added"}}},"version":1},"userdoc":{"kind":"user","methods":{"entity(uint256)":{"notice":"Get an entity given its index."},"isEntity(address)":{"notice":"Get if a given address is an entity."},"registerOperator()":{"notice":"Register the caller as an operator."},"totalEntities()":{"notice":"Get a total number of entities."}},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/contracts/OperatorRegistry.sol":"OperatorRegistry"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0x86c1470cbfd878491e5de030072b647352d36bd27122cffb928970b1945282aa","urls":["bzz-raw://ad85dd393ee0a1917c57046abc5155f51f77844b2c6a42c05c1b8dd26d6ff3c1","dweb:/ipfs/QmNqYc8To2NdnpP6E1tGz7t6A7beuENde5yovwov5pW1fA"],"license":"MIT"},"src/contracts/OperatorRegistry.sol":{"keccak256":"0xa2d811a9525b3dcbef2dd87ba0ece6fbc30f8d404a8ec9ca01a42d16414dbed4","urls":["bzz-raw://6c20a1f1a47c33c7bd1ebc53163de727622ee20ac0a883fee81676be5d8fc10d","dweb:/ipfs/QmYDfR13eeiKws7UZ898ur86xYvq5RQb9p8RF5q65yyQsT"],"license":"BUSL-1.1"},"src/contracts/common/Registry.sol":{"keccak256":"0x4a4004836d920953a8ec6e223de9a330f43acf7a5b93c6b8b3e4a95e0f129889","urls":["bzz-raw://e8bdda207f3852c683a2b481602239a914f7e26bcd042ade618e263a43b67652","dweb:/ipfs/Qmb8GZykJWxZcfwNp3SqhFizDFydFuV6LXgemV3vnWyLyu"],"license":"BUSL-1.1"},"src/interfaces/IOperatorRegistry.sol":{"keccak256":"0x6a606147504ec73b241a390739a3554add67fbd1b7e1dd2e2011acbf68d077af","urls":["bzz-raw://d46135057ecf37739be6965bf8a5439f911b463f209f66b53b97823c7e7299fe","dweb:/ipfs/QmQSTrGuR8opR8n2anAnQFu7KQysdFzDjR44xCC7dbqs8v"],"license":"MIT"},"src/interfaces/common/IRegistry.sol":{"keccak256":"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb","urls":["bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014","dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK"],"license":"MIT"}},"version":1},"id":65} \ No newline at end of file diff --git a/out/OperatorSpecificDelegator.sol/OperatorSpecificDelegator.json b/out/OperatorSpecificDelegator.sol/OperatorSpecificDelegator.json index 2c7e682b..d5cf1665 100644 --- a/out/OperatorSpecificDelegator.sol/OperatorSpecificDelegator.json +++ b/out/OperatorSpecificDelegator.sol/OperatorSpecificDelegator.json @@ -1 +1 @@ -{"abi":[{"type":"constructor","inputs":[{"name":"operatorRegistry","type":"address","internalType":"address"},{"name":"networkRegistry","type":"address","internalType":"address"},{"name":"vaultFactory","type":"address","internalType":"address"},{"name":"operatorVaultOptInService","type":"address","internalType":"address"},{"name":"operatorNetworkOptInService","type":"address","internalType":"address"},{"name":"delegatorFactory","type":"address","internalType":"address"},{"name":"entityType","type":"uint64","internalType":"uint64"}],"stateMutability":"nonpayable"},{"type":"function","name":"DEFAULT_ADMIN_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"FACTORY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"HOOK_GAS_LIMIT","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"HOOK_RESERVE","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"HOOK_SET_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"NETWORK_LIMIT_SET_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"NETWORK_REGISTRY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"OPERATOR_NETWORK_OPT_IN_SERVICE","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"OPERATOR_REGISTRY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"OPERATOR_VAULT_OPT_IN_SERVICE","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"TYPE","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"VAULT_FACTORY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"VERSION","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"pure"},{"type":"function","name":"getRoleAdmin","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"grantRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"hasRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"hook","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"initialize","inputs":[{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"maxNetworkLimit","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"value","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"networkLimit","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"networkLimitAt","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"timestamp","type":"uint48","internalType":"uint48"},{"name":"hint","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"onSlash","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"captureTimestamp","type":"uint48","internalType":"uint48"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"operator","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"renounceRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"callerConfirmation","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"revokeRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setHook","inputs":[{"name":"hook_","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setMaxNetworkLimit","inputs":[{"name":"identifier","type":"uint96","internalType":"uint96"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setNetworkLimit","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"stake","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"stakeAt","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"timestamp","type":"uint48","internalType":"uint48"},{"name":"hints","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"staticDelegateCall","inputs":[{"name":"target","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"vault","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"OnSlash","inputs":[{"name":"subnetwork","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"captureTimestamp","type":"uint48","indexed":false,"internalType":"uint48"}],"anonymous":false},{"type":"event","name":"RoleAdminChanged","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"previousAdminRole","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"newAdminRole","type":"bytes32","indexed":true,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"RoleGranted","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"sender","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"RoleRevoked","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"sender","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"SetHook","inputs":[{"name":"hook","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"SetMaxNetworkLimit","inputs":[{"name":"subnetwork","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"SetNetworkLimit","inputs":[{"name":"subnetwork","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"error","name":"AccessControlBadConfirmation","inputs":[]},{"type":"error","name":"AccessControlUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"neededRole","type":"bytes32","internalType":"bytes32"}]},{"type":"error","name":"AlreadySet","inputs":[]},{"type":"error","name":"CheckpointUnorderedInsertion","inputs":[]},{"type":"error","name":"DuplicateRoleHolder","inputs":[]},{"type":"error","name":"ExceedsMaxNetworkLimit","inputs":[]},{"type":"error","name":"InsufficientHookGas","inputs":[]},{"type":"error","name":"InvalidInitialization","inputs":[]},{"type":"error","name":"MissingRoleHolders","inputs":[]},{"type":"error","name":"NotInitialized","inputs":[]},{"type":"error","name":"NotInitializing","inputs":[]},{"type":"error","name":"NotNetwork","inputs":[]},{"type":"error","name":"NotOperator","inputs":[]},{"type":"error","name":"NotSlasher","inputs":[]},{"type":"error","name":"NotVault","inputs":[]},{"type":"error","name":"ReentrancyGuardReentrantCall","inputs":[]},{"type":"error","name":"SafeCastOverflowedUintDowncast","inputs":[{"name":"bits","type":"uint8","internalType":"uint8"},{"name":"value","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ZeroAddressRoleHolder","inputs":[]}],"bytecode":{"object":"0x610160346101c2576001600160401b0390601f612a7a38819003918201601f191683019190848311848410176101c6578160e092859260409586528339810103126101c25761004d826101da565b9061005a602084016101da565b6100658285016101da565b90610072606086016101da565b9561007f608087016101da565b9560c061008e60a083016101da565b9101519180831683036101c2577ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a009081549060ff82891c166101b157808083160361016d575b50505060805260a05260c05260e052610100938452610120928352610140918252519161288b93846101ef8539608051846105ea015260a05184610d14015260c0518481816104690152610d4d015260e05184818161035f0152611b540152518381816103a30152818161133601526114850152518281816103e70152818161129d0152611503015251818181610b9401526122440152f35b6001600160401b0319909116811790915585519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a15f80806100d4565b875163f92ee8a960e01b8152600490fd5b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b51906001600160a01b03821682036101c25756fe60806040526004361015610011575f80fd5b5f3560e01c806301ffc9a714610224578063021453481461021f578063103f29071461021a578063128e5d82146102155780631a80e5001461021057806323f752d51461020b578063248a9ca3146102065780632dd31000146102015780632f2ff15d146101fc57806336568abe146101f75780633dfd3873146101f25780633eb22c0f146101ed578063439fab91146101e8578063557cab44146101e3578063570ca735146101de5780635d32a1c9146101d95780636679191e146101d45780637d24bb27146101cf5780637f5a7c7b146101ca57806383ce0322146101c557806391d14854146101c05780639f86fd85146101bb578063a217fddf146101b6578063bb24fe8a146101b1578063c0cd7c3e146101ac578063d15b740e146101a7578063d547741f146101a2578063e02f69371461019d578063e49561ee14610198578063fbfa77cf14610193578063fd4d447c1461018e578063ff54740f146101895763ffa1ad7414610184575f80fd5b6110aa565b61108d565b611063565b61103c565b610e51565b610df2565b610da6565b610d7c565b610d38565b610cf5565b610cdb565b610c21565b610bc3565b610b7f565b610b57565b610b1e565b610ae4565b610a89565b61096c565b610950565b610818565b6107ba565b6106c1565b610676565b61062a565b6105d5565b61059c565b610416565b6103d2565b61038e565b61034a565b61027e565b3461027a57602036600319011261027a5760043563ffffffff60e01b811680910361027a57602090637965db0b60e01b8114908115610269575b506040519015158152f35b6301ffc9a760e01b1490505f61025e565b5f80fd5b3461027a5760408060031936011261027a5760043590602435906102a0611578565b825f526002602052805f2054821161033a57825f526003602052816102c6825f20611a9c565b1461032a5781610325916103157e899d104fc3d8820bd96540612bcc5c448c8837b13b9f7faa43ad0728f0c14f94610306875f52600360205260405f2090565b61030f42611fc3565b90611677565b5050519081529081906020820190565b0390a2005b5163a741a04560e01b8152600490fd5b51631eefc06360e31b8152600490fd5b3461027a575f36600319011261027a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461027a575f36600319011261027a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461027a575f36600319011261027a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461027a57604036600319011261027a576004356001600160601b038116810361027a5760243590610446611739565b6040516302910f8b60e31b81523360048201526020816024816001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165afa908115610597575f91610568575b5015610556576001600160601b03166bffffffffffffffffffffffff193360601b161790806104d0835f52600260205260405f2090565b541461054457610529817fc67e7929681aa1bccd63f52b3799bf5805f3009f197db6fdf584b14f7fbf608c9261050e855f52600260205260405f2090565b556105198185611768565b6040519081529081906020820190565b0390a261054260015f8051602061281683398151915255565b005b60405163a741a04560e01b8152600490fd5b6040516323d53b9760e21b8152600490fd5b61058a915060203d602011610590575b61058281836109f8565b8101906110c5565b5f610499565b503d610578565b6110dd565b3461027a57602036600319011261027a576004355f525f805160206127f68339815191526020526020600160405f200154604051908152f35b3461027a575f36600319011261027a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b6001600160a01b0381160361027a57565b3461027a57604036600319011261027a5761054260243560043561064d82610619565b805f525f805160206127f6833981519152602052610671600160405f2001546115d4565b6119d4565b3461027a57604036600319011261027a5760243561069381610619565b336001600160a01b038216036106af5761054290600435611a0a565b60405163334bd91960e11b8152600490fd5b3461027a57602036600319011261027a576004356106de81610619565b6106e6611739565b335f9081527f9ebbcbe0d2961d3fbe56ca6f679bc753bd848d3e6bb3eaf9041c51b286881d2c60205260409020547fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c9060ff161561079c57506001546001600160a01b039182169181168214610544576001600160a01b03191681176001557f5bbb1d3ebb6a3ad2a0f17ff35e579a83af60604d1d3c2a4c83c62adecadf666d5f80a260015f8051602061281683398151915255005b6044906040519063e2517d3f60e01b82523360048301526024820152fd5b3461027a57602036600319011261027a576004355f52600360205260206107e360405f20611a9c565b604051908152f35b9181601f8401121561027a578235916001600160401b03831161027a576020838186019501011161027a57565b3461027a57602036600319011261027a576001600160401b0360043581811161027a576108499036906004016107eb565b5f80516020612836833981519152549260ff8460401c1615931680159081610948575b600114908161093e575b159081610935575b50610923575f80516020612836833981519152805467ffffffffffffffff191660011790556108b191836108ff57611b1f565b6108b757005b5f80516020612836833981519152805460ff60401b19169055604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a1005b5f80516020612836833981519152805460ff60401b1916600160401b179055611b1f565b60405163f92ee8a960e01b8152600490fd5b9050155f61087e565b303b159150610876565b84915061086c565b3461027a575f36600319011261027a576020604051614e208152f35b3461027a575f36600319011261027a576004546040516001600160a01b039091168152602090f35b6064359065ffffffffffff8216820361027a57565b634e487b7160e01b5f52604160045260245ffd5b604081019081106001600160401b038211176109d857604052565b6109a9565b606081019081106001600160401b038211176109d857604052565b90601f801991011681019081106001600160401b038211176109d857604052565b60405190610a26826109bd565b565b6001600160401b0381116109d857601f01601f191660200190565b81601f8201121561027a57803590610a5a82610a28565b92610a6860405194856109f8565b8284526020838301011161027a57815f926020809301838601378301015290565b3461027a57606036600319011261027a5760243565ffffffffffff8116810361027a576044356001600160401b03811161027a57602091610ad16107e3923690600401610a43565b906004355f526003845260405f20611c8e565b3461027a575f36600319011261027a5760206040517fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c8152f35b3461027a575f36600319011261027a5760206040517e8b9b1e5fa9cf3b14f87f435649268146305ddf689f082e5961a335b07a9abf8152f35b3461027a575f36600319011261027a576001546040516001600160a01b039091168152602090f35b3461027a575f36600319011261027a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461027a57604036600319011261027a57602060ff610c15602435610be781610619565b6004355f525f805160206127f6833981519152845260405f209060018060a01b03165f5260205260405f2090565b54166040519015158152f35b3461027a5760408060031936011261027a57600435610c3f81610619565b602435906001600160401b03821161027a575f8091610c65610cc99436906004016107eb565b908187519283928337810184815203915af43d15610cd157610cbb3d610c8a81610a28565b90610c97865192836109f8565b81523d5f602083013e5b845194859315156020850152808401526060830190611101565b03601f1981018352826109f8565b805190602001fd5b610cbb6060610ca1565b3461027a575f36600319011261027a5760206040515f8152f35b3461027a575f36600319011261027a5760206040516001600160401b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461027a575f36600319011261027a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461027a57602036600319011261027a576004355f526002602052602060405f2054604051908152f35b3461027a57604036600319011261027a57610542602435600435610dc982610619565b805f525f805160206127f6833981519152602052610ded600160405f2001546115d4565b611a0a565b3461027a57608036600319011261027a57602435610e0f81610619565b6044359065ffffffffffff8216820361027a57606435906001600160401b03821161027a57602092610e486107e3933690600401610a43565b91600435611227565b3461027a5760a036600319011261027a57602435600435610e7182610619565b60443591610e7d610994565b90608435906001600160401b03821161027a57610e9f60049236908401610a43565b610ea7611739565b5f54602090610ecc90610ec0906001600160a01b031681565b6001600160a01b031690565b60405163b134427160e01b815294859182905afa928315610597575f9361100b575b506001600160a01b039283163303610ff9576001546001600160a01b0316838116610f6e575b50506040805195865265ffffffffffff909316602086015216927f741a5de99085c0d660f3e4192217b0ffb0ea4e35a0480de48e857a4bc3ee36ed91819081015b0390a361054260015f8051602061281683398151915255565b909360405194610fa586610f97602082019363724ab0f760e11b8552858c898d602487016113d1565b03601f1981018852876109f8565b62042e305a10610fe7575f610f55938192827f741a5de99085c0d660f3e4192217b0ffb0ea4e35a0480de48e857a4bc3ee36ed9951926203d090f15093610f14565b604051638072475160e01b8152600490fd5b60405163dabc4ad960e01b8152600490fd5b61102e91935060203d602011611035575b61102681836109f8565b8101906113bc565b915f610eee565b503d61101c565b3461027a575f36600319011261027a575f546040516001600160a01b039091168152602090f35b3461027a57604036600319011261027a5760206107e360243561108581610619565b60043561144e565b3461027a575f36600319011261027a5760206040516203d0908152f35b3461027a575f36600319011261027a57602060405160018152f35b9081602091031261027a5751801515810361027a5790565b6040513d5f823e3d90fd5b906110fe92915f52600360205260405f20611c8e565b90565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b60405190611132826109bd565b60606020838281520152565b81601f8201121561027a5780519061115582610a28565b9261116360405194856109f8565b8284526020838301011161027a57815f9260208093018386015e8301015290565b9060208282031261027a5781516001600160401b039283821161027a57019060408282031261027a57604051926111ba846109bd565b825181811161027a57826111cf91850161113e565b8452602083015190811161027a576111e7920161113e565b602082015290565b6001600160a01b0391821681529116602082015265ffffffffffff90911660408201526080606082018190526110fe92910190611101565b9261123790929192828486611e46565b929093611242611125565b93805180611395575b505084159384156112ff575b841561126e575b505050506112695790565b505f90565b602080949550611299910151604051958694859463530e1d4360e01b865260601c90600486016111ef565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa908115610597575f916112e0575b50155f80808061125e565b6112f9915060203d6020116105905761058281836109f8565b5f6112d5565b5f549094506001600160a01b0316602084865192611332604051948593849363530e1d4360e01b855289600486016111ef565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa908115610597575f91611376575b501593611257565b61138f915060203d6020116105905761058281836109f8565b5f61136e565b6113a9929550602080918301019101611184565b925f8061124b565b5190610a2682610619565b9081602091031261027a57516110fe81610619565b919360a0936110fe969565ffffffffffff938552600180871b0316602085015260408401521660608201528160808201520190611101565b634e487b7160e01b5f52601160045260245ffd5b8115611427570490565b634e487b7160e01b5f52601260045260245ffd5b906001820180921161144957565b611409565b5f546040516308834cb560e21b8082526001600160a01b0385811660048401529283166024830152929392602092909183816044817f000000000000000000000000000000000000000000000000000000000000000086165afa908115610597575f9161155b575b50159182156114d7575b505090506114d1576110fe91611f3b565b50505f90565b6040519081526001600160a01b0385166004820152606086901c602482015291508290829060449082907f0000000000000000000000000000000000000000000000000000000000000000165afa918215610597575f9261153e575b505015805f806114c0565b6115549250803d106105905761058281836109f8565b5f80611533565b6115729150843d86116105905761058281836109f8565b5f6114b6565b335f9081527f72a65082a5691803ab2b62c9bc729b34205ba1b183d950896526b2fd8714d0c7602052604090207e8b9b1e5fa9cf3b14f87f435649268146305ddf689f082e5961a335b07a9abf9060ff905b54161561079c5750565b5f8181525f805160206127f683398151915260209081526040808320338452909152902060ff906115ca565b634e487b7160e01b5f52603260045260245ffd5b8054821015611629575f5260205f2001905f90565b611600565b90815491600160401b8310156109d85782611651916001610a2695018155611614565b90919082549060031b91821b915f19901b1916179055565b5f1981019190821161144957565b90929192600182019081548015611709575b508461169484612019565b509490928454936116a483611a9c565b96816116f4575b50156116d1575050505f1981019081116114495761165185916116cd93611614565b9190565b6116cd9492936116ed926001600160d01b03909116919061251a565b505061162e565b65ffffffffffff83811691161490505f6116ab565b600160401b8110156109d8578060016117259201845583611614565b8154905f199060031b1b191690555f611689565b5f8051602061281683398151915260028154146117565760029055565b604051633ee5aeb560e01b8152600490fd5b90815f52600360205260405f208161177f82612019565b9193905083156117dd5761179f916001600160d01b031690600101611614565b90549060031b1c5b826117d3575b50506117b7575050565b6117cf915f52600360205260405f2061030f42611fc3565b5050565b119050815f6117ad565b50505f6117a7565b6001600160a01b0381165f9081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d60205260409020545f805160206127f68339815191529060ff166114d1575f808052602091825260408082206001600160a01b038516835290925220805460ff1916600117905533906001600160a01b03165f7f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d8180a4600190565b6001600160a01b0381165f9081527f9ebbcbe0d2961d3fbe56ca6f679bc753bd848d3e6bb3eaf9041c51b286881d2c602052604090207fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c905f805160206127f68339815191529060ff905b541661195f575f828152602091825260408082206001600160a01b038616835290925220805460ff1916600117905533916001600160a01b0316907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d5f80a4600190565b5050505f90565b6001600160a01b0381165f9081527f72a65082a5691803ab2b62c9bc729b34205ba1b183d950896526b2fd8714d0c7602052604090207e8b9b1e5fa9cf3b14f87f435649268146305ddf689f082e5961a335b07a9abf905f805160206127f68339815191529060ff906118fb565b5f8181525f805160206127f6833981519152602081815260408084206001600160a01b038716855290915290912060ff906118fb565b5f8181525f805160206127f6833981519152602081815260408084206001600160a01b03871685529091529091205460ff161561195f575f828152602091825260408082206001600160a01b038616835290925220805460ff1916905533916001600160a01b0316907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b5f80a4600190565b805480611acb57505f5b6001600160d01b038116156114d1576001611ac19201611614565b90549060031b1c90565b5f1990808281011161144957825f5260205f2001015460301c611aa6565b91909160408184031261027a578035611b0181610619565b9260208201356001600160401b03811161027a576110fe9201610a43565b611b2b91810190611ae9565b6040516302910f8b60e31b81526001600160a01b039283166004820181905291906020816024817f000000000000000000000000000000000000000000000000000000000000000088165afa908115610597575f91611c3e575b5015611c2c57611bc0604091611bbb611c0694611ba0612068565b60018060a01b03166001600160601b0360a01b5f5416175f55565b6121d4565b6020810151600180546001600160a01b0319166001600160a01b0390921691909117905580516001600160a01b0316848116611c1c575b5001516001600160a01b031690565b908116611c105750565b611c1990611890565b50565b611c25906117e5565b505f611bf7565b6040516362df054560e01b8152600490fd5b611c57915060203d6020116105905761058281836109f8565b5f611b85565b9081602091031261027a575163ffffffff8116810361027a5790565b90600163ffffffff8093160191821161144957565b91805115611d675780602080611ca993518301019101611c5d565b91611cb48382612445565b92611cc5845165ffffffffffff1690565b9065ffffffffffff8085169216828114611d5b5782119182611cfb575b5050611cf2576110fe9250612375565b50506020015190565b909150611d088354611669565b63ffffffff831614918215611d21575b50505f80611ce2565b611d53919250611d3c611d36611d4892611c79565b85612445565b5165ffffffffffff1690565b65ffffffffffff1690565b115f80611d18565b50505050506020015190565b506110fe91612375565b60405190611d7e826109dd565b60606040838281528260208201520152565b9060208282031261027a5781516001600160401b039283821161027a57019060608282031261027a5760405192611dc6846109dd565b825181811161027a5782611ddb91850161113e565b8452602083015181811161027a5782611df591850161113e565b6020850152604083015190811161027a57611e10920161113e565b604082015290565b9081602091031261027a575190565b60409065ffffffffffff6110fe94931681528160208201520190611101565b90939293611e52611d71565b94805180611f1f575b50506004546001600160a01b03918216911603611f17575f54611eb2929190602090611e9190610ec0906001600160a01b031681565b8187015190604051808097819463810da75d60e01b83528860048401611e27565b03915afa90811561059757611edf935f92611ee4575b50611ed991926040870151916110e8565b906124ad565b915190565b611ed99250611f0a9060203d602011611f10575b611f0281836109f8565b810190611e18565b91611ec8565b503d611ef8565b505090515f91565b611f33929650602080918301019101611d90565b935f80611e5b565b6004546001600160a01b0392908316908316036114d15760206004925f54166040519384809263bd49c35f60e01b82525afa908115610597576110fe925f92611f9a575b50611f95611ed9915f52600360205260405f2090565b611a9c565b611ed9919250611fbb611f959160203d602011611f1057611f0281836109f8565b929150611f7f565b65ffffffffffff90818111611fd6571690565b604490604051906306dfcc6560e41b8252603060048301526024820152fd5b90604051612002816109bd565b915465ffffffffffff8116835260301c6020830152565b80548061202a5750505f905f905f90565b5f1990808281011161144957612047925f5260205f200101611ff5565b9065ffffffffffff82511691602060018060d01b0391015116906001929190565b612070612635565b612078612635565b60015f8051602061281683398151915255565b60405190612098826109dd565b5f6040838281528260208201520152565b81601f8201121561027a578051916020916001600160401b0384116109d8578360051b90604051946120dd858401876109f8565b8552838086019282010192831161027a578301905b828210612100575050505090565b838091835161210e81610619565b8152019101906120f2565b60208183031261027a5780516001600160401b039182821161027a5701918281039260a0841261027a57606060405194612152866109dd565b1261027a57604051612163816109dd565b815161216e81610619565b8152602082015161217e81610619565b6020820152604082015161219181610619565b60408201528452606081015192831161027a576121b5608092611e109483016120a9565b6020850152016113b1565b80518210156116295760209160051b010190565b6121dc61208b565b506121f281519160208080948301019101612119565b8051516001600160a01b0393919084161580612369575b612357576040818101805182516302910f8b60e31b81526001600160a01b0390911660048083019190915296929491928690829060249082907f0000000000000000000000000000000000000000000000000000000000000000165afa908115610597575f9161233a575b50156123285791938401915f5b835180518210156122f757610ec061229c836122a9936121c0565b516001600160a01b031690565b156122e7576122cb6122c76122c261229c8488516121c0565b611966565b1590565b6122d757600101612281565b8451635140fefd60e11b81528790fd5b84516323cda06760e01b81528790fd5b50509051600480546001600160a01b0319166001600160a01b039092169190911790559350612324915050565b5190565b604051631f0853c160e21b8152600490fd5b6123519150863d88116105905761058281836109f8565b5f612274565b6040516303501f5960e11b8152600490fd5b50828101515115612209565b908154905f8291600584116123df575b612390935084612796565b806123b857505f905b6001600160d01b038216156114d1576110fe916001611ac19201611614565b6123d26123c76123d992611669565b835f5260205f200190565b5460301c90565b90612399565b91926123ea81612663565b81039081116114495761239093855f5265ffffffffffff808360205f20015416908516105f1461241b575091612385565b9291506124279061143b565b90612385565b6040519061243a826109bd565b5f6020838281520152565b9061246e61246861248f9261245861242d565b5061246161242d565b5084611614565b50611ff5565b91600165ffffffffffff845116936020828060d01b03910151169101611614565b9054906040519261249f846109bd565b835260031b1c602082015290565b90808210156124ba575090565b905090565b8054600160401b8110156109d8576124dc91600182018155611614565b61250757815160209092015160301b65ffffffffffff191665ffffffffffff92909216919091179055565b634e487b7160e01b5f525f60045260245ffd5b80549293929190821561260c5761253b6125366123c785611669565b611ff5565b9061254c825165ffffffffffff1690565b65ffffffffffff848116911681106125fa576116cd94602094889261257a611d48875165ffffffffffff1690565b036125c257506125b49261259061259b92611669565b905f5260205f200190565b9065ffffffffffff82549181199060301b169116179055565b01516001600160d01b031690565b9150506125f5916125e26125d4610a19565b65ffffffffffff9093168352565b6001600160d01b038816828601526124bf565b6125b4565b604051632520601d60e01b8152600490fd5b612630925061261c6125d4610a19565b6001600160d01b03851660208301526124bf565b5f9190565b60ff5f805160206128368339815191525460401c161561265157565b604051631afcd79f60e31b8152600490fd5b80156112695780611ed961272e61272461271a6127106127066126fc6126f260016110fe9a5f908b60801c8061278a575b508060401c8061277d575b508060201c80612770575b508060101c80612763575b508060081c80612756575b508060041c80612749575b508060021c8061273c575b50821c612735575b811c1b6126eb818b61141d565b0160011c90565b6126eb818a61141d565b6126eb818961141d565b6126eb818861141d565b6126eb818761141d565b6126eb818661141d565b6126eb818561141d565b809261141d565b81016126de565b600291509101905f6126d6565b600491509101905f6126cb565b600891509101905f6126c0565b601091509101905f6126b5565b602091509101905f6126aa565b604091509101905f61269f565b9150506080905f612694565b91905b8382106127a65750505090565b9091928083169080841860011c820180921161144957845f5265ffffffffffff808360205f20015416908416105f146127e35750925b9190612799565b9392506127ef9061143b565b916127dc56fe02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268009b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a264697066735822122069e5246e4910fa681bf71ad16d8ba448abe03cec6d90d10bfddbb83eeccc70a264736f6c63430008190033","sourceMap":"611:4324:85:-:0;;;;-1:-1:-1;;;;;611:4324:85;;;;;;;;;;-1:-1:-1;;611:4324:85;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;8837:64:26;611:4324:85;;;;;;;;;7896:76:26;;611:4324:85;;;;7985:34:26;7981:146;;-1:-1:-1;525:17:74;;;611:4324:85;525:17:74;611:4324:85;552:12:74;611:4324:85;2360:34:81;611:4324:85;2404:28:81;2442:57;;;;2509:61;;;;1716:36:85;;;;611:4324;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7981:146:26;-1:-1:-1;;;;;;611:4324:85;;;;;;;;;;;;;8087:29:26;;611:4324:85;;8087:29:26;7981:146;;;;;7896:76;611:4324:85;;-1:-1:-1;;;7938:23:26;;;;;611:4324:85;-1:-1:-1;611:4324:85;;;;;;-1:-1:-1;611:4324:85;;;;;-1:-1:-1;611:4324:85;;;;-1:-1:-1;;;;;611:4324:85;;;;;;:::o","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361015610011575f80fd5b5f3560e01c806301ffc9a714610224578063021453481461021f578063103f29071461021a578063128e5d82146102155780631a80e5001461021057806323f752d51461020b578063248a9ca3146102065780632dd31000146102015780632f2ff15d146101fc57806336568abe146101f75780633dfd3873146101f25780633eb22c0f146101ed578063439fab91146101e8578063557cab44146101e3578063570ca735146101de5780635d32a1c9146101d95780636679191e146101d45780637d24bb27146101cf5780637f5a7c7b146101ca57806383ce0322146101c557806391d14854146101c05780639f86fd85146101bb578063a217fddf146101b6578063bb24fe8a146101b1578063c0cd7c3e146101ac578063d15b740e146101a7578063d547741f146101a2578063e02f69371461019d578063e49561ee14610198578063fbfa77cf14610193578063fd4d447c1461018e578063ff54740f146101895763ffa1ad7414610184575f80fd5b6110aa565b61108d565b611063565b61103c565b610e51565b610df2565b610da6565b610d7c565b610d38565b610cf5565b610cdb565b610c21565b610bc3565b610b7f565b610b57565b610b1e565b610ae4565b610a89565b61096c565b610950565b610818565b6107ba565b6106c1565b610676565b61062a565b6105d5565b61059c565b610416565b6103d2565b61038e565b61034a565b61027e565b3461027a57602036600319011261027a5760043563ffffffff60e01b811680910361027a57602090637965db0b60e01b8114908115610269575b506040519015158152f35b6301ffc9a760e01b1490505f61025e565b5f80fd5b3461027a5760408060031936011261027a5760043590602435906102a0611578565b825f526002602052805f2054821161033a57825f526003602052816102c6825f20611a9c565b1461032a5781610325916103157e899d104fc3d8820bd96540612bcc5c448c8837b13b9f7faa43ad0728f0c14f94610306875f52600360205260405f2090565b61030f42611fc3565b90611677565b5050519081529081906020820190565b0390a2005b5163a741a04560e01b8152600490fd5b51631eefc06360e31b8152600490fd5b3461027a575f36600319011261027a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461027a575f36600319011261027a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461027a575f36600319011261027a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461027a57604036600319011261027a576004356001600160601b038116810361027a5760243590610446611739565b6040516302910f8b60e31b81523360048201526020816024816001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165afa908115610597575f91610568575b5015610556576001600160601b03166bffffffffffffffffffffffff193360601b161790806104d0835f52600260205260405f2090565b541461054457610529817fc67e7929681aa1bccd63f52b3799bf5805f3009f197db6fdf584b14f7fbf608c9261050e855f52600260205260405f2090565b556105198185611768565b6040519081529081906020820190565b0390a261054260015f8051602061281683398151915255565b005b60405163a741a04560e01b8152600490fd5b6040516323d53b9760e21b8152600490fd5b61058a915060203d602011610590575b61058281836109f8565b8101906110c5565b5f610499565b503d610578565b6110dd565b3461027a57602036600319011261027a576004355f525f805160206127f68339815191526020526020600160405f200154604051908152f35b3461027a575f36600319011261027a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b6001600160a01b0381160361027a57565b3461027a57604036600319011261027a5761054260243560043561064d82610619565b805f525f805160206127f6833981519152602052610671600160405f2001546115d4565b6119d4565b3461027a57604036600319011261027a5760243561069381610619565b336001600160a01b038216036106af5761054290600435611a0a565b60405163334bd91960e11b8152600490fd5b3461027a57602036600319011261027a576004356106de81610619565b6106e6611739565b335f9081527f9ebbcbe0d2961d3fbe56ca6f679bc753bd848d3e6bb3eaf9041c51b286881d2c60205260409020547fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c9060ff161561079c57506001546001600160a01b039182169181168214610544576001600160a01b03191681176001557f5bbb1d3ebb6a3ad2a0f17ff35e579a83af60604d1d3c2a4c83c62adecadf666d5f80a260015f8051602061281683398151915255005b6044906040519063e2517d3f60e01b82523360048301526024820152fd5b3461027a57602036600319011261027a576004355f52600360205260206107e360405f20611a9c565b604051908152f35b9181601f8401121561027a578235916001600160401b03831161027a576020838186019501011161027a57565b3461027a57602036600319011261027a576001600160401b0360043581811161027a576108499036906004016107eb565b5f80516020612836833981519152549260ff8460401c1615931680159081610948575b600114908161093e575b159081610935575b50610923575f80516020612836833981519152805467ffffffffffffffff191660011790556108b191836108ff57611b1f565b6108b757005b5f80516020612836833981519152805460ff60401b19169055604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a1005b5f80516020612836833981519152805460ff60401b1916600160401b179055611b1f565b60405163f92ee8a960e01b8152600490fd5b9050155f61087e565b303b159150610876565b84915061086c565b3461027a575f36600319011261027a576020604051614e208152f35b3461027a575f36600319011261027a576004546040516001600160a01b039091168152602090f35b6064359065ffffffffffff8216820361027a57565b634e487b7160e01b5f52604160045260245ffd5b604081019081106001600160401b038211176109d857604052565b6109a9565b606081019081106001600160401b038211176109d857604052565b90601f801991011681019081106001600160401b038211176109d857604052565b60405190610a26826109bd565b565b6001600160401b0381116109d857601f01601f191660200190565b81601f8201121561027a57803590610a5a82610a28565b92610a6860405194856109f8565b8284526020838301011161027a57815f926020809301838601378301015290565b3461027a57606036600319011261027a5760243565ffffffffffff8116810361027a576044356001600160401b03811161027a57602091610ad16107e3923690600401610a43565b906004355f526003845260405f20611c8e565b3461027a575f36600319011261027a5760206040517fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c8152f35b3461027a575f36600319011261027a5760206040517e8b9b1e5fa9cf3b14f87f435649268146305ddf689f082e5961a335b07a9abf8152f35b3461027a575f36600319011261027a576001546040516001600160a01b039091168152602090f35b3461027a575f36600319011261027a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461027a57604036600319011261027a57602060ff610c15602435610be781610619565b6004355f525f805160206127f6833981519152845260405f209060018060a01b03165f5260205260405f2090565b54166040519015158152f35b3461027a5760408060031936011261027a57600435610c3f81610619565b602435906001600160401b03821161027a575f8091610c65610cc99436906004016107eb565b908187519283928337810184815203915af43d15610cd157610cbb3d610c8a81610a28565b90610c97865192836109f8565b81523d5f602083013e5b845194859315156020850152808401526060830190611101565b03601f1981018352826109f8565b805190602001fd5b610cbb6060610ca1565b3461027a575f36600319011261027a5760206040515f8152f35b3461027a575f36600319011261027a5760206040516001600160401b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461027a575f36600319011261027a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461027a57602036600319011261027a576004355f526002602052602060405f2054604051908152f35b3461027a57604036600319011261027a57610542602435600435610dc982610619565b805f525f805160206127f6833981519152602052610ded600160405f2001546115d4565b611a0a565b3461027a57608036600319011261027a57602435610e0f81610619565b6044359065ffffffffffff8216820361027a57606435906001600160401b03821161027a57602092610e486107e3933690600401610a43565b91600435611227565b3461027a5760a036600319011261027a57602435600435610e7182610619565b60443591610e7d610994565b90608435906001600160401b03821161027a57610e9f60049236908401610a43565b610ea7611739565b5f54602090610ecc90610ec0906001600160a01b031681565b6001600160a01b031690565b60405163b134427160e01b815294859182905afa928315610597575f9361100b575b506001600160a01b039283163303610ff9576001546001600160a01b0316838116610f6e575b50506040805195865265ffffffffffff909316602086015216927f741a5de99085c0d660f3e4192217b0ffb0ea4e35a0480de48e857a4bc3ee36ed91819081015b0390a361054260015f8051602061281683398151915255565b909360405194610fa586610f97602082019363724ab0f760e11b8552858c898d602487016113d1565b03601f1981018852876109f8565b62042e305a10610fe7575f610f55938192827f741a5de99085c0d660f3e4192217b0ffb0ea4e35a0480de48e857a4bc3ee36ed9951926203d090f15093610f14565b604051638072475160e01b8152600490fd5b60405163dabc4ad960e01b8152600490fd5b61102e91935060203d602011611035575b61102681836109f8565b8101906113bc565b915f610eee565b503d61101c565b3461027a575f36600319011261027a575f546040516001600160a01b039091168152602090f35b3461027a57604036600319011261027a5760206107e360243561108581610619565b60043561144e565b3461027a575f36600319011261027a5760206040516203d0908152f35b3461027a575f36600319011261027a57602060405160018152f35b9081602091031261027a5751801515810361027a5790565b6040513d5f823e3d90fd5b906110fe92915f52600360205260405f20611c8e565b90565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b60405190611132826109bd565b60606020838281520152565b81601f8201121561027a5780519061115582610a28565b9261116360405194856109f8565b8284526020838301011161027a57815f9260208093018386015e8301015290565b9060208282031261027a5781516001600160401b039283821161027a57019060408282031261027a57604051926111ba846109bd565b825181811161027a57826111cf91850161113e565b8452602083015190811161027a576111e7920161113e565b602082015290565b6001600160a01b0391821681529116602082015265ffffffffffff90911660408201526080606082018190526110fe92910190611101565b9261123790929192828486611e46565b929093611242611125565b93805180611395575b505084159384156112ff575b841561126e575b505050506112695790565b505f90565b602080949550611299910151604051958694859463530e1d4360e01b865260601c90600486016111ef565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa908115610597575f916112e0575b50155f80808061125e565b6112f9915060203d6020116105905761058281836109f8565b5f6112d5565b5f549094506001600160a01b0316602084865192611332604051948593849363530e1d4360e01b855289600486016111ef565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa908115610597575f91611376575b501593611257565b61138f915060203d6020116105905761058281836109f8565b5f61136e565b6113a9929550602080918301019101611184565b925f8061124b565b5190610a2682610619565b9081602091031261027a57516110fe81610619565b919360a0936110fe969565ffffffffffff938552600180871b0316602085015260408401521660608201528160808201520190611101565b634e487b7160e01b5f52601160045260245ffd5b8115611427570490565b634e487b7160e01b5f52601260045260245ffd5b906001820180921161144957565b611409565b5f546040516308834cb560e21b8082526001600160a01b0385811660048401529283166024830152929392602092909183816044817f000000000000000000000000000000000000000000000000000000000000000086165afa908115610597575f9161155b575b50159182156114d7575b505090506114d1576110fe91611f3b565b50505f90565b6040519081526001600160a01b0385166004820152606086901c602482015291508290829060449082907f0000000000000000000000000000000000000000000000000000000000000000165afa918215610597575f9261153e575b505015805f806114c0565b6115549250803d106105905761058281836109f8565b5f80611533565b6115729150843d86116105905761058281836109f8565b5f6114b6565b335f9081527f72a65082a5691803ab2b62c9bc729b34205ba1b183d950896526b2fd8714d0c7602052604090207e8b9b1e5fa9cf3b14f87f435649268146305ddf689f082e5961a335b07a9abf9060ff905b54161561079c5750565b5f8181525f805160206127f683398151915260209081526040808320338452909152902060ff906115ca565b634e487b7160e01b5f52603260045260245ffd5b8054821015611629575f5260205f2001905f90565b611600565b90815491600160401b8310156109d85782611651916001610a2695018155611614565b90919082549060031b91821b915f19901b1916179055565b5f1981019190821161144957565b90929192600182019081548015611709575b508461169484612019565b509490928454936116a483611a9c565b96816116f4575b50156116d1575050505f1981019081116114495761165185916116cd93611614565b9190565b6116cd9492936116ed926001600160d01b03909116919061251a565b505061162e565b65ffffffffffff83811691161490505f6116ab565b600160401b8110156109d8578060016117259201845583611614565b8154905f199060031b1b191690555f611689565b5f8051602061281683398151915260028154146117565760029055565b604051633ee5aeb560e01b8152600490fd5b90815f52600360205260405f208161177f82612019565b9193905083156117dd5761179f916001600160d01b031690600101611614565b90549060031b1c5b826117d3575b50506117b7575050565b6117cf915f52600360205260405f2061030f42611fc3565b5050565b119050815f6117ad565b50505f6117a7565b6001600160a01b0381165f9081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d60205260409020545f805160206127f68339815191529060ff166114d1575f808052602091825260408082206001600160a01b038516835290925220805460ff1916600117905533906001600160a01b03165f7f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d8180a4600190565b6001600160a01b0381165f9081527f9ebbcbe0d2961d3fbe56ca6f679bc753bd848d3e6bb3eaf9041c51b286881d2c602052604090207fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c905f805160206127f68339815191529060ff905b541661195f575f828152602091825260408082206001600160a01b038616835290925220805460ff1916600117905533916001600160a01b0316907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d5f80a4600190565b5050505f90565b6001600160a01b0381165f9081527f72a65082a5691803ab2b62c9bc729b34205ba1b183d950896526b2fd8714d0c7602052604090207e8b9b1e5fa9cf3b14f87f435649268146305ddf689f082e5961a335b07a9abf905f805160206127f68339815191529060ff906118fb565b5f8181525f805160206127f6833981519152602081815260408084206001600160a01b038716855290915290912060ff906118fb565b5f8181525f805160206127f6833981519152602081815260408084206001600160a01b03871685529091529091205460ff161561195f575f828152602091825260408082206001600160a01b038616835290925220805460ff1916905533916001600160a01b0316907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b5f80a4600190565b805480611acb57505f5b6001600160d01b038116156114d1576001611ac19201611614565b90549060031b1c90565b5f1990808281011161144957825f5260205f2001015460301c611aa6565b91909160408184031261027a578035611b0181610619565b9260208201356001600160401b03811161027a576110fe9201610a43565b611b2b91810190611ae9565b6040516302910f8b60e31b81526001600160a01b039283166004820181905291906020816024817f000000000000000000000000000000000000000000000000000000000000000088165afa908115610597575f91611c3e575b5015611c2c57611bc0604091611bbb611c0694611ba0612068565b60018060a01b03166001600160601b0360a01b5f5416175f55565b6121d4565b6020810151600180546001600160a01b0319166001600160a01b0390921691909117905580516001600160a01b0316848116611c1c575b5001516001600160a01b031690565b908116611c105750565b611c1990611890565b50565b611c25906117e5565b505f611bf7565b6040516362df054560e01b8152600490fd5b611c57915060203d6020116105905761058281836109f8565b5f611b85565b9081602091031261027a575163ffffffff8116810361027a5790565b90600163ffffffff8093160191821161144957565b91805115611d675780602080611ca993518301019101611c5d565b91611cb48382612445565b92611cc5845165ffffffffffff1690565b9065ffffffffffff8085169216828114611d5b5782119182611cfb575b5050611cf2576110fe9250612375565b50506020015190565b909150611d088354611669565b63ffffffff831614918215611d21575b50505f80611ce2565b611d53919250611d3c611d36611d4892611c79565b85612445565b5165ffffffffffff1690565b65ffffffffffff1690565b115f80611d18565b50505050506020015190565b506110fe91612375565b60405190611d7e826109dd565b60606040838281528260208201520152565b9060208282031261027a5781516001600160401b039283821161027a57019060608282031261027a5760405192611dc6846109dd565b825181811161027a5782611ddb91850161113e565b8452602083015181811161027a5782611df591850161113e565b6020850152604083015190811161027a57611e10920161113e565b604082015290565b9081602091031261027a575190565b60409065ffffffffffff6110fe94931681528160208201520190611101565b90939293611e52611d71565b94805180611f1f575b50506004546001600160a01b03918216911603611f17575f54611eb2929190602090611e9190610ec0906001600160a01b031681565b8187015190604051808097819463810da75d60e01b83528860048401611e27565b03915afa90811561059757611edf935f92611ee4575b50611ed991926040870151916110e8565b906124ad565b915190565b611ed99250611f0a9060203d602011611f10575b611f0281836109f8565b810190611e18565b91611ec8565b503d611ef8565b505090515f91565b611f33929650602080918301019101611d90565b935f80611e5b565b6004546001600160a01b0392908316908316036114d15760206004925f54166040519384809263bd49c35f60e01b82525afa908115610597576110fe925f92611f9a575b50611f95611ed9915f52600360205260405f2090565b611a9c565b611ed9919250611fbb611f959160203d602011611f1057611f0281836109f8565b929150611f7f565b65ffffffffffff90818111611fd6571690565b604490604051906306dfcc6560e41b8252603060048301526024820152fd5b90604051612002816109bd565b915465ffffffffffff8116835260301c6020830152565b80548061202a5750505f905f905f90565b5f1990808281011161144957612047925f5260205f200101611ff5565b9065ffffffffffff82511691602060018060d01b0391015116906001929190565b612070612635565b612078612635565b60015f8051602061281683398151915255565b60405190612098826109dd565b5f6040838281528260208201520152565b81601f8201121561027a578051916020916001600160401b0384116109d8578360051b90604051946120dd858401876109f8565b8552838086019282010192831161027a578301905b828210612100575050505090565b838091835161210e81610619565b8152019101906120f2565b60208183031261027a5780516001600160401b039182821161027a5701918281039260a0841261027a57606060405194612152866109dd565b1261027a57604051612163816109dd565b815161216e81610619565b8152602082015161217e81610619565b6020820152604082015161219181610619565b60408201528452606081015192831161027a576121b5608092611e109483016120a9565b6020850152016113b1565b80518210156116295760209160051b010190565b6121dc61208b565b506121f281519160208080948301019101612119565b8051516001600160a01b0393919084161580612369575b612357576040818101805182516302910f8b60e31b81526001600160a01b0390911660048083019190915296929491928690829060249082907f0000000000000000000000000000000000000000000000000000000000000000165afa908115610597575f9161233a575b50156123285791938401915f5b835180518210156122f757610ec061229c836122a9936121c0565b516001600160a01b031690565b156122e7576122cb6122c76122c261229c8488516121c0565b611966565b1590565b6122d757600101612281565b8451635140fefd60e11b81528790fd5b84516323cda06760e01b81528790fd5b50509051600480546001600160a01b0319166001600160a01b039092169190911790559350612324915050565b5190565b604051631f0853c160e21b8152600490fd5b6123519150863d88116105905761058281836109f8565b5f612274565b6040516303501f5960e11b8152600490fd5b50828101515115612209565b908154905f8291600584116123df575b612390935084612796565b806123b857505f905b6001600160d01b038216156114d1576110fe916001611ac19201611614565b6123d26123c76123d992611669565b835f5260205f200190565b5460301c90565b90612399565b91926123ea81612663565b81039081116114495761239093855f5265ffffffffffff808360205f20015416908516105f1461241b575091612385565b9291506124279061143b565b90612385565b6040519061243a826109bd565b5f6020838281520152565b9061246e61246861248f9261245861242d565b5061246161242d565b5084611614565b50611ff5565b91600165ffffffffffff845116936020828060d01b03910151169101611614565b9054906040519261249f846109bd565b835260031b1c602082015290565b90808210156124ba575090565b905090565b8054600160401b8110156109d8576124dc91600182018155611614565b61250757815160209092015160301b65ffffffffffff191665ffffffffffff92909216919091179055565b634e487b7160e01b5f525f60045260245ffd5b80549293929190821561260c5761253b6125366123c785611669565b611ff5565b9061254c825165ffffffffffff1690565b65ffffffffffff848116911681106125fa576116cd94602094889261257a611d48875165ffffffffffff1690565b036125c257506125b49261259061259b92611669565b905f5260205f200190565b9065ffffffffffff82549181199060301b169116179055565b01516001600160d01b031690565b9150506125f5916125e26125d4610a19565b65ffffffffffff9093168352565b6001600160d01b038816828601526124bf565b6125b4565b604051632520601d60e01b8152600490fd5b612630925061261c6125d4610a19565b6001600160d01b03851660208301526124bf565b5f9190565b60ff5f805160206128368339815191525460401c161561265157565b604051631afcd79f60e31b8152600490fd5b80156112695780611ed961272e61272461271a6127106127066126fc6126f260016110fe9a5f908b60801c8061278a575b508060401c8061277d575b508060201c80612770575b508060101c80612763575b508060081c80612756575b508060041c80612749575b508060021c8061273c575b50821c612735575b811c1b6126eb818b61141d565b0160011c90565b6126eb818a61141d565b6126eb818961141d565b6126eb818861141d565b6126eb818761141d565b6126eb818661141d565b6126eb818561141d565b809261141d565b81016126de565b600291509101905f6126d6565b600491509101905f6126cb565b600891509101905f6126c0565b601091509101905f6126b5565b602091509101905f6126aa565b604091509101905f61269f565b9150506080905f612694565b91905b8382106127a65750505090565b9091928083169080841860011c820180921161144957845f5265ffffffffffff808360205f20015416908416105f146127e35750925b9190612799565b9392506127ef9061143b565b916127dc56fe02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268009b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a264697066735822122069e5246e4910fa681bf71ad16d8ba448abe03cec6d90d10bfddbb83eeccc70a264736f6c63430008190033","sourceMap":"611:4324:85:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;;;;;-1:-1:-1;;611:4324:85;;;;;;;;;;;;;;;;;;-1:-1:-1;;;3551:47:24;;;:87;;;;611:4324:85;;;;;;;;;;3551:87:24;-1:-1:-1;;;1133:40:30;;-1:-1:-1;3551:87:24;;;611:4324:85;-1:-1:-1;611:4324:85;;;;;;;;;;;;;;;;;;;;3202:4:24;;;:::i;:::-;611:4324:85;-1:-1:-1;611:4324:85;2428:15;611:4324;;;-1:-1:-1;611:4324:85;;2419:36;;2415:98;;611:4324;-1:-1:-1;611:4324:85;2193:13;611:4324;;;2193:34;611:4324;-1:-1:-1;611:4324:85;2193:34;:::i;:::-;2527;2523:84;;2617:25;2689:35;2617:25;:56;2689:35;2617:25;;;611:4324;;2193:13;611:4324;;;;;;;2617:25;819:34:63;837:15;819:34;:::i;:::-;2617:56:85;;:::i;:::-;-1:-1:-1;;611:4324:85;;;;;;;;;;;;2689:35;;;;611:4324;2523:84;611:4324;-1:-1:-1;;;2584:12:85;;611:4324;;2584:12;2415:98;611:4324;-1:-1:-1;;;2478:24:85;;611:4324;;2478:24;611:4324;;;;;;-1:-1:-1;;611:4324:85;;;;;;1537:38:81;-1:-1:-1;;;;;611:4324:85;;;;;;;;;;;;-1:-1:-1;;611:4324:85;;;;;;1632:54:81;-1:-1:-1;;;;;611:4324:85;;;;;;;;;;;;-1:-1:-1;;611:4324:85;;;;;;1743:56:81;-1:-1:-1;;;;;611:4324:85;;;;;;;;;;;;-1:-1:-1;;611:4324:85;;;;;;-1:-1:-1;;;;;611:4324:85;;;;;;;;3217:103:29;;;:::i;:::-;611:4324:85;;-1:-1:-1;;;4285:48:81;;4322:10;611:4324:85;4285:48:81;;611:4324:85;;;;;-1:-1:-1;;;;;4295:16:81;611:4324:85;4285:48:81;;;;;;;-1:-1:-1;4285:48:81;;;611:4324:85;4284:49:81;;4280:99;;-1:-1:-1;;;;;611:4324:85;-1:-1:-1;;4322:10:81;297:2:93;611:4324:85;;267:46:93;4459:27:81;;;;611:4324:85;;4459:15:81;611:4324:85;;;;;;;4459:27:81;611:4324:85;4459:37:81;4455:87;;4654:38;4552:27;4654:38;4552:27;;;611:4324:85;;4459:15:81;611:4324:85;;;;;;;4552:27:81;611:4324:85;4631:6:81;;;;:::i;:::-;611:4324:85;;;;;;;;;;;;;4654:38:81;;;;3282:1:29;1805;-1:-1:-1;;;;;;;;;;;611:4324:85;3716:283:29;3282:1;611:4324:85;4455:87:81;611:4324:85;;-1:-1:-1;;;4519:12:81;;611:4324:85;;4519:12:81;4280:99;611:4324:85;;-1:-1:-1;;;4356:12:81;;611:4324:85;;4356:12:81;4285:48;;;;611:4324:85;4285:48:81;611:4324:85;4285:48:81;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;:::i;611:4324:85:-;;;;;;-1:-1:-1;;611:4324:85;;;;;;-1:-1:-1;611:4324:85;-1:-1:-1;;;;;;;;;;;611:4324:85;;;4919:24:24;611:4324:85;-1:-1:-1;611:4324:85;4919:24:24;611:4324:85;;;;;;;;;;;;;-1:-1:-1;;611:4324:85;;;;;;322:32:74;-1:-1:-1;;;;;611:4324:85;;;;;;;-1:-1:-1;;;;;611:4324:85;;;;;:::o;:::-;;;;;;-1:-1:-1;;611:4324:85;;;;5350:25:24;611:4324:85;;;;;;;:::i;:::-;;-1:-1:-1;611:4324:85;-1:-1:-1;;;;;;;;;;;611:4324:85;;3202:4:24;4919:24;611:4324:85;-1:-1:-1;611:4324:85;4919:24:24;611:4324:85;3202:4:24;:::i;:::-;5350:25;:::i;611:4324:85:-;;;;;;-1:-1:-1;;611:4324:85;;;;;;;;;:::i;:::-;966:10:28;-1:-1:-1;;;;;611:4324:85;;6441:34:24;6437:102;;6549:37;611:4324:85;;;6549:37:24;:::i;6437:102::-;611:4324:85;;-1:-1:-1;;;6498:30:24;;611:4324:85;;6498:30:24;611:4324:85;;;;;;-1:-1:-1;;611:4324:85;;;;;;;;;:::i;:::-;3217:103:29;;:::i;:::-;966:10:28;-1:-1:-1;611:4324:85;;;;;;;;;;1356:26:81;;611:4324:85;;4468:23:24;4464:108;;-1:-1:-1;4861:4:81;611:4324:85;-1:-1:-1;;;;;611:4324:85;;;;;;4861:13:81;;4857:63;;-1:-1:-1;;;;;;611:4324:85;;;4861:4:81;611:4324:85;4958:14:81;-1:-1:-1;;4958:14:81;4861:4;-1:-1:-1;;;;;;;;;;;611:4324:85;;4464:108:24;611:4324:85;;;;4514:47:24;;;;;;966:10:28;611:4324:85;4514:47:24;;611:4324:85;;;;;4514:47:24;611:4324:85;;;;;;-1:-1:-1;;611:4324:85;;;;;;-1:-1:-1;611:4324:85;2193:13;611:4324;;;2193:34;611:4324;-1:-1:-1;611:4324:85;2193:34;:::i;:::-;611:4324;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;611:4324:85;;;;;;;;;;;;;;;:::o;:::-;;;;;;-1:-1:-1;;611:4324:85;;;;-1:-1:-1;;;;;611:4324:85;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;611:4324:85;;;;;;;4301:16:26;611:4324:85;;4726:16:26;;:34;;;;611:4324:85;4805:1:26;4790:16;:50;;;;611:4324:85;4855:13:26;:30;;;;611:4324:85;4851:91:26;;;-1:-1:-1;;;;;;;;;;;611:4324:85;;-1:-1:-1;;611:4324:85;;;;;718:4:74;;4951:18:26;4979:67;;718:4:74;:::i;:::-;5066:101:26;;611:4324:85;5066:101:26;-1:-1:-1;;;;;;;;;;;611:4324:85;;-1:-1:-1;;;;611:4324:85;;;;;-1:-1:-1;611:4324:85;;5142:14:26;;611:4324:85;;5142:14:26;611:4324:85;4979:67:26;-1:-1:-1;;;;;;;;;;;611:4324:85;;-1:-1:-1;;;;611:4324:85;-1:-1:-1;;;611:4324:85;;;718:4:74;:::i;4851:91:26:-;611:4324:85;;-1:-1:-1;;;4908:23:26;;611:4324:85;;4908:23:26;4855:30;4872:13;;;4855:30;;;4790:50;4818:4;4810:25;:30;;-1:-1:-1;4790:50:26;;4726:34;;;-1:-1:-1;4726:34:26;;611:4324:85;;;;;;-1:-1:-1;;611:4324:85;;;;;;;1253:6:81;611:4324:85;;;;;;;;;-1:-1:-1;;611:4324:85;;;;;;;;-1:-1:-1;;;;;611:4324:85;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;611:4324:85;;;;;;;:::o;:::-;;:::i;:::-;;;;;;;-1:-1:-1;;;;;611:4324:85;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;611:4324:85;;;;;;;:::o;:::-;;;;;;;:::i;:::-;:::o;:::-;-1:-1:-1;;;;;611:4324:85;;;;;;-1:-1:-1;;611:4324:85;;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;611:4324:85;;;;;;;;;;;;;;:::o;:::-;;;;;;-1:-1:-1;;611:4324:85;;;;;;;;;;;;;;;-1:-1:-1;;;;;611:4324:85;;;;;;;1955:60;611:4324;;;;;;:::i;:::-;;;;-1:-1:-1;611:4324:85;1955:13;611:4324;;;-1:-1:-1;611:4324:85;1955:60;:::i;611:4324::-;;;;;;-1:-1:-1;;611:4324:85;;;;;;;1356:26:81;611:4324:85;;;;;;;;;-1:-1:-1;;611:4324:85;;;;;;;885:35;611:4324;;;;;;;;;-1:-1:-1;;611:4324:85;;;;;;;;-1:-1:-1;;;;;611:4324:85;;;;;;;;;;;;;;-1:-1:-1;;611:4324:85;;;;;;989:42;-1:-1:-1;;;;;611:4324:85;;;;;;;;;;;;-1:-1:-1;;611:4324:85;;;;;;3901:31:24;611:4324:85;;;;;:::i;:::-;;;-1:-1:-1;611:4324:85;-1:-1:-1;;;;;;;;;;;611:4324:85;;;-1:-1:-1;611:4324:85;;;;;;;;;;;;;;;;;3901:31:24;611:4324:85;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;611:4324:85;;;;-1:-1:-1;611:4324:85;;;477:31:80;611:4324:85;;;;;;:::i;:::-;;;;;;;;;;;;;;;416:25:80;;;;611:4324:85;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;-1:-1:-1;611:4324:85;;;;;;;;;;;;;477:31:80;;611:4324:85;;;;;;;;;;:::i;:::-;477:31:80;611:4324:85;;477:31:80;;;;;;:::i;:::-;518:79;;;611:4324:85;518:79:80;;611:4324:85;;;;;;;;;;;-1:-1:-1;;611:4324:85;;;;;;;;;;;;;;;;;-1:-1:-1;;611:4324:85;;;;;;;-1:-1:-1;;;;;404:28:74;611:4324:85;;;;;;;;;;-1:-1:-1;;611:4324:85;;;;;;1439:41:81;-1:-1:-1;;;;;611:4324:85;;;;;;;;;;;;-1:-1:-1;;611:4324:85;;;;;;-1:-1:-1;611:4324:85;2009:67:81;611:4324:85;;;;-1:-1:-1;611:4324:85;;;;;;;;;;;;;;-1:-1:-1;;611:4324:85;;;;5767:26:24;611:4324:85;;;;;;;:::i;:::-;;-1:-1:-1;611:4324:85;-1:-1:-1;;;;;;;;;;;611:4324:85;;3202:4:24;4919:24;611:4324:85;-1:-1:-1;611:4324:85;4919:24:24;611:4324:85;3202:4:24;:::i;:::-;5767:26;:::i;611:4324:85:-;;;;;;-1:-1:-1;;611:4324:85;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;-1:-1:-1;;;;;611:4324:85;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;-1:-1:-1;;611:4324:85;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;-1:-1:-1;;;;;611:4324:85;;;;;;;;;;;;:::i;:::-;3217:103:29;;:::i;:::-;-1:-1:-1;611:4324:85;;;5246:21:81;;:13;;-1:-1:-1;;;;;611:4324:85;5246:13:81;611:4324:85;;-1:-1:-1;;;;;611:4324:85;;;5246:21:81;611:4324:85;;-1:-1:-1;;;5246:23:81;;611:4324:85;;;;;5246:23:81;;;;;;;-1:-1:-1;5246:23:81;;;611:4324:85;-1:-1:-1;;;;;;611:4324:85;;;5232:10:81;:37;5228:87;;5341:4;611:4324:85;-1:-1:-1;;;;;611:4324:85;;;;5355:469:81;;611:4324:85;-1:-1:-1;;611:4324:85;;;;;;;;;;;;;;;;5839:55:81;;611:4324:85;;;;5839:55:81;;;;3282:1:29;1805;-1:-1:-1;;;;;;;;;;;611:4324:85;3716:283:29;5355:469:81;611:4324:85;;;;5435:94:81;;;;611:4324:85;5435:94:81;;;;;;;;;;;;611:4324:85;5435:94:81;;;:::i;:::-;;611:4324:85;;5435:94:81;;;;;;:::i;:::-;611:4324:85;5548:9:81;:51;5544:118;;-1:-1:-1;5839:55:81;5676:138;;;;5839:55;5676:138;;;1150:7;5676:138;;5355:469;;;5544:118;611:4324:85;;-1:-1:-1;;;5626:21:81;;611:4324:85;;5626:21:81;5228:87;611:4324:85;;-1:-1:-1;;;5292:12:81;;611:4324:85;;5292:12:81;5246:23;;;;;611:4324:85;5246:23:81;611:4324:85;5246:23:81;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;611:4324:85;;;;;;-1:-1:-1;;611:4324:85;;;;;;;;-1:-1:-1;;;;;611:4324:85;;;;;;;;;;;;;;-1:-1:-1;;611:4324:85;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;-1:-1:-1;;611:4324:85;;;;;;;1150:7:81;611:4324:85;;;;;;;;;-1:-1:-1;;611:4324:85;;;;;;;2700:1:81;611:4324:85;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;1827:195;;1955:60;1827:195;;-1:-1:-1;611:4324:85;1955:13;611:4324;;;-1:-1:-1;611:4324:85;1955:60;:::i;:::-;1827:195;:::o;611:4324::-;;;;;;;;;;;;;;;;;-1:-1:-1;611:4324:85;;;;;;;;-1:-1:-1;;611:4324:85;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;611:4324:85;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;;;;611:4324:85;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::o;:::-;-1:-1:-1;;;;;611:4324:85;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;2764:920:81:-;;2978:48;2764:920;;;;2978:48;;;;:::i;:::-;3036:36;;;611:4324:85;;:::i;:::-;;;;3086:20:81;3082:107;;2764:920;3216:11;;;;:193;;;;;2764:920;3216:394;;;;2764:920;3199:455;;;;;;2764:920;:::o;3199:455::-;3635:8;-1:-1:-1;3635:8:81;:::o;3216:394::-;3553:39;;;;;3430:180;3553:39;;;611:4324:85;;;;;;;;;;3430:180:81;;467:2:93;611:4324:85;3430:180:81;;;;;:::i;:::-;;611:4324:85;3444:31:81;-1:-1:-1;;;;;611:4324:85;3430:180:81;;;;;;;-1:-1:-1;3430:180:81;;;3216:394;3429:181;;3216:394;;;;;;3430:180;;;;3553:39;3430:180;3553:39;3430:180;;;;;;;:::i;:::-;;;;3216:193;-1:-1:-1;611:4324:85;;;-1:-1:-1;;;;;;611:4324:85;3248:161:81;3354:37;;;611:4324:85;3248:161:81;611:4324:85;;;;;;;;;;3248:161:81;;;;;;;:::i;:::-;;611:4324:85;3262:29:81;-1:-1:-1;;;;;611:4324:85;3248:161:81;;;;;;;-1:-1:-1;3248:161:81;;;3216:193;3247:162;;3216:193;;;3248:161;;;;;;;;;;;;;;:::i;:::-;;;;3082:107;3139:39;;;;;;;;;;;;;:::i;:::-;3082:107;;;;;611:4324:85;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;9856:1:61;611:4324:85;;;;;;;:::o;:::-;;:::i;3740:389:81:-;3918:5;611:4324:85;;;-1:-1:-1;;;3853:71:81;;;-1:-1:-1;;;;;611:4324:85;;;3853:71:81;;;611:4324:85;;;;;;;;3740:389:81;;611:4324:85;3853:71:81;;611:4324:85;;3853:71:81;611:4324:85;;;3867:29:81;611:4324:85;;3853:71:81;;;;;;;3918:5;3853:71;;;3740:389;3852:72;;611:4324:85;;;3852:181:81;;3740:389;3835:242;;;;;;4094:28;;;:::i;3835:242::-;4058:8;;3918:5;4058:8;:::o;3852:181::-;611:4324:85;;3945:88:81;;;-1:-1:-1;;;;;611:4324:85;;3853:71:81;3945:88;;611:4324:85;467:2:93;611:4324:85;;;;;;;;-1:-1:-1;611:4324:85;;;;;;;;3959:31:81;611:4324:85;3945:88:81;;;;;;;3918:5;3945:88;;;3852:181;3944:89;;;3852:181;;;;;3945:88;;;;;;-1:-1:-1;3945:88:81;;;;;;:::i;:::-;;;;;3853:71;;;;;;;;;;;;;;:::i;:::-;;;;4148:103:24;966:10:28;-1:-1:-1;611:4324:85;;;;;;;;;885:35;;611:4324;;3901:31:24;611:4324:85;;4468:23:24;4464:108;;4148:103;:::o;:::-;-1:-1:-1;611:4324:85;;;-1:-1:-1;;;;;;;;;;;611:4324:85;;;;;;;;966:10:28;611:4324:85;;;;;;;;;3901:31:24;611:4324:85;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;611:4324:85;;-1:-1:-1;611:4324:85;;;-1:-1:-1;611:4324:85;:::o;:::-;;:::i;:::-;;;;;-1:-1:-1;;;611:4324:85;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;611:4324:85;;;;;;;;:::o;6246:584:91:-;;;;;6360:12;;;611:4324:85;;;6360:24:91;;6356:75;;6246:584;6474:30;;;;;:::i;:::-;611:4324:85;;;;;;6578:12:91;;;;:::i;:::-;6604:24;;;;6246:584;-1:-1:-1;6600:188:91;;;-1:-1:-1;;;;;611:4324:85;;;;;;;6644:21:91;;;:29;:21;;:::i;:29::-;6798:25;6246:584;:::o;6600:188::-;6753:24;;611:4324:85;;8167:38:61;;-1:-1:-1;;;;;611:4324:85;;;;;8167:38:61;:::i;:::-;6753:24:91;;;:::i;6604:::-;611:4324:85;;;;;;6614:14:91;;-1:-1:-1;6604:24:91;;;6356:75;-1:-1:-1;;;611:4324:85;;;;;;6360:12:91;611:4324:85;;;;;;;:::i;:::-;;;;;;;;;;;;;;6356:75:91;;;3326:384:29;-1:-1:-1;;;;;;;;;;;1847:1:29;611:4324:85;;3526:20:29;3522:88;;1847:1;611:4324:85;;3326:384:29:o;3522:88::-;611:4324:85;;-1:-1:-1;;;3569:30:29;;;;;3701:308:85;;611:4324;-1:-1:-1;611:4324:85;3832:13;611:4324;;;-1:-1:-1;611:4324:85;11124:30:91;;;;:::i;:::-;11173;;;-1:-1:-1;11173:30:91;;;;11182:17;;-1:-1:-1;;;;;611:4324:85;;11182:12:91;;:17;:::i;:::-;611:4324:85;;;3832:13;611:4324;;11173:30:91;3890::85;;;11173::91;3886:117:85;;;;3701:308;;:::o;3886:117::-;3936:56;611:4324;-1:-1:-1;611:4324:85;3832:13;611:4324;;;-1:-1:-1;611:4324:85;819:34:63;837:15;819:34;:::i;3936:56:85:-;3701:308;;:::o;3890:30::-;3900:20;;-1:-1:-1;3890:30:85;;;;11173::91;;;-1:-1:-1;11173:30:91;;7270:387:24;-1:-1:-1;;;;;611:4324:85;;-1:-1:-1;611:4324:85;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2887:71:24;611:4324:85;;;;-1:-1:-1;611:4324:85;;;;;;;;;;;-1:-1:-1;;;;;611:4324:85;;;;;;;;;;-1:-1:-1;;611:4324:85;7509:4:24;611:4324:85;;;966:10:28;;-1:-1:-1;;;;;611:4324:85;-1:-1:-1;7532:40:24;-1:-1:-1;;7532:40:24;7509:4;7586:11;:::o;7270:387::-;-1:-1:-1;;;;;611:4324:85;;-1:-1:-1;611:4324:85;;;;;;;;;1356:26:81;;-1:-1:-1;;;;;;;;;;;2887:71:24;611:4324:85;;3901:31:24;611:4324:85;;;;-1:-1:-1;611:4324:85;;;;;;;;;;;-1:-1:-1;;;;;611:4324:85;;;;;;;;;;-1:-1:-1;;611:4324:85;7509:4:24;611:4324:85;;;966:10:28;;-1:-1:-1;;;;;611:4324:85;;7532:40:24;-1:-1:-1;;7532:40:24;7509:4;7586:11;:::o;7432:219::-;7628:12;;;-1:-1:-1;7628:12:24;:::o;7270:387::-;-1:-1:-1;;;;;611:4324:85;;-1:-1:-1;611:4324:85;;;;;;;;;885:35;;-1:-1:-1;;;;;;;;;;;2887:71:24;611:4324:85;;3901:31:24;611:4324:85;7270:387:24;-1:-1:-1;611:4324:85;;;-1:-1:-1;;;;;;;;;;;611:4324:85;;;;;;;;-1:-1:-1;;;;;611:4324:85;;;;;;;;;;;;3901:31:24;611:4324:85;7892:388:24;-1:-1:-1;611:4324:85;;;-1:-1:-1;;;;;;;;;;;611:4324:85;;;;;;;;-1:-1:-1;;;;;611:4324:85;;;;;;;;;;;;;;;;-1:-1:-1;611:4324:85;;;;;;;;;;;-1:-1:-1;;;;;611:4324:85;;;;;;;;;;-1:-1:-1;;611:4324:85;;;966:10:28;;-1:-1:-1;;;;;611:4324:85;;8155:40:24;-1:-1:-1;;8155:40:24;611:4324:85;8209:11:24;:::o;10580:184:91:-;611:4324:85;;10303:8:61;;;:63;-1:-1:-1;10303:63:61;-1:-1:-1;;;;;611:4324:85;;10726:7:91;611:4324:85;;10736:12:91;:17;:12;;:17;:::i;:::-;611:4324:85;;;;;;10580:184:91;:::o;10303:63:61:-;611:4324:85;;;;;;;;;;14249:109:61;-1:-1:-1;14249:109:61;;-1:-1:-1;14249:109:61;;;611:4324:85;;;10303:63:61;;611:4324:85;;;;;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;611:4324:85;;;;;;;;:::i;5907:716:81:-;6030:34;5907:716;6030:34;;;;:::i;:::-;611:4324:85;;-1:-1:-1;;;6080:41:81;;-1:-1:-1;;;;;611:4324:85;;;6080:41:81;;;611:4324:85;;;;;6080:41:81;611:4324:85;;;6090:13:81;611:4324:85;;6080:41:81;;;;;;;-1:-1:-1;6080:41:81;;;5907:716;6079:42;;6075:90;;6266:27;611:4324:85;2540:111:29;6210:14:81;611:4324:85;2540:111:29;;;:::i;:::-;611:4324:85;;;;;;-1:-1:-1;;;;;611:4324:85;;-1:-1:-1;611:4324:85;;;-1:-1:-1;611:4324:85;;6210:14:81;6266:27;:::i;:::-;6080:41;6311:15;;611:4324:85;;;;-1:-1:-1;;;;;;611:4324:85;-1:-1:-1;;;;;611:4324:85;;;;;;;;;;;-1:-1:-1;;;;;611:4324:85;;;;6337:143:81;;5907:716;-1:-1:-1;6493:28:81;611:4324:85;-1:-1:-1;;;;;611:4324:85;;;;;;;6489:128:81;;5907:716;:::o;6489:128::-;6551:55;;;:::i;:::-;;5907:716::o;6337:143::-;6404:65;;;:::i;:::-;;6337:143;;;6075:90;611:4324:85;;-1:-1:-1;;;6144:10:81;;6080:41;;6144:10;6080:41;;;;;;;;;;;;;;:::i;:::-;;;;611:4324:85;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;:::o;7558:604:91:-;;611:4324:85;;7686:17:91;7682:83;;611:4324:85;7789:27:91;611:4324:85;7789:27:91;611:4324:85;;7789:27:91;;;;;;:::i;:::-;7860:14;;;;;:::i;:::-;611:4324:85;;;;;;;;;;;;;;;;7888:22:91;;;7884:77;;7975:21;-1:-1:-1;7975:84:91;;;;7558:604;7971:139;;;;8127:28;;;;:::i;7971:139::-;8082:17;;7789:27;8082:17;611:4324:85;8075:24:91;:::o;7975:84::-;611:4324:85;;;8009:16:91;611:4324:85;;8009:16:91;:::i;:::-;611:4324:85;;;8001:24:91;:57;;;;;7975:84;;;;;;;8001:57;8029:29;8038:8;;;8029:18;8038:8;8029:23;8038:8;;:::i;:::-;8029:18;;:::i;:::-;611:4324:85;;;;;8029:23:91;611:4324:85;;;;8029:29:91;;8001:57;;;;7884:77;7933:17;;;;;7789:27;7933:17;611:4324:85;7926:24:91;:::o;7682:83::-;7726:28;;;;:::i;611:4324:85:-;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;;;;611:4324:85;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;:::i;2737:699::-;;;;;611:4324;;:::i;:::-;;;;2978:16;2974:92;;2737:699;-1:-1:-1;;3080:8:85;611:4324;-1:-1:-1;;;;;611:4324:85;;;;;3080:21;3076:85;;-1:-1:-1;611:4324:85;3218:67;;611:4324;;3257:27;;3218;;:13;;-1:-1:-1;;;;;611:4324:85;3218:13;611:4324;3218:27;3257;;;;611:4324;;;;;;;;;;;3218:67;;;3080:8;3218:67;;;:::i;:::-;;;;;;;;;;3192:192;3218:67;-1:-1:-1;3218:67:85;;;2737:699;3341:28;3303:67;3341:28;;611:4324;3341:28;;;3303:67;;:::i;:::-;3192:192;;:::i;:::-;3398:21;;2737:699;:::o;3218:67::-;3303;3218;;;;3257:27;3218:67;3257:27;3218:67;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;3076:85;-1:-1:-1;;3128:21:85;;-1:-1:-1;;3117:33:85:o;2974:92::-;3024:31;;;;;;;;;;;;;:::i;:::-;2974:92;;;;;3442:253;3552:8;611:4324;-1:-1:-1;;;;;611:4324:85;;;;;;;3552:21;3548:60;;3634:27;3552:8;611:4324;-1:-1:-1;611:4324:85;;;;;;;;;;;3634:27;;;;;;;;;3625:63;3634:27;-1:-1:-1;3634:27:85;;;3442:253;2193:25;;:34;:25;611:4324;;2193:13;611:4324;;;;;;;2193:25;:34;:::i;3634:27::-;2193:34;3634:27;;;;2193:25;3634:27;;;;;;;;;;;:::i;:::-;;;;;;14291:213:59;611:4324:85;14369:24:59;;;;14365:103;;611:4324:85;14291:213:59;:::o;14365:103::-;611:4324:85;;;;14416:41:59;;;;;;14447:2;14416:41;;;611:4324:85;;;;;14416:41:59;611:4324:85;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::o;10552:388:61:-;611:4324:85;;10728:8:61;;;10752:20;;10690:17;10752:20;10690:17;10752:20;10690:17;10752:20;:::o;10724:210::-;611:4324:85;;;;;;;;;;;14249:109:61;10690:17;14249:109;;10690:17;14249:109;;;611:4324:85;:::i;:::-;;;;;;;14249:109:61;611:4324:85;;;;;10911:11:61;;611:4324:85;;10886:37:61;10870:1;10886:37;;;:::o;6893:76:26:-;;;:::i;:::-;;;:::i;:::-;1805:1:29;-1:-1:-1;;;;;;;;;;;611:4324:85;6893:76:26:o;611:4324:85:-;;;;;;;:::i;:::-;-1:-1:-1;611:4324:85;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;-1:-1:-1;;;;;611:4324:85;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;611:4324:85;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::o;4015:918::-;611:4324;;:::i;:::-;;4163:30;611:4324;;4163:30;;;;;;;;;;;:::i;:::-;4208:17;;611:4324;-1:-1:-1;;;;;611:4324:85;;4208:17;611:4324;;4208:54;;:103;;4015:918;4204:161;;4418:15;;;;611:4324;;;;-1:-1:-1;;;4380:54:85;;-1:-1:-1;;;;;611:4324:85;;;4380:54;;;;611:4324;;;;4380:54;4418:15;;;;611:4324;;;;;;;;4390:17;611:4324;4380:54;;;;;;;4208:17;4380:54;;;4015:918;4379:55;;4375:106;;4496:9;;4511:33;;;4208:17;4553:3;4511:33;;611:4324;;4507:44;;;;;4576:36;;;:50;:36;;:::i;:::-;611:4324;-1:-1:-1;;;;;611:4324:85;;;4576:50;;4572:119;;4709:73;4710:72;4745:36;;:33;;;:36;:::i;:::-;4710:72;:::i;:::-;4709:73;;611:4324;4709:73;4705:140;;611:4324;;4496:9;;4705:140;611:4324;;-1:-1:-1;;;4809:21:85;;611:4324;;4809:21;4572:119;611:4324;;-1:-1:-1;;;4653:23:85;;611:4324;;4653:23;4507:44;-1:-1:-1;;611:4324:85;;4380:54;611:4324;;-1:-1:-1;;;;;;611:4324:85;-1:-1:-1;;;;;611:4324:85;;;;;;;;;;-1:-1:-1;4865:26:85;;-1:-1:-1;;611:4324:85;4865:26;4909:17;4015:918;:::o;4375:106::-;4418:15;611:4324;-1:-1:-1;;;4457:13:85;;4380:54;;4457:13;4380:54;;;;;;;;;;;;;;:::i;:::-;;;;4204:161;611:4324;;-1:-1:-1;;;4334:20:85;;;;;4208:103;4266:33;;;;;611:4324;4266:45;4208:103;;6999:207:91;;611:4324:85;;9594:15:61;-1:-1:-1;9619:18:61;9652:7;9658:1;9652:7;;9648:234;;6999:207:91;9906:53:61;;;;;:::i;:::-;9977:8;;;:63;-1:-1:-1;9977:63:61;;-1:-1:-1;;;;;611:4324:85;;7168:7:91;611:4324:85;;;7178:12:91;;:17;:12;;:17;:::i;9977:63:61:-;9992:41;10025:7;9992:48;10025:7;;:::i;:::-;9992:41;14249:109;;;;;;14099:265;;9992:41;611:4324:85;;;;;9992:48:61;9977:63;;;9648:234;9695:14;;;;;:::i;:::-;611:4324:85;;;;;;;9906:53:61;14249:109;;-1:-1:-1;14249:109:61;611:4324:85;14249:109:61;;;-1:-1:-1;14249:109:61;;611:4324:85;;;;;9727:48:61;9723:149;611:4324:85;;;9795:10:61;9723:149;9648:234;;9723:149;9850:7;;;;;;:::i;:::-;9723:149;9648:234;;611:4324:85;;;;;;;:::i;:::-;-1:-1:-1;611:4324:85;;;;;;;:::o;11486:272:91:-;;611:4324:85;11308:22:61;11718:31:91;11486:272;611:4324:85;;:::i;:::-;;;;:::i;:::-;;11308:22:61;;:::i;:::-;611:4324:85;;:::i;:::-;;11718:12:91;611:4324:85;;;;;11731:17:91;611:4324:85;;;;;11731:17:91;;611:4324:85;;11718:12:91;;:31;:::i;:::-;611:4324:85;;;;;;;;;:::i;:::-;;;;;;11731:17:91;11672:79;;611:4324:85;11486:272:91;:::o;2557:104:58:-;;2641:5;;;;;;:13;2557:104;:::o;2641:13::-;;;2557:104;:::o;611:4324:85:-;;;-1:-1:-1;;;611:4324:85;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;611:4324:85;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;11513:870:61;611:4324:85;;11513:870:61;;;611:4324:85;11513:870:61;11672:7;;;;611:4324:85;11775:28:61;11795:7;;;:::i;11775:28::-;611:4324:85;:::i;:::-;;;;;;;;;;;;;;;;11877:15:61;-1:-1:-1;11873:91:61;;611:4324:85;;12233:11:61;611:4324:85;;;12027:16:61;611:4324:85;;;;;;;12027:16:61;;;;12083:7;12063:43;12083:7;;12063:28;12083:7;;:::i;:::-;12063:28;14249:109;;;;;;14099:265;;12063:28;611:4324:85;;;;;;;;;;;;;;;;;12063:43:61;12233:11;611:4324:85;-1:-1:-1;;;;;611:4324:85;;;12023:189:61;611:4324:85;;;12145:52:61;611:4324:85;12155:41:61;611:4324:85;;:::i;:::-;;;;;;;;12155:41:61;-1:-1:-1;;;;;611:4324:85;;12155:41:61;;;611:4324:85;12145:52:61;:::i;:::-;12023:189;;11873:91;611:4324:85;;-1:-1:-1;;;11919:30:61;;;;;11668:709;12283:52;611:4324:85;;12293:41:61;611:4324:85;;:::i;12293:41:61:-;-1:-1:-1;;;;;611:4324:85;;12293:41:61;;;611:4324:85;12145:52:61;:::i;12283:::-;11678:1;12349:17;;:::o;7084:141:26:-;611:4324:85;-1:-1:-1;;;;;;;;;;;611:4324:85;;;;7150:18:26;7146:73;;7084:141::o;7146:73::-;611:4324:85;;-1:-1:-1;;;7191:17:26;;;;;8587:1642:58;8658:6;;8654:45;;9401:7;10201:10;10142:26;10093;10044;9995;9946;9897;9848;611:4324:85;10189:23:58;9401:7;8663:1;611:4324:85;;;;10826:16:58;10822:99;;8587:1642;611:4324:85;;;;10938:15:58;10934:96;;8587:1642;611:4324:85;;;;11047:15:58;11043:96;;8587:1642;611:4324:85;;;;11156:15:58;11152:96;;8587:1642;611:4324:85;;;;11265:14:58;11261:93;;8587:1642;611:4324:85;;;;11371:14:58;11367:93;;8587:1642;611:4324:85;;;;11477:14:58;11473:93;;8587:1642;611:4324:85;;;11579:64:58;;8587:1642;611:4324:85;;;9858:10:58;;;;:::i;:::-;611:4324:85;;;;;9848:26:58;9907:10;;;;:::i;9897:26::-;9956:10;;;;:::i;9946:26::-;10005:10;;;;:::i;9995:26::-;10054:10;;;;:::i;10044:26::-;10103:10;;;;:::i;10093:26::-;10152:10;;;;:::i;10142:26::-;10201:10;;;:::i;11579:64::-;611:4324:85;;11579:64:58;;11473:93;611:4324:85;11511:11:58;;611:4324:85;;11473:93:58;;;;11367;611:4324:85;11405:11:58;;611:4324:85;;11367:93:58;;;;11261;611:4324:85;11299:11:58;;611:4324:85;;11261:93:58;;;;11152:96;611:4324:85;11191:12:58;;611:4324:85;;11152:96:58;;;;11043;611:4324:85;11082:12:58;;611:4324:85;;11043:96:58;;;;10934;611:4324:85;10973:12:58;;611:4324:85;;10934:96:58;;;;10822:99;10862:13;;;611:4324:85;10822:99:58;;;;12736:433:61;;;12919:10;;;;;;13151:11;;;12736:433;:::o;12912:230::-;2900:5:58;;;;;;2910;;;;611:4324:85;;;;;;;;;14249:109:61;-1:-1:-1;14249:109:61;611:4324:85;14249:109:61;;;-1:-1:-1;14249:109:61;;611:4324:85;;;;;-1:-1:-1;12996:136:61;611:4324:85;;;13055:10:61;12996:136;;12912:230;;;;12996:136;13110:7;;;;;;:::i;:::-;12996:136;;","linkReferences":{},"immutableReferences":{"64520":[{"start":1514,"length":32}],"64523":[{"start":3348,"length":32}],"65474":[{"start":1129,"length":32},{"start":3405,"length":32}],"65477":[{"start":863,"length":32},{"start":6996,"length":32}],"65480":[{"start":931,"length":32},{"start":4918,"length":32},{"start":5253,"length":32}],"65483":[{"start":999,"length":32},{"start":4765,"length":32},{"start":5379,"length":32}],"67399":[{"start":2964,"length":32},{"start":8772,"length":32}]}},"methodIdentifiers":{"DEFAULT_ADMIN_ROLE()":"a217fddf","FACTORY()":"2dd31000","HOOK_GAS_LIMIT()":"ff54740f","HOOK_RESERVE()":"557cab44","HOOK_SET_ROLE()":"6679191e","NETWORK_LIMIT_SET_ROLE()":"7d24bb27","NETWORK_REGISTRY()":"c0cd7c3e","OPERATOR_NETWORK_OPT_IN_SERVICE()":"1a80e500","OPERATOR_REGISTRY()":"83ce0322","OPERATOR_VAULT_OPT_IN_SERVICE()":"128e5d82","TYPE()":"bb24fe8a","VAULT_FACTORY()":"103f2907","VERSION()":"ffa1ad74","getRoleAdmin(bytes32)":"248a9ca3","grantRole(bytes32,address)":"2f2ff15d","hasRole(bytes32,address)":"91d14854","hook()":"7f5a7c7b","initialize(bytes)":"439fab91","maxNetworkLimit(bytes32)":"d15b740e","networkLimit(bytes32)":"3eb22c0f","networkLimitAt(bytes32,uint48,bytes)":"5d32a1c9","onSlash(bytes32,address,uint256,uint48,bytes)":"e49561ee","operator()":"570ca735","renounceRole(bytes32,address)":"36568abe","revokeRole(bytes32,address)":"d547741f","setHook(address)":"3dfd3873","setMaxNetworkLimit(uint96,uint256)":"23f752d5","setNetworkLimit(bytes32,uint256)":"02145348","stake(bytes32,address)":"fd4d447c","stakeAt(bytes32,address,uint48,bytes)":"e02f6937","staticDelegateCall(address,bytes)":"9f86fd85","supportsInterface(bytes4)":"01ffc9a7","vault()":"fbfa77cf"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operatorRegistry\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"networkRegistry\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"vaultFactory\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operatorVaultOptInService\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operatorNetworkOptInService\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"delegatorFactory\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"entityType\",\"type\":\"uint64\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"AccessControlBadConfirmation\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"neededRole\",\"type\":\"bytes32\"}],\"name\":\"AccessControlUnauthorizedAccount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AlreadySet\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CheckpointUnorderedInsertion\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"DuplicateRoleHolder\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ExceedsMaxNetworkLimit\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientHookGas\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MissingRoleHolders\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotNetwork\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotOperator\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotSlasher\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotVault\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ReentrancyGuardReentrantCall\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"bits\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"SafeCastOverflowedUintDowncast\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ZeroAddressRoleHolder\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint48\",\"name\":\"captureTimestamp\",\"type\":\"uint48\"}],\"name\":\"OnSlash\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"previousAdminRole\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"newAdminRole\",\"type\":\"bytes32\"}],\"name\":\"RoleAdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleRevoked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"hook\",\"type\":\"address\"}],\"name\":\"SetHook\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"SetMaxNetworkLimit\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"SetNetworkLimit\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DEFAULT_ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"FACTORY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"HOOK_GAS_LIMIT\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"HOOK_RESERVE\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"HOOK_SET_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"NETWORK_LIMIT_SET_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"NETWORK_REGISTRY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"OPERATOR_NETWORK_OPT_IN_SERVICE\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"OPERATOR_REGISTRY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"OPERATOR_VAULT_OPT_IN_SERVICE\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"TYPE\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"VAULT_FACTORY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"VERSION\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleAdmin\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"grantRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"hook\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"}],\"name\":\"maxNetworkLimit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"}],\"name\":\"networkLimit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hint\",\"type\":\"bytes\"}],\"name\":\"networkLimitAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint48\",\"name\":\"captureTimestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"onSlash\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"operator\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"callerConfirmation\",\"type\":\"address\"}],\"name\":\"renounceRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"hook_\",\"type\":\"address\"}],\"name\":\"setHook\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint96\",\"name\":\"identifier\",\"type\":\"uint96\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"setMaxNetworkLimit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"setNetworkLimit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"stake\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hints\",\"type\":\"bytes\"}],\"name\":\"stakeAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"staticDelegateCall\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"vault\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"AccessControlBadConfirmation()\":[{\"details\":\"The caller of a function is not the expected one. NOTE: Don't confuse with {AccessControlUnauthorizedAccount}.\"}],\"AccessControlUnauthorizedAccount(address,bytes32)\":[{\"details\":\"The `account` is missing a role.\"}],\"CheckpointUnorderedInsertion()\":[{\"details\":\"A value was attempted to be inserted on a past checkpoint.\"}],\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"ReentrancyGuardReentrantCall()\":[{\"details\":\"Unauthorized reentrant call.\"}],\"SafeCastOverflowedUintDowncast(uint8,uint256)\":[{\"details\":\"Value doesn't fit in an uint of `bits` size.\"}]},\"events\":{\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"OnSlash(bytes32,address,uint256,uint48)\":{\"params\":{\"amount\":\"amount of the collateral to be slashed\",\"captureTimestamp\":\"time point when the stake was captured\",\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"}},\"RoleAdminChanged(bytes32,bytes32,bytes32)\":{\"details\":\"Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole` `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite {RoleAdminChanged} not being emitted signaling this.\"},\"RoleGranted(bytes32,address,address)\":{\"details\":\"Emitted when `account` is granted `role`. `sender` is the account that originated the contract call, an admin role bearer except when using {AccessControl-_setupRole}.\"},\"RoleRevoked(bytes32,address,address)\":{\"details\":\"Emitted when `account` is revoked `role`. `sender` is the account that originated the contract call: - if using `revokeRole`, it is the admin role bearer - if using `renounceRole`, it is the role bearer (i.e. `account`)\"},\"SetHook(address)\":{\"params\":{\"hook\":\"address of the hook\"}},\"SetMaxNetworkLimit(bytes32,uint256)\":{\"params\":{\"amount\":\"new maximum subnetwork's limit (how much stake the subnetwork is ready to get)\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"}},\"SetNetworkLimit(bytes32,uint256)\":{\"params\":{\"amount\":\"new subnetwork's limit (how much stake the vault curator is ready to give to the subnetwork)\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"}}},\"kind\":\"dev\",\"methods\":{\"VERSION()\":{\"details\":\"Must return 1 for this one.\",\"returns\":{\"_0\":\"version of the delegator\"}},\"getRoleAdmin(bytes32)\":{\"details\":\"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}.\"},\"grantRole(bytes32,address)\":{\"details\":\"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event.\"},\"hasRole(bytes32,address)\":{\"details\":\"Returns `true` if `account` has been granted `role`.\"},\"initialize(bytes)\":{\"params\":{\"data\":\"some data to use\"}},\"networkLimit(bytes32)\":{\"params\":{\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"},\"returns\":{\"_0\":\"limit of the subnetwork\"}},\"networkLimitAt(bytes32,uint48,bytes)\":{\"params\":{\"hint\":\"hint for checkpoint index\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\",\"timestamp\":\"time point to get the subnetwork limit at\"},\"returns\":{\"_0\":\"limit of the subnetwork at the given timestamp\"}},\"onSlash(bytes32,address,uint256,uint48,bytes)\":{\"details\":\"Only the vault's slasher can call this function.\",\"params\":{\"amount\":\"amount of the collateral slashed\",\"captureTimestamp\":\"time point when the stake was captured\",\"data\":\"some additional data\",\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"}},\"renounceRole(bytes32,address)\":{\"details\":\"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `callerConfirmation`. May emit a {RoleRevoked} event.\"},\"revokeRole(bytes32,address)\":{\"details\":\"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event.\"},\"setHook(address)\":{\"details\":\"Only a HOOK_SET_ROLE holder can call this function. The hook can have arbitrary logic under certain functions, however, it doesn't affect the stake guarantees.\",\"params\":{\"hook\":\"address of the hook\"}},\"setMaxNetworkLimit(uint96,uint256)\":{\"details\":\"Only a network can call this function.\",\"params\":{\"amount\":\"new maximum subnetwork's limit\"}},\"setNetworkLimit(bytes32,uint256)\":{\"details\":\"Only a NETWORK_LIMIT_SET_ROLE holder can call this function.\",\"params\":{\"amount\":\"new limit of the subnetwork\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"}},\"stake(bytes32,address)\":{\"details\":\"Warning: this function is not safe to use for stake capturing, as it can change by the end of the block.\",\"params\":{\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"},\"returns\":{\"_0\":\"slashable stake until the end of the next epoch\"}},\"stakeAt(bytes32,address,uint48,bytes)\":{\"details\":\"Warning: it is not safe to use timestamp >= current one for the stake capturing, as it can change later.\",\"params\":{\"hints\":\"hints for the checkpoints' indexes\",\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\",\"timestamp\":\"time point to capture the stake at\"},\"returns\":{\"_0\":\"slashable stake at the given timestamp until the end of the consequent epoch\"}},\"staticDelegateCall(address,bytes)\":{\"details\":\"It allows to use this contract's storage on-chain.\",\"params\":{\"data\":\"data to make a delegatecall with\",\"target\":\"address of the contract to make a delegatecall to\"}},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"}},\"stateVariables\":{\"NETWORK_LIMIT_SET_ROLE\":{\"return\":\"identifier of the subnetwork limit setter role\",\"returns\":{\"_0\":\"identifier of the subnetwork limit setter role\"}},\"OPERATOR_REGISTRY\":{\"return\":\"address of the operator registry\",\"returns\":{\"_0\":\"address of the operator registry\"}},\"operator\":{\"return\":\"address of the operator\",\"returns\":{\"_0\":\"address of the operator\"}}},\"version\":1},\"userdoc\":{\"events\":{\"OnSlash(bytes32,address,uint256,uint48)\":{\"notice\":\"Emitted when a slash happens.\"},\"SetHook(address)\":{\"notice\":\"Emitted when a hook is set.\"},\"SetMaxNetworkLimit(bytes32,uint256)\":{\"notice\":\"Emitted when a subnetwork's maximum limit is set.\"},\"SetNetworkLimit(bytes32,uint256)\":{\"notice\":\"Emitted when a subnetwork's limit is set.\"}},\"kind\":\"user\",\"methods\":{\"FACTORY()\":{\"notice\":\"Get the factory's address.\"},\"HOOK_GAS_LIMIT()\":{\"notice\":\"Get a gas limit for the hook.\"},\"HOOK_RESERVE()\":{\"notice\":\"Get a reserve gas between the gas limit check and the hook's execution.\"},\"HOOK_SET_ROLE()\":{\"notice\":\"Get a hook setter's role.\"},\"NETWORK_LIMIT_SET_ROLE()\":{\"notice\":\"Get a subnetwork limit setter's role.\"},\"NETWORK_REGISTRY()\":{\"notice\":\"Get the network registry's address.\"},\"OPERATOR_NETWORK_OPT_IN_SERVICE()\":{\"notice\":\"Get the operator-network opt-in service's address.\"},\"OPERATOR_REGISTRY()\":{\"notice\":\"Get the operator registry's address.\"},\"OPERATOR_VAULT_OPT_IN_SERVICE()\":{\"notice\":\"Get the operator-vault opt-in service's address.\"},\"TYPE()\":{\"notice\":\"Get the entity's type.\"},\"VAULT_FACTORY()\":{\"notice\":\"Get the vault factory's address.\"},\"VERSION()\":{\"notice\":\"Get a version of the delegator (different versions mean different interfaces).\"},\"hook()\":{\"notice\":\"Get the hook's address.\"},\"initialize(bytes)\":{\"notice\":\"Initialize this entity contract by using a given data.\"},\"maxNetworkLimit(bytes32)\":{\"notice\":\"Get a particular subnetwork's maximum limit (meaning the subnetwork is not ready to get more as a stake).\"},\"networkLimit(bytes32)\":{\"notice\":\"Get a subnetwork's limit (how much stake the vault curator is ready to give to the subnetwork).\"},\"networkLimitAt(bytes32,uint48,bytes)\":{\"notice\":\"Get a subnetwork's limit at a given timestamp using a hint (how much stake the vault curator is ready to give to the subnetwork).\"},\"onSlash(bytes32,address,uint256,uint48,bytes)\":{\"notice\":\"Called when a slash happens.\"},\"operator()\":{\"notice\":\"Get an operator managing the vault's funds.\"},\"setHook(address)\":{\"notice\":\"Set a new hook.\"},\"setMaxNetworkLimit(uint96,uint256)\":{\"notice\":\"Set a maximum limit for a subnetwork (how much stake the subnetwork is ready to get). identifier identifier of the subnetwork\"},\"setNetworkLimit(bytes32,uint256)\":{\"notice\":\"Set a subnetwork's limit (how much stake the vault curator is ready to give to the subnetwork).\"},\"stake(bytes32,address)\":{\"notice\":\"Get a stake that a given subnetwork will be able to slash for a certain operator until the end of the next epoch (if no cross-slashing and no slashings by the subnetwork).\"},\"stakeAt(bytes32,address,uint48,bytes)\":{\"notice\":\"Get a stake that a given subnetwork could be able to slash for a certain operator at a given timestamp until the end of the consequent epoch using hints (if no cross-slashing and no slashings by the subnetwork).\"},\"staticDelegateCall(address,bytes)\":{\"notice\":\"Make a delegatecall from this contract to a given target contract with a particular data (always reverts with a return data).\"},\"vault()\":{\"notice\":\"Get the vault's address.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/contracts/delegator/OperatorSpecificDelegator.sol\":\"OperatorSpecificDelegator\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol\":{\"keccak256\":\"0x6662ec4e5cefca03eeadd073e9469df8d2944bb2ee8ec8f7622c2c46aab5f225\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4d8544c6f8daa4d1bc215c6a72fe0acdb748664a105b0e5efc19295667521d45\",\"dweb:/ipfs/QmdGWqdnXT8S3RgCR6aV8XHZrsybieMQLLnug1NtpSjEXN\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609\",\"dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9\",\"dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardUpgradeable.sol\":{\"keccak256\":\"0xb44e086e941292cdc7f440de51478493894ef0b1aeccb0c4047445919f667f74\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://942dad22fbdc1669f025540ba63aa3ccfad5f8458fc5d4525b31ebf272e7af45\",\"dweb:/ipfs/Qmdo4X2M82aM3AMoW2kf2jhYkSCyC4T1pHNd6obdsDFnAB\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol\":{\"keccak256\":\"0xdaba3f7c42c55b2896353f32bd27d4d5f8bae741b3b05d4c53f67abc4dc47ce8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1fa2e61141c602510bcd2cd936ed9561922ac8772a9b9c9a9db091a74e354a45\",\"dweb:/ipfs/QmcHQDDoEBwJmwUbzoVkytvJsBx3KVHYFFnDkvRGWh9Wmh\"]},\"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0xb6b36edd6a2999fd243ff226d6cbf84bd71af2432bbd0dfe19392996a1d9cb41\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1fd2f35495652e57e3f99bc6c510bc5f7dd398a176ea2e72d8ed730aebc6ca26\",\"dweb:/ipfs/QmTQV6X4gkikTib49cho5iDX3JvSQbdsoEChoDwrk3CbbH\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875\",\"dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0xe19a4d5f31d2861e7344e8e535e2feafb913d806d3e2b5fe7782741a2a7094fe\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4aed79c0fa6f0546ed02f2f683e8f77f0fd2ed7eb34d8bbf3d373c9a6d95b13c\",\"dweb:/ipfs/QmWqVz6UAVqmnWU5pqYPt1o6iDEZyPaBraAA3rKfTTSfYj\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/Checkpoints.sol\":{\"keccak256\":\"0xbdc5e074d7dd6678f67e92b1a51a20226801a407b0e1af3da367c5d1ff4519ad\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a36cca6b22fff3db16fc789ff6c60eea71d4b156065d4d0c83a0bc5e91a77a8b\",\"dweb:/ipfs/QmYN3exd5AemxjBrN8XMB1p5LbbE16uC3sjbYjwi8AjcGR\"]},\"lib/openzeppelin-contracts/contracts/utils/types/Time.sol\":{\"keccak256\":\"0xc7755af115020049e4140f224f9ee88d7e1799ffb0646f37bf0df24bf6213f58\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7f09bf94d5274334ec021f61a04659db303f31e60460e14b709c9bf187740111\",\"dweb:/ipfs/QmNvgomZYUwFAt4cZbPWAiTeSZQreGehY9BK5xyVJsUttb\"]},\"src/contracts/common/Entity.sol\":{\"keccak256\":\"0x3d61a932995b8443381f3950542d388223a2c26dd5d29a3274dea3baa7388bd7\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://7cdf5f03ca72fd263fd32ff59c8d88ddca911ae83896a287d10772c1bbe9b138\",\"dweb:/ipfs/QmbP84r5BWT1Rn9AYTntWSf3xUMTTCohTZJFhbBhDXFoHa\"]},\"src/contracts/common/StaticDelegateCallable.sol\":{\"keccak256\":\"0x350029aa8955eacaffffaeb58babc5c98e80ebc5c5db388ed17ee6465f4a9d90\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://eb392a8ee9050e0af606897df63e3404e3829e8b688b580663892f9664195764\",\"dweb:/ipfs/QmaXC8jqV8UrrAFkzXTEv2fJF56sy33HhLxAzaRZmUxuXD\"]},\"src/contracts/delegator/BaseDelegator.sol\":{\"keccak256\":\"0x7c54d491fdd4415b764a9c8defa068e56d4c0c8c9419be0053a1d377669290e8\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://9238bfbad0f6eeb0dc7727724de14380f1980b395902269703d5e2ef07e52e10\",\"dweb:/ipfs/QmPJn1V4HNXcEghYvogGuSTF24dSQUPosR5qtsXcmNqRm3\"]},\"src/contracts/delegator/OperatorSpecificDelegator.sol\":{\"keccak256\":\"0x630ce62fa30b9f3349ab7a8cf8dbf041319febc6dd757be2f94d3d25944ed328\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://c2ac59d47ce57d2a6819ae9833e1a618a371eccff93eb5ab367b201b01f42bfa\",\"dweb:/ipfs/QmdBpGMBivpNPv2WbH8vnCUy5xkVeaxQvGgqi33vKCz1kA\"]},\"src/contracts/libraries/Checkpoints.sol\":{\"keccak256\":\"0xba90097c8bfe0a975499428b5f8ac5569483c7d92ccc28c12d70de416aae040c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://12f5d93ca94cd06d3147db68993165a58e17903ed53682560de61f3085ad4609\",\"dweb:/ipfs/QmePiuAqvXprMLmFZkGZeGjvGPAvsEDHfCDv7BoQhXu9xE\"]},\"src/contracts/libraries/Subnetwork.sol\":{\"keccak256\":\"0xf5ef5506fd66082b3c2e7f3df37529f5a8efad32ac62e7c8914bd63219190bfe\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba031a54ee0d0e9a270c2b9e18437f5668cfeb659cfd5fe0677459d7fcac2a56\",\"dweb:/ipfs/QmReP3H7qQ78tAfgLnJKsNEQNCQfF1X1Get38Ffd4kzq32\"]},\"src/interfaces/common/IEntity.sol\":{\"keccak256\":\"0x8ef4b63d6da63489778ccd5f8d13ebdd527dd4b62730b2c616df5af7474d2d21\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a8d69576a9219d85c50816a18ad53a4d53cfcb27ed38b8cccc808dc2734b71b\",\"dweb:/ipfs/QmYVN3P4Q4REvBWJ97TbAcaxm3uyB2anV6NSGa6ZtSwcEv\"]},\"src/interfaces/common/IMigratableEntity.sol\":{\"keccak256\":\"0x8f5f2809f3afbe8ebfbb365dd7b57b4dd3b6f9943a6187eaf648d45895b8e3c4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ffe640537d539e7a4fde70d30d3e4c57f4ba9c2c25c450cea713aae38e8fd5c\",\"dweb:/ipfs/QmSUTGzvdcn1R1KB7tLThMRtESsfPbeXDhhhKWGtntzBds\"]},\"src/interfaces/common/IRegistry.sol\":{\"keccak256\":\"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014\",\"dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK\"]},\"src/interfaces/common/IStaticDelegateCallable.sol\":{\"keccak256\":\"0xa335d4e81b9071b7de66ef92b43ff20671d86516eb1be46fef29a3483cd3f5d5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d464b9db863c14c05547d2b23352f2e9b7b784799cf09f6bbc4906a2a74e3516\",\"dweb:/ipfs/QmUVWzFvJz7eEbDQKiFTTzwi7TEbjcs3VmwdM4kuptAKvi\"]},\"src/interfaces/delegator/IBaseDelegator.sol\":{\"keccak256\":\"0x96bb312f032e17accce3f8f80936d99468029d6b37c9ca74acdb4b026a0148ee\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2a66dcb5b7d1a6ef6a363431ea98ebd78bc4fdd3d7a134d9b542dc66e7d025c2\",\"dweb:/ipfs/QmRhTPLd2ZAyRHmJUFUcWKs9b3if49QY17LYZuRqWmghw8\"]},\"src/interfaces/delegator/IDelegatorHook.sol\":{\"keccak256\":\"0xc51aa8d7d1f6c8043ee819b7aeb86da0e993912e1442098df897e299f01f9f46\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://adddf5cb2ba282aeb576b26efb28640f865a1721cc9b6eee8b3ee0457a2c9780\",\"dweb:/ipfs/QmNYgAmnLRwWZbhTuQhZs9rx4zcme1df5mEepkrniorSoW\"]},\"src/interfaces/delegator/IOperatorSpecificDelegator.sol\":{\"keccak256\":\"0x72075cab585dc17240cc3e32bc99b92f0d5627ddd988fed680e3e1a52d5a01e4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7448bc90699409ae61d85216b5efc2143a37f0f73354be2aea993bc54afca441\",\"dweb:/ipfs/QmXE4gAxM8pHosZK8mcTcj17puBx484meDCcmrDePskGHZ\"]},\"src/interfaces/service/IOptInService.sol\":{\"keccak256\":\"0x76fb5460a6d87a5705433d4fbeff7253cd75b8bbd0c888b2088f16e86ace146a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://990322019b3d11465f7024bae77ccbf7e2fe5d6fa3c754584778f37d04fa1337\",\"dweb:/ipfs/QmaSNHzcqxTkUCG9a4nqVfLECHLdjdrwAnDi3yDC7tDL24\"]},\"src/interfaces/vault/IVault.sol\":{\"keccak256\":\"0xffee01d383cd4e1a5530c614bf4360c1ef070c288abec9da1eb531b51bc07235\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://04f0046cac285d8ec44ebbb1f79dc94fab4495767190cad8364fbc1fafaadfb9\",\"dweb:/ipfs/QmUawAunwzXfCyShWfhKeThAgKtqe51hmrxvrXvM772M2R\"]},\"src/interfaces/vault/IVaultStorage.sol\":{\"keccak256\":\"0x592626f13754194f83047135de19229c49390bd59e34659b1bb38be71d973a22\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://06a6a9dfddd05e580b32bebe2cff4f63ba26a653180676d58225dd30d9c89d3e\",\"dweb:/ipfs/QmdgzBeY6Sxo8mGtyBxtv1tM1c2kU6J6zjeRd7vuXm4DU6\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.25+commit.b61c2a91"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"operatorRegistry","type":"address"},{"internalType":"address","name":"networkRegistry","type":"address"},{"internalType":"address","name":"vaultFactory","type":"address"},{"internalType":"address","name":"operatorVaultOptInService","type":"address"},{"internalType":"address","name":"operatorNetworkOptInService","type":"address"},{"internalType":"address","name":"delegatorFactory","type":"address"},{"internalType":"uint64","name":"entityType","type":"uint64"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"AccessControlBadConfirmation"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bytes32","name":"neededRole","type":"bytes32"}],"type":"error","name":"AccessControlUnauthorizedAccount"},{"inputs":[],"type":"error","name":"AlreadySet"},{"inputs":[],"type":"error","name":"CheckpointUnorderedInsertion"},{"inputs":[],"type":"error","name":"DuplicateRoleHolder"},{"inputs":[],"type":"error","name":"ExceedsMaxNetworkLimit"},{"inputs":[],"type":"error","name":"InsufficientHookGas"},{"inputs":[],"type":"error","name":"InvalidInitialization"},{"inputs":[],"type":"error","name":"MissingRoleHolders"},{"inputs":[],"type":"error","name":"NotInitialized"},{"inputs":[],"type":"error","name":"NotInitializing"},{"inputs":[],"type":"error","name":"NotNetwork"},{"inputs":[],"type":"error","name":"NotOperator"},{"inputs":[],"type":"error","name":"NotSlasher"},{"inputs":[],"type":"error","name":"NotVault"},{"inputs":[],"type":"error","name":"ReentrancyGuardReentrantCall"},{"inputs":[{"internalType":"uint8","name":"bits","type":"uint8"},{"internalType":"uint256","name":"value","type":"uint256"}],"type":"error","name":"SafeCastOverflowedUintDowncast"},{"inputs":[],"type":"error","name":"ZeroAddressRoleHolder"},{"inputs":[{"internalType":"uint64","name":"version","type":"uint64","indexed":false}],"type":"event","name":"Initialized","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32","indexed":true},{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false},{"internalType":"uint48","name":"captureTimestamp","type":"uint48","indexed":false}],"type":"event","name":"OnSlash","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"bytes32","name":"previousAdminRole","type":"bytes32","indexed":true},{"internalType":"bytes32","name":"newAdminRole","type":"bytes32","indexed":true}],"type":"event","name":"RoleAdminChanged","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"address","name":"sender","type":"address","indexed":true}],"type":"event","name":"RoleGranted","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"address","name":"sender","type":"address","indexed":true}],"type":"event","name":"RoleRevoked","anonymous":false},{"inputs":[{"internalType":"address","name":"hook","type":"address","indexed":true}],"type":"event","name":"SetHook","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"SetMaxNetworkLimit","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"SetNetworkLimit","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"DEFAULT_ADMIN_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"FACTORY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"HOOK_GAS_LIMIT","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"HOOK_RESERVE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"HOOK_SET_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"NETWORK_LIMIT_SET_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"NETWORK_REGISTRY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"OPERATOR_NETWORK_OPT_IN_SERVICE","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"OPERATOR_REGISTRY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"OPERATOR_VAULT_OPT_IN_SERVICE","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"TYPE","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"VAULT_FACTORY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"VERSION","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getRoleAdmin","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"grantRole"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"hasRole","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"hook","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"}],"stateMutability":"view","type":"function","name":"maxNetworkLimit","outputs":[{"internalType":"uint256","name":"value","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"}],"stateMutability":"view","type":"function","name":"networkLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"uint48","name":"timestamp","type":"uint48"},{"internalType":"bytes","name":"hint","type":"bytes"}],"stateMutability":"view","type":"function","name":"networkLimitAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint48","name":"captureTimestamp","type":"uint48"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"onSlash"},{"inputs":[],"stateMutability":"view","type":"function","name":"operator","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"callerConfirmation","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"renounceRole"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"revokeRole"},{"inputs":[{"internalType":"address","name":"hook_","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setHook"},{"inputs":[{"internalType":"uint96","name":"identifier","type":"uint96"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setMaxNetworkLimit"},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setNetworkLimit"},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"stake","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint48","name":"timestamp","type":"uint48"},{"internalType":"bytes","name":"hints","type":"bytes"}],"stateMutability":"view","type":"function","name":"stakeAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"staticDelegateCall"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"vault","outputs":[{"internalType":"address","name":"","type":"address"}]}],"devdoc":{"kind":"dev","methods":{"VERSION()":{"details":"Must return 1 for this one.","returns":{"_0":"version of the delegator"}},"getRoleAdmin(bytes32)":{"details":"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}."},"grantRole(bytes32,address)":{"details":"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event."},"hasRole(bytes32,address)":{"details":"Returns `true` if `account` has been granted `role`."},"initialize(bytes)":{"params":{"data":"some data to use"}},"networkLimit(bytes32)":{"params":{"subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"},"returns":{"_0":"limit of the subnetwork"}},"networkLimitAt(bytes32,uint48,bytes)":{"params":{"hint":"hint for checkpoint index","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)","timestamp":"time point to get the subnetwork limit at"},"returns":{"_0":"limit of the subnetwork at the given timestamp"}},"onSlash(bytes32,address,uint256,uint48,bytes)":{"details":"Only the vault's slasher can call this function.","params":{"amount":"amount of the collateral slashed","captureTimestamp":"time point when the stake was captured","data":"some additional data","operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"}},"renounceRole(bytes32,address)":{"details":"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `callerConfirmation`. May emit a {RoleRevoked} event."},"revokeRole(bytes32,address)":{"details":"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event."},"setHook(address)":{"details":"Only a HOOK_SET_ROLE holder can call this function. The hook can have arbitrary logic under certain functions, however, it doesn't affect the stake guarantees.","params":{"hook":"address of the hook"}},"setMaxNetworkLimit(uint96,uint256)":{"details":"Only a network can call this function.","params":{"amount":"new maximum subnetwork's limit"}},"setNetworkLimit(bytes32,uint256)":{"details":"Only a NETWORK_LIMIT_SET_ROLE holder can call this function.","params":{"amount":"new limit of the subnetwork","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"}},"stake(bytes32,address)":{"details":"Warning: this function is not safe to use for stake capturing, as it can change by the end of the block.","params":{"operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"},"returns":{"_0":"slashable stake until the end of the next epoch"}},"stakeAt(bytes32,address,uint48,bytes)":{"details":"Warning: it is not safe to use timestamp >= current one for the stake capturing, as it can change later.","params":{"hints":"hints for the checkpoints' indexes","operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)","timestamp":"time point to capture the stake at"},"returns":{"_0":"slashable stake at the given timestamp until the end of the consequent epoch"}},"staticDelegateCall(address,bytes)":{"details":"It allows to use this contract's storage on-chain.","params":{"data":"data to make a delegatecall with","target":"address of the contract to make a delegatecall to"}},"supportsInterface(bytes4)":{"details":"See {IERC165-supportsInterface}."}},"version":1},"userdoc":{"kind":"user","methods":{"FACTORY()":{"notice":"Get the factory's address."},"HOOK_GAS_LIMIT()":{"notice":"Get a gas limit for the hook."},"HOOK_RESERVE()":{"notice":"Get a reserve gas between the gas limit check and the hook's execution."},"HOOK_SET_ROLE()":{"notice":"Get a hook setter's role."},"NETWORK_LIMIT_SET_ROLE()":{"notice":"Get a subnetwork limit setter's role."},"NETWORK_REGISTRY()":{"notice":"Get the network registry's address."},"OPERATOR_NETWORK_OPT_IN_SERVICE()":{"notice":"Get the operator-network opt-in service's address."},"OPERATOR_REGISTRY()":{"notice":"Get the operator registry's address."},"OPERATOR_VAULT_OPT_IN_SERVICE()":{"notice":"Get the operator-vault opt-in service's address."},"TYPE()":{"notice":"Get the entity's type."},"VAULT_FACTORY()":{"notice":"Get the vault factory's address."},"VERSION()":{"notice":"Get a version of the delegator (different versions mean different interfaces)."},"hook()":{"notice":"Get the hook's address."},"initialize(bytes)":{"notice":"Initialize this entity contract by using a given data."},"maxNetworkLimit(bytes32)":{"notice":"Get a particular subnetwork's maximum limit (meaning the subnetwork is not ready to get more as a stake)."},"networkLimit(bytes32)":{"notice":"Get a subnetwork's limit (how much stake the vault curator is ready to give to the subnetwork)."},"networkLimitAt(bytes32,uint48,bytes)":{"notice":"Get a subnetwork's limit at a given timestamp using a hint (how much stake the vault curator is ready to give to the subnetwork)."},"onSlash(bytes32,address,uint256,uint48,bytes)":{"notice":"Called when a slash happens."},"operator()":{"notice":"Get an operator managing the vault's funds."},"setHook(address)":{"notice":"Set a new hook."},"setMaxNetworkLimit(uint96,uint256)":{"notice":"Set a maximum limit for a subnetwork (how much stake the subnetwork is ready to get). identifier identifier of the subnetwork"},"setNetworkLimit(bytes32,uint256)":{"notice":"Set a subnetwork's limit (how much stake the vault curator is ready to give to the subnetwork)."},"stake(bytes32,address)":{"notice":"Get a stake that a given subnetwork will be able to slash for a certain operator until the end of the next epoch (if no cross-slashing and no slashings by the subnetwork)."},"stakeAt(bytes32,address,uint48,bytes)":{"notice":"Get a stake that a given subnetwork could be able to slash for a certain operator at a given timestamp until the end of the consequent epoch using hints (if no cross-slashing and no slashings by the subnetwork)."},"staticDelegateCall(address,bytes)":{"notice":"Make a delegatecall from this contract to a given target contract with a particular data (always reverts with a return data)."},"vault()":{"notice":"Get the vault's address."}},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/contracts/delegator/OperatorSpecificDelegator.sol":"OperatorSpecificDelegator"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol":{"keccak256":"0x6662ec4e5cefca03eeadd073e9469df8d2944bb2ee8ec8f7622c2c46aab5f225","urls":["bzz-raw://4d8544c6f8daa4d1bc215c6a72fe0acdb748664a105b0e5efc19295667521d45","dweb:/ipfs/QmdGWqdnXT8S3RgCR6aV8XHZrsybieMQLLnug1NtpSjEXN"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b","urls":["bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609","dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol":{"keccak256":"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397","urls":["bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9","dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardUpgradeable.sol":{"keccak256":"0xb44e086e941292cdc7f440de51478493894ef0b1aeccb0c4047445919f667f74","urls":["bzz-raw://942dad22fbdc1669f025540ba63aa3ccfad5f8458fc5d4525b31ebf272e7af45","dweb:/ipfs/Qmdo4X2M82aM3AMoW2kf2jhYkSCyC4T1pHNd6obdsDFnAB"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol":{"keccak256":"0xdaba3f7c42c55b2896353f32bd27d4d5f8bae741b3b05d4c53f67abc4dc47ce8","urls":["bzz-raw://1fa2e61141c602510bcd2cd936ed9561922ac8772a9b9c9a9db091a74e354a45","dweb:/ipfs/QmcHQDDoEBwJmwUbzoVkytvJsBx3KVHYFFnDkvRGWh9Wmh"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol":{"keccak256":"0xb6b36edd6a2999fd243ff226d6cbf84bd71af2432bbd0dfe19392996a1d9cb41","urls":["bzz-raw://1fd2f35495652e57e3f99bc6c510bc5f7dd398a176ea2e72d8ed730aebc6ca26","dweb:/ipfs/QmTQV6X4gkikTib49cho5iDX3JvSQbdsoEChoDwrk3CbbH"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b","urls":["bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df","dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d","urls":["bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875","dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol":{"keccak256":"0xe19a4d5f31d2861e7344e8e535e2feafb913d806d3e2b5fe7782741a2a7094fe","urls":["bzz-raw://4aed79c0fa6f0546ed02f2f683e8f77f0fd2ed7eb34d8bbf3d373c9a6d95b13c","dweb:/ipfs/QmWqVz6UAVqmnWU5pqYPt1o6iDEZyPaBraAA3rKfTTSfYj"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/Checkpoints.sol":{"keccak256":"0xbdc5e074d7dd6678f67e92b1a51a20226801a407b0e1af3da367c5d1ff4519ad","urls":["bzz-raw://a36cca6b22fff3db16fc789ff6c60eea71d4b156065d4d0c83a0bc5e91a77a8b","dweb:/ipfs/QmYN3exd5AemxjBrN8XMB1p5LbbE16uC3sjbYjwi8AjcGR"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/types/Time.sol":{"keccak256":"0xc7755af115020049e4140f224f9ee88d7e1799ffb0646f37bf0df24bf6213f58","urls":["bzz-raw://7f09bf94d5274334ec021f61a04659db303f31e60460e14b709c9bf187740111","dweb:/ipfs/QmNvgomZYUwFAt4cZbPWAiTeSZQreGehY9BK5xyVJsUttb"],"license":"MIT"},"src/contracts/common/Entity.sol":{"keccak256":"0x3d61a932995b8443381f3950542d388223a2c26dd5d29a3274dea3baa7388bd7","urls":["bzz-raw://7cdf5f03ca72fd263fd32ff59c8d88ddca911ae83896a287d10772c1bbe9b138","dweb:/ipfs/QmbP84r5BWT1Rn9AYTntWSf3xUMTTCohTZJFhbBhDXFoHa"],"license":"BUSL-1.1"},"src/contracts/common/StaticDelegateCallable.sol":{"keccak256":"0x350029aa8955eacaffffaeb58babc5c98e80ebc5c5db388ed17ee6465f4a9d90","urls":["bzz-raw://eb392a8ee9050e0af606897df63e3404e3829e8b688b580663892f9664195764","dweb:/ipfs/QmaXC8jqV8UrrAFkzXTEv2fJF56sy33HhLxAzaRZmUxuXD"],"license":"BUSL-1.1"},"src/contracts/delegator/BaseDelegator.sol":{"keccak256":"0x7c54d491fdd4415b764a9c8defa068e56d4c0c8c9419be0053a1d377669290e8","urls":["bzz-raw://9238bfbad0f6eeb0dc7727724de14380f1980b395902269703d5e2ef07e52e10","dweb:/ipfs/QmPJn1V4HNXcEghYvogGuSTF24dSQUPosR5qtsXcmNqRm3"],"license":"BUSL-1.1"},"src/contracts/delegator/OperatorSpecificDelegator.sol":{"keccak256":"0x630ce62fa30b9f3349ab7a8cf8dbf041319febc6dd757be2f94d3d25944ed328","urls":["bzz-raw://c2ac59d47ce57d2a6819ae9833e1a618a371eccff93eb5ab367b201b01f42bfa","dweb:/ipfs/QmdBpGMBivpNPv2WbH8vnCUy5xkVeaxQvGgqi33vKCz1kA"],"license":"BUSL-1.1"},"src/contracts/libraries/Checkpoints.sol":{"keccak256":"0xba90097c8bfe0a975499428b5f8ac5569483c7d92ccc28c12d70de416aae040c","urls":["bzz-raw://12f5d93ca94cd06d3147db68993165a58e17903ed53682560de61f3085ad4609","dweb:/ipfs/QmePiuAqvXprMLmFZkGZeGjvGPAvsEDHfCDv7BoQhXu9xE"],"license":"MIT"},"src/contracts/libraries/Subnetwork.sol":{"keccak256":"0xf5ef5506fd66082b3c2e7f3df37529f5a8efad32ac62e7c8914bd63219190bfe","urls":["bzz-raw://ba031a54ee0d0e9a270c2b9e18437f5668cfeb659cfd5fe0677459d7fcac2a56","dweb:/ipfs/QmReP3H7qQ78tAfgLnJKsNEQNCQfF1X1Get38Ffd4kzq32"],"license":"MIT"},"src/interfaces/common/IEntity.sol":{"keccak256":"0x8ef4b63d6da63489778ccd5f8d13ebdd527dd4b62730b2c616df5af7474d2d21","urls":["bzz-raw://5a8d69576a9219d85c50816a18ad53a4d53cfcb27ed38b8cccc808dc2734b71b","dweb:/ipfs/QmYVN3P4Q4REvBWJ97TbAcaxm3uyB2anV6NSGa6ZtSwcEv"],"license":"MIT"},"src/interfaces/common/IMigratableEntity.sol":{"keccak256":"0x8f5f2809f3afbe8ebfbb365dd7b57b4dd3b6f9943a6187eaf648d45895b8e3c4","urls":["bzz-raw://0ffe640537d539e7a4fde70d30d3e4c57f4ba9c2c25c450cea713aae38e8fd5c","dweb:/ipfs/QmSUTGzvdcn1R1KB7tLThMRtESsfPbeXDhhhKWGtntzBds"],"license":"MIT"},"src/interfaces/common/IRegistry.sol":{"keccak256":"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb","urls":["bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014","dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK"],"license":"MIT"},"src/interfaces/common/IStaticDelegateCallable.sol":{"keccak256":"0xa335d4e81b9071b7de66ef92b43ff20671d86516eb1be46fef29a3483cd3f5d5","urls":["bzz-raw://d464b9db863c14c05547d2b23352f2e9b7b784799cf09f6bbc4906a2a74e3516","dweb:/ipfs/QmUVWzFvJz7eEbDQKiFTTzwi7TEbjcs3VmwdM4kuptAKvi"],"license":"MIT"},"src/interfaces/delegator/IBaseDelegator.sol":{"keccak256":"0x96bb312f032e17accce3f8f80936d99468029d6b37c9ca74acdb4b026a0148ee","urls":["bzz-raw://2a66dcb5b7d1a6ef6a363431ea98ebd78bc4fdd3d7a134d9b542dc66e7d025c2","dweb:/ipfs/QmRhTPLd2ZAyRHmJUFUcWKs9b3if49QY17LYZuRqWmghw8"],"license":"MIT"},"src/interfaces/delegator/IDelegatorHook.sol":{"keccak256":"0xc51aa8d7d1f6c8043ee819b7aeb86da0e993912e1442098df897e299f01f9f46","urls":["bzz-raw://adddf5cb2ba282aeb576b26efb28640f865a1721cc9b6eee8b3ee0457a2c9780","dweb:/ipfs/QmNYgAmnLRwWZbhTuQhZs9rx4zcme1df5mEepkrniorSoW"],"license":"MIT"},"src/interfaces/delegator/IOperatorSpecificDelegator.sol":{"keccak256":"0x72075cab585dc17240cc3e32bc99b92f0d5627ddd988fed680e3e1a52d5a01e4","urls":["bzz-raw://7448bc90699409ae61d85216b5efc2143a37f0f73354be2aea993bc54afca441","dweb:/ipfs/QmXE4gAxM8pHosZK8mcTcj17puBx484meDCcmrDePskGHZ"],"license":"MIT"},"src/interfaces/service/IOptInService.sol":{"keccak256":"0x76fb5460a6d87a5705433d4fbeff7253cd75b8bbd0c888b2088f16e86ace146a","urls":["bzz-raw://990322019b3d11465f7024bae77ccbf7e2fe5d6fa3c754584778f37d04fa1337","dweb:/ipfs/QmaSNHzcqxTkUCG9a4nqVfLECHLdjdrwAnDi3yDC7tDL24"],"license":"MIT"},"src/interfaces/vault/IVault.sol":{"keccak256":"0xffee01d383cd4e1a5530c614bf4360c1ef070c288abec9da1eb531b51bc07235","urls":["bzz-raw://04f0046cac285d8ec44ebbb1f79dc94fab4495767190cad8364fbc1fafaadfb9","dweb:/ipfs/QmUawAunwzXfCyShWfhKeThAgKtqe51hmrxvrXvM772M2R"],"license":"MIT"},"src/interfaces/vault/IVaultStorage.sol":{"keccak256":"0x592626f13754194f83047135de19229c49390bd59e34659b1bb38be71d973a22","urls":["bzz-raw://06a6a9dfddd05e580b32bebe2cff4f63ba26a653180676d58225dd30d9c89d3e","dweb:/ipfs/QmdgzBeY6Sxo8mGtyBxtv1tM1c2kU6J6zjeRd7vuXm4DU6"],"license":"MIT"}},"version":1},"id":85} \ No newline at end of file +{"abi":[{"type":"constructor","inputs":[{"name":"operatorRegistry","type":"address","internalType":"address"},{"name":"networkRegistry","type":"address","internalType":"address"},{"name":"vaultFactory","type":"address","internalType":"address"},{"name":"operatorVaultOptInService","type":"address","internalType":"address"},{"name":"operatorNetworkOptInService","type":"address","internalType":"address"},{"name":"delegatorFactory","type":"address","internalType":"address"},{"name":"entityType","type":"uint64","internalType":"uint64"}],"stateMutability":"nonpayable"},{"type":"function","name":"DEFAULT_ADMIN_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"FACTORY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"HOOK_GAS_LIMIT","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"HOOK_RESERVE","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"HOOK_SET_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"NETWORK_LIMIT_SET_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"NETWORK_REGISTRY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"OPERATOR_NETWORK_OPT_IN_SERVICE","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"OPERATOR_REGISTRY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"OPERATOR_VAULT_OPT_IN_SERVICE","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"TYPE","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"VAULT_FACTORY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"VERSION","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"pure"},{"type":"function","name":"getRoleAdmin","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"grantRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"hasRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"hook","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"initialize","inputs":[{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"maxNetworkLimit","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"value","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"networkLimit","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"networkLimitAt","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"timestamp","type":"uint48","internalType":"uint48"},{"name":"hint","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"onSlash","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"captureTimestamp","type":"uint48","internalType":"uint48"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"operator","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"renounceRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"callerConfirmation","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"revokeRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setHook","inputs":[{"name":"hook_","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setMaxNetworkLimit","inputs":[{"name":"identifier","type":"uint96","internalType":"uint96"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setNetworkLimit","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"stake","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"stakeAt","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"timestamp","type":"uint48","internalType":"uint48"},{"name":"hints","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"staticDelegateCall","inputs":[{"name":"target","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"vault","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"OnSlash","inputs":[{"name":"subnetwork","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"captureTimestamp","type":"uint48","indexed":false,"internalType":"uint48"}],"anonymous":false},{"type":"event","name":"RoleAdminChanged","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"previousAdminRole","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"newAdminRole","type":"bytes32","indexed":true,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"RoleGranted","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"sender","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"RoleRevoked","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"sender","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"SetHook","inputs":[{"name":"hook","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"SetMaxNetworkLimit","inputs":[{"name":"subnetwork","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"SetNetworkLimit","inputs":[{"name":"subnetwork","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"error","name":"AccessControlBadConfirmation","inputs":[]},{"type":"error","name":"AccessControlUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"neededRole","type":"bytes32","internalType":"bytes32"}]},{"type":"error","name":"AlreadySet","inputs":[]},{"type":"error","name":"CheckpointUnorderedInsertion","inputs":[]},{"type":"error","name":"DuplicateRoleHolder","inputs":[]},{"type":"error","name":"ExceedsMaxNetworkLimit","inputs":[]},{"type":"error","name":"InsufficientHookGas","inputs":[]},{"type":"error","name":"InvalidInitialization","inputs":[]},{"type":"error","name":"MissingRoleHolders","inputs":[]},{"type":"error","name":"NotInitialized","inputs":[]},{"type":"error","name":"NotInitializing","inputs":[]},{"type":"error","name":"NotNetwork","inputs":[]},{"type":"error","name":"NotOperator","inputs":[]},{"type":"error","name":"NotSlasher","inputs":[]},{"type":"error","name":"NotVault","inputs":[]},{"type":"error","name":"ReentrancyGuardReentrantCall","inputs":[]},{"type":"error","name":"SafeCastOverflowedUintDowncast","inputs":[{"name":"bits","type":"uint8","internalType":"uint8"},{"name":"value","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ZeroAddressRoleHolder","inputs":[]}],"bytecode":{"object":"0x610160346101c2576001600160401b0390601f612a7a38819003918201601f191683019190848311848410176101c6578160e092859260409586528339810103126101c25761004d826101da565b9061005a602084016101da565b6100658285016101da565b90610072606086016101da565b9561007f608087016101da565b9560c061008e60a083016101da565b9101519180831683036101c2577ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a009081549060ff82891c166101b157808083160361016d575b50505060805260a05260c05260e052610100938452610120928352610140918252519161288b93846101ef8539608051846105ea015260a05184610d14015260c0518481816104690152610d4d015260e05184818161035f0152611b540152518381816103a30152818161133601526114850152518281816103e70152818161129d0152611503015251818181610b9401526122440152f35b6001600160401b0319909116811790915585519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a15f80806100d4565b875163f92ee8a960e01b8152600490fd5b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b51906001600160a01b03821682036101c25756fe60806040526004361015610011575f80fd5b5f3560e01c806301ffc9a714610224578063021453481461021f578063103f29071461021a578063128e5d82146102155780631a80e5001461021057806323f752d51461020b578063248a9ca3146102065780632dd31000146102015780632f2ff15d146101fc57806336568abe146101f75780633dfd3873146101f25780633eb22c0f146101ed578063439fab91146101e8578063557cab44146101e3578063570ca735146101de5780635d32a1c9146101d95780636679191e146101d45780637d24bb27146101cf5780637f5a7c7b146101ca57806383ce0322146101c557806391d14854146101c05780639f86fd85146101bb578063a217fddf146101b6578063bb24fe8a146101b1578063c0cd7c3e146101ac578063d15b740e146101a7578063d547741f146101a2578063e02f69371461019d578063e49561ee14610198578063fbfa77cf14610193578063fd4d447c1461018e578063ff54740f146101895763ffa1ad7414610184575f80fd5b6110aa565b61108d565b611063565b61103c565b610e51565b610df2565b610da6565b610d7c565b610d38565b610cf5565b610cdb565b610c21565b610bc3565b610b7f565b610b57565b610b1e565b610ae4565b610a89565b61096c565b610950565b610818565b6107ba565b6106c1565b610676565b61062a565b6105d5565b61059c565b610416565b6103d2565b61038e565b61034a565b61027e565b3461027a57602036600319011261027a5760043563ffffffff60e01b811680910361027a57602090637965db0b60e01b8114908115610269575b506040519015158152f35b6301ffc9a760e01b1490505f61025e565b5f80fd5b3461027a5760408060031936011261027a5760043590602435906102a0611578565b825f526002602052805f2054821161033a57825f526003602052816102c6825f20611a9c565b1461032a5781610325916103157e899d104fc3d8820bd96540612bcc5c448c8837b13b9f7faa43ad0728f0c14f94610306875f52600360205260405f2090565b61030f42611fc3565b90611677565b5050519081529081906020820190565b0390a2005b5163a741a04560e01b8152600490fd5b51631eefc06360e31b8152600490fd5b3461027a575f36600319011261027a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461027a575f36600319011261027a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461027a575f36600319011261027a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461027a57604036600319011261027a576004356001600160601b038116810361027a5760243590610446611739565b6040516302910f8b60e31b81523360048201526020816024816001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165afa908115610597575f91610568575b5015610556576001600160601b03166bffffffffffffffffffffffff193360601b161790806104d0835f52600260205260405f2090565b541461054457610529817fc67e7929681aa1bccd63f52b3799bf5805f3009f197db6fdf584b14f7fbf608c9261050e855f52600260205260405f2090565b556105198185611768565b6040519081529081906020820190565b0390a261054260015f8051602061281683398151915255565b005b60405163a741a04560e01b8152600490fd5b6040516323d53b9760e21b8152600490fd5b61058a915060203d602011610590575b61058281836109f8565b8101906110c5565b5f610499565b503d610578565b6110dd565b3461027a57602036600319011261027a576004355f525f805160206127f68339815191526020526020600160405f200154604051908152f35b3461027a575f36600319011261027a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b6001600160a01b0381160361027a57565b3461027a57604036600319011261027a5761054260243560043561064d82610619565b805f525f805160206127f6833981519152602052610671600160405f2001546115d4565b6119d4565b3461027a57604036600319011261027a5760243561069381610619565b336001600160a01b038216036106af5761054290600435611a0a565b60405163334bd91960e11b8152600490fd5b3461027a57602036600319011261027a576004356106de81610619565b6106e6611739565b335f9081527f9ebbcbe0d2961d3fbe56ca6f679bc753bd848d3e6bb3eaf9041c51b286881d2c60205260409020547fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c9060ff161561079c57506001546001600160a01b039182169181168214610544576001600160a01b03191681176001557f5bbb1d3ebb6a3ad2a0f17ff35e579a83af60604d1d3c2a4c83c62adecadf666d5f80a260015f8051602061281683398151915255005b6044906040519063e2517d3f60e01b82523360048301526024820152fd5b3461027a57602036600319011261027a576004355f52600360205260206107e360405f20611a9c565b604051908152f35b9181601f8401121561027a578235916001600160401b03831161027a576020838186019501011161027a57565b3461027a57602036600319011261027a576001600160401b0360043581811161027a576108499036906004016107eb565b5f80516020612836833981519152549260ff8460401c1615931680159081610948575b600114908161093e575b159081610935575b50610923575f80516020612836833981519152805467ffffffffffffffff191660011790556108b191836108ff57611b1f565b6108b757005b5f80516020612836833981519152805460ff60401b19169055604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a1005b5f80516020612836833981519152805460ff60401b1916600160401b179055611b1f565b60405163f92ee8a960e01b8152600490fd5b9050155f61087e565b303b159150610876565b84915061086c565b3461027a575f36600319011261027a576020604051614e208152f35b3461027a575f36600319011261027a576004546040516001600160a01b039091168152602090f35b6064359065ffffffffffff8216820361027a57565b634e487b7160e01b5f52604160045260245ffd5b604081019081106001600160401b038211176109d857604052565b6109a9565b606081019081106001600160401b038211176109d857604052565b90601f801991011681019081106001600160401b038211176109d857604052565b60405190610a26826109bd565b565b6001600160401b0381116109d857601f01601f191660200190565b81601f8201121561027a57803590610a5a82610a28565b92610a6860405194856109f8565b8284526020838301011161027a57815f926020809301838601378301015290565b3461027a57606036600319011261027a5760243565ffffffffffff8116810361027a576044356001600160401b03811161027a57602091610ad16107e3923690600401610a43565b906004355f526003845260405f20611c8e565b3461027a575f36600319011261027a5760206040517fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c8152f35b3461027a575f36600319011261027a5760206040517e8b9b1e5fa9cf3b14f87f435649268146305ddf689f082e5961a335b07a9abf8152f35b3461027a575f36600319011261027a576001546040516001600160a01b039091168152602090f35b3461027a575f36600319011261027a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461027a57604036600319011261027a57602060ff610c15602435610be781610619565b6004355f525f805160206127f6833981519152845260405f209060018060a01b03165f5260205260405f2090565b54166040519015158152f35b3461027a5760408060031936011261027a57600435610c3f81610619565b602435906001600160401b03821161027a575f8091610c65610cc99436906004016107eb565b908187519283928337810184815203915af43d15610cd157610cbb3d610c8a81610a28565b90610c97865192836109f8565b81523d5f602083013e5b845194859315156020850152808401526060830190611101565b03601f1981018352826109f8565b805190602001fd5b610cbb6060610ca1565b3461027a575f36600319011261027a5760206040515f8152f35b3461027a575f36600319011261027a5760206040516001600160401b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461027a575f36600319011261027a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461027a57602036600319011261027a576004355f526002602052602060405f2054604051908152f35b3461027a57604036600319011261027a57610542602435600435610dc982610619565b805f525f805160206127f6833981519152602052610ded600160405f2001546115d4565b611a0a565b3461027a57608036600319011261027a57602435610e0f81610619565b6044359065ffffffffffff8216820361027a57606435906001600160401b03821161027a57602092610e486107e3933690600401610a43565b91600435611227565b3461027a5760a036600319011261027a57602435600435610e7182610619565b60443591610e7d610994565b90608435906001600160401b03821161027a57610e9f60049236908401610a43565b610ea7611739565b5f54602090610ecc90610ec0906001600160a01b031681565b6001600160a01b031690565b60405163b134427160e01b815294859182905afa928315610597575f9361100b575b506001600160a01b039283163303610ff9576001546001600160a01b0316838116610f6e575b50506040805195865265ffffffffffff909316602086015216927f741a5de99085c0d660f3e4192217b0ffb0ea4e35a0480de48e857a4bc3ee36ed91819081015b0390a361054260015f8051602061281683398151915255565b909360405194610fa586610f97602082019363724ab0f760e11b8552858c898d602487016113d1565b03601f1981018852876109f8565b62042e305a10610fe7575f610f55938192827f741a5de99085c0d660f3e4192217b0ffb0ea4e35a0480de48e857a4bc3ee36ed9951926203d090f15093610f14565b604051638072475160e01b8152600490fd5b60405163dabc4ad960e01b8152600490fd5b61102e91935060203d602011611035575b61102681836109f8565b8101906113bc565b915f610eee565b503d61101c565b3461027a575f36600319011261027a575f546040516001600160a01b039091168152602090f35b3461027a57604036600319011261027a5760206107e360243561108581610619565b60043561144e565b3461027a575f36600319011261027a5760206040516203d0908152f35b3461027a575f36600319011261027a57602060405160018152f35b9081602091031261027a5751801515810361027a5790565b6040513d5f823e3d90fd5b906110fe92915f52600360205260405f20611c8e565b90565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b60405190611132826109bd565b60606020838281520152565b81601f8201121561027a5780519061115582610a28565b9261116360405194856109f8565b8284526020838301011161027a57815f9260208093018386015e8301015290565b9060208282031261027a5781516001600160401b039283821161027a57019060408282031261027a57604051926111ba846109bd565b825181811161027a57826111cf91850161113e565b8452602083015190811161027a576111e7920161113e565b602082015290565b6001600160a01b0391821681529116602082015265ffffffffffff90911660408201526080606082018190526110fe92910190611101565b9261123790929192828486611e46565b929093611242611125565b93805180611395575b505084159384156112ff575b841561126e575b505050506112695790565b505f90565b602080949550611299910151604051958694859463530e1d4360e01b865260601c90600486016111ef565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa908115610597575f916112e0575b50155f80808061125e565b6112f9915060203d6020116105905761058281836109f8565b5f6112d5565b5f549094506001600160a01b0316602084865192611332604051948593849363530e1d4360e01b855289600486016111ef565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa908115610597575f91611376575b501593611257565b61138f915060203d6020116105905761058281836109f8565b5f61136e565b6113a9929550602080918301019101611184565b925f8061124b565b5190610a2682610619565b9081602091031261027a57516110fe81610619565b919360a0936110fe969565ffffffffffff938552600180871b0316602085015260408401521660608201528160808201520190611101565b634e487b7160e01b5f52601160045260245ffd5b8115611427570490565b634e487b7160e01b5f52601260045260245ffd5b906001820180921161144957565b611409565b5f546040516308834cb560e21b8082526001600160a01b0385811660048401529283166024830152929392602092909183816044817f000000000000000000000000000000000000000000000000000000000000000086165afa908115610597575f9161155b575b50159182156114d7575b505090506114d1576110fe91611f3b565b50505f90565b6040519081526001600160a01b0385166004820152606086901c602482015291508290829060449082907f0000000000000000000000000000000000000000000000000000000000000000165afa918215610597575f9261153e575b505015805f806114c0565b6115549250803d106105905761058281836109f8565b5f80611533565b6115729150843d86116105905761058281836109f8565b5f6114b6565b335f9081527f72a65082a5691803ab2b62c9bc729b34205ba1b183d950896526b2fd8714d0c7602052604090207e8b9b1e5fa9cf3b14f87f435649268146305ddf689f082e5961a335b07a9abf9060ff905b54161561079c5750565b5f8181525f805160206127f683398151915260209081526040808320338452909152902060ff906115ca565b634e487b7160e01b5f52603260045260245ffd5b8054821015611629575f5260205f2001905f90565b611600565b90815491600160401b8310156109d85782611651916001610a2695018155611614565b90919082549060031b91821b915f19901b1916179055565b5f1981019190821161144957565b90929192600182019081548015611709575b508461169484612019565b509490928454936116a483611a9c565b96816116f4575b50156116d1575050505f1981019081116114495761165185916116cd93611614565b9190565b6116cd9492936116ed926001600160d01b03909116919061251a565b505061162e565b65ffffffffffff83811691161490505f6116ab565b600160401b8110156109d8578060016117259201845583611614565b8154905f199060031b1b191690555f611689565b5f8051602061281683398151915260028154146117565760029055565b604051633ee5aeb560e01b8152600490fd5b90815f52600360205260405f208161177f82612019565b9193905083156117dd5761179f916001600160d01b031690600101611614565b90549060031b1c5b826117d3575b50506117b7575050565b6117cf915f52600360205260405f2061030f42611fc3565b5050565b119050815f6117ad565b50505f6117a7565b6001600160a01b0381165f9081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d60205260409020545f805160206127f68339815191529060ff166114d1575f808052602091825260408082206001600160a01b038516835290925220805460ff1916600117905533906001600160a01b03165f7f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d8180a4600190565b6001600160a01b0381165f9081527f9ebbcbe0d2961d3fbe56ca6f679bc753bd848d3e6bb3eaf9041c51b286881d2c602052604090207fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c905f805160206127f68339815191529060ff905b541661195f575f828152602091825260408082206001600160a01b038616835290925220805460ff1916600117905533916001600160a01b0316907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d5f80a4600190565b5050505f90565b6001600160a01b0381165f9081527f72a65082a5691803ab2b62c9bc729b34205ba1b183d950896526b2fd8714d0c7602052604090207e8b9b1e5fa9cf3b14f87f435649268146305ddf689f082e5961a335b07a9abf905f805160206127f68339815191529060ff906118fb565b5f8181525f805160206127f6833981519152602081815260408084206001600160a01b038716855290915290912060ff906118fb565b5f8181525f805160206127f6833981519152602081815260408084206001600160a01b03871685529091529091205460ff161561195f575f828152602091825260408082206001600160a01b038616835290925220805460ff1916905533916001600160a01b0316907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b5f80a4600190565b805480611acb57505f5b6001600160d01b038116156114d1576001611ac19201611614565b90549060031b1c90565b5f1990808281011161144957825f5260205f2001015460301c611aa6565b91909160408184031261027a578035611b0181610619565b9260208201356001600160401b03811161027a576110fe9201610a43565b611b2b91810190611ae9565b6040516302910f8b60e31b81526001600160a01b039283166004820181905291906020816024817f000000000000000000000000000000000000000000000000000000000000000088165afa908115610597575f91611c3e575b5015611c2c57611bc0604091611bbb611c0694611ba0612068565b60018060a01b03166001600160601b0360a01b5f5416175f55565b6121d4565b6020810151600180546001600160a01b0319166001600160a01b0390921691909117905580516001600160a01b0316848116611c1c575b5001516001600160a01b031690565b908116611c105750565b611c1990611890565b50565b611c25906117e5565b505f611bf7565b6040516362df054560e01b8152600490fd5b611c57915060203d6020116105905761058281836109f8565b5f611b85565b9081602091031261027a575163ffffffff8116810361027a5790565b90600163ffffffff8093160191821161144957565b91805115611d675780602080611ca993518301019101611c5d565b91611cb48382612445565b92611cc5845165ffffffffffff1690565b9065ffffffffffff8085169216828114611d5b5782119182611cfb575b5050611cf2576110fe9250612375565b50506020015190565b909150611d088354611669565b63ffffffff831614918215611d21575b50505f80611ce2565b611d53919250611d3c611d36611d4892611c79565b85612445565b5165ffffffffffff1690565b65ffffffffffff1690565b115f80611d18565b50505050506020015190565b506110fe91612375565b60405190611d7e826109dd565b60606040838281528260208201520152565b9060208282031261027a5781516001600160401b039283821161027a57019060608282031261027a5760405192611dc6846109dd565b825181811161027a5782611ddb91850161113e565b8452602083015181811161027a5782611df591850161113e565b6020850152604083015190811161027a57611e10920161113e565b604082015290565b9081602091031261027a575190565b60409065ffffffffffff6110fe94931681528160208201520190611101565b90939293611e52611d71565b94805180611f1f575b50506004546001600160a01b03918216911603611f17575f54611eb2929190602090611e9190610ec0906001600160a01b031681565b8187015190604051808097819463810da75d60e01b83528860048401611e27565b03915afa90811561059757611edf935f92611ee4575b50611ed991926040870151916110e8565b906124ad565b915190565b611ed99250611f0a9060203d602011611f10575b611f0281836109f8565b810190611e18565b91611ec8565b503d611ef8565b505090515f91565b611f33929650602080918301019101611d90565b935f80611e5b565b6004546001600160a01b0392908316908316036114d15760206004925f54166040519384809263bd49c35f60e01b82525afa908115610597576110fe925f92611f9a575b50611f95611ed9915f52600360205260405f2090565b611a9c565b611ed9919250611fbb611f959160203d602011611f1057611f0281836109f8565b929150611f7f565b65ffffffffffff90818111611fd6571690565b604490604051906306dfcc6560e41b8252603060048301526024820152fd5b90604051612002816109bd565b915465ffffffffffff8116835260301c6020830152565b80548061202a5750505f905f905f90565b5f1990808281011161144957612047925f5260205f200101611ff5565b9065ffffffffffff82511691602060018060d01b0391015116906001929190565b612070612635565b612078612635565b60015f8051602061281683398151915255565b60405190612098826109dd565b5f6040838281528260208201520152565b81601f8201121561027a578051916020916001600160401b0384116109d8578360051b90604051946120dd858401876109f8565b8552838086019282010192831161027a578301905b828210612100575050505090565b838091835161210e81610619565b8152019101906120f2565b60208183031261027a5780516001600160401b039182821161027a5701918281039260a0841261027a57606060405194612152866109dd565b1261027a57604051612163816109dd565b815161216e81610619565b8152602082015161217e81610619565b6020820152604082015161219181610619565b60408201528452606081015192831161027a576121b5608092611e109483016120a9565b6020850152016113b1565b80518210156116295760209160051b010190565b6121dc61208b565b506121f281519160208080948301019101612119565b8051516001600160a01b0393919084161580612369575b612357576040818101805182516302910f8b60e31b81526001600160a01b0390911660048083019190915296929491928690829060249082907f0000000000000000000000000000000000000000000000000000000000000000165afa908115610597575f9161233a575b50156123285791938401915f5b835180518210156122f757610ec061229c836122a9936121c0565b516001600160a01b031690565b156122e7576122cb6122c76122c261229c8488516121c0565b611966565b1590565b6122d757600101612281565b8451635140fefd60e11b81528790fd5b84516323cda06760e01b81528790fd5b50509051600480546001600160a01b0319166001600160a01b039092169190911790559350612324915050565b5190565b604051631f0853c160e21b8152600490fd5b6123519150863d88116105905761058281836109f8565b5f612274565b6040516303501f5960e11b8152600490fd5b50828101515115612209565b908154905f8291600584116123df575b612390935084612796565b806123b857505f905b6001600160d01b038216156114d1576110fe916001611ac19201611614565b6123d26123c76123d992611669565b835f5260205f200190565b5460301c90565b90612399565b91926123ea81612663565b81039081116114495761239093855f5265ffffffffffff808360205f20015416908516105f1461241b575091612385565b9291506124279061143b565b90612385565b6040519061243a826109bd565b5f6020838281520152565b9061246e61246861248f9261245861242d565b5061246161242d565b5084611614565b50611ff5565b91600165ffffffffffff845116936020828060d01b03910151169101611614565b9054906040519261249f846109bd565b835260031b1c602082015290565b90808210156124ba575090565b905090565b8054600160401b8110156109d8576124dc91600182018155611614565b61250757815160209092015160301b65ffffffffffff191665ffffffffffff92909216919091179055565b634e487b7160e01b5f525f60045260245ffd5b80549293929190821561260c5761253b6125366123c785611669565b611ff5565b9061254c825165ffffffffffff1690565b65ffffffffffff848116911681106125fa576116cd94602094889261257a611d48875165ffffffffffff1690565b036125c257506125b49261259061259b92611669565b905f5260205f200190565b9065ffffffffffff82549181199060301b169116179055565b01516001600160d01b031690565b9150506125f5916125e26125d4610a19565b65ffffffffffff9093168352565b6001600160d01b038816828601526124bf565b6125b4565b604051632520601d60e01b8152600490fd5b612630925061261c6125d4610a19565b6001600160d01b03851660208301526124bf565b5f9190565b60ff5f805160206128368339815191525460401c161561265157565b604051631afcd79f60e31b8152600490fd5b80156112695780611ed961272e61272461271a6127106127066126fc6126f260016110fe9a5f908b60801c8061278a575b508060401c8061277d575b508060201c80612770575b508060101c80612763575b508060081c80612756575b508060041c80612749575b508060021c8061273c575b50821c612735575b811c1b6126eb818b61141d565b0160011c90565b6126eb818a61141d565b6126eb818961141d565b6126eb818861141d565b6126eb818761141d565b6126eb818661141d565b6126eb818561141d565b809261141d565b81016126de565b600291509101905f6126d6565b600491509101905f6126cb565b600891509101905f6126c0565b601091509101905f6126b5565b602091509101905f6126aa565b604091509101905f61269f565b9150506080905f612694565b91905b8382106127a65750505090565b9091928083169080841860011c820180921161144957845f5265ffffffffffff808360205f20015416908416105f146127e35750925b9190612799565b9392506127ef9061143b565b916127dc56fe02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268009b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a26469706673582212205c276801ae6061af18dad51d441d5cb6dadebac4aa6e8f4a4cdf93877dee107364736f6c63430008190033","sourceMap":"611:4324:80:-:0;;;;-1:-1:-1;;;;;611:4324:80;;;;;;;;;;-1:-1:-1;;611:4324:80;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;8837:64:25;611:4324:80;;;;;;;;;7896:76:25;;611:4324:80;;;;7985:34:25;7981:146;;-1:-1:-1;525:17:69;;;611:4324:80;525:17:69;611:4324:80;552:12:69;611:4324:80;2360:34:76;611:4324:80;2404:28:76;2442:57;;;;2509:61;;;;1716:36:80;;;;611:4324;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7981:146:25;-1:-1:-1;;;;;;611:4324:80;;;;;;;;;;;;;8087:29:25;;611:4324:80;;8087:29:25;7981:146;;;;;7896:76;611:4324:80;;-1:-1:-1;;;7938:23:25;;;;;611:4324:80;-1:-1:-1;611:4324:80;;;;;;-1:-1:-1;611:4324:80;;;;;-1:-1:-1;611:4324:80;;;;-1:-1:-1;;;;;611:4324:80;;;;;;:::o","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361015610011575f80fd5b5f3560e01c806301ffc9a714610224578063021453481461021f578063103f29071461021a578063128e5d82146102155780631a80e5001461021057806323f752d51461020b578063248a9ca3146102065780632dd31000146102015780632f2ff15d146101fc57806336568abe146101f75780633dfd3873146101f25780633eb22c0f146101ed578063439fab91146101e8578063557cab44146101e3578063570ca735146101de5780635d32a1c9146101d95780636679191e146101d45780637d24bb27146101cf5780637f5a7c7b146101ca57806383ce0322146101c557806391d14854146101c05780639f86fd85146101bb578063a217fddf146101b6578063bb24fe8a146101b1578063c0cd7c3e146101ac578063d15b740e146101a7578063d547741f146101a2578063e02f69371461019d578063e49561ee14610198578063fbfa77cf14610193578063fd4d447c1461018e578063ff54740f146101895763ffa1ad7414610184575f80fd5b6110aa565b61108d565b611063565b61103c565b610e51565b610df2565b610da6565b610d7c565b610d38565b610cf5565b610cdb565b610c21565b610bc3565b610b7f565b610b57565b610b1e565b610ae4565b610a89565b61096c565b610950565b610818565b6107ba565b6106c1565b610676565b61062a565b6105d5565b61059c565b610416565b6103d2565b61038e565b61034a565b61027e565b3461027a57602036600319011261027a5760043563ffffffff60e01b811680910361027a57602090637965db0b60e01b8114908115610269575b506040519015158152f35b6301ffc9a760e01b1490505f61025e565b5f80fd5b3461027a5760408060031936011261027a5760043590602435906102a0611578565b825f526002602052805f2054821161033a57825f526003602052816102c6825f20611a9c565b1461032a5781610325916103157e899d104fc3d8820bd96540612bcc5c448c8837b13b9f7faa43ad0728f0c14f94610306875f52600360205260405f2090565b61030f42611fc3565b90611677565b5050519081529081906020820190565b0390a2005b5163a741a04560e01b8152600490fd5b51631eefc06360e31b8152600490fd5b3461027a575f36600319011261027a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461027a575f36600319011261027a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461027a575f36600319011261027a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461027a57604036600319011261027a576004356001600160601b038116810361027a5760243590610446611739565b6040516302910f8b60e31b81523360048201526020816024816001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165afa908115610597575f91610568575b5015610556576001600160601b03166bffffffffffffffffffffffff193360601b161790806104d0835f52600260205260405f2090565b541461054457610529817fc67e7929681aa1bccd63f52b3799bf5805f3009f197db6fdf584b14f7fbf608c9261050e855f52600260205260405f2090565b556105198185611768565b6040519081529081906020820190565b0390a261054260015f8051602061281683398151915255565b005b60405163a741a04560e01b8152600490fd5b6040516323d53b9760e21b8152600490fd5b61058a915060203d602011610590575b61058281836109f8565b8101906110c5565b5f610499565b503d610578565b6110dd565b3461027a57602036600319011261027a576004355f525f805160206127f68339815191526020526020600160405f200154604051908152f35b3461027a575f36600319011261027a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b6001600160a01b0381160361027a57565b3461027a57604036600319011261027a5761054260243560043561064d82610619565b805f525f805160206127f6833981519152602052610671600160405f2001546115d4565b6119d4565b3461027a57604036600319011261027a5760243561069381610619565b336001600160a01b038216036106af5761054290600435611a0a565b60405163334bd91960e11b8152600490fd5b3461027a57602036600319011261027a576004356106de81610619565b6106e6611739565b335f9081527f9ebbcbe0d2961d3fbe56ca6f679bc753bd848d3e6bb3eaf9041c51b286881d2c60205260409020547fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c9060ff161561079c57506001546001600160a01b039182169181168214610544576001600160a01b03191681176001557f5bbb1d3ebb6a3ad2a0f17ff35e579a83af60604d1d3c2a4c83c62adecadf666d5f80a260015f8051602061281683398151915255005b6044906040519063e2517d3f60e01b82523360048301526024820152fd5b3461027a57602036600319011261027a576004355f52600360205260206107e360405f20611a9c565b604051908152f35b9181601f8401121561027a578235916001600160401b03831161027a576020838186019501011161027a57565b3461027a57602036600319011261027a576001600160401b0360043581811161027a576108499036906004016107eb565b5f80516020612836833981519152549260ff8460401c1615931680159081610948575b600114908161093e575b159081610935575b50610923575f80516020612836833981519152805467ffffffffffffffff191660011790556108b191836108ff57611b1f565b6108b757005b5f80516020612836833981519152805460ff60401b19169055604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a1005b5f80516020612836833981519152805460ff60401b1916600160401b179055611b1f565b60405163f92ee8a960e01b8152600490fd5b9050155f61087e565b303b159150610876565b84915061086c565b3461027a575f36600319011261027a576020604051614e208152f35b3461027a575f36600319011261027a576004546040516001600160a01b039091168152602090f35b6064359065ffffffffffff8216820361027a57565b634e487b7160e01b5f52604160045260245ffd5b604081019081106001600160401b038211176109d857604052565b6109a9565b606081019081106001600160401b038211176109d857604052565b90601f801991011681019081106001600160401b038211176109d857604052565b60405190610a26826109bd565b565b6001600160401b0381116109d857601f01601f191660200190565b81601f8201121561027a57803590610a5a82610a28565b92610a6860405194856109f8565b8284526020838301011161027a57815f926020809301838601378301015290565b3461027a57606036600319011261027a5760243565ffffffffffff8116810361027a576044356001600160401b03811161027a57602091610ad16107e3923690600401610a43565b906004355f526003845260405f20611c8e565b3461027a575f36600319011261027a5760206040517fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c8152f35b3461027a575f36600319011261027a5760206040517e8b9b1e5fa9cf3b14f87f435649268146305ddf689f082e5961a335b07a9abf8152f35b3461027a575f36600319011261027a576001546040516001600160a01b039091168152602090f35b3461027a575f36600319011261027a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461027a57604036600319011261027a57602060ff610c15602435610be781610619565b6004355f525f805160206127f6833981519152845260405f209060018060a01b03165f5260205260405f2090565b54166040519015158152f35b3461027a5760408060031936011261027a57600435610c3f81610619565b602435906001600160401b03821161027a575f8091610c65610cc99436906004016107eb565b908187519283928337810184815203915af43d15610cd157610cbb3d610c8a81610a28565b90610c97865192836109f8565b81523d5f602083013e5b845194859315156020850152808401526060830190611101565b03601f1981018352826109f8565b805190602001fd5b610cbb6060610ca1565b3461027a575f36600319011261027a5760206040515f8152f35b3461027a575f36600319011261027a5760206040516001600160401b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461027a575f36600319011261027a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461027a57602036600319011261027a576004355f526002602052602060405f2054604051908152f35b3461027a57604036600319011261027a57610542602435600435610dc982610619565b805f525f805160206127f6833981519152602052610ded600160405f2001546115d4565b611a0a565b3461027a57608036600319011261027a57602435610e0f81610619565b6044359065ffffffffffff8216820361027a57606435906001600160401b03821161027a57602092610e486107e3933690600401610a43565b91600435611227565b3461027a5760a036600319011261027a57602435600435610e7182610619565b60443591610e7d610994565b90608435906001600160401b03821161027a57610e9f60049236908401610a43565b610ea7611739565b5f54602090610ecc90610ec0906001600160a01b031681565b6001600160a01b031690565b60405163b134427160e01b815294859182905afa928315610597575f9361100b575b506001600160a01b039283163303610ff9576001546001600160a01b0316838116610f6e575b50506040805195865265ffffffffffff909316602086015216927f741a5de99085c0d660f3e4192217b0ffb0ea4e35a0480de48e857a4bc3ee36ed91819081015b0390a361054260015f8051602061281683398151915255565b909360405194610fa586610f97602082019363724ab0f760e11b8552858c898d602487016113d1565b03601f1981018852876109f8565b62042e305a10610fe7575f610f55938192827f741a5de99085c0d660f3e4192217b0ffb0ea4e35a0480de48e857a4bc3ee36ed9951926203d090f15093610f14565b604051638072475160e01b8152600490fd5b60405163dabc4ad960e01b8152600490fd5b61102e91935060203d602011611035575b61102681836109f8565b8101906113bc565b915f610eee565b503d61101c565b3461027a575f36600319011261027a575f546040516001600160a01b039091168152602090f35b3461027a57604036600319011261027a5760206107e360243561108581610619565b60043561144e565b3461027a575f36600319011261027a5760206040516203d0908152f35b3461027a575f36600319011261027a57602060405160018152f35b9081602091031261027a5751801515810361027a5790565b6040513d5f823e3d90fd5b906110fe92915f52600360205260405f20611c8e565b90565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b60405190611132826109bd565b60606020838281520152565b81601f8201121561027a5780519061115582610a28565b9261116360405194856109f8565b8284526020838301011161027a57815f9260208093018386015e8301015290565b9060208282031261027a5781516001600160401b039283821161027a57019060408282031261027a57604051926111ba846109bd565b825181811161027a57826111cf91850161113e565b8452602083015190811161027a576111e7920161113e565b602082015290565b6001600160a01b0391821681529116602082015265ffffffffffff90911660408201526080606082018190526110fe92910190611101565b9261123790929192828486611e46565b929093611242611125565b93805180611395575b505084159384156112ff575b841561126e575b505050506112695790565b505f90565b602080949550611299910151604051958694859463530e1d4360e01b865260601c90600486016111ef565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa908115610597575f916112e0575b50155f80808061125e565b6112f9915060203d6020116105905761058281836109f8565b5f6112d5565b5f549094506001600160a01b0316602084865192611332604051948593849363530e1d4360e01b855289600486016111ef565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa908115610597575f91611376575b501593611257565b61138f915060203d6020116105905761058281836109f8565b5f61136e565b6113a9929550602080918301019101611184565b925f8061124b565b5190610a2682610619565b9081602091031261027a57516110fe81610619565b919360a0936110fe969565ffffffffffff938552600180871b0316602085015260408401521660608201528160808201520190611101565b634e487b7160e01b5f52601160045260245ffd5b8115611427570490565b634e487b7160e01b5f52601260045260245ffd5b906001820180921161144957565b611409565b5f546040516308834cb560e21b8082526001600160a01b0385811660048401529283166024830152929392602092909183816044817f000000000000000000000000000000000000000000000000000000000000000086165afa908115610597575f9161155b575b50159182156114d7575b505090506114d1576110fe91611f3b565b50505f90565b6040519081526001600160a01b0385166004820152606086901c602482015291508290829060449082907f0000000000000000000000000000000000000000000000000000000000000000165afa918215610597575f9261153e575b505015805f806114c0565b6115549250803d106105905761058281836109f8565b5f80611533565b6115729150843d86116105905761058281836109f8565b5f6114b6565b335f9081527f72a65082a5691803ab2b62c9bc729b34205ba1b183d950896526b2fd8714d0c7602052604090207e8b9b1e5fa9cf3b14f87f435649268146305ddf689f082e5961a335b07a9abf9060ff905b54161561079c5750565b5f8181525f805160206127f683398151915260209081526040808320338452909152902060ff906115ca565b634e487b7160e01b5f52603260045260245ffd5b8054821015611629575f5260205f2001905f90565b611600565b90815491600160401b8310156109d85782611651916001610a2695018155611614565b90919082549060031b91821b915f19901b1916179055565b5f1981019190821161144957565b90929192600182019081548015611709575b508461169484612019565b509490928454936116a483611a9c565b96816116f4575b50156116d1575050505f1981019081116114495761165185916116cd93611614565b9190565b6116cd9492936116ed926001600160d01b03909116919061251a565b505061162e565b65ffffffffffff83811691161490505f6116ab565b600160401b8110156109d8578060016117259201845583611614565b8154905f199060031b1b191690555f611689565b5f8051602061281683398151915260028154146117565760029055565b604051633ee5aeb560e01b8152600490fd5b90815f52600360205260405f208161177f82612019565b9193905083156117dd5761179f916001600160d01b031690600101611614565b90549060031b1c5b826117d3575b50506117b7575050565b6117cf915f52600360205260405f2061030f42611fc3565b5050565b119050815f6117ad565b50505f6117a7565b6001600160a01b0381165f9081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d60205260409020545f805160206127f68339815191529060ff166114d1575f808052602091825260408082206001600160a01b038516835290925220805460ff1916600117905533906001600160a01b03165f7f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d8180a4600190565b6001600160a01b0381165f9081527f9ebbcbe0d2961d3fbe56ca6f679bc753bd848d3e6bb3eaf9041c51b286881d2c602052604090207fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c905f805160206127f68339815191529060ff905b541661195f575f828152602091825260408082206001600160a01b038616835290925220805460ff1916600117905533916001600160a01b0316907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d5f80a4600190565b5050505f90565b6001600160a01b0381165f9081527f72a65082a5691803ab2b62c9bc729b34205ba1b183d950896526b2fd8714d0c7602052604090207e8b9b1e5fa9cf3b14f87f435649268146305ddf689f082e5961a335b07a9abf905f805160206127f68339815191529060ff906118fb565b5f8181525f805160206127f6833981519152602081815260408084206001600160a01b038716855290915290912060ff906118fb565b5f8181525f805160206127f6833981519152602081815260408084206001600160a01b03871685529091529091205460ff161561195f575f828152602091825260408082206001600160a01b038616835290925220805460ff1916905533916001600160a01b0316907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b5f80a4600190565b805480611acb57505f5b6001600160d01b038116156114d1576001611ac19201611614565b90549060031b1c90565b5f1990808281011161144957825f5260205f2001015460301c611aa6565b91909160408184031261027a578035611b0181610619565b9260208201356001600160401b03811161027a576110fe9201610a43565b611b2b91810190611ae9565b6040516302910f8b60e31b81526001600160a01b039283166004820181905291906020816024817f000000000000000000000000000000000000000000000000000000000000000088165afa908115610597575f91611c3e575b5015611c2c57611bc0604091611bbb611c0694611ba0612068565b60018060a01b03166001600160601b0360a01b5f5416175f55565b6121d4565b6020810151600180546001600160a01b0319166001600160a01b0390921691909117905580516001600160a01b0316848116611c1c575b5001516001600160a01b031690565b908116611c105750565b611c1990611890565b50565b611c25906117e5565b505f611bf7565b6040516362df054560e01b8152600490fd5b611c57915060203d6020116105905761058281836109f8565b5f611b85565b9081602091031261027a575163ffffffff8116810361027a5790565b90600163ffffffff8093160191821161144957565b91805115611d675780602080611ca993518301019101611c5d565b91611cb48382612445565b92611cc5845165ffffffffffff1690565b9065ffffffffffff8085169216828114611d5b5782119182611cfb575b5050611cf2576110fe9250612375565b50506020015190565b909150611d088354611669565b63ffffffff831614918215611d21575b50505f80611ce2565b611d53919250611d3c611d36611d4892611c79565b85612445565b5165ffffffffffff1690565b65ffffffffffff1690565b115f80611d18565b50505050506020015190565b506110fe91612375565b60405190611d7e826109dd565b60606040838281528260208201520152565b9060208282031261027a5781516001600160401b039283821161027a57019060608282031261027a5760405192611dc6846109dd565b825181811161027a5782611ddb91850161113e565b8452602083015181811161027a5782611df591850161113e565b6020850152604083015190811161027a57611e10920161113e565b604082015290565b9081602091031261027a575190565b60409065ffffffffffff6110fe94931681528160208201520190611101565b90939293611e52611d71565b94805180611f1f575b50506004546001600160a01b03918216911603611f17575f54611eb2929190602090611e9190610ec0906001600160a01b031681565b8187015190604051808097819463810da75d60e01b83528860048401611e27565b03915afa90811561059757611edf935f92611ee4575b50611ed991926040870151916110e8565b906124ad565b915190565b611ed99250611f0a9060203d602011611f10575b611f0281836109f8565b810190611e18565b91611ec8565b503d611ef8565b505090515f91565b611f33929650602080918301019101611d90565b935f80611e5b565b6004546001600160a01b0392908316908316036114d15760206004925f54166040519384809263bd49c35f60e01b82525afa908115610597576110fe925f92611f9a575b50611f95611ed9915f52600360205260405f2090565b611a9c565b611ed9919250611fbb611f959160203d602011611f1057611f0281836109f8565b929150611f7f565b65ffffffffffff90818111611fd6571690565b604490604051906306dfcc6560e41b8252603060048301526024820152fd5b90604051612002816109bd565b915465ffffffffffff8116835260301c6020830152565b80548061202a5750505f905f905f90565b5f1990808281011161144957612047925f5260205f200101611ff5565b9065ffffffffffff82511691602060018060d01b0391015116906001929190565b612070612635565b612078612635565b60015f8051602061281683398151915255565b60405190612098826109dd565b5f6040838281528260208201520152565b81601f8201121561027a578051916020916001600160401b0384116109d8578360051b90604051946120dd858401876109f8565b8552838086019282010192831161027a578301905b828210612100575050505090565b838091835161210e81610619565b8152019101906120f2565b60208183031261027a5780516001600160401b039182821161027a5701918281039260a0841261027a57606060405194612152866109dd565b1261027a57604051612163816109dd565b815161216e81610619565b8152602082015161217e81610619565b6020820152604082015161219181610619565b60408201528452606081015192831161027a576121b5608092611e109483016120a9565b6020850152016113b1565b80518210156116295760209160051b010190565b6121dc61208b565b506121f281519160208080948301019101612119565b8051516001600160a01b0393919084161580612369575b612357576040818101805182516302910f8b60e31b81526001600160a01b0390911660048083019190915296929491928690829060249082907f0000000000000000000000000000000000000000000000000000000000000000165afa908115610597575f9161233a575b50156123285791938401915f5b835180518210156122f757610ec061229c836122a9936121c0565b516001600160a01b031690565b156122e7576122cb6122c76122c261229c8488516121c0565b611966565b1590565b6122d757600101612281565b8451635140fefd60e11b81528790fd5b84516323cda06760e01b81528790fd5b50509051600480546001600160a01b0319166001600160a01b039092169190911790559350612324915050565b5190565b604051631f0853c160e21b8152600490fd5b6123519150863d88116105905761058281836109f8565b5f612274565b6040516303501f5960e11b8152600490fd5b50828101515115612209565b908154905f8291600584116123df575b612390935084612796565b806123b857505f905b6001600160d01b038216156114d1576110fe916001611ac19201611614565b6123d26123c76123d992611669565b835f5260205f200190565b5460301c90565b90612399565b91926123ea81612663565b81039081116114495761239093855f5265ffffffffffff808360205f20015416908516105f1461241b575091612385565b9291506124279061143b565b90612385565b6040519061243a826109bd565b5f6020838281520152565b9061246e61246861248f9261245861242d565b5061246161242d565b5084611614565b50611ff5565b91600165ffffffffffff845116936020828060d01b03910151169101611614565b9054906040519261249f846109bd565b835260031b1c602082015290565b90808210156124ba575090565b905090565b8054600160401b8110156109d8576124dc91600182018155611614565b61250757815160209092015160301b65ffffffffffff191665ffffffffffff92909216919091179055565b634e487b7160e01b5f525f60045260245ffd5b80549293929190821561260c5761253b6125366123c785611669565b611ff5565b9061254c825165ffffffffffff1690565b65ffffffffffff848116911681106125fa576116cd94602094889261257a611d48875165ffffffffffff1690565b036125c257506125b49261259061259b92611669565b905f5260205f200190565b9065ffffffffffff82549181199060301b169116179055565b01516001600160d01b031690565b9150506125f5916125e26125d4610a19565b65ffffffffffff9093168352565b6001600160d01b038816828601526124bf565b6125b4565b604051632520601d60e01b8152600490fd5b612630925061261c6125d4610a19565b6001600160d01b03851660208301526124bf565b5f9190565b60ff5f805160206128368339815191525460401c161561265157565b604051631afcd79f60e31b8152600490fd5b80156112695780611ed961272e61272461271a6127106127066126fc6126f260016110fe9a5f908b60801c8061278a575b508060401c8061277d575b508060201c80612770575b508060101c80612763575b508060081c80612756575b508060041c80612749575b508060021c8061273c575b50821c612735575b811c1b6126eb818b61141d565b0160011c90565b6126eb818a61141d565b6126eb818961141d565b6126eb818861141d565b6126eb818761141d565b6126eb818661141d565b6126eb818561141d565b809261141d565b81016126de565b600291509101905f6126d6565b600491509101905f6126cb565b600891509101905f6126c0565b601091509101905f6126b5565b602091509101905f6126aa565b604091509101905f61269f565b9150506080905f612694565b91905b8382106127a65750505090565b9091928083169080841860011c820180921161144957845f5265ffffffffffff808360205f20015416908416105f146127e35750925b9190612799565b9392506127ef9061143b565b916127dc56fe02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268009b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a26469706673582212205c276801ae6061af18dad51d441d5cb6dadebac4aa6e8f4a4cdf93877dee107364736f6c63430008190033","sourceMap":"611:4324:80:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;;;;;-1:-1:-1;;611:4324:80;;;;;;;;;;;;;;;;;;-1:-1:-1;;;3551:47:23;;;:87;;;;611:4324:80;;;;;;;;;;3551:87:23;-1:-1:-1;;;1133:40:29;;-1:-1:-1;3551:87:23;;;611:4324:80;-1:-1:-1;611:4324:80;;;;;;;;;;;;;;;;;;;;3202:4:23;;;:::i;:::-;611:4324:80;-1:-1:-1;611:4324:80;2428:15;611:4324;;;-1:-1:-1;611:4324:80;;2419:36;;2415:98;;611:4324;-1:-1:-1;611:4324:80;2193:13;611:4324;;;2193:34;611:4324;-1:-1:-1;611:4324:80;2193:34;:::i;:::-;2527;2523:84;;2617:25;2689:35;2617:25;:56;2689:35;2617:25;;;611:4324;;2193:13;611:4324;;;;;;;2617:25;819:34:62;837:15;819:34;:::i;:::-;2617:56:80;;:::i;:::-;-1:-1:-1;;611:4324:80;;;;;;;;;;;;2689:35;;;;611:4324;2523:84;611:4324;-1:-1:-1;;;2584:12:80;;611:4324;;2584:12;2415:98;611:4324;-1:-1:-1;;;2478:24:80;;611:4324;;2478:24;611:4324;;;;;;-1:-1:-1;;611:4324:80;;;;;;1537:38:76;-1:-1:-1;;;;;611:4324:80;;;;;;;;;;;;-1:-1:-1;;611:4324:80;;;;;;1632:54:76;-1:-1:-1;;;;;611:4324:80;;;;;;;;;;;;-1:-1:-1;;611:4324:80;;;;;;1743:56:76;-1:-1:-1;;;;;611:4324:80;;;;;;;;;;;;-1:-1:-1;;611:4324:80;;;;;;-1:-1:-1;;;;;611:4324:80;;;;;;;;3217:103:28;;;:::i;:::-;611:4324:80;;-1:-1:-1;;;4285:48:76;;4322:10;611:4324:80;4285:48:76;;611:4324:80;;;;;-1:-1:-1;;;;;4295:16:76;611:4324:80;4285:48:76;;;;;;;-1:-1:-1;4285:48:76;;;611:4324:80;4284:49:76;;4280:99;;-1:-1:-1;;;;;611:4324:80;-1:-1:-1;;4322:10:76;297:2:88;611:4324:80;;267:46:88;4459:27:76;;;;611:4324:80;;4459:15:76;611:4324:80;;;;;;;4459:27:76;611:4324:80;4459:37:76;4455:87;;4654:38;4552:27;4654:38;4552:27;;;611:4324:80;;4459:15:76;611:4324:80;;;;;;;4552:27:76;611:4324:80;4631:6:76;;;;:::i;:::-;611:4324:80;;;;;;;;;;;;;4654:38:76;;;;3282:1:28;1805;-1:-1:-1;;;;;;;;;;;611:4324:80;3716:283:28;3282:1;611:4324:80;4455:87:76;611:4324:80;;-1:-1:-1;;;4519:12:76;;611:4324:80;;4519:12:76;4280:99;611:4324:80;;-1:-1:-1;;;4356:12:76;;611:4324:80;;4356:12:76;4285:48;;;;611:4324:80;4285:48:76;611:4324:80;4285:48:76;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;:::i;611:4324:80:-;;;;;;-1:-1:-1;;611:4324:80;;;;;;-1:-1:-1;611:4324:80;-1:-1:-1;;;;;;;;;;;611:4324:80;;;4919:24:23;611:4324:80;-1:-1:-1;611:4324:80;4919:24:23;611:4324:80;;;;;;;;;;;;;-1:-1:-1;;611:4324:80;;;;;;322:32:69;-1:-1:-1;;;;;611:4324:80;;;;;;;-1:-1:-1;;;;;611:4324:80;;;;;:::o;:::-;;;;;;-1:-1:-1;;611:4324:80;;;;5350:25:23;611:4324:80;;;;;;;:::i;:::-;;-1:-1:-1;611:4324:80;-1:-1:-1;;;;;;;;;;;611:4324:80;;3202:4:23;4919:24;611:4324:80;-1:-1:-1;611:4324:80;4919:24:23;611:4324:80;3202:4:23;:::i;:::-;5350:25;:::i;611:4324:80:-;;;;;;-1:-1:-1;;611:4324:80;;;;;;;;;:::i;:::-;966:10:27;-1:-1:-1;;;;;611:4324:80;;6441:34:23;6437:102;;6549:37;611:4324:80;;;6549:37:23;:::i;6437:102::-;611:4324:80;;-1:-1:-1;;;6498:30:23;;611:4324:80;;6498:30:23;611:4324:80;;;;;;-1:-1:-1;;611:4324:80;;;;;;;;;:::i;:::-;3217:103:28;;:::i;:::-;966:10:27;-1:-1:-1;611:4324:80;;;;;;;;;;1356:26:76;;611:4324:80;;4468:23:23;4464:108;;-1:-1:-1;4861:4:76;611:4324:80;-1:-1:-1;;;;;611:4324:80;;;;;;4861:13:76;;4857:63;;-1:-1:-1;;;;;;611:4324:80;;;4861:4:76;611:4324:80;4958:14:76;-1:-1:-1;;4958:14:76;4861:4;-1:-1:-1;;;;;;;;;;;611:4324:80;;4464:108:23;611:4324:80;;;;4514:47:23;;;;;;966:10:27;611:4324:80;4514:47:23;;611:4324:80;;;;;4514:47:23;611:4324:80;;;;;;-1:-1:-1;;611:4324:80;;;;;;-1:-1:-1;611:4324:80;2193:13;611:4324;;;2193:34;611:4324;-1:-1:-1;611:4324:80;2193:34;:::i;:::-;611:4324;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;611:4324:80;;;;;;;;;;;;;;;:::o;:::-;;;;;;-1:-1:-1;;611:4324:80;;;;-1:-1:-1;;;;;611:4324:80;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;611:4324:80;;;;;;;4301:16:25;611:4324:80;;4726:16:25;;:34;;;;611:4324:80;4805:1:25;4790:16;:50;;;;611:4324:80;4855:13:25;:30;;;;611:4324:80;4851:91:25;;;-1:-1:-1;;;;;;;;;;;611:4324:80;;-1:-1:-1;;611:4324:80;;;;;718:4:69;;4951:18:25;4979:67;;718:4:69;:::i;:::-;5066:101:25;;611:4324:80;5066:101:25;-1:-1:-1;;;;;;;;;;;611:4324:80;;-1:-1:-1;;;;611:4324:80;;;;;-1:-1:-1;611:4324:80;;5142:14:25;;611:4324:80;;5142:14:25;611:4324:80;4979:67:25;-1:-1:-1;;;;;;;;;;;611:4324:80;;-1:-1:-1;;;;611:4324:80;-1:-1:-1;;;611:4324:80;;;718:4:69;:::i;4851:91:25:-;611:4324:80;;-1:-1:-1;;;4908:23:25;;611:4324:80;;4908:23:25;4855:30;4872:13;;;4855:30;;;4790:50;4818:4;4810:25;:30;;-1:-1:-1;4790:50:25;;4726:34;;;-1:-1:-1;4726:34:25;;611:4324:80;;;;;;-1:-1:-1;;611:4324:80;;;;;;;1253:6:76;611:4324:80;;;;;;;;;-1:-1:-1;;611:4324:80;;;;;;;;-1:-1:-1;;;;;611:4324:80;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;611:4324:80;;;;;;;:::o;:::-;;:::i;:::-;;;;;;;-1:-1:-1;;;;;611:4324:80;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;611:4324:80;;;;;;;:::o;:::-;;;;;;;:::i;:::-;:::o;:::-;-1:-1:-1;;;;;611:4324:80;;;;;;-1:-1:-1;;611:4324:80;;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;611:4324:80;;;;;;;;;;;;;;:::o;:::-;;;;;;-1:-1:-1;;611:4324:80;;;;;;;;;;;;;;;-1:-1:-1;;;;;611:4324:80;;;;;;;1955:60;611:4324;;;;;;:::i;:::-;;;;-1:-1:-1;611:4324:80;1955:13;611:4324;;;-1:-1:-1;611:4324:80;1955:60;:::i;611:4324::-;;;;;;-1:-1:-1;;611:4324:80;;;;;;;1356:26:76;611:4324:80;;;;;;;;;-1:-1:-1;;611:4324:80;;;;;;;885:35;611:4324;;;;;;;;;-1:-1:-1;;611:4324:80;;;;;;;;-1:-1:-1;;;;;611:4324:80;;;;;;;;;;;;;;-1:-1:-1;;611:4324:80;;;;;;989:42;-1:-1:-1;;;;;611:4324:80;;;;;;;;;;;;-1:-1:-1;;611:4324:80;;;;;;3901:31:23;611:4324:80;;;;;:::i;:::-;;;-1:-1:-1;611:4324:80;-1:-1:-1;;;;;;;;;;;611:4324:80;;;-1:-1:-1;611:4324:80;;;;;;;;;;;;;;;;;3901:31:23;611:4324:80;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;611:4324:80;;;;-1:-1:-1;611:4324:80;;;477:31:75;611:4324:80;;;;;;:::i;:::-;;;;;;;;;;;;;;;416:25:75;;;;611:4324:80;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;-1:-1:-1;611:4324:80;;;;;;;;;;;;;477:31:75;;611:4324:80;;;;;;;;;;:::i;:::-;477:31:75;611:4324:80;;477:31:75;;;;;;:::i;:::-;518:79;;;611:4324:80;518:79:75;;611:4324:80;;;;;;;;;;;-1:-1:-1;;611:4324:80;;;;;;;;;;;;;;;;;-1:-1:-1;;611:4324:80;;;;;;;-1:-1:-1;;;;;404:28:69;611:4324:80;;;;;;;;;;-1:-1:-1;;611:4324:80;;;;;;1439:41:76;-1:-1:-1;;;;;611:4324:80;;;;;;;;;;;;-1:-1:-1;;611:4324:80;;;;;;-1:-1:-1;611:4324:80;2009:67:76;611:4324:80;;;;-1:-1:-1;611:4324:80;;;;;;;;;;;;;;-1:-1:-1;;611:4324:80;;;;5767:26:23;611:4324:80;;;;;;;:::i;:::-;;-1:-1:-1;611:4324:80;-1:-1:-1;;;;;;;;;;;611:4324:80;;3202:4:23;4919:24;611:4324:80;-1:-1:-1;611:4324:80;4919:24:23;611:4324:80;3202:4:23;:::i;:::-;5767:26;:::i;611:4324:80:-;;;;;;-1:-1:-1;;611:4324:80;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;-1:-1:-1;;;;;611:4324:80;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;-1:-1:-1;;611:4324:80;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;-1:-1:-1;;;;;611:4324:80;;;;;;;;;;;;:::i;:::-;3217:103:28;;:::i;:::-;-1:-1:-1;611:4324:80;;;5246:21:76;;:13;;-1:-1:-1;;;;;611:4324:80;5246:13:76;611:4324:80;;-1:-1:-1;;;;;611:4324:80;;;5246:21:76;611:4324:80;;-1:-1:-1;;;5246:23:76;;611:4324:80;;;;;5246:23:76;;;;;;;-1:-1:-1;5246:23:76;;;611:4324:80;-1:-1:-1;;;;;;611:4324:80;;;5232:10:76;:37;5228:87;;5341:4;611:4324:80;-1:-1:-1;;;;;611:4324:80;;;;5355:469:76;;611:4324:80;-1:-1:-1;;611:4324:80;;;;;;;;;;;;;;;;5839:55:76;;611:4324:80;;;;5839:55:76;;;;3282:1:28;1805;-1:-1:-1;;;;;;;;;;;611:4324:80;3716:283:28;5355:469:76;611:4324:80;;;;5435:94:76;;;;611:4324:80;5435:94:76;;;;;;;;;;;;611:4324:80;5435:94:76;;;:::i;:::-;;611:4324:80;;5435:94:76;;;;;;:::i;:::-;611:4324:80;5548:9:76;:51;5544:118;;-1:-1:-1;5839:55:76;5676:138;;;;5839:55;5676:138;;;1150:7;5676:138;;5355:469;;;5544:118;611:4324:80;;-1:-1:-1;;;5626:21:76;;611:4324:80;;5626:21:76;5228:87;611:4324:80;;-1:-1:-1;;;5292:12:76;;611:4324:80;;5292:12:76;5246:23;;;;;611:4324:80;5246:23:76;611:4324:80;5246:23:76;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;611:4324:80;;;;;;-1:-1:-1;;611:4324:80;;;;;;;;-1:-1:-1;;;;;611:4324:80;;;;;;;;;;;;;;-1:-1:-1;;611:4324:80;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;-1:-1:-1;;611:4324:80;;;;;;;1150:7:76;611:4324:80;;;;;;;;;-1:-1:-1;;611:4324:80;;;;;;;2700:1:76;611:4324:80;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;1827:195;;1955:60;1827:195;;-1:-1:-1;611:4324:80;1955:13;611:4324;;;-1:-1:-1;611:4324:80;1955:60;:::i;:::-;1827:195;:::o;611:4324::-;;;;;;;;;;;;;;;;;-1:-1:-1;611:4324:80;;;;;;;;-1:-1:-1;;611:4324:80;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;611:4324:80;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;;;;611:4324:80;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::o;:::-;-1:-1:-1;;;;;611:4324:80;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;2764:920:76:-;;2978:48;2764:920;;;;2978:48;;;;:::i;:::-;3036:36;;;611:4324:80;;:::i;:::-;;;;3086:20:76;3082:107;;2764:920;3216:11;;;;:193;;;;;2764:920;3216:394;;;;2764:920;3199:455;;;;;;2764:920;:::o;3199:455::-;3635:8;-1:-1:-1;3635:8:76;:::o;3216:394::-;3553:39;;;;;3430:180;3553:39;;;611:4324:80;;;;;;;;;;3430:180:76;;467:2:88;611:4324:80;3430:180:76;;;;;:::i;:::-;;611:4324:80;3444:31:76;-1:-1:-1;;;;;611:4324:80;3430:180:76;;;;;;;-1:-1:-1;3430:180:76;;;3216:394;3429:181;;3216:394;;;;;;3430:180;;;;3553:39;3430:180;3553:39;3430:180;;;;;;;:::i;:::-;;;;3216:193;-1:-1:-1;611:4324:80;;;-1:-1:-1;;;;;;611:4324:80;3248:161:76;3354:37;;;611:4324:80;3248:161:76;611:4324:80;;;;;;;;;;3248:161:76;;;;;;;:::i;:::-;;611:4324:80;3262:29:76;-1:-1:-1;;;;;611:4324:80;3248:161:76;;;;;;;-1:-1:-1;3248:161:76;;;3216:193;3247:162;;3216:193;;;3248:161;;;;;;;;;;;;;;:::i;:::-;;;;3082:107;3139:39;;;;;;;;;;;;;:::i;:::-;3082:107;;;;;611:4324:80;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;9856:1:60;611:4324:80;;;;;;;:::o;:::-;;:::i;3740:389:76:-;3918:5;611:4324:80;;;-1:-1:-1;;;3853:71:76;;;-1:-1:-1;;;;;611:4324:80;;;3853:71:76;;;611:4324:80;;;;;;;;3740:389:76;;611:4324:80;3853:71:76;;611:4324:80;;3853:71:76;611:4324:80;;;3867:29:76;611:4324:80;;3853:71:76;;;;;;;3918:5;3853:71;;;3740:389;3852:72;;611:4324:80;;;3852:181:76;;3740:389;3835:242;;;;;;4094:28;;;:::i;3835:242::-;4058:8;;3918:5;4058:8;:::o;3852:181::-;611:4324:80;;3945:88:76;;;-1:-1:-1;;;;;611:4324:80;;3853:71:76;3945:88;;611:4324:80;467:2:88;611:4324:80;;;;;;;;-1:-1:-1;611:4324:80;;;;;;;;3959:31:76;611:4324:80;3945:88:76;;;;;;;3918:5;3945:88;;;3852:181;3944:89;;;3852:181;;;;;3945:88;;;;;;-1:-1:-1;3945:88:76;;;;;;:::i;:::-;;;;;3853:71;;;;;;;;;;;;;;:::i;:::-;;;;4148:103:23;966:10:27;-1:-1:-1;611:4324:80;;;;;;;;;885:35;;611:4324;;3901:31:23;611:4324:80;;4468:23:23;4464:108;;4148:103;:::o;:::-;-1:-1:-1;611:4324:80;;;-1:-1:-1;;;;;;;;;;;611:4324:80;;;;;;;;966:10:27;611:4324:80;;;;;;;;;3901:31:23;611:4324:80;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;611:4324:80;;-1:-1:-1;611:4324:80;;;-1:-1:-1;611:4324:80;:::o;:::-;;:::i;:::-;;;;;-1:-1:-1;;;611:4324:80;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;611:4324:80;;;;;;;;:::o;6246:584:86:-;;;;;6360:12;;;611:4324:80;;;6360:24:86;;6356:75;;6246:584;6474:30;;;;;:::i;:::-;611:4324:80;;;;;;6578:12:86;;;;:::i;:::-;6604:24;;;;6246:584;-1:-1:-1;6600:188:86;;;-1:-1:-1;;;;;611:4324:80;;;;;;;6644:21:86;;;:29;:21;;:::i;:29::-;6798:25;6246:584;:::o;6600:188::-;6753:24;;611:4324:80;;8167:38:60;;-1:-1:-1;;;;;611:4324:80;;;;;8167:38:60;:::i;:::-;6753:24:86;;;:::i;6604:::-;611:4324:80;;;;;;6614:14:86;;-1:-1:-1;6604:24:86;;;6356:75;-1:-1:-1;;;611:4324:80;;;;;;6360:12:86;611:4324:80;;;;;;;:::i;:::-;;;;;;;;;;;;;;6356:75:86;;;3326:384:28;-1:-1:-1;;;;;;;;;;;1847:1:28;611:4324:80;;3526:20:28;3522:88;;1847:1;611:4324:80;;3326:384:28:o;3522:88::-;611:4324:80;;-1:-1:-1;;;3569:30:28;;;;;3701:308:80;;611:4324;-1:-1:-1;611:4324:80;3832:13;611:4324;;;-1:-1:-1;611:4324:80;11124:30:86;;;;:::i;:::-;11173;;;-1:-1:-1;11173:30:86;;;;11182:17;;-1:-1:-1;;;;;611:4324:80;;11182:12:86;;:17;:::i;:::-;611:4324:80;;;3832:13;611:4324;;11173:30:86;3890::80;;;11173::86;3886:117:80;;;;3701:308;;:::o;3886:117::-;3936:56;611:4324;-1:-1:-1;611:4324:80;3832:13;611:4324;;;-1:-1:-1;611:4324:80;819:34:62;837:15;819:34;:::i;3936:56:80:-;3701:308;;:::o;3890:30::-;3900:20;;-1:-1:-1;3890:30:80;;;;11173::86;;;-1:-1:-1;11173:30:86;;7270:387:23;-1:-1:-1;;;;;611:4324:80;;-1:-1:-1;611:4324:80;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2887:71:23;611:4324:80;;;;-1:-1:-1;611:4324:80;;;;;;;;;;;-1:-1:-1;;;;;611:4324:80;;;;;;;;;;-1:-1:-1;;611:4324:80;7509:4:23;611:4324:80;;;966:10:27;;-1:-1:-1;;;;;611:4324:80;-1:-1:-1;7532:40:23;-1:-1:-1;;7532:40:23;7509:4;7586:11;:::o;7270:387::-;-1:-1:-1;;;;;611:4324:80;;-1:-1:-1;611:4324:80;;;;;;;;;1356:26:76;;-1:-1:-1;;;;;;;;;;;2887:71:23;611:4324:80;;3901:31:23;611:4324:80;;;;-1:-1:-1;611:4324:80;;;;;;;;;;;-1:-1:-1;;;;;611:4324:80;;;;;;;;;;-1:-1:-1;;611:4324:80;7509:4:23;611:4324:80;;;966:10:27;;-1:-1:-1;;;;;611:4324:80;;7532:40:23;-1:-1:-1;;7532:40:23;7509:4;7586:11;:::o;7432:219::-;7628:12;;;-1:-1:-1;7628:12:23;:::o;7270:387::-;-1:-1:-1;;;;;611:4324:80;;-1:-1:-1;611:4324:80;;;;;;;;;885:35;;-1:-1:-1;;;;;;;;;;;2887:71:23;611:4324:80;;3901:31:23;611:4324:80;7270:387:23;-1:-1:-1;611:4324:80;;;-1:-1:-1;;;;;;;;;;;611:4324:80;;;;;;;;-1:-1:-1;;;;;611:4324:80;;;;;;;;;;;;3901:31:23;611:4324:80;7892:388:23;-1:-1:-1;611:4324:80;;;-1:-1:-1;;;;;;;;;;;611:4324:80;;;;;;;;-1:-1:-1;;;;;611:4324:80;;;;;;;;;;;;;;;;-1:-1:-1;611:4324:80;;;;;;;;;;;-1:-1:-1;;;;;611:4324:80;;;;;;;;;;-1:-1:-1;;611:4324:80;;;966:10:27;;-1:-1:-1;;;;;611:4324:80;;8155:40:23;-1:-1:-1;;8155:40:23;611:4324:80;8209:11:23;:::o;10580:184:86:-;611:4324:80;;10303:8:60;;;:63;-1:-1:-1;10303:63:60;-1:-1:-1;;;;;611:4324:80;;10726:7:86;611:4324:80;;10736:12:86;:17;:12;;:17;:::i;:::-;611:4324:80;;;;;;10580:184:86;:::o;10303:63:60:-;611:4324:80;;;;;;;;;;14249:109:60;-1:-1:-1;14249:109:60;;-1:-1:-1;14249:109:60;;;611:4324:80;;;10303:63:60;;611:4324:80;;;;;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;611:4324:80;;;;;;;;:::i;5907:716:76:-;6030:34;5907:716;6030:34;;;;:::i;:::-;611:4324:80;;-1:-1:-1;;;6080:41:76;;-1:-1:-1;;;;;611:4324:80;;;6080:41:76;;;611:4324:80;;;;;6080:41:76;611:4324:80;;;6090:13:76;611:4324:80;;6080:41:76;;;;;;;-1:-1:-1;6080:41:76;;;5907:716;6079:42;;6075:90;;6266:27;611:4324:80;2540:111:28;6210:14:76;611:4324:80;2540:111:28;;;:::i;:::-;611:4324:80;;;;;;-1:-1:-1;;;;;611:4324:80;;-1:-1:-1;611:4324:80;;;-1:-1:-1;611:4324:80;;6210:14:76;6266:27;:::i;:::-;6080:41;6311:15;;611:4324:80;;;;-1:-1:-1;;;;;;611:4324:80;-1:-1:-1;;;;;611:4324:80;;;;;;;;;;;-1:-1:-1;;;;;611:4324:80;;;;6337:143:76;;5907:716;-1:-1:-1;6493:28:76;611:4324:80;-1:-1:-1;;;;;611:4324:80;;;;;;;6489:128:76;;5907:716;:::o;6489:128::-;6551:55;;;:::i;:::-;;5907:716::o;6337:143::-;6404:65;;;:::i;:::-;;6337:143;;;6075:90;611:4324:80;;-1:-1:-1;;;6144:10:76;;6080:41;;6144:10;6080:41;;;;;;;;;;;;;;:::i;:::-;;;;611:4324:80;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;:::o;7558:604:86:-;;611:4324:80;;7686:17:86;7682:83;;611:4324:80;7789:27:86;611:4324:80;7789:27:86;611:4324:80;;7789:27:86;;;;;;:::i;:::-;7860:14;;;;;:::i;:::-;611:4324:80;;;;;;;;;;;;;;;;7888:22:86;;;7884:77;;7975:21;-1:-1:-1;7975:84:86;;;;7558:604;7971:139;;;;8127:28;;;;:::i;7971:139::-;8082:17;;7789:27;8082:17;611:4324:80;8075:24:86;:::o;7975:84::-;611:4324:80;;;8009:16:86;611:4324:80;;8009:16:86;:::i;:::-;611:4324:80;;;8001:24:86;:57;;;;;7975:84;;;;;;;8001:57;8029:29;8038:8;;;8029:18;8038:8;8029:23;8038:8;;:::i;:::-;8029:18;;:::i;:::-;611:4324:80;;;;;8029:23:86;611:4324:80;;;;8029:29:86;;8001:57;;;;7884:77;7933:17;;;;;7789:27;7933:17;611:4324:80;7926:24:86;:::o;7682:83::-;7726:28;;;;:::i;611:4324:80:-;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;;;;611:4324:80;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;:::i;2737:699::-;;;;;611:4324;;:::i;:::-;;;;2978:16;2974:92;;2737:699;-1:-1:-1;;3080:8:80;611:4324;-1:-1:-1;;;;;611:4324:80;;;;;3080:21;3076:85;;-1:-1:-1;611:4324:80;3218:67;;611:4324;;3257:27;;3218;;:13;;-1:-1:-1;;;;;611:4324:80;3218:13;611:4324;3218:27;3257;;;;611:4324;;;;;;;;;;;3218:67;;;3080:8;3218:67;;;:::i;:::-;;;;;;;;;;3192:192;3218:67;-1:-1:-1;3218:67:80;;;2737:699;3341:28;3303:67;3341:28;;611:4324;3341:28;;;3303:67;;:::i;:::-;3192:192;;:::i;:::-;3398:21;;2737:699;:::o;3218:67::-;3303;3218;;;;3257:27;3218:67;3257:27;3218:67;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;3076:85;-1:-1:-1;;3128:21:80;;-1:-1:-1;;3117:33:80:o;2974:92::-;3024:31;;;;;;;;;;;;;:::i;:::-;2974:92;;;;;3442:253;3552:8;611:4324;-1:-1:-1;;;;;611:4324:80;;;;;;;3552:21;3548:60;;3634:27;3552:8;611:4324;-1:-1:-1;611:4324:80;;;;;;;;;;;3634:27;;;;;;;;;3625:63;3634:27;-1:-1:-1;3634:27:80;;;3442:253;2193:25;;:34;:25;611:4324;;2193:13;611:4324;;;;;;;2193:25;:34;:::i;3634:27::-;2193:34;3634:27;;;;2193:25;3634:27;;;;;;;;;;;:::i;:::-;;;;;;14291:213:58;611:4324:80;14369:24:58;;;;14365:103;;611:4324:80;14291:213:58;:::o;14365:103::-;611:4324:80;;;;14416:41:58;;;;;;14447:2;14416:41;;;611:4324:80;;;;;14416:41:58;611:4324:80;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::o;10552:388:60:-;611:4324:80;;10728:8:60;;;10752:20;;10690:17;10752:20;10690:17;10752:20;10690:17;10752:20;:::o;10724:210::-;611:4324:80;;;;;;;;;;;14249:109:60;10690:17;14249:109;;10690:17;14249:109;;;611:4324:80;:::i;:::-;;;;;;;14249:109:60;611:4324:80;;;;;10911:11:60;;611:4324:80;;10886:37:60;10870:1;10886:37;;;:::o;6893:76:25:-;;;:::i;:::-;;;:::i;:::-;1805:1:28;-1:-1:-1;;;;;;;;;;;611:4324:80;6893:76:25:o;611:4324:80:-;;;;;;;:::i;:::-;-1:-1:-1;611:4324:80;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;-1:-1:-1;;;;;611:4324:80;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;611:4324:80;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::o;4015:918::-;611:4324;;:::i;:::-;;4163:30;611:4324;;4163:30;;;;;;;;;;;:::i;:::-;4208:17;;611:4324;-1:-1:-1;;;;;611:4324:80;;4208:17;611:4324;;4208:54;;:103;;4015:918;4204:161;;4418:15;;;;611:4324;;;;-1:-1:-1;;;4380:54:80;;-1:-1:-1;;;;;611:4324:80;;;4380:54;;;;611:4324;;;;4380:54;4418:15;;;;611:4324;;;;;;;;4390:17;611:4324;4380:54;;;;;;;4208:17;4380:54;;;4015:918;4379:55;;4375:106;;4496:9;;4511:33;;;4208:17;4553:3;4511:33;;611:4324;;4507:44;;;;;4576:36;;;:50;:36;;:::i;:::-;611:4324;-1:-1:-1;;;;;611:4324:80;;;4576:50;;4572:119;;4709:73;4710:72;4745:36;;:33;;;:36;:::i;:::-;4710:72;:::i;:::-;4709:73;;611:4324;4709:73;4705:140;;611:4324;;4496:9;;4705:140;611:4324;;-1:-1:-1;;;4809:21:80;;611:4324;;4809:21;4572:119;611:4324;;-1:-1:-1;;;4653:23:80;;611:4324;;4653:23;4507:44;-1:-1:-1;;611:4324:80;;4380:54;611:4324;;-1:-1:-1;;;;;;611:4324:80;-1:-1:-1;;;;;611:4324:80;;;;;;;;;;-1:-1:-1;4865:26:80;;-1:-1:-1;;611:4324:80;4865:26;4909:17;4015:918;:::o;4375:106::-;4418:15;611:4324;-1:-1:-1;;;4457:13:80;;4380:54;;4457:13;4380:54;;;;;;;;;;;;;;:::i;:::-;;;;4204:161;611:4324;;-1:-1:-1;;;4334:20:80;;;;;4208:103;4266:33;;;;;611:4324;4266:45;4208:103;;6999:207:86;;611:4324:80;;9594:15:60;-1:-1:-1;9619:18:60;9652:7;9658:1;9652:7;;9648:234;;6999:207:86;9906:53:60;;;;;:::i;:::-;9977:8;;;:63;-1:-1:-1;9977:63:60;;-1:-1:-1;;;;;611:4324:80;;7168:7:86;611:4324:80;;;7178:12:86;;:17;:12;;:17;:::i;9977:63:60:-;9992:41;10025:7;9992:48;10025:7;;:::i;:::-;9992:41;14249:109;;;;;;14099:265;;9992:41;611:4324:80;;;;;9992:48:60;9977:63;;;9648:234;9695:14;;;;;:::i;:::-;611:4324:80;;;;;;;9906:53:60;14249:109;;-1:-1:-1;14249:109:60;611:4324:80;14249:109:60;;;-1:-1:-1;14249:109:60;;611:4324:80;;;;;9727:48:60;9723:149;611:4324:80;;;9795:10:60;9723:149;9648:234;;9723:149;9850:7;;;;;;:::i;:::-;9723:149;9648:234;;611:4324:80;;;;;;;:::i;:::-;-1:-1:-1;611:4324:80;;;;;;;:::o;11486:272:86:-;;611:4324:80;11308:22:60;11718:31:86;11486:272;611:4324:80;;:::i;:::-;;;;:::i;:::-;;11308:22:60;;:::i;:::-;611:4324:80;;:::i;:::-;;11718:12:86;611:4324:80;;;;;11731:17:86;611:4324:80;;;;;11731:17:86;;611:4324:80;;11718:12:86;;:31;:::i;:::-;611:4324:80;;;;;;;;;:::i;:::-;;;;;;11731:17:86;11672:79;;611:4324:80;11486:272:86;:::o;2557:104:57:-;;2641:5;;;;;;:13;2557:104;:::o;2641:13::-;;;2557:104;:::o;611:4324:80:-;;;-1:-1:-1;;;611:4324:80;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;611:4324:80;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;11513:870:60;611:4324:80;;11513:870:60;;;611:4324:80;11513:870:60;11672:7;;;;611:4324:80;11775:28:60;11795:7;;;:::i;11775:28::-;611:4324:80;:::i;:::-;;;;;;;;;;;;;;;;11877:15:60;-1:-1:-1;11873:91:60;;611:4324:80;;12233:11:60;611:4324:80;;;12027:16:60;611:4324:80;;;;;;;12027:16:60;;;;12083:7;12063:43;12083:7;;12063:28;12083:7;;:::i;:::-;12063:28;14249:109;;;;;;14099:265;;12063:28;611:4324:80;;;;;;;;;;;;;;;;;12063:43:60;12233:11;611:4324:80;-1:-1:-1;;;;;611:4324:80;;;12023:189:60;611:4324:80;;;12145:52:60;611:4324:80;12155:41:60;611:4324:80;;:::i;:::-;;;;;;;;12155:41:60;-1:-1:-1;;;;;611:4324:80;;12155:41:60;;;611:4324:80;12145:52:60;:::i;:::-;12023:189;;11873:91;611:4324:80;;-1:-1:-1;;;11919:30:60;;;;;11668:709;12283:52;611:4324:80;;12293:41:60;611:4324:80;;:::i;12293:41:60:-;-1:-1:-1;;;;;611:4324:80;;12293:41:60;;;611:4324:80;12145:52:60;:::i;12283:::-;11678:1;12349:17;;:::o;7084:141:25:-;611:4324:80;-1:-1:-1;;;;;;;;;;;611:4324:80;;;;7150:18:25;7146:73;;7084:141::o;7146:73::-;611:4324:80;;-1:-1:-1;;;7191:17:25;;;;;8587:1642:57;8658:6;;8654:45;;9401:7;10201:10;10142:26;10093;10044;9995;9946;9897;9848;611:4324:80;10189:23:57;9401:7;8663:1;611:4324:80;;;;10826:16:57;10822:99;;8587:1642;611:4324:80;;;;10938:15:57;10934:96;;8587:1642;611:4324:80;;;;11047:15:57;11043:96;;8587:1642;611:4324:80;;;;11156:15:57;11152:96;;8587:1642;611:4324:80;;;;11265:14:57;11261:93;;8587:1642;611:4324:80;;;;11371:14:57;11367:93;;8587:1642;611:4324:80;;;;11477:14:57;11473:93;;8587:1642;611:4324:80;;;11579:64:57;;8587:1642;611:4324:80;;;9858:10:57;;;;:::i;:::-;611:4324:80;;;;;9848:26:57;9907:10;;;;:::i;9897:26::-;9956:10;;;;:::i;9946:26::-;10005:10;;;;:::i;9995:26::-;10054:10;;;;:::i;10044:26::-;10103:10;;;;:::i;10093:26::-;10152:10;;;;:::i;10142:26::-;10201:10;;;:::i;11579:64::-;611:4324:80;;11579:64:57;;11473:93;611:4324:80;11511:11:57;;611:4324:80;;11473:93:57;;;;11367;611:4324:80;11405:11:57;;611:4324:80;;11367:93:57;;;;11261;611:4324:80;11299:11:57;;611:4324:80;;11261:93:57;;;;11152:96;611:4324:80;11191:12:57;;611:4324:80;;11152:96:57;;;;11043;611:4324:80;11082:12:57;;611:4324:80;;11043:96:57;;;;10934;611:4324:80;10973:12:57;;611:4324:80;;10934:96:57;;;;10822:99;10862:13;;;611:4324:80;10822:99:57;;;;12736:433:60;;;12919:10;;;;;;13151:11;;;12736:433;:::o;12912:230::-;2900:5:57;;;;;;2910;;;;611:4324:80;;;;;;;;;14249:109:60;-1:-1:-1;14249:109:60;611:4324:80;14249:109:60;;;-1:-1:-1;14249:109:60;;611:4324:80;;;;;-1:-1:-1;12996:136:60;611:4324:80;;;13055:10:60;12996:136;;12912:230;;;;12996:136;13110:7;;;;;;:::i;:::-;12996:136;;","linkReferences":{},"immutableReferences":{"57808":[{"start":1514,"length":32}],"57811":[{"start":3348,"length":32}],"58762":[{"start":1129,"length":32},{"start":3405,"length":32}],"58765":[{"start":863,"length":32},{"start":6996,"length":32}],"58768":[{"start":931,"length":32},{"start":4918,"length":32},{"start":5253,"length":32}],"58771":[{"start":999,"length":32},{"start":4765,"length":32},{"start":5379,"length":32}],"60687":[{"start":2964,"length":32},{"start":8772,"length":32}]}},"methodIdentifiers":{"DEFAULT_ADMIN_ROLE()":"a217fddf","FACTORY()":"2dd31000","HOOK_GAS_LIMIT()":"ff54740f","HOOK_RESERVE()":"557cab44","HOOK_SET_ROLE()":"6679191e","NETWORK_LIMIT_SET_ROLE()":"7d24bb27","NETWORK_REGISTRY()":"c0cd7c3e","OPERATOR_NETWORK_OPT_IN_SERVICE()":"1a80e500","OPERATOR_REGISTRY()":"83ce0322","OPERATOR_VAULT_OPT_IN_SERVICE()":"128e5d82","TYPE()":"bb24fe8a","VAULT_FACTORY()":"103f2907","VERSION()":"ffa1ad74","getRoleAdmin(bytes32)":"248a9ca3","grantRole(bytes32,address)":"2f2ff15d","hasRole(bytes32,address)":"91d14854","hook()":"7f5a7c7b","initialize(bytes)":"439fab91","maxNetworkLimit(bytes32)":"d15b740e","networkLimit(bytes32)":"3eb22c0f","networkLimitAt(bytes32,uint48,bytes)":"5d32a1c9","onSlash(bytes32,address,uint256,uint48,bytes)":"e49561ee","operator()":"570ca735","renounceRole(bytes32,address)":"36568abe","revokeRole(bytes32,address)":"d547741f","setHook(address)":"3dfd3873","setMaxNetworkLimit(uint96,uint256)":"23f752d5","setNetworkLimit(bytes32,uint256)":"02145348","stake(bytes32,address)":"fd4d447c","stakeAt(bytes32,address,uint48,bytes)":"e02f6937","staticDelegateCall(address,bytes)":"9f86fd85","supportsInterface(bytes4)":"01ffc9a7","vault()":"fbfa77cf"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operatorRegistry\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"networkRegistry\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"vaultFactory\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operatorVaultOptInService\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operatorNetworkOptInService\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"delegatorFactory\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"entityType\",\"type\":\"uint64\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"AccessControlBadConfirmation\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"neededRole\",\"type\":\"bytes32\"}],\"name\":\"AccessControlUnauthorizedAccount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AlreadySet\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CheckpointUnorderedInsertion\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"DuplicateRoleHolder\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ExceedsMaxNetworkLimit\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientHookGas\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MissingRoleHolders\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotNetwork\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotOperator\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotSlasher\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotVault\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ReentrancyGuardReentrantCall\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"bits\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"SafeCastOverflowedUintDowncast\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ZeroAddressRoleHolder\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint48\",\"name\":\"captureTimestamp\",\"type\":\"uint48\"}],\"name\":\"OnSlash\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"previousAdminRole\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"newAdminRole\",\"type\":\"bytes32\"}],\"name\":\"RoleAdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleRevoked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"hook\",\"type\":\"address\"}],\"name\":\"SetHook\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"SetMaxNetworkLimit\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"SetNetworkLimit\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DEFAULT_ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"FACTORY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"HOOK_GAS_LIMIT\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"HOOK_RESERVE\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"HOOK_SET_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"NETWORK_LIMIT_SET_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"NETWORK_REGISTRY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"OPERATOR_NETWORK_OPT_IN_SERVICE\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"OPERATOR_REGISTRY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"OPERATOR_VAULT_OPT_IN_SERVICE\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"TYPE\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"VAULT_FACTORY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"VERSION\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleAdmin\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"grantRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"hook\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"}],\"name\":\"maxNetworkLimit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"}],\"name\":\"networkLimit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hint\",\"type\":\"bytes\"}],\"name\":\"networkLimitAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint48\",\"name\":\"captureTimestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"onSlash\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"operator\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"callerConfirmation\",\"type\":\"address\"}],\"name\":\"renounceRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"hook_\",\"type\":\"address\"}],\"name\":\"setHook\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint96\",\"name\":\"identifier\",\"type\":\"uint96\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"setMaxNetworkLimit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"setNetworkLimit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"stake\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hints\",\"type\":\"bytes\"}],\"name\":\"stakeAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"staticDelegateCall\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"vault\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"AccessControlBadConfirmation()\":[{\"details\":\"The caller of a function is not the expected one. NOTE: Don't confuse with {AccessControlUnauthorizedAccount}.\"}],\"AccessControlUnauthorizedAccount(address,bytes32)\":[{\"details\":\"The `account` is missing a role.\"}],\"CheckpointUnorderedInsertion()\":[{\"details\":\"A value was attempted to be inserted on a past checkpoint.\"}],\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"ReentrancyGuardReentrantCall()\":[{\"details\":\"Unauthorized reentrant call.\"}],\"SafeCastOverflowedUintDowncast(uint8,uint256)\":[{\"details\":\"Value doesn't fit in an uint of `bits` size.\"}]},\"events\":{\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"OnSlash(bytes32,address,uint256,uint48)\":{\"params\":{\"amount\":\"amount of the collateral to be slashed\",\"captureTimestamp\":\"time point when the stake was captured\",\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"}},\"RoleAdminChanged(bytes32,bytes32,bytes32)\":{\"details\":\"Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole` `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite {RoleAdminChanged} not being emitted signaling this.\"},\"RoleGranted(bytes32,address,address)\":{\"details\":\"Emitted when `account` is granted `role`. `sender` is the account that originated the contract call, an admin role bearer except when using {AccessControl-_setupRole}.\"},\"RoleRevoked(bytes32,address,address)\":{\"details\":\"Emitted when `account` is revoked `role`. `sender` is the account that originated the contract call: - if using `revokeRole`, it is the admin role bearer - if using `renounceRole`, it is the role bearer (i.e. `account`)\"},\"SetHook(address)\":{\"params\":{\"hook\":\"address of the hook\"}},\"SetMaxNetworkLimit(bytes32,uint256)\":{\"params\":{\"amount\":\"new maximum subnetwork's limit (how much stake the subnetwork is ready to get)\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"}},\"SetNetworkLimit(bytes32,uint256)\":{\"params\":{\"amount\":\"new subnetwork's limit (how much stake the vault curator is ready to give to the subnetwork)\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"}}},\"kind\":\"dev\",\"methods\":{\"VERSION()\":{\"details\":\"Must return 1 for this one.\",\"returns\":{\"_0\":\"version of the delegator\"}},\"getRoleAdmin(bytes32)\":{\"details\":\"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}.\"},\"grantRole(bytes32,address)\":{\"details\":\"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event.\"},\"hasRole(bytes32,address)\":{\"details\":\"Returns `true` if `account` has been granted `role`.\"},\"initialize(bytes)\":{\"params\":{\"data\":\"some data to use\"}},\"networkLimit(bytes32)\":{\"params\":{\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"},\"returns\":{\"_0\":\"limit of the subnetwork\"}},\"networkLimitAt(bytes32,uint48,bytes)\":{\"params\":{\"hint\":\"hint for checkpoint index\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\",\"timestamp\":\"time point to get the subnetwork limit at\"},\"returns\":{\"_0\":\"limit of the subnetwork at the given timestamp\"}},\"onSlash(bytes32,address,uint256,uint48,bytes)\":{\"details\":\"Only the vault's slasher can call this function.\",\"params\":{\"amount\":\"amount of the collateral slashed\",\"captureTimestamp\":\"time point when the stake was captured\",\"data\":\"some additional data\",\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"}},\"renounceRole(bytes32,address)\":{\"details\":\"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `callerConfirmation`. May emit a {RoleRevoked} event.\"},\"revokeRole(bytes32,address)\":{\"details\":\"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event.\"},\"setHook(address)\":{\"details\":\"Only a HOOK_SET_ROLE holder can call this function. The hook can have arbitrary logic under certain functions, however, it doesn't affect the stake guarantees.\",\"params\":{\"hook\":\"address of the hook\"}},\"setMaxNetworkLimit(uint96,uint256)\":{\"details\":\"Only a network can call this function.\",\"params\":{\"amount\":\"new maximum subnetwork's limit\"}},\"setNetworkLimit(bytes32,uint256)\":{\"details\":\"Only a NETWORK_LIMIT_SET_ROLE holder can call this function.\",\"params\":{\"amount\":\"new limit of the subnetwork\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"}},\"stake(bytes32,address)\":{\"details\":\"Warning: this function is not safe to use for stake capturing, as it can change by the end of the block.\",\"params\":{\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"},\"returns\":{\"_0\":\"slashable stake until the end of the next epoch\"}},\"stakeAt(bytes32,address,uint48,bytes)\":{\"details\":\"Warning: it is not safe to use timestamp >= current one for the stake capturing, as it can change later.\",\"params\":{\"hints\":\"hints for the checkpoints' indexes\",\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\",\"timestamp\":\"time point to capture the stake at\"},\"returns\":{\"_0\":\"slashable stake at the given timestamp until the end of the consequent epoch\"}},\"staticDelegateCall(address,bytes)\":{\"details\":\"It allows to use this contract's storage on-chain.\",\"params\":{\"data\":\"data to make a delegatecall with\",\"target\":\"address of the contract to make a delegatecall to\"}},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"}},\"stateVariables\":{\"NETWORK_LIMIT_SET_ROLE\":{\"return\":\"identifier of the subnetwork limit setter role\",\"returns\":{\"_0\":\"identifier of the subnetwork limit setter role\"}},\"OPERATOR_REGISTRY\":{\"return\":\"address of the operator registry\",\"returns\":{\"_0\":\"address of the operator registry\"}},\"operator\":{\"return\":\"address of the operator\",\"returns\":{\"_0\":\"address of the operator\"}}},\"version\":1},\"userdoc\":{\"events\":{\"OnSlash(bytes32,address,uint256,uint48)\":{\"notice\":\"Emitted when a slash happens.\"},\"SetHook(address)\":{\"notice\":\"Emitted when a hook is set.\"},\"SetMaxNetworkLimit(bytes32,uint256)\":{\"notice\":\"Emitted when a subnetwork's maximum limit is set.\"},\"SetNetworkLimit(bytes32,uint256)\":{\"notice\":\"Emitted when a subnetwork's limit is set.\"}},\"kind\":\"user\",\"methods\":{\"FACTORY()\":{\"notice\":\"Get the factory's address.\"},\"HOOK_GAS_LIMIT()\":{\"notice\":\"Get a gas limit for the hook.\"},\"HOOK_RESERVE()\":{\"notice\":\"Get a reserve gas between the gas limit check and the hook's execution.\"},\"HOOK_SET_ROLE()\":{\"notice\":\"Get a hook setter's role.\"},\"NETWORK_LIMIT_SET_ROLE()\":{\"notice\":\"Get a subnetwork limit setter's role.\"},\"NETWORK_REGISTRY()\":{\"notice\":\"Get the network registry's address.\"},\"OPERATOR_NETWORK_OPT_IN_SERVICE()\":{\"notice\":\"Get the operator-network opt-in service's address.\"},\"OPERATOR_REGISTRY()\":{\"notice\":\"Get the operator registry's address.\"},\"OPERATOR_VAULT_OPT_IN_SERVICE()\":{\"notice\":\"Get the operator-vault opt-in service's address.\"},\"TYPE()\":{\"notice\":\"Get the entity's type.\"},\"VAULT_FACTORY()\":{\"notice\":\"Get the vault factory's address.\"},\"VERSION()\":{\"notice\":\"Get a version of the delegator (different versions mean different interfaces).\"},\"hook()\":{\"notice\":\"Get the hook's address.\"},\"initialize(bytes)\":{\"notice\":\"Initialize this entity contract by using a given data.\"},\"maxNetworkLimit(bytes32)\":{\"notice\":\"Get a particular subnetwork's maximum limit (meaning the subnetwork is not ready to get more as a stake).\"},\"networkLimit(bytes32)\":{\"notice\":\"Get a subnetwork's limit (how much stake the vault curator is ready to give to the subnetwork).\"},\"networkLimitAt(bytes32,uint48,bytes)\":{\"notice\":\"Get a subnetwork's limit at a given timestamp using a hint (how much stake the vault curator is ready to give to the subnetwork).\"},\"onSlash(bytes32,address,uint256,uint48,bytes)\":{\"notice\":\"Called when a slash happens.\"},\"operator()\":{\"notice\":\"Get an operator managing the vault's funds.\"},\"setHook(address)\":{\"notice\":\"Set a new hook.\"},\"setMaxNetworkLimit(uint96,uint256)\":{\"notice\":\"Set a maximum limit for a subnetwork (how much stake the subnetwork is ready to get). identifier identifier of the subnetwork\"},\"setNetworkLimit(bytes32,uint256)\":{\"notice\":\"Set a subnetwork's limit (how much stake the vault curator is ready to give to the subnetwork).\"},\"stake(bytes32,address)\":{\"notice\":\"Get a stake that a given subnetwork will be able to slash for a certain operator until the end of the next epoch (if no cross-slashing and no slashings by the subnetwork).\"},\"stakeAt(bytes32,address,uint48,bytes)\":{\"notice\":\"Get a stake that a given subnetwork could be able to slash for a certain operator at a given timestamp until the end of the consequent epoch using hints (if no cross-slashing and no slashings by the subnetwork).\"},\"staticDelegateCall(address,bytes)\":{\"notice\":\"Make a delegatecall from this contract to a given target contract with a particular data (always reverts with a return data).\"},\"vault()\":{\"notice\":\"Get the vault's address.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/contracts/delegator/OperatorSpecificDelegator.sol\":\"OperatorSpecificDelegator\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol\":{\"keccak256\":\"0x6662ec4e5cefca03eeadd073e9469df8d2944bb2ee8ec8f7622c2c46aab5f225\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4d8544c6f8daa4d1bc215c6a72fe0acdb748664a105b0e5efc19295667521d45\",\"dweb:/ipfs/QmdGWqdnXT8S3RgCR6aV8XHZrsybieMQLLnug1NtpSjEXN\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609\",\"dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9\",\"dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardUpgradeable.sol\":{\"keccak256\":\"0xb44e086e941292cdc7f440de51478493894ef0b1aeccb0c4047445919f667f74\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://942dad22fbdc1669f025540ba63aa3ccfad5f8458fc5d4525b31ebf272e7af45\",\"dweb:/ipfs/Qmdo4X2M82aM3AMoW2kf2jhYkSCyC4T1pHNd6obdsDFnAB\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol\":{\"keccak256\":\"0xdaba3f7c42c55b2896353f32bd27d4d5f8bae741b3b05d4c53f67abc4dc47ce8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1fa2e61141c602510bcd2cd936ed9561922ac8772a9b9c9a9db091a74e354a45\",\"dweb:/ipfs/QmcHQDDoEBwJmwUbzoVkytvJsBx3KVHYFFnDkvRGWh9Wmh\"]},\"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0xb6b36edd6a2999fd243ff226d6cbf84bd71af2432bbd0dfe19392996a1d9cb41\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1fd2f35495652e57e3f99bc6c510bc5f7dd398a176ea2e72d8ed730aebc6ca26\",\"dweb:/ipfs/QmTQV6X4gkikTib49cho5iDX3JvSQbdsoEChoDwrk3CbbH\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875\",\"dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0xe19a4d5f31d2861e7344e8e535e2feafb913d806d3e2b5fe7782741a2a7094fe\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4aed79c0fa6f0546ed02f2f683e8f77f0fd2ed7eb34d8bbf3d373c9a6d95b13c\",\"dweb:/ipfs/QmWqVz6UAVqmnWU5pqYPt1o6iDEZyPaBraAA3rKfTTSfYj\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/Checkpoints.sol\":{\"keccak256\":\"0xbdc5e074d7dd6678f67e92b1a51a20226801a407b0e1af3da367c5d1ff4519ad\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a36cca6b22fff3db16fc789ff6c60eea71d4b156065d4d0c83a0bc5e91a77a8b\",\"dweb:/ipfs/QmYN3exd5AemxjBrN8XMB1p5LbbE16uC3sjbYjwi8AjcGR\"]},\"lib/openzeppelin-contracts/contracts/utils/types/Time.sol\":{\"keccak256\":\"0xc7755af115020049e4140f224f9ee88d7e1799ffb0646f37bf0df24bf6213f58\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7f09bf94d5274334ec021f61a04659db303f31e60460e14b709c9bf187740111\",\"dweb:/ipfs/QmNvgomZYUwFAt4cZbPWAiTeSZQreGehY9BK5xyVJsUttb\"]},\"src/contracts/common/Entity.sol\":{\"keccak256\":\"0x3d61a932995b8443381f3950542d388223a2c26dd5d29a3274dea3baa7388bd7\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://7cdf5f03ca72fd263fd32ff59c8d88ddca911ae83896a287d10772c1bbe9b138\",\"dweb:/ipfs/QmbP84r5BWT1Rn9AYTntWSf3xUMTTCohTZJFhbBhDXFoHa\"]},\"src/contracts/common/StaticDelegateCallable.sol\":{\"keccak256\":\"0x350029aa8955eacaffffaeb58babc5c98e80ebc5c5db388ed17ee6465f4a9d90\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://eb392a8ee9050e0af606897df63e3404e3829e8b688b580663892f9664195764\",\"dweb:/ipfs/QmaXC8jqV8UrrAFkzXTEv2fJF56sy33HhLxAzaRZmUxuXD\"]},\"src/contracts/delegator/BaseDelegator.sol\":{\"keccak256\":\"0x7c54d491fdd4415b764a9c8defa068e56d4c0c8c9419be0053a1d377669290e8\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://9238bfbad0f6eeb0dc7727724de14380f1980b395902269703d5e2ef07e52e10\",\"dweb:/ipfs/QmPJn1V4HNXcEghYvogGuSTF24dSQUPosR5qtsXcmNqRm3\"]},\"src/contracts/delegator/OperatorSpecificDelegator.sol\":{\"keccak256\":\"0x630ce62fa30b9f3349ab7a8cf8dbf041319febc6dd757be2f94d3d25944ed328\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://c2ac59d47ce57d2a6819ae9833e1a618a371eccff93eb5ab367b201b01f42bfa\",\"dweb:/ipfs/QmdBpGMBivpNPv2WbH8vnCUy5xkVeaxQvGgqi33vKCz1kA\"]},\"src/contracts/libraries/Checkpoints.sol\":{\"keccak256\":\"0xba90097c8bfe0a975499428b5f8ac5569483c7d92ccc28c12d70de416aae040c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://12f5d93ca94cd06d3147db68993165a58e17903ed53682560de61f3085ad4609\",\"dweb:/ipfs/QmePiuAqvXprMLmFZkGZeGjvGPAvsEDHfCDv7BoQhXu9xE\"]},\"src/contracts/libraries/Subnetwork.sol\":{\"keccak256\":\"0xf5ef5506fd66082b3c2e7f3df37529f5a8efad32ac62e7c8914bd63219190bfe\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba031a54ee0d0e9a270c2b9e18437f5668cfeb659cfd5fe0677459d7fcac2a56\",\"dweb:/ipfs/QmReP3H7qQ78tAfgLnJKsNEQNCQfF1X1Get38Ffd4kzq32\"]},\"src/interfaces/common/IEntity.sol\":{\"keccak256\":\"0x8ef4b63d6da63489778ccd5f8d13ebdd527dd4b62730b2c616df5af7474d2d21\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a8d69576a9219d85c50816a18ad53a4d53cfcb27ed38b8cccc808dc2734b71b\",\"dweb:/ipfs/QmYVN3P4Q4REvBWJ97TbAcaxm3uyB2anV6NSGa6ZtSwcEv\"]},\"src/interfaces/common/IMigratableEntity.sol\":{\"keccak256\":\"0x8f5f2809f3afbe8ebfbb365dd7b57b4dd3b6f9943a6187eaf648d45895b8e3c4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ffe640537d539e7a4fde70d30d3e4c57f4ba9c2c25c450cea713aae38e8fd5c\",\"dweb:/ipfs/QmSUTGzvdcn1R1KB7tLThMRtESsfPbeXDhhhKWGtntzBds\"]},\"src/interfaces/common/IRegistry.sol\":{\"keccak256\":\"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014\",\"dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK\"]},\"src/interfaces/common/IStaticDelegateCallable.sol\":{\"keccak256\":\"0xa335d4e81b9071b7de66ef92b43ff20671d86516eb1be46fef29a3483cd3f5d5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d464b9db863c14c05547d2b23352f2e9b7b784799cf09f6bbc4906a2a74e3516\",\"dweb:/ipfs/QmUVWzFvJz7eEbDQKiFTTzwi7TEbjcs3VmwdM4kuptAKvi\"]},\"src/interfaces/delegator/IBaseDelegator.sol\":{\"keccak256\":\"0x96bb312f032e17accce3f8f80936d99468029d6b37c9ca74acdb4b026a0148ee\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2a66dcb5b7d1a6ef6a363431ea98ebd78bc4fdd3d7a134d9b542dc66e7d025c2\",\"dweb:/ipfs/QmRhTPLd2ZAyRHmJUFUcWKs9b3if49QY17LYZuRqWmghw8\"]},\"src/interfaces/delegator/IDelegatorHook.sol\":{\"keccak256\":\"0xc51aa8d7d1f6c8043ee819b7aeb86da0e993912e1442098df897e299f01f9f46\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://adddf5cb2ba282aeb576b26efb28640f865a1721cc9b6eee8b3ee0457a2c9780\",\"dweb:/ipfs/QmNYgAmnLRwWZbhTuQhZs9rx4zcme1df5mEepkrniorSoW\"]},\"src/interfaces/delegator/IOperatorSpecificDelegator.sol\":{\"keccak256\":\"0x72075cab585dc17240cc3e32bc99b92f0d5627ddd988fed680e3e1a52d5a01e4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7448bc90699409ae61d85216b5efc2143a37f0f73354be2aea993bc54afca441\",\"dweb:/ipfs/QmXE4gAxM8pHosZK8mcTcj17puBx484meDCcmrDePskGHZ\"]},\"src/interfaces/service/IOptInService.sol\":{\"keccak256\":\"0x76fb5460a6d87a5705433d4fbeff7253cd75b8bbd0c888b2088f16e86ace146a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://990322019b3d11465f7024bae77ccbf7e2fe5d6fa3c754584778f37d04fa1337\",\"dweb:/ipfs/QmaSNHzcqxTkUCG9a4nqVfLECHLdjdrwAnDi3yDC7tDL24\"]},\"src/interfaces/vault/IVault.sol\":{\"keccak256\":\"0xffee01d383cd4e1a5530c614bf4360c1ef070c288abec9da1eb531b51bc07235\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://04f0046cac285d8ec44ebbb1f79dc94fab4495767190cad8364fbc1fafaadfb9\",\"dweb:/ipfs/QmUawAunwzXfCyShWfhKeThAgKtqe51hmrxvrXvM772M2R\"]},\"src/interfaces/vault/IVaultStorage.sol\":{\"keccak256\":\"0x592626f13754194f83047135de19229c49390bd59e34659b1bb38be71d973a22\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://06a6a9dfddd05e580b32bebe2cff4f63ba26a653180676d58225dd30d9c89d3e\",\"dweb:/ipfs/QmdgzBeY6Sxo8mGtyBxtv1tM1c2kU6J6zjeRd7vuXm4DU6\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.25+commit.b61c2a91"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"operatorRegistry","type":"address"},{"internalType":"address","name":"networkRegistry","type":"address"},{"internalType":"address","name":"vaultFactory","type":"address"},{"internalType":"address","name":"operatorVaultOptInService","type":"address"},{"internalType":"address","name":"operatorNetworkOptInService","type":"address"},{"internalType":"address","name":"delegatorFactory","type":"address"},{"internalType":"uint64","name":"entityType","type":"uint64"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"AccessControlBadConfirmation"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bytes32","name":"neededRole","type":"bytes32"}],"type":"error","name":"AccessControlUnauthorizedAccount"},{"inputs":[],"type":"error","name":"AlreadySet"},{"inputs":[],"type":"error","name":"CheckpointUnorderedInsertion"},{"inputs":[],"type":"error","name":"DuplicateRoleHolder"},{"inputs":[],"type":"error","name":"ExceedsMaxNetworkLimit"},{"inputs":[],"type":"error","name":"InsufficientHookGas"},{"inputs":[],"type":"error","name":"InvalidInitialization"},{"inputs":[],"type":"error","name":"MissingRoleHolders"},{"inputs":[],"type":"error","name":"NotInitialized"},{"inputs":[],"type":"error","name":"NotInitializing"},{"inputs":[],"type":"error","name":"NotNetwork"},{"inputs":[],"type":"error","name":"NotOperator"},{"inputs":[],"type":"error","name":"NotSlasher"},{"inputs":[],"type":"error","name":"NotVault"},{"inputs":[],"type":"error","name":"ReentrancyGuardReentrantCall"},{"inputs":[{"internalType":"uint8","name":"bits","type":"uint8"},{"internalType":"uint256","name":"value","type":"uint256"}],"type":"error","name":"SafeCastOverflowedUintDowncast"},{"inputs":[],"type":"error","name":"ZeroAddressRoleHolder"},{"inputs":[{"internalType":"uint64","name":"version","type":"uint64","indexed":false}],"type":"event","name":"Initialized","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32","indexed":true},{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false},{"internalType":"uint48","name":"captureTimestamp","type":"uint48","indexed":false}],"type":"event","name":"OnSlash","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"bytes32","name":"previousAdminRole","type":"bytes32","indexed":true},{"internalType":"bytes32","name":"newAdminRole","type":"bytes32","indexed":true}],"type":"event","name":"RoleAdminChanged","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"address","name":"sender","type":"address","indexed":true}],"type":"event","name":"RoleGranted","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"address","name":"sender","type":"address","indexed":true}],"type":"event","name":"RoleRevoked","anonymous":false},{"inputs":[{"internalType":"address","name":"hook","type":"address","indexed":true}],"type":"event","name":"SetHook","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"SetMaxNetworkLimit","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"SetNetworkLimit","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"DEFAULT_ADMIN_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"FACTORY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"HOOK_GAS_LIMIT","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"HOOK_RESERVE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"HOOK_SET_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"NETWORK_LIMIT_SET_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"NETWORK_REGISTRY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"OPERATOR_NETWORK_OPT_IN_SERVICE","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"OPERATOR_REGISTRY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"OPERATOR_VAULT_OPT_IN_SERVICE","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"TYPE","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"VAULT_FACTORY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"VERSION","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getRoleAdmin","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"grantRole"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"hasRole","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"hook","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"}],"stateMutability":"view","type":"function","name":"maxNetworkLimit","outputs":[{"internalType":"uint256","name":"value","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"}],"stateMutability":"view","type":"function","name":"networkLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"uint48","name":"timestamp","type":"uint48"},{"internalType":"bytes","name":"hint","type":"bytes"}],"stateMutability":"view","type":"function","name":"networkLimitAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint48","name":"captureTimestamp","type":"uint48"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"onSlash"},{"inputs":[],"stateMutability":"view","type":"function","name":"operator","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"callerConfirmation","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"renounceRole"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"revokeRole"},{"inputs":[{"internalType":"address","name":"hook_","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setHook"},{"inputs":[{"internalType":"uint96","name":"identifier","type":"uint96"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setMaxNetworkLimit"},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setNetworkLimit"},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"stake","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint48","name":"timestamp","type":"uint48"},{"internalType":"bytes","name":"hints","type":"bytes"}],"stateMutability":"view","type":"function","name":"stakeAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"staticDelegateCall"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"vault","outputs":[{"internalType":"address","name":"","type":"address"}]}],"devdoc":{"kind":"dev","methods":{"VERSION()":{"details":"Must return 1 for this one.","returns":{"_0":"version of the delegator"}},"getRoleAdmin(bytes32)":{"details":"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}."},"grantRole(bytes32,address)":{"details":"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event."},"hasRole(bytes32,address)":{"details":"Returns `true` if `account` has been granted `role`."},"initialize(bytes)":{"params":{"data":"some data to use"}},"networkLimit(bytes32)":{"params":{"subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"},"returns":{"_0":"limit of the subnetwork"}},"networkLimitAt(bytes32,uint48,bytes)":{"params":{"hint":"hint for checkpoint index","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)","timestamp":"time point to get the subnetwork limit at"},"returns":{"_0":"limit of the subnetwork at the given timestamp"}},"onSlash(bytes32,address,uint256,uint48,bytes)":{"details":"Only the vault's slasher can call this function.","params":{"amount":"amount of the collateral slashed","captureTimestamp":"time point when the stake was captured","data":"some additional data","operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"}},"renounceRole(bytes32,address)":{"details":"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `callerConfirmation`. May emit a {RoleRevoked} event."},"revokeRole(bytes32,address)":{"details":"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event."},"setHook(address)":{"details":"Only a HOOK_SET_ROLE holder can call this function. The hook can have arbitrary logic under certain functions, however, it doesn't affect the stake guarantees.","params":{"hook":"address of the hook"}},"setMaxNetworkLimit(uint96,uint256)":{"details":"Only a network can call this function.","params":{"amount":"new maximum subnetwork's limit"}},"setNetworkLimit(bytes32,uint256)":{"details":"Only a NETWORK_LIMIT_SET_ROLE holder can call this function.","params":{"amount":"new limit of the subnetwork","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"}},"stake(bytes32,address)":{"details":"Warning: this function is not safe to use for stake capturing, as it can change by the end of the block.","params":{"operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"},"returns":{"_0":"slashable stake until the end of the next epoch"}},"stakeAt(bytes32,address,uint48,bytes)":{"details":"Warning: it is not safe to use timestamp >= current one for the stake capturing, as it can change later.","params":{"hints":"hints for the checkpoints' indexes","operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)","timestamp":"time point to capture the stake at"},"returns":{"_0":"slashable stake at the given timestamp until the end of the consequent epoch"}},"staticDelegateCall(address,bytes)":{"details":"It allows to use this contract's storage on-chain.","params":{"data":"data to make a delegatecall with","target":"address of the contract to make a delegatecall to"}},"supportsInterface(bytes4)":{"details":"See {IERC165-supportsInterface}."}},"version":1},"userdoc":{"kind":"user","methods":{"FACTORY()":{"notice":"Get the factory's address."},"HOOK_GAS_LIMIT()":{"notice":"Get a gas limit for the hook."},"HOOK_RESERVE()":{"notice":"Get a reserve gas between the gas limit check and the hook's execution."},"HOOK_SET_ROLE()":{"notice":"Get a hook setter's role."},"NETWORK_LIMIT_SET_ROLE()":{"notice":"Get a subnetwork limit setter's role."},"NETWORK_REGISTRY()":{"notice":"Get the network registry's address."},"OPERATOR_NETWORK_OPT_IN_SERVICE()":{"notice":"Get the operator-network opt-in service's address."},"OPERATOR_REGISTRY()":{"notice":"Get the operator registry's address."},"OPERATOR_VAULT_OPT_IN_SERVICE()":{"notice":"Get the operator-vault opt-in service's address."},"TYPE()":{"notice":"Get the entity's type."},"VAULT_FACTORY()":{"notice":"Get the vault factory's address."},"VERSION()":{"notice":"Get a version of the delegator (different versions mean different interfaces)."},"hook()":{"notice":"Get the hook's address."},"initialize(bytes)":{"notice":"Initialize this entity contract by using a given data."},"maxNetworkLimit(bytes32)":{"notice":"Get a particular subnetwork's maximum limit (meaning the subnetwork is not ready to get more as a stake)."},"networkLimit(bytes32)":{"notice":"Get a subnetwork's limit (how much stake the vault curator is ready to give to the subnetwork)."},"networkLimitAt(bytes32,uint48,bytes)":{"notice":"Get a subnetwork's limit at a given timestamp using a hint (how much stake the vault curator is ready to give to the subnetwork)."},"onSlash(bytes32,address,uint256,uint48,bytes)":{"notice":"Called when a slash happens."},"operator()":{"notice":"Get an operator managing the vault's funds."},"setHook(address)":{"notice":"Set a new hook."},"setMaxNetworkLimit(uint96,uint256)":{"notice":"Set a maximum limit for a subnetwork (how much stake the subnetwork is ready to get). identifier identifier of the subnetwork"},"setNetworkLimit(bytes32,uint256)":{"notice":"Set a subnetwork's limit (how much stake the vault curator is ready to give to the subnetwork)."},"stake(bytes32,address)":{"notice":"Get a stake that a given subnetwork will be able to slash for a certain operator until the end of the next epoch (if no cross-slashing and no slashings by the subnetwork)."},"stakeAt(bytes32,address,uint48,bytes)":{"notice":"Get a stake that a given subnetwork could be able to slash for a certain operator at a given timestamp until the end of the consequent epoch using hints (if no cross-slashing and no slashings by the subnetwork)."},"staticDelegateCall(address,bytes)":{"notice":"Make a delegatecall from this contract to a given target contract with a particular data (always reverts with a return data)."},"vault()":{"notice":"Get the vault's address."}},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/contracts/delegator/OperatorSpecificDelegator.sol":"OperatorSpecificDelegator"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol":{"keccak256":"0x6662ec4e5cefca03eeadd073e9469df8d2944bb2ee8ec8f7622c2c46aab5f225","urls":["bzz-raw://4d8544c6f8daa4d1bc215c6a72fe0acdb748664a105b0e5efc19295667521d45","dweb:/ipfs/QmdGWqdnXT8S3RgCR6aV8XHZrsybieMQLLnug1NtpSjEXN"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b","urls":["bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609","dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol":{"keccak256":"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397","urls":["bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9","dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardUpgradeable.sol":{"keccak256":"0xb44e086e941292cdc7f440de51478493894ef0b1aeccb0c4047445919f667f74","urls":["bzz-raw://942dad22fbdc1669f025540ba63aa3ccfad5f8458fc5d4525b31ebf272e7af45","dweb:/ipfs/Qmdo4X2M82aM3AMoW2kf2jhYkSCyC4T1pHNd6obdsDFnAB"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol":{"keccak256":"0xdaba3f7c42c55b2896353f32bd27d4d5f8bae741b3b05d4c53f67abc4dc47ce8","urls":["bzz-raw://1fa2e61141c602510bcd2cd936ed9561922ac8772a9b9c9a9db091a74e354a45","dweb:/ipfs/QmcHQDDoEBwJmwUbzoVkytvJsBx3KVHYFFnDkvRGWh9Wmh"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol":{"keccak256":"0xb6b36edd6a2999fd243ff226d6cbf84bd71af2432bbd0dfe19392996a1d9cb41","urls":["bzz-raw://1fd2f35495652e57e3f99bc6c510bc5f7dd398a176ea2e72d8ed730aebc6ca26","dweb:/ipfs/QmTQV6X4gkikTib49cho5iDX3JvSQbdsoEChoDwrk3CbbH"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b","urls":["bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df","dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d","urls":["bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875","dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol":{"keccak256":"0xe19a4d5f31d2861e7344e8e535e2feafb913d806d3e2b5fe7782741a2a7094fe","urls":["bzz-raw://4aed79c0fa6f0546ed02f2f683e8f77f0fd2ed7eb34d8bbf3d373c9a6d95b13c","dweb:/ipfs/QmWqVz6UAVqmnWU5pqYPt1o6iDEZyPaBraAA3rKfTTSfYj"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/Checkpoints.sol":{"keccak256":"0xbdc5e074d7dd6678f67e92b1a51a20226801a407b0e1af3da367c5d1ff4519ad","urls":["bzz-raw://a36cca6b22fff3db16fc789ff6c60eea71d4b156065d4d0c83a0bc5e91a77a8b","dweb:/ipfs/QmYN3exd5AemxjBrN8XMB1p5LbbE16uC3sjbYjwi8AjcGR"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/types/Time.sol":{"keccak256":"0xc7755af115020049e4140f224f9ee88d7e1799ffb0646f37bf0df24bf6213f58","urls":["bzz-raw://7f09bf94d5274334ec021f61a04659db303f31e60460e14b709c9bf187740111","dweb:/ipfs/QmNvgomZYUwFAt4cZbPWAiTeSZQreGehY9BK5xyVJsUttb"],"license":"MIT"},"src/contracts/common/Entity.sol":{"keccak256":"0x3d61a932995b8443381f3950542d388223a2c26dd5d29a3274dea3baa7388bd7","urls":["bzz-raw://7cdf5f03ca72fd263fd32ff59c8d88ddca911ae83896a287d10772c1bbe9b138","dweb:/ipfs/QmbP84r5BWT1Rn9AYTntWSf3xUMTTCohTZJFhbBhDXFoHa"],"license":"BUSL-1.1"},"src/contracts/common/StaticDelegateCallable.sol":{"keccak256":"0x350029aa8955eacaffffaeb58babc5c98e80ebc5c5db388ed17ee6465f4a9d90","urls":["bzz-raw://eb392a8ee9050e0af606897df63e3404e3829e8b688b580663892f9664195764","dweb:/ipfs/QmaXC8jqV8UrrAFkzXTEv2fJF56sy33HhLxAzaRZmUxuXD"],"license":"BUSL-1.1"},"src/contracts/delegator/BaseDelegator.sol":{"keccak256":"0x7c54d491fdd4415b764a9c8defa068e56d4c0c8c9419be0053a1d377669290e8","urls":["bzz-raw://9238bfbad0f6eeb0dc7727724de14380f1980b395902269703d5e2ef07e52e10","dweb:/ipfs/QmPJn1V4HNXcEghYvogGuSTF24dSQUPosR5qtsXcmNqRm3"],"license":"BUSL-1.1"},"src/contracts/delegator/OperatorSpecificDelegator.sol":{"keccak256":"0x630ce62fa30b9f3349ab7a8cf8dbf041319febc6dd757be2f94d3d25944ed328","urls":["bzz-raw://c2ac59d47ce57d2a6819ae9833e1a618a371eccff93eb5ab367b201b01f42bfa","dweb:/ipfs/QmdBpGMBivpNPv2WbH8vnCUy5xkVeaxQvGgqi33vKCz1kA"],"license":"BUSL-1.1"},"src/contracts/libraries/Checkpoints.sol":{"keccak256":"0xba90097c8bfe0a975499428b5f8ac5569483c7d92ccc28c12d70de416aae040c","urls":["bzz-raw://12f5d93ca94cd06d3147db68993165a58e17903ed53682560de61f3085ad4609","dweb:/ipfs/QmePiuAqvXprMLmFZkGZeGjvGPAvsEDHfCDv7BoQhXu9xE"],"license":"MIT"},"src/contracts/libraries/Subnetwork.sol":{"keccak256":"0xf5ef5506fd66082b3c2e7f3df37529f5a8efad32ac62e7c8914bd63219190bfe","urls":["bzz-raw://ba031a54ee0d0e9a270c2b9e18437f5668cfeb659cfd5fe0677459d7fcac2a56","dweb:/ipfs/QmReP3H7qQ78tAfgLnJKsNEQNCQfF1X1Get38Ffd4kzq32"],"license":"MIT"},"src/interfaces/common/IEntity.sol":{"keccak256":"0x8ef4b63d6da63489778ccd5f8d13ebdd527dd4b62730b2c616df5af7474d2d21","urls":["bzz-raw://5a8d69576a9219d85c50816a18ad53a4d53cfcb27ed38b8cccc808dc2734b71b","dweb:/ipfs/QmYVN3P4Q4REvBWJ97TbAcaxm3uyB2anV6NSGa6ZtSwcEv"],"license":"MIT"},"src/interfaces/common/IMigratableEntity.sol":{"keccak256":"0x8f5f2809f3afbe8ebfbb365dd7b57b4dd3b6f9943a6187eaf648d45895b8e3c4","urls":["bzz-raw://0ffe640537d539e7a4fde70d30d3e4c57f4ba9c2c25c450cea713aae38e8fd5c","dweb:/ipfs/QmSUTGzvdcn1R1KB7tLThMRtESsfPbeXDhhhKWGtntzBds"],"license":"MIT"},"src/interfaces/common/IRegistry.sol":{"keccak256":"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb","urls":["bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014","dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK"],"license":"MIT"},"src/interfaces/common/IStaticDelegateCallable.sol":{"keccak256":"0xa335d4e81b9071b7de66ef92b43ff20671d86516eb1be46fef29a3483cd3f5d5","urls":["bzz-raw://d464b9db863c14c05547d2b23352f2e9b7b784799cf09f6bbc4906a2a74e3516","dweb:/ipfs/QmUVWzFvJz7eEbDQKiFTTzwi7TEbjcs3VmwdM4kuptAKvi"],"license":"MIT"},"src/interfaces/delegator/IBaseDelegator.sol":{"keccak256":"0x96bb312f032e17accce3f8f80936d99468029d6b37c9ca74acdb4b026a0148ee","urls":["bzz-raw://2a66dcb5b7d1a6ef6a363431ea98ebd78bc4fdd3d7a134d9b542dc66e7d025c2","dweb:/ipfs/QmRhTPLd2ZAyRHmJUFUcWKs9b3if49QY17LYZuRqWmghw8"],"license":"MIT"},"src/interfaces/delegator/IDelegatorHook.sol":{"keccak256":"0xc51aa8d7d1f6c8043ee819b7aeb86da0e993912e1442098df897e299f01f9f46","urls":["bzz-raw://adddf5cb2ba282aeb576b26efb28640f865a1721cc9b6eee8b3ee0457a2c9780","dweb:/ipfs/QmNYgAmnLRwWZbhTuQhZs9rx4zcme1df5mEepkrniorSoW"],"license":"MIT"},"src/interfaces/delegator/IOperatorSpecificDelegator.sol":{"keccak256":"0x72075cab585dc17240cc3e32bc99b92f0d5627ddd988fed680e3e1a52d5a01e4","urls":["bzz-raw://7448bc90699409ae61d85216b5efc2143a37f0f73354be2aea993bc54afca441","dweb:/ipfs/QmXE4gAxM8pHosZK8mcTcj17puBx484meDCcmrDePskGHZ"],"license":"MIT"},"src/interfaces/service/IOptInService.sol":{"keccak256":"0x76fb5460a6d87a5705433d4fbeff7253cd75b8bbd0c888b2088f16e86ace146a","urls":["bzz-raw://990322019b3d11465f7024bae77ccbf7e2fe5d6fa3c754584778f37d04fa1337","dweb:/ipfs/QmaSNHzcqxTkUCG9a4nqVfLECHLdjdrwAnDi3yDC7tDL24"],"license":"MIT"},"src/interfaces/vault/IVault.sol":{"keccak256":"0xffee01d383cd4e1a5530c614bf4360c1ef070c288abec9da1eb531b51bc07235","urls":["bzz-raw://04f0046cac285d8ec44ebbb1f79dc94fab4495767190cad8364fbc1fafaadfb9","dweb:/ipfs/QmUawAunwzXfCyShWfhKeThAgKtqe51hmrxvrXvM772M2R"],"license":"MIT"},"src/interfaces/vault/IVaultStorage.sol":{"keccak256":"0x592626f13754194f83047135de19229c49390bd59e34659b1bb38be71d973a22","urls":["bzz-raw://06a6a9dfddd05e580b32bebe2cff4f63ba26a653180676d58225dd30d9c89d3e","dweb:/ipfs/QmdgzBeY6Sxo8mGtyBxtv1tM1c2kU6J6zjeRd7vuXm4DU6"],"license":"MIT"}},"version":1},"id":80} \ No newline at end of file diff --git a/out/OptInService.sol/OptInService.json b/out/OptInService.sol/OptInService.json index 06286cf7..6b874204 100644 --- a/out/OptInService.sol/OptInService.json +++ b/out/OptInService.sol/OptInService.json @@ -1 +1 @@ -{"abi":[{"type":"constructor","inputs":[{"name":"whoRegistry","type":"address","internalType":"address"},{"name":"whereRegistry","type":"address","internalType":"address"},{"name":"name","type":"string","internalType":"string"}],"stateMutability":"nonpayable"},{"type":"function","name":"WHERE_REGISTRY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"WHO_REGISTRY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"eip712Domain","inputs":[],"outputs":[{"name":"fields","type":"bytes1","internalType":"bytes1"},{"name":"name","type":"string","internalType":"string"},{"name":"version","type":"string","internalType":"string"},{"name":"chainId","type":"uint256","internalType":"uint256"},{"name":"verifyingContract","type":"address","internalType":"address"},{"name":"salt","type":"bytes32","internalType":"bytes32"},{"name":"extensions","type":"uint256[]","internalType":"uint256[]"}],"stateMutability":"view"},{"type":"function","name":"increaseNonce","inputs":[{"name":"where","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"isOptedIn","inputs":[{"name":"who","type":"address","internalType":"address"},{"name":"where","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isOptedInAt","inputs":[{"name":"who","type":"address","internalType":"address"},{"name":"where","type":"address","internalType":"address"},{"name":"timestamp","type":"uint48","internalType":"uint48"},{"name":"hint","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"nonces","inputs":[{"name":"who","type":"address","internalType":"address"},{"name":"where","type":"address","internalType":"address"}],"outputs":[{"name":"nonce","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"optIn","inputs":[{"name":"where","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"optIn","inputs":[{"name":"who","type":"address","internalType":"address"},{"name":"where","type":"address","internalType":"address"},{"name":"deadline","type":"uint48","internalType":"uint48"},{"name":"signature","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"optOut","inputs":[{"name":"who","type":"address","internalType":"address"},{"name":"where","type":"address","internalType":"address"},{"name":"deadline","type":"uint48","internalType":"uint48"},{"name":"signature","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"optOut","inputs":[{"name":"where","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"staticDelegateCall","inputs":[{"name":"target","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"EIP712DomainChanged","inputs":[],"anonymous":false},{"type":"event","name":"IncreaseNonce","inputs":[{"name":"who","type":"address","indexed":true,"internalType":"address"},{"name":"where","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"OptIn","inputs":[{"name":"who","type":"address","indexed":true,"internalType":"address"},{"name":"where","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"OptOut","inputs":[{"name":"who","type":"address","indexed":true,"internalType":"address"},{"name":"where","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"error","name":"AlreadyOptedIn","inputs":[]},{"type":"error","name":"CheckpointUnorderedInsertion","inputs":[]},{"type":"error","name":"ExpiredSignature","inputs":[]},{"type":"error","name":"InvalidShortString","inputs":[]},{"type":"error","name":"InvalidSignature","inputs":[]},{"type":"error","name":"NotOptedIn","inputs":[]},{"type":"error","name":"NotWhereEntity","inputs":[]},{"type":"error","name":"NotWho","inputs":[]},{"type":"error","name":"OptOutCooldown","inputs":[]},{"type":"error","name":"SafeCastOverflowedUintDowncast","inputs":[{"name":"bits","type":"uint8","internalType":"uint8"},{"name":"value","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"StringTooLong","inputs":[{"name":"str","type":"string","internalType":"string"}]}],"bytecode":{"object":"0x6101a0604090808252346101dc57611c85803803809161001f82856101e0565b833981016060828203126101dc5761003682610203565b6020610043818501610203565b848601516001600160401b03959194918682116101dc57019181601f840112156101dc5782518681116101c857875193610086601f8301601f19168401866101e0565b818552828501938383830101116101dc57815f9284809301865e85010152865190878201828110888211176101c857885260018252808201603160f81b81526100ce85610217565b936101209485526100de846103ae565b95610140968752519020928360e0525190209761010098808a524660a0528151928301937f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f85528284015260608301524660808301523060a083015260a0825260c0820197828910908911176101c8578790525190206080523060c0526101609283526101809384526117a095866104e5873960805186611222015260a051866112dd015260c051866111ec015260e0518661127101525185611297015251846102dd015251836103060152518281816105d90152610c3901525181818161024e0152610c8c0152f35b634e487b7160e01b5f52604160045260245ffd5b5f80fd5b601f909101601f19168101906001600160401b038211908210176101c857604052565b51906001600160a01b03821682036101dc57565b80516020908181101561028d5750601f82511161024f578082519201519080831061024157501790565b825f19910360031b1b161790565b60448260405192839163305a27a960e01b83528160048401528051918291826024860152018484015e5f828201840152601f01601f19168101030190fd5b906001600160401b0382116101c8575f54926001938481811c911680156103a4575b8382101461039057601f811161035d575b5081601f84116001146102fb57509282939183925f946102f0575b50501b915f199060031b1c1916175f5560ff90565b015192505f806102db565b919083601f1981165f8052845f20945f905b88838310610343575050501061032b575b505050811b015f5560ff90565b01515f1960f88460031b161c191690555f808061031e565b85870151885590960195948501948793509081019061030d565b5f805284601f845f20920160051c820191601f860160051c015b8281106103855750506102c0565b5f8155018590610377565b634e487b7160e01b5f52602260045260245ffd5b90607f16906102af565b8051602090818110156103d85750601f82511161024f578082519201519080831061024157501790565b9192916001600160401b0381116101c85760019182548381811c911680156104da575b8282101461039057601f81116104a7575b5080601f83116001146104475750819293945f9261043c575b50505f19600383901b1c191690821b17905560ff90565b015190505f80610425565b90601f19831695845f52825f20925f905b8882106104905750508385969710610478575b505050811b01905560ff90565b01515f1960f88460031b161c191690555f808061046b565b808785968294968601518155019501930190610458565b835f5283601f835f20920160051c820191601f850160051c015b8281106104cf57505061040c565b5f81550184906104c1565b90607f16906103fb56fe60806040526004361015610011575f80fd5b5f3560e01c8063220d32d4146100d4578063530e1d43146100cf5780636d0fae4a146100ca5780638247a97c146100c557806384b0196e146100c05780639333fbda146100bb57806393f79bc3146100b65780639f86fd85146100b1578063b1138ad1146100ac578063c4b5d62c146100a7578063ced44ba7146100a25763d46104831461009d575f80fd5b6106cc565b610608565b6105c4565b6105a2565b610511565b610412565b6103bb565b6102c5565b61027d565b610239565b6101d3565b610109565b600435906001600160a01b03821682036100ef57565b5f80fd5b602435906001600160a01b03821682036100ef57565b346100ef5760403660031901126100ef5760206101356101276100d9565b61012f6100f3565b906106ee565b6040519015158152f35b9181601f840112156100ef5782359167ffffffffffffffff83116100ef57602083818601950101116100ef57565b9060806003198301126100ef576001600160a01b039160043583811681036100ef579260243590811681036100ef579160443565ffffffffffff811681036100ef57916064359067ffffffffffffffff82116100ef576101cf9160040161013f565b9091565b346100ef576020600161022961022f61021a6101ee3661016d565b969290949193888060a01b03165f526003895260405f209060018060a01b03165f5260205260405f2090565b92868060d01b0395369161080b565b916108c3565b1614604051908152f35b346100ef575f3660031901126100ef576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346100ef5760203660031901126100ef5761029f6102996100d9565b336109bf565b005b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b346100ef575f3660031901126100ef5761035e6103017f0000000000000000000000000000000000000000000000000000000000000000610e2a565b61032a7f0000000000000000000000000000000000000000000000000000000000000000610f28565b6040519061033782610786565b5f825261036c602091604051958695600f60f81b875260e0602088015260e08701906102a1565b9085820360408701526102a1565b4660608501523060808501525f60a085015283810360c0850152602080845192838152019301915f5b8281106103a457505050500390f35b835185528695509381019392810192600101610395565b346100ef5760403660031901126100ef5760206104096103d96100d9565b6103e16100f3565b6001600160a01b039182165f9081526002855260408082209290931681526020919091522090565b54604051908152f35b346100ef576104203661016d565b909165ffffffffffff8061043342610ff1565b1691169081106104ff576104df926104d06104d89260018060a01b0380891691825f5260026020526104788960405f209060018060a01b03165f5260205260405f2090565b546040519260208401947f7830334d17a05ab8aeca8f1778e27182208fc2d454ac7b38a4edc2069ee3a4a6865260408501528a166060840152608083015260a082015260a081526104c8816107a2565b519020611023565b92369161080b565b9084610a15565b156104ed5761029f91610af1565b604051638baa579f60e01b8152600490fd5b60405163df4cc36d60e01b8152600490fd5b346100ef5760403660031901126100ef5761052a6100d9565b60243567ffffffffffffffff81116100ef575f9161054d8392369060040161013f565b90816040519283928337810184815203915af461059a61056b610841565b9161058c6040519384921515602084015260408084015260608301906102a1565b03601f1981018352826107be565b805190602001fd5b346100ef5760203660031901126100ef5761029f6105be6100d9565b33610c0d565b346100ef575f3660031901126100ef576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346100ef576106163661016d565b909165ffffffffffff8061062942610ff1565b1691169081106104ff576106be926104d06104d89260018060a01b0380891691825f52600260205261066e8960405f209060018060a01b03165f5260205260405f2090565b546040519260208401947f6ab5200f1123a8d51d1695a9e5e757267926b53c6359f90b8873cc7dcc30ea2c865260408501528a166060840152608083015260a082015260a081526104c8816107a2565b156104ed5761029f91610c0d565b346100ef5760203660031901126100ef5761029f6106e86100d9565b33610af1565b6001600160a01b039081165f908152600360209081526040808320939094168252919091522080548061072c57505060015f5b818060d01b03161490565b5f1990808281011161074c576001925f5260205f2001015460301c610721565b61088c565b634e487b7160e01b5f52604160045260245ffd5b6040810190811067ffffffffffffffff82111761078157604052565b610751565b6020810190811067ffffffffffffffff82111761078157604052565b60c0810190811067ffffffffffffffff82111761078157604052565b90601f8019910116810190811067ffffffffffffffff82111761078157604052565b604051906107ed82610765565b565b67ffffffffffffffff811161078157601f01601f191660200190565b929192610817826107ef565b9161082560405193846107be565b8294818452818301116100ef578281602093845f960137010152565b3d1561086b573d90610852826107ef565b9161086060405193846107be565b82523d5f602084013e565b606090565b908160209103126100ef575163ffffffff811681036100ef5790565b634e487b7160e01b5f52601160045260245ffd5b5f1981019190821161074c57565b90600163ffffffff8093160191821161074c57565b918051156109b557806020806108de93518301019101610870565b916108e98382610dd6565b926108fa845165ffffffffffff1690565b9065ffffffffffff808516921682811461099c578211918261093c575b505061092a576109279250611091565b90565b5050602001516001600160d01b031690565b90915061094983546108a0565b63ffffffff831614918215610962575b50505f80610917565b61099491925061097d610977610989926108ae565b85610dd6565b5165ffffffffffff1690565b65ffffffffffff1690565b115f80610959565b50505050602091909101516001600160d01b0316905090565b5061092791611091565b6001600160a01b039081165f8181526002602090815260408083209590941680835294905291822080546001019055907f8ed32926585579e6191b145240df788165f4957e1135f30a00e08ee8feb9d6809080a3565b610a1f8383611049565b506004819592951015610add57159384610ac7575b508315610a42575b50505090565b5f929350908291604051610a7a8161058c6020820194630b135d3f60e11b998a875260248401526040604484015260648301906102a1565b51915afa90610a87610841565b82610ab9575b82610a9d575b50505f8080610a3c565b9091506020818051810103126100ef5760200151145f80610a93565b915060208251101591610a8d565b6001600160a01b0383811691161493505f610a34565b634e487b7160e01b5f52602160045260245ffd5b90610b2d610b2882610b138560018060a01b03165f52600360205260405f2090565b9060018060a01b03165f5260205260405f2090565b611385565b9091506001600160d01b031615610bd85765ffffffffffff80610b4f42610ff1565b16911614610bc657610b87610b7882610b138560018060a01b03165f52600360205260405f2090565b610b8142610ff1565b90611590565b5050610b9381836109bf565b6001600160a01b0390811691167f1629cd9ad365627cf8408d19c50224af8f3213c1a18ae48062d92e22bddf7de55f80a3565b60405163291bf4b760e21b8152600490fd5b6040516334b09b3960e11b8152600490fd5b908160209103126100ef575180151581036100ef5790565b6040513d5f823e3d90fd5b6040516302910f8b60e31b8082526001600160a01b0383811660048401529293916020919082816024817f000000000000000000000000000000000000000000000000000000000000000089165afa908115610d8a575f91610da1575b5015610d8f576040519081526001600160a01b038316600482015281816024817f000000000000000000000000000000000000000000000000000000000000000088165afa918215610d8a575f92610d5d575b505015610d4b57610cce81846106ee565b610d395780610d04610cf58493610b138760018060a01b03165f52600360205260405f2090565b610cfe42610ff1565b9061168f565b5050610d1081856109bf565b1691167f9b730d5b907ee509de729817a2bb37e404418ba569b3a50f36192372f973cb415f80a3565b60405163dcdeaba360e01b8152600490fd5b6040516321f5408d60e01b8152600490fd5b610d7c9250803d10610d83575b610d7481836107be565b810190610bea565b5f80610cbd565b503d610d6a565b610c02565b604051630fb9ff9560e41b8152600490fd5b610db89150833d8511610d8357610d7481836107be565b5f610c6a565b60405190610dcb82610765565b5f6020838281520152565b610dfb91610df591610de6610dbe565b50610def610dbe565b50611170565b50611199565b65ffffffffffff81511690602060018060d01b039101511660405191610e2083610765565b8252602082015290565b60ff8114610e3b57610927906111bd565b506040515f80546001918160011c9260018316908115610f1e575b602090602086108314610f0a5785875286946020860193908115610eeb5750600114610e8c575b505050610927925003826107be565b925093610eb95f80527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e56390565b945f935b828510610ed5575050506109279350015f8080610e7d565b8654858501529586019587955093810193610ebd565b925050506109279491925060ff19168252151560051b015f8080610e7d565b634e487b7160e01b5f52602260045260245ffd5b93607f1693610e56565b60ff8114610f3957610927906111bd565b506040516001805480821c915f90828116908115610fe7575b602090602086108314610f0a5785875286946020860193908115610eeb5750600114610f8757505050610927925003826107be565b925093610fb560015f527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf690565b945f935b828510610fd1575050506109279350015f8080610e7d565b8654858501529586019587955093810193610fb9565b93607f1693610f52565b65ffffffffffff90818111611004571690565b604490604051906306dfcc6560e41b8252603060048301526024820152fd5b60429061102e6111e9565b906040519161190160f01b8352600283015260228201522090565b8151919060418303611079576110729250602082015190606060408401519301515f1a90611303565b9192909190565b50505f9160029190565b906001820180921161074c57565b908154905f918060058111611127575b50915b8281106110da575050806110b85750505f90565b610927916110c86110d3926108a0565b905f5260205f200190565b5460301c90565b90918082169080831860011c820180921161074c57845f5265ffffffffffff808360205f20015416908516105f146111155750915b906110a4565b92915061112190611083565b9061110f565b90611131826113f2565b820391821161074c57845f5265ffffffffffff808360205f20015416908416105f1461115f57505b5f6110a1565b925061116a90611083565b91611159565b8054821015611185575f5260205f2001905f90565b634e487b7160e01b5f52603260045260245ffd5b906040516111a681610765565b915465ffffffffffff8116835260301c6020830152565b60ff811690601f82116111d75760405191610e2083610765565b604051632cd44ac360e21b8152600490fd5b307f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031614806112da575b15611244577f000000000000000000000000000000000000000000000000000000000000000090565b60405160208101907f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f82527f000000000000000000000000000000000000000000000000000000000000000060408201527f000000000000000000000000000000000000000000000000000000000000000060608201524660808201523060a082015260a081526112d4816107a2565b51902090565b507f0000000000000000000000000000000000000000000000000000000000000000461461121b565b91907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0841161137a579160209360809260ff5f9560405194855216868401526040830152606082015282805260015afa15610d8a575f516001600160a01b0381161561137057905f905f90565b505f906001905f90565b5050505f9160039190565b8054806113965750505f905f905f90565b5f1990808281011161074c576113b3925f5260205f200101611199565b9065ffffffffffff82511691602060018060d01b0391015116906001929190565b81156113de570490565b634e487b7160e01b5f52601260045260245ffd5b801561152b57806114c46114bd6114b36114a961149f61149561148b61148160016109279a5f908b60801c8061151f575b508060401c80611512575b508060201c80611505575b508060101c806114f8575b508060081c806114eb575b508060041c806114de575b508060021c806114d1575b50821c6114ca575b811c1b61147a818b6113d4565b0160011c90565b61147a818a6113d4565b61147a81896113d4565b61147a81886113d4565b61147a81876113d4565b61147a81866113d4565b61147a81856113d4565b80926113d4565b90611758565b810161146d565b600291509101905f611465565b600491509101905f61145a565b600891509101905f61144f565b601091509101905f611444565b602091509101905f611439565b604091509101905f61142e565b9150506080905f611423565b505f90565b8054680100000000000000008110156107815761155291600182018155611170565b91909161157d57805160209091015160301b65ffffffffffff191665ffffffffffff91909116179055565b634e487b7160e01b5f525f60045260245ffd5b805490811561166d576115b86115b36115a8846108a0565b835f5260205f200190565b611199565b906115c9825165ffffffffffff1690565b65ffffffffffff858116949116841061165b57611628946020946115f6610989865165ffffffffffff1690565b0361162d575061161a916110c861160c926108a0565b65ffffffffffff8154169055565b01516001600160d01b031690565b905f90565b90506116569161164c61163e6107e0565b65ffffffffffff9093168352565b5f85830152611530565b61161a565b604051632520601d60e01b8152600490fd5b61168992915061167e61163e6107e0565b5f6020830152611530565b5f905f90565b8054908115611734576116a76115b36115a8846108a0565b906116b8825165ffffffffffff1690565b65ffffffffffff858116949116841061165b57611712946020946116e5610989865165ffffffffffff1690565b03611718575061161a916110c86116fb926108a0565b660100000000000065ffffffffffff825416179055565b90600190565b90506116569161172961163e6107e0565b600182860152611530565b61175192915061174561163e6107e0565b60016020830152611530565b5f90600190565b9080821015611765575090565b90509056fea2646970667358221220d08a62079d1131e45276e2c77bac54e5153d28c3ca2f82717b7a540da37abe8c64736f6c63430008190033","sourceMap":"583:4371:96:-:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;-1:-1:-1;;;;;583:4371:96;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;583:4371:96;;;;;:::i;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;583:4371:96;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;583:4371:96;;3401:45:53;;;:::i;:::-;3393:53;;;;;3467:51;;;:::i;:::-;3456:62;;;;;583:4371:96;3542:22:53;;3528:36;;;;583:4371:96;3591:25:53;;3574:42;;;;;;3644:13;3627:30;;583:4371:96;;4204:80:53;;;2079:95;;;;;;;;583:4371:96;2079:95:53;;;3644:13;2079:95;;;;4278:4;3627:30;2079:95;;;3627:30;4204:80;;2079:95;583:4371:96;;;;;;;;;;;;;;;;4194:91:53;;2079:95;3667:48;4278:4;2079:95;3725:27;1675:26:96;;;;1711:30;;;;583:4371;;;;;;2079:95:53;583:4371:96;;;;;3627:30:53;583:4371:96;;;;;2079:95:53;583:4371:96;;;;;3528:36:53;583:4371:96;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;583:4371:96;;;;;-1:-1:-1;583:4371:96;;-1:-1:-1;583:4371:96;;;;;;;-1:-1:-1;;583:4371:96;;;;-1:-1:-1;;;;;583:4371:96;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;583:4371:96;;;;;;:::o;2914:340:49:-;583:4371:96;;3059:2:49;;3037:24;;;3059:2;;;583:4371:96;1854:2:49;583:4371:96;;1840:16:49;1836:72;;583:4371:96;;;;;2079:95:53;583:4371:96;;;;;;1949:36:49;;3077:27;:::o;583:4371:96:-;;;;;;;;;;1949:36:49;3077:27;:::o;1836:72::-;583:4371:96;;;;1879:18:49;;;;;;;;;;;;583:4371:96;;;;;;;;;;;;;;;;3432:13:53;583:4371:96;;;;;;1854:2:49;583:4371:96;-1:-1:-1;;583:4371:96;;;1879:18:49;;;;3033:215;583:4371:96;-1:-1:-1;;;;;583:4371:96;;;;3432:13:53;583:4371:96;;;;;;;;;;;;;;3033:215:49;583:4371:96;;;;;;;;;;;3033:215:49;583:4371:96;;;;;;;;;;;;;;;;3432:13:53;583:4371:96;;;;;;;;;;;;;;;;;3432:13:53;583:4371:96;1390:66:49;3195:42;:::o;583:4371:96:-;;;;-1:-1:-1;583:4371:96;;;;;;;;;;;;3432:13:53;583:4371:96;;;3432:13:53;583:4371:96;;3432:13:53;583:4371:96;;;;;;;;;;;;;;;;;;;;;3432:13:53;583:4371:96;1390:66:49;3195:42;:::o;583:4371:96:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;583:4371:96;;;;;;;3432:13:53;583:4371:96;;;;;3432:13:53;583:4371:96;;;;;;;;;;;;;;;;;;;;;;;;;3432:13:53;583:4371:96;;;;;;;;;;;3432:13:53;583:4371:96;;;;;3432:13:53;583:4371:96;;;;;;;;2914:340:49;583:4371:96;;3059:2:49;;3037:24;;;3059:2;;;583:4371:96;1854:2:49;583:4371:96;;1840:16:49;1836:72;;583:4371:96;;;;;2079:95:53;583:4371:96;;;;;;1949:36:49;;3077:27;:::o;3033:215::-;583:4371:96;;;-1:-1:-1;;;;;583:4371:96;;;;;;;;;;;;;;;;;;3033:215:49;583:4371:96;;;;;;;;;;;3033:215:49;583:4371:96;;;;;;;;;;;;;;-1:-1:-1;583:4371:96;;;;-1:-1:-1;;;;583:4371:96;;;;;;;;;;;;;1390:66:49;;3195:42::o;583:4371:96:-;;;;-1:-1:-1;583:4371:96;;;;;;;;;;;;-1:-1:-1;583:4371:96;;-1:-1:-1;583:4371:96;;-1:-1:-1;583:4371:96;;;;;;;;;;;;;;;;;;;;;;;;;1390:66:49;3195:42;:::o;583:4371:96:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;583:4371:96;;;;-1:-1:-1;583:4371:96;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;583:4371:96;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361015610011575f80fd5b5f3560e01c8063220d32d4146100d4578063530e1d43146100cf5780636d0fae4a146100ca5780638247a97c146100c557806384b0196e146100c05780639333fbda146100bb57806393f79bc3146100b65780639f86fd85146100b1578063b1138ad1146100ac578063c4b5d62c146100a7578063ced44ba7146100a25763d46104831461009d575f80fd5b6106cc565b610608565b6105c4565b6105a2565b610511565b610412565b6103bb565b6102c5565b61027d565b610239565b6101d3565b610109565b600435906001600160a01b03821682036100ef57565b5f80fd5b602435906001600160a01b03821682036100ef57565b346100ef5760403660031901126100ef5760206101356101276100d9565b61012f6100f3565b906106ee565b6040519015158152f35b9181601f840112156100ef5782359167ffffffffffffffff83116100ef57602083818601950101116100ef57565b9060806003198301126100ef576001600160a01b039160043583811681036100ef579260243590811681036100ef579160443565ffffffffffff811681036100ef57916064359067ffffffffffffffff82116100ef576101cf9160040161013f565b9091565b346100ef576020600161022961022f61021a6101ee3661016d565b969290949193888060a01b03165f526003895260405f209060018060a01b03165f5260205260405f2090565b92868060d01b0395369161080b565b916108c3565b1614604051908152f35b346100ef575f3660031901126100ef576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346100ef5760203660031901126100ef5761029f6102996100d9565b336109bf565b005b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b346100ef575f3660031901126100ef5761035e6103017f0000000000000000000000000000000000000000000000000000000000000000610e2a565b61032a7f0000000000000000000000000000000000000000000000000000000000000000610f28565b6040519061033782610786565b5f825261036c602091604051958695600f60f81b875260e0602088015260e08701906102a1565b9085820360408701526102a1565b4660608501523060808501525f60a085015283810360c0850152602080845192838152019301915f5b8281106103a457505050500390f35b835185528695509381019392810192600101610395565b346100ef5760403660031901126100ef5760206104096103d96100d9565b6103e16100f3565b6001600160a01b039182165f9081526002855260408082209290931681526020919091522090565b54604051908152f35b346100ef576104203661016d565b909165ffffffffffff8061043342610ff1565b1691169081106104ff576104df926104d06104d89260018060a01b0380891691825f5260026020526104788960405f209060018060a01b03165f5260205260405f2090565b546040519260208401947f7830334d17a05ab8aeca8f1778e27182208fc2d454ac7b38a4edc2069ee3a4a6865260408501528a166060840152608083015260a082015260a081526104c8816107a2565b519020611023565b92369161080b565b9084610a15565b156104ed5761029f91610af1565b604051638baa579f60e01b8152600490fd5b60405163df4cc36d60e01b8152600490fd5b346100ef5760403660031901126100ef5761052a6100d9565b60243567ffffffffffffffff81116100ef575f9161054d8392369060040161013f565b90816040519283928337810184815203915af461059a61056b610841565b9161058c6040519384921515602084015260408084015260608301906102a1565b03601f1981018352826107be565b805190602001fd5b346100ef5760203660031901126100ef5761029f6105be6100d9565b33610c0d565b346100ef575f3660031901126100ef576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346100ef576106163661016d565b909165ffffffffffff8061062942610ff1565b1691169081106104ff576106be926104d06104d89260018060a01b0380891691825f52600260205261066e8960405f209060018060a01b03165f5260205260405f2090565b546040519260208401947f6ab5200f1123a8d51d1695a9e5e757267926b53c6359f90b8873cc7dcc30ea2c865260408501528a166060840152608083015260a082015260a081526104c8816107a2565b156104ed5761029f91610c0d565b346100ef5760203660031901126100ef5761029f6106e86100d9565b33610af1565b6001600160a01b039081165f908152600360209081526040808320939094168252919091522080548061072c57505060015f5b818060d01b03161490565b5f1990808281011161074c576001925f5260205f2001015460301c610721565b61088c565b634e487b7160e01b5f52604160045260245ffd5b6040810190811067ffffffffffffffff82111761078157604052565b610751565b6020810190811067ffffffffffffffff82111761078157604052565b60c0810190811067ffffffffffffffff82111761078157604052565b90601f8019910116810190811067ffffffffffffffff82111761078157604052565b604051906107ed82610765565b565b67ffffffffffffffff811161078157601f01601f191660200190565b929192610817826107ef565b9161082560405193846107be565b8294818452818301116100ef578281602093845f960137010152565b3d1561086b573d90610852826107ef565b9161086060405193846107be565b82523d5f602084013e565b606090565b908160209103126100ef575163ffffffff811681036100ef5790565b634e487b7160e01b5f52601160045260245ffd5b5f1981019190821161074c57565b90600163ffffffff8093160191821161074c57565b918051156109b557806020806108de93518301019101610870565b916108e98382610dd6565b926108fa845165ffffffffffff1690565b9065ffffffffffff808516921682811461099c578211918261093c575b505061092a576109279250611091565b90565b5050602001516001600160d01b031690565b90915061094983546108a0565b63ffffffff831614918215610962575b50505f80610917565b61099491925061097d610977610989926108ae565b85610dd6565b5165ffffffffffff1690565b65ffffffffffff1690565b115f80610959565b50505050602091909101516001600160d01b0316905090565b5061092791611091565b6001600160a01b039081165f8181526002602090815260408083209590941680835294905291822080546001019055907f8ed32926585579e6191b145240df788165f4957e1135f30a00e08ee8feb9d6809080a3565b610a1f8383611049565b506004819592951015610add57159384610ac7575b508315610a42575b50505090565b5f929350908291604051610a7a8161058c6020820194630b135d3f60e11b998a875260248401526040604484015260648301906102a1565b51915afa90610a87610841565b82610ab9575b82610a9d575b50505f8080610a3c565b9091506020818051810103126100ef5760200151145f80610a93565b915060208251101591610a8d565b6001600160a01b0383811691161493505f610a34565b634e487b7160e01b5f52602160045260245ffd5b90610b2d610b2882610b138560018060a01b03165f52600360205260405f2090565b9060018060a01b03165f5260205260405f2090565b611385565b9091506001600160d01b031615610bd85765ffffffffffff80610b4f42610ff1565b16911614610bc657610b87610b7882610b138560018060a01b03165f52600360205260405f2090565b610b8142610ff1565b90611590565b5050610b9381836109bf565b6001600160a01b0390811691167f1629cd9ad365627cf8408d19c50224af8f3213c1a18ae48062d92e22bddf7de55f80a3565b60405163291bf4b760e21b8152600490fd5b6040516334b09b3960e11b8152600490fd5b908160209103126100ef575180151581036100ef5790565b6040513d5f823e3d90fd5b6040516302910f8b60e31b8082526001600160a01b0383811660048401529293916020919082816024817f000000000000000000000000000000000000000000000000000000000000000089165afa908115610d8a575f91610da1575b5015610d8f576040519081526001600160a01b038316600482015281816024817f000000000000000000000000000000000000000000000000000000000000000088165afa918215610d8a575f92610d5d575b505015610d4b57610cce81846106ee565b610d395780610d04610cf58493610b138760018060a01b03165f52600360205260405f2090565b610cfe42610ff1565b9061168f565b5050610d1081856109bf565b1691167f9b730d5b907ee509de729817a2bb37e404418ba569b3a50f36192372f973cb415f80a3565b60405163dcdeaba360e01b8152600490fd5b6040516321f5408d60e01b8152600490fd5b610d7c9250803d10610d83575b610d7481836107be565b810190610bea565b5f80610cbd565b503d610d6a565b610c02565b604051630fb9ff9560e41b8152600490fd5b610db89150833d8511610d8357610d7481836107be565b5f610c6a565b60405190610dcb82610765565b5f6020838281520152565b610dfb91610df591610de6610dbe565b50610def610dbe565b50611170565b50611199565b65ffffffffffff81511690602060018060d01b039101511660405191610e2083610765565b8252602082015290565b60ff8114610e3b57610927906111bd565b506040515f80546001918160011c9260018316908115610f1e575b602090602086108314610f0a5785875286946020860193908115610eeb5750600114610e8c575b505050610927925003826107be565b925093610eb95f80527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e56390565b945f935b828510610ed5575050506109279350015f8080610e7d565b8654858501529586019587955093810193610ebd565b925050506109279491925060ff19168252151560051b015f8080610e7d565b634e487b7160e01b5f52602260045260245ffd5b93607f1693610e56565b60ff8114610f3957610927906111bd565b506040516001805480821c915f90828116908115610fe7575b602090602086108314610f0a5785875286946020860193908115610eeb5750600114610f8757505050610927925003826107be565b925093610fb560015f527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf690565b945f935b828510610fd1575050506109279350015f8080610e7d565b8654858501529586019587955093810193610fb9565b93607f1693610f52565b65ffffffffffff90818111611004571690565b604490604051906306dfcc6560e41b8252603060048301526024820152fd5b60429061102e6111e9565b906040519161190160f01b8352600283015260228201522090565b8151919060418303611079576110729250602082015190606060408401519301515f1a90611303565b9192909190565b50505f9160029190565b906001820180921161074c57565b908154905f918060058111611127575b50915b8281106110da575050806110b85750505f90565b610927916110c86110d3926108a0565b905f5260205f200190565b5460301c90565b90918082169080831860011c820180921161074c57845f5265ffffffffffff808360205f20015416908516105f146111155750915b906110a4565b92915061112190611083565b9061110f565b90611131826113f2565b820391821161074c57845f5265ffffffffffff808360205f20015416908416105f1461115f57505b5f6110a1565b925061116a90611083565b91611159565b8054821015611185575f5260205f2001905f90565b634e487b7160e01b5f52603260045260245ffd5b906040516111a681610765565b915465ffffffffffff8116835260301c6020830152565b60ff811690601f82116111d75760405191610e2083610765565b604051632cd44ac360e21b8152600490fd5b307f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031614806112da575b15611244577f000000000000000000000000000000000000000000000000000000000000000090565b60405160208101907f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f82527f000000000000000000000000000000000000000000000000000000000000000060408201527f000000000000000000000000000000000000000000000000000000000000000060608201524660808201523060a082015260a081526112d4816107a2565b51902090565b507f0000000000000000000000000000000000000000000000000000000000000000461461121b565b91907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0841161137a579160209360809260ff5f9560405194855216868401526040830152606082015282805260015afa15610d8a575f516001600160a01b0381161561137057905f905f90565b505f906001905f90565b5050505f9160039190565b8054806113965750505f905f905f90565b5f1990808281011161074c576113b3925f5260205f200101611199565b9065ffffffffffff82511691602060018060d01b0391015116906001929190565b81156113de570490565b634e487b7160e01b5f52601260045260245ffd5b801561152b57806114c46114bd6114b36114a961149f61149561148b61148160016109279a5f908b60801c8061151f575b508060401c80611512575b508060201c80611505575b508060101c806114f8575b508060081c806114eb575b508060041c806114de575b508060021c806114d1575b50821c6114ca575b811c1b61147a818b6113d4565b0160011c90565b61147a818a6113d4565b61147a81896113d4565b61147a81886113d4565b61147a81876113d4565b61147a81866113d4565b61147a81856113d4565b80926113d4565b90611758565b810161146d565b600291509101905f611465565b600491509101905f61145a565b600891509101905f61144f565b601091509101905f611444565b602091509101905f611439565b604091509101905f61142e565b9150506080905f611423565b505f90565b8054680100000000000000008110156107815761155291600182018155611170565b91909161157d57805160209091015160301b65ffffffffffff191665ffffffffffff91909116179055565b634e487b7160e01b5f525f60045260245ffd5b805490811561166d576115b86115b36115a8846108a0565b835f5260205f200190565b611199565b906115c9825165ffffffffffff1690565b65ffffffffffff858116949116841061165b57611628946020946115f6610989865165ffffffffffff1690565b0361162d575061161a916110c861160c926108a0565b65ffffffffffff8154169055565b01516001600160d01b031690565b905f90565b90506116569161164c61163e6107e0565b65ffffffffffff9093168352565b5f85830152611530565b61161a565b604051632520601d60e01b8152600490fd5b61168992915061167e61163e6107e0565b5f6020830152611530565b5f905f90565b8054908115611734576116a76115b36115a8846108a0565b906116b8825165ffffffffffff1690565b65ffffffffffff858116949116841061165b57611712946020946116e5610989865165ffffffffffff1690565b03611718575061161a916110c86116fb926108a0565b660100000000000065ffffffffffff825416179055565b90600190565b90506116569161172961163e6107e0565b600182860152611530565b61175192915061174561163e6107e0565b60016020830152611530565b5f90600190565b9080821015611765575090565b90509056fea2646970667358221220d08a62079d1131e45276e2c77bac54e5153d28c3ca2f82717b7a540da37abe8c64736f6c63430008190033","sourceMap":"583:4371:96:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;;;-1:-1:-1;;;;;583:4371:96;;;;;;:::o;:::-;;;;;;;;-1:-1:-1;;;;;583:4371:96;;;;;;:::o;:::-;;;;;;-1:-1:-1;;583:4371:96;;;;;;;;:::i;:::-;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;583:4371:96;;;;;-1:-1:-1;;;;;583:4371:96;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;2036:1;583:4371;1975:57;:22;583:4371;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;583:4371:96;1975:10;583:4371;;;-1:-1:-1;583:4371:96;;;;;;;;;;;;;;;;;1975:22;583:4371;;;;;;;;;;:::i;:::-;1975:57;;:::i;:::-;583:4371;1975:62;583:4371;;;;;;;;;;;;-1:-1:-1;;583:4371:96;;;;;;851:39;-1:-1:-1;;;;;583:4371:96;;;;;;;;;;;;-1:-1:-1;;583:4371:96;;;;3493:5;583:4371;;:::i;:::-;3481:10;3493:5;:::i;:::-;583:4371;;;;;;;;;;;;;;;;;;-1:-1:-1;583:4371:96;;;;;;;;-1:-1:-1;;583:4371:96;;;;:::o;:::-;;;;;;-1:-1:-1;;583:4371:96;;;;;6099:41:53;:5;:41;:::i;:::-;6554:47;:8;:47;:::i;:::-;583:4371:96;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;5590:13:53;583:4371:96;;;;5625:4:53;583:4371:96;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;583:4371:96;;;;;;;;6584:16:53;583:4371:96;;;;;;;;;-1:-1:-1;;583:4371:96;;;;;1214:77;583:4371;;:::i;:::-;;;:::i;:::-;-1:-1:-1;;;;;583:4371:96;;;-1:-1:-1;583:4371:96;;;1214:77;583:4371;;;;;;;;;;;;-1:-1:-1;583:4371:96;;;;;;;1214:77;583:4371;;;;;;;;;;;;;;:::i;:::-;;;;837:15:63;819:34;837:15;819:34;:::i;:::-;583:4371:96;;;1469:27;;;1465:83;;3164:88;583:4371;4587:179;583:4371;;;;;;;;;;;;-1:-1:-1;583:4371:96;4713:6;583:4371;;4713:18;583:4371;;-1:-1:-1;583:4371:96;;;;;;;;;;;;;;;;;4713:18;583:4371;;;4644:98;583:4371;4644:98;;583:4371;1082:76;583:4371;;;948:75;;583:4371;;;948:75;;;583:4371;948:75;;;583:4371;948:75;;;;;4644:98;;;;;:::i;:::-;583:4371;4617:139;;4587:179;:::i;:::-;583:4371;;;;:::i;:::-;3164:88;;;:::i;:::-;3163:89;3159:145;;3327:5;;;:::i;3159:145::-;583:4371;;-1:-1:-1;;;3275:18:96;;583:4371;;3275:18;1465:83;583:4371;;-1:-1:-1;;;1519:18:96;;583:4371;;1519:18;583:4371;;;;;;-1:-1:-1;;583:4371:96;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;583:4371:96;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;416:25:80;;;;477:31;416:25;;:::i;:::-;583:4371:96;;;;;;;;;;477:31:80;;583:4371:96;;;;;;;;;;;:::i;:::-;477:31:80;583:4371:96;;477:31:80;;;;;;:::i;:::-;518:79;;;583:4371:96;518:79:80;;583:4371:96;;;;;;-1:-1:-1;;583:4371:96;;;;2370:5;583:4371;;:::i;:::-;2358:10;2370:5;:::i;583:4371::-;;;;;;-1:-1:-1;;583:4371:96;;;;;;758:37;-1:-1:-1;;;;;583:4371:96;;;;;;;;;;;;;:::i;:::-;;;;837:15:63;819:34;837:15;819:34;:::i;:::-;583:4371:96;;;1469:27;;;1465:83;;2610:87;583:4371;4587:179;583:4371;;;;;;;;;;;;-1:-1:-1;583:4371:96;4713:6;583:4371;;4713:18;583:4371;;-1:-1:-1;583:4371:96;;;;;;;;;;;;;;;;;4713:18;583:4371;;;4644:98;583:4371;4644:98;;583:4371;948:75;583:4371;;;948:75;;583:4371;;;948:75;;;583:4371;948:75;;;583:4371;948:75;;;;;4644:98;;;;;:::i;2610:87::-;2609:88;2605:144;;2771:5;;;:::i;583:4371::-;;;;;;-1:-1:-1;;583:4371:96;;;;2923:5;583:4371;;:::i;:::-;2911:10;2923:5;:::i;2099:134::-;-1:-1:-1;;;;;583:4371:96;;;-1:-1:-1;583:4371:96;;;2190:10;583:4371;;;;;;;;;;;;;;;;;;;;;10303:8:61;;;:63;;2225:1:96;-1:-1:-1;10303:63:61;583:4371:96;;;;;;2190:36;2099:134;:::o;10303:63:61:-;583:4371:96;;;;;;;;;;2225:1;14249:109:61;-1:-1:-1;14249:109:61;583:4371:96;-1:-1:-1;14249:109:61;;;583:4371:96;;;10303:63:61;;583:4371:96;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;:::i;:::-;;;;;;;;;;;;;;;:::o;:::-;948:75;583:4371;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;:::o;:::-;;;;;;;;-1:-1:-1;;583:4371:96;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;583:4371:96;;;;;;:::o;:::-;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;-1:-1:-1;583:4371:96;;;;:::o;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;583:4371:96;;;;;;;;:::o;:::-;;;;;;;;;;;;;:::o;1818:604:91:-;;583:4371:96;;1946:17:91;1942:83;;583:4371:96;2049:27:91;583:4371:96;2049:27:91;583:4371:96;;2049:27:91;;;;;;:::i;:::-;2120:14;;;;;:::i;:::-;583:4371:96;;;;;;;;;;;;;;;;2148:22:91;;;2144:77;;2235:21;-1:-1:-1;2235:84:91;;;;1818:604;2231:139;;;;1425:34;;;;:::i;:::-;1818:604;:::o;2231:139::-;-1:-1:-1;;2049:27:91;2342:17;583:4371:96;-1:-1:-1;;;;;583:4371:96;1818:604:91;:::o;2235:84::-;583:4371:96;;;2269:16:91;583:4371:96;;2269:16:91;:::i;:::-;583:4371:96;;;2261:24:91;:57;;;;;2235:84;;;;;;;2261:57;2289:29;2298:8;;;2289:18;2298:8;2289:23;2298:8;;:::i;:::-;2289:18;;:::i;:::-;583:4371:96;;;;;2289:23:91;583:4371:96;;;;2289:29:91;;2261:57;;;;2144:77;-1:-1:-1;;;;2049:27:91;2193:17;;;;583:4371:96;-1:-1:-1;;;;;583:4371:96;;-1:-1:-1;1818:604:91;:::o;1942:83::-;1425:34;;;;:::i;4779:173:96:-;-1:-1:-1;;;;;583:4371:96;;;-1:-1:-1;583:4371:96;;;4876:6;583:4371;;;;;;;;;;;;;;;;;;;;;;;;;;;;4920:25;;-1:-1:-1;4920:25:96;4779:173::o;1039:368:55:-;1211:33;;;;:::i;:::-;583:4371:96;;;;;;;;;;1274:35:55;:58;;;;1039:368;1273:127;;;;;1039:368;1254:146;;;1039:368;:::o;1273:127::-;1283:26;583:4371:96;;;;;;;;2041:60:55;;583:4371:96;2041:60:55;;;;;;;;;;;;;;583:4371:96;;;;;;;;;;;:::i;2041:60:55:-;2010:101;;;;;;;:::i;:::-;2129:42;;;1273:127;2129:134;;;1273:127;;;;;;;;2129:134;583:4371:96;;;2041:60:55;583:4371:96;;;2187:29:55;;583:4371:96;;;;2041:60:55;2187:29;583:4371:96;2187:76:55;2129:134;;;;:42;583:4371:96;;2041:60:55;583:4371:96;;2152:19:55;;2129:42;;;1274:58;-1:-1:-1;;;;;583:4371:96;;;;;1313:19:55;;-1:-1:-1;1274:58:55;;;583:4371:96;;;;1283:26:55;583:4371:96;;;;;1283:26:55;583:4371:96;3991:467;;5260:30:91;4105:22:96;:15;;;583:4371;;;;;;;;4105:10;583:4371;;;;;;;4105:15;583:4371;;;;;;;;;;;;;;;;4105:22;5260:30:91;:::i;:::-;583:4371:96;;-1:-1:-1;;;;;;583:4371:96;4161:16;4157:66;;583:4371;837:15:63;819:34;837:15;819:34;:::i;:::-;583:4371:96;;;4237:35;4233:89;;8167:38:61;4332:22:96;:15;;;583:4371;;;;;;;;4105:10;583:4371;;;;;;;4332:22;819:34:63;837:15;819:34;:::i;:::-;8167:38:61;;:::i;:::-;4411:5:96;;;;;;:::i;:::-;-1:-1:-1;;;;;583:4371:96;;;;;4433:18;-1:-1:-1;;4433:18:96;3991:467::o;4233:89::-;583:4371;;-1:-1:-1;;;4295:16:96;;;;;4157:66;583:4371;;-1:-1:-1;;;4200:12:96;;;;;583:4371;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;3512:473;583:4371;;-1:-1:-1;;;3580:37:96;;;-1:-1:-1;;;;;583:4371:96;;;3580:37;;;583:4371;;;3512:473;3580:37;;583:4371;3580:37;583:4371;;;3590:12;583:4371;;3580:37;;;;;;;-1:-1:-1;3580:37:96;;;3512:473;3579:38;;3575:84;;583:4371;;3674:41;;;-1:-1:-1;;;;;583:4371:96;;3580:37;3674:41;;583:4371;3674:41;583:4371;;;3684:14;583:4371;;3674:41;;;;;;;-1:-1:-1;3674:41:96;;;3512:473;3673:42;;;3669:96;;3779:21;;;;:::i;:::-;3775:75;;3860:15;8167:38:61;3860:22:96;:15;;;;583:4371;;;;;;;;4105:10;583:4371;;;;;;;3860:22;819:34:63;837:15;819:34;:::i;:::-;8167:38:61;;:::i;:::-;3939:5:96;;;;;;:::i;:::-;583:4371;;;3961:17;-1:-1:-1;3961:17:96;;3512:473::o;3775:75::-;583:4371;;-1:-1:-1;;;3823:16:96;;3580:37;;3823:16;3669:96;583:4371;;-1:-1:-1;;;3738:16:96;;3580:37;;3738:16;3674:41;;;;;;-1:-1:-1;3674:41:96;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;;:::i;3575:84::-;583:4371;;-1:-1:-1;;;3640:8:96;;3580:37;;3640:8;3580:37;;;;;;;;;;;;;;:::i;:::-;;;;583:4371;;;;;;;:::i;:::-;-1:-1:-1;583:4371:96;;;;;;;:::o;5573:258:91:-;583:4371:96;5573:258:91;11308:22:61;5573:258:91;583:4371:96;;:::i;:::-;;;;:::i;:::-;;11308:22:61;:::i;:::-;583:4371:96;;:::i;:::-;;;;;;5805:17:91;583:4371:96;;;;;5805:17:91;;583:4371:96;;;;;;;;:::i;:::-;;;5805:17:91;5759:65;;583:4371:96;5573:258:91;:::o;3385:267:49:-;1390:66;3508:46;;1390:66;;3577:15;;;:::i;3504:142::-;583:4371:96;;;;;1390:66:49;;;;;;;;;;;;;;;3504:142;1390:66;;;;;;;;;583:4371:96;;;1390:66:49;;583:4371:96;;;1390:66:49;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;583:4371:96;1390:66:49;;;;;;;583:4371:96;1390:66:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1390:66:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;583:4371:96;;;;1390:66:49;;;;;583:4371:96;1390:66:49;;;;;;;;3385:267;1390:66;3508:46;;1390:66;;3577:15;;;:::i;3504:142::-;-1:-1:-1;583:4371:96;;6584:16:53;1390:66:49;;;;;;-1:-1:-1;;1390:66:49;;;;;;;;3504:142;1390:66;;;;;;;;;583:4371:96;;;1390:66:49;;583:4371:96;;;1390:66:49;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;6584:16:53;1390:66:49;;;;;;;-1:-1:-1;1390:66:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1390:66:49;;;;;;;;;;;;;14291:213:59;583:4371:96;14369:24:59;;;;14365:103;;583:4371:96;14291:213:59;:::o;14365:103::-;583:4371:96;;;;14416:41:59;;;;;;14447:2;14416:41;;;583:4371:96;;;;;14416:41:59;4917:176:53;3515:233:54;4917:176:53;5053:20;;:::i;:::-;3515:233:54;;;;-1:-1:-1;;;3515:233:54;;;;;;;;;;;4917:176:53;:::o;2129:766:52:-;583:4371:96;;;2129:766:52;2276:2;2256:22;;2276:2;;2739:25;2539:180;;;;;;;;;;;;;;;-1:-1:-1;2539:180:52;2739:25;;:::i;:::-;2732:32;;;;;:::o;2252:637::-;2795:83;;2811:1;2795:83;2815:35;2795:83;;:::o;583:4371:96:-;;9856:1:61;583:4371:96;;;;;;;:::o;9441:606:61:-;;583:4371:96;;9594:15:61;9559:17;9619:18;;9658:1;9652:7;;9648:234;;9441:606;9906:53;;12919:10;;;;;;-1:-1:-1;;9977:8:61;;;:63;;9559:17;9441:606;:::o;9977:63::-;9992:48;10025:7;;9992:41;10025:7;;:::i;:::-;9992:41;14249:109;;;;;;14099:265;;9992:41;583:4371:96;;;;;12912:230:61;2900:5:58;;;;;2910;;;;583:4371:96;;;;;;;;;14249:109:61;9559:17;14249:109;583:4371:96;14249:109:61;;;9559:17;14249:109;;583:4371:96;;;;;-1:-1:-1;12996:136:61;583:4371:96;;;13055:10:61;12996:136;;12912:230;;;12996:136;13110:7;;;;;;:::i;:::-;12996:136;;;9648:234;9695:14;;;;:::i;:::-;583:4371:96;;;;;;;14249:109:61;9559:17;14249:109;583:4371:96;14249:109:61;;;9559:17;14249:109;;583:4371:96;;;;;9727:48:61;9723:149;583:4371:96;;;9795:10:61;9723:149;9648:234;;;9723:149;9850:7;;;;;:::i;:::-;9723:149;;;583:4371:96;;;;;;;;-1:-1:-1;1390:66:49;;-1:-1:-1;1390:66:49;583:4371:96;;-1:-1:-1;583:4371:96;:::o;:::-;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::o;2078:405:49:-;2688:4;2652:40;;2706:11;2715:2;2706:11;;2702:69;;583:4371:96;;;;;;:::i;2702:69:49:-;583:4371:96;;-1:-1:-1;;;2740:20:49;;;;;3845:262:53;3929:4;3938:11;-1:-1:-1;;;;;583:4371:96;3921:28:53;;:63;;3845:262;3917:184;;;4007:22;4000:29;:::o;3917:184::-;583:4371:96;;4204:80:53;;;583:4371:96;2079:95:53;583:4371:96;;4226:11:53;583:4371:96;2079:95:53;;583:4371:96;4239:14:53;2079:95;;;583:4371:96;4255:13:53;2079:95;;;583:4371:96;3929:4:53;2079:95;;;583:4371:96;2079:95:53;4204:80;;;;;:::i;:::-;583:4371:96;4194:91:53;;4060:30;:::o;3921:63::-;3970:14;;3953:13;:31;3921:63;;5140:1530:52;;;6199:66;6186:79;;6182:164;;583:4371:96;;;;;;-1:-1:-1;583:4371:96;;;;;;;;;;;;;;;;;;;6457:24:52;;;;;;;;;-1:-1:-1;6457:24:52;-1:-1:-1;;;;;583:4371:96;;6495:20:52;6491:113;;6614:49;-1:-1:-1;6614:49:52;-1:-1:-1;5140:1530:52;:::o;6491:113::-;6531:62;-1:-1:-1;6531:62:52;6457:24;6531:62;-1:-1:-1;6531:62:52;:::o;6182:164::-;6281:54;;;6297:1;6281:54;6301:30;6281:54;;:::o;10552:388:61:-;583:4371:96;;10728:8:61;;;10752:20;;10690:17;10752:20;10690:17;10752:20;10690:17;10752:20;:::o;10724:210::-;583:4371:96;;;;;;;;;;;14249:109:61;10690:17;14249:109;;10690:17;14249:109;;;583:4371:96;:::i;:::-;;;;;;;14249:109:61;583:4371:96;;;;;10911:11:61;;583:4371:96;;10886:37:61;10870:1;10886:37;;;:::o;583:4371:96:-;;;;;;;:::o;:::-;;;;;;;;;;;;8587:1642:58;8658:6;;8654:45;;9401:7;10201:10;10142:26;10093;10044;9995;9946;9897;9848;583:4371:96;10189:23:58;9401:7;8663:1;583:4371:96;;;;10826:16:58;10822:99;;8587:1642;583:4371:96;;;;10938:15:58;10934:96;;8587:1642;583:4371:96;;;;11047:15:58;11043:96;;8587:1642;583:4371:96;;;;11156:15:58;11152:96;;8587:1642;583:4371:96;;;;11265:14:58;11261:93;;8587:1642;583:4371:96;;;;11371:14:58;11367:93;;8587:1642;583:4371:96;;;;11477:14:58;11473:93;;8587:1642;583:4371:96;;;11579:64:58;;8587:1642;583:4371:96;;;9858:10:58;;;;:::i;:::-;583:4371:96;;;;;9848:26:58;9907:10;;;;:::i;9897:26::-;9956:10;;;;:::i;9946:26::-;10005:10;;;;:::i;9995:26::-;10054:10;;;;:::i;10044:26::-;10103:10;;;;:::i;10093:26::-;10152:10;;;;:::i;10142:26::-;10201:10;;;:::i;:::-;10189:23;;:::i;11579:64::-;583:4371:96;;11579:64:58;;11473:93;583:4371:96;11511:11:58;;583:4371:96;;11473:93:58;;;;11367;583:4371:96;11405:11:58;;583:4371:96;;11367:93:58;;;;11261;583:4371:96;11299:11:58;;583:4371:96;;11261:93:58;;;;11152:96;583:4371:96;11191:12:58;;583:4371:96;;11152:96:58;;;;11043;583:4371:96;11082:12:58;;583:4371:96;;11043:96:58;;;;10934;583:4371:96;10973:12:58;;583:4371:96;;10934:96:58;;;;10822:99;10862:13;;;583:4371:96;10822:99:58;;;;8654:45;8680:8;8663:1;8680:8;:::o;583:4371:96:-;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;-1:-1:-1;;583:4371:96;;;;;;;;;:::o;:::-;;;;;;;;;;;;11513:870:61;583:4371:96;;;11672:7:61;;;;583:4371:96;11775:28:61;11795:7;;;:::i;:::-;11775:28;14249:109;;;;;;14099:265;;11775:28;583:4371:96;:::i;:::-;;;;;;;;;;;;;;;;;11877:15:61;-1:-1:-1;11873:91:61;;583:4371:96;;12233:11:61;583:4371:96;12027:16:61;583:4371:96;;;;;;;12027:16:61;;;;12083:7;12063:43;12083:7;;12063:28;12083:7;;:::i;12063:28::-;583:4371:96;;;;;;;12063:43:61;12233:11;583:4371:96;-1:-1:-1;;;;;583:4371:96;;;;12225:27:61;583:4371:96;12225:27:61;:::o;12023:189::-;583:4371:96;;12145:52:61;583:4371:96;12155:41:61;583:4371:96;;:::i;:::-;;;;;;;;12155:41:61;583:4371:96;12155:41:61;;;583:4371:96;12145:52:61;:::i;:::-;12023:189;;11873:91;583:4371:96;;-1:-1:-1;;;11919:30:61;;;;;11668:709;12283:52;583:4371:96;;;12293:41:61;583:4371:96;;:::i;12293:41:61:-;583:4371:96;12293:41:61;;;583:4371:96;12283:52:61;:::i;:::-;583:4371:96;12349:17:61;583:4371:96;12349:17:61;:::o;11513:870::-;583:4371:96;;;11672:7:61;;;;583:4371:96;11775:28:61;11795:7;;;:::i;583:4371:96:-;;;;;;;;;;;;;;;;;11877:15:61;-1:-1:-1;11873:91:61;;583:4371:96;;12233:11:61;583:4371:96;12027:16:61;583:4371:96;;;;;;;12027:16:61;;;;12083:7;12063:43;12083:7;;12063:28;12083:7;;:::i;12063:28::-;583:4371:96;;;;;;;;;;12225:27:61;583:4371:96;12225:27:61;:::o;12023:189::-;583:4371:96;;12145:52:61;583:4371:96;12155:41:61;583:4371:96;;:::i;12155:41:61:-;583:4371:96;12155:41:61;;;583:4371:96;12145:52:61;:::i;11668:709::-;12283:52;583:4371:96;;;12293:41:61;583:4371:96;;:::i;12293:41:61:-;583:4371:96;12293:41:61;;;583:4371:96;12145:52:61;:::i;12283:::-;11678:1;12349:17;583:4371:96;12349:17:61;:::o;2557:104:58:-;;2641:5;;;;;;:13;2557:104;:::o;2641:13::-;;;2557:104;:::o","linkReferences":{},"immutableReferences":{"51797":[{"start":4642,"length":32}],"51799":[{"start":4829,"length":32}],"51801":[{"start":4588,"length":32}],"51803":[{"start":4721,"length":32}],"51805":[{"start":4759,"length":32}],"51808":[{"start":733,"length":32}],"51811":[{"start":774,"length":32}],"71843":[{"start":1497,"length":32},{"start":3129,"length":32}],"71846":[{"start":590,"length":32},{"start":3212,"length":32}]}},"methodIdentifiers":{"WHERE_REGISTRY()":"6d0fae4a","WHO_REGISTRY()":"c4b5d62c","eip712Domain()":"84b0196e","increaseNonce(address)":"8247a97c","isOptedIn(address,address)":"220d32d4","isOptedInAt(address,address,uint48,bytes)":"530e1d43","nonces(address,address)":"9333fbda","optIn(address)":"b1138ad1","optIn(address,address,uint48,bytes)":"ced44ba7","optOut(address)":"d4610483","optOut(address,address,uint48,bytes)":"93f79bc3","staticDelegateCall(address,bytes)":"9f86fd85"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"whoRegistry\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"whereRegistry\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"AlreadyOptedIn\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CheckpointUnorderedInsertion\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ExpiredSignature\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidShortString\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidSignature\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotOptedIn\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotWhereEntity\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotWho\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OptOutCooldown\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"bits\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"SafeCastOverflowedUintDowncast\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"str\",\"type\":\"string\"}],\"name\":\"StringTooLong\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[],\"name\":\"EIP712DomainChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"who\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"where\",\"type\":\"address\"}],\"name\":\"IncreaseNonce\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"who\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"where\",\"type\":\"address\"}],\"name\":\"OptIn\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"who\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"where\",\"type\":\"address\"}],\"name\":\"OptOut\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"WHERE_REGISTRY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"WHO_REGISTRY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"eip712Domain\",\"outputs\":[{\"internalType\":\"bytes1\",\"name\":\"fields\",\"type\":\"bytes1\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"version\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"chainId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"verifyingContract\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"salt\",\"type\":\"bytes32\"},{\"internalType\":\"uint256[]\",\"name\":\"extensions\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"where\",\"type\":\"address\"}],\"name\":\"increaseNonce\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"who\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"where\",\"type\":\"address\"}],\"name\":\"isOptedIn\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"who\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"where\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hint\",\"type\":\"bytes\"}],\"name\":\"isOptedInAt\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"who\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"where\",\"type\":\"address\"}],\"name\":\"nonces\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"where\",\"type\":\"address\"}],\"name\":\"optIn\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"who\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"where\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"deadline\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"name\":\"optIn\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"who\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"where\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"deadline\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"name\":\"optOut\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"where\",\"type\":\"address\"}],\"name\":\"optOut\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"staticDelegateCall\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"CheckpointUnorderedInsertion()\":[{\"details\":\"A value was attempted to be inserted on a past checkpoint.\"}],\"SafeCastOverflowedUintDowncast(uint8,uint256)\":[{\"details\":\"Value doesn't fit in an uint of `bits` size.\"}]},\"events\":{\"EIP712DomainChanged()\":{\"details\":\"MAY be emitted to signal that the domain could have changed.\"},\"IncreaseNonce(address,address)\":{\"params\":{\"where\":\"address of the \\\"where\\\" entity\",\"who\":\"address of the \\\"who\\\"\"}},\"OptIn(address,address)\":{\"params\":{\"where\":\"address of the \\\"where\\\" entity\",\"who\":\"address of the \\\"who\\\"\"}},\"OptOut(address,address)\":{\"params\":{\"where\":\"address of the \\\"where\\\" entity\",\"who\":\"address of the \\\"who\\\"\"}}},\"kind\":\"dev\",\"methods\":{\"eip712Domain()\":{\"details\":\"See {IERC-5267}.\"},\"increaseNonce(address)\":{\"details\":\"It can be used to invalidate a given signature.\",\"params\":{\"where\":\"address of the \\\"where\\\" entity\"}},\"isOptedIn(address,address)\":{\"params\":{\"where\":\"address of the \\\"where\\\" entity\",\"who\":\"address of the \\\"who\\\"\"},\"returns\":{\"_0\":\"if the \\\"who\\\" is opted-in\"}},\"isOptedInAt(address,address,uint48,bytes)\":{\"params\":{\"hint\":\"hint for the checkpoint index\",\"timestamp\":\"time point to get if the \\\"who\\\" is opted-in at\",\"where\":\"address of the \\\"where\\\" entity\",\"who\":\"address of the \\\"who\\\"\"},\"returns\":{\"_0\":\"if the \\\"who\\\" is opted-in at the given timestamp\"}},\"optIn(address)\":{\"params\":{\"where\":\"address of the \\\"where\\\" entity\"}},\"optIn(address,address,uint48,bytes)\":{\"params\":{\"deadline\":\"time point until the signature is valid (inclusively)\",\"signature\":\"signature of the \\\"who\\\"\",\"where\":\"address of the \\\"where\\\" entity\",\"who\":\"address of the \\\"who\\\"\"}},\"optOut(address)\":{\"params\":{\"where\":\"address of the \\\"where\\\" entity\"}},\"optOut(address,address,uint48,bytes)\":{\"params\":{\"deadline\":\"time point until the signature is valid (inclusively)\",\"signature\":\"signature of the \\\"who\\\"\",\"where\":\"address of the \\\"where\\\" entity\",\"who\":\"address of the \\\"who\\\"\"}},\"staticDelegateCall(address,bytes)\":{\"details\":\"It allows to use this contract's storage on-chain.\",\"params\":{\"data\":\"data to make a delegatecall with\",\"target\":\"address of the contract to make a delegatecall to\"}}},\"stateVariables\":{\"WHERE_REGISTRY\":{\"return\":\"address of the \\\"where\\\" registry\",\"returns\":{\"_0\":\"address of the \\\"where\\\" registry\"}},\"WHO_REGISTRY\":{\"return\":\"address of the \\\"who\\\" registry\",\"returns\":{\"_0\":\"address of the \\\"who\\\" registry\"}},\"nonces\":{\"params\":{\"where\":\"address of the \\\"where\\\" entity\",\"who\":\"address of the \\\"who\\\"\"},\"return\":\"nonce\",\"returns\":{\"nonce\":\"nonce\"}}},\"version\":1},\"userdoc\":{\"events\":{\"IncreaseNonce(address,address)\":{\"notice\":\"Emitted when the nonce of a \\\"who\\\" to a \\\"where\\\" entity is increased.\"},\"OptIn(address,address)\":{\"notice\":\"Emitted when a \\\"who\\\" opts into a \\\"where\\\" entity.\"},\"OptOut(address,address)\":{\"notice\":\"Emitted when a \\\"who\\\" opts out from a \\\"where\\\" entity.\"}},\"kind\":\"user\",\"methods\":{\"WHERE_REGISTRY()\":{\"notice\":\"Get the address of the registry where to opt-in.\"},\"WHO_REGISTRY()\":{\"notice\":\"Get the \\\"who\\\" registry's address.\"},\"increaseNonce(address)\":{\"notice\":\"Increase the nonce of a given \\\"who\\\" to a particular \\\"where\\\" entity.\"},\"isOptedIn(address,address)\":{\"notice\":\"Check if a given \\\"who\\\" is opted-in to a particular \\\"where\\\" entity.\"},\"isOptedInAt(address,address,uint48,bytes)\":{\"notice\":\"Get if a given \\\"who\\\" is opted-in to a particular \\\"where\\\" entity at a given timestamp using a hint.\"},\"nonces(address,address)\":{\"notice\":\"Get the nonce of a given \\\"who\\\" to a particular \\\"where\\\" entity.\"},\"optIn(address)\":{\"notice\":\"Opt-in a calling \\\"who\\\" to a particular \\\"where\\\" entity.\"},\"optIn(address,address,uint48,bytes)\":{\"notice\":\"Opt-in a \\\"who\\\" to a particular \\\"where\\\" entity with a signature.\"},\"optOut(address)\":{\"notice\":\"Opt-out a calling \\\"who\\\" from a particular \\\"where\\\" entity.\"},\"optOut(address,address,uint48,bytes)\":{\"notice\":\"Opt-out a \\\"who\\\" from a particular \\\"where\\\" entity with a signature.\"},\"staticDelegateCall(address,bytes)\":{\"notice\":\"Make a delegatecall from this contract to a given target contract with a particular data (always reverts with a return data).\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/contracts/service/OptInService.sol\":\"OptInService\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/interfaces/IERC1271.sol\":{\"keccak256\":\"0x85a45f3f10014a0f8be41157a32b6a5f905753ea64a4b64e29fc12b7deeecf39\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c3c74009ce36136b36c77c23935b8e4a7b4f253be2da2be4fb4a916b1ce43743\",\"dweb:/ipfs/QmcH36v3iN7SJJuF73AunLR2LtNxhVJ1wm63ph4dPZ4pcL\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC5267.sol\":{\"keccak256\":\"0x92aa1df62dc3d33f1656d63bede0923e0df0b706ad4137c8b10b0a8fe549fd92\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c5c0f29195ad64cbe556da8e257dac8f05f78c53f90323c0d2accf8e6922d33a\",\"dweb:/ipfs/QmQ61TED8uaCZwcbh8KkgRSsCav7x7HbcGHwHts3U4DmUP\"]},\"lib/openzeppelin-contracts/contracts/utils/ShortStrings.sol\":{\"keccak256\":\"0x18a7171df639a934592915a520ecb97c5bbc9675a1105607aac8a94e72bf62c6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7478e1f13da69a2867ccd883001d836b75620362e743f196376d63ed0c422a1c\",\"dweb:/ipfs/QmWywcQ9TNfwtoqAxbn25d8C5VrV12PrPS9UjtGe6pL2BA\"]},\"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0x32ba59b4b7299237c8ba56319110989d7978a039faf754793064e967e5894418\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1ae50c8b562427df610cc4540c9bf104acca7ef8e2dcae567ae7e52272281e9c\",\"dweb:/ipfs/QmTHiadFCSJUPpRjNegc5SahmeU8bAoY8i9Aq6tVscbcKR\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0x55f102ea785d8399c0e58d1108e2d289506dde18abc6db1b7f68c1f9f9bc5792\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e52e0a7765c943ef14e5bcf11e46e6139fa044be564881378349236bf2e3453\",\"dweb:/ipfs/QmZEeeXoFPW47amyP35gfzomF9DixqqTEPwzBakv6cZw6i\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0xeed0a08b0b091f528356cbc7245891a4c748682d4f6a18055e8e6ca77d12a6cf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba80ba06c8e6be852847e4c5f4492cef801feb6558ae09ed705ff2e04ea8b13c\",\"dweb:/ipfs/QmXRJDv3xHLVQCVXg1ZvR35QS9sij5y9NDWYzMfUfAdTHF\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/EIP712.sol\":{\"keccak256\":\"0x999f705a027ed6dc2d4e0df2cc4a509852c6bfd11de1c8161bf88832d0503fd0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0798def67258d9a3cc20b2b4da7ebf351a5cefe0abfdd665d2d81f8e32f89b21\",\"dweb:/ipfs/QmPEvJosnPfzHNjKvCv2D3891mA2Ww8eUwkqrxBjuYdHCt\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol\":{\"keccak256\":\"0xba333517a3add42cd35fe877656fc3dfcc9de53baa4f3aabbd6d12a92e4ea435\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2ceacff44c0fdc81e48e0e0b1db87a2076d3c1fb497341de077bf1da9f6b406c\",\"dweb:/ipfs/QmRUo1muMRAewxrKQ7TkXUtknyRoR57AyEkoPpiuZQ8FzX\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/SignatureChecker.sol\":{\"keccak256\":\"0x6b11eb41a228cca35d4b662b4df69fcd75192851365102690f57b2ac01e83fe6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ab006a2983ed350d2af21ddcdd835dcae3b8340086cc4d088460da5abd041f69\",\"dweb:/ipfs/QmbEacDhkJZiGrgzLjB4pNtE8Z1uudjDw1DvcDUTVQFsLG\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875\",\"dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0xe19a4d5f31d2861e7344e8e535e2feafb913d806d3e2b5fe7782741a2a7094fe\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4aed79c0fa6f0546ed02f2f683e8f77f0fd2ed7eb34d8bbf3d373c9a6d95b13c\",\"dweb:/ipfs/QmWqVz6UAVqmnWU5pqYPt1o6iDEZyPaBraAA3rKfTTSfYj\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x5f7e4076e175393767754387c962926577f1660dd9b810187b9002407656be72\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7d533a1c97cd43a57cd9c465f7ee8dd0e39ae93a8fb8ff8e5303a356b081cdcc\",\"dweb:/ipfs/QmVBEei6aTnvYNZp2CHYVNKyZS4q1KkjANfY39WVXZXVoT\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/Checkpoints.sol\":{\"keccak256\":\"0xbdc5e074d7dd6678f67e92b1a51a20226801a407b0e1af3da367c5d1ff4519ad\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a36cca6b22fff3db16fc789ff6c60eea71d4b156065d4d0c83a0bc5e91a77a8b\",\"dweb:/ipfs/QmYN3exd5AemxjBrN8XMB1p5LbbE16uC3sjbYjwi8AjcGR\"]},\"lib/openzeppelin-contracts/contracts/utils/types/Time.sol\":{\"keccak256\":\"0xc7755af115020049e4140f224f9ee88d7e1799ffb0646f37bf0df24bf6213f58\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7f09bf94d5274334ec021f61a04659db303f31e60460e14b709c9bf187740111\",\"dweb:/ipfs/QmNvgomZYUwFAt4cZbPWAiTeSZQreGehY9BK5xyVJsUttb\"]},\"src/contracts/common/StaticDelegateCallable.sol\":{\"keccak256\":\"0x350029aa8955eacaffffaeb58babc5c98e80ebc5c5db388ed17ee6465f4a9d90\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://eb392a8ee9050e0af606897df63e3404e3829e8b688b580663892f9664195764\",\"dweb:/ipfs/QmaXC8jqV8UrrAFkzXTEv2fJF56sy33HhLxAzaRZmUxuXD\"]},\"src/contracts/libraries/Checkpoints.sol\":{\"keccak256\":\"0xba90097c8bfe0a975499428b5f8ac5569483c7d92ccc28c12d70de416aae040c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://12f5d93ca94cd06d3147db68993165a58e17903ed53682560de61f3085ad4609\",\"dweb:/ipfs/QmePiuAqvXprMLmFZkGZeGjvGPAvsEDHfCDv7BoQhXu9xE\"]},\"src/contracts/service/OptInService.sol\":{\"keccak256\":\"0x4e0932077f2686b7990e10d59deb2535334c0d09e52ef6e57c6ab09eca21c4b1\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://7c00d311032ed4a1743aca7475f3c86ce15cdfc2218108efc3731c03d34a5278\",\"dweb:/ipfs/QmUGGfVwVhaHr5kS4177yKKYiLYzi5qZpkEmvYxBZqazxf\"]},\"src/interfaces/common/IRegistry.sol\":{\"keccak256\":\"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014\",\"dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK\"]},\"src/interfaces/common/IStaticDelegateCallable.sol\":{\"keccak256\":\"0xa335d4e81b9071b7de66ef92b43ff20671d86516eb1be46fef29a3483cd3f5d5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d464b9db863c14c05547d2b23352f2e9b7b784799cf09f6bbc4906a2a74e3516\",\"dweb:/ipfs/QmUVWzFvJz7eEbDQKiFTTzwi7TEbjcs3VmwdM4kuptAKvi\"]},\"src/interfaces/service/IOptInService.sol\":{\"keccak256\":\"0x76fb5460a6d87a5705433d4fbeff7253cd75b8bbd0c888b2088f16e86ace146a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://990322019b3d11465f7024bae77ccbf7e2fe5d6fa3c754584778f37d04fa1337\",\"dweb:/ipfs/QmaSNHzcqxTkUCG9a4nqVfLECHLdjdrwAnDi3yDC7tDL24\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.25+commit.b61c2a91"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"whoRegistry","type":"address"},{"internalType":"address","name":"whereRegistry","type":"address"},{"internalType":"string","name":"name","type":"string"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"AlreadyOptedIn"},{"inputs":[],"type":"error","name":"CheckpointUnorderedInsertion"},{"inputs":[],"type":"error","name":"ExpiredSignature"},{"inputs":[],"type":"error","name":"InvalidShortString"},{"inputs":[],"type":"error","name":"InvalidSignature"},{"inputs":[],"type":"error","name":"NotOptedIn"},{"inputs":[],"type":"error","name":"NotWhereEntity"},{"inputs":[],"type":"error","name":"NotWho"},{"inputs":[],"type":"error","name":"OptOutCooldown"},{"inputs":[{"internalType":"uint8","name":"bits","type":"uint8"},{"internalType":"uint256","name":"value","type":"uint256"}],"type":"error","name":"SafeCastOverflowedUintDowncast"},{"inputs":[{"internalType":"string","name":"str","type":"string"}],"type":"error","name":"StringTooLong"},{"inputs":[],"type":"event","name":"EIP712DomainChanged","anonymous":false},{"inputs":[{"internalType":"address","name":"who","type":"address","indexed":true},{"internalType":"address","name":"where","type":"address","indexed":true}],"type":"event","name":"IncreaseNonce","anonymous":false},{"inputs":[{"internalType":"address","name":"who","type":"address","indexed":true},{"internalType":"address","name":"where","type":"address","indexed":true}],"type":"event","name":"OptIn","anonymous":false},{"inputs":[{"internalType":"address","name":"who","type":"address","indexed":true},{"internalType":"address","name":"where","type":"address","indexed":true}],"type":"event","name":"OptOut","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"WHERE_REGISTRY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"WHO_REGISTRY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"eip712Domain","outputs":[{"internalType":"bytes1","name":"fields","type":"bytes1"},{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"version","type":"string"},{"internalType":"uint256","name":"chainId","type":"uint256"},{"internalType":"address","name":"verifyingContract","type":"address"},{"internalType":"bytes32","name":"salt","type":"bytes32"},{"internalType":"uint256[]","name":"extensions","type":"uint256[]"}]},{"inputs":[{"internalType":"address","name":"where","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"increaseNonce"},{"inputs":[{"internalType":"address","name":"who","type":"address"},{"internalType":"address","name":"where","type":"address"}],"stateMutability":"view","type":"function","name":"isOptedIn","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"who","type":"address"},{"internalType":"address","name":"where","type":"address"},{"internalType":"uint48","name":"timestamp","type":"uint48"},{"internalType":"bytes","name":"hint","type":"bytes"}],"stateMutability":"view","type":"function","name":"isOptedInAt","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"who","type":"address"},{"internalType":"address","name":"where","type":"address"}],"stateMutability":"view","type":"function","name":"nonces","outputs":[{"internalType":"uint256","name":"nonce","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"where","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"optIn"},{"inputs":[{"internalType":"address","name":"who","type":"address"},{"internalType":"address","name":"where","type":"address"},{"internalType":"uint48","name":"deadline","type":"uint48"},{"internalType":"bytes","name":"signature","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"optIn"},{"inputs":[{"internalType":"address","name":"who","type":"address"},{"internalType":"address","name":"where","type":"address"},{"internalType":"uint48","name":"deadline","type":"uint48"},{"internalType":"bytes","name":"signature","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"optOut"},{"inputs":[{"internalType":"address","name":"where","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"optOut"},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"staticDelegateCall"}],"devdoc":{"kind":"dev","methods":{"eip712Domain()":{"details":"See {IERC-5267}."},"increaseNonce(address)":{"details":"It can be used to invalidate a given signature.","params":{"where":"address of the \"where\" entity"}},"isOptedIn(address,address)":{"params":{"where":"address of the \"where\" entity","who":"address of the \"who\""},"returns":{"_0":"if the \"who\" is opted-in"}},"isOptedInAt(address,address,uint48,bytes)":{"params":{"hint":"hint for the checkpoint index","timestamp":"time point to get if the \"who\" is opted-in at","where":"address of the \"where\" entity","who":"address of the \"who\""},"returns":{"_0":"if the \"who\" is opted-in at the given timestamp"}},"optIn(address)":{"params":{"where":"address of the \"where\" entity"}},"optIn(address,address,uint48,bytes)":{"params":{"deadline":"time point until the signature is valid (inclusively)","signature":"signature of the \"who\"","where":"address of the \"where\" entity","who":"address of the \"who\""}},"optOut(address)":{"params":{"where":"address of the \"where\" entity"}},"optOut(address,address,uint48,bytes)":{"params":{"deadline":"time point until the signature is valid (inclusively)","signature":"signature of the \"who\"","where":"address of the \"where\" entity","who":"address of the \"who\""}},"staticDelegateCall(address,bytes)":{"details":"It allows to use this contract's storage on-chain.","params":{"data":"data to make a delegatecall with","target":"address of the contract to make a delegatecall to"}}},"version":1},"userdoc":{"kind":"user","methods":{"WHERE_REGISTRY()":{"notice":"Get the address of the registry where to opt-in."},"WHO_REGISTRY()":{"notice":"Get the \"who\" registry's address."},"increaseNonce(address)":{"notice":"Increase the nonce of a given \"who\" to a particular \"where\" entity."},"isOptedIn(address,address)":{"notice":"Check if a given \"who\" is opted-in to a particular \"where\" entity."},"isOptedInAt(address,address,uint48,bytes)":{"notice":"Get if a given \"who\" is opted-in to a particular \"where\" entity at a given timestamp using a hint."},"nonces(address,address)":{"notice":"Get the nonce of a given \"who\" to a particular \"where\" entity."},"optIn(address)":{"notice":"Opt-in a calling \"who\" to a particular \"where\" entity."},"optIn(address,address,uint48,bytes)":{"notice":"Opt-in a \"who\" to a particular \"where\" entity with a signature."},"optOut(address)":{"notice":"Opt-out a calling \"who\" from a particular \"where\" entity."},"optOut(address,address,uint48,bytes)":{"notice":"Opt-out a \"who\" from a particular \"where\" entity with a signature."},"staticDelegateCall(address,bytes)":{"notice":"Make a delegatecall from this contract to a given target contract with a particular data (always reverts with a return data)."}},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/contracts/service/OptInService.sol":"OptInService"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts/contracts/interfaces/IERC1271.sol":{"keccak256":"0x85a45f3f10014a0f8be41157a32b6a5f905753ea64a4b64e29fc12b7deeecf39","urls":["bzz-raw://c3c74009ce36136b36c77c23935b8e4a7b4f253be2da2be4fb4a916b1ce43743","dweb:/ipfs/QmcH36v3iN7SJJuF73AunLR2LtNxhVJ1wm63ph4dPZ4pcL"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC5267.sol":{"keccak256":"0x92aa1df62dc3d33f1656d63bede0923e0df0b706ad4137c8b10b0a8fe549fd92","urls":["bzz-raw://c5c0f29195ad64cbe556da8e257dac8f05f78c53f90323c0d2accf8e6922d33a","dweb:/ipfs/QmQ61TED8uaCZwcbh8KkgRSsCav7x7HbcGHwHts3U4DmUP"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/ShortStrings.sol":{"keccak256":"0x18a7171df639a934592915a520ecb97c5bbc9675a1105607aac8a94e72bf62c6","urls":["bzz-raw://7478e1f13da69a2867ccd883001d836b75620362e743f196376d63ed0c422a1c","dweb:/ipfs/QmWywcQ9TNfwtoqAxbn25d8C5VrV12PrPS9UjtGe6pL2BA"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol":{"keccak256":"0x32ba59b4b7299237c8ba56319110989d7978a039faf754793064e967e5894418","urls":["bzz-raw://1ae50c8b562427df610cc4540c9bf104acca7ef8e2dcae567ae7e52272281e9c","dweb:/ipfs/QmTHiadFCSJUPpRjNegc5SahmeU8bAoY8i9Aq6tVscbcKR"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0x55f102ea785d8399c0e58d1108e2d289506dde18abc6db1b7f68c1f9f9bc5792","urls":["bzz-raw://6e52e0a7765c943ef14e5bcf11e46e6139fa044be564881378349236bf2e3453","dweb:/ipfs/QmZEeeXoFPW47amyP35gfzomF9DixqqTEPwzBakv6cZw6i"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol":{"keccak256":"0xeed0a08b0b091f528356cbc7245891a4c748682d4f6a18055e8e6ca77d12a6cf","urls":["bzz-raw://ba80ba06c8e6be852847e4c5f4492cef801feb6558ae09ed705ff2e04ea8b13c","dweb:/ipfs/QmXRJDv3xHLVQCVXg1ZvR35QS9sij5y9NDWYzMfUfAdTHF"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/EIP712.sol":{"keccak256":"0x999f705a027ed6dc2d4e0df2cc4a509852c6bfd11de1c8161bf88832d0503fd0","urls":["bzz-raw://0798def67258d9a3cc20b2b4da7ebf351a5cefe0abfdd665d2d81f8e32f89b21","dweb:/ipfs/QmPEvJosnPfzHNjKvCv2D3891mA2Ww8eUwkqrxBjuYdHCt"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol":{"keccak256":"0xba333517a3add42cd35fe877656fc3dfcc9de53baa4f3aabbd6d12a92e4ea435","urls":["bzz-raw://2ceacff44c0fdc81e48e0e0b1db87a2076d3c1fb497341de077bf1da9f6b406c","dweb:/ipfs/QmRUo1muMRAewxrKQ7TkXUtknyRoR57AyEkoPpiuZQ8FzX"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/SignatureChecker.sol":{"keccak256":"0x6b11eb41a228cca35d4b662b4df69fcd75192851365102690f57b2ac01e83fe6","urls":["bzz-raw://ab006a2983ed350d2af21ddcdd835dcae3b8340086cc4d088460da5abd041f69","dweb:/ipfs/QmbEacDhkJZiGrgzLjB4pNtE8Z1uudjDw1DvcDUTVQFsLG"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d","urls":["bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875","dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol":{"keccak256":"0xe19a4d5f31d2861e7344e8e535e2feafb913d806d3e2b5fe7782741a2a7094fe","urls":["bzz-raw://4aed79c0fa6f0546ed02f2f683e8f77f0fd2ed7eb34d8bbf3d373c9a6d95b13c","dweb:/ipfs/QmWqVz6UAVqmnWU5pqYPt1o6iDEZyPaBraAA3rKfTTSfYj"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0x5f7e4076e175393767754387c962926577f1660dd9b810187b9002407656be72","urls":["bzz-raw://7d533a1c97cd43a57cd9c465f7ee8dd0e39ae93a8fb8ff8e5303a356b081cdcc","dweb:/ipfs/QmVBEei6aTnvYNZp2CHYVNKyZS4q1KkjANfY39WVXZXVoT"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/Checkpoints.sol":{"keccak256":"0xbdc5e074d7dd6678f67e92b1a51a20226801a407b0e1af3da367c5d1ff4519ad","urls":["bzz-raw://a36cca6b22fff3db16fc789ff6c60eea71d4b156065d4d0c83a0bc5e91a77a8b","dweb:/ipfs/QmYN3exd5AemxjBrN8XMB1p5LbbE16uC3sjbYjwi8AjcGR"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/types/Time.sol":{"keccak256":"0xc7755af115020049e4140f224f9ee88d7e1799ffb0646f37bf0df24bf6213f58","urls":["bzz-raw://7f09bf94d5274334ec021f61a04659db303f31e60460e14b709c9bf187740111","dweb:/ipfs/QmNvgomZYUwFAt4cZbPWAiTeSZQreGehY9BK5xyVJsUttb"],"license":"MIT"},"src/contracts/common/StaticDelegateCallable.sol":{"keccak256":"0x350029aa8955eacaffffaeb58babc5c98e80ebc5c5db388ed17ee6465f4a9d90","urls":["bzz-raw://eb392a8ee9050e0af606897df63e3404e3829e8b688b580663892f9664195764","dweb:/ipfs/QmaXC8jqV8UrrAFkzXTEv2fJF56sy33HhLxAzaRZmUxuXD"],"license":"BUSL-1.1"},"src/contracts/libraries/Checkpoints.sol":{"keccak256":"0xba90097c8bfe0a975499428b5f8ac5569483c7d92ccc28c12d70de416aae040c","urls":["bzz-raw://12f5d93ca94cd06d3147db68993165a58e17903ed53682560de61f3085ad4609","dweb:/ipfs/QmePiuAqvXprMLmFZkGZeGjvGPAvsEDHfCDv7BoQhXu9xE"],"license":"MIT"},"src/contracts/service/OptInService.sol":{"keccak256":"0x4e0932077f2686b7990e10d59deb2535334c0d09e52ef6e57c6ab09eca21c4b1","urls":["bzz-raw://7c00d311032ed4a1743aca7475f3c86ce15cdfc2218108efc3731c03d34a5278","dweb:/ipfs/QmUGGfVwVhaHr5kS4177yKKYiLYzi5qZpkEmvYxBZqazxf"],"license":"BUSL-1.1"},"src/interfaces/common/IRegistry.sol":{"keccak256":"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb","urls":["bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014","dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK"],"license":"MIT"},"src/interfaces/common/IStaticDelegateCallable.sol":{"keccak256":"0xa335d4e81b9071b7de66ef92b43ff20671d86516eb1be46fef29a3483cd3f5d5","urls":["bzz-raw://d464b9db863c14c05547d2b23352f2e9b7b784799cf09f6bbc4906a2a74e3516","dweb:/ipfs/QmUVWzFvJz7eEbDQKiFTTzwi7TEbjcs3VmwdM4kuptAKvi"],"license":"MIT"},"src/interfaces/service/IOptInService.sol":{"keccak256":"0x76fb5460a6d87a5705433d4fbeff7253cd75b8bbd0c888b2088f16e86ace146a","urls":["bzz-raw://990322019b3d11465f7024bae77ccbf7e2fe5d6fa3c754584778f37d04fa1337","dweb:/ipfs/QmaSNHzcqxTkUCG9a4nqVfLECHLdjdrwAnDi3yDC7tDL24"],"license":"MIT"}},"version":1},"id":96} \ No newline at end of file +{"abi":[{"type":"constructor","inputs":[{"name":"whoRegistry","type":"address","internalType":"address"},{"name":"whereRegistry","type":"address","internalType":"address"},{"name":"name","type":"string","internalType":"string"}],"stateMutability":"nonpayable"},{"type":"function","name":"WHERE_REGISTRY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"WHO_REGISTRY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"eip712Domain","inputs":[],"outputs":[{"name":"fields","type":"bytes1","internalType":"bytes1"},{"name":"name","type":"string","internalType":"string"},{"name":"version","type":"string","internalType":"string"},{"name":"chainId","type":"uint256","internalType":"uint256"},{"name":"verifyingContract","type":"address","internalType":"address"},{"name":"salt","type":"bytes32","internalType":"bytes32"},{"name":"extensions","type":"uint256[]","internalType":"uint256[]"}],"stateMutability":"view"},{"type":"function","name":"increaseNonce","inputs":[{"name":"where","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"isOptedIn","inputs":[{"name":"who","type":"address","internalType":"address"},{"name":"where","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isOptedInAt","inputs":[{"name":"who","type":"address","internalType":"address"},{"name":"where","type":"address","internalType":"address"},{"name":"timestamp","type":"uint48","internalType":"uint48"},{"name":"hint","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"nonces","inputs":[{"name":"who","type":"address","internalType":"address"},{"name":"where","type":"address","internalType":"address"}],"outputs":[{"name":"nonce","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"optIn","inputs":[{"name":"where","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"optIn","inputs":[{"name":"who","type":"address","internalType":"address"},{"name":"where","type":"address","internalType":"address"},{"name":"deadline","type":"uint48","internalType":"uint48"},{"name":"signature","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"optOut","inputs":[{"name":"who","type":"address","internalType":"address"},{"name":"where","type":"address","internalType":"address"},{"name":"deadline","type":"uint48","internalType":"uint48"},{"name":"signature","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"optOut","inputs":[{"name":"where","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"staticDelegateCall","inputs":[{"name":"target","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"EIP712DomainChanged","inputs":[],"anonymous":false},{"type":"event","name":"IncreaseNonce","inputs":[{"name":"who","type":"address","indexed":true,"internalType":"address"},{"name":"where","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"OptIn","inputs":[{"name":"who","type":"address","indexed":true,"internalType":"address"},{"name":"where","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"OptOut","inputs":[{"name":"who","type":"address","indexed":true,"internalType":"address"},{"name":"where","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"error","name":"AlreadyOptedIn","inputs":[]},{"type":"error","name":"CheckpointUnorderedInsertion","inputs":[]},{"type":"error","name":"ExpiredSignature","inputs":[]},{"type":"error","name":"InvalidShortString","inputs":[]},{"type":"error","name":"InvalidSignature","inputs":[]},{"type":"error","name":"NotOptedIn","inputs":[]},{"type":"error","name":"NotWhereEntity","inputs":[]},{"type":"error","name":"NotWho","inputs":[]},{"type":"error","name":"OptOutCooldown","inputs":[]},{"type":"error","name":"SafeCastOverflowedUintDowncast","inputs":[{"name":"bits","type":"uint8","internalType":"uint8"},{"name":"value","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"StringTooLong","inputs":[{"name":"str","type":"string","internalType":"string"}]}],"bytecode":{"object":"0x6101a0604090808252346101dc57611c85803803809161001f82856101e0565b833981016060828203126101dc5761003682610203565b6020610043818501610203565b848601516001600160401b03959194918682116101dc57019181601f840112156101dc5782518681116101c857875193610086601f8301601f19168401866101e0565b818552828501938383830101116101dc57815f9284809301865e85010152865190878201828110888211176101c857885260018252808201603160f81b81526100ce85610217565b936101209485526100de846103ae565b95610140968752519020928360e0525190209761010098808a524660a0528151928301937f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f85528284015260608301524660808301523060a083015260a0825260c0820197828910908911176101c8578790525190206080523060c0526101609283526101809384526117a095866104e5873960805186611222015260a051866112dd015260c051866111ec015260e0518661127101525185611297015251846102dd015251836103060152518281816105d90152610c3901525181818161024e0152610c8c0152f35b634e487b7160e01b5f52604160045260245ffd5b5f80fd5b601f909101601f19168101906001600160401b038211908210176101c857604052565b51906001600160a01b03821682036101dc57565b80516020908181101561028d5750601f82511161024f578082519201519080831061024157501790565b825f19910360031b1b161790565b60448260405192839163305a27a960e01b83528160048401528051918291826024860152018484015e5f828201840152601f01601f19168101030190fd5b906001600160401b0382116101c8575f54926001938481811c911680156103a4575b8382101461039057601f811161035d575b5081601f84116001146102fb57509282939183925f946102f0575b50501b915f199060031b1c1916175f5560ff90565b015192505f806102db565b919083601f1981165f8052845f20945f905b88838310610343575050501061032b575b505050811b015f5560ff90565b01515f1960f88460031b161c191690555f808061031e565b85870151885590960195948501948793509081019061030d565b5f805284601f845f20920160051c820191601f860160051c015b8281106103855750506102c0565b5f8155018590610377565b634e487b7160e01b5f52602260045260245ffd5b90607f16906102af565b8051602090818110156103d85750601f82511161024f578082519201519080831061024157501790565b9192916001600160401b0381116101c85760019182548381811c911680156104da575b8282101461039057601f81116104a7575b5080601f83116001146104475750819293945f9261043c575b50505f19600383901b1c191690821b17905560ff90565b015190505f80610425565b90601f19831695845f52825f20925f905b8882106104905750508385969710610478575b505050811b01905560ff90565b01515f1960f88460031b161c191690555f808061046b565b808785968294968601518155019501930190610458565b835f5283601f835f20920160051c820191601f850160051c015b8281106104cf57505061040c565b5f81550184906104c1565b90607f16906103fb56fe60806040526004361015610011575f80fd5b5f3560e01c8063220d32d4146100d4578063530e1d43146100cf5780636d0fae4a146100ca5780638247a97c146100c557806384b0196e146100c05780639333fbda146100bb57806393f79bc3146100b65780639f86fd85146100b1578063b1138ad1146100ac578063c4b5d62c146100a7578063ced44ba7146100a25763d46104831461009d575f80fd5b6106cc565b610608565b6105c4565b6105a2565b610511565b610412565b6103bb565b6102c5565b61027d565b610239565b6101d3565b610109565b600435906001600160a01b03821682036100ef57565b5f80fd5b602435906001600160a01b03821682036100ef57565b346100ef5760403660031901126100ef5760206101356101276100d9565b61012f6100f3565b906106ee565b6040519015158152f35b9181601f840112156100ef5782359167ffffffffffffffff83116100ef57602083818601950101116100ef57565b9060806003198301126100ef576001600160a01b039160043583811681036100ef579260243590811681036100ef579160443565ffffffffffff811681036100ef57916064359067ffffffffffffffff82116100ef576101cf9160040161013f565b9091565b346100ef576020600161022961022f61021a6101ee3661016d565b969290949193888060a01b03165f526003895260405f209060018060a01b03165f5260205260405f2090565b92868060d01b0395369161080b565b916108c3565b1614604051908152f35b346100ef575f3660031901126100ef576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346100ef5760203660031901126100ef5761029f6102996100d9565b336109bf565b005b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b346100ef575f3660031901126100ef5761035e6103017f0000000000000000000000000000000000000000000000000000000000000000610e2a565b61032a7f0000000000000000000000000000000000000000000000000000000000000000610f28565b6040519061033782610786565b5f825261036c602091604051958695600f60f81b875260e0602088015260e08701906102a1565b9085820360408701526102a1565b4660608501523060808501525f60a085015283810360c0850152602080845192838152019301915f5b8281106103a457505050500390f35b835185528695509381019392810192600101610395565b346100ef5760403660031901126100ef5760206104096103d96100d9565b6103e16100f3565b6001600160a01b039182165f9081526002855260408082209290931681526020919091522090565b54604051908152f35b346100ef576104203661016d565b909165ffffffffffff8061043342610ff1565b1691169081106104ff576104df926104d06104d89260018060a01b0380891691825f5260026020526104788960405f209060018060a01b03165f5260205260405f2090565b546040519260208401947f7830334d17a05ab8aeca8f1778e27182208fc2d454ac7b38a4edc2069ee3a4a6865260408501528a166060840152608083015260a082015260a081526104c8816107a2565b519020611023565b92369161080b565b9084610a15565b156104ed5761029f91610af1565b604051638baa579f60e01b8152600490fd5b60405163df4cc36d60e01b8152600490fd5b346100ef5760403660031901126100ef5761052a6100d9565b60243567ffffffffffffffff81116100ef575f9161054d8392369060040161013f565b90816040519283928337810184815203915af461059a61056b610841565b9161058c6040519384921515602084015260408084015260608301906102a1565b03601f1981018352826107be565b805190602001fd5b346100ef5760203660031901126100ef5761029f6105be6100d9565b33610c0d565b346100ef575f3660031901126100ef576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346100ef576106163661016d565b909165ffffffffffff8061062942610ff1565b1691169081106104ff576106be926104d06104d89260018060a01b0380891691825f52600260205261066e8960405f209060018060a01b03165f5260205260405f2090565b546040519260208401947f6ab5200f1123a8d51d1695a9e5e757267926b53c6359f90b8873cc7dcc30ea2c865260408501528a166060840152608083015260a082015260a081526104c8816107a2565b156104ed5761029f91610c0d565b346100ef5760203660031901126100ef5761029f6106e86100d9565b33610af1565b6001600160a01b039081165f908152600360209081526040808320939094168252919091522080548061072c57505060015f5b818060d01b03161490565b5f1990808281011161074c576001925f5260205f2001015460301c610721565b61088c565b634e487b7160e01b5f52604160045260245ffd5b6040810190811067ffffffffffffffff82111761078157604052565b610751565b6020810190811067ffffffffffffffff82111761078157604052565b60c0810190811067ffffffffffffffff82111761078157604052565b90601f8019910116810190811067ffffffffffffffff82111761078157604052565b604051906107ed82610765565b565b67ffffffffffffffff811161078157601f01601f191660200190565b929192610817826107ef565b9161082560405193846107be565b8294818452818301116100ef578281602093845f960137010152565b3d1561086b573d90610852826107ef565b9161086060405193846107be565b82523d5f602084013e565b606090565b908160209103126100ef575163ffffffff811681036100ef5790565b634e487b7160e01b5f52601160045260245ffd5b5f1981019190821161074c57565b90600163ffffffff8093160191821161074c57565b918051156109b557806020806108de93518301019101610870565b916108e98382610dd6565b926108fa845165ffffffffffff1690565b9065ffffffffffff808516921682811461099c578211918261093c575b505061092a576109279250611091565b90565b5050602001516001600160d01b031690565b90915061094983546108a0565b63ffffffff831614918215610962575b50505f80610917565b61099491925061097d610977610989926108ae565b85610dd6565b5165ffffffffffff1690565b65ffffffffffff1690565b115f80610959565b50505050602091909101516001600160d01b0316905090565b5061092791611091565b6001600160a01b039081165f8181526002602090815260408083209590941680835294905291822080546001019055907f8ed32926585579e6191b145240df788165f4957e1135f30a00e08ee8feb9d6809080a3565b610a1f8383611049565b506004819592951015610add57159384610ac7575b508315610a42575b50505090565b5f929350908291604051610a7a8161058c6020820194630b135d3f60e11b998a875260248401526040604484015260648301906102a1565b51915afa90610a87610841565b82610ab9575b82610a9d575b50505f8080610a3c565b9091506020818051810103126100ef5760200151145f80610a93565b915060208251101591610a8d565b6001600160a01b0383811691161493505f610a34565b634e487b7160e01b5f52602160045260245ffd5b90610b2d610b2882610b138560018060a01b03165f52600360205260405f2090565b9060018060a01b03165f5260205260405f2090565b611385565b9091506001600160d01b031615610bd85765ffffffffffff80610b4f42610ff1565b16911614610bc657610b87610b7882610b138560018060a01b03165f52600360205260405f2090565b610b8142610ff1565b90611590565b5050610b9381836109bf565b6001600160a01b0390811691167f1629cd9ad365627cf8408d19c50224af8f3213c1a18ae48062d92e22bddf7de55f80a3565b60405163291bf4b760e21b8152600490fd5b6040516334b09b3960e11b8152600490fd5b908160209103126100ef575180151581036100ef5790565b6040513d5f823e3d90fd5b6040516302910f8b60e31b8082526001600160a01b0383811660048401529293916020919082816024817f000000000000000000000000000000000000000000000000000000000000000089165afa908115610d8a575f91610da1575b5015610d8f576040519081526001600160a01b038316600482015281816024817f000000000000000000000000000000000000000000000000000000000000000088165afa918215610d8a575f92610d5d575b505015610d4b57610cce81846106ee565b610d395780610d04610cf58493610b138760018060a01b03165f52600360205260405f2090565b610cfe42610ff1565b9061168f565b5050610d1081856109bf565b1691167f9b730d5b907ee509de729817a2bb37e404418ba569b3a50f36192372f973cb415f80a3565b60405163dcdeaba360e01b8152600490fd5b6040516321f5408d60e01b8152600490fd5b610d7c9250803d10610d83575b610d7481836107be565b810190610bea565b5f80610cbd565b503d610d6a565b610c02565b604051630fb9ff9560e41b8152600490fd5b610db89150833d8511610d8357610d7481836107be565b5f610c6a565b60405190610dcb82610765565b5f6020838281520152565b610dfb91610df591610de6610dbe565b50610def610dbe565b50611170565b50611199565b65ffffffffffff81511690602060018060d01b039101511660405191610e2083610765565b8252602082015290565b60ff8114610e3b57610927906111bd565b506040515f80546001918160011c9260018316908115610f1e575b602090602086108314610f0a5785875286946020860193908115610eeb5750600114610e8c575b505050610927925003826107be565b925093610eb95f80527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e56390565b945f935b828510610ed5575050506109279350015f8080610e7d565b8654858501529586019587955093810193610ebd565b925050506109279491925060ff19168252151560051b015f8080610e7d565b634e487b7160e01b5f52602260045260245ffd5b93607f1693610e56565b60ff8114610f3957610927906111bd565b506040516001805480821c915f90828116908115610fe7575b602090602086108314610f0a5785875286946020860193908115610eeb5750600114610f8757505050610927925003826107be565b925093610fb560015f527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf690565b945f935b828510610fd1575050506109279350015f8080610e7d565b8654858501529586019587955093810193610fb9565b93607f1693610f52565b65ffffffffffff90818111611004571690565b604490604051906306dfcc6560e41b8252603060048301526024820152fd5b60429061102e6111e9565b906040519161190160f01b8352600283015260228201522090565b8151919060418303611079576110729250602082015190606060408401519301515f1a90611303565b9192909190565b50505f9160029190565b906001820180921161074c57565b908154905f918060058111611127575b50915b8281106110da575050806110b85750505f90565b610927916110c86110d3926108a0565b905f5260205f200190565b5460301c90565b90918082169080831860011c820180921161074c57845f5265ffffffffffff808360205f20015416908516105f146111155750915b906110a4565b92915061112190611083565b9061110f565b90611131826113f2565b820391821161074c57845f5265ffffffffffff808360205f20015416908416105f1461115f57505b5f6110a1565b925061116a90611083565b91611159565b8054821015611185575f5260205f2001905f90565b634e487b7160e01b5f52603260045260245ffd5b906040516111a681610765565b915465ffffffffffff8116835260301c6020830152565b60ff811690601f82116111d75760405191610e2083610765565b604051632cd44ac360e21b8152600490fd5b307f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031614806112da575b15611244577f000000000000000000000000000000000000000000000000000000000000000090565b60405160208101907f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f82527f000000000000000000000000000000000000000000000000000000000000000060408201527f000000000000000000000000000000000000000000000000000000000000000060608201524660808201523060a082015260a081526112d4816107a2565b51902090565b507f0000000000000000000000000000000000000000000000000000000000000000461461121b565b91907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0841161137a579160209360809260ff5f9560405194855216868401526040830152606082015282805260015afa15610d8a575f516001600160a01b0381161561137057905f905f90565b505f906001905f90565b5050505f9160039190565b8054806113965750505f905f905f90565b5f1990808281011161074c576113b3925f5260205f200101611199565b9065ffffffffffff82511691602060018060d01b0391015116906001929190565b81156113de570490565b634e487b7160e01b5f52601260045260245ffd5b801561152b57806114c46114bd6114b36114a961149f61149561148b61148160016109279a5f908b60801c8061151f575b508060401c80611512575b508060201c80611505575b508060101c806114f8575b508060081c806114eb575b508060041c806114de575b508060021c806114d1575b50821c6114ca575b811c1b61147a818b6113d4565b0160011c90565b61147a818a6113d4565b61147a81896113d4565b61147a81886113d4565b61147a81876113d4565b61147a81866113d4565b61147a81856113d4565b80926113d4565b90611758565b810161146d565b600291509101905f611465565b600491509101905f61145a565b600891509101905f61144f565b601091509101905f611444565b602091509101905f611439565b604091509101905f61142e565b9150506080905f611423565b505f90565b8054680100000000000000008110156107815761155291600182018155611170565b91909161157d57805160209091015160301b65ffffffffffff191665ffffffffffff91909116179055565b634e487b7160e01b5f525f60045260245ffd5b805490811561166d576115b86115b36115a8846108a0565b835f5260205f200190565b611199565b906115c9825165ffffffffffff1690565b65ffffffffffff858116949116841061165b57611628946020946115f6610989865165ffffffffffff1690565b0361162d575061161a916110c861160c926108a0565b65ffffffffffff8154169055565b01516001600160d01b031690565b905f90565b90506116569161164c61163e6107e0565b65ffffffffffff9093168352565b5f85830152611530565b61161a565b604051632520601d60e01b8152600490fd5b61168992915061167e61163e6107e0565b5f6020830152611530565b5f905f90565b8054908115611734576116a76115b36115a8846108a0565b906116b8825165ffffffffffff1690565b65ffffffffffff858116949116841061165b57611712946020946116e5610989865165ffffffffffff1690565b03611718575061161a916110c86116fb926108a0565b660100000000000065ffffffffffff825416179055565b90600190565b90506116569161172961163e6107e0565b600182860152611530565b61175192915061174561163e6107e0565b60016020830152611530565b5f90600190565b9080821015611765575090565b90509056fea2646970667358221220e3d0b21c7d8dc3a0d63f417bf3497f69de6a0208097dd894acd7ab6691797d6b64736f6c63430008190033","sourceMap":"583:4371:91:-:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;-1:-1:-1;;;;;583:4371:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;583:4371:91;;;;;:::i;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;583:4371:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;583:4371:91;;3401:45:52;;;:::i;:::-;3393:53;;;;;3467:51;;;:::i;:::-;3456:62;;;;;583:4371:91;3542:22:52;;3528:36;;;;583:4371:91;3591:25:52;;3574:42;;;;;;3644:13;3627:30;;583:4371:91;;4204:80:52;;;2079:95;;;;;;;;583:4371:91;2079:95:52;;;3644:13;2079:95;;;;4278:4;3627:30;2079:95;;;3627:30;4204:80;;2079:95;583:4371:91;;;;;;;;;;;;;;;;4194:91:52;;2079:95;3667:48;4278:4;2079:95;3725:27;1675:26:91;;;;1711:30;;;;583:4371;;;;;;2079:95:52;583:4371:91;;;;;3627:30:52;583:4371:91;;;;;2079:95:52;583:4371:91;;;;;3528:36:52;583:4371:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;583:4371:91;;;;;-1:-1:-1;583:4371:91;;-1:-1:-1;583:4371:91;;;;;;;-1:-1:-1;;583:4371:91;;;;-1:-1:-1;;;;;583:4371:91;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;583:4371:91;;;;;;:::o;2914:340:48:-;583:4371:91;;3059:2:48;;3037:24;;;3059:2;;;583:4371:91;1854:2:48;583:4371:91;;1840:16:48;1836:72;;583:4371:91;;;;;2079:95:52;583:4371:91;;;;;;1949:36:48;;3077:27;:::o;583:4371:91:-;;;;;;;;;;1949:36:48;3077:27;:::o;1836:72::-;583:4371:91;;;;1879:18:48;;;;;;;;;;;;583:4371:91;;;;;;;;;;;;;;;;3432:13:52;583:4371:91;;;;;;1854:2:48;583:4371:91;-1:-1:-1;;583:4371:91;;;1879:18:48;;;;3033:215;583:4371:91;-1:-1:-1;;;;;583:4371:91;;;;3432:13:52;583:4371:91;;;;;;;;;;;;;;3033:215:48;583:4371:91;;;;;;;;;;;3033:215:48;583:4371:91;;;;;;;;;;;;;;;;3432:13:52;583:4371:91;;;;;;;;;;;;;;;;;3432:13:52;583:4371:91;1390:66:48;3195:42;:::o;583:4371:91:-;;;;-1:-1:-1;583:4371:91;;;;;;;;;;;;3432:13:52;583:4371:91;;;3432:13:52;583:4371:91;;3432:13:52;583:4371:91;;;;;;;;;;;;;;;;;;;;;3432:13:52;583:4371:91;1390:66:48;3195:42;:::o;583:4371:91:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;583:4371:91;;;;;;;3432:13:52;583:4371:91;;;;;3432:13:52;583:4371:91;;;;;;;;;;;;;;;;;;;;;;;;;3432:13:52;583:4371:91;;;;;;;;;;;3432:13:52;583:4371:91;;;;;3432:13:52;583:4371:91;;;;;;;;2914:340:48;583:4371:91;;3059:2:48;;3037:24;;;3059:2;;;583:4371:91;1854:2:48;583:4371:91;;1840:16:48;1836:72;;583:4371:91;;;;;2079:95:52;583:4371:91;;;;;;1949:36:48;;3077:27;:::o;3033:215::-;583:4371:91;;;-1:-1:-1;;;;;583:4371:91;;;;;;;;;;;;;;;;;;3033:215:48;583:4371:91;;;;;;;;;;;3033:215:48;583:4371:91;;;;;;;;;;;;;;-1:-1:-1;583:4371:91;;;;-1:-1:-1;;;;583:4371:91;;;;;;;;;;;;;1390:66:48;;3195:42::o;583:4371:91:-;;;;-1:-1:-1;583:4371:91;;;;;;;;;;;;-1:-1:-1;583:4371:91;;-1:-1:-1;583:4371:91;;-1:-1:-1;583:4371:91;;;;;;;;;;;;;;;;;;;;;;;;;1390:66:48;3195:42;:::o;583:4371:91:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;583:4371:91;;;;-1:-1:-1;583:4371:91;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;583:4371:91;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361015610011575f80fd5b5f3560e01c8063220d32d4146100d4578063530e1d43146100cf5780636d0fae4a146100ca5780638247a97c146100c557806384b0196e146100c05780639333fbda146100bb57806393f79bc3146100b65780639f86fd85146100b1578063b1138ad1146100ac578063c4b5d62c146100a7578063ced44ba7146100a25763d46104831461009d575f80fd5b6106cc565b610608565b6105c4565b6105a2565b610511565b610412565b6103bb565b6102c5565b61027d565b610239565b6101d3565b610109565b600435906001600160a01b03821682036100ef57565b5f80fd5b602435906001600160a01b03821682036100ef57565b346100ef5760403660031901126100ef5760206101356101276100d9565b61012f6100f3565b906106ee565b6040519015158152f35b9181601f840112156100ef5782359167ffffffffffffffff83116100ef57602083818601950101116100ef57565b9060806003198301126100ef576001600160a01b039160043583811681036100ef579260243590811681036100ef579160443565ffffffffffff811681036100ef57916064359067ffffffffffffffff82116100ef576101cf9160040161013f565b9091565b346100ef576020600161022961022f61021a6101ee3661016d565b969290949193888060a01b03165f526003895260405f209060018060a01b03165f5260205260405f2090565b92868060d01b0395369161080b565b916108c3565b1614604051908152f35b346100ef575f3660031901126100ef576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346100ef5760203660031901126100ef5761029f6102996100d9565b336109bf565b005b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b346100ef575f3660031901126100ef5761035e6103017f0000000000000000000000000000000000000000000000000000000000000000610e2a565b61032a7f0000000000000000000000000000000000000000000000000000000000000000610f28565b6040519061033782610786565b5f825261036c602091604051958695600f60f81b875260e0602088015260e08701906102a1565b9085820360408701526102a1565b4660608501523060808501525f60a085015283810360c0850152602080845192838152019301915f5b8281106103a457505050500390f35b835185528695509381019392810192600101610395565b346100ef5760403660031901126100ef5760206104096103d96100d9565b6103e16100f3565b6001600160a01b039182165f9081526002855260408082209290931681526020919091522090565b54604051908152f35b346100ef576104203661016d565b909165ffffffffffff8061043342610ff1565b1691169081106104ff576104df926104d06104d89260018060a01b0380891691825f5260026020526104788960405f209060018060a01b03165f5260205260405f2090565b546040519260208401947f7830334d17a05ab8aeca8f1778e27182208fc2d454ac7b38a4edc2069ee3a4a6865260408501528a166060840152608083015260a082015260a081526104c8816107a2565b519020611023565b92369161080b565b9084610a15565b156104ed5761029f91610af1565b604051638baa579f60e01b8152600490fd5b60405163df4cc36d60e01b8152600490fd5b346100ef5760403660031901126100ef5761052a6100d9565b60243567ffffffffffffffff81116100ef575f9161054d8392369060040161013f565b90816040519283928337810184815203915af461059a61056b610841565b9161058c6040519384921515602084015260408084015260608301906102a1565b03601f1981018352826107be565b805190602001fd5b346100ef5760203660031901126100ef5761029f6105be6100d9565b33610c0d565b346100ef575f3660031901126100ef576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346100ef576106163661016d565b909165ffffffffffff8061062942610ff1565b1691169081106104ff576106be926104d06104d89260018060a01b0380891691825f52600260205261066e8960405f209060018060a01b03165f5260205260405f2090565b546040519260208401947f6ab5200f1123a8d51d1695a9e5e757267926b53c6359f90b8873cc7dcc30ea2c865260408501528a166060840152608083015260a082015260a081526104c8816107a2565b156104ed5761029f91610c0d565b346100ef5760203660031901126100ef5761029f6106e86100d9565b33610af1565b6001600160a01b039081165f908152600360209081526040808320939094168252919091522080548061072c57505060015f5b818060d01b03161490565b5f1990808281011161074c576001925f5260205f2001015460301c610721565b61088c565b634e487b7160e01b5f52604160045260245ffd5b6040810190811067ffffffffffffffff82111761078157604052565b610751565b6020810190811067ffffffffffffffff82111761078157604052565b60c0810190811067ffffffffffffffff82111761078157604052565b90601f8019910116810190811067ffffffffffffffff82111761078157604052565b604051906107ed82610765565b565b67ffffffffffffffff811161078157601f01601f191660200190565b929192610817826107ef565b9161082560405193846107be565b8294818452818301116100ef578281602093845f960137010152565b3d1561086b573d90610852826107ef565b9161086060405193846107be565b82523d5f602084013e565b606090565b908160209103126100ef575163ffffffff811681036100ef5790565b634e487b7160e01b5f52601160045260245ffd5b5f1981019190821161074c57565b90600163ffffffff8093160191821161074c57565b918051156109b557806020806108de93518301019101610870565b916108e98382610dd6565b926108fa845165ffffffffffff1690565b9065ffffffffffff808516921682811461099c578211918261093c575b505061092a576109279250611091565b90565b5050602001516001600160d01b031690565b90915061094983546108a0565b63ffffffff831614918215610962575b50505f80610917565b61099491925061097d610977610989926108ae565b85610dd6565b5165ffffffffffff1690565b65ffffffffffff1690565b115f80610959565b50505050602091909101516001600160d01b0316905090565b5061092791611091565b6001600160a01b039081165f8181526002602090815260408083209590941680835294905291822080546001019055907f8ed32926585579e6191b145240df788165f4957e1135f30a00e08ee8feb9d6809080a3565b610a1f8383611049565b506004819592951015610add57159384610ac7575b508315610a42575b50505090565b5f929350908291604051610a7a8161058c6020820194630b135d3f60e11b998a875260248401526040604484015260648301906102a1565b51915afa90610a87610841565b82610ab9575b82610a9d575b50505f8080610a3c565b9091506020818051810103126100ef5760200151145f80610a93565b915060208251101591610a8d565b6001600160a01b0383811691161493505f610a34565b634e487b7160e01b5f52602160045260245ffd5b90610b2d610b2882610b138560018060a01b03165f52600360205260405f2090565b9060018060a01b03165f5260205260405f2090565b611385565b9091506001600160d01b031615610bd85765ffffffffffff80610b4f42610ff1565b16911614610bc657610b87610b7882610b138560018060a01b03165f52600360205260405f2090565b610b8142610ff1565b90611590565b5050610b9381836109bf565b6001600160a01b0390811691167f1629cd9ad365627cf8408d19c50224af8f3213c1a18ae48062d92e22bddf7de55f80a3565b60405163291bf4b760e21b8152600490fd5b6040516334b09b3960e11b8152600490fd5b908160209103126100ef575180151581036100ef5790565b6040513d5f823e3d90fd5b6040516302910f8b60e31b8082526001600160a01b0383811660048401529293916020919082816024817f000000000000000000000000000000000000000000000000000000000000000089165afa908115610d8a575f91610da1575b5015610d8f576040519081526001600160a01b038316600482015281816024817f000000000000000000000000000000000000000000000000000000000000000088165afa918215610d8a575f92610d5d575b505015610d4b57610cce81846106ee565b610d395780610d04610cf58493610b138760018060a01b03165f52600360205260405f2090565b610cfe42610ff1565b9061168f565b5050610d1081856109bf565b1691167f9b730d5b907ee509de729817a2bb37e404418ba569b3a50f36192372f973cb415f80a3565b60405163dcdeaba360e01b8152600490fd5b6040516321f5408d60e01b8152600490fd5b610d7c9250803d10610d83575b610d7481836107be565b810190610bea565b5f80610cbd565b503d610d6a565b610c02565b604051630fb9ff9560e41b8152600490fd5b610db89150833d8511610d8357610d7481836107be565b5f610c6a565b60405190610dcb82610765565b5f6020838281520152565b610dfb91610df591610de6610dbe565b50610def610dbe565b50611170565b50611199565b65ffffffffffff81511690602060018060d01b039101511660405191610e2083610765565b8252602082015290565b60ff8114610e3b57610927906111bd565b506040515f80546001918160011c9260018316908115610f1e575b602090602086108314610f0a5785875286946020860193908115610eeb5750600114610e8c575b505050610927925003826107be565b925093610eb95f80527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e56390565b945f935b828510610ed5575050506109279350015f8080610e7d565b8654858501529586019587955093810193610ebd565b925050506109279491925060ff19168252151560051b015f8080610e7d565b634e487b7160e01b5f52602260045260245ffd5b93607f1693610e56565b60ff8114610f3957610927906111bd565b506040516001805480821c915f90828116908115610fe7575b602090602086108314610f0a5785875286946020860193908115610eeb5750600114610f8757505050610927925003826107be565b925093610fb560015f527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf690565b945f935b828510610fd1575050506109279350015f8080610e7d565b8654858501529586019587955093810193610fb9565b93607f1693610f52565b65ffffffffffff90818111611004571690565b604490604051906306dfcc6560e41b8252603060048301526024820152fd5b60429061102e6111e9565b906040519161190160f01b8352600283015260228201522090565b8151919060418303611079576110729250602082015190606060408401519301515f1a90611303565b9192909190565b50505f9160029190565b906001820180921161074c57565b908154905f918060058111611127575b50915b8281106110da575050806110b85750505f90565b610927916110c86110d3926108a0565b905f5260205f200190565b5460301c90565b90918082169080831860011c820180921161074c57845f5265ffffffffffff808360205f20015416908516105f146111155750915b906110a4565b92915061112190611083565b9061110f565b90611131826113f2565b820391821161074c57845f5265ffffffffffff808360205f20015416908416105f1461115f57505b5f6110a1565b925061116a90611083565b91611159565b8054821015611185575f5260205f2001905f90565b634e487b7160e01b5f52603260045260245ffd5b906040516111a681610765565b915465ffffffffffff8116835260301c6020830152565b60ff811690601f82116111d75760405191610e2083610765565b604051632cd44ac360e21b8152600490fd5b307f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031614806112da575b15611244577f000000000000000000000000000000000000000000000000000000000000000090565b60405160208101907f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f82527f000000000000000000000000000000000000000000000000000000000000000060408201527f000000000000000000000000000000000000000000000000000000000000000060608201524660808201523060a082015260a081526112d4816107a2565b51902090565b507f0000000000000000000000000000000000000000000000000000000000000000461461121b565b91907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0841161137a579160209360809260ff5f9560405194855216868401526040830152606082015282805260015afa15610d8a575f516001600160a01b0381161561137057905f905f90565b505f906001905f90565b5050505f9160039190565b8054806113965750505f905f905f90565b5f1990808281011161074c576113b3925f5260205f200101611199565b9065ffffffffffff82511691602060018060d01b0391015116906001929190565b81156113de570490565b634e487b7160e01b5f52601260045260245ffd5b801561152b57806114c46114bd6114b36114a961149f61149561148b61148160016109279a5f908b60801c8061151f575b508060401c80611512575b508060201c80611505575b508060101c806114f8575b508060081c806114eb575b508060041c806114de575b508060021c806114d1575b50821c6114ca575b811c1b61147a818b6113d4565b0160011c90565b61147a818a6113d4565b61147a81896113d4565b61147a81886113d4565b61147a81876113d4565b61147a81866113d4565b61147a81856113d4565b80926113d4565b90611758565b810161146d565b600291509101905f611465565b600491509101905f61145a565b600891509101905f61144f565b601091509101905f611444565b602091509101905f611439565b604091509101905f61142e565b9150506080905f611423565b505f90565b8054680100000000000000008110156107815761155291600182018155611170565b91909161157d57805160209091015160301b65ffffffffffff191665ffffffffffff91909116179055565b634e487b7160e01b5f525f60045260245ffd5b805490811561166d576115b86115b36115a8846108a0565b835f5260205f200190565b611199565b906115c9825165ffffffffffff1690565b65ffffffffffff858116949116841061165b57611628946020946115f6610989865165ffffffffffff1690565b0361162d575061161a916110c861160c926108a0565b65ffffffffffff8154169055565b01516001600160d01b031690565b905f90565b90506116569161164c61163e6107e0565b65ffffffffffff9093168352565b5f85830152611530565b61161a565b604051632520601d60e01b8152600490fd5b61168992915061167e61163e6107e0565b5f6020830152611530565b5f905f90565b8054908115611734576116a76115b36115a8846108a0565b906116b8825165ffffffffffff1690565b65ffffffffffff858116949116841061165b57611712946020946116e5610989865165ffffffffffff1690565b03611718575061161a916110c86116fb926108a0565b660100000000000065ffffffffffff825416179055565b90600190565b90506116569161172961163e6107e0565b600182860152611530565b61175192915061174561163e6107e0565b60016020830152611530565b5f90600190565b9080821015611765575090565b90509056fea2646970667358221220e3d0b21c7d8dc3a0d63f417bf3497f69de6a0208097dd894acd7ab6691797d6b64736f6c63430008190033","sourceMap":"583:4371:91:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;;;-1:-1:-1;;;;;583:4371:91;;;;;;:::o;:::-;;;;;;;;-1:-1:-1;;;;;583:4371:91;;;;;;:::o;:::-;;;;;;-1:-1:-1;;583:4371:91;;;;;;;;:::i;:::-;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;583:4371:91;;;;;-1:-1:-1;;;;;583:4371:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;2036:1;583:4371;1975:57;:22;583:4371;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;583:4371:91;1975:10;583:4371;;;-1:-1:-1;583:4371:91;;;;;;;;;;;;;;;;;1975:22;583:4371;;;;;;;;;;:::i;:::-;1975:57;;:::i;:::-;583:4371;1975:62;583:4371;;;;;;;;;;;;-1:-1:-1;;583:4371:91;;;;;;851:39;-1:-1:-1;;;;;583:4371:91;;;;;;;;;;;;-1:-1:-1;;583:4371:91;;;;3493:5;583:4371;;:::i;:::-;3481:10;3493:5;:::i;:::-;583:4371;;;;;;;;;;;;;;;;;;-1:-1:-1;583:4371:91;;;;;;;;-1:-1:-1;;583:4371:91;;;;:::o;:::-;;;;;;-1:-1:-1;;583:4371:91;;;;;6099:41:52;:5;:41;:::i;:::-;6554:47;:8;:47;:::i;:::-;583:4371:91;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;5590:13:52;583:4371:91;;;;5625:4:52;583:4371:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;583:4371:91;;;;;;;;6584:16:52;583:4371:91;;;;;;;;;-1:-1:-1;;583:4371:91;;;;;1214:77;583:4371;;:::i;:::-;;;:::i;:::-;-1:-1:-1;;;;;583:4371:91;;;-1:-1:-1;583:4371:91;;;1214:77;583:4371;;;;;;;;;;;;-1:-1:-1;583:4371:91;;;;;;;1214:77;583:4371;;;;;;;;;;;;;;:::i;:::-;;;;837:15:62;819:34;837:15;819:34;:::i;:::-;583:4371:91;;;1469:27;;;1465:83;;3164:88;583:4371;4587:179;583:4371;;;;;;;;;;;;-1:-1:-1;583:4371:91;4713:6;583:4371;;4713:18;583:4371;;-1:-1:-1;583:4371:91;;;;;;;;;;;;;;;;;4713:18;583:4371;;;4644:98;583:4371;4644:98;;583:4371;1082:76;583:4371;;;948:75;;583:4371;;;948:75;;;583:4371;948:75;;;583:4371;948:75;;;;;4644:98;;;;;:::i;:::-;583:4371;4617:139;;4587:179;:::i;:::-;583:4371;;;;:::i;:::-;3164:88;;;:::i;:::-;3163:89;3159:145;;3327:5;;;:::i;3159:145::-;583:4371;;-1:-1:-1;;;3275:18:91;;583:4371;;3275:18;1465:83;583:4371;;-1:-1:-1;;;1519:18:91;;583:4371;;1519:18;583:4371;;;;;;-1:-1:-1;;583:4371:91;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;583:4371:91;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;416:25:75;;;;477:31;416:25;;:::i;:::-;583:4371:91;;;;;;;;;;477:31:75;;583:4371:91;;;;;;;;;;;:::i;:::-;477:31:75;583:4371:91;;477:31:75;;;;;;:::i;:::-;518:79;;;583:4371:91;518:79:75;;583:4371:91;;;;;;-1:-1:-1;;583:4371:91;;;;2370:5;583:4371;;:::i;:::-;2358:10;2370:5;:::i;583:4371::-;;;;;;-1:-1:-1;;583:4371:91;;;;;;758:37;-1:-1:-1;;;;;583:4371:91;;;;;;;;;;;;;:::i;:::-;;;;837:15:62;819:34;837:15;819:34;:::i;:::-;583:4371:91;;;1469:27;;;1465:83;;2610:87;583:4371;4587:179;583:4371;;;;;;;;;;;;-1:-1:-1;583:4371:91;4713:6;583:4371;;4713:18;583:4371;;-1:-1:-1;583:4371:91;;;;;;;;;;;;;;;;;4713:18;583:4371;;;4644:98;583:4371;4644:98;;583:4371;948:75;583:4371;;;948:75;;583:4371;;;948:75;;;583:4371;948:75;;;583:4371;948:75;;;;;4644:98;;;;;:::i;2610:87::-;2609:88;2605:144;;2771:5;;;:::i;583:4371::-;;;;;;-1:-1:-1;;583:4371:91;;;;2923:5;583:4371;;:::i;:::-;2911:10;2923:5;:::i;2099:134::-;-1:-1:-1;;;;;583:4371:91;;;-1:-1:-1;583:4371:91;;;2190:10;583:4371;;;;;;;;;;;;;;;;;;;;;10303:8:60;;;:63;;2225:1:91;-1:-1:-1;10303:63:60;583:4371:91;;;;;;2190:36;2099:134;:::o;10303:63:60:-;583:4371:91;;;;;;;;;;2225:1;14249:109:60;-1:-1:-1;14249:109:60;583:4371:91;-1:-1:-1;14249:109:60;;;583:4371:91;;;10303:63:60;;583:4371:91;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;:::i;:::-;;;;;;;;;;;;;;;:::o;:::-;948:75;583:4371;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;:::o;:::-;;;;;;;;-1:-1:-1;;583:4371:91;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;583:4371:91;;;;;;:::o;:::-;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;-1:-1:-1;583:4371:91;;;;:::o;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;583:4371:91;;;;;;;;:::o;:::-;;;;;;;;;;;;;:::o;1818:604:86:-;;583:4371:91;;1946:17:86;1942:83;;583:4371:91;2049:27:86;583:4371:91;2049:27:86;583:4371:91;;2049:27:86;;;;;;:::i;:::-;2120:14;;;;;:::i;:::-;583:4371:91;;;;;;;;;;;;;;;;2148:22:86;;;2144:77;;2235:21;-1:-1:-1;2235:84:86;;;;1818:604;2231:139;;;;1425:34;;;;:::i;:::-;1818:604;:::o;2231:139::-;-1:-1:-1;;2049:27:86;2342:17;583:4371:91;-1:-1:-1;;;;;583:4371:91;1818:604:86;:::o;2235:84::-;583:4371:91;;;2269:16:86;583:4371:91;;2269:16:86;:::i;:::-;583:4371:91;;;2261:24:86;:57;;;;;2235:84;;;;;;;2261:57;2289:29;2298:8;;;2289:18;2298:8;2289:23;2298:8;;:::i;:::-;2289:18;;:::i;:::-;583:4371:91;;;;;2289:23:86;583:4371:91;;;;2289:29:86;;2261:57;;;;2144:77;-1:-1:-1;;;;2049:27:86;2193:17;;;;583:4371:91;-1:-1:-1;;;;;583:4371:91;;-1:-1:-1;1818:604:86;:::o;1942:83::-;1425:34;;;;:::i;4779:173:91:-;-1:-1:-1;;;;;583:4371:91;;;-1:-1:-1;583:4371:91;;;4876:6;583:4371;;;;;;;;;;;;;;;;;;;;;;;;;;;;4920:25;;-1:-1:-1;4920:25:91;4779:173::o;1039:368:54:-;1211:33;;;;:::i;:::-;583:4371:91;;;;;;;;;;1274:35:54;:58;;;;1039:368;1273:127;;;;;1039:368;1254:146;;;1039:368;:::o;1273:127::-;1283:26;583:4371:91;;;;;;;;2041:60:54;;583:4371:91;2041:60:54;;;;;;;;;;;;;;583:4371:91;;;;;;;;;;;:::i;2041:60:54:-;2010:101;;;;;;;:::i;:::-;2129:42;;;1273:127;2129:134;;;1273:127;;;;;;;;2129:134;583:4371:91;;;2041:60:54;583:4371:91;;;2187:29:54;;583:4371:91;;;;2041:60:54;2187:29;583:4371:91;2187:76:54;2129:134;;;;:42;583:4371:91;;2041:60:54;583:4371:91;;2152:19:54;;2129:42;;;1274:58;-1:-1:-1;;;;;583:4371:91;;;;;1313:19:54;;-1:-1:-1;1274:58:54;;;583:4371:91;;;;1283:26:54;583:4371:91;;;;;1283:26:54;583:4371:91;3991:467;;5260:30:86;4105:22:91;:15;;;583:4371;;;;;;;;4105:10;583:4371;;;;;;;4105:15;583:4371;;;;;;;;;;;;;;;;4105:22;5260:30:86;:::i;:::-;583:4371:91;;-1:-1:-1;;;;;;583:4371:91;4161:16;4157:66;;583:4371;837:15:62;819:34;837:15;819:34;:::i;:::-;583:4371:91;;;4237:35;4233:89;;8167:38:60;4332:22:91;:15;;;583:4371;;;;;;;;4105:10;583:4371;;;;;;;4332:22;819:34:62;837:15;819:34;:::i;:::-;8167:38:60;;:::i;:::-;4411:5:91;;;;;;:::i;:::-;-1:-1:-1;;;;;583:4371:91;;;;;4433:18;-1:-1:-1;;4433:18:91;3991:467::o;4233:89::-;583:4371;;-1:-1:-1;;;4295:16:91;;;;;4157:66;583:4371;;-1:-1:-1;;;4200:12:91;;;;;583:4371;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;3512:473;583:4371;;-1:-1:-1;;;3580:37:91;;;-1:-1:-1;;;;;583:4371:91;;;3580:37;;;583:4371;;;3512:473;3580:37;;583:4371;3580:37;583:4371;;;3590:12;583:4371;;3580:37;;;;;;;-1:-1:-1;3580:37:91;;;3512:473;3579:38;;3575:84;;583:4371;;3674:41;;;-1:-1:-1;;;;;583:4371:91;;3580:37;3674:41;;583:4371;3674:41;583:4371;;;3684:14;583:4371;;3674:41;;;;;;;-1:-1:-1;3674:41:91;;;3512:473;3673:42;;;3669:96;;3779:21;;;;:::i;:::-;3775:75;;3860:15;8167:38:60;3860:22:91;:15;;;;583:4371;;;;;;;;4105:10;583:4371;;;;;;;3860:22;819:34:62;837:15;819:34;:::i;:::-;8167:38:60;;:::i;:::-;3939:5:91;;;;;;:::i;:::-;583:4371;;;3961:17;-1:-1:-1;3961:17:91;;3512:473::o;3775:75::-;583:4371;;-1:-1:-1;;;3823:16:91;;3580:37;;3823:16;3669:96;583:4371;;-1:-1:-1;;;3738:16:91;;3580:37;;3738:16;3674:41;;;;;;-1:-1:-1;3674:41:91;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;;:::i;3575:84::-;583:4371;;-1:-1:-1;;;3640:8:91;;3580:37;;3640:8;3580:37;;;;;;;;;;;;;;:::i;:::-;;;;583:4371;;;;;;;:::i;:::-;-1:-1:-1;583:4371:91;;;;;;;:::o;5573:258:86:-;583:4371:91;5573:258:86;11308:22:60;5573:258:86;583:4371:91;;:::i;:::-;;;;:::i;:::-;;11308:22:60;:::i;:::-;583:4371:91;;:::i;:::-;;;;;;5805:17:86;583:4371:91;;;;;5805:17:86;;583:4371:91;;;;;;;;:::i;:::-;;;5805:17:86;5759:65;;583:4371:91;5573:258:86;:::o;3385:267:48:-;1390:66;3508:46;;1390:66;;3577:15;;;:::i;3504:142::-;583:4371:91;;;;;1390:66:48;;;;;;;;;;;;;;;3504:142;1390:66;;;;;;;;;583:4371:91;;;1390:66:48;;583:4371:91;;;1390:66:48;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;583:4371:91;1390:66:48;;;;;;;583:4371:91;1390:66:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1390:66:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;583:4371:91;;;;1390:66:48;;;;;583:4371:91;1390:66:48;;;;;;;;3385:267;1390:66;3508:46;;1390:66;;3577:15;;;:::i;3504:142::-;-1:-1:-1;583:4371:91;;6584:16:52;1390:66:48;;;;;;-1:-1:-1;;1390:66:48;;;;;;;;3504:142;1390:66;;;;;;;;;583:4371:91;;;1390:66:48;;583:4371:91;;;1390:66:48;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;6584:16:52;1390:66:48;;;;;;;-1:-1:-1;1390:66:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1390:66:48;;;;;;;;;;;;;14291:213:58;583:4371:91;14369:24:58;;;;14365:103;;583:4371:91;14291:213:58;:::o;14365:103::-;583:4371:91;;;;14416:41:58;;;;;;14447:2;14416:41;;;583:4371:91;;;;;14416:41:58;4917:176:52;3515:233:53;4917:176:52;5053:20;;:::i;:::-;3515:233:53;;;;-1:-1:-1;;;3515:233:53;;;;;;;;;;;4917:176:52;:::o;2129:766:51:-;583:4371:91;;;2129:766:51;2276:2;2256:22;;2276:2;;2739:25;2539:180;;;;;;;;;;;;;;;-1:-1:-1;2539:180:51;2739:25;;:::i;:::-;2732:32;;;;;:::o;2252:637::-;2795:83;;2811:1;2795:83;2815:35;2795:83;;:::o;583:4371:91:-;;9856:1:60;583:4371:91;;;;;;;:::o;9441:606:60:-;;583:4371:91;;9594:15:60;9559:17;9619:18;;9658:1;9652:7;;9648:234;;9441:606;9906:53;;12919:10;;;;;;-1:-1:-1;;9977:8:60;;;:63;;9559:17;9441:606;:::o;9977:63::-;9992:48;10025:7;;9992:41;10025:7;;:::i;:::-;9992:41;14249:109;;;;;;14099:265;;9992:41;583:4371:91;;;;;12912:230:60;2900:5:57;;;;;2910;;;;583:4371:91;;;;;;;;;14249:109:60;9559:17;14249:109;583:4371:91;14249:109:60;;;9559:17;14249:109;;583:4371:91;;;;;-1:-1:-1;12996:136:60;583:4371:91;;;13055:10:60;12996:136;;12912:230;;;12996:136;13110:7;;;;;;:::i;:::-;12996:136;;;9648:234;9695:14;;;;:::i;:::-;583:4371:91;;;;;;;14249:109:60;9559:17;14249:109;583:4371:91;14249:109:60;;;9559:17;14249:109;;583:4371:91;;;;;9727:48:60;9723:149;583:4371:91;;;9795:10:60;9723:149;9648:234;;;9723:149;9850:7;;;;;:::i;:::-;9723:149;;;583:4371:91;;;;;;;;-1:-1:-1;1390:66:48;;-1:-1:-1;1390:66:48;583:4371:91;;-1:-1:-1;583:4371:91;:::o;:::-;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::o;2078:405:48:-;2688:4;2652:40;;2706:11;2715:2;2706:11;;2702:69;;583:4371:91;;;;;;:::i;2702:69:48:-;583:4371:91;;-1:-1:-1;;;2740:20:48;;;;;3845:262:52;3929:4;3938:11;-1:-1:-1;;;;;583:4371:91;3921:28:52;;:63;;3845:262;3917:184;;;4007:22;4000:29;:::o;3917:184::-;583:4371:91;;4204:80:52;;;583:4371:91;2079:95:52;583:4371:91;;4226:11:52;583:4371:91;2079:95:52;;583:4371:91;4239:14:52;2079:95;;;583:4371:91;4255:13:52;2079:95;;;583:4371:91;3929:4:52;2079:95;;;583:4371:91;2079:95:52;4204:80;;;;;:::i;:::-;583:4371:91;4194:91:52;;4060:30;:::o;3921:63::-;3970:14;;3953:13;:31;3921:63;;5140:1530:51;;;6199:66;6186:79;;6182:164;;583:4371:91;;;;;;-1:-1:-1;583:4371:91;;;;;;;;;;;;;;;;;;;6457:24:51;;;;;;;;;-1:-1:-1;6457:24:51;-1:-1:-1;;;;;583:4371:91;;6495:20:51;6491:113;;6614:49;-1:-1:-1;6614:49:51;-1:-1:-1;5140:1530:51;:::o;6491:113::-;6531:62;-1:-1:-1;6531:62:51;6457:24;6531:62;-1:-1:-1;6531:62:51;:::o;6182:164::-;6281:54;;;6297:1;6281:54;6301:30;6281:54;;:::o;10552:388:60:-;583:4371:91;;10728:8:60;;;10752:20;;10690:17;10752:20;10690:17;10752:20;10690:17;10752:20;:::o;10724:210::-;583:4371:91;;;;;;;;;;;14249:109:60;10690:17;14249:109;;10690:17;14249:109;;;583:4371:91;:::i;:::-;;;;;;;14249:109:60;583:4371:91;;;;;10911:11:60;;583:4371:91;;10886:37:60;10870:1;10886:37;;;:::o;583:4371:91:-;;;;;;;:::o;:::-;;;;;;;;;;;;8587:1642:57;8658:6;;8654:45;;9401:7;10201:10;10142:26;10093;10044;9995;9946;9897;9848;583:4371:91;10189:23:57;9401:7;8663:1;583:4371:91;;;;10826:16:57;10822:99;;8587:1642;583:4371:91;;;;10938:15:57;10934:96;;8587:1642;583:4371:91;;;;11047:15:57;11043:96;;8587:1642;583:4371:91;;;;11156:15:57;11152:96;;8587:1642;583:4371:91;;;;11265:14:57;11261:93;;8587:1642;583:4371:91;;;;11371:14:57;11367:93;;8587:1642;583:4371:91;;;;11477:14:57;11473:93;;8587:1642;583:4371:91;;;11579:64:57;;8587:1642;583:4371:91;;;9858:10:57;;;;:::i;:::-;583:4371:91;;;;;9848:26:57;9907:10;;;;:::i;9897:26::-;9956:10;;;;:::i;9946:26::-;10005:10;;;;:::i;9995:26::-;10054:10;;;;:::i;10044:26::-;10103:10;;;;:::i;10093:26::-;10152:10;;;;:::i;10142:26::-;10201:10;;;:::i;:::-;10189:23;;:::i;11579:64::-;583:4371:91;;11579:64:57;;11473:93;583:4371:91;11511:11:57;;583:4371:91;;11473:93:57;;;;11367;583:4371:91;11405:11:57;;583:4371:91;;11367:93:57;;;;11261;583:4371:91;11299:11:57;;583:4371:91;;11261:93:57;;;;11152:96;583:4371:91;11191:12:57;;583:4371:91;;11152:96:57;;;;11043;583:4371:91;11082:12:57;;583:4371:91;;11043:96:57;;;;10934;583:4371:91;10973:12:57;;583:4371:91;;10934:96:57;;;;10822:99;10862:13;;;583:4371:91;10822:99:57;;;;8654:45;8680:8;8663:1;8680:8;:::o;583:4371:91:-;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;-1:-1:-1;;583:4371:91;;;;;;;;;:::o;:::-;;;;;;;;;;;;11513:870:60;583:4371:91;;;11672:7:60;;;;583:4371:91;11775:28:60;11795:7;;;:::i;:::-;11775:28;14249:109;;;;;;14099:265;;11775:28;583:4371:91;:::i;:::-;;;;;;;;;;;;;;;;;11877:15:60;-1:-1:-1;11873:91:60;;583:4371:91;;12233:11:60;583:4371:91;12027:16:60;583:4371:91;;;;;;;12027:16:60;;;;12083:7;12063:43;12083:7;;12063:28;12083:7;;:::i;12063:28::-;583:4371:91;;;;;;;12063:43:60;12233:11;583:4371:91;-1:-1:-1;;;;;583:4371:91;;;;12225:27:60;583:4371:91;12225:27:60;:::o;12023:189::-;583:4371:91;;12145:52:60;583:4371:91;12155:41:60;583:4371:91;;:::i;:::-;;;;;;;;12155:41:60;583:4371:91;12155:41:60;;;583:4371:91;12145:52:60;:::i;:::-;12023:189;;11873:91;583:4371:91;;-1:-1:-1;;;11919:30:60;;;;;11668:709;12283:52;583:4371:91;;;12293:41:60;583:4371:91;;:::i;12293:41:60:-;583:4371:91;12293:41:60;;;583:4371:91;12283:52:60;:::i;:::-;583:4371:91;12349:17:60;583:4371:91;12349:17:60;:::o;11513:870::-;583:4371:91;;;11672:7:60;;;;583:4371:91;11775:28:60;11795:7;;;:::i;583:4371:91:-;;;;;;;;;;;;;;;;;11877:15:60;-1:-1:-1;11873:91:60;;583:4371:91;;12233:11:60;583:4371:91;12027:16:60;583:4371:91;;;;;;;12027:16:60;;;;12083:7;12063:43;12083:7;;12063:28;12083:7;;:::i;12063:28::-;583:4371:91;;;;;;;;;;12225:27:60;583:4371:91;12225:27:60;:::o;12023:189::-;583:4371:91;;12145:52:60;583:4371:91;12155:41:60;583:4371:91;;:::i;12155:41:60:-;583:4371:91;12155:41:60;;;583:4371:91;12145:52:60;:::i;11668:709::-;12283:52;583:4371:91;;;12293:41:60;583:4371:91;;:::i;12293:41:60:-;583:4371:91;12293:41:60;;;583:4371:91;12145:52:60;:::i;12283:::-;11678:1;12349:17;583:4371:91;12349:17:60;:::o;2557:104:57:-;;2641:5;;;;;;:13;2557:104;:::o;2641:13::-;;;2557:104;:::o","linkReferences":{},"immutableReferences":{"51758":[{"start":4642,"length":32}],"51760":[{"start":4829,"length":32}],"51762":[{"start":4588,"length":32}],"51764":[{"start":4721,"length":32}],"51766":[{"start":4759,"length":32}],"51769":[{"start":733,"length":32}],"51772":[{"start":774,"length":32}],"65131":[{"start":1497,"length":32},{"start":3129,"length":32}],"65134":[{"start":590,"length":32},{"start":3212,"length":32}]}},"methodIdentifiers":{"WHERE_REGISTRY()":"6d0fae4a","WHO_REGISTRY()":"c4b5d62c","eip712Domain()":"84b0196e","increaseNonce(address)":"8247a97c","isOptedIn(address,address)":"220d32d4","isOptedInAt(address,address,uint48,bytes)":"530e1d43","nonces(address,address)":"9333fbda","optIn(address)":"b1138ad1","optIn(address,address,uint48,bytes)":"ced44ba7","optOut(address)":"d4610483","optOut(address,address,uint48,bytes)":"93f79bc3","staticDelegateCall(address,bytes)":"9f86fd85"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"whoRegistry\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"whereRegistry\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"AlreadyOptedIn\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CheckpointUnorderedInsertion\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ExpiredSignature\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidShortString\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidSignature\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotOptedIn\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotWhereEntity\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotWho\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OptOutCooldown\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"bits\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"SafeCastOverflowedUintDowncast\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"str\",\"type\":\"string\"}],\"name\":\"StringTooLong\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[],\"name\":\"EIP712DomainChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"who\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"where\",\"type\":\"address\"}],\"name\":\"IncreaseNonce\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"who\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"where\",\"type\":\"address\"}],\"name\":\"OptIn\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"who\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"where\",\"type\":\"address\"}],\"name\":\"OptOut\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"WHERE_REGISTRY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"WHO_REGISTRY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"eip712Domain\",\"outputs\":[{\"internalType\":\"bytes1\",\"name\":\"fields\",\"type\":\"bytes1\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"version\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"chainId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"verifyingContract\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"salt\",\"type\":\"bytes32\"},{\"internalType\":\"uint256[]\",\"name\":\"extensions\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"where\",\"type\":\"address\"}],\"name\":\"increaseNonce\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"who\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"where\",\"type\":\"address\"}],\"name\":\"isOptedIn\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"who\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"where\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hint\",\"type\":\"bytes\"}],\"name\":\"isOptedInAt\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"who\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"where\",\"type\":\"address\"}],\"name\":\"nonces\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"where\",\"type\":\"address\"}],\"name\":\"optIn\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"who\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"where\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"deadline\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"name\":\"optIn\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"who\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"where\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"deadline\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"name\":\"optOut\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"where\",\"type\":\"address\"}],\"name\":\"optOut\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"staticDelegateCall\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"CheckpointUnorderedInsertion()\":[{\"details\":\"A value was attempted to be inserted on a past checkpoint.\"}],\"SafeCastOverflowedUintDowncast(uint8,uint256)\":[{\"details\":\"Value doesn't fit in an uint of `bits` size.\"}]},\"events\":{\"EIP712DomainChanged()\":{\"details\":\"MAY be emitted to signal that the domain could have changed.\"},\"IncreaseNonce(address,address)\":{\"params\":{\"where\":\"address of the \\\"where\\\" entity\",\"who\":\"address of the \\\"who\\\"\"}},\"OptIn(address,address)\":{\"params\":{\"where\":\"address of the \\\"where\\\" entity\",\"who\":\"address of the \\\"who\\\"\"}},\"OptOut(address,address)\":{\"params\":{\"where\":\"address of the \\\"where\\\" entity\",\"who\":\"address of the \\\"who\\\"\"}}},\"kind\":\"dev\",\"methods\":{\"eip712Domain()\":{\"details\":\"See {IERC-5267}.\"},\"increaseNonce(address)\":{\"details\":\"It can be used to invalidate a given signature.\",\"params\":{\"where\":\"address of the \\\"where\\\" entity\"}},\"isOptedIn(address,address)\":{\"params\":{\"where\":\"address of the \\\"where\\\" entity\",\"who\":\"address of the \\\"who\\\"\"},\"returns\":{\"_0\":\"if the \\\"who\\\" is opted-in\"}},\"isOptedInAt(address,address,uint48,bytes)\":{\"params\":{\"hint\":\"hint for the checkpoint index\",\"timestamp\":\"time point to get if the \\\"who\\\" is opted-in at\",\"where\":\"address of the \\\"where\\\" entity\",\"who\":\"address of the \\\"who\\\"\"},\"returns\":{\"_0\":\"if the \\\"who\\\" is opted-in at the given timestamp\"}},\"optIn(address)\":{\"params\":{\"where\":\"address of the \\\"where\\\" entity\"}},\"optIn(address,address,uint48,bytes)\":{\"params\":{\"deadline\":\"time point until the signature is valid (inclusively)\",\"signature\":\"signature of the \\\"who\\\"\",\"where\":\"address of the \\\"where\\\" entity\",\"who\":\"address of the \\\"who\\\"\"}},\"optOut(address)\":{\"params\":{\"where\":\"address of the \\\"where\\\" entity\"}},\"optOut(address,address,uint48,bytes)\":{\"params\":{\"deadline\":\"time point until the signature is valid (inclusively)\",\"signature\":\"signature of the \\\"who\\\"\",\"where\":\"address of the \\\"where\\\" entity\",\"who\":\"address of the \\\"who\\\"\"}},\"staticDelegateCall(address,bytes)\":{\"details\":\"It allows to use this contract's storage on-chain.\",\"params\":{\"data\":\"data to make a delegatecall with\",\"target\":\"address of the contract to make a delegatecall to\"}}},\"stateVariables\":{\"WHERE_REGISTRY\":{\"return\":\"address of the \\\"where\\\" registry\",\"returns\":{\"_0\":\"address of the \\\"where\\\" registry\"}},\"WHO_REGISTRY\":{\"return\":\"address of the \\\"who\\\" registry\",\"returns\":{\"_0\":\"address of the \\\"who\\\" registry\"}},\"nonces\":{\"params\":{\"where\":\"address of the \\\"where\\\" entity\",\"who\":\"address of the \\\"who\\\"\"},\"return\":\"nonce\",\"returns\":{\"nonce\":\"nonce\"}}},\"version\":1},\"userdoc\":{\"events\":{\"IncreaseNonce(address,address)\":{\"notice\":\"Emitted when the nonce of a \\\"who\\\" to a \\\"where\\\" entity is increased.\"},\"OptIn(address,address)\":{\"notice\":\"Emitted when a \\\"who\\\" opts into a \\\"where\\\" entity.\"},\"OptOut(address,address)\":{\"notice\":\"Emitted when a \\\"who\\\" opts out from a \\\"where\\\" entity.\"}},\"kind\":\"user\",\"methods\":{\"WHERE_REGISTRY()\":{\"notice\":\"Get the address of the registry where to opt-in.\"},\"WHO_REGISTRY()\":{\"notice\":\"Get the \\\"who\\\" registry's address.\"},\"increaseNonce(address)\":{\"notice\":\"Increase the nonce of a given \\\"who\\\" to a particular \\\"where\\\" entity.\"},\"isOptedIn(address,address)\":{\"notice\":\"Check if a given \\\"who\\\" is opted-in to a particular \\\"where\\\" entity.\"},\"isOptedInAt(address,address,uint48,bytes)\":{\"notice\":\"Get if a given \\\"who\\\" is opted-in to a particular \\\"where\\\" entity at a given timestamp using a hint.\"},\"nonces(address,address)\":{\"notice\":\"Get the nonce of a given \\\"who\\\" to a particular \\\"where\\\" entity.\"},\"optIn(address)\":{\"notice\":\"Opt-in a calling \\\"who\\\" to a particular \\\"where\\\" entity.\"},\"optIn(address,address,uint48,bytes)\":{\"notice\":\"Opt-in a \\\"who\\\" to a particular \\\"where\\\" entity with a signature.\"},\"optOut(address)\":{\"notice\":\"Opt-out a calling \\\"who\\\" from a particular \\\"where\\\" entity.\"},\"optOut(address,address,uint48,bytes)\":{\"notice\":\"Opt-out a \\\"who\\\" from a particular \\\"where\\\" entity with a signature.\"},\"staticDelegateCall(address,bytes)\":{\"notice\":\"Make a delegatecall from this contract to a given target contract with a particular data (always reverts with a return data).\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/contracts/service/OptInService.sol\":\"OptInService\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/interfaces/IERC1271.sol\":{\"keccak256\":\"0x85a45f3f10014a0f8be41157a32b6a5f905753ea64a4b64e29fc12b7deeecf39\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c3c74009ce36136b36c77c23935b8e4a7b4f253be2da2be4fb4a916b1ce43743\",\"dweb:/ipfs/QmcH36v3iN7SJJuF73AunLR2LtNxhVJ1wm63ph4dPZ4pcL\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC5267.sol\":{\"keccak256\":\"0x92aa1df62dc3d33f1656d63bede0923e0df0b706ad4137c8b10b0a8fe549fd92\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c5c0f29195ad64cbe556da8e257dac8f05f78c53f90323c0d2accf8e6922d33a\",\"dweb:/ipfs/QmQ61TED8uaCZwcbh8KkgRSsCav7x7HbcGHwHts3U4DmUP\"]},\"lib/openzeppelin-contracts/contracts/utils/ShortStrings.sol\":{\"keccak256\":\"0x18a7171df639a934592915a520ecb97c5bbc9675a1105607aac8a94e72bf62c6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7478e1f13da69a2867ccd883001d836b75620362e743f196376d63ed0c422a1c\",\"dweb:/ipfs/QmWywcQ9TNfwtoqAxbn25d8C5VrV12PrPS9UjtGe6pL2BA\"]},\"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0x32ba59b4b7299237c8ba56319110989d7978a039faf754793064e967e5894418\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1ae50c8b562427df610cc4540c9bf104acca7ef8e2dcae567ae7e52272281e9c\",\"dweb:/ipfs/QmTHiadFCSJUPpRjNegc5SahmeU8bAoY8i9Aq6tVscbcKR\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0x55f102ea785d8399c0e58d1108e2d289506dde18abc6db1b7f68c1f9f9bc5792\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e52e0a7765c943ef14e5bcf11e46e6139fa044be564881378349236bf2e3453\",\"dweb:/ipfs/QmZEeeXoFPW47amyP35gfzomF9DixqqTEPwzBakv6cZw6i\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0xeed0a08b0b091f528356cbc7245891a4c748682d4f6a18055e8e6ca77d12a6cf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba80ba06c8e6be852847e4c5f4492cef801feb6558ae09ed705ff2e04ea8b13c\",\"dweb:/ipfs/QmXRJDv3xHLVQCVXg1ZvR35QS9sij5y9NDWYzMfUfAdTHF\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/EIP712.sol\":{\"keccak256\":\"0x999f705a027ed6dc2d4e0df2cc4a509852c6bfd11de1c8161bf88832d0503fd0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0798def67258d9a3cc20b2b4da7ebf351a5cefe0abfdd665d2d81f8e32f89b21\",\"dweb:/ipfs/QmPEvJosnPfzHNjKvCv2D3891mA2Ww8eUwkqrxBjuYdHCt\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol\":{\"keccak256\":\"0xba333517a3add42cd35fe877656fc3dfcc9de53baa4f3aabbd6d12a92e4ea435\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2ceacff44c0fdc81e48e0e0b1db87a2076d3c1fb497341de077bf1da9f6b406c\",\"dweb:/ipfs/QmRUo1muMRAewxrKQ7TkXUtknyRoR57AyEkoPpiuZQ8FzX\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/SignatureChecker.sol\":{\"keccak256\":\"0x6b11eb41a228cca35d4b662b4df69fcd75192851365102690f57b2ac01e83fe6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ab006a2983ed350d2af21ddcdd835dcae3b8340086cc4d088460da5abd041f69\",\"dweb:/ipfs/QmbEacDhkJZiGrgzLjB4pNtE8Z1uudjDw1DvcDUTVQFsLG\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875\",\"dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0xe19a4d5f31d2861e7344e8e535e2feafb913d806d3e2b5fe7782741a2a7094fe\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4aed79c0fa6f0546ed02f2f683e8f77f0fd2ed7eb34d8bbf3d373c9a6d95b13c\",\"dweb:/ipfs/QmWqVz6UAVqmnWU5pqYPt1o6iDEZyPaBraAA3rKfTTSfYj\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x5f7e4076e175393767754387c962926577f1660dd9b810187b9002407656be72\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7d533a1c97cd43a57cd9c465f7ee8dd0e39ae93a8fb8ff8e5303a356b081cdcc\",\"dweb:/ipfs/QmVBEei6aTnvYNZp2CHYVNKyZS4q1KkjANfY39WVXZXVoT\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/Checkpoints.sol\":{\"keccak256\":\"0xbdc5e074d7dd6678f67e92b1a51a20226801a407b0e1af3da367c5d1ff4519ad\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a36cca6b22fff3db16fc789ff6c60eea71d4b156065d4d0c83a0bc5e91a77a8b\",\"dweb:/ipfs/QmYN3exd5AemxjBrN8XMB1p5LbbE16uC3sjbYjwi8AjcGR\"]},\"lib/openzeppelin-contracts/contracts/utils/types/Time.sol\":{\"keccak256\":\"0xc7755af115020049e4140f224f9ee88d7e1799ffb0646f37bf0df24bf6213f58\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7f09bf94d5274334ec021f61a04659db303f31e60460e14b709c9bf187740111\",\"dweb:/ipfs/QmNvgomZYUwFAt4cZbPWAiTeSZQreGehY9BK5xyVJsUttb\"]},\"src/contracts/common/StaticDelegateCallable.sol\":{\"keccak256\":\"0x350029aa8955eacaffffaeb58babc5c98e80ebc5c5db388ed17ee6465f4a9d90\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://eb392a8ee9050e0af606897df63e3404e3829e8b688b580663892f9664195764\",\"dweb:/ipfs/QmaXC8jqV8UrrAFkzXTEv2fJF56sy33HhLxAzaRZmUxuXD\"]},\"src/contracts/libraries/Checkpoints.sol\":{\"keccak256\":\"0xba90097c8bfe0a975499428b5f8ac5569483c7d92ccc28c12d70de416aae040c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://12f5d93ca94cd06d3147db68993165a58e17903ed53682560de61f3085ad4609\",\"dweb:/ipfs/QmePiuAqvXprMLmFZkGZeGjvGPAvsEDHfCDv7BoQhXu9xE\"]},\"src/contracts/service/OptInService.sol\":{\"keccak256\":\"0x4e0932077f2686b7990e10d59deb2535334c0d09e52ef6e57c6ab09eca21c4b1\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://7c00d311032ed4a1743aca7475f3c86ce15cdfc2218108efc3731c03d34a5278\",\"dweb:/ipfs/QmUGGfVwVhaHr5kS4177yKKYiLYzi5qZpkEmvYxBZqazxf\"]},\"src/interfaces/common/IRegistry.sol\":{\"keccak256\":\"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014\",\"dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK\"]},\"src/interfaces/common/IStaticDelegateCallable.sol\":{\"keccak256\":\"0xa335d4e81b9071b7de66ef92b43ff20671d86516eb1be46fef29a3483cd3f5d5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d464b9db863c14c05547d2b23352f2e9b7b784799cf09f6bbc4906a2a74e3516\",\"dweb:/ipfs/QmUVWzFvJz7eEbDQKiFTTzwi7TEbjcs3VmwdM4kuptAKvi\"]},\"src/interfaces/service/IOptInService.sol\":{\"keccak256\":\"0x76fb5460a6d87a5705433d4fbeff7253cd75b8bbd0c888b2088f16e86ace146a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://990322019b3d11465f7024bae77ccbf7e2fe5d6fa3c754584778f37d04fa1337\",\"dweb:/ipfs/QmaSNHzcqxTkUCG9a4nqVfLECHLdjdrwAnDi3yDC7tDL24\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.25+commit.b61c2a91"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"whoRegistry","type":"address"},{"internalType":"address","name":"whereRegistry","type":"address"},{"internalType":"string","name":"name","type":"string"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"AlreadyOptedIn"},{"inputs":[],"type":"error","name":"CheckpointUnorderedInsertion"},{"inputs":[],"type":"error","name":"ExpiredSignature"},{"inputs":[],"type":"error","name":"InvalidShortString"},{"inputs":[],"type":"error","name":"InvalidSignature"},{"inputs":[],"type":"error","name":"NotOptedIn"},{"inputs":[],"type":"error","name":"NotWhereEntity"},{"inputs":[],"type":"error","name":"NotWho"},{"inputs":[],"type":"error","name":"OptOutCooldown"},{"inputs":[{"internalType":"uint8","name":"bits","type":"uint8"},{"internalType":"uint256","name":"value","type":"uint256"}],"type":"error","name":"SafeCastOverflowedUintDowncast"},{"inputs":[{"internalType":"string","name":"str","type":"string"}],"type":"error","name":"StringTooLong"},{"inputs":[],"type":"event","name":"EIP712DomainChanged","anonymous":false},{"inputs":[{"internalType":"address","name":"who","type":"address","indexed":true},{"internalType":"address","name":"where","type":"address","indexed":true}],"type":"event","name":"IncreaseNonce","anonymous":false},{"inputs":[{"internalType":"address","name":"who","type":"address","indexed":true},{"internalType":"address","name":"where","type":"address","indexed":true}],"type":"event","name":"OptIn","anonymous":false},{"inputs":[{"internalType":"address","name":"who","type":"address","indexed":true},{"internalType":"address","name":"where","type":"address","indexed":true}],"type":"event","name":"OptOut","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"WHERE_REGISTRY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"WHO_REGISTRY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"eip712Domain","outputs":[{"internalType":"bytes1","name":"fields","type":"bytes1"},{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"version","type":"string"},{"internalType":"uint256","name":"chainId","type":"uint256"},{"internalType":"address","name":"verifyingContract","type":"address"},{"internalType":"bytes32","name":"salt","type":"bytes32"},{"internalType":"uint256[]","name":"extensions","type":"uint256[]"}]},{"inputs":[{"internalType":"address","name":"where","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"increaseNonce"},{"inputs":[{"internalType":"address","name":"who","type":"address"},{"internalType":"address","name":"where","type":"address"}],"stateMutability":"view","type":"function","name":"isOptedIn","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"who","type":"address"},{"internalType":"address","name":"where","type":"address"},{"internalType":"uint48","name":"timestamp","type":"uint48"},{"internalType":"bytes","name":"hint","type":"bytes"}],"stateMutability":"view","type":"function","name":"isOptedInAt","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"who","type":"address"},{"internalType":"address","name":"where","type":"address"}],"stateMutability":"view","type":"function","name":"nonces","outputs":[{"internalType":"uint256","name":"nonce","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"where","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"optIn"},{"inputs":[{"internalType":"address","name":"who","type":"address"},{"internalType":"address","name":"where","type":"address"},{"internalType":"uint48","name":"deadline","type":"uint48"},{"internalType":"bytes","name":"signature","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"optIn"},{"inputs":[{"internalType":"address","name":"who","type":"address"},{"internalType":"address","name":"where","type":"address"},{"internalType":"uint48","name":"deadline","type":"uint48"},{"internalType":"bytes","name":"signature","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"optOut"},{"inputs":[{"internalType":"address","name":"where","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"optOut"},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"staticDelegateCall"}],"devdoc":{"kind":"dev","methods":{"eip712Domain()":{"details":"See {IERC-5267}."},"increaseNonce(address)":{"details":"It can be used to invalidate a given signature.","params":{"where":"address of the \"where\" entity"}},"isOptedIn(address,address)":{"params":{"where":"address of the \"where\" entity","who":"address of the \"who\""},"returns":{"_0":"if the \"who\" is opted-in"}},"isOptedInAt(address,address,uint48,bytes)":{"params":{"hint":"hint for the checkpoint index","timestamp":"time point to get if the \"who\" is opted-in at","where":"address of the \"where\" entity","who":"address of the \"who\""},"returns":{"_0":"if the \"who\" is opted-in at the given timestamp"}},"optIn(address)":{"params":{"where":"address of the \"where\" entity"}},"optIn(address,address,uint48,bytes)":{"params":{"deadline":"time point until the signature is valid (inclusively)","signature":"signature of the \"who\"","where":"address of the \"where\" entity","who":"address of the \"who\""}},"optOut(address)":{"params":{"where":"address of the \"where\" entity"}},"optOut(address,address,uint48,bytes)":{"params":{"deadline":"time point until the signature is valid (inclusively)","signature":"signature of the \"who\"","where":"address of the \"where\" entity","who":"address of the \"who\""}},"staticDelegateCall(address,bytes)":{"details":"It allows to use this contract's storage on-chain.","params":{"data":"data to make a delegatecall with","target":"address of the contract to make a delegatecall to"}}},"version":1},"userdoc":{"kind":"user","methods":{"WHERE_REGISTRY()":{"notice":"Get the address of the registry where to opt-in."},"WHO_REGISTRY()":{"notice":"Get the \"who\" registry's address."},"increaseNonce(address)":{"notice":"Increase the nonce of a given \"who\" to a particular \"where\" entity."},"isOptedIn(address,address)":{"notice":"Check if a given \"who\" is opted-in to a particular \"where\" entity."},"isOptedInAt(address,address,uint48,bytes)":{"notice":"Get if a given \"who\" is opted-in to a particular \"where\" entity at a given timestamp using a hint."},"nonces(address,address)":{"notice":"Get the nonce of a given \"who\" to a particular \"where\" entity."},"optIn(address)":{"notice":"Opt-in a calling \"who\" to a particular \"where\" entity."},"optIn(address,address,uint48,bytes)":{"notice":"Opt-in a \"who\" to a particular \"where\" entity with a signature."},"optOut(address)":{"notice":"Opt-out a calling \"who\" from a particular \"where\" entity."},"optOut(address,address,uint48,bytes)":{"notice":"Opt-out a \"who\" from a particular \"where\" entity with a signature."},"staticDelegateCall(address,bytes)":{"notice":"Make a delegatecall from this contract to a given target contract with a particular data (always reverts with a return data)."}},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/contracts/service/OptInService.sol":"OptInService"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts/contracts/interfaces/IERC1271.sol":{"keccak256":"0x85a45f3f10014a0f8be41157a32b6a5f905753ea64a4b64e29fc12b7deeecf39","urls":["bzz-raw://c3c74009ce36136b36c77c23935b8e4a7b4f253be2da2be4fb4a916b1ce43743","dweb:/ipfs/QmcH36v3iN7SJJuF73AunLR2LtNxhVJ1wm63ph4dPZ4pcL"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC5267.sol":{"keccak256":"0x92aa1df62dc3d33f1656d63bede0923e0df0b706ad4137c8b10b0a8fe549fd92","urls":["bzz-raw://c5c0f29195ad64cbe556da8e257dac8f05f78c53f90323c0d2accf8e6922d33a","dweb:/ipfs/QmQ61TED8uaCZwcbh8KkgRSsCav7x7HbcGHwHts3U4DmUP"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/ShortStrings.sol":{"keccak256":"0x18a7171df639a934592915a520ecb97c5bbc9675a1105607aac8a94e72bf62c6","urls":["bzz-raw://7478e1f13da69a2867ccd883001d836b75620362e743f196376d63ed0c422a1c","dweb:/ipfs/QmWywcQ9TNfwtoqAxbn25d8C5VrV12PrPS9UjtGe6pL2BA"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol":{"keccak256":"0x32ba59b4b7299237c8ba56319110989d7978a039faf754793064e967e5894418","urls":["bzz-raw://1ae50c8b562427df610cc4540c9bf104acca7ef8e2dcae567ae7e52272281e9c","dweb:/ipfs/QmTHiadFCSJUPpRjNegc5SahmeU8bAoY8i9Aq6tVscbcKR"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0x55f102ea785d8399c0e58d1108e2d289506dde18abc6db1b7f68c1f9f9bc5792","urls":["bzz-raw://6e52e0a7765c943ef14e5bcf11e46e6139fa044be564881378349236bf2e3453","dweb:/ipfs/QmZEeeXoFPW47amyP35gfzomF9DixqqTEPwzBakv6cZw6i"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol":{"keccak256":"0xeed0a08b0b091f528356cbc7245891a4c748682d4f6a18055e8e6ca77d12a6cf","urls":["bzz-raw://ba80ba06c8e6be852847e4c5f4492cef801feb6558ae09ed705ff2e04ea8b13c","dweb:/ipfs/QmXRJDv3xHLVQCVXg1ZvR35QS9sij5y9NDWYzMfUfAdTHF"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/EIP712.sol":{"keccak256":"0x999f705a027ed6dc2d4e0df2cc4a509852c6bfd11de1c8161bf88832d0503fd0","urls":["bzz-raw://0798def67258d9a3cc20b2b4da7ebf351a5cefe0abfdd665d2d81f8e32f89b21","dweb:/ipfs/QmPEvJosnPfzHNjKvCv2D3891mA2Ww8eUwkqrxBjuYdHCt"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol":{"keccak256":"0xba333517a3add42cd35fe877656fc3dfcc9de53baa4f3aabbd6d12a92e4ea435","urls":["bzz-raw://2ceacff44c0fdc81e48e0e0b1db87a2076d3c1fb497341de077bf1da9f6b406c","dweb:/ipfs/QmRUo1muMRAewxrKQ7TkXUtknyRoR57AyEkoPpiuZQ8FzX"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/SignatureChecker.sol":{"keccak256":"0x6b11eb41a228cca35d4b662b4df69fcd75192851365102690f57b2ac01e83fe6","urls":["bzz-raw://ab006a2983ed350d2af21ddcdd835dcae3b8340086cc4d088460da5abd041f69","dweb:/ipfs/QmbEacDhkJZiGrgzLjB4pNtE8Z1uudjDw1DvcDUTVQFsLG"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d","urls":["bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875","dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol":{"keccak256":"0xe19a4d5f31d2861e7344e8e535e2feafb913d806d3e2b5fe7782741a2a7094fe","urls":["bzz-raw://4aed79c0fa6f0546ed02f2f683e8f77f0fd2ed7eb34d8bbf3d373c9a6d95b13c","dweb:/ipfs/QmWqVz6UAVqmnWU5pqYPt1o6iDEZyPaBraAA3rKfTTSfYj"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0x5f7e4076e175393767754387c962926577f1660dd9b810187b9002407656be72","urls":["bzz-raw://7d533a1c97cd43a57cd9c465f7ee8dd0e39ae93a8fb8ff8e5303a356b081cdcc","dweb:/ipfs/QmVBEei6aTnvYNZp2CHYVNKyZS4q1KkjANfY39WVXZXVoT"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/Checkpoints.sol":{"keccak256":"0xbdc5e074d7dd6678f67e92b1a51a20226801a407b0e1af3da367c5d1ff4519ad","urls":["bzz-raw://a36cca6b22fff3db16fc789ff6c60eea71d4b156065d4d0c83a0bc5e91a77a8b","dweb:/ipfs/QmYN3exd5AemxjBrN8XMB1p5LbbE16uC3sjbYjwi8AjcGR"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/types/Time.sol":{"keccak256":"0xc7755af115020049e4140f224f9ee88d7e1799ffb0646f37bf0df24bf6213f58","urls":["bzz-raw://7f09bf94d5274334ec021f61a04659db303f31e60460e14b709c9bf187740111","dweb:/ipfs/QmNvgomZYUwFAt4cZbPWAiTeSZQreGehY9BK5xyVJsUttb"],"license":"MIT"},"src/contracts/common/StaticDelegateCallable.sol":{"keccak256":"0x350029aa8955eacaffffaeb58babc5c98e80ebc5c5db388ed17ee6465f4a9d90","urls":["bzz-raw://eb392a8ee9050e0af606897df63e3404e3829e8b688b580663892f9664195764","dweb:/ipfs/QmaXC8jqV8UrrAFkzXTEv2fJF56sy33HhLxAzaRZmUxuXD"],"license":"BUSL-1.1"},"src/contracts/libraries/Checkpoints.sol":{"keccak256":"0xba90097c8bfe0a975499428b5f8ac5569483c7d92ccc28c12d70de416aae040c","urls":["bzz-raw://12f5d93ca94cd06d3147db68993165a58e17903ed53682560de61f3085ad4609","dweb:/ipfs/QmePiuAqvXprMLmFZkGZeGjvGPAvsEDHfCDv7BoQhXu9xE"],"license":"MIT"},"src/contracts/service/OptInService.sol":{"keccak256":"0x4e0932077f2686b7990e10d59deb2535334c0d09e52ef6e57c6ab09eca21c4b1","urls":["bzz-raw://7c00d311032ed4a1743aca7475f3c86ce15cdfc2218108efc3731c03d34a5278","dweb:/ipfs/QmUGGfVwVhaHr5kS4177yKKYiLYzi5qZpkEmvYxBZqazxf"],"license":"BUSL-1.1"},"src/interfaces/common/IRegistry.sol":{"keccak256":"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb","urls":["bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014","dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK"],"license":"MIT"},"src/interfaces/common/IStaticDelegateCallable.sol":{"keccak256":"0xa335d4e81b9071b7de66ef92b43ff20671d86516eb1be46fef29a3483cd3f5d5","urls":["bzz-raw://d464b9db863c14c05547d2b23352f2e9b7b784799cf09f6bbc4906a2a74e3516","dweb:/ipfs/QmUVWzFvJz7eEbDQKiFTTzwi7TEbjcs3VmwdM4kuptAKvi"],"license":"MIT"},"src/interfaces/service/IOptInService.sol":{"keccak256":"0x76fb5460a6d87a5705433d4fbeff7253cd75b8bbd0c888b2088f16e86ace146a","urls":["bzz-raw://990322019b3d11465f7024bae77ccbf7e2fe5d6fa3c754584778f37d04fa1337","dweb:/ipfs/QmaSNHzcqxTkUCG9a4nqVfLECHLdjdrwAnDi3yDC7tDL24"],"license":"MIT"}},"version":1},"id":91} \ No newline at end of file diff --git a/out/OptInServiceHints.sol/OptInServiceHints.json b/out/OptInServiceHints.sol/OptInServiceHints.json index b0efe3e5..57794bb8 100644 --- a/out/OptInServiceHints.sol/OptInServiceHints.json +++ b/out/OptInServiceHints.sol/OptInServiceHints.json @@ -1 +1 @@ -{"abi":[{"type":"constructor","inputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"WHERE_REGISTRY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"WHO_REGISTRY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"eip712Domain","inputs":[],"outputs":[{"name":"fields","type":"bytes1","internalType":"bytes1"},{"name":"name","type":"string","internalType":"string"},{"name":"version","type":"string","internalType":"string"},{"name":"chainId","type":"uint256","internalType":"uint256"},{"name":"verifyingContract","type":"address","internalType":"address"},{"name":"salt","type":"bytes32","internalType":"bytes32"},{"name":"extensions","type":"uint256[]","internalType":"uint256[]"}],"stateMutability":"view"},{"type":"function","name":"increaseNonce","inputs":[{"name":"where","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"isOptedIn","inputs":[{"name":"who","type":"address","internalType":"address"},{"name":"where","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isOptedInAt","inputs":[{"name":"who","type":"address","internalType":"address"},{"name":"where","type":"address","internalType":"address"},{"name":"timestamp","type":"uint48","internalType":"uint48"},{"name":"hint","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"nonces","inputs":[{"name":"who","type":"address","internalType":"address"},{"name":"where","type":"address","internalType":"address"}],"outputs":[{"name":"nonce","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"optIn","inputs":[{"name":"where","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"optIn","inputs":[{"name":"who","type":"address","internalType":"address"},{"name":"where","type":"address","internalType":"address"},{"name":"deadline","type":"uint48","internalType":"uint48"},{"name":"signature","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"optInHint","inputs":[{"name":"optInService","type":"address","internalType":"address"},{"name":"who","type":"address","internalType":"address"},{"name":"where","type":"address","internalType":"address"},{"name":"timestamp","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"optInHintInternal","inputs":[{"name":"who","type":"address","internalType":"address"},{"name":"where","type":"address","internalType":"address"},{"name":"timestamp","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"exists","type":"bool","internalType":"bool"},{"name":"hint","type":"uint32","internalType":"uint32"}],"stateMutability":"view"},{"type":"function","name":"optOut","inputs":[{"name":"who","type":"address","internalType":"address"},{"name":"where","type":"address","internalType":"address"},{"name":"deadline","type":"uint48","internalType":"uint48"},{"name":"signature","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"optOut","inputs":[{"name":"where","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"staticDelegateCall","inputs":[{"name":"target","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"EIP712DomainChanged","inputs":[],"anonymous":false},{"type":"event","name":"IncreaseNonce","inputs":[{"name":"who","type":"address","indexed":true,"internalType":"address"},{"name":"where","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"OptIn","inputs":[{"name":"who","type":"address","indexed":true,"internalType":"address"},{"name":"where","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"OptOut","inputs":[{"name":"who","type":"address","indexed":true,"internalType":"address"},{"name":"where","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"error","name":"AlreadyOptedIn","inputs":[]},{"type":"error","name":"CheckpointUnorderedInsertion","inputs":[]},{"type":"error","name":"ExpiredSignature","inputs":[]},{"type":"error","name":"ExternalCall","inputs":[]},{"type":"error","name":"InvalidShortString","inputs":[]},{"type":"error","name":"InvalidSignature","inputs":[]},{"type":"error","name":"NotOptedIn","inputs":[]},{"type":"error","name":"NotWhereEntity","inputs":[]},{"type":"error","name":"NotWho","inputs":[]},{"type":"error","name":"OptOutCooldown","inputs":[]},{"type":"error","name":"SafeCastOverflowedUintDowncast","inputs":[{"name":"bits","type":"uint8","internalType":"uint8"},{"name":"value","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"StringTooLong","inputs":[{"name":"str","type":"string","internalType":"string"}]}],"bytecode":{"object":"0x6101c034610171576001600160401b03602082018181118382101761015d576040908082525f84528151938285018581108582111761015d5783526001855260208501603160f81b81523060805261005682610175565b926101409384526100668761030c565b926101609384525190209061010096828852519020610120948186524660c05280519160208301937f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f85528284015260608301524660808301523060a083015260a0825260c08201968288109088111761015d5786905251902060a0523060e052610180915f83526101a0935f8552611b9d9687610443883960805187610571015260a05187611770015260c0518761182b015260e0518761173a015251866117bf015251856117e5015251846102fd015251836103260152518281816106c1015261104e01525181818161026e01526110a10152f35b634e487b7160e01b5f52604160045260245ffd5b5f80fd5b8051602090818110156101eb5750601f8251116101ad578082519201519080831061019f57501790565b825f19910360031b1b161790565b60448260405192839163305a27a960e01b83528160048401528051918291826024860152018484015e5f828201840152601f01601f19168101030190fd5b906001600160401b03821161015d575f54926001938481811c91168015610302575b838210146102ee57601f81116102bb575b5081601f841160011461025957509282939183925f9461024e575b50501b915f199060031b1c1916175f5560ff90565b015192505f80610239565b919083601f1981165f8052845f20945f905b888383106102a15750505010610289575b505050811b015f5560ff90565b01515f1960f88460031b161c191690555f808061027c565b85870151885590960195948501948793509081019061026b565b5f805284601f845f20920160051c820191601f860160051c015b8281106102e357505061021e565b5f81550185906102d5565b634e487b7160e01b5f52602260045260245ffd5b90607f169061020d565b8051602090818110156103365750601f8251116101ad578082519201519080831061019f57501790565b9192916001600160401b03811161015d5760019182548381811c91168015610438575b828210146102ee57601f8111610405575b5080601f83116001146103a55750819293945f9261039a575b50505f19600383901b1c191690821b17905560ff90565b015190505f80610383565b90601f19831695845f52825f20925f905b8882106103ee57505083859697106103d6575b505050811b01905560ff90565b01515f1960f88460031b161c191690555f80806103c9565b8087859682949686015181550195019301906103b6565b835f5283601f835f20920160051c820191601f850160051c015b82811061042d57505061036a565b5f815501849061041f565b90607f169061035956fe60806040526004361015610011575f80fd5b5f3560e01c8063220d32d4146100f4578063530e1d43146100ef5780636d0fae4a146100ea5780638247a97c146100e557806384b0196e146100e05780639333fbda146100db57806393f79bc3146100d65780639a15d7a5146100d15780639f86fd85146100cc578063b1138ad1146100c7578063c4b5d62c146100c2578063ced44ba7146100bd578063d4610483146100b85763d4a63862146100b3575f80fd5b6107d6565b6107b4565b6106f0565b6106ac565b61068a565b6105f9565b610531565b610432565b6103db565b6102e5565b61029d565b610259565b6101f3565b610129565b600435906001600160a01b038216820361010f57565b5f80fd5b602435906001600160a01b038216820361010f57565b3461010f57604036600319011261010f5760206101556101476100f9565b61014f610113565b9061083f565b6040519015158152f35b9181601f8401121561010f5782359167ffffffffffffffff831161010f576020838186019501011161010f57565b90608060031983011261010f576001600160a01b0391600435838116810361010f5792602435908116810361010f579160443565ffffffffffff8116810361010f57916064359067ffffffffffffffff821161010f576101ef9160040161015f565b9091565b3461010f576020600161024961024f61023a61020e3661018d565b969290949193888060a01b03165f526003895260405f209060018060a01b03165f5260205260405f2090565b92868060d01b03953691610978565b91610bd6565b1614604051908152f35b3461010f575f36600319011261010f576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461010f57602036600319011261010f576102bf6102b96100f9565b33610ccf565b005b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b3461010f575f36600319011261010f5761037e6103217f000000000000000000000000000000000000000000000000000000000000000061123f565b61034a7f000000000000000000000000000000000000000000000000000000000000000061133d565b60405190610357826108d7565b5f825261038c602091604051958695600f60f81b875260e0602088015260e08701906102c1565b9085820360408701526102c1565b4660608501523060808501525f60a085015283810360c0850152602080845192838152019301915f5b8281106103c457505050500390f35b8351855286955093810193928101926001016103b5565b3461010f57604036600319011261010f5760206104296103f96100f9565b610401610113565b6001600160a01b039182165f9081526002855260408082209290931681526020919091522090565b54604051908152f35b3461010f576104403661018d565b909165ffffffffffff8061045342611406565b16911690811061051f576104ff926104f06104f89260018060a01b0380891691825f5260026020526104988960405f209060018060a01b03165f5260205260405f2090565b546040519260208401947f7830334d17a05ab8aeca8f1778e27182208fc2d454ac7b38a4edc2069ee3a4a6865260408501528a166060840152608083015260a082015260a081526104e8816108f3565b519020611438565b923691610978565b9084610d25565b1561050d576102bf91610e01565b604051638baa579f60e01b8152600490fd5b60405163df4cc36d60e01b8152600490fd5b3461010f57606036600319011261010f5761054a6100f9565b610552610113565b906044359065ffffffffffff8216820361010f576001600160a01b03927f0000000000000000000000000000000000000000000000000000000000000000841633036105e7576105c6936105c192165f52600360205260405f209060018060a01b03165f5260205260405f2090565b610f2c565b60408051941515855263ffffffff91909116602085015292915050f35b0390f35b604051637ca475e560e11b8152600490fd5b3461010f57604036600319011261010f576106126100f9565b60243567ffffffffffffffff811161010f575f916106358392369060040161015f565b90816040519283928337810184815203915af46106826106536109ae565b916106746040519384921515602084015260408084015260608301906102c1565b03601f19810183528261092b565b805190602001fd5b3461010f57602036600319011261010f576102bf6106a66100f9565b33611022565b3461010f575f36600319011261010f576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461010f576106fe3661018d565b909165ffffffffffff8061071142611406565b16911690811061051f576107a6926104f06104f89260018060a01b0380891691825f5260026020526107568960405f209060018060a01b03165f5260205260405f2090565b546040519260208401947f6ab5200f1123a8d51d1695a9e5e757267926b53c6359f90b8873cc7dcc30ea2c865260408501528a166060840152608083015260a082015260a081526104e8816108f3565b1561050d576102bf91611022565b3461010f57602036600319011261010f576102bf6107d06100f9565b33610e01565b3461010f57608036600319011261010f576107ef6100f9565b6107f7610113565b906044356001600160a01b038116810361010f576064359065ffffffffffff8216820361010f576105e39361082b93610a1f565b6040519182916020835260208301906102c1565b6001600160a01b039081165f908152600360209081526040808320939094168252919091522080548061087d57505060015f5b818060d01b03161490565b5f1990808281011161089d576001925f5260205f2001015460301c610872565b610b9f565b634e487b7160e01b5f52604160045260245ffd5b6040810190811067ffffffffffffffff8211176108d257604052565b6108a2565b6020810190811067ffffffffffffffff8211176108d257604052565b60c0810190811067ffffffffffffffff8211176108d257604052565b60a0810190811067ffffffffffffffff8211176108d257604052565b90601f8019910116810190811067ffffffffffffffff8211176108d257604052565b6040519061095a826108b6565b565b67ffffffffffffffff81116108d257601f01601f191660200190565b9291926109848261095c565b91610992604051938461092b565b82948184528183011161010f578281602093845f960137010152565b3d156109d8573d906109bf8261095c565b916109cd604051938461092b565b82523d5f602084013e565b606090565b5190811515820361010f57565b519063ffffffff8216820361010f57565b919082604091031261010f57610a1c6020610a15846109dd565b93016109ea565b90565b9392915f8060609665ffffffffffff604096875196602096639a15d7a560e01b888a015260018060a01b0380921660248a015216604488015216606486015260648552610a6b8561090f565b85519485610a9686820192639f86fd8560e01b845230602484015289604484015260648301906102c1565b0395610aaa601f199788810183528261092b565b51915afa50610ab76109ae565b8051810190848184840193031261010f57610ad38382016109dd565b90858101519067ffffffffffffffff821161010f57019082603f8301121561010f5783820151610b028161095c565b92610b0f8851948561092b565b8184528584019488838301011161010f57815f9289889301875e8401015215610b7d57908282610b4293510101906109fb565b9390610b4e5750505050565b610a1c93949550610b719051948592830191909163ffffffff6020820193169052565b0390810183528261092b565b8091505191821561010f5701fd5b9081602091031261010f57610a1c906109ea565b634e487b7160e01b5f52601160045260245ffd5b5f1981019190821161089d57565b90600163ffffffff8093160191821161089d57565b91805115610cc55780602080610bf193518301019101610b8b565b91610bfc83826111eb565b92610c0d845165ffffffffffff1690565b9065ffffffffffff8085169216828114610cac5782119182610c4c575b5050610c3a57610a1c9250611656565b5050602001516001600160d01b031690565b909150610c598354610bb3565b63ffffffff831614918215610c72575b50505f80610c2a565b610ca4919250610c8d610c87610c9992610bc1565b856111eb565b5165ffffffffffff1690565b65ffffffffffff1690565b115f80610c69565b50505050602091909101516001600160d01b0316905090565b50610a1c91611656565b6001600160a01b039081165f8181526002602090815260408083209590941680835294905291822080546001019055907f8ed32926585579e6191b145240df788165f4957e1135f30a00e08ee8feb9d6809080a3565b610d2f838361145e565b506004819592951015610ded57159384610dd7575b508315610d52575b50505090565b5f929350908291604051610d8a816106746020820194630b135d3f60e11b998a875260248401526040604484015260648301906102c1565b51915afa90610d976109ae565b82610dc9575b82610dad575b50505f8080610d4c565b90915060208180518101031261010f5760200151145f80610da3565b915060208251101591610d9d565b6001600160a01b0383811691161493505f610d44565b634e487b7160e01b5f52602160045260245ffd5b90610e3d610e3882610e238560018060a01b03165f52600360205260405f2090565b9060018060a01b03165f5260205260405f2090565b6118d3565b9091506001600160d01b031615610ee85765ffffffffffff80610e5f42611406565b16911614610ed657610e97610e8882610e238560018060a01b03165f52600360205260405f2090565b610e9142611406565b90611994565b5050610ea38183610ccf565b6001600160a01b0390811691167f1629cd9ad365627cf8408d19c50224af8f3213c1a18ae48062d92e22bddf7de55f80a3565b60405163291bf4b760e21b8152600490fd5b6040516334b09b3960e11b8152600490fd5b906001820180921161089d57565b90604051610f15816108b6565b915465ffffffffffff8116835260301c6020830152565b908154905f829160058411610fb5575b610f479350846115f4565b908115610fa957610f6890610f5b83610bb3565b905f5260205f2001610f08565b91610fa2610f99610f936020610f84875165ffffffffffff1690565b9601516001600160d01b031690565b93610bb3565b63ffffffff1690565b6001939291565b50505f905f905f905f90565b9192610fc0816114b6565b810390811161089d57610f4793855f5265ffffffffffff808360205f20015416908516105f14610ff1575091610f3c565b929150610ffd90610efa565b90610f3c565b9081602091031261010f57610a1c906109dd565b6040513d5f823e3d90fd5b6040516302910f8b60e31b8082526001600160a01b0383811660048401529293916020919082816024817f000000000000000000000000000000000000000000000000000000000000000089165afa90811561119f575f916111b6575b50156111a4576040519081526001600160a01b038316600482015281816024817f000000000000000000000000000000000000000000000000000000000000000088165afa91821561119f575f92611172575b505015611160576110e3818461083f565b61114e578061111961110a8493610e238760018060a01b03165f52600360205260405f2090565b61111342611406565b90611a9e565b50506111258185610ccf565b1691167f9b730d5b907ee509de729817a2bb37e404418ba569b3a50f36192372f973cb415f80a3565b60405163dcdeaba360e01b8152600490fd5b6040516321f5408d60e01b8152600490fd5b6111919250803d10611198575b611189818361092b565b810190611003565b5f806110d2565b503d61117f565b611017565b604051630fb9ff9560e41b8152600490fd5b6111cd9150833d851161119857611189818361092b565b5f61107f565b604051906111e0826108b6565b5f6020838281520152565b6112109161120a916111fb6111d3565b506112046111d3565b506116e2565b50610f08565b65ffffffffffff81511690602060018060d01b039101511660405191611235836108b6565b8252602082015290565b60ff811461125057610a1c9061170b565b506040515f80546001918160011c9260018316908115611333575b60209060208610831461131f578587528694602086019390811561130057506001146112a1575b505050610a1c9250038261092b565b9250936112ce5f80527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e56390565b945f935b8285106112ea57505050610a1c9350015f8080611292565b86548585015295860195879550938101936112d2565b92505050610a1c9491925060ff19168252151560051b015f8080611292565b634e487b7160e01b5f52602260045260245ffd5b93607f169361126b565b60ff811461134e57610a1c9061170b565b506040516001805480821c915f908281169081156113fc575b60209060208610831461131f5785875286946020860193908115611300575060011461139c57505050610a1c9250038261092b565b9250936113ca60015f527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf690565b945f935b8285106113e657505050610a1c9350015f8080611292565b86548585015295860195879550938101936113ce565b93607f1693611367565b65ffffffffffff90818111611419571690565b604490604051906306dfcc6560e41b8252603060048301526024820152fd5b604290611443611737565b906040519161190160f01b8352600283015260228201522090565b815191906041830361148e576114879250602082015190606060408401519301515f1a90611851565b9192909190565b50505f9160029190565b81156114a2570490565b634e487b7160e01b5f52601260045260245ffd5b80156115ef578061158861158161157761156d61156361155961154f6115456001610a1c9a5f908b60801c806115e3575b508060401c806115d6575b508060201c806115c9575b508060101c806115bc575b508060081c806115af575b508060041c806115a2575b508060021c80611595575b50821c61158e575b811c1b61153e818b611498565b0160011c90565b61153e818a611498565b61153e8189611498565b61153e8188611498565b61153e8187611498565b61153e8186611498565b61153e8185611498565b8092611498565b90611922565b8101611531565b600291509101905f611529565b600491509101905f61151e565b600891509101905f611513565b601091509101905f611508565b602091509101905f6114fd565b604091509101905f6114f2565b9150506080905f6114e7565b505f90565b91905b8382106116045750505090565b909192808316906001818518811c830180931161089d57855f5265ffffffffffff808460205f20015416908516105f14611643575050925b91906115f7565b90949350810180911161089d579161163c565b908154905f829160058411611694575b6116719350846115f4565b8061167c5750505f90565b61168590610bb3565b905f5260205f20015460301c90565b919261169f816114b6565b810390811161089d5761167193855f5265ffffffffffff808360205f20015416908516105f146116d0575091611666565b9291506116dc90610efa565b90611666565b80548210156116f7575f5260205f2001905f90565b634e487b7160e01b5f52603260045260245ffd5b60ff811690601f82116117255760405191611235836108b6565b604051632cd44ac360e21b8152600490fd5b307f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03161480611828575b15611792577f000000000000000000000000000000000000000000000000000000000000000090565b60405160208101907f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f82527f000000000000000000000000000000000000000000000000000000000000000060408201527f000000000000000000000000000000000000000000000000000000000000000060608201524660808201523060a082015260a08152611822816108f3565b51902090565b507f00000000000000000000000000000000000000000000000000000000000000004614611769565b91907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a084116118c8579160209360809260ff5f9560405194855216868401526040830152606082015282805260015afa1561119f575f516001600160a01b038116156118be57905f905f90565b505f906001905f90565b5050505f9160039190565b8054806118e45750505f905f905f90565b5f1990808281011161089d57611901925f5260205f200101610f08565b9065ffffffffffff82511691602060018060d01b0391015116906001929190565b908082101561192f575090565b905090565b8054680100000000000000008110156108d257611956916001820181556116e2565b91909161198157805160209091015160301b65ffffffffffff191665ffffffffffff91909116179055565b634e487b7160e01b5f525f60045260245ffd5b8054908115611a7c576119bc6119b76119ac84610bb3565b835f5260205f200190565b610f08565b906119cd825165ffffffffffff1690565b65ffffffffffff8581169491168410611a6a57611a37946020946119fa610c99865165ffffffffffff1690565b03611a3c5750611a2991611a10611a1b92610bb3565b905f5260205f200190565b65ffffffffffff8154169055565b01516001600160d01b031690565b905f90565b9050611a6591611a5b611a4d61094d565b65ffffffffffff9093168352565b5f85830152611934565b611a29565b604051632520601d60e01b8152600490fd5b611a98929150611a8d611a4d61094d565b5f6020830152611934565b5f905f90565b8054908115611b4357611ab66119b76119ac84610bb3565b90611ac7825165ffffffffffff1690565b65ffffffffffff8581169491168410611a6a57611b2194602094611af4610c99865165ffffffffffff1690565b03611b275750611a2991611a10611b0a92610bb3565b660100000000000065ffffffffffff825416179055565b90600190565b9050611a6591611b38611a4d61094d565b600182860152611934565b611b60929150611b54611a4d61094d565b60016020830152611934565b5f9060019056fea2646970667358221220493097ed5d1de1aae304a21f1e5e49755a20a7ad3440a5bb7c08f97c4b9ec07d64736f6c63430008190033","sourceMap":"215:929:88:-:0;;;;-1:-1:-1;;;;;215:929:88;;;;;;;;;;;;;;;;;-1:-1:-1;215:929:88;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;215:929:88;;348:4:87;332:21;;3401:45:53;;;:::i;:::-;3393:53;;;;;3467:51;;;:::i;:::-;3456:62;;;;;215:929:88;3542:22:53;;3528:36;;;;;;215:929:88;3591:25:53;;3574:42;;;;;3644:13;3627:30;;215:929:88;;4204:80:53;215:929:88;4204:80:53;;2079:95;;;;;;;;;;;;3644:13;332:21:87;2079:95:53;;;348:4:87;2079:95:53;;;;;4204:80;;3627:30;215:929:88;;;;;;;;;;;;;;;;4194:91:53;;2079:95;3667:48;348:4:87;3725:27:53;;1675:26:96;;-1:-1:-1;1675:26:96;;1711:30;;-1:-1:-1;1711:30:96;;215:929:88;;;;;;332:21:87;215:929:88;;;;;2079:95:53;215:929:88;;;;;3627:30:53;215:929:88;;;;;3725:27:53;215:929:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;215:929:88;;;;;-1:-1:-1;215:929:88;;;;;2914:340:49;215:929:88;;3059:2:49;;3037:24;;;3059:2;;;215:929:88;1854:2:49;215:929:88;;1840:16:49;1836:72;;215:929:88;;;;;2079:95:53;215:929:88;;;;;;1949:36:49;;3077:27;:::o;215:929:88:-;;;;;;;;;;1949:36:49;3077:27;:::o;1836:72::-;215:929:88;;;;1879:18:49;;;;;;;;;;;;215:929:88;;;;;;;;;;;;;;;;355:1;215:929;;;;;;1854:2:49;215:929:88;-1:-1:-1;;215:929:88;;;1879:18:49;;;;3033:215;215:929:88;-1:-1:-1;;;;;215:929:88;;;;355:1;215:929;;;;;;;;;;;;;;3033:215:49;215:929:88;;;;;;;;;;;3033:215:49;215:929:88;;;;;;;;;;;;;;;;355:1;215:929;;;;;;;;;;;;;;;;;355:1;215:929;1390:66:49;3195:42;:::o;215:929:88:-;;;;-1:-1:-1;215:929:88;;;;;;;;;;;;355:1;215:929;;;355:1;215:929;;355:1;215:929;;;;;;;;;;;;;;;;;;;;;355:1;215:929;1390:66:49;3195:42;:::o;215:929:88:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;215:929:88;;;;;;;355:1;215:929;;;;;355:1;215:929;;;;;;;;;;;;;;;;;;;;;;;;;355:1;215:929;;;;;;;;;;;355:1;215:929;;;;;355:1;215:929;;;;;;;;2914:340:49;215:929:88;;3059:2:49;;3037:24;;;3059:2;;;215:929:88;1854:2:49;215:929:88;;1840:16:49;1836:72;;215:929:88;;;;;2079:95:53;215:929:88;;;;;;1949:36:49;;3077:27;:::o;3033:215::-;215:929:88;;;-1:-1:-1;;;;;215:929:88;;;;;;;;;;;;;;;;;;3033:215:49;215:929:88;;;;;;;;;;;3033:215:49;215:929:88;;;;;;;;;;;;;;-1:-1:-1;215:929:88;;;;-1:-1:-1;;;;215:929:88;;;;;;;;;;;;;1390:66:49;;3195:42::o;215:929:88:-;;;;-1:-1:-1;215:929:88;;;;;;;;;;;;-1:-1:-1;215:929:88;;-1:-1:-1;215:929:88;;-1:-1:-1;215:929:88;;;;;;;;;;;;;;;;;;;;;;;;;1390:66:49;3195:42;:::o;215:929:88:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;215:929:88;;;;-1:-1:-1;215:929:88;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;215:929:88;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361015610011575f80fd5b5f3560e01c8063220d32d4146100f4578063530e1d43146100ef5780636d0fae4a146100ea5780638247a97c146100e557806384b0196e146100e05780639333fbda146100db57806393f79bc3146100d65780639a15d7a5146100d15780639f86fd85146100cc578063b1138ad1146100c7578063c4b5d62c146100c2578063ced44ba7146100bd578063d4610483146100b85763d4a63862146100b3575f80fd5b6107d6565b6107b4565b6106f0565b6106ac565b61068a565b6105f9565b610531565b610432565b6103db565b6102e5565b61029d565b610259565b6101f3565b610129565b600435906001600160a01b038216820361010f57565b5f80fd5b602435906001600160a01b038216820361010f57565b3461010f57604036600319011261010f5760206101556101476100f9565b61014f610113565b9061083f565b6040519015158152f35b9181601f8401121561010f5782359167ffffffffffffffff831161010f576020838186019501011161010f57565b90608060031983011261010f576001600160a01b0391600435838116810361010f5792602435908116810361010f579160443565ffffffffffff8116810361010f57916064359067ffffffffffffffff821161010f576101ef9160040161015f565b9091565b3461010f576020600161024961024f61023a61020e3661018d565b969290949193888060a01b03165f526003895260405f209060018060a01b03165f5260205260405f2090565b92868060d01b03953691610978565b91610bd6565b1614604051908152f35b3461010f575f36600319011261010f576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461010f57602036600319011261010f576102bf6102b96100f9565b33610ccf565b005b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b3461010f575f36600319011261010f5761037e6103217f000000000000000000000000000000000000000000000000000000000000000061123f565b61034a7f000000000000000000000000000000000000000000000000000000000000000061133d565b60405190610357826108d7565b5f825261038c602091604051958695600f60f81b875260e0602088015260e08701906102c1565b9085820360408701526102c1565b4660608501523060808501525f60a085015283810360c0850152602080845192838152019301915f5b8281106103c457505050500390f35b8351855286955093810193928101926001016103b5565b3461010f57604036600319011261010f5760206104296103f96100f9565b610401610113565b6001600160a01b039182165f9081526002855260408082209290931681526020919091522090565b54604051908152f35b3461010f576104403661018d565b909165ffffffffffff8061045342611406565b16911690811061051f576104ff926104f06104f89260018060a01b0380891691825f5260026020526104988960405f209060018060a01b03165f5260205260405f2090565b546040519260208401947f7830334d17a05ab8aeca8f1778e27182208fc2d454ac7b38a4edc2069ee3a4a6865260408501528a166060840152608083015260a082015260a081526104e8816108f3565b519020611438565b923691610978565b9084610d25565b1561050d576102bf91610e01565b604051638baa579f60e01b8152600490fd5b60405163df4cc36d60e01b8152600490fd5b3461010f57606036600319011261010f5761054a6100f9565b610552610113565b906044359065ffffffffffff8216820361010f576001600160a01b03927f0000000000000000000000000000000000000000000000000000000000000000841633036105e7576105c6936105c192165f52600360205260405f209060018060a01b03165f5260205260405f2090565b610f2c565b60408051941515855263ffffffff91909116602085015292915050f35b0390f35b604051637ca475e560e11b8152600490fd5b3461010f57604036600319011261010f576106126100f9565b60243567ffffffffffffffff811161010f575f916106358392369060040161015f565b90816040519283928337810184815203915af46106826106536109ae565b916106746040519384921515602084015260408084015260608301906102c1565b03601f19810183528261092b565b805190602001fd5b3461010f57602036600319011261010f576102bf6106a66100f9565b33611022565b3461010f575f36600319011261010f576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461010f576106fe3661018d565b909165ffffffffffff8061071142611406565b16911690811061051f576107a6926104f06104f89260018060a01b0380891691825f5260026020526107568960405f209060018060a01b03165f5260205260405f2090565b546040519260208401947f6ab5200f1123a8d51d1695a9e5e757267926b53c6359f90b8873cc7dcc30ea2c865260408501528a166060840152608083015260a082015260a081526104e8816108f3565b1561050d576102bf91611022565b3461010f57602036600319011261010f576102bf6107d06100f9565b33610e01565b3461010f57608036600319011261010f576107ef6100f9565b6107f7610113565b906044356001600160a01b038116810361010f576064359065ffffffffffff8216820361010f576105e39361082b93610a1f565b6040519182916020835260208301906102c1565b6001600160a01b039081165f908152600360209081526040808320939094168252919091522080548061087d57505060015f5b818060d01b03161490565b5f1990808281011161089d576001925f5260205f2001015460301c610872565b610b9f565b634e487b7160e01b5f52604160045260245ffd5b6040810190811067ffffffffffffffff8211176108d257604052565b6108a2565b6020810190811067ffffffffffffffff8211176108d257604052565b60c0810190811067ffffffffffffffff8211176108d257604052565b60a0810190811067ffffffffffffffff8211176108d257604052565b90601f8019910116810190811067ffffffffffffffff8211176108d257604052565b6040519061095a826108b6565b565b67ffffffffffffffff81116108d257601f01601f191660200190565b9291926109848261095c565b91610992604051938461092b565b82948184528183011161010f578281602093845f960137010152565b3d156109d8573d906109bf8261095c565b916109cd604051938461092b565b82523d5f602084013e565b606090565b5190811515820361010f57565b519063ffffffff8216820361010f57565b919082604091031261010f57610a1c6020610a15846109dd565b93016109ea565b90565b9392915f8060609665ffffffffffff604096875196602096639a15d7a560e01b888a015260018060a01b0380921660248a015216604488015216606486015260648552610a6b8561090f565b85519485610a9686820192639f86fd8560e01b845230602484015289604484015260648301906102c1565b0395610aaa601f199788810183528261092b565b51915afa50610ab76109ae565b8051810190848184840193031261010f57610ad38382016109dd565b90858101519067ffffffffffffffff821161010f57019082603f8301121561010f5783820151610b028161095c565b92610b0f8851948561092b565b8184528584019488838301011161010f57815f9289889301875e8401015215610b7d57908282610b4293510101906109fb565b9390610b4e5750505050565b610a1c93949550610b719051948592830191909163ffffffff6020820193169052565b0390810183528261092b565b8091505191821561010f5701fd5b9081602091031261010f57610a1c906109ea565b634e487b7160e01b5f52601160045260245ffd5b5f1981019190821161089d57565b90600163ffffffff8093160191821161089d57565b91805115610cc55780602080610bf193518301019101610b8b565b91610bfc83826111eb565b92610c0d845165ffffffffffff1690565b9065ffffffffffff8085169216828114610cac5782119182610c4c575b5050610c3a57610a1c9250611656565b5050602001516001600160d01b031690565b909150610c598354610bb3565b63ffffffff831614918215610c72575b50505f80610c2a565b610ca4919250610c8d610c87610c9992610bc1565b856111eb565b5165ffffffffffff1690565b65ffffffffffff1690565b115f80610c69565b50505050602091909101516001600160d01b0316905090565b50610a1c91611656565b6001600160a01b039081165f8181526002602090815260408083209590941680835294905291822080546001019055907f8ed32926585579e6191b145240df788165f4957e1135f30a00e08ee8feb9d6809080a3565b610d2f838361145e565b506004819592951015610ded57159384610dd7575b508315610d52575b50505090565b5f929350908291604051610d8a816106746020820194630b135d3f60e11b998a875260248401526040604484015260648301906102c1565b51915afa90610d976109ae565b82610dc9575b82610dad575b50505f8080610d4c565b90915060208180518101031261010f5760200151145f80610da3565b915060208251101591610d9d565b6001600160a01b0383811691161493505f610d44565b634e487b7160e01b5f52602160045260245ffd5b90610e3d610e3882610e238560018060a01b03165f52600360205260405f2090565b9060018060a01b03165f5260205260405f2090565b6118d3565b9091506001600160d01b031615610ee85765ffffffffffff80610e5f42611406565b16911614610ed657610e97610e8882610e238560018060a01b03165f52600360205260405f2090565b610e9142611406565b90611994565b5050610ea38183610ccf565b6001600160a01b0390811691167f1629cd9ad365627cf8408d19c50224af8f3213c1a18ae48062d92e22bddf7de55f80a3565b60405163291bf4b760e21b8152600490fd5b6040516334b09b3960e11b8152600490fd5b906001820180921161089d57565b90604051610f15816108b6565b915465ffffffffffff8116835260301c6020830152565b908154905f829160058411610fb5575b610f479350846115f4565b908115610fa957610f6890610f5b83610bb3565b905f5260205f2001610f08565b91610fa2610f99610f936020610f84875165ffffffffffff1690565b9601516001600160d01b031690565b93610bb3565b63ffffffff1690565b6001939291565b50505f905f905f905f90565b9192610fc0816114b6565b810390811161089d57610f4793855f5265ffffffffffff808360205f20015416908516105f14610ff1575091610f3c565b929150610ffd90610efa565b90610f3c565b9081602091031261010f57610a1c906109dd565b6040513d5f823e3d90fd5b6040516302910f8b60e31b8082526001600160a01b0383811660048401529293916020919082816024817f000000000000000000000000000000000000000000000000000000000000000089165afa90811561119f575f916111b6575b50156111a4576040519081526001600160a01b038316600482015281816024817f000000000000000000000000000000000000000000000000000000000000000088165afa91821561119f575f92611172575b505015611160576110e3818461083f565b61114e578061111961110a8493610e238760018060a01b03165f52600360205260405f2090565b61111342611406565b90611a9e565b50506111258185610ccf565b1691167f9b730d5b907ee509de729817a2bb37e404418ba569b3a50f36192372f973cb415f80a3565b60405163dcdeaba360e01b8152600490fd5b6040516321f5408d60e01b8152600490fd5b6111919250803d10611198575b611189818361092b565b810190611003565b5f806110d2565b503d61117f565b611017565b604051630fb9ff9560e41b8152600490fd5b6111cd9150833d851161119857611189818361092b565b5f61107f565b604051906111e0826108b6565b5f6020838281520152565b6112109161120a916111fb6111d3565b506112046111d3565b506116e2565b50610f08565b65ffffffffffff81511690602060018060d01b039101511660405191611235836108b6565b8252602082015290565b60ff811461125057610a1c9061170b565b506040515f80546001918160011c9260018316908115611333575b60209060208610831461131f578587528694602086019390811561130057506001146112a1575b505050610a1c9250038261092b565b9250936112ce5f80527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e56390565b945f935b8285106112ea57505050610a1c9350015f8080611292565b86548585015295860195879550938101936112d2565b92505050610a1c9491925060ff19168252151560051b015f8080611292565b634e487b7160e01b5f52602260045260245ffd5b93607f169361126b565b60ff811461134e57610a1c9061170b565b506040516001805480821c915f908281169081156113fc575b60209060208610831461131f5785875286946020860193908115611300575060011461139c57505050610a1c9250038261092b565b9250936113ca60015f527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf690565b945f935b8285106113e657505050610a1c9350015f8080611292565b86548585015295860195879550938101936113ce565b93607f1693611367565b65ffffffffffff90818111611419571690565b604490604051906306dfcc6560e41b8252603060048301526024820152fd5b604290611443611737565b906040519161190160f01b8352600283015260228201522090565b815191906041830361148e576114879250602082015190606060408401519301515f1a90611851565b9192909190565b50505f9160029190565b81156114a2570490565b634e487b7160e01b5f52601260045260245ffd5b80156115ef578061158861158161157761156d61156361155961154f6115456001610a1c9a5f908b60801c806115e3575b508060401c806115d6575b508060201c806115c9575b508060101c806115bc575b508060081c806115af575b508060041c806115a2575b508060021c80611595575b50821c61158e575b811c1b61153e818b611498565b0160011c90565b61153e818a611498565b61153e8189611498565b61153e8188611498565b61153e8187611498565b61153e8186611498565b61153e8185611498565b8092611498565b90611922565b8101611531565b600291509101905f611529565b600491509101905f61151e565b600891509101905f611513565b601091509101905f611508565b602091509101905f6114fd565b604091509101905f6114f2565b9150506080905f6114e7565b505f90565b91905b8382106116045750505090565b909192808316906001818518811c830180931161089d57855f5265ffffffffffff808460205f20015416908516105f14611643575050925b91906115f7565b90949350810180911161089d579161163c565b908154905f829160058411611694575b6116719350846115f4565b8061167c5750505f90565b61168590610bb3565b905f5260205f20015460301c90565b919261169f816114b6565b810390811161089d5761167193855f5265ffffffffffff808360205f20015416908516105f146116d0575091611666565b9291506116dc90610efa565b90611666565b80548210156116f7575f5260205f2001905f90565b634e487b7160e01b5f52603260045260245ffd5b60ff811690601f82116117255760405191611235836108b6565b604051632cd44ac360e21b8152600490fd5b307f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03161480611828575b15611792577f000000000000000000000000000000000000000000000000000000000000000090565b60405160208101907f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f82527f000000000000000000000000000000000000000000000000000000000000000060408201527f000000000000000000000000000000000000000000000000000000000000000060608201524660808201523060a082015260a08152611822816108f3565b51902090565b507f00000000000000000000000000000000000000000000000000000000000000004614611769565b91907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a084116118c8579160209360809260ff5f9560405194855216868401526040830152606082015282805260015afa1561119f575f516001600160a01b038116156118be57905f905f90565b505f906001905f90565b5050505f9160039190565b8054806118e45750505f905f905f90565b5f1990808281011161089d57611901925f5260205f200101610f08565b9065ffffffffffff82511691602060018060d01b0391015116906001929190565b908082101561192f575090565b905090565b8054680100000000000000008110156108d257611956916001820181556116e2565b91909161198157805160209091015160301b65ffffffffffff191665ffffffffffff91909116179055565b634e487b7160e01b5f525f60045260245ffd5b8054908115611a7c576119bc6119b76119ac84610bb3565b835f5260205f200190565b610f08565b906119cd825165ffffffffffff1690565b65ffffffffffff8581169491168410611a6a57611a37946020946119fa610c99865165ffffffffffff1690565b03611a3c5750611a2991611a10611a1b92610bb3565b905f5260205f200190565b65ffffffffffff8154169055565b01516001600160d01b031690565b905f90565b9050611a6591611a5b611a4d61094d565b65ffffffffffff9093168352565b5f85830152611934565b611a29565b604051632520601d60e01b8152600490fd5b611a98929150611a8d611a4d61094d565b5f6020830152611934565b5f905f90565b8054908115611b4357611ab66119b76119ac84610bb3565b90611ac7825165ffffffffffff1690565b65ffffffffffff8581169491168410611a6a57611b2194602094611af4610c99865165ffffffffffff1690565b03611b275750611a2991611a10611b0a92610bb3565b660100000000000065ffffffffffff825416179055565b90600190565b9050611a6591611b38611a4d61094d565b600182860152611934565b611b60929150611b54611a4d61094d565b60016020830152611934565b5f9060019056fea2646970667358221220493097ed5d1de1aae304a21f1e5e49755a20a7ad3440a5bb7c08f97c4b9ec07d64736f6c63430008190033","sourceMap":"215:929:88:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;;;-1:-1:-1;;;;;215:929:88;;;;;;:::o;:::-;;;;;;;;-1:-1:-1;;;;;215:929:88;;;;;;:::o;:::-;;;;;;-1:-1:-1;;215:929:88;;;;;;;;:::i;:::-;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;215:929:88;;;;;-1:-1:-1;;;;;215:929:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;2036:1:96;215:929:88;1975:57:96;:22;215:929:88;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;215:929:88;1975:10:96;215:929:88;;;-1:-1:-1;215:929:88;;;;;;;;;;;;;;;;;1975:22:96;215:929:88;;;;;;;;;;:::i;:::-;1975:57:96;;:::i;:::-;215:929:88;1975:62:96;215:929:88;;;;;;;;;;;;-1:-1:-1;;215:929:88;;;;;;851:39:96;-1:-1:-1;;;;;215:929:88;;;;;;;;;;;;-1:-1:-1;;215:929:88;;;;3493:5:96;215:929:88;;:::i;:::-;3481:10:96;3493:5;:::i;:::-;215:929:88;;;;;;;;;;;;;;;;;;-1:-1:-1;215:929:88;;;;;;;;-1:-1:-1;;215:929:88;;;;:::o;:::-;;;;;;-1:-1:-1;;215:929:88;;;;;6099:41:53;:5;:41;:::i;:::-;6554:47;:8;:47;:::i;:::-;215:929:88;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;5590:13:53;215:929:88;;;;5625:4:53;215:929:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;215:929:88;;;;;;;;6584:16:53;215:929:88;;;;;;;;;-1:-1:-1;;215:929:88;;;;;1214:77:96;215:929:88;;:::i;:::-;;;:::i;:::-;-1:-1:-1;;;;;215:929:88;;;-1:-1:-1;215:929:88;;;1214:77:96;215:929:88;;;;;;;;;;;;-1:-1:-1;215:929:88;;;;;;;1214:77:96;215:929:88;;;;;;;;;;;;;;:::i;:::-;;;;837:15:63;819:34;837:15;819:34;:::i;:::-;215:929:88;;;1469:27:96;;;1465:83;;3164:88;215:929:88;4587:179:96;215:929:88;;;;;;;;;;;;-1:-1:-1;215:929:88;4713:6:96;215:929:88;;4713:18:96;215:929:88;;-1:-1:-1;215:929:88;;;;;;;;;;;;;;;;;4713:18:96;215:929:88;;;4644:98:96;215:929:88;4644:98:96;;215:929:88;1082:76:96;215:929:88;;;948:75:96;;215:929:88;;;948:75:96;;;215:929:88;948:75:96;;;215:929:88;948:75:96;;;215:929:88;948:75:96;4644:98;;;;;:::i;:::-;215:929:88;4617:139:96;;4587:179;:::i;:::-;215:929:88;;;;:::i;:::-;3164:88:96;;;:::i;:::-;3163:89;3159:145;;3327:5;;;:::i;3159:145::-;215:929:88;;-1:-1:-1;;;3275:18:96;;215:929:88;;3275:18:96;1465:83;215:929:88;;-1:-1:-1;;;1519:18:96;;215:929:88;;1519:18:96;215:929:88;;;;;;-1:-1:-1;;215:929:88;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;;;;215:929:88;449:5:87;215:929:88;;435:10:87;:19;431:71;;581:61:88;215:929;581:22;215:929;;-1:-1:-1;215:929:88;581:10;215:929;;;-1:-1:-1;215:929:88;;;;;;;;;;;;;;;;;581:22;:61;:::i;:::-;215:929;;;;;;;;;;;;;;;;;;;-1:-1:-1;;215:929:88;;;;;431:71:87;215:929:88;;-1:-1:-1;;;477:14:87;;215:929:88;;477:14:87;215:929:88;;;;;;-1:-1:-1;;215:929:88;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;215:929:88;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;416:25:80;;;;477:31;416:25;;:::i;:::-;215:929:88;;;;;;;;;;477:31:80;;215:929:88;;;;;;;;;;;:::i;:::-;477:31:80;215:929:88;;477:31:80;;;;;;:::i;:::-;518:79;;;215:929:88;518:79:80;;215:929:88;;;;;;-1:-1:-1;;215:929:88;;;;2370:5:96;215:929:88;;:::i;:::-;2358:10:96;2370:5;:::i;215:929:88:-;;;;;;-1:-1:-1;;215:929:88;;;;;;758:37:96;-1:-1:-1;;;;;215:929:88;;;;;;;;;;;;;:::i;:::-;;;;837:15:63;819:34;837:15;819:34;:::i;:::-;215:929:88;;;1469:27:96;;;1465:83;;2610:87;215:929:88;4587:179:96;215:929:88;;;;;;;;;;;;-1:-1:-1;215:929:88;4713:6:96;215:929:88;;4713:18:96;215:929:88;;-1:-1:-1;215:929:88;;;;;;;;;;;;;;;;;4713:18:96;215:929:88;;;4644:98:96;215:929:88;4644:98:96;;215:929:88;948:75:96;215:929:88;;;948:75:96;;215:929:88;;;948:75:96;;;215:929:88;948:75:96;;;215:929:88;948:75:96;;;215:929:88;948:75:96;4644:98;;;;;:::i;2610:87::-;2609:88;2605:144;;2771:5;;;:::i;215:929:88:-;;;;;;-1:-1:-1;;215:929:88;;;;2923:5:96;215:929:88;;:::i;:::-;2911:10:96;2923:5;:::i;215:929:88:-;;;;;;-1:-1:-1;;215:929:88;;;;;;:::i;:::-;;;:::i;:::-;;;;-1:-1:-1;;;;;215:929:88;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;2099:134:96:-;-1:-1:-1;;;;;215:929:88;;;-1:-1:-1;215:929:88;;;2190:10:96;215:929:88;;;;;;;;;;;;;;;;;;;;;10303:8:61;;;:63;;2225:1:96;-1:-1:-1;10303:63:61;215:929:88;;;;;;2190:36:96;2099:134;:::o;10303:63:61:-;215:929:88;;;;;;;;;;2225:1:96;13267:109:91;-1:-1:-1;13267:109:91;215:929:88;-1:-1:-1;13267:109:91;;;215:929:88;;;10303:63:61;;215:929:88;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;:::i;:::-;;;;;;;;;;;;;;;:::o;:::-;948:75:96;215:929:88;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;:::o;:::-;;;;;;;;-1:-1:-1;;215:929:88;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;215:929:88;;;;;;:::o;:::-;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;-1:-1:-1;215:929:88;;;;:::o;:::-;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;:::o;655:487::-;;;;-1:-1:-1;803:12:88;215:929;;;;;;;936:76;;;;;;;;;;215:929;;;;;;;;936:76;;;215:929;;;;;;;;;;;;936:76;;;;;:::i;:::-;215:929;;716:88:87;;215:929:88;716:88:87;;;;;;;;;783:4;936:76:88;716:88:87;;215:929:88;;;;;;;;;;;:::i;:::-;716:88:87;215:929:88;716:88:87;215:929:88;;716:88:87;;;;;;;;:::i;:::-;698:107;;;;;;;:::i;:::-;215:929:88;;857:45:87;;;;;;;;215:929:88;;;;;;857:45:87;;;215:929:88;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;215:929:88;;;;;;;;;;;916:8:87;912:175;;215:929:88;;;857:207;215:929;;857:207;;;;:::i;:::-;1075:61;;;;655:487;;;;:::o;1075:61::-;1108:17;215:929;;;;1108:17;215:929;;1108:17;;;;;215:929;;;;;;;;;;;;1108:17;;;;;;;;;:::i;912:175:87:-;215:929:88;;;;944:22:87;;;940:36;;990:87;;215:929:88;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;215:929:88;;;;;;;;:::o;:::-;;;;;;;;;;;;;:::o;1818:604:91:-;;215:929:88;;1946:17:91;1942:83;;215:929:88;2049:27:91;215:929:88;2049:27:91;215:929:88;;2049:27:91;;;;;;:::i;:::-;2120:14;;;;;:::i;:::-;215:929:88;;;;;;;;;;;;;;;;2148:22:91;;;2144:77;;2235:21;-1:-1:-1;2235:84:91;;;;1818:604;2231:139;;;;1425:34;;;;:::i;2231:139::-;-1:-1:-1;;2049:27:91;2342:17;215:929:88;-1:-1:-1;;;;;215:929:88;;:::o;2235:84:91:-;215:929:88;;;2269:16:91;215:929:88;;2269:16:91;:::i;:::-;215:929:88;;;2261:24:91;:57;;;;;2235:84;;;;;;;2261:57;2289:29;2298:8;;;2289:18;2298:8;2289:23;2298:8;;:::i;:::-;2289:18;;:::i;:::-;215:929:88;;;;;2289:23:91;215:929:88;;;;2289:29:91;;2261:57;;;;2144:77;-1:-1:-1;;;;2049:27:91;2193:17;;;;215:929:88;-1:-1:-1;;;;;215:929:88;;-1:-1:-1;215:929:88;:::o;1942:83:91:-;1425:34;;;;:::i;4779:173:96:-;-1:-1:-1;;;;;215:929:88;;;-1:-1:-1;215:929:88;;;4876:6:96;215:929:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;4920:25:96;;-1:-1:-1;4920:25:96;4779:173::o;1039:368:55:-;1211:33;;;;:::i;:::-;215:929:88;;;;;;;;;;1274:35:55;:58;;;;1039:368;1273:127;;;;;1039:368;1254:146;;;1039:368;:::o;1273:127::-;1283:26;215:929:88;;;;;;;;2041:60:55;;215:929:88;2041:60:55;;;;;;;;;;;;;;215:929:88;;;;;;;;;;;:::i;2041:60:55:-;2010:101;;;;;;;:::i;:::-;2129:42;;;1273:127;2129:134;;;1273:127;;;;;;;;2129:134;215:929:88;;;2041:60:55;215:929:88;;;2187:29:55;;215:929:88;;;;2041:60:55;2187:29;215:929:88;2187:76:55;2129:134;;;;:42;215:929:88;;2041:60:55;215:929:88;;2152:19:55;;2129:42;;;1274:58;-1:-1:-1;;;;;215:929:88;;;;;1313:19:55;;-1:-1:-1;1274:58:55;;;215:929:88;;;;1283:26:55;215:929:88;;;;;1283:26:55;215:929:88;3991:467:96;;5260:30:91;4105:22:96;:15;;;215:929:88;;;;;;;;4105:10:96;215:929:88;;;;;;;4105:15:96;215:929:88;;;;;;;;;;;;;;;;4105:22:96;5260:30:91;:::i;:::-;215:929:88;;-1:-1:-1;;;;;;215:929:88;4161:16:96;4157:66;;215:929:88;837:15:63;819:34;837:15;819:34;:::i;:::-;215:929:88;;;4237:35:96;4233:89;;8167:38:61;4332:22:96;:15;;;215:929:88;;;;;;;;4105:10:96;215:929:88;;;;;;;4332:22:96;819:34:63;837:15;819:34;:::i;:::-;8167:38:61;;:::i;:::-;4411:5:96;;;;;;:::i;:::-;-1:-1:-1;;;;;215:929:88;;;;;4433:18:96;-1:-1:-1;;4433:18:96;3991:467::o;4233:89::-;215:929:88;;-1:-1:-1;;;4295:16:96;;;;;4157:66;215:929:88;;-1:-1:-1;;;4200:12:96;;;;;215:929:88;;3149:1:91;215:929:88;;;;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::o;2666:855:91:-;;215:929:88;;2880:15:91;2838:11;2905:18;2938:7;2944:1;2938:7;;2934:241;;2666:855;3199:60;;;;;:::i;:::-;3274:8;;;3270:62;;215:929:88;3430:7:91;;;;:::i;:::-;13267:109;2838:11;13267:109;;2838:11;13267:109;;215:929:88;:::i;:::-;;3498:15:91;3505:7;215:929:88;13267:109:91;215:929:88;;;;;;;;3479:17:91;;215:929:88;-1:-1:-1;;;;;215:929:88;;;;3505:7:91;;:::i;:::-;215:929:88;;;;3498:15:91;3436:1;;3448:66;;2666:855::o;3270:62::-;3298:23;;2838:11;3298:23;2838:11;3298:23;2838:11;3298:23;2838:11;3298:23;:::o;2934:241::-;2981:14;;;;;:::i;:::-;215:929:88;;;;;;;3199:60:91;13267:109;;2838:11;13267:109;215:929:88;13267:109:91;;;2838:11;13267:109;;215:929:88;;;;;3013:55:91;3009:156;215:929:88;;;3088:10:91;3009:156;2934:241;;3009:156;3143:7;;;;;;:::i;:::-;3009:156;2934:241;;215:929:88;;;;;;;;;;;;:::i;:::-;;;;;;;;;;3512:473:96;215:929:88;;-1:-1:-1;;;3580:37:96;;;-1:-1:-1;;;;;215:929:88;;;3580:37:96;;;215:929:88;;;3512:473:96;3580:37;;215:929:88;3580:37:96;215:929:88;;;3590:12:96;215:929:88;;3580:37:96;;;;;;;-1:-1:-1;3580:37:96;;;3512:473;3579:38;;3575:84;;215:929:88;;3674:41:96;;;-1:-1:-1;;;;;215:929:88;;3580:37:96;3674:41;;215:929:88;3674:41:96;215:929:88;;;3684:14:96;215:929:88;;3674:41:96;;;;;;;-1:-1:-1;3674:41:96;;;3512:473;3673:42;;;3669:96;;3779:21;;;;:::i;:::-;3775:75;;3860:15;8167:38:61;3860:22:96;:15;;;;215:929:88;;;;;;;;4105:10:96;215:929:88;;;;;;;3860:22:96;819:34:63;837:15;819:34;:::i;:::-;8167:38:61;;:::i;:::-;3939:5:96;;;;;;:::i;:::-;215:929:88;;;3961:17:96;-1:-1:-1;3961:17:96;;3512:473::o;3775:75::-;215:929:88;;-1:-1:-1;;;3823:16:96;;3580:37;;3823:16;3669:96;215:929:88;;-1:-1:-1;;;3738:16:96;;3580:37;;3738:16;3674:41;;;;;;-1:-1:-1;3674:41:96;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;;:::i;3575:84::-;215:929:88;;-1:-1:-1;;;3640:8:96;;3580:37;;3640:8;3580:37;;;;;;;;;;;;;;:::i;:::-;;;;215:929:88;;;;;;;:::i;:::-;-1:-1:-1;215:929:88;;;;;;;:::o;5573:258:91:-;215:929:88;5573:258:91;11308:22:61;5573:258:91;215:929:88;;:::i;:::-;;;;:::i;:::-;;11308:22:61;:::i;:::-;215:929:88;;:::i;:::-;;;;;;5805:17:91;215:929:88;;;;;5805:17:91;;215:929:88;;;;;;;;:::i;:::-;;;5805:17:91;5759:65;;215:929:88;5573:258:91;:::o;3385:267:49:-;1390:66;3508:46;;1390:66;;3577:15;;;:::i;3504:142::-;215:929:88;;;;;1390:66:49;;;;;;;;;;;;;;;3504:142;1390:66;;;;;;;;;215:929:88;;;1390:66:49;;215:929:88;;;1390:66:49;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;215:929:88;1390:66:49;;;;;;;215:929:88;1390:66:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1390:66:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;215:929:88;;;;1390:66:49;;;;;215:929:88;1390:66:49;;;;;;;;3385:267;1390:66;3508:46;;1390:66;;3577:15;;;:::i;3504:142::-;-1:-1:-1;215:929:88;;6584:16:53;1390:66:49;;;;;;-1:-1:-1;;1390:66:49;;;;;;;;3504:142;1390:66;;;;;;;;;215:929:88;;;1390:66:49;;215:929:88;;;1390:66:49;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;6584:16:53;1390:66:49;;;;;;;-1:-1:-1;1390:66:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1390:66:49;;;;;;;;;;;;;14291:213:59;215:929:88;14369:24:59;;;;14365:103;;215:929:88;14291:213:59;:::o;14365:103::-;215:929:88;;;;14416:41:59;;;;;;14447:2;14416:41;;;215:929:88;;;;;14416:41:59;4917:176:53;3515:233:54;4917:176:53;5053:20;;:::i;:::-;3515:233:54;;;;-1:-1:-1;;;3515:233:54;;;;;;;;;;;4917:176:53;:::o;2129:766:52:-;215:929:88;;;2129:766:52;2276:2;2256:22;;2276:2;;2739:25;2539:180;;;;;;;;;;;;;;;-1:-1:-1;2539:180:52;2739:25;;:::i;:::-;2732:32;;;;;:::o;2252:637::-;2795:83;;2811:1;2795:83;2815:35;2795:83;;:::o;215:929:88:-;;;;;;;:::o;:::-;;;;;;;;;;;;8587:1642:58;8658:6;;8654:45;;9401:7;10201:10;10142:26;10093;10044;9995;9946;9897;9848;215:929:88;10189:23:58;9401:7;8663:1;215:929:88;;;;10826:16:58;10822:99;;8587:1642;215:929:88;;;;10938:15:58;10934:96;;8587:1642;215:929:88;;;;11047:15:58;11043:96;;8587:1642;215:929:88;;;;11156:15:58;11152:96;;8587:1642;215:929:88;;;;11265:14:58;11261:93;;8587:1642;215:929:88;;;;11371:14:58;11367:93;;8587:1642;215:929:88;;;;11477:14:58;11473:93;;8587:1642;215:929:88;;;11579:64:58;;8587:1642;215:929:88;;;9858:10:58;;;;:::i;:::-;215:929:88;;;;;9848:26:58;9907:10;;;;:::i;9897:26::-;9956:10;;;;:::i;9946:26::-;10005:10;;;;:::i;9995:26::-;10054:10;;;;:::i;10044:26::-;10103:10;;;;:::i;10093:26::-;10152:10;;;;:::i;10142:26::-;10201:10;;;:::i;:::-;10189:23;;:::i;11579:64::-;215:929:88;;11579:64:58;;11473:93;215:929:88;11511:11:58;;215:929:88;;11473:93:58;;;;11367;215:929:88;11405:11:58;;215:929:88;;11367:93:58;;;;11261;215:929:88;11299:11:58;;215:929:88;;11261:93:58;;;;11152:96;215:929:88;11191:12:58;;215:929:88;;11152:96:58;;;;11043;215:929:88;11082:12:58;;215:929:88;;11043:96:58;;;;10934;215:929:88;10973:12:58;;215:929:88;;10934:96:58;;;;10822:99;10862:13;;;215:929:88;10822:99:58;;;;8654:45;8680:8;8663:1;8680:8;:::o;12497:447:91:-;;;12694:10;;;;;;12926:11;;;12497:447;:::o;12687:230::-;2900:5:58;;;;;;215:929:88;;2910:5:58;;;215:929:88;;;;;;;;;13267:109:91;-1:-1:-1;13267:109:91;215:929:88;13267:109:91;;;-1:-1:-1;13267:109:91;;215:929:88;;;;;-1:-1:-1;12771:136:91;215:929:88;;;12830:10:91;;12771:136;;12687:230;;;;12771:136;215:929:88;;;;;;;;;;;12771:136:91;;;9441:606:61;;215:929:88;;9594:15:61;9559:17;9619:18;9652:7;9658:1;9652:7;;9648:234;;9441:606;9906:53;;;;;:::i;:::-;9977:8;;;:63;;9559:17;9441:606;:::o;9977:63::-;10025:7;;;:::i;:::-;13267:109:91;9559:17:61;13267:109:91;;9559:17:61;13267:109:91;;215:929:88;;;9441:606:61;:::o;9648:234::-;9695:14;;;;;:::i;:::-;215:929:88;;;;;;;9906:53:61;13267:109:91;;9559:17:61;13267:109:91;215:929:88;13267:109:91;;;9559:17:61;13267:109:91;;215:929:88;;;;;9727:48:61;9723:149;215:929:88;;;9795:10:61;9723:149;9648:234;;9723:149;9850:7;;;;;;:::i;:::-;9723:149;9648:234;;215:929:88;;;;;;;;-1:-1:-1;1390:66:49;;-1:-1:-1;1390:66:49;215:929:88;;-1:-1:-1;215:929:88;:::o;:::-;;;;;;;;;;;;2078:405:49;2688:4;2652:40;;2706:11;2715:2;2706:11;;2702:69;;215:929:88;;;;;;:::i;2702:69:49:-;215:929:88;;-1:-1:-1;;;2740:20:49;;;;;3845:262:53;3929:4;3938:11;-1:-1:-1;;;;;215:929:88;3921:28:53;;:63;;3845:262;3917:184;;;4007:22;4000:29;:::o;3917:184::-;215:929:88;;4204:80:53;;;215:929:88;2079:95:53;215:929:88;;4226:11:53;215:929:88;2079:95:53;;215:929:88;4239:14:53;2079:95;;;215:929:88;4255:13:53;2079:95;;;215:929:88;3929:4:53;2079:95;;;215:929:88;2079:95:53;4204:80;;;;;:::i;:::-;215:929:88;4194:91:53;;4060:30;:::o;3921:63::-;3970:14;;3953:13;:31;3921:63;;5140:1530:52;;;6199:66;6186:79;;6182:164;;215:929:88;;;;;;-1:-1:-1;215:929:88;;;;;;;;;;;;;;;;;;;6457:24:52;;;;;;;;;-1:-1:-1;6457:24:52;-1:-1:-1;;;;;215:929:88;;6495:20:52;6491:113;;6614:49;-1:-1:-1;6614:49:52;-1:-1:-1;5140:1530:52;:::o;6491:113::-;6531:62;-1:-1:-1;6531:62:52;6457:24;6531:62;-1:-1:-1;6531:62:52;:::o;6182:164::-;6281:54;;;6297:1;6281:54;6301:30;6281:54;;:::o;10552:388:61:-;215:929:88;;10728:8:61;;;10752:20;;10690:17;10752:20;10690:17;10752:20;10690:17;10752:20;:::o;10724:210::-;215:929:88;;;;;;;;;;;13267:109:91;10690:17:61;13267:109:91;;10690:17:61;13267:109:91;;;215:929:88;:::i;:::-;;;;;;;13267:109:91;215:929:88;;;;;10911:11:61;;215:929:88;;10886:37:61;10870:1;10886:37;;;:::o;2557:104:58:-;;2641:5;;;;;;:13;2557:104;:::o;2641:13::-;;;2557:104;:::o;215:929:88:-;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;-1:-1:-1;;215:929:88;;;;;;;;;:::o;:::-;;;;;;;;;;;;11513:870:61;215:929:88;;;11672:7:61;;;;215:929:88;11775:28:61;11795:7;;;:::i;:::-;11775:28;13267:109:91;;;;;;13089:293;;11775:28:61;215:929:88;:::i;:::-;;;;;;;;;;;;;;;;;11877:15:61;-1:-1:-1;11873:91:61;;215:929:88;;12233:11:61;215:929:88;12027:16:61;215:929:88;;;;;;;12027:16:61;;;;12083:7;12063:43;12083:7;;12063:28;12083:7;;:::i;:::-;12063:28;13267:109:91;;;;;;13089:293;;12063:28:61;215:929:88;;;;;;;12063:43:61;12233:11;215:929:88;-1:-1:-1;;;;;215:929:88;;;;12225:27:61;215:929:88;12225:27:61;:::o;12023:189::-;215:929:88;;12145:52:61;215:929:88;12155:41:61;215:929:88;;:::i;:::-;;;;;;;;12155:41:61;215:929:88;12155:41:61;;;215:929:88;12145:52:61;:::i;:::-;12023:189;;11873:91;215:929:88;;-1:-1:-1;;;11919:30:61;;;;;11668:709;12283:52;215:929:88;;;12293:41:61;215:929:88;;:::i;12293:41:61:-;215:929:88;12293:41:61;;;215:929:88;12283:52:61;:::i;:::-;215:929:88;12349:17:61;215:929:88;12349:17:61;:::o;11513:870::-;215:929:88;;;11672:7:61;;;;215:929:88;11775:28:61;11795:7;;;:::i;215:929:88:-;;;;;;;;;;;;;;;;;11877:15:61;-1:-1:-1;11873:91:61;;215:929:88;;12233:11:61;215:929:88;12027:16:61;215:929:88;;;;;;;12027:16:61;;;;12083:7;12063:43;12083:7;;12063:28;12083:7;;:::i;12063:28::-;215:929:88;;;;;;;;;;12225:27:61;215:929:88;12225:27:61;:::o;12023:189::-;215:929:88;;12145:52:61;215:929:88;12155:41:61;215:929:88;;:::i;12155:41:61:-;215:929:88;12155:41:61;;;215:929:88;12145:52:61;:::i;11668:709::-;12283:52;215:929:88;;;12293:41:61;215:929:88;;:::i;12293:41:61:-;215:929:88;12293:41:61;;;215:929:88;12145:52:61;:::i;12283:::-;11678:1;12349:17;215:929:88;12349:17:61;:::o","linkReferences":{},"immutableReferences":{"51797":[{"start":6000,"length":32}],"51799":[{"start":6187,"length":32}],"51801":[{"start":5946,"length":32}],"51803":[{"start":6079,"length":32}],"51805":[{"start":6117,"length":32}],"51808":[{"start":765,"length":32}],"51811":[{"start":806,"length":32}],"69080":[{"start":1393,"length":32}],"71843":[{"start":1729,"length":32},{"start":4174,"length":32}],"71846":[{"start":622,"length":32},{"start":4257,"length":32}]}},"methodIdentifiers":{"WHERE_REGISTRY()":"6d0fae4a","WHO_REGISTRY()":"c4b5d62c","eip712Domain()":"84b0196e","increaseNonce(address)":"8247a97c","isOptedIn(address,address)":"220d32d4","isOptedInAt(address,address,uint48,bytes)":"530e1d43","nonces(address,address)":"9333fbda","optIn(address)":"b1138ad1","optIn(address,address,uint48,bytes)":"ced44ba7","optInHint(address,address,address,uint48)":"d4a63862","optInHintInternal(address,address,uint48)":"9a15d7a5","optOut(address)":"d4610483","optOut(address,address,uint48,bytes)":"93f79bc3","staticDelegateCall(address,bytes)":"9f86fd85"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"AlreadyOptedIn\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CheckpointUnorderedInsertion\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ExpiredSignature\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ExternalCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidShortString\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidSignature\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotOptedIn\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotWhereEntity\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotWho\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OptOutCooldown\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"bits\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"SafeCastOverflowedUintDowncast\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"str\",\"type\":\"string\"}],\"name\":\"StringTooLong\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[],\"name\":\"EIP712DomainChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"who\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"where\",\"type\":\"address\"}],\"name\":\"IncreaseNonce\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"who\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"where\",\"type\":\"address\"}],\"name\":\"OptIn\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"who\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"where\",\"type\":\"address\"}],\"name\":\"OptOut\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"WHERE_REGISTRY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"WHO_REGISTRY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"eip712Domain\",\"outputs\":[{\"internalType\":\"bytes1\",\"name\":\"fields\",\"type\":\"bytes1\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"version\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"chainId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"verifyingContract\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"salt\",\"type\":\"bytes32\"},{\"internalType\":\"uint256[]\",\"name\":\"extensions\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"where\",\"type\":\"address\"}],\"name\":\"increaseNonce\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"who\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"where\",\"type\":\"address\"}],\"name\":\"isOptedIn\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"who\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"where\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hint\",\"type\":\"bytes\"}],\"name\":\"isOptedInAt\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"who\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"where\",\"type\":\"address\"}],\"name\":\"nonces\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"where\",\"type\":\"address\"}],\"name\":\"optIn\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"who\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"where\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"deadline\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"name\":\"optIn\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"optInService\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"who\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"where\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"}],\"name\":\"optInHint\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"who\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"where\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"}],\"name\":\"optInHintInternal\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"exists\",\"type\":\"bool\"},{\"internalType\":\"uint32\",\"name\":\"hint\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"who\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"where\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"deadline\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"name\":\"optOut\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"where\",\"type\":\"address\"}],\"name\":\"optOut\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"staticDelegateCall\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"CheckpointUnorderedInsertion()\":[{\"details\":\"A value was attempted to be inserted on a past checkpoint.\"}],\"SafeCastOverflowedUintDowncast(uint8,uint256)\":[{\"details\":\"Value doesn't fit in an uint of `bits` size.\"}]},\"events\":{\"EIP712DomainChanged()\":{\"details\":\"MAY be emitted to signal that the domain could have changed.\"},\"IncreaseNonce(address,address)\":{\"params\":{\"where\":\"address of the \\\"where\\\" entity\",\"who\":\"address of the \\\"who\\\"\"}},\"OptIn(address,address)\":{\"params\":{\"where\":\"address of the \\\"where\\\" entity\",\"who\":\"address of the \\\"who\\\"\"}},\"OptOut(address,address)\":{\"params\":{\"where\":\"address of the \\\"where\\\" entity\",\"who\":\"address of the \\\"who\\\"\"}}},\"kind\":\"dev\",\"methods\":{\"eip712Domain()\":{\"details\":\"See {IERC-5267}.\"},\"increaseNonce(address)\":{\"details\":\"It can be used to invalidate a given signature.\",\"params\":{\"where\":\"address of the \\\"where\\\" entity\"}},\"isOptedIn(address,address)\":{\"params\":{\"where\":\"address of the \\\"where\\\" entity\",\"who\":\"address of the \\\"who\\\"\"},\"returns\":{\"_0\":\"if the \\\"who\\\" is opted-in\"}},\"isOptedInAt(address,address,uint48,bytes)\":{\"params\":{\"hint\":\"hint for the checkpoint index\",\"timestamp\":\"time point to get if the \\\"who\\\" is opted-in at\",\"where\":\"address of the \\\"where\\\" entity\",\"who\":\"address of the \\\"who\\\"\"},\"returns\":{\"_0\":\"if the \\\"who\\\" is opted-in at the given timestamp\"}},\"optIn(address)\":{\"params\":{\"where\":\"address of the \\\"where\\\" entity\"}},\"optIn(address,address,uint48,bytes)\":{\"params\":{\"deadline\":\"time point until the signature is valid (inclusively)\",\"signature\":\"signature of the \\\"who\\\"\",\"where\":\"address of the \\\"where\\\" entity\",\"who\":\"address of the \\\"who\\\"\"}},\"optOut(address)\":{\"params\":{\"where\":\"address of the \\\"where\\\" entity\"}},\"optOut(address,address,uint48,bytes)\":{\"params\":{\"deadline\":\"time point until the signature is valid (inclusively)\",\"signature\":\"signature of the \\\"who\\\"\",\"where\":\"address of the \\\"where\\\" entity\",\"who\":\"address of the \\\"who\\\"\"}},\"staticDelegateCall(address,bytes)\":{\"details\":\"It allows to use this contract's storage on-chain.\",\"params\":{\"data\":\"data to make a delegatecall with\",\"target\":\"address of the contract to make a delegatecall to\"}}},\"version\":1},\"userdoc\":{\"events\":{\"IncreaseNonce(address,address)\":{\"notice\":\"Emitted when the nonce of a \\\"who\\\" to a \\\"where\\\" entity is increased.\"},\"OptIn(address,address)\":{\"notice\":\"Emitted when a \\\"who\\\" opts into a \\\"where\\\" entity.\"},\"OptOut(address,address)\":{\"notice\":\"Emitted when a \\\"who\\\" opts out from a \\\"where\\\" entity.\"}},\"kind\":\"user\",\"methods\":{\"WHERE_REGISTRY()\":{\"notice\":\"Get the address of the registry where to opt-in.\"},\"WHO_REGISTRY()\":{\"notice\":\"Get the \\\"who\\\" registry's address.\"},\"increaseNonce(address)\":{\"notice\":\"Increase the nonce of a given \\\"who\\\" to a particular \\\"where\\\" entity.\"},\"isOptedIn(address,address)\":{\"notice\":\"Check if a given \\\"who\\\" is opted-in to a particular \\\"where\\\" entity.\"},\"isOptedInAt(address,address,uint48,bytes)\":{\"notice\":\"Get if a given \\\"who\\\" is opted-in to a particular \\\"where\\\" entity at a given timestamp using a hint.\"},\"nonces(address,address)\":{\"notice\":\"Get the nonce of a given \\\"who\\\" to a particular \\\"where\\\" entity.\"},\"optIn(address)\":{\"notice\":\"Opt-in a calling \\\"who\\\" to a particular \\\"where\\\" entity.\"},\"optIn(address,address,uint48,bytes)\":{\"notice\":\"Opt-in a \\\"who\\\" to a particular \\\"where\\\" entity with a signature.\"},\"optOut(address)\":{\"notice\":\"Opt-out a calling \\\"who\\\" from a particular \\\"where\\\" entity.\"},\"optOut(address,address,uint48,bytes)\":{\"notice\":\"Opt-out a \\\"who\\\" from a particular \\\"where\\\" entity with a signature.\"},\"staticDelegateCall(address,bytes)\":{\"notice\":\"Make a delegatecall from this contract to a given target contract with a particular data (always reverts with a return data).\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/contracts/hints/OptInServiceHints.sol\":\"OptInServiceHints\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/interfaces/IERC1271.sol\":{\"keccak256\":\"0x85a45f3f10014a0f8be41157a32b6a5f905753ea64a4b64e29fc12b7deeecf39\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c3c74009ce36136b36c77c23935b8e4a7b4f253be2da2be4fb4a916b1ce43743\",\"dweb:/ipfs/QmcH36v3iN7SJJuF73AunLR2LtNxhVJ1wm63ph4dPZ4pcL\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC5267.sol\":{\"keccak256\":\"0x92aa1df62dc3d33f1656d63bede0923e0df0b706ad4137c8b10b0a8fe549fd92\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c5c0f29195ad64cbe556da8e257dac8f05f78c53f90323c0d2accf8e6922d33a\",\"dweb:/ipfs/QmQ61TED8uaCZwcbh8KkgRSsCav7x7HbcGHwHts3U4DmUP\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0xaf28a975a78550e45f65e559a3ad6a5ad43b9b8a37366999abd1b7084eb70721\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b7bd24e224f67f65bfadf85dc2929fa965456bb2415478bd0125471b5ce35245\",\"dweb:/ipfs/QmRaydGr8BTHs1kvaZfsNU69pKzUAGFrvABn1KiRSbE51y\"]},\"lib/openzeppelin-contracts/contracts/utils/ShortStrings.sol\":{\"keccak256\":\"0x18a7171df639a934592915a520ecb97c5bbc9675a1105607aac8a94e72bf62c6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7478e1f13da69a2867ccd883001d836b75620362e743f196376d63ed0c422a1c\",\"dweb:/ipfs/QmWywcQ9TNfwtoqAxbn25d8C5VrV12PrPS9UjtGe6pL2BA\"]},\"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0x32ba59b4b7299237c8ba56319110989d7978a039faf754793064e967e5894418\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1ae50c8b562427df610cc4540c9bf104acca7ef8e2dcae567ae7e52272281e9c\",\"dweb:/ipfs/QmTHiadFCSJUPpRjNegc5SahmeU8bAoY8i9Aq6tVscbcKR\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0x55f102ea785d8399c0e58d1108e2d289506dde18abc6db1b7f68c1f9f9bc5792\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e52e0a7765c943ef14e5bcf11e46e6139fa044be564881378349236bf2e3453\",\"dweb:/ipfs/QmZEeeXoFPW47amyP35gfzomF9DixqqTEPwzBakv6cZw6i\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0xeed0a08b0b091f528356cbc7245891a4c748682d4f6a18055e8e6ca77d12a6cf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba80ba06c8e6be852847e4c5f4492cef801feb6558ae09ed705ff2e04ea8b13c\",\"dweb:/ipfs/QmXRJDv3xHLVQCVXg1ZvR35QS9sij5y9NDWYzMfUfAdTHF\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/EIP712.sol\":{\"keccak256\":\"0x999f705a027ed6dc2d4e0df2cc4a509852c6bfd11de1c8161bf88832d0503fd0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0798def67258d9a3cc20b2b4da7ebf351a5cefe0abfdd665d2d81f8e32f89b21\",\"dweb:/ipfs/QmPEvJosnPfzHNjKvCv2D3891mA2Ww8eUwkqrxBjuYdHCt\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol\":{\"keccak256\":\"0xba333517a3add42cd35fe877656fc3dfcc9de53baa4f3aabbd6d12a92e4ea435\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2ceacff44c0fdc81e48e0e0b1db87a2076d3c1fb497341de077bf1da9f6b406c\",\"dweb:/ipfs/QmRUo1muMRAewxrKQ7TkXUtknyRoR57AyEkoPpiuZQ8FzX\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/SignatureChecker.sol\":{\"keccak256\":\"0x6b11eb41a228cca35d4b662b4df69fcd75192851365102690f57b2ac01e83fe6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ab006a2983ed350d2af21ddcdd835dcae3b8340086cc4d088460da5abd041f69\",\"dweb:/ipfs/QmbEacDhkJZiGrgzLjB4pNtE8Z1uudjDw1DvcDUTVQFsLG\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875\",\"dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0xe19a4d5f31d2861e7344e8e535e2feafb913d806d3e2b5fe7782741a2a7094fe\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4aed79c0fa6f0546ed02f2f683e8f77f0fd2ed7eb34d8bbf3d373c9a6d95b13c\",\"dweb:/ipfs/QmWqVz6UAVqmnWU5pqYPt1o6iDEZyPaBraAA3rKfTTSfYj\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x5f7e4076e175393767754387c962926577f1660dd9b810187b9002407656be72\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7d533a1c97cd43a57cd9c465f7ee8dd0e39ae93a8fb8ff8e5303a356b081cdcc\",\"dweb:/ipfs/QmVBEei6aTnvYNZp2CHYVNKyZS4q1KkjANfY39WVXZXVoT\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/Checkpoints.sol\":{\"keccak256\":\"0xbdc5e074d7dd6678f67e92b1a51a20226801a407b0e1af3da367c5d1ff4519ad\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a36cca6b22fff3db16fc789ff6c60eea71d4b156065d4d0c83a0bc5e91a77a8b\",\"dweb:/ipfs/QmYN3exd5AemxjBrN8XMB1p5LbbE16uC3sjbYjwi8AjcGR\"]},\"lib/openzeppelin-contracts/contracts/utils/types/Time.sol\":{\"keccak256\":\"0xc7755af115020049e4140f224f9ee88d7e1799ffb0646f37bf0df24bf6213f58\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7f09bf94d5274334ec021f61a04659db303f31e60460e14b709c9bf187740111\",\"dweb:/ipfs/QmNvgomZYUwFAt4cZbPWAiTeSZQreGehY9BK5xyVJsUttb\"]},\"src/contracts/common/StaticDelegateCallable.sol\":{\"keccak256\":\"0x350029aa8955eacaffffaeb58babc5c98e80ebc5c5db388ed17ee6465f4a9d90\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://eb392a8ee9050e0af606897df63e3404e3829e8b688b580663892f9664195764\",\"dweb:/ipfs/QmaXC8jqV8UrrAFkzXTEv2fJF56sy33HhLxAzaRZmUxuXD\"]},\"src/contracts/hints/Hints.sol\":{\"keccak256\":\"0x8b565df1ae35993c097a9e642002782a8f451f6fd01809cad6bcd345bdf1b99c\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://99a19adb01e350a92f534095b3078229df1f2f83077992d75d58d8684be45971\",\"dweb:/ipfs/QmbmwcuswVbzvwHQFTtrJG86oV98GnfxqYTb8cV8u1acox\"]},\"src/contracts/hints/OptInServiceHints.sol\":{\"keccak256\":\"0x95d9407900d27b9f4a1233b772aeed809c07b2dc5b31cfc9fa77ca26514c49e5\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://a13a8877e312d7e6b8b85bde3668c5d84ff5ecc83f762cd573f2b7104c64eb42\",\"dweb:/ipfs/QmYV2J55acuGzCNnS3juABuUHY5U1xc8g8o9jwEyFFdeG5\"]},\"src/contracts/libraries/Checkpoints.sol\":{\"keccak256\":\"0xba90097c8bfe0a975499428b5f8ac5569483c7d92ccc28c12d70de416aae040c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://12f5d93ca94cd06d3147db68993165a58e17903ed53682560de61f3085ad4609\",\"dweb:/ipfs/QmePiuAqvXprMLmFZkGZeGjvGPAvsEDHfCDv7BoQhXu9xE\"]},\"src/contracts/service/OptInService.sol\":{\"keccak256\":\"0x4e0932077f2686b7990e10d59deb2535334c0d09e52ef6e57c6ab09eca21c4b1\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://7c00d311032ed4a1743aca7475f3c86ce15cdfc2218108efc3731c03d34a5278\",\"dweb:/ipfs/QmUGGfVwVhaHr5kS4177yKKYiLYzi5qZpkEmvYxBZqazxf\"]},\"src/interfaces/common/IRegistry.sol\":{\"keccak256\":\"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014\",\"dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK\"]},\"src/interfaces/common/IStaticDelegateCallable.sol\":{\"keccak256\":\"0xa335d4e81b9071b7de66ef92b43ff20671d86516eb1be46fef29a3483cd3f5d5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d464b9db863c14c05547d2b23352f2e9b7b784799cf09f6bbc4906a2a74e3516\",\"dweb:/ipfs/QmUVWzFvJz7eEbDQKiFTTzwi7TEbjcs3VmwdM4kuptAKvi\"]},\"src/interfaces/service/IOptInService.sol\":{\"keccak256\":\"0x76fb5460a6d87a5705433d4fbeff7253cd75b8bbd0c888b2088f16e86ace146a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://990322019b3d11465f7024bae77ccbf7e2fe5d6fa3c754584778f37d04fa1337\",\"dweb:/ipfs/QmaSNHzcqxTkUCG9a4nqVfLECHLdjdrwAnDi3yDC7tDL24\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.25+commit.b61c2a91"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"AlreadyOptedIn"},{"inputs":[],"type":"error","name":"CheckpointUnorderedInsertion"},{"inputs":[],"type":"error","name":"ExpiredSignature"},{"inputs":[],"type":"error","name":"ExternalCall"},{"inputs":[],"type":"error","name":"InvalidShortString"},{"inputs":[],"type":"error","name":"InvalidSignature"},{"inputs":[],"type":"error","name":"NotOptedIn"},{"inputs":[],"type":"error","name":"NotWhereEntity"},{"inputs":[],"type":"error","name":"NotWho"},{"inputs":[],"type":"error","name":"OptOutCooldown"},{"inputs":[{"internalType":"uint8","name":"bits","type":"uint8"},{"internalType":"uint256","name":"value","type":"uint256"}],"type":"error","name":"SafeCastOverflowedUintDowncast"},{"inputs":[{"internalType":"string","name":"str","type":"string"}],"type":"error","name":"StringTooLong"},{"inputs":[],"type":"event","name":"EIP712DomainChanged","anonymous":false},{"inputs":[{"internalType":"address","name":"who","type":"address","indexed":true},{"internalType":"address","name":"where","type":"address","indexed":true}],"type":"event","name":"IncreaseNonce","anonymous":false},{"inputs":[{"internalType":"address","name":"who","type":"address","indexed":true},{"internalType":"address","name":"where","type":"address","indexed":true}],"type":"event","name":"OptIn","anonymous":false},{"inputs":[{"internalType":"address","name":"who","type":"address","indexed":true},{"internalType":"address","name":"where","type":"address","indexed":true}],"type":"event","name":"OptOut","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"WHERE_REGISTRY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"WHO_REGISTRY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"eip712Domain","outputs":[{"internalType":"bytes1","name":"fields","type":"bytes1"},{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"version","type":"string"},{"internalType":"uint256","name":"chainId","type":"uint256"},{"internalType":"address","name":"verifyingContract","type":"address"},{"internalType":"bytes32","name":"salt","type":"bytes32"},{"internalType":"uint256[]","name":"extensions","type":"uint256[]"}]},{"inputs":[{"internalType":"address","name":"where","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"increaseNonce"},{"inputs":[{"internalType":"address","name":"who","type":"address"},{"internalType":"address","name":"where","type":"address"}],"stateMutability":"view","type":"function","name":"isOptedIn","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"who","type":"address"},{"internalType":"address","name":"where","type":"address"},{"internalType":"uint48","name":"timestamp","type":"uint48"},{"internalType":"bytes","name":"hint","type":"bytes"}],"stateMutability":"view","type":"function","name":"isOptedInAt","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"who","type":"address"},{"internalType":"address","name":"where","type":"address"}],"stateMutability":"view","type":"function","name":"nonces","outputs":[{"internalType":"uint256","name":"nonce","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"where","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"optIn"},{"inputs":[{"internalType":"address","name":"who","type":"address"},{"internalType":"address","name":"where","type":"address"},{"internalType":"uint48","name":"deadline","type":"uint48"},{"internalType":"bytes","name":"signature","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"optIn"},{"inputs":[{"internalType":"address","name":"optInService","type":"address"},{"internalType":"address","name":"who","type":"address"},{"internalType":"address","name":"where","type":"address"},{"internalType":"uint48","name":"timestamp","type":"uint48"}],"stateMutability":"view","type":"function","name":"optInHint","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"address","name":"who","type":"address"},{"internalType":"address","name":"where","type":"address"},{"internalType":"uint48","name":"timestamp","type":"uint48"}],"stateMutability":"view","type":"function","name":"optInHintInternal","outputs":[{"internalType":"bool","name":"exists","type":"bool"},{"internalType":"uint32","name":"hint","type":"uint32"}]},{"inputs":[{"internalType":"address","name":"who","type":"address"},{"internalType":"address","name":"where","type":"address"},{"internalType":"uint48","name":"deadline","type":"uint48"},{"internalType":"bytes","name":"signature","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"optOut"},{"inputs":[{"internalType":"address","name":"where","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"optOut"},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"staticDelegateCall"}],"devdoc":{"kind":"dev","methods":{"eip712Domain()":{"details":"See {IERC-5267}."},"increaseNonce(address)":{"details":"It can be used to invalidate a given signature.","params":{"where":"address of the \"where\" entity"}},"isOptedIn(address,address)":{"params":{"where":"address of the \"where\" entity","who":"address of the \"who\""},"returns":{"_0":"if the \"who\" is opted-in"}},"isOptedInAt(address,address,uint48,bytes)":{"params":{"hint":"hint for the checkpoint index","timestamp":"time point to get if the \"who\" is opted-in at","where":"address of the \"where\" entity","who":"address of the \"who\""},"returns":{"_0":"if the \"who\" is opted-in at the given timestamp"}},"optIn(address)":{"params":{"where":"address of the \"where\" entity"}},"optIn(address,address,uint48,bytes)":{"params":{"deadline":"time point until the signature is valid (inclusively)","signature":"signature of the \"who\"","where":"address of the \"where\" entity","who":"address of the \"who\""}},"optOut(address)":{"params":{"where":"address of the \"where\" entity"}},"optOut(address,address,uint48,bytes)":{"params":{"deadline":"time point until the signature is valid (inclusively)","signature":"signature of the \"who\"","where":"address of the \"where\" entity","who":"address of the \"who\""}},"staticDelegateCall(address,bytes)":{"details":"It allows to use this contract's storage on-chain.","params":{"data":"data to make a delegatecall with","target":"address of the contract to make a delegatecall to"}}},"version":1},"userdoc":{"kind":"user","methods":{"WHERE_REGISTRY()":{"notice":"Get the address of the registry where to opt-in."},"WHO_REGISTRY()":{"notice":"Get the \"who\" registry's address."},"increaseNonce(address)":{"notice":"Increase the nonce of a given \"who\" to a particular \"where\" entity."},"isOptedIn(address,address)":{"notice":"Check if a given \"who\" is opted-in to a particular \"where\" entity."},"isOptedInAt(address,address,uint48,bytes)":{"notice":"Get if a given \"who\" is opted-in to a particular \"where\" entity at a given timestamp using a hint."},"nonces(address,address)":{"notice":"Get the nonce of a given \"who\" to a particular \"where\" entity."},"optIn(address)":{"notice":"Opt-in a calling \"who\" to a particular \"where\" entity."},"optIn(address,address,uint48,bytes)":{"notice":"Opt-in a \"who\" to a particular \"where\" entity with a signature."},"optOut(address)":{"notice":"Opt-out a calling \"who\" from a particular \"where\" entity."},"optOut(address,address,uint48,bytes)":{"notice":"Opt-out a \"who\" from a particular \"where\" entity with a signature."},"staticDelegateCall(address,bytes)":{"notice":"Make a delegatecall from this contract to a given target contract with a particular data (always reverts with a return data)."}},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/contracts/hints/OptInServiceHints.sol":"OptInServiceHints"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts/contracts/interfaces/IERC1271.sol":{"keccak256":"0x85a45f3f10014a0f8be41157a32b6a5f905753ea64a4b64e29fc12b7deeecf39","urls":["bzz-raw://c3c74009ce36136b36c77c23935b8e4a7b4f253be2da2be4fb4a916b1ce43743","dweb:/ipfs/QmcH36v3iN7SJJuF73AunLR2LtNxhVJ1wm63ph4dPZ4pcL"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC5267.sol":{"keccak256":"0x92aa1df62dc3d33f1656d63bede0923e0df0b706ad4137c8b10b0a8fe549fd92","urls":["bzz-raw://c5c0f29195ad64cbe556da8e257dac8f05f78c53f90323c0d2accf8e6922d33a","dweb:/ipfs/QmQ61TED8uaCZwcbh8KkgRSsCav7x7HbcGHwHts3U4DmUP"],"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/ShortStrings.sol":{"keccak256":"0x18a7171df639a934592915a520ecb97c5bbc9675a1105607aac8a94e72bf62c6","urls":["bzz-raw://7478e1f13da69a2867ccd883001d836b75620362e743f196376d63ed0c422a1c","dweb:/ipfs/QmWywcQ9TNfwtoqAxbn25d8C5VrV12PrPS9UjtGe6pL2BA"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol":{"keccak256":"0x32ba59b4b7299237c8ba56319110989d7978a039faf754793064e967e5894418","urls":["bzz-raw://1ae50c8b562427df610cc4540c9bf104acca7ef8e2dcae567ae7e52272281e9c","dweb:/ipfs/QmTHiadFCSJUPpRjNegc5SahmeU8bAoY8i9Aq6tVscbcKR"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0x55f102ea785d8399c0e58d1108e2d289506dde18abc6db1b7f68c1f9f9bc5792","urls":["bzz-raw://6e52e0a7765c943ef14e5bcf11e46e6139fa044be564881378349236bf2e3453","dweb:/ipfs/QmZEeeXoFPW47amyP35gfzomF9DixqqTEPwzBakv6cZw6i"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol":{"keccak256":"0xeed0a08b0b091f528356cbc7245891a4c748682d4f6a18055e8e6ca77d12a6cf","urls":["bzz-raw://ba80ba06c8e6be852847e4c5f4492cef801feb6558ae09ed705ff2e04ea8b13c","dweb:/ipfs/QmXRJDv3xHLVQCVXg1ZvR35QS9sij5y9NDWYzMfUfAdTHF"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/EIP712.sol":{"keccak256":"0x999f705a027ed6dc2d4e0df2cc4a509852c6bfd11de1c8161bf88832d0503fd0","urls":["bzz-raw://0798def67258d9a3cc20b2b4da7ebf351a5cefe0abfdd665d2d81f8e32f89b21","dweb:/ipfs/QmPEvJosnPfzHNjKvCv2D3891mA2Ww8eUwkqrxBjuYdHCt"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol":{"keccak256":"0xba333517a3add42cd35fe877656fc3dfcc9de53baa4f3aabbd6d12a92e4ea435","urls":["bzz-raw://2ceacff44c0fdc81e48e0e0b1db87a2076d3c1fb497341de077bf1da9f6b406c","dweb:/ipfs/QmRUo1muMRAewxrKQ7TkXUtknyRoR57AyEkoPpiuZQ8FzX"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/SignatureChecker.sol":{"keccak256":"0x6b11eb41a228cca35d4b662b4df69fcd75192851365102690f57b2ac01e83fe6","urls":["bzz-raw://ab006a2983ed350d2af21ddcdd835dcae3b8340086cc4d088460da5abd041f69","dweb:/ipfs/QmbEacDhkJZiGrgzLjB4pNtE8Z1uudjDw1DvcDUTVQFsLG"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d","urls":["bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875","dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol":{"keccak256":"0xe19a4d5f31d2861e7344e8e535e2feafb913d806d3e2b5fe7782741a2a7094fe","urls":["bzz-raw://4aed79c0fa6f0546ed02f2f683e8f77f0fd2ed7eb34d8bbf3d373c9a6d95b13c","dweb:/ipfs/QmWqVz6UAVqmnWU5pqYPt1o6iDEZyPaBraAA3rKfTTSfYj"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0x5f7e4076e175393767754387c962926577f1660dd9b810187b9002407656be72","urls":["bzz-raw://7d533a1c97cd43a57cd9c465f7ee8dd0e39ae93a8fb8ff8e5303a356b081cdcc","dweb:/ipfs/QmVBEei6aTnvYNZp2CHYVNKyZS4q1KkjANfY39WVXZXVoT"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/Checkpoints.sol":{"keccak256":"0xbdc5e074d7dd6678f67e92b1a51a20226801a407b0e1af3da367c5d1ff4519ad","urls":["bzz-raw://a36cca6b22fff3db16fc789ff6c60eea71d4b156065d4d0c83a0bc5e91a77a8b","dweb:/ipfs/QmYN3exd5AemxjBrN8XMB1p5LbbE16uC3sjbYjwi8AjcGR"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/types/Time.sol":{"keccak256":"0xc7755af115020049e4140f224f9ee88d7e1799ffb0646f37bf0df24bf6213f58","urls":["bzz-raw://7f09bf94d5274334ec021f61a04659db303f31e60460e14b709c9bf187740111","dweb:/ipfs/QmNvgomZYUwFAt4cZbPWAiTeSZQreGehY9BK5xyVJsUttb"],"license":"MIT"},"src/contracts/common/StaticDelegateCallable.sol":{"keccak256":"0x350029aa8955eacaffffaeb58babc5c98e80ebc5c5db388ed17ee6465f4a9d90","urls":["bzz-raw://eb392a8ee9050e0af606897df63e3404e3829e8b688b580663892f9664195764","dweb:/ipfs/QmaXC8jqV8UrrAFkzXTEv2fJF56sy33HhLxAzaRZmUxuXD"],"license":"BUSL-1.1"},"src/contracts/hints/Hints.sol":{"keccak256":"0x8b565df1ae35993c097a9e642002782a8f451f6fd01809cad6bcd345bdf1b99c","urls":["bzz-raw://99a19adb01e350a92f534095b3078229df1f2f83077992d75d58d8684be45971","dweb:/ipfs/QmbmwcuswVbzvwHQFTtrJG86oV98GnfxqYTb8cV8u1acox"],"license":"BUSL-1.1"},"src/contracts/hints/OptInServiceHints.sol":{"keccak256":"0x95d9407900d27b9f4a1233b772aeed809c07b2dc5b31cfc9fa77ca26514c49e5","urls":["bzz-raw://a13a8877e312d7e6b8b85bde3668c5d84ff5ecc83f762cd573f2b7104c64eb42","dweb:/ipfs/QmYV2J55acuGzCNnS3juABuUHY5U1xc8g8o9jwEyFFdeG5"],"license":"BUSL-1.1"},"src/contracts/libraries/Checkpoints.sol":{"keccak256":"0xba90097c8bfe0a975499428b5f8ac5569483c7d92ccc28c12d70de416aae040c","urls":["bzz-raw://12f5d93ca94cd06d3147db68993165a58e17903ed53682560de61f3085ad4609","dweb:/ipfs/QmePiuAqvXprMLmFZkGZeGjvGPAvsEDHfCDv7BoQhXu9xE"],"license":"MIT"},"src/contracts/service/OptInService.sol":{"keccak256":"0x4e0932077f2686b7990e10d59deb2535334c0d09e52ef6e57c6ab09eca21c4b1","urls":["bzz-raw://7c00d311032ed4a1743aca7475f3c86ce15cdfc2218108efc3731c03d34a5278","dweb:/ipfs/QmUGGfVwVhaHr5kS4177yKKYiLYzi5qZpkEmvYxBZqazxf"],"license":"BUSL-1.1"},"src/interfaces/common/IRegistry.sol":{"keccak256":"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb","urls":["bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014","dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK"],"license":"MIT"},"src/interfaces/common/IStaticDelegateCallable.sol":{"keccak256":"0xa335d4e81b9071b7de66ef92b43ff20671d86516eb1be46fef29a3483cd3f5d5","urls":["bzz-raw://d464b9db863c14c05547d2b23352f2e9b7b784799cf09f6bbc4906a2a74e3516","dweb:/ipfs/QmUVWzFvJz7eEbDQKiFTTzwi7TEbjcs3VmwdM4kuptAKvi"],"license":"MIT"},"src/interfaces/service/IOptInService.sol":{"keccak256":"0x76fb5460a6d87a5705433d4fbeff7253cd75b8bbd0c888b2088f16e86ace146a","urls":["bzz-raw://990322019b3d11465f7024bae77ccbf7e2fe5d6fa3c754584778f37d04fa1337","dweb:/ipfs/QmaSNHzcqxTkUCG9a4nqVfLECHLdjdrwAnDi3yDC7tDL24"],"license":"MIT"}},"version":1},"id":88} \ No newline at end of file +{"abi":[{"type":"constructor","inputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"WHERE_REGISTRY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"WHO_REGISTRY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"eip712Domain","inputs":[],"outputs":[{"name":"fields","type":"bytes1","internalType":"bytes1"},{"name":"name","type":"string","internalType":"string"},{"name":"version","type":"string","internalType":"string"},{"name":"chainId","type":"uint256","internalType":"uint256"},{"name":"verifyingContract","type":"address","internalType":"address"},{"name":"salt","type":"bytes32","internalType":"bytes32"},{"name":"extensions","type":"uint256[]","internalType":"uint256[]"}],"stateMutability":"view"},{"type":"function","name":"increaseNonce","inputs":[{"name":"where","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"isOptedIn","inputs":[{"name":"who","type":"address","internalType":"address"},{"name":"where","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isOptedInAt","inputs":[{"name":"who","type":"address","internalType":"address"},{"name":"where","type":"address","internalType":"address"},{"name":"timestamp","type":"uint48","internalType":"uint48"},{"name":"hint","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"nonces","inputs":[{"name":"who","type":"address","internalType":"address"},{"name":"where","type":"address","internalType":"address"}],"outputs":[{"name":"nonce","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"optIn","inputs":[{"name":"where","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"optIn","inputs":[{"name":"who","type":"address","internalType":"address"},{"name":"where","type":"address","internalType":"address"},{"name":"deadline","type":"uint48","internalType":"uint48"},{"name":"signature","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"optInHint","inputs":[{"name":"optInService","type":"address","internalType":"address"},{"name":"who","type":"address","internalType":"address"},{"name":"where","type":"address","internalType":"address"},{"name":"timestamp","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"optInHintInternal","inputs":[{"name":"who","type":"address","internalType":"address"},{"name":"where","type":"address","internalType":"address"},{"name":"timestamp","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"exists","type":"bool","internalType":"bool"},{"name":"hint","type":"uint32","internalType":"uint32"}],"stateMutability":"view"},{"type":"function","name":"optOut","inputs":[{"name":"who","type":"address","internalType":"address"},{"name":"where","type":"address","internalType":"address"},{"name":"deadline","type":"uint48","internalType":"uint48"},{"name":"signature","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"optOut","inputs":[{"name":"where","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"staticDelegateCall","inputs":[{"name":"target","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"EIP712DomainChanged","inputs":[],"anonymous":false},{"type":"event","name":"IncreaseNonce","inputs":[{"name":"who","type":"address","indexed":true,"internalType":"address"},{"name":"where","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"OptIn","inputs":[{"name":"who","type":"address","indexed":true,"internalType":"address"},{"name":"where","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"OptOut","inputs":[{"name":"who","type":"address","indexed":true,"internalType":"address"},{"name":"where","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"error","name":"AlreadyOptedIn","inputs":[]},{"type":"error","name":"CheckpointUnorderedInsertion","inputs":[]},{"type":"error","name":"ExpiredSignature","inputs":[]},{"type":"error","name":"ExternalCall","inputs":[]},{"type":"error","name":"InvalidShortString","inputs":[]},{"type":"error","name":"InvalidSignature","inputs":[]},{"type":"error","name":"NotOptedIn","inputs":[]},{"type":"error","name":"NotWhereEntity","inputs":[]},{"type":"error","name":"NotWho","inputs":[]},{"type":"error","name":"OptOutCooldown","inputs":[]},{"type":"error","name":"SafeCastOverflowedUintDowncast","inputs":[{"name":"bits","type":"uint8","internalType":"uint8"},{"name":"value","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"StringTooLong","inputs":[{"name":"str","type":"string","internalType":"string"}]}],"bytecode":{"object":"0x6101c034610171576001600160401b03602082018181118382101761015d576040908082525f84528151938285018581108582111761015d5783526001855260208501603160f81b81523060805261005682610175565b926101409384526100668761030c565b926101609384525190209061010096828852519020610120948186524660c05280519160208301937f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f85528284015260608301524660808301523060a083015260a0825260c08201968288109088111761015d5786905251902060a0523060e052610180915f83526101a0935f8552611b9d9687610443883960805187610571015260a05187611770015260c0518761182b015260e0518761173a015251866117bf015251856117e5015251846102fd015251836103260152518281816106c1015261104e01525181818161026e01526110a10152f35b634e487b7160e01b5f52604160045260245ffd5b5f80fd5b8051602090818110156101eb5750601f8251116101ad578082519201519080831061019f57501790565b825f19910360031b1b161790565b60448260405192839163305a27a960e01b83528160048401528051918291826024860152018484015e5f828201840152601f01601f19168101030190fd5b906001600160401b03821161015d575f54926001938481811c91168015610302575b838210146102ee57601f81116102bb575b5081601f841160011461025957509282939183925f9461024e575b50501b915f199060031b1c1916175f5560ff90565b015192505f80610239565b919083601f1981165f8052845f20945f905b888383106102a15750505010610289575b505050811b015f5560ff90565b01515f1960f88460031b161c191690555f808061027c565b85870151885590960195948501948793509081019061026b565b5f805284601f845f20920160051c820191601f860160051c015b8281106102e357505061021e565b5f81550185906102d5565b634e487b7160e01b5f52602260045260245ffd5b90607f169061020d565b8051602090818110156103365750601f8251116101ad578082519201519080831061019f57501790565b9192916001600160401b03811161015d5760019182548381811c91168015610438575b828210146102ee57601f8111610405575b5080601f83116001146103a55750819293945f9261039a575b50505f19600383901b1c191690821b17905560ff90565b015190505f80610383565b90601f19831695845f52825f20925f905b8882106103ee57505083859697106103d6575b505050811b01905560ff90565b01515f1960f88460031b161c191690555f80806103c9565b8087859682949686015181550195019301906103b6565b835f5283601f835f20920160051c820191601f850160051c015b82811061042d57505061036a565b5f815501849061041f565b90607f169061035956fe60806040526004361015610011575f80fd5b5f3560e01c8063220d32d4146100f4578063530e1d43146100ef5780636d0fae4a146100ea5780638247a97c146100e557806384b0196e146100e05780639333fbda146100db57806393f79bc3146100d65780639a15d7a5146100d15780639f86fd85146100cc578063b1138ad1146100c7578063c4b5d62c146100c2578063ced44ba7146100bd578063d4610483146100b85763d4a63862146100b3575f80fd5b6107d6565b6107b4565b6106f0565b6106ac565b61068a565b6105f9565b610531565b610432565b6103db565b6102e5565b61029d565b610259565b6101f3565b610129565b600435906001600160a01b038216820361010f57565b5f80fd5b602435906001600160a01b038216820361010f57565b3461010f57604036600319011261010f5760206101556101476100f9565b61014f610113565b9061083f565b6040519015158152f35b9181601f8401121561010f5782359167ffffffffffffffff831161010f576020838186019501011161010f57565b90608060031983011261010f576001600160a01b0391600435838116810361010f5792602435908116810361010f579160443565ffffffffffff8116810361010f57916064359067ffffffffffffffff821161010f576101ef9160040161015f565b9091565b3461010f576020600161024961024f61023a61020e3661018d565b969290949193888060a01b03165f526003895260405f209060018060a01b03165f5260205260405f2090565b92868060d01b03953691610978565b91610bd6565b1614604051908152f35b3461010f575f36600319011261010f576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461010f57602036600319011261010f576102bf6102b96100f9565b33610ccf565b005b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b3461010f575f36600319011261010f5761037e6103217f000000000000000000000000000000000000000000000000000000000000000061123f565b61034a7f000000000000000000000000000000000000000000000000000000000000000061133d565b60405190610357826108d7565b5f825261038c602091604051958695600f60f81b875260e0602088015260e08701906102c1565b9085820360408701526102c1565b4660608501523060808501525f60a085015283810360c0850152602080845192838152019301915f5b8281106103c457505050500390f35b8351855286955093810193928101926001016103b5565b3461010f57604036600319011261010f5760206104296103f96100f9565b610401610113565b6001600160a01b039182165f9081526002855260408082209290931681526020919091522090565b54604051908152f35b3461010f576104403661018d565b909165ffffffffffff8061045342611406565b16911690811061051f576104ff926104f06104f89260018060a01b0380891691825f5260026020526104988960405f209060018060a01b03165f5260205260405f2090565b546040519260208401947f7830334d17a05ab8aeca8f1778e27182208fc2d454ac7b38a4edc2069ee3a4a6865260408501528a166060840152608083015260a082015260a081526104e8816108f3565b519020611438565b923691610978565b9084610d25565b1561050d576102bf91610e01565b604051638baa579f60e01b8152600490fd5b60405163df4cc36d60e01b8152600490fd5b3461010f57606036600319011261010f5761054a6100f9565b610552610113565b906044359065ffffffffffff8216820361010f576001600160a01b03927f0000000000000000000000000000000000000000000000000000000000000000841633036105e7576105c6936105c192165f52600360205260405f209060018060a01b03165f5260205260405f2090565b610f2c565b60408051941515855263ffffffff91909116602085015292915050f35b0390f35b604051637ca475e560e11b8152600490fd5b3461010f57604036600319011261010f576106126100f9565b60243567ffffffffffffffff811161010f575f916106358392369060040161015f565b90816040519283928337810184815203915af46106826106536109ae565b916106746040519384921515602084015260408084015260608301906102c1565b03601f19810183528261092b565b805190602001fd5b3461010f57602036600319011261010f576102bf6106a66100f9565b33611022565b3461010f575f36600319011261010f576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461010f576106fe3661018d565b909165ffffffffffff8061071142611406565b16911690811061051f576107a6926104f06104f89260018060a01b0380891691825f5260026020526107568960405f209060018060a01b03165f5260205260405f2090565b546040519260208401947f6ab5200f1123a8d51d1695a9e5e757267926b53c6359f90b8873cc7dcc30ea2c865260408501528a166060840152608083015260a082015260a081526104e8816108f3565b1561050d576102bf91611022565b3461010f57602036600319011261010f576102bf6107d06100f9565b33610e01565b3461010f57608036600319011261010f576107ef6100f9565b6107f7610113565b906044356001600160a01b038116810361010f576064359065ffffffffffff8216820361010f576105e39361082b93610a1f565b6040519182916020835260208301906102c1565b6001600160a01b039081165f908152600360209081526040808320939094168252919091522080548061087d57505060015f5b818060d01b03161490565b5f1990808281011161089d576001925f5260205f2001015460301c610872565b610b9f565b634e487b7160e01b5f52604160045260245ffd5b6040810190811067ffffffffffffffff8211176108d257604052565b6108a2565b6020810190811067ffffffffffffffff8211176108d257604052565b60c0810190811067ffffffffffffffff8211176108d257604052565b60a0810190811067ffffffffffffffff8211176108d257604052565b90601f8019910116810190811067ffffffffffffffff8211176108d257604052565b6040519061095a826108b6565b565b67ffffffffffffffff81116108d257601f01601f191660200190565b9291926109848261095c565b91610992604051938461092b565b82948184528183011161010f578281602093845f960137010152565b3d156109d8573d906109bf8261095c565b916109cd604051938461092b565b82523d5f602084013e565b606090565b5190811515820361010f57565b519063ffffffff8216820361010f57565b919082604091031261010f57610a1c6020610a15846109dd565b93016109ea565b90565b9392915f8060609665ffffffffffff604096875196602096639a15d7a560e01b888a015260018060a01b0380921660248a015216604488015216606486015260648552610a6b8561090f565b85519485610a9686820192639f86fd8560e01b845230602484015289604484015260648301906102c1565b0395610aaa601f199788810183528261092b565b51915afa50610ab76109ae565b8051810190848184840193031261010f57610ad38382016109dd565b90858101519067ffffffffffffffff821161010f57019082603f8301121561010f5783820151610b028161095c565b92610b0f8851948561092b565b8184528584019488838301011161010f57815f9289889301875e8401015215610b7d57908282610b4293510101906109fb565b9390610b4e5750505050565b610a1c93949550610b719051948592830191909163ffffffff6020820193169052565b0390810183528261092b565b8091505191821561010f5701fd5b9081602091031261010f57610a1c906109ea565b634e487b7160e01b5f52601160045260245ffd5b5f1981019190821161089d57565b90600163ffffffff8093160191821161089d57565b91805115610cc55780602080610bf193518301019101610b8b565b91610bfc83826111eb565b92610c0d845165ffffffffffff1690565b9065ffffffffffff8085169216828114610cac5782119182610c4c575b5050610c3a57610a1c9250611656565b5050602001516001600160d01b031690565b909150610c598354610bb3565b63ffffffff831614918215610c72575b50505f80610c2a565b610ca4919250610c8d610c87610c9992610bc1565b856111eb565b5165ffffffffffff1690565b65ffffffffffff1690565b115f80610c69565b50505050602091909101516001600160d01b0316905090565b50610a1c91611656565b6001600160a01b039081165f8181526002602090815260408083209590941680835294905291822080546001019055907f8ed32926585579e6191b145240df788165f4957e1135f30a00e08ee8feb9d6809080a3565b610d2f838361145e565b506004819592951015610ded57159384610dd7575b508315610d52575b50505090565b5f929350908291604051610d8a816106746020820194630b135d3f60e11b998a875260248401526040604484015260648301906102c1565b51915afa90610d976109ae565b82610dc9575b82610dad575b50505f8080610d4c565b90915060208180518101031261010f5760200151145f80610da3565b915060208251101591610d9d565b6001600160a01b0383811691161493505f610d44565b634e487b7160e01b5f52602160045260245ffd5b90610e3d610e3882610e238560018060a01b03165f52600360205260405f2090565b9060018060a01b03165f5260205260405f2090565b6118d3565b9091506001600160d01b031615610ee85765ffffffffffff80610e5f42611406565b16911614610ed657610e97610e8882610e238560018060a01b03165f52600360205260405f2090565b610e9142611406565b90611994565b5050610ea38183610ccf565b6001600160a01b0390811691167f1629cd9ad365627cf8408d19c50224af8f3213c1a18ae48062d92e22bddf7de55f80a3565b60405163291bf4b760e21b8152600490fd5b6040516334b09b3960e11b8152600490fd5b906001820180921161089d57565b90604051610f15816108b6565b915465ffffffffffff8116835260301c6020830152565b908154905f829160058411610fb5575b610f479350846115f4565b908115610fa957610f6890610f5b83610bb3565b905f5260205f2001610f08565b91610fa2610f99610f936020610f84875165ffffffffffff1690565b9601516001600160d01b031690565b93610bb3565b63ffffffff1690565b6001939291565b50505f905f905f905f90565b9192610fc0816114b6565b810390811161089d57610f4793855f5265ffffffffffff808360205f20015416908516105f14610ff1575091610f3c565b929150610ffd90610efa565b90610f3c565b9081602091031261010f57610a1c906109dd565b6040513d5f823e3d90fd5b6040516302910f8b60e31b8082526001600160a01b0383811660048401529293916020919082816024817f000000000000000000000000000000000000000000000000000000000000000089165afa90811561119f575f916111b6575b50156111a4576040519081526001600160a01b038316600482015281816024817f000000000000000000000000000000000000000000000000000000000000000088165afa91821561119f575f92611172575b505015611160576110e3818461083f565b61114e578061111961110a8493610e238760018060a01b03165f52600360205260405f2090565b61111342611406565b90611a9e565b50506111258185610ccf565b1691167f9b730d5b907ee509de729817a2bb37e404418ba569b3a50f36192372f973cb415f80a3565b60405163dcdeaba360e01b8152600490fd5b6040516321f5408d60e01b8152600490fd5b6111919250803d10611198575b611189818361092b565b810190611003565b5f806110d2565b503d61117f565b611017565b604051630fb9ff9560e41b8152600490fd5b6111cd9150833d851161119857611189818361092b565b5f61107f565b604051906111e0826108b6565b5f6020838281520152565b6112109161120a916111fb6111d3565b506112046111d3565b506116e2565b50610f08565b65ffffffffffff81511690602060018060d01b039101511660405191611235836108b6565b8252602082015290565b60ff811461125057610a1c9061170b565b506040515f80546001918160011c9260018316908115611333575b60209060208610831461131f578587528694602086019390811561130057506001146112a1575b505050610a1c9250038261092b565b9250936112ce5f80527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e56390565b945f935b8285106112ea57505050610a1c9350015f8080611292565b86548585015295860195879550938101936112d2565b92505050610a1c9491925060ff19168252151560051b015f8080611292565b634e487b7160e01b5f52602260045260245ffd5b93607f169361126b565b60ff811461134e57610a1c9061170b565b506040516001805480821c915f908281169081156113fc575b60209060208610831461131f5785875286946020860193908115611300575060011461139c57505050610a1c9250038261092b565b9250936113ca60015f527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf690565b945f935b8285106113e657505050610a1c9350015f8080611292565b86548585015295860195879550938101936113ce565b93607f1693611367565b65ffffffffffff90818111611419571690565b604490604051906306dfcc6560e41b8252603060048301526024820152fd5b604290611443611737565b906040519161190160f01b8352600283015260228201522090565b815191906041830361148e576114879250602082015190606060408401519301515f1a90611851565b9192909190565b50505f9160029190565b81156114a2570490565b634e487b7160e01b5f52601260045260245ffd5b80156115ef578061158861158161157761156d61156361155961154f6115456001610a1c9a5f908b60801c806115e3575b508060401c806115d6575b508060201c806115c9575b508060101c806115bc575b508060081c806115af575b508060041c806115a2575b508060021c80611595575b50821c61158e575b811c1b61153e818b611498565b0160011c90565b61153e818a611498565b61153e8189611498565b61153e8188611498565b61153e8187611498565b61153e8186611498565b61153e8185611498565b8092611498565b90611922565b8101611531565b600291509101905f611529565b600491509101905f61151e565b600891509101905f611513565b601091509101905f611508565b602091509101905f6114fd565b604091509101905f6114f2565b9150506080905f6114e7565b505f90565b91905b8382106116045750505090565b909192808316906001818518811c830180931161089d57855f5265ffffffffffff808460205f20015416908516105f14611643575050925b91906115f7565b90949350810180911161089d579161163c565b908154905f829160058411611694575b6116719350846115f4565b8061167c5750505f90565b61168590610bb3565b905f5260205f20015460301c90565b919261169f816114b6565b810390811161089d5761167193855f5265ffffffffffff808360205f20015416908516105f146116d0575091611666565b9291506116dc90610efa565b90611666565b80548210156116f7575f5260205f2001905f90565b634e487b7160e01b5f52603260045260245ffd5b60ff811690601f82116117255760405191611235836108b6565b604051632cd44ac360e21b8152600490fd5b307f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03161480611828575b15611792577f000000000000000000000000000000000000000000000000000000000000000090565b60405160208101907f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f82527f000000000000000000000000000000000000000000000000000000000000000060408201527f000000000000000000000000000000000000000000000000000000000000000060608201524660808201523060a082015260a08152611822816108f3565b51902090565b507f00000000000000000000000000000000000000000000000000000000000000004614611769565b91907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a084116118c8579160209360809260ff5f9560405194855216868401526040830152606082015282805260015afa1561119f575f516001600160a01b038116156118be57905f905f90565b505f906001905f90565b5050505f9160039190565b8054806118e45750505f905f905f90565b5f1990808281011161089d57611901925f5260205f200101610f08565b9065ffffffffffff82511691602060018060d01b0391015116906001929190565b908082101561192f575090565b905090565b8054680100000000000000008110156108d257611956916001820181556116e2565b91909161198157805160209091015160301b65ffffffffffff191665ffffffffffff91909116179055565b634e487b7160e01b5f525f60045260245ffd5b8054908115611a7c576119bc6119b76119ac84610bb3565b835f5260205f200190565b610f08565b906119cd825165ffffffffffff1690565b65ffffffffffff8581169491168410611a6a57611a37946020946119fa610c99865165ffffffffffff1690565b03611a3c5750611a2991611a10611a1b92610bb3565b905f5260205f200190565b65ffffffffffff8154169055565b01516001600160d01b031690565b905f90565b9050611a6591611a5b611a4d61094d565b65ffffffffffff9093168352565b5f85830152611934565b611a29565b604051632520601d60e01b8152600490fd5b611a98929150611a8d611a4d61094d565b5f6020830152611934565b5f905f90565b8054908115611b4357611ab66119b76119ac84610bb3565b90611ac7825165ffffffffffff1690565b65ffffffffffff8581169491168410611a6a57611b2194602094611af4610c99865165ffffffffffff1690565b03611b275750611a2991611a10611b0a92610bb3565b660100000000000065ffffffffffff825416179055565b90600190565b9050611a6591611b38611a4d61094d565b600182860152611934565b611b60929150611b54611a4d61094d565b60016020830152611934565b5f9060019056fea2646970667358221220a2601598b530c384dfaa52fda9ec24334fb67ce73c9d54796027ec5092285f3464736f6c63430008190033","sourceMap":"215:929:83:-:0;;;;-1:-1:-1;;;;;215:929:83;;;;;;;;;;;;;;;;;-1:-1:-1;215:929:83;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;215:929:83;;348:4:82;332:21;;3401:45:52;;;:::i;:::-;3393:53;;;;;3467:51;;;:::i;:::-;3456:62;;;;;215:929:83;3542:22:52;;3528:36;;;;;;215:929:83;3591:25:52;;3574:42;;;;;3644:13;3627:30;;215:929:83;;4204:80:52;215:929:83;4204:80:52;;2079:95;;;;;;;;;;;;3644:13;332:21:82;2079:95:52;;;348:4:82;2079:95:52;;;;;4204:80;;3627:30;215:929:83;;;;;;;;;;;;;;;;4194:91:52;;2079:95;3667:48;348:4:82;3725:27:52;;1675:26:91;;-1:-1:-1;1675:26:91;;1711:30;;-1:-1:-1;1711:30:91;;215:929:83;;;;;;332:21:82;215:929:83;;;;;2079:95:52;215:929:83;;;;;3627:30:52;215:929:83;;;;;3725:27:52;215:929:83;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;215:929:83;;;;;-1:-1:-1;215:929:83;;;;;2914:340:48;215:929:83;;3059:2:48;;3037:24;;;3059:2;;;215:929:83;1854:2:48;215:929:83;;1840:16:48;1836:72;;215:929:83;;;;;2079:95:52;215:929:83;;;;;;1949:36:48;;3077:27;:::o;215:929:83:-;;;;;;;;;;1949:36:48;3077:27;:::o;1836:72::-;215:929:83;;;;1879:18:48;;;;;;;;;;;;215:929:83;;;;;;;;;;;;;;;;355:1;215:929;;;;;;1854:2:48;215:929:83;-1:-1:-1;;215:929:83;;;1879:18:48;;;;3033:215;215:929:83;-1:-1:-1;;;;;215:929:83;;;;355:1;215:929;;;;;;;;;;;;;;3033:215:48;215:929:83;;;;;;;;;;;3033:215:48;215:929:83;;;;;;;;;;;;;;;;355:1;215:929;;;;;;;;;;;;;;;;;355:1;215:929;1390:66:48;3195:42;:::o;215:929:83:-;;;;-1:-1:-1;215:929:83;;;;;;;;;;;;355:1;215:929;;;355:1;215:929;;355:1;215:929;;;;;;;;;;;;;;;;;;;;;355:1;215:929;1390:66:48;3195:42;:::o;215:929:83:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;215:929:83;;;;;;;355:1;215:929;;;;;355:1;215:929;;;;;;;;;;;;;;;;;;;;;;;;;355:1;215:929;;;;;;;;;;;355:1;215:929;;;;;355:1;215:929;;;;;;;;2914:340:48;215:929:83;;3059:2:48;;3037:24;;;3059:2;;;215:929:83;1854:2:48;215:929:83;;1840:16:48;1836:72;;215:929:83;;;;;2079:95:52;215:929:83;;;;;;1949:36:48;;3077:27;:::o;3033:215::-;215:929:83;;;-1:-1:-1;;;;;215:929:83;;;;;;;;;;;;;;;;;;3033:215:48;215:929:83;;;;;;;;;;;3033:215:48;215:929:83;;;;;;;;;;;;;;-1:-1:-1;215:929:83;;;;-1:-1:-1;;;;215:929:83;;;;;;;;;;;;;1390:66:48;;3195:42::o;215:929:83:-;;;;-1:-1:-1;215:929:83;;;;;;;;;;;;-1:-1:-1;215:929:83;;-1:-1:-1;215:929:83;;-1:-1:-1;215:929:83;;;;;;;;;;;;;;;;;;;;;;;;;1390:66:48;3195:42;:::o;215:929:83:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;215:929:83;;;;-1:-1:-1;215:929:83;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;215:929:83;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361015610011575f80fd5b5f3560e01c8063220d32d4146100f4578063530e1d43146100ef5780636d0fae4a146100ea5780638247a97c146100e557806384b0196e146100e05780639333fbda146100db57806393f79bc3146100d65780639a15d7a5146100d15780639f86fd85146100cc578063b1138ad1146100c7578063c4b5d62c146100c2578063ced44ba7146100bd578063d4610483146100b85763d4a63862146100b3575f80fd5b6107d6565b6107b4565b6106f0565b6106ac565b61068a565b6105f9565b610531565b610432565b6103db565b6102e5565b61029d565b610259565b6101f3565b610129565b600435906001600160a01b038216820361010f57565b5f80fd5b602435906001600160a01b038216820361010f57565b3461010f57604036600319011261010f5760206101556101476100f9565b61014f610113565b9061083f565b6040519015158152f35b9181601f8401121561010f5782359167ffffffffffffffff831161010f576020838186019501011161010f57565b90608060031983011261010f576001600160a01b0391600435838116810361010f5792602435908116810361010f579160443565ffffffffffff8116810361010f57916064359067ffffffffffffffff821161010f576101ef9160040161015f565b9091565b3461010f576020600161024961024f61023a61020e3661018d565b969290949193888060a01b03165f526003895260405f209060018060a01b03165f5260205260405f2090565b92868060d01b03953691610978565b91610bd6565b1614604051908152f35b3461010f575f36600319011261010f576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461010f57602036600319011261010f576102bf6102b96100f9565b33610ccf565b005b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b3461010f575f36600319011261010f5761037e6103217f000000000000000000000000000000000000000000000000000000000000000061123f565b61034a7f000000000000000000000000000000000000000000000000000000000000000061133d565b60405190610357826108d7565b5f825261038c602091604051958695600f60f81b875260e0602088015260e08701906102c1565b9085820360408701526102c1565b4660608501523060808501525f60a085015283810360c0850152602080845192838152019301915f5b8281106103c457505050500390f35b8351855286955093810193928101926001016103b5565b3461010f57604036600319011261010f5760206104296103f96100f9565b610401610113565b6001600160a01b039182165f9081526002855260408082209290931681526020919091522090565b54604051908152f35b3461010f576104403661018d565b909165ffffffffffff8061045342611406565b16911690811061051f576104ff926104f06104f89260018060a01b0380891691825f5260026020526104988960405f209060018060a01b03165f5260205260405f2090565b546040519260208401947f7830334d17a05ab8aeca8f1778e27182208fc2d454ac7b38a4edc2069ee3a4a6865260408501528a166060840152608083015260a082015260a081526104e8816108f3565b519020611438565b923691610978565b9084610d25565b1561050d576102bf91610e01565b604051638baa579f60e01b8152600490fd5b60405163df4cc36d60e01b8152600490fd5b3461010f57606036600319011261010f5761054a6100f9565b610552610113565b906044359065ffffffffffff8216820361010f576001600160a01b03927f0000000000000000000000000000000000000000000000000000000000000000841633036105e7576105c6936105c192165f52600360205260405f209060018060a01b03165f5260205260405f2090565b610f2c565b60408051941515855263ffffffff91909116602085015292915050f35b0390f35b604051637ca475e560e11b8152600490fd5b3461010f57604036600319011261010f576106126100f9565b60243567ffffffffffffffff811161010f575f916106358392369060040161015f565b90816040519283928337810184815203915af46106826106536109ae565b916106746040519384921515602084015260408084015260608301906102c1565b03601f19810183528261092b565b805190602001fd5b3461010f57602036600319011261010f576102bf6106a66100f9565b33611022565b3461010f575f36600319011261010f576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461010f576106fe3661018d565b909165ffffffffffff8061071142611406565b16911690811061051f576107a6926104f06104f89260018060a01b0380891691825f5260026020526107568960405f209060018060a01b03165f5260205260405f2090565b546040519260208401947f6ab5200f1123a8d51d1695a9e5e757267926b53c6359f90b8873cc7dcc30ea2c865260408501528a166060840152608083015260a082015260a081526104e8816108f3565b1561050d576102bf91611022565b3461010f57602036600319011261010f576102bf6107d06100f9565b33610e01565b3461010f57608036600319011261010f576107ef6100f9565b6107f7610113565b906044356001600160a01b038116810361010f576064359065ffffffffffff8216820361010f576105e39361082b93610a1f565b6040519182916020835260208301906102c1565b6001600160a01b039081165f908152600360209081526040808320939094168252919091522080548061087d57505060015f5b818060d01b03161490565b5f1990808281011161089d576001925f5260205f2001015460301c610872565b610b9f565b634e487b7160e01b5f52604160045260245ffd5b6040810190811067ffffffffffffffff8211176108d257604052565b6108a2565b6020810190811067ffffffffffffffff8211176108d257604052565b60c0810190811067ffffffffffffffff8211176108d257604052565b60a0810190811067ffffffffffffffff8211176108d257604052565b90601f8019910116810190811067ffffffffffffffff8211176108d257604052565b6040519061095a826108b6565b565b67ffffffffffffffff81116108d257601f01601f191660200190565b9291926109848261095c565b91610992604051938461092b565b82948184528183011161010f578281602093845f960137010152565b3d156109d8573d906109bf8261095c565b916109cd604051938461092b565b82523d5f602084013e565b606090565b5190811515820361010f57565b519063ffffffff8216820361010f57565b919082604091031261010f57610a1c6020610a15846109dd565b93016109ea565b90565b9392915f8060609665ffffffffffff604096875196602096639a15d7a560e01b888a015260018060a01b0380921660248a015216604488015216606486015260648552610a6b8561090f565b85519485610a9686820192639f86fd8560e01b845230602484015289604484015260648301906102c1565b0395610aaa601f199788810183528261092b565b51915afa50610ab76109ae565b8051810190848184840193031261010f57610ad38382016109dd565b90858101519067ffffffffffffffff821161010f57019082603f8301121561010f5783820151610b028161095c565b92610b0f8851948561092b565b8184528584019488838301011161010f57815f9289889301875e8401015215610b7d57908282610b4293510101906109fb565b9390610b4e5750505050565b610a1c93949550610b719051948592830191909163ffffffff6020820193169052565b0390810183528261092b565b8091505191821561010f5701fd5b9081602091031261010f57610a1c906109ea565b634e487b7160e01b5f52601160045260245ffd5b5f1981019190821161089d57565b90600163ffffffff8093160191821161089d57565b91805115610cc55780602080610bf193518301019101610b8b565b91610bfc83826111eb565b92610c0d845165ffffffffffff1690565b9065ffffffffffff8085169216828114610cac5782119182610c4c575b5050610c3a57610a1c9250611656565b5050602001516001600160d01b031690565b909150610c598354610bb3565b63ffffffff831614918215610c72575b50505f80610c2a565b610ca4919250610c8d610c87610c9992610bc1565b856111eb565b5165ffffffffffff1690565b65ffffffffffff1690565b115f80610c69565b50505050602091909101516001600160d01b0316905090565b50610a1c91611656565b6001600160a01b039081165f8181526002602090815260408083209590941680835294905291822080546001019055907f8ed32926585579e6191b145240df788165f4957e1135f30a00e08ee8feb9d6809080a3565b610d2f838361145e565b506004819592951015610ded57159384610dd7575b508315610d52575b50505090565b5f929350908291604051610d8a816106746020820194630b135d3f60e11b998a875260248401526040604484015260648301906102c1565b51915afa90610d976109ae565b82610dc9575b82610dad575b50505f8080610d4c565b90915060208180518101031261010f5760200151145f80610da3565b915060208251101591610d9d565b6001600160a01b0383811691161493505f610d44565b634e487b7160e01b5f52602160045260245ffd5b90610e3d610e3882610e238560018060a01b03165f52600360205260405f2090565b9060018060a01b03165f5260205260405f2090565b6118d3565b9091506001600160d01b031615610ee85765ffffffffffff80610e5f42611406565b16911614610ed657610e97610e8882610e238560018060a01b03165f52600360205260405f2090565b610e9142611406565b90611994565b5050610ea38183610ccf565b6001600160a01b0390811691167f1629cd9ad365627cf8408d19c50224af8f3213c1a18ae48062d92e22bddf7de55f80a3565b60405163291bf4b760e21b8152600490fd5b6040516334b09b3960e11b8152600490fd5b906001820180921161089d57565b90604051610f15816108b6565b915465ffffffffffff8116835260301c6020830152565b908154905f829160058411610fb5575b610f479350846115f4565b908115610fa957610f6890610f5b83610bb3565b905f5260205f2001610f08565b91610fa2610f99610f936020610f84875165ffffffffffff1690565b9601516001600160d01b031690565b93610bb3565b63ffffffff1690565b6001939291565b50505f905f905f905f90565b9192610fc0816114b6565b810390811161089d57610f4793855f5265ffffffffffff808360205f20015416908516105f14610ff1575091610f3c565b929150610ffd90610efa565b90610f3c565b9081602091031261010f57610a1c906109dd565b6040513d5f823e3d90fd5b6040516302910f8b60e31b8082526001600160a01b0383811660048401529293916020919082816024817f000000000000000000000000000000000000000000000000000000000000000089165afa90811561119f575f916111b6575b50156111a4576040519081526001600160a01b038316600482015281816024817f000000000000000000000000000000000000000000000000000000000000000088165afa91821561119f575f92611172575b505015611160576110e3818461083f565b61114e578061111961110a8493610e238760018060a01b03165f52600360205260405f2090565b61111342611406565b90611a9e565b50506111258185610ccf565b1691167f9b730d5b907ee509de729817a2bb37e404418ba569b3a50f36192372f973cb415f80a3565b60405163dcdeaba360e01b8152600490fd5b6040516321f5408d60e01b8152600490fd5b6111919250803d10611198575b611189818361092b565b810190611003565b5f806110d2565b503d61117f565b611017565b604051630fb9ff9560e41b8152600490fd5b6111cd9150833d851161119857611189818361092b565b5f61107f565b604051906111e0826108b6565b5f6020838281520152565b6112109161120a916111fb6111d3565b506112046111d3565b506116e2565b50610f08565b65ffffffffffff81511690602060018060d01b039101511660405191611235836108b6565b8252602082015290565b60ff811461125057610a1c9061170b565b506040515f80546001918160011c9260018316908115611333575b60209060208610831461131f578587528694602086019390811561130057506001146112a1575b505050610a1c9250038261092b565b9250936112ce5f80527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e56390565b945f935b8285106112ea57505050610a1c9350015f8080611292565b86548585015295860195879550938101936112d2565b92505050610a1c9491925060ff19168252151560051b015f8080611292565b634e487b7160e01b5f52602260045260245ffd5b93607f169361126b565b60ff811461134e57610a1c9061170b565b506040516001805480821c915f908281169081156113fc575b60209060208610831461131f5785875286946020860193908115611300575060011461139c57505050610a1c9250038261092b565b9250936113ca60015f527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf690565b945f935b8285106113e657505050610a1c9350015f8080611292565b86548585015295860195879550938101936113ce565b93607f1693611367565b65ffffffffffff90818111611419571690565b604490604051906306dfcc6560e41b8252603060048301526024820152fd5b604290611443611737565b906040519161190160f01b8352600283015260228201522090565b815191906041830361148e576114879250602082015190606060408401519301515f1a90611851565b9192909190565b50505f9160029190565b81156114a2570490565b634e487b7160e01b5f52601260045260245ffd5b80156115ef578061158861158161157761156d61156361155961154f6115456001610a1c9a5f908b60801c806115e3575b508060401c806115d6575b508060201c806115c9575b508060101c806115bc575b508060081c806115af575b508060041c806115a2575b508060021c80611595575b50821c61158e575b811c1b61153e818b611498565b0160011c90565b61153e818a611498565b61153e8189611498565b61153e8188611498565b61153e8187611498565b61153e8186611498565b61153e8185611498565b8092611498565b90611922565b8101611531565b600291509101905f611529565b600491509101905f61151e565b600891509101905f611513565b601091509101905f611508565b602091509101905f6114fd565b604091509101905f6114f2565b9150506080905f6114e7565b505f90565b91905b8382106116045750505090565b909192808316906001818518811c830180931161089d57855f5265ffffffffffff808460205f20015416908516105f14611643575050925b91906115f7565b90949350810180911161089d579161163c565b908154905f829160058411611694575b6116719350846115f4565b8061167c5750505f90565b61168590610bb3565b905f5260205f20015460301c90565b919261169f816114b6565b810390811161089d5761167193855f5265ffffffffffff808360205f20015416908516105f146116d0575091611666565b9291506116dc90610efa565b90611666565b80548210156116f7575f5260205f2001905f90565b634e487b7160e01b5f52603260045260245ffd5b60ff811690601f82116117255760405191611235836108b6565b604051632cd44ac360e21b8152600490fd5b307f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03161480611828575b15611792577f000000000000000000000000000000000000000000000000000000000000000090565b60405160208101907f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f82527f000000000000000000000000000000000000000000000000000000000000000060408201527f000000000000000000000000000000000000000000000000000000000000000060608201524660808201523060a082015260a08152611822816108f3565b51902090565b507f00000000000000000000000000000000000000000000000000000000000000004614611769565b91907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a084116118c8579160209360809260ff5f9560405194855216868401526040830152606082015282805260015afa1561119f575f516001600160a01b038116156118be57905f905f90565b505f906001905f90565b5050505f9160039190565b8054806118e45750505f905f905f90565b5f1990808281011161089d57611901925f5260205f200101610f08565b9065ffffffffffff82511691602060018060d01b0391015116906001929190565b908082101561192f575090565b905090565b8054680100000000000000008110156108d257611956916001820181556116e2565b91909161198157805160209091015160301b65ffffffffffff191665ffffffffffff91909116179055565b634e487b7160e01b5f525f60045260245ffd5b8054908115611a7c576119bc6119b76119ac84610bb3565b835f5260205f200190565b610f08565b906119cd825165ffffffffffff1690565b65ffffffffffff8581169491168410611a6a57611a37946020946119fa610c99865165ffffffffffff1690565b03611a3c5750611a2991611a10611a1b92610bb3565b905f5260205f200190565b65ffffffffffff8154169055565b01516001600160d01b031690565b905f90565b9050611a6591611a5b611a4d61094d565b65ffffffffffff9093168352565b5f85830152611934565b611a29565b604051632520601d60e01b8152600490fd5b611a98929150611a8d611a4d61094d565b5f6020830152611934565b5f905f90565b8054908115611b4357611ab66119b76119ac84610bb3565b90611ac7825165ffffffffffff1690565b65ffffffffffff8581169491168410611a6a57611b2194602094611af4610c99865165ffffffffffff1690565b03611b275750611a2991611a10611b0a92610bb3565b660100000000000065ffffffffffff825416179055565b90600190565b9050611a6591611b38611a4d61094d565b600182860152611934565b611b60929150611b54611a4d61094d565b60016020830152611934565b5f9060019056fea2646970667358221220a2601598b530c384dfaa52fda9ec24334fb67ce73c9d54796027ec5092285f3464736f6c63430008190033","sourceMap":"215:929:83:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;;;-1:-1:-1;;;;;215:929:83;;;;;;:::o;:::-;;;;;;;;-1:-1:-1;;;;;215:929:83;;;;;;:::o;:::-;;;;;;-1:-1:-1;;215:929:83;;;;;;;;:::i;:::-;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;215:929:83;;;;;-1:-1:-1;;;;;215:929:83;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;2036:1:91;215:929:83;1975:57:91;:22;215:929:83;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;215:929:83;1975:10:91;215:929:83;;;-1:-1:-1;215:929:83;;;;;;;;;;;;;;;;;1975:22:91;215:929:83;;;;;;;;;;:::i;:::-;1975:57:91;;:::i;:::-;215:929:83;1975:62:91;215:929:83;;;;;;;;;;;;-1:-1:-1;;215:929:83;;;;;;851:39:91;-1:-1:-1;;;;;215:929:83;;;;;;;;;;;;-1:-1:-1;;215:929:83;;;;3493:5:91;215:929:83;;:::i;:::-;3481:10:91;3493:5;:::i;:::-;215:929:83;;;;;;;;;;;;;;;;;;-1:-1:-1;215:929:83;;;;;;;;-1:-1:-1;;215:929:83;;;;:::o;:::-;;;;;;-1:-1:-1;;215:929:83;;;;;6099:41:52;:5;:41;:::i;:::-;6554:47;:8;:47;:::i;:::-;215:929:83;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;5590:13:52;215:929:83;;;;5625:4:52;215:929:83;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;215:929:83;;;;;;;;6584:16:52;215:929:83;;;;;;;;;-1:-1:-1;;215:929:83;;;;;1214:77:91;215:929:83;;:::i;:::-;;;:::i;:::-;-1:-1:-1;;;;;215:929:83;;;-1:-1:-1;215:929:83;;;1214:77:91;215:929:83;;;;;;;;;;;;-1:-1:-1;215:929:83;;;;;;;1214:77:91;215:929:83;;;;;;;;;;;;;;:::i;:::-;;;;837:15:62;819:34;837:15;819:34;:::i;:::-;215:929:83;;;1469:27:91;;;1465:83;;3164:88;215:929:83;4587:179:91;215:929:83;;;;;;;;;;;;-1:-1:-1;215:929:83;4713:6:91;215:929:83;;4713:18:91;215:929:83;;-1:-1:-1;215:929:83;;;;;;;;;;;;;;;;;4713:18:91;215:929:83;;;4644:98:91;215:929:83;4644:98:91;;215:929:83;1082:76:91;215:929:83;;;948:75:91;;215:929:83;;;948:75:91;;;215:929:83;948:75:91;;;215:929:83;948:75:91;;;215:929:83;948:75:91;4644:98;;;;;:::i;:::-;215:929:83;4617:139:91;;4587:179;:::i;:::-;215:929:83;;;;:::i;:::-;3164:88:91;;;:::i;:::-;3163:89;3159:145;;3327:5;;;:::i;3159:145::-;215:929:83;;-1:-1:-1;;;3275:18:91;;215:929:83;;3275:18:91;1465:83;215:929:83;;-1:-1:-1;;;1519:18:91;;215:929:83;;1519:18:91;215:929:83;;;;;;-1:-1:-1;;215:929:83;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;;;;215:929:83;449:5:82;215:929:83;;435:10:82;:19;431:71;;581:61:83;215:929;581:22;215:929;;-1:-1:-1;215:929:83;581:10;215:929;;;-1:-1:-1;215:929:83;;;;;;;;;;;;;;;;;581:22;:61;:::i;:::-;215:929;;;;;;;;;;;;;;;;;;;-1:-1:-1;;215:929:83;;;;;431:71:82;215:929:83;;-1:-1:-1;;;477:14:82;;215:929:83;;477:14:82;215:929:83;;;;;;-1:-1:-1;;215:929:83;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;215:929:83;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;416:25:75;;;;477:31;416:25;;:::i;:::-;215:929:83;;;;;;;;;;477:31:75;;215:929:83;;;;;;;;;;;:::i;:::-;477:31:75;215:929:83;;477:31:75;;;;;;:::i;:::-;518:79;;;215:929:83;518:79:75;;215:929:83;;;;;;-1:-1:-1;;215:929:83;;;;2370:5:91;215:929:83;;:::i;:::-;2358:10:91;2370:5;:::i;215:929:83:-;;;;;;-1:-1:-1;;215:929:83;;;;;;758:37:91;-1:-1:-1;;;;;215:929:83;;;;;;;;;;;;;:::i;:::-;;;;837:15:62;819:34;837:15;819:34;:::i;:::-;215:929:83;;;1469:27:91;;;1465:83;;2610:87;215:929:83;4587:179:91;215:929:83;;;;;;;;;;;;-1:-1:-1;215:929:83;4713:6:91;215:929:83;;4713:18:91;215:929:83;;-1:-1:-1;215:929:83;;;;;;;;;;;;;;;;;4713:18:91;215:929:83;;;4644:98:91;215:929:83;4644:98:91;;215:929:83;948:75:91;215:929:83;;;948:75:91;;215:929:83;;;948:75:91;;;215:929:83;948:75:91;;;215:929:83;948:75:91;;;215:929:83;948:75:91;4644:98;;;;;:::i;2610:87::-;2609:88;2605:144;;2771:5;;;:::i;215:929:83:-;;;;;;-1:-1:-1;;215:929:83;;;;2923:5:91;215:929:83;;:::i;:::-;2911:10:91;2923:5;:::i;215:929:83:-;;;;;;-1:-1:-1;;215:929:83;;;;;;:::i;:::-;;;:::i;:::-;;;;-1:-1:-1;;;;;215:929:83;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;2099:134:91:-;-1:-1:-1;;;;;215:929:83;;;-1:-1:-1;215:929:83;;;2190:10:91;215:929:83;;;;;;;;;;;;;;;;;;;;;10303:8:60;;;:63;;2225:1:91;-1:-1:-1;10303:63:60;215:929:83;;;;;;2190:36:91;2099:134;:::o;10303:63:60:-;215:929:83;;;;;;;;;;2225:1:91;13267:109:86;-1:-1:-1;13267:109:86;215:929:83;-1:-1:-1;13267:109:86;;;215:929:83;;;10303:63:60;;215:929:83;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;:::i;:::-;;;;;;;;;;;;;;;:::o;:::-;948:75:91;215:929:83;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;:::o;:::-;;;;;;;;-1:-1:-1;;215:929:83;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;215:929:83;;;;;;:::o;:::-;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;-1:-1:-1;215:929:83;;;;:::o;:::-;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;:::o;655:487::-;;;;-1:-1:-1;803:12:83;215:929;;;;;;;936:76;;;;;;;;;;215:929;;;;;;;;936:76;;;215:929;;;;;;;;;;;;936:76;;;;;:::i;:::-;215:929;;716:88:82;;215:929:83;716:88:82;;;;;;;;;783:4;936:76:83;716:88:82;;215:929:83;;;;;;;;;;;:::i;:::-;716:88:82;215:929:83;716:88:82;215:929:83;;716:88:82;;;;;;;;:::i;:::-;698:107;;;;;;;:::i;:::-;215:929:83;;857:45:82;;;;;;;;215:929:83;;;;;;857:45:82;;;215:929:83;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;215:929:83;;;;;;;;;;;916:8:82;912:175;;215:929:83;;;857:207;215:929;;857:207;;;;:::i;:::-;1075:61;;;;655:487;;;;:::o;1075:61::-;1108:17;215:929;;;;1108:17;215:929;;1108:17;;;;;215:929;;;;;;;;;;;;1108:17;;;;;;;;;:::i;912:175:82:-;215:929:83;;;;944:22:82;;;940:36;;990:87;;215:929:83;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;215:929:83;;;;;;;;:::o;:::-;;;;;;;;;;;;;:::o;1818:604:86:-;;215:929:83;;1946:17:86;1942:83;;215:929:83;2049:27:86;215:929:83;2049:27:86;215:929:83;;2049:27:86;;;;;;:::i;:::-;2120:14;;;;;:::i;:::-;215:929:83;;;;;;;;;;;;;;;;2148:22:86;;;2144:77;;2235:21;-1:-1:-1;2235:84:86;;;;1818:604;2231:139;;;;1425:34;;;;:::i;2231:139::-;-1:-1:-1;;2049:27:86;2342:17;215:929:83;-1:-1:-1;;;;;215:929:83;;:::o;2235:84:86:-;215:929:83;;;2269:16:86;215:929:83;;2269:16:86;:::i;:::-;215:929:83;;;2261:24:86;:57;;;;;2235:84;;;;;;;2261:57;2289:29;2298:8;;;2289:18;2298:8;2289:23;2298:8;;:::i;:::-;2289:18;;:::i;:::-;215:929:83;;;;;2289:23:86;215:929:83;;;;2289:29:86;;2261:57;;;;2144:77;-1:-1:-1;;;;2049:27:86;2193:17;;;;215:929:83;-1:-1:-1;;;;;215:929:83;;-1:-1:-1;215:929:83;:::o;1942:83:86:-;1425:34;;;;:::i;4779:173:91:-;-1:-1:-1;;;;;215:929:83;;;-1:-1:-1;215:929:83;;;4876:6:91;215:929:83;;;;;;;;;;;;;;;;;;;;;;;;;;;;4920:25:91;;-1:-1:-1;4920:25:91;4779:173::o;1039:368:54:-;1211:33;;;;:::i;:::-;215:929:83;;;;;;;;;;1274:35:54;:58;;;;1039:368;1273:127;;;;;1039:368;1254:146;;;1039:368;:::o;1273:127::-;1283:26;215:929:83;;;;;;;;2041:60:54;;215:929:83;2041:60:54;;;;;;;;;;;;;;215:929:83;;;;;;;;;;;:::i;2041:60:54:-;2010:101;;;;;;;:::i;:::-;2129:42;;;1273:127;2129:134;;;1273:127;;;;;;;;2129:134;215:929:83;;;2041:60:54;215:929:83;;;2187:29:54;;215:929:83;;;;2041:60:54;2187:29;215:929:83;2187:76:54;2129:134;;;;:42;215:929:83;;2041:60:54;215:929:83;;2152:19:54;;2129:42;;;1274:58;-1:-1:-1;;;;;215:929:83;;;;;1313:19:54;;-1:-1:-1;1274:58:54;;;215:929:83;;;;1283:26:54;215:929:83;;;;;1283:26:54;215:929:83;3991:467:91;;5260:30:86;4105:22:91;:15;;;215:929:83;;;;;;;;4105:10:91;215:929:83;;;;;;;4105:15:91;215:929:83;;;;;;;;;;;;;;;;4105:22:91;5260:30:86;:::i;:::-;215:929:83;;-1:-1:-1;;;;;;215:929:83;4161:16:91;4157:66;;215:929:83;837:15:62;819:34;837:15;819:34;:::i;:::-;215:929:83;;;4237:35:91;4233:89;;8167:38:60;4332:22:91;:15;;;215:929:83;;;;;;;;4105:10:91;215:929:83;;;;;;;4332:22:91;819:34:62;837:15;819:34;:::i;:::-;8167:38:60;;:::i;:::-;4411:5:91;;;;;;:::i;:::-;-1:-1:-1;;;;;215:929:83;;;;;4433:18:91;-1:-1:-1;;4433:18:91;3991:467::o;4233:89::-;215:929:83;;-1:-1:-1;;;4295:16:91;;;;;4157:66;215:929:83;;-1:-1:-1;;;4200:12:91;;;;;215:929:83;;3149:1:86;215:929:83;;;;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::o;2666:855:86:-;;215:929:83;;2880:15:86;2838:11;2905:18;2938:7;2944:1;2938:7;;2934:241;;2666:855;3199:60;;;;;:::i;:::-;3274:8;;;3270:62;;215:929:83;3430:7:86;;;;:::i;:::-;13267:109;2838:11;13267:109;;2838:11;13267:109;;215:929:83;:::i;:::-;;3498:15:86;3505:7;215:929:83;13267:109:86;215:929:83;;;;;;;;3479:17:86;;215:929:83;-1:-1:-1;;;;;215:929:83;;;;3505:7:86;;:::i;:::-;215:929:83;;;;3498:15:86;3436:1;;3448:66;;2666:855::o;3270:62::-;3298:23;;2838:11;3298:23;2838:11;3298:23;2838:11;3298:23;2838:11;3298:23;:::o;2934:241::-;2981:14;;;;;:::i;:::-;215:929:83;;;;;;;3199:60:86;13267:109;;2838:11;13267:109;215:929:83;13267:109:86;;;2838:11;13267:109;;215:929:83;;;;;3013:55:86;3009:156;215:929:83;;;3088:10:86;3009:156;2934:241;;3009:156;3143:7;;;;;;:::i;:::-;3009:156;2934:241;;215:929:83;;;;;;;;;;;;:::i;:::-;;;;;;;;;;3512:473:91;215:929:83;;-1:-1:-1;;;3580:37:91;;;-1:-1:-1;;;;;215:929:83;;;3580:37:91;;;215:929:83;;;3512:473:91;3580:37;;215:929:83;3580:37:91;215:929:83;;;3590:12:91;215:929:83;;3580:37:91;;;;;;;-1:-1:-1;3580:37:91;;;3512:473;3579:38;;3575:84;;215:929:83;;3674:41:91;;;-1:-1:-1;;;;;215:929:83;;3580:37:91;3674:41;;215:929:83;3674:41:91;215:929:83;;;3684:14:91;215:929:83;;3674:41:91;;;;;;;-1:-1:-1;3674:41:91;;;3512:473;3673:42;;;3669:96;;3779:21;;;;:::i;:::-;3775:75;;3860:15;8167:38:60;3860:22:91;:15;;;;215:929:83;;;;;;;;4105:10:91;215:929:83;;;;;;;3860:22:91;819:34:62;837:15;819:34;:::i;:::-;8167:38:60;;:::i;:::-;3939:5:91;;;;;;:::i;:::-;215:929:83;;;3961:17:91;-1:-1:-1;3961:17:91;;3512:473::o;3775:75::-;215:929:83;;-1:-1:-1;;;3823:16:91;;3580:37;;3823:16;3669:96;215:929:83;;-1:-1:-1;;;3738:16:91;;3580:37;;3738:16;3674:41;;;;;;-1:-1:-1;3674:41:91;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;;:::i;3575:84::-;215:929:83;;-1:-1:-1;;;3640:8:91;;3580:37;;3640:8;3580:37;;;;;;;;;;;;;;:::i;:::-;;;;215:929:83;;;;;;;:::i;:::-;-1:-1:-1;215:929:83;;;;;;;:::o;5573:258:86:-;215:929:83;5573:258:86;11308:22:60;5573:258:86;215:929:83;;:::i;:::-;;;;:::i;:::-;;11308:22:60;:::i;:::-;215:929:83;;:::i;:::-;;;;;;5805:17:86;215:929:83;;;;;5805:17:86;;215:929:83;;;;;;;;:::i;:::-;;;5805:17:86;5759:65;;215:929:83;5573:258:86;:::o;3385:267:48:-;1390:66;3508:46;;1390:66;;3577:15;;;:::i;3504:142::-;215:929:83;;;;;1390:66:48;;;;;;;;;;;;;;;3504:142;1390:66;;;;;;;;;215:929:83;;;1390:66:48;;215:929:83;;;1390:66:48;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;215:929:83;1390:66:48;;;;;;;215:929:83;1390:66:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1390:66:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;215:929:83;;;;1390:66:48;;;;;215:929:83;1390:66:48;;;;;;;;3385:267;1390:66;3508:46;;1390:66;;3577:15;;;:::i;3504:142::-;-1:-1:-1;215:929:83;;6584:16:52;1390:66:48;;;;;;-1:-1:-1;;1390:66:48;;;;;;;;3504:142;1390:66;;;;;;;;;215:929:83;;;1390:66:48;;215:929:83;;;1390:66:48;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;6584:16:52;1390:66:48;;;;;;;-1:-1:-1;1390:66:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1390:66:48;;;;;;;;;;;;;14291:213:58;215:929:83;14369:24:58;;;;14365:103;;215:929:83;14291:213:58;:::o;14365:103::-;215:929:83;;;;14416:41:58;;;;;;14447:2;14416:41;;;215:929:83;;;;;14416:41:58;4917:176:52;3515:233:53;4917:176:52;5053:20;;:::i;:::-;3515:233:53;;;;-1:-1:-1;;;3515:233:53;;;;;;;;;;;4917:176:52;:::o;2129:766:51:-;215:929:83;;;2129:766:51;2276:2;2256:22;;2276:2;;2739:25;2539:180;;;;;;;;;;;;;;;-1:-1:-1;2539:180:51;2739:25;;:::i;:::-;2732:32;;;;;:::o;2252:637::-;2795:83;;2811:1;2795:83;2815:35;2795:83;;:::o;215:929:83:-;;;;;;;:::o;:::-;;;;;;;;;;;;8587:1642:57;8658:6;;8654:45;;9401:7;10201:10;10142:26;10093;10044;9995;9946;9897;9848;215:929:83;10189:23:57;9401:7;8663:1;215:929:83;;;;10826:16:57;10822:99;;8587:1642;215:929:83;;;;10938:15:57;10934:96;;8587:1642;215:929:83;;;;11047:15:57;11043:96;;8587:1642;215:929:83;;;;11156:15:57;11152:96;;8587:1642;215:929:83;;;;11265:14:57;11261:93;;8587:1642;215:929:83;;;;11371:14:57;11367:93;;8587:1642;215:929:83;;;;11477:14:57;11473:93;;8587:1642;215:929:83;;;11579:64:57;;8587:1642;215:929:83;;;9858:10:57;;;;:::i;:::-;215:929:83;;;;;9848:26:57;9907:10;;;;:::i;9897:26::-;9956:10;;;;:::i;9946:26::-;10005:10;;;;:::i;9995:26::-;10054:10;;;;:::i;10044:26::-;10103:10;;;;:::i;10093:26::-;10152:10;;;;:::i;10142:26::-;10201:10;;;:::i;:::-;10189:23;;:::i;11579:64::-;215:929:83;;11579:64:57;;11473:93;215:929:83;11511:11:57;;215:929:83;;11473:93:57;;;;11367;215:929:83;11405:11:57;;215:929:83;;11367:93:57;;;;11261;215:929:83;11299:11:57;;215:929:83;;11261:93:57;;;;11152:96;215:929:83;11191:12:57;;215:929:83;;11152:96:57;;;;11043;215:929:83;11082:12:57;;215:929:83;;11043:96:57;;;;10934;215:929:83;10973:12:57;;215:929:83;;10934:96:57;;;;10822:99;10862:13;;;215:929:83;10822:99:57;;;;8654:45;8680:8;8663:1;8680:8;:::o;12497:447:86:-;;;12694:10;;;;;;12926:11;;;12497:447;:::o;12687:230::-;2900:5:57;;;;;;215:929:83;;2910:5:57;;;215:929:83;;;;;;;;;13267:109:86;-1:-1:-1;13267:109:86;215:929:83;13267:109:86;;;-1:-1:-1;13267:109:86;;215:929:83;;;;;-1:-1:-1;12771:136:86;215:929:83;;;12830:10:86;;12771:136;;12687:230;;;;12771:136;215:929:83;;;;;;;;;;;12771:136:86;;;9441:606:60;;215:929:83;;9594:15:60;9559:17;9619:18;9652:7;9658:1;9652:7;;9648:234;;9441:606;9906:53;;;;;:::i;:::-;9977:8;;;:63;;9559:17;9441:606;:::o;9977:63::-;10025:7;;;:::i;:::-;13267:109:86;9559:17:60;13267:109:86;;9559:17:60;13267:109:86;;215:929:83;;;9441:606:60;:::o;9648:234::-;9695:14;;;;;:::i;:::-;215:929:83;;;;;;;9906:53:60;13267:109:86;;9559:17:60;13267:109:86;215:929:83;13267:109:86;;;9559:17:60;13267:109:86;;215:929:83;;;;;9727:48:60;9723:149;215:929:83;;;9795:10:60;9723:149;9648:234;;9723:149;9850:7;;;;;;:::i;:::-;9723:149;9648:234;;215:929:83;;;;;;;;-1:-1:-1;1390:66:48;;-1:-1:-1;1390:66:48;215:929:83;;-1:-1:-1;215:929:83;:::o;:::-;;;;;;;;;;;;2078:405:48;2688:4;2652:40;;2706:11;2715:2;2706:11;;2702:69;;215:929:83;;;;;;:::i;2702:69:48:-;215:929:83;;-1:-1:-1;;;2740:20:48;;;;;3845:262:52;3929:4;3938:11;-1:-1:-1;;;;;215:929:83;3921:28:52;;:63;;3845:262;3917:184;;;4007:22;4000:29;:::o;3917:184::-;215:929:83;;4204:80:52;;;215:929:83;2079:95:52;215:929:83;;4226:11:52;215:929:83;2079:95:52;;215:929:83;4239:14:52;2079:95;;;215:929:83;4255:13:52;2079:95;;;215:929:83;3929:4:52;2079:95;;;215:929:83;2079:95:52;4204:80;;;;;:::i;:::-;215:929:83;4194:91:52;;4060:30;:::o;3921:63::-;3970:14;;3953:13;:31;3921:63;;5140:1530:51;;;6199:66;6186:79;;6182:164;;215:929:83;;;;;;-1:-1:-1;215:929:83;;;;;;;;;;;;;;;;;;;6457:24:51;;;;;;;;;-1:-1:-1;6457:24:51;-1:-1:-1;;;;;215:929:83;;6495:20:51;6491:113;;6614:49;-1:-1:-1;6614:49:51;-1:-1:-1;5140:1530:51;:::o;6491:113::-;6531:62;-1:-1:-1;6531:62:51;6457:24;6531:62;-1:-1:-1;6531:62:51;:::o;6182:164::-;6281:54;;;6297:1;6281:54;6301:30;6281:54;;:::o;10552:388:60:-;215:929:83;;10728:8:60;;;10752:20;;10690:17;10752:20;10690:17;10752:20;10690:17;10752:20;:::o;10724:210::-;215:929:83;;;;;;;;;;;13267:109:86;10690:17:60;13267:109:86;;10690:17:60;13267:109:86;;;215:929:83;:::i;:::-;;;;;;;13267:109:86;215:929:83;;;;;10911:11:60;;215:929:83;;10886:37:60;10870:1;10886:37;;;:::o;2557:104:57:-;;2641:5;;;;;;:13;2557:104;:::o;2641:13::-;;;2557:104;:::o;215:929:83:-;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;-1:-1:-1;;215:929:83;;;;;;;;;:::o;:::-;;;;;;;;;;;;11513:870:60;215:929:83;;;11672:7:60;;;;215:929:83;11775:28:60;11795:7;;;:::i;:::-;11775:28;13267:109:86;;;;;;13089:293;;11775:28:60;215:929:83;:::i;:::-;;;;;;;;;;;;;;;;;11877:15:60;-1:-1:-1;11873:91:60;;215:929:83;;12233:11:60;215:929:83;12027:16:60;215:929:83;;;;;;;12027:16:60;;;;12083:7;12063:43;12083:7;;12063:28;12083:7;;:::i;:::-;12063:28;13267:109:86;;;;;;13089:293;;12063:28:60;215:929:83;;;;;;;12063:43:60;12233:11;215:929:83;-1:-1:-1;;;;;215:929:83;;;;12225:27:60;215:929:83;12225:27:60;:::o;12023:189::-;215:929:83;;12145:52:60;215:929:83;12155:41:60;215:929:83;;:::i;:::-;;;;;;;;12155:41:60;215:929:83;12155:41:60;;;215:929:83;12145:52:60;:::i;:::-;12023:189;;11873:91;215:929:83;;-1:-1:-1;;;11919:30:60;;;;;11668:709;12283:52;215:929:83;;;12293:41:60;215:929:83;;:::i;12293:41:60:-;215:929:83;12293:41:60;;;215:929:83;12283:52:60;:::i;:::-;215:929:83;12349:17:60;215:929:83;12349:17:60;:::o;11513:870::-;215:929:83;;;11672:7:60;;;;215:929:83;11775:28:60;11795:7;;;:::i;215:929:83:-;;;;;;;;;;;;;;;;;11877:15:60;-1:-1:-1;11873:91:60;;215:929:83;;12233:11:60;215:929:83;12027:16:60;215:929:83;;;;;;;12027:16:60;;;;12083:7;12063:43;12083:7;;12063:28;12083:7;;:::i;12063:28::-;215:929:83;;;;;;;;;;12225:27:60;215:929:83;12225:27:60;:::o;12023:189::-;215:929:83;;12145:52:60;215:929:83;12155:41:60;215:929:83;;:::i;12155:41:60:-;215:929:83;12155:41:60;;;215:929:83;12145:52:60;:::i;11668:709::-;12283:52;215:929:83;;;12293:41:60;215:929:83;;:::i;12293:41:60:-;215:929:83;12293:41:60;;;215:929:83;12145:52:60;:::i;12283:::-;11678:1;12349:17;215:929:83;12349:17:60;:::o","linkReferences":{},"immutableReferences":{"51758":[{"start":6000,"length":32}],"51760":[{"start":6187,"length":32}],"51762":[{"start":5946,"length":32}],"51764":[{"start":6079,"length":32}],"51766":[{"start":6117,"length":32}],"51769":[{"start":765,"length":32}],"51772":[{"start":806,"length":32}],"62368":[{"start":1393,"length":32}],"65131":[{"start":1729,"length":32},{"start":4174,"length":32}],"65134":[{"start":622,"length":32},{"start":4257,"length":32}]}},"methodIdentifiers":{"WHERE_REGISTRY()":"6d0fae4a","WHO_REGISTRY()":"c4b5d62c","eip712Domain()":"84b0196e","increaseNonce(address)":"8247a97c","isOptedIn(address,address)":"220d32d4","isOptedInAt(address,address,uint48,bytes)":"530e1d43","nonces(address,address)":"9333fbda","optIn(address)":"b1138ad1","optIn(address,address,uint48,bytes)":"ced44ba7","optInHint(address,address,address,uint48)":"d4a63862","optInHintInternal(address,address,uint48)":"9a15d7a5","optOut(address)":"d4610483","optOut(address,address,uint48,bytes)":"93f79bc3","staticDelegateCall(address,bytes)":"9f86fd85"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"AlreadyOptedIn\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CheckpointUnorderedInsertion\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ExpiredSignature\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ExternalCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidShortString\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidSignature\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotOptedIn\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotWhereEntity\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotWho\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OptOutCooldown\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"bits\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"SafeCastOverflowedUintDowncast\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"str\",\"type\":\"string\"}],\"name\":\"StringTooLong\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[],\"name\":\"EIP712DomainChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"who\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"where\",\"type\":\"address\"}],\"name\":\"IncreaseNonce\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"who\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"where\",\"type\":\"address\"}],\"name\":\"OptIn\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"who\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"where\",\"type\":\"address\"}],\"name\":\"OptOut\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"WHERE_REGISTRY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"WHO_REGISTRY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"eip712Domain\",\"outputs\":[{\"internalType\":\"bytes1\",\"name\":\"fields\",\"type\":\"bytes1\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"version\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"chainId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"verifyingContract\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"salt\",\"type\":\"bytes32\"},{\"internalType\":\"uint256[]\",\"name\":\"extensions\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"where\",\"type\":\"address\"}],\"name\":\"increaseNonce\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"who\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"where\",\"type\":\"address\"}],\"name\":\"isOptedIn\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"who\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"where\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hint\",\"type\":\"bytes\"}],\"name\":\"isOptedInAt\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"who\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"where\",\"type\":\"address\"}],\"name\":\"nonces\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"where\",\"type\":\"address\"}],\"name\":\"optIn\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"who\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"where\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"deadline\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"name\":\"optIn\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"optInService\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"who\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"where\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"}],\"name\":\"optInHint\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"who\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"where\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"}],\"name\":\"optInHintInternal\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"exists\",\"type\":\"bool\"},{\"internalType\":\"uint32\",\"name\":\"hint\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"who\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"where\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"deadline\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"name\":\"optOut\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"where\",\"type\":\"address\"}],\"name\":\"optOut\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"staticDelegateCall\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"CheckpointUnorderedInsertion()\":[{\"details\":\"A value was attempted to be inserted on a past checkpoint.\"}],\"SafeCastOverflowedUintDowncast(uint8,uint256)\":[{\"details\":\"Value doesn't fit in an uint of `bits` size.\"}]},\"events\":{\"EIP712DomainChanged()\":{\"details\":\"MAY be emitted to signal that the domain could have changed.\"},\"IncreaseNonce(address,address)\":{\"params\":{\"where\":\"address of the \\\"where\\\" entity\",\"who\":\"address of the \\\"who\\\"\"}},\"OptIn(address,address)\":{\"params\":{\"where\":\"address of the \\\"where\\\" entity\",\"who\":\"address of the \\\"who\\\"\"}},\"OptOut(address,address)\":{\"params\":{\"where\":\"address of the \\\"where\\\" entity\",\"who\":\"address of the \\\"who\\\"\"}}},\"kind\":\"dev\",\"methods\":{\"eip712Domain()\":{\"details\":\"See {IERC-5267}.\"},\"increaseNonce(address)\":{\"details\":\"It can be used to invalidate a given signature.\",\"params\":{\"where\":\"address of the \\\"where\\\" entity\"}},\"isOptedIn(address,address)\":{\"params\":{\"where\":\"address of the \\\"where\\\" entity\",\"who\":\"address of the \\\"who\\\"\"},\"returns\":{\"_0\":\"if the \\\"who\\\" is opted-in\"}},\"isOptedInAt(address,address,uint48,bytes)\":{\"params\":{\"hint\":\"hint for the checkpoint index\",\"timestamp\":\"time point to get if the \\\"who\\\" is opted-in at\",\"where\":\"address of the \\\"where\\\" entity\",\"who\":\"address of the \\\"who\\\"\"},\"returns\":{\"_0\":\"if the \\\"who\\\" is opted-in at the given timestamp\"}},\"optIn(address)\":{\"params\":{\"where\":\"address of the \\\"where\\\" entity\"}},\"optIn(address,address,uint48,bytes)\":{\"params\":{\"deadline\":\"time point until the signature is valid (inclusively)\",\"signature\":\"signature of the \\\"who\\\"\",\"where\":\"address of the \\\"where\\\" entity\",\"who\":\"address of the \\\"who\\\"\"}},\"optOut(address)\":{\"params\":{\"where\":\"address of the \\\"where\\\" entity\"}},\"optOut(address,address,uint48,bytes)\":{\"params\":{\"deadline\":\"time point until the signature is valid (inclusively)\",\"signature\":\"signature of the \\\"who\\\"\",\"where\":\"address of the \\\"where\\\" entity\",\"who\":\"address of the \\\"who\\\"\"}},\"staticDelegateCall(address,bytes)\":{\"details\":\"It allows to use this contract's storage on-chain.\",\"params\":{\"data\":\"data to make a delegatecall with\",\"target\":\"address of the contract to make a delegatecall to\"}}},\"version\":1},\"userdoc\":{\"events\":{\"IncreaseNonce(address,address)\":{\"notice\":\"Emitted when the nonce of a \\\"who\\\" to a \\\"where\\\" entity is increased.\"},\"OptIn(address,address)\":{\"notice\":\"Emitted when a \\\"who\\\" opts into a \\\"where\\\" entity.\"},\"OptOut(address,address)\":{\"notice\":\"Emitted when a \\\"who\\\" opts out from a \\\"where\\\" entity.\"}},\"kind\":\"user\",\"methods\":{\"WHERE_REGISTRY()\":{\"notice\":\"Get the address of the registry where to opt-in.\"},\"WHO_REGISTRY()\":{\"notice\":\"Get the \\\"who\\\" registry's address.\"},\"increaseNonce(address)\":{\"notice\":\"Increase the nonce of a given \\\"who\\\" to a particular \\\"where\\\" entity.\"},\"isOptedIn(address,address)\":{\"notice\":\"Check if a given \\\"who\\\" is opted-in to a particular \\\"where\\\" entity.\"},\"isOptedInAt(address,address,uint48,bytes)\":{\"notice\":\"Get if a given \\\"who\\\" is opted-in to a particular \\\"where\\\" entity at a given timestamp using a hint.\"},\"nonces(address,address)\":{\"notice\":\"Get the nonce of a given \\\"who\\\" to a particular \\\"where\\\" entity.\"},\"optIn(address)\":{\"notice\":\"Opt-in a calling \\\"who\\\" to a particular \\\"where\\\" entity.\"},\"optIn(address,address,uint48,bytes)\":{\"notice\":\"Opt-in a \\\"who\\\" to a particular \\\"where\\\" entity with a signature.\"},\"optOut(address)\":{\"notice\":\"Opt-out a calling \\\"who\\\" from a particular \\\"where\\\" entity.\"},\"optOut(address,address,uint48,bytes)\":{\"notice\":\"Opt-out a \\\"who\\\" from a particular \\\"where\\\" entity with a signature.\"},\"staticDelegateCall(address,bytes)\":{\"notice\":\"Make a delegatecall from this contract to a given target contract with a particular data (always reverts with a return data).\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/contracts/hints/OptInServiceHints.sol\":\"OptInServiceHints\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/interfaces/IERC1271.sol\":{\"keccak256\":\"0x85a45f3f10014a0f8be41157a32b6a5f905753ea64a4b64e29fc12b7deeecf39\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c3c74009ce36136b36c77c23935b8e4a7b4f253be2da2be4fb4a916b1ce43743\",\"dweb:/ipfs/QmcH36v3iN7SJJuF73AunLR2LtNxhVJ1wm63ph4dPZ4pcL\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC5267.sol\":{\"keccak256\":\"0x92aa1df62dc3d33f1656d63bede0923e0df0b706ad4137c8b10b0a8fe549fd92\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c5c0f29195ad64cbe556da8e257dac8f05f78c53f90323c0d2accf8e6922d33a\",\"dweb:/ipfs/QmQ61TED8uaCZwcbh8KkgRSsCav7x7HbcGHwHts3U4DmUP\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0xaf28a975a78550e45f65e559a3ad6a5ad43b9b8a37366999abd1b7084eb70721\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b7bd24e224f67f65bfadf85dc2929fa965456bb2415478bd0125471b5ce35245\",\"dweb:/ipfs/QmRaydGr8BTHs1kvaZfsNU69pKzUAGFrvABn1KiRSbE51y\"]},\"lib/openzeppelin-contracts/contracts/utils/ShortStrings.sol\":{\"keccak256\":\"0x18a7171df639a934592915a520ecb97c5bbc9675a1105607aac8a94e72bf62c6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7478e1f13da69a2867ccd883001d836b75620362e743f196376d63ed0c422a1c\",\"dweb:/ipfs/QmWywcQ9TNfwtoqAxbn25d8C5VrV12PrPS9UjtGe6pL2BA\"]},\"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0x32ba59b4b7299237c8ba56319110989d7978a039faf754793064e967e5894418\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1ae50c8b562427df610cc4540c9bf104acca7ef8e2dcae567ae7e52272281e9c\",\"dweb:/ipfs/QmTHiadFCSJUPpRjNegc5SahmeU8bAoY8i9Aq6tVscbcKR\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0x55f102ea785d8399c0e58d1108e2d289506dde18abc6db1b7f68c1f9f9bc5792\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e52e0a7765c943ef14e5bcf11e46e6139fa044be564881378349236bf2e3453\",\"dweb:/ipfs/QmZEeeXoFPW47amyP35gfzomF9DixqqTEPwzBakv6cZw6i\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0xeed0a08b0b091f528356cbc7245891a4c748682d4f6a18055e8e6ca77d12a6cf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba80ba06c8e6be852847e4c5f4492cef801feb6558ae09ed705ff2e04ea8b13c\",\"dweb:/ipfs/QmXRJDv3xHLVQCVXg1ZvR35QS9sij5y9NDWYzMfUfAdTHF\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/EIP712.sol\":{\"keccak256\":\"0x999f705a027ed6dc2d4e0df2cc4a509852c6bfd11de1c8161bf88832d0503fd0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0798def67258d9a3cc20b2b4da7ebf351a5cefe0abfdd665d2d81f8e32f89b21\",\"dweb:/ipfs/QmPEvJosnPfzHNjKvCv2D3891mA2Ww8eUwkqrxBjuYdHCt\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol\":{\"keccak256\":\"0xba333517a3add42cd35fe877656fc3dfcc9de53baa4f3aabbd6d12a92e4ea435\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2ceacff44c0fdc81e48e0e0b1db87a2076d3c1fb497341de077bf1da9f6b406c\",\"dweb:/ipfs/QmRUo1muMRAewxrKQ7TkXUtknyRoR57AyEkoPpiuZQ8FzX\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/SignatureChecker.sol\":{\"keccak256\":\"0x6b11eb41a228cca35d4b662b4df69fcd75192851365102690f57b2ac01e83fe6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ab006a2983ed350d2af21ddcdd835dcae3b8340086cc4d088460da5abd041f69\",\"dweb:/ipfs/QmbEacDhkJZiGrgzLjB4pNtE8Z1uudjDw1DvcDUTVQFsLG\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875\",\"dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0xe19a4d5f31d2861e7344e8e535e2feafb913d806d3e2b5fe7782741a2a7094fe\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4aed79c0fa6f0546ed02f2f683e8f77f0fd2ed7eb34d8bbf3d373c9a6d95b13c\",\"dweb:/ipfs/QmWqVz6UAVqmnWU5pqYPt1o6iDEZyPaBraAA3rKfTTSfYj\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x5f7e4076e175393767754387c962926577f1660dd9b810187b9002407656be72\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7d533a1c97cd43a57cd9c465f7ee8dd0e39ae93a8fb8ff8e5303a356b081cdcc\",\"dweb:/ipfs/QmVBEei6aTnvYNZp2CHYVNKyZS4q1KkjANfY39WVXZXVoT\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/Checkpoints.sol\":{\"keccak256\":\"0xbdc5e074d7dd6678f67e92b1a51a20226801a407b0e1af3da367c5d1ff4519ad\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a36cca6b22fff3db16fc789ff6c60eea71d4b156065d4d0c83a0bc5e91a77a8b\",\"dweb:/ipfs/QmYN3exd5AemxjBrN8XMB1p5LbbE16uC3sjbYjwi8AjcGR\"]},\"lib/openzeppelin-contracts/contracts/utils/types/Time.sol\":{\"keccak256\":\"0xc7755af115020049e4140f224f9ee88d7e1799ffb0646f37bf0df24bf6213f58\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7f09bf94d5274334ec021f61a04659db303f31e60460e14b709c9bf187740111\",\"dweb:/ipfs/QmNvgomZYUwFAt4cZbPWAiTeSZQreGehY9BK5xyVJsUttb\"]},\"src/contracts/common/StaticDelegateCallable.sol\":{\"keccak256\":\"0x350029aa8955eacaffffaeb58babc5c98e80ebc5c5db388ed17ee6465f4a9d90\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://eb392a8ee9050e0af606897df63e3404e3829e8b688b580663892f9664195764\",\"dweb:/ipfs/QmaXC8jqV8UrrAFkzXTEv2fJF56sy33HhLxAzaRZmUxuXD\"]},\"src/contracts/hints/Hints.sol\":{\"keccak256\":\"0x8b565df1ae35993c097a9e642002782a8f451f6fd01809cad6bcd345bdf1b99c\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://99a19adb01e350a92f534095b3078229df1f2f83077992d75d58d8684be45971\",\"dweb:/ipfs/QmbmwcuswVbzvwHQFTtrJG86oV98GnfxqYTb8cV8u1acox\"]},\"src/contracts/hints/OptInServiceHints.sol\":{\"keccak256\":\"0x95d9407900d27b9f4a1233b772aeed809c07b2dc5b31cfc9fa77ca26514c49e5\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://a13a8877e312d7e6b8b85bde3668c5d84ff5ecc83f762cd573f2b7104c64eb42\",\"dweb:/ipfs/QmYV2J55acuGzCNnS3juABuUHY5U1xc8g8o9jwEyFFdeG5\"]},\"src/contracts/libraries/Checkpoints.sol\":{\"keccak256\":\"0xba90097c8bfe0a975499428b5f8ac5569483c7d92ccc28c12d70de416aae040c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://12f5d93ca94cd06d3147db68993165a58e17903ed53682560de61f3085ad4609\",\"dweb:/ipfs/QmePiuAqvXprMLmFZkGZeGjvGPAvsEDHfCDv7BoQhXu9xE\"]},\"src/contracts/service/OptInService.sol\":{\"keccak256\":\"0x4e0932077f2686b7990e10d59deb2535334c0d09e52ef6e57c6ab09eca21c4b1\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://7c00d311032ed4a1743aca7475f3c86ce15cdfc2218108efc3731c03d34a5278\",\"dweb:/ipfs/QmUGGfVwVhaHr5kS4177yKKYiLYzi5qZpkEmvYxBZqazxf\"]},\"src/interfaces/common/IRegistry.sol\":{\"keccak256\":\"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014\",\"dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK\"]},\"src/interfaces/common/IStaticDelegateCallable.sol\":{\"keccak256\":\"0xa335d4e81b9071b7de66ef92b43ff20671d86516eb1be46fef29a3483cd3f5d5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d464b9db863c14c05547d2b23352f2e9b7b784799cf09f6bbc4906a2a74e3516\",\"dweb:/ipfs/QmUVWzFvJz7eEbDQKiFTTzwi7TEbjcs3VmwdM4kuptAKvi\"]},\"src/interfaces/service/IOptInService.sol\":{\"keccak256\":\"0x76fb5460a6d87a5705433d4fbeff7253cd75b8bbd0c888b2088f16e86ace146a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://990322019b3d11465f7024bae77ccbf7e2fe5d6fa3c754584778f37d04fa1337\",\"dweb:/ipfs/QmaSNHzcqxTkUCG9a4nqVfLECHLdjdrwAnDi3yDC7tDL24\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.25+commit.b61c2a91"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"AlreadyOptedIn"},{"inputs":[],"type":"error","name":"CheckpointUnorderedInsertion"},{"inputs":[],"type":"error","name":"ExpiredSignature"},{"inputs":[],"type":"error","name":"ExternalCall"},{"inputs":[],"type":"error","name":"InvalidShortString"},{"inputs":[],"type":"error","name":"InvalidSignature"},{"inputs":[],"type":"error","name":"NotOptedIn"},{"inputs":[],"type":"error","name":"NotWhereEntity"},{"inputs":[],"type":"error","name":"NotWho"},{"inputs":[],"type":"error","name":"OptOutCooldown"},{"inputs":[{"internalType":"uint8","name":"bits","type":"uint8"},{"internalType":"uint256","name":"value","type":"uint256"}],"type":"error","name":"SafeCastOverflowedUintDowncast"},{"inputs":[{"internalType":"string","name":"str","type":"string"}],"type":"error","name":"StringTooLong"},{"inputs":[],"type":"event","name":"EIP712DomainChanged","anonymous":false},{"inputs":[{"internalType":"address","name":"who","type":"address","indexed":true},{"internalType":"address","name":"where","type":"address","indexed":true}],"type":"event","name":"IncreaseNonce","anonymous":false},{"inputs":[{"internalType":"address","name":"who","type":"address","indexed":true},{"internalType":"address","name":"where","type":"address","indexed":true}],"type":"event","name":"OptIn","anonymous":false},{"inputs":[{"internalType":"address","name":"who","type":"address","indexed":true},{"internalType":"address","name":"where","type":"address","indexed":true}],"type":"event","name":"OptOut","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"WHERE_REGISTRY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"WHO_REGISTRY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"eip712Domain","outputs":[{"internalType":"bytes1","name":"fields","type":"bytes1"},{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"version","type":"string"},{"internalType":"uint256","name":"chainId","type":"uint256"},{"internalType":"address","name":"verifyingContract","type":"address"},{"internalType":"bytes32","name":"salt","type":"bytes32"},{"internalType":"uint256[]","name":"extensions","type":"uint256[]"}]},{"inputs":[{"internalType":"address","name":"where","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"increaseNonce"},{"inputs":[{"internalType":"address","name":"who","type":"address"},{"internalType":"address","name":"where","type":"address"}],"stateMutability":"view","type":"function","name":"isOptedIn","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"who","type":"address"},{"internalType":"address","name":"where","type":"address"},{"internalType":"uint48","name":"timestamp","type":"uint48"},{"internalType":"bytes","name":"hint","type":"bytes"}],"stateMutability":"view","type":"function","name":"isOptedInAt","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"who","type":"address"},{"internalType":"address","name":"where","type":"address"}],"stateMutability":"view","type":"function","name":"nonces","outputs":[{"internalType":"uint256","name":"nonce","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"where","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"optIn"},{"inputs":[{"internalType":"address","name":"who","type":"address"},{"internalType":"address","name":"where","type":"address"},{"internalType":"uint48","name":"deadline","type":"uint48"},{"internalType":"bytes","name":"signature","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"optIn"},{"inputs":[{"internalType":"address","name":"optInService","type":"address"},{"internalType":"address","name":"who","type":"address"},{"internalType":"address","name":"where","type":"address"},{"internalType":"uint48","name":"timestamp","type":"uint48"}],"stateMutability":"view","type":"function","name":"optInHint","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"address","name":"who","type":"address"},{"internalType":"address","name":"where","type":"address"},{"internalType":"uint48","name":"timestamp","type":"uint48"}],"stateMutability":"view","type":"function","name":"optInHintInternal","outputs":[{"internalType":"bool","name":"exists","type":"bool"},{"internalType":"uint32","name":"hint","type":"uint32"}]},{"inputs":[{"internalType":"address","name":"who","type":"address"},{"internalType":"address","name":"where","type":"address"},{"internalType":"uint48","name":"deadline","type":"uint48"},{"internalType":"bytes","name":"signature","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"optOut"},{"inputs":[{"internalType":"address","name":"where","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"optOut"},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"staticDelegateCall"}],"devdoc":{"kind":"dev","methods":{"eip712Domain()":{"details":"See {IERC-5267}."},"increaseNonce(address)":{"details":"It can be used to invalidate a given signature.","params":{"where":"address of the \"where\" entity"}},"isOptedIn(address,address)":{"params":{"where":"address of the \"where\" entity","who":"address of the \"who\""},"returns":{"_0":"if the \"who\" is opted-in"}},"isOptedInAt(address,address,uint48,bytes)":{"params":{"hint":"hint for the checkpoint index","timestamp":"time point to get if the \"who\" is opted-in at","where":"address of the \"where\" entity","who":"address of the \"who\""},"returns":{"_0":"if the \"who\" is opted-in at the given timestamp"}},"optIn(address)":{"params":{"where":"address of the \"where\" entity"}},"optIn(address,address,uint48,bytes)":{"params":{"deadline":"time point until the signature is valid (inclusively)","signature":"signature of the \"who\"","where":"address of the \"where\" entity","who":"address of the \"who\""}},"optOut(address)":{"params":{"where":"address of the \"where\" entity"}},"optOut(address,address,uint48,bytes)":{"params":{"deadline":"time point until the signature is valid (inclusively)","signature":"signature of the \"who\"","where":"address of the \"where\" entity","who":"address of the \"who\""}},"staticDelegateCall(address,bytes)":{"details":"It allows to use this contract's storage on-chain.","params":{"data":"data to make a delegatecall with","target":"address of the contract to make a delegatecall to"}}},"version":1},"userdoc":{"kind":"user","methods":{"WHERE_REGISTRY()":{"notice":"Get the address of the registry where to opt-in."},"WHO_REGISTRY()":{"notice":"Get the \"who\" registry's address."},"increaseNonce(address)":{"notice":"Increase the nonce of a given \"who\" to a particular \"where\" entity."},"isOptedIn(address,address)":{"notice":"Check if a given \"who\" is opted-in to a particular \"where\" entity."},"isOptedInAt(address,address,uint48,bytes)":{"notice":"Get if a given \"who\" is opted-in to a particular \"where\" entity at a given timestamp using a hint."},"nonces(address,address)":{"notice":"Get the nonce of a given \"who\" to a particular \"where\" entity."},"optIn(address)":{"notice":"Opt-in a calling \"who\" to a particular \"where\" entity."},"optIn(address,address,uint48,bytes)":{"notice":"Opt-in a \"who\" to a particular \"where\" entity with a signature."},"optOut(address)":{"notice":"Opt-out a calling \"who\" from a particular \"where\" entity."},"optOut(address,address,uint48,bytes)":{"notice":"Opt-out a \"who\" from a particular \"where\" entity with a signature."},"staticDelegateCall(address,bytes)":{"notice":"Make a delegatecall from this contract to a given target contract with a particular data (always reverts with a return data)."}},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/contracts/hints/OptInServiceHints.sol":"OptInServiceHints"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts/contracts/interfaces/IERC1271.sol":{"keccak256":"0x85a45f3f10014a0f8be41157a32b6a5f905753ea64a4b64e29fc12b7deeecf39","urls":["bzz-raw://c3c74009ce36136b36c77c23935b8e4a7b4f253be2da2be4fb4a916b1ce43743","dweb:/ipfs/QmcH36v3iN7SJJuF73AunLR2LtNxhVJ1wm63ph4dPZ4pcL"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC5267.sol":{"keccak256":"0x92aa1df62dc3d33f1656d63bede0923e0df0b706ad4137c8b10b0a8fe549fd92","urls":["bzz-raw://c5c0f29195ad64cbe556da8e257dac8f05f78c53f90323c0d2accf8e6922d33a","dweb:/ipfs/QmQ61TED8uaCZwcbh8KkgRSsCav7x7HbcGHwHts3U4DmUP"],"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/ShortStrings.sol":{"keccak256":"0x18a7171df639a934592915a520ecb97c5bbc9675a1105607aac8a94e72bf62c6","urls":["bzz-raw://7478e1f13da69a2867ccd883001d836b75620362e743f196376d63ed0c422a1c","dweb:/ipfs/QmWywcQ9TNfwtoqAxbn25d8C5VrV12PrPS9UjtGe6pL2BA"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol":{"keccak256":"0x32ba59b4b7299237c8ba56319110989d7978a039faf754793064e967e5894418","urls":["bzz-raw://1ae50c8b562427df610cc4540c9bf104acca7ef8e2dcae567ae7e52272281e9c","dweb:/ipfs/QmTHiadFCSJUPpRjNegc5SahmeU8bAoY8i9Aq6tVscbcKR"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0x55f102ea785d8399c0e58d1108e2d289506dde18abc6db1b7f68c1f9f9bc5792","urls":["bzz-raw://6e52e0a7765c943ef14e5bcf11e46e6139fa044be564881378349236bf2e3453","dweb:/ipfs/QmZEeeXoFPW47amyP35gfzomF9DixqqTEPwzBakv6cZw6i"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol":{"keccak256":"0xeed0a08b0b091f528356cbc7245891a4c748682d4f6a18055e8e6ca77d12a6cf","urls":["bzz-raw://ba80ba06c8e6be852847e4c5f4492cef801feb6558ae09ed705ff2e04ea8b13c","dweb:/ipfs/QmXRJDv3xHLVQCVXg1ZvR35QS9sij5y9NDWYzMfUfAdTHF"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/EIP712.sol":{"keccak256":"0x999f705a027ed6dc2d4e0df2cc4a509852c6bfd11de1c8161bf88832d0503fd0","urls":["bzz-raw://0798def67258d9a3cc20b2b4da7ebf351a5cefe0abfdd665d2d81f8e32f89b21","dweb:/ipfs/QmPEvJosnPfzHNjKvCv2D3891mA2Ww8eUwkqrxBjuYdHCt"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol":{"keccak256":"0xba333517a3add42cd35fe877656fc3dfcc9de53baa4f3aabbd6d12a92e4ea435","urls":["bzz-raw://2ceacff44c0fdc81e48e0e0b1db87a2076d3c1fb497341de077bf1da9f6b406c","dweb:/ipfs/QmRUo1muMRAewxrKQ7TkXUtknyRoR57AyEkoPpiuZQ8FzX"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/SignatureChecker.sol":{"keccak256":"0x6b11eb41a228cca35d4b662b4df69fcd75192851365102690f57b2ac01e83fe6","urls":["bzz-raw://ab006a2983ed350d2af21ddcdd835dcae3b8340086cc4d088460da5abd041f69","dweb:/ipfs/QmbEacDhkJZiGrgzLjB4pNtE8Z1uudjDw1DvcDUTVQFsLG"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d","urls":["bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875","dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol":{"keccak256":"0xe19a4d5f31d2861e7344e8e535e2feafb913d806d3e2b5fe7782741a2a7094fe","urls":["bzz-raw://4aed79c0fa6f0546ed02f2f683e8f77f0fd2ed7eb34d8bbf3d373c9a6d95b13c","dweb:/ipfs/QmWqVz6UAVqmnWU5pqYPt1o6iDEZyPaBraAA3rKfTTSfYj"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0x5f7e4076e175393767754387c962926577f1660dd9b810187b9002407656be72","urls":["bzz-raw://7d533a1c97cd43a57cd9c465f7ee8dd0e39ae93a8fb8ff8e5303a356b081cdcc","dweb:/ipfs/QmVBEei6aTnvYNZp2CHYVNKyZS4q1KkjANfY39WVXZXVoT"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/Checkpoints.sol":{"keccak256":"0xbdc5e074d7dd6678f67e92b1a51a20226801a407b0e1af3da367c5d1ff4519ad","urls":["bzz-raw://a36cca6b22fff3db16fc789ff6c60eea71d4b156065d4d0c83a0bc5e91a77a8b","dweb:/ipfs/QmYN3exd5AemxjBrN8XMB1p5LbbE16uC3sjbYjwi8AjcGR"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/types/Time.sol":{"keccak256":"0xc7755af115020049e4140f224f9ee88d7e1799ffb0646f37bf0df24bf6213f58","urls":["bzz-raw://7f09bf94d5274334ec021f61a04659db303f31e60460e14b709c9bf187740111","dweb:/ipfs/QmNvgomZYUwFAt4cZbPWAiTeSZQreGehY9BK5xyVJsUttb"],"license":"MIT"},"src/contracts/common/StaticDelegateCallable.sol":{"keccak256":"0x350029aa8955eacaffffaeb58babc5c98e80ebc5c5db388ed17ee6465f4a9d90","urls":["bzz-raw://eb392a8ee9050e0af606897df63e3404e3829e8b688b580663892f9664195764","dweb:/ipfs/QmaXC8jqV8UrrAFkzXTEv2fJF56sy33HhLxAzaRZmUxuXD"],"license":"BUSL-1.1"},"src/contracts/hints/Hints.sol":{"keccak256":"0x8b565df1ae35993c097a9e642002782a8f451f6fd01809cad6bcd345bdf1b99c","urls":["bzz-raw://99a19adb01e350a92f534095b3078229df1f2f83077992d75d58d8684be45971","dweb:/ipfs/QmbmwcuswVbzvwHQFTtrJG86oV98GnfxqYTb8cV8u1acox"],"license":"BUSL-1.1"},"src/contracts/hints/OptInServiceHints.sol":{"keccak256":"0x95d9407900d27b9f4a1233b772aeed809c07b2dc5b31cfc9fa77ca26514c49e5","urls":["bzz-raw://a13a8877e312d7e6b8b85bde3668c5d84ff5ecc83f762cd573f2b7104c64eb42","dweb:/ipfs/QmYV2J55acuGzCNnS3juABuUHY5U1xc8g8o9jwEyFFdeG5"],"license":"BUSL-1.1"},"src/contracts/libraries/Checkpoints.sol":{"keccak256":"0xba90097c8bfe0a975499428b5f8ac5569483c7d92ccc28c12d70de416aae040c","urls":["bzz-raw://12f5d93ca94cd06d3147db68993165a58e17903ed53682560de61f3085ad4609","dweb:/ipfs/QmePiuAqvXprMLmFZkGZeGjvGPAvsEDHfCDv7BoQhXu9xE"],"license":"MIT"},"src/contracts/service/OptInService.sol":{"keccak256":"0x4e0932077f2686b7990e10d59deb2535334c0d09e52ef6e57c6ab09eca21c4b1","urls":["bzz-raw://7c00d311032ed4a1743aca7475f3c86ce15cdfc2218108efc3731c03d34a5278","dweb:/ipfs/QmUGGfVwVhaHr5kS4177yKKYiLYzi5qZpkEmvYxBZqazxf"],"license":"BUSL-1.1"},"src/interfaces/common/IRegistry.sol":{"keccak256":"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb","urls":["bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014","dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK"],"license":"MIT"},"src/interfaces/common/IStaticDelegateCallable.sol":{"keccak256":"0xa335d4e81b9071b7de66ef92b43ff20671d86516eb1be46fef29a3483cd3f5d5","urls":["bzz-raw://d464b9db863c14c05547d2b23352f2e9b7b784799cf09f6bbc4906a2a74e3516","dweb:/ipfs/QmUVWzFvJz7eEbDQKiFTTzwi7TEbjcs3VmwdM4kuptAKvi"],"license":"MIT"},"src/interfaces/service/IOptInService.sol":{"keccak256":"0x76fb5460a6d87a5705433d4fbeff7253cd75b8bbd0c888b2088f16e86ace146a","urls":["bzz-raw://990322019b3d11465f7024bae77ccbf7e2fe5d6fa3c754584778f37d04fa1337","dweb:/ipfs/QmaSNHzcqxTkUCG9a4nqVfLECHLdjdrwAnDi3yDC7tDL24"],"license":"MIT"}},"version":1},"id":83} \ No newline at end of file diff --git a/out/Slasher.sol/Slasher.json b/out/Slasher.sol/Slasher.json index f9a4a965..f7722ead 100644 --- a/out/Slasher.sol/Slasher.json +++ b/out/Slasher.sol/Slasher.json @@ -1 +1 @@ -{"abi":[{"type":"constructor","inputs":[{"name":"vaultFactory","type":"address","internalType":"address"},{"name":"networkMiddlewareService","type":"address","internalType":"address"},{"name":"slasherFactory","type":"address","internalType":"address"},{"name":"entityType","type":"uint64","internalType":"uint64"}],"stateMutability":"nonpayable"},{"type":"function","name":"BURNER_GAS_LIMIT","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"BURNER_RESERVE","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"FACTORY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"NETWORK_MIDDLEWARE_SERVICE","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"TYPE","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"VAULT_FACTORY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"cumulativeSlash","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"cumulativeSlashAt","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"timestamp","type":"uint48","internalType":"uint48"},{"name":"hint","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"initialize","inputs":[{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"isBurnerHook","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"latestSlashedCaptureTimestamp","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"value","type":"uint48","internalType":"uint48"}],"stateMutability":"view"},{"type":"function","name":"slash","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"captureTimestamp","type":"uint48","internalType":"uint48"},{"name":"hints","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"slashedAmount","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"slashableStake","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"captureTimestamp","type":"uint48","internalType":"uint48"},{"name":"hints","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"staticDelegateCall","inputs":[{"name":"target","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"vault","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"Slash","inputs":[{"name":"subnetwork","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"slashedAmount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"captureTimestamp","type":"uint48","indexed":false,"internalType":"uint48"}],"anonymous":false},{"type":"error","name":"CheckpointUnorderedInsertion","inputs":[]},{"type":"error","name":"InsufficientBurnerGas","inputs":[]},{"type":"error","name":"InsufficientSlash","inputs":[]},{"type":"error","name":"InvalidCaptureTimestamp","inputs":[]},{"type":"error","name":"InvalidInitialization","inputs":[]},{"type":"error","name":"NoBurner","inputs":[]},{"type":"error","name":"NotInitialized","inputs":[]},{"type":"error","name":"NotInitializing","inputs":[]},{"type":"error","name":"NotNetworkMiddleware","inputs":[]},{"type":"error","name":"NotVault","inputs":[]},{"type":"error","name":"ReentrancyGuardReentrantCall","inputs":[]},{"type":"error","name":"SafeCastOverflowedUintDowncast","inputs":[{"name":"bits","type":"uint8","internalType":"uint8"},{"name":"value","type":"uint256","internalType":"uint256"}]}],"bytecode":{"object":"0x6101003461015857601f611ecf38819003918201601f1916830192916001600160401b03918285118486101761015c5781608092859260409788528339810103126101585761004d82610170565b9061005a60208401610170565b926060610068868301610170565b910151918083168303610158577ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a009081549060ff82891c16610147578080831603610103575b50505060805260a05260c05260e05251611d4a908161018582396080518161044a015260a051818181610850015261119a015260c0518181816102fd01526114ca015260e0518181816101fc01526104060152f35b6001600160401b0319909116811790915585519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a15f80806100ae565b875163f92ee8a960e01b8152600490fd5b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b51906001600160a01b03821682036101585756fe60806040526004361015610011575f80fd5b5f3560e01c8063021a815614610104578063103f2907146100ff5780631a2be2c4146100fa578063267de1f3146100f55780632964f8dc146100f05780632c9d45b3146100eb5780632dd31000146100e657806334d098ea146100e1578063439fab91146100dc5780639f86fd85146100d7578063aa8e6489146100d2578063aab3595f146100cd578063bb24fe8a146100c8578063d5c24e1a146100c35763fbfa77cf146100be575f80fd5b610891565b610874565b610831565b61080c565b6107ce565b6105d5565b61049d565b610479565b610435565b6103f1565b6103d5565b610380565b61032c565b6102e8565b61015b565b6001600160a01b0381160361011a57565b5f80fd5b65ffffffffffff81160361011a57565b9181601f8401121561011a578235916001600160401b03831161011a576020838186019501011161011a57565b3461011a5760a036600319011261011a5760043560243561017b81610109565b6064356101878161011e565b6084356001600160401b03811161011a576101a690369060040161012e565b917f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0060028154146102cc5760029055604051635daf681960e11b8152606086901c60048201526001600160a01b036020826024817f000000000000000000000000000000000000000000000000000000000000000085165afa9182156102c7575f92610296575b50339116036102845761028094610247946044359161096a565b61027060017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055565b6040519081529081906020820190565b0390f35b60405163227bf64d60e01b8152600490fd5b6102b991925060203d6020116102c0575b6102b181836106f1565b810190610bba565b905f61022d565b503d6102a7565b61092e565b604051633ee5aeb560e01b8152600490fd5b5f91031261011a57565b3461011a575f36600319011261011a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461011a57604036600319011261011a57602061037861037360243561035181610109565b6004355f526002845260405f209060018060a01b03165f5260205260405f2090565b6113e9565b604051908152f35b3461011a57604036600319011261011a57602065ffffffffffff6103cb6024356103a981610109565b6004355f526001845260405f209060018060a01b03165f5260205260405f2090565b5416604051908152f35b3461011a575f36600319011261011a576020604051614e208152f35b3461011a575f36600319011261011a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461011a575f36600319011261011a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461011a575f36600319011261011a57602060ff5f5460a01c166040519015158152f35b3461011a57602036600319011261011a576001600160401b0360043581811161011a576104ce90369060040161012e565b5f80516020611cf5833981519152549260ff8460401c16159316801590816105cd575b60011490816105c3575b1590816105ba575b506105a8575f80516020611cf5833981519152805467ffffffffffffffff19166001179055610536918361058457611493565b61053c57005b5f80516020611cf5833981519152805460ff60401b19169055604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a1005b5f80516020611cf5833981519152805460ff60401b1916600160401b179055611493565b60405163f92ee8a960e01b8152600490fd5b9050155f610503565b303b1591506104fb565b8491506104f1565b3461011a5760408060031936011261011a576004356105f381610109565b602435906001600160401b03821161011a575f809161061961067d94369060040161012e565b908187519283928337810184815203915af43d156106855761066f3d61063e81610721565b9061064b865192836106f1565b81523d5f602083013e5b845194859315156020850152808401526060830190610b6a565b03601f1981018352826106f1565b805190602001fd5b61066f6060610655565b634e487b7160e01b5f52604160045260245ffd5b602081019081106001600160401b038211176106be57604052565b61068f565b604081019081106001600160401b038211176106be57604052565b6001600160401b0381116106be57604052565b90601f801991011681019081106001600160401b038211176106be57604052565b6040519061071f826106c3565b565b6001600160401b0381116106be57601f01601f191660200190565b81601f8201121561011a5780359061075382610721565b9261076160405194856106f1565b8284526020838301011161011a57815f926020809301838601378301015290565b90608060031983011261011a576004359160243561079f81610109565b916044356107ac8161011e565b91606435906001600160401b03821161011a576107cb9160040161073c565b90565b3461011a5760206103786108076107e436610782565b939190925f526002865260405f209060018060a01b03165f5260205260405f2090565b61162d565b3461011a57602061082861081f36610782565b92919091610cfa565b50604051908152f35b3461011a575f36600319011261011a5760206040516001600160401b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461011a575f36600319011261011a576020604051620249f08152f35b3461011a575f36600319011261011a575f546040516001600160a01b039091168152602090f35b604051906108c5826106a3565b60608252565b9060208282031261011a5781356001600160401b039283821161011a57019060208282031261011a5760405192610901846106a3565b823590811161011a57610914920161073c565b815290565b9081602091031261011a57516107cb8161011e565b6040513d5f823e3d90fd5b634e487b7160e01b5f52601160045260245ffd5b65ffffffffffff918216908216039190821161096557565b610939565b929395949190956109796108b8565b9280610b54575b505061098b42611705565b5f546004906020906109b3906109a7906001600160a01b031681565b6001600160a01b031690565b6040516327f843b560e11b815292839182905afa80156102c7576109ed926109e2925f92610b23575b5061094d565b65ffffffffffff1690565b65ffffffffffff8516908110908115610b0d575b50610afb57610a16610a1f9251858886610cfa565b92908092610f2a565b958615610ae957610aa461066f610a9b610ae4947fe0cbbe1f1e6fd806ca87036fafcebaf7ab5247474a3b20e1c37bb50122c3a88496610a608a878b610f3c565b610a6b8c878b610fca565b610a73610712565b9182526020820152604051928391602083019190916020806040830194805184520151910152565b86898488611136565b610aae858861123f565b610aba858883876112c4565b6040805188815265ffffffffffff90961660208701526001600160a01b0390911694918291820190565b0390a3565b60405163167f871760e31b8152600490fd5b604051631357ac9160e11b8152600490fd5b9050610b1b6109e242611705565b11155f610a01565b610b4691925060203d602011610b4d575b610b3e81836106f1565b810190610919565b905f6109dc565b503d610b34565b610b629293508101906108cb565b905f80610980565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b5f9081526002602090815260408083206001600160a01b039094168352929052206107cb92919061162d565b9081602091031261011a57516107cb81610109565b60405190610bdc826106c3565b60606020838281520152565b81601f8201121561011a57805190610bff82610721565b92610c0d60405194856106f1565b8284526020838301011161011a57815f9260208093018386015e8301015290565b9060208282031261011a5781516001600160401b039283821161011a57019060408282031261011a5760405192610c64846106c3565b825181811161011a5782610c79918501610be8565b8452602083015190811161011a57610c919201610be8565b602082015290565b9081602091031261011a575190565b9081526001600160a01b03909116602082015265ffffffffffff90911660408201526080606082018190526107cb92910190610b6a565b5f1981019190821161096557565b9190820391821161096557565b92610d03610bcf565b90805180610f10575b5050610d1742611705565b5f54909490610d30906109a7906001600160a01b031681565b93604051956327f843b560e11b875260209687816004818a5afa80156102c757610d64926109e2925f92610ef8575061094d565b65ffffffffffff8216908110908115610ee1575b8115610eb0575b50610ea4578560049560405196878092630ce9b79360e41b82525afa9485156102c757610dd19587915f91610e87575b50845190604051808099819463e02f693760e01b8352878b8a60048601610ca8565b03916001600160a01b03165afa9384156102c757610e43955f95610e46575b5092610e388593610e3e93610e3896869a610e2f61037383610e1a875f52600260205260405f2090565b9060018060a01b03165f5260205260405f2090565b95015192610b8e565b90610ced565b610f2a565b91565b610e3e929550610e38949193610e74610e38928a3d8c11610e80575b610e6c81836106f1565b810190610c99565b96935093919450610df0565b503d610e62565b610e9e9150823d84116102c0576102b181836106f1565b5f610daf565b5050505050505f905f90565b9050610eda6109e2610ece87610e1a875f52600160205260405f2090565b5465ffffffffffff1690565b115f610d7f565b9050610eef6109e242611705565b81101590610d78565b610b469192508a3d8c11610b4d57610b3e81836106f1565b610f239250602080918301019101610c2e565b5f80610d0c565b9080821015610f37575090565b905090565b919091805f52600160205265ffffffffffff80610f6c8560405f209060018060a01b03165f5260205260405f2090565b541690831611610f7b57505050565b61071f92610fa3915f52600160205260405f209060018060a01b03165f5260205260405f2090565b9065ffffffffffff1665ffffffffffff19825416179055565b906001820180921161096557565b9190825f526002602052611022610373610ff78360405f209060018060a01b03165f5260205260405f2090565b9261100142611705565b955f52600260205260405f209060018060a01b03165f5260205260405f2090565b9182018092116109655760018101908154156110c6575b61104281611961565b509490835495611051846113e9565b50816110b1575b50156110905750505f1983019283116109655761071f92611078916113c0565b90919082549060031b91821b915f19901b1916179055565b61071f946110aa926001600160d01b039091169190611a38565b5050611764565b65ffffffffffff83811691161490505f611058565b6110cf82611737565b611039565b606060206107cb938184526001600160401b03815116828501520151916040808201520190610b6a565b919360a0936107cb969565ffffffffffff938552600180871b0316602085015260408401521660608201528160808201520190610b6a565b929390600460206111536109a76109a75f5460018060a01b031690565b604051630ce9b79360e41b815292839182905afa9081156102c75761066f916111d1915f91611220575b506001600160a01b031693611190610712565b6001600160401b037f0000000000000000000000000000000000000000000000000000000000000000168152906020820152604051928391602083016110d4565b823b1561011a575f946111fc86926040519889978896879563724ab0f760e11b8752600487016110fe565b03925af180156102c75761120d5750565b8061121a61071f926106de565b806102de565b611239915060203d6020116102c0576102b181836106f1565b5f61117d565b5f8054604051631c9e38c760e21b8152600481019390935265ffffffffffff9390931660248301529091602091839160449183916001600160a01b03165af180156102c75761128b5750565b6112a39060203d602011610e8057610e6c81836106f1565b50565b81156112b0570490565b634e487b7160e01b5f52601260045260245ffd5b92905f549060ff8260a01c166112dc575b5050505050565b6040516313c085b760e11b815291602090839060049082906001600160a01b03165afa9182156102c7575f92611399575b5060405163065c1e0360e01b6020820190815260248201969096526001600160a01b039091166044820152606481019390935265ffffffffffff90911660848301526113668260a481015b03601f1981018452836106f1565b6202a15c5a10611387575f928380935192620249f0f1505f808080806112d5565b604051632153f33560e21b8152600490fd5b61136692506113b96113589160203d6020116102c0576102b181836106f1565b925061130d565b80548210156113d5575f5260205f2001905f90565b634e487b7160e01b5f52603260045260245ffd5b80548061141e57505f5b6001600160d01b0381161561141857600161140e92016113c0565b90549060031b1c90565b50505f90565b5f1990808281011161096557825f5260205f2001015460301c6113f3565b91909160408184031261011a57803561145481610109565b9260208201356001600160401b03811161011a576107cb920161073c565b5190811515820361011a57565b9081602091031261011a576107cb90611472565b61149f9181019061143c565b6040516302910f8b60e31b81526001600160a01b0392831660048201819052929160209182816024817f000000000000000000000000000000000000000000000000000000000000000088165afa9081156102c7575f916115cf575b50156115bd578161152f600492611510611787565b5f80546001600160a01b0319166001600160a01b0389161790556117bd565b94604051928380926313c085b760e11b82525afa9182156102c7575f926115a0575b5050161580611596575b611584575161071f9015155f805460ff60a01b191691151560a01b60ff60a01b16919091179055565b60405163d2420f5960e01b8152600490fd5b508051151561155b565b6115b69250803d106102c0576102b181836106f1565b5f80611551565b6040516362df054560e01b8152600490fd5b6115ef9150833d85116115f5575b6115e781836106f1565b81019061147f565b5f6114fb565b503d6115dd565b9081602091031261011a575163ffffffff8116810361011a5790565b90600163ffffffff8093160191821161096557565b918051156116fb5780602080611648935183010191016115fc565b9161165383826118d5565b92611664845165ffffffffffff1690565b9065ffffffffffff80851692168281146116ef578211918261169a575b5050611691576107cb9250611805565b50506020015190565b9091506116a78354610cdf565b63ffffffff8316149182156116c0575b50505f80611681565b6116e79192506116db6116d56109e292611618565b856118d5565b5165ffffffffffff1690565b115f806116b7565b50505050506020015190565b506107cb91611805565b65ffffffffffff90818111611718571690565b604490604051906306dfcc6560e41b8252603060048301526024820152fd5b8054600160401b8110156106be57611754916001820181556113c0565b8154905f199060031b1b19169055565b90815491600160401b8310156106be578261107891600161071f950181556113c0565b61178f6119b0565b6117976119b0565b60017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055565b5f6040516117ca816106a3565b5260208180518101031261011a576020906040516117e7816106a3565b6117ff6040519384936117f9856106a3565b01611472565b82525290565b908154905f82916005841161186f575b611820935084611c95565b8061184857505f905b6001600160d01b03821615611418576107cb91600161140e92016113c0565b61186261185761186992610cdf565b835f5260205f200190565b5460301c90565b90611829565b919261187a81611b57565b81039081116109655761182093855f5265ffffffffffff808360205f20015416908516105f146118ab575091611815565b9291506118b790610fbc565b90611815565b604051906118ca826106c3565b5f6020838281520152565b906118fe6118f861191f926118e86118bd565b506118f16118bd565b50846113c0565b5061193d565b91600165ffffffffffff845116936020828060d01b039101511691016113c0565b9054906040519261192f846106c3565b835260031b1c602082015290565b9060405161194a816106c3565b915465ffffffffffff8116835260301c6020830152565b8054806119725750505f905f905f90565b5f199080828101116109655761198f925f5260205f20010161193d565b9065ffffffffffff82511691602060018060d01b0391015116906001929190565b60ff5f80516020611cf58339815191525460401c16156119cc57565b604051631afcd79f60e31b8152600490fd5b8054600160401b8110156106be576119fb916001820181556113c0565b611a2557815160209092015160301b65ffffffffffff191665ffffffffffff909216919091179055565b634e487b7160e01b5f525f60045260245ffd5b805492939291908215611b2e57611a59611a5461185785610cdf565b61193d565b90611a6a825165ffffffffffff1690565b65ffffffffffff84811691168110611b1c57611ae0946020948892611a986109e2875165ffffffffffff1690565b03611ae45750611ad292611aae611ab992610cdf565b905f5260205f200190565b9065ffffffffffff82549181199060301b169116179055565b01516001600160d01b031690565b9190565b915050611b1791611b04611af6610712565b65ffffffffffff9093168352565b6001600160d01b038816828601526119de565b611ad2565b604051632520601d60e01b8152600490fd5b611b529250611b3e611af6610712565b6001600160d01b03851660208301526119de565b5f9190565b8015611c905780611c29611c22611c18611c0e611c04611bfa611bf0611be660016107cb9a5f908b60801c80611c84575b508060401c80611c77575b508060201c80611c6a575b508060101c80611c5d575b508060081c80611c50575b508060041c80611c43575b508060021c80611c36575b50821c611c2f575b811c1b611bdf818b6112a6565b0160011c90565b611bdf818a6112a6565b611bdf81896112a6565b611bdf81886112a6565b611bdf81876112a6565b611bdf81866112a6565b611bdf81856112a6565b80926112a6565b90610f2a565b8101611bd2565b600291509101905f611bca565b600491509101905f611bbf565b600891509101905f611bb4565b601091509101905f611ba9565b602091509101905f611b9e565b604091509101905f611b93565b9150506080905f611b88565b505f90565b91905b838210611ca55750505090565b9091928083169080841860011c820180921161096557845f5265ffffffffffff808360205f20015416908416105f14611ce25750925b9190611c98565b939250611cee90610fbc565b91611cdb56fef0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a2646970667358221220ee52c4734e4b032c79e9f76b7ae44a51bfeb78ae418a11c4ec4f864df6af816064736f6c63430008190033","sourceMap":"445:2048:98:-:0;;;;;;;;;;;;;-1:-1:-1;;445:2048:98;;;;;-1:-1:-1;;;;;445:2048:98;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;8837:64:26;445:2048:98;;;;;;;;;7896:76:26;;445:2048:98;;;;7985:34:26;7981:146;;-1:-1:-1;525:17:74;;;445:2048:98;525:17:74;552:12;;2353:28:97;;2391:53;;445:2048:98;;;;;;;;;;;;;552:12:74;445:2048:98;;;;;;;;;;2353:28:97;445:2048:98;;;;;;;;;;2391:53:97;445:2048:98;;;;;;;;;;;7981:146:26;-1:-1:-1;;;;;;445:2048:98;;;;;;;;;;;;;8087:29:26;;445:2048:98;;8087:29:26;7981:146;;;;;7896:76;445:2048:98;;-1:-1:-1;;;7938:23:26;;;;;445:2048:98;-1:-1:-1;445:2048:98;;;;;;-1:-1:-1;445:2048:98;;;;;-1:-1:-1;445:2048:98;;;;-1:-1:-1;;;;;445:2048:98;;;;;;:::o","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361015610011575f80fd5b5f3560e01c8063021a815614610104578063103f2907146100ff5780631a2be2c4146100fa578063267de1f3146100f55780632964f8dc146100f05780632c9d45b3146100eb5780632dd31000146100e657806334d098ea146100e1578063439fab91146100dc5780639f86fd85146100d7578063aa8e6489146100d2578063aab3595f146100cd578063bb24fe8a146100c8578063d5c24e1a146100c35763fbfa77cf146100be575f80fd5b610891565b610874565b610831565b61080c565b6107ce565b6105d5565b61049d565b610479565b610435565b6103f1565b6103d5565b610380565b61032c565b6102e8565b61015b565b6001600160a01b0381160361011a57565b5f80fd5b65ffffffffffff81160361011a57565b9181601f8401121561011a578235916001600160401b03831161011a576020838186019501011161011a57565b3461011a5760a036600319011261011a5760043560243561017b81610109565b6064356101878161011e565b6084356001600160401b03811161011a576101a690369060040161012e565b917f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0060028154146102cc5760029055604051635daf681960e11b8152606086901c60048201526001600160a01b036020826024817f000000000000000000000000000000000000000000000000000000000000000085165afa9182156102c7575f92610296575b50339116036102845761028094610247946044359161096a565b61027060017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055565b6040519081529081906020820190565b0390f35b60405163227bf64d60e01b8152600490fd5b6102b991925060203d6020116102c0575b6102b181836106f1565b810190610bba565b905f61022d565b503d6102a7565b61092e565b604051633ee5aeb560e01b8152600490fd5b5f91031261011a57565b3461011a575f36600319011261011a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461011a57604036600319011261011a57602061037861037360243561035181610109565b6004355f526002845260405f209060018060a01b03165f5260205260405f2090565b6113e9565b604051908152f35b3461011a57604036600319011261011a57602065ffffffffffff6103cb6024356103a981610109565b6004355f526001845260405f209060018060a01b03165f5260205260405f2090565b5416604051908152f35b3461011a575f36600319011261011a576020604051614e208152f35b3461011a575f36600319011261011a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461011a575f36600319011261011a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461011a575f36600319011261011a57602060ff5f5460a01c166040519015158152f35b3461011a57602036600319011261011a576001600160401b0360043581811161011a576104ce90369060040161012e565b5f80516020611cf5833981519152549260ff8460401c16159316801590816105cd575b60011490816105c3575b1590816105ba575b506105a8575f80516020611cf5833981519152805467ffffffffffffffff19166001179055610536918361058457611493565b61053c57005b5f80516020611cf5833981519152805460ff60401b19169055604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a1005b5f80516020611cf5833981519152805460ff60401b1916600160401b179055611493565b60405163f92ee8a960e01b8152600490fd5b9050155f610503565b303b1591506104fb565b8491506104f1565b3461011a5760408060031936011261011a576004356105f381610109565b602435906001600160401b03821161011a575f809161061961067d94369060040161012e565b908187519283928337810184815203915af43d156106855761066f3d61063e81610721565b9061064b865192836106f1565b81523d5f602083013e5b845194859315156020850152808401526060830190610b6a565b03601f1981018352826106f1565b805190602001fd5b61066f6060610655565b634e487b7160e01b5f52604160045260245ffd5b602081019081106001600160401b038211176106be57604052565b61068f565b604081019081106001600160401b038211176106be57604052565b6001600160401b0381116106be57604052565b90601f801991011681019081106001600160401b038211176106be57604052565b6040519061071f826106c3565b565b6001600160401b0381116106be57601f01601f191660200190565b81601f8201121561011a5780359061075382610721565b9261076160405194856106f1565b8284526020838301011161011a57815f926020809301838601378301015290565b90608060031983011261011a576004359160243561079f81610109565b916044356107ac8161011e565b91606435906001600160401b03821161011a576107cb9160040161073c565b90565b3461011a5760206103786108076107e436610782565b939190925f526002865260405f209060018060a01b03165f5260205260405f2090565b61162d565b3461011a57602061082861081f36610782565b92919091610cfa565b50604051908152f35b3461011a575f36600319011261011a5760206040516001600160401b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461011a575f36600319011261011a576020604051620249f08152f35b3461011a575f36600319011261011a575f546040516001600160a01b039091168152602090f35b604051906108c5826106a3565b60608252565b9060208282031261011a5781356001600160401b039283821161011a57019060208282031261011a5760405192610901846106a3565b823590811161011a57610914920161073c565b815290565b9081602091031261011a57516107cb8161011e565b6040513d5f823e3d90fd5b634e487b7160e01b5f52601160045260245ffd5b65ffffffffffff918216908216039190821161096557565b610939565b929395949190956109796108b8565b9280610b54575b505061098b42611705565b5f546004906020906109b3906109a7906001600160a01b031681565b6001600160a01b031690565b6040516327f843b560e11b815292839182905afa80156102c7576109ed926109e2925f92610b23575b5061094d565b65ffffffffffff1690565b65ffffffffffff8516908110908115610b0d575b50610afb57610a16610a1f9251858886610cfa565b92908092610f2a565b958615610ae957610aa461066f610a9b610ae4947fe0cbbe1f1e6fd806ca87036fafcebaf7ab5247474a3b20e1c37bb50122c3a88496610a608a878b610f3c565b610a6b8c878b610fca565b610a73610712565b9182526020820152604051928391602083019190916020806040830194805184520151910152565b86898488611136565b610aae858861123f565b610aba858883876112c4565b6040805188815265ffffffffffff90961660208701526001600160a01b0390911694918291820190565b0390a3565b60405163167f871760e31b8152600490fd5b604051631357ac9160e11b8152600490fd5b9050610b1b6109e242611705565b11155f610a01565b610b4691925060203d602011610b4d575b610b3e81836106f1565b810190610919565b905f6109dc565b503d610b34565b610b629293508101906108cb565b905f80610980565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b5f9081526002602090815260408083206001600160a01b039094168352929052206107cb92919061162d565b9081602091031261011a57516107cb81610109565b60405190610bdc826106c3565b60606020838281520152565b81601f8201121561011a57805190610bff82610721565b92610c0d60405194856106f1565b8284526020838301011161011a57815f9260208093018386015e8301015290565b9060208282031261011a5781516001600160401b039283821161011a57019060408282031261011a5760405192610c64846106c3565b825181811161011a5782610c79918501610be8565b8452602083015190811161011a57610c919201610be8565b602082015290565b9081602091031261011a575190565b9081526001600160a01b03909116602082015265ffffffffffff90911660408201526080606082018190526107cb92910190610b6a565b5f1981019190821161096557565b9190820391821161096557565b92610d03610bcf565b90805180610f10575b5050610d1742611705565b5f54909490610d30906109a7906001600160a01b031681565b93604051956327f843b560e11b875260209687816004818a5afa80156102c757610d64926109e2925f92610ef8575061094d565b65ffffffffffff8216908110908115610ee1575b8115610eb0575b50610ea4578560049560405196878092630ce9b79360e41b82525afa9485156102c757610dd19587915f91610e87575b50845190604051808099819463e02f693760e01b8352878b8a60048601610ca8565b03916001600160a01b03165afa9384156102c757610e43955f95610e46575b5092610e388593610e3e93610e3896869a610e2f61037383610e1a875f52600260205260405f2090565b9060018060a01b03165f5260205260405f2090565b95015192610b8e565b90610ced565b610f2a565b91565b610e3e929550610e38949193610e74610e38928a3d8c11610e80575b610e6c81836106f1565b810190610c99565b96935093919450610df0565b503d610e62565b610e9e9150823d84116102c0576102b181836106f1565b5f610daf565b5050505050505f905f90565b9050610eda6109e2610ece87610e1a875f52600160205260405f2090565b5465ffffffffffff1690565b115f610d7f565b9050610eef6109e242611705565b81101590610d78565b610b469192508a3d8c11610b4d57610b3e81836106f1565b610f239250602080918301019101610c2e565b5f80610d0c565b9080821015610f37575090565b905090565b919091805f52600160205265ffffffffffff80610f6c8560405f209060018060a01b03165f5260205260405f2090565b541690831611610f7b57505050565b61071f92610fa3915f52600160205260405f209060018060a01b03165f5260205260405f2090565b9065ffffffffffff1665ffffffffffff19825416179055565b906001820180921161096557565b9190825f526002602052611022610373610ff78360405f209060018060a01b03165f5260205260405f2090565b9261100142611705565b955f52600260205260405f209060018060a01b03165f5260205260405f2090565b9182018092116109655760018101908154156110c6575b61104281611961565b509490835495611051846113e9565b50816110b1575b50156110905750505f1983019283116109655761071f92611078916113c0565b90919082549060031b91821b915f19901b1916179055565b61071f946110aa926001600160d01b039091169190611a38565b5050611764565b65ffffffffffff83811691161490505f611058565b6110cf82611737565b611039565b606060206107cb938184526001600160401b03815116828501520151916040808201520190610b6a565b919360a0936107cb969565ffffffffffff938552600180871b0316602085015260408401521660608201528160808201520190610b6a565b929390600460206111536109a76109a75f5460018060a01b031690565b604051630ce9b79360e41b815292839182905afa9081156102c75761066f916111d1915f91611220575b506001600160a01b031693611190610712565b6001600160401b037f0000000000000000000000000000000000000000000000000000000000000000168152906020820152604051928391602083016110d4565b823b1561011a575f946111fc86926040519889978896879563724ab0f760e11b8752600487016110fe565b03925af180156102c75761120d5750565b8061121a61071f926106de565b806102de565b611239915060203d6020116102c0576102b181836106f1565b5f61117d565b5f8054604051631c9e38c760e21b8152600481019390935265ffffffffffff9390931660248301529091602091839160449183916001600160a01b03165af180156102c75761128b5750565b6112a39060203d602011610e8057610e6c81836106f1565b50565b81156112b0570490565b634e487b7160e01b5f52601260045260245ffd5b92905f549060ff8260a01c166112dc575b5050505050565b6040516313c085b760e11b815291602090839060049082906001600160a01b03165afa9182156102c7575f92611399575b5060405163065c1e0360e01b6020820190815260248201969096526001600160a01b039091166044820152606481019390935265ffffffffffff90911660848301526113668260a481015b03601f1981018452836106f1565b6202a15c5a10611387575f928380935192620249f0f1505f808080806112d5565b604051632153f33560e21b8152600490fd5b61136692506113b96113589160203d6020116102c0576102b181836106f1565b925061130d565b80548210156113d5575f5260205f2001905f90565b634e487b7160e01b5f52603260045260245ffd5b80548061141e57505f5b6001600160d01b0381161561141857600161140e92016113c0565b90549060031b1c90565b50505f90565b5f1990808281011161096557825f5260205f2001015460301c6113f3565b91909160408184031261011a57803561145481610109565b9260208201356001600160401b03811161011a576107cb920161073c565b5190811515820361011a57565b9081602091031261011a576107cb90611472565b61149f9181019061143c565b6040516302910f8b60e31b81526001600160a01b0392831660048201819052929160209182816024817f000000000000000000000000000000000000000000000000000000000000000088165afa9081156102c7575f916115cf575b50156115bd578161152f600492611510611787565b5f80546001600160a01b0319166001600160a01b0389161790556117bd565b94604051928380926313c085b760e11b82525afa9182156102c7575f926115a0575b5050161580611596575b611584575161071f9015155f805460ff60a01b191691151560a01b60ff60a01b16919091179055565b60405163d2420f5960e01b8152600490fd5b508051151561155b565b6115b69250803d106102c0576102b181836106f1565b5f80611551565b6040516362df054560e01b8152600490fd5b6115ef9150833d85116115f5575b6115e781836106f1565b81019061147f565b5f6114fb565b503d6115dd565b9081602091031261011a575163ffffffff8116810361011a5790565b90600163ffffffff8093160191821161096557565b918051156116fb5780602080611648935183010191016115fc565b9161165383826118d5565b92611664845165ffffffffffff1690565b9065ffffffffffff80851692168281146116ef578211918261169a575b5050611691576107cb9250611805565b50506020015190565b9091506116a78354610cdf565b63ffffffff8316149182156116c0575b50505f80611681565b6116e79192506116db6116d56109e292611618565b856118d5565b5165ffffffffffff1690565b115f806116b7565b50505050506020015190565b506107cb91611805565b65ffffffffffff90818111611718571690565b604490604051906306dfcc6560e41b8252603060048301526024820152fd5b8054600160401b8110156106be57611754916001820181556113c0565b8154905f199060031b1b19169055565b90815491600160401b8310156106be578261107891600161071f950181556113c0565b61178f6119b0565b6117976119b0565b60017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055565b5f6040516117ca816106a3565b5260208180518101031261011a576020906040516117e7816106a3565b6117ff6040519384936117f9856106a3565b01611472565b82525290565b908154905f82916005841161186f575b611820935084611c95565b8061184857505f905b6001600160d01b03821615611418576107cb91600161140e92016113c0565b61186261185761186992610cdf565b835f5260205f200190565b5460301c90565b90611829565b919261187a81611b57565b81039081116109655761182093855f5265ffffffffffff808360205f20015416908516105f146118ab575091611815565b9291506118b790610fbc565b90611815565b604051906118ca826106c3565b5f6020838281520152565b906118fe6118f861191f926118e86118bd565b506118f16118bd565b50846113c0565b5061193d565b91600165ffffffffffff845116936020828060d01b039101511691016113c0565b9054906040519261192f846106c3565b835260031b1c602082015290565b9060405161194a816106c3565b915465ffffffffffff8116835260301c6020830152565b8054806119725750505f905f905f90565b5f199080828101116109655761198f925f5260205f20010161193d565b9065ffffffffffff82511691602060018060d01b0391015116906001929190565b60ff5f80516020611cf58339815191525460401c16156119cc57565b604051631afcd79f60e31b8152600490fd5b8054600160401b8110156106be576119fb916001820181556113c0565b611a2557815160209092015160301b65ffffffffffff191665ffffffffffff909216919091179055565b634e487b7160e01b5f525f60045260245ffd5b805492939291908215611b2e57611a59611a5461185785610cdf565b61193d565b90611a6a825165ffffffffffff1690565b65ffffffffffff84811691168110611b1c57611ae0946020948892611a986109e2875165ffffffffffff1690565b03611ae45750611ad292611aae611ab992610cdf565b905f5260205f200190565b9065ffffffffffff82549181199060301b169116179055565b01516001600160d01b031690565b9190565b915050611b1791611b04611af6610712565b65ffffffffffff9093168352565b6001600160d01b038816828601526119de565b611ad2565b604051632520601d60e01b8152600490fd5b611b529250611b3e611af6610712565b6001600160d01b03851660208301526119de565b5f9190565b8015611c905780611c29611c22611c18611c0e611c04611bfa611bf0611be660016107cb9a5f908b60801c80611c84575b508060401c80611c77575b508060201c80611c6a575b508060101c80611c5d575b508060081c80611c50575b508060041c80611c43575b508060021c80611c36575b50821c611c2f575b811c1b611bdf818b6112a6565b0160011c90565b611bdf818a6112a6565b611bdf81896112a6565b611bdf81886112a6565b611bdf81876112a6565b611bdf81866112a6565b611bdf81856112a6565b80926112a6565b90610f2a565b8101611bd2565b600291509101905f611bca565b600491509101905f611bbf565b600891509101905f611bb4565b601091509101905f611ba9565b602091509101905f611b9e565b604091509101905f611b93565b9150506080905f611b88565b505f90565b91905b838210611ca55750505090565b9091928083169080841860011c820180921161096557845f5265ffffffffffff808360205f20015416908416105f14611ce25750925b9190611c98565b939250611cee90610fbc565b91611cdb56fef0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a2646970667358221220ee52c4734e4b032c79e9f76b7ae44a51bfeb78ae418a11c4ec4f864df6af816064736f6c63430008190033","sourceMap":"445:2048:98:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;-1:-1:-1;;;;;445:2048:98;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;445:2048:98;;;;;;;;;;;;;;;:::o;:::-;;;;;;-1:-1:-1;;445:2048:98;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;-1:-1:-1;;;;;445:2048:98;;;;;;;;;;;:::i;:::-;2355:73:29;;1847:1;445:2048:98;;3526:20:29;3522:88;;1847:1;;;445:2048:98;;-1:-1:-1;;;4546:86:97;;467:2:93;445:2048:98;;;;4546:86:97;;445:2048:98;-1:-1:-1;;;;;4546:86:97;445:2048:98;;;4572:26:97;445:2048:98;;4546:86:97;;;;;;;-1:-1:-1;4546:86:97;;;445:2048:98;4636:10:97;;445:2048:98;;4546:100:97;4542:160;;445:2048:98;;774:1493;445:2048;;;774:1493;;:::i;:::-;3282:1:29;1805;2355:73;1847:1;3716:283;3282:1;445:2048:98;;;;;;;;;;;;;;;;;4542:160:97;445:2048:98;;-1:-1:-1;;;4669:22:97;;445:2048:98;;4669:22:97;4546:86;;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;;:::i;3522:88:29:-;445:2048:98;;-1:-1:-1;;;3569:30:29;;445:2048:98;;3569:30:29;445:2048:98;;;;;;;:::o;:::-;;;;;;-1:-1:-1;;445:2048:98;;;;;;1435:38:97;-1:-1:-1;;;;;445:2048:98;;;;;;;;;;;;-1:-1:-1;;445:2048:98;;;;;2936:47:97;:38;445:2048:98;;;;;:::i;:::-;;;-1:-1:-1;445:2048:98;2936:16:97;445:2048:98;;;-1:-1:-1;445:2048:98;;;;;;;;;;;;;;;;;2936:38:97;:47;:::i;:::-;445:2048:98;;;;;;;;;;;;-1:-1:-1;;445:2048:98;;;;;;1788:109:97;445:2048:98;;;;;:::i;:::-;;;-1:-1:-1;445:2048:98;1788:109:97;445:2048:98;;;-1:-1:-1;445:2048:98;;;;;;;;;;;;;;;;;1788:109:97;445:2048:98;;;;;;;;;;;;;;-1:-1:-1;;445:2048:98;;;;;;;1374:6:97;445:2048:98;;;;;;;;;-1:-1:-1;;445:2048:98;;;;;;1528:51:97;-1:-1:-1;;;;;445:2048:98;;;;;;;;;;;;-1:-1:-1;;445:2048:98;;;;;;322:32:74;-1:-1:-1;;;;;445:2048:98;;;;;;;;;;;;-1:-1:-1;;445:2048:98;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;445:2048:98;;;;-1:-1:-1;;;;;445:2048:98;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;445:2048:98;;;;;;;4301:16:26;445:2048:98;;4726:16:26;;:34;;;;445:2048:98;4805:1:26;4790:16;:50;;;;445:2048:98;4855:13:26;:30;;;;445:2048:98;4851:91:26;;;-1:-1:-1;;;;;;;;;;;445:2048:98;;-1:-1:-1;;445:2048:98;;;;;718:4:74;;4951:18:26;4979:67;;718:4:74;:::i;:::-;5066:101:26;;445:2048:98;5066:101:26;-1:-1:-1;;;;;;;;;;;445:2048:98;;-1:-1:-1;;;;445:2048:98;;;;;-1:-1:-1;445:2048:98;;5142:14:26;;445:2048:98;;5142:14:26;445:2048:98;4979:67:26;-1:-1:-1;;;;;;;;;;;445:2048:98;;-1:-1:-1;;;;445:2048:98;-1:-1:-1;;;445:2048:98;;;718:4:74;:::i;4851:91:26:-;445:2048:98;;-1:-1:-1;;;4908:23:26;;445:2048:98;;4908:23:26;4855:30;4872:13;;;4855:30;;;4790:50;4818:4;4810:25;:30;;-1:-1:-1;4790:50:26;;4726:34;;;-1:-1:-1;4726:34:26;;445:2048:98;;;;;;;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;445:2048:98;;;;-1:-1:-1;445:2048:98;;;477:31:80;445:2048:98;;;;;;:::i;:::-;;;;;;;;;;;;;;;416:25:80;;;;445:2048:98;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;-1:-1:-1;445:2048:98;;;;;;;;;;;;;477:31:80;;445:2048:98;;;;;;;;;;:::i;:::-;477:31:80;;;;;;;;;:::i;:::-;518:79;;;445:2048:98;518:79:80;;445:2048:98;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;445:2048:98;;;;;;;:::o;:::-;;:::i;:::-;;;;;;;-1:-1:-1;;;;;445:2048:98;;;;;;;:::o;:::-;-1:-1:-1;;;;;445:2048:98;;;;;;:::o;:::-;;;477:31:80;;445:2048:98;;;;;;;;-1:-1:-1;;;;;445:2048:98;;;;;;;:::o;:::-;;;;;;;:::i;:::-;:::o;:::-;-1:-1:-1;;;;;445:2048:98;;;;;;-1:-1:-1;;445:2048:98;;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;445:2048:98;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;445:2048:98;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;-1:-1:-1;;;;;445:2048:98;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;2692:73:97;:38;445:2048:98;;;:::i;:::-;;;;;-1:-1:-1;445:2048:98;2692:16:97;445:2048:98;;;-1:-1:-1;445:2048:98;;;;;;;;;;;;;;;;;2692:38:97;:73;:::i;445:2048:98:-;;;;;3248:62:97;445:2048:98;;;:::i;:::-;3248:62:97;;;;;:::i;:::-;445:2048:98;;;;;;;;;;;;;-1:-1:-1;;445:2048:98;;;;;;;-1:-1:-1;;;;;404:28:74;445:2048:98;;;;;;;;;;-1:-1:-1;;445:2048:98;;;;;;;1271:7:97;445:2048:98;;;;;;;;;-1:-1:-1;;445:2048:98;;;;;;;;-1:-1:-1;;;;;445:2048:98;;;;;;;;;;;;;;;:::i;:::-;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;;;;445:2048:98;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;;;;:::o;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;:::i;774:1493::-;;;;;;;;445:2048;;:::i;:::-;1076:16;;1072:91;;774:1493;837:15:63;;819:34;837:15;819:34;:::i;:::-;-1:-1:-1;445:2048:98;1215:29;;;;:27;;:13;;-1:-1:-1;;;;;445:2048:98;1215:13;445:2048;;-1:-1:-1;;;;;445:2048:98;;;1215:27;445:2048;;-1:-1:-1;;;1215:29:98;;445:2048;;;;;1215:29;;;;;;1177:67;1215:29;1196:48;1215:29;-1:-1:-1;1215:29:98;;;774:1493;1196:48;;:::i;:::-;445:2048;;;;1177:67;445:2048;;;1177:67;;;:107;;;;;774:1493;1173:178;;;1418:87;1531:33;1474:30;;1418:87;;;;:::i;:::-;1531:33;;;;;:::i;:::-;1578:18;;;1574:75;;1950:87;;;2200:60;1718:16;2200:60;1718:16;;;;;;:::i;:::-;1791:13;;;;;:::i;:::-;445:2048;;:::i;:::-;;;;1215:29;1961:75;;445:2048;;;1950:87;;;1215:29;1950:87;;445:2048;;;;;;;;;;;;;;;;;;;1950:87;;;;;;:::i;:::-;2087:16;;;;:::i;:::-;2167;;;;;;:::i;:::-;445:2048;;;;;;;;;;;;;;-1:-1:-1;;;;;445:2048:98;;;;;;;;;;;2200:60;;;;774:1493::o;1574:75::-;445:2048;;-1:-1:-1;;;1619:19:98;;1215:29;;1619:19;1173:178;445:2048;;-1:-1:-1;;;1315:25:98;;1215:29;;1315:25;1177:107;837:15:63;;1248:36:98;819:34:63;837:15;819:34;:::i;1248:36:98:-;-1:-1:-1;1248:36:98;1177:107;;;1215:29;;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;1072:91;1121:31;;;;;;;;:::i;:::-;1072:91;;;;;445:2048;;;;;;;;;;;;;;;;;-1:-1:-1;445:2048:98;;;;;;;;-1:-1:-1;;445:2048:98;;;;:::o;2505:267:97:-;-1:-1:-1;445:2048:98;;;2692:16:97;445:2048:98;;;;;;;;-1:-1:-1;;;;;445:2048:98;;;;;;;;;2692:73:97;;2505:267;;2692:73;:::i;445:2048:98:-;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;445:2048:98;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;;;;445:2048:98;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;445:2048:98;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;445:2048:98;;;;;;;;:::o;:::-;;;;;;;;;;:::o;3323:1122:97:-;;445:2048:98;;:::i;:::-;;;;3608:16:97;3604:109;;3323:1122;837:15:63;;819:34;837:15;819:34;:::i;:::-;-1:-1:-1;445:2048:98;;;;3778:27:97;;:13;;-1:-1:-1;;;;;445:2048:98;3778:13:97;445:2048:98;3778:27:97;445:2048:98;;;;;;;3778:29:97;;;;;;;;;;;;;;;3740:67;3778:29;3759:48;3778:29;-1:-1:-1;3778:29:97;;;3759:48;;:::i;3740:67::-;445:2048:98;;;3740:67:97;;;:107;;;;;3323:1122;3740:197;;;;3323:1122;3723:263;;;445:2048:98;3778:29:97;445:2048:98;;;;;;;;;;4025:25:97;;;;;;;;;4010:143;4025:25;;;-1:-1:-1;4025:25:97;;;3323:1122;4113:30;;;445:2048:98;;;;;;;;;;;4010:143:97;;;;;3778:29;4010:143;;;:::i;:::-;;;-1:-1:-1;;;;;445:2048:98;4010:143:97;;;;;;;4181:257;4010:143;-1:-1:-1;4010:143:97;;;3323:1122;3996:157;;4293:102;3996:157;;4233:162;3996:157;4207:231;3996:157;;2936:28;:47;:38;:28;;;445:2048:98;;2936:16:97;445:2048:98;;;;;;;2936:28:97;445:2048:98;;;;;;;;;;;;;;;;2936:47:97;4351:43;;;4293:102;;:::i;:::-;4233:162;;:::i;:::-;4207:231;:::i;4181:257::-;3323:1122;:::o;4010:143::-;4233:162;4010:143;;;4207:231;4010:143;;;;4293:102;4010:143;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;;;;;4025:25;;;;;;;;;;;;;;:::i;:::-;;;;3723:263;3962:13;;;;;;-1:-1:-1;3962:13:97;-1:-1:-1;3962:13:97;:::o;3740:197::-;3886:41;;3867:70;3886:51;;:41;;;445:2048:98;;3886:29:97;445:2048:98;;;;;;;3886:51:97;445:2048:98;;;;;3867:70:97;-1:-1:-1;3740:197:97;;;:107;837:15:63;;3811:36:97;819:34:63;837:15;819:34;:::i;3811:36:97:-;;;;3740:107;;;3778:29;;;;;;;;;;;;;;;:::i;3604:109::-;3662:40;;;;;;;;;;;;:::i;:::-;3604:109;;;;2557:104:58;;2641:5;;;;;;:13;2557:104;:::o;2641:13::-;;;2557:104;:::o;4714:335:97:-;;;;445:2048:98;-1:-1:-1;445:2048:98;4876:29:97;445:2048:98;;;;4876:51:97;445:2048:98;;-1:-1:-1;445:2048:98;;;;;;;;;;;;;;;;;4876:51:97;445:2048:98;;;;;-1:-1:-1;4872:171:97;;4714:335;;;:::o;4872:171::-;4962:70;445:2048:98;4962:51:97;445:2048:98;-1:-1:-1;445:2048:98;4876:29:97;445:2048:98;;;-1:-1:-1;445:2048:98;;;;;;;;;;;;;;;;;4962:51:97;445:2048:98;;;;;;;;;;;;;;9856:1:61;445:2048:98;;;;;;;:::o;5055:221:97:-;;;445:2048:98;-1:-1:-1;445:2048:98;5160:16:97;445:2048:98;;2936:47:97;:38;5160;445:2048:98;;-1:-1:-1;445:2048:98;;;;;;;;;;;;;;;;;5160:38:97;837:15:63;819:34;837:15;819:34;:::i;:::-;445:2048:98;-1:-1:-1;445:2048:98;5160:16:97;445:2048:98;;;-1:-1:-1;445:2048:98;;;;;;;;;;;;;;;;;2936:47:97;445:2048:98;;;;;;;;6360:12:91;;;445:2048:98;;;6360:24:91;6356:75;;5055:221:97;6474:30:91;;;:::i;:::-;445:2048:98;;;;;6578:12:91;;;;:::i;:::-;;6604:24;;;5055:221:97;-1:-1:-1;6600:188:91;;;-1:-1:-1;;;;445:2048:98;;;;;;;6644:29:91;:21;;;;:::i;:::-;:29;445:2048:98;;;;;;;;;;;;;;;;;;;;;6600:188:91;6753:24;;8167:38:61;;-1:-1:-1;;;;;445:2048:98;;;;;8167:38:61;:::i;:::-;6753:24:91;;;:::i;6604:::-;445:2048:98;;;;;;6614:14:91;;-1:-1:-1;6604:24:91;;;6356:75;6400:20;;;:::i;:::-;6356:75;;445:2048:98;;;;;;;;-1:-1:-1;;;;;445:2048:98;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;5282:431:97:-;;;;5487:25;;:23;:13;445:2048:98;5494:5:97;445:2048:98;;;;;;;;;5487:23:97;445:2048:98;;-1:-1:-1;;;5487:25:97;;445:2048:98;;;;;5487:25:97;;;;;;;5631:65;5487:25;5631:65;5487:25;5494:5;5487:25;;;5282:431;-1:-1:-1;;;;;;445:2048:98;;;;:::i;:::-;-1:-1:-1;;;;;5677:4:97;445:2048:98;;;5677:4:97;5487:25;5642:53;;445:2048:98;;;5631:65:97;;;5487:25;5631:65;;;:::i;:::-;5472:234;;;;;5494:5;445:2048:98;5472:234:97;445:2048:98;;;;;;;;;;;;;;5472:234:97;;5487:25;5472:234;;;:::i;:::-;;;;;;;;;;;5282:431;:::o;5472:234::-;;;;;;:::i;:::-;;;:::i;5487:25::-;;;;;;;;;;;;;;:::i;:::-;;;;5719:137;5809:5;445:2048:98;;;;-1:-1:-1;;;5802:47:97;;;;;445:2048:98;;;;;;;;;;;;;;;5802:47:97;;445:2048:98;;;;;;-1:-1:-1;;;;;445:2048:98;5802:47:97;;;;;;;;5719:137;:::o;5802:47::-;;;;;;;;;;;;;:::i;:::-;;5719:137::o;445:2048:98:-;;;;;;;:::o;:::-;;;;;;;;;;;;5862:623:97;;;5988:12;445:2048:98;;;;;;;5984:495:97;;5862:623;;;;;;:::o;5984:495::-;445:2048:98;;-1:-1:-1;;;6033:22:97;;445:2048:98;6033:22:97;;445:2048:98;;6033:22:97;;445:2048:98;;-1:-1:-1;;;;;445:2048:98;6033:22:97;;;;;;;5988:12;6033:22;;;5984:495;-1:-1:-1;445:2048:98;;-1:-1:-1;;;6033:22:97;6094:81;;;;;;;;445:2048:98;;;;-1:-1:-1;;;;;445:2048:98;;;;;;;;;;;;;;;;;;;;;;6094:81:97;445:2048:98;;;;6094:81:97;;477:31:80;;6094:81:97;;;;;;:::i;:::-;445:2048:98;6194:9:97;:55;6190:124;;5988:12;6328:141;;;;;;1271:7;6328:141;;5984:495;;;;;;;6190:124;445:2048:98;;-1:-1:-1;;;6276:23:97;;6033:22;;6276:23;6033:22;6094:81;6033:22;;;6094:81;6033:22;;;;;;;;;;;:::i;:::-;;;;;445:2048:98;;;;;;;;-1:-1:-1;445:2048:98;;-1:-1:-1;445:2048:98;;;-1:-1:-1;445:2048:98;:::o;:::-;;;;;;;;;;;;10580:184:91;445:2048:98;;10303:8:61;;;:63;-1:-1:-1;10303:63:61;-1:-1:-1;;;;;445:2048:98;;10726:7:91;445:2048:98;;10736:12:91;:17;:12;;:17;:::i;:::-;445:2048:98;;;;;;10580:184:91;:::o;10726:31::-;;;-1:-1:-1;10580:184:91;:::o;10303:63:61:-;445:2048:98;;;;;;;;;;14249:109:61;-1:-1:-1;14249:109:61;;-1:-1:-1;14249:109:61;;;445:2048:98;;;10303:63:61;;445:2048:98;;;;;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;445:2048:98;;;;;;;;:::i;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;:::i;6491:564:97:-;6614:34;6491:564;6614:34;;;;:::i;:::-;445:2048:98;;-1:-1:-1;;;6664:41:97;;-1:-1:-1;;;;;445:2048:98;;;6664:41:97;;;445:2048:98;;;;;6664:41:97;;;445:2048:98;;;6674:13:97;445:2048:98;;6664:41:97;;;;;;;-1:-1:-1;6664:41:97;;;6491:564;6663:42;;6659:90;;2540:111:29;6850:27:97;6664:41;2540:111:29;;;:::i;:::-;-1:-1:-1;445:2048:98;;-1:-1:-1;;;;;;445:2048:98;-1:-1:-1;;;;;445:2048:98;;;;;6850:27:97;:::i;:::-;445:2048:98;;;;;;;;;;6892:23:97;;;;;;;;;-1:-1:-1;6892:23:97;;;6491:564;445:2048:98;;;6892:37:97;:64;;;6491:564;6888:112;;445:2048:98;7010:38:97;;445:2048:98;;-1:-1:-1;445:2048:98;;-1:-1:-1;;;;445:2048:98;;;;;;-1:-1:-1;;;445:2048:98;;;;;;;;6888:112:97;445:2048:98;;-1:-1:-1;;;6979:10:97;;6664:41;;6979:10;6892:64;-1:-1:-1;445:2048:98;;;;6892:64:97;;:23;;;;;;-1:-1:-1;6892:23:97;;;;;;:::i;:::-;;;;;6659:90;445:2048:98;;-1:-1:-1;;;6728:10:97;;6664:41;;6728:10;6664:41;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;445:2048:98;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;:::o;7558:604:91:-;;445:2048:98;;7686:17:91;7682:83;;445:2048:98;7789:27:91;445:2048:98;7789:27:91;445:2048:98;;7789:27:91;;;;;;:::i;:::-;7860:14;;;;;:::i;:::-;445:2048:98;;;;;;;;;;;;;;;;7888:22:91;;;7884:77;;7975:21;-1:-1:-1;7975:84:91;;;;7558:604;7971:139;;;;8127:28;;;;:::i;7971:139::-;8082:17;;7789:27;8082:17;445:2048:98;8075:24:91;:::o;7975:84::-;445:2048:98;;;8009:16:91;445:2048:98;;8009:16:91;:::i;:::-;445:2048:98;;;8001:24:91;:57;;;;;7975:84;;;;;;;8001:57;8029:29;8038:8;;;8029:18;8038:8;8029:23;8038:8;;:::i;:::-;8029:18;;:::i;:::-;445:2048:98;;;;;8029:29:91;;8001:57;;;;7884:77;7933:17;;;;;7789:27;7933:17;445:2048:98;7926:24:91;:::o;7682:83::-;7726:28;;;;:::i;14291:213:59:-;445:2048:98;14369:24:59;;;;14365:103;;445:2048:98;14291:213:59;:::o;14365:103::-;445:2048:98;;;;14416:41:59;;;;;;14447:2;14416:41;;;445:2048:98;;;;;14416:41:59;445:2048:98;;;-1:-1:-1;;;445:2048:98;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::o;:::-;;;;;-1:-1:-1;;;445:2048:98;;;;;;;;;;;;;;;:::i;6893:76:26:-;;;:::i;:::-;;;:::i;:::-;1805:1:29;2355:73;1847:1;6893:76:26:o;2273:218:98:-;-1:-1:-1;445:2048:98;;;;;:::i;:::-;;;;;;2419:30;;445:2048;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;2419:30;445:2048;:::i;:::-;;;;2273:218;:::o;6999:207:91:-;;445:2048:98;;9594:15:61;-1:-1:-1;9619:18:61;9652:7;9658:1;9652:7;;9648:234;;6999:207:91;9906:53:61;;;;;:::i;:::-;9977:8;;;:63;-1:-1:-1;9977:63:61;;-1:-1:-1;;;;;445:2048:98;;7168:7:91;445:2048:98;;;7178:12:91;;:17;:12;;:17;:::i;9977:63:61:-;9992:41;10025:7;9992:48;10025:7;;:::i;:::-;9992:41;14249:109;;;;;;14099:265;;9992:41;445:2048:98;;;;;9992:48:61;9977:63;;;9648:234;9695:14;;;;;:::i;:::-;445:2048:98;;;;;;;9906:53:61;14249:109;;-1:-1:-1;14249:109:61;445:2048:98;14249:109:61;;;-1:-1:-1;14249:109:61;;445:2048:98;;;;;9727:48:61;9723:149;445:2048:98;;;9795:10:61;9723:149;9648:234;;9723:149;9850:7;;;;;;:::i;:::-;9723:149;9648:234;;445:2048:98;;;;;;;:::i;:::-;-1:-1:-1;445:2048:98;;;;;;;:::o;11486:272:91:-;;445:2048:98;11308:22:61;11718:31:91;11486:272;445:2048:98;;:::i;:::-;;;;:::i;:::-;;11308:22:61;;:::i;:::-;445:2048:98;;:::i;:::-;;11718:12:91;445:2048:98;;;;;11731:17:91;445:2048:98;;;;;11731:17:91;;445:2048:98;;11718:12:91;;:31;:::i;:::-;445:2048:98;;;;;;;;;:::i;:::-;;;;;;11731:17:91;11672:79;;445:2048:98;11486:272:91;:::o;445:2048:98:-;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::o;10552:388:61:-;445:2048:98;;10728:8:61;;;10752:20;;10690:17;10752:20;10690:17;10752:20;10690:17;10752:20;:::o;10724:210::-;445:2048:98;;;;;;;;;;;14249:109:61;10690:17;14249:109;;10690:17;14249:109;;;445:2048:98;:::i;:::-;;;;;;;14249:109:61;445:2048:98;;;;;10911:11:61;;445:2048:98;;10886:37:61;10870:1;10886:37;;;:::o;7084:141:26:-;445:2048:98;-1:-1:-1;;;;;;;;;;;445:2048:98;;;;7150:18:26;7146:73;;7084:141::o;7146:73::-;445:2048:98;;-1:-1:-1;;;7191:17:26;;;;;445:2048:98;;;-1:-1:-1;;;445:2048:98;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;445:2048:98;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;11513:870:61;445:2048:98;;11513:870:61;;;445:2048:98;11513:870:61;11672:7;;;;445:2048:98;11775:28:61;11795:7;;;:::i;11775:28::-;445:2048:98;:::i;:::-;;;;;;;;;;;;;;;;11877:15:61;-1:-1:-1;11873:91:61;;445:2048:98;;12233:11:61;445:2048:98;;;12027:16:61;445:2048:98;;;;;;;12027:16:61;;;;12083:7;12063:43;12083:7;;12063:28;12083:7;;:::i;:::-;12063:28;14249:109;;;;;;14099:265;;12063:28;445:2048:98;;;;;;;;;;;;;;;;;12063:43:61;12233:11;445:2048:98;-1:-1:-1;;;;;445:2048:98;;;;12225:27:61;;:::o;12023:189::-;445:2048:98;;;12145:52:61;445:2048:98;12155:41:61;445:2048:98;;:::i;:::-;;;;;;;;12155:41:61;-1:-1:-1;;;;;445:2048:98;;12155:41:61;;;445:2048:98;12145:52:61;:::i;:::-;12023:189;;11873:91;445:2048:98;;-1:-1:-1;;;11919:30:61;;;;;11668:709;12283:52;445:2048:98;;12293:41:61;445:2048:98;;:::i;12293:41:61:-;-1:-1:-1;;;;;445:2048:98;;12293:41:61;;;445:2048:98;12145:52:61;:::i;12283:::-;11678:1;12349:17;;:::o;8587:1642:58:-;8658:6;;8654:45;;9401:7;10201:10;10142:26;10093;10044;9995;9946;9897;9848;445:2048:98;10189:23:58;9401:7;8663:1;445:2048:98;;;;10826:16:58;10822:99;;8587:1642;445:2048:98;;;;10938:15:58;10934:96;;8587:1642;445:2048:98;;;;11047:15:58;11043:96;;8587:1642;445:2048:98;;;;11156:15:58;11152:96;;8587:1642;445:2048:98;;;;11265:14:58;11261:93;;8587:1642;445:2048:98;;;;11371:14:58;11367:93;;8587:1642;445:2048:98;;;;11477:14:58;11473:93;;8587:1642;445:2048:98;;;11579:64:58;;8587:1642;445:2048:98;;;9858:10:58;;;;:::i;:::-;445:2048:98;;;;;9848:26:58;9907:10;;;;:::i;9897:26::-;9956:10;;;;:::i;9946:26::-;10005:10;;;;:::i;9995:26::-;10054:10;;;;:::i;10044:26::-;10103:10;;;;:::i;10093:26::-;10152:10;;;;:::i;10142:26::-;10201:10;;;:::i;:::-;10189:23;;:::i;11579:64::-;445:2048:98;;11579:64:58;;11473:93;445:2048:98;11511:11:58;;445:2048:98;;11473:93:58;;;;11367;445:2048:98;11405:11:58;;445:2048:98;;11367:93:58;;;;11261;445:2048:98;11299:11:58;;445:2048:98;;11261:93:58;;;;11152:96;445:2048:98;11191:12:58;;445:2048:98;;11152:96:58;;;;11043;445:2048:98;11082:12:58;;445:2048:98;;11043:96:58;;;;10934;445:2048:98;10973:12:58;;445:2048:98;;10934:96:58;;;;10822:99;10862:13;;;445:2048:98;10822:99:58;;;;8654:45;8680:8;8663:1;8680:8;:::o;12736:433:61:-;;;12919:10;;;;;;13151:11;;;12736:433;:::o;12912:230::-;2900:5:58;;;;;;2910;;;;445:2048:98;;;;;;;;;14249:109:61;-1:-1:-1;14249:109:61;445:2048:98;14249:109:61;;;-1:-1:-1;14249:109:61;;445:2048:98;;;;;-1:-1:-1;12996:136:61;445:2048:98;;;13055:10:61;12996:136;;12912:230;;;;12996:136;13110:7;;;;;;:::i;:::-;12996:136;;","linkReferences":{},"immutableReferences":{"64520":[{"start":1098,"length":32}],"64523":[{"start":2128,"length":32},{"start":4506,"length":32}],"72304":[{"start":765,"length":32},{"start":5322,"length":32}],"72307":[{"start":508,"length":32},{"start":1030,"length":32}]}},"methodIdentifiers":{"BURNER_GAS_LIMIT()":"d5c24e1a","BURNER_RESERVE()":"2964f8dc","FACTORY()":"2dd31000","NETWORK_MIDDLEWARE_SERVICE()":"2c9d45b3","TYPE()":"bb24fe8a","VAULT_FACTORY()":"103f2907","cumulativeSlash(bytes32,address)":"1a2be2c4","cumulativeSlashAt(bytes32,address,uint48,bytes)":"aa8e6489","initialize(bytes)":"439fab91","isBurnerHook()":"34d098ea","latestSlashedCaptureTimestamp(bytes32,address)":"267de1f3","slash(bytes32,address,uint256,uint48,bytes)":"021a8156","slashableStake(bytes32,address,uint48,bytes)":"aab3595f","staticDelegateCall(address,bytes)":"9f86fd85","vault()":"fbfa77cf"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"vaultFactory\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"networkMiddlewareService\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"slasherFactory\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"entityType\",\"type\":\"uint64\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"CheckpointUnorderedInsertion\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientBurnerGas\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientSlash\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidCaptureTimestamp\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NoBurner\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotNetworkMiddleware\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotVault\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ReentrancyGuardReentrantCall\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"bits\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"SafeCastOverflowedUintDowncast\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"slashedAmount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint48\",\"name\":\"captureTimestamp\",\"type\":\"uint48\"}],\"name\":\"Slash\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"BURNER_GAS_LIMIT\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"BURNER_RESERVE\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"FACTORY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"NETWORK_MIDDLEWARE_SERVICE\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"TYPE\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"VAULT_FACTORY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"cumulativeSlash\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hint\",\"type\":\"bytes\"}],\"name\":\"cumulativeSlashAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isBurnerHook\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"latestSlashedCaptureTimestamp\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"value\",\"type\":\"uint48\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint48\",\"name\":\"captureTimestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hints\",\"type\":\"bytes\"}],\"name\":\"slash\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"slashedAmount\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"captureTimestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hints\",\"type\":\"bytes\"}],\"name\":\"slashableStake\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"staticDelegateCall\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"vault\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"CheckpointUnorderedInsertion()\":[{\"details\":\"A value was attempted to be inserted on a past checkpoint.\"}],\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"ReentrancyGuardReentrantCall()\":[{\"details\":\"Unauthorized reentrant call.\"}],\"SafeCastOverflowedUintDowncast(uint8,uint256)\":[{\"details\":\"Value doesn't fit in an uint of `bits` size.\"}]},\"events\":{\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"Slash(bytes32,address,uint256,uint48)\":{\"params\":{\"captureTimestamp\":\"time point when the stake was captured\",\"operator\":\"operator that is slashed\",\"slashedAmount\":\"virtual amount of the collateral slashed\",\"subnetwork\":\"subnetwork that requested the slash\"}}},\"kind\":\"dev\",\"methods\":{\"cumulativeSlash(bytes32,address)\":{\"params\":{\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"},\"returns\":{\"_0\":\"cumulative slash amount\"}},\"cumulativeSlashAt(bytes32,address,uint48,bytes)\":{\"params\":{\"hint\":\"hint for the checkpoint index\",\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\",\"timestamp\":\"time point to get the cumulative slash amount until (inclusively)\"},\"returns\":{\"_0\":\"cumulative slash amount until the given timestamp (inclusively)\"}},\"initialize(bytes)\":{\"params\":{\"data\":\"some data to use\"}},\"slash(bytes32,address,uint256,uint48,bytes)\":{\"details\":\"Only a network middleware can call this function.\",\"params\":{\"amount\":\"maximum amount of the collateral to be slashed\",\"captureTimestamp\":\"time point when the stake was captured\",\"hints\":\"hints for checkpoints' indexes\",\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"},\"returns\":{\"slashedAmount\":\"virtual amount of the collateral slashed\"}},\"slashableStake(bytes32,address,uint48,bytes)\":{\"params\":{\"captureTimestamp\":\"time point to get the stake amount at\",\"hints\":\"hints for the checkpoints' indexes\",\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"},\"returns\":{\"amount\":\"slashable amount of the stake\"}},\"staticDelegateCall(address,bytes)\":{\"details\":\"It allows to use this contract's storage on-chain.\",\"params\":{\"data\":\"data to make a delegatecall with\",\"target\":\"address of the contract to make a delegatecall to\"}}},\"version\":1},\"userdoc\":{\"events\":{\"Slash(bytes32,address,uint256,uint48)\":{\"notice\":\"Emitted when a slash is performed.\"}},\"kind\":\"user\",\"methods\":{\"BURNER_GAS_LIMIT()\":{\"notice\":\"Get a gas limit for the burner.\"},\"BURNER_RESERVE()\":{\"notice\":\"Get a reserve gas between the gas limit check and the burner's execution.\"},\"FACTORY()\":{\"notice\":\"Get the factory's address.\"},\"NETWORK_MIDDLEWARE_SERVICE()\":{\"notice\":\"Get the network middleware service's address.\"},\"TYPE()\":{\"notice\":\"Get the entity's type.\"},\"VAULT_FACTORY()\":{\"notice\":\"Get the vault factory's address.\"},\"cumulativeSlash(bytes32,address)\":{\"notice\":\"Get a cumulative slash amount for an operator on a subnetwork.\"},\"cumulativeSlashAt(bytes32,address,uint48,bytes)\":{\"notice\":\"Get a cumulative slash amount for an operator on a subnetwork until a given timestamp (inclusively) using a hint.\"},\"initialize(bytes)\":{\"notice\":\"Initialize this entity contract by using a given data.\"},\"isBurnerHook()\":{\"notice\":\"Get if the burner is needed to be called on a slashing.\"},\"latestSlashedCaptureTimestamp(bytes32,address)\":{\"notice\":\"Get the latest capture timestamp that was slashed on a subnetwork.\"},\"slash(bytes32,address,uint256,uint48,bytes)\":{\"notice\":\"Perform a slash using a subnetwork for a particular operator by a given amount using hints.\"},\"slashableStake(bytes32,address,uint48,bytes)\":{\"notice\":\"Get a slashable amount of a stake got at a given capture timestamp using hints.\"},\"staticDelegateCall(address,bytes)\":{\"notice\":\"Make a delegatecall from this contract to a given target contract with a particular data (always reverts with a return data).\"},\"vault()\":{\"notice\":\"Get the vault's address.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/contracts/slasher/Slasher.sol\":\"Slasher\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609\",\"dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardUpgradeable.sol\":{\"keccak256\":\"0xb44e086e941292cdc7f440de51478493894ef0b1aeccb0c4047445919f667f74\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://942dad22fbdc1669f025540ba63aa3ccfad5f8458fc5d4525b31ebf272e7af45\",\"dweb:/ipfs/Qmdo4X2M82aM3AMoW2kf2jhYkSCyC4T1pHNd6obdsDFnAB\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875\",\"dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0xe19a4d5f31d2861e7344e8e535e2feafb913d806d3e2b5fe7782741a2a7094fe\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4aed79c0fa6f0546ed02f2f683e8f77f0fd2ed7eb34d8bbf3d373c9a6d95b13c\",\"dweb:/ipfs/QmWqVz6UAVqmnWU5pqYPt1o6iDEZyPaBraAA3rKfTTSfYj\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/Checkpoints.sol\":{\"keccak256\":\"0xbdc5e074d7dd6678f67e92b1a51a20226801a407b0e1af3da367c5d1ff4519ad\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a36cca6b22fff3db16fc789ff6c60eea71d4b156065d4d0c83a0bc5e91a77a8b\",\"dweb:/ipfs/QmYN3exd5AemxjBrN8XMB1p5LbbE16uC3sjbYjwi8AjcGR\"]},\"lib/openzeppelin-contracts/contracts/utils/types/Time.sol\":{\"keccak256\":\"0xc7755af115020049e4140f224f9ee88d7e1799ffb0646f37bf0df24bf6213f58\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7f09bf94d5274334ec021f61a04659db303f31e60460e14b709c9bf187740111\",\"dweb:/ipfs/QmNvgomZYUwFAt4cZbPWAiTeSZQreGehY9BK5xyVJsUttb\"]},\"src/contracts/common/Entity.sol\":{\"keccak256\":\"0x3d61a932995b8443381f3950542d388223a2c26dd5d29a3274dea3baa7388bd7\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://7cdf5f03ca72fd263fd32ff59c8d88ddca911ae83896a287d10772c1bbe9b138\",\"dweb:/ipfs/QmbP84r5BWT1Rn9AYTntWSf3xUMTTCohTZJFhbBhDXFoHa\"]},\"src/contracts/common/StaticDelegateCallable.sol\":{\"keccak256\":\"0x350029aa8955eacaffffaeb58babc5c98e80ebc5c5db388ed17ee6465f4a9d90\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://eb392a8ee9050e0af606897df63e3404e3829e8b688b580663892f9664195764\",\"dweb:/ipfs/QmaXC8jqV8UrrAFkzXTEv2fJF56sy33HhLxAzaRZmUxuXD\"]},\"src/contracts/libraries/Checkpoints.sol\":{\"keccak256\":\"0xba90097c8bfe0a975499428b5f8ac5569483c7d92ccc28c12d70de416aae040c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://12f5d93ca94cd06d3147db68993165a58e17903ed53682560de61f3085ad4609\",\"dweb:/ipfs/QmePiuAqvXprMLmFZkGZeGjvGPAvsEDHfCDv7BoQhXu9xE\"]},\"src/contracts/libraries/Subnetwork.sol\":{\"keccak256\":\"0xf5ef5506fd66082b3c2e7f3df37529f5a8efad32ac62e7c8914bd63219190bfe\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba031a54ee0d0e9a270c2b9e18437f5668cfeb659cfd5fe0677459d7fcac2a56\",\"dweb:/ipfs/QmReP3H7qQ78tAfgLnJKsNEQNCQfF1X1Get38Ffd4kzq32\"]},\"src/contracts/slasher/BaseSlasher.sol\":{\"keccak256\":\"0x190e5dce196a061bdad42468c52e9f5b0eb7810cd7d0c19f04d6a2e94984f1b6\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://07ca08d0cd43c2fe5d54a5577f6bdd522ced410f5d3a52e764deaa7ba26b5f06\",\"dweb:/ipfs/QmZe3PiMKBQKWcwodaLupragdqxPjgS4v1qMC7RXau8hDF\"]},\"src/contracts/slasher/Slasher.sol\":{\"keccak256\":\"0xeee0cb25fad58d496fdcc641d852d11bae06e6ceed5230ae21150964175c494f\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://34aa27d21246a1bcee0b6a2afa8d9d613441156362430392f75d176511d58c61\",\"dweb:/ipfs/Qmf53Y3zdGfH4PU2zpSGeHZ8mMLzLXCtmkQrG5mnVJECQ3\"]},\"src/interfaces/common/IEntity.sol\":{\"keccak256\":\"0x8ef4b63d6da63489778ccd5f8d13ebdd527dd4b62730b2c616df5af7474d2d21\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a8d69576a9219d85c50816a18ad53a4d53cfcb27ed38b8cccc808dc2734b71b\",\"dweb:/ipfs/QmYVN3P4Q4REvBWJ97TbAcaxm3uyB2anV6NSGa6ZtSwcEv\"]},\"src/interfaces/common/IMigratableEntity.sol\":{\"keccak256\":\"0x8f5f2809f3afbe8ebfbb365dd7b57b4dd3b6f9943a6187eaf648d45895b8e3c4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ffe640537d539e7a4fde70d30d3e4c57f4ba9c2c25c450cea713aae38e8fd5c\",\"dweb:/ipfs/QmSUTGzvdcn1R1KB7tLThMRtESsfPbeXDhhhKWGtntzBds\"]},\"src/interfaces/common/IRegistry.sol\":{\"keccak256\":\"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014\",\"dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK\"]},\"src/interfaces/common/IStaticDelegateCallable.sol\":{\"keccak256\":\"0xa335d4e81b9071b7de66ef92b43ff20671d86516eb1be46fef29a3483cd3f5d5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d464b9db863c14c05547d2b23352f2e9b7b784799cf09f6bbc4906a2a74e3516\",\"dweb:/ipfs/QmUVWzFvJz7eEbDQKiFTTzwi7TEbjcs3VmwdM4kuptAKvi\"]},\"src/interfaces/delegator/IBaseDelegator.sol\":{\"keccak256\":\"0x96bb312f032e17accce3f8f80936d99468029d6b37c9ca74acdb4b026a0148ee\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2a66dcb5b7d1a6ef6a363431ea98ebd78bc4fdd3d7a134d9b542dc66e7d025c2\",\"dweb:/ipfs/QmRhTPLd2ZAyRHmJUFUcWKs9b3if49QY17LYZuRqWmghw8\"]},\"src/interfaces/service/INetworkMiddlewareService.sol\":{\"keccak256\":\"0x347afc7fcf1fbcdb96d66162070ef6c78aed27b3af2c1d5dfb4e511840631783\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2d90b8ceb495159e8e4e95d76447719dd166443f67dfabdd942846162071595c\",\"dweb:/ipfs/QmVVuiAWYx92T6vBvNMKZfTvraCf1fa16BsUKkdNs3hdHA\"]},\"src/interfaces/slasher/IBaseSlasher.sol\":{\"keccak256\":\"0x7c82528b445659c313ab77335c407b0b6efe5e79027187bb287f7bc74202b404\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0274c90aa5df1aa6bb470a6aab53992fb14fd7e5472c9430416505b29647d9cf\",\"dweb:/ipfs/QmckbmJLDetPemVzCnnGcKYWAZV2BRFXGDsjiaec8jkHxx\"]},\"src/interfaces/slasher/IBurner.sol\":{\"keccak256\":\"0xaf495dacc19ae0b3c787ba8021c5944927d70261536addd234d7dab146158c2b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9b3cc66251008be6ff9fc8b11ecc6831d5a9dca49a3fe9817fcd970253c1d447\",\"dweb:/ipfs/QmVxfb9ALGdF9W3SN2h41gQbUct6tawvu5bw4K89kFQ4HW\"]},\"src/interfaces/slasher/ISlasher.sol\":{\"keccak256\":\"0x34d226d67a3d5e16571f2fac91a8b9773551bcc41c88a96279669dd78d192625\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a6e8c1462ee4a1b0f745414be043c09012ea676613790aba004b06c85c980d1\",\"dweb:/ipfs/QmadjNEbHKRthtA1EeNy3Kg2sXpejH2KBeHm8QZtBPvXbJ\"]},\"src/interfaces/vault/IVault.sol\":{\"keccak256\":\"0xffee01d383cd4e1a5530c614bf4360c1ef070c288abec9da1eb531b51bc07235\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://04f0046cac285d8ec44ebbb1f79dc94fab4495767190cad8364fbc1fafaadfb9\",\"dweb:/ipfs/QmUawAunwzXfCyShWfhKeThAgKtqe51hmrxvrXvM772M2R\"]},\"src/interfaces/vault/IVaultStorage.sol\":{\"keccak256\":\"0x592626f13754194f83047135de19229c49390bd59e34659b1bb38be71d973a22\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://06a6a9dfddd05e580b32bebe2cff4f63ba26a653180676d58225dd30d9c89d3e\",\"dweb:/ipfs/QmdgzBeY6Sxo8mGtyBxtv1tM1c2kU6J6zjeRd7vuXm4DU6\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.25+commit.b61c2a91"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"vaultFactory","type":"address"},{"internalType":"address","name":"networkMiddlewareService","type":"address"},{"internalType":"address","name":"slasherFactory","type":"address"},{"internalType":"uint64","name":"entityType","type":"uint64"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"CheckpointUnorderedInsertion"},{"inputs":[],"type":"error","name":"InsufficientBurnerGas"},{"inputs":[],"type":"error","name":"InsufficientSlash"},{"inputs":[],"type":"error","name":"InvalidCaptureTimestamp"},{"inputs":[],"type":"error","name":"InvalidInitialization"},{"inputs":[],"type":"error","name":"NoBurner"},{"inputs":[],"type":"error","name":"NotInitialized"},{"inputs":[],"type":"error","name":"NotInitializing"},{"inputs":[],"type":"error","name":"NotNetworkMiddleware"},{"inputs":[],"type":"error","name":"NotVault"},{"inputs":[],"type":"error","name":"ReentrancyGuardReentrantCall"},{"inputs":[{"internalType":"uint8","name":"bits","type":"uint8"},{"internalType":"uint256","name":"value","type":"uint256"}],"type":"error","name":"SafeCastOverflowedUintDowncast"},{"inputs":[{"internalType":"uint64","name":"version","type":"uint64","indexed":false}],"type":"event","name":"Initialized","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32","indexed":true},{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"uint256","name":"slashedAmount","type":"uint256","indexed":false},{"internalType":"uint48","name":"captureTimestamp","type":"uint48","indexed":false}],"type":"event","name":"Slash","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"BURNER_GAS_LIMIT","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"BURNER_RESERVE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"FACTORY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"NETWORK_MIDDLEWARE_SERVICE","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"TYPE","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"VAULT_FACTORY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"cumulativeSlash","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint48","name":"timestamp","type":"uint48"},{"internalType":"bytes","name":"hint","type":"bytes"}],"stateMutability":"view","type":"function","name":"cumulativeSlashAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[],"stateMutability":"view","type":"function","name":"isBurnerHook","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"latestSlashedCaptureTimestamp","outputs":[{"internalType":"uint48","name":"value","type":"uint48"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint48","name":"captureTimestamp","type":"uint48"},{"internalType":"bytes","name":"hints","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"slash","outputs":[{"internalType":"uint256","name":"slashedAmount","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint48","name":"captureTimestamp","type":"uint48"},{"internalType":"bytes","name":"hints","type":"bytes"}],"stateMutability":"view","type":"function","name":"slashableStake","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"staticDelegateCall"},{"inputs":[],"stateMutability":"view","type":"function","name":"vault","outputs":[{"internalType":"address","name":"","type":"address"}]}],"devdoc":{"kind":"dev","methods":{"cumulativeSlash(bytes32,address)":{"params":{"operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"},"returns":{"_0":"cumulative slash amount"}},"cumulativeSlashAt(bytes32,address,uint48,bytes)":{"params":{"hint":"hint for the checkpoint index","operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)","timestamp":"time point to get the cumulative slash amount until (inclusively)"},"returns":{"_0":"cumulative slash amount until the given timestamp (inclusively)"}},"initialize(bytes)":{"params":{"data":"some data to use"}},"slash(bytes32,address,uint256,uint48,bytes)":{"details":"Only a network middleware can call this function.","params":{"amount":"maximum amount of the collateral to be slashed","captureTimestamp":"time point when the stake was captured","hints":"hints for checkpoints' indexes","operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"},"returns":{"slashedAmount":"virtual amount of the collateral slashed"}},"slashableStake(bytes32,address,uint48,bytes)":{"params":{"captureTimestamp":"time point to get the stake amount at","hints":"hints for the checkpoints' indexes","operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"},"returns":{"amount":"slashable amount of the stake"}},"staticDelegateCall(address,bytes)":{"details":"It allows to use this contract's storage on-chain.","params":{"data":"data to make a delegatecall with","target":"address of the contract to make a delegatecall to"}}},"version":1},"userdoc":{"kind":"user","methods":{"BURNER_GAS_LIMIT()":{"notice":"Get a gas limit for the burner."},"BURNER_RESERVE()":{"notice":"Get a reserve gas between the gas limit check and the burner's execution."},"FACTORY()":{"notice":"Get the factory's address."},"NETWORK_MIDDLEWARE_SERVICE()":{"notice":"Get the network middleware service's address."},"TYPE()":{"notice":"Get the entity's type."},"VAULT_FACTORY()":{"notice":"Get the vault factory's address."},"cumulativeSlash(bytes32,address)":{"notice":"Get a cumulative slash amount for an operator on a subnetwork."},"cumulativeSlashAt(bytes32,address,uint48,bytes)":{"notice":"Get a cumulative slash amount for an operator on a subnetwork until a given timestamp (inclusively) using a hint."},"initialize(bytes)":{"notice":"Initialize this entity contract by using a given data."},"isBurnerHook()":{"notice":"Get if the burner is needed to be called on a slashing."},"latestSlashedCaptureTimestamp(bytes32,address)":{"notice":"Get the latest capture timestamp that was slashed on a subnetwork."},"slash(bytes32,address,uint256,uint48,bytes)":{"notice":"Perform a slash using a subnetwork for a particular operator by a given amount using hints."},"slashableStake(bytes32,address,uint48,bytes)":{"notice":"Get a slashable amount of a stake got at a given capture timestamp using hints."},"staticDelegateCall(address,bytes)":{"notice":"Make a delegatecall from this contract to a given target contract with a particular data (always reverts with a return data)."},"vault()":{"notice":"Get the vault's address."}},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/contracts/slasher/Slasher.sol":"Slasher"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b","urls":["bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609","dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardUpgradeable.sol":{"keccak256":"0xb44e086e941292cdc7f440de51478493894ef0b1aeccb0c4047445919f667f74","urls":["bzz-raw://942dad22fbdc1669f025540ba63aa3ccfad5f8458fc5d4525b31ebf272e7af45","dweb:/ipfs/Qmdo4X2M82aM3AMoW2kf2jhYkSCyC4T1pHNd6obdsDFnAB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d","urls":["bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875","dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol":{"keccak256":"0xe19a4d5f31d2861e7344e8e535e2feafb913d806d3e2b5fe7782741a2a7094fe","urls":["bzz-raw://4aed79c0fa6f0546ed02f2f683e8f77f0fd2ed7eb34d8bbf3d373c9a6d95b13c","dweb:/ipfs/QmWqVz6UAVqmnWU5pqYPt1o6iDEZyPaBraAA3rKfTTSfYj"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/Checkpoints.sol":{"keccak256":"0xbdc5e074d7dd6678f67e92b1a51a20226801a407b0e1af3da367c5d1ff4519ad","urls":["bzz-raw://a36cca6b22fff3db16fc789ff6c60eea71d4b156065d4d0c83a0bc5e91a77a8b","dweb:/ipfs/QmYN3exd5AemxjBrN8XMB1p5LbbE16uC3sjbYjwi8AjcGR"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/types/Time.sol":{"keccak256":"0xc7755af115020049e4140f224f9ee88d7e1799ffb0646f37bf0df24bf6213f58","urls":["bzz-raw://7f09bf94d5274334ec021f61a04659db303f31e60460e14b709c9bf187740111","dweb:/ipfs/QmNvgomZYUwFAt4cZbPWAiTeSZQreGehY9BK5xyVJsUttb"],"license":"MIT"},"src/contracts/common/Entity.sol":{"keccak256":"0x3d61a932995b8443381f3950542d388223a2c26dd5d29a3274dea3baa7388bd7","urls":["bzz-raw://7cdf5f03ca72fd263fd32ff59c8d88ddca911ae83896a287d10772c1bbe9b138","dweb:/ipfs/QmbP84r5BWT1Rn9AYTntWSf3xUMTTCohTZJFhbBhDXFoHa"],"license":"BUSL-1.1"},"src/contracts/common/StaticDelegateCallable.sol":{"keccak256":"0x350029aa8955eacaffffaeb58babc5c98e80ebc5c5db388ed17ee6465f4a9d90","urls":["bzz-raw://eb392a8ee9050e0af606897df63e3404e3829e8b688b580663892f9664195764","dweb:/ipfs/QmaXC8jqV8UrrAFkzXTEv2fJF56sy33HhLxAzaRZmUxuXD"],"license":"BUSL-1.1"},"src/contracts/libraries/Checkpoints.sol":{"keccak256":"0xba90097c8bfe0a975499428b5f8ac5569483c7d92ccc28c12d70de416aae040c","urls":["bzz-raw://12f5d93ca94cd06d3147db68993165a58e17903ed53682560de61f3085ad4609","dweb:/ipfs/QmePiuAqvXprMLmFZkGZeGjvGPAvsEDHfCDv7BoQhXu9xE"],"license":"MIT"},"src/contracts/libraries/Subnetwork.sol":{"keccak256":"0xf5ef5506fd66082b3c2e7f3df37529f5a8efad32ac62e7c8914bd63219190bfe","urls":["bzz-raw://ba031a54ee0d0e9a270c2b9e18437f5668cfeb659cfd5fe0677459d7fcac2a56","dweb:/ipfs/QmReP3H7qQ78tAfgLnJKsNEQNCQfF1X1Get38Ffd4kzq32"],"license":"MIT"},"src/contracts/slasher/BaseSlasher.sol":{"keccak256":"0x190e5dce196a061bdad42468c52e9f5b0eb7810cd7d0c19f04d6a2e94984f1b6","urls":["bzz-raw://07ca08d0cd43c2fe5d54a5577f6bdd522ced410f5d3a52e764deaa7ba26b5f06","dweb:/ipfs/QmZe3PiMKBQKWcwodaLupragdqxPjgS4v1qMC7RXau8hDF"],"license":"BUSL-1.1"},"src/contracts/slasher/Slasher.sol":{"keccak256":"0xeee0cb25fad58d496fdcc641d852d11bae06e6ceed5230ae21150964175c494f","urls":["bzz-raw://34aa27d21246a1bcee0b6a2afa8d9d613441156362430392f75d176511d58c61","dweb:/ipfs/Qmf53Y3zdGfH4PU2zpSGeHZ8mMLzLXCtmkQrG5mnVJECQ3"],"license":"BUSL-1.1"},"src/interfaces/common/IEntity.sol":{"keccak256":"0x8ef4b63d6da63489778ccd5f8d13ebdd527dd4b62730b2c616df5af7474d2d21","urls":["bzz-raw://5a8d69576a9219d85c50816a18ad53a4d53cfcb27ed38b8cccc808dc2734b71b","dweb:/ipfs/QmYVN3P4Q4REvBWJ97TbAcaxm3uyB2anV6NSGa6ZtSwcEv"],"license":"MIT"},"src/interfaces/common/IMigratableEntity.sol":{"keccak256":"0x8f5f2809f3afbe8ebfbb365dd7b57b4dd3b6f9943a6187eaf648d45895b8e3c4","urls":["bzz-raw://0ffe640537d539e7a4fde70d30d3e4c57f4ba9c2c25c450cea713aae38e8fd5c","dweb:/ipfs/QmSUTGzvdcn1R1KB7tLThMRtESsfPbeXDhhhKWGtntzBds"],"license":"MIT"},"src/interfaces/common/IRegistry.sol":{"keccak256":"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb","urls":["bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014","dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK"],"license":"MIT"},"src/interfaces/common/IStaticDelegateCallable.sol":{"keccak256":"0xa335d4e81b9071b7de66ef92b43ff20671d86516eb1be46fef29a3483cd3f5d5","urls":["bzz-raw://d464b9db863c14c05547d2b23352f2e9b7b784799cf09f6bbc4906a2a74e3516","dweb:/ipfs/QmUVWzFvJz7eEbDQKiFTTzwi7TEbjcs3VmwdM4kuptAKvi"],"license":"MIT"},"src/interfaces/delegator/IBaseDelegator.sol":{"keccak256":"0x96bb312f032e17accce3f8f80936d99468029d6b37c9ca74acdb4b026a0148ee","urls":["bzz-raw://2a66dcb5b7d1a6ef6a363431ea98ebd78bc4fdd3d7a134d9b542dc66e7d025c2","dweb:/ipfs/QmRhTPLd2ZAyRHmJUFUcWKs9b3if49QY17LYZuRqWmghw8"],"license":"MIT"},"src/interfaces/service/INetworkMiddlewareService.sol":{"keccak256":"0x347afc7fcf1fbcdb96d66162070ef6c78aed27b3af2c1d5dfb4e511840631783","urls":["bzz-raw://2d90b8ceb495159e8e4e95d76447719dd166443f67dfabdd942846162071595c","dweb:/ipfs/QmVVuiAWYx92T6vBvNMKZfTvraCf1fa16BsUKkdNs3hdHA"],"license":"MIT"},"src/interfaces/slasher/IBaseSlasher.sol":{"keccak256":"0x7c82528b445659c313ab77335c407b0b6efe5e79027187bb287f7bc74202b404","urls":["bzz-raw://0274c90aa5df1aa6bb470a6aab53992fb14fd7e5472c9430416505b29647d9cf","dweb:/ipfs/QmckbmJLDetPemVzCnnGcKYWAZV2BRFXGDsjiaec8jkHxx"],"license":"MIT"},"src/interfaces/slasher/IBurner.sol":{"keccak256":"0xaf495dacc19ae0b3c787ba8021c5944927d70261536addd234d7dab146158c2b","urls":["bzz-raw://9b3cc66251008be6ff9fc8b11ecc6831d5a9dca49a3fe9817fcd970253c1d447","dweb:/ipfs/QmVxfb9ALGdF9W3SN2h41gQbUct6tawvu5bw4K89kFQ4HW"],"license":"MIT"},"src/interfaces/slasher/ISlasher.sol":{"keccak256":"0x34d226d67a3d5e16571f2fac91a8b9773551bcc41c88a96279669dd78d192625","urls":["bzz-raw://7a6e8c1462ee4a1b0f745414be043c09012ea676613790aba004b06c85c980d1","dweb:/ipfs/QmadjNEbHKRthtA1EeNy3Kg2sXpejH2KBeHm8QZtBPvXbJ"],"license":"MIT"},"src/interfaces/vault/IVault.sol":{"keccak256":"0xffee01d383cd4e1a5530c614bf4360c1ef070c288abec9da1eb531b51bc07235","urls":["bzz-raw://04f0046cac285d8ec44ebbb1f79dc94fab4495767190cad8364fbc1fafaadfb9","dweb:/ipfs/QmUawAunwzXfCyShWfhKeThAgKtqe51hmrxvrXvM772M2R"],"license":"MIT"},"src/interfaces/vault/IVaultStorage.sol":{"keccak256":"0x592626f13754194f83047135de19229c49390bd59e34659b1bb38be71d973a22","urls":["bzz-raw://06a6a9dfddd05e580b32bebe2cff4f63ba26a653180676d58225dd30d9c89d3e","dweb:/ipfs/QmdgzBeY6Sxo8mGtyBxtv1tM1c2kU6J6zjeRd7vuXm4DU6"],"license":"MIT"}},"version":1},"id":98} \ No newline at end of file +{"abi":[{"type":"constructor","inputs":[{"name":"vaultFactory","type":"address","internalType":"address"},{"name":"networkMiddlewareService","type":"address","internalType":"address"},{"name":"slasherFactory","type":"address","internalType":"address"},{"name":"entityType","type":"uint64","internalType":"uint64"}],"stateMutability":"nonpayable"},{"type":"function","name":"BURNER_GAS_LIMIT","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"BURNER_RESERVE","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"FACTORY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"NETWORK_MIDDLEWARE_SERVICE","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"TYPE","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"VAULT_FACTORY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"cumulativeSlash","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"cumulativeSlashAt","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"timestamp","type":"uint48","internalType":"uint48"},{"name":"hint","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"initialize","inputs":[{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"isBurnerHook","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"latestSlashedCaptureTimestamp","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"value","type":"uint48","internalType":"uint48"}],"stateMutability":"view"},{"type":"function","name":"slash","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"captureTimestamp","type":"uint48","internalType":"uint48"},{"name":"hints","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"slashedAmount","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"slashableStake","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"captureTimestamp","type":"uint48","internalType":"uint48"},{"name":"hints","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"staticDelegateCall","inputs":[{"name":"target","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"vault","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"Slash","inputs":[{"name":"subnetwork","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"slashedAmount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"captureTimestamp","type":"uint48","indexed":false,"internalType":"uint48"}],"anonymous":false},{"type":"error","name":"CheckpointUnorderedInsertion","inputs":[]},{"type":"error","name":"InsufficientBurnerGas","inputs":[]},{"type":"error","name":"InsufficientSlash","inputs":[]},{"type":"error","name":"InvalidCaptureTimestamp","inputs":[]},{"type":"error","name":"InvalidInitialization","inputs":[]},{"type":"error","name":"NoBurner","inputs":[]},{"type":"error","name":"NotInitialized","inputs":[]},{"type":"error","name":"NotInitializing","inputs":[]},{"type":"error","name":"NotNetworkMiddleware","inputs":[]},{"type":"error","name":"NotVault","inputs":[]},{"type":"error","name":"ReentrancyGuardReentrantCall","inputs":[]},{"type":"error","name":"SafeCastOverflowedUintDowncast","inputs":[{"name":"bits","type":"uint8","internalType":"uint8"},{"name":"value","type":"uint256","internalType":"uint256"}]}],"bytecode":{"object":"0x6101003461015857601f611ecf38819003918201601f1916830192916001600160401b03918285118486101761015c5781608092859260409788528339810103126101585761004d82610170565b9061005a60208401610170565b926060610068868301610170565b910151918083168303610158577ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a009081549060ff82891c16610147578080831603610103575b50505060805260a05260c05260e05251611d4a908161018582396080518161044a015260a051818181610850015261119a015260c0518181816102fd01526114ca015260e0518181816101fc01526104060152f35b6001600160401b0319909116811790915585519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a15f80806100ae565b875163f92ee8a960e01b8152600490fd5b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b51906001600160a01b03821682036101585756fe60806040526004361015610011575f80fd5b5f3560e01c8063021a815614610104578063103f2907146100ff5780631a2be2c4146100fa578063267de1f3146100f55780632964f8dc146100f05780632c9d45b3146100eb5780632dd31000146100e657806334d098ea146100e1578063439fab91146100dc5780639f86fd85146100d7578063aa8e6489146100d2578063aab3595f146100cd578063bb24fe8a146100c8578063d5c24e1a146100c35763fbfa77cf146100be575f80fd5b610891565b610874565b610831565b61080c565b6107ce565b6105d5565b61049d565b610479565b610435565b6103f1565b6103d5565b610380565b61032c565b6102e8565b61015b565b6001600160a01b0381160361011a57565b5f80fd5b65ffffffffffff81160361011a57565b9181601f8401121561011a578235916001600160401b03831161011a576020838186019501011161011a57565b3461011a5760a036600319011261011a5760043560243561017b81610109565b6064356101878161011e565b6084356001600160401b03811161011a576101a690369060040161012e565b917f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0060028154146102cc5760029055604051635daf681960e11b8152606086901c60048201526001600160a01b036020826024817f000000000000000000000000000000000000000000000000000000000000000085165afa9182156102c7575f92610296575b50339116036102845761028094610247946044359161096a565b61027060017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055565b6040519081529081906020820190565b0390f35b60405163227bf64d60e01b8152600490fd5b6102b991925060203d6020116102c0575b6102b181836106f1565b810190610bba565b905f61022d565b503d6102a7565b61092e565b604051633ee5aeb560e01b8152600490fd5b5f91031261011a57565b3461011a575f36600319011261011a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461011a57604036600319011261011a57602061037861037360243561035181610109565b6004355f526002845260405f209060018060a01b03165f5260205260405f2090565b6113e9565b604051908152f35b3461011a57604036600319011261011a57602065ffffffffffff6103cb6024356103a981610109565b6004355f526001845260405f209060018060a01b03165f5260205260405f2090565b5416604051908152f35b3461011a575f36600319011261011a576020604051614e208152f35b3461011a575f36600319011261011a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461011a575f36600319011261011a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461011a575f36600319011261011a57602060ff5f5460a01c166040519015158152f35b3461011a57602036600319011261011a576001600160401b0360043581811161011a576104ce90369060040161012e565b5f80516020611cf5833981519152549260ff8460401c16159316801590816105cd575b60011490816105c3575b1590816105ba575b506105a8575f80516020611cf5833981519152805467ffffffffffffffff19166001179055610536918361058457611493565b61053c57005b5f80516020611cf5833981519152805460ff60401b19169055604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a1005b5f80516020611cf5833981519152805460ff60401b1916600160401b179055611493565b60405163f92ee8a960e01b8152600490fd5b9050155f610503565b303b1591506104fb565b8491506104f1565b3461011a5760408060031936011261011a576004356105f381610109565b602435906001600160401b03821161011a575f809161061961067d94369060040161012e565b908187519283928337810184815203915af43d156106855761066f3d61063e81610721565b9061064b865192836106f1565b81523d5f602083013e5b845194859315156020850152808401526060830190610b6a565b03601f1981018352826106f1565b805190602001fd5b61066f6060610655565b634e487b7160e01b5f52604160045260245ffd5b602081019081106001600160401b038211176106be57604052565b61068f565b604081019081106001600160401b038211176106be57604052565b6001600160401b0381116106be57604052565b90601f801991011681019081106001600160401b038211176106be57604052565b6040519061071f826106c3565b565b6001600160401b0381116106be57601f01601f191660200190565b81601f8201121561011a5780359061075382610721565b9261076160405194856106f1565b8284526020838301011161011a57815f926020809301838601378301015290565b90608060031983011261011a576004359160243561079f81610109565b916044356107ac8161011e565b91606435906001600160401b03821161011a576107cb9160040161073c565b90565b3461011a5760206103786108076107e436610782565b939190925f526002865260405f209060018060a01b03165f5260205260405f2090565b61162d565b3461011a57602061082861081f36610782565b92919091610cfa565b50604051908152f35b3461011a575f36600319011261011a5760206040516001600160401b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461011a575f36600319011261011a576020604051620249f08152f35b3461011a575f36600319011261011a575f546040516001600160a01b039091168152602090f35b604051906108c5826106a3565b60608252565b9060208282031261011a5781356001600160401b039283821161011a57019060208282031261011a5760405192610901846106a3565b823590811161011a57610914920161073c565b815290565b9081602091031261011a57516107cb8161011e565b6040513d5f823e3d90fd5b634e487b7160e01b5f52601160045260245ffd5b65ffffffffffff918216908216039190821161096557565b610939565b929395949190956109796108b8565b9280610b54575b505061098b42611705565b5f546004906020906109b3906109a7906001600160a01b031681565b6001600160a01b031690565b6040516327f843b560e11b815292839182905afa80156102c7576109ed926109e2925f92610b23575b5061094d565b65ffffffffffff1690565b65ffffffffffff8516908110908115610b0d575b50610afb57610a16610a1f9251858886610cfa565b92908092610f2a565b958615610ae957610aa461066f610a9b610ae4947fe0cbbe1f1e6fd806ca87036fafcebaf7ab5247474a3b20e1c37bb50122c3a88496610a608a878b610f3c565b610a6b8c878b610fca565b610a73610712565b9182526020820152604051928391602083019190916020806040830194805184520151910152565b86898488611136565b610aae858861123f565b610aba858883876112c4565b6040805188815265ffffffffffff90961660208701526001600160a01b0390911694918291820190565b0390a3565b60405163167f871760e31b8152600490fd5b604051631357ac9160e11b8152600490fd5b9050610b1b6109e242611705565b11155f610a01565b610b4691925060203d602011610b4d575b610b3e81836106f1565b810190610919565b905f6109dc565b503d610b34565b610b629293508101906108cb565b905f80610980565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b5f9081526002602090815260408083206001600160a01b039094168352929052206107cb92919061162d565b9081602091031261011a57516107cb81610109565b60405190610bdc826106c3565b60606020838281520152565b81601f8201121561011a57805190610bff82610721565b92610c0d60405194856106f1565b8284526020838301011161011a57815f9260208093018386015e8301015290565b9060208282031261011a5781516001600160401b039283821161011a57019060408282031261011a5760405192610c64846106c3565b825181811161011a5782610c79918501610be8565b8452602083015190811161011a57610c919201610be8565b602082015290565b9081602091031261011a575190565b9081526001600160a01b03909116602082015265ffffffffffff90911660408201526080606082018190526107cb92910190610b6a565b5f1981019190821161096557565b9190820391821161096557565b92610d03610bcf565b90805180610f10575b5050610d1742611705565b5f54909490610d30906109a7906001600160a01b031681565b93604051956327f843b560e11b875260209687816004818a5afa80156102c757610d64926109e2925f92610ef8575061094d565b65ffffffffffff8216908110908115610ee1575b8115610eb0575b50610ea4578560049560405196878092630ce9b79360e41b82525afa9485156102c757610dd19587915f91610e87575b50845190604051808099819463e02f693760e01b8352878b8a60048601610ca8565b03916001600160a01b03165afa9384156102c757610e43955f95610e46575b5092610e388593610e3e93610e3896869a610e2f61037383610e1a875f52600260205260405f2090565b9060018060a01b03165f5260205260405f2090565b95015192610b8e565b90610ced565b610f2a565b91565b610e3e929550610e38949193610e74610e38928a3d8c11610e80575b610e6c81836106f1565b810190610c99565b96935093919450610df0565b503d610e62565b610e9e9150823d84116102c0576102b181836106f1565b5f610daf565b5050505050505f905f90565b9050610eda6109e2610ece87610e1a875f52600160205260405f2090565b5465ffffffffffff1690565b115f610d7f565b9050610eef6109e242611705565b81101590610d78565b610b469192508a3d8c11610b4d57610b3e81836106f1565b610f239250602080918301019101610c2e565b5f80610d0c565b9080821015610f37575090565b905090565b919091805f52600160205265ffffffffffff80610f6c8560405f209060018060a01b03165f5260205260405f2090565b541690831611610f7b57505050565b61071f92610fa3915f52600160205260405f209060018060a01b03165f5260205260405f2090565b9065ffffffffffff1665ffffffffffff19825416179055565b906001820180921161096557565b9190825f526002602052611022610373610ff78360405f209060018060a01b03165f5260205260405f2090565b9261100142611705565b955f52600260205260405f209060018060a01b03165f5260205260405f2090565b9182018092116109655760018101908154156110c6575b61104281611961565b509490835495611051846113e9565b50816110b1575b50156110905750505f1983019283116109655761071f92611078916113c0565b90919082549060031b91821b915f19901b1916179055565b61071f946110aa926001600160d01b039091169190611a38565b5050611764565b65ffffffffffff83811691161490505f611058565b6110cf82611737565b611039565b606060206107cb938184526001600160401b03815116828501520151916040808201520190610b6a565b919360a0936107cb969565ffffffffffff938552600180871b0316602085015260408401521660608201528160808201520190610b6a565b929390600460206111536109a76109a75f5460018060a01b031690565b604051630ce9b79360e41b815292839182905afa9081156102c75761066f916111d1915f91611220575b506001600160a01b031693611190610712565b6001600160401b037f0000000000000000000000000000000000000000000000000000000000000000168152906020820152604051928391602083016110d4565b823b1561011a575f946111fc86926040519889978896879563724ab0f760e11b8752600487016110fe565b03925af180156102c75761120d5750565b8061121a61071f926106de565b806102de565b611239915060203d6020116102c0576102b181836106f1565b5f61117d565b5f8054604051631c9e38c760e21b8152600481019390935265ffffffffffff9390931660248301529091602091839160449183916001600160a01b03165af180156102c75761128b5750565b6112a39060203d602011610e8057610e6c81836106f1565b50565b81156112b0570490565b634e487b7160e01b5f52601260045260245ffd5b92905f549060ff8260a01c166112dc575b5050505050565b6040516313c085b760e11b815291602090839060049082906001600160a01b03165afa9182156102c7575f92611399575b5060405163065c1e0360e01b6020820190815260248201969096526001600160a01b039091166044820152606481019390935265ffffffffffff90911660848301526113668260a481015b03601f1981018452836106f1565b6202a15c5a10611387575f928380935192620249f0f1505f808080806112d5565b604051632153f33560e21b8152600490fd5b61136692506113b96113589160203d6020116102c0576102b181836106f1565b925061130d565b80548210156113d5575f5260205f2001905f90565b634e487b7160e01b5f52603260045260245ffd5b80548061141e57505f5b6001600160d01b0381161561141857600161140e92016113c0565b90549060031b1c90565b50505f90565b5f1990808281011161096557825f5260205f2001015460301c6113f3565b91909160408184031261011a57803561145481610109565b9260208201356001600160401b03811161011a576107cb920161073c565b5190811515820361011a57565b9081602091031261011a576107cb90611472565b61149f9181019061143c565b6040516302910f8b60e31b81526001600160a01b0392831660048201819052929160209182816024817f000000000000000000000000000000000000000000000000000000000000000088165afa9081156102c7575f916115cf575b50156115bd578161152f600492611510611787565b5f80546001600160a01b0319166001600160a01b0389161790556117bd565b94604051928380926313c085b760e11b82525afa9182156102c7575f926115a0575b5050161580611596575b611584575161071f9015155f805460ff60a01b191691151560a01b60ff60a01b16919091179055565b60405163d2420f5960e01b8152600490fd5b508051151561155b565b6115b69250803d106102c0576102b181836106f1565b5f80611551565b6040516362df054560e01b8152600490fd5b6115ef9150833d85116115f5575b6115e781836106f1565b81019061147f565b5f6114fb565b503d6115dd565b9081602091031261011a575163ffffffff8116810361011a5790565b90600163ffffffff8093160191821161096557565b918051156116fb5780602080611648935183010191016115fc565b9161165383826118d5565b92611664845165ffffffffffff1690565b9065ffffffffffff80851692168281146116ef578211918261169a575b5050611691576107cb9250611805565b50506020015190565b9091506116a78354610cdf565b63ffffffff8316149182156116c0575b50505f80611681565b6116e79192506116db6116d56109e292611618565b856118d5565b5165ffffffffffff1690565b115f806116b7565b50505050506020015190565b506107cb91611805565b65ffffffffffff90818111611718571690565b604490604051906306dfcc6560e41b8252603060048301526024820152fd5b8054600160401b8110156106be57611754916001820181556113c0565b8154905f199060031b1b19169055565b90815491600160401b8310156106be578261107891600161071f950181556113c0565b61178f6119b0565b6117976119b0565b60017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055565b5f6040516117ca816106a3565b5260208180518101031261011a576020906040516117e7816106a3565b6117ff6040519384936117f9856106a3565b01611472565b82525290565b908154905f82916005841161186f575b611820935084611c95565b8061184857505f905b6001600160d01b03821615611418576107cb91600161140e92016113c0565b61186261185761186992610cdf565b835f5260205f200190565b5460301c90565b90611829565b919261187a81611b57565b81039081116109655761182093855f5265ffffffffffff808360205f20015416908516105f146118ab575091611815565b9291506118b790610fbc565b90611815565b604051906118ca826106c3565b5f6020838281520152565b906118fe6118f861191f926118e86118bd565b506118f16118bd565b50846113c0565b5061193d565b91600165ffffffffffff845116936020828060d01b039101511691016113c0565b9054906040519261192f846106c3565b835260031b1c602082015290565b9060405161194a816106c3565b915465ffffffffffff8116835260301c6020830152565b8054806119725750505f905f905f90565b5f199080828101116109655761198f925f5260205f20010161193d565b9065ffffffffffff82511691602060018060d01b0391015116906001929190565b60ff5f80516020611cf58339815191525460401c16156119cc57565b604051631afcd79f60e31b8152600490fd5b8054600160401b8110156106be576119fb916001820181556113c0565b611a2557815160209092015160301b65ffffffffffff191665ffffffffffff909216919091179055565b634e487b7160e01b5f525f60045260245ffd5b805492939291908215611b2e57611a59611a5461185785610cdf565b61193d565b90611a6a825165ffffffffffff1690565b65ffffffffffff84811691168110611b1c57611ae0946020948892611a986109e2875165ffffffffffff1690565b03611ae45750611ad292611aae611ab992610cdf565b905f5260205f200190565b9065ffffffffffff82549181199060301b169116179055565b01516001600160d01b031690565b9190565b915050611b1791611b04611af6610712565b65ffffffffffff9093168352565b6001600160d01b038816828601526119de565b611ad2565b604051632520601d60e01b8152600490fd5b611b529250611b3e611af6610712565b6001600160d01b03851660208301526119de565b5f9190565b8015611c905780611c29611c22611c18611c0e611c04611bfa611bf0611be660016107cb9a5f908b60801c80611c84575b508060401c80611c77575b508060201c80611c6a575b508060101c80611c5d575b508060081c80611c50575b508060041c80611c43575b508060021c80611c36575b50821c611c2f575b811c1b611bdf818b6112a6565b0160011c90565b611bdf818a6112a6565b611bdf81896112a6565b611bdf81886112a6565b611bdf81876112a6565b611bdf81866112a6565b611bdf81856112a6565b80926112a6565b90610f2a565b8101611bd2565b600291509101905f611bca565b600491509101905f611bbf565b600891509101905f611bb4565b601091509101905f611ba9565b602091509101905f611b9e565b604091509101905f611b93565b9150506080905f611b88565b505f90565b91905b838210611ca55750505090565b9091928083169080841860011c820180921161096557845f5265ffffffffffff808360205f20015416908416105f14611ce25750925b9190611c98565b939250611cee90610fbc565b91611cdb56fef0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a26469706673582212201cb882c312b55bd78905b97324f1dbe4c6f9bc2ebd77cd8f2ad2c6521b0531d864736f6c63430008190033","sourceMap":"445:2048:93:-:0;;;;;;;;;;;;;-1:-1:-1;;445:2048:93;;;;;-1:-1:-1;;;;;445:2048:93;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;8837:64:25;445:2048:93;;;;;;;;;7896:76:25;;445:2048:93;;;;7985:34:25;7981:146;;-1:-1:-1;525:17:69;;;445:2048:93;525:17:69;552:12;;2353:28:92;;2391:53;;445:2048:93;;;;;;;;;;;;;552:12:69;445:2048:93;;;;;;;;;;2353:28:92;445:2048:93;;;;;;;;;;2391:53:92;445:2048:93;;;;;;;;;;;7981:146:25;-1:-1:-1;;;;;;445:2048:93;;;;;;;;;;;;;8087:29:25;;445:2048:93;;8087:29:25;7981:146;;;;;7896:76;445:2048:93;;-1:-1:-1;;;7938:23:25;;;;;445:2048:93;-1:-1:-1;445:2048:93;;;;;;-1:-1:-1;445:2048:93;;;;;-1:-1:-1;445:2048:93;;;;-1:-1:-1;;;;;445:2048:93;;;;;;:::o","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361015610011575f80fd5b5f3560e01c8063021a815614610104578063103f2907146100ff5780631a2be2c4146100fa578063267de1f3146100f55780632964f8dc146100f05780632c9d45b3146100eb5780632dd31000146100e657806334d098ea146100e1578063439fab91146100dc5780639f86fd85146100d7578063aa8e6489146100d2578063aab3595f146100cd578063bb24fe8a146100c8578063d5c24e1a146100c35763fbfa77cf146100be575f80fd5b610891565b610874565b610831565b61080c565b6107ce565b6105d5565b61049d565b610479565b610435565b6103f1565b6103d5565b610380565b61032c565b6102e8565b61015b565b6001600160a01b0381160361011a57565b5f80fd5b65ffffffffffff81160361011a57565b9181601f8401121561011a578235916001600160401b03831161011a576020838186019501011161011a57565b3461011a5760a036600319011261011a5760043560243561017b81610109565b6064356101878161011e565b6084356001600160401b03811161011a576101a690369060040161012e565b917f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0060028154146102cc5760029055604051635daf681960e11b8152606086901c60048201526001600160a01b036020826024817f000000000000000000000000000000000000000000000000000000000000000085165afa9182156102c7575f92610296575b50339116036102845761028094610247946044359161096a565b61027060017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055565b6040519081529081906020820190565b0390f35b60405163227bf64d60e01b8152600490fd5b6102b991925060203d6020116102c0575b6102b181836106f1565b810190610bba565b905f61022d565b503d6102a7565b61092e565b604051633ee5aeb560e01b8152600490fd5b5f91031261011a57565b3461011a575f36600319011261011a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461011a57604036600319011261011a57602061037861037360243561035181610109565b6004355f526002845260405f209060018060a01b03165f5260205260405f2090565b6113e9565b604051908152f35b3461011a57604036600319011261011a57602065ffffffffffff6103cb6024356103a981610109565b6004355f526001845260405f209060018060a01b03165f5260205260405f2090565b5416604051908152f35b3461011a575f36600319011261011a576020604051614e208152f35b3461011a575f36600319011261011a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461011a575f36600319011261011a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461011a575f36600319011261011a57602060ff5f5460a01c166040519015158152f35b3461011a57602036600319011261011a576001600160401b0360043581811161011a576104ce90369060040161012e565b5f80516020611cf5833981519152549260ff8460401c16159316801590816105cd575b60011490816105c3575b1590816105ba575b506105a8575f80516020611cf5833981519152805467ffffffffffffffff19166001179055610536918361058457611493565b61053c57005b5f80516020611cf5833981519152805460ff60401b19169055604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a1005b5f80516020611cf5833981519152805460ff60401b1916600160401b179055611493565b60405163f92ee8a960e01b8152600490fd5b9050155f610503565b303b1591506104fb565b8491506104f1565b3461011a5760408060031936011261011a576004356105f381610109565b602435906001600160401b03821161011a575f809161061961067d94369060040161012e565b908187519283928337810184815203915af43d156106855761066f3d61063e81610721565b9061064b865192836106f1565b81523d5f602083013e5b845194859315156020850152808401526060830190610b6a565b03601f1981018352826106f1565b805190602001fd5b61066f6060610655565b634e487b7160e01b5f52604160045260245ffd5b602081019081106001600160401b038211176106be57604052565b61068f565b604081019081106001600160401b038211176106be57604052565b6001600160401b0381116106be57604052565b90601f801991011681019081106001600160401b038211176106be57604052565b6040519061071f826106c3565b565b6001600160401b0381116106be57601f01601f191660200190565b81601f8201121561011a5780359061075382610721565b9261076160405194856106f1565b8284526020838301011161011a57815f926020809301838601378301015290565b90608060031983011261011a576004359160243561079f81610109565b916044356107ac8161011e565b91606435906001600160401b03821161011a576107cb9160040161073c565b90565b3461011a5760206103786108076107e436610782565b939190925f526002865260405f209060018060a01b03165f5260205260405f2090565b61162d565b3461011a57602061082861081f36610782565b92919091610cfa565b50604051908152f35b3461011a575f36600319011261011a5760206040516001600160401b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461011a575f36600319011261011a576020604051620249f08152f35b3461011a575f36600319011261011a575f546040516001600160a01b039091168152602090f35b604051906108c5826106a3565b60608252565b9060208282031261011a5781356001600160401b039283821161011a57019060208282031261011a5760405192610901846106a3565b823590811161011a57610914920161073c565b815290565b9081602091031261011a57516107cb8161011e565b6040513d5f823e3d90fd5b634e487b7160e01b5f52601160045260245ffd5b65ffffffffffff918216908216039190821161096557565b610939565b929395949190956109796108b8565b9280610b54575b505061098b42611705565b5f546004906020906109b3906109a7906001600160a01b031681565b6001600160a01b031690565b6040516327f843b560e11b815292839182905afa80156102c7576109ed926109e2925f92610b23575b5061094d565b65ffffffffffff1690565b65ffffffffffff8516908110908115610b0d575b50610afb57610a16610a1f9251858886610cfa565b92908092610f2a565b958615610ae957610aa461066f610a9b610ae4947fe0cbbe1f1e6fd806ca87036fafcebaf7ab5247474a3b20e1c37bb50122c3a88496610a608a878b610f3c565b610a6b8c878b610fca565b610a73610712565b9182526020820152604051928391602083019190916020806040830194805184520151910152565b86898488611136565b610aae858861123f565b610aba858883876112c4565b6040805188815265ffffffffffff90961660208701526001600160a01b0390911694918291820190565b0390a3565b60405163167f871760e31b8152600490fd5b604051631357ac9160e11b8152600490fd5b9050610b1b6109e242611705565b11155f610a01565b610b4691925060203d602011610b4d575b610b3e81836106f1565b810190610919565b905f6109dc565b503d610b34565b610b629293508101906108cb565b905f80610980565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b5f9081526002602090815260408083206001600160a01b039094168352929052206107cb92919061162d565b9081602091031261011a57516107cb81610109565b60405190610bdc826106c3565b60606020838281520152565b81601f8201121561011a57805190610bff82610721565b92610c0d60405194856106f1565b8284526020838301011161011a57815f9260208093018386015e8301015290565b9060208282031261011a5781516001600160401b039283821161011a57019060408282031261011a5760405192610c64846106c3565b825181811161011a5782610c79918501610be8565b8452602083015190811161011a57610c919201610be8565b602082015290565b9081602091031261011a575190565b9081526001600160a01b03909116602082015265ffffffffffff90911660408201526080606082018190526107cb92910190610b6a565b5f1981019190821161096557565b9190820391821161096557565b92610d03610bcf565b90805180610f10575b5050610d1742611705565b5f54909490610d30906109a7906001600160a01b031681565b93604051956327f843b560e11b875260209687816004818a5afa80156102c757610d64926109e2925f92610ef8575061094d565b65ffffffffffff8216908110908115610ee1575b8115610eb0575b50610ea4578560049560405196878092630ce9b79360e41b82525afa9485156102c757610dd19587915f91610e87575b50845190604051808099819463e02f693760e01b8352878b8a60048601610ca8565b03916001600160a01b03165afa9384156102c757610e43955f95610e46575b5092610e388593610e3e93610e3896869a610e2f61037383610e1a875f52600260205260405f2090565b9060018060a01b03165f5260205260405f2090565b95015192610b8e565b90610ced565b610f2a565b91565b610e3e929550610e38949193610e74610e38928a3d8c11610e80575b610e6c81836106f1565b810190610c99565b96935093919450610df0565b503d610e62565b610e9e9150823d84116102c0576102b181836106f1565b5f610daf565b5050505050505f905f90565b9050610eda6109e2610ece87610e1a875f52600160205260405f2090565b5465ffffffffffff1690565b115f610d7f565b9050610eef6109e242611705565b81101590610d78565b610b469192508a3d8c11610b4d57610b3e81836106f1565b610f239250602080918301019101610c2e565b5f80610d0c565b9080821015610f37575090565b905090565b919091805f52600160205265ffffffffffff80610f6c8560405f209060018060a01b03165f5260205260405f2090565b541690831611610f7b57505050565b61071f92610fa3915f52600160205260405f209060018060a01b03165f5260205260405f2090565b9065ffffffffffff1665ffffffffffff19825416179055565b906001820180921161096557565b9190825f526002602052611022610373610ff78360405f209060018060a01b03165f5260205260405f2090565b9261100142611705565b955f52600260205260405f209060018060a01b03165f5260205260405f2090565b9182018092116109655760018101908154156110c6575b61104281611961565b509490835495611051846113e9565b50816110b1575b50156110905750505f1983019283116109655761071f92611078916113c0565b90919082549060031b91821b915f19901b1916179055565b61071f946110aa926001600160d01b039091169190611a38565b5050611764565b65ffffffffffff83811691161490505f611058565b6110cf82611737565b611039565b606060206107cb938184526001600160401b03815116828501520151916040808201520190610b6a565b919360a0936107cb969565ffffffffffff938552600180871b0316602085015260408401521660608201528160808201520190610b6a565b929390600460206111536109a76109a75f5460018060a01b031690565b604051630ce9b79360e41b815292839182905afa9081156102c75761066f916111d1915f91611220575b506001600160a01b031693611190610712565b6001600160401b037f0000000000000000000000000000000000000000000000000000000000000000168152906020820152604051928391602083016110d4565b823b1561011a575f946111fc86926040519889978896879563724ab0f760e11b8752600487016110fe565b03925af180156102c75761120d5750565b8061121a61071f926106de565b806102de565b611239915060203d6020116102c0576102b181836106f1565b5f61117d565b5f8054604051631c9e38c760e21b8152600481019390935265ffffffffffff9390931660248301529091602091839160449183916001600160a01b03165af180156102c75761128b5750565b6112a39060203d602011610e8057610e6c81836106f1565b50565b81156112b0570490565b634e487b7160e01b5f52601260045260245ffd5b92905f549060ff8260a01c166112dc575b5050505050565b6040516313c085b760e11b815291602090839060049082906001600160a01b03165afa9182156102c7575f92611399575b5060405163065c1e0360e01b6020820190815260248201969096526001600160a01b039091166044820152606481019390935265ffffffffffff90911660848301526113668260a481015b03601f1981018452836106f1565b6202a15c5a10611387575f928380935192620249f0f1505f808080806112d5565b604051632153f33560e21b8152600490fd5b61136692506113b96113589160203d6020116102c0576102b181836106f1565b925061130d565b80548210156113d5575f5260205f2001905f90565b634e487b7160e01b5f52603260045260245ffd5b80548061141e57505f5b6001600160d01b0381161561141857600161140e92016113c0565b90549060031b1c90565b50505f90565b5f1990808281011161096557825f5260205f2001015460301c6113f3565b91909160408184031261011a57803561145481610109565b9260208201356001600160401b03811161011a576107cb920161073c565b5190811515820361011a57565b9081602091031261011a576107cb90611472565b61149f9181019061143c565b6040516302910f8b60e31b81526001600160a01b0392831660048201819052929160209182816024817f000000000000000000000000000000000000000000000000000000000000000088165afa9081156102c7575f916115cf575b50156115bd578161152f600492611510611787565b5f80546001600160a01b0319166001600160a01b0389161790556117bd565b94604051928380926313c085b760e11b82525afa9182156102c7575f926115a0575b5050161580611596575b611584575161071f9015155f805460ff60a01b191691151560a01b60ff60a01b16919091179055565b60405163d2420f5960e01b8152600490fd5b508051151561155b565b6115b69250803d106102c0576102b181836106f1565b5f80611551565b6040516362df054560e01b8152600490fd5b6115ef9150833d85116115f5575b6115e781836106f1565b81019061147f565b5f6114fb565b503d6115dd565b9081602091031261011a575163ffffffff8116810361011a5790565b90600163ffffffff8093160191821161096557565b918051156116fb5780602080611648935183010191016115fc565b9161165383826118d5565b92611664845165ffffffffffff1690565b9065ffffffffffff80851692168281146116ef578211918261169a575b5050611691576107cb9250611805565b50506020015190565b9091506116a78354610cdf565b63ffffffff8316149182156116c0575b50505f80611681565b6116e79192506116db6116d56109e292611618565b856118d5565b5165ffffffffffff1690565b115f806116b7565b50505050506020015190565b506107cb91611805565b65ffffffffffff90818111611718571690565b604490604051906306dfcc6560e41b8252603060048301526024820152fd5b8054600160401b8110156106be57611754916001820181556113c0565b8154905f199060031b1b19169055565b90815491600160401b8310156106be578261107891600161071f950181556113c0565b61178f6119b0565b6117976119b0565b60017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055565b5f6040516117ca816106a3565b5260208180518101031261011a576020906040516117e7816106a3565b6117ff6040519384936117f9856106a3565b01611472565b82525290565b908154905f82916005841161186f575b611820935084611c95565b8061184857505f905b6001600160d01b03821615611418576107cb91600161140e92016113c0565b61186261185761186992610cdf565b835f5260205f200190565b5460301c90565b90611829565b919261187a81611b57565b81039081116109655761182093855f5265ffffffffffff808360205f20015416908516105f146118ab575091611815565b9291506118b790610fbc565b90611815565b604051906118ca826106c3565b5f6020838281520152565b906118fe6118f861191f926118e86118bd565b506118f16118bd565b50846113c0565b5061193d565b91600165ffffffffffff845116936020828060d01b039101511691016113c0565b9054906040519261192f846106c3565b835260031b1c602082015290565b9060405161194a816106c3565b915465ffffffffffff8116835260301c6020830152565b8054806119725750505f905f905f90565b5f199080828101116109655761198f925f5260205f20010161193d565b9065ffffffffffff82511691602060018060d01b0391015116906001929190565b60ff5f80516020611cf58339815191525460401c16156119cc57565b604051631afcd79f60e31b8152600490fd5b8054600160401b8110156106be576119fb916001820181556113c0565b611a2557815160209092015160301b65ffffffffffff191665ffffffffffff909216919091179055565b634e487b7160e01b5f525f60045260245ffd5b805492939291908215611b2e57611a59611a5461185785610cdf565b61193d565b90611a6a825165ffffffffffff1690565b65ffffffffffff84811691168110611b1c57611ae0946020948892611a986109e2875165ffffffffffff1690565b03611ae45750611ad292611aae611ab992610cdf565b905f5260205f200190565b9065ffffffffffff82549181199060301b169116179055565b01516001600160d01b031690565b9190565b915050611b1791611b04611af6610712565b65ffffffffffff9093168352565b6001600160d01b038816828601526119de565b611ad2565b604051632520601d60e01b8152600490fd5b611b529250611b3e611af6610712565b6001600160d01b03851660208301526119de565b5f9190565b8015611c905780611c29611c22611c18611c0e611c04611bfa611bf0611be660016107cb9a5f908b60801c80611c84575b508060401c80611c77575b508060201c80611c6a575b508060101c80611c5d575b508060081c80611c50575b508060041c80611c43575b508060021c80611c36575b50821c611c2f575b811c1b611bdf818b6112a6565b0160011c90565b611bdf818a6112a6565b611bdf81896112a6565b611bdf81886112a6565b611bdf81876112a6565b611bdf81866112a6565b611bdf81856112a6565b80926112a6565b90610f2a565b8101611bd2565b600291509101905f611bca565b600491509101905f611bbf565b600891509101905f611bb4565b601091509101905f611ba9565b602091509101905f611b9e565b604091509101905f611b93565b9150506080905f611b88565b505f90565b91905b838210611ca55750505090565b9091928083169080841860011c820180921161096557845f5265ffffffffffff808360205f20015416908416105f14611ce25750925b9190611c98565b939250611cee90610fbc565b91611cdb56fef0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a26469706673582212201cb882c312b55bd78905b97324f1dbe4c6f9bc2ebd77cd8f2ad2c6521b0531d864736f6c63430008190033","sourceMap":"445:2048:93:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;-1:-1:-1;;;;;445:2048:93;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;445:2048:93;;;;;;;;;;;;;;;:::o;:::-;;;;;;-1:-1:-1;;445:2048:93;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;-1:-1:-1;;;;;445:2048:93;;;;;;;;;;;:::i;:::-;2355:73:28;;1847:1;445:2048:93;;3526:20:28;3522:88;;1847:1;;;445:2048:93;;-1:-1:-1;;;4546:86:92;;467:2:88;445:2048:93;;;;4546:86:92;;445:2048:93;-1:-1:-1;;;;;4546:86:92;445:2048:93;;;4572:26:92;445:2048:93;;4546:86:92;;;;;;;-1:-1:-1;4546:86:92;;;445:2048:93;4636:10:92;;445:2048:93;;4546:100:92;4542:160;;445:2048:93;;774:1493;445:2048;;;774:1493;;:::i;:::-;3282:1:28;1805;2355:73;1847:1;3716:283;3282:1;445:2048:93;;;;;;;;;;;;;;;;;4542:160:92;445:2048:93;;-1:-1:-1;;;4669:22:92;;445:2048:93;;4669:22:92;4546:86;;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;;:::i;3522:88:28:-;445:2048:93;;-1:-1:-1;;;3569:30:28;;445:2048:93;;3569:30:28;445:2048:93;;;;;;;:::o;:::-;;;;;;-1:-1:-1;;445:2048:93;;;;;;1435:38:92;-1:-1:-1;;;;;445:2048:93;;;;;;;;;;;;-1:-1:-1;;445:2048:93;;;;;2936:47:92;:38;445:2048:93;;;;;:::i;:::-;;;-1:-1:-1;445:2048:93;2936:16:92;445:2048:93;;;-1:-1:-1;445:2048:93;;;;;;;;;;;;;;;;;2936:38:92;:47;:::i;:::-;445:2048:93;;;;;;;;;;;;-1:-1:-1;;445:2048:93;;;;;;1788:109:92;445:2048:93;;;;;:::i;:::-;;;-1:-1:-1;445:2048:93;1788:109:92;445:2048:93;;;-1:-1:-1;445:2048:93;;;;;;;;;;;;;;;;;1788:109:92;445:2048:93;;;;;;;;;;;;;;-1:-1:-1;;445:2048:93;;;;;;;1374:6:92;445:2048:93;;;;;;;;;-1:-1:-1;;445:2048:93;;;;;;1528:51:92;-1:-1:-1;;;;;445:2048:93;;;;;;;;;;;;-1:-1:-1;;445:2048:93;;;;;;322:32:69;-1:-1:-1;;;;;445:2048:93;;;;;;;;;;;;-1:-1:-1;;445:2048:93;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;445:2048:93;;;;-1:-1:-1;;;;;445:2048:93;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;445:2048:93;;;;;;;4301:16:25;445:2048:93;;4726:16:25;;:34;;;;445:2048:93;4805:1:25;4790:16;:50;;;;445:2048:93;4855:13:25;:30;;;;445:2048:93;4851:91:25;;;-1:-1:-1;;;;;;;;;;;445:2048:93;;-1:-1:-1;;445:2048:93;;;;;718:4:69;;4951:18:25;4979:67;;718:4:69;:::i;:::-;5066:101:25;;445:2048:93;5066:101:25;-1:-1:-1;;;;;;;;;;;445:2048:93;;-1:-1:-1;;;;445:2048:93;;;;;-1:-1:-1;445:2048:93;;5142:14:25;;445:2048:93;;5142:14:25;445:2048:93;4979:67:25;-1:-1:-1;;;;;;;;;;;445:2048:93;;-1:-1:-1;;;;445:2048:93;-1:-1:-1;;;445:2048:93;;;718:4:69;:::i;4851:91:25:-;445:2048:93;;-1:-1:-1;;;4908:23:25;;445:2048:93;;4908:23:25;4855:30;4872:13;;;4855:30;;;4790:50;4818:4;4810:25;:30;;-1:-1:-1;4790:50:25;;4726:34;;;-1:-1:-1;4726:34:25;;445:2048:93;;;;;;;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;445:2048:93;;;;-1:-1:-1;445:2048:93;;;477:31:75;445:2048:93;;;;;;:::i;:::-;;;;;;;;;;;;;;;416:25:75;;;;445:2048:93;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;-1:-1:-1;445:2048:93;;;;;;;;;;;;;477:31:75;;445:2048:93;;;;;;;;;;:::i;:::-;477:31:75;;;;;;;;;:::i;:::-;518:79;;;445:2048:93;518:79:75;;445:2048:93;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;445:2048:93;;;;;;;:::o;:::-;;:::i;:::-;;;;;;;-1:-1:-1;;;;;445:2048:93;;;;;;;:::o;:::-;-1:-1:-1;;;;;445:2048:93;;;;;;:::o;:::-;;;477:31:75;;445:2048:93;;;;;;;;-1:-1:-1;;;;;445:2048:93;;;;;;;:::o;:::-;;;;;;;:::i;:::-;:::o;:::-;-1:-1:-1;;;;;445:2048:93;;;;;;-1:-1:-1;;445:2048:93;;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;445:2048:93;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;445:2048:93;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;-1:-1:-1;;;;;445:2048:93;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;2692:73:92;:38;445:2048:93;;;:::i;:::-;;;;;-1:-1:-1;445:2048:93;2692:16:92;445:2048:93;;;-1:-1:-1;445:2048:93;;;;;;;;;;;;;;;;;2692:38:92;:73;:::i;445:2048:93:-;;;;;3248:62:92;445:2048:93;;;:::i;:::-;3248:62:92;;;;;:::i;:::-;445:2048:93;;;;;;;;;;;;;-1:-1:-1;;445:2048:93;;;;;;;-1:-1:-1;;;;;404:28:69;445:2048:93;;;;;;;;;;-1:-1:-1;;445:2048:93;;;;;;;1271:7:92;445:2048:93;;;;;;;;;-1:-1:-1;;445:2048:93;;;;;;;;-1:-1:-1;;;;;445:2048:93;;;;;;;;;;;;;;;:::i;:::-;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;;;;445:2048:93;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;;;;:::o;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;:::i;774:1493::-;;;;;;;;445:2048;;:::i;:::-;1076:16;;1072:91;;774:1493;837:15:62;;819:34;837:15;819:34;:::i;:::-;-1:-1:-1;445:2048:93;1215:29;;;;:27;;:13;;-1:-1:-1;;;;;445:2048:93;1215:13;445:2048;;-1:-1:-1;;;;;445:2048:93;;;1215:27;445:2048;;-1:-1:-1;;;1215:29:93;;445:2048;;;;;1215:29;;;;;;1177:67;1215:29;1196:48;1215:29;-1:-1:-1;1215:29:93;;;774:1493;1196:48;;:::i;:::-;445:2048;;;;1177:67;445:2048;;;1177:67;;;:107;;;;;774:1493;1173:178;;;1418:87;1531:33;1474:30;;1418:87;;;;:::i;:::-;1531:33;;;;;:::i;:::-;1578:18;;;1574:75;;1950:87;;;2200:60;1718:16;2200:60;1718:16;;;;;;:::i;:::-;1791:13;;;;;:::i;:::-;445:2048;;:::i;:::-;;;;1215:29;1961:75;;445:2048;;;1950:87;;;1215:29;1950:87;;445:2048;;;;;;;;;;;;;;;;;;;1950:87;;;;;;:::i;:::-;2087:16;;;;:::i;:::-;2167;;;;;;:::i;:::-;445:2048;;;;;;;;;;;;;;-1:-1:-1;;;;;445:2048:93;;;;;;;;;;;2200:60;;;;774:1493::o;1574:75::-;445:2048;;-1:-1:-1;;;1619:19:93;;1215:29;;1619:19;1173:178;445:2048;;-1:-1:-1;;;1315:25:93;;1215:29;;1315:25;1177:107;837:15:62;;1248:36:93;819:34:62;837:15;819:34;:::i;1248:36:93:-;-1:-1:-1;1248:36:93;1177:107;;;1215:29;;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;1072:91;1121:31;;;;;;;;:::i;:::-;1072:91;;;;;445:2048;;;;;;;;;;;;;;;;;-1:-1:-1;445:2048:93;;;;;;;;-1:-1:-1;;445:2048:93;;;;:::o;2505:267:92:-;-1:-1:-1;445:2048:93;;;2692:16:92;445:2048:93;;;;;;;;-1:-1:-1;;;;;445:2048:93;;;;;;;;;2692:73:92;;2505:267;;2692:73;:::i;445:2048:93:-;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;445:2048:93;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;;;;445:2048:93;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;445:2048:93;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;445:2048:93;;;;;;;;:::o;:::-;;;;;;;;;;:::o;3323:1122:92:-;;445:2048:93;;:::i;:::-;;;;3608:16:92;3604:109;;3323:1122;837:15:62;;819:34;837:15;819:34;:::i;:::-;-1:-1:-1;445:2048:93;;;;3778:27:92;;:13;;-1:-1:-1;;;;;445:2048:93;3778:13:92;445:2048:93;3778:27:92;445:2048:93;;;;;;;3778:29:92;;;;;;;;;;;;;;;3740:67;3778:29;3759:48;3778:29;-1:-1:-1;3778:29:92;;;3759:48;;:::i;3740:67::-;445:2048:93;;;3740:67:92;;;:107;;;;;3323:1122;3740:197;;;;3323:1122;3723:263;;;445:2048:93;3778:29:92;445:2048:93;;;;;;;;;;4025:25:92;;;;;;;;;4010:143;4025:25;;;-1:-1:-1;4025:25:92;;;3323:1122;4113:30;;;445:2048:93;;;;;;;;;;;4010:143:92;;;;;3778:29;4010:143;;;:::i;:::-;;;-1:-1:-1;;;;;445:2048:93;4010:143:92;;;;;;;4181:257;4010:143;-1:-1:-1;4010:143:92;;;3323:1122;3996:157;;4293:102;3996:157;;4233:162;3996:157;4207:231;3996:157;;2936:28;:47;:38;:28;;;445:2048:93;;2936:16:92;445:2048:93;;;;;;;2936:28:92;445:2048:93;;;;;;;;;;;;;;;;2936:47:92;4351:43;;;4293:102;;:::i;:::-;4233:162;;:::i;:::-;4207:231;:::i;4181:257::-;3323:1122;:::o;4010:143::-;4233:162;4010:143;;;4207:231;4010:143;;;;4293:102;4010:143;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;;;;;4025:25;;;;;;;;;;;;;;:::i;:::-;;;;3723:263;3962:13;;;;;;-1:-1:-1;3962:13:92;-1:-1:-1;3962:13:92;:::o;3740:197::-;3886:41;;3867:70;3886:51;;:41;;;445:2048:93;;3886:29:92;445:2048:93;;;;;;;3886:51:92;445:2048:93;;;;;3867:70:92;-1:-1:-1;3740:197:92;;;:107;837:15:62;;3811:36:92;819:34:62;837:15;819:34;:::i;3811:36:92:-;;;;3740:107;;;3778:29;;;;;;;;;;;;;;;:::i;3604:109::-;3662:40;;;;;;;;;;;;:::i;:::-;3604:109;;;;2557:104:57;;2641:5;;;;;;:13;2557:104;:::o;2641:13::-;;;2557:104;:::o;4714:335:92:-;;;;445:2048:93;-1:-1:-1;445:2048:93;4876:29:92;445:2048:93;;;;4876:51:92;445:2048:93;;-1:-1:-1;445:2048:93;;;;;;;;;;;;;;;;;4876:51:92;445:2048:93;;;;;-1:-1:-1;4872:171:92;;4714:335;;;:::o;4872:171::-;4962:70;445:2048:93;4962:51:92;445:2048:93;-1:-1:-1;445:2048:93;4876:29:92;445:2048:93;;;-1:-1:-1;445:2048:93;;;;;;;;;;;;;;;;;4962:51:92;445:2048:93;;;;;;;;;;;;;;9856:1:60;445:2048:93;;;;;;;:::o;5055:221:92:-;;;445:2048:93;-1:-1:-1;445:2048:93;5160:16:92;445:2048:93;;2936:47:92;:38;5160;445:2048:93;;-1:-1:-1;445:2048:93;;;;;;;;;;;;;;;;;5160:38:92;837:15:62;819:34;837:15;819:34;:::i;:::-;445:2048:93;-1:-1:-1;445:2048:93;5160:16:92;445:2048:93;;;-1:-1:-1;445:2048:93;;;;;;;;;;;;;;;;;2936:47:92;445:2048:93;;;;;;;;6360:12:86;;;445:2048:93;;;6360:24:86;6356:75;;5055:221:92;6474:30:86;;;:::i;:::-;445:2048:93;;;;;6578:12:86;;;;:::i;:::-;;6604:24;;;5055:221:92;-1:-1:-1;6600:188:86;;;-1:-1:-1;;;;445:2048:93;;;;;;;6644:29:86;:21;;;;:::i;:::-;:29;445:2048:93;;;;;;;;;;;;;;;;;;;;;6600:188:86;6753:24;;8167:38:60;;-1:-1:-1;;;;;445:2048:93;;;;;8167:38:60;:::i;:::-;6753:24:86;;;:::i;6604:::-;445:2048:93;;;;;;6614:14:86;;-1:-1:-1;6604:24:86;;;6356:75;6400:20;;;:::i;:::-;6356:75;;445:2048:93;;;;;;;;-1:-1:-1;;;;;445:2048:93;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;5282:431:92:-;;;;5487:25;;:23;:13;445:2048:93;5494:5:92;445:2048:93;;;;;;;;;5487:23:92;445:2048:93;;-1:-1:-1;;;5487:25:92;;445:2048:93;;;;;5487:25:92;;;;;;;5631:65;5487:25;5631:65;5487:25;5494:5;5487:25;;;5282:431;-1:-1:-1;;;;;;445:2048:93;;;;:::i;:::-;-1:-1:-1;;;;;5677:4:92;445:2048:93;;;5677:4:92;5487:25;5642:53;;445:2048:93;;;5631:65:92;;;5487:25;5631:65;;;:::i;:::-;5472:234;;;;;5494:5;445:2048:93;5472:234:92;445:2048:93;;;;;;;;;;;;;;5472:234:92;;5487:25;5472:234;;;:::i;:::-;;;;;;;;;;;5282:431;:::o;5472:234::-;;;;;;:::i;:::-;;;:::i;5487:25::-;;;;;;;;;;;;;;:::i;:::-;;;;5719:137;5809:5;445:2048:93;;;;-1:-1:-1;;;5802:47:92;;;;;445:2048:93;;;;;;;;;;;;;;;5802:47:92;;445:2048:93;;;;;;-1:-1:-1;;;;;445:2048:93;5802:47:92;;;;;;;;5719:137;:::o;5802:47::-;;;;;;;;;;;;;:::i;:::-;;5719:137::o;445:2048:93:-;;;;;;;:::o;:::-;;;;;;;;;;;;5862:623:92;;;5988:12;445:2048:93;;;;;;;5984:495:92;;5862:623;;;;;;:::o;5984:495::-;445:2048:93;;-1:-1:-1;;;6033:22:92;;445:2048:93;6033:22:92;;445:2048:93;;6033:22:92;;445:2048:93;;-1:-1:-1;;;;;445:2048:93;6033:22:92;;;;;;;5988:12;6033:22;;;5984:495;-1:-1:-1;445:2048:93;;-1:-1:-1;;;6033:22:92;6094:81;;;;;;;;445:2048:93;;;;-1:-1:-1;;;;;445:2048:93;;;;;;;;;;;;;;;;;;;;;;6094:81:92;445:2048:93;;;;6094:81:92;;477:31:75;;6094:81:92;;;;;;:::i;:::-;445:2048:93;6194:9:92;:55;6190:124;;5988:12;6328:141;;;;;;1271:7;6328:141;;5984:495;;;;;;;6190:124;445:2048:93;;-1:-1:-1;;;6276:23:92;;6033:22;;6276:23;6033:22;6094:81;6033:22;;;6094:81;6033:22;;;;;;;;;;;:::i;:::-;;;;;445:2048:93;;;;;;;;-1:-1:-1;445:2048:93;;-1:-1:-1;445:2048:93;;;-1:-1:-1;445:2048:93;:::o;:::-;;;;;;;;;;;;10580:184:86;445:2048:93;;10303:8:60;;;:63;-1:-1:-1;10303:63:60;-1:-1:-1;;;;;445:2048:93;;10726:7:86;445:2048:93;;10736:12:86;:17;:12;;:17;:::i;:::-;445:2048:93;;;;;;10580:184:86;:::o;10726:31::-;;;-1:-1:-1;10580:184:86;:::o;10303:63:60:-;445:2048:93;;;;;;;;;;14249:109:60;-1:-1:-1;14249:109:60;;-1:-1:-1;14249:109:60;;;445:2048:93;;;10303:63:60;;445:2048:93;;;;;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;445:2048:93;;;;;;;;:::i;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;:::i;6491:564:92:-;6614:34;6491:564;6614:34;;;;:::i;:::-;445:2048:93;;-1:-1:-1;;;6664:41:92;;-1:-1:-1;;;;;445:2048:93;;;6664:41:92;;;445:2048:93;;;;;6664:41:92;;;445:2048:93;;;6674:13:92;445:2048:93;;6664:41:92;;;;;;;-1:-1:-1;6664:41:92;;;6491:564;6663:42;;6659:90;;2540:111:28;6850:27:92;6664:41;2540:111:28;;;:::i;:::-;-1:-1:-1;445:2048:93;;-1:-1:-1;;;;;;445:2048:93;-1:-1:-1;;;;;445:2048:93;;;;;6850:27:92;:::i;:::-;445:2048:93;;;;;;;;;;6892:23:92;;;;;;;;;-1:-1:-1;6892:23:92;;;6491:564;445:2048:93;;;6892:37:92;:64;;;6491:564;6888:112;;445:2048:93;7010:38:92;;445:2048:93;;-1:-1:-1;445:2048:93;;-1:-1:-1;;;;445:2048:93;;;;;;-1:-1:-1;;;445:2048:93;;;;;;;;6888:112:92;445:2048:93;;-1:-1:-1;;;6979:10:92;;6664:41;;6979:10;6892:64;-1:-1:-1;445:2048:93;;;;6892:64:92;;:23;;;;;;-1:-1:-1;6892:23:92;;;;;;:::i;:::-;;;;;6659:90;445:2048:93;;-1:-1:-1;;;6728:10:92;;6664:41;;6728:10;6664:41;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;445:2048:93;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;:::o;7558:604:86:-;;445:2048:93;;7686:17:86;7682:83;;445:2048:93;7789:27:86;445:2048:93;7789:27:86;445:2048:93;;7789:27:86;;;;;;:::i;:::-;7860:14;;;;;:::i;:::-;445:2048:93;;;;;;;;;;;;;;;;7888:22:86;;;7884:77;;7975:21;-1:-1:-1;7975:84:86;;;;7558:604;7971:139;;;;8127:28;;;;:::i;7971:139::-;8082:17;;7789:27;8082:17;445:2048:93;8075:24:86;:::o;7975:84::-;445:2048:93;;;8009:16:86;445:2048:93;;8009:16:86;:::i;:::-;445:2048:93;;;8001:24:86;:57;;;;;7975:84;;;;;;;8001:57;8029:29;8038:8;;;8029:18;8038:8;8029:23;8038:8;;:::i;:::-;8029:18;;:::i;:::-;445:2048:93;;;;;8029:29:86;;8001:57;;;;7884:77;7933:17;;;;;7789:27;7933:17;445:2048:93;7926:24:86;:::o;7682:83::-;7726:28;;;;:::i;14291:213:58:-;445:2048:93;14369:24:58;;;;14365:103;;445:2048:93;14291:213:58;:::o;14365:103::-;445:2048:93;;;;14416:41:58;;;;;;14447:2;14416:41;;;445:2048:93;;;;;14416:41:58;445:2048:93;;;-1:-1:-1;;;445:2048:93;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::o;:::-;;;;;-1:-1:-1;;;445:2048:93;;;;;;;;;;;;;;;:::i;6893:76:25:-;;;:::i;:::-;;;:::i;:::-;1805:1:28;2355:73;1847:1;6893:76:25:o;2273:218:93:-;-1:-1:-1;445:2048:93;;;;;:::i;:::-;;;;;;2419:30;;445:2048;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;2419:30;445:2048;:::i;:::-;;;;2273:218;:::o;6999:207:86:-;;445:2048:93;;9594:15:60;-1:-1:-1;9619:18:60;9652:7;9658:1;9652:7;;9648:234;;6999:207:86;9906:53:60;;;;;:::i;:::-;9977:8;;;:63;-1:-1:-1;9977:63:60;;-1:-1:-1;;;;;445:2048:93;;7168:7:86;445:2048:93;;;7178:12:86;;:17;:12;;:17;:::i;9977:63:60:-;9992:41;10025:7;9992:48;10025:7;;:::i;:::-;9992:41;14249:109;;;;;;14099:265;;9992:41;445:2048:93;;;;;9992:48:60;9977:63;;;9648:234;9695:14;;;;;:::i;:::-;445:2048:93;;;;;;;9906:53:60;14249:109;;-1:-1:-1;14249:109:60;445:2048:93;14249:109:60;;;-1:-1:-1;14249:109:60;;445:2048:93;;;;;9727:48:60;9723:149;445:2048:93;;;9795:10:60;9723:149;9648:234;;9723:149;9850:7;;;;;;:::i;:::-;9723:149;9648:234;;445:2048:93;;;;;;;:::i;:::-;-1:-1:-1;445:2048:93;;;;;;;:::o;11486:272:86:-;;445:2048:93;11308:22:60;11718:31:86;11486:272;445:2048:93;;:::i;:::-;;;;:::i;:::-;;11308:22:60;;:::i;:::-;445:2048:93;;:::i;:::-;;11718:12:86;445:2048:93;;;;;11731:17:86;445:2048:93;;;;;11731:17:86;;445:2048:93;;11718:12:86;;:31;:::i;:::-;445:2048:93;;;;;;;;;:::i;:::-;;;;;;11731:17:86;11672:79;;445:2048:93;11486:272:86;:::o;445:2048:93:-;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::o;10552:388:60:-;445:2048:93;;10728:8:60;;;10752:20;;10690:17;10752:20;10690:17;10752:20;10690:17;10752:20;:::o;10724:210::-;445:2048:93;;;;;;;;;;;14249:109:60;10690:17;14249:109;;10690:17;14249:109;;;445:2048:93;:::i;:::-;;;;;;;14249:109:60;445:2048:93;;;;;10911:11:60;;445:2048:93;;10886:37:60;10870:1;10886:37;;;:::o;7084:141:25:-;445:2048:93;-1:-1:-1;;;;;;;;;;;445:2048:93;;;;7150:18:25;7146:73;;7084:141::o;7146:73::-;445:2048:93;;-1:-1:-1;;;7191:17:25;;;;;445:2048:93;;;-1:-1:-1;;;445:2048:93;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;445:2048:93;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;11513:870:60;445:2048:93;;11513:870:60;;;445:2048:93;11513:870:60;11672:7;;;;445:2048:93;11775:28:60;11795:7;;;:::i;11775:28::-;445:2048:93;:::i;:::-;;;;;;;;;;;;;;;;11877:15:60;-1:-1:-1;11873:91:60;;445:2048:93;;12233:11:60;445:2048:93;;;12027:16:60;445:2048:93;;;;;;;12027:16:60;;;;12083:7;12063:43;12083:7;;12063:28;12083:7;;:::i;:::-;12063:28;14249:109;;;;;;14099:265;;12063:28;445:2048:93;;;;;;;;;;;;;;;;;12063:43:60;12233:11;445:2048:93;-1:-1:-1;;;;;445:2048:93;;;;12225:27:60;;:::o;12023:189::-;445:2048:93;;;12145:52:60;445:2048:93;12155:41:60;445:2048:93;;:::i;:::-;;;;;;;;12155:41:60;-1:-1:-1;;;;;445:2048:93;;12155:41:60;;;445:2048:93;12145:52:60;:::i;:::-;12023:189;;11873:91;445:2048:93;;-1:-1:-1;;;11919:30:60;;;;;11668:709;12283:52;445:2048:93;;12293:41:60;445:2048:93;;:::i;12293:41:60:-;-1:-1:-1;;;;;445:2048:93;;12293:41:60;;;445:2048:93;12145:52:60;:::i;12283:::-;11678:1;12349:17;;:::o;8587:1642:57:-;8658:6;;8654:45;;9401:7;10201:10;10142:26;10093;10044;9995;9946;9897;9848;445:2048:93;10189:23:57;9401:7;8663:1;445:2048:93;;;;10826:16:57;10822:99;;8587:1642;445:2048:93;;;;10938:15:57;10934:96;;8587:1642;445:2048:93;;;;11047:15:57;11043:96;;8587:1642;445:2048:93;;;;11156:15:57;11152:96;;8587:1642;445:2048:93;;;;11265:14:57;11261:93;;8587:1642;445:2048:93;;;;11371:14:57;11367:93;;8587:1642;445:2048:93;;;;11477:14:57;11473:93;;8587:1642;445:2048:93;;;11579:64:57;;8587:1642;445:2048:93;;;9858:10:57;;;;:::i;:::-;445:2048:93;;;;;9848:26:57;9907:10;;;;:::i;9897:26::-;9956:10;;;;:::i;9946:26::-;10005:10;;;;:::i;9995:26::-;10054:10;;;;:::i;10044:26::-;10103:10;;;;:::i;10093:26::-;10152:10;;;;:::i;10142:26::-;10201:10;;;:::i;:::-;10189:23;;:::i;11579:64::-;445:2048:93;;11579:64:57;;11473:93;445:2048:93;11511:11:57;;445:2048:93;;11473:93:57;;;;11367;445:2048:93;11405:11:57;;445:2048:93;;11367:93:57;;;;11261;445:2048:93;11299:11:57;;445:2048:93;;11261:93:57;;;;11152:96;445:2048:93;11191:12:57;;445:2048:93;;11152:96:57;;;;11043;445:2048:93;11082:12:57;;445:2048:93;;11043:96:57;;;;10934;445:2048:93;10973:12:57;;445:2048:93;;10934:96:57;;;;10822:99;10862:13;;;445:2048:93;10822:99:57;;;;8654:45;8680:8;8663:1;8680:8;:::o;12736:433:60:-;;;12919:10;;;;;;13151:11;;;12736:433;:::o;12912:230::-;2900:5:57;;;;;;2910;;;;445:2048:93;;;;;;;;;14249:109:60;-1:-1:-1;14249:109:60;445:2048:93;14249:109:60;;;-1:-1:-1;14249:109:60;;445:2048:93;;;;;-1:-1:-1;12996:136:60;445:2048:93;;;13055:10:60;12996:136;;12912:230;;;;12996:136;13110:7;;;;;;:::i;:::-;12996:136;;","linkReferences":{},"immutableReferences":{"57808":[{"start":1098,"length":32}],"57811":[{"start":2128,"length":32},{"start":4506,"length":32}],"65592":[{"start":765,"length":32},{"start":5322,"length":32}],"65595":[{"start":508,"length":32},{"start":1030,"length":32}]}},"methodIdentifiers":{"BURNER_GAS_LIMIT()":"d5c24e1a","BURNER_RESERVE()":"2964f8dc","FACTORY()":"2dd31000","NETWORK_MIDDLEWARE_SERVICE()":"2c9d45b3","TYPE()":"bb24fe8a","VAULT_FACTORY()":"103f2907","cumulativeSlash(bytes32,address)":"1a2be2c4","cumulativeSlashAt(bytes32,address,uint48,bytes)":"aa8e6489","initialize(bytes)":"439fab91","isBurnerHook()":"34d098ea","latestSlashedCaptureTimestamp(bytes32,address)":"267de1f3","slash(bytes32,address,uint256,uint48,bytes)":"021a8156","slashableStake(bytes32,address,uint48,bytes)":"aab3595f","staticDelegateCall(address,bytes)":"9f86fd85","vault()":"fbfa77cf"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"vaultFactory\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"networkMiddlewareService\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"slasherFactory\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"entityType\",\"type\":\"uint64\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"CheckpointUnorderedInsertion\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientBurnerGas\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientSlash\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidCaptureTimestamp\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NoBurner\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotNetworkMiddleware\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotVault\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ReentrancyGuardReentrantCall\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"bits\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"SafeCastOverflowedUintDowncast\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"slashedAmount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint48\",\"name\":\"captureTimestamp\",\"type\":\"uint48\"}],\"name\":\"Slash\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"BURNER_GAS_LIMIT\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"BURNER_RESERVE\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"FACTORY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"NETWORK_MIDDLEWARE_SERVICE\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"TYPE\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"VAULT_FACTORY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"cumulativeSlash\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hint\",\"type\":\"bytes\"}],\"name\":\"cumulativeSlashAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isBurnerHook\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"latestSlashedCaptureTimestamp\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"value\",\"type\":\"uint48\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint48\",\"name\":\"captureTimestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hints\",\"type\":\"bytes\"}],\"name\":\"slash\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"slashedAmount\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"captureTimestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hints\",\"type\":\"bytes\"}],\"name\":\"slashableStake\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"staticDelegateCall\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"vault\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"CheckpointUnorderedInsertion()\":[{\"details\":\"A value was attempted to be inserted on a past checkpoint.\"}],\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"ReentrancyGuardReentrantCall()\":[{\"details\":\"Unauthorized reentrant call.\"}],\"SafeCastOverflowedUintDowncast(uint8,uint256)\":[{\"details\":\"Value doesn't fit in an uint of `bits` size.\"}]},\"events\":{\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"Slash(bytes32,address,uint256,uint48)\":{\"params\":{\"captureTimestamp\":\"time point when the stake was captured\",\"operator\":\"operator that is slashed\",\"slashedAmount\":\"virtual amount of the collateral slashed\",\"subnetwork\":\"subnetwork that requested the slash\"}}},\"kind\":\"dev\",\"methods\":{\"cumulativeSlash(bytes32,address)\":{\"params\":{\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"},\"returns\":{\"_0\":\"cumulative slash amount\"}},\"cumulativeSlashAt(bytes32,address,uint48,bytes)\":{\"params\":{\"hint\":\"hint for the checkpoint index\",\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\",\"timestamp\":\"time point to get the cumulative slash amount until (inclusively)\"},\"returns\":{\"_0\":\"cumulative slash amount until the given timestamp (inclusively)\"}},\"initialize(bytes)\":{\"params\":{\"data\":\"some data to use\"}},\"slash(bytes32,address,uint256,uint48,bytes)\":{\"details\":\"Only a network middleware can call this function.\",\"params\":{\"amount\":\"maximum amount of the collateral to be slashed\",\"captureTimestamp\":\"time point when the stake was captured\",\"hints\":\"hints for checkpoints' indexes\",\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"},\"returns\":{\"slashedAmount\":\"virtual amount of the collateral slashed\"}},\"slashableStake(bytes32,address,uint48,bytes)\":{\"params\":{\"captureTimestamp\":\"time point to get the stake amount at\",\"hints\":\"hints for the checkpoints' indexes\",\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"},\"returns\":{\"amount\":\"slashable amount of the stake\"}},\"staticDelegateCall(address,bytes)\":{\"details\":\"It allows to use this contract's storage on-chain.\",\"params\":{\"data\":\"data to make a delegatecall with\",\"target\":\"address of the contract to make a delegatecall to\"}}},\"version\":1},\"userdoc\":{\"events\":{\"Slash(bytes32,address,uint256,uint48)\":{\"notice\":\"Emitted when a slash is performed.\"}},\"kind\":\"user\",\"methods\":{\"BURNER_GAS_LIMIT()\":{\"notice\":\"Get a gas limit for the burner.\"},\"BURNER_RESERVE()\":{\"notice\":\"Get a reserve gas between the gas limit check and the burner's execution.\"},\"FACTORY()\":{\"notice\":\"Get the factory's address.\"},\"NETWORK_MIDDLEWARE_SERVICE()\":{\"notice\":\"Get the network middleware service's address.\"},\"TYPE()\":{\"notice\":\"Get the entity's type.\"},\"VAULT_FACTORY()\":{\"notice\":\"Get the vault factory's address.\"},\"cumulativeSlash(bytes32,address)\":{\"notice\":\"Get a cumulative slash amount for an operator on a subnetwork.\"},\"cumulativeSlashAt(bytes32,address,uint48,bytes)\":{\"notice\":\"Get a cumulative slash amount for an operator on a subnetwork until a given timestamp (inclusively) using a hint.\"},\"initialize(bytes)\":{\"notice\":\"Initialize this entity contract by using a given data.\"},\"isBurnerHook()\":{\"notice\":\"Get if the burner is needed to be called on a slashing.\"},\"latestSlashedCaptureTimestamp(bytes32,address)\":{\"notice\":\"Get the latest capture timestamp that was slashed on a subnetwork.\"},\"slash(bytes32,address,uint256,uint48,bytes)\":{\"notice\":\"Perform a slash using a subnetwork for a particular operator by a given amount using hints.\"},\"slashableStake(bytes32,address,uint48,bytes)\":{\"notice\":\"Get a slashable amount of a stake got at a given capture timestamp using hints.\"},\"staticDelegateCall(address,bytes)\":{\"notice\":\"Make a delegatecall from this contract to a given target contract with a particular data (always reverts with a return data).\"},\"vault()\":{\"notice\":\"Get the vault's address.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/contracts/slasher/Slasher.sol\":\"Slasher\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609\",\"dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardUpgradeable.sol\":{\"keccak256\":\"0xb44e086e941292cdc7f440de51478493894ef0b1aeccb0c4047445919f667f74\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://942dad22fbdc1669f025540ba63aa3ccfad5f8458fc5d4525b31ebf272e7af45\",\"dweb:/ipfs/Qmdo4X2M82aM3AMoW2kf2jhYkSCyC4T1pHNd6obdsDFnAB\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875\",\"dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0xe19a4d5f31d2861e7344e8e535e2feafb913d806d3e2b5fe7782741a2a7094fe\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4aed79c0fa6f0546ed02f2f683e8f77f0fd2ed7eb34d8bbf3d373c9a6d95b13c\",\"dweb:/ipfs/QmWqVz6UAVqmnWU5pqYPt1o6iDEZyPaBraAA3rKfTTSfYj\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/Checkpoints.sol\":{\"keccak256\":\"0xbdc5e074d7dd6678f67e92b1a51a20226801a407b0e1af3da367c5d1ff4519ad\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a36cca6b22fff3db16fc789ff6c60eea71d4b156065d4d0c83a0bc5e91a77a8b\",\"dweb:/ipfs/QmYN3exd5AemxjBrN8XMB1p5LbbE16uC3sjbYjwi8AjcGR\"]},\"lib/openzeppelin-contracts/contracts/utils/types/Time.sol\":{\"keccak256\":\"0xc7755af115020049e4140f224f9ee88d7e1799ffb0646f37bf0df24bf6213f58\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7f09bf94d5274334ec021f61a04659db303f31e60460e14b709c9bf187740111\",\"dweb:/ipfs/QmNvgomZYUwFAt4cZbPWAiTeSZQreGehY9BK5xyVJsUttb\"]},\"src/contracts/common/Entity.sol\":{\"keccak256\":\"0x3d61a932995b8443381f3950542d388223a2c26dd5d29a3274dea3baa7388bd7\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://7cdf5f03ca72fd263fd32ff59c8d88ddca911ae83896a287d10772c1bbe9b138\",\"dweb:/ipfs/QmbP84r5BWT1Rn9AYTntWSf3xUMTTCohTZJFhbBhDXFoHa\"]},\"src/contracts/common/StaticDelegateCallable.sol\":{\"keccak256\":\"0x350029aa8955eacaffffaeb58babc5c98e80ebc5c5db388ed17ee6465f4a9d90\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://eb392a8ee9050e0af606897df63e3404e3829e8b688b580663892f9664195764\",\"dweb:/ipfs/QmaXC8jqV8UrrAFkzXTEv2fJF56sy33HhLxAzaRZmUxuXD\"]},\"src/contracts/libraries/Checkpoints.sol\":{\"keccak256\":\"0xba90097c8bfe0a975499428b5f8ac5569483c7d92ccc28c12d70de416aae040c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://12f5d93ca94cd06d3147db68993165a58e17903ed53682560de61f3085ad4609\",\"dweb:/ipfs/QmePiuAqvXprMLmFZkGZeGjvGPAvsEDHfCDv7BoQhXu9xE\"]},\"src/contracts/libraries/Subnetwork.sol\":{\"keccak256\":\"0xf5ef5506fd66082b3c2e7f3df37529f5a8efad32ac62e7c8914bd63219190bfe\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba031a54ee0d0e9a270c2b9e18437f5668cfeb659cfd5fe0677459d7fcac2a56\",\"dweb:/ipfs/QmReP3H7qQ78tAfgLnJKsNEQNCQfF1X1Get38Ffd4kzq32\"]},\"src/contracts/slasher/BaseSlasher.sol\":{\"keccak256\":\"0x190e5dce196a061bdad42468c52e9f5b0eb7810cd7d0c19f04d6a2e94984f1b6\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://07ca08d0cd43c2fe5d54a5577f6bdd522ced410f5d3a52e764deaa7ba26b5f06\",\"dweb:/ipfs/QmZe3PiMKBQKWcwodaLupragdqxPjgS4v1qMC7RXau8hDF\"]},\"src/contracts/slasher/Slasher.sol\":{\"keccak256\":\"0xeee0cb25fad58d496fdcc641d852d11bae06e6ceed5230ae21150964175c494f\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://34aa27d21246a1bcee0b6a2afa8d9d613441156362430392f75d176511d58c61\",\"dweb:/ipfs/Qmf53Y3zdGfH4PU2zpSGeHZ8mMLzLXCtmkQrG5mnVJECQ3\"]},\"src/interfaces/common/IEntity.sol\":{\"keccak256\":\"0x8ef4b63d6da63489778ccd5f8d13ebdd527dd4b62730b2c616df5af7474d2d21\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a8d69576a9219d85c50816a18ad53a4d53cfcb27ed38b8cccc808dc2734b71b\",\"dweb:/ipfs/QmYVN3P4Q4REvBWJ97TbAcaxm3uyB2anV6NSGa6ZtSwcEv\"]},\"src/interfaces/common/IMigratableEntity.sol\":{\"keccak256\":\"0x8f5f2809f3afbe8ebfbb365dd7b57b4dd3b6f9943a6187eaf648d45895b8e3c4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ffe640537d539e7a4fde70d30d3e4c57f4ba9c2c25c450cea713aae38e8fd5c\",\"dweb:/ipfs/QmSUTGzvdcn1R1KB7tLThMRtESsfPbeXDhhhKWGtntzBds\"]},\"src/interfaces/common/IRegistry.sol\":{\"keccak256\":\"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014\",\"dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK\"]},\"src/interfaces/common/IStaticDelegateCallable.sol\":{\"keccak256\":\"0xa335d4e81b9071b7de66ef92b43ff20671d86516eb1be46fef29a3483cd3f5d5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d464b9db863c14c05547d2b23352f2e9b7b784799cf09f6bbc4906a2a74e3516\",\"dweb:/ipfs/QmUVWzFvJz7eEbDQKiFTTzwi7TEbjcs3VmwdM4kuptAKvi\"]},\"src/interfaces/delegator/IBaseDelegator.sol\":{\"keccak256\":\"0x96bb312f032e17accce3f8f80936d99468029d6b37c9ca74acdb4b026a0148ee\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2a66dcb5b7d1a6ef6a363431ea98ebd78bc4fdd3d7a134d9b542dc66e7d025c2\",\"dweb:/ipfs/QmRhTPLd2ZAyRHmJUFUcWKs9b3if49QY17LYZuRqWmghw8\"]},\"src/interfaces/service/INetworkMiddlewareService.sol\":{\"keccak256\":\"0x347afc7fcf1fbcdb96d66162070ef6c78aed27b3af2c1d5dfb4e511840631783\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2d90b8ceb495159e8e4e95d76447719dd166443f67dfabdd942846162071595c\",\"dweb:/ipfs/QmVVuiAWYx92T6vBvNMKZfTvraCf1fa16BsUKkdNs3hdHA\"]},\"src/interfaces/slasher/IBaseSlasher.sol\":{\"keccak256\":\"0x7c82528b445659c313ab77335c407b0b6efe5e79027187bb287f7bc74202b404\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0274c90aa5df1aa6bb470a6aab53992fb14fd7e5472c9430416505b29647d9cf\",\"dweb:/ipfs/QmckbmJLDetPemVzCnnGcKYWAZV2BRFXGDsjiaec8jkHxx\"]},\"src/interfaces/slasher/IBurner.sol\":{\"keccak256\":\"0xaf495dacc19ae0b3c787ba8021c5944927d70261536addd234d7dab146158c2b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9b3cc66251008be6ff9fc8b11ecc6831d5a9dca49a3fe9817fcd970253c1d447\",\"dweb:/ipfs/QmVxfb9ALGdF9W3SN2h41gQbUct6tawvu5bw4K89kFQ4HW\"]},\"src/interfaces/slasher/ISlasher.sol\":{\"keccak256\":\"0x34d226d67a3d5e16571f2fac91a8b9773551bcc41c88a96279669dd78d192625\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a6e8c1462ee4a1b0f745414be043c09012ea676613790aba004b06c85c980d1\",\"dweb:/ipfs/QmadjNEbHKRthtA1EeNy3Kg2sXpejH2KBeHm8QZtBPvXbJ\"]},\"src/interfaces/vault/IVault.sol\":{\"keccak256\":\"0xffee01d383cd4e1a5530c614bf4360c1ef070c288abec9da1eb531b51bc07235\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://04f0046cac285d8ec44ebbb1f79dc94fab4495767190cad8364fbc1fafaadfb9\",\"dweb:/ipfs/QmUawAunwzXfCyShWfhKeThAgKtqe51hmrxvrXvM772M2R\"]},\"src/interfaces/vault/IVaultStorage.sol\":{\"keccak256\":\"0x592626f13754194f83047135de19229c49390bd59e34659b1bb38be71d973a22\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://06a6a9dfddd05e580b32bebe2cff4f63ba26a653180676d58225dd30d9c89d3e\",\"dweb:/ipfs/QmdgzBeY6Sxo8mGtyBxtv1tM1c2kU6J6zjeRd7vuXm4DU6\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.25+commit.b61c2a91"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"vaultFactory","type":"address"},{"internalType":"address","name":"networkMiddlewareService","type":"address"},{"internalType":"address","name":"slasherFactory","type":"address"},{"internalType":"uint64","name":"entityType","type":"uint64"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"CheckpointUnorderedInsertion"},{"inputs":[],"type":"error","name":"InsufficientBurnerGas"},{"inputs":[],"type":"error","name":"InsufficientSlash"},{"inputs":[],"type":"error","name":"InvalidCaptureTimestamp"},{"inputs":[],"type":"error","name":"InvalidInitialization"},{"inputs":[],"type":"error","name":"NoBurner"},{"inputs":[],"type":"error","name":"NotInitialized"},{"inputs":[],"type":"error","name":"NotInitializing"},{"inputs":[],"type":"error","name":"NotNetworkMiddleware"},{"inputs":[],"type":"error","name":"NotVault"},{"inputs":[],"type":"error","name":"ReentrancyGuardReentrantCall"},{"inputs":[{"internalType":"uint8","name":"bits","type":"uint8"},{"internalType":"uint256","name":"value","type":"uint256"}],"type":"error","name":"SafeCastOverflowedUintDowncast"},{"inputs":[{"internalType":"uint64","name":"version","type":"uint64","indexed":false}],"type":"event","name":"Initialized","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32","indexed":true},{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"uint256","name":"slashedAmount","type":"uint256","indexed":false},{"internalType":"uint48","name":"captureTimestamp","type":"uint48","indexed":false}],"type":"event","name":"Slash","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"BURNER_GAS_LIMIT","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"BURNER_RESERVE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"FACTORY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"NETWORK_MIDDLEWARE_SERVICE","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"TYPE","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"VAULT_FACTORY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"cumulativeSlash","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint48","name":"timestamp","type":"uint48"},{"internalType":"bytes","name":"hint","type":"bytes"}],"stateMutability":"view","type":"function","name":"cumulativeSlashAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[],"stateMutability":"view","type":"function","name":"isBurnerHook","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"latestSlashedCaptureTimestamp","outputs":[{"internalType":"uint48","name":"value","type":"uint48"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint48","name":"captureTimestamp","type":"uint48"},{"internalType":"bytes","name":"hints","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"slash","outputs":[{"internalType":"uint256","name":"slashedAmount","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint48","name":"captureTimestamp","type":"uint48"},{"internalType":"bytes","name":"hints","type":"bytes"}],"stateMutability":"view","type":"function","name":"slashableStake","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"staticDelegateCall"},{"inputs":[],"stateMutability":"view","type":"function","name":"vault","outputs":[{"internalType":"address","name":"","type":"address"}]}],"devdoc":{"kind":"dev","methods":{"cumulativeSlash(bytes32,address)":{"params":{"operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"},"returns":{"_0":"cumulative slash amount"}},"cumulativeSlashAt(bytes32,address,uint48,bytes)":{"params":{"hint":"hint for the checkpoint index","operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)","timestamp":"time point to get the cumulative slash amount until (inclusively)"},"returns":{"_0":"cumulative slash amount until the given timestamp (inclusively)"}},"initialize(bytes)":{"params":{"data":"some data to use"}},"slash(bytes32,address,uint256,uint48,bytes)":{"details":"Only a network middleware can call this function.","params":{"amount":"maximum amount of the collateral to be slashed","captureTimestamp":"time point when the stake was captured","hints":"hints for checkpoints' indexes","operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"},"returns":{"slashedAmount":"virtual amount of the collateral slashed"}},"slashableStake(bytes32,address,uint48,bytes)":{"params":{"captureTimestamp":"time point to get the stake amount at","hints":"hints for the checkpoints' indexes","operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"},"returns":{"amount":"slashable amount of the stake"}},"staticDelegateCall(address,bytes)":{"details":"It allows to use this contract's storage on-chain.","params":{"data":"data to make a delegatecall with","target":"address of the contract to make a delegatecall to"}}},"version":1},"userdoc":{"kind":"user","methods":{"BURNER_GAS_LIMIT()":{"notice":"Get a gas limit for the burner."},"BURNER_RESERVE()":{"notice":"Get a reserve gas between the gas limit check and the burner's execution."},"FACTORY()":{"notice":"Get the factory's address."},"NETWORK_MIDDLEWARE_SERVICE()":{"notice":"Get the network middleware service's address."},"TYPE()":{"notice":"Get the entity's type."},"VAULT_FACTORY()":{"notice":"Get the vault factory's address."},"cumulativeSlash(bytes32,address)":{"notice":"Get a cumulative slash amount for an operator on a subnetwork."},"cumulativeSlashAt(bytes32,address,uint48,bytes)":{"notice":"Get a cumulative slash amount for an operator on a subnetwork until a given timestamp (inclusively) using a hint."},"initialize(bytes)":{"notice":"Initialize this entity contract by using a given data."},"isBurnerHook()":{"notice":"Get if the burner is needed to be called on a slashing."},"latestSlashedCaptureTimestamp(bytes32,address)":{"notice":"Get the latest capture timestamp that was slashed on a subnetwork."},"slash(bytes32,address,uint256,uint48,bytes)":{"notice":"Perform a slash using a subnetwork for a particular operator by a given amount using hints."},"slashableStake(bytes32,address,uint48,bytes)":{"notice":"Get a slashable amount of a stake got at a given capture timestamp using hints."},"staticDelegateCall(address,bytes)":{"notice":"Make a delegatecall from this contract to a given target contract with a particular data (always reverts with a return data)."},"vault()":{"notice":"Get the vault's address."}},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/contracts/slasher/Slasher.sol":"Slasher"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b","urls":["bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609","dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardUpgradeable.sol":{"keccak256":"0xb44e086e941292cdc7f440de51478493894ef0b1aeccb0c4047445919f667f74","urls":["bzz-raw://942dad22fbdc1669f025540ba63aa3ccfad5f8458fc5d4525b31ebf272e7af45","dweb:/ipfs/Qmdo4X2M82aM3AMoW2kf2jhYkSCyC4T1pHNd6obdsDFnAB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d","urls":["bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875","dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol":{"keccak256":"0xe19a4d5f31d2861e7344e8e535e2feafb913d806d3e2b5fe7782741a2a7094fe","urls":["bzz-raw://4aed79c0fa6f0546ed02f2f683e8f77f0fd2ed7eb34d8bbf3d373c9a6d95b13c","dweb:/ipfs/QmWqVz6UAVqmnWU5pqYPt1o6iDEZyPaBraAA3rKfTTSfYj"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/Checkpoints.sol":{"keccak256":"0xbdc5e074d7dd6678f67e92b1a51a20226801a407b0e1af3da367c5d1ff4519ad","urls":["bzz-raw://a36cca6b22fff3db16fc789ff6c60eea71d4b156065d4d0c83a0bc5e91a77a8b","dweb:/ipfs/QmYN3exd5AemxjBrN8XMB1p5LbbE16uC3sjbYjwi8AjcGR"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/types/Time.sol":{"keccak256":"0xc7755af115020049e4140f224f9ee88d7e1799ffb0646f37bf0df24bf6213f58","urls":["bzz-raw://7f09bf94d5274334ec021f61a04659db303f31e60460e14b709c9bf187740111","dweb:/ipfs/QmNvgomZYUwFAt4cZbPWAiTeSZQreGehY9BK5xyVJsUttb"],"license":"MIT"},"src/contracts/common/Entity.sol":{"keccak256":"0x3d61a932995b8443381f3950542d388223a2c26dd5d29a3274dea3baa7388bd7","urls":["bzz-raw://7cdf5f03ca72fd263fd32ff59c8d88ddca911ae83896a287d10772c1bbe9b138","dweb:/ipfs/QmbP84r5BWT1Rn9AYTntWSf3xUMTTCohTZJFhbBhDXFoHa"],"license":"BUSL-1.1"},"src/contracts/common/StaticDelegateCallable.sol":{"keccak256":"0x350029aa8955eacaffffaeb58babc5c98e80ebc5c5db388ed17ee6465f4a9d90","urls":["bzz-raw://eb392a8ee9050e0af606897df63e3404e3829e8b688b580663892f9664195764","dweb:/ipfs/QmaXC8jqV8UrrAFkzXTEv2fJF56sy33HhLxAzaRZmUxuXD"],"license":"BUSL-1.1"},"src/contracts/libraries/Checkpoints.sol":{"keccak256":"0xba90097c8bfe0a975499428b5f8ac5569483c7d92ccc28c12d70de416aae040c","urls":["bzz-raw://12f5d93ca94cd06d3147db68993165a58e17903ed53682560de61f3085ad4609","dweb:/ipfs/QmePiuAqvXprMLmFZkGZeGjvGPAvsEDHfCDv7BoQhXu9xE"],"license":"MIT"},"src/contracts/libraries/Subnetwork.sol":{"keccak256":"0xf5ef5506fd66082b3c2e7f3df37529f5a8efad32ac62e7c8914bd63219190bfe","urls":["bzz-raw://ba031a54ee0d0e9a270c2b9e18437f5668cfeb659cfd5fe0677459d7fcac2a56","dweb:/ipfs/QmReP3H7qQ78tAfgLnJKsNEQNCQfF1X1Get38Ffd4kzq32"],"license":"MIT"},"src/contracts/slasher/BaseSlasher.sol":{"keccak256":"0x190e5dce196a061bdad42468c52e9f5b0eb7810cd7d0c19f04d6a2e94984f1b6","urls":["bzz-raw://07ca08d0cd43c2fe5d54a5577f6bdd522ced410f5d3a52e764deaa7ba26b5f06","dweb:/ipfs/QmZe3PiMKBQKWcwodaLupragdqxPjgS4v1qMC7RXau8hDF"],"license":"BUSL-1.1"},"src/contracts/slasher/Slasher.sol":{"keccak256":"0xeee0cb25fad58d496fdcc641d852d11bae06e6ceed5230ae21150964175c494f","urls":["bzz-raw://34aa27d21246a1bcee0b6a2afa8d9d613441156362430392f75d176511d58c61","dweb:/ipfs/Qmf53Y3zdGfH4PU2zpSGeHZ8mMLzLXCtmkQrG5mnVJECQ3"],"license":"BUSL-1.1"},"src/interfaces/common/IEntity.sol":{"keccak256":"0x8ef4b63d6da63489778ccd5f8d13ebdd527dd4b62730b2c616df5af7474d2d21","urls":["bzz-raw://5a8d69576a9219d85c50816a18ad53a4d53cfcb27ed38b8cccc808dc2734b71b","dweb:/ipfs/QmYVN3P4Q4REvBWJ97TbAcaxm3uyB2anV6NSGa6ZtSwcEv"],"license":"MIT"},"src/interfaces/common/IMigratableEntity.sol":{"keccak256":"0x8f5f2809f3afbe8ebfbb365dd7b57b4dd3b6f9943a6187eaf648d45895b8e3c4","urls":["bzz-raw://0ffe640537d539e7a4fde70d30d3e4c57f4ba9c2c25c450cea713aae38e8fd5c","dweb:/ipfs/QmSUTGzvdcn1R1KB7tLThMRtESsfPbeXDhhhKWGtntzBds"],"license":"MIT"},"src/interfaces/common/IRegistry.sol":{"keccak256":"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb","urls":["bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014","dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK"],"license":"MIT"},"src/interfaces/common/IStaticDelegateCallable.sol":{"keccak256":"0xa335d4e81b9071b7de66ef92b43ff20671d86516eb1be46fef29a3483cd3f5d5","urls":["bzz-raw://d464b9db863c14c05547d2b23352f2e9b7b784799cf09f6bbc4906a2a74e3516","dweb:/ipfs/QmUVWzFvJz7eEbDQKiFTTzwi7TEbjcs3VmwdM4kuptAKvi"],"license":"MIT"},"src/interfaces/delegator/IBaseDelegator.sol":{"keccak256":"0x96bb312f032e17accce3f8f80936d99468029d6b37c9ca74acdb4b026a0148ee","urls":["bzz-raw://2a66dcb5b7d1a6ef6a363431ea98ebd78bc4fdd3d7a134d9b542dc66e7d025c2","dweb:/ipfs/QmRhTPLd2ZAyRHmJUFUcWKs9b3if49QY17LYZuRqWmghw8"],"license":"MIT"},"src/interfaces/service/INetworkMiddlewareService.sol":{"keccak256":"0x347afc7fcf1fbcdb96d66162070ef6c78aed27b3af2c1d5dfb4e511840631783","urls":["bzz-raw://2d90b8ceb495159e8e4e95d76447719dd166443f67dfabdd942846162071595c","dweb:/ipfs/QmVVuiAWYx92T6vBvNMKZfTvraCf1fa16BsUKkdNs3hdHA"],"license":"MIT"},"src/interfaces/slasher/IBaseSlasher.sol":{"keccak256":"0x7c82528b445659c313ab77335c407b0b6efe5e79027187bb287f7bc74202b404","urls":["bzz-raw://0274c90aa5df1aa6bb470a6aab53992fb14fd7e5472c9430416505b29647d9cf","dweb:/ipfs/QmckbmJLDetPemVzCnnGcKYWAZV2BRFXGDsjiaec8jkHxx"],"license":"MIT"},"src/interfaces/slasher/IBurner.sol":{"keccak256":"0xaf495dacc19ae0b3c787ba8021c5944927d70261536addd234d7dab146158c2b","urls":["bzz-raw://9b3cc66251008be6ff9fc8b11ecc6831d5a9dca49a3fe9817fcd970253c1d447","dweb:/ipfs/QmVxfb9ALGdF9W3SN2h41gQbUct6tawvu5bw4K89kFQ4HW"],"license":"MIT"},"src/interfaces/slasher/ISlasher.sol":{"keccak256":"0x34d226d67a3d5e16571f2fac91a8b9773551bcc41c88a96279669dd78d192625","urls":["bzz-raw://7a6e8c1462ee4a1b0f745414be043c09012ea676613790aba004b06c85c980d1","dweb:/ipfs/QmadjNEbHKRthtA1EeNy3Kg2sXpejH2KBeHm8QZtBPvXbJ"],"license":"MIT"},"src/interfaces/vault/IVault.sol":{"keccak256":"0xffee01d383cd4e1a5530c614bf4360c1ef070c288abec9da1eb531b51bc07235","urls":["bzz-raw://04f0046cac285d8ec44ebbb1f79dc94fab4495767190cad8364fbc1fafaadfb9","dweb:/ipfs/QmUawAunwzXfCyShWfhKeThAgKtqe51hmrxvrXvM772M2R"],"license":"MIT"},"src/interfaces/vault/IVaultStorage.sol":{"keccak256":"0x592626f13754194f83047135de19229c49390bd59e34659b1bb38be71d973a22","urls":["bzz-raw://06a6a9dfddd05e580b32bebe2cff4f63ba26a653180676d58225dd30d9c89d3e","dweb:/ipfs/QmdgzBeY6Sxo8mGtyBxtv1tM1c2kU6J6zjeRd7vuXm4DU6"],"license":"MIT"}},"version":1},"id":93} \ No newline at end of file diff --git a/out/SlasherFactory.sol/SlasherFactory.json b/out/SlasherFactory.sol/SlasherFactory.json index 89461469..5f20ab3f 100644 --- a/out/SlasherFactory.sol/SlasherFactory.json +++ b/out/SlasherFactory.sol/SlasherFactory.json @@ -1 +1 @@ -{"abi":[{"type":"constructor","inputs":[{"name":"owner_","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"blacklist","inputs":[{"name":"type_","type":"uint64","internalType":"uint64"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"blacklisted","inputs":[{"name":"type_","type":"uint64","internalType":"uint64"}],"outputs":[{"name":"value","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"create","inputs":[{"name":"type_","type":"uint64","internalType":"uint64"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"entity_","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"entity","inputs":[{"name":"index","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"implementation","inputs":[{"name":"type_","type":"uint64","internalType":"uint64"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"isEntity","inputs":[{"name":"entity_","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"totalEntities","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"totalTypes","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"whitelist","inputs":[{"name":"implementation_","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"AddEntity","inputs":[{"name":"entity","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Blacklist","inputs":[{"name":"type_","type":"uint64","indexed":true,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Whitelist","inputs":[{"name":"implementation","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"error","name":"AlreadyBlacklisted","inputs":[]},{"type":"error","name":"AlreadyWhitelisted","inputs":[]},{"type":"error","name":"ERC1167FailedCreateClone","inputs":[]},{"type":"error","name":"EntityNotExist","inputs":[]},{"type":"error","name":"InvalidImplementation","inputs":[]},{"type":"error","name":"InvalidType","inputs":[]},{"type":"error","name":"OwnableInvalidOwner","inputs":[{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"OwnableUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"}]}],"bytecode":{"object":"0x60803460b557601f6109a338819003918201601f19168301916001600160401b0383118484101760b95780849260209460405283398101031260b557516001600160a01b03908181169081900360b5578015609d57600280546001600160a01b03198116831790915560405192167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a36108d590816100ce8239f35b604051631e4fbdf760e01b81525f6004820152602490fd5b5f80fd5b634e487b7160e01b5f52604160045260245ffdfe6080604090808252600480361015610015575f80fd5b5f3560e01c91826314887c5814610698575081635cd8b15e1461067b578163715018a6146106205781638da5cb5b146105f85781639b19251a14610485578163b42ba2a21461041a578163b572a96614610375578163b6caa11914610338578163cd108ef814610194578163f15df2e51461016e578163f2fde38b146100dd575063f9661602146100a4575f80fd5b346100d95760203660031901126100d9576020906100c86100c36106d1565b61073e565b90516001600160a01b039091168152f35b5f80fd5b82346100d95760203660031901126100d9576001600160a01b038235818116939192908490036100d95761010f610799565b8315610158575050600254826bffffffffffffffffffffffff60a01b821617600255167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3005b905f6024925191631e4fbdf760e01b8352820152fd5b82346100d9575f3660031901126100d95767ffffffffffffffff60209254169051908152f35b82346100d957806003193601126100d9576101ad6106d1565b906024359167ffffffffffffffff8084116100d957366023850112156100d95783850135918183116100d957602485019460248436920101116100d9576e5af43d82803e903d91602b57fd5bf36102038261073e565b915f54908487519160208301938452168782015260608082015261023d8161022f60808201898c61071e565b03601f1981018352826106e8565b51902091763d602d80600a3d3981f3363d3d373d3d3d363d7300000062ffffff8260881c16175f5260781b1760205260018060a01b0390603760095ff5169384156103285761028b85610836565b50835192857fb919910dcefbf753bfd926ab3b1d3f85d877190c3d01ba1bd585047b99b99f0b5f80a2853b156100d957836102dd5f93829363439fab9160e01b845260208b850152602484019161071e565b038183885af1801561031e576102f8575b6020848451908152f35b811161030b5760209350815283806102ee565b604184634e487b7160e01b5f525260245ffd5b83513d5f823e3d90fd5b83516330be1a3d60e21b81528690fd5b82346100d95760203660031901126100d95760209067ffffffffffffffff61035e6106d1565b165f526003825260ff815f20541690519015158152f35b82346100d95760203660031901126100d95761038f6106d1565b91610398610799565b67ffffffffffffffff8082541693169283101561040c57825f52600360205260ff825f2054166103fe5750815f5260036020525f20600160ff198254161790557ffc8245c2838846b295ae66fbe0d08e20c799b737c93b56f7b209df2e5fa2d4585f80a2005b905163f53de75f60e01b8152fd5b905163b968846160e01b8152fd5b82346100d95760203660031901126100d95781355f54811015610472575f80527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563015490516001600160a01b03909116815260209150f35b603283634e487b7160e01b5f525260245ffd5b9050346100d957602091826003193601126100d95781356001600160a01b0381811694918590036100d9576104b8610799565b82516202dd3160ec1b81529082828681895afa9182156105ee575f926105b6575b501630148015919061053a575b5061052d576104f4836107c5565b1561052057827feb73900b98b6a3e2b8b01708fe544760cf570d21e7fbe5225f24e48b5b2b432e5f80a2005b5163b73e95e160e01b8152fd5b5163340aafcd60e11b8152fd5b8251635d927f4560e11b815290915081818581885afa91821561031e575f92610577575b505067ffffffffffffffff80845416911614155f6104e6565b90809250813d83116105af575b61058e81836106e8565b810103126100d9575167ffffffffffffffff811681036100d9575f8061055e565b503d610584565b9091508281813d83116105e7575b6105ce81836106e8565b810103126100d9575181811681036100d957905f6104d9565b503d6105c4565b84513d5f823e3d90fd5b82346100d9575f3660031901126100d95760025490516001600160a01b039091168152602090f35b346100d9575f3660031901126100d957610638610799565b600280546001600160a01b031981169091555f906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b82346100d9575f3660031901126100d9576020905f549051908152f35b9150346100d95760203660031901126100d957356001600160a01b03811692908390036100d9576020925f52600183525f205415158152f35b6004359067ffffffffffffffff821682036100d957565b90601f8019910116810190811067ffffffffffffffff82111761070a57604052565b634e487b7160e01b5f52604160045260245ffd5b908060209392818452848401375f828201840152601f01601f1916010190565b67ffffffffffffffff166004548110156107855760045f527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b01546001600160a01b031690565b634e487b7160e01b5f52603260045260245ffd5b6002546001600160a01b031633036107ad57565b60405163118cdaa760e01b8152336004820152602490fd5b805f52600560205260405f2054155f1461083157600454600160401b81101561070a5760018101806004558110156107855781907f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b0155600454905f52600560205260405f2055600190565b505f90565b805f52600160205260405f2054155f14610831575f54600160401b81101561070a5760018101805f558110156107855781907f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e56301555f54905f52600160205260405f205560019056fea2646970667358221220b9e4ca7750d96bd07e19e6c97b1256ac71bb57abfad22ceca77a28a02ce5ca9f64736f6c63430008190033","sourceMap":"177:120:71:-:0;;;;;;;;;;;;;-1:-1:-1;;177:120:71;;;;-1:-1:-1;;;;;177:120:71;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;177:120:71;;;;;;;;;;1273:26:33;;1269:95;;3004:6;177:120:71;;-1:-1:-1;;;;;;177:120:71;;;;;;;;;;;3052:40:33;-1:-1:-1;;3052:40:33;177:120:71;;;;;;;1269:95:33;177:120:71;;-1:-1:-1;;;1322:31:33;;-1:-1:-1;1322:31:33;;;177:120:71;;;1322:31:33;177:120:71;-1:-1:-1;177:120:71;;;;;;-1:-1:-1;177:120:71;;;;;-1:-1:-1;177:120:71","linkReferences":{}},"deployedBytecode":{"object":"0x6080604090808252600480361015610015575f80fd5b5f3560e01c91826314887c5814610698575081635cd8b15e1461067b578163715018a6146106205781638da5cb5b146105f85781639b19251a14610485578163b42ba2a21461041a578163b572a96614610375578163b6caa11914610338578163cd108ef814610194578163f15df2e51461016e578163f2fde38b146100dd575063f9661602146100a4575f80fd5b346100d95760203660031901126100d9576020906100c86100c36106d1565b61073e565b90516001600160a01b039091168152f35b5f80fd5b82346100d95760203660031901126100d9576001600160a01b038235818116939192908490036100d95761010f610799565b8315610158575050600254826bffffffffffffffffffffffff60a01b821617600255167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3005b905f6024925191631e4fbdf760e01b8352820152fd5b82346100d9575f3660031901126100d95767ffffffffffffffff60209254169051908152f35b82346100d957806003193601126100d9576101ad6106d1565b906024359167ffffffffffffffff8084116100d957366023850112156100d95783850135918183116100d957602485019460248436920101116100d9576e5af43d82803e903d91602b57fd5bf36102038261073e565b915f54908487519160208301938452168782015260608082015261023d8161022f60808201898c61071e565b03601f1981018352826106e8565b51902091763d602d80600a3d3981f3363d3d373d3d3d363d7300000062ffffff8260881c16175f5260781b1760205260018060a01b0390603760095ff5169384156103285761028b85610836565b50835192857fb919910dcefbf753bfd926ab3b1d3f85d877190c3d01ba1bd585047b99b99f0b5f80a2853b156100d957836102dd5f93829363439fab9160e01b845260208b850152602484019161071e565b038183885af1801561031e576102f8575b6020848451908152f35b811161030b5760209350815283806102ee565b604184634e487b7160e01b5f525260245ffd5b83513d5f823e3d90fd5b83516330be1a3d60e21b81528690fd5b82346100d95760203660031901126100d95760209067ffffffffffffffff61035e6106d1565b165f526003825260ff815f20541690519015158152f35b82346100d95760203660031901126100d95761038f6106d1565b91610398610799565b67ffffffffffffffff8082541693169283101561040c57825f52600360205260ff825f2054166103fe5750815f5260036020525f20600160ff198254161790557ffc8245c2838846b295ae66fbe0d08e20c799b737c93b56f7b209df2e5fa2d4585f80a2005b905163f53de75f60e01b8152fd5b905163b968846160e01b8152fd5b82346100d95760203660031901126100d95781355f54811015610472575f80527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563015490516001600160a01b03909116815260209150f35b603283634e487b7160e01b5f525260245ffd5b9050346100d957602091826003193601126100d95781356001600160a01b0381811694918590036100d9576104b8610799565b82516202dd3160ec1b81529082828681895afa9182156105ee575f926105b6575b501630148015919061053a575b5061052d576104f4836107c5565b1561052057827feb73900b98b6a3e2b8b01708fe544760cf570d21e7fbe5225f24e48b5b2b432e5f80a2005b5163b73e95e160e01b8152fd5b5163340aafcd60e11b8152fd5b8251635d927f4560e11b815290915081818581885afa91821561031e575f92610577575b505067ffffffffffffffff80845416911614155f6104e6565b90809250813d83116105af575b61058e81836106e8565b810103126100d9575167ffffffffffffffff811681036100d9575f8061055e565b503d610584565b9091508281813d83116105e7575b6105ce81836106e8565b810103126100d9575181811681036100d957905f6104d9565b503d6105c4565b84513d5f823e3d90fd5b82346100d9575f3660031901126100d95760025490516001600160a01b039091168152602090f35b346100d9575f3660031901126100d957610638610799565b600280546001600160a01b031981169091555f906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b82346100d9575f3660031901126100d9576020905f549051908152f35b9150346100d95760203660031901126100d957356001600160a01b03811692908390036100d9576020925f52600183525f205415158152f35b6004359067ffffffffffffffff821682036100d957565b90601f8019910116810190811067ffffffffffffffff82111761070a57604052565b634e487b7160e01b5f52604160045260245ffd5b908060209392818452848401375f828201840152601f01601f1916010190565b67ffffffffffffffff166004548110156107855760045f527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b01546001600160a01b031690565b634e487b7160e01b5f52603260045260245ffd5b6002546001600160a01b031633036107ad57565b60405163118cdaa760e01b8152336004820152602490fd5b805f52600560205260405f2054155f1461083157600454600160401b81101561070a5760018101806004558110156107855781907f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b0155600454905f52600560205260405f2055600190565b505f90565b805f52600160205260405f2054155f14610831575f54600160401b81101561070a5760018101805f558110156107855781907f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e56301555f54905f52600160205260405f205560019056fea2646970667358221220b9e4ca7750d96bd07e19e6c97b1256ac71bb57abfad22ceca77a28a02ce5ca9f64736f6c63430008190033","sourceMap":"177:120:71:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;177:120:71;;;;;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;177:120:71;;;;;;;;;;;;;;;;;-1:-1:-1;;177:120:71;;;;-1:-1:-1;;;;;177:120:71;;;;;;;;;;;;;;1500:62:33;;:::i;:::-;2627:22;;2623:91;;177:120:71;;3004:6:33;177:120:71;;;;;;;;3004:6:33;177:120:71;;3052:40:33;177:120:71;3052:40:33;;177:120:71;2623:91:33;177:120:71;;;;;2672:31:33;;;;;;;;177:120:71;2672:31:33;177:120:71;;;;;;;-1:-1:-1;;177:120:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2364:565:37;2248:21:75;;;:::i;:::-;177:120:71;;;;;;;2299:40:75;177:120:71;2299:40:75;;177:120:71;;;;;;;;;;;;;2299:40:75;177:120:71;;;;;;;;:::i;:::-;2299:40:75;;;;;;;;;:::i;:::-;177:120:71;2289:51:75;;2364:565:37;;;;;;;;177:120:71;2364:565:37;;;;177:120:71;2364:565:37;177:120:71;;;;;2364:565:37;;;177:120:71;2364:565:37;177:120:71;2942:22:37;;;2938:86;;8409:50:62;;;:::i;:::-;;177:120:71;;1077:18:79;;;177:120:71;1077:18:79;;2382:33:75;;;;;177:120:71;;;;;;;;;2382:33:75;;177:120:71;2382:33:75;;;177:120:71;;;;;;:::i;:::-;2382:33:75;;;;;;;;;;;;177:120:71;;;;;;;;;2382:33:75;177:120:71;;;;;;;;;2382:33:75;;;;177:120:71;;;;;;;;;;;;2382:33:75;177:120:71;;;;;;;;;2938:86:37;177:120:71;;-1:-1:-1;;;2987:26:37;;177:120:71;;2987:26:37;177:120:71;;;;;;;-1:-1:-1;;177:120:71;;;;;;;;;:::i;:::-;;;;633:54:75;177:120:71;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;177:120:71;;;;;;:::i;:::-;1500:62:33;;;:::i;:::-;177:120:71;;;;;;;822:21:75;;;;818:72;;177:120:71;;;1946:11:75;177:120:71;;;;;;;;1942:76:75;;177:120:71;;;;1946:11:75;177:120:71;;;;2049:4:75;177:120:71;;;;;;;;2069:16:75;177:120:71;2069:16:75;;177:120:71;1942:76:75;177:120:71;;-1:-1:-1;;;1987:20:75;;;818:72;177:120:71;;-1:-1:-1;;;866:13:75;;;177:120:71;;;;;;;-1:-1:-1;;177:120:71;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;177:120:71;;;;;;;-1:-1:-1;177:120:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;177:120:71;;;;;;;;;;1500:62:33;;:::i;:::-;177:120:71;;-1:-1:-1;;;1476:34:75;;177:120:71;1476:34:75;177:120:71;1476:34:75;177:120:71;1476:34:75;;;;;;;;177:120:71;1476:34:75;;;177:120:71;-1:-1:-1;177:120:71;1522:4:75;1476:51;;;;;:102;;177:120:71;1472:163:75;;;8409:50:62;;;:::i;:::-;1648:49:75;1644:107;;1766:26;;177:120:71;1766:26:75;;177:120:71;1644:107:75;177:120:71;-1:-1:-1;;;1720:20:75;;;1472:163;177:120:71;-1:-1:-1;;;1601:23:75;;;1476:102;177:120:71;;-1:-1:-1;;;1531:31:75;;177:120:71;;-1:-1:-1;177:120:71;;1531:31:75;177:120:71;1531:31:75;;;;;;;;177:120:71;1531:31:75;;;1476:102;177:120:71;;;;;;;;;1531:47:75;;1476:102;;;1531:31;;;;;;;;;;;;;;;;:::i;:::-;;;177:120:71;;;;;;;;;;;;1531:31:75;;;;;;;;;1476:34;;;;;;;;;;;;;;;;;:::i;:::-;;;177:120:71;;;;;;;;;;;;1476:34:75;;;;;;;;;;177:120:71;;;;;;;;;;;;;;;;-1:-1:-1;;177:120:71;;;;1710:6:33;177:120:71;;;-1:-1:-1;;;;;177:120:71;;;;;;;;;;;;;;-1:-1:-1;;177:120:71;;;;1500:62:33;;:::i;:::-;3004:6;177:120:71;;-1:-1:-1;;;;;;177:120:71;;;;;;;-1:-1:-1;;;;;177:120:71;3052:40:33;177:120:71;;3052:40:33;177:120:71;;;;;;;;-1:-1:-1;;177:120:71;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;177:120:71;;;;;-1:-1:-1;;;;;177:120:71;;;;;;;;;;;;;4360:14:62;177:120:71;;;;;4360:26:62;;177:120:71;;;;;;;;;;;;;;:::o;:::-;;;2299:40:75;;177:120:71;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;177:120:71;;;;;;;;-1:-1:-1;;177:120:71;;;;:::o;1192:143:75:-;177:120:71;;1291:27:75;177:120:71;;;;;;1291:27:75;-1:-1:-1;177:120:71;;;;-1:-1:-1;;;;;177:120:71;;1192:143:75:o;177:120:71:-;;;;-1:-1:-1;177:120:71;;1291:27:75;177:120:71;;-1:-1:-1;177:120:71;1796:162:33;1710:6;177:120:71;-1:-1:-1;;;;;177:120:71;735:10:48;1855:23:33;1851:101;;1796:162::o;1851:101::-;177:120:71;;-1:-1:-1;;;1901:40:33;;735:10:48;1901:40:33;;;177:120:71;;;1901:40:33;2241:406:62;177:120:71;-1:-1:-1;177:120:71;4360:14:62;177:120:71;;;-1:-1:-1;177:120:71;;4360:26:62;2320:321;177:120:71;;;;;-1:-1:-1;;;177:120:71;;;;;4360:14:62;177:120:71;;;;;;;;;;;;;;;;;;-1:-1:-1;177:120:71;4360:14:62;177:120:71;;;-1:-1:-1;177:120:71;;4360:14:62;2576:11;:::o;2320:321::-;2618:12;-1:-1:-1;2618:12:62;:::o;2241:406::-;177:120:71;;;4360:14:62;177:120:71;;;;;;4360:26:62;2320:321;177:120:71;;;;;-1:-1:-1;;;177:120:71;;;;;4360:14:62;177:120:71;;;;;;;;;;;;;;;;;;;;4360:14:62;177:120:71;;;;;;4360:14:62;2576:11;:::o","linkReferences":{}},"methodIdentifiers":{"blacklist(uint64)":"b572a966","blacklisted(uint64)":"b6caa119","create(uint64,bytes)":"cd108ef8","entity(uint256)":"b42ba2a2","implementation(uint64)":"f9661602","isEntity(address)":"14887c58","owner()":"8da5cb5b","renounceOwnership()":"715018a6","totalEntities()":"5cd8b15e","totalTypes()":"f15df2e5","transferOwnership(address)":"f2fde38b","whitelist(address)":"9b19251a"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner_\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"AlreadyBlacklisted\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AlreadyWhitelisted\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ERC1167FailedCreateClone\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"EntityNotExist\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidImplementation\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidType\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"entity\",\"type\":\"address\"}],\"name\":\"AddEntity\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"type_\",\"type\":\"uint64\"}],\"name\":\"Blacklist\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"Whitelist\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"type_\",\"type\":\"uint64\"}],\"name\":\"blacklist\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"type_\",\"type\":\"uint64\"}],\"name\":\"blacklisted\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"value\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"type_\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"create\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"entity_\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"entity\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"type_\",\"type\":\"uint64\"}],\"name\":\"implementation\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"entity_\",\"type\":\"address\"}],\"name\":\"isEntity\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalEntities\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalTypes\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"implementation_\",\"type\":\"address\"}],\"name\":\"whitelist\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"ERC1167FailedCreateClone()\":[{\"details\":\"A clone instance deployment failed.\"}],\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}]},\"events\":{\"AddEntity(address)\":{\"params\":{\"entity\":\"address of the added entity\"}},\"Blacklist(uint64)\":{\"details\":\"The given type is still deployable.\",\"params\":{\"type_\":\"type that was blacklisted\"}},\"Whitelist(address)\":{\"params\":{\"implementation\":\"address of the new implementation\"}}},\"kind\":\"dev\",\"methods\":{\"blacklist(uint64)\":{\"details\":\"The given type will still be deployable.\",\"params\":{\"type_\":\"type to blacklist\"}},\"create(uint64,bytes)\":{\"details\":\"CREATE2 salt is constructed from the given parameters.\",\"params\":{\"data\":\"initial data for the entity creation\",\"type_\":\"type's implementation to use\"},\"returns\":{\"entity_\":\"address of the entity\"}},\"entity(uint256)\":{\"params\":{\"index\":\"index of the entity to get\"},\"returns\":{\"_0\":\"address of the entity\"}},\"implementation(uint64)\":{\"params\":{\"type_\":\"position to get the implementation at\"},\"returns\":{\"_0\":\"address of the implementation\"}},\"isEntity(address)\":{\"params\":{\"account\":\"address to check\"},\"returns\":{\"_0\":\"if the given address is an entity\"}},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"totalEntities()\":{\"returns\":{\"_0\":\"total number of entities added\"}},\"totalTypes()\":{\"returns\":{\"_0\":\"total number of types\"}},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"},\"whitelist(address)\":{\"params\":{\"implementation\":\"address of the new implementation\"}}},\"version\":1},\"userdoc\":{\"events\":{\"AddEntity(address)\":{\"notice\":\"Emitted when an entity is added.\"},\"Blacklist(uint64)\":{\"notice\":\"Emitted when a type is blacklisted (e.g., in case of invalid implementation).\"},\"Whitelist(address)\":{\"notice\":\"Emitted when a new type is whitelisted.\"}},\"kind\":\"user\",\"methods\":{\"blacklist(uint64)\":{\"notice\":\"Blacklist a type of entity.\"},\"blacklisted(uint64)\":{\"notice\":\"Get if a type is blacklisted (e.g., in case of invalid implementation).\"},\"create(uint64,bytes)\":{\"notice\":\"Create a new entity at the factory.\"},\"entity(uint256)\":{\"notice\":\"Get an entity given its index.\"},\"implementation(uint64)\":{\"notice\":\"Get the implementation for a given type.\"},\"isEntity(address)\":{\"notice\":\"Get if a given address is an entity.\"},\"totalEntities()\":{\"notice\":\"Get a total number of entities.\"},\"totalTypes()\":{\"notice\":\"Get the total number of whitelisted types.\"},\"whitelist(address)\":{\"notice\":\"Whitelist a new type of entity.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/contracts/SlasherFactory.sol\":\"SlasherFactory\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"lib/openzeppelin-contracts/contracts/proxy/Clones.sol\":{\"keccak256\":\"0xd18408af8a91bedb3d56343eeb9b30eb852e6dea93a5e2d5c6db9ca4cb905155\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://061475b7302a732dc598907790f407417551c2b13e89daa57b3698489ef5484b\",\"dweb:/ipfs/QmdX5qmk3VSniSErFuD4aVawQxUi2MuUbP7spPcHddPfcX\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0x86c1470cbfd878491e5de030072b647352d36bd27122cffb928970b1945282aa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ad85dd393ee0a1917c57046abc5155f51f77844b2c6a42c05c1b8dd26d6ff3c1\",\"dweb:/ipfs/QmNqYc8To2NdnpP6E1tGz7t6A7beuENde5yovwov5pW1fA\"]},\"src/contracts/SlasherFactory.sol\":{\"keccak256\":\"0xbafc96e3d2511eb62942613645b4f5cbf6f603063a711b30e25940aaba08064c\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://489440f1181b1858e3b27a90ec6f514c0c287c602b4779676048213202165867\",\"dweb:/ipfs/QmRG7AQ9m9qHr8ofEvP1Ur8S379fFXTo9rmiWaAtZ9rsUc\"]},\"src/contracts/common/Factory.sol\":{\"keccak256\":\"0x41764643e6a2a3d80d694a3efee91f50a2fd084fb2bcd13566259443840e6369\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://fefc1e2a2189275388826f4f82ca421ca79c2866d3ef39dc2c7df46fe7cbf7c9\",\"dweb:/ipfs/QmSJ4VGmgpYUv5ni4ZYoSV4qMuZrk5DLjyB3Vv9NbFgeNZ\"]},\"src/contracts/common/Registry.sol\":{\"keccak256\":\"0x4a4004836d920953a8ec6e223de9a330f43acf7a5b93c6b8b3e4a95e0f129889\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://e8bdda207f3852c683a2b481602239a914f7e26bcd042ade618e263a43b67652\",\"dweb:/ipfs/Qmb8GZykJWxZcfwNp3SqhFizDFydFuV6LXgemV3vnWyLyu\"]},\"src/interfaces/ISlasherFactory.sol\":{\"keccak256\":\"0x30018af5c2719d9b5cfacbfc0277017896815b3fcc4dfbea78813e6ae81c1e56\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5e028fbed23ab973d8d9eb2be4e53a528dd01248e3233f56ab0f8ac9a7c9c220\",\"dweb:/ipfs/Qmd9cHMRSE52ESmxMiu5gTBpRNmDHQK5q18f7UTj8DQke4\"]},\"src/interfaces/common/IEntity.sol\":{\"keccak256\":\"0x8ef4b63d6da63489778ccd5f8d13ebdd527dd4b62730b2c616df5af7474d2d21\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a8d69576a9219d85c50816a18ad53a4d53cfcb27ed38b8cccc808dc2734b71b\",\"dweb:/ipfs/QmYVN3P4Q4REvBWJ97TbAcaxm3uyB2anV6NSGa6ZtSwcEv\"]},\"src/interfaces/common/IFactory.sol\":{\"keccak256\":\"0xe835ebda85d181b70874f6eb53f2a892aa3223d23efe247060da9b51d2b8e969\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://48b3dfb5f0491d90efbc8ed498b45358260ebac6e8f2aa0106b8b8fabdc988cb\",\"dweb:/ipfs/QmWnnCs3xiHeUvYfUWMJTSFZWc34bSYn9Zpm7f7syra3TA\"]},\"src/interfaces/common/IRegistry.sol\":{\"keccak256\":\"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014\",\"dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.25+commit.b61c2a91"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"owner_","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"AlreadyBlacklisted"},{"inputs":[],"type":"error","name":"AlreadyWhitelisted"},{"inputs":[],"type":"error","name":"ERC1167FailedCreateClone"},{"inputs":[],"type":"error","name":"EntityNotExist"},{"inputs":[],"type":"error","name":"InvalidImplementation"},{"inputs":[],"type":"error","name":"InvalidType"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"OwnableInvalidOwner"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"OwnableUnauthorizedAccount"},{"inputs":[{"internalType":"address","name":"entity","type":"address","indexed":true}],"type":"event","name":"AddEntity","anonymous":false},{"inputs":[{"internalType":"uint64","name":"type_","type":"uint64","indexed":true}],"type":"event","name":"Blacklist","anonymous":false},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"address","name":"implementation","type":"address","indexed":true}],"type":"event","name":"Whitelist","anonymous":false},{"inputs":[{"internalType":"uint64","name":"type_","type":"uint64"}],"stateMutability":"nonpayable","type":"function","name":"blacklist"},{"inputs":[{"internalType":"uint64","name":"type_","type":"uint64"}],"stateMutability":"view","type":"function","name":"blacklisted","outputs":[{"internalType":"bool","name":"value","type":"bool"}]},{"inputs":[{"internalType":"uint64","name":"type_","type":"uint64"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"create","outputs":[{"internalType":"address","name":"entity_","type":"address"}]},{"inputs":[{"internalType":"uint256","name":"index","type":"uint256"}],"stateMutability":"view","type":"function","name":"entity","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"uint64","name":"type_","type":"uint64"}],"stateMutability":"view","type":"function","name":"implementation","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"entity_","type":"address"}],"stateMutability":"view","type":"function","name":"isEntity","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[],"stateMutability":"view","type":"function","name":"totalEntities","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"totalTypes","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"},{"inputs":[{"internalType":"address","name":"implementation_","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"whitelist"}],"devdoc":{"kind":"dev","methods":{"blacklist(uint64)":{"details":"The given type will still be deployable.","params":{"type_":"type to blacklist"}},"create(uint64,bytes)":{"details":"CREATE2 salt is constructed from the given parameters.","params":{"data":"initial data for the entity creation","type_":"type's implementation to use"},"returns":{"entity_":"address of the entity"}},"entity(uint256)":{"params":{"index":"index of the entity to get"},"returns":{"_0":"address of the entity"}},"implementation(uint64)":{"params":{"type_":"position to get the implementation at"},"returns":{"_0":"address of the implementation"}},"isEntity(address)":{"params":{"account":"address to check"},"returns":{"_0":"if the given address is an entity"}},"owner()":{"details":"Returns the address of the current owner."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner."},"totalEntities()":{"returns":{"_0":"total number of entities added"}},"totalTypes()":{"returns":{"_0":"total number of types"}},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."},"whitelist(address)":{"params":{"implementation":"address of the new implementation"}}},"version":1},"userdoc":{"kind":"user","methods":{"blacklist(uint64)":{"notice":"Blacklist a type of entity."},"blacklisted(uint64)":{"notice":"Get if a type is blacklisted (e.g., in case of invalid implementation)."},"create(uint64,bytes)":{"notice":"Create a new entity at the factory."},"entity(uint256)":{"notice":"Get an entity given its index."},"implementation(uint64)":{"notice":"Get the implementation for a given type."},"isEntity(address)":{"notice":"Get if a given address is an entity."},"totalEntities()":{"notice":"Get a total number of entities."},"totalTypes()":{"notice":"Get the total number of whitelisted types."},"whitelist(address)":{"notice":"Whitelist a new type of entity."}},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/contracts/SlasherFactory.sol":"SlasherFactory"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts/contracts/access/Ownable.sol":{"keccak256":"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb","urls":["bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6","dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/Clones.sol":{"keccak256":"0xd18408af8a91bedb3d56343eeb9b30eb852e6dea93a5e2d5c6db9ca4cb905155","urls":["bzz-raw://061475b7302a732dc598907790f407417551c2b13e89daa57b3698489ef5484b","dweb:/ipfs/QmdX5qmk3VSniSErFuD4aVawQxUi2MuUbP7spPcHddPfcX"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0x86c1470cbfd878491e5de030072b647352d36bd27122cffb928970b1945282aa","urls":["bzz-raw://ad85dd393ee0a1917c57046abc5155f51f77844b2c6a42c05c1b8dd26d6ff3c1","dweb:/ipfs/QmNqYc8To2NdnpP6E1tGz7t6A7beuENde5yovwov5pW1fA"],"license":"MIT"},"src/contracts/SlasherFactory.sol":{"keccak256":"0xbafc96e3d2511eb62942613645b4f5cbf6f603063a711b30e25940aaba08064c","urls":["bzz-raw://489440f1181b1858e3b27a90ec6f514c0c287c602b4779676048213202165867","dweb:/ipfs/QmRG7AQ9m9qHr8ofEvP1Ur8S379fFXTo9rmiWaAtZ9rsUc"],"license":"BUSL-1.1"},"src/contracts/common/Factory.sol":{"keccak256":"0x41764643e6a2a3d80d694a3efee91f50a2fd084fb2bcd13566259443840e6369","urls":["bzz-raw://fefc1e2a2189275388826f4f82ca421ca79c2866d3ef39dc2c7df46fe7cbf7c9","dweb:/ipfs/QmSJ4VGmgpYUv5ni4ZYoSV4qMuZrk5DLjyB3Vv9NbFgeNZ"],"license":"BUSL-1.1"},"src/contracts/common/Registry.sol":{"keccak256":"0x4a4004836d920953a8ec6e223de9a330f43acf7a5b93c6b8b3e4a95e0f129889","urls":["bzz-raw://e8bdda207f3852c683a2b481602239a914f7e26bcd042ade618e263a43b67652","dweb:/ipfs/Qmb8GZykJWxZcfwNp3SqhFizDFydFuV6LXgemV3vnWyLyu"],"license":"BUSL-1.1"},"src/interfaces/ISlasherFactory.sol":{"keccak256":"0x30018af5c2719d9b5cfacbfc0277017896815b3fcc4dfbea78813e6ae81c1e56","urls":["bzz-raw://5e028fbed23ab973d8d9eb2be4e53a528dd01248e3233f56ab0f8ac9a7c9c220","dweb:/ipfs/Qmd9cHMRSE52ESmxMiu5gTBpRNmDHQK5q18f7UTj8DQke4"],"license":"MIT"},"src/interfaces/common/IEntity.sol":{"keccak256":"0x8ef4b63d6da63489778ccd5f8d13ebdd527dd4b62730b2c616df5af7474d2d21","urls":["bzz-raw://5a8d69576a9219d85c50816a18ad53a4d53cfcb27ed38b8cccc808dc2734b71b","dweb:/ipfs/QmYVN3P4Q4REvBWJ97TbAcaxm3uyB2anV6NSGa6ZtSwcEv"],"license":"MIT"},"src/interfaces/common/IFactory.sol":{"keccak256":"0xe835ebda85d181b70874f6eb53f2a892aa3223d23efe247060da9b51d2b8e969","urls":["bzz-raw://48b3dfb5f0491d90efbc8ed498b45358260ebac6e8f2aa0106b8b8fabdc988cb","dweb:/ipfs/QmWnnCs3xiHeUvYfUWMJTSFZWc34bSYn9Zpm7f7syra3TA"],"license":"MIT"},"src/interfaces/common/IRegistry.sol":{"keccak256":"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb","urls":["bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014","dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK"],"license":"MIT"}},"version":1},"id":71} \ No newline at end of file +{"abi":[{"type":"constructor","inputs":[{"name":"owner_","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"blacklist","inputs":[{"name":"type_","type":"uint64","internalType":"uint64"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"blacklisted","inputs":[{"name":"type_","type":"uint64","internalType":"uint64"}],"outputs":[{"name":"value","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"create","inputs":[{"name":"type_","type":"uint64","internalType":"uint64"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"entity_","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"entity","inputs":[{"name":"index","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"implementation","inputs":[{"name":"type_","type":"uint64","internalType":"uint64"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"isEntity","inputs":[{"name":"entity_","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"totalEntities","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"totalTypes","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"whitelist","inputs":[{"name":"implementation_","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"AddEntity","inputs":[{"name":"entity","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Blacklist","inputs":[{"name":"type_","type":"uint64","indexed":true,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Whitelist","inputs":[{"name":"implementation","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"error","name":"AlreadyBlacklisted","inputs":[]},{"type":"error","name":"AlreadyWhitelisted","inputs":[]},{"type":"error","name":"ERC1167FailedCreateClone","inputs":[]},{"type":"error","name":"EntityNotExist","inputs":[]},{"type":"error","name":"InvalidImplementation","inputs":[]},{"type":"error","name":"InvalidType","inputs":[]},{"type":"error","name":"OwnableInvalidOwner","inputs":[{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"OwnableUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"}]}],"bytecode":{"object":"0x60803460b557601f6109a338819003918201601f19168301916001600160401b0383118484101760b95780849260209460405283398101031260b557516001600160a01b03908181169081900360b5578015609d57600280546001600160a01b03198116831790915560405192167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a36108d590816100ce8239f35b604051631e4fbdf760e01b81525f6004820152602490fd5b5f80fd5b634e487b7160e01b5f52604160045260245ffdfe6080604090808252600480361015610015575f80fd5b5f3560e01c91826314887c5814610698575081635cd8b15e1461067b578163715018a6146106205781638da5cb5b146105f85781639b19251a14610485578163b42ba2a21461041a578163b572a96614610375578163b6caa11914610338578163cd108ef814610194578163f15df2e51461016e578163f2fde38b146100dd575063f9661602146100a4575f80fd5b346100d95760203660031901126100d9576020906100c86100c36106d1565b61073e565b90516001600160a01b039091168152f35b5f80fd5b82346100d95760203660031901126100d9576001600160a01b038235818116939192908490036100d95761010f610799565b8315610158575050600254826bffffffffffffffffffffffff60a01b821617600255167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3005b905f6024925191631e4fbdf760e01b8352820152fd5b82346100d9575f3660031901126100d95767ffffffffffffffff60209254169051908152f35b82346100d957806003193601126100d9576101ad6106d1565b906024359167ffffffffffffffff8084116100d957366023850112156100d95783850135918183116100d957602485019460248436920101116100d9576e5af43d82803e903d91602b57fd5bf36102038261073e565b915f54908487519160208301938452168782015260608082015261023d8161022f60808201898c61071e565b03601f1981018352826106e8565b51902091763d602d80600a3d3981f3363d3d373d3d3d363d7300000062ffffff8260881c16175f5260781b1760205260018060a01b0390603760095ff5169384156103285761028b85610836565b50835192857fb919910dcefbf753bfd926ab3b1d3f85d877190c3d01ba1bd585047b99b99f0b5f80a2853b156100d957836102dd5f93829363439fab9160e01b845260208b850152602484019161071e565b038183885af1801561031e576102f8575b6020848451908152f35b811161030b5760209350815283806102ee565b604184634e487b7160e01b5f525260245ffd5b83513d5f823e3d90fd5b83516330be1a3d60e21b81528690fd5b82346100d95760203660031901126100d95760209067ffffffffffffffff61035e6106d1565b165f526003825260ff815f20541690519015158152f35b82346100d95760203660031901126100d95761038f6106d1565b91610398610799565b67ffffffffffffffff8082541693169283101561040c57825f52600360205260ff825f2054166103fe5750815f5260036020525f20600160ff198254161790557ffc8245c2838846b295ae66fbe0d08e20c799b737c93b56f7b209df2e5fa2d4585f80a2005b905163f53de75f60e01b8152fd5b905163b968846160e01b8152fd5b82346100d95760203660031901126100d95781355f54811015610472575f80527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563015490516001600160a01b03909116815260209150f35b603283634e487b7160e01b5f525260245ffd5b9050346100d957602091826003193601126100d95781356001600160a01b0381811694918590036100d9576104b8610799565b82516202dd3160ec1b81529082828681895afa9182156105ee575f926105b6575b501630148015919061053a575b5061052d576104f4836107c5565b1561052057827feb73900b98b6a3e2b8b01708fe544760cf570d21e7fbe5225f24e48b5b2b432e5f80a2005b5163b73e95e160e01b8152fd5b5163340aafcd60e11b8152fd5b8251635d927f4560e11b815290915081818581885afa91821561031e575f92610577575b505067ffffffffffffffff80845416911614155f6104e6565b90809250813d83116105af575b61058e81836106e8565b810103126100d9575167ffffffffffffffff811681036100d9575f8061055e565b503d610584565b9091508281813d83116105e7575b6105ce81836106e8565b810103126100d9575181811681036100d957905f6104d9565b503d6105c4565b84513d5f823e3d90fd5b82346100d9575f3660031901126100d95760025490516001600160a01b039091168152602090f35b346100d9575f3660031901126100d957610638610799565b600280546001600160a01b031981169091555f906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b82346100d9575f3660031901126100d9576020905f549051908152f35b9150346100d95760203660031901126100d957356001600160a01b03811692908390036100d9576020925f52600183525f205415158152f35b6004359067ffffffffffffffff821682036100d957565b90601f8019910116810190811067ffffffffffffffff82111761070a57604052565b634e487b7160e01b5f52604160045260245ffd5b908060209392818452848401375f828201840152601f01601f1916010190565b67ffffffffffffffff166004548110156107855760045f527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b01546001600160a01b031690565b634e487b7160e01b5f52603260045260245ffd5b6002546001600160a01b031633036107ad57565b60405163118cdaa760e01b8152336004820152602490fd5b805f52600560205260405f2054155f1461083157600454600160401b81101561070a5760018101806004558110156107855781907f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b0155600454905f52600560205260405f2055600190565b505f90565b805f52600160205260405f2054155f14610831575f54600160401b81101561070a5760018101805f558110156107855781907f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e56301555f54905f52600160205260405f205560019056fea2646970667358221220992c165f90045b811880db0cac96786cefb968fd9dcc9500cd861a9c11267a6a64736f6c63430008190033","sourceMap":"177:120:66:-:0;;;;;;;;;;;;;-1:-1:-1;;177:120:66;;;;-1:-1:-1;;;;;177:120:66;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;177:120:66;;;;;;;;;;1273:26:32;;1269:95;;3004:6;177:120:66;;-1:-1:-1;;;;;;177:120:66;;;;;;;;;;;3052:40:32;-1:-1:-1;;3052:40:32;177:120:66;;;;;;;1269:95:32;177:120:66;;-1:-1:-1;;;1322:31:32;;-1:-1:-1;1322:31:32;;;177:120:66;;;1322:31:32;177:120:66;-1:-1:-1;177:120:66;;;;;;-1:-1:-1;177:120:66;;;;;-1:-1:-1;177:120:66","linkReferences":{}},"deployedBytecode":{"object":"0x6080604090808252600480361015610015575f80fd5b5f3560e01c91826314887c5814610698575081635cd8b15e1461067b578163715018a6146106205781638da5cb5b146105f85781639b19251a14610485578163b42ba2a21461041a578163b572a96614610375578163b6caa11914610338578163cd108ef814610194578163f15df2e51461016e578163f2fde38b146100dd575063f9661602146100a4575f80fd5b346100d95760203660031901126100d9576020906100c86100c36106d1565b61073e565b90516001600160a01b039091168152f35b5f80fd5b82346100d95760203660031901126100d9576001600160a01b038235818116939192908490036100d95761010f610799565b8315610158575050600254826bffffffffffffffffffffffff60a01b821617600255167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3005b905f6024925191631e4fbdf760e01b8352820152fd5b82346100d9575f3660031901126100d95767ffffffffffffffff60209254169051908152f35b82346100d957806003193601126100d9576101ad6106d1565b906024359167ffffffffffffffff8084116100d957366023850112156100d95783850135918183116100d957602485019460248436920101116100d9576e5af43d82803e903d91602b57fd5bf36102038261073e565b915f54908487519160208301938452168782015260608082015261023d8161022f60808201898c61071e565b03601f1981018352826106e8565b51902091763d602d80600a3d3981f3363d3d373d3d3d363d7300000062ffffff8260881c16175f5260781b1760205260018060a01b0390603760095ff5169384156103285761028b85610836565b50835192857fb919910dcefbf753bfd926ab3b1d3f85d877190c3d01ba1bd585047b99b99f0b5f80a2853b156100d957836102dd5f93829363439fab9160e01b845260208b850152602484019161071e565b038183885af1801561031e576102f8575b6020848451908152f35b811161030b5760209350815283806102ee565b604184634e487b7160e01b5f525260245ffd5b83513d5f823e3d90fd5b83516330be1a3d60e21b81528690fd5b82346100d95760203660031901126100d95760209067ffffffffffffffff61035e6106d1565b165f526003825260ff815f20541690519015158152f35b82346100d95760203660031901126100d95761038f6106d1565b91610398610799565b67ffffffffffffffff8082541693169283101561040c57825f52600360205260ff825f2054166103fe5750815f5260036020525f20600160ff198254161790557ffc8245c2838846b295ae66fbe0d08e20c799b737c93b56f7b209df2e5fa2d4585f80a2005b905163f53de75f60e01b8152fd5b905163b968846160e01b8152fd5b82346100d95760203660031901126100d95781355f54811015610472575f80527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563015490516001600160a01b03909116815260209150f35b603283634e487b7160e01b5f525260245ffd5b9050346100d957602091826003193601126100d95781356001600160a01b0381811694918590036100d9576104b8610799565b82516202dd3160ec1b81529082828681895afa9182156105ee575f926105b6575b501630148015919061053a575b5061052d576104f4836107c5565b1561052057827feb73900b98b6a3e2b8b01708fe544760cf570d21e7fbe5225f24e48b5b2b432e5f80a2005b5163b73e95e160e01b8152fd5b5163340aafcd60e11b8152fd5b8251635d927f4560e11b815290915081818581885afa91821561031e575f92610577575b505067ffffffffffffffff80845416911614155f6104e6565b90809250813d83116105af575b61058e81836106e8565b810103126100d9575167ffffffffffffffff811681036100d9575f8061055e565b503d610584565b9091508281813d83116105e7575b6105ce81836106e8565b810103126100d9575181811681036100d957905f6104d9565b503d6105c4565b84513d5f823e3d90fd5b82346100d9575f3660031901126100d95760025490516001600160a01b039091168152602090f35b346100d9575f3660031901126100d957610638610799565b600280546001600160a01b031981169091555f906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b82346100d9575f3660031901126100d9576020905f549051908152f35b9150346100d95760203660031901126100d957356001600160a01b03811692908390036100d9576020925f52600183525f205415158152f35b6004359067ffffffffffffffff821682036100d957565b90601f8019910116810190811067ffffffffffffffff82111761070a57604052565b634e487b7160e01b5f52604160045260245ffd5b908060209392818452848401375f828201840152601f01601f1916010190565b67ffffffffffffffff166004548110156107855760045f527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b01546001600160a01b031690565b634e487b7160e01b5f52603260045260245ffd5b6002546001600160a01b031633036107ad57565b60405163118cdaa760e01b8152336004820152602490fd5b805f52600560205260405f2054155f1461083157600454600160401b81101561070a5760018101806004558110156107855781907f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b0155600454905f52600560205260405f2055600190565b505f90565b805f52600160205260405f2054155f14610831575f54600160401b81101561070a5760018101805f558110156107855781907f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e56301555f54905f52600160205260405f205560019056fea2646970667358221220992c165f90045b811880db0cac96786cefb968fd9dcc9500cd861a9c11267a6a64736f6c63430008190033","sourceMap":"177:120:66:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;177:120:66;;;;;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;177:120:66;;;;;;;;;;;;;;;;;-1:-1:-1;;177:120:66;;;;-1:-1:-1;;;;;177:120:66;;;;;;;;;;;;;;1500:62:32;;:::i;:::-;2627:22;;2623:91;;177:120:66;;3004:6:32;177:120:66;;;;;;;;3004:6:32;177:120:66;;3052:40:32;177:120:66;3052:40:32;;177:120:66;2623:91:32;177:120:66;;;;;2672:31:32;;;;;;;;177:120:66;2672:31:32;177:120:66;;;;;;;-1:-1:-1;;177:120:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2364:565:36;2248:21:70;;;:::i;:::-;177:120:66;;;;;;;2299:40:70;177:120:66;2299:40:70;;177:120:66;;;;;;;;;;;;;2299:40:70;177:120:66;;;;;;;;:::i;:::-;2299:40:70;;;;;;;;;:::i;:::-;177:120:66;2289:51:70;;2364:565:36;;;;;;;;177:120:66;2364:565:36;;;;177:120:66;2364:565:36;177:120:66;;;;;2364:565:36;;;177:120:66;2364:565:36;177:120:66;2942:22:36;;;2938:86;;8409:50:61;;;:::i;:::-;;177:120:66;;1077:18:74;;;177:120:66;1077:18:74;;2382:33:70;;;;;177:120:66;;;;;;;;;2382:33:70;;177:120:66;2382:33:70;;;177:120:66;;;;;;:::i;:::-;2382:33:70;;;;;;;;;;;;177:120:66;;;;;;;;;2382:33:70;177:120:66;;;;;;;;;2382:33:70;;;;177:120:66;;;;;;;;;;;;2382:33:70;177:120:66;;;;;;;;;2938:86:36;177:120:66;;-1:-1:-1;;;2987:26:36;;177:120:66;;2987:26:36;177:120:66;;;;;;;-1:-1:-1;;177:120:66;;;;;;;;;:::i;:::-;;;;633:54:70;177:120:66;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;177:120:66;;;;;;:::i;:::-;1500:62:32;;;:::i;:::-;177:120:66;;;;;;;822:21:70;;;;818:72;;177:120:66;;;1946:11:70;177:120:66;;;;;;;;1942:76:70;;177:120:66;;;;1946:11:70;177:120:66;;;;2049:4:70;177:120:66;;;;;;;;2069:16:70;177:120:66;2069:16:70;;177:120:66;1942:76:70;177:120:66;;-1:-1:-1;;;1987:20:70;;;818:72;177:120:66;;-1:-1:-1;;;866:13:70;;;177:120:66;;;;;;;-1:-1:-1;;177:120:66;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;177:120:66;;;;;;;-1:-1:-1;177:120:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;177:120:66;;;;;;;;;;1500:62:32;;:::i;:::-;177:120:66;;-1:-1:-1;;;1476:34:70;;177:120:66;1476:34:70;177:120:66;1476:34:70;177:120:66;1476:34:70;;;;;;;;177:120:66;1476:34:70;;;177:120:66;-1:-1:-1;177:120:66;1522:4:70;1476:51;;;;;:102;;177:120:66;1472:163:70;;;8409:50:61;;;:::i;:::-;1648:49:70;1644:107;;1766:26;;177:120:66;1766:26:70;;177:120:66;1644:107:70;177:120:66;-1:-1:-1;;;1720:20:70;;;1472:163;177:120:66;-1:-1:-1;;;1601:23:70;;;1476:102;177:120:66;;-1:-1:-1;;;1531:31:70;;177:120:66;;-1:-1:-1;177:120:66;;1531:31:70;177:120:66;1531:31:70;;;;;;;;177:120:66;1531:31:70;;;1476:102;177:120:66;;;;;;;;;1531:47:70;;1476:102;;;1531:31;;;;;;;;;;;;;;;;:::i;:::-;;;177:120:66;;;;;;;;;;;;1531:31:70;;;;;;;;;1476:34;;;;;;;;;;;;;;;;;:::i;:::-;;;177:120:66;;;;;;;;;;;;1476:34:70;;;;;;;;;;177:120:66;;;;;;;;;;;;;;;;-1:-1:-1;;177:120:66;;;;1710:6:32;177:120:66;;;-1:-1:-1;;;;;177:120:66;;;;;;;;;;;;;;-1:-1:-1;;177:120:66;;;;1500:62:32;;:::i;:::-;3004:6;177:120:66;;-1:-1:-1;;;;;;177:120:66;;;;;;;-1:-1:-1;;;;;177:120:66;3052:40:32;177:120:66;;3052:40:32;177:120:66;;;;;;;;-1:-1:-1;;177:120:66;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;177:120:66;;;;;-1:-1:-1;;;;;177:120:66;;;;;;;;;;;;;4360:14:61;177:120:66;;;;;4360:26:61;;177:120:66;;;;;;;;;;;;;;:::o;:::-;;;2299:40:70;;177:120:66;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;177:120:66;;;;;;;;-1:-1:-1;;177:120:66;;;;:::o;1192:143:70:-;177:120:66;;1291:27:70;177:120:66;;;;;;1291:27:70;-1:-1:-1;177:120:66;;;;-1:-1:-1;;;;;177:120:66;;1192:143:70:o;177:120:66:-;;;;-1:-1:-1;177:120:66;;1291:27:70;177:120:66;;-1:-1:-1;177:120:66;1796:162:32;1710:6;177:120:66;-1:-1:-1;;;;;177:120:66;735:10:47;1855:23:32;1851:101;;1796:162::o;1851:101::-;177:120:66;;-1:-1:-1;;;1901:40:32;;735:10:47;1901:40:32;;;177:120:66;;;1901:40:32;2241:406:61;177:120:66;-1:-1:-1;177:120:66;4360:14:61;177:120:66;;;-1:-1:-1;177:120:66;;4360:26:61;2320:321;177:120:66;;;;;-1:-1:-1;;;177:120:66;;;;;4360:14:61;177:120:66;;;;;;;;;;;;;;;;;;-1:-1:-1;177:120:66;4360:14:61;177:120:66;;;-1:-1:-1;177:120:66;;4360:14:61;2576:11;:::o;2320:321::-;2618:12;-1:-1:-1;2618:12:61;:::o;2241:406::-;177:120:66;;;4360:14:61;177:120:66;;;;;;4360:26:61;2320:321;177:120:66;;;;;-1:-1:-1;;;177:120:66;;;;;4360:14:61;177:120:66;;;;;;;;;;;;;;;;;;;;4360:14:61;177:120:66;;;;;;4360:14:61;2576:11;:::o","linkReferences":{}},"methodIdentifiers":{"blacklist(uint64)":"b572a966","blacklisted(uint64)":"b6caa119","create(uint64,bytes)":"cd108ef8","entity(uint256)":"b42ba2a2","implementation(uint64)":"f9661602","isEntity(address)":"14887c58","owner()":"8da5cb5b","renounceOwnership()":"715018a6","totalEntities()":"5cd8b15e","totalTypes()":"f15df2e5","transferOwnership(address)":"f2fde38b","whitelist(address)":"9b19251a"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner_\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"AlreadyBlacklisted\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AlreadyWhitelisted\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ERC1167FailedCreateClone\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"EntityNotExist\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidImplementation\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidType\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"entity\",\"type\":\"address\"}],\"name\":\"AddEntity\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"type_\",\"type\":\"uint64\"}],\"name\":\"Blacklist\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"Whitelist\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"type_\",\"type\":\"uint64\"}],\"name\":\"blacklist\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"type_\",\"type\":\"uint64\"}],\"name\":\"blacklisted\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"value\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"type_\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"create\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"entity_\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"entity\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"type_\",\"type\":\"uint64\"}],\"name\":\"implementation\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"entity_\",\"type\":\"address\"}],\"name\":\"isEntity\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalEntities\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalTypes\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"implementation_\",\"type\":\"address\"}],\"name\":\"whitelist\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"ERC1167FailedCreateClone()\":[{\"details\":\"A clone instance deployment failed.\"}],\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}]},\"events\":{\"AddEntity(address)\":{\"params\":{\"entity\":\"address of the added entity\"}},\"Blacklist(uint64)\":{\"details\":\"The given type is still deployable.\",\"params\":{\"type_\":\"type that was blacklisted\"}},\"Whitelist(address)\":{\"params\":{\"implementation\":\"address of the new implementation\"}}},\"kind\":\"dev\",\"methods\":{\"blacklist(uint64)\":{\"details\":\"The given type will still be deployable.\",\"params\":{\"type_\":\"type to blacklist\"}},\"create(uint64,bytes)\":{\"details\":\"CREATE2 salt is constructed from the given parameters.\",\"params\":{\"data\":\"initial data for the entity creation\",\"type_\":\"type's implementation to use\"},\"returns\":{\"entity_\":\"address of the entity\"}},\"entity(uint256)\":{\"params\":{\"index\":\"index of the entity to get\"},\"returns\":{\"_0\":\"address of the entity\"}},\"implementation(uint64)\":{\"params\":{\"type_\":\"position to get the implementation at\"},\"returns\":{\"_0\":\"address of the implementation\"}},\"isEntity(address)\":{\"params\":{\"account\":\"address to check\"},\"returns\":{\"_0\":\"if the given address is an entity\"}},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"totalEntities()\":{\"returns\":{\"_0\":\"total number of entities added\"}},\"totalTypes()\":{\"returns\":{\"_0\":\"total number of types\"}},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"},\"whitelist(address)\":{\"params\":{\"implementation\":\"address of the new implementation\"}}},\"version\":1},\"userdoc\":{\"events\":{\"AddEntity(address)\":{\"notice\":\"Emitted when an entity is added.\"},\"Blacklist(uint64)\":{\"notice\":\"Emitted when a type is blacklisted (e.g., in case of invalid implementation).\"},\"Whitelist(address)\":{\"notice\":\"Emitted when a new type is whitelisted.\"}},\"kind\":\"user\",\"methods\":{\"blacklist(uint64)\":{\"notice\":\"Blacklist a type of entity.\"},\"blacklisted(uint64)\":{\"notice\":\"Get if a type is blacklisted (e.g., in case of invalid implementation).\"},\"create(uint64,bytes)\":{\"notice\":\"Create a new entity at the factory.\"},\"entity(uint256)\":{\"notice\":\"Get an entity given its index.\"},\"implementation(uint64)\":{\"notice\":\"Get the implementation for a given type.\"},\"isEntity(address)\":{\"notice\":\"Get if a given address is an entity.\"},\"totalEntities()\":{\"notice\":\"Get a total number of entities.\"},\"totalTypes()\":{\"notice\":\"Get the total number of whitelisted types.\"},\"whitelist(address)\":{\"notice\":\"Whitelist a new type of entity.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/contracts/SlasherFactory.sol\":\"SlasherFactory\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"lib/openzeppelin-contracts/contracts/proxy/Clones.sol\":{\"keccak256\":\"0xd18408af8a91bedb3d56343eeb9b30eb852e6dea93a5e2d5c6db9ca4cb905155\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://061475b7302a732dc598907790f407417551c2b13e89daa57b3698489ef5484b\",\"dweb:/ipfs/QmdX5qmk3VSniSErFuD4aVawQxUi2MuUbP7spPcHddPfcX\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0x86c1470cbfd878491e5de030072b647352d36bd27122cffb928970b1945282aa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ad85dd393ee0a1917c57046abc5155f51f77844b2c6a42c05c1b8dd26d6ff3c1\",\"dweb:/ipfs/QmNqYc8To2NdnpP6E1tGz7t6A7beuENde5yovwov5pW1fA\"]},\"src/contracts/SlasherFactory.sol\":{\"keccak256\":\"0xbafc96e3d2511eb62942613645b4f5cbf6f603063a711b30e25940aaba08064c\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://489440f1181b1858e3b27a90ec6f514c0c287c602b4779676048213202165867\",\"dweb:/ipfs/QmRG7AQ9m9qHr8ofEvP1Ur8S379fFXTo9rmiWaAtZ9rsUc\"]},\"src/contracts/common/Factory.sol\":{\"keccak256\":\"0x41764643e6a2a3d80d694a3efee91f50a2fd084fb2bcd13566259443840e6369\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://fefc1e2a2189275388826f4f82ca421ca79c2866d3ef39dc2c7df46fe7cbf7c9\",\"dweb:/ipfs/QmSJ4VGmgpYUv5ni4ZYoSV4qMuZrk5DLjyB3Vv9NbFgeNZ\"]},\"src/contracts/common/Registry.sol\":{\"keccak256\":\"0x4a4004836d920953a8ec6e223de9a330f43acf7a5b93c6b8b3e4a95e0f129889\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://e8bdda207f3852c683a2b481602239a914f7e26bcd042ade618e263a43b67652\",\"dweb:/ipfs/Qmb8GZykJWxZcfwNp3SqhFizDFydFuV6LXgemV3vnWyLyu\"]},\"src/interfaces/ISlasherFactory.sol\":{\"keccak256\":\"0x30018af5c2719d9b5cfacbfc0277017896815b3fcc4dfbea78813e6ae81c1e56\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5e028fbed23ab973d8d9eb2be4e53a528dd01248e3233f56ab0f8ac9a7c9c220\",\"dweb:/ipfs/Qmd9cHMRSE52ESmxMiu5gTBpRNmDHQK5q18f7UTj8DQke4\"]},\"src/interfaces/common/IEntity.sol\":{\"keccak256\":\"0x8ef4b63d6da63489778ccd5f8d13ebdd527dd4b62730b2c616df5af7474d2d21\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a8d69576a9219d85c50816a18ad53a4d53cfcb27ed38b8cccc808dc2734b71b\",\"dweb:/ipfs/QmYVN3P4Q4REvBWJ97TbAcaxm3uyB2anV6NSGa6ZtSwcEv\"]},\"src/interfaces/common/IFactory.sol\":{\"keccak256\":\"0xe835ebda85d181b70874f6eb53f2a892aa3223d23efe247060da9b51d2b8e969\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://48b3dfb5f0491d90efbc8ed498b45358260ebac6e8f2aa0106b8b8fabdc988cb\",\"dweb:/ipfs/QmWnnCs3xiHeUvYfUWMJTSFZWc34bSYn9Zpm7f7syra3TA\"]},\"src/interfaces/common/IRegistry.sol\":{\"keccak256\":\"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014\",\"dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.25+commit.b61c2a91"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"owner_","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"AlreadyBlacklisted"},{"inputs":[],"type":"error","name":"AlreadyWhitelisted"},{"inputs":[],"type":"error","name":"ERC1167FailedCreateClone"},{"inputs":[],"type":"error","name":"EntityNotExist"},{"inputs":[],"type":"error","name":"InvalidImplementation"},{"inputs":[],"type":"error","name":"InvalidType"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"OwnableInvalidOwner"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"OwnableUnauthorizedAccount"},{"inputs":[{"internalType":"address","name":"entity","type":"address","indexed":true}],"type":"event","name":"AddEntity","anonymous":false},{"inputs":[{"internalType":"uint64","name":"type_","type":"uint64","indexed":true}],"type":"event","name":"Blacklist","anonymous":false},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"address","name":"implementation","type":"address","indexed":true}],"type":"event","name":"Whitelist","anonymous":false},{"inputs":[{"internalType":"uint64","name":"type_","type":"uint64"}],"stateMutability":"nonpayable","type":"function","name":"blacklist"},{"inputs":[{"internalType":"uint64","name":"type_","type":"uint64"}],"stateMutability":"view","type":"function","name":"blacklisted","outputs":[{"internalType":"bool","name":"value","type":"bool"}]},{"inputs":[{"internalType":"uint64","name":"type_","type":"uint64"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"create","outputs":[{"internalType":"address","name":"entity_","type":"address"}]},{"inputs":[{"internalType":"uint256","name":"index","type":"uint256"}],"stateMutability":"view","type":"function","name":"entity","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"uint64","name":"type_","type":"uint64"}],"stateMutability":"view","type":"function","name":"implementation","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"entity_","type":"address"}],"stateMutability":"view","type":"function","name":"isEntity","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[],"stateMutability":"view","type":"function","name":"totalEntities","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"totalTypes","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"},{"inputs":[{"internalType":"address","name":"implementation_","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"whitelist"}],"devdoc":{"kind":"dev","methods":{"blacklist(uint64)":{"details":"The given type will still be deployable.","params":{"type_":"type to blacklist"}},"create(uint64,bytes)":{"details":"CREATE2 salt is constructed from the given parameters.","params":{"data":"initial data for the entity creation","type_":"type's implementation to use"},"returns":{"entity_":"address of the entity"}},"entity(uint256)":{"params":{"index":"index of the entity to get"},"returns":{"_0":"address of the entity"}},"implementation(uint64)":{"params":{"type_":"position to get the implementation at"},"returns":{"_0":"address of the implementation"}},"isEntity(address)":{"params":{"account":"address to check"},"returns":{"_0":"if the given address is an entity"}},"owner()":{"details":"Returns the address of the current owner."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner."},"totalEntities()":{"returns":{"_0":"total number of entities added"}},"totalTypes()":{"returns":{"_0":"total number of types"}},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."},"whitelist(address)":{"params":{"implementation":"address of the new implementation"}}},"version":1},"userdoc":{"kind":"user","methods":{"blacklist(uint64)":{"notice":"Blacklist a type of entity."},"blacklisted(uint64)":{"notice":"Get if a type is blacklisted (e.g., in case of invalid implementation)."},"create(uint64,bytes)":{"notice":"Create a new entity at the factory."},"entity(uint256)":{"notice":"Get an entity given its index."},"implementation(uint64)":{"notice":"Get the implementation for a given type."},"isEntity(address)":{"notice":"Get if a given address is an entity."},"totalEntities()":{"notice":"Get a total number of entities."},"totalTypes()":{"notice":"Get the total number of whitelisted types."},"whitelist(address)":{"notice":"Whitelist a new type of entity."}},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/contracts/SlasherFactory.sol":"SlasherFactory"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts/contracts/access/Ownable.sol":{"keccak256":"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb","urls":["bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6","dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/Clones.sol":{"keccak256":"0xd18408af8a91bedb3d56343eeb9b30eb852e6dea93a5e2d5c6db9ca4cb905155","urls":["bzz-raw://061475b7302a732dc598907790f407417551c2b13e89daa57b3698489ef5484b","dweb:/ipfs/QmdX5qmk3VSniSErFuD4aVawQxUi2MuUbP7spPcHddPfcX"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0x86c1470cbfd878491e5de030072b647352d36bd27122cffb928970b1945282aa","urls":["bzz-raw://ad85dd393ee0a1917c57046abc5155f51f77844b2c6a42c05c1b8dd26d6ff3c1","dweb:/ipfs/QmNqYc8To2NdnpP6E1tGz7t6A7beuENde5yovwov5pW1fA"],"license":"MIT"},"src/contracts/SlasherFactory.sol":{"keccak256":"0xbafc96e3d2511eb62942613645b4f5cbf6f603063a711b30e25940aaba08064c","urls":["bzz-raw://489440f1181b1858e3b27a90ec6f514c0c287c602b4779676048213202165867","dweb:/ipfs/QmRG7AQ9m9qHr8ofEvP1Ur8S379fFXTo9rmiWaAtZ9rsUc"],"license":"BUSL-1.1"},"src/contracts/common/Factory.sol":{"keccak256":"0x41764643e6a2a3d80d694a3efee91f50a2fd084fb2bcd13566259443840e6369","urls":["bzz-raw://fefc1e2a2189275388826f4f82ca421ca79c2866d3ef39dc2c7df46fe7cbf7c9","dweb:/ipfs/QmSJ4VGmgpYUv5ni4ZYoSV4qMuZrk5DLjyB3Vv9NbFgeNZ"],"license":"BUSL-1.1"},"src/contracts/common/Registry.sol":{"keccak256":"0x4a4004836d920953a8ec6e223de9a330f43acf7a5b93c6b8b3e4a95e0f129889","urls":["bzz-raw://e8bdda207f3852c683a2b481602239a914f7e26bcd042ade618e263a43b67652","dweb:/ipfs/Qmb8GZykJWxZcfwNp3SqhFizDFydFuV6LXgemV3vnWyLyu"],"license":"BUSL-1.1"},"src/interfaces/ISlasherFactory.sol":{"keccak256":"0x30018af5c2719d9b5cfacbfc0277017896815b3fcc4dfbea78813e6ae81c1e56","urls":["bzz-raw://5e028fbed23ab973d8d9eb2be4e53a528dd01248e3233f56ab0f8ac9a7c9c220","dweb:/ipfs/Qmd9cHMRSE52ESmxMiu5gTBpRNmDHQK5q18f7UTj8DQke4"],"license":"MIT"},"src/interfaces/common/IEntity.sol":{"keccak256":"0x8ef4b63d6da63489778ccd5f8d13ebdd527dd4b62730b2c616df5af7474d2d21","urls":["bzz-raw://5a8d69576a9219d85c50816a18ad53a4d53cfcb27ed38b8cccc808dc2734b71b","dweb:/ipfs/QmYVN3P4Q4REvBWJ97TbAcaxm3uyB2anV6NSGa6ZtSwcEv"],"license":"MIT"},"src/interfaces/common/IFactory.sol":{"keccak256":"0xe835ebda85d181b70874f6eb53f2a892aa3223d23efe247060da9b51d2b8e969","urls":["bzz-raw://48b3dfb5f0491d90efbc8ed498b45358260ebac6e8f2aa0106b8b8fabdc988cb","dweb:/ipfs/QmWnnCs3xiHeUvYfUWMJTSFZWc34bSYn9Zpm7f7syra3TA"],"license":"MIT"},"src/interfaces/common/IRegistry.sol":{"keccak256":"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb","urls":["bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014","dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK"],"license":"MIT"}},"version":1},"id":66} \ No newline at end of file diff --git a/out/SlasherHints.sol/BaseSlasherHints.json b/out/SlasherHints.sol/BaseSlasherHints.json index b8624f66..5b301f97 100644 --- a/out/SlasherHints.sol/BaseSlasherHints.json +++ b/out/SlasherHints.sol/BaseSlasherHints.json @@ -1 +1 @@ -{"abi":[{"type":"constructor","inputs":[{"name":"baseDelegatorHints","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"BASE_DELEGATOR_HINTS","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"BURNER_GAS_LIMIT","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"BURNER_RESERVE","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"FACTORY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"NETWORK_MIDDLEWARE_SERVICE","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"SLASHER_HINTS","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"TYPE","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"VAULT_FACTORY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"VETO_SLASHER_HINTS","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"cumulativeSlash","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"cumulativeSlashAt","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"timestamp","type":"uint48","internalType":"uint48"},{"name":"hint","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"cumulativeSlashHint","inputs":[{"name":"slasher","type":"address","internalType":"address"},{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"timestamp","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"cumulativeSlashHintInternal","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"timestamp","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"exists","type":"bool","internalType":"bool"},{"name":"hint","type":"uint32","internalType":"uint32"}],"stateMutability":"view"},{"type":"function","name":"initialize","inputs":[{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"isBurnerHook","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"latestSlashedCaptureTimestamp","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"value","type":"uint48","internalType":"uint48"}],"stateMutability":"view"},{"type":"function","name":"slashableStake","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"captureTimestamp","type":"uint48","internalType":"uint48"},{"name":"hints","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"slashableStakeHints","inputs":[{"name":"slasher","type":"address","internalType":"address"},{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"captureTimestamp","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"staticDelegateCall","inputs":[{"name":"target","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"vault","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"error","name":"ExternalCall","inputs":[]},{"type":"error","name":"InsufficientBurnerGas","inputs":[]},{"type":"error","name":"InvalidInitialization","inputs":[]},{"type":"error","name":"NoBurner","inputs":[]},{"type":"error","name":"NotInitialized","inputs":[]},{"type":"error","name":"NotInitializing","inputs":[]},{"type":"error","name":"NotNetworkMiddleware","inputs":[]},{"type":"error","name":"NotVault","inputs":[]},{"type":"error","name":"ReentrancyGuardReentrantCall","inputs":[]},{"type":"error","name":"SafeCastOverflowedUintDowncast","inputs":[{"name":"bits","type":"uint8","internalType":"uint8"},{"name":"value","type":"uint256","internalType":"uint256"}]}],"bytecode":{"object":"0x610180346101e757601f6173b838819003918201601f19168301926001600160401b03929091838511838610176101825781602092849260409788528339810103126101e75751906001600160a01b039081831683036101e757306080527ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805460ff81871c166101d65780838080931603610196575b5050505f60a0525f60c0525f60e052610100935f8552610120938452805161209f8082019082821085831117610182576020918391611b9d83393081520301905ff091821561017857836101409316835281519061377c8083019183831090831117610182576020918391613c3c83393081520301905ff0928315610178576101609316835251926119b194856101ec8639608051856105fa015260a051856102cb015260c05185610909015260e0518581816101690152610e840152518461028701525183818161069b0152610c2f0152518261055c015251816105a00152f35b50513d5f823e3d90fd5b634e487b7160e01b5f52604160045260245ffd5b6001600160401b03191617905583518181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a15f8181610096565b855163f92ee8a960e01b8152600490fd5b5f80fdfe60806040526004361015610011575f80fd5b5f3560e01c8063103f2907146101545780631a2be2c41461014f578063267de1f31461014a5780632964f8dc146101455780632c9d45b3146101405780632dd310001461013b57806334d098ea14610136578063439fab91146101315780634a7196551461012c5780634ea2e926146101275780634eb5a242146101225780636565b7db1461011d578063770280461461011857806379d89614146101135780639f86fd851461010e578063aa8e648914610109578063aab3595f14610104578063bb24fe8a146100ff578063d5c24e1a146100fa5763fbfa77cf146100f5575f80fd5b61094a565b61092d565b6108ea565b6108c5565b610887565b6106ca565b610686565b6105cf565b61058b565b610547565b61052a565b6104f5565b61034b565b6102fa565b6102b6565b610272565b610256565b610201565b6101ad565b34610198575f366003190112610198576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b5f80fd5b6001600160a01b0381160361019857565b346101985760403660031901126101985760206101f96101f46024356101d28161019c565b6004355f526002845260405f209060018060a01b03165f5260205260405f2090565b610daa565b604051908152f35b3461019857604036600319011261019857602065ffffffffffff61024c60243561022a8161019c565b6004355f526001845260405f209060018060a01b03165f5260205260405f2090565b5416604051908152f35b34610198575f366003190112610198576020604051614e208152f35b34610198575f366003190112610198576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b34610198575f366003190112610198576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b34610198575f36600319011261019857602060ff5f5460a01c166040519015158152f35b9181601f84011215610198578235916001600160401b038311610198576020838186019501011161019857565b34610198576020366003190112610198576001600160401b036004358181116101985761037c90369060040161031e565b5f8051602061195c833981519152549260ff8460401c1615931680159081610480575b6001149081610476575b15908161046d575b5061045b575f8051602061195c833981519152805467ffffffffffffffff191660011790556103e4918361043257610e4c565b6103ea57005b5f8051602061195c833981519152805460ff60401b19169055604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a1005b5f8051602061195c833981519152805460ff60401b191668010000000000000000179055610e4c565b60405163f92ee8a960e01b8152600490fd5b9050155f6103b1565b303b1591506103a9565b84915061039f565b65ffffffffffff81160361019857565b6080906003190112610198576004356104b08161019c565b90602435906044356104c18161019c565b906064356104ce81610488565b90565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b346101985761052661051261050936610498565b929190916109b0565b6040519182916020835260208301906104d1565b0390f35b346101985761052661051261053e36610498565b92919091610b7b565b34610198575f366003190112610198576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b34610198575f366003190112610198576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b34610198576060366003190112610198576024356105ec8161019c565b6044356105f881610488565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316330361067457610652610657926004355f52600260205260405f209060018060a01b03165f5260205260405f2090565b61104a565b60408051941515855263ffffffff91909116602085015292915050f35b604051637ca475e560e11b8152600490fd5b34610198575f366003190112610198576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b34610198576040366003190112610198576004356106e78161019c565b6024356001600160401b038111610198575f916107098392369060040161031e565b90816040519283928337810184815203915af4610756610727610d26565b916107486040519384921515602084015260408084015260608301906104d1565b03601f1981018352826107ad565b805190602001fd5b634e487b7160e01b5f52604160045260245ffd5b604081019081106001600160401b0382111761078d57604052565b61075e565b60a081019081106001600160401b0382111761078d57604052565b90601f801991011681019081106001600160401b0382111761078d57604052565b604051906107db82610772565b565b6001600160401b03811161078d57601f01601f191660200190565b81601f820112156101985780359061080f826107dd565b9261081d60405194856107ad565b8284526020838301011161019857815f926020809301838601378301015290565b906080600319830112610198576004359160243561085b8161019c565b9160443561086881610488565b91606435906001600160401b038211610198576104ce916004016107f8565b346101985760206101f96108c061089d3661083e565b939190925f526002865260405f209060018060a01b03165f5260205260405f2090565b611178565b346101985760206108e16108d83661083e565b92919091611347565b50604051908152f35b34610198575f3660031901126101985760206040516001600160401b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b34610198575f366003190112610198576020604051620249f08152f35b34610198575f366003190112610198575f546040516001600160a01b039091168152602090f35b5190811515820361019857565b519063ffffffff8216820361019857565b9190826040910312610198576104ce60206109a984610971565b930161097e565b5f809195949593929365ffffffffffff60609760405195602097633b81402360e11b89890152602488015260018060a01b03166044870152166064850152606484526109fb84610792565b6040519384610a2887820192639f86fd8560e01b84523060248401526040604484015260648301906104d1565b0394610a3c601f19968781018352826107ad565b51915afa50610a5a610a4c610d26565b838082518301019101610fb5565b9015610aad57808380610a729351830101910161098f565b9290610a7d57505050565b6104ce92939450610aa1604051948592830191909163ffffffff6020820193169052565b039081018352826107ad565b809150519182156101985701fd5b9081602091031261019857516104ce8161019c565b6040513d5f823e3d90fd5b81601f8201121561019857805190610af2826107dd565b92610b0060405194856107ad565b8284526020838301011161019857815f9260208093018386015e8301015290565b906020828203126101985781516001600160401b038111610198576104ce9201610adb565b906104ce91602081526020610b66835160408385015260608401906104d1565b920151906040601f19828503019101526104d1565b60405163fbfa77cf60e01b815260609594919391926020926001600160a01b03929091908481600481878b165afa908115610cd757849186915f91610d09575b50600460405180948193630ce9b79360e41b8352165afa8015610cd75786948385925f948591610cdc575b506040516304bb92e160e31b81526001600160a01b039182166004820152602481019290925292909216604483015265ffffffffffff97909716606482015295869060849082907f0000000000000000000000000000000000000000000000000000000000000000165afa948515610cd7575f95610caf575b50610c6b9394956109b0565b825115801590610ca5575b610c7f57505050565b6104ce92939450610c8e6107ce565b938452818401526107486040519384928301610b46565b5080511515610c76565b610c6b949550610cd0903d805f833e610cc881836107ad565b810190610b21565b9493610c5f565b610ad0565b610cfc9150893d8b11610d02575b610cf481836107ad565b810190610abb565b5f610be6565b503d610cea565b610d209150823d8411610d0257610cf481836107ad565b5f610bbb565b3d15610d50573d90610d37826107dd565b91610d4560405193846107ad565b82523d5f602084013e565b606090565b5f9081526002602090815260408083206001600160a01b039094168352929052206104ce929190611178565b8054821015610d96575f5260205f2001905f90565b634e487b7160e01b5f52603260045260245ffd5b805480610ddf57505f5b6001600160d01b03811615610dd9576001610dcf9201610d81565b90549060031b1c90565b50505f90565b5f19908082810111610dfd57825f5260205f2001015460301c610db4565b610fe9565b919091604081840312610198578035610e1a8161019c565b9260208201356001600160401b038111610198576104ce92016107f8565b90816020910312610198576104ce90610971565b610e5891810190610e02565b506040516302910f8b60e31b81526001600160a01b0391821660048201819052919060209081816024817f000000000000000000000000000000000000000000000000000000000000000087165afa908115610cd7575f91610f88575b5015610f7657610ec361159b565b5f80546001600160a01b0319166001600160a01b038516179055600481610ee86115d1565b94604051928380926313c085b760e11b82525afa918215610cd7575f92610f59575b5050161580610f4f575b610f3d57516107db9015155f805460ff60a01b191691151560a01b60ff60a01b16919091179055565b60405163d2420f5960e01b8152600490fd5b5080511515610f14565b610f6f9250803d10610d0257610cf481836107ad565b5f80610f0a565b6040516362df054560e01b8152600490fd5b610fa89150823d8411610fae575b610fa081836107ad565b810190610e38565b5f610eb5565b503d610f96565b91909160408184031261019857610fcb81610971565b9260208201516001600160401b038111610198576104ce9201610adb565b634e487b7160e01b5f52601160045260245ffd5b5f19810191908211610dfd57565b91908203918211610dfd57565b9060018201809211610dfd57565b9060405161103381610772565b915465ffffffffffff8116835260301c6020830152565b91908254905f8291600584116110e8575b61106693508561174f565b9081156110dc576110d56110cc6110c6610dcf61109861109361108888610ffd565b895f5260205f200190565b611026565b9660016110bf60206110b08b5165ffffffffffff1690565b9a01516001600160d01b031690565b9101610d81565b93610ffd565b63ffffffff1690565b6001939291565b5f925082915081908190565b91926110f381611611565b8103908111610dfd5761106693865f5261112761111c8360205f200165ffffffffffff90541690565b65ffffffffffff1690565b65ffffffffffff8516101561113d57509161105b565b92915061114990611018565b9061105b565b90816020910312610198576104ce9061097e565b90600163ffffffff80931601918211610dfd57565b9180511561124657806020806111939351830101910161114f565b9161119e8382611881565b926111af845165ffffffffffff1690565b9065ffffffffffff808516921682811461123a57821191826111e5575b50506111dc576104ce92506117b1565b50506020015190565b9091506111f28354610ffd565b63ffffffff83161491821561120b575b50505f806111cc565b61123291925061122661122061111c92611163565b85611881565b5165ffffffffffff1690565b115f80611202565b50505050506020015190565b506104ce916117b1565b6040519061125d82610772565b60606020838281520152565b906020828203126101985781516001600160401b0392838211610198570190604082820312610198576040519261129f84610772565b825181811161019857826112b4918501610adb565b84526020830151908111610198576112cc9201610adb565b602082015290565b9081602091031261019857516104ce81610488565b65ffffffffffff9182169082160391908211610dfd57565b90816020910312610198575190565b9081526001600160a01b03909116602082015265ffffffffffff90911660408201526080606082018190526104ce929101906104d1565b92611350611250565b90805180611581575b505061136442611929565b5f549094906113899061137d906001600160a01b031681565b6001600160a01b031690565b93604051956327f843b560e11b875260209687816004818a5afa8015610cd7576113be9261111c925f92611552575b506112e9565b65ffffffffffff821690811090811561153b575b811561150a575b506114fe578560049560405196878092630ce9b79360e41b82525afa948515610cd75761142b9587915f916114e1575b50845190604051808099819463e02f693760e01b8352878b8a60048601611310565b03916001600160a01b03165afa938415610cd75761149d955f956114a0575b509261149285936114989361149296869a6114896101f483611474875f52600260205260405f2090565b9060018060a01b03165f5260205260405f2090565b95015192610d55565b9061100b565b6118e9565b91565b6114989295506114929491936114ce611492928a3d8c116114da575b6114c681836107ad565b810190611301565b9693509391945061144a565b503d6114bc565b6114f89150823d8411610d0257610cf481836107ad565b5f611409565b5050505050505f905f90565b905061153461111c61152887611474875f52600160205260405f2090565b5465ffffffffffff1690565b115f6113d9565b905061154961111c42611929565b811015906113d2565b6115739192508a3d8c1161157a575b61156b81836107ad565b8101906112d4565b905f6113b8565b503d611561565b6115949250602080918301019101611269565b5f80611359565b6115a36118fb565b6115ab6118fb565b60017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055565b60405190602082018281106001600160401b0382111761078d576040525f8252565b81156115fd570490565b634e487b7160e01b5f52601260045260245ffd5b801561174a57806116e36116dc6116d26116c86116be6116b46116aa6116a060016104ce9a5f908b60801c8061173e575b508060401c80611731575b508060201c80611724575b508060101c80611717575b508060081c8061170a575b508060041c806116fd575b508060021c806116f0575b50821c6116e9575b811c1b611699818b6115f3565b0160011c90565b611699818a6115f3565b61169981896115f3565b61169981886115f3565b61169981876115f3565b61169981866115f3565b61169981856115f3565b80926115f3565b906118e9565b810161168c565b600291509101905f611684565b600491509101905f611679565b600891509101905f61166e565b601091509101905f611663565b602091509101905f611658565b604091509101905f61164d565b9150506080905f611642565b505f90565b91905b83821061175f5750505090565b909192808316906001818518811c8301809311610dfd57855f5265ffffffffffff808460205f20015416908516105f1461179e575050925b9190611752565b909493508101809111610dfd5791611797565b908154905f82916005841161181b575b6117cc93508461174f565b806117f457505f905b6001600160d01b03821615610dd9576104ce916001610dcf9201610d81565b61180e61180361181592610ffd565b835f5260205f200190565b5460301c90565b906117d5565b919261182681611611565b8103908111610dfd576117cc93855f5265ffffffffffff808360205f20015416908516105f146118575750916117c1565b92915061186390611018565b906117c1565b6040519061187682610772565b5f6020838281520152565b906118aa6118a46118cb92611894611869565b5061189d611869565b5084610d81565b50611026565b91600165ffffffffffff845116936020828060d01b03910151169101610d81565b905490604051926118db84610772565b835260031b1c602082015290565b90808210156118f6575090565b905090565b60ff5f8051602061195c8339815191525460401c161561191757565b604051631afcd79f60e31b8152600490fd5b65ffffffffffff9081811161193c571690565b604490604051906306dfcc6560e41b8252603060048301526024820152fdfef0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a2646970667358221220a5c4c6cf32000ec7f5b68bf93648e06f278425e283bf4d4339caa0e7d8693e5f64736f6c634300081900336101403461015d576001600160401b0390601f61209f38819003918201601f1916830191848311848410176101615780849260209460405283398101031261015d5751906001600160a01b038216820361015d57306080527ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a009081549060ff8260401c1661014b578080831603610106575b835f60a0525f60c0525f60e052610100905f825261012090815260405190611f299283610176843960805183505060a051836104f2015260c0518381816109490152611379015260e05183818161031d01526116a901525182818161021c01526104ae0152518181816106920152610d330152f35b6001600160401b031990911681179091556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a15f8080610091565b60405163f92ee8a960e01b8152600490fd5b5f80fd5b634e487b7160e01b5f52604160045260245ffdfe60806040526004361015610011575f80fd5b5f3560e01c8063021a815614610124578063103f29071461011f5780631a2be2c41461011a578063238ab85f14610115578063267de1f3146101105780632964f8dc1461010b5780632c9d45b3146101065780632dd310001461010157806334d098ea146100fc578063439fab91146100f7578063457821b7146100f25780639f86fd85146100ed578063aa8e6489146100e8578063aab3595f146100e3578063bb24fe8a146100de578063d5c24e1a146100d95763fbfa77cf146100d4575f80fd5b61098a565b61096d565b61092a565b610905565b6108c7565b6106c1565b61067d565b610545565b610521565b6104dd565b610499565b61047d565b610428565b6103c4565b61034c565b610308565b61017b565b6001600160a01b0381160361013a57565b5f80fd5b65ffffffffffff81160361013a57565b9181601f8401121561013a578235916001600160401b03831161013a576020838186019501011161013a57565b3461013a5760a036600319011261013a5760043560243561019b81610129565b6064356101a78161013e565b6084356001600160401b03811161013a576101c690369060040161014e565b917f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0060028154146102ec5760029055604051635daf681960e11b8152606086901c60048201526001600160a01b036020826024817f000000000000000000000000000000000000000000000000000000000000000085165afa9182156102e7575f926102b6575b50339116036102a4576102a0946102679460443591610a63565b61029060017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055565b6040519081529081906020820190565b0390f35b60405163227bf64d60e01b8152600490fd5b6102d991925060203d6020116102e0575b6102d181836107dd565b810190610ddf565b905f61024d565b503d6102c7565b610a27565b604051633ee5aeb560e01b8152600490fd5b5f91031261013a57565b3461013a575f36600319011261013a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461013a57604036600319011261013a57602061039861039360243561037181610129565b6004355f526002845260405f209060018060a01b03165f5260205260405f2090565b6115c8565b604051908152f35b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b3461013a5760c036600319011261013a576102a06104146004356103e781610129565b6103f2602435610129565b6064356103fe81610129565b60a4359161040b8361013e565b60443590610ce7565b6040519182916020835260208301906103a0565b3461013a57604036600319011261013a57602065ffffffffffff61047360243561045181610129565b6004355f526001845260405f209060018060a01b03165f5260205260405f2090565b5416604051908152f35b3461013a575f36600319011261013a576020604051614e208152f35b3461013a575f36600319011261013a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461013a575f36600319011261013a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461013a575f36600319011261013a57602060ff5f5460a01c166040519015158152f35b3461013a57602036600319011261013a576001600160401b0360043581811161013a5761057690369060040161014e565b5f80516020611ed4833981519152549260ff8460401c1615931680159081610675575b600114908161066b575b159081610662575b50610650575f80516020611ed4833981519152805467ffffffffffffffff191660011790556105de918361062c57611672565b6105e457005b5f80516020611ed4833981519152805460ff60401b19169055604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a1005b5f80516020611ed4833981519152805460ff60401b1916600160401b179055611672565b60405163f92ee8a960e01b8152600490fd5b9050155f6105ab565b303b1591506105a3565b849150610599565b3461013a575f36600319011261013a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461013a5760408060031936011261013a576004356106df81610129565b602435906001600160401b03821161013a575f809161070561076994369060040161014e565b908187519283928337810184815203915af43d156107715761075b3d61072a8161081a565b90610737865192836107dd565b81523d5f602083013e5b8451948593151560208501528084015260608301906103a0565b03601f1981018352826107dd565b805190602001fd5b61075b6060610741565b634e487b7160e01b5f52604160045260245ffd5b602081019081106001600160401b038211176107aa57604052565b61077b565b604081019081106001600160401b038211176107aa57604052565b6001600160401b0381116107aa57604052565b90601f801991011681019081106001600160401b038211176107aa57604052565b6040519061080b826107af565b565b6040519061080b8261078f565b6001600160401b0381116107aa57601f01601f191660200190565b81601f8201121561013a5780359061084c8261081a565b9261085a60405194856107dd565b8284526020838301011161013a57815f926020809301838601378301015290565b90608060031983011261013a576004359160243561089881610129565b916044356108a58161013e565b91606435906001600160401b03821161013a576108c491600401610835565b90565b3461013a5760206103986109006108dd3661087b565b939190925f526002865260405f209060018060a01b03165f5260205260405f2090565b61180c565b3461013a5760206109216109183661087b565b92919091610ed9565b50604051908152f35b3461013a575f36600319011261013a5760206040516001600160401b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461013a575f36600319011261013a576020604051620249f08152f35b3461013a575f36600319011261013a575f546040516001600160a01b039091168152602090f35b604051906109be8261078f565b60608252565b9060208282031261013a5781356001600160401b039283821161013a57019060208282031261013a57604051926109fa8461078f565b823590811161013a57610a0d9201610835565b815290565b9081602091031261013a57516108c48161013e565b6040513d5f823e3d90fd5b634e487b7160e01b5f52601160045260245ffd5b65ffffffffffff9182169082160391908211610a5e57565b610a32565b92939594919095610a726109b1565b9280610c4d575b5050610a84426118e4565b5f54600490602090610aac90610aa0906001600160a01b031681565b6001600160a01b031690565b6040516327f843b560e11b815292839182905afa80156102e757610ae692610adb925f92610c1c575b50610a46565b65ffffffffffff1690565b65ffffffffffff8516908110908115610c06575b50610bf457610b0f610b189251858886610ed9565b92908092611109565b958615610be257610b9d61075b610b94610bdd947fe0cbbe1f1e6fd806ca87036fafcebaf7ab5247474a3b20e1c37bb50122c3a88496610b598a878b61111b565b610b648c878b6111a9565b610b6c6107fe565b9182526020820152604051928391602083019190916020806040830194805184520151910152565b86898488611315565b610ba7858861141e565b610bb3858883876114a3565b6040805188815265ffffffffffff90961660208701526001600160a01b0390911694918291820190565b0390a3565b60405163167f871760e31b8152600490fd5b604051631357ac9160e11b8152600490fd5b9050610c14610adb426118e4565b11155f610afa565b610c3f91925060203d602011610c46575b610c3781836107dd565b810190610a12565b905f610ad5565b503d610c2d565b610c5b9293508101906109c4565b905f80610a79565b81601f8201121561013a57805190610c7a8261081a565b92610c8860405194856107dd565b8284526020838301011161013a57815f9260208093018386015e8301015290565b9060208282031261013a5781516001600160401b03811161013a576108c49201610c63565b60406108c49260208352519160208082015201906103a0565b604051632751749360e11b81526001600160a01b0391821660048201526024810192909252918216604482015265ffffffffffff909216606483015260609291905f90829060849082907f0000000000000000000000000000000000000000000000000000000000000000165afa9081156102e7575f91610d91575b508051610d6d5750565b61075b9192506108c490610d7f61080d565b90815260405192839160208301610cce565b610dad91503d805f833e610da581836107dd565b810190610ca9565b5f610d63565b5f9081526002602090815260408083206001600160a01b039094168352929052206108c492919061180c565b9081602091031261013a57516108c481610129565b60405190610e01826107af565b60606020838281520152565b9060208282031261013a5781516001600160401b039283821161013a57019060408282031261013a5760405192610e43846107af565b825181811161013a5782610e58918501610c63565b8452602083015190811161013a57610e709201610c63565b602082015290565b9081602091031261013a575190565b9081526001600160a01b03909116602082015265ffffffffffff90911660408201526080606082018190526108c4929101906103a0565b5f19810191908211610a5e57565b91908203918211610a5e57565b92610ee2610df4565b908051806110ef575b5050610ef6426118e4565b5f54909490610f0f90610aa0906001600160a01b031681565b93604051956327f843b560e11b875260209687816004818a5afa80156102e757610f4392610adb925f926110d75750610a46565b65ffffffffffff82169081109081156110c0575b811561108f575b50611083578560049560405196878092630ce9b79360e41b82525afa9485156102e757610fb09587915f91611066575b50845190604051808099819463e02f693760e01b8352878b8a60048601610e87565b03916001600160a01b03165afa9384156102e757611022955f95611025575b5092611017859361101d9361101796869a61100e61039383610ff9875f52600260205260405f2090565b9060018060a01b03165f5260205260405f2090565b95015192610db3565b90610ecc565b611109565b91565b61101d929550611017949193611053611017928a3d8c1161105f575b61104b81836107dd565b810190610e78565b96935093919450610fcf565b503d611041565b61107d9150823d84116102e0576102d181836107dd565b5f610f8e565b5050505050505f905f90565b90506110b9610adb6110ad87610ff9875f52600160205260405f2090565b5465ffffffffffff1690565b115f610f5e565b90506110ce610adb426118e4565b81101590610f57565b610c3f9192508a3d8c11610c4657610c3781836107dd565b6111029250602080918301019101610e0d565b5f80610eeb565b9080821015611116575090565b905090565b919091805f52600160205265ffffffffffff8061114b8560405f209060018060a01b03165f5260205260405f2090565b54169083161161115a57505050565b61080b92611182915f52600160205260405f209060018060a01b03165f5260205260405f2090565b9065ffffffffffff1665ffffffffffff19825416179055565b9060018201809211610a5e57565b9190825f5260026020526112016103936111d68360405f209060018060a01b03165f5260205260405f2090565b926111e0426118e4565b955f52600260205260405f209060018060a01b03165f5260205260405f2090565b918201809211610a5e5760018101908154156112a5575b61122181611b40565b509490835495611230846115c8565b5081611290575b501561126f5750505f198301928311610a5e5761080b926112579161159f565b90919082549060031b91821b915f19901b1916179055565b61080b94611289926001600160d01b039091169190611c17565b5050611943565b65ffffffffffff83811691161490505f611237565b6112ae82611916565b611218565b606060206108c4938184526001600160401b038151168285015201519160408082015201906103a0565b919360a0936108c4969565ffffffffffff938552600180871b03166020850152604084015216606082015281608082015201906103a0565b92939060046020611332610aa0610aa05f5460018060a01b031690565b604051630ce9b79360e41b815292839182905afa9081156102e75761075b916113b0915f916113ff575b506001600160a01b03169361136f6107fe565b6001600160401b037f0000000000000000000000000000000000000000000000000000000000000000168152906020820152604051928391602083016112b3565b823b1561013a575f946113db86926040519889978896879563724ab0f760e11b8752600487016112dd565b03925af180156102e7576113ec5750565b806113f961080b926107ca565b806102fe565b611418915060203d6020116102e0576102d181836107dd565b5f61135c565b5f8054604051631c9e38c760e21b8152600481019390935265ffffffffffff9390931660248301529091602091839160449183916001600160a01b03165af180156102e75761146a5750565b6114829060203d60201161105f5761104b81836107dd565b50565b811561148f570490565b634e487b7160e01b5f52601260045260245ffd5b92905f549060ff8260a01c166114bb575b5050505050565b6040516313c085b760e11b815291602090839060049082906001600160a01b03165afa9182156102e7575f92611578575b5060405163065c1e0360e01b6020820190815260248201969096526001600160a01b039091166044820152606481019390935265ffffffffffff90911660848301526115458260a481015b03601f1981018452836107dd565b6202a15c5a10611566575f928380935192620249f0f1505f808080806114b4565b604051632153f33560e21b8152600490fd5b61154592506115986115379160203d6020116102e0576102d181836107dd565b92506114ec565b80548210156115b4575f5260205f2001905f90565b634e487b7160e01b5f52603260045260245ffd5b8054806115fd57505f5b6001600160d01b038116156115f75760016115ed920161159f565b90549060031b1c90565b50505f90565b5f19908082810111610a5e57825f5260205f2001015460301c6115d2565b91909160408184031261013a57803561163381610129565b9260208201356001600160401b03811161013a576108c49201610835565b5190811515820361013a57565b9081602091031261013a576108c490611651565b61167e9181019061161b565b6040516302910f8b60e31b81526001600160a01b0392831660048201819052929160209182816024817f000000000000000000000000000000000000000000000000000000000000000088165afa9081156102e7575f916117ae575b501561179c578161170e6004926116ef611966565b5f80546001600160a01b0319166001600160a01b03891617905561199c565b94604051928380926313c085b760e11b82525afa9182156102e7575f9261177f575b5050161580611775575b611763575161080b9015155f805460ff60a01b191691151560a01b60ff60a01b16919091179055565b60405163d2420f5960e01b8152600490fd5b508051151561173a565b6117959250803d106102e0576102d181836107dd565b5f80611730565b6040516362df054560e01b8152600490fd5b6117ce9150833d85116117d4575b6117c681836107dd565b81019061165e565b5f6116da565b503d6117bc565b9081602091031261013a575163ffffffff8116810361013a5790565b90600163ffffffff80931601918211610a5e57565b918051156118da5780602080611827935183010191016117db565b916118328382611ab4565b92611843845165ffffffffffff1690565b9065ffffffffffff80851692168281146118ce5782119182611879575b5050611870576108c492506119e4565b50506020015190565b9091506118868354610ebe565b63ffffffff83161491821561189f575b50505f80611860565b6118c69192506118ba6118b4610adb926117f7565b85611ab4565b5165ffffffffffff1690565b115f80611896565b50505050506020015190565b506108c4916119e4565b65ffffffffffff908181116118f7571690565b604490604051906306dfcc6560e41b8252603060048301526024820152fd5b8054600160401b8110156107aa576119339160018201815561159f565b8154905f199060031b1b19169055565b90815491600160401b8310156107aa578261125791600161080b9501815561159f565b61196e611b8f565b611976611b8f565b60017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055565b5f6040516119a98161078f565b5260208180518101031261013a576020906040516119c68161078f565b6119de6040519384936119d88561078f565b01611651565b82525290565b908154905f829160058411611a4e575b6119ff935084611e74565b80611a2757505f905b6001600160d01b038216156115f7576108c49160016115ed920161159f565b611a41611a36611a4892610ebe565b835f5260205f200190565b5460301c90565b90611a08565b9192611a5981611d36565b8103908111610a5e576119ff93855f5265ffffffffffff808360205f20015416908516105f14611a8a5750916119f4565b929150611a969061119b565b906119f4565b60405190611aa9826107af565b5f6020838281520152565b90611add611ad7611afe92611ac7611a9c565b50611ad0611a9c565b508461159f565b50611b1c565b91600165ffffffffffff845116936020828060d01b0391015116910161159f565b90549060405192611b0e846107af565b835260031b1c602082015290565b90604051611b29816107af565b915465ffffffffffff8116835260301c6020830152565b805480611b515750505f905f905f90565b5f19908082810111610a5e57611b6e925f5260205f200101611b1c565b9065ffffffffffff82511691602060018060d01b0391015116906001929190565b60ff5f80516020611ed48339815191525460401c1615611bab57565b604051631afcd79f60e31b8152600490fd5b8054600160401b8110156107aa57611bda9160018201815561159f565b611c0457815160209092015160301b65ffffffffffff191665ffffffffffff909216919091179055565b634e487b7160e01b5f525f60045260245ffd5b805492939291908215611d0d57611c38611c33611a3685610ebe565b611b1c565b90611c49825165ffffffffffff1690565b65ffffffffffff84811691168110611cfb57611cbf946020948892611c77610adb875165ffffffffffff1690565b03611cc35750611cb192611c8d611c9892610ebe565b905f5260205f200190565b9065ffffffffffff82549181199060301b169116179055565b01516001600160d01b031690565b9190565b915050611cf691611ce3611cd56107fe565b65ffffffffffff9093168352565b6001600160d01b03881682860152611bbd565b611cb1565b604051632520601d60e01b8152600490fd5b611d319250611d1d611cd56107fe565b6001600160d01b0385166020830152611bbd565b5f9190565b8015611e6f5780611e08611e01611df7611ded611de3611dd9611dcf611dc560016108c49a5f908b60801c80611e63575b508060401c80611e56575b508060201c80611e49575b508060101c80611e3c575b508060081c80611e2f575b508060041c80611e22575b508060021c80611e15575b50821c611e0e575b811c1b611dbe818b611485565b0160011c90565b611dbe818a611485565b611dbe8189611485565b611dbe8188611485565b611dbe8187611485565b611dbe8186611485565b611dbe8185611485565b8092611485565b90611109565b8101611db1565b600291509101905f611da9565b600491509101905f611d9e565b600891509101905f611d93565b601091509101905f611d88565b602091509101905f611d7d565b604091509101905f611d72565b9150506080905f611d67565b505f90565b91905b838210611e845750505090565b9091928083169080841860011c8201809211610a5e57845f5265ffffffffffff808360205f20015416908416105f14611ec15750925b9190611e77565b939250611ecd9061119b565b91611eba56fef0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a2646970667358221220261f69963924e5ee7c5ac4782d04417e658bb4ddd05ada87235908dd0839073964736f6c634300081900336101603461017c576001600160401b0390601f61377c38819003918201601f1916830191848311848410176101805780849260209460405283398101031261017c5751906001600160a01b038216820361017c57306080527ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a009081549060ff8260401c1661016a578080831603610125575b835f60a0525f60c0525f60e052610100905f8252610120905f8252610140908152604051916135e79384610195853960805184610b66015260a0518461047b015260c0518481816115860152612c5a015260e0518481816102e801526122ba0152518381816104370152612444015251828181610c7801526115dc015251818181610806015281816119140152611d090152f35b6001600160401b031990911681179091556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a15f8080610091565b60405163f92ee8a960e01b8152600490fd5b5f80fd5b634e487b7160e01b5f52604160045260245ffdfe60806040526004361015610011575f80fd5b5f3560e01c80622a087514610213578063103f29071461020e5780631a2be2c4146102095780631dd5f60014610204578063267de1f3146101ff5780632964f8dc146101fa5780632c9d45b3146101f55780632dd31000146101f057806331ce4dfe146101eb57806334d098ea146101e6578063439fab91146101e1578063457821b7146101dc5780635264679b146101d7578063545ce389146101d257806369f78920146101cd5780638f42f9ab146101c85780638f82f931146101c35780639168f9d2146101be5780639a896551146101b95780639f86fd85146101b4578063a4ef9b4f146101af578063aa8e6489146101aa578063aab3595f146101a5578063b94c386e146101a0578063bb24fe8a1461019b578063bc6eac5b14610196578063c0cd7c3e14610191578063cd05b8a11461018c578063d5c24e1a14610187578063e054e08b14610182578063f9268d181461017d5763fbfa77cf14610178575f80fd5b611813565b6116a5565b611680565b611663565b61160b565b6115c7565b6115aa565b611567565b61121b565b6111c3565b611185565b611122565b61108e565b611003565b610bd8565b610b47565b610b2a565b610ae5565b61084f565b610835565b6107f1565b6106b9565b610668565b6105ff565b610466565b610422565b610406565b6103b1565b610397565b610317565b6102d3565b610261565b6001600160a01b0381160361022957565b5f80fd5b65ffffffffffff81160361022957565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b346102295760c0366003190112610229576102c56102b160043561028481610218565b61028f602435610218565b60643561029b81610218565b60a435916102a88361022d565b604435906118c9565b60405191829160208352602083019061023d565b0390f35b5f91031261022957565b34610229575f366003190112610229576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461022957604036600319011261022957602061036361035e60243561033c81610218565b6004355f526002845260405f209060018060a01b03165f5260205260405f2090565b6120d2565b604051908152f35b60609060031901126102295760043561038381610218565b90602435906044356103948161022d565b90565b34610229576102c56102b16103ab3661036b565b916119a0565b3461022957604036600319011261022957602065ffffffffffff6103fc6024356103da81610218565b6004355f526001845260405f209060018060a01b03165f5260205260405f2090565b5416604051908152f35b34610229575f366003190112610229576020604051614e208152f35b34610229575f366003190112610229576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b34610229575f366003190112610229576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b634e487b7160e01b5f52604160045260245ffd5b602081019081106001600160401b038211176104d957604052565b6104aa565b604081019081106001600160401b038211176104d957604052565b606081019081106001600160401b038211176104d957604052565b6001600160401b0381116104d957604052565b608081019081106001600160401b038211176104d957604052565b90601f801991011681019081106001600160401b038211176104d957604052565b6040519060c082018281106001600160401b038211176104d957604052565b6040519061058f826104f9565b565b6040519061058f826104de565b6001600160401b0381116104d957601f01601f191660200190565b81601f82011215610229578035906105d08261059e565b926105de6040519485610542565b8284526020838301011161022957815f926020809301838601378301015290565b346102295760603660031901126102295760243561061c8161022d565b604435906001600160401b0382116102295761065f61064160209336906004016105b9565b6004355f90815260068552604090206001600160a01b03939061214a565b16604051908152f35b34610229575f36600319011261022957602060ff5f5460a01c166040519015158152f35b9181601f84011215610229578235916001600160401b038311610229576020838186019501011161022957565b34610229576020366003190112610229576001600160401b03600435818111610229576106ea90369060040161068c565b5f80516020613592833981519152549260ff8460401c16159316801590816107e9575b60011490816107df575b1590816107d6575b506107c4575f80516020613592833981519152805467ffffffffffffffff1916600117905561075291836107a057612283565b61075857005b5f80516020613592833981519152805460ff60401b19169055604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a1005b5f80516020613592833981519152805460ff60401b1916600160401b179055612283565b60405163f92ee8a960e01b8152600490fd5b9050155f61071f565b303b159150610717565b84915061070d565b34610229575f366003190112610229576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b34610229576102c56102b16108493661036b565b91611a24565b346102295760a0366003190112610229576004602435813561087082610218565b6064359161087d8361022d565b6084356001600160401b0381116102295761089b903690860161068c565b93906108a56123ed565b6108ae8461241c565b6108b6611ab6565b9480610acf575b50506108c8426125ff565b6108e26108db875465ffffffffffff1690565b8092611b17565b5f54909590610907906108fb906001600160a01b031681565b6001600160a01b031690565b958760206040988951928380926327f843b560e11b82525afa8015610aca576109469261093b925f92610a99575b50611a0c565b65ffffffffffff1690565b65ffffffffffff8416908110908115610a83575b50610a735761096f61097891518486886127da565b506044356124b3565b958615610a65576102c5610a3e878988887f3cb7f4ff6cecf74cee0eb9ae3ebf8933fa60a53014cce52f96da72a78dba8464896109bd8a6109b8426125ff565b611b17565b92600354978894610a0e6109cf610563565b8881526001600160a01b0385166020820152808b018a905265ffffffffffff8616606082015265ffffffffffff831660808201525f60a0820152611b59565b885197885265ffffffffffff938416602089015290921660408701526001600160a01b0316949081906060820190565b0390a4610a5760015f8051602061357283398151915255565b519081529081906020820190565b855163167f871760e31b8152fd5b8551631357ac9160e11b81528790fd5b9050610a9161093b426125ff565b11155f61095a565b610abc91925060203d602011610ac3575b610ab48183610542565b810190611b31565b905f610935565b503d610aaa565b6118a5565b610add929550810190611ac9565b925f806108bd565b34610229576080366003190112610229576102c56102b1600435610b0881610218565b604435610b1481610218565b60643591610b218361022d565b60243590611c8f565b34610229575f366003190112610229576020600354604051908152f35b3461022957604036600319011261022957602435610b648161022d565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163303610bc65763ffffffff610bb16040926004355f526006602052835f206124e9565b91505083929192519215158352166020820152f35b604051637ca475e560e11b8152600490fd5b346102295760603660031901126102295760048035906bffffffffffffffffffffffff8216820361022957602435610c0f81610218565b6044356001600160401b03811161022957610c2d903690840161068c565b90610c366123ed565b610c3e611ab6565b5081610f9e575b5050604080516302910f8b60e31b8152338185019081526001600160a01b0395929491602091829082908190830103818a7f0000000000000000000000000000000000000000000000000000000000000000165afa908115610aca575f91610f71575b5015610f62575f54610ce3906001600160a01b0316936bffffffffffffffffffffffff166bffffffffffffffffffffffff193360601b161790565b95610cfe610cf9885f52600660205260405f2090565b61323a565b50949015610ef857610d1261093b426125ff565b65ffffffffffff9586161115610ec257610d3c610d37895f52600660205260405f2090565b6125c0565b505b610d616108fb6108fb6108fb610d5c8c5f52600660205260405f2090565b612e78565b91808716928303610dcd575b505050505050610db2907f7b0b759b513b299fd2811f51926dca8854222a675557e8d544ce0933bf5b7570925b516001600160a01b0390911681529081906020820190565b0390a2610dcb60015f8051602061357283398151915255565b005b610de48998959796985f52600660205260405f2090565b911692845163186a323160e21b815281818981885afa908115610aca575f91610ea5575b5081600554958751998a80926327f843b560e11b82525afa908115610aca5789610e6d610e7f977f7b0b759b513b299fd2811f51926dca8854222a675557e8d544ce0933bf5b75709c610e7495610db29d610e79985f92610e88575b50501690611dde565b9116611dff565b6125ff565b90613447565b82958495610d6d565b610e9e9250803d10610ac357610ab48183610542565b5f80610e64565b610ebc9150823d8411610ac357610ab48183610542565b5f610e08565b610ee06108fb6108fb6108fb610d5c8c5f52600660205260405f2090565b82871603610d3e57865163a741a04560e01b81528490fd5b5093949385169250508115610f54575091610db291610f4d7f7b0b759b513b299fd2811f51926dca8854222a675557e8d544ce0933bf5b757094610f44875f52600660205260405f2090565b610e79426125ff565b5050610d9a565b825163a741a04560e01b8152fd5b5083516323d53b9760e21b8152fd5b610f919150823d8411610f97575b610f898183610542565b810190611dca565b5f610ca8565b503d610f7f565b610faa91810190611ac9565b505f80610c45565b634e487b7160e01b5f52603260045260245ffd5b600354811015610ffe5760035f5260021b7fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b01905f90565b610fb2565b34610229576020366003190112610229576004356003548110156102295761102a90610fc6565b50805460018201546002830154600390930154604080519384526001600160a01b0390921660208401529082019290925265ffffffffffff808316606080840191909152603084901c90911660808301529190911c60ff16151560a082015260c090f35b34610229576040366003190112610229576004356110ab81610218565b6024356001600160401b038111610229575f916110cd8392369060040161068c565b90816040519283928337810184815203915af461111a6110eb611e0c565b9161110c60405193849215156020840152604080840152606083019061023d565b03601f198101835282610542565b805190602001fd5b34610229576102c56102b16111363661036b565b91611e6d565b906080600319830112610229576004359160243561115981610218565b916044356111668161022d565b91606435906001600160401b03821161022957610394916004016105b9565b346102295760206103636111be61119b3661113c565b939190925f526002865260405f209060018060a01b03165f5260205260405f2090565b612665565b346102295760206111df6111d63661113c565b929190916127da565b50604051908152f35b9060406003198301126102295760043591602435906001600160401b038211610229576112179160040161068c565b9091565b3461022957611229366111e8565b91906112336123ed565b61123b611f92565b9280611551575b505060035481101561153f5761125781610fc6565b50908154906112658261241c565b6003830180549365ffffffffffff9384861660018060a01b0361128a895183856119b7565b16151580611514575b806114fb575b6114e9576112af816112aa426125ff565b611a0c565b5f546112c5906108fb906001600160a01b031681565b96600460206040998a51928380926327f843b560e11b82525afa8015610aca5782915f916114ca575b50169116116114b957600183018054909861131993929188906001600160a01b0316910151926127da565b906113288160028501546124b3565b9687156114a85760601c60ff166114975792611450611443899461141b6114088b9687876102c59f6114168f9d8f9e6114569f61137286600160601b60ff60601b19825416179055565b8a54855461139491906001600160a01b0316885465ffffffffffff1691612a0a565b8a5485546113ad9189916001600160a01b031690612a8a565b8a5494546113cb906001600160a01b0316965465ffffffffffff1690565b976113d4610582565b9384526020840152818301525196879160208301919091604080606083019480518452602081015160208501520151910152565b03601f198101875286610542565b612bf6565b61143461142e855465ffffffffffff1690565b86612cff565b5494546001600160a01b031690565b915465ffffffffffff1690565b92612d7c565b81518381527f5cc28df3b54da9d06f805d87616ebf969c81310f2aa8369cb14ca50f815d411190602090a2610a5760015f8051602061357283398151915255565b8551633428e90760e01b8152600490fd5b865163167f871760e31b8152600490fd5b8551639ea153eb60e01b8152600490fd5b6114e3915060203d602011610ac357610ab48183610542565b5f6112ee565b60405163b62b15c760e01b8152600490fd5b5061150861093b426125ff565b868860301c1611611299565b506115386108fb61152c611527426125ff565b6119f0565b60208b015190856119b7565b1515611293565b604051637822972360e11b8152600490fd5b61155f929350810190611fb1565b905f80611242565b34610229575f3660031901126102295760206040516001600160401b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b34610229575f366003190112610229576020600554604051908152f35b34610229575f366003190112610229576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b34610229576040366003190112610229576024356001600160401b0381116102295761165161164060209236906004016105b9565b611649426125ff565b6004356119b7565b6040516001600160a01b039091168152f35b34610229575f366003190112610229576020604051620249f08152f35b34610229575f36600319011261022957602065ffffffffffff60045416604051908152f35b34610229576116b3366111e8565b906116bc6123ed565b6116c4612039565b91806117ff575b505060035482101561153f576116e082610fc6565b506003815491019182549165ffffffffffff9160018060a01b036117088251858716856119b7565b169182159182156117d6575b50506117c45733036117b25761172c61093b426125ff565b908260301c1611156117a15760601c60ff1661178f57805460ff60601b1916600160601b17905533907f7d3d269c851b72257a5194a401d151902e9be4347d555996dcff3ff86a077e925f80a3610dcb60015f8051602061357283398151915255565b604051633428e90760e01b8152600490fd5b60405162c457e560e81b8152600490fd5b604051635d154fe160e11b8152600490fd5b60405163dd1ebd9d60e01b8152600490fd5b6117f79250906108fb9160206117ee611527426125ff565b910151916119b7565b155f80611714565b61180c9250810190612052565b5f806116cb565b34610229575f366003190112610229575f546040516001600160a01b039091168152602090f35b81601f82011215610229578051906118518261059e565b9261185f6040519485610542565b8284526020838301011161022957815f9260208093018386015e8301015290565b906020828203126102295781516001600160401b03811161022957610394920161183a565b6040513d5f823e3d90fd5b604061039492602083525191602080820152019061023d565b604051632751749360e11b81526001600160a01b0391821660048201526024810192909252909116604482015265ffffffffffff9091166064820152606091905f81806084810103817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa908115610aca575f9161197e575b5080516119565750565b61110c919250610394906040519061196d826104be565b8152604051928391602083016118b0565b61199a91503d805f833e6119928183610542565b810190611880565b5f61194c565b92916119ae91606094611e6d565b80516119565750565b5f9081526006602052604090206001600160a01b03926119d892909161214a565b1690565b634e487b7160e01b5f52601160045260245ffd5b65ffffffffffff9081165f190191908211611a0757565b6119dc565b65ffffffffffff9182169082160391908211611a0757565b611a4590939293611a386060958483611e6d565b92611136611527426125ff565b815115801590611aac575b611a58575050565b611a999293509061110c6103949260405192611a73846104de565b83526020830190815260405194859360208086015251604080860152608085019061023d565b9051838203603f1901606085015261023d565b5080511515611a50565b60405190611ac3826104be565b60608252565b906020828203126102295781356001600160401b03928382116102295701906020828203126102295760405192611aff846104be565b823590811161022957611b1292016105b9565b815290565b91909165ffffffffffff80809416911601918211611a0757565b9081602091031261022957516103948161022d565b634e487b7160e01b5f525f60045260245ffd5b600354600160401b8110156104d957806001611b789201600355610fc6565b919091611c3b578051825560208101516001830180546001600160a01b0319166001600160a01b039290921691909117905561058f91611c219060a090600390604085015160028201550192611bee65ffffffffffff606083015116859065ffffffffffff1665ffffffffffff19825416179055565b60808101516bffffffffffff00000000000085549160301b16906bffffffffffff00000000000019161784550151151590565b815460ff60601b191690151560601b60ff60601b16179055565b611b46565b906103949160208152611c5f825160606020840152608083019061023d565b9060606040611c7f602086015194601f199586868303018487015261023d565b940151928285030191015261023d565b919093925f606095611ca2838287611e6d565b94611d05611cbc611cb5611527426125ff565b8484611e6d565b604051632751749360e11b81526001600160a01b039384166004820152602481019490945291909516604483015265ffffffffffff909316606482015292839081906084820190565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa918215610aca575f92611da1575b50825115801590611d97575b8015611d8d575b611d5d57505050565b61110c939450906103949291611d71610582565b9283526020830152604082015260405192839160208301611c40565b5081511515611d54565b5080511515611d4d565b611db69192503d805f833e6119928183610542565b905f611d41565b5190811515820361022957565b908160209103126102295761039490611dbd565b81810292918115918404141715611a0757565b9060018201809211611a0757565b91908201809211611a0757565b3d15611e36573d90611e1d8261059e565b91611e2b6040519384610542565b82523d5f602084013e565b606090565b519063ffffffff8216820361022957565b9190826040910312610229576103946020611e6684611dbd565b9301611e3b565b92915f8060609565ffffffffffff60405194602096638f82f93160e01b88880152602487015216604485015260448452611ea684610527565b6040519384611ed387820192639f86fd8560e01b845230602484015260406044840152606483019061023d565b0394611ee7601f1996878101835282610542565b51915afa50611f05611ef7611e0c565b838082518301019101612631565b9015611f5857808380611f1d93518301019101611e4c565b9290611f2857505050565b61039492939450611f4c604051948592830191909163ffffffff6020820193169052565b03908101835282610542565b809150519182156102295701fd5b5f9081526002602090815260408083206001600160a01b03909416835292905220610394929190612665565b60405190611f9f826104f9565b60606040838281528260208201520152565b906020828203126102295781356001600160401b03928382116102295701906060828203126102295760405192611fe7846104f9565b82358181116102295782611ffc9185016105b9565b8452602083013581811161022957826120169185016105b9565b602085015260408301359081116102295761203192016105b9565b604082015290565b60405190612046826104de565b60606020838281520152565b906020828203126102295781356001600160401b03928382116102295701906040828203126102295760405192612088846104de565b8235818111610229578261209d9185016105b9565b84526020830135908111610229576120b592016105b9565b602082015290565b8054821015610ffe575f5260205f2001905f90565b6120db81612e78565b6001600160d01b038116156121005760016120f692016120bd565b90549060031b1c90565b50505f90565b908160209103126102295761039490611e3b565b5f19810191908211611a0757565b91908203918211611a0757565b90600163ffffffff80931601918211611a0757565b9180511561222e578060208061216593518301019101612106565b916121708382612eb8565b92612181845165ffffffffffff1690565b9065ffffffffffff808516921682811461221557821191826121c0575b50506121ae576103949250613346565b5050602001516001600160d01b031690565b9091506121cd835461211a565b63ffffffff8316149182156121e6575b50505f8061219e565b61220d9192506122016121fb61093b92612135565b85612eb8565b5165ffffffffffff1690565b115f806121dd565b50505050602091909101516001600160d01b0316905090565b5061039491613346565b91909160408184031261022957803561225081610218565b9260208201356001600160401b0381116102295761039492016105b9565b90816020910312610229575161039481610218565b61228f91810190612238565b6040516302910f8b60e31b81526001600160a01b0392831660048201819052929160209182816024817f000000000000000000000000000000000000000000000000000000000000000088165afa908115610aca575f916123d0575b50156123be5781612320600492612300612f0c565b5f80546001600160a01b0319166001600160a01b03891617905586612f99565b94604051928380926313c085b760e11b82525afa918215610aca575f92612391575b5050161580612387575b612375575161058f9015155f805460ff60a01b191691151560a01b60ff60a01b16919091179055565b60405163d2420f5960e01b8152600490fd5b508051151561234c565b6123b09250803d106123b7575b6123a88183610542565b81019061226e565b5f80612342565b503d61239e565b6040516362df054560e01b8152600490fd5b6123e79150833d8511610f9757610f898183610542565b5f6122eb565b5f80516020613572833981519152600281541461240a5760029055565b604051633ee5aeb560e01b8152600490fd5b604051635daf681960e11b815260609190911c60048201526001600160a01b036020826024817f000000000000000000000000000000000000000000000000000000000000000085165afa918215610aca575f92612492575b503391160361248057565b60405163227bf64d60e01b8152600490fd5b6124ac91925060203d6020116123b7576123a88183610542565b905f612475565b90808210156124c0575090565b905090565b906040516124d2816104de565b915465ffffffffffff8116835260301c6020830152565b908154905f829160058411612572575b6125049350846131d8565b90811561256657612525906125188361211a565b905f5260205f20016124c5565b9161255f6125566125506020612541875165ffffffffffff1690565b9601516001600160d01b031690565b9361211a565b63ffffffff1690565b6001939291565b50505f905f905f905f90565b919261257d8161309a565b8103908111611a075761250493855f5265ffffffffffff808360205f20015416908516105f146125ae5750916124f9565b9291506125ba90611df1565b906124f9565b906125ca82612e78565b91805480156125eb575f1901906125e182826120bd565b611c3b575f905555565b634e487b7160e01b5f52603160045260245ffd5b65ffffffffffff90818111612612571690565b604490604051906306dfcc6560e41b8252603060048301526024820152fd5b9190916040818403126102295761264781611dbd565b9260208201516001600160401b03811161022957610394920161183a565b91805115612727578060208061268093518301019101612106565b9161268b8382613294565b9261269c845165ffffffffffff1690565b9065ffffffffffff808516921682811461271b57821191826126d2575b50506126c9576103949250613289565b50506020015190565b9091506126df835461211a565b63ffffffff8316149182156126f8575b50505f806126b9565b61271391925061220161270d61093b92612135565b85613294565b115f806126ef565b50505050506020015190565b5061039491613289565b906020828203126102295781516001600160401b03928382116102295701906040828203126102295760405192612767846104de565b8251818111610229578261277c91850161183a565b84526020830151908111610229576120b5920161183a565b90816020910312610229575190565b9081526001600160a01b03909116602082015265ffffffffffff90911660408201526080606082018190526103949291019061023d565b926127e3612039565b908051806129f0575b50506127f7426125ff565b5f54909490612810906108fb906001600160a01b031681565b93604051956327f843b560e11b875260209687816004818a5afa8015610aca576128449261093b925f926129d85750611a0c565b65ffffffffffff82169081109081156129c1575b8115612990575b50612984578560049560405196878092630ce9b79360e41b82525afa948515610aca576128b19587915f91612967575b50845190604051808099819463e02f693760e01b8352878b8a600486016127a3565b03916001600160a01b03165afa938415610aca57612923955f95612926575b5092612918859361291e9361291896869a61290f61035e836128fa875f52600260205260405f2090565b9060018060a01b03165f5260205260405f2090565b95015192611f66565b90612128565b6124b3565b91565b61291e929550612918949193612954612918928a3d8c11612960575b61294c8183610542565b810190612794565b969350939194506128d0565b503d612942565b61297e9150823d84116123b7576123a88183610542565b5f61288f565b5050505050505f905f90565b90506129ba61093b6129ae876128fa875f52600160205260405f2090565b5465ffffffffffff1690565b115f61285f565b90506129cf61093b426125ff565b81101590612858565b610abc9192508a3d8c11610ac357610ab48183610542565b612a039250602080918301019101612731565b5f806127ec565b919091805f52600160205265ffffffffffff80612a3a8560405f209060018060a01b03165f5260205260405f2090565b541690831611612a4957505050565b61058f92612a71915f52600160205260405f209060018060a01b03165f5260205260405f2090565b9065ffffffffffff1665ffffffffffff19825416179055565b9190825f526002602052612ae261035e612ab78360405f209060018060a01b03165f5260205260405f2090565b92612ac1426125ff565b955f52600260205260405f209060018060a01b03165f5260205260405f2090565b918201809211611a07576001810190815415612b86575b612b028161323a565b509490835495612b11846120d2565b5081612b71575b5015612b505750505f198301928311611a075761058f92612b38916120bd565b90919082549060031b91821b915f19901b1916179055565b61058f94612b6a926001600160d01b039091169190613447565b5050613323565b65ffffffffffff83811691161490505f612b18565b612b8f826132f6565b612af9565b60606020610394938184526001600160401b0381511682850152015191604080820152019061023d565b919360a093610394969565ffffffffffff938552600180871b031660208501526040840152166060820152816080820152019061023d565b92939060046020612c136108fb6108fb5f5460018060a01b031690565b604051630ce9b79360e41b815292839182905afa908115610aca5761110c91612c91915f91612ce0575b506001600160a01b031693612c50610591565b6001600160401b037f000000000000000000000000000000000000000000000000000000000000000016815290602082015260405192839160208301612b94565b823b15610229575f94612cbc86926040519889978896879563724ab0f760e11b875260048701612bbe565b03925af18015610aca57612ccd5750565b80612cda61058f92610514565b806102c9565b612cf9915060203d6020116123b7576123a88183610542565b5f612c3d565b65ffffffffffff9160446020925f60018060a01b038154166040519687958694631c9e38c760e21b865260048601521660248401525af18015610aca57612d435750565b612d5b9060203d6020116129605761294c8183610542565b50565b8115612d68570490565b634e487b7160e01b5f52601260045260245ffd5b92905f549060ff8260a01c16612d94575b5050505050565b6040516313c085b760e11b815291602090839060049082906001600160a01b03165afa918215610aca575f92612e51575b5060405163065c1e0360e01b6020820190815260248201969096526001600160a01b039091166044820152606481019390935265ffffffffffff9091166084830152612e1e8260a481015b03601f198101845283610542565b6202a15c5a10612e3f575f928380935192620249f0f1505f80808080612d8d565b604051632153f33560e21b8152600490fd5b612e1e9250612e71612e109160203d6020116123b7576123a88183610542565b9250612dc5565b805480612e855750505f90565b5f19918183810111611a07575f5260205f2001015460301c90565b60405190612ead826104de565b5f6020838281520152565b612edd91612ed791612ec8612ea0565b50612ed1612ea0565b506120bd565b506124c5565b65ffffffffffff81511690602060018060d01b039101511660405191612f02836104de565b8252602082015290565b612f146133d2565b612f1c6133d2565b60015f8051602061357283398151915255565b60405190612f3c826104be565b5f8252565b809103906060821261022957602060405192612f5c846104f9565b12610229576040908151612f6f816104be565b612f7882611dbd565b815283526020810151612f8a8161022d565b60208401520151604082015290565b90600490612fa5612f2f565b508051612fbc602092838080948301019101612f41565b6040516327f843b560e11b815290949093849182906001600160a01b03165afa918215610aca575f9261307b575b50820190612ffe825165ffffffffffff1690565b65ffffffffffff91821691161015613069576040820160038151106130575761304d613033613053935165ffffffffffff1690565b65ffffffffffff1665ffffffffffff196004541617600455565b51600555565b5190565b6040516354f778f360e01b8152600490fd5b6040516367d5e3df60e11b8152600490fd5b816130939293503d8411610ac357610ab48183610542565b905f612fea565b80156131d3578061316c61316561315b61315161314761313d61313361312960016103949a5f908b60801c806131c7575b508060401c806131ba575b508060201c806131ad575b508060101c806131a0575b508060081c80613193575b508060041c80613186575b508060021c80613179575b50821c613172575b811c1b613122818b612d5e565b0160011c90565b613122818a612d5e565b6131228189612d5e565b6131228188612d5e565b6131228187612d5e565b6131228186612d5e565b6131228185612d5e565b8092612d5e565b906124b3565b8101613115565b600291509101905f61310d565b600491509101905f613102565b600891509101905f6130f7565b601091509101905f6130ec565b602091509101905f6130e1565b604091509101905f6130d6565b9150506080905f6130cb565b505f90565b91905b8382106131e85750505090565b909192808316906001818518811c8301809311611a0757855f5265ffffffffffff808460205f20015416908516105f14613227575050925b91906131db565b909493508101809111611a075791613220565b80548061324b5750505f905f905f90565b5f19908082810111611a0757613268925f5260205f2001016124c5565b9065ffffffffffff82511691602060018060d01b0391015116906001929190565b906120db9082613346565b906132b7612ed76132d8926132a7612ea0565b506132b0612ea0565b50846120bd565b91600165ffffffffffff845116936020828060d01b039101511691016120bd565b905490604051926132e8846104de565b835260031b1c602082015290565b8054600160401b8110156104d957613313916001820181556120bd565b8154905f199060031b1b19169055565b90815491600160401b8310156104d95782612b3891600161058f950181556120bd565b908154905f829160058411613384575b6133619350846131d8565b8061336c5750505f90565b6133759061211a565b905f5260205f20015460301c90565b919261338f8161309a565b8103908111611a075761336193855f5265ffffffffffff808360205f20015416908516105f146133c0575091613356565b9291506133cc90611df1565b90613356565b60ff5f805160206135928339815191525460401c16156133ee57565b604051631afcd79f60e31b8152600490fd5b8054600160401b8110156104d95761341d916001820181556120bd565b611c3b57815160209092015160301b65ffffffffffff191665ffffffffffff909216919091179055565b8054929392919082156135485761347361346e6134638561211a565b835f5260205f200190565b6124c5565b90613484825165ffffffffffff1690565b65ffffffffffff84811691168110613536576134fa9460209488926134b261093b875165ffffffffffff1690565b036134fe57506134ec926134c86134d39261211a565b905f5260205f200190565b9065ffffffffffff82549181199060301b169116179055565b01516001600160d01b031690565b9190565b9150506135319161351e613510610591565b65ffffffffffff9093168352565b6001600160d01b03881682860152613400565b6134ec565b604051632520601d60e01b8152600490fd5b61356c9250613558613510610591565b6001600160d01b0385166020830152613400565b5f919056fe9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a264697066735822122066def236e3cb068f18d202c0ed5927514d7f8f51390f7bbba09b96397dfe793c64736f6c63430008190033","sourceMap":"624:2139:89:-:0;;;;;;;;;;;;;-1:-1:-1;;624:2139:89;;;;-1:-1:-1;;;;;624:2139:89;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;624:2139:89;;;;;;;;348:4:87;332:21;;8837:64:26;624:2139:89;;;;;;;7896:76:26;;624:2139:89;;;;;;7985:34:26;7981:146;;-1:-1:-1;525:17:74;;;-1:-1:-1;525:17:74;;-1:-1:-1;552:12:74;;-1:-1:-1;2353:28:97;;2391:53;;-1:-1:-1;2391:53:97;;987:41:89;;;;624:2139;;1062:31;;;;;;;;;;;;;;624:2139;1062:31;;;;;;348:4:87;624:2139:89;;1062:31;;;-1:-1:-1;1062:31:89;;;;;;1038:56;;624:2139;;1038:56;;624:2139;;1133:35;;;;;;;;;;;;;;;624:2139;1133:35;;;;;;348:4:87;624:2139:89;;1133:35;;;-1:-1:-1;1133:35:89;;;;;;1104:65;624:2139;;1104:65;;624:2139;;;;;;;;332:21:87;624:2139:89;;;;;525:17:74;624:2139:89;;;;;552:12:74;624:2139:89;;;;;2353:28:97;624:2139:89;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1133:35;624:2139;;;-1:-1:-1;624:2139:89;;;;;1133:35;624:2139;;;-1:-1:-1;624:2139:89;;;;;-1:-1:-1;624:2139:89;7981:146:26;-1:-1:-1;;;;;;624:2139:89;;;;;;;;;8087:29:26;;624:2139:89;;8087:29:26;7981:146;;;;;7896:76;624:2139:89;;-1:-1:-1;;;7938:23:26;;;;;624:2139:89;-1:-1:-1;624:2139:89;","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361015610011575f80fd5b5f3560e01c8063103f2907146101545780631a2be2c41461014f578063267de1f31461014a5780632964f8dc146101455780632c9d45b3146101405780632dd310001461013b57806334d098ea14610136578063439fab91146101315780634a7196551461012c5780634ea2e926146101275780634eb5a242146101225780636565b7db1461011d578063770280461461011857806379d89614146101135780639f86fd851461010e578063aa8e648914610109578063aab3595f14610104578063bb24fe8a146100ff578063d5c24e1a146100fa5763fbfa77cf146100f5575f80fd5b61094a565b61092d565b6108ea565b6108c5565b610887565b6106ca565b610686565b6105cf565b61058b565b610547565b61052a565b6104f5565b61034b565b6102fa565b6102b6565b610272565b610256565b610201565b6101ad565b34610198575f366003190112610198576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b5f80fd5b6001600160a01b0381160361019857565b346101985760403660031901126101985760206101f96101f46024356101d28161019c565b6004355f526002845260405f209060018060a01b03165f5260205260405f2090565b610daa565b604051908152f35b3461019857604036600319011261019857602065ffffffffffff61024c60243561022a8161019c565b6004355f526001845260405f209060018060a01b03165f5260205260405f2090565b5416604051908152f35b34610198575f366003190112610198576020604051614e208152f35b34610198575f366003190112610198576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b34610198575f366003190112610198576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b34610198575f36600319011261019857602060ff5f5460a01c166040519015158152f35b9181601f84011215610198578235916001600160401b038311610198576020838186019501011161019857565b34610198576020366003190112610198576001600160401b036004358181116101985761037c90369060040161031e565b5f8051602061195c833981519152549260ff8460401c1615931680159081610480575b6001149081610476575b15908161046d575b5061045b575f8051602061195c833981519152805467ffffffffffffffff191660011790556103e4918361043257610e4c565b6103ea57005b5f8051602061195c833981519152805460ff60401b19169055604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a1005b5f8051602061195c833981519152805460ff60401b191668010000000000000000179055610e4c565b60405163f92ee8a960e01b8152600490fd5b9050155f6103b1565b303b1591506103a9565b84915061039f565b65ffffffffffff81160361019857565b6080906003190112610198576004356104b08161019c565b90602435906044356104c18161019c565b906064356104ce81610488565b90565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b346101985761052661051261050936610498565b929190916109b0565b6040519182916020835260208301906104d1565b0390f35b346101985761052661051261053e36610498565b92919091610b7b565b34610198575f366003190112610198576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b34610198575f366003190112610198576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b34610198576060366003190112610198576024356105ec8161019c565b6044356105f881610488565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316330361067457610652610657926004355f52600260205260405f209060018060a01b03165f5260205260405f2090565b61104a565b60408051941515855263ffffffff91909116602085015292915050f35b604051637ca475e560e11b8152600490fd5b34610198575f366003190112610198576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b34610198576040366003190112610198576004356106e78161019c565b6024356001600160401b038111610198575f916107098392369060040161031e565b90816040519283928337810184815203915af4610756610727610d26565b916107486040519384921515602084015260408084015260608301906104d1565b03601f1981018352826107ad565b805190602001fd5b634e487b7160e01b5f52604160045260245ffd5b604081019081106001600160401b0382111761078d57604052565b61075e565b60a081019081106001600160401b0382111761078d57604052565b90601f801991011681019081106001600160401b0382111761078d57604052565b604051906107db82610772565b565b6001600160401b03811161078d57601f01601f191660200190565b81601f820112156101985780359061080f826107dd565b9261081d60405194856107ad565b8284526020838301011161019857815f926020809301838601378301015290565b906080600319830112610198576004359160243561085b8161019c565b9160443561086881610488565b91606435906001600160401b038211610198576104ce916004016107f8565b346101985760206101f96108c061089d3661083e565b939190925f526002865260405f209060018060a01b03165f5260205260405f2090565b611178565b346101985760206108e16108d83661083e565b92919091611347565b50604051908152f35b34610198575f3660031901126101985760206040516001600160401b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b34610198575f366003190112610198576020604051620249f08152f35b34610198575f366003190112610198575f546040516001600160a01b039091168152602090f35b5190811515820361019857565b519063ffffffff8216820361019857565b9190826040910312610198576104ce60206109a984610971565b930161097e565b5f809195949593929365ffffffffffff60609760405195602097633b81402360e11b89890152602488015260018060a01b03166044870152166064850152606484526109fb84610792565b6040519384610a2887820192639f86fd8560e01b84523060248401526040604484015260648301906104d1565b0394610a3c601f19968781018352826107ad565b51915afa50610a5a610a4c610d26565b838082518301019101610fb5565b9015610aad57808380610a729351830101910161098f565b9290610a7d57505050565b6104ce92939450610aa1604051948592830191909163ffffffff6020820193169052565b039081018352826107ad565b809150519182156101985701fd5b9081602091031261019857516104ce8161019c565b6040513d5f823e3d90fd5b81601f8201121561019857805190610af2826107dd565b92610b0060405194856107ad565b8284526020838301011161019857815f9260208093018386015e8301015290565b906020828203126101985781516001600160401b038111610198576104ce9201610adb565b906104ce91602081526020610b66835160408385015260608401906104d1565b920151906040601f19828503019101526104d1565b60405163fbfa77cf60e01b815260609594919391926020926001600160a01b03929091908481600481878b165afa908115610cd757849186915f91610d09575b50600460405180948193630ce9b79360e41b8352165afa8015610cd75786948385925f948591610cdc575b506040516304bb92e160e31b81526001600160a01b039182166004820152602481019290925292909216604483015265ffffffffffff97909716606482015295869060849082907f0000000000000000000000000000000000000000000000000000000000000000165afa948515610cd7575f95610caf575b50610c6b9394956109b0565b825115801590610ca5575b610c7f57505050565b6104ce92939450610c8e6107ce565b938452818401526107486040519384928301610b46565b5080511515610c76565b610c6b949550610cd0903d805f833e610cc881836107ad565b810190610b21565b9493610c5f565b610ad0565b610cfc9150893d8b11610d02575b610cf481836107ad565b810190610abb565b5f610be6565b503d610cea565b610d209150823d8411610d0257610cf481836107ad565b5f610bbb565b3d15610d50573d90610d37826107dd565b91610d4560405193846107ad565b82523d5f602084013e565b606090565b5f9081526002602090815260408083206001600160a01b039094168352929052206104ce929190611178565b8054821015610d96575f5260205f2001905f90565b634e487b7160e01b5f52603260045260245ffd5b805480610ddf57505f5b6001600160d01b03811615610dd9576001610dcf9201610d81565b90549060031b1c90565b50505f90565b5f19908082810111610dfd57825f5260205f2001015460301c610db4565b610fe9565b919091604081840312610198578035610e1a8161019c565b9260208201356001600160401b038111610198576104ce92016107f8565b90816020910312610198576104ce90610971565b610e5891810190610e02565b506040516302910f8b60e31b81526001600160a01b0391821660048201819052919060209081816024817f000000000000000000000000000000000000000000000000000000000000000087165afa908115610cd7575f91610f88575b5015610f7657610ec361159b565b5f80546001600160a01b0319166001600160a01b038516179055600481610ee86115d1565b94604051928380926313c085b760e11b82525afa918215610cd7575f92610f59575b5050161580610f4f575b610f3d57516107db9015155f805460ff60a01b191691151560a01b60ff60a01b16919091179055565b60405163d2420f5960e01b8152600490fd5b5080511515610f14565b610f6f9250803d10610d0257610cf481836107ad565b5f80610f0a565b6040516362df054560e01b8152600490fd5b610fa89150823d8411610fae575b610fa081836107ad565b810190610e38565b5f610eb5565b503d610f96565b91909160408184031261019857610fcb81610971565b9260208201516001600160401b038111610198576104ce9201610adb565b634e487b7160e01b5f52601160045260245ffd5b5f19810191908211610dfd57565b91908203918211610dfd57565b9060018201809211610dfd57565b9060405161103381610772565b915465ffffffffffff8116835260301c6020830152565b91908254905f8291600584116110e8575b61106693508561174f565b9081156110dc576110d56110cc6110c6610dcf61109861109361108888610ffd565b895f5260205f200190565b611026565b9660016110bf60206110b08b5165ffffffffffff1690565b9a01516001600160d01b031690565b9101610d81565b93610ffd565b63ffffffff1690565b6001939291565b5f925082915081908190565b91926110f381611611565b8103908111610dfd5761106693865f5261112761111c8360205f200165ffffffffffff90541690565b65ffffffffffff1690565b65ffffffffffff8516101561113d57509161105b565b92915061114990611018565b9061105b565b90816020910312610198576104ce9061097e565b90600163ffffffff80931601918211610dfd57565b9180511561124657806020806111939351830101910161114f565b9161119e8382611881565b926111af845165ffffffffffff1690565b9065ffffffffffff808516921682811461123a57821191826111e5575b50506111dc576104ce92506117b1565b50506020015190565b9091506111f28354610ffd565b63ffffffff83161491821561120b575b50505f806111cc565b61123291925061122661122061111c92611163565b85611881565b5165ffffffffffff1690565b115f80611202565b50505050506020015190565b506104ce916117b1565b6040519061125d82610772565b60606020838281520152565b906020828203126101985781516001600160401b0392838211610198570190604082820312610198576040519261129f84610772565b825181811161019857826112b4918501610adb565b84526020830151908111610198576112cc9201610adb565b602082015290565b9081602091031261019857516104ce81610488565b65ffffffffffff9182169082160391908211610dfd57565b90816020910312610198575190565b9081526001600160a01b03909116602082015265ffffffffffff90911660408201526080606082018190526104ce929101906104d1565b92611350611250565b90805180611581575b505061136442611929565b5f549094906113899061137d906001600160a01b031681565b6001600160a01b031690565b93604051956327f843b560e11b875260209687816004818a5afa8015610cd7576113be9261111c925f92611552575b506112e9565b65ffffffffffff821690811090811561153b575b811561150a575b506114fe578560049560405196878092630ce9b79360e41b82525afa948515610cd75761142b9587915f916114e1575b50845190604051808099819463e02f693760e01b8352878b8a60048601611310565b03916001600160a01b03165afa938415610cd75761149d955f956114a0575b509261149285936114989361149296869a6114896101f483611474875f52600260205260405f2090565b9060018060a01b03165f5260205260405f2090565b95015192610d55565b9061100b565b6118e9565b91565b6114989295506114929491936114ce611492928a3d8c116114da575b6114c681836107ad565b810190611301565b9693509391945061144a565b503d6114bc565b6114f89150823d8411610d0257610cf481836107ad565b5f611409565b5050505050505f905f90565b905061153461111c61152887611474875f52600160205260405f2090565b5465ffffffffffff1690565b115f6113d9565b905061154961111c42611929565b811015906113d2565b6115739192508a3d8c1161157a575b61156b81836107ad565b8101906112d4565b905f6113b8565b503d611561565b6115949250602080918301019101611269565b5f80611359565b6115a36118fb565b6115ab6118fb565b60017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055565b60405190602082018281106001600160401b0382111761078d576040525f8252565b81156115fd570490565b634e487b7160e01b5f52601260045260245ffd5b801561174a57806116e36116dc6116d26116c86116be6116b46116aa6116a060016104ce9a5f908b60801c8061173e575b508060401c80611731575b508060201c80611724575b508060101c80611717575b508060081c8061170a575b508060041c806116fd575b508060021c806116f0575b50821c6116e9575b811c1b611699818b6115f3565b0160011c90565b611699818a6115f3565b61169981896115f3565b61169981886115f3565b61169981876115f3565b61169981866115f3565b61169981856115f3565b80926115f3565b906118e9565b810161168c565b600291509101905f611684565b600491509101905f611679565b600891509101905f61166e565b601091509101905f611663565b602091509101905f611658565b604091509101905f61164d565b9150506080905f611642565b505f90565b91905b83821061175f5750505090565b909192808316906001818518811c8301809311610dfd57855f5265ffffffffffff808460205f20015416908516105f1461179e575050925b9190611752565b909493508101809111610dfd5791611797565b908154905f82916005841161181b575b6117cc93508461174f565b806117f457505f905b6001600160d01b03821615610dd9576104ce916001610dcf9201610d81565b61180e61180361181592610ffd565b835f5260205f200190565b5460301c90565b906117d5565b919261182681611611565b8103908111610dfd576117cc93855f5265ffffffffffff808360205f20015416908516105f146118575750916117c1565b92915061186390611018565b906117c1565b6040519061187682610772565b5f6020838281520152565b906118aa6118a46118cb92611894611869565b5061189d611869565b5084610d81565b50611026565b91600165ffffffffffff845116936020828060d01b03910151169101610d81565b905490604051926118db84610772565b835260031b1c602082015290565b90808210156118f6575090565b905090565b60ff5f8051602061195c8339815191525460401c161561191757565b604051631afcd79f60e31b8152600490fd5b65ffffffffffff9081811161193c571690565b604490604051906306dfcc6560e41b8252603060048301526024820152fdfef0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a2646970667358221220a5c4c6cf32000ec7f5b68bf93648e06f278425e283bf4d4339caa0e7d8693e5f64736f6c63430008190033","sourceMap":"624:2139:89:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;;;;;-1:-1:-1;;624:2139:89;;;;;;1435:38:97;-1:-1:-1;;;;;624:2139:89;;;;;;;;;;;-1:-1:-1;;;;;624:2139:89;;;;;:::o;:::-;;;;;;-1:-1:-1;;624:2139:89;;;;;2936:47:97;:38;624:2139:89;;;;;:::i;:::-;;;-1:-1:-1;624:2139:89;2936:16:97;624:2139:89;;;-1:-1:-1;624:2139:89;;;;;;;;;;;;;;;;;2936:38:97;:47;:::i;:::-;624:2139:89;;;;;;;;;;;;-1:-1:-1;;624:2139:89;;;;;;1788:109:97;624:2139:89;;;;;:::i;:::-;;;-1:-1:-1;624:2139:89;1788:109:97;624:2139:89;;;-1:-1:-1;624:2139:89;;;;;;;;;;;;;;;;;1788:109:97;624:2139:89;;;;;;;;;;;;;;-1:-1:-1;;624:2139:89;;;;;;;1374:6:97;624:2139:89;;;;;;;;;-1:-1:-1;;624:2139:89;;;;;;1528:51:97;-1:-1:-1;;;;;624:2139:89;;;;;;;;;;;;-1:-1:-1;;624:2139:89;;;;;;322:32:74;-1:-1:-1;;;;;624:2139:89;;;;;;;;;;;;-1:-1:-1;;624:2139:89;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;624:2139:89;;;;;;;;;;;;;;;:::o;:::-;;;;;;-1:-1:-1;;624:2139:89;;;;-1:-1:-1;;;;;624:2139:89;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;624:2139:89;;;;;;;4301:16:26;624:2139:89;;4726:16:26;;:34;;;;624:2139:89;4805:1:26;4790:16;:50;;;;624:2139:89;4855:13:26;:30;;;;624:2139:89;4851:91:26;;;-1:-1:-1;;;;;;;;;;;624:2139:89;;-1:-1:-1;;624:2139:89;;;;;718:4:74;;4951:18:26;4979:67;;718:4:74;:::i;:::-;5066:101:26;;624:2139:89;5066:101:26;-1:-1:-1;;;;;;;;;;;624:2139:89;;-1:-1:-1;;;;624:2139:89;;;;;-1:-1:-1;624:2139:89;;5142:14:26;;624:2139:89;;5142:14:26;624:2139:89;4979:67:26;-1:-1:-1;;;;;;;;;;;624:2139:89;;-1:-1:-1;;;;624:2139:89;;;;;718:4:74;:::i;4851:91:26:-;624:2139:89;;-1:-1:-1;;;4908:23:26;;624:2139:89;;4908:23:26;4855:30;4872:13;;;4855:30;;;4790:50;4818:4;4810:25;:30;;-1:-1:-1;4790:50:26;;4726:34;;;-1:-1:-1;4726:34:26;;624:2139:89;;;;;;;:::o;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;:::o;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;624:2139:89;;;;;;;;-1:-1:-1;;624:2139:89;;;;:::o;:::-;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;-1:-1:-1;;624:2139:89;;;;;;778:38;-1:-1:-1;;;;;624:2139:89;;;;;;;;;;;;-1:-1:-1;;624:2139:89;;;;;;822:43;-1:-1:-1;;;;;624:2139:89;;;;;;;;;;;;-1:-1:-1;;624:2139:89;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;449:5:87;-1:-1:-1;;;;;624:2139:89;435:10:87;:19;431:71;;1400:38:89;:77;624:2139;;;-1:-1:-1;624:2139:89;1400:16;624:2139;;;-1:-1:-1;624:2139:89;;;;;;;;;;;;;;;;;1400:38;:77;:::i;:::-;624:2139;;;;;;;;;;;;;;;;;;;-1:-1:-1;;624:2139:89;431:71:87;624:2139:89;;-1:-1:-1;;;477:14:87;;624:2139:89;;477:14:87;624:2139:89;;;;;;-1:-1:-1;;624:2139:89;;;;;;727:45;-1:-1:-1;;;;;624:2139:89;;;;;;;;;;;;-1:-1:-1;;624:2139:89;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;624:2139:89;;;;-1:-1:-1;624:2139:89;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;416:25:80;;;;477:31;416:25;;:::i;:::-;624:2139:89;;;;;;;;;;477:31:80;;624:2139:89;;;;;;;;;;;:::i;:::-;477:31:80;624:2139:89;;477:31:80;;;;;;:::i;:::-;518:79;;;624:2139:89;518:79:80;;624:2139:89;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;624:2139:89;;;;;;;:::o;:::-;;:::i;:::-;;;;;;;-1:-1:-1;;;;;624:2139:89;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;624:2139:89;;;;;;;:::o;:::-;;;;;;;:::i;:::-;:::o;:::-;-1:-1:-1;;;;;624:2139:89;;;;;;-1:-1:-1;;624:2139:89;;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;624:2139:89;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;624:2139:89;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;-1:-1:-1;;;;;624:2139:89;;;;;;;;;:::i;:::-;;;;;2692:73:97;:38;624:2139:89;;;:::i;:::-;;;;;-1:-1:-1;624:2139:89;2692:16:97;624:2139:89;;;-1:-1:-1;624:2139:89;;;;;;;;;;;;;;;;;2692:38:97;:73;:::i;624:2139:89:-;;;;;3248:62:97;624:2139:89;;;:::i;:::-;3248:62:97;;;;;:::i;:::-;624:2139:89;;;;;;;;;;;;;-1:-1:-1;;624:2139:89;;;;;;;-1:-1:-1;;;;;404:28:74;624:2139:89;;;;;;;;;;-1:-1:-1;;624:2139:89;;;;;;;1271:7:97;624:2139:89;;;;;;;;;-1:-1:-1;;624:2139:89;;;;;;;;-1:-1:-1;;;;;624:2139:89;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;:::i;1490:514::-;-1:-1:-1;1490:514:89;;;;;;;;624:2139;;;;;1779:95;;;;;;;;;;;;;624:2139;;;;;;;;;;;;;;;;;1779:95;;;;;:::i;:::-;624:2139;;716:88:87;;624:2139:89;716:88:87;;;;;;;;;783:4;1779:95:89;716:88:87;;624:2139:89;;;;;;;;;;;:::i;:::-;716:88:87;624:2139:89;716:88:87;624:2139:89;;716:88:87;;;;;;;;:::i;:::-;698:107;;;;;857:45;698:107;;:::i;:::-;624:2139:89;;;;857:45:87;;;;;;:::i;:::-;916:8;;912:175;;624:2139:89;;;1705:221;624:2139;;1705:221;;;;;;:::i;:::-;1937:61;;;;1490:514;;;:::o;1937:61::-;1970:17;624:2139;;;;1970:17;624:2139;;1970:17;;;;;624:2139;;;;;;;;;;;;1970:17;;;;;;;;;:::i;912:175:87:-;624:2139:89;;;;944:22:87;;;940:36;;990:87;;624:2139:89;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;624:2139:89;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;;;;624:2139:89;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;2010:751::-;624:2139;;-1:-1:-1;;;2301:28:89;;624:2139;;2010:751;;;;;2301:28;;-1:-1:-1;;;;;624:2139:89;2010:751;;;2301:28;624:2139;2301:28;624:2139;;;;2301:28;;;;;;;;;;;;;;;2010:751;624:2139;2301:28;624:2139;;;;;;;;;2295:47;;624:2139;2295:47;;;;;;;;;;;2301:28;2295:47;;;;;2010:751;-1:-1:-1;624:2139:89;;-1:-1:-1;;;2230:162:89;;-1:-1:-1;;;;;624:2139:89;;;2301:28;2230:162;;624:2139;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2249:20;624:2139;2230:162;;;;;;;2301:28;2230:162;;;2010:751;2442:68;;;;;;:::i;:::-;624:2139;;2525:21;;;:59;;;2010:751;2521:234;;2010:751;;;:::o;2521:234::-;2607:137;624:2139;;;;;;:::i;:::-;;;;2635:95;;;624:2139;2607:137;624:2139;;2607:137;;;;;;:::i;2525:59::-;624:2139;;;2550:34;;2525:59;;2230:162;2442:68;2230:162;;;;;;;2301:28;2230:162;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;:::i;2295:47::-;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;2301:28;;;;;;;;;;;;;;:::i;:::-;;;;624:2139;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;-1:-1:-1;624:2139:89;;;;:::o;:::-;;;:::o;2505:267:97:-;-1:-1:-1;624:2139:89;;;2692:16:97;624:2139:89;;;;;;;;-1:-1:-1;;;;;624:2139:89;;;;;;;;;2692:73:97;;2505:267;;2692:73;:::i;624:2139:89:-;;;;;;;;-1:-1:-1;624:2139:89;;-1:-1:-1;624:2139:89;;;-1:-1:-1;624:2139:89;:::o;:::-;;;;;;;;;;;;10580:184:91;624:2139:89;;10303:8:61;;;:63;-1:-1:-1;10303:63:61;-1:-1:-1;;;;;624:2139:89;;10726:7:91;624:2139:89;;10736:12:91;:17;:12;;:17;:::i;:::-;624:2139:89;;;;;;10580:184:91;:::o;10726:31::-;;;-1:-1:-1;10580:184:91;:::o;10303:63:61:-;624:2139:89;;;;;;;;;;13267:109:91;-1:-1:-1;13267:109:91;;-1:-1:-1;13267:109:91;;;624:2139:89;;;10303:63:61;;624:2139:89;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;624:2139:89;;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;6491:564:97:-;6614:34;6491:564;6614:34;;;;:::i;:::-;-1:-1:-1;624:2139:89;;-1:-1:-1;;;6664:41:97;;-1:-1:-1;;;;;624:2139:89;;;6664:41:97;;;624:2139:89;;;;;6664:41:97;;;624:2139:89;;;6674:13:97;624:2139:89;;6664:41:97;;;;;;;-1:-1:-1;6664:41:97;;;6491:564;6663:42;;6659:90;;2540:111:29;;:::i;:::-;-1:-1:-1;624:2139:89;;-1:-1:-1;;;;;;624:2139:89;-1:-1:-1;;;;;624:2139:89;;;;;6664:41:97;624:2139:89;;;:::i;:::-;;;;;;;;;;;6892:23:97;;;;;;;;;-1:-1:-1;6892:23:97;;;6491:564;624:2139:89;;;6892:37:97;:64;;;6491:564;6888:112;;624:2139:89;7010:38:97;;624:2139:89;;-1:-1:-1;624:2139:89;;-1:-1:-1;;;;624:2139:89;;;;;;-1:-1:-1;;;624:2139:89;;;;;;;;6888:112:97;624:2139:89;;-1:-1:-1;;;6979:10:97;;6664:41;;6979:10;6892:64;-1:-1:-1;624:2139:89;;;;6892:64:97;;:23;;;;;;-1:-1:-1;6892:23:97;;;;;;:::i;:::-;;;;;6659:90;624:2139:89;;-1:-1:-1;;;6728:10:97;;6664:41;;6728:10;6664:41;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;624:2139:89;;;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;624:2139:89;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;624:2139:89;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;8889:1:91;624:2139:89;;;;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::o;8406:869:91:-;;;624:2139:89;;8620:15:91;8578:11;8645:18;8678:7;8684:1;8678:7;;8674:241;;8406:869;8939:60;;;;;:::i;:::-;9014:8;;;9010:62;;9252:15;9259:7;624:2139:89;9219:31:91;624:2139:89;9130:48:91;9170:7;;;:::i;:::-;9130:48;13267:109;;;;;;13089:293;;9130:48;624:2139:89;:::i;:::-;;9176:1:91;624:2139:89;9232:17:91;624:2139:89;;;;;;;;9232:17:91;;624:2139:89;-1:-1:-1;;;;;624:2139:89;;;;9219:12:91;;:31;:::i;624:2139:89:-;9259:7:91;;:::i;:::-;624:2139:89;;;;9252:15:91;9176:1;;9188:80;;8406:869::o;9010:62::-;8578:11;;-1:-1:-1;8578:11:91;;-1:-1:-1;8578:11:91;;;;9038:23::o;8674:241::-;8721:14;;;;;:::i;:::-;624:2139:89;;;;;;;8939:60:91;13267:109;;8578:11;13267:109;8753:55;8759:49;13267:109;;8578:11;13267:109;;624:2139:89;;;;;;8759:49:91;624:2139:89;;;;8753:55:91;624:2139:89;;;8753:55:91;13267:109;;;8828:10;8749:156;8674:241;;8749:156;8883:7;;;;;;:::i;:::-;8749:156;8674:241;;624:2139:89;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::o;7558:604:91:-;;624:2139:89;;7686:17:91;7682:83;;624:2139:89;7789:27:91;624:2139:89;7789:27:91;624:2139:89;;7789:27:91;;;;;;:::i;:::-;7860:14;;;;;:::i;:::-;624:2139:89;;;;;;;;;;;;;;;;7888:22:91;;;7884:77;;7975:21;-1:-1:-1;7975:84:91;;;;7558:604;7971:139;;;;8127:28;;;;:::i;7971:139::-;8082:17;;7789:27;8082:17;624:2139:89;8075:24:91;:::o;7975:84::-;624:2139:89;;;8009:16:91;624:2139:89;;8009:16:91;:::i;:::-;624:2139:89;;;8001:24:91;:57;;;;;7975:84;;;;;;;8001:57;8029:29;8038:8;;;8029:18;8038:8;8029:23;8038:8;;:::i;:::-;8029:18;;:::i;:::-;624:2139:89;;;;;8029:29:91;;8001:57;;;;7884:77;7933:17;;;;;7789:27;7933:17;624:2139:89;7926:24:91;:::o;7682:83::-;7726:28;;;;:::i;624:2139:89:-;;;;;;;:::i;:::-;;;;;;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;;;;624:2139:89;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::o;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;624:2139:89;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;3323:1122:97:-;;624:2139:89;;:::i;:::-;;;;3608:16:97;3604:109;;3323:1122;837:15:63;;819:34;837:15;819:34;:::i;:::-;-1:-1:-1;624:2139:89;;;;3778:27:97;;:13;;-1:-1:-1;;;;;624:2139:89;3778:13:97;624:2139:89;;-1:-1:-1;;;;;624:2139:89;;;3778:27:97;624:2139:89;;;;;;;3778:29:97;;;;;;;;;;;;;;;3740:67;3778:29;3759:48;3778:29;-1:-1:-1;3778:29:97;;;3323:1122;3759:48;;:::i;3740:67::-;624:2139:89;;;3740:67:97;;;:107;;;;;3323:1122;3740:197;;;;3323:1122;3723:263;;;624:2139:89;3778:29:97;624:2139:89;;;;;;;;;;4025:25:97;;;;;;;;;4010:143;4025:25;;;-1:-1:-1;4025:25:97;;;3323:1122;4113:30;;;624:2139:89;;;;;;;;;;;4010:143:97;;;;;3778:29;4010:143;;;:::i;:::-;;;-1:-1:-1;;;;;624:2139:89;4010:143:97;;;;;;;4181:257;4010:143;-1:-1:-1;4010:143:97;;;3323:1122;3996:157;;4293:102;3996:157;;4233:162;3996:157;4207:231;3996:157;;2936:28;:47;:38;:28;;;624:2139:89;;2936:16:97;624:2139:89;;;;;;;2936:28:97;624:2139:89;;;;;;;;;;;;;;;;2936:47:97;4351:43;;;4293:102;;:::i;:::-;4233:162;;:::i;:::-;4207:231;:::i;4181:257::-;3323:1122;:::o;4010:143::-;4233:162;4010:143;;;4207:231;4010:143;;;;4293:102;4010:143;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;;;;;4025:25;;;;;;;;;;;;;;:::i;:::-;;;;3723:263;3962:13;;;;;;-1:-1:-1;3962:13:97;-1:-1:-1;3962:13:97;:::o;3740:197::-;3886:41;;3867:70;3886:51;;:41;;;624:2139:89;;3886:29:97;624:2139:89;;;;;;;3886:51:97;624:2139:89;;;;;3867:70:97;-1:-1:-1;3740:197:97;;;:107;837:15:63;;3811:36:97;819:34:63;837:15;819:34;:::i;3811:36:97:-;;;;3740:107;;;3778:29;;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;3604:109;3662:40;;;;;;;;;;;;:::i;:::-;3604:109;;;;6893:76:26;;;:::i;:::-;;;:::i;:::-;1805:1:29;2355:73;1805:1;6893:76:26:o;624:2139:89:-;;;;;;;;;;-1:-1:-1;;;;;624:2139:89;;;;;;;-1:-1:-1;624:2139:89;;:::o;:::-;;;;;;;:::o;:::-;;;;;;;;;;;;8587:1642:58;8658:6;;8654:45;;9401:7;10201:10;10142:26;10093;10044;9995;9946;9897;9848;624:2139:89;10189:23:58;9401:7;8663:1;624:2139:89;;;;10826:16:58;10822:99;;8587:1642;624:2139:89;;;;10938:15:58;10934:96;;8587:1642;624:2139:89;;;;11047:15:58;11043:96;;8587:1642;624:2139:89;;;;11156:15:58;11152:96;;8587:1642;624:2139:89;;;;11265:14:58;11261:93;;8587:1642;624:2139:89;;;;11371:14:58;11367:93;;8587:1642;624:2139:89;;;;11477:14:58;11473:93;;8587:1642;624:2139:89;;;11579:64:58;;8587:1642;624:2139:89;;;9858:10:58;;;;:::i;:::-;624:2139:89;;;;;9848:26:58;9907:10;;;;:::i;9897:26::-;9956:10;;;;:::i;9946:26::-;10005:10;;;;:::i;9995:26::-;10054:10;;;;:::i;10044:26::-;10103:10;;;;:::i;10093:26::-;10152:10;;;;:::i;10142:26::-;10201:10;;;:::i;:::-;10189:23;;:::i;11579:64::-;624:2139:89;;11579:64:58;;11473:93;624:2139:89;11511:11:58;;624:2139:89;;11473:93:58;;;;11367;624:2139:89;11405:11:58;;624:2139:89;;11367:93:58;;;;11261;624:2139:89;11299:11:58;;624:2139:89;;11261:93:58;;;;11152:96;624:2139:89;11191:12:58;;624:2139:89;;11152:96:58;;;;11043;624:2139:89;11082:12:58;;624:2139:89;;11043:96:58;;;;10934;624:2139:89;10973:12:58;;624:2139:89;;10934:96:58;;;;10822:99;10862:13;;;624:2139:89;10822:99:58;;;;8654:45;8680:8;8663:1;8680:8;:::o;12497:447:91:-;;;12694:10;;;;;;12926:11;;;12497:447;:::o;12687:230::-;2900:5:58;;;;;;624:2139:89;;2910:5:58;;;624:2139:89;;;;;;;;;13267:109:91;-1:-1:-1;13267:109:91;624:2139:89;13267:109:91;;;-1:-1:-1;13267:109:91;;624:2139:89;;;;;-1:-1:-1;12771:136:91;624:2139:89;;;12830:10:91;;12771:136;;12687:230;;;;12771:136;624:2139:89;;;;;;;;;;;12771:136:91;;;6999:207;;624:2139:89;;9594:15:61;-1:-1:-1;9619:18:61;9652:7;9658:1;9652:7;;9648:234;;6999:207:91;9906:53:61;;;;;:::i;:::-;9977:8;;;:63;-1:-1:-1;9977:63:61;;-1:-1:-1;;;;;624:2139:89;;7168:7:91;624:2139:89;;;7178:12:91;;:17;:12;;:17;:::i;9977:63:61:-;9992:41;10025:7;9992:48;10025:7;;:::i;:::-;9992:41;13267:109:91;;;;;;13089:293;;9992:41:61;624:2139:89;;;;;9992:48:61;9977:63;;;9648:234;9695:14;;;;;:::i;:::-;624:2139:89;;;;;;;9906:53:61;13267:109:91;;-1:-1:-1;13267:109:91;624:2139:89;13267:109:91;;;-1:-1:-1;13267:109:91;;624:2139:89;;;;;9727:48:61;9723:149;624:2139:89;;;9795:10:61;9723:149;9648:234;;9723:149;9850:7;;;;;;:::i;:::-;9723:149;9648:234;;624:2139:89;;;;;;;:::i;:::-;-1:-1:-1;624:2139:89;;;;;;;:::o;11486:272:91:-;;624:2139:89;11308:22:61;11718:31:91;11486:272;624:2139:89;;:::i;:::-;;;;:::i;:::-;;11308:22:61;;:::i;:::-;624:2139:89;;:::i;:::-;;11718:12:91;624:2139:89;;;;;11731:17:91;624:2139:89;;;;;11731:17:91;;624:2139:89;;11718:12:91;;:31;:::i;:::-;624:2139:89;;;;;;;;;:::i;:::-;;;;;;11731:17:91;11672:79;;624:2139:89;11486:272:91;:::o;2557:104:58:-;;2641:5;;;;;;:13;2557:104;:::o;2641:13::-;;;2557:104;:::o;7084:141:26:-;624:2139:89;-1:-1:-1;;;;;;;;;;;624:2139:89;;;;7150:18:26;7146:73;;7084:141::o;7146:73::-;624:2139:89;;-1:-1:-1;;;7191:17:26;;;;;14291:213:59;624:2139:89;14369:24:59;;;;14365:103;;624:2139:89;14291:213:59;:::o;14365:103::-;624:2139:89;;;;14416:41:59;;;;;;14447:2;14416:41;;;624:2139:89;;;;;14416:41:59","linkReferences":{},"immutableReferences":{"64520":[{"start":715,"length":32}],"64523":[{"start":2313,"length":32}],"69080":[{"start":1530,"length":32}],"69423":[{"start":1691,"length":32},{"start":3119,"length":32}],"69425":[{"start":1372,"length":32}],"69427":[{"start":1440,"length":32}],"72304":[{"start":361,"length":32},{"start":3716,"length":32}],"72307":[{"start":647,"length":32}]}},"methodIdentifiers":{"BASE_DELEGATOR_HINTS()":"79d89614","BURNER_GAS_LIMIT()":"d5c24e1a","BURNER_RESERVE()":"2964f8dc","FACTORY()":"2dd31000","NETWORK_MIDDLEWARE_SERVICE()":"2c9d45b3","SLASHER_HINTS()":"4eb5a242","TYPE()":"bb24fe8a","VAULT_FACTORY()":"103f2907","VETO_SLASHER_HINTS()":"6565b7db","cumulativeSlash(bytes32,address)":"1a2be2c4","cumulativeSlashAt(bytes32,address,uint48,bytes)":"aa8e6489","cumulativeSlashHint(address,bytes32,address,uint48)":"4a719655","cumulativeSlashHintInternal(bytes32,address,uint48)":"77028046","initialize(bytes)":"439fab91","isBurnerHook()":"34d098ea","latestSlashedCaptureTimestamp(bytes32,address)":"267de1f3","slashableStake(bytes32,address,uint48,bytes)":"aab3595f","slashableStakeHints(address,bytes32,address,uint48)":"4ea2e926","staticDelegateCall(address,bytes)":"9f86fd85","vault()":"fbfa77cf"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"baseDelegatorHints\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"ExternalCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientBurnerGas\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NoBurner\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotNetworkMiddleware\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotVault\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ReentrancyGuardReentrantCall\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"bits\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"SafeCastOverflowedUintDowncast\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"BASE_DELEGATOR_HINTS\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"BURNER_GAS_LIMIT\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"BURNER_RESERVE\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"FACTORY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"NETWORK_MIDDLEWARE_SERVICE\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"SLASHER_HINTS\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"TYPE\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"VAULT_FACTORY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"VETO_SLASHER_HINTS\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"cumulativeSlash\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hint\",\"type\":\"bytes\"}],\"name\":\"cumulativeSlashAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"slasher\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"}],\"name\":\"cumulativeSlashHint\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"}],\"name\":\"cumulativeSlashHintInternal\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"exists\",\"type\":\"bool\"},{\"internalType\":\"uint32\",\"name\":\"hint\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isBurnerHook\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"latestSlashedCaptureTimestamp\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"value\",\"type\":\"uint48\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"captureTimestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hints\",\"type\":\"bytes\"}],\"name\":\"slashableStake\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"slasher\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"captureTimestamp\",\"type\":\"uint48\"}],\"name\":\"slashableStakeHints\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"staticDelegateCall\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"vault\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"ReentrancyGuardReentrantCall()\":[{\"details\":\"Unauthorized reentrant call.\"}],\"SafeCastOverflowedUintDowncast(uint8,uint256)\":[{\"details\":\"Value doesn't fit in an uint of `bits` size.\"}]},\"events\":{\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"}},\"kind\":\"dev\",\"methods\":{\"cumulativeSlash(bytes32,address)\":{\"params\":{\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"},\"returns\":{\"_0\":\"cumulative slash amount\"}},\"cumulativeSlashAt(bytes32,address,uint48,bytes)\":{\"params\":{\"hint\":\"hint for the checkpoint index\",\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\",\"timestamp\":\"time point to get the cumulative slash amount until (inclusively)\"},\"returns\":{\"_0\":\"cumulative slash amount until the given timestamp (inclusively)\"}},\"initialize(bytes)\":{\"params\":{\"data\":\"some data to use\"}},\"slashableStake(bytes32,address,uint48,bytes)\":{\"params\":{\"captureTimestamp\":\"time point to get the stake amount at\",\"hints\":\"hints for the checkpoints' indexes\",\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"},\"returns\":{\"amount\":\"slashable amount of the stake\"}},\"staticDelegateCall(address,bytes)\":{\"details\":\"It allows to use this contract's storage on-chain.\",\"params\":{\"data\":\"data to make a delegatecall with\",\"target\":\"address of the contract to make a delegatecall to\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"BURNER_GAS_LIMIT()\":{\"notice\":\"Get a gas limit for the burner.\"},\"BURNER_RESERVE()\":{\"notice\":\"Get a reserve gas between the gas limit check and the burner's execution.\"},\"FACTORY()\":{\"notice\":\"Get the factory's address.\"},\"NETWORK_MIDDLEWARE_SERVICE()\":{\"notice\":\"Get the network middleware service's address.\"},\"TYPE()\":{\"notice\":\"Get the entity's type.\"},\"VAULT_FACTORY()\":{\"notice\":\"Get the vault factory's address.\"},\"cumulativeSlash(bytes32,address)\":{\"notice\":\"Get a cumulative slash amount for an operator on a subnetwork.\"},\"cumulativeSlashAt(bytes32,address,uint48,bytes)\":{\"notice\":\"Get a cumulative slash amount for an operator on a subnetwork until a given timestamp (inclusively) using a hint.\"},\"initialize(bytes)\":{\"notice\":\"Initialize this entity contract by using a given data.\"},\"isBurnerHook()\":{\"notice\":\"Get if the burner is needed to be called on a slashing.\"},\"latestSlashedCaptureTimestamp(bytes32,address)\":{\"notice\":\"Get the latest capture timestamp that was slashed on a subnetwork.\"},\"slashableStake(bytes32,address,uint48,bytes)\":{\"notice\":\"Get a slashable amount of a stake got at a given capture timestamp using hints.\"},\"staticDelegateCall(address,bytes)\":{\"notice\":\"Make a delegatecall from this contract to a given target contract with a particular data (always reverts with a return data).\"},\"vault()\":{\"notice\":\"Get the vault's address.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/contracts/hints/SlasherHints.sol\":\"BaseSlasherHints\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol\":{\"keccak256\":\"0x6662ec4e5cefca03eeadd073e9469df8d2944bb2ee8ec8f7622c2c46aab5f225\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4d8544c6f8daa4d1bc215c6a72fe0acdb748664a105b0e5efc19295667521d45\",\"dweb:/ipfs/QmdGWqdnXT8S3RgCR6aV8XHZrsybieMQLLnug1NtpSjEXN\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0xc163fcf9bb10138631a9ba5564df1fa25db9adff73bd9ee868a8ae1858fe093a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9706d43a0124053d9880f6e31a59f31bc0a6a3dc1acd66ce0a16e1111658c5f6\",\"dweb:/ipfs/QmUFmfowzkRwGtDu36cXV9SPTBHJ3n7dG9xQiK5B28jTf2\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609\",\"dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9\",\"dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardUpgradeable.sol\":{\"keccak256\":\"0xb44e086e941292cdc7f440de51478493894ef0b1aeccb0c4047445919f667f74\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://942dad22fbdc1669f025540ba63aa3ccfad5f8458fc5d4525b31ebf272e7af45\",\"dweb:/ipfs/Qmdo4X2M82aM3AMoW2kf2jhYkSCyC4T1pHNd6obdsDFnAB\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol\":{\"keccak256\":\"0xdaba3f7c42c55b2896353f32bd27d4d5f8bae741b3b05d4c53f67abc4dc47ce8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1fa2e61141c602510bcd2cd936ed9561922ac8772a9b9c9a9db091a74e354a45\",\"dweb:/ipfs/QmcHQDDoEBwJmwUbzoVkytvJsBx3KVHYFFnDkvRGWh9Wmh\"]},\"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0xb6b36edd6a2999fd243ff226d6cbf84bd71af2432bbd0dfe19392996a1d9cb41\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1fd2f35495652e57e3f99bc6c510bc5f7dd398a176ea2e72d8ed730aebc6ca26\",\"dweb:/ipfs/QmTQV6X4gkikTib49cho5iDX3JvSQbdsoEChoDwrk3CbbH\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC1271.sol\":{\"keccak256\":\"0x85a45f3f10014a0f8be41157a32b6a5f905753ea64a4b64e29fc12b7deeecf39\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c3c74009ce36136b36c77c23935b8e4a7b4f253be2da2be4fb4a916b1ce43743\",\"dweb:/ipfs/QmcH36v3iN7SJJuF73AunLR2LtNxhVJ1wm63ph4dPZ4pcL\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC5267.sol\":{\"keccak256\":\"0x92aa1df62dc3d33f1656d63bede0923e0df0b706ad4137c8b10b0a8fe549fd92\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c5c0f29195ad64cbe556da8e257dac8f05f78c53f90323c0d2accf8e6922d33a\",\"dweb:/ipfs/QmQ61TED8uaCZwcbh8KkgRSsCav7x7HbcGHwHts3U4DmUP\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c\",\"dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0x6008dabfe393240d73d7dd7688033f72740d570aa422254d29a7dce8568f3aff\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f5196ec75139918c6c7bb4251b36395e668f1fa6d206beba7e7520e74913940d\",\"dweb:/ipfs/QmSyqjksXxmm2mCG6qRd1yuwLykypkSVBbnBnGqJRcuJMi\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x37bb49513c49c87c4642a891b13b63571bc87013dde806617aa1efb54605f386\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b3036b3a83b7c48f96641f2a9002b9f2dcb6a5958dd670894ada21ae8229b3d0\",\"dweb:/ipfs/QmUNfSBdoVtjhETaUJCYcaC7pTMgbhht926tJ2uXJbiVd3\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0xaf28a975a78550e45f65e559a3ad6a5ad43b9b8a37366999abd1b7084eb70721\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b7bd24e224f67f65bfadf85dc2929fa965456bb2415478bd0125471b5ce35245\",\"dweb:/ipfs/QmRaydGr8BTHs1kvaZfsNU69pKzUAGFrvABn1KiRSbE51y\"]},\"lib/openzeppelin-contracts/contracts/utils/ShortStrings.sol\":{\"keccak256\":\"0x18a7171df639a934592915a520ecb97c5bbc9675a1105607aac8a94e72bf62c6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7478e1f13da69a2867ccd883001d836b75620362e743f196376d63ed0c422a1c\",\"dweb:/ipfs/QmWywcQ9TNfwtoqAxbn25d8C5VrV12PrPS9UjtGe6pL2BA\"]},\"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0x32ba59b4b7299237c8ba56319110989d7978a039faf754793064e967e5894418\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1ae50c8b562427df610cc4540c9bf104acca7ef8e2dcae567ae7e52272281e9c\",\"dweb:/ipfs/QmTHiadFCSJUPpRjNegc5SahmeU8bAoY8i9Aq6tVscbcKR\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0x55f102ea785d8399c0e58d1108e2d289506dde18abc6db1b7f68c1f9f9bc5792\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e52e0a7765c943ef14e5bcf11e46e6139fa044be564881378349236bf2e3453\",\"dweb:/ipfs/QmZEeeXoFPW47amyP35gfzomF9DixqqTEPwzBakv6cZw6i\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0xeed0a08b0b091f528356cbc7245891a4c748682d4f6a18055e8e6ca77d12a6cf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba80ba06c8e6be852847e4c5f4492cef801feb6558ae09ed705ff2e04ea8b13c\",\"dweb:/ipfs/QmXRJDv3xHLVQCVXg1ZvR35QS9sij5y9NDWYzMfUfAdTHF\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/EIP712.sol\":{\"keccak256\":\"0x999f705a027ed6dc2d4e0df2cc4a509852c6bfd11de1c8161bf88832d0503fd0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0798def67258d9a3cc20b2b4da7ebf351a5cefe0abfdd665d2d81f8e32f89b21\",\"dweb:/ipfs/QmPEvJosnPfzHNjKvCv2D3891mA2Ww8eUwkqrxBjuYdHCt\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol\":{\"keccak256\":\"0xba333517a3add42cd35fe877656fc3dfcc9de53baa4f3aabbd6d12a92e4ea435\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2ceacff44c0fdc81e48e0e0b1db87a2076d3c1fb497341de077bf1da9f6b406c\",\"dweb:/ipfs/QmRUo1muMRAewxrKQ7TkXUtknyRoR57AyEkoPpiuZQ8FzX\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/SignatureChecker.sol\":{\"keccak256\":\"0x6b11eb41a228cca35d4b662b4df69fcd75192851365102690f57b2ac01e83fe6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ab006a2983ed350d2af21ddcdd835dcae3b8340086cc4d088460da5abd041f69\",\"dweb:/ipfs/QmbEacDhkJZiGrgzLjB4pNtE8Z1uudjDw1DvcDUTVQFsLG\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875\",\"dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0xe19a4d5f31d2861e7344e8e535e2feafb913d806d3e2b5fe7782741a2a7094fe\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4aed79c0fa6f0546ed02f2f683e8f77f0fd2ed7eb34d8bbf3d373c9a6d95b13c\",\"dweb:/ipfs/QmWqVz6UAVqmnWU5pqYPt1o6iDEZyPaBraAA3rKfTTSfYj\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x5f7e4076e175393767754387c962926577f1660dd9b810187b9002407656be72\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7d533a1c97cd43a57cd9c465f7ee8dd0e39ae93a8fb8ff8e5303a356b081cdcc\",\"dweb:/ipfs/QmVBEei6aTnvYNZp2CHYVNKyZS4q1KkjANfY39WVXZXVoT\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/Checkpoints.sol\":{\"keccak256\":\"0xbdc5e074d7dd6678f67e92b1a51a20226801a407b0e1af3da367c5d1ff4519ad\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a36cca6b22fff3db16fc789ff6c60eea71d4b156065d4d0c83a0bc5e91a77a8b\",\"dweb:/ipfs/QmYN3exd5AemxjBrN8XMB1p5LbbE16uC3sjbYjwi8AjcGR\"]},\"lib/openzeppelin-contracts/contracts/utils/types/Time.sol\":{\"keccak256\":\"0xc7755af115020049e4140f224f9ee88d7e1799ffb0646f37bf0df24bf6213f58\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7f09bf94d5274334ec021f61a04659db303f31e60460e14b709c9bf187740111\",\"dweb:/ipfs/QmNvgomZYUwFAt4cZbPWAiTeSZQreGehY9BK5xyVJsUttb\"]},\"src/contracts/common/Entity.sol\":{\"keccak256\":\"0x3d61a932995b8443381f3950542d388223a2c26dd5d29a3274dea3baa7388bd7\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://7cdf5f03ca72fd263fd32ff59c8d88ddca911ae83896a287d10772c1bbe9b138\",\"dweb:/ipfs/QmbP84r5BWT1Rn9AYTntWSf3xUMTTCohTZJFhbBhDXFoHa\"]},\"src/contracts/common/MigratableEntity.sol\":{\"keccak256\":\"0x2d736f4dacd5d7e7697503bc426c78b8250fe1694ca157965ec178da6807de58\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://f1237acf96b4b9f9b69156e068eddd726a6e15bd8e87a18dc999cd4ba4da069c\",\"dweb:/ipfs/QmS6M8fiFFSeuJ4ZKKq1z8W7w4ybeHQSy5TLASGoc1LVic\"]},\"src/contracts/common/StaticDelegateCallable.sol\":{\"keccak256\":\"0x350029aa8955eacaffffaeb58babc5c98e80ebc5c5db388ed17ee6465f4a9d90\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://eb392a8ee9050e0af606897df63e3404e3829e8b688b580663892f9664195764\",\"dweb:/ipfs/QmaXC8jqV8UrrAFkzXTEv2fJF56sy33HhLxAzaRZmUxuXD\"]},\"src/contracts/delegator/BaseDelegator.sol\":{\"keccak256\":\"0x7c54d491fdd4415b764a9c8defa068e56d4c0c8c9419be0053a1d377669290e8\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://9238bfbad0f6eeb0dc7727724de14380f1980b395902269703d5e2ef07e52e10\",\"dweb:/ipfs/QmPJn1V4HNXcEghYvogGuSTF24dSQUPosR5qtsXcmNqRm3\"]},\"src/contracts/delegator/FullRestakeDelegator.sol\":{\"keccak256\":\"0x0a81c4f8e72914563a9cb771e93acf889c71ea36b7bec040e4eb562b199d5af1\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://6fc66b6ba02da77046a0bbbd1dd407a62c08f52e04486c9cbd2cb1cca3da555f\",\"dweb:/ipfs/QmZQivK1ZnMxfRQQ5aLpV9co5u55wQVNev5Rg1hzAqxhkE\"]},\"src/contracts/delegator/NetworkRestakeDelegator.sol\":{\"keccak256\":\"0xd3a8e6522f9c6fdcc2da837c9023afd6bdff2bce45a35590320c475519e3636d\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://58b17a87f6554f08376f9ea7fedf486a4aa75801bf0ad8b23ff5a46959b6b7a3\",\"dweb:/ipfs/QmSTmNh67tYt8CmjVZb57r8N3qX5yeYdMApKPJm3qvQgQw\"]},\"src/contracts/delegator/OperatorNetworkSpecificDelegator.sol\":{\"keccak256\":\"0x031a10722b9ec49048f0952710401131290adb87e71caf294e864e7ac3b98a16\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://72428febc875134b2f29205e6f294634a1c22a7d5c78d6a9cb2f8196f107c9b5\",\"dweb:/ipfs/QmTPwXR6h5oytckmkLrHdKeEMdphJxceDhYUR4zvQeWAwY\"]},\"src/contracts/delegator/OperatorSpecificDelegator.sol\":{\"keccak256\":\"0x630ce62fa30b9f3349ab7a8cf8dbf041319febc6dd757be2f94d3d25944ed328\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://c2ac59d47ce57d2a6819ae9833e1a618a371eccff93eb5ab367b201b01f42bfa\",\"dweb:/ipfs/QmdBpGMBivpNPv2WbH8vnCUy5xkVeaxQvGgqi33vKCz1kA\"]},\"src/contracts/hints/DelegatorHints.sol\":{\"keccak256\":\"0x44aa0c396311a54afbc7c73e8dadeed41e3165a4fd13f712b27d63d50fc3376d\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://2f255214f3531fc707d88be0d56a7a0aed4180439316d099d760d9118aa83093\",\"dweb:/ipfs/QmZD1w5p1ukJSXumUAjvxwGmkPhn7vsr21Y2atLGEZR2oi\"]},\"src/contracts/hints/Hints.sol\":{\"keccak256\":\"0x8b565df1ae35993c097a9e642002782a8f451f6fd01809cad6bcd345bdf1b99c\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://99a19adb01e350a92f534095b3078229df1f2f83077992d75d58d8684be45971\",\"dweb:/ipfs/QmbmwcuswVbzvwHQFTtrJG86oV98GnfxqYTb8cV8u1acox\"]},\"src/contracts/hints/OptInServiceHints.sol\":{\"keccak256\":\"0x95d9407900d27b9f4a1233b772aeed809c07b2dc5b31cfc9fa77ca26514c49e5\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://a13a8877e312d7e6b8b85bde3668c5d84ff5ecc83f762cd573f2b7104c64eb42\",\"dweb:/ipfs/QmYV2J55acuGzCNnS3juABuUHY5U1xc8g8o9jwEyFFdeG5\"]},\"src/contracts/hints/SlasherHints.sol\":{\"keccak256\":\"0xd77c5f3bbb0265af8ecd947df88f6f9684e136d80052b5292f5b29aaa3566a3f\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://484a26504bf6706202ec82a9a4cfa7d196bbc552b5b78ced25bf7130c2842595\",\"dweb:/ipfs/QmaQqmkoZoUWEam4R94vmajzH3gKqFqpZQwFbrHDsN1peV\"]},\"src/contracts/hints/VaultHints.sol\":{\"keccak256\":\"0xccb505b7159b769cc114d67b87c2de6b106557f667fc8f3780114baad5c3c442\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://6d0c80a908fc16e96a8b5605a0bd53f9e89ad0ef0a738fbbae80ba4d3160749b\",\"dweb:/ipfs/QmXo5UtWoR8YmunqcbBU8rQMm1nvmvjNPoXcVrDhh4pEwR\"]},\"src/contracts/libraries/Checkpoints.sol\":{\"keccak256\":\"0xba90097c8bfe0a975499428b5f8ac5569483c7d92ccc28c12d70de416aae040c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://12f5d93ca94cd06d3147db68993165a58e17903ed53682560de61f3085ad4609\",\"dweb:/ipfs/QmePiuAqvXprMLmFZkGZeGjvGPAvsEDHfCDv7BoQhXu9xE\"]},\"src/contracts/libraries/ERC4626Math.sol\":{\"keccak256\":\"0x8441160513c1cbeb1c3b9ee077bcc7e7ce20006b52a77c8dd39ff0ef89699939\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://943f8cc3e26ddf649f465f40c909819f5c864717c4baa339e9e403b9374a4653\",\"dweb:/ipfs/QmXPxi1sUDsrGprZdUgCzoPEosaZMv9ZhygWQ1vAi1phAB\"]},\"src/contracts/libraries/Subnetwork.sol\":{\"keccak256\":\"0xf5ef5506fd66082b3c2e7f3df37529f5a8efad32ac62e7c8914bd63219190bfe\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba031a54ee0d0e9a270c2b9e18437f5668cfeb659cfd5fe0677459d7fcac2a56\",\"dweb:/ipfs/QmReP3H7qQ78tAfgLnJKsNEQNCQfF1X1Get38Ffd4kzq32\"]},\"src/contracts/service/OptInService.sol\":{\"keccak256\":\"0x4e0932077f2686b7990e10d59deb2535334c0d09e52ef6e57c6ab09eca21c4b1\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://7c00d311032ed4a1743aca7475f3c86ce15cdfc2218108efc3731c03d34a5278\",\"dweb:/ipfs/QmUGGfVwVhaHr5kS4177yKKYiLYzi5qZpkEmvYxBZqazxf\"]},\"src/contracts/slasher/BaseSlasher.sol\":{\"keccak256\":\"0x190e5dce196a061bdad42468c52e9f5b0eb7810cd7d0c19f04d6a2e94984f1b6\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://07ca08d0cd43c2fe5d54a5577f6bdd522ced410f5d3a52e764deaa7ba26b5f06\",\"dweb:/ipfs/QmZe3PiMKBQKWcwodaLupragdqxPjgS4v1qMC7RXau8hDF\"]},\"src/contracts/slasher/Slasher.sol\":{\"keccak256\":\"0xeee0cb25fad58d496fdcc641d852d11bae06e6ceed5230ae21150964175c494f\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://34aa27d21246a1bcee0b6a2afa8d9d613441156362430392f75d176511d58c61\",\"dweb:/ipfs/Qmf53Y3zdGfH4PU2zpSGeHZ8mMLzLXCtmkQrG5mnVJECQ3\"]},\"src/contracts/slasher/VetoSlasher.sol\":{\"keccak256\":\"0xeccc8128de5e1ad499c067feac1c526638fbbac1a18b96726fc7507969fd5897\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://cdfcf281338423625acbccdf8810115b258ef7cfe4aa3c10b8911ead1aa85429\",\"dweb:/ipfs/QmZFsDvZXpkFkx4PHcDXAVPN3ZCAahbSVfYpSVrMBvbt4k\"]},\"src/contracts/vault/Vault.sol\":{\"keccak256\":\"0x2ceff6ed3298c4cad144c99fcc79b51cb9397d6ebef00285b915848b476f8c2e\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://11f2fb3581854f3ab6e82e8d4935d9eb510c903a13c3f022346c2956a58f5307\",\"dweb:/ipfs/QmdUnoXoyYoG9SGWyQZCFyLDRUUX3eXyXetkRvw6jxqqBz\"]},\"src/contracts/vault/VaultStorage.sol\":{\"keccak256\":\"0x57db25b127d77ea3472de53e3a4af3354399655b9268638b99ca5925fa364a56\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://aa763d9a6ec508ae3abfb8228b72b9fd9525279e5135d4962e79ff059feb1173\",\"dweb:/ipfs/QmcbDR6E9wyEpu6V2FkEC4hnWy47zXA9LSKJde6zSGd33Q\"]},\"src/interfaces/common/IEntity.sol\":{\"keccak256\":\"0x8ef4b63d6da63489778ccd5f8d13ebdd527dd4b62730b2c616df5af7474d2d21\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a8d69576a9219d85c50816a18ad53a4d53cfcb27ed38b8cccc808dc2734b71b\",\"dweb:/ipfs/QmYVN3P4Q4REvBWJ97TbAcaxm3uyB2anV6NSGa6ZtSwcEv\"]},\"src/interfaces/common/IMigratableEntity.sol\":{\"keccak256\":\"0x8f5f2809f3afbe8ebfbb365dd7b57b4dd3b6f9943a6187eaf648d45895b8e3c4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ffe640537d539e7a4fde70d30d3e4c57f4ba9c2c25c450cea713aae38e8fd5c\",\"dweb:/ipfs/QmSUTGzvdcn1R1KB7tLThMRtESsfPbeXDhhhKWGtntzBds\"]},\"src/interfaces/common/IRegistry.sol\":{\"keccak256\":\"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014\",\"dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK\"]},\"src/interfaces/common/IStaticDelegateCallable.sol\":{\"keccak256\":\"0xa335d4e81b9071b7de66ef92b43ff20671d86516eb1be46fef29a3483cd3f5d5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d464b9db863c14c05547d2b23352f2e9b7b784799cf09f6bbc4906a2a74e3516\",\"dweb:/ipfs/QmUVWzFvJz7eEbDQKiFTTzwi7TEbjcs3VmwdM4kuptAKvi\"]},\"src/interfaces/delegator/IBaseDelegator.sol\":{\"keccak256\":\"0x96bb312f032e17accce3f8f80936d99468029d6b37c9ca74acdb4b026a0148ee\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2a66dcb5b7d1a6ef6a363431ea98ebd78bc4fdd3d7a134d9b542dc66e7d025c2\",\"dweb:/ipfs/QmRhTPLd2ZAyRHmJUFUcWKs9b3if49QY17LYZuRqWmghw8\"]},\"src/interfaces/delegator/IDelegatorHook.sol\":{\"keccak256\":\"0xc51aa8d7d1f6c8043ee819b7aeb86da0e993912e1442098df897e299f01f9f46\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://adddf5cb2ba282aeb576b26efb28640f865a1721cc9b6eee8b3ee0457a2c9780\",\"dweb:/ipfs/QmNYgAmnLRwWZbhTuQhZs9rx4zcme1df5mEepkrniorSoW\"]},\"src/interfaces/delegator/IFullRestakeDelegator.sol\":{\"keccak256\":\"0xa3c8cb2e45d4d8ce90e95263bea40c01dc400f05ad65bc29597d878606be5e7d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://782cf5e201aa4cca037ebafd3807a68ff1cc721d5b8416a35244db0d0607369e\",\"dweb:/ipfs/QmQkJks6x7CKndeTPa9LxgTNygD5uEi7obhADhpq1Lsr9A\"]},\"src/interfaces/delegator/INetworkRestakeDelegator.sol\":{\"keccak256\":\"0xe7030fe30389a147fd710e3436ec346b4842695fd3e65a81b95375c9f1d633fc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://739c7e66d301778054f5c90bee45ec9438f68afba8a03eaaac52064c73b115ad\",\"dweb:/ipfs/QmfZ2ytKcTykAc76nxhg8ikUXV8NdBpetqb8W4YWPcox1Z\"]},\"src/interfaces/delegator/IOperatorNetworkSpecificDelegator.sol\":{\"keccak256\":\"0x74b95e64d29769202d45dd277bb830f623ff3d41ce77b80ce3ee4e318a5c71ec\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e512b903aae5c1b8a028c6e3f4f6223b5cb5d704503cfa6bd37b5346868f5c20\",\"dweb:/ipfs/QmZim9YExsPWtyxyeui993HTKAEmrg8MUcSkZ77Gp2JcuZ\"]},\"src/interfaces/delegator/IOperatorSpecificDelegator.sol\":{\"keccak256\":\"0x72075cab585dc17240cc3e32bc99b92f0d5627ddd988fed680e3e1a52d5a01e4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7448bc90699409ae61d85216b5efc2143a37f0f73354be2aea993bc54afca441\",\"dweb:/ipfs/QmXE4gAxM8pHosZK8mcTcj17puBx484meDCcmrDePskGHZ\"]},\"src/interfaces/service/INetworkMiddlewareService.sol\":{\"keccak256\":\"0x347afc7fcf1fbcdb96d66162070ef6c78aed27b3af2c1d5dfb4e511840631783\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2d90b8ceb495159e8e4e95d76447719dd166443f67dfabdd942846162071595c\",\"dweb:/ipfs/QmVVuiAWYx92T6vBvNMKZfTvraCf1fa16BsUKkdNs3hdHA\"]},\"src/interfaces/service/IOptInService.sol\":{\"keccak256\":\"0x76fb5460a6d87a5705433d4fbeff7253cd75b8bbd0c888b2088f16e86ace146a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://990322019b3d11465f7024bae77ccbf7e2fe5d6fa3c754584778f37d04fa1337\",\"dweb:/ipfs/QmaSNHzcqxTkUCG9a4nqVfLECHLdjdrwAnDi3yDC7tDL24\"]},\"src/interfaces/slasher/IBaseSlasher.sol\":{\"keccak256\":\"0x7c82528b445659c313ab77335c407b0b6efe5e79027187bb287f7bc74202b404\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0274c90aa5df1aa6bb470a6aab53992fb14fd7e5472c9430416505b29647d9cf\",\"dweb:/ipfs/QmckbmJLDetPemVzCnnGcKYWAZV2BRFXGDsjiaec8jkHxx\"]},\"src/interfaces/slasher/IBurner.sol\":{\"keccak256\":\"0xaf495dacc19ae0b3c787ba8021c5944927d70261536addd234d7dab146158c2b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9b3cc66251008be6ff9fc8b11ecc6831d5a9dca49a3fe9817fcd970253c1d447\",\"dweb:/ipfs/QmVxfb9ALGdF9W3SN2h41gQbUct6tawvu5bw4K89kFQ4HW\"]},\"src/interfaces/slasher/ISlasher.sol\":{\"keccak256\":\"0x34d226d67a3d5e16571f2fac91a8b9773551bcc41c88a96279669dd78d192625\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a6e8c1462ee4a1b0f745414be043c09012ea676613790aba004b06c85c980d1\",\"dweb:/ipfs/QmadjNEbHKRthtA1EeNy3Kg2sXpejH2KBeHm8QZtBPvXbJ\"]},\"src/interfaces/slasher/IVetoSlasher.sol\":{\"keccak256\":\"0xdf7edd04a4f36e9aec3a15241dcb6b6315b2e64927b12710c2c410d571fc55e9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c4be6ac339c2ebf230fed65363f036784224095d0cd0f3f2d01d64d6e0da9508\",\"dweb:/ipfs/QmRSMbpfaHExqrzUA8vYZMYZWh6eQW1KX9JKJSLdgronfg\"]},\"src/interfaces/vault/IVault.sol\":{\"keccak256\":\"0xffee01d383cd4e1a5530c614bf4360c1ef070c288abec9da1eb531b51bc07235\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://04f0046cac285d8ec44ebbb1f79dc94fab4495767190cad8364fbc1fafaadfb9\",\"dweb:/ipfs/QmUawAunwzXfCyShWfhKeThAgKtqe51hmrxvrXvM772M2R\"]},\"src/interfaces/vault/IVaultStorage.sol\":{\"keccak256\":\"0x592626f13754194f83047135de19229c49390bd59e34659b1bb38be71d973a22\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://06a6a9dfddd05e580b32bebe2cff4f63ba26a653180676d58225dd30d9c89d3e\",\"dweb:/ipfs/QmdgzBeY6Sxo8mGtyBxtv1tM1c2kU6J6zjeRd7vuXm4DU6\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.25+commit.b61c2a91"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"baseDelegatorHints","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"ExternalCall"},{"inputs":[],"type":"error","name":"InsufficientBurnerGas"},{"inputs":[],"type":"error","name":"InvalidInitialization"},{"inputs":[],"type":"error","name":"NoBurner"},{"inputs":[],"type":"error","name":"NotInitialized"},{"inputs":[],"type":"error","name":"NotInitializing"},{"inputs":[],"type":"error","name":"NotNetworkMiddleware"},{"inputs":[],"type":"error","name":"NotVault"},{"inputs":[],"type":"error","name":"ReentrancyGuardReentrantCall"},{"inputs":[{"internalType":"uint8","name":"bits","type":"uint8"},{"internalType":"uint256","name":"value","type":"uint256"}],"type":"error","name":"SafeCastOverflowedUintDowncast"},{"inputs":[{"internalType":"uint64","name":"version","type":"uint64","indexed":false}],"type":"event","name":"Initialized","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"BASE_DELEGATOR_HINTS","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"BURNER_GAS_LIMIT","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"BURNER_RESERVE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"FACTORY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"NETWORK_MIDDLEWARE_SERVICE","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"SLASHER_HINTS","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"TYPE","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"VAULT_FACTORY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"VETO_SLASHER_HINTS","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"cumulativeSlash","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint48","name":"timestamp","type":"uint48"},{"internalType":"bytes","name":"hint","type":"bytes"}],"stateMutability":"view","type":"function","name":"cumulativeSlashAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"slasher","type":"address"},{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint48","name":"timestamp","type":"uint48"}],"stateMutability":"view","type":"function","name":"cumulativeSlashHint","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint48","name":"timestamp","type":"uint48"}],"stateMutability":"view","type":"function","name":"cumulativeSlashHintInternal","outputs":[{"internalType":"bool","name":"exists","type":"bool"},{"internalType":"uint32","name":"hint","type":"uint32"}]},{"inputs":[{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[],"stateMutability":"view","type":"function","name":"isBurnerHook","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"latestSlashedCaptureTimestamp","outputs":[{"internalType":"uint48","name":"value","type":"uint48"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint48","name":"captureTimestamp","type":"uint48"},{"internalType":"bytes","name":"hints","type":"bytes"}],"stateMutability":"view","type":"function","name":"slashableStake","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"slasher","type":"address"},{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint48","name":"captureTimestamp","type":"uint48"}],"stateMutability":"view","type":"function","name":"slashableStakeHints","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"staticDelegateCall"},{"inputs":[],"stateMutability":"view","type":"function","name":"vault","outputs":[{"internalType":"address","name":"","type":"address"}]}],"devdoc":{"kind":"dev","methods":{"cumulativeSlash(bytes32,address)":{"params":{"operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"},"returns":{"_0":"cumulative slash amount"}},"cumulativeSlashAt(bytes32,address,uint48,bytes)":{"params":{"hint":"hint for the checkpoint index","operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)","timestamp":"time point to get the cumulative slash amount until (inclusively)"},"returns":{"_0":"cumulative slash amount until the given timestamp (inclusively)"}},"initialize(bytes)":{"params":{"data":"some data to use"}},"slashableStake(bytes32,address,uint48,bytes)":{"params":{"captureTimestamp":"time point to get the stake amount at","hints":"hints for the checkpoints' indexes","operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"},"returns":{"amount":"slashable amount of the stake"}},"staticDelegateCall(address,bytes)":{"details":"It allows to use this contract's storage on-chain.","params":{"data":"data to make a delegatecall with","target":"address of the contract to make a delegatecall to"}}},"version":1},"userdoc":{"kind":"user","methods":{"BURNER_GAS_LIMIT()":{"notice":"Get a gas limit for the burner."},"BURNER_RESERVE()":{"notice":"Get a reserve gas between the gas limit check and the burner's execution."},"FACTORY()":{"notice":"Get the factory's address."},"NETWORK_MIDDLEWARE_SERVICE()":{"notice":"Get the network middleware service's address."},"TYPE()":{"notice":"Get the entity's type."},"VAULT_FACTORY()":{"notice":"Get the vault factory's address."},"cumulativeSlash(bytes32,address)":{"notice":"Get a cumulative slash amount for an operator on a subnetwork."},"cumulativeSlashAt(bytes32,address,uint48,bytes)":{"notice":"Get a cumulative slash amount for an operator on a subnetwork until a given timestamp (inclusively) using a hint."},"initialize(bytes)":{"notice":"Initialize this entity contract by using a given data."},"isBurnerHook()":{"notice":"Get if the burner is needed to be called on a slashing."},"latestSlashedCaptureTimestamp(bytes32,address)":{"notice":"Get the latest capture timestamp that was slashed on a subnetwork."},"slashableStake(bytes32,address,uint48,bytes)":{"notice":"Get a slashable amount of a stake got at a given capture timestamp using hints."},"staticDelegateCall(address,bytes)":{"notice":"Make a delegatecall from this contract to a given target contract with a particular data (always reverts with a return data)."},"vault()":{"notice":"Get the vault's address."}},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/contracts/hints/SlasherHints.sol":"BaseSlasherHints"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol":{"keccak256":"0x6662ec4e5cefca03eeadd073e9469df8d2944bb2ee8ec8f7622c2c46aab5f225","urls":["bzz-raw://4d8544c6f8daa4d1bc215c6a72fe0acdb748664a105b0e5efc19295667521d45","dweb:/ipfs/QmdGWqdnXT8S3RgCR6aV8XHZrsybieMQLLnug1NtpSjEXN"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol":{"keccak256":"0xc163fcf9bb10138631a9ba5564df1fa25db9adff73bd9ee868a8ae1858fe093a","urls":["bzz-raw://9706d43a0124053d9880f6e31a59f31bc0a6a3dc1acd66ce0a16e1111658c5f6","dweb:/ipfs/QmUFmfowzkRwGtDu36cXV9SPTBHJ3n7dG9xQiK5B28jTf2"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b","urls":["bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609","dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol":{"keccak256":"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397","urls":["bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9","dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardUpgradeable.sol":{"keccak256":"0xb44e086e941292cdc7f440de51478493894ef0b1aeccb0c4047445919f667f74","urls":["bzz-raw://942dad22fbdc1669f025540ba63aa3ccfad5f8458fc5d4525b31ebf272e7af45","dweb:/ipfs/Qmdo4X2M82aM3AMoW2kf2jhYkSCyC4T1pHNd6obdsDFnAB"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol":{"keccak256":"0xdaba3f7c42c55b2896353f32bd27d4d5f8bae741b3b05d4c53f67abc4dc47ce8","urls":["bzz-raw://1fa2e61141c602510bcd2cd936ed9561922ac8772a9b9c9a9db091a74e354a45","dweb:/ipfs/QmcHQDDoEBwJmwUbzoVkytvJsBx3KVHYFFnDkvRGWh9Wmh"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol":{"keccak256":"0xb6b36edd6a2999fd243ff226d6cbf84bd71af2432bbd0dfe19392996a1d9cb41","urls":["bzz-raw://1fd2f35495652e57e3f99bc6c510bc5f7dd398a176ea2e72d8ed730aebc6ca26","dweb:/ipfs/QmTQV6X4gkikTib49cho5iDX3JvSQbdsoEChoDwrk3CbbH"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC1271.sol":{"keccak256":"0x85a45f3f10014a0f8be41157a32b6a5f905753ea64a4b64e29fc12b7deeecf39","urls":["bzz-raw://c3c74009ce36136b36c77c23935b8e4a7b4f253be2da2be4fb4a916b1ce43743","dweb:/ipfs/QmcH36v3iN7SJJuF73AunLR2LtNxhVJ1wm63ph4dPZ4pcL"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC5267.sol":{"keccak256":"0x92aa1df62dc3d33f1656d63bede0923e0df0b706ad4137c8b10b0a8fe549fd92","urls":["bzz-raw://c5c0f29195ad64cbe556da8e257dac8f05f78c53f90323c0d2accf8e6922d33a","dweb:/ipfs/QmQ61TED8uaCZwcbh8KkgRSsCav7x7HbcGHwHts3U4DmUP"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70","urls":["bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c","dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol":{"keccak256":"0x6008dabfe393240d73d7dd7688033f72740d570aa422254d29a7dce8568f3aff","urls":["bzz-raw://f5196ec75139918c6c7bb4251b36395e668f1fa6d206beba7e7520e74913940d","dweb:/ipfs/QmSyqjksXxmm2mCG6qRd1yuwLykypkSVBbnBnGqJRcuJMi"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0x37bb49513c49c87c4642a891b13b63571bc87013dde806617aa1efb54605f386","urls":["bzz-raw://b3036b3a83b7c48f96641f2a9002b9f2dcb6a5958dd670894ada21ae8229b3d0","dweb:/ipfs/QmUNfSBdoVtjhETaUJCYcaC7pTMgbhht926tJ2uXJbiVd3"],"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/ShortStrings.sol":{"keccak256":"0x18a7171df639a934592915a520ecb97c5bbc9675a1105607aac8a94e72bf62c6","urls":["bzz-raw://7478e1f13da69a2867ccd883001d836b75620362e743f196376d63ed0c422a1c","dweb:/ipfs/QmWywcQ9TNfwtoqAxbn25d8C5VrV12PrPS9UjtGe6pL2BA"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol":{"keccak256":"0x32ba59b4b7299237c8ba56319110989d7978a039faf754793064e967e5894418","urls":["bzz-raw://1ae50c8b562427df610cc4540c9bf104acca7ef8e2dcae567ae7e52272281e9c","dweb:/ipfs/QmTHiadFCSJUPpRjNegc5SahmeU8bAoY8i9Aq6tVscbcKR"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0x55f102ea785d8399c0e58d1108e2d289506dde18abc6db1b7f68c1f9f9bc5792","urls":["bzz-raw://6e52e0a7765c943ef14e5bcf11e46e6139fa044be564881378349236bf2e3453","dweb:/ipfs/QmZEeeXoFPW47amyP35gfzomF9DixqqTEPwzBakv6cZw6i"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol":{"keccak256":"0xeed0a08b0b091f528356cbc7245891a4c748682d4f6a18055e8e6ca77d12a6cf","urls":["bzz-raw://ba80ba06c8e6be852847e4c5f4492cef801feb6558ae09ed705ff2e04ea8b13c","dweb:/ipfs/QmXRJDv3xHLVQCVXg1ZvR35QS9sij5y9NDWYzMfUfAdTHF"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/EIP712.sol":{"keccak256":"0x999f705a027ed6dc2d4e0df2cc4a509852c6bfd11de1c8161bf88832d0503fd0","urls":["bzz-raw://0798def67258d9a3cc20b2b4da7ebf351a5cefe0abfdd665d2d81f8e32f89b21","dweb:/ipfs/QmPEvJosnPfzHNjKvCv2D3891mA2Ww8eUwkqrxBjuYdHCt"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol":{"keccak256":"0xba333517a3add42cd35fe877656fc3dfcc9de53baa4f3aabbd6d12a92e4ea435","urls":["bzz-raw://2ceacff44c0fdc81e48e0e0b1db87a2076d3c1fb497341de077bf1da9f6b406c","dweb:/ipfs/QmRUo1muMRAewxrKQ7TkXUtknyRoR57AyEkoPpiuZQ8FzX"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/SignatureChecker.sol":{"keccak256":"0x6b11eb41a228cca35d4b662b4df69fcd75192851365102690f57b2ac01e83fe6","urls":["bzz-raw://ab006a2983ed350d2af21ddcdd835dcae3b8340086cc4d088460da5abd041f69","dweb:/ipfs/QmbEacDhkJZiGrgzLjB4pNtE8Z1uudjDw1DvcDUTVQFsLG"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b","urls":["bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df","dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d","urls":["bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875","dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol":{"keccak256":"0xe19a4d5f31d2861e7344e8e535e2feafb913d806d3e2b5fe7782741a2a7094fe","urls":["bzz-raw://4aed79c0fa6f0546ed02f2f683e8f77f0fd2ed7eb34d8bbf3d373c9a6d95b13c","dweb:/ipfs/QmWqVz6UAVqmnWU5pqYPt1o6iDEZyPaBraAA3rKfTTSfYj"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0x5f7e4076e175393767754387c962926577f1660dd9b810187b9002407656be72","urls":["bzz-raw://7d533a1c97cd43a57cd9c465f7ee8dd0e39ae93a8fb8ff8e5303a356b081cdcc","dweb:/ipfs/QmVBEei6aTnvYNZp2CHYVNKyZS4q1KkjANfY39WVXZXVoT"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/Checkpoints.sol":{"keccak256":"0xbdc5e074d7dd6678f67e92b1a51a20226801a407b0e1af3da367c5d1ff4519ad","urls":["bzz-raw://a36cca6b22fff3db16fc789ff6c60eea71d4b156065d4d0c83a0bc5e91a77a8b","dweb:/ipfs/QmYN3exd5AemxjBrN8XMB1p5LbbE16uC3sjbYjwi8AjcGR"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/types/Time.sol":{"keccak256":"0xc7755af115020049e4140f224f9ee88d7e1799ffb0646f37bf0df24bf6213f58","urls":["bzz-raw://7f09bf94d5274334ec021f61a04659db303f31e60460e14b709c9bf187740111","dweb:/ipfs/QmNvgomZYUwFAt4cZbPWAiTeSZQreGehY9BK5xyVJsUttb"],"license":"MIT"},"src/contracts/common/Entity.sol":{"keccak256":"0x3d61a932995b8443381f3950542d388223a2c26dd5d29a3274dea3baa7388bd7","urls":["bzz-raw://7cdf5f03ca72fd263fd32ff59c8d88ddca911ae83896a287d10772c1bbe9b138","dweb:/ipfs/QmbP84r5BWT1Rn9AYTntWSf3xUMTTCohTZJFhbBhDXFoHa"],"license":"BUSL-1.1"},"src/contracts/common/MigratableEntity.sol":{"keccak256":"0x2d736f4dacd5d7e7697503bc426c78b8250fe1694ca157965ec178da6807de58","urls":["bzz-raw://f1237acf96b4b9f9b69156e068eddd726a6e15bd8e87a18dc999cd4ba4da069c","dweb:/ipfs/QmS6M8fiFFSeuJ4ZKKq1z8W7w4ybeHQSy5TLASGoc1LVic"],"license":"BUSL-1.1"},"src/contracts/common/StaticDelegateCallable.sol":{"keccak256":"0x350029aa8955eacaffffaeb58babc5c98e80ebc5c5db388ed17ee6465f4a9d90","urls":["bzz-raw://eb392a8ee9050e0af606897df63e3404e3829e8b688b580663892f9664195764","dweb:/ipfs/QmaXC8jqV8UrrAFkzXTEv2fJF56sy33HhLxAzaRZmUxuXD"],"license":"BUSL-1.1"},"src/contracts/delegator/BaseDelegator.sol":{"keccak256":"0x7c54d491fdd4415b764a9c8defa068e56d4c0c8c9419be0053a1d377669290e8","urls":["bzz-raw://9238bfbad0f6eeb0dc7727724de14380f1980b395902269703d5e2ef07e52e10","dweb:/ipfs/QmPJn1V4HNXcEghYvogGuSTF24dSQUPosR5qtsXcmNqRm3"],"license":"BUSL-1.1"},"src/contracts/delegator/FullRestakeDelegator.sol":{"keccak256":"0x0a81c4f8e72914563a9cb771e93acf889c71ea36b7bec040e4eb562b199d5af1","urls":["bzz-raw://6fc66b6ba02da77046a0bbbd1dd407a62c08f52e04486c9cbd2cb1cca3da555f","dweb:/ipfs/QmZQivK1ZnMxfRQQ5aLpV9co5u55wQVNev5Rg1hzAqxhkE"],"license":"BUSL-1.1"},"src/contracts/delegator/NetworkRestakeDelegator.sol":{"keccak256":"0xd3a8e6522f9c6fdcc2da837c9023afd6bdff2bce45a35590320c475519e3636d","urls":["bzz-raw://58b17a87f6554f08376f9ea7fedf486a4aa75801bf0ad8b23ff5a46959b6b7a3","dweb:/ipfs/QmSTmNh67tYt8CmjVZb57r8N3qX5yeYdMApKPJm3qvQgQw"],"license":"BUSL-1.1"},"src/contracts/delegator/OperatorNetworkSpecificDelegator.sol":{"keccak256":"0x031a10722b9ec49048f0952710401131290adb87e71caf294e864e7ac3b98a16","urls":["bzz-raw://72428febc875134b2f29205e6f294634a1c22a7d5c78d6a9cb2f8196f107c9b5","dweb:/ipfs/QmTPwXR6h5oytckmkLrHdKeEMdphJxceDhYUR4zvQeWAwY"],"license":"BUSL-1.1"},"src/contracts/delegator/OperatorSpecificDelegator.sol":{"keccak256":"0x630ce62fa30b9f3349ab7a8cf8dbf041319febc6dd757be2f94d3d25944ed328","urls":["bzz-raw://c2ac59d47ce57d2a6819ae9833e1a618a371eccff93eb5ab367b201b01f42bfa","dweb:/ipfs/QmdBpGMBivpNPv2WbH8vnCUy5xkVeaxQvGgqi33vKCz1kA"],"license":"BUSL-1.1"},"src/contracts/hints/DelegatorHints.sol":{"keccak256":"0x44aa0c396311a54afbc7c73e8dadeed41e3165a4fd13f712b27d63d50fc3376d","urls":["bzz-raw://2f255214f3531fc707d88be0d56a7a0aed4180439316d099d760d9118aa83093","dweb:/ipfs/QmZD1w5p1ukJSXumUAjvxwGmkPhn7vsr21Y2atLGEZR2oi"],"license":"BUSL-1.1"},"src/contracts/hints/Hints.sol":{"keccak256":"0x8b565df1ae35993c097a9e642002782a8f451f6fd01809cad6bcd345bdf1b99c","urls":["bzz-raw://99a19adb01e350a92f534095b3078229df1f2f83077992d75d58d8684be45971","dweb:/ipfs/QmbmwcuswVbzvwHQFTtrJG86oV98GnfxqYTb8cV8u1acox"],"license":"BUSL-1.1"},"src/contracts/hints/OptInServiceHints.sol":{"keccak256":"0x95d9407900d27b9f4a1233b772aeed809c07b2dc5b31cfc9fa77ca26514c49e5","urls":["bzz-raw://a13a8877e312d7e6b8b85bde3668c5d84ff5ecc83f762cd573f2b7104c64eb42","dweb:/ipfs/QmYV2J55acuGzCNnS3juABuUHY5U1xc8g8o9jwEyFFdeG5"],"license":"BUSL-1.1"},"src/contracts/hints/SlasherHints.sol":{"keccak256":"0xd77c5f3bbb0265af8ecd947df88f6f9684e136d80052b5292f5b29aaa3566a3f","urls":["bzz-raw://484a26504bf6706202ec82a9a4cfa7d196bbc552b5b78ced25bf7130c2842595","dweb:/ipfs/QmaQqmkoZoUWEam4R94vmajzH3gKqFqpZQwFbrHDsN1peV"],"license":"BUSL-1.1"},"src/contracts/hints/VaultHints.sol":{"keccak256":"0xccb505b7159b769cc114d67b87c2de6b106557f667fc8f3780114baad5c3c442","urls":["bzz-raw://6d0c80a908fc16e96a8b5605a0bd53f9e89ad0ef0a738fbbae80ba4d3160749b","dweb:/ipfs/QmXo5UtWoR8YmunqcbBU8rQMm1nvmvjNPoXcVrDhh4pEwR"],"license":"BUSL-1.1"},"src/contracts/libraries/Checkpoints.sol":{"keccak256":"0xba90097c8bfe0a975499428b5f8ac5569483c7d92ccc28c12d70de416aae040c","urls":["bzz-raw://12f5d93ca94cd06d3147db68993165a58e17903ed53682560de61f3085ad4609","dweb:/ipfs/QmePiuAqvXprMLmFZkGZeGjvGPAvsEDHfCDv7BoQhXu9xE"],"license":"MIT"},"src/contracts/libraries/ERC4626Math.sol":{"keccak256":"0x8441160513c1cbeb1c3b9ee077bcc7e7ce20006b52a77c8dd39ff0ef89699939","urls":["bzz-raw://943f8cc3e26ddf649f465f40c909819f5c864717c4baa339e9e403b9374a4653","dweb:/ipfs/QmXPxi1sUDsrGprZdUgCzoPEosaZMv9ZhygWQ1vAi1phAB"],"license":"MIT"},"src/contracts/libraries/Subnetwork.sol":{"keccak256":"0xf5ef5506fd66082b3c2e7f3df37529f5a8efad32ac62e7c8914bd63219190bfe","urls":["bzz-raw://ba031a54ee0d0e9a270c2b9e18437f5668cfeb659cfd5fe0677459d7fcac2a56","dweb:/ipfs/QmReP3H7qQ78tAfgLnJKsNEQNCQfF1X1Get38Ffd4kzq32"],"license":"MIT"},"src/contracts/service/OptInService.sol":{"keccak256":"0x4e0932077f2686b7990e10d59deb2535334c0d09e52ef6e57c6ab09eca21c4b1","urls":["bzz-raw://7c00d311032ed4a1743aca7475f3c86ce15cdfc2218108efc3731c03d34a5278","dweb:/ipfs/QmUGGfVwVhaHr5kS4177yKKYiLYzi5qZpkEmvYxBZqazxf"],"license":"BUSL-1.1"},"src/contracts/slasher/BaseSlasher.sol":{"keccak256":"0x190e5dce196a061bdad42468c52e9f5b0eb7810cd7d0c19f04d6a2e94984f1b6","urls":["bzz-raw://07ca08d0cd43c2fe5d54a5577f6bdd522ced410f5d3a52e764deaa7ba26b5f06","dweb:/ipfs/QmZe3PiMKBQKWcwodaLupragdqxPjgS4v1qMC7RXau8hDF"],"license":"BUSL-1.1"},"src/contracts/slasher/Slasher.sol":{"keccak256":"0xeee0cb25fad58d496fdcc641d852d11bae06e6ceed5230ae21150964175c494f","urls":["bzz-raw://34aa27d21246a1bcee0b6a2afa8d9d613441156362430392f75d176511d58c61","dweb:/ipfs/Qmf53Y3zdGfH4PU2zpSGeHZ8mMLzLXCtmkQrG5mnVJECQ3"],"license":"BUSL-1.1"},"src/contracts/slasher/VetoSlasher.sol":{"keccak256":"0xeccc8128de5e1ad499c067feac1c526638fbbac1a18b96726fc7507969fd5897","urls":["bzz-raw://cdfcf281338423625acbccdf8810115b258ef7cfe4aa3c10b8911ead1aa85429","dweb:/ipfs/QmZFsDvZXpkFkx4PHcDXAVPN3ZCAahbSVfYpSVrMBvbt4k"],"license":"BUSL-1.1"},"src/contracts/vault/Vault.sol":{"keccak256":"0x2ceff6ed3298c4cad144c99fcc79b51cb9397d6ebef00285b915848b476f8c2e","urls":["bzz-raw://11f2fb3581854f3ab6e82e8d4935d9eb510c903a13c3f022346c2956a58f5307","dweb:/ipfs/QmdUnoXoyYoG9SGWyQZCFyLDRUUX3eXyXetkRvw6jxqqBz"],"license":"BUSL-1.1"},"src/contracts/vault/VaultStorage.sol":{"keccak256":"0x57db25b127d77ea3472de53e3a4af3354399655b9268638b99ca5925fa364a56","urls":["bzz-raw://aa763d9a6ec508ae3abfb8228b72b9fd9525279e5135d4962e79ff059feb1173","dweb:/ipfs/QmcbDR6E9wyEpu6V2FkEC4hnWy47zXA9LSKJde6zSGd33Q"],"license":"BUSL-1.1"},"src/interfaces/common/IEntity.sol":{"keccak256":"0x8ef4b63d6da63489778ccd5f8d13ebdd527dd4b62730b2c616df5af7474d2d21","urls":["bzz-raw://5a8d69576a9219d85c50816a18ad53a4d53cfcb27ed38b8cccc808dc2734b71b","dweb:/ipfs/QmYVN3P4Q4REvBWJ97TbAcaxm3uyB2anV6NSGa6ZtSwcEv"],"license":"MIT"},"src/interfaces/common/IMigratableEntity.sol":{"keccak256":"0x8f5f2809f3afbe8ebfbb365dd7b57b4dd3b6f9943a6187eaf648d45895b8e3c4","urls":["bzz-raw://0ffe640537d539e7a4fde70d30d3e4c57f4ba9c2c25c450cea713aae38e8fd5c","dweb:/ipfs/QmSUTGzvdcn1R1KB7tLThMRtESsfPbeXDhhhKWGtntzBds"],"license":"MIT"},"src/interfaces/common/IRegistry.sol":{"keccak256":"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb","urls":["bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014","dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK"],"license":"MIT"},"src/interfaces/common/IStaticDelegateCallable.sol":{"keccak256":"0xa335d4e81b9071b7de66ef92b43ff20671d86516eb1be46fef29a3483cd3f5d5","urls":["bzz-raw://d464b9db863c14c05547d2b23352f2e9b7b784799cf09f6bbc4906a2a74e3516","dweb:/ipfs/QmUVWzFvJz7eEbDQKiFTTzwi7TEbjcs3VmwdM4kuptAKvi"],"license":"MIT"},"src/interfaces/delegator/IBaseDelegator.sol":{"keccak256":"0x96bb312f032e17accce3f8f80936d99468029d6b37c9ca74acdb4b026a0148ee","urls":["bzz-raw://2a66dcb5b7d1a6ef6a363431ea98ebd78bc4fdd3d7a134d9b542dc66e7d025c2","dweb:/ipfs/QmRhTPLd2ZAyRHmJUFUcWKs9b3if49QY17LYZuRqWmghw8"],"license":"MIT"},"src/interfaces/delegator/IDelegatorHook.sol":{"keccak256":"0xc51aa8d7d1f6c8043ee819b7aeb86da0e993912e1442098df897e299f01f9f46","urls":["bzz-raw://adddf5cb2ba282aeb576b26efb28640f865a1721cc9b6eee8b3ee0457a2c9780","dweb:/ipfs/QmNYgAmnLRwWZbhTuQhZs9rx4zcme1df5mEepkrniorSoW"],"license":"MIT"},"src/interfaces/delegator/IFullRestakeDelegator.sol":{"keccak256":"0xa3c8cb2e45d4d8ce90e95263bea40c01dc400f05ad65bc29597d878606be5e7d","urls":["bzz-raw://782cf5e201aa4cca037ebafd3807a68ff1cc721d5b8416a35244db0d0607369e","dweb:/ipfs/QmQkJks6x7CKndeTPa9LxgTNygD5uEi7obhADhpq1Lsr9A"],"license":"MIT"},"src/interfaces/delegator/INetworkRestakeDelegator.sol":{"keccak256":"0xe7030fe30389a147fd710e3436ec346b4842695fd3e65a81b95375c9f1d633fc","urls":["bzz-raw://739c7e66d301778054f5c90bee45ec9438f68afba8a03eaaac52064c73b115ad","dweb:/ipfs/QmfZ2ytKcTykAc76nxhg8ikUXV8NdBpetqb8W4YWPcox1Z"],"license":"MIT"},"src/interfaces/delegator/IOperatorNetworkSpecificDelegator.sol":{"keccak256":"0x74b95e64d29769202d45dd277bb830f623ff3d41ce77b80ce3ee4e318a5c71ec","urls":["bzz-raw://e512b903aae5c1b8a028c6e3f4f6223b5cb5d704503cfa6bd37b5346868f5c20","dweb:/ipfs/QmZim9YExsPWtyxyeui993HTKAEmrg8MUcSkZ77Gp2JcuZ"],"license":"MIT"},"src/interfaces/delegator/IOperatorSpecificDelegator.sol":{"keccak256":"0x72075cab585dc17240cc3e32bc99b92f0d5627ddd988fed680e3e1a52d5a01e4","urls":["bzz-raw://7448bc90699409ae61d85216b5efc2143a37f0f73354be2aea993bc54afca441","dweb:/ipfs/QmXE4gAxM8pHosZK8mcTcj17puBx484meDCcmrDePskGHZ"],"license":"MIT"},"src/interfaces/service/INetworkMiddlewareService.sol":{"keccak256":"0x347afc7fcf1fbcdb96d66162070ef6c78aed27b3af2c1d5dfb4e511840631783","urls":["bzz-raw://2d90b8ceb495159e8e4e95d76447719dd166443f67dfabdd942846162071595c","dweb:/ipfs/QmVVuiAWYx92T6vBvNMKZfTvraCf1fa16BsUKkdNs3hdHA"],"license":"MIT"},"src/interfaces/service/IOptInService.sol":{"keccak256":"0x76fb5460a6d87a5705433d4fbeff7253cd75b8bbd0c888b2088f16e86ace146a","urls":["bzz-raw://990322019b3d11465f7024bae77ccbf7e2fe5d6fa3c754584778f37d04fa1337","dweb:/ipfs/QmaSNHzcqxTkUCG9a4nqVfLECHLdjdrwAnDi3yDC7tDL24"],"license":"MIT"},"src/interfaces/slasher/IBaseSlasher.sol":{"keccak256":"0x7c82528b445659c313ab77335c407b0b6efe5e79027187bb287f7bc74202b404","urls":["bzz-raw://0274c90aa5df1aa6bb470a6aab53992fb14fd7e5472c9430416505b29647d9cf","dweb:/ipfs/QmckbmJLDetPemVzCnnGcKYWAZV2BRFXGDsjiaec8jkHxx"],"license":"MIT"},"src/interfaces/slasher/IBurner.sol":{"keccak256":"0xaf495dacc19ae0b3c787ba8021c5944927d70261536addd234d7dab146158c2b","urls":["bzz-raw://9b3cc66251008be6ff9fc8b11ecc6831d5a9dca49a3fe9817fcd970253c1d447","dweb:/ipfs/QmVxfb9ALGdF9W3SN2h41gQbUct6tawvu5bw4K89kFQ4HW"],"license":"MIT"},"src/interfaces/slasher/ISlasher.sol":{"keccak256":"0x34d226d67a3d5e16571f2fac91a8b9773551bcc41c88a96279669dd78d192625","urls":["bzz-raw://7a6e8c1462ee4a1b0f745414be043c09012ea676613790aba004b06c85c980d1","dweb:/ipfs/QmadjNEbHKRthtA1EeNy3Kg2sXpejH2KBeHm8QZtBPvXbJ"],"license":"MIT"},"src/interfaces/slasher/IVetoSlasher.sol":{"keccak256":"0xdf7edd04a4f36e9aec3a15241dcb6b6315b2e64927b12710c2c410d571fc55e9","urls":["bzz-raw://c4be6ac339c2ebf230fed65363f036784224095d0cd0f3f2d01d64d6e0da9508","dweb:/ipfs/QmRSMbpfaHExqrzUA8vYZMYZWh6eQW1KX9JKJSLdgronfg"],"license":"MIT"},"src/interfaces/vault/IVault.sol":{"keccak256":"0xffee01d383cd4e1a5530c614bf4360c1ef070c288abec9da1eb531b51bc07235","urls":["bzz-raw://04f0046cac285d8ec44ebbb1f79dc94fab4495767190cad8364fbc1fafaadfb9","dweb:/ipfs/QmUawAunwzXfCyShWfhKeThAgKtqe51hmrxvrXvM772M2R"],"license":"MIT"},"src/interfaces/vault/IVaultStorage.sol":{"keccak256":"0x592626f13754194f83047135de19229c49390bd59e34659b1bb38be71d973a22","urls":["bzz-raw://06a6a9dfddd05e580b32bebe2cff4f63ba26a653180676d58225dd30d9c89d3e","dweb:/ipfs/QmdgzBeY6Sxo8mGtyBxtv1tM1c2kU6J6zjeRd7vuXm4DU6"],"license":"MIT"}},"version":1},"id":89} \ No newline at end of file +{"abi":[{"type":"constructor","inputs":[{"name":"baseDelegatorHints","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"BASE_DELEGATOR_HINTS","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"BURNER_GAS_LIMIT","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"BURNER_RESERVE","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"FACTORY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"NETWORK_MIDDLEWARE_SERVICE","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"SLASHER_HINTS","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"TYPE","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"VAULT_FACTORY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"VETO_SLASHER_HINTS","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"cumulativeSlash","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"cumulativeSlashAt","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"timestamp","type":"uint48","internalType":"uint48"},{"name":"hint","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"cumulativeSlashHint","inputs":[{"name":"slasher","type":"address","internalType":"address"},{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"timestamp","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"cumulativeSlashHintInternal","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"timestamp","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"exists","type":"bool","internalType":"bool"},{"name":"hint","type":"uint32","internalType":"uint32"}],"stateMutability":"view"},{"type":"function","name":"initialize","inputs":[{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"isBurnerHook","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"latestSlashedCaptureTimestamp","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"value","type":"uint48","internalType":"uint48"}],"stateMutability":"view"},{"type":"function","name":"slashableStake","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"captureTimestamp","type":"uint48","internalType":"uint48"},{"name":"hints","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"slashableStakeHints","inputs":[{"name":"slasher","type":"address","internalType":"address"},{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"captureTimestamp","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"staticDelegateCall","inputs":[{"name":"target","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"vault","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"error","name":"ExternalCall","inputs":[]},{"type":"error","name":"InsufficientBurnerGas","inputs":[]},{"type":"error","name":"InvalidInitialization","inputs":[]},{"type":"error","name":"NoBurner","inputs":[]},{"type":"error","name":"NotInitialized","inputs":[]},{"type":"error","name":"NotInitializing","inputs":[]},{"type":"error","name":"NotNetworkMiddleware","inputs":[]},{"type":"error","name":"NotVault","inputs":[]},{"type":"error","name":"ReentrancyGuardReentrantCall","inputs":[]},{"type":"error","name":"SafeCastOverflowedUintDowncast","inputs":[{"name":"bits","type":"uint8","internalType":"uint8"},{"name":"value","type":"uint256","internalType":"uint256"}]}],"bytecode":{"object":"0x610180346101e757601f61741938819003918201601f19168301926001600160401b03929091838511838610176101825781602092849260409788528339810103126101e75751906001600160a01b039081831683036101e757306080527ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805460ff81871c166101d65780838080931603610196575b5050505f60a0525f60c0525f60e052610100935f8552610120938452805161209f8082019082821085831117610182576020918391611bfe83393081520301905ff091821561017857836101409316835281519061377c8083019183831090831117610182576020918391613c9d83393081520301905ff092831561017857610160931683525192611a1294856101ec8639608051856105fa015260a051856102cb015260c05185610909015260e0518581816101690152610e840152518461028701525183818161069b0152610c2f0152518261055c015251816105a00152f35b50513d5f823e3d90fd5b634e487b7160e01b5f52604160045260245ffd5b6001600160401b03191617905583518181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a15f8181610096565b855163f92ee8a960e01b8152600490fd5b5f80fdfe60806040526004361015610011575f80fd5b5f3560e01c8063103f2907146101545780631a2be2c41461014f578063267de1f31461014a5780632964f8dc146101455780632c9d45b3146101405780632dd310001461013b57806334d098ea14610136578063439fab91146101315780634a7196551461012c5780634ea2e926146101275780634eb5a242146101225780636565b7db1461011d578063770280461461011857806379d89614146101135780639f86fd851461010e578063aa8e648914610109578063aab3595f14610104578063bb24fe8a146100ff578063d5c24e1a146100fa5763fbfa77cf146100f5575f80fd5b61094a565b61092d565b6108ea565b6108c5565b610887565b6106ca565b610686565b6105cf565b61058b565b610547565b61052a565b6104f5565b61034b565b6102fa565b6102b6565b610272565b610256565b610201565b6101ad565b34610198575f366003190112610198576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b5f80fd5b6001600160a01b0381160361019857565b346101985760403660031901126101985760206101f96101f46024356101d28161019c565b6004355f526002845260405f209060018060a01b03165f5260205260405f2090565b610daa565b604051908152f35b3461019857604036600319011261019857602065ffffffffffff61024c60243561022a8161019c565b6004355f526001845260405f209060018060a01b03165f5260205260405f2090565b5416604051908152f35b34610198575f366003190112610198576020604051614e208152f35b34610198575f366003190112610198576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b34610198575f366003190112610198576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b34610198575f36600319011261019857602060ff5f5460a01c166040519015158152f35b9181601f84011215610198578235916001600160401b038311610198576020838186019501011161019857565b34610198576020366003190112610198576001600160401b036004358181116101985761037c90369060040161031e565b5f805160206119bd833981519152549260ff8460401c1615931680159081610480575b6001149081610476575b15908161046d575b5061045b575f805160206119bd833981519152805467ffffffffffffffff191660011790556103e4918361043257610e4c565b6103ea57005b5f805160206119bd833981519152805460ff60401b19169055604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a1005b5f805160206119bd833981519152805460ff60401b191668010000000000000000179055610e4c565b60405163f92ee8a960e01b8152600490fd5b9050155f6103b1565b303b1591506103a9565b84915061039f565b65ffffffffffff81160361019857565b6080906003190112610198576004356104b08161019c565b90602435906044356104c18161019c565b906064356104ce81610488565b90565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b346101985761052661051261050936610498565b929190916109b0565b6040519182916020835260208301906104d1565b0390f35b346101985761052661051261053e36610498565b92919091610b7b565b34610198575f366003190112610198576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b34610198575f366003190112610198576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b34610198576060366003190112610198576024356105ec8161019c565b6044356105f881610488565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316330361067457610652610657926004355f52600260205260405f209060018060a01b03165f5260205260405f2090565b61104a565b60408051941515855263ffffffff91909116602085015292915050f35b604051637ca475e560e11b8152600490fd5b34610198575f366003190112610198576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b34610198576040366003190112610198576004356106e78161019c565b6024356001600160401b038111610198575f916107098392369060040161031e565b90816040519283928337810184815203915af4610756610727610d26565b916107486040519384921515602084015260408084015260608301906104d1565b03601f1981018352826107ad565b805190602001fd5b634e487b7160e01b5f52604160045260245ffd5b604081019081106001600160401b0382111761078d57604052565b61075e565b60a081019081106001600160401b0382111761078d57604052565b90601f801991011681019081106001600160401b0382111761078d57604052565b604051906107db82610772565b565b6001600160401b03811161078d57601f01601f191660200190565b81601f820112156101985780359061080f826107dd565b9261081d60405194856107ad565b8284526020838301011161019857815f926020809301838601378301015290565b906080600319830112610198576004359160243561085b8161019c565b9160443561086881610488565b91606435906001600160401b038211610198576104ce916004016107f8565b346101985760206101f96108c061089d3661083e565b939190925f526002865260405f209060018060a01b03165f5260205260405f2090565b611178565b346101985760206108e16108d83661083e565b92919091611347565b50604051908152f35b34610198575f3660031901126101985760206040516001600160401b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b34610198575f366003190112610198576020604051620249f08152f35b34610198575f366003190112610198575f546040516001600160a01b039091168152602090f35b5190811515820361019857565b519063ffffffff8216820361019857565b9190826040910312610198576104ce60206109a984610971565b930161097e565b5f809195949593929365ffffffffffff60609760405195602097633b81402360e11b89890152602488015260018060a01b03166044870152166064850152606484526109fb84610792565b6040519384610a2887820192639f86fd8560e01b84523060248401526040604484015260648301906104d1565b0394610a3c601f19968781018352826107ad565b51915afa50610a5a610a4c610d26565b838082518301019101610fb5565b9015610aad57808380610a729351830101910161098f565b9290610a7d57505050565b6104ce92939450610aa1604051948592830191909163ffffffff6020820193169052565b039081018352826107ad565b809150519182156101985701fd5b9081602091031261019857516104ce8161019c565b6040513d5f823e3d90fd5b81601f8201121561019857805190610af2826107dd565b92610b0060405194856107ad565b8284526020838301011161019857815f9260208093018386015e8301015290565b906020828203126101985781516001600160401b038111610198576104ce9201610adb565b906104ce91602081526020610b66835160408385015260608401906104d1565b920151906040601f19828503019101526104d1565b60405163fbfa77cf60e01b815260609594919391926020926001600160a01b03929091908481600481878b165afa908115610cd757849186915f91610d09575b50600460405180948193630ce9b79360e41b8352165afa8015610cd75786948385925f948591610cdc575b506040516304bb92e160e31b81526001600160a01b039182166004820152602481019290925292909216604483015265ffffffffffff97909716606482015295869060849082907f0000000000000000000000000000000000000000000000000000000000000000165afa948515610cd7575f95610caf575b50610c6b9394956109b0565b825115801590610ca5575b610c7f57505050565b6104ce92939450610c8e6107ce565b938452818401526107486040519384928301610b46565b5080511515610c76565b610c6b949550610cd0903d805f833e610cc881836107ad565b810190610b21565b9493610c5f565b610ad0565b610cfc9150893d8b11610d02575b610cf481836107ad565b810190610abb565b5f610be6565b503d610cea565b610d209150823d8411610d0257610cf481836107ad565b5f610bbb565b3d15610d50573d90610d37826107dd565b91610d4560405193846107ad565b82523d5f602084013e565b606090565b5f9081526002602090815260408083206001600160a01b039094168352929052206104ce929190611178565b8054821015610d96575f5260205f2001905f90565b634e487b7160e01b5f52603260045260245ffd5b805480610ddf57505f5b6001600160d01b03811615610dd9576001610dcf9201610d81565b90549060031b1c90565b50505f90565b5f19908082810111610dfd57825f5260205f2001015460301c610db4565b610fe9565b919091604081840312610198578035610e1a8161019c565b9260208201356001600160401b038111610198576104ce92016107f8565b90816020910312610198576104ce90610971565b610e5891810190610e02565b506040516302910f8b60e31b81526001600160a01b0391821660048201819052919060209081816024817f000000000000000000000000000000000000000000000000000000000000000087165afa908115610cd7575f91610f88575b5015610f7657610ec361159b565b5f80546001600160a01b0319166001600160a01b038516179055600481610ee86115d1565b94604051928380926313c085b760e11b82525afa918215610cd7575f92610f59575b5050161580610f4f575b610f3d57516107db9015155f805460ff60a01b191691151560a01b60ff60a01b16919091179055565b60405163d2420f5960e01b8152600490fd5b5080511515610f14565b610f6f9250803d10610d0257610cf481836107ad565b5f80610f0a565b6040516362df054560e01b8152600490fd5b610fa89150823d8411610fae575b610fa081836107ad565b810190610e38565b5f610eb5565b503d610f96565b91909160408184031261019857610fcb81610971565b9260208201516001600160401b038111610198576104ce9201610adb565b634e487b7160e01b5f52601160045260245ffd5b5f19810191908211610dfd57565b91908203918211610dfd57565b9060018201809211610dfd57565b9060405161103381610772565b915465ffffffffffff8116835260301c6020830152565b91908254905f8291600584116110e8575b61106693508561174f565b9081156110dc576110d56110cc6110c6610dcf61109861109361108888610ffd565b895f5260205f200190565b611026565b9660016110bf60206110b08b5165ffffffffffff1690565b9a01516001600160d01b031690565b9101610d81565b93610ffd565b63ffffffff1690565b6001939291565b5f925082915081908190565b91926110f381611611565b8103908111610dfd5761106693865f5261112761111c8360205f200165ffffffffffff90541690565b65ffffffffffff1690565b65ffffffffffff8516101561113d57509161105b565b92915061114990611018565b9061105b565b90816020910312610198576104ce9061097e565b90600163ffffffff80931601918211610dfd57565b9180511561124657806020806111939351830101910161114f565b9161119e8382611876565b926111af845165ffffffffffff1690565b9065ffffffffffff808516921682811461123a57821191826111e5575b50506111dc576104ce92506117a6565b50506020015190565b9091506111f28354610ffd565b63ffffffff83161491821561120b575b50505f806111cc565b61123291925061122661122061111c92611163565b85611876565b5165ffffffffffff1690565b115f80611202565b50505050506020015190565b506104ce916117a6565b6040519061125d82610772565b60606020838281520152565b906020828203126101985781516001600160401b0392838211610198570190604082820312610198576040519261129f84610772565b825181811161019857826112b4918501610adb565b84526020830151908111610198576112cc9201610adb565b602082015290565b9081602091031261019857516104ce81610488565b65ffffffffffff9182169082160391908211610dfd57565b90816020910312610198575190565b9081526001600160a01b03909116602082015265ffffffffffff90911660408201526080606082018190526104ce929101906104d1565b92611350611250565b90805180611581575b505061136442611933565b5f549094906113899061137d906001600160a01b031681565b6001600160a01b031690565b93604051956327f843b560e11b875260209687816004818a5afa8015610cd7576113be9261111c925f92611552575b506112e9565b65ffffffffffff821690811090811561153b575b811561150a575b506114fe578560049560405196878092630ce9b79360e41b82525afa948515610cd75761142b9587915f916114e1575b50845190604051808099819463e02f693760e01b8352878b8a60048601611310565b03916001600160a01b03165afa938415610cd75761149d955f956114a0575b509261149285936114989361149296869a6114896101f483611474875f52600260205260405f2090565b9060018060a01b03165f5260205260405f2090565b95015192610d55565b9061100b565b6118de565b91565b6114989295506114929491936114ce611492928a3d8c116114da575b6114c681836107ad565b810190611301565b9693509391945061144a565b503d6114bc565b6114f89150823d8411610d0257610cf481836107ad565b5f611409565b5050505050505f905f90565b905061153461111c61152887611474875f52600160205260405f2090565b5465ffffffffffff1690565b115f6113d9565b905061154961111c42611933565b811015906113d2565b6115739192508a3d8c1161157a575b61156b81836107ad565b8101906112d4565b905f6113b8565b503d611561565b6115949250602080918301019101611269565b5f80611359565b6115a36118f0565b6115ab6118f0565b60017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055565b60405190602082018281106001600160401b0382111761078d576040525f8252565b81156115fd570490565b634e487b7160e01b5f52601260045260245ffd5b801561174a57806116e36116dc6116d26116c86116be6116b46116aa6116a060016104ce9a5f908b60801c8061173e575b508060401c80611731575b508060201c80611724575b508060101c80611717575b508060081c8061170a575b508060041c806116fd575b508060021c806116f0575b50821c6116e9575b811c1b611699818b6115f3565b0160011c90565b611699818a6115f3565b61169981896115f3565b61169981886115f3565b61169981876115f3565b61169981866115f3565b61169981856115f3565b80926115f3565b906118de565b810161168c565b600291509101905f611684565b600491509101905f611679565b600891509101905f61166e565b601091509101905f611663565b602091509101905f611658565b604091509101905f61164d565b9150506080905f611642565b505f90565b905b83831061175e5750505090565b90919261176b818561191e565b90835f5265ffffffffffff808360205f20015416908416105f146117935750925b9190611751565b9350600181018091111561178c57610fe9565b908154905f829160058411611810575b6117c1935084611965565b806117e957505f905b6001600160d01b03821615610dd9576104ce916001610dcf9201610d81565b6118036117f861180a92610ffd565b835f5260205f200190565b5460301c90565b906117ca565b919261181b81611611565b8103908111610dfd576117c193855f5265ffffffffffff808360205f20015416908516105f1461184c5750916117b6565b92915061185890611018565b906117b6565b6040519061186b82610772565b5f6020838281520152565b9061189f6118996118c09261188961185e565b5061189261185e565b5084610d81565b50611026565b91600165ffffffffffff845116936020828060d01b03910151169101610d81565b905490604051926118d084610772565b835260031b1c602082015290565b90808210156118eb575090565b905090565b60ff5f805160206119bd8339815191525460401c161561190c57565b604051631afcd79f60e31b8152600490fd5b90808216911860011c8101809111610dfd5790565b65ffffffffffff90818111611946571690565b604490604051906306dfcc6560e41b8252603060048301526024820152fd5b905b8383106119745750505090565b909192611981818561191e565b90835f5265ffffffffffff808360205f20015416908416105f146119a95750925b9190611967565b935060018101809111156119a257610fe956fef0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a26469706673582212204516407e2adc4ef10f928db601f32a60d5944a2a517c00968a39e5541843a63a64736f6c634300081900336101403461015d576001600160401b0390601f61209f38819003918201601f1916830191848311848410176101615780849260209460405283398101031261015d5751906001600160a01b038216820361015d57306080527ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a009081549060ff8260401c1661014b578080831603610106575b835f60a0525f60c0525f60e052610100905f825261012090815260405190611f299283610176843960805183505060a051836104f2015260c0518381816109490152611379015260e05183818161031d01526116a901525182818161021c01526104ae0152518181816106920152610d330152f35b6001600160401b031990911681179091556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a15f8080610091565b60405163f92ee8a960e01b8152600490fd5b5f80fd5b634e487b7160e01b5f52604160045260245ffdfe60806040526004361015610011575f80fd5b5f3560e01c8063021a815614610124578063103f29071461011f5780631a2be2c41461011a578063238ab85f14610115578063267de1f3146101105780632964f8dc1461010b5780632c9d45b3146101065780632dd310001461010157806334d098ea146100fc578063439fab91146100f7578063457821b7146100f25780639f86fd85146100ed578063aa8e6489146100e8578063aab3595f146100e3578063bb24fe8a146100de578063d5c24e1a146100d95763fbfa77cf146100d4575f80fd5b61098a565b61096d565b61092a565b610905565b6108c7565b6106c1565b61067d565b610545565b610521565b6104dd565b610499565b61047d565b610428565b6103c4565b61034c565b610308565b61017b565b6001600160a01b0381160361013a57565b5f80fd5b65ffffffffffff81160361013a57565b9181601f8401121561013a578235916001600160401b03831161013a576020838186019501011161013a57565b3461013a5760a036600319011261013a5760043560243561019b81610129565b6064356101a78161013e565b6084356001600160401b03811161013a576101c690369060040161014e565b917f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0060028154146102ec5760029055604051635daf681960e11b8152606086901c60048201526001600160a01b036020826024817f000000000000000000000000000000000000000000000000000000000000000085165afa9182156102e7575f926102b6575b50339116036102a4576102a0946102679460443591610a63565b61029060017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055565b6040519081529081906020820190565b0390f35b60405163227bf64d60e01b8152600490fd5b6102d991925060203d6020116102e0575b6102d181836107dd565b810190610ddf565b905f61024d565b503d6102c7565b610a27565b604051633ee5aeb560e01b8152600490fd5b5f91031261013a57565b3461013a575f36600319011261013a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461013a57604036600319011261013a57602061039861039360243561037181610129565b6004355f526002845260405f209060018060a01b03165f5260205260405f2090565b6115c8565b604051908152f35b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b3461013a5760c036600319011261013a576102a06104146004356103e781610129565b6103f2602435610129565b6064356103fe81610129565b60a4359161040b8361013e565b60443590610ce7565b6040519182916020835260208301906103a0565b3461013a57604036600319011261013a57602065ffffffffffff61047360243561045181610129565b6004355f526001845260405f209060018060a01b03165f5260205260405f2090565b5416604051908152f35b3461013a575f36600319011261013a576020604051614e208152f35b3461013a575f36600319011261013a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461013a575f36600319011261013a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461013a575f36600319011261013a57602060ff5f5460a01c166040519015158152f35b3461013a57602036600319011261013a576001600160401b0360043581811161013a5761057690369060040161014e565b5f80516020611ed4833981519152549260ff8460401c1615931680159081610675575b600114908161066b575b159081610662575b50610650575f80516020611ed4833981519152805467ffffffffffffffff191660011790556105de918361062c57611672565b6105e457005b5f80516020611ed4833981519152805460ff60401b19169055604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a1005b5f80516020611ed4833981519152805460ff60401b1916600160401b179055611672565b60405163f92ee8a960e01b8152600490fd5b9050155f6105ab565b303b1591506105a3565b849150610599565b3461013a575f36600319011261013a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461013a5760408060031936011261013a576004356106df81610129565b602435906001600160401b03821161013a575f809161070561076994369060040161014e565b908187519283928337810184815203915af43d156107715761075b3d61072a8161081a565b90610737865192836107dd565b81523d5f602083013e5b8451948593151560208501528084015260608301906103a0565b03601f1981018352826107dd565b805190602001fd5b61075b6060610741565b634e487b7160e01b5f52604160045260245ffd5b602081019081106001600160401b038211176107aa57604052565b61077b565b604081019081106001600160401b038211176107aa57604052565b6001600160401b0381116107aa57604052565b90601f801991011681019081106001600160401b038211176107aa57604052565b6040519061080b826107af565b565b6040519061080b8261078f565b6001600160401b0381116107aa57601f01601f191660200190565b81601f8201121561013a5780359061084c8261081a565b9261085a60405194856107dd565b8284526020838301011161013a57815f926020809301838601378301015290565b90608060031983011261013a576004359160243561089881610129565b916044356108a58161013e565b91606435906001600160401b03821161013a576108c491600401610835565b90565b3461013a5760206103986109006108dd3661087b565b939190925f526002865260405f209060018060a01b03165f5260205260405f2090565b61180c565b3461013a5760206109216109183661087b565b92919091610ed9565b50604051908152f35b3461013a575f36600319011261013a5760206040516001600160401b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461013a575f36600319011261013a576020604051620249f08152f35b3461013a575f36600319011261013a575f546040516001600160a01b039091168152602090f35b604051906109be8261078f565b60608252565b9060208282031261013a5781356001600160401b039283821161013a57019060208282031261013a57604051926109fa8461078f565b823590811161013a57610a0d9201610835565b815290565b9081602091031261013a57516108c48161013e565b6040513d5f823e3d90fd5b634e487b7160e01b5f52601160045260245ffd5b65ffffffffffff9182169082160391908211610a5e57565b610a32565b92939594919095610a726109b1565b9280610c4d575b5050610a84426118e4565b5f54600490602090610aac90610aa0906001600160a01b031681565b6001600160a01b031690565b6040516327f843b560e11b815292839182905afa80156102e757610ae692610adb925f92610c1c575b50610a46565b65ffffffffffff1690565b65ffffffffffff8516908110908115610c06575b50610bf457610b0f610b189251858886610ed9565b92908092611109565b958615610be257610b9d61075b610b94610bdd947fe0cbbe1f1e6fd806ca87036fafcebaf7ab5247474a3b20e1c37bb50122c3a88496610b598a878b61111b565b610b648c878b6111a9565b610b6c6107fe565b9182526020820152604051928391602083019190916020806040830194805184520151910152565b86898488611315565b610ba7858861141e565b610bb3858883876114a3565b6040805188815265ffffffffffff90961660208701526001600160a01b0390911694918291820190565b0390a3565b60405163167f871760e31b8152600490fd5b604051631357ac9160e11b8152600490fd5b9050610c14610adb426118e4565b11155f610afa565b610c3f91925060203d602011610c46575b610c3781836107dd565b810190610a12565b905f610ad5565b503d610c2d565b610c5b9293508101906109c4565b905f80610a79565b81601f8201121561013a57805190610c7a8261081a565b92610c8860405194856107dd565b8284526020838301011161013a57815f9260208093018386015e8301015290565b9060208282031261013a5781516001600160401b03811161013a576108c49201610c63565b60406108c49260208352519160208082015201906103a0565b604051632751749360e11b81526001600160a01b0391821660048201526024810192909252918216604482015265ffffffffffff909216606483015260609291905f90829060849082907f0000000000000000000000000000000000000000000000000000000000000000165afa9081156102e7575f91610d91575b508051610d6d5750565b61075b9192506108c490610d7f61080d565b90815260405192839160208301610cce565b610dad91503d805f833e610da581836107dd565b810190610ca9565b5f610d63565b5f9081526002602090815260408083206001600160a01b039094168352929052206108c492919061180c565b9081602091031261013a57516108c481610129565b60405190610e01826107af565b60606020838281520152565b9060208282031261013a5781516001600160401b039283821161013a57019060408282031261013a5760405192610e43846107af565b825181811161013a5782610e58918501610c63565b8452602083015190811161013a57610e709201610c63565b602082015290565b9081602091031261013a575190565b9081526001600160a01b03909116602082015265ffffffffffff90911660408201526080606082018190526108c4929101906103a0565b5f19810191908211610a5e57565b91908203918211610a5e57565b92610ee2610df4565b908051806110ef575b5050610ef6426118e4565b5f54909490610f0f90610aa0906001600160a01b031681565b93604051956327f843b560e11b875260209687816004818a5afa80156102e757610f4392610adb925f926110d75750610a46565b65ffffffffffff82169081109081156110c0575b811561108f575b50611083578560049560405196878092630ce9b79360e41b82525afa9485156102e757610fb09587915f91611066575b50845190604051808099819463e02f693760e01b8352878b8a60048601610e87565b03916001600160a01b03165afa9384156102e757611022955f95611025575b5092611017859361101d9361101796869a61100e61039383610ff9875f52600260205260405f2090565b9060018060a01b03165f5260205260405f2090565b95015192610db3565b90610ecc565b611109565b91565b61101d929550611017949193611053611017928a3d8c1161105f575b61104b81836107dd565b810190610e78565b96935093919450610fcf565b503d611041565b61107d9150823d84116102e0576102d181836107dd565b5f610f8e565b5050505050505f905f90565b90506110b9610adb6110ad87610ff9875f52600160205260405f2090565b5465ffffffffffff1690565b115f610f5e565b90506110ce610adb426118e4565b81101590610f57565b610c3f9192508a3d8c11610c4657610c3781836107dd565b6111029250602080918301019101610e0d565b5f80610eeb565b9080821015611116575090565b905090565b919091805f52600160205265ffffffffffff8061114b8560405f209060018060a01b03165f5260205260405f2090565b54169083161161115a57505050565b61080b92611182915f52600160205260405f209060018060a01b03165f5260205260405f2090565b9065ffffffffffff1665ffffffffffff19825416179055565b9060018201809211610a5e57565b9190825f5260026020526112016103936111d68360405f209060018060a01b03165f5260205260405f2090565b926111e0426118e4565b955f52600260205260405f209060018060a01b03165f5260205260405f2090565b918201809211610a5e5760018101908154156112a5575b61122181611b40565b509490835495611230846115c8565b5081611290575b501561126f5750505f198301928311610a5e5761080b926112579161159f565b90919082549060031b91821b915f19901b1916179055565b61080b94611289926001600160d01b039091169190611c17565b5050611943565b65ffffffffffff83811691161490505f611237565b6112ae82611916565b611218565b606060206108c4938184526001600160401b038151168285015201519160408082015201906103a0565b919360a0936108c4969565ffffffffffff938552600180871b03166020850152604084015216606082015281608082015201906103a0565b92939060046020611332610aa0610aa05f5460018060a01b031690565b604051630ce9b79360e41b815292839182905afa9081156102e75761075b916113b0915f916113ff575b506001600160a01b03169361136f6107fe565b6001600160401b037f0000000000000000000000000000000000000000000000000000000000000000168152906020820152604051928391602083016112b3565b823b1561013a575f946113db86926040519889978896879563724ab0f760e11b8752600487016112dd565b03925af180156102e7576113ec5750565b806113f961080b926107ca565b806102fe565b611418915060203d6020116102e0576102d181836107dd565b5f61135c565b5f8054604051631c9e38c760e21b8152600481019390935265ffffffffffff9390931660248301529091602091839160449183916001600160a01b03165af180156102e75761146a5750565b6114829060203d60201161105f5761104b81836107dd565b50565b811561148f570490565b634e487b7160e01b5f52601260045260245ffd5b92905f549060ff8260a01c166114bb575b5050505050565b6040516313c085b760e11b815291602090839060049082906001600160a01b03165afa9182156102e7575f92611578575b5060405163065c1e0360e01b6020820190815260248201969096526001600160a01b039091166044820152606481019390935265ffffffffffff90911660848301526115458260a481015b03601f1981018452836107dd565b6202a15c5a10611566575f928380935192620249f0f1505f808080806114b4565b604051632153f33560e21b8152600490fd5b61154592506115986115379160203d6020116102e0576102d181836107dd565b92506114ec565b80548210156115b4575f5260205f2001905f90565b634e487b7160e01b5f52603260045260245ffd5b8054806115fd57505f5b6001600160d01b038116156115f75760016115ed920161159f565b90549060031b1c90565b50505f90565b5f19908082810111610a5e57825f5260205f2001015460301c6115d2565b91909160408184031261013a57803561163381610129565b9260208201356001600160401b03811161013a576108c49201610835565b5190811515820361013a57565b9081602091031261013a576108c490611651565b61167e9181019061161b565b6040516302910f8b60e31b81526001600160a01b0392831660048201819052929160209182816024817f000000000000000000000000000000000000000000000000000000000000000088165afa9081156102e7575f916117ae575b501561179c578161170e6004926116ef611966565b5f80546001600160a01b0319166001600160a01b03891617905561199c565b94604051928380926313c085b760e11b82525afa9182156102e7575f9261177f575b5050161580611775575b611763575161080b9015155f805460ff60a01b191691151560a01b60ff60a01b16919091179055565b60405163d2420f5960e01b8152600490fd5b508051151561173a565b6117959250803d106102e0576102d181836107dd565b5f80611730565b6040516362df054560e01b8152600490fd5b6117ce9150833d85116117d4575b6117c681836107dd565b81019061165e565b5f6116da565b503d6117bc565b9081602091031261013a575163ffffffff8116810361013a5790565b90600163ffffffff80931601918211610a5e57565b918051156118da5780602080611827935183010191016117db565b916118328382611ab4565b92611843845165ffffffffffff1690565b9065ffffffffffff80851692168281146118ce5782119182611879575b5050611870576108c492506119e4565b50506020015190565b9091506118868354610ebe565b63ffffffff83161491821561189f575b50505f80611860565b6118c69192506118ba6118b4610adb926117f7565b85611ab4565b5165ffffffffffff1690565b115f80611896565b50505050506020015190565b506108c4916119e4565b65ffffffffffff908181116118f7571690565b604490604051906306dfcc6560e41b8252603060048301526024820152fd5b8054600160401b8110156107aa576119339160018201815561159f565b8154905f199060031b1b19169055565b90815491600160401b8310156107aa578261125791600161080b9501815561159f565b61196e611b8f565b611976611b8f565b60017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055565b5f6040516119a98161078f565b5260208180518101031261013a576020906040516119c68161078f565b6119de6040519384936119d88561078f565b01611651565b82525290565b908154905f829160058411611a4e575b6119ff935084611e74565b80611a2757505f905b6001600160d01b038216156115f7576108c49160016115ed920161159f565b611a41611a36611a4892610ebe565b835f5260205f200190565b5460301c90565b90611a08565b9192611a5981611d36565b8103908111610a5e576119ff93855f5265ffffffffffff808360205f20015416908516105f14611a8a5750916119f4565b929150611a969061119b565b906119f4565b60405190611aa9826107af565b5f6020838281520152565b90611add611ad7611afe92611ac7611a9c565b50611ad0611a9c565b508461159f565b50611b1c565b91600165ffffffffffff845116936020828060d01b0391015116910161159f565b90549060405192611b0e846107af565b835260031b1c602082015290565b90604051611b29816107af565b915465ffffffffffff8116835260301c6020830152565b805480611b515750505f905f905f90565b5f19908082810111610a5e57611b6e925f5260205f200101611b1c565b9065ffffffffffff82511691602060018060d01b0391015116906001929190565b60ff5f80516020611ed48339815191525460401c1615611bab57565b604051631afcd79f60e31b8152600490fd5b8054600160401b8110156107aa57611bda9160018201815561159f565b611c0457815160209092015160301b65ffffffffffff191665ffffffffffff909216919091179055565b634e487b7160e01b5f525f60045260245ffd5b805492939291908215611d0d57611c38611c33611a3685610ebe565b611b1c565b90611c49825165ffffffffffff1690565b65ffffffffffff84811691168110611cfb57611cbf946020948892611c77610adb875165ffffffffffff1690565b03611cc35750611cb192611c8d611c9892610ebe565b905f5260205f200190565b9065ffffffffffff82549181199060301b169116179055565b01516001600160d01b031690565b9190565b915050611cf691611ce3611cd56107fe565b65ffffffffffff9093168352565b6001600160d01b03881682860152611bbd565b611cb1565b604051632520601d60e01b8152600490fd5b611d319250611d1d611cd56107fe565b6001600160d01b0385166020830152611bbd565b5f9190565b8015611e6f5780611e08611e01611df7611ded611de3611dd9611dcf611dc560016108c49a5f908b60801c80611e63575b508060401c80611e56575b508060201c80611e49575b508060101c80611e3c575b508060081c80611e2f575b508060041c80611e22575b508060021c80611e15575b50821c611e0e575b811c1b611dbe818b611485565b0160011c90565b611dbe818a611485565b611dbe8189611485565b611dbe8188611485565b611dbe8187611485565b611dbe8186611485565b611dbe8185611485565b8092611485565b90611109565b8101611db1565b600291509101905f611da9565b600491509101905f611d9e565b600891509101905f611d93565b601091509101905f611d88565b602091509101905f611d7d565b604091509101905f611d72565b9150506080905f611d67565b505f90565b91905b838210611e845750505090565b9091928083169080841860011c8201809211610a5e57845f5265ffffffffffff808360205f20015416908416105f14611ec15750925b9190611e77565b939250611ecd9061119b565b91611eba56fef0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a2646970667358221220bead91c521e34513050434cea50d07f95784d3ccc2f6242d53243cdc1dd2f24e64736f6c634300081900336101603461017c576001600160401b0390601f61377c38819003918201601f1916830191848311848410176101805780849260209460405283398101031261017c5751906001600160a01b038216820361017c57306080527ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a009081549060ff8260401c1661016a578080831603610125575b835f60a0525f60c0525f60e052610100905f8252610120905f8252610140908152604051916135e79384610195853960805184610b66015260a0518461047b015260c0518481816115860152612c5a015260e0518481816102e801526122ba0152518381816104370152612444015251828181610c7801526115dc015251818181610806015281816119140152611d090152f35b6001600160401b031990911681179091556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a15f8080610091565b60405163f92ee8a960e01b8152600490fd5b5f80fd5b634e487b7160e01b5f52604160045260245ffdfe60806040526004361015610011575f80fd5b5f3560e01c80622a087514610213578063103f29071461020e5780631a2be2c4146102095780631dd5f60014610204578063267de1f3146101ff5780632964f8dc146101fa5780632c9d45b3146101f55780632dd31000146101f057806331ce4dfe146101eb57806334d098ea146101e6578063439fab91146101e1578063457821b7146101dc5780635264679b146101d7578063545ce389146101d257806369f78920146101cd5780638f42f9ab146101c85780638f82f931146101c35780639168f9d2146101be5780639a896551146101b95780639f86fd85146101b4578063a4ef9b4f146101af578063aa8e6489146101aa578063aab3595f146101a5578063b94c386e146101a0578063bb24fe8a1461019b578063bc6eac5b14610196578063c0cd7c3e14610191578063cd05b8a11461018c578063d5c24e1a14610187578063e054e08b14610182578063f9268d181461017d5763fbfa77cf14610178575f80fd5b611813565b6116a5565b611680565b611663565b61160b565b6115c7565b6115aa565b611567565b61121b565b6111c3565b611185565b611122565b61108e565b611003565b610bd8565b610b47565b610b2a565b610ae5565b61084f565b610835565b6107f1565b6106b9565b610668565b6105ff565b610466565b610422565b610406565b6103b1565b610397565b610317565b6102d3565b610261565b6001600160a01b0381160361022957565b5f80fd5b65ffffffffffff81160361022957565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b346102295760c0366003190112610229576102c56102b160043561028481610218565b61028f602435610218565b60643561029b81610218565b60a435916102a88361022d565b604435906118c9565b60405191829160208352602083019061023d565b0390f35b5f91031261022957565b34610229575f366003190112610229576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461022957604036600319011261022957602061036361035e60243561033c81610218565b6004355f526002845260405f209060018060a01b03165f5260205260405f2090565b6120d2565b604051908152f35b60609060031901126102295760043561038381610218565b90602435906044356103948161022d565b90565b34610229576102c56102b16103ab3661036b565b916119a0565b3461022957604036600319011261022957602065ffffffffffff6103fc6024356103da81610218565b6004355f526001845260405f209060018060a01b03165f5260205260405f2090565b5416604051908152f35b34610229575f366003190112610229576020604051614e208152f35b34610229575f366003190112610229576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b34610229575f366003190112610229576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b634e487b7160e01b5f52604160045260245ffd5b602081019081106001600160401b038211176104d957604052565b6104aa565b604081019081106001600160401b038211176104d957604052565b606081019081106001600160401b038211176104d957604052565b6001600160401b0381116104d957604052565b608081019081106001600160401b038211176104d957604052565b90601f801991011681019081106001600160401b038211176104d957604052565b6040519060c082018281106001600160401b038211176104d957604052565b6040519061058f826104f9565b565b6040519061058f826104de565b6001600160401b0381116104d957601f01601f191660200190565b81601f82011215610229578035906105d08261059e565b926105de6040519485610542565b8284526020838301011161022957815f926020809301838601378301015290565b346102295760603660031901126102295760243561061c8161022d565b604435906001600160401b0382116102295761065f61064160209336906004016105b9565b6004355f90815260068552604090206001600160a01b03939061214a565b16604051908152f35b34610229575f36600319011261022957602060ff5f5460a01c166040519015158152f35b9181601f84011215610229578235916001600160401b038311610229576020838186019501011161022957565b34610229576020366003190112610229576001600160401b03600435818111610229576106ea90369060040161068c565b5f80516020613592833981519152549260ff8460401c16159316801590816107e9575b60011490816107df575b1590816107d6575b506107c4575f80516020613592833981519152805467ffffffffffffffff1916600117905561075291836107a057612283565b61075857005b5f80516020613592833981519152805460ff60401b19169055604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a1005b5f80516020613592833981519152805460ff60401b1916600160401b179055612283565b60405163f92ee8a960e01b8152600490fd5b9050155f61071f565b303b159150610717565b84915061070d565b34610229575f366003190112610229576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b34610229576102c56102b16108493661036b565b91611a24565b346102295760a0366003190112610229576004602435813561087082610218565b6064359161087d8361022d565b6084356001600160401b0381116102295761089b903690860161068c565b93906108a56123ed565b6108ae8461241c565b6108b6611ab6565b9480610acf575b50506108c8426125ff565b6108e26108db875465ffffffffffff1690565b8092611b17565b5f54909590610907906108fb906001600160a01b031681565b6001600160a01b031690565b958760206040988951928380926327f843b560e11b82525afa8015610aca576109469261093b925f92610a99575b50611a0c565b65ffffffffffff1690565b65ffffffffffff8416908110908115610a83575b50610a735761096f61097891518486886127da565b506044356124b3565b958615610a65576102c5610a3e878988887f3cb7f4ff6cecf74cee0eb9ae3ebf8933fa60a53014cce52f96da72a78dba8464896109bd8a6109b8426125ff565b611b17565b92600354978894610a0e6109cf610563565b8881526001600160a01b0385166020820152808b018a905265ffffffffffff8616606082015265ffffffffffff831660808201525f60a0820152611b59565b885197885265ffffffffffff938416602089015290921660408701526001600160a01b0316949081906060820190565b0390a4610a5760015f8051602061357283398151915255565b519081529081906020820190565b855163167f871760e31b8152fd5b8551631357ac9160e11b81528790fd5b9050610a9161093b426125ff565b11155f61095a565b610abc91925060203d602011610ac3575b610ab48183610542565b810190611b31565b905f610935565b503d610aaa565b6118a5565b610add929550810190611ac9565b925f806108bd565b34610229576080366003190112610229576102c56102b1600435610b0881610218565b604435610b1481610218565b60643591610b218361022d565b60243590611c8f565b34610229575f366003190112610229576020600354604051908152f35b3461022957604036600319011261022957602435610b648161022d565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163303610bc65763ffffffff610bb16040926004355f526006602052835f206124e9565b91505083929192519215158352166020820152f35b604051637ca475e560e11b8152600490fd5b346102295760603660031901126102295760048035906bffffffffffffffffffffffff8216820361022957602435610c0f81610218565b6044356001600160401b03811161022957610c2d903690840161068c565b90610c366123ed565b610c3e611ab6565b5081610f9e575b5050604080516302910f8b60e31b8152338185019081526001600160a01b0395929491602091829082908190830103818a7f0000000000000000000000000000000000000000000000000000000000000000165afa908115610aca575f91610f71575b5015610f62575f54610ce3906001600160a01b0316936bffffffffffffffffffffffff166bffffffffffffffffffffffff193360601b161790565b95610cfe610cf9885f52600660205260405f2090565b61323a565b50949015610ef857610d1261093b426125ff565b65ffffffffffff9586161115610ec257610d3c610d37895f52600660205260405f2090565b6125c0565b505b610d616108fb6108fb6108fb610d5c8c5f52600660205260405f2090565b612e78565b91808716928303610dcd575b505050505050610db2907f7b0b759b513b299fd2811f51926dca8854222a675557e8d544ce0933bf5b7570925b516001600160a01b0390911681529081906020820190565b0390a2610dcb60015f8051602061357283398151915255565b005b610de48998959796985f52600660205260405f2090565b911692845163186a323160e21b815281818981885afa908115610aca575f91610ea5575b5081600554958751998a80926327f843b560e11b82525afa908115610aca5789610e6d610e7f977f7b0b759b513b299fd2811f51926dca8854222a675557e8d544ce0933bf5b75709c610e7495610db29d610e79985f92610e88575b50501690611dde565b9116611dff565b6125ff565b90613447565b82958495610d6d565b610e9e9250803d10610ac357610ab48183610542565b5f80610e64565b610ebc9150823d8411610ac357610ab48183610542565b5f610e08565b610ee06108fb6108fb6108fb610d5c8c5f52600660205260405f2090565b82871603610d3e57865163a741a04560e01b81528490fd5b5093949385169250508115610f54575091610db291610f4d7f7b0b759b513b299fd2811f51926dca8854222a675557e8d544ce0933bf5b757094610f44875f52600660205260405f2090565b610e79426125ff565b5050610d9a565b825163a741a04560e01b8152fd5b5083516323d53b9760e21b8152fd5b610f919150823d8411610f97575b610f898183610542565b810190611dca565b5f610ca8565b503d610f7f565b610faa91810190611ac9565b505f80610c45565b634e487b7160e01b5f52603260045260245ffd5b600354811015610ffe5760035f5260021b7fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b01905f90565b610fb2565b34610229576020366003190112610229576004356003548110156102295761102a90610fc6565b50805460018201546002830154600390930154604080519384526001600160a01b0390921660208401529082019290925265ffffffffffff808316606080840191909152603084901c90911660808301529190911c60ff16151560a082015260c090f35b34610229576040366003190112610229576004356110ab81610218565b6024356001600160401b038111610229575f916110cd8392369060040161068c565b90816040519283928337810184815203915af461111a6110eb611e0c565b9161110c60405193849215156020840152604080840152606083019061023d565b03601f198101835282610542565b805190602001fd5b34610229576102c56102b16111363661036b565b91611e6d565b906080600319830112610229576004359160243561115981610218565b916044356111668161022d565b91606435906001600160401b03821161022957610394916004016105b9565b346102295760206103636111be61119b3661113c565b939190925f526002865260405f209060018060a01b03165f5260205260405f2090565b612665565b346102295760206111df6111d63661113c565b929190916127da565b50604051908152f35b9060406003198301126102295760043591602435906001600160401b038211610229576112179160040161068c565b9091565b3461022957611229366111e8565b91906112336123ed565b61123b611f92565b9280611551575b505060035481101561153f5761125781610fc6565b50908154906112658261241c565b6003830180549365ffffffffffff9384861660018060a01b0361128a895183856119b7565b16151580611514575b806114fb575b6114e9576112af816112aa426125ff565b611a0c565b5f546112c5906108fb906001600160a01b031681565b96600460206040998a51928380926327f843b560e11b82525afa8015610aca5782915f916114ca575b50169116116114b957600183018054909861131993929188906001600160a01b0316910151926127da565b906113288160028501546124b3565b9687156114a85760601c60ff166114975792611450611443899461141b6114088b9687876102c59f6114168f9d8f9e6114569f61137286600160601b60ff60601b19825416179055565b8a54855461139491906001600160a01b0316885465ffffffffffff1691612a0a565b8a5485546113ad9189916001600160a01b031690612a8a565b8a5494546113cb906001600160a01b0316965465ffffffffffff1690565b976113d4610582565b9384526020840152818301525196879160208301919091604080606083019480518452602081015160208501520151910152565b03601f198101875286610542565b612bf6565b61143461142e855465ffffffffffff1690565b86612cff565b5494546001600160a01b031690565b915465ffffffffffff1690565b92612d7c565b81518381527f5cc28df3b54da9d06f805d87616ebf969c81310f2aa8369cb14ca50f815d411190602090a2610a5760015f8051602061357283398151915255565b8551633428e90760e01b8152600490fd5b865163167f871760e31b8152600490fd5b8551639ea153eb60e01b8152600490fd5b6114e3915060203d602011610ac357610ab48183610542565b5f6112ee565b60405163b62b15c760e01b8152600490fd5b5061150861093b426125ff565b868860301c1611611299565b506115386108fb61152c611527426125ff565b6119f0565b60208b015190856119b7565b1515611293565b604051637822972360e11b8152600490fd5b61155f929350810190611fb1565b905f80611242565b34610229575f3660031901126102295760206040516001600160401b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b34610229575f366003190112610229576020600554604051908152f35b34610229575f366003190112610229576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b34610229576040366003190112610229576024356001600160401b0381116102295761165161164060209236906004016105b9565b611649426125ff565b6004356119b7565b6040516001600160a01b039091168152f35b34610229575f366003190112610229576020604051620249f08152f35b34610229575f36600319011261022957602065ffffffffffff60045416604051908152f35b34610229576116b3366111e8565b906116bc6123ed565b6116c4612039565b91806117ff575b505060035482101561153f576116e082610fc6565b506003815491019182549165ffffffffffff9160018060a01b036117088251858716856119b7565b169182159182156117d6575b50506117c45733036117b25761172c61093b426125ff565b908260301c1611156117a15760601c60ff1661178f57805460ff60601b1916600160601b17905533907f7d3d269c851b72257a5194a401d151902e9be4347d555996dcff3ff86a077e925f80a3610dcb60015f8051602061357283398151915255565b604051633428e90760e01b8152600490fd5b60405162c457e560e81b8152600490fd5b604051635d154fe160e11b8152600490fd5b60405163dd1ebd9d60e01b8152600490fd5b6117f79250906108fb9160206117ee611527426125ff565b910151916119b7565b155f80611714565b61180c9250810190612052565b5f806116cb565b34610229575f366003190112610229575f546040516001600160a01b039091168152602090f35b81601f82011215610229578051906118518261059e565b9261185f6040519485610542565b8284526020838301011161022957815f9260208093018386015e8301015290565b906020828203126102295781516001600160401b03811161022957610394920161183a565b6040513d5f823e3d90fd5b604061039492602083525191602080820152019061023d565b604051632751749360e11b81526001600160a01b0391821660048201526024810192909252909116604482015265ffffffffffff9091166064820152606091905f81806084810103817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa908115610aca575f9161197e575b5080516119565750565b61110c919250610394906040519061196d826104be565b8152604051928391602083016118b0565b61199a91503d805f833e6119928183610542565b810190611880565b5f61194c565b92916119ae91606094611e6d565b80516119565750565b5f9081526006602052604090206001600160a01b03926119d892909161214a565b1690565b634e487b7160e01b5f52601160045260245ffd5b65ffffffffffff9081165f190191908211611a0757565b6119dc565b65ffffffffffff9182169082160391908211611a0757565b611a4590939293611a386060958483611e6d565b92611136611527426125ff565b815115801590611aac575b611a58575050565b611a999293509061110c6103949260405192611a73846104de565b83526020830190815260405194859360208086015251604080860152608085019061023d565b9051838203603f1901606085015261023d565b5080511515611a50565b60405190611ac3826104be565b60608252565b906020828203126102295781356001600160401b03928382116102295701906020828203126102295760405192611aff846104be565b823590811161022957611b1292016105b9565b815290565b91909165ffffffffffff80809416911601918211611a0757565b9081602091031261022957516103948161022d565b634e487b7160e01b5f525f60045260245ffd5b600354600160401b8110156104d957806001611b789201600355610fc6565b919091611c3b578051825560208101516001830180546001600160a01b0319166001600160a01b039290921691909117905561058f91611c219060a090600390604085015160028201550192611bee65ffffffffffff606083015116859065ffffffffffff1665ffffffffffff19825416179055565b60808101516bffffffffffff00000000000085549160301b16906bffffffffffff00000000000019161784550151151590565b815460ff60601b191690151560601b60ff60601b16179055565b611b46565b906103949160208152611c5f825160606020840152608083019061023d565b9060606040611c7f602086015194601f199586868303018487015261023d565b940151928285030191015261023d565b919093925f606095611ca2838287611e6d565b94611d05611cbc611cb5611527426125ff565b8484611e6d565b604051632751749360e11b81526001600160a01b039384166004820152602481019490945291909516604483015265ffffffffffff909316606482015292839081906084820190565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa918215610aca575f92611da1575b50825115801590611d97575b8015611d8d575b611d5d57505050565b61110c939450906103949291611d71610582565b9283526020830152604082015260405192839160208301611c40565b5081511515611d54565b5080511515611d4d565b611db69192503d805f833e6119928183610542565b905f611d41565b5190811515820361022957565b908160209103126102295761039490611dbd565b81810292918115918404141715611a0757565b9060018201809211611a0757565b91908201809211611a0757565b3d15611e36573d90611e1d8261059e565b91611e2b6040519384610542565b82523d5f602084013e565b606090565b519063ffffffff8216820361022957565b9190826040910312610229576103946020611e6684611dbd565b9301611e3b565b92915f8060609565ffffffffffff60405194602096638f82f93160e01b88880152602487015216604485015260448452611ea684610527565b6040519384611ed387820192639f86fd8560e01b845230602484015260406044840152606483019061023d565b0394611ee7601f1996878101835282610542565b51915afa50611f05611ef7611e0c565b838082518301019101612631565b9015611f5857808380611f1d93518301019101611e4c565b9290611f2857505050565b61039492939450611f4c604051948592830191909163ffffffff6020820193169052565b03908101835282610542565b809150519182156102295701fd5b5f9081526002602090815260408083206001600160a01b03909416835292905220610394929190612665565b60405190611f9f826104f9565b60606040838281528260208201520152565b906020828203126102295781356001600160401b03928382116102295701906060828203126102295760405192611fe7846104f9565b82358181116102295782611ffc9185016105b9565b8452602083013581811161022957826120169185016105b9565b602085015260408301359081116102295761203192016105b9565b604082015290565b60405190612046826104de565b60606020838281520152565b906020828203126102295781356001600160401b03928382116102295701906040828203126102295760405192612088846104de565b8235818111610229578261209d9185016105b9565b84526020830135908111610229576120b592016105b9565b602082015290565b8054821015610ffe575f5260205f2001905f90565b6120db81612e78565b6001600160d01b038116156121005760016120f692016120bd565b90549060031b1c90565b50505f90565b908160209103126102295761039490611e3b565b5f19810191908211611a0757565b91908203918211611a0757565b90600163ffffffff80931601918211611a0757565b9180511561222e578060208061216593518301019101612106565b916121708382612eb8565b92612181845165ffffffffffff1690565b9065ffffffffffff808516921682811461221557821191826121c0575b50506121ae576103949250613346565b5050602001516001600160d01b031690565b9091506121cd835461211a565b63ffffffff8316149182156121e6575b50505f8061219e565b61220d9192506122016121fb61093b92612135565b85612eb8565b5165ffffffffffff1690565b115f806121dd565b50505050602091909101516001600160d01b0316905090565b5061039491613346565b91909160408184031261022957803561225081610218565b9260208201356001600160401b0381116102295761039492016105b9565b90816020910312610229575161039481610218565b61228f91810190612238565b6040516302910f8b60e31b81526001600160a01b0392831660048201819052929160209182816024817f000000000000000000000000000000000000000000000000000000000000000088165afa908115610aca575f916123d0575b50156123be5781612320600492612300612f0c565b5f80546001600160a01b0319166001600160a01b03891617905586612f99565b94604051928380926313c085b760e11b82525afa918215610aca575f92612391575b5050161580612387575b612375575161058f9015155f805460ff60a01b191691151560a01b60ff60a01b16919091179055565b60405163d2420f5960e01b8152600490fd5b508051151561234c565b6123b09250803d106123b7575b6123a88183610542565b81019061226e565b5f80612342565b503d61239e565b6040516362df054560e01b8152600490fd5b6123e79150833d8511610f9757610f898183610542565b5f6122eb565b5f80516020613572833981519152600281541461240a5760029055565b604051633ee5aeb560e01b8152600490fd5b604051635daf681960e11b815260609190911c60048201526001600160a01b036020826024817f000000000000000000000000000000000000000000000000000000000000000085165afa918215610aca575f92612492575b503391160361248057565b60405163227bf64d60e01b8152600490fd5b6124ac91925060203d6020116123b7576123a88183610542565b905f612475565b90808210156124c0575090565b905090565b906040516124d2816104de565b915465ffffffffffff8116835260301c6020830152565b908154905f829160058411612572575b6125049350846131d8565b90811561256657612525906125188361211a565b905f5260205f20016124c5565b9161255f6125566125506020612541875165ffffffffffff1690565b9601516001600160d01b031690565b9361211a565b63ffffffff1690565b6001939291565b50505f905f905f905f90565b919261257d8161309a565b8103908111611a075761250493855f5265ffffffffffff808360205f20015416908516105f146125ae5750916124f9565b9291506125ba90611df1565b906124f9565b906125ca82612e78565b91805480156125eb575f1901906125e182826120bd565b611c3b575f905555565b634e487b7160e01b5f52603160045260245ffd5b65ffffffffffff90818111612612571690565b604490604051906306dfcc6560e41b8252603060048301526024820152fd5b9190916040818403126102295761264781611dbd565b9260208201516001600160401b03811161022957610394920161183a565b91805115612727578060208061268093518301019101612106565b9161268b8382613294565b9261269c845165ffffffffffff1690565b9065ffffffffffff808516921682811461271b57821191826126d2575b50506126c9576103949250613289565b50506020015190565b9091506126df835461211a565b63ffffffff8316149182156126f8575b50505f806126b9565b61271391925061220161270d61093b92612135565b85613294565b115f806126ef565b50505050506020015190565b5061039491613289565b906020828203126102295781516001600160401b03928382116102295701906040828203126102295760405192612767846104de565b8251818111610229578261277c91850161183a565b84526020830151908111610229576120b5920161183a565b90816020910312610229575190565b9081526001600160a01b03909116602082015265ffffffffffff90911660408201526080606082018190526103949291019061023d565b926127e3612039565b908051806129f0575b50506127f7426125ff565b5f54909490612810906108fb906001600160a01b031681565b93604051956327f843b560e11b875260209687816004818a5afa8015610aca576128449261093b925f926129d85750611a0c565b65ffffffffffff82169081109081156129c1575b8115612990575b50612984578560049560405196878092630ce9b79360e41b82525afa948515610aca576128b19587915f91612967575b50845190604051808099819463e02f693760e01b8352878b8a600486016127a3565b03916001600160a01b03165afa938415610aca57612923955f95612926575b5092612918859361291e9361291896869a61290f61035e836128fa875f52600260205260405f2090565b9060018060a01b03165f5260205260405f2090565b95015192611f66565b90612128565b6124b3565b91565b61291e929550612918949193612954612918928a3d8c11612960575b61294c8183610542565b810190612794565b969350939194506128d0565b503d612942565b61297e9150823d84116123b7576123a88183610542565b5f61288f565b5050505050505f905f90565b90506129ba61093b6129ae876128fa875f52600160205260405f2090565b5465ffffffffffff1690565b115f61285f565b90506129cf61093b426125ff565b81101590612858565b610abc9192508a3d8c11610ac357610ab48183610542565b612a039250602080918301019101612731565b5f806127ec565b919091805f52600160205265ffffffffffff80612a3a8560405f209060018060a01b03165f5260205260405f2090565b541690831611612a4957505050565b61058f92612a71915f52600160205260405f209060018060a01b03165f5260205260405f2090565b9065ffffffffffff1665ffffffffffff19825416179055565b9190825f526002602052612ae261035e612ab78360405f209060018060a01b03165f5260205260405f2090565b92612ac1426125ff565b955f52600260205260405f209060018060a01b03165f5260205260405f2090565b918201809211611a07576001810190815415612b86575b612b028161323a565b509490835495612b11846120d2565b5081612b71575b5015612b505750505f198301928311611a075761058f92612b38916120bd565b90919082549060031b91821b915f19901b1916179055565b61058f94612b6a926001600160d01b039091169190613447565b5050613323565b65ffffffffffff83811691161490505f612b18565b612b8f826132f6565b612af9565b60606020610394938184526001600160401b0381511682850152015191604080820152019061023d565b919360a093610394969565ffffffffffff938552600180871b031660208501526040840152166060820152816080820152019061023d565b92939060046020612c136108fb6108fb5f5460018060a01b031690565b604051630ce9b79360e41b815292839182905afa908115610aca5761110c91612c91915f91612ce0575b506001600160a01b031693612c50610591565b6001600160401b037f000000000000000000000000000000000000000000000000000000000000000016815290602082015260405192839160208301612b94565b823b15610229575f94612cbc86926040519889978896879563724ab0f760e11b875260048701612bbe565b03925af18015610aca57612ccd5750565b80612cda61058f92610514565b806102c9565b612cf9915060203d6020116123b7576123a88183610542565b5f612c3d565b65ffffffffffff9160446020925f60018060a01b038154166040519687958694631c9e38c760e21b865260048601521660248401525af18015610aca57612d435750565b612d5b9060203d6020116129605761294c8183610542565b50565b8115612d68570490565b634e487b7160e01b5f52601260045260245ffd5b92905f549060ff8260a01c16612d94575b5050505050565b6040516313c085b760e11b815291602090839060049082906001600160a01b03165afa918215610aca575f92612e51575b5060405163065c1e0360e01b6020820190815260248201969096526001600160a01b039091166044820152606481019390935265ffffffffffff9091166084830152612e1e8260a481015b03601f198101845283610542565b6202a15c5a10612e3f575f928380935192620249f0f1505f80808080612d8d565b604051632153f33560e21b8152600490fd5b612e1e9250612e71612e109160203d6020116123b7576123a88183610542565b9250612dc5565b805480612e855750505f90565b5f19918183810111611a07575f5260205f2001015460301c90565b60405190612ead826104de565b5f6020838281520152565b612edd91612ed791612ec8612ea0565b50612ed1612ea0565b506120bd565b506124c5565b65ffffffffffff81511690602060018060d01b039101511660405191612f02836104de565b8252602082015290565b612f146133d2565b612f1c6133d2565b60015f8051602061357283398151915255565b60405190612f3c826104be565b5f8252565b809103906060821261022957602060405192612f5c846104f9565b12610229576040908151612f6f816104be565b612f7882611dbd565b815283526020810151612f8a8161022d565b60208401520151604082015290565b90600490612fa5612f2f565b508051612fbc602092838080948301019101612f41565b6040516327f843b560e11b815290949093849182906001600160a01b03165afa918215610aca575f9261307b575b50820190612ffe825165ffffffffffff1690565b65ffffffffffff91821691161015613069576040820160038151106130575761304d613033613053935165ffffffffffff1690565b65ffffffffffff1665ffffffffffff196004541617600455565b51600555565b5190565b6040516354f778f360e01b8152600490fd5b6040516367d5e3df60e11b8152600490fd5b816130939293503d8411610ac357610ab48183610542565b905f612fea565b80156131d3578061316c61316561315b61315161314761313d61313361312960016103949a5f908b60801c806131c7575b508060401c806131ba575b508060201c806131ad575b508060101c806131a0575b508060081c80613193575b508060041c80613186575b508060021c80613179575b50821c613172575b811c1b613122818b612d5e565b0160011c90565b613122818a612d5e565b6131228189612d5e565b6131228188612d5e565b6131228187612d5e565b6131228186612d5e565b6131228185612d5e565b8092612d5e565b906124b3565b8101613115565b600291509101905f61310d565b600491509101905f613102565b600891509101905f6130f7565b601091509101905f6130ec565b602091509101905f6130e1565b604091509101905f6130d6565b9150506080905f6130cb565b505f90565b91905b8382106131e85750505090565b909192808316906001818518811c8301809311611a0757855f5265ffffffffffff808460205f20015416908516105f14613227575050925b91906131db565b909493508101809111611a075791613220565b80548061324b5750505f905f905f90565b5f19908082810111611a0757613268925f5260205f2001016124c5565b9065ffffffffffff82511691602060018060d01b0391015116906001929190565b906120db9082613346565b906132b7612ed76132d8926132a7612ea0565b506132b0612ea0565b50846120bd565b91600165ffffffffffff845116936020828060d01b039101511691016120bd565b905490604051926132e8846104de565b835260031b1c602082015290565b8054600160401b8110156104d957613313916001820181556120bd565b8154905f199060031b1b19169055565b90815491600160401b8310156104d95782612b3891600161058f950181556120bd565b908154905f829160058411613384575b6133619350846131d8565b8061336c5750505f90565b6133759061211a565b905f5260205f20015460301c90565b919261338f8161309a565b8103908111611a075761336193855f5265ffffffffffff808360205f20015416908516105f146133c0575091613356565b9291506133cc90611df1565b90613356565b60ff5f805160206135928339815191525460401c16156133ee57565b604051631afcd79f60e31b8152600490fd5b8054600160401b8110156104d95761341d916001820181556120bd565b611c3b57815160209092015160301b65ffffffffffff191665ffffffffffff909216919091179055565b8054929392919082156135485761347361346e6134638561211a565b835f5260205f200190565b6124c5565b90613484825165ffffffffffff1690565b65ffffffffffff84811691168110613536576134fa9460209488926134b261093b875165ffffffffffff1690565b036134fe57506134ec926134c86134d39261211a565b905f5260205f200190565b9065ffffffffffff82549181199060301b169116179055565b01516001600160d01b031690565b9190565b9150506135319161351e613510610591565b65ffffffffffff9093168352565b6001600160d01b03881682860152613400565b6134ec565b604051632520601d60e01b8152600490fd5b61356c9250613558613510610591565b6001600160d01b0385166020830152613400565b5f919056fe9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a264697066735822122076922ea6e3ad8fc57d79a3decbb6a526695968650fb8ee8d88110f7794fd659264736f6c63430008190033","sourceMap":"624:2139:84:-:0;;;;;;;;;;;;;-1:-1:-1;;624:2139:84;;;;-1:-1:-1;;;;;624:2139:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;624:2139:84;;;;;;;;348:4:82;332:21;;8837:64:25;624:2139:84;;;;;;;7896:76:25;;624:2139:84;;;;;;7985:34:25;7981:146;;-1:-1:-1;525:17:69;;;-1:-1:-1;525:17:69;;-1:-1:-1;552:12:69;;-1:-1:-1;2353:28:92;;2391:53;;-1:-1:-1;2391:53:92;;987:41:84;;;;624:2139;;1062:31;;;;;;;;;;;;;;624:2139;1062:31;;;;;;348:4:82;624:2139:84;;1062:31;;;-1:-1:-1;1062:31:84;;;;;;1038:56;;624:2139;;1038:56;;624:2139;;1133:35;;;;;;;;;;;;;;;624:2139;1133:35;;;;;;348:4:82;624:2139:84;;1133:35;;;-1:-1:-1;1133:35:84;;;;;;1104:65;624:2139;;1104:65;;624:2139;;;;;;;;332:21:82;624:2139:84;;;;;525:17:69;624:2139:84;;;;;552:12:69;624:2139:84;;;;;2353:28:92;624:2139:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1133:35;624:2139;;;-1:-1:-1;624:2139:84;;;;;1133:35;624:2139;;;-1:-1:-1;624:2139:84;;;;;-1:-1:-1;624:2139:84;7981:146:25;-1:-1:-1;;;;;;624:2139:84;;;;;;;;;8087:29:25;;624:2139:84;;8087:29:25;7981:146;;;;;7896:76;624:2139:84;;-1:-1:-1;;;7938:23:25;;;;;624:2139:84;-1:-1:-1;624:2139:84;","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361015610011575f80fd5b5f3560e01c8063103f2907146101545780631a2be2c41461014f578063267de1f31461014a5780632964f8dc146101455780632c9d45b3146101405780632dd310001461013b57806334d098ea14610136578063439fab91146101315780634a7196551461012c5780634ea2e926146101275780634eb5a242146101225780636565b7db1461011d578063770280461461011857806379d89614146101135780639f86fd851461010e578063aa8e648914610109578063aab3595f14610104578063bb24fe8a146100ff578063d5c24e1a146100fa5763fbfa77cf146100f5575f80fd5b61094a565b61092d565b6108ea565b6108c5565b610887565b6106ca565b610686565b6105cf565b61058b565b610547565b61052a565b6104f5565b61034b565b6102fa565b6102b6565b610272565b610256565b610201565b6101ad565b34610198575f366003190112610198576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b5f80fd5b6001600160a01b0381160361019857565b346101985760403660031901126101985760206101f96101f46024356101d28161019c565b6004355f526002845260405f209060018060a01b03165f5260205260405f2090565b610daa565b604051908152f35b3461019857604036600319011261019857602065ffffffffffff61024c60243561022a8161019c565b6004355f526001845260405f209060018060a01b03165f5260205260405f2090565b5416604051908152f35b34610198575f366003190112610198576020604051614e208152f35b34610198575f366003190112610198576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b34610198575f366003190112610198576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b34610198575f36600319011261019857602060ff5f5460a01c166040519015158152f35b9181601f84011215610198578235916001600160401b038311610198576020838186019501011161019857565b34610198576020366003190112610198576001600160401b036004358181116101985761037c90369060040161031e565b5f805160206119bd833981519152549260ff8460401c1615931680159081610480575b6001149081610476575b15908161046d575b5061045b575f805160206119bd833981519152805467ffffffffffffffff191660011790556103e4918361043257610e4c565b6103ea57005b5f805160206119bd833981519152805460ff60401b19169055604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a1005b5f805160206119bd833981519152805460ff60401b191668010000000000000000179055610e4c565b60405163f92ee8a960e01b8152600490fd5b9050155f6103b1565b303b1591506103a9565b84915061039f565b65ffffffffffff81160361019857565b6080906003190112610198576004356104b08161019c565b90602435906044356104c18161019c565b906064356104ce81610488565b90565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b346101985761052661051261050936610498565b929190916109b0565b6040519182916020835260208301906104d1565b0390f35b346101985761052661051261053e36610498565b92919091610b7b565b34610198575f366003190112610198576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b34610198575f366003190112610198576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b34610198576060366003190112610198576024356105ec8161019c565b6044356105f881610488565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316330361067457610652610657926004355f52600260205260405f209060018060a01b03165f5260205260405f2090565b61104a565b60408051941515855263ffffffff91909116602085015292915050f35b604051637ca475e560e11b8152600490fd5b34610198575f366003190112610198576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b34610198576040366003190112610198576004356106e78161019c565b6024356001600160401b038111610198575f916107098392369060040161031e565b90816040519283928337810184815203915af4610756610727610d26565b916107486040519384921515602084015260408084015260608301906104d1565b03601f1981018352826107ad565b805190602001fd5b634e487b7160e01b5f52604160045260245ffd5b604081019081106001600160401b0382111761078d57604052565b61075e565b60a081019081106001600160401b0382111761078d57604052565b90601f801991011681019081106001600160401b0382111761078d57604052565b604051906107db82610772565b565b6001600160401b03811161078d57601f01601f191660200190565b81601f820112156101985780359061080f826107dd565b9261081d60405194856107ad565b8284526020838301011161019857815f926020809301838601378301015290565b906080600319830112610198576004359160243561085b8161019c565b9160443561086881610488565b91606435906001600160401b038211610198576104ce916004016107f8565b346101985760206101f96108c061089d3661083e565b939190925f526002865260405f209060018060a01b03165f5260205260405f2090565b611178565b346101985760206108e16108d83661083e565b92919091611347565b50604051908152f35b34610198575f3660031901126101985760206040516001600160401b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b34610198575f366003190112610198576020604051620249f08152f35b34610198575f366003190112610198575f546040516001600160a01b039091168152602090f35b5190811515820361019857565b519063ffffffff8216820361019857565b9190826040910312610198576104ce60206109a984610971565b930161097e565b5f809195949593929365ffffffffffff60609760405195602097633b81402360e11b89890152602488015260018060a01b03166044870152166064850152606484526109fb84610792565b6040519384610a2887820192639f86fd8560e01b84523060248401526040604484015260648301906104d1565b0394610a3c601f19968781018352826107ad565b51915afa50610a5a610a4c610d26565b838082518301019101610fb5565b9015610aad57808380610a729351830101910161098f565b9290610a7d57505050565b6104ce92939450610aa1604051948592830191909163ffffffff6020820193169052565b039081018352826107ad565b809150519182156101985701fd5b9081602091031261019857516104ce8161019c565b6040513d5f823e3d90fd5b81601f8201121561019857805190610af2826107dd565b92610b0060405194856107ad565b8284526020838301011161019857815f9260208093018386015e8301015290565b906020828203126101985781516001600160401b038111610198576104ce9201610adb565b906104ce91602081526020610b66835160408385015260608401906104d1565b920151906040601f19828503019101526104d1565b60405163fbfa77cf60e01b815260609594919391926020926001600160a01b03929091908481600481878b165afa908115610cd757849186915f91610d09575b50600460405180948193630ce9b79360e41b8352165afa8015610cd75786948385925f948591610cdc575b506040516304bb92e160e31b81526001600160a01b039182166004820152602481019290925292909216604483015265ffffffffffff97909716606482015295869060849082907f0000000000000000000000000000000000000000000000000000000000000000165afa948515610cd7575f95610caf575b50610c6b9394956109b0565b825115801590610ca5575b610c7f57505050565b6104ce92939450610c8e6107ce565b938452818401526107486040519384928301610b46565b5080511515610c76565b610c6b949550610cd0903d805f833e610cc881836107ad565b810190610b21565b9493610c5f565b610ad0565b610cfc9150893d8b11610d02575b610cf481836107ad565b810190610abb565b5f610be6565b503d610cea565b610d209150823d8411610d0257610cf481836107ad565b5f610bbb565b3d15610d50573d90610d37826107dd565b91610d4560405193846107ad565b82523d5f602084013e565b606090565b5f9081526002602090815260408083206001600160a01b039094168352929052206104ce929190611178565b8054821015610d96575f5260205f2001905f90565b634e487b7160e01b5f52603260045260245ffd5b805480610ddf57505f5b6001600160d01b03811615610dd9576001610dcf9201610d81565b90549060031b1c90565b50505f90565b5f19908082810111610dfd57825f5260205f2001015460301c610db4565b610fe9565b919091604081840312610198578035610e1a8161019c565b9260208201356001600160401b038111610198576104ce92016107f8565b90816020910312610198576104ce90610971565b610e5891810190610e02565b506040516302910f8b60e31b81526001600160a01b0391821660048201819052919060209081816024817f000000000000000000000000000000000000000000000000000000000000000087165afa908115610cd7575f91610f88575b5015610f7657610ec361159b565b5f80546001600160a01b0319166001600160a01b038516179055600481610ee86115d1565b94604051928380926313c085b760e11b82525afa918215610cd7575f92610f59575b5050161580610f4f575b610f3d57516107db9015155f805460ff60a01b191691151560a01b60ff60a01b16919091179055565b60405163d2420f5960e01b8152600490fd5b5080511515610f14565b610f6f9250803d10610d0257610cf481836107ad565b5f80610f0a565b6040516362df054560e01b8152600490fd5b610fa89150823d8411610fae575b610fa081836107ad565b810190610e38565b5f610eb5565b503d610f96565b91909160408184031261019857610fcb81610971565b9260208201516001600160401b038111610198576104ce9201610adb565b634e487b7160e01b5f52601160045260245ffd5b5f19810191908211610dfd57565b91908203918211610dfd57565b9060018201809211610dfd57565b9060405161103381610772565b915465ffffffffffff8116835260301c6020830152565b91908254905f8291600584116110e8575b61106693508561174f565b9081156110dc576110d56110cc6110c6610dcf61109861109361108888610ffd565b895f5260205f200190565b611026565b9660016110bf60206110b08b5165ffffffffffff1690565b9a01516001600160d01b031690565b9101610d81565b93610ffd565b63ffffffff1690565b6001939291565b5f925082915081908190565b91926110f381611611565b8103908111610dfd5761106693865f5261112761111c8360205f200165ffffffffffff90541690565b65ffffffffffff1690565b65ffffffffffff8516101561113d57509161105b565b92915061114990611018565b9061105b565b90816020910312610198576104ce9061097e565b90600163ffffffff80931601918211610dfd57565b9180511561124657806020806111939351830101910161114f565b9161119e8382611876565b926111af845165ffffffffffff1690565b9065ffffffffffff808516921682811461123a57821191826111e5575b50506111dc576104ce92506117a6565b50506020015190565b9091506111f28354610ffd565b63ffffffff83161491821561120b575b50505f806111cc565b61123291925061122661122061111c92611163565b85611876565b5165ffffffffffff1690565b115f80611202565b50505050506020015190565b506104ce916117a6565b6040519061125d82610772565b60606020838281520152565b906020828203126101985781516001600160401b0392838211610198570190604082820312610198576040519261129f84610772565b825181811161019857826112b4918501610adb565b84526020830151908111610198576112cc9201610adb565b602082015290565b9081602091031261019857516104ce81610488565b65ffffffffffff9182169082160391908211610dfd57565b90816020910312610198575190565b9081526001600160a01b03909116602082015265ffffffffffff90911660408201526080606082018190526104ce929101906104d1565b92611350611250565b90805180611581575b505061136442611933565b5f549094906113899061137d906001600160a01b031681565b6001600160a01b031690565b93604051956327f843b560e11b875260209687816004818a5afa8015610cd7576113be9261111c925f92611552575b506112e9565b65ffffffffffff821690811090811561153b575b811561150a575b506114fe578560049560405196878092630ce9b79360e41b82525afa948515610cd75761142b9587915f916114e1575b50845190604051808099819463e02f693760e01b8352878b8a60048601611310565b03916001600160a01b03165afa938415610cd75761149d955f956114a0575b509261149285936114989361149296869a6114896101f483611474875f52600260205260405f2090565b9060018060a01b03165f5260205260405f2090565b95015192610d55565b9061100b565b6118de565b91565b6114989295506114929491936114ce611492928a3d8c116114da575b6114c681836107ad565b810190611301565b9693509391945061144a565b503d6114bc565b6114f89150823d8411610d0257610cf481836107ad565b5f611409565b5050505050505f905f90565b905061153461111c61152887611474875f52600160205260405f2090565b5465ffffffffffff1690565b115f6113d9565b905061154961111c42611933565b811015906113d2565b6115739192508a3d8c1161157a575b61156b81836107ad565b8101906112d4565b905f6113b8565b503d611561565b6115949250602080918301019101611269565b5f80611359565b6115a36118f0565b6115ab6118f0565b60017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055565b60405190602082018281106001600160401b0382111761078d576040525f8252565b81156115fd570490565b634e487b7160e01b5f52601260045260245ffd5b801561174a57806116e36116dc6116d26116c86116be6116b46116aa6116a060016104ce9a5f908b60801c8061173e575b508060401c80611731575b508060201c80611724575b508060101c80611717575b508060081c8061170a575b508060041c806116fd575b508060021c806116f0575b50821c6116e9575b811c1b611699818b6115f3565b0160011c90565b611699818a6115f3565b61169981896115f3565b61169981886115f3565b61169981876115f3565b61169981866115f3565b61169981856115f3565b80926115f3565b906118de565b810161168c565b600291509101905f611684565b600491509101905f611679565b600891509101905f61166e565b601091509101905f611663565b602091509101905f611658565b604091509101905f61164d565b9150506080905f611642565b505f90565b905b83831061175e5750505090565b90919261176b818561191e565b90835f5265ffffffffffff808360205f20015416908416105f146117935750925b9190611751565b9350600181018091111561178c57610fe9565b908154905f829160058411611810575b6117c1935084611965565b806117e957505f905b6001600160d01b03821615610dd9576104ce916001610dcf9201610d81565b6118036117f861180a92610ffd565b835f5260205f200190565b5460301c90565b906117ca565b919261181b81611611565b8103908111610dfd576117c193855f5265ffffffffffff808360205f20015416908516105f1461184c5750916117b6565b92915061185890611018565b906117b6565b6040519061186b82610772565b5f6020838281520152565b9061189f6118996118c09261188961185e565b5061189261185e565b5084610d81565b50611026565b91600165ffffffffffff845116936020828060d01b03910151169101610d81565b905490604051926118d084610772565b835260031b1c602082015290565b90808210156118eb575090565b905090565b60ff5f805160206119bd8339815191525460401c161561190c57565b604051631afcd79f60e31b8152600490fd5b90808216911860011c8101809111610dfd5790565b65ffffffffffff90818111611946571690565b604490604051906306dfcc6560e41b8252603060048301526024820152fd5b905b8383106119745750505090565b909192611981818561191e565b90835f5265ffffffffffff808360205f20015416908416105f146119a95750925b9190611967565b935060018101809111156119a257610fe956fef0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a26469706673582212204516407e2adc4ef10f928db601f32a60d5944a2a517c00968a39e5541843a63a64736f6c63430008190033","sourceMap":"624:2139:84:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;;;;;-1:-1:-1;;624:2139:84;;;;;;1435:38:92;-1:-1:-1;;;;;624:2139:84;;;;;;;;;;;-1:-1:-1;;;;;624:2139:84;;;;;:::o;:::-;;;;;;-1:-1:-1;;624:2139:84;;;;;2936:47:92;:38;624:2139:84;;;;;:::i;:::-;;;-1:-1:-1;624:2139:84;2936:16:92;624:2139:84;;;-1:-1:-1;624:2139:84;;;;;;;;;;;;;;;;;2936:38:92;:47;:::i;:::-;624:2139:84;;;;;;;;;;;;-1:-1:-1;;624:2139:84;;;;;;1788:109:92;624:2139:84;;;;;:::i;:::-;;;-1:-1:-1;624:2139:84;1788:109:92;624:2139:84;;;-1:-1:-1;624:2139:84;;;;;;;;;;;;;;;;;1788:109:92;624:2139:84;;;;;;;;;;;;;;-1:-1:-1;;624:2139:84;;;;;;;1374:6:92;624:2139:84;;;;;;;;;-1:-1:-1;;624:2139:84;;;;;;1528:51:92;-1:-1:-1;;;;;624:2139:84;;;;;;;;;;;;-1:-1:-1;;624:2139:84;;;;;;322:32:69;-1:-1:-1;;;;;624:2139:84;;;;;;;;;;;;-1:-1:-1;;624:2139:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;624:2139:84;;;;;;;;;;;;;;;:::o;:::-;;;;;;-1:-1:-1;;624:2139:84;;;;-1:-1:-1;;;;;624:2139:84;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;624:2139:84;;;;;;;4301:16:25;624:2139:84;;4726:16:25;;:34;;;;624:2139:84;4805:1:25;4790:16;:50;;;;624:2139:84;4855:13:25;:30;;;;624:2139:84;4851:91:25;;;-1:-1:-1;;;;;;;;;;;624:2139:84;;-1:-1:-1;;624:2139:84;;;;;718:4:69;;4951:18:25;4979:67;;718:4:69;:::i;:::-;5066:101:25;;624:2139:84;5066:101:25;-1:-1:-1;;;;;;;;;;;624:2139:84;;-1:-1:-1;;;;624:2139:84;;;;;-1:-1:-1;624:2139:84;;5142:14:25;;624:2139:84;;5142:14:25;624:2139:84;4979:67:25;-1:-1:-1;;;;;;;;;;;624:2139:84;;-1:-1:-1;;;;624:2139:84;;;;;718:4:69;:::i;4851:91:25:-;624:2139:84;;-1:-1:-1;;;4908:23:25;;624:2139:84;;4908:23:25;4855:30;4872:13;;;4855:30;;;4790:50;4818:4;4810:25;:30;;-1:-1:-1;4790:50:25;;4726:34;;;-1:-1:-1;4726:34:25;;624:2139:84;;;;;;;:::o;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;:::o;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;624:2139:84;;;;;;;;-1:-1:-1;;624:2139:84;;;;:::o;:::-;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;-1:-1:-1;;624:2139:84;;;;;;778:38;-1:-1:-1;;;;;624:2139:84;;;;;;;;;;;;-1:-1:-1;;624:2139:84;;;;;;822:43;-1:-1:-1;;;;;624:2139:84;;;;;;;;;;;;-1:-1:-1;;624:2139:84;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;449:5:82;-1:-1:-1;;;;;624:2139:84;435:10:82;:19;431:71;;1400:38:84;:77;624:2139;;;-1:-1:-1;624:2139:84;1400:16;624:2139;;;-1:-1:-1;624:2139:84;;;;;;;;;;;;;;;;;1400:38;:77;:::i;:::-;624:2139;;;;;;;;;;;;;;;;;;;-1:-1:-1;;624:2139:84;431:71:82;624:2139:84;;-1:-1:-1;;;477:14:82;;624:2139:84;;477:14:82;624:2139:84;;;;;;-1:-1:-1;;624:2139:84;;;;;;727:45;-1:-1:-1;;;;;624:2139:84;;;;;;;;;;;;-1:-1:-1;;624:2139:84;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;624:2139:84;;;;-1:-1:-1;624:2139:84;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;416:25:75;;;;477:31;416:25;;:::i;:::-;624:2139:84;;;;;;;;;;477:31:75;;624:2139:84;;;;;;;;;;;:::i;:::-;477:31:75;624:2139:84;;477:31:75;;;;;;:::i;:::-;518:79;;;624:2139:84;518:79:75;;624:2139:84;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;624:2139:84;;;;;;;:::o;:::-;;:::i;:::-;;;;;;;-1:-1:-1;;;;;624:2139:84;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;624:2139:84;;;;;;;:::o;:::-;;;;;;;:::i;:::-;:::o;:::-;-1:-1:-1;;;;;624:2139:84;;;;;;-1:-1:-1;;624:2139:84;;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;624:2139:84;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;624:2139:84;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;-1:-1:-1;;;;;624:2139:84;;;;;;;;;:::i;:::-;;;;;2692:73:92;:38;624:2139:84;;;:::i;:::-;;;;;-1:-1:-1;624:2139:84;2692:16:92;624:2139:84;;;-1:-1:-1;624:2139:84;;;;;;;;;;;;;;;;;2692:38:92;:73;:::i;624:2139:84:-;;;;;3248:62:92;624:2139:84;;;:::i;:::-;3248:62:92;;;;;:::i;:::-;624:2139:84;;;;;;;;;;;;;-1:-1:-1;;624:2139:84;;;;;;;-1:-1:-1;;;;;404:28:69;624:2139:84;;;;;;;;;;-1:-1:-1;;624:2139:84;;;;;;;1271:7:92;624:2139:84;;;;;;;;;-1:-1:-1;;624:2139:84;;;;;;;;-1:-1:-1;;;;;624:2139:84;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;:::i;1490:514::-;-1:-1:-1;1490:514:84;;;;;;;;624:2139;;;;;1779:95;;;;;;;;;;;;;624:2139;;;;;;;;;;;;;;;;;1779:95;;;;;:::i;:::-;624:2139;;716:88:82;;624:2139:84;716:88:82;;;;;;;;;783:4;1779:95:84;716:88:82;;624:2139:84;;;;;;;;;;;:::i;:::-;716:88:82;624:2139:84;716:88:82;624:2139:84;;716:88:82;;;;;;;;:::i;:::-;698:107;;;;;857:45;698:107;;:::i;:::-;624:2139:84;;;;857:45:82;;;;;;:::i;:::-;916:8;;912:175;;624:2139:84;;;1705:221;624:2139;;1705:221;;;;;;:::i;:::-;1937:61;;;;1490:514;;;:::o;1937:61::-;1970:17;624:2139;;;;1970:17;624:2139;;1970:17;;;;;624:2139;;;;;;;;;;;;1970:17;;;;;;;;;:::i;912:175:82:-;624:2139:84;;;;944:22:82;;;940:36;;990:87;;624:2139:84;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;624:2139:84;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;;;;624:2139:84;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;2010:751::-;624:2139;;-1:-1:-1;;;2301:28:84;;624:2139;;2010:751;;;;;2301:28;;-1:-1:-1;;;;;624:2139:84;2010:751;;;2301:28;624:2139;2301:28;624:2139;;;;2301:28;;;;;;;;;;;;;;;2010:751;624:2139;2301:28;624:2139;;;;;;;;;2295:47;;624:2139;2295:47;;;;;;;;;;;2301:28;2295:47;;;;;2010:751;-1:-1:-1;624:2139:84;;-1:-1:-1;;;2230:162:84;;-1:-1:-1;;;;;624:2139:84;;;2301:28;2230:162;;624:2139;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2249:20;624:2139;2230:162;;;;;;;2301:28;2230:162;;;2010:751;2442:68;;;;;;:::i;:::-;624:2139;;2525:21;;;:59;;;2010:751;2521:234;;2010:751;;;:::o;2521:234::-;2607:137;624:2139;;;;;;:::i;:::-;;;;2635:95;;;624:2139;2607:137;624:2139;;2607:137;;;;;;:::i;2525:59::-;624:2139;;;2550:34;;2525:59;;2230:162;2442:68;2230:162;;;;;;;2301:28;2230:162;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;:::i;2295:47::-;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;2301:28;;;;;;;;;;;;;;:::i;:::-;;;;624:2139;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;-1:-1:-1;624:2139:84;;;;:::o;:::-;;;:::o;2505:267:92:-;-1:-1:-1;624:2139:84;;;2692:16:92;624:2139:84;;;;;;;;-1:-1:-1;;;;;624:2139:84;;;;;;;;;2692:73:92;;2505:267;;2692:73;:::i;624:2139:84:-;;;;;;;;-1:-1:-1;624:2139:84;;-1:-1:-1;624:2139:84;;;-1:-1:-1;624:2139:84;:::o;:::-;;;;;;;;;;;;10580:184:86;624:2139:84;;10303:8:60;;;:63;-1:-1:-1;10303:63:60;-1:-1:-1;;;;;624:2139:84;;10726:7:86;624:2139:84;;10736:12:86;:17;:12;;:17;:::i;:::-;624:2139:84;;;;;;10580:184:86;:::o;10726:31::-;;;-1:-1:-1;10580:184:86;:::o;10303:63:60:-;624:2139:84;;;;;;;;;;13267:109:86;-1:-1:-1;13267:109:86;;-1:-1:-1;13267:109:86;;;624:2139:84;;;10303:63:60;;624:2139:84;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;624:2139:84;;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;6491:564:92:-;6614:34;6491:564;6614:34;;;;:::i;:::-;-1:-1:-1;624:2139:84;;-1:-1:-1;;;6664:41:92;;-1:-1:-1;;;;;624:2139:84;;;6664:41:92;;;624:2139:84;;;;;6664:41:92;;;624:2139:84;;;6674:13:92;624:2139:84;;6664:41:92;;;;;;;-1:-1:-1;6664:41:92;;;6491:564;6663:42;;6659:90;;2540:111:28;;:::i;:::-;-1:-1:-1;624:2139:84;;-1:-1:-1;;;;;;624:2139:84;-1:-1:-1;;;;;624:2139:84;;;;;6664:41:92;624:2139:84;;;:::i;:::-;;;;;;;;;;;6892:23:92;;;;;;;;;-1:-1:-1;6892:23:92;;;6491:564;624:2139:84;;;6892:37:92;:64;;;6491:564;6888:112;;624:2139:84;7010:38:92;;624:2139:84;;-1:-1:-1;624:2139:84;;-1:-1:-1;;;;624:2139:84;;;;;;-1:-1:-1;;;624:2139:84;;;;;;;;6888:112:92;624:2139:84;;-1:-1:-1;;;6979:10:92;;6664:41;;6979:10;6892:64;-1:-1:-1;624:2139:84;;;;6892:64:92;;:23;;;;;;-1:-1:-1;6892:23:92;;;;;;:::i;:::-;;;;;6659:90;624:2139:84;;-1:-1:-1;;;6728:10:92;;6664:41;;6728:10;6664:41;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;624:2139:84;;;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;624:2139:84;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;624:2139:84;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;8889:1:86;624:2139:84;;;;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::o;8406:869:86:-;;;624:2139:84;;8620:15:86;8578:11;8645:18;8678:7;8684:1;8678:7;;8674:241;;8406:869;8939:60;;;;;:::i;:::-;9014:8;;;9010:62;;9252:15;9259:7;624:2139:84;9219:31:86;624:2139:84;9130:48:86;9170:7;;;:::i;:::-;9130:48;13267:109;;;;;;13089:293;;9130:48;624:2139:84;:::i;:::-;;9176:1:86;624:2139:84;9232:17:86;624:2139:84;;;;;;;;9232:17:86;;624:2139:84;-1:-1:-1;;;;;624:2139:84;;;;9219:12:86;;:31;:::i;624:2139:84:-;9259:7:86;;:::i;:::-;624:2139:84;;;;9252:15:86;9176:1;;9188:80;;8406:869::o;9010:62::-;8578:11;;-1:-1:-1;8578:11:86;;-1:-1:-1;8578:11:86;;;;9038:23::o;8674:241::-;8721:14;;;;;:::i;:::-;624:2139:84;;;;;;;8939:60:86;13267:109;;8578:11;13267:109;8753:55;8759:49;13267:109;;8578:11;13267:109;;624:2139:84;;;;;;8759:49:86;624:2139:84;;;;8753:55:86;624:2139:84;;;8753:55:86;13267:109;;;8828:10;8749:156;8674:241;;8749:156;8883:7;;;;;;:::i;:::-;8749:156;8674:241;;624:2139:84;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::o;7558:604:86:-;;624:2139:84;;7686:17:86;7682:83;;624:2139:84;7789:27:86;624:2139:84;7789:27:86;624:2139:84;;7789:27:86;;;;;;:::i;:::-;7860:14;;;;;:::i;:::-;624:2139:84;;;;;;;;;;;;;;;;7888:22:86;;;7884:77;;7975:21;-1:-1:-1;7975:84:86;;;;7558:604;7971:139;;;;8127:28;;;;:::i;7971:139::-;8082:17;;7789:27;8082:17;624:2139:84;8075:24:86;:::o;7975:84::-;624:2139:84;;;8009:16:86;624:2139:84;;8009:16:86;:::i;:::-;624:2139:84;;;8001:24:86;:57;;;;;7975:84;;;;;;;8001:57;8029:29;8038:8;;;8029:18;8038:8;8029:23;8038:8;;:::i;:::-;8029:18;;:::i;:::-;624:2139:84;;;;;8029:29:86;;8001:57;;;;7884:77;7933:17;;;;;7789:27;7933:17;624:2139:84;7926:24:86;:::o;7682:83::-;7726:28;;;;:::i;624:2139:84:-;;;;;;;:::i;:::-;;;;;;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;;;;624:2139:84;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::o;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;624:2139:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;3323:1122:92:-;;624:2139:84;;:::i;:::-;;;;3608:16:92;3604:109;;3323:1122;837:15:62;;819:34;837:15;819:34;:::i;:::-;-1:-1:-1;624:2139:84;;;;3778:27:92;;:13;;-1:-1:-1;;;;;624:2139:84;3778:13:92;624:2139:84;;-1:-1:-1;;;;;624:2139:84;;;3778:27:92;624:2139:84;;;;;;;3778:29:92;;;;;;;;;;;;;;;3740:67;3778:29;3759:48;3778:29;-1:-1:-1;3778:29:92;;;3323:1122;3759:48;;:::i;3740:67::-;624:2139:84;;;3740:67:92;;;:107;;;;;3323:1122;3740:197;;;;3323:1122;3723:263;;;624:2139:84;3778:29:92;624:2139:84;;;;;;;;;;4025:25:92;;;;;;;;;4010:143;4025:25;;;-1:-1:-1;4025:25:92;;;3323:1122;4113:30;;;624:2139:84;;;;;;;;;;;4010:143:92;;;;;3778:29;4010:143;;;:::i;:::-;;;-1:-1:-1;;;;;624:2139:84;4010:143:92;;;;;;;4181:257;4010:143;-1:-1:-1;4010:143:92;;;3323:1122;3996:157;;4293:102;3996:157;;4233:162;3996:157;4207:231;3996:157;;2936:28;:47;:38;:28;;;624:2139:84;;2936:16:92;624:2139:84;;;;;;;2936:28:92;624:2139:84;;;;;;;;;;;;;;;;2936:47:92;4351:43;;;4293:102;;:::i;:::-;4233:162;;:::i;:::-;4207:231;:::i;4181:257::-;3323:1122;:::o;4010:143::-;4233:162;4010:143;;;4207:231;4010:143;;;;4293:102;4010:143;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;;;;;4025:25;;;;;;;;;;;;;;:::i;:::-;;;;3723:263;3962:13;;;;;;-1:-1:-1;3962:13:92;-1:-1:-1;3962:13:92;:::o;3740:197::-;3886:41;;3867:70;3886:51;;:41;;;624:2139:84;;3886:29:92;624:2139:84;;;;;;;3886:51:92;624:2139:84;;;;;3867:70:92;-1:-1:-1;3740:197:92;;;:107;837:15:62;;3811:36:92;819:34:62;837:15;819:34;:::i;3811:36:92:-;;;;3740:107;;;3778:29;;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;3604:109;3662:40;;;;;;;;;;;;:::i;:::-;3604:109;;;;6893:76:25;;;:::i;:::-;;;:::i;:::-;1805:1:28;2355:73;1805:1;6893:76:25:o;624:2139:84:-;;;;;;;;;;-1:-1:-1;;;;;624:2139:84;;;;;;;-1:-1:-1;624:2139:84;;:::o;:::-;;;;;;;:::o;:::-;;;;;;;;;;;;8587:1642:57;8658:6;;8654:45;;9401:7;10201:10;10142:26;10093;10044;9995;9946;9897;9848;624:2139:84;10189:23:57;9401:7;8663:1;624:2139:84;;;;10826:16:57;10822:99;;8587:1642;624:2139:84;;;;10938:15:57;10934:96;;8587:1642;624:2139:84;;;;11047:15:57;11043:96;;8587:1642;624:2139:84;;;;11156:15:57;11152:96;;8587:1642;624:2139:84;;;;11265:14:57;11261:93;;8587:1642;624:2139:84;;;;11371:14:57;11367:93;;8587:1642;624:2139:84;;;;11477:14:57;11473:93;;8587:1642;624:2139:84;;;11579:64:57;;8587:1642;624:2139:84;;;9858:10:57;;;;:::i;:::-;624:2139:84;;;;;9848:26:57;9907:10;;;;:::i;9897:26::-;9956:10;;;;:::i;9946:26::-;10005:10;;;;:::i;9995:26::-;10054:10;;;;:::i;10044:26::-;10103:10;;;;:::i;10093:26::-;10152:10;;;;:::i;10142:26::-;10201:10;;;:::i;:::-;10189:23;;:::i;11579:64::-;624:2139:84;;11579:64:57;;11473:93;624:2139:84;11511:11:57;;624:2139:84;;11473:93:57;;;;11367;624:2139:84;11405:11:57;;624:2139:84;;11367:93:57;;;;11261;624:2139:84;11299:11:57;;624:2139:84;;11261:93:57;;;;11152:96;624:2139:84;11191:12:57;;624:2139:84;;11152:96:57;;;;11043;624:2139:84;11082:12:57;;624:2139:84;;11043:96:57;;;;10934;624:2139:84;10973:12:57;;624:2139:84;;10934:96:57;;;;10822:99;10862:13;;;624:2139:84;10822:99:57;;;;8654:45;8680:8;8663:1;8680:8;:::o;12497:447:86:-;;12694:10;;;;;;12926:11;;;12497:447;:::o;12687:230::-;12734:23;;;;;;;:::i;:::-;13267:109;;-1:-1:-1;13267:109:86;624:2139:84;13267:109:86;;;-1:-1:-1;13267:109:86;;624:2139:84;;;;;-1:-1:-1;12771:136:86;624:2139:84;;;12830:10:86;12771:136;;12687:230;;;;12771:136;624:2139:84;;12891:1:86;624:2139:84;;;;;;12771:136:86;624:2139:84;;:::i;6999:207:86:-;;624:2139:84;;9594:15:60;-1:-1:-1;9619:18:60;9652:7;9658:1;9652:7;;9648:234;;6999:207:86;9906:53:60;;;;;:::i;:::-;9977:8;;;:63;-1:-1:-1;9977:63:60;;-1:-1:-1;;;;;624:2139:84;;7168:7:86;624:2139:84;;;7178:12:86;;:17;:12;;:17;:::i;9977:63:60:-;9992:41;10025:7;9992:48;10025:7;;:::i;:::-;9992:41;13267:109:86;;;;;;13089:293;;9992:41:60;624:2139:84;;;;;9992:48:60;9977:63;;;9648:234;9695:14;;;;;:::i;:::-;624:2139:84;;;;;;;9906:53:60;13267:109:86;;-1:-1:-1;13267:109:86;624:2139:84;13267:109:86;;;-1:-1:-1;13267:109:86;;624:2139:84;;;;;9727:48:60;9723:149;624:2139:84;;;9795:10:60;9723:149;9648:234;;9723:149;9850:7;;;;;;:::i;:::-;9723:149;9648:234;;624:2139:84;;;;;;;:::i;:::-;-1:-1:-1;624:2139:84;;;;;;;:::o;11486:272:86:-;;624:2139:84;11308:22:60;11718:31:86;11486:272;624:2139:84;;:::i;:::-;;;;:::i;:::-;;11308:22:60;;:::i;:::-;624:2139:84;;:::i;:::-;;11718:12:86;624:2139:84;;;;;11731:17:86;624:2139:84;;;;;11731:17:86;;624:2139:84;;11718:12:86;;:31;:::i;:::-;624:2139:84;;;;;;;;;:::i;:::-;;;;;;11731:17:86;11672:79;;624:2139:84;11486:272:86;:::o;2557:104:57:-;;2641:5;;;;;;:13;2557:104;:::o;2641:13::-;;;2557:104;:::o;7084:141:25:-;624:2139:84;-1:-1:-1;;;;;;;;;;;624:2139:84;;;;7150:18:25;7146:73;;7084:141::o;7146:73::-;624:2139:84;;-1:-1:-1;;;7191:17:25;;;;;2774:153:57;;2900:5;;;2910;;624:2139:84;;;;;;;;;2774:153:57;:::o;14291:213:58:-;624:2139:84;14369:24:58;;;;14365:103;;624:2139:84;14291:213:58;:::o;14365:103::-;624:2139:84;;;;14416:41:58;;;;;;14447:2;14416:41;;;624:2139:84;;;;;14416:41:58;12736:433:60;;12919:10;;;;;;13151:11;;;12736:433;:::o;12912:230::-;12959:23;;;;;;;:::i;:::-;13267:109:86;;-1:-1:-1;13267:109:86;624:2139:84;13267:109:86;;;-1:-1:-1;13267:109:86;;624:2139:84;;;;;-1:-1:-1;12996:136:60;624:2139:84;;;13055:10:60;12996:136;;12912:230;;;;12996:136;624:2139:84;;13116:1:60;624:2139:84;;;;;;12996:136:60;624:2139:84;;:::i","linkReferences":{},"immutableReferences":{"57808":[{"start":715,"length":32}],"57811":[{"start":2313,"length":32}],"62368":[{"start":1530,"length":32}],"62711":[{"start":1691,"length":32},{"start":3119,"length":32}],"62713":[{"start":1372,"length":32}],"62715":[{"start":1440,"length":32}],"65592":[{"start":361,"length":32},{"start":3716,"length":32}],"65595":[{"start":647,"length":32}]}},"methodIdentifiers":{"BASE_DELEGATOR_HINTS()":"79d89614","BURNER_GAS_LIMIT()":"d5c24e1a","BURNER_RESERVE()":"2964f8dc","FACTORY()":"2dd31000","NETWORK_MIDDLEWARE_SERVICE()":"2c9d45b3","SLASHER_HINTS()":"4eb5a242","TYPE()":"bb24fe8a","VAULT_FACTORY()":"103f2907","VETO_SLASHER_HINTS()":"6565b7db","cumulativeSlash(bytes32,address)":"1a2be2c4","cumulativeSlashAt(bytes32,address,uint48,bytes)":"aa8e6489","cumulativeSlashHint(address,bytes32,address,uint48)":"4a719655","cumulativeSlashHintInternal(bytes32,address,uint48)":"77028046","initialize(bytes)":"439fab91","isBurnerHook()":"34d098ea","latestSlashedCaptureTimestamp(bytes32,address)":"267de1f3","slashableStake(bytes32,address,uint48,bytes)":"aab3595f","slashableStakeHints(address,bytes32,address,uint48)":"4ea2e926","staticDelegateCall(address,bytes)":"9f86fd85","vault()":"fbfa77cf"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"baseDelegatorHints\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"ExternalCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientBurnerGas\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NoBurner\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotNetworkMiddleware\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotVault\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ReentrancyGuardReentrantCall\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"bits\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"SafeCastOverflowedUintDowncast\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"BASE_DELEGATOR_HINTS\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"BURNER_GAS_LIMIT\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"BURNER_RESERVE\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"FACTORY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"NETWORK_MIDDLEWARE_SERVICE\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"SLASHER_HINTS\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"TYPE\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"VAULT_FACTORY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"VETO_SLASHER_HINTS\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"cumulativeSlash\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hint\",\"type\":\"bytes\"}],\"name\":\"cumulativeSlashAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"slasher\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"}],\"name\":\"cumulativeSlashHint\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"}],\"name\":\"cumulativeSlashHintInternal\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"exists\",\"type\":\"bool\"},{\"internalType\":\"uint32\",\"name\":\"hint\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isBurnerHook\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"latestSlashedCaptureTimestamp\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"value\",\"type\":\"uint48\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"captureTimestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hints\",\"type\":\"bytes\"}],\"name\":\"slashableStake\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"slasher\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"captureTimestamp\",\"type\":\"uint48\"}],\"name\":\"slashableStakeHints\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"staticDelegateCall\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"vault\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"ReentrancyGuardReentrantCall()\":[{\"details\":\"Unauthorized reentrant call.\"}],\"SafeCastOverflowedUintDowncast(uint8,uint256)\":[{\"details\":\"Value doesn't fit in an uint of `bits` size.\"}]},\"events\":{\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"}},\"kind\":\"dev\",\"methods\":{\"cumulativeSlash(bytes32,address)\":{\"params\":{\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"},\"returns\":{\"_0\":\"cumulative slash amount\"}},\"cumulativeSlashAt(bytes32,address,uint48,bytes)\":{\"params\":{\"hint\":\"hint for the checkpoint index\",\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\",\"timestamp\":\"time point to get the cumulative slash amount until (inclusively)\"},\"returns\":{\"_0\":\"cumulative slash amount until the given timestamp (inclusively)\"}},\"initialize(bytes)\":{\"params\":{\"data\":\"some data to use\"}},\"slashableStake(bytes32,address,uint48,bytes)\":{\"params\":{\"captureTimestamp\":\"time point to get the stake amount at\",\"hints\":\"hints for the checkpoints' indexes\",\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"},\"returns\":{\"amount\":\"slashable amount of the stake\"}},\"staticDelegateCall(address,bytes)\":{\"details\":\"It allows to use this contract's storage on-chain.\",\"params\":{\"data\":\"data to make a delegatecall with\",\"target\":\"address of the contract to make a delegatecall to\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"BURNER_GAS_LIMIT()\":{\"notice\":\"Get a gas limit for the burner.\"},\"BURNER_RESERVE()\":{\"notice\":\"Get a reserve gas between the gas limit check and the burner's execution.\"},\"FACTORY()\":{\"notice\":\"Get the factory's address.\"},\"NETWORK_MIDDLEWARE_SERVICE()\":{\"notice\":\"Get the network middleware service's address.\"},\"TYPE()\":{\"notice\":\"Get the entity's type.\"},\"VAULT_FACTORY()\":{\"notice\":\"Get the vault factory's address.\"},\"cumulativeSlash(bytes32,address)\":{\"notice\":\"Get a cumulative slash amount for an operator on a subnetwork.\"},\"cumulativeSlashAt(bytes32,address,uint48,bytes)\":{\"notice\":\"Get a cumulative slash amount for an operator on a subnetwork until a given timestamp (inclusively) using a hint.\"},\"initialize(bytes)\":{\"notice\":\"Initialize this entity contract by using a given data.\"},\"isBurnerHook()\":{\"notice\":\"Get if the burner is needed to be called on a slashing.\"},\"latestSlashedCaptureTimestamp(bytes32,address)\":{\"notice\":\"Get the latest capture timestamp that was slashed on a subnetwork.\"},\"slashableStake(bytes32,address,uint48,bytes)\":{\"notice\":\"Get a slashable amount of a stake got at a given capture timestamp using hints.\"},\"staticDelegateCall(address,bytes)\":{\"notice\":\"Make a delegatecall from this contract to a given target contract with a particular data (always reverts with a return data).\"},\"vault()\":{\"notice\":\"Get the vault's address.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/contracts/hints/SlasherHints.sol\":\"BaseSlasherHints\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol\":{\"keccak256\":\"0x6662ec4e5cefca03eeadd073e9469df8d2944bb2ee8ec8f7622c2c46aab5f225\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4d8544c6f8daa4d1bc215c6a72fe0acdb748664a105b0e5efc19295667521d45\",\"dweb:/ipfs/QmdGWqdnXT8S3RgCR6aV8XHZrsybieMQLLnug1NtpSjEXN\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0xc163fcf9bb10138631a9ba5564df1fa25db9adff73bd9ee868a8ae1858fe093a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9706d43a0124053d9880f6e31a59f31bc0a6a3dc1acd66ce0a16e1111658c5f6\",\"dweb:/ipfs/QmUFmfowzkRwGtDu36cXV9SPTBHJ3n7dG9xQiK5B28jTf2\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609\",\"dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9\",\"dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardUpgradeable.sol\":{\"keccak256\":\"0xb44e086e941292cdc7f440de51478493894ef0b1aeccb0c4047445919f667f74\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://942dad22fbdc1669f025540ba63aa3ccfad5f8458fc5d4525b31ebf272e7af45\",\"dweb:/ipfs/Qmdo4X2M82aM3AMoW2kf2jhYkSCyC4T1pHNd6obdsDFnAB\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol\":{\"keccak256\":\"0xdaba3f7c42c55b2896353f32bd27d4d5f8bae741b3b05d4c53f67abc4dc47ce8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1fa2e61141c602510bcd2cd936ed9561922ac8772a9b9c9a9db091a74e354a45\",\"dweb:/ipfs/QmcHQDDoEBwJmwUbzoVkytvJsBx3KVHYFFnDkvRGWh9Wmh\"]},\"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0xb6b36edd6a2999fd243ff226d6cbf84bd71af2432bbd0dfe19392996a1d9cb41\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1fd2f35495652e57e3f99bc6c510bc5f7dd398a176ea2e72d8ed730aebc6ca26\",\"dweb:/ipfs/QmTQV6X4gkikTib49cho5iDX3JvSQbdsoEChoDwrk3CbbH\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC1271.sol\":{\"keccak256\":\"0x85a45f3f10014a0f8be41157a32b6a5f905753ea64a4b64e29fc12b7deeecf39\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c3c74009ce36136b36c77c23935b8e4a7b4f253be2da2be4fb4a916b1ce43743\",\"dweb:/ipfs/QmcH36v3iN7SJJuF73AunLR2LtNxhVJ1wm63ph4dPZ4pcL\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC5267.sol\":{\"keccak256\":\"0x92aa1df62dc3d33f1656d63bede0923e0df0b706ad4137c8b10b0a8fe549fd92\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c5c0f29195ad64cbe556da8e257dac8f05f78c53f90323c0d2accf8e6922d33a\",\"dweb:/ipfs/QmQ61TED8uaCZwcbh8KkgRSsCav7x7HbcGHwHts3U4DmUP\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c\",\"dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0x6008dabfe393240d73d7dd7688033f72740d570aa422254d29a7dce8568f3aff\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f5196ec75139918c6c7bb4251b36395e668f1fa6d206beba7e7520e74913940d\",\"dweb:/ipfs/QmSyqjksXxmm2mCG6qRd1yuwLykypkSVBbnBnGqJRcuJMi\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x37bb49513c49c87c4642a891b13b63571bc87013dde806617aa1efb54605f386\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b3036b3a83b7c48f96641f2a9002b9f2dcb6a5958dd670894ada21ae8229b3d0\",\"dweb:/ipfs/QmUNfSBdoVtjhETaUJCYcaC7pTMgbhht926tJ2uXJbiVd3\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0xaf28a975a78550e45f65e559a3ad6a5ad43b9b8a37366999abd1b7084eb70721\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b7bd24e224f67f65bfadf85dc2929fa965456bb2415478bd0125471b5ce35245\",\"dweb:/ipfs/QmRaydGr8BTHs1kvaZfsNU69pKzUAGFrvABn1KiRSbE51y\"]},\"lib/openzeppelin-contracts/contracts/utils/ShortStrings.sol\":{\"keccak256\":\"0x18a7171df639a934592915a520ecb97c5bbc9675a1105607aac8a94e72bf62c6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7478e1f13da69a2867ccd883001d836b75620362e743f196376d63ed0c422a1c\",\"dweb:/ipfs/QmWywcQ9TNfwtoqAxbn25d8C5VrV12PrPS9UjtGe6pL2BA\"]},\"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0x32ba59b4b7299237c8ba56319110989d7978a039faf754793064e967e5894418\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1ae50c8b562427df610cc4540c9bf104acca7ef8e2dcae567ae7e52272281e9c\",\"dweb:/ipfs/QmTHiadFCSJUPpRjNegc5SahmeU8bAoY8i9Aq6tVscbcKR\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0x55f102ea785d8399c0e58d1108e2d289506dde18abc6db1b7f68c1f9f9bc5792\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e52e0a7765c943ef14e5bcf11e46e6139fa044be564881378349236bf2e3453\",\"dweb:/ipfs/QmZEeeXoFPW47amyP35gfzomF9DixqqTEPwzBakv6cZw6i\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0xeed0a08b0b091f528356cbc7245891a4c748682d4f6a18055e8e6ca77d12a6cf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba80ba06c8e6be852847e4c5f4492cef801feb6558ae09ed705ff2e04ea8b13c\",\"dweb:/ipfs/QmXRJDv3xHLVQCVXg1ZvR35QS9sij5y9NDWYzMfUfAdTHF\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/EIP712.sol\":{\"keccak256\":\"0x999f705a027ed6dc2d4e0df2cc4a509852c6bfd11de1c8161bf88832d0503fd0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0798def67258d9a3cc20b2b4da7ebf351a5cefe0abfdd665d2d81f8e32f89b21\",\"dweb:/ipfs/QmPEvJosnPfzHNjKvCv2D3891mA2Ww8eUwkqrxBjuYdHCt\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol\":{\"keccak256\":\"0xba333517a3add42cd35fe877656fc3dfcc9de53baa4f3aabbd6d12a92e4ea435\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2ceacff44c0fdc81e48e0e0b1db87a2076d3c1fb497341de077bf1da9f6b406c\",\"dweb:/ipfs/QmRUo1muMRAewxrKQ7TkXUtknyRoR57AyEkoPpiuZQ8FzX\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/SignatureChecker.sol\":{\"keccak256\":\"0x6b11eb41a228cca35d4b662b4df69fcd75192851365102690f57b2ac01e83fe6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ab006a2983ed350d2af21ddcdd835dcae3b8340086cc4d088460da5abd041f69\",\"dweb:/ipfs/QmbEacDhkJZiGrgzLjB4pNtE8Z1uudjDw1DvcDUTVQFsLG\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875\",\"dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0xe19a4d5f31d2861e7344e8e535e2feafb913d806d3e2b5fe7782741a2a7094fe\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4aed79c0fa6f0546ed02f2f683e8f77f0fd2ed7eb34d8bbf3d373c9a6d95b13c\",\"dweb:/ipfs/QmWqVz6UAVqmnWU5pqYPt1o6iDEZyPaBraAA3rKfTTSfYj\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x5f7e4076e175393767754387c962926577f1660dd9b810187b9002407656be72\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7d533a1c97cd43a57cd9c465f7ee8dd0e39ae93a8fb8ff8e5303a356b081cdcc\",\"dweb:/ipfs/QmVBEei6aTnvYNZp2CHYVNKyZS4q1KkjANfY39WVXZXVoT\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/Checkpoints.sol\":{\"keccak256\":\"0xbdc5e074d7dd6678f67e92b1a51a20226801a407b0e1af3da367c5d1ff4519ad\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a36cca6b22fff3db16fc789ff6c60eea71d4b156065d4d0c83a0bc5e91a77a8b\",\"dweb:/ipfs/QmYN3exd5AemxjBrN8XMB1p5LbbE16uC3sjbYjwi8AjcGR\"]},\"lib/openzeppelin-contracts/contracts/utils/types/Time.sol\":{\"keccak256\":\"0xc7755af115020049e4140f224f9ee88d7e1799ffb0646f37bf0df24bf6213f58\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7f09bf94d5274334ec021f61a04659db303f31e60460e14b709c9bf187740111\",\"dweb:/ipfs/QmNvgomZYUwFAt4cZbPWAiTeSZQreGehY9BK5xyVJsUttb\"]},\"src/contracts/common/Entity.sol\":{\"keccak256\":\"0x3d61a932995b8443381f3950542d388223a2c26dd5d29a3274dea3baa7388bd7\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://7cdf5f03ca72fd263fd32ff59c8d88ddca911ae83896a287d10772c1bbe9b138\",\"dweb:/ipfs/QmbP84r5BWT1Rn9AYTntWSf3xUMTTCohTZJFhbBhDXFoHa\"]},\"src/contracts/common/MigratableEntity.sol\":{\"keccak256\":\"0x2d736f4dacd5d7e7697503bc426c78b8250fe1694ca157965ec178da6807de58\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://f1237acf96b4b9f9b69156e068eddd726a6e15bd8e87a18dc999cd4ba4da069c\",\"dweb:/ipfs/QmS6M8fiFFSeuJ4ZKKq1z8W7w4ybeHQSy5TLASGoc1LVic\"]},\"src/contracts/common/StaticDelegateCallable.sol\":{\"keccak256\":\"0x350029aa8955eacaffffaeb58babc5c98e80ebc5c5db388ed17ee6465f4a9d90\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://eb392a8ee9050e0af606897df63e3404e3829e8b688b580663892f9664195764\",\"dweb:/ipfs/QmaXC8jqV8UrrAFkzXTEv2fJF56sy33HhLxAzaRZmUxuXD\"]},\"src/contracts/delegator/BaseDelegator.sol\":{\"keccak256\":\"0x7c54d491fdd4415b764a9c8defa068e56d4c0c8c9419be0053a1d377669290e8\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://9238bfbad0f6eeb0dc7727724de14380f1980b395902269703d5e2ef07e52e10\",\"dweb:/ipfs/QmPJn1V4HNXcEghYvogGuSTF24dSQUPosR5qtsXcmNqRm3\"]},\"src/contracts/delegator/FullRestakeDelegator.sol\":{\"keccak256\":\"0x0a81c4f8e72914563a9cb771e93acf889c71ea36b7bec040e4eb562b199d5af1\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://6fc66b6ba02da77046a0bbbd1dd407a62c08f52e04486c9cbd2cb1cca3da555f\",\"dweb:/ipfs/QmZQivK1ZnMxfRQQ5aLpV9co5u55wQVNev5Rg1hzAqxhkE\"]},\"src/contracts/delegator/NetworkRestakeDelegator.sol\":{\"keccak256\":\"0xd3a8e6522f9c6fdcc2da837c9023afd6bdff2bce45a35590320c475519e3636d\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://58b17a87f6554f08376f9ea7fedf486a4aa75801bf0ad8b23ff5a46959b6b7a3\",\"dweb:/ipfs/QmSTmNh67tYt8CmjVZb57r8N3qX5yeYdMApKPJm3qvQgQw\"]},\"src/contracts/delegator/OperatorNetworkSpecificDelegator.sol\":{\"keccak256\":\"0x031a10722b9ec49048f0952710401131290adb87e71caf294e864e7ac3b98a16\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://72428febc875134b2f29205e6f294634a1c22a7d5c78d6a9cb2f8196f107c9b5\",\"dweb:/ipfs/QmTPwXR6h5oytckmkLrHdKeEMdphJxceDhYUR4zvQeWAwY\"]},\"src/contracts/delegator/OperatorSpecificDelegator.sol\":{\"keccak256\":\"0x630ce62fa30b9f3349ab7a8cf8dbf041319febc6dd757be2f94d3d25944ed328\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://c2ac59d47ce57d2a6819ae9833e1a618a371eccff93eb5ab367b201b01f42bfa\",\"dweb:/ipfs/QmdBpGMBivpNPv2WbH8vnCUy5xkVeaxQvGgqi33vKCz1kA\"]},\"src/contracts/hints/DelegatorHints.sol\":{\"keccak256\":\"0x44aa0c396311a54afbc7c73e8dadeed41e3165a4fd13f712b27d63d50fc3376d\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://2f255214f3531fc707d88be0d56a7a0aed4180439316d099d760d9118aa83093\",\"dweb:/ipfs/QmZD1w5p1ukJSXumUAjvxwGmkPhn7vsr21Y2atLGEZR2oi\"]},\"src/contracts/hints/Hints.sol\":{\"keccak256\":\"0x8b565df1ae35993c097a9e642002782a8f451f6fd01809cad6bcd345bdf1b99c\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://99a19adb01e350a92f534095b3078229df1f2f83077992d75d58d8684be45971\",\"dweb:/ipfs/QmbmwcuswVbzvwHQFTtrJG86oV98GnfxqYTb8cV8u1acox\"]},\"src/contracts/hints/OptInServiceHints.sol\":{\"keccak256\":\"0x95d9407900d27b9f4a1233b772aeed809c07b2dc5b31cfc9fa77ca26514c49e5\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://a13a8877e312d7e6b8b85bde3668c5d84ff5ecc83f762cd573f2b7104c64eb42\",\"dweb:/ipfs/QmYV2J55acuGzCNnS3juABuUHY5U1xc8g8o9jwEyFFdeG5\"]},\"src/contracts/hints/SlasherHints.sol\":{\"keccak256\":\"0xd77c5f3bbb0265af8ecd947df88f6f9684e136d80052b5292f5b29aaa3566a3f\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://484a26504bf6706202ec82a9a4cfa7d196bbc552b5b78ced25bf7130c2842595\",\"dweb:/ipfs/QmaQqmkoZoUWEam4R94vmajzH3gKqFqpZQwFbrHDsN1peV\"]},\"src/contracts/hints/VaultHints.sol\":{\"keccak256\":\"0xccb505b7159b769cc114d67b87c2de6b106557f667fc8f3780114baad5c3c442\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://6d0c80a908fc16e96a8b5605a0bd53f9e89ad0ef0a738fbbae80ba4d3160749b\",\"dweb:/ipfs/QmXo5UtWoR8YmunqcbBU8rQMm1nvmvjNPoXcVrDhh4pEwR\"]},\"src/contracts/libraries/Checkpoints.sol\":{\"keccak256\":\"0xba90097c8bfe0a975499428b5f8ac5569483c7d92ccc28c12d70de416aae040c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://12f5d93ca94cd06d3147db68993165a58e17903ed53682560de61f3085ad4609\",\"dweb:/ipfs/QmePiuAqvXprMLmFZkGZeGjvGPAvsEDHfCDv7BoQhXu9xE\"]},\"src/contracts/libraries/ERC4626Math.sol\":{\"keccak256\":\"0x8441160513c1cbeb1c3b9ee077bcc7e7ce20006b52a77c8dd39ff0ef89699939\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://943f8cc3e26ddf649f465f40c909819f5c864717c4baa339e9e403b9374a4653\",\"dweb:/ipfs/QmXPxi1sUDsrGprZdUgCzoPEosaZMv9ZhygWQ1vAi1phAB\"]},\"src/contracts/libraries/Subnetwork.sol\":{\"keccak256\":\"0xf5ef5506fd66082b3c2e7f3df37529f5a8efad32ac62e7c8914bd63219190bfe\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba031a54ee0d0e9a270c2b9e18437f5668cfeb659cfd5fe0677459d7fcac2a56\",\"dweb:/ipfs/QmReP3H7qQ78tAfgLnJKsNEQNCQfF1X1Get38Ffd4kzq32\"]},\"src/contracts/service/OptInService.sol\":{\"keccak256\":\"0x4e0932077f2686b7990e10d59deb2535334c0d09e52ef6e57c6ab09eca21c4b1\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://7c00d311032ed4a1743aca7475f3c86ce15cdfc2218108efc3731c03d34a5278\",\"dweb:/ipfs/QmUGGfVwVhaHr5kS4177yKKYiLYzi5qZpkEmvYxBZqazxf\"]},\"src/contracts/slasher/BaseSlasher.sol\":{\"keccak256\":\"0x190e5dce196a061bdad42468c52e9f5b0eb7810cd7d0c19f04d6a2e94984f1b6\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://07ca08d0cd43c2fe5d54a5577f6bdd522ced410f5d3a52e764deaa7ba26b5f06\",\"dweb:/ipfs/QmZe3PiMKBQKWcwodaLupragdqxPjgS4v1qMC7RXau8hDF\"]},\"src/contracts/slasher/Slasher.sol\":{\"keccak256\":\"0xeee0cb25fad58d496fdcc641d852d11bae06e6ceed5230ae21150964175c494f\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://34aa27d21246a1bcee0b6a2afa8d9d613441156362430392f75d176511d58c61\",\"dweb:/ipfs/Qmf53Y3zdGfH4PU2zpSGeHZ8mMLzLXCtmkQrG5mnVJECQ3\"]},\"src/contracts/slasher/VetoSlasher.sol\":{\"keccak256\":\"0xeccc8128de5e1ad499c067feac1c526638fbbac1a18b96726fc7507969fd5897\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://cdfcf281338423625acbccdf8810115b258ef7cfe4aa3c10b8911ead1aa85429\",\"dweb:/ipfs/QmZFsDvZXpkFkx4PHcDXAVPN3ZCAahbSVfYpSVrMBvbt4k\"]},\"src/contracts/vault/Vault.sol\":{\"keccak256\":\"0x2ceff6ed3298c4cad144c99fcc79b51cb9397d6ebef00285b915848b476f8c2e\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://11f2fb3581854f3ab6e82e8d4935d9eb510c903a13c3f022346c2956a58f5307\",\"dweb:/ipfs/QmdUnoXoyYoG9SGWyQZCFyLDRUUX3eXyXetkRvw6jxqqBz\"]},\"src/contracts/vault/VaultStorage.sol\":{\"keccak256\":\"0x57db25b127d77ea3472de53e3a4af3354399655b9268638b99ca5925fa364a56\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://aa763d9a6ec508ae3abfb8228b72b9fd9525279e5135d4962e79ff059feb1173\",\"dweb:/ipfs/QmcbDR6E9wyEpu6V2FkEC4hnWy47zXA9LSKJde6zSGd33Q\"]},\"src/interfaces/common/IEntity.sol\":{\"keccak256\":\"0x8ef4b63d6da63489778ccd5f8d13ebdd527dd4b62730b2c616df5af7474d2d21\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a8d69576a9219d85c50816a18ad53a4d53cfcb27ed38b8cccc808dc2734b71b\",\"dweb:/ipfs/QmYVN3P4Q4REvBWJ97TbAcaxm3uyB2anV6NSGa6ZtSwcEv\"]},\"src/interfaces/common/IMigratableEntity.sol\":{\"keccak256\":\"0x8f5f2809f3afbe8ebfbb365dd7b57b4dd3b6f9943a6187eaf648d45895b8e3c4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ffe640537d539e7a4fde70d30d3e4c57f4ba9c2c25c450cea713aae38e8fd5c\",\"dweb:/ipfs/QmSUTGzvdcn1R1KB7tLThMRtESsfPbeXDhhhKWGtntzBds\"]},\"src/interfaces/common/IRegistry.sol\":{\"keccak256\":\"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014\",\"dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK\"]},\"src/interfaces/common/IStaticDelegateCallable.sol\":{\"keccak256\":\"0xa335d4e81b9071b7de66ef92b43ff20671d86516eb1be46fef29a3483cd3f5d5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d464b9db863c14c05547d2b23352f2e9b7b784799cf09f6bbc4906a2a74e3516\",\"dweb:/ipfs/QmUVWzFvJz7eEbDQKiFTTzwi7TEbjcs3VmwdM4kuptAKvi\"]},\"src/interfaces/delegator/IBaseDelegator.sol\":{\"keccak256\":\"0x96bb312f032e17accce3f8f80936d99468029d6b37c9ca74acdb4b026a0148ee\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2a66dcb5b7d1a6ef6a363431ea98ebd78bc4fdd3d7a134d9b542dc66e7d025c2\",\"dweb:/ipfs/QmRhTPLd2ZAyRHmJUFUcWKs9b3if49QY17LYZuRqWmghw8\"]},\"src/interfaces/delegator/IDelegatorHook.sol\":{\"keccak256\":\"0xc51aa8d7d1f6c8043ee819b7aeb86da0e993912e1442098df897e299f01f9f46\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://adddf5cb2ba282aeb576b26efb28640f865a1721cc9b6eee8b3ee0457a2c9780\",\"dweb:/ipfs/QmNYgAmnLRwWZbhTuQhZs9rx4zcme1df5mEepkrniorSoW\"]},\"src/interfaces/delegator/IFullRestakeDelegator.sol\":{\"keccak256\":\"0xa3c8cb2e45d4d8ce90e95263bea40c01dc400f05ad65bc29597d878606be5e7d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://782cf5e201aa4cca037ebafd3807a68ff1cc721d5b8416a35244db0d0607369e\",\"dweb:/ipfs/QmQkJks6x7CKndeTPa9LxgTNygD5uEi7obhADhpq1Lsr9A\"]},\"src/interfaces/delegator/INetworkRestakeDelegator.sol\":{\"keccak256\":\"0xe7030fe30389a147fd710e3436ec346b4842695fd3e65a81b95375c9f1d633fc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://739c7e66d301778054f5c90bee45ec9438f68afba8a03eaaac52064c73b115ad\",\"dweb:/ipfs/QmfZ2ytKcTykAc76nxhg8ikUXV8NdBpetqb8W4YWPcox1Z\"]},\"src/interfaces/delegator/IOperatorNetworkSpecificDelegator.sol\":{\"keccak256\":\"0x74b95e64d29769202d45dd277bb830f623ff3d41ce77b80ce3ee4e318a5c71ec\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e512b903aae5c1b8a028c6e3f4f6223b5cb5d704503cfa6bd37b5346868f5c20\",\"dweb:/ipfs/QmZim9YExsPWtyxyeui993HTKAEmrg8MUcSkZ77Gp2JcuZ\"]},\"src/interfaces/delegator/IOperatorSpecificDelegator.sol\":{\"keccak256\":\"0x72075cab585dc17240cc3e32bc99b92f0d5627ddd988fed680e3e1a52d5a01e4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7448bc90699409ae61d85216b5efc2143a37f0f73354be2aea993bc54afca441\",\"dweb:/ipfs/QmXE4gAxM8pHosZK8mcTcj17puBx484meDCcmrDePskGHZ\"]},\"src/interfaces/service/INetworkMiddlewareService.sol\":{\"keccak256\":\"0x347afc7fcf1fbcdb96d66162070ef6c78aed27b3af2c1d5dfb4e511840631783\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2d90b8ceb495159e8e4e95d76447719dd166443f67dfabdd942846162071595c\",\"dweb:/ipfs/QmVVuiAWYx92T6vBvNMKZfTvraCf1fa16BsUKkdNs3hdHA\"]},\"src/interfaces/service/IOptInService.sol\":{\"keccak256\":\"0x76fb5460a6d87a5705433d4fbeff7253cd75b8bbd0c888b2088f16e86ace146a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://990322019b3d11465f7024bae77ccbf7e2fe5d6fa3c754584778f37d04fa1337\",\"dweb:/ipfs/QmaSNHzcqxTkUCG9a4nqVfLECHLdjdrwAnDi3yDC7tDL24\"]},\"src/interfaces/slasher/IBaseSlasher.sol\":{\"keccak256\":\"0x7c82528b445659c313ab77335c407b0b6efe5e79027187bb287f7bc74202b404\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0274c90aa5df1aa6bb470a6aab53992fb14fd7e5472c9430416505b29647d9cf\",\"dweb:/ipfs/QmckbmJLDetPemVzCnnGcKYWAZV2BRFXGDsjiaec8jkHxx\"]},\"src/interfaces/slasher/IBurner.sol\":{\"keccak256\":\"0xaf495dacc19ae0b3c787ba8021c5944927d70261536addd234d7dab146158c2b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9b3cc66251008be6ff9fc8b11ecc6831d5a9dca49a3fe9817fcd970253c1d447\",\"dweb:/ipfs/QmVxfb9ALGdF9W3SN2h41gQbUct6tawvu5bw4K89kFQ4HW\"]},\"src/interfaces/slasher/ISlasher.sol\":{\"keccak256\":\"0x34d226d67a3d5e16571f2fac91a8b9773551bcc41c88a96279669dd78d192625\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a6e8c1462ee4a1b0f745414be043c09012ea676613790aba004b06c85c980d1\",\"dweb:/ipfs/QmadjNEbHKRthtA1EeNy3Kg2sXpejH2KBeHm8QZtBPvXbJ\"]},\"src/interfaces/slasher/IVetoSlasher.sol\":{\"keccak256\":\"0xdf7edd04a4f36e9aec3a15241dcb6b6315b2e64927b12710c2c410d571fc55e9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c4be6ac339c2ebf230fed65363f036784224095d0cd0f3f2d01d64d6e0da9508\",\"dweb:/ipfs/QmRSMbpfaHExqrzUA8vYZMYZWh6eQW1KX9JKJSLdgronfg\"]},\"src/interfaces/vault/IVault.sol\":{\"keccak256\":\"0xffee01d383cd4e1a5530c614bf4360c1ef070c288abec9da1eb531b51bc07235\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://04f0046cac285d8ec44ebbb1f79dc94fab4495767190cad8364fbc1fafaadfb9\",\"dweb:/ipfs/QmUawAunwzXfCyShWfhKeThAgKtqe51hmrxvrXvM772M2R\"]},\"src/interfaces/vault/IVaultStorage.sol\":{\"keccak256\":\"0x592626f13754194f83047135de19229c49390bd59e34659b1bb38be71d973a22\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://06a6a9dfddd05e580b32bebe2cff4f63ba26a653180676d58225dd30d9c89d3e\",\"dweb:/ipfs/QmdgzBeY6Sxo8mGtyBxtv1tM1c2kU6J6zjeRd7vuXm4DU6\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.25+commit.b61c2a91"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"baseDelegatorHints","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"ExternalCall"},{"inputs":[],"type":"error","name":"InsufficientBurnerGas"},{"inputs":[],"type":"error","name":"InvalidInitialization"},{"inputs":[],"type":"error","name":"NoBurner"},{"inputs":[],"type":"error","name":"NotInitialized"},{"inputs":[],"type":"error","name":"NotInitializing"},{"inputs":[],"type":"error","name":"NotNetworkMiddleware"},{"inputs":[],"type":"error","name":"NotVault"},{"inputs":[],"type":"error","name":"ReentrancyGuardReentrantCall"},{"inputs":[{"internalType":"uint8","name":"bits","type":"uint8"},{"internalType":"uint256","name":"value","type":"uint256"}],"type":"error","name":"SafeCastOverflowedUintDowncast"},{"inputs":[{"internalType":"uint64","name":"version","type":"uint64","indexed":false}],"type":"event","name":"Initialized","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"BASE_DELEGATOR_HINTS","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"BURNER_GAS_LIMIT","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"BURNER_RESERVE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"FACTORY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"NETWORK_MIDDLEWARE_SERVICE","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"SLASHER_HINTS","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"TYPE","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"VAULT_FACTORY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"VETO_SLASHER_HINTS","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"cumulativeSlash","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint48","name":"timestamp","type":"uint48"},{"internalType":"bytes","name":"hint","type":"bytes"}],"stateMutability":"view","type":"function","name":"cumulativeSlashAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"slasher","type":"address"},{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint48","name":"timestamp","type":"uint48"}],"stateMutability":"view","type":"function","name":"cumulativeSlashHint","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint48","name":"timestamp","type":"uint48"}],"stateMutability":"view","type":"function","name":"cumulativeSlashHintInternal","outputs":[{"internalType":"bool","name":"exists","type":"bool"},{"internalType":"uint32","name":"hint","type":"uint32"}]},{"inputs":[{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[],"stateMutability":"view","type":"function","name":"isBurnerHook","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"latestSlashedCaptureTimestamp","outputs":[{"internalType":"uint48","name":"value","type":"uint48"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint48","name":"captureTimestamp","type":"uint48"},{"internalType":"bytes","name":"hints","type":"bytes"}],"stateMutability":"view","type":"function","name":"slashableStake","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"slasher","type":"address"},{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint48","name":"captureTimestamp","type":"uint48"}],"stateMutability":"view","type":"function","name":"slashableStakeHints","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"staticDelegateCall"},{"inputs":[],"stateMutability":"view","type":"function","name":"vault","outputs":[{"internalType":"address","name":"","type":"address"}]}],"devdoc":{"kind":"dev","methods":{"cumulativeSlash(bytes32,address)":{"params":{"operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"},"returns":{"_0":"cumulative slash amount"}},"cumulativeSlashAt(bytes32,address,uint48,bytes)":{"params":{"hint":"hint for the checkpoint index","operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)","timestamp":"time point to get the cumulative slash amount until (inclusively)"},"returns":{"_0":"cumulative slash amount until the given timestamp (inclusively)"}},"initialize(bytes)":{"params":{"data":"some data to use"}},"slashableStake(bytes32,address,uint48,bytes)":{"params":{"captureTimestamp":"time point to get the stake amount at","hints":"hints for the checkpoints' indexes","operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"},"returns":{"amount":"slashable amount of the stake"}},"staticDelegateCall(address,bytes)":{"details":"It allows to use this contract's storage on-chain.","params":{"data":"data to make a delegatecall with","target":"address of the contract to make a delegatecall to"}}},"version":1},"userdoc":{"kind":"user","methods":{"BURNER_GAS_LIMIT()":{"notice":"Get a gas limit for the burner."},"BURNER_RESERVE()":{"notice":"Get a reserve gas between the gas limit check and the burner's execution."},"FACTORY()":{"notice":"Get the factory's address."},"NETWORK_MIDDLEWARE_SERVICE()":{"notice":"Get the network middleware service's address."},"TYPE()":{"notice":"Get the entity's type."},"VAULT_FACTORY()":{"notice":"Get the vault factory's address."},"cumulativeSlash(bytes32,address)":{"notice":"Get a cumulative slash amount for an operator on a subnetwork."},"cumulativeSlashAt(bytes32,address,uint48,bytes)":{"notice":"Get a cumulative slash amount for an operator on a subnetwork until a given timestamp (inclusively) using a hint."},"initialize(bytes)":{"notice":"Initialize this entity contract by using a given data."},"isBurnerHook()":{"notice":"Get if the burner is needed to be called on a slashing."},"latestSlashedCaptureTimestamp(bytes32,address)":{"notice":"Get the latest capture timestamp that was slashed on a subnetwork."},"slashableStake(bytes32,address,uint48,bytes)":{"notice":"Get a slashable amount of a stake got at a given capture timestamp using hints."},"staticDelegateCall(address,bytes)":{"notice":"Make a delegatecall from this contract to a given target contract with a particular data (always reverts with a return data)."},"vault()":{"notice":"Get the vault's address."}},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/contracts/hints/SlasherHints.sol":"BaseSlasherHints"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol":{"keccak256":"0x6662ec4e5cefca03eeadd073e9469df8d2944bb2ee8ec8f7622c2c46aab5f225","urls":["bzz-raw://4d8544c6f8daa4d1bc215c6a72fe0acdb748664a105b0e5efc19295667521d45","dweb:/ipfs/QmdGWqdnXT8S3RgCR6aV8XHZrsybieMQLLnug1NtpSjEXN"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol":{"keccak256":"0xc163fcf9bb10138631a9ba5564df1fa25db9adff73bd9ee868a8ae1858fe093a","urls":["bzz-raw://9706d43a0124053d9880f6e31a59f31bc0a6a3dc1acd66ce0a16e1111658c5f6","dweb:/ipfs/QmUFmfowzkRwGtDu36cXV9SPTBHJ3n7dG9xQiK5B28jTf2"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b","urls":["bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609","dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol":{"keccak256":"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397","urls":["bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9","dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardUpgradeable.sol":{"keccak256":"0xb44e086e941292cdc7f440de51478493894ef0b1aeccb0c4047445919f667f74","urls":["bzz-raw://942dad22fbdc1669f025540ba63aa3ccfad5f8458fc5d4525b31ebf272e7af45","dweb:/ipfs/Qmdo4X2M82aM3AMoW2kf2jhYkSCyC4T1pHNd6obdsDFnAB"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol":{"keccak256":"0xdaba3f7c42c55b2896353f32bd27d4d5f8bae741b3b05d4c53f67abc4dc47ce8","urls":["bzz-raw://1fa2e61141c602510bcd2cd936ed9561922ac8772a9b9c9a9db091a74e354a45","dweb:/ipfs/QmcHQDDoEBwJmwUbzoVkytvJsBx3KVHYFFnDkvRGWh9Wmh"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol":{"keccak256":"0xb6b36edd6a2999fd243ff226d6cbf84bd71af2432bbd0dfe19392996a1d9cb41","urls":["bzz-raw://1fd2f35495652e57e3f99bc6c510bc5f7dd398a176ea2e72d8ed730aebc6ca26","dweb:/ipfs/QmTQV6X4gkikTib49cho5iDX3JvSQbdsoEChoDwrk3CbbH"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC1271.sol":{"keccak256":"0x85a45f3f10014a0f8be41157a32b6a5f905753ea64a4b64e29fc12b7deeecf39","urls":["bzz-raw://c3c74009ce36136b36c77c23935b8e4a7b4f253be2da2be4fb4a916b1ce43743","dweb:/ipfs/QmcH36v3iN7SJJuF73AunLR2LtNxhVJ1wm63ph4dPZ4pcL"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC5267.sol":{"keccak256":"0x92aa1df62dc3d33f1656d63bede0923e0df0b706ad4137c8b10b0a8fe549fd92","urls":["bzz-raw://c5c0f29195ad64cbe556da8e257dac8f05f78c53f90323c0d2accf8e6922d33a","dweb:/ipfs/QmQ61TED8uaCZwcbh8KkgRSsCav7x7HbcGHwHts3U4DmUP"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70","urls":["bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c","dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol":{"keccak256":"0x6008dabfe393240d73d7dd7688033f72740d570aa422254d29a7dce8568f3aff","urls":["bzz-raw://f5196ec75139918c6c7bb4251b36395e668f1fa6d206beba7e7520e74913940d","dweb:/ipfs/QmSyqjksXxmm2mCG6qRd1yuwLykypkSVBbnBnGqJRcuJMi"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0x37bb49513c49c87c4642a891b13b63571bc87013dde806617aa1efb54605f386","urls":["bzz-raw://b3036b3a83b7c48f96641f2a9002b9f2dcb6a5958dd670894ada21ae8229b3d0","dweb:/ipfs/QmUNfSBdoVtjhETaUJCYcaC7pTMgbhht926tJ2uXJbiVd3"],"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/ShortStrings.sol":{"keccak256":"0x18a7171df639a934592915a520ecb97c5bbc9675a1105607aac8a94e72bf62c6","urls":["bzz-raw://7478e1f13da69a2867ccd883001d836b75620362e743f196376d63ed0c422a1c","dweb:/ipfs/QmWywcQ9TNfwtoqAxbn25d8C5VrV12PrPS9UjtGe6pL2BA"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol":{"keccak256":"0x32ba59b4b7299237c8ba56319110989d7978a039faf754793064e967e5894418","urls":["bzz-raw://1ae50c8b562427df610cc4540c9bf104acca7ef8e2dcae567ae7e52272281e9c","dweb:/ipfs/QmTHiadFCSJUPpRjNegc5SahmeU8bAoY8i9Aq6tVscbcKR"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0x55f102ea785d8399c0e58d1108e2d289506dde18abc6db1b7f68c1f9f9bc5792","urls":["bzz-raw://6e52e0a7765c943ef14e5bcf11e46e6139fa044be564881378349236bf2e3453","dweb:/ipfs/QmZEeeXoFPW47amyP35gfzomF9DixqqTEPwzBakv6cZw6i"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol":{"keccak256":"0xeed0a08b0b091f528356cbc7245891a4c748682d4f6a18055e8e6ca77d12a6cf","urls":["bzz-raw://ba80ba06c8e6be852847e4c5f4492cef801feb6558ae09ed705ff2e04ea8b13c","dweb:/ipfs/QmXRJDv3xHLVQCVXg1ZvR35QS9sij5y9NDWYzMfUfAdTHF"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/EIP712.sol":{"keccak256":"0x999f705a027ed6dc2d4e0df2cc4a509852c6bfd11de1c8161bf88832d0503fd0","urls":["bzz-raw://0798def67258d9a3cc20b2b4da7ebf351a5cefe0abfdd665d2d81f8e32f89b21","dweb:/ipfs/QmPEvJosnPfzHNjKvCv2D3891mA2Ww8eUwkqrxBjuYdHCt"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol":{"keccak256":"0xba333517a3add42cd35fe877656fc3dfcc9de53baa4f3aabbd6d12a92e4ea435","urls":["bzz-raw://2ceacff44c0fdc81e48e0e0b1db87a2076d3c1fb497341de077bf1da9f6b406c","dweb:/ipfs/QmRUo1muMRAewxrKQ7TkXUtknyRoR57AyEkoPpiuZQ8FzX"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/SignatureChecker.sol":{"keccak256":"0x6b11eb41a228cca35d4b662b4df69fcd75192851365102690f57b2ac01e83fe6","urls":["bzz-raw://ab006a2983ed350d2af21ddcdd835dcae3b8340086cc4d088460da5abd041f69","dweb:/ipfs/QmbEacDhkJZiGrgzLjB4pNtE8Z1uudjDw1DvcDUTVQFsLG"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b","urls":["bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df","dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d","urls":["bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875","dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol":{"keccak256":"0xe19a4d5f31d2861e7344e8e535e2feafb913d806d3e2b5fe7782741a2a7094fe","urls":["bzz-raw://4aed79c0fa6f0546ed02f2f683e8f77f0fd2ed7eb34d8bbf3d373c9a6d95b13c","dweb:/ipfs/QmWqVz6UAVqmnWU5pqYPt1o6iDEZyPaBraAA3rKfTTSfYj"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0x5f7e4076e175393767754387c962926577f1660dd9b810187b9002407656be72","urls":["bzz-raw://7d533a1c97cd43a57cd9c465f7ee8dd0e39ae93a8fb8ff8e5303a356b081cdcc","dweb:/ipfs/QmVBEei6aTnvYNZp2CHYVNKyZS4q1KkjANfY39WVXZXVoT"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/Checkpoints.sol":{"keccak256":"0xbdc5e074d7dd6678f67e92b1a51a20226801a407b0e1af3da367c5d1ff4519ad","urls":["bzz-raw://a36cca6b22fff3db16fc789ff6c60eea71d4b156065d4d0c83a0bc5e91a77a8b","dweb:/ipfs/QmYN3exd5AemxjBrN8XMB1p5LbbE16uC3sjbYjwi8AjcGR"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/types/Time.sol":{"keccak256":"0xc7755af115020049e4140f224f9ee88d7e1799ffb0646f37bf0df24bf6213f58","urls":["bzz-raw://7f09bf94d5274334ec021f61a04659db303f31e60460e14b709c9bf187740111","dweb:/ipfs/QmNvgomZYUwFAt4cZbPWAiTeSZQreGehY9BK5xyVJsUttb"],"license":"MIT"},"src/contracts/common/Entity.sol":{"keccak256":"0x3d61a932995b8443381f3950542d388223a2c26dd5d29a3274dea3baa7388bd7","urls":["bzz-raw://7cdf5f03ca72fd263fd32ff59c8d88ddca911ae83896a287d10772c1bbe9b138","dweb:/ipfs/QmbP84r5BWT1Rn9AYTntWSf3xUMTTCohTZJFhbBhDXFoHa"],"license":"BUSL-1.1"},"src/contracts/common/MigratableEntity.sol":{"keccak256":"0x2d736f4dacd5d7e7697503bc426c78b8250fe1694ca157965ec178da6807de58","urls":["bzz-raw://f1237acf96b4b9f9b69156e068eddd726a6e15bd8e87a18dc999cd4ba4da069c","dweb:/ipfs/QmS6M8fiFFSeuJ4ZKKq1z8W7w4ybeHQSy5TLASGoc1LVic"],"license":"BUSL-1.1"},"src/contracts/common/StaticDelegateCallable.sol":{"keccak256":"0x350029aa8955eacaffffaeb58babc5c98e80ebc5c5db388ed17ee6465f4a9d90","urls":["bzz-raw://eb392a8ee9050e0af606897df63e3404e3829e8b688b580663892f9664195764","dweb:/ipfs/QmaXC8jqV8UrrAFkzXTEv2fJF56sy33HhLxAzaRZmUxuXD"],"license":"BUSL-1.1"},"src/contracts/delegator/BaseDelegator.sol":{"keccak256":"0x7c54d491fdd4415b764a9c8defa068e56d4c0c8c9419be0053a1d377669290e8","urls":["bzz-raw://9238bfbad0f6eeb0dc7727724de14380f1980b395902269703d5e2ef07e52e10","dweb:/ipfs/QmPJn1V4HNXcEghYvogGuSTF24dSQUPosR5qtsXcmNqRm3"],"license":"BUSL-1.1"},"src/contracts/delegator/FullRestakeDelegator.sol":{"keccak256":"0x0a81c4f8e72914563a9cb771e93acf889c71ea36b7bec040e4eb562b199d5af1","urls":["bzz-raw://6fc66b6ba02da77046a0bbbd1dd407a62c08f52e04486c9cbd2cb1cca3da555f","dweb:/ipfs/QmZQivK1ZnMxfRQQ5aLpV9co5u55wQVNev5Rg1hzAqxhkE"],"license":"BUSL-1.1"},"src/contracts/delegator/NetworkRestakeDelegator.sol":{"keccak256":"0xd3a8e6522f9c6fdcc2da837c9023afd6bdff2bce45a35590320c475519e3636d","urls":["bzz-raw://58b17a87f6554f08376f9ea7fedf486a4aa75801bf0ad8b23ff5a46959b6b7a3","dweb:/ipfs/QmSTmNh67tYt8CmjVZb57r8N3qX5yeYdMApKPJm3qvQgQw"],"license":"BUSL-1.1"},"src/contracts/delegator/OperatorNetworkSpecificDelegator.sol":{"keccak256":"0x031a10722b9ec49048f0952710401131290adb87e71caf294e864e7ac3b98a16","urls":["bzz-raw://72428febc875134b2f29205e6f294634a1c22a7d5c78d6a9cb2f8196f107c9b5","dweb:/ipfs/QmTPwXR6h5oytckmkLrHdKeEMdphJxceDhYUR4zvQeWAwY"],"license":"BUSL-1.1"},"src/contracts/delegator/OperatorSpecificDelegator.sol":{"keccak256":"0x630ce62fa30b9f3349ab7a8cf8dbf041319febc6dd757be2f94d3d25944ed328","urls":["bzz-raw://c2ac59d47ce57d2a6819ae9833e1a618a371eccff93eb5ab367b201b01f42bfa","dweb:/ipfs/QmdBpGMBivpNPv2WbH8vnCUy5xkVeaxQvGgqi33vKCz1kA"],"license":"BUSL-1.1"},"src/contracts/hints/DelegatorHints.sol":{"keccak256":"0x44aa0c396311a54afbc7c73e8dadeed41e3165a4fd13f712b27d63d50fc3376d","urls":["bzz-raw://2f255214f3531fc707d88be0d56a7a0aed4180439316d099d760d9118aa83093","dweb:/ipfs/QmZD1w5p1ukJSXumUAjvxwGmkPhn7vsr21Y2atLGEZR2oi"],"license":"BUSL-1.1"},"src/contracts/hints/Hints.sol":{"keccak256":"0x8b565df1ae35993c097a9e642002782a8f451f6fd01809cad6bcd345bdf1b99c","urls":["bzz-raw://99a19adb01e350a92f534095b3078229df1f2f83077992d75d58d8684be45971","dweb:/ipfs/QmbmwcuswVbzvwHQFTtrJG86oV98GnfxqYTb8cV8u1acox"],"license":"BUSL-1.1"},"src/contracts/hints/OptInServiceHints.sol":{"keccak256":"0x95d9407900d27b9f4a1233b772aeed809c07b2dc5b31cfc9fa77ca26514c49e5","urls":["bzz-raw://a13a8877e312d7e6b8b85bde3668c5d84ff5ecc83f762cd573f2b7104c64eb42","dweb:/ipfs/QmYV2J55acuGzCNnS3juABuUHY5U1xc8g8o9jwEyFFdeG5"],"license":"BUSL-1.1"},"src/contracts/hints/SlasherHints.sol":{"keccak256":"0xd77c5f3bbb0265af8ecd947df88f6f9684e136d80052b5292f5b29aaa3566a3f","urls":["bzz-raw://484a26504bf6706202ec82a9a4cfa7d196bbc552b5b78ced25bf7130c2842595","dweb:/ipfs/QmaQqmkoZoUWEam4R94vmajzH3gKqFqpZQwFbrHDsN1peV"],"license":"BUSL-1.1"},"src/contracts/hints/VaultHints.sol":{"keccak256":"0xccb505b7159b769cc114d67b87c2de6b106557f667fc8f3780114baad5c3c442","urls":["bzz-raw://6d0c80a908fc16e96a8b5605a0bd53f9e89ad0ef0a738fbbae80ba4d3160749b","dweb:/ipfs/QmXo5UtWoR8YmunqcbBU8rQMm1nvmvjNPoXcVrDhh4pEwR"],"license":"BUSL-1.1"},"src/contracts/libraries/Checkpoints.sol":{"keccak256":"0xba90097c8bfe0a975499428b5f8ac5569483c7d92ccc28c12d70de416aae040c","urls":["bzz-raw://12f5d93ca94cd06d3147db68993165a58e17903ed53682560de61f3085ad4609","dweb:/ipfs/QmePiuAqvXprMLmFZkGZeGjvGPAvsEDHfCDv7BoQhXu9xE"],"license":"MIT"},"src/contracts/libraries/ERC4626Math.sol":{"keccak256":"0x8441160513c1cbeb1c3b9ee077bcc7e7ce20006b52a77c8dd39ff0ef89699939","urls":["bzz-raw://943f8cc3e26ddf649f465f40c909819f5c864717c4baa339e9e403b9374a4653","dweb:/ipfs/QmXPxi1sUDsrGprZdUgCzoPEosaZMv9ZhygWQ1vAi1phAB"],"license":"MIT"},"src/contracts/libraries/Subnetwork.sol":{"keccak256":"0xf5ef5506fd66082b3c2e7f3df37529f5a8efad32ac62e7c8914bd63219190bfe","urls":["bzz-raw://ba031a54ee0d0e9a270c2b9e18437f5668cfeb659cfd5fe0677459d7fcac2a56","dweb:/ipfs/QmReP3H7qQ78tAfgLnJKsNEQNCQfF1X1Get38Ffd4kzq32"],"license":"MIT"},"src/contracts/service/OptInService.sol":{"keccak256":"0x4e0932077f2686b7990e10d59deb2535334c0d09e52ef6e57c6ab09eca21c4b1","urls":["bzz-raw://7c00d311032ed4a1743aca7475f3c86ce15cdfc2218108efc3731c03d34a5278","dweb:/ipfs/QmUGGfVwVhaHr5kS4177yKKYiLYzi5qZpkEmvYxBZqazxf"],"license":"BUSL-1.1"},"src/contracts/slasher/BaseSlasher.sol":{"keccak256":"0x190e5dce196a061bdad42468c52e9f5b0eb7810cd7d0c19f04d6a2e94984f1b6","urls":["bzz-raw://07ca08d0cd43c2fe5d54a5577f6bdd522ced410f5d3a52e764deaa7ba26b5f06","dweb:/ipfs/QmZe3PiMKBQKWcwodaLupragdqxPjgS4v1qMC7RXau8hDF"],"license":"BUSL-1.1"},"src/contracts/slasher/Slasher.sol":{"keccak256":"0xeee0cb25fad58d496fdcc641d852d11bae06e6ceed5230ae21150964175c494f","urls":["bzz-raw://34aa27d21246a1bcee0b6a2afa8d9d613441156362430392f75d176511d58c61","dweb:/ipfs/Qmf53Y3zdGfH4PU2zpSGeHZ8mMLzLXCtmkQrG5mnVJECQ3"],"license":"BUSL-1.1"},"src/contracts/slasher/VetoSlasher.sol":{"keccak256":"0xeccc8128de5e1ad499c067feac1c526638fbbac1a18b96726fc7507969fd5897","urls":["bzz-raw://cdfcf281338423625acbccdf8810115b258ef7cfe4aa3c10b8911ead1aa85429","dweb:/ipfs/QmZFsDvZXpkFkx4PHcDXAVPN3ZCAahbSVfYpSVrMBvbt4k"],"license":"BUSL-1.1"},"src/contracts/vault/Vault.sol":{"keccak256":"0x2ceff6ed3298c4cad144c99fcc79b51cb9397d6ebef00285b915848b476f8c2e","urls":["bzz-raw://11f2fb3581854f3ab6e82e8d4935d9eb510c903a13c3f022346c2956a58f5307","dweb:/ipfs/QmdUnoXoyYoG9SGWyQZCFyLDRUUX3eXyXetkRvw6jxqqBz"],"license":"BUSL-1.1"},"src/contracts/vault/VaultStorage.sol":{"keccak256":"0x57db25b127d77ea3472de53e3a4af3354399655b9268638b99ca5925fa364a56","urls":["bzz-raw://aa763d9a6ec508ae3abfb8228b72b9fd9525279e5135d4962e79ff059feb1173","dweb:/ipfs/QmcbDR6E9wyEpu6V2FkEC4hnWy47zXA9LSKJde6zSGd33Q"],"license":"BUSL-1.1"},"src/interfaces/common/IEntity.sol":{"keccak256":"0x8ef4b63d6da63489778ccd5f8d13ebdd527dd4b62730b2c616df5af7474d2d21","urls":["bzz-raw://5a8d69576a9219d85c50816a18ad53a4d53cfcb27ed38b8cccc808dc2734b71b","dweb:/ipfs/QmYVN3P4Q4REvBWJ97TbAcaxm3uyB2anV6NSGa6ZtSwcEv"],"license":"MIT"},"src/interfaces/common/IMigratableEntity.sol":{"keccak256":"0x8f5f2809f3afbe8ebfbb365dd7b57b4dd3b6f9943a6187eaf648d45895b8e3c4","urls":["bzz-raw://0ffe640537d539e7a4fde70d30d3e4c57f4ba9c2c25c450cea713aae38e8fd5c","dweb:/ipfs/QmSUTGzvdcn1R1KB7tLThMRtESsfPbeXDhhhKWGtntzBds"],"license":"MIT"},"src/interfaces/common/IRegistry.sol":{"keccak256":"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb","urls":["bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014","dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK"],"license":"MIT"},"src/interfaces/common/IStaticDelegateCallable.sol":{"keccak256":"0xa335d4e81b9071b7de66ef92b43ff20671d86516eb1be46fef29a3483cd3f5d5","urls":["bzz-raw://d464b9db863c14c05547d2b23352f2e9b7b784799cf09f6bbc4906a2a74e3516","dweb:/ipfs/QmUVWzFvJz7eEbDQKiFTTzwi7TEbjcs3VmwdM4kuptAKvi"],"license":"MIT"},"src/interfaces/delegator/IBaseDelegator.sol":{"keccak256":"0x96bb312f032e17accce3f8f80936d99468029d6b37c9ca74acdb4b026a0148ee","urls":["bzz-raw://2a66dcb5b7d1a6ef6a363431ea98ebd78bc4fdd3d7a134d9b542dc66e7d025c2","dweb:/ipfs/QmRhTPLd2ZAyRHmJUFUcWKs9b3if49QY17LYZuRqWmghw8"],"license":"MIT"},"src/interfaces/delegator/IDelegatorHook.sol":{"keccak256":"0xc51aa8d7d1f6c8043ee819b7aeb86da0e993912e1442098df897e299f01f9f46","urls":["bzz-raw://adddf5cb2ba282aeb576b26efb28640f865a1721cc9b6eee8b3ee0457a2c9780","dweb:/ipfs/QmNYgAmnLRwWZbhTuQhZs9rx4zcme1df5mEepkrniorSoW"],"license":"MIT"},"src/interfaces/delegator/IFullRestakeDelegator.sol":{"keccak256":"0xa3c8cb2e45d4d8ce90e95263bea40c01dc400f05ad65bc29597d878606be5e7d","urls":["bzz-raw://782cf5e201aa4cca037ebafd3807a68ff1cc721d5b8416a35244db0d0607369e","dweb:/ipfs/QmQkJks6x7CKndeTPa9LxgTNygD5uEi7obhADhpq1Lsr9A"],"license":"MIT"},"src/interfaces/delegator/INetworkRestakeDelegator.sol":{"keccak256":"0xe7030fe30389a147fd710e3436ec346b4842695fd3e65a81b95375c9f1d633fc","urls":["bzz-raw://739c7e66d301778054f5c90bee45ec9438f68afba8a03eaaac52064c73b115ad","dweb:/ipfs/QmfZ2ytKcTykAc76nxhg8ikUXV8NdBpetqb8W4YWPcox1Z"],"license":"MIT"},"src/interfaces/delegator/IOperatorNetworkSpecificDelegator.sol":{"keccak256":"0x74b95e64d29769202d45dd277bb830f623ff3d41ce77b80ce3ee4e318a5c71ec","urls":["bzz-raw://e512b903aae5c1b8a028c6e3f4f6223b5cb5d704503cfa6bd37b5346868f5c20","dweb:/ipfs/QmZim9YExsPWtyxyeui993HTKAEmrg8MUcSkZ77Gp2JcuZ"],"license":"MIT"},"src/interfaces/delegator/IOperatorSpecificDelegator.sol":{"keccak256":"0x72075cab585dc17240cc3e32bc99b92f0d5627ddd988fed680e3e1a52d5a01e4","urls":["bzz-raw://7448bc90699409ae61d85216b5efc2143a37f0f73354be2aea993bc54afca441","dweb:/ipfs/QmXE4gAxM8pHosZK8mcTcj17puBx484meDCcmrDePskGHZ"],"license":"MIT"},"src/interfaces/service/INetworkMiddlewareService.sol":{"keccak256":"0x347afc7fcf1fbcdb96d66162070ef6c78aed27b3af2c1d5dfb4e511840631783","urls":["bzz-raw://2d90b8ceb495159e8e4e95d76447719dd166443f67dfabdd942846162071595c","dweb:/ipfs/QmVVuiAWYx92T6vBvNMKZfTvraCf1fa16BsUKkdNs3hdHA"],"license":"MIT"},"src/interfaces/service/IOptInService.sol":{"keccak256":"0x76fb5460a6d87a5705433d4fbeff7253cd75b8bbd0c888b2088f16e86ace146a","urls":["bzz-raw://990322019b3d11465f7024bae77ccbf7e2fe5d6fa3c754584778f37d04fa1337","dweb:/ipfs/QmaSNHzcqxTkUCG9a4nqVfLECHLdjdrwAnDi3yDC7tDL24"],"license":"MIT"},"src/interfaces/slasher/IBaseSlasher.sol":{"keccak256":"0x7c82528b445659c313ab77335c407b0b6efe5e79027187bb287f7bc74202b404","urls":["bzz-raw://0274c90aa5df1aa6bb470a6aab53992fb14fd7e5472c9430416505b29647d9cf","dweb:/ipfs/QmckbmJLDetPemVzCnnGcKYWAZV2BRFXGDsjiaec8jkHxx"],"license":"MIT"},"src/interfaces/slasher/IBurner.sol":{"keccak256":"0xaf495dacc19ae0b3c787ba8021c5944927d70261536addd234d7dab146158c2b","urls":["bzz-raw://9b3cc66251008be6ff9fc8b11ecc6831d5a9dca49a3fe9817fcd970253c1d447","dweb:/ipfs/QmVxfb9ALGdF9W3SN2h41gQbUct6tawvu5bw4K89kFQ4HW"],"license":"MIT"},"src/interfaces/slasher/ISlasher.sol":{"keccak256":"0x34d226d67a3d5e16571f2fac91a8b9773551bcc41c88a96279669dd78d192625","urls":["bzz-raw://7a6e8c1462ee4a1b0f745414be043c09012ea676613790aba004b06c85c980d1","dweb:/ipfs/QmadjNEbHKRthtA1EeNy3Kg2sXpejH2KBeHm8QZtBPvXbJ"],"license":"MIT"},"src/interfaces/slasher/IVetoSlasher.sol":{"keccak256":"0xdf7edd04a4f36e9aec3a15241dcb6b6315b2e64927b12710c2c410d571fc55e9","urls":["bzz-raw://c4be6ac339c2ebf230fed65363f036784224095d0cd0f3f2d01d64d6e0da9508","dweb:/ipfs/QmRSMbpfaHExqrzUA8vYZMYZWh6eQW1KX9JKJSLdgronfg"],"license":"MIT"},"src/interfaces/vault/IVault.sol":{"keccak256":"0xffee01d383cd4e1a5530c614bf4360c1ef070c288abec9da1eb531b51bc07235","urls":["bzz-raw://04f0046cac285d8ec44ebbb1f79dc94fab4495767190cad8364fbc1fafaadfb9","dweb:/ipfs/QmUawAunwzXfCyShWfhKeThAgKtqe51hmrxvrXvM772M2R"],"license":"MIT"},"src/interfaces/vault/IVaultStorage.sol":{"keccak256":"0x592626f13754194f83047135de19229c49390bd59e34659b1bb38be71d973a22","urls":["bzz-raw://06a6a9dfddd05e580b32bebe2cff4f63ba26a653180676d58225dd30d9c89d3e","dweb:/ipfs/QmdgzBeY6Sxo8mGtyBxtv1tM1c2kU6J6zjeRd7vuXm4DU6"],"license":"MIT"}},"version":1},"id":84} \ No newline at end of file diff --git a/out/SlasherHints.sol/SlasherHints.json b/out/SlasherHints.sol/SlasherHints.json index 593ed498..72d129f9 100644 --- a/out/SlasherHints.sol/SlasherHints.json +++ b/out/SlasherHints.sol/SlasherHints.json @@ -1 +1 @@ -{"abi":[{"type":"constructor","inputs":[{"name":"baseSlasherHints","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"BASE_SLASHER_HINTS","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"BURNER_GAS_LIMIT","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"BURNER_RESERVE","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"FACTORY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"NETWORK_MIDDLEWARE_SERVICE","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"TYPE","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"VAULT_FACTORY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"cumulativeSlash","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"cumulativeSlashAt","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"timestamp","type":"uint48","internalType":"uint48"},{"name":"hint","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"initialize","inputs":[{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"isBurnerHook","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"latestSlashedCaptureTimestamp","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"value","type":"uint48","internalType":"uint48"}],"stateMutability":"view"},{"type":"function","name":"slash","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"captureTimestamp","type":"uint48","internalType":"uint48"},{"name":"hints","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"slashedAmount","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"slashHints","inputs":[{"name":"slasher","type":"address","internalType":"address"},{"name":"msgSender","type":"address","internalType":"address"},{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"captureTimestamp","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"slashableStake","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"captureTimestamp","type":"uint48","internalType":"uint48"},{"name":"hints","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"staticDelegateCall","inputs":[{"name":"target","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"vault","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"Slash","inputs":[{"name":"subnetwork","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"slashedAmount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"captureTimestamp","type":"uint48","indexed":false,"internalType":"uint48"}],"anonymous":false},{"type":"error","name":"CheckpointUnorderedInsertion","inputs":[]},{"type":"error","name":"ExternalCall","inputs":[]},{"type":"error","name":"InsufficientBurnerGas","inputs":[]},{"type":"error","name":"InsufficientSlash","inputs":[]},{"type":"error","name":"InvalidCaptureTimestamp","inputs":[]},{"type":"error","name":"InvalidInitialization","inputs":[]},{"type":"error","name":"NoBurner","inputs":[]},{"type":"error","name":"NotInitialized","inputs":[]},{"type":"error","name":"NotInitializing","inputs":[]},{"type":"error","name":"NotNetworkMiddleware","inputs":[]},{"type":"error","name":"NotVault","inputs":[]},{"type":"error","name":"ReentrancyGuardReentrantCall","inputs":[]},{"type":"error","name":"SafeCastOverflowedUintDowncast","inputs":[{"name":"bits","type":"uint8","internalType":"uint8"},{"name":"value","type":"uint256","internalType":"uint256"}]}],"bytecode":{"object":"0x6101403461015d576001600160401b0390601f61209f38819003918201601f1916830191848311848410176101615780849260209460405283398101031261015d5751906001600160a01b038216820361015d57306080527ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a009081549060ff8260401c1661014b578080831603610106575b835f60a0525f60c0525f60e052610100905f825261012090815260405190611f299283610176843960805183505060a051836104f2015260c0518381816109490152611379015260e05183818161031d01526116a901525182818161021c01526104ae0152518181816106920152610d330152f35b6001600160401b031990911681179091556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a15f8080610091565b60405163f92ee8a960e01b8152600490fd5b5f80fd5b634e487b7160e01b5f52604160045260245ffdfe60806040526004361015610011575f80fd5b5f3560e01c8063021a815614610124578063103f29071461011f5780631a2be2c41461011a578063238ab85f14610115578063267de1f3146101105780632964f8dc1461010b5780632c9d45b3146101065780632dd310001461010157806334d098ea146100fc578063439fab91146100f7578063457821b7146100f25780639f86fd85146100ed578063aa8e6489146100e8578063aab3595f146100e3578063bb24fe8a146100de578063d5c24e1a146100d95763fbfa77cf146100d4575f80fd5b61098a565b61096d565b61092a565b610905565b6108c7565b6106c1565b61067d565b610545565b610521565b6104dd565b610499565b61047d565b610428565b6103c4565b61034c565b610308565b61017b565b6001600160a01b0381160361013a57565b5f80fd5b65ffffffffffff81160361013a57565b9181601f8401121561013a578235916001600160401b03831161013a576020838186019501011161013a57565b3461013a5760a036600319011261013a5760043560243561019b81610129565b6064356101a78161013e565b6084356001600160401b03811161013a576101c690369060040161014e565b917f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0060028154146102ec5760029055604051635daf681960e11b8152606086901c60048201526001600160a01b036020826024817f000000000000000000000000000000000000000000000000000000000000000085165afa9182156102e7575f926102b6575b50339116036102a4576102a0946102679460443591610a63565b61029060017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055565b6040519081529081906020820190565b0390f35b60405163227bf64d60e01b8152600490fd5b6102d991925060203d6020116102e0575b6102d181836107dd565b810190610ddf565b905f61024d565b503d6102c7565b610a27565b604051633ee5aeb560e01b8152600490fd5b5f91031261013a57565b3461013a575f36600319011261013a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461013a57604036600319011261013a57602061039861039360243561037181610129565b6004355f526002845260405f209060018060a01b03165f5260205260405f2090565b6115c8565b604051908152f35b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b3461013a5760c036600319011261013a576102a06104146004356103e781610129565b6103f2602435610129565b6064356103fe81610129565b60a4359161040b8361013e565b60443590610ce7565b6040519182916020835260208301906103a0565b3461013a57604036600319011261013a57602065ffffffffffff61047360243561045181610129565b6004355f526001845260405f209060018060a01b03165f5260205260405f2090565b5416604051908152f35b3461013a575f36600319011261013a576020604051614e208152f35b3461013a575f36600319011261013a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461013a575f36600319011261013a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461013a575f36600319011261013a57602060ff5f5460a01c166040519015158152f35b3461013a57602036600319011261013a576001600160401b0360043581811161013a5761057690369060040161014e565b5f80516020611ed4833981519152549260ff8460401c1615931680159081610675575b600114908161066b575b159081610662575b50610650575f80516020611ed4833981519152805467ffffffffffffffff191660011790556105de918361062c57611672565b6105e457005b5f80516020611ed4833981519152805460ff60401b19169055604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a1005b5f80516020611ed4833981519152805460ff60401b1916600160401b179055611672565b60405163f92ee8a960e01b8152600490fd5b9050155f6105ab565b303b1591506105a3565b849150610599565b3461013a575f36600319011261013a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461013a5760408060031936011261013a576004356106df81610129565b602435906001600160401b03821161013a575f809161070561076994369060040161014e565b908187519283928337810184815203915af43d156107715761075b3d61072a8161081a565b90610737865192836107dd565b81523d5f602083013e5b8451948593151560208501528084015260608301906103a0565b03601f1981018352826107dd565b805190602001fd5b61075b6060610741565b634e487b7160e01b5f52604160045260245ffd5b602081019081106001600160401b038211176107aa57604052565b61077b565b604081019081106001600160401b038211176107aa57604052565b6001600160401b0381116107aa57604052565b90601f801991011681019081106001600160401b038211176107aa57604052565b6040519061080b826107af565b565b6040519061080b8261078f565b6001600160401b0381116107aa57601f01601f191660200190565b81601f8201121561013a5780359061084c8261081a565b9261085a60405194856107dd565b8284526020838301011161013a57815f926020809301838601378301015290565b90608060031983011261013a576004359160243561089881610129565b916044356108a58161013e565b91606435906001600160401b03821161013a576108c491600401610835565b90565b3461013a5760206103986109006108dd3661087b565b939190925f526002865260405f209060018060a01b03165f5260205260405f2090565b61180c565b3461013a5760206109216109183661087b565b92919091610ed9565b50604051908152f35b3461013a575f36600319011261013a5760206040516001600160401b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461013a575f36600319011261013a576020604051620249f08152f35b3461013a575f36600319011261013a575f546040516001600160a01b039091168152602090f35b604051906109be8261078f565b60608252565b9060208282031261013a5781356001600160401b039283821161013a57019060208282031261013a57604051926109fa8461078f565b823590811161013a57610a0d9201610835565b815290565b9081602091031261013a57516108c48161013e565b6040513d5f823e3d90fd5b634e487b7160e01b5f52601160045260245ffd5b65ffffffffffff9182169082160391908211610a5e57565b610a32565b92939594919095610a726109b1565b9280610c4d575b5050610a84426118e4565b5f54600490602090610aac90610aa0906001600160a01b031681565b6001600160a01b031690565b6040516327f843b560e11b815292839182905afa80156102e757610ae692610adb925f92610c1c575b50610a46565b65ffffffffffff1690565b65ffffffffffff8516908110908115610c06575b50610bf457610b0f610b189251858886610ed9565b92908092611109565b958615610be257610b9d61075b610b94610bdd947fe0cbbe1f1e6fd806ca87036fafcebaf7ab5247474a3b20e1c37bb50122c3a88496610b598a878b61111b565b610b648c878b6111a9565b610b6c6107fe565b9182526020820152604051928391602083019190916020806040830194805184520151910152565b86898488611315565b610ba7858861141e565b610bb3858883876114a3565b6040805188815265ffffffffffff90961660208701526001600160a01b0390911694918291820190565b0390a3565b60405163167f871760e31b8152600490fd5b604051631357ac9160e11b8152600490fd5b9050610c14610adb426118e4565b11155f610afa565b610c3f91925060203d602011610c46575b610c3781836107dd565b810190610a12565b905f610ad5565b503d610c2d565b610c5b9293508101906109c4565b905f80610a79565b81601f8201121561013a57805190610c7a8261081a565b92610c8860405194856107dd565b8284526020838301011161013a57815f9260208093018386015e8301015290565b9060208282031261013a5781516001600160401b03811161013a576108c49201610c63565b60406108c49260208352519160208082015201906103a0565b604051632751749360e11b81526001600160a01b0391821660048201526024810192909252918216604482015265ffffffffffff909216606483015260609291905f90829060849082907f0000000000000000000000000000000000000000000000000000000000000000165afa9081156102e7575f91610d91575b508051610d6d5750565b61075b9192506108c490610d7f61080d565b90815260405192839160208301610cce565b610dad91503d805f833e610da581836107dd565b810190610ca9565b5f610d63565b5f9081526002602090815260408083206001600160a01b039094168352929052206108c492919061180c565b9081602091031261013a57516108c481610129565b60405190610e01826107af565b60606020838281520152565b9060208282031261013a5781516001600160401b039283821161013a57019060408282031261013a5760405192610e43846107af565b825181811161013a5782610e58918501610c63565b8452602083015190811161013a57610e709201610c63565b602082015290565b9081602091031261013a575190565b9081526001600160a01b03909116602082015265ffffffffffff90911660408201526080606082018190526108c4929101906103a0565b5f19810191908211610a5e57565b91908203918211610a5e57565b92610ee2610df4565b908051806110ef575b5050610ef6426118e4565b5f54909490610f0f90610aa0906001600160a01b031681565b93604051956327f843b560e11b875260209687816004818a5afa80156102e757610f4392610adb925f926110d75750610a46565b65ffffffffffff82169081109081156110c0575b811561108f575b50611083578560049560405196878092630ce9b79360e41b82525afa9485156102e757610fb09587915f91611066575b50845190604051808099819463e02f693760e01b8352878b8a60048601610e87565b03916001600160a01b03165afa9384156102e757611022955f95611025575b5092611017859361101d9361101796869a61100e61039383610ff9875f52600260205260405f2090565b9060018060a01b03165f5260205260405f2090565b95015192610db3565b90610ecc565b611109565b91565b61101d929550611017949193611053611017928a3d8c1161105f575b61104b81836107dd565b810190610e78565b96935093919450610fcf565b503d611041565b61107d9150823d84116102e0576102d181836107dd565b5f610f8e565b5050505050505f905f90565b90506110b9610adb6110ad87610ff9875f52600160205260405f2090565b5465ffffffffffff1690565b115f610f5e565b90506110ce610adb426118e4565b81101590610f57565b610c3f9192508a3d8c11610c4657610c3781836107dd565b6111029250602080918301019101610e0d565b5f80610eeb565b9080821015611116575090565b905090565b919091805f52600160205265ffffffffffff8061114b8560405f209060018060a01b03165f5260205260405f2090565b54169083161161115a57505050565b61080b92611182915f52600160205260405f209060018060a01b03165f5260205260405f2090565b9065ffffffffffff1665ffffffffffff19825416179055565b9060018201809211610a5e57565b9190825f5260026020526112016103936111d68360405f209060018060a01b03165f5260205260405f2090565b926111e0426118e4565b955f52600260205260405f209060018060a01b03165f5260205260405f2090565b918201809211610a5e5760018101908154156112a5575b61122181611b40565b509490835495611230846115c8565b5081611290575b501561126f5750505f198301928311610a5e5761080b926112579161159f565b90919082549060031b91821b915f19901b1916179055565b61080b94611289926001600160d01b039091169190611c17565b5050611943565b65ffffffffffff83811691161490505f611237565b6112ae82611916565b611218565b606060206108c4938184526001600160401b038151168285015201519160408082015201906103a0565b919360a0936108c4969565ffffffffffff938552600180871b03166020850152604084015216606082015281608082015201906103a0565b92939060046020611332610aa0610aa05f5460018060a01b031690565b604051630ce9b79360e41b815292839182905afa9081156102e75761075b916113b0915f916113ff575b506001600160a01b03169361136f6107fe565b6001600160401b037f0000000000000000000000000000000000000000000000000000000000000000168152906020820152604051928391602083016112b3565b823b1561013a575f946113db86926040519889978896879563724ab0f760e11b8752600487016112dd565b03925af180156102e7576113ec5750565b806113f961080b926107ca565b806102fe565b611418915060203d6020116102e0576102d181836107dd565b5f61135c565b5f8054604051631c9e38c760e21b8152600481019390935265ffffffffffff9390931660248301529091602091839160449183916001600160a01b03165af180156102e75761146a5750565b6114829060203d60201161105f5761104b81836107dd565b50565b811561148f570490565b634e487b7160e01b5f52601260045260245ffd5b92905f549060ff8260a01c166114bb575b5050505050565b6040516313c085b760e11b815291602090839060049082906001600160a01b03165afa9182156102e7575f92611578575b5060405163065c1e0360e01b6020820190815260248201969096526001600160a01b039091166044820152606481019390935265ffffffffffff90911660848301526115458260a481015b03601f1981018452836107dd565b6202a15c5a10611566575f928380935192620249f0f1505f808080806114b4565b604051632153f33560e21b8152600490fd5b61154592506115986115379160203d6020116102e0576102d181836107dd565b92506114ec565b80548210156115b4575f5260205f2001905f90565b634e487b7160e01b5f52603260045260245ffd5b8054806115fd57505f5b6001600160d01b038116156115f75760016115ed920161159f565b90549060031b1c90565b50505f90565b5f19908082810111610a5e57825f5260205f2001015460301c6115d2565b91909160408184031261013a57803561163381610129565b9260208201356001600160401b03811161013a576108c49201610835565b5190811515820361013a57565b9081602091031261013a576108c490611651565b61167e9181019061161b565b6040516302910f8b60e31b81526001600160a01b0392831660048201819052929160209182816024817f000000000000000000000000000000000000000000000000000000000000000088165afa9081156102e7575f916117ae575b501561179c578161170e6004926116ef611966565b5f80546001600160a01b0319166001600160a01b03891617905561199c565b94604051928380926313c085b760e11b82525afa9182156102e7575f9261177f575b5050161580611775575b611763575161080b9015155f805460ff60a01b191691151560a01b60ff60a01b16919091179055565b60405163d2420f5960e01b8152600490fd5b508051151561173a565b6117959250803d106102e0576102d181836107dd565b5f80611730565b6040516362df054560e01b8152600490fd5b6117ce9150833d85116117d4575b6117c681836107dd565b81019061165e565b5f6116da565b503d6117bc565b9081602091031261013a575163ffffffff8116810361013a5790565b90600163ffffffff80931601918211610a5e57565b918051156118da5780602080611827935183010191016117db565b916118328382611ab4565b92611843845165ffffffffffff1690565b9065ffffffffffff80851692168281146118ce5782119182611879575b5050611870576108c492506119e4565b50506020015190565b9091506118868354610ebe565b63ffffffff83161491821561189f575b50505f80611860565b6118c69192506118ba6118b4610adb926117f7565b85611ab4565b5165ffffffffffff1690565b115f80611896565b50505050506020015190565b506108c4916119e4565b65ffffffffffff908181116118f7571690565b604490604051906306dfcc6560e41b8252603060048301526024820152fd5b8054600160401b8110156107aa576119339160018201815561159f565b8154905f199060031b1b19169055565b90815491600160401b8310156107aa578261125791600161080b9501815561159f565b61196e611b8f565b611976611b8f565b60017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055565b5f6040516119a98161078f565b5260208180518101031261013a576020906040516119c68161078f565b6119de6040519384936119d88561078f565b01611651565b82525290565b908154905f829160058411611a4e575b6119ff935084611e74565b80611a2757505f905b6001600160d01b038216156115f7576108c49160016115ed920161159f565b611a41611a36611a4892610ebe565b835f5260205f200190565b5460301c90565b90611a08565b9192611a5981611d36565b8103908111610a5e576119ff93855f5265ffffffffffff808360205f20015416908516105f14611a8a5750916119f4565b929150611a969061119b565b906119f4565b60405190611aa9826107af565b5f6020838281520152565b90611add611ad7611afe92611ac7611a9c565b50611ad0611a9c565b508461159f565b50611b1c565b91600165ffffffffffff845116936020828060d01b0391015116910161159f565b90549060405192611b0e846107af565b835260031b1c602082015290565b90604051611b29816107af565b915465ffffffffffff8116835260301c6020830152565b805480611b515750505f905f905f90565b5f19908082810111610a5e57611b6e925f5260205f200101611b1c565b9065ffffffffffff82511691602060018060d01b0391015116906001929190565b60ff5f80516020611ed48339815191525460401c1615611bab57565b604051631afcd79f60e31b8152600490fd5b8054600160401b8110156107aa57611bda9160018201815561159f565b611c0457815160209092015160301b65ffffffffffff191665ffffffffffff909216919091179055565b634e487b7160e01b5f525f60045260245ffd5b805492939291908215611d0d57611c38611c33611a3685610ebe565b611b1c565b90611c49825165ffffffffffff1690565b65ffffffffffff84811691168110611cfb57611cbf946020948892611c77610adb875165ffffffffffff1690565b03611cc35750611cb192611c8d611c9892610ebe565b905f5260205f200190565b9065ffffffffffff82549181199060301b169116179055565b01516001600160d01b031690565b9190565b915050611cf691611ce3611cd56107fe565b65ffffffffffff9093168352565b6001600160d01b03881682860152611bbd565b611cb1565b604051632520601d60e01b8152600490fd5b611d319250611d1d611cd56107fe565b6001600160d01b0385166020830152611bbd565b5f9190565b8015611e6f5780611e08611e01611df7611ded611de3611dd9611dcf611dc560016108c49a5f908b60801c80611e63575b508060401c80611e56575b508060201c80611e49575b508060101c80611e3c575b508060081c80611e2f575b508060041c80611e22575b508060021c80611e15575b50821c611e0e575b811c1b611dbe818b611485565b0160011c90565b611dbe818a611485565b611dbe8189611485565b611dbe8188611485565b611dbe8187611485565b611dbe8186611485565b611dbe8185611485565b8092611485565b90611109565b8101611db1565b600291509101905f611da9565b600491509101905f611d9e565b600891509101905f611d93565b601091509101905f611d88565b602091509101905f611d7d565b604091509101905f611d72565b9150506080905f611d67565b505f90565b91905b838210611e845750505090565b9091928083169080841860011c8201809211610a5e57845f5265ffffffffffff808360205f20015416908416105f14611ec15750925b9190611e77565b939250611ecd9061119b565b91611eba56fef0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a2646970667358221220261f69963924e5ee7c5ac4782d04417e658bb4ddd05ada87235908dd0839073964736f6c63430008190033","sourceMap":"2765:796:89:-:0;;;;-1:-1:-1;;;;;2765:796:89;;;;;;;;;;-1:-1:-1;;2765:796:89;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2765:796:89;;;;;;348:4:87;332:21;;8837:64:26;2765:796:89;;;;;;;;;7896:76:26;;2765:796:89;;;;7985:34:26;7981:146;;-1:-1:-1;525:17:74;-1:-1:-1;525:17:74;;-1:-1:-1;552:12:74;;-1:-1:-1;2353:28:97;;2391:53;;-1:-1:-1;2391:53:97;;2970:37:89;;;;2765:796;;;;;;;;;332:21:87;2765:796:89;;;;525:17:74;2765:796:89;;;;;552:12:74;2765:796:89;;;;;;;;;;2353:28:97;2765:796:89;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7981:146:26;-1:-1:-1;;;;;;2765:796:89;;;;;;;;;;;;;8087:29:26;;2765:796:89;;8087:29:26;7981:146;;;;;7896:76;2765:796:89;;-1:-1:-1;;;7938:23:26;;;;;2765:796:89;-1:-1:-1;2765:796:89;;;;;;-1:-1:-1;2765:796:89;;;;;-1:-1:-1;2765:796:89","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361015610011575f80fd5b5f3560e01c8063021a815614610124578063103f29071461011f5780631a2be2c41461011a578063238ab85f14610115578063267de1f3146101105780632964f8dc1461010b5780632c9d45b3146101065780632dd310001461010157806334d098ea146100fc578063439fab91146100f7578063457821b7146100f25780639f86fd85146100ed578063aa8e6489146100e8578063aab3595f146100e3578063bb24fe8a146100de578063d5c24e1a146100d95763fbfa77cf146100d4575f80fd5b61098a565b61096d565b61092a565b610905565b6108c7565b6106c1565b61067d565b610545565b610521565b6104dd565b610499565b61047d565b610428565b6103c4565b61034c565b610308565b61017b565b6001600160a01b0381160361013a57565b5f80fd5b65ffffffffffff81160361013a57565b9181601f8401121561013a578235916001600160401b03831161013a576020838186019501011161013a57565b3461013a5760a036600319011261013a5760043560243561019b81610129565b6064356101a78161013e565b6084356001600160401b03811161013a576101c690369060040161014e565b917f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0060028154146102ec5760029055604051635daf681960e11b8152606086901c60048201526001600160a01b036020826024817f000000000000000000000000000000000000000000000000000000000000000085165afa9182156102e7575f926102b6575b50339116036102a4576102a0946102679460443591610a63565b61029060017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055565b6040519081529081906020820190565b0390f35b60405163227bf64d60e01b8152600490fd5b6102d991925060203d6020116102e0575b6102d181836107dd565b810190610ddf565b905f61024d565b503d6102c7565b610a27565b604051633ee5aeb560e01b8152600490fd5b5f91031261013a57565b3461013a575f36600319011261013a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461013a57604036600319011261013a57602061039861039360243561037181610129565b6004355f526002845260405f209060018060a01b03165f5260205260405f2090565b6115c8565b604051908152f35b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b3461013a5760c036600319011261013a576102a06104146004356103e781610129565b6103f2602435610129565b6064356103fe81610129565b60a4359161040b8361013e565b60443590610ce7565b6040519182916020835260208301906103a0565b3461013a57604036600319011261013a57602065ffffffffffff61047360243561045181610129565b6004355f526001845260405f209060018060a01b03165f5260205260405f2090565b5416604051908152f35b3461013a575f36600319011261013a576020604051614e208152f35b3461013a575f36600319011261013a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461013a575f36600319011261013a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461013a575f36600319011261013a57602060ff5f5460a01c166040519015158152f35b3461013a57602036600319011261013a576001600160401b0360043581811161013a5761057690369060040161014e565b5f80516020611ed4833981519152549260ff8460401c1615931680159081610675575b600114908161066b575b159081610662575b50610650575f80516020611ed4833981519152805467ffffffffffffffff191660011790556105de918361062c57611672565b6105e457005b5f80516020611ed4833981519152805460ff60401b19169055604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a1005b5f80516020611ed4833981519152805460ff60401b1916600160401b179055611672565b60405163f92ee8a960e01b8152600490fd5b9050155f6105ab565b303b1591506105a3565b849150610599565b3461013a575f36600319011261013a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461013a5760408060031936011261013a576004356106df81610129565b602435906001600160401b03821161013a575f809161070561076994369060040161014e565b908187519283928337810184815203915af43d156107715761075b3d61072a8161081a565b90610737865192836107dd565b81523d5f602083013e5b8451948593151560208501528084015260608301906103a0565b03601f1981018352826107dd565b805190602001fd5b61075b6060610741565b634e487b7160e01b5f52604160045260245ffd5b602081019081106001600160401b038211176107aa57604052565b61077b565b604081019081106001600160401b038211176107aa57604052565b6001600160401b0381116107aa57604052565b90601f801991011681019081106001600160401b038211176107aa57604052565b6040519061080b826107af565b565b6040519061080b8261078f565b6001600160401b0381116107aa57601f01601f191660200190565b81601f8201121561013a5780359061084c8261081a565b9261085a60405194856107dd565b8284526020838301011161013a57815f926020809301838601378301015290565b90608060031983011261013a576004359160243561089881610129565b916044356108a58161013e565b91606435906001600160401b03821161013a576108c491600401610835565b90565b3461013a5760206103986109006108dd3661087b565b939190925f526002865260405f209060018060a01b03165f5260205260405f2090565b61180c565b3461013a5760206109216109183661087b565b92919091610ed9565b50604051908152f35b3461013a575f36600319011261013a5760206040516001600160401b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461013a575f36600319011261013a576020604051620249f08152f35b3461013a575f36600319011261013a575f546040516001600160a01b039091168152602090f35b604051906109be8261078f565b60608252565b9060208282031261013a5781356001600160401b039283821161013a57019060208282031261013a57604051926109fa8461078f565b823590811161013a57610a0d9201610835565b815290565b9081602091031261013a57516108c48161013e565b6040513d5f823e3d90fd5b634e487b7160e01b5f52601160045260245ffd5b65ffffffffffff9182169082160391908211610a5e57565b610a32565b92939594919095610a726109b1565b9280610c4d575b5050610a84426118e4565b5f54600490602090610aac90610aa0906001600160a01b031681565b6001600160a01b031690565b6040516327f843b560e11b815292839182905afa80156102e757610ae692610adb925f92610c1c575b50610a46565b65ffffffffffff1690565b65ffffffffffff8516908110908115610c06575b50610bf457610b0f610b189251858886610ed9565b92908092611109565b958615610be257610b9d61075b610b94610bdd947fe0cbbe1f1e6fd806ca87036fafcebaf7ab5247474a3b20e1c37bb50122c3a88496610b598a878b61111b565b610b648c878b6111a9565b610b6c6107fe565b9182526020820152604051928391602083019190916020806040830194805184520151910152565b86898488611315565b610ba7858861141e565b610bb3858883876114a3565b6040805188815265ffffffffffff90961660208701526001600160a01b0390911694918291820190565b0390a3565b60405163167f871760e31b8152600490fd5b604051631357ac9160e11b8152600490fd5b9050610c14610adb426118e4565b11155f610afa565b610c3f91925060203d602011610c46575b610c3781836107dd565b810190610a12565b905f610ad5565b503d610c2d565b610c5b9293508101906109c4565b905f80610a79565b81601f8201121561013a57805190610c7a8261081a565b92610c8860405194856107dd565b8284526020838301011161013a57815f9260208093018386015e8301015290565b9060208282031261013a5781516001600160401b03811161013a576108c49201610c63565b60406108c49260208352519160208082015201906103a0565b604051632751749360e11b81526001600160a01b0391821660048201526024810192909252918216604482015265ffffffffffff909216606483015260609291905f90829060849082907f0000000000000000000000000000000000000000000000000000000000000000165afa9081156102e7575f91610d91575b508051610d6d5750565b61075b9192506108c490610d7f61080d565b90815260405192839160208301610cce565b610dad91503d805f833e610da581836107dd565b810190610ca9565b5f610d63565b5f9081526002602090815260408083206001600160a01b039094168352929052206108c492919061180c565b9081602091031261013a57516108c481610129565b60405190610e01826107af565b60606020838281520152565b9060208282031261013a5781516001600160401b039283821161013a57019060408282031261013a5760405192610e43846107af565b825181811161013a5782610e58918501610c63565b8452602083015190811161013a57610e709201610c63565b602082015290565b9081602091031261013a575190565b9081526001600160a01b03909116602082015265ffffffffffff90911660408201526080606082018190526108c4929101906103a0565b5f19810191908211610a5e57565b91908203918211610a5e57565b92610ee2610df4565b908051806110ef575b5050610ef6426118e4565b5f54909490610f0f90610aa0906001600160a01b031681565b93604051956327f843b560e11b875260209687816004818a5afa80156102e757610f4392610adb925f926110d75750610a46565b65ffffffffffff82169081109081156110c0575b811561108f575b50611083578560049560405196878092630ce9b79360e41b82525afa9485156102e757610fb09587915f91611066575b50845190604051808099819463e02f693760e01b8352878b8a60048601610e87565b03916001600160a01b03165afa9384156102e757611022955f95611025575b5092611017859361101d9361101796869a61100e61039383610ff9875f52600260205260405f2090565b9060018060a01b03165f5260205260405f2090565b95015192610db3565b90610ecc565b611109565b91565b61101d929550611017949193611053611017928a3d8c1161105f575b61104b81836107dd565b810190610e78565b96935093919450610fcf565b503d611041565b61107d9150823d84116102e0576102d181836107dd565b5f610f8e565b5050505050505f905f90565b90506110b9610adb6110ad87610ff9875f52600160205260405f2090565b5465ffffffffffff1690565b115f610f5e565b90506110ce610adb426118e4565b81101590610f57565b610c3f9192508a3d8c11610c4657610c3781836107dd565b6111029250602080918301019101610e0d565b5f80610eeb565b9080821015611116575090565b905090565b919091805f52600160205265ffffffffffff8061114b8560405f209060018060a01b03165f5260205260405f2090565b54169083161161115a57505050565b61080b92611182915f52600160205260405f209060018060a01b03165f5260205260405f2090565b9065ffffffffffff1665ffffffffffff19825416179055565b9060018201809211610a5e57565b9190825f5260026020526112016103936111d68360405f209060018060a01b03165f5260205260405f2090565b926111e0426118e4565b955f52600260205260405f209060018060a01b03165f5260205260405f2090565b918201809211610a5e5760018101908154156112a5575b61122181611b40565b509490835495611230846115c8565b5081611290575b501561126f5750505f198301928311610a5e5761080b926112579161159f565b90919082549060031b91821b915f19901b1916179055565b61080b94611289926001600160d01b039091169190611c17565b5050611943565b65ffffffffffff83811691161490505f611237565b6112ae82611916565b611218565b606060206108c4938184526001600160401b038151168285015201519160408082015201906103a0565b919360a0936108c4969565ffffffffffff938552600180871b03166020850152604084015216606082015281608082015201906103a0565b92939060046020611332610aa0610aa05f5460018060a01b031690565b604051630ce9b79360e41b815292839182905afa9081156102e75761075b916113b0915f916113ff575b506001600160a01b03169361136f6107fe565b6001600160401b037f0000000000000000000000000000000000000000000000000000000000000000168152906020820152604051928391602083016112b3565b823b1561013a575f946113db86926040519889978896879563724ab0f760e11b8752600487016112dd565b03925af180156102e7576113ec5750565b806113f961080b926107ca565b806102fe565b611418915060203d6020116102e0576102d181836107dd565b5f61135c565b5f8054604051631c9e38c760e21b8152600481019390935265ffffffffffff9390931660248301529091602091839160449183916001600160a01b03165af180156102e75761146a5750565b6114829060203d60201161105f5761104b81836107dd565b50565b811561148f570490565b634e487b7160e01b5f52601260045260245ffd5b92905f549060ff8260a01c166114bb575b5050505050565b6040516313c085b760e11b815291602090839060049082906001600160a01b03165afa9182156102e7575f92611578575b5060405163065c1e0360e01b6020820190815260248201969096526001600160a01b039091166044820152606481019390935265ffffffffffff90911660848301526115458260a481015b03601f1981018452836107dd565b6202a15c5a10611566575f928380935192620249f0f1505f808080806114b4565b604051632153f33560e21b8152600490fd5b61154592506115986115379160203d6020116102e0576102d181836107dd565b92506114ec565b80548210156115b4575f5260205f2001905f90565b634e487b7160e01b5f52603260045260245ffd5b8054806115fd57505f5b6001600160d01b038116156115f75760016115ed920161159f565b90549060031b1c90565b50505f90565b5f19908082810111610a5e57825f5260205f2001015460301c6115d2565b91909160408184031261013a57803561163381610129565b9260208201356001600160401b03811161013a576108c49201610835565b5190811515820361013a57565b9081602091031261013a576108c490611651565b61167e9181019061161b565b6040516302910f8b60e31b81526001600160a01b0392831660048201819052929160209182816024817f000000000000000000000000000000000000000000000000000000000000000088165afa9081156102e7575f916117ae575b501561179c578161170e6004926116ef611966565b5f80546001600160a01b0319166001600160a01b03891617905561199c565b94604051928380926313c085b760e11b82525afa9182156102e7575f9261177f575b5050161580611775575b611763575161080b9015155f805460ff60a01b191691151560a01b60ff60a01b16919091179055565b60405163d2420f5960e01b8152600490fd5b508051151561173a565b6117959250803d106102e0576102d181836107dd565b5f80611730565b6040516362df054560e01b8152600490fd5b6117ce9150833d85116117d4575b6117c681836107dd565b81019061165e565b5f6116da565b503d6117bc565b9081602091031261013a575163ffffffff8116810361013a5790565b90600163ffffffff80931601918211610a5e57565b918051156118da5780602080611827935183010191016117db565b916118328382611ab4565b92611843845165ffffffffffff1690565b9065ffffffffffff80851692168281146118ce5782119182611879575b5050611870576108c492506119e4565b50506020015190565b9091506118868354610ebe565b63ffffffff83161491821561189f575b50505f80611860565b6118c69192506118ba6118b4610adb926117f7565b85611ab4565b5165ffffffffffff1690565b115f80611896565b50505050506020015190565b506108c4916119e4565b65ffffffffffff908181116118f7571690565b604490604051906306dfcc6560e41b8252603060048301526024820152fd5b8054600160401b8110156107aa576119339160018201815561159f565b8154905f199060031b1b19169055565b90815491600160401b8310156107aa578261125791600161080b9501815561159f565b61196e611b8f565b611976611b8f565b60017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055565b5f6040516119a98161078f565b5260208180518101031261013a576020906040516119c68161078f565b6119de6040519384936119d88561078f565b01611651565b82525290565b908154905f829160058411611a4e575b6119ff935084611e74565b80611a2757505f905b6001600160d01b038216156115f7576108c49160016115ed920161159f565b611a41611a36611a4892610ebe565b835f5260205f200190565b5460301c90565b90611a08565b9192611a5981611d36565b8103908111610a5e576119ff93855f5265ffffffffffff808360205f20015416908516105f14611a8a5750916119f4565b929150611a969061119b565b906119f4565b60405190611aa9826107af565b5f6020838281520152565b90611add611ad7611afe92611ac7611a9c565b50611ad0611a9c565b508461159f565b50611b1c565b91600165ffffffffffff845116936020828060d01b0391015116910161159f565b90549060405192611b0e846107af565b835260031b1c602082015290565b90604051611b29816107af565b915465ffffffffffff8116835260301c6020830152565b805480611b515750505f905f905f90565b5f19908082810111610a5e57611b6e925f5260205f200101611b1c565b9065ffffffffffff82511691602060018060d01b0391015116906001929190565b60ff5f80516020611ed48339815191525460401c1615611bab57565b604051631afcd79f60e31b8152600490fd5b8054600160401b8110156107aa57611bda9160018201815561159f565b611c0457815160209092015160301b65ffffffffffff191665ffffffffffff909216919091179055565b634e487b7160e01b5f525f60045260245ffd5b805492939291908215611d0d57611c38611c33611a3685610ebe565b611b1c565b90611c49825165ffffffffffff1690565b65ffffffffffff84811691168110611cfb57611cbf946020948892611c77610adb875165ffffffffffff1690565b03611cc35750611cb192611c8d611c9892610ebe565b905f5260205f200190565b9065ffffffffffff82549181199060301b169116179055565b01516001600160d01b031690565b9190565b915050611cf691611ce3611cd56107fe565b65ffffffffffff9093168352565b6001600160d01b03881682860152611bbd565b611cb1565b604051632520601d60e01b8152600490fd5b611d319250611d1d611cd56107fe565b6001600160d01b0385166020830152611bbd565b5f9190565b8015611e6f5780611e08611e01611df7611ded611de3611dd9611dcf611dc560016108c49a5f908b60801c80611e63575b508060401c80611e56575b508060201c80611e49575b508060101c80611e3c575b508060081c80611e2f575b508060041c80611e22575b508060021c80611e15575b50821c611e0e575b811c1b611dbe818b611485565b0160011c90565b611dbe818a611485565b611dbe8189611485565b611dbe8188611485565b611dbe8187611485565b611dbe8186611485565b611dbe8185611485565b8092611485565b90611109565b8101611db1565b600291509101905f611da9565b600491509101905f611d9e565b600891509101905f611d93565b601091509101905f611d88565b602091509101905f611d7d565b604091509101905f611d72565b9150506080905f611d67565b505f90565b91905b838210611e845750505090565b9091928083169080841860011c8201809211610a5e57845f5265ffffffffffff808360205f20015416908416105f14611ec15750925b9190611e77565b939250611ecd9061119b565b91611eba56fef0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a2646970667358221220261f69963924e5ee7c5ac4782d04417e658bb4ddd05ada87235908dd0839073964736f6c63430008190033","sourceMap":"2765:796:89:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;-1:-1:-1;;;;;2765:796:89;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;2765:796:89;;;;;;;;;;;;;;;:::o;:::-;;;;;;-1:-1:-1;;2765:796:89;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;-1:-1:-1;;;;;2765:796:89;;;;;;;;;;;:::i;:::-;2355:73:29;;1847:1;2765:796:89;;3526:20:29;3522:88;;1847:1;;;2765:796:89;;-1:-1:-1;;;4546:86:97;;2765:796:89;;;;;4546:86:97;;2765:796:89;-1:-1:-1;;;;;2765:796:89;;;;4572:26:97;2765:796:89;;4546:86:97;;;;;;;-1:-1:-1;4546:86:97;;;2765:796:89;4636:10:97;;2765:796:89;;4546:100:97;4542:160;;2765:796:89;;774:1493:98;2765:796:89;;;774:1493:98;;:::i;:::-;3282:1:29;1805;2355:73;1847:1;3716:283;3282:1;2765:796:89;;;;;;;;;;;;;;;;;4542:160:97;2765:796:89;;-1:-1:-1;;;4669:22:97;;2765:796:89;;4669:22:97;4546:86;;;;;2765:796:89;4546:86:97;2765:796:89;4546:86:97;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;;:::i;3522:88:29:-;2765:796:89;;-1:-1:-1;;;3569:30:29;;2765:796:89;;3569:30:29;2765:796:89;;;;;;;:::o;:::-;;;;;;-1:-1:-1;;2765:796:89;;;;;;1435:38:97;-1:-1:-1;;;;;2765:796:89;;;;;;;;;;;;-1:-1:-1;;2765:796:89;;;;;2936:47:97;:38;2765:796:89;;;;;:::i;:::-;;;-1:-1:-1;2765:796:89;2936:16:97;2765:796:89;;;-1:-1:-1;2765:796:89;;;;;;;;;;;;;;;;;2936:38:97;:47;:::i;:::-;2765:796:89;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2765:796:89;;;;;;;;-1:-1:-1;;2765:796:89;;;;:::o;:::-;;;;;;-1:-1:-1;;2765:796:89;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;2765:796:89;;;;;;1788:109:97;2765:796:89;;;;;:::i;:::-;;;-1:-1:-1;2765:796:89;1788:109:97;2765:796:89;;;-1:-1:-1;2765:796:89;;;;;;;;;;;;;;;;;1788:109:97;2765:796:89;;;;;;;;;;;;;;-1:-1:-1;;2765:796:89;;;;;;;1374:6:97;2765:796:89;;;;;;;;;-1:-1:-1;;2765:796:89;;;;;;1528:51:97;-1:-1:-1;;;;;2765:796:89;;;;;;;;;;;;-1:-1:-1;;2765:796:89;;;;;;322:32:74;-1:-1:-1;;;;;2765:796:89;;;;;;;;;;;;-1:-1:-1;;2765:796:89;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2765:796:89;;;;-1:-1:-1;;;;;2765:796:89;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;2765:796:89;;;;;;;4301:16:26;2765:796:89;;4726:16:26;;:34;;;;2765:796:89;4805:1:26;4790:16;:50;;;;2765:796:89;4855:13:26;:30;;;;2765:796:89;4851:91:26;;;-1:-1:-1;;;;;;;;;;;2765:796:89;;-1:-1:-1;;2765:796:89;;;;;718:4:74;;4951:18:26;4979:67;;718:4:74;:::i;:::-;5066:101:26;;2765:796:89;5066:101:26;-1:-1:-1;;;;;;;;;;;2765:796:89;;-1:-1:-1;;;;2765:796:89;;;;;-1:-1:-1;2765:796:89;;5142:14:26;;2765:796:89;;5142:14:26;2765:796:89;4979:67:26;-1:-1:-1;;;;;;;;;;;2765:796:89;;-1:-1:-1;;;;2765:796:89;-1:-1:-1;;;2765:796:89;;;718:4:74;:::i;4851:91:26:-;2765:796:89;;-1:-1:-1;;;4908:23:26;;2765:796:89;;4908:23:26;4855:30;4872:13;;;4855:30;;;4790:50;4818:4;4810:25;:30;;-1:-1:-1;4790:50:26;;4726:34;;;-1:-1:-1;4726:34:26;;2765:796:89;;;;;;-1:-1:-1;;2765:796:89;;;;;;2811:43;-1:-1:-1;;;;;2765:796:89;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;2765:796:89;;;;-1:-1:-1;2765:796:89;;;477:31:80;2765:796:89;;;;;;:::i;:::-;;;;;;;;;;;;;;;416:25:80;;;;2765:796:89;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;-1:-1:-1;2765:796:89;;;;;;;;;;;;;477:31:80;;2765:796:89;;;;;;;;;;:::i;:::-;477:31:80;2765:796:89;;477:31:80;;;;;;:::i;:::-;518:79;;;2765:796:89;518:79:80;;2765:796:89;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2765:796:89;;;;;;;:::o;:::-;;:::i;:::-;;;;;;;-1:-1:-1;;;;;2765:796:89;;;;;;;:::o;:::-;-1:-1:-1;;;;;2765:796:89;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;2765:796:89;;;;;;;:::o;:::-;;;;;;;:::i;:::-;:::o;:::-;;;;;;;:::i;:::-;-1:-1:-1;;;;;2765:796:89;;;;;;-1:-1:-1;;2765:796:89;;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;2765:796:89;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;2765:796:89;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;-1:-1:-1;;;;;2765:796:89;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;2692:73:97;:38;2765:796:89;;;:::i;:::-;;;;;-1:-1:-1;2765:796:89;2692:16:97;2765:796:89;;;-1:-1:-1;2765:796:89;;;;;;;;;;;;;;;;;2692:38:97;:73;:::i;2765:796:89:-;;;;;3248:62:97;2765:796:89;;;:::i;:::-;3248:62:97;;;;;:::i;:::-;2765:796:89;;;;;;;;;;;;;-1:-1:-1;;2765:796:89;;;;;;;-1:-1:-1;;;;;404:28:74;2765:796:89;;;;;;;;;;-1:-1:-1;;2765:796:89;;;;;;;1271:7:97;2765:796:89;;;;;;;;;-1:-1:-1;;2765:796:89;;;;;;;;-1:-1:-1;;;;;2765:796:89;;;;;;;;;;;;;;;:::i;:::-;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;;;;2765:796:89;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;;;;:::o;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;:::i;774:1493:98:-;;;;;;;;2765:796:89;;:::i;:::-;1076:16:98;;1072:91;;774:1493;837:15:63;;819:34;837:15;819:34;:::i;:::-;-1:-1:-1;2765:796:89;1215:29:98;;;;:27;;:13;;-1:-1:-1;;;;;2765:796:89;1215:13:98;2765:796:89;;-1:-1:-1;;;;;2765:796:89;;;1215:27:98;2765:796:89;;-1:-1:-1;;;1215:29:98;;2765:796:89;;;;;1215:29:98;;;;;;1177:67;1215:29;1196:48;1215:29;-1:-1:-1;1215:29:98;;;774:1493;1196:48;;:::i;:::-;2765:796:89;;;;1177:67:98;2765:796:89;;;1177:67:98;;;:107;;;;;774:1493;1173:178;;;1418:87;1531:33;1474:30;;1418:87;;;;:::i;:::-;1531:33;;;;;:::i;:::-;1578:18;;;1574:75;;1950:87;;;2200:60;1718:16;2200:60;1718:16;;;;;;:::i;:::-;1791:13;;;;;:::i;:::-;2765:796:89;;:::i;:::-;;;;1215:29:98;1961:75;;2765:796:89;;;1950:87:98;;;1215:29;1950:87;;2765:796:89;;;;;;;;;;;;;;;;;;;1950:87:98;;;;;;:::i;:::-;2087:16;;;;:::i;:::-;2167;;;;;;:::i;:::-;2765:796:89;;;;;;;;;;;;;;-1:-1:-1;;;;;2765:796:89;;;;;;;;;;;2200:60:98;;;;774:1493::o;1574:75::-;2765:796:89;;-1:-1:-1;;;1619:19:98;;1215:29;;1619:19;1173:178;2765:796:89;;-1:-1:-1;;;1315:25:98;;1215:29;;1315:25;1177:107;837:15:63;;1248:36:98;819:34:63;837:15;819:34;:::i;1248:36:98:-;-1:-1:-1;1248:36:98;1177:107;;;1215:29;;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;1072:91;1121:31;;;;;;;;:::i;:::-;1072:91;;;;;2765:796:89;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;2765:796:89;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;;;;2765:796:89;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;:::i;3020:539::-;2765:796;;-1:-1:-1;;;3303:105:89;;-1:-1:-1;;;;;2765:796:89;;;3303:105;;;2765:796;;;;;;;;;;;;;;;;;;;;;;;;;3020:539;2765:796;3303:105;;2765:796;;;;;;3320:18;2765:796;3303:105;;;;;;;;;;;3020:539;2765:796;;;3419:134;;3020:539;:::o;3419:134::-;3476:66;2765:796;;;3476:66;2765:796;;;:::i;:::-;;;;;;3476:66;;;2765:796;3476:66;;;:::i;3303:105::-;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;2505:267:97;-1:-1:-1;2765:796:89;;;2692:16:97;2765:796:89;;;;;;;;-1:-1:-1;;;;;2765:796:89;;;;;;;;;2692:73:97;;2505:267;;2692:73;:::i;2765:796:89:-;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;;;;2765:796:89;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;2765:796:89;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;2765:796:89;;;;;;;;:::o;:::-;;;;;;;;;;:::o;3323:1122:97:-;;2765:796:89;;:::i;:::-;;;;3608:16:97;3604:109;;3323:1122;837:15:63;;819:34;837:15;819:34;:::i;:::-;-1:-1:-1;2765:796:89;;;;3778:27:97;;:13;;-1:-1:-1;;;;;2765:796:89;3778:13:97;2765:796:89;3778:27:97;2765:796:89;;;;;;;3778:29:97;;;;;;;;;;;;;;;3740:67;3778:29;3759:48;3778:29;-1:-1:-1;3778:29:97;;;3759:48;;:::i;3740:67::-;2765:796:89;;;3740:67:97;;;:107;;;;;3323:1122;3740:197;;;;3323:1122;3723:263;;;2765:796:89;3778:29:97;2765:796:89;;;;;;;;;;4025:25:97;;;;;;;;;4010:143;4025:25;;;-1:-1:-1;4025:25:97;;;3323:1122;4113:30;;;2765:796:89;;;;;;;;;;;4010:143:97;;;;;3778:29;4010:143;;;:::i;:::-;;;-1:-1:-1;;;;;2765:796:89;4010:143:97;;;;;;;4181:257;4010:143;-1:-1:-1;4010:143:97;;;3323:1122;3996:157;;4293:102;3996:157;;4233:162;3996:157;4207:231;3996:157;;2936:28;:47;:38;:28;;;2765:796:89;;2936:16:97;2765:796:89;;;;;;;2936:28:97;2765:796:89;;;;;;;;;;;;;;;;2936:47:97;4351:43;;;4293:102;;:::i;:::-;4233:162;;:::i;:::-;4207:231;:::i;4181:257::-;3323:1122;:::o;4010:143::-;4233:162;4010:143;;;4207:231;4010:143;;;;4293:102;4010:143;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;;;;;4025:25;;;;;;;;;;;;;;:::i;:::-;;;;3723:263;3962:13;;;;;;-1:-1:-1;3962:13:97;-1:-1:-1;3962:13:97;:::o;3740:197::-;3886:41;;3867:70;3886:51;;:41;;;2765:796:89;;3886:29:97;2765:796:89;;;;;;;3886:51:97;2765:796:89;;;;;3867:70:97;-1:-1:-1;3740:197:97;;;:107;837:15:63;;3811:36:97;819:34:63;837:15;819:34;:::i;3811:36:97:-;;;;3740:107;;;3778:29;;;;;;;;;;;;;;;:::i;3604:109::-;3662:40;;;;;;;;;;;;:::i;:::-;3604:109;;;;2557:104:58;;2641:5;;;;;;:13;2557:104;:::o;2641:13::-;;;2557:104;:::o;4714:335:97:-;;;;2765:796:89;-1:-1:-1;2765:796:89;4876:29:97;2765:796:89;;;;4876:51:97;2765:796:89;;-1:-1:-1;2765:796:89;;;;;;;;;;;;;;;;;4876:51:97;2765:796:89;;;;;-1:-1:-1;4872:171:97;;4714:335;;;:::o;4872:171::-;4962:70;2765:796:89;4962:51:97;2765:796:89;-1:-1:-1;2765:796:89;4876:29:97;2765:796:89;;;-1:-1:-1;2765:796:89;;;;;;;;;;;;;;;;;4962:51:97;2765:796:89;;;;;;;;;;;;;;9856:1:61;2765:796:89;;;;;;;:::o;5055:221:97:-;;;2765:796:89;-1:-1:-1;2765:796:89;5160:16:97;2765:796:89;;2936:47:97;:38;5160;2765:796:89;;-1:-1:-1;2765:796:89;;;;;;;;;;;;;;;;;5160:38:97;837:15:63;819:34;837:15;819:34;:::i;:::-;2765:796:89;-1:-1:-1;2765:796:89;5160:16:97;2765:796:89;;;-1:-1:-1;2765:796:89;;;;;;;;;;;;;;;;;2936:47:97;2765:796:89;;;;;;;;6360:12:91;;;2765:796:89;;;6360:24:91;6356:75;;5055:221:97;6474:30:91;;;:::i;:::-;2765:796:89;;;;;6578:12:91;;;;:::i;:::-;;6604:24;;;5055:221:97;-1:-1:-1;6600:188:91;;;-1:-1:-1;;;;2765:796:89;;;;;;;6644:29:91;:21;;;;:::i;:::-;:29;2765:796:89;;;;;;;;;;;;;;;;;;;;;6600:188:91;6753:24;;8167:38:61;;-1:-1:-1;;;;;2765:796:89;;;;;8167:38:61;:::i;:::-;6753:24:91;;;:::i;6604:::-;2765:796:89;;;;;;6614:14:91;;-1:-1:-1;6604:24:91;;;6356:75;6400:20;;;:::i;:::-;6356:75;;2765:796:89;;;;;;;;-1:-1:-1;;;;;2765:796:89;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;5282:431:97:-;;;;5487:25;;:23;:13;2765:796:89;5494:5:97;2765:796:89;;;;;;;;;5487:23:97;2765:796:89;;-1:-1:-1;;;5487:25:97;;2765:796:89;;;;;5487:25:97;;;;;;;5631:65;5487:25;5631:65;5487:25;5494:5;5487:25;;;5282:431;-1:-1:-1;;;;;;2765:796:89;;;;:::i;:::-;-1:-1:-1;;;;;5677:4:97;2765:796:89;;;5677:4:97;5487:25;5642:53;;2765:796:89;;;5631:65:97;;;5487:25;5631:65;;;:::i;:::-;5472:234;;;;;5494:5;2765:796:89;5472:234:97;2765:796:89;;;;;;;;;;;;;;5472:234:97;;5487:25;5472:234;;;:::i;:::-;;;;;;;;;;;5282:431;:::o;5472:234::-;;;;;;:::i;:::-;;;:::i;5487:25::-;;;;;;;;;;;;;;:::i;:::-;;;;5719:137;5809:5;2765:796:89;;;;-1:-1:-1;;;5802:47:97;;;;;2765:796:89;;;;;;;;;;;;;;;5802:47:97;;2765:796:89;;;;;;-1:-1:-1;;;;;2765:796:89;5802:47:97;;;;;;;;5719:137;:::o;5802:47::-;;;;;;;;;;;;;:::i;:::-;;5719:137::o;2765:796:89:-;;;;;;;:::o;:::-;;;;;;;;;;;;5862:623:97;;;5988:12;2765:796:89;;;;;;;5984:495:97;;5862:623;;;;;;:::o;5984:495::-;2765:796:89;;-1:-1:-1;;;6033:22:97;;2765:796:89;6033:22:97;;2765:796:89;;6033:22:97;;2765:796:89;;-1:-1:-1;;;;;2765:796:89;6033:22:97;;;;;;;5988:12;6033:22;;;5984:495;-1:-1:-1;2765:796:89;;-1:-1:-1;;;6033:22:97;6094:81;;;;;;;;2765:796:89;;;;-1:-1:-1;;;;;2765:796:89;;;;;;;;;;;;;;;;;;;;;;6094:81:97;2765:796:89;;;;6094:81:97;;2765:796:89;;6094:81:97;;;;;;:::i;:::-;2765:796:89;6194:9:97;:55;6190:124;;5988:12;6328:141;;;;;;1271:7;6328:141;;5984:495;;;;;;;6190:124;2765:796:89;;-1:-1:-1;;;6276:23:97;;6033:22;;6276:23;6033:22;6094:81;6033:22;;;6094:81;6033:22;;;;;;;;;;;:::i;:::-;;;;;2765:796:89;;;;;;;;-1:-1:-1;2765:796:89;;-1:-1:-1;2765:796:89;;;-1:-1:-1;2765:796:89;:::o;:::-;;;;;;;;;;;;10580:184:91;2765:796:89;;10303:8:61;;;:63;-1:-1:-1;10303:63:61;-1:-1:-1;;;;;2765:796:89;;10726:7:91;2765:796:89;;10736:12:91;:17;:12;;:17;:::i;:::-;2765:796:89;;;;;;10580:184:91;:::o;10726:31::-;;;-1:-1:-1;10580:184:91;:::o;10303:63:61:-;2765:796:89;;;;;;;;;;14249:109:61;-1:-1:-1;14249:109:61;;-1:-1:-1;14249:109:61;;;2765:796:89;;;10303:63:61;;2765:796:89;;;;;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;2765:796:89;;;;;;;;:::i;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;:::i;6491:564:97:-;6614:34;6491:564;6614:34;;;;:::i;:::-;2765:796:89;;-1:-1:-1;;;6664:41:97;;-1:-1:-1;;;;;2765:796:89;;;6664:41:97;;;2765:796:89;;;;;6664:41:97;;;2765:796:89;;;6674:13:97;2765:796:89;;6664:41:97;;;;;;;-1:-1:-1;6664:41:97;;;6491:564;6663:42;;6659:90;;2540:111:29;6850:27:97;6664:41;2540:111:29;;;:::i;:::-;-1:-1:-1;2765:796:89;;-1:-1:-1;;;;;;2765:796:89;-1:-1:-1;;;;;2765:796:89;;;;;6850:27:97;:::i;:::-;2765:796:89;;;;;;;;;;6892:23:97;;;;;;;;;-1:-1:-1;6892:23:97;;;6491:564;2765:796:89;;;6892:37:97;:64;;;6491:564;6888:112;;2765:796:89;7010:38:97;;2765:796:89;;-1:-1:-1;2765:796:89;;-1:-1:-1;;;;2765:796:89;;;;;;-1:-1:-1;;;2765:796:89;;;;;;;;6888:112:97;2765:796:89;;-1:-1:-1;;;6979:10:97;;6664:41;;6979:10;6892:64;-1:-1:-1;2765:796:89;;;;6892:64:97;;:23;;;;;;-1:-1:-1;6892:23:97;;;;;;:::i;:::-;;;;;6659:90;2765:796:89;;-1:-1:-1;;;6728:10:97;;6664:41;;6728:10;6664:41;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;2765:796:89;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;:::o;7558:604:91:-;;2765:796:89;;7686:17:91;7682:83;;2765:796:89;7789:27:91;2765:796:89;7789:27:91;2765:796:89;;7789:27:91;;;;;;:::i;:::-;7860:14;;;;;:::i;:::-;2765:796:89;;;;;;;;;;;;;;;;7888:22:91;;;7884:77;;7975:21;-1:-1:-1;7975:84:91;;;;7558:604;7971:139;;;;8127:28;;;;:::i;7971:139::-;8082:17;;7789:27;8082:17;2765:796:89;8075:24:91;:::o;7975:84::-;2765:796:89;;;8009:16:91;2765:796:89;;8009:16:91;:::i;:::-;2765:796:89;;;8001:24:91;:57;;;;;7975:84;;;;;;;8001:57;8029:29;8038:8;;;8029:18;8038:8;8029:23;8038:8;;:::i;:::-;8029:18;;:::i;:::-;2765:796:89;;;;;8029:29:91;;8001:57;;;;7884:77;7933:17;;;;;7789:27;7933:17;2765:796:89;7926:24:91;:::o;7682:83::-;7726:28;;;;:::i;14291:213:59:-;2765:796:89;14369:24:59;;;;14365:103;;2765:796:89;14291:213:59;:::o;14365:103::-;2765:796:89;;;;14416:41:59;;;;;;14447:2;14416:41;;;2765:796:89;;;;;14416:41:59;2765:796:89;;;-1:-1:-1;;;2765:796:89;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::o;:::-;;;;;-1:-1:-1;;;2765:796:89;;;;;;;;;;;;;;;:::i;6893:76:26:-;;;:::i;:::-;;;:::i;:::-;1805:1:29;2355:73;1847:1;6893:76:26:o;2273:218:98:-;-1:-1:-1;2765:796:89;;;;;:::i;:::-;;;;;;2419:30:98;;2765:796:89;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;2419:30:98;2765:796:89;:::i;:::-;;;;2273:218:98;:::o;6999:207:91:-;;2765:796:89;;9594:15:61;-1:-1:-1;9619:18:61;9652:7;9658:1;9652:7;;9648:234;;6999:207:91;9906:53:61;;;;;:::i;:::-;9977:8;;;:63;-1:-1:-1;9977:63:61;;-1:-1:-1;;;;;2765:796:89;;7168:7:91;2765:796:89;;;7178:12:91;;:17;:12;;:17;:::i;9977:63:61:-;9992:41;10025:7;9992:48;10025:7;;:::i;:::-;9992:41;14249:109;;;;;;14099:265;;9992:41;2765:796:89;;;;;9992:48:61;9977:63;;;9648:234;9695:14;;;;;:::i;:::-;2765:796:89;;;;;;;9906:53:61;14249:109;;-1:-1:-1;14249:109:61;2765:796:89;14249:109:61;;;-1:-1:-1;14249:109:61;;2765:796:89;;;;;9727:48:61;9723:149;2765:796:89;;;9795:10:61;9723:149;9648:234;;9723:149;9850:7;;;;;;:::i;:::-;9723:149;9648:234;;2765:796:89;;;;;;;:::i;:::-;-1:-1:-1;2765:796:89;;;;;;;:::o;11486:272:91:-;;2765:796:89;11308:22:61;11718:31:91;11486:272;2765:796:89;;:::i;:::-;;;;:::i;:::-;;11308:22:61;;:::i;:::-;2765:796:89;;:::i;:::-;;11718:12:91;2765:796:89;;;;;11731:17:91;2765:796:89;;;;;11731:17:91;;2765:796:89;;11718:12:91;;:31;:::i;:::-;2765:796:89;;;;;;;;;:::i;:::-;;;;;;11731:17:91;11672:79;;2765:796:89;11486:272:91;:::o;2765:796:89:-;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::o;10552:388:61:-;2765:796:89;;10728:8:61;;;10752:20;;10690:17;10752:20;10690:17;10752:20;10690:17;10752:20;:::o;10724:210::-;2765:796:89;;;;;;;;;;;14249:109:61;10690:17;14249:109;;10690:17;14249:109;;;2765:796:89;:::i;:::-;;;;;;;14249:109:61;2765:796:89;;;;;10911:11:61;;2765:796:89;;10886:37:61;10870:1;10886:37;;;:::o;7084:141:26:-;2765:796:89;-1:-1:-1;;;;;;;;;;;2765:796:89;;;;7150:18:26;7146:73;;7084:141::o;7146:73::-;2765:796:89;;-1:-1:-1;;;7191:17:26;;;;;2765:796:89;;;-1:-1:-1;;;2765:796:89;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;2765:796:89;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;11513:870:61;2765:796:89;;11513:870:61;;;2765:796:89;11513:870:61;11672:7;;;;2765:796:89;11775:28:61;11795:7;;;:::i;11775:28::-;2765:796:89;:::i;:::-;;;;;;;;;;;;;;;;11877:15:61;-1:-1:-1;11873:91:61;;2765:796:89;;12233:11:61;2765:796:89;;;12027:16:61;2765:796:89;;;;;;;12027:16:61;;;;12083:7;12063:43;12083:7;;12063:28;12083:7;;:::i;:::-;12063:28;14249:109;;;;;;14099:265;;12063:28;2765:796:89;;;;;;;;;;;;;;;;;12063:43:61;12233:11;2765:796:89;-1:-1:-1;;;;;2765:796:89;;;;12225:27:61;;:::o;12023:189::-;2765:796:89;;;12145:52:61;2765:796:89;12155:41:61;2765:796:89;;:::i;:::-;;;;;;;;12155:41:61;-1:-1:-1;;;;;2765:796:89;;12155:41:61;;;2765:796:89;12145:52:61;:::i;:::-;12023:189;;11873:91;2765:796:89;;-1:-1:-1;;;11919:30:61;;;;;11668:709;12283:52;2765:796:89;;12293:41:61;2765:796:89;;:::i;12293:41:61:-;-1:-1:-1;;;;;2765:796:89;;12293:41:61;;;2765:796:89;12145:52:61;:::i;12283:::-;11678:1;12349:17;;:::o;8587:1642:58:-;8658:6;;8654:45;;9401:7;10201:10;10142:26;10093;10044;9995;9946;9897;9848;2765:796:89;10189:23:58;9401:7;8663:1;2765:796:89;;;;10826:16:58;10822:99;;8587:1642;2765:796:89;;;;10938:15:58;10934:96;;8587:1642;2765:796:89;;;;11047:15:58;11043:96;;8587:1642;2765:796:89;;;;11156:15:58;11152:96;;8587:1642;2765:796:89;;;;11265:14:58;11261:93;;8587:1642;2765:796:89;;;;11371:14:58;11367:93;;8587:1642;2765:796:89;;;;11477:14:58;11473:93;;8587:1642;2765:796:89;;;11579:64:58;;8587:1642;2765:796:89;;;9858:10:58;;;;:::i;:::-;2765:796:89;;;;;9848:26:58;9907:10;;;;:::i;9897:26::-;9956:10;;;;:::i;9946:26::-;10005:10;;;;:::i;9995:26::-;10054:10;;;;:::i;10044:26::-;10103:10;;;;:::i;10093:26::-;10152:10;;;;:::i;10142:26::-;10201:10;;;:::i;:::-;10189:23;;:::i;11579:64::-;2765:796:89;;11579:64:58;;11473:93;2765:796:89;11511:11:58;;2765:796:89;;11473:93:58;;;;11367;2765:796:89;11405:11:58;;2765:796:89;;11367:93:58;;;;11261;2765:796:89;11299:11:58;;2765:796:89;;11261:93:58;;;;11152:96;2765:796:89;11191:12:58;;2765:796:89;;11152:96:58;;;;11043;2765:796:89;11082:12:58;;2765:796:89;;11043:96:58;;;;10934;2765:796:89;10973:12:58;;2765:796:89;;10934:96:58;;;;10822:99;10862:13;;;2765:796:89;10822:99:58;;;;8654:45;8680:8;8663:1;8680:8;:::o;12736:433:61:-;;;12919:10;;;;;;13151:11;;;12736:433;:::o;12912:230::-;2900:5:58;;;;;;2910;;;;2765:796:89;;;;;;;;;14249:109:61;-1:-1:-1;14249:109:61;2765:796:89;14249:109:61;;;-1:-1:-1;14249:109:61;;2765:796:89;;;;;-1:-1:-1;12996:136:61;2765:796:89;;;13055:10:61;12996:136;;12912:230;;;;12996:136;13110:7;;;;;;:::i;:::-;12996:136;;","linkReferences":{},"immutableReferences":{"64520":[{"start":1266,"length":32}],"64523":[{"start":2377,"length":32},{"start":4985,"length":32}],"69625":[{"start":1682,"length":32},{"start":3379,"length":32}],"72304":[{"start":797,"length":32},{"start":5801,"length":32}],"72307":[{"start":540,"length":32},{"start":1198,"length":32}]}},"methodIdentifiers":{"BASE_SLASHER_HINTS()":"457821b7","BURNER_GAS_LIMIT()":"d5c24e1a","BURNER_RESERVE()":"2964f8dc","FACTORY()":"2dd31000","NETWORK_MIDDLEWARE_SERVICE()":"2c9d45b3","TYPE()":"bb24fe8a","VAULT_FACTORY()":"103f2907","cumulativeSlash(bytes32,address)":"1a2be2c4","cumulativeSlashAt(bytes32,address,uint48,bytes)":"aa8e6489","initialize(bytes)":"439fab91","isBurnerHook()":"34d098ea","latestSlashedCaptureTimestamp(bytes32,address)":"267de1f3","slash(bytes32,address,uint256,uint48,bytes)":"021a8156","slashHints(address,address,bytes32,address,uint256,uint48)":"238ab85f","slashableStake(bytes32,address,uint48,bytes)":"aab3595f","staticDelegateCall(address,bytes)":"9f86fd85","vault()":"fbfa77cf"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"baseSlasherHints\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"CheckpointUnorderedInsertion\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ExternalCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientBurnerGas\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientSlash\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidCaptureTimestamp\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NoBurner\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotNetworkMiddleware\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotVault\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ReentrancyGuardReentrantCall\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"bits\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"SafeCastOverflowedUintDowncast\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"slashedAmount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint48\",\"name\":\"captureTimestamp\",\"type\":\"uint48\"}],\"name\":\"Slash\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"BASE_SLASHER_HINTS\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"BURNER_GAS_LIMIT\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"BURNER_RESERVE\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"FACTORY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"NETWORK_MIDDLEWARE_SERVICE\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"TYPE\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"VAULT_FACTORY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"cumulativeSlash\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hint\",\"type\":\"bytes\"}],\"name\":\"cumulativeSlashAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isBurnerHook\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"latestSlashedCaptureTimestamp\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"value\",\"type\":\"uint48\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint48\",\"name\":\"captureTimestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hints\",\"type\":\"bytes\"}],\"name\":\"slash\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"slashedAmount\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"slasher\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"msgSender\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint48\",\"name\":\"captureTimestamp\",\"type\":\"uint48\"}],\"name\":\"slashHints\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"captureTimestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hints\",\"type\":\"bytes\"}],\"name\":\"slashableStake\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"staticDelegateCall\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"vault\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"CheckpointUnorderedInsertion()\":[{\"details\":\"A value was attempted to be inserted on a past checkpoint.\"}],\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"ReentrancyGuardReentrantCall()\":[{\"details\":\"Unauthorized reentrant call.\"}],\"SafeCastOverflowedUintDowncast(uint8,uint256)\":[{\"details\":\"Value doesn't fit in an uint of `bits` size.\"}]},\"events\":{\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"Slash(bytes32,address,uint256,uint48)\":{\"params\":{\"captureTimestamp\":\"time point when the stake was captured\",\"operator\":\"operator that is slashed\",\"slashedAmount\":\"virtual amount of the collateral slashed\",\"subnetwork\":\"subnetwork that requested the slash\"}}},\"kind\":\"dev\",\"methods\":{\"cumulativeSlash(bytes32,address)\":{\"params\":{\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"},\"returns\":{\"_0\":\"cumulative slash amount\"}},\"cumulativeSlashAt(bytes32,address,uint48,bytes)\":{\"params\":{\"hint\":\"hint for the checkpoint index\",\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\",\"timestamp\":\"time point to get the cumulative slash amount until (inclusively)\"},\"returns\":{\"_0\":\"cumulative slash amount until the given timestamp (inclusively)\"}},\"initialize(bytes)\":{\"params\":{\"data\":\"some data to use\"}},\"slash(bytes32,address,uint256,uint48,bytes)\":{\"details\":\"Only a network middleware can call this function.\",\"params\":{\"amount\":\"maximum amount of the collateral to be slashed\",\"captureTimestamp\":\"time point when the stake was captured\",\"hints\":\"hints for checkpoints' indexes\",\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"},\"returns\":{\"slashedAmount\":\"virtual amount of the collateral slashed\"}},\"slashableStake(bytes32,address,uint48,bytes)\":{\"params\":{\"captureTimestamp\":\"time point to get the stake amount at\",\"hints\":\"hints for the checkpoints' indexes\",\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"},\"returns\":{\"amount\":\"slashable amount of the stake\"}},\"staticDelegateCall(address,bytes)\":{\"details\":\"It allows to use this contract's storage on-chain.\",\"params\":{\"data\":\"data to make a delegatecall with\",\"target\":\"address of the contract to make a delegatecall to\"}}},\"version\":1},\"userdoc\":{\"events\":{\"Slash(bytes32,address,uint256,uint48)\":{\"notice\":\"Emitted when a slash is performed.\"}},\"kind\":\"user\",\"methods\":{\"BURNER_GAS_LIMIT()\":{\"notice\":\"Get a gas limit for the burner.\"},\"BURNER_RESERVE()\":{\"notice\":\"Get a reserve gas between the gas limit check and the burner's execution.\"},\"FACTORY()\":{\"notice\":\"Get the factory's address.\"},\"NETWORK_MIDDLEWARE_SERVICE()\":{\"notice\":\"Get the network middleware service's address.\"},\"TYPE()\":{\"notice\":\"Get the entity's type.\"},\"VAULT_FACTORY()\":{\"notice\":\"Get the vault factory's address.\"},\"cumulativeSlash(bytes32,address)\":{\"notice\":\"Get a cumulative slash amount for an operator on a subnetwork.\"},\"cumulativeSlashAt(bytes32,address,uint48,bytes)\":{\"notice\":\"Get a cumulative slash amount for an operator on a subnetwork until a given timestamp (inclusively) using a hint.\"},\"initialize(bytes)\":{\"notice\":\"Initialize this entity contract by using a given data.\"},\"isBurnerHook()\":{\"notice\":\"Get if the burner is needed to be called on a slashing.\"},\"latestSlashedCaptureTimestamp(bytes32,address)\":{\"notice\":\"Get the latest capture timestamp that was slashed on a subnetwork.\"},\"slash(bytes32,address,uint256,uint48,bytes)\":{\"notice\":\"Perform a slash using a subnetwork for a particular operator by a given amount using hints.\"},\"slashableStake(bytes32,address,uint48,bytes)\":{\"notice\":\"Get a slashable amount of a stake got at a given capture timestamp using hints.\"},\"staticDelegateCall(address,bytes)\":{\"notice\":\"Make a delegatecall from this contract to a given target contract with a particular data (always reverts with a return data).\"},\"vault()\":{\"notice\":\"Get the vault's address.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/contracts/hints/SlasherHints.sol\":\"SlasherHints\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol\":{\"keccak256\":\"0x6662ec4e5cefca03eeadd073e9469df8d2944bb2ee8ec8f7622c2c46aab5f225\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4d8544c6f8daa4d1bc215c6a72fe0acdb748664a105b0e5efc19295667521d45\",\"dweb:/ipfs/QmdGWqdnXT8S3RgCR6aV8XHZrsybieMQLLnug1NtpSjEXN\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0xc163fcf9bb10138631a9ba5564df1fa25db9adff73bd9ee868a8ae1858fe093a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9706d43a0124053d9880f6e31a59f31bc0a6a3dc1acd66ce0a16e1111658c5f6\",\"dweb:/ipfs/QmUFmfowzkRwGtDu36cXV9SPTBHJ3n7dG9xQiK5B28jTf2\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609\",\"dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9\",\"dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardUpgradeable.sol\":{\"keccak256\":\"0xb44e086e941292cdc7f440de51478493894ef0b1aeccb0c4047445919f667f74\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://942dad22fbdc1669f025540ba63aa3ccfad5f8458fc5d4525b31ebf272e7af45\",\"dweb:/ipfs/Qmdo4X2M82aM3AMoW2kf2jhYkSCyC4T1pHNd6obdsDFnAB\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol\":{\"keccak256\":\"0xdaba3f7c42c55b2896353f32bd27d4d5f8bae741b3b05d4c53f67abc4dc47ce8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1fa2e61141c602510bcd2cd936ed9561922ac8772a9b9c9a9db091a74e354a45\",\"dweb:/ipfs/QmcHQDDoEBwJmwUbzoVkytvJsBx3KVHYFFnDkvRGWh9Wmh\"]},\"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0xb6b36edd6a2999fd243ff226d6cbf84bd71af2432bbd0dfe19392996a1d9cb41\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1fd2f35495652e57e3f99bc6c510bc5f7dd398a176ea2e72d8ed730aebc6ca26\",\"dweb:/ipfs/QmTQV6X4gkikTib49cho5iDX3JvSQbdsoEChoDwrk3CbbH\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC1271.sol\":{\"keccak256\":\"0x85a45f3f10014a0f8be41157a32b6a5f905753ea64a4b64e29fc12b7deeecf39\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c3c74009ce36136b36c77c23935b8e4a7b4f253be2da2be4fb4a916b1ce43743\",\"dweb:/ipfs/QmcH36v3iN7SJJuF73AunLR2LtNxhVJ1wm63ph4dPZ4pcL\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC5267.sol\":{\"keccak256\":\"0x92aa1df62dc3d33f1656d63bede0923e0df0b706ad4137c8b10b0a8fe549fd92\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c5c0f29195ad64cbe556da8e257dac8f05f78c53f90323c0d2accf8e6922d33a\",\"dweb:/ipfs/QmQ61TED8uaCZwcbh8KkgRSsCav7x7HbcGHwHts3U4DmUP\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c\",\"dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0x6008dabfe393240d73d7dd7688033f72740d570aa422254d29a7dce8568f3aff\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f5196ec75139918c6c7bb4251b36395e668f1fa6d206beba7e7520e74913940d\",\"dweb:/ipfs/QmSyqjksXxmm2mCG6qRd1yuwLykypkSVBbnBnGqJRcuJMi\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x37bb49513c49c87c4642a891b13b63571bc87013dde806617aa1efb54605f386\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b3036b3a83b7c48f96641f2a9002b9f2dcb6a5958dd670894ada21ae8229b3d0\",\"dweb:/ipfs/QmUNfSBdoVtjhETaUJCYcaC7pTMgbhht926tJ2uXJbiVd3\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0xaf28a975a78550e45f65e559a3ad6a5ad43b9b8a37366999abd1b7084eb70721\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b7bd24e224f67f65bfadf85dc2929fa965456bb2415478bd0125471b5ce35245\",\"dweb:/ipfs/QmRaydGr8BTHs1kvaZfsNU69pKzUAGFrvABn1KiRSbE51y\"]},\"lib/openzeppelin-contracts/contracts/utils/ShortStrings.sol\":{\"keccak256\":\"0x18a7171df639a934592915a520ecb97c5bbc9675a1105607aac8a94e72bf62c6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7478e1f13da69a2867ccd883001d836b75620362e743f196376d63ed0c422a1c\",\"dweb:/ipfs/QmWywcQ9TNfwtoqAxbn25d8C5VrV12PrPS9UjtGe6pL2BA\"]},\"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0x32ba59b4b7299237c8ba56319110989d7978a039faf754793064e967e5894418\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1ae50c8b562427df610cc4540c9bf104acca7ef8e2dcae567ae7e52272281e9c\",\"dweb:/ipfs/QmTHiadFCSJUPpRjNegc5SahmeU8bAoY8i9Aq6tVscbcKR\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0x55f102ea785d8399c0e58d1108e2d289506dde18abc6db1b7f68c1f9f9bc5792\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e52e0a7765c943ef14e5bcf11e46e6139fa044be564881378349236bf2e3453\",\"dweb:/ipfs/QmZEeeXoFPW47amyP35gfzomF9DixqqTEPwzBakv6cZw6i\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0xeed0a08b0b091f528356cbc7245891a4c748682d4f6a18055e8e6ca77d12a6cf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba80ba06c8e6be852847e4c5f4492cef801feb6558ae09ed705ff2e04ea8b13c\",\"dweb:/ipfs/QmXRJDv3xHLVQCVXg1ZvR35QS9sij5y9NDWYzMfUfAdTHF\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/EIP712.sol\":{\"keccak256\":\"0x999f705a027ed6dc2d4e0df2cc4a509852c6bfd11de1c8161bf88832d0503fd0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0798def67258d9a3cc20b2b4da7ebf351a5cefe0abfdd665d2d81f8e32f89b21\",\"dweb:/ipfs/QmPEvJosnPfzHNjKvCv2D3891mA2Ww8eUwkqrxBjuYdHCt\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol\":{\"keccak256\":\"0xba333517a3add42cd35fe877656fc3dfcc9de53baa4f3aabbd6d12a92e4ea435\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2ceacff44c0fdc81e48e0e0b1db87a2076d3c1fb497341de077bf1da9f6b406c\",\"dweb:/ipfs/QmRUo1muMRAewxrKQ7TkXUtknyRoR57AyEkoPpiuZQ8FzX\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/SignatureChecker.sol\":{\"keccak256\":\"0x6b11eb41a228cca35d4b662b4df69fcd75192851365102690f57b2ac01e83fe6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ab006a2983ed350d2af21ddcdd835dcae3b8340086cc4d088460da5abd041f69\",\"dweb:/ipfs/QmbEacDhkJZiGrgzLjB4pNtE8Z1uudjDw1DvcDUTVQFsLG\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875\",\"dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0xe19a4d5f31d2861e7344e8e535e2feafb913d806d3e2b5fe7782741a2a7094fe\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4aed79c0fa6f0546ed02f2f683e8f77f0fd2ed7eb34d8bbf3d373c9a6d95b13c\",\"dweb:/ipfs/QmWqVz6UAVqmnWU5pqYPt1o6iDEZyPaBraAA3rKfTTSfYj\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x5f7e4076e175393767754387c962926577f1660dd9b810187b9002407656be72\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7d533a1c97cd43a57cd9c465f7ee8dd0e39ae93a8fb8ff8e5303a356b081cdcc\",\"dweb:/ipfs/QmVBEei6aTnvYNZp2CHYVNKyZS4q1KkjANfY39WVXZXVoT\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/Checkpoints.sol\":{\"keccak256\":\"0xbdc5e074d7dd6678f67e92b1a51a20226801a407b0e1af3da367c5d1ff4519ad\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a36cca6b22fff3db16fc789ff6c60eea71d4b156065d4d0c83a0bc5e91a77a8b\",\"dweb:/ipfs/QmYN3exd5AemxjBrN8XMB1p5LbbE16uC3sjbYjwi8AjcGR\"]},\"lib/openzeppelin-contracts/contracts/utils/types/Time.sol\":{\"keccak256\":\"0xc7755af115020049e4140f224f9ee88d7e1799ffb0646f37bf0df24bf6213f58\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7f09bf94d5274334ec021f61a04659db303f31e60460e14b709c9bf187740111\",\"dweb:/ipfs/QmNvgomZYUwFAt4cZbPWAiTeSZQreGehY9BK5xyVJsUttb\"]},\"src/contracts/common/Entity.sol\":{\"keccak256\":\"0x3d61a932995b8443381f3950542d388223a2c26dd5d29a3274dea3baa7388bd7\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://7cdf5f03ca72fd263fd32ff59c8d88ddca911ae83896a287d10772c1bbe9b138\",\"dweb:/ipfs/QmbP84r5BWT1Rn9AYTntWSf3xUMTTCohTZJFhbBhDXFoHa\"]},\"src/contracts/common/MigratableEntity.sol\":{\"keccak256\":\"0x2d736f4dacd5d7e7697503bc426c78b8250fe1694ca157965ec178da6807de58\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://f1237acf96b4b9f9b69156e068eddd726a6e15bd8e87a18dc999cd4ba4da069c\",\"dweb:/ipfs/QmS6M8fiFFSeuJ4ZKKq1z8W7w4ybeHQSy5TLASGoc1LVic\"]},\"src/contracts/common/StaticDelegateCallable.sol\":{\"keccak256\":\"0x350029aa8955eacaffffaeb58babc5c98e80ebc5c5db388ed17ee6465f4a9d90\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://eb392a8ee9050e0af606897df63e3404e3829e8b688b580663892f9664195764\",\"dweb:/ipfs/QmaXC8jqV8UrrAFkzXTEv2fJF56sy33HhLxAzaRZmUxuXD\"]},\"src/contracts/delegator/BaseDelegator.sol\":{\"keccak256\":\"0x7c54d491fdd4415b764a9c8defa068e56d4c0c8c9419be0053a1d377669290e8\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://9238bfbad0f6eeb0dc7727724de14380f1980b395902269703d5e2ef07e52e10\",\"dweb:/ipfs/QmPJn1V4HNXcEghYvogGuSTF24dSQUPosR5qtsXcmNqRm3\"]},\"src/contracts/delegator/FullRestakeDelegator.sol\":{\"keccak256\":\"0x0a81c4f8e72914563a9cb771e93acf889c71ea36b7bec040e4eb562b199d5af1\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://6fc66b6ba02da77046a0bbbd1dd407a62c08f52e04486c9cbd2cb1cca3da555f\",\"dweb:/ipfs/QmZQivK1ZnMxfRQQ5aLpV9co5u55wQVNev5Rg1hzAqxhkE\"]},\"src/contracts/delegator/NetworkRestakeDelegator.sol\":{\"keccak256\":\"0xd3a8e6522f9c6fdcc2da837c9023afd6bdff2bce45a35590320c475519e3636d\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://58b17a87f6554f08376f9ea7fedf486a4aa75801bf0ad8b23ff5a46959b6b7a3\",\"dweb:/ipfs/QmSTmNh67tYt8CmjVZb57r8N3qX5yeYdMApKPJm3qvQgQw\"]},\"src/contracts/delegator/OperatorNetworkSpecificDelegator.sol\":{\"keccak256\":\"0x031a10722b9ec49048f0952710401131290adb87e71caf294e864e7ac3b98a16\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://72428febc875134b2f29205e6f294634a1c22a7d5c78d6a9cb2f8196f107c9b5\",\"dweb:/ipfs/QmTPwXR6h5oytckmkLrHdKeEMdphJxceDhYUR4zvQeWAwY\"]},\"src/contracts/delegator/OperatorSpecificDelegator.sol\":{\"keccak256\":\"0x630ce62fa30b9f3349ab7a8cf8dbf041319febc6dd757be2f94d3d25944ed328\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://c2ac59d47ce57d2a6819ae9833e1a618a371eccff93eb5ab367b201b01f42bfa\",\"dweb:/ipfs/QmdBpGMBivpNPv2WbH8vnCUy5xkVeaxQvGgqi33vKCz1kA\"]},\"src/contracts/hints/DelegatorHints.sol\":{\"keccak256\":\"0x44aa0c396311a54afbc7c73e8dadeed41e3165a4fd13f712b27d63d50fc3376d\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://2f255214f3531fc707d88be0d56a7a0aed4180439316d099d760d9118aa83093\",\"dweb:/ipfs/QmZD1w5p1ukJSXumUAjvxwGmkPhn7vsr21Y2atLGEZR2oi\"]},\"src/contracts/hints/Hints.sol\":{\"keccak256\":\"0x8b565df1ae35993c097a9e642002782a8f451f6fd01809cad6bcd345bdf1b99c\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://99a19adb01e350a92f534095b3078229df1f2f83077992d75d58d8684be45971\",\"dweb:/ipfs/QmbmwcuswVbzvwHQFTtrJG86oV98GnfxqYTb8cV8u1acox\"]},\"src/contracts/hints/OptInServiceHints.sol\":{\"keccak256\":\"0x95d9407900d27b9f4a1233b772aeed809c07b2dc5b31cfc9fa77ca26514c49e5\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://a13a8877e312d7e6b8b85bde3668c5d84ff5ecc83f762cd573f2b7104c64eb42\",\"dweb:/ipfs/QmYV2J55acuGzCNnS3juABuUHY5U1xc8g8o9jwEyFFdeG5\"]},\"src/contracts/hints/SlasherHints.sol\":{\"keccak256\":\"0xd77c5f3bbb0265af8ecd947df88f6f9684e136d80052b5292f5b29aaa3566a3f\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://484a26504bf6706202ec82a9a4cfa7d196bbc552b5b78ced25bf7130c2842595\",\"dweb:/ipfs/QmaQqmkoZoUWEam4R94vmajzH3gKqFqpZQwFbrHDsN1peV\"]},\"src/contracts/hints/VaultHints.sol\":{\"keccak256\":\"0xccb505b7159b769cc114d67b87c2de6b106557f667fc8f3780114baad5c3c442\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://6d0c80a908fc16e96a8b5605a0bd53f9e89ad0ef0a738fbbae80ba4d3160749b\",\"dweb:/ipfs/QmXo5UtWoR8YmunqcbBU8rQMm1nvmvjNPoXcVrDhh4pEwR\"]},\"src/contracts/libraries/Checkpoints.sol\":{\"keccak256\":\"0xba90097c8bfe0a975499428b5f8ac5569483c7d92ccc28c12d70de416aae040c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://12f5d93ca94cd06d3147db68993165a58e17903ed53682560de61f3085ad4609\",\"dweb:/ipfs/QmePiuAqvXprMLmFZkGZeGjvGPAvsEDHfCDv7BoQhXu9xE\"]},\"src/contracts/libraries/ERC4626Math.sol\":{\"keccak256\":\"0x8441160513c1cbeb1c3b9ee077bcc7e7ce20006b52a77c8dd39ff0ef89699939\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://943f8cc3e26ddf649f465f40c909819f5c864717c4baa339e9e403b9374a4653\",\"dweb:/ipfs/QmXPxi1sUDsrGprZdUgCzoPEosaZMv9ZhygWQ1vAi1phAB\"]},\"src/contracts/libraries/Subnetwork.sol\":{\"keccak256\":\"0xf5ef5506fd66082b3c2e7f3df37529f5a8efad32ac62e7c8914bd63219190bfe\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba031a54ee0d0e9a270c2b9e18437f5668cfeb659cfd5fe0677459d7fcac2a56\",\"dweb:/ipfs/QmReP3H7qQ78tAfgLnJKsNEQNCQfF1X1Get38Ffd4kzq32\"]},\"src/contracts/service/OptInService.sol\":{\"keccak256\":\"0x4e0932077f2686b7990e10d59deb2535334c0d09e52ef6e57c6ab09eca21c4b1\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://7c00d311032ed4a1743aca7475f3c86ce15cdfc2218108efc3731c03d34a5278\",\"dweb:/ipfs/QmUGGfVwVhaHr5kS4177yKKYiLYzi5qZpkEmvYxBZqazxf\"]},\"src/contracts/slasher/BaseSlasher.sol\":{\"keccak256\":\"0x190e5dce196a061bdad42468c52e9f5b0eb7810cd7d0c19f04d6a2e94984f1b6\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://07ca08d0cd43c2fe5d54a5577f6bdd522ced410f5d3a52e764deaa7ba26b5f06\",\"dweb:/ipfs/QmZe3PiMKBQKWcwodaLupragdqxPjgS4v1qMC7RXau8hDF\"]},\"src/contracts/slasher/Slasher.sol\":{\"keccak256\":\"0xeee0cb25fad58d496fdcc641d852d11bae06e6ceed5230ae21150964175c494f\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://34aa27d21246a1bcee0b6a2afa8d9d613441156362430392f75d176511d58c61\",\"dweb:/ipfs/Qmf53Y3zdGfH4PU2zpSGeHZ8mMLzLXCtmkQrG5mnVJECQ3\"]},\"src/contracts/slasher/VetoSlasher.sol\":{\"keccak256\":\"0xeccc8128de5e1ad499c067feac1c526638fbbac1a18b96726fc7507969fd5897\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://cdfcf281338423625acbccdf8810115b258ef7cfe4aa3c10b8911ead1aa85429\",\"dweb:/ipfs/QmZFsDvZXpkFkx4PHcDXAVPN3ZCAahbSVfYpSVrMBvbt4k\"]},\"src/contracts/vault/Vault.sol\":{\"keccak256\":\"0x2ceff6ed3298c4cad144c99fcc79b51cb9397d6ebef00285b915848b476f8c2e\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://11f2fb3581854f3ab6e82e8d4935d9eb510c903a13c3f022346c2956a58f5307\",\"dweb:/ipfs/QmdUnoXoyYoG9SGWyQZCFyLDRUUX3eXyXetkRvw6jxqqBz\"]},\"src/contracts/vault/VaultStorage.sol\":{\"keccak256\":\"0x57db25b127d77ea3472de53e3a4af3354399655b9268638b99ca5925fa364a56\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://aa763d9a6ec508ae3abfb8228b72b9fd9525279e5135d4962e79ff059feb1173\",\"dweb:/ipfs/QmcbDR6E9wyEpu6V2FkEC4hnWy47zXA9LSKJde6zSGd33Q\"]},\"src/interfaces/common/IEntity.sol\":{\"keccak256\":\"0x8ef4b63d6da63489778ccd5f8d13ebdd527dd4b62730b2c616df5af7474d2d21\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a8d69576a9219d85c50816a18ad53a4d53cfcb27ed38b8cccc808dc2734b71b\",\"dweb:/ipfs/QmYVN3P4Q4REvBWJ97TbAcaxm3uyB2anV6NSGa6ZtSwcEv\"]},\"src/interfaces/common/IMigratableEntity.sol\":{\"keccak256\":\"0x8f5f2809f3afbe8ebfbb365dd7b57b4dd3b6f9943a6187eaf648d45895b8e3c4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ffe640537d539e7a4fde70d30d3e4c57f4ba9c2c25c450cea713aae38e8fd5c\",\"dweb:/ipfs/QmSUTGzvdcn1R1KB7tLThMRtESsfPbeXDhhhKWGtntzBds\"]},\"src/interfaces/common/IRegistry.sol\":{\"keccak256\":\"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014\",\"dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK\"]},\"src/interfaces/common/IStaticDelegateCallable.sol\":{\"keccak256\":\"0xa335d4e81b9071b7de66ef92b43ff20671d86516eb1be46fef29a3483cd3f5d5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d464b9db863c14c05547d2b23352f2e9b7b784799cf09f6bbc4906a2a74e3516\",\"dweb:/ipfs/QmUVWzFvJz7eEbDQKiFTTzwi7TEbjcs3VmwdM4kuptAKvi\"]},\"src/interfaces/delegator/IBaseDelegator.sol\":{\"keccak256\":\"0x96bb312f032e17accce3f8f80936d99468029d6b37c9ca74acdb4b026a0148ee\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2a66dcb5b7d1a6ef6a363431ea98ebd78bc4fdd3d7a134d9b542dc66e7d025c2\",\"dweb:/ipfs/QmRhTPLd2ZAyRHmJUFUcWKs9b3if49QY17LYZuRqWmghw8\"]},\"src/interfaces/delegator/IDelegatorHook.sol\":{\"keccak256\":\"0xc51aa8d7d1f6c8043ee819b7aeb86da0e993912e1442098df897e299f01f9f46\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://adddf5cb2ba282aeb576b26efb28640f865a1721cc9b6eee8b3ee0457a2c9780\",\"dweb:/ipfs/QmNYgAmnLRwWZbhTuQhZs9rx4zcme1df5mEepkrniorSoW\"]},\"src/interfaces/delegator/IFullRestakeDelegator.sol\":{\"keccak256\":\"0xa3c8cb2e45d4d8ce90e95263bea40c01dc400f05ad65bc29597d878606be5e7d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://782cf5e201aa4cca037ebafd3807a68ff1cc721d5b8416a35244db0d0607369e\",\"dweb:/ipfs/QmQkJks6x7CKndeTPa9LxgTNygD5uEi7obhADhpq1Lsr9A\"]},\"src/interfaces/delegator/INetworkRestakeDelegator.sol\":{\"keccak256\":\"0xe7030fe30389a147fd710e3436ec346b4842695fd3e65a81b95375c9f1d633fc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://739c7e66d301778054f5c90bee45ec9438f68afba8a03eaaac52064c73b115ad\",\"dweb:/ipfs/QmfZ2ytKcTykAc76nxhg8ikUXV8NdBpetqb8W4YWPcox1Z\"]},\"src/interfaces/delegator/IOperatorNetworkSpecificDelegator.sol\":{\"keccak256\":\"0x74b95e64d29769202d45dd277bb830f623ff3d41ce77b80ce3ee4e318a5c71ec\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e512b903aae5c1b8a028c6e3f4f6223b5cb5d704503cfa6bd37b5346868f5c20\",\"dweb:/ipfs/QmZim9YExsPWtyxyeui993HTKAEmrg8MUcSkZ77Gp2JcuZ\"]},\"src/interfaces/delegator/IOperatorSpecificDelegator.sol\":{\"keccak256\":\"0x72075cab585dc17240cc3e32bc99b92f0d5627ddd988fed680e3e1a52d5a01e4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7448bc90699409ae61d85216b5efc2143a37f0f73354be2aea993bc54afca441\",\"dweb:/ipfs/QmXE4gAxM8pHosZK8mcTcj17puBx484meDCcmrDePskGHZ\"]},\"src/interfaces/service/INetworkMiddlewareService.sol\":{\"keccak256\":\"0x347afc7fcf1fbcdb96d66162070ef6c78aed27b3af2c1d5dfb4e511840631783\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2d90b8ceb495159e8e4e95d76447719dd166443f67dfabdd942846162071595c\",\"dweb:/ipfs/QmVVuiAWYx92T6vBvNMKZfTvraCf1fa16BsUKkdNs3hdHA\"]},\"src/interfaces/service/IOptInService.sol\":{\"keccak256\":\"0x76fb5460a6d87a5705433d4fbeff7253cd75b8bbd0c888b2088f16e86ace146a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://990322019b3d11465f7024bae77ccbf7e2fe5d6fa3c754584778f37d04fa1337\",\"dweb:/ipfs/QmaSNHzcqxTkUCG9a4nqVfLECHLdjdrwAnDi3yDC7tDL24\"]},\"src/interfaces/slasher/IBaseSlasher.sol\":{\"keccak256\":\"0x7c82528b445659c313ab77335c407b0b6efe5e79027187bb287f7bc74202b404\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0274c90aa5df1aa6bb470a6aab53992fb14fd7e5472c9430416505b29647d9cf\",\"dweb:/ipfs/QmckbmJLDetPemVzCnnGcKYWAZV2BRFXGDsjiaec8jkHxx\"]},\"src/interfaces/slasher/IBurner.sol\":{\"keccak256\":\"0xaf495dacc19ae0b3c787ba8021c5944927d70261536addd234d7dab146158c2b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9b3cc66251008be6ff9fc8b11ecc6831d5a9dca49a3fe9817fcd970253c1d447\",\"dweb:/ipfs/QmVxfb9ALGdF9W3SN2h41gQbUct6tawvu5bw4K89kFQ4HW\"]},\"src/interfaces/slasher/ISlasher.sol\":{\"keccak256\":\"0x34d226d67a3d5e16571f2fac91a8b9773551bcc41c88a96279669dd78d192625\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a6e8c1462ee4a1b0f745414be043c09012ea676613790aba004b06c85c980d1\",\"dweb:/ipfs/QmadjNEbHKRthtA1EeNy3Kg2sXpejH2KBeHm8QZtBPvXbJ\"]},\"src/interfaces/slasher/IVetoSlasher.sol\":{\"keccak256\":\"0xdf7edd04a4f36e9aec3a15241dcb6b6315b2e64927b12710c2c410d571fc55e9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c4be6ac339c2ebf230fed65363f036784224095d0cd0f3f2d01d64d6e0da9508\",\"dweb:/ipfs/QmRSMbpfaHExqrzUA8vYZMYZWh6eQW1KX9JKJSLdgronfg\"]},\"src/interfaces/vault/IVault.sol\":{\"keccak256\":\"0xffee01d383cd4e1a5530c614bf4360c1ef070c288abec9da1eb531b51bc07235\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://04f0046cac285d8ec44ebbb1f79dc94fab4495767190cad8364fbc1fafaadfb9\",\"dweb:/ipfs/QmUawAunwzXfCyShWfhKeThAgKtqe51hmrxvrXvM772M2R\"]},\"src/interfaces/vault/IVaultStorage.sol\":{\"keccak256\":\"0x592626f13754194f83047135de19229c49390bd59e34659b1bb38be71d973a22\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://06a6a9dfddd05e580b32bebe2cff4f63ba26a653180676d58225dd30d9c89d3e\",\"dweb:/ipfs/QmdgzBeY6Sxo8mGtyBxtv1tM1c2kU6J6zjeRd7vuXm4DU6\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.25+commit.b61c2a91"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"baseSlasherHints","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"CheckpointUnorderedInsertion"},{"inputs":[],"type":"error","name":"ExternalCall"},{"inputs":[],"type":"error","name":"InsufficientBurnerGas"},{"inputs":[],"type":"error","name":"InsufficientSlash"},{"inputs":[],"type":"error","name":"InvalidCaptureTimestamp"},{"inputs":[],"type":"error","name":"InvalidInitialization"},{"inputs":[],"type":"error","name":"NoBurner"},{"inputs":[],"type":"error","name":"NotInitialized"},{"inputs":[],"type":"error","name":"NotInitializing"},{"inputs":[],"type":"error","name":"NotNetworkMiddleware"},{"inputs":[],"type":"error","name":"NotVault"},{"inputs":[],"type":"error","name":"ReentrancyGuardReentrantCall"},{"inputs":[{"internalType":"uint8","name":"bits","type":"uint8"},{"internalType":"uint256","name":"value","type":"uint256"}],"type":"error","name":"SafeCastOverflowedUintDowncast"},{"inputs":[{"internalType":"uint64","name":"version","type":"uint64","indexed":false}],"type":"event","name":"Initialized","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32","indexed":true},{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"uint256","name":"slashedAmount","type":"uint256","indexed":false},{"internalType":"uint48","name":"captureTimestamp","type":"uint48","indexed":false}],"type":"event","name":"Slash","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"BASE_SLASHER_HINTS","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"BURNER_GAS_LIMIT","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"BURNER_RESERVE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"FACTORY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"NETWORK_MIDDLEWARE_SERVICE","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"TYPE","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"VAULT_FACTORY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"cumulativeSlash","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint48","name":"timestamp","type":"uint48"},{"internalType":"bytes","name":"hint","type":"bytes"}],"stateMutability":"view","type":"function","name":"cumulativeSlashAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[],"stateMutability":"view","type":"function","name":"isBurnerHook","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"latestSlashedCaptureTimestamp","outputs":[{"internalType":"uint48","name":"value","type":"uint48"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint48","name":"captureTimestamp","type":"uint48"},{"internalType":"bytes","name":"hints","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"slash","outputs":[{"internalType":"uint256","name":"slashedAmount","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"slasher","type":"address"},{"internalType":"address","name":"msgSender","type":"address"},{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint48","name":"captureTimestamp","type":"uint48"}],"stateMutability":"view","type":"function","name":"slashHints","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint48","name":"captureTimestamp","type":"uint48"},{"internalType":"bytes","name":"hints","type":"bytes"}],"stateMutability":"view","type":"function","name":"slashableStake","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"staticDelegateCall"},{"inputs":[],"stateMutability":"view","type":"function","name":"vault","outputs":[{"internalType":"address","name":"","type":"address"}]}],"devdoc":{"kind":"dev","methods":{"cumulativeSlash(bytes32,address)":{"params":{"operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"},"returns":{"_0":"cumulative slash amount"}},"cumulativeSlashAt(bytes32,address,uint48,bytes)":{"params":{"hint":"hint for the checkpoint index","operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)","timestamp":"time point to get the cumulative slash amount until (inclusively)"},"returns":{"_0":"cumulative slash amount until the given timestamp (inclusively)"}},"initialize(bytes)":{"params":{"data":"some data to use"}},"slash(bytes32,address,uint256,uint48,bytes)":{"details":"Only a network middleware can call this function.","params":{"amount":"maximum amount of the collateral to be slashed","captureTimestamp":"time point when the stake was captured","hints":"hints for checkpoints' indexes","operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"},"returns":{"slashedAmount":"virtual amount of the collateral slashed"}},"slashableStake(bytes32,address,uint48,bytes)":{"params":{"captureTimestamp":"time point to get the stake amount at","hints":"hints for the checkpoints' indexes","operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"},"returns":{"amount":"slashable amount of the stake"}},"staticDelegateCall(address,bytes)":{"details":"It allows to use this contract's storage on-chain.","params":{"data":"data to make a delegatecall with","target":"address of the contract to make a delegatecall to"}}},"version":1},"userdoc":{"kind":"user","methods":{"BURNER_GAS_LIMIT()":{"notice":"Get a gas limit for the burner."},"BURNER_RESERVE()":{"notice":"Get a reserve gas between the gas limit check and the burner's execution."},"FACTORY()":{"notice":"Get the factory's address."},"NETWORK_MIDDLEWARE_SERVICE()":{"notice":"Get the network middleware service's address."},"TYPE()":{"notice":"Get the entity's type."},"VAULT_FACTORY()":{"notice":"Get the vault factory's address."},"cumulativeSlash(bytes32,address)":{"notice":"Get a cumulative slash amount for an operator on a subnetwork."},"cumulativeSlashAt(bytes32,address,uint48,bytes)":{"notice":"Get a cumulative slash amount for an operator on a subnetwork until a given timestamp (inclusively) using a hint."},"initialize(bytes)":{"notice":"Initialize this entity contract by using a given data."},"isBurnerHook()":{"notice":"Get if the burner is needed to be called on a slashing."},"latestSlashedCaptureTimestamp(bytes32,address)":{"notice":"Get the latest capture timestamp that was slashed on a subnetwork."},"slash(bytes32,address,uint256,uint48,bytes)":{"notice":"Perform a slash using a subnetwork for a particular operator by a given amount using hints."},"slashableStake(bytes32,address,uint48,bytes)":{"notice":"Get a slashable amount of a stake got at a given capture timestamp using hints."},"staticDelegateCall(address,bytes)":{"notice":"Make a delegatecall from this contract to a given target contract with a particular data (always reverts with a return data)."},"vault()":{"notice":"Get the vault's address."}},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/contracts/hints/SlasherHints.sol":"SlasherHints"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol":{"keccak256":"0x6662ec4e5cefca03eeadd073e9469df8d2944bb2ee8ec8f7622c2c46aab5f225","urls":["bzz-raw://4d8544c6f8daa4d1bc215c6a72fe0acdb748664a105b0e5efc19295667521d45","dweb:/ipfs/QmdGWqdnXT8S3RgCR6aV8XHZrsybieMQLLnug1NtpSjEXN"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol":{"keccak256":"0xc163fcf9bb10138631a9ba5564df1fa25db9adff73bd9ee868a8ae1858fe093a","urls":["bzz-raw://9706d43a0124053d9880f6e31a59f31bc0a6a3dc1acd66ce0a16e1111658c5f6","dweb:/ipfs/QmUFmfowzkRwGtDu36cXV9SPTBHJ3n7dG9xQiK5B28jTf2"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b","urls":["bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609","dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol":{"keccak256":"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397","urls":["bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9","dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardUpgradeable.sol":{"keccak256":"0xb44e086e941292cdc7f440de51478493894ef0b1aeccb0c4047445919f667f74","urls":["bzz-raw://942dad22fbdc1669f025540ba63aa3ccfad5f8458fc5d4525b31ebf272e7af45","dweb:/ipfs/Qmdo4X2M82aM3AMoW2kf2jhYkSCyC4T1pHNd6obdsDFnAB"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol":{"keccak256":"0xdaba3f7c42c55b2896353f32bd27d4d5f8bae741b3b05d4c53f67abc4dc47ce8","urls":["bzz-raw://1fa2e61141c602510bcd2cd936ed9561922ac8772a9b9c9a9db091a74e354a45","dweb:/ipfs/QmcHQDDoEBwJmwUbzoVkytvJsBx3KVHYFFnDkvRGWh9Wmh"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol":{"keccak256":"0xb6b36edd6a2999fd243ff226d6cbf84bd71af2432bbd0dfe19392996a1d9cb41","urls":["bzz-raw://1fd2f35495652e57e3f99bc6c510bc5f7dd398a176ea2e72d8ed730aebc6ca26","dweb:/ipfs/QmTQV6X4gkikTib49cho5iDX3JvSQbdsoEChoDwrk3CbbH"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC1271.sol":{"keccak256":"0x85a45f3f10014a0f8be41157a32b6a5f905753ea64a4b64e29fc12b7deeecf39","urls":["bzz-raw://c3c74009ce36136b36c77c23935b8e4a7b4f253be2da2be4fb4a916b1ce43743","dweb:/ipfs/QmcH36v3iN7SJJuF73AunLR2LtNxhVJ1wm63ph4dPZ4pcL"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC5267.sol":{"keccak256":"0x92aa1df62dc3d33f1656d63bede0923e0df0b706ad4137c8b10b0a8fe549fd92","urls":["bzz-raw://c5c0f29195ad64cbe556da8e257dac8f05f78c53f90323c0d2accf8e6922d33a","dweb:/ipfs/QmQ61TED8uaCZwcbh8KkgRSsCav7x7HbcGHwHts3U4DmUP"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70","urls":["bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c","dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol":{"keccak256":"0x6008dabfe393240d73d7dd7688033f72740d570aa422254d29a7dce8568f3aff","urls":["bzz-raw://f5196ec75139918c6c7bb4251b36395e668f1fa6d206beba7e7520e74913940d","dweb:/ipfs/QmSyqjksXxmm2mCG6qRd1yuwLykypkSVBbnBnGqJRcuJMi"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0x37bb49513c49c87c4642a891b13b63571bc87013dde806617aa1efb54605f386","urls":["bzz-raw://b3036b3a83b7c48f96641f2a9002b9f2dcb6a5958dd670894ada21ae8229b3d0","dweb:/ipfs/QmUNfSBdoVtjhETaUJCYcaC7pTMgbhht926tJ2uXJbiVd3"],"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/ShortStrings.sol":{"keccak256":"0x18a7171df639a934592915a520ecb97c5bbc9675a1105607aac8a94e72bf62c6","urls":["bzz-raw://7478e1f13da69a2867ccd883001d836b75620362e743f196376d63ed0c422a1c","dweb:/ipfs/QmWywcQ9TNfwtoqAxbn25d8C5VrV12PrPS9UjtGe6pL2BA"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol":{"keccak256":"0x32ba59b4b7299237c8ba56319110989d7978a039faf754793064e967e5894418","urls":["bzz-raw://1ae50c8b562427df610cc4540c9bf104acca7ef8e2dcae567ae7e52272281e9c","dweb:/ipfs/QmTHiadFCSJUPpRjNegc5SahmeU8bAoY8i9Aq6tVscbcKR"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0x55f102ea785d8399c0e58d1108e2d289506dde18abc6db1b7f68c1f9f9bc5792","urls":["bzz-raw://6e52e0a7765c943ef14e5bcf11e46e6139fa044be564881378349236bf2e3453","dweb:/ipfs/QmZEeeXoFPW47amyP35gfzomF9DixqqTEPwzBakv6cZw6i"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol":{"keccak256":"0xeed0a08b0b091f528356cbc7245891a4c748682d4f6a18055e8e6ca77d12a6cf","urls":["bzz-raw://ba80ba06c8e6be852847e4c5f4492cef801feb6558ae09ed705ff2e04ea8b13c","dweb:/ipfs/QmXRJDv3xHLVQCVXg1ZvR35QS9sij5y9NDWYzMfUfAdTHF"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/EIP712.sol":{"keccak256":"0x999f705a027ed6dc2d4e0df2cc4a509852c6bfd11de1c8161bf88832d0503fd0","urls":["bzz-raw://0798def67258d9a3cc20b2b4da7ebf351a5cefe0abfdd665d2d81f8e32f89b21","dweb:/ipfs/QmPEvJosnPfzHNjKvCv2D3891mA2Ww8eUwkqrxBjuYdHCt"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol":{"keccak256":"0xba333517a3add42cd35fe877656fc3dfcc9de53baa4f3aabbd6d12a92e4ea435","urls":["bzz-raw://2ceacff44c0fdc81e48e0e0b1db87a2076d3c1fb497341de077bf1da9f6b406c","dweb:/ipfs/QmRUo1muMRAewxrKQ7TkXUtknyRoR57AyEkoPpiuZQ8FzX"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/SignatureChecker.sol":{"keccak256":"0x6b11eb41a228cca35d4b662b4df69fcd75192851365102690f57b2ac01e83fe6","urls":["bzz-raw://ab006a2983ed350d2af21ddcdd835dcae3b8340086cc4d088460da5abd041f69","dweb:/ipfs/QmbEacDhkJZiGrgzLjB4pNtE8Z1uudjDw1DvcDUTVQFsLG"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b","urls":["bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df","dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d","urls":["bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875","dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol":{"keccak256":"0xe19a4d5f31d2861e7344e8e535e2feafb913d806d3e2b5fe7782741a2a7094fe","urls":["bzz-raw://4aed79c0fa6f0546ed02f2f683e8f77f0fd2ed7eb34d8bbf3d373c9a6d95b13c","dweb:/ipfs/QmWqVz6UAVqmnWU5pqYPt1o6iDEZyPaBraAA3rKfTTSfYj"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0x5f7e4076e175393767754387c962926577f1660dd9b810187b9002407656be72","urls":["bzz-raw://7d533a1c97cd43a57cd9c465f7ee8dd0e39ae93a8fb8ff8e5303a356b081cdcc","dweb:/ipfs/QmVBEei6aTnvYNZp2CHYVNKyZS4q1KkjANfY39WVXZXVoT"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/Checkpoints.sol":{"keccak256":"0xbdc5e074d7dd6678f67e92b1a51a20226801a407b0e1af3da367c5d1ff4519ad","urls":["bzz-raw://a36cca6b22fff3db16fc789ff6c60eea71d4b156065d4d0c83a0bc5e91a77a8b","dweb:/ipfs/QmYN3exd5AemxjBrN8XMB1p5LbbE16uC3sjbYjwi8AjcGR"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/types/Time.sol":{"keccak256":"0xc7755af115020049e4140f224f9ee88d7e1799ffb0646f37bf0df24bf6213f58","urls":["bzz-raw://7f09bf94d5274334ec021f61a04659db303f31e60460e14b709c9bf187740111","dweb:/ipfs/QmNvgomZYUwFAt4cZbPWAiTeSZQreGehY9BK5xyVJsUttb"],"license":"MIT"},"src/contracts/common/Entity.sol":{"keccak256":"0x3d61a932995b8443381f3950542d388223a2c26dd5d29a3274dea3baa7388bd7","urls":["bzz-raw://7cdf5f03ca72fd263fd32ff59c8d88ddca911ae83896a287d10772c1bbe9b138","dweb:/ipfs/QmbP84r5BWT1Rn9AYTntWSf3xUMTTCohTZJFhbBhDXFoHa"],"license":"BUSL-1.1"},"src/contracts/common/MigratableEntity.sol":{"keccak256":"0x2d736f4dacd5d7e7697503bc426c78b8250fe1694ca157965ec178da6807de58","urls":["bzz-raw://f1237acf96b4b9f9b69156e068eddd726a6e15bd8e87a18dc999cd4ba4da069c","dweb:/ipfs/QmS6M8fiFFSeuJ4ZKKq1z8W7w4ybeHQSy5TLASGoc1LVic"],"license":"BUSL-1.1"},"src/contracts/common/StaticDelegateCallable.sol":{"keccak256":"0x350029aa8955eacaffffaeb58babc5c98e80ebc5c5db388ed17ee6465f4a9d90","urls":["bzz-raw://eb392a8ee9050e0af606897df63e3404e3829e8b688b580663892f9664195764","dweb:/ipfs/QmaXC8jqV8UrrAFkzXTEv2fJF56sy33HhLxAzaRZmUxuXD"],"license":"BUSL-1.1"},"src/contracts/delegator/BaseDelegator.sol":{"keccak256":"0x7c54d491fdd4415b764a9c8defa068e56d4c0c8c9419be0053a1d377669290e8","urls":["bzz-raw://9238bfbad0f6eeb0dc7727724de14380f1980b395902269703d5e2ef07e52e10","dweb:/ipfs/QmPJn1V4HNXcEghYvogGuSTF24dSQUPosR5qtsXcmNqRm3"],"license":"BUSL-1.1"},"src/contracts/delegator/FullRestakeDelegator.sol":{"keccak256":"0x0a81c4f8e72914563a9cb771e93acf889c71ea36b7bec040e4eb562b199d5af1","urls":["bzz-raw://6fc66b6ba02da77046a0bbbd1dd407a62c08f52e04486c9cbd2cb1cca3da555f","dweb:/ipfs/QmZQivK1ZnMxfRQQ5aLpV9co5u55wQVNev5Rg1hzAqxhkE"],"license":"BUSL-1.1"},"src/contracts/delegator/NetworkRestakeDelegator.sol":{"keccak256":"0xd3a8e6522f9c6fdcc2da837c9023afd6bdff2bce45a35590320c475519e3636d","urls":["bzz-raw://58b17a87f6554f08376f9ea7fedf486a4aa75801bf0ad8b23ff5a46959b6b7a3","dweb:/ipfs/QmSTmNh67tYt8CmjVZb57r8N3qX5yeYdMApKPJm3qvQgQw"],"license":"BUSL-1.1"},"src/contracts/delegator/OperatorNetworkSpecificDelegator.sol":{"keccak256":"0x031a10722b9ec49048f0952710401131290adb87e71caf294e864e7ac3b98a16","urls":["bzz-raw://72428febc875134b2f29205e6f294634a1c22a7d5c78d6a9cb2f8196f107c9b5","dweb:/ipfs/QmTPwXR6h5oytckmkLrHdKeEMdphJxceDhYUR4zvQeWAwY"],"license":"BUSL-1.1"},"src/contracts/delegator/OperatorSpecificDelegator.sol":{"keccak256":"0x630ce62fa30b9f3349ab7a8cf8dbf041319febc6dd757be2f94d3d25944ed328","urls":["bzz-raw://c2ac59d47ce57d2a6819ae9833e1a618a371eccff93eb5ab367b201b01f42bfa","dweb:/ipfs/QmdBpGMBivpNPv2WbH8vnCUy5xkVeaxQvGgqi33vKCz1kA"],"license":"BUSL-1.1"},"src/contracts/hints/DelegatorHints.sol":{"keccak256":"0x44aa0c396311a54afbc7c73e8dadeed41e3165a4fd13f712b27d63d50fc3376d","urls":["bzz-raw://2f255214f3531fc707d88be0d56a7a0aed4180439316d099d760d9118aa83093","dweb:/ipfs/QmZD1w5p1ukJSXumUAjvxwGmkPhn7vsr21Y2atLGEZR2oi"],"license":"BUSL-1.1"},"src/contracts/hints/Hints.sol":{"keccak256":"0x8b565df1ae35993c097a9e642002782a8f451f6fd01809cad6bcd345bdf1b99c","urls":["bzz-raw://99a19adb01e350a92f534095b3078229df1f2f83077992d75d58d8684be45971","dweb:/ipfs/QmbmwcuswVbzvwHQFTtrJG86oV98GnfxqYTb8cV8u1acox"],"license":"BUSL-1.1"},"src/contracts/hints/OptInServiceHints.sol":{"keccak256":"0x95d9407900d27b9f4a1233b772aeed809c07b2dc5b31cfc9fa77ca26514c49e5","urls":["bzz-raw://a13a8877e312d7e6b8b85bde3668c5d84ff5ecc83f762cd573f2b7104c64eb42","dweb:/ipfs/QmYV2J55acuGzCNnS3juABuUHY5U1xc8g8o9jwEyFFdeG5"],"license":"BUSL-1.1"},"src/contracts/hints/SlasherHints.sol":{"keccak256":"0xd77c5f3bbb0265af8ecd947df88f6f9684e136d80052b5292f5b29aaa3566a3f","urls":["bzz-raw://484a26504bf6706202ec82a9a4cfa7d196bbc552b5b78ced25bf7130c2842595","dweb:/ipfs/QmaQqmkoZoUWEam4R94vmajzH3gKqFqpZQwFbrHDsN1peV"],"license":"BUSL-1.1"},"src/contracts/hints/VaultHints.sol":{"keccak256":"0xccb505b7159b769cc114d67b87c2de6b106557f667fc8f3780114baad5c3c442","urls":["bzz-raw://6d0c80a908fc16e96a8b5605a0bd53f9e89ad0ef0a738fbbae80ba4d3160749b","dweb:/ipfs/QmXo5UtWoR8YmunqcbBU8rQMm1nvmvjNPoXcVrDhh4pEwR"],"license":"BUSL-1.1"},"src/contracts/libraries/Checkpoints.sol":{"keccak256":"0xba90097c8bfe0a975499428b5f8ac5569483c7d92ccc28c12d70de416aae040c","urls":["bzz-raw://12f5d93ca94cd06d3147db68993165a58e17903ed53682560de61f3085ad4609","dweb:/ipfs/QmePiuAqvXprMLmFZkGZeGjvGPAvsEDHfCDv7BoQhXu9xE"],"license":"MIT"},"src/contracts/libraries/ERC4626Math.sol":{"keccak256":"0x8441160513c1cbeb1c3b9ee077bcc7e7ce20006b52a77c8dd39ff0ef89699939","urls":["bzz-raw://943f8cc3e26ddf649f465f40c909819f5c864717c4baa339e9e403b9374a4653","dweb:/ipfs/QmXPxi1sUDsrGprZdUgCzoPEosaZMv9ZhygWQ1vAi1phAB"],"license":"MIT"},"src/contracts/libraries/Subnetwork.sol":{"keccak256":"0xf5ef5506fd66082b3c2e7f3df37529f5a8efad32ac62e7c8914bd63219190bfe","urls":["bzz-raw://ba031a54ee0d0e9a270c2b9e18437f5668cfeb659cfd5fe0677459d7fcac2a56","dweb:/ipfs/QmReP3H7qQ78tAfgLnJKsNEQNCQfF1X1Get38Ffd4kzq32"],"license":"MIT"},"src/contracts/service/OptInService.sol":{"keccak256":"0x4e0932077f2686b7990e10d59deb2535334c0d09e52ef6e57c6ab09eca21c4b1","urls":["bzz-raw://7c00d311032ed4a1743aca7475f3c86ce15cdfc2218108efc3731c03d34a5278","dweb:/ipfs/QmUGGfVwVhaHr5kS4177yKKYiLYzi5qZpkEmvYxBZqazxf"],"license":"BUSL-1.1"},"src/contracts/slasher/BaseSlasher.sol":{"keccak256":"0x190e5dce196a061bdad42468c52e9f5b0eb7810cd7d0c19f04d6a2e94984f1b6","urls":["bzz-raw://07ca08d0cd43c2fe5d54a5577f6bdd522ced410f5d3a52e764deaa7ba26b5f06","dweb:/ipfs/QmZe3PiMKBQKWcwodaLupragdqxPjgS4v1qMC7RXau8hDF"],"license":"BUSL-1.1"},"src/contracts/slasher/Slasher.sol":{"keccak256":"0xeee0cb25fad58d496fdcc641d852d11bae06e6ceed5230ae21150964175c494f","urls":["bzz-raw://34aa27d21246a1bcee0b6a2afa8d9d613441156362430392f75d176511d58c61","dweb:/ipfs/Qmf53Y3zdGfH4PU2zpSGeHZ8mMLzLXCtmkQrG5mnVJECQ3"],"license":"BUSL-1.1"},"src/contracts/slasher/VetoSlasher.sol":{"keccak256":"0xeccc8128de5e1ad499c067feac1c526638fbbac1a18b96726fc7507969fd5897","urls":["bzz-raw://cdfcf281338423625acbccdf8810115b258ef7cfe4aa3c10b8911ead1aa85429","dweb:/ipfs/QmZFsDvZXpkFkx4PHcDXAVPN3ZCAahbSVfYpSVrMBvbt4k"],"license":"BUSL-1.1"},"src/contracts/vault/Vault.sol":{"keccak256":"0x2ceff6ed3298c4cad144c99fcc79b51cb9397d6ebef00285b915848b476f8c2e","urls":["bzz-raw://11f2fb3581854f3ab6e82e8d4935d9eb510c903a13c3f022346c2956a58f5307","dweb:/ipfs/QmdUnoXoyYoG9SGWyQZCFyLDRUUX3eXyXetkRvw6jxqqBz"],"license":"BUSL-1.1"},"src/contracts/vault/VaultStorage.sol":{"keccak256":"0x57db25b127d77ea3472de53e3a4af3354399655b9268638b99ca5925fa364a56","urls":["bzz-raw://aa763d9a6ec508ae3abfb8228b72b9fd9525279e5135d4962e79ff059feb1173","dweb:/ipfs/QmcbDR6E9wyEpu6V2FkEC4hnWy47zXA9LSKJde6zSGd33Q"],"license":"BUSL-1.1"},"src/interfaces/common/IEntity.sol":{"keccak256":"0x8ef4b63d6da63489778ccd5f8d13ebdd527dd4b62730b2c616df5af7474d2d21","urls":["bzz-raw://5a8d69576a9219d85c50816a18ad53a4d53cfcb27ed38b8cccc808dc2734b71b","dweb:/ipfs/QmYVN3P4Q4REvBWJ97TbAcaxm3uyB2anV6NSGa6ZtSwcEv"],"license":"MIT"},"src/interfaces/common/IMigratableEntity.sol":{"keccak256":"0x8f5f2809f3afbe8ebfbb365dd7b57b4dd3b6f9943a6187eaf648d45895b8e3c4","urls":["bzz-raw://0ffe640537d539e7a4fde70d30d3e4c57f4ba9c2c25c450cea713aae38e8fd5c","dweb:/ipfs/QmSUTGzvdcn1R1KB7tLThMRtESsfPbeXDhhhKWGtntzBds"],"license":"MIT"},"src/interfaces/common/IRegistry.sol":{"keccak256":"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb","urls":["bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014","dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK"],"license":"MIT"},"src/interfaces/common/IStaticDelegateCallable.sol":{"keccak256":"0xa335d4e81b9071b7de66ef92b43ff20671d86516eb1be46fef29a3483cd3f5d5","urls":["bzz-raw://d464b9db863c14c05547d2b23352f2e9b7b784799cf09f6bbc4906a2a74e3516","dweb:/ipfs/QmUVWzFvJz7eEbDQKiFTTzwi7TEbjcs3VmwdM4kuptAKvi"],"license":"MIT"},"src/interfaces/delegator/IBaseDelegator.sol":{"keccak256":"0x96bb312f032e17accce3f8f80936d99468029d6b37c9ca74acdb4b026a0148ee","urls":["bzz-raw://2a66dcb5b7d1a6ef6a363431ea98ebd78bc4fdd3d7a134d9b542dc66e7d025c2","dweb:/ipfs/QmRhTPLd2ZAyRHmJUFUcWKs9b3if49QY17LYZuRqWmghw8"],"license":"MIT"},"src/interfaces/delegator/IDelegatorHook.sol":{"keccak256":"0xc51aa8d7d1f6c8043ee819b7aeb86da0e993912e1442098df897e299f01f9f46","urls":["bzz-raw://adddf5cb2ba282aeb576b26efb28640f865a1721cc9b6eee8b3ee0457a2c9780","dweb:/ipfs/QmNYgAmnLRwWZbhTuQhZs9rx4zcme1df5mEepkrniorSoW"],"license":"MIT"},"src/interfaces/delegator/IFullRestakeDelegator.sol":{"keccak256":"0xa3c8cb2e45d4d8ce90e95263bea40c01dc400f05ad65bc29597d878606be5e7d","urls":["bzz-raw://782cf5e201aa4cca037ebafd3807a68ff1cc721d5b8416a35244db0d0607369e","dweb:/ipfs/QmQkJks6x7CKndeTPa9LxgTNygD5uEi7obhADhpq1Lsr9A"],"license":"MIT"},"src/interfaces/delegator/INetworkRestakeDelegator.sol":{"keccak256":"0xe7030fe30389a147fd710e3436ec346b4842695fd3e65a81b95375c9f1d633fc","urls":["bzz-raw://739c7e66d301778054f5c90bee45ec9438f68afba8a03eaaac52064c73b115ad","dweb:/ipfs/QmfZ2ytKcTykAc76nxhg8ikUXV8NdBpetqb8W4YWPcox1Z"],"license":"MIT"},"src/interfaces/delegator/IOperatorNetworkSpecificDelegator.sol":{"keccak256":"0x74b95e64d29769202d45dd277bb830f623ff3d41ce77b80ce3ee4e318a5c71ec","urls":["bzz-raw://e512b903aae5c1b8a028c6e3f4f6223b5cb5d704503cfa6bd37b5346868f5c20","dweb:/ipfs/QmZim9YExsPWtyxyeui993HTKAEmrg8MUcSkZ77Gp2JcuZ"],"license":"MIT"},"src/interfaces/delegator/IOperatorSpecificDelegator.sol":{"keccak256":"0x72075cab585dc17240cc3e32bc99b92f0d5627ddd988fed680e3e1a52d5a01e4","urls":["bzz-raw://7448bc90699409ae61d85216b5efc2143a37f0f73354be2aea993bc54afca441","dweb:/ipfs/QmXE4gAxM8pHosZK8mcTcj17puBx484meDCcmrDePskGHZ"],"license":"MIT"},"src/interfaces/service/INetworkMiddlewareService.sol":{"keccak256":"0x347afc7fcf1fbcdb96d66162070ef6c78aed27b3af2c1d5dfb4e511840631783","urls":["bzz-raw://2d90b8ceb495159e8e4e95d76447719dd166443f67dfabdd942846162071595c","dweb:/ipfs/QmVVuiAWYx92T6vBvNMKZfTvraCf1fa16BsUKkdNs3hdHA"],"license":"MIT"},"src/interfaces/service/IOptInService.sol":{"keccak256":"0x76fb5460a6d87a5705433d4fbeff7253cd75b8bbd0c888b2088f16e86ace146a","urls":["bzz-raw://990322019b3d11465f7024bae77ccbf7e2fe5d6fa3c754584778f37d04fa1337","dweb:/ipfs/QmaSNHzcqxTkUCG9a4nqVfLECHLdjdrwAnDi3yDC7tDL24"],"license":"MIT"},"src/interfaces/slasher/IBaseSlasher.sol":{"keccak256":"0x7c82528b445659c313ab77335c407b0b6efe5e79027187bb287f7bc74202b404","urls":["bzz-raw://0274c90aa5df1aa6bb470a6aab53992fb14fd7e5472c9430416505b29647d9cf","dweb:/ipfs/QmckbmJLDetPemVzCnnGcKYWAZV2BRFXGDsjiaec8jkHxx"],"license":"MIT"},"src/interfaces/slasher/IBurner.sol":{"keccak256":"0xaf495dacc19ae0b3c787ba8021c5944927d70261536addd234d7dab146158c2b","urls":["bzz-raw://9b3cc66251008be6ff9fc8b11ecc6831d5a9dca49a3fe9817fcd970253c1d447","dweb:/ipfs/QmVxfb9ALGdF9W3SN2h41gQbUct6tawvu5bw4K89kFQ4HW"],"license":"MIT"},"src/interfaces/slasher/ISlasher.sol":{"keccak256":"0x34d226d67a3d5e16571f2fac91a8b9773551bcc41c88a96279669dd78d192625","urls":["bzz-raw://7a6e8c1462ee4a1b0f745414be043c09012ea676613790aba004b06c85c980d1","dweb:/ipfs/QmadjNEbHKRthtA1EeNy3Kg2sXpejH2KBeHm8QZtBPvXbJ"],"license":"MIT"},"src/interfaces/slasher/IVetoSlasher.sol":{"keccak256":"0xdf7edd04a4f36e9aec3a15241dcb6b6315b2e64927b12710c2c410d571fc55e9","urls":["bzz-raw://c4be6ac339c2ebf230fed65363f036784224095d0cd0f3f2d01d64d6e0da9508","dweb:/ipfs/QmRSMbpfaHExqrzUA8vYZMYZWh6eQW1KX9JKJSLdgronfg"],"license":"MIT"},"src/interfaces/vault/IVault.sol":{"keccak256":"0xffee01d383cd4e1a5530c614bf4360c1ef070c288abec9da1eb531b51bc07235","urls":["bzz-raw://04f0046cac285d8ec44ebbb1f79dc94fab4495767190cad8364fbc1fafaadfb9","dweb:/ipfs/QmUawAunwzXfCyShWfhKeThAgKtqe51hmrxvrXvM772M2R"],"license":"MIT"},"src/interfaces/vault/IVaultStorage.sol":{"keccak256":"0x592626f13754194f83047135de19229c49390bd59e34659b1bb38be71d973a22","urls":["bzz-raw://06a6a9dfddd05e580b32bebe2cff4f63ba26a653180676d58225dd30d9c89d3e","dweb:/ipfs/QmdgzBeY6Sxo8mGtyBxtv1tM1c2kU6J6zjeRd7vuXm4DU6"],"license":"MIT"}},"version":1},"id":89} \ No newline at end of file +{"abi":[{"type":"constructor","inputs":[{"name":"baseSlasherHints","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"BASE_SLASHER_HINTS","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"BURNER_GAS_LIMIT","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"BURNER_RESERVE","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"FACTORY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"NETWORK_MIDDLEWARE_SERVICE","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"TYPE","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"VAULT_FACTORY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"cumulativeSlash","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"cumulativeSlashAt","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"timestamp","type":"uint48","internalType":"uint48"},{"name":"hint","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"initialize","inputs":[{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"isBurnerHook","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"latestSlashedCaptureTimestamp","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"value","type":"uint48","internalType":"uint48"}],"stateMutability":"view"},{"type":"function","name":"slash","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"captureTimestamp","type":"uint48","internalType":"uint48"},{"name":"hints","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"slashedAmount","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"slashHints","inputs":[{"name":"slasher","type":"address","internalType":"address"},{"name":"msgSender","type":"address","internalType":"address"},{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"captureTimestamp","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"slashableStake","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"captureTimestamp","type":"uint48","internalType":"uint48"},{"name":"hints","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"staticDelegateCall","inputs":[{"name":"target","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"vault","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"Slash","inputs":[{"name":"subnetwork","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"slashedAmount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"captureTimestamp","type":"uint48","indexed":false,"internalType":"uint48"}],"anonymous":false},{"type":"error","name":"CheckpointUnorderedInsertion","inputs":[]},{"type":"error","name":"ExternalCall","inputs":[]},{"type":"error","name":"InsufficientBurnerGas","inputs":[]},{"type":"error","name":"InsufficientSlash","inputs":[]},{"type":"error","name":"InvalidCaptureTimestamp","inputs":[]},{"type":"error","name":"InvalidInitialization","inputs":[]},{"type":"error","name":"NoBurner","inputs":[]},{"type":"error","name":"NotInitialized","inputs":[]},{"type":"error","name":"NotInitializing","inputs":[]},{"type":"error","name":"NotNetworkMiddleware","inputs":[]},{"type":"error","name":"NotVault","inputs":[]},{"type":"error","name":"ReentrancyGuardReentrantCall","inputs":[]},{"type":"error","name":"SafeCastOverflowedUintDowncast","inputs":[{"name":"bits","type":"uint8","internalType":"uint8"},{"name":"value","type":"uint256","internalType":"uint256"}]}],"bytecode":{"object":"0x6101403461015d576001600160401b0390601f61209f38819003918201601f1916830191848311848410176101615780849260209460405283398101031261015d5751906001600160a01b038216820361015d57306080527ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a009081549060ff8260401c1661014b578080831603610106575b835f60a0525f60c0525f60e052610100905f825261012090815260405190611f299283610176843960805183505060a051836104f2015260c0518381816109490152611379015260e05183818161031d01526116a901525182818161021c01526104ae0152518181816106920152610d330152f35b6001600160401b031990911681179091556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a15f8080610091565b60405163f92ee8a960e01b8152600490fd5b5f80fd5b634e487b7160e01b5f52604160045260245ffdfe60806040526004361015610011575f80fd5b5f3560e01c8063021a815614610124578063103f29071461011f5780631a2be2c41461011a578063238ab85f14610115578063267de1f3146101105780632964f8dc1461010b5780632c9d45b3146101065780632dd310001461010157806334d098ea146100fc578063439fab91146100f7578063457821b7146100f25780639f86fd85146100ed578063aa8e6489146100e8578063aab3595f146100e3578063bb24fe8a146100de578063d5c24e1a146100d95763fbfa77cf146100d4575f80fd5b61098a565b61096d565b61092a565b610905565b6108c7565b6106c1565b61067d565b610545565b610521565b6104dd565b610499565b61047d565b610428565b6103c4565b61034c565b610308565b61017b565b6001600160a01b0381160361013a57565b5f80fd5b65ffffffffffff81160361013a57565b9181601f8401121561013a578235916001600160401b03831161013a576020838186019501011161013a57565b3461013a5760a036600319011261013a5760043560243561019b81610129565b6064356101a78161013e565b6084356001600160401b03811161013a576101c690369060040161014e565b917f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0060028154146102ec5760029055604051635daf681960e11b8152606086901c60048201526001600160a01b036020826024817f000000000000000000000000000000000000000000000000000000000000000085165afa9182156102e7575f926102b6575b50339116036102a4576102a0946102679460443591610a63565b61029060017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055565b6040519081529081906020820190565b0390f35b60405163227bf64d60e01b8152600490fd5b6102d991925060203d6020116102e0575b6102d181836107dd565b810190610ddf565b905f61024d565b503d6102c7565b610a27565b604051633ee5aeb560e01b8152600490fd5b5f91031261013a57565b3461013a575f36600319011261013a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461013a57604036600319011261013a57602061039861039360243561037181610129565b6004355f526002845260405f209060018060a01b03165f5260205260405f2090565b6115c8565b604051908152f35b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b3461013a5760c036600319011261013a576102a06104146004356103e781610129565b6103f2602435610129565b6064356103fe81610129565b60a4359161040b8361013e565b60443590610ce7565b6040519182916020835260208301906103a0565b3461013a57604036600319011261013a57602065ffffffffffff61047360243561045181610129565b6004355f526001845260405f209060018060a01b03165f5260205260405f2090565b5416604051908152f35b3461013a575f36600319011261013a576020604051614e208152f35b3461013a575f36600319011261013a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461013a575f36600319011261013a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461013a575f36600319011261013a57602060ff5f5460a01c166040519015158152f35b3461013a57602036600319011261013a576001600160401b0360043581811161013a5761057690369060040161014e565b5f80516020611ed4833981519152549260ff8460401c1615931680159081610675575b600114908161066b575b159081610662575b50610650575f80516020611ed4833981519152805467ffffffffffffffff191660011790556105de918361062c57611672565b6105e457005b5f80516020611ed4833981519152805460ff60401b19169055604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a1005b5f80516020611ed4833981519152805460ff60401b1916600160401b179055611672565b60405163f92ee8a960e01b8152600490fd5b9050155f6105ab565b303b1591506105a3565b849150610599565b3461013a575f36600319011261013a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461013a5760408060031936011261013a576004356106df81610129565b602435906001600160401b03821161013a575f809161070561076994369060040161014e565b908187519283928337810184815203915af43d156107715761075b3d61072a8161081a565b90610737865192836107dd565b81523d5f602083013e5b8451948593151560208501528084015260608301906103a0565b03601f1981018352826107dd565b805190602001fd5b61075b6060610741565b634e487b7160e01b5f52604160045260245ffd5b602081019081106001600160401b038211176107aa57604052565b61077b565b604081019081106001600160401b038211176107aa57604052565b6001600160401b0381116107aa57604052565b90601f801991011681019081106001600160401b038211176107aa57604052565b6040519061080b826107af565b565b6040519061080b8261078f565b6001600160401b0381116107aa57601f01601f191660200190565b81601f8201121561013a5780359061084c8261081a565b9261085a60405194856107dd565b8284526020838301011161013a57815f926020809301838601378301015290565b90608060031983011261013a576004359160243561089881610129565b916044356108a58161013e565b91606435906001600160401b03821161013a576108c491600401610835565b90565b3461013a5760206103986109006108dd3661087b565b939190925f526002865260405f209060018060a01b03165f5260205260405f2090565b61180c565b3461013a5760206109216109183661087b565b92919091610ed9565b50604051908152f35b3461013a575f36600319011261013a5760206040516001600160401b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461013a575f36600319011261013a576020604051620249f08152f35b3461013a575f36600319011261013a575f546040516001600160a01b039091168152602090f35b604051906109be8261078f565b60608252565b9060208282031261013a5781356001600160401b039283821161013a57019060208282031261013a57604051926109fa8461078f565b823590811161013a57610a0d9201610835565b815290565b9081602091031261013a57516108c48161013e565b6040513d5f823e3d90fd5b634e487b7160e01b5f52601160045260245ffd5b65ffffffffffff9182169082160391908211610a5e57565b610a32565b92939594919095610a726109b1565b9280610c4d575b5050610a84426118e4565b5f54600490602090610aac90610aa0906001600160a01b031681565b6001600160a01b031690565b6040516327f843b560e11b815292839182905afa80156102e757610ae692610adb925f92610c1c575b50610a46565b65ffffffffffff1690565b65ffffffffffff8516908110908115610c06575b50610bf457610b0f610b189251858886610ed9565b92908092611109565b958615610be257610b9d61075b610b94610bdd947fe0cbbe1f1e6fd806ca87036fafcebaf7ab5247474a3b20e1c37bb50122c3a88496610b598a878b61111b565b610b648c878b6111a9565b610b6c6107fe565b9182526020820152604051928391602083019190916020806040830194805184520151910152565b86898488611315565b610ba7858861141e565b610bb3858883876114a3565b6040805188815265ffffffffffff90961660208701526001600160a01b0390911694918291820190565b0390a3565b60405163167f871760e31b8152600490fd5b604051631357ac9160e11b8152600490fd5b9050610c14610adb426118e4565b11155f610afa565b610c3f91925060203d602011610c46575b610c3781836107dd565b810190610a12565b905f610ad5565b503d610c2d565b610c5b9293508101906109c4565b905f80610a79565b81601f8201121561013a57805190610c7a8261081a565b92610c8860405194856107dd565b8284526020838301011161013a57815f9260208093018386015e8301015290565b9060208282031261013a5781516001600160401b03811161013a576108c49201610c63565b60406108c49260208352519160208082015201906103a0565b604051632751749360e11b81526001600160a01b0391821660048201526024810192909252918216604482015265ffffffffffff909216606483015260609291905f90829060849082907f0000000000000000000000000000000000000000000000000000000000000000165afa9081156102e7575f91610d91575b508051610d6d5750565b61075b9192506108c490610d7f61080d565b90815260405192839160208301610cce565b610dad91503d805f833e610da581836107dd565b810190610ca9565b5f610d63565b5f9081526002602090815260408083206001600160a01b039094168352929052206108c492919061180c565b9081602091031261013a57516108c481610129565b60405190610e01826107af565b60606020838281520152565b9060208282031261013a5781516001600160401b039283821161013a57019060408282031261013a5760405192610e43846107af565b825181811161013a5782610e58918501610c63565b8452602083015190811161013a57610e709201610c63565b602082015290565b9081602091031261013a575190565b9081526001600160a01b03909116602082015265ffffffffffff90911660408201526080606082018190526108c4929101906103a0565b5f19810191908211610a5e57565b91908203918211610a5e57565b92610ee2610df4565b908051806110ef575b5050610ef6426118e4565b5f54909490610f0f90610aa0906001600160a01b031681565b93604051956327f843b560e11b875260209687816004818a5afa80156102e757610f4392610adb925f926110d75750610a46565b65ffffffffffff82169081109081156110c0575b811561108f575b50611083578560049560405196878092630ce9b79360e41b82525afa9485156102e757610fb09587915f91611066575b50845190604051808099819463e02f693760e01b8352878b8a60048601610e87565b03916001600160a01b03165afa9384156102e757611022955f95611025575b5092611017859361101d9361101796869a61100e61039383610ff9875f52600260205260405f2090565b9060018060a01b03165f5260205260405f2090565b95015192610db3565b90610ecc565b611109565b91565b61101d929550611017949193611053611017928a3d8c1161105f575b61104b81836107dd565b810190610e78565b96935093919450610fcf565b503d611041565b61107d9150823d84116102e0576102d181836107dd565b5f610f8e565b5050505050505f905f90565b90506110b9610adb6110ad87610ff9875f52600160205260405f2090565b5465ffffffffffff1690565b115f610f5e565b90506110ce610adb426118e4565b81101590610f57565b610c3f9192508a3d8c11610c4657610c3781836107dd565b6111029250602080918301019101610e0d565b5f80610eeb565b9080821015611116575090565b905090565b919091805f52600160205265ffffffffffff8061114b8560405f209060018060a01b03165f5260205260405f2090565b54169083161161115a57505050565b61080b92611182915f52600160205260405f209060018060a01b03165f5260205260405f2090565b9065ffffffffffff1665ffffffffffff19825416179055565b9060018201809211610a5e57565b9190825f5260026020526112016103936111d68360405f209060018060a01b03165f5260205260405f2090565b926111e0426118e4565b955f52600260205260405f209060018060a01b03165f5260205260405f2090565b918201809211610a5e5760018101908154156112a5575b61122181611b40565b509490835495611230846115c8565b5081611290575b501561126f5750505f198301928311610a5e5761080b926112579161159f565b90919082549060031b91821b915f19901b1916179055565b61080b94611289926001600160d01b039091169190611c17565b5050611943565b65ffffffffffff83811691161490505f611237565b6112ae82611916565b611218565b606060206108c4938184526001600160401b038151168285015201519160408082015201906103a0565b919360a0936108c4969565ffffffffffff938552600180871b03166020850152604084015216606082015281608082015201906103a0565b92939060046020611332610aa0610aa05f5460018060a01b031690565b604051630ce9b79360e41b815292839182905afa9081156102e75761075b916113b0915f916113ff575b506001600160a01b03169361136f6107fe565b6001600160401b037f0000000000000000000000000000000000000000000000000000000000000000168152906020820152604051928391602083016112b3565b823b1561013a575f946113db86926040519889978896879563724ab0f760e11b8752600487016112dd565b03925af180156102e7576113ec5750565b806113f961080b926107ca565b806102fe565b611418915060203d6020116102e0576102d181836107dd565b5f61135c565b5f8054604051631c9e38c760e21b8152600481019390935265ffffffffffff9390931660248301529091602091839160449183916001600160a01b03165af180156102e75761146a5750565b6114829060203d60201161105f5761104b81836107dd565b50565b811561148f570490565b634e487b7160e01b5f52601260045260245ffd5b92905f549060ff8260a01c166114bb575b5050505050565b6040516313c085b760e11b815291602090839060049082906001600160a01b03165afa9182156102e7575f92611578575b5060405163065c1e0360e01b6020820190815260248201969096526001600160a01b039091166044820152606481019390935265ffffffffffff90911660848301526115458260a481015b03601f1981018452836107dd565b6202a15c5a10611566575f928380935192620249f0f1505f808080806114b4565b604051632153f33560e21b8152600490fd5b61154592506115986115379160203d6020116102e0576102d181836107dd565b92506114ec565b80548210156115b4575f5260205f2001905f90565b634e487b7160e01b5f52603260045260245ffd5b8054806115fd57505f5b6001600160d01b038116156115f75760016115ed920161159f565b90549060031b1c90565b50505f90565b5f19908082810111610a5e57825f5260205f2001015460301c6115d2565b91909160408184031261013a57803561163381610129565b9260208201356001600160401b03811161013a576108c49201610835565b5190811515820361013a57565b9081602091031261013a576108c490611651565b61167e9181019061161b565b6040516302910f8b60e31b81526001600160a01b0392831660048201819052929160209182816024817f000000000000000000000000000000000000000000000000000000000000000088165afa9081156102e7575f916117ae575b501561179c578161170e6004926116ef611966565b5f80546001600160a01b0319166001600160a01b03891617905561199c565b94604051928380926313c085b760e11b82525afa9182156102e7575f9261177f575b5050161580611775575b611763575161080b9015155f805460ff60a01b191691151560a01b60ff60a01b16919091179055565b60405163d2420f5960e01b8152600490fd5b508051151561173a565b6117959250803d106102e0576102d181836107dd565b5f80611730565b6040516362df054560e01b8152600490fd5b6117ce9150833d85116117d4575b6117c681836107dd565b81019061165e565b5f6116da565b503d6117bc565b9081602091031261013a575163ffffffff8116810361013a5790565b90600163ffffffff80931601918211610a5e57565b918051156118da5780602080611827935183010191016117db565b916118328382611ab4565b92611843845165ffffffffffff1690565b9065ffffffffffff80851692168281146118ce5782119182611879575b5050611870576108c492506119e4565b50506020015190565b9091506118868354610ebe565b63ffffffff83161491821561189f575b50505f80611860565b6118c69192506118ba6118b4610adb926117f7565b85611ab4565b5165ffffffffffff1690565b115f80611896565b50505050506020015190565b506108c4916119e4565b65ffffffffffff908181116118f7571690565b604490604051906306dfcc6560e41b8252603060048301526024820152fd5b8054600160401b8110156107aa576119339160018201815561159f565b8154905f199060031b1b19169055565b90815491600160401b8310156107aa578261125791600161080b9501815561159f565b61196e611b8f565b611976611b8f565b60017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055565b5f6040516119a98161078f565b5260208180518101031261013a576020906040516119c68161078f565b6119de6040519384936119d88561078f565b01611651565b82525290565b908154905f829160058411611a4e575b6119ff935084611e74565b80611a2757505f905b6001600160d01b038216156115f7576108c49160016115ed920161159f565b611a41611a36611a4892610ebe565b835f5260205f200190565b5460301c90565b90611a08565b9192611a5981611d36565b8103908111610a5e576119ff93855f5265ffffffffffff808360205f20015416908516105f14611a8a5750916119f4565b929150611a969061119b565b906119f4565b60405190611aa9826107af565b5f6020838281520152565b90611add611ad7611afe92611ac7611a9c565b50611ad0611a9c565b508461159f565b50611b1c565b91600165ffffffffffff845116936020828060d01b0391015116910161159f565b90549060405192611b0e846107af565b835260031b1c602082015290565b90604051611b29816107af565b915465ffffffffffff8116835260301c6020830152565b805480611b515750505f905f905f90565b5f19908082810111610a5e57611b6e925f5260205f200101611b1c565b9065ffffffffffff82511691602060018060d01b0391015116906001929190565b60ff5f80516020611ed48339815191525460401c1615611bab57565b604051631afcd79f60e31b8152600490fd5b8054600160401b8110156107aa57611bda9160018201815561159f565b611c0457815160209092015160301b65ffffffffffff191665ffffffffffff909216919091179055565b634e487b7160e01b5f525f60045260245ffd5b805492939291908215611d0d57611c38611c33611a3685610ebe565b611b1c565b90611c49825165ffffffffffff1690565b65ffffffffffff84811691168110611cfb57611cbf946020948892611c77610adb875165ffffffffffff1690565b03611cc35750611cb192611c8d611c9892610ebe565b905f5260205f200190565b9065ffffffffffff82549181199060301b169116179055565b01516001600160d01b031690565b9190565b915050611cf691611ce3611cd56107fe565b65ffffffffffff9093168352565b6001600160d01b03881682860152611bbd565b611cb1565b604051632520601d60e01b8152600490fd5b611d319250611d1d611cd56107fe565b6001600160d01b0385166020830152611bbd565b5f9190565b8015611e6f5780611e08611e01611df7611ded611de3611dd9611dcf611dc560016108c49a5f908b60801c80611e63575b508060401c80611e56575b508060201c80611e49575b508060101c80611e3c575b508060081c80611e2f575b508060041c80611e22575b508060021c80611e15575b50821c611e0e575b811c1b611dbe818b611485565b0160011c90565b611dbe818a611485565b611dbe8189611485565b611dbe8188611485565b611dbe8187611485565b611dbe8186611485565b611dbe8185611485565b8092611485565b90611109565b8101611db1565b600291509101905f611da9565b600491509101905f611d9e565b600891509101905f611d93565b601091509101905f611d88565b602091509101905f611d7d565b604091509101905f611d72565b9150506080905f611d67565b505f90565b91905b838210611e845750505090565b9091928083169080841860011c8201809211610a5e57845f5265ffffffffffff808360205f20015416908416105f14611ec15750925b9190611e77565b939250611ecd9061119b565b91611eba56fef0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a2646970667358221220bead91c521e34513050434cea50d07f95784d3ccc2f6242d53243cdc1dd2f24e64736f6c63430008190033","sourceMap":"2765:796:84:-:0;;;;-1:-1:-1;;;;;2765:796:84;;;;;;;;;;-1:-1:-1;;2765:796:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2765:796:84;;;;;;348:4:82;332:21;;8837:64:25;2765:796:84;;;;;;;;;7896:76:25;;2765:796:84;;;;7985:34:25;7981:146;;-1:-1:-1;525:17:69;-1:-1:-1;525:17:69;;-1:-1:-1;552:12:69;;-1:-1:-1;2353:28:92;;2391:53;;-1:-1:-1;2391:53:92;;2970:37:84;;;;2765:796;;;;;;;;;332:21:82;2765:796:84;;;;525:17:69;2765:796:84;;;;;552:12:69;2765:796:84;;;;;;;;;;2353:28:92;2765:796:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7981:146:25;-1:-1:-1;;;;;;2765:796:84;;;;;;;;;;;;;8087:29:25;;2765:796:84;;8087:29:25;7981:146;;;;;7896:76;2765:796:84;;-1:-1:-1;;;7938:23:25;;;;;2765:796:84;-1:-1:-1;2765:796:84;;;;;;-1:-1:-1;2765:796:84;;;;;-1:-1:-1;2765:796:84","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361015610011575f80fd5b5f3560e01c8063021a815614610124578063103f29071461011f5780631a2be2c41461011a578063238ab85f14610115578063267de1f3146101105780632964f8dc1461010b5780632c9d45b3146101065780632dd310001461010157806334d098ea146100fc578063439fab91146100f7578063457821b7146100f25780639f86fd85146100ed578063aa8e6489146100e8578063aab3595f146100e3578063bb24fe8a146100de578063d5c24e1a146100d95763fbfa77cf146100d4575f80fd5b61098a565b61096d565b61092a565b610905565b6108c7565b6106c1565b61067d565b610545565b610521565b6104dd565b610499565b61047d565b610428565b6103c4565b61034c565b610308565b61017b565b6001600160a01b0381160361013a57565b5f80fd5b65ffffffffffff81160361013a57565b9181601f8401121561013a578235916001600160401b03831161013a576020838186019501011161013a57565b3461013a5760a036600319011261013a5760043560243561019b81610129565b6064356101a78161013e565b6084356001600160401b03811161013a576101c690369060040161014e565b917f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0060028154146102ec5760029055604051635daf681960e11b8152606086901c60048201526001600160a01b036020826024817f000000000000000000000000000000000000000000000000000000000000000085165afa9182156102e7575f926102b6575b50339116036102a4576102a0946102679460443591610a63565b61029060017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055565b6040519081529081906020820190565b0390f35b60405163227bf64d60e01b8152600490fd5b6102d991925060203d6020116102e0575b6102d181836107dd565b810190610ddf565b905f61024d565b503d6102c7565b610a27565b604051633ee5aeb560e01b8152600490fd5b5f91031261013a57565b3461013a575f36600319011261013a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461013a57604036600319011261013a57602061039861039360243561037181610129565b6004355f526002845260405f209060018060a01b03165f5260205260405f2090565b6115c8565b604051908152f35b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b3461013a5760c036600319011261013a576102a06104146004356103e781610129565b6103f2602435610129565b6064356103fe81610129565b60a4359161040b8361013e565b60443590610ce7565b6040519182916020835260208301906103a0565b3461013a57604036600319011261013a57602065ffffffffffff61047360243561045181610129565b6004355f526001845260405f209060018060a01b03165f5260205260405f2090565b5416604051908152f35b3461013a575f36600319011261013a576020604051614e208152f35b3461013a575f36600319011261013a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461013a575f36600319011261013a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461013a575f36600319011261013a57602060ff5f5460a01c166040519015158152f35b3461013a57602036600319011261013a576001600160401b0360043581811161013a5761057690369060040161014e565b5f80516020611ed4833981519152549260ff8460401c1615931680159081610675575b600114908161066b575b159081610662575b50610650575f80516020611ed4833981519152805467ffffffffffffffff191660011790556105de918361062c57611672565b6105e457005b5f80516020611ed4833981519152805460ff60401b19169055604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a1005b5f80516020611ed4833981519152805460ff60401b1916600160401b179055611672565b60405163f92ee8a960e01b8152600490fd5b9050155f6105ab565b303b1591506105a3565b849150610599565b3461013a575f36600319011261013a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461013a5760408060031936011261013a576004356106df81610129565b602435906001600160401b03821161013a575f809161070561076994369060040161014e565b908187519283928337810184815203915af43d156107715761075b3d61072a8161081a565b90610737865192836107dd565b81523d5f602083013e5b8451948593151560208501528084015260608301906103a0565b03601f1981018352826107dd565b805190602001fd5b61075b6060610741565b634e487b7160e01b5f52604160045260245ffd5b602081019081106001600160401b038211176107aa57604052565b61077b565b604081019081106001600160401b038211176107aa57604052565b6001600160401b0381116107aa57604052565b90601f801991011681019081106001600160401b038211176107aa57604052565b6040519061080b826107af565b565b6040519061080b8261078f565b6001600160401b0381116107aa57601f01601f191660200190565b81601f8201121561013a5780359061084c8261081a565b9261085a60405194856107dd565b8284526020838301011161013a57815f926020809301838601378301015290565b90608060031983011261013a576004359160243561089881610129565b916044356108a58161013e565b91606435906001600160401b03821161013a576108c491600401610835565b90565b3461013a5760206103986109006108dd3661087b565b939190925f526002865260405f209060018060a01b03165f5260205260405f2090565b61180c565b3461013a5760206109216109183661087b565b92919091610ed9565b50604051908152f35b3461013a575f36600319011261013a5760206040516001600160401b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461013a575f36600319011261013a576020604051620249f08152f35b3461013a575f36600319011261013a575f546040516001600160a01b039091168152602090f35b604051906109be8261078f565b60608252565b9060208282031261013a5781356001600160401b039283821161013a57019060208282031261013a57604051926109fa8461078f565b823590811161013a57610a0d9201610835565b815290565b9081602091031261013a57516108c48161013e565b6040513d5f823e3d90fd5b634e487b7160e01b5f52601160045260245ffd5b65ffffffffffff9182169082160391908211610a5e57565b610a32565b92939594919095610a726109b1565b9280610c4d575b5050610a84426118e4565b5f54600490602090610aac90610aa0906001600160a01b031681565b6001600160a01b031690565b6040516327f843b560e11b815292839182905afa80156102e757610ae692610adb925f92610c1c575b50610a46565b65ffffffffffff1690565b65ffffffffffff8516908110908115610c06575b50610bf457610b0f610b189251858886610ed9565b92908092611109565b958615610be257610b9d61075b610b94610bdd947fe0cbbe1f1e6fd806ca87036fafcebaf7ab5247474a3b20e1c37bb50122c3a88496610b598a878b61111b565b610b648c878b6111a9565b610b6c6107fe565b9182526020820152604051928391602083019190916020806040830194805184520151910152565b86898488611315565b610ba7858861141e565b610bb3858883876114a3565b6040805188815265ffffffffffff90961660208701526001600160a01b0390911694918291820190565b0390a3565b60405163167f871760e31b8152600490fd5b604051631357ac9160e11b8152600490fd5b9050610c14610adb426118e4565b11155f610afa565b610c3f91925060203d602011610c46575b610c3781836107dd565b810190610a12565b905f610ad5565b503d610c2d565b610c5b9293508101906109c4565b905f80610a79565b81601f8201121561013a57805190610c7a8261081a565b92610c8860405194856107dd565b8284526020838301011161013a57815f9260208093018386015e8301015290565b9060208282031261013a5781516001600160401b03811161013a576108c49201610c63565b60406108c49260208352519160208082015201906103a0565b604051632751749360e11b81526001600160a01b0391821660048201526024810192909252918216604482015265ffffffffffff909216606483015260609291905f90829060849082907f0000000000000000000000000000000000000000000000000000000000000000165afa9081156102e7575f91610d91575b508051610d6d5750565b61075b9192506108c490610d7f61080d565b90815260405192839160208301610cce565b610dad91503d805f833e610da581836107dd565b810190610ca9565b5f610d63565b5f9081526002602090815260408083206001600160a01b039094168352929052206108c492919061180c565b9081602091031261013a57516108c481610129565b60405190610e01826107af565b60606020838281520152565b9060208282031261013a5781516001600160401b039283821161013a57019060408282031261013a5760405192610e43846107af565b825181811161013a5782610e58918501610c63565b8452602083015190811161013a57610e709201610c63565b602082015290565b9081602091031261013a575190565b9081526001600160a01b03909116602082015265ffffffffffff90911660408201526080606082018190526108c4929101906103a0565b5f19810191908211610a5e57565b91908203918211610a5e57565b92610ee2610df4565b908051806110ef575b5050610ef6426118e4565b5f54909490610f0f90610aa0906001600160a01b031681565b93604051956327f843b560e11b875260209687816004818a5afa80156102e757610f4392610adb925f926110d75750610a46565b65ffffffffffff82169081109081156110c0575b811561108f575b50611083578560049560405196878092630ce9b79360e41b82525afa9485156102e757610fb09587915f91611066575b50845190604051808099819463e02f693760e01b8352878b8a60048601610e87565b03916001600160a01b03165afa9384156102e757611022955f95611025575b5092611017859361101d9361101796869a61100e61039383610ff9875f52600260205260405f2090565b9060018060a01b03165f5260205260405f2090565b95015192610db3565b90610ecc565b611109565b91565b61101d929550611017949193611053611017928a3d8c1161105f575b61104b81836107dd565b810190610e78565b96935093919450610fcf565b503d611041565b61107d9150823d84116102e0576102d181836107dd565b5f610f8e565b5050505050505f905f90565b90506110b9610adb6110ad87610ff9875f52600160205260405f2090565b5465ffffffffffff1690565b115f610f5e565b90506110ce610adb426118e4565b81101590610f57565b610c3f9192508a3d8c11610c4657610c3781836107dd565b6111029250602080918301019101610e0d565b5f80610eeb565b9080821015611116575090565b905090565b919091805f52600160205265ffffffffffff8061114b8560405f209060018060a01b03165f5260205260405f2090565b54169083161161115a57505050565b61080b92611182915f52600160205260405f209060018060a01b03165f5260205260405f2090565b9065ffffffffffff1665ffffffffffff19825416179055565b9060018201809211610a5e57565b9190825f5260026020526112016103936111d68360405f209060018060a01b03165f5260205260405f2090565b926111e0426118e4565b955f52600260205260405f209060018060a01b03165f5260205260405f2090565b918201809211610a5e5760018101908154156112a5575b61122181611b40565b509490835495611230846115c8565b5081611290575b501561126f5750505f198301928311610a5e5761080b926112579161159f565b90919082549060031b91821b915f19901b1916179055565b61080b94611289926001600160d01b039091169190611c17565b5050611943565b65ffffffffffff83811691161490505f611237565b6112ae82611916565b611218565b606060206108c4938184526001600160401b038151168285015201519160408082015201906103a0565b919360a0936108c4969565ffffffffffff938552600180871b03166020850152604084015216606082015281608082015201906103a0565b92939060046020611332610aa0610aa05f5460018060a01b031690565b604051630ce9b79360e41b815292839182905afa9081156102e75761075b916113b0915f916113ff575b506001600160a01b03169361136f6107fe565b6001600160401b037f0000000000000000000000000000000000000000000000000000000000000000168152906020820152604051928391602083016112b3565b823b1561013a575f946113db86926040519889978896879563724ab0f760e11b8752600487016112dd565b03925af180156102e7576113ec5750565b806113f961080b926107ca565b806102fe565b611418915060203d6020116102e0576102d181836107dd565b5f61135c565b5f8054604051631c9e38c760e21b8152600481019390935265ffffffffffff9390931660248301529091602091839160449183916001600160a01b03165af180156102e75761146a5750565b6114829060203d60201161105f5761104b81836107dd565b50565b811561148f570490565b634e487b7160e01b5f52601260045260245ffd5b92905f549060ff8260a01c166114bb575b5050505050565b6040516313c085b760e11b815291602090839060049082906001600160a01b03165afa9182156102e7575f92611578575b5060405163065c1e0360e01b6020820190815260248201969096526001600160a01b039091166044820152606481019390935265ffffffffffff90911660848301526115458260a481015b03601f1981018452836107dd565b6202a15c5a10611566575f928380935192620249f0f1505f808080806114b4565b604051632153f33560e21b8152600490fd5b61154592506115986115379160203d6020116102e0576102d181836107dd565b92506114ec565b80548210156115b4575f5260205f2001905f90565b634e487b7160e01b5f52603260045260245ffd5b8054806115fd57505f5b6001600160d01b038116156115f75760016115ed920161159f565b90549060031b1c90565b50505f90565b5f19908082810111610a5e57825f5260205f2001015460301c6115d2565b91909160408184031261013a57803561163381610129565b9260208201356001600160401b03811161013a576108c49201610835565b5190811515820361013a57565b9081602091031261013a576108c490611651565b61167e9181019061161b565b6040516302910f8b60e31b81526001600160a01b0392831660048201819052929160209182816024817f000000000000000000000000000000000000000000000000000000000000000088165afa9081156102e7575f916117ae575b501561179c578161170e6004926116ef611966565b5f80546001600160a01b0319166001600160a01b03891617905561199c565b94604051928380926313c085b760e11b82525afa9182156102e7575f9261177f575b5050161580611775575b611763575161080b9015155f805460ff60a01b191691151560a01b60ff60a01b16919091179055565b60405163d2420f5960e01b8152600490fd5b508051151561173a565b6117959250803d106102e0576102d181836107dd565b5f80611730565b6040516362df054560e01b8152600490fd5b6117ce9150833d85116117d4575b6117c681836107dd565b81019061165e565b5f6116da565b503d6117bc565b9081602091031261013a575163ffffffff8116810361013a5790565b90600163ffffffff80931601918211610a5e57565b918051156118da5780602080611827935183010191016117db565b916118328382611ab4565b92611843845165ffffffffffff1690565b9065ffffffffffff80851692168281146118ce5782119182611879575b5050611870576108c492506119e4565b50506020015190565b9091506118868354610ebe565b63ffffffff83161491821561189f575b50505f80611860565b6118c69192506118ba6118b4610adb926117f7565b85611ab4565b5165ffffffffffff1690565b115f80611896565b50505050506020015190565b506108c4916119e4565b65ffffffffffff908181116118f7571690565b604490604051906306dfcc6560e41b8252603060048301526024820152fd5b8054600160401b8110156107aa576119339160018201815561159f565b8154905f199060031b1b19169055565b90815491600160401b8310156107aa578261125791600161080b9501815561159f565b61196e611b8f565b611976611b8f565b60017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055565b5f6040516119a98161078f565b5260208180518101031261013a576020906040516119c68161078f565b6119de6040519384936119d88561078f565b01611651565b82525290565b908154905f829160058411611a4e575b6119ff935084611e74565b80611a2757505f905b6001600160d01b038216156115f7576108c49160016115ed920161159f565b611a41611a36611a4892610ebe565b835f5260205f200190565b5460301c90565b90611a08565b9192611a5981611d36565b8103908111610a5e576119ff93855f5265ffffffffffff808360205f20015416908516105f14611a8a5750916119f4565b929150611a969061119b565b906119f4565b60405190611aa9826107af565b5f6020838281520152565b90611add611ad7611afe92611ac7611a9c565b50611ad0611a9c565b508461159f565b50611b1c565b91600165ffffffffffff845116936020828060d01b0391015116910161159f565b90549060405192611b0e846107af565b835260031b1c602082015290565b90604051611b29816107af565b915465ffffffffffff8116835260301c6020830152565b805480611b515750505f905f905f90565b5f19908082810111610a5e57611b6e925f5260205f200101611b1c565b9065ffffffffffff82511691602060018060d01b0391015116906001929190565b60ff5f80516020611ed48339815191525460401c1615611bab57565b604051631afcd79f60e31b8152600490fd5b8054600160401b8110156107aa57611bda9160018201815561159f565b611c0457815160209092015160301b65ffffffffffff191665ffffffffffff909216919091179055565b634e487b7160e01b5f525f60045260245ffd5b805492939291908215611d0d57611c38611c33611a3685610ebe565b611b1c565b90611c49825165ffffffffffff1690565b65ffffffffffff84811691168110611cfb57611cbf946020948892611c77610adb875165ffffffffffff1690565b03611cc35750611cb192611c8d611c9892610ebe565b905f5260205f200190565b9065ffffffffffff82549181199060301b169116179055565b01516001600160d01b031690565b9190565b915050611cf691611ce3611cd56107fe565b65ffffffffffff9093168352565b6001600160d01b03881682860152611bbd565b611cb1565b604051632520601d60e01b8152600490fd5b611d319250611d1d611cd56107fe565b6001600160d01b0385166020830152611bbd565b5f9190565b8015611e6f5780611e08611e01611df7611ded611de3611dd9611dcf611dc560016108c49a5f908b60801c80611e63575b508060401c80611e56575b508060201c80611e49575b508060101c80611e3c575b508060081c80611e2f575b508060041c80611e22575b508060021c80611e15575b50821c611e0e575b811c1b611dbe818b611485565b0160011c90565b611dbe818a611485565b611dbe8189611485565b611dbe8188611485565b611dbe8187611485565b611dbe8186611485565b611dbe8185611485565b8092611485565b90611109565b8101611db1565b600291509101905f611da9565b600491509101905f611d9e565b600891509101905f611d93565b601091509101905f611d88565b602091509101905f611d7d565b604091509101905f611d72565b9150506080905f611d67565b505f90565b91905b838210611e845750505090565b9091928083169080841860011c8201809211610a5e57845f5265ffffffffffff808360205f20015416908416105f14611ec15750925b9190611e77565b939250611ecd9061119b565b91611eba56fef0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a2646970667358221220bead91c521e34513050434cea50d07f95784d3ccc2f6242d53243cdc1dd2f24e64736f6c63430008190033","sourceMap":"2765:796:84:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;-1:-1:-1;;;;;2765:796:84;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;2765:796:84;;;;;;;;;;;;;;;:::o;:::-;;;;;;-1:-1:-1;;2765:796:84;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;-1:-1:-1;;;;;2765:796:84;;;;;;;;;;;:::i;:::-;2355:73:28;;1847:1;2765:796:84;;3526:20:28;3522:88;;1847:1;;;2765:796:84;;-1:-1:-1;;;4546:86:92;;2765:796:84;;;;;4546:86:92;;2765:796:84;-1:-1:-1;;;;;2765:796:84;;;;4572:26:92;2765:796:84;;4546:86:92;;;;;;;-1:-1:-1;4546:86:92;;;2765:796:84;4636:10:92;;2765:796:84;;4546:100:92;4542:160;;2765:796:84;;774:1493:93;2765:796:84;;;774:1493:93;;:::i;:::-;3282:1:28;1805;2355:73;1847:1;3716:283;3282:1;2765:796:84;;;;;;;;;;;;;;;;;4542:160:92;2765:796:84;;-1:-1:-1;;;4669:22:92;;2765:796:84;;4669:22:92;4546:86;;;;;2765:796:84;4546:86:92;2765:796:84;4546:86:92;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;;:::i;3522:88:28:-;2765:796:84;;-1:-1:-1;;;3569:30:28;;2765:796:84;;3569:30:28;2765:796:84;;;;;;;:::o;:::-;;;;;;-1:-1:-1;;2765:796:84;;;;;;1435:38:92;-1:-1:-1;;;;;2765:796:84;;;;;;;;;;;;-1:-1:-1;;2765:796:84;;;;;2936:47:92;:38;2765:796:84;;;;;:::i;:::-;;;-1:-1:-1;2765:796:84;2936:16:92;2765:796:84;;;-1:-1:-1;2765:796:84;;;;;;;;;;;;;;;;;2936:38:92;:47;:::i;:::-;2765:796:84;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2765:796:84;;;;;;;;-1:-1:-1;;2765:796:84;;;;:::o;:::-;;;;;;-1:-1:-1;;2765:796:84;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;2765:796:84;;;;;;1788:109:92;2765:796:84;;;;;:::i;:::-;;;-1:-1:-1;2765:796:84;1788:109:92;2765:796:84;;;-1:-1:-1;2765:796:84;;;;;;;;;;;;;;;;;1788:109:92;2765:796:84;;;;;;;;;;;;;;-1:-1:-1;;2765:796:84;;;;;;;1374:6:92;2765:796:84;;;;;;;;;-1:-1:-1;;2765:796:84;;;;;;1528:51:92;-1:-1:-1;;;;;2765:796:84;;;;;;;;;;;;-1:-1:-1;;2765:796:84;;;;;;322:32:69;-1:-1:-1;;;;;2765:796:84;;;;;;;;;;;;-1:-1:-1;;2765:796:84;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2765:796:84;;;;-1:-1:-1;;;;;2765:796:84;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;2765:796:84;;;;;;;4301:16:25;2765:796:84;;4726:16:25;;:34;;;;2765:796:84;4805:1:25;4790:16;:50;;;;2765:796:84;4855:13:25;:30;;;;2765:796:84;4851:91:25;;;-1:-1:-1;;;;;;;;;;;2765:796:84;;-1:-1:-1;;2765:796:84;;;;;718:4:69;;4951:18:25;4979:67;;718:4:69;:::i;:::-;5066:101:25;;2765:796:84;5066:101:25;-1:-1:-1;;;;;;;;;;;2765:796:84;;-1:-1:-1;;;;2765:796:84;;;;;-1:-1:-1;2765:796:84;;5142:14:25;;2765:796:84;;5142:14:25;2765:796:84;4979:67:25;-1:-1:-1;;;;;;;;;;;2765:796:84;;-1:-1:-1;;;;2765:796:84;-1:-1:-1;;;2765:796:84;;;718:4:69;:::i;4851:91:25:-;2765:796:84;;-1:-1:-1;;;4908:23:25;;2765:796:84;;4908:23:25;4855:30;4872:13;;;4855:30;;;4790:50;4818:4;4810:25;:30;;-1:-1:-1;4790:50:25;;4726:34;;;-1:-1:-1;4726:34:25;;2765:796:84;;;;;;-1:-1:-1;;2765:796:84;;;;;;2811:43;-1:-1:-1;;;;;2765:796:84;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;2765:796:84;;;;-1:-1:-1;2765:796:84;;;477:31:75;2765:796:84;;;;;;:::i;:::-;;;;;;;;;;;;;;;416:25:75;;;;2765:796:84;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;-1:-1:-1;2765:796:84;;;;;;;;;;;;;477:31:75;;2765:796:84;;;;;;;;;;:::i;:::-;477:31:75;2765:796:84;;477:31:75;;;;;;:::i;:::-;518:79;;;2765:796:84;518:79:75;;2765:796:84;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2765:796:84;;;;;;;:::o;:::-;;:::i;:::-;;;;;;;-1:-1:-1;;;;;2765:796:84;;;;;;;:::o;:::-;-1:-1:-1;;;;;2765:796:84;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;2765:796:84;;;;;;;:::o;:::-;;;;;;;:::i;:::-;:::o;:::-;;;;;;;:::i;:::-;-1:-1:-1;;;;;2765:796:84;;;;;;-1:-1:-1;;2765:796:84;;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;2765:796:84;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;2765:796:84;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;-1:-1:-1;;;;;2765:796:84;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;2692:73:92;:38;2765:796:84;;;:::i;:::-;;;;;-1:-1:-1;2765:796:84;2692:16:92;2765:796:84;;;-1:-1:-1;2765:796:84;;;;;;;;;;;;;;;;;2692:38:92;:73;:::i;2765:796:84:-;;;;;3248:62:92;2765:796:84;;;:::i;:::-;3248:62:92;;;;;:::i;:::-;2765:796:84;;;;;;;;;;;;;-1:-1:-1;;2765:796:84;;;;;;;-1:-1:-1;;;;;404:28:69;2765:796:84;;;;;;;;;;-1:-1:-1;;2765:796:84;;;;;;;1271:7:92;2765:796:84;;;;;;;;;-1:-1:-1;;2765:796:84;;;;;;;;-1:-1:-1;;;;;2765:796:84;;;;;;;;;;;;;;;:::i;:::-;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;;;;2765:796:84;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;;;;:::o;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;:::i;774:1493:93:-;;;;;;;;2765:796:84;;:::i;:::-;1076:16:93;;1072:91;;774:1493;837:15:62;;819:34;837:15;819:34;:::i;:::-;-1:-1:-1;2765:796:84;1215:29:93;;;;:27;;:13;;-1:-1:-1;;;;;2765:796:84;1215:13:93;2765:796:84;;-1:-1:-1;;;;;2765:796:84;;;1215:27:93;2765:796:84;;-1:-1:-1;;;1215:29:93;;2765:796:84;;;;;1215:29:93;;;;;;1177:67;1215:29;1196:48;1215:29;-1:-1:-1;1215:29:93;;;774:1493;1196:48;;:::i;:::-;2765:796:84;;;;1177:67:93;2765:796:84;;;1177:67:93;;;:107;;;;;774:1493;1173:178;;;1418:87;1531:33;1474:30;;1418:87;;;;:::i;:::-;1531:33;;;;;:::i;:::-;1578:18;;;1574:75;;1950:87;;;2200:60;1718:16;2200:60;1718:16;;;;;;:::i;:::-;1791:13;;;;;:::i;:::-;2765:796:84;;:::i;:::-;;;;1215:29:93;1961:75;;2765:796:84;;;1950:87:93;;;1215:29;1950:87;;2765:796:84;;;;;;;;;;;;;;;;;;;1950:87:93;;;;;;:::i;:::-;2087:16;;;;:::i;:::-;2167;;;;;;:::i;:::-;2765:796:84;;;;;;;;;;;;;;-1:-1:-1;;;;;2765:796:84;;;;;;;;;;;2200:60:93;;;;774:1493::o;1574:75::-;2765:796:84;;-1:-1:-1;;;1619:19:93;;1215:29;;1619:19;1173:178;2765:796:84;;-1:-1:-1;;;1315:25:93;;1215:29;;1315:25;1177:107;837:15:62;;1248:36:93;819:34:62;837:15;819:34;:::i;1248:36:93:-;-1:-1:-1;1248:36:93;1177:107;;;1215:29;;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;1072:91;1121:31;;;;;;;;:::i;:::-;1072:91;;;;;2765:796:84;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;2765:796:84;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;;;;2765:796:84;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;:::i;3020:539::-;2765:796;;-1:-1:-1;;;3303:105:84;;-1:-1:-1;;;;;2765:796:84;;;3303:105;;;2765:796;;;;;;;;;;;;;;;;;;;;;;;;;3020:539;2765:796;3303:105;;2765:796;;;;;;3320:18;2765:796;3303:105;;;;;;;;;;;3020:539;2765:796;;;3419:134;;3020:539;:::o;3419:134::-;3476:66;2765:796;;;3476:66;2765:796;;;:::i;:::-;;;;;;3476:66;;;2765:796;3476:66;;;:::i;3303:105::-;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;2505:267:92;-1:-1:-1;2765:796:84;;;2692:16:92;2765:796:84;;;;;;;;-1:-1:-1;;;;;2765:796:84;;;;;;;;;2692:73:92;;2505:267;;2692:73;:::i;2765:796:84:-;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;;;;2765:796:84;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;2765:796:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;2765:796:84;;;;;;;;:::o;:::-;;;;;;;;;;:::o;3323:1122:92:-;;2765:796:84;;:::i;:::-;;;;3608:16:92;3604:109;;3323:1122;837:15:62;;819:34;837:15;819:34;:::i;:::-;-1:-1:-1;2765:796:84;;;;3778:27:92;;:13;;-1:-1:-1;;;;;2765:796:84;3778:13:92;2765:796:84;3778:27:92;2765:796:84;;;;;;;3778:29:92;;;;;;;;;;;;;;;3740:67;3778:29;3759:48;3778:29;-1:-1:-1;3778:29:92;;;3759:48;;:::i;3740:67::-;2765:796:84;;;3740:67:92;;;:107;;;;;3323:1122;3740:197;;;;3323:1122;3723:263;;;2765:796:84;3778:29:92;2765:796:84;;;;;;;;;;4025:25:92;;;;;;;;;4010:143;4025:25;;;-1:-1:-1;4025:25:92;;;3323:1122;4113:30;;;2765:796:84;;;;;;;;;;;4010:143:92;;;;;3778:29;4010:143;;;:::i;:::-;;;-1:-1:-1;;;;;2765:796:84;4010:143:92;;;;;;;4181:257;4010:143;-1:-1:-1;4010:143:92;;;3323:1122;3996:157;;4293:102;3996:157;;4233:162;3996:157;4207:231;3996:157;;2936:28;:47;:38;:28;;;2765:796:84;;2936:16:92;2765:796:84;;;;;;;2936:28:92;2765:796:84;;;;;;;;;;;;;;;;2936:47:92;4351:43;;;4293:102;;:::i;:::-;4233:162;;:::i;:::-;4207:231;:::i;4181:257::-;3323:1122;:::o;4010:143::-;4233:162;4010:143;;;4207:231;4010:143;;;;4293:102;4010:143;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;;;;;4025:25;;;;;;;;;;;;;;:::i;:::-;;;;3723:263;3962:13;;;;;;-1:-1:-1;3962:13:92;-1:-1:-1;3962:13:92;:::o;3740:197::-;3886:41;;3867:70;3886:51;;:41;;;2765:796:84;;3886:29:92;2765:796:84;;;;;;;3886:51:92;2765:796:84;;;;;3867:70:92;-1:-1:-1;3740:197:92;;;:107;837:15:62;;3811:36:92;819:34:62;837:15;819:34;:::i;3811:36:92:-;;;;3740:107;;;3778:29;;;;;;;;;;;;;;;:::i;3604:109::-;3662:40;;;;;;;;;;;;:::i;:::-;3604:109;;;;2557:104:57;;2641:5;;;;;;:13;2557:104;:::o;2641:13::-;;;2557:104;:::o;4714:335:92:-;;;;2765:796:84;-1:-1:-1;2765:796:84;4876:29:92;2765:796:84;;;;4876:51:92;2765:796:84;;-1:-1:-1;2765:796:84;;;;;;;;;;;;;;;;;4876:51:92;2765:796:84;;;;;-1:-1:-1;4872:171:92;;4714:335;;;:::o;4872:171::-;4962:70;2765:796:84;4962:51:92;2765:796:84;-1:-1:-1;2765:796:84;4876:29:92;2765:796:84;;;-1:-1:-1;2765:796:84;;;;;;;;;;;;;;;;;4962:51:92;2765:796:84;;;;;;;;;;;;;;9856:1:60;2765:796:84;;;;;;;:::o;5055:221:92:-;;;2765:796:84;-1:-1:-1;2765:796:84;5160:16:92;2765:796:84;;2936:47:92;:38;5160;2765:796:84;;-1:-1:-1;2765:796:84;;;;;;;;;;;;;;;;;5160:38:92;837:15:62;819:34;837:15;819:34;:::i;:::-;2765:796:84;-1:-1:-1;2765:796:84;5160:16:92;2765:796:84;;;-1:-1:-1;2765:796:84;;;;;;;;;;;;;;;;;2936:47:92;2765:796:84;;;;;;;;6360:12:86;;;2765:796:84;;;6360:24:86;6356:75;;5055:221:92;6474:30:86;;;:::i;:::-;2765:796:84;;;;;6578:12:86;;;;:::i;:::-;;6604:24;;;5055:221:92;-1:-1:-1;6600:188:86;;;-1:-1:-1;;;;2765:796:84;;;;;;;6644:29:86;:21;;;;:::i;:::-;:29;2765:796:84;;;;;;;;;;;;;;;;;;;;;6600:188:86;6753:24;;8167:38:60;;-1:-1:-1;;;;;2765:796:84;;;;;8167:38:60;:::i;:::-;6753:24:86;;;:::i;6604:::-;2765:796:84;;;;;;6614:14:86;;-1:-1:-1;6604:24:86;;;6356:75;6400:20;;;:::i;:::-;6356:75;;2765:796:84;;;;;;;;-1:-1:-1;;;;;2765:796:84;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;5282:431:92:-;;;;5487:25;;:23;:13;2765:796:84;5494:5:92;2765:796:84;;;;;;;;;5487:23:92;2765:796:84;;-1:-1:-1;;;5487:25:92;;2765:796:84;;;;;5487:25:92;;;;;;;5631:65;5487:25;5631:65;5487:25;5494:5;5487:25;;;5282:431;-1:-1:-1;;;;;;2765:796:84;;;;:::i;:::-;-1:-1:-1;;;;;5677:4:92;2765:796:84;;;5677:4:92;5487:25;5642:53;;2765:796:84;;;5631:65:92;;;5487:25;5631:65;;;:::i;:::-;5472:234;;;;;5494:5;2765:796:84;5472:234:92;2765:796:84;;;;;;;;;;;;;;5472:234:92;;5487:25;5472:234;;;:::i;:::-;;;;;;;;;;;5282:431;:::o;5472:234::-;;;;;;:::i;:::-;;;:::i;5487:25::-;;;;;;;;;;;;;;:::i;:::-;;;;5719:137;5809:5;2765:796:84;;;;-1:-1:-1;;;5802:47:92;;;;;2765:796:84;;;;;;;;;;;;;;;5802:47:92;;2765:796:84;;;;;;-1:-1:-1;;;;;2765:796:84;5802:47:92;;;;;;;;5719:137;:::o;5802:47::-;;;;;;;;;;;;;:::i;:::-;;5719:137::o;2765:796:84:-;;;;;;;:::o;:::-;;;;;;;;;;;;5862:623:92;;;5988:12;2765:796:84;;;;;;;5984:495:92;;5862:623;;;;;;:::o;5984:495::-;2765:796:84;;-1:-1:-1;;;6033:22:92;;2765:796:84;6033:22:92;;2765:796:84;;6033:22:92;;2765:796:84;;-1:-1:-1;;;;;2765:796:84;6033:22:92;;;;;;;5988:12;6033:22;;;5984:495;-1:-1:-1;2765:796:84;;-1:-1:-1;;;6033:22:92;6094:81;;;;;;;;2765:796:84;;;;-1:-1:-1;;;;;2765:796:84;;;;;;;;;;;;;;;;;;;;;;6094:81:92;2765:796:84;;;;6094:81:92;;2765:796:84;;6094:81:92;;;;;;:::i;:::-;2765:796:84;6194:9:92;:55;6190:124;;5988:12;6328:141;;;;;;1271:7;6328:141;;5984:495;;;;;;;6190:124;2765:796:84;;-1:-1:-1;;;6276:23:92;;6033:22;;6276:23;6033:22;6094:81;6033:22;;;6094:81;6033:22;;;;;;;;;;;:::i;:::-;;;;;2765:796:84;;;;;;;;-1:-1:-1;2765:796:84;;-1:-1:-1;2765:796:84;;;-1:-1:-1;2765:796:84;:::o;:::-;;;;;;;;;;;;10580:184:86;2765:796:84;;10303:8:60;;;:63;-1:-1:-1;10303:63:60;-1:-1:-1;;;;;2765:796:84;;10726:7:86;2765:796:84;;10736:12:86;:17;:12;;:17;:::i;:::-;2765:796:84;;;;;;10580:184:86;:::o;10726:31::-;;;-1:-1:-1;10580:184:86;:::o;10303:63:60:-;2765:796:84;;;;;;;;;;14249:109:60;-1:-1:-1;14249:109:60;;-1:-1:-1;14249:109:60;;;2765:796:84;;;10303:63:60;;2765:796:84;;;;;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;2765:796:84;;;;;;;;:::i;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;:::i;6491:564:92:-;6614:34;6491:564;6614:34;;;;:::i;:::-;2765:796:84;;-1:-1:-1;;;6664:41:92;;-1:-1:-1;;;;;2765:796:84;;;6664:41:92;;;2765:796:84;;;;;6664:41:92;;;2765:796:84;;;6674:13:92;2765:796:84;;6664:41:92;;;;;;;-1:-1:-1;6664:41:92;;;6491:564;6663:42;;6659:90;;2540:111:28;6850:27:92;6664:41;2540:111:28;;;:::i;:::-;-1:-1:-1;2765:796:84;;-1:-1:-1;;;;;;2765:796:84;-1:-1:-1;;;;;2765:796:84;;;;;6850:27:92;:::i;:::-;2765:796:84;;;;;;;;;;6892:23:92;;;;;;;;;-1:-1:-1;6892:23:92;;;6491:564;2765:796:84;;;6892:37:92;:64;;;6491:564;6888:112;;2765:796:84;7010:38:92;;2765:796:84;;-1:-1:-1;2765:796:84;;-1:-1:-1;;;;2765:796:84;;;;;;-1:-1:-1;;;2765:796:84;;;;;;;;6888:112:92;2765:796:84;;-1:-1:-1;;;6979:10:92;;6664:41;;6979:10;6892:64;-1:-1:-1;2765:796:84;;;;6892:64:92;;:23;;;;;;-1:-1:-1;6892:23:92;;;;;;:::i;:::-;;;;;6659:90;2765:796:84;;-1:-1:-1;;;6728:10:92;;6664:41;;6728:10;6664:41;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;2765:796:84;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;:::o;7558:604:86:-;;2765:796:84;;7686:17:86;7682:83;;2765:796:84;7789:27:86;2765:796:84;7789:27:86;2765:796:84;;7789:27:86;;;;;;:::i;:::-;7860:14;;;;;:::i;:::-;2765:796:84;;;;;;;;;;;;;;;;7888:22:86;;;7884:77;;7975:21;-1:-1:-1;7975:84:86;;;;7558:604;7971:139;;;;8127:28;;;;:::i;7971:139::-;8082:17;;7789:27;8082:17;2765:796:84;8075:24:86;:::o;7975:84::-;2765:796:84;;;8009:16:86;2765:796:84;;8009:16:86;:::i;:::-;2765:796:84;;;8001:24:86;:57;;;;;7975:84;;;;;;;8001:57;8029:29;8038:8;;;8029:18;8038:8;8029:23;8038:8;;:::i;:::-;8029:18;;:::i;:::-;2765:796:84;;;;;8029:29:86;;8001:57;;;;7884:77;7933:17;;;;;7789:27;7933:17;2765:796:84;7926:24:86;:::o;7682:83::-;7726:28;;;;:::i;14291:213:58:-;2765:796:84;14369:24:58;;;;14365:103;;2765:796:84;14291:213:58;:::o;14365:103::-;2765:796:84;;;;14416:41:58;;;;;;14447:2;14416:41;;;2765:796:84;;;;;14416:41:58;2765:796:84;;;-1:-1:-1;;;2765:796:84;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::o;:::-;;;;;-1:-1:-1;;;2765:796:84;;;;;;;;;;;;;;;:::i;6893:76:25:-;;;:::i;:::-;;;:::i;:::-;1805:1:28;2355:73;1847:1;6893:76:25:o;2273:218:93:-;-1:-1:-1;2765:796:84;;;;;:::i;:::-;;;;;;2419:30:93;;2765:796:84;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;2419:30:93;2765:796:84;:::i;:::-;;;;2273:218:93;:::o;6999:207:86:-;;2765:796:84;;9594:15:60;-1:-1:-1;9619:18:60;9652:7;9658:1;9652:7;;9648:234;;6999:207:86;9906:53:60;;;;;:::i;:::-;9977:8;;;:63;-1:-1:-1;9977:63:60;;-1:-1:-1;;;;;2765:796:84;;7168:7:86;2765:796:84;;;7178:12:86;;:17;:12;;:17;:::i;9977:63:60:-;9992:41;10025:7;9992:48;10025:7;;:::i;:::-;9992:41;14249:109;;;;;;14099:265;;9992:41;2765:796:84;;;;;9992:48:60;9977:63;;;9648:234;9695:14;;;;;:::i;:::-;2765:796:84;;;;;;;9906:53:60;14249:109;;-1:-1:-1;14249:109:60;2765:796:84;14249:109:60;;;-1:-1:-1;14249:109:60;;2765:796:84;;;;;9727:48:60;9723:149;2765:796:84;;;9795:10:60;9723:149;9648:234;;9723:149;9850:7;;;;;;:::i;:::-;9723:149;9648:234;;2765:796:84;;;;;;;:::i;:::-;-1:-1:-1;2765:796:84;;;;;;;:::o;11486:272:86:-;;2765:796:84;11308:22:60;11718:31:86;11486:272;2765:796:84;;:::i;:::-;;;;:::i;:::-;;11308:22:60;;:::i;:::-;2765:796:84;;:::i;:::-;;11718:12:86;2765:796:84;;;;;11731:17:86;2765:796:84;;;;;11731:17:86;;2765:796:84;;11718:12:86;;:31;:::i;:::-;2765:796:84;;;;;;;;;:::i;:::-;;;;;;11731:17:86;11672:79;;2765:796:84;11486:272:86;:::o;2765:796:84:-;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::o;10552:388:60:-;2765:796:84;;10728:8:60;;;10752:20;;10690:17;10752:20;10690:17;10752:20;10690:17;10752:20;:::o;10724:210::-;2765:796:84;;;;;;;;;;;14249:109:60;10690:17;14249:109;;10690:17;14249:109;;;2765:796:84;:::i;:::-;;;;;;;14249:109:60;2765:796:84;;;;;10911:11:60;;2765:796:84;;10886:37:60;10870:1;10886:37;;;:::o;7084:141:25:-;2765:796:84;-1:-1:-1;;;;;;;;;;;2765:796:84;;;;7150:18:25;7146:73;;7084:141::o;7146:73::-;2765:796:84;;-1:-1:-1;;;7191:17:25;;;;;2765:796:84;;;-1:-1:-1;;;2765:796:84;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;2765:796:84;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;11513:870:60;2765:796:84;;11513:870:60;;;2765:796:84;11513:870:60;11672:7;;;;2765:796:84;11775:28:60;11795:7;;;:::i;11775:28::-;2765:796:84;:::i;:::-;;;;;;;;;;;;;;;;11877:15:60;-1:-1:-1;11873:91:60;;2765:796:84;;12233:11:60;2765:796:84;;;12027:16:60;2765:796:84;;;;;;;12027:16:60;;;;12083:7;12063:43;12083:7;;12063:28;12083:7;;:::i;:::-;12063:28;14249:109;;;;;;14099:265;;12063:28;2765:796:84;;;;;;;;;;;;;;;;;12063:43:60;12233:11;2765:796:84;-1:-1:-1;;;;;2765:796:84;;;;12225:27:60;;:::o;12023:189::-;2765:796:84;;;12145:52:60;2765:796:84;12155:41:60;2765:796:84;;:::i;:::-;;;;;;;;12155:41:60;-1:-1:-1;;;;;2765:796:84;;12155:41:60;;;2765:796:84;12145:52:60;:::i;:::-;12023:189;;11873:91;2765:796:84;;-1:-1:-1;;;11919:30:60;;;;;11668:709;12283:52;2765:796:84;;12293:41:60;2765:796:84;;:::i;12293:41:60:-;-1:-1:-1;;;;;2765:796:84;;12293:41:60;;;2765:796:84;12145:52:60;:::i;12283:::-;11678:1;12349:17;;:::o;8587:1642:57:-;8658:6;;8654:45;;9401:7;10201:10;10142:26;10093;10044;9995;9946;9897;9848;2765:796:84;10189:23:57;9401:7;8663:1;2765:796:84;;;;10826:16:57;10822:99;;8587:1642;2765:796:84;;;;10938:15:57;10934:96;;8587:1642;2765:796:84;;;;11047:15:57;11043:96;;8587:1642;2765:796:84;;;;11156:15:57;11152:96;;8587:1642;2765:796:84;;;;11265:14:57;11261:93;;8587:1642;2765:796:84;;;;11371:14:57;11367:93;;8587:1642;2765:796:84;;;;11477:14:57;11473:93;;8587:1642;2765:796:84;;;11579:64:57;;8587:1642;2765:796:84;;;9858:10:57;;;;:::i;:::-;2765:796:84;;;;;9848:26:57;9907:10;;;;:::i;9897:26::-;9956:10;;;;:::i;9946:26::-;10005:10;;;;:::i;9995:26::-;10054:10;;;;:::i;10044:26::-;10103:10;;;;:::i;10093:26::-;10152:10;;;;:::i;10142:26::-;10201:10;;;:::i;:::-;10189:23;;:::i;11579:64::-;2765:796:84;;11579:64:57;;11473:93;2765:796:84;11511:11:57;;2765:796:84;;11473:93:57;;;;11367;2765:796:84;11405:11:57;;2765:796:84;;11367:93:57;;;;11261;2765:796:84;11299:11:57;;2765:796:84;;11261:93:57;;;;11152:96;2765:796:84;11191:12:57;;2765:796:84;;11152:96:57;;;;11043;2765:796:84;11082:12:57;;2765:796:84;;11043:96:57;;;;10934;2765:796:84;10973:12:57;;2765:796:84;;10934:96:57;;;;10822:99;10862:13;;;2765:796:84;10822:99:57;;;;8654:45;8680:8;8663:1;8680:8;:::o;12736:433:60:-;;;12919:10;;;;;;13151:11;;;12736:433;:::o;12912:230::-;2900:5:57;;;;;;2910;;;;2765:796:84;;;;;;;;;14249:109:60;-1:-1:-1;14249:109:60;2765:796:84;14249:109:60;;;-1:-1:-1;14249:109:60;;2765:796:84;;;;;-1:-1:-1;12996:136:60;2765:796:84;;;13055:10:60;12996:136;;12912:230;;;;12996:136;13110:7;;;;;;:::i;:::-;12996:136;;","linkReferences":{},"immutableReferences":{"57808":[{"start":1266,"length":32}],"57811":[{"start":2377,"length":32},{"start":4985,"length":32}],"62913":[{"start":1682,"length":32},{"start":3379,"length":32}],"65592":[{"start":797,"length":32},{"start":5801,"length":32}],"65595":[{"start":540,"length":32},{"start":1198,"length":32}]}},"methodIdentifiers":{"BASE_SLASHER_HINTS()":"457821b7","BURNER_GAS_LIMIT()":"d5c24e1a","BURNER_RESERVE()":"2964f8dc","FACTORY()":"2dd31000","NETWORK_MIDDLEWARE_SERVICE()":"2c9d45b3","TYPE()":"bb24fe8a","VAULT_FACTORY()":"103f2907","cumulativeSlash(bytes32,address)":"1a2be2c4","cumulativeSlashAt(bytes32,address,uint48,bytes)":"aa8e6489","initialize(bytes)":"439fab91","isBurnerHook()":"34d098ea","latestSlashedCaptureTimestamp(bytes32,address)":"267de1f3","slash(bytes32,address,uint256,uint48,bytes)":"021a8156","slashHints(address,address,bytes32,address,uint256,uint48)":"238ab85f","slashableStake(bytes32,address,uint48,bytes)":"aab3595f","staticDelegateCall(address,bytes)":"9f86fd85","vault()":"fbfa77cf"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"baseSlasherHints\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"CheckpointUnorderedInsertion\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ExternalCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientBurnerGas\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientSlash\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidCaptureTimestamp\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NoBurner\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotNetworkMiddleware\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotVault\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ReentrancyGuardReentrantCall\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"bits\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"SafeCastOverflowedUintDowncast\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"slashedAmount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint48\",\"name\":\"captureTimestamp\",\"type\":\"uint48\"}],\"name\":\"Slash\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"BASE_SLASHER_HINTS\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"BURNER_GAS_LIMIT\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"BURNER_RESERVE\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"FACTORY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"NETWORK_MIDDLEWARE_SERVICE\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"TYPE\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"VAULT_FACTORY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"cumulativeSlash\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hint\",\"type\":\"bytes\"}],\"name\":\"cumulativeSlashAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isBurnerHook\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"latestSlashedCaptureTimestamp\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"value\",\"type\":\"uint48\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint48\",\"name\":\"captureTimestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hints\",\"type\":\"bytes\"}],\"name\":\"slash\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"slashedAmount\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"slasher\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"msgSender\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint48\",\"name\":\"captureTimestamp\",\"type\":\"uint48\"}],\"name\":\"slashHints\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"captureTimestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hints\",\"type\":\"bytes\"}],\"name\":\"slashableStake\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"staticDelegateCall\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"vault\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"CheckpointUnorderedInsertion()\":[{\"details\":\"A value was attempted to be inserted on a past checkpoint.\"}],\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"ReentrancyGuardReentrantCall()\":[{\"details\":\"Unauthorized reentrant call.\"}],\"SafeCastOverflowedUintDowncast(uint8,uint256)\":[{\"details\":\"Value doesn't fit in an uint of `bits` size.\"}]},\"events\":{\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"Slash(bytes32,address,uint256,uint48)\":{\"params\":{\"captureTimestamp\":\"time point when the stake was captured\",\"operator\":\"operator that is slashed\",\"slashedAmount\":\"virtual amount of the collateral slashed\",\"subnetwork\":\"subnetwork that requested the slash\"}}},\"kind\":\"dev\",\"methods\":{\"cumulativeSlash(bytes32,address)\":{\"params\":{\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"},\"returns\":{\"_0\":\"cumulative slash amount\"}},\"cumulativeSlashAt(bytes32,address,uint48,bytes)\":{\"params\":{\"hint\":\"hint for the checkpoint index\",\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\",\"timestamp\":\"time point to get the cumulative slash amount until (inclusively)\"},\"returns\":{\"_0\":\"cumulative slash amount until the given timestamp (inclusively)\"}},\"initialize(bytes)\":{\"params\":{\"data\":\"some data to use\"}},\"slash(bytes32,address,uint256,uint48,bytes)\":{\"details\":\"Only a network middleware can call this function.\",\"params\":{\"amount\":\"maximum amount of the collateral to be slashed\",\"captureTimestamp\":\"time point when the stake was captured\",\"hints\":\"hints for checkpoints' indexes\",\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"},\"returns\":{\"slashedAmount\":\"virtual amount of the collateral slashed\"}},\"slashableStake(bytes32,address,uint48,bytes)\":{\"params\":{\"captureTimestamp\":\"time point to get the stake amount at\",\"hints\":\"hints for the checkpoints' indexes\",\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"},\"returns\":{\"amount\":\"slashable amount of the stake\"}},\"staticDelegateCall(address,bytes)\":{\"details\":\"It allows to use this contract's storage on-chain.\",\"params\":{\"data\":\"data to make a delegatecall with\",\"target\":\"address of the contract to make a delegatecall to\"}}},\"version\":1},\"userdoc\":{\"events\":{\"Slash(bytes32,address,uint256,uint48)\":{\"notice\":\"Emitted when a slash is performed.\"}},\"kind\":\"user\",\"methods\":{\"BURNER_GAS_LIMIT()\":{\"notice\":\"Get a gas limit for the burner.\"},\"BURNER_RESERVE()\":{\"notice\":\"Get a reserve gas between the gas limit check and the burner's execution.\"},\"FACTORY()\":{\"notice\":\"Get the factory's address.\"},\"NETWORK_MIDDLEWARE_SERVICE()\":{\"notice\":\"Get the network middleware service's address.\"},\"TYPE()\":{\"notice\":\"Get the entity's type.\"},\"VAULT_FACTORY()\":{\"notice\":\"Get the vault factory's address.\"},\"cumulativeSlash(bytes32,address)\":{\"notice\":\"Get a cumulative slash amount for an operator on a subnetwork.\"},\"cumulativeSlashAt(bytes32,address,uint48,bytes)\":{\"notice\":\"Get a cumulative slash amount for an operator on a subnetwork until a given timestamp (inclusively) using a hint.\"},\"initialize(bytes)\":{\"notice\":\"Initialize this entity contract by using a given data.\"},\"isBurnerHook()\":{\"notice\":\"Get if the burner is needed to be called on a slashing.\"},\"latestSlashedCaptureTimestamp(bytes32,address)\":{\"notice\":\"Get the latest capture timestamp that was slashed on a subnetwork.\"},\"slash(bytes32,address,uint256,uint48,bytes)\":{\"notice\":\"Perform a slash using a subnetwork for a particular operator by a given amount using hints.\"},\"slashableStake(bytes32,address,uint48,bytes)\":{\"notice\":\"Get a slashable amount of a stake got at a given capture timestamp using hints.\"},\"staticDelegateCall(address,bytes)\":{\"notice\":\"Make a delegatecall from this contract to a given target contract with a particular data (always reverts with a return data).\"},\"vault()\":{\"notice\":\"Get the vault's address.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/contracts/hints/SlasherHints.sol\":\"SlasherHints\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol\":{\"keccak256\":\"0x6662ec4e5cefca03eeadd073e9469df8d2944bb2ee8ec8f7622c2c46aab5f225\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4d8544c6f8daa4d1bc215c6a72fe0acdb748664a105b0e5efc19295667521d45\",\"dweb:/ipfs/QmdGWqdnXT8S3RgCR6aV8XHZrsybieMQLLnug1NtpSjEXN\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0xc163fcf9bb10138631a9ba5564df1fa25db9adff73bd9ee868a8ae1858fe093a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9706d43a0124053d9880f6e31a59f31bc0a6a3dc1acd66ce0a16e1111658c5f6\",\"dweb:/ipfs/QmUFmfowzkRwGtDu36cXV9SPTBHJ3n7dG9xQiK5B28jTf2\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609\",\"dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9\",\"dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardUpgradeable.sol\":{\"keccak256\":\"0xb44e086e941292cdc7f440de51478493894ef0b1aeccb0c4047445919f667f74\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://942dad22fbdc1669f025540ba63aa3ccfad5f8458fc5d4525b31ebf272e7af45\",\"dweb:/ipfs/Qmdo4X2M82aM3AMoW2kf2jhYkSCyC4T1pHNd6obdsDFnAB\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol\":{\"keccak256\":\"0xdaba3f7c42c55b2896353f32bd27d4d5f8bae741b3b05d4c53f67abc4dc47ce8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1fa2e61141c602510bcd2cd936ed9561922ac8772a9b9c9a9db091a74e354a45\",\"dweb:/ipfs/QmcHQDDoEBwJmwUbzoVkytvJsBx3KVHYFFnDkvRGWh9Wmh\"]},\"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0xb6b36edd6a2999fd243ff226d6cbf84bd71af2432bbd0dfe19392996a1d9cb41\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1fd2f35495652e57e3f99bc6c510bc5f7dd398a176ea2e72d8ed730aebc6ca26\",\"dweb:/ipfs/QmTQV6X4gkikTib49cho5iDX3JvSQbdsoEChoDwrk3CbbH\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC1271.sol\":{\"keccak256\":\"0x85a45f3f10014a0f8be41157a32b6a5f905753ea64a4b64e29fc12b7deeecf39\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c3c74009ce36136b36c77c23935b8e4a7b4f253be2da2be4fb4a916b1ce43743\",\"dweb:/ipfs/QmcH36v3iN7SJJuF73AunLR2LtNxhVJ1wm63ph4dPZ4pcL\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC5267.sol\":{\"keccak256\":\"0x92aa1df62dc3d33f1656d63bede0923e0df0b706ad4137c8b10b0a8fe549fd92\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c5c0f29195ad64cbe556da8e257dac8f05f78c53f90323c0d2accf8e6922d33a\",\"dweb:/ipfs/QmQ61TED8uaCZwcbh8KkgRSsCav7x7HbcGHwHts3U4DmUP\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c\",\"dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0x6008dabfe393240d73d7dd7688033f72740d570aa422254d29a7dce8568f3aff\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f5196ec75139918c6c7bb4251b36395e668f1fa6d206beba7e7520e74913940d\",\"dweb:/ipfs/QmSyqjksXxmm2mCG6qRd1yuwLykypkSVBbnBnGqJRcuJMi\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x37bb49513c49c87c4642a891b13b63571bc87013dde806617aa1efb54605f386\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b3036b3a83b7c48f96641f2a9002b9f2dcb6a5958dd670894ada21ae8229b3d0\",\"dweb:/ipfs/QmUNfSBdoVtjhETaUJCYcaC7pTMgbhht926tJ2uXJbiVd3\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0xaf28a975a78550e45f65e559a3ad6a5ad43b9b8a37366999abd1b7084eb70721\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b7bd24e224f67f65bfadf85dc2929fa965456bb2415478bd0125471b5ce35245\",\"dweb:/ipfs/QmRaydGr8BTHs1kvaZfsNU69pKzUAGFrvABn1KiRSbE51y\"]},\"lib/openzeppelin-contracts/contracts/utils/ShortStrings.sol\":{\"keccak256\":\"0x18a7171df639a934592915a520ecb97c5bbc9675a1105607aac8a94e72bf62c6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7478e1f13da69a2867ccd883001d836b75620362e743f196376d63ed0c422a1c\",\"dweb:/ipfs/QmWywcQ9TNfwtoqAxbn25d8C5VrV12PrPS9UjtGe6pL2BA\"]},\"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0x32ba59b4b7299237c8ba56319110989d7978a039faf754793064e967e5894418\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1ae50c8b562427df610cc4540c9bf104acca7ef8e2dcae567ae7e52272281e9c\",\"dweb:/ipfs/QmTHiadFCSJUPpRjNegc5SahmeU8bAoY8i9Aq6tVscbcKR\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0x55f102ea785d8399c0e58d1108e2d289506dde18abc6db1b7f68c1f9f9bc5792\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e52e0a7765c943ef14e5bcf11e46e6139fa044be564881378349236bf2e3453\",\"dweb:/ipfs/QmZEeeXoFPW47amyP35gfzomF9DixqqTEPwzBakv6cZw6i\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0xeed0a08b0b091f528356cbc7245891a4c748682d4f6a18055e8e6ca77d12a6cf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba80ba06c8e6be852847e4c5f4492cef801feb6558ae09ed705ff2e04ea8b13c\",\"dweb:/ipfs/QmXRJDv3xHLVQCVXg1ZvR35QS9sij5y9NDWYzMfUfAdTHF\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/EIP712.sol\":{\"keccak256\":\"0x999f705a027ed6dc2d4e0df2cc4a509852c6bfd11de1c8161bf88832d0503fd0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0798def67258d9a3cc20b2b4da7ebf351a5cefe0abfdd665d2d81f8e32f89b21\",\"dweb:/ipfs/QmPEvJosnPfzHNjKvCv2D3891mA2Ww8eUwkqrxBjuYdHCt\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol\":{\"keccak256\":\"0xba333517a3add42cd35fe877656fc3dfcc9de53baa4f3aabbd6d12a92e4ea435\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2ceacff44c0fdc81e48e0e0b1db87a2076d3c1fb497341de077bf1da9f6b406c\",\"dweb:/ipfs/QmRUo1muMRAewxrKQ7TkXUtknyRoR57AyEkoPpiuZQ8FzX\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/SignatureChecker.sol\":{\"keccak256\":\"0x6b11eb41a228cca35d4b662b4df69fcd75192851365102690f57b2ac01e83fe6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ab006a2983ed350d2af21ddcdd835dcae3b8340086cc4d088460da5abd041f69\",\"dweb:/ipfs/QmbEacDhkJZiGrgzLjB4pNtE8Z1uudjDw1DvcDUTVQFsLG\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875\",\"dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0xe19a4d5f31d2861e7344e8e535e2feafb913d806d3e2b5fe7782741a2a7094fe\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4aed79c0fa6f0546ed02f2f683e8f77f0fd2ed7eb34d8bbf3d373c9a6d95b13c\",\"dweb:/ipfs/QmWqVz6UAVqmnWU5pqYPt1o6iDEZyPaBraAA3rKfTTSfYj\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x5f7e4076e175393767754387c962926577f1660dd9b810187b9002407656be72\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7d533a1c97cd43a57cd9c465f7ee8dd0e39ae93a8fb8ff8e5303a356b081cdcc\",\"dweb:/ipfs/QmVBEei6aTnvYNZp2CHYVNKyZS4q1KkjANfY39WVXZXVoT\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/Checkpoints.sol\":{\"keccak256\":\"0xbdc5e074d7dd6678f67e92b1a51a20226801a407b0e1af3da367c5d1ff4519ad\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a36cca6b22fff3db16fc789ff6c60eea71d4b156065d4d0c83a0bc5e91a77a8b\",\"dweb:/ipfs/QmYN3exd5AemxjBrN8XMB1p5LbbE16uC3sjbYjwi8AjcGR\"]},\"lib/openzeppelin-contracts/contracts/utils/types/Time.sol\":{\"keccak256\":\"0xc7755af115020049e4140f224f9ee88d7e1799ffb0646f37bf0df24bf6213f58\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7f09bf94d5274334ec021f61a04659db303f31e60460e14b709c9bf187740111\",\"dweb:/ipfs/QmNvgomZYUwFAt4cZbPWAiTeSZQreGehY9BK5xyVJsUttb\"]},\"src/contracts/common/Entity.sol\":{\"keccak256\":\"0x3d61a932995b8443381f3950542d388223a2c26dd5d29a3274dea3baa7388bd7\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://7cdf5f03ca72fd263fd32ff59c8d88ddca911ae83896a287d10772c1bbe9b138\",\"dweb:/ipfs/QmbP84r5BWT1Rn9AYTntWSf3xUMTTCohTZJFhbBhDXFoHa\"]},\"src/contracts/common/MigratableEntity.sol\":{\"keccak256\":\"0x2d736f4dacd5d7e7697503bc426c78b8250fe1694ca157965ec178da6807de58\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://f1237acf96b4b9f9b69156e068eddd726a6e15bd8e87a18dc999cd4ba4da069c\",\"dweb:/ipfs/QmS6M8fiFFSeuJ4ZKKq1z8W7w4ybeHQSy5TLASGoc1LVic\"]},\"src/contracts/common/StaticDelegateCallable.sol\":{\"keccak256\":\"0x350029aa8955eacaffffaeb58babc5c98e80ebc5c5db388ed17ee6465f4a9d90\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://eb392a8ee9050e0af606897df63e3404e3829e8b688b580663892f9664195764\",\"dweb:/ipfs/QmaXC8jqV8UrrAFkzXTEv2fJF56sy33HhLxAzaRZmUxuXD\"]},\"src/contracts/delegator/BaseDelegator.sol\":{\"keccak256\":\"0x7c54d491fdd4415b764a9c8defa068e56d4c0c8c9419be0053a1d377669290e8\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://9238bfbad0f6eeb0dc7727724de14380f1980b395902269703d5e2ef07e52e10\",\"dweb:/ipfs/QmPJn1V4HNXcEghYvogGuSTF24dSQUPosR5qtsXcmNqRm3\"]},\"src/contracts/delegator/FullRestakeDelegator.sol\":{\"keccak256\":\"0x0a81c4f8e72914563a9cb771e93acf889c71ea36b7bec040e4eb562b199d5af1\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://6fc66b6ba02da77046a0bbbd1dd407a62c08f52e04486c9cbd2cb1cca3da555f\",\"dweb:/ipfs/QmZQivK1ZnMxfRQQ5aLpV9co5u55wQVNev5Rg1hzAqxhkE\"]},\"src/contracts/delegator/NetworkRestakeDelegator.sol\":{\"keccak256\":\"0xd3a8e6522f9c6fdcc2da837c9023afd6bdff2bce45a35590320c475519e3636d\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://58b17a87f6554f08376f9ea7fedf486a4aa75801bf0ad8b23ff5a46959b6b7a3\",\"dweb:/ipfs/QmSTmNh67tYt8CmjVZb57r8N3qX5yeYdMApKPJm3qvQgQw\"]},\"src/contracts/delegator/OperatorNetworkSpecificDelegator.sol\":{\"keccak256\":\"0x031a10722b9ec49048f0952710401131290adb87e71caf294e864e7ac3b98a16\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://72428febc875134b2f29205e6f294634a1c22a7d5c78d6a9cb2f8196f107c9b5\",\"dweb:/ipfs/QmTPwXR6h5oytckmkLrHdKeEMdphJxceDhYUR4zvQeWAwY\"]},\"src/contracts/delegator/OperatorSpecificDelegator.sol\":{\"keccak256\":\"0x630ce62fa30b9f3349ab7a8cf8dbf041319febc6dd757be2f94d3d25944ed328\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://c2ac59d47ce57d2a6819ae9833e1a618a371eccff93eb5ab367b201b01f42bfa\",\"dweb:/ipfs/QmdBpGMBivpNPv2WbH8vnCUy5xkVeaxQvGgqi33vKCz1kA\"]},\"src/contracts/hints/DelegatorHints.sol\":{\"keccak256\":\"0x44aa0c396311a54afbc7c73e8dadeed41e3165a4fd13f712b27d63d50fc3376d\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://2f255214f3531fc707d88be0d56a7a0aed4180439316d099d760d9118aa83093\",\"dweb:/ipfs/QmZD1w5p1ukJSXumUAjvxwGmkPhn7vsr21Y2atLGEZR2oi\"]},\"src/contracts/hints/Hints.sol\":{\"keccak256\":\"0x8b565df1ae35993c097a9e642002782a8f451f6fd01809cad6bcd345bdf1b99c\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://99a19adb01e350a92f534095b3078229df1f2f83077992d75d58d8684be45971\",\"dweb:/ipfs/QmbmwcuswVbzvwHQFTtrJG86oV98GnfxqYTb8cV8u1acox\"]},\"src/contracts/hints/OptInServiceHints.sol\":{\"keccak256\":\"0x95d9407900d27b9f4a1233b772aeed809c07b2dc5b31cfc9fa77ca26514c49e5\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://a13a8877e312d7e6b8b85bde3668c5d84ff5ecc83f762cd573f2b7104c64eb42\",\"dweb:/ipfs/QmYV2J55acuGzCNnS3juABuUHY5U1xc8g8o9jwEyFFdeG5\"]},\"src/contracts/hints/SlasherHints.sol\":{\"keccak256\":\"0xd77c5f3bbb0265af8ecd947df88f6f9684e136d80052b5292f5b29aaa3566a3f\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://484a26504bf6706202ec82a9a4cfa7d196bbc552b5b78ced25bf7130c2842595\",\"dweb:/ipfs/QmaQqmkoZoUWEam4R94vmajzH3gKqFqpZQwFbrHDsN1peV\"]},\"src/contracts/hints/VaultHints.sol\":{\"keccak256\":\"0xccb505b7159b769cc114d67b87c2de6b106557f667fc8f3780114baad5c3c442\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://6d0c80a908fc16e96a8b5605a0bd53f9e89ad0ef0a738fbbae80ba4d3160749b\",\"dweb:/ipfs/QmXo5UtWoR8YmunqcbBU8rQMm1nvmvjNPoXcVrDhh4pEwR\"]},\"src/contracts/libraries/Checkpoints.sol\":{\"keccak256\":\"0xba90097c8bfe0a975499428b5f8ac5569483c7d92ccc28c12d70de416aae040c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://12f5d93ca94cd06d3147db68993165a58e17903ed53682560de61f3085ad4609\",\"dweb:/ipfs/QmePiuAqvXprMLmFZkGZeGjvGPAvsEDHfCDv7BoQhXu9xE\"]},\"src/contracts/libraries/ERC4626Math.sol\":{\"keccak256\":\"0x8441160513c1cbeb1c3b9ee077bcc7e7ce20006b52a77c8dd39ff0ef89699939\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://943f8cc3e26ddf649f465f40c909819f5c864717c4baa339e9e403b9374a4653\",\"dweb:/ipfs/QmXPxi1sUDsrGprZdUgCzoPEosaZMv9ZhygWQ1vAi1phAB\"]},\"src/contracts/libraries/Subnetwork.sol\":{\"keccak256\":\"0xf5ef5506fd66082b3c2e7f3df37529f5a8efad32ac62e7c8914bd63219190bfe\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba031a54ee0d0e9a270c2b9e18437f5668cfeb659cfd5fe0677459d7fcac2a56\",\"dweb:/ipfs/QmReP3H7qQ78tAfgLnJKsNEQNCQfF1X1Get38Ffd4kzq32\"]},\"src/contracts/service/OptInService.sol\":{\"keccak256\":\"0x4e0932077f2686b7990e10d59deb2535334c0d09e52ef6e57c6ab09eca21c4b1\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://7c00d311032ed4a1743aca7475f3c86ce15cdfc2218108efc3731c03d34a5278\",\"dweb:/ipfs/QmUGGfVwVhaHr5kS4177yKKYiLYzi5qZpkEmvYxBZqazxf\"]},\"src/contracts/slasher/BaseSlasher.sol\":{\"keccak256\":\"0x190e5dce196a061bdad42468c52e9f5b0eb7810cd7d0c19f04d6a2e94984f1b6\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://07ca08d0cd43c2fe5d54a5577f6bdd522ced410f5d3a52e764deaa7ba26b5f06\",\"dweb:/ipfs/QmZe3PiMKBQKWcwodaLupragdqxPjgS4v1qMC7RXau8hDF\"]},\"src/contracts/slasher/Slasher.sol\":{\"keccak256\":\"0xeee0cb25fad58d496fdcc641d852d11bae06e6ceed5230ae21150964175c494f\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://34aa27d21246a1bcee0b6a2afa8d9d613441156362430392f75d176511d58c61\",\"dweb:/ipfs/Qmf53Y3zdGfH4PU2zpSGeHZ8mMLzLXCtmkQrG5mnVJECQ3\"]},\"src/contracts/slasher/VetoSlasher.sol\":{\"keccak256\":\"0xeccc8128de5e1ad499c067feac1c526638fbbac1a18b96726fc7507969fd5897\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://cdfcf281338423625acbccdf8810115b258ef7cfe4aa3c10b8911ead1aa85429\",\"dweb:/ipfs/QmZFsDvZXpkFkx4PHcDXAVPN3ZCAahbSVfYpSVrMBvbt4k\"]},\"src/contracts/vault/Vault.sol\":{\"keccak256\":\"0x2ceff6ed3298c4cad144c99fcc79b51cb9397d6ebef00285b915848b476f8c2e\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://11f2fb3581854f3ab6e82e8d4935d9eb510c903a13c3f022346c2956a58f5307\",\"dweb:/ipfs/QmdUnoXoyYoG9SGWyQZCFyLDRUUX3eXyXetkRvw6jxqqBz\"]},\"src/contracts/vault/VaultStorage.sol\":{\"keccak256\":\"0x57db25b127d77ea3472de53e3a4af3354399655b9268638b99ca5925fa364a56\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://aa763d9a6ec508ae3abfb8228b72b9fd9525279e5135d4962e79ff059feb1173\",\"dweb:/ipfs/QmcbDR6E9wyEpu6V2FkEC4hnWy47zXA9LSKJde6zSGd33Q\"]},\"src/interfaces/common/IEntity.sol\":{\"keccak256\":\"0x8ef4b63d6da63489778ccd5f8d13ebdd527dd4b62730b2c616df5af7474d2d21\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a8d69576a9219d85c50816a18ad53a4d53cfcb27ed38b8cccc808dc2734b71b\",\"dweb:/ipfs/QmYVN3P4Q4REvBWJ97TbAcaxm3uyB2anV6NSGa6ZtSwcEv\"]},\"src/interfaces/common/IMigratableEntity.sol\":{\"keccak256\":\"0x8f5f2809f3afbe8ebfbb365dd7b57b4dd3b6f9943a6187eaf648d45895b8e3c4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ffe640537d539e7a4fde70d30d3e4c57f4ba9c2c25c450cea713aae38e8fd5c\",\"dweb:/ipfs/QmSUTGzvdcn1R1KB7tLThMRtESsfPbeXDhhhKWGtntzBds\"]},\"src/interfaces/common/IRegistry.sol\":{\"keccak256\":\"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014\",\"dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK\"]},\"src/interfaces/common/IStaticDelegateCallable.sol\":{\"keccak256\":\"0xa335d4e81b9071b7de66ef92b43ff20671d86516eb1be46fef29a3483cd3f5d5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d464b9db863c14c05547d2b23352f2e9b7b784799cf09f6bbc4906a2a74e3516\",\"dweb:/ipfs/QmUVWzFvJz7eEbDQKiFTTzwi7TEbjcs3VmwdM4kuptAKvi\"]},\"src/interfaces/delegator/IBaseDelegator.sol\":{\"keccak256\":\"0x96bb312f032e17accce3f8f80936d99468029d6b37c9ca74acdb4b026a0148ee\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2a66dcb5b7d1a6ef6a363431ea98ebd78bc4fdd3d7a134d9b542dc66e7d025c2\",\"dweb:/ipfs/QmRhTPLd2ZAyRHmJUFUcWKs9b3if49QY17LYZuRqWmghw8\"]},\"src/interfaces/delegator/IDelegatorHook.sol\":{\"keccak256\":\"0xc51aa8d7d1f6c8043ee819b7aeb86da0e993912e1442098df897e299f01f9f46\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://adddf5cb2ba282aeb576b26efb28640f865a1721cc9b6eee8b3ee0457a2c9780\",\"dweb:/ipfs/QmNYgAmnLRwWZbhTuQhZs9rx4zcme1df5mEepkrniorSoW\"]},\"src/interfaces/delegator/IFullRestakeDelegator.sol\":{\"keccak256\":\"0xa3c8cb2e45d4d8ce90e95263bea40c01dc400f05ad65bc29597d878606be5e7d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://782cf5e201aa4cca037ebafd3807a68ff1cc721d5b8416a35244db0d0607369e\",\"dweb:/ipfs/QmQkJks6x7CKndeTPa9LxgTNygD5uEi7obhADhpq1Lsr9A\"]},\"src/interfaces/delegator/INetworkRestakeDelegator.sol\":{\"keccak256\":\"0xe7030fe30389a147fd710e3436ec346b4842695fd3e65a81b95375c9f1d633fc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://739c7e66d301778054f5c90bee45ec9438f68afba8a03eaaac52064c73b115ad\",\"dweb:/ipfs/QmfZ2ytKcTykAc76nxhg8ikUXV8NdBpetqb8W4YWPcox1Z\"]},\"src/interfaces/delegator/IOperatorNetworkSpecificDelegator.sol\":{\"keccak256\":\"0x74b95e64d29769202d45dd277bb830f623ff3d41ce77b80ce3ee4e318a5c71ec\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e512b903aae5c1b8a028c6e3f4f6223b5cb5d704503cfa6bd37b5346868f5c20\",\"dweb:/ipfs/QmZim9YExsPWtyxyeui993HTKAEmrg8MUcSkZ77Gp2JcuZ\"]},\"src/interfaces/delegator/IOperatorSpecificDelegator.sol\":{\"keccak256\":\"0x72075cab585dc17240cc3e32bc99b92f0d5627ddd988fed680e3e1a52d5a01e4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7448bc90699409ae61d85216b5efc2143a37f0f73354be2aea993bc54afca441\",\"dweb:/ipfs/QmXE4gAxM8pHosZK8mcTcj17puBx484meDCcmrDePskGHZ\"]},\"src/interfaces/service/INetworkMiddlewareService.sol\":{\"keccak256\":\"0x347afc7fcf1fbcdb96d66162070ef6c78aed27b3af2c1d5dfb4e511840631783\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2d90b8ceb495159e8e4e95d76447719dd166443f67dfabdd942846162071595c\",\"dweb:/ipfs/QmVVuiAWYx92T6vBvNMKZfTvraCf1fa16BsUKkdNs3hdHA\"]},\"src/interfaces/service/IOptInService.sol\":{\"keccak256\":\"0x76fb5460a6d87a5705433d4fbeff7253cd75b8bbd0c888b2088f16e86ace146a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://990322019b3d11465f7024bae77ccbf7e2fe5d6fa3c754584778f37d04fa1337\",\"dweb:/ipfs/QmaSNHzcqxTkUCG9a4nqVfLECHLdjdrwAnDi3yDC7tDL24\"]},\"src/interfaces/slasher/IBaseSlasher.sol\":{\"keccak256\":\"0x7c82528b445659c313ab77335c407b0b6efe5e79027187bb287f7bc74202b404\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0274c90aa5df1aa6bb470a6aab53992fb14fd7e5472c9430416505b29647d9cf\",\"dweb:/ipfs/QmckbmJLDetPemVzCnnGcKYWAZV2BRFXGDsjiaec8jkHxx\"]},\"src/interfaces/slasher/IBurner.sol\":{\"keccak256\":\"0xaf495dacc19ae0b3c787ba8021c5944927d70261536addd234d7dab146158c2b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9b3cc66251008be6ff9fc8b11ecc6831d5a9dca49a3fe9817fcd970253c1d447\",\"dweb:/ipfs/QmVxfb9ALGdF9W3SN2h41gQbUct6tawvu5bw4K89kFQ4HW\"]},\"src/interfaces/slasher/ISlasher.sol\":{\"keccak256\":\"0x34d226d67a3d5e16571f2fac91a8b9773551bcc41c88a96279669dd78d192625\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a6e8c1462ee4a1b0f745414be043c09012ea676613790aba004b06c85c980d1\",\"dweb:/ipfs/QmadjNEbHKRthtA1EeNy3Kg2sXpejH2KBeHm8QZtBPvXbJ\"]},\"src/interfaces/slasher/IVetoSlasher.sol\":{\"keccak256\":\"0xdf7edd04a4f36e9aec3a15241dcb6b6315b2e64927b12710c2c410d571fc55e9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c4be6ac339c2ebf230fed65363f036784224095d0cd0f3f2d01d64d6e0da9508\",\"dweb:/ipfs/QmRSMbpfaHExqrzUA8vYZMYZWh6eQW1KX9JKJSLdgronfg\"]},\"src/interfaces/vault/IVault.sol\":{\"keccak256\":\"0xffee01d383cd4e1a5530c614bf4360c1ef070c288abec9da1eb531b51bc07235\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://04f0046cac285d8ec44ebbb1f79dc94fab4495767190cad8364fbc1fafaadfb9\",\"dweb:/ipfs/QmUawAunwzXfCyShWfhKeThAgKtqe51hmrxvrXvM772M2R\"]},\"src/interfaces/vault/IVaultStorage.sol\":{\"keccak256\":\"0x592626f13754194f83047135de19229c49390bd59e34659b1bb38be71d973a22\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://06a6a9dfddd05e580b32bebe2cff4f63ba26a653180676d58225dd30d9c89d3e\",\"dweb:/ipfs/QmdgzBeY6Sxo8mGtyBxtv1tM1c2kU6J6zjeRd7vuXm4DU6\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.25+commit.b61c2a91"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"baseSlasherHints","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"CheckpointUnorderedInsertion"},{"inputs":[],"type":"error","name":"ExternalCall"},{"inputs":[],"type":"error","name":"InsufficientBurnerGas"},{"inputs":[],"type":"error","name":"InsufficientSlash"},{"inputs":[],"type":"error","name":"InvalidCaptureTimestamp"},{"inputs":[],"type":"error","name":"InvalidInitialization"},{"inputs":[],"type":"error","name":"NoBurner"},{"inputs":[],"type":"error","name":"NotInitialized"},{"inputs":[],"type":"error","name":"NotInitializing"},{"inputs":[],"type":"error","name":"NotNetworkMiddleware"},{"inputs":[],"type":"error","name":"NotVault"},{"inputs":[],"type":"error","name":"ReentrancyGuardReentrantCall"},{"inputs":[{"internalType":"uint8","name":"bits","type":"uint8"},{"internalType":"uint256","name":"value","type":"uint256"}],"type":"error","name":"SafeCastOverflowedUintDowncast"},{"inputs":[{"internalType":"uint64","name":"version","type":"uint64","indexed":false}],"type":"event","name":"Initialized","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32","indexed":true},{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"uint256","name":"slashedAmount","type":"uint256","indexed":false},{"internalType":"uint48","name":"captureTimestamp","type":"uint48","indexed":false}],"type":"event","name":"Slash","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"BASE_SLASHER_HINTS","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"BURNER_GAS_LIMIT","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"BURNER_RESERVE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"FACTORY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"NETWORK_MIDDLEWARE_SERVICE","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"TYPE","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"VAULT_FACTORY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"cumulativeSlash","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint48","name":"timestamp","type":"uint48"},{"internalType":"bytes","name":"hint","type":"bytes"}],"stateMutability":"view","type":"function","name":"cumulativeSlashAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[],"stateMutability":"view","type":"function","name":"isBurnerHook","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"latestSlashedCaptureTimestamp","outputs":[{"internalType":"uint48","name":"value","type":"uint48"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint48","name":"captureTimestamp","type":"uint48"},{"internalType":"bytes","name":"hints","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"slash","outputs":[{"internalType":"uint256","name":"slashedAmount","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"slasher","type":"address"},{"internalType":"address","name":"msgSender","type":"address"},{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint48","name":"captureTimestamp","type":"uint48"}],"stateMutability":"view","type":"function","name":"slashHints","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint48","name":"captureTimestamp","type":"uint48"},{"internalType":"bytes","name":"hints","type":"bytes"}],"stateMutability":"view","type":"function","name":"slashableStake","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"staticDelegateCall"},{"inputs":[],"stateMutability":"view","type":"function","name":"vault","outputs":[{"internalType":"address","name":"","type":"address"}]}],"devdoc":{"kind":"dev","methods":{"cumulativeSlash(bytes32,address)":{"params":{"operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"},"returns":{"_0":"cumulative slash amount"}},"cumulativeSlashAt(bytes32,address,uint48,bytes)":{"params":{"hint":"hint for the checkpoint index","operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)","timestamp":"time point to get the cumulative slash amount until (inclusively)"},"returns":{"_0":"cumulative slash amount until the given timestamp (inclusively)"}},"initialize(bytes)":{"params":{"data":"some data to use"}},"slash(bytes32,address,uint256,uint48,bytes)":{"details":"Only a network middleware can call this function.","params":{"amount":"maximum amount of the collateral to be slashed","captureTimestamp":"time point when the stake was captured","hints":"hints for checkpoints' indexes","operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"},"returns":{"slashedAmount":"virtual amount of the collateral slashed"}},"slashableStake(bytes32,address,uint48,bytes)":{"params":{"captureTimestamp":"time point to get the stake amount at","hints":"hints for the checkpoints' indexes","operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"},"returns":{"amount":"slashable amount of the stake"}},"staticDelegateCall(address,bytes)":{"details":"It allows to use this contract's storage on-chain.","params":{"data":"data to make a delegatecall with","target":"address of the contract to make a delegatecall to"}}},"version":1},"userdoc":{"kind":"user","methods":{"BURNER_GAS_LIMIT()":{"notice":"Get a gas limit for the burner."},"BURNER_RESERVE()":{"notice":"Get a reserve gas between the gas limit check and the burner's execution."},"FACTORY()":{"notice":"Get the factory's address."},"NETWORK_MIDDLEWARE_SERVICE()":{"notice":"Get the network middleware service's address."},"TYPE()":{"notice":"Get the entity's type."},"VAULT_FACTORY()":{"notice":"Get the vault factory's address."},"cumulativeSlash(bytes32,address)":{"notice":"Get a cumulative slash amount for an operator on a subnetwork."},"cumulativeSlashAt(bytes32,address,uint48,bytes)":{"notice":"Get a cumulative slash amount for an operator on a subnetwork until a given timestamp (inclusively) using a hint."},"initialize(bytes)":{"notice":"Initialize this entity contract by using a given data."},"isBurnerHook()":{"notice":"Get if the burner is needed to be called on a slashing."},"latestSlashedCaptureTimestamp(bytes32,address)":{"notice":"Get the latest capture timestamp that was slashed on a subnetwork."},"slash(bytes32,address,uint256,uint48,bytes)":{"notice":"Perform a slash using a subnetwork for a particular operator by a given amount using hints."},"slashableStake(bytes32,address,uint48,bytes)":{"notice":"Get a slashable amount of a stake got at a given capture timestamp using hints."},"staticDelegateCall(address,bytes)":{"notice":"Make a delegatecall from this contract to a given target contract with a particular data (always reverts with a return data)."},"vault()":{"notice":"Get the vault's address."}},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/contracts/hints/SlasherHints.sol":"SlasherHints"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol":{"keccak256":"0x6662ec4e5cefca03eeadd073e9469df8d2944bb2ee8ec8f7622c2c46aab5f225","urls":["bzz-raw://4d8544c6f8daa4d1bc215c6a72fe0acdb748664a105b0e5efc19295667521d45","dweb:/ipfs/QmdGWqdnXT8S3RgCR6aV8XHZrsybieMQLLnug1NtpSjEXN"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol":{"keccak256":"0xc163fcf9bb10138631a9ba5564df1fa25db9adff73bd9ee868a8ae1858fe093a","urls":["bzz-raw://9706d43a0124053d9880f6e31a59f31bc0a6a3dc1acd66ce0a16e1111658c5f6","dweb:/ipfs/QmUFmfowzkRwGtDu36cXV9SPTBHJ3n7dG9xQiK5B28jTf2"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b","urls":["bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609","dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol":{"keccak256":"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397","urls":["bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9","dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardUpgradeable.sol":{"keccak256":"0xb44e086e941292cdc7f440de51478493894ef0b1aeccb0c4047445919f667f74","urls":["bzz-raw://942dad22fbdc1669f025540ba63aa3ccfad5f8458fc5d4525b31ebf272e7af45","dweb:/ipfs/Qmdo4X2M82aM3AMoW2kf2jhYkSCyC4T1pHNd6obdsDFnAB"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol":{"keccak256":"0xdaba3f7c42c55b2896353f32bd27d4d5f8bae741b3b05d4c53f67abc4dc47ce8","urls":["bzz-raw://1fa2e61141c602510bcd2cd936ed9561922ac8772a9b9c9a9db091a74e354a45","dweb:/ipfs/QmcHQDDoEBwJmwUbzoVkytvJsBx3KVHYFFnDkvRGWh9Wmh"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol":{"keccak256":"0xb6b36edd6a2999fd243ff226d6cbf84bd71af2432bbd0dfe19392996a1d9cb41","urls":["bzz-raw://1fd2f35495652e57e3f99bc6c510bc5f7dd398a176ea2e72d8ed730aebc6ca26","dweb:/ipfs/QmTQV6X4gkikTib49cho5iDX3JvSQbdsoEChoDwrk3CbbH"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC1271.sol":{"keccak256":"0x85a45f3f10014a0f8be41157a32b6a5f905753ea64a4b64e29fc12b7deeecf39","urls":["bzz-raw://c3c74009ce36136b36c77c23935b8e4a7b4f253be2da2be4fb4a916b1ce43743","dweb:/ipfs/QmcH36v3iN7SJJuF73AunLR2LtNxhVJ1wm63ph4dPZ4pcL"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC5267.sol":{"keccak256":"0x92aa1df62dc3d33f1656d63bede0923e0df0b706ad4137c8b10b0a8fe549fd92","urls":["bzz-raw://c5c0f29195ad64cbe556da8e257dac8f05f78c53f90323c0d2accf8e6922d33a","dweb:/ipfs/QmQ61TED8uaCZwcbh8KkgRSsCav7x7HbcGHwHts3U4DmUP"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70","urls":["bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c","dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol":{"keccak256":"0x6008dabfe393240d73d7dd7688033f72740d570aa422254d29a7dce8568f3aff","urls":["bzz-raw://f5196ec75139918c6c7bb4251b36395e668f1fa6d206beba7e7520e74913940d","dweb:/ipfs/QmSyqjksXxmm2mCG6qRd1yuwLykypkSVBbnBnGqJRcuJMi"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0x37bb49513c49c87c4642a891b13b63571bc87013dde806617aa1efb54605f386","urls":["bzz-raw://b3036b3a83b7c48f96641f2a9002b9f2dcb6a5958dd670894ada21ae8229b3d0","dweb:/ipfs/QmUNfSBdoVtjhETaUJCYcaC7pTMgbhht926tJ2uXJbiVd3"],"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/ShortStrings.sol":{"keccak256":"0x18a7171df639a934592915a520ecb97c5bbc9675a1105607aac8a94e72bf62c6","urls":["bzz-raw://7478e1f13da69a2867ccd883001d836b75620362e743f196376d63ed0c422a1c","dweb:/ipfs/QmWywcQ9TNfwtoqAxbn25d8C5VrV12PrPS9UjtGe6pL2BA"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol":{"keccak256":"0x32ba59b4b7299237c8ba56319110989d7978a039faf754793064e967e5894418","urls":["bzz-raw://1ae50c8b562427df610cc4540c9bf104acca7ef8e2dcae567ae7e52272281e9c","dweb:/ipfs/QmTHiadFCSJUPpRjNegc5SahmeU8bAoY8i9Aq6tVscbcKR"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0x55f102ea785d8399c0e58d1108e2d289506dde18abc6db1b7f68c1f9f9bc5792","urls":["bzz-raw://6e52e0a7765c943ef14e5bcf11e46e6139fa044be564881378349236bf2e3453","dweb:/ipfs/QmZEeeXoFPW47amyP35gfzomF9DixqqTEPwzBakv6cZw6i"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol":{"keccak256":"0xeed0a08b0b091f528356cbc7245891a4c748682d4f6a18055e8e6ca77d12a6cf","urls":["bzz-raw://ba80ba06c8e6be852847e4c5f4492cef801feb6558ae09ed705ff2e04ea8b13c","dweb:/ipfs/QmXRJDv3xHLVQCVXg1ZvR35QS9sij5y9NDWYzMfUfAdTHF"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/EIP712.sol":{"keccak256":"0x999f705a027ed6dc2d4e0df2cc4a509852c6bfd11de1c8161bf88832d0503fd0","urls":["bzz-raw://0798def67258d9a3cc20b2b4da7ebf351a5cefe0abfdd665d2d81f8e32f89b21","dweb:/ipfs/QmPEvJosnPfzHNjKvCv2D3891mA2Ww8eUwkqrxBjuYdHCt"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol":{"keccak256":"0xba333517a3add42cd35fe877656fc3dfcc9de53baa4f3aabbd6d12a92e4ea435","urls":["bzz-raw://2ceacff44c0fdc81e48e0e0b1db87a2076d3c1fb497341de077bf1da9f6b406c","dweb:/ipfs/QmRUo1muMRAewxrKQ7TkXUtknyRoR57AyEkoPpiuZQ8FzX"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/SignatureChecker.sol":{"keccak256":"0x6b11eb41a228cca35d4b662b4df69fcd75192851365102690f57b2ac01e83fe6","urls":["bzz-raw://ab006a2983ed350d2af21ddcdd835dcae3b8340086cc4d088460da5abd041f69","dweb:/ipfs/QmbEacDhkJZiGrgzLjB4pNtE8Z1uudjDw1DvcDUTVQFsLG"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b","urls":["bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df","dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d","urls":["bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875","dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol":{"keccak256":"0xe19a4d5f31d2861e7344e8e535e2feafb913d806d3e2b5fe7782741a2a7094fe","urls":["bzz-raw://4aed79c0fa6f0546ed02f2f683e8f77f0fd2ed7eb34d8bbf3d373c9a6d95b13c","dweb:/ipfs/QmWqVz6UAVqmnWU5pqYPt1o6iDEZyPaBraAA3rKfTTSfYj"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0x5f7e4076e175393767754387c962926577f1660dd9b810187b9002407656be72","urls":["bzz-raw://7d533a1c97cd43a57cd9c465f7ee8dd0e39ae93a8fb8ff8e5303a356b081cdcc","dweb:/ipfs/QmVBEei6aTnvYNZp2CHYVNKyZS4q1KkjANfY39WVXZXVoT"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/Checkpoints.sol":{"keccak256":"0xbdc5e074d7dd6678f67e92b1a51a20226801a407b0e1af3da367c5d1ff4519ad","urls":["bzz-raw://a36cca6b22fff3db16fc789ff6c60eea71d4b156065d4d0c83a0bc5e91a77a8b","dweb:/ipfs/QmYN3exd5AemxjBrN8XMB1p5LbbE16uC3sjbYjwi8AjcGR"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/types/Time.sol":{"keccak256":"0xc7755af115020049e4140f224f9ee88d7e1799ffb0646f37bf0df24bf6213f58","urls":["bzz-raw://7f09bf94d5274334ec021f61a04659db303f31e60460e14b709c9bf187740111","dweb:/ipfs/QmNvgomZYUwFAt4cZbPWAiTeSZQreGehY9BK5xyVJsUttb"],"license":"MIT"},"src/contracts/common/Entity.sol":{"keccak256":"0x3d61a932995b8443381f3950542d388223a2c26dd5d29a3274dea3baa7388bd7","urls":["bzz-raw://7cdf5f03ca72fd263fd32ff59c8d88ddca911ae83896a287d10772c1bbe9b138","dweb:/ipfs/QmbP84r5BWT1Rn9AYTntWSf3xUMTTCohTZJFhbBhDXFoHa"],"license":"BUSL-1.1"},"src/contracts/common/MigratableEntity.sol":{"keccak256":"0x2d736f4dacd5d7e7697503bc426c78b8250fe1694ca157965ec178da6807de58","urls":["bzz-raw://f1237acf96b4b9f9b69156e068eddd726a6e15bd8e87a18dc999cd4ba4da069c","dweb:/ipfs/QmS6M8fiFFSeuJ4ZKKq1z8W7w4ybeHQSy5TLASGoc1LVic"],"license":"BUSL-1.1"},"src/contracts/common/StaticDelegateCallable.sol":{"keccak256":"0x350029aa8955eacaffffaeb58babc5c98e80ebc5c5db388ed17ee6465f4a9d90","urls":["bzz-raw://eb392a8ee9050e0af606897df63e3404e3829e8b688b580663892f9664195764","dweb:/ipfs/QmaXC8jqV8UrrAFkzXTEv2fJF56sy33HhLxAzaRZmUxuXD"],"license":"BUSL-1.1"},"src/contracts/delegator/BaseDelegator.sol":{"keccak256":"0x7c54d491fdd4415b764a9c8defa068e56d4c0c8c9419be0053a1d377669290e8","urls":["bzz-raw://9238bfbad0f6eeb0dc7727724de14380f1980b395902269703d5e2ef07e52e10","dweb:/ipfs/QmPJn1V4HNXcEghYvogGuSTF24dSQUPosR5qtsXcmNqRm3"],"license":"BUSL-1.1"},"src/contracts/delegator/FullRestakeDelegator.sol":{"keccak256":"0x0a81c4f8e72914563a9cb771e93acf889c71ea36b7bec040e4eb562b199d5af1","urls":["bzz-raw://6fc66b6ba02da77046a0bbbd1dd407a62c08f52e04486c9cbd2cb1cca3da555f","dweb:/ipfs/QmZQivK1ZnMxfRQQ5aLpV9co5u55wQVNev5Rg1hzAqxhkE"],"license":"BUSL-1.1"},"src/contracts/delegator/NetworkRestakeDelegator.sol":{"keccak256":"0xd3a8e6522f9c6fdcc2da837c9023afd6bdff2bce45a35590320c475519e3636d","urls":["bzz-raw://58b17a87f6554f08376f9ea7fedf486a4aa75801bf0ad8b23ff5a46959b6b7a3","dweb:/ipfs/QmSTmNh67tYt8CmjVZb57r8N3qX5yeYdMApKPJm3qvQgQw"],"license":"BUSL-1.1"},"src/contracts/delegator/OperatorNetworkSpecificDelegator.sol":{"keccak256":"0x031a10722b9ec49048f0952710401131290adb87e71caf294e864e7ac3b98a16","urls":["bzz-raw://72428febc875134b2f29205e6f294634a1c22a7d5c78d6a9cb2f8196f107c9b5","dweb:/ipfs/QmTPwXR6h5oytckmkLrHdKeEMdphJxceDhYUR4zvQeWAwY"],"license":"BUSL-1.1"},"src/contracts/delegator/OperatorSpecificDelegator.sol":{"keccak256":"0x630ce62fa30b9f3349ab7a8cf8dbf041319febc6dd757be2f94d3d25944ed328","urls":["bzz-raw://c2ac59d47ce57d2a6819ae9833e1a618a371eccff93eb5ab367b201b01f42bfa","dweb:/ipfs/QmdBpGMBivpNPv2WbH8vnCUy5xkVeaxQvGgqi33vKCz1kA"],"license":"BUSL-1.1"},"src/contracts/hints/DelegatorHints.sol":{"keccak256":"0x44aa0c396311a54afbc7c73e8dadeed41e3165a4fd13f712b27d63d50fc3376d","urls":["bzz-raw://2f255214f3531fc707d88be0d56a7a0aed4180439316d099d760d9118aa83093","dweb:/ipfs/QmZD1w5p1ukJSXumUAjvxwGmkPhn7vsr21Y2atLGEZR2oi"],"license":"BUSL-1.1"},"src/contracts/hints/Hints.sol":{"keccak256":"0x8b565df1ae35993c097a9e642002782a8f451f6fd01809cad6bcd345bdf1b99c","urls":["bzz-raw://99a19adb01e350a92f534095b3078229df1f2f83077992d75d58d8684be45971","dweb:/ipfs/QmbmwcuswVbzvwHQFTtrJG86oV98GnfxqYTb8cV8u1acox"],"license":"BUSL-1.1"},"src/contracts/hints/OptInServiceHints.sol":{"keccak256":"0x95d9407900d27b9f4a1233b772aeed809c07b2dc5b31cfc9fa77ca26514c49e5","urls":["bzz-raw://a13a8877e312d7e6b8b85bde3668c5d84ff5ecc83f762cd573f2b7104c64eb42","dweb:/ipfs/QmYV2J55acuGzCNnS3juABuUHY5U1xc8g8o9jwEyFFdeG5"],"license":"BUSL-1.1"},"src/contracts/hints/SlasherHints.sol":{"keccak256":"0xd77c5f3bbb0265af8ecd947df88f6f9684e136d80052b5292f5b29aaa3566a3f","urls":["bzz-raw://484a26504bf6706202ec82a9a4cfa7d196bbc552b5b78ced25bf7130c2842595","dweb:/ipfs/QmaQqmkoZoUWEam4R94vmajzH3gKqFqpZQwFbrHDsN1peV"],"license":"BUSL-1.1"},"src/contracts/hints/VaultHints.sol":{"keccak256":"0xccb505b7159b769cc114d67b87c2de6b106557f667fc8f3780114baad5c3c442","urls":["bzz-raw://6d0c80a908fc16e96a8b5605a0bd53f9e89ad0ef0a738fbbae80ba4d3160749b","dweb:/ipfs/QmXo5UtWoR8YmunqcbBU8rQMm1nvmvjNPoXcVrDhh4pEwR"],"license":"BUSL-1.1"},"src/contracts/libraries/Checkpoints.sol":{"keccak256":"0xba90097c8bfe0a975499428b5f8ac5569483c7d92ccc28c12d70de416aae040c","urls":["bzz-raw://12f5d93ca94cd06d3147db68993165a58e17903ed53682560de61f3085ad4609","dweb:/ipfs/QmePiuAqvXprMLmFZkGZeGjvGPAvsEDHfCDv7BoQhXu9xE"],"license":"MIT"},"src/contracts/libraries/ERC4626Math.sol":{"keccak256":"0x8441160513c1cbeb1c3b9ee077bcc7e7ce20006b52a77c8dd39ff0ef89699939","urls":["bzz-raw://943f8cc3e26ddf649f465f40c909819f5c864717c4baa339e9e403b9374a4653","dweb:/ipfs/QmXPxi1sUDsrGprZdUgCzoPEosaZMv9ZhygWQ1vAi1phAB"],"license":"MIT"},"src/contracts/libraries/Subnetwork.sol":{"keccak256":"0xf5ef5506fd66082b3c2e7f3df37529f5a8efad32ac62e7c8914bd63219190bfe","urls":["bzz-raw://ba031a54ee0d0e9a270c2b9e18437f5668cfeb659cfd5fe0677459d7fcac2a56","dweb:/ipfs/QmReP3H7qQ78tAfgLnJKsNEQNCQfF1X1Get38Ffd4kzq32"],"license":"MIT"},"src/contracts/service/OptInService.sol":{"keccak256":"0x4e0932077f2686b7990e10d59deb2535334c0d09e52ef6e57c6ab09eca21c4b1","urls":["bzz-raw://7c00d311032ed4a1743aca7475f3c86ce15cdfc2218108efc3731c03d34a5278","dweb:/ipfs/QmUGGfVwVhaHr5kS4177yKKYiLYzi5qZpkEmvYxBZqazxf"],"license":"BUSL-1.1"},"src/contracts/slasher/BaseSlasher.sol":{"keccak256":"0x190e5dce196a061bdad42468c52e9f5b0eb7810cd7d0c19f04d6a2e94984f1b6","urls":["bzz-raw://07ca08d0cd43c2fe5d54a5577f6bdd522ced410f5d3a52e764deaa7ba26b5f06","dweb:/ipfs/QmZe3PiMKBQKWcwodaLupragdqxPjgS4v1qMC7RXau8hDF"],"license":"BUSL-1.1"},"src/contracts/slasher/Slasher.sol":{"keccak256":"0xeee0cb25fad58d496fdcc641d852d11bae06e6ceed5230ae21150964175c494f","urls":["bzz-raw://34aa27d21246a1bcee0b6a2afa8d9d613441156362430392f75d176511d58c61","dweb:/ipfs/Qmf53Y3zdGfH4PU2zpSGeHZ8mMLzLXCtmkQrG5mnVJECQ3"],"license":"BUSL-1.1"},"src/contracts/slasher/VetoSlasher.sol":{"keccak256":"0xeccc8128de5e1ad499c067feac1c526638fbbac1a18b96726fc7507969fd5897","urls":["bzz-raw://cdfcf281338423625acbccdf8810115b258ef7cfe4aa3c10b8911ead1aa85429","dweb:/ipfs/QmZFsDvZXpkFkx4PHcDXAVPN3ZCAahbSVfYpSVrMBvbt4k"],"license":"BUSL-1.1"},"src/contracts/vault/Vault.sol":{"keccak256":"0x2ceff6ed3298c4cad144c99fcc79b51cb9397d6ebef00285b915848b476f8c2e","urls":["bzz-raw://11f2fb3581854f3ab6e82e8d4935d9eb510c903a13c3f022346c2956a58f5307","dweb:/ipfs/QmdUnoXoyYoG9SGWyQZCFyLDRUUX3eXyXetkRvw6jxqqBz"],"license":"BUSL-1.1"},"src/contracts/vault/VaultStorage.sol":{"keccak256":"0x57db25b127d77ea3472de53e3a4af3354399655b9268638b99ca5925fa364a56","urls":["bzz-raw://aa763d9a6ec508ae3abfb8228b72b9fd9525279e5135d4962e79ff059feb1173","dweb:/ipfs/QmcbDR6E9wyEpu6V2FkEC4hnWy47zXA9LSKJde6zSGd33Q"],"license":"BUSL-1.1"},"src/interfaces/common/IEntity.sol":{"keccak256":"0x8ef4b63d6da63489778ccd5f8d13ebdd527dd4b62730b2c616df5af7474d2d21","urls":["bzz-raw://5a8d69576a9219d85c50816a18ad53a4d53cfcb27ed38b8cccc808dc2734b71b","dweb:/ipfs/QmYVN3P4Q4REvBWJ97TbAcaxm3uyB2anV6NSGa6ZtSwcEv"],"license":"MIT"},"src/interfaces/common/IMigratableEntity.sol":{"keccak256":"0x8f5f2809f3afbe8ebfbb365dd7b57b4dd3b6f9943a6187eaf648d45895b8e3c4","urls":["bzz-raw://0ffe640537d539e7a4fde70d30d3e4c57f4ba9c2c25c450cea713aae38e8fd5c","dweb:/ipfs/QmSUTGzvdcn1R1KB7tLThMRtESsfPbeXDhhhKWGtntzBds"],"license":"MIT"},"src/interfaces/common/IRegistry.sol":{"keccak256":"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb","urls":["bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014","dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK"],"license":"MIT"},"src/interfaces/common/IStaticDelegateCallable.sol":{"keccak256":"0xa335d4e81b9071b7de66ef92b43ff20671d86516eb1be46fef29a3483cd3f5d5","urls":["bzz-raw://d464b9db863c14c05547d2b23352f2e9b7b784799cf09f6bbc4906a2a74e3516","dweb:/ipfs/QmUVWzFvJz7eEbDQKiFTTzwi7TEbjcs3VmwdM4kuptAKvi"],"license":"MIT"},"src/interfaces/delegator/IBaseDelegator.sol":{"keccak256":"0x96bb312f032e17accce3f8f80936d99468029d6b37c9ca74acdb4b026a0148ee","urls":["bzz-raw://2a66dcb5b7d1a6ef6a363431ea98ebd78bc4fdd3d7a134d9b542dc66e7d025c2","dweb:/ipfs/QmRhTPLd2ZAyRHmJUFUcWKs9b3if49QY17LYZuRqWmghw8"],"license":"MIT"},"src/interfaces/delegator/IDelegatorHook.sol":{"keccak256":"0xc51aa8d7d1f6c8043ee819b7aeb86da0e993912e1442098df897e299f01f9f46","urls":["bzz-raw://adddf5cb2ba282aeb576b26efb28640f865a1721cc9b6eee8b3ee0457a2c9780","dweb:/ipfs/QmNYgAmnLRwWZbhTuQhZs9rx4zcme1df5mEepkrniorSoW"],"license":"MIT"},"src/interfaces/delegator/IFullRestakeDelegator.sol":{"keccak256":"0xa3c8cb2e45d4d8ce90e95263bea40c01dc400f05ad65bc29597d878606be5e7d","urls":["bzz-raw://782cf5e201aa4cca037ebafd3807a68ff1cc721d5b8416a35244db0d0607369e","dweb:/ipfs/QmQkJks6x7CKndeTPa9LxgTNygD5uEi7obhADhpq1Lsr9A"],"license":"MIT"},"src/interfaces/delegator/INetworkRestakeDelegator.sol":{"keccak256":"0xe7030fe30389a147fd710e3436ec346b4842695fd3e65a81b95375c9f1d633fc","urls":["bzz-raw://739c7e66d301778054f5c90bee45ec9438f68afba8a03eaaac52064c73b115ad","dweb:/ipfs/QmfZ2ytKcTykAc76nxhg8ikUXV8NdBpetqb8W4YWPcox1Z"],"license":"MIT"},"src/interfaces/delegator/IOperatorNetworkSpecificDelegator.sol":{"keccak256":"0x74b95e64d29769202d45dd277bb830f623ff3d41ce77b80ce3ee4e318a5c71ec","urls":["bzz-raw://e512b903aae5c1b8a028c6e3f4f6223b5cb5d704503cfa6bd37b5346868f5c20","dweb:/ipfs/QmZim9YExsPWtyxyeui993HTKAEmrg8MUcSkZ77Gp2JcuZ"],"license":"MIT"},"src/interfaces/delegator/IOperatorSpecificDelegator.sol":{"keccak256":"0x72075cab585dc17240cc3e32bc99b92f0d5627ddd988fed680e3e1a52d5a01e4","urls":["bzz-raw://7448bc90699409ae61d85216b5efc2143a37f0f73354be2aea993bc54afca441","dweb:/ipfs/QmXE4gAxM8pHosZK8mcTcj17puBx484meDCcmrDePskGHZ"],"license":"MIT"},"src/interfaces/service/INetworkMiddlewareService.sol":{"keccak256":"0x347afc7fcf1fbcdb96d66162070ef6c78aed27b3af2c1d5dfb4e511840631783","urls":["bzz-raw://2d90b8ceb495159e8e4e95d76447719dd166443f67dfabdd942846162071595c","dweb:/ipfs/QmVVuiAWYx92T6vBvNMKZfTvraCf1fa16BsUKkdNs3hdHA"],"license":"MIT"},"src/interfaces/service/IOptInService.sol":{"keccak256":"0x76fb5460a6d87a5705433d4fbeff7253cd75b8bbd0c888b2088f16e86ace146a","urls":["bzz-raw://990322019b3d11465f7024bae77ccbf7e2fe5d6fa3c754584778f37d04fa1337","dweb:/ipfs/QmaSNHzcqxTkUCG9a4nqVfLECHLdjdrwAnDi3yDC7tDL24"],"license":"MIT"},"src/interfaces/slasher/IBaseSlasher.sol":{"keccak256":"0x7c82528b445659c313ab77335c407b0b6efe5e79027187bb287f7bc74202b404","urls":["bzz-raw://0274c90aa5df1aa6bb470a6aab53992fb14fd7e5472c9430416505b29647d9cf","dweb:/ipfs/QmckbmJLDetPemVzCnnGcKYWAZV2BRFXGDsjiaec8jkHxx"],"license":"MIT"},"src/interfaces/slasher/IBurner.sol":{"keccak256":"0xaf495dacc19ae0b3c787ba8021c5944927d70261536addd234d7dab146158c2b","urls":["bzz-raw://9b3cc66251008be6ff9fc8b11ecc6831d5a9dca49a3fe9817fcd970253c1d447","dweb:/ipfs/QmVxfb9ALGdF9W3SN2h41gQbUct6tawvu5bw4K89kFQ4HW"],"license":"MIT"},"src/interfaces/slasher/ISlasher.sol":{"keccak256":"0x34d226d67a3d5e16571f2fac91a8b9773551bcc41c88a96279669dd78d192625","urls":["bzz-raw://7a6e8c1462ee4a1b0f745414be043c09012ea676613790aba004b06c85c980d1","dweb:/ipfs/QmadjNEbHKRthtA1EeNy3Kg2sXpejH2KBeHm8QZtBPvXbJ"],"license":"MIT"},"src/interfaces/slasher/IVetoSlasher.sol":{"keccak256":"0xdf7edd04a4f36e9aec3a15241dcb6b6315b2e64927b12710c2c410d571fc55e9","urls":["bzz-raw://c4be6ac339c2ebf230fed65363f036784224095d0cd0f3f2d01d64d6e0da9508","dweb:/ipfs/QmRSMbpfaHExqrzUA8vYZMYZWh6eQW1KX9JKJSLdgronfg"],"license":"MIT"},"src/interfaces/vault/IVault.sol":{"keccak256":"0xffee01d383cd4e1a5530c614bf4360c1ef070c288abec9da1eb531b51bc07235","urls":["bzz-raw://04f0046cac285d8ec44ebbb1f79dc94fab4495767190cad8364fbc1fafaadfb9","dweb:/ipfs/QmUawAunwzXfCyShWfhKeThAgKtqe51hmrxvrXvM772M2R"],"license":"MIT"},"src/interfaces/vault/IVaultStorage.sol":{"keccak256":"0x592626f13754194f83047135de19229c49390bd59e34659b1bb38be71d973a22","urls":["bzz-raw://06a6a9dfddd05e580b32bebe2cff4f63ba26a653180676d58225dd30d9c89d3e","dweb:/ipfs/QmdgzBeY6Sxo8mGtyBxtv1tM1c2kU6J6zjeRd7vuXm4DU6"],"license":"MIT"}},"version":1},"id":84} \ No newline at end of file diff --git a/out/SlasherHints.sol/VetoSlasherHints.json b/out/SlasherHints.sol/VetoSlasherHints.json index 0d330ae9..bb433b08 100644 --- a/out/SlasherHints.sol/VetoSlasherHints.json +++ b/out/SlasherHints.sol/VetoSlasherHints.json @@ -1 +1 @@ -{"abi":[{"type":"constructor","inputs":[{"name":"baseSlasherHints","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"BASE_SLASHER_HINTS","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"BURNER_GAS_LIMIT","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"BURNER_RESERVE","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"FACTORY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"NETWORK_MIDDLEWARE_SERVICE","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"NETWORK_REGISTRY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"TYPE","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"VAULT_FACTORY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"cumulativeSlash","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"cumulativeSlashAt","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"timestamp","type":"uint48","internalType":"uint48"},{"name":"hint","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"executeSlash","inputs":[{"name":"slashIndex","type":"uint256","internalType":"uint256"},{"name":"hints","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"slashedAmount","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"executeSlashHints","inputs":[{"name":"slasher","type":"address","internalType":"address"},{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"captureTimestamp","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"initialize","inputs":[{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"isBurnerHook","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"latestSlashedCaptureTimestamp","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"value","type":"uint48","internalType":"uint48"}],"stateMutability":"view"},{"type":"function","name":"requestSlash","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"captureTimestamp","type":"uint48","internalType":"uint48"},{"name":"hints","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"slashIndex","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"requestSlashHints","inputs":[{"name":"slasher","type":"address","internalType":"address"},{"name":"msgSender","type":"address","internalType":"address"},{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"captureTimestamp","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"resolver","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"hint","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"resolverAt","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"timestamp","type":"uint48","internalType":"uint48"},{"name":"hint","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"resolverHint","inputs":[{"name":"slasher","type":"address","internalType":"address"},{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"timestamp","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"resolverHintInternal","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"timestamp","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"exists","type":"bool","internalType":"bool"},{"name":"hint","type":"uint32","internalType":"uint32"}],"stateMutability":"view"},{"type":"function","name":"resolverSetEpochsDelay","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"setResolver","inputs":[{"name":"identifier","type":"uint96","internalType":"uint96"},{"name":"resolver_","type":"address","internalType":"address"},{"name":"hints","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setResolverHints","inputs":[{"name":"slasher","type":"address","internalType":"address"},{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"timestamp","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"slashRequests","inputs":[{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"captureTimestamp","type":"uint48","internalType":"uint48"},{"name":"vetoDeadline","type":"uint48","internalType":"uint48"},{"name":"completed","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"slashRequestsLength","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"slashableStake","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"captureTimestamp","type":"uint48","internalType":"uint48"},{"name":"hints","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"staticDelegateCall","inputs":[{"name":"target","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"vault","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"vetoDuration","inputs":[],"outputs":[{"name":"","type":"uint48","internalType":"uint48"}],"stateMutability":"view"},{"type":"function","name":"vetoSlash","inputs":[{"name":"slashIndex","type":"uint256","internalType":"uint256"},{"name":"hints","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"vetoSlashHints","inputs":[{"name":"slasher","type":"address","internalType":"address"},{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"captureTimestamp","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"event","name":"ExecuteSlash","inputs":[{"name":"slashIndex","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"slashedAmount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"RequestSlash","inputs":[{"name":"slashIndex","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"subnetwork","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"slashAmount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"captureTimestamp","type":"uint48","indexed":false,"internalType":"uint48"},{"name":"vetoDeadline","type":"uint48","indexed":false,"internalType":"uint48"}],"anonymous":false},{"type":"event","name":"SetResolver","inputs":[{"name":"subnetwork","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"resolver","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"VetoSlash","inputs":[{"name":"slashIndex","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"resolver","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"error","name":"AlreadySet","inputs":[]},{"type":"error","name":"CheckpointUnorderedInsertion","inputs":[]},{"type":"error","name":"ExternalCall","inputs":[]},{"type":"error","name":"InsufficientBurnerGas","inputs":[]},{"type":"error","name":"InsufficientSlash","inputs":[]},{"type":"error","name":"InvalidCaptureTimestamp","inputs":[]},{"type":"error","name":"InvalidInitialization","inputs":[]},{"type":"error","name":"InvalidResolverSetEpochsDelay","inputs":[]},{"type":"error","name":"InvalidVetoDuration","inputs":[]},{"type":"error","name":"NoBurner","inputs":[]},{"type":"error","name":"NoResolver","inputs":[]},{"type":"error","name":"NotInitialized","inputs":[]},{"type":"error","name":"NotInitializing","inputs":[]},{"type":"error","name":"NotNetwork","inputs":[]},{"type":"error","name":"NotNetworkMiddleware","inputs":[]},{"type":"error","name":"NotResolver","inputs":[]},{"type":"error","name":"NotVault","inputs":[]},{"type":"error","name":"ReentrancyGuardReentrantCall","inputs":[]},{"type":"error","name":"SafeCastOverflowedUintDowncast","inputs":[{"name":"bits","type":"uint8","internalType":"uint8"},{"name":"value","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"SlashPeriodEnded","inputs":[]},{"type":"error","name":"SlashRequestCompleted","inputs":[]},{"type":"error","name":"SlashRequestNotExist","inputs":[]},{"type":"error","name":"VetoPeriodEnded","inputs":[]},{"type":"error","name":"VetoPeriodNotEnded","inputs":[]}],"bytecode":{"object":"0x6101603461017c576001600160401b0390601f61377c38819003918201601f1916830191848311848410176101805780849260209460405283398101031261017c5751906001600160a01b038216820361017c57306080527ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a009081549060ff8260401c1661016a578080831603610125575b835f60a0525f60c0525f60e052610100905f8252610120905f8252610140908152604051916135e79384610195853960805184610b66015260a0518461047b015260c0518481816115860152612c5a015260e0518481816102e801526122ba0152518381816104370152612444015251828181610c7801526115dc015251818181610806015281816119140152611d090152f35b6001600160401b031990911681179091556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a15f8080610091565b60405163f92ee8a960e01b8152600490fd5b5f80fd5b634e487b7160e01b5f52604160045260245ffdfe60806040526004361015610011575f80fd5b5f3560e01c80622a087514610213578063103f29071461020e5780631a2be2c4146102095780631dd5f60014610204578063267de1f3146101ff5780632964f8dc146101fa5780632c9d45b3146101f55780632dd31000146101f057806331ce4dfe146101eb57806334d098ea146101e6578063439fab91146101e1578063457821b7146101dc5780635264679b146101d7578063545ce389146101d257806369f78920146101cd5780638f42f9ab146101c85780638f82f931146101c35780639168f9d2146101be5780639a896551146101b95780639f86fd85146101b4578063a4ef9b4f146101af578063aa8e6489146101aa578063aab3595f146101a5578063b94c386e146101a0578063bb24fe8a1461019b578063bc6eac5b14610196578063c0cd7c3e14610191578063cd05b8a11461018c578063d5c24e1a14610187578063e054e08b14610182578063f9268d181461017d5763fbfa77cf14610178575f80fd5b611813565b6116a5565b611680565b611663565b61160b565b6115c7565b6115aa565b611567565b61121b565b6111c3565b611185565b611122565b61108e565b611003565b610bd8565b610b47565b610b2a565b610ae5565b61084f565b610835565b6107f1565b6106b9565b610668565b6105ff565b610466565b610422565b610406565b6103b1565b610397565b610317565b6102d3565b610261565b6001600160a01b0381160361022957565b5f80fd5b65ffffffffffff81160361022957565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b346102295760c0366003190112610229576102c56102b160043561028481610218565b61028f602435610218565b60643561029b81610218565b60a435916102a88361022d565b604435906118c9565b60405191829160208352602083019061023d565b0390f35b5f91031261022957565b34610229575f366003190112610229576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461022957604036600319011261022957602061036361035e60243561033c81610218565b6004355f526002845260405f209060018060a01b03165f5260205260405f2090565b6120d2565b604051908152f35b60609060031901126102295760043561038381610218565b90602435906044356103948161022d565b90565b34610229576102c56102b16103ab3661036b565b916119a0565b3461022957604036600319011261022957602065ffffffffffff6103fc6024356103da81610218565b6004355f526001845260405f209060018060a01b03165f5260205260405f2090565b5416604051908152f35b34610229575f366003190112610229576020604051614e208152f35b34610229575f366003190112610229576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b34610229575f366003190112610229576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b634e487b7160e01b5f52604160045260245ffd5b602081019081106001600160401b038211176104d957604052565b6104aa565b604081019081106001600160401b038211176104d957604052565b606081019081106001600160401b038211176104d957604052565b6001600160401b0381116104d957604052565b608081019081106001600160401b038211176104d957604052565b90601f801991011681019081106001600160401b038211176104d957604052565b6040519060c082018281106001600160401b038211176104d957604052565b6040519061058f826104f9565b565b6040519061058f826104de565b6001600160401b0381116104d957601f01601f191660200190565b81601f82011215610229578035906105d08261059e565b926105de6040519485610542565b8284526020838301011161022957815f926020809301838601378301015290565b346102295760603660031901126102295760243561061c8161022d565b604435906001600160401b0382116102295761065f61064160209336906004016105b9565b6004355f90815260068552604090206001600160a01b03939061214a565b16604051908152f35b34610229575f36600319011261022957602060ff5f5460a01c166040519015158152f35b9181601f84011215610229578235916001600160401b038311610229576020838186019501011161022957565b34610229576020366003190112610229576001600160401b03600435818111610229576106ea90369060040161068c565b5f80516020613592833981519152549260ff8460401c16159316801590816107e9575b60011490816107df575b1590816107d6575b506107c4575f80516020613592833981519152805467ffffffffffffffff1916600117905561075291836107a057612283565b61075857005b5f80516020613592833981519152805460ff60401b19169055604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a1005b5f80516020613592833981519152805460ff60401b1916600160401b179055612283565b60405163f92ee8a960e01b8152600490fd5b9050155f61071f565b303b159150610717565b84915061070d565b34610229575f366003190112610229576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b34610229576102c56102b16108493661036b565b91611a24565b346102295760a0366003190112610229576004602435813561087082610218565b6064359161087d8361022d565b6084356001600160401b0381116102295761089b903690860161068c565b93906108a56123ed565b6108ae8461241c565b6108b6611ab6565b9480610acf575b50506108c8426125ff565b6108e26108db875465ffffffffffff1690565b8092611b17565b5f54909590610907906108fb906001600160a01b031681565b6001600160a01b031690565b958760206040988951928380926327f843b560e11b82525afa8015610aca576109469261093b925f92610a99575b50611a0c565b65ffffffffffff1690565b65ffffffffffff8416908110908115610a83575b50610a735761096f61097891518486886127da565b506044356124b3565b958615610a65576102c5610a3e878988887f3cb7f4ff6cecf74cee0eb9ae3ebf8933fa60a53014cce52f96da72a78dba8464896109bd8a6109b8426125ff565b611b17565b92600354978894610a0e6109cf610563565b8881526001600160a01b0385166020820152808b018a905265ffffffffffff8616606082015265ffffffffffff831660808201525f60a0820152611b59565b885197885265ffffffffffff938416602089015290921660408701526001600160a01b0316949081906060820190565b0390a4610a5760015f8051602061357283398151915255565b519081529081906020820190565b855163167f871760e31b8152fd5b8551631357ac9160e11b81528790fd5b9050610a9161093b426125ff565b11155f61095a565b610abc91925060203d602011610ac3575b610ab48183610542565b810190611b31565b905f610935565b503d610aaa565b6118a5565b610add929550810190611ac9565b925f806108bd565b34610229576080366003190112610229576102c56102b1600435610b0881610218565b604435610b1481610218565b60643591610b218361022d565b60243590611c8f565b34610229575f366003190112610229576020600354604051908152f35b3461022957604036600319011261022957602435610b648161022d565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163303610bc65763ffffffff610bb16040926004355f526006602052835f206124e9565b91505083929192519215158352166020820152f35b604051637ca475e560e11b8152600490fd5b346102295760603660031901126102295760048035906bffffffffffffffffffffffff8216820361022957602435610c0f81610218565b6044356001600160401b03811161022957610c2d903690840161068c565b90610c366123ed565b610c3e611ab6565b5081610f9e575b5050604080516302910f8b60e31b8152338185019081526001600160a01b0395929491602091829082908190830103818a7f0000000000000000000000000000000000000000000000000000000000000000165afa908115610aca575f91610f71575b5015610f62575f54610ce3906001600160a01b0316936bffffffffffffffffffffffff166bffffffffffffffffffffffff193360601b161790565b95610cfe610cf9885f52600660205260405f2090565b61323a565b50949015610ef857610d1261093b426125ff565b65ffffffffffff9586161115610ec257610d3c610d37895f52600660205260405f2090565b6125c0565b505b610d616108fb6108fb6108fb610d5c8c5f52600660205260405f2090565b612e78565b91808716928303610dcd575b505050505050610db2907f7b0b759b513b299fd2811f51926dca8854222a675557e8d544ce0933bf5b7570925b516001600160a01b0390911681529081906020820190565b0390a2610dcb60015f8051602061357283398151915255565b005b610de48998959796985f52600660205260405f2090565b911692845163186a323160e21b815281818981885afa908115610aca575f91610ea5575b5081600554958751998a80926327f843b560e11b82525afa908115610aca5789610e6d610e7f977f7b0b759b513b299fd2811f51926dca8854222a675557e8d544ce0933bf5b75709c610e7495610db29d610e79985f92610e88575b50501690611dde565b9116611dff565b6125ff565b90613447565b82958495610d6d565b610e9e9250803d10610ac357610ab48183610542565b5f80610e64565b610ebc9150823d8411610ac357610ab48183610542565b5f610e08565b610ee06108fb6108fb6108fb610d5c8c5f52600660205260405f2090565b82871603610d3e57865163a741a04560e01b81528490fd5b5093949385169250508115610f54575091610db291610f4d7f7b0b759b513b299fd2811f51926dca8854222a675557e8d544ce0933bf5b757094610f44875f52600660205260405f2090565b610e79426125ff565b5050610d9a565b825163a741a04560e01b8152fd5b5083516323d53b9760e21b8152fd5b610f919150823d8411610f97575b610f898183610542565b810190611dca565b5f610ca8565b503d610f7f565b610faa91810190611ac9565b505f80610c45565b634e487b7160e01b5f52603260045260245ffd5b600354811015610ffe5760035f5260021b7fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b01905f90565b610fb2565b34610229576020366003190112610229576004356003548110156102295761102a90610fc6565b50805460018201546002830154600390930154604080519384526001600160a01b0390921660208401529082019290925265ffffffffffff808316606080840191909152603084901c90911660808301529190911c60ff16151560a082015260c090f35b34610229576040366003190112610229576004356110ab81610218565b6024356001600160401b038111610229575f916110cd8392369060040161068c565b90816040519283928337810184815203915af461111a6110eb611e0c565b9161110c60405193849215156020840152604080840152606083019061023d565b03601f198101835282610542565b805190602001fd5b34610229576102c56102b16111363661036b565b91611e6d565b906080600319830112610229576004359160243561115981610218565b916044356111668161022d565b91606435906001600160401b03821161022957610394916004016105b9565b346102295760206103636111be61119b3661113c565b939190925f526002865260405f209060018060a01b03165f5260205260405f2090565b612665565b346102295760206111df6111d63661113c565b929190916127da565b50604051908152f35b9060406003198301126102295760043591602435906001600160401b038211610229576112179160040161068c565b9091565b3461022957611229366111e8565b91906112336123ed565b61123b611f92565b9280611551575b505060035481101561153f5761125781610fc6565b50908154906112658261241c565b6003830180549365ffffffffffff9384861660018060a01b0361128a895183856119b7565b16151580611514575b806114fb575b6114e9576112af816112aa426125ff565b611a0c565b5f546112c5906108fb906001600160a01b031681565b96600460206040998a51928380926327f843b560e11b82525afa8015610aca5782915f916114ca575b50169116116114b957600183018054909861131993929188906001600160a01b0316910151926127da565b906113288160028501546124b3565b9687156114a85760601c60ff166114975792611450611443899461141b6114088b9687876102c59f6114168f9d8f9e6114569f61137286600160601b60ff60601b19825416179055565b8a54855461139491906001600160a01b0316885465ffffffffffff1691612a0a565b8a5485546113ad9189916001600160a01b031690612a8a565b8a5494546113cb906001600160a01b0316965465ffffffffffff1690565b976113d4610582565b9384526020840152818301525196879160208301919091604080606083019480518452602081015160208501520151910152565b03601f198101875286610542565b612bf6565b61143461142e855465ffffffffffff1690565b86612cff565b5494546001600160a01b031690565b915465ffffffffffff1690565b92612d7c565b81518381527f5cc28df3b54da9d06f805d87616ebf969c81310f2aa8369cb14ca50f815d411190602090a2610a5760015f8051602061357283398151915255565b8551633428e90760e01b8152600490fd5b865163167f871760e31b8152600490fd5b8551639ea153eb60e01b8152600490fd5b6114e3915060203d602011610ac357610ab48183610542565b5f6112ee565b60405163b62b15c760e01b8152600490fd5b5061150861093b426125ff565b868860301c1611611299565b506115386108fb61152c611527426125ff565b6119f0565b60208b015190856119b7565b1515611293565b604051637822972360e11b8152600490fd5b61155f929350810190611fb1565b905f80611242565b34610229575f3660031901126102295760206040516001600160401b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b34610229575f366003190112610229576020600554604051908152f35b34610229575f366003190112610229576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b34610229576040366003190112610229576024356001600160401b0381116102295761165161164060209236906004016105b9565b611649426125ff565b6004356119b7565b6040516001600160a01b039091168152f35b34610229575f366003190112610229576020604051620249f08152f35b34610229575f36600319011261022957602065ffffffffffff60045416604051908152f35b34610229576116b3366111e8565b906116bc6123ed565b6116c4612039565b91806117ff575b505060035482101561153f576116e082610fc6565b506003815491019182549165ffffffffffff9160018060a01b036117088251858716856119b7565b169182159182156117d6575b50506117c45733036117b25761172c61093b426125ff565b908260301c1611156117a15760601c60ff1661178f57805460ff60601b1916600160601b17905533907f7d3d269c851b72257a5194a401d151902e9be4347d555996dcff3ff86a077e925f80a3610dcb60015f8051602061357283398151915255565b604051633428e90760e01b8152600490fd5b60405162c457e560e81b8152600490fd5b604051635d154fe160e11b8152600490fd5b60405163dd1ebd9d60e01b8152600490fd5b6117f79250906108fb9160206117ee611527426125ff565b910151916119b7565b155f80611714565b61180c9250810190612052565b5f806116cb565b34610229575f366003190112610229575f546040516001600160a01b039091168152602090f35b81601f82011215610229578051906118518261059e565b9261185f6040519485610542565b8284526020838301011161022957815f9260208093018386015e8301015290565b906020828203126102295781516001600160401b03811161022957610394920161183a565b6040513d5f823e3d90fd5b604061039492602083525191602080820152019061023d565b604051632751749360e11b81526001600160a01b0391821660048201526024810192909252909116604482015265ffffffffffff9091166064820152606091905f81806084810103817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa908115610aca575f9161197e575b5080516119565750565b61110c919250610394906040519061196d826104be565b8152604051928391602083016118b0565b61199a91503d805f833e6119928183610542565b810190611880565b5f61194c565b92916119ae91606094611e6d565b80516119565750565b5f9081526006602052604090206001600160a01b03926119d892909161214a565b1690565b634e487b7160e01b5f52601160045260245ffd5b65ffffffffffff9081165f190191908211611a0757565b6119dc565b65ffffffffffff9182169082160391908211611a0757565b611a4590939293611a386060958483611e6d565b92611136611527426125ff565b815115801590611aac575b611a58575050565b611a999293509061110c6103949260405192611a73846104de565b83526020830190815260405194859360208086015251604080860152608085019061023d565b9051838203603f1901606085015261023d565b5080511515611a50565b60405190611ac3826104be565b60608252565b906020828203126102295781356001600160401b03928382116102295701906020828203126102295760405192611aff846104be565b823590811161022957611b1292016105b9565b815290565b91909165ffffffffffff80809416911601918211611a0757565b9081602091031261022957516103948161022d565b634e487b7160e01b5f525f60045260245ffd5b600354600160401b8110156104d957806001611b789201600355610fc6565b919091611c3b578051825560208101516001830180546001600160a01b0319166001600160a01b039290921691909117905561058f91611c219060a090600390604085015160028201550192611bee65ffffffffffff606083015116859065ffffffffffff1665ffffffffffff19825416179055565b60808101516bffffffffffff00000000000085549160301b16906bffffffffffff00000000000019161784550151151590565b815460ff60601b191690151560601b60ff60601b16179055565b611b46565b906103949160208152611c5f825160606020840152608083019061023d565b9060606040611c7f602086015194601f199586868303018487015261023d565b940151928285030191015261023d565b919093925f606095611ca2838287611e6d565b94611d05611cbc611cb5611527426125ff565b8484611e6d565b604051632751749360e11b81526001600160a01b039384166004820152602481019490945291909516604483015265ffffffffffff909316606482015292839081906084820190565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa918215610aca575f92611da1575b50825115801590611d97575b8015611d8d575b611d5d57505050565b61110c939450906103949291611d71610582565b9283526020830152604082015260405192839160208301611c40565b5081511515611d54565b5080511515611d4d565b611db69192503d805f833e6119928183610542565b905f611d41565b5190811515820361022957565b908160209103126102295761039490611dbd565b81810292918115918404141715611a0757565b9060018201809211611a0757565b91908201809211611a0757565b3d15611e36573d90611e1d8261059e565b91611e2b6040519384610542565b82523d5f602084013e565b606090565b519063ffffffff8216820361022957565b9190826040910312610229576103946020611e6684611dbd565b9301611e3b565b92915f8060609565ffffffffffff60405194602096638f82f93160e01b88880152602487015216604485015260448452611ea684610527565b6040519384611ed387820192639f86fd8560e01b845230602484015260406044840152606483019061023d565b0394611ee7601f1996878101835282610542565b51915afa50611f05611ef7611e0c565b838082518301019101612631565b9015611f5857808380611f1d93518301019101611e4c565b9290611f2857505050565b61039492939450611f4c604051948592830191909163ffffffff6020820193169052565b03908101835282610542565b809150519182156102295701fd5b5f9081526002602090815260408083206001600160a01b03909416835292905220610394929190612665565b60405190611f9f826104f9565b60606040838281528260208201520152565b906020828203126102295781356001600160401b03928382116102295701906060828203126102295760405192611fe7846104f9565b82358181116102295782611ffc9185016105b9565b8452602083013581811161022957826120169185016105b9565b602085015260408301359081116102295761203192016105b9565b604082015290565b60405190612046826104de565b60606020838281520152565b906020828203126102295781356001600160401b03928382116102295701906040828203126102295760405192612088846104de565b8235818111610229578261209d9185016105b9565b84526020830135908111610229576120b592016105b9565b602082015290565b8054821015610ffe575f5260205f2001905f90565b6120db81612e78565b6001600160d01b038116156121005760016120f692016120bd565b90549060031b1c90565b50505f90565b908160209103126102295761039490611e3b565b5f19810191908211611a0757565b91908203918211611a0757565b90600163ffffffff80931601918211611a0757565b9180511561222e578060208061216593518301019101612106565b916121708382612eb8565b92612181845165ffffffffffff1690565b9065ffffffffffff808516921682811461221557821191826121c0575b50506121ae576103949250613346565b5050602001516001600160d01b031690565b9091506121cd835461211a565b63ffffffff8316149182156121e6575b50505f8061219e565b61220d9192506122016121fb61093b92612135565b85612eb8565b5165ffffffffffff1690565b115f806121dd565b50505050602091909101516001600160d01b0316905090565b5061039491613346565b91909160408184031261022957803561225081610218565b9260208201356001600160401b0381116102295761039492016105b9565b90816020910312610229575161039481610218565b61228f91810190612238565b6040516302910f8b60e31b81526001600160a01b0392831660048201819052929160209182816024817f000000000000000000000000000000000000000000000000000000000000000088165afa908115610aca575f916123d0575b50156123be5781612320600492612300612f0c565b5f80546001600160a01b0319166001600160a01b03891617905586612f99565b94604051928380926313c085b760e11b82525afa918215610aca575f92612391575b5050161580612387575b612375575161058f9015155f805460ff60a01b191691151560a01b60ff60a01b16919091179055565b60405163d2420f5960e01b8152600490fd5b508051151561234c565b6123b09250803d106123b7575b6123a88183610542565b81019061226e565b5f80612342565b503d61239e565b6040516362df054560e01b8152600490fd5b6123e79150833d8511610f9757610f898183610542565b5f6122eb565b5f80516020613572833981519152600281541461240a5760029055565b604051633ee5aeb560e01b8152600490fd5b604051635daf681960e11b815260609190911c60048201526001600160a01b036020826024817f000000000000000000000000000000000000000000000000000000000000000085165afa918215610aca575f92612492575b503391160361248057565b60405163227bf64d60e01b8152600490fd5b6124ac91925060203d6020116123b7576123a88183610542565b905f612475565b90808210156124c0575090565b905090565b906040516124d2816104de565b915465ffffffffffff8116835260301c6020830152565b908154905f829160058411612572575b6125049350846131d8565b90811561256657612525906125188361211a565b905f5260205f20016124c5565b9161255f6125566125506020612541875165ffffffffffff1690565b9601516001600160d01b031690565b9361211a565b63ffffffff1690565b6001939291565b50505f905f905f905f90565b919261257d8161309a565b8103908111611a075761250493855f5265ffffffffffff808360205f20015416908516105f146125ae5750916124f9565b9291506125ba90611df1565b906124f9565b906125ca82612e78565b91805480156125eb575f1901906125e182826120bd565b611c3b575f905555565b634e487b7160e01b5f52603160045260245ffd5b65ffffffffffff90818111612612571690565b604490604051906306dfcc6560e41b8252603060048301526024820152fd5b9190916040818403126102295761264781611dbd565b9260208201516001600160401b03811161022957610394920161183a565b91805115612727578060208061268093518301019101612106565b9161268b8382613294565b9261269c845165ffffffffffff1690565b9065ffffffffffff808516921682811461271b57821191826126d2575b50506126c9576103949250613289565b50506020015190565b9091506126df835461211a565b63ffffffff8316149182156126f8575b50505f806126b9565b61271391925061220161270d61093b92612135565b85613294565b115f806126ef565b50505050506020015190565b5061039491613289565b906020828203126102295781516001600160401b03928382116102295701906040828203126102295760405192612767846104de565b8251818111610229578261277c91850161183a565b84526020830151908111610229576120b5920161183a565b90816020910312610229575190565b9081526001600160a01b03909116602082015265ffffffffffff90911660408201526080606082018190526103949291019061023d565b926127e3612039565b908051806129f0575b50506127f7426125ff565b5f54909490612810906108fb906001600160a01b031681565b93604051956327f843b560e11b875260209687816004818a5afa8015610aca576128449261093b925f926129d85750611a0c565b65ffffffffffff82169081109081156129c1575b8115612990575b50612984578560049560405196878092630ce9b79360e41b82525afa948515610aca576128b19587915f91612967575b50845190604051808099819463e02f693760e01b8352878b8a600486016127a3565b03916001600160a01b03165afa938415610aca57612923955f95612926575b5092612918859361291e9361291896869a61290f61035e836128fa875f52600260205260405f2090565b9060018060a01b03165f5260205260405f2090565b95015192611f66565b90612128565b6124b3565b91565b61291e929550612918949193612954612918928a3d8c11612960575b61294c8183610542565b810190612794565b969350939194506128d0565b503d612942565b61297e9150823d84116123b7576123a88183610542565b5f61288f565b5050505050505f905f90565b90506129ba61093b6129ae876128fa875f52600160205260405f2090565b5465ffffffffffff1690565b115f61285f565b90506129cf61093b426125ff565b81101590612858565b610abc9192508a3d8c11610ac357610ab48183610542565b612a039250602080918301019101612731565b5f806127ec565b919091805f52600160205265ffffffffffff80612a3a8560405f209060018060a01b03165f5260205260405f2090565b541690831611612a4957505050565b61058f92612a71915f52600160205260405f209060018060a01b03165f5260205260405f2090565b9065ffffffffffff1665ffffffffffff19825416179055565b9190825f526002602052612ae261035e612ab78360405f209060018060a01b03165f5260205260405f2090565b92612ac1426125ff565b955f52600260205260405f209060018060a01b03165f5260205260405f2090565b918201809211611a07576001810190815415612b86575b612b028161323a565b509490835495612b11846120d2565b5081612b71575b5015612b505750505f198301928311611a075761058f92612b38916120bd565b90919082549060031b91821b915f19901b1916179055565b61058f94612b6a926001600160d01b039091169190613447565b5050613323565b65ffffffffffff83811691161490505f612b18565b612b8f826132f6565b612af9565b60606020610394938184526001600160401b0381511682850152015191604080820152019061023d565b919360a093610394969565ffffffffffff938552600180871b031660208501526040840152166060820152816080820152019061023d565b92939060046020612c136108fb6108fb5f5460018060a01b031690565b604051630ce9b79360e41b815292839182905afa908115610aca5761110c91612c91915f91612ce0575b506001600160a01b031693612c50610591565b6001600160401b037f000000000000000000000000000000000000000000000000000000000000000016815290602082015260405192839160208301612b94565b823b15610229575f94612cbc86926040519889978896879563724ab0f760e11b875260048701612bbe565b03925af18015610aca57612ccd5750565b80612cda61058f92610514565b806102c9565b612cf9915060203d6020116123b7576123a88183610542565b5f612c3d565b65ffffffffffff9160446020925f60018060a01b038154166040519687958694631c9e38c760e21b865260048601521660248401525af18015610aca57612d435750565b612d5b9060203d6020116129605761294c8183610542565b50565b8115612d68570490565b634e487b7160e01b5f52601260045260245ffd5b92905f549060ff8260a01c16612d94575b5050505050565b6040516313c085b760e11b815291602090839060049082906001600160a01b03165afa918215610aca575f92612e51575b5060405163065c1e0360e01b6020820190815260248201969096526001600160a01b039091166044820152606481019390935265ffffffffffff9091166084830152612e1e8260a481015b03601f198101845283610542565b6202a15c5a10612e3f575f928380935192620249f0f1505f80808080612d8d565b604051632153f33560e21b8152600490fd5b612e1e9250612e71612e109160203d6020116123b7576123a88183610542565b9250612dc5565b805480612e855750505f90565b5f19918183810111611a07575f5260205f2001015460301c90565b60405190612ead826104de565b5f6020838281520152565b612edd91612ed791612ec8612ea0565b50612ed1612ea0565b506120bd565b506124c5565b65ffffffffffff81511690602060018060d01b039101511660405191612f02836104de565b8252602082015290565b612f146133d2565b612f1c6133d2565b60015f8051602061357283398151915255565b60405190612f3c826104be565b5f8252565b809103906060821261022957602060405192612f5c846104f9565b12610229576040908151612f6f816104be565b612f7882611dbd565b815283526020810151612f8a8161022d565b60208401520151604082015290565b90600490612fa5612f2f565b508051612fbc602092838080948301019101612f41565b6040516327f843b560e11b815290949093849182906001600160a01b03165afa918215610aca575f9261307b575b50820190612ffe825165ffffffffffff1690565b65ffffffffffff91821691161015613069576040820160038151106130575761304d613033613053935165ffffffffffff1690565b65ffffffffffff1665ffffffffffff196004541617600455565b51600555565b5190565b6040516354f778f360e01b8152600490fd5b6040516367d5e3df60e11b8152600490fd5b816130939293503d8411610ac357610ab48183610542565b905f612fea565b80156131d3578061316c61316561315b61315161314761313d61313361312960016103949a5f908b60801c806131c7575b508060401c806131ba575b508060201c806131ad575b508060101c806131a0575b508060081c80613193575b508060041c80613186575b508060021c80613179575b50821c613172575b811c1b613122818b612d5e565b0160011c90565b613122818a612d5e565b6131228189612d5e565b6131228188612d5e565b6131228187612d5e565b6131228186612d5e565b6131228185612d5e565b8092612d5e565b906124b3565b8101613115565b600291509101905f61310d565b600491509101905f613102565b600891509101905f6130f7565b601091509101905f6130ec565b602091509101905f6130e1565b604091509101905f6130d6565b9150506080905f6130cb565b505f90565b91905b8382106131e85750505090565b909192808316906001818518811c8301809311611a0757855f5265ffffffffffff808460205f20015416908516105f14613227575050925b91906131db565b909493508101809111611a075791613220565b80548061324b5750505f905f905f90565b5f19908082810111611a0757613268925f5260205f2001016124c5565b9065ffffffffffff82511691602060018060d01b0391015116906001929190565b906120db9082613346565b906132b7612ed76132d8926132a7612ea0565b506132b0612ea0565b50846120bd565b91600165ffffffffffff845116936020828060d01b039101511691016120bd565b905490604051926132e8846104de565b835260031b1c602082015290565b8054600160401b8110156104d957613313916001820181556120bd565b8154905f199060031b1b19169055565b90815491600160401b8310156104d95782612b3891600161058f950181556120bd565b908154905f829160058411613384575b6133619350846131d8565b8061336c5750505f90565b6133759061211a565b905f5260205f20015460301c90565b919261338f8161309a565b8103908111611a075761336193855f5265ffffffffffff808360205f20015416908516105f146133c0575091613356565b9291506133cc90611df1565b90613356565b60ff5f805160206135928339815191525460401c16156133ee57565b604051631afcd79f60e31b8152600490fd5b8054600160401b8110156104d95761341d916001820181556120bd565b611c3b57815160209092015160301b65ffffffffffff191665ffffffffffff909216919091179055565b8054929392919082156135485761347361346e6134638561211a565b835f5260205f200190565b6124c5565b90613484825165ffffffffffff1690565b65ffffffffffff84811691168110613536576134fa9460209488926134b261093b875165ffffffffffff1690565b036134fe57506134ec926134c86134d39261211a565b905f5260205f200190565b9065ffffffffffff82549181199060301b169116179055565b01516001600160d01b031690565b9190565b9150506135319161351e613510610591565b65ffffffffffff9093168352565b6001600160d01b03881682860152613400565b6134ec565b604051632520601d60e01b8152600490fd5b61356c9250613558613510610591565b6001600160d01b0385166020830152613400565b5f919056fe9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a264697066735822122066def236e3cb068f18d202c0ed5927514d7f8f51390f7bbba09b96397dfe793c64736f6c63430008190033","sourceMap":"3563:3596:89:-:0;;;;-1:-1:-1;;;;;3563:3596:89;;;;;;;;;;-1:-1:-1;;3563:3596:89;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3563:3596:89;;;;;;348:4:87;332:21;;8837:64:26;3563:3596:89;;;;;;;;;7896:76:26;;3563:3596:89;;;;7985:34:26;7981:146;;-1:-1:-1;525:17:74;-1:-1:-1;525:17:74;;-1:-1:-1;552:12:74;;-1:-1:-1;2353:28:97;;2391:53;;-1:-1:-1;2391:53:97;;1620:34:99;;-1:-1:-1;1620:34:99;;3901:37:89;;;;3563:3596;;;;;;;;;332:21:87;3563:3596:89;;;;;525:17:74;3563:3596:89;;;;;552:12:74;3563:3596:89;;;;;;;;;;2353:28:97;3563:3596:89;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7981:146:26;-1:-1:-1;;;;;;3563:3596:89;;;;;;;;;;;;;8087:29:26;;3563:3596:89;;8087:29:26;7981:146;;;;;7896:76;3563:3596:89;;-1:-1:-1;;;7938:23:26;;;;;3563:3596:89;-1:-1:-1;3563:3596:89;;;;;;-1:-1:-1;3563:3596:89;;;;;-1:-1:-1;3563:3596:89","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361015610011575f80fd5b5f3560e01c80622a087514610213578063103f29071461020e5780631a2be2c4146102095780631dd5f60014610204578063267de1f3146101ff5780632964f8dc146101fa5780632c9d45b3146101f55780632dd31000146101f057806331ce4dfe146101eb57806334d098ea146101e6578063439fab91146101e1578063457821b7146101dc5780635264679b146101d7578063545ce389146101d257806369f78920146101cd5780638f42f9ab146101c85780638f82f931146101c35780639168f9d2146101be5780639a896551146101b95780639f86fd85146101b4578063a4ef9b4f146101af578063aa8e6489146101aa578063aab3595f146101a5578063b94c386e146101a0578063bb24fe8a1461019b578063bc6eac5b14610196578063c0cd7c3e14610191578063cd05b8a11461018c578063d5c24e1a14610187578063e054e08b14610182578063f9268d181461017d5763fbfa77cf14610178575f80fd5b611813565b6116a5565b611680565b611663565b61160b565b6115c7565b6115aa565b611567565b61121b565b6111c3565b611185565b611122565b61108e565b611003565b610bd8565b610b47565b610b2a565b610ae5565b61084f565b610835565b6107f1565b6106b9565b610668565b6105ff565b610466565b610422565b610406565b6103b1565b610397565b610317565b6102d3565b610261565b6001600160a01b0381160361022957565b5f80fd5b65ffffffffffff81160361022957565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b346102295760c0366003190112610229576102c56102b160043561028481610218565b61028f602435610218565b60643561029b81610218565b60a435916102a88361022d565b604435906118c9565b60405191829160208352602083019061023d565b0390f35b5f91031261022957565b34610229575f366003190112610229576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461022957604036600319011261022957602061036361035e60243561033c81610218565b6004355f526002845260405f209060018060a01b03165f5260205260405f2090565b6120d2565b604051908152f35b60609060031901126102295760043561038381610218565b90602435906044356103948161022d565b90565b34610229576102c56102b16103ab3661036b565b916119a0565b3461022957604036600319011261022957602065ffffffffffff6103fc6024356103da81610218565b6004355f526001845260405f209060018060a01b03165f5260205260405f2090565b5416604051908152f35b34610229575f366003190112610229576020604051614e208152f35b34610229575f366003190112610229576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b34610229575f366003190112610229576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b634e487b7160e01b5f52604160045260245ffd5b602081019081106001600160401b038211176104d957604052565b6104aa565b604081019081106001600160401b038211176104d957604052565b606081019081106001600160401b038211176104d957604052565b6001600160401b0381116104d957604052565b608081019081106001600160401b038211176104d957604052565b90601f801991011681019081106001600160401b038211176104d957604052565b6040519060c082018281106001600160401b038211176104d957604052565b6040519061058f826104f9565b565b6040519061058f826104de565b6001600160401b0381116104d957601f01601f191660200190565b81601f82011215610229578035906105d08261059e565b926105de6040519485610542565b8284526020838301011161022957815f926020809301838601378301015290565b346102295760603660031901126102295760243561061c8161022d565b604435906001600160401b0382116102295761065f61064160209336906004016105b9565b6004355f90815260068552604090206001600160a01b03939061214a565b16604051908152f35b34610229575f36600319011261022957602060ff5f5460a01c166040519015158152f35b9181601f84011215610229578235916001600160401b038311610229576020838186019501011161022957565b34610229576020366003190112610229576001600160401b03600435818111610229576106ea90369060040161068c565b5f80516020613592833981519152549260ff8460401c16159316801590816107e9575b60011490816107df575b1590816107d6575b506107c4575f80516020613592833981519152805467ffffffffffffffff1916600117905561075291836107a057612283565b61075857005b5f80516020613592833981519152805460ff60401b19169055604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a1005b5f80516020613592833981519152805460ff60401b1916600160401b179055612283565b60405163f92ee8a960e01b8152600490fd5b9050155f61071f565b303b159150610717565b84915061070d565b34610229575f366003190112610229576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b34610229576102c56102b16108493661036b565b91611a24565b346102295760a0366003190112610229576004602435813561087082610218565b6064359161087d8361022d565b6084356001600160401b0381116102295761089b903690860161068c565b93906108a56123ed565b6108ae8461241c565b6108b6611ab6565b9480610acf575b50506108c8426125ff565b6108e26108db875465ffffffffffff1690565b8092611b17565b5f54909590610907906108fb906001600160a01b031681565b6001600160a01b031690565b958760206040988951928380926327f843b560e11b82525afa8015610aca576109469261093b925f92610a99575b50611a0c565b65ffffffffffff1690565b65ffffffffffff8416908110908115610a83575b50610a735761096f61097891518486886127da565b506044356124b3565b958615610a65576102c5610a3e878988887f3cb7f4ff6cecf74cee0eb9ae3ebf8933fa60a53014cce52f96da72a78dba8464896109bd8a6109b8426125ff565b611b17565b92600354978894610a0e6109cf610563565b8881526001600160a01b0385166020820152808b018a905265ffffffffffff8616606082015265ffffffffffff831660808201525f60a0820152611b59565b885197885265ffffffffffff938416602089015290921660408701526001600160a01b0316949081906060820190565b0390a4610a5760015f8051602061357283398151915255565b519081529081906020820190565b855163167f871760e31b8152fd5b8551631357ac9160e11b81528790fd5b9050610a9161093b426125ff565b11155f61095a565b610abc91925060203d602011610ac3575b610ab48183610542565b810190611b31565b905f610935565b503d610aaa565b6118a5565b610add929550810190611ac9565b925f806108bd565b34610229576080366003190112610229576102c56102b1600435610b0881610218565b604435610b1481610218565b60643591610b218361022d565b60243590611c8f565b34610229575f366003190112610229576020600354604051908152f35b3461022957604036600319011261022957602435610b648161022d565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163303610bc65763ffffffff610bb16040926004355f526006602052835f206124e9565b91505083929192519215158352166020820152f35b604051637ca475e560e11b8152600490fd5b346102295760603660031901126102295760048035906bffffffffffffffffffffffff8216820361022957602435610c0f81610218565b6044356001600160401b03811161022957610c2d903690840161068c565b90610c366123ed565b610c3e611ab6565b5081610f9e575b5050604080516302910f8b60e31b8152338185019081526001600160a01b0395929491602091829082908190830103818a7f0000000000000000000000000000000000000000000000000000000000000000165afa908115610aca575f91610f71575b5015610f62575f54610ce3906001600160a01b0316936bffffffffffffffffffffffff166bffffffffffffffffffffffff193360601b161790565b95610cfe610cf9885f52600660205260405f2090565b61323a565b50949015610ef857610d1261093b426125ff565b65ffffffffffff9586161115610ec257610d3c610d37895f52600660205260405f2090565b6125c0565b505b610d616108fb6108fb6108fb610d5c8c5f52600660205260405f2090565b612e78565b91808716928303610dcd575b505050505050610db2907f7b0b759b513b299fd2811f51926dca8854222a675557e8d544ce0933bf5b7570925b516001600160a01b0390911681529081906020820190565b0390a2610dcb60015f8051602061357283398151915255565b005b610de48998959796985f52600660205260405f2090565b911692845163186a323160e21b815281818981885afa908115610aca575f91610ea5575b5081600554958751998a80926327f843b560e11b82525afa908115610aca5789610e6d610e7f977f7b0b759b513b299fd2811f51926dca8854222a675557e8d544ce0933bf5b75709c610e7495610db29d610e79985f92610e88575b50501690611dde565b9116611dff565b6125ff565b90613447565b82958495610d6d565b610e9e9250803d10610ac357610ab48183610542565b5f80610e64565b610ebc9150823d8411610ac357610ab48183610542565b5f610e08565b610ee06108fb6108fb6108fb610d5c8c5f52600660205260405f2090565b82871603610d3e57865163a741a04560e01b81528490fd5b5093949385169250508115610f54575091610db291610f4d7f7b0b759b513b299fd2811f51926dca8854222a675557e8d544ce0933bf5b757094610f44875f52600660205260405f2090565b610e79426125ff565b5050610d9a565b825163a741a04560e01b8152fd5b5083516323d53b9760e21b8152fd5b610f919150823d8411610f97575b610f898183610542565b810190611dca565b5f610ca8565b503d610f7f565b610faa91810190611ac9565b505f80610c45565b634e487b7160e01b5f52603260045260245ffd5b600354811015610ffe5760035f5260021b7fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b01905f90565b610fb2565b34610229576020366003190112610229576004356003548110156102295761102a90610fc6565b50805460018201546002830154600390930154604080519384526001600160a01b0390921660208401529082019290925265ffffffffffff808316606080840191909152603084901c90911660808301529190911c60ff16151560a082015260c090f35b34610229576040366003190112610229576004356110ab81610218565b6024356001600160401b038111610229575f916110cd8392369060040161068c565b90816040519283928337810184815203915af461111a6110eb611e0c565b9161110c60405193849215156020840152604080840152606083019061023d565b03601f198101835282610542565b805190602001fd5b34610229576102c56102b16111363661036b565b91611e6d565b906080600319830112610229576004359160243561115981610218565b916044356111668161022d565b91606435906001600160401b03821161022957610394916004016105b9565b346102295760206103636111be61119b3661113c565b939190925f526002865260405f209060018060a01b03165f5260205260405f2090565b612665565b346102295760206111df6111d63661113c565b929190916127da565b50604051908152f35b9060406003198301126102295760043591602435906001600160401b038211610229576112179160040161068c565b9091565b3461022957611229366111e8565b91906112336123ed565b61123b611f92565b9280611551575b505060035481101561153f5761125781610fc6565b50908154906112658261241c565b6003830180549365ffffffffffff9384861660018060a01b0361128a895183856119b7565b16151580611514575b806114fb575b6114e9576112af816112aa426125ff565b611a0c565b5f546112c5906108fb906001600160a01b031681565b96600460206040998a51928380926327f843b560e11b82525afa8015610aca5782915f916114ca575b50169116116114b957600183018054909861131993929188906001600160a01b0316910151926127da565b906113288160028501546124b3565b9687156114a85760601c60ff166114975792611450611443899461141b6114088b9687876102c59f6114168f9d8f9e6114569f61137286600160601b60ff60601b19825416179055565b8a54855461139491906001600160a01b0316885465ffffffffffff1691612a0a565b8a5485546113ad9189916001600160a01b031690612a8a565b8a5494546113cb906001600160a01b0316965465ffffffffffff1690565b976113d4610582565b9384526020840152818301525196879160208301919091604080606083019480518452602081015160208501520151910152565b03601f198101875286610542565b612bf6565b61143461142e855465ffffffffffff1690565b86612cff565b5494546001600160a01b031690565b915465ffffffffffff1690565b92612d7c565b81518381527f5cc28df3b54da9d06f805d87616ebf969c81310f2aa8369cb14ca50f815d411190602090a2610a5760015f8051602061357283398151915255565b8551633428e90760e01b8152600490fd5b865163167f871760e31b8152600490fd5b8551639ea153eb60e01b8152600490fd5b6114e3915060203d602011610ac357610ab48183610542565b5f6112ee565b60405163b62b15c760e01b8152600490fd5b5061150861093b426125ff565b868860301c1611611299565b506115386108fb61152c611527426125ff565b6119f0565b60208b015190856119b7565b1515611293565b604051637822972360e11b8152600490fd5b61155f929350810190611fb1565b905f80611242565b34610229575f3660031901126102295760206040516001600160401b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b34610229575f366003190112610229576020600554604051908152f35b34610229575f366003190112610229576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b34610229576040366003190112610229576024356001600160401b0381116102295761165161164060209236906004016105b9565b611649426125ff565b6004356119b7565b6040516001600160a01b039091168152f35b34610229575f366003190112610229576020604051620249f08152f35b34610229575f36600319011261022957602065ffffffffffff60045416604051908152f35b34610229576116b3366111e8565b906116bc6123ed565b6116c4612039565b91806117ff575b505060035482101561153f576116e082610fc6565b506003815491019182549165ffffffffffff9160018060a01b036117088251858716856119b7565b169182159182156117d6575b50506117c45733036117b25761172c61093b426125ff565b908260301c1611156117a15760601c60ff1661178f57805460ff60601b1916600160601b17905533907f7d3d269c851b72257a5194a401d151902e9be4347d555996dcff3ff86a077e925f80a3610dcb60015f8051602061357283398151915255565b604051633428e90760e01b8152600490fd5b60405162c457e560e81b8152600490fd5b604051635d154fe160e11b8152600490fd5b60405163dd1ebd9d60e01b8152600490fd5b6117f79250906108fb9160206117ee611527426125ff565b910151916119b7565b155f80611714565b61180c9250810190612052565b5f806116cb565b34610229575f366003190112610229575f546040516001600160a01b039091168152602090f35b81601f82011215610229578051906118518261059e565b9261185f6040519485610542565b8284526020838301011161022957815f9260208093018386015e8301015290565b906020828203126102295781516001600160401b03811161022957610394920161183a565b6040513d5f823e3d90fd5b604061039492602083525191602080820152019061023d565b604051632751749360e11b81526001600160a01b0391821660048201526024810192909252909116604482015265ffffffffffff9091166064820152606091905f81806084810103817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa908115610aca575f9161197e575b5080516119565750565b61110c919250610394906040519061196d826104be565b8152604051928391602083016118b0565b61199a91503d805f833e6119928183610542565b810190611880565b5f61194c565b92916119ae91606094611e6d565b80516119565750565b5f9081526006602052604090206001600160a01b03926119d892909161214a565b1690565b634e487b7160e01b5f52601160045260245ffd5b65ffffffffffff9081165f190191908211611a0757565b6119dc565b65ffffffffffff9182169082160391908211611a0757565b611a4590939293611a386060958483611e6d565b92611136611527426125ff565b815115801590611aac575b611a58575050565b611a999293509061110c6103949260405192611a73846104de565b83526020830190815260405194859360208086015251604080860152608085019061023d565b9051838203603f1901606085015261023d565b5080511515611a50565b60405190611ac3826104be565b60608252565b906020828203126102295781356001600160401b03928382116102295701906020828203126102295760405192611aff846104be565b823590811161022957611b1292016105b9565b815290565b91909165ffffffffffff80809416911601918211611a0757565b9081602091031261022957516103948161022d565b634e487b7160e01b5f525f60045260245ffd5b600354600160401b8110156104d957806001611b789201600355610fc6565b919091611c3b578051825560208101516001830180546001600160a01b0319166001600160a01b039290921691909117905561058f91611c219060a090600390604085015160028201550192611bee65ffffffffffff606083015116859065ffffffffffff1665ffffffffffff19825416179055565b60808101516bffffffffffff00000000000085549160301b16906bffffffffffff00000000000019161784550151151590565b815460ff60601b191690151560601b60ff60601b16179055565b611b46565b906103949160208152611c5f825160606020840152608083019061023d565b9060606040611c7f602086015194601f199586868303018487015261023d565b940151928285030191015261023d565b919093925f606095611ca2838287611e6d565b94611d05611cbc611cb5611527426125ff565b8484611e6d565b604051632751749360e11b81526001600160a01b039384166004820152602481019490945291909516604483015265ffffffffffff909316606482015292839081906084820190565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa918215610aca575f92611da1575b50825115801590611d97575b8015611d8d575b611d5d57505050565b61110c939450906103949291611d71610582565b9283526020830152604082015260405192839160208301611c40565b5081511515611d54565b5080511515611d4d565b611db69192503d805f833e6119928183610542565b905f611d41565b5190811515820361022957565b908160209103126102295761039490611dbd565b81810292918115918404141715611a0757565b9060018201809211611a0757565b91908201809211611a0757565b3d15611e36573d90611e1d8261059e565b91611e2b6040519384610542565b82523d5f602084013e565b606090565b519063ffffffff8216820361022957565b9190826040910312610229576103946020611e6684611dbd565b9301611e3b565b92915f8060609565ffffffffffff60405194602096638f82f93160e01b88880152602487015216604485015260448452611ea684610527565b6040519384611ed387820192639f86fd8560e01b845230602484015260406044840152606483019061023d565b0394611ee7601f1996878101835282610542565b51915afa50611f05611ef7611e0c565b838082518301019101612631565b9015611f5857808380611f1d93518301019101611e4c565b9290611f2857505050565b61039492939450611f4c604051948592830191909163ffffffff6020820193169052565b03908101835282610542565b809150519182156102295701fd5b5f9081526002602090815260408083206001600160a01b03909416835292905220610394929190612665565b60405190611f9f826104f9565b60606040838281528260208201520152565b906020828203126102295781356001600160401b03928382116102295701906060828203126102295760405192611fe7846104f9565b82358181116102295782611ffc9185016105b9565b8452602083013581811161022957826120169185016105b9565b602085015260408301359081116102295761203192016105b9565b604082015290565b60405190612046826104de565b60606020838281520152565b906020828203126102295781356001600160401b03928382116102295701906040828203126102295760405192612088846104de565b8235818111610229578261209d9185016105b9565b84526020830135908111610229576120b592016105b9565b602082015290565b8054821015610ffe575f5260205f2001905f90565b6120db81612e78565b6001600160d01b038116156121005760016120f692016120bd565b90549060031b1c90565b50505f90565b908160209103126102295761039490611e3b565b5f19810191908211611a0757565b91908203918211611a0757565b90600163ffffffff80931601918211611a0757565b9180511561222e578060208061216593518301019101612106565b916121708382612eb8565b92612181845165ffffffffffff1690565b9065ffffffffffff808516921682811461221557821191826121c0575b50506121ae576103949250613346565b5050602001516001600160d01b031690565b9091506121cd835461211a565b63ffffffff8316149182156121e6575b50505f8061219e565b61220d9192506122016121fb61093b92612135565b85612eb8565b5165ffffffffffff1690565b115f806121dd565b50505050602091909101516001600160d01b0316905090565b5061039491613346565b91909160408184031261022957803561225081610218565b9260208201356001600160401b0381116102295761039492016105b9565b90816020910312610229575161039481610218565b61228f91810190612238565b6040516302910f8b60e31b81526001600160a01b0392831660048201819052929160209182816024817f000000000000000000000000000000000000000000000000000000000000000088165afa908115610aca575f916123d0575b50156123be5781612320600492612300612f0c565b5f80546001600160a01b0319166001600160a01b03891617905586612f99565b94604051928380926313c085b760e11b82525afa918215610aca575f92612391575b5050161580612387575b612375575161058f9015155f805460ff60a01b191691151560a01b60ff60a01b16919091179055565b60405163d2420f5960e01b8152600490fd5b508051151561234c565b6123b09250803d106123b7575b6123a88183610542565b81019061226e565b5f80612342565b503d61239e565b6040516362df054560e01b8152600490fd5b6123e79150833d8511610f9757610f898183610542565b5f6122eb565b5f80516020613572833981519152600281541461240a5760029055565b604051633ee5aeb560e01b8152600490fd5b604051635daf681960e11b815260609190911c60048201526001600160a01b036020826024817f000000000000000000000000000000000000000000000000000000000000000085165afa918215610aca575f92612492575b503391160361248057565b60405163227bf64d60e01b8152600490fd5b6124ac91925060203d6020116123b7576123a88183610542565b905f612475565b90808210156124c0575090565b905090565b906040516124d2816104de565b915465ffffffffffff8116835260301c6020830152565b908154905f829160058411612572575b6125049350846131d8565b90811561256657612525906125188361211a565b905f5260205f20016124c5565b9161255f6125566125506020612541875165ffffffffffff1690565b9601516001600160d01b031690565b9361211a565b63ffffffff1690565b6001939291565b50505f905f905f905f90565b919261257d8161309a565b8103908111611a075761250493855f5265ffffffffffff808360205f20015416908516105f146125ae5750916124f9565b9291506125ba90611df1565b906124f9565b906125ca82612e78565b91805480156125eb575f1901906125e182826120bd565b611c3b575f905555565b634e487b7160e01b5f52603160045260245ffd5b65ffffffffffff90818111612612571690565b604490604051906306dfcc6560e41b8252603060048301526024820152fd5b9190916040818403126102295761264781611dbd565b9260208201516001600160401b03811161022957610394920161183a565b91805115612727578060208061268093518301019101612106565b9161268b8382613294565b9261269c845165ffffffffffff1690565b9065ffffffffffff808516921682811461271b57821191826126d2575b50506126c9576103949250613289565b50506020015190565b9091506126df835461211a565b63ffffffff8316149182156126f8575b50505f806126b9565b61271391925061220161270d61093b92612135565b85613294565b115f806126ef565b50505050506020015190565b5061039491613289565b906020828203126102295781516001600160401b03928382116102295701906040828203126102295760405192612767846104de565b8251818111610229578261277c91850161183a565b84526020830151908111610229576120b5920161183a565b90816020910312610229575190565b9081526001600160a01b03909116602082015265ffffffffffff90911660408201526080606082018190526103949291019061023d565b926127e3612039565b908051806129f0575b50506127f7426125ff565b5f54909490612810906108fb906001600160a01b031681565b93604051956327f843b560e11b875260209687816004818a5afa8015610aca576128449261093b925f926129d85750611a0c565b65ffffffffffff82169081109081156129c1575b8115612990575b50612984578560049560405196878092630ce9b79360e41b82525afa948515610aca576128b19587915f91612967575b50845190604051808099819463e02f693760e01b8352878b8a600486016127a3565b03916001600160a01b03165afa938415610aca57612923955f95612926575b5092612918859361291e9361291896869a61290f61035e836128fa875f52600260205260405f2090565b9060018060a01b03165f5260205260405f2090565b95015192611f66565b90612128565b6124b3565b91565b61291e929550612918949193612954612918928a3d8c11612960575b61294c8183610542565b810190612794565b969350939194506128d0565b503d612942565b61297e9150823d84116123b7576123a88183610542565b5f61288f565b5050505050505f905f90565b90506129ba61093b6129ae876128fa875f52600160205260405f2090565b5465ffffffffffff1690565b115f61285f565b90506129cf61093b426125ff565b81101590612858565b610abc9192508a3d8c11610ac357610ab48183610542565b612a039250602080918301019101612731565b5f806127ec565b919091805f52600160205265ffffffffffff80612a3a8560405f209060018060a01b03165f5260205260405f2090565b541690831611612a4957505050565b61058f92612a71915f52600160205260405f209060018060a01b03165f5260205260405f2090565b9065ffffffffffff1665ffffffffffff19825416179055565b9190825f526002602052612ae261035e612ab78360405f209060018060a01b03165f5260205260405f2090565b92612ac1426125ff565b955f52600260205260405f209060018060a01b03165f5260205260405f2090565b918201809211611a07576001810190815415612b86575b612b028161323a565b509490835495612b11846120d2565b5081612b71575b5015612b505750505f198301928311611a075761058f92612b38916120bd565b90919082549060031b91821b915f19901b1916179055565b61058f94612b6a926001600160d01b039091169190613447565b5050613323565b65ffffffffffff83811691161490505f612b18565b612b8f826132f6565b612af9565b60606020610394938184526001600160401b0381511682850152015191604080820152019061023d565b919360a093610394969565ffffffffffff938552600180871b031660208501526040840152166060820152816080820152019061023d565b92939060046020612c136108fb6108fb5f5460018060a01b031690565b604051630ce9b79360e41b815292839182905afa908115610aca5761110c91612c91915f91612ce0575b506001600160a01b031693612c50610591565b6001600160401b037f000000000000000000000000000000000000000000000000000000000000000016815290602082015260405192839160208301612b94565b823b15610229575f94612cbc86926040519889978896879563724ab0f760e11b875260048701612bbe565b03925af18015610aca57612ccd5750565b80612cda61058f92610514565b806102c9565b612cf9915060203d6020116123b7576123a88183610542565b5f612c3d565b65ffffffffffff9160446020925f60018060a01b038154166040519687958694631c9e38c760e21b865260048601521660248401525af18015610aca57612d435750565b612d5b9060203d6020116129605761294c8183610542565b50565b8115612d68570490565b634e487b7160e01b5f52601260045260245ffd5b92905f549060ff8260a01c16612d94575b5050505050565b6040516313c085b760e11b815291602090839060049082906001600160a01b03165afa918215610aca575f92612e51575b5060405163065c1e0360e01b6020820190815260248201969096526001600160a01b039091166044820152606481019390935265ffffffffffff9091166084830152612e1e8260a481015b03601f198101845283610542565b6202a15c5a10612e3f575f928380935192620249f0f1505f80808080612d8d565b604051632153f33560e21b8152600490fd5b612e1e9250612e71612e109160203d6020116123b7576123a88183610542565b9250612dc5565b805480612e855750505f90565b5f19918183810111611a07575f5260205f2001015460301c90565b60405190612ead826104de565b5f6020838281520152565b612edd91612ed791612ec8612ea0565b50612ed1612ea0565b506120bd565b506124c5565b65ffffffffffff81511690602060018060d01b039101511660405191612f02836104de565b8252602082015290565b612f146133d2565b612f1c6133d2565b60015f8051602061357283398151915255565b60405190612f3c826104be565b5f8252565b809103906060821261022957602060405192612f5c846104f9565b12610229576040908151612f6f816104be565b612f7882611dbd565b815283526020810151612f8a8161022d565b60208401520151604082015290565b90600490612fa5612f2f565b508051612fbc602092838080948301019101612f41565b6040516327f843b560e11b815290949093849182906001600160a01b03165afa918215610aca575f9261307b575b50820190612ffe825165ffffffffffff1690565b65ffffffffffff91821691161015613069576040820160038151106130575761304d613033613053935165ffffffffffff1690565b65ffffffffffff1665ffffffffffff196004541617600455565b51600555565b5190565b6040516354f778f360e01b8152600490fd5b6040516367d5e3df60e11b8152600490fd5b816130939293503d8411610ac357610ab48183610542565b905f612fea565b80156131d3578061316c61316561315b61315161314761313d61313361312960016103949a5f908b60801c806131c7575b508060401c806131ba575b508060201c806131ad575b508060101c806131a0575b508060081c80613193575b508060041c80613186575b508060021c80613179575b50821c613172575b811c1b613122818b612d5e565b0160011c90565b613122818a612d5e565b6131228189612d5e565b6131228188612d5e565b6131228187612d5e565b6131228186612d5e565b6131228185612d5e565b8092612d5e565b906124b3565b8101613115565b600291509101905f61310d565b600491509101905f613102565b600891509101905f6130f7565b601091509101905f6130ec565b602091509101905f6130e1565b604091509101905f6130d6565b9150506080905f6130cb565b505f90565b91905b8382106131e85750505090565b909192808316906001818518811c8301809311611a0757855f5265ffffffffffff808460205f20015416908516105f14613227575050925b91906131db565b909493508101809111611a075791613220565b80548061324b5750505f905f905f90565b5f19908082810111611a0757613268925f5260205f2001016124c5565b9065ffffffffffff82511691602060018060d01b0391015116906001929190565b906120db9082613346565b906132b7612ed76132d8926132a7612ea0565b506132b0612ea0565b50846120bd565b91600165ffffffffffff845116936020828060d01b039101511691016120bd565b905490604051926132e8846104de565b835260031b1c602082015290565b8054600160401b8110156104d957613313916001820181556120bd565b8154905f199060031b1b19169055565b90815491600160401b8310156104d95782612b3891600161058f950181556120bd565b908154905f829160058411613384575b6133619350846131d8565b8061336c5750505f90565b6133759061211a565b905f5260205f20015460301c90565b919261338f8161309a565b8103908111611a075761336193855f5265ffffffffffff808360205f20015416908516105f146133c0575091613356565b9291506133cc90611df1565b90613356565b60ff5f805160206135928339815191525460401c16156133ee57565b604051631afcd79f60e31b8152600490fd5b8054600160401b8110156104d95761341d916001820181556120bd565b611c3b57815160209092015160301b65ffffffffffff191665ffffffffffff909216919091179055565b8054929392919082156135485761347361346e6134638561211a565b835f5260205f200190565b6124c5565b90613484825165ffffffffffff1690565b65ffffffffffff84811691168110613536576134fa9460209488926134b261093b875165ffffffffffff1690565b036134fe57506134ec926134c86134d39261211a565b905f5260205f200190565b9065ffffffffffff82549181199060301b169116179055565b01516001600160d01b031690565b9190565b9150506135319161351e613510610591565b65ffffffffffff9093168352565b6001600160d01b03881682860152613400565b6134ec565b604051632520601d60e01b8152600490fd5b61356c9250613558613510610591565b6001600160d01b0385166020830152613400565b5f919056fe9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a264697066735822122066def236e3cb068f18d202c0ed5927514d7f8f51390f7bbba09b96397dfe793c64736f6c63430008190033","sourceMap":"3563:3596:89:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;-1:-1:-1;;;;;3563:3596:89;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;3563:3596:89;;;;;;;;-1:-1:-1;;3563:3596:89;;;;:::o;:::-;;;;;;-1:-1:-1;;3563:3596:89;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::o;:::-;;;;;;-1:-1:-1;;3563:3596:89;;;;;;1435:38:97;-1:-1:-1;;;;;3563:3596:89;;;;;;;;;;;;-1:-1:-1;;3563:3596:89;;;;;2936:47:97;:38;3563:3596:89;;;;;:::i;:::-;;;-1:-1:-1;3563:3596:89;2936:16:97;3563:3596:89;;;-1:-1:-1;3563:3596:89;;;;;;;;;;;;;;;;;2936:38:97;:47;:::i;:::-;3563:3596:89;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;-1:-1:-1;;3563:3596:89;;;;;;1788:109:97;3563:3596:89;;;;;:::i;:::-;;;-1:-1:-1;3563:3596:89;1788:109:97;3563:3596:89;;;-1:-1:-1;3563:3596:89;;;;;;;;;;;;;;;;;1788:109:97;3563:3596:89;;;;;;;;;;;;;;-1:-1:-1;;3563:3596:89;;;;;;;1374:6:97;3563:3596:89;;;;;;;;;-1:-1:-1;;3563:3596:89;;;;;;1528:51:97;-1:-1:-1;;;;;3563:3596:89;;;;;;;;;;;;-1:-1:-1;;3563:3596:89;;;;;;322:32:74;-1:-1:-1;;;;;3563:3596:89;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3563:3596:89;;;;;;;:::o;:::-;;:::i;:::-;;;;;;;-1:-1:-1;;;;;3563:3596:89;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;3563:3596:89;;;;;;;:::o;:::-;-1:-1:-1;;;;;3563:3596:89;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;3563:3596:89;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;3563:3596:89;;;;;;;:::o;:::-;;;;;;;;;;-1:-1:-1;;;;;3563:3596:89;;;;;;;:::o;:::-;;;;;;;:::i;:::-;:::o;:::-;;;;;;;:::i;:::-;-1:-1:-1;;;;;3563:3596:89;;;;;;-1:-1:-1;;3563:3596:89;;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;3563:3596:89;;;;;;;;;;;;;;:::o;:::-;;;;;;-1:-1:-1;;3563:3596:89;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;3563:3596:89;;;;2016:56:99;3563:3596:89;;;;;;;;:::i;:::-;;;-1:-1:-1;3563:3596:89;;;2016:9:99;3563:3596:89;;;;;-1:-1:-1;;;;;3563:3596:89;;2016:56:99;:::i;:::-;3563:3596:89;;;;;;;;;;;;;-1:-1:-1;;3563:3596:89;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3563:3596:89;;;;;;;;;;;;;;;:::o;:::-;;;;;;-1:-1:-1;;3563:3596:89;;;;-1:-1:-1;;;;;3563:3596:89;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;3563:3596:89;;;;;;;4301:16:26;3563:3596:89;;4726:16:26;;:34;;;;3563:3596:89;4805:1:26;4790:16;:50;;;;3563:3596:89;4855:13:26;:30;;;;3563:3596:89;4851:91:26;;;-1:-1:-1;;;;;;;;;;;3563:3596:89;;-1:-1:-1;;3563:3596:89;;;;;718:4:74;;4951:18:26;4979:67;;718:4:74;:::i;:::-;5066:101:26;;3563:3596:89;5066:101:26;-1:-1:-1;;;;;;;;;;;3563:3596:89;;-1:-1:-1;;;;3563:3596:89;;;;;-1:-1:-1;3563:3596:89;;5142:14:26;;3563:3596:89;;5142:14:26;3563:3596:89;4979:67:26;-1:-1:-1;;;;;;;;;;;3563:3596:89;;-1:-1:-1;;;;3563:3596:89;-1:-1:-1;;;3563:3596:89;;;718:4:74;:::i;4851:91:26:-;3563:3596:89;;-1:-1:-1;;;4908:23:26;;3563:3596:89;;4908:23:26;4855:30;4872:13;;;4855:30;;;4790:50;4818:4;4810:25;:30;;-1:-1:-1;4790:50:26;;4726:34;;;-1:-1:-1;4726:34:26;;3563:3596:89;;;;;;-1:-1:-1;;3563:3596:89;;;;;;3726:43;-1:-1:-1;;;;;3563:3596:89;;;;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;-1:-1:-1;;3563:3596:89;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;3563:3596:89;;;;;;;;;;;:::i;:::-;3217:103:29;;;;:::i;:::-;2123:10:97;;;:::i;:::-;3563:3596:89;;:::i;:::-;2666:16:99;;2662:105;;3563:3596:89;837:15:63;;819:34;837:15;819:34;:::i;:::-;2813:31:99;3563:3596:89;;;;;;;;2813:31:99;;;:::i;:::-;-1:-1:-1;3563:3596:89;;;;2847:27:99;;:13;;-1:-1:-1;;;;;3563:3596:89;2847:13:99;3563:3596:89;;-1:-1:-1;;;;;3563:3596:89;;;2847:27:99;3563:3596:89;;;;;;;;;;;;;;2847:29:99;;;;;;;;2794:82;2847:29;2813:63;2847:29;-1:-1:-1;2847:29:99;;;3563:3596:89;2813:63:99;;:::i;:::-;3563:3596:89;;;;2794:82:99;3563:3596:89;;;2794:82:99;;;:138;;;;;3563:3596:89;2777:223:99;;;3248:62:97;3019:133:99;3104:37;;3248:62:97;;;;:::i;:::-;3563:3596:89;;;3019:133:99;:::i;:::-;3166:11;;;3162:68;;3563:3596:89;3671:86:99;837:15:63;;;;3671:86:99;837:15:63;3262:31:99;837:15:63;819:34;837:15;819:34;:::i;:::-;3262:31:99;:::i;:::-;3563:3596:89;3317:13:99;3563:3596:89;;;;3347:308:99;3563:3596:89;;:::i;:::-;;;;-1:-1:-1;;;;;3563:3596:89;;;3379:266:99;;3563:3596:89;3379:266:99;;;3563:3596:89;;;;;;;3379:266:99;;3563:3596:89;;;;;3379:266:99;;3563:3596:89;-1:-1:-1;3563:3596:89;3379:266:99;;3563:3596:89;3347:308:99;:::i;:::-;3563:3596:89;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3563:3596:89;;;;;;;;;;3671:86:99;;;;3282:1:29;1805;-1:-1:-1;;;;;;;;;;;3563:3596:89;3716:283:29;3282:1;3563:3596:89;;;;;;;;;;;;3162:68:99;3563:3596:89;;-1:-1:-1;;;3200:19:99;;;2777:223;3563:3596:89;;-1:-1:-1;;;2964:25:99;;3563:3596:89;;2964:25:99;2794:138;837:15:63;;2896:36:99;819:34:63;837:15;819:34;:::i;2896:36:99:-;-1:-1:-1;2896:36:99;2794:138;;;2847:29;;;;;3563:3596:89;2847:29:99;3563:3596:89;2847:29:99;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;;:::i;2662:105::-;2718:38;;;;;;;;:::i;:::-;2662:105;;;;;3563:3596:89;;;;;;-1:-1:-1;;3563:3596:89;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;-1:-1:-1;;3563:3596:89;;;;;1795:13:99;3563:3596:89;;;;;;;;;;;;;-1:-1:-1;;3563:3596:89;;;;;;;;;:::i;:::-;449:5:87;-1:-1:-1;;;;;3563:3596:89;435:10:87;:19;431:71;;3563:3596:89;4136:60;3563:3596;;;;-1:-1:-1;3563:3596:89;4136:9;3563:3596;;;-1:-1:-1;3563:3596:89;4136:60;:::i;:::-;3563:3596;;;;;;;;;;;;;;;;;;;431:71:87;3563:3596:89;;-1:-1:-1;;;477:14:87;;3563:3596:89;;477:14:87;3563:3596:89;;;;;;-1:-1:-1;;3563:3596:89;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;3563:3596:89;;;;;;;;;;;:::i;:::-;3217:103:29;;;:::i;:::-;3563:3596:89;;:::i;:::-;;7493:16:99;7489:103;;3563:3596:89;-1:-1:-1;;3563:3596:89;;;-1:-1:-1;;;7607:48:99;;7644:10;7607:48;;;3563:3596:89;;;-1:-1:-1;;;;;3563:3596:89;;;;;;;;;;;;;;7607:48:99;7617:16;;;3563:3596:89;7607:48:99;;;;;;;-1:-1:-1;7607:48:99;;;3563:3596:89;7606:49:99;;7602:99;;-1:-1:-1;3563:3596:89;7764:35:99;;-1:-1:-1;;;;;3563:3596:89;7644:10:99;3563:3596:89;;-1:-1:-1;;7644:10:99;297:2:93;3563:3596:89;;267:46:93;;152:169;7764:35:99;7850:21;5260:30:91;7850:21:99;;3563:3596:89;;7850:9:99;3563:3596:89;;;;;;;7850:21:99;5260:30:91;:::i;:::-;-1:-1:-1;7900:801:99;;;;;7930:34;819::63;837:15;819:34;:::i;7930::99:-;3563:3596:89;;;;7930:34:99;;;;7984:27;:21;;3563:3596:89;;7850:9:99;3563:3596:89;;;;;;;7984:21:99;:27;:::i;:::-;;7926:225;8169:61;8182:48;8190:39;4928:20:91;8198:21:99;;3563:3596:89;;7850:9:99;3563:3596:89;;;;;;;8198:21:99;4928:20:91;:::i;8169:61:99:-;3563:3596:89;;;;8169:61:99;;;8165:336;;7926:225;7900:801;;;;;;8716:34;7900:801;8716:34;7900:801;;3563:3596:89;-1:-1:-1;;;;;3563:3596:89;;;;;;;;;;;;;8716:34:99;;;;3282:1:29;1805;-1:-1:-1;;;;;;;;;;;3563:3596:89;3716:283:29;3282:1;3563:3596:89;8165:336:99;8250:21;;;;;;;3563:3596:89;;7850:9:99;3563:3596:89;;;;;;;8250:21:99;3563:3596:89;;;;;;;;8299:34:99;;;;;;;;;;;;;;-1:-1:-1;8299:34:99;;;8165:336;3563:3596:89;;8336:22:99;3563:3596:89;;;;;;;;;;;8361:30:99;;;;;;;;;;8336:55;8167:38:61;8361:30:99;8716:34;8361:30;8299:92;8361:30;8716:34;8361:30;8298:130;8361:30;-1:-1:-1;8361:30:99;;;8165:336;3563:3596:89;;;8336:55:99;;:::i;:::-;3563:3596:89;;8299:92:99;:::i;:::-;8298:130;:::i;:::-;8167:38:61;;:::i;:::-;8165:336:99;;;;;;8361:30;;;;;;-1:-1:-1;8361:30:99;;;;;;:::i;:::-;;;;;8299:34;;;;;;;;;;;;;;:::i;:::-;;;;7926:225;8036:61;8049:48;8057:39;4928:20:91;8065:21:99;;3563:3596:89;;7850:9:99;3563:3596:89;;;;;;;8036:61:99;3563:3596:89;;;8036:61:99;7926:225;8032:119;3563:3596:89;;-1:-1:-1;;;8124:12:99;;3563:3596:89;;8124:12:99;7900:801;-1:-1:-1;3563:3596:89;;;;;;-1:-1:-1;;8535:23:99;;8531:81;;8626:21;;8716:34;8626:21;8167:38:61;8716:34:99;8626:21;;;3563:3596:89;;7850:9:99;3563:3596:89;;;;;;;8626:21:99;819:34:63;837:15;819:34;:::i;8167:38:61:-;7900:801:99;;;;8531:81;3563:3596:89;;-1:-1:-1;;;8585:12:99;;;7602:99;-1:-1:-1;3563:3596:89;;-1:-1:-1;;;7678:12:99;;;7607:48;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;7489:103;7544:37;;;;;;:::i;:::-;;7489:103;;;;3563:3596:89;;;;;;;;;;;;;1050:35:99;3563:3596:89;;;;;;1050:35:99;-1:-1:-1;3563:3596:89;;;;;;-1:-1:-1;3563:3596:89;:::o;:::-;;:::i;:::-;;;;;;-1:-1:-1;;3563:3596:89;;;;;;1050:35:99;3563:3596:89;1050:35:99;;;;;;;;:::i;:::-;-1:-1:-1;3563:3596:89;;;1050:35:99;;3563:3596:89;1050:35:99;;;3563:3596:89;1050:35:99;;;;3563:3596:89;;;;;;;-1:-1:-1;;;;;3563:3596:89;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;3563:3596:89;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;3563:3596:89;;;;-1:-1:-1;3563:3596:89;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;416:25:80;;;;477:31;416:25;;:::i;:::-;3563:3596:89;;;;;;;;;;477:31:80;;3563:3596:89;;;;;;;;;;;:::i;:::-;477:31:80;3563:3596:89;;477:31:80;;;;;;:::i;:::-;518:79;;;3563:3596:89;518:79:80;;3563:3596:89;;;;;;;;;:::i;:::-;;;:::i;:::-;;;-1:-1:-1;;3563:3596:89;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;-1:-1:-1;;;;;3563:3596:89;;;;;;;;;:::i;:::-;;;;;2692:73:97;:38;3563:3596:89;;;:::i;:::-;;;;;-1:-1:-1;3563:3596:89;2692:16:97;3563:3596:89;;;-1:-1:-1;3563:3596:89;;;;;;;;;;;;;;;;;2692:38:97;:73;:::i;3563:3596:89:-;;;;;3248:62:97;3563:3596:89;;;:::i;:::-;3248:62:97;;;;;:::i;:::-;3563:3596:89;;;;;;;;;;-1:-1:-1;;3563:3596:89;;;;;;;;;;;-1:-1:-1;;;;;3563:3596:89;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;:::i;:::-;3217:103:29;;;;:::i;:::-;3563:3596:89;;:::i;:::-;4024:16:99;;4020:105;;3563:3596:89;;;4153:13:99;3563:3596:89;4139:34:99;;;4135:94;;4270:25;;;:::i;:::-;3563:3596:89;;;;4330:18:99;;;;:::i;:::-;4153:13;4408:24;;3563:3596:89;;;;;;;;;;;;;4377:95:99;4434:37;;4377:95;;;:::i;:::-;3563:3596:89;4377:125:99;;:250;;;3563:3596:89;4377:309:99;;;3563:3596:89;4360:389:99;;4763:43;837:15:63;819:34;837:15;819:34;:::i;:::-;4763:43:99;:::i;:::-;-1:-1:-1;3563:3596:89;4809:27:99;;:13;;-1:-1:-1;;;;;3563:3596:89;4809:13:99;3563:3596:89;4809:27:99;3563:3596:89;;4809:29:99;3563:3596:89;;;;;;;;;;;4809:29:99;;;;;;;;;;-1:-1:-1;4809:29:99;;;3563:3596:89;;;;;4763:75:99;4759:131;;4994:16;;;3563:3596:89;;4994:16:99;;4945:140;;4994:16;;3563:3596:89;;-1:-1:-1;;;;;3563:3596:89;5038:37:99;;;4945:140;;:::i;:::-;5120:14;5111:41;5120:14;;;;3563:3596:89;5111:41:99;:::i;:::-;5166:18;;;5162:75;;3563:3596:89;;;;5247:78:99;;5335:24;3563:3596:89;;5335:24:99;;5725:145;;5335:24;;;;3563:3596:89;5335:24:99;5725:145;5335:24;;;;6024;5335;;;3563:3596:89;;;;;;;;;;;;;;5335:24:99;3563:3596:89;;;;5445:24:99;;3563:3596:89;-1:-1:-1;;;;;3563:3596:89;;;;;5445:24:99;;:::i;:::-;3563:3596:89;;;;5542:13:99;;3563:3596:89;;-1:-1:-1;;;;;3563:3596:89;5542:13:99;;:::i;:::-;3563:3596:89;;;;;;-1:-1:-1;;;;;3563:3596:89;;;;;;;;;;;:::i;:::-;;;;4809:29:99;5753:103;;3563:3596:89;5753:103:99;;;3563:3596:89;;5725:145:99;;;4809:29;5725:145;;3563:3596:89;;;;;;;;;;;;;;;;;;;;;;;;;;;5725:145:99;;3563:3596:89;;5725:145:99;;;;;;:::i;:::-;;:::i;:::-;5920:24;3563:3596:89;;;;;;;;5920:24:99;;:::i;:::-;3563:3596:89;;;-1:-1:-1;;;;;3563:3596:89;;;;;;;;;;;6024:24:99;;:::i;:::-;3563:3596:89;;;;;6065:39:99;;3563:3596:89;;6065:39:99;3282:1:29;1805;-1:-1:-1;;;;;;;;;;;3563:3596:89;3716:283:29;5247:78:99;3563:3596:89;;-1:-1:-1;;;5291:23:99;;3563:3596:89;;5291:23:99;5162:75;3563:3596:89;;-1:-1:-1;;;5207:19:99;;3563:3596:89;;5207:19:99;4759:131;3563:3596:89;;-1:-1:-1;;;4861:18:99;;3563:3596:89;;4861:18:99;4809:29;;;;;;;;;;;;;;:::i;:::-;;;;4360:389;3563:3596:89;;-1:-1:-1;;;4718:20:99;;3563:3596:89;;4718:20:99;4377:309;837:15:63;4647:39:99;819:34:63;837:15;819:34;:::i;4647:39:99:-;3563:3596:89;;;;;4647:39:99;4377:309;;:250;837:15:63;4522:105:99;:91;4553:20;819:34:63;837:15;819:34;:::i;:::-;4553:20:99;:::i;:::-;4575:37;;;;4522:91;;;:::i;:105::-;;;4377:250;;4135:94;3563:3596:89;;-1:-1:-1;;;4196:22:99;;3563:3596:89;;4196:22:99;4020:105;4076:38;;;;;;;;:::i;:::-;4020:105;;;;;3563:3596:89;;;;;;-1:-1:-1;;3563:3596:89;;;;;;;-1:-1:-1;;;;;404:28:74;3563:3596:89;;;;;;;;;;-1:-1:-1;;3563:3596:89;;;;;1221:37:99;3563:3596:89;;;;;;;;;;;;;-1:-1:-1;;3563:3596:89;;;;;;954:41:99;-1:-1:-1;;;;;3563:3596:89;;;;;;;;;;;;-1:-1:-1;;3563:3596:89;;;;;;-1:-1:-1;;;;;3563:3596:89;;;;2239:46:99;3563:3596:89;;;;;;;;:::i;:::-;819:34:63;837:15;819:34;:::i;:::-;3563:3596:89;;2239:46:99;:::i;:::-;3563:3596:89;;-1:-1:-1;;;;;3563:3596:89;;;;;;;;;;;;-1:-1:-1;;3563:3596:89;;;;;;;1271:7:97;3563:3596:89;;;;;;;;;-1:-1:-1;;3563:3596:89;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3217:103:29;;;:::i;:::-;3563:3596:89;;:::i;:::-;6308:16:99;;6304:99;;3563:3596:89;;;6431:13:99;3563:3596:89;6417:34:99;;;6413:94;;6548:25;;;:::i;:::-;3563:3596:89;6431:13:99;3563:3596:89;;6653:24:99;;3563:3596:89;;;;;;;;;;;6622:92:99;6679:34;;3563:3596:89;;;6622:92:99;;:::i;:::-;3563:3596:89;6741:29:99;;;:151;;;;;3563:3596:89;6724:223:99;;;;6961:10;:29;6957:80;;7051:40;819:34:63;837:15;819:34;:::i;7051:40:99:-;3563:3596:89;;;;;7051:40:99;;7047:95;;3563:3596:89;;;;7152:78:99;;3563:3596:89;;-1:-1:-1;;;;3563:3596:89;-1:-1:-1;;;3563:3596:89;;;6961:10:99;7280:33;;-1:-1:-1;7280:33:99;;3282:1:29;1805;-1:-1:-1;;;;;;;;;;;3563:3596:89;3716:283:29;7152:78:99;3563:3596:89;;-1:-1:-1;;;7196:23:99;;3563:3596:89;;7196:23:99;7047:95;3563:3596:89;;-1:-1:-1;;;7114:17:99;;3563:3596:89;;7114:17:99;6957:80;3563:3596:89;;-1:-1:-1;;;7013:13:99;;3563:3596:89;;7013:13:99;6724:223;3563:3596:89;;-1:-1:-1;;;6924:12:99;;3563:3596:89;;6924:12:99;6741:151;6790:102;837:15:63;;;6790:88:99;837:15:63;6843:34:99;6821:20;819:34:63;837:15;819:34;:::i;6821:20:99:-;6843:34;;;6790:88;;:::i;:102::-;;6741:151;;;;6304:99;6357:35;;;;;;;:::i;:::-;6304:99;;;;3563:3596:89;;;;;;-1:-1:-1;;3563:3596:89;;;;;;;;-1:-1:-1;;;;;3563:3596:89;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;3563:3596:89;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;;;;3563:3596:89;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;4649:553::-;3563:3596;;-1:-1:-1;;;4939:105:89;;-1:-1:-1;;;;;3563:3596:89;;;4939:105;;;3563:3596;;;;;;;;;;;;;;;;;;;;;;;;;4649:553;4939:105;3563:3596;;;;;4939:105;3563:3596;4956:18;-1:-1:-1;;;;;3563:3596:89;4939:105;;;;;;;;;;;4649:553;3563:3596;;;5055:141;;4649:553;:::o;5055:141::-;5112:73;3563:3596;;;5112:73;3563:3596;;;;;;;:::i;:::-;;;;;5112:73;;;3563:3596;5112:73;;;:::i;4939:105::-;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;6788:369;;;6975:44;6788:369;3563:3596;6975:44;;:::i;:::-;3563:3596;;7030:121;;6788:369;:::o;1876:205:99:-;-1:-1:-1;3563:3596:89;;;2016:9:99;3563:3596:89;;;;;-1:-1:-1;;;;;3563:3596:89;2016:56:99;;1876:205;;2016:56;:::i;:::-;3563:3596:89;1876:205:99;:::o;3563:3596:89:-;;;;;;;;;;;;;;;;;-1:-1:-1;;3563:3596:89;;;;;;;:::o;:::-;;:::i;:::-;;;;;;;;;;;;;;;:::o;6172:610::-;6466:55;6172:610;;;;6370:51;3563:3596;6370:51;;;;:::i;:::-;837:15:63;6500:20:89;819:34:63;837:15;819:34;:::i;6466:55:89:-;3563:3596;;6536:30;;;:64;;;6172:610;6532:244;;6172:610;;:::o;6532:244::-;3563:3596;;;;;;6623:142;3563:3596;;;;;;;:::i;:::-;;;6651:100;;;3563:3596;;;;;6623:142;;;6651:100;6623:142;;;3563:3596;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;3563:3596:89;;;;;;:::i;6536:64::-;3563:3596;;;6570:30;;6536:64;;3563:3596;;;;;;;:::i;:::-;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;;;;3563:3596:89;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;;;;:::o;:::-;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;3317:13:99;3563:3596:89;-1:-1:-1;;;3563:3596:89;;;;;;;;;;3317:13:99;3563:3596:89;;:::i;:::-;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;3563:3596:89;-1:-1:-1;;;;;3563:3596:89;;;;;;;;;;;;;;;;3317:13:99;;3563:3596:89;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;3563:3596:89;;;;;;-1:-1:-1;;;3563:3596:89;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;5208:958::-;;;;;5643:105;3563:3596;5435:51;;;;;;:::i;:::-;837:15:63;5643:105:89;5531:55;5565:20;819:34:63;837:15;819:34;:::i;5565:20:89:-;5531:55;;;:::i;:::-;3563:3596;;-1:-1:-1;;;5643:105:89;;-1:-1:-1;;;;;3563:3596:89;;;5643:105;;;3563:3596;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5643:105;;3563:3596;5660:18;-1:-1:-1;;;;;3563:3596:89;5643:105;;;;;;;;;;;5208:958;3563:3596;;;5763:30;;;:64;;;5208:958;5763:98;;;;5208:958;5759:401;;5208:958;;;:::o;5759:401::-;5884:265;3563:3596;;;;5884:265;3563:3596;;;;:::i;:::-;;;;5912:223;;;3563:3596;;5912:223;;3563:3596;;;5884:265;;;5912:223;5884:265;;;:::i;5763:98::-;3563:3596;;;5831:30;;5763:98;;:64;3563:3596;;;5797:30;;5763:64;;5643:105;;;;;;;;;;;;;;:::i;:::-;;;;;3563:3596;;;;;;;;;;:::o;:::-;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::o;:::-;;3149:1:91;3563:3596:89;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;-1:-1:-1;3563:3596:89;;;;:::o;:::-;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;:::i;4209:434::-;;;-1:-1:-1;4307:12:89;3563:3596;;;;;4435:78;;;;;;;;;;;;;3563:3596;;;;;;;4435:78;;;;;:::i;:::-;3563:3596;;716:88:87;;3563:3596:89;716:88:87;;;;;;;;;783:4;4435:78:89;716:88:87;;3563:3596:89;;;;;;;;;;;:::i;:::-;716:88:87;3563:3596:89;716:88:87;3563:3596:89;;716:88:87;;;;;;;;:::i;:::-;698:107;;;;;857:45;698:107;;:::i;:::-;3563:3596:89;;;;857:45:87;;;;;;:::i;:::-;916:8;;912:175;;3563:3596:89;;;4361:204;3563:3596;;4361:204;;;;;;:::i;:::-;4576:61;;;;4209:434;;;:::o;4576:61::-;4609:17;3563:3596;;;;4609:17;3563:3596;;4609:17;;;;;3563:3596;;;;;;;;;;;;4609:17;;;;;;;;;:::i;912:175:87:-;3563:3596:89;;;;944:22:87;;;940:36;;990:87;;2505:267:97;-1:-1:-1;3563:3596:89;;;2692:16:97;3563:3596:89;;;;;;;;-1:-1:-1;;;;;3563:3596:89;;;;;;;;;2692:73:97;;2505:267;;2692:73;:::i;3563:3596:89:-;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;;;;3563:3596:89;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;;;;3563:3596:89;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::o;:::-;;;;;;;;-1:-1:-1;3563:3596:89;;-1:-1:-1;3563:3596:89;;;-1:-1:-1;3563:3596:89;:::o;10580:184:91:-;10689:20;;;:::i;:::-;-1:-1:-1;;;;;3563:3596:89;;10726:7:91;3563:3596:89;;10736:12:91;:17;:12;;:17;:::i;:::-;3563:3596:89;;;;;;10580:184:91;:::o;10726:31::-;;;10689:11;10580:184;:::o;3563:3596:89:-;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;3563:3596:89;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;:::o;1818:604:91:-;;3563:3596:89;;1946:17:91;1942:83;;3563:3596:89;2049:27:91;3563:3596:89;2049:27:91;3563:3596:89;;2049:27:91;;;;;;:::i;:::-;2120:14;;;;;:::i;:::-;3563:3596:89;;;;;;;;;;;;;;;;2148:22:91;;;2144:77;;2235:21;-1:-1:-1;2235:84:91;;;;1818:604;2231:139;;;;1425:34;;;;:::i;2231:139::-;-1:-1:-1;;2049:27:91;2342:17;3563:3596:89;-1:-1:-1;;;;;3563:3596:89;;:::o;2235:84:91:-;3563:3596:89;;;2269:16:91;3563:3596:89;;2269:16:91;:::i;:::-;3563:3596:89;;;2261:24:91;:57;;;;;2235:84;;;;;;;2261:57;2289:29;2298:8;;;2289:18;2298:8;2289:23;2298:8;;:::i;:::-;2289:18;;:::i;:::-;3563:3596:89;;;;;2289:29:91;;2261:57;;;;2144:77;-1:-1:-1;;;;2049:27:91;2193:17;;;;3563:3596:89;-1:-1:-1;;;;;3563:3596:89;;-1:-1:-1;3563:3596:89;:::o;1942:83:91:-;1425:34;;;;:::i;3563:3596:89:-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;3563:3596:89;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;6491:564:97:-;6614:34;6491:564;6614:34;;;;:::i;:::-;3563:3596:89;;-1:-1:-1;;;6664:41:97;;-1:-1:-1;;;;;3563:3596:89;;;6664:41:97;;;3563:3596:89;;;;;6664:41:97;;;3563:3596:89;;;6674:13:97;3563:3596:89;;6664:41:97;;;;;;;-1:-1:-1;6664:41:97;;;6491:564;6663:42;;6659:90;;2540:111:29;6850:27:97;6664:41;2540:111:29;;;:::i;:::-;-1:-1:-1;3563:3596:89;;-1:-1:-1;;;;;;3563:3596:89;-1:-1:-1;;;;;3563:3596:89;;;;;6850:27:97;;:::i;:::-;3563:3596:89;;;;;;;;;;6892:23:97;;;;;;;;;-1:-1:-1;6892:23:97;;;6491:564;3563:3596:89;;;6892:37:97;:64;;;6491:564;6888:112;;3563:3596:89;7010:38:97;;3563:3596:89;;-1:-1:-1;3563:3596:89;;-1:-1:-1;;;;3563:3596:89;;;;;;-1:-1:-1;;;3563:3596:89;;;;;;;;6888:112:97;3563:3596:89;;-1:-1:-1;;;6979:10:97;;6664:41;;6979:10;6892:64;-1:-1:-1;3563:3596:89;;;;6892:64:97;;:23;;;;;;-1:-1:-1;6892:23:97;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;6659:90;3563:3596:89;;-1:-1:-1;;;6728:10:97;;6664:41;;6728:10;6664:41;;;;;;;;;;;;;;:::i;:::-;;;;3326:384:29;-1:-1:-1;;;;;;;;;;;1847:1:29;3563:3596:89;;3526:20:29;3522:88;;1847:1;3563:3596:89;;3326:384:29:o;3522:88::-;3563:3596:89;;-1:-1:-1;;;3569:30:29;;;;;4451:257:97;3563:3596:89;;-1:-1:-1;;;4546:86:97;;467:2:93;3563:3596:89;;;;4546:86:97;;;3563:3596:89;-1:-1:-1;;;;;4546:86:97;3563:3596:89;;;4572:26:97;3563:3596:89;;4546:86:97;;;;;;;-1:-1:-1;4546:86:97;;;4451:257;4636:10;;3563:3596:89;;4546:100:97;4542:160;;4451:257::o;4542:160::-;3563:3596:89;;-1:-1:-1;;;4669:22:97;;4546:86;;4669:22;4546:86;;;;;;;;;;;;;;;:::i;:::-;;;;;2557:104:58;;2641:5;;;;;;:13;2557:104;:::o;2641:13::-;;;2557:104;:::o;3563:3596:89:-;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::o;2666:855:91:-;;3563:3596:89;;2880:15:91;2838:11;2905:18;2938:7;2944:1;2938:7;;2934:241;;2666:855;3199:60;;;;;:::i;:::-;3274:8;;;3270:62;;3563:3596:89;3430:7:91;;;;:::i;:::-;13267:109;2838:11;13267:109;;2838:11;13267:109;;3563:3596:89;:::i;:::-;;3498:15:91;3505:7;3563:3596:89;13267:109:91;3563:3596:89;;;;;;;;3479:17:91;;3563:3596:89;-1:-1:-1;;;;;3563:3596:89;;;;3505:7:91;;:::i;:::-;3563:3596:89;;;;3498:15:91;3436:1;;3448:66;;2666:855::o;3270:62::-;3298:23;;2838:11;3298:23;2838:11;3298:23;2838:11;3298:23;2838:11;3298:23;:::o;2934:241::-;2981:14;;;;;:::i;:::-;3563:3596:89;;;;;;;3199:60:91;13267:109;;2838:11;13267:109;3563:3596:89;13267:109:91;;;2838:11;13267:109;;3563:3596:89;;;;;3013:55:91;3009:156;3563:3596:89;;;3088:10:91;3009:156;2934:241;;3009:156;3143:7;;;;;;:::i;:::-;3009:156;2934:241;;5905:168;;6006:20;;;:::i;:::-;3563:3596:89;;;;;;;-1:-1:-1;;3563:3596:89;;;;;;:::i;:::-;;;;;;;5905:168:91:o;3563:3596:89:-;;;;;;;;;;;;14291:213:59;3563:3596:89;14369:24:59;;;;14365:103;;3563:3596:89;14291:213:59;:::o;14365:103::-;3563:3596:89;;;;14416:41:59;;;;;;14447:2;14416:41;;;3563:3596:89;;;;;14416:41:59;3563:3596:89;;;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;3563:3596:89;;;;;;;;:::i;7558:604:91:-;;3563:3596:89;;7686:17:91;7682:83;;3563:3596:89;7789:27:91;3563:3596:89;7789:27:91;3563:3596:89;;7789:27:91;;;;;;:::i;:::-;7860:14;;;;;:::i;:::-;3563:3596:89;;;;;;;;;;;;;;;;7888:22:91;;;7884:77;;7975:21;-1:-1:-1;7975:84:91;;;;7558:604;7971:139;;;;8127:28;;;;:::i;7971:139::-;8082:17;;7789:27;8082:17;3563:3596:89;8075:24:91;:::o;7975:84::-;3563:3596:89;;;8009:16:91;3563:3596:89;;8009:16:91;:::i;:::-;3563:3596:89;;;8001:24:91;:57;;;;;7975:84;;;;;;;8001:57;8029:29;8038:8;;;8029:18;8038:8;8029:23;8038:8;;:::i;:::-;8029:18;;:::i;:29::-;;8001:57;;;;7884:77;7933:17;;;;;7789:27;7933:17;3563:3596:89;7926:24:91;:::o;7682:83::-;7726:28;;;;:::i;3563:3596:89:-;;;;;;;;;;;-1:-1:-1;;;;;3563:3596:89;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;3563:3596:89;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;3323:1122:97:-;;3563:3596:89;;:::i;:::-;;;;3608:16:97;3604:109;;3323:1122;837:15:63;;819:34;837:15;819:34;:::i;:::-;-1:-1:-1;3563:3596:89;;;;3778:27:97;;:13;;-1:-1:-1;;;;;3563:3596:89;3778:13:97;3563:3596:89;3778:27:97;3563:3596:89;;;;;;;3778:29:97;;;;;;;;;;;;;;;3740:67;3778:29;3759:48;3778:29;-1:-1:-1;3778:29:97;;;3759:48;;:::i;3740:67::-;3563:3596:89;;;3740:67:97;;;:107;;;;;3323:1122;3740:197;;;;3323:1122;3723:263;;;3563:3596:89;3778:29:97;3563:3596:89;;;;;;;;;;4025:25:97;;;;;;;;;4010:143;4025:25;;;-1:-1:-1;4025:25:97;;;3323:1122;4113:30;;;3563:3596:89;;;;;;;;;;;4010:143:97;;;;;3778:29;4010:143;;;:::i;:::-;;;-1:-1:-1;;;;;3563:3596:89;4010:143:97;;;;;;;4181:257;4010:143;-1:-1:-1;4010:143:97;;;3323:1122;3996:157;;4293:102;3996:157;;4233:162;3996:157;4207:231;3996:157;;2936:28;:47;:38;:28;;;3563:3596:89;;2936:16:97;3563:3596:89;;;;;;;2936:28:97;3563:3596:89;;;;;;;;;;;;;;;;2936:47:97;4351:43;;;4293:102;;:::i;:::-;4233:162;;:::i;:::-;4207:231;:::i;4181:257::-;3323:1122;:::o;4010:143::-;4233:162;4010:143;;;4207:231;4010:143;;;;4293:102;4010:143;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;;;;;4025:25;;;;;;;;;;;;;;:::i;:::-;;;;3723:263;3962:13;;;;;;-1:-1:-1;3962:13:97;-1:-1:-1;3962:13:97;:::o;3740:197::-;3886:41;;3867:70;3886:51;;:41;;;3563:3596:89;;3886:29:97;3563:3596:89;;;;;;;3886:51:97;3563:3596:89;;;;;3867:70:97;-1:-1:-1;3740:197:97;;;:107;837:15:63;;3811:36:97;819:34:63;837:15;819:34;:::i;3811:36:97:-;;;;3740:107;;;3778:29;;;;;;;;;;;;;;;:::i;3604:109::-;3662:40;;;;;;;;;;;;:::i;:::-;3604:109;;;;4714:335;;;;3563:3596:89;-1:-1:-1;3563:3596:89;4876:29:97;3563:3596:89;;;;4876:51:97;3563:3596:89;;-1:-1:-1;3563:3596:89;;;;;;;;;;;;;;;;;4876:51:97;3563:3596:89;;;;;-1:-1:-1;4872:171:97;;4714:335;;;:::o;4872:171::-;4962:70;3563:3596:89;4962:51:97;3563:3596:89;-1:-1:-1;3563:3596:89;4876:29:97;3563:3596:89;;;-1:-1:-1;3563:3596:89;;;;;;;;;;;;;;;;;4962:51:97;3563:3596:89;;;;;;;;;;;;5055:221:97;;;3563:3596:89;-1:-1:-1;3563:3596:89;5160:16:97;3563:3596:89;;2936:47:97;:38;5160;3563:3596:89;;-1:-1:-1;3563:3596:89;;;;;;;;;;;;;;;;;5160:38:97;837:15:63;819:34;837:15;819:34;:::i;:::-;3563:3596:89;-1:-1:-1;3563:3596:89;5160:16:97;3563:3596:89;;;-1:-1:-1;3563:3596:89;;;;;;;;;;;;;;;;;2936:47:97;3563:3596:89;;;;;;;;6360:12:91;;;3563:3596:89;;;6360:24:91;6356:75;;5055:221:97;6474:30:91;;;:::i;:::-;3563:3596:89;;;;;6578:12:91;;;;:::i;:::-;;6604:24;;;5055:221:97;-1:-1:-1;6600:188:91;;;-1:-1:-1;;;;3563:3596:89;;;;;;;6644:29:91;:21;;;;:::i;:::-;:29;3563:3596:89;;;;;;;;;;;;;;;;;;;;;6600:188:91;6753:24;;8167:38:61;;-1:-1:-1;;;;;3563:3596:89;;;;;8167:38:61;:::i;:::-;6753:24:91;;;:::i;6604:::-;3563:3596:89;;;;;;6614:14:91;;-1:-1:-1;6604:24:91;;;6356:75;6400:20;;;:::i;:::-;6356:75;;3563:3596:89;;;;;;;;-1:-1:-1;;;;;3563:3596:89;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;5282:431:97:-;;;;5487:25;;:23;:13;3563:3596:89;5494:5:97;3563:3596:89;;;;;;;;;5487:23:97;3563:3596:89;;-1:-1:-1;;;5487:25:97;;3563:3596:89;;;;;5487:25:97;;;;;;;5631:65;5487:25;5631:65;5487:25;5494:5;5487:25;;;5282:431;-1:-1:-1;;;;;;3563:3596:89;;;;:::i;:::-;-1:-1:-1;;;;;5677:4:97;3563:3596:89;;;5677:4:97;5487:25;5642:53;;3563:3596:89;;;5631:65:97;;;5487:25;5631:65;;;:::i;:::-;5472:234;;;;;5494:5;3563:3596:89;5472:234:97;3563:3596:89;;;;;;;;;;;;;;5472:234:97;;5487:25;5472:234;;;:::i;:::-;;;;;;;;;;;5282:431;:::o;5472:234::-;;;;;;:::i;:::-;;;:::i;5487:25::-;;;;;;;;;;;;;;:::i;:::-;;;;5719:137;3563:3596:89;5719:137:97;3563:3596:89;5802:47:97;5719:137;5809:5;3563:3596:89;;;;;;;;;;;;;;;;;;5802:47:97;;;;;3563:3596:89;;;;;;5802:47:97;;;;;;;;5719:137;:::o;5802:47::-;;;;;;;;;;;;;:::i;:::-;;5719:137::o;3563:3596:89:-;;;;;;;:::o;:::-;;;;;;;;;;;;5862:623:97;;;5988:12;3563:3596:89;;;;;;;5984:495:97;;5862:623;;;;;;:::o;5984:495::-;3563:3596:89;;-1:-1:-1;;;6033:22:97;;3563:3596:89;6033:22:97;;3563:3596:89;;6033:22:97;;3563:3596:89;;-1:-1:-1;;;;;3563:3596:89;6033:22:97;;;;;;;5988:12;6033:22;;;5984:495;-1:-1:-1;3563:3596:89;;-1:-1:-1;;;6033:22:97;6094:81;;;;;;;;3563:3596:89;;;;-1:-1:-1;;;;;3563:3596:89;;;;;;;;;;;;;;;;;;;;;;6094:81:97;3563:3596:89;;;;6094:81:97;;3563:3596:89;;6094:81:97;;;;;;:::i;:::-;3563:3596:89;6194:9:97;:55;6190:124;;5988:12;6328:141;;;;;;1271:7;6328:141;;5984:495;;;;;;;6190:124;3563:3596:89;;-1:-1:-1;;;6276:23:97;;6033:22;;6276:23;6033:22;6094:81;6033:22;;;6094:81;6033:22;;;;;;;;;;;:::i;:::-;;;;;10167:206:61;3563:3596:89;;10303:8:61;;;:63;;10262:17;10167:206;:::o;10303:63::-;3563:3596:89;;;;;;;;;;10262:17:61;13267:109:91;;10262:17:61;13267:109:91;;;3563:3596:89;;;10167:206:61;:::o;3563:3596:89:-;;;;;;;:::i;:::-;-1:-1:-1;3563:3596:89;;;;;;;:::o;5573:258:91:-;3563:3596:89;5573:258:91;11308:22:61;5573:258:91;3563:3596:89;;:::i;:::-;;;;:::i;:::-;;11308:22:61;:::i;:::-;3563:3596:89;;:::i;:::-;;;;;;5805:17:91;3563:3596:89;;;;;5805:17:91;;3563:3596:89;;;;;;;;:::i;:::-;;;5805:17:91;5759:65;;3563:3596:89;5573:258:91;:::o;6893:76:26:-;;;:::i;:::-;;;:::i;:::-;1805:1:29;-1:-1:-1;;;;;;;;;;;3563:3596:89;6893:76:26:o;3563:3596:89:-;;;;;;;:::i;:::-;-1:-1:-1;3563:3596:89;;:::o;:::-;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;:::o;8763:604:99:-;;8969:30;8763:604;3563:3596:89;;:::i;:::-;;;;8905:30:99;;;;;;;;;;;;;:::i;:::-;3563:3596:89;;-1:-1:-1;;;8969:30:99;;3563:3596:89;;;;;;;;-1:-1:-1;;;;;3563:3596:89;8969:30:99;;;;;;;;;;;8763:604;9013:19;;;3563:3596:89;;;;;;;;;;;;;;;9013:36:99;;9009:95;;3563:3596:89;9118:29:99;;9150:1;3563:3596:89;;9118:33:99;9114:102;;9226:34;3563:3596:89;9271:54:99;3563:3596:89;;;;;;;;;;;8969:30:99;3563:3596:89;;;8969:30:99;3563:3596:89;;9226:34:99;3563:3596:89;9271:54:99;3563:3596:89;;9271:54:99;9343:17;8763:604;:::o;9114:102::-;3563:3596:89;;-1:-1:-1;;;9174:31:99;;8969:30;;9174:31;9009:95;3563:3596:89;;-1:-1:-1;;;9072:21:99;;8969:30;;9072:21;8969:30;;;;;;;;;;;;;;;:::i;:::-;;;;;8587:1642:58;8658:6;;8654:45;;9401:7;10201:10;10142:26;10093;10044;9995;9946;9897;9848;3563:3596:89;10189:23:58;9401:7;8663:1;3563:3596:89;;;;10826:16:58;10822:99;;8587:1642;3563:3596:89;;;;10938:15:58;10934:96;;8587:1642;3563:3596:89;;;;11047:15:58;11043:96;;8587:1642;3563:3596:89;;;;11156:15:58;11152:96;;8587:1642;3563:3596:89;;;;11265:14:58;11261:93;;8587:1642;3563:3596:89;;;;11371:14:58;11367:93;;8587:1642;3563:3596:89;;;;11477:14:58;11473:93;;8587:1642;3563:3596:89;;;11579:64:58;;8587:1642;3563:3596:89;;;9858:10:58;;;;:::i;:::-;3563:3596:89;;;;;9848:26:58;9907:10;;;;:::i;9897:26::-;9956:10;;;;:::i;9946:26::-;10005:10;;;;:::i;9995:26::-;10054:10;;;;:::i;10044:26::-;10103:10;;;;:::i;10093:26::-;10152:10;;;;:::i;10142:26::-;10201:10;;;:::i;:::-;10189:23;;:::i;11579:64::-;3563:3596:89;;11579:64:58;;11473:93;3563:3596:89;11511:11:58;;3563:3596:89;;11473:93:58;;;;11367;3563:3596:89;11405:11:58;;3563:3596:89;;11367:93:58;;;;11261;3563:3596:89;11299:11:58;;3563:3596:89;;11261:93:58;;;;11152:96;3563:3596:89;11191:12:58;;3563:3596:89;;11152:96:58;;;;11043;3563:3596:89;11082:12:58;;3563:3596:89;;11043:96:58;;;;10934;3563:3596:89;10973:12:58;;3563:3596:89;;10934:96:58;;;;10822:99;10862:13;;;3563:3596:89;10822:99:58;;;;8654:45;8680:8;8663:1;8680:8;:::o;12497:447:91:-;;;12694:10;;;;;;12926:11;;;12497:447;:::o;12687:230::-;2900:5:58;;;;;;3563:3596:89;;2910:5:58;;;3563:3596:89;;;;;;;;;13267:109:91;-1:-1:-1;13267:109:91;3563:3596:89;13267:109:91;;;-1:-1:-1;13267:109:91;;3563:3596:89;;;;;-1:-1:-1;12771:136:91;3563:3596:89;;;12830:10:91;;12771:136;;12687:230;;;;12771:136;3563:3596:89;;;;;;;;;;;12771:136:91;;;10552:388:61;3563:3596:89;;10728:8:61;;;10752:20;;10690:17;10752:20;10690:17;10752:20;10690:17;10752:20;:::o;10724:210::-;3563:3596:89;;;;;;;;;;;13267:109:91;10690:17:61;13267:109:91;;10690:17:61;13267:109:91;;;3563:3596:89;:::i;:::-;;;;;;;13267:109:91;3563:3596:89;;;;;10911:11:61;;3563:3596:89;;10886:37:61;10870:1;10886:37;;;:::o;6999:207:91:-;;7117:34;6999:207;7117:34;;:::i;11486:272::-;;3563:3596:89;11308:22:61;11718:31:91;11486:272;3563:3596:89;;:::i;:::-;;;;:::i;:::-;;11308:22:61;;:::i;3563:3596:89:-;;11718:12:91;3563:3596:89;;;;;11731:17:91;3563:3596:89;;;;;11731:17:91;;3563:3596:89;;11718:12:91;;:31;:::i;:::-;3563:3596:89;;;;;;;;;:::i;:::-;;;;;;11731:17:91;11672:79;;3563:3596:89;11486:272:91;:::o;3563:3596:89:-;;;-1:-1:-1;;;3563:3596:89;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::o;:::-;;;;;-1:-1:-1;;;3563:3596:89;;;;;;;;;;;;;;;:::i;9441:606:61:-;;3563:3596:89;;9594:15:61;9559:17;9619:18;9652:7;9658:1;9652:7;;9648:234;;9441:606;9906:53;;;;;:::i;:::-;9977:8;;;:63;;9559:17;9441:606;:::o;9977:63::-;10025:7;;;:::i;:::-;13267:109:91;9559:17:61;13267:109:91;;9559:17:61;13267:109:91;;3563:3596:89;;;9441:606:61;:::o;9648:234::-;9695:14;;;;;:::i;:::-;3563:3596:89;;;;;;;9906:53:61;13267:109:91;;9559:17:61;13267:109:91;3563:3596:89;13267:109:91;;;9559:17:61;13267:109:91;;3563:3596:89;;;;;9727:48:61;9723:149;3563:3596:89;;;9795:10:61;9723:149;9648:234;;9723:149;9850:7;;;;;;:::i;:::-;9723:149;9648:234;;7084:141:26;3563:3596:89;-1:-1:-1;;;;;;;;;;;3563:3596:89;;;;7150:18:26;7146:73;;7084:141::o;7146:73::-;3563:3596:89;;-1:-1:-1;;;7191:17:26;;;;;3563:3596:89;;;-1:-1:-1;;;3563:3596:89;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;3563:3596:89;;;;;;;;;;;:::o;11513:870:61:-;3563:3596:89;;11513:870:61;;;3563:3596:89;11513:870:61;11672:7;;;;3563:3596:89;11775:28:61;11795:7;;;:::i;:::-;11775:28;13267:109:91;;;;;;13089:293;;11775:28:61;3563:3596:89;:::i;:::-;;;;;;;;;;;;;;;;11877:15:61;-1:-1:-1;11873:91:61;;3563:3596:89;;12233:11:61;3563:3596:89;;;12027:16:61;3563:3596:89;;;;;;;12027:16:61;;;;12083:7;12063:43;12083:7;;12063:28;12083:7;;:::i;:::-;12063:28;13267:109:91;;;;;;13089:293;;12063:28:61;3563:3596:89;;;;;;;;;;;;;;;;;12063:43:61;12233:11;3563:3596:89;-1:-1:-1;;;;;3563:3596:89;;;;12225:27:61;;:::o;12023:189::-;3563:3596:89;;;12145:52:61;3563:3596:89;12155:41:61;3563:3596:89;;:::i;:::-;;;;;;;;12155:41:61;-1:-1:-1;;;;;3563:3596:89;;12155:41:61;;;3563:3596:89;12145:52:61;:::i;:::-;12023:189;;11873:91;3563:3596:89;;-1:-1:-1;;;11919:30:61;;;;;11668:709;12283:52;3563:3596:89;;12293:41:61;3563:3596:89;;:::i;12293:41:61:-;-1:-1:-1;;;;;3563:3596:89;;12293:41:61;;;3563:3596:89;12145:52:61;:::i;12283:::-;11678:1;12349:17;;:::o","linkReferences":{},"immutableReferences":{"64520":[{"start":1147,"length":32}],"64523":[{"start":5510,"length":32},{"start":11354,"length":32}],"69080":[{"start":2918,"length":32}],"69710":[{"start":2054,"length":32},{"start":6420,"length":32},{"start":7433,"length":32}],"72304":[{"start":744,"length":32},{"start":8890,"length":32}],"72307":[{"start":1079,"length":32},{"start":9284,"length":32}],"73037":[{"start":3192,"length":32},{"start":5596,"length":32}]}},"methodIdentifiers":{"BASE_SLASHER_HINTS()":"457821b7","BURNER_GAS_LIMIT()":"d5c24e1a","BURNER_RESERVE()":"2964f8dc","FACTORY()":"2dd31000","NETWORK_MIDDLEWARE_SERVICE()":"2c9d45b3","NETWORK_REGISTRY()":"c0cd7c3e","TYPE()":"bb24fe8a","VAULT_FACTORY()":"103f2907","cumulativeSlash(bytes32,address)":"1a2be2c4","cumulativeSlashAt(bytes32,address,uint48,bytes)":"aa8e6489","executeSlash(uint256,bytes)":"b94c386e","executeSlashHints(address,bytes32,address,uint48)":"69f78920","initialize(bytes)":"439fab91","isBurnerHook()":"34d098ea","latestSlashedCaptureTimestamp(bytes32,address)":"267de1f3","requestSlash(bytes32,address,uint256,uint48,bytes)":"545ce389","requestSlashHints(address,address,bytes32,address,uint256,uint48)":"002a0875","resolver(bytes32,bytes)":"cd05b8a1","resolverAt(bytes32,uint48,bytes)":"31ce4dfe","resolverHint(address,bytes32,uint48)":"a4ef9b4f","resolverHintInternal(bytes32,uint48)":"8f82f931","resolverSetEpochsDelay()":"bc6eac5b","setResolver(uint96,address,bytes)":"9168f9d2","setResolverHints(address,bytes32,uint48)":"1dd5f600","slashRequests(uint256)":"9a896551","slashRequestsLength()":"8f42f9ab","slashableStake(bytes32,address,uint48,bytes)":"aab3595f","staticDelegateCall(address,bytes)":"9f86fd85","vault()":"fbfa77cf","vetoDuration()":"e054e08b","vetoSlash(uint256,bytes)":"f9268d18","vetoSlashHints(address,bytes32,uint48)":"5264679b"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"baseSlasherHints\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"AlreadySet\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CheckpointUnorderedInsertion\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ExternalCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientBurnerGas\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientSlash\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidCaptureTimestamp\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidResolverSetEpochsDelay\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidVetoDuration\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NoBurner\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NoResolver\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotNetwork\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotNetworkMiddleware\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotResolver\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotVault\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ReentrancyGuardReentrantCall\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"bits\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"SafeCastOverflowedUintDowncast\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SlashPeriodEnded\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SlashRequestCompleted\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SlashRequestNotExist\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"VetoPeriodEnded\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"VetoPeriodNotEnded\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"slashIndex\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"slashedAmount\",\"type\":\"uint256\"}],\"name\":\"ExecuteSlash\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"slashIndex\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"slashAmount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint48\",\"name\":\"captureTimestamp\",\"type\":\"uint48\"},{\"indexed\":false,\"internalType\":\"uint48\",\"name\":\"vetoDeadline\",\"type\":\"uint48\"}],\"name\":\"RequestSlash\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"resolver\",\"type\":\"address\"}],\"name\":\"SetResolver\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"slashIndex\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"resolver\",\"type\":\"address\"}],\"name\":\"VetoSlash\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"BASE_SLASHER_HINTS\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"BURNER_GAS_LIMIT\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"BURNER_RESERVE\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"FACTORY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"NETWORK_MIDDLEWARE_SERVICE\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"NETWORK_REGISTRY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"TYPE\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"VAULT_FACTORY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"cumulativeSlash\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hint\",\"type\":\"bytes\"}],\"name\":\"cumulativeSlashAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"slashIndex\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"hints\",\"type\":\"bytes\"}],\"name\":\"executeSlash\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"slashedAmount\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"slasher\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"captureTimestamp\",\"type\":\"uint48\"}],\"name\":\"executeSlashHints\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isBurnerHook\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"latestSlashedCaptureTimestamp\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"value\",\"type\":\"uint48\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint48\",\"name\":\"captureTimestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hints\",\"type\":\"bytes\"}],\"name\":\"requestSlash\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"slashIndex\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"slasher\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"msgSender\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint48\",\"name\":\"captureTimestamp\",\"type\":\"uint48\"}],\"name\":\"requestSlashHints\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"hint\",\"type\":\"bytes\"}],\"name\":\"resolver\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hint\",\"type\":\"bytes\"}],\"name\":\"resolverAt\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"slasher\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"}],\"name\":\"resolverHint\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"}],\"name\":\"resolverHintInternal\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"exists\",\"type\":\"bool\"},{\"internalType\":\"uint32\",\"name\":\"hint\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"resolverSetEpochsDelay\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint96\",\"name\":\"identifier\",\"type\":\"uint96\"},{\"internalType\":\"address\",\"name\":\"resolver_\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"hints\",\"type\":\"bytes\"}],\"name\":\"setResolver\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"slasher\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"}],\"name\":\"setResolverHints\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"slashRequests\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint48\",\"name\":\"captureTimestamp\",\"type\":\"uint48\"},{\"internalType\":\"uint48\",\"name\":\"vetoDeadline\",\"type\":\"uint48\"},{\"internalType\":\"bool\",\"name\":\"completed\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"slashRequestsLength\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"captureTimestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hints\",\"type\":\"bytes\"}],\"name\":\"slashableStake\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"staticDelegateCall\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"vault\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"vetoDuration\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"slashIndex\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"hints\",\"type\":\"bytes\"}],\"name\":\"vetoSlash\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"slasher\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"uint48\",\"name\":\"captureTimestamp\",\"type\":\"uint48\"}],\"name\":\"vetoSlashHints\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"CheckpointUnorderedInsertion()\":[{\"details\":\"A value was attempted to be inserted on a past checkpoint.\"}],\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"ReentrancyGuardReentrantCall()\":[{\"details\":\"Unauthorized reentrant call.\"}],\"SafeCastOverflowedUintDowncast(uint8,uint256)\":[{\"details\":\"Value doesn't fit in an uint of `bits` size.\"}]},\"events\":{\"ExecuteSlash(uint256,uint256)\":{\"params\":{\"slashIndex\":\"index of the slash request\",\"slashedAmount\":\"virtual amount of the collateral slashed\"}},\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"RequestSlash(uint256,bytes32,address,uint256,uint48,uint48)\":{\"params\":{\"captureTimestamp\":\"time point when the stake was captured\",\"operator\":\"operator that could be slashed (if the request is not vetoed)\",\"slashAmount\":\"maximum amount of the collateral to be slashed\",\"slashIndex\":\"index of the slash request\",\"subnetwork\":\"subnetwork that requested the slash\",\"vetoDeadline\":\"deadline for the resolver to veto the slash (exclusively)\"}},\"SetResolver(bytes32,address)\":{\"params\":{\"resolver\":\"address of the resolver\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"}},\"VetoSlash(uint256,address)\":{\"params\":{\"resolver\":\"address of the resolver that vetoed the slash\",\"slashIndex\":\"index of the slash request\"}}},\"kind\":\"dev\",\"methods\":{\"cumulativeSlash(bytes32,address)\":{\"params\":{\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"},\"returns\":{\"_0\":\"cumulative slash amount\"}},\"cumulativeSlashAt(bytes32,address,uint48,bytes)\":{\"params\":{\"hint\":\"hint for the checkpoint index\",\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\",\"timestamp\":\"time point to get the cumulative slash amount until (inclusively)\"},\"returns\":{\"_0\":\"cumulative slash amount until the given timestamp (inclusively)\"}},\"executeSlash(uint256,bytes)\":{\"details\":\"Only a network middleware can call this function.\",\"params\":{\"hints\":\"hints for checkpoints' indexes\",\"slashIndex\":\"index of the slash request\"},\"returns\":{\"slashedAmount\":\"virtual amount of the collateral slashed\"}},\"initialize(bytes)\":{\"params\":{\"data\":\"some data to use\"}},\"requestSlash(bytes32,address,uint256,uint48,bytes)\":{\"details\":\"Only a network middleware can call this function.\",\"params\":{\"amount\":\"maximum amount of the collateral to be slashed\",\"captureTimestamp\":\"time point when the stake was captured\",\"hints\":\"hints for checkpoints' indexes\",\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"},\"returns\":{\"slashIndex\":\"index of the slash request\"}},\"resolver(bytes32,bytes)\":{\"params\":{\"hint\":\"hint for the checkpoint index\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"},\"returns\":{\"_0\":\"address of the resolver\"}},\"resolverAt(bytes32,uint48,bytes)\":{\"params\":{\"hint\":\"hint for the checkpoint index\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\",\"timestamp\":\"timestamp to get the resolver at\"},\"returns\":{\"_0\":\"address of the resolver\"}},\"slashRequestsLength()\":{\"returns\":{\"_0\":\"total number of slash requests\"}},\"slashableStake(bytes32,address,uint48,bytes)\":{\"params\":{\"captureTimestamp\":\"time point to get the stake amount at\",\"hints\":\"hints for the checkpoints' indexes\",\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"},\"returns\":{\"amount\":\"slashable amount of the stake\"}},\"staticDelegateCall(address,bytes)\":{\"details\":\"It allows to use this contract's storage on-chain.\",\"params\":{\"data\":\"data to make a delegatecall with\",\"target\":\"address of the contract to make a delegatecall to\"}},\"vetoSlash(uint256,bytes)\":{\"details\":\"Only a resolver can call this function.\",\"params\":{\"hints\":\"hints for checkpoints' indexes\",\"slashIndex\":\"index of the slash request\"}}},\"version\":1},\"userdoc\":{\"events\":{\"ExecuteSlash(uint256,uint256)\":{\"notice\":\"Emitted when a slash request is executed.\"},\"RequestSlash(uint256,bytes32,address,uint256,uint48,uint48)\":{\"notice\":\"Emitted when a slash request is created.\"},\"SetResolver(bytes32,address)\":{\"notice\":\"Emitted when a resolver is set.\"},\"VetoSlash(uint256,address)\":{\"notice\":\"Emitted when a slash request is vetoed.\"}},\"kind\":\"user\",\"methods\":{\"BURNER_GAS_LIMIT()\":{\"notice\":\"Get a gas limit for the burner.\"},\"BURNER_RESERVE()\":{\"notice\":\"Get a reserve gas between the gas limit check and the burner's execution.\"},\"FACTORY()\":{\"notice\":\"Get the factory's address.\"},\"NETWORK_MIDDLEWARE_SERVICE()\":{\"notice\":\"Get the network middleware service's address.\"},\"NETWORK_REGISTRY()\":{\"notice\":\"Get the network registry's address.\"},\"TYPE()\":{\"notice\":\"Get the entity's type.\"},\"VAULT_FACTORY()\":{\"notice\":\"Get the vault factory's address.\"},\"cumulativeSlash(bytes32,address)\":{\"notice\":\"Get a cumulative slash amount for an operator on a subnetwork.\"},\"cumulativeSlashAt(bytes32,address,uint48,bytes)\":{\"notice\":\"Get a cumulative slash amount for an operator on a subnetwork until a given timestamp (inclusively) using a hint.\"},\"executeSlash(uint256,bytes)\":{\"notice\":\"Execute a slash with a given slash index using hints.\"},\"initialize(bytes)\":{\"notice\":\"Initialize this entity contract by using a given data.\"},\"isBurnerHook()\":{\"notice\":\"Get if the burner is needed to be called on a slashing.\"},\"latestSlashedCaptureTimestamp(bytes32,address)\":{\"notice\":\"Get the latest capture timestamp that was slashed on a subnetwork.\"},\"requestSlash(bytes32,address,uint256,uint48,bytes)\":{\"notice\":\"Request a slash using a subnetwork for a particular operator by a given amount using hints.\"},\"resolver(bytes32,bytes)\":{\"notice\":\"Get a resolver for a given subnetwork using a hint.\"},\"resolverAt(bytes32,uint48,bytes)\":{\"notice\":\"Get a resolver for a given subnetwork at a particular timestamp using a hint.\"},\"resolverSetEpochsDelay()\":{\"notice\":\"Get a delay for networks in epochs to update a resolver.\"},\"slashRequests(uint256)\":{\"notice\":\"Get a particular slash request.\"},\"slashRequestsLength()\":{\"notice\":\"Get a total number of slash requests.\"},\"slashableStake(bytes32,address,uint48,bytes)\":{\"notice\":\"Get a slashable amount of a stake got at a given capture timestamp using hints.\"},\"staticDelegateCall(address,bytes)\":{\"notice\":\"Make a delegatecall from this contract to a given target contract with a particular data (always reverts with a return data).\"},\"vault()\":{\"notice\":\"Get the vault's address.\"},\"vetoDuration()\":{\"notice\":\"Get a duration during which resolvers can veto slash requests.\"},\"vetoSlash(uint256,bytes)\":{\"notice\":\"Veto a slash with a given slash index using hints.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/contracts/hints/SlasherHints.sol\":\"VetoSlasherHints\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol\":{\"keccak256\":\"0x6662ec4e5cefca03eeadd073e9469df8d2944bb2ee8ec8f7622c2c46aab5f225\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4d8544c6f8daa4d1bc215c6a72fe0acdb748664a105b0e5efc19295667521d45\",\"dweb:/ipfs/QmdGWqdnXT8S3RgCR6aV8XHZrsybieMQLLnug1NtpSjEXN\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0xc163fcf9bb10138631a9ba5564df1fa25db9adff73bd9ee868a8ae1858fe093a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9706d43a0124053d9880f6e31a59f31bc0a6a3dc1acd66ce0a16e1111658c5f6\",\"dweb:/ipfs/QmUFmfowzkRwGtDu36cXV9SPTBHJ3n7dG9xQiK5B28jTf2\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609\",\"dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9\",\"dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardUpgradeable.sol\":{\"keccak256\":\"0xb44e086e941292cdc7f440de51478493894ef0b1aeccb0c4047445919f667f74\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://942dad22fbdc1669f025540ba63aa3ccfad5f8458fc5d4525b31ebf272e7af45\",\"dweb:/ipfs/Qmdo4X2M82aM3AMoW2kf2jhYkSCyC4T1pHNd6obdsDFnAB\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol\":{\"keccak256\":\"0xdaba3f7c42c55b2896353f32bd27d4d5f8bae741b3b05d4c53f67abc4dc47ce8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1fa2e61141c602510bcd2cd936ed9561922ac8772a9b9c9a9db091a74e354a45\",\"dweb:/ipfs/QmcHQDDoEBwJmwUbzoVkytvJsBx3KVHYFFnDkvRGWh9Wmh\"]},\"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0xb6b36edd6a2999fd243ff226d6cbf84bd71af2432bbd0dfe19392996a1d9cb41\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1fd2f35495652e57e3f99bc6c510bc5f7dd398a176ea2e72d8ed730aebc6ca26\",\"dweb:/ipfs/QmTQV6X4gkikTib49cho5iDX3JvSQbdsoEChoDwrk3CbbH\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC1271.sol\":{\"keccak256\":\"0x85a45f3f10014a0f8be41157a32b6a5f905753ea64a4b64e29fc12b7deeecf39\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c3c74009ce36136b36c77c23935b8e4a7b4f253be2da2be4fb4a916b1ce43743\",\"dweb:/ipfs/QmcH36v3iN7SJJuF73AunLR2LtNxhVJ1wm63ph4dPZ4pcL\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC5267.sol\":{\"keccak256\":\"0x92aa1df62dc3d33f1656d63bede0923e0df0b706ad4137c8b10b0a8fe549fd92\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c5c0f29195ad64cbe556da8e257dac8f05f78c53f90323c0d2accf8e6922d33a\",\"dweb:/ipfs/QmQ61TED8uaCZwcbh8KkgRSsCav7x7HbcGHwHts3U4DmUP\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c\",\"dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0x6008dabfe393240d73d7dd7688033f72740d570aa422254d29a7dce8568f3aff\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f5196ec75139918c6c7bb4251b36395e668f1fa6d206beba7e7520e74913940d\",\"dweb:/ipfs/QmSyqjksXxmm2mCG6qRd1yuwLykypkSVBbnBnGqJRcuJMi\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x37bb49513c49c87c4642a891b13b63571bc87013dde806617aa1efb54605f386\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b3036b3a83b7c48f96641f2a9002b9f2dcb6a5958dd670894ada21ae8229b3d0\",\"dweb:/ipfs/QmUNfSBdoVtjhETaUJCYcaC7pTMgbhht926tJ2uXJbiVd3\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0xaf28a975a78550e45f65e559a3ad6a5ad43b9b8a37366999abd1b7084eb70721\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b7bd24e224f67f65bfadf85dc2929fa965456bb2415478bd0125471b5ce35245\",\"dweb:/ipfs/QmRaydGr8BTHs1kvaZfsNU69pKzUAGFrvABn1KiRSbE51y\"]},\"lib/openzeppelin-contracts/contracts/utils/ShortStrings.sol\":{\"keccak256\":\"0x18a7171df639a934592915a520ecb97c5bbc9675a1105607aac8a94e72bf62c6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7478e1f13da69a2867ccd883001d836b75620362e743f196376d63ed0c422a1c\",\"dweb:/ipfs/QmWywcQ9TNfwtoqAxbn25d8C5VrV12PrPS9UjtGe6pL2BA\"]},\"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0x32ba59b4b7299237c8ba56319110989d7978a039faf754793064e967e5894418\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1ae50c8b562427df610cc4540c9bf104acca7ef8e2dcae567ae7e52272281e9c\",\"dweb:/ipfs/QmTHiadFCSJUPpRjNegc5SahmeU8bAoY8i9Aq6tVscbcKR\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0x55f102ea785d8399c0e58d1108e2d289506dde18abc6db1b7f68c1f9f9bc5792\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e52e0a7765c943ef14e5bcf11e46e6139fa044be564881378349236bf2e3453\",\"dweb:/ipfs/QmZEeeXoFPW47amyP35gfzomF9DixqqTEPwzBakv6cZw6i\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0xeed0a08b0b091f528356cbc7245891a4c748682d4f6a18055e8e6ca77d12a6cf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba80ba06c8e6be852847e4c5f4492cef801feb6558ae09ed705ff2e04ea8b13c\",\"dweb:/ipfs/QmXRJDv3xHLVQCVXg1ZvR35QS9sij5y9NDWYzMfUfAdTHF\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/EIP712.sol\":{\"keccak256\":\"0x999f705a027ed6dc2d4e0df2cc4a509852c6bfd11de1c8161bf88832d0503fd0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0798def67258d9a3cc20b2b4da7ebf351a5cefe0abfdd665d2d81f8e32f89b21\",\"dweb:/ipfs/QmPEvJosnPfzHNjKvCv2D3891mA2Ww8eUwkqrxBjuYdHCt\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol\":{\"keccak256\":\"0xba333517a3add42cd35fe877656fc3dfcc9de53baa4f3aabbd6d12a92e4ea435\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2ceacff44c0fdc81e48e0e0b1db87a2076d3c1fb497341de077bf1da9f6b406c\",\"dweb:/ipfs/QmRUo1muMRAewxrKQ7TkXUtknyRoR57AyEkoPpiuZQ8FzX\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/SignatureChecker.sol\":{\"keccak256\":\"0x6b11eb41a228cca35d4b662b4df69fcd75192851365102690f57b2ac01e83fe6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ab006a2983ed350d2af21ddcdd835dcae3b8340086cc4d088460da5abd041f69\",\"dweb:/ipfs/QmbEacDhkJZiGrgzLjB4pNtE8Z1uudjDw1DvcDUTVQFsLG\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875\",\"dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0xe19a4d5f31d2861e7344e8e535e2feafb913d806d3e2b5fe7782741a2a7094fe\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4aed79c0fa6f0546ed02f2f683e8f77f0fd2ed7eb34d8bbf3d373c9a6d95b13c\",\"dweb:/ipfs/QmWqVz6UAVqmnWU5pqYPt1o6iDEZyPaBraAA3rKfTTSfYj\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x5f7e4076e175393767754387c962926577f1660dd9b810187b9002407656be72\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7d533a1c97cd43a57cd9c465f7ee8dd0e39ae93a8fb8ff8e5303a356b081cdcc\",\"dweb:/ipfs/QmVBEei6aTnvYNZp2CHYVNKyZS4q1KkjANfY39WVXZXVoT\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/Checkpoints.sol\":{\"keccak256\":\"0xbdc5e074d7dd6678f67e92b1a51a20226801a407b0e1af3da367c5d1ff4519ad\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a36cca6b22fff3db16fc789ff6c60eea71d4b156065d4d0c83a0bc5e91a77a8b\",\"dweb:/ipfs/QmYN3exd5AemxjBrN8XMB1p5LbbE16uC3sjbYjwi8AjcGR\"]},\"lib/openzeppelin-contracts/contracts/utils/types/Time.sol\":{\"keccak256\":\"0xc7755af115020049e4140f224f9ee88d7e1799ffb0646f37bf0df24bf6213f58\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7f09bf94d5274334ec021f61a04659db303f31e60460e14b709c9bf187740111\",\"dweb:/ipfs/QmNvgomZYUwFAt4cZbPWAiTeSZQreGehY9BK5xyVJsUttb\"]},\"src/contracts/common/Entity.sol\":{\"keccak256\":\"0x3d61a932995b8443381f3950542d388223a2c26dd5d29a3274dea3baa7388bd7\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://7cdf5f03ca72fd263fd32ff59c8d88ddca911ae83896a287d10772c1bbe9b138\",\"dweb:/ipfs/QmbP84r5BWT1Rn9AYTntWSf3xUMTTCohTZJFhbBhDXFoHa\"]},\"src/contracts/common/MigratableEntity.sol\":{\"keccak256\":\"0x2d736f4dacd5d7e7697503bc426c78b8250fe1694ca157965ec178da6807de58\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://f1237acf96b4b9f9b69156e068eddd726a6e15bd8e87a18dc999cd4ba4da069c\",\"dweb:/ipfs/QmS6M8fiFFSeuJ4ZKKq1z8W7w4ybeHQSy5TLASGoc1LVic\"]},\"src/contracts/common/StaticDelegateCallable.sol\":{\"keccak256\":\"0x350029aa8955eacaffffaeb58babc5c98e80ebc5c5db388ed17ee6465f4a9d90\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://eb392a8ee9050e0af606897df63e3404e3829e8b688b580663892f9664195764\",\"dweb:/ipfs/QmaXC8jqV8UrrAFkzXTEv2fJF56sy33HhLxAzaRZmUxuXD\"]},\"src/contracts/delegator/BaseDelegator.sol\":{\"keccak256\":\"0x7c54d491fdd4415b764a9c8defa068e56d4c0c8c9419be0053a1d377669290e8\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://9238bfbad0f6eeb0dc7727724de14380f1980b395902269703d5e2ef07e52e10\",\"dweb:/ipfs/QmPJn1V4HNXcEghYvogGuSTF24dSQUPosR5qtsXcmNqRm3\"]},\"src/contracts/delegator/FullRestakeDelegator.sol\":{\"keccak256\":\"0x0a81c4f8e72914563a9cb771e93acf889c71ea36b7bec040e4eb562b199d5af1\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://6fc66b6ba02da77046a0bbbd1dd407a62c08f52e04486c9cbd2cb1cca3da555f\",\"dweb:/ipfs/QmZQivK1ZnMxfRQQ5aLpV9co5u55wQVNev5Rg1hzAqxhkE\"]},\"src/contracts/delegator/NetworkRestakeDelegator.sol\":{\"keccak256\":\"0xd3a8e6522f9c6fdcc2da837c9023afd6bdff2bce45a35590320c475519e3636d\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://58b17a87f6554f08376f9ea7fedf486a4aa75801bf0ad8b23ff5a46959b6b7a3\",\"dweb:/ipfs/QmSTmNh67tYt8CmjVZb57r8N3qX5yeYdMApKPJm3qvQgQw\"]},\"src/contracts/delegator/OperatorNetworkSpecificDelegator.sol\":{\"keccak256\":\"0x031a10722b9ec49048f0952710401131290adb87e71caf294e864e7ac3b98a16\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://72428febc875134b2f29205e6f294634a1c22a7d5c78d6a9cb2f8196f107c9b5\",\"dweb:/ipfs/QmTPwXR6h5oytckmkLrHdKeEMdphJxceDhYUR4zvQeWAwY\"]},\"src/contracts/delegator/OperatorSpecificDelegator.sol\":{\"keccak256\":\"0x630ce62fa30b9f3349ab7a8cf8dbf041319febc6dd757be2f94d3d25944ed328\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://c2ac59d47ce57d2a6819ae9833e1a618a371eccff93eb5ab367b201b01f42bfa\",\"dweb:/ipfs/QmdBpGMBivpNPv2WbH8vnCUy5xkVeaxQvGgqi33vKCz1kA\"]},\"src/contracts/hints/DelegatorHints.sol\":{\"keccak256\":\"0x44aa0c396311a54afbc7c73e8dadeed41e3165a4fd13f712b27d63d50fc3376d\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://2f255214f3531fc707d88be0d56a7a0aed4180439316d099d760d9118aa83093\",\"dweb:/ipfs/QmZD1w5p1ukJSXumUAjvxwGmkPhn7vsr21Y2atLGEZR2oi\"]},\"src/contracts/hints/Hints.sol\":{\"keccak256\":\"0x8b565df1ae35993c097a9e642002782a8f451f6fd01809cad6bcd345bdf1b99c\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://99a19adb01e350a92f534095b3078229df1f2f83077992d75d58d8684be45971\",\"dweb:/ipfs/QmbmwcuswVbzvwHQFTtrJG86oV98GnfxqYTb8cV8u1acox\"]},\"src/contracts/hints/OptInServiceHints.sol\":{\"keccak256\":\"0x95d9407900d27b9f4a1233b772aeed809c07b2dc5b31cfc9fa77ca26514c49e5\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://a13a8877e312d7e6b8b85bde3668c5d84ff5ecc83f762cd573f2b7104c64eb42\",\"dweb:/ipfs/QmYV2J55acuGzCNnS3juABuUHY5U1xc8g8o9jwEyFFdeG5\"]},\"src/contracts/hints/SlasherHints.sol\":{\"keccak256\":\"0xd77c5f3bbb0265af8ecd947df88f6f9684e136d80052b5292f5b29aaa3566a3f\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://484a26504bf6706202ec82a9a4cfa7d196bbc552b5b78ced25bf7130c2842595\",\"dweb:/ipfs/QmaQqmkoZoUWEam4R94vmajzH3gKqFqpZQwFbrHDsN1peV\"]},\"src/contracts/hints/VaultHints.sol\":{\"keccak256\":\"0xccb505b7159b769cc114d67b87c2de6b106557f667fc8f3780114baad5c3c442\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://6d0c80a908fc16e96a8b5605a0bd53f9e89ad0ef0a738fbbae80ba4d3160749b\",\"dweb:/ipfs/QmXo5UtWoR8YmunqcbBU8rQMm1nvmvjNPoXcVrDhh4pEwR\"]},\"src/contracts/libraries/Checkpoints.sol\":{\"keccak256\":\"0xba90097c8bfe0a975499428b5f8ac5569483c7d92ccc28c12d70de416aae040c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://12f5d93ca94cd06d3147db68993165a58e17903ed53682560de61f3085ad4609\",\"dweb:/ipfs/QmePiuAqvXprMLmFZkGZeGjvGPAvsEDHfCDv7BoQhXu9xE\"]},\"src/contracts/libraries/ERC4626Math.sol\":{\"keccak256\":\"0x8441160513c1cbeb1c3b9ee077bcc7e7ce20006b52a77c8dd39ff0ef89699939\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://943f8cc3e26ddf649f465f40c909819f5c864717c4baa339e9e403b9374a4653\",\"dweb:/ipfs/QmXPxi1sUDsrGprZdUgCzoPEosaZMv9ZhygWQ1vAi1phAB\"]},\"src/contracts/libraries/Subnetwork.sol\":{\"keccak256\":\"0xf5ef5506fd66082b3c2e7f3df37529f5a8efad32ac62e7c8914bd63219190bfe\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba031a54ee0d0e9a270c2b9e18437f5668cfeb659cfd5fe0677459d7fcac2a56\",\"dweb:/ipfs/QmReP3H7qQ78tAfgLnJKsNEQNCQfF1X1Get38Ffd4kzq32\"]},\"src/contracts/service/OptInService.sol\":{\"keccak256\":\"0x4e0932077f2686b7990e10d59deb2535334c0d09e52ef6e57c6ab09eca21c4b1\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://7c00d311032ed4a1743aca7475f3c86ce15cdfc2218108efc3731c03d34a5278\",\"dweb:/ipfs/QmUGGfVwVhaHr5kS4177yKKYiLYzi5qZpkEmvYxBZqazxf\"]},\"src/contracts/slasher/BaseSlasher.sol\":{\"keccak256\":\"0x190e5dce196a061bdad42468c52e9f5b0eb7810cd7d0c19f04d6a2e94984f1b6\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://07ca08d0cd43c2fe5d54a5577f6bdd522ced410f5d3a52e764deaa7ba26b5f06\",\"dweb:/ipfs/QmZe3PiMKBQKWcwodaLupragdqxPjgS4v1qMC7RXau8hDF\"]},\"src/contracts/slasher/Slasher.sol\":{\"keccak256\":\"0xeee0cb25fad58d496fdcc641d852d11bae06e6ceed5230ae21150964175c494f\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://34aa27d21246a1bcee0b6a2afa8d9d613441156362430392f75d176511d58c61\",\"dweb:/ipfs/Qmf53Y3zdGfH4PU2zpSGeHZ8mMLzLXCtmkQrG5mnVJECQ3\"]},\"src/contracts/slasher/VetoSlasher.sol\":{\"keccak256\":\"0xeccc8128de5e1ad499c067feac1c526638fbbac1a18b96726fc7507969fd5897\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://cdfcf281338423625acbccdf8810115b258ef7cfe4aa3c10b8911ead1aa85429\",\"dweb:/ipfs/QmZFsDvZXpkFkx4PHcDXAVPN3ZCAahbSVfYpSVrMBvbt4k\"]},\"src/contracts/vault/Vault.sol\":{\"keccak256\":\"0x2ceff6ed3298c4cad144c99fcc79b51cb9397d6ebef00285b915848b476f8c2e\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://11f2fb3581854f3ab6e82e8d4935d9eb510c903a13c3f022346c2956a58f5307\",\"dweb:/ipfs/QmdUnoXoyYoG9SGWyQZCFyLDRUUX3eXyXetkRvw6jxqqBz\"]},\"src/contracts/vault/VaultStorage.sol\":{\"keccak256\":\"0x57db25b127d77ea3472de53e3a4af3354399655b9268638b99ca5925fa364a56\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://aa763d9a6ec508ae3abfb8228b72b9fd9525279e5135d4962e79ff059feb1173\",\"dweb:/ipfs/QmcbDR6E9wyEpu6V2FkEC4hnWy47zXA9LSKJde6zSGd33Q\"]},\"src/interfaces/common/IEntity.sol\":{\"keccak256\":\"0x8ef4b63d6da63489778ccd5f8d13ebdd527dd4b62730b2c616df5af7474d2d21\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a8d69576a9219d85c50816a18ad53a4d53cfcb27ed38b8cccc808dc2734b71b\",\"dweb:/ipfs/QmYVN3P4Q4REvBWJ97TbAcaxm3uyB2anV6NSGa6ZtSwcEv\"]},\"src/interfaces/common/IMigratableEntity.sol\":{\"keccak256\":\"0x8f5f2809f3afbe8ebfbb365dd7b57b4dd3b6f9943a6187eaf648d45895b8e3c4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ffe640537d539e7a4fde70d30d3e4c57f4ba9c2c25c450cea713aae38e8fd5c\",\"dweb:/ipfs/QmSUTGzvdcn1R1KB7tLThMRtESsfPbeXDhhhKWGtntzBds\"]},\"src/interfaces/common/IRegistry.sol\":{\"keccak256\":\"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014\",\"dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK\"]},\"src/interfaces/common/IStaticDelegateCallable.sol\":{\"keccak256\":\"0xa335d4e81b9071b7de66ef92b43ff20671d86516eb1be46fef29a3483cd3f5d5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d464b9db863c14c05547d2b23352f2e9b7b784799cf09f6bbc4906a2a74e3516\",\"dweb:/ipfs/QmUVWzFvJz7eEbDQKiFTTzwi7TEbjcs3VmwdM4kuptAKvi\"]},\"src/interfaces/delegator/IBaseDelegator.sol\":{\"keccak256\":\"0x96bb312f032e17accce3f8f80936d99468029d6b37c9ca74acdb4b026a0148ee\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2a66dcb5b7d1a6ef6a363431ea98ebd78bc4fdd3d7a134d9b542dc66e7d025c2\",\"dweb:/ipfs/QmRhTPLd2ZAyRHmJUFUcWKs9b3if49QY17LYZuRqWmghw8\"]},\"src/interfaces/delegator/IDelegatorHook.sol\":{\"keccak256\":\"0xc51aa8d7d1f6c8043ee819b7aeb86da0e993912e1442098df897e299f01f9f46\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://adddf5cb2ba282aeb576b26efb28640f865a1721cc9b6eee8b3ee0457a2c9780\",\"dweb:/ipfs/QmNYgAmnLRwWZbhTuQhZs9rx4zcme1df5mEepkrniorSoW\"]},\"src/interfaces/delegator/IFullRestakeDelegator.sol\":{\"keccak256\":\"0xa3c8cb2e45d4d8ce90e95263bea40c01dc400f05ad65bc29597d878606be5e7d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://782cf5e201aa4cca037ebafd3807a68ff1cc721d5b8416a35244db0d0607369e\",\"dweb:/ipfs/QmQkJks6x7CKndeTPa9LxgTNygD5uEi7obhADhpq1Lsr9A\"]},\"src/interfaces/delegator/INetworkRestakeDelegator.sol\":{\"keccak256\":\"0xe7030fe30389a147fd710e3436ec346b4842695fd3e65a81b95375c9f1d633fc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://739c7e66d301778054f5c90bee45ec9438f68afba8a03eaaac52064c73b115ad\",\"dweb:/ipfs/QmfZ2ytKcTykAc76nxhg8ikUXV8NdBpetqb8W4YWPcox1Z\"]},\"src/interfaces/delegator/IOperatorNetworkSpecificDelegator.sol\":{\"keccak256\":\"0x74b95e64d29769202d45dd277bb830f623ff3d41ce77b80ce3ee4e318a5c71ec\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e512b903aae5c1b8a028c6e3f4f6223b5cb5d704503cfa6bd37b5346868f5c20\",\"dweb:/ipfs/QmZim9YExsPWtyxyeui993HTKAEmrg8MUcSkZ77Gp2JcuZ\"]},\"src/interfaces/delegator/IOperatorSpecificDelegator.sol\":{\"keccak256\":\"0x72075cab585dc17240cc3e32bc99b92f0d5627ddd988fed680e3e1a52d5a01e4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7448bc90699409ae61d85216b5efc2143a37f0f73354be2aea993bc54afca441\",\"dweb:/ipfs/QmXE4gAxM8pHosZK8mcTcj17puBx484meDCcmrDePskGHZ\"]},\"src/interfaces/service/INetworkMiddlewareService.sol\":{\"keccak256\":\"0x347afc7fcf1fbcdb96d66162070ef6c78aed27b3af2c1d5dfb4e511840631783\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2d90b8ceb495159e8e4e95d76447719dd166443f67dfabdd942846162071595c\",\"dweb:/ipfs/QmVVuiAWYx92T6vBvNMKZfTvraCf1fa16BsUKkdNs3hdHA\"]},\"src/interfaces/service/IOptInService.sol\":{\"keccak256\":\"0x76fb5460a6d87a5705433d4fbeff7253cd75b8bbd0c888b2088f16e86ace146a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://990322019b3d11465f7024bae77ccbf7e2fe5d6fa3c754584778f37d04fa1337\",\"dweb:/ipfs/QmaSNHzcqxTkUCG9a4nqVfLECHLdjdrwAnDi3yDC7tDL24\"]},\"src/interfaces/slasher/IBaseSlasher.sol\":{\"keccak256\":\"0x7c82528b445659c313ab77335c407b0b6efe5e79027187bb287f7bc74202b404\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0274c90aa5df1aa6bb470a6aab53992fb14fd7e5472c9430416505b29647d9cf\",\"dweb:/ipfs/QmckbmJLDetPemVzCnnGcKYWAZV2BRFXGDsjiaec8jkHxx\"]},\"src/interfaces/slasher/IBurner.sol\":{\"keccak256\":\"0xaf495dacc19ae0b3c787ba8021c5944927d70261536addd234d7dab146158c2b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9b3cc66251008be6ff9fc8b11ecc6831d5a9dca49a3fe9817fcd970253c1d447\",\"dweb:/ipfs/QmVxfb9ALGdF9W3SN2h41gQbUct6tawvu5bw4K89kFQ4HW\"]},\"src/interfaces/slasher/ISlasher.sol\":{\"keccak256\":\"0x34d226d67a3d5e16571f2fac91a8b9773551bcc41c88a96279669dd78d192625\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a6e8c1462ee4a1b0f745414be043c09012ea676613790aba004b06c85c980d1\",\"dweb:/ipfs/QmadjNEbHKRthtA1EeNy3Kg2sXpejH2KBeHm8QZtBPvXbJ\"]},\"src/interfaces/slasher/IVetoSlasher.sol\":{\"keccak256\":\"0xdf7edd04a4f36e9aec3a15241dcb6b6315b2e64927b12710c2c410d571fc55e9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c4be6ac339c2ebf230fed65363f036784224095d0cd0f3f2d01d64d6e0da9508\",\"dweb:/ipfs/QmRSMbpfaHExqrzUA8vYZMYZWh6eQW1KX9JKJSLdgronfg\"]},\"src/interfaces/vault/IVault.sol\":{\"keccak256\":\"0xffee01d383cd4e1a5530c614bf4360c1ef070c288abec9da1eb531b51bc07235\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://04f0046cac285d8ec44ebbb1f79dc94fab4495767190cad8364fbc1fafaadfb9\",\"dweb:/ipfs/QmUawAunwzXfCyShWfhKeThAgKtqe51hmrxvrXvM772M2R\"]},\"src/interfaces/vault/IVaultStorage.sol\":{\"keccak256\":\"0x592626f13754194f83047135de19229c49390bd59e34659b1bb38be71d973a22\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://06a6a9dfddd05e580b32bebe2cff4f63ba26a653180676d58225dd30d9c89d3e\",\"dweb:/ipfs/QmdgzBeY6Sxo8mGtyBxtv1tM1c2kU6J6zjeRd7vuXm4DU6\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.25+commit.b61c2a91"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"baseSlasherHints","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"AlreadySet"},{"inputs":[],"type":"error","name":"CheckpointUnorderedInsertion"},{"inputs":[],"type":"error","name":"ExternalCall"},{"inputs":[],"type":"error","name":"InsufficientBurnerGas"},{"inputs":[],"type":"error","name":"InsufficientSlash"},{"inputs":[],"type":"error","name":"InvalidCaptureTimestamp"},{"inputs":[],"type":"error","name":"InvalidInitialization"},{"inputs":[],"type":"error","name":"InvalidResolverSetEpochsDelay"},{"inputs":[],"type":"error","name":"InvalidVetoDuration"},{"inputs":[],"type":"error","name":"NoBurner"},{"inputs":[],"type":"error","name":"NoResolver"},{"inputs":[],"type":"error","name":"NotInitialized"},{"inputs":[],"type":"error","name":"NotInitializing"},{"inputs":[],"type":"error","name":"NotNetwork"},{"inputs":[],"type":"error","name":"NotNetworkMiddleware"},{"inputs":[],"type":"error","name":"NotResolver"},{"inputs":[],"type":"error","name":"NotVault"},{"inputs":[],"type":"error","name":"ReentrancyGuardReentrantCall"},{"inputs":[{"internalType":"uint8","name":"bits","type":"uint8"},{"internalType":"uint256","name":"value","type":"uint256"}],"type":"error","name":"SafeCastOverflowedUintDowncast"},{"inputs":[],"type":"error","name":"SlashPeriodEnded"},{"inputs":[],"type":"error","name":"SlashRequestCompleted"},{"inputs":[],"type":"error","name":"SlashRequestNotExist"},{"inputs":[],"type":"error","name":"VetoPeriodEnded"},{"inputs":[],"type":"error","name":"VetoPeriodNotEnded"},{"inputs":[{"internalType":"uint256","name":"slashIndex","type":"uint256","indexed":true},{"internalType":"uint256","name":"slashedAmount","type":"uint256","indexed":false}],"type":"event","name":"ExecuteSlash","anonymous":false},{"inputs":[{"internalType":"uint64","name":"version","type":"uint64","indexed":false}],"type":"event","name":"Initialized","anonymous":false},{"inputs":[{"internalType":"uint256","name":"slashIndex","type":"uint256","indexed":true},{"internalType":"bytes32","name":"subnetwork","type":"bytes32","indexed":true},{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"uint256","name":"slashAmount","type":"uint256","indexed":false},{"internalType":"uint48","name":"captureTimestamp","type":"uint48","indexed":false},{"internalType":"uint48","name":"vetoDeadline","type":"uint48","indexed":false}],"type":"event","name":"RequestSlash","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32","indexed":true},{"internalType":"address","name":"resolver","type":"address","indexed":false}],"type":"event","name":"SetResolver","anonymous":false},{"inputs":[{"internalType":"uint256","name":"slashIndex","type":"uint256","indexed":true},{"internalType":"address","name":"resolver","type":"address","indexed":true}],"type":"event","name":"VetoSlash","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"BASE_SLASHER_HINTS","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"BURNER_GAS_LIMIT","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"BURNER_RESERVE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"FACTORY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"NETWORK_MIDDLEWARE_SERVICE","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"NETWORK_REGISTRY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"TYPE","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"VAULT_FACTORY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"cumulativeSlash","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint48","name":"timestamp","type":"uint48"},{"internalType":"bytes","name":"hint","type":"bytes"}],"stateMutability":"view","type":"function","name":"cumulativeSlashAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"slashIndex","type":"uint256"},{"internalType":"bytes","name":"hints","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"executeSlash","outputs":[{"internalType":"uint256","name":"slashedAmount","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"slasher","type":"address"},{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint48","name":"captureTimestamp","type":"uint48"}],"stateMutability":"view","type":"function","name":"executeSlashHints","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[],"stateMutability":"view","type":"function","name":"isBurnerHook","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"latestSlashedCaptureTimestamp","outputs":[{"internalType":"uint48","name":"value","type":"uint48"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint48","name":"captureTimestamp","type":"uint48"},{"internalType":"bytes","name":"hints","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"requestSlash","outputs":[{"internalType":"uint256","name":"slashIndex","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"slasher","type":"address"},{"internalType":"address","name":"msgSender","type":"address"},{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint48","name":"captureTimestamp","type":"uint48"}],"stateMutability":"view","type":"function","name":"requestSlashHints","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"bytes","name":"hint","type":"bytes"}],"stateMutability":"view","type":"function","name":"resolver","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"uint48","name":"timestamp","type":"uint48"},{"internalType":"bytes","name":"hint","type":"bytes"}],"stateMutability":"view","type":"function","name":"resolverAt","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"slasher","type":"address"},{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"uint48","name":"timestamp","type":"uint48"}],"stateMutability":"view","type":"function","name":"resolverHint","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"uint48","name":"timestamp","type":"uint48"}],"stateMutability":"view","type":"function","name":"resolverHintInternal","outputs":[{"internalType":"bool","name":"exists","type":"bool"},{"internalType":"uint32","name":"hint","type":"uint32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"resolverSetEpochsDelay","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint96","name":"identifier","type":"uint96"},{"internalType":"address","name":"resolver_","type":"address"},{"internalType":"bytes","name":"hints","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"setResolver"},{"inputs":[{"internalType":"address","name":"slasher","type":"address"},{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"uint48","name":"timestamp","type":"uint48"}],"stateMutability":"view","type":"function","name":"setResolverHints","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function","name":"slashRequests","outputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint48","name":"captureTimestamp","type":"uint48"},{"internalType":"uint48","name":"vetoDeadline","type":"uint48"},{"internalType":"bool","name":"completed","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"slashRequestsLength","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint48","name":"captureTimestamp","type":"uint48"},{"internalType":"bytes","name":"hints","type":"bytes"}],"stateMutability":"view","type":"function","name":"slashableStake","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"staticDelegateCall"},{"inputs":[],"stateMutability":"view","type":"function","name":"vault","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"vetoDuration","outputs":[{"internalType":"uint48","name":"","type":"uint48"}]},{"inputs":[{"internalType":"uint256","name":"slashIndex","type":"uint256"},{"internalType":"bytes","name":"hints","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"vetoSlash"},{"inputs":[{"internalType":"address","name":"slasher","type":"address"},{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"uint48","name":"captureTimestamp","type":"uint48"}],"stateMutability":"view","type":"function","name":"vetoSlashHints","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]}],"devdoc":{"kind":"dev","methods":{"cumulativeSlash(bytes32,address)":{"params":{"operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"},"returns":{"_0":"cumulative slash amount"}},"cumulativeSlashAt(bytes32,address,uint48,bytes)":{"params":{"hint":"hint for the checkpoint index","operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)","timestamp":"time point to get the cumulative slash amount until (inclusively)"},"returns":{"_0":"cumulative slash amount until the given timestamp (inclusively)"}},"executeSlash(uint256,bytes)":{"details":"Only a network middleware can call this function.","params":{"hints":"hints for checkpoints' indexes","slashIndex":"index of the slash request"},"returns":{"slashedAmount":"virtual amount of the collateral slashed"}},"initialize(bytes)":{"params":{"data":"some data to use"}},"requestSlash(bytes32,address,uint256,uint48,bytes)":{"details":"Only a network middleware can call this function.","params":{"amount":"maximum amount of the collateral to be slashed","captureTimestamp":"time point when the stake was captured","hints":"hints for checkpoints' indexes","operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"},"returns":{"slashIndex":"index of the slash request"}},"resolver(bytes32,bytes)":{"params":{"hint":"hint for the checkpoint index","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"},"returns":{"_0":"address of the resolver"}},"resolverAt(bytes32,uint48,bytes)":{"params":{"hint":"hint for the checkpoint index","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)","timestamp":"timestamp to get the resolver at"},"returns":{"_0":"address of the resolver"}},"slashRequestsLength()":{"returns":{"_0":"total number of slash requests"}},"slashableStake(bytes32,address,uint48,bytes)":{"params":{"captureTimestamp":"time point to get the stake amount at","hints":"hints for the checkpoints' indexes","operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"},"returns":{"amount":"slashable amount of the stake"}},"staticDelegateCall(address,bytes)":{"details":"It allows to use this contract's storage on-chain.","params":{"data":"data to make a delegatecall with","target":"address of the contract to make a delegatecall to"}},"vetoSlash(uint256,bytes)":{"details":"Only a resolver can call this function.","params":{"hints":"hints for checkpoints' indexes","slashIndex":"index of the slash request"}}},"version":1},"userdoc":{"kind":"user","methods":{"BURNER_GAS_LIMIT()":{"notice":"Get a gas limit for the burner."},"BURNER_RESERVE()":{"notice":"Get a reserve gas between the gas limit check and the burner's execution."},"FACTORY()":{"notice":"Get the factory's address."},"NETWORK_MIDDLEWARE_SERVICE()":{"notice":"Get the network middleware service's address."},"NETWORK_REGISTRY()":{"notice":"Get the network registry's address."},"TYPE()":{"notice":"Get the entity's type."},"VAULT_FACTORY()":{"notice":"Get the vault factory's address."},"cumulativeSlash(bytes32,address)":{"notice":"Get a cumulative slash amount for an operator on a subnetwork."},"cumulativeSlashAt(bytes32,address,uint48,bytes)":{"notice":"Get a cumulative slash amount for an operator on a subnetwork until a given timestamp (inclusively) using a hint."},"executeSlash(uint256,bytes)":{"notice":"Execute a slash with a given slash index using hints."},"initialize(bytes)":{"notice":"Initialize this entity contract by using a given data."},"isBurnerHook()":{"notice":"Get if the burner is needed to be called on a slashing."},"latestSlashedCaptureTimestamp(bytes32,address)":{"notice":"Get the latest capture timestamp that was slashed on a subnetwork."},"requestSlash(bytes32,address,uint256,uint48,bytes)":{"notice":"Request a slash using a subnetwork for a particular operator by a given amount using hints."},"resolver(bytes32,bytes)":{"notice":"Get a resolver for a given subnetwork using a hint."},"resolverAt(bytes32,uint48,bytes)":{"notice":"Get a resolver for a given subnetwork at a particular timestamp using a hint."},"resolverSetEpochsDelay()":{"notice":"Get a delay for networks in epochs to update a resolver."},"slashRequests(uint256)":{"notice":"Get a particular slash request."},"slashRequestsLength()":{"notice":"Get a total number of slash requests."},"slashableStake(bytes32,address,uint48,bytes)":{"notice":"Get a slashable amount of a stake got at a given capture timestamp using hints."},"staticDelegateCall(address,bytes)":{"notice":"Make a delegatecall from this contract to a given target contract with a particular data (always reverts with a return data)."},"vault()":{"notice":"Get the vault's address."},"vetoDuration()":{"notice":"Get a duration during which resolvers can veto slash requests."},"vetoSlash(uint256,bytes)":{"notice":"Veto a slash with a given slash index using hints."}},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/contracts/hints/SlasherHints.sol":"VetoSlasherHints"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol":{"keccak256":"0x6662ec4e5cefca03eeadd073e9469df8d2944bb2ee8ec8f7622c2c46aab5f225","urls":["bzz-raw://4d8544c6f8daa4d1bc215c6a72fe0acdb748664a105b0e5efc19295667521d45","dweb:/ipfs/QmdGWqdnXT8S3RgCR6aV8XHZrsybieMQLLnug1NtpSjEXN"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol":{"keccak256":"0xc163fcf9bb10138631a9ba5564df1fa25db9adff73bd9ee868a8ae1858fe093a","urls":["bzz-raw://9706d43a0124053d9880f6e31a59f31bc0a6a3dc1acd66ce0a16e1111658c5f6","dweb:/ipfs/QmUFmfowzkRwGtDu36cXV9SPTBHJ3n7dG9xQiK5B28jTf2"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b","urls":["bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609","dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol":{"keccak256":"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397","urls":["bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9","dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardUpgradeable.sol":{"keccak256":"0xb44e086e941292cdc7f440de51478493894ef0b1aeccb0c4047445919f667f74","urls":["bzz-raw://942dad22fbdc1669f025540ba63aa3ccfad5f8458fc5d4525b31ebf272e7af45","dweb:/ipfs/Qmdo4X2M82aM3AMoW2kf2jhYkSCyC4T1pHNd6obdsDFnAB"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol":{"keccak256":"0xdaba3f7c42c55b2896353f32bd27d4d5f8bae741b3b05d4c53f67abc4dc47ce8","urls":["bzz-raw://1fa2e61141c602510bcd2cd936ed9561922ac8772a9b9c9a9db091a74e354a45","dweb:/ipfs/QmcHQDDoEBwJmwUbzoVkytvJsBx3KVHYFFnDkvRGWh9Wmh"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol":{"keccak256":"0xb6b36edd6a2999fd243ff226d6cbf84bd71af2432bbd0dfe19392996a1d9cb41","urls":["bzz-raw://1fd2f35495652e57e3f99bc6c510bc5f7dd398a176ea2e72d8ed730aebc6ca26","dweb:/ipfs/QmTQV6X4gkikTib49cho5iDX3JvSQbdsoEChoDwrk3CbbH"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC1271.sol":{"keccak256":"0x85a45f3f10014a0f8be41157a32b6a5f905753ea64a4b64e29fc12b7deeecf39","urls":["bzz-raw://c3c74009ce36136b36c77c23935b8e4a7b4f253be2da2be4fb4a916b1ce43743","dweb:/ipfs/QmcH36v3iN7SJJuF73AunLR2LtNxhVJ1wm63ph4dPZ4pcL"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC5267.sol":{"keccak256":"0x92aa1df62dc3d33f1656d63bede0923e0df0b706ad4137c8b10b0a8fe549fd92","urls":["bzz-raw://c5c0f29195ad64cbe556da8e257dac8f05f78c53f90323c0d2accf8e6922d33a","dweb:/ipfs/QmQ61TED8uaCZwcbh8KkgRSsCav7x7HbcGHwHts3U4DmUP"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70","urls":["bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c","dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol":{"keccak256":"0x6008dabfe393240d73d7dd7688033f72740d570aa422254d29a7dce8568f3aff","urls":["bzz-raw://f5196ec75139918c6c7bb4251b36395e668f1fa6d206beba7e7520e74913940d","dweb:/ipfs/QmSyqjksXxmm2mCG6qRd1yuwLykypkSVBbnBnGqJRcuJMi"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0x37bb49513c49c87c4642a891b13b63571bc87013dde806617aa1efb54605f386","urls":["bzz-raw://b3036b3a83b7c48f96641f2a9002b9f2dcb6a5958dd670894ada21ae8229b3d0","dweb:/ipfs/QmUNfSBdoVtjhETaUJCYcaC7pTMgbhht926tJ2uXJbiVd3"],"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/ShortStrings.sol":{"keccak256":"0x18a7171df639a934592915a520ecb97c5bbc9675a1105607aac8a94e72bf62c6","urls":["bzz-raw://7478e1f13da69a2867ccd883001d836b75620362e743f196376d63ed0c422a1c","dweb:/ipfs/QmWywcQ9TNfwtoqAxbn25d8C5VrV12PrPS9UjtGe6pL2BA"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol":{"keccak256":"0x32ba59b4b7299237c8ba56319110989d7978a039faf754793064e967e5894418","urls":["bzz-raw://1ae50c8b562427df610cc4540c9bf104acca7ef8e2dcae567ae7e52272281e9c","dweb:/ipfs/QmTHiadFCSJUPpRjNegc5SahmeU8bAoY8i9Aq6tVscbcKR"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0x55f102ea785d8399c0e58d1108e2d289506dde18abc6db1b7f68c1f9f9bc5792","urls":["bzz-raw://6e52e0a7765c943ef14e5bcf11e46e6139fa044be564881378349236bf2e3453","dweb:/ipfs/QmZEeeXoFPW47amyP35gfzomF9DixqqTEPwzBakv6cZw6i"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol":{"keccak256":"0xeed0a08b0b091f528356cbc7245891a4c748682d4f6a18055e8e6ca77d12a6cf","urls":["bzz-raw://ba80ba06c8e6be852847e4c5f4492cef801feb6558ae09ed705ff2e04ea8b13c","dweb:/ipfs/QmXRJDv3xHLVQCVXg1ZvR35QS9sij5y9NDWYzMfUfAdTHF"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/EIP712.sol":{"keccak256":"0x999f705a027ed6dc2d4e0df2cc4a509852c6bfd11de1c8161bf88832d0503fd0","urls":["bzz-raw://0798def67258d9a3cc20b2b4da7ebf351a5cefe0abfdd665d2d81f8e32f89b21","dweb:/ipfs/QmPEvJosnPfzHNjKvCv2D3891mA2Ww8eUwkqrxBjuYdHCt"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol":{"keccak256":"0xba333517a3add42cd35fe877656fc3dfcc9de53baa4f3aabbd6d12a92e4ea435","urls":["bzz-raw://2ceacff44c0fdc81e48e0e0b1db87a2076d3c1fb497341de077bf1da9f6b406c","dweb:/ipfs/QmRUo1muMRAewxrKQ7TkXUtknyRoR57AyEkoPpiuZQ8FzX"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/SignatureChecker.sol":{"keccak256":"0x6b11eb41a228cca35d4b662b4df69fcd75192851365102690f57b2ac01e83fe6","urls":["bzz-raw://ab006a2983ed350d2af21ddcdd835dcae3b8340086cc4d088460da5abd041f69","dweb:/ipfs/QmbEacDhkJZiGrgzLjB4pNtE8Z1uudjDw1DvcDUTVQFsLG"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b","urls":["bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df","dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d","urls":["bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875","dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol":{"keccak256":"0xe19a4d5f31d2861e7344e8e535e2feafb913d806d3e2b5fe7782741a2a7094fe","urls":["bzz-raw://4aed79c0fa6f0546ed02f2f683e8f77f0fd2ed7eb34d8bbf3d373c9a6d95b13c","dweb:/ipfs/QmWqVz6UAVqmnWU5pqYPt1o6iDEZyPaBraAA3rKfTTSfYj"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0x5f7e4076e175393767754387c962926577f1660dd9b810187b9002407656be72","urls":["bzz-raw://7d533a1c97cd43a57cd9c465f7ee8dd0e39ae93a8fb8ff8e5303a356b081cdcc","dweb:/ipfs/QmVBEei6aTnvYNZp2CHYVNKyZS4q1KkjANfY39WVXZXVoT"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/Checkpoints.sol":{"keccak256":"0xbdc5e074d7dd6678f67e92b1a51a20226801a407b0e1af3da367c5d1ff4519ad","urls":["bzz-raw://a36cca6b22fff3db16fc789ff6c60eea71d4b156065d4d0c83a0bc5e91a77a8b","dweb:/ipfs/QmYN3exd5AemxjBrN8XMB1p5LbbE16uC3sjbYjwi8AjcGR"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/types/Time.sol":{"keccak256":"0xc7755af115020049e4140f224f9ee88d7e1799ffb0646f37bf0df24bf6213f58","urls":["bzz-raw://7f09bf94d5274334ec021f61a04659db303f31e60460e14b709c9bf187740111","dweb:/ipfs/QmNvgomZYUwFAt4cZbPWAiTeSZQreGehY9BK5xyVJsUttb"],"license":"MIT"},"src/contracts/common/Entity.sol":{"keccak256":"0x3d61a932995b8443381f3950542d388223a2c26dd5d29a3274dea3baa7388bd7","urls":["bzz-raw://7cdf5f03ca72fd263fd32ff59c8d88ddca911ae83896a287d10772c1bbe9b138","dweb:/ipfs/QmbP84r5BWT1Rn9AYTntWSf3xUMTTCohTZJFhbBhDXFoHa"],"license":"BUSL-1.1"},"src/contracts/common/MigratableEntity.sol":{"keccak256":"0x2d736f4dacd5d7e7697503bc426c78b8250fe1694ca157965ec178da6807de58","urls":["bzz-raw://f1237acf96b4b9f9b69156e068eddd726a6e15bd8e87a18dc999cd4ba4da069c","dweb:/ipfs/QmS6M8fiFFSeuJ4ZKKq1z8W7w4ybeHQSy5TLASGoc1LVic"],"license":"BUSL-1.1"},"src/contracts/common/StaticDelegateCallable.sol":{"keccak256":"0x350029aa8955eacaffffaeb58babc5c98e80ebc5c5db388ed17ee6465f4a9d90","urls":["bzz-raw://eb392a8ee9050e0af606897df63e3404e3829e8b688b580663892f9664195764","dweb:/ipfs/QmaXC8jqV8UrrAFkzXTEv2fJF56sy33HhLxAzaRZmUxuXD"],"license":"BUSL-1.1"},"src/contracts/delegator/BaseDelegator.sol":{"keccak256":"0x7c54d491fdd4415b764a9c8defa068e56d4c0c8c9419be0053a1d377669290e8","urls":["bzz-raw://9238bfbad0f6eeb0dc7727724de14380f1980b395902269703d5e2ef07e52e10","dweb:/ipfs/QmPJn1V4HNXcEghYvogGuSTF24dSQUPosR5qtsXcmNqRm3"],"license":"BUSL-1.1"},"src/contracts/delegator/FullRestakeDelegator.sol":{"keccak256":"0x0a81c4f8e72914563a9cb771e93acf889c71ea36b7bec040e4eb562b199d5af1","urls":["bzz-raw://6fc66b6ba02da77046a0bbbd1dd407a62c08f52e04486c9cbd2cb1cca3da555f","dweb:/ipfs/QmZQivK1ZnMxfRQQ5aLpV9co5u55wQVNev5Rg1hzAqxhkE"],"license":"BUSL-1.1"},"src/contracts/delegator/NetworkRestakeDelegator.sol":{"keccak256":"0xd3a8e6522f9c6fdcc2da837c9023afd6bdff2bce45a35590320c475519e3636d","urls":["bzz-raw://58b17a87f6554f08376f9ea7fedf486a4aa75801bf0ad8b23ff5a46959b6b7a3","dweb:/ipfs/QmSTmNh67tYt8CmjVZb57r8N3qX5yeYdMApKPJm3qvQgQw"],"license":"BUSL-1.1"},"src/contracts/delegator/OperatorNetworkSpecificDelegator.sol":{"keccak256":"0x031a10722b9ec49048f0952710401131290adb87e71caf294e864e7ac3b98a16","urls":["bzz-raw://72428febc875134b2f29205e6f294634a1c22a7d5c78d6a9cb2f8196f107c9b5","dweb:/ipfs/QmTPwXR6h5oytckmkLrHdKeEMdphJxceDhYUR4zvQeWAwY"],"license":"BUSL-1.1"},"src/contracts/delegator/OperatorSpecificDelegator.sol":{"keccak256":"0x630ce62fa30b9f3349ab7a8cf8dbf041319febc6dd757be2f94d3d25944ed328","urls":["bzz-raw://c2ac59d47ce57d2a6819ae9833e1a618a371eccff93eb5ab367b201b01f42bfa","dweb:/ipfs/QmdBpGMBivpNPv2WbH8vnCUy5xkVeaxQvGgqi33vKCz1kA"],"license":"BUSL-1.1"},"src/contracts/hints/DelegatorHints.sol":{"keccak256":"0x44aa0c396311a54afbc7c73e8dadeed41e3165a4fd13f712b27d63d50fc3376d","urls":["bzz-raw://2f255214f3531fc707d88be0d56a7a0aed4180439316d099d760d9118aa83093","dweb:/ipfs/QmZD1w5p1ukJSXumUAjvxwGmkPhn7vsr21Y2atLGEZR2oi"],"license":"BUSL-1.1"},"src/contracts/hints/Hints.sol":{"keccak256":"0x8b565df1ae35993c097a9e642002782a8f451f6fd01809cad6bcd345bdf1b99c","urls":["bzz-raw://99a19adb01e350a92f534095b3078229df1f2f83077992d75d58d8684be45971","dweb:/ipfs/QmbmwcuswVbzvwHQFTtrJG86oV98GnfxqYTb8cV8u1acox"],"license":"BUSL-1.1"},"src/contracts/hints/OptInServiceHints.sol":{"keccak256":"0x95d9407900d27b9f4a1233b772aeed809c07b2dc5b31cfc9fa77ca26514c49e5","urls":["bzz-raw://a13a8877e312d7e6b8b85bde3668c5d84ff5ecc83f762cd573f2b7104c64eb42","dweb:/ipfs/QmYV2J55acuGzCNnS3juABuUHY5U1xc8g8o9jwEyFFdeG5"],"license":"BUSL-1.1"},"src/contracts/hints/SlasherHints.sol":{"keccak256":"0xd77c5f3bbb0265af8ecd947df88f6f9684e136d80052b5292f5b29aaa3566a3f","urls":["bzz-raw://484a26504bf6706202ec82a9a4cfa7d196bbc552b5b78ced25bf7130c2842595","dweb:/ipfs/QmaQqmkoZoUWEam4R94vmajzH3gKqFqpZQwFbrHDsN1peV"],"license":"BUSL-1.1"},"src/contracts/hints/VaultHints.sol":{"keccak256":"0xccb505b7159b769cc114d67b87c2de6b106557f667fc8f3780114baad5c3c442","urls":["bzz-raw://6d0c80a908fc16e96a8b5605a0bd53f9e89ad0ef0a738fbbae80ba4d3160749b","dweb:/ipfs/QmXo5UtWoR8YmunqcbBU8rQMm1nvmvjNPoXcVrDhh4pEwR"],"license":"BUSL-1.1"},"src/contracts/libraries/Checkpoints.sol":{"keccak256":"0xba90097c8bfe0a975499428b5f8ac5569483c7d92ccc28c12d70de416aae040c","urls":["bzz-raw://12f5d93ca94cd06d3147db68993165a58e17903ed53682560de61f3085ad4609","dweb:/ipfs/QmePiuAqvXprMLmFZkGZeGjvGPAvsEDHfCDv7BoQhXu9xE"],"license":"MIT"},"src/contracts/libraries/ERC4626Math.sol":{"keccak256":"0x8441160513c1cbeb1c3b9ee077bcc7e7ce20006b52a77c8dd39ff0ef89699939","urls":["bzz-raw://943f8cc3e26ddf649f465f40c909819f5c864717c4baa339e9e403b9374a4653","dweb:/ipfs/QmXPxi1sUDsrGprZdUgCzoPEosaZMv9ZhygWQ1vAi1phAB"],"license":"MIT"},"src/contracts/libraries/Subnetwork.sol":{"keccak256":"0xf5ef5506fd66082b3c2e7f3df37529f5a8efad32ac62e7c8914bd63219190bfe","urls":["bzz-raw://ba031a54ee0d0e9a270c2b9e18437f5668cfeb659cfd5fe0677459d7fcac2a56","dweb:/ipfs/QmReP3H7qQ78tAfgLnJKsNEQNCQfF1X1Get38Ffd4kzq32"],"license":"MIT"},"src/contracts/service/OptInService.sol":{"keccak256":"0x4e0932077f2686b7990e10d59deb2535334c0d09e52ef6e57c6ab09eca21c4b1","urls":["bzz-raw://7c00d311032ed4a1743aca7475f3c86ce15cdfc2218108efc3731c03d34a5278","dweb:/ipfs/QmUGGfVwVhaHr5kS4177yKKYiLYzi5qZpkEmvYxBZqazxf"],"license":"BUSL-1.1"},"src/contracts/slasher/BaseSlasher.sol":{"keccak256":"0x190e5dce196a061bdad42468c52e9f5b0eb7810cd7d0c19f04d6a2e94984f1b6","urls":["bzz-raw://07ca08d0cd43c2fe5d54a5577f6bdd522ced410f5d3a52e764deaa7ba26b5f06","dweb:/ipfs/QmZe3PiMKBQKWcwodaLupragdqxPjgS4v1qMC7RXau8hDF"],"license":"BUSL-1.1"},"src/contracts/slasher/Slasher.sol":{"keccak256":"0xeee0cb25fad58d496fdcc641d852d11bae06e6ceed5230ae21150964175c494f","urls":["bzz-raw://34aa27d21246a1bcee0b6a2afa8d9d613441156362430392f75d176511d58c61","dweb:/ipfs/Qmf53Y3zdGfH4PU2zpSGeHZ8mMLzLXCtmkQrG5mnVJECQ3"],"license":"BUSL-1.1"},"src/contracts/slasher/VetoSlasher.sol":{"keccak256":"0xeccc8128de5e1ad499c067feac1c526638fbbac1a18b96726fc7507969fd5897","urls":["bzz-raw://cdfcf281338423625acbccdf8810115b258ef7cfe4aa3c10b8911ead1aa85429","dweb:/ipfs/QmZFsDvZXpkFkx4PHcDXAVPN3ZCAahbSVfYpSVrMBvbt4k"],"license":"BUSL-1.1"},"src/contracts/vault/Vault.sol":{"keccak256":"0x2ceff6ed3298c4cad144c99fcc79b51cb9397d6ebef00285b915848b476f8c2e","urls":["bzz-raw://11f2fb3581854f3ab6e82e8d4935d9eb510c903a13c3f022346c2956a58f5307","dweb:/ipfs/QmdUnoXoyYoG9SGWyQZCFyLDRUUX3eXyXetkRvw6jxqqBz"],"license":"BUSL-1.1"},"src/contracts/vault/VaultStorage.sol":{"keccak256":"0x57db25b127d77ea3472de53e3a4af3354399655b9268638b99ca5925fa364a56","urls":["bzz-raw://aa763d9a6ec508ae3abfb8228b72b9fd9525279e5135d4962e79ff059feb1173","dweb:/ipfs/QmcbDR6E9wyEpu6V2FkEC4hnWy47zXA9LSKJde6zSGd33Q"],"license":"BUSL-1.1"},"src/interfaces/common/IEntity.sol":{"keccak256":"0x8ef4b63d6da63489778ccd5f8d13ebdd527dd4b62730b2c616df5af7474d2d21","urls":["bzz-raw://5a8d69576a9219d85c50816a18ad53a4d53cfcb27ed38b8cccc808dc2734b71b","dweb:/ipfs/QmYVN3P4Q4REvBWJ97TbAcaxm3uyB2anV6NSGa6ZtSwcEv"],"license":"MIT"},"src/interfaces/common/IMigratableEntity.sol":{"keccak256":"0x8f5f2809f3afbe8ebfbb365dd7b57b4dd3b6f9943a6187eaf648d45895b8e3c4","urls":["bzz-raw://0ffe640537d539e7a4fde70d30d3e4c57f4ba9c2c25c450cea713aae38e8fd5c","dweb:/ipfs/QmSUTGzvdcn1R1KB7tLThMRtESsfPbeXDhhhKWGtntzBds"],"license":"MIT"},"src/interfaces/common/IRegistry.sol":{"keccak256":"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb","urls":["bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014","dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK"],"license":"MIT"},"src/interfaces/common/IStaticDelegateCallable.sol":{"keccak256":"0xa335d4e81b9071b7de66ef92b43ff20671d86516eb1be46fef29a3483cd3f5d5","urls":["bzz-raw://d464b9db863c14c05547d2b23352f2e9b7b784799cf09f6bbc4906a2a74e3516","dweb:/ipfs/QmUVWzFvJz7eEbDQKiFTTzwi7TEbjcs3VmwdM4kuptAKvi"],"license":"MIT"},"src/interfaces/delegator/IBaseDelegator.sol":{"keccak256":"0x96bb312f032e17accce3f8f80936d99468029d6b37c9ca74acdb4b026a0148ee","urls":["bzz-raw://2a66dcb5b7d1a6ef6a363431ea98ebd78bc4fdd3d7a134d9b542dc66e7d025c2","dweb:/ipfs/QmRhTPLd2ZAyRHmJUFUcWKs9b3if49QY17LYZuRqWmghw8"],"license":"MIT"},"src/interfaces/delegator/IDelegatorHook.sol":{"keccak256":"0xc51aa8d7d1f6c8043ee819b7aeb86da0e993912e1442098df897e299f01f9f46","urls":["bzz-raw://adddf5cb2ba282aeb576b26efb28640f865a1721cc9b6eee8b3ee0457a2c9780","dweb:/ipfs/QmNYgAmnLRwWZbhTuQhZs9rx4zcme1df5mEepkrniorSoW"],"license":"MIT"},"src/interfaces/delegator/IFullRestakeDelegator.sol":{"keccak256":"0xa3c8cb2e45d4d8ce90e95263bea40c01dc400f05ad65bc29597d878606be5e7d","urls":["bzz-raw://782cf5e201aa4cca037ebafd3807a68ff1cc721d5b8416a35244db0d0607369e","dweb:/ipfs/QmQkJks6x7CKndeTPa9LxgTNygD5uEi7obhADhpq1Lsr9A"],"license":"MIT"},"src/interfaces/delegator/INetworkRestakeDelegator.sol":{"keccak256":"0xe7030fe30389a147fd710e3436ec346b4842695fd3e65a81b95375c9f1d633fc","urls":["bzz-raw://739c7e66d301778054f5c90bee45ec9438f68afba8a03eaaac52064c73b115ad","dweb:/ipfs/QmfZ2ytKcTykAc76nxhg8ikUXV8NdBpetqb8W4YWPcox1Z"],"license":"MIT"},"src/interfaces/delegator/IOperatorNetworkSpecificDelegator.sol":{"keccak256":"0x74b95e64d29769202d45dd277bb830f623ff3d41ce77b80ce3ee4e318a5c71ec","urls":["bzz-raw://e512b903aae5c1b8a028c6e3f4f6223b5cb5d704503cfa6bd37b5346868f5c20","dweb:/ipfs/QmZim9YExsPWtyxyeui993HTKAEmrg8MUcSkZ77Gp2JcuZ"],"license":"MIT"},"src/interfaces/delegator/IOperatorSpecificDelegator.sol":{"keccak256":"0x72075cab585dc17240cc3e32bc99b92f0d5627ddd988fed680e3e1a52d5a01e4","urls":["bzz-raw://7448bc90699409ae61d85216b5efc2143a37f0f73354be2aea993bc54afca441","dweb:/ipfs/QmXE4gAxM8pHosZK8mcTcj17puBx484meDCcmrDePskGHZ"],"license":"MIT"},"src/interfaces/service/INetworkMiddlewareService.sol":{"keccak256":"0x347afc7fcf1fbcdb96d66162070ef6c78aed27b3af2c1d5dfb4e511840631783","urls":["bzz-raw://2d90b8ceb495159e8e4e95d76447719dd166443f67dfabdd942846162071595c","dweb:/ipfs/QmVVuiAWYx92T6vBvNMKZfTvraCf1fa16BsUKkdNs3hdHA"],"license":"MIT"},"src/interfaces/service/IOptInService.sol":{"keccak256":"0x76fb5460a6d87a5705433d4fbeff7253cd75b8bbd0c888b2088f16e86ace146a","urls":["bzz-raw://990322019b3d11465f7024bae77ccbf7e2fe5d6fa3c754584778f37d04fa1337","dweb:/ipfs/QmaSNHzcqxTkUCG9a4nqVfLECHLdjdrwAnDi3yDC7tDL24"],"license":"MIT"},"src/interfaces/slasher/IBaseSlasher.sol":{"keccak256":"0x7c82528b445659c313ab77335c407b0b6efe5e79027187bb287f7bc74202b404","urls":["bzz-raw://0274c90aa5df1aa6bb470a6aab53992fb14fd7e5472c9430416505b29647d9cf","dweb:/ipfs/QmckbmJLDetPemVzCnnGcKYWAZV2BRFXGDsjiaec8jkHxx"],"license":"MIT"},"src/interfaces/slasher/IBurner.sol":{"keccak256":"0xaf495dacc19ae0b3c787ba8021c5944927d70261536addd234d7dab146158c2b","urls":["bzz-raw://9b3cc66251008be6ff9fc8b11ecc6831d5a9dca49a3fe9817fcd970253c1d447","dweb:/ipfs/QmVxfb9ALGdF9W3SN2h41gQbUct6tawvu5bw4K89kFQ4HW"],"license":"MIT"},"src/interfaces/slasher/ISlasher.sol":{"keccak256":"0x34d226d67a3d5e16571f2fac91a8b9773551bcc41c88a96279669dd78d192625","urls":["bzz-raw://7a6e8c1462ee4a1b0f745414be043c09012ea676613790aba004b06c85c980d1","dweb:/ipfs/QmadjNEbHKRthtA1EeNy3Kg2sXpejH2KBeHm8QZtBPvXbJ"],"license":"MIT"},"src/interfaces/slasher/IVetoSlasher.sol":{"keccak256":"0xdf7edd04a4f36e9aec3a15241dcb6b6315b2e64927b12710c2c410d571fc55e9","urls":["bzz-raw://c4be6ac339c2ebf230fed65363f036784224095d0cd0f3f2d01d64d6e0da9508","dweb:/ipfs/QmRSMbpfaHExqrzUA8vYZMYZWh6eQW1KX9JKJSLdgronfg"],"license":"MIT"},"src/interfaces/vault/IVault.sol":{"keccak256":"0xffee01d383cd4e1a5530c614bf4360c1ef070c288abec9da1eb531b51bc07235","urls":["bzz-raw://04f0046cac285d8ec44ebbb1f79dc94fab4495767190cad8364fbc1fafaadfb9","dweb:/ipfs/QmUawAunwzXfCyShWfhKeThAgKtqe51hmrxvrXvM772M2R"],"license":"MIT"},"src/interfaces/vault/IVaultStorage.sol":{"keccak256":"0x592626f13754194f83047135de19229c49390bd59e34659b1bb38be71d973a22","urls":["bzz-raw://06a6a9dfddd05e580b32bebe2cff4f63ba26a653180676d58225dd30d9c89d3e","dweb:/ipfs/QmdgzBeY6Sxo8mGtyBxtv1tM1c2kU6J6zjeRd7vuXm4DU6"],"license":"MIT"}},"version":1},"id":89} \ No newline at end of file +{"abi":[{"type":"constructor","inputs":[{"name":"baseSlasherHints","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"BASE_SLASHER_HINTS","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"BURNER_GAS_LIMIT","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"BURNER_RESERVE","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"FACTORY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"NETWORK_MIDDLEWARE_SERVICE","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"NETWORK_REGISTRY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"TYPE","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"VAULT_FACTORY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"cumulativeSlash","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"cumulativeSlashAt","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"timestamp","type":"uint48","internalType":"uint48"},{"name":"hint","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"executeSlash","inputs":[{"name":"slashIndex","type":"uint256","internalType":"uint256"},{"name":"hints","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"slashedAmount","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"executeSlashHints","inputs":[{"name":"slasher","type":"address","internalType":"address"},{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"captureTimestamp","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"initialize","inputs":[{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"isBurnerHook","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"latestSlashedCaptureTimestamp","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"value","type":"uint48","internalType":"uint48"}],"stateMutability":"view"},{"type":"function","name":"requestSlash","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"captureTimestamp","type":"uint48","internalType":"uint48"},{"name":"hints","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"slashIndex","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"requestSlashHints","inputs":[{"name":"slasher","type":"address","internalType":"address"},{"name":"msgSender","type":"address","internalType":"address"},{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"captureTimestamp","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"resolver","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"hint","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"resolverAt","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"timestamp","type":"uint48","internalType":"uint48"},{"name":"hint","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"resolverHint","inputs":[{"name":"slasher","type":"address","internalType":"address"},{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"timestamp","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"resolverHintInternal","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"timestamp","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"exists","type":"bool","internalType":"bool"},{"name":"hint","type":"uint32","internalType":"uint32"}],"stateMutability":"view"},{"type":"function","name":"resolverSetEpochsDelay","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"setResolver","inputs":[{"name":"identifier","type":"uint96","internalType":"uint96"},{"name":"resolver_","type":"address","internalType":"address"},{"name":"hints","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setResolverHints","inputs":[{"name":"slasher","type":"address","internalType":"address"},{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"timestamp","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"slashRequests","inputs":[{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"captureTimestamp","type":"uint48","internalType":"uint48"},{"name":"vetoDeadline","type":"uint48","internalType":"uint48"},{"name":"completed","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"slashRequestsLength","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"slashableStake","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"captureTimestamp","type":"uint48","internalType":"uint48"},{"name":"hints","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"staticDelegateCall","inputs":[{"name":"target","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"vault","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"vetoDuration","inputs":[],"outputs":[{"name":"","type":"uint48","internalType":"uint48"}],"stateMutability":"view"},{"type":"function","name":"vetoSlash","inputs":[{"name":"slashIndex","type":"uint256","internalType":"uint256"},{"name":"hints","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"vetoSlashHints","inputs":[{"name":"slasher","type":"address","internalType":"address"},{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"captureTimestamp","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"event","name":"ExecuteSlash","inputs":[{"name":"slashIndex","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"slashedAmount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"RequestSlash","inputs":[{"name":"slashIndex","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"subnetwork","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"slashAmount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"captureTimestamp","type":"uint48","indexed":false,"internalType":"uint48"},{"name":"vetoDeadline","type":"uint48","indexed":false,"internalType":"uint48"}],"anonymous":false},{"type":"event","name":"SetResolver","inputs":[{"name":"subnetwork","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"resolver","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"VetoSlash","inputs":[{"name":"slashIndex","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"resolver","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"error","name":"AlreadySet","inputs":[]},{"type":"error","name":"CheckpointUnorderedInsertion","inputs":[]},{"type":"error","name":"ExternalCall","inputs":[]},{"type":"error","name":"InsufficientBurnerGas","inputs":[]},{"type":"error","name":"InsufficientSlash","inputs":[]},{"type":"error","name":"InvalidCaptureTimestamp","inputs":[]},{"type":"error","name":"InvalidInitialization","inputs":[]},{"type":"error","name":"InvalidResolverSetEpochsDelay","inputs":[]},{"type":"error","name":"InvalidVetoDuration","inputs":[]},{"type":"error","name":"NoBurner","inputs":[]},{"type":"error","name":"NoResolver","inputs":[]},{"type":"error","name":"NotInitialized","inputs":[]},{"type":"error","name":"NotInitializing","inputs":[]},{"type":"error","name":"NotNetwork","inputs":[]},{"type":"error","name":"NotNetworkMiddleware","inputs":[]},{"type":"error","name":"NotResolver","inputs":[]},{"type":"error","name":"NotVault","inputs":[]},{"type":"error","name":"ReentrancyGuardReentrantCall","inputs":[]},{"type":"error","name":"SafeCastOverflowedUintDowncast","inputs":[{"name":"bits","type":"uint8","internalType":"uint8"},{"name":"value","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"SlashPeriodEnded","inputs":[]},{"type":"error","name":"SlashRequestCompleted","inputs":[]},{"type":"error","name":"SlashRequestNotExist","inputs":[]},{"type":"error","name":"VetoPeriodEnded","inputs":[]},{"type":"error","name":"VetoPeriodNotEnded","inputs":[]}],"bytecode":{"object":"0x6101603461017c576001600160401b0390601f61377c38819003918201601f1916830191848311848410176101805780849260209460405283398101031261017c5751906001600160a01b038216820361017c57306080527ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a009081549060ff8260401c1661016a578080831603610125575b835f60a0525f60c0525f60e052610100905f8252610120905f8252610140908152604051916135e79384610195853960805184610b66015260a0518461047b015260c0518481816115860152612c5a015260e0518481816102e801526122ba0152518381816104370152612444015251828181610c7801526115dc015251818181610806015281816119140152611d090152f35b6001600160401b031990911681179091556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a15f8080610091565b60405163f92ee8a960e01b8152600490fd5b5f80fd5b634e487b7160e01b5f52604160045260245ffdfe60806040526004361015610011575f80fd5b5f3560e01c80622a087514610213578063103f29071461020e5780631a2be2c4146102095780631dd5f60014610204578063267de1f3146101ff5780632964f8dc146101fa5780632c9d45b3146101f55780632dd31000146101f057806331ce4dfe146101eb57806334d098ea146101e6578063439fab91146101e1578063457821b7146101dc5780635264679b146101d7578063545ce389146101d257806369f78920146101cd5780638f42f9ab146101c85780638f82f931146101c35780639168f9d2146101be5780639a896551146101b95780639f86fd85146101b4578063a4ef9b4f146101af578063aa8e6489146101aa578063aab3595f146101a5578063b94c386e146101a0578063bb24fe8a1461019b578063bc6eac5b14610196578063c0cd7c3e14610191578063cd05b8a11461018c578063d5c24e1a14610187578063e054e08b14610182578063f9268d181461017d5763fbfa77cf14610178575f80fd5b611813565b6116a5565b611680565b611663565b61160b565b6115c7565b6115aa565b611567565b61121b565b6111c3565b611185565b611122565b61108e565b611003565b610bd8565b610b47565b610b2a565b610ae5565b61084f565b610835565b6107f1565b6106b9565b610668565b6105ff565b610466565b610422565b610406565b6103b1565b610397565b610317565b6102d3565b610261565b6001600160a01b0381160361022957565b5f80fd5b65ffffffffffff81160361022957565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b346102295760c0366003190112610229576102c56102b160043561028481610218565b61028f602435610218565b60643561029b81610218565b60a435916102a88361022d565b604435906118c9565b60405191829160208352602083019061023d565b0390f35b5f91031261022957565b34610229575f366003190112610229576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461022957604036600319011261022957602061036361035e60243561033c81610218565b6004355f526002845260405f209060018060a01b03165f5260205260405f2090565b6120d2565b604051908152f35b60609060031901126102295760043561038381610218565b90602435906044356103948161022d565b90565b34610229576102c56102b16103ab3661036b565b916119a0565b3461022957604036600319011261022957602065ffffffffffff6103fc6024356103da81610218565b6004355f526001845260405f209060018060a01b03165f5260205260405f2090565b5416604051908152f35b34610229575f366003190112610229576020604051614e208152f35b34610229575f366003190112610229576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b34610229575f366003190112610229576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b634e487b7160e01b5f52604160045260245ffd5b602081019081106001600160401b038211176104d957604052565b6104aa565b604081019081106001600160401b038211176104d957604052565b606081019081106001600160401b038211176104d957604052565b6001600160401b0381116104d957604052565b608081019081106001600160401b038211176104d957604052565b90601f801991011681019081106001600160401b038211176104d957604052565b6040519060c082018281106001600160401b038211176104d957604052565b6040519061058f826104f9565b565b6040519061058f826104de565b6001600160401b0381116104d957601f01601f191660200190565b81601f82011215610229578035906105d08261059e565b926105de6040519485610542565b8284526020838301011161022957815f926020809301838601378301015290565b346102295760603660031901126102295760243561061c8161022d565b604435906001600160401b0382116102295761065f61064160209336906004016105b9565b6004355f90815260068552604090206001600160a01b03939061214a565b16604051908152f35b34610229575f36600319011261022957602060ff5f5460a01c166040519015158152f35b9181601f84011215610229578235916001600160401b038311610229576020838186019501011161022957565b34610229576020366003190112610229576001600160401b03600435818111610229576106ea90369060040161068c565b5f80516020613592833981519152549260ff8460401c16159316801590816107e9575b60011490816107df575b1590816107d6575b506107c4575f80516020613592833981519152805467ffffffffffffffff1916600117905561075291836107a057612283565b61075857005b5f80516020613592833981519152805460ff60401b19169055604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a1005b5f80516020613592833981519152805460ff60401b1916600160401b179055612283565b60405163f92ee8a960e01b8152600490fd5b9050155f61071f565b303b159150610717565b84915061070d565b34610229575f366003190112610229576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b34610229576102c56102b16108493661036b565b91611a24565b346102295760a0366003190112610229576004602435813561087082610218565b6064359161087d8361022d565b6084356001600160401b0381116102295761089b903690860161068c565b93906108a56123ed565b6108ae8461241c565b6108b6611ab6565b9480610acf575b50506108c8426125ff565b6108e26108db875465ffffffffffff1690565b8092611b17565b5f54909590610907906108fb906001600160a01b031681565b6001600160a01b031690565b958760206040988951928380926327f843b560e11b82525afa8015610aca576109469261093b925f92610a99575b50611a0c565b65ffffffffffff1690565b65ffffffffffff8416908110908115610a83575b50610a735761096f61097891518486886127da565b506044356124b3565b958615610a65576102c5610a3e878988887f3cb7f4ff6cecf74cee0eb9ae3ebf8933fa60a53014cce52f96da72a78dba8464896109bd8a6109b8426125ff565b611b17565b92600354978894610a0e6109cf610563565b8881526001600160a01b0385166020820152808b018a905265ffffffffffff8616606082015265ffffffffffff831660808201525f60a0820152611b59565b885197885265ffffffffffff938416602089015290921660408701526001600160a01b0316949081906060820190565b0390a4610a5760015f8051602061357283398151915255565b519081529081906020820190565b855163167f871760e31b8152fd5b8551631357ac9160e11b81528790fd5b9050610a9161093b426125ff565b11155f61095a565b610abc91925060203d602011610ac3575b610ab48183610542565b810190611b31565b905f610935565b503d610aaa565b6118a5565b610add929550810190611ac9565b925f806108bd565b34610229576080366003190112610229576102c56102b1600435610b0881610218565b604435610b1481610218565b60643591610b218361022d565b60243590611c8f565b34610229575f366003190112610229576020600354604051908152f35b3461022957604036600319011261022957602435610b648161022d565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163303610bc65763ffffffff610bb16040926004355f526006602052835f206124e9565b91505083929192519215158352166020820152f35b604051637ca475e560e11b8152600490fd5b346102295760603660031901126102295760048035906bffffffffffffffffffffffff8216820361022957602435610c0f81610218565b6044356001600160401b03811161022957610c2d903690840161068c565b90610c366123ed565b610c3e611ab6565b5081610f9e575b5050604080516302910f8b60e31b8152338185019081526001600160a01b0395929491602091829082908190830103818a7f0000000000000000000000000000000000000000000000000000000000000000165afa908115610aca575f91610f71575b5015610f62575f54610ce3906001600160a01b0316936bffffffffffffffffffffffff166bffffffffffffffffffffffff193360601b161790565b95610cfe610cf9885f52600660205260405f2090565b61323a565b50949015610ef857610d1261093b426125ff565b65ffffffffffff9586161115610ec257610d3c610d37895f52600660205260405f2090565b6125c0565b505b610d616108fb6108fb6108fb610d5c8c5f52600660205260405f2090565b612e78565b91808716928303610dcd575b505050505050610db2907f7b0b759b513b299fd2811f51926dca8854222a675557e8d544ce0933bf5b7570925b516001600160a01b0390911681529081906020820190565b0390a2610dcb60015f8051602061357283398151915255565b005b610de48998959796985f52600660205260405f2090565b911692845163186a323160e21b815281818981885afa908115610aca575f91610ea5575b5081600554958751998a80926327f843b560e11b82525afa908115610aca5789610e6d610e7f977f7b0b759b513b299fd2811f51926dca8854222a675557e8d544ce0933bf5b75709c610e7495610db29d610e79985f92610e88575b50501690611dde565b9116611dff565b6125ff565b90613447565b82958495610d6d565b610e9e9250803d10610ac357610ab48183610542565b5f80610e64565b610ebc9150823d8411610ac357610ab48183610542565b5f610e08565b610ee06108fb6108fb6108fb610d5c8c5f52600660205260405f2090565b82871603610d3e57865163a741a04560e01b81528490fd5b5093949385169250508115610f54575091610db291610f4d7f7b0b759b513b299fd2811f51926dca8854222a675557e8d544ce0933bf5b757094610f44875f52600660205260405f2090565b610e79426125ff565b5050610d9a565b825163a741a04560e01b8152fd5b5083516323d53b9760e21b8152fd5b610f919150823d8411610f97575b610f898183610542565b810190611dca565b5f610ca8565b503d610f7f565b610faa91810190611ac9565b505f80610c45565b634e487b7160e01b5f52603260045260245ffd5b600354811015610ffe5760035f5260021b7fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b01905f90565b610fb2565b34610229576020366003190112610229576004356003548110156102295761102a90610fc6565b50805460018201546002830154600390930154604080519384526001600160a01b0390921660208401529082019290925265ffffffffffff808316606080840191909152603084901c90911660808301529190911c60ff16151560a082015260c090f35b34610229576040366003190112610229576004356110ab81610218565b6024356001600160401b038111610229575f916110cd8392369060040161068c565b90816040519283928337810184815203915af461111a6110eb611e0c565b9161110c60405193849215156020840152604080840152606083019061023d565b03601f198101835282610542565b805190602001fd5b34610229576102c56102b16111363661036b565b91611e6d565b906080600319830112610229576004359160243561115981610218565b916044356111668161022d565b91606435906001600160401b03821161022957610394916004016105b9565b346102295760206103636111be61119b3661113c565b939190925f526002865260405f209060018060a01b03165f5260205260405f2090565b612665565b346102295760206111df6111d63661113c565b929190916127da565b50604051908152f35b9060406003198301126102295760043591602435906001600160401b038211610229576112179160040161068c565b9091565b3461022957611229366111e8565b91906112336123ed565b61123b611f92565b9280611551575b505060035481101561153f5761125781610fc6565b50908154906112658261241c565b6003830180549365ffffffffffff9384861660018060a01b0361128a895183856119b7565b16151580611514575b806114fb575b6114e9576112af816112aa426125ff565b611a0c565b5f546112c5906108fb906001600160a01b031681565b96600460206040998a51928380926327f843b560e11b82525afa8015610aca5782915f916114ca575b50169116116114b957600183018054909861131993929188906001600160a01b0316910151926127da565b906113288160028501546124b3565b9687156114a85760601c60ff166114975792611450611443899461141b6114088b9687876102c59f6114168f9d8f9e6114569f61137286600160601b60ff60601b19825416179055565b8a54855461139491906001600160a01b0316885465ffffffffffff1691612a0a565b8a5485546113ad9189916001600160a01b031690612a8a565b8a5494546113cb906001600160a01b0316965465ffffffffffff1690565b976113d4610582565b9384526020840152818301525196879160208301919091604080606083019480518452602081015160208501520151910152565b03601f198101875286610542565b612bf6565b61143461142e855465ffffffffffff1690565b86612cff565b5494546001600160a01b031690565b915465ffffffffffff1690565b92612d7c565b81518381527f5cc28df3b54da9d06f805d87616ebf969c81310f2aa8369cb14ca50f815d411190602090a2610a5760015f8051602061357283398151915255565b8551633428e90760e01b8152600490fd5b865163167f871760e31b8152600490fd5b8551639ea153eb60e01b8152600490fd5b6114e3915060203d602011610ac357610ab48183610542565b5f6112ee565b60405163b62b15c760e01b8152600490fd5b5061150861093b426125ff565b868860301c1611611299565b506115386108fb61152c611527426125ff565b6119f0565b60208b015190856119b7565b1515611293565b604051637822972360e11b8152600490fd5b61155f929350810190611fb1565b905f80611242565b34610229575f3660031901126102295760206040516001600160401b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b34610229575f366003190112610229576020600554604051908152f35b34610229575f366003190112610229576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b34610229576040366003190112610229576024356001600160401b0381116102295761165161164060209236906004016105b9565b611649426125ff565b6004356119b7565b6040516001600160a01b039091168152f35b34610229575f366003190112610229576020604051620249f08152f35b34610229575f36600319011261022957602065ffffffffffff60045416604051908152f35b34610229576116b3366111e8565b906116bc6123ed565b6116c4612039565b91806117ff575b505060035482101561153f576116e082610fc6565b506003815491019182549165ffffffffffff9160018060a01b036117088251858716856119b7565b169182159182156117d6575b50506117c45733036117b25761172c61093b426125ff565b908260301c1611156117a15760601c60ff1661178f57805460ff60601b1916600160601b17905533907f7d3d269c851b72257a5194a401d151902e9be4347d555996dcff3ff86a077e925f80a3610dcb60015f8051602061357283398151915255565b604051633428e90760e01b8152600490fd5b60405162c457e560e81b8152600490fd5b604051635d154fe160e11b8152600490fd5b60405163dd1ebd9d60e01b8152600490fd5b6117f79250906108fb9160206117ee611527426125ff565b910151916119b7565b155f80611714565b61180c9250810190612052565b5f806116cb565b34610229575f366003190112610229575f546040516001600160a01b039091168152602090f35b81601f82011215610229578051906118518261059e565b9261185f6040519485610542565b8284526020838301011161022957815f9260208093018386015e8301015290565b906020828203126102295781516001600160401b03811161022957610394920161183a565b6040513d5f823e3d90fd5b604061039492602083525191602080820152019061023d565b604051632751749360e11b81526001600160a01b0391821660048201526024810192909252909116604482015265ffffffffffff9091166064820152606091905f81806084810103817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa908115610aca575f9161197e575b5080516119565750565b61110c919250610394906040519061196d826104be565b8152604051928391602083016118b0565b61199a91503d805f833e6119928183610542565b810190611880565b5f61194c565b92916119ae91606094611e6d565b80516119565750565b5f9081526006602052604090206001600160a01b03926119d892909161214a565b1690565b634e487b7160e01b5f52601160045260245ffd5b65ffffffffffff9081165f190191908211611a0757565b6119dc565b65ffffffffffff9182169082160391908211611a0757565b611a4590939293611a386060958483611e6d565b92611136611527426125ff565b815115801590611aac575b611a58575050565b611a999293509061110c6103949260405192611a73846104de565b83526020830190815260405194859360208086015251604080860152608085019061023d565b9051838203603f1901606085015261023d565b5080511515611a50565b60405190611ac3826104be565b60608252565b906020828203126102295781356001600160401b03928382116102295701906020828203126102295760405192611aff846104be565b823590811161022957611b1292016105b9565b815290565b91909165ffffffffffff80809416911601918211611a0757565b9081602091031261022957516103948161022d565b634e487b7160e01b5f525f60045260245ffd5b600354600160401b8110156104d957806001611b789201600355610fc6565b919091611c3b578051825560208101516001830180546001600160a01b0319166001600160a01b039290921691909117905561058f91611c219060a090600390604085015160028201550192611bee65ffffffffffff606083015116859065ffffffffffff1665ffffffffffff19825416179055565b60808101516bffffffffffff00000000000085549160301b16906bffffffffffff00000000000019161784550151151590565b815460ff60601b191690151560601b60ff60601b16179055565b611b46565b906103949160208152611c5f825160606020840152608083019061023d565b9060606040611c7f602086015194601f199586868303018487015261023d565b940151928285030191015261023d565b919093925f606095611ca2838287611e6d565b94611d05611cbc611cb5611527426125ff565b8484611e6d565b604051632751749360e11b81526001600160a01b039384166004820152602481019490945291909516604483015265ffffffffffff909316606482015292839081906084820190565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa918215610aca575f92611da1575b50825115801590611d97575b8015611d8d575b611d5d57505050565b61110c939450906103949291611d71610582565b9283526020830152604082015260405192839160208301611c40565b5081511515611d54565b5080511515611d4d565b611db69192503d805f833e6119928183610542565b905f611d41565b5190811515820361022957565b908160209103126102295761039490611dbd565b81810292918115918404141715611a0757565b9060018201809211611a0757565b91908201809211611a0757565b3d15611e36573d90611e1d8261059e565b91611e2b6040519384610542565b82523d5f602084013e565b606090565b519063ffffffff8216820361022957565b9190826040910312610229576103946020611e6684611dbd565b9301611e3b565b92915f8060609565ffffffffffff60405194602096638f82f93160e01b88880152602487015216604485015260448452611ea684610527565b6040519384611ed387820192639f86fd8560e01b845230602484015260406044840152606483019061023d565b0394611ee7601f1996878101835282610542565b51915afa50611f05611ef7611e0c565b838082518301019101612631565b9015611f5857808380611f1d93518301019101611e4c565b9290611f2857505050565b61039492939450611f4c604051948592830191909163ffffffff6020820193169052565b03908101835282610542565b809150519182156102295701fd5b5f9081526002602090815260408083206001600160a01b03909416835292905220610394929190612665565b60405190611f9f826104f9565b60606040838281528260208201520152565b906020828203126102295781356001600160401b03928382116102295701906060828203126102295760405192611fe7846104f9565b82358181116102295782611ffc9185016105b9565b8452602083013581811161022957826120169185016105b9565b602085015260408301359081116102295761203192016105b9565b604082015290565b60405190612046826104de565b60606020838281520152565b906020828203126102295781356001600160401b03928382116102295701906040828203126102295760405192612088846104de565b8235818111610229578261209d9185016105b9565b84526020830135908111610229576120b592016105b9565b602082015290565b8054821015610ffe575f5260205f2001905f90565b6120db81612e78565b6001600160d01b038116156121005760016120f692016120bd565b90549060031b1c90565b50505f90565b908160209103126102295761039490611e3b565b5f19810191908211611a0757565b91908203918211611a0757565b90600163ffffffff80931601918211611a0757565b9180511561222e578060208061216593518301019101612106565b916121708382612eb8565b92612181845165ffffffffffff1690565b9065ffffffffffff808516921682811461221557821191826121c0575b50506121ae576103949250613346565b5050602001516001600160d01b031690565b9091506121cd835461211a565b63ffffffff8316149182156121e6575b50505f8061219e565b61220d9192506122016121fb61093b92612135565b85612eb8565b5165ffffffffffff1690565b115f806121dd565b50505050602091909101516001600160d01b0316905090565b5061039491613346565b91909160408184031261022957803561225081610218565b9260208201356001600160401b0381116102295761039492016105b9565b90816020910312610229575161039481610218565b61228f91810190612238565b6040516302910f8b60e31b81526001600160a01b0392831660048201819052929160209182816024817f000000000000000000000000000000000000000000000000000000000000000088165afa908115610aca575f916123d0575b50156123be5781612320600492612300612f0c565b5f80546001600160a01b0319166001600160a01b03891617905586612f99565b94604051928380926313c085b760e11b82525afa918215610aca575f92612391575b5050161580612387575b612375575161058f9015155f805460ff60a01b191691151560a01b60ff60a01b16919091179055565b60405163d2420f5960e01b8152600490fd5b508051151561234c565b6123b09250803d106123b7575b6123a88183610542565b81019061226e565b5f80612342565b503d61239e565b6040516362df054560e01b8152600490fd5b6123e79150833d8511610f9757610f898183610542565b5f6122eb565b5f80516020613572833981519152600281541461240a5760029055565b604051633ee5aeb560e01b8152600490fd5b604051635daf681960e11b815260609190911c60048201526001600160a01b036020826024817f000000000000000000000000000000000000000000000000000000000000000085165afa918215610aca575f92612492575b503391160361248057565b60405163227bf64d60e01b8152600490fd5b6124ac91925060203d6020116123b7576123a88183610542565b905f612475565b90808210156124c0575090565b905090565b906040516124d2816104de565b915465ffffffffffff8116835260301c6020830152565b908154905f829160058411612572575b6125049350846131d8565b90811561256657612525906125188361211a565b905f5260205f20016124c5565b9161255f6125566125506020612541875165ffffffffffff1690565b9601516001600160d01b031690565b9361211a565b63ffffffff1690565b6001939291565b50505f905f905f905f90565b919261257d8161309a565b8103908111611a075761250493855f5265ffffffffffff808360205f20015416908516105f146125ae5750916124f9565b9291506125ba90611df1565b906124f9565b906125ca82612e78565b91805480156125eb575f1901906125e182826120bd565b611c3b575f905555565b634e487b7160e01b5f52603160045260245ffd5b65ffffffffffff90818111612612571690565b604490604051906306dfcc6560e41b8252603060048301526024820152fd5b9190916040818403126102295761264781611dbd565b9260208201516001600160401b03811161022957610394920161183a565b91805115612727578060208061268093518301019101612106565b9161268b8382613294565b9261269c845165ffffffffffff1690565b9065ffffffffffff808516921682811461271b57821191826126d2575b50506126c9576103949250613289565b50506020015190565b9091506126df835461211a565b63ffffffff8316149182156126f8575b50505f806126b9565b61271391925061220161270d61093b92612135565b85613294565b115f806126ef565b50505050506020015190565b5061039491613289565b906020828203126102295781516001600160401b03928382116102295701906040828203126102295760405192612767846104de565b8251818111610229578261277c91850161183a565b84526020830151908111610229576120b5920161183a565b90816020910312610229575190565b9081526001600160a01b03909116602082015265ffffffffffff90911660408201526080606082018190526103949291019061023d565b926127e3612039565b908051806129f0575b50506127f7426125ff565b5f54909490612810906108fb906001600160a01b031681565b93604051956327f843b560e11b875260209687816004818a5afa8015610aca576128449261093b925f926129d85750611a0c565b65ffffffffffff82169081109081156129c1575b8115612990575b50612984578560049560405196878092630ce9b79360e41b82525afa948515610aca576128b19587915f91612967575b50845190604051808099819463e02f693760e01b8352878b8a600486016127a3565b03916001600160a01b03165afa938415610aca57612923955f95612926575b5092612918859361291e9361291896869a61290f61035e836128fa875f52600260205260405f2090565b9060018060a01b03165f5260205260405f2090565b95015192611f66565b90612128565b6124b3565b91565b61291e929550612918949193612954612918928a3d8c11612960575b61294c8183610542565b810190612794565b969350939194506128d0565b503d612942565b61297e9150823d84116123b7576123a88183610542565b5f61288f565b5050505050505f905f90565b90506129ba61093b6129ae876128fa875f52600160205260405f2090565b5465ffffffffffff1690565b115f61285f565b90506129cf61093b426125ff565b81101590612858565b610abc9192508a3d8c11610ac357610ab48183610542565b612a039250602080918301019101612731565b5f806127ec565b919091805f52600160205265ffffffffffff80612a3a8560405f209060018060a01b03165f5260205260405f2090565b541690831611612a4957505050565b61058f92612a71915f52600160205260405f209060018060a01b03165f5260205260405f2090565b9065ffffffffffff1665ffffffffffff19825416179055565b9190825f526002602052612ae261035e612ab78360405f209060018060a01b03165f5260205260405f2090565b92612ac1426125ff565b955f52600260205260405f209060018060a01b03165f5260205260405f2090565b918201809211611a07576001810190815415612b86575b612b028161323a565b509490835495612b11846120d2565b5081612b71575b5015612b505750505f198301928311611a075761058f92612b38916120bd565b90919082549060031b91821b915f19901b1916179055565b61058f94612b6a926001600160d01b039091169190613447565b5050613323565b65ffffffffffff83811691161490505f612b18565b612b8f826132f6565b612af9565b60606020610394938184526001600160401b0381511682850152015191604080820152019061023d565b919360a093610394969565ffffffffffff938552600180871b031660208501526040840152166060820152816080820152019061023d565b92939060046020612c136108fb6108fb5f5460018060a01b031690565b604051630ce9b79360e41b815292839182905afa908115610aca5761110c91612c91915f91612ce0575b506001600160a01b031693612c50610591565b6001600160401b037f000000000000000000000000000000000000000000000000000000000000000016815290602082015260405192839160208301612b94565b823b15610229575f94612cbc86926040519889978896879563724ab0f760e11b875260048701612bbe565b03925af18015610aca57612ccd5750565b80612cda61058f92610514565b806102c9565b612cf9915060203d6020116123b7576123a88183610542565b5f612c3d565b65ffffffffffff9160446020925f60018060a01b038154166040519687958694631c9e38c760e21b865260048601521660248401525af18015610aca57612d435750565b612d5b9060203d6020116129605761294c8183610542565b50565b8115612d68570490565b634e487b7160e01b5f52601260045260245ffd5b92905f549060ff8260a01c16612d94575b5050505050565b6040516313c085b760e11b815291602090839060049082906001600160a01b03165afa918215610aca575f92612e51575b5060405163065c1e0360e01b6020820190815260248201969096526001600160a01b039091166044820152606481019390935265ffffffffffff9091166084830152612e1e8260a481015b03601f198101845283610542565b6202a15c5a10612e3f575f928380935192620249f0f1505f80808080612d8d565b604051632153f33560e21b8152600490fd5b612e1e9250612e71612e109160203d6020116123b7576123a88183610542565b9250612dc5565b805480612e855750505f90565b5f19918183810111611a07575f5260205f2001015460301c90565b60405190612ead826104de565b5f6020838281520152565b612edd91612ed791612ec8612ea0565b50612ed1612ea0565b506120bd565b506124c5565b65ffffffffffff81511690602060018060d01b039101511660405191612f02836104de565b8252602082015290565b612f146133d2565b612f1c6133d2565b60015f8051602061357283398151915255565b60405190612f3c826104be565b5f8252565b809103906060821261022957602060405192612f5c846104f9565b12610229576040908151612f6f816104be565b612f7882611dbd565b815283526020810151612f8a8161022d565b60208401520151604082015290565b90600490612fa5612f2f565b508051612fbc602092838080948301019101612f41565b6040516327f843b560e11b815290949093849182906001600160a01b03165afa918215610aca575f9261307b575b50820190612ffe825165ffffffffffff1690565b65ffffffffffff91821691161015613069576040820160038151106130575761304d613033613053935165ffffffffffff1690565b65ffffffffffff1665ffffffffffff196004541617600455565b51600555565b5190565b6040516354f778f360e01b8152600490fd5b6040516367d5e3df60e11b8152600490fd5b816130939293503d8411610ac357610ab48183610542565b905f612fea565b80156131d3578061316c61316561315b61315161314761313d61313361312960016103949a5f908b60801c806131c7575b508060401c806131ba575b508060201c806131ad575b508060101c806131a0575b508060081c80613193575b508060041c80613186575b508060021c80613179575b50821c613172575b811c1b613122818b612d5e565b0160011c90565b613122818a612d5e565b6131228189612d5e565b6131228188612d5e565b6131228187612d5e565b6131228186612d5e565b6131228185612d5e565b8092612d5e565b906124b3565b8101613115565b600291509101905f61310d565b600491509101905f613102565b600891509101905f6130f7565b601091509101905f6130ec565b602091509101905f6130e1565b604091509101905f6130d6565b9150506080905f6130cb565b505f90565b91905b8382106131e85750505090565b909192808316906001818518811c8301809311611a0757855f5265ffffffffffff808460205f20015416908516105f14613227575050925b91906131db565b909493508101809111611a075791613220565b80548061324b5750505f905f905f90565b5f19908082810111611a0757613268925f5260205f2001016124c5565b9065ffffffffffff82511691602060018060d01b0391015116906001929190565b906120db9082613346565b906132b7612ed76132d8926132a7612ea0565b506132b0612ea0565b50846120bd565b91600165ffffffffffff845116936020828060d01b039101511691016120bd565b905490604051926132e8846104de565b835260031b1c602082015290565b8054600160401b8110156104d957613313916001820181556120bd565b8154905f199060031b1b19169055565b90815491600160401b8310156104d95782612b3891600161058f950181556120bd565b908154905f829160058411613384575b6133619350846131d8565b8061336c5750505f90565b6133759061211a565b905f5260205f20015460301c90565b919261338f8161309a565b8103908111611a075761336193855f5265ffffffffffff808360205f20015416908516105f146133c0575091613356565b9291506133cc90611df1565b90613356565b60ff5f805160206135928339815191525460401c16156133ee57565b604051631afcd79f60e31b8152600490fd5b8054600160401b8110156104d95761341d916001820181556120bd565b611c3b57815160209092015160301b65ffffffffffff191665ffffffffffff909216919091179055565b8054929392919082156135485761347361346e6134638561211a565b835f5260205f200190565b6124c5565b90613484825165ffffffffffff1690565b65ffffffffffff84811691168110613536576134fa9460209488926134b261093b875165ffffffffffff1690565b036134fe57506134ec926134c86134d39261211a565b905f5260205f200190565b9065ffffffffffff82549181199060301b169116179055565b01516001600160d01b031690565b9190565b9150506135319161351e613510610591565b65ffffffffffff9093168352565b6001600160d01b03881682860152613400565b6134ec565b604051632520601d60e01b8152600490fd5b61356c9250613558613510610591565b6001600160d01b0385166020830152613400565b5f919056fe9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a264697066735822122076922ea6e3ad8fc57d79a3decbb6a526695968650fb8ee8d88110f7794fd659264736f6c63430008190033","sourceMap":"3563:3596:84:-:0;;;;-1:-1:-1;;;;;3563:3596:84;;;;;;;;;;-1:-1:-1;;3563:3596:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3563:3596:84;;;;;;348:4:82;332:21;;8837:64:25;3563:3596:84;;;;;;;;;7896:76:25;;3563:3596:84;;;;7985:34:25;7981:146;;-1:-1:-1;525:17:69;-1:-1:-1;525:17:69;;-1:-1:-1;552:12:69;;-1:-1:-1;2353:28:92;;2391:53;;-1:-1:-1;2391:53:92;;1620:34:94;;-1:-1:-1;1620:34:94;;3901:37:84;;;;3563:3596;;;;;;;;;332:21:82;3563:3596:84;;;;;525:17:69;3563:3596:84;;;;;552:12:69;3563:3596:84;;;;;;;;;;2353:28:92;3563:3596:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7981:146:25;-1:-1:-1;;;;;;3563:3596:84;;;;;;;;;;;;;8087:29:25;;3563:3596:84;;8087:29:25;7981:146;;;;;7896:76;3563:3596:84;;-1:-1:-1;;;7938:23:25;;;;;3563:3596:84;-1:-1:-1;3563:3596:84;;;;;;-1:-1:-1;3563:3596:84;;;;;-1:-1:-1;3563:3596:84","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361015610011575f80fd5b5f3560e01c80622a087514610213578063103f29071461020e5780631a2be2c4146102095780631dd5f60014610204578063267de1f3146101ff5780632964f8dc146101fa5780632c9d45b3146101f55780632dd31000146101f057806331ce4dfe146101eb57806334d098ea146101e6578063439fab91146101e1578063457821b7146101dc5780635264679b146101d7578063545ce389146101d257806369f78920146101cd5780638f42f9ab146101c85780638f82f931146101c35780639168f9d2146101be5780639a896551146101b95780639f86fd85146101b4578063a4ef9b4f146101af578063aa8e6489146101aa578063aab3595f146101a5578063b94c386e146101a0578063bb24fe8a1461019b578063bc6eac5b14610196578063c0cd7c3e14610191578063cd05b8a11461018c578063d5c24e1a14610187578063e054e08b14610182578063f9268d181461017d5763fbfa77cf14610178575f80fd5b611813565b6116a5565b611680565b611663565b61160b565b6115c7565b6115aa565b611567565b61121b565b6111c3565b611185565b611122565b61108e565b611003565b610bd8565b610b47565b610b2a565b610ae5565b61084f565b610835565b6107f1565b6106b9565b610668565b6105ff565b610466565b610422565b610406565b6103b1565b610397565b610317565b6102d3565b610261565b6001600160a01b0381160361022957565b5f80fd5b65ffffffffffff81160361022957565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b346102295760c0366003190112610229576102c56102b160043561028481610218565b61028f602435610218565b60643561029b81610218565b60a435916102a88361022d565b604435906118c9565b60405191829160208352602083019061023d565b0390f35b5f91031261022957565b34610229575f366003190112610229576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461022957604036600319011261022957602061036361035e60243561033c81610218565b6004355f526002845260405f209060018060a01b03165f5260205260405f2090565b6120d2565b604051908152f35b60609060031901126102295760043561038381610218565b90602435906044356103948161022d565b90565b34610229576102c56102b16103ab3661036b565b916119a0565b3461022957604036600319011261022957602065ffffffffffff6103fc6024356103da81610218565b6004355f526001845260405f209060018060a01b03165f5260205260405f2090565b5416604051908152f35b34610229575f366003190112610229576020604051614e208152f35b34610229575f366003190112610229576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b34610229575f366003190112610229576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b634e487b7160e01b5f52604160045260245ffd5b602081019081106001600160401b038211176104d957604052565b6104aa565b604081019081106001600160401b038211176104d957604052565b606081019081106001600160401b038211176104d957604052565b6001600160401b0381116104d957604052565b608081019081106001600160401b038211176104d957604052565b90601f801991011681019081106001600160401b038211176104d957604052565b6040519060c082018281106001600160401b038211176104d957604052565b6040519061058f826104f9565b565b6040519061058f826104de565b6001600160401b0381116104d957601f01601f191660200190565b81601f82011215610229578035906105d08261059e565b926105de6040519485610542565b8284526020838301011161022957815f926020809301838601378301015290565b346102295760603660031901126102295760243561061c8161022d565b604435906001600160401b0382116102295761065f61064160209336906004016105b9565b6004355f90815260068552604090206001600160a01b03939061214a565b16604051908152f35b34610229575f36600319011261022957602060ff5f5460a01c166040519015158152f35b9181601f84011215610229578235916001600160401b038311610229576020838186019501011161022957565b34610229576020366003190112610229576001600160401b03600435818111610229576106ea90369060040161068c565b5f80516020613592833981519152549260ff8460401c16159316801590816107e9575b60011490816107df575b1590816107d6575b506107c4575f80516020613592833981519152805467ffffffffffffffff1916600117905561075291836107a057612283565b61075857005b5f80516020613592833981519152805460ff60401b19169055604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a1005b5f80516020613592833981519152805460ff60401b1916600160401b179055612283565b60405163f92ee8a960e01b8152600490fd5b9050155f61071f565b303b159150610717565b84915061070d565b34610229575f366003190112610229576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b34610229576102c56102b16108493661036b565b91611a24565b346102295760a0366003190112610229576004602435813561087082610218565b6064359161087d8361022d565b6084356001600160401b0381116102295761089b903690860161068c565b93906108a56123ed565b6108ae8461241c565b6108b6611ab6565b9480610acf575b50506108c8426125ff565b6108e26108db875465ffffffffffff1690565b8092611b17565b5f54909590610907906108fb906001600160a01b031681565b6001600160a01b031690565b958760206040988951928380926327f843b560e11b82525afa8015610aca576109469261093b925f92610a99575b50611a0c565b65ffffffffffff1690565b65ffffffffffff8416908110908115610a83575b50610a735761096f61097891518486886127da565b506044356124b3565b958615610a65576102c5610a3e878988887f3cb7f4ff6cecf74cee0eb9ae3ebf8933fa60a53014cce52f96da72a78dba8464896109bd8a6109b8426125ff565b611b17565b92600354978894610a0e6109cf610563565b8881526001600160a01b0385166020820152808b018a905265ffffffffffff8616606082015265ffffffffffff831660808201525f60a0820152611b59565b885197885265ffffffffffff938416602089015290921660408701526001600160a01b0316949081906060820190565b0390a4610a5760015f8051602061357283398151915255565b519081529081906020820190565b855163167f871760e31b8152fd5b8551631357ac9160e11b81528790fd5b9050610a9161093b426125ff565b11155f61095a565b610abc91925060203d602011610ac3575b610ab48183610542565b810190611b31565b905f610935565b503d610aaa565b6118a5565b610add929550810190611ac9565b925f806108bd565b34610229576080366003190112610229576102c56102b1600435610b0881610218565b604435610b1481610218565b60643591610b218361022d565b60243590611c8f565b34610229575f366003190112610229576020600354604051908152f35b3461022957604036600319011261022957602435610b648161022d565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163303610bc65763ffffffff610bb16040926004355f526006602052835f206124e9565b91505083929192519215158352166020820152f35b604051637ca475e560e11b8152600490fd5b346102295760603660031901126102295760048035906bffffffffffffffffffffffff8216820361022957602435610c0f81610218565b6044356001600160401b03811161022957610c2d903690840161068c565b90610c366123ed565b610c3e611ab6565b5081610f9e575b5050604080516302910f8b60e31b8152338185019081526001600160a01b0395929491602091829082908190830103818a7f0000000000000000000000000000000000000000000000000000000000000000165afa908115610aca575f91610f71575b5015610f62575f54610ce3906001600160a01b0316936bffffffffffffffffffffffff166bffffffffffffffffffffffff193360601b161790565b95610cfe610cf9885f52600660205260405f2090565b61323a565b50949015610ef857610d1261093b426125ff565b65ffffffffffff9586161115610ec257610d3c610d37895f52600660205260405f2090565b6125c0565b505b610d616108fb6108fb6108fb610d5c8c5f52600660205260405f2090565b612e78565b91808716928303610dcd575b505050505050610db2907f7b0b759b513b299fd2811f51926dca8854222a675557e8d544ce0933bf5b7570925b516001600160a01b0390911681529081906020820190565b0390a2610dcb60015f8051602061357283398151915255565b005b610de48998959796985f52600660205260405f2090565b911692845163186a323160e21b815281818981885afa908115610aca575f91610ea5575b5081600554958751998a80926327f843b560e11b82525afa908115610aca5789610e6d610e7f977f7b0b759b513b299fd2811f51926dca8854222a675557e8d544ce0933bf5b75709c610e7495610db29d610e79985f92610e88575b50501690611dde565b9116611dff565b6125ff565b90613447565b82958495610d6d565b610e9e9250803d10610ac357610ab48183610542565b5f80610e64565b610ebc9150823d8411610ac357610ab48183610542565b5f610e08565b610ee06108fb6108fb6108fb610d5c8c5f52600660205260405f2090565b82871603610d3e57865163a741a04560e01b81528490fd5b5093949385169250508115610f54575091610db291610f4d7f7b0b759b513b299fd2811f51926dca8854222a675557e8d544ce0933bf5b757094610f44875f52600660205260405f2090565b610e79426125ff565b5050610d9a565b825163a741a04560e01b8152fd5b5083516323d53b9760e21b8152fd5b610f919150823d8411610f97575b610f898183610542565b810190611dca565b5f610ca8565b503d610f7f565b610faa91810190611ac9565b505f80610c45565b634e487b7160e01b5f52603260045260245ffd5b600354811015610ffe5760035f5260021b7fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b01905f90565b610fb2565b34610229576020366003190112610229576004356003548110156102295761102a90610fc6565b50805460018201546002830154600390930154604080519384526001600160a01b0390921660208401529082019290925265ffffffffffff808316606080840191909152603084901c90911660808301529190911c60ff16151560a082015260c090f35b34610229576040366003190112610229576004356110ab81610218565b6024356001600160401b038111610229575f916110cd8392369060040161068c565b90816040519283928337810184815203915af461111a6110eb611e0c565b9161110c60405193849215156020840152604080840152606083019061023d565b03601f198101835282610542565b805190602001fd5b34610229576102c56102b16111363661036b565b91611e6d565b906080600319830112610229576004359160243561115981610218565b916044356111668161022d565b91606435906001600160401b03821161022957610394916004016105b9565b346102295760206103636111be61119b3661113c565b939190925f526002865260405f209060018060a01b03165f5260205260405f2090565b612665565b346102295760206111df6111d63661113c565b929190916127da565b50604051908152f35b9060406003198301126102295760043591602435906001600160401b038211610229576112179160040161068c565b9091565b3461022957611229366111e8565b91906112336123ed565b61123b611f92565b9280611551575b505060035481101561153f5761125781610fc6565b50908154906112658261241c565b6003830180549365ffffffffffff9384861660018060a01b0361128a895183856119b7565b16151580611514575b806114fb575b6114e9576112af816112aa426125ff565b611a0c565b5f546112c5906108fb906001600160a01b031681565b96600460206040998a51928380926327f843b560e11b82525afa8015610aca5782915f916114ca575b50169116116114b957600183018054909861131993929188906001600160a01b0316910151926127da565b906113288160028501546124b3565b9687156114a85760601c60ff166114975792611450611443899461141b6114088b9687876102c59f6114168f9d8f9e6114569f61137286600160601b60ff60601b19825416179055565b8a54855461139491906001600160a01b0316885465ffffffffffff1691612a0a565b8a5485546113ad9189916001600160a01b031690612a8a565b8a5494546113cb906001600160a01b0316965465ffffffffffff1690565b976113d4610582565b9384526020840152818301525196879160208301919091604080606083019480518452602081015160208501520151910152565b03601f198101875286610542565b612bf6565b61143461142e855465ffffffffffff1690565b86612cff565b5494546001600160a01b031690565b915465ffffffffffff1690565b92612d7c565b81518381527f5cc28df3b54da9d06f805d87616ebf969c81310f2aa8369cb14ca50f815d411190602090a2610a5760015f8051602061357283398151915255565b8551633428e90760e01b8152600490fd5b865163167f871760e31b8152600490fd5b8551639ea153eb60e01b8152600490fd5b6114e3915060203d602011610ac357610ab48183610542565b5f6112ee565b60405163b62b15c760e01b8152600490fd5b5061150861093b426125ff565b868860301c1611611299565b506115386108fb61152c611527426125ff565b6119f0565b60208b015190856119b7565b1515611293565b604051637822972360e11b8152600490fd5b61155f929350810190611fb1565b905f80611242565b34610229575f3660031901126102295760206040516001600160401b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b34610229575f366003190112610229576020600554604051908152f35b34610229575f366003190112610229576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b34610229576040366003190112610229576024356001600160401b0381116102295761165161164060209236906004016105b9565b611649426125ff565b6004356119b7565b6040516001600160a01b039091168152f35b34610229575f366003190112610229576020604051620249f08152f35b34610229575f36600319011261022957602065ffffffffffff60045416604051908152f35b34610229576116b3366111e8565b906116bc6123ed565b6116c4612039565b91806117ff575b505060035482101561153f576116e082610fc6565b506003815491019182549165ffffffffffff9160018060a01b036117088251858716856119b7565b169182159182156117d6575b50506117c45733036117b25761172c61093b426125ff565b908260301c1611156117a15760601c60ff1661178f57805460ff60601b1916600160601b17905533907f7d3d269c851b72257a5194a401d151902e9be4347d555996dcff3ff86a077e925f80a3610dcb60015f8051602061357283398151915255565b604051633428e90760e01b8152600490fd5b60405162c457e560e81b8152600490fd5b604051635d154fe160e11b8152600490fd5b60405163dd1ebd9d60e01b8152600490fd5b6117f79250906108fb9160206117ee611527426125ff565b910151916119b7565b155f80611714565b61180c9250810190612052565b5f806116cb565b34610229575f366003190112610229575f546040516001600160a01b039091168152602090f35b81601f82011215610229578051906118518261059e565b9261185f6040519485610542565b8284526020838301011161022957815f9260208093018386015e8301015290565b906020828203126102295781516001600160401b03811161022957610394920161183a565b6040513d5f823e3d90fd5b604061039492602083525191602080820152019061023d565b604051632751749360e11b81526001600160a01b0391821660048201526024810192909252909116604482015265ffffffffffff9091166064820152606091905f81806084810103817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa908115610aca575f9161197e575b5080516119565750565b61110c919250610394906040519061196d826104be565b8152604051928391602083016118b0565b61199a91503d805f833e6119928183610542565b810190611880565b5f61194c565b92916119ae91606094611e6d565b80516119565750565b5f9081526006602052604090206001600160a01b03926119d892909161214a565b1690565b634e487b7160e01b5f52601160045260245ffd5b65ffffffffffff9081165f190191908211611a0757565b6119dc565b65ffffffffffff9182169082160391908211611a0757565b611a4590939293611a386060958483611e6d565b92611136611527426125ff565b815115801590611aac575b611a58575050565b611a999293509061110c6103949260405192611a73846104de565b83526020830190815260405194859360208086015251604080860152608085019061023d565b9051838203603f1901606085015261023d565b5080511515611a50565b60405190611ac3826104be565b60608252565b906020828203126102295781356001600160401b03928382116102295701906020828203126102295760405192611aff846104be565b823590811161022957611b1292016105b9565b815290565b91909165ffffffffffff80809416911601918211611a0757565b9081602091031261022957516103948161022d565b634e487b7160e01b5f525f60045260245ffd5b600354600160401b8110156104d957806001611b789201600355610fc6565b919091611c3b578051825560208101516001830180546001600160a01b0319166001600160a01b039290921691909117905561058f91611c219060a090600390604085015160028201550192611bee65ffffffffffff606083015116859065ffffffffffff1665ffffffffffff19825416179055565b60808101516bffffffffffff00000000000085549160301b16906bffffffffffff00000000000019161784550151151590565b815460ff60601b191690151560601b60ff60601b16179055565b611b46565b906103949160208152611c5f825160606020840152608083019061023d565b9060606040611c7f602086015194601f199586868303018487015261023d565b940151928285030191015261023d565b919093925f606095611ca2838287611e6d565b94611d05611cbc611cb5611527426125ff565b8484611e6d565b604051632751749360e11b81526001600160a01b039384166004820152602481019490945291909516604483015265ffffffffffff909316606482015292839081906084820190565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa918215610aca575f92611da1575b50825115801590611d97575b8015611d8d575b611d5d57505050565b61110c939450906103949291611d71610582565b9283526020830152604082015260405192839160208301611c40565b5081511515611d54565b5080511515611d4d565b611db69192503d805f833e6119928183610542565b905f611d41565b5190811515820361022957565b908160209103126102295761039490611dbd565b81810292918115918404141715611a0757565b9060018201809211611a0757565b91908201809211611a0757565b3d15611e36573d90611e1d8261059e565b91611e2b6040519384610542565b82523d5f602084013e565b606090565b519063ffffffff8216820361022957565b9190826040910312610229576103946020611e6684611dbd565b9301611e3b565b92915f8060609565ffffffffffff60405194602096638f82f93160e01b88880152602487015216604485015260448452611ea684610527565b6040519384611ed387820192639f86fd8560e01b845230602484015260406044840152606483019061023d565b0394611ee7601f1996878101835282610542565b51915afa50611f05611ef7611e0c565b838082518301019101612631565b9015611f5857808380611f1d93518301019101611e4c565b9290611f2857505050565b61039492939450611f4c604051948592830191909163ffffffff6020820193169052565b03908101835282610542565b809150519182156102295701fd5b5f9081526002602090815260408083206001600160a01b03909416835292905220610394929190612665565b60405190611f9f826104f9565b60606040838281528260208201520152565b906020828203126102295781356001600160401b03928382116102295701906060828203126102295760405192611fe7846104f9565b82358181116102295782611ffc9185016105b9565b8452602083013581811161022957826120169185016105b9565b602085015260408301359081116102295761203192016105b9565b604082015290565b60405190612046826104de565b60606020838281520152565b906020828203126102295781356001600160401b03928382116102295701906040828203126102295760405192612088846104de565b8235818111610229578261209d9185016105b9565b84526020830135908111610229576120b592016105b9565b602082015290565b8054821015610ffe575f5260205f2001905f90565b6120db81612e78565b6001600160d01b038116156121005760016120f692016120bd565b90549060031b1c90565b50505f90565b908160209103126102295761039490611e3b565b5f19810191908211611a0757565b91908203918211611a0757565b90600163ffffffff80931601918211611a0757565b9180511561222e578060208061216593518301019101612106565b916121708382612eb8565b92612181845165ffffffffffff1690565b9065ffffffffffff808516921682811461221557821191826121c0575b50506121ae576103949250613346565b5050602001516001600160d01b031690565b9091506121cd835461211a565b63ffffffff8316149182156121e6575b50505f8061219e565b61220d9192506122016121fb61093b92612135565b85612eb8565b5165ffffffffffff1690565b115f806121dd565b50505050602091909101516001600160d01b0316905090565b5061039491613346565b91909160408184031261022957803561225081610218565b9260208201356001600160401b0381116102295761039492016105b9565b90816020910312610229575161039481610218565b61228f91810190612238565b6040516302910f8b60e31b81526001600160a01b0392831660048201819052929160209182816024817f000000000000000000000000000000000000000000000000000000000000000088165afa908115610aca575f916123d0575b50156123be5781612320600492612300612f0c565b5f80546001600160a01b0319166001600160a01b03891617905586612f99565b94604051928380926313c085b760e11b82525afa918215610aca575f92612391575b5050161580612387575b612375575161058f9015155f805460ff60a01b191691151560a01b60ff60a01b16919091179055565b60405163d2420f5960e01b8152600490fd5b508051151561234c565b6123b09250803d106123b7575b6123a88183610542565b81019061226e565b5f80612342565b503d61239e565b6040516362df054560e01b8152600490fd5b6123e79150833d8511610f9757610f898183610542565b5f6122eb565b5f80516020613572833981519152600281541461240a5760029055565b604051633ee5aeb560e01b8152600490fd5b604051635daf681960e11b815260609190911c60048201526001600160a01b036020826024817f000000000000000000000000000000000000000000000000000000000000000085165afa918215610aca575f92612492575b503391160361248057565b60405163227bf64d60e01b8152600490fd5b6124ac91925060203d6020116123b7576123a88183610542565b905f612475565b90808210156124c0575090565b905090565b906040516124d2816104de565b915465ffffffffffff8116835260301c6020830152565b908154905f829160058411612572575b6125049350846131d8565b90811561256657612525906125188361211a565b905f5260205f20016124c5565b9161255f6125566125506020612541875165ffffffffffff1690565b9601516001600160d01b031690565b9361211a565b63ffffffff1690565b6001939291565b50505f905f905f905f90565b919261257d8161309a565b8103908111611a075761250493855f5265ffffffffffff808360205f20015416908516105f146125ae5750916124f9565b9291506125ba90611df1565b906124f9565b906125ca82612e78565b91805480156125eb575f1901906125e182826120bd565b611c3b575f905555565b634e487b7160e01b5f52603160045260245ffd5b65ffffffffffff90818111612612571690565b604490604051906306dfcc6560e41b8252603060048301526024820152fd5b9190916040818403126102295761264781611dbd565b9260208201516001600160401b03811161022957610394920161183a565b91805115612727578060208061268093518301019101612106565b9161268b8382613294565b9261269c845165ffffffffffff1690565b9065ffffffffffff808516921682811461271b57821191826126d2575b50506126c9576103949250613289565b50506020015190565b9091506126df835461211a565b63ffffffff8316149182156126f8575b50505f806126b9565b61271391925061220161270d61093b92612135565b85613294565b115f806126ef565b50505050506020015190565b5061039491613289565b906020828203126102295781516001600160401b03928382116102295701906040828203126102295760405192612767846104de565b8251818111610229578261277c91850161183a565b84526020830151908111610229576120b5920161183a565b90816020910312610229575190565b9081526001600160a01b03909116602082015265ffffffffffff90911660408201526080606082018190526103949291019061023d565b926127e3612039565b908051806129f0575b50506127f7426125ff565b5f54909490612810906108fb906001600160a01b031681565b93604051956327f843b560e11b875260209687816004818a5afa8015610aca576128449261093b925f926129d85750611a0c565b65ffffffffffff82169081109081156129c1575b8115612990575b50612984578560049560405196878092630ce9b79360e41b82525afa948515610aca576128b19587915f91612967575b50845190604051808099819463e02f693760e01b8352878b8a600486016127a3565b03916001600160a01b03165afa938415610aca57612923955f95612926575b5092612918859361291e9361291896869a61290f61035e836128fa875f52600260205260405f2090565b9060018060a01b03165f5260205260405f2090565b95015192611f66565b90612128565b6124b3565b91565b61291e929550612918949193612954612918928a3d8c11612960575b61294c8183610542565b810190612794565b969350939194506128d0565b503d612942565b61297e9150823d84116123b7576123a88183610542565b5f61288f565b5050505050505f905f90565b90506129ba61093b6129ae876128fa875f52600160205260405f2090565b5465ffffffffffff1690565b115f61285f565b90506129cf61093b426125ff565b81101590612858565b610abc9192508a3d8c11610ac357610ab48183610542565b612a039250602080918301019101612731565b5f806127ec565b919091805f52600160205265ffffffffffff80612a3a8560405f209060018060a01b03165f5260205260405f2090565b541690831611612a4957505050565b61058f92612a71915f52600160205260405f209060018060a01b03165f5260205260405f2090565b9065ffffffffffff1665ffffffffffff19825416179055565b9190825f526002602052612ae261035e612ab78360405f209060018060a01b03165f5260205260405f2090565b92612ac1426125ff565b955f52600260205260405f209060018060a01b03165f5260205260405f2090565b918201809211611a07576001810190815415612b86575b612b028161323a565b509490835495612b11846120d2565b5081612b71575b5015612b505750505f198301928311611a075761058f92612b38916120bd565b90919082549060031b91821b915f19901b1916179055565b61058f94612b6a926001600160d01b039091169190613447565b5050613323565b65ffffffffffff83811691161490505f612b18565b612b8f826132f6565b612af9565b60606020610394938184526001600160401b0381511682850152015191604080820152019061023d565b919360a093610394969565ffffffffffff938552600180871b031660208501526040840152166060820152816080820152019061023d565b92939060046020612c136108fb6108fb5f5460018060a01b031690565b604051630ce9b79360e41b815292839182905afa908115610aca5761110c91612c91915f91612ce0575b506001600160a01b031693612c50610591565b6001600160401b037f000000000000000000000000000000000000000000000000000000000000000016815290602082015260405192839160208301612b94565b823b15610229575f94612cbc86926040519889978896879563724ab0f760e11b875260048701612bbe565b03925af18015610aca57612ccd5750565b80612cda61058f92610514565b806102c9565b612cf9915060203d6020116123b7576123a88183610542565b5f612c3d565b65ffffffffffff9160446020925f60018060a01b038154166040519687958694631c9e38c760e21b865260048601521660248401525af18015610aca57612d435750565b612d5b9060203d6020116129605761294c8183610542565b50565b8115612d68570490565b634e487b7160e01b5f52601260045260245ffd5b92905f549060ff8260a01c16612d94575b5050505050565b6040516313c085b760e11b815291602090839060049082906001600160a01b03165afa918215610aca575f92612e51575b5060405163065c1e0360e01b6020820190815260248201969096526001600160a01b039091166044820152606481019390935265ffffffffffff9091166084830152612e1e8260a481015b03601f198101845283610542565b6202a15c5a10612e3f575f928380935192620249f0f1505f80808080612d8d565b604051632153f33560e21b8152600490fd5b612e1e9250612e71612e109160203d6020116123b7576123a88183610542565b9250612dc5565b805480612e855750505f90565b5f19918183810111611a07575f5260205f2001015460301c90565b60405190612ead826104de565b5f6020838281520152565b612edd91612ed791612ec8612ea0565b50612ed1612ea0565b506120bd565b506124c5565b65ffffffffffff81511690602060018060d01b039101511660405191612f02836104de565b8252602082015290565b612f146133d2565b612f1c6133d2565b60015f8051602061357283398151915255565b60405190612f3c826104be565b5f8252565b809103906060821261022957602060405192612f5c846104f9565b12610229576040908151612f6f816104be565b612f7882611dbd565b815283526020810151612f8a8161022d565b60208401520151604082015290565b90600490612fa5612f2f565b508051612fbc602092838080948301019101612f41565b6040516327f843b560e11b815290949093849182906001600160a01b03165afa918215610aca575f9261307b575b50820190612ffe825165ffffffffffff1690565b65ffffffffffff91821691161015613069576040820160038151106130575761304d613033613053935165ffffffffffff1690565b65ffffffffffff1665ffffffffffff196004541617600455565b51600555565b5190565b6040516354f778f360e01b8152600490fd5b6040516367d5e3df60e11b8152600490fd5b816130939293503d8411610ac357610ab48183610542565b905f612fea565b80156131d3578061316c61316561315b61315161314761313d61313361312960016103949a5f908b60801c806131c7575b508060401c806131ba575b508060201c806131ad575b508060101c806131a0575b508060081c80613193575b508060041c80613186575b508060021c80613179575b50821c613172575b811c1b613122818b612d5e565b0160011c90565b613122818a612d5e565b6131228189612d5e565b6131228188612d5e565b6131228187612d5e565b6131228186612d5e565b6131228185612d5e565b8092612d5e565b906124b3565b8101613115565b600291509101905f61310d565b600491509101905f613102565b600891509101905f6130f7565b601091509101905f6130ec565b602091509101905f6130e1565b604091509101905f6130d6565b9150506080905f6130cb565b505f90565b91905b8382106131e85750505090565b909192808316906001818518811c8301809311611a0757855f5265ffffffffffff808460205f20015416908516105f14613227575050925b91906131db565b909493508101809111611a075791613220565b80548061324b5750505f905f905f90565b5f19908082810111611a0757613268925f5260205f2001016124c5565b9065ffffffffffff82511691602060018060d01b0391015116906001929190565b906120db9082613346565b906132b7612ed76132d8926132a7612ea0565b506132b0612ea0565b50846120bd565b91600165ffffffffffff845116936020828060d01b039101511691016120bd565b905490604051926132e8846104de565b835260031b1c602082015290565b8054600160401b8110156104d957613313916001820181556120bd565b8154905f199060031b1b19169055565b90815491600160401b8310156104d95782612b3891600161058f950181556120bd565b908154905f829160058411613384575b6133619350846131d8565b8061336c5750505f90565b6133759061211a565b905f5260205f20015460301c90565b919261338f8161309a565b8103908111611a075761336193855f5265ffffffffffff808360205f20015416908516105f146133c0575091613356565b9291506133cc90611df1565b90613356565b60ff5f805160206135928339815191525460401c16156133ee57565b604051631afcd79f60e31b8152600490fd5b8054600160401b8110156104d95761341d916001820181556120bd565b611c3b57815160209092015160301b65ffffffffffff191665ffffffffffff909216919091179055565b8054929392919082156135485761347361346e6134638561211a565b835f5260205f200190565b6124c5565b90613484825165ffffffffffff1690565b65ffffffffffff84811691168110613536576134fa9460209488926134b261093b875165ffffffffffff1690565b036134fe57506134ec926134c86134d39261211a565b905f5260205f200190565b9065ffffffffffff82549181199060301b169116179055565b01516001600160d01b031690565b9190565b9150506135319161351e613510610591565b65ffffffffffff9093168352565b6001600160d01b03881682860152613400565b6134ec565b604051632520601d60e01b8152600490fd5b61356c9250613558613510610591565b6001600160d01b0385166020830152613400565b5f919056fe9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a264697066735822122076922ea6e3ad8fc57d79a3decbb6a526695968650fb8ee8d88110f7794fd659264736f6c63430008190033","sourceMap":"3563:3596:84:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;-1:-1:-1;;;;;3563:3596:84;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;3563:3596:84;;;;;;;;-1:-1:-1;;3563:3596:84;;;;:::o;:::-;;;;;;-1:-1:-1;;3563:3596:84;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::o;:::-;;;;;;-1:-1:-1;;3563:3596:84;;;;;;1435:38:92;-1:-1:-1;;;;;3563:3596:84;;;;;;;;;;;;-1:-1:-1;;3563:3596:84;;;;;2936:47:92;:38;3563:3596:84;;;;;:::i;:::-;;;-1:-1:-1;3563:3596:84;2936:16:92;3563:3596:84;;;-1:-1:-1;3563:3596:84;;;;;;;;;;;;;;;;;2936:38:92;:47;:::i;:::-;3563:3596:84;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;-1:-1:-1;;3563:3596:84;;;;;;1788:109:92;3563:3596:84;;;;;:::i;:::-;;;-1:-1:-1;3563:3596:84;1788:109:92;3563:3596:84;;;-1:-1:-1;3563:3596:84;;;;;;;;;;;;;;;;;1788:109:92;3563:3596:84;;;;;;;;;;;;;;-1:-1:-1;;3563:3596:84;;;;;;;1374:6:92;3563:3596:84;;;;;;;;;-1:-1:-1;;3563:3596:84;;;;;;1528:51:92;-1:-1:-1;;;;;3563:3596:84;;;;;;;;;;;;-1:-1:-1;;3563:3596:84;;;;;;322:32:69;-1:-1:-1;;;;;3563:3596:84;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3563:3596:84;;;;;;;:::o;:::-;;:::i;:::-;;;;;;;-1:-1:-1;;;;;3563:3596:84;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;3563:3596:84;;;;;;;:::o;:::-;-1:-1:-1;;;;;3563:3596:84;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;3563:3596:84;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;3563:3596:84;;;;;;;:::o;:::-;;;;;;;;;;-1:-1:-1;;;;;3563:3596:84;;;;;;;:::o;:::-;;;;;;;:::i;:::-;:::o;:::-;;;;;;;:::i;:::-;-1:-1:-1;;;;;3563:3596:84;;;;;;-1:-1:-1;;3563:3596:84;;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;3563:3596:84;;;;;;;;;;;;;;:::o;:::-;;;;;;-1:-1:-1;;3563:3596:84;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;3563:3596:84;;;;2016:56:94;3563:3596:84;;;;;;;;:::i;:::-;;;-1:-1:-1;3563:3596:84;;;2016:9:94;3563:3596:84;;;;;-1:-1:-1;;;;;3563:3596:84;;2016:56:94;:::i;:::-;3563:3596:84;;;;;;;;;;;;;-1:-1:-1;;3563:3596:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3563:3596:84;;;;;;;;;;;;;;;:::o;:::-;;;;;;-1:-1:-1;;3563:3596:84;;;;-1:-1:-1;;;;;3563:3596:84;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;3563:3596:84;;;;;;;4301:16:25;3563:3596:84;;4726:16:25;;:34;;;;3563:3596:84;4805:1:25;4790:16;:50;;;;3563:3596:84;4855:13:25;:30;;;;3563:3596:84;4851:91:25;;;-1:-1:-1;;;;;;;;;;;3563:3596:84;;-1:-1:-1;;3563:3596:84;;;;;718:4:69;;4951:18:25;4979:67;;718:4:69;:::i;:::-;5066:101:25;;3563:3596:84;5066:101:25;-1:-1:-1;;;;;;;;;;;3563:3596:84;;-1:-1:-1;;;;3563:3596:84;;;;;-1:-1:-1;3563:3596:84;;5142:14:25;;3563:3596:84;;5142:14:25;3563:3596:84;4979:67:25;-1:-1:-1;;;;;;;;;;;3563:3596:84;;-1:-1:-1;;;;3563:3596:84;-1:-1:-1;;;3563:3596:84;;;718:4:69;:::i;4851:91:25:-;3563:3596:84;;-1:-1:-1;;;4908:23:25;;3563:3596:84;;4908:23:25;4855:30;4872:13;;;4855:30;;;4790:50;4818:4;4810:25;:30;;-1:-1:-1;4790:50:25;;4726:34;;;-1:-1:-1;4726:34:25;;3563:3596:84;;;;;;-1:-1:-1;;3563:3596:84;;;;;;3726:43;-1:-1:-1;;;;;3563:3596:84;;;;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;-1:-1:-1;;3563:3596:84;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;3563:3596:84;;;;;;;;;;;:::i;:::-;3217:103:28;;;;:::i;:::-;2123:10:92;;;:::i;:::-;3563:3596:84;;:::i;:::-;2666:16:94;;2662:105;;3563:3596:84;837:15:62;;819:34;837:15;819:34;:::i;:::-;2813:31:94;3563:3596:84;;;;;;;;2813:31:94;;;:::i;:::-;-1:-1:-1;3563:3596:84;;;;2847:27:94;;:13;;-1:-1:-1;;;;;3563:3596:84;2847:13:94;3563:3596:84;;-1:-1:-1;;;;;3563:3596:84;;;2847:27:94;3563:3596:84;;;;;;;;;;;;;;2847:29:94;;;;;;;;2794:82;2847:29;2813:63;2847:29;-1:-1:-1;2847:29:94;;;3563:3596:84;2813:63:94;;:::i;:::-;3563:3596:84;;;;2794:82:94;3563:3596:84;;;2794:82:94;;;:138;;;;;3563:3596:84;2777:223:94;;;3248:62:92;3019:133:94;3104:37;;3248:62:92;;;;:::i;:::-;3563:3596:84;;;3019:133:94;:::i;:::-;3166:11;;;3162:68;;3563:3596:84;3671:86:94;837:15:62;;;;3671:86:94;837:15:62;3262:31:94;837:15:62;819:34;837:15;819:34;:::i;:::-;3262:31:94;:::i;:::-;3563:3596:84;3317:13:94;3563:3596:84;;;;3347:308:94;3563:3596:84;;:::i;:::-;;;;-1:-1:-1;;;;;3563:3596:84;;;3379:266:94;;3563:3596:84;3379:266:94;;;3563:3596:84;;;;;;;3379:266:94;;3563:3596:84;;;;;3379:266:94;;3563:3596:84;-1:-1:-1;3563:3596:84;3379:266:94;;3563:3596:84;3347:308:94;:::i;:::-;3563:3596:84;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3563:3596:84;;;;;;;;;;3671:86:94;;;;3282:1:28;1805;-1:-1:-1;;;;;;;;;;;3563:3596:84;3716:283:28;3282:1;3563:3596:84;;;;;;;;;;;;3162:68:94;3563:3596:84;;-1:-1:-1;;;3200:19:94;;;2777:223;3563:3596:84;;-1:-1:-1;;;2964:25:94;;3563:3596:84;;2964:25:94;2794:138;837:15:62;;2896:36:94;819:34:62;837:15;819:34;:::i;2896:36:94:-;-1:-1:-1;2896:36:94;2794:138;;;2847:29;;;;;3563:3596:84;2847:29:94;3563:3596:84;2847:29:94;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;;:::i;2662:105::-;2718:38;;;;;;;;:::i;:::-;2662:105;;;;;3563:3596:84;;;;;;-1:-1:-1;;3563:3596:84;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;-1:-1:-1;;3563:3596:84;;;;;1795:13:94;3563:3596:84;;;;;;;;;;;;;-1:-1:-1;;3563:3596:84;;;;;;;;;:::i;:::-;449:5:82;-1:-1:-1;;;;;3563:3596:84;435:10:82;:19;431:71;;3563:3596:84;4136:60;3563:3596;;;;-1:-1:-1;3563:3596:84;4136:9;3563:3596;;;-1:-1:-1;3563:3596:84;4136:60;:::i;:::-;3563:3596;;;;;;;;;;;;;;;;;;;431:71:82;3563:3596:84;;-1:-1:-1;;;477:14:82;;3563:3596:84;;477:14:82;3563:3596:84;;;;;;-1:-1:-1;;3563:3596:84;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;3563:3596:84;;;;;;;;;;;:::i;:::-;3217:103:28;;;:::i;:::-;3563:3596:84;;:::i;:::-;;7493:16:94;7489:103;;3563:3596:84;-1:-1:-1;;3563:3596:84;;;-1:-1:-1;;;7607:48:94;;7644:10;7607:48;;;3563:3596:84;;;-1:-1:-1;;;;;3563:3596:84;;;;;;;;;;;;;;7607:48:94;7617:16;;;3563:3596:84;7607:48:94;;;;;;;-1:-1:-1;7607:48:94;;;3563:3596:84;7606:49:94;;7602:99;;-1:-1:-1;3563:3596:84;7764:35:94;;-1:-1:-1;;;;;3563:3596:84;7644:10:94;3563:3596:84;;-1:-1:-1;;7644:10:94;297:2:88;3563:3596:84;;267:46:88;;152:169;7764:35:94;7850:21;5260:30:86;7850:21:94;;3563:3596:84;;7850:9:94;3563:3596:84;;;;;;;7850:21:94;5260:30:86;:::i;:::-;-1:-1:-1;7900:801:94;;;;;7930:34;819::62;837:15;819:34;:::i;7930::94:-;3563:3596:84;;;;7930:34:94;;;;7984:27;:21;;3563:3596:84;;7850:9:94;3563:3596:84;;;;;;;7984:21:94;:27;:::i;:::-;;7926:225;8169:61;8182:48;8190:39;4928:20:86;8198:21:94;;3563:3596:84;;7850:9:94;3563:3596:84;;;;;;;8198:21:94;4928:20:86;:::i;8169:61:94:-;3563:3596:84;;;;8169:61:94;;;8165:336;;7926:225;7900:801;;;;;;8716:34;7900:801;8716:34;7900:801;;3563:3596:84;-1:-1:-1;;;;;3563:3596:84;;;;;;;;;;;;;8716:34:94;;;;3282:1:28;1805;-1:-1:-1;;;;;;;;;;;3563:3596:84;3716:283:28;3282:1;3563:3596:84;8165:336:94;8250:21;;;;;;;3563:3596:84;;7850:9:94;3563:3596:84;;;;;;;8250:21:94;3563:3596:84;;;;;;;;8299:34:94;;;;;;;;;;;;;;-1:-1:-1;8299:34:94;;;8165:336;3563:3596:84;;8336:22:94;3563:3596:84;;;;;;;;;;;8361:30:94;;;;;;;;;;8336:55;8167:38:60;8361:30:94;8716:34;8361:30;8299:92;8361:30;8716:34;8361:30;8298:130;8361:30;-1:-1:-1;8361:30:94;;;8165:336;3563:3596:84;;;8336:55:94;;:::i;:::-;3563:3596:84;;8299:92:94;:::i;:::-;8298:130;:::i;:::-;8167:38:60;;:::i;:::-;8165:336:94;;;;;;8361:30;;;;;;-1:-1:-1;8361:30:94;;;;;;:::i;:::-;;;;;8299:34;;;;;;;;;;;;;;:::i;:::-;;;;7926:225;8036:61;8049:48;8057:39;4928:20:86;8065:21:94;;3563:3596:84;;7850:9:94;3563:3596:84;;;;;;;8036:61:94;3563:3596:84;;;8036:61:94;7926:225;8032:119;3563:3596:84;;-1:-1:-1;;;8124:12:94;;3563:3596:84;;8124:12:94;7900:801;-1:-1:-1;3563:3596:84;;;;;;-1:-1:-1;;8535:23:94;;8531:81;;8626:21;;8716:34;8626:21;8167:38:60;8716:34:94;8626:21;;;3563:3596:84;;7850:9:94;3563:3596:84;;;;;;;8626:21:94;819:34:62;837:15;819:34;:::i;8167:38:60:-;7900:801:94;;;;8531:81;3563:3596:84;;-1:-1:-1;;;8585:12:94;;;7602:99;-1:-1:-1;3563:3596:84;;-1:-1:-1;;;7678:12:94;;;7607:48;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;7489:103;7544:37;;;;;;:::i;:::-;;7489:103;;;;3563:3596:84;;;;;;;;;;;;;1050:35:94;3563:3596:84;;;;;;1050:35:94;-1:-1:-1;3563:3596:84;;;;;;-1:-1:-1;3563:3596:84;:::o;:::-;;:::i;:::-;;;;;;-1:-1:-1;;3563:3596:84;;;;;;1050:35:94;3563:3596:84;1050:35:94;;;;;;;;:::i;:::-;-1:-1:-1;3563:3596:84;;;1050:35:94;;3563:3596:84;1050:35:94;;;3563:3596:84;1050:35:94;;;;3563:3596:84;;;;;;;-1:-1:-1;;;;;3563:3596:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;3563:3596:84;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;3563:3596:84;;;;-1:-1:-1;3563:3596:84;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;416:25:75;;;;477:31;416:25;;:::i;:::-;3563:3596:84;;;;;;;;;;477:31:75;;3563:3596:84;;;;;;;;;;;:::i;:::-;477:31:75;3563:3596:84;;477:31:75;;;;;;:::i;:::-;518:79;;;3563:3596:84;518:79:75;;3563:3596:84;;;;;;;;;:::i;:::-;;;:::i;:::-;;;-1:-1:-1;;3563:3596:84;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;-1:-1:-1;;;;;3563:3596:84;;;;;;;;;:::i;:::-;;;;;2692:73:92;:38;3563:3596:84;;;:::i;:::-;;;;;-1:-1:-1;3563:3596:84;2692:16:92;3563:3596:84;;;-1:-1:-1;3563:3596:84;;;;;;;;;;;;;;;;;2692:38:92;:73;:::i;3563:3596:84:-;;;;;3248:62:92;3563:3596:84;;;:::i;:::-;3248:62:92;;;;;:::i;:::-;3563:3596:84;;;;;;;;;;-1:-1:-1;;3563:3596:84;;;;;;;;;;;-1:-1:-1;;;;;3563:3596:84;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;:::i;:::-;3217:103:28;;;;:::i;:::-;3563:3596:84;;:::i;:::-;4024:16:94;;4020:105;;3563:3596:84;;;4153:13:94;3563:3596:84;4139:34:94;;;4135:94;;4270:25;;;:::i;:::-;3563:3596:84;;;;4330:18:94;;;;:::i;:::-;4153:13;4408:24;;3563:3596:84;;;;;;;;;;;;;4377:95:94;4434:37;;4377:95;;;:::i;:::-;3563:3596:84;4377:125:94;;:250;;;3563:3596:84;4377:309:94;;;3563:3596:84;4360:389:94;;4763:43;837:15:62;819:34;837:15;819:34;:::i;:::-;4763:43:94;:::i;:::-;-1:-1:-1;3563:3596:84;4809:27:94;;:13;;-1:-1:-1;;;;;3563:3596:84;4809:13:94;3563:3596:84;4809:27:94;3563:3596:84;;4809:29:94;3563:3596:84;;;;;;;;;;;4809:29:94;;;;;;;;;;-1:-1:-1;4809:29:94;;;3563:3596:84;;;;;4763:75:94;4759:131;;4994:16;;;3563:3596:84;;4994:16:94;;4945:140;;4994:16;;3563:3596:84;;-1:-1:-1;;;;;3563:3596:84;5038:37:94;;;4945:140;;:::i;:::-;5120:14;5111:41;5120:14;;;;3563:3596:84;5111:41:94;:::i;:::-;5166:18;;;5162:75;;3563:3596:84;;;;5247:78:94;;5335:24;3563:3596:84;;5335:24:94;;5725:145;;5335:24;;;;3563:3596:84;5335:24:94;5725:145;5335:24;;;;6024;5335;;;3563:3596:84;;;;;;;;;;;;;;5335:24:94;3563:3596:84;;;;5445:24:94;;3563:3596:84;-1:-1:-1;;;;;3563:3596:84;;;;;5445:24:94;;:::i;:::-;3563:3596:84;;;;5542:13:94;;3563:3596:84;;-1:-1:-1;;;;;3563:3596:84;5542:13:94;;:::i;:::-;3563:3596:84;;;;;;-1:-1:-1;;;;;3563:3596:84;;;;;;;;;;;:::i;:::-;;;;4809:29:94;5753:103;;3563:3596:84;5753:103:94;;;3563:3596:84;;5725:145:94;;;4809:29;5725:145;;3563:3596:84;;;;;;;;;;;;;;;;;;;;;;;;;;;5725:145:94;;3563:3596:84;;5725:145:94;;;;;;:::i;:::-;;:::i;:::-;5920:24;3563:3596:84;;;;;;;;5920:24:94;;:::i;:::-;3563:3596:84;;;-1:-1:-1;;;;;3563:3596:84;;;;;;;;;;;6024:24:94;;:::i;:::-;3563:3596:84;;;;;6065:39:94;;3563:3596:84;;6065:39:94;3282:1:28;1805;-1:-1:-1;;;;;;;;;;;3563:3596:84;3716:283:28;5247:78:94;3563:3596:84;;-1:-1:-1;;;5291:23:94;;3563:3596:84;;5291:23:94;5162:75;3563:3596:84;;-1:-1:-1;;;5207:19:94;;3563:3596:84;;5207:19:94;4759:131;3563:3596:84;;-1:-1:-1;;;4861:18:94;;3563:3596:84;;4861:18:94;4809:29;;;;;;;;;;;;;;:::i;:::-;;;;4360:389;3563:3596:84;;-1:-1:-1;;;4718:20:94;;3563:3596:84;;4718:20:94;4377:309;837:15:62;4647:39:94;819:34:62;837:15;819:34;:::i;4647:39:94:-;3563:3596:84;;;;;4647:39:94;4377:309;;:250;837:15:62;4522:105:94;:91;4553:20;819:34:62;837:15;819:34;:::i;:::-;4553:20:94;:::i;:::-;4575:37;;;;4522:91;;;:::i;:105::-;;;4377:250;;4135:94;3563:3596:84;;-1:-1:-1;;;4196:22:94;;3563:3596:84;;4196:22:94;4020:105;4076:38;;;;;;;;:::i;:::-;4020:105;;;;;3563:3596:84;;;;;;-1:-1:-1;;3563:3596:84;;;;;;;-1:-1:-1;;;;;404:28:69;3563:3596:84;;;;;;;;;;-1:-1:-1;;3563:3596:84;;;;;1221:37:94;3563:3596:84;;;;;;;;;;;;;-1:-1:-1;;3563:3596:84;;;;;;954:41:94;-1:-1:-1;;;;;3563:3596:84;;;;;;;;;;;;-1:-1:-1;;3563:3596:84;;;;;;-1:-1:-1;;;;;3563:3596:84;;;;2239:46:94;3563:3596:84;;;;;;;;:::i;:::-;819:34:62;837:15;819:34;:::i;:::-;3563:3596:84;;2239:46:94;:::i;:::-;3563:3596:84;;-1:-1:-1;;;;;3563:3596:84;;;;;;;;;;;;-1:-1:-1;;3563:3596:84;;;;;;;1271:7:92;3563:3596:84;;;;;;;;;-1:-1:-1;;3563:3596:84;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3217:103:28;;;:::i;:::-;3563:3596:84;;:::i;:::-;6308:16:94;;6304:99;;3563:3596:84;;;6431:13:94;3563:3596:84;6417:34:94;;;6413:94;;6548:25;;;:::i;:::-;3563:3596:84;6431:13:94;3563:3596:84;;6653:24:94;;3563:3596:84;;;;;;;;;;;6622:92:94;6679:34;;3563:3596:84;;;6622:92:94;;:::i;:::-;3563:3596:84;6741:29:94;;;:151;;;;;3563:3596:84;6724:223:94;;;;6961:10;:29;6957:80;;7051:40;819:34:62;837:15;819:34;:::i;7051:40:94:-;3563:3596:84;;;;;7051:40:94;;7047:95;;3563:3596:84;;;;7152:78:94;;3563:3596:84;;-1:-1:-1;;;;3563:3596:84;-1:-1:-1;;;3563:3596:84;;;6961:10:94;7280:33;;-1:-1:-1;7280:33:94;;3282:1:28;1805;-1:-1:-1;;;;;;;;;;;3563:3596:84;3716:283:28;7152:78:94;3563:3596:84;;-1:-1:-1;;;7196:23:94;;3563:3596:84;;7196:23:94;7047:95;3563:3596:84;;-1:-1:-1;;;7114:17:94;;3563:3596:84;;7114:17:94;6957:80;3563:3596:84;;-1:-1:-1;;;7013:13:94;;3563:3596:84;;7013:13:94;6724:223;3563:3596:84;;-1:-1:-1;;;6924:12:94;;3563:3596:84;;6924:12:94;6741:151;6790:102;837:15:62;;;6790:88:94;837:15:62;6843:34:94;6821:20;819:34:62;837:15;819:34;:::i;6821:20:94:-;6843:34;;;6790:88;;:::i;:102::-;;6741:151;;;;6304:99;6357:35;;;;;;;:::i;:::-;6304:99;;;;3563:3596:84;;;;;;-1:-1:-1;;3563:3596:84;;;;;;;;-1:-1:-1;;;;;3563:3596:84;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;3563:3596:84;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;;;;3563:3596:84;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;4649:553::-;3563:3596;;-1:-1:-1;;;4939:105:84;;-1:-1:-1;;;;;3563:3596:84;;;4939:105;;;3563:3596;;;;;;;;;;;;;;;;;;;;;;;;;4649:553;4939:105;3563:3596;;;;;4939:105;3563:3596;4956:18;-1:-1:-1;;;;;3563:3596:84;4939:105;;;;;;;;;;;4649:553;3563:3596;;;5055:141;;4649:553;:::o;5055:141::-;5112:73;3563:3596;;;5112:73;3563:3596;;;;;;;:::i;:::-;;;;;5112:73;;;3563:3596;5112:73;;;:::i;4939:105::-;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;6788:369;;;6975:44;6788:369;3563:3596;6975:44;;:::i;:::-;3563:3596;;7030:121;;6788:369;:::o;1876:205:94:-;-1:-1:-1;3563:3596:84;;;2016:9:94;3563:3596:84;;;;;-1:-1:-1;;;;;3563:3596:84;2016:56:94;;1876:205;;2016:56;:::i;:::-;3563:3596:84;1876:205:94;:::o;3563:3596:84:-;;;;;;;;;;;;;;;;;-1:-1:-1;;3563:3596:84;;;;;;;:::o;:::-;;:::i;:::-;;;;;;;;;;;;;;;:::o;6172:610::-;6466:55;6172:610;;;;6370:51;3563:3596;6370:51;;;;:::i;:::-;837:15:62;6500:20:84;819:34:62;837:15;819:34;:::i;6466:55:84:-;3563:3596;;6536:30;;;:64;;;6172:610;6532:244;;6172:610;;:::o;6532:244::-;3563:3596;;;;;;6623:142;3563:3596;;;;;;;:::i;:::-;;;6651:100;;;3563:3596;;;;;6623:142;;;6651:100;6623:142;;;3563:3596;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;3563:3596:84;;;;;;:::i;6536:64::-;3563:3596;;;6570:30;;6536:64;;3563:3596;;;;;;;:::i;:::-;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;;;;3563:3596:84;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;;;;:::o;:::-;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;3317:13:94;3563:3596:84;-1:-1:-1;;;3563:3596:84;;;;;;;;;;3317:13:94;3563:3596:84;;:::i;:::-;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;3563:3596:84;-1:-1:-1;;;;;3563:3596:84;;;;;;;;;;;;;;;;3317:13:94;;3563:3596:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;3563:3596:84;;;;;;-1:-1:-1;;;3563:3596:84;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;5208:958::-;;;;;5643:105;3563:3596;5435:51;;;;;;:::i;:::-;837:15:62;5643:105:84;5531:55;5565:20;819:34:62;837:15;819:34;:::i;5565:20:84:-;5531:55;;;:::i;:::-;3563:3596;;-1:-1:-1;;;5643:105:84;;-1:-1:-1;;;;;3563:3596:84;;;5643:105;;;3563:3596;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5643:105;;3563:3596;5660:18;-1:-1:-1;;;;;3563:3596:84;5643:105;;;;;;;;;;;5208:958;3563:3596;;;5763:30;;;:64;;;5208:958;5763:98;;;;5208:958;5759:401;;5208:958;;;:::o;5759:401::-;5884:265;3563:3596;;;;5884:265;3563:3596;;;;:::i;:::-;;;;5912:223;;;3563:3596;;5912:223;;3563:3596;;;5884:265;;;5912:223;5884:265;;;:::i;5763:98::-;3563:3596;;;5831:30;;5763:98;;:64;3563:3596;;;5797:30;;5763:64;;5643:105;;;;;;;;;;;;;;:::i;:::-;;;;;3563:3596;;;;;;;;;;:::o;:::-;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::o;:::-;;3149:1:86;3563:3596:84;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;-1:-1:-1;3563:3596:84;;;;:::o;:::-;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;:::i;4209:434::-;;;-1:-1:-1;4307:12:84;3563:3596;;;;;4435:78;;;;;;;;;;;;;3563:3596;;;;;;;4435:78;;;;;:::i;:::-;3563:3596;;716:88:82;;3563:3596:84;716:88:82;;;;;;;;;783:4;4435:78:84;716:88:82;;3563:3596:84;;;;;;;;;;;:::i;:::-;716:88:82;3563:3596:84;716:88:82;3563:3596:84;;716:88:82;;;;;;;;:::i;:::-;698:107;;;;;857:45;698:107;;:::i;:::-;3563:3596:84;;;;857:45:82;;;;;;:::i;:::-;916:8;;912:175;;3563:3596:84;;;4361:204;3563:3596;;4361:204;;;;;;:::i;:::-;4576:61;;;;4209:434;;;:::o;4576:61::-;4609:17;3563:3596;;;;4609:17;3563:3596;;4609:17;;;;;3563:3596;;;;;;;;;;;;4609:17;;;;;;;;;:::i;912:175:82:-;3563:3596:84;;;;944:22:82;;;940:36;;990:87;;2505:267:92;-1:-1:-1;3563:3596:84;;;2692:16:92;3563:3596:84;;;;;;;;-1:-1:-1;;;;;3563:3596:84;;;;;;;;;2692:73:92;;2505:267;;2692:73;:::i;3563:3596:84:-;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;;;;3563:3596:84;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;;;;3563:3596:84;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::o;:::-;;;;;;;;-1:-1:-1;3563:3596:84;;-1:-1:-1;3563:3596:84;;;-1:-1:-1;3563:3596:84;:::o;10580:184:86:-;10689:20;;;:::i;:::-;-1:-1:-1;;;;;3563:3596:84;;10726:7:86;3563:3596:84;;10736:12:86;:17;:12;;:17;:::i;:::-;3563:3596:84;;;;;;10580:184:86;:::o;10726:31::-;;;10689:11;10580:184;:::o;3563:3596:84:-;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;3563:3596:84;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;:::o;1818:604:86:-;;3563:3596:84;;1946:17:86;1942:83;;3563:3596:84;2049:27:86;3563:3596:84;2049:27:86;3563:3596:84;;2049:27:86;;;;;;:::i;:::-;2120:14;;;;;:::i;:::-;3563:3596:84;;;;;;;;;;;;;;;;2148:22:86;;;2144:77;;2235:21;-1:-1:-1;2235:84:86;;;;1818:604;2231:139;;;;1425:34;;;;:::i;2231:139::-;-1:-1:-1;;2049:27:86;2342:17;3563:3596:84;-1:-1:-1;;;;;3563:3596:84;;:::o;2235:84:86:-;3563:3596:84;;;2269:16:86;3563:3596:84;;2269:16:86;:::i;:::-;3563:3596:84;;;2261:24:86;:57;;;;;2235:84;;;;;;;2261:57;2289:29;2298:8;;;2289:18;2298:8;2289:23;2298:8;;:::i;:::-;2289:18;;:::i;:::-;3563:3596:84;;;;;2289:29:86;;2261:57;;;;2144:77;-1:-1:-1;;;;2049:27:86;2193:17;;;;3563:3596:84;-1:-1:-1;;;;;3563:3596:84;;-1:-1:-1;3563:3596:84;:::o;1942:83:86:-;1425:34;;;;:::i;3563:3596:84:-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;3563:3596:84;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;6491:564:92:-;6614:34;6491:564;6614:34;;;;:::i;:::-;3563:3596:84;;-1:-1:-1;;;6664:41:92;;-1:-1:-1;;;;;3563:3596:84;;;6664:41:92;;;3563:3596:84;;;;;6664:41:92;;;3563:3596:84;;;6674:13:92;3563:3596:84;;6664:41:92;;;;;;;-1:-1:-1;6664:41:92;;;6491:564;6663:42;;6659:90;;2540:111:28;6850:27:92;6664:41;2540:111:28;;;:::i;:::-;-1:-1:-1;3563:3596:84;;-1:-1:-1;;;;;;3563:3596:84;-1:-1:-1;;;;;3563:3596:84;;;;;6850:27:92;;:::i;:::-;3563:3596:84;;;;;;;;;;6892:23:92;;;;;;;;;-1:-1:-1;6892:23:92;;;6491:564;3563:3596:84;;;6892:37:92;:64;;;6491:564;6888:112;;3563:3596:84;7010:38:92;;3563:3596:84;;-1:-1:-1;3563:3596:84;;-1:-1:-1;;;;3563:3596:84;;;;;;-1:-1:-1;;;3563:3596:84;;;;;;;;6888:112:92;3563:3596:84;;-1:-1:-1;;;6979:10:92;;6664:41;;6979:10;6892:64;-1:-1:-1;3563:3596:84;;;;6892:64:92;;:23;;;;;;-1:-1:-1;6892:23:92;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;6659:90;3563:3596:84;;-1:-1:-1;;;6728:10:92;;6664:41;;6728:10;6664:41;;;;;;;;;;;;;;:::i;:::-;;;;3326:384:28;-1:-1:-1;;;;;;;;;;;1847:1:28;3563:3596:84;;3526:20:28;3522:88;;1847:1;3563:3596:84;;3326:384:28:o;3522:88::-;3563:3596:84;;-1:-1:-1;;;3569:30:28;;;;;4451:257:92;3563:3596:84;;-1:-1:-1;;;4546:86:92;;467:2:88;3563:3596:84;;;;4546:86:92;;;3563:3596:84;-1:-1:-1;;;;;4546:86:92;3563:3596:84;;;4572:26:92;3563:3596:84;;4546:86:92;;;;;;;-1:-1:-1;4546:86:92;;;4451:257;4636:10;;3563:3596:84;;4546:100:92;4542:160;;4451:257::o;4542:160::-;3563:3596:84;;-1:-1:-1;;;4669:22:92;;4546:86;;4669:22;4546:86;;;;;;;;;;;;;;;:::i;:::-;;;;;2557:104:57;;2641:5;;;;;;:13;2557:104;:::o;2641:13::-;;;2557:104;:::o;3563:3596:84:-;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::o;2666:855:86:-;;3563:3596:84;;2880:15:86;2838:11;2905:18;2938:7;2944:1;2938:7;;2934:241;;2666:855;3199:60;;;;;:::i;:::-;3274:8;;;3270:62;;3563:3596:84;3430:7:86;;;;:::i;:::-;13267:109;2838:11;13267:109;;2838:11;13267:109;;3563:3596:84;:::i;:::-;;3498:15:86;3505:7;3563:3596:84;13267:109:86;3563:3596:84;;;;;;;;3479:17:86;;3563:3596:84;-1:-1:-1;;;;;3563:3596:84;;;;3505:7:86;;:::i;:::-;3563:3596:84;;;;3498:15:86;3436:1;;3448:66;;2666:855::o;3270:62::-;3298:23;;2838:11;3298:23;2838:11;3298:23;2838:11;3298:23;2838:11;3298:23;:::o;2934:241::-;2981:14;;;;;:::i;:::-;3563:3596:84;;;;;;;3199:60:86;13267:109;;2838:11;13267:109;3563:3596:84;13267:109:86;;;2838:11;13267:109;;3563:3596:84;;;;;3013:55:86;3009:156;3563:3596:84;;;3088:10:86;3009:156;2934:241;;3009:156;3143:7;;;;;;:::i;:::-;3009:156;2934:241;;5905:168;;6006:20;;;:::i;:::-;3563:3596:84;;;;;;;-1:-1:-1;;3563:3596:84;;;;;;:::i;:::-;;;;;;;5905:168:86:o;3563:3596:84:-;;;;;;;;;;;;14291:213:58;3563:3596:84;14369:24:58;;;;14365:103;;3563:3596:84;14291:213:58;:::o;14365:103::-;3563:3596:84;;;;14416:41:58;;;;;;14447:2;14416:41;;;3563:3596:84;;;;;14416:41:58;3563:3596:84;;;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;3563:3596:84;;;;;;;;:::i;7558:604:86:-;;3563:3596:84;;7686:17:86;7682:83;;3563:3596:84;7789:27:86;3563:3596:84;7789:27:86;3563:3596:84;;7789:27:86;;;;;;:::i;:::-;7860:14;;;;;:::i;:::-;3563:3596:84;;;;;;;;;;;;;;;;7888:22:86;;;7884:77;;7975:21;-1:-1:-1;7975:84:86;;;;7558:604;7971:139;;;;8127:28;;;;:::i;7971:139::-;8082:17;;7789:27;8082:17;3563:3596:84;8075:24:86;:::o;7975:84::-;3563:3596:84;;;8009:16:86;3563:3596:84;;8009:16:86;:::i;:::-;3563:3596:84;;;8001:24:86;:57;;;;;7975:84;;;;;;;8001:57;8029:29;8038:8;;;8029:18;8038:8;8029:23;8038:8;;:::i;:::-;8029:18;;:::i;:29::-;;8001:57;;;;7884:77;7933:17;;;;;7789:27;7933:17;3563:3596:84;7926:24:86;:::o;7682:83::-;7726:28;;;;:::i;3563:3596:84:-;;;;;;;;;;;-1:-1:-1;;;;;3563:3596:84;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;3563:3596:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;3323:1122:92:-;;3563:3596:84;;:::i;:::-;;;;3608:16:92;3604:109;;3323:1122;837:15:62;;819:34;837:15;819:34;:::i;:::-;-1:-1:-1;3563:3596:84;;;;3778:27:92;;:13;;-1:-1:-1;;;;;3563:3596:84;3778:13:92;3563:3596:84;3778:27:92;3563:3596:84;;;;;;;3778:29:92;;;;;;;;;;;;;;;3740:67;3778:29;3759:48;3778:29;-1:-1:-1;3778:29:92;;;3759:48;;:::i;3740:67::-;3563:3596:84;;;3740:67:92;;;:107;;;;;3323:1122;3740:197;;;;3323:1122;3723:263;;;3563:3596:84;3778:29:92;3563:3596:84;;;;;;;;;;4025:25:92;;;;;;;;;4010:143;4025:25;;;-1:-1:-1;4025:25:92;;;3323:1122;4113:30;;;3563:3596:84;;;;;;;;;;;4010:143:92;;;;;3778:29;4010:143;;;:::i;:::-;;;-1:-1:-1;;;;;3563:3596:84;4010:143:92;;;;;;;4181:257;4010:143;-1:-1:-1;4010:143:92;;;3323:1122;3996:157;;4293:102;3996:157;;4233:162;3996:157;4207:231;3996:157;;2936:28;:47;:38;:28;;;3563:3596:84;;2936:16:92;3563:3596:84;;;;;;;2936:28:92;3563:3596:84;;;;;;;;;;;;;;;;2936:47:92;4351:43;;;4293:102;;:::i;:::-;4233:162;;:::i;:::-;4207:231;:::i;4181:257::-;3323:1122;:::o;4010:143::-;4233:162;4010:143;;;4207:231;4010:143;;;;4293:102;4010:143;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;;;;;4025:25;;;;;;;;;;;;;;:::i;:::-;;;;3723:263;3962:13;;;;;;-1:-1:-1;3962:13:92;-1:-1:-1;3962:13:92;:::o;3740:197::-;3886:41;;3867:70;3886:51;;:41;;;3563:3596:84;;3886:29:92;3563:3596:84;;;;;;;3886:51:92;3563:3596:84;;;;;3867:70:92;-1:-1:-1;3740:197:92;;;:107;837:15:62;;3811:36:92;819:34:62;837:15;819:34;:::i;3811:36:92:-;;;;3740:107;;;3778:29;;;;;;;;;;;;;;;:::i;3604:109::-;3662:40;;;;;;;;;;;;:::i;:::-;3604:109;;;;4714:335;;;;3563:3596:84;-1:-1:-1;3563:3596:84;4876:29:92;3563:3596:84;;;;4876:51:92;3563:3596:84;;-1:-1:-1;3563:3596:84;;;;;;;;;;;;;;;;;4876:51:92;3563:3596:84;;;;;-1:-1:-1;4872:171:92;;4714:335;;;:::o;4872:171::-;4962:70;3563:3596:84;4962:51:92;3563:3596:84;-1:-1:-1;3563:3596:84;4876:29:92;3563:3596:84;;;-1:-1:-1;3563:3596:84;;;;;;;;;;;;;;;;;4962:51:92;3563:3596:84;;;;;;;;;;;;5055:221:92;;;3563:3596:84;-1:-1:-1;3563:3596:84;5160:16:92;3563:3596:84;;2936:47:92;:38;5160;3563:3596:84;;-1:-1:-1;3563:3596:84;;;;;;;;;;;;;;;;;5160:38:92;837:15:62;819:34;837:15;819:34;:::i;:::-;3563:3596:84;-1:-1:-1;3563:3596:84;5160:16:92;3563:3596:84;;;-1:-1:-1;3563:3596:84;;;;;;;;;;;;;;;;;2936:47:92;3563:3596:84;;;;;;;;6360:12:86;;;3563:3596:84;;;6360:24:86;6356:75;;5055:221:92;6474:30:86;;;:::i;:::-;3563:3596:84;;;;;6578:12:86;;;;:::i;:::-;;6604:24;;;5055:221:92;-1:-1:-1;6600:188:86;;;-1:-1:-1;;;;3563:3596:84;;;;;;;6644:29:86;:21;;;;:::i;:::-;:29;3563:3596:84;;;;;;;;;;;;;;;;;;;;;6600:188:86;6753:24;;8167:38:60;;-1:-1:-1;;;;;3563:3596:84;;;;;8167:38:60;:::i;:::-;6753:24:86;;;:::i;6604:::-;3563:3596:84;;;;;;6614:14:86;;-1:-1:-1;6604:24:86;;;6356:75;6400:20;;;:::i;:::-;6356:75;;3563:3596:84;;;;;;;;-1:-1:-1;;;;;3563:3596:84;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;5282:431:92:-;;;;5487:25;;:23;:13;3563:3596:84;5494:5:92;3563:3596:84;;;;;;;;;5487:23:92;3563:3596:84;;-1:-1:-1;;;5487:25:92;;3563:3596:84;;;;;5487:25:92;;;;;;;5631:65;5487:25;5631:65;5487:25;5494:5;5487:25;;;5282:431;-1:-1:-1;;;;;;3563:3596:84;;;;:::i;:::-;-1:-1:-1;;;;;5677:4:92;3563:3596:84;;;5677:4:92;5487:25;5642:53;;3563:3596:84;;;5631:65:92;;;5487:25;5631:65;;;:::i;:::-;5472:234;;;;;5494:5;3563:3596:84;5472:234:92;3563:3596:84;;;;;;;;;;;;;;5472:234:92;;5487:25;5472:234;;;:::i;:::-;;;;;;;;;;;5282:431;:::o;5472:234::-;;;;;;:::i;:::-;;;:::i;5487:25::-;;;;;;;;;;;;;;:::i;:::-;;;;5719:137;3563:3596:84;5719:137:92;3563:3596:84;5802:47:92;5719:137;5809:5;3563:3596:84;;;;;;;;;;;;;;;;;;5802:47:92;;;;;3563:3596:84;;;;;;5802:47:92;;;;;;;;5719:137;:::o;5802:47::-;;;;;;;;;;;;;:::i;:::-;;5719:137::o;3563:3596:84:-;;;;;;;:::o;:::-;;;;;;;;;;;;5862:623:92;;;5988:12;3563:3596:84;;;;;;;5984:495:92;;5862:623;;;;;;:::o;5984:495::-;3563:3596:84;;-1:-1:-1;;;6033:22:92;;3563:3596:84;6033:22:92;;3563:3596:84;;6033:22:92;;3563:3596:84;;-1:-1:-1;;;;;3563:3596:84;6033:22:92;;;;;;;5988:12;6033:22;;;5984:495;-1:-1:-1;3563:3596:84;;-1:-1:-1;;;6033:22:92;6094:81;;;;;;;;3563:3596:84;;;;-1:-1:-1;;;;;3563:3596:84;;;;;;;;;;;;;;;;;;;;;;6094:81:92;3563:3596:84;;;;6094:81:92;;3563:3596:84;;6094:81:92;;;;;;:::i;:::-;3563:3596:84;6194:9:92;:55;6190:124;;5988:12;6328:141;;;;;;1271:7;6328:141;;5984:495;;;;;;;6190:124;3563:3596:84;;-1:-1:-1;;;6276:23:92;;6033:22;;6276:23;6033:22;6094:81;6033:22;;;6094:81;6033:22;;;;;;;;;;;:::i;:::-;;;;;10167:206:60;3563:3596:84;;10303:8:60;;;:63;;10262:17;10167:206;:::o;10303:63::-;3563:3596:84;;;;;;;;;;10262:17:60;13267:109:86;;10262:17:60;13267:109:86;;;3563:3596:84;;;10167:206:60;:::o;3563:3596:84:-;;;;;;;:::i;:::-;-1:-1:-1;3563:3596:84;;;;;;;:::o;5573:258:86:-;3563:3596:84;5573:258:86;11308:22:60;5573:258:86;3563:3596:84;;:::i;:::-;;;;:::i;:::-;;11308:22:60;:::i;:::-;3563:3596:84;;:::i;:::-;;;;;;5805:17:86;3563:3596:84;;;;;5805:17:86;;3563:3596:84;;;;;;;;:::i;:::-;;;5805:17:86;5759:65;;3563:3596:84;5573:258:86;:::o;6893:76:25:-;;;:::i;:::-;;;:::i;:::-;1805:1:28;-1:-1:-1;;;;;;;;;;;3563:3596:84;6893:76:25:o;3563:3596:84:-;;;;;;;:::i;:::-;-1:-1:-1;3563:3596:84;;:::o;:::-;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;:::o;8763:604:94:-;;8969:30;8763:604;3563:3596:84;;:::i;:::-;;;;8905:30:94;;;;;;;;;;;;;:::i;:::-;3563:3596:84;;-1:-1:-1;;;8969:30:94;;3563:3596:84;;;;;;;;-1:-1:-1;;;;;3563:3596:84;8969:30:94;;;;;;;;;;;8763:604;9013:19;;;3563:3596:84;;;;;;;;;;;;;;;9013:36:94;;9009:95;;3563:3596:84;9118:29:94;;9150:1;3563:3596:84;;9118:33:94;9114:102;;9226:34;3563:3596:84;9271:54:94;3563:3596:84;;;;;;;;;;;8969:30:94;3563:3596:84;;;8969:30:94;3563:3596:84;;9226:34:94;3563:3596:84;9271:54:94;3563:3596:84;;9271:54:94;9343:17;8763:604;:::o;9114:102::-;3563:3596:84;;-1:-1:-1;;;9174:31:94;;8969:30;;9174:31;9009:95;3563:3596:84;;-1:-1:-1;;;9072:21:94;;8969:30;;9072:21;8969:30;;;;;;;;;;;;;;;:::i;:::-;;;;;8587:1642:57;8658:6;;8654:45;;9401:7;10201:10;10142:26;10093;10044;9995;9946;9897;9848;3563:3596:84;10189:23:57;9401:7;8663:1;3563:3596:84;;;;10826:16:57;10822:99;;8587:1642;3563:3596:84;;;;10938:15:57;10934:96;;8587:1642;3563:3596:84;;;;11047:15:57;11043:96;;8587:1642;3563:3596:84;;;;11156:15:57;11152:96;;8587:1642;3563:3596:84;;;;11265:14:57;11261:93;;8587:1642;3563:3596:84;;;;11371:14:57;11367:93;;8587:1642;3563:3596:84;;;;11477:14:57;11473:93;;8587:1642;3563:3596:84;;;11579:64:57;;8587:1642;3563:3596:84;;;9858:10:57;;;;:::i;:::-;3563:3596:84;;;;;9848:26:57;9907:10;;;;:::i;9897:26::-;9956:10;;;;:::i;9946:26::-;10005:10;;;;:::i;9995:26::-;10054:10;;;;:::i;10044:26::-;10103:10;;;;:::i;10093:26::-;10152:10;;;;:::i;10142:26::-;10201:10;;;:::i;:::-;10189:23;;:::i;11579:64::-;3563:3596:84;;11579:64:57;;11473:93;3563:3596:84;11511:11:57;;3563:3596:84;;11473:93:57;;;;11367;3563:3596:84;11405:11:57;;3563:3596:84;;11367:93:57;;;;11261;3563:3596:84;11299:11:57;;3563:3596:84;;11261:93:57;;;;11152:96;3563:3596:84;11191:12:57;;3563:3596:84;;11152:96:57;;;;11043;3563:3596:84;11082:12:57;;3563:3596:84;;11043:96:57;;;;10934;3563:3596:84;10973:12:57;;3563:3596:84;;10934:96:57;;;;10822:99;10862:13;;;3563:3596:84;10822:99:57;;;;8654:45;8680:8;8663:1;8680:8;:::o;12497:447:86:-;;;12694:10;;;;;;12926:11;;;12497:447;:::o;12687:230::-;2900:5:57;;;;;;3563:3596:84;;2910:5:57;;;3563:3596:84;;;;;;;;;13267:109:86;-1:-1:-1;13267:109:86;3563:3596:84;13267:109:86;;;-1:-1:-1;13267:109:86;;3563:3596:84;;;;;-1:-1:-1;12771:136:86;3563:3596:84;;;12830:10:86;;12771:136;;12687:230;;;;12771:136;3563:3596:84;;;;;;;;;;;12771:136:86;;;10552:388:60;3563:3596:84;;10728:8:60;;;10752:20;;10690:17;10752:20;10690:17;10752:20;10690:17;10752:20;:::o;10724:210::-;3563:3596:84;;;;;;;;;;;13267:109:86;10690:17:60;13267:109:86;;10690:17:60;13267:109:86;;;3563:3596:84;:::i;:::-;;;;;;;13267:109:86;3563:3596:84;;;;;10911:11:60;;3563:3596:84;;10886:37:60;10870:1;10886:37;;;:::o;6999:207:86:-;;7117:34;6999:207;7117:34;;:::i;11486:272::-;;3563:3596:84;11308:22:60;11718:31:86;11486:272;3563:3596:84;;:::i;:::-;;;;:::i;:::-;;11308:22:60;;:::i;3563:3596:84:-;;11718:12:86;3563:3596:84;;;;;11731:17:86;3563:3596:84;;;;;11731:17:86;;3563:3596:84;;11718:12:86;;:31;:::i;:::-;3563:3596:84;;;;;;;;;:::i;:::-;;;;;;11731:17:86;11672:79;;3563:3596:84;11486:272:86;:::o;3563:3596:84:-;;;-1:-1:-1;;;3563:3596:84;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::o;:::-;;;;;-1:-1:-1;;;3563:3596:84;;;;;;;;;;;;;;;:::i;9441:606:60:-;;3563:3596:84;;9594:15:60;9559:17;9619:18;9652:7;9658:1;9652:7;;9648:234;;9441:606;9906:53;;;;;:::i;:::-;9977:8;;;:63;;9559:17;9441:606;:::o;9977:63::-;10025:7;;;:::i;:::-;13267:109:86;9559:17:60;13267:109:86;;9559:17:60;13267:109:86;;3563:3596:84;;;9441:606:60;:::o;9648:234::-;9695:14;;;;;:::i;:::-;3563:3596:84;;;;;;;9906:53:60;13267:109:86;;9559:17:60;13267:109:86;3563:3596:84;13267:109:86;;;9559:17:60;13267:109:86;;3563:3596:84;;;;;9727:48:60;9723:149;3563:3596:84;;;9795:10:60;9723:149;9648:234;;9723:149;9850:7;;;;;;:::i;:::-;9723:149;9648:234;;7084:141:25;3563:3596:84;-1:-1:-1;;;;;;;;;;;3563:3596:84;;;;7150:18:25;7146:73;;7084:141::o;7146:73::-;3563:3596:84;;-1:-1:-1;;;7191:17:25;;;;;3563:3596:84;;;-1:-1:-1;;;3563:3596:84;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;3563:3596:84;;;;;;;;;;;:::o;11513:870:60:-;3563:3596:84;;11513:870:60;;;3563:3596:84;11513:870:60;11672:7;;;;3563:3596:84;11775:28:60;11795:7;;;:::i;:::-;11775:28;13267:109:86;;;;;;13089:293;;11775:28:60;3563:3596:84;:::i;:::-;;;;;;;;;;;;;;;;11877:15:60;-1:-1:-1;11873:91:60;;3563:3596:84;;12233:11:60;3563:3596:84;;;12027:16:60;3563:3596:84;;;;;;;12027:16:60;;;;12083:7;12063:43;12083:7;;12063:28;12083:7;;:::i;:::-;12063:28;13267:109:86;;;;;;13089:293;;12063:28:60;3563:3596:84;;;;;;;;;;;;;;;;;12063:43:60;12233:11;3563:3596:84;-1:-1:-1;;;;;3563:3596:84;;;;12225:27:60;;:::o;12023:189::-;3563:3596:84;;;12145:52:60;3563:3596:84;12155:41:60;3563:3596:84;;:::i;:::-;;;;;;;;12155:41:60;-1:-1:-1;;;;;3563:3596:84;;12155:41:60;;;3563:3596:84;12145:52:60;:::i;:::-;12023:189;;11873:91;3563:3596:84;;-1:-1:-1;;;11919:30:60;;;;;11668:709;12283:52;3563:3596:84;;12293:41:60;3563:3596:84;;:::i;12293:41:60:-;-1:-1:-1;;;;;3563:3596:84;;12293:41:60;;;3563:3596:84;12145:52:60;:::i;12283:::-;11678:1;12349:17;;:::o","linkReferences":{},"immutableReferences":{"57808":[{"start":1147,"length":32}],"57811":[{"start":5510,"length":32},{"start":11354,"length":32}],"62368":[{"start":2918,"length":32}],"62998":[{"start":2054,"length":32},{"start":6420,"length":32},{"start":7433,"length":32}],"65592":[{"start":744,"length":32},{"start":8890,"length":32}],"65595":[{"start":1079,"length":32},{"start":9284,"length":32}],"66325":[{"start":3192,"length":32},{"start":5596,"length":32}]}},"methodIdentifiers":{"BASE_SLASHER_HINTS()":"457821b7","BURNER_GAS_LIMIT()":"d5c24e1a","BURNER_RESERVE()":"2964f8dc","FACTORY()":"2dd31000","NETWORK_MIDDLEWARE_SERVICE()":"2c9d45b3","NETWORK_REGISTRY()":"c0cd7c3e","TYPE()":"bb24fe8a","VAULT_FACTORY()":"103f2907","cumulativeSlash(bytes32,address)":"1a2be2c4","cumulativeSlashAt(bytes32,address,uint48,bytes)":"aa8e6489","executeSlash(uint256,bytes)":"b94c386e","executeSlashHints(address,bytes32,address,uint48)":"69f78920","initialize(bytes)":"439fab91","isBurnerHook()":"34d098ea","latestSlashedCaptureTimestamp(bytes32,address)":"267de1f3","requestSlash(bytes32,address,uint256,uint48,bytes)":"545ce389","requestSlashHints(address,address,bytes32,address,uint256,uint48)":"002a0875","resolver(bytes32,bytes)":"cd05b8a1","resolverAt(bytes32,uint48,bytes)":"31ce4dfe","resolverHint(address,bytes32,uint48)":"a4ef9b4f","resolverHintInternal(bytes32,uint48)":"8f82f931","resolverSetEpochsDelay()":"bc6eac5b","setResolver(uint96,address,bytes)":"9168f9d2","setResolverHints(address,bytes32,uint48)":"1dd5f600","slashRequests(uint256)":"9a896551","slashRequestsLength()":"8f42f9ab","slashableStake(bytes32,address,uint48,bytes)":"aab3595f","staticDelegateCall(address,bytes)":"9f86fd85","vault()":"fbfa77cf","vetoDuration()":"e054e08b","vetoSlash(uint256,bytes)":"f9268d18","vetoSlashHints(address,bytes32,uint48)":"5264679b"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"baseSlasherHints\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"AlreadySet\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CheckpointUnorderedInsertion\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ExternalCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientBurnerGas\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientSlash\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidCaptureTimestamp\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidResolverSetEpochsDelay\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidVetoDuration\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NoBurner\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NoResolver\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotNetwork\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotNetworkMiddleware\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotResolver\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotVault\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ReentrancyGuardReentrantCall\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"bits\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"SafeCastOverflowedUintDowncast\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SlashPeriodEnded\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SlashRequestCompleted\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SlashRequestNotExist\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"VetoPeriodEnded\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"VetoPeriodNotEnded\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"slashIndex\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"slashedAmount\",\"type\":\"uint256\"}],\"name\":\"ExecuteSlash\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"slashIndex\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"slashAmount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint48\",\"name\":\"captureTimestamp\",\"type\":\"uint48\"},{\"indexed\":false,\"internalType\":\"uint48\",\"name\":\"vetoDeadline\",\"type\":\"uint48\"}],\"name\":\"RequestSlash\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"resolver\",\"type\":\"address\"}],\"name\":\"SetResolver\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"slashIndex\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"resolver\",\"type\":\"address\"}],\"name\":\"VetoSlash\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"BASE_SLASHER_HINTS\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"BURNER_GAS_LIMIT\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"BURNER_RESERVE\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"FACTORY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"NETWORK_MIDDLEWARE_SERVICE\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"NETWORK_REGISTRY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"TYPE\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"VAULT_FACTORY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"cumulativeSlash\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hint\",\"type\":\"bytes\"}],\"name\":\"cumulativeSlashAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"slashIndex\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"hints\",\"type\":\"bytes\"}],\"name\":\"executeSlash\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"slashedAmount\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"slasher\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"captureTimestamp\",\"type\":\"uint48\"}],\"name\":\"executeSlashHints\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isBurnerHook\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"latestSlashedCaptureTimestamp\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"value\",\"type\":\"uint48\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint48\",\"name\":\"captureTimestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hints\",\"type\":\"bytes\"}],\"name\":\"requestSlash\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"slashIndex\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"slasher\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"msgSender\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint48\",\"name\":\"captureTimestamp\",\"type\":\"uint48\"}],\"name\":\"requestSlashHints\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"hint\",\"type\":\"bytes\"}],\"name\":\"resolver\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hint\",\"type\":\"bytes\"}],\"name\":\"resolverAt\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"slasher\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"}],\"name\":\"resolverHint\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"}],\"name\":\"resolverHintInternal\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"exists\",\"type\":\"bool\"},{\"internalType\":\"uint32\",\"name\":\"hint\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"resolverSetEpochsDelay\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint96\",\"name\":\"identifier\",\"type\":\"uint96\"},{\"internalType\":\"address\",\"name\":\"resolver_\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"hints\",\"type\":\"bytes\"}],\"name\":\"setResolver\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"slasher\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"}],\"name\":\"setResolverHints\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"slashRequests\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint48\",\"name\":\"captureTimestamp\",\"type\":\"uint48\"},{\"internalType\":\"uint48\",\"name\":\"vetoDeadline\",\"type\":\"uint48\"},{\"internalType\":\"bool\",\"name\":\"completed\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"slashRequestsLength\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"captureTimestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hints\",\"type\":\"bytes\"}],\"name\":\"slashableStake\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"staticDelegateCall\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"vault\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"vetoDuration\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"slashIndex\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"hints\",\"type\":\"bytes\"}],\"name\":\"vetoSlash\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"slasher\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"uint48\",\"name\":\"captureTimestamp\",\"type\":\"uint48\"}],\"name\":\"vetoSlashHints\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"CheckpointUnorderedInsertion()\":[{\"details\":\"A value was attempted to be inserted on a past checkpoint.\"}],\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"ReentrancyGuardReentrantCall()\":[{\"details\":\"Unauthorized reentrant call.\"}],\"SafeCastOverflowedUintDowncast(uint8,uint256)\":[{\"details\":\"Value doesn't fit in an uint of `bits` size.\"}]},\"events\":{\"ExecuteSlash(uint256,uint256)\":{\"params\":{\"slashIndex\":\"index of the slash request\",\"slashedAmount\":\"virtual amount of the collateral slashed\"}},\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"RequestSlash(uint256,bytes32,address,uint256,uint48,uint48)\":{\"params\":{\"captureTimestamp\":\"time point when the stake was captured\",\"operator\":\"operator that could be slashed (if the request is not vetoed)\",\"slashAmount\":\"maximum amount of the collateral to be slashed\",\"slashIndex\":\"index of the slash request\",\"subnetwork\":\"subnetwork that requested the slash\",\"vetoDeadline\":\"deadline for the resolver to veto the slash (exclusively)\"}},\"SetResolver(bytes32,address)\":{\"params\":{\"resolver\":\"address of the resolver\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"}},\"VetoSlash(uint256,address)\":{\"params\":{\"resolver\":\"address of the resolver that vetoed the slash\",\"slashIndex\":\"index of the slash request\"}}},\"kind\":\"dev\",\"methods\":{\"cumulativeSlash(bytes32,address)\":{\"params\":{\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"},\"returns\":{\"_0\":\"cumulative slash amount\"}},\"cumulativeSlashAt(bytes32,address,uint48,bytes)\":{\"params\":{\"hint\":\"hint for the checkpoint index\",\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\",\"timestamp\":\"time point to get the cumulative slash amount until (inclusively)\"},\"returns\":{\"_0\":\"cumulative slash amount until the given timestamp (inclusively)\"}},\"executeSlash(uint256,bytes)\":{\"details\":\"Only a network middleware can call this function.\",\"params\":{\"hints\":\"hints for checkpoints' indexes\",\"slashIndex\":\"index of the slash request\"},\"returns\":{\"slashedAmount\":\"virtual amount of the collateral slashed\"}},\"initialize(bytes)\":{\"params\":{\"data\":\"some data to use\"}},\"requestSlash(bytes32,address,uint256,uint48,bytes)\":{\"details\":\"Only a network middleware can call this function.\",\"params\":{\"amount\":\"maximum amount of the collateral to be slashed\",\"captureTimestamp\":\"time point when the stake was captured\",\"hints\":\"hints for checkpoints' indexes\",\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"},\"returns\":{\"slashIndex\":\"index of the slash request\"}},\"resolver(bytes32,bytes)\":{\"params\":{\"hint\":\"hint for the checkpoint index\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"},\"returns\":{\"_0\":\"address of the resolver\"}},\"resolverAt(bytes32,uint48,bytes)\":{\"params\":{\"hint\":\"hint for the checkpoint index\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\",\"timestamp\":\"timestamp to get the resolver at\"},\"returns\":{\"_0\":\"address of the resolver\"}},\"slashRequestsLength()\":{\"returns\":{\"_0\":\"total number of slash requests\"}},\"slashableStake(bytes32,address,uint48,bytes)\":{\"params\":{\"captureTimestamp\":\"time point to get the stake amount at\",\"hints\":\"hints for the checkpoints' indexes\",\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"},\"returns\":{\"amount\":\"slashable amount of the stake\"}},\"staticDelegateCall(address,bytes)\":{\"details\":\"It allows to use this contract's storage on-chain.\",\"params\":{\"data\":\"data to make a delegatecall with\",\"target\":\"address of the contract to make a delegatecall to\"}},\"vetoSlash(uint256,bytes)\":{\"details\":\"Only a resolver can call this function.\",\"params\":{\"hints\":\"hints for checkpoints' indexes\",\"slashIndex\":\"index of the slash request\"}}},\"version\":1},\"userdoc\":{\"events\":{\"ExecuteSlash(uint256,uint256)\":{\"notice\":\"Emitted when a slash request is executed.\"},\"RequestSlash(uint256,bytes32,address,uint256,uint48,uint48)\":{\"notice\":\"Emitted when a slash request is created.\"},\"SetResolver(bytes32,address)\":{\"notice\":\"Emitted when a resolver is set.\"},\"VetoSlash(uint256,address)\":{\"notice\":\"Emitted when a slash request is vetoed.\"}},\"kind\":\"user\",\"methods\":{\"BURNER_GAS_LIMIT()\":{\"notice\":\"Get a gas limit for the burner.\"},\"BURNER_RESERVE()\":{\"notice\":\"Get a reserve gas between the gas limit check and the burner's execution.\"},\"FACTORY()\":{\"notice\":\"Get the factory's address.\"},\"NETWORK_MIDDLEWARE_SERVICE()\":{\"notice\":\"Get the network middleware service's address.\"},\"NETWORK_REGISTRY()\":{\"notice\":\"Get the network registry's address.\"},\"TYPE()\":{\"notice\":\"Get the entity's type.\"},\"VAULT_FACTORY()\":{\"notice\":\"Get the vault factory's address.\"},\"cumulativeSlash(bytes32,address)\":{\"notice\":\"Get a cumulative slash amount for an operator on a subnetwork.\"},\"cumulativeSlashAt(bytes32,address,uint48,bytes)\":{\"notice\":\"Get a cumulative slash amount for an operator on a subnetwork until a given timestamp (inclusively) using a hint.\"},\"executeSlash(uint256,bytes)\":{\"notice\":\"Execute a slash with a given slash index using hints.\"},\"initialize(bytes)\":{\"notice\":\"Initialize this entity contract by using a given data.\"},\"isBurnerHook()\":{\"notice\":\"Get if the burner is needed to be called on a slashing.\"},\"latestSlashedCaptureTimestamp(bytes32,address)\":{\"notice\":\"Get the latest capture timestamp that was slashed on a subnetwork.\"},\"requestSlash(bytes32,address,uint256,uint48,bytes)\":{\"notice\":\"Request a slash using a subnetwork for a particular operator by a given amount using hints.\"},\"resolver(bytes32,bytes)\":{\"notice\":\"Get a resolver for a given subnetwork using a hint.\"},\"resolverAt(bytes32,uint48,bytes)\":{\"notice\":\"Get a resolver for a given subnetwork at a particular timestamp using a hint.\"},\"resolverSetEpochsDelay()\":{\"notice\":\"Get a delay for networks in epochs to update a resolver.\"},\"slashRequests(uint256)\":{\"notice\":\"Get a particular slash request.\"},\"slashRequestsLength()\":{\"notice\":\"Get a total number of slash requests.\"},\"slashableStake(bytes32,address,uint48,bytes)\":{\"notice\":\"Get a slashable amount of a stake got at a given capture timestamp using hints.\"},\"staticDelegateCall(address,bytes)\":{\"notice\":\"Make a delegatecall from this contract to a given target contract with a particular data (always reverts with a return data).\"},\"vault()\":{\"notice\":\"Get the vault's address.\"},\"vetoDuration()\":{\"notice\":\"Get a duration during which resolvers can veto slash requests.\"},\"vetoSlash(uint256,bytes)\":{\"notice\":\"Veto a slash with a given slash index using hints.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/contracts/hints/SlasherHints.sol\":\"VetoSlasherHints\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol\":{\"keccak256\":\"0x6662ec4e5cefca03eeadd073e9469df8d2944bb2ee8ec8f7622c2c46aab5f225\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4d8544c6f8daa4d1bc215c6a72fe0acdb748664a105b0e5efc19295667521d45\",\"dweb:/ipfs/QmdGWqdnXT8S3RgCR6aV8XHZrsybieMQLLnug1NtpSjEXN\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0xc163fcf9bb10138631a9ba5564df1fa25db9adff73bd9ee868a8ae1858fe093a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9706d43a0124053d9880f6e31a59f31bc0a6a3dc1acd66ce0a16e1111658c5f6\",\"dweb:/ipfs/QmUFmfowzkRwGtDu36cXV9SPTBHJ3n7dG9xQiK5B28jTf2\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609\",\"dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9\",\"dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardUpgradeable.sol\":{\"keccak256\":\"0xb44e086e941292cdc7f440de51478493894ef0b1aeccb0c4047445919f667f74\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://942dad22fbdc1669f025540ba63aa3ccfad5f8458fc5d4525b31ebf272e7af45\",\"dweb:/ipfs/Qmdo4X2M82aM3AMoW2kf2jhYkSCyC4T1pHNd6obdsDFnAB\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol\":{\"keccak256\":\"0xdaba3f7c42c55b2896353f32bd27d4d5f8bae741b3b05d4c53f67abc4dc47ce8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1fa2e61141c602510bcd2cd936ed9561922ac8772a9b9c9a9db091a74e354a45\",\"dweb:/ipfs/QmcHQDDoEBwJmwUbzoVkytvJsBx3KVHYFFnDkvRGWh9Wmh\"]},\"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0xb6b36edd6a2999fd243ff226d6cbf84bd71af2432bbd0dfe19392996a1d9cb41\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1fd2f35495652e57e3f99bc6c510bc5f7dd398a176ea2e72d8ed730aebc6ca26\",\"dweb:/ipfs/QmTQV6X4gkikTib49cho5iDX3JvSQbdsoEChoDwrk3CbbH\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC1271.sol\":{\"keccak256\":\"0x85a45f3f10014a0f8be41157a32b6a5f905753ea64a4b64e29fc12b7deeecf39\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c3c74009ce36136b36c77c23935b8e4a7b4f253be2da2be4fb4a916b1ce43743\",\"dweb:/ipfs/QmcH36v3iN7SJJuF73AunLR2LtNxhVJ1wm63ph4dPZ4pcL\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC5267.sol\":{\"keccak256\":\"0x92aa1df62dc3d33f1656d63bede0923e0df0b706ad4137c8b10b0a8fe549fd92\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c5c0f29195ad64cbe556da8e257dac8f05f78c53f90323c0d2accf8e6922d33a\",\"dweb:/ipfs/QmQ61TED8uaCZwcbh8KkgRSsCav7x7HbcGHwHts3U4DmUP\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c\",\"dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0x6008dabfe393240d73d7dd7688033f72740d570aa422254d29a7dce8568f3aff\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f5196ec75139918c6c7bb4251b36395e668f1fa6d206beba7e7520e74913940d\",\"dweb:/ipfs/QmSyqjksXxmm2mCG6qRd1yuwLykypkSVBbnBnGqJRcuJMi\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x37bb49513c49c87c4642a891b13b63571bc87013dde806617aa1efb54605f386\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b3036b3a83b7c48f96641f2a9002b9f2dcb6a5958dd670894ada21ae8229b3d0\",\"dweb:/ipfs/QmUNfSBdoVtjhETaUJCYcaC7pTMgbhht926tJ2uXJbiVd3\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0xaf28a975a78550e45f65e559a3ad6a5ad43b9b8a37366999abd1b7084eb70721\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b7bd24e224f67f65bfadf85dc2929fa965456bb2415478bd0125471b5ce35245\",\"dweb:/ipfs/QmRaydGr8BTHs1kvaZfsNU69pKzUAGFrvABn1KiRSbE51y\"]},\"lib/openzeppelin-contracts/contracts/utils/ShortStrings.sol\":{\"keccak256\":\"0x18a7171df639a934592915a520ecb97c5bbc9675a1105607aac8a94e72bf62c6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7478e1f13da69a2867ccd883001d836b75620362e743f196376d63ed0c422a1c\",\"dweb:/ipfs/QmWywcQ9TNfwtoqAxbn25d8C5VrV12PrPS9UjtGe6pL2BA\"]},\"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0x32ba59b4b7299237c8ba56319110989d7978a039faf754793064e967e5894418\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1ae50c8b562427df610cc4540c9bf104acca7ef8e2dcae567ae7e52272281e9c\",\"dweb:/ipfs/QmTHiadFCSJUPpRjNegc5SahmeU8bAoY8i9Aq6tVscbcKR\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0x55f102ea785d8399c0e58d1108e2d289506dde18abc6db1b7f68c1f9f9bc5792\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e52e0a7765c943ef14e5bcf11e46e6139fa044be564881378349236bf2e3453\",\"dweb:/ipfs/QmZEeeXoFPW47amyP35gfzomF9DixqqTEPwzBakv6cZw6i\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0xeed0a08b0b091f528356cbc7245891a4c748682d4f6a18055e8e6ca77d12a6cf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba80ba06c8e6be852847e4c5f4492cef801feb6558ae09ed705ff2e04ea8b13c\",\"dweb:/ipfs/QmXRJDv3xHLVQCVXg1ZvR35QS9sij5y9NDWYzMfUfAdTHF\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/EIP712.sol\":{\"keccak256\":\"0x999f705a027ed6dc2d4e0df2cc4a509852c6bfd11de1c8161bf88832d0503fd0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0798def67258d9a3cc20b2b4da7ebf351a5cefe0abfdd665d2d81f8e32f89b21\",\"dweb:/ipfs/QmPEvJosnPfzHNjKvCv2D3891mA2Ww8eUwkqrxBjuYdHCt\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol\":{\"keccak256\":\"0xba333517a3add42cd35fe877656fc3dfcc9de53baa4f3aabbd6d12a92e4ea435\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2ceacff44c0fdc81e48e0e0b1db87a2076d3c1fb497341de077bf1da9f6b406c\",\"dweb:/ipfs/QmRUo1muMRAewxrKQ7TkXUtknyRoR57AyEkoPpiuZQ8FzX\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/SignatureChecker.sol\":{\"keccak256\":\"0x6b11eb41a228cca35d4b662b4df69fcd75192851365102690f57b2ac01e83fe6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ab006a2983ed350d2af21ddcdd835dcae3b8340086cc4d088460da5abd041f69\",\"dweb:/ipfs/QmbEacDhkJZiGrgzLjB4pNtE8Z1uudjDw1DvcDUTVQFsLG\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875\",\"dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0xe19a4d5f31d2861e7344e8e535e2feafb913d806d3e2b5fe7782741a2a7094fe\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4aed79c0fa6f0546ed02f2f683e8f77f0fd2ed7eb34d8bbf3d373c9a6d95b13c\",\"dweb:/ipfs/QmWqVz6UAVqmnWU5pqYPt1o6iDEZyPaBraAA3rKfTTSfYj\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x5f7e4076e175393767754387c962926577f1660dd9b810187b9002407656be72\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7d533a1c97cd43a57cd9c465f7ee8dd0e39ae93a8fb8ff8e5303a356b081cdcc\",\"dweb:/ipfs/QmVBEei6aTnvYNZp2CHYVNKyZS4q1KkjANfY39WVXZXVoT\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/Checkpoints.sol\":{\"keccak256\":\"0xbdc5e074d7dd6678f67e92b1a51a20226801a407b0e1af3da367c5d1ff4519ad\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a36cca6b22fff3db16fc789ff6c60eea71d4b156065d4d0c83a0bc5e91a77a8b\",\"dweb:/ipfs/QmYN3exd5AemxjBrN8XMB1p5LbbE16uC3sjbYjwi8AjcGR\"]},\"lib/openzeppelin-contracts/contracts/utils/types/Time.sol\":{\"keccak256\":\"0xc7755af115020049e4140f224f9ee88d7e1799ffb0646f37bf0df24bf6213f58\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7f09bf94d5274334ec021f61a04659db303f31e60460e14b709c9bf187740111\",\"dweb:/ipfs/QmNvgomZYUwFAt4cZbPWAiTeSZQreGehY9BK5xyVJsUttb\"]},\"src/contracts/common/Entity.sol\":{\"keccak256\":\"0x3d61a932995b8443381f3950542d388223a2c26dd5d29a3274dea3baa7388bd7\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://7cdf5f03ca72fd263fd32ff59c8d88ddca911ae83896a287d10772c1bbe9b138\",\"dweb:/ipfs/QmbP84r5BWT1Rn9AYTntWSf3xUMTTCohTZJFhbBhDXFoHa\"]},\"src/contracts/common/MigratableEntity.sol\":{\"keccak256\":\"0x2d736f4dacd5d7e7697503bc426c78b8250fe1694ca157965ec178da6807de58\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://f1237acf96b4b9f9b69156e068eddd726a6e15bd8e87a18dc999cd4ba4da069c\",\"dweb:/ipfs/QmS6M8fiFFSeuJ4ZKKq1z8W7w4ybeHQSy5TLASGoc1LVic\"]},\"src/contracts/common/StaticDelegateCallable.sol\":{\"keccak256\":\"0x350029aa8955eacaffffaeb58babc5c98e80ebc5c5db388ed17ee6465f4a9d90\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://eb392a8ee9050e0af606897df63e3404e3829e8b688b580663892f9664195764\",\"dweb:/ipfs/QmaXC8jqV8UrrAFkzXTEv2fJF56sy33HhLxAzaRZmUxuXD\"]},\"src/contracts/delegator/BaseDelegator.sol\":{\"keccak256\":\"0x7c54d491fdd4415b764a9c8defa068e56d4c0c8c9419be0053a1d377669290e8\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://9238bfbad0f6eeb0dc7727724de14380f1980b395902269703d5e2ef07e52e10\",\"dweb:/ipfs/QmPJn1V4HNXcEghYvogGuSTF24dSQUPosR5qtsXcmNqRm3\"]},\"src/contracts/delegator/FullRestakeDelegator.sol\":{\"keccak256\":\"0x0a81c4f8e72914563a9cb771e93acf889c71ea36b7bec040e4eb562b199d5af1\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://6fc66b6ba02da77046a0bbbd1dd407a62c08f52e04486c9cbd2cb1cca3da555f\",\"dweb:/ipfs/QmZQivK1ZnMxfRQQ5aLpV9co5u55wQVNev5Rg1hzAqxhkE\"]},\"src/contracts/delegator/NetworkRestakeDelegator.sol\":{\"keccak256\":\"0xd3a8e6522f9c6fdcc2da837c9023afd6bdff2bce45a35590320c475519e3636d\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://58b17a87f6554f08376f9ea7fedf486a4aa75801bf0ad8b23ff5a46959b6b7a3\",\"dweb:/ipfs/QmSTmNh67tYt8CmjVZb57r8N3qX5yeYdMApKPJm3qvQgQw\"]},\"src/contracts/delegator/OperatorNetworkSpecificDelegator.sol\":{\"keccak256\":\"0x031a10722b9ec49048f0952710401131290adb87e71caf294e864e7ac3b98a16\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://72428febc875134b2f29205e6f294634a1c22a7d5c78d6a9cb2f8196f107c9b5\",\"dweb:/ipfs/QmTPwXR6h5oytckmkLrHdKeEMdphJxceDhYUR4zvQeWAwY\"]},\"src/contracts/delegator/OperatorSpecificDelegator.sol\":{\"keccak256\":\"0x630ce62fa30b9f3349ab7a8cf8dbf041319febc6dd757be2f94d3d25944ed328\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://c2ac59d47ce57d2a6819ae9833e1a618a371eccff93eb5ab367b201b01f42bfa\",\"dweb:/ipfs/QmdBpGMBivpNPv2WbH8vnCUy5xkVeaxQvGgqi33vKCz1kA\"]},\"src/contracts/hints/DelegatorHints.sol\":{\"keccak256\":\"0x44aa0c396311a54afbc7c73e8dadeed41e3165a4fd13f712b27d63d50fc3376d\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://2f255214f3531fc707d88be0d56a7a0aed4180439316d099d760d9118aa83093\",\"dweb:/ipfs/QmZD1w5p1ukJSXumUAjvxwGmkPhn7vsr21Y2atLGEZR2oi\"]},\"src/contracts/hints/Hints.sol\":{\"keccak256\":\"0x8b565df1ae35993c097a9e642002782a8f451f6fd01809cad6bcd345bdf1b99c\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://99a19adb01e350a92f534095b3078229df1f2f83077992d75d58d8684be45971\",\"dweb:/ipfs/QmbmwcuswVbzvwHQFTtrJG86oV98GnfxqYTb8cV8u1acox\"]},\"src/contracts/hints/OptInServiceHints.sol\":{\"keccak256\":\"0x95d9407900d27b9f4a1233b772aeed809c07b2dc5b31cfc9fa77ca26514c49e5\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://a13a8877e312d7e6b8b85bde3668c5d84ff5ecc83f762cd573f2b7104c64eb42\",\"dweb:/ipfs/QmYV2J55acuGzCNnS3juABuUHY5U1xc8g8o9jwEyFFdeG5\"]},\"src/contracts/hints/SlasherHints.sol\":{\"keccak256\":\"0xd77c5f3bbb0265af8ecd947df88f6f9684e136d80052b5292f5b29aaa3566a3f\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://484a26504bf6706202ec82a9a4cfa7d196bbc552b5b78ced25bf7130c2842595\",\"dweb:/ipfs/QmaQqmkoZoUWEam4R94vmajzH3gKqFqpZQwFbrHDsN1peV\"]},\"src/contracts/hints/VaultHints.sol\":{\"keccak256\":\"0xccb505b7159b769cc114d67b87c2de6b106557f667fc8f3780114baad5c3c442\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://6d0c80a908fc16e96a8b5605a0bd53f9e89ad0ef0a738fbbae80ba4d3160749b\",\"dweb:/ipfs/QmXo5UtWoR8YmunqcbBU8rQMm1nvmvjNPoXcVrDhh4pEwR\"]},\"src/contracts/libraries/Checkpoints.sol\":{\"keccak256\":\"0xba90097c8bfe0a975499428b5f8ac5569483c7d92ccc28c12d70de416aae040c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://12f5d93ca94cd06d3147db68993165a58e17903ed53682560de61f3085ad4609\",\"dweb:/ipfs/QmePiuAqvXprMLmFZkGZeGjvGPAvsEDHfCDv7BoQhXu9xE\"]},\"src/contracts/libraries/ERC4626Math.sol\":{\"keccak256\":\"0x8441160513c1cbeb1c3b9ee077bcc7e7ce20006b52a77c8dd39ff0ef89699939\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://943f8cc3e26ddf649f465f40c909819f5c864717c4baa339e9e403b9374a4653\",\"dweb:/ipfs/QmXPxi1sUDsrGprZdUgCzoPEosaZMv9ZhygWQ1vAi1phAB\"]},\"src/contracts/libraries/Subnetwork.sol\":{\"keccak256\":\"0xf5ef5506fd66082b3c2e7f3df37529f5a8efad32ac62e7c8914bd63219190bfe\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba031a54ee0d0e9a270c2b9e18437f5668cfeb659cfd5fe0677459d7fcac2a56\",\"dweb:/ipfs/QmReP3H7qQ78tAfgLnJKsNEQNCQfF1X1Get38Ffd4kzq32\"]},\"src/contracts/service/OptInService.sol\":{\"keccak256\":\"0x4e0932077f2686b7990e10d59deb2535334c0d09e52ef6e57c6ab09eca21c4b1\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://7c00d311032ed4a1743aca7475f3c86ce15cdfc2218108efc3731c03d34a5278\",\"dweb:/ipfs/QmUGGfVwVhaHr5kS4177yKKYiLYzi5qZpkEmvYxBZqazxf\"]},\"src/contracts/slasher/BaseSlasher.sol\":{\"keccak256\":\"0x190e5dce196a061bdad42468c52e9f5b0eb7810cd7d0c19f04d6a2e94984f1b6\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://07ca08d0cd43c2fe5d54a5577f6bdd522ced410f5d3a52e764deaa7ba26b5f06\",\"dweb:/ipfs/QmZe3PiMKBQKWcwodaLupragdqxPjgS4v1qMC7RXau8hDF\"]},\"src/contracts/slasher/Slasher.sol\":{\"keccak256\":\"0xeee0cb25fad58d496fdcc641d852d11bae06e6ceed5230ae21150964175c494f\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://34aa27d21246a1bcee0b6a2afa8d9d613441156362430392f75d176511d58c61\",\"dweb:/ipfs/Qmf53Y3zdGfH4PU2zpSGeHZ8mMLzLXCtmkQrG5mnVJECQ3\"]},\"src/contracts/slasher/VetoSlasher.sol\":{\"keccak256\":\"0xeccc8128de5e1ad499c067feac1c526638fbbac1a18b96726fc7507969fd5897\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://cdfcf281338423625acbccdf8810115b258ef7cfe4aa3c10b8911ead1aa85429\",\"dweb:/ipfs/QmZFsDvZXpkFkx4PHcDXAVPN3ZCAahbSVfYpSVrMBvbt4k\"]},\"src/contracts/vault/Vault.sol\":{\"keccak256\":\"0x2ceff6ed3298c4cad144c99fcc79b51cb9397d6ebef00285b915848b476f8c2e\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://11f2fb3581854f3ab6e82e8d4935d9eb510c903a13c3f022346c2956a58f5307\",\"dweb:/ipfs/QmdUnoXoyYoG9SGWyQZCFyLDRUUX3eXyXetkRvw6jxqqBz\"]},\"src/contracts/vault/VaultStorage.sol\":{\"keccak256\":\"0x57db25b127d77ea3472de53e3a4af3354399655b9268638b99ca5925fa364a56\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://aa763d9a6ec508ae3abfb8228b72b9fd9525279e5135d4962e79ff059feb1173\",\"dweb:/ipfs/QmcbDR6E9wyEpu6V2FkEC4hnWy47zXA9LSKJde6zSGd33Q\"]},\"src/interfaces/common/IEntity.sol\":{\"keccak256\":\"0x8ef4b63d6da63489778ccd5f8d13ebdd527dd4b62730b2c616df5af7474d2d21\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a8d69576a9219d85c50816a18ad53a4d53cfcb27ed38b8cccc808dc2734b71b\",\"dweb:/ipfs/QmYVN3P4Q4REvBWJ97TbAcaxm3uyB2anV6NSGa6ZtSwcEv\"]},\"src/interfaces/common/IMigratableEntity.sol\":{\"keccak256\":\"0x8f5f2809f3afbe8ebfbb365dd7b57b4dd3b6f9943a6187eaf648d45895b8e3c4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ffe640537d539e7a4fde70d30d3e4c57f4ba9c2c25c450cea713aae38e8fd5c\",\"dweb:/ipfs/QmSUTGzvdcn1R1KB7tLThMRtESsfPbeXDhhhKWGtntzBds\"]},\"src/interfaces/common/IRegistry.sol\":{\"keccak256\":\"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014\",\"dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK\"]},\"src/interfaces/common/IStaticDelegateCallable.sol\":{\"keccak256\":\"0xa335d4e81b9071b7de66ef92b43ff20671d86516eb1be46fef29a3483cd3f5d5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d464b9db863c14c05547d2b23352f2e9b7b784799cf09f6bbc4906a2a74e3516\",\"dweb:/ipfs/QmUVWzFvJz7eEbDQKiFTTzwi7TEbjcs3VmwdM4kuptAKvi\"]},\"src/interfaces/delegator/IBaseDelegator.sol\":{\"keccak256\":\"0x96bb312f032e17accce3f8f80936d99468029d6b37c9ca74acdb4b026a0148ee\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2a66dcb5b7d1a6ef6a363431ea98ebd78bc4fdd3d7a134d9b542dc66e7d025c2\",\"dweb:/ipfs/QmRhTPLd2ZAyRHmJUFUcWKs9b3if49QY17LYZuRqWmghw8\"]},\"src/interfaces/delegator/IDelegatorHook.sol\":{\"keccak256\":\"0xc51aa8d7d1f6c8043ee819b7aeb86da0e993912e1442098df897e299f01f9f46\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://adddf5cb2ba282aeb576b26efb28640f865a1721cc9b6eee8b3ee0457a2c9780\",\"dweb:/ipfs/QmNYgAmnLRwWZbhTuQhZs9rx4zcme1df5mEepkrniorSoW\"]},\"src/interfaces/delegator/IFullRestakeDelegator.sol\":{\"keccak256\":\"0xa3c8cb2e45d4d8ce90e95263bea40c01dc400f05ad65bc29597d878606be5e7d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://782cf5e201aa4cca037ebafd3807a68ff1cc721d5b8416a35244db0d0607369e\",\"dweb:/ipfs/QmQkJks6x7CKndeTPa9LxgTNygD5uEi7obhADhpq1Lsr9A\"]},\"src/interfaces/delegator/INetworkRestakeDelegator.sol\":{\"keccak256\":\"0xe7030fe30389a147fd710e3436ec346b4842695fd3e65a81b95375c9f1d633fc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://739c7e66d301778054f5c90bee45ec9438f68afba8a03eaaac52064c73b115ad\",\"dweb:/ipfs/QmfZ2ytKcTykAc76nxhg8ikUXV8NdBpetqb8W4YWPcox1Z\"]},\"src/interfaces/delegator/IOperatorNetworkSpecificDelegator.sol\":{\"keccak256\":\"0x74b95e64d29769202d45dd277bb830f623ff3d41ce77b80ce3ee4e318a5c71ec\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e512b903aae5c1b8a028c6e3f4f6223b5cb5d704503cfa6bd37b5346868f5c20\",\"dweb:/ipfs/QmZim9YExsPWtyxyeui993HTKAEmrg8MUcSkZ77Gp2JcuZ\"]},\"src/interfaces/delegator/IOperatorSpecificDelegator.sol\":{\"keccak256\":\"0x72075cab585dc17240cc3e32bc99b92f0d5627ddd988fed680e3e1a52d5a01e4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7448bc90699409ae61d85216b5efc2143a37f0f73354be2aea993bc54afca441\",\"dweb:/ipfs/QmXE4gAxM8pHosZK8mcTcj17puBx484meDCcmrDePskGHZ\"]},\"src/interfaces/service/INetworkMiddlewareService.sol\":{\"keccak256\":\"0x347afc7fcf1fbcdb96d66162070ef6c78aed27b3af2c1d5dfb4e511840631783\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2d90b8ceb495159e8e4e95d76447719dd166443f67dfabdd942846162071595c\",\"dweb:/ipfs/QmVVuiAWYx92T6vBvNMKZfTvraCf1fa16BsUKkdNs3hdHA\"]},\"src/interfaces/service/IOptInService.sol\":{\"keccak256\":\"0x76fb5460a6d87a5705433d4fbeff7253cd75b8bbd0c888b2088f16e86ace146a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://990322019b3d11465f7024bae77ccbf7e2fe5d6fa3c754584778f37d04fa1337\",\"dweb:/ipfs/QmaSNHzcqxTkUCG9a4nqVfLECHLdjdrwAnDi3yDC7tDL24\"]},\"src/interfaces/slasher/IBaseSlasher.sol\":{\"keccak256\":\"0x7c82528b445659c313ab77335c407b0b6efe5e79027187bb287f7bc74202b404\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0274c90aa5df1aa6bb470a6aab53992fb14fd7e5472c9430416505b29647d9cf\",\"dweb:/ipfs/QmckbmJLDetPemVzCnnGcKYWAZV2BRFXGDsjiaec8jkHxx\"]},\"src/interfaces/slasher/IBurner.sol\":{\"keccak256\":\"0xaf495dacc19ae0b3c787ba8021c5944927d70261536addd234d7dab146158c2b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9b3cc66251008be6ff9fc8b11ecc6831d5a9dca49a3fe9817fcd970253c1d447\",\"dweb:/ipfs/QmVxfb9ALGdF9W3SN2h41gQbUct6tawvu5bw4K89kFQ4HW\"]},\"src/interfaces/slasher/ISlasher.sol\":{\"keccak256\":\"0x34d226d67a3d5e16571f2fac91a8b9773551bcc41c88a96279669dd78d192625\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a6e8c1462ee4a1b0f745414be043c09012ea676613790aba004b06c85c980d1\",\"dweb:/ipfs/QmadjNEbHKRthtA1EeNy3Kg2sXpejH2KBeHm8QZtBPvXbJ\"]},\"src/interfaces/slasher/IVetoSlasher.sol\":{\"keccak256\":\"0xdf7edd04a4f36e9aec3a15241dcb6b6315b2e64927b12710c2c410d571fc55e9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c4be6ac339c2ebf230fed65363f036784224095d0cd0f3f2d01d64d6e0da9508\",\"dweb:/ipfs/QmRSMbpfaHExqrzUA8vYZMYZWh6eQW1KX9JKJSLdgronfg\"]},\"src/interfaces/vault/IVault.sol\":{\"keccak256\":\"0xffee01d383cd4e1a5530c614bf4360c1ef070c288abec9da1eb531b51bc07235\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://04f0046cac285d8ec44ebbb1f79dc94fab4495767190cad8364fbc1fafaadfb9\",\"dweb:/ipfs/QmUawAunwzXfCyShWfhKeThAgKtqe51hmrxvrXvM772M2R\"]},\"src/interfaces/vault/IVaultStorage.sol\":{\"keccak256\":\"0x592626f13754194f83047135de19229c49390bd59e34659b1bb38be71d973a22\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://06a6a9dfddd05e580b32bebe2cff4f63ba26a653180676d58225dd30d9c89d3e\",\"dweb:/ipfs/QmdgzBeY6Sxo8mGtyBxtv1tM1c2kU6J6zjeRd7vuXm4DU6\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.25+commit.b61c2a91"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"baseSlasherHints","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"AlreadySet"},{"inputs":[],"type":"error","name":"CheckpointUnorderedInsertion"},{"inputs":[],"type":"error","name":"ExternalCall"},{"inputs":[],"type":"error","name":"InsufficientBurnerGas"},{"inputs":[],"type":"error","name":"InsufficientSlash"},{"inputs":[],"type":"error","name":"InvalidCaptureTimestamp"},{"inputs":[],"type":"error","name":"InvalidInitialization"},{"inputs":[],"type":"error","name":"InvalidResolverSetEpochsDelay"},{"inputs":[],"type":"error","name":"InvalidVetoDuration"},{"inputs":[],"type":"error","name":"NoBurner"},{"inputs":[],"type":"error","name":"NoResolver"},{"inputs":[],"type":"error","name":"NotInitialized"},{"inputs":[],"type":"error","name":"NotInitializing"},{"inputs":[],"type":"error","name":"NotNetwork"},{"inputs":[],"type":"error","name":"NotNetworkMiddleware"},{"inputs":[],"type":"error","name":"NotResolver"},{"inputs":[],"type":"error","name":"NotVault"},{"inputs":[],"type":"error","name":"ReentrancyGuardReentrantCall"},{"inputs":[{"internalType":"uint8","name":"bits","type":"uint8"},{"internalType":"uint256","name":"value","type":"uint256"}],"type":"error","name":"SafeCastOverflowedUintDowncast"},{"inputs":[],"type":"error","name":"SlashPeriodEnded"},{"inputs":[],"type":"error","name":"SlashRequestCompleted"},{"inputs":[],"type":"error","name":"SlashRequestNotExist"},{"inputs":[],"type":"error","name":"VetoPeriodEnded"},{"inputs":[],"type":"error","name":"VetoPeriodNotEnded"},{"inputs":[{"internalType":"uint256","name":"slashIndex","type":"uint256","indexed":true},{"internalType":"uint256","name":"slashedAmount","type":"uint256","indexed":false}],"type":"event","name":"ExecuteSlash","anonymous":false},{"inputs":[{"internalType":"uint64","name":"version","type":"uint64","indexed":false}],"type":"event","name":"Initialized","anonymous":false},{"inputs":[{"internalType":"uint256","name":"slashIndex","type":"uint256","indexed":true},{"internalType":"bytes32","name":"subnetwork","type":"bytes32","indexed":true},{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"uint256","name":"slashAmount","type":"uint256","indexed":false},{"internalType":"uint48","name":"captureTimestamp","type":"uint48","indexed":false},{"internalType":"uint48","name":"vetoDeadline","type":"uint48","indexed":false}],"type":"event","name":"RequestSlash","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32","indexed":true},{"internalType":"address","name":"resolver","type":"address","indexed":false}],"type":"event","name":"SetResolver","anonymous":false},{"inputs":[{"internalType":"uint256","name":"slashIndex","type":"uint256","indexed":true},{"internalType":"address","name":"resolver","type":"address","indexed":true}],"type":"event","name":"VetoSlash","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"BASE_SLASHER_HINTS","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"BURNER_GAS_LIMIT","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"BURNER_RESERVE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"FACTORY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"NETWORK_MIDDLEWARE_SERVICE","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"NETWORK_REGISTRY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"TYPE","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"VAULT_FACTORY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"cumulativeSlash","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint48","name":"timestamp","type":"uint48"},{"internalType":"bytes","name":"hint","type":"bytes"}],"stateMutability":"view","type":"function","name":"cumulativeSlashAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"slashIndex","type":"uint256"},{"internalType":"bytes","name":"hints","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"executeSlash","outputs":[{"internalType":"uint256","name":"slashedAmount","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"slasher","type":"address"},{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint48","name":"captureTimestamp","type":"uint48"}],"stateMutability":"view","type":"function","name":"executeSlashHints","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[],"stateMutability":"view","type":"function","name":"isBurnerHook","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"latestSlashedCaptureTimestamp","outputs":[{"internalType":"uint48","name":"value","type":"uint48"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint48","name":"captureTimestamp","type":"uint48"},{"internalType":"bytes","name":"hints","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"requestSlash","outputs":[{"internalType":"uint256","name":"slashIndex","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"slasher","type":"address"},{"internalType":"address","name":"msgSender","type":"address"},{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint48","name":"captureTimestamp","type":"uint48"}],"stateMutability":"view","type":"function","name":"requestSlashHints","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"bytes","name":"hint","type":"bytes"}],"stateMutability":"view","type":"function","name":"resolver","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"uint48","name":"timestamp","type":"uint48"},{"internalType":"bytes","name":"hint","type":"bytes"}],"stateMutability":"view","type":"function","name":"resolverAt","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"slasher","type":"address"},{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"uint48","name":"timestamp","type":"uint48"}],"stateMutability":"view","type":"function","name":"resolverHint","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"uint48","name":"timestamp","type":"uint48"}],"stateMutability":"view","type":"function","name":"resolverHintInternal","outputs":[{"internalType":"bool","name":"exists","type":"bool"},{"internalType":"uint32","name":"hint","type":"uint32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"resolverSetEpochsDelay","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint96","name":"identifier","type":"uint96"},{"internalType":"address","name":"resolver_","type":"address"},{"internalType":"bytes","name":"hints","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"setResolver"},{"inputs":[{"internalType":"address","name":"slasher","type":"address"},{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"uint48","name":"timestamp","type":"uint48"}],"stateMutability":"view","type":"function","name":"setResolverHints","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function","name":"slashRequests","outputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint48","name":"captureTimestamp","type":"uint48"},{"internalType":"uint48","name":"vetoDeadline","type":"uint48"},{"internalType":"bool","name":"completed","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"slashRequestsLength","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint48","name":"captureTimestamp","type":"uint48"},{"internalType":"bytes","name":"hints","type":"bytes"}],"stateMutability":"view","type":"function","name":"slashableStake","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"staticDelegateCall"},{"inputs":[],"stateMutability":"view","type":"function","name":"vault","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"vetoDuration","outputs":[{"internalType":"uint48","name":"","type":"uint48"}]},{"inputs":[{"internalType":"uint256","name":"slashIndex","type":"uint256"},{"internalType":"bytes","name":"hints","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"vetoSlash"},{"inputs":[{"internalType":"address","name":"slasher","type":"address"},{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"uint48","name":"captureTimestamp","type":"uint48"}],"stateMutability":"view","type":"function","name":"vetoSlashHints","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]}],"devdoc":{"kind":"dev","methods":{"cumulativeSlash(bytes32,address)":{"params":{"operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"},"returns":{"_0":"cumulative slash amount"}},"cumulativeSlashAt(bytes32,address,uint48,bytes)":{"params":{"hint":"hint for the checkpoint index","operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)","timestamp":"time point to get the cumulative slash amount until (inclusively)"},"returns":{"_0":"cumulative slash amount until the given timestamp (inclusively)"}},"executeSlash(uint256,bytes)":{"details":"Only a network middleware can call this function.","params":{"hints":"hints for checkpoints' indexes","slashIndex":"index of the slash request"},"returns":{"slashedAmount":"virtual amount of the collateral slashed"}},"initialize(bytes)":{"params":{"data":"some data to use"}},"requestSlash(bytes32,address,uint256,uint48,bytes)":{"details":"Only a network middleware can call this function.","params":{"amount":"maximum amount of the collateral to be slashed","captureTimestamp":"time point when the stake was captured","hints":"hints for checkpoints' indexes","operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"},"returns":{"slashIndex":"index of the slash request"}},"resolver(bytes32,bytes)":{"params":{"hint":"hint for the checkpoint index","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"},"returns":{"_0":"address of the resolver"}},"resolverAt(bytes32,uint48,bytes)":{"params":{"hint":"hint for the checkpoint index","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)","timestamp":"timestamp to get the resolver at"},"returns":{"_0":"address of the resolver"}},"slashRequestsLength()":{"returns":{"_0":"total number of slash requests"}},"slashableStake(bytes32,address,uint48,bytes)":{"params":{"captureTimestamp":"time point to get the stake amount at","hints":"hints for the checkpoints' indexes","operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"},"returns":{"amount":"slashable amount of the stake"}},"staticDelegateCall(address,bytes)":{"details":"It allows to use this contract's storage on-chain.","params":{"data":"data to make a delegatecall with","target":"address of the contract to make a delegatecall to"}},"vetoSlash(uint256,bytes)":{"details":"Only a resolver can call this function.","params":{"hints":"hints for checkpoints' indexes","slashIndex":"index of the slash request"}}},"version":1},"userdoc":{"kind":"user","methods":{"BURNER_GAS_LIMIT()":{"notice":"Get a gas limit for the burner."},"BURNER_RESERVE()":{"notice":"Get a reserve gas between the gas limit check and the burner's execution."},"FACTORY()":{"notice":"Get the factory's address."},"NETWORK_MIDDLEWARE_SERVICE()":{"notice":"Get the network middleware service's address."},"NETWORK_REGISTRY()":{"notice":"Get the network registry's address."},"TYPE()":{"notice":"Get the entity's type."},"VAULT_FACTORY()":{"notice":"Get the vault factory's address."},"cumulativeSlash(bytes32,address)":{"notice":"Get a cumulative slash amount for an operator on a subnetwork."},"cumulativeSlashAt(bytes32,address,uint48,bytes)":{"notice":"Get a cumulative slash amount for an operator on a subnetwork until a given timestamp (inclusively) using a hint."},"executeSlash(uint256,bytes)":{"notice":"Execute a slash with a given slash index using hints."},"initialize(bytes)":{"notice":"Initialize this entity contract by using a given data."},"isBurnerHook()":{"notice":"Get if the burner is needed to be called on a slashing."},"latestSlashedCaptureTimestamp(bytes32,address)":{"notice":"Get the latest capture timestamp that was slashed on a subnetwork."},"requestSlash(bytes32,address,uint256,uint48,bytes)":{"notice":"Request a slash using a subnetwork for a particular operator by a given amount using hints."},"resolver(bytes32,bytes)":{"notice":"Get a resolver for a given subnetwork using a hint."},"resolverAt(bytes32,uint48,bytes)":{"notice":"Get a resolver for a given subnetwork at a particular timestamp using a hint."},"resolverSetEpochsDelay()":{"notice":"Get a delay for networks in epochs to update a resolver."},"slashRequests(uint256)":{"notice":"Get a particular slash request."},"slashRequestsLength()":{"notice":"Get a total number of slash requests."},"slashableStake(bytes32,address,uint48,bytes)":{"notice":"Get a slashable amount of a stake got at a given capture timestamp using hints."},"staticDelegateCall(address,bytes)":{"notice":"Make a delegatecall from this contract to a given target contract with a particular data (always reverts with a return data)."},"vault()":{"notice":"Get the vault's address."},"vetoDuration()":{"notice":"Get a duration during which resolvers can veto slash requests."},"vetoSlash(uint256,bytes)":{"notice":"Veto a slash with a given slash index using hints."}},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/contracts/hints/SlasherHints.sol":"VetoSlasherHints"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol":{"keccak256":"0x6662ec4e5cefca03eeadd073e9469df8d2944bb2ee8ec8f7622c2c46aab5f225","urls":["bzz-raw://4d8544c6f8daa4d1bc215c6a72fe0acdb748664a105b0e5efc19295667521d45","dweb:/ipfs/QmdGWqdnXT8S3RgCR6aV8XHZrsybieMQLLnug1NtpSjEXN"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol":{"keccak256":"0xc163fcf9bb10138631a9ba5564df1fa25db9adff73bd9ee868a8ae1858fe093a","urls":["bzz-raw://9706d43a0124053d9880f6e31a59f31bc0a6a3dc1acd66ce0a16e1111658c5f6","dweb:/ipfs/QmUFmfowzkRwGtDu36cXV9SPTBHJ3n7dG9xQiK5B28jTf2"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b","urls":["bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609","dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol":{"keccak256":"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397","urls":["bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9","dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardUpgradeable.sol":{"keccak256":"0xb44e086e941292cdc7f440de51478493894ef0b1aeccb0c4047445919f667f74","urls":["bzz-raw://942dad22fbdc1669f025540ba63aa3ccfad5f8458fc5d4525b31ebf272e7af45","dweb:/ipfs/Qmdo4X2M82aM3AMoW2kf2jhYkSCyC4T1pHNd6obdsDFnAB"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol":{"keccak256":"0xdaba3f7c42c55b2896353f32bd27d4d5f8bae741b3b05d4c53f67abc4dc47ce8","urls":["bzz-raw://1fa2e61141c602510bcd2cd936ed9561922ac8772a9b9c9a9db091a74e354a45","dweb:/ipfs/QmcHQDDoEBwJmwUbzoVkytvJsBx3KVHYFFnDkvRGWh9Wmh"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol":{"keccak256":"0xb6b36edd6a2999fd243ff226d6cbf84bd71af2432bbd0dfe19392996a1d9cb41","urls":["bzz-raw://1fd2f35495652e57e3f99bc6c510bc5f7dd398a176ea2e72d8ed730aebc6ca26","dweb:/ipfs/QmTQV6X4gkikTib49cho5iDX3JvSQbdsoEChoDwrk3CbbH"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC1271.sol":{"keccak256":"0x85a45f3f10014a0f8be41157a32b6a5f905753ea64a4b64e29fc12b7deeecf39","urls":["bzz-raw://c3c74009ce36136b36c77c23935b8e4a7b4f253be2da2be4fb4a916b1ce43743","dweb:/ipfs/QmcH36v3iN7SJJuF73AunLR2LtNxhVJ1wm63ph4dPZ4pcL"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC5267.sol":{"keccak256":"0x92aa1df62dc3d33f1656d63bede0923e0df0b706ad4137c8b10b0a8fe549fd92","urls":["bzz-raw://c5c0f29195ad64cbe556da8e257dac8f05f78c53f90323c0d2accf8e6922d33a","dweb:/ipfs/QmQ61TED8uaCZwcbh8KkgRSsCav7x7HbcGHwHts3U4DmUP"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70","urls":["bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c","dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol":{"keccak256":"0x6008dabfe393240d73d7dd7688033f72740d570aa422254d29a7dce8568f3aff","urls":["bzz-raw://f5196ec75139918c6c7bb4251b36395e668f1fa6d206beba7e7520e74913940d","dweb:/ipfs/QmSyqjksXxmm2mCG6qRd1yuwLykypkSVBbnBnGqJRcuJMi"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0x37bb49513c49c87c4642a891b13b63571bc87013dde806617aa1efb54605f386","urls":["bzz-raw://b3036b3a83b7c48f96641f2a9002b9f2dcb6a5958dd670894ada21ae8229b3d0","dweb:/ipfs/QmUNfSBdoVtjhETaUJCYcaC7pTMgbhht926tJ2uXJbiVd3"],"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/ShortStrings.sol":{"keccak256":"0x18a7171df639a934592915a520ecb97c5bbc9675a1105607aac8a94e72bf62c6","urls":["bzz-raw://7478e1f13da69a2867ccd883001d836b75620362e743f196376d63ed0c422a1c","dweb:/ipfs/QmWywcQ9TNfwtoqAxbn25d8C5VrV12PrPS9UjtGe6pL2BA"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol":{"keccak256":"0x32ba59b4b7299237c8ba56319110989d7978a039faf754793064e967e5894418","urls":["bzz-raw://1ae50c8b562427df610cc4540c9bf104acca7ef8e2dcae567ae7e52272281e9c","dweb:/ipfs/QmTHiadFCSJUPpRjNegc5SahmeU8bAoY8i9Aq6tVscbcKR"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0x55f102ea785d8399c0e58d1108e2d289506dde18abc6db1b7f68c1f9f9bc5792","urls":["bzz-raw://6e52e0a7765c943ef14e5bcf11e46e6139fa044be564881378349236bf2e3453","dweb:/ipfs/QmZEeeXoFPW47amyP35gfzomF9DixqqTEPwzBakv6cZw6i"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol":{"keccak256":"0xeed0a08b0b091f528356cbc7245891a4c748682d4f6a18055e8e6ca77d12a6cf","urls":["bzz-raw://ba80ba06c8e6be852847e4c5f4492cef801feb6558ae09ed705ff2e04ea8b13c","dweb:/ipfs/QmXRJDv3xHLVQCVXg1ZvR35QS9sij5y9NDWYzMfUfAdTHF"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/EIP712.sol":{"keccak256":"0x999f705a027ed6dc2d4e0df2cc4a509852c6bfd11de1c8161bf88832d0503fd0","urls":["bzz-raw://0798def67258d9a3cc20b2b4da7ebf351a5cefe0abfdd665d2d81f8e32f89b21","dweb:/ipfs/QmPEvJosnPfzHNjKvCv2D3891mA2Ww8eUwkqrxBjuYdHCt"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol":{"keccak256":"0xba333517a3add42cd35fe877656fc3dfcc9de53baa4f3aabbd6d12a92e4ea435","urls":["bzz-raw://2ceacff44c0fdc81e48e0e0b1db87a2076d3c1fb497341de077bf1da9f6b406c","dweb:/ipfs/QmRUo1muMRAewxrKQ7TkXUtknyRoR57AyEkoPpiuZQ8FzX"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/SignatureChecker.sol":{"keccak256":"0x6b11eb41a228cca35d4b662b4df69fcd75192851365102690f57b2ac01e83fe6","urls":["bzz-raw://ab006a2983ed350d2af21ddcdd835dcae3b8340086cc4d088460da5abd041f69","dweb:/ipfs/QmbEacDhkJZiGrgzLjB4pNtE8Z1uudjDw1DvcDUTVQFsLG"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b","urls":["bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df","dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d","urls":["bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875","dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol":{"keccak256":"0xe19a4d5f31d2861e7344e8e535e2feafb913d806d3e2b5fe7782741a2a7094fe","urls":["bzz-raw://4aed79c0fa6f0546ed02f2f683e8f77f0fd2ed7eb34d8bbf3d373c9a6d95b13c","dweb:/ipfs/QmWqVz6UAVqmnWU5pqYPt1o6iDEZyPaBraAA3rKfTTSfYj"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0x5f7e4076e175393767754387c962926577f1660dd9b810187b9002407656be72","urls":["bzz-raw://7d533a1c97cd43a57cd9c465f7ee8dd0e39ae93a8fb8ff8e5303a356b081cdcc","dweb:/ipfs/QmVBEei6aTnvYNZp2CHYVNKyZS4q1KkjANfY39WVXZXVoT"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/Checkpoints.sol":{"keccak256":"0xbdc5e074d7dd6678f67e92b1a51a20226801a407b0e1af3da367c5d1ff4519ad","urls":["bzz-raw://a36cca6b22fff3db16fc789ff6c60eea71d4b156065d4d0c83a0bc5e91a77a8b","dweb:/ipfs/QmYN3exd5AemxjBrN8XMB1p5LbbE16uC3sjbYjwi8AjcGR"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/types/Time.sol":{"keccak256":"0xc7755af115020049e4140f224f9ee88d7e1799ffb0646f37bf0df24bf6213f58","urls":["bzz-raw://7f09bf94d5274334ec021f61a04659db303f31e60460e14b709c9bf187740111","dweb:/ipfs/QmNvgomZYUwFAt4cZbPWAiTeSZQreGehY9BK5xyVJsUttb"],"license":"MIT"},"src/contracts/common/Entity.sol":{"keccak256":"0x3d61a932995b8443381f3950542d388223a2c26dd5d29a3274dea3baa7388bd7","urls":["bzz-raw://7cdf5f03ca72fd263fd32ff59c8d88ddca911ae83896a287d10772c1bbe9b138","dweb:/ipfs/QmbP84r5BWT1Rn9AYTntWSf3xUMTTCohTZJFhbBhDXFoHa"],"license":"BUSL-1.1"},"src/contracts/common/MigratableEntity.sol":{"keccak256":"0x2d736f4dacd5d7e7697503bc426c78b8250fe1694ca157965ec178da6807de58","urls":["bzz-raw://f1237acf96b4b9f9b69156e068eddd726a6e15bd8e87a18dc999cd4ba4da069c","dweb:/ipfs/QmS6M8fiFFSeuJ4ZKKq1z8W7w4ybeHQSy5TLASGoc1LVic"],"license":"BUSL-1.1"},"src/contracts/common/StaticDelegateCallable.sol":{"keccak256":"0x350029aa8955eacaffffaeb58babc5c98e80ebc5c5db388ed17ee6465f4a9d90","urls":["bzz-raw://eb392a8ee9050e0af606897df63e3404e3829e8b688b580663892f9664195764","dweb:/ipfs/QmaXC8jqV8UrrAFkzXTEv2fJF56sy33HhLxAzaRZmUxuXD"],"license":"BUSL-1.1"},"src/contracts/delegator/BaseDelegator.sol":{"keccak256":"0x7c54d491fdd4415b764a9c8defa068e56d4c0c8c9419be0053a1d377669290e8","urls":["bzz-raw://9238bfbad0f6eeb0dc7727724de14380f1980b395902269703d5e2ef07e52e10","dweb:/ipfs/QmPJn1V4HNXcEghYvogGuSTF24dSQUPosR5qtsXcmNqRm3"],"license":"BUSL-1.1"},"src/contracts/delegator/FullRestakeDelegator.sol":{"keccak256":"0x0a81c4f8e72914563a9cb771e93acf889c71ea36b7bec040e4eb562b199d5af1","urls":["bzz-raw://6fc66b6ba02da77046a0bbbd1dd407a62c08f52e04486c9cbd2cb1cca3da555f","dweb:/ipfs/QmZQivK1ZnMxfRQQ5aLpV9co5u55wQVNev5Rg1hzAqxhkE"],"license":"BUSL-1.1"},"src/contracts/delegator/NetworkRestakeDelegator.sol":{"keccak256":"0xd3a8e6522f9c6fdcc2da837c9023afd6bdff2bce45a35590320c475519e3636d","urls":["bzz-raw://58b17a87f6554f08376f9ea7fedf486a4aa75801bf0ad8b23ff5a46959b6b7a3","dweb:/ipfs/QmSTmNh67tYt8CmjVZb57r8N3qX5yeYdMApKPJm3qvQgQw"],"license":"BUSL-1.1"},"src/contracts/delegator/OperatorNetworkSpecificDelegator.sol":{"keccak256":"0x031a10722b9ec49048f0952710401131290adb87e71caf294e864e7ac3b98a16","urls":["bzz-raw://72428febc875134b2f29205e6f294634a1c22a7d5c78d6a9cb2f8196f107c9b5","dweb:/ipfs/QmTPwXR6h5oytckmkLrHdKeEMdphJxceDhYUR4zvQeWAwY"],"license":"BUSL-1.1"},"src/contracts/delegator/OperatorSpecificDelegator.sol":{"keccak256":"0x630ce62fa30b9f3349ab7a8cf8dbf041319febc6dd757be2f94d3d25944ed328","urls":["bzz-raw://c2ac59d47ce57d2a6819ae9833e1a618a371eccff93eb5ab367b201b01f42bfa","dweb:/ipfs/QmdBpGMBivpNPv2WbH8vnCUy5xkVeaxQvGgqi33vKCz1kA"],"license":"BUSL-1.1"},"src/contracts/hints/DelegatorHints.sol":{"keccak256":"0x44aa0c396311a54afbc7c73e8dadeed41e3165a4fd13f712b27d63d50fc3376d","urls":["bzz-raw://2f255214f3531fc707d88be0d56a7a0aed4180439316d099d760d9118aa83093","dweb:/ipfs/QmZD1w5p1ukJSXumUAjvxwGmkPhn7vsr21Y2atLGEZR2oi"],"license":"BUSL-1.1"},"src/contracts/hints/Hints.sol":{"keccak256":"0x8b565df1ae35993c097a9e642002782a8f451f6fd01809cad6bcd345bdf1b99c","urls":["bzz-raw://99a19adb01e350a92f534095b3078229df1f2f83077992d75d58d8684be45971","dweb:/ipfs/QmbmwcuswVbzvwHQFTtrJG86oV98GnfxqYTb8cV8u1acox"],"license":"BUSL-1.1"},"src/contracts/hints/OptInServiceHints.sol":{"keccak256":"0x95d9407900d27b9f4a1233b772aeed809c07b2dc5b31cfc9fa77ca26514c49e5","urls":["bzz-raw://a13a8877e312d7e6b8b85bde3668c5d84ff5ecc83f762cd573f2b7104c64eb42","dweb:/ipfs/QmYV2J55acuGzCNnS3juABuUHY5U1xc8g8o9jwEyFFdeG5"],"license":"BUSL-1.1"},"src/contracts/hints/SlasherHints.sol":{"keccak256":"0xd77c5f3bbb0265af8ecd947df88f6f9684e136d80052b5292f5b29aaa3566a3f","urls":["bzz-raw://484a26504bf6706202ec82a9a4cfa7d196bbc552b5b78ced25bf7130c2842595","dweb:/ipfs/QmaQqmkoZoUWEam4R94vmajzH3gKqFqpZQwFbrHDsN1peV"],"license":"BUSL-1.1"},"src/contracts/hints/VaultHints.sol":{"keccak256":"0xccb505b7159b769cc114d67b87c2de6b106557f667fc8f3780114baad5c3c442","urls":["bzz-raw://6d0c80a908fc16e96a8b5605a0bd53f9e89ad0ef0a738fbbae80ba4d3160749b","dweb:/ipfs/QmXo5UtWoR8YmunqcbBU8rQMm1nvmvjNPoXcVrDhh4pEwR"],"license":"BUSL-1.1"},"src/contracts/libraries/Checkpoints.sol":{"keccak256":"0xba90097c8bfe0a975499428b5f8ac5569483c7d92ccc28c12d70de416aae040c","urls":["bzz-raw://12f5d93ca94cd06d3147db68993165a58e17903ed53682560de61f3085ad4609","dweb:/ipfs/QmePiuAqvXprMLmFZkGZeGjvGPAvsEDHfCDv7BoQhXu9xE"],"license":"MIT"},"src/contracts/libraries/ERC4626Math.sol":{"keccak256":"0x8441160513c1cbeb1c3b9ee077bcc7e7ce20006b52a77c8dd39ff0ef89699939","urls":["bzz-raw://943f8cc3e26ddf649f465f40c909819f5c864717c4baa339e9e403b9374a4653","dweb:/ipfs/QmXPxi1sUDsrGprZdUgCzoPEosaZMv9ZhygWQ1vAi1phAB"],"license":"MIT"},"src/contracts/libraries/Subnetwork.sol":{"keccak256":"0xf5ef5506fd66082b3c2e7f3df37529f5a8efad32ac62e7c8914bd63219190bfe","urls":["bzz-raw://ba031a54ee0d0e9a270c2b9e18437f5668cfeb659cfd5fe0677459d7fcac2a56","dweb:/ipfs/QmReP3H7qQ78tAfgLnJKsNEQNCQfF1X1Get38Ffd4kzq32"],"license":"MIT"},"src/contracts/service/OptInService.sol":{"keccak256":"0x4e0932077f2686b7990e10d59deb2535334c0d09e52ef6e57c6ab09eca21c4b1","urls":["bzz-raw://7c00d311032ed4a1743aca7475f3c86ce15cdfc2218108efc3731c03d34a5278","dweb:/ipfs/QmUGGfVwVhaHr5kS4177yKKYiLYzi5qZpkEmvYxBZqazxf"],"license":"BUSL-1.1"},"src/contracts/slasher/BaseSlasher.sol":{"keccak256":"0x190e5dce196a061bdad42468c52e9f5b0eb7810cd7d0c19f04d6a2e94984f1b6","urls":["bzz-raw://07ca08d0cd43c2fe5d54a5577f6bdd522ced410f5d3a52e764deaa7ba26b5f06","dweb:/ipfs/QmZe3PiMKBQKWcwodaLupragdqxPjgS4v1qMC7RXau8hDF"],"license":"BUSL-1.1"},"src/contracts/slasher/Slasher.sol":{"keccak256":"0xeee0cb25fad58d496fdcc641d852d11bae06e6ceed5230ae21150964175c494f","urls":["bzz-raw://34aa27d21246a1bcee0b6a2afa8d9d613441156362430392f75d176511d58c61","dweb:/ipfs/Qmf53Y3zdGfH4PU2zpSGeHZ8mMLzLXCtmkQrG5mnVJECQ3"],"license":"BUSL-1.1"},"src/contracts/slasher/VetoSlasher.sol":{"keccak256":"0xeccc8128de5e1ad499c067feac1c526638fbbac1a18b96726fc7507969fd5897","urls":["bzz-raw://cdfcf281338423625acbccdf8810115b258ef7cfe4aa3c10b8911ead1aa85429","dweb:/ipfs/QmZFsDvZXpkFkx4PHcDXAVPN3ZCAahbSVfYpSVrMBvbt4k"],"license":"BUSL-1.1"},"src/contracts/vault/Vault.sol":{"keccak256":"0x2ceff6ed3298c4cad144c99fcc79b51cb9397d6ebef00285b915848b476f8c2e","urls":["bzz-raw://11f2fb3581854f3ab6e82e8d4935d9eb510c903a13c3f022346c2956a58f5307","dweb:/ipfs/QmdUnoXoyYoG9SGWyQZCFyLDRUUX3eXyXetkRvw6jxqqBz"],"license":"BUSL-1.1"},"src/contracts/vault/VaultStorage.sol":{"keccak256":"0x57db25b127d77ea3472de53e3a4af3354399655b9268638b99ca5925fa364a56","urls":["bzz-raw://aa763d9a6ec508ae3abfb8228b72b9fd9525279e5135d4962e79ff059feb1173","dweb:/ipfs/QmcbDR6E9wyEpu6V2FkEC4hnWy47zXA9LSKJde6zSGd33Q"],"license":"BUSL-1.1"},"src/interfaces/common/IEntity.sol":{"keccak256":"0x8ef4b63d6da63489778ccd5f8d13ebdd527dd4b62730b2c616df5af7474d2d21","urls":["bzz-raw://5a8d69576a9219d85c50816a18ad53a4d53cfcb27ed38b8cccc808dc2734b71b","dweb:/ipfs/QmYVN3P4Q4REvBWJ97TbAcaxm3uyB2anV6NSGa6ZtSwcEv"],"license":"MIT"},"src/interfaces/common/IMigratableEntity.sol":{"keccak256":"0x8f5f2809f3afbe8ebfbb365dd7b57b4dd3b6f9943a6187eaf648d45895b8e3c4","urls":["bzz-raw://0ffe640537d539e7a4fde70d30d3e4c57f4ba9c2c25c450cea713aae38e8fd5c","dweb:/ipfs/QmSUTGzvdcn1R1KB7tLThMRtESsfPbeXDhhhKWGtntzBds"],"license":"MIT"},"src/interfaces/common/IRegistry.sol":{"keccak256":"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb","urls":["bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014","dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK"],"license":"MIT"},"src/interfaces/common/IStaticDelegateCallable.sol":{"keccak256":"0xa335d4e81b9071b7de66ef92b43ff20671d86516eb1be46fef29a3483cd3f5d5","urls":["bzz-raw://d464b9db863c14c05547d2b23352f2e9b7b784799cf09f6bbc4906a2a74e3516","dweb:/ipfs/QmUVWzFvJz7eEbDQKiFTTzwi7TEbjcs3VmwdM4kuptAKvi"],"license":"MIT"},"src/interfaces/delegator/IBaseDelegator.sol":{"keccak256":"0x96bb312f032e17accce3f8f80936d99468029d6b37c9ca74acdb4b026a0148ee","urls":["bzz-raw://2a66dcb5b7d1a6ef6a363431ea98ebd78bc4fdd3d7a134d9b542dc66e7d025c2","dweb:/ipfs/QmRhTPLd2ZAyRHmJUFUcWKs9b3if49QY17LYZuRqWmghw8"],"license":"MIT"},"src/interfaces/delegator/IDelegatorHook.sol":{"keccak256":"0xc51aa8d7d1f6c8043ee819b7aeb86da0e993912e1442098df897e299f01f9f46","urls":["bzz-raw://adddf5cb2ba282aeb576b26efb28640f865a1721cc9b6eee8b3ee0457a2c9780","dweb:/ipfs/QmNYgAmnLRwWZbhTuQhZs9rx4zcme1df5mEepkrniorSoW"],"license":"MIT"},"src/interfaces/delegator/IFullRestakeDelegator.sol":{"keccak256":"0xa3c8cb2e45d4d8ce90e95263bea40c01dc400f05ad65bc29597d878606be5e7d","urls":["bzz-raw://782cf5e201aa4cca037ebafd3807a68ff1cc721d5b8416a35244db0d0607369e","dweb:/ipfs/QmQkJks6x7CKndeTPa9LxgTNygD5uEi7obhADhpq1Lsr9A"],"license":"MIT"},"src/interfaces/delegator/INetworkRestakeDelegator.sol":{"keccak256":"0xe7030fe30389a147fd710e3436ec346b4842695fd3e65a81b95375c9f1d633fc","urls":["bzz-raw://739c7e66d301778054f5c90bee45ec9438f68afba8a03eaaac52064c73b115ad","dweb:/ipfs/QmfZ2ytKcTykAc76nxhg8ikUXV8NdBpetqb8W4YWPcox1Z"],"license":"MIT"},"src/interfaces/delegator/IOperatorNetworkSpecificDelegator.sol":{"keccak256":"0x74b95e64d29769202d45dd277bb830f623ff3d41ce77b80ce3ee4e318a5c71ec","urls":["bzz-raw://e512b903aae5c1b8a028c6e3f4f6223b5cb5d704503cfa6bd37b5346868f5c20","dweb:/ipfs/QmZim9YExsPWtyxyeui993HTKAEmrg8MUcSkZ77Gp2JcuZ"],"license":"MIT"},"src/interfaces/delegator/IOperatorSpecificDelegator.sol":{"keccak256":"0x72075cab585dc17240cc3e32bc99b92f0d5627ddd988fed680e3e1a52d5a01e4","urls":["bzz-raw://7448bc90699409ae61d85216b5efc2143a37f0f73354be2aea993bc54afca441","dweb:/ipfs/QmXE4gAxM8pHosZK8mcTcj17puBx484meDCcmrDePskGHZ"],"license":"MIT"},"src/interfaces/service/INetworkMiddlewareService.sol":{"keccak256":"0x347afc7fcf1fbcdb96d66162070ef6c78aed27b3af2c1d5dfb4e511840631783","urls":["bzz-raw://2d90b8ceb495159e8e4e95d76447719dd166443f67dfabdd942846162071595c","dweb:/ipfs/QmVVuiAWYx92T6vBvNMKZfTvraCf1fa16BsUKkdNs3hdHA"],"license":"MIT"},"src/interfaces/service/IOptInService.sol":{"keccak256":"0x76fb5460a6d87a5705433d4fbeff7253cd75b8bbd0c888b2088f16e86ace146a","urls":["bzz-raw://990322019b3d11465f7024bae77ccbf7e2fe5d6fa3c754584778f37d04fa1337","dweb:/ipfs/QmaSNHzcqxTkUCG9a4nqVfLECHLdjdrwAnDi3yDC7tDL24"],"license":"MIT"},"src/interfaces/slasher/IBaseSlasher.sol":{"keccak256":"0x7c82528b445659c313ab77335c407b0b6efe5e79027187bb287f7bc74202b404","urls":["bzz-raw://0274c90aa5df1aa6bb470a6aab53992fb14fd7e5472c9430416505b29647d9cf","dweb:/ipfs/QmckbmJLDetPemVzCnnGcKYWAZV2BRFXGDsjiaec8jkHxx"],"license":"MIT"},"src/interfaces/slasher/IBurner.sol":{"keccak256":"0xaf495dacc19ae0b3c787ba8021c5944927d70261536addd234d7dab146158c2b","urls":["bzz-raw://9b3cc66251008be6ff9fc8b11ecc6831d5a9dca49a3fe9817fcd970253c1d447","dweb:/ipfs/QmVxfb9ALGdF9W3SN2h41gQbUct6tawvu5bw4K89kFQ4HW"],"license":"MIT"},"src/interfaces/slasher/ISlasher.sol":{"keccak256":"0x34d226d67a3d5e16571f2fac91a8b9773551bcc41c88a96279669dd78d192625","urls":["bzz-raw://7a6e8c1462ee4a1b0f745414be043c09012ea676613790aba004b06c85c980d1","dweb:/ipfs/QmadjNEbHKRthtA1EeNy3Kg2sXpejH2KBeHm8QZtBPvXbJ"],"license":"MIT"},"src/interfaces/slasher/IVetoSlasher.sol":{"keccak256":"0xdf7edd04a4f36e9aec3a15241dcb6b6315b2e64927b12710c2c410d571fc55e9","urls":["bzz-raw://c4be6ac339c2ebf230fed65363f036784224095d0cd0f3f2d01d64d6e0da9508","dweb:/ipfs/QmRSMbpfaHExqrzUA8vYZMYZWh6eQW1KX9JKJSLdgronfg"],"license":"MIT"},"src/interfaces/vault/IVault.sol":{"keccak256":"0xffee01d383cd4e1a5530c614bf4360c1ef070c288abec9da1eb531b51bc07235","urls":["bzz-raw://04f0046cac285d8ec44ebbb1f79dc94fab4495767190cad8364fbc1fafaadfb9","dweb:/ipfs/QmUawAunwzXfCyShWfhKeThAgKtqe51hmrxvrXvM772M2R"],"license":"MIT"},"src/interfaces/vault/IVaultStorage.sol":{"keccak256":"0x592626f13754194f83047135de19229c49390bd59e34659b1bb38be71d973a22","urls":["bzz-raw://06a6a9dfddd05e580b32bebe2cff4f63ba26a653180676d58225dd30d9c89d3e","dweb:/ipfs/QmdgzBeY6Sxo8mGtyBxtv1tM1c2kU6J6zjeRd7vuXm4DU6"],"license":"MIT"}},"version":1},"id":84} \ No newline at end of file diff --git a/out/Vault.sol/Vault.json b/out/Vault.sol/Vault.json index ab24439f..d30f6587 100644 --- a/out/Vault.sol/Vault.json +++ b/out/Vault.sol/Vault.json @@ -1 +1 @@ -{"abi":[{"type":"constructor","inputs":[{"name":"delegatorFactory","type":"address","internalType":"address"},{"name":"slasherFactory","type":"address","internalType":"address"},{"name":"vaultFactory","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"DEFAULT_ADMIN_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"DELEGATOR_FACTORY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"DEPOSITOR_WHITELIST_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"DEPOSIT_LIMIT_SET_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"DEPOSIT_WHITELIST_SET_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"FACTORY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"IS_DEPOSIT_LIMIT_SET_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"SLASHER_FACTORY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"activeBalanceOf","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"activeBalanceOfAt","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"timestamp","type":"uint48","internalType":"uint48"},{"name":"hints","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"activeShares","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"activeSharesAt","inputs":[{"name":"timestamp","type":"uint48","internalType":"uint48"},{"name":"hint","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"activeSharesOf","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"activeSharesOfAt","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"timestamp","type":"uint48","internalType":"uint48"},{"name":"hint","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"activeStake","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"activeStakeAt","inputs":[{"name":"timestamp","type":"uint48","internalType":"uint48"},{"name":"hint","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"burner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"claim","inputs":[{"name":"recipient","type":"address","internalType":"address"},{"name":"epoch","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"claimBatch","inputs":[{"name":"recipient","type":"address","internalType":"address"},{"name":"epochs","type":"uint256[]","internalType":"uint256[]"}],"outputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"collateral","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"currentEpoch","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"currentEpochStart","inputs":[],"outputs":[{"name":"","type":"uint48","internalType":"uint48"}],"stateMutability":"view"},{"type":"function","name":"delegator","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"deposit","inputs":[{"name":"onBehalfOf","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"depositedAmount","type":"uint256","internalType":"uint256"},{"name":"mintedShares","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"depositLimit","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"depositWhitelist","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"epochAt","inputs":[{"name":"timestamp","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"epochDuration","inputs":[],"outputs":[{"name":"","type":"uint48","internalType":"uint48"}],"stateMutability":"view"},{"type":"function","name":"epochDurationInit","inputs":[],"outputs":[{"name":"","type":"uint48","internalType":"uint48"}],"stateMutability":"view"},{"type":"function","name":"getRoleAdmin","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"grantRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"hasRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"initialize","inputs":[{"name":"initialVersion","type":"uint64","internalType":"uint64"},{"name":"owner_","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"isDelegatorInitialized","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isDepositLimit","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isDepositorWhitelisted","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"value","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isInitialized","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isSlasherInitialized","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isWithdrawalsClaimed","inputs":[{"name":"epoch","type":"uint256","internalType":"uint256"},{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"value","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"migrate","inputs":[{"name":"newVersion","type":"uint64","internalType":"uint64"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"nextEpochStart","inputs":[],"outputs":[{"name":"","type":"uint48","internalType":"uint48"}],"stateMutability":"view"},{"type":"function","name":"onSlash","inputs":[{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"captureTimestamp","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"slashedAmount","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"previousEpochStart","inputs":[],"outputs":[{"name":"","type":"uint48","internalType":"uint48"}],"stateMutability":"view"},{"type":"function","name":"redeem","inputs":[{"name":"claimer","type":"address","internalType":"address"},{"name":"shares","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"withdrawnAssets","type":"uint256","internalType":"uint256"},{"name":"mintedShares","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"renounceRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"callerConfirmation","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"revokeRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setDelegator","inputs":[{"name":"delegator_","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setDepositLimit","inputs":[{"name":"limit","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setDepositWhitelist","inputs":[{"name":"status","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setDepositorWhitelistStatus","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"status","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setIsDepositLimit","inputs":[{"name":"status","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setSlasher","inputs":[{"name":"slasher_","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"slashableBalanceOf","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"slasher","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"staticDelegateCall","inputs":[{"name":"target","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"totalStake","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"version","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"withdraw","inputs":[{"name":"claimer","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"burnedShares","type":"uint256","internalType":"uint256"},{"name":"mintedShares","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"withdrawalShares","inputs":[{"name":"epoch","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"withdrawalSharesOf","inputs":[{"name":"epoch","type":"uint256","internalType":"uint256"},{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"withdrawals","inputs":[{"name":"epoch","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"withdrawalsOf","inputs":[{"name":"epoch","type":"uint256","internalType":"uint256"},{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"event","name":"Claim","inputs":[{"name":"claimer","type":"address","indexed":true,"internalType":"address"},{"name":"recipient","type":"address","indexed":true,"internalType":"address"},{"name":"epoch","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"ClaimBatch","inputs":[{"name":"claimer","type":"address","indexed":true,"internalType":"address"},{"name":"recipient","type":"address","indexed":true,"internalType":"address"},{"name":"epochs","type":"uint256[]","indexed":false,"internalType":"uint256[]"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Deposit","inputs":[{"name":"depositor","type":"address","indexed":true,"internalType":"address"},{"name":"onBehalfOf","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"shares","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"OnSlash","inputs":[{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"captureTimestamp","type":"uint48","indexed":false,"internalType":"uint48"},{"name":"slashedAmount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"RoleAdminChanged","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"previousAdminRole","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"newAdminRole","type":"bytes32","indexed":true,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"RoleGranted","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"sender","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"RoleRevoked","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"sender","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"SetDelegator","inputs":[{"name":"delegator","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"SetDepositLimit","inputs":[{"name":"limit","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"SetDepositWhitelist","inputs":[{"name":"status","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"SetDepositorWhitelistStatus","inputs":[{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"status","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"SetIsDepositLimit","inputs":[{"name":"status","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"SetSlasher","inputs":[{"name":"slasher","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Withdraw","inputs":[{"name":"withdrawer","type":"address","indexed":true,"internalType":"address"},{"name":"claimer","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"burnedShares","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"mintedShares","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"error","name":"AccessControlBadConfirmation","inputs":[]},{"type":"error","name":"AccessControlUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"neededRole","type":"bytes32","internalType":"bytes32"}]},{"type":"error","name":"AddressEmptyCode","inputs":[{"name":"target","type":"address","internalType":"address"}]},{"type":"error","name":"AddressInsufficientBalance","inputs":[{"name":"account","type":"address","internalType":"address"}]},{"type":"error","name":"AlreadyClaimed","inputs":[]},{"type":"error","name":"AlreadyInitialized","inputs":[]},{"type":"error","name":"AlreadySet","inputs":[]},{"type":"error","name":"CheckpointUnorderedInsertion","inputs":[]},{"type":"error","name":"DelegatorAlreadyInitialized","inputs":[]},{"type":"error","name":"DepositLimitReached","inputs":[]},{"type":"error","name":"FailedInnerCall","inputs":[]},{"type":"error","name":"InsufficientClaim","inputs":[]},{"type":"error","name":"InsufficientDeposit","inputs":[]},{"type":"error","name":"InsufficientRedemption","inputs":[]},{"type":"error","name":"InsufficientWithdrawal","inputs":[]},{"type":"error","name":"InvalidAccount","inputs":[]},{"type":"error","name":"InvalidCaptureEpoch","inputs":[]},{"type":"error","name":"InvalidClaimer","inputs":[]},{"type":"error","name":"InvalidCollateral","inputs":[]},{"type":"error","name":"InvalidDelegator","inputs":[]},{"type":"error","name":"InvalidEpoch","inputs":[]},{"type":"error","name":"InvalidEpochDuration","inputs":[]},{"type":"error","name":"InvalidInitialization","inputs":[]},{"type":"error","name":"InvalidLengthEpochs","inputs":[]},{"type":"error","name":"InvalidOnBehalfOf","inputs":[]},{"type":"error","name":"InvalidRecipient","inputs":[]},{"type":"error","name":"InvalidSlasher","inputs":[]},{"type":"error","name":"InvalidTimestamp","inputs":[]},{"type":"error","name":"MathOverflowedMulDiv","inputs":[]},{"type":"error","name":"MissingRoles","inputs":[]},{"type":"error","name":"NoPreviousEpoch","inputs":[]},{"type":"error","name":"NotDelegator","inputs":[]},{"type":"error","name":"NotFactory","inputs":[]},{"type":"error","name":"NotInitialized","inputs":[]},{"type":"error","name":"NotInitializing","inputs":[]},{"type":"error","name":"NotSlasher","inputs":[]},{"type":"error","name":"NotWhitelistedDepositor","inputs":[]},{"type":"error","name":"OwnableInvalidOwner","inputs":[{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"OwnableUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"}]},{"type":"error","name":"ReentrancyGuardReentrantCall","inputs":[]},{"type":"error","name":"SafeCastOverflowedUintDowncast","inputs":[{"name":"bits","type":"uint8","internalType":"uint8"},{"name":"value","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"SafeERC20FailedOperation","inputs":[{"name":"token","type":"address","internalType":"address"}]},{"type":"error","name":"SlasherAlreadyInitialized","inputs":[]},{"type":"error","name":"TooMuchRedeem","inputs":[]},{"type":"error","name":"TooMuchWithdraw","inputs":[]}],"bytecode":{"object":"0x60e03461013c57601f614b8b38819003918201601f1916830192916001600160401b03918285118486101761014057816060928592604097885283398101031261013c5761004c82610154565b916100648461005d60208401610154565b9201610154565b9260805260a0527ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a009081549060ff82861c1661012b5780808316036100e7575b50505060c05251614a22908161016982396080518181816111a001526116d5015260a05181818161183e0152611d04015260c05181818161077001526109a30152f35b6001600160401b0319909116811790915582519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a15f80806100a4565b845163f92ee8a960e01b8152600490fd5b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b51906001600160a01b038216820361013c5756fe60806040526004361015610011575f80fd5b5f3560e01c806301ffc9a7146104345780631415519b1461042f5780631b66c9e11461042a5780631e9a695014610425578063248a9ca31461042057806327810b6e1461041b578063281f5752146104165780632abe3048146104115780632d73c69c1461040c5780632dd31000146104075780632f2ff15d1461040257806336568abe146103fd578063392e53cd146103f85780634105a7dd146103f357806346361671146103ee57806347e7ef24146103e957806348d3b775146103e45780634ff0876a146103df57806350861adc146103da57806350f22068146103d55780635346e34f146103d057806354fd4d50146103cb57806357ec83cc146103c657806359f769a9146103c15780635cc07076146103bc57806361a8c8c4146103b75780636da3e06d146103b25780636ec1e3f8146103ad578063715018a6146103a85780637278e31c146103a357806373790ab31461039e5780637667180814610399578063794b15b7146103945780637953b33b1461038f5780637c04c80a1461038a578063810da75d1461038557806383cd9cc31461038057806387df07881461037b5780638b0e9f3f146103765780638da5cb5b1461037157806391d148541461036c5780639d66201b146103675780639f86fd8514610362578063a1b122021461035d578063a217fddf14610358578063a21a1df914610353578063a28614661461034e578063a3b5417214610349578063a5d0322314610344578063aabc24961461033f578063aad3ec961461033a578063afba70ad14610335578063b134427114610330578063bd49c35f1461032b578063bdc8144b14610326578063bfefcd7b14610321578063c31e8dd71461031c578063ce9b793014610317578063d547741f14610312578063d8dfeb451461030d578063db38871514610308578063ecf7085814610303578063efb559d6146102fe578063f2fde38b146102f9578063f3fef3a3146102f45763f5e7ee0f146102ef575f80fd5b6123a1565b6122fb565b6122ce565b61217f565b612162565b612128565b6120fd565b6120b1565b612089565b61201f565b612005565b611f27565b611f0d565b611ee5565b611ebb565b611dfa565b611c43565b611bfd565b611bb0565b611abd565b611a83565b611a69565b611a45565b61199b565b611961565b611903565b6118cf565b61186d565b611829565b611670565b611657565b6115f1565b6115ca565b61158a565b611570565b61152f565b61125b565b6111f4565b6111cf565b61118b565b611138565b61110e565b6110e7565b610faf565b610f7d565b610ee8565b610ecf565b610e72565b610e52565b610e31565b610b73565b610b4b565b610ab0565b610a6b565b610a20565b6109d2565b61098e565b61091a565b61072b565b61065d565b610635565b6105fc565b610513565b6104c8565b61048e565b3461048a57602036600319011261048a5760043563ffffffff60e01b811680910361048a57602090637965db0b60e01b8114908115610479575b506040519015158152f35b6301ffc9a760e01b1490505f61046e565b5f80fd5b3461048a575f36600319011261048a5760206040517fc6aaadd7371d5e8f9ed6849dd66a66573a3ba37167d03f4352c9ba5693678fac8152f35b3461048a575f36600319011261048a5760206040517f9c56d972d63cbb4195b3c1484691dfc220fa96a4c47e7b6613bd82a022029e068152f35b6001600160a01b0381160361048a57565b3461048a57604036600319011261048a5760043561053081610502565b6024359061053c612bf5565b6001600160a01b038116156105eb57335f908152600e6020526040902061056790613c8a565b613c8a565b82116105d957610587610578613b9d565b610580613c16565b9084613cd7565b9182156105c4578261059892612c24565b906105af60015f805160206149ad83398151915255565b604080519182526020820192909252f35b0390f35b60405160016245ddc760e11b03198152600490fd5b604051632418411f60e11b8152600490fd5b6040516208978560e71b8152600490fd5b3461048a57602036600319011261048a576004355f525f8051602061498d8339815191526020526020600160405f200154604051908152f35b3461048a575f36600319011261048a576001546040516001600160a01b039091168152602090f35b3461048a575f36600319011261048a5761067561291a565b80156106d65760015465ffffffffffff8160a01c16915f1981019081116106d1576106a39160d01c906123fa565b81018091116106d1576106b86105c091612d9e565b60405165ffffffffffff90911681529081906020820190565b6123cb565b604051639fa56a5b60e01b8152600490fd5b600435906001600160401b038216820361048a57565b9181601f8401121561048a578235916001600160401b03831161048a576020838186019501011161048a57565b3461048a57604036600319011261048a576107446106e8565b6001600160401b0360243581811161048a576107649036906004016106fe565b505061076e612bf5565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633036107ea575f805160206149cd833981519152549060ff8260401c169283156107da575b5050506107c8575f80fd5b60405163f92ee8a960e01b8152600490fd5b81169116101590505f80806107bd565b604051631966391b60e11b8152600490fd5b65ffffffffffff81160361048a57565b634e487b7160e01b5f52604160045260245ffd5b606081019081106001600160401b0382111761083b57604052565b61080c565b604081019081106001600160401b0382111761083b57604052565b90601f801991011681019081106001600160401b0382111761083b57604052565b6040519061016082018281106001600160401b0382111761083b57604052565b604051906108a982610840565b565b6001600160401b03811161083b57601f01601f191660200190565b9291926108d2826108ab565b916108e0604051938461085b565b82948184528183011161048a578281602093845f960137010152565b9080601f8301121561048a57816020610917933591016108c6565b90565b3461048a57606036600319011261048a5760043561093781610502565b60243590610944826107fc565b604435906001600160401b03821161048a5760209261096a6109869336906004016108fc565b6001600160a01b039092165f908152600e855260409020612f8b565b604051908152f35b3461048a575f36600319011261048a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461048a57604036600319011261048a57610a1e6024356004356109f582610502565b805f525f8051602061498d833981519152602052610a19600160405f200154613162565b613462565b005b3461048a57604036600319011261048a57602435610a3d81610502565b336001600160a01b03821603610a5957610a1e90600435613498565b60405163334bd91960e11b8152600490fd5b3461048a575f36600319011261048a5760ff60025460a01c1680610a97575b6020906040519015158152f35b5060035460a01c60ff16610a8a565b8015150361048a57565b3461048a57602036600319011261048a57600435610acd81610aa6565b610ad5612bf5565b610add613057565b5f54901515908160ff8216151514610b395760ff191660ff8216175f556040519081527f3e12b7b36c75ac9609a3f58609b331210428e1a85909132638955ba0301eec3390602090a160015f805160206149ad83398151915255005b60405163a741a04560e01b8152600490fd5b3461048a575f36600319011261048a57602065ffffffffffff60015460a01c16604051908152f35b3461048a5760408060031936011261048a576004803591610b9383610502565b610b9b612bf5565b6001600160a01b0391838316908115610e23575f5460ff811680610e0a575b610dfb5783516370a0823160e01b808252308483019081529096602093909160109190911c82169084908490819083010381845afa928315610dd3575f93610dd8575b50610c0f90602435903090339061352a565b5f5486519788523085890190815290979184918391908290819060200103918b60101c165afa908115610dd357610c4e935f92610da6575b50506123ed565b938415610d975760081c60ff1680610d82575b610d745750906105c091610d12610c76613b9d565b95610cbf610c82613c16565b610caa610c908a838b613cd7565b99610ca48a610c9e42612d9e565b9261241b565b9061367e565b5050610cb989610c9e42612d9e565b9061375e565b50506001600160a01b0381165f908152600e6020526040902090610d0c88610d07610562610cec42612d9e565b6001600160a01b039095165f908152600e6020526040902090565b61241b565b9161383a565b505081518481526020810186905233907fdcbc1c05240f31ff3ad067ef1ee35ce4997762752e3a095284754544f4c709d790604090a3610d5e60015f805160206149ad83398151915255565b5191825260208201929092529081906040820190565b8251632484557960e01b8152fd5b50610d8f84610d07613b9d565b815410610c61565b50825163070f6eed60e11b8152fd5b610dc59250803d10610dcc575b610dbd818361085b565b810190612449565b5f80610c47565b503d610db3565b612458565b610c0f919350610df490853d8711610dcc57610dbd818361085b565b9290610bfd565b5082516304f63b8560e01b8152fd5b50335f9081526005602052604090205460ff1615610bba565b8251630d534ce360e11b8152fd5b3461048a575f36600319011261048a57602060ff5f54166040519015158152f35b3461048a575f36600319011261048a57602060015460d01c604051908152f35b3461048a575f36600319011261048a57602060ff60025460a01c166040519015158152f35b90604060031983011261048a57600435610eb0816107fc565b91602435906001600160401b03821161048a57610917916004016108fc565b3461048a576020610986610ee236610e97565b90612e01565b3461048a57602036600319011261048a57600435610f0581610aa6565b610f0d612bf5565b610f156130b4565b5f54901515908160ff8260081c16151514610b395761ff001916600882901b61ff0016175f556040519081527ffa7a25a0b611d4ba3c0ea990e90dc23d484a5dd7a1be4733fef2946ba74530c690602090a1610a1e60015f805160206149ad83398151915255565b3461048a575f36600319011261048a5760206001600160401b035f805160206149cd8339815191525416604051908152f35b3461048a57606036600319011261048a57610fc86106e8565b602435610fd481610502565b6001600160401b039160443583811161048a57610ff59036906004016106fe565b5f805160206149cd8339815191529491855494838616806110d65760ff8760401c169081156110c9575b506107c8577fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2966110c49661108c958716906001600160401b0319161790556110875f805160206149cd833981519152600160401b68ff000000000000000019825416179055565b612463565b5f805160206149cd833981519152805468ff0000000000000000191690556040516001600160401b0390911681529081906020820190565b0390a1005b905084861611155f61101f565b60405162dc149f60e41b8152600490fd5b3461048a57602036600319011261048a57602061098660043561110981610502565b612883565b3461048a57602036600319011261048a576004355f526006602052602060405f2054604051908152f35b3461048a575f36600319011261048a5760015465ffffffffffff61116e818360a01c169261116461291a565b9060d01c906123fa565b82018092116106d157611182602092612d9e565b60405191168152f35b3461048a575f36600319011261048a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461048a575f36600319011261048a57602060ff60035460a01c166040519015158152f35b3461048a575f36600319011261048a5761120c6139cc565b5f8051602061492d83398151915280546001600160a01b031981169091555f906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b3461048a57604036600319011261048a5760043560243561127b816107fc565b611283612bf5565b6003546112a0906001600160a01b03165b6001600160a01b031690565b330361151d576112ae61291a565b906112b88161294e565b908215158061150c575b8015611503575b6114f1576105c0937ff9d090c096f71cd1659861a9ce5b6f384bceb4e2fa4e4a19edf6489a9b8d56c7926112fb613b9d565b946113166113088261240d565b5f52600660205260405f2090565b549082810361140a575061132a818761241b565b6113348185613a04565b9687806113c3575b50505050505b8361138f575b6040805191825265ffffffffffff929092166020820152908101839052606090a161137f60015f805160206149ad83398151915255565b6040519081529081906020820190565b5f546113be9085906113ac9060101c6001600160a01b0316611294565b6001546001600160a01b031690613ab2565b611348565b6113ff93610c4783610ca46113e96113e2611308986113f99888613a20565b80966123ed565b946113f342612d9e565b926123ed565b9261240d565b555f8080808761133c565b915061141e825f52600660205260405f2090565b549061142e81610d07848a61241b565b906114398286613a04565b978861144a575b5050505050611342565b6114bf93836114729361147f8c61147a6114686114b0998884613a20565b9788958584613a20565b9485926123ed565b6123ed565b938484106114ca575b610c4790610ca461149e9596976113f342612d9e565b6114aa6113088761240d565b556123ed565b915f52600660205260405f2090565b555f80808080611440565b916114e6610c47916114e08661149e97986123ed565b9061241b565b859450929050611488565b604051635e18d2a560e01b8152600490fd5b508282116112c9565b50611516836123df565b82106112c2565b60405163dabc4ad960e01b8152600490fd5b3461048a575f36600319011261048a5760015465ffffffffffff808260a01c169161155861291a565b600181018091116106d15761116e9160d01c906123fa565b3461048a575f36600319011261048a57602061098661291a565b3461048a57602036600319011261048a576004356115a781610502565b60018060a01b03165f526005602052602060ff60405f2054166040519015158152f35b3461048a57602036600319011261048a5760206109866004356115ec816107fc565b61294e565b3461048a57604036600319011261048a5760043561160e81610502565b6024356001600160401b0380821161048a573660238301121561048a57816004013590811161048a573660248260051b8401011161048a576105c092602461137f930190612989565b3461048a57602061098661166a36610e97565b90612ed6565b3461048a5760208060031936011261048a57600480359061169082610502565b611698612bf5565b60025460a01c60ff1661181a576040516302910f8b60e31b81526001600160a01b03838116838301908152909491908290829081906020010381887f0000000000000000000000000000000000000000000000000000000000000000165afa908115610dd3575f916117ed575b50156117dd5760405163fbfa77cf60e01b8152838516949082818581895afa928315610dd3575f936117ae575b50503091160361179f5750600280546001600160a01b03929092166001600160a81b031990921691909117600160a01b1790557fdb2160616f776a37b24808115554e79439bf26cccbbd4438190cc6d28e80ecd15f80a2610a1e60015f805160206149ad83398151915255565b60405163b9f0f17160e01b8152fd5b6117ce929350803d106117d6575b6117c6818361085b565b810190612ae2565b905f80611732565b503d6117bc565b506040516324e5af8d60e21b8152fd5b61180d9150823d8411611813575b611805818361085b565b810190612ac2565b5f611705565b503d6117fb565b604051631380833b60e01b8152fd5b3461048a575f36600319011261048a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461048a575f36600319011261048a5761188561291a565b61188d613b9d565b90805f52600660205260405f205482018092116106d157600181018091116106d1575f52600660205260405f205481018091116106d157602090604051908152f35b3461048a575f36600319011261048a575f8051602061492d833981519152546040516001600160a01b039091168152602090f35b3461048a57604036600319011261048a57602060ff61195560243561192781610502565b6004355f525f8051602061498d833981519152845260405f209060018060a01b03165f5260205260405f2090565b54166040519015158152f35b3461048a57602036600319011261048a5760043561197e81610502565b60018060a01b03165f52600e602052602061098660405f20613c8a565b3461048a57604036600319011261048a576004356119b881610502565b6024356001600160401b03811161048a575f916119da839236906004016106fe565b90816040519283928337810184815203915af4611a3d60806119fa612af7565b9260206040519485921515828401526040808401528051918291826060860152018484015e5f838284010152601f8019910116810103606081018452018261085b565b805190602001fd5b3461048a575f36600319011261048a57602060ff5f5460081c166040519015158152f35b3461048a575f36600319011261048a5760206040515f8152f35b3461048a575f36600319011261048a5760206040517f4a634bc14d77baf979756509ef4298c6f6318af357828612545267ee2eb792338152f35b3461048a57604036600319011261048a57600435611ada81610502565b602435611ae681610aa6565b611aee612bf5565b611af661310b565b6001600160a01b038216918215611b9e575f8381526005602052604090205460ff16151582151514610b39576001600160a01b03165f9081526005602052604090207ff991b1ecfb5115cbb36a2b2e2240c058406d2acc2fcc6e9e2dc99d845ff70a6291611b8591611b73908260ff801983541691151516179055565b60405190151581529081906020820190565b0390a2610a1e60015f805160206149ad83398151915255565b604051630da30f6560e31b8152600490fd5b3461048a57604036600319011261048a576020611bf4602435611bd281610502565b6004355f526008835260405f209060018060a01b03165f5260205260405f2090565b54604051908152f35b3461048a57604036600319011261048a57602060ff611955602435611c2181610502565b6004355f526009845260405f209060018060a01b03165f5260205260405f2090565b3461048a5760208060031936011261048a576004803590611c6382610502565b611c6b612bf5565b60035460a01c60ff16611deb576001600160a01b03828116939084611cd9575b6003805460ff60a01b1916600160a01b179055847fe7e4c932e03abddfe20f83af42c33627e816115c7ec2b168441f65dc14bfc3ba5f80a2610a1e60015f805160206149ad83398151915255565b6040516302910f8b60e31b81526001600160a01b0385168482019081528390829081906020010381857f0000000000000000000000000000000000000000000000000000000000000000165afa908115610dd3575f91611dce575b5015611dbd5760405163fbfa77cf60e01b815282818581895afa928315610dd3575f93611d9e575b505030911603611d8f5750600380546001600160a01b0319166001600160a01b039092169190911790555f808080611c8b565b604051633f3e089160e21b8152fd5b611db5929350803d106117d6576117c6818361085b565b905f80611d5c565b60405163dabc4ad960e01b81528390fd5b611de59150833d851161181357611805818361085b565b5f611d34565b60405163703fe2e560e01b8152fd5b3461048a57604036600319011261048a57600435611e1781610502565b60243590611e23612bf5565b6001600160a01b0391818316908115611ea957611e546105c094611e4683613b01565b9485915f5460101c16613ab2565b604080519182526020820184905233917f865ca08d59f5cb456e85cd2f7ef63664ea4f73327414e9d8152c4158b0e946459190a360015f805160206149ad833981519152556040519081529081906020820190565b604051634e46966960e11b8152600490fd5b3461048a57602036600319011261048a576004355f526007602052602060405f2054604051908152f35b3461048a575f36600319011261048a576003546040516001600160a01b039091168152602090f35b3461048a575f36600319011261048a576020610986613b9d565b3461048a57602036600319011261048a57600435611f43612bf5565b335f9081527f2d4ccbfe9f7672a6f2537c1e5bce6adacb73706879154bbab6ce096012d6721660205260409020547f4a634bc14d77baf979756509ef4298c6f6318af357828612545267ee2eb792339060ff1615611fe757508060045414610b39576020817f854df3eb95564502c8bc871ebdd15310ee26270f955f6c6bd8cea68e75045bc092600455604051908152a160015f805160206149ad83398151915255005b6044906040519063e2517d3f60e01b82523360048301526024820152fd5b3461048a575f36600319011261048a576020610986613c16565b3461048a57602036600319011261048a5760043561203c81610502565b61204461291a565b61204d82612883565b916120588183612b97565b83018093116106d157600182018092116106d15761207591612b97565b81018091116106d157602090604051908152f35b3461048a575f36600319011261048a576002546040516001600160a01b039091168152602090f35b3461048a57604036600319011261048a57610a1e6024356004356120d482610502565b805f525f8051602061498d8339815191526020526120f8600160405f200154613162565b613498565b3461048a575f36600319011261048a575f5460405160109190911c6001600160a01b03168152602090f35b3461048a575f36600319011261048a5760206040517fbae4ee3de6c709ff9a002e774c5b78cb381560b219213c88ae0f1e207c03c0238152f35b3461048a575f36600319011261048a576020600454604051908152f35b3461048a57606036600319011261048a5760043561219c81610502565b602435906121a9826107fc565b6001600160401b039160443583811161048a576121ca9036906004016106fe565b909260409384516121da81610820565b60608152606060208201526060868201529280612239575b6105c08661222a878761222461220b8984845191612428565b928561221b602085015183612ed6565b93015190612e01565b91613cd7565b90519081529081906020820190565b810193925060208185031261048a5780359086821161048a57019260608482031261048a5784519561226a87610820565b843581811161048a578261227f9187016108fc565b8752602085013581811161048a57826122999187016108fc565b60208801528585013590811161048a576105c0966122c26122249361220b9361222a98016108fc565b878201529394506121f2565b3461048a57602036600319011261048a57610a1e6004356122ee81610502565b6122f66139cc565b612b26565b3461048a57604036600319011261048a5760043561231881610502565b602435612323612bf5565b6001600160a01b038216156105eb57801561238f57612352612343613c16565b61234b613b9d565b9083614121565b335f908152600e6020526040902090929061236c90613c8a565b831161237d57610598918391612c24565b6040516321727a3760e11b8152600490fd5b604051636c6c627d60e11b8152600490fd5b3461048a57604036600319011261048a5760206109866024356123c381610502565b600435612b97565b634e487b7160e01b5f52601160045260245ffd5b5f198101919082116106d157565b919082039182116106d157565b818102929181159184041417156106d157565b90600182018092116106d157565b919082018092116106d157565b6001600160a01b03165f908152600e60205260409020610917929190612f8b565b9081602091031261048a575190565b6040513d5f823e3d90fd5b916124b5916124a691612474614268565b61247c614268565b60015f805160206149ad833981519152556001600160a01b0394808616612869575b5036916108c6565b60208082518301019101613903565b805182166001600160a01b03161561285757604080820165ffffffffffff6124e3825165ffffffffffff1690565b16156128465760c083018051909290612504906001600160a01b0316611294565b156126f7575b5091612643610140926125e26125bd6126a196612558612530875160018060a01b031690565b5f805462010000600160b01b03191660109290921b62010000600160b01b0316919091179055565b6020860151600180546001600160a01b0319166001600160a01b039092169190911790556125b161258842612d9e565b6001805465ffffffffffff60a01b191660a09290921b65ffffffffffff60a01b16919091179055565b5165ffffffffffff1690565b600180546001600160d01b031660d09290921b6001600160d01b031916919091179055565b6126026125f26060850151151590565b60ff80195f541691151516175f55565b6126296126126080850151151590565b61ff005f5491151560081b169061ff001916175f55565b61263660a0840151600455565b516001600160a01b031690565b8481166126e7575b5060e08101516001600160a01b03168481166126d7575b506101008101516001600160a01b03168481166126c7575b506101208101516001600160a01b03168481166126b7575b5001516001600160a01b031690565b9081166126ab5750565b6126b4906133f3565b50565b6126c090613384565b505f612692565b6126d090613315565b505f61267a565b6126e09061323f565b505f612662565b6126f09061318e565b505f61264b565b60e084015161270e906001600160a01b0316611294565b156127e3575b61012084015161272c906001600160a01b0316611294565b61250a576080840151156127995760a0840151158061277a575b61276a575091612643610140926125e26125bd6126a1965b9496505050925061250a565b5163183c854560e21b8152600490fd5b50610140840151612793906001600160a01b0316611294565b15612746565b60a0840151158015906127c3575b61276a575091612643610140926125e26125bd6126a19661275e565b506101408401516127dc906001600160a01b0316611294565b15156127a7565b60608401511561281957610100840151612805906001600160a01b0316611294565b612714575163183c854560e21b8152600490fd5b610100840151612831906001600160a01b0316611294565b15612714575163183c854560e21b8152600490fd5b81516368f5f8f160e11b8152600490fd5b6040516368f7a67560e11b8152600490fd5b61287d90612875614268565b6122f6614268565b5f61249e565b6001600160a01b03165f908152600e602052604090206128a290613c8a565b6128aa613b9d565b6128b2613c16565b90600181018091116106d157600182018092116106d15761091792613a20565b65ffffffffffff91821690821603919082116106d157565b634e487b7160e01b5f52601260045260245ffd5b9065ffffffffffff80911691821561291557160490565b6128ea565b61292342612d9e565b61294a60015461294065ffffffffffff93848360a01c16906128d2565b9060d01c906128fe565b1690565b6001549065ffffffffffff91828160a01c169182848216106129775761294a92612940916128d2565b60405163b7d0949760e01b8152600490fd5b90612992612bf5565b5f926001600160a01b038316928315611ea9578115612a4a575f5b828110612a2857505f547f326b6aff1cd2fb1c8234de4f9dcfb9047c5c36eb9ef2eb34af5121e969a75d2792869290916129fd9184916129f89060101c6001600160a01b0316611294565b613ab2565b612a0e604051928392339684612a85565b0390a3906108a960015f805160206149ad83398151915255565b94612a436001916114e0612a3d898789612a70565b35613b01565b95016129ad565b60405163edf3b93360e01b8152600490fd5b634e487b7160e01b5f52603260045260245ffd5b9190811015612a805760051b0190565b612a5c565b604080825281018390529392916001600160fb1b03811161048a5760209160609160051b809183880137850101930152565b51906108a982610aa6565b9081602091031261048a575161091781610aa6565b51906108a982610502565b9081602091031261048a575161091781610502565b3d15612b21573d90612b08826108ab565b91612b16604051938461085b565b82523d5f602084013e565b606090565b6001600160a01b03908116908115612b7f575f8051602061492d83398151915280546001600160a01b031981168417909155167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3565b604051631e4fbdf760e01b81525f6004820152602490fd5b90612bbd90825f52600860205260405f209060018060a01b03165f5260205260405f2090565b54905f52600660205260405f2054600760205260405f205490600181018091116106d157600182018092116106d15761091792613a20565b5f805160206149ad8339815191526002815414612c125760029055565b604051633ee5aeb560e01b8152600490fd5b335f908152600e6020526040902093929190612c3f42612d9e565b335f908152600e60205260409020612c5690613c8a565b918483039283116106d157612c917febff2602b3f468259e1e99f613fed6691f3a6526effe6ef3e768ba7ae7a36c4f938593612d1c9961383a565b5050612cab612c9f42612d9e565b610cb98761147a613c16565b5050612cc5612cb942612d9e565b610ca48461147a613b9d565b5050612d6a81612d55612cde612cd961291a565b61240d565b612d34612cf3825f52600660205260405f2090565b54612d06835f52600760205260405f2090565b54612d1282828b613cd7565b9d8e998a9361241b565b612d2e855f52600660205260405f2090565b5561241b565b612d46825f52600760205260405f2090565b555f52600860205260405f2090565b9060018060a01b03165f5260205260405f2090565b612d7583825461241b565b9055604080519485526020850195909552938301526001600160a01b03909216913391606090a3565b65ffffffffffff90818111612db1571690565b604490604051906306dfcc6560e41b8252603060048301526024820152fd5b9081602091031261048a575163ffffffff8116810361048a5790565b90600163ffffffff809316019182116106d157565b90805115612ecc5780602080612e1c93518301019101612dd0565b612e2581613f48565b90612e36825165ffffffffffff1690565b9065ffffffffffff8085169216828114612ec05782119182612e6c575b5050612e63575061091790613cf8565b60209150015190565b909150612e7a600a546123df565b63ffffffff831614918215612e93575b50505f80612e53565b612eb89192506125b1612ea8612ead92612dec565b613f48565b65ffffffffffff1690565b115f80612e8a565b50505060209150015190565b5061091790613cf8565b90805115612f815780602080612ef193518301019101612dd0565b612efa81613fcd565b90612f0b825165ffffffffffff1690565b9065ffffffffffff8085169216828114612ec05782119182612f38575b5050612e63575061091790613dbf565b909150612f46600c546123df565b63ffffffff831614918215612f5f575b50505f80612f28565b612f799192506125b1612f74612ead92612dec565b613fcd565b115f80612f56565b5061091790613dbf565b9180511561304d5780602080612fa693518301019101612dd0565b91612fb18382614048565b92612fc2845165ffffffffffff1690565b9065ffffffffffff80851692168281146130415782119182612ff8575b5050612fef576109179250613e7f565b50506020015190565b90915061300583546123df565b63ffffffff83161491821561301e575b50505f80612fdf565b6130399192506125b1613033612ead92612dec565b85614048565b115f80613015565b50505050506020015190565b5061091791613e7f565b335f9081527f03b26b53c87faa1058f30bb5d2fee64f717719a0d9b7e4f4df027aa5e9b6ed69602052604090207fbae4ee3de6c709ff9a002e774c5b78cb381560b219213c88ae0f1e207c03c0239060ff905b541615611fe75750565b335f9081527fe41986b390c4ce6791b87f7423b5fab7a81a0e6d89660b6264f697d008b2243a602052604090207fc6aaadd7371d5e8f9ed6849dd66a66573a3ba37167d03f4352c9ba5693678fac9060ff906130aa565b335f9081527f0287ab4cb376ea253d7b2ce0c2cbf458f7deae9458470d74afdfbbee484e9540602052604090207f9c56d972d63cbb4195b3c1484691dfc220fa96a4c47e7b6613bd82a022029e069060ff906130aa565b5f8181525f8051602061498d83398151915260209081526040808320338452909152902060ff906130aa565b6001600160a01b0381165f9081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d60205260409020545f8051602061498d8339815191529060ff16613239575f808052602091825260408082206001600160a01b038516835290925220805460ff1916600117905533906001600160a01b03165f7f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d8180a4600190565b50505f90565b6001600160a01b0381165f9081527f03b26b53c87faa1058f30bb5d2fee64f717719a0d9b7e4f4df027aa5e9b6ed69602052604090207fbae4ee3de6c709ff9a002e774c5b78cb381560b219213c88ae0f1e207c03c023905f8051602061498d8339815191529060ff905b541661330e575f828152602091825260408082206001600160a01b038616835290925220805460ff1916600117905533916001600160a01b0316907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d5f80a4600190565b5050505f90565b6001600160a01b0381165f9081527f0287ab4cb376ea253d7b2ce0c2cbf458f7deae9458470d74afdfbbee484e9540602052604090207f9c56d972d63cbb4195b3c1484691dfc220fa96a4c47e7b6613bd82a022029e06905f8051602061498d8339815191529060ff906132aa565b6001600160a01b0381165f9081527fe41986b390c4ce6791b87f7423b5fab7a81a0e6d89660b6264f697d008b2243a602052604090207fc6aaadd7371d5e8f9ed6849dd66a66573a3ba37167d03f4352c9ba5693678fac905f8051602061498d8339815191529060ff906132aa565b6001600160a01b0381165f9081527f2d4ccbfe9f7672a6f2537c1e5bce6adacb73706879154bbab6ce096012d67216602052604090207f4a634bc14d77baf979756509ef4298c6f6318af357828612545267ee2eb79233905f8051602061498d8339815191529060ff906132aa565b5f8181525f8051602061498d833981519152602081815260408084206001600160a01b038716855290915290912060ff906132aa565b5f8181525f8051602061498d833981519152602081815260408084206001600160a01b03871685529091529091205460ff161561330e575f828152602091825260408082206001600160a01b038616835290925220805460ff1916905533916001600160a01b0316907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b5f80a4600190565b6040516323b872dd60e01b60208201526001600160a01b03928316602482015292909116604483015260648083019390935291815260a08101918183106001600160401b0384111761083b576108a9926040526140b0565b600b54811015612a8057600b5f525f8051602061496d83398151915201905f90565b600d54811015612a8057600d5f525f8051602061494d83398151915201905f90565b8054821015612a80575f5260205f2001905f90565b600d54600160401b81101561083b576001810180600d55811015612a8057600d5f525f8051602061494d8339815191520155565b600b54600160401b81101561083b576001810180600b55811015612a8057600b5f525f8051602061496d8339815191520155565b90815491600160401b83101561083b57826136669160016108a9950181556135c6565b90919082549060031b91821b915f19901b1916179055565b919091600d9081548015613729575b50613696614185565b509290918154926136a5613b9d565b9481613714575b50156136f157505f1982018281116106d15781541115612a80575f527fd7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb4018390559190565b613705926001600160d01b0316915061439f565b5050613710836135db565b9190565b65ffffffffffff83811691161490505f6136ac565b600160401b81101561083b5760018101808455811015612a80575f908382525f8051602061494d83398151915201555f61368d565b919091600b9081548015613805575b506137766141f0565b50929091815492613785613c16565b94816137f0575b50156137d157505f1982018281116106d15781541115612a80575f527f0175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db8018390559190565b6137e5926001600160d01b0316915061449f565b50506137108361360f565b65ffffffffffff83811691161490505f61378c565b600160401b81101561083b5760018101808455811015612a80575f908382525f8051602061496d83398151915201555f61376d565b909291926001820190815480156138c8575b50846138578461423a565b5094909284549361386783613c8a565b96816138b3575b5015613890575050505f1981019081116106d1576136668591613710936135c6565b6137109492936138ac926001600160d01b039091169190614549565b5050613643565b65ffffffffffff83811691161490505f61386e565b600160401b81101561083b578060016138e492018455836135c6565b8154905f199060031b1b191690555f61384c565b51906108a9826107fc565b908161016091031261048a5761391761087c565b9061392181612ad7565b825261392f60208201612ad7565b6020830152613940604082016138f8565b604083015261395160608201612ab7565b606083015261396260808201612ab7565b608083015260a081015160a083015261397d60c08201612ad7565b60c083015261398e60e08201612ad7565b60e08301526101006139a1818301612ad7565b908301526101206139b3818301612ad7565b908301526139c5610140809201612ad7565b9082015290565b5f8051602061492d833981519152546001600160a01b031633036139ec57565b60405163118cdaa760e01b8152336004820152602490fd5b9080821015613a11575090565b905090565b8115612915570490565b9091828202915f1984820993838086109503948086039514613aa55784831115613a9357829109815f038216809204600280826003021880830282030280830282030280830282030280830282030280830282030280920290030293600183805f03040190848311900302920304170290565b60405163227bc15360e01b8152600490fd5b5050906109179250613a16565b60405163a9059cbb60e01b60208201526001600160a01b03909216602483015260448083019390935291815260808101916001600160401b0383118284101761083b576108a9926040526140b0565b90613b0a61291a565b821015613b8b575f82815260096020908152604080832033845290915290205460ff16613b7957613b3b3383612b97565b918215613b67575f9081526009602090815260408083203384529091529020805460ff19166001179055565b6040516366c0bcbf60e11b8152600490fd5b604051630c8d9eab60e31b8152600490fd5b60405163d5b25b6360e01b8152600490fd5b600c5480613bdd57505f5b6001600160d01b03811615613bd857600d54811015612a8057600d5f525f8051602061494d833981519152015490565b505f90565b805f198101116106d157600c5f527fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c6015460301c613ba8565b600a5480613c5157505f5b6001600160d01b03811615613bd857600b54811015612a8057600b5f525f8051602061496d833981519152015490565b805f198101116106d157600a5f527fc65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a7015460301c613c21565b805480613cb957505f5b6001600160d01b03811615613239576001613caf92016135c6565b90549060031b1c90565b5f199080828101116106d157825f5260205f2001015460301c613c94565b9190600181018091116106d157600182018092116106d15761091792613a20565b600a54905f829160058411613d66575b613d129350614755565b80613d3557505f5b6001600160d01b03811615613bd857613caf61091791613582565b613d5a613d44613d61926123df565b600a5f525f8051602061490d8339815191520190565b5460301c90565b613d1a565b9192613d718161461c565b81039081116106d157613d1293600a5f5265ffffffffffff80835f8051602061490d833981519152015416908516105f14613dad575091613d08565b929150613db99061240d565b90613d08565b600c54905f829160058411613e26575b613dd993506147be565b80613dfc57505f5b6001600160d01b03811615613bd857613caf610917916135a4565b613d5a613e0b613e21926123df565b600c5f525f805160206148ed8339815191520190565b613de1565b9192613e318161461c565b81039081116106d157613dd993600c5f5265ffffffffffff80835f805160206148ed833981519152015416908516105f14613e6d575091613dcf565b929150613e799061240d565b90613dcf565b908154905f829160058411613ee2575b613e9a935084614827565b80613ec257505f905b6001600160d01b0382161561323957610917916001613caf92016135c6565b613d5a613ed1613edc926123df565b835f5260205f200190565b90613ea3565b9192613eed8161461c565b81039081116106d157613e9a93855f5265ffffffffffff808360205f20015416908516105f14613f1e575091613e8f565b929150613f2a9061240d565b90613e8f565b60405190613f3d82610840565b5f6020838281520152565b613f50613f30565b50613f59613f30565b50600a54811015612a8057613f8090600a5f525f8051602061490d83398151915201614161565b65ffffffffffff81511690602060018060d01b0391015116600b54811015612a8057600b5f525f8051602061496d833981519152015460405191613fc383610840565b8252602082015290565b613fd5613f30565b50613fde613f30565b50600c54811015612a805761400590600c5f525f805160206148ed83398151915201614161565b65ffffffffffff81511690602060018060d01b0391015116600d54811015612a8057600d5f525f8051602061494d833981519152015460405191613fc383610840565b9061407161406b6140929261405b613f30565b50614064613f30565b50846135c6565b50614161565b91600165ffffffffffff845116936020828060d01b039101511691016135c6565b905490604051926140a284610840565b835260031b1c602082015290565b5f806140d89260018060a01b03169360208151910182865af16140d1612af7565b9083614889565b8051908115159182614106575b50506140ee5750565b60249060405190635274afe760e01b82526004820152fd5b6141199250602080918301019101612ac2565b155f806140e5565b9190600181018091116106d157600182018092116106d157614144828285613a20565b92821561291557096141535790565b600181018091116106d15790565b9060405161416e81610840565b915465ffffffffffff8116835260301c6020830152565b600c548061419657505f905f905f90565b805f198101116106d1577fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c66141cf91600c5f5201614161565b9065ffffffffffff82511691602060018060d01b0391015116906001929190565b600a548061420157505f905f905f90565b805f198101116106d1577fc65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a76141cf91600a5f5201614161565b80548061424b5750505f905f905f90565b5f199080828101116106d1576141cf925f5260205f200101614161565b60ff5f805160206149cd8339815191525460401c161561428457565b604051631afcd79f60e31b8152600490fd5b600c5490600160401b82101561083b576001820180600c55821015612a8057600c5f52805160209091015160301b65ffffffffffff191665ffffffffffff91909116175f805160206148ed83398151915290910155565b600a5490600160401b82101561083b576001820180600a55821015612a8057600a5f52805160209091015160301b65ffffffffffff191665ffffffffffff91909116175f8051602061490d83398151915290910155565b8054600160401b81101561083b57614361916001820181556135c6565b61438c57815160209092015160301b65ffffffffffff191665ffffffffffff92909216919091179055565b634e487b7160e01b5f525f60045260245ffd5b600c54919291908115614476576143c06143bb613e0b846123df565b614161565b805165ffffffffffff83811694911684106144645785602093613710956143f0612ead865165ffffffffffff1690565b0361442c5750614405613e0b61441e936123df565b9065ffffffffffff82549181199060301b169116179055565b01516001600160d01b031690565b905061445f915061444c61443e61089c565b65ffffffffffff9092168252565b6001600160d01b03871681850152614296565b61441e565b604051632520601d60e01b8152600490fd5b61449a915061448661443e61089c565b6001600160d01b0384166020820152614296565b5f9190565b600a54919291908115614525576144bb6143bb613d44846123df565b805165ffffffffffff83811694911684106144645785602093613710956144eb612ead865165ffffffffffff1690565b036145005750614405613d4461441e936123df565b905061445f915061451261443e61089c565b6001600160d01b038716818501526142ed565b61449a915061453561443e61089c565b6001600160d01b03841660208201526142ed565b8054929392919082156145f8576145656143bb613ed1856123df565b90614576825165ffffffffffff1690565b65ffffffffffff84811691168110614464576137109460209488926145a4612ead875165ffffffffffff1690565b036145c5575061441e926145ba614405926123df565b905f5260205f200190565b91505061445f916145e56145d761089c565b65ffffffffffff9093168352565b6001600160d01b03881682860152614344565b61449a92506146086145d761089c565b6001600160d01b0385166020830152614344565b8015613bd857806146ee6146e76146dd6146d36146c96146bf6146b56146ab60016109179a5f908b60801c80614749575b508060401c8061473c575b508060201c8061472f575b508060101c80614722575b508060081c80614715575b508060041c80614708575b508060021c806146fb575b50821c6146f4575b811c1b6146a4818b613a16565b0160011c90565b6146a4818a613a16565b6146a48189613a16565b6146a48188613a16565b6146a48187613a16565b6146a48186613a16565b6146a48185613a16565b8092613a16565b90613a04565b8101614697565b600291509101905f61468f565b600491509101905f614684565b600891509101905f614679565b601091509101905f61466e565b602091509101905f614663565b604091509101905f614658565b9150506080905f61464d565b905b82811061476357505090565b9091808216906001818418811c83018093116106d157600a5f5265ffffffffffff80845f8051602061490d833981519152015416908616105f146147ab575050915b90614757565b9093925081018091116106d157906147a5565b905b8281106147cc57505090565b9091808216906001818418811c83018093116106d157600c5f5265ffffffffffff80845f805160206148ed833981519152015416908616105f14614814575050915b906147c0565b9093925081018091116106d1579061480e565b91905b8382106148375750505090565b909192808316906001818518811c83018093116106d157855f5265ffffffffffff808460205f20015416908516105f14614876575050925b919061482a565b9094935081018091116106d1579161486f565b906148b0575080511561489e57805190602001fd5b604051630a12f52160e11b8152600490fd5b815115806148e3575b6148c1575090565b604051639996b31560e01b81526001600160a01b039091166004820152602490fd5b50803b156148b956fedf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c7c65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a89016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300d7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb50175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db902dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268009b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a26469706673582212205eb48e48c582a0d2dd84283abb0d0c766d767ab9b676d6e9c13aeaa32e7e136664736f6c63430008190033","sourceMap":"981:14960:100:-:0;;;;;;;;;;;;;-1:-1:-1;;981:14960:100;;;;;-1:-1:-1;;;;;981:14960:100;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;:::i;:::-;3173:36:101;;;3219:32;;8837:64:26;981:14960:100;;;;;;;;;7896:76:26;;981:14960:100;;;;7985:34:26;7981:146;;-1:-1:-1;927:17:76;;;;;981:14960:100;;;;;;;3173:36:101;981:14960:100;;;;;;;;;;3219:32:101;981:14960:100;;;;;;;;;;927:17:76;981:14960:100;;;;;;;;;;;7981:146:26;-1:-1:-1;;;;;;981:14960:100;;;;;;;;;;;;;8087:29:26;;981:14960:100;;8087:29:26;7981:146;;;;;7896:76;981:14960:100;;-1:-1:-1;;;7938:23:26;;;;;981:14960:100;-1:-1:-1;981:14960:100;;;;;;-1:-1:-1;981:14960:100;;;;;-1:-1:-1;981:14960:100;;;;-1:-1:-1;;;;;981:14960:100;;;;;;:::o","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361015610011575f80fd5b5f3560e01c806301ffc9a7146104345780631415519b1461042f5780631b66c9e11461042a5780631e9a695014610425578063248a9ca31461042057806327810b6e1461041b578063281f5752146104165780632abe3048146104115780632d73c69c1461040c5780632dd31000146104075780632f2ff15d1461040257806336568abe146103fd578063392e53cd146103f85780634105a7dd146103f357806346361671146103ee57806347e7ef24146103e957806348d3b775146103e45780634ff0876a146103df57806350861adc146103da57806350f22068146103d55780635346e34f146103d057806354fd4d50146103cb57806357ec83cc146103c657806359f769a9146103c15780635cc07076146103bc57806361a8c8c4146103b75780636da3e06d146103b25780636ec1e3f8146103ad578063715018a6146103a85780637278e31c146103a357806373790ab31461039e5780637667180814610399578063794b15b7146103945780637953b33b1461038f5780637c04c80a1461038a578063810da75d1461038557806383cd9cc31461038057806387df07881461037b5780638b0e9f3f146103765780638da5cb5b1461037157806391d148541461036c5780639d66201b146103675780639f86fd8514610362578063a1b122021461035d578063a217fddf14610358578063a21a1df914610353578063a28614661461034e578063a3b5417214610349578063a5d0322314610344578063aabc24961461033f578063aad3ec961461033a578063afba70ad14610335578063b134427114610330578063bd49c35f1461032b578063bdc8144b14610326578063bfefcd7b14610321578063c31e8dd71461031c578063ce9b793014610317578063d547741f14610312578063d8dfeb451461030d578063db38871514610308578063ecf7085814610303578063efb559d6146102fe578063f2fde38b146102f9578063f3fef3a3146102f45763f5e7ee0f146102ef575f80fd5b6123a1565b6122fb565b6122ce565b61217f565b612162565b612128565b6120fd565b6120b1565b612089565b61201f565b612005565b611f27565b611f0d565b611ee5565b611ebb565b611dfa565b611c43565b611bfd565b611bb0565b611abd565b611a83565b611a69565b611a45565b61199b565b611961565b611903565b6118cf565b61186d565b611829565b611670565b611657565b6115f1565b6115ca565b61158a565b611570565b61152f565b61125b565b6111f4565b6111cf565b61118b565b611138565b61110e565b6110e7565b610faf565b610f7d565b610ee8565b610ecf565b610e72565b610e52565b610e31565b610b73565b610b4b565b610ab0565b610a6b565b610a20565b6109d2565b61098e565b61091a565b61072b565b61065d565b610635565b6105fc565b610513565b6104c8565b61048e565b3461048a57602036600319011261048a5760043563ffffffff60e01b811680910361048a57602090637965db0b60e01b8114908115610479575b506040519015158152f35b6301ffc9a760e01b1490505f61046e565b5f80fd5b3461048a575f36600319011261048a5760206040517fc6aaadd7371d5e8f9ed6849dd66a66573a3ba37167d03f4352c9ba5693678fac8152f35b3461048a575f36600319011261048a5760206040517f9c56d972d63cbb4195b3c1484691dfc220fa96a4c47e7b6613bd82a022029e068152f35b6001600160a01b0381160361048a57565b3461048a57604036600319011261048a5760043561053081610502565b6024359061053c612bf5565b6001600160a01b038116156105eb57335f908152600e6020526040902061056790613c8a565b613c8a565b82116105d957610587610578613b9d565b610580613c16565b9084613cd7565b9182156105c4578261059892612c24565b906105af60015f805160206149ad83398151915255565b604080519182526020820192909252f35b0390f35b60405160016245ddc760e11b03198152600490fd5b604051632418411f60e11b8152600490fd5b6040516208978560e71b8152600490fd5b3461048a57602036600319011261048a576004355f525f8051602061498d8339815191526020526020600160405f200154604051908152f35b3461048a575f36600319011261048a576001546040516001600160a01b039091168152602090f35b3461048a575f36600319011261048a5761067561291a565b80156106d65760015465ffffffffffff8160a01c16915f1981019081116106d1576106a39160d01c906123fa565b81018091116106d1576106b86105c091612d9e565b60405165ffffffffffff90911681529081906020820190565b6123cb565b604051639fa56a5b60e01b8152600490fd5b600435906001600160401b038216820361048a57565b9181601f8401121561048a578235916001600160401b03831161048a576020838186019501011161048a57565b3461048a57604036600319011261048a576107446106e8565b6001600160401b0360243581811161048a576107649036906004016106fe565b505061076e612bf5565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633036107ea575f805160206149cd833981519152549060ff8260401c169283156107da575b5050506107c8575f80fd5b60405163f92ee8a960e01b8152600490fd5b81169116101590505f80806107bd565b604051631966391b60e11b8152600490fd5b65ffffffffffff81160361048a57565b634e487b7160e01b5f52604160045260245ffd5b606081019081106001600160401b0382111761083b57604052565b61080c565b604081019081106001600160401b0382111761083b57604052565b90601f801991011681019081106001600160401b0382111761083b57604052565b6040519061016082018281106001600160401b0382111761083b57604052565b604051906108a982610840565b565b6001600160401b03811161083b57601f01601f191660200190565b9291926108d2826108ab565b916108e0604051938461085b565b82948184528183011161048a578281602093845f960137010152565b9080601f8301121561048a57816020610917933591016108c6565b90565b3461048a57606036600319011261048a5760043561093781610502565b60243590610944826107fc565b604435906001600160401b03821161048a5760209261096a6109869336906004016108fc565b6001600160a01b039092165f908152600e855260409020612f8b565b604051908152f35b3461048a575f36600319011261048a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461048a57604036600319011261048a57610a1e6024356004356109f582610502565b805f525f8051602061498d833981519152602052610a19600160405f200154613162565b613462565b005b3461048a57604036600319011261048a57602435610a3d81610502565b336001600160a01b03821603610a5957610a1e90600435613498565b60405163334bd91960e11b8152600490fd5b3461048a575f36600319011261048a5760ff60025460a01c1680610a97575b6020906040519015158152f35b5060035460a01c60ff16610a8a565b8015150361048a57565b3461048a57602036600319011261048a57600435610acd81610aa6565b610ad5612bf5565b610add613057565b5f54901515908160ff8216151514610b395760ff191660ff8216175f556040519081527f3e12b7b36c75ac9609a3f58609b331210428e1a85909132638955ba0301eec3390602090a160015f805160206149ad83398151915255005b60405163a741a04560e01b8152600490fd5b3461048a575f36600319011261048a57602065ffffffffffff60015460a01c16604051908152f35b3461048a5760408060031936011261048a576004803591610b9383610502565b610b9b612bf5565b6001600160a01b0391838316908115610e23575f5460ff811680610e0a575b610dfb5783516370a0823160e01b808252308483019081529096602093909160109190911c82169084908490819083010381845afa928315610dd3575f93610dd8575b50610c0f90602435903090339061352a565b5f5486519788523085890190815290979184918391908290819060200103918b60101c165afa908115610dd357610c4e935f92610da6575b50506123ed565b938415610d975760081c60ff1680610d82575b610d745750906105c091610d12610c76613b9d565b95610cbf610c82613c16565b610caa610c908a838b613cd7565b99610ca48a610c9e42612d9e565b9261241b565b9061367e565b5050610cb989610c9e42612d9e565b9061375e565b50506001600160a01b0381165f908152600e6020526040902090610d0c88610d07610562610cec42612d9e565b6001600160a01b039095165f908152600e6020526040902090565b61241b565b9161383a565b505081518481526020810186905233907fdcbc1c05240f31ff3ad067ef1ee35ce4997762752e3a095284754544f4c709d790604090a3610d5e60015f805160206149ad83398151915255565b5191825260208201929092529081906040820190565b8251632484557960e01b8152fd5b50610d8f84610d07613b9d565b815410610c61565b50825163070f6eed60e11b8152fd5b610dc59250803d10610dcc575b610dbd818361085b565b810190612449565b5f80610c47565b503d610db3565b612458565b610c0f919350610df490853d8711610dcc57610dbd818361085b565b9290610bfd565b5082516304f63b8560e01b8152fd5b50335f9081526005602052604090205460ff1615610bba565b8251630d534ce360e11b8152fd5b3461048a575f36600319011261048a57602060ff5f54166040519015158152f35b3461048a575f36600319011261048a57602060015460d01c604051908152f35b3461048a575f36600319011261048a57602060ff60025460a01c166040519015158152f35b90604060031983011261048a57600435610eb0816107fc565b91602435906001600160401b03821161048a57610917916004016108fc565b3461048a576020610986610ee236610e97565b90612e01565b3461048a57602036600319011261048a57600435610f0581610aa6565b610f0d612bf5565b610f156130b4565b5f54901515908160ff8260081c16151514610b395761ff001916600882901b61ff0016175f556040519081527ffa7a25a0b611d4ba3c0ea990e90dc23d484a5dd7a1be4733fef2946ba74530c690602090a1610a1e60015f805160206149ad83398151915255565b3461048a575f36600319011261048a5760206001600160401b035f805160206149cd8339815191525416604051908152f35b3461048a57606036600319011261048a57610fc86106e8565b602435610fd481610502565b6001600160401b039160443583811161048a57610ff59036906004016106fe565b5f805160206149cd8339815191529491855494838616806110d65760ff8760401c169081156110c9575b506107c8577fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2966110c49661108c958716906001600160401b0319161790556110875f805160206149cd833981519152600160401b68ff000000000000000019825416179055565b612463565b5f805160206149cd833981519152805468ff0000000000000000191690556040516001600160401b0390911681529081906020820190565b0390a1005b905084861611155f61101f565b60405162dc149f60e41b8152600490fd5b3461048a57602036600319011261048a57602061098660043561110981610502565b612883565b3461048a57602036600319011261048a576004355f526006602052602060405f2054604051908152f35b3461048a575f36600319011261048a5760015465ffffffffffff61116e818360a01c169261116461291a565b9060d01c906123fa565b82018092116106d157611182602092612d9e565b60405191168152f35b3461048a575f36600319011261048a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461048a575f36600319011261048a57602060ff60035460a01c166040519015158152f35b3461048a575f36600319011261048a5761120c6139cc565b5f8051602061492d83398151915280546001600160a01b031981169091555f906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b3461048a57604036600319011261048a5760043560243561127b816107fc565b611283612bf5565b6003546112a0906001600160a01b03165b6001600160a01b031690565b330361151d576112ae61291a565b906112b88161294e565b908215158061150c575b8015611503575b6114f1576105c0937ff9d090c096f71cd1659861a9ce5b6f384bceb4e2fa4e4a19edf6489a9b8d56c7926112fb613b9d565b946113166113088261240d565b5f52600660205260405f2090565b549082810361140a575061132a818761241b565b6113348185613a04565b9687806113c3575b50505050505b8361138f575b6040805191825265ffffffffffff929092166020820152908101839052606090a161137f60015f805160206149ad83398151915255565b6040519081529081906020820190565b5f546113be9085906113ac9060101c6001600160a01b0316611294565b6001546001600160a01b031690613ab2565b611348565b6113ff93610c4783610ca46113e96113e2611308986113f99888613a20565b80966123ed565b946113f342612d9e565b926123ed565b9261240d565b555f8080808761133c565b915061141e825f52600660205260405f2090565b549061142e81610d07848a61241b565b906114398286613a04565b978861144a575b5050505050611342565b6114bf93836114729361147f8c61147a6114686114b0998884613a20565b9788958584613a20565b9485926123ed565b6123ed565b938484106114ca575b610c4790610ca461149e9596976113f342612d9e565b6114aa6113088761240d565b556123ed565b915f52600660205260405f2090565b555f80808080611440565b916114e6610c47916114e08661149e97986123ed565b9061241b565b859450929050611488565b604051635e18d2a560e01b8152600490fd5b508282116112c9565b50611516836123df565b82106112c2565b60405163dabc4ad960e01b8152600490fd5b3461048a575f36600319011261048a5760015465ffffffffffff808260a01c169161155861291a565b600181018091116106d15761116e9160d01c906123fa565b3461048a575f36600319011261048a57602061098661291a565b3461048a57602036600319011261048a576004356115a781610502565b60018060a01b03165f526005602052602060ff60405f2054166040519015158152f35b3461048a57602036600319011261048a5760206109866004356115ec816107fc565b61294e565b3461048a57604036600319011261048a5760043561160e81610502565b6024356001600160401b0380821161048a573660238301121561048a57816004013590811161048a573660248260051b8401011161048a576105c092602461137f930190612989565b3461048a57602061098661166a36610e97565b90612ed6565b3461048a5760208060031936011261048a57600480359061169082610502565b611698612bf5565b60025460a01c60ff1661181a576040516302910f8b60e31b81526001600160a01b03838116838301908152909491908290829081906020010381887f0000000000000000000000000000000000000000000000000000000000000000165afa908115610dd3575f916117ed575b50156117dd5760405163fbfa77cf60e01b8152838516949082818581895afa928315610dd3575f936117ae575b50503091160361179f5750600280546001600160a01b03929092166001600160a81b031990921691909117600160a01b1790557fdb2160616f776a37b24808115554e79439bf26cccbbd4438190cc6d28e80ecd15f80a2610a1e60015f805160206149ad83398151915255565b60405163b9f0f17160e01b8152fd5b6117ce929350803d106117d6575b6117c6818361085b565b810190612ae2565b905f80611732565b503d6117bc565b506040516324e5af8d60e21b8152fd5b61180d9150823d8411611813575b611805818361085b565b810190612ac2565b5f611705565b503d6117fb565b604051631380833b60e01b8152fd5b3461048a575f36600319011261048a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461048a575f36600319011261048a5761188561291a565b61188d613b9d565b90805f52600660205260405f205482018092116106d157600181018091116106d1575f52600660205260405f205481018091116106d157602090604051908152f35b3461048a575f36600319011261048a575f8051602061492d833981519152546040516001600160a01b039091168152602090f35b3461048a57604036600319011261048a57602060ff61195560243561192781610502565b6004355f525f8051602061498d833981519152845260405f209060018060a01b03165f5260205260405f2090565b54166040519015158152f35b3461048a57602036600319011261048a5760043561197e81610502565b60018060a01b03165f52600e602052602061098660405f20613c8a565b3461048a57604036600319011261048a576004356119b881610502565b6024356001600160401b03811161048a575f916119da839236906004016106fe565b90816040519283928337810184815203915af4611a3d60806119fa612af7565b9260206040519485921515828401526040808401528051918291826060860152018484015e5f838284010152601f8019910116810103606081018452018261085b565b805190602001fd5b3461048a575f36600319011261048a57602060ff5f5460081c166040519015158152f35b3461048a575f36600319011261048a5760206040515f8152f35b3461048a575f36600319011261048a5760206040517f4a634bc14d77baf979756509ef4298c6f6318af357828612545267ee2eb792338152f35b3461048a57604036600319011261048a57600435611ada81610502565b602435611ae681610aa6565b611aee612bf5565b611af661310b565b6001600160a01b038216918215611b9e575f8381526005602052604090205460ff16151582151514610b39576001600160a01b03165f9081526005602052604090207ff991b1ecfb5115cbb36a2b2e2240c058406d2acc2fcc6e9e2dc99d845ff70a6291611b8591611b73908260ff801983541691151516179055565b60405190151581529081906020820190565b0390a2610a1e60015f805160206149ad83398151915255565b604051630da30f6560e31b8152600490fd5b3461048a57604036600319011261048a576020611bf4602435611bd281610502565b6004355f526008835260405f209060018060a01b03165f5260205260405f2090565b54604051908152f35b3461048a57604036600319011261048a57602060ff611955602435611c2181610502565b6004355f526009845260405f209060018060a01b03165f5260205260405f2090565b3461048a5760208060031936011261048a576004803590611c6382610502565b611c6b612bf5565b60035460a01c60ff16611deb576001600160a01b03828116939084611cd9575b6003805460ff60a01b1916600160a01b179055847fe7e4c932e03abddfe20f83af42c33627e816115c7ec2b168441f65dc14bfc3ba5f80a2610a1e60015f805160206149ad83398151915255565b6040516302910f8b60e31b81526001600160a01b0385168482019081528390829081906020010381857f0000000000000000000000000000000000000000000000000000000000000000165afa908115610dd3575f91611dce575b5015611dbd5760405163fbfa77cf60e01b815282818581895afa928315610dd3575f93611d9e575b505030911603611d8f5750600380546001600160a01b0319166001600160a01b039092169190911790555f808080611c8b565b604051633f3e089160e21b8152fd5b611db5929350803d106117d6576117c6818361085b565b905f80611d5c565b60405163dabc4ad960e01b81528390fd5b611de59150833d851161181357611805818361085b565b5f611d34565b60405163703fe2e560e01b8152fd5b3461048a57604036600319011261048a57600435611e1781610502565b60243590611e23612bf5565b6001600160a01b0391818316908115611ea957611e546105c094611e4683613b01565b9485915f5460101c16613ab2565b604080519182526020820184905233917f865ca08d59f5cb456e85cd2f7ef63664ea4f73327414e9d8152c4158b0e946459190a360015f805160206149ad833981519152556040519081529081906020820190565b604051634e46966960e11b8152600490fd5b3461048a57602036600319011261048a576004355f526007602052602060405f2054604051908152f35b3461048a575f36600319011261048a576003546040516001600160a01b039091168152602090f35b3461048a575f36600319011261048a576020610986613b9d565b3461048a57602036600319011261048a57600435611f43612bf5565b335f9081527f2d4ccbfe9f7672a6f2537c1e5bce6adacb73706879154bbab6ce096012d6721660205260409020547f4a634bc14d77baf979756509ef4298c6f6318af357828612545267ee2eb792339060ff1615611fe757508060045414610b39576020817f854df3eb95564502c8bc871ebdd15310ee26270f955f6c6bd8cea68e75045bc092600455604051908152a160015f805160206149ad83398151915255005b6044906040519063e2517d3f60e01b82523360048301526024820152fd5b3461048a575f36600319011261048a576020610986613c16565b3461048a57602036600319011261048a5760043561203c81610502565b61204461291a565b61204d82612883565b916120588183612b97565b83018093116106d157600182018092116106d15761207591612b97565b81018091116106d157602090604051908152f35b3461048a575f36600319011261048a576002546040516001600160a01b039091168152602090f35b3461048a57604036600319011261048a57610a1e6024356004356120d482610502565b805f525f8051602061498d8339815191526020526120f8600160405f200154613162565b613498565b3461048a575f36600319011261048a575f5460405160109190911c6001600160a01b03168152602090f35b3461048a575f36600319011261048a5760206040517fbae4ee3de6c709ff9a002e774c5b78cb381560b219213c88ae0f1e207c03c0238152f35b3461048a575f36600319011261048a576020600454604051908152f35b3461048a57606036600319011261048a5760043561219c81610502565b602435906121a9826107fc565b6001600160401b039160443583811161048a576121ca9036906004016106fe565b909260409384516121da81610820565b60608152606060208201526060868201529280612239575b6105c08661222a878761222461220b8984845191612428565b928561221b602085015183612ed6565b93015190612e01565b91613cd7565b90519081529081906020820190565b810193925060208185031261048a5780359086821161048a57019260608482031261048a5784519561226a87610820565b843581811161048a578261227f9187016108fc565b8752602085013581811161048a57826122999187016108fc565b60208801528585013590811161048a576105c0966122c26122249361220b9361222a98016108fc565b878201529394506121f2565b3461048a57602036600319011261048a57610a1e6004356122ee81610502565b6122f66139cc565b612b26565b3461048a57604036600319011261048a5760043561231881610502565b602435612323612bf5565b6001600160a01b038216156105eb57801561238f57612352612343613c16565b61234b613b9d565b9083614121565b335f908152600e6020526040902090929061236c90613c8a565b831161237d57610598918391612c24565b6040516321727a3760e11b8152600490fd5b604051636c6c627d60e11b8152600490fd5b3461048a57604036600319011261048a5760206109866024356123c381610502565b600435612b97565b634e487b7160e01b5f52601160045260245ffd5b5f198101919082116106d157565b919082039182116106d157565b818102929181159184041417156106d157565b90600182018092116106d157565b919082018092116106d157565b6001600160a01b03165f908152600e60205260409020610917929190612f8b565b9081602091031261048a575190565b6040513d5f823e3d90fd5b916124b5916124a691612474614268565b61247c614268565b60015f805160206149ad833981519152556001600160a01b0394808616612869575b5036916108c6565b60208082518301019101613903565b805182166001600160a01b03161561285757604080820165ffffffffffff6124e3825165ffffffffffff1690565b16156128465760c083018051909290612504906001600160a01b0316611294565b156126f7575b5091612643610140926125e26125bd6126a196612558612530875160018060a01b031690565b5f805462010000600160b01b03191660109290921b62010000600160b01b0316919091179055565b6020860151600180546001600160a01b0319166001600160a01b039092169190911790556125b161258842612d9e565b6001805465ffffffffffff60a01b191660a09290921b65ffffffffffff60a01b16919091179055565b5165ffffffffffff1690565b600180546001600160d01b031660d09290921b6001600160d01b031916919091179055565b6126026125f26060850151151590565b60ff80195f541691151516175f55565b6126296126126080850151151590565b61ff005f5491151560081b169061ff001916175f55565b61263660a0840151600455565b516001600160a01b031690565b8481166126e7575b5060e08101516001600160a01b03168481166126d7575b506101008101516001600160a01b03168481166126c7575b506101208101516001600160a01b03168481166126b7575b5001516001600160a01b031690565b9081166126ab5750565b6126b4906133f3565b50565b6126c090613384565b505f612692565b6126d090613315565b505f61267a565b6126e09061323f565b505f612662565b6126f09061318e565b505f61264b565b60e084015161270e906001600160a01b0316611294565b156127e3575b61012084015161272c906001600160a01b0316611294565b61250a576080840151156127995760a0840151158061277a575b61276a575091612643610140926125e26125bd6126a1965b9496505050925061250a565b5163183c854560e21b8152600490fd5b50610140840151612793906001600160a01b0316611294565b15612746565b60a0840151158015906127c3575b61276a575091612643610140926125e26125bd6126a19661275e565b506101408401516127dc906001600160a01b0316611294565b15156127a7565b60608401511561281957610100840151612805906001600160a01b0316611294565b612714575163183c854560e21b8152600490fd5b610100840151612831906001600160a01b0316611294565b15612714575163183c854560e21b8152600490fd5b81516368f5f8f160e11b8152600490fd5b6040516368f7a67560e11b8152600490fd5b61287d90612875614268565b6122f6614268565b5f61249e565b6001600160a01b03165f908152600e602052604090206128a290613c8a565b6128aa613b9d565b6128b2613c16565b90600181018091116106d157600182018092116106d15761091792613a20565b65ffffffffffff91821690821603919082116106d157565b634e487b7160e01b5f52601260045260245ffd5b9065ffffffffffff80911691821561291557160490565b6128ea565b61292342612d9e565b61294a60015461294065ffffffffffff93848360a01c16906128d2565b9060d01c906128fe565b1690565b6001549065ffffffffffff91828160a01c169182848216106129775761294a92612940916128d2565b60405163b7d0949760e01b8152600490fd5b90612992612bf5565b5f926001600160a01b038316928315611ea9578115612a4a575f5b828110612a2857505f547f326b6aff1cd2fb1c8234de4f9dcfb9047c5c36eb9ef2eb34af5121e969a75d2792869290916129fd9184916129f89060101c6001600160a01b0316611294565b613ab2565b612a0e604051928392339684612a85565b0390a3906108a960015f805160206149ad83398151915255565b94612a436001916114e0612a3d898789612a70565b35613b01565b95016129ad565b60405163edf3b93360e01b8152600490fd5b634e487b7160e01b5f52603260045260245ffd5b9190811015612a805760051b0190565b612a5c565b604080825281018390529392916001600160fb1b03811161048a5760209160609160051b809183880137850101930152565b51906108a982610aa6565b9081602091031261048a575161091781610aa6565b51906108a982610502565b9081602091031261048a575161091781610502565b3d15612b21573d90612b08826108ab565b91612b16604051938461085b565b82523d5f602084013e565b606090565b6001600160a01b03908116908115612b7f575f8051602061492d83398151915280546001600160a01b031981168417909155167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3565b604051631e4fbdf760e01b81525f6004820152602490fd5b90612bbd90825f52600860205260405f209060018060a01b03165f5260205260405f2090565b54905f52600660205260405f2054600760205260405f205490600181018091116106d157600182018092116106d15761091792613a20565b5f805160206149ad8339815191526002815414612c125760029055565b604051633ee5aeb560e01b8152600490fd5b335f908152600e6020526040902093929190612c3f42612d9e565b335f908152600e60205260409020612c5690613c8a565b918483039283116106d157612c917febff2602b3f468259e1e99f613fed6691f3a6526effe6ef3e768ba7ae7a36c4f938593612d1c9961383a565b5050612cab612c9f42612d9e565b610cb98761147a613c16565b5050612cc5612cb942612d9e565b610ca48461147a613b9d565b5050612d6a81612d55612cde612cd961291a565b61240d565b612d34612cf3825f52600660205260405f2090565b54612d06835f52600760205260405f2090565b54612d1282828b613cd7565b9d8e998a9361241b565b612d2e855f52600660205260405f2090565b5561241b565b612d46825f52600760205260405f2090565b555f52600860205260405f2090565b9060018060a01b03165f5260205260405f2090565b612d7583825461241b565b9055604080519485526020850195909552938301526001600160a01b03909216913391606090a3565b65ffffffffffff90818111612db1571690565b604490604051906306dfcc6560e41b8252603060048301526024820152fd5b9081602091031261048a575163ffffffff8116810361048a5790565b90600163ffffffff809316019182116106d157565b90805115612ecc5780602080612e1c93518301019101612dd0565b612e2581613f48565b90612e36825165ffffffffffff1690565b9065ffffffffffff8085169216828114612ec05782119182612e6c575b5050612e63575061091790613cf8565b60209150015190565b909150612e7a600a546123df565b63ffffffff831614918215612e93575b50505f80612e53565b612eb89192506125b1612ea8612ead92612dec565b613f48565b65ffffffffffff1690565b115f80612e8a565b50505060209150015190565b5061091790613cf8565b90805115612f815780602080612ef193518301019101612dd0565b612efa81613fcd565b90612f0b825165ffffffffffff1690565b9065ffffffffffff8085169216828114612ec05782119182612f38575b5050612e63575061091790613dbf565b909150612f46600c546123df565b63ffffffff831614918215612f5f575b50505f80612f28565b612f799192506125b1612f74612ead92612dec565b613fcd565b115f80612f56565b5061091790613dbf565b9180511561304d5780602080612fa693518301019101612dd0565b91612fb18382614048565b92612fc2845165ffffffffffff1690565b9065ffffffffffff80851692168281146130415782119182612ff8575b5050612fef576109179250613e7f565b50506020015190565b90915061300583546123df565b63ffffffff83161491821561301e575b50505f80612fdf565b6130399192506125b1613033612ead92612dec565b85614048565b115f80613015565b50505050506020015190565b5061091791613e7f565b335f9081527f03b26b53c87faa1058f30bb5d2fee64f717719a0d9b7e4f4df027aa5e9b6ed69602052604090207fbae4ee3de6c709ff9a002e774c5b78cb381560b219213c88ae0f1e207c03c0239060ff905b541615611fe75750565b335f9081527fe41986b390c4ce6791b87f7423b5fab7a81a0e6d89660b6264f697d008b2243a602052604090207fc6aaadd7371d5e8f9ed6849dd66a66573a3ba37167d03f4352c9ba5693678fac9060ff906130aa565b335f9081527f0287ab4cb376ea253d7b2ce0c2cbf458f7deae9458470d74afdfbbee484e9540602052604090207f9c56d972d63cbb4195b3c1484691dfc220fa96a4c47e7b6613bd82a022029e069060ff906130aa565b5f8181525f8051602061498d83398151915260209081526040808320338452909152902060ff906130aa565b6001600160a01b0381165f9081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d60205260409020545f8051602061498d8339815191529060ff16613239575f808052602091825260408082206001600160a01b038516835290925220805460ff1916600117905533906001600160a01b03165f7f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d8180a4600190565b50505f90565b6001600160a01b0381165f9081527f03b26b53c87faa1058f30bb5d2fee64f717719a0d9b7e4f4df027aa5e9b6ed69602052604090207fbae4ee3de6c709ff9a002e774c5b78cb381560b219213c88ae0f1e207c03c023905f8051602061498d8339815191529060ff905b541661330e575f828152602091825260408082206001600160a01b038616835290925220805460ff1916600117905533916001600160a01b0316907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d5f80a4600190565b5050505f90565b6001600160a01b0381165f9081527f0287ab4cb376ea253d7b2ce0c2cbf458f7deae9458470d74afdfbbee484e9540602052604090207f9c56d972d63cbb4195b3c1484691dfc220fa96a4c47e7b6613bd82a022029e06905f8051602061498d8339815191529060ff906132aa565b6001600160a01b0381165f9081527fe41986b390c4ce6791b87f7423b5fab7a81a0e6d89660b6264f697d008b2243a602052604090207fc6aaadd7371d5e8f9ed6849dd66a66573a3ba37167d03f4352c9ba5693678fac905f8051602061498d8339815191529060ff906132aa565b6001600160a01b0381165f9081527f2d4ccbfe9f7672a6f2537c1e5bce6adacb73706879154bbab6ce096012d67216602052604090207f4a634bc14d77baf979756509ef4298c6f6318af357828612545267ee2eb79233905f8051602061498d8339815191529060ff906132aa565b5f8181525f8051602061498d833981519152602081815260408084206001600160a01b038716855290915290912060ff906132aa565b5f8181525f8051602061498d833981519152602081815260408084206001600160a01b03871685529091529091205460ff161561330e575f828152602091825260408082206001600160a01b038616835290925220805460ff1916905533916001600160a01b0316907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b5f80a4600190565b6040516323b872dd60e01b60208201526001600160a01b03928316602482015292909116604483015260648083019390935291815260a08101918183106001600160401b0384111761083b576108a9926040526140b0565b600b54811015612a8057600b5f525f8051602061496d83398151915201905f90565b600d54811015612a8057600d5f525f8051602061494d83398151915201905f90565b8054821015612a80575f5260205f2001905f90565b600d54600160401b81101561083b576001810180600d55811015612a8057600d5f525f8051602061494d8339815191520155565b600b54600160401b81101561083b576001810180600b55811015612a8057600b5f525f8051602061496d8339815191520155565b90815491600160401b83101561083b57826136669160016108a9950181556135c6565b90919082549060031b91821b915f19901b1916179055565b919091600d9081548015613729575b50613696614185565b509290918154926136a5613b9d565b9481613714575b50156136f157505f1982018281116106d15781541115612a80575f527fd7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb4018390559190565b613705926001600160d01b0316915061439f565b5050613710836135db565b9190565b65ffffffffffff83811691161490505f6136ac565b600160401b81101561083b5760018101808455811015612a80575f908382525f8051602061494d83398151915201555f61368d565b919091600b9081548015613805575b506137766141f0565b50929091815492613785613c16565b94816137f0575b50156137d157505f1982018281116106d15781541115612a80575f527f0175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db8018390559190565b6137e5926001600160d01b0316915061449f565b50506137108361360f565b65ffffffffffff83811691161490505f61378c565b600160401b81101561083b5760018101808455811015612a80575f908382525f8051602061496d83398151915201555f61376d565b909291926001820190815480156138c8575b50846138578461423a565b5094909284549361386783613c8a565b96816138b3575b5015613890575050505f1981019081116106d1576136668591613710936135c6565b6137109492936138ac926001600160d01b039091169190614549565b5050613643565b65ffffffffffff83811691161490505f61386e565b600160401b81101561083b578060016138e492018455836135c6565b8154905f199060031b1b191690555f61384c565b51906108a9826107fc565b908161016091031261048a5761391761087c565b9061392181612ad7565b825261392f60208201612ad7565b6020830152613940604082016138f8565b604083015261395160608201612ab7565b606083015261396260808201612ab7565b608083015260a081015160a083015261397d60c08201612ad7565b60c083015261398e60e08201612ad7565b60e08301526101006139a1818301612ad7565b908301526101206139b3818301612ad7565b908301526139c5610140809201612ad7565b9082015290565b5f8051602061492d833981519152546001600160a01b031633036139ec57565b60405163118cdaa760e01b8152336004820152602490fd5b9080821015613a11575090565b905090565b8115612915570490565b9091828202915f1984820993838086109503948086039514613aa55784831115613a9357829109815f038216809204600280826003021880830282030280830282030280830282030280830282030280830282030280920290030293600183805f03040190848311900302920304170290565b60405163227bc15360e01b8152600490fd5b5050906109179250613a16565b60405163a9059cbb60e01b60208201526001600160a01b03909216602483015260448083019390935291815260808101916001600160401b0383118284101761083b576108a9926040526140b0565b90613b0a61291a565b821015613b8b575f82815260096020908152604080832033845290915290205460ff16613b7957613b3b3383612b97565b918215613b67575f9081526009602090815260408083203384529091529020805460ff19166001179055565b6040516366c0bcbf60e11b8152600490fd5b604051630c8d9eab60e31b8152600490fd5b60405163d5b25b6360e01b8152600490fd5b600c5480613bdd57505f5b6001600160d01b03811615613bd857600d54811015612a8057600d5f525f8051602061494d833981519152015490565b505f90565b805f198101116106d157600c5f527fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c6015460301c613ba8565b600a5480613c5157505f5b6001600160d01b03811615613bd857600b54811015612a8057600b5f525f8051602061496d833981519152015490565b805f198101116106d157600a5f527fc65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a7015460301c613c21565b805480613cb957505f5b6001600160d01b03811615613239576001613caf92016135c6565b90549060031b1c90565b5f199080828101116106d157825f5260205f2001015460301c613c94565b9190600181018091116106d157600182018092116106d15761091792613a20565b600a54905f829160058411613d66575b613d129350614755565b80613d3557505f5b6001600160d01b03811615613bd857613caf61091791613582565b613d5a613d44613d61926123df565b600a5f525f8051602061490d8339815191520190565b5460301c90565b613d1a565b9192613d718161461c565b81039081116106d157613d1293600a5f5265ffffffffffff80835f8051602061490d833981519152015416908516105f14613dad575091613d08565b929150613db99061240d565b90613d08565b600c54905f829160058411613e26575b613dd993506147be565b80613dfc57505f5b6001600160d01b03811615613bd857613caf610917916135a4565b613d5a613e0b613e21926123df565b600c5f525f805160206148ed8339815191520190565b613de1565b9192613e318161461c565b81039081116106d157613dd993600c5f5265ffffffffffff80835f805160206148ed833981519152015416908516105f14613e6d575091613dcf565b929150613e799061240d565b90613dcf565b908154905f829160058411613ee2575b613e9a935084614827565b80613ec257505f905b6001600160d01b0382161561323957610917916001613caf92016135c6565b613d5a613ed1613edc926123df565b835f5260205f200190565b90613ea3565b9192613eed8161461c565b81039081116106d157613e9a93855f5265ffffffffffff808360205f20015416908516105f14613f1e575091613e8f565b929150613f2a9061240d565b90613e8f565b60405190613f3d82610840565b5f6020838281520152565b613f50613f30565b50613f59613f30565b50600a54811015612a8057613f8090600a5f525f8051602061490d83398151915201614161565b65ffffffffffff81511690602060018060d01b0391015116600b54811015612a8057600b5f525f8051602061496d833981519152015460405191613fc383610840565b8252602082015290565b613fd5613f30565b50613fde613f30565b50600c54811015612a805761400590600c5f525f805160206148ed83398151915201614161565b65ffffffffffff81511690602060018060d01b0391015116600d54811015612a8057600d5f525f8051602061494d833981519152015460405191613fc383610840565b9061407161406b6140929261405b613f30565b50614064613f30565b50846135c6565b50614161565b91600165ffffffffffff845116936020828060d01b039101511691016135c6565b905490604051926140a284610840565b835260031b1c602082015290565b5f806140d89260018060a01b03169360208151910182865af16140d1612af7565b9083614889565b8051908115159182614106575b50506140ee5750565b60249060405190635274afe760e01b82526004820152fd5b6141199250602080918301019101612ac2565b155f806140e5565b9190600181018091116106d157600182018092116106d157614144828285613a20565b92821561291557096141535790565b600181018091116106d15790565b9060405161416e81610840565b915465ffffffffffff8116835260301c6020830152565b600c548061419657505f905f905f90565b805f198101116106d1577fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c66141cf91600c5f5201614161565b9065ffffffffffff82511691602060018060d01b0391015116906001929190565b600a548061420157505f905f905f90565b805f198101116106d1577fc65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a76141cf91600a5f5201614161565b80548061424b5750505f905f905f90565b5f199080828101116106d1576141cf925f5260205f200101614161565b60ff5f805160206149cd8339815191525460401c161561428457565b604051631afcd79f60e31b8152600490fd5b600c5490600160401b82101561083b576001820180600c55821015612a8057600c5f52805160209091015160301b65ffffffffffff191665ffffffffffff91909116175f805160206148ed83398151915290910155565b600a5490600160401b82101561083b576001820180600a55821015612a8057600a5f52805160209091015160301b65ffffffffffff191665ffffffffffff91909116175f8051602061490d83398151915290910155565b8054600160401b81101561083b57614361916001820181556135c6565b61438c57815160209092015160301b65ffffffffffff191665ffffffffffff92909216919091179055565b634e487b7160e01b5f525f60045260245ffd5b600c54919291908115614476576143c06143bb613e0b846123df565b614161565b805165ffffffffffff83811694911684106144645785602093613710956143f0612ead865165ffffffffffff1690565b0361442c5750614405613e0b61441e936123df565b9065ffffffffffff82549181199060301b169116179055565b01516001600160d01b031690565b905061445f915061444c61443e61089c565b65ffffffffffff9092168252565b6001600160d01b03871681850152614296565b61441e565b604051632520601d60e01b8152600490fd5b61449a915061448661443e61089c565b6001600160d01b0384166020820152614296565b5f9190565b600a54919291908115614525576144bb6143bb613d44846123df565b805165ffffffffffff83811694911684106144645785602093613710956144eb612ead865165ffffffffffff1690565b036145005750614405613d4461441e936123df565b905061445f915061451261443e61089c565b6001600160d01b038716818501526142ed565b61449a915061453561443e61089c565b6001600160d01b03841660208201526142ed565b8054929392919082156145f8576145656143bb613ed1856123df565b90614576825165ffffffffffff1690565b65ffffffffffff84811691168110614464576137109460209488926145a4612ead875165ffffffffffff1690565b036145c5575061441e926145ba614405926123df565b905f5260205f200190565b91505061445f916145e56145d761089c565b65ffffffffffff9093168352565b6001600160d01b03881682860152614344565b61449a92506146086145d761089c565b6001600160d01b0385166020830152614344565b8015613bd857806146ee6146e76146dd6146d36146c96146bf6146b56146ab60016109179a5f908b60801c80614749575b508060401c8061473c575b508060201c8061472f575b508060101c80614722575b508060081c80614715575b508060041c80614708575b508060021c806146fb575b50821c6146f4575b811c1b6146a4818b613a16565b0160011c90565b6146a4818a613a16565b6146a48189613a16565b6146a48188613a16565b6146a48187613a16565b6146a48186613a16565b6146a48185613a16565b8092613a16565b90613a04565b8101614697565b600291509101905f61468f565b600491509101905f614684565b600891509101905f614679565b601091509101905f61466e565b602091509101905f614663565b604091509101905f614658565b9150506080905f61464d565b905b82811061476357505090565b9091808216906001818418811c83018093116106d157600a5f5265ffffffffffff80845f8051602061490d833981519152015416908616105f146147ab575050915b90614757565b9093925081018091116106d157906147a5565b905b8281106147cc57505090565b9091808216906001818418811c83018093116106d157600c5f5265ffffffffffff80845f805160206148ed833981519152015416908616105f14614814575050915b906147c0565b9093925081018091116106d1579061480e565b91905b8382106148375750505090565b909192808316906001818518811c83018093116106d157855f5265ffffffffffff808460205f20015416908516105f14614876575050925b919061482a565b9094935081018091116106d1579161486f565b906148b0575080511561489e57805190602001fd5b604051630a12f52160e11b8152600490fd5b815115806148e3575b6148c1575090565b604051639996b31560e01b81526001600160a01b039091166004820152602490fd5b50803b156148b956fedf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c7c65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a89016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300d7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb50175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db902dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268009b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a26469706673582212205eb48e48c582a0d2dd84283abb0d0c766d767ab9b676d6e9c13aeaa32e7e136664736f6c63430008190033","sourceMap":"981:14960:100:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;;;;;-1:-1:-1;;981:14960:100;;;;;;;;;;;;;;;;;;-1:-1:-1;;;3551:47:24;;;:87;;;;981:14960:100;;;;;;;;;;3551:87:24;-1:-1:-1;;;1133:40:30;;-1:-1:-1;3551:87:24;;;981:14960:100;-1:-1:-1;981:14960:100;;;;;;;;-1:-1:-1;;981:14960:100;;;;;;;966:38:101;981:14960:100;;;;;;;;;-1:-1:-1;;981:14960:100;;;;;;;821:37:101;981:14960:100;;;;-1:-1:-1;;;;;981:14960:100;;;;;:::o;:::-;;;;;;-1:-1:-1;;981:14960:100;;;;;;;;;:::i;:::-;;;3217:103:29;;;:::i;:::-;-1:-1:-1;;;;;981:14960:100;;5525:21;5521:75;;5634:10;981:14960;;;;5606:15:101;981:14960:100;;;;;5606:33:101;;;:::i;:24::-;:33;:::i;:::-;5610:35:100;;5606:88;;1057:70:92;5173:21:101;;:::i;:::-;4803:22;;:::i;:::-;1057:70:92;;;:::i;:::-;5801:20:100;;;5797:82;;5904:43;;;;:::i;:::-;3282:1:29;;1805;-1:-1:-1;;;;;;;;;;;981:14960:100;3716:283:29;3282:1;981:14960:100;;;;;;;;;;;;;;;;;;5797:82;981:14960;;-1:-1:-1;;;;;;5844:24:100;;981:14960;;5844:24;5606:88;981:14960;;-1:-1:-1;;;5668:15:100;;981:14960;;5668:15;5521:75;981:14960;;-1:-1:-1;;;5569:16:100;;981:14960;;5569:16;981:14960;;;;;;-1:-1:-1;;981:14960:100;;;;;;-1:-1:-1;981:14960:100;-1:-1:-1;;;;;;;;;;;981:14960:100;;;4919:24:24;981:14960:100;-1:-1:-1;981:14960:100;4919:24:24;981:14960:100;;;;;;;;;;;;;-1:-1:-1;;981:14960:100;;;;;;;;-1:-1:-1;;;;;981:14960:100;;;;;;;;;;;;;;-1:-1:-1;;981:14960:100;;;;4084:14:101;;:::i;:::-;4112:10;;4108:65;;4190:17;981:14960:100;;;;;;;;;;;;;;;;4210:27:101;981:14960:100;;;4210:27:101;;:::i;:::-;981:14960:100;;;;;;;4189:60:101;981:14960:100;4189:60:101;;:::i;:::-;981:14960:100;;;;;;;;;;;;;;;;;;:::i;4108:65:101:-;981:14960:100;;-1:-1:-1;;;4145:17:101;;981:14960:100;;4145:17:101;981:14960:100;;;;-1:-1:-1;;;;;981:14960:100;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;981:14960:100;;;;;;;;;;;;;;;:::o;:::-;;;;;;-1:-1:-1;;981:14960:100;;;;;;:::i;:::-;-1:-1:-1;;;;;981:14960:100;;;;;;;;;;;;;;:::i;:::-;3217:103:29;;;;:::i;:::-;1673:7:76;-1:-1:-1;;;;;981:14960:100;1659:10:76;:21;1655:71;;-1:-1:-1;;;;;;;;;;;981:14960:100;;;;;;;6431:44:26;;;;;981:14960:100;6427:105:26;;;;;-1:-1:-1;15924:8:100;;6427:105:26;981:14960:100;;-1:-1:-1;;;6498:23:26;;981:14960:100;;6498:23:26;6431:44;981:14960:100;;;;6450:25:26;;;-1:-1:-1;6431:44:26;;;;;1655:71:76;981:14960:100;;-1:-1:-1;;;1703:12:76;;981:14960:100;;1703:12:76;981:14960:100;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;981:14960:100;;;;;;;:::o;:::-;;:::i;:::-;;;;;;;-1:-1:-1;;;;;981:14960:100;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;981:14960:100;;;;;;;:::o;:::-;;;;;;;;;;-1:-1:-1;;;;;981:14960:100;;;;;;;:::o;:::-;;;;;;;:::i;:::-;:::o;:::-;-1:-1:-1;;;;;981:14960:100;;;;;;-1:-1:-1;;981:14960:100;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;981:14960:100;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;;-1:-1:-1;;981:14960:100;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;981:14960:100;;;;;;;5383:59:101;981:14960:100;;;;;;:::i;:::-;-1:-1:-1;;;;;981:14960:100;;;-1:-1:-1;981:14960:100;;;5383:15:101;981:14960:100;;;;;5383:59:101;:::i;:::-;981:14960:100;;;;;;;;;;;;-1:-1:-1;;981:14960:100;;;;;;655:32:76;-1:-1:-1;;;;;981:14960:100;;;;;;;;;;;;-1:-1:-1;;981:14960:100;;;;5350:25:24;981:14960:100;;;;;;;:::i;:::-;;-1:-1:-1;981:14960:100;-1:-1:-1;;;;;;;;;;;981:14960:100;;3202:4:24;4919:24;981:14960:100;-1:-1:-1;981:14960:100;4919:24:24;981:14960:100;3202:4:24;:::i;:::-;5350:25;:::i;:::-;981:14960:100;;;;;;;-1:-1:-1;;981:14960:100;;;;;;;;;:::i;:::-;966:10:28;-1:-1:-1;;;;;981:14960:100;;6441:34:24;6437:102;;6549:37;981:14960:100;;;6549:37:24;:::i;6437:102::-;981:14960:100;;-1:-1:-1;;;6498:30:24;;981:14960:100;;6498:30:24;981:14960:100;;;;;;-1:-1:-1;;981:14960:100;;;;;1524:22;981:14960;;;;1524:46;;;981:14960;;;;;;;;;;;1524:46;-1:-1:-1;1550:20:100;981:14960;;;;;1524:46;;981:14960;;;;;;;:::o;:::-;;;;;;-1:-1:-1;;981:14960:100;;;;;;;;;:::i;:::-;3217:103:29;;:::i;:::-;3202:4:24;;:::i;:::-;-1:-1:-1;981:14960:100;;;;;;;;;;;9542:26;9538:76;;-1:-1:-1;;981:14960:100;;;;;-1:-1:-1;981:14960:100;;;;;;9665:27;;981:14960;;9665:27;1805:1:29;-1:-1:-1;;;;;;;;;;;981:14960:100;;9538:76;981:14960;;-1:-1:-1;;;9591:12:100;;981:14960;;9591:12;981:14960;;;;;;-1:-1:-1;;981:14960:100;;;;;;1718:31:101;981:14960:100;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3217:103:29;;:::i;:::-;-1:-1:-1;;;;;981:14960:100;;;;;3474:24;;3470:81;;-1:-1:-1;981:14960:100;;;;3565:55;;;981:14960;3561:118;;981:14960;;-1:-1:-1;;;3713:43:100;;;3750:4;3713:43;;;981:14960;;;;;;;;;;;;;;;;;;;;;;;;;3713:43;;;;;;;;;;-1:-1:-1;3713:43:100;;;981:14960;;3829:6;981:14960;;;3750:4;;3802:10;;3829:6;;:::i;:::-;-1:-1:-1;981:14960:100;;;3864:43;;;3750:4;3864:43;;;981:14960;;;;;;;;;;3864:43;981:14960;;;;;;3864:43;981:14960;;;;;3864:43;;;;;;;:59;:43;-1:-1:-1;3864:43:100;;;981:14960;3864:59;;;:::i;:::-;3938:20;;;3934:79;;981:14960;;;;;4027:64;;981:14960;4023:123;;5173:21:101;;981:14960:100;5173:21:101;4502:93:100;5173:21:101;;:::i;:::-;4803:22;4426:66:100;4803:22:101;;:::i;:::-;4349:67:100;390:70:92;;;;;:::i;:::-;837:15:63;4385:30:100;837:15:63;819:34;837:15;819:34;:::i;:::-;4385:30:100;;:::i;:::-;4349:67;;:::i;:::-;837:15:63;;4463:28:100;837:15:63;819:34;837:15;819:34;:::i;4463:28:100:-;4426:66;;:::i;:::-;-1:-1:-1;;;;;;;981:14960:100;;;;;;5606:15:101;981:14960:100;;;;;837:15:63;4553:41:100;837:15:63;5606:33:101;:24;819:34:63;837:15;819:34;:::i;:::-;-1:-1:-1;;;;;981:14960:100;;;;;;;5606:15:101;981:14960:100;;;;;;;5606:33:101;4553:41:100;:::i;:::-;4502:93;;:::i;:::-;-1:-1:-1;;981:14960:100;;;;;;;;;;;3802:10;;4611:62;;981:14960;;4611:62;3282:1:29;1805;-1:-1:-1;;;;;;;;;;;981:14960:100;3716:283:29;3282:1;981:14960:100;;;;;;;;;;;;;;;;;;;4023:123;981:14960;;-1:-1:-1;;;4114:21:100;;;4027:64;5173:21:101;4045:31:100;5173:21:101;;;:::i;4045:31:100:-;981:14960;;-1:-1:-1;4027:64:100;;3934:79;-1:-1:-1;981:14960:100;;-1:-1:-1;;;3981:21:100;;;3864:43;;;;;;-1:-1:-1;3864:43:100;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;;:::i;3713:::-;3829:6;3713:43;;;;;;;;;;;;;;;:::i;:::-;;;;;3561:118;-1:-1:-1;981:14960:100;;-1:-1:-1;;;3643:25:100;;;3565:55;-1:-1:-1;3609:10:100;981:14960;;;;3586:22;981:14960;;;;;;;;3585:35;3565:55;;3470:81;981:14960;;-1:-1:-1;;;3521:19:100;;;981:14960;;;;;;-1:-1:-1;;981:14960:100;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;981:14960:100;;;;;1805:27:101;981:14960:100;;;;;;;;;;;;;;;-1:-1:-1;;981:14960:100;;;;;;1968:34:101;981:14960:100;;;;;;;;;;;;;;;-1:-1:-1;;981:14960:100;;;;;;;;;;:::i;:::-;;;;;-1:-1:-1;;;;;981:14960:100;;;;;;;;;:::i;:::-;;;;;4622:48:101;981:14960:100;;;:::i;:::-;4622:48:101;;:::i;981:14960:100:-;;;;;;-1:-1:-1;;981:14960:100;;;;;;;;;:::i;:::-;3217:103:29;;:::i;:::-;3202:4:24;;:::i;:::-;-1:-1:-1;981:14960:100;;;;;;;;;;;;;10370:24;10366:74;;-1:-1:-1;;981:14960:100;;;;;;;;-1:-1:-1;981:14960:100;;;;;;10489:25;;981:14960;;10489:25;3282:1:29;1805;-1:-1:-1;;;;;;;;;;;981:14960:100;3716:283:29;981:14960:100;;;;;;-1:-1:-1;;981:14960:100;;;;;-1:-1:-1;;;;;;;;;;;;;;;;981:14960:100;;;;;;;;;;;;;;-1:-1:-1;;981:14960:100;;;;;;:::i;:::-;;;;;;:::i;:::-;-1:-1:-1;;;;;981:14960:100;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;8837:64:26;;981:14960:100;;;;;;734:29:76;730:87;;981:14960:100;;;;;6431:44:26;;;;;981:14960:100;6427:105:26;;;6656:20;981:14960:100;6656:20:26;981:14960:100;1167:340:76;981:14960:100;;;;-1:-1:-1;;;;;981:14960:100;;;;;6575:22:26;-1:-1:-1;;;;;;;;;;;;;;981:14960:100;;;;;;;;;6575:22:26;1167:340:76;:::i;:::-;-1:-1:-1;;;;;;;;;;;981:14960:100;;-1:-1:-1;;981:14960:100;;;;;-1:-1:-1;;;;;981:14960:100;;;;;;;;;;;;;6656:20:26;;;;981:14960:100;6431:44:26;981:14960:100;;;;;-1:-1:-1;6450:25:26;6431:44;;;730:87:76;981:14960:100;;-1:-1:-1;;;786:20:76;;981:14960:100;;786:20:76;981:14960:100;;;;;;-1:-1:-1;;981:14960:100;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;-1:-1:-1;;981:14960:100;;;;;;-1:-1:-1;981:14960:100;2431:59:101;981:14960:100;;;;-1:-1:-1;981:14960:100;;;;;;;;;;;;;;-1:-1:-1;;981:14960:100;;;;3875:17:101;981:14960:100;;3895:30:101;981:14960:100;;;;;3895:14:101;;;:::i;:::-;981:14960:100;;;3895:30:101;;:::i;:::-;981:14960:100;;;;;;;3874:63:101;981:14960:100;3874:63:101;;:::i;:::-;981:14960:100;;;;;;;;;;;;;-1:-1:-1;;981:14960:100;;;;;;1200:42:101;-1:-1:-1;;;;;981:14960:100;;;;;;;;;;;;-1:-1:-1;;981:14960:100;;;;;;2136:32:101;981:14960:100;;;;;;;;;;;;;;;;;;-1:-1:-1;;981:14960:100;;;;2303:62:25;;:::i;:::-;-1:-1:-1;;;;;;;;;;;981:14960:100;;-1:-1:-1;;;;;;981:14960:100;;;;;;;-1:-1:-1;;;;;981:14960:100;3975:40:25;981:14960:100;;3975:40:25;981:14960:100;;;;;;;-1:-1:-1;;981:14960:100;;;;;;;;;;;:::i;:::-;3217:103:29;;:::i;:::-;7131:7:100;981:14960;7117:21;;-1:-1:-1;;;;;981:14960:100;;-1:-1:-1;;;;;981:14960:100;;;7117:21;:10;:21;7113:71;;7218:14;;:::i;:::-;7265:25;;;;:::i;:::-;7305:17;;;;:53;;;981:14960;7304:87;;;;981:14960;7300:146;;981:14960;5173:21:101;9310:48:100;5173:21:101;;;:::i;:::-;7540:17:100;7528:30;7540:17;;;:::i;:::-;981:14960;;7528:11;981:14960;;;;;;;7528:30;981:14960;;7572:29;;;;;7642:30;;;;;:::i;:::-;7702:32;;;;:::i;:::-;7752:17;;;7748:384;;7568:1615;;;;;;;9197:17;9193:102;;7568:1615;981:14960;;;;;;;;;;;;;;;;;;;;;;;9310:48;3282:1:29;1805;-1:-1:-1;;;;;;;;;;;981:14960:100;3716:283:29;3282:1;981:14960:100;;;;;;;;;;;;;9193:102;-1:-1:-1;981:14960:100;9270:13;;981:14960;;9230:18;;981:14960;;-1:-1:-1;;;;;981:14960:100;;;9230:18;7556:1;981:14960;-1:-1:-1;;;;;981:14960:100;9270:13;;:::i;:::-;9193:102;;7748:384;8045:29;7813:50;7962:65;7813:50;7998:28;7914:29;7813:50;8057:16;7813:50;8077:40;7813:50;;;:::i;:::-;7914:29;;;:::i;:::-;837:15:63;819:34;837:15;819:34;:::i;:::-;7998:28:100;;:::i;8077:40::-;8057:16;;:::i;8045:29::-;981:14960;7748:384;;;;;;;7568:1615;8185:26;;;;981:14960;;7528:11;981:14960;;;;;;;8185:26;981:14960;8250:27;:45;:27;;;;;:::i;:45::-;8325:32;;;;;:::i;:::-;8375:17;;8371:802;;7568:1615;;;;;;;;8371:802;9096:26;8436:50;;8537:53;8436:50;8637:54;8436:50;8637:29;8436:50;9125:33;8436:50;;;;:::i;:::-;8537:53;;;;;;:::i;:::-;8637:29;;;;:::i;:::-;:54;:::i;:::-;8714:33;;;;8710:194;;8371:802;8922:65;837:15:63;8958:28:100;9038:40;837:15:63;;;819:34;837:15;819:34;:::i;9038:40:100:-;9005:30;9017:17;;;:::i;9005:30::-;981:14960;9125:33;:::i;:::-;9096:26;981:14960;;7528:11;981:14960;;;;;;;9096:26;981:14960;8371:802;;;;;;;8710:194;8797:33;8771:59;8922:65;8797:33;;;9038:40;8797:33;;;:::i;:::-;8771:59;;:::i;:::-;8852:33;;-1:-1:-1;8852:33:100;;-1:-1:-1;8710:194:100;;7300:146;981:14960;;-1:-1:-1;;;7414:21:100;;981:14960;;7414:21;7304:87;7363:28;;;;7304:87;;7305:53;7341:17;;;;:::i;:::-;7326:32;;7305:53;;7113:71;981:14960;;-1:-1:-1;;;7161:12:100;;981:14960;;7161:12;981:14960;;;;;;-1:-1:-1;;981:14960:100;;;;4384:17:101;981:14960:100;;;;;;;4405:14:101;;;:::i;:::-;4384:17;981:14960:100;;;;;;;4404:36:101;981:14960:100;;;4404:36:101;;:::i;981:14960:100:-;;;;;;-1:-1:-1;;981:14960:100;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;981:14960:100;;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;981:14960:100;2307:68:101;981:14960:100;;;;;-1:-1:-1;981:14960:100;;;;;;;;;;;;;;;;;-1:-1:-1;;981:14960:100;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;-1:-1:-1;;981:14960:100;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;981:14960:100;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6491:14;981:14960;;6491:14;;:::i;981:14960::-;;;;;4994:47:101;981:14960:100;;;:::i;:::-;4994:47:101;;:::i;981:14960:100:-;;;;;;;;;;;;;;;;;;;;:::i;:::-;3217:103:29;;:::i;:::-;10932:22:100;981:14960;;;;;10928:89;;981:14960;;-1:-1:-1;;;11032:49:100;;-1:-1:-1;;;;;981:14960:100;;;11032:49;;;981:14960;;;;;;;;;;;;;;;11032:49;11042:17;;;981:14960;11032:49;;;;;;;-1:-1:-1;11032:49:100;;;981:14960;11031:50;;11027:102;;981:14960;;-1:-1:-1;;;11143:34:100;;981:14960;;;;;11143:34;981:14960;11143:34;981:14960;;11143:34;;;;;;;-1:-1:-1;11143:34:100;;;981:14960;11189:4;;;981:14960;;11143:51;11139:107;;-1:-1:-1;10932:22:100;981:14960;;-1:-1:-1;;;;;981:14960:100;;;;-1:-1:-1;;;;;;981:14960:100;;;;;;;-1:-1:-1;;;981:14960:100;;;11334:24;-1:-1:-1;;11334:24:100;3282:1:29;1805;-1:-1:-1;;;;;;;;;;;981:14960:100;3716:283:29;11139:107:100;981:14960;;-1:-1:-1;;;11217:18:100;;;11143:34;;;;;;;-1:-1:-1;11143:34:100;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;11027:102;-1:-1:-1;981:14960:100;;-1:-1:-1;;;11104:14:100;;;11032:49;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;10928:89;981:14960;;-1:-1:-1;;;10977:29:100;;;981:14960;;;;;;-1:-1:-1;;981:14960:100;;;;;;1298:40:101;-1:-1:-1;;;;;981:14960:100;;;;;;;;;;;;-1:-1:-1;;981:14960:100;;;;1703:14;;:::i;:::-;5173:21:101;;:::i;:::-;981:14960:100;;;;1750:11;981:14960;;;;;;;;;;;;;1791:1;981:14960;;;;;;;;;1750:11;981:14960;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;981:14960:100;;;;-1:-1:-1;;;;;;;;;;;981:14960:100;;;-1:-1:-1;;;;;981:14960:100;;;;;;;;;;;;;;-1:-1:-1;;981:14960:100;;;;;;3901:31:24;981:14960:100;;;;;:::i;:::-;;;-1:-1:-1;981:14960:100;-1:-1:-1;;;;;;;;;;;981:14960:100;;;-1:-1:-1;981:14960:100;;;;;;;;;;;;;;;;;3901:31:24;981:14960:100;;;;;;;;;;;;;;;;-1:-1:-1;;981:14960:100;;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;981:14960:100;5606:15:101;981:14960:100;;;5606:33:101;981:14960:100;-1:-1:-1;981:14960:100;5606:33:101;:::i;981:14960:100:-;;;;;;-1:-1:-1;;981:14960:100;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;981:14960:100;;;;-1:-1:-1;981:14960:100;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;416:25:80;;;;477:31;981:14960:100;416:25:80;;:::i;:::-;981:14960:100;;;;;;;;;477:31:80;;;981:14960:100;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;981:14960:100;;;;;;;;;;;;;;477:31:80;981:14960:100;477:31:80;;;;;;;:::i;:::-;518:79;;;981:14960:100;518:79:80;;981:14960:100;;;;;;-1:-1:-1;;981:14960:100;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;981:14960:100;;;;;;;;;;;;;;;;;-1:-1:-1;;981:14960:100;;;;;;;1109:35:101;981:14960:100;;;;;;;;;-1:-1:-1;;981:14960:100;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;3217:103:29;;:::i;:::-;3202:4:24;;:::i;:::-;-1:-1:-1;;;;;981:14960:100;;;9907:21;;9903:75;;-1:-1:-1;981:14960:100;;;9992:22;981:14960;;;;;;;;;;;;;9992:41;9988:91;;-1:-1:-1;;;;;981:14960:100;;;;;3586:22;981:14960;;;;;10145:44;;;;10089:40;;:31;981:14960;;;;;;;;;;;;;;10089:40;981:14960;;;;;;;;;;;;;;;10145:44;;;;3282:1:29;1805;-1:-1:-1;;;;;;;;;;;981:14960:100;3716:283:29;9903:75:100;981:14960;;-1:-1:-1;;;9951:16:100;;981:14960;;9951:16;981:14960;;;;;;-1:-1:-1;;981:14960:100;;;;;2666:94:101;981:14960:100;;;;;:::i;:::-;;;-1:-1:-1;981:14960:100;2666:94:101;981:14960:100;;;-1:-1:-1;981:14960:100;;;;;;;;;;;;;;;;;2666:94:101;981:14960:100;;;;;;;;;;;;;-1:-1:-1;;981:14960:100;;;;;;2816:92:101;981:14960:100;;;;;:::i;:::-;;;-1:-1:-1;981:14960:100;2816:92:101;981:14960:100;;;-1:-1:-1;981:14960:100;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3217:103:29;;:::i;:::-;11459:20:100;981:14960;;;;;11455:85;;-1:-1:-1;;;;;981:14960:100;;;;;;11550:312;;981:14960;11459:20;981:14960;;-1:-1:-1;;;;981:14960:100;-1:-1:-1;;;981:14960:100;;;11872:27;11915:20;-1:-1:-1;11915:20:100;;3282:1:29;1805;-1:-1:-1;;;;;;;;;;;981:14960:100;3716:283:29;11550:312:100;981:14960;;-1:-1:-1;;;11597:45:100;;-1:-1:-1;;;;;981:14960:100;;11597:45;;;981:14960;;;11597:45;;981:14960;;;;;;11597:45;11607:15;;;981:14960;11597:45;;;;;;;-1:-1:-1;11597:45:100;;;11550:312;11596:46;;11592:104;;981:14960;;-1:-1:-1;;;11714:30:100;;;981:14960;11714:30;981:14960;11714:30;;;;;;;;-1:-1:-1;11714:30:100;;;11550:312;11756:4;;;981:14960;;11714:47;11710:109;;-1:-1:-1;11459:20:100;981:14960;;-1:-1:-1;;;;;;981:14960:100;-1:-1:-1;;;;;981:14960:100;;;;;;;;;11550:312;;;;;;11710:109;981:14960;;-1:-1:-1;;;11788:16:100;;;11714:30;;;;;;;-1:-1:-1;11714:30:100;;;;;;:::i;:::-;;;;;;11592:104;981:14960;;-1:-1:-1;;;11669:12:100;;981:14960;;11669:12;11597:45;;;;;;;;;;;;;;:::i;:::-;;;;11455:85;981:14960;;-1:-1:-1;;;11502:27:100;;;981:14960;;;;;;-1:-1:-1;;981:14960:100;;;;;;;;;:::i;:::-;;;3217:103:29;;;:::i;:::-;-1:-1:-1;;;;;981:14960:100;;;;;6112:23;;6108:79;;6273:6;981:14960;6206:13;;;;:::i;:::-;981:14960;;;-1:-1:-1;981:14960:100;;;;6273:6;:::i;:::-;981:14960;;;;;;;;;;;;6302:10;;6296:43;;981:14960;6296:43;1805:1:29;-1:-1:-1;;;;;;;;;;;981:14960:100;;;;;;;;;;;;;;6108:79;981:14960;;-1:-1:-1;;;6158:18:100;;981:14960;;6158:18;981:14960;;;;;;-1:-1:-1;;981:14960:100;;;;;;-1:-1:-1;981:14960:100;2546:64:101;981:14960:100;;;;-1:-1:-1;981:14960:100;;;;;;;;;;;;;;-1:-1:-1;;981:14960:100;;;;2058:22:101;981:14960:100;;;-1:-1:-1;;;;;981:14960:100;;;;;;;;;;;;;;-1:-1:-1;;981:14960:100;;;;;5173:21:101;;:::i;981:14960:100:-;;;;;;-1:-1:-1;;981:14960:100;;;;;;3217:103:29;;:::i;:::-;966:10:28;-1:-1:-1;981:14960:100;;;;;;;;;;1109:35:101;;981:14960:100;;4468:23:24;4464:108;;981:14960:100;;;;10692:21;10688:71;;981:14960;;10805:22;981:14960;;;;;;;;10805:22;1805:1:29;-1:-1:-1;;;;;;;;;;;981:14960:100;;4464:108:24;981:14960:100;;;;4514:47:24;;;;;;966:10:28;981:14960:100;4514:47:24;;981:14960:100;;;;;4514:47:24;981:14960:100;;;;;;-1:-1:-1;;981:14960:100;;;;;4803:22:101;;:::i;981:14960:100:-;;;;;;-1:-1:-1;;981:14960:100;;;;;;;;;:::i;:::-;3123:14;;:::i;:::-;3154:24;;;:::i;:::-;3181:29;;;;;:::i;:::-;981:14960;;;;;;;3235:1;981:14960;;;;;;;3213:33;;;:::i;:::-;981:14960;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;981:14960:100;;;;1888:24:101;981:14960:100;;;-1:-1:-1;;;;;981:14960:100;;;;;;;;;;;;;;-1:-1:-1;;981:14960:100;;;;5767:26:24;981:14960:100;;;;;;;:::i;:::-;;-1:-1:-1;981:14960:100;-1:-1:-1;;;;;;;;;;;981:14960:100;;3202:4:24;4919:24;981:14960:100;-1:-1:-1;981:14960:100;4919:24:24;981:14960:100;3202:4:24;:::i;:::-;5767:26;:::i;981:14960:100:-;;;;;;-1:-1:-1;;981:14960:100;;;;;;;;;;;;;-1:-1:-1;;;;;981:14960:100;;;;;;;;;;;;-1:-1:-1;;981:14960:100;;;;;;;675:39:101;981:14960:100;;;;;;;;;-1:-1:-1;;981:14960:100;;;;;;;;;;;;;;;;;;;-1:-1:-1;;981:14960:100;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;-1:-1:-1;;;;;981:14960:100;;;;;;;;;;;;;;;:::i;:::-;1972:48;;981:14960;;;;;;;:::i;:::-;;;;;;;;;;;;;;2034:16;;2030:111;;981:14960;;2233:39;1057:70:92;2233:39:100;;4622:48:101;2196:77:100;2233:39;;;;2196:77;;:::i;:::-;2312:36;;4994:47:101;981:14960:100;2312:36;;;4994:47:101;;:::i;:::-;2389:37:100;;;4622:48:101;;:::i;:::-;1057:70:92;;:::i;:::-;981:14960:100;;;;;;;;;;;;;2030:111;2089:41;;;;-1:-1:-1;981:14960:100;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;4622:48:101;981:14960:100;2196:77;981:14960;1057:70:92;981:14960:100;;;:::i;:::-;;;;;2030:111;;;;;981:14960;;;;;;-1:-1:-1;;981:14960:100;;;;2357:1:25;981:14960:100;;;;;:::i;:::-;2303:62:25;;:::i;:::-;2357:1;:::i;981:14960:100:-;;;;;;-1:-1:-1;;981:14960:100;;;;;;;;;:::i;:::-;;;3217:103:29;;:::i;:::-;-1:-1:-1;;;;;981:14960:100;;4890:21;4886:75;;4975:11;;4971:73;;845:69:92;4803:22:101;;:::i;:::-;5173:21;;:::i;:::-;845:69:92;;;:::i;:::-;5180:10:100;981:14960;;;;5606:15:101;981:14960:100;;;;;5180:10;;;5606:33:101;;;:::i;:::-;5150:41:100;;5146:96;;5267:40;;;;;:::i;5146:96::-;981:14960;;-1:-1:-1;;;5214:17:100;;981:14960;;5214:17;4971:73;981:14960;;-1:-1:-1;;;5009:24:100;;981:14960;;5009:24;981:14960;;;;;;-1:-1:-1;;981:14960:100;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;981:14960:100;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;:::o;:::-;;7556:1;981:14960;;;;;;;:::o;:::-;;;;;;;;;;:::o;5256:193:101:-;-1:-1:-1;;;;;981:14960:100;-1:-1:-1;981:14960:100;;;5383:15:101;981:14960:100;;;;;5383:59:101;;5256:193;;5383:59;:::i;981:14960:100:-;;;;;;;;;;;:::o;:::-;;;;;;;;;;1167:340:76;;13510:30:100;1167:340:76;981:14960:100;1167:340:76;6893:76:26;;:::i;:::-;;;:::i;:::-;1805:1:29;-1:-1:-1;;;;;;;;;;;981:14960:100;-1:-1:-1;;;;;981:14960:100;;;;1376:73:76;;1167:340;981:14960:100;;;;:::i;:::-;13510:30;981:14960;;;13510:30;;;;;;:::i;:::-;981:14960;;;;-1:-1:-1;;;;;981:14960:100;13555:31;13551:88;;13653:20;;;;981:14960;;;;;;;;;;13653:25;13649:85;;13748:29;;;981:14960;;13748:29;;981:14960;13748:43;;-1:-1:-1;;;;;981:14960:100;;;13748:43;;13744:943;;1167:340:76;981:14960:100;;;15647:32;981:14960;14817:36;981:14960;;;14697:30;981:14960;;;;;;;;;;;;1398:1:76;981:14960:100;;-1:-1:-1;;;;;;981:14960:100;;;;;;-1:-1:-1;;;;;981:14960:100;;;;;;;;14697:30;13510;14747:13;;981:14960;;;;-1:-1:-1;;;;;;981:14960:100;-1:-1:-1;;;;;981:14960:100;;;;;;;;;14771:36;819:34:63;837:15;819:34;:::i;:::-;1805:1:29;981:14960:100;;-1:-1:-1;;;;981:14960:100;;;;;;-1:-1:-1;;;981:14960:100;;;;;;;;14771:36;981:14960;;;;;;1805:1:29;981:14960:100;;-1:-1:-1;;;;;981:14960:100;;;;;;-1:-1:-1;;;;;;981:14960:100;;;;;;;;14817:36;14864:42;981:14960;14883:23;;;981:14960;;;;;;;;;1398:1:76;981:14960:100;;;;;;;1398:1:76;981:14960:100;;14864:42;14917:38;981:14960;14934:21;;;981:14960;;;;;;;1398:1:76;981:14960:100;;;;;;;;;;;;1398:1:76;981:14960:100;;14917:38;14965:34;14980:19;;;981:14960;14965:34;981:14960;;14965:34;981:14960;-1:-1:-1;;;;;981:14960:100;;;;;;;15010:135;;1167:340:76;-1:-1:-1;15158:36:100;;;981:14960;-1:-1:-1;;;;;981:14960:100;;;;15154:157;;1167:340:76;-1:-1:-1;15324:35:100;;;981:14960;-1:-1:-1;;;;;981:14960:100;;;;15320:153;;1167:340:76;-1:-1:-1;15486:34:100;;;981:14960;-1:-1:-1;;;;;981:14960:100;;;;15482:152;;1167:340:76;-1:-1:-1;15647:32:100;981:14960;-1:-1:-1;;;;;981:14960:100;;;;;;;15643:145;;1167:340:76;:::o;15643:145:100:-;15709:68;;;:::i;:::-;;1167:340:76:o;15482:152:100:-;15550:73;;;:::i;:::-;;15482:152;;;15320:153;15389:73;;;:::i;:::-;;15320:153;;;15154:157;15224:76;;;:::i;:::-;;15154:157;;;15010:135;15073:61;;;:::i;:::-;;15010:135;;;13744:943;13811:36;;;981:14960;13811:50;;-1:-1:-1;;;;;981:14960:100;;;13811:50;;13807:405;;13744:943;14230:34;;;981:14960;14230:48;;-1:-1:-1;;;;;981:14960:100;;;14230:48;13744:943;14226:451;14302:21;;;981:14960;;14302:21;;14351:19;;;981:14960;14351:24;:74;;;14298:365;14347:150;;14298:365;;981:14960;15647:32;14298:365;14817:36;981:14960;;14298:365;;14226:451;;;;;;;13744:943;;14347:150;981:14960;-1:-1:-1;;;14460:14:100;;;;;14351:74;-1:-1:-1;14379:32:100;;;981:14960;14379:46;;-1:-1:-1;;;;;981:14960:100;;;14379:46;;14351:74;;14298:365;14525:19;;;981:14960;14525:24;;;:74;;;14298:365;14521:142;;14298:365;;981:14960;15647:32;14298:365;14817:36;981:14960;;14298:365;;;14525:74;-1:-1:-1;14553:32:100;;;981:14960;14553:46;;-1:-1:-1;;;;;981:14960:100;;;14553:46;;;14525:74;;13807:405;13885:23;;;981:14960;;13885:23;;13936:35;;;981:14960;13936:49;;-1:-1:-1;;;;;981:14960:100;;;13936:49;13807:405;13932:125;981:14960;-1:-1:-1;;;14020:14:100;;;;;13881:317;14085:35;;;981:14960;14085:49;;-1:-1:-1;;;;;981:14960:100;;;14085:49;14081:117;13807:405;14081:117;981:14960;-1:-1:-1;;;14165:14:100;;;;;13649:85;981:14960;;-1:-1:-1;;;13701:22:100;;;;;13551:88;981:14960;;-1:-1:-1;;;13609:19:100;;;;;1376:73:76;6961:1:26;6893:76;;;:::i;:::-;;;:::i;6961:1::-;1376:73:76;;;2492:191:100;-1:-1:-1;;;;;981:14960:100;-1:-1:-1;981:14960:100;;;5606:15:101;981:14960:100;;;;;5606:33:101;;;:::i;:::-;5173:21;;:::i;:::-;4803:22;;:::i;:::-;981:14960:100;1884:1:92;981:14960:100;;;;;;;1884:1:92;981:14960:100;;;;;;;8188:25:58;;;:::i;981:14960:100:-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;:::i;3612:132:101:-;819:34:63;837:15;819:34;:::i;:::-;3683:54:101;3703:17;981:14960:100;3684:36:101;981:14960:100;;;;;;;3684:36:101;;:::i;:::-;981:14960:100;;;3683:54:101;;:::i;:::-;981:14960:100;3612:132:101;:::o;3313:244::-;3418:17;981:14960:100;;;;;;;;;;;;;;3406:29:101;3402:85;;3503:47;3504:29;;;;:::i;3402:85::-;981:14960:100;;-1:-1:-1;;;3458:18:101;;;;;3217:103:29;;;;:::i;:::-;981:14960:100;;-1:-1:-1;;;;;981:14960:100;;;6521:23;;6517:79;;6650:11;;6646:70;;981:14960;6742:10;;;;;;-1:-1:-1;981:14960:100;;6887:49;;981:14960;;;;6864:6;;981:14960;;6821:18;;981:14960;;-1:-1:-1;;;;;981:14960:100;;;6821:18;6864:6;:::i;:::-;6887:49;981:14960;;6898:10;;;;6887:49;;;:::i;:::-;;;;3282:1:29;;1805;-1:-1:-1;;;;;;;;;;;981:14960:100;3716:283:29;6754:3:100;6790:9;6773:27;981:14960;6790:9;6783:17;6790:9;;;;;:::i;:::-;981:14960;6783:17;:::i;6773:27::-;6754:3;981:14960;6731:9;;6646:70;981:14960;;-1:-1:-1;;;6684:21:100;;;;;981:14960;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;981:14960:100;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;-1:-1:-1;981:14960:100;;;;:::o;:::-;;;:::o;3405:215:25:-;-1:-1:-1;;;;;981:14960:100;;;;3489:22:25;;3485:91;;-1:-1:-1;;;;;;;;;;;981:14960:100;;-1:-1:-1;;;;;;981:14960:100;;;;;;;;3975:40:25;-1:-1:-1;;3975:40:25;3405:215::o;3485:91::-;981:14960:100;;-1:-1:-1;;;3534:31:25;;3509:1;3534:31;;;981:14960:100;;;3534:31:25;2731:227:100;;2871:34;2731:227;981:14960;-1:-1:-1;981:14960:100;2871:18;981:14960;;;-1:-1:-1;981:14960:100;;;;;;;;;;;;;;;;;2871:34;981:14960;;-1:-1:-1;981:14960:100;2907:11;981:14960;;;-1:-1:-1;981:14960:100;;2927:16;981:14960;;;-1:-1:-1;981:14960:100;;;1884:1:92;981:14960:100;;;;;;;1884:1:92;981:14960:100;;;;;;;8188:25:58;;;:::i;3326:384:29:-;-1:-1:-1;;;;;;;;;;;1847:1:29;981:14960:100;;3526:20:29;3522:88;;1847:1;981:14960:100;;3326:384:29:o;3522:88::-;981:14960:100;;-1:-1:-1;;;3569:30:29;;;;;11948:968:100;12135:10;981:14960;;;;5606:15:101;981:14960:100;;;;;;11948:968;;;819:34:63;837:15;819:34;:::i;:::-;12135:10:100;981:14960;;;;5606:15:101;981:14960:100;;;;;5606:33:101;;;:::i;:::-;981:14960:100;;;;;;;;;12119:93;12835:74;12119:93;;;12660:30;12119:93;;:::i;:::-;837:15:63;;12222:67:100;819:34:63;837:15;819:34;:::i;:::-;12259:29:100;4803:22:101;;;:::i;12222:67:100:-;837:15:63;;12299:68:100;819:34:63;837:15;819:34;:::i;:::-;12335:31:100;5173:21:101;;;:::i;12299:68:100:-;12394:14;;12769:34;12394:14;12769:25;12394:18;:14;;:::i;:::-;:18;:::i;:::-;12726:33;12445:18;;981:14960;;7528:11;981:14960;;;;;;;12445:18;981:14960;12502:23;;981:14960;;12502:16;981:14960;;;;;;;12502:23;981:14960;390:70:92;;;;;:::i;:::-;12660:30:100;;;;;;:::i;:::-;12639:18;;981:14960;;7528:11;981:14960;;;;;;;12639:18;981:14960;12726:33;:::i;:::-;12700:23;;981:14960;;12502:16;981:14960;;;;;;;12700:23;981:14960;;;12769:18;981:14960;;;;;;;12769:25;981:14960;;;;;;;;;;;;;;;;12769:34;:50;981:14960;;;12769:50;:::i;:::-;981:14960;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;981:14960:100;;;;12135:10;;981:14960;;12835:74;11948:968::o;14291:213:59:-;981:14960:100;14369:24:59;;;;14365:103;;981:14960:100;14291:213:59;:::o;14365:103::-;981:14960:100;;;;14416:41:59;;;;;;14447:2;14416:41;;;981:14960:100;;;;;14416:41:59;981:14960:100;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;:::o;7558:604:91:-;;981:14960:100;;7686:17:91;7682:83;;981:14960:100;7789:27:91;981:14960:100;7789:27:91;981:14960:100;;7789:27:91;;;;;;:::i;:::-;7860:14;;;:::i;:::-;981:14960:100;;;;;;;;;;;;;;;;7888:22:91;;;7884:77;;7975:21;-1:-1:-1;7975:84:91;;;;7558:604;7971:139;;;;8127:28;;;;:::i;7971:139::-;7789:27;8082:17;;;981:14960:100;8075:24:91;:::o;7975:84::-;981:14960:100;;;8009:16:91;4622:13:101;981:14960:100;8009:16:91;:::i;:::-;981:14960:100;;;8001:24:91;:57;;;;;7975:84;;;;;;;8001:57;8029:29;8038:8;;;8029:18;8038:8;8029:23;8038:8;;:::i;:::-;8029:18;:::i;:23::-;981:14960:100;;;;8029:29:91;;8001:57;;;;7884:77;7933:17;;;7789:27;7933:17;;;981:14960:100;7926:24:91;:::o;7682:83::-;7726:28;;;;:::i;7558:604::-;;981:14960:100;;7686:17:91;7682:83;;981:14960:100;7789:27:91;981:14960:100;7789:27:91;981:14960:100;;7789:27:91;;;;;;:::i;:::-;7860:14;;;:::i;:::-;981:14960:100;;;;;;;;;;;;;;;;7888:22:91;;;7884:77;;7975:21;-1:-1:-1;7975:84:91;;;;7558:604;7971:139;;;;8127:28;;;;:::i;7975:84::-;981:14960:100;;;8009:16:91;4994:12:101;981:14960:100;8009:16:91;:::i;:::-;981:14960:100;;;8001:24:91;:57;;;;;7975:84;;;;;;;8001:57;8029:29;8038:8;;;8029:18;8038:8;8029:23;8038:8;;:::i;:::-;8029:18;:::i;:29::-;;8001:57;;;;7682:83;7726:28;;;;:::i;7558:604::-;;981:14960:100;;7686:17:91;7682:83;;981:14960:100;7789:27:91;981:14960:100;7789:27:91;981:14960:100;;7789:27:91;;;;;;:::i;:::-;7860:14;;;;;:::i;:::-;981:14960:100;;;;;;;;;;;;;;;;7888:22:91;;;7884:77;;7975:21;-1:-1:-1;7975:84:91;;;;7558:604;7971:139;;;;8127:28;;;;:::i;7971:139::-;8082:17;;7789:27;8082:17;981:14960:100;8075:24:91;:::o;7975:84::-;981:14960:100;;;8009:16:91;981:14960:100;;8009:16:91;:::i;:::-;981:14960:100;;;8001:24:91;:57;;;;;7975:84;;;;;;;8001:57;8029:29;8038:8;;;8029:18;8038:8;8029:23;8038:8;;:::i;:::-;8029:18;;:::i;:29::-;;8001:57;;;;7884:77;7933:17;;;;;7789:27;7933:17;981:14960:100;7926:24:91;:::o;7682:83::-;7726:28;;;;:::i;4148:103:24:-;966:10:28;-1:-1:-1;981:14960:100;;;;;;;;;675:39:101;;981:14960:100;;3901:31:24;981:14960:100;;4468:23:24;4464:108;;4148:103;:::o;:::-;966:10:28;-1:-1:-1;981:14960:100;;;;;;;;;966:38:101;;981:14960:100;;3901:31:24;981:14960:100;4148:103:24;966:10:28;-1:-1:-1;981:14960:100;;;;;;;;;821:37:101;;981:14960:100;;3901:31:24;981:14960:100;4148:103:24;-1:-1:-1;981:14960:100;;;-1:-1:-1;;;;;;;;;;;981:14960:100;;;;;;;;966:10:28;981:14960:100;;;;;;;;;3901:31:24;981:14960:100;7270:387:24;-1:-1:-1;;;;;981:14960:100;;1398:1:76;981:14960:100;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2887:71:24;981:14960:100;;;;1398:1:76;981:14960:100;;;;;;;;;;;-1:-1:-1;;;;;981:14960:100;;;;;;;;;;-1:-1:-1;;981:14960:100;7509:4:24;981:14960:100;;;966:10:28;;-1:-1:-1;;;;;981:14960:100;-1:-1:-1;7532:40:24;-1:-1:-1;;7532:40:24;7509:4;7586:11;:::o;7432:219::-;7628:12;;1398:1:76;7628:12:24;:::o;7270:387::-;-1:-1:-1;;;;;981:14960:100;;-1:-1:-1;981:14960:100;;;;;;;;;675:39:101;;-1:-1:-1;;;;;;;;;;;2887:71:24;981:14960:100;;3901:31:24;981:14960:100;;;;-1:-1:-1;981:14960:100;;;;;;;;;;;-1:-1:-1;;;;;981:14960:100;;;;;;;;;;-1:-1:-1;;981:14960:100;7509:4:24;981:14960:100;;;966:10:28;;-1:-1:-1;;;;;981:14960:100;;7532:40:24;-1:-1:-1;;7532:40:24;7509:4;7586:11;:::o;7432:219::-;7628:12;;;-1:-1:-1;7628:12:24;:::o;7270:387::-;-1:-1:-1;;;;;981:14960:100;;-1:-1:-1;981:14960:100;;;;;;;;;821:37:101;;-1:-1:-1;;;;;;;;;;;2887:71:24;981:14960:100;;3901:31:24;981:14960:100;7270:387:24;-1:-1:-1;;;;;981:14960:100;;-1:-1:-1;981:14960:100;;;;;;;;;966:38:101;;-1:-1:-1;;;;;;;;;;;2887:71:24;981:14960:100;;3901:31:24;981:14960:100;7270:387:24;-1:-1:-1;;;;;981:14960:100;;-1:-1:-1;981:14960:100;;;;;;;;;1109:35:101;;-1:-1:-1;;;;;;;;;;;2887:71:24;981:14960:100;;3901:31:24;981:14960:100;7270:387:24;-1:-1:-1;981:14960:100;;;-1:-1:-1;;;;;;;;;;;981:14960:100;;;;;;;;-1:-1:-1;;;;;981:14960:100;;;;;;;;;;;;3901:31:24;981:14960:100;7892:388:24;-1:-1:-1;981:14960:100;;;-1:-1:-1;;;;;;;;;;;981:14960:100;;;;;;;;-1:-1:-1;;;;;981:14960:100;;;;;;;;;;;;;;;;-1:-1:-1;981:14960:100;;;;;;;;;;;-1:-1:-1;;;;;981:14960:100;;;;;;;;;;-1:-1:-1;;981:14960:100;;;966:10:28;;-1:-1:-1;;;;;981:14960:100;;8155:40:24;-1:-1:-1;;8155:40:24;981:14960:100;8209:11:24;:::o;1702:188:46:-;981:14960:100;;-1:-1:-1;;;1829:53:46;;;;-1:-1:-1;;;;;981:14960:100;;;1829:53:46;;;981:14960:100;;;;;;;;;;;;;;;;;1829:53:46;;;981:14960:100;;;;;;;-1:-1:-1;;;;;981:14960:100;;;;;1829:53:46;981:14960:100;;;1829:53:46;:::i;981:14960:100:-;7178:12:91;981:14960:100;;;;;;7178:12:91;-1:-1:-1;981:14960:100;-1:-1:-1;;;;;;;;;;;981:14960:100;;-1:-1:-1;981:14960:100;:::o;:::-;7178:12:91;981:14960:100;;;;;;7178:12:91;-1:-1:-1;981:14960:100;-1:-1:-1;;;;;;;;;;;981:14960:100;;-1:-1:-1;981:14960:100;:::o;:::-;;;;;;;;-1:-1:-1;981:14960:100;;-1:-1:-1;981:14960:100;;;-1:-1:-1;981:14960:100;:::o;:::-;6360:12:91;981:14960:100;-1:-1:-1;;;981:14960:100;;;;;;;;;6360:12:91;981:14960:100;;;;;;6360:12:91;-1:-1:-1;981:14960:100;-1:-1:-1;;;;;;;;;;;981:14960:100;;:::o;:::-;6360:12:91;981:14960:100;-1:-1:-1;;;981:14960:100;;;;;;;;;6360:12:91;981:14960:100;;;;;;6360:12:91;-1:-1:-1;981:14960:100;-1:-1:-1;;;;;;;;;;;981:14960:100;;:::o;:::-;;;;;-1:-1:-1;;;981:14960:100;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;6246:584:91;;;;6360:12;981:14960:100;;;6360:24:91;;6356:75;;6246:584;6474:30;;;:::i;:::-;981:14960:100;;;;;;6578:12:91;;;:::i;:::-;6604:24;;;;6246:584;-1:-1:-1;6600:188:91;;;-1:-1:-1;;;981:14960:100;;;;;;;;;-1:-1:-1;981:14960:100;;;-1:-1:-1;981:14960:100;;;;;;6798:25:91;981:14960:100;6246:584:91:o;6600:188::-;8167:38:61;;-1:-1:-1;;;;;981:14960:100;;-1:-1:-1;8167:38:61;:::i;:::-;6753:24:91;;;;;:::i;:::-;6798:25;6246:584;:::o;6604:24::-;981:14960:100;;;;;;6614:14:91;;-1:-1:-1;6604:24:91;;;6356:75;-1:-1:-1;;;981:14960:100;;;;;;;;;;;;;;;;-1:-1:-1;981:14960:100;;;;-1:-1:-1;;;;;;;;;;;981:14960:100;;6356:75:91;;;6246:584;;;;6360:12;981:14960:100;;;6360:24:91;;6356:75;;6246:584;6474:30;;;:::i;:::-;981:14960:100;;;;;;6578:12:91;;;:::i;:::-;6604:24;;;;6246:584;-1:-1:-1;6600:188:91;;;-1:-1:-1;;;981:14960:100;;;;;;;;;-1:-1:-1;981:14960:100;;;-1:-1:-1;981:14960:100;;;;;;6798:25:91;981:14960:100;6246:584:91:o;6600:188::-;8167:38:61;;-1:-1:-1;;;;;981:14960:100;;-1:-1:-1;8167:38:61;:::i;:::-;6753:24:91;;;;;:::i;6604:::-;981:14960:100;;;;;;6614:14:91;;-1:-1:-1;6604:24:91;;;6356:75;-1:-1:-1;;;981:14960:100;;;;;;;;;;;;;;;;-1:-1:-1;981:14960:100;;;;-1:-1:-1;;;;;;;;;;;981:14960:100;;6356:75:91;;;6246:584;;;;;6360:12;;;981:14960:100;;;6360:24:91;;6356:75;;6246:584;6474:30;;;;;:::i;:::-;981:14960:100;;;;;;6578:12:91;;;;:::i;:::-;6604:24;;;;6246:584;-1:-1:-1;6600:188:91;;;-1:-1:-1;;;;;981:14960:100;;;;;;;6644:21:91;;;:29;:21;;:::i;6600:188::-;6753:24;;981:14960:100;;8167:38:61;;-1:-1:-1;;;;;981:14960:100;;;;;8167:38:61;:::i;:::-;6753:24:91;;;:::i;6604:::-;981:14960:100;;;;;;6614:14:91;;-1:-1:-1;6604:24:91;;;6356:75;-1:-1:-1;;;981:14960:100;;;;;;6360:12:91;981:14960:100;;;;;;;:::i;:::-;;;;;;;;;;;;;;6356:75:91;;;981:14960:100;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;:::o;2658:162:25:-;-1:-1:-1;;;;;;;;;;;981:14960:100;-1:-1:-1;;;;;981:14960:100;966:10:28;2717:23:25;2713:101;;2658:162::o;2713:101::-;981:14960:100;;-1:-1:-1;;;2763:40:25;;966:10:28;2763:40:25;;;981:14960:100;;;2763:40:25;2557:104:58;;2641:5;;;;;;:13;2557:104;:::o;2641:13::-;;;2557:104;:::o;981:14960:100:-;;;;;;;:::o;3803:4116:58:-;;;981:14960:100;;;;-1:-1:-1;;3803:4116:58;;4383:131;;;;;;;;;;;;4595:10;;4591:368;;5065:20;;;;5061:88;;5435:300;;;981:14960:100;-1:-1:-1;981:14960:100;5954:31:58;;5999:371;;;6813:1;981:14960:100;;6794:1:58;981:14960:100;6793:21:58;981:14960:100;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5999:371:58;;;;-1:-1:-1;5999:371:58;;;5435:300;;;;;;981:14960:100;5435:300:58;;5999:371;6436:21;981:14960:100;3803:4116:58;:::o;5061:88::-;981:14960:100;;-1:-1:-1;;;5112:22:58;;;;;4591:368;4925:19;;;;;;;:::i;1303:160:46:-;981:14960:100;;-1:-1:-1;;;1412:43:46;;;;-1:-1:-1;;;;;981:14960:100;;;1412:43:46;;;981:14960:100;;;;;;;;;1412:43:46;;;981:14960:100;;;;-1:-1:-1;;;;;981:14960:100;;;;;;;;1412:43:46;981:14960:100;;;1412:43:46;:::i;12922:460:100:-;;13024:14;;:::i;:::-;13015:23;;;13011:75;;-1:-1:-1;981:14960:100;;;13100:20;981:14960;;;;;;;;13128:10;981:14960;;;;;;;;;;13096:93;;13208:32;13128:10;13208:32;;:::i;:::-;13255:11;;;13251:68;;-1:-1:-1;981:14960:100;;;13100:20;981:14960;;;;;;;;13128:10;981:14960;;;;;;;;;-1:-1:-1;;981:14960:100;13371:4;981:14960;;;12922:460::o;13251:68::-;981:14960;;-1:-1:-1;;;13289:19:100;;;;;13096:93;981:14960;;-1:-1:-1;;;13162:16:100;;;;;13011:75;981:14960;;-1:-1:-1;;;13061:14:100;;;;;10580:184:91;5173:12:101;981:14960:100;10303:8:61;;;:63;-1:-1:-1;10303:63:61;-1:-1:-1;;;;;981:14960:100;;10726:7:91;981:14960:100;;10736:12:91;981:14960:100;;;;;;10736:12:91;-1:-1:-1;981:14960:100;-1:-1:-1;;;;;;;;;;;981:14960:100;;10580:184:91;:::o;10726:31::-;;-1:-1:-1;10580:184:91;:::o;10303:63:61:-;981:14960:100;;;;;;;;5173:12:101;-1:-1:-1;14249:109:61;;;981:14960:100;;;10303:63:61;;10580:184:91;4803:13:101;981:14960:100;10303:8:61;;;:63;-1:-1:-1;10303:63:61;-1:-1:-1;;;;;981:14960:100;;10726:7:91;981:14960:100;;10736:12:91;981:14960:100;;;;;;10736:12:91;-1:-1:-1;981:14960:100;-1:-1:-1;;;;;;;;;;;981:14960:100;;10580:184:91;:::o;10303:63:61:-;981:14960:100;;;;;;;;4803:13:101;-1:-1:-1;14249:109:61;;;981:14960:100;;;10303:63:61;;10580:184:91;981:14960:100;;10303:8:61;;;:63;-1:-1:-1;10303:63:61;-1:-1:-1;;;;;981:14960:100;;10726:7:91;981:14960:100;;10736:12:91;:17;:12;;:17;:::i;:::-;981:14960:100;;;;;;10580:184:91;:::o;10303:63:61:-;981:14960:100;;;;;;;;;;14249:109:61;-1:-1:-1;14249:109:61;;-1:-1:-1;14249:109:61;;;981:14960:100;;;10303:63:61;;1662:280:92;;;1884:1;981:14960:100;;;;;;;1884:1:92;981:14960:100;;;;;;;8188:25:58;;;:::i;6999:207:91:-;4622:13:101;981:14960:100;9594:15:61;-1:-1:-1;9619:18:61;9652:7;9658:1;9652:7;;9648:234;;6999:207:91;9906:53:61;;;;:::i;:::-;9977:8;;;:63;-1:-1:-1;9977:63:61;-1:-1:-1;;;;;981:14960:100;;7168:7:91;981:14960:100;;7178:17:91;981:14960:100;7178:17:91;;:::i;9977:63:61:-;9992:41;10025:7;9992:48;10025:7;;:::i;:::-;4622:13:101;14249:109:61;;-1:-1:-1;;;;;;;;;;;14249:109:61;14099:265;;9992:41;981:14960:100;;;;;9992:48:61;9977:63;;9648:234;9695:14;;;;;:::i;:::-;981:14960:100;;;;;;;9906:53:61;14249:109;4622:13:101;-1:-1:-1;14249:109:61;981:14960:100;14249:109:61;;-1:-1:-1;;;;;;;;;;;14249:109:61;981:14960:100;;;;;9727:48:61;9723:149;981:14960:100;;;9795:10:61;9723:149;9648:234;;9723:149;9850:7;;;;;;:::i;:::-;9723:149;9648:234;;6999:207:91;4994:12:101;981:14960:100;9594:15:61;-1:-1:-1;9619:18:61;9652:7;9658:1;9652:7;;9648:234;;6999:207:91;9906:53:61;;;;:::i;:::-;9977:8;;;:63;-1:-1:-1;9977:63:61;-1:-1:-1;;;;;981:14960:100;;7168:7:91;981:14960:100;;7178:17:91;981:14960:100;7178:17:91;;:::i;9977:63:61:-;9992:41;10025:7;9992:48;10025:7;;:::i;:::-;4994:12:101;14249:109:61;;-1:-1:-1;;;;;;;;;;;14249:109:61;14099:265;;9992:48;9977:63;;9648:234;9695:14;;;;;:::i;:::-;981:14960:100;;;;;;;9906:53:61;14249:109;4994:12:101;-1:-1:-1;14249:109:61;981:14960:100;14249:109:61;;-1:-1:-1;;;;;;;;;;;14249:109:61;981:14960:100;;;;;9727:48:61;9723:149;981:14960:100;;;9795:10:61;9723:149;9648:234;;9723:149;9850:7;;;;;;:::i;:::-;9723:149;9648:234;;6999:207:91;;981:14960:100;;9594:15:61;-1:-1:-1;9619:18:61;9652:7;9658:1;9652:7;;9648:234;;6999:207:91;9906:53:61;;;;;:::i;:::-;9977:8;;;:63;-1:-1:-1;9977:63:61;;-1:-1:-1;;;;;981:14960:100;;7168:7:91;981:14960:100;;;7178:12:91;;:17;:12;;:17;:::i;9977:63:61:-;9992:41;10025:7;9992:48;10025:7;;:::i;:::-;9992:41;14249:109;;;;;;14099:265;;9992:48;9977:63;;;9648:234;9695:14;;;;;:::i;:::-;981:14960:100;;;;;;;9906:53:61;14249:109;;-1:-1:-1;14249:109:61;981:14960:100;14249:109:61;;;-1:-1:-1;14249:109:61;;981:14960:100;;;;;9727:48:61;9723:149;981:14960:100;;;9795:10:61;9723:149;9648:234;;9723:149;9850:7;;;;;;:::i;:::-;9723:149;9648:234;;981:14960:100;;;;;;;:::i;:::-;-1:-1:-1;981:14960:100;;;;;;;:::o;11486:272:91:-;981:14960:100;;:::i;:::-;;;;:::i;:::-;;4622:13:101;981:14960:100;;;;;;;;4622:13:101;-1:-1:-1;981:14960:100;-1:-1:-1;;;;;;;;;;;981:14960:100;;:::i;:::-;;;;;;;;;;;;11731:17:91;;981:14960:100;;11718:12:91;981:14960:100;;;;;;11718:12:91;-1:-1:-1;981:14960:100;-1:-1:-1;;;;;;;;;;;981:14960:100;;;;;;;;:::i;:::-;;;;11672:79:91;;981:14960:100;11486:272:91;:::o;:::-;981:14960:100;;:::i;:::-;;;;:::i;:::-;;4994:12:101;981:14960:100;;;;;;;;4994:12:101;-1:-1:-1;981:14960:100;-1:-1:-1;;;;;;;;;;;981:14960:100;;:::i;:::-;;;;;;;;;;;;11731:17:91;;981:14960:100;;11718:12:91;981:14960:100;;;;;;11718:12:91;-1:-1:-1;981:14960:100;-1:-1:-1;;;;;;;;;;;981:14960:100;;;;;;;;:::i;11486:272:91:-;;981:14960:100;11308:22:61;11718:31:91;11486:272;981:14960:100;;:::i;:::-;;;;:::i;:::-;;11308:22:61;;:::i;:::-;981:14960:100;;:::i;:::-;;11718:12:91;981:14960:100;;;;;11731:17:91;981:14960:100;;;;;11731:17:91;;981:14960:100;;11718:12:91;;:31;:::i;:::-;981:14960:100;;;;;;;;;:::i;:::-;;;;;;11731:17:91;11672:79;;981:14960:100;11486:272:91;:::o;4059:629:46:-;2847:1:47;4059:629:46;3510:55:47;4059:629:46;981:14960:100;;;;;;3462:31:47;;;;;;;;;;;;:::i;:::-;3510:55;;;:::i;:::-;981:14960:100;;4551:22:46;;;;:57;;;;4059:629;4547:135;;;;4059:629;:::o;4547:135::-;981:14960:100;;;;4631:40:46;;;;;;;;;981:14960:100;4631:40:46;4551:57;4578:30;;;3462:31:47;4578:30:46;;;;;;;;:::i;:::-;4577:31;4551:57;;;;1258:280:92;;;981:14960:100;;;;;;;;;;;;;;;;8188:25:58;;;;;:::i;:::-;8257;;;;;;8223:101;;1258:280:92;:::o;8223:101:58:-;981:14960:100;;;;;;;;1258:280:92;:::o;981:14960:100:-;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::o;10552:388:61:-;5173:12:101;981:14960:100;10728:8:61;;;10752:20;10690:17;10752:20;10690:17;10752:20;10690:17;10752:20;:::o;10724:210::-;981:14960:100;;;;;;;;14249:109:61;981:14960:100;14249:109:61;5173:12:101;10690:17:61;14249:109;;981:14960:100;:::i;:::-;;;;;;;14249:109:61;981:14960:100;;;;;10911:11:61;;981:14960:100;;10886:37:61;10870:1;10886:37;;;:::o;10552:388::-;4803:13:101;981:14960:100;10728:8:61;;;10752:20;10690:17;10752:20;10690:17;10752:20;10690:17;10752:20;:::o;10724:210::-;981:14960:100;;;;;;;;14249:109:61;981:14960:100;14249:109:61;4803:13:101;10690:17:61;14249:109;;981:14960:100;:::i;10552:388:61:-;981:14960:100;;10728:8:61;;;10752:20;;10690:17;10752:20;10690:17;10752:20;10690:17;10752:20;:::o;10724:210::-;981:14960:100;;;;;;;;;;;14249:109:61;10690:17;14249:109;;10690:17;14249:109;;;981:14960:100;:::i;7084:141:26:-;981:14960:100;-1:-1:-1;;;;;;;;;;;981:14960:100;;;;7150:18:26;7146:73;;7084:141::o;7146:73::-;981:14960:100;;-1:-1:-1;;;7191:17:26;;;;;981:14960:100;5173:12:101;981:14960:100;;-1:-1:-1;;;981:14960:100;;;;;;;;;5173:12:101;981:14960:100;;;;;;5173:12:101;-1:-1:-1;981:14960:100;;;;;;;;;;-1:-1:-1;;981:14960:100;;;;;;;-1:-1:-1;;;;;;;;;;;981:14960:100;;;;:::o;:::-;4803:13:101;981:14960:100;;-1:-1:-1;;;981:14960:100;;;;;;;;;4803:13:101;981:14960:100;;;;;;4803:13:101;-1:-1:-1;981:14960:100;;;;;;;;;;-1:-1:-1;;981:14960:100;;;;;;;-1:-1:-1;;;;;;;;;;;981:14960:100;;;;:::o;:::-;;;-1:-1:-1;;;981:14960:100;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;981:14960:100;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;11513:870:61;5173:12:101;981:14960:100;11513:870:61;;;981:14960:100;11672:7:61;;;;981:14960:100;11775:28:61;11795:7;;;:::i;11775:28::-;981:14960:100;:::i;:::-;;;;;;;;;;-1:-1:-1;;11873:91:61;;981:14960:100;12233:11:61;981:14960:100;;;12027:16:61;981:14960:100;;;;;;;12027:16:61;;;;12083:7;12063:28;12083:7;12063:43;12083:7;;:::i;12063:28::-;981:14960:100;;;;;;;;;;;;;;;;;12063:43:61;12233:11;981:14960:100;-1:-1:-1;;;;;981:14960:100;;;12023:189:61;981:14960:100;;12145:52:61;981:14960:100;;12155:41:61;981:14960:100;;:::i;:::-;;;;;;;;12155:41:61;-1:-1:-1;;;;;981:14960:100;;12155:41:61;;;981:14960:100;12145:52:61;:::i;:::-;12023:189;;11873:91;981:14960:100;;-1:-1:-1;;;11919:30:61;;;;;11668:709;12283:52;981:14960:100;;12293:41:61;981:14960:100;;:::i;12293:41:61:-;-1:-1:-1;;;;;981:14960:100;;12293:41:61;;;981:14960:100;12145:52:61;:::i;12283:::-;11678:1;12349:17;;:::o;11513:870::-;4803:13:101;981:14960:100;11513:870:61;;;981:14960:100;11672:7:61;;;;981:14960:100;11775:28:61;11795:7;;;:::i;981:14960:100:-;;;;;;;;;;-1:-1:-1;;11873:91:61;;981:14960:100;12233:11:61;981:14960:100;;;12027:16:61;981:14960:100;;;;;;;12027:16:61;;;;12083:7;12063:28;12083:7;12063:43;12083:7;;:::i;12023:189::-;981:14960:100;;12145:52:61;981:14960:100;;12155:41:61;981:14960:100;;:::i;12155:41:61:-;-1:-1:-1;;;;;981:14960:100;;12155:41:61;;;981:14960:100;12145:52:61;:::i;11668:709::-;12283:52;981:14960:100;;12293:41:61;981:14960:100;;:::i;12293:41:61:-;-1:-1:-1;;;;;981:14960:100;;12293:41:61;;;981:14960:100;12145:52:61;:::i;11513:870::-;981:14960:100;;11513:870:61;;;981:14960:100;11513:870:61;11672:7;;;;981:14960:100;11775:28:61;11795:7;;;:::i;981:14960:100:-;;;;;;;;;;;;;;;;11877:15:61;-1:-1:-1;11873:91:61;;981:14960:100;;12233:11:61;981:14960:100;;;12027:16:61;981:14960:100;;;;;;;12027:16:61;;;;12083:7;12063:43;12083:7;;12063:28;12083:7;;:::i;:::-;12063:28;14249:109;;;;;;14099:265;;12023:189;981:14960:100;;;12145:52:61;981:14960:100;12155:41:61;981:14960:100;;:::i;:::-;;;;;;;;12155:41:61;-1:-1:-1;;;;;981:14960:100;;12155:41:61;;;981:14960:100;12145:52:61;:::i;11668:709::-;12283:52;981:14960:100;;12293:41:61;981:14960:100;;:::i;12293:41:61:-;-1:-1:-1;;;;;981:14960:100;;12293:41:61;;;981:14960:100;12145:52:61;:::i;8587:1642:58:-;8658:6;;8654:45;;9401:7;10201:10;10142:26;10093;10044;9995;9946;9897;9848;981:14960:100;10189:23:58;9401:7;8663:1;981:14960:100;;;;10826:16:58;10822:99;;8587:1642;981:14960:100;;;;10938:15:58;10934:96;;8587:1642;981:14960:100;;;;11047:15:58;11043:96;;8587:1642;981:14960:100;;;;11156:15:58;11152:96;;8587:1642;981:14960:100;;;;11265:14:58;11261:93;;8587:1642;981:14960:100;;;;11371:14:58;11367:93;;8587:1642;981:14960:100;;;;11477:14:58;11473:93;;8587:1642;981:14960:100;;;11579:64:58;;8587:1642;981:14960:100;;;9858:10:58;;;;:::i;:::-;981:14960:100;;;;;9848:26:58;9907:10;;;;:::i;9897:26::-;9956:10;;;;:::i;9946:26::-;10005:10;;;;:::i;9995:26::-;10054:10;;;;:::i;10044:26::-;10103:10;;;;:::i;10093:26::-;10152:10;;;;:::i;10142:26::-;10201:10;;;:::i;:::-;10189:23;;:::i;11579:64::-;981:14960:100;;11579:64:58;;11473:93;981:14960:100;11511:11:58;;981:14960:100;;11473:93:58;;;;11367;981:14960:100;11405:11:58;;981:14960:100;;11367:93:58;;;;11261;981:14960:100;11299:11:58;;981:14960:100;;11261:93:58;;;;11152:96;981:14960:100;11191:12:58;;981:14960:100;;11152:96:58;;;;11043;981:14960:100;11082:12:58;;981:14960:100;;11043:96:58;;;;10934;981:14960:100;10973:12:58;;981:14960:100;;10934:96:58;;;;10822:99;10862:13;;;981:14960:100;10822:99:58;;;;12736:433:61;;12919:10;;;;;;13151:11;;12736:433;:::o;12912:230::-;2900:5:58;;;;;981:14960:100;;2910:5:58;;;981:14960:100;;;;;;;;;4622:13:101;-1:-1:-1;14249:109:61;981:14960:100;14249:109:61;;-1:-1:-1;;;;;;;;;;;14249:109:61;981:14960:100;;;;;-1:-1:-1;12996:136:61;981:14960:100;;;13055:10:61;;12996:136;;12912:230;;;12996:136;981:14960:100;;;;;;;;;;;12996:136:61;;;12736:433;;12919:10;;;;;;13151:11;;12736:433;:::o;12912:230::-;2900:5:58;;;;;981:14960:100;;2910:5:58;;;981:14960:100;;;;;;;;;4994:12:101;-1:-1:-1;14249:109:61;981:14960:100;14249:109:61;;-1:-1:-1;;;;;;;;;;;14249:109:61;981:14960:100;;;;;-1:-1:-1;12996:136:61;981:14960:100;;;13055:10:61;;12996:136;;12912:230;;;12996:136;981:14960:100;;;;;;;;;;;12996:136:61;;;12736:433;;;12919:10;;;;;;13151:11;;;12736:433;:::o;12912:230::-;2900:5:58;;;;;;981:14960:100;;2910:5:58;;;981:14960:100;;;;;;;;;14249:109:61;-1:-1:-1;14249:109:61;981:14960:100;14249:109:61;;;-1:-1:-1;14249:109:61;;981:14960:100;;;;;-1:-1:-1;12996:136:61;981:14960:100;;;13055:10:61;;12996:136;;12912:230;;;;12996:136;981:14960:100;;;;;;;;;;;12996:136:61;;;4625:582:47;;4797:8;;-1:-1:-1;981:14960:100;;5874:21:47;:17;;6046:142;;;;;;5870:383;981:14960:100;;-1:-1:-1;;;6225:17:47;;;;;4793:408;981:14960:100;;5045:22:47;:49;;;4793:408;5041:119;;5173:17;;:::o;5041:119::-;981:14960:100;;-1:-1:-1;;;5121:24:47;;-1:-1:-1;;;;;981:14960:100;;;5121:24:47;;;981:14960:100;;;5121:24:47;5045:49;5071:18;;;:23;5045:49;","linkReferences":{},"immutableReferences":{"64787":[{"start":1904,"length":32},{"start":2467,"length":32}],"75427":[{"start":4512,"length":32},{"start":5845,"length":32}],"75430":[{"start":6206,"length":32},{"start":7428,"length":32}]}},"methodIdentifiers":{"DEFAULT_ADMIN_ROLE()":"a217fddf","DELEGATOR_FACTORY()":"6da3e06d","DEPOSITOR_WHITELIST_ROLE()":"1b66c9e1","DEPOSIT_LIMIT_SET_ROLE()":"a21a1df9","DEPOSIT_WHITELIST_SET_ROLE()":"db388715","FACTORY()":"2dd31000","IS_DEPOSIT_LIMIT_SET_ROLE()":"1415519b","SLASHER_FACTORY()":"87df0788","activeBalanceOf(address)":"59f769a9","activeBalanceOfAt(address,uint48,bytes)":"efb559d6","activeShares()":"bfefcd7b","activeSharesAt(uint48,bytes)":"50f22068","activeSharesOf(address)":"9d66201b","activeSharesOfAt(address,uint48,bytes)":"2d73c69c","activeStake()":"bd49c35f","activeStakeAt(uint48,bytes)":"810da75d","burner()":"27810b6e","claim(address,uint256)":"aad3ec96","claimBatch(address,uint256[])":"7c04c80a","collateral()":"d8dfeb45","currentEpoch()":"76671808","currentEpochStart()":"61a8c8c4","delegator()":"ce9b7930","deposit(address,uint256)":"47e7ef24","depositLimit()":"ecf70858","depositWhitelist()":"48d3b775","epochAt(uint48)":"7953b33b","epochDuration()":"4ff0876a","epochDurationInit()":"46361671","getRoleAdmin(bytes32)":"248a9ca3","grantRole(bytes32,address)":"2f2ff15d","hasRole(bytes32,address)":"91d14854","initialize(uint64,address,bytes)":"57ec83cc","isDelegatorInitialized()":"50861adc","isDepositLimit()":"a1b12202","isDepositorWhitelisted(address)":"794b15b7","isInitialized()":"392e53cd","isSlasherInitialized()":"6ec1e3f8","isWithdrawalsClaimed(uint256,address)":"a5d03223","migrate(uint64,bytes)":"2abe3048","nextEpochStart()":"73790ab3","onSlash(uint256,uint48)":"7278e31c","owner()":"8da5cb5b","previousEpochStart()":"281f5752","redeem(address,uint256)":"1e9a6950","renounceOwnership()":"715018a6","renounceRole(bytes32,address)":"36568abe","revokeRole(bytes32,address)":"d547741f","setDelegator(address)":"83cd9cc3","setDepositLimit(uint256)":"bdc8144b","setDepositWhitelist(bool)":"4105a7dd","setDepositorWhitelistStatus(address,bool)":"a2861466","setIsDepositLimit(bool)":"5346e34f","setSlasher(address)":"aabc2496","slashableBalanceOf(address)":"c31e8dd7","slasher()":"b1344271","staticDelegateCall(address,bytes)":"9f86fd85","supportsInterface(bytes4)":"01ffc9a7","totalStake()":"8b0e9f3f","transferOwnership(address)":"f2fde38b","version()":"54fd4d50","withdraw(address,uint256)":"f3fef3a3","withdrawalShares(uint256)":"afba70ad","withdrawalSharesOf(uint256,address)":"a3b54172","withdrawals(uint256)":"5cc07076","withdrawalsOf(uint256,address)":"f5e7ee0f"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegatorFactory\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"slasherFactory\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"vaultFactory\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"AccessControlBadConfirmation\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"neededRole\",\"type\":\"bytes32\"}],\"name\":\"AccessControlUnauthorizedAccount\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"AddressEmptyCode\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"AddressInsufficientBalance\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AlreadyClaimed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AlreadyInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AlreadySet\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CheckpointUnorderedInsertion\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"DelegatorAlreadyInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"DepositLimitReached\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedInnerCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientClaim\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientDeposit\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientRedemption\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientWithdrawal\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidAccount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidCaptureEpoch\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidClaimer\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidCollateral\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidDelegator\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidEpoch\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidEpochDuration\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidLengthEpochs\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidOnBehalfOf\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidRecipient\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidSlasher\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidTimestamp\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MathOverflowedMulDiv\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MissingRoles\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NoPreviousEpoch\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotDelegator\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotFactory\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotSlasher\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotWhitelistedDepositor\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ReentrancyGuardReentrantCall\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"bits\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"SafeCastOverflowedUintDowncast\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"SafeERC20FailedOperation\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SlasherAlreadyInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TooMuchRedeem\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TooMuchWithdraw\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"claimer\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"epoch\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Claim\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"claimer\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"epochs\",\"type\":\"uint256[]\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"ClaimBatch\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"depositor\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"onBehalfOf\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"}],\"name\":\"Deposit\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint48\",\"name\":\"captureTimestamp\",\"type\":\"uint48\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"slashedAmount\",\"type\":\"uint256\"}],\"name\":\"OnSlash\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"previousAdminRole\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"newAdminRole\",\"type\":\"bytes32\"}],\"name\":\"RoleAdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleRevoked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"}],\"name\":\"SetDelegator\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"limit\",\"type\":\"uint256\"}],\"name\":\"SetDepositLimit\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"status\",\"type\":\"bool\"}],\"name\":\"SetDepositWhitelist\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"status\",\"type\":\"bool\"}],\"name\":\"SetDepositorWhitelistStatus\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"status\",\"type\":\"bool\"}],\"name\":\"SetIsDepositLimit\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"slasher\",\"type\":\"address\"}],\"name\":\"SetSlasher\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"withdrawer\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"claimer\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"burnedShares\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"mintedShares\",\"type\":\"uint256\"}],\"name\":\"Withdraw\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DEFAULT_ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"DELEGATOR_FACTORY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"DEPOSITOR_WHITELIST_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"DEPOSIT_LIMIT_SET_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"DEPOSIT_WHITELIST_SET_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"FACTORY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"IS_DEPOSIT_LIMIT_SET_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"SLASHER_FACTORY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"activeBalanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hints\",\"type\":\"bytes\"}],\"name\":\"activeBalanceOfAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"activeShares\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hint\",\"type\":\"bytes\"}],\"name\":\"activeSharesAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"activeSharesOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hint\",\"type\":\"bytes\"}],\"name\":\"activeSharesOfAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"activeStake\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hint\",\"type\":\"bytes\"}],\"name\":\"activeStakeAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"burner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"epoch\",\"type\":\"uint256\"}],\"name\":\"claim\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256[]\",\"name\":\"epochs\",\"type\":\"uint256[]\"}],\"name\":\"claimBatch\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"collateral\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"currentEpoch\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"currentEpochStart\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"delegator\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"onBehalfOf\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"deposit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"depositedAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"mintedShares\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"depositLimit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"depositWhitelist\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"}],\"name\":\"epochAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"epochDuration\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"epochDurationInit\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleAdmin\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"grantRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"initialVersion\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"owner_\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isDelegatorInitialized\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isDepositLimit\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"isDepositorWhitelisted\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"value\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isInitialized\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isSlasherInitialized\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"epoch\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"isWithdrawalsClaimed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"value\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"newVersion\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"migrate\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"nextEpochStart\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint48\",\"name\":\"captureTimestamp\",\"type\":\"uint48\"}],\"name\":\"onSlash\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"slashedAmount\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"previousEpochStart\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"claimer\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"}],\"name\":\"redeem\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"withdrawnAssets\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"mintedShares\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"callerConfirmation\",\"type\":\"address\"}],\"name\":\"renounceRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegator_\",\"type\":\"address\"}],\"name\":\"setDelegator\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"limit\",\"type\":\"uint256\"}],\"name\":\"setDepositLimit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"status\",\"type\":\"bool\"}],\"name\":\"setDepositWhitelist\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"status\",\"type\":\"bool\"}],\"name\":\"setDepositorWhitelistStatus\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"status\",\"type\":\"bool\"}],\"name\":\"setIsDepositLimit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"slasher_\",\"type\":\"address\"}],\"name\":\"setSlasher\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"slashableBalanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"slasher\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"staticDelegateCall\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalStake\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"version\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"claimer\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"withdraw\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"burnedShares\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"mintedShares\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"epoch\",\"type\":\"uint256\"}],\"name\":\"withdrawalShares\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"epoch\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"withdrawalSharesOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"epoch\",\"type\":\"uint256\"}],\"name\":\"withdrawals\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"epoch\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"withdrawalsOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"AccessControlBadConfirmation()\":[{\"details\":\"The caller of a function is not the expected one. NOTE: Don't confuse with {AccessControlUnauthorizedAccount}.\"}],\"AccessControlUnauthorizedAccount(address,bytes32)\":[{\"details\":\"The `account` is missing a role.\"}],\"AddressEmptyCode(address)\":[{\"details\":\"There's no code at `target` (it is not a contract).\"}],\"AddressInsufficientBalance(address)\":[{\"details\":\"The ETH balance of the account is not enough to perform the operation.\"}],\"CheckpointUnorderedInsertion()\":[{\"details\":\"A value was attempted to be inserted on a past checkpoint.\"}],\"FailedInnerCall()\":[{\"details\":\"A call to an address target failed. The target may have reverted.\"}],\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"MathOverflowedMulDiv()\":[{\"details\":\"Muldiv operation overflow.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}],\"ReentrancyGuardReentrantCall()\":[{\"details\":\"Unauthorized reentrant call.\"}],\"SafeCastOverflowedUintDowncast(uint8,uint256)\":[{\"details\":\"Value doesn't fit in an uint of `bits` size.\"}],\"SafeERC20FailedOperation(address)\":[{\"details\":\"An operation with an ERC20 token failed.\"}]},\"events\":{\"Claim(address,address,uint256,uint256)\":{\"params\":{\"amount\":\"amount of the collateral claimed\",\"claimer\":\"account that claimed\",\"epoch\":\"epoch the collateral was claimed for\",\"recipient\":\"account that received the collateral\"}},\"ClaimBatch(address,address,uint256[],uint256)\":{\"params\":{\"amount\":\"amount of the collateral claimed\",\"claimer\":\"account that claimed\",\"epochs\":\"epochs the collateral was claimed for\",\"recipient\":\"account that received the collateral\"}},\"Deposit(address,address,uint256,uint256)\":{\"params\":{\"amount\":\"amount of the collateral deposited\",\"depositor\":\"account that made the deposit\",\"onBehalfOf\":\"account the deposit was made on behalf of\",\"shares\":\"amount of the active shares minted\"}},\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"OnSlash(uint256,uint48,uint256)\":{\"params\":{\"amount\":\"amount of the collateral to slash\",\"captureTimestamp\":\"time point when the stake was captured\",\"slashedAmount\":\"real amount of the collateral slashed\"}},\"RoleAdminChanged(bytes32,bytes32,bytes32)\":{\"details\":\"Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole` `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite {RoleAdminChanged} not being emitted signaling this.\"},\"RoleGranted(bytes32,address,address)\":{\"details\":\"Emitted when `account` is granted `role`. `sender` is the account that originated the contract call, an admin role bearer except when using {AccessControl-_setupRole}.\"},\"RoleRevoked(bytes32,address,address)\":{\"details\":\"Emitted when `account` is revoked `role`. `sender` is the account that originated the contract call: - if using `revokeRole`, it is the admin role bearer - if using `renounceRole`, it is the role bearer (i.e. `account`)\"},\"SetDelegator(address)\":{\"details\":\"Can be set only once.\",\"params\":{\"delegator\":\"vault's delegator to delegate the stake to networks and operators\"}},\"SetDepositLimit(uint256)\":{\"params\":{\"limit\":\"deposit limit (maximum amount of the collateral that can be in the vault simultaneously)\"}},\"SetDepositWhitelist(bool)\":{\"params\":{\"status\":\"if enabled deposit whitelist\"}},\"SetDepositorWhitelistStatus(address,bool)\":{\"params\":{\"account\":\"account for which the whitelist status is set\",\"status\":\"if whitelisted the account\"}},\"SetIsDepositLimit(bool)\":{\"params\":{\"status\":\"if enabled deposit limit\"}},\"SetSlasher(address)\":{\"details\":\"Can be set only once.\",\"params\":{\"slasher\":\"vault's slasher to provide a slashing mechanism to networks\"}},\"Withdraw(address,address,uint256,uint256,uint256)\":{\"params\":{\"amount\":\"amount of the collateral withdrawn\",\"burnedShares\":\"amount of the active shares burned\",\"claimer\":\"account that needs to claim the withdrawal\",\"mintedShares\":\"amount of the epoch withdrawal shares minted\",\"withdrawer\":\"account that made the withdrawal\"}}},\"kind\":\"dev\",\"methods\":{\"activeBalanceOf(address)\":{\"params\":{\"account\":\"account to get the active balance for\"},\"returns\":{\"_0\":\"active balance for the account\"}},\"activeBalanceOfAt(address,uint48,bytes)\":{\"params\":{\"account\":\"account to get the active balance for\",\"hints\":\"hints for checkpoints' indexes\",\"timestamp\":\"time point to get the active balance for the account at\"},\"returns\":{\"_0\":\"active balance for the account at the timestamp\"}},\"activeShares()\":{\"returns\":{\"_0\":\"total number of active shares\"}},\"activeSharesAt(uint48,bytes)\":{\"params\":{\"hint\":\"hint for the checkpoint index\",\"timestamp\":\"time point to get the total number of active shares at\"},\"returns\":{\"_0\":\"total number of active shares at the timestamp\"}},\"activeSharesOf(address)\":{\"params\":{\"account\":\"account to get the number of active shares for\"},\"returns\":{\"_0\":\"number of active shares for the account\"}},\"activeSharesOfAt(address,uint48,bytes)\":{\"params\":{\"account\":\"account to get the number of active shares for\",\"hint\":\"hint for the checkpoint index\",\"timestamp\":\"time point to get the number of active shares for the account at\"},\"returns\":{\"_0\":\"number of active shares for the account at the timestamp\"}},\"activeStake()\":{\"returns\":{\"_0\":\"total amount of active stake\"}},\"activeStakeAt(uint48,bytes)\":{\"params\":{\"hint\":\"hint for the checkpoint index\",\"timestamp\":\"time point to get the total active stake at\"},\"returns\":{\"_0\":\"total amount of active stake at the timestamp\"}},\"claim(address,uint256)\":{\"params\":{\"epoch\":\"epoch to claim the collateral for\",\"recipient\":\"account that receives the collateral\"},\"returns\":{\"amount\":\"amount of the collateral claimed\"}},\"claimBatch(address,uint256[])\":{\"params\":{\"epochs\":\"epochs to claim the collateral for\",\"recipient\":\"account that receives the collateral\"},\"returns\":{\"amount\":\"amount of the collateral claimed\"}},\"currentEpoch()\":{\"returns\":{\"_0\":\"current epoch\"}},\"currentEpochStart()\":{\"returns\":{\"_0\":\"start of the current epoch\"}},\"deposit(address,uint256)\":{\"params\":{\"amount\":\"amount of the collateral to deposit\",\"onBehalfOf\":\"account the deposit is made on behalf of\"},\"returns\":{\"depositedAmount\":\"real amount of the collateral deposited\",\"mintedShares\":\"amount of the active shares minted\"}},\"epochAt(uint48)\":{\"details\":\"Reverts if the timestamp is less than the start of the epoch 0.\",\"params\":{\"timestamp\":\"time point to get the epoch at\"},\"returns\":{\"_0\":\"epoch at the timestamp\"}},\"getRoleAdmin(bytes32)\":{\"details\":\"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}.\"},\"grantRole(bytes32,address)\":{\"details\":\"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event.\"},\"hasRole(bytes32,address)\":{\"details\":\"Returns `true` if `account` has been granted `role`.\"},\"initialize(uint64,address,bytes)\":{\"params\":{\"data\":\"some data to use\",\"initialVersion\":\"initial version of the entity\",\"owner\":\"initial owner of the entity\"}},\"isInitialized()\":{\"returns\":{\"_0\":\"if the vault is fully initialized\"}},\"migrate(uint64,bytes)\":{\"params\":{\"data\":\"some data to use\",\"newVersion\":\"new version of the entity\"}},\"nextEpochStart()\":{\"returns\":{\"_0\":\"start of the next epoch\"}},\"onSlash(uint256,uint48)\":{\"details\":\"Only the slasher can call this function.\",\"params\":{\"amount\":\"amount to slash\",\"captureTimestamp\":\"time point when the stake was captured\"},\"returns\":{\"slashedAmount\":\"real amount of the collateral slashed\"}},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"previousEpochStart()\":{\"details\":\"Reverts if the current epoch is 0.\",\"returns\":{\"_0\":\"start of the previous epoch\"}},\"redeem(address,uint256)\":{\"params\":{\"claimer\":\"account that needs to claim the withdrawal\",\"shares\":\"amount of the active shares to redeem\"},\"returns\":{\"mintedShares\":\"amount of the epoch withdrawal shares minted\",\"withdrawnAssets\":\"amount of the collateral withdrawn\"}},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"renounceRole(bytes32,address)\":{\"details\":\"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `callerConfirmation`. May emit a {RoleRevoked} event.\"},\"revokeRole(bytes32,address)\":{\"details\":\"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event.\"},\"setDepositLimit(uint256)\":{\"details\":\"Only a DEPOSIT_LIMIT_SET_ROLE holder can call this function.\",\"params\":{\"limit\":\"deposit limit (maximum amount of the collateral that can be in the vault simultaneously)\"}},\"setDepositWhitelist(bool)\":{\"details\":\"Only a DEPOSIT_WHITELIST_SET_ROLE holder can call this function.\",\"params\":{\"status\":\"if enabling deposit whitelist\"}},\"setDepositorWhitelistStatus(address,bool)\":{\"details\":\"Only a DEPOSITOR_WHITELIST_ROLE holder can call this function.\",\"params\":{\"account\":\"account for which the whitelist status is set\",\"status\":\"if whitelisting the account\"}},\"setIsDepositLimit(bool)\":{\"details\":\"Only a IS_DEPOSIT_LIMIT_SET_ROLE holder can call this function.\",\"params\":{\"status\":\"if enabling deposit limit\"}},\"slashableBalanceOf(address)\":{\"params\":{\"account\":\"account to get the slashable collateral for\"},\"returns\":{\"_0\":\"total amount of the account's slashable collateral\"}},\"staticDelegateCall(address,bytes)\":{\"details\":\"It allows to use this contract's storage on-chain.\",\"params\":{\"data\":\"data to make a delegatecall with\",\"target\":\"address of the contract to make a delegatecall to\"}},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"},\"totalStake()\":{\"returns\":{\"_0\":\"total amount of the slashable collateral\"}},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"},\"version()\":{\"details\":\"Starts from 1.\",\"returns\":{\"_0\":\"version of the entity\"}},\"withdraw(address,uint256)\":{\"params\":{\"amount\":\"amount of the collateral to withdraw\",\"claimer\":\"account that needs to claim the withdrawal\"},\"returns\":{\"burnedShares\":\"amount of the active shares burned\",\"mintedShares\":\"amount of the epoch withdrawal shares minted\"}},\"withdrawalsOf(uint256,address)\":{\"params\":{\"account\":\"account to get the withdrawals for\",\"epoch\":\"epoch to get the withdrawals for the account at\"},\"returns\":{\"_0\":\"withdrawals for the account at the epoch\"}}},\"version\":1},\"userdoc\":{\"events\":{\"Claim(address,address,uint256,uint256)\":{\"notice\":\"Emitted when a claim is made.\"},\"ClaimBatch(address,address,uint256[],uint256)\":{\"notice\":\"Emitted when a batch claim is made.\"},\"Deposit(address,address,uint256,uint256)\":{\"notice\":\"Emitted when a deposit is made.\"},\"OnSlash(uint256,uint48,uint256)\":{\"notice\":\"Emitted when a slash happens.\"},\"SetDelegator(address)\":{\"notice\":\"Emitted when a delegator is set.\"},\"SetDepositLimit(uint256)\":{\"notice\":\"Emitted when a deposit limit is set.\"},\"SetDepositWhitelist(bool)\":{\"notice\":\"Emitted when a deposit whitelist status is enabled/disabled.\"},\"SetDepositorWhitelistStatus(address,bool)\":{\"notice\":\"Emitted when a depositor whitelist status is set.\"},\"SetIsDepositLimit(bool)\":{\"notice\":\"Emitted when a deposit limit status is enabled/disabled.\"},\"SetSlasher(address)\":{\"notice\":\"Emitted when a slasher is set.\"},\"Withdraw(address,address,uint256,uint256,uint256)\":{\"notice\":\"Emitted when a withdrawal is made.\"}},\"kind\":\"user\",\"methods\":{\"DELEGATOR_FACTORY()\":{\"notice\":\"Get the delegator factory's address.\"},\"DEPOSITOR_WHITELIST_ROLE()\":{\"notice\":\"Get a depositor whitelist status setter's role.\"},\"DEPOSIT_LIMIT_SET_ROLE()\":{\"notice\":\"Get a deposit limit setter's role.\"},\"DEPOSIT_WHITELIST_SET_ROLE()\":{\"notice\":\"Get a deposit whitelist enabler/disabler's role.\"},\"FACTORY()\":{\"notice\":\"Get the factory's address.\"},\"IS_DEPOSIT_LIMIT_SET_ROLE()\":{\"notice\":\"Get a deposit limit enabler/disabler's role.\"},\"SLASHER_FACTORY()\":{\"notice\":\"Get the slasher factory's address.\"},\"activeBalanceOf(address)\":{\"notice\":\"Get an active balance for a particular account.\"},\"activeBalanceOfAt(address,uint48,bytes)\":{\"notice\":\"Get an active balance for a particular account at a given timestamp using hints.\"},\"activeShares()\":{\"notice\":\"Get a total number of active shares in the vault.\"},\"activeSharesAt(uint48,bytes)\":{\"notice\":\"Get a total number of active shares in the vault at a given timestamp using a hint.\"},\"activeSharesOf(address)\":{\"notice\":\"Get a number of active shares for a particular account.\"},\"activeSharesOfAt(address,uint48,bytes)\":{\"notice\":\"Get a total number of active shares for a particular account at a given timestamp using a hint.\"},\"activeStake()\":{\"notice\":\"Get a total amount of active stake in the vault.\"},\"activeStakeAt(uint48,bytes)\":{\"notice\":\"Get a total amount of active stake in the vault at a given timestamp using a hint.\"},\"burner()\":{\"notice\":\"Get a burner to issue debt to (e.g., 0xdEaD or some unwrapper contract).\"},\"claim(address,uint256)\":{\"notice\":\"Claim collateral from the vault.\"},\"claimBatch(address,uint256[])\":{\"notice\":\"Claim collateral from the vault for multiple epochs.\"},\"collateral()\":{\"notice\":\"Get a vault collateral.\"},\"currentEpoch()\":{\"notice\":\"Get a current vault epoch.\"},\"currentEpochStart()\":{\"notice\":\"Get a start of the current vault epoch.\"},\"delegator()\":{\"notice\":\"Get a delegator (it delegates the vault's stake to networks and operators).\"},\"deposit(address,uint256)\":{\"notice\":\"Deposit collateral into the vault.\"},\"depositLimit()\":{\"notice\":\"Get a deposit limit (maximum amount of the active stake that can be in the vault simultaneously).\"},\"depositWhitelist()\":{\"notice\":\"Get if the deposit whitelist is enabled.\"},\"epochAt(uint48)\":{\"notice\":\"Get an epoch at a given timestamp.\"},\"epochDuration()\":{\"notice\":\"Get a duration of the vault epoch.\"},\"epochDurationInit()\":{\"notice\":\"Get a time point of the epoch duration set.\"},\"initialize(uint64,address,bytes)\":{\"notice\":\"Initialize this entity contract by using a given data and setting a particular version and owner.\"},\"isDelegatorInitialized()\":{\"notice\":\"Get if the delegator is initialized.\"},\"isDepositLimit()\":{\"notice\":\"Get if the deposit limit is set.\"},\"isDepositorWhitelisted(address)\":{\"notice\":\"Get if a given account is whitelisted as a depositor.\"},\"isInitialized()\":{\"notice\":\"Check if the vault is fully initialized (a delegator and a slasher are set).\"},\"isSlasherInitialized()\":{\"notice\":\"Get if the slasher is initialized.\"},\"isWithdrawalsClaimed(uint256,address)\":{\"notice\":\"Get if the withdrawals are claimed for a particular account at a given epoch.\"},\"migrate(uint64,bytes)\":{\"notice\":\"Migrate this entity to a particular newer version using a given data.\"},\"nextEpochStart()\":{\"notice\":\"Get a start of the next vault epoch.\"},\"onSlash(uint256,uint48)\":{\"notice\":\"Slash callback for burning collateral.\"},\"previousEpochStart()\":{\"notice\":\"Get a start of the previous vault epoch.\"},\"redeem(address,uint256)\":{\"notice\":\"Redeem collateral from the vault (it will be claimable after the next epoch).\"},\"setDepositLimit(uint256)\":{\"notice\":\"Set a deposit limit.\"},\"setDepositWhitelist(bool)\":{\"notice\":\"Enable/disable deposit whitelist.\"},\"setDepositorWhitelistStatus(address,bool)\":{\"notice\":\"Set a depositor whitelist status.\"},\"setIsDepositLimit(bool)\":{\"notice\":\"Enable/disable deposit limit.\"},\"slashableBalanceOf(address)\":{\"notice\":\"Get a total amount of the collateral that can be slashed for a given account.\"},\"slasher()\":{\"notice\":\"Get a slasher (it provides networks a slashing mechanism).\"},\"staticDelegateCall(address,bytes)\":{\"notice\":\"Make a delegatecall from this contract to a given target contract with a particular data (always reverts with a return data).\"},\"totalStake()\":{\"notice\":\"Get a total amount of the collateral that can be slashed.\"},\"version()\":{\"notice\":\"Get the entity's version.\"},\"withdraw(address,uint256)\":{\"notice\":\"Withdraw collateral from the vault (it will be claimable after the next epoch).\"},\"withdrawalShares(uint256)\":{\"notice\":\"Get a total number of withdrawal shares at a given epoch.\"},\"withdrawalSharesOf(uint256,address)\":{\"notice\":\"Get a number of withdrawal shares for a particular account at a given epoch (zero if claimed).\"},\"withdrawals(uint256)\":{\"notice\":\"Get a total amount of the withdrawals at a given epoch.\"},\"withdrawalsOf(uint256,address)\":{\"notice\":\"Get withdrawals for a particular account at a given epoch (zero if claimed).\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/contracts/vault/Vault.sol\":\"Vault\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol\":{\"keccak256\":\"0x6662ec4e5cefca03eeadd073e9469df8d2944bb2ee8ec8f7622c2c46aab5f225\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4d8544c6f8daa4d1bc215c6a72fe0acdb748664a105b0e5efc19295667521d45\",\"dweb:/ipfs/QmdGWqdnXT8S3RgCR6aV8XHZrsybieMQLLnug1NtpSjEXN\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0xc163fcf9bb10138631a9ba5564df1fa25db9adff73bd9ee868a8ae1858fe093a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9706d43a0124053d9880f6e31a59f31bc0a6a3dc1acd66ce0a16e1111658c5f6\",\"dweb:/ipfs/QmUFmfowzkRwGtDu36cXV9SPTBHJ3n7dG9xQiK5B28jTf2\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609\",\"dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9\",\"dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardUpgradeable.sol\":{\"keccak256\":\"0xb44e086e941292cdc7f440de51478493894ef0b1aeccb0c4047445919f667f74\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://942dad22fbdc1669f025540ba63aa3ccfad5f8458fc5d4525b31ebf272e7af45\",\"dweb:/ipfs/Qmdo4X2M82aM3AMoW2kf2jhYkSCyC4T1pHNd6obdsDFnAB\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol\":{\"keccak256\":\"0xdaba3f7c42c55b2896353f32bd27d4d5f8bae741b3b05d4c53f67abc4dc47ce8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1fa2e61141c602510bcd2cd936ed9561922ac8772a9b9c9a9db091a74e354a45\",\"dweb:/ipfs/QmcHQDDoEBwJmwUbzoVkytvJsBx3KVHYFFnDkvRGWh9Wmh\"]},\"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0xb6b36edd6a2999fd243ff226d6cbf84bd71af2432bbd0dfe19392996a1d9cb41\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1fd2f35495652e57e3f99bc6c510bc5f7dd398a176ea2e72d8ed730aebc6ca26\",\"dweb:/ipfs/QmTQV6X4gkikTib49cho5iDX3JvSQbdsoEChoDwrk3CbbH\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c\",\"dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0x6008dabfe393240d73d7dd7688033f72740d570aa422254d29a7dce8568f3aff\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f5196ec75139918c6c7bb4251b36395e668f1fa6d206beba7e7520e74913940d\",\"dweb:/ipfs/QmSyqjksXxmm2mCG6qRd1yuwLykypkSVBbnBnGqJRcuJMi\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x37bb49513c49c87c4642a891b13b63571bc87013dde806617aa1efb54605f386\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b3036b3a83b7c48f96641f2a9002b9f2dcb6a5958dd670894ada21ae8229b3d0\",\"dweb:/ipfs/QmUNfSBdoVtjhETaUJCYcaC7pTMgbhht926tJ2uXJbiVd3\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0xaf28a975a78550e45f65e559a3ad6a5ad43b9b8a37366999abd1b7084eb70721\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b7bd24e224f67f65bfadf85dc2929fa965456bb2415478bd0125471b5ce35245\",\"dweb:/ipfs/QmRaydGr8BTHs1kvaZfsNU69pKzUAGFrvABn1KiRSbE51y\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875\",\"dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0xe19a4d5f31d2861e7344e8e535e2feafb913d806d3e2b5fe7782741a2a7094fe\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4aed79c0fa6f0546ed02f2f683e8f77f0fd2ed7eb34d8bbf3d373c9a6d95b13c\",\"dweb:/ipfs/QmWqVz6UAVqmnWU5pqYPt1o6iDEZyPaBraAA3rKfTTSfYj\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/Checkpoints.sol\":{\"keccak256\":\"0xbdc5e074d7dd6678f67e92b1a51a20226801a407b0e1af3da367c5d1ff4519ad\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a36cca6b22fff3db16fc789ff6c60eea71d4b156065d4d0c83a0bc5e91a77a8b\",\"dweb:/ipfs/QmYN3exd5AemxjBrN8XMB1p5LbbE16uC3sjbYjwi8AjcGR\"]},\"lib/openzeppelin-contracts/contracts/utils/types/Time.sol\":{\"keccak256\":\"0xc7755af115020049e4140f224f9ee88d7e1799ffb0646f37bf0df24bf6213f58\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7f09bf94d5274334ec021f61a04659db303f31e60460e14b709c9bf187740111\",\"dweb:/ipfs/QmNvgomZYUwFAt4cZbPWAiTeSZQreGehY9BK5xyVJsUttb\"]},\"src/contracts/common/MigratableEntity.sol\":{\"keccak256\":\"0x2d736f4dacd5d7e7697503bc426c78b8250fe1694ca157965ec178da6807de58\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://f1237acf96b4b9f9b69156e068eddd726a6e15bd8e87a18dc999cd4ba4da069c\",\"dweb:/ipfs/QmS6M8fiFFSeuJ4ZKKq1z8W7w4ybeHQSy5TLASGoc1LVic\"]},\"src/contracts/common/StaticDelegateCallable.sol\":{\"keccak256\":\"0x350029aa8955eacaffffaeb58babc5c98e80ebc5c5db388ed17ee6465f4a9d90\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://eb392a8ee9050e0af606897df63e3404e3829e8b688b580663892f9664195764\",\"dweb:/ipfs/QmaXC8jqV8UrrAFkzXTEv2fJF56sy33HhLxAzaRZmUxuXD\"]},\"src/contracts/libraries/Checkpoints.sol\":{\"keccak256\":\"0xba90097c8bfe0a975499428b5f8ac5569483c7d92ccc28c12d70de416aae040c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://12f5d93ca94cd06d3147db68993165a58e17903ed53682560de61f3085ad4609\",\"dweb:/ipfs/QmePiuAqvXprMLmFZkGZeGjvGPAvsEDHfCDv7BoQhXu9xE\"]},\"src/contracts/libraries/ERC4626Math.sol\":{\"keccak256\":\"0x8441160513c1cbeb1c3b9ee077bcc7e7ce20006b52a77c8dd39ff0ef89699939\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://943f8cc3e26ddf649f465f40c909819f5c864717c4baa339e9e403b9374a4653\",\"dweb:/ipfs/QmXPxi1sUDsrGprZdUgCzoPEosaZMv9ZhygWQ1vAi1phAB\"]},\"src/contracts/vault/Vault.sol\":{\"keccak256\":\"0x2ceff6ed3298c4cad144c99fcc79b51cb9397d6ebef00285b915848b476f8c2e\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://11f2fb3581854f3ab6e82e8d4935d9eb510c903a13c3f022346c2956a58f5307\",\"dweb:/ipfs/QmdUnoXoyYoG9SGWyQZCFyLDRUUX3eXyXetkRvw6jxqqBz\"]},\"src/contracts/vault/VaultStorage.sol\":{\"keccak256\":\"0x57db25b127d77ea3472de53e3a4af3354399655b9268638b99ca5925fa364a56\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://aa763d9a6ec508ae3abfb8228b72b9fd9525279e5135d4962e79ff059feb1173\",\"dweb:/ipfs/QmcbDR6E9wyEpu6V2FkEC4hnWy47zXA9LSKJde6zSGd33Q\"]},\"src/interfaces/common/IEntity.sol\":{\"keccak256\":\"0x8ef4b63d6da63489778ccd5f8d13ebdd527dd4b62730b2c616df5af7474d2d21\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a8d69576a9219d85c50816a18ad53a4d53cfcb27ed38b8cccc808dc2734b71b\",\"dweb:/ipfs/QmYVN3P4Q4REvBWJ97TbAcaxm3uyB2anV6NSGa6ZtSwcEv\"]},\"src/interfaces/common/IMigratableEntity.sol\":{\"keccak256\":\"0x8f5f2809f3afbe8ebfbb365dd7b57b4dd3b6f9943a6187eaf648d45895b8e3c4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ffe640537d539e7a4fde70d30d3e4c57f4ba9c2c25c450cea713aae38e8fd5c\",\"dweb:/ipfs/QmSUTGzvdcn1R1KB7tLThMRtESsfPbeXDhhhKWGtntzBds\"]},\"src/interfaces/common/IRegistry.sol\":{\"keccak256\":\"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014\",\"dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK\"]},\"src/interfaces/common/IStaticDelegateCallable.sol\":{\"keccak256\":\"0xa335d4e81b9071b7de66ef92b43ff20671d86516eb1be46fef29a3483cd3f5d5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d464b9db863c14c05547d2b23352f2e9b7b784799cf09f6bbc4906a2a74e3516\",\"dweb:/ipfs/QmUVWzFvJz7eEbDQKiFTTzwi7TEbjcs3VmwdM4kuptAKvi\"]},\"src/interfaces/delegator/IBaseDelegator.sol\":{\"keccak256\":\"0x96bb312f032e17accce3f8f80936d99468029d6b37c9ca74acdb4b026a0148ee\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2a66dcb5b7d1a6ef6a363431ea98ebd78bc4fdd3d7a134d9b542dc66e7d025c2\",\"dweb:/ipfs/QmRhTPLd2ZAyRHmJUFUcWKs9b3if49QY17LYZuRqWmghw8\"]},\"src/interfaces/slasher/IBaseSlasher.sol\":{\"keccak256\":\"0x7c82528b445659c313ab77335c407b0b6efe5e79027187bb287f7bc74202b404\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0274c90aa5df1aa6bb470a6aab53992fb14fd7e5472c9430416505b29647d9cf\",\"dweb:/ipfs/QmckbmJLDetPemVzCnnGcKYWAZV2BRFXGDsjiaec8jkHxx\"]},\"src/interfaces/vault/IVault.sol\":{\"keccak256\":\"0xffee01d383cd4e1a5530c614bf4360c1ef070c288abec9da1eb531b51bc07235\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://04f0046cac285d8ec44ebbb1f79dc94fab4495767190cad8364fbc1fafaadfb9\",\"dweb:/ipfs/QmUawAunwzXfCyShWfhKeThAgKtqe51hmrxvrXvM772M2R\"]},\"src/interfaces/vault/IVaultStorage.sol\":{\"keccak256\":\"0x592626f13754194f83047135de19229c49390bd59e34659b1bb38be71d973a22\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://06a6a9dfddd05e580b32bebe2cff4f63ba26a653180676d58225dd30d9c89d3e\",\"dweb:/ipfs/QmdgzBeY6Sxo8mGtyBxtv1tM1c2kU6J6zjeRd7vuXm4DU6\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.25+commit.b61c2a91"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"delegatorFactory","type":"address"},{"internalType":"address","name":"slasherFactory","type":"address"},{"internalType":"address","name":"vaultFactory","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"AccessControlBadConfirmation"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bytes32","name":"neededRole","type":"bytes32"}],"type":"error","name":"AccessControlUnauthorizedAccount"},{"inputs":[{"internalType":"address","name":"target","type":"address"}],"type":"error","name":"AddressEmptyCode"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"AddressInsufficientBalance"},{"inputs":[],"type":"error","name":"AlreadyClaimed"},{"inputs":[],"type":"error","name":"AlreadyInitialized"},{"inputs":[],"type":"error","name":"AlreadySet"},{"inputs":[],"type":"error","name":"CheckpointUnorderedInsertion"},{"inputs":[],"type":"error","name":"DelegatorAlreadyInitialized"},{"inputs":[],"type":"error","name":"DepositLimitReached"},{"inputs":[],"type":"error","name":"FailedInnerCall"},{"inputs":[],"type":"error","name":"InsufficientClaim"},{"inputs":[],"type":"error","name":"InsufficientDeposit"},{"inputs":[],"type":"error","name":"InsufficientRedemption"},{"inputs":[],"type":"error","name":"InsufficientWithdrawal"},{"inputs":[],"type":"error","name":"InvalidAccount"},{"inputs":[],"type":"error","name":"InvalidCaptureEpoch"},{"inputs":[],"type":"error","name":"InvalidClaimer"},{"inputs":[],"type":"error","name":"InvalidCollateral"},{"inputs":[],"type":"error","name":"InvalidDelegator"},{"inputs":[],"type":"error","name":"InvalidEpoch"},{"inputs":[],"type":"error","name":"InvalidEpochDuration"},{"inputs":[],"type":"error","name":"InvalidInitialization"},{"inputs":[],"type":"error","name":"InvalidLengthEpochs"},{"inputs":[],"type":"error","name":"InvalidOnBehalfOf"},{"inputs":[],"type":"error","name":"InvalidRecipient"},{"inputs":[],"type":"error","name":"InvalidSlasher"},{"inputs":[],"type":"error","name":"InvalidTimestamp"},{"inputs":[],"type":"error","name":"MathOverflowedMulDiv"},{"inputs":[],"type":"error","name":"MissingRoles"},{"inputs":[],"type":"error","name":"NoPreviousEpoch"},{"inputs":[],"type":"error","name":"NotDelegator"},{"inputs":[],"type":"error","name":"NotFactory"},{"inputs":[],"type":"error","name":"NotInitialized"},{"inputs":[],"type":"error","name":"NotInitializing"},{"inputs":[],"type":"error","name":"NotSlasher"},{"inputs":[],"type":"error","name":"NotWhitelistedDepositor"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"OwnableInvalidOwner"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"OwnableUnauthorizedAccount"},{"inputs":[],"type":"error","name":"ReentrancyGuardReentrantCall"},{"inputs":[{"internalType":"uint8","name":"bits","type":"uint8"},{"internalType":"uint256","name":"value","type":"uint256"}],"type":"error","name":"SafeCastOverflowedUintDowncast"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"type":"error","name":"SafeERC20FailedOperation"},{"inputs":[],"type":"error","name":"SlasherAlreadyInitialized"},{"inputs":[],"type":"error","name":"TooMuchRedeem"},{"inputs":[],"type":"error","name":"TooMuchWithdraw"},{"inputs":[{"internalType":"address","name":"claimer","type":"address","indexed":true},{"internalType":"address","name":"recipient","type":"address","indexed":true},{"internalType":"uint256","name":"epoch","type":"uint256","indexed":false},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"Claim","anonymous":false},{"inputs":[{"internalType":"address","name":"claimer","type":"address","indexed":true},{"internalType":"address","name":"recipient","type":"address","indexed":true},{"internalType":"uint256[]","name":"epochs","type":"uint256[]","indexed":false},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"ClaimBatch","anonymous":false},{"inputs":[{"internalType":"address","name":"depositor","type":"address","indexed":true},{"internalType":"address","name":"onBehalfOf","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false},{"internalType":"uint256","name":"shares","type":"uint256","indexed":false}],"type":"event","name":"Deposit","anonymous":false},{"inputs":[{"internalType":"uint64","name":"version","type":"uint64","indexed":false}],"type":"event","name":"Initialized","anonymous":false},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256","indexed":false},{"internalType":"uint48","name":"captureTimestamp","type":"uint48","indexed":false},{"internalType":"uint256","name":"slashedAmount","type":"uint256","indexed":false}],"type":"event","name":"OnSlash","anonymous":false},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"bytes32","name":"previousAdminRole","type":"bytes32","indexed":true},{"internalType":"bytes32","name":"newAdminRole","type":"bytes32","indexed":true}],"type":"event","name":"RoleAdminChanged","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"address","name":"sender","type":"address","indexed":true}],"type":"event","name":"RoleGranted","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"address","name":"sender","type":"address","indexed":true}],"type":"event","name":"RoleRevoked","anonymous":false},{"inputs":[{"internalType":"address","name":"delegator","type":"address","indexed":true}],"type":"event","name":"SetDelegator","anonymous":false},{"inputs":[{"internalType":"uint256","name":"limit","type":"uint256","indexed":false}],"type":"event","name":"SetDepositLimit","anonymous":false},{"inputs":[{"internalType":"bool","name":"status","type":"bool","indexed":false}],"type":"event","name":"SetDepositWhitelist","anonymous":false},{"inputs":[{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"bool","name":"status","type":"bool","indexed":false}],"type":"event","name":"SetDepositorWhitelistStatus","anonymous":false},{"inputs":[{"internalType":"bool","name":"status","type":"bool","indexed":false}],"type":"event","name":"SetIsDepositLimit","anonymous":false},{"inputs":[{"internalType":"address","name":"slasher","type":"address","indexed":true}],"type":"event","name":"SetSlasher","anonymous":false},{"inputs":[{"internalType":"address","name":"withdrawer","type":"address","indexed":true},{"internalType":"address","name":"claimer","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false},{"internalType":"uint256","name":"burnedShares","type":"uint256","indexed":false},{"internalType":"uint256","name":"mintedShares","type":"uint256","indexed":false}],"type":"event","name":"Withdraw","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"DEFAULT_ADMIN_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"DELEGATOR_FACTORY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"DEPOSITOR_WHITELIST_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"DEPOSIT_LIMIT_SET_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"DEPOSIT_WHITELIST_SET_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"FACTORY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"IS_DEPOSIT_LIMIT_SET_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"SLASHER_FACTORY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"activeBalanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint48","name":"timestamp","type":"uint48"},{"internalType":"bytes","name":"hints","type":"bytes"}],"stateMutability":"view","type":"function","name":"activeBalanceOfAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"activeShares","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint48","name":"timestamp","type":"uint48"},{"internalType":"bytes","name":"hint","type":"bytes"}],"stateMutability":"view","type":"function","name":"activeSharesAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"activeSharesOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint48","name":"timestamp","type":"uint48"},{"internalType":"bytes","name":"hint","type":"bytes"}],"stateMutability":"view","type":"function","name":"activeSharesOfAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"activeStake","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint48","name":"timestamp","type":"uint48"},{"internalType":"bytes","name":"hint","type":"bytes"}],"stateMutability":"view","type":"function","name":"activeStakeAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"burner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"epoch","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"claim","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256[]","name":"epochs","type":"uint256[]"}],"stateMutability":"nonpayable","type":"function","name":"claimBatch","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"collateral","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"currentEpoch","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"currentEpochStart","outputs":[{"internalType":"uint48","name":"","type":"uint48"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"delegator","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"onBehalfOf","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"deposit","outputs":[{"internalType":"uint256","name":"depositedAmount","type":"uint256"},{"internalType":"uint256","name":"mintedShares","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"depositLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"depositWhitelist","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint48","name":"timestamp","type":"uint48"}],"stateMutability":"view","type":"function","name":"epochAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"epochDuration","outputs":[{"internalType":"uint48","name":"","type":"uint48"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"epochDurationInit","outputs":[{"internalType":"uint48","name":"","type":"uint48"}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getRoleAdmin","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"grantRole"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"hasRole","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint64","name":"initialVersion","type":"uint64"},{"internalType":"address","name":"owner_","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[],"stateMutability":"view","type":"function","name":"isDelegatorInitialized","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"isDepositLimit","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"isDepositorWhitelisted","outputs":[{"internalType":"bool","name":"value","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"isInitialized","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"isSlasherInitialized","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint256","name":"epoch","type":"uint256"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"isWithdrawalsClaimed","outputs":[{"internalType":"bool","name":"value","type":"bool"}]},{"inputs":[{"internalType":"uint64","name":"newVersion","type":"uint64"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"migrate"},{"inputs":[],"stateMutability":"view","type":"function","name":"nextEpochStart","outputs":[{"internalType":"uint48","name":"","type":"uint48"}]},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint48","name":"captureTimestamp","type":"uint48"}],"stateMutability":"nonpayable","type":"function","name":"onSlash","outputs":[{"internalType":"uint256","name":"slashedAmount","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"previousEpochStart","outputs":[{"internalType":"uint48","name":"","type":"uint48"}]},{"inputs":[{"internalType":"address","name":"claimer","type":"address"},{"internalType":"uint256","name":"shares","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"redeem","outputs":[{"internalType":"uint256","name":"withdrawnAssets","type":"uint256"},{"internalType":"uint256","name":"mintedShares","type":"uint256"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"callerConfirmation","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"renounceRole"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"revokeRole"},{"inputs":[{"internalType":"address","name":"delegator_","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setDelegator"},{"inputs":[{"internalType":"uint256","name":"limit","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setDepositLimit"},{"inputs":[{"internalType":"bool","name":"status","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"setDepositWhitelist"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"status","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"setDepositorWhitelistStatus"},{"inputs":[{"internalType":"bool","name":"status","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"setIsDepositLimit"},{"inputs":[{"internalType":"address","name":"slasher_","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setSlasher"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"slashableBalanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"slasher","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"staticDelegateCall"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"totalStake","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"},{"inputs":[],"stateMutability":"view","type":"function","name":"version","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[{"internalType":"address","name":"claimer","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"withdraw","outputs":[{"internalType":"uint256","name":"burnedShares","type":"uint256"},{"internalType":"uint256","name":"mintedShares","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"epoch","type":"uint256"}],"stateMutability":"view","type":"function","name":"withdrawalShares","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"epoch","type":"uint256"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"withdrawalSharesOf","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"epoch","type":"uint256"}],"stateMutability":"view","type":"function","name":"withdrawals","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"epoch","type":"uint256"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"withdrawalsOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]}],"devdoc":{"kind":"dev","methods":{"activeBalanceOf(address)":{"params":{"account":"account to get the active balance for"},"returns":{"_0":"active balance for the account"}},"activeBalanceOfAt(address,uint48,bytes)":{"params":{"account":"account to get the active balance for","hints":"hints for checkpoints' indexes","timestamp":"time point to get the active balance for the account at"},"returns":{"_0":"active balance for the account at the timestamp"}},"activeShares()":{"returns":{"_0":"total number of active shares"}},"activeSharesAt(uint48,bytes)":{"params":{"hint":"hint for the checkpoint index","timestamp":"time point to get the total number of active shares at"},"returns":{"_0":"total number of active shares at the timestamp"}},"activeSharesOf(address)":{"params":{"account":"account to get the number of active shares for"},"returns":{"_0":"number of active shares for the account"}},"activeSharesOfAt(address,uint48,bytes)":{"params":{"account":"account to get the number of active shares for","hint":"hint for the checkpoint index","timestamp":"time point to get the number of active shares for the account at"},"returns":{"_0":"number of active shares for the account at the timestamp"}},"activeStake()":{"returns":{"_0":"total amount of active stake"}},"activeStakeAt(uint48,bytes)":{"params":{"hint":"hint for the checkpoint index","timestamp":"time point to get the total active stake at"},"returns":{"_0":"total amount of active stake at the timestamp"}},"claim(address,uint256)":{"params":{"epoch":"epoch to claim the collateral for","recipient":"account that receives the collateral"},"returns":{"amount":"amount of the collateral claimed"}},"claimBatch(address,uint256[])":{"params":{"epochs":"epochs to claim the collateral for","recipient":"account that receives the collateral"},"returns":{"amount":"amount of the collateral claimed"}},"currentEpoch()":{"returns":{"_0":"current epoch"}},"currentEpochStart()":{"returns":{"_0":"start of the current epoch"}},"deposit(address,uint256)":{"params":{"amount":"amount of the collateral to deposit","onBehalfOf":"account the deposit is made on behalf of"},"returns":{"depositedAmount":"real amount of the collateral deposited","mintedShares":"amount of the active shares minted"}},"epochAt(uint48)":{"details":"Reverts if the timestamp is less than the start of the epoch 0.","params":{"timestamp":"time point to get the epoch at"},"returns":{"_0":"epoch at the timestamp"}},"getRoleAdmin(bytes32)":{"details":"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}."},"grantRole(bytes32,address)":{"details":"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event."},"hasRole(bytes32,address)":{"details":"Returns `true` if `account` has been granted `role`."},"initialize(uint64,address,bytes)":{"params":{"data":"some data to use","initialVersion":"initial version of the entity","owner":"initial owner of the entity"}},"isInitialized()":{"returns":{"_0":"if the vault is fully initialized"}},"migrate(uint64,bytes)":{"params":{"data":"some data to use","newVersion":"new version of the entity"}},"nextEpochStart()":{"returns":{"_0":"start of the next epoch"}},"onSlash(uint256,uint48)":{"details":"Only the slasher can call this function.","params":{"amount":"amount to slash","captureTimestamp":"time point when the stake was captured"},"returns":{"slashedAmount":"real amount of the collateral slashed"}},"owner()":{"details":"Returns the address of the current owner."},"previousEpochStart()":{"details":"Reverts if the current epoch is 0.","returns":{"_0":"start of the previous epoch"}},"redeem(address,uint256)":{"params":{"claimer":"account that needs to claim the withdrawal","shares":"amount of the active shares to redeem"},"returns":{"mintedShares":"amount of the epoch withdrawal shares minted","withdrawnAssets":"amount of the collateral withdrawn"}},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner."},"renounceRole(bytes32,address)":{"details":"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `callerConfirmation`. May emit a {RoleRevoked} event."},"revokeRole(bytes32,address)":{"details":"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event."},"setDepositLimit(uint256)":{"details":"Only a DEPOSIT_LIMIT_SET_ROLE holder can call this function.","params":{"limit":"deposit limit (maximum amount of the collateral that can be in the vault simultaneously)"}},"setDepositWhitelist(bool)":{"details":"Only a DEPOSIT_WHITELIST_SET_ROLE holder can call this function.","params":{"status":"if enabling deposit whitelist"}},"setDepositorWhitelistStatus(address,bool)":{"details":"Only a DEPOSITOR_WHITELIST_ROLE holder can call this function.","params":{"account":"account for which the whitelist status is set","status":"if whitelisting the account"}},"setIsDepositLimit(bool)":{"details":"Only a IS_DEPOSIT_LIMIT_SET_ROLE holder can call this function.","params":{"status":"if enabling deposit limit"}},"slashableBalanceOf(address)":{"params":{"account":"account to get the slashable collateral for"},"returns":{"_0":"total amount of the account's slashable collateral"}},"staticDelegateCall(address,bytes)":{"details":"It allows to use this contract's storage on-chain.","params":{"data":"data to make a delegatecall with","target":"address of the contract to make a delegatecall to"}},"supportsInterface(bytes4)":{"details":"See {IERC165-supportsInterface}."},"totalStake()":{"returns":{"_0":"total amount of the slashable collateral"}},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."},"version()":{"details":"Starts from 1.","returns":{"_0":"version of the entity"}},"withdraw(address,uint256)":{"params":{"amount":"amount of the collateral to withdraw","claimer":"account that needs to claim the withdrawal"},"returns":{"burnedShares":"amount of the active shares burned","mintedShares":"amount of the epoch withdrawal shares minted"}},"withdrawalsOf(uint256,address)":{"params":{"account":"account to get the withdrawals for","epoch":"epoch to get the withdrawals for the account at"},"returns":{"_0":"withdrawals for the account at the epoch"}}},"version":1},"userdoc":{"kind":"user","methods":{"DELEGATOR_FACTORY()":{"notice":"Get the delegator factory's address."},"DEPOSITOR_WHITELIST_ROLE()":{"notice":"Get a depositor whitelist status setter's role."},"DEPOSIT_LIMIT_SET_ROLE()":{"notice":"Get a deposit limit setter's role."},"DEPOSIT_WHITELIST_SET_ROLE()":{"notice":"Get a deposit whitelist enabler/disabler's role."},"FACTORY()":{"notice":"Get the factory's address."},"IS_DEPOSIT_LIMIT_SET_ROLE()":{"notice":"Get a deposit limit enabler/disabler's role."},"SLASHER_FACTORY()":{"notice":"Get the slasher factory's address."},"activeBalanceOf(address)":{"notice":"Get an active balance for a particular account."},"activeBalanceOfAt(address,uint48,bytes)":{"notice":"Get an active balance for a particular account at a given timestamp using hints."},"activeShares()":{"notice":"Get a total number of active shares in the vault."},"activeSharesAt(uint48,bytes)":{"notice":"Get a total number of active shares in the vault at a given timestamp using a hint."},"activeSharesOf(address)":{"notice":"Get a number of active shares for a particular account."},"activeSharesOfAt(address,uint48,bytes)":{"notice":"Get a total number of active shares for a particular account at a given timestamp using a hint."},"activeStake()":{"notice":"Get a total amount of active stake in the vault."},"activeStakeAt(uint48,bytes)":{"notice":"Get a total amount of active stake in the vault at a given timestamp using a hint."},"burner()":{"notice":"Get a burner to issue debt to (e.g., 0xdEaD or some unwrapper contract)."},"claim(address,uint256)":{"notice":"Claim collateral from the vault."},"claimBatch(address,uint256[])":{"notice":"Claim collateral from the vault for multiple epochs."},"collateral()":{"notice":"Get a vault collateral."},"currentEpoch()":{"notice":"Get a current vault epoch."},"currentEpochStart()":{"notice":"Get a start of the current vault epoch."},"delegator()":{"notice":"Get a delegator (it delegates the vault's stake to networks and operators)."},"deposit(address,uint256)":{"notice":"Deposit collateral into the vault."},"depositLimit()":{"notice":"Get a deposit limit (maximum amount of the active stake that can be in the vault simultaneously)."},"depositWhitelist()":{"notice":"Get if the deposit whitelist is enabled."},"epochAt(uint48)":{"notice":"Get an epoch at a given timestamp."},"epochDuration()":{"notice":"Get a duration of the vault epoch."},"epochDurationInit()":{"notice":"Get a time point of the epoch duration set."},"initialize(uint64,address,bytes)":{"notice":"Initialize this entity contract by using a given data and setting a particular version and owner."},"isDelegatorInitialized()":{"notice":"Get if the delegator is initialized."},"isDepositLimit()":{"notice":"Get if the deposit limit is set."},"isDepositorWhitelisted(address)":{"notice":"Get if a given account is whitelisted as a depositor."},"isInitialized()":{"notice":"Check if the vault is fully initialized (a delegator and a slasher are set)."},"isSlasherInitialized()":{"notice":"Get if the slasher is initialized."},"isWithdrawalsClaimed(uint256,address)":{"notice":"Get if the withdrawals are claimed for a particular account at a given epoch."},"migrate(uint64,bytes)":{"notice":"Migrate this entity to a particular newer version using a given data."},"nextEpochStart()":{"notice":"Get a start of the next vault epoch."},"onSlash(uint256,uint48)":{"notice":"Slash callback for burning collateral."},"previousEpochStart()":{"notice":"Get a start of the previous vault epoch."},"redeem(address,uint256)":{"notice":"Redeem collateral from the vault (it will be claimable after the next epoch)."},"setDepositLimit(uint256)":{"notice":"Set a deposit limit."},"setDepositWhitelist(bool)":{"notice":"Enable/disable deposit whitelist."},"setDepositorWhitelistStatus(address,bool)":{"notice":"Set a depositor whitelist status."},"setIsDepositLimit(bool)":{"notice":"Enable/disable deposit limit."},"slashableBalanceOf(address)":{"notice":"Get a total amount of the collateral that can be slashed for a given account."},"slasher()":{"notice":"Get a slasher (it provides networks a slashing mechanism)."},"staticDelegateCall(address,bytes)":{"notice":"Make a delegatecall from this contract to a given target contract with a particular data (always reverts with a return data)."},"totalStake()":{"notice":"Get a total amount of the collateral that can be slashed."},"version()":{"notice":"Get the entity's version."},"withdraw(address,uint256)":{"notice":"Withdraw collateral from the vault (it will be claimable after the next epoch)."},"withdrawalShares(uint256)":{"notice":"Get a total number of withdrawal shares at a given epoch."},"withdrawalSharesOf(uint256,address)":{"notice":"Get a number of withdrawal shares for a particular account at a given epoch (zero if claimed)."},"withdrawals(uint256)":{"notice":"Get a total amount of the withdrawals at a given epoch."},"withdrawalsOf(uint256,address)":{"notice":"Get withdrawals for a particular account at a given epoch (zero if claimed)."}},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/contracts/vault/Vault.sol":"Vault"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol":{"keccak256":"0x6662ec4e5cefca03eeadd073e9469df8d2944bb2ee8ec8f7622c2c46aab5f225","urls":["bzz-raw://4d8544c6f8daa4d1bc215c6a72fe0acdb748664a105b0e5efc19295667521d45","dweb:/ipfs/QmdGWqdnXT8S3RgCR6aV8XHZrsybieMQLLnug1NtpSjEXN"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol":{"keccak256":"0xc163fcf9bb10138631a9ba5564df1fa25db9adff73bd9ee868a8ae1858fe093a","urls":["bzz-raw://9706d43a0124053d9880f6e31a59f31bc0a6a3dc1acd66ce0a16e1111658c5f6","dweb:/ipfs/QmUFmfowzkRwGtDu36cXV9SPTBHJ3n7dG9xQiK5B28jTf2"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b","urls":["bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609","dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol":{"keccak256":"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397","urls":["bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9","dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardUpgradeable.sol":{"keccak256":"0xb44e086e941292cdc7f440de51478493894ef0b1aeccb0c4047445919f667f74","urls":["bzz-raw://942dad22fbdc1669f025540ba63aa3ccfad5f8458fc5d4525b31ebf272e7af45","dweb:/ipfs/Qmdo4X2M82aM3AMoW2kf2jhYkSCyC4T1pHNd6obdsDFnAB"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol":{"keccak256":"0xdaba3f7c42c55b2896353f32bd27d4d5f8bae741b3b05d4c53f67abc4dc47ce8","urls":["bzz-raw://1fa2e61141c602510bcd2cd936ed9561922ac8772a9b9c9a9db091a74e354a45","dweb:/ipfs/QmcHQDDoEBwJmwUbzoVkytvJsBx3KVHYFFnDkvRGWh9Wmh"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol":{"keccak256":"0xb6b36edd6a2999fd243ff226d6cbf84bd71af2432bbd0dfe19392996a1d9cb41","urls":["bzz-raw://1fd2f35495652e57e3f99bc6c510bc5f7dd398a176ea2e72d8ed730aebc6ca26","dweb:/ipfs/QmTQV6X4gkikTib49cho5iDX3JvSQbdsoEChoDwrk3CbbH"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70","urls":["bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c","dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol":{"keccak256":"0x6008dabfe393240d73d7dd7688033f72740d570aa422254d29a7dce8568f3aff","urls":["bzz-raw://f5196ec75139918c6c7bb4251b36395e668f1fa6d206beba7e7520e74913940d","dweb:/ipfs/QmSyqjksXxmm2mCG6qRd1yuwLykypkSVBbnBnGqJRcuJMi"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0x37bb49513c49c87c4642a891b13b63571bc87013dde806617aa1efb54605f386","urls":["bzz-raw://b3036b3a83b7c48f96641f2a9002b9f2dcb6a5958dd670894ada21ae8229b3d0","dweb:/ipfs/QmUNfSBdoVtjhETaUJCYcaC7pTMgbhht926tJ2uXJbiVd3"],"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/introspection/IERC165.sol":{"keccak256":"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b","urls":["bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df","dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d","urls":["bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875","dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol":{"keccak256":"0xe19a4d5f31d2861e7344e8e535e2feafb913d806d3e2b5fe7782741a2a7094fe","urls":["bzz-raw://4aed79c0fa6f0546ed02f2f683e8f77f0fd2ed7eb34d8bbf3d373c9a6d95b13c","dweb:/ipfs/QmWqVz6UAVqmnWU5pqYPt1o6iDEZyPaBraAA3rKfTTSfYj"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/Checkpoints.sol":{"keccak256":"0xbdc5e074d7dd6678f67e92b1a51a20226801a407b0e1af3da367c5d1ff4519ad","urls":["bzz-raw://a36cca6b22fff3db16fc789ff6c60eea71d4b156065d4d0c83a0bc5e91a77a8b","dweb:/ipfs/QmYN3exd5AemxjBrN8XMB1p5LbbE16uC3sjbYjwi8AjcGR"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/types/Time.sol":{"keccak256":"0xc7755af115020049e4140f224f9ee88d7e1799ffb0646f37bf0df24bf6213f58","urls":["bzz-raw://7f09bf94d5274334ec021f61a04659db303f31e60460e14b709c9bf187740111","dweb:/ipfs/QmNvgomZYUwFAt4cZbPWAiTeSZQreGehY9BK5xyVJsUttb"],"license":"MIT"},"src/contracts/common/MigratableEntity.sol":{"keccak256":"0x2d736f4dacd5d7e7697503bc426c78b8250fe1694ca157965ec178da6807de58","urls":["bzz-raw://f1237acf96b4b9f9b69156e068eddd726a6e15bd8e87a18dc999cd4ba4da069c","dweb:/ipfs/QmS6M8fiFFSeuJ4ZKKq1z8W7w4ybeHQSy5TLASGoc1LVic"],"license":"BUSL-1.1"},"src/contracts/common/StaticDelegateCallable.sol":{"keccak256":"0x350029aa8955eacaffffaeb58babc5c98e80ebc5c5db388ed17ee6465f4a9d90","urls":["bzz-raw://eb392a8ee9050e0af606897df63e3404e3829e8b688b580663892f9664195764","dweb:/ipfs/QmaXC8jqV8UrrAFkzXTEv2fJF56sy33HhLxAzaRZmUxuXD"],"license":"BUSL-1.1"},"src/contracts/libraries/Checkpoints.sol":{"keccak256":"0xba90097c8bfe0a975499428b5f8ac5569483c7d92ccc28c12d70de416aae040c","urls":["bzz-raw://12f5d93ca94cd06d3147db68993165a58e17903ed53682560de61f3085ad4609","dweb:/ipfs/QmePiuAqvXprMLmFZkGZeGjvGPAvsEDHfCDv7BoQhXu9xE"],"license":"MIT"},"src/contracts/libraries/ERC4626Math.sol":{"keccak256":"0x8441160513c1cbeb1c3b9ee077bcc7e7ce20006b52a77c8dd39ff0ef89699939","urls":["bzz-raw://943f8cc3e26ddf649f465f40c909819f5c864717c4baa339e9e403b9374a4653","dweb:/ipfs/QmXPxi1sUDsrGprZdUgCzoPEosaZMv9ZhygWQ1vAi1phAB"],"license":"MIT"},"src/contracts/vault/Vault.sol":{"keccak256":"0x2ceff6ed3298c4cad144c99fcc79b51cb9397d6ebef00285b915848b476f8c2e","urls":["bzz-raw://11f2fb3581854f3ab6e82e8d4935d9eb510c903a13c3f022346c2956a58f5307","dweb:/ipfs/QmdUnoXoyYoG9SGWyQZCFyLDRUUX3eXyXetkRvw6jxqqBz"],"license":"BUSL-1.1"},"src/contracts/vault/VaultStorage.sol":{"keccak256":"0x57db25b127d77ea3472de53e3a4af3354399655b9268638b99ca5925fa364a56","urls":["bzz-raw://aa763d9a6ec508ae3abfb8228b72b9fd9525279e5135d4962e79ff059feb1173","dweb:/ipfs/QmcbDR6E9wyEpu6V2FkEC4hnWy47zXA9LSKJde6zSGd33Q"],"license":"BUSL-1.1"},"src/interfaces/common/IEntity.sol":{"keccak256":"0x8ef4b63d6da63489778ccd5f8d13ebdd527dd4b62730b2c616df5af7474d2d21","urls":["bzz-raw://5a8d69576a9219d85c50816a18ad53a4d53cfcb27ed38b8cccc808dc2734b71b","dweb:/ipfs/QmYVN3P4Q4REvBWJ97TbAcaxm3uyB2anV6NSGa6ZtSwcEv"],"license":"MIT"},"src/interfaces/common/IMigratableEntity.sol":{"keccak256":"0x8f5f2809f3afbe8ebfbb365dd7b57b4dd3b6f9943a6187eaf648d45895b8e3c4","urls":["bzz-raw://0ffe640537d539e7a4fde70d30d3e4c57f4ba9c2c25c450cea713aae38e8fd5c","dweb:/ipfs/QmSUTGzvdcn1R1KB7tLThMRtESsfPbeXDhhhKWGtntzBds"],"license":"MIT"},"src/interfaces/common/IRegistry.sol":{"keccak256":"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb","urls":["bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014","dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK"],"license":"MIT"},"src/interfaces/common/IStaticDelegateCallable.sol":{"keccak256":"0xa335d4e81b9071b7de66ef92b43ff20671d86516eb1be46fef29a3483cd3f5d5","urls":["bzz-raw://d464b9db863c14c05547d2b23352f2e9b7b784799cf09f6bbc4906a2a74e3516","dweb:/ipfs/QmUVWzFvJz7eEbDQKiFTTzwi7TEbjcs3VmwdM4kuptAKvi"],"license":"MIT"},"src/interfaces/delegator/IBaseDelegator.sol":{"keccak256":"0x96bb312f032e17accce3f8f80936d99468029d6b37c9ca74acdb4b026a0148ee","urls":["bzz-raw://2a66dcb5b7d1a6ef6a363431ea98ebd78bc4fdd3d7a134d9b542dc66e7d025c2","dweb:/ipfs/QmRhTPLd2ZAyRHmJUFUcWKs9b3if49QY17LYZuRqWmghw8"],"license":"MIT"},"src/interfaces/slasher/IBaseSlasher.sol":{"keccak256":"0x7c82528b445659c313ab77335c407b0b6efe5e79027187bb287f7bc74202b404","urls":["bzz-raw://0274c90aa5df1aa6bb470a6aab53992fb14fd7e5472c9430416505b29647d9cf","dweb:/ipfs/QmckbmJLDetPemVzCnnGcKYWAZV2BRFXGDsjiaec8jkHxx"],"license":"MIT"},"src/interfaces/vault/IVault.sol":{"keccak256":"0xffee01d383cd4e1a5530c614bf4360c1ef070c288abec9da1eb531b51bc07235","urls":["bzz-raw://04f0046cac285d8ec44ebbb1f79dc94fab4495767190cad8364fbc1fafaadfb9","dweb:/ipfs/QmUawAunwzXfCyShWfhKeThAgKtqe51hmrxvrXvM772M2R"],"license":"MIT"},"src/interfaces/vault/IVaultStorage.sol":{"keccak256":"0x592626f13754194f83047135de19229c49390bd59e34659b1bb38be71d973a22","urls":["bzz-raw://06a6a9dfddd05e580b32bebe2cff4f63ba26a653180676d58225dd30d9c89d3e","dweb:/ipfs/QmdgzBeY6Sxo8mGtyBxtv1tM1c2kU6J6zjeRd7vuXm4DU6"],"license":"MIT"}},"version":1},"id":100} \ No newline at end of file +{"abi":[{"type":"constructor","inputs":[{"name":"delegatorFactory","type":"address","internalType":"address"},{"name":"slasherFactory","type":"address","internalType":"address"},{"name":"vaultFactory","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"DEFAULT_ADMIN_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"DELEGATOR_FACTORY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"DEPOSITOR_WHITELIST_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"DEPOSIT_LIMIT_SET_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"DEPOSIT_WHITELIST_SET_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"FACTORY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"IS_DEPOSIT_LIMIT_SET_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"SLASHER_FACTORY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"activeBalanceOf","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"activeBalanceOfAt","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"timestamp","type":"uint48","internalType":"uint48"},{"name":"hints","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"activeShares","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"activeSharesAt","inputs":[{"name":"timestamp","type":"uint48","internalType":"uint48"},{"name":"hint","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"activeSharesOf","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"activeSharesOfAt","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"timestamp","type":"uint48","internalType":"uint48"},{"name":"hint","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"activeStake","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"activeStakeAt","inputs":[{"name":"timestamp","type":"uint48","internalType":"uint48"},{"name":"hint","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"burner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"claim","inputs":[{"name":"recipient","type":"address","internalType":"address"},{"name":"epoch","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"claimBatch","inputs":[{"name":"recipient","type":"address","internalType":"address"},{"name":"epochs","type":"uint256[]","internalType":"uint256[]"}],"outputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"collateral","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"currentEpoch","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"currentEpochStart","inputs":[],"outputs":[{"name":"","type":"uint48","internalType":"uint48"}],"stateMutability":"view"},{"type":"function","name":"delegator","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"deposit","inputs":[{"name":"onBehalfOf","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"depositedAmount","type":"uint256","internalType":"uint256"},{"name":"mintedShares","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"depositLimit","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"depositWhitelist","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"epochAt","inputs":[{"name":"timestamp","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"epochDuration","inputs":[],"outputs":[{"name":"","type":"uint48","internalType":"uint48"}],"stateMutability":"view"},{"type":"function","name":"epochDurationInit","inputs":[],"outputs":[{"name":"","type":"uint48","internalType":"uint48"}],"stateMutability":"view"},{"type":"function","name":"getRoleAdmin","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"grantRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"hasRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"initialize","inputs":[{"name":"initialVersion","type":"uint64","internalType":"uint64"},{"name":"owner_","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"isDelegatorInitialized","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isDepositLimit","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isDepositorWhitelisted","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"value","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isInitialized","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isSlasherInitialized","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isWithdrawalsClaimed","inputs":[{"name":"epoch","type":"uint256","internalType":"uint256"},{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"value","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"migrate","inputs":[{"name":"newVersion","type":"uint64","internalType":"uint64"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"nextEpochStart","inputs":[],"outputs":[{"name":"","type":"uint48","internalType":"uint48"}],"stateMutability":"view"},{"type":"function","name":"onSlash","inputs":[{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"captureTimestamp","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"slashedAmount","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"previousEpochStart","inputs":[],"outputs":[{"name":"","type":"uint48","internalType":"uint48"}],"stateMutability":"view"},{"type":"function","name":"redeem","inputs":[{"name":"claimer","type":"address","internalType":"address"},{"name":"shares","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"withdrawnAssets","type":"uint256","internalType":"uint256"},{"name":"mintedShares","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"renounceRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"callerConfirmation","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"revokeRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setDelegator","inputs":[{"name":"delegator_","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setDepositLimit","inputs":[{"name":"limit","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setDepositWhitelist","inputs":[{"name":"status","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setDepositorWhitelistStatus","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"status","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setIsDepositLimit","inputs":[{"name":"status","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setSlasher","inputs":[{"name":"slasher_","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"slashableBalanceOf","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"slasher","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"staticDelegateCall","inputs":[{"name":"target","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"totalStake","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"version","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"withdraw","inputs":[{"name":"claimer","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"burnedShares","type":"uint256","internalType":"uint256"},{"name":"mintedShares","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"withdrawalShares","inputs":[{"name":"epoch","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"withdrawalSharesOf","inputs":[{"name":"epoch","type":"uint256","internalType":"uint256"},{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"withdrawals","inputs":[{"name":"epoch","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"withdrawalsOf","inputs":[{"name":"epoch","type":"uint256","internalType":"uint256"},{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"event","name":"Claim","inputs":[{"name":"claimer","type":"address","indexed":true,"internalType":"address"},{"name":"recipient","type":"address","indexed":true,"internalType":"address"},{"name":"epoch","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"ClaimBatch","inputs":[{"name":"claimer","type":"address","indexed":true,"internalType":"address"},{"name":"recipient","type":"address","indexed":true,"internalType":"address"},{"name":"epochs","type":"uint256[]","indexed":false,"internalType":"uint256[]"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Deposit","inputs":[{"name":"depositor","type":"address","indexed":true,"internalType":"address"},{"name":"onBehalfOf","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"shares","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"OnSlash","inputs":[{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"captureTimestamp","type":"uint48","indexed":false,"internalType":"uint48"},{"name":"slashedAmount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"RoleAdminChanged","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"previousAdminRole","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"newAdminRole","type":"bytes32","indexed":true,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"RoleGranted","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"sender","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"RoleRevoked","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"sender","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"SetDelegator","inputs":[{"name":"delegator","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"SetDepositLimit","inputs":[{"name":"limit","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"SetDepositWhitelist","inputs":[{"name":"status","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"SetDepositorWhitelistStatus","inputs":[{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"status","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"SetIsDepositLimit","inputs":[{"name":"status","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"SetSlasher","inputs":[{"name":"slasher","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Withdraw","inputs":[{"name":"withdrawer","type":"address","indexed":true,"internalType":"address"},{"name":"claimer","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"burnedShares","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"mintedShares","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"error","name":"AccessControlBadConfirmation","inputs":[]},{"type":"error","name":"AccessControlUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"neededRole","type":"bytes32","internalType":"bytes32"}]},{"type":"error","name":"AddressEmptyCode","inputs":[{"name":"target","type":"address","internalType":"address"}]},{"type":"error","name":"AddressInsufficientBalance","inputs":[{"name":"account","type":"address","internalType":"address"}]},{"type":"error","name":"AlreadyClaimed","inputs":[]},{"type":"error","name":"AlreadyInitialized","inputs":[]},{"type":"error","name":"AlreadySet","inputs":[]},{"type":"error","name":"CheckpointUnorderedInsertion","inputs":[]},{"type":"error","name":"DelegatorAlreadyInitialized","inputs":[]},{"type":"error","name":"DepositLimitReached","inputs":[]},{"type":"error","name":"FailedInnerCall","inputs":[]},{"type":"error","name":"InsufficientClaim","inputs":[]},{"type":"error","name":"InsufficientDeposit","inputs":[]},{"type":"error","name":"InsufficientRedemption","inputs":[]},{"type":"error","name":"InsufficientWithdrawal","inputs":[]},{"type":"error","name":"InvalidAccount","inputs":[]},{"type":"error","name":"InvalidCaptureEpoch","inputs":[]},{"type":"error","name":"InvalidClaimer","inputs":[]},{"type":"error","name":"InvalidCollateral","inputs":[]},{"type":"error","name":"InvalidDelegator","inputs":[]},{"type":"error","name":"InvalidEpoch","inputs":[]},{"type":"error","name":"InvalidEpochDuration","inputs":[]},{"type":"error","name":"InvalidInitialization","inputs":[]},{"type":"error","name":"InvalidLengthEpochs","inputs":[]},{"type":"error","name":"InvalidOnBehalfOf","inputs":[]},{"type":"error","name":"InvalidRecipient","inputs":[]},{"type":"error","name":"InvalidSlasher","inputs":[]},{"type":"error","name":"InvalidTimestamp","inputs":[]},{"type":"error","name":"MathOverflowedMulDiv","inputs":[]},{"type":"error","name":"MissingRoles","inputs":[]},{"type":"error","name":"NoPreviousEpoch","inputs":[]},{"type":"error","name":"NotDelegator","inputs":[]},{"type":"error","name":"NotFactory","inputs":[]},{"type":"error","name":"NotInitialized","inputs":[]},{"type":"error","name":"NotInitializing","inputs":[]},{"type":"error","name":"NotSlasher","inputs":[]},{"type":"error","name":"NotWhitelistedDepositor","inputs":[]},{"type":"error","name":"OwnableInvalidOwner","inputs":[{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"OwnableUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"}]},{"type":"error","name":"ReentrancyGuardReentrantCall","inputs":[]},{"type":"error","name":"SafeCastOverflowedUintDowncast","inputs":[{"name":"bits","type":"uint8","internalType":"uint8"},{"name":"value","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"SafeERC20FailedOperation","inputs":[{"name":"token","type":"address","internalType":"address"}]},{"type":"error","name":"SlasherAlreadyInitialized","inputs":[]},{"type":"error","name":"TooMuchRedeem","inputs":[]},{"type":"error","name":"TooMuchWithdraw","inputs":[]}],"bytecode":{"object":"0x60e03461013c57601f614b8b38819003918201601f1916830192916001600160401b03918285118486101761014057816060928592604097885283398101031261013c5761004c82610154565b916100648461005d60208401610154565b9201610154565b9260805260a0527ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a009081549060ff82861c1661012b5780808316036100e7575b50505060c05251614a22908161016982396080518181816111a001526116d5015260a05181818161183e0152611d04015260c05181818161077001526109a30152f35b6001600160401b0319909116811790915582519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a15f80806100a4565b845163f92ee8a960e01b8152600490fd5b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b51906001600160a01b038216820361013c5756fe60806040526004361015610011575f80fd5b5f3560e01c806301ffc9a7146104345780631415519b1461042f5780631b66c9e11461042a5780631e9a695014610425578063248a9ca31461042057806327810b6e1461041b578063281f5752146104165780632abe3048146104115780632d73c69c1461040c5780632dd31000146104075780632f2ff15d1461040257806336568abe146103fd578063392e53cd146103f85780634105a7dd146103f357806346361671146103ee57806347e7ef24146103e957806348d3b775146103e45780634ff0876a146103df57806350861adc146103da57806350f22068146103d55780635346e34f146103d057806354fd4d50146103cb57806357ec83cc146103c657806359f769a9146103c15780635cc07076146103bc57806361a8c8c4146103b75780636da3e06d146103b25780636ec1e3f8146103ad578063715018a6146103a85780637278e31c146103a357806373790ab31461039e5780637667180814610399578063794b15b7146103945780637953b33b1461038f5780637c04c80a1461038a578063810da75d1461038557806383cd9cc31461038057806387df07881461037b5780638b0e9f3f146103765780638da5cb5b1461037157806391d148541461036c5780639d66201b146103675780639f86fd8514610362578063a1b122021461035d578063a217fddf14610358578063a21a1df914610353578063a28614661461034e578063a3b5417214610349578063a5d0322314610344578063aabc24961461033f578063aad3ec961461033a578063afba70ad14610335578063b134427114610330578063bd49c35f1461032b578063bdc8144b14610326578063bfefcd7b14610321578063c31e8dd71461031c578063ce9b793014610317578063d547741f14610312578063d8dfeb451461030d578063db38871514610308578063ecf7085814610303578063efb559d6146102fe578063f2fde38b146102f9578063f3fef3a3146102f45763f5e7ee0f146102ef575f80fd5b6123a1565b6122fb565b6122ce565b61217f565b612162565b612128565b6120fd565b6120b1565b612089565b61201f565b612005565b611f27565b611f0d565b611ee5565b611ebb565b611dfa565b611c43565b611bfd565b611bb0565b611abd565b611a83565b611a69565b611a45565b61199b565b611961565b611903565b6118cf565b61186d565b611829565b611670565b611657565b6115f1565b6115ca565b61158a565b611570565b61152f565b61125b565b6111f4565b6111cf565b61118b565b611138565b61110e565b6110e7565b610faf565b610f7d565b610ee8565b610ecf565b610e72565b610e52565b610e31565b610b73565b610b4b565b610ab0565b610a6b565b610a20565b6109d2565b61098e565b61091a565b61072b565b61065d565b610635565b6105fc565b610513565b6104c8565b61048e565b3461048a57602036600319011261048a5760043563ffffffff60e01b811680910361048a57602090637965db0b60e01b8114908115610479575b506040519015158152f35b6301ffc9a760e01b1490505f61046e565b5f80fd5b3461048a575f36600319011261048a5760206040517fc6aaadd7371d5e8f9ed6849dd66a66573a3ba37167d03f4352c9ba5693678fac8152f35b3461048a575f36600319011261048a5760206040517f9c56d972d63cbb4195b3c1484691dfc220fa96a4c47e7b6613bd82a022029e068152f35b6001600160a01b0381160361048a57565b3461048a57604036600319011261048a5760043561053081610502565b6024359061053c612bf5565b6001600160a01b038116156105eb57335f908152600e6020526040902061056790613c8a565b613c8a565b82116105d957610587610578613b9d565b610580613c16565b9084613cd7565b9182156105c4578261059892612c24565b906105af60015f805160206149ad83398151915255565b604080519182526020820192909252f35b0390f35b60405160016245ddc760e11b03198152600490fd5b604051632418411f60e11b8152600490fd5b6040516208978560e71b8152600490fd5b3461048a57602036600319011261048a576004355f525f8051602061498d8339815191526020526020600160405f200154604051908152f35b3461048a575f36600319011261048a576001546040516001600160a01b039091168152602090f35b3461048a575f36600319011261048a5761067561291a565b80156106d65760015465ffffffffffff8160a01c16915f1981019081116106d1576106a39160d01c906123fa565b81018091116106d1576106b86105c091612d9e565b60405165ffffffffffff90911681529081906020820190565b6123cb565b604051639fa56a5b60e01b8152600490fd5b600435906001600160401b038216820361048a57565b9181601f8401121561048a578235916001600160401b03831161048a576020838186019501011161048a57565b3461048a57604036600319011261048a576107446106e8565b6001600160401b0360243581811161048a576107649036906004016106fe565b505061076e612bf5565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633036107ea575f805160206149cd833981519152549060ff8260401c169283156107da575b5050506107c8575f80fd5b60405163f92ee8a960e01b8152600490fd5b81169116101590505f80806107bd565b604051631966391b60e11b8152600490fd5b65ffffffffffff81160361048a57565b634e487b7160e01b5f52604160045260245ffd5b606081019081106001600160401b0382111761083b57604052565b61080c565b604081019081106001600160401b0382111761083b57604052565b90601f801991011681019081106001600160401b0382111761083b57604052565b6040519061016082018281106001600160401b0382111761083b57604052565b604051906108a982610840565b565b6001600160401b03811161083b57601f01601f191660200190565b9291926108d2826108ab565b916108e0604051938461085b565b82948184528183011161048a578281602093845f960137010152565b9080601f8301121561048a57816020610917933591016108c6565b90565b3461048a57606036600319011261048a5760043561093781610502565b60243590610944826107fc565b604435906001600160401b03821161048a5760209261096a6109869336906004016108fc565b6001600160a01b039092165f908152600e855260409020612f8b565b604051908152f35b3461048a575f36600319011261048a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461048a57604036600319011261048a57610a1e6024356004356109f582610502565b805f525f8051602061498d833981519152602052610a19600160405f200154613162565b613462565b005b3461048a57604036600319011261048a57602435610a3d81610502565b336001600160a01b03821603610a5957610a1e90600435613498565b60405163334bd91960e11b8152600490fd5b3461048a575f36600319011261048a5760ff60025460a01c1680610a97575b6020906040519015158152f35b5060035460a01c60ff16610a8a565b8015150361048a57565b3461048a57602036600319011261048a57600435610acd81610aa6565b610ad5612bf5565b610add613057565b5f54901515908160ff8216151514610b395760ff191660ff8216175f556040519081527f3e12b7b36c75ac9609a3f58609b331210428e1a85909132638955ba0301eec3390602090a160015f805160206149ad83398151915255005b60405163a741a04560e01b8152600490fd5b3461048a575f36600319011261048a57602065ffffffffffff60015460a01c16604051908152f35b3461048a5760408060031936011261048a576004803591610b9383610502565b610b9b612bf5565b6001600160a01b0391838316908115610e23575f5460ff811680610e0a575b610dfb5783516370a0823160e01b808252308483019081529096602093909160109190911c82169084908490819083010381845afa928315610dd3575f93610dd8575b50610c0f90602435903090339061352a565b5f5486519788523085890190815290979184918391908290819060200103918b60101c165afa908115610dd357610c4e935f92610da6575b50506123ed565b938415610d975760081c60ff1680610d82575b610d745750906105c091610d12610c76613b9d565b95610cbf610c82613c16565b610caa610c908a838b613cd7565b99610ca48a610c9e42612d9e565b9261241b565b9061367e565b5050610cb989610c9e42612d9e565b9061375e565b50506001600160a01b0381165f908152600e6020526040902090610d0c88610d07610562610cec42612d9e565b6001600160a01b039095165f908152600e6020526040902090565b61241b565b9161383a565b505081518481526020810186905233907fdcbc1c05240f31ff3ad067ef1ee35ce4997762752e3a095284754544f4c709d790604090a3610d5e60015f805160206149ad83398151915255565b5191825260208201929092529081906040820190565b8251632484557960e01b8152fd5b50610d8f84610d07613b9d565b815410610c61565b50825163070f6eed60e11b8152fd5b610dc59250803d10610dcc575b610dbd818361085b565b810190612449565b5f80610c47565b503d610db3565b612458565b610c0f919350610df490853d8711610dcc57610dbd818361085b565b9290610bfd565b5082516304f63b8560e01b8152fd5b50335f9081526005602052604090205460ff1615610bba565b8251630d534ce360e11b8152fd5b3461048a575f36600319011261048a57602060ff5f54166040519015158152f35b3461048a575f36600319011261048a57602060015460d01c604051908152f35b3461048a575f36600319011261048a57602060ff60025460a01c166040519015158152f35b90604060031983011261048a57600435610eb0816107fc565b91602435906001600160401b03821161048a57610917916004016108fc565b3461048a576020610986610ee236610e97565b90612e01565b3461048a57602036600319011261048a57600435610f0581610aa6565b610f0d612bf5565b610f156130b4565b5f54901515908160ff8260081c16151514610b395761ff001916600882901b61ff0016175f556040519081527ffa7a25a0b611d4ba3c0ea990e90dc23d484a5dd7a1be4733fef2946ba74530c690602090a1610a1e60015f805160206149ad83398151915255565b3461048a575f36600319011261048a5760206001600160401b035f805160206149cd8339815191525416604051908152f35b3461048a57606036600319011261048a57610fc86106e8565b602435610fd481610502565b6001600160401b039160443583811161048a57610ff59036906004016106fe565b5f805160206149cd8339815191529491855494838616806110d65760ff8760401c169081156110c9575b506107c8577fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2966110c49661108c958716906001600160401b0319161790556110875f805160206149cd833981519152600160401b68ff000000000000000019825416179055565b612463565b5f805160206149cd833981519152805468ff0000000000000000191690556040516001600160401b0390911681529081906020820190565b0390a1005b905084861611155f61101f565b60405162dc149f60e41b8152600490fd5b3461048a57602036600319011261048a57602061098660043561110981610502565b612883565b3461048a57602036600319011261048a576004355f526006602052602060405f2054604051908152f35b3461048a575f36600319011261048a5760015465ffffffffffff61116e818360a01c169261116461291a565b9060d01c906123fa565b82018092116106d157611182602092612d9e565b60405191168152f35b3461048a575f36600319011261048a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461048a575f36600319011261048a57602060ff60035460a01c166040519015158152f35b3461048a575f36600319011261048a5761120c6139cc565b5f8051602061492d83398151915280546001600160a01b031981169091555f906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b3461048a57604036600319011261048a5760043560243561127b816107fc565b611283612bf5565b6003546112a0906001600160a01b03165b6001600160a01b031690565b330361151d576112ae61291a565b906112b88161294e565b908215158061150c575b8015611503575b6114f1576105c0937ff9d090c096f71cd1659861a9ce5b6f384bceb4e2fa4e4a19edf6489a9b8d56c7926112fb613b9d565b946113166113088261240d565b5f52600660205260405f2090565b549082810361140a575061132a818761241b565b6113348185613a04565b9687806113c3575b50505050505b8361138f575b6040805191825265ffffffffffff929092166020820152908101839052606090a161137f60015f805160206149ad83398151915255565b6040519081529081906020820190565b5f546113be9085906113ac9060101c6001600160a01b0316611294565b6001546001600160a01b031690613ab2565b611348565b6113ff93610c4783610ca46113e96113e2611308986113f99888613a20565b80966123ed565b946113f342612d9e565b926123ed565b9261240d565b555f8080808761133c565b915061141e825f52600660205260405f2090565b549061142e81610d07848a61241b565b906114398286613a04565b978861144a575b5050505050611342565b6114bf93836114729361147f8c61147a6114686114b0998884613a20565b9788958584613a20565b9485926123ed565b6123ed565b938484106114ca575b610c4790610ca461149e9596976113f342612d9e565b6114aa6113088761240d565b556123ed565b915f52600660205260405f2090565b555f80808080611440565b916114e6610c47916114e08661149e97986123ed565b9061241b565b859450929050611488565b604051635e18d2a560e01b8152600490fd5b508282116112c9565b50611516836123df565b82106112c2565b60405163dabc4ad960e01b8152600490fd5b3461048a575f36600319011261048a5760015465ffffffffffff808260a01c169161155861291a565b600181018091116106d15761116e9160d01c906123fa565b3461048a575f36600319011261048a57602061098661291a565b3461048a57602036600319011261048a576004356115a781610502565b60018060a01b03165f526005602052602060ff60405f2054166040519015158152f35b3461048a57602036600319011261048a5760206109866004356115ec816107fc565b61294e565b3461048a57604036600319011261048a5760043561160e81610502565b6024356001600160401b0380821161048a573660238301121561048a57816004013590811161048a573660248260051b8401011161048a576105c092602461137f930190612989565b3461048a57602061098661166a36610e97565b90612ed6565b3461048a5760208060031936011261048a57600480359061169082610502565b611698612bf5565b60025460a01c60ff1661181a576040516302910f8b60e31b81526001600160a01b03838116838301908152909491908290829081906020010381887f0000000000000000000000000000000000000000000000000000000000000000165afa908115610dd3575f916117ed575b50156117dd5760405163fbfa77cf60e01b8152838516949082818581895afa928315610dd3575f936117ae575b50503091160361179f5750600280546001600160a01b03929092166001600160a81b031990921691909117600160a01b1790557fdb2160616f776a37b24808115554e79439bf26cccbbd4438190cc6d28e80ecd15f80a2610a1e60015f805160206149ad83398151915255565b60405163b9f0f17160e01b8152fd5b6117ce929350803d106117d6575b6117c6818361085b565b810190612ae2565b905f80611732565b503d6117bc565b506040516324e5af8d60e21b8152fd5b61180d9150823d8411611813575b611805818361085b565b810190612ac2565b5f611705565b503d6117fb565b604051631380833b60e01b8152fd5b3461048a575f36600319011261048a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461048a575f36600319011261048a5761188561291a565b61188d613b9d565b90805f52600660205260405f205482018092116106d157600181018091116106d1575f52600660205260405f205481018091116106d157602090604051908152f35b3461048a575f36600319011261048a575f8051602061492d833981519152546040516001600160a01b039091168152602090f35b3461048a57604036600319011261048a57602060ff61195560243561192781610502565b6004355f525f8051602061498d833981519152845260405f209060018060a01b03165f5260205260405f2090565b54166040519015158152f35b3461048a57602036600319011261048a5760043561197e81610502565b60018060a01b03165f52600e602052602061098660405f20613c8a565b3461048a57604036600319011261048a576004356119b881610502565b6024356001600160401b03811161048a575f916119da839236906004016106fe565b90816040519283928337810184815203915af4611a3d60806119fa612af7565b9260206040519485921515828401526040808401528051918291826060860152018484015e5f838284010152601f8019910116810103606081018452018261085b565b805190602001fd5b3461048a575f36600319011261048a57602060ff5f5460081c166040519015158152f35b3461048a575f36600319011261048a5760206040515f8152f35b3461048a575f36600319011261048a5760206040517f4a634bc14d77baf979756509ef4298c6f6318af357828612545267ee2eb792338152f35b3461048a57604036600319011261048a57600435611ada81610502565b602435611ae681610aa6565b611aee612bf5565b611af661310b565b6001600160a01b038216918215611b9e575f8381526005602052604090205460ff16151582151514610b39576001600160a01b03165f9081526005602052604090207ff991b1ecfb5115cbb36a2b2e2240c058406d2acc2fcc6e9e2dc99d845ff70a6291611b8591611b73908260ff801983541691151516179055565b60405190151581529081906020820190565b0390a2610a1e60015f805160206149ad83398151915255565b604051630da30f6560e31b8152600490fd5b3461048a57604036600319011261048a576020611bf4602435611bd281610502565b6004355f526008835260405f209060018060a01b03165f5260205260405f2090565b54604051908152f35b3461048a57604036600319011261048a57602060ff611955602435611c2181610502565b6004355f526009845260405f209060018060a01b03165f5260205260405f2090565b3461048a5760208060031936011261048a576004803590611c6382610502565b611c6b612bf5565b60035460a01c60ff16611deb576001600160a01b03828116939084611cd9575b6003805460ff60a01b1916600160a01b179055847fe7e4c932e03abddfe20f83af42c33627e816115c7ec2b168441f65dc14bfc3ba5f80a2610a1e60015f805160206149ad83398151915255565b6040516302910f8b60e31b81526001600160a01b0385168482019081528390829081906020010381857f0000000000000000000000000000000000000000000000000000000000000000165afa908115610dd3575f91611dce575b5015611dbd5760405163fbfa77cf60e01b815282818581895afa928315610dd3575f93611d9e575b505030911603611d8f5750600380546001600160a01b0319166001600160a01b039092169190911790555f808080611c8b565b604051633f3e089160e21b8152fd5b611db5929350803d106117d6576117c6818361085b565b905f80611d5c565b60405163dabc4ad960e01b81528390fd5b611de59150833d851161181357611805818361085b565b5f611d34565b60405163703fe2e560e01b8152fd5b3461048a57604036600319011261048a57600435611e1781610502565b60243590611e23612bf5565b6001600160a01b0391818316908115611ea957611e546105c094611e4683613b01565b9485915f5460101c16613ab2565b604080519182526020820184905233917f865ca08d59f5cb456e85cd2f7ef63664ea4f73327414e9d8152c4158b0e946459190a360015f805160206149ad833981519152556040519081529081906020820190565b604051634e46966960e11b8152600490fd5b3461048a57602036600319011261048a576004355f526007602052602060405f2054604051908152f35b3461048a575f36600319011261048a576003546040516001600160a01b039091168152602090f35b3461048a575f36600319011261048a576020610986613b9d565b3461048a57602036600319011261048a57600435611f43612bf5565b335f9081527f2d4ccbfe9f7672a6f2537c1e5bce6adacb73706879154bbab6ce096012d6721660205260409020547f4a634bc14d77baf979756509ef4298c6f6318af357828612545267ee2eb792339060ff1615611fe757508060045414610b39576020817f854df3eb95564502c8bc871ebdd15310ee26270f955f6c6bd8cea68e75045bc092600455604051908152a160015f805160206149ad83398151915255005b6044906040519063e2517d3f60e01b82523360048301526024820152fd5b3461048a575f36600319011261048a576020610986613c16565b3461048a57602036600319011261048a5760043561203c81610502565b61204461291a565b61204d82612883565b916120588183612b97565b83018093116106d157600182018092116106d15761207591612b97565b81018091116106d157602090604051908152f35b3461048a575f36600319011261048a576002546040516001600160a01b039091168152602090f35b3461048a57604036600319011261048a57610a1e6024356004356120d482610502565b805f525f8051602061498d8339815191526020526120f8600160405f200154613162565b613498565b3461048a575f36600319011261048a575f5460405160109190911c6001600160a01b03168152602090f35b3461048a575f36600319011261048a5760206040517fbae4ee3de6c709ff9a002e774c5b78cb381560b219213c88ae0f1e207c03c0238152f35b3461048a575f36600319011261048a576020600454604051908152f35b3461048a57606036600319011261048a5760043561219c81610502565b602435906121a9826107fc565b6001600160401b039160443583811161048a576121ca9036906004016106fe565b909260409384516121da81610820565b60608152606060208201526060868201529280612239575b6105c08661222a878761222461220b8984845191612428565b928561221b602085015183612ed6565b93015190612e01565b91613cd7565b90519081529081906020820190565b810193925060208185031261048a5780359086821161048a57019260608482031261048a5784519561226a87610820565b843581811161048a578261227f9187016108fc565b8752602085013581811161048a57826122999187016108fc565b60208801528585013590811161048a576105c0966122c26122249361220b9361222a98016108fc565b878201529394506121f2565b3461048a57602036600319011261048a57610a1e6004356122ee81610502565b6122f66139cc565b612b26565b3461048a57604036600319011261048a5760043561231881610502565b602435612323612bf5565b6001600160a01b038216156105eb57801561238f57612352612343613c16565b61234b613b9d565b9083614121565b335f908152600e6020526040902090929061236c90613c8a565b831161237d57610598918391612c24565b6040516321727a3760e11b8152600490fd5b604051636c6c627d60e11b8152600490fd5b3461048a57604036600319011261048a5760206109866024356123c381610502565b600435612b97565b634e487b7160e01b5f52601160045260245ffd5b5f198101919082116106d157565b919082039182116106d157565b818102929181159184041417156106d157565b90600182018092116106d157565b919082018092116106d157565b6001600160a01b03165f908152600e60205260409020610917929190612f8b565b9081602091031261048a575190565b6040513d5f823e3d90fd5b916124b5916124a691612474614268565b61247c614268565b60015f805160206149ad833981519152556001600160a01b0394808616612869575b5036916108c6565b60208082518301019101613903565b805182166001600160a01b03161561285757604080820165ffffffffffff6124e3825165ffffffffffff1690565b16156128465760c083018051909290612504906001600160a01b0316611294565b156126f7575b5091612643610140926125e26125bd6126a196612558612530875160018060a01b031690565b5f805462010000600160b01b03191660109290921b62010000600160b01b0316919091179055565b6020860151600180546001600160a01b0319166001600160a01b039092169190911790556125b161258842612d9e565b6001805465ffffffffffff60a01b191660a09290921b65ffffffffffff60a01b16919091179055565b5165ffffffffffff1690565b600180546001600160d01b031660d09290921b6001600160d01b031916919091179055565b6126026125f26060850151151590565b60ff80195f541691151516175f55565b6126296126126080850151151590565b61ff005f5491151560081b169061ff001916175f55565b61263660a0840151600455565b516001600160a01b031690565b8481166126e7575b5060e08101516001600160a01b03168481166126d7575b506101008101516001600160a01b03168481166126c7575b506101208101516001600160a01b03168481166126b7575b5001516001600160a01b031690565b9081166126ab5750565b6126b4906133f3565b50565b6126c090613384565b505f612692565b6126d090613315565b505f61267a565b6126e09061323f565b505f612662565b6126f09061318e565b505f61264b565b60e084015161270e906001600160a01b0316611294565b156127e3575b61012084015161272c906001600160a01b0316611294565b61250a576080840151156127995760a0840151158061277a575b61276a575091612643610140926125e26125bd6126a1965b9496505050925061250a565b5163183c854560e21b8152600490fd5b50610140840151612793906001600160a01b0316611294565b15612746565b60a0840151158015906127c3575b61276a575091612643610140926125e26125bd6126a19661275e565b506101408401516127dc906001600160a01b0316611294565b15156127a7565b60608401511561281957610100840151612805906001600160a01b0316611294565b612714575163183c854560e21b8152600490fd5b610100840151612831906001600160a01b0316611294565b15612714575163183c854560e21b8152600490fd5b81516368f5f8f160e11b8152600490fd5b6040516368f7a67560e11b8152600490fd5b61287d90612875614268565b6122f6614268565b5f61249e565b6001600160a01b03165f908152600e602052604090206128a290613c8a565b6128aa613b9d565b6128b2613c16565b90600181018091116106d157600182018092116106d15761091792613a20565b65ffffffffffff91821690821603919082116106d157565b634e487b7160e01b5f52601260045260245ffd5b9065ffffffffffff80911691821561291557160490565b6128ea565b61292342612d9e565b61294a60015461294065ffffffffffff93848360a01c16906128d2565b9060d01c906128fe565b1690565b6001549065ffffffffffff91828160a01c169182848216106129775761294a92612940916128d2565b60405163b7d0949760e01b8152600490fd5b90612992612bf5565b5f926001600160a01b038316928315611ea9578115612a4a575f5b828110612a2857505f547f326b6aff1cd2fb1c8234de4f9dcfb9047c5c36eb9ef2eb34af5121e969a75d2792869290916129fd9184916129f89060101c6001600160a01b0316611294565b613ab2565b612a0e604051928392339684612a85565b0390a3906108a960015f805160206149ad83398151915255565b94612a436001916114e0612a3d898789612a70565b35613b01565b95016129ad565b60405163edf3b93360e01b8152600490fd5b634e487b7160e01b5f52603260045260245ffd5b9190811015612a805760051b0190565b612a5c565b604080825281018390529392916001600160fb1b03811161048a5760209160609160051b809183880137850101930152565b51906108a982610aa6565b9081602091031261048a575161091781610aa6565b51906108a982610502565b9081602091031261048a575161091781610502565b3d15612b21573d90612b08826108ab565b91612b16604051938461085b565b82523d5f602084013e565b606090565b6001600160a01b03908116908115612b7f575f8051602061492d83398151915280546001600160a01b031981168417909155167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3565b604051631e4fbdf760e01b81525f6004820152602490fd5b90612bbd90825f52600860205260405f209060018060a01b03165f5260205260405f2090565b54905f52600660205260405f2054600760205260405f205490600181018091116106d157600182018092116106d15761091792613a20565b5f805160206149ad8339815191526002815414612c125760029055565b604051633ee5aeb560e01b8152600490fd5b335f908152600e6020526040902093929190612c3f42612d9e565b335f908152600e60205260409020612c5690613c8a565b918483039283116106d157612c917febff2602b3f468259e1e99f613fed6691f3a6526effe6ef3e768ba7ae7a36c4f938593612d1c9961383a565b5050612cab612c9f42612d9e565b610cb98761147a613c16565b5050612cc5612cb942612d9e565b610ca48461147a613b9d565b5050612d6a81612d55612cde612cd961291a565b61240d565b612d34612cf3825f52600660205260405f2090565b54612d06835f52600760205260405f2090565b54612d1282828b613cd7565b9d8e998a9361241b565b612d2e855f52600660205260405f2090565b5561241b565b612d46825f52600760205260405f2090565b555f52600860205260405f2090565b9060018060a01b03165f5260205260405f2090565b612d7583825461241b565b9055604080519485526020850195909552938301526001600160a01b03909216913391606090a3565b65ffffffffffff90818111612db1571690565b604490604051906306dfcc6560e41b8252603060048301526024820152fd5b9081602091031261048a575163ffffffff8116810361048a5790565b90600163ffffffff809316019182116106d157565b90805115612ecc5780602080612e1c93518301019101612dd0565b612e2581613f48565b90612e36825165ffffffffffff1690565b9065ffffffffffff8085169216828114612ec05782119182612e6c575b5050612e63575061091790613cf8565b60209150015190565b909150612e7a600a546123df565b63ffffffff831614918215612e93575b50505f80612e53565b612eb89192506125b1612ea8612ead92612dec565b613f48565b65ffffffffffff1690565b115f80612e8a565b50505060209150015190565b5061091790613cf8565b90805115612f815780602080612ef193518301019101612dd0565b612efa81613fcd565b90612f0b825165ffffffffffff1690565b9065ffffffffffff8085169216828114612ec05782119182612f38575b5050612e63575061091790613dbf565b909150612f46600c546123df565b63ffffffff831614918215612f5f575b50505f80612f28565b612f799192506125b1612f74612ead92612dec565b613fcd565b115f80612f56565b5061091790613dbf565b9180511561304d5780602080612fa693518301019101612dd0565b91612fb18382614048565b92612fc2845165ffffffffffff1690565b9065ffffffffffff80851692168281146130415782119182612ff8575b5050612fef576109179250613e7f565b50506020015190565b90915061300583546123df565b63ffffffff83161491821561301e575b50505f80612fdf565b6130399192506125b1613033612ead92612dec565b85614048565b115f80613015565b50505050506020015190565b5061091791613e7f565b335f9081527f03b26b53c87faa1058f30bb5d2fee64f717719a0d9b7e4f4df027aa5e9b6ed69602052604090207fbae4ee3de6c709ff9a002e774c5b78cb381560b219213c88ae0f1e207c03c0239060ff905b541615611fe75750565b335f9081527fe41986b390c4ce6791b87f7423b5fab7a81a0e6d89660b6264f697d008b2243a602052604090207fc6aaadd7371d5e8f9ed6849dd66a66573a3ba37167d03f4352c9ba5693678fac9060ff906130aa565b335f9081527f0287ab4cb376ea253d7b2ce0c2cbf458f7deae9458470d74afdfbbee484e9540602052604090207f9c56d972d63cbb4195b3c1484691dfc220fa96a4c47e7b6613bd82a022029e069060ff906130aa565b5f8181525f8051602061498d83398151915260209081526040808320338452909152902060ff906130aa565b6001600160a01b0381165f9081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d60205260409020545f8051602061498d8339815191529060ff16613239575f808052602091825260408082206001600160a01b038516835290925220805460ff1916600117905533906001600160a01b03165f7f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d8180a4600190565b50505f90565b6001600160a01b0381165f9081527f03b26b53c87faa1058f30bb5d2fee64f717719a0d9b7e4f4df027aa5e9b6ed69602052604090207fbae4ee3de6c709ff9a002e774c5b78cb381560b219213c88ae0f1e207c03c023905f8051602061498d8339815191529060ff905b541661330e575f828152602091825260408082206001600160a01b038616835290925220805460ff1916600117905533916001600160a01b0316907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d5f80a4600190565b5050505f90565b6001600160a01b0381165f9081527f0287ab4cb376ea253d7b2ce0c2cbf458f7deae9458470d74afdfbbee484e9540602052604090207f9c56d972d63cbb4195b3c1484691dfc220fa96a4c47e7b6613bd82a022029e06905f8051602061498d8339815191529060ff906132aa565b6001600160a01b0381165f9081527fe41986b390c4ce6791b87f7423b5fab7a81a0e6d89660b6264f697d008b2243a602052604090207fc6aaadd7371d5e8f9ed6849dd66a66573a3ba37167d03f4352c9ba5693678fac905f8051602061498d8339815191529060ff906132aa565b6001600160a01b0381165f9081527f2d4ccbfe9f7672a6f2537c1e5bce6adacb73706879154bbab6ce096012d67216602052604090207f4a634bc14d77baf979756509ef4298c6f6318af357828612545267ee2eb79233905f8051602061498d8339815191529060ff906132aa565b5f8181525f8051602061498d833981519152602081815260408084206001600160a01b038716855290915290912060ff906132aa565b5f8181525f8051602061498d833981519152602081815260408084206001600160a01b03871685529091529091205460ff161561330e575f828152602091825260408082206001600160a01b038616835290925220805460ff1916905533916001600160a01b0316907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b5f80a4600190565b6040516323b872dd60e01b60208201526001600160a01b03928316602482015292909116604483015260648083019390935291815260a08101918183106001600160401b0384111761083b576108a9926040526140b0565b600b54811015612a8057600b5f525f8051602061496d83398151915201905f90565b600d54811015612a8057600d5f525f8051602061494d83398151915201905f90565b8054821015612a80575f5260205f2001905f90565b600d54600160401b81101561083b576001810180600d55811015612a8057600d5f525f8051602061494d8339815191520155565b600b54600160401b81101561083b576001810180600b55811015612a8057600b5f525f8051602061496d8339815191520155565b90815491600160401b83101561083b57826136669160016108a9950181556135c6565b90919082549060031b91821b915f19901b1916179055565b919091600d9081548015613729575b50613696614185565b509290918154926136a5613b9d565b9481613714575b50156136f157505f1982018281116106d15781541115612a80575f527fd7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb4018390559190565b613705926001600160d01b0316915061439f565b5050613710836135db565b9190565b65ffffffffffff83811691161490505f6136ac565b600160401b81101561083b5760018101808455811015612a80575f908382525f8051602061494d83398151915201555f61368d565b919091600b9081548015613805575b506137766141f0565b50929091815492613785613c16565b94816137f0575b50156137d157505f1982018281116106d15781541115612a80575f527f0175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db8018390559190565b6137e5926001600160d01b0316915061449f565b50506137108361360f565b65ffffffffffff83811691161490505f61378c565b600160401b81101561083b5760018101808455811015612a80575f908382525f8051602061496d83398151915201555f61376d565b909291926001820190815480156138c8575b50846138578461423a565b5094909284549361386783613c8a565b96816138b3575b5015613890575050505f1981019081116106d1576136668591613710936135c6565b6137109492936138ac926001600160d01b039091169190614549565b5050613643565b65ffffffffffff83811691161490505f61386e565b600160401b81101561083b578060016138e492018455836135c6565b8154905f199060031b1b191690555f61384c565b51906108a9826107fc565b908161016091031261048a5761391761087c565b9061392181612ad7565b825261392f60208201612ad7565b6020830152613940604082016138f8565b604083015261395160608201612ab7565b606083015261396260808201612ab7565b608083015260a081015160a083015261397d60c08201612ad7565b60c083015261398e60e08201612ad7565b60e08301526101006139a1818301612ad7565b908301526101206139b3818301612ad7565b908301526139c5610140809201612ad7565b9082015290565b5f8051602061492d833981519152546001600160a01b031633036139ec57565b60405163118cdaa760e01b8152336004820152602490fd5b9080821015613a11575090565b905090565b8115612915570490565b9091828202915f1984820993838086109503948086039514613aa55784831115613a9357829109815f038216809204600280826003021880830282030280830282030280830282030280830282030280830282030280920290030293600183805f03040190848311900302920304170290565b60405163227bc15360e01b8152600490fd5b5050906109179250613a16565b60405163a9059cbb60e01b60208201526001600160a01b03909216602483015260448083019390935291815260808101916001600160401b0383118284101761083b576108a9926040526140b0565b90613b0a61291a565b821015613b8b575f82815260096020908152604080832033845290915290205460ff16613b7957613b3b3383612b97565b918215613b67575f9081526009602090815260408083203384529091529020805460ff19166001179055565b6040516366c0bcbf60e11b8152600490fd5b604051630c8d9eab60e31b8152600490fd5b60405163d5b25b6360e01b8152600490fd5b600c5480613bdd57505f5b6001600160d01b03811615613bd857600d54811015612a8057600d5f525f8051602061494d833981519152015490565b505f90565b805f198101116106d157600c5f527fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c6015460301c613ba8565b600a5480613c5157505f5b6001600160d01b03811615613bd857600b54811015612a8057600b5f525f8051602061496d833981519152015490565b805f198101116106d157600a5f527fc65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a7015460301c613c21565b805480613cb957505f5b6001600160d01b03811615613239576001613caf92016135c6565b90549060031b1c90565b5f199080828101116106d157825f5260205f2001015460301c613c94565b9190600181018091116106d157600182018092116106d15761091792613a20565b600a54905f829160058411613d66575b613d129350614755565b80613d3557505f5b6001600160d01b03811615613bd857613caf61091791613582565b613d5a613d44613d61926123df565b600a5f525f8051602061490d8339815191520190565b5460301c90565b613d1a565b9192613d718161461c565b81039081116106d157613d1293600a5f5265ffffffffffff80835f8051602061490d833981519152015416908516105f14613dad575091613d08565b929150613db99061240d565b90613d08565b600c54905f829160058411613e26575b613dd993506147be565b80613dfc57505f5b6001600160d01b03811615613bd857613caf610917916135a4565b613d5a613e0b613e21926123df565b600c5f525f805160206148ed8339815191520190565b613de1565b9192613e318161461c565b81039081116106d157613dd993600c5f5265ffffffffffff80835f805160206148ed833981519152015416908516105f14613e6d575091613dcf565b929150613e799061240d565b90613dcf565b908154905f829160058411613ee2575b613e9a935084614827565b80613ec257505f905b6001600160d01b0382161561323957610917916001613caf92016135c6565b613d5a613ed1613edc926123df565b835f5260205f200190565b90613ea3565b9192613eed8161461c565b81039081116106d157613e9a93855f5265ffffffffffff808360205f20015416908516105f14613f1e575091613e8f565b929150613f2a9061240d565b90613e8f565b60405190613f3d82610840565b5f6020838281520152565b613f50613f30565b50613f59613f30565b50600a54811015612a8057613f8090600a5f525f8051602061490d83398151915201614161565b65ffffffffffff81511690602060018060d01b0391015116600b54811015612a8057600b5f525f8051602061496d833981519152015460405191613fc383610840565b8252602082015290565b613fd5613f30565b50613fde613f30565b50600c54811015612a805761400590600c5f525f805160206148ed83398151915201614161565b65ffffffffffff81511690602060018060d01b0391015116600d54811015612a8057600d5f525f8051602061494d833981519152015460405191613fc383610840565b9061407161406b6140929261405b613f30565b50614064613f30565b50846135c6565b50614161565b91600165ffffffffffff845116936020828060d01b039101511691016135c6565b905490604051926140a284610840565b835260031b1c602082015290565b5f806140d89260018060a01b03169360208151910182865af16140d1612af7565b9083614889565b8051908115159182614106575b50506140ee5750565b60249060405190635274afe760e01b82526004820152fd5b6141199250602080918301019101612ac2565b155f806140e5565b9190600181018091116106d157600182018092116106d157614144828285613a20565b92821561291557096141535790565b600181018091116106d15790565b9060405161416e81610840565b915465ffffffffffff8116835260301c6020830152565b600c548061419657505f905f905f90565b805f198101116106d1577fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c66141cf91600c5f5201614161565b9065ffffffffffff82511691602060018060d01b0391015116906001929190565b600a548061420157505f905f905f90565b805f198101116106d1577fc65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a76141cf91600a5f5201614161565b80548061424b5750505f905f905f90565b5f199080828101116106d1576141cf925f5260205f200101614161565b60ff5f805160206149cd8339815191525460401c161561428457565b604051631afcd79f60e31b8152600490fd5b600c5490600160401b82101561083b576001820180600c55821015612a8057600c5f52805160209091015160301b65ffffffffffff191665ffffffffffff91909116175f805160206148ed83398151915290910155565b600a5490600160401b82101561083b576001820180600a55821015612a8057600a5f52805160209091015160301b65ffffffffffff191665ffffffffffff91909116175f8051602061490d83398151915290910155565b8054600160401b81101561083b57614361916001820181556135c6565b61438c57815160209092015160301b65ffffffffffff191665ffffffffffff92909216919091179055565b634e487b7160e01b5f525f60045260245ffd5b600c54919291908115614476576143c06143bb613e0b846123df565b614161565b805165ffffffffffff83811694911684106144645785602093613710956143f0612ead865165ffffffffffff1690565b0361442c5750614405613e0b61441e936123df565b9065ffffffffffff82549181199060301b169116179055565b01516001600160d01b031690565b905061445f915061444c61443e61089c565b65ffffffffffff9092168252565b6001600160d01b03871681850152614296565b61441e565b604051632520601d60e01b8152600490fd5b61449a915061448661443e61089c565b6001600160d01b0384166020820152614296565b5f9190565b600a54919291908115614525576144bb6143bb613d44846123df565b805165ffffffffffff83811694911684106144645785602093613710956144eb612ead865165ffffffffffff1690565b036145005750614405613d4461441e936123df565b905061445f915061451261443e61089c565b6001600160d01b038716818501526142ed565b61449a915061453561443e61089c565b6001600160d01b03841660208201526142ed565b8054929392919082156145f8576145656143bb613ed1856123df565b90614576825165ffffffffffff1690565b65ffffffffffff84811691168110614464576137109460209488926145a4612ead875165ffffffffffff1690565b036145c5575061441e926145ba614405926123df565b905f5260205f200190565b91505061445f916145e56145d761089c565b65ffffffffffff9093168352565b6001600160d01b03881682860152614344565b61449a92506146086145d761089c565b6001600160d01b0385166020830152614344565b8015613bd857806146ee6146e76146dd6146d36146c96146bf6146b56146ab60016109179a5f908b60801c80614749575b508060401c8061473c575b508060201c8061472f575b508060101c80614722575b508060081c80614715575b508060041c80614708575b508060021c806146fb575b50821c6146f4575b811c1b6146a4818b613a16565b0160011c90565b6146a4818a613a16565b6146a48189613a16565b6146a48188613a16565b6146a48187613a16565b6146a48186613a16565b6146a48185613a16565b8092613a16565b90613a04565b8101614697565b600291509101905f61468f565b600491509101905f614684565b600891509101905f614679565b601091509101905f61466e565b602091509101905f614663565b604091509101905f614658565b9150506080905f61464d565b905b82811061476357505090565b9091808216906001818418811c83018093116106d157600a5f5265ffffffffffff80845f8051602061490d833981519152015416908616105f146147ab575050915b90614757565b9093925081018091116106d157906147a5565b905b8281106147cc57505090565b9091808216906001818418811c83018093116106d157600c5f5265ffffffffffff80845f805160206148ed833981519152015416908616105f14614814575050915b906147c0565b9093925081018091116106d1579061480e565b91905b8382106148375750505090565b909192808316906001818518811c83018093116106d157855f5265ffffffffffff808460205f20015416908516105f14614876575050925b919061482a565b9094935081018091116106d1579161486f565b906148b0575080511561489e57805190602001fd5b604051630a12f52160e11b8152600490fd5b815115806148e3575b6148c1575090565b604051639996b31560e01b81526001600160a01b039091166004820152602490fd5b50803b156148b956fedf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c7c65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a89016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300d7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb50175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db902dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268009b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a26469706673582212201a50e827895a2cd73f911caab81ce70f82197386d81e8f679668f87cbe90c41164736f6c63430008190033","sourceMap":"981:14960:95:-:0;;;;;;;;;;;;;-1:-1:-1;;981:14960:95;;;;;-1:-1:-1;;;;;981:14960:95;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;:::i;:::-;3173:36:96;;;3219:32;;8837:64:25;981:14960:95;;;;;;;;;7896:76:25;;981:14960:95;;;;7985:34:25;7981:146;;-1:-1:-1;927:17:71;;;;;981:14960:95;;;;;;;3173:36:96;981:14960:95;;;;;;;;;;3219:32:96;981:14960:95;;;;;;;;;;927:17:71;981:14960:95;;;;;;;;;;;7981:146:25;-1:-1:-1;;;;;;981:14960:95;;;;;;;;;;;;;8087:29:25;;981:14960:95;;8087:29:25;7981:146;;;;;7896:76;981:14960:95;;-1:-1:-1;;;7938:23:25;;;;;981:14960:95;-1:-1:-1;981:14960:95;;;;;;-1:-1:-1;981:14960:95;;;;;-1:-1:-1;981:14960:95;;;;-1:-1:-1;;;;;981:14960:95;;;;;;:::o","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361015610011575f80fd5b5f3560e01c806301ffc9a7146104345780631415519b1461042f5780631b66c9e11461042a5780631e9a695014610425578063248a9ca31461042057806327810b6e1461041b578063281f5752146104165780632abe3048146104115780632d73c69c1461040c5780632dd31000146104075780632f2ff15d1461040257806336568abe146103fd578063392e53cd146103f85780634105a7dd146103f357806346361671146103ee57806347e7ef24146103e957806348d3b775146103e45780634ff0876a146103df57806350861adc146103da57806350f22068146103d55780635346e34f146103d057806354fd4d50146103cb57806357ec83cc146103c657806359f769a9146103c15780635cc07076146103bc57806361a8c8c4146103b75780636da3e06d146103b25780636ec1e3f8146103ad578063715018a6146103a85780637278e31c146103a357806373790ab31461039e5780637667180814610399578063794b15b7146103945780637953b33b1461038f5780637c04c80a1461038a578063810da75d1461038557806383cd9cc31461038057806387df07881461037b5780638b0e9f3f146103765780638da5cb5b1461037157806391d148541461036c5780639d66201b146103675780639f86fd8514610362578063a1b122021461035d578063a217fddf14610358578063a21a1df914610353578063a28614661461034e578063a3b5417214610349578063a5d0322314610344578063aabc24961461033f578063aad3ec961461033a578063afba70ad14610335578063b134427114610330578063bd49c35f1461032b578063bdc8144b14610326578063bfefcd7b14610321578063c31e8dd71461031c578063ce9b793014610317578063d547741f14610312578063d8dfeb451461030d578063db38871514610308578063ecf7085814610303578063efb559d6146102fe578063f2fde38b146102f9578063f3fef3a3146102f45763f5e7ee0f146102ef575f80fd5b6123a1565b6122fb565b6122ce565b61217f565b612162565b612128565b6120fd565b6120b1565b612089565b61201f565b612005565b611f27565b611f0d565b611ee5565b611ebb565b611dfa565b611c43565b611bfd565b611bb0565b611abd565b611a83565b611a69565b611a45565b61199b565b611961565b611903565b6118cf565b61186d565b611829565b611670565b611657565b6115f1565b6115ca565b61158a565b611570565b61152f565b61125b565b6111f4565b6111cf565b61118b565b611138565b61110e565b6110e7565b610faf565b610f7d565b610ee8565b610ecf565b610e72565b610e52565b610e31565b610b73565b610b4b565b610ab0565b610a6b565b610a20565b6109d2565b61098e565b61091a565b61072b565b61065d565b610635565b6105fc565b610513565b6104c8565b61048e565b3461048a57602036600319011261048a5760043563ffffffff60e01b811680910361048a57602090637965db0b60e01b8114908115610479575b506040519015158152f35b6301ffc9a760e01b1490505f61046e565b5f80fd5b3461048a575f36600319011261048a5760206040517fc6aaadd7371d5e8f9ed6849dd66a66573a3ba37167d03f4352c9ba5693678fac8152f35b3461048a575f36600319011261048a5760206040517f9c56d972d63cbb4195b3c1484691dfc220fa96a4c47e7b6613bd82a022029e068152f35b6001600160a01b0381160361048a57565b3461048a57604036600319011261048a5760043561053081610502565b6024359061053c612bf5565b6001600160a01b038116156105eb57335f908152600e6020526040902061056790613c8a565b613c8a565b82116105d957610587610578613b9d565b610580613c16565b9084613cd7565b9182156105c4578261059892612c24565b906105af60015f805160206149ad83398151915255565b604080519182526020820192909252f35b0390f35b60405160016245ddc760e11b03198152600490fd5b604051632418411f60e11b8152600490fd5b6040516208978560e71b8152600490fd5b3461048a57602036600319011261048a576004355f525f8051602061498d8339815191526020526020600160405f200154604051908152f35b3461048a575f36600319011261048a576001546040516001600160a01b039091168152602090f35b3461048a575f36600319011261048a5761067561291a565b80156106d65760015465ffffffffffff8160a01c16915f1981019081116106d1576106a39160d01c906123fa565b81018091116106d1576106b86105c091612d9e565b60405165ffffffffffff90911681529081906020820190565b6123cb565b604051639fa56a5b60e01b8152600490fd5b600435906001600160401b038216820361048a57565b9181601f8401121561048a578235916001600160401b03831161048a576020838186019501011161048a57565b3461048a57604036600319011261048a576107446106e8565b6001600160401b0360243581811161048a576107649036906004016106fe565b505061076e612bf5565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633036107ea575f805160206149cd833981519152549060ff8260401c169283156107da575b5050506107c8575f80fd5b60405163f92ee8a960e01b8152600490fd5b81169116101590505f80806107bd565b604051631966391b60e11b8152600490fd5b65ffffffffffff81160361048a57565b634e487b7160e01b5f52604160045260245ffd5b606081019081106001600160401b0382111761083b57604052565b61080c565b604081019081106001600160401b0382111761083b57604052565b90601f801991011681019081106001600160401b0382111761083b57604052565b6040519061016082018281106001600160401b0382111761083b57604052565b604051906108a982610840565b565b6001600160401b03811161083b57601f01601f191660200190565b9291926108d2826108ab565b916108e0604051938461085b565b82948184528183011161048a578281602093845f960137010152565b9080601f8301121561048a57816020610917933591016108c6565b90565b3461048a57606036600319011261048a5760043561093781610502565b60243590610944826107fc565b604435906001600160401b03821161048a5760209261096a6109869336906004016108fc565b6001600160a01b039092165f908152600e855260409020612f8b565b604051908152f35b3461048a575f36600319011261048a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461048a57604036600319011261048a57610a1e6024356004356109f582610502565b805f525f8051602061498d833981519152602052610a19600160405f200154613162565b613462565b005b3461048a57604036600319011261048a57602435610a3d81610502565b336001600160a01b03821603610a5957610a1e90600435613498565b60405163334bd91960e11b8152600490fd5b3461048a575f36600319011261048a5760ff60025460a01c1680610a97575b6020906040519015158152f35b5060035460a01c60ff16610a8a565b8015150361048a57565b3461048a57602036600319011261048a57600435610acd81610aa6565b610ad5612bf5565b610add613057565b5f54901515908160ff8216151514610b395760ff191660ff8216175f556040519081527f3e12b7b36c75ac9609a3f58609b331210428e1a85909132638955ba0301eec3390602090a160015f805160206149ad83398151915255005b60405163a741a04560e01b8152600490fd5b3461048a575f36600319011261048a57602065ffffffffffff60015460a01c16604051908152f35b3461048a5760408060031936011261048a576004803591610b9383610502565b610b9b612bf5565b6001600160a01b0391838316908115610e23575f5460ff811680610e0a575b610dfb5783516370a0823160e01b808252308483019081529096602093909160109190911c82169084908490819083010381845afa928315610dd3575f93610dd8575b50610c0f90602435903090339061352a565b5f5486519788523085890190815290979184918391908290819060200103918b60101c165afa908115610dd357610c4e935f92610da6575b50506123ed565b938415610d975760081c60ff1680610d82575b610d745750906105c091610d12610c76613b9d565b95610cbf610c82613c16565b610caa610c908a838b613cd7565b99610ca48a610c9e42612d9e565b9261241b565b9061367e565b5050610cb989610c9e42612d9e565b9061375e565b50506001600160a01b0381165f908152600e6020526040902090610d0c88610d07610562610cec42612d9e565b6001600160a01b039095165f908152600e6020526040902090565b61241b565b9161383a565b505081518481526020810186905233907fdcbc1c05240f31ff3ad067ef1ee35ce4997762752e3a095284754544f4c709d790604090a3610d5e60015f805160206149ad83398151915255565b5191825260208201929092529081906040820190565b8251632484557960e01b8152fd5b50610d8f84610d07613b9d565b815410610c61565b50825163070f6eed60e11b8152fd5b610dc59250803d10610dcc575b610dbd818361085b565b810190612449565b5f80610c47565b503d610db3565b612458565b610c0f919350610df490853d8711610dcc57610dbd818361085b565b9290610bfd565b5082516304f63b8560e01b8152fd5b50335f9081526005602052604090205460ff1615610bba565b8251630d534ce360e11b8152fd5b3461048a575f36600319011261048a57602060ff5f54166040519015158152f35b3461048a575f36600319011261048a57602060015460d01c604051908152f35b3461048a575f36600319011261048a57602060ff60025460a01c166040519015158152f35b90604060031983011261048a57600435610eb0816107fc565b91602435906001600160401b03821161048a57610917916004016108fc565b3461048a576020610986610ee236610e97565b90612e01565b3461048a57602036600319011261048a57600435610f0581610aa6565b610f0d612bf5565b610f156130b4565b5f54901515908160ff8260081c16151514610b395761ff001916600882901b61ff0016175f556040519081527ffa7a25a0b611d4ba3c0ea990e90dc23d484a5dd7a1be4733fef2946ba74530c690602090a1610a1e60015f805160206149ad83398151915255565b3461048a575f36600319011261048a5760206001600160401b035f805160206149cd8339815191525416604051908152f35b3461048a57606036600319011261048a57610fc86106e8565b602435610fd481610502565b6001600160401b039160443583811161048a57610ff59036906004016106fe565b5f805160206149cd8339815191529491855494838616806110d65760ff8760401c169081156110c9575b506107c8577fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2966110c49661108c958716906001600160401b0319161790556110875f805160206149cd833981519152600160401b68ff000000000000000019825416179055565b612463565b5f805160206149cd833981519152805468ff0000000000000000191690556040516001600160401b0390911681529081906020820190565b0390a1005b905084861611155f61101f565b60405162dc149f60e41b8152600490fd5b3461048a57602036600319011261048a57602061098660043561110981610502565b612883565b3461048a57602036600319011261048a576004355f526006602052602060405f2054604051908152f35b3461048a575f36600319011261048a5760015465ffffffffffff61116e818360a01c169261116461291a565b9060d01c906123fa565b82018092116106d157611182602092612d9e565b60405191168152f35b3461048a575f36600319011261048a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461048a575f36600319011261048a57602060ff60035460a01c166040519015158152f35b3461048a575f36600319011261048a5761120c6139cc565b5f8051602061492d83398151915280546001600160a01b031981169091555f906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b3461048a57604036600319011261048a5760043560243561127b816107fc565b611283612bf5565b6003546112a0906001600160a01b03165b6001600160a01b031690565b330361151d576112ae61291a565b906112b88161294e565b908215158061150c575b8015611503575b6114f1576105c0937ff9d090c096f71cd1659861a9ce5b6f384bceb4e2fa4e4a19edf6489a9b8d56c7926112fb613b9d565b946113166113088261240d565b5f52600660205260405f2090565b549082810361140a575061132a818761241b565b6113348185613a04565b9687806113c3575b50505050505b8361138f575b6040805191825265ffffffffffff929092166020820152908101839052606090a161137f60015f805160206149ad83398151915255565b6040519081529081906020820190565b5f546113be9085906113ac9060101c6001600160a01b0316611294565b6001546001600160a01b031690613ab2565b611348565b6113ff93610c4783610ca46113e96113e2611308986113f99888613a20565b80966123ed565b946113f342612d9e565b926123ed565b9261240d565b555f8080808761133c565b915061141e825f52600660205260405f2090565b549061142e81610d07848a61241b565b906114398286613a04565b978861144a575b5050505050611342565b6114bf93836114729361147f8c61147a6114686114b0998884613a20565b9788958584613a20565b9485926123ed565b6123ed565b938484106114ca575b610c4790610ca461149e9596976113f342612d9e565b6114aa6113088761240d565b556123ed565b915f52600660205260405f2090565b555f80808080611440565b916114e6610c47916114e08661149e97986123ed565b9061241b565b859450929050611488565b604051635e18d2a560e01b8152600490fd5b508282116112c9565b50611516836123df565b82106112c2565b60405163dabc4ad960e01b8152600490fd5b3461048a575f36600319011261048a5760015465ffffffffffff808260a01c169161155861291a565b600181018091116106d15761116e9160d01c906123fa565b3461048a575f36600319011261048a57602061098661291a565b3461048a57602036600319011261048a576004356115a781610502565b60018060a01b03165f526005602052602060ff60405f2054166040519015158152f35b3461048a57602036600319011261048a5760206109866004356115ec816107fc565b61294e565b3461048a57604036600319011261048a5760043561160e81610502565b6024356001600160401b0380821161048a573660238301121561048a57816004013590811161048a573660248260051b8401011161048a576105c092602461137f930190612989565b3461048a57602061098661166a36610e97565b90612ed6565b3461048a5760208060031936011261048a57600480359061169082610502565b611698612bf5565b60025460a01c60ff1661181a576040516302910f8b60e31b81526001600160a01b03838116838301908152909491908290829081906020010381887f0000000000000000000000000000000000000000000000000000000000000000165afa908115610dd3575f916117ed575b50156117dd5760405163fbfa77cf60e01b8152838516949082818581895afa928315610dd3575f936117ae575b50503091160361179f5750600280546001600160a01b03929092166001600160a81b031990921691909117600160a01b1790557fdb2160616f776a37b24808115554e79439bf26cccbbd4438190cc6d28e80ecd15f80a2610a1e60015f805160206149ad83398151915255565b60405163b9f0f17160e01b8152fd5b6117ce929350803d106117d6575b6117c6818361085b565b810190612ae2565b905f80611732565b503d6117bc565b506040516324e5af8d60e21b8152fd5b61180d9150823d8411611813575b611805818361085b565b810190612ac2565b5f611705565b503d6117fb565b604051631380833b60e01b8152fd5b3461048a575f36600319011261048a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461048a575f36600319011261048a5761188561291a565b61188d613b9d565b90805f52600660205260405f205482018092116106d157600181018091116106d1575f52600660205260405f205481018091116106d157602090604051908152f35b3461048a575f36600319011261048a575f8051602061492d833981519152546040516001600160a01b039091168152602090f35b3461048a57604036600319011261048a57602060ff61195560243561192781610502565b6004355f525f8051602061498d833981519152845260405f209060018060a01b03165f5260205260405f2090565b54166040519015158152f35b3461048a57602036600319011261048a5760043561197e81610502565b60018060a01b03165f52600e602052602061098660405f20613c8a565b3461048a57604036600319011261048a576004356119b881610502565b6024356001600160401b03811161048a575f916119da839236906004016106fe565b90816040519283928337810184815203915af4611a3d60806119fa612af7565b9260206040519485921515828401526040808401528051918291826060860152018484015e5f838284010152601f8019910116810103606081018452018261085b565b805190602001fd5b3461048a575f36600319011261048a57602060ff5f5460081c166040519015158152f35b3461048a575f36600319011261048a5760206040515f8152f35b3461048a575f36600319011261048a5760206040517f4a634bc14d77baf979756509ef4298c6f6318af357828612545267ee2eb792338152f35b3461048a57604036600319011261048a57600435611ada81610502565b602435611ae681610aa6565b611aee612bf5565b611af661310b565b6001600160a01b038216918215611b9e575f8381526005602052604090205460ff16151582151514610b39576001600160a01b03165f9081526005602052604090207ff991b1ecfb5115cbb36a2b2e2240c058406d2acc2fcc6e9e2dc99d845ff70a6291611b8591611b73908260ff801983541691151516179055565b60405190151581529081906020820190565b0390a2610a1e60015f805160206149ad83398151915255565b604051630da30f6560e31b8152600490fd5b3461048a57604036600319011261048a576020611bf4602435611bd281610502565b6004355f526008835260405f209060018060a01b03165f5260205260405f2090565b54604051908152f35b3461048a57604036600319011261048a57602060ff611955602435611c2181610502565b6004355f526009845260405f209060018060a01b03165f5260205260405f2090565b3461048a5760208060031936011261048a576004803590611c6382610502565b611c6b612bf5565b60035460a01c60ff16611deb576001600160a01b03828116939084611cd9575b6003805460ff60a01b1916600160a01b179055847fe7e4c932e03abddfe20f83af42c33627e816115c7ec2b168441f65dc14bfc3ba5f80a2610a1e60015f805160206149ad83398151915255565b6040516302910f8b60e31b81526001600160a01b0385168482019081528390829081906020010381857f0000000000000000000000000000000000000000000000000000000000000000165afa908115610dd3575f91611dce575b5015611dbd5760405163fbfa77cf60e01b815282818581895afa928315610dd3575f93611d9e575b505030911603611d8f5750600380546001600160a01b0319166001600160a01b039092169190911790555f808080611c8b565b604051633f3e089160e21b8152fd5b611db5929350803d106117d6576117c6818361085b565b905f80611d5c565b60405163dabc4ad960e01b81528390fd5b611de59150833d851161181357611805818361085b565b5f611d34565b60405163703fe2e560e01b8152fd5b3461048a57604036600319011261048a57600435611e1781610502565b60243590611e23612bf5565b6001600160a01b0391818316908115611ea957611e546105c094611e4683613b01565b9485915f5460101c16613ab2565b604080519182526020820184905233917f865ca08d59f5cb456e85cd2f7ef63664ea4f73327414e9d8152c4158b0e946459190a360015f805160206149ad833981519152556040519081529081906020820190565b604051634e46966960e11b8152600490fd5b3461048a57602036600319011261048a576004355f526007602052602060405f2054604051908152f35b3461048a575f36600319011261048a576003546040516001600160a01b039091168152602090f35b3461048a575f36600319011261048a576020610986613b9d565b3461048a57602036600319011261048a57600435611f43612bf5565b335f9081527f2d4ccbfe9f7672a6f2537c1e5bce6adacb73706879154bbab6ce096012d6721660205260409020547f4a634bc14d77baf979756509ef4298c6f6318af357828612545267ee2eb792339060ff1615611fe757508060045414610b39576020817f854df3eb95564502c8bc871ebdd15310ee26270f955f6c6bd8cea68e75045bc092600455604051908152a160015f805160206149ad83398151915255005b6044906040519063e2517d3f60e01b82523360048301526024820152fd5b3461048a575f36600319011261048a576020610986613c16565b3461048a57602036600319011261048a5760043561203c81610502565b61204461291a565b61204d82612883565b916120588183612b97565b83018093116106d157600182018092116106d15761207591612b97565b81018091116106d157602090604051908152f35b3461048a575f36600319011261048a576002546040516001600160a01b039091168152602090f35b3461048a57604036600319011261048a57610a1e6024356004356120d482610502565b805f525f8051602061498d8339815191526020526120f8600160405f200154613162565b613498565b3461048a575f36600319011261048a575f5460405160109190911c6001600160a01b03168152602090f35b3461048a575f36600319011261048a5760206040517fbae4ee3de6c709ff9a002e774c5b78cb381560b219213c88ae0f1e207c03c0238152f35b3461048a575f36600319011261048a576020600454604051908152f35b3461048a57606036600319011261048a5760043561219c81610502565b602435906121a9826107fc565b6001600160401b039160443583811161048a576121ca9036906004016106fe565b909260409384516121da81610820565b60608152606060208201526060868201529280612239575b6105c08661222a878761222461220b8984845191612428565b928561221b602085015183612ed6565b93015190612e01565b91613cd7565b90519081529081906020820190565b810193925060208185031261048a5780359086821161048a57019260608482031261048a5784519561226a87610820565b843581811161048a578261227f9187016108fc565b8752602085013581811161048a57826122999187016108fc565b60208801528585013590811161048a576105c0966122c26122249361220b9361222a98016108fc565b878201529394506121f2565b3461048a57602036600319011261048a57610a1e6004356122ee81610502565b6122f66139cc565b612b26565b3461048a57604036600319011261048a5760043561231881610502565b602435612323612bf5565b6001600160a01b038216156105eb57801561238f57612352612343613c16565b61234b613b9d565b9083614121565b335f908152600e6020526040902090929061236c90613c8a565b831161237d57610598918391612c24565b6040516321727a3760e11b8152600490fd5b604051636c6c627d60e11b8152600490fd5b3461048a57604036600319011261048a5760206109866024356123c381610502565b600435612b97565b634e487b7160e01b5f52601160045260245ffd5b5f198101919082116106d157565b919082039182116106d157565b818102929181159184041417156106d157565b90600182018092116106d157565b919082018092116106d157565b6001600160a01b03165f908152600e60205260409020610917929190612f8b565b9081602091031261048a575190565b6040513d5f823e3d90fd5b916124b5916124a691612474614268565b61247c614268565b60015f805160206149ad833981519152556001600160a01b0394808616612869575b5036916108c6565b60208082518301019101613903565b805182166001600160a01b03161561285757604080820165ffffffffffff6124e3825165ffffffffffff1690565b16156128465760c083018051909290612504906001600160a01b0316611294565b156126f7575b5091612643610140926125e26125bd6126a196612558612530875160018060a01b031690565b5f805462010000600160b01b03191660109290921b62010000600160b01b0316919091179055565b6020860151600180546001600160a01b0319166001600160a01b039092169190911790556125b161258842612d9e565b6001805465ffffffffffff60a01b191660a09290921b65ffffffffffff60a01b16919091179055565b5165ffffffffffff1690565b600180546001600160d01b031660d09290921b6001600160d01b031916919091179055565b6126026125f26060850151151590565b60ff80195f541691151516175f55565b6126296126126080850151151590565b61ff005f5491151560081b169061ff001916175f55565b61263660a0840151600455565b516001600160a01b031690565b8481166126e7575b5060e08101516001600160a01b03168481166126d7575b506101008101516001600160a01b03168481166126c7575b506101208101516001600160a01b03168481166126b7575b5001516001600160a01b031690565b9081166126ab5750565b6126b4906133f3565b50565b6126c090613384565b505f612692565b6126d090613315565b505f61267a565b6126e09061323f565b505f612662565b6126f09061318e565b505f61264b565b60e084015161270e906001600160a01b0316611294565b156127e3575b61012084015161272c906001600160a01b0316611294565b61250a576080840151156127995760a0840151158061277a575b61276a575091612643610140926125e26125bd6126a1965b9496505050925061250a565b5163183c854560e21b8152600490fd5b50610140840151612793906001600160a01b0316611294565b15612746565b60a0840151158015906127c3575b61276a575091612643610140926125e26125bd6126a19661275e565b506101408401516127dc906001600160a01b0316611294565b15156127a7565b60608401511561281957610100840151612805906001600160a01b0316611294565b612714575163183c854560e21b8152600490fd5b610100840151612831906001600160a01b0316611294565b15612714575163183c854560e21b8152600490fd5b81516368f5f8f160e11b8152600490fd5b6040516368f7a67560e11b8152600490fd5b61287d90612875614268565b6122f6614268565b5f61249e565b6001600160a01b03165f908152600e602052604090206128a290613c8a565b6128aa613b9d565b6128b2613c16565b90600181018091116106d157600182018092116106d15761091792613a20565b65ffffffffffff91821690821603919082116106d157565b634e487b7160e01b5f52601260045260245ffd5b9065ffffffffffff80911691821561291557160490565b6128ea565b61292342612d9e565b61294a60015461294065ffffffffffff93848360a01c16906128d2565b9060d01c906128fe565b1690565b6001549065ffffffffffff91828160a01c169182848216106129775761294a92612940916128d2565b60405163b7d0949760e01b8152600490fd5b90612992612bf5565b5f926001600160a01b038316928315611ea9578115612a4a575f5b828110612a2857505f547f326b6aff1cd2fb1c8234de4f9dcfb9047c5c36eb9ef2eb34af5121e969a75d2792869290916129fd9184916129f89060101c6001600160a01b0316611294565b613ab2565b612a0e604051928392339684612a85565b0390a3906108a960015f805160206149ad83398151915255565b94612a436001916114e0612a3d898789612a70565b35613b01565b95016129ad565b60405163edf3b93360e01b8152600490fd5b634e487b7160e01b5f52603260045260245ffd5b9190811015612a805760051b0190565b612a5c565b604080825281018390529392916001600160fb1b03811161048a5760209160609160051b809183880137850101930152565b51906108a982610aa6565b9081602091031261048a575161091781610aa6565b51906108a982610502565b9081602091031261048a575161091781610502565b3d15612b21573d90612b08826108ab565b91612b16604051938461085b565b82523d5f602084013e565b606090565b6001600160a01b03908116908115612b7f575f8051602061492d83398151915280546001600160a01b031981168417909155167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3565b604051631e4fbdf760e01b81525f6004820152602490fd5b90612bbd90825f52600860205260405f209060018060a01b03165f5260205260405f2090565b54905f52600660205260405f2054600760205260405f205490600181018091116106d157600182018092116106d15761091792613a20565b5f805160206149ad8339815191526002815414612c125760029055565b604051633ee5aeb560e01b8152600490fd5b335f908152600e6020526040902093929190612c3f42612d9e565b335f908152600e60205260409020612c5690613c8a565b918483039283116106d157612c917febff2602b3f468259e1e99f613fed6691f3a6526effe6ef3e768ba7ae7a36c4f938593612d1c9961383a565b5050612cab612c9f42612d9e565b610cb98761147a613c16565b5050612cc5612cb942612d9e565b610ca48461147a613b9d565b5050612d6a81612d55612cde612cd961291a565b61240d565b612d34612cf3825f52600660205260405f2090565b54612d06835f52600760205260405f2090565b54612d1282828b613cd7565b9d8e998a9361241b565b612d2e855f52600660205260405f2090565b5561241b565b612d46825f52600760205260405f2090565b555f52600860205260405f2090565b9060018060a01b03165f5260205260405f2090565b612d7583825461241b565b9055604080519485526020850195909552938301526001600160a01b03909216913391606090a3565b65ffffffffffff90818111612db1571690565b604490604051906306dfcc6560e41b8252603060048301526024820152fd5b9081602091031261048a575163ffffffff8116810361048a5790565b90600163ffffffff809316019182116106d157565b90805115612ecc5780602080612e1c93518301019101612dd0565b612e2581613f48565b90612e36825165ffffffffffff1690565b9065ffffffffffff8085169216828114612ec05782119182612e6c575b5050612e63575061091790613cf8565b60209150015190565b909150612e7a600a546123df565b63ffffffff831614918215612e93575b50505f80612e53565b612eb89192506125b1612ea8612ead92612dec565b613f48565b65ffffffffffff1690565b115f80612e8a565b50505060209150015190565b5061091790613cf8565b90805115612f815780602080612ef193518301019101612dd0565b612efa81613fcd565b90612f0b825165ffffffffffff1690565b9065ffffffffffff8085169216828114612ec05782119182612f38575b5050612e63575061091790613dbf565b909150612f46600c546123df565b63ffffffff831614918215612f5f575b50505f80612f28565b612f799192506125b1612f74612ead92612dec565b613fcd565b115f80612f56565b5061091790613dbf565b9180511561304d5780602080612fa693518301019101612dd0565b91612fb18382614048565b92612fc2845165ffffffffffff1690565b9065ffffffffffff80851692168281146130415782119182612ff8575b5050612fef576109179250613e7f565b50506020015190565b90915061300583546123df565b63ffffffff83161491821561301e575b50505f80612fdf565b6130399192506125b1613033612ead92612dec565b85614048565b115f80613015565b50505050506020015190565b5061091791613e7f565b335f9081527f03b26b53c87faa1058f30bb5d2fee64f717719a0d9b7e4f4df027aa5e9b6ed69602052604090207fbae4ee3de6c709ff9a002e774c5b78cb381560b219213c88ae0f1e207c03c0239060ff905b541615611fe75750565b335f9081527fe41986b390c4ce6791b87f7423b5fab7a81a0e6d89660b6264f697d008b2243a602052604090207fc6aaadd7371d5e8f9ed6849dd66a66573a3ba37167d03f4352c9ba5693678fac9060ff906130aa565b335f9081527f0287ab4cb376ea253d7b2ce0c2cbf458f7deae9458470d74afdfbbee484e9540602052604090207f9c56d972d63cbb4195b3c1484691dfc220fa96a4c47e7b6613bd82a022029e069060ff906130aa565b5f8181525f8051602061498d83398151915260209081526040808320338452909152902060ff906130aa565b6001600160a01b0381165f9081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d60205260409020545f8051602061498d8339815191529060ff16613239575f808052602091825260408082206001600160a01b038516835290925220805460ff1916600117905533906001600160a01b03165f7f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d8180a4600190565b50505f90565b6001600160a01b0381165f9081527f03b26b53c87faa1058f30bb5d2fee64f717719a0d9b7e4f4df027aa5e9b6ed69602052604090207fbae4ee3de6c709ff9a002e774c5b78cb381560b219213c88ae0f1e207c03c023905f8051602061498d8339815191529060ff905b541661330e575f828152602091825260408082206001600160a01b038616835290925220805460ff1916600117905533916001600160a01b0316907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d5f80a4600190565b5050505f90565b6001600160a01b0381165f9081527f0287ab4cb376ea253d7b2ce0c2cbf458f7deae9458470d74afdfbbee484e9540602052604090207f9c56d972d63cbb4195b3c1484691dfc220fa96a4c47e7b6613bd82a022029e06905f8051602061498d8339815191529060ff906132aa565b6001600160a01b0381165f9081527fe41986b390c4ce6791b87f7423b5fab7a81a0e6d89660b6264f697d008b2243a602052604090207fc6aaadd7371d5e8f9ed6849dd66a66573a3ba37167d03f4352c9ba5693678fac905f8051602061498d8339815191529060ff906132aa565b6001600160a01b0381165f9081527f2d4ccbfe9f7672a6f2537c1e5bce6adacb73706879154bbab6ce096012d67216602052604090207f4a634bc14d77baf979756509ef4298c6f6318af357828612545267ee2eb79233905f8051602061498d8339815191529060ff906132aa565b5f8181525f8051602061498d833981519152602081815260408084206001600160a01b038716855290915290912060ff906132aa565b5f8181525f8051602061498d833981519152602081815260408084206001600160a01b03871685529091529091205460ff161561330e575f828152602091825260408082206001600160a01b038616835290925220805460ff1916905533916001600160a01b0316907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b5f80a4600190565b6040516323b872dd60e01b60208201526001600160a01b03928316602482015292909116604483015260648083019390935291815260a08101918183106001600160401b0384111761083b576108a9926040526140b0565b600b54811015612a8057600b5f525f8051602061496d83398151915201905f90565b600d54811015612a8057600d5f525f8051602061494d83398151915201905f90565b8054821015612a80575f5260205f2001905f90565b600d54600160401b81101561083b576001810180600d55811015612a8057600d5f525f8051602061494d8339815191520155565b600b54600160401b81101561083b576001810180600b55811015612a8057600b5f525f8051602061496d8339815191520155565b90815491600160401b83101561083b57826136669160016108a9950181556135c6565b90919082549060031b91821b915f19901b1916179055565b919091600d9081548015613729575b50613696614185565b509290918154926136a5613b9d565b9481613714575b50156136f157505f1982018281116106d15781541115612a80575f527fd7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb4018390559190565b613705926001600160d01b0316915061439f565b5050613710836135db565b9190565b65ffffffffffff83811691161490505f6136ac565b600160401b81101561083b5760018101808455811015612a80575f908382525f8051602061494d83398151915201555f61368d565b919091600b9081548015613805575b506137766141f0565b50929091815492613785613c16565b94816137f0575b50156137d157505f1982018281116106d15781541115612a80575f527f0175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db8018390559190565b6137e5926001600160d01b0316915061449f565b50506137108361360f565b65ffffffffffff83811691161490505f61378c565b600160401b81101561083b5760018101808455811015612a80575f908382525f8051602061496d83398151915201555f61376d565b909291926001820190815480156138c8575b50846138578461423a565b5094909284549361386783613c8a565b96816138b3575b5015613890575050505f1981019081116106d1576136668591613710936135c6565b6137109492936138ac926001600160d01b039091169190614549565b5050613643565b65ffffffffffff83811691161490505f61386e565b600160401b81101561083b578060016138e492018455836135c6565b8154905f199060031b1b191690555f61384c565b51906108a9826107fc565b908161016091031261048a5761391761087c565b9061392181612ad7565b825261392f60208201612ad7565b6020830152613940604082016138f8565b604083015261395160608201612ab7565b606083015261396260808201612ab7565b608083015260a081015160a083015261397d60c08201612ad7565b60c083015261398e60e08201612ad7565b60e08301526101006139a1818301612ad7565b908301526101206139b3818301612ad7565b908301526139c5610140809201612ad7565b9082015290565b5f8051602061492d833981519152546001600160a01b031633036139ec57565b60405163118cdaa760e01b8152336004820152602490fd5b9080821015613a11575090565b905090565b8115612915570490565b9091828202915f1984820993838086109503948086039514613aa55784831115613a9357829109815f038216809204600280826003021880830282030280830282030280830282030280830282030280830282030280920290030293600183805f03040190848311900302920304170290565b60405163227bc15360e01b8152600490fd5b5050906109179250613a16565b60405163a9059cbb60e01b60208201526001600160a01b03909216602483015260448083019390935291815260808101916001600160401b0383118284101761083b576108a9926040526140b0565b90613b0a61291a565b821015613b8b575f82815260096020908152604080832033845290915290205460ff16613b7957613b3b3383612b97565b918215613b67575f9081526009602090815260408083203384529091529020805460ff19166001179055565b6040516366c0bcbf60e11b8152600490fd5b604051630c8d9eab60e31b8152600490fd5b60405163d5b25b6360e01b8152600490fd5b600c5480613bdd57505f5b6001600160d01b03811615613bd857600d54811015612a8057600d5f525f8051602061494d833981519152015490565b505f90565b805f198101116106d157600c5f527fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c6015460301c613ba8565b600a5480613c5157505f5b6001600160d01b03811615613bd857600b54811015612a8057600b5f525f8051602061496d833981519152015490565b805f198101116106d157600a5f527fc65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a7015460301c613c21565b805480613cb957505f5b6001600160d01b03811615613239576001613caf92016135c6565b90549060031b1c90565b5f199080828101116106d157825f5260205f2001015460301c613c94565b9190600181018091116106d157600182018092116106d15761091792613a20565b600a54905f829160058411613d66575b613d129350614755565b80613d3557505f5b6001600160d01b03811615613bd857613caf61091791613582565b613d5a613d44613d61926123df565b600a5f525f8051602061490d8339815191520190565b5460301c90565b613d1a565b9192613d718161461c565b81039081116106d157613d1293600a5f5265ffffffffffff80835f8051602061490d833981519152015416908516105f14613dad575091613d08565b929150613db99061240d565b90613d08565b600c54905f829160058411613e26575b613dd993506147be565b80613dfc57505f5b6001600160d01b03811615613bd857613caf610917916135a4565b613d5a613e0b613e21926123df565b600c5f525f805160206148ed8339815191520190565b613de1565b9192613e318161461c565b81039081116106d157613dd993600c5f5265ffffffffffff80835f805160206148ed833981519152015416908516105f14613e6d575091613dcf565b929150613e799061240d565b90613dcf565b908154905f829160058411613ee2575b613e9a935084614827565b80613ec257505f905b6001600160d01b0382161561323957610917916001613caf92016135c6565b613d5a613ed1613edc926123df565b835f5260205f200190565b90613ea3565b9192613eed8161461c565b81039081116106d157613e9a93855f5265ffffffffffff808360205f20015416908516105f14613f1e575091613e8f565b929150613f2a9061240d565b90613e8f565b60405190613f3d82610840565b5f6020838281520152565b613f50613f30565b50613f59613f30565b50600a54811015612a8057613f8090600a5f525f8051602061490d83398151915201614161565b65ffffffffffff81511690602060018060d01b0391015116600b54811015612a8057600b5f525f8051602061496d833981519152015460405191613fc383610840565b8252602082015290565b613fd5613f30565b50613fde613f30565b50600c54811015612a805761400590600c5f525f805160206148ed83398151915201614161565b65ffffffffffff81511690602060018060d01b0391015116600d54811015612a8057600d5f525f8051602061494d833981519152015460405191613fc383610840565b9061407161406b6140929261405b613f30565b50614064613f30565b50846135c6565b50614161565b91600165ffffffffffff845116936020828060d01b039101511691016135c6565b905490604051926140a284610840565b835260031b1c602082015290565b5f806140d89260018060a01b03169360208151910182865af16140d1612af7565b9083614889565b8051908115159182614106575b50506140ee5750565b60249060405190635274afe760e01b82526004820152fd5b6141199250602080918301019101612ac2565b155f806140e5565b9190600181018091116106d157600182018092116106d157614144828285613a20565b92821561291557096141535790565b600181018091116106d15790565b9060405161416e81610840565b915465ffffffffffff8116835260301c6020830152565b600c548061419657505f905f905f90565b805f198101116106d1577fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c66141cf91600c5f5201614161565b9065ffffffffffff82511691602060018060d01b0391015116906001929190565b600a548061420157505f905f905f90565b805f198101116106d1577fc65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a76141cf91600a5f5201614161565b80548061424b5750505f905f905f90565b5f199080828101116106d1576141cf925f5260205f200101614161565b60ff5f805160206149cd8339815191525460401c161561428457565b604051631afcd79f60e31b8152600490fd5b600c5490600160401b82101561083b576001820180600c55821015612a8057600c5f52805160209091015160301b65ffffffffffff191665ffffffffffff91909116175f805160206148ed83398151915290910155565b600a5490600160401b82101561083b576001820180600a55821015612a8057600a5f52805160209091015160301b65ffffffffffff191665ffffffffffff91909116175f8051602061490d83398151915290910155565b8054600160401b81101561083b57614361916001820181556135c6565b61438c57815160209092015160301b65ffffffffffff191665ffffffffffff92909216919091179055565b634e487b7160e01b5f525f60045260245ffd5b600c54919291908115614476576143c06143bb613e0b846123df565b614161565b805165ffffffffffff83811694911684106144645785602093613710956143f0612ead865165ffffffffffff1690565b0361442c5750614405613e0b61441e936123df565b9065ffffffffffff82549181199060301b169116179055565b01516001600160d01b031690565b905061445f915061444c61443e61089c565b65ffffffffffff9092168252565b6001600160d01b03871681850152614296565b61441e565b604051632520601d60e01b8152600490fd5b61449a915061448661443e61089c565b6001600160d01b0384166020820152614296565b5f9190565b600a54919291908115614525576144bb6143bb613d44846123df565b805165ffffffffffff83811694911684106144645785602093613710956144eb612ead865165ffffffffffff1690565b036145005750614405613d4461441e936123df565b905061445f915061451261443e61089c565b6001600160d01b038716818501526142ed565b61449a915061453561443e61089c565b6001600160d01b03841660208201526142ed565b8054929392919082156145f8576145656143bb613ed1856123df565b90614576825165ffffffffffff1690565b65ffffffffffff84811691168110614464576137109460209488926145a4612ead875165ffffffffffff1690565b036145c5575061441e926145ba614405926123df565b905f5260205f200190565b91505061445f916145e56145d761089c565b65ffffffffffff9093168352565b6001600160d01b03881682860152614344565b61449a92506146086145d761089c565b6001600160d01b0385166020830152614344565b8015613bd857806146ee6146e76146dd6146d36146c96146bf6146b56146ab60016109179a5f908b60801c80614749575b508060401c8061473c575b508060201c8061472f575b508060101c80614722575b508060081c80614715575b508060041c80614708575b508060021c806146fb575b50821c6146f4575b811c1b6146a4818b613a16565b0160011c90565b6146a4818a613a16565b6146a48189613a16565b6146a48188613a16565b6146a48187613a16565b6146a48186613a16565b6146a48185613a16565b8092613a16565b90613a04565b8101614697565b600291509101905f61468f565b600491509101905f614684565b600891509101905f614679565b601091509101905f61466e565b602091509101905f614663565b604091509101905f614658565b9150506080905f61464d565b905b82811061476357505090565b9091808216906001818418811c83018093116106d157600a5f5265ffffffffffff80845f8051602061490d833981519152015416908616105f146147ab575050915b90614757565b9093925081018091116106d157906147a5565b905b8281106147cc57505090565b9091808216906001818418811c83018093116106d157600c5f5265ffffffffffff80845f805160206148ed833981519152015416908616105f14614814575050915b906147c0565b9093925081018091116106d1579061480e565b91905b8382106148375750505090565b909192808316906001818518811c83018093116106d157855f5265ffffffffffff808460205f20015416908516105f14614876575050925b919061482a565b9094935081018091116106d1579161486f565b906148b0575080511561489e57805190602001fd5b604051630a12f52160e11b8152600490fd5b815115806148e3575b6148c1575090565b604051639996b31560e01b81526001600160a01b039091166004820152602490fd5b50803b156148b956fedf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c7c65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a89016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300d7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb50175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db902dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268009b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a26469706673582212201a50e827895a2cd73f911caab81ce70f82197386d81e8f679668f87cbe90c41164736f6c63430008190033","sourceMap":"981:14960:95:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;;;;;-1:-1:-1;;981:14960:95;;;;;;;;;;;;;;;;;;-1:-1:-1;;;3551:47:23;;;:87;;;;981:14960:95;;;;;;;;;;3551:87:23;-1:-1:-1;;;1133:40:29;;-1:-1:-1;3551:87:23;;;981:14960:95;-1:-1:-1;981:14960:95;;;;;;;;-1:-1:-1;;981:14960:95;;;;;;;966:38:96;981:14960:95;;;;;;;;;-1:-1:-1;;981:14960:95;;;;;;;821:37:96;981:14960:95;;;;-1:-1:-1;;;;;981:14960:95;;;;;:::o;:::-;;;;;;-1:-1:-1;;981:14960:95;;;;;;;;;:::i;:::-;;;3217:103:28;;;:::i;:::-;-1:-1:-1;;;;;981:14960:95;;5525:21;5521:75;;5634:10;981:14960;;;;5606:15:96;981:14960:95;;;;;5606:33:96;;;:::i;:24::-;:33;:::i;:::-;5610:35:95;;5606:88;;1057:70:87;5173:21:96;;:::i;:::-;4803:22;;:::i;:::-;1057:70:87;;;:::i;:::-;5801:20:95;;;5797:82;;5904:43;;;;:::i;:::-;3282:1:28;;1805;-1:-1:-1;;;;;;;;;;;981:14960:95;3716:283:28;3282:1;981:14960:95;;;;;;;;;;;;;;;;;;5797:82;981:14960;;-1:-1:-1;;;;;;5844:24:95;;981:14960;;5844:24;5606:88;981:14960;;-1:-1:-1;;;5668:15:95;;981:14960;;5668:15;5521:75;981:14960;;-1:-1:-1;;;5569:16:95;;981:14960;;5569:16;981:14960;;;;;;-1:-1:-1;;981:14960:95;;;;;;-1:-1:-1;981:14960:95;-1:-1:-1;;;;;;;;;;;981:14960:95;;;4919:24:23;981:14960:95;-1:-1:-1;981:14960:95;4919:24:23;981:14960:95;;;;;;;;;;;;;-1:-1:-1;;981:14960:95;;;;;;;;-1:-1:-1;;;;;981:14960:95;;;;;;;;;;;;;;-1:-1:-1;;981:14960:95;;;;4084:14:96;;:::i;:::-;4112:10;;4108:65;;4190:17;981:14960:95;;;;;;;;;;;;;;;;4210:27:96;981:14960:95;;;4210:27:96;;:::i;:::-;981:14960:95;;;;;;;4189:60:96;981:14960:95;4189:60:96;;:::i;:::-;981:14960:95;;;;;;;;;;;;;;;;;;:::i;4108:65:96:-;981:14960:95;;-1:-1:-1;;;4145:17:96;;981:14960:95;;4145:17:96;981:14960:95;;;;-1:-1:-1;;;;;981:14960:95;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;981:14960:95;;;;;;;;;;;;;;;:::o;:::-;;;;;;-1:-1:-1;;981:14960:95;;;;;;:::i;:::-;-1:-1:-1;;;;;981:14960:95;;;;;;;;;;;;;;:::i;:::-;3217:103:28;;;;:::i;:::-;1673:7:71;-1:-1:-1;;;;;981:14960:95;1659:10:71;:21;1655:71;;-1:-1:-1;;;;;;;;;;;981:14960:95;;;;;;;6431:44:25;;;;;981:14960:95;6427:105:25;;;;;-1:-1:-1;15924:8:95;;6427:105:25;981:14960:95;;-1:-1:-1;;;6498:23:25;;981:14960:95;;6498:23:25;6431:44;981:14960:95;;;;6450:25:25;;;-1:-1:-1;6431:44:25;;;;;1655:71:71;981:14960:95;;-1:-1:-1;;;1703:12:71;;981:14960:95;;1703:12:71;981:14960:95;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;981:14960:95;;;;;;;:::o;:::-;;:::i;:::-;;;;;;;-1:-1:-1;;;;;981:14960:95;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;981:14960:95;;;;;;;:::o;:::-;;;;;;;;;;-1:-1:-1;;;;;981:14960:95;;;;;;;:::o;:::-;;;;;;;:::i;:::-;:::o;:::-;-1:-1:-1;;;;;981:14960:95;;;;;;-1:-1:-1;;981:14960:95;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;981:14960:95;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;;-1:-1:-1;;981:14960:95;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;981:14960:95;;;;;;;5383:59:96;981:14960:95;;;;;;:::i;:::-;-1:-1:-1;;;;;981:14960:95;;;-1:-1:-1;981:14960:95;;;5383:15:96;981:14960:95;;;;;5383:59:96;:::i;:::-;981:14960:95;;;;;;;;;;;;-1:-1:-1;;981:14960:95;;;;;;655:32:71;-1:-1:-1;;;;;981:14960:95;;;;;;;;;;;;-1:-1:-1;;981:14960:95;;;;5350:25:23;981:14960:95;;;;;;;:::i;:::-;;-1:-1:-1;981:14960:95;-1:-1:-1;;;;;;;;;;;981:14960:95;;3202:4:23;4919:24;981:14960:95;-1:-1:-1;981:14960:95;4919:24:23;981:14960:95;3202:4:23;:::i;:::-;5350:25;:::i;:::-;981:14960:95;;;;;;;-1:-1:-1;;981:14960:95;;;;;;;;;:::i;:::-;966:10:27;-1:-1:-1;;;;;981:14960:95;;6441:34:23;6437:102;;6549:37;981:14960:95;;;6549:37:23;:::i;6437:102::-;981:14960:95;;-1:-1:-1;;;6498:30:23;;981:14960:95;;6498:30:23;981:14960:95;;;;;;-1:-1:-1;;981:14960:95;;;;;1524:22;981:14960;;;;1524:46;;;981:14960;;;;;;;;;;;1524:46;-1:-1:-1;1550:20:95;981:14960;;;;;1524:46;;981:14960;;;;;;;:::o;:::-;;;;;;-1:-1:-1;;981:14960:95;;;;;;;;;:::i;:::-;3217:103:28;;:::i;:::-;3202:4:23;;:::i;:::-;-1:-1:-1;981:14960:95;;;;;;;;;;;9542:26;9538:76;;-1:-1:-1;;981:14960:95;;;;;-1:-1:-1;981:14960:95;;;;;;9665:27;;981:14960;;9665:27;1805:1:28;-1:-1:-1;;;;;;;;;;;981:14960:95;;9538:76;981:14960;;-1:-1:-1;;;9591:12:95;;981:14960;;9591:12;981:14960;;;;;;-1:-1:-1;;981:14960:95;;;;;;1718:31:96;981:14960:95;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3217:103:28;;:::i;:::-;-1:-1:-1;;;;;981:14960:95;;;;;3474:24;;3470:81;;-1:-1:-1;981:14960:95;;;;3565:55;;;981:14960;3561:118;;981:14960;;-1:-1:-1;;;3713:43:95;;;3750:4;3713:43;;;981:14960;;;;;;;;;;;;;;;;;;;;;;;;;3713:43;;;;;;;;;;-1:-1:-1;3713:43:95;;;981:14960;;3829:6;981:14960;;;3750:4;;3802:10;;3829:6;;:::i;:::-;-1:-1:-1;981:14960:95;;;3864:43;;;3750:4;3864:43;;;981:14960;;;;;;;;;;3864:43;981:14960;;;;;;3864:43;981:14960;;;;;3864:43;;;;;;;:59;:43;-1:-1:-1;3864:43:95;;;981:14960;3864:59;;;:::i;:::-;3938:20;;;3934:79;;981:14960;;;;;4027:64;;981:14960;4023:123;;5173:21:96;;981:14960:95;5173:21:96;4502:93:95;5173:21:96;;:::i;:::-;4803:22;4426:66:95;4803:22:96;;:::i;:::-;4349:67:95;390:70:87;;;;;:::i;:::-;837:15:62;4385:30:95;837:15:62;819:34;837:15;819:34;:::i;:::-;4385:30:95;;:::i;:::-;4349:67;;:::i;:::-;837:15:62;;4463:28:95;837:15:62;819:34;837:15;819:34;:::i;4463:28:95:-;4426:66;;:::i;:::-;-1:-1:-1;;;;;;;981:14960:95;;;;;;5606:15:96;981:14960:95;;;;;837:15:62;4553:41:95;837:15:62;5606:33:96;:24;819:34:62;837:15;819:34;:::i;:::-;-1:-1:-1;;;;;981:14960:95;;;;;;;5606:15:96;981:14960:95;;;;;;;5606:33:96;4553:41:95;:::i;:::-;4502:93;;:::i;:::-;-1:-1:-1;;981:14960:95;;;;;;;;;;;3802:10;;4611:62;;981:14960;;4611:62;3282:1:28;1805;-1:-1:-1;;;;;;;;;;;981:14960:95;3716:283:28;3282:1;981:14960:95;;;;;;;;;;;;;;;;;;;4023:123;981:14960;;-1:-1:-1;;;4114:21:95;;;4027:64;5173:21:96;4045:31:95;5173:21:96;;;:::i;4045:31:95:-;981:14960;;-1:-1:-1;4027:64:95;;3934:79;-1:-1:-1;981:14960:95;;-1:-1:-1;;;3981:21:95;;;3864:43;;;;;;-1:-1:-1;3864:43:95;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;;:::i;3713:::-;3829:6;3713:43;;;;;;;;;;;;;;;:::i;:::-;;;;;3561:118;-1:-1:-1;981:14960:95;;-1:-1:-1;;;3643:25:95;;;3565:55;-1:-1:-1;3609:10:95;981:14960;;;;3586:22;981:14960;;;;;;;;3585:35;3565:55;;3470:81;981:14960;;-1:-1:-1;;;3521:19:95;;;981:14960;;;;;;-1:-1:-1;;981:14960:95;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;981:14960:95;;;;;1805:27:96;981:14960:95;;;;;;;;;;;;;;;-1:-1:-1;;981:14960:95;;;;;;1968:34:96;981:14960:95;;;;;;;;;;;;;;;-1:-1:-1;;981:14960:95;;;;;;;;;;:::i;:::-;;;;;-1:-1:-1;;;;;981:14960:95;;;;;;;;;:::i;:::-;;;;;4622:48:96;981:14960:95;;;:::i;:::-;4622:48:96;;:::i;981:14960:95:-;;;;;;-1:-1:-1;;981:14960:95;;;;;;;;;:::i;:::-;3217:103:28;;:::i;:::-;3202:4:23;;:::i;:::-;-1:-1:-1;981:14960:95;;;;;;;;;;;;;10370:24;10366:74;;-1:-1:-1;;981:14960:95;;;;;;;;-1:-1:-1;981:14960:95;;;;;;10489:25;;981:14960;;10489:25;3282:1:28;1805;-1:-1:-1;;;;;;;;;;;981:14960:95;3716:283:28;981:14960:95;;;;;;-1:-1:-1;;981:14960:95;;;;;-1:-1:-1;;;;;;;;;;;;;;;;981:14960:95;;;;;;;;;;;;;;-1:-1:-1;;981:14960:95;;;;;;:::i;:::-;;;;;;:::i;:::-;-1:-1:-1;;;;;981:14960:95;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;8837:64:25;;981:14960:95;;;;;;734:29:71;730:87;;981:14960:95;;;;;6431:44:25;;;;;981:14960:95;6427:105:25;;;6656:20;981:14960:95;6656:20:25;981:14960:95;1167:340:71;981:14960:95;;;;-1:-1:-1;;;;;981:14960:95;;;;;6575:22:25;-1:-1:-1;;;;;;;;;;;;;;981:14960:95;;;;;;;;;6575:22:25;1167:340:71;:::i;:::-;-1:-1:-1;;;;;;;;;;;981:14960:95;;-1:-1:-1;;981:14960:95;;;;;-1:-1:-1;;;;;981:14960:95;;;;;;;;;;;;;6656:20:25;;;;981:14960:95;6431:44:25;981:14960:95;;;;;-1:-1:-1;6450:25:25;6431:44;;;730:87:71;981:14960:95;;-1:-1:-1;;;786:20:71;;981:14960:95;;786:20:71;981:14960:95;;;;;;-1:-1:-1;;981:14960:95;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;-1:-1:-1;;981:14960:95;;;;;;-1:-1:-1;981:14960:95;2431:59:96;981:14960:95;;;;-1:-1:-1;981:14960:95;;;;;;;;;;;;;;-1:-1:-1;;981:14960:95;;;;3875:17:96;981:14960:95;;3895:30:96;981:14960:95;;;;;3895:14:96;;;:::i;:::-;981:14960:95;;;3895:30:96;;:::i;:::-;981:14960:95;;;;;;;3874:63:96;981:14960:95;3874:63:96;;:::i;:::-;981:14960:95;;;;;;;;;;;;;-1:-1:-1;;981:14960:95;;;;;;1200:42:96;-1:-1:-1;;;;;981:14960:95;;;;;;;;;;;;-1:-1:-1;;981:14960:95;;;;;;2136:32:96;981:14960:95;;;;;;;;;;;;;;;;;;-1:-1:-1;;981:14960:95;;;;2303:62:24;;:::i;:::-;-1:-1:-1;;;;;;;;;;;981:14960:95;;-1:-1:-1;;;;;;981:14960:95;;;;;;;-1:-1:-1;;;;;981:14960:95;3975:40:24;981:14960:95;;3975:40:24;981:14960:95;;;;;;;-1:-1:-1;;981:14960:95;;;;;;;;;;;:::i;:::-;3217:103:28;;:::i;:::-;7131:7:95;981:14960;7117:21;;-1:-1:-1;;;;;981:14960:95;;-1:-1:-1;;;;;981:14960:95;;;7117:21;:10;:21;7113:71;;7218:14;;:::i;:::-;7265:25;;;;:::i;:::-;7305:17;;;;:53;;;981:14960;7304:87;;;;981:14960;7300:146;;981:14960;5173:21:96;9310:48:95;5173:21:96;;;:::i;:::-;7540:17:95;7528:30;7540:17;;;:::i;:::-;981:14960;;7528:11;981:14960;;;;;;;7528:30;981:14960;;7572:29;;;;;7642:30;;;;;:::i;:::-;7702:32;;;;:::i;:::-;7752:17;;;7748:384;;7568:1615;;;;;;;9197:17;9193:102;;7568:1615;981:14960;;;;;;;;;;;;;;;;;;;;;;;9310:48;3282:1:28;1805;-1:-1:-1;;;;;;;;;;;981:14960:95;3716:283:28;3282:1;981:14960:95;;;;;;;;;;;;;9193:102;-1:-1:-1;981:14960:95;9270:13;;981:14960;;9230:18;;981:14960;;-1:-1:-1;;;;;981:14960:95;;;9230:18;7556:1;981:14960;-1:-1:-1;;;;;981:14960:95;9270:13;;:::i;:::-;9193:102;;7748:384;8045:29;7813:50;7962:65;7813:50;7998:28;7914:29;7813:50;8057:16;7813:50;8077:40;7813:50;;;:::i;:::-;7914:29;;;:::i;:::-;837:15:62;819:34;837:15;819:34;:::i;:::-;7998:28:95;;:::i;8077:40::-;8057:16;;:::i;8045:29::-;981:14960;7748:384;;;;;;;7568:1615;8185:26;;;;981:14960;;7528:11;981:14960;;;;;;;8185:26;981:14960;8250:27;:45;:27;;;;;:::i;:45::-;8325:32;;;;;:::i;:::-;8375:17;;8371:802;;7568:1615;;;;;;;;8371:802;9096:26;8436:50;;8537:53;8436:50;8637:54;8436:50;8637:29;8436:50;9125:33;8436:50;;;;:::i;:::-;8537:53;;;;;;:::i;:::-;8637:29;;;;:::i;:::-;:54;:::i;:::-;8714:33;;;;8710:194;;8371:802;8922:65;837:15:62;8958:28:95;9038:40;837:15:62;;;819:34;837:15;819:34;:::i;9038:40:95:-;9005:30;9017:17;;;:::i;9005:30::-;981:14960;9125:33;:::i;:::-;9096:26;981:14960;;7528:11;981:14960;;;;;;;9096:26;981:14960;8371:802;;;;;;;8710:194;8797:33;8771:59;8922:65;8797:33;;;9038:40;8797:33;;;:::i;:::-;8771:59;;:::i;:::-;8852:33;;-1:-1:-1;8852:33:95;;-1:-1:-1;8710:194:95;;7300:146;981:14960;;-1:-1:-1;;;7414:21:95;;981:14960;;7414:21;7304:87;7363:28;;;;7304:87;;7305:53;7341:17;;;;:::i;:::-;7326:32;;7305:53;;7113:71;981:14960;;-1:-1:-1;;;7161:12:95;;981:14960;;7161:12;981:14960;;;;;;-1:-1:-1;;981:14960:95;;;;4384:17:96;981:14960:95;;;;;;;4405:14:96;;;:::i;:::-;4384:17;981:14960:95;;;;;;;4404:36:96;981:14960:95;;;4404:36:96;;:::i;981:14960:95:-;;;;;;-1:-1:-1;;981:14960:95;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;981:14960:95;;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;981:14960:95;2307:68:96;981:14960:95;;;;;-1:-1:-1;981:14960:95;;;;;;;;;;;;;;;;;-1:-1:-1;;981:14960:95;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;-1:-1:-1;;981:14960:95;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;981:14960:95;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6491:14;981:14960;;6491:14;;:::i;981:14960::-;;;;;4994:47:96;981:14960:95;;;:::i;:::-;4994:47:96;;:::i;981:14960:95:-;;;;;;;;;;;;;;;;;;;;:::i;:::-;3217:103:28;;:::i;:::-;10932:22:95;981:14960;;;;;10928:89;;981:14960;;-1:-1:-1;;;11032:49:95;;-1:-1:-1;;;;;981:14960:95;;;11032:49;;;981:14960;;;;;;;;;;;;;;;11032:49;11042:17;;;981:14960;11032:49;;;;;;;-1:-1:-1;11032:49:95;;;981:14960;11031:50;;11027:102;;981:14960;;-1:-1:-1;;;11143:34:95;;981:14960;;;;;11143:34;981:14960;11143:34;981:14960;;11143:34;;;;;;;-1:-1:-1;11143:34:95;;;981:14960;11189:4;;;981:14960;;11143:51;11139:107;;-1:-1:-1;10932:22:95;981:14960;;-1:-1:-1;;;;;981:14960:95;;;;-1:-1:-1;;;;;;981:14960:95;;;;;;;-1:-1:-1;;;981:14960:95;;;11334:24;-1:-1:-1;;11334:24:95;3282:1:28;1805;-1:-1:-1;;;;;;;;;;;981:14960:95;3716:283:28;11139:107:95;981:14960;;-1:-1:-1;;;11217:18:95;;;11143:34;;;;;;;-1:-1:-1;11143:34:95;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;11027:102;-1:-1:-1;981:14960:95;;-1:-1:-1;;;11104:14:95;;;11032:49;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;10928:89;981:14960;;-1:-1:-1;;;10977:29:95;;;981:14960;;;;;;-1:-1:-1;;981:14960:95;;;;;;1298:40:96;-1:-1:-1;;;;;981:14960:95;;;;;;;;;;;;-1:-1:-1;;981:14960:95;;;;1703:14;;:::i;:::-;5173:21:96;;:::i;:::-;981:14960:95;;;;1750:11;981:14960;;;;;;;;;;;;;1791:1;981:14960;;;;;;;;;1750:11;981:14960;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;981:14960:95;;;;-1:-1:-1;;;;;;;;;;;981:14960:95;;;-1:-1:-1;;;;;981:14960:95;;;;;;;;;;;;;;-1:-1:-1;;981:14960:95;;;;;;3901:31:23;981:14960:95;;;;;:::i;:::-;;;-1:-1:-1;981:14960:95;-1:-1:-1;;;;;;;;;;;981:14960:95;;;-1:-1:-1;981:14960:95;;;;;;;;;;;;;;;;;3901:31:23;981:14960:95;;;;;;;;;;;;;;;;-1:-1:-1;;981:14960:95;;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;981:14960:95;5606:15:96;981:14960:95;;;5606:33:96;981:14960:95;-1:-1:-1;981:14960:95;5606:33:96;:::i;981:14960:95:-;;;;;;-1:-1:-1;;981:14960:95;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;981:14960:95;;;;-1:-1:-1;981:14960:95;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;416:25:75;;;;477:31;981:14960:95;416:25:75;;:::i;:::-;981:14960:95;;;;;;;;;477:31:75;;;981:14960:95;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;981:14960:95;;;;;;;;;;;;;;477:31:75;981:14960:95;477:31:75;;;;;;;:::i;:::-;518:79;;;981:14960:95;518:79:75;;981:14960:95;;;;;;-1:-1:-1;;981:14960:95;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;981:14960:95;;;;;;;;;;;;;;;;;-1:-1:-1;;981:14960:95;;;;;;;1109:35:96;981:14960:95;;;;;;;;;-1:-1:-1;;981:14960:95;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;3217:103:28;;:::i;:::-;3202:4:23;;:::i;:::-;-1:-1:-1;;;;;981:14960:95;;;9907:21;;9903:75;;-1:-1:-1;981:14960:95;;;9992:22;981:14960;;;;;;;;;;;;;9992:41;9988:91;;-1:-1:-1;;;;;981:14960:95;;;;;3586:22;981:14960;;;;;10145:44;;;;10089:40;;:31;981:14960;;;;;;;;;;;;;;10089:40;981:14960;;;;;;;;;;;;;;;10145:44;;;;3282:1:28;1805;-1:-1:-1;;;;;;;;;;;981:14960:95;3716:283:28;9903:75:95;981:14960;;-1:-1:-1;;;9951:16:95;;981:14960;;9951:16;981:14960;;;;;;-1:-1:-1;;981:14960:95;;;;;2666:94:96;981:14960:95;;;;;:::i;:::-;;;-1:-1:-1;981:14960:95;2666:94:96;981:14960:95;;;-1:-1:-1;981:14960:95;;;;;;;;;;;;;;;;;2666:94:96;981:14960:95;;;;;;;;;;;;;-1:-1:-1;;981:14960:95;;;;;;2816:92:96;981:14960:95;;;;;:::i;:::-;;;-1:-1:-1;981:14960:95;2816:92:96;981:14960:95;;;-1:-1:-1;981:14960:95;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3217:103:28;;:::i;:::-;11459:20:95;981:14960;;;;;11455:85;;-1:-1:-1;;;;;981:14960:95;;;;;;11550:312;;981:14960;11459:20;981:14960;;-1:-1:-1;;;;981:14960:95;-1:-1:-1;;;981:14960:95;;;11872:27;11915:20;-1:-1:-1;11915:20:95;;3282:1:28;1805;-1:-1:-1;;;;;;;;;;;981:14960:95;3716:283:28;11550:312:95;981:14960;;-1:-1:-1;;;11597:45:95;;-1:-1:-1;;;;;981:14960:95;;11597:45;;;981:14960;;;11597:45;;981:14960;;;;;;11597:45;11607:15;;;981:14960;11597:45;;;;;;;-1:-1:-1;11597:45:95;;;11550:312;11596:46;;11592:104;;981:14960;;-1:-1:-1;;;11714:30:95;;;981:14960;11714:30;981:14960;11714:30;;;;;;;;-1:-1:-1;11714:30:95;;;11550:312;11756:4;;;981:14960;;11714:47;11710:109;;-1:-1:-1;11459:20:95;981:14960;;-1:-1:-1;;;;;;981:14960:95;-1:-1:-1;;;;;981:14960:95;;;;;;;;;11550:312;;;;;;11710:109;981:14960;;-1:-1:-1;;;11788:16:95;;;11714:30;;;;;;;-1:-1:-1;11714:30:95;;;;;;:::i;:::-;;;;;;11592:104;981:14960;;-1:-1:-1;;;11669:12:95;;981:14960;;11669:12;11597:45;;;;;;;;;;;;;;:::i;:::-;;;;11455:85;981:14960;;-1:-1:-1;;;11502:27:95;;;981:14960;;;;;;-1:-1:-1;;981:14960:95;;;;;;;;;:::i;:::-;;;3217:103:28;;;:::i;:::-;-1:-1:-1;;;;;981:14960:95;;;;;6112:23;;6108:79;;6273:6;981:14960;6206:13;;;;:::i;:::-;981:14960;;;-1:-1:-1;981:14960:95;;;;6273:6;:::i;:::-;981:14960;;;;;;;;;;;;6302:10;;6296:43;;981:14960;6296:43;1805:1:28;-1:-1:-1;;;;;;;;;;;981:14960:95;;;;;;;;;;;;;;6108:79;981:14960;;-1:-1:-1;;;6158:18:95;;981:14960;;6158:18;981:14960;;;;;;-1:-1:-1;;981:14960:95;;;;;;-1:-1:-1;981:14960:95;2546:64:96;981:14960:95;;;;-1:-1:-1;981:14960:95;;;;;;;;;;;;;;-1:-1:-1;;981:14960:95;;;;2058:22:96;981:14960:95;;;-1:-1:-1;;;;;981:14960:95;;;;;;;;;;;;;;-1:-1:-1;;981:14960:95;;;;;5173:21:96;;:::i;981:14960:95:-;;;;;;-1:-1:-1;;981:14960:95;;;;;;3217:103:28;;:::i;:::-;966:10:27;-1:-1:-1;981:14960:95;;;;;;;;;;1109:35:96;;981:14960:95;;4468:23:23;4464:108;;981:14960:95;;;;10692:21;10688:71;;981:14960;;10805:22;981:14960;;;;;;;;10805:22;1805:1:28;-1:-1:-1;;;;;;;;;;;981:14960:95;;4464:108:23;981:14960:95;;;;4514:47:23;;;;;;966:10:27;981:14960:95;4514:47:23;;981:14960:95;;;;;4514:47:23;981:14960:95;;;;;;-1:-1:-1;;981:14960:95;;;;;4803:22:96;;:::i;981:14960:95:-;;;;;;-1:-1:-1;;981:14960:95;;;;;;;;;:::i;:::-;3123:14;;:::i;:::-;3154:24;;;:::i;:::-;3181:29;;;;;:::i;:::-;981:14960;;;;;;;3235:1;981:14960;;;;;;;3213:33;;;:::i;:::-;981:14960;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;981:14960:95;;;;1888:24:96;981:14960:95;;;-1:-1:-1;;;;;981:14960:95;;;;;;;;;;;;;;-1:-1:-1;;981:14960:95;;;;5767:26:23;981:14960:95;;;;;;;:::i;:::-;;-1:-1:-1;981:14960:95;-1:-1:-1;;;;;;;;;;;981:14960:95;;3202:4:23;4919:24;981:14960:95;-1:-1:-1;981:14960:95;4919:24:23;981:14960:95;3202:4:23;:::i;:::-;5767:26;:::i;981:14960:95:-;;;;;;-1:-1:-1;;981:14960:95;;;;;;;;;;;;;-1:-1:-1;;;;;981:14960:95;;;;;;;;;;;;-1:-1:-1;;981:14960:95;;;;;;;675:39:96;981:14960:95;;;;;;;;;-1:-1:-1;;981:14960:95;;;;;;;;;;;;;;;;;;;-1:-1:-1;;981:14960:95;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;-1:-1:-1;;;;;981:14960:95;;;;;;;;;;;;;;;:::i;:::-;1972:48;;981:14960;;;;;;;:::i;:::-;;;;;;;;;;;;;;2034:16;;2030:111;;981:14960;;2233:39;1057:70:87;2233:39:95;;4622:48:96;2196:77:95;2233:39;;;;2196:77;;:::i;:::-;2312:36;;4994:47:96;981:14960:95;2312:36;;;4994:47:96;;:::i;:::-;2389:37:95;;;4622:48:96;;:::i;:::-;1057:70:87;;:::i;:::-;981:14960:95;;;;;;;;;;;;;2030:111;2089:41;;;;-1:-1:-1;981:14960:95;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;4622:48:96;981:14960:95;2196:77;981:14960;1057:70:87;981:14960:95;;;:::i;:::-;;;;;2030:111;;;;;981:14960;;;;;;-1:-1:-1;;981:14960:95;;;;2357:1:24;981:14960:95;;;;;:::i;:::-;2303:62:24;;:::i;:::-;2357:1;:::i;981:14960:95:-;;;;;;-1:-1:-1;;981:14960:95;;;;;;;;;:::i;:::-;;;3217:103:28;;:::i;:::-;-1:-1:-1;;;;;981:14960:95;;4890:21;4886:75;;4975:11;;4971:73;;845:69:87;4803:22:96;;:::i;:::-;5173:21;;:::i;:::-;845:69:87;;;:::i;:::-;5180:10:95;981:14960;;;;5606:15:96;981:14960:95;;;;;5180:10;;;5606:33:96;;;:::i;:::-;5150:41:95;;5146:96;;5267:40;;;;;:::i;5146:96::-;981:14960;;-1:-1:-1;;;5214:17:95;;981:14960;;5214:17;4971:73;981:14960;;-1:-1:-1;;;5009:24:95;;981:14960;;5009:24;981:14960;;;;;;-1:-1:-1;;981:14960:95;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;981:14960:95;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;:::o;:::-;;7556:1;981:14960;;;;;;;:::o;:::-;;;;;;;;;;:::o;5256:193:96:-;-1:-1:-1;;;;;981:14960:95;-1:-1:-1;981:14960:95;;;5383:15:96;981:14960:95;;;;;5383:59:96;;5256:193;;5383:59;:::i;981:14960:95:-;;;;;;;;;;;:::o;:::-;;;;;;;;;;1167:340:71;;13510:30:95;1167:340:71;981:14960:95;1167:340:71;6893:76:25;;:::i;:::-;;;:::i;:::-;1805:1:28;-1:-1:-1;;;;;;;;;;;981:14960:95;-1:-1:-1;;;;;981:14960:95;;;;1376:73:71;;1167:340;981:14960:95;;;;:::i;:::-;13510:30;981:14960;;;13510:30;;;;;;:::i;:::-;981:14960;;;;-1:-1:-1;;;;;981:14960:95;13555:31;13551:88;;13653:20;;;;981:14960;;;;;;;;;;13653:25;13649:85;;13748:29;;;981:14960;;13748:29;;981:14960;13748:43;;-1:-1:-1;;;;;981:14960:95;;;13748:43;;13744:943;;1167:340:71;981:14960:95;;;15647:32;981:14960;14817:36;981:14960;;;14697:30;981:14960;;;;;;;;;;;;1398:1:71;981:14960:95;;-1:-1:-1;;;;;;981:14960:95;;;;;;-1:-1:-1;;;;;981:14960:95;;;;;;;;14697:30;13510;14747:13;;981:14960;;;;-1:-1:-1;;;;;;981:14960:95;-1:-1:-1;;;;;981:14960:95;;;;;;;;;14771:36;819:34:62;837:15;819:34;:::i;:::-;1805:1:28;981:14960:95;;-1:-1:-1;;;;981:14960:95;;;;;;-1:-1:-1;;;981:14960:95;;;;;;;;14771:36;981:14960;;;;;;1805:1:28;981:14960:95;;-1:-1:-1;;;;;981:14960:95;;;;;;-1:-1:-1;;;;;;981:14960:95;;;;;;;;14817:36;14864:42;981:14960;14883:23;;;981:14960;;;;;;;;;1398:1:71;981:14960:95;;;;;;;1398:1:71;981:14960:95;;14864:42;14917:38;981:14960;14934:21;;;981:14960;;;;;;;1398:1:71;981:14960:95;;;;;;;;;;;;1398:1:71;981:14960:95;;14917:38;14965:34;14980:19;;;981:14960;14965:34;981:14960;;14965:34;981:14960;-1:-1:-1;;;;;981:14960:95;;;;;;;15010:135;;1167:340:71;-1:-1:-1;15158:36:95;;;981:14960;-1:-1:-1;;;;;981:14960:95;;;;15154:157;;1167:340:71;-1:-1:-1;15324:35:95;;;981:14960;-1:-1:-1;;;;;981:14960:95;;;;15320:153;;1167:340:71;-1:-1:-1;15486:34:95;;;981:14960;-1:-1:-1;;;;;981:14960:95;;;;15482:152;;1167:340:71;-1:-1:-1;15647:32:95;981:14960;-1:-1:-1;;;;;981:14960:95;;;;;;;15643:145;;1167:340:71;:::o;15643:145:95:-;15709:68;;;:::i;:::-;;1167:340:71:o;15482:152:95:-;15550:73;;;:::i;:::-;;15482:152;;;15320:153;15389:73;;;:::i;:::-;;15320:153;;;15154:157;15224:76;;;:::i;:::-;;15154:157;;;15010:135;15073:61;;;:::i;:::-;;15010:135;;;13744:943;13811:36;;;981:14960;13811:50;;-1:-1:-1;;;;;981:14960:95;;;13811:50;;13807:405;;13744:943;14230:34;;;981:14960;14230:48;;-1:-1:-1;;;;;981:14960:95;;;14230:48;13744:943;14226:451;14302:21;;;981:14960;;14302:21;;14351:19;;;981:14960;14351:24;:74;;;14298:365;14347:150;;14298:365;;981:14960;15647:32;14298:365;14817:36;981:14960;;14298:365;;14226:451;;;;;;;13744:943;;14347:150;981:14960;-1:-1:-1;;;14460:14:95;;;;;14351:74;-1:-1:-1;14379:32:95;;;981:14960;14379:46;;-1:-1:-1;;;;;981:14960:95;;;14379:46;;14351:74;;14298:365;14525:19;;;981:14960;14525:24;;;:74;;;14298:365;14521:142;;14298:365;;981:14960;15647:32;14298:365;14817:36;981:14960;;14298:365;;;14525:74;-1:-1:-1;14553:32:95;;;981:14960;14553:46;;-1:-1:-1;;;;;981:14960:95;;;14553:46;;;14525:74;;13807:405;13885:23;;;981:14960;;13885:23;;13936:35;;;981:14960;13936:49;;-1:-1:-1;;;;;981:14960:95;;;13936:49;13807:405;13932:125;981:14960;-1:-1:-1;;;14020:14:95;;;;;13881:317;14085:35;;;981:14960;14085:49;;-1:-1:-1;;;;;981:14960:95;;;14085:49;14081:117;13807:405;14081:117;981:14960;-1:-1:-1;;;14165:14:95;;;;;13649:85;981:14960;;-1:-1:-1;;;13701:22:95;;;;;13551:88;981:14960;;-1:-1:-1;;;13609:19:95;;;;;1376:73:71;6961:1:25;6893:76;;;:::i;:::-;;;:::i;6961:1::-;1376:73:71;;;2492:191:95;-1:-1:-1;;;;;981:14960:95;-1:-1:-1;981:14960:95;;;5606:15:96;981:14960:95;;;;;5606:33:96;;;:::i;:::-;5173:21;;:::i;:::-;4803:22;;:::i;:::-;981:14960:95;1884:1:87;981:14960:95;;;;;;;1884:1:87;981:14960:95;;;;;;;8188:25:57;;;:::i;981:14960:95:-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;:::i;3612:132:96:-;819:34:62;837:15;819:34;:::i;:::-;3683:54:96;3703:17;981:14960:95;3684:36:96;981:14960:95;;;;;;;3684:36:96;;:::i;:::-;981:14960:95;;;3683:54:96;;:::i;:::-;981:14960:95;3612:132:96;:::o;3313:244::-;3418:17;981:14960:95;;;;;;;;;;;;;;3406:29:96;3402:85;;3503:47;3504:29;;;;:::i;3402:85::-;981:14960:95;;-1:-1:-1;;;3458:18:96;;;;;3217:103:28;;;;:::i;:::-;981:14960:95;;-1:-1:-1;;;;;981:14960:95;;;6521:23;;6517:79;;6650:11;;6646:70;;981:14960;6742:10;;;;;;-1:-1:-1;981:14960:95;;6887:49;;981:14960;;;;6864:6;;981:14960;;6821:18;;981:14960;;-1:-1:-1;;;;;981:14960:95;;;6821:18;6864:6;:::i;:::-;6887:49;981:14960;;6898:10;;;;6887:49;;;:::i;:::-;;;;3282:1:28;;1805;-1:-1:-1;;;;;;;;;;;981:14960:95;3716:283:28;6754:3:95;6790:9;6773:27;981:14960;6790:9;6783:17;6790:9;;;;;:::i;:::-;981:14960;6783:17;:::i;6773:27::-;6754:3;981:14960;6731:9;;6646:70;981:14960;;-1:-1:-1;;;6684:21:95;;;;;981:14960;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;981:14960:95;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;-1:-1:-1;981:14960:95;;;;:::o;:::-;;;:::o;3405:215:24:-;-1:-1:-1;;;;;981:14960:95;;;;3489:22:24;;3485:91;;-1:-1:-1;;;;;;;;;;;981:14960:95;;-1:-1:-1;;;;;;981:14960:95;;;;;;;;3975:40:24;-1:-1:-1;;3975:40:24;3405:215::o;3485:91::-;981:14960:95;;-1:-1:-1;;;3534:31:24;;3509:1;3534:31;;;981:14960:95;;;3534:31:24;2731:227:95;;2871:34;2731:227;981:14960;-1:-1:-1;981:14960:95;2871:18;981:14960;;;-1:-1:-1;981:14960:95;;;;;;;;;;;;;;;;;2871:34;981:14960;;-1:-1:-1;981:14960:95;2907:11;981:14960;;;-1:-1:-1;981:14960:95;;2927:16;981:14960;;;-1:-1:-1;981:14960:95;;;1884:1:87;981:14960:95;;;;;;;1884:1:87;981:14960:95;;;;;;;8188:25:57;;;:::i;3326:384:28:-;-1:-1:-1;;;;;;;;;;;1847:1:28;981:14960:95;;3526:20:28;3522:88;;1847:1;981:14960:95;;3326:384:28:o;3522:88::-;981:14960:95;;-1:-1:-1;;;3569:30:28;;;;;11948:968:95;12135:10;981:14960;;;;5606:15:96;981:14960:95;;;;;;11948:968;;;819:34:62;837:15;819:34;:::i;:::-;12135:10:95;981:14960;;;;5606:15:96;981:14960:95;;;;;5606:33:96;;;:::i;:::-;981:14960:95;;;;;;;;;12119:93;12835:74;12119:93;;;12660:30;12119:93;;:::i;:::-;837:15:62;;12222:67:95;819:34:62;837:15;819:34;:::i;:::-;12259:29:95;4803:22:96;;;:::i;12222:67:95:-;837:15:62;;12299:68:95;819:34:62;837:15;819:34;:::i;:::-;12335:31:95;5173:21:96;;;:::i;12299:68:95:-;12394:14;;12769:34;12394:14;12769:25;12394:18;:14;;:::i;:::-;:18;:::i;:::-;12726:33;12445:18;;981:14960;;7528:11;981:14960;;;;;;;12445:18;981:14960;12502:23;;981:14960;;12502:16;981:14960;;;;;;;12502:23;981:14960;390:70:87;;;;;:::i;:::-;12660:30:95;;;;;;:::i;:::-;12639:18;;981:14960;;7528:11;981:14960;;;;;;;12639:18;981:14960;12726:33;:::i;:::-;12700:23;;981:14960;;12502:16;981:14960;;;;;;;12700:23;981:14960;;;12769:18;981:14960;;;;;;;12769:25;981:14960;;;;;;;;;;;;;;;;12769:34;:50;981:14960;;;12769:50;:::i;:::-;981:14960;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;981:14960:95;;;;12135:10;;981:14960;;12835:74;11948:968::o;14291:213:58:-;981:14960:95;14369:24:58;;;;14365:103;;981:14960:95;14291:213:58;:::o;14365:103::-;981:14960:95;;;;14416:41:58;;;;;;14447:2;14416:41;;;981:14960:95;;;;;14416:41:58;981:14960:95;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;:::o;7558:604:86:-;;981:14960:95;;7686:17:86;7682:83;;981:14960:95;7789:27:86;981:14960:95;7789:27:86;981:14960:95;;7789:27:86;;;;;;:::i;:::-;7860:14;;;:::i;:::-;981:14960:95;;;;;;;;;;;;;;;;7888:22:86;;;7884:77;;7975:21;-1:-1:-1;7975:84:86;;;;7558:604;7971:139;;;;8127:28;;;;:::i;7971:139::-;7789:27;8082:17;;;981:14960:95;8075:24:86;:::o;7975:84::-;981:14960:95;;;8009:16:86;4622:13:96;981:14960:95;8009:16:86;:::i;:::-;981:14960:95;;;8001:24:86;:57;;;;;7975:84;;;;;;;8001:57;8029:29;8038:8;;;8029:18;8038:8;8029:23;8038:8;;:::i;:::-;8029:18;:::i;:23::-;981:14960:95;;;;8029:29:86;;8001:57;;;;7884:77;7933:17;;;7789:27;7933:17;;;981:14960:95;7926:24:86;:::o;7682:83::-;7726:28;;;;:::i;7558:604::-;;981:14960:95;;7686:17:86;7682:83;;981:14960:95;7789:27:86;981:14960:95;7789:27:86;981:14960:95;;7789:27:86;;;;;;:::i;:::-;7860:14;;;:::i;:::-;981:14960:95;;;;;;;;;;;;;;;;7888:22:86;;;7884:77;;7975:21;-1:-1:-1;7975:84:86;;;;7558:604;7971:139;;;;8127:28;;;;:::i;7975:84::-;981:14960:95;;;8009:16:86;4994:12:96;981:14960:95;8009:16:86;:::i;:::-;981:14960:95;;;8001:24:86;:57;;;;;7975:84;;;;;;;8001:57;8029:29;8038:8;;;8029:18;8038:8;8029:23;8038:8;;:::i;:::-;8029:18;:::i;:29::-;;8001:57;;;;7682:83;7726:28;;;;:::i;7558:604::-;;981:14960:95;;7686:17:86;7682:83;;981:14960:95;7789:27:86;981:14960:95;7789:27:86;981:14960:95;;7789:27:86;;;;;;:::i;:::-;7860:14;;;;;:::i;:::-;981:14960:95;;;;;;;;;;;;;;;;7888:22:86;;;7884:77;;7975:21;-1:-1:-1;7975:84:86;;;;7558:604;7971:139;;;;8127:28;;;;:::i;7971:139::-;8082:17;;7789:27;8082:17;981:14960:95;8075:24:86;:::o;7975:84::-;981:14960:95;;;8009:16:86;981:14960:95;;8009:16:86;:::i;:::-;981:14960:95;;;8001:24:86;:57;;;;;7975:84;;;;;;;8001:57;8029:29;8038:8;;;8029:18;8038:8;8029:23;8038:8;;:::i;:::-;8029:18;;:::i;:29::-;;8001:57;;;;7884:77;7933:17;;;;;7789:27;7933:17;981:14960:95;7926:24:86;:::o;7682:83::-;7726:28;;;;:::i;4148:103:23:-;966:10:27;-1:-1:-1;981:14960:95;;;;;;;;;675:39:96;;981:14960:95;;3901:31:23;981:14960:95;;4468:23:23;4464:108;;4148:103;:::o;:::-;966:10:27;-1:-1:-1;981:14960:95;;;;;;;;;966:38:96;;981:14960:95;;3901:31:23;981:14960:95;4148:103:23;966:10:27;-1:-1:-1;981:14960:95;;;;;;;;;821:37:96;;981:14960:95;;3901:31:23;981:14960:95;4148:103:23;-1:-1:-1;981:14960:95;;;-1:-1:-1;;;;;;;;;;;981:14960:95;;;;;;;;966:10:27;981:14960:95;;;;;;;;;3901:31:23;981:14960:95;7270:387:23;-1:-1:-1;;;;;981:14960:95;;1398:1:71;981:14960:95;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2887:71:23;981:14960:95;;;;1398:1:71;981:14960:95;;;;;;;;;;;-1:-1:-1;;;;;981:14960:95;;;;;;;;;;-1:-1:-1;;981:14960:95;7509:4:23;981:14960:95;;;966:10:27;;-1:-1:-1;;;;;981:14960:95;-1:-1:-1;7532:40:23;-1:-1:-1;;7532:40:23;7509:4;7586:11;:::o;7432:219::-;7628:12;;1398:1:71;7628:12:23;:::o;7270:387::-;-1:-1:-1;;;;;981:14960:95;;-1:-1:-1;981:14960:95;;;;;;;;;675:39:96;;-1:-1:-1;;;;;;;;;;;2887:71:23;981:14960:95;;3901:31:23;981:14960:95;;;;-1:-1:-1;981:14960:95;;;;;;;;;;;-1:-1:-1;;;;;981:14960:95;;;;;;;;;;-1:-1:-1;;981:14960:95;7509:4:23;981:14960:95;;;966:10:27;;-1:-1:-1;;;;;981:14960:95;;7532:40:23;-1:-1:-1;;7532:40:23;7509:4;7586:11;:::o;7432:219::-;7628:12;;;-1:-1:-1;7628:12:23;:::o;7270:387::-;-1:-1:-1;;;;;981:14960:95;;-1:-1:-1;981:14960:95;;;;;;;;;821:37:96;;-1:-1:-1;;;;;;;;;;;2887:71:23;981:14960:95;;3901:31:23;981:14960:95;7270:387:23;-1:-1:-1;;;;;981:14960:95;;-1:-1:-1;981:14960:95;;;;;;;;;966:38:96;;-1:-1:-1;;;;;;;;;;;2887:71:23;981:14960:95;;3901:31:23;981:14960:95;7270:387:23;-1:-1:-1;;;;;981:14960:95;;-1:-1:-1;981:14960:95;;;;;;;;;1109:35:96;;-1:-1:-1;;;;;;;;;;;2887:71:23;981:14960:95;;3901:31:23;981:14960:95;7270:387:23;-1:-1:-1;981:14960:95;;;-1:-1:-1;;;;;;;;;;;981:14960:95;;;;;;;;-1:-1:-1;;;;;981:14960:95;;;;;;;;;;;;3901:31:23;981:14960:95;7892:388:23;-1:-1:-1;981:14960:95;;;-1:-1:-1;;;;;;;;;;;981:14960:95;;;;;;;;-1:-1:-1;;;;;981:14960:95;;;;;;;;;;;;;;;;-1:-1:-1;981:14960:95;;;;;;;;;;;-1:-1:-1;;;;;981:14960:95;;;;;;;;;;-1:-1:-1;;981:14960:95;;;966:10:27;;-1:-1:-1;;;;;981:14960:95;;8155:40:23;-1:-1:-1;;8155:40:23;981:14960:95;8209:11:23;:::o;1702:188:45:-;981:14960:95;;-1:-1:-1;;;1829:53:45;;;;-1:-1:-1;;;;;981:14960:95;;;1829:53:45;;;981:14960:95;;;;;;;;;;;;;;;;;1829:53:45;;;981:14960:95;;;;;;;-1:-1:-1;;;;;981:14960:95;;;;;1829:53:45;981:14960:95;;;1829:53:45;:::i;981:14960:95:-;7178:12:86;981:14960:95;;;;;;7178:12:86;-1:-1:-1;981:14960:95;-1:-1:-1;;;;;;;;;;;981:14960:95;;-1:-1:-1;981:14960:95;:::o;:::-;7178:12:86;981:14960:95;;;;;;7178:12:86;-1:-1:-1;981:14960:95;-1:-1:-1;;;;;;;;;;;981:14960:95;;-1:-1:-1;981:14960:95;:::o;:::-;;;;;;;;-1:-1:-1;981:14960:95;;-1:-1:-1;981:14960:95;;;-1:-1:-1;981:14960:95;:::o;:::-;6360:12:86;981:14960:95;-1:-1:-1;;;981:14960:95;;;;;;;;;6360:12:86;981:14960:95;;;;;;6360:12:86;-1:-1:-1;981:14960:95;-1:-1:-1;;;;;;;;;;;981:14960:95;;:::o;:::-;6360:12:86;981:14960:95;-1:-1:-1;;;981:14960:95;;;;;;;;;6360:12:86;981:14960:95;;;;;;6360:12:86;-1:-1:-1;981:14960:95;-1:-1:-1;;;;;;;;;;;981:14960:95;;:::o;:::-;;;;;-1:-1:-1;;;981:14960:95;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;6246:584:86;;;;6360:12;981:14960:95;;;6360:24:86;;6356:75;;6246:584;6474:30;;;:::i;:::-;981:14960:95;;;;;;6578:12:86;;;:::i;:::-;6604:24;;;;6246:584;-1:-1:-1;6600:188:86;;;-1:-1:-1;;;981:14960:95;;;;;;;;;-1:-1:-1;981:14960:95;;;-1:-1:-1;981:14960:95;;;;;;6798:25:86;981:14960:95;6246:584:86:o;6600:188::-;8167:38:60;;-1:-1:-1;;;;;981:14960:95;;-1:-1:-1;8167:38:60;:::i;:::-;6753:24:86;;;;;:::i;:::-;6798:25;6246:584;:::o;6604:24::-;981:14960:95;;;;;;6614:14:86;;-1:-1:-1;6604:24:86;;;6356:75;-1:-1:-1;;;981:14960:95;;;;;;;;;;;;;;;;-1:-1:-1;981:14960:95;;;;-1:-1:-1;;;;;;;;;;;981:14960:95;;6356:75:86;;;6246:584;;;;6360:12;981:14960:95;;;6360:24:86;;6356:75;;6246:584;6474:30;;;:::i;:::-;981:14960:95;;;;;;6578:12:86;;;:::i;:::-;6604:24;;;;6246:584;-1:-1:-1;6600:188:86;;;-1:-1:-1;;;981:14960:95;;;;;;;;;-1:-1:-1;981:14960:95;;;-1:-1:-1;981:14960:95;;;;;;6798:25:86;981:14960:95;6246:584:86:o;6600:188::-;8167:38:60;;-1:-1:-1;;;;;981:14960:95;;-1:-1:-1;8167:38:60;:::i;:::-;6753:24:86;;;;;:::i;6604:::-;981:14960:95;;;;;;6614:14:86;;-1:-1:-1;6604:24:86;;;6356:75;-1:-1:-1;;;981:14960:95;;;;;;;;;;;;;;;;-1:-1:-1;981:14960:95;;;;-1:-1:-1;;;;;;;;;;;981:14960:95;;6356:75:86;;;6246:584;;;;;6360:12;;;981:14960:95;;;6360:24:86;;6356:75;;6246:584;6474:30;;;;;:::i;:::-;981:14960:95;;;;;;6578:12:86;;;;:::i;:::-;6604:24;;;;6246:584;-1:-1:-1;6600:188:86;;;-1:-1:-1;;;;;981:14960:95;;;;;;;6644:21:86;;;:29;:21;;:::i;6600:188::-;6753:24;;981:14960:95;;8167:38:60;;-1:-1:-1;;;;;981:14960:95;;;;;8167:38:60;:::i;:::-;6753:24:86;;;:::i;6604:::-;981:14960:95;;;;;;6614:14:86;;-1:-1:-1;6604:24:86;;;6356:75;-1:-1:-1;;;981:14960:95;;;;;;6360:12:86;981:14960:95;;;;;;;:::i;:::-;;;;;;;;;;;;;;6356:75:86;;;981:14960:95;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;:::o;2658:162:24:-;-1:-1:-1;;;;;;;;;;;981:14960:95;-1:-1:-1;;;;;981:14960:95;966:10:27;2717:23:24;2713:101;;2658:162::o;2713:101::-;981:14960:95;;-1:-1:-1;;;2763:40:24;;966:10:27;2763:40:24;;;981:14960:95;;;2763:40:24;2557:104:57;;2641:5;;;;;;:13;2557:104;:::o;2641:13::-;;;2557:104;:::o;981:14960:95:-;;;;;;;:::o;3803:4116:57:-;;;981:14960:95;;;;-1:-1:-1;;3803:4116:57;;4383:131;;;;;;;;;;;;4595:10;;4591:368;;5065:20;;;;5061:88;;5435:300;;;981:14960:95;-1:-1:-1;981:14960:95;5954:31:57;;5999:371;;;6813:1;981:14960:95;;6794:1:57;981:14960:95;6793:21:57;981:14960:95;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5999:371:57;;;;-1:-1:-1;5999:371:57;;;5435:300;;;;;;981:14960:95;5435:300:57;;5999:371;6436:21;981:14960:95;3803:4116:57;:::o;5061:88::-;981:14960:95;;-1:-1:-1;;;5112:22:57;;;;;4591:368;4925:19;;;;;;;:::i;1303:160:45:-;981:14960:95;;-1:-1:-1;;;1412:43:45;;;;-1:-1:-1;;;;;981:14960:95;;;1412:43:45;;;981:14960:95;;;;;;;;;1412:43:45;;;981:14960:95;;;;-1:-1:-1;;;;;981:14960:95;;;;;;;;1412:43:45;981:14960:95;;;1412:43:45;:::i;12922:460:95:-;;13024:14;;:::i;:::-;13015:23;;;13011:75;;-1:-1:-1;981:14960:95;;;13100:20;981:14960;;;;;;;;13128:10;981:14960;;;;;;;;;;13096:93;;13208:32;13128:10;13208:32;;:::i;:::-;13255:11;;;13251:68;;-1:-1:-1;981:14960:95;;;13100:20;981:14960;;;;;;;;13128:10;981:14960;;;;;;;;;-1:-1:-1;;981:14960:95;13371:4;981:14960;;;12922:460::o;13251:68::-;981:14960;;-1:-1:-1;;;13289:19:95;;;;;13096:93;981:14960;;-1:-1:-1;;;13162:16:95;;;;;13011:75;981:14960;;-1:-1:-1;;;13061:14:95;;;;;10580:184:86;5173:12:96;981:14960:95;10303:8:60;;;:63;-1:-1:-1;10303:63:60;-1:-1:-1;;;;;981:14960:95;;10726:7:86;981:14960:95;;10736:12:86;981:14960:95;;;;;;10736:12:86;-1:-1:-1;981:14960:95;-1:-1:-1;;;;;;;;;;;981:14960:95;;10580:184:86;:::o;10726:31::-;;-1:-1:-1;10580:184:86;:::o;10303:63:60:-;981:14960:95;;;;;;;;5173:12:96;-1:-1:-1;14249:109:60;;;981:14960:95;;;10303:63:60;;10580:184:86;4803:13:96;981:14960:95;10303:8:60;;;:63;-1:-1:-1;10303:63:60;-1:-1:-1;;;;;981:14960:95;;10726:7:86;981:14960:95;;10736:12:86;981:14960:95;;;;;;10736:12:86;-1:-1:-1;981:14960:95;-1:-1:-1;;;;;;;;;;;981:14960:95;;10580:184:86;:::o;10303:63:60:-;981:14960:95;;;;;;;;4803:13:96;-1:-1:-1;14249:109:60;;;981:14960:95;;;10303:63:60;;10580:184:86;981:14960:95;;10303:8:60;;;:63;-1:-1:-1;10303:63:60;-1:-1:-1;;;;;981:14960:95;;10726:7:86;981:14960:95;;10736:12:86;:17;:12;;:17;:::i;:::-;981:14960:95;;;;;;10580:184:86;:::o;10303:63:60:-;981:14960:95;;;;;;;;;;14249:109:60;-1:-1:-1;14249:109:60;;-1:-1:-1;14249:109:60;;;981:14960:95;;;10303:63:60;;1662:280:87;;;1884:1;981:14960:95;;;;;;;1884:1:87;981:14960:95;;;;;;;8188:25:57;;;:::i;6999:207:86:-;4622:13:96;981:14960:95;9594:15:60;-1:-1:-1;9619:18:60;9652:7;9658:1;9652:7;;9648:234;;6999:207:86;9906:53:60;;;;:::i;:::-;9977:8;;;:63;-1:-1:-1;9977:63:60;-1:-1:-1;;;;;981:14960:95;;7168:7:86;981:14960:95;;7178:17:86;981:14960:95;7178:17:86;;:::i;9977:63:60:-;9992:41;10025:7;9992:48;10025:7;;:::i;:::-;4622:13:96;14249:109:60;;-1:-1:-1;;;;;;;;;;;14249:109:60;14099:265;;9992:41;981:14960:95;;;;;9992:48:60;9977:63;;9648:234;9695:14;;;;;:::i;:::-;981:14960:95;;;;;;;9906:53:60;14249:109;4622:13:96;-1:-1:-1;14249:109:60;981:14960:95;14249:109:60;;-1:-1:-1;;;;;;;;;;;14249:109:60;981:14960:95;;;;;9727:48:60;9723:149;981:14960:95;;;9795:10:60;9723:149;9648:234;;9723:149;9850:7;;;;;;:::i;:::-;9723:149;9648:234;;6999:207:86;4994:12:96;981:14960:95;9594:15:60;-1:-1:-1;9619:18:60;9652:7;9658:1;9652:7;;9648:234;;6999:207:86;9906:53:60;;;;:::i;:::-;9977:8;;;:63;-1:-1:-1;9977:63:60;-1:-1:-1;;;;;981:14960:95;;7168:7:86;981:14960:95;;7178:17:86;981:14960:95;7178:17:86;;:::i;9977:63:60:-;9992:41;10025:7;9992:48;10025:7;;:::i;:::-;4994:12:96;14249:109:60;;-1:-1:-1;;;;;;;;;;;14249:109:60;14099:265;;9992:48;9977:63;;9648:234;9695:14;;;;;:::i;:::-;981:14960:95;;;;;;;9906:53:60;14249:109;4994:12:96;-1:-1:-1;14249:109:60;981:14960:95;14249:109:60;;-1:-1:-1;;;;;;;;;;;14249:109:60;981:14960:95;;;;;9727:48:60;9723:149;981:14960:95;;;9795:10:60;9723:149;9648:234;;9723:149;9850:7;;;;;;:::i;:::-;9723:149;9648:234;;6999:207:86;;981:14960:95;;9594:15:60;-1:-1:-1;9619:18:60;9652:7;9658:1;9652:7;;9648:234;;6999:207:86;9906:53:60;;;;;:::i;:::-;9977:8;;;:63;-1:-1:-1;9977:63:60;;-1:-1:-1;;;;;981:14960:95;;7168:7:86;981:14960:95;;;7178:12:86;;:17;:12;;:17;:::i;9977:63:60:-;9992:41;10025:7;9992:48;10025:7;;:::i;:::-;9992:41;14249:109;;;;;;14099:265;;9992:48;9977:63;;;9648:234;9695:14;;;;;:::i;:::-;981:14960:95;;;;;;;9906:53:60;14249:109;;-1:-1:-1;14249:109:60;981:14960:95;14249:109:60;;;-1:-1:-1;14249:109:60;;981:14960:95;;;;;9727:48:60;9723:149;981:14960:95;;;9795:10:60;9723:149;9648:234;;9723:149;9850:7;;;;;;:::i;:::-;9723:149;9648:234;;981:14960:95;;;;;;;:::i;:::-;-1:-1:-1;981:14960:95;;;;;;;:::o;11486:272:86:-;981:14960:95;;:::i;:::-;;;;:::i;:::-;;4622:13:96;981:14960:95;;;;;;;;4622:13:96;-1:-1:-1;981:14960:95;-1:-1:-1;;;;;;;;;;;981:14960:95;;:::i;:::-;;;;;;;;;;;;11731:17:86;;981:14960:95;;11718:12:86;981:14960:95;;;;;;11718:12:86;-1:-1:-1;981:14960:95;-1:-1:-1;;;;;;;;;;;981:14960:95;;;;;;;;:::i;:::-;;;;11672:79:86;;981:14960:95;11486:272:86;:::o;:::-;981:14960:95;;:::i;:::-;;;;:::i;:::-;;4994:12:96;981:14960:95;;;;;;;;4994:12:96;-1:-1:-1;981:14960:95;-1:-1:-1;;;;;;;;;;;981:14960:95;;:::i;:::-;;;;;;;;;;;;11731:17:86;;981:14960:95;;11718:12:86;981:14960:95;;;;;;11718:12:86;-1:-1:-1;981:14960:95;-1:-1:-1;;;;;;;;;;;981:14960:95;;;;;;;;:::i;11486:272:86:-;;981:14960:95;11308:22:60;11718:31:86;11486:272;981:14960:95;;:::i;:::-;;;;:::i;:::-;;11308:22:60;;:::i;:::-;981:14960:95;;:::i;:::-;;11718:12:86;981:14960:95;;;;;11731:17:86;981:14960:95;;;;;11731:17:86;;981:14960:95;;11718:12:86;;:31;:::i;:::-;981:14960:95;;;;;;;;;:::i;:::-;;;;;;11731:17:86;11672:79;;981:14960:95;11486:272:86;:::o;4059:629:45:-;2847:1:46;4059:629:45;3510:55:46;4059:629:45;981:14960:95;;;;;;3462:31:46;;;;;;;;;;;;:::i;:::-;3510:55;;;:::i;:::-;981:14960:95;;4551:22:45;;;;:57;;;;4059:629;4547:135;;;;4059:629;:::o;4547:135::-;981:14960:95;;;;4631:40:45;;;;;;;;;981:14960:95;4631:40:45;4551:57;4578:30;;;3462:31:46;4578:30:45;;;;;;;;:::i;:::-;4577:31;4551:57;;;;1258:280:87;;;981:14960:95;;;;;;;;;;;;;;;;8188:25:57;;;;;:::i;:::-;8257;;;;;;8223:101;;1258:280:87;:::o;8223:101:57:-;981:14960:95;;;;;;;;1258:280:87;:::o;981:14960:95:-;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::o;10552:388:60:-;5173:12:96;981:14960:95;10728:8:60;;;10752:20;10690:17;10752:20;10690:17;10752:20;10690:17;10752:20;:::o;10724:210::-;981:14960:95;;;;;;;;14249:109:60;981:14960:95;14249:109:60;5173:12:96;10690:17:60;14249:109;;981:14960:95;:::i;:::-;;;;;;;14249:109:60;981:14960:95;;;;;10911:11:60;;981:14960:95;;10886:37:60;10870:1;10886:37;;;:::o;10552:388::-;4803:13:96;981:14960:95;10728:8:60;;;10752:20;10690:17;10752:20;10690:17;10752:20;10690:17;10752:20;:::o;10724:210::-;981:14960:95;;;;;;;;14249:109:60;981:14960:95;14249:109:60;4803:13:96;10690:17:60;14249:109;;981:14960:95;:::i;10552:388:60:-;981:14960:95;;10728:8:60;;;10752:20;;10690:17;10752:20;10690:17;10752:20;10690:17;10752:20;:::o;10724:210::-;981:14960:95;;;;;;;;;;;14249:109:60;10690:17;14249:109;;10690:17;14249:109;;;981:14960:95;:::i;7084:141:25:-;981:14960:95;-1:-1:-1;;;;;;;;;;;981:14960:95;;;;7150:18:25;7146:73;;7084:141::o;7146:73::-;981:14960:95;;-1:-1:-1;;;7191:17:25;;;;;981:14960:95;5173:12:96;981:14960:95;;-1:-1:-1;;;981:14960:95;;;;;;;;;5173:12:96;981:14960:95;;;;;;5173:12:96;-1:-1:-1;981:14960:95;;;;;;;;;;-1:-1:-1;;981:14960:95;;;;;;;-1:-1:-1;;;;;;;;;;;981:14960:95;;;;:::o;:::-;4803:13:96;981:14960:95;;-1:-1:-1;;;981:14960:95;;;;;;;;;4803:13:96;981:14960:95;;;;;;4803:13:96;-1:-1:-1;981:14960:95;;;;;;;;;;-1:-1:-1;;981:14960:95;;;;;;;-1:-1:-1;;;;;;;;;;;981:14960:95;;;;:::o;:::-;;;-1:-1:-1;;;981:14960:95;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;981:14960:95;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;11513:870:60;5173:12:96;981:14960:95;11513:870:60;;;981:14960:95;11672:7:60;;;;981:14960:95;11775:28:60;11795:7;;;:::i;11775:28::-;981:14960:95;:::i;:::-;;;;;;;;;;-1:-1:-1;;11873:91:60;;981:14960:95;12233:11:60;981:14960:95;;;12027:16:60;981:14960:95;;;;;;;12027:16:60;;;;12083:7;12063:28;12083:7;12063:43;12083:7;;:::i;12063:28::-;981:14960:95;;;;;;;;;;;;;;;;;12063:43:60;12233:11;981:14960:95;-1:-1:-1;;;;;981:14960:95;;;12023:189:60;981:14960:95;;12145:52:60;981:14960:95;;12155:41:60;981:14960:95;;:::i;:::-;;;;;;;;12155:41:60;-1:-1:-1;;;;;981:14960:95;;12155:41:60;;;981:14960:95;12145:52:60;:::i;:::-;12023:189;;11873:91;981:14960:95;;-1:-1:-1;;;11919:30:60;;;;;11668:709;12283:52;981:14960:95;;12293:41:60;981:14960:95;;:::i;12293:41:60:-;-1:-1:-1;;;;;981:14960:95;;12293:41:60;;;981:14960:95;12145:52:60;:::i;12283:::-;11678:1;12349:17;;:::o;11513:870::-;4803:13:96;981:14960:95;11513:870:60;;;981:14960:95;11672:7:60;;;;981:14960:95;11775:28:60;11795:7;;;:::i;981:14960:95:-;;;;;;;;;;-1:-1:-1;;11873:91:60;;981:14960:95;12233:11:60;981:14960:95;;;12027:16:60;981:14960:95;;;;;;;12027:16:60;;;;12083:7;12063:28;12083:7;12063:43;12083:7;;:::i;12023:189::-;981:14960:95;;12145:52:60;981:14960:95;;12155:41:60;981:14960:95;;:::i;12155:41:60:-;-1:-1:-1;;;;;981:14960:95;;12155:41:60;;;981:14960:95;12145:52:60;:::i;11668:709::-;12283:52;981:14960:95;;12293:41:60;981:14960:95;;:::i;12293:41:60:-;-1:-1:-1;;;;;981:14960:95;;12293:41:60;;;981:14960:95;12145:52:60;:::i;11513:870::-;981:14960:95;;11513:870:60;;;981:14960:95;11513:870:60;11672:7;;;;981:14960:95;11775:28:60;11795:7;;;:::i;981:14960:95:-;;;;;;;;;;;;;;;;11877:15:60;-1:-1:-1;11873:91:60;;981:14960:95;;12233:11:60;981:14960:95;;;12027:16:60;981:14960:95;;;;;;;12027:16:60;;;;12083:7;12063:43;12083:7;;12063:28;12083:7;;:::i;:::-;12063:28;14249:109;;;;;;14099:265;;12023:189;981:14960:95;;;12145:52:60;981:14960:95;12155:41:60;981:14960:95;;:::i;:::-;;;;;;;;12155:41:60;-1:-1:-1;;;;;981:14960:95;;12155:41:60;;;981:14960:95;12145:52:60;:::i;11668:709::-;12283:52;981:14960:95;;12293:41:60;981:14960:95;;:::i;12293:41:60:-;-1:-1:-1;;;;;981:14960:95;;12293:41:60;;;981:14960:95;12145:52:60;:::i;8587:1642:57:-;8658:6;;8654:45;;9401:7;10201:10;10142:26;10093;10044;9995;9946;9897;9848;981:14960:95;10189:23:57;9401:7;8663:1;981:14960:95;;;;10826:16:57;10822:99;;8587:1642;981:14960:95;;;;10938:15:57;10934:96;;8587:1642;981:14960:95;;;;11047:15:57;11043:96;;8587:1642;981:14960:95;;;;11156:15:57;11152:96;;8587:1642;981:14960:95;;;;11265:14:57;11261:93;;8587:1642;981:14960:95;;;;11371:14:57;11367:93;;8587:1642;981:14960:95;;;;11477:14:57;11473:93;;8587:1642;981:14960:95;;;11579:64:57;;8587:1642;981:14960:95;;;9858:10:57;;;;:::i;:::-;981:14960:95;;;;;9848:26:57;9907:10;;;;:::i;9897:26::-;9956:10;;;;:::i;9946:26::-;10005:10;;;;:::i;9995:26::-;10054:10;;;;:::i;10044:26::-;10103:10;;;;:::i;10093:26::-;10152:10;;;;:::i;10142:26::-;10201:10;;;:::i;:::-;10189:23;;:::i;11579:64::-;981:14960:95;;11579:64:57;;11473:93;981:14960:95;11511:11:57;;981:14960:95;;11473:93:57;;;;11367;981:14960:95;11405:11:57;;981:14960:95;;11367:93:57;;;;11261;981:14960:95;11299:11:57;;981:14960:95;;11261:93:57;;;;11152:96;981:14960:95;11191:12:57;;981:14960:95;;11152:96:57;;;;11043;981:14960:95;11082:12:57;;981:14960:95;;11043:96:57;;;;10934;981:14960:95;10973:12:57;;981:14960:95;;10934:96:57;;;;10822:99;10862:13;;;981:14960:95;10822:99:57;;;;12736:433:60;;12919:10;;;;;;13151:11;;12736:433;:::o;12912:230::-;2900:5:57;;;;;981:14960:95;;2910:5:57;;;981:14960:95;;;;;;;;;4622:13:96;-1:-1:-1;14249:109:60;981:14960:95;14249:109:60;;-1:-1:-1;;;;;;;;;;;14249:109:60;981:14960:95;;;;;-1:-1:-1;12996:136:60;981:14960:95;;;13055:10:60;;12996:136;;12912:230;;;12996:136;981:14960:95;;;;;;;;;;;12996:136:60;;;12736:433;;12919:10;;;;;;13151:11;;12736:433;:::o;12912:230::-;2900:5:57;;;;;981:14960:95;;2910:5:57;;;981:14960:95;;;;;;;;;4994:12:96;-1:-1:-1;14249:109:60;981:14960:95;14249:109:60;;-1:-1:-1;;;;;;;;;;;14249:109:60;981:14960:95;;;;;-1:-1:-1;12996:136:60;981:14960:95;;;13055:10:60;;12996:136;;12912:230;;;12996:136;981:14960:95;;;;;;;;;;;12996:136:60;;;12736:433;;;12919:10;;;;;;13151:11;;;12736:433;:::o;12912:230::-;2900:5:57;;;;;;981:14960:95;;2910:5:57;;;981:14960:95;;;;;;;;;14249:109:60;-1:-1:-1;14249:109:60;981:14960:95;14249:109:60;;;-1:-1:-1;14249:109:60;;981:14960:95;;;;;-1:-1:-1;12996:136:60;981:14960:95;;;13055:10:60;;12996:136;;12912:230;;;;12996:136;981:14960:95;;;;;;;;;;;12996:136:60;;;4625:582:46;;4797:8;;-1:-1:-1;981:14960:95;;5874:21:46;:17;;6046:142;;;;;;5870:383;981:14960:95;;-1:-1:-1;;;6225:17:46;;;;;4793:408;981:14960:95;;5045:22:46;:49;;;4793:408;5041:119;;5173:17;;:::o;5041:119::-;981:14960:95;;-1:-1:-1;;;5121:24:46;;-1:-1:-1;;;;;981:14960:95;;;5121:24:46;;;981:14960:95;;;5121:24:46;5045:49;5071:18;;;:23;5045:49;","linkReferences":{},"immutableReferences":{"58075":[{"start":1904,"length":32},{"start":2467,"length":32}],"68715":[{"start":4512,"length":32},{"start":5845,"length":32}],"68718":[{"start":6206,"length":32},{"start":7428,"length":32}]}},"methodIdentifiers":{"DEFAULT_ADMIN_ROLE()":"a217fddf","DELEGATOR_FACTORY()":"6da3e06d","DEPOSITOR_WHITELIST_ROLE()":"1b66c9e1","DEPOSIT_LIMIT_SET_ROLE()":"a21a1df9","DEPOSIT_WHITELIST_SET_ROLE()":"db388715","FACTORY()":"2dd31000","IS_DEPOSIT_LIMIT_SET_ROLE()":"1415519b","SLASHER_FACTORY()":"87df0788","activeBalanceOf(address)":"59f769a9","activeBalanceOfAt(address,uint48,bytes)":"efb559d6","activeShares()":"bfefcd7b","activeSharesAt(uint48,bytes)":"50f22068","activeSharesOf(address)":"9d66201b","activeSharesOfAt(address,uint48,bytes)":"2d73c69c","activeStake()":"bd49c35f","activeStakeAt(uint48,bytes)":"810da75d","burner()":"27810b6e","claim(address,uint256)":"aad3ec96","claimBatch(address,uint256[])":"7c04c80a","collateral()":"d8dfeb45","currentEpoch()":"76671808","currentEpochStart()":"61a8c8c4","delegator()":"ce9b7930","deposit(address,uint256)":"47e7ef24","depositLimit()":"ecf70858","depositWhitelist()":"48d3b775","epochAt(uint48)":"7953b33b","epochDuration()":"4ff0876a","epochDurationInit()":"46361671","getRoleAdmin(bytes32)":"248a9ca3","grantRole(bytes32,address)":"2f2ff15d","hasRole(bytes32,address)":"91d14854","initialize(uint64,address,bytes)":"57ec83cc","isDelegatorInitialized()":"50861adc","isDepositLimit()":"a1b12202","isDepositorWhitelisted(address)":"794b15b7","isInitialized()":"392e53cd","isSlasherInitialized()":"6ec1e3f8","isWithdrawalsClaimed(uint256,address)":"a5d03223","migrate(uint64,bytes)":"2abe3048","nextEpochStart()":"73790ab3","onSlash(uint256,uint48)":"7278e31c","owner()":"8da5cb5b","previousEpochStart()":"281f5752","redeem(address,uint256)":"1e9a6950","renounceOwnership()":"715018a6","renounceRole(bytes32,address)":"36568abe","revokeRole(bytes32,address)":"d547741f","setDelegator(address)":"83cd9cc3","setDepositLimit(uint256)":"bdc8144b","setDepositWhitelist(bool)":"4105a7dd","setDepositorWhitelistStatus(address,bool)":"a2861466","setIsDepositLimit(bool)":"5346e34f","setSlasher(address)":"aabc2496","slashableBalanceOf(address)":"c31e8dd7","slasher()":"b1344271","staticDelegateCall(address,bytes)":"9f86fd85","supportsInterface(bytes4)":"01ffc9a7","totalStake()":"8b0e9f3f","transferOwnership(address)":"f2fde38b","version()":"54fd4d50","withdraw(address,uint256)":"f3fef3a3","withdrawalShares(uint256)":"afba70ad","withdrawalSharesOf(uint256,address)":"a3b54172","withdrawals(uint256)":"5cc07076","withdrawalsOf(uint256,address)":"f5e7ee0f"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegatorFactory\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"slasherFactory\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"vaultFactory\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"AccessControlBadConfirmation\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"neededRole\",\"type\":\"bytes32\"}],\"name\":\"AccessControlUnauthorizedAccount\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"AddressEmptyCode\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"AddressInsufficientBalance\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AlreadyClaimed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AlreadyInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AlreadySet\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CheckpointUnorderedInsertion\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"DelegatorAlreadyInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"DepositLimitReached\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedInnerCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientClaim\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientDeposit\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientRedemption\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientWithdrawal\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidAccount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidCaptureEpoch\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidClaimer\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidCollateral\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidDelegator\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidEpoch\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidEpochDuration\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidLengthEpochs\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidOnBehalfOf\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidRecipient\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidSlasher\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidTimestamp\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MathOverflowedMulDiv\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MissingRoles\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NoPreviousEpoch\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotDelegator\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotFactory\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotSlasher\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotWhitelistedDepositor\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ReentrancyGuardReentrantCall\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"bits\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"SafeCastOverflowedUintDowncast\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"SafeERC20FailedOperation\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SlasherAlreadyInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TooMuchRedeem\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TooMuchWithdraw\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"claimer\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"epoch\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Claim\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"claimer\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"epochs\",\"type\":\"uint256[]\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"ClaimBatch\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"depositor\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"onBehalfOf\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"}],\"name\":\"Deposit\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint48\",\"name\":\"captureTimestamp\",\"type\":\"uint48\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"slashedAmount\",\"type\":\"uint256\"}],\"name\":\"OnSlash\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"previousAdminRole\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"newAdminRole\",\"type\":\"bytes32\"}],\"name\":\"RoleAdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleRevoked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"}],\"name\":\"SetDelegator\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"limit\",\"type\":\"uint256\"}],\"name\":\"SetDepositLimit\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"status\",\"type\":\"bool\"}],\"name\":\"SetDepositWhitelist\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"status\",\"type\":\"bool\"}],\"name\":\"SetDepositorWhitelistStatus\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"status\",\"type\":\"bool\"}],\"name\":\"SetIsDepositLimit\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"slasher\",\"type\":\"address\"}],\"name\":\"SetSlasher\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"withdrawer\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"claimer\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"burnedShares\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"mintedShares\",\"type\":\"uint256\"}],\"name\":\"Withdraw\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DEFAULT_ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"DELEGATOR_FACTORY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"DEPOSITOR_WHITELIST_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"DEPOSIT_LIMIT_SET_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"DEPOSIT_WHITELIST_SET_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"FACTORY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"IS_DEPOSIT_LIMIT_SET_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"SLASHER_FACTORY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"activeBalanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hints\",\"type\":\"bytes\"}],\"name\":\"activeBalanceOfAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"activeShares\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hint\",\"type\":\"bytes\"}],\"name\":\"activeSharesAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"activeSharesOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hint\",\"type\":\"bytes\"}],\"name\":\"activeSharesOfAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"activeStake\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hint\",\"type\":\"bytes\"}],\"name\":\"activeStakeAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"burner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"epoch\",\"type\":\"uint256\"}],\"name\":\"claim\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256[]\",\"name\":\"epochs\",\"type\":\"uint256[]\"}],\"name\":\"claimBatch\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"collateral\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"currentEpoch\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"currentEpochStart\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"delegator\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"onBehalfOf\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"deposit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"depositedAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"mintedShares\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"depositLimit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"depositWhitelist\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"}],\"name\":\"epochAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"epochDuration\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"epochDurationInit\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleAdmin\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"grantRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"initialVersion\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"owner_\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isDelegatorInitialized\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isDepositLimit\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"isDepositorWhitelisted\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"value\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isInitialized\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isSlasherInitialized\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"epoch\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"isWithdrawalsClaimed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"value\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"newVersion\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"migrate\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"nextEpochStart\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint48\",\"name\":\"captureTimestamp\",\"type\":\"uint48\"}],\"name\":\"onSlash\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"slashedAmount\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"previousEpochStart\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"claimer\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"}],\"name\":\"redeem\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"withdrawnAssets\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"mintedShares\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"callerConfirmation\",\"type\":\"address\"}],\"name\":\"renounceRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegator_\",\"type\":\"address\"}],\"name\":\"setDelegator\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"limit\",\"type\":\"uint256\"}],\"name\":\"setDepositLimit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"status\",\"type\":\"bool\"}],\"name\":\"setDepositWhitelist\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"status\",\"type\":\"bool\"}],\"name\":\"setDepositorWhitelistStatus\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"status\",\"type\":\"bool\"}],\"name\":\"setIsDepositLimit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"slasher_\",\"type\":\"address\"}],\"name\":\"setSlasher\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"slashableBalanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"slasher\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"staticDelegateCall\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalStake\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"version\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"claimer\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"withdraw\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"burnedShares\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"mintedShares\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"epoch\",\"type\":\"uint256\"}],\"name\":\"withdrawalShares\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"epoch\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"withdrawalSharesOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"epoch\",\"type\":\"uint256\"}],\"name\":\"withdrawals\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"epoch\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"withdrawalsOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"AccessControlBadConfirmation()\":[{\"details\":\"The caller of a function is not the expected one. NOTE: Don't confuse with {AccessControlUnauthorizedAccount}.\"}],\"AccessControlUnauthorizedAccount(address,bytes32)\":[{\"details\":\"The `account` is missing a role.\"}],\"AddressEmptyCode(address)\":[{\"details\":\"There's no code at `target` (it is not a contract).\"}],\"AddressInsufficientBalance(address)\":[{\"details\":\"The ETH balance of the account is not enough to perform the operation.\"}],\"CheckpointUnorderedInsertion()\":[{\"details\":\"A value was attempted to be inserted on a past checkpoint.\"}],\"FailedInnerCall()\":[{\"details\":\"A call to an address target failed. The target may have reverted.\"}],\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"MathOverflowedMulDiv()\":[{\"details\":\"Muldiv operation overflow.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}],\"ReentrancyGuardReentrantCall()\":[{\"details\":\"Unauthorized reentrant call.\"}],\"SafeCastOverflowedUintDowncast(uint8,uint256)\":[{\"details\":\"Value doesn't fit in an uint of `bits` size.\"}],\"SafeERC20FailedOperation(address)\":[{\"details\":\"An operation with an ERC20 token failed.\"}]},\"events\":{\"Claim(address,address,uint256,uint256)\":{\"params\":{\"amount\":\"amount of the collateral claimed\",\"claimer\":\"account that claimed\",\"epoch\":\"epoch the collateral was claimed for\",\"recipient\":\"account that received the collateral\"}},\"ClaimBatch(address,address,uint256[],uint256)\":{\"params\":{\"amount\":\"amount of the collateral claimed\",\"claimer\":\"account that claimed\",\"epochs\":\"epochs the collateral was claimed for\",\"recipient\":\"account that received the collateral\"}},\"Deposit(address,address,uint256,uint256)\":{\"params\":{\"amount\":\"amount of the collateral deposited\",\"depositor\":\"account that made the deposit\",\"onBehalfOf\":\"account the deposit was made on behalf of\",\"shares\":\"amount of the active shares minted\"}},\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"OnSlash(uint256,uint48,uint256)\":{\"params\":{\"amount\":\"amount of the collateral to slash\",\"captureTimestamp\":\"time point when the stake was captured\",\"slashedAmount\":\"real amount of the collateral slashed\"}},\"RoleAdminChanged(bytes32,bytes32,bytes32)\":{\"details\":\"Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole` `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite {RoleAdminChanged} not being emitted signaling this.\"},\"RoleGranted(bytes32,address,address)\":{\"details\":\"Emitted when `account` is granted `role`. `sender` is the account that originated the contract call, an admin role bearer except when using {AccessControl-_setupRole}.\"},\"RoleRevoked(bytes32,address,address)\":{\"details\":\"Emitted when `account` is revoked `role`. `sender` is the account that originated the contract call: - if using `revokeRole`, it is the admin role bearer - if using `renounceRole`, it is the role bearer (i.e. `account`)\"},\"SetDelegator(address)\":{\"details\":\"Can be set only once.\",\"params\":{\"delegator\":\"vault's delegator to delegate the stake to networks and operators\"}},\"SetDepositLimit(uint256)\":{\"params\":{\"limit\":\"deposit limit (maximum amount of the collateral that can be in the vault simultaneously)\"}},\"SetDepositWhitelist(bool)\":{\"params\":{\"status\":\"if enabled deposit whitelist\"}},\"SetDepositorWhitelistStatus(address,bool)\":{\"params\":{\"account\":\"account for which the whitelist status is set\",\"status\":\"if whitelisted the account\"}},\"SetIsDepositLimit(bool)\":{\"params\":{\"status\":\"if enabled deposit limit\"}},\"SetSlasher(address)\":{\"details\":\"Can be set only once.\",\"params\":{\"slasher\":\"vault's slasher to provide a slashing mechanism to networks\"}},\"Withdraw(address,address,uint256,uint256,uint256)\":{\"params\":{\"amount\":\"amount of the collateral withdrawn\",\"burnedShares\":\"amount of the active shares burned\",\"claimer\":\"account that needs to claim the withdrawal\",\"mintedShares\":\"amount of the epoch withdrawal shares minted\",\"withdrawer\":\"account that made the withdrawal\"}}},\"kind\":\"dev\",\"methods\":{\"activeBalanceOf(address)\":{\"params\":{\"account\":\"account to get the active balance for\"},\"returns\":{\"_0\":\"active balance for the account\"}},\"activeBalanceOfAt(address,uint48,bytes)\":{\"params\":{\"account\":\"account to get the active balance for\",\"hints\":\"hints for checkpoints' indexes\",\"timestamp\":\"time point to get the active balance for the account at\"},\"returns\":{\"_0\":\"active balance for the account at the timestamp\"}},\"activeShares()\":{\"returns\":{\"_0\":\"total number of active shares\"}},\"activeSharesAt(uint48,bytes)\":{\"params\":{\"hint\":\"hint for the checkpoint index\",\"timestamp\":\"time point to get the total number of active shares at\"},\"returns\":{\"_0\":\"total number of active shares at the timestamp\"}},\"activeSharesOf(address)\":{\"params\":{\"account\":\"account to get the number of active shares for\"},\"returns\":{\"_0\":\"number of active shares for the account\"}},\"activeSharesOfAt(address,uint48,bytes)\":{\"params\":{\"account\":\"account to get the number of active shares for\",\"hint\":\"hint for the checkpoint index\",\"timestamp\":\"time point to get the number of active shares for the account at\"},\"returns\":{\"_0\":\"number of active shares for the account at the timestamp\"}},\"activeStake()\":{\"returns\":{\"_0\":\"total amount of active stake\"}},\"activeStakeAt(uint48,bytes)\":{\"params\":{\"hint\":\"hint for the checkpoint index\",\"timestamp\":\"time point to get the total active stake at\"},\"returns\":{\"_0\":\"total amount of active stake at the timestamp\"}},\"claim(address,uint256)\":{\"params\":{\"epoch\":\"epoch to claim the collateral for\",\"recipient\":\"account that receives the collateral\"},\"returns\":{\"amount\":\"amount of the collateral claimed\"}},\"claimBatch(address,uint256[])\":{\"params\":{\"epochs\":\"epochs to claim the collateral for\",\"recipient\":\"account that receives the collateral\"},\"returns\":{\"amount\":\"amount of the collateral claimed\"}},\"currentEpoch()\":{\"returns\":{\"_0\":\"current epoch\"}},\"currentEpochStart()\":{\"returns\":{\"_0\":\"start of the current epoch\"}},\"deposit(address,uint256)\":{\"params\":{\"amount\":\"amount of the collateral to deposit\",\"onBehalfOf\":\"account the deposit is made on behalf of\"},\"returns\":{\"depositedAmount\":\"real amount of the collateral deposited\",\"mintedShares\":\"amount of the active shares minted\"}},\"epochAt(uint48)\":{\"details\":\"Reverts if the timestamp is less than the start of the epoch 0.\",\"params\":{\"timestamp\":\"time point to get the epoch at\"},\"returns\":{\"_0\":\"epoch at the timestamp\"}},\"getRoleAdmin(bytes32)\":{\"details\":\"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}.\"},\"grantRole(bytes32,address)\":{\"details\":\"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event.\"},\"hasRole(bytes32,address)\":{\"details\":\"Returns `true` if `account` has been granted `role`.\"},\"initialize(uint64,address,bytes)\":{\"params\":{\"data\":\"some data to use\",\"initialVersion\":\"initial version of the entity\",\"owner\":\"initial owner of the entity\"}},\"isInitialized()\":{\"returns\":{\"_0\":\"if the vault is fully initialized\"}},\"migrate(uint64,bytes)\":{\"params\":{\"data\":\"some data to use\",\"newVersion\":\"new version of the entity\"}},\"nextEpochStart()\":{\"returns\":{\"_0\":\"start of the next epoch\"}},\"onSlash(uint256,uint48)\":{\"details\":\"Only the slasher can call this function.\",\"params\":{\"amount\":\"amount to slash\",\"captureTimestamp\":\"time point when the stake was captured\"},\"returns\":{\"slashedAmount\":\"real amount of the collateral slashed\"}},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"previousEpochStart()\":{\"details\":\"Reverts if the current epoch is 0.\",\"returns\":{\"_0\":\"start of the previous epoch\"}},\"redeem(address,uint256)\":{\"params\":{\"claimer\":\"account that needs to claim the withdrawal\",\"shares\":\"amount of the active shares to redeem\"},\"returns\":{\"mintedShares\":\"amount of the epoch withdrawal shares minted\",\"withdrawnAssets\":\"amount of the collateral withdrawn\"}},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"renounceRole(bytes32,address)\":{\"details\":\"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `callerConfirmation`. May emit a {RoleRevoked} event.\"},\"revokeRole(bytes32,address)\":{\"details\":\"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event.\"},\"setDepositLimit(uint256)\":{\"details\":\"Only a DEPOSIT_LIMIT_SET_ROLE holder can call this function.\",\"params\":{\"limit\":\"deposit limit (maximum amount of the collateral that can be in the vault simultaneously)\"}},\"setDepositWhitelist(bool)\":{\"details\":\"Only a DEPOSIT_WHITELIST_SET_ROLE holder can call this function.\",\"params\":{\"status\":\"if enabling deposit whitelist\"}},\"setDepositorWhitelistStatus(address,bool)\":{\"details\":\"Only a DEPOSITOR_WHITELIST_ROLE holder can call this function.\",\"params\":{\"account\":\"account for which the whitelist status is set\",\"status\":\"if whitelisting the account\"}},\"setIsDepositLimit(bool)\":{\"details\":\"Only a IS_DEPOSIT_LIMIT_SET_ROLE holder can call this function.\",\"params\":{\"status\":\"if enabling deposit limit\"}},\"slashableBalanceOf(address)\":{\"params\":{\"account\":\"account to get the slashable collateral for\"},\"returns\":{\"_0\":\"total amount of the account's slashable collateral\"}},\"staticDelegateCall(address,bytes)\":{\"details\":\"It allows to use this contract's storage on-chain.\",\"params\":{\"data\":\"data to make a delegatecall with\",\"target\":\"address of the contract to make a delegatecall to\"}},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"},\"totalStake()\":{\"returns\":{\"_0\":\"total amount of the slashable collateral\"}},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"},\"version()\":{\"details\":\"Starts from 1.\",\"returns\":{\"_0\":\"version of the entity\"}},\"withdraw(address,uint256)\":{\"params\":{\"amount\":\"amount of the collateral to withdraw\",\"claimer\":\"account that needs to claim the withdrawal\"},\"returns\":{\"burnedShares\":\"amount of the active shares burned\",\"mintedShares\":\"amount of the epoch withdrawal shares minted\"}},\"withdrawalsOf(uint256,address)\":{\"params\":{\"account\":\"account to get the withdrawals for\",\"epoch\":\"epoch to get the withdrawals for the account at\"},\"returns\":{\"_0\":\"withdrawals for the account at the epoch\"}}},\"version\":1},\"userdoc\":{\"events\":{\"Claim(address,address,uint256,uint256)\":{\"notice\":\"Emitted when a claim is made.\"},\"ClaimBatch(address,address,uint256[],uint256)\":{\"notice\":\"Emitted when a batch claim is made.\"},\"Deposit(address,address,uint256,uint256)\":{\"notice\":\"Emitted when a deposit is made.\"},\"OnSlash(uint256,uint48,uint256)\":{\"notice\":\"Emitted when a slash happens.\"},\"SetDelegator(address)\":{\"notice\":\"Emitted when a delegator is set.\"},\"SetDepositLimit(uint256)\":{\"notice\":\"Emitted when a deposit limit is set.\"},\"SetDepositWhitelist(bool)\":{\"notice\":\"Emitted when a deposit whitelist status is enabled/disabled.\"},\"SetDepositorWhitelistStatus(address,bool)\":{\"notice\":\"Emitted when a depositor whitelist status is set.\"},\"SetIsDepositLimit(bool)\":{\"notice\":\"Emitted when a deposit limit status is enabled/disabled.\"},\"SetSlasher(address)\":{\"notice\":\"Emitted when a slasher is set.\"},\"Withdraw(address,address,uint256,uint256,uint256)\":{\"notice\":\"Emitted when a withdrawal is made.\"}},\"kind\":\"user\",\"methods\":{\"DELEGATOR_FACTORY()\":{\"notice\":\"Get the delegator factory's address.\"},\"DEPOSITOR_WHITELIST_ROLE()\":{\"notice\":\"Get a depositor whitelist status setter's role.\"},\"DEPOSIT_LIMIT_SET_ROLE()\":{\"notice\":\"Get a deposit limit setter's role.\"},\"DEPOSIT_WHITELIST_SET_ROLE()\":{\"notice\":\"Get a deposit whitelist enabler/disabler's role.\"},\"FACTORY()\":{\"notice\":\"Get the factory's address.\"},\"IS_DEPOSIT_LIMIT_SET_ROLE()\":{\"notice\":\"Get a deposit limit enabler/disabler's role.\"},\"SLASHER_FACTORY()\":{\"notice\":\"Get the slasher factory's address.\"},\"activeBalanceOf(address)\":{\"notice\":\"Get an active balance for a particular account.\"},\"activeBalanceOfAt(address,uint48,bytes)\":{\"notice\":\"Get an active balance for a particular account at a given timestamp using hints.\"},\"activeShares()\":{\"notice\":\"Get a total number of active shares in the vault.\"},\"activeSharesAt(uint48,bytes)\":{\"notice\":\"Get a total number of active shares in the vault at a given timestamp using a hint.\"},\"activeSharesOf(address)\":{\"notice\":\"Get a number of active shares for a particular account.\"},\"activeSharesOfAt(address,uint48,bytes)\":{\"notice\":\"Get a total number of active shares for a particular account at a given timestamp using a hint.\"},\"activeStake()\":{\"notice\":\"Get a total amount of active stake in the vault.\"},\"activeStakeAt(uint48,bytes)\":{\"notice\":\"Get a total amount of active stake in the vault at a given timestamp using a hint.\"},\"burner()\":{\"notice\":\"Get a burner to issue debt to (e.g., 0xdEaD or some unwrapper contract).\"},\"claim(address,uint256)\":{\"notice\":\"Claim collateral from the vault.\"},\"claimBatch(address,uint256[])\":{\"notice\":\"Claim collateral from the vault for multiple epochs.\"},\"collateral()\":{\"notice\":\"Get a vault collateral.\"},\"currentEpoch()\":{\"notice\":\"Get a current vault epoch.\"},\"currentEpochStart()\":{\"notice\":\"Get a start of the current vault epoch.\"},\"delegator()\":{\"notice\":\"Get a delegator (it delegates the vault's stake to networks and operators).\"},\"deposit(address,uint256)\":{\"notice\":\"Deposit collateral into the vault.\"},\"depositLimit()\":{\"notice\":\"Get a deposit limit (maximum amount of the active stake that can be in the vault simultaneously).\"},\"depositWhitelist()\":{\"notice\":\"Get if the deposit whitelist is enabled.\"},\"epochAt(uint48)\":{\"notice\":\"Get an epoch at a given timestamp.\"},\"epochDuration()\":{\"notice\":\"Get a duration of the vault epoch.\"},\"epochDurationInit()\":{\"notice\":\"Get a time point of the epoch duration set.\"},\"initialize(uint64,address,bytes)\":{\"notice\":\"Initialize this entity contract by using a given data and setting a particular version and owner.\"},\"isDelegatorInitialized()\":{\"notice\":\"Get if the delegator is initialized.\"},\"isDepositLimit()\":{\"notice\":\"Get if the deposit limit is set.\"},\"isDepositorWhitelisted(address)\":{\"notice\":\"Get if a given account is whitelisted as a depositor.\"},\"isInitialized()\":{\"notice\":\"Check if the vault is fully initialized (a delegator and a slasher are set).\"},\"isSlasherInitialized()\":{\"notice\":\"Get if the slasher is initialized.\"},\"isWithdrawalsClaimed(uint256,address)\":{\"notice\":\"Get if the withdrawals are claimed for a particular account at a given epoch.\"},\"migrate(uint64,bytes)\":{\"notice\":\"Migrate this entity to a particular newer version using a given data.\"},\"nextEpochStart()\":{\"notice\":\"Get a start of the next vault epoch.\"},\"onSlash(uint256,uint48)\":{\"notice\":\"Slash callback for burning collateral.\"},\"previousEpochStart()\":{\"notice\":\"Get a start of the previous vault epoch.\"},\"redeem(address,uint256)\":{\"notice\":\"Redeem collateral from the vault (it will be claimable after the next epoch).\"},\"setDepositLimit(uint256)\":{\"notice\":\"Set a deposit limit.\"},\"setDepositWhitelist(bool)\":{\"notice\":\"Enable/disable deposit whitelist.\"},\"setDepositorWhitelistStatus(address,bool)\":{\"notice\":\"Set a depositor whitelist status.\"},\"setIsDepositLimit(bool)\":{\"notice\":\"Enable/disable deposit limit.\"},\"slashableBalanceOf(address)\":{\"notice\":\"Get a total amount of the collateral that can be slashed for a given account.\"},\"slasher()\":{\"notice\":\"Get a slasher (it provides networks a slashing mechanism).\"},\"staticDelegateCall(address,bytes)\":{\"notice\":\"Make a delegatecall from this contract to a given target contract with a particular data (always reverts with a return data).\"},\"totalStake()\":{\"notice\":\"Get a total amount of the collateral that can be slashed.\"},\"version()\":{\"notice\":\"Get the entity's version.\"},\"withdraw(address,uint256)\":{\"notice\":\"Withdraw collateral from the vault (it will be claimable after the next epoch).\"},\"withdrawalShares(uint256)\":{\"notice\":\"Get a total number of withdrawal shares at a given epoch.\"},\"withdrawalSharesOf(uint256,address)\":{\"notice\":\"Get a number of withdrawal shares for a particular account at a given epoch (zero if claimed).\"},\"withdrawals(uint256)\":{\"notice\":\"Get a total amount of the withdrawals at a given epoch.\"},\"withdrawalsOf(uint256,address)\":{\"notice\":\"Get withdrawals for a particular account at a given epoch (zero if claimed).\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/contracts/vault/Vault.sol\":\"Vault\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol\":{\"keccak256\":\"0x6662ec4e5cefca03eeadd073e9469df8d2944bb2ee8ec8f7622c2c46aab5f225\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4d8544c6f8daa4d1bc215c6a72fe0acdb748664a105b0e5efc19295667521d45\",\"dweb:/ipfs/QmdGWqdnXT8S3RgCR6aV8XHZrsybieMQLLnug1NtpSjEXN\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0xc163fcf9bb10138631a9ba5564df1fa25db9adff73bd9ee868a8ae1858fe093a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9706d43a0124053d9880f6e31a59f31bc0a6a3dc1acd66ce0a16e1111658c5f6\",\"dweb:/ipfs/QmUFmfowzkRwGtDu36cXV9SPTBHJ3n7dG9xQiK5B28jTf2\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609\",\"dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9\",\"dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardUpgradeable.sol\":{\"keccak256\":\"0xb44e086e941292cdc7f440de51478493894ef0b1aeccb0c4047445919f667f74\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://942dad22fbdc1669f025540ba63aa3ccfad5f8458fc5d4525b31ebf272e7af45\",\"dweb:/ipfs/Qmdo4X2M82aM3AMoW2kf2jhYkSCyC4T1pHNd6obdsDFnAB\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol\":{\"keccak256\":\"0xdaba3f7c42c55b2896353f32bd27d4d5f8bae741b3b05d4c53f67abc4dc47ce8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1fa2e61141c602510bcd2cd936ed9561922ac8772a9b9c9a9db091a74e354a45\",\"dweb:/ipfs/QmcHQDDoEBwJmwUbzoVkytvJsBx3KVHYFFnDkvRGWh9Wmh\"]},\"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0xb6b36edd6a2999fd243ff226d6cbf84bd71af2432bbd0dfe19392996a1d9cb41\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1fd2f35495652e57e3f99bc6c510bc5f7dd398a176ea2e72d8ed730aebc6ca26\",\"dweb:/ipfs/QmTQV6X4gkikTib49cho5iDX3JvSQbdsoEChoDwrk3CbbH\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c\",\"dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0x6008dabfe393240d73d7dd7688033f72740d570aa422254d29a7dce8568f3aff\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f5196ec75139918c6c7bb4251b36395e668f1fa6d206beba7e7520e74913940d\",\"dweb:/ipfs/QmSyqjksXxmm2mCG6qRd1yuwLykypkSVBbnBnGqJRcuJMi\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x37bb49513c49c87c4642a891b13b63571bc87013dde806617aa1efb54605f386\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b3036b3a83b7c48f96641f2a9002b9f2dcb6a5958dd670894ada21ae8229b3d0\",\"dweb:/ipfs/QmUNfSBdoVtjhETaUJCYcaC7pTMgbhht926tJ2uXJbiVd3\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0xaf28a975a78550e45f65e559a3ad6a5ad43b9b8a37366999abd1b7084eb70721\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b7bd24e224f67f65bfadf85dc2929fa965456bb2415478bd0125471b5ce35245\",\"dweb:/ipfs/QmRaydGr8BTHs1kvaZfsNU69pKzUAGFrvABn1KiRSbE51y\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875\",\"dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0xe19a4d5f31d2861e7344e8e535e2feafb913d806d3e2b5fe7782741a2a7094fe\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4aed79c0fa6f0546ed02f2f683e8f77f0fd2ed7eb34d8bbf3d373c9a6d95b13c\",\"dweb:/ipfs/QmWqVz6UAVqmnWU5pqYPt1o6iDEZyPaBraAA3rKfTTSfYj\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/Checkpoints.sol\":{\"keccak256\":\"0xbdc5e074d7dd6678f67e92b1a51a20226801a407b0e1af3da367c5d1ff4519ad\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a36cca6b22fff3db16fc789ff6c60eea71d4b156065d4d0c83a0bc5e91a77a8b\",\"dweb:/ipfs/QmYN3exd5AemxjBrN8XMB1p5LbbE16uC3sjbYjwi8AjcGR\"]},\"lib/openzeppelin-contracts/contracts/utils/types/Time.sol\":{\"keccak256\":\"0xc7755af115020049e4140f224f9ee88d7e1799ffb0646f37bf0df24bf6213f58\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7f09bf94d5274334ec021f61a04659db303f31e60460e14b709c9bf187740111\",\"dweb:/ipfs/QmNvgomZYUwFAt4cZbPWAiTeSZQreGehY9BK5xyVJsUttb\"]},\"src/contracts/common/MigratableEntity.sol\":{\"keccak256\":\"0x2d736f4dacd5d7e7697503bc426c78b8250fe1694ca157965ec178da6807de58\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://f1237acf96b4b9f9b69156e068eddd726a6e15bd8e87a18dc999cd4ba4da069c\",\"dweb:/ipfs/QmS6M8fiFFSeuJ4ZKKq1z8W7w4ybeHQSy5TLASGoc1LVic\"]},\"src/contracts/common/StaticDelegateCallable.sol\":{\"keccak256\":\"0x350029aa8955eacaffffaeb58babc5c98e80ebc5c5db388ed17ee6465f4a9d90\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://eb392a8ee9050e0af606897df63e3404e3829e8b688b580663892f9664195764\",\"dweb:/ipfs/QmaXC8jqV8UrrAFkzXTEv2fJF56sy33HhLxAzaRZmUxuXD\"]},\"src/contracts/libraries/Checkpoints.sol\":{\"keccak256\":\"0xba90097c8bfe0a975499428b5f8ac5569483c7d92ccc28c12d70de416aae040c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://12f5d93ca94cd06d3147db68993165a58e17903ed53682560de61f3085ad4609\",\"dweb:/ipfs/QmePiuAqvXprMLmFZkGZeGjvGPAvsEDHfCDv7BoQhXu9xE\"]},\"src/contracts/libraries/ERC4626Math.sol\":{\"keccak256\":\"0x8441160513c1cbeb1c3b9ee077bcc7e7ce20006b52a77c8dd39ff0ef89699939\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://943f8cc3e26ddf649f465f40c909819f5c864717c4baa339e9e403b9374a4653\",\"dweb:/ipfs/QmXPxi1sUDsrGprZdUgCzoPEosaZMv9ZhygWQ1vAi1phAB\"]},\"src/contracts/vault/Vault.sol\":{\"keccak256\":\"0x2ceff6ed3298c4cad144c99fcc79b51cb9397d6ebef00285b915848b476f8c2e\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://11f2fb3581854f3ab6e82e8d4935d9eb510c903a13c3f022346c2956a58f5307\",\"dweb:/ipfs/QmdUnoXoyYoG9SGWyQZCFyLDRUUX3eXyXetkRvw6jxqqBz\"]},\"src/contracts/vault/VaultStorage.sol\":{\"keccak256\":\"0x57db25b127d77ea3472de53e3a4af3354399655b9268638b99ca5925fa364a56\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://aa763d9a6ec508ae3abfb8228b72b9fd9525279e5135d4962e79ff059feb1173\",\"dweb:/ipfs/QmcbDR6E9wyEpu6V2FkEC4hnWy47zXA9LSKJde6zSGd33Q\"]},\"src/interfaces/common/IEntity.sol\":{\"keccak256\":\"0x8ef4b63d6da63489778ccd5f8d13ebdd527dd4b62730b2c616df5af7474d2d21\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a8d69576a9219d85c50816a18ad53a4d53cfcb27ed38b8cccc808dc2734b71b\",\"dweb:/ipfs/QmYVN3P4Q4REvBWJ97TbAcaxm3uyB2anV6NSGa6ZtSwcEv\"]},\"src/interfaces/common/IMigratableEntity.sol\":{\"keccak256\":\"0x8f5f2809f3afbe8ebfbb365dd7b57b4dd3b6f9943a6187eaf648d45895b8e3c4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ffe640537d539e7a4fde70d30d3e4c57f4ba9c2c25c450cea713aae38e8fd5c\",\"dweb:/ipfs/QmSUTGzvdcn1R1KB7tLThMRtESsfPbeXDhhhKWGtntzBds\"]},\"src/interfaces/common/IRegistry.sol\":{\"keccak256\":\"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014\",\"dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK\"]},\"src/interfaces/common/IStaticDelegateCallable.sol\":{\"keccak256\":\"0xa335d4e81b9071b7de66ef92b43ff20671d86516eb1be46fef29a3483cd3f5d5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d464b9db863c14c05547d2b23352f2e9b7b784799cf09f6bbc4906a2a74e3516\",\"dweb:/ipfs/QmUVWzFvJz7eEbDQKiFTTzwi7TEbjcs3VmwdM4kuptAKvi\"]},\"src/interfaces/delegator/IBaseDelegator.sol\":{\"keccak256\":\"0x96bb312f032e17accce3f8f80936d99468029d6b37c9ca74acdb4b026a0148ee\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2a66dcb5b7d1a6ef6a363431ea98ebd78bc4fdd3d7a134d9b542dc66e7d025c2\",\"dweb:/ipfs/QmRhTPLd2ZAyRHmJUFUcWKs9b3if49QY17LYZuRqWmghw8\"]},\"src/interfaces/slasher/IBaseSlasher.sol\":{\"keccak256\":\"0x7c82528b445659c313ab77335c407b0b6efe5e79027187bb287f7bc74202b404\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0274c90aa5df1aa6bb470a6aab53992fb14fd7e5472c9430416505b29647d9cf\",\"dweb:/ipfs/QmckbmJLDetPemVzCnnGcKYWAZV2BRFXGDsjiaec8jkHxx\"]},\"src/interfaces/vault/IVault.sol\":{\"keccak256\":\"0xffee01d383cd4e1a5530c614bf4360c1ef070c288abec9da1eb531b51bc07235\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://04f0046cac285d8ec44ebbb1f79dc94fab4495767190cad8364fbc1fafaadfb9\",\"dweb:/ipfs/QmUawAunwzXfCyShWfhKeThAgKtqe51hmrxvrXvM772M2R\"]},\"src/interfaces/vault/IVaultStorage.sol\":{\"keccak256\":\"0x592626f13754194f83047135de19229c49390bd59e34659b1bb38be71d973a22\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://06a6a9dfddd05e580b32bebe2cff4f63ba26a653180676d58225dd30d9c89d3e\",\"dweb:/ipfs/QmdgzBeY6Sxo8mGtyBxtv1tM1c2kU6J6zjeRd7vuXm4DU6\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.25+commit.b61c2a91"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"delegatorFactory","type":"address"},{"internalType":"address","name":"slasherFactory","type":"address"},{"internalType":"address","name":"vaultFactory","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"AccessControlBadConfirmation"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bytes32","name":"neededRole","type":"bytes32"}],"type":"error","name":"AccessControlUnauthorizedAccount"},{"inputs":[{"internalType":"address","name":"target","type":"address"}],"type":"error","name":"AddressEmptyCode"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"AddressInsufficientBalance"},{"inputs":[],"type":"error","name":"AlreadyClaimed"},{"inputs":[],"type":"error","name":"AlreadyInitialized"},{"inputs":[],"type":"error","name":"AlreadySet"},{"inputs":[],"type":"error","name":"CheckpointUnorderedInsertion"},{"inputs":[],"type":"error","name":"DelegatorAlreadyInitialized"},{"inputs":[],"type":"error","name":"DepositLimitReached"},{"inputs":[],"type":"error","name":"FailedInnerCall"},{"inputs":[],"type":"error","name":"InsufficientClaim"},{"inputs":[],"type":"error","name":"InsufficientDeposit"},{"inputs":[],"type":"error","name":"InsufficientRedemption"},{"inputs":[],"type":"error","name":"InsufficientWithdrawal"},{"inputs":[],"type":"error","name":"InvalidAccount"},{"inputs":[],"type":"error","name":"InvalidCaptureEpoch"},{"inputs":[],"type":"error","name":"InvalidClaimer"},{"inputs":[],"type":"error","name":"InvalidCollateral"},{"inputs":[],"type":"error","name":"InvalidDelegator"},{"inputs":[],"type":"error","name":"InvalidEpoch"},{"inputs":[],"type":"error","name":"InvalidEpochDuration"},{"inputs":[],"type":"error","name":"InvalidInitialization"},{"inputs":[],"type":"error","name":"InvalidLengthEpochs"},{"inputs":[],"type":"error","name":"InvalidOnBehalfOf"},{"inputs":[],"type":"error","name":"InvalidRecipient"},{"inputs":[],"type":"error","name":"InvalidSlasher"},{"inputs":[],"type":"error","name":"InvalidTimestamp"},{"inputs":[],"type":"error","name":"MathOverflowedMulDiv"},{"inputs":[],"type":"error","name":"MissingRoles"},{"inputs":[],"type":"error","name":"NoPreviousEpoch"},{"inputs":[],"type":"error","name":"NotDelegator"},{"inputs":[],"type":"error","name":"NotFactory"},{"inputs":[],"type":"error","name":"NotInitialized"},{"inputs":[],"type":"error","name":"NotInitializing"},{"inputs":[],"type":"error","name":"NotSlasher"},{"inputs":[],"type":"error","name":"NotWhitelistedDepositor"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"OwnableInvalidOwner"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"OwnableUnauthorizedAccount"},{"inputs":[],"type":"error","name":"ReentrancyGuardReentrantCall"},{"inputs":[{"internalType":"uint8","name":"bits","type":"uint8"},{"internalType":"uint256","name":"value","type":"uint256"}],"type":"error","name":"SafeCastOverflowedUintDowncast"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"type":"error","name":"SafeERC20FailedOperation"},{"inputs":[],"type":"error","name":"SlasherAlreadyInitialized"},{"inputs":[],"type":"error","name":"TooMuchRedeem"},{"inputs":[],"type":"error","name":"TooMuchWithdraw"},{"inputs":[{"internalType":"address","name":"claimer","type":"address","indexed":true},{"internalType":"address","name":"recipient","type":"address","indexed":true},{"internalType":"uint256","name":"epoch","type":"uint256","indexed":false},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"Claim","anonymous":false},{"inputs":[{"internalType":"address","name":"claimer","type":"address","indexed":true},{"internalType":"address","name":"recipient","type":"address","indexed":true},{"internalType":"uint256[]","name":"epochs","type":"uint256[]","indexed":false},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"ClaimBatch","anonymous":false},{"inputs":[{"internalType":"address","name":"depositor","type":"address","indexed":true},{"internalType":"address","name":"onBehalfOf","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false},{"internalType":"uint256","name":"shares","type":"uint256","indexed":false}],"type":"event","name":"Deposit","anonymous":false},{"inputs":[{"internalType":"uint64","name":"version","type":"uint64","indexed":false}],"type":"event","name":"Initialized","anonymous":false},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256","indexed":false},{"internalType":"uint48","name":"captureTimestamp","type":"uint48","indexed":false},{"internalType":"uint256","name":"slashedAmount","type":"uint256","indexed":false}],"type":"event","name":"OnSlash","anonymous":false},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"bytes32","name":"previousAdminRole","type":"bytes32","indexed":true},{"internalType":"bytes32","name":"newAdminRole","type":"bytes32","indexed":true}],"type":"event","name":"RoleAdminChanged","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"address","name":"sender","type":"address","indexed":true}],"type":"event","name":"RoleGranted","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"address","name":"sender","type":"address","indexed":true}],"type":"event","name":"RoleRevoked","anonymous":false},{"inputs":[{"internalType":"address","name":"delegator","type":"address","indexed":true}],"type":"event","name":"SetDelegator","anonymous":false},{"inputs":[{"internalType":"uint256","name":"limit","type":"uint256","indexed":false}],"type":"event","name":"SetDepositLimit","anonymous":false},{"inputs":[{"internalType":"bool","name":"status","type":"bool","indexed":false}],"type":"event","name":"SetDepositWhitelist","anonymous":false},{"inputs":[{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"bool","name":"status","type":"bool","indexed":false}],"type":"event","name":"SetDepositorWhitelistStatus","anonymous":false},{"inputs":[{"internalType":"bool","name":"status","type":"bool","indexed":false}],"type":"event","name":"SetIsDepositLimit","anonymous":false},{"inputs":[{"internalType":"address","name":"slasher","type":"address","indexed":true}],"type":"event","name":"SetSlasher","anonymous":false},{"inputs":[{"internalType":"address","name":"withdrawer","type":"address","indexed":true},{"internalType":"address","name":"claimer","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false},{"internalType":"uint256","name":"burnedShares","type":"uint256","indexed":false},{"internalType":"uint256","name":"mintedShares","type":"uint256","indexed":false}],"type":"event","name":"Withdraw","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"DEFAULT_ADMIN_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"DELEGATOR_FACTORY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"DEPOSITOR_WHITELIST_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"DEPOSIT_LIMIT_SET_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"DEPOSIT_WHITELIST_SET_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"FACTORY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"IS_DEPOSIT_LIMIT_SET_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"SLASHER_FACTORY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"activeBalanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint48","name":"timestamp","type":"uint48"},{"internalType":"bytes","name":"hints","type":"bytes"}],"stateMutability":"view","type":"function","name":"activeBalanceOfAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"activeShares","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint48","name":"timestamp","type":"uint48"},{"internalType":"bytes","name":"hint","type":"bytes"}],"stateMutability":"view","type":"function","name":"activeSharesAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"activeSharesOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint48","name":"timestamp","type":"uint48"},{"internalType":"bytes","name":"hint","type":"bytes"}],"stateMutability":"view","type":"function","name":"activeSharesOfAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"activeStake","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint48","name":"timestamp","type":"uint48"},{"internalType":"bytes","name":"hint","type":"bytes"}],"stateMutability":"view","type":"function","name":"activeStakeAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"burner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"epoch","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"claim","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256[]","name":"epochs","type":"uint256[]"}],"stateMutability":"nonpayable","type":"function","name":"claimBatch","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"collateral","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"currentEpoch","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"currentEpochStart","outputs":[{"internalType":"uint48","name":"","type":"uint48"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"delegator","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"onBehalfOf","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"deposit","outputs":[{"internalType":"uint256","name":"depositedAmount","type":"uint256"},{"internalType":"uint256","name":"mintedShares","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"depositLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"depositWhitelist","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint48","name":"timestamp","type":"uint48"}],"stateMutability":"view","type":"function","name":"epochAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"epochDuration","outputs":[{"internalType":"uint48","name":"","type":"uint48"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"epochDurationInit","outputs":[{"internalType":"uint48","name":"","type":"uint48"}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getRoleAdmin","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"grantRole"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"hasRole","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint64","name":"initialVersion","type":"uint64"},{"internalType":"address","name":"owner_","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[],"stateMutability":"view","type":"function","name":"isDelegatorInitialized","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"isDepositLimit","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"isDepositorWhitelisted","outputs":[{"internalType":"bool","name":"value","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"isInitialized","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"isSlasherInitialized","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint256","name":"epoch","type":"uint256"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"isWithdrawalsClaimed","outputs":[{"internalType":"bool","name":"value","type":"bool"}]},{"inputs":[{"internalType":"uint64","name":"newVersion","type":"uint64"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"migrate"},{"inputs":[],"stateMutability":"view","type":"function","name":"nextEpochStart","outputs":[{"internalType":"uint48","name":"","type":"uint48"}]},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint48","name":"captureTimestamp","type":"uint48"}],"stateMutability":"nonpayable","type":"function","name":"onSlash","outputs":[{"internalType":"uint256","name":"slashedAmount","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"previousEpochStart","outputs":[{"internalType":"uint48","name":"","type":"uint48"}]},{"inputs":[{"internalType":"address","name":"claimer","type":"address"},{"internalType":"uint256","name":"shares","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"redeem","outputs":[{"internalType":"uint256","name":"withdrawnAssets","type":"uint256"},{"internalType":"uint256","name":"mintedShares","type":"uint256"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"callerConfirmation","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"renounceRole"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"revokeRole"},{"inputs":[{"internalType":"address","name":"delegator_","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setDelegator"},{"inputs":[{"internalType":"uint256","name":"limit","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setDepositLimit"},{"inputs":[{"internalType":"bool","name":"status","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"setDepositWhitelist"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"status","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"setDepositorWhitelistStatus"},{"inputs":[{"internalType":"bool","name":"status","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"setIsDepositLimit"},{"inputs":[{"internalType":"address","name":"slasher_","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setSlasher"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"slashableBalanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"slasher","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"staticDelegateCall"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"totalStake","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"},{"inputs":[],"stateMutability":"view","type":"function","name":"version","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[{"internalType":"address","name":"claimer","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"withdraw","outputs":[{"internalType":"uint256","name":"burnedShares","type":"uint256"},{"internalType":"uint256","name":"mintedShares","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"epoch","type":"uint256"}],"stateMutability":"view","type":"function","name":"withdrawalShares","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"epoch","type":"uint256"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"withdrawalSharesOf","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"epoch","type":"uint256"}],"stateMutability":"view","type":"function","name":"withdrawals","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"epoch","type":"uint256"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"withdrawalsOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]}],"devdoc":{"kind":"dev","methods":{"activeBalanceOf(address)":{"params":{"account":"account to get the active balance for"},"returns":{"_0":"active balance for the account"}},"activeBalanceOfAt(address,uint48,bytes)":{"params":{"account":"account to get the active balance for","hints":"hints for checkpoints' indexes","timestamp":"time point to get the active balance for the account at"},"returns":{"_0":"active balance for the account at the timestamp"}},"activeShares()":{"returns":{"_0":"total number of active shares"}},"activeSharesAt(uint48,bytes)":{"params":{"hint":"hint for the checkpoint index","timestamp":"time point to get the total number of active shares at"},"returns":{"_0":"total number of active shares at the timestamp"}},"activeSharesOf(address)":{"params":{"account":"account to get the number of active shares for"},"returns":{"_0":"number of active shares for the account"}},"activeSharesOfAt(address,uint48,bytes)":{"params":{"account":"account to get the number of active shares for","hint":"hint for the checkpoint index","timestamp":"time point to get the number of active shares for the account at"},"returns":{"_0":"number of active shares for the account at the timestamp"}},"activeStake()":{"returns":{"_0":"total amount of active stake"}},"activeStakeAt(uint48,bytes)":{"params":{"hint":"hint for the checkpoint index","timestamp":"time point to get the total active stake at"},"returns":{"_0":"total amount of active stake at the timestamp"}},"claim(address,uint256)":{"params":{"epoch":"epoch to claim the collateral for","recipient":"account that receives the collateral"},"returns":{"amount":"amount of the collateral claimed"}},"claimBatch(address,uint256[])":{"params":{"epochs":"epochs to claim the collateral for","recipient":"account that receives the collateral"},"returns":{"amount":"amount of the collateral claimed"}},"currentEpoch()":{"returns":{"_0":"current epoch"}},"currentEpochStart()":{"returns":{"_0":"start of the current epoch"}},"deposit(address,uint256)":{"params":{"amount":"amount of the collateral to deposit","onBehalfOf":"account the deposit is made on behalf of"},"returns":{"depositedAmount":"real amount of the collateral deposited","mintedShares":"amount of the active shares minted"}},"epochAt(uint48)":{"details":"Reverts if the timestamp is less than the start of the epoch 0.","params":{"timestamp":"time point to get the epoch at"},"returns":{"_0":"epoch at the timestamp"}},"getRoleAdmin(bytes32)":{"details":"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}."},"grantRole(bytes32,address)":{"details":"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event."},"hasRole(bytes32,address)":{"details":"Returns `true` if `account` has been granted `role`."},"initialize(uint64,address,bytes)":{"params":{"data":"some data to use","initialVersion":"initial version of the entity","owner":"initial owner of the entity"}},"isInitialized()":{"returns":{"_0":"if the vault is fully initialized"}},"migrate(uint64,bytes)":{"params":{"data":"some data to use","newVersion":"new version of the entity"}},"nextEpochStart()":{"returns":{"_0":"start of the next epoch"}},"onSlash(uint256,uint48)":{"details":"Only the slasher can call this function.","params":{"amount":"amount to slash","captureTimestamp":"time point when the stake was captured"},"returns":{"slashedAmount":"real amount of the collateral slashed"}},"owner()":{"details":"Returns the address of the current owner."},"previousEpochStart()":{"details":"Reverts if the current epoch is 0.","returns":{"_0":"start of the previous epoch"}},"redeem(address,uint256)":{"params":{"claimer":"account that needs to claim the withdrawal","shares":"amount of the active shares to redeem"},"returns":{"mintedShares":"amount of the epoch withdrawal shares minted","withdrawnAssets":"amount of the collateral withdrawn"}},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner."},"renounceRole(bytes32,address)":{"details":"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `callerConfirmation`. May emit a {RoleRevoked} event."},"revokeRole(bytes32,address)":{"details":"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event."},"setDepositLimit(uint256)":{"details":"Only a DEPOSIT_LIMIT_SET_ROLE holder can call this function.","params":{"limit":"deposit limit (maximum amount of the collateral that can be in the vault simultaneously)"}},"setDepositWhitelist(bool)":{"details":"Only a DEPOSIT_WHITELIST_SET_ROLE holder can call this function.","params":{"status":"if enabling deposit whitelist"}},"setDepositorWhitelistStatus(address,bool)":{"details":"Only a DEPOSITOR_WHITELIST_ROLE holder can call this function.","params":{"account":"account for which the whitelist status is set","status":"if whitelisting the account"}},"setIsDepositLimit(bool)":{"details":"Only a IS_DEPOSIT_LIMIT_SET_ROLE holder can call this function.","params":{"status":"if enabling deposit limit"}},"slashableBalanceOf(address)":{"params":{"account":"account to get the slashable collateral for"},"returns":{"_0":"total amount of the account's slashable collateral"}},"staticDelegateCall(address,bytes)":{"details":"It allows to use this contract's storage on-chain.","params":{"data":"data to make a delegatecall with","target":"address of the contract to make a delegatecall to"}},"supportsInterface(bytes4)":{"details":"See {IERC165-supportsInterface}."},"totalStake()":{"returns":{"_0":"total amount of the slashable collateral"}},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."},"version()":{"details":"Starts from 1.","returns":{"_0":"version of the entity"}},"withdraw(address,uint256)":{"params":{"amount":"amount of the collateral to withdraw","claimer":"account that needs to claim the withdrawal"},"returns":{"burnedShares":"amount of the active shares burned","mintedShares":"amount of the epoch withdrawal shares minted"}},"withdrawalsOf(uint256,address)":{"params":{"account":"account to get the withdrawals for","epoch":"epoch to get the withdrawals for the account at"},"returns":{"_0":"withdrawals for the account at the epoch"}}},"version":1},"userdoc":{"kind":"user","methods":{"DELEGATOR_FACTORY()":{"notice":"Get the delegator factory's address."},"DEPOSITOR_WHITELIST_ROLE()":{"notice":"Get a depositor whitelist status setter's role."},"DEPOSIT_LIMIT_SET_ROLE()":{"notice":"Get a deposit limit setter's role."},"DEPOSIT_WHITELIST_SET_ROLE()":{"notice":"Get a deposit whitelist enabler/disabler's role."},"FACTORY()":{"notice":"Get the factory's address."},"IS_DEPOSIT_LIMIT_SET_ROLE()":{"notice":"Get a deposit limit enabler/disabler's role."},"SLASHER_FACTORY()":{"notice":"Get the slasher factory's address."},"activeBalanceOf(address)":{"notice":"Get an active balance for a particular account."},"activeBalanceOfAt(address,uint48,bytes)":{"notice":"Get an active balance for a particular account at a given timestamp using hints."},"activeShares()":{"notice":"Get a total number of active shares in the vault."},"activeSharesAt(uint48,bytes)":{"notice":"Get a total number of active shares in the vault at a given timestamp using a hint."},"activeSharesOf(address)":{"notice":"Get a number of active shares for a particular account."},"activeSharesOfAt(address,uint48,bytes)":{"notice":"Get a total number of active shares for a particular account at a given timestamp using a hint."},"activeStake()":{"notice":"Get a total amount of active stake in the vault."},"activeStakeAt(uint48,bytes)":{"notice":"Get a total amount of active stake in the vault at a given timestamp using a hint."},"burner()":{"notice":"Get a burner to issue debt to (e.g., 0xdEaD or some unwrapper contract)."},"claim(address,uint256)":{"notice":"Claim collateral from the vault."},"claimBatch(address,uint256[])":{"notice":"Claim collateral from the vault for multiple epochs."},"collateral()":{"notice":"Get a vault collateral."},"currentEpoch()":{"notice":"Get a current vault epoch."},"currentEpochStart()":{"notice":"Get a start of the current vault epoch."},"delegator()":{"notice":"Get a delegator (it delegates the vault's stake to networks and operators)."},"deposit(address,uint256)":{"notice":"Deposit collateral into the vault."},"depositLimit()":{"notice":"Get a deposit limit (maximum amount of the active stake that can be in the vault simultaneously)."},"depositWhitelist()":{"notice":"Get if the deposit whitelist is enabled."},"epochAt(uint48)":{"notice":"Get an epoch at a given timestamp."},"epochDuration()":{"notice":"Get a duration of the vault epoch."},"epochDurationInit()":{"notice":"Get a time point of the epoch duration set."},"initialize(uint64,address,bytes)":{"notice":"Initialize this entity contract by using a given data and setting a particular version and owner."},"isDelegatorInitialized()":{"notice":"Get if the delegator is initialized."},"isDepositLimit()":{"notice":"Get if the deposit limit is set."},"isDepositorWhitelisted(address)":{"notice":"Get if a given account is whitelisted as a depositor."},"isInitialized()":{"notice":"Check if the vault is fully initialized (a delegator and a slasher are set)."},"isSlasherInitialized()":{"notice":"Get if the slasher is initialized."},"isWithdrawalsClaimed(uint256,address)":{"notice":"Get if the withdrawals are claimed for a particular account at a given epoch."},"migrate(uint64,bytes)":{"notice":"Migrate this entity to a particular newer version using a given data."},"nextEpochStart()":{"notice":"Get a start of the next vault epoch."},"onSlash(uint256,uint48)":{"notice":"Slash callback for burning collateral."},"previousEpochStart()":{"notice":"Get a start of the previous vault epoch."},"redeem(address,uint256)":{"notice":"Redeem collateral from the vault (it will be claimable after the next epoch)."},"setDepositLimit(uint256)":{"notice":"Set a deposit limit."},"setDepositWhitelist(bool)":{"notice":"Enable/disable deposit whitelist."},"setDepositorWhitelistStatus(address,bool)":{"notice":"Set a depositor whitelist status."},"setIsDepositLimit(bool)":{"notice":"Enable/disable deposit limit."},"slashableBalanceOf(address)":{"notice":"Get a total amount of the collateral that can be slashed for a given account."},"slasher()":{"notice":"Get a slasher (it provides networks a slashing mechanism)."},"staticDelegateCall(address,bytes)":{"notice":"Make a delegatecall from this contract to a given target contract with a particular data (always reverts with a return data)."},"totalStake()":{"notice":"Get a total amount of the collateral that can be slashed."},"version()":{"notice":"Get the entity's version."},"withdraw(address,uint256)":{"notice":"Withdraw collateral from the vault (it will be claimable after the next epoch)."},"withdrawalShares(uint256)":{"notice":"Get a total number of withdrawal shares at a given epoch."},"withdrawalSharesOf(uint256,address)":{"notice":"Get a number of withdrawal shares for a particular account at a given epoch (zero if claimed)."},"withdrawals(uint256)":{"notice":"Get a total amount of the withdrawals at a given epoch."},"withdrawalsOf(uint256,address)":{"notice":"Get withdrawals for a particular account at a given epoch (zero if claimed)."}},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/contracts/vault/Vault.sol":"Vault"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol":{"keccak256":"0x6662ec4e5cefca03eeadd073e9469df8d2944bb2ee8ec8f7622c2c46aab5f225","urls":["bzz-raw://4d8544c6f8daa4d1bc215c6a72fe0acdb748664a105b0e5efc19295667521d45","dweb:/ipfs/QmdGWqdnXT8S3RgCR6aV8XHZrsybieMQLLnug1NtpSjEXN"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol":{"keccak256":"0xc163fcf9bb10138631a9ba5564df1fa25db9adff73bd9ee868a8ae1858fe093a","urls":["bzz-raw://9706d43a0124053d9880f6e31a59f31bc0a6a3dc1acd66ce0a16e1111658c5f6","dweb:/ipfs/QmUFmfowzkRwGtDu36cXV9SPTBHJ3n7dG9xQiK5B28jTf2"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b","urls":["bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609","dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol":{"keccak256":"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397","urls":["bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9","dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardUpgradeable.sol":{"keccak256":"0xb44e086e941292cdc7f440de51478493894ef0b1aeccb0c4047445919f667f74","urls":["bzz-raw://942dad22fbdc1669f025540ba63aa3ccfad5f8458fc5d4525b31ebf272e7af45","dweb:/ipfs/Qmdo4X2M82aM3AMoW2kf2jhYkSCyC4T1pHNd6obdsDFnAB"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol":{"keccak256":"0xdaba3f7c42c55b2896353f32bd27d4d5f8bae741b3b05d4c53f67abc4dc47ce8","urls":["bzz-raw://1fa2e61141c602510bcd2cd936ed9561922ac8772a9b9c9a9db091a74e354a45","dweb:/ipfs/QmcHQDDoEBwJmwUbzoVkytvJsBx3KVHYFFnDkvRGWh9Wmh"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol":{"keccak256":"0xb6b36edd6a2999fd243ff226d6cbf84bd71af2432bbd0dfe19392996a1d9cb41","urls":["bzz-raw://1fd2f35495652e57e3f99bc6c510bc5f7dd398a176ea2e72d8ed730aebc6ca26","dweb:/ipfs/QmTQV6X4gkikTib49cho5iDX3JvSQbdsoEChoDwrk3CbbH"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70","urls":["bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c","dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol":{"keccak256":"0x6008dabfe393240d73d7dd7688033f72740d570aa422254d29a7dce8568f3aff","urls":["bzz-raw://f5196ec75139918c6c7bb4251b36395e668f1fa6d206beba7e7520e74913940d","dweb:/ipfs/QmSyqjksXxmm2mCG6qRd1yuwLykypkSVBbnBnGqJRcuJMi"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0x37bb49513c49c87c4642a891b13b63571bc87013dde806617aa1efb54605f386","urls":["bzz-raw://b3036b3a83b7c48f96641f2a9002b9f2dcb6a5958dd670894ada21ae8229b3d0","dweb:/ipfs/QmUNfSBdoVtjhETaUJCYcaC7pTMgbhht926tJ2uXJbiVd3"],"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/introspection/IERC165.sol":{"keccak256":"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b","urls":["bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df","dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d","urls":["bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875","dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol":{"keccak256":"0xe19a4d5f31d2861e7344e8e535e2feafb913d806d3e2b5fe7782741a2a7094fe","urls":["bzz-raw://4aed79c0fa6f0546ed02f2f683e8f77f0fd2ed7eb34d8bbf3d373c9a6d95b13c","dweb:/ipfs/QmWqVz6UAVqmnWU5pqYPt1o6iDEZyPaBraAA3rKfTTSfYj"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/Checkpoints.sol":{"keccak256":"0xbdc5e074d7dd6678f67e92b1a51a20226801a407b0e1af3da367c5d1ff4519ad","urls":["bzz-raw://a36cca6b22fff3db16fc789ff6c60eea71d4b156065d4d0c83a0bc5e91a77a8b","dweb:/ipfs/QmYN3exd5AemxjBrN8XMB1p5LbbE16uC3sjbYjwi8AjcGR"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/types/Time.sol":{"keccak256":"0xc7755af115020049e4140f224f9ee88d7e1799ffb0646f37bf0df24bf6213f58","urls":["bzz-raw://7f09bf94d5274334ec021f61a04659db303f31e60460e14b709c9bf187740111","dweb:/ipfs/QmNvgomZYUwFAt4cZbPWAiTeSZQreGehY9BK5xyVJsUttb"],"license":"MIT"},"src/contracts/common/MigratableEntity.sol":{"keccak256":"0x2d736f4dacd5d7e7697503bc426c78b8250fe1694ca157965ec178da6807de58","urls":["bzz-raw://f1237acf96b4b9f9b69156e068eddd726a6e15bd8e87a18dc999cd4ba4da069c","dweb:/ipfs/QmS6M8fiFFSeuJ4ZKKq1z8W7w4ybeHQSy5TLASGoc1LVic"],"license":"BUSL-1.1"},"src/contracts/common/StaticDelegateCallable.sol":{"keccak256":"0x350029aa8955eacaffffaeb58babc5c98e80ebc5c5db388ed17ee6465f4a9d90","urls":["bzz-raw://eb392a8ee9050e0af606897df63e3404e3829e8b688b580663892f9664195764","dweb:/ipfs/QmaXC8jqV8UrrAFkzXTEv2fJF56sy33HhLxAzaRZmUxuXD"],"license":"BUSL-1.1"},"src/contracts/libraries/Checkpoints.sol":{"keccak256":"0xba90097c8bfe0a975499428b5f8ac5569483c7d92ccc28c12d70de416aae040c","urls":["bzz-raw://12f5d93ca94cd06d3147db68993165a58e17903ed53682560de61f3085ad4609","dweb:/ipfs/QmePiuAqvXprMLmFZkGZeGjvGPAvsEDHfCDv7BoQhXu9xE"],"license":"MIT"},"src/contracts/libraries/ERC4626Math.sol":{"keccak256":"0x8441160513c1cbeb1c3b9ee077bcc7e7ce20006b52a77c8dd39ff0ef89699939","urls":["bzz-raw://943f8cc3e26ddf649f465f40c909819f5c864717c4baa339e9e403b9374a4653","dweb:/ipfs/QmXPxi1sUDsrGprZdUgCzoPEosaZMv9ZhygWQ1vAi1phAB"],"license":"MIT"},"src/contracts/vault/Vault.sol":{"keccak256":"0x2ceff6ed3298c4cad144c99fcc79b51cb9397d6ebef00285b915848b476f8c2e","urls":["bzz-raw://11f2fb3581854f3ab6e82e8d4935d9eb510c903a13c3f022346c2956a58f5307","dweb:/ipfs/QmdUnoXoyYoG9SGWyQZCFyLDRUUX3eXyXetkRvw6jxqqBz"],"license":"BUSL-1.1"},"src/contracts/vault/VaultStorage.sol":{"keccak256":"0x57db25b127d77ea3472de53e3a4af3354399655b9268638b99ca5925fa364a56","urls":["bzz-raw://aa763d9a6ec508ae3abfb8228b72b9fd9525279e5135d4962e79ff059feb1173","dweb:/ipfs/QmcbDR6E9wyEpu6V2FkEC4hnWy47zXA9LSKJde6zSGd33Q"],"license":"BUSL-1.1"},"src/interfaces/common/IEntity.sol":{"keccak256":"0x8ef4b63d6da63489778ccd5f8d13ebdd527dd4b62730b2c616df5af7474d2d21","urls":["bzz-raw://5a8d69576a9219d85c50816a18ad53a4d53cfcb27ed38b8cccc808dc2734b71b","dweb:/ipfs/QmYVN3P4Q4REvBWJ97TbAcaxm3uyB2anV6NSGa6ZtSwcEv"],"license":"MIT"},"src/interfaces/common/IMigratableEntity.sol":{"keccak256":"0x8f5f2809f3afbe8ebfbb365dd7b57b4dd3b6f9943a6187eaf648d45895b8e3c4","urls":["bzz-raw://0ffe640537d539e7a4fde70d30d3e4c57f4ba9c2c25c450cea713aae38e8fd5c","dweb:/ipfs/QmSUTGzvdcn1R1KB7tLThMRtESsfPbeXDhhhKWGtntzBds"],"license":"MIT"},"src/interfaces/common/IRegistry.sol":{"keccak256":"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb","urls":["bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014","dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK"],"license":"MIT"},"src/interfaces/common/IStaticDelegateCallable.sol":{"keccak256":"0xa335d4e81b9071b7de66ef92b43ff20671d86516eb1be46fef29a3483cd3f5d5","urls":["bzz-raw://d464b9db863c14c05547d2b23352f2e9b7b784799cf09f6bbc4906a2a74e3516","dweb:/ipfs/QmUVWzFvJz7eEbDQKiFTTzwi7TEbjcs3VmwdM4kuptAKvi"],"license":"MIT"},"src/interfaces/delegator/IBaseDelegator.sol":{"keccak256":"0x96bb312f032e17accce3f8f80936d99468029d6b37c9ca74acdb4b026a0148ee","urls":["bzz-raw://2a66dcb5b7d1a6ef6a363431ea98ebd78bc4fdd3d7a134d9b542dc66e7d025c2","dweb:/ipfs/QmRhTPLd2ZAyRHmJUFUcWKs9b3if49QY17LYZuRqWmghw8"],"license":"MIT"},"src/interfaces/slasher/IBaseSlasher.sol":{"keccak256":"0x7c82528b445659c313ab77335c407b0b6efe5e79027187bb287f7bc74202b404","urls":["bzz-raw://0274c90aa5df1aa6bb470a6aab53992fb14fd7e5472c9430416505b29647d9cf","dweb:/ipfs/QmckbmJLDetPemVzCnnGcKYWAZV2BRFXGDsjiaec8jkHxx"],"license":"MIT"},"src/interfaces/vault/IVault.sol":{"keccak256":"0xffee01d383cd4e1a5530c614bf4360c1ef070c288abec9da1eb531b51bc07235","urls":["bzz-raw://04f0046cac285d8ec44ebbb1f79dc94fab4495767190cad8364fbc1fafaadfb9","dweb:/ipfs/QmUawAunwzXfCyShWfhKeThAgKtqe51hmrxvrXvM772M2R"],"license":"MIT"},"src/interfaces/vault/IVaultStorage.sol":{"keccak256":"0x592626f13754194f83047135de19229c49390bd59e34659b1bb38be71d973a22","urls":["bzz-raw://06a6a9dfddd05e580b32bebe2cff4f63ba26a653180676d58225dd30d9c89d3e","dweb:/ipfs/QmdgzBeY6Sxo8mGtyBxtv1tM1c2kU6J6zjeRd7vuXm4DU6"],"license":"MIT"}},"version":1},"id":95} \ No newline at end of file diff --git a/out/VaultConfigurator.sol/VaultConfigurator.json b/out/VaultConfigurator.sol/VaultConfigurator.json index e331423e..e6007148 100644 --- a/out/VaultConfigurator.sol/VaultConfigurator.json +++ b/out/VaultConfigurator.sol/VaultConfigurator.json @@ -1 +1 @@ -{"abi":[{"type":"constructor","inputs":[{"name":"vaultFactory","type":"address","internalType":"address"},{"name":"delegatorFactory","type":"address","internalType":"address"},{"name":"slasherFactory","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"DELEGATOR_FACTORY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"SLASHER_FACTORY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"VAULT_FACTORY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"create","inputs":[{"name":"params","type":"tuple","internalType":"struct IVaultConfigurator.InitParams","components":[{"name":"version","type":"uint64","internalType":"uint64"},{"name":"owner","type":"address","internalType":"address"},{"name":"vaultParams","type":"bytes","internalType":"bytes"},{"name":"delegatorIndex","type":"uint64","internalType":"uint64"},{"name":"delegatorParams","type":"bytes","internalType":"bytes"},{"name":"withSlasher","type":"bool","internalType":"bool"},{"name":"slasherIndex","type":"uint64","internalType":"uint64"},{"name":"slasherParams","type":"bytes","internalType":"bytes"}]}],"outputs":[{"name":"vault","type":"address","internalType":"address"},{"name":"delegator","type":"address","internalType":"address"},{"name":"slasher","type":"address","internalType":"address"}],"stateMutability":"nonpayable"}],"bytecode":{"object":"0x60e0346100a957601f61078338819003918201601f19168301916001600160401b038311848410176100ad578084926060946040528339810103126100a957610047816100c1565b906100606040610059602084016100c1565b92016100c1565b9160805260a05260c0526040516106ad90816100d682396080518181816101aa015261050a015260a05181818161023301526104c9015260c05181818161038201526104860152f35b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b51906001600160a01b03821682036100a95756fe60806040818152600480361015610014575f80fd5b5f925f3560e01c908163103f2907146104f8575080636da3e06d146104b557806387df0788146104725763c48927e41461004c575f80fd5b346103385760031991602036840181136103385782359067ffffffffffffffff9485831161033857610100809184360301126103385783519081018181108782111761045f57845261009f838601610583565b81526001600160a01b039560248401358781168103610338578383019081526044850135828111610338576100d990883691880101610598565b918684019283526100ec60648701610583565b956060850196875260848101358281116103385761010f908a3691840101610598565b966080860197885260a48201359081151582036103385760a0870191825261013960c48401610583565b9260c0880193845260e481013596858811610338578d8d975f6101648f9b958b8f9736920101610598565b9960e08d019a8b526101a6848b849f511694511695519c519c8d9687958694633ac0491160e01b8652850152602484015260606044840152606483019061060d565b03927f0000000000000000000000000000000000000000000000000000000000000000165af19586156104555791888d8c95938e97955f9a61042e575b50908561022f9251169c515f8b6102008a51938492888401610631565b0398610214601f199a8b8101855284610561565b519e8f94859384926319a211df60e31b9d8e85528401610656565b03927f0000000000000000000000000000000000000000000000000000000000000000165af1998a1561042457908d979695949392915f9b6103f9575b50908995949392915161033c575b5050505050501695863b156103385784516383cd9cc360e01b8152938116868501819052935f81602481838c5af1801561032e5761031b575b50863b1561031757845163555e124b60e11b815291169481018590528681602481838a5af1801561030d576102f5575b50606095508251948552840152820152f35b6102ff8791610539565b61030957856102e3565b8580fd5b84513d89823e3d90fd5b8780fd5b610326919850610539565b5f965f6102b3565b86513d5f823e3d90fd5b5f80fd5b61036893949596985061035c9750511693518a5196879189888401610631565b03908101865285610561565b61037c8851948593849384528b8401610656565b03815f8b7f0000000000000000000000000000000000000000000000000000000000000000165af19081156103ef579087915f916103c2575b5091835f8080808061027a565b6103e29150843d86116103e8575b6103da8183610561565b8101906105ee565b5f6103b5565b503d6103d0565b85513d5f823e3d90fd5b8a9695949392919b5061041890873d89116103e8576103da8183610561565b9a90919293949561026c565b8b513d5f823e3d90fd5b61022f92919a5061044c8791853d87116103e8576103da8183610561565b9a9192506101e3565b8a513d5f823e3d90fd5b604186634e487b7160e01b5f525260245ffd5b8234610338575f36600319011261033857517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b8234610338575f36600319011261033857517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b34610338575f366003190112610338577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b67ffffffffffffffff811161054d57604052565b634e487b7160e01b5f52604160045260245ffd5b90601f8019910116810190811067ffffffffffffffff82111761054d57604052565b359067ffffffffffffffff8216820361033857565b81601f820112156103385780359067ffffffffffffffff821161054d57604051926105cd601f8401601f191660200185610561565b8284526020838301011161033857815f926020809301838601378301015290565b9081602091031261033857516001600160a01b03811681036103385790565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b6001600160a01b0390911681526040602082018190526106539291019061060d565b90565b60409067ffffffffffffffff6106539493168152816020820152019061060d56fea264697066735822122025641c7fd1effc3874c6b42463a882a7177034baff10787a4c962a28acb0c5af64736f6c63430008190033","sourceMap":"392:1286:72:-:0;;;;;;;;;;;;;-1:-1:-1;;392:1286:72;;;;-1:-1:-1;;;;;392:1286:72;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;:::i;:::-;844:28;;;882:36;;928:32;;392:1286;;;;;;;;844:28;392:1286;;;;;;;;;;882:36;392:1286;;;;;;;;;;928:32;392:1286;;;;;;;;;;;;-1:-1:-1;392:1286:72;;;;;;-1:-1:-1;392:1286:72;;;;;-1:-1:-1;392:1286:72;;;;-1:-1:-1;;;;;392:1286:72;;;;;;:::o","linkReferences":{}},"deployedBytecode":{"object":"0x60806040818152600480361015610014575f80fd5b5f925f3560e01c908163103f2907146104f8575080636da3e06d146104b557806387df0788146104725763c48927e41461004c575f80fd5b346103385760031991602036840181136103385782359067ffffffffffffffff9485831161033857610100809184360301126103385783519081018181108782111761045f57845261009f838601610583565b81526001600160a01b039560248401358781168103610338578383019081526044850135828111610338576100d990883691880101610598565b918684019283526100ec60648701610583565b956060850196875260848101358281116103385761010f908a3691840101610598565b966080860197885260a48201359081151582036103385760a0870191825261013960c48401610583565b9260c0880193845260e481013596858811610338578d8d975f6101648f9b958b8f9736920101610598565b9960e08d019a8b526101a6848b849f511694511695519c519c8d9687958694633ac0491160e01b8652850152602484015260606044840152606483019061060d565b03927f0000000000000000000000000000000000000000000000000000000000000000165af19586156104555791888d8c95938e97955f9a61042e575b50908561022f9251169c515f8b6102008a51938492888401610631565b0398610214601f199a8b8101855284610561565b519e8f94859384926319a211df60e31b9d8e85528401610656565b03927f0000000000000000000000000000000000000000000000000000000000000000165af1998a1561042457908d979695949392915f9b6103f9575b50908995949392915161033c575b5050505050501695863b156103385784516383cd9cc360e01b8152938116868501819052935f81602481838c5af1801561032e5761031b575b50863b1561031757845163555e124b60e11b815291169481018590528681602481838a5af1801561030d576102f5575b50606095508251948552840152820152f35b6102ff8791610539565b61030957856102e3565b8580fd5b84513d89823e3d90fd5b8780fd5b610326919850610539565b5f965f6102b3565b86513d5f823e3d90fd5b5f80fd5b61036893949596985061035c9750511693518a5196879189888401610631565b03908101865285610561565b61037c8851948593849384528b8401610656565b03815f8b7f0000000000000000000000000000000000000000000000000000000000000000165af19081156103ef579087915f916103c2575b5091835f8080808061027a565b6103e29150843d86116103e8575b6103da8183610561565b8101906105ee565b5f6103b5565b503d6103d0565b85513d5f823e3d90fd5b8a9695949392919b5061041890873d89116103e8576103da8183610561565b9a90919293949561026c565b8b513d5f823e3d90fd5b61022f92919a5061044c8791853d87116103e8576103da8183610561565b9a9192506101e3565b8a513d5f823e3d90fd5b604186634e487b7160e01b5f525260245ffd5b8234610338575f36600319011261033857517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b8234610338575f36600319011261033857517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b34610338575f366003190112610338577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b67ffffffffffffffff811161054d57604052565b634e487b7160e01b5f52604160045260245ffd5b90601f8019910116810190811067ffffffffffffffff82111761054d57604052565b359067ffffffffffffffff8216820361033857565b81601f820112156103385780359067ffffffffffffffff821161054d57604051926105cd601f8401601f191660200185610561565b8284526020838301011161033857815f926020809301838601378301015290565b9081602091031261033857516001600160a01b03811681036103385790565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b6001600160a01b0390911681526040602082018190526106539291019061060d565b90565b60409067ffffffffffffffff6106539493168152816020820152019061060d56fea264697066735822122025641c7fd1effc3874c6b42463a882a7177034baff10787a4c962a28acb0c5af64736f6c63430008190033","sourceMap":"392:1286:72:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;392:1286:72;;;;;;-1:-1:-1;392:1286:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;392:1286:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;1133:15;;;392:1286;;;;;;1233:18;;392:1286;;;;;;;;;;;;1168:84;;;;392:1286;;;;;;;;;;;;;;;:::i;:::-;1168:84;1181:13;;392:1286;1168:84;;;;;;;;;;;;;;;;392:1286;1168:84;;;392:1286;;;;1287:108;392:1286;;;1371:22;;392:1286;;1353:41;392:1286;;1353:41;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;392:1286;;;;;;;;;;;1287:108;;;;;;;:::i;:::-;;1304:17;;392:1286;1287:108;;;;;;;;;;;;;;;;392:1286;1287:108;;;392:1286;;;;;;;;;;1406:175;;392:1286;;;;;;;;1591:36;;;;;;392:1286;;-1:-1:-1;;;1591:36:72;;392:1286;;;1591:36;;;392:1286;;;;;;;;;1591:36;;;;;;;;;392:1286;1637:32;;;;;;392:1286;;-1:-1:-1;;;1637:32:72;;392:1286;;1637:32;;;392:1286;;;1637:32;392:1286;;;1637:32;;;;;;;;;;392:1286;;;;;;;;;;;;;;;;;1637:32;;;;;:::i;:::-;392:1286;;1637:32;;;392:1286;;;;1637:32;392:1286;;;;;;;;;1637:32;392:1286;;;1591:36;;;;;;:::i;:::-;392:1286;1591:36;;;;;392:1286;;;;;;;;;1591:36;392:1286;;;1406:175;1530:39;392:1286;;;;;;1530:39;392:1286;;;;1548:20;;392:1286;;1530:39;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;1470:100;392:1286;;1470:100;;;;;;;;;;;:::i;:::-;;1485:15;392:1286;1485:15;;392:1286;1470:100;;;;;;;;;;392:1286;1470:100;;;1406:175;1444:126;1406:175;;;;;;;;;1470:100;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;392:1286;;;;;;;;;1287:108;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;392:1286;;;;;;;;;1168:84;1287:108;1168:84;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;392:1286;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;392:1286:72;;;;;703:40;-1:-1:-1;;;;;392:1286:72;;;;;;;;;;;;;-1:-1:-1;;392:1286:72;;;;;600:42;-1:-1:-1;;;;;392:1286:72;;;;;;;;;;;;-1:-1:-1;;392:1286:72;;;;501:38;-1:-1:-1;;;;;392:1286:72;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;1353:41;;392:1286;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;1353:41;392:1286;;-1:-1:-1;;392:1286:72;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;392:1286:72;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;-1:-1:-1;;;;;392:1286:72;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;392:1286:72;;;;;;;;-1:-1:-1;;392:1286:72;;;;:::o;:::-;-1:-1:-1;;;;;392:1286:72;;;;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;;;;;;;;;;;;;;:::i","linkReferences":{},"immutableReferences":{"64380":[{"start":426,"length":32},{"start":1290,"length":32}],"64383":[{"start":563,"length":32},{"start":1225,"length":32}],"64386":[{"start":898,"length":32},{"start":1158,"length":32}]}},"methodIdentifiers":{"DELEGATOR_FACTORY()":"6da3e06d","SLASHER_FACTORY()":"87df0788","VAULT_FACTORY()":"103f2907","create((uint64,address,bytes,uint64,bytes,bool,uint64,bytes))":"c48927e4"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"vaultFactory\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"delegatorFactory\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"slasherFactory\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"DELEGATOR_FACTORY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"SLASHER_FACTORY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"VAULT_FACTORY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"vaultParams\",\"type\":\"bytes\"},{\"internalType\":\"uint64\",\"name\":\"delegatorIndex\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"delegatorParams\",\"type\":\"bytes\"},{\"internalType\":\"bool\",\"name\":\"withSlasher\",\"type\":\"bool\"},{\"internalType\":\"uint64\",\"name\":\"slasherIndex\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"slasherParams\",\"type\":\"bytes\"}],\"internalType\":\"struct IVaultConfigurator.InitParams\",\"name\":\"params\",\"type\":\"tuple\"}],\"name\":\"create\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"vault\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"slasher\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"create((uint64,address,bytes,uint64,bytes,bool,uint64,bytes))\":{\"params\":{\"params\":\"initial parameters needed for a vault with a delegator and a slasher deployment\"},\"returns\":{\"delegator\":\"address of the delegator\",\"slasher\":\"address of the slasher\",\"vault\":\"address of the vault\"}}},\"stateVariables\":{\"DELEGATOR_FACTORY\":{\"return\":\"address of the delegator factory\",\"returns\":{\"_0\":\"address of the delegator factory\"}},\"SLASHER_FACTORY\":{\"return\":\"address of the slasher factory\",\"returns\":{\"_0\":\"address of the slasher factory\"}},\"VAULT_FACTORY\":{\"return\":\"address of the vault factory\",\"returns\":{\"_0\":\"address of the vault factory\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"DELEGATOR_FACTORY()\":{\"notice\":\"Get the delegator factory's address.\"},\"SLASHER_FACTORY()\":{\"notice\":\"Get the slasher factory's address.\"},\"VAULT_FACTORY()\":{\"notice\":\"Get the vault factory's address.\"},\"create((uint64,address,bytes,uint64,bytes,bool,uint64,bytes))\":{\"notice\":\"Create a new vault with a delegator and a slasher.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/contracts/VaultConfigurator.sol\":\"VaultConfigurator\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol\":{\"keccak256\":\"0x6662ec4e5cefca03eeadd073e9469df8d2944bb2ee8ec8f7622c2c46aab5f225\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4d8544c6f8daa4d1bc215c6a72fe0acdb748664a105b0e5efc19295667521d45\",\"dweb:/ipfs/QmdGWqdnXT8S3RgCR6aV8XHZrsybieMQLLnug1NtpSjEXN\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0xc163fcf9bb10138631a9ba5564df1fa25db9adff73bd9ee868a8ae1858fe093a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9706d43a0124053d9880f6e31a59f31bc0a6a3dc1acd66ce0a16e1111658c5f6\",\"dweb:/ipfs/QmUFmfowzkRwGtDu36cXV9SPTBHJ3n7dG9xQiK5B28jTf2\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609\",\"dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9\",\"dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardUpgradeable.sol\":{\"keccak256\":\"0xb44e086e941292cdc7f440de51478493894ef0b1aeccb0c4047445919f667f74\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://942dad22fbdc1669f025540ba63aa3ccfad5f8458fc5d4525b31ebf272e7af45\",\"dweb:/ipfs/Qmdo4X2M82aM3AMoW2kf2jhYkSCyC4T1pHNd6obdsDFnAB\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol\":{\"keccak256\":\"0xdaba3f7c42c55b2896353f32bd27d4d5f8bae741b3b05d4c53f67abc4dc47ce8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1fa2e61141c602510bcd2cd936ed9561922ac8772a9b9c9a9db091a74e354a45\",\"dweb:/ipfs/QmcHQDDoEBwJmwUbzoVkytvJsBx3KVHYFFnDkvRGWh9Wmh\"]},\"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0xb6b36edd6a2999fd243ff226d6cbf84bd71af2432bbd0dfe19392996a1d9cb41\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1fd2f35495652e57e3f99bc6c510bc5f7dd398a176ea2e72d8ed730aebc6ca26\",\"dweb:/ipfs/QmTQV6X4gkikTib49cho5iDX3JvSQbdsoEChoDwrk3CbbH\"]},\"lib/openzeppelin-contracts/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"lib/openzeppelin-contracts/contracts/proxy/Clones.sol\":{\"keccak256\":\"0xd18408af8a91bedb3d56343eeb9b30eb852e6dea93a5e2d5c6db9ca4cb905155\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://061475b7302a732dc598907790f407417551c2b13e89daa57b3698489ef5484b\",\"dweb:/ipfs/QmdX5qmk3VSniSErFuD4aVawQxUi2MuUbP7spPcHddPfcX\"]},\"lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Proxy.sol\":{\"keccak256\":\"0xbfb6695731de677140fbf76c772ab08c4233a122fb51ac28ac120fc49bbbc4ec\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://68f8fded7cc318efa15874b7c6a983fe17a4a955d72d240353a9a4ca1e1b824c\",\"dweb:/ipfs/QmdcmBL9Qo4Tk3Dby4wFYabGyot9JNeLPxpSXZUgUm92BV\"]},\"lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol\":{\"keccak256\":\"0x06a78f9b3ee3e6d0eb4e4cd635ba49960bea34cac1db8c0a27c75f2319f1fd65\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://547d21aa17f4f3f1a1a7edf7167beff8dd9496a0348d5588f15cc8a4b29d052a\",\"dweb:/ipfs/QmT16JtRQSWNpLo9W23jr6CzaMuTAcQcjJJcdRd8HLJ6cE\"]},\"lib/openzeppelin-contracts/contracts/proxy/Proxy.sol\":{\"keccak256\":\"0xc3f2ec76a3de8ed7a7007c46166f5550c72c7709e3fc7e8bb3111a7191cdedbd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e73efb4c2ca655882dc237c6b4f234a9bd36d97159d8fcaa837eb01171f726ac\",\"dweb:/ipfs/QmTNnnv7Gu5fs5G1ZMh7Fexp8N4XUs3XrNAngjcxgiss3e\"]},\"lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0xc59a78b07b44b2cf2e8ab4175fca91e8eca1eee2df7357b8d2a8833e5ea1f64c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5aa4f07e65444784c29cd7bfcc2341b34381e4e5b5da9f0c5bd00d7f430e66fa\",\"dweb:/ipfs/QmWRMh4Q9DpaU9GvsiXmDdoNYMyyece9if7hnfLz7uqzWM\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c\",\"dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0x6008dabfe393240d73d7dd7688033f72740d570aa422254d29a7dce8568f3aff\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f5196ec75139918c6c7bb4251b36395e668f1fa6d206beba7e7520e74913940d\",\"dweb:/ipfs/QmSyqjksXxmm2mCG6qRd1yuwLykypkSVBbnBnGqJRcuJMi\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x37bb49513c49c87c4642a891b13b63571bc87013dde806617aa1efb54605f386\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b3036b3a83b7c48f96641f2a9002b9f2dcb6a5958dd670894ada21ae8229b3d0\",\"dweb:/ipfs/QmUNfSBdoVtjhETaUJCYcaC7pTMgbhht926tJ2uXJbiVd3\"]},\"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\"]},\"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0x32ba59b4b7299237c8ba56319110989d7978a039faf754793064e967e5894418\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1ae50c8b562427df610cc4540c9bf104acca7ef8e2dcae567ae7e52272281e9c\",\"dweb:/ipfs/QmTHiadFCSJUPpRjNegc5SahmeU8bAoY8i9Aq6tVscbcKR\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875\",\"dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0xe19a4d5f31d2861e7344e8e535e2feafb913d806d3e2b5fe7782741a2a7094fe\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4aed79c0fa6f0546ed02f2f683e8f77f0fd2ed7eb34d8bbf3d373c9a6d95b13c\",\"dweb:/ipfs/QmWqVz6UAVqmnWU5pqYPt1o6iDEZyPaBraAA3rKfTTSfYj\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/Checkpoints.sol\":{\"keccak256\":\"0xbdc5e074d7dd6678f67e92b1a51a20226801a407b0e1af3da367c5d1ff4519ad\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a36cca6b22fff3db16fc789ff6c60eea71d4b156065d4d0c83a0bc5e91a77a8b\",\"dweb:/ipfs/QmYN3exd5AemxjBrN8XMB1p5LbbE16uC3sjbYjwi8AjcGR\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0x86c1470cbfd878491e5de030072b647352d36bd27122cffb928970b1945282aa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ad85dd393ee0a1917c57046abc5155f51f77844b2c6a42c05c1b8dd26d6ff3c1\",\"dweb:/ipfs/QmNqYc8To2NdnpP6E1tGz7t6A7beuENde5yovwov5pW1fA\"]},\"lib/openzeppelin-contracts/contracts/utils/types/Time.sol\":{\"keccak256\":\"0xc7755af115020049e4140f224f9ee88d7e1799ffb0646f37bf0df24bf6213f58\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7f09bf94d5274334ec021f61a04659db303f31e60460e14b709c9bf187740111\",\"dweb:/ipfs/QmNvgomZYUwFAt4cZbPWAiTeSZQreGehY9BK5xyVJsUttb\"]},\"src/contracts/DelegatorFactory.sol\":{\"keccak256\":\"0x3c3fb62c441302f4f75d94703779f5c4bb755c06f310b4c923dbf24d6e0adda9\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://597fa8be7179d8a555bf942c1dea0504273a1d34f6ac4c206fc2e816da143e68\",\"dweb:/ipfs/Qmf54DKNYXC7fTMcAFABw68RC6ZFenVgyAPGhbPTf6s5TR\"]},\"src/contracts/SlasherFactory.sol\":{\"keccak256\":\"0xbafc96e3d2511eb62942613645b4f5cbf6f603063a711b30e25940aaba08064c\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://489440f1181b1858e3b27a90ec6f514c0c287c602b4779676048213202165867\",\"dweb:/ipfs/QmRG7AQ9m9qHr8ofEvP1Ur8S379fFXTo9rmiWaAtZ9rsUc\"]},\"src/contracts/VaultConfigurator.sol\":{\"keccak256\":\"0x2484ee5cfac134e27cedeeef22d4111d7ecd4a4b62f02381f2c2b67c57ed7955\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://adce2d9b8a9fb670c0f3266d5407b752901921f1c9f9406c7db65d84e48e779a\",\"dweb:/ipfs/QmTbcKhdGfepqexFc8kziqPdfFC8SGZzFrVnEcJ5nKBiPz\"]},\"src/contracts/VaultFactory.sol\":{\"keccak256\":\"0xa9122dd11e5f21fa97a813e90f8c4905f0a4967b9611dd03437a31377cbdecb8\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://4c2feda1f9c0c7ddf65bccdc99494e4bfbb820fcddc3e4222e3b58ef821424a3\",\"dweb:/ipfs/Qmdmt4rH214jDmDsF9ELvJXVCt8abhk6poSmhJqqzLse3R\"]},\"src/contracts/common/Entity.sol\":{\"keccak256\":\"0x3d61a932995b8443381f3950542d388223a2c26dd5d29a3274dea3baa7388bd7\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://7cdf5f03ca72fd263fd32ff59c8d88ddca911ae83896a287d10772c1bbe9b138\",\"dweb:/ipfs/QmbP84r5BWT1Rn9AYTntWSf3xUMTTCohTZJFhbBhDXFoHa\"]},\"src/contracts/common/Factory.sol\":{\"keccak256\":\"0x41764643e6a2a3d80d694a3efee91f50a2fd084fb2bcd13566259443840e6369\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://fefc1e2a2189275388826f4f82ca421ca79c2866d3ef39dc2c7df46fe7cbf7c9\",\"dweb:/ipfs/QmSJ4VGmgpYUv5ni4ZYoSV4qMuZrk5DLjyB3Vv9NbFgeNZ\"]},\"src/contracts/common/MigratableEntity.sol\":{\"keccak256\":\"0x2d736f4dacd5d7e7697503bc426c78b8250fe1694ca157965ec178da6807de58\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://f1237acf96b4b9f9b69156e068eddd726a6e15bd8e87a18dc999cd4ba4da069c\",\"dweb:/ipfs/QmS6M8fiFFSeuJ4ZKKq1z8W7w4ybeHQSy5TLASGoc1LVic\"]},\"src/contracts/common/MigratableEntityProxy.sol\":{\"keccak256\":\"0x78ba27242276232ad10a45265e3c07f0a25722456f6abb3fb3f24a1c8e1b38d1\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://a19623df688e5085036b59fc934e35b72997f875d7ffda1cdc557c6ca468206d\",\"dweb:/ipfs/QmaQiT5uYZu5JmqhMjTDJnsq3nqaHbKrWAjrxKKLesdHV7\"]},\"src/contracts/common/MigratablesFactory.sol\":{\"keccak256\":\"0x5d1487c3456da4bd0bc2a131eeab97ab92484c923edefaebf190cc08d4080093\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://fec38d2e52e9c5148e95599c133fd6fe66d41296d6fc06e7329d2db199a1798f\",\"dweb:/ipfs/QmeiaydBXHHkJRUnpaZH1C6JQ7HPocTvQbUJBqKTvUeEYv\"]},\"src/contracts/common/Registry.sol\":{\"keccak256\":\"0x4a4004836d920953a8ec6e223de9a330f43acf7a5b93c6b8b3e4a95e0f129889\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://e8bdda207f3852c683a2b481602239a914f7e26bcd042ade618e263a43b67652\",\"dweb:/ipfs/Qmb8GZykJWxZcfwNp3SqhFizDFydFuV6LXgemV3vnWyLyu\"]},\"src/contracts/common/StaticDelegateCallable.sol\":{\"keccak256\":\"0x350029aa8955eacaffffaeb58babc5c98e80ebc5c5db388ed17ee6465f4a9d90\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://eb392a8ee9050e0af606897df63e3404e3829e8b688b580663892f9664195764\",\"dweb:/ipfs/QmaXC8jqV8UrrAFkzXTEv2fJF56sy33HhLxAzaRZmUxuXD\"]},\"src/contracts/libraries/Checkpoints.sol\":{\"keccak256\":\"0xba90097c8bfe0a975499428b5f8ac5569483c7d92ccc28c12d70de416aae040c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://12f5d93ca94cd06d3147db68993165a58e17903ed53682560de61f3085ad4609\",\"dweb:/ipfs/QmePiuAqvXprMLmFZkGZeGjvGPAvsEDHfCDv7BoQhXu9xE\"]},\"src/contracts/libraries/ERC4626Math.sol\":{\"keccak256\":\"0x8441160513c1cbeb1c3b9ee077bcc7e7ce20006b52a77c8dd39ff0ef89699939\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://943f8cc3e26ddf649f465f40c909819f5c864717c4baa339e9e403b9374a4653\",\"dweb:/ipfs/QmXPxi1sUDsrGprZdUgCzoPEosaZMv9ZhygWQ1vAi1phAB\"]},\"src/contracts/libraries/Subnetwork.sol\":{\"keccak256\":\"0xf5ef5506fd66082b3c2e7f3df37529f5a8efad32ac62e7c8914bd63219190bfe\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba031a54ee0d0e9a270c2b9e18437f5668cfeb659cfd5fe0677459d7fcac2a56\",\"dweb:/ipfs/QmReP3H7qQ78tAfgLnJKsNEQNCQfF1X1Get38Ffd4kzq32\"]},\"src/contracts/slasher/BaseSlasher.sol\":{\"keccak256\":\"0x190e5dce196a061bdad42468c52e9f5b0eb7810cd7d0c19f04d6a2e94984f1b6\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://07ca08d0cd43c2fe5d54a5577f6bdd522ced410f5d3a52e764deaa7ba26b5f06\",\"dweb:/ipfs/QmZe3PiMKBQKWcwodaLupragdqxPjgS4v1qMC7RXau8hDF\"]},\"src/contracts/vault/Vault.sol\":{\"keccak256\":\"0x2ceff6ed3298c4cad144c99fcc79b51cb9397d6ebef00285b915848b476f8c2e\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://11f2fb3581854f3ab6e82e8d4935d9eb510c903a13c3f022346c2956a58f5307\",\"dweb:/ipfs/QmdUnoXoyYoG9SGWyQZCFyLDRUUX3eXyXetkRvw6jxqqBz\"]},\"src/contracts/vault/VaultStorage.sol\":{\"keccak256\":\"0x57db25b127d77ea3472de53e3a4af3354399655b9268638b99ca5925fa364a56\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://aa763d9a6ec508ae3abfb8228b72b9fd9525279e5135d4962e79ff059feb1173\",\"dweb:/ipfs/QmcbDR6E9wyEpu6V2FkEC4hnWy47zXA9LSKJde6zSGd33Q\"]},\"src/interfaces/IDelegatorFactory.sol\":{\"keccak256\":\"0x7850453237ca93b301393506d2489a38830a60be0c29f39a4a1aee3508d836e6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8f418702b883c90e046af92d5654a25849baf79b61c11401ad603b861fed7b80\",\"dweb:/ipfs/Qmdju1XFJXx3uJidzoS7srcoSnzT8jUoPAmGEdbceYgB7j\"]},\"src/interfaces/ISlasherFactory.sol\":{\"keccak256\":\"0x30018af5c2719d9b5cfacbfc0277017896815b3fcc4dfbea78813e6ae81c1e56\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5e028fbed23ab973d8d9eb2be4e53a528dd01248e3233f56ab0f8ac9a7c9c220\",\"dweb:/ipfs/Qmd9cHMRSE52ESmxMiu5gTBpRNmDHQK5q18f7UTj8DQke4\"]},\"src/interfaces/IVaultConfigurator.sol\":{\"keccak256\":\"0x699d9b8c767780c4ea593fe7608bc0b3ef7646f54cea0610ae355f2974658eba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9ac4081f36b477025213f59c489cbb85f904580b145fa9f18ef9a7b794f0fba2\",\"dweb:/ipfs/QmPE3Ep6pTdaeFsJoixeom3NEaQiTe8WHrLoiFEGJo1zx4\"]},\"src/interfaces/IVaultFactory.sol\":{\"keccak256\":\"0x6f658b264fc8d530e458a98d83a09cb55ace4d3e509f0a3e9294471bb1bcf84d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a7253435e4e1d1ae19a50d14091ddb254f6a36f296440106bfc094623dd1aeba\",\"dweb:/ipfs/QmbHK9yoQ7Ctf3nuDLmqxTWPYD8cEm1TKXzfxePtE87AQN\"]},\"src/interfaces/common/IEntity.sol\":{\"keccak256\":\"0x8ef4b63d6da63489778ccd5f8d13ebdd527dd4b62730b2c616df5af7474d2d21\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a8d69576a9219d85c50816a18ad53a4d53cfcb27ed38b8cccc808dc2734b71b\",\"dweb:/ipfs/QmYVN3P4Q4REvBWJ97TbAcaxm3uyB2anV6NSGa6ZtSwcEv\"]},\"src/interfaces/common/IFactory.sol\":{\"keccak256\":\"0xe835ebda85d181b70874f6eb53f2a892aa3223d23efe247060da9b51d2b8e969\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://48b3dfb5f0491d90efbc8ed498b45358260ebac6e8f2aa0106b8b8fabdc988cb\",\"dweb:/ipfs/QmWnnCs3xiHeUvYfUWMJTSFZWc34bSYn9Zpm7f7syra3TA\"]},\"src/interfaces/common/IMigratableEntity.sol\":{\"keccak256\":\"0x8f5f2809f3afbe8ebfbb365dd7b57b4dd3b6f9943a6187eaf648d45895b8e3c4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ffe640537d539e7a4fde70d30d3e4c57f4ba9c2c25c450cea713aae38e8fd5c\",\"dweb:/ipfs/QmSUTGzvdcn1R1KB7tLThMRtESsfPbeXDhhhKWGtntzBds\"]},\"src/interfaces/common/IMigratableEntityProxy.sol\":{\"keccak256\":\"0x9030ced51ad12e0b3ddaa11bba4a3adcfa29e67b909c46065c14b19d158bb9fd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2d859c21510d1a0f06a71abe21dc6424608c1b2e3194a10e4df4cc88c4de9e9f\",\"dweb:/ipfs/QmNi6Buri2oaujc4vTv6bZ5mgMKFsjUmYmQLUNaDCXFEEt\"]},\"src/interfaces/common/IMigratablesFactory.sol\":{\"keccak256\":\"0xd4dfe9449bf005dbcbab9e0e85eaaca15a601ff971f34182a0b1832dc4b9d124\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ff8b73285192a9c64160b008d23a09da33e7164d10a9dc29d1a4464bd9c02be5\",\"dweb:/ipfs/QmZQW2LLV4dQfJ3coENKeycbzXJzi7zdvupsqWA4UV29Gq\"]},\"src/interfaces/common/IRegistry.sol\":{\"keccak256\":\"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014\",\"dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK\"]},\"src/interfaces/common/IStaticDelegateCallable.sol\":{\"keccak256\":\"0xa335d4e81b9071b7de66ef92b43ff20671d86516eb1be46fef29a3483cd3f5d5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d464b9db863c14c05547d2b23352f2e9b7b784799cf09f6bbc4906a2a74e3516\",\"dweb:/ipfs/QmUVWzFvJz7eEbDQKiFTTzwi7TEbjcs3VmwdM4kuptAKvi\"]},\"src/interfaces/delegator/IBaseDelegator.sol\":{\"keccak256\":\"0x96bb312f032e17accce3f8f80936d99468029d6b37c9ca74acdb4b026a0148ee\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2a66dcb5b7d1a6ef6a363431ea98ebd78bc4fdd3d7a134d9b542dc66e7d025c2\",\"dweb:/ipfs/QmRhTPLd2ZAyRHmJUFUcWKs9b3if49QY17LYZuRqWmghw8\"]},\"src/interfaces/service/INetworkMiddlewareService.sol\":{\"keccak256\":\"0x347afc7fcf1fbcdb96d66162070ef6c78aed27b3af2c1d5dfb4e511840631783\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2d90b8ceb495159e8e4e95d76447719dd166443f67dfabdd942846162071595c\",\"dweb:/ipfs/QmVVuiAWYx92T6vBvNMKZfTvraCf1fa16BsUKkdNs3hdHA\"]},\"src/interfaces/slasher/IBaseSlasher.sol\":{\"keccak256\":\"0x7c82528b445659c313ab77335c407b0b6efe5e79027187bb287f7bc74202b404\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0274c90aa5df1aa6bb470a6aab53992fb14fd7e5472c9430416505b29647d9cf\",\"dweb:/ipfs/QmckbmJLDetPemVzCnnGcKYWAZV2BRFXGDsjiaec8jkHxx\"]},\"src/interfaces/slasher/IBurner.sol\":{\"keccak256\":\"0xaf495dacc19ae0b3c787ba8021c5944927d70261536addd234d7dab146158c2b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9b3cc66251008be6ff9fc8b11ecc6831d5a9dca49a3fe9817fcd970253c1d447\",\"dweb:/ipfs/QmVxfb9ALGdF9W3SN2h41gQbUct6tawvu5bw4K89kFQ4HW\"]},\"src/interfaces/vault/IVault.sol\":{\"keccak256\":\"0xffee01d383cd4e1a5530c614bf4360c1ef070c288abec9da1eb531b51bc07235\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://04f0046cac285d8ec44ebbb1f79dc94fab4495767190cad8364fbc1fafaadfb9\",\"dweb:/ipfs/QmUawAunwzXfCyShWfhKeThAgKtqe51hmrxvrXvM772M2R\"]},\"src/interfaces/vault/IVaultStorage.sol\":{\"keccak256\":\"0x592626f13754194f83047135de19229c49390bd59e34659b1bb38be71d973a22\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://06a6a9dfddd05e580b32bebe2cff4f63ba26a653180676d58225dd30d9c89d3e\",\"dweb:/ipfs/QmdgzBeY6Sxo8mGtyBxtv1tM1c2kU6J6zjeRd7vuXm4DU6\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.25+commit.b61c2a91"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"vaultFactory","type":"address"},{"internalType":"address","name":"delegatorFactory","type":"address"},{"internalType":"address","name":"slasherFactory","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"stateMutability":"view","type":"function","name":"DELEGATOR_FACTORY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"SLASHER_FACTORY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"VAULT_FACTORY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"struct IVaultConfigurator.InitParams","name":"params","type":"tuple","components":[{"internalType":"uint64","name":"version","type":"uint64"},{"internalType":"address","name":"owner","type":"address"},{"internalType":"bytes","name":"vaultParams","type":"bytes"},{"internalType":"uint64","name":"delegatorIndex","type":"uint64"},{"internalType":"bytes","name":"delegatorParams","type":"bytes"},{"internalType":"bool","name":"withSlasher","type":"bool"},{"internalType":"uint64","name":"slasherIndex","type":"uint64"},{"internalType":"bytes","name":"slasherParams","type":"bytes"}]}],"stateMutability":"nonpayable","type":"function","name":"create","outputs":[{"internalType":"address","name":"vault","type":"address"},{"internalType":"address","name":"delegator","type":"address"},{"internalType":"address","name":"slasher","type":"address"}]}],"devdoc":{"kind":"dev","methods":{"create((uint64,address,bytes,uint64,bytes,bool,uint64,bytes))":{"params":{"params":"initial parameters needed for a vault with a delegator and a slasher deployment"},"returns":{"delegator":"address of the delegator","slasher":"address of the slasher","vault":"address of the vault"}}},"version":1},"userdoc":{"kind":"user","methods":{"DELEGATOR_FACTORY()":{"notice":"Get the delegator factory's address."},"SLASHER_FACTORY()":{"notice":"Get the slasher factory's address."},"VAULT_FACTORY()":{"notice":"Get the vault factory's address."},"create((uint64,address,bytes,uint64,bytes,bool,uint64,bytes))":{"notice":"Create a new vault with a delegator and a slasher."}},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/contracts/VaultConfigurator.sol":"VaultConfigurator"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol":{"keccak256":"0x6662ec4e5cefca03eeadd073e9469df8d2944bb2ee8ec8f7622c2c46aab5f225","urls":["bzz-raw://4d8544c6f8daa4d1bc215c6a72fe0acdb748664a105b0e5efc19295667521d45","dweb:/ipfs/QmdGWqdnXT8S3RgCR6aV8XHZrsybieMQLLnug1NtpSjEXN"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol":{"keccak256":"0xc163fcf9bb10138631a9ba5564df1fa25db9adff73bd9ee868a8ae1858fe093a","urls":["bzz-raw://9706d43a0124053d9880f6e31a59f31bc0a6a3dc1acd66ce0a16e1111658c5f6","dweb:/ipfs/QmUFmfowzkRwGtDu36cXV9SPTBHJ3n7dG9xQiK5B28jTf2"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b","urls":["bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609","dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol":{"keccak256":"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397","urls":["bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9","dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardUpgradeable.sol":{"keccak256":"0xb44e086e941292cdc7f440de51478493894ef0b1aeccb0c4047445919f667f74","urls":["bzz-raw://942dad22fbdc1669f025540ba63aa3ccfad5f8458fc5d4525b31ebf272e7af45","dweb:/ipfs/Qmdo4X2M82aM3AMoW2kf2jhYkSCyC4T1pHNd6obdsDFnAB"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol":{"keccak256":"0xdaba3f7c42c55b2896353f32bd27d4d5f8bae741b3b05d4c53f67abc4dc47ce8","urls":["bzz-raw://1fa2e61141c602510bcd2cd936ed9561922ac8772a9b9c9a9db091a74e354a45","dweb:/ipfs/QmcHQDDoEBwJmwUbzoVkytvJsBx3KVHYFFnDkvRGWh9Wmh"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol":{"keccak256":"0xb6b36edd6a2999fd243ff226d6cbf84bd71af2432bbd0dfe19392996a1d9cb41","urls":["bzz-raw://1fd2f35495652e57e3f99bc6c510bc5f7dd398a176ea2e72d8ed730aebc6ca26","dweb:/ipfs/QmTQV6X4gkikTib49cho5iDX3JvSQbdsoEChoDwrk3CbbH"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/access/Ownable.sol":{"keccak256":"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb","urls":["bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6","dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/Clones.sol":{"keccak256":"0xd18408af8a91bedb3d56343eeb9b30eb852e6dea93a5e2d5c6db9ca4cb905155","urls":["bzz-raw://061475b7302a732dc598907790f407417551c2b13e89daa57b3698489ef5484b","dweb:/ipfs/QmdX5qmk3VSniSErFuD4aVawQxUi2MuUbP7spPcHddPfcX"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Proxy.sol":{"keccak256":"0xbfb6695731de677140fbf76c772ab08c4233a122fb51ac28ac120fc49bbbc4ec","urls":["bzz-raw://68f8fded7cc318efa15874b7c6a983fe17a4a955d72d240353a9a4ca1e1b824c","dweb:/ipfs/QmdcmBL9Qo4Tk3Dby4wFYabGyot9JNeLPxpSXZUgUm92BV"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol":{"keccak256":"0x06a78f9b3ee3e6d0eb4e4cd635ba49960bea34cac1db8c0a27c75f2319f1fd65","urls":["bzz-raw://547d21aa17f4f3f1a1a7edf7167beff8dd9496a0348d5588f15cc8a4b29d052a","dweb:/ipfs/QmT16JtRQSWNpLo9W23jr6CzaMuTAcQcjJJcdRd8HLJ6cE"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/Proxy.sol":{"keccak256":"0xc3f2ec76a3de8ed7a7007c46166f5550c72c7709e3fc7e8bb3111a7191cdedbd","urls":["bzz-raw://e73efb4c2ca655882dc237c6b4f234a9bd36d97159d8fcaa837eb01171f726ac","dweb:/ipfs/QmTNnnv7Gu5fs5G1ZMh7Fexp8N4XUs3XrNAngjcxgiss3e"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol":{"keccak256":"0xc59a78b07b44b2cf2e8ab4175fca91e8eca1eee2df7357b8d2a8833e5ea1f64c","urls":["bzz-raw://5aa4f07e65444784c29cd7bfcc2341b34381e4e5b5da9f0c5bd00d7f430e66fa","dweb:/ipfs/QmWRMh4Q9DpaU9GvsiXmDdoNYMyyece9if7hnfLz7uqzWM"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70","urls":["bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c","dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol":{"keccak256":"0x6008dabfe393240d73d7dd7688033f72740d570aa422254d29a7dce8568f3aff","urls":["bzz-raw://f5196ec75139918c6c7bb4251b36395e668f1fa6d206beba7e7520e74913940d","dweb:/ipfs/QmSyqjksXxmm2mCG6qRd1yuwLykypkSVBbnBnGqJRcuJMi"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0x37bb49513c49c87c4642a891b13b63571bc87013dde806617aa1efb54605f386","urls":["bzz-raw://b3036b3a83b7c48f96641f2a9002b9f2dcb6a5958dd670894ada21ae8229b3d0","dweb:/ipfs/QmUNfSBdoVtjhETaUJCYcaC7pTMgbhht926tJ2uXJbiVd3"],"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"},"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol":{"keccak256":"0x32ba59b4b7299237c8ba56319110989d7978a039faf754793064e967e5894418","urls":["bzz-raw://1ae50c8b562427df610cc4540c9bf104acca7ef8e2dcae567ae7e52272281e9c","dweb:/ipfs/QmTHiadFCSJUPpRjNegc5SahmeU8bAoY8i9Aq6tVscbcKR"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b","urls":["bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df","dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d","urls":["bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875","dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol":{"keccak256":"0xe19a4d5f31d2861e7344e8e535e2feafb913d806d3e2b5fe7782741a2a7094fe","urls":["bzz-raw://4aed79c0fa6f0546ed02f2f683e8f77f0fd2ed7eb34d8bbf3d373c9a6d95b13c","dweb:/ipfs/QmWqVz6UAVqmnWU5pqYPt1o6iDEZyPaBraAA3rKfTTSfYj"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/Checkpoints.sol":{"keccak256":"0xbdc5e074d7dd6678f67e92b1a51a20226801a407b0e1af3da367c5d1ff4519ad","urls":["bzz-raw://a36cca6b22fff3db16fc789ff6c60eea71d4b156065d4d0c83a0bc5e91a77a8b","dweb:/ipfs/QmYN3exd5AemxjBrN8XMB1p5LbbE16uC3sjbYjwi8AjcGR"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0x86c1470cbfd878491e5de030072b647352d36bd27122cffb928970b1945282aa","urls":["bzz-raw://ad85dd393ee0a1917c57046abc5155f51f77844b2c6a42c05c1b8dd26d6ff3c1","dweb:/ipfs/QmNqYc8To2NdnpP6E1tGz7t6A7beuENde5yovwov5pW1fA"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/types/Time.sol":{"keccak256":"0xc7755af115020049e4140f224f9ee88d7e1799ffb0646f37bf0df24bf6213f58","urls":["bzz-raw://7f09bf94d5274334ec021f61a04659db303f31e60460e14b709c9bf187740111","dweb:/ipfs/QmNvgomZYUwFAt4cZbPWAiTeSZQreGehY9BK5xyVJsUttb"],"license":"MIT"},"src/contracts/DelegatorFactory.sol":{"keccak256":"0x3c3fb62c441302f4f75d94703779f5c4bb755c06f310b4c923dbf24d6e0adda9","urls":["bzz-raw://597fa8be7179d8a555bf942c1dea0504273a1d34f6ac4c206fc2e816da143e68","dweb:/ipfs/Qmf54DKNYXC7fTMcAFABw68RC6ZFenVgyAPGhbPTf6s5TR"],"license":"BUSL-1.1"},"src/contracts/SlasherFactory.sol":{"keccak256":"0xbafc96e3d2511eb62942613645b4f5cbf6f603063a711b30e25940aaba08064c","urls":["bzz-raw://489440f1181b1858e3b27a90ec6f514c0c287c602b4779676048213202165867","dweb:/ipfs/QmRG7AQ9m9qHr8ofEvP1Ur8S379fFXTo9rmiWaAtZ9rsUc"],"license":"BUSL-1.1"},"src/contracts/VaultConfigurator.sol":{"keccak256":"0x2484ee5cfac134e27cedeeef22d4111d7ecd4a4b62f02381f2c2b67c57ed7955","urls":["bzz-raw://adce2d9b8a9fb670c0f3266d5407b752901921f1c9f9406c7db65d84e48e779a","dweb:/ipfs/QmTbcKhdGfepqexFc8kziqPdfFC8SGZzFrVnEcJ5nKBiPz"],"license":"BUSL-1.1"},"src/contracts/VaultFactory.sol":{"keccak256":"0xa9122dd11e5f21fa97a813e90f8c4905f0a4967b9611dd03437a31377cbdecb8","urls":["bzz-raw://4c2feda1f9c0c7ddf65bccdc99494e4bfbb820fcddc3e4222e3b58ef821424a3","dweb:/ipfs/Qmdmt4rH214jDmDsF9ELvJXVCt8abhk6poSmhJqqzLse3R"],"license":"BUSL-1.1"},"src/contracts/common/Entity.sol":{"keccak256":"0x3d61a932995b8443381f3950542d388223a2c26dd5d29a3274dea3baa7388bd7","urls":["bzz-raw://7cdf5f03ca72fd263fd32ff59c8d88ddca911ae83896a287d10772c1bbe9b138","dweb:/ipfs/QmbP84r5BWT1Rn9AYTntWSf3xUMTTCohTZJFhbBhDXFoHa"],"license":"BUSL-1.1"},"src/contracts/common/Factory.sol":{"keccak256":"0x41764643e6a2a3d80d694a3efee91f50a2fd084fb2bcd13566259443840e6369","urls":["bzz-raw://fefc1e2a2189275388826f4f82ca421ca79c2866d3ef39dc2c7df46fe7cbf7c9","dweb:/ipfs/QmSJ4VGmgpYUv5ni4ZYoSV4qMuZrk5DLjyB3Vv9NbFgeNZ"],"license":"BUSL-1.1"},"src/contracts/common/MigratableEntity.sol":{"keccak256":"0x2d736f4dacd5d7e7697503bc426c78b8250fe1694ca157965ec178da6807de58","urls":["bzz-raw://f1237acf96b4b9f9b69156e068eddd726a6e15bd8e87a18dc999cd4ba4da069c","dweb:/ipfs/QmS6M8fiFFSeuJ4ZKKq1z8W7w4ybeHQSy5TLASGoc1LVic"],"license":"BUSL-1.1"},"src/contracts/common/MigratableEntityProxy.sol":{"keccak256":"0x78ba27242276232ad10a45265e3c07f0a25722456f6abb3fb3f24a1c8e1b38d1","urls":["bzz-raw://a19623df688e5085036b59fc934e35b72997f875d7ffda1cdc557c6ca468206d","dweb:/ipfs/QmaQiT5uYZu5JmqhMjTDJnsq3nqaHbKrWAjrxKKLesdHV7"],"license":"BUSL-1.1"},"src/contracts/common/MigratablesFactory.sol":{"keccak256":"0x5d1487c3456da4bd0bc2a131eeab97ab92484c923edefaebf190cc08d4080093","urls":["bzz-raw://fec38d2e52e9c5148e95599c133fd6fe66d41296d6fc06e7329d2db199a1798f","dweb:/ipfs/QmeiaydBXHHkJRUnpaZH1C6JQ7HPocTvQbUJBqKTvUeEYv"],"license":"BUSL-1.1"},"src/contracts/common/Registry.sol":{"keccak256":"0x4a4004836d920953a8ec6e223de9a330f43acf7a5b93c6b8b3e4a95e0f129889","urls":["bzz-raw://e8bdda207f3852c683a2b481602239a914f7e26bcd042ade618e263a43b67652","dweb:/ipfs/Qmb8GZykJWxZcfwNp3SqhFizDFydFuV6LXgemV3vnWyLyu"],"license":"BUSL-1.1"},"src/contracts/common/StaticDelegateCallable.sol":{"keccak256":"0x350029aa8955eacaffffaeb58babc5c98e80ebc5c5db388ed17ee6465f4a9d90","urls":["bzz-raw://eb392a8ee9050e0af606897df63e3404e3829e8b688b580663892f9664195764","dweb:/ipfs/QmaXC8jqV8UrrAFkzXTEv2fJF56sy33HhLxAzaRZmUxuXD"],"license":"BUSL-1.1"},"src/contracts/libraries/Checkpoints.sol":{"keccak256":"0xba90097c8bfe0a975499428b5f8ac5569483c7d92ccc28c12d70de416aae040c","urls":["bzz-raw://12f5d93ca94cd06d3147db68993165a58e17903ed53682560de61f3085ad4609","dweb:/ipfs/QmePiuAqvXprMLmFZkGZeGjvGPAvsEDHfCDv7BoQhXu9xE"],"license":"MIT"},"src/contracts/libraries/ERC4626Math.sol":{"keccak256":"0x8441160513c1cbeb1c3b9ee077bcc7e7ce20006b52a77c8dd39ff0ef89699939","urls":["bzz-raw://943f8cc3e26ddf649f465f40c909819f5c864717c4baa339e9e403b9374a4653","dweb:/ipfs/QmXPxi1sUDsrGprZdUgCzoPEosaZMv9ZhygWQ1vAi1phAB"],"license":"MIT"},"src/contracts/libraries/Subnetwork.sol":{"keccak256":"0xf5ef5506fd66082b3c2e7f3df37529f5a8efad32ac62e7c8914bd63219190bfe","urls":["bzz-raw://ba031a54ee0d0e9a270c2b9e18437f5668cfeb659cfd5fe0677459d7fcac2a56","dweb:/ipfs/QmReP3H7qQ78tAfgLnJKsNEQNCQfF1X1Get38Ffd4kzq32"],"license":"MIT"},"src/contracts/slasher/BaseSlasher.sol":{"keccak256":"0x190e5dce196a061bdad42468c52e9f5b0eb7810cd7d0c19f04d6a2e94984f1b6","urls":["bzz-raw://07ca08d0cd43c2fe5d54a5577f6bdd522ced410f5d3a52e764deaa7ba26b5f06","dweb:/ipfs/QmZe3PiMKBQKWcwodaLupragdqxPjgS4v1qMC7RXau8hDF"],"license":"BUSL-1.1"},"src/contracts/vault/Vault.sol":{"keccak256":"0x2ceff6ed3298c4cad144c99fcc79b51cb9397d6ebef00285b915848b476f8c2e","urls":["bzz-raw://11f2fb3581854f3ab6e82e8d4935d9eb510c903a13c3f022346c2956a58f5307","dweb:/ipfs/QmdUnoXoyYoG9SGWyQZCFyLDRUUX3eXyXetkRvw6jxqqBz"],"license":"BUSL-1.1"},"src/contracts/vault/VaultStorage.sol":{"keccak256":"0x57db25b127d77ea3472de53e3a4af3354399655b9268638b99ca5925fa364a56","urls":["bzz-raw://aa763d9a6ec508ae3abfb8228b72b9fd9525279e5135d4962e79ff059feb1173","dweb:/ipfs/QmcbDR6E9wyEpu6V2FkEC4hnWy47zXA9LSKJde6zSGd33Q"],"license":"BUSL-1.1"},"src/interfaces/IDelegatorFactory.sol":{"keccak256":"0x7850453237ca93b301393506d2489a38830a60be0c29f39a4a1aee3508d836e6","urls":["bzz-raw://8f418702b883c90e046af92d5654a25849baf79b61c11401ad603b861fed7b80","dweb:/ipfs/Qmdju1XFJXx3uJidzoS7srcoSnzT8jUoPAmGEdbceYgB7j"],"license":"MIT"},"src/interfaces/ISlasherFactory.sol":{"keccak256":"0x30018af5c2719d9b5cfacbfc0277017896815b3fcc4dfbea78813e6ae81c1e56","urls":["bzz-raw://5e028fbed23ab973d8d9eb2be4e53a528dd01248e3233f56ab0f8ac9a7c9c220","dweb:/ipfs/Qmd9cHMRSE52ESmxMiu5gTBpRNmDHQK5q18f7UTj8DQke4"],"license":"MIT"},"src/interfaces/IVaultConfigurator.sol":{"keccak256":"0x699d9b8c767780c4ea593fe7608bc0b3ef7646f54cea0610ae355f2974658eba","urls":["bzz-raw://9ac4081f36b477025213f59c489cbb85f904580b145fa9f18ef9a7b794f0fba2","dweb:/ipfs/QmPE3Ep6pTdaeFsJoixeom3NEaQiTe8WHrLoiFEGJo1zx4"],"license":"MIT"},"src/interfaces/IVaultFactory.sol":{"keccak256":"0x6f658b264fc8d530e458a98d83a09cb55ace4d3e509f0a3e9294471bb1bcf84d","urls":["bzz-raw://a7253435e4e1d1ae19a50d14091ddb254f6a36f296440106bfc094623dd1aeba","dweb:/ipfs/QmbHK9yoQ7Ctf3nuDLmqxTWPYD8cEm1TKXzfxePtE87AQN"],"license":"MIT"},"src/interfaces/common/IEntity.sol":{"keccak256":"0x8ef4b63d6da63489778ccd5f8d13ebdd527dd4b62730b2c616df5af7474d2d21","urls":["bzz-raw://5a8d69576a9219d85c50816a18ad53a4d53cfcb27ed38b8cccc808dc2734b71b","dweb:/ipfs/QmYVN3P4Q4REvBWJ97TbAcaxm3uyB2anV6NSGa6ZtSwcEv"],"license":"MIT"},"src/interfaces/common/IFactory.sol":{"keccak256":"0xe835ebda85d181b70874f6eb53f2a892aa3223d23efe247060da9b51d2b8e969","urls":["bzz-raw://48b3dfb5f0491d90efbc8ed498b45358260ebac6e8f2aa0106b8b8fabdc988cb","dweb:/ipfs/QmWnnCs3xiHeUvYfUWMJTSFZWc34bSYn9Zpm7f7syra3TA"],"license":"MIT"},"src/interfaces/common/IMigratableEntity.sol":{"keccak256":"0x8f5f2809f3afbe8ebfbb365dd7b57b4dd3b6f9943a6187eaf648d45895b8e3c4","urls":["bzz-raw://0ffe640537d539e7a4fde70d30d3e4c57f4ba9c2c25c450cea713aae38e8fd5c","dweb:/ipfs/QmSUTGzvdcn1R1KB7tLThMRtESsfPbeXDhhhKWGtntzBds"],"license":"MIT"},"src/interfaces/common/IMigratableEntityProxy.sol":{"keccak256":"0x9030ced51ad12e0b3ddaa11bba4a3adcfa29e67b909c46065c14b19d158bb9fd","urls":["bzz-raw://2d859c21510d1a0f06a71abe21dc6424608c1b2e3194a10e4df4cc88c4de9e9f","dweb:/ipfs/QmNi6Buri2oaujc4vTv6bZ5mgMKFsjUmYmQLUNaDCXFEEt"],"license":"MIT"},"src/interfaces/common/IMigratablesFactory.sol":{"keccak256":"0xd4dfe9449bf005dbcbab9e0e85eaaca15a601ff971f34182a0b1832dc4b9d124","urls":["bzz-raw://ff8b73285192a9c64160b008d23a09da33e7164d10a9dc29d1a4464bd9c02be5","dweb:/ipfs/QmZQW2LLV4dQfJ3coENKeycbzXJzi7zdvupsqWA4UV29Gq"],"license":"MIT"},"src/interfaces/common/IRegistry.sol":{"keccak256":"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb","urls":["bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014","dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK"],"license":"MIT"},"src/interfaces/common/IStaticDelegateCallable.sol":{"keccak256":"0xa335d4e81b9071b7de66ef92b43ff20671d86516eb1be46fef29a3483cd3f5d5","urls":["bzz-raw://d464b9db863c14c05547d2b23352f2e9b7b784799cf09f6bbc4906a2a74e3516","dweb:/ipfs/QmUVWzFvJz7eEbDQKiFTTzwi7TEbjcs3VmwdM4kuptAKvi"],"license":"MIT"},"src/interfaces/delegator/IBaseDelegator.sol":{"keccak256":"0x96bb312f032e17accce3f8f80936d99468029d6b37c9ca74acdb4b026a0148ee","urls":["bzz-raw://2a66dcb5b7d1a6ef6a363431ea98ebd78bc4fdd3d7a134d9b542dc66e7d025c2","dweb:/ipfs/QmRhTPLd2ZAyRHmJUFUcWKs9b3if49QY17LYZuRqWmghw8"],"license":"MIT"},"src/interfaces/service/INetworkMiddlewareService.sol":{"keccak256":"0x347afc7fcf1fbcdb96d66162070ef6c78aed27b3af2c1d5dfb4e511840631783","urls":["bzz-raw://2d90b8ceb495159e8e4e95d76447719dd166443f67dfabdd942846162071595c","dweb:/ipfs/QmVVuiAWYx92T6vBvNMKZfTvraCf1fa16BsUKkdNs3hdHA"],"license":"MIT"},"src/interfaces/slasher/IBaseSlasher.sol":{"keccak256":"0x7c82528b445659c313ab77335c407b0b6efe5e79027187bb287f7bc74202b404","urls":["bzz-raw://0274c90aa5df1aa6bb470a6aab53992fb14fd7e5472c9430416505b29647d9cf","dweb:/ipfs/QmckbmJLDetPemVzCnnGcKYWAZV2BRFXGDsjiaec8jkHxx"],"license":"MIT"},"src/interfaces/slasher/IBurner.sol":{"keccak256":"0xaf495dacc19ae0b3c787ba8021c5944927d70261536addd234d7dab146158c2b","urls":["bzz-raw://9b3cc66251008be6ff9fc8b11ecc6831d5a9dca49a3fe9817fcd970253c1d447","dweb:/ipfs/QmVxfb9ALGdF9W3SN2h41gQbUct6tawvu5bw4K89kFQ4HW"],"license":"MIT"},"src/interfaces/vault/IVault.sol":{"keccak256":"0xffee01d383cd4e1a5530c614bf4360c1ef070c288abec9da1eb531b51bc07235","urls":["bzz-raw://04f0046cac285d8ec44ebbb1f79dc94fab4495767190cad8364fbc1fafaadfb9","dweb:/ipfs/QmUawAunwzXfCyShWfhKeThAgKtqe51hmrxvrXvM772M2R"],"license":"MIT"},"src/interfaces/vault/IVaultStorage.sol":{"keccak256":"0x592626f13754194f83047135de19229c49390bd59e34659b1bb38be71d973a22","urls":["bzz-raw://06a6a9dfddd05e580b32bebe2cff4f63ba26a653180676d58225dd30d9c89d3e","dweb:/ipfs/QmdgzBeY6Sxo8mGtyBxtv1tM1c2kU6J6zjeRd7vuXm4DU6"],"license":"MIT"}},"version":1},"id":72} \ No newline at end of file +{"abi":[{"type":"constructor","inputs":[{"name":"vaultFactory","type":"address","internalType":"address"},{"name":"delegatorFactory","type":"address","internalType":"address"},{"name":"slasherFactory","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"DELEGATOR_FACTORY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"SLASHER_FACTORY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"VAULT_FACTORY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"create","inputs":[{"name":"params","type":"tuple","internalType":"struct IVaultConfigurator.InitParams","components":[{"name":"version","type":"uint64","internalType":"uint64"},{"name":"owner","type":"address","internalType":"address"},{"name":"vaultParams","type":"bytes","internalType":"bytes"},{"name":"delegatorIndex","type":"uint64","internalType":"uint64"},{"name":"delegatorParams","type":"bytes","internalType":"bytes"},{"name":"withSlasher","type":"bool","internalType":"bool"},{"name":"slasherIndex","type":"uint64","internalType":"uint64"},{"name":"slasherParams","type":"bytes","internalType":"bytes"}]}],"outputs":[{"name":"vault","type":"address","internalType":"address"},{"name":"delegator","type":"address","internalType":"address"},{"name":"slasher","type":"address","internalType":"address"}],"stateMutability":"nonpayable"}],"bytecode":{"object":"0x60e0346100a957601f61078338819003918201601f19168301916001600160401b038311848410176100ad578084926060946040528339810103126100a957610047816100c1565b906100606040610059602084016100c1565b92016100c1565b9160805260a05260c0526040516106ad90816100d682396080518181816101aa015261050a015260a05181818161023301526104c9015260c05181818161038201526104860152f35b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b51906001600160a01b03821682036100a95756fe60806040818152600480361015610014575f80fd5b5f925f3560e01c908163103f2907146104f8575080636da3e06d146104b557806387df0788146104725763c48927e41461004c575f80fd5b346103385760031991602036840181136103385782359067ffffffffffffffff9485831161033857610100809184360301126103385783519081018181108782111761045f57845261009f838601610583565b81526001600160a01b039560248401358781168103610338578383019081526044850135828111610338576100d990883691880101610598565b918684019283526100ec60648701610583565b956060850196875260848101358281116103385761010f908a3691840101610598565b966080860197885260a48201359081151582036103385760a0870191825261013960c48401610583565b9260c0880193845260e481013596858811610338578d8d975f6101648f9b958b8f9736920101610598565b9960e08d019a8b526101a6848b849f511694511695519c519c8d9687958694633ac0491160e01b8652850152602484015260606044840152606483019061060d565b03927f0000000000000000000000000000000000000000000000000000000000000000165af19586156104555791888d8c95938e97955f9a61042e575b50908561022f9251169c515f8b6102008a51938492888401610631565b0398610214601f199a8b8101855284610561565b519e8f94859384926319a211df60e31b9d8e85528401610656565b03927f0000000000000000000000000000000000000000000000000000000000000000165af1998a1561042457908d979695949392915f9b6103f9575b50908995949392915161033c575b5050505050501695863b156103385784516383cd9cc360e01b8152938116868501819052935f81602481838c5af1801561032e5761031b575b50863b1561031757845163555e124b60e11b815291169481018590528681602481838a5af1801561030d576102f5575b50606095508251948552840152820152f35b6102ff8791610539565b61030957856102e3565b8580fd5b84513d89823e3d90fd5b8780fd5b610326919850610539565b5f965f6102b3565b86513d5f823e3d90fd5b5f80fd5b61036893949596985061035c9750511693518a5196879189888401610631565b03908101865285610561565b61037c8851948593849384528b8401610656565b03815f8b7f0000000000000000000000000000000000000000000000000000000000000000165af19081156103ef579087915f916103c2575b5091835f8080808061027a565b6103e29150843d86116103e8575b6103da8183610561565b8101906105ee565b5f6103b5565b503d6103d0565b85513d5f823e3d90fd5b8a9695949392919b5061041890873d89116103e8576103da8183610561565b9a90919293949561026c565b8b513d5f823e3d90fd5b61022f92919a5061044c8791853d87116103e8576103da8183610561565b9a9192506101e3565b8a513d5f823e3d90fd5b604186634e487b7160e01b5f525260245ffd5b8234610338575f36600319011261033857517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b8234610338575f36600319011261033857517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b34610338575f366003190112610338577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b67ffffffffffffffff811161054d57604052565b634e487b7160e01b5f52604160045260245ffd5b90601f8019910116810190811067ffffffffffffffff82111761054d57604052565b359067ffffffffffffffff8216820361033857565b81601f820112156103385780359067ffffffffffffffff821161054d57604051926105cd601f8401601f191660200185610561565b8284526020838301011161033857815f926020809301838601378301015290565b9081602091031261033857516001600160a01b03811681036103385790565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b6001600160a01b0390911681526040602082018190526106539291019061060d565b90565b60409067ffffffffffffffff6106539493168152816020820152019061060d56fea264697066735822122017a06bce8ee6c8b14165edcd334e877656eb476fe3a8fdbc511129d9bf4fbb8664736f6c63430008190033","sourceMap":"392:1286:67:-:0;;;;;;;;;;;;;-1:-1:-1;;392:1286:67;;;;-1:-1:-1;;;;;392:1286:67;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;:::i;:::-;844:28;;;882:36;;928:32;;392:1286;;;;;;;;844:28;392:1286;;;;;;;;;;882:36;392:1286;;;;;;;;;;928:32;392:1286;;;;;;;;;;;;-1:-1:-1;392:1286:67;;;;;;-1:-1:-1;392:1286:67;;;;;-1:-1:-1;392:1286:67;;;;-1:-1:-1;;;;;392:1286:67;;;;;;:::o","linkReferences":{}},"deployedBytecode":{"object":"0x60806040818152600480361015610014575f80fd5b5f925f3560e01c908163103f2907146104f8575080636da3e06d146104b557806387df0788146104725763c48927e41461004c575f80fd5b346103385760031991602036840181136103385782359067ffffffffffffffff9485831161033857610100809184360301126103385783519081018181108782111761045f57845261009f838601610583565b81526001600160a01b039560248401358781168103610338578383019081526044850135828111610338576100d990883691880101610598565b918684019283526100ec60648701610583565b956060850196875260848101358281116103385761010f908a3691840101610598565b966080860197885260a48201359081151582036103385760a0870191825261013960c48401610583565b9260c0880193845260e481013596858811610338578d8d975f6101648f9b958b8f9736920101610598565b9960e08d019a8b526101a6848b849f511694511695519c519c8d9687958694633ac0491160e01b8652850152602484015260606044840152606483019061060d565b03927f0000000000000000000000000000000000000000000000000000000000000000165af19586156104555791888d8c95938e97955f9a61042e575b50908561022f9251169c515f8b6102008a51938492888401610631565b0398610214601f199a8b8101855284610561565b519e8f94859384926319a211df60e31b9d8e85528401610656565b03927f0000000000000000000000000000000000000000000000000000000000000000165af1998a1561042457908d979695949392915f9b6103f9575b50908995949392915161033c575b5050505050501695863b156103385784516383cd9cc360e01b8152938116868501819052935f81602481838c5af1801561032e5761031b575b50863b1561031757845163555e124b60e11b815291169481018590528681602481838a5af1801561030d576102f5575b50606095508251948552840152820152f35b6102ff8791610539565b61030957856102e3565b8580fd5b84513d89823e3d90fd5b8780fd5b610326919850610539565b5f965f6102b3565b86513d5f823e3d90fd5b5f80fd5b61036893949596985061035c9750511693518a5196879189888401610631565b03908101865285610561565b61037c8851948593849384528b8401610656565b03815f8b7f0000000000000000000000000000000000000000000000000000000000000000165af19081156103ef579087915f916103c2575b5091835f8080808061027a565b6103e29150843d86116103e8575b6103da8183610561565b8101906105ee565b5f6103b5565b503d6103d0565b85513d5f823e3d90fd5b8a9695949392919b5061041890873d89116103e8576103da8183610561565b9a90919293949561026c565b8b513d5f823e3d90fd5b61022f92919a5061044c8791853d87116103e8576103da8183610561565b9a9192506101e3565b8a513d5f823e3d90fd5b604186634e487b7160e01b5f525260245ffd5b8234610338575f36600319011261033857517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b8234610338575f36600319011261033857517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b34610338575f366003190112610338577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b67ffffffffffffffff811161054d57604052565b634e487b7160e01b5f52604160045260245ffd5b90601f8019910116810190811067ffffffffffffffff82111761054d57604052565b359067ffffffffffffffff8216820361033857565b81601f820112156103385780359067ffffffffffffffff821161054d57604051926105cd601f8401601f191660200185610561565b8284526020838301011161033857815f926020809301838601378301015290565b9081602091031261033857516001600160a01b03811681036103385790565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b6001600160a01b0390911681526040602082018190526106539291019061060d565b90565b60409067ffffffffffffffff6106539493168152816020820152019061060d56fea264697066735822122017a06bce8ee6c8b14165edcd334e877656eb476fe3a8fdbc511129d9bf4fbb8664736f6c63430008190033","sourceMap":"392:1286:67:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;392:1286:67;;;;;;-1:-1:-1;392:1286:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;392:1286:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;1133:15;;;392:1286;;;;;;1233:18;;392:1286;;;;;;;;;;;;1168:84;;;;392:1286;;;;;;;;;;;;;;;:::i;:::-;1168:84;1181:13;;392:1286;1168:84;;;;;;;;;;;;;;;;392:1286;1168:84;;;392:1286;;;;1287:108;392:1286;;;1371:22;;392:1286;;1353:41;392:1286;;1353:41;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;392:1286;;;;;;;;;;;1287:108;;;;;;;:::i;:::-;;1304:17;;392:1286;1287:108;;;;;;;;;;;;;;;;392:1286;1287:108;;;392:1286;;;;;;;;;;1406:175;;392:1286;;;;;;;;1591:36;;;;;;392:1286;;-1:-1:-1;;;1591:36:67;;392:1286;;;1591:36;;;392:1286;;;;;;;;;1591:36;;;;;;;;;392:1286;1637:32;;;;;;392:1286;;-1:-1:-1;;;1637:32:67;;392:1286;;1637:32;;;392:1286;;;1637:32;392:1286;;;1637:32;;;;;;;;;;392:1286;;;;;;;;;;;;;;;;;1637:32;;;;;:::i;:::-;392:1286;;1637:32;;;392:1286;;;;1637:32;392:1286;;;;;;;;;1637:32;392:1286;;;1591:36;;;;;;:::i;:::-;392:1286;1591:36;;;;;392:1286;;;;;;;;;1591:36;392:1286;;;1406:175;1530:39;392:1286;;;;;;1530:39;392:1286;;;;1548:20;;392:1286;;1530:39;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;1470:100;392:1286;;1470:100;;;;;;;;;;;:::i;:::-;;1485:15;392:1286;1485:15;;392:1286;1470:100;;;;;;;;;;392:1286;1470:100;;;1406:175;1444:126;1406:175;;;;;;;;;1470:100;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;392:1286;;;;;;;;;1287:108;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;392:1286;;;;;;;;;1168:84;1287:108;1168:84;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;392:1286;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;392:1286:67;;;;;703:40;-1:-1:-1;;;;;392:1286:67;;;;;;;;;;;;;-1:-1:-1;;392:1286:67;;;;;600:42;-1:-1:-1;;;;;392:1286:67;;;;;;;;;;;;-1:-1:-1;;392:1286:67;;;;501:38;-1:-1:-1;;;;;392:1286:67;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;1353:41;;392:1286;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;1353:41;392:1286;;-1:-1:-1;;392:1286:67;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;392:1286:67;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;-1:-1:-1;;;;;392:1286:67;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;392:1286:67;;;;;;;;-1:-1:-1;;392:1286:67;;;;:::o;:::-;-1:-1:-1;;;;;392:1286:67;;;;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;;;;;;;;;;;;;;:::i","linkReferences":{},"immutableReferences":{"57668":[{"start":426,"length":32},{"start":1290,"length":32}],"57671":[{"start":563,"length":32},{"start":1225,"length":32}],"57674":[{"start":898,"length":32},{"start":1158,"length":32}]}},"methodIdentifiers":{"DELEGATOR_FACTORY()":"6da3e06d","SLASHER_FACTORY()":"87df0788","VAULT_FACTORY()":"103f2907","create((uint64,address,bytes,uint64,bytes,bool,uint64,bytes))":"c48927e4"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"vaultFactory\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"delegatorFactory\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"slasherFactory\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"DELEGATOR_FACTORY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"SLASHER_FACTORY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"VAULT_FACTORY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"vaultParams\",\"type\":\"bytes\"},{\"internalType\":\"uint64\",\"name\":\"delegatorIndex\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"delegatorParams\",\"type\":\"bytes\"},{\"internalType\":\"bool\",\"name\":\"withSlasher\",\"type\":\"bool\"},{\"internalType\":\"uint64\",\"name\":\"slasherIndex\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"slasherParams\",\"type\":\"bytes\"}],\"internalType\":\"struct IVaultConfigurator.InitParams\",\"name\":\"params\",\"type\":\"tuple\"}],\"name\":\"create\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"vault\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"slasher\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"create((uint64,address,bytes,uint64,bytes,bool,uint64,bytes))\":{\"params\":{\"params\":\"initial parameters needed for a vault with a delegator and a slasher deployment\"},\"returns\":{\"delegator\":\"address of the delegator\",\"slasher\":\"address of the slasher\",\"vault\":\"address of the vault\"}}},\"stateVariables\":{\"DELEGATOR_FACTORY\":{\"return\":\"address of the delegator factory\",\"returns\":{\"_0\":\"address of the delegator factory\"}},\"SLASHER_FACTORY\":{\"return\":\"address of the slasher factory\",\"returns\":{\"_0\":\"address of the slasher factory\"}},\"VAULT_FACTORY\":{\"return\":\"address of the vault factory\",\"returns\":{\"_0\":\"address of the vault factory\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"DELEGATOR_FACTORY()\":{\"notice\":\"Get the delegator factory's address.\"},\"SLASHER_FACTORY()\":{\"notice\":\"Get the slasher factory's address.\"},\"VAULT_FACTORY()\":{\"notice\":\"Get the vault factory's address.\"},\"create((uint64,address,bytes,uint64,bytes,bool,uint64,bytes))\":{\"notice\":\"Create a new vault with a delegator and a slasher.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/contracts/VaultConfigurator.sol\":\"VaultConfigurator\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol\":{\"keccak256\":\"0x6662ec4e5cefca03eeadd073e9469df8d2944bb2ee8ec8f7622c2c46aab5f225\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4d8544c6f8daa4d1bc215c6a72fe0acdb748664a105b0e5efc19295667521d45\",\"dweb:/ipfs/QmdGWqdnXT8S3RgCR6aV8XHZrsybieMQLLnug1NtpSjEXN\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0xc163fcf9bb10138631a9ba5564df1fa25db9adff73bd9ee868a8ae1858fe093a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9706d43a0124053d9880f6e31a59f31bc0a6a3dc1acd66ce0a16e1111658c5f6\",\"dweb:/ipfs/QmUFmfowzkRwGtDu36cXV9SPTBHJ3n7dG9xQiK5B28jTf2\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609\",\"dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9\",\"dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardUpgradeable.sol\":{\"keccak256\":\"0xb44e086e941292cdc7f440de51478493894ef0b1aeccb0c4047445919f667f74\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://942dad22fbdc1669f025540ba63aa3ccfad5f8458fc5d4525b31ebf272e7af45\",\"dweb:/ipfs/Qmdo4X2M82aM3AMoW2kf2jhYkSCyC4T1pHNd6obdsDFnAB\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol\":{\"keccak256\":\"0xdaba3f7c42c55b2896353f32bd27d4d5f8bae741b3b05d4c53f67abc4dc47ce8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1fa2e61141c602510bcd2cd936ed9561922ac8772a9b9c9a9db091a74e354a45\",\"dweb:/ipfs/QmcHQDDoEBwJmwUbzoVkytvJsBx3KVHYFFnDkvRGWh9Wmh\"]},\"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0xb6b36edd6a2999fd243ff226d6cbf84bd71af2432bbd0dfe19392996a1d9cb41\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1fd2f35495652e57e3f99bc6c510bc5f7dd398a176ea2e72d8ed730aebc6ca26\",\"dweb:/ipfs/QmTQV6X4gkikTib49cho5iDX3JvSQbdsoEChoDwrk3CbbH\"]},\"lib/openzeppelin-contracts/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"lib/openzeppelin-contracts/contracts/proxy/Clones.sol\":{\"keccak256\":\"0xd18408af8a91bedb3d56343eeb9b30eb852e6dea93a5e2d5c6db9ca4cb905155\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://061475b7302a732dc598907790f407417551c2b13e89daa57b3698489ef5484b\",\"dweb:/ipfs/QmdX5qmk3VSniSErFuD4aVawQxUi2MuUbP7spPcHddPfcX\"]},\"lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Proxy.sol\":{\"keccak256\":\"0xbfb6695731de677140fbf76c772ab08c4233a122fb51ac28ac120fc49bbbc4ec\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://68f8fded7cc318efa15874b7c6a983fe17a4a955d72d240353a9a4ca1e1b824c\",\"dweb:/ipfs/QmdcmBL9Qo4Tk3Dby4wFYabGyot9JNeLPxpSXZUgUm92BV\"]},\"lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol\":{\"keccak256\":\"0x06a78f9b3ee3e6d0eb4e4cd635ba49960bea34cac1db8c0a27c75f2319f1fd65\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://547d21aa17f4f3f1a1a7edf7167beff8dd9496a0348d5588f15cc8a4b29d052a\",\"dweb:/ipfs/QmT16JtRQSWNpLo9W23jr6CzaMuTAcQcjJJcdRd8HLJ6cE\"]},\"lib/openzeppelin-contracts/contracts/proxy/Proxy.sol\":{\"keccak256\":\"0xc3f2ec76a3de8ed7a7007c46166f5550c72c7709e3fc7e8bb3111a7191cdedbd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e73efb4c2ca655882dc237c6b4f234a9bd36d97159d8fcaa837eb01171f726ac\",\"dweb:/ipfs/QmTNnnv7Gu5fs5G1ZMh7Fexp8N4XUs3XrNAngjcxgiss3e\"]},\"lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0xc59a78b07b44b2cf2e8ab4175fca91e8eca1eee2df7357b8d2a8833e5ea1f64c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5aa4f07e65444784c29cd7bfcc2341b34381e4e5b5da9f0c5bd00d7f430e66fa\",\"dweb:/ipfs/QmWRMh4Q9DpaU9GvsiXmDdoNYMyyece9if7hnfLz7uqzWM\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c\",\"dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0x6008dabfe393240d73d7dd7688033f72740d570aa422254d29a7dce8568f3aff\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f5196ec75139918c6c7bb4251b36395e668f1fa6d206beba7e7520e74913940d\",\"dweb:/ipfs/QmSyqjksXxmm2mCG6qRd1yuwLykypkSVBbnBnGqJRcuJMi\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x37bb49513c49c87c4642a891b13b63571bc87013dde806617aa1efb54605f386\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b3036b3a83b7c48f96641f2a9002b9f2dcb6a5958dd670894ada21ae8229b3d0\",\"dweb:/ipfs/QmUNfSBdoVtjhETaUJCYcaC7pTMgbhht926tJ2uXJbiVd3\"]},\"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\"]},\"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0x32ba59b4b7299237c8ba56319110989d7978a039faf754793064e967e5894418\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1ae50c8b562427df610cc4540c9bf104acca7ef8e2dcae567ae7e52272281e9c\",\"dweb:/ipfs/QmTHiadFCSJUPpRjNegc5SahmeU8bAoY8i9Aq6tVscbcKR\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875\",\"dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0xe19a4d5f31d2861e7344e8e535e2feafb913d806d3e2b5fe7782741a2a7094fe\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4aed79c0fa6f0546ed02f2f683e8f77f0fd2ed7eb34d8bbf3d373c9a6d95b13c\",\"dweb:/ipfs/QmWqVz6UAVqmnWU5pqYPt1o6iDEZyPaBraAA3rKfTTSfYj\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/Checkpoints.sol\":{\"keccak256\":\"0xbdc5e074d7dd6678f67e92b1a51a20226801a407b0e1af3da367c5d1ff4519ad\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a36cca6b22fff3db16fc789ff6c60eea71d4b156065d4d0c83a0bc5e91a77a8b\",\"dweb:/ipfs/QmYN3exd5AemxjBrN8XMB1p5LbbE16uC3sjbYjwi8AjcGR\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0x86c1470cbfd878491e5de030072b647352d36bd27122cffb928970b1945282aa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ad85dd393ee0a1917c57046abc5155f51f77844b2c6a42c05c1b8dd26d6ff3c1\",\"dweb:/ipfs/QmNqYc8To2NdnpP6E1tGz7t6A7beuENde5yovwov5pW1fA\"]},\"lib/openzeppelin-contracts/contracts/utils/types/Time.sol\":{\"keccak256\":\"0xc7755af115020049e4140f224f9ee88d7e1799ffb0646f37bf0df24bf6213f58\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7f09bf94d5274334ec021f61a04659db303f31e60460e14b709c9bf187740111\",\"dweb:/ipfs/QmNvgomZYUwFAt4cZbPWAiTeSZQreGehY9BK5xyVJsUttb\"]},\"src/contracts/DelegatorFactory.sol\":{\"keccak256\":\"0x3c3fb62c441302f4f75d94703779f5c4bb755c06f310b4c923dbf24d6e0adda9\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://597fa8be7179d8a555bf942c1dea0504273a1d34f6ac4c206fc2e816da143e68\",\"dweb:/ipfs/Qmf54DKNYXC7fTMcAFABw68RC6ZFenVgyAPGhbPTf6s5TR\"]},\"src/contracts/SlasherFactory.sol\":{\"keccak256\":\"0xbafc96e3d2511eb62942613645b4f5cbf6f603063a711b30e25940aaba08064c\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://489440f1181b1858e3b27a90ec6f514c0c287c602b4779676048213202165867\",\"dweb:/ipfs/QmRG7AQ9m9qHr8ofEvP1Ur8S379fFXTo9rmiWaAtZ9rsUc\"]},\"src/contracts/VaultConfigurator.sol\":{\"keccak256\":\"0x2484ee5cfac134e27cedeeef22d4111d7ecd4a4b62f02381f2c2b67c57ed7955\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://adce2d9b8a9fb670c0f3266d5407b752901921f1c9f9406c7db65d84e48e779a\",\"dweb:/ipfs/QmTbcKhdGfepqexFc8kziqPdfFC8SGZzFrVnEcJ5nKBiPz\"]},\"src/contracts/VaultFactory.sol\":{\"keccak256\":\"0xa9122dd11e5f21fa97a813e90f8c4905f0a4967b9611dd03437a31377cbdecb8\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://4c2feda1f9c0c7ddf65bccdc99494e4bfbb820fcddc3e4222e3b58ef821424a3\",\"dweb:/ipfs/Qmdmt4rH214jDmDsF9ELvJXVCt8abhk6poSmhJqqzLse3R\"]},\"src/contracts/common/Entity.sol\":{\"keccak256\":\"0x3d61a932995b8443381f3950542d388223a2c26dd5d29a3274dea3baa7388bd7\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://7cdf5f03ca72fd263fd32ff59c8d88ddca911ae83896a287d10772c1bbe9b138\",\"dweb:/ipfs/QmbP84r5BWT1Rn9AYTntWSf3xUMTTCohTZJFhbBhDXFoHa\"]},\"src/contracts/common/Factory.sol\":{\"keccak256\":\"0x41764643e6a2a3d80d694a3efee91f50a2fd084fb2bcd13566259443840e6369\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://fefc1e2a2189275388826f4f82ca421ca79c2866d3ef39dc2c7df46fe7cbf7c9\",\"dweb:/ipfs/QmSJ4VGmgpYUv5ni4ZYoSV4qMuZrk5DLjyB3Vv9NbFgeNZ\"]},\"src/contracts/common/MigratableEntity.sol\":{\"keccak256\":\"0x2d736f4dacd5d7e7697503bc426c78b8250fe1694ca157965ec178da6807de58\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://f1237acf96b4b9f9b69156e068eddd726a6e15bd8e87a18dc999cd4ba4da069c\",\"dweb:/ipfs/QmS6M8fiFFSeuJ4ZKKq1z8W7w4ybeHQSy5TLASGoc1LVic\"]},\"src/contracts/common/MigratableEntityProxy.sol\":{\"keccak256\":\"0x78ba27242276232ad10a45265e3c07f0a25722456f6abb3fb3f24a1c8e1b38d1\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://a19623df688e5085036b59fc934e35b72997f875d7ffda1cdc557c6ca468206d\",\"dweb:/ipfs/QmaQiT5uYZu5JmqhMjTDJnsq3nqaHbKrWAjrxKKLesdHV7\"]},\"src/contracts/common/MigratablesFactory.sol\":{\"keccak256\":\"0x5d1487c3456da4bd0bc2a131eeab97ab92484c923edefaebf190cc08d4080093\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://fec38d2e52e9c5148e95599c133fd6fe66d41296d6fc06e7329d2db199a1798f\",\"dweb:/ipfs/QmeiaydBXHHkJRUnpaZH1C6JQ7HPocTvQbUJBqKTvUeEYv\"]},\"src/contracts/common/Registry.sol\":{\"keccak256\":\"0x4a4004836d920953a8ec6e223de9a330f43acf7a5b93c6b8b3e4a95e0f129889\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://e8bdda207f3852c683a2b481602239a914f7e26bcd042ade618e263a43b67652\",\"dweb:/ipfs/Qmb8GZykJWxZcfwNp3SqhFizDFydFuV6LXgemV3vnWyLyu\"]},\"src/contracts/common/StaticDelegateCallable.sol\":{\"keccak256\":\"0x350029aa8955eacaffffaeb58babc5c98e80ebc5c5db388ed17ee6465f4a9d90\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://eb392a8ee9050e0af606897df63e3404e3829e8b688b580663892f9664195764\",\"dweb:/ipfs/QmaXC8jqV8UrrAFkzXTEv2fJF56sy33HhLxAzaRZmUxuXD\"]},\"src/contracts/libraries/Checkpoints.sol\":{\"keccak256\":\"0xba90097c8bfe0a975499428b5f8ac5569483c7d92ccc28c12d70de416aae040c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://12f5d93ca94cd06d3147db68993165a58e17903ed53682560de61f3085ad4609\",\"dweb:/ipfs/QmePiuAqvXprMLmFZkGZeGjvGPAvsEDHfCDv7BoQhXu9xE\"]},\"src/contracts/libraries/ERC4626Math.sol\":{\"keccak256\":\"0x8441160513c1cbeb1c3b9ee077bcc7e7ce20006b52a77c8dd39ff0ef89699939\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://943f8cc3e26ddf649f465f40c909819f5c864717c4baa339e9e403b9374a4653\",\"dweb:/ipfs/QmXPxi1sUDsrGprZdUgCzoPEosaZMv9ZhygWQ1vAi1phAB\"]},\"src/contracts/libraries/Subnetwork.sol\":{\"keccak256\":\"0xf5ef5506fd66082b3c2e7f3df37529f5a8efad32ac62e7c8914bd63219190bfe\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba031a54ee0d0e9a270c2b9e18437f5668cfeb659cfd5fe0677459d7fcac2a56\",\"dweb:/ipfs/QmReP3H7qQ78tAfgLnJKsNEQNCQfF1X1Get38Ffd4kzq32\"]},\"src/contracts/slasher/BaseSlasher.sol\":{\"keccak256\":\"0x190e5dce196a061bdad42468c52e9f5b0eb7810cd7d0c19f04d6a2e94984f1b6\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://07ca08d0cd43c2fe5d54a5577f6bdd522ced410f5d3a52e764deaa7ba26b5f06\",\"dweb:/ipfs/QmZe3PiMKBQKWcwodaLupragdqxPjgS4v1qMC7RXau8hDF\"]},\"src/contracts/vault/Vault.sol\":{\"keccak256\":\"0x2ceff6ed3298c4cad144c99fcc79b51cb9397d6ebef00285b915848b476f8c2e\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://11f2fb3581854f3ab6e82e8d4935d9eb510c903a13c3f022346c2956a58f5307\",\"dweb:/ipfs/QmdUnoXoyYoG9SGWyQZCFyLDRUUX3eXyXetkRvw6jxqqBz\"]},\"src/contracts/vault/VaultStorage.sol\":{\"keccak256\":\"0x57db25b127d77ea3472de53e3a4af3354399655b9268638b99ca5925fa364a56\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://aa763d9a6ec508ae3abfb8228b72b9fd9525279e5135d4962e79ff059feb1173\",\"dweb:/ipfs/QmcbDR6E9wyEpu6V2FkEC4hnWy47zXA9LSKJde6zSGd33Q\"]},\"src/interfaces/IDelegatorFactory.sol\":{\"keccak256\":\"0x7850453237ca93b301393506d2489a38830a60be0c29f39a4a1aee3508d836e6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8f418702b883c90e046af92d5654a25849baf79b61c11401ad603b861fed7b80\",\"dweb:/ipfs/Qmdju1XFJXx3uJidzoS7srcoSnzT8jUoPAmGEdbceYgB7j\"]},\"src/interfaces/ISlasherFactory.sol\":{\"keccak256\":\"0x30018af5c2719d9b5cfacbfc0277017896815b3fcc4dfbea78813e6ae81c1e56\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5e028fbed23ab973d8d9eb2be4e53a528dd01248e3233f56ab0f8ac9a7c9c220\",\"dweb:/ipfs/Qmd9cHMRSE52ESmxMiu5gTBpRNmDHQK5q18f7UTj8DQke4\"]},\"src/interfaces/IVaultConfigurator.sol\":{\"keccak256\":\"0x699d9b8c767780c4ea593fe7608bc0b3ef7646f54cea0610ae355f2974658eba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9ac4081f36b477025213f59c489cbb85f904580b145fa9f18ef9a7b794f0fba2\",\"dweb:/ipfs/QmPE3Ep6pTdaeFsJoixeom3NEaQiTe8WHrLoiFEGJo1zx4\"]},\"src/interfaces/IVaultFactory.sol\":{\"keccak256\":\"0x6f658b264fc8d530e458a98d83a09cb55ace4d3e509f0a3e9294471bb1bcf84d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a7253435e4e1d1ae19a50d14091ddb254f6a36f296440106bfc094623dd1aeba\",\"dweb:/ipfs/QmbHK9yoQ7Ctf3nuDLmqxTWPYD8cEm1TKXzfxePtE87AQN\"]},\"src/interfaces/common/IEntity.sol\":{\"keccak256\":\"0x8ef4b63d6da63489778ccd5f8d13ebdd527dd4b62730b2c616df5af7474d2d21\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a8d69576a9219d85c50816a18ad53a4d53cfcb27ed38b8cccc808dc2734b71b\",\"dweb:/ipfs/QmYVN3P4Q4REvBWJ97TbAcaxm3uyB2anV6NSGa6ZtSwcEv\"]},\"src/interfaces/common/IFactory.sol\":{\"keccak256\":\"0xe835ebda85d181b70874f6eb53f2a892aa3223d23efe247060da9b51d2b8e969\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://48b3dfb5f0491d90efbc8ed498b45358260ebac6e8f2aa0106b8b8fabdc988cb\",\"dweb:/ipfs/QmWnnCs3xiHeUvYfUWMJTSFZWc34bSYn9Zpm7f7syra3TA\"]},\"src/interfaces/common/IMigratableEntity.sol\":{\"keccak256\":\"0x8f5f2809f3afbe8ebfbb365dd7b57b4dd3b6f9943a6187eaf648d45895b8e3c4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ffe640537d539e7a4fde70d30d3e4c57f4ba9c2c25c450cea713aae38e8fd5c\",\"dweb:/ipfs/QmSUTGzvdcn1R1KB7tLThMRtESsfPbeXDhhhKWGtntzBds\"]},\"src/interfaces/common/IMigratableEntityProxy.sol\":{\"keccak256\":\"0x9030ced51ad12e0b3ddaa11bba4a3adcfa29e67b909c46065c14b19d158bb9fd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2d859c21510d1a0f06a71abe21dc6424608c1b2e3194a10e4df4cc88c4de9e9f\",\"dweb:/ipfs/QmNi6Buri2oaujc4vTv6bZ5mgMKFsjUmYmQLUNaDCXFEEt\"]},\"src/interfaces/common/IMigratablesFactory.sol\":{\"keccak256\":\"0xd4dfe9449bf005dbcbab9e0e85eaaca15a601ff971f34182a0b1832dc4b9d124\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ff8b73285192a9c64160b008d23a09da33e7164d10a9dc29d1a4464bd9c02be5\",\"dweb:/ipfs/QmZQW2LLV4dQfJ3coENKeycbzXJzi7zdvupsqWA4UV29Gq\"]},\"src/interfaces/common/IRegistry.sol\":{\"keccak256\":\"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014\",\"dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK\"]},\"src/interfaces/common/IStaticDelegateCallable.sol\":{\"keccak256\":\"0xa335d4e81b9071b7de66ef92b43ff20671d86516eb1be46fef29a3483cd3f5d5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d464b9db863c14c05547d2b23352f2e9b7b784799cf09f6bbc4906a2a74e3516\",\"dweb:/ipfs/QmUVWzFvJz7eEbDQKiFTTzwi7TEbjcs3VmwdM4kuptAKvi\"]},\"src/interfaces/delegator/IBaseDelegator.sol\":{\"keccak256\":\"0x96bb312f032e17accce3f8f80936d99468029d6b37c9ca74acdb4b026a0148ee\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2a66dcb5b7d1a6ef6a363431ea98ebd78bc4fdd3d7a134d9b542dc66e7d025c2\",\"dweb:/ipfs/QmRhTPLd2ZAyRHmJUFUcWKs9b3if49QY17LYZuRqWmghw8\"]},\"src/interfaces/service/INetworkMiddlewareService.sol\":{\"keccak256\":\"0x347afc7fcf1fbcdb96d66162070ef6c78aed27b3af2c1d5dfb4e511840631783\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2d90b8ceb495159e8e4e95d76447719dd166443f67dfabdd942846162071595c\",\"dweb:/ipfs/QmVVuiAWYx92T6vBvNMKZfTvraCf1fa16BsUKkdNs3hdHA\"]},\"src/interfaces/slasher/IBaseSlasher.sol\":{\"keccak256\":\"0x7c82528b445659c313ab77335c407b0b6efe5e79027187bb287f7bc74202b404\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0274c90aa5df1aa6bb470a6aab53992fb14fd7e5472c9430416505b29647d9cf\",\"dweb:/ipfs/QmckbmJLDetPemVzCnnGcKYWAZV2BRFXGDsjiaec8jkHxx\"]},\"src/interfaces/slasher/IBurner.sol\":{\"keccak256\":\"0xaf495dacc19ae0b3c787ba8021c5944927d70261536addd234d7dab146158c2b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9b3cc66251008be6ff9fc8b11ecc6831d5a9dca49a3fe9817fcd970253c1d447\",\"dweb:/ipfs/QmVxfb9ALGdF9W3SN2h41gQbUct6tawvu5bw4K89kFQ4HW\"]},\"src/interfaces/vault/IVault.sol\":{\"keccak256\":\"0xffee01d383cd4e1a5530c614bf4360c1ef070c288abec9da1eb531b51bc07235\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://04f0046cac285d8ec44ebbb1f79dc94fab4495767190cad8364fbc1fafaadfb9\",\"dweb:/ipfs/QmUawAunwzXfCyShWfhKeThAgKtqe51hmrxvrXvM772M2R\"]},\"src/interfaces/vault/IVaultStorage.sol\":{\"keccak256\":\"0x592626f13754194f83047135de19229c49390bd59e34659b1bb38be71d973a22\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://06a6a9dfddd05e580b32bebe2cff4f63ba26a653180676d58225dd30d9c89d3e\",\"dweb:/ipfs/QmdgzBeY6Sxo8mGtyBxtv1tM1c2kU6J6zjeRd7vuXm4DU6\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.25+commit.b61c2a91"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"vaultFactory","type":"address"},{"internalType":"address","name":"delegatorFactory","type":"address"},{"internalType":"address","name":"slasherFactory","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"stateMutability":"view","type":"function","name":"DELEGATOR_FACTORY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"SLASHER_FACTORY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"VAULT_FACTORY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"struct IVaultConfigurator.InitParams","name":"params","type":"tuple","components":[{"internalType":"uint64","name":"version","type":"uint64"},{"internalType":"address","name":"owner","type":"address"},{"internalType":"bytes","name":"vaultParams","type":"bytes"},{"internalType":"uint64","name":"delegatorIndex","type":"uint64"},{"internalType":"bytes","name":"delegatorParams","type":"bytes"},{"internalType":"bool","name":"withSlasher","type":"bool"},{"internalType":"uint64","name":"slasherIndex","type":"uint64"},{"internalType":"bytes","name":"slasherParams","type":"bytes"}]}],"stateMutability":"nonpayable","type":"function","name":"create","outputs":[{"internalType":"address","name":"vault","type":"address"},{"internalType":"address","name":"delegator","type":"address"},{"internalType":"address","name":"slasher","type":"address"}]}],"devdoc":{"kind":"dev","methods":{"create((uint64,address,bytes,uint64,bytes,bool,uint64,bytes))":{"params":{"params":"initial parameters needed for a vault with a delegator and a slasher deployment"},"returns":{"delegator":"address of the delegator","slasher":"address of the slasher","vault":"address of the vault"}}},"version":1},"userdoc":{"kind":"user","methods":{"DELEGATOR_FACTORY()":{"notice":"Get the delegator factory's address."},"SLASHER_FACTORY()":{"notice":"Get the slasher factory's address."},"VAULT_FACTORY()":{"notice":"Get the vault factory's address."},"create((uint64,address,bytes,uint64,bytes,bool,uint64,bytes))":{"notice":"Create a new vault with a delegator and a slasher."}},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/contracts/VaultConfigurator.sol":"VaultConfigurator"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol":{"keccak256":"0x6662ec4e5cefca03eeadd073e9469df8d2944bb2ee8ec8f7622c2c46aab5f225","urls":["bzz-raw://4d8544c6f8daa4d1bc215c6a72fe0acdb748664a105b0e5efc19295667521d45","dweb:/ipfs/QmdGWqdnXT8S3RgCR6aV8XHZrsybieMQLLnug1NtpSjEXN"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol":{"keccak256":"0xc163fcf9bb10138631a9ba5564df1fa25db9adff73bd9ee868a8ae1858fe093a","urls":["bzz-raw://9706d43a0124053d9880f6e31a59f31bc0a6a3dc1acd66ce0a16e1111658c5f6","dweb:/ipfs/QmUFmfowzkRwGtDu36cXV9SPTBHJ3n7dG9xQiK5B28jTf2"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b","urls":["bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609","dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol":{"keccak256":"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397","urls":["bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9","dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardUpgradeable.sol":{"keccak256":"0xb44e086e941292cdc7f440de51478493894ef0b1aeccb0c4047445919f667f74","urls":["bzz-raw://942dad22fbdc1669f025540ba63aa3ccfad5f8458fc5d4525b31ebf272e7af45","dweb:/ipfs/Qmdo4X2M82aM3AMoW2kf2jhYkSCyC4T1pHNd6obdsDFnAB"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol":{"keccak256":"0xdaba3f7c42c55b2896353f32bd27d4d5f8bae741b3b05d4c53f67abc4dc47ce8","urls":["bzz-raw://1fa2e61141c602510bcd2cd936ed9561922ac8772a9b9c9a9db091a74e354a45","dweb:/ipfs/QmcHQDDoEBwJmwUbzoVkytvJsBx3KVHYFFnDkvRGWh9Wmh"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol":{"keccak256":"0xb6b36edd6a2999fd243ff226d6cbf84bd71af2432bbd0dfe19392996a1d9cb41","urls":["bzz-raw://1fd2f35495652e57e3f99bc6c510bc5f7dd398a176ea2e72d8ed730aebc6ca26","dweb:/ipfs/QmTQV6X4gkikTib49cho5iDX3JvSQbdsoEChoDwrk3CbbH"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/access/Ownable.sol":{"keccak256":"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb","urls":["bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6","dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/Clones.sol":{"keccak256":"0xd18408af8a91bedb3d56343eeb9b30eb852e6dea93a5e2d5c6db9ca4cb905155","urls":["bzz-raw://061475b7302a732dc598907790f407417551c2b13e89daa57b3698489ef5484b","dweb:/ipfs/QmdX5qmk3VSniSErFuD4aVawQxUi2MuUbP7spPcHddPfcX"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Proxy.sol":{"keccak256":"0xbfb6695731de677140fbf76c772ab08c4233a122fb51ac28ac120fc49bbbc4ec","urls":["bzz-raw://68f8fded7cc318efa15874b7c6a983fe17a4a955d72d240353a9a4ca1e1b824c","dweb:/ipfs/QmdcmBL9Qo4Tk3Dby4wFYabGyot9JNeLPxpSXZUgUm92BV"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol":{"keccak256":"0x06a78f9b3ee3e6d0eb4e4cd635ba49960bea34cac1db8c0a27c75f2319f1fd65","urls":["bzz-raw://547d21aa17f4f3f1a1a7edf7167beff8dd9496a0348d5588f15cc8a4b29d052a","dweb:/ipfs/QmT16JtRQSWNpLo9W23jr6CzaMuTAcQcjJJcdRd8HLJ6cE"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/Proxy.sol":{"keccak256":"0xc3f2ec76a3de8ed7a7007c46166f5550c72c7709e3fc7e8bb3111a7191cdedbd","urls":["bzz-raw://e73efb4c2ca655882dc237c6b4f234a9bd36d97159d8fcaa837eb01171f726ac","dweb:/ipfs/QmTNnnv7Gu5fs5G1ZMh7Fexp8N4XUs3XrNAngjcxgiss3e"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol":{"keccak256":"0xc59a78b07b44b2cf2e8ab4175fca91e8eca1eee2df7357b8d2a8833e5ea1f64c","urls":["bzz-raw://5aa4f07e65444784c29cd7bfcc2341b34381e4e5b5da9f0c5bd00d7f430e66fa","dweb:/ipfs/QmWRMh4Q9DpaU9GvsiXmDdoNYMyyece9if7hnfLz7uqzWM"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70","urls":["bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c","dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol":{"keccak256":"0x6008dabfe393240d73d7dd7688033f72740d570aa422254d29a7dce8568f3aff","urls":["bzz-raw://f5196ec75139918c6c7bb4251b36395e668f1fa6d206beba7e7520e74913940d","dweb:/ipfs/QmSyqjksXxmm2mCG6qRd1yuwLykypkSVBbnBnGqJRcuJMi"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0x37bb49513c49c87c4642a891b13b63571bc87013dde806617aa1efb54605f386","urls":["bzz-raw://b3036b3a83b7c48f96641f2a9002b9f2dcb6a5958dd670894ada21ae8229b3d0","dweb:/ipfs/QmUNfSBdoVtjhETaUJCYcaC7pTMgbhht926tJ2uXJbiVd3"],"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"},"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol":{"keccak256":"0x32ba59b4b7299237c8ba56319110989d7978a039faf754793064e967e5894418","urls":["bzz-raw://1ae50c8b562427df610cc4540c9bf104acca7ef8e2dcae567ae7e52272281e9c","dweb:/ipfs/QmTHiadFCSJUPpRjNegc5SahmeU8bAoY8i9Aq6tVscbcKR"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b","urls":["bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df","dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d","urls":["bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875","dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol":{"keccak256":"0xe19a4d5f31d2861e7344e8e535e2feafb913d806d3e2b5fe7782741a2a7094fe","urls":["bzz-raw://4aed79c0fa6f0546ed02f2f683e8f77f0fd2ed7eb34d8bbf3d373c9a6d95b13c","dweb:/ipfs/QmWqVz6UAVqmnWU5pqYPt1o6iDEZyPaBraAA3rKfTTSfYj"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/Checkpoints.sol":{"keccak256":"0xbdc5e074d7dd6678f67e92b1a51a20226801a407b0e1af3da367c5d1ff4519ad","urls":["bzz-raw://a36cca6b22fff3db16fc789ff6c60eea71d4b156065d4d0c83a0bc5e91a77a8b","dweb:/ipfs/QmYN3exd5AemxjBrN8XMB1p5LbbE16uC3sjbYjwi8AjcGR"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0x86c1470cbfd878491e5de030072b647352d36bd27122cffb928970b1945282aa","urls":["bzz-raw://ad85dd393ee0a1917c57046abc5155f51f77844b2c6a42c05c1b8dd26d6ff3c1","dweb:/ipfs/QmNqYc8To2NdnpP6E1tGz7t6A7beuENde5yovwov5pW1fA"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/types/Time.sol":{"keccak256":"0xc7755af115020049e4140f224f9ee88d7e1799ffb0646f37bf0df24bf6213f58","urls":["bzz-raw://7f09bf94d5274334ec021f61a04659db303f31e60460e14b709c9bf187740111","dweb:/ipfs/QmNvgomZYUwFAt4cZbPWAiTeSZQreGehY9BK5xyVJsUttb"],"license":"MIT"},"src/contracts/DelegatorFactory.sol":{"keccak256":"0x3c3fb62c441302f4f75d94703779f5c4bb755c06f310b4c923dbf24d6e0adda9","urls":["bzz-raw://597fa8be7179d8a555bf942c1dea0504273a1d34f6ac4c206fc2e816da143e68","dweb:/ipfs/Qmf54DKNYXC7fTMcAFABw68RC6ZFenVgyAPGhbPTf6s5TR"],"license":"BUSL-1.1"},"src/contracts/SlasherFactory.sol":{"keccak256":"0xbafc96e3d2511eb62942613645b4f5cbf6f603063a711b30e25940aaba08064c","urls":["bzz-raw://489440f1181b1858e3b27a90ec6f514c0c287c602b4779676048213202165867","dweb:/ipfs/QmRG7AQ9m9qHr8ofEvP1Ur8S379fFXTo9rmiWaAtZ9rsUc"],"license":"BUSL-1.1"},"src/contracts/VaultConfigurator.sol":{"keccak256":"0x2484ee5cfac134e27cedeeef22d4111d7ecd4a4b62f02381f2c2b67c57ed7955","urls":["bzz-raw://adce2d9b8a9fb670c0f3266d5407b752901921f1c9f9406c7db65d84e48e779a","dweb:/ipfs/QmTbcKhdGfepqexFc8kziqPdfFC8SGZzFrVnEcJ5nKBiPz"],"license":"BUSL-1.1"},"src/contracts/VaultFactory.sol":{"keccak256":"0xa9122dd11e5f21fa97a813e90f8c4905f0a4967b9611dd03437a31377cbdecb8","urls":["bzz-raw://4c2feda1f9c0c7ddf65bccdc99494e4bfbb820fcddc3e4222e3b58ef821424a3","dweb:/ipfs/Qmdmt4rH214jDmDsF9ELvJXVCt8abhk6poSmhJqqzLse3R"],"license":"BUSL-1.1"},"src/contracts/common/Entity.sol":{"keccak256":"0x3d61a932995b8443381f3950542d388223a2c26dd5d29a3274dea3baa7388bd7","urls":["bzz-raw://7cdf5f03ca72fd263fd32ff59c8d88ddca911ae83896a287d10772c1bbe9b138","dweb:/ipfs/QmbP84r5BWT1Rn9AYTntWSf3xUMTTCohTZJFhbBhDXFoHa"],"license":"BUSL-1.1"},"src/contracts/common/Factory.sol":{"keccak256":"0x41764643e6a2a3d80d694a3efee91f50a2fd084fb2bcd13566259443840e6369","urls":["bzz-raw://fefc1e2a2189275388826f4f82ca421ca79c2866d3ef39dc2c7df46fe7cbf7c9","dweb:/ipfs/QmSJ4VGmgpYUv5ni4ZYoSV4qMuZrk5DLjyB3Vv9NbFgeNZ"],"license":"BUSL-1.1"},"src/contracts/common/MigratableEntity.sol":{"keccak256":"0x2d736f4dacd5d7e7697503bc426c78b8250fe1694ca157965ec178da6807de58","urls":["bzz-raw://f1237acf96b4b9f9b69156e068eddd726a6e15bd8e87a18dc999cd4ba4da069c","dweb:/ipfs/QmS6M8fiFFSeuJ4ZKKq1z8W7w4ybeHQSy5TLASGoc1LVic"],"license":"BUSL-1.1"},"src/contracts/common/MigratableEntityProxy.sol":{"keccak256":"0x78ba27242276232ad10a45265e3c07f0a25722456f6abb3fb3f24a1c8e1b38d1","urls":["bzz-raw://a19623df688e5085036b59fc934e35b72997f875d7ffda1cdc557c6ca468206d","dweb:/ipfs/QmaQiT5uYZu5JmqhMjTDJnsq3nqaHbKrWAjrxKKLesdHV7"],"license":"BUSL-1.1"},"src/contracts/common/MigratablesFactory.sol":{"keccak256":"0x5d1487c3456da4bd0bc2a131eeab97ab92484c923edefaebf190cc08d4080093","urls":["bzz-raw://fec38d2e52e9c5148e95599c133fd6fe66d41296d6fc06e7329d2db199a1798f","dweb:/ipfs/QmeiaydBXHHkJRUnpaZH1C6JQ7HPocTvQbUJBqKTvUeEYv"],"license":"BUSL-1.1"},"src/contracts/common/Registry.sol":{"keccak256":"0x4a4004836d920953a8ec6e223de9a330f43acf7a5b93c6b8b3e4a95e0f129889","urls":["bzz-raw://e8bdda207f3852c683a2b481602239a914f7e26bcd042ade618e263a43b67652","dweb:/ipfs/Qmb8GZykJWxZcfwNp3SqhFizDFydFuV6LXgemV3vnWyLyu"],"license":"BUSL-1.1"},"src/contracts/common/StaticDelegateCallable.sol":{"keccak256":"0x350029aa8955eacaffffaeb58babc5c98e80ebc5c5db388ed17ee6465f4a9d90","urls":["bzz-raw://eb392a8ee9050e0af606897df63e3404e3829e8b688b580663892f9664195764","dweb:/ipfs/QmaXC8jqV8UrrAFkzXTEv2fJF56sy33HhLxAzaRZmUxuXD"],"license":"BUSL-1.1"},"src/contracts/libraries/Checkpoints.sol":{"keccak256":"0xba90097c8bfe0a975499428b5f8ac5569483c7d92ccc28c12d70de416aae040c","urls":["bzz-raw://12f5d93ca94cd06d3147db68993165a58e17903ed53682560de61f3085ad4609","dweb:/ipfs/QmePiuAqvXprMLmFZkGZeGjvGPAvsEDHfCDv7BoQhXu9xE"],"license":"MIT"},"src/contracts/libraries/ERC4626Math.sol":{"keccak256":"0x8441160513c1cbeb1c3b9ee077bcc7e7ce20006b52a77c8dd39ff0ef89699939","urls":["bzz-raw://943f8cc3e26ddf649f465f40c909819f5c864717c4baa339e9e403b9374a4653","dweb:/ipfs/QmXPxi1sUDsrGprZdUgCzoPEosaZMv9ZhygWQ1vAi1phAB"],"license":"MIT"},"src/contracts/libraries/Subnetwork.sol":{"keccak256":"0xf5ef5506fd66082b3c2e7f3df37529f5a8efad32ac62e7c8914bd63219190bfe","urls":["bzz-raw://ba031a54ee0d0e9a270c2b9e18437f5668cfeb659cfd5fe0677459d7fcac2a56","dweb:/ipfs/QmReP3H7qQ78tAfgLnJKsNEQNCQfF1X1Get38Ffd4kzq32"],"license":"MIT"},"src/contracts/slasher/BaseSlasher.sol":{"keccak256":"0x190e5dce196a061bdad42468c52e9f5b0eb7810cd7d0c19f04d6a2e94984f1b6","urls":["bzz-raw://07ca08d0cd43c2fe5d54a5577f6bdd522ced410f5d3a52e764deaa7ba26b5f06","dweb:/ipfs/QmZe3PiMKBQKWcwodaLupragdqxPjgS4v1qMC7RXau8hDF"],"license":"BUSL-1.1"},"src/contracts/vault/Vault.sol":{"keccak256":"0x2ceff6ed3298c4cad144c99fcc79b51cb9397d6ebef00285b915848b476f8c2e","urls":["bzz-raw://11f2fb3581854f3ab6e82e8d4935d9eb510c903a13c3f022346c2956a58f5307","dweb:/ipfs/QmdUnoXoyYoG9SGWyQZCFyLDRUUX3eXyXetkRvw6jxqqBz"],"license":"BUSL-1.1"},"src/contracts/vault/VaultStorage.sol":{"keccak256":"0x57db25b127d77ea3472de53e3a4af3354399655b9268638b99ca5925fa364a56","urls":["bzz-raw://aa763d9a6ec508ae3abfb8228b72b9fd9525279e5135d4962e79ff059feb1173","dweb:/ipfs/QmcbDR6E9wyEpu6V2FkEC4hnWy47zXA9LSKJde6zSGd33Q"],"license":"BUSL-1.1"},"src/interfaces/IDelegatorFactory.sol":{"keccak256":"0x7850453237ca93b301393506d2489a38830a60be0c29f39a4a1aee3508d836e6","urls":["bzz-raw://8f418702b883c90e046af92d5654a25849baf79b61c11401ad603b861fed7b80","dweb:/ipfs/Qmdju1XFJXx3uJidzoS7srcoSnzT8jUoPAmGEdbceYgB7j"],"license":"MIT"},"src/interfaces/ISlasherFactory.sol":{"keccak256":"0x30018af5c2719d9b5cfacbfc0277017896815b3fcc4dfbea78813e6ae81c1e56","urls":["bzz-raw://5e028fbed23ab973d8d9eb2be4e53a528dd01248e3233f56ab0f8ac9a7c9c220","dweb:/ipfs/Qmd9cHMRSE52ESmxMiu5gTBpRNmDHQK5q18f7UTj8DQke4"],"license":"MIT"},"src/interfaces/IVaultConfigurator.sol":{"keccak256":"0x699d9b8c767780c4ea593fe7608bc0b3ef7646f54cea0610ae355f2974658eba","urls":["bzz-raw://9ac4081f36b477025213f59c489cbb85f904580b145fa9f18ef9a7b794f0fba2","dweb:/ipfs/QmPE3Ep6pTdaeFsJoixeom3NEaQiTe8WHrLoiFEGJo1zx4"],"license":"MIT"},"src/interfaces/IVaultFactory.sol":{"keccak256":"0x6f658b264fc8d530e458a98d83a09cb55ace4d3e509f0a3e9294471bb1bcf84d","urls":["bzz-raw://a7253435e4e1d1ae19a50d14091ddb254f6a36f296440106bfc094623dd1aeba","dweb:/ipfs/QmbHK9yoQ7Ctf3nuDLmqxTWPYD8cEm1TKXzfxePtE87AQN"],"license":"MIT"},"src/interfaces/common/IEntity.sol":{"keccak256":"0x8ef4b63d6da63489778ccd5f8d13ebdd527dd4b62730b2c616df5af7474d2d21","urls":["bzz-raw://5a8d69576a9219d85c50816a18ad53a4d53cfcb27ed38b8cccc808dc2734b71b","dweb:/ipfs/QmYVN3P4Q4REvBWJ97TbAcaxm3uyB2anV6NSGa6ZtSwcEv"],"license":"MIT"},"src/interfaces/common/IFactory.sol":{"keccak256":"0xe835ebda85d181b70874f6eb53f2a892aa3223d23efe247060da9b51d2b8e969","urls":["bzz-raw://48b3dfb5f0491d90efbc8ed498b45358260ebac6e8f2aa0106b8b8fabdc988cb","dweb:/ipfs/QmWnnCs3xiHeUvYfUWMJTSFZWc34bSYn9Zpm7f7syra3TA"],"license":"MIT"},"src/interfaces/common/IMigratableEntity.sol":{"keccak256":"0x8f5f2809f3afbe8ebfbb365dd7b57b4dd3b6f9943a6187eaf648d45895b8e3c4","urls":["bzz-raw://0ffe640537d539e7a4fde70d30d3e4c57f4ba9c2c25c450cea713aae38e8fd5c","dweb:/ipfs/QmSUTGzvdcn1R1KB7tLThMRtESsfPbeXDhhhKWGtntzBds"],"license":"MIT"},"src/interfaces/common/IMigratableEntityProxy.sol":{"keccak256":"0x9030ced51ad12e0b3ddaa11bba4a3adcfa29e67b909c46065c14b19d158bb9fd","urls":["bzz-raw://2d859c21510d1a0f06a71abe21dc6424608c1b2e3194a10e4df4cc88c4de9e9f","dweb:/ipfs/QmNi6Buri2oaujc4vTv6bZ5mgMKFsjUmYmQLUNaDCXFEEt"],"license":"MIT"},"src/interfaces/common/IMigratablesFactory.sol":{"keccak256":"0xd4dfe9449bf005dbcbab9e0e85eaaca15a601ff971f34182a0b1832dc4b9d124","urls":["bzz-raw://ff8b73285192a9c64160b008d23a09da33e7164d10a9dc29d1a4464bd9c02be5","dweb:/ipfs/QmZQW2LLV4dQfJ3coENKeycbzXJzi7zdvupsqWA4UV29Gq"],"license":"MIT"},"src/interfaces/common/IRegistry.sol":{"keccak256":"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb","urls":["bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014","dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK"],"license":"MIT"},"src/interfaces/common/IStaticDelegateCallable.sol":{"keccak256":"0xa335d4e81b9071b7de66ef92b43ff20671d86516eb1be46fef29a3483cd3f5d5","urls":["bzz-raw://d464b9db863c14c05547d2b23352f2e9b7b784799cf09f6bbc4906a2a74e3516","dweb:/ipfs/QmUVWzFvJz7eEbDQKiFTTzwi7TEbjcs3VmwdM4kuptAKvi"],"license":"MIT"},"src/interfaces/delegator/IBaseDelegator.sol":{"keccak256":"0x96bb312f032e17accce3f8f80936d99468029d6b37c9ca74acdb4b026a0148ee","urls":["bzz-raw://2a66dcb5b7d1a6ef6a363431ea98ebd78bc4fdd3d7a134d9b542dc66e7d025c2","dweb:/ipfs/QmRhTPLd2ZAyRHmJUFUcWKs9b3if49QY17LYZuRqWmghw8"],"license":"MIT"},"src/interfaces/service/INetworkMiddlewareService.sol":{"keccak256":"0x347afc7fcf1fbcdb96d66162070ef6c78aed27b3af2c1d5dfb4e511840631783","urls":["bzz-raw://2d90b8ceb495159e8e4e95d76447719dd166443f67dfabdd942846162071595c","dweb:/ipfs/QmVVuiAWYx92T6vBvNMKZfTvraCf1fa16BsUKkdNs3hdHA"],"license":"MIT"},"src/interfaces/slasher/IBaseSlasher.sol":{"keccak256":"0x7c82528b445659c313ab77335c407b0b6efe5e79027187bb287f7bc74202b404","urls":["bzz-raw://0274c90aa5df1aa6bb470a6aab53992fb14fd7e5472c9430416505b29647d9cf","dweb:/ipfs/QmckbmJLDetPemVzCnnGcKYWAZV2BRFXGDsjiaec8jkHxx"],"license":"MIT"},"src/interfaces/slasher/IBurner.sol":{"keccak256":"0xaf495dacc19ae0b3c787ba8021c5944927d70261536addd234d7dab146158c2b","urls":["bzz-raw://9b3cc66251008be6ff9fc8b11ecc6831d5a9dca49a3fe9817fcd970253c1d447","dweb:/ipfs/QmVxfb9ALGdF9W3SN2h41gQbUct6tawvu5bw4K89kFQ4HW"],"license":"MIT"},"src/interfaces/vault/IVault.sol":{"keccak256":"0xffee01d383cd4e1a5530c614bf4360c1ef070c288abec9da1eb531b51bc07235","urls":["bzz-raw://04f0046cac285d8ec44ebbb1f79dc94fab4495767190cad8364fbc1fafaadfb9","dweb:/ipfs/QmUawAunwzXfCyShWfhKeThAgKtqe51hmrxvrXvM772M2R"],"license":"MIT"},"src/interfaces/vault/IVaultStorage.sol":{"keccak256":"0x592626f13754194f83047135de19229c49390bd59e34659b1bb38be71d973a22","urls":["bzz-raw://06a6a9dfddd05e580b32bebe2cff4f63ba26a653180676d58225dd30d9c89d3e","dweb:/ipfs/QmdgzBeY6Sxo8mGtyBxtv1tM1c2kU6J6zjeRd7vuXm4DU6"],"license":"MIT"}},"version":1},"id":67} \ No newline at end of file diff --git a/out/VaultFactory.sol/VaultFactory.json b/out/VaultFactory.sol/VaultFactory.json index ef271481..baf395bd 100644 --- a/out/VaultFactory.sol/VaultFactory.json +++ b/out/VaultFactory.sol/VaultFactory.json @@ -1 +1 @@ -{"abi":[{"type":"constructor","inputs":[{"name":"owner_","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"blacklist","inputs":[{"name":"version","type":"uint64","internalType":"uint64"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"blacklisted","inputs":[{"name":"version","type":"uint64","internalType":"uint64"}],"outputs":[{"name":"value","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"create","inputs":[{"name":"version","type":"uint64","internalType":"uint64"},{"name":"owner_","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"entity_","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"entity","inputs":[{"name":"index","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"implementation","inputs":[{"name":"version","type":"uint64","internalType":"uint64"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"isEntity","inputs":[{"name":"entity_","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"lastVersion","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"migrate","inputs":[{"name":"entity_","type":"address","internalType":"address"},{"name":"newVersion","type":"uint64","internalType":"uint64"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"totalEntities","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"whitelist","inputs":[{"name":"implementation_","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"AddEntity","inputs":[{"name":"entity","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Blacklist","inputs":[{"name":"version","type":"uint64","indexed":true,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"Migrate","inputs":[{"name":"entity","type":"address","indexed":true,"internalType":"address"},{"name":"newVersion","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Whitelist","inputs":[{"name":"implementation","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"error","name":"AlreadyBlacklisted","inputs":[]},{"type":"error","name":"AlreadyWhitelisted","inputs":[]},{"type":"error","name":"EntityNotExist","inputs":[]},{"type":"error","name":"InvalidImplementation","inputs":[]},{"type":"error","name":"InvalidVersion","inputs":[]},{"type":"error","name":"NotOwner","inputs":[]},{"type":"error","name":"OldVersion","inputs":[]},{"type":"error","name":"OwnableInvalidOwner","inputs":[{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"OwnableUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"}]}],"bytecode":{"object":"0x60803460b557601f61121538819003918201601f19168301916001600160401b0383118484101760b95780849260209460405283398101031260b557516001600160a01b03908181169081900360b5578015609d57600280546001600160a01b03198116831790915560405192167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a361114790816100ce8239f35b604051631e4fbdf760e01b81525f6004820152602490fd5b5f80fd5b634e487b7160e01b5f52604160045260245ffdfe60406080815260049081361015610014575f80fd5b5f915f3560e01c90816314887c581461084a5781633ac04911146106dc57816358336662146104945781635cd8b15e1461047757816364dfea061461044f578163715018a6146103f25781638da5cb5b146103c95781639b19251a146102e3578163b42ba2a214610273578163b572a966146101b9578163b6caa1191461017c578163f2fde38b146100e8575063f9661602146100af575f80fd5b346100e45760203660031901126100e4576020906100d36100ce6108a3565b610999565b90516001600160a01b039091168152f35b5080fd5b9050346101785760203660031901126101785761010361088d565b9061010c610a0f565b6001600160a01b03918216928315610162575050600254826bffffffffffffffffffffffff60a01b821617600255167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a380f35b51631e4fbdf760e01b8152908101849052602490fd5b8280fd5b5050346100e45760203660031901126100e45760ff8160209367ffffffffffffffff6101a66108a3565b1681526003855220541690519015158152f35b91905034610178576020366003190112610178576101d56108a3565b916101de610a0f565b67ffffffffffffffff809316928315908115610266575b5061025857828452600360205260ff828520541661024a575081835260036020528220805460ff191660011790557ffc8245c2838846b295ae66fbe0d08e20c799b737c93b56f7b209df2e5fa2d4588280a280f35b905163f53de75f60e01b8152fd5b905163a9146eeb60e01b8152fd5b905081541683115f6101f5565b8284346102e05760203660031901126102e0575081355f548110156102cd575f80527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563015490516001600160a01b03909116815260209150f35b603283634e487b7160e01b5f525260245ffd5b80fd5b905034610178576020366003190112610178576102fe61088d565b91610307610a0f565b80516202dd3160ec1b81526001600160a01b03938416936020828581885afa9182156103bf57869261038e575b50309116036103815761034683610af2565b156103745750507feb73900b98b6a3e2b8b01708fe544760cf570d21e7fbe5225f24e48b5b2b432e8280a280f35b5163b73e95e160e01b8152fd5b5163340aafcd60e11b8152fd5b6103b191925060203d6020116103b8575b6103a98183610908565b81019061097a565b905f610334565b503d61039f565b83513d88823e3d90fd5b5050346100e457816003193601126100e45760025490516001600160a01b039091168152602090f35b83346102e057806003193601126102e05761040b610a0f565b600280546001600160a01b031981169091555f906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a380f35b8284346102e057806003193601126102e0575067ffffffffffffffff60209254169051908152f35b5050346100e457816003193601126100e457602091549051908152f35b83833461063d57606036600319011261063d576104af61088d565b6024359167ffffffffffffffff908184169182850361063d5760443581811161063d576104df90369089016108ba565b6001600160a01b039586165f81815260016020526040902054909792939290156106cc578451638da5cb5b60e01b81526020979088818d818d5afa9081156106c2575f916106a5575b5016330361069557845163054fd4d560e41b815287818c818c5afa90811561068b579084915f91610651575b5016861115610641576105696105a291610999565b916105948651958692630557c60960e31b8b85015289602485015288604485015260648401916108e8565b03601f198101855284610908565b863b1561063d57835163278f794360e11b8152925f91849182916105c991908d840161093e565b0381838a5af1801561063357610607575b5050519081527fb91c18bf7dbfdff96560fb98128531c4c6187079fe0bd7f24a81f54ea87f35a79190a280f35b9080929650116106205784529293505f928486806105da565b604186634e487b7160e01b5f525260245ffd5b83513d5f823e3d90fd5b5f80fd5b8451630384ebd960e41b81528a90fd5b809250898092503d8311610684575b61066a8183610908565b8101031261063d5751838116810361063d5783908c610554565b503d610660565b86513d5f823e3d90fd5b84516330cd747160e01b81528a90fd5b6106bc9150893d8b116103b8576103a98183610908565b8c610528565b87513d5f823e3d90fd5b845163e3fd10ff60e01b81528a90fd5b823461063d57606036600319011261063d576106f66108a3565b6001600160a01b03926024358481169081900361063d5760443567ffffffffffffffff80821161063d576107306107bf92369086016108ba565b92905f546107b389519260208401928352610785868b1693848d8701528960608701526080808701528561076860a082018b866108e8565b039561077c601f1997888101835282610908565b5190209a610999565b968b519889946315fb20f360e21b6020870152602486015260448501526060606485015260848401916108e8565b03908101855284610908565b8551936105c39081860192868410908411176108375750918493916107e893610b4f863961093e565b03905ff591821561082d57602092169061080182610a84565b505190807fb919910dcefbf753bfd926ab3b1d3f85d877190c3d01ba1bd585047b99b99f0b5f80a28152f35b50513d5f823e3d90fd5b604190634e487b7160e01b5f525260245ffd5b823461063d57602036600319011261063d576020906108846001600160a01b0361087261088d565b165f52600160205260405f2054151590565b90519015158152f35b600435906001600160a01b038216820361063d57565b6004359067ffffffffffffffff8216820361063d57565b9181601f8401121561063d5782359167ffffffffffffffff831161063d576020838186019501011161063d57565b908060209392818452848401375f828201840152601f01601f1916010190565b90601f8019910116810190811067ffffffffffffffff82111761092a57604052565b634e487b7160e01b5f52604160045260245ffd5b6001600160a01b0390911681526040602080830182905283519183018290526060938291018484015e5f828201840152601f01601f1916010190565b9081602091031261063d57516001600160a01b038116810361063d5790565b67ffffffffffffffff80911680158015610a02575b6109f0575f1901908082116109dc576109c79116610a3b565b905460039190911b1c6001600160a01b031690565b634e487b7160e01b5f52601160045260245ffd5b60405163a9146eeb60e01b8152600490fd5b50816004541681116109ae565b6002546001600160a01b03163303610a2357565b60405163118cdaa760e01b8152336004820152602490fd5b600454811015610a705760045f527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b01905f90565b634e487b7160e01b5f52603260045260245ffd5b805f52600160205260405f2054155f14610aed575f54600160401b81101561092a5760018101805f55811015610a705781907f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e56301555f54905f52600160205260405f2055600190565b505f90565b805f52600560205260405f2054155f14610aed57600454600160401b81101561092a57806001610b259201600455610a3b565b81549060031b9083821b915f19901b1916179055600454905f52600560205260405f205560019056fe604060a08152346101df576105c38038038061001a816101e3565b92833981019082818303126101df5780516001600160a01b0392838216918281036101df5760208481015190946001600160401b0382116101df570182601f820112156101df57805161007461006f8261021c565b6101e3565b91818352868301948783830101116101df57815f9288809301875e83010152813b156101c7577f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b03199081168617909155937fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a25180156101bf575f809161012694845af43d156101b7573d9161011861006f8461021c565b9283523d5f8785013e610237565b505b336080527f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f847fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d610394855494825191861682523390820152a133156101a057163317905551610328908161029b82396080518160f10152f35b8351633173bdd160e11b81525f6004820152602490fd5b606091610237565b505050610128565b8651634c9c8ce360e01b815260048101859052602490fd5b5f80fd5b6040519190601f01601f191682016001600160401b0381118382101761020857604052565b634e487b7160e01b5f52604160045260245ffd5b6001600160401b03811161020857601f01601f191660200190565b9061025e575080511561024c57805190602001fd5b604051630a12f52160e11b8152600490fd5b81511580610291575b61026f575090565b604051639996b31560e01b81526001600160a01b039091166004820152602490fd5b50803b1561026756fe6080604052600436106101f4575f3560e01c634f1ef286036101f45734610086576040366003190112610086576004356001600160a01b0381168103610086576024359067ffffffffffffffff9081831161008657366023840112156100865782600401359182116100865736602483850101116100865760246100849301906100e5565b005b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b6040519190601f01601f1916820167ffffffffffffffff8111838210176100c457604052565b61008a565b67ffffffffffffffff81116100c457601f01601f191660200190565b916001600160a01b03907f0000000000000000000000000000000000000000000000000000000000000000821633036101e257610129610124826100c9565b61009e565b92818452368282011161008657815f926020928387013784010152823b156101c85782167f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc816bffffffffffffffffffffffff60a01b8254161790557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a28051156101bc576101b991610256565b50565b50506101c661023d565b565b604051634c9c8ce360e01b81529083166004820152602490fd5b6040516334ad5dbb60e21b8152600490fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc545f9081906001600160a01b0316368280378136915af43d5f803e15610239573d5ff35b3d5ffd5b3461024457565b60405163b398979f60e01b8152600490fd5b5f8061028893602081519101845af43d1561028b573d91610279610124846100c9565b9283523d5f602085013e61028f565b90565b6060915b906102b657508051156102a457805190602001fd5b604051630a12f52160e11b8152600490fd5b815115806102e9575b6102c7575090565b604051639996b31560e01b81526001600160a01b039091166004820152602490fd5b50803b156102bf56fea2646970667358221220e4b601c2ec49e682c0ca62793f6e49e9cf3d0831d0d275714dfb732e051370ff64736f6c63430008190033a26469706673582212205f7d4a94a94238e254e286eb2102f1702d8f89e0f9c3f1d8b2ae41b973dd956164736f6c63430008190033","sourceMap":"195:138:73:-:0;;;;;;;;;;;;;-1:-1:-1;;195:138:73;;;;-1:-1:-1;;;;;195:138:73;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;195:138:73;;;;;;;;;;1273:26:33;;1269:95;;3004:6;195:138:73;;-1:-1:-1;;;;;;195:138:73;;;;;;;;;;;3052:40:33;-1:-1:-1;;3052:40:33;195:138:73;;;;;;;1269:95:33;195:138:73;;-1:-1:-1;;;1322:31:33;;-1:-1:-1;1322:31:33;;;195:138:73;;;1322:31:33;195:138:73;-1:-1:-1;195:138:73;;;;;;-1:-1:-1;195:138:73;;;;;-1:-1:-1;195:138:73","linkReferences":{}},"deployedBytecode":{"object":"0x60406080815260049081361015610014575f80fd5b5f915f3560e01c90816314887c581461084a5781633ac04911146106dc57816358336662146104945781635cd8b15e1461047757816364dfea061461044f578163715018a6146103f25781638da5cb5b146103c95781639b19251a146102e3578163b42ba2a214610273578163b572a966146101b9578163b6caa1191461017c578163f2fde38b146100e8575063f9661602146100af575f80fd5b346100e45760203660031901126100e4576020906100d36100ce6108a3565b610999565b90516001600160a01b039091168152f35b5080fd5b9050346101785760203660031901126101785761010361088d565b9061010c610a0f565b6001600160a01b03918216928315610162575050600254826bffffffffffffffffffffffff60a01b821617600255167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a380f35b51631e4fbdf760e01b8152908101849052602490fd5b8280fd5b5050346100e45760203660031901126100e45760ff8160209367ffffffffffffffff6101a66108a3565b1681526003855220541690519015158152f35b91905034610178576020366003190112610178576101d56108a3565b916101de610a0f565b67ffffffffffffffff809316928315908115610266575b5061025857828452600360205260ff828520541661024a575081835260036020528220805460ff191660011790557ffc8245c2838846b295ae66fbe0d08e20c799b737c93b56f7b209df2e5fa2d4588280a280f35b905163f53de75f60e01b8152fd5b905163a9146eeb60e01b8152fd5b905081541683115f6101f5565b8284346102e05760203660031901126102e0575081355f548110156102cd575f80527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563015490516001600160a01b03909116815260209150f35b603283634e487b7160e01b5f525260245ffd5b80fd5b905034610178576020366003190112610178576102fe61088d565b91610307610a0f565b80516202dd3160ec1b81526001600160a01b03938416936020828581885afa9182156103bf57869261038e575b50309116036103815761034683610af2565b156103745750507feb73900b98b6a3e2b8b01708fe544760cf570d21e7fbe5225f24e48b5b2b432e8280a280f35b5163b73e95e160e01b8152fd5b5163340aafcd60e11b8152fd5b6103b191925060203d6020116103b8575b6103a98183610908565b81019061097a565b905f610334565b503d61039f565b83513d88823e3d90fd5b5050346100e457816003193601126100e45760025490516001600160a01b039091168152602090f35b83346102e057806003193601126102e05761040b610a0f565b600280546001600160a01b031981169091555f906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a380f35b8284346102e057806003193601126102e0575067ffffffffffffffff60209254169051908152f35b5050346100e457816003193601126100e457602091549051908152f35b83833461063d57606036600319011261063d576104af61088d565b6024359167ffffffffffffffff908184169182850361063d5760443581811161063d576104df90369089016108ba565b6001600160a01b039586165f81815260016020526040902054909792939290156106cc578451638da5cb5b60e01b81526020979088818d818d5afa9081156106c2575f916106a5575b5016330361069557845163054fd4d560e41b815287818c818c5afa90811561068b579084915f91610651575b5016861115610641576105696105a291610999565b916105948651958692630557c60960e31b8b85015289602485015288604485015260648401916108e8565b03601f198101855284610908565b863b1561063d57835163278f794360e11b8152925f91849182916105c991908d840161093e565b0381838a5af1801561063357610607575b5050519081527fb91c18bf7dbfdff96560fb98128531c4c6187079fe0bd7f24a81f54ea87f35a79190a280f35b9080929650116106205784529293505f928486806105da565b604186634e487b7160e01b5f525260245ffd5b83513d5f823e3d90fd5b5f80fd5b8451630384ebd960e41b81528a90fd5b809250898092503d8311610684575b61066a8183610908565b8101031261063d5751838116810361063d5783908c610554565b503d610660565b86513d5f823e3d90fd5b84516330cd747160e01b81528a90fd5b6106bc9150893d8b116103b8576103a98183610908565b8c610528565b87513d5f823e3d90fd5b845163e3fd10ff60e01b81528a90fd5b823461063d57606036600319011261063d576106f66108a3565b6001600160a01b03926024358481169081900361063d5760443567ffffffffffffffff80821161063d576107306107bf92369086016108ba565b92905f546107b389519260208401928352610785868b1693848d8701528960608701526080808701528561076860a082018b866108e8565b039561077c601f1997888101835282610908565b5190209a610999565b968b519889946315fb20f360e21b6020870152602486015260448501526060606485015260848401916108e8565b03908101855284610908565b8551936105c39081860192868410908411176108375750918493916107e893610b4f863961093e565b03905ff591821561082d57602092169061080182610a84565b505190807fb919910dcefbf753bfd926ab3b1d3f85d877190c3d01ba1bd585047b99b99f0b5f80a28152f35b50513d5f823e3d90fd5b604190634e487b7160e01b5f525260245ffd5b823461063d57602036600319011261063d576020906108846001600160a01b0361087261088d565b165f52600160205260405f2054151590565b90519015158152f35b600435906001600160a01b038216820361063d57565b6004359067ffffffffffffffff8216820361063d57565b9181601f8401121561063d5782359167ffffffffffffffff831161063d576020838186019501011161063d57565b908060209392818452848401375f828201840152601f01601f1916010190565b90601f8019910116810190811067ffffffffffffffff82111761092a57604052565b634e487b7160e01b5f52604160045260245ffd5b6001600160a01b0390911681526040602080830182905283519183018290526060938291018484015e5f828201840152601f01601f1916010190565b9081602091031261063d57516001600160a01b038116810361063d5790565b67ffffffffffffffff80911680158015610a02575b6109f0575f1901908082116109dc576109c79116610a3b565b905460039190911b1c6001600160a01b031690565b634e487b7160e01b5f52601160045260245ffd5b60405163a9146eeb60e01b8152600490fd5b50816004541681116109ae565b6002546001600160a01b03163303610a2357565b60405163118cdaa760e01b8152336004820152602490fd5b600454811015610a705760045f527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b01905f90565b634e487b7160e01b5f52603260045260245ffd5b805f52600160205260405f2054155f14610aed575f54600160401b81101561092a5760018101805f55811015610a705781907f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e56301555f54905f52600160205260405f2055600190565b505f90565b805f52600560205260405f2054155f14610aed57600454600160401b81101561092a57806001610b259201600455610a3b565b81549060031b9083821b915f19901b1916179055600454905f52600560205260405f205560019056fe604060a08152346101df576105c38038038061001a816101e3565b92833981019082818303126101df5780516001600160a01b0392838216918281036101df5760208481015190946001600160401b0382116101df570182601f820112156101df57805161007461006f8261021c565b6101e3565b91818352868301948783830101116101df57815f9288809301875e83010152813b156101c7577f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b03199081168617909155937fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a25180156101bf575f809161012694845af43d156101b7573d9161011861006f8461021c565b9283523d5f8785013e610237565b505b336080527f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f847fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d610394855494825191861682523390820152a133156101a057163317905551610328908161029b82396080518160f10152f35b8351633173bdd160e11b81525f6004820152602490fd5b606091610237565b505050610128565b8651634c9c8ce360e01b815260048101859052602490fd5b5f80fd5b6040519190601f01601f191682016001600160401b0381118382101761020857604052565b634e487b7160e01b5f52604160045260245ffd5b6001600160401b03811161020857601f01601f191660200190565b9061025e575080511561024c57805190602001fd5b604051630a12f52160e11b8152600490fd5b81511580610291575b61026f575090565b604051639996b31560e01b81526001600160a01b039091166004820152602490fd5b50803b1561026756fe6080604052600436106101f4575f3560e01c634f1ef286036101f45734610086576040366003190112610086576004356001600160a01b0381168103610086576024359067ffffffffffffffff9081831161008657366023840112156100865782600401359182116100865736602483850101116100865760246100849301906100e5565b005b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b6040519190601f01601f1916820167ffffffffffffffff8111838210176100c457604052565b61008a565b67ffffffffffffffff81116100c457601f01601f191660200190565b916001600160a01b03907f0000000000000000000000000000000000000000000000000000000000000000821633036101e257610129610124826100c9565b61009e565b92818452368282011161008657815f926020928387013784010152823b156101c85782167f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc816bffffffffffffffffffffffff60a01b8254161790557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a28051156101bc576101b991610256565b50565b50506101c661023d565b565b604051634c9c8ce360e01b81529083166004820152602490fd5b6040516334ad5dbb60e21b8152600490fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc545f9081906001600160a01b0316368280378136915af43d5f803e15610239573d5ff35b3d5ffd5b3461024457565b60405163b398979f60e01b8152600490fd5b5f8061028893602081519101845af43d1561028b573d91610279610124846100c9565b9283523d5f602085013e61028f565b90565b6060915b906102b657508051156102a457805190602001fd5b604051630a12f52160e11b8152600490fd5b815115806102e9575b6102c7575090565b604051639996b31560e01b81526001600160a01b039091166004820152602490fd5b50803b156102bf56fea2646970667358221220e4b601c2ec49e682c0ca62793f6e49e9cf3d0831d0d275714dfb732e051370ff64736f6c63430008190033a26469706673582212205f7d4a94a94238e254e286eb2102f1702d8f89e0f9c3f1d8b2ae41b973dd956164736f6c63430008190033","sourceMap":"195:138:73:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;195:138:73;;;;;;1576:7:78;195:138:73;;:::i;:::-;1576:7:78;:::i;:::-;195:138:73;;-1:-1:-1;;;;;195:138:73;;;;;;;;;;;;;;;;;;-1:-1:-1;;195:138:73;;;;;;:::i;:::-;1500:62:33;;;:::i;:::-;-1:-1:-1;;;;;195:138:73;;;;2627:22:33;;2623:91;;195:138:73;;3004:6:33;195:138:73;;;;;;;;3004:6:33;195:138:73;;3052:40:33;195:138:73;3052:40:33;;195:138:73;;2623:91:33;195:138:73;-1:-1:-1;;;2672:31:33;;;;;195:138:73;;;;;2672:31:33;195:138:73;;;;;;;;;;;;-1:-1:-1;;195:138:73;;;;;;;;;;;:::i;:::-;;;;869:56:78;195:138:73;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;195:138:73;;;;;;:::i;:::-;1500:62:33;;;:::i;:::-;195:138:73;;;;1065:12:78;;;:39;;;;;195:138:73;1061:93:78;;;195:138:73;;;2251:11:78;195:138:73;;;;;;;;2247:78:78;;-1:-1:-1;195:138:73;;;2251:11:78;195:138:73;;;;;;-1:-1:-1;;195:138:73;2358:4:78;195:138:73;;;2378:18:78;195:138:73;;2378:18:78;195:138:73;;2247:78:78;195:138:73;;-1:-1:-1;;;2294:20:78;;;1061:93;195:138:73;;-1:-1:-1;;;1127:16:78;;;1065:39;195:138:73;;;;;1081:23:78;;1065:39;;;195:138:73;;;;;;;;-1:-1:-1;;195:138:73;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;195:138:73;;;;;;;-1:-1:-1;195:138:73;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;195:138:73;;;;;;:::i;:::-;1500:62:33;;;:::i;:::-;195:138:73;;-1:-1:-1;;;1804:44:78;;-1:-1:-1;;;;;195:138:73;;;;;;1804:44:78;195:138:73;;1804:44:78;;;;;;;;;;;195:138:73;1860:4:78;;195:138:73;;1804:61:78;1800:122;;8409:50:62;;;:::i;:::-;1935:49:78;1931:107;;2053:26;;;;;;195:138:73;;1931:107:78;195:138:73;-1:-1:-1;;;2007:20:78;;;1800:122;195:138:73;-1:-1:-1;;;1888:23:78;;;1804:44;;;;;195:138:73;1804:44:78;195:138:73;1804:44:78;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;195:138:73;;;;;;;;;;;;;;;;;;;;;;;1710:6:33;195:138:73;;;-1:-1:-1;;;;;195:138:73;;;;;;;;;;;;;;;;;;;;;1500:62:33;;:::i;:::-;3004:6;195:138:73;;-1:-1:-1;;;;;;195:138:73;;;;;;;-1:-1:-1;;;;;195:138:73;3052:40:33;195:138:73;;3052:40:33;195:138:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;195:138:73;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;195:138:73;;;;;;;;;;;;;;;;;;;8974:55:62;4360:26;1185:72:79;;195:138:73;;-1:-1:-1;;;3069:24:78;;195:138:73;;;;;3069:24:78;195:138:73;3069:24:78;;;;;;;;195:138:73;3069:24:78;;;195:138:73;;;3055:10:78;:38;3051:86;;195:138:73;;-1:-1:-1;;;3165:36:78;;;195:138:73;3165:36:78;195:138:73;3165:36:78;;;;;;;;;;;195:138:73;3165:36:78;;;195:138:73;;;3151:50:78;;;3147:100;;1576:7;3347:61;1576:7;;:::i;:::-;195:138:73;;;;3347:61:78;;;;;;;;;;;195:138:73;3347:61:78;;195:138:73;;;;;;;;;;;:::i;:::-;3347:61:78;2651:50;;3347:61;;;;;;:::i;:::-;3257:161;;;;;195:138:73;;-1:-1:-1;;;3257:161:78;;195:138:73;;;;;;;3257:161:78;;195:138:73;3257:161:78;;;;:::i;:::-;;;;;;;;;;;;;195:138:73;-1:-1:-1;;195:138:73;;;;3434:28:78;;195:138:73;3434:28:78;195:138:73;;3257:161:78;195:138:73;;;;;;;;;;;;-1:-1:-1;195:138:73;;;3257:161:78;;;;195:138:73;;;;;;;;;;;;3257:161:78;195:138:73;;;;;;;;;3257:161:78;195:138:73;;;3147:100:78;195:138:73;;-1:-1:-1;;;3224:12:78;;195:138:73;;3224:12:78;3165:36;;;;;;;;;;;;;;;;;;:::i;:::-;;;195:138:73;;;;;;;;;;;;3165:36:78;;;;;;;;;;;195:138:73;;;;;;;;;3051:86:78;195:138:73;;-1:-1:-1;;;3116:10:78;;195:138:73;;3116:10:78;3069:24;;;;;;;;;;;;;;:::i;:::-;;;;;195:138:73;;;;;;;;;1185:72:79;195:138:73;;-1:-1:-1;;;1230:16:79;;195:138:73;;1230:16:79;195:138:73;;;;;;;-1:-1:-1;;195:138:73;;;;;;:::i;:::-;-1:-1:-1;;;;;195:138:73;;;;;;;;;;;;;;;;;;;;;2746:69:78;195:138:73;;;;;;:::i;:::-;;;;;;;;2651:50:78;195:138:73;2651:50:78;;195:138:73;;;1576:7:78;195:138:73;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2651:50:78;;;;;;;;;;;;;:::i;:::-;195:138:73;2641:61:78;;1576:7;;:::i;:::-;195:138:73;;;2746:69:78;;;;;;195:138:73;2746:69:78;;;195:138:73;2746:69:78;;195:138:73;;;;;;;;;;;;;;;:::i;:::-;2746:69:78;;;;;;;;:::i;:::-;195:138:73;;2609:220:78;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;195:138:73;2609:220:78;;;;;;195:138:73;;;8409:50:62;;;;:::i;:::-;;195:138:73;1077:18:79;;;195:138:73;1077:18:79;;195:138:73;;;2609:220:78;195:138:73;;;;;;;;;2609:220:78;195:138:73;;;;;;;;;;;;;;;;;;-1:-1:-1;;195:138:73;;;;;;8974:55:62;-1:-1:-1;;;;;195:138:73;;:::i;:::-;;;;4360:14:62;195:138:73;;;;;;4360:26:62;;4264:129;;8974:55;195:138:73;;;;;;;;;;;;-1:-1:-1;;;;;195:138:73;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;195:138:73;;;;;;;;-1:-1:-1;;195:138:73;;;;:::o;:::-;;;2651:50:78;;195:138:73;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;195:138:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;195:138:73;;;;:::o;:::-;;;;;;;;;;-1:-1:-1;;;;;195:138:73;;;;;;;:::o;999:172:78:-;195:138:73;;;;1065:12:78;;:39;;;;999:172;1061:93;;-1:-1:-1;;195:138:73;;;;;;;5016:18:62;195:138:73;;5016:18:62;:::i;:::-;195:138:73;;;;;;;;-1:-1:-1;;;;;195:138:73;;999:172:78:o;195:138:73:-;;;;;;;1602:27:78;195:138:73;;;;1061:93:78;195:138:73;;-1:-1:-1;;;1127:16:78;;;;;1065:39;195:138:73;;1374:27:78;195:138:73;;1081:23:78;;1065:39;;1796:162:33;1710:6;195:138:73;-1:-1:-1;;;;;195:138:73;735:10:48;1855:23:33;1851:101;;1796:162::o;1851:101::-;195:138:73;;-1:-1:-1;;;1901:40:33;;735:10:48;1901:40:33;;;195:138:73;;;1901:40:33;195:138:73;1602:27:78;195:138:73;;;;;;1602:27:78;-1:-1:-1;195:138:73;;;;-1:-1:-1;195:138:73;:::o;:::-;;;;;;;1602:27:78;195:138:73;;;;2241:406:62;195:138:73;;;4360:14:62;195:138:73;;;;;;4360:26:62;2320:321;195:138:73;;;;;-1:-1:-1;;;195:138:73;;;;;4360:14:62;195:138:73;;;;;;;;;;;;;;;;;;;;4360:14:62;195:138:73;;;;;;4360:14:62;2576:11;:::o;2320:321::-;2618:12;195:138:73;2618:12:62;:::o;2241:406::-;195:138:73;-1:-1:-1;195:138:73;4360:14:62;195:138:73;;;-1:-1:-1;195:138:73;;4360:26:62;2320:321;195:138:73;;;;;-1:-1:-1;;;195:138:73;;;;;;4360:14:62;195:138:73;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;195:138:73;4360:14:62;195:138:73;;;-1:-1:-1;195:138:73;;4360:14:62;2576:11;:::o","linkReferences":{}},"methodIdentifiers":{"blacklist(uint64)":"b572a966","blacklisted(uint64)":"b6caa119","create(uint64,address,bytes)":"3ac04911","entity(uint256)":"b42ba2a2","implementation(uint64)":"f9661602","isEntity(address)":"14887c58","lastVersion()":"64dfea06","migrate(address,uint64,bytes)":"58336662","owner()":"8da5cb5b","renounceOwnership()":"715018a6","totalEntities()":"5cd8b15e","transferOwnership(address)":"f2fde38b","whitelist(address)":"9b19251a"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner_\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"AlreadyBlacklisted\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AlreadyWhitelisted\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"EntityNotExist\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidImplementation\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidVersion\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotOwner\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OldVersion\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"entity\",\"type\":\"address\"}],\"name\":\"AddEntity\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Blacklist\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"entity\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"newVersion\",\"type\":\"uint64\"}],\"name\":\"Migrate\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"Whitelist\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"blacklist\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"blacklisted\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"value\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"owner_\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"create\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"entity_\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"entity\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"implementation\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"entity_\",\"type\":\"address\"}],\"name\":\"isEntity\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"lastVersion\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"entity_\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"newVersion\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"migrate\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalEntities\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"implementation_\",\"type\":\"address\"}],\"name\":\"whitelist\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}]},\"events\":{\"AddEntity(address)\":{\"params\":{\"entity\":\"address of the added entity\"}},\"Blacklist(uint64)\":{\"details\":\"The given version is still deployable.\",\"params\":{\"version\":\"version that was blacklisted\"}},\"Migrate(address,uint64)\":{\"params\":{\"entity\":\"address of the entity\",\"newVersion\":\"new version of the entity\"}},\"Whitelist(address)\":{\"params\":{\"implementation\":\"address of the new implementation\"}}},\"kind\":\"dev\",\"methods\":{\"blacklist(uint64)\":{\"details\":\"The given version will still be deployable.\",\"params\":{\"version\":\"version to blacklist\"}},\"create(uint64,address,bytes)\":{\"details\":\"CREATE2 salt is constructed from the given parameters.\",\"params\":{\"data\":\"initial data for the entity creation\",\"owner\":\"initial owner of the entity\",\"version\":\"entity's version to use\"},\"returns\":{\"entity_\":\"address of the entity\"}},\"entity(uint256)\":{\"params\":{\"index\":\"index of the entity to get\"},\"returns\":{\"_0\":\"address of the entity\"}},\"implementation(uint64)\":{\"details\":\"Reverts when an invalid version.\",\"params\":{\"version\":\"version to get the implementation for\"},\"returns\":{\"_0\":\"address of the implementation\"}},\"isEntity(address)\":{\"params\":{\"account\":\"address to check\"},\"returns\":{\"_0\":\"if the given address is an entity\"}},\"lastVersion()\":{\"details\":\"If zero, no implementations are whitelisted.\",\"returns\":{\"_0\":\"version of the last implementation\"}},\"migrate(address,uint64,bytes)\":{\"details\":\"Only the entity's owner can call this function.\",\"params\":{\"data\":\"some data to reinitialize the contract with\",\"entity\":\"address of the entity to migrate\",\"newVersion\":\"new version to migrate to\"}},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"totalEntities()\":{\"returns\":{\"_0\":\"total number of entities added\"}},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"},\"whitelist(address)\":{\"params\":{\"implementation\":\"address of the new implementation\"}}},\"version\":1},\"userdoc\":{\"events\":{\"AddEntity(address)\":{\"notice\":\"Emitted when an entity is added.\"},\"Blacklist(uint64)\":{\"notice\":\"Emitted when a version is blacklisted (e.g., in case of invalid implementation).\"},\"Migrate(address,uint64)\":{\"notice\":\"Emitted when an entity is migrated to a new version.\"},\"Whitelist(address)\":{\"notice\":\"Emitted when a new implementation is whitelisted.\"}},\"kind\":\"user\",\"methods\":{\"blacklist(uint64)\":{\"notice\":\"Blacklist a version of entities.\"},\"blacklisted(uint64)\":{\"notice\":\"Get if a version is blacklisted (e.g., in case of invalid implementation).\"},\"create(uint64,address,bytes)\":{\"notice\":\"Create a new entity at the factory.\"},\"entity(uint256)\":{\"notice\":\"Get an entity given its index.\"},\"implementation(uint64)\":{\"notice\":\"Get the implementation for a given version.\"},\"isEntity(address)\":{\"notice\":\"Get if a given address is an entity.\"},\"lastVersion()\":{\"notice\":\"Get the last available version.\"},\"migrate(address,uint64,bytes)\":{\"notice\":\"Migrate a given entity to a given newer version.\"},\"totalEntities()\":{\"notice\":\"Get a total number of entities.\"},\"whitelist(address)\":{\"notice\":\"Whitelist a new implementation for entities.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/contracts/VaultFactory.sol\":\"VaultFactory\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Proxy.sol\":{\"keccak256\":\"0xbfb6695731de677140fbf76c772ab08c4233a122fb51ac28ac120fc49bbbc4ec\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://68f8fded7cc318efa15874b7c6a983fe17a4a955d72d240353a9a4ca1e1b824c\",\"dweb:/ipfs/QmdcmBL9Qo4Tk3Dby4wFYabGyot9JNeLPxpSXZUgUm92BV\"]},\"lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol\":{\"keccak256\":\"0x06a78f9b3ee3e6d0eb4e4cd635ba49960bea34cac1db8c0a27c75f2319f1fd65\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://547d21aa17f4f3f1a1a7edf7167beff8dd9496a0348d5588f15cc8a4b29d052a\",\"dweb:/ipfs/QmT16JtRQSWNpLo9W23jr6CzaMuTAcQcjJJcdRd8HLJ6cE\"]},\"lib/openzeppelin-contracts/contracts/proxy/Proxy.sol\":{\"keccak256\":\"0xc3f2ec76a3de8ed7a7007c46166f5550c72c7709e3fc7e8bb3111a7191cdedbd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e73efb4c2ca655882dc237c6b4f234a9bd36d97159d8fcaa837eb01171f726ac\",\"dweb:/ipfs/QmTNnnv7Gu5fs5G1ZMh7Fexp8N4XUs3XrNAngjcxgiss3e\"]},\"lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0xc59a78b07b44b2cf2e8ab4175fca91e8eca1eee2df7357b8d2a8833e5ea1f64c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5aa4f07e65444784c29cd7bfcc2341b34381e4e5b5da9f0c5bd00d7f430e66fa\",\"dweb:/ipfs/QmWRMh4Q9DpaU9GvsiXmDdoNYMyyece9if7hnfLz7uqzWM\"]},\"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\"]},\"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0x32ba59b4b7299237c8ba56319110989d7978a039faf754793064e967e5894418\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1ae50c8b562427df610cc4540c9bf104acca7ef8e2dcae567ae7e52272281e9c\",\"dweb:/ipfs/QmTHiadFCSJUPpRjNegc5SahmeU8bAoY8i9Aq6tVscbcKR\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0x86c1470cbfd878491e5de030072b647352d36bd27122cffb928970b1945282aa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ad85dd393ee0a1917c57046abc5155f51f77844b2c6a42c05c1b8dd26d6ff3c1\",\"dweb:/ipfs/QmNqYc8To2NdnpP6E1tGz7t6A7beuENde5yovwov5pW1fA\"]},\"src/contracts/VaultFactory.sol\":{\"keccak256\":\"0xa9122dd11e5f21fa97a813e90f8c4905f0a4967b9611dd03437a31377cbdecb8\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://4c2feda1f9c0c7ddf65bccdc99494e4bfbb820fcddc3e4222e3b58ef821424a3\",\"dweb:/ipfs/Qmdmt4rH214jDmDsF9ELvJXVCt8abhk6poSmhJqqzLse3R\"]},\"src/contracts/common/MigratableEntityProxy.sol\":{\"keccak256\":\"0x78ba27242276232ad10a45265e3c07f0a25722456f6abb3fb3f24a1c8e1b38d1\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://a19623df688e5085036b59fc934e35b72997f875d7ffda1cdc557c6ca468206d\",\"dweb:/ipfs/QmaQiT5uYZu5JmqhMjTDJnsq3nqaHbKrWAjrxKKLesdHV7\"]},\"src/contracts/common/MigratablesFactory.sol\":{\"keccak256\":\"0x5d1487c3456da4bd0bc2a131eeab97ab92484c923edefaebf190cc08d4080093\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://fec38d2e52e9c5148e95599c133fd6fe66d41296d6fc06e7329d2db199a1798f\",\"dweb:/ipfs/QmeiaydBXHHkJRUnpaZH1C6JQ7HPocTvQbUJBqKTvUeEYv\"]},\"src/contracts/common/Registry.sol\":{\"keccak256\":\"0x4a4004836d920953a8ec6e223de9a330f43acf7a5b93c6b8b3e4a95e0f129889\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://e8bdda207f3852c683a2b481602239a914f7e26bcd042ade618e263a43b67652\",\"dweb:/ipfs/Qmb8GZykJWxZcfwNp3SqhFizDFydFuV6LXgemV3vnWyLyu\"]},\"src/interfaces/IVaultFactory.sol\":{\"keccak256\":\"0x6f658b264fc8d530e458a98d83a09cb55ace4d3e509f0a3e9294471bb1bcf84d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a7253435e4e1d1ae19a50d14091ddb254f6a36f296440106bfc094623dd1aeba\",\"dweb:/ipfs/QmbHK9yoQ7Ctf3nuDLmqxTWPYD8cEm1TKXzfxePtE87AQN\"]},\"src/interfaces/common/IMigratableEntity.sol\":{\"keccak256\":\"0x8f5f2809f3afbe8ebfbb365dd7b57b4dd3b6f9943a6187eaf648d45895b8e3c4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ffe640537d539e7a4fde70d30d3e4c57f4ba9c2c25c450cea713aae38e8fd5c\",\"dweb:/ipfs/QmSUTGzvdcn1R1KB7tLThMRtESsfPbeXDhhhKWGtntzBds\"]},\"src/interfaces/common/IMigratableEntityProxy.sol\":{\"keccak256\":\"0x9030ced51ad12e0b3ddaa11bba4a3adcfa29e67b909c46065c14b19d158bb9fd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2d859c21510d1a0f06a71abe21dc6424608c1b2e3194a10e4df4cc88c4de9e9f\",\"dweb:/ipfs/QmNi6Buri2oaujc4vTv6bZ5mgMKFsjUmYmQLUNaDCXFEEt\"]},\"src/interfaces/common/IMigratablesFactory.sol\":{\"keccak256\":\"0xd4dfe9449bf005dbcbab9e0e85eaaca15a601ff971f34182a0b1832dc4b9d124\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ff8b73285192a9c64160b008d23a09da33e7164d10a9dc29d1a4464bd9c02be5\",\"dweb:/ipfs/QmZQW2LLV4dQfJ3coENKeycbzXJzi7zdvupsqWA4UV29Gq\"]},\"src/interfaces/common/IRegistry.sol\":{\"keccak256\":\"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014\",\"dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.25+commit.b61c2a91"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"owner_","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"AlreadyBlacklisted"},{"inputs":[],"type":"error","name":"AlreadyWhitelisted"},{"inputs":[],"type":"error","name":"EntityNotExist"},{"inputs":[],"type":"error","name":"InvalidImplementation"},{"inputs":[],"type":"error","name":"InvalidVersion"},{"inputs":[],"type":"error","name":"NotOwner"},{"inputs":[],"type":"error","name":"OldVersion"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"OwnableInvalidOwner"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"OwnableUnauthorizedAccount"},{"inputs":[{"internalType":"address","name":"entity","type":"address","indexed":true}],"type":"event","name":"AddEntity","anonymous":false},{"inputs":[{"internalType":"uint64","name":"version","type":"uint64","indexed":true}],"type":"event","name":"Blacklist","anonymous":false},{"inputs":[{"internalType":"address","name":"entity","type":"address","indexed":true},{"internalType":"uint64","name":"newVersion","type":"uint64","indexed":false}],"type":"event","name":"Migrate","anonymous":false},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"address","name":"implementation","type":"address","indexed":true}],"type":"event","name":"Whitelist","anonymous":false},{"inputs":[{"internalType":"uint64","name":"version","type":"uint64"}],"stateMutability":"nonpayable","type":"function","name":"blacklist"},{"inputs":[{"internalType":"uint64","name":"version","type":"uint64"}],"stateMutability":"view","type":"function","name":"blacklisted","outputs":[{"internalType":"bool","name":"value","type":"bool"}]},{"inputs":[{"internalType":"uint64","name":"version","type":"uint64"},{"internalType":"address","name":"owner_","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"create","outputs":[{"internalType":"address","name":"entity_","type":"address"}]},{"inputs":[{"internalType":"uint256","name":"index","type":"uint256"}],"stateMutability":"view","type":"function","name":"entity","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"uint64","name":"version","type":"uint64"}],"stateMutability":"view","type":"function","name":"implementation","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"entity_","type":"address"}],"stateMutability":"view","type":"function","name":"isEntity","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"lastVersion","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[{"internalType":"address","name":"entity_","type":"address"},{"internalType":"uint64","name":"newVersion","type":"uint64"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"migrate"},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[],"stateMutability":"view","type":"function","name":"totalEntities","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"},{"inputs":[{"internalType":"address","name":"implementation_","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"whitelist"}],"devdoc":{"kind":"dev","methods":{"blacklist(uint64)":{"details":"The given version will still be deployable.","params":{"version":"version to blacklist"}},"create(uint64,address,bytes)":{"details":"CREATE2 salt is constructed from the given parameters.","params":{"data":"initial data for the entity creation","owner":"initial owner of the entity","version":"entity's version to use"},"returns":{"entity_":"address of the entity"}},"entity(uint256)":{"params":{"index":"index of the entity to get"},"returns":{"_0":"address of the entity"}},"implementation(uint64)":{"details":"Reverts when an invalid version.","params":{"version":"version to get the implementation for"},"returns":{"_0":"address of the implementation"}},"isEntity(address)":{"params":{"account":"address to check"},"returns":{"_0":"if the given address is an entity"}},"lastVersion()":{"details":"If zero, no implementations are whitelisted.","returns":{"_0":"version of the last implementation"}},"migrate(address,uint64,bytes)":{"details":"Only the entity's owner can call this function.","params":{"data":"some data to reinitialize the contract with","entity":"address of the entity to migrate","newVersion":"new version to migrate to"}},"owner()":{"details":"Returns the address of the current owner."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner."},"totalEntities()":{"returns":{"_0":"total number of entities added"}},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."},"whitelist(address)":{"params":{"implementation":"address of the new implementation"}}},"version":1},"userdoc":{"kind":"user","methods":{"blacklist(uint64)":{"notice":"Blacklist a version of entities."},"blacklisted(uint64)":{"notice":"Get if a version is blacklisted (e.g., in case of invalid implementation)."},"create(uint64,address,bytes)":{"notice":"Create a new entity at the factory."},"entity(uint256)":{"notice":"Get an entity given its index."},"implementation(uint64)":{"notice":"Get the implementation for a given version."},"isEntity(address)":{"notice":"Get if a given address is an entity."},"lastVersion()":{"notice":"Get the last available version."},"migrate(address,uint64,bytes)":{"notice":"Migrate a given entity to a given newer version."},"totalEntities()":{"notice":"Get a total number of entities."},"whitelist(address)":{"notice":"Whitelist a new implementation for entities."}},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/contracts/VaultFactory.sol":"VaultFactory"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts/contracts/access/Ownable.sol":{"keccak256":"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb","urls":["bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6","dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Proxy.sol":{"keccak256":"0xbfb6695731de677140fbf76c772ab08c4233a122fb51ac28ac120fc49bbbc4ec","urls":["bzz-raw://68f8fded7cc318efa15874b7c6a983fe17a4a955d72d240353a9a4ca1e1b824c","dweb:/ipfs/QmdcmBL9Qo4Tk3Dby4wFYabGyot9JNeLPxpSXZUgUm92BV"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol":{"keccak256":"0x06a78f9b3ee3e6d0eb4e4cd635ba49960bea34cac1db8c0a27c75f2319f1fd65","urls":["bzz-raw://547d21aa17f4f3f1a1a7edf7167beff8dd9496a0348d5588f15cc8a4b29d052a","dweb:/ipfs/QmT16JtRQSWNpLo9W23jr6CzaMuTAcQcjJJcdRd8HLJ6cE"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/Proxy.sol":{"keccak256":"0xc3f2ec76a3de8ed7a7007c46166f5550c72c7709e3fc7e8bb3111a7191cdedbd","urls":["bzz-raw://e73efb4c2ca655882dc237c6b4f234a9bd36d97159d8fcaa837eb01171f726ac","dweb:/ipfs/QmTNnnv7Gu5fs5G1ZMh7Fexp8N4XUs3XrNAngjcxgiss3e"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol":{"keccak256":"0xc59a78b07b44b2cf2e8ab4175fca91e8eca1eee2df7357b8d2a8833e5ea1f64c","urls":["bzz-raw://5aa4f07e65444784c29cd7bfcc2341b34381e4e5b5da9f0c5bd00d7f430e66fa","dweb:/ipfs/QmWRMh4Q9DpaU9GvsiXmDdoNYMyyece9if7hnfLz7uqzWM"],"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"},"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol":{"keccak256":"0x32ba59b4b7299237c8ba56319110989d7978a039faf754793064e967e5894418","urls":["bzz-raw://1ae50c8b562427df610cc4540c9bf104acca7ef8e2dcae567ae7e52272281e9c","dweb:/ipfs/QmTHiadFCSJUPpRjNegc5SahmeU8bAoY8i9Aq6tVscbcKR"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0x86c1470cbfd878491e5de030072b647352d36bd27122cffb928970b1945282aa","urls":["bzz-raw://ad85dd393ee0a1917c57046abc5155f51f77844b2c6a42c05c1b8dd26d6ff3c1","dweb:/ipfs/QmNqYc8To2NdnpP6E1tGz7t6A7beuENde5yovwov5pW1fA"],"license":"MIT"},"src/contracts/VaultFactory.sol":{"keccak256":"0xa9122dd11e5f21fa97a813e90f8c4905f0a4967b9611dd03437a31377cbdecb8","urls":["bzz-raw://4c2feda1f9c0c7ddf65bccdc99494e4bfbb820fcddc3e4222e3b58ef821424a3","dweb:/ipfs/Qmdmt4rH214jDmDsF9ELvJXVCt8abhk6poSmhJqqzLse3R"],"license":"BUSL-1.1"},"src/contracts/common/MigratableEntityProxy.sol":{"keccak256":"0x78ba27242276232ad10a45265e3c07f0a25722456f6abb3fb3f24a1c8e1b38d1","urls":["bzz-raw://a19623df688e5085036b59fc934e35b72997f875d7ffda1cdc557c6ca468206d","dweb:/ipfs/QmaQiT5uYZu5JmqhMjTDJnsq3nqaHbKrWAjrxKKLesdHV7"],"license":"BUSL-1.1"},"src/contracts/common/MigratablesFactory.sol":{"keccak256":"0x5d1487c3456da4bd0bc2a131eeab97ab92484c923edefaebf190cc08d4080093","urls":["bzz-raw://fec38d2e52e9c5148e95599c133fd6fe66d41296d6fc06e7329d2db199a1798f","dweb:/ipfs/QmeiaydBXHHkJRUnpaZH1C6JQ7HPocTvQbUJBqKTvUeEYv"],"license":"BUSL-1.1"},"src/contracts/common/Registry.sol":{"keccak256":"0x4a4004836d920953a8ec6e223de9a330f43acf7a5b93c6b8b3e4a95e0f129889","urls":["bzz-raw://e8bdda207f3852c683a2b481602239a914f7e26bcd042ade618e263a43b67652","dweb:/ipfs/Qmb8GZykJWxZcfwNp3SqhFizDFydFuV6LXgemV3vnWyLyu"],"license":"BUSL-1.1"},"src/interfaces/IVaultFactory.sol":{"keccak256":"0x6f658b264fc8d530e458a98d83a09cb55ace4d3e509f0a3e9294471bb1bcf84d","urls":["bzz-raw://a7253435e4e1d1ae19a50d14091ddb254f6a36f296440106bfc094623dd1aeba","dweb:/ipfs/QmbHK9yoQ7Ctf3nuDLmqxTWPYD8cEm1TKXzfxePtE87AQN"],"license":"MIT"},"src/interfaces/common/IMigratableEntity.sol":{"keccak256":"0x8f5f2809f3afbe8ebfbb365dd7b57b4dd3b6f9943a6187eaf648d45895b8e3c4","urls":["bzz-raw://0ffe640537d539e7a4fde70d30d3e4c57f4ba9c2c25c450cea713aae38e8fd5c","dweb:/ipfs/QmSUTGzvdcn1R1KB7tLThMRtESsfPbeXDhhhKWGtntzBds"],"license":"MIT"},"src/interfaces/common/IMigratableEntityProxy.sol":{"keccak256":"0x9030ced51ad12e0b3ddaa11bba4a3adcfa29e67b909c46065c14b19d158bb9fd","urls":["bzz-raw://2d859c21510d1a0f06a71abe21dc6424608c1b2e3194a10e4df4cc88c4de9e9f","dweb:/ipfs/QmNi6Buri2oaujc4vTv6bZ5mgMKFsjUmYmQLUNaDCXFEEt"],"license":"MIT"},"src/interfaces/common/IMigratablesFactory.sol":{"keccak256":"0xd4dfe9449bf005dbcbab9e0e85eaaca15a601ff971f34182a0b1832dc4b9d124","urls":["bzz-raw://ff8b73285192a9c64160b008d23a09da33e7164d10a9dc29d1a4464bd9c02be5","dweb:/ipfs/QmZQW2LLV4dQfJ3coENKeycbzXJzi7zdvupsqWA4UV29Gq"],"license":"MIT"},"src/interfaces/common/IRegistry.sol":{"keccak256":"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb","urls":["bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014","dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK"],"license":"MIT"}},"version":1},"id":73} \ No newline at end of file +{"abi":[{"type":"constructor","inputs":[{"name":"owner_","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"blacklist","inputs":[{"name":"version","type":"uint64","internalType":"uint64"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"blacklisted","inputs":[{"name":"version","type":"uint64","internalType":"uint64"}],"outputs":[{"name":"value","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"create","inputs":[{"name":"version","type":"uint64","internalType":"uint64"},{"name":"owner_","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"entity_","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"entity","inputs":[{"name":"index","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"implementation","inputs":[{"name":"version","type":"uint64","internalType":"uint64"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"isEntity","inputs":[{"name":"entity_","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"lastVersion","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"migrate","inputs":[{"name":"entity_","type":"address","internalType":"address"},{"name":"newVersion","type":"uint64","internalType":"uint64"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"totalEntities","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"whitelist","inputs":[{"name":"implementation_","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"AddEntity","inputs":[{"name":"entity","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Blacklist","inputs":[{"name":"version","type":"uint64","indexed":true,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"Migrate","inputs":[{"name":"entity","type":"address","indexed":true,"internalType":"address"},{"name":"newVersion","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Whitelist","inputs":[{"name":"implementation","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"error","name":"AlreadyBlacklisted","inputs":[]},{"type":"error","name":"AlreadyWhitelisted","inputs":[]},{"type":"error","name":"EntityNotExist","inputs":[]},{"type":"error","name":"InvalidImplementation","inputs":[]},{"type":"error","name":"InvalidVersion","inputs":[]},{"type":"error","name":"NotOwner","inputs":[]},{"type":"error","name":"OldVersion","inputs":[]},{"type":"error","name":"OwnableInvalidOwner","inputs":[{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"OwnableUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"}]}],"bytecode":{"object":"0x60803460b557601f61121538819003918201601f19168301916001600160401b0383118484101760b95780849260209460405283398101031260b557516001600160a01b03908181169081900360b5578015609d57600280546001600160a01b03198116831790915560405192167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a361114790816100ce8239f35b604051631e4fbdf760e01b81525f6004820152602490fd5b5f80fd5b634e487b7160e01b5f52604160045260245ffdfe60406080815260049081361015610014575f80fd5b5f915f3560e01c90816314887c581461084a5781633ac04911146106dc57816358336662146104945781635cd8b15e1461047757816364dfea061461044f578163715018a6146103f25781638da5cb5b146103c95781639b19251a146102e3578163b42ba2a214610273578163b572a966146101b9578163b6caa1191461017c578163f2fde38b146100e8575063f9661602146100af575f80fd5b346100e45760203660031901126100e4576020906100d36100ce6108a3565b610999565b90516001600160a01b039091168152f35b5080fd5b9050346101785760203660031901126101785761010361088d565b9061010c610a0f565b6001600160a01b03918216928315610162575050600254826bffffffffffffffffffffffff60a01b821617600255167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a380f35b51631e4fbdf760e01b8152908101849052602490fd5b8280fd5b5050346100e45760203660031901126100e45760ff8160209367ffffffffffffffff6101a66108a3565b1681526003855220541690519015158152f35b91905034610178576020366003190112610178576101d56108a3565b916101de610a0f565b67ffffffffffffffff809316928315908115610266575b5061025857828452600360205260ff828520541661024a575081835260036020528220805460ff191660011790557ffc8245c2838846b295ae66fbe0d08e20c799b737c93b56f7b209df2e5fa2d4588280a280f35b905163f53de75f60e01b8152fd5b905163a9146eeb60e01b8152fd5b905081541683115f6101f5565b8284346102e05760203660031901126102e0575081355f548110156102cd575f80527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563015490516001600160a01b03909116815260209150f35b603283634e487b7160e01b5f525260245ffd5b80fd5b905034610178576020366003190112610178576102fe61088d565b91610307610a0f565b80516202dd3160ec1b81526001600160a01b03938416936020828581885afa9182156103bf57869261038e575b50309116036103815761034683610af2565b156103745750507feb73900b98b6a3e2b8b01708fe544760cf570d21e7fbe5225f24e48b5b2b432e8280a280f35b5163b73e95e160e01b8152fd5b5163340aafcd60e11b8152fd5b6103b191925060203d6020116103b8575b6103a98183610908565b81019061097a565b905f610334565b503d61039f565b83513d88823e3d90fd5b5050346100e457816003193601126100e45760025490516001600160a01b039091168152602090f35b83346102e057806003193601126102e05761040b610a0f565b600280546001600160a01b031981169091555f906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a380f35b8284346102e057806003193601126102e0575067ffffffffffffffff60209254169051908152f35b5050346100e457816003193601126100e457602091549051908152f35b83833461063d57606036600319011261063d576104af61088d565b6024359167ffffffffffffffff908184169182850361063d5760443581811161063d576104df90369089016108ba565b6001600160a01b039586165f81815260016020526040902054909792939290156106cc578451638da5cb5b60e01b81526020979088818d818d5afa9081156106c2575f916106a5575b5016330361069557845163054fd4d560e41b815287818c818c5afa90811561068b579084915f91610651575b5016861115610641576105696105a291610999565b916105948651958692630557c60960e31b8b85015289602485015288604485015260648401916108e8565b03601f198101855284610908565b863b1561063d57835163278f794360e11b8152925f91849182916105c991908d840161093e565b0381838a5af1801561063357610607575b5050519081527fb91c18bf7dbfdff96560fb98128531c4c6187079fe0bd7f24a81f54ea87f35a79190a280f35b9080929650116106205784529293505f928486806105da565b604186634e487b7160e01b5f525260245ffd5b83513d5f823e3d90fd5b5f80fd5b8451630384ebd960e41b81528a90fd5b809250898092503d8311610684575b61066a8183610908565b8101031261063d5751838116810361063d5783908c610554565b503d610660565b86513d5f823e3d90fd5b84516330cd747160e01b81528a90fd5b6106bc9150893d8b116103b8576103a98183610908565b8c610528565b87513d5f823e3d90fd5b845163e3fd10ff60e01b81528a90fd5b823461063d57606036600319011261063d576106f66108a3565b6001600160a01b03926024358481169081900361063d5760443567ffffffffffffffff80821161063d576107306107bf92369086016108ba565b92905f546107b389519260208401928352610785868b1693848d8701528960608701526080808701528561076860a082018b866108e8565b039561077c601f1997888101835282610908565b5190209a610999565b968b519889946315fb20f360e21b6020870152602486015260448501526060606485015260848401916108e8565b03908101855284610908565b8551936105c39081860192868410908411176108375750918493916107e893610b4f863961093e565b03905ff591821561082d57602092169061080182610a84565b505190807fb919910dcefbf753bfd926ab3b1d3f85d877190c3d01ba1bd585047b99b99f0b5f80a28152f35b50513d5f823e3d90fd5b604190634e487b7160e01b5f525260245ffd5b823461063d57602036600319011261063d576020906108846001600160a01b0361087261088d565b165f52600160205260405f2054151590565b90519015158152f35b600435906001600160a01b038216820361063d57565b6004359067ffffffffffffffff8216820361063d57565b9181601f8401121561063d5782359167ffffffffffffffff831161063d576020838186019501011161063d57565b908060209392818452848401375f828201840152601f01601f1916010190565b90601f8019910116810190811067ffffffffffffffff82111761092a57604052565b634e487b7160e01b5f52604160045260245ffd5b6001600160a01b0390911681526040602080830182905283519183018290526060938291018484015e5f828201840152601f01601f1916010190565b9081602091031261063d57516001600160a01b038116810361063d5790565b67ffffffffffffffff80911680158015610a02575b6109f0575f1901908082116109dc576109c79116610a3b565b905460039190911b1c6001600160a01b031690565b634e487b7160e01b5f52601160045260245ffd5b60405163a9146eeb60e01b8152600490fd5b50816004541681116109ae565b6002546001600160a01b03163303610a2357565b60405163118cdaa760e01b8152336004820152602490fd5b600454811015610a705760045f527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b01905f90565b634e487b7160e01b5f52603260045260245ffd5b805f52600160205260405f2054155f14610aed575f54600160401b81101561092a5760018101805f55811015610a705781907f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e56301555f54905f52600160205260405f2055600190565b505f90565b805f52600560205260405f2054155f14610aed57600454600160401b81101561092a57806001610b259201600455610a3b565b81549060031b9083821b915f19901b1916179055600454905f52600560205260405f205560019056fe604060a08152346101df576105c38038038061001a816101e3565b92833981019082818303126101df5780516001600160a01b0392838216918281036101df5760208481015190946001600160401b0382116101df570182601f820112156101df57805161007461006f8261021c565b6101e3565b91818352868301948783830101116101df57815f9288809301875e83010152813b156101c7577f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b03199081168617909155937fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a25180156101bf575f809161012694845af43d156101b7573d9161011861006f8461021c565b9283523d5f8785013e610237565b505b336080527f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f847fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d610394855494825191861682523390820152a133156101a057163317905551610328908161029b82396080518160f10152f35b8351633173bdd160e11b81525f6004820152602490fd5b606091610237565b505050610128565b8651634c9c8ce360e01b815260048101859052602490fd5b5f80fd5b6040519190601f01601f191682016001600160401b0381118382101761020857604052565b634e487b7160e01b5f52604160045260245ffd5b6001600160401b03811161020857601f01601f191660200190565b9061025e575080511561024c57805190602001fd5b604051630a12f52160e11b8152600490fd5b81511580610291575b61026f575090565b604051639996b31560e01b81526001600160a01b039091166004820152602490fd5b50803b1561026756fe6080604052600436106101f4575f3560e01c634f1ef286036101f45734610086576040366003190112610086576004356001600160a01b0381168103610086576024359067ffffffffffffffff9081831161008657366023840112156100865782600401359182116100865736602483850101116100865760246100849301906100e5565b005b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b6040519190601f01601f1916820167ffffffffffffffff8111838210176100c457604052565b61008a565b67ffffffffffffffff81116100c457601f01601f191660200190565b916001600160a01b03907f0000000000000000000000000000000000000000000000000000000000000000821633036101e257610129610124826100c9565b61009e565b92818452368282011161008657815f926020928387013784010152823b156101c85782167f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc816bffffffffffffffffffffffff60a01b8254161790557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a28051156101bc576101b991610256565b50565b50506101c661023d565b565b604051634c9c8ce360e01b81529083166004820152602490fd5b6040516334ad5dbb60e21b8152600490fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc545f9081906001600160a01b0316368280378136915af43d5f803e15610239573d5ff35b3d5ffd5b3461024457565b60405163b398979f60e01b8152600490fd5b5f8061028893602081519101845af43d1561028b573d91610279610124846100c9565b9283523d5f602085013e61028f565b90565b6060915b906102b657508051156102a457805190602001fd5b604051630a12f52160e11b8152600490fd5b815115806102e9575b6102c7575090565b604051639996b31560e01b81526001600160a01b039091166004820152602490fd5b50803b156102bf56fea264697066735822122028e25eef202279b950fae0b3b6144d4d7a8824832024cb7fc76ff5455d7c319964736f6c63430008190033a264697066735822122044a749ed3b4cc7533f65daf7149d976a000661a24fc7eadbf8ace3eef7a619fb64736f6c63430008190033","sourceMap":"195:138:68:-:0;;;;;;;;;;;;;-1:-1:-1;;195:138:68;;;;-1:-1:-1;;;;;195:138:68;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;195:138:68;;;;;;;;;;1273:26:32;;1269:95;;3004:6;195:138:68;;-1:-1:-1;;;;;;195:138:68;;;;;;;;;;;3052:40:32;-1:-1:-1;;3052:40:32;195:138:68;;;;;;;1269:95:32;195:138:68;;-1:-1:-1;;;1322:31:32;;-1:-1:-1;1322:31:32;;;195:138:68;;;1322:31:32;195:138:68;-1:-1:-1;195:138:68;;;;;;-1:-1:-1;195:138:68;;;;;-1:-1:-1;195:138:68","linkReferences":{}},"deployedBytecode":{"object":"0x60406080815260049081361015610014575f80fd5b5f915f3560e01c90816314887c581461084a5781633ac04911146106dc57816358336662146104945781635cd8b15e1461047757816364dfea061461044f578163715018a6146103f25781638da5cb5b146103c95781639b19251a146102e3578163b42ba2a214610273578163b572a966146101b9578163b6caa1191461017c578163f2fde38b146100e8575063f9661602146100af575f80fd5b346100e45760203660031901126100e4576020906100d36100ce6108a3565b610999565b90516001600160a01b039091168152f35b5080fd5b9050346101785760203660031901126101785761010361088d565b9061010c610a0f565b6001600160a01b03918216928315610162575050600254826bffffffffffffffffffffffff60a01b821617600255167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a380f35b51631e4fbdf760e01b8152908101849052602490fd5b8280fd5b5050346100e45760203660031901126100e45760ff8160209367ffffffffffffffff6101a66108a3565b1681526003855220541690519015158152f35b91905034610178576020366003190112610178576101d56108a3565b916101de610a0f565b67ffffffffffffffff809316928315908115610266575b5061025857828452600360205260ff828520541661024a575081835260036020528220805460ff191660011790557ffc8245c2838846b295ae66fbe0d08e20c799b737c93b56f7b209df2e5fa2d4588280a280f35b905163f53de75f60e01b8152fd5b905163a9146eeb60e01b8152fd5b905081541683115f6101f5565b8284346102e05760203660031901126102e0575081355f548110156102cd575f80527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563015490516001600160a01b03909116815260209150f35b603283634e487b7160e01b5f525260245ffd5b80fd5b905034610178576020366003190112610178576102fe61088d565b91610307610a0f565b80516202dd3160ec1b81526001600160a01b03938416936020828581885afa9182156103bf57869261038e575b50309116036103815761034683610af2565b156103745750507feb73900b98b6a3e2b8b01708fe544760cf570d21e7fbe5225f24e48b5b2b432e8280a280f35b5163b73e95e160e01b8152fd5b5163340aafcd60e11b8152fd5b6103b191925060203d6020116103b8575b6103a98183610908565b81019061097a565b905f610334565b503d61039f565b83513d88823e3d90fd5b5050346100e457816003193601126100e45760025490516001600160a01b039091168152602090f35b83346102e057806003193601126102e05761040b610a0f565b600280546001600160a01b031981169091555f906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a380f35b8284346102e057806003193601126102e0575067ffffffffffffffff60209254169051908152f35b5050346100e457816003193601126100e457602091549051908152f35b83833461063d57606036600319011261063d576104af61088d565b6024359167ffffffffffffffff908184169182850361063d5760443581811161063d576104df90369089016108ba565b6001600160a01b039586165f81815260016020526040902054909792939290156106cc578451638da5cb5b60e01b81526020979088818d818d5afa9081156106c2575f916106a5575b5016330361069557845163054fd4d560e41b815287818c818c5afa90811561068b579084915f91610651575b5016861115610641576105696105a291610999565b916105948651958692630557c60960e31b8b85015289602485015288604485015260648401916108e8565b03601f198101855284610908565b863b1561063d57835163278f794360e11b8152925f91849182916105c991908d840161093e565b0381838a5af1801561063357610607575b5050519081527fb91c18bf7dbfdff96560fb98128531c4c6187079fe0bd7f24a81f54ea87f35a79190a280f35b9080929650116106205784529293505f928486806105da565b604186634e487b7160e01b5f525260245ffd5b83513d5f823e3d90fd5b5f80fd5b8451630384ebd960e41b81528a90fd5b809250898092503d8311610684575b61066a8183610908565b8101031261063d5751838116810361063d5783908c610554565b503d610660565b86513d5f823e3d90fd5b84516330cd747160e01b81528a90fd5b6106bc9150893d8b116103b8576103a98183610908565b8c610528565b87513d5f823e3d90fd5b845163e3fd10ff60e01b81528a90fd5b823461063d57606036600319011261063d576106f66108a3565b6001600160a01b03926024358481169081900361063d5760443567ffffffffffffffff80821161063d576107306107bf92369086016108ba565b92905f546107b389519260208401928352610785868b1693848d8701528960608701526080808701528561076860a082018b866108e8565b039561077c601f1997888101835282610908565b5190209a610999565b968b519889946315fb20f360e21b6020870152602486015260448501526060606485015260848401916108e8565b03908101855284610908565b8551936105c39081860192868410908411176108375750918493916107e893610b4f863961093e565b03905ff591821561082d57602092169061080182610a84565b505190807fb919910dcefbf753bfd926ab3b1d3f85d877190c3d01ba1bd585047b99b99f0b5f80a28152f35b50513d5f823e3d90fd5b604190634e487b7160e01b5f525260245ffd5b823461063d57602036600319011261063d576020906108846001600160a01b0361087261088d565b165f52600160205260405f2054151590565b90519015158152f35b600435906001600160a01b038216820361063d57565b6004359067ffffffffffffffff8216820361063d57565b9181601f8401121561063d5782359167ffffffffffffffff831161063d576020838186019501011161063d57565b908060209392818452848401375f828201840152601f01601f1916010190565b90601f8019910116810190811067ffffffffffffffff82111761092a57604052565b634e487b7160e01b5f52604160045260245ffd5b6001600160a01b0390911681526040602080830182905283519183018290526060938291018484015e5f828201840152601f01601f1916010190565b9081602091031261063d57516001600160a01b038116810361063d5790565b67ffffffffffffffff80911680158015610a02575b6109f0575f1901908082116109dc576109c79116610a3b565b905460039190911b1c6001600160a01b031690565b634e487b7160e01b5f52601160045260245ffd5b60405163a9146eeb60e01b8152600490fd5b50816004541681116109ae565b6002546001600160a01b03163303610a2357565b60405163118cdaa760e01b8152336004820152602490fd5b600454811015610a705760045f527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b01905f90565b634e487b7160e01b5f52603260045260245ffd5b805f52600160205260405f2054155f14610aed575f54600160401b81101561092a5760018101805f55811015610a705781907f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e56301555f54905f52600160205260405f2055600190565b505f90565b805f52600560205260405f2054155f14610aed57600454600160401b81101561092a57806001610b259201600455610a3b565b81549060031b9083821b915f19901b1916179055600454905f52600560205260405f205560019056fe604060a08152346101df576105c38038038061001a816101e3565b92833981019082818303126101df5780516001600160a01b0392838216918281036101df5760208481015190946001600160401b0382116101df570182601f820112156101df57805161007461006f8261021c565b6101e3565b91818352868301948783830101116101df57815f9288809301875e83010152813b156101c7577f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b03199081168617909155937fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a25180156101bf575f809161012694845af43d156101b7573d9161011861006f8461021c565b9283523d5f8785013e610237565b505b336080527f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f847fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d610394855494825191861682523390820152a133156101a057163317905551610328908161029b82396080518160f10152f35b8351633173bdd160e11b81525f6004820152602490fd5b606091610237565b505050610128565b8651634c9c8ce360e01b815260048101859052602490fd5b5f80fd5b6040519190601f01601f191682016001600160401b0381118382101761020857604052565b634e487b7160e01b5f52604160045260245ffd5b6001600160401b03811161020857601f01601f191660200190565b9061025e575080511561024c57805190602001fd5b604051630a12f52160e11b8152600490fd5b81511580610291575b61026f575090565b604051639996b31560e01b81526001600160a01b039091166004820152602490fd5b50803b1561026756fe6080604052600436106101f4575f3560e01c634f1ef286036101f45734610086576040366003190112610086576004356001600160a01b0381168103610086576024359067ffffffffffffffff9081831161008657366023840112156100865782600401359182116100865736602483850101116100865760246100849301906100e5565b005b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b6040519190601f01601f1916820167ffffffffffffffff8111838210176100c457604052565b61008a565b67ffffffffffffffff81116100c457601f01601f191660200190565b916001600160a01b03907f0000000000000000000000000000000000000000000000000000000000000000821633036101e257610129610124826100c9565b61009e565b92818452368282011161008657815f926020928387013784010152823b156101c85782167f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc816bffffffffffffffffffffffff60a01b8254161790557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a28051156101bc576101b991610256565b50565b50506101c661023d565b565b604051634c9c8ce360e01b81529083166004820152602490fd5b6040516334ad5dbb60e21b8152600490fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc545f9081906001600160a01b0316368280378136915af43d5f803e15610239573d5ff35b3d5ffd5b3461024457565b60405163b398979f60e01b8152600490fd5b5f8061028893602081519101845af43d1561028b573d91610279610124846100c9565b9283523d5f602085013e61028f565b90565b6060915b906102b657508051156102a457805190602001fd5b604051630a12f52160e11b8152600490fd5b815115806102e9575b6102c7575090565b604051639996b31560e01b81526001600160a01b039091166004820152602490fd5b50803b156102bf56fea264697066735822122028e25eef202279b950fae0b3b6144d4d7a8824832024cb7fc76ff5455d7c319964736f6c63430008190033a264697066735822122044a749ed3b4cc7533f65daf7149d976a000661a24fc7eadbf8ace3eef7a619fb64736f6c63430008190033","sourceMap":"195:138:68:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;195:138:68;;;;;;1576:7:73;195:138:68;;:::i;:::-;1576:7:73;:::i;:::-;195:138:68;;-1:-1:-1;;;;;195:138:68;;;;;;;;;;;;;;;;;;-1:-1:-1;;195:138:68;;;;;;:::i;:::-;1500:62:32;;;:::i;:::-;-1:-1:-1;;;;;195:138:68;;;;2627:22:32;;2623:91;;195:138:68;;3004:6:32;195:138:68;;;;;;;;3004:6:32;195:138:68;;3052:40:32;195:138:68;3052:40:32;;195:138:68;;2623:91:32;195:138:68;-1:-1:-1;;;2672:31:32;;;;;195:138:68;;;;;2672:31:32;195:138:68;;;;;;;;;;;;-1:-1:-1;;195:138:68;;;;;;;;;;;:::i;:::-;;;;869:56:73;195:138:68;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;195:138:68;;;;;;:::i;:::-;1500:62:32;;;:::i;:::-;195:138:68;;;;1065:12:73;;;:39;;;;;195:138:68;1061:93:73;;;195:138:68;;;2251:11:73;195:138:68;;;;;;;;2247:78:73;;-1:-1:-1;195:138:68;;;2251:11:73;195:138:68;;;;;;-1:-1:-1;;195:138:68;2358:4:73;195:138:68;;;2378:18:73;195:138:68;;2378:18:73;195:138:68;;2247:78:73;195:138:68;;-1:-1:-1;;;2294:20:73;;;1061:93;195:138:68;;-1:-1:-1;;;1127:16:73;;;1065:39;195:138:68;;;;;1081:23:73;;1065:39;;;195:138:68;;;;;;;;-1:-1:-1;;195:138:68;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;195:138:68;;;;;;;-1:-1:-1;195:138:68;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;195:138:68;;;;;;:::i;:::-;1500:62:32;;;:::i;:::-;195:138:68;;-1:-1:-1;;;1804:44:73;;-1:-1:-1;;;;;195:138:68;;;;;;1804:44:73;195:138:68;;1804:44:73;;;;;;;;;;;195:138:68;1860:4:73;;195:138:68;;1804:61:73;1800:122;;8409:50:61;;;:::i;:::-;1935:49:73;1931:107;;2053:26;;;;;;195:138:68;;1931:107:73;195:138:68;-1:-1:-1;;;2007:20:73;;;1800:122;195:138:68;-1:-1:-1;;;1888:23:73;;;1804:44;;;;;195:138:68;1804:44:73;195:138:68;1804:44:73;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;195:138:68;;;;;;;;;;;;;;;;;;;;;;;1710:6:32;195:138:68;;;-1:-1:-1;;;;;195:138:68;;;;;;;;;;;;;;;;;;;;;1500:62:32;;:::i;:::-;3004:6;195:138:68;;-1:-1:-1;;;;;;195:138:68;;;;;;;-1:-1:-1;;;;;195:138:68;3052:40:32;195:138:68;;3052:40:32;195:138:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;195:138:68;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;195:138:68;;;;;;;;;;;;;;;;;;;8974:55:61;4360:26;1185:72:74;;195:138:68;;-1:-1:-1;;;3069:24:73;;195:138:68;;;;;3069:24:73;195:138:68;3069:24:73;;;;;;;;195:138:68;3069:24:73;;;195:138:68;;;3055:10:73;:38;3051:86;;195:138:68;;-1:-1:-1;;;3165:36:73;;;195:138:68;3165:36:73;195:138:68;3165:36:73;;;;;;;;;;;195:138:68;3165:36:73;;;195:138:68;;;3151:50:73;;;3147:100;;1576:7;3347:61;1576:7;;:::i;:::-;195:138:68;;;;3347:61:73;;;;;;;;;;;195:138:68;3347:61:73;;195:138:68;;;;;;;;;;;:::i;:::-;3347:61:73;2651:50;;3347:61;;;;;;:::i;:::-;3257:161;;;;;195:138:68;;-1:-1:-1;;;3257:161:73;;195:138:68;;;;;;;3257:161:73;;195:138:68;3257:161:73;;;;:::i;:::-;;;;;;;;;;;;;195:138:68;-1:-1:-1;;195:138:68;;;;3434:28:73;;195:138:68;3434:28:73;195:138:68;;3257:161:73;195:138:68;;;;;;;;;;;;-1:-1:-1;195:138:68;;;3257:161:73;;;;195:138:68;;;;;;;;;;;;3257:161:73;195:138:68;;;;;;;;;3257:161:73;195:138:68;;;3147:100:73;195:138:68;;-1:-1:-1;;;3224:12:73;;195:138:68;;3224:12:73;3165:36;;;;;;;;;;;;;;;;;;:::i;:::-;;;195:138:68;;;;;;;;;;;;3165:36:73;;;;;;;;;;;195:138:68;;;;;;;;;3051:86:73;195:138:68;;-1:-1:-1;;;3116:10:73;;195:138:68;;3116:10:73;3069:24;;;;;;;;;;;;;;:::i;:::-;;;;;195:138:68;;;;;;;;;1185:72:74;195:138:68;;-1:-1:-1;;;1230:16:74;;195:138:68;;1230:16:74;195:138:68;;;;;;;-1:-1:-1;;195:138:68;;;;;;:::i;:::-;-1:-1:-1;;;;;195:138:68;;;;;;;;;;;;;;;;;;;;;2746:69:73;195:138:68;;;;;;:::i;:::-;;;;;;;;2651:50:73;195:138:68;2651:50:73;;195:138:68;;;1576:7:73;195:138:68;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2651:50:73;;;;;;;;;;;;;:::i;:::-;195:138:68;2641:61:73;;1576:7;;:::i;:::-;195:138:68;;;2746:69:73;;;;;;195:138:68;2746:69:73;;;195:138:68;2746:69:73;;195:138:68;;;;;;;;;;;;;;;:::i;:::-;2746:69:73;;;;;;;;:::i;:::-;195:138:68;;2609:220:73;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;195:138:68;2609:220:73;;;;;;195:138:68;;;8409:50:61;;;;:::i;:::-;;195:138:68;1077:18:74;;;195:138:68;1077:18:74;;195:138:68;;;2609:220:73;195:138:68;;;;;;;;;2609:220:73;195:138:68;;;;;;;;;;;;;;;;;;-1:-1:-1;;195:138:68;;;;;;8974:55:61;-1:-1:-1;;;;;195:138:68;;:::i;:::-;;;;4360:14:61;195:138:68;;;;;;4360:26:61;;4264:129;;8974:55;195:138:68;;;;;;;;;;;;-1:-1:-1;;;;;195:138:68;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;195:138:68;;;;;;;;-1:-1:-1;;195:138:68;;;;:::o;:::-;;;2651:50:73;;195:138:68;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;195:138:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;195:138:68;;;;:::o;:::-;;;;;;;;;;-1:-1:-1;;;;;195:138:68;;;;;;;:::o;999:172:73:-;195:138:68;;;;1065:12:73;;:39;;;;999:172;1061:93;;-1:-1:-1;;195:138:68;;;;;;;5016:18:61;195:138:68;;5016:18:61;:::i;:::-;195:138:68;;;;;;;;-1:-1:-1;;;;;195:138:68;;999:172:73:o;195:138:68:-;;;;;;;1602:27:73;195:138:68;;;;1061:93:73;195:138:68;;-1:-1:-1;;;1127:16:73;;;;;1065:39;195:138:68;;1374:27:73;195:138:68;;1081:23:73;;1065:39;;1796:162:32;1710:6;195:138:68;-1:-1:-1;;;;;195:138:68;735:10:47;1855:23:32;1851:101;;1796:162::o;1851:101::-;195:138:68;;-1:-1:-1;;;1901:40:32;;735:10:47;1901:40:32;;;195:138:68;;;1901:40:32;195:138:68;1602:27:73;195:138:68;;;;;;1602:27:73;-1:-1:-1;195:138:68;;;;-1:-1:-1;195:138:68;:::o;:::-;;;;;;;1602:27:73;195:138:68;;;;2241:406:61;195:138:68;;;4360:14:61;195:138:68;;;;;;4360:26:61;2320:321;195:138:68;;;;;-1:-1:-1;;;195:138:68;;;;;4360:14:61;195:138:68;;;;;;;;;;;;;;;;;;;;4360:14:61;195:138:68;;;;;;4360:14:61;2576:11;:::o;2320:321::-;2618:12;195:138:68;2618:12:61;:::o;2241:406::-;195:138:68;-1:-1:-1;195:138:68;4360:14:61;195:138:68;;;-1:-1:-1;195:138:68;;4360:26:61;2320:321;195:138:68;;;;;-1:-1:-1;;;195:138:68;;;;;;4360:14:61;195:138:68;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;195:138:68;4360:14:61;195:138:68;;;-1:-1:-1;195:138:68;;4360:14:61;2576:11;:::o","linkReferences":{}},"methodIdentifiers":{"blacklist(uint64)":"b572a966","blacklisted(uint64)":"b6caa119","create(uint64,address,bytes)":"3ac04911","entity(uint256)":"b42ba2a2","implementation(uint64)":"f9661602","isEntity(address)":"14887c58","lastVersion()":"64dfea06","migrate(address,uint64,bytes)":"58336662","owner()":"8da5cb5b","renounceOwnership()":"715018a6","totalEntities()":"5cd8b15e","transferOwnership(address)":"f2fde38b","whitelist(address)":"9b19251a"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner_\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"AlreadyBlacklisted\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AlreadyWhitelisted\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"EntityNotExist\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidImplementation\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidVersion\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotOwner\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OldVersion\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"entity\",\"type\":\"address\"}],\"name\":\"AddEntity\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Blacklist\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"entity\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"newVersion\",\"type\":\"uint64\"}],\"name\":\"Migrate\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"Whitelist\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"blacklist\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"blacklisted\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"value\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"owner_\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"create\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"entity_\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"entity\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"implementation\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"entity_\",\"type\":\"address\"}],\"name\":\"isEntity\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"lastVersion\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"entity_\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"newVersion\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"migrate\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalEntities\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"implementation_\",\"type\":\"address\"}],\"name\":\"whitelist\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}]},\"events\":{\"AddEntity(address)\":{\"params\":{\"entity\":\"address of the added entity\"}},\"Blacklist(uint64)\":{\"details\":\"The given version is still deployable.\",\"params\":{\"version\":\"version that was blacklisted\"}},\"Migrate(address,uint64)\":{\"params\":{\"entity\":\"address of the entity\",\"newVersion\":\"new version of the entity\"}},\"Whitelist(address)\":{\"params\":{\"implementation\":\"address of the new implementation\"}}},\"kind\":\"dev\",\"methods\":{\"blacklist(uint64)\":{\"details\":\"The given version will still be deployable.\",\"params\":{\"version\":\"version to blacklist\"}},\"create(uint64,address,bytes)\":{\"details\":\"CREATE2 salt is constructed from the given parameters.\",\"params\":{\"data\":\"initial data for the entity creation\",\"owner\":\"initial owner of the entity\",\"version\":\"entity's version to use\"},\"returns\":{\"entity_\":\"address of the entity\"}},\"entity(uint256)\":{\"params\":{\"index\":\"index of the entity to get\"},\"returns\":{\"_0\":\"address of the entity\"}},\"implementation(uint64)\":{\"details\":\"Reverts when an invalid version.\",\"params\":{\"version\":\"version to get the implementation for\"},\"returns\":{\"_0\":\"address of the implementation\"}},\"isEntity(address)\":{\"params\":{\"account\":\"address to check\"},\"returns\":{\"_0\":\"if the given address is an entity\"}},\"lastVersion()\":{\"details\":\"If zero, no implementations are whitelisted.\",\"returns\":{\"_0\":\"version of the last implementation\"}},\"migrate(address,uint64,bytes)\":{\"details\":\"Only the entity's owner can call this function.\",\"params\":{\"data\":\"some data to reinitialize the contract with\",\"entity\":\"address of the entity to migrate\",\"newVersion\":\"new version to migrate to\"}},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"totalEntities()\":{\"returns\":{\"_0\":\"total number of entities added\"}},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"},\"whitelist(address)\":{\"params\":{\"implementation\":\"address of the new implementation\"}}},\"version\":1},\"userdoc\":{\"events\":{\"AddEntity(address)\":{\"notice\":\"Emitted when an entity is added.\"},\"Blacklist(uint64)\":{\"notice\":\"Emitted when a version is blacklisted (e.g., in case of invalid implementation).\"},\"Migrate(address,uint64)\":{\"notice\":\"Emitted when an entity is migrated to a new version.\"},\"Whitelist(address)\":{\"notice\":\"Emitted when a new implementation is whitelisted.\"}},\"kind\":\"user\",\"methods\":{\"blacklist(uint64)\":{\"notice\":\"Blacklist a version of entities.\"},\"blacklisted(uint64)\":{\"notice\":\"Get if a version is blacklisted (e.g., in case of invalid implementation).\"},\"create(uint64,address,bytes)\":{\"notice\":\"Create a new entity at the factory.\"},\"entity(uint256)\":{\"notice\":\"Get an entity given its index.\"},\"implementation(uint64)\":{\"notice\":\"Get the implementation for a given version.\"},\"isEntity(address)\":{\"notice\":\"Get if a given address is an entity.\"},\"lastVersion()\":{\"notice\":\"Get the last available version.\"},\"migrate(address,uint64,bytes)\":{\"notice\":\"Migrate a given entity to a given newer version.\"},\"totalEntities()\":{\"notice\":\"Get a total number of entities.\"},\"whitelist(address)\":{\"notice\":\"Whitelist a new implementation for entities.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/contracts/VaultFactory.sol\":\"VaultFactory\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Proxy.sol\":{\"keccak256\":\"0xbfb6695731de677140fbf76c772ab08c4233a122fb51ac28ac120fc49bbbc4ec\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://68f8fded7cc318efa15874b7c6a983fe17a4a955d72d240353a9a4ca1e1b824c\",\"dweb:/ipfs/QmdcmBL9Qo4Tk3Dby4wFYabGyot9JNeLPxpSXZUgUm92BV\"]},\"lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol\":{\"keccak256\":\"0x06a78f9b3ee3e6d0eb4e4cd635ba49960bea34cac1db8c0a27c75f2319f1fd65\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://547d21aa17f4f3f1a1a7edf7167beff8dd9496a0348d5588f15cc8a4b29d052a\",\"dweb:/ipfs/QmT16JtRQSWNpLo9W23jr6CzaMuTAcQcjJJcdRd8HLJ6cE\"]},\"lib/openzeppelin-contracts/contracts/proxy/Proxy.sol\":{\"keccak256\":\"0xc3f2ec76a3de8ed7a7007c46166f5550c72c7709e3fc7e8bb3111a7191cdedbd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e73efb4c2ca655882dc237c6b4f234a9bd36d97159d8fcaa837eb01171f726ac\",\"dweb:/ipfs/QmTNnnv7Gu5fs5G1ZMh7Fexp8N4XUs3XrNAngjcxgiss3e\"]},\"lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0xc59a78b07b44b2cf2e8ab4175fca91e8eca1eee2df7357b8d2a8833e5ea1f64c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5aa4f07e65444784c29cd7bfcc2341b34381e4e5b5da9f0c5bd00d7f430e66fa\",\"dweb:/ipfs/QmWRMh4Q9DpaU9GvsiXmDdoNYMyyece9if7hnfLz7uqzWM\"]},\"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\"]},\"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0x32ba59b4b7299237c8ba56319110989d7978a039faf754793064e967e5894418\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1ae50c8b562427df610cc4540c9bf104acca7ef8e2dcae567ae7e52272281e9c\",\"dweb:/ipfs/QmTHiadFCSJUPpRjNegc5SahmeU8bAoY8i9Aq6tVscbcKR\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0x86c1470cbfd878491e5de030072b647352d36bd27122cffb928970b1945282aa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ad85dd393ee0a1917c57046abc5155f51f77844b2c6a42c05c1b8dd26d6ff3c1\",\"dweb:/ipfs/QmNqYc8To2NdnpP6E1tGz7t6A7beuENde5yovwov5pW1fA\"]},\"src/contracts/VaultFactory.sol\":{\"keccak256\":\"0xa9122dd11e5f21fa97a813e90f8c4905f0a4967b9611dd03437a31377cbdecb8\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://4c2feda1f9c0c7ddf65bccdc99494e4bfbb820fcddc3e4222e3b58ef821424a3\",\"dweb:/ipfs/Qmdmt4rH214jDmDsF9ELvJXVCt8abhk6poSmhJqqzLse3R\"]},\"src/contracts/common/MigratableEntityProxy.sol\":{\"keccak256\":\"0x78ba27242276232ad10a45265e3c07f0a25722456f6abb3fb3f24a1c8e1b38d1\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://a19623df688e5085036b59fc934e35b72997f875d7ffda1cdc557c6ca468206d\",\"dweb:/ipfs/QmaQiT5uYZu5JmqhMjTDJnsq3nqaHbKrWAjrxKKLesdHV7\"]},\"src/contracts/common/MigratablesFactory.sol\":{\"keccak256\":\"0x5d1487c3456da4bd0bc2a131eeab97ab92484c923edefaebf190cc08d4080093\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://fec38d2e52e9c5148e95599c133fd6fe66d41296d6fc06e7329d2db199a1798f\",\"dweb:/ipfs/QmeiaydBXHHkJRUnpaZH1C6JQ7HPocTvQbUJBqKTvUeEYv\"]},\"src/contracts/common/Registry.sol\":{\"keccak256\":\"0x4a4004836d920953a8ec6e223de9a330f43acf7a5b93c6b8b3e4a95e0f129889\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://e8bdda207f3852c683a2b481602239a914f7e26bcd042ade618e263a43b67652\",\"dweb:/ipfs/Qmb8GZykJWxZcfwNp3SqhFizDFydFuV6LXgemV3vnWyLyu\"]},\"src/interfaces/IVaultFactory.sol\":{\"keccak256\":\"0x6f658b264fc8d530e458a98d83a09cb55ace4d3e509f0a3e9294471bb1bcf84d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a7253435e4e1d1ae19a50d14091ddb254f6a36f296440106bfc094623dd1aeba\",\"dweb:/ipfs/QmbHK9yoQ7Ctf3nuDLmqxTWPYD8cEm1TKXzfxePtE87AQN\"]},\"src/interfaces/common/IMigratableEntity.sol\":{\"keccak256\":\"0x8f5f2809f3afbe8ebfbb365dd7b57b4dd3b6f9943a6187eaf648d45895b8e3c4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ffe640537d539e7a4fde70d30d3e4c57f4ba9c2c25c450cea713aae38e8fd5c\",\"dweb:/ipfs/QmSUTGzvdcn1R1KB7tLThMRtESsfPbeXDhhhKWGtntzBds\"]},\"src/interfaces/common/IMigratableEntityProxy.sol\":{\"keccak256\":\"0x9030ced51ad12e0b3ddaa11bba4a3adcfa29e67b909c46065c14b19d158bb9fd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2d859c21510d1a0f06a71abe21dc6424608c1b2e3194a10e4df4cc88c4de9e9f\",\"dweb:/ipfs/QmNi6Buri2oaujc4vTv6bZ5mgMKFsjUmYmQLUNaDCXFEEt\"]},\"src/interfaces/common/IMigratablesFactory.sol\":{\"keccak256\":\"0xd4dfe9449bf005dbcbab9e0e85eaaca15a601ff971f34182a0b1832dc4b9d124\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ff8b73285192a9c64160b008d23a09da33e7164d10a9dc29d1a4464bd9c02be5\",\"dweb:/ipfs/QmZQW2LLV4dQfJ3coENKeycbzXJzi7zdvupsqWA4UV29Gq\"]},\"src/interfaces/common/IRegistry.sol\":{\"keccak256\":\"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014\",\"dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.25+commit.b61c2a91"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"owner_","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"AlreadyBlacklisted"},{"inputs":[],"type":"error","name":"AlreadyWhitelisted"},{"inputs":[],"type":"error","name":"EntityNotExist"},{"inputs":[],"type":"error","name":"InvalidImplementation"},{"inputs":[],"type":"error","name":"InvalidVersion"},{"inputs":[],"type":"error","name":"NotOwner"},{"inputs":[],"type":"error","name":"OldVersion"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"OwnableInvalidOwner"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"OwnableUnauthorizedAccount"},{"inputs":[{"internalType":"address","name":"entity","type":"address","indexed":true}],"type":"event","name":"AddEntity","anonymous":false},{"inputs":[{"internalType":"uint64","name":"version","type":"uint64","indexed":true}],"type":"event","name":"Blacklist","anonymous":false},{"inputs":[{"internalType":"address","name":"entity","type":"address","indexed":true},{"internalType":"uint64","name":"newVersion","type":"uint64","indexed":false}],"type":"event","name":"Migrate","anonymous":false},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"address","name":"implementation","type":"address","indexed":true}],"type":"event","name":"Whitelist","anonymous":false},{"inputs":[{"internalType":"uint64","name":"version","type":"uint64"}],"stateMutability":"nonpayable","type":"function","name":"blacklist"},{"inputs":[{"internalType":"uint64","name":"version","type":"uint64"}],"stateMutability":"view","type":"function","name":"blacklisted","outputs":[{"internalType":"bool","name":"value","type":"bool"}]},{"inputs":[{"internalType":"uint64","name":"version","type":"uint64"},{"internalType":"address","name":"owner_","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"create","outputs":[{"internalType":"address","name":"entity_","type":"address"}]},{"inputs":[{"internalType":"uint256","name":"index","type":"uint256"}],"stateMutability":"view","type":"function","name":"entity","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"uint64","name":"version","type":"uint64"}],"stateMutability":"view","type":"function","name":"implementation","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"entity_","type":"address"}],"stateMutability":"view","type":"function","name":"isEntity","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"lastVersion","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[{"internalType":"address","name":"entity_","type":"address"},{"internalType":"uint64","name":"newVersion","type":"uint64"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"migrate"},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[],"stateMutability":"view","type":"function","name":"totalEntities","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"},{"inputs":[{"internalType":"address","name":"implementation_","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"whitelist"}],"devdoc":{"kind":"dev","methods":{"blacklist(uint64)":{"details":"The given version will still be deployable.","params":{"version":"version to blacklist"}},"create(uint64,address,bytes)":{"details":"CREATE2 salt is constructed from the given parameters.","params":{"data":"initial data for the entity creation","owner":"initial owner of the entity","version":"entity's version to use"},"returns":{"entity_":"address of the entity"}},"entity(uint256)":{"params":{"index":"index of the entity to get"},"returns":{"_0":"address of the entity"}},"implementation(uint64)":{"details":"Reverts when an invalid version.","params":{"version":"version to get the implementation for"},"returns":{"_0":"address of the implementation"}},"isEntity(address)":{"params":{"account":"address to check"},"returns":{"_0":"if the given address is an entity"}},"lastVersion()":{"details":"If zero, no implementations are whitelisted.","returns":{"_0":"version of the last implementation"}},"migrate(address,uint64,bytes)":{"details":"Only the entity's owner can call this function.","params":{"data":"some data to reinitialize the contract with","entity":"address of the entity to migrate","newVersion":"new version to migrate to"}},"owner()":{"details":"Returns the address of the current owner."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner."},"totalEntities()":{"returns":{"_0":"total number of entities added"}},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."},"whitelist(address)":{"params":{"implementation":"address of the new implementation"}}},"version":1},"userdoc":{"kind":"user","methods":{"blacklist(uint64)":{"notice":"Blacklist a version of entities."},"blacklisted(uint64)":{"notice":"Get if a version is blacklisted (e.g., in case of invalid implementation)."},"create(uint64,address,bytes)":{"notice":"Create a new entity at the factory."},"entity(uint256)":{"notice":"Get an entity given its index."},"implementation(uint64)":{"notice":"Get the implementation for a given version."},"isEntity(address)":{"notice":"Get if a given address is an entity."},"lastVersion()":{"notice":"Get the last available version."},"migrate(address,uint64,bytes)":{"notice":"Migrate a given entity to a given newer version."},"totalEntities()":{"notice":"Get a total number of entities."},"whitelist(address)":{"notice":"Whitelist a new implementation for entities."}},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/contracts/VaultFactory.sol":"VaultFactory"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts/contracts/access/Ownable.sol":{"keccak256":"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb","urls":["bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6","dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Proxy.sol":{"keccak256":"0xbfb6695731de677140fbf76c772ab08c4233a122fb51ac28ac120fc49bbbc4ec","urls":["bzz-raw://68f8fded7cc318efa15874b7c6a983fe17a4a955d72d240353a9a4ca1e1b824c","dweb:/ipfs/QmdcmBL9Qo4Tk3Dby4wFYabGyot9JNeLPxpSXZUgUm92BV"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol":{"keccak256":"0x06a78f9b3ee3e6d0eb4e4cd635ba49960bea34cac1db8c0a27c75f2319f1fd65","urls":["bzz-raw://547d21aa17f4f3f1a1a7edf7167beff8dd9496a0348d5588f15cc8a4b29d052a","dweb:/ipfs/QmT16JtRQSWNpLo9W23jr6CzaMuTAcQcjJJcdRd8HLJ6cE"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/Proxy.sol":{"keccak256":"0xc3f2ec76a3de8ed7a7007c46166f5550c72c7709e3fc7e8bb3111a7191cdedbd","urls":["bzz-raw://e73efb4c2ca655882dc237c6b4f234a9bd36d97159d8fcaa837eb01171f726ac","dweb:/ipfs/QmTNnnv7Gu5fs5G1ZMh7Fexp8N4XUs3XrNAngjcxgiss3e"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol":{"keccak256":"0xc59a78b07b44b2cf2e8ab4175fca91e8eca1eee2df7357b8d2a8833e5ea1f64c","urls":["bzz-raw://5aa4f07e65444784c29cd7bfcc2341b34381e4e5b5da9f0c5bd00d7f430e66fa","dweb:/ipfs/QmWRMh4Q9DpaU9GvsiXmDdoNYMyyece9if7hnfLz7uqzWM"],"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"},"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol":{"keccak256":"0x32ba59b4b7299237c8ba56319110989d7978a039faf754793064e967e5894418","urls":["bzz-raw://1ae50c8b562427df610cc4540c9bf104acca7ef8e2dcae567ae7e52272281e9c","dweb:/ipfs/QmTHiadFCSJUPpRjNegc5SahmeU8bAoY8i9Aq6tVscbcKR"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0x86c1470cbfd878491e5de030072b647352d36bd27122cffb928970b1945282aa","urls":["bzz-raw://ad85dd393ee0a1917c57046abc5155f51f77844b2c6a42c05c1b8dd26d6ff3c1","dweb:/ipfs/QmNqYc8To2NdnpP6E1tGz7t6A7beuENde5yovwov5pW1fA"],"license":"MIT"},"src/contracts/VaultFactory.sol":{"keccak256":"0xa9122dd11e5f21fa97a813e90f8c4905f0a4967b9611dd03437a31377cbdecb8","urls":["bzz-raw://4c2feda1f9c0c7ddf65bccdc99494e4bfbb820fcddc3e4222e3b58ef821424a3","dweb:/ipfs/Qmdmt4rH214jDmDsF9ELvJXVCt8abhk6poSmhJqqzLse3R"],"license":"BUSL-1.1"},"src/contracts/common/MigratableEntityProxy.sol":{"keccak256":"0x78ba27242276232ad10a45265e3c07f0a25722456f6abb3fb3f24a1c8e1b38d1","urls":["bzz-raw://a19623df688e5085036b59fc934e35b72997f875d7ffda1cdc557c6ca468206d","dweb:/ipfs/QmaQiT5uYZu5JmqhMjTDJnsq3nqaHbKrWAjrxKKLesdHV7"],"license":"BUSL-1.1"},"src/contracts/common/MigratablesFactory.sol":{"keccak256":"0x5d1487c3456da4bd0bc2a131eeab97ab92484c923edefaebf190cc08d4080093","urls":["bzz-raw://fec38d2e52e9c5148e95599c133fd6fe66d41296d6fc06e7329d2db199a1798f","dweb:/ipfs/QmeiaydBXHHkJRUnpaZH1C6JQ7HPocTvQbUJBqKTvUeEYv"],"license":"BUSL-1.1"},"src/contracts/common/Registry.sol":{"keccak256":"0x4a4004836d920953a8ec6e223de9a330f43acf7a5b93c6b8b3e4a95e0f129889","urls":["bzz-raw://e8bdda207f3852c683a2b481602239a914f7e26bcd042ade618e263a43b67652","dweb:/ipfs/Qmb8GZykJWxZcfwNp3SqhFizDFydFuV6LXgemV3vnWyLyu"],"license":"BUSL-1.1"},"src/interfaces/IVaultFactory.sol":{"keccak256":"0x6f658b264fc8d530e458a98d83a09cb55ace4d3e509f0a3e9294471bb1bcf84d","urls":["bzz-raw://a7253435e4e1d1ae19a50d14091ddb254f6a36f296440106bfc094623dd1aeba","dweb:/ipfs/QmbHK9yoQ7Ctf3nuDLmqxTWPYD8cEm1TKXzfxePtE87AQN"],"license":"MIT"},"src/interfaces/common/IMigratableEntity.sol":{"keccak256":"0x8f5f2809f3afbe8ebfbb365dd7b57b4dd3b6f9943a6187eaf648d45895b8e3c4","urls":["bzz-raw://0ffe640537d539e7a4fde70d30d3e4c57f4ba9c2c25c450cea713aae38e8fd5c","dweb:/ipfs/QmSUTGzvdcn1R1KB7tLThMRtESsfPbeXDhhhKWGtntzBds"],"license":"MIT"},"src/interfaces/common/IMigratableEntityProxy.sol":{"keccak256":"0x9030ced51ad12e0b3ddaa11bba4a3adcfa29e67b909c46065c14b19d158bb9fd","urls":["bzz-raw://2d859c21510d1a0f06a71abe21dc6424608c1b2e3194a10e4df4cc88c4de9e9f","dweb:/ipfs/QmNi6Buri2oaujc4vTv6bZ5mgMKFsjUmYmQLUNaDCXFEEt"],"license":"MIT"},"src/interfaces/common/IMigratablesFactory.sol":{"keccak256":"0xd4dfe9449bf005dbcbab9e0e85eaaca15a601ff971f34182a0b1832dc4b9d124","urls":["bzz-raw://ff8b73285192a9c64160b008d23a09da33e7164d10a9dc29d1a4464bd9c02be5","dweb:/ipfs/QmZQW2LLV4dQfJ3coENKeycbzXJzi7zdvupsqWA4UV29Gq"],"license":"MIT"},"src/interfaces/common/IRegistry.sol":{"keccak256":"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb","urls":["bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014","dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK"],"license":"MIT"}},"version":1},"id":68} \ No newline at end of file diff --git a/out/VaultHints.sol/VaultHints.json b/out/VaultHints.sol/VaultHints.json index 0cd6008d..1cb37bd8 100644 --- a/out/VaultHints.sol/VaultHints.json +++ b/out/VaultHints.sol/VaultHints.json @@ -1 +1 @@ -{"abi":[{"type":"constructor","inputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"DEFAULT_ADMIN_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"DELEGATOR_FACTORY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"DEPOSITOR_WHITELIST_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"DEPOSIT_LIMIT_SET_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"DEPOSIT_WHITELIST_SET_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"FACTORY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"IS_DEPOSIT_LIMIT_SET_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"SLASHER_FACTORY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"activeBalanceOf","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"activeBalanceOfAt","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"timestamp","type":"uint48","internalType":"uint48"},{"name":"hints","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"activeBalanceOfHints","inputs":[{"name":"vault","type":"address","internalType":"address"},{"name":"account","type":"address","internalType":"address"},{"name":"timestamp","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"activeShares","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"activeSharesAt","inputs":[{"name":"timestamp","type":"uint48","internalType":"uint48"},{"name":"hint","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"activeSharesHint","inputs":[{"name":"vault","type":"address","internalType":"address"},{"name":"timestamp","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"activeSharesHintInternal","inputs":[{"name":"timestamp","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"exists","type":"bool","internalType":"bool"},{"name":"hint","type":"uint32","internalType":"uint32"}],"stateMutability":"view"},{"type":"function","name":"activeSharesOf","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"activeSharesOfAt","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"timestamp","type":"uint48","internalType":"uint48"},{"name":"hint","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"activeSharesOfHint","inputs":[{"name":"vault","type":"address","internalType":"address"},{"name":"account","type":"address","internalType":"address"},{"name":"timestamp","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"activeSharesOfHintInternal","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"timestamp","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"exists","type":"bool","internalType":"bool"},{"name":"hint","type":"uint32","internalType":"uint32"}],"stateMutability":"view"},{"type":"function","name":"activeStake","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"activeStakeAt","inputs":[{"name":"timestamp","type":"uint48","internalType":"uint48"},{"name":"hint","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"activeStakeHint","inputs":[{"name":"vault","type":"address","internalType":"address"},{"name":"timestamp","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"activeStakeHintInternal","inputs":[{"name":"timestamp","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"exists","type":"bool","internalType":"bool"},{"name":"hint","type":"uint32","internalType":"uint32"}],"stateMutability":"view"},{"type":"function","name":"burner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"claim","inputs":[{"name":"recipient","type":"address","internalType":"address"},{"name":"epoch","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"claimBatch","inputs":[{"name":"recipient","type":"address","internalType":"address"},{"name":"epochs","type":"uint256[]","internalType":"uint256[]"}],"outputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"collateral","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"currentEpoch","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"currentEpochStart","inputs":[],"outputs":[{"name":"","type":"uint48","internalType":"uint48"}],"stateMutability":"view"},{"type":"function","name":"delegator","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"deposit","inputs":[{"name":"onBehalfOf","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"depositedAmount","type":"uint256","internalType":"uint256"},{"name":"mintedShares","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"depositLimit","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"depositWhitelist","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"epochAt","inputs":[{"name":"timestamp","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"epochDuration","inputs":[],"outputs":[{"name":"","type":"uint48","internalType":"uint48"}],"stateMutability":"view"},{"type":"function","name":"epochDurationInit","inputs":[],"outputs":[{"name":"","type":"uint48","internalType":"uint48"}],"stateMutability":"view"},{"type":"function","name":"getRoleAdmin","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"grantRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"hasRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"initialize","inputs":[{"name":"initialVersion","type":"uint64","internalType":"uint64"},{"name":"owner_","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"isDelegatorInitialized","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isDepositLimit","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isDepositorWhitelisted","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"value","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isInitialized","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isSlasherInitialized","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isWithdrawalsClaimed","inputs":[{"name":"epoch","type":"uint256","internalType":"uint256"},{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"value","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"migrate","inputs":[{"name":"newVersion","type":"uint64","internalType":"uint64"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"nextEpochStart","inputs":[],"outputs":[{"name":"","type":"uint48","internalType":"uint48"}],"stateMutability":"view"},{"type":"function","name":"onSlash","inputs":[{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"captureTimestamp","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"slashedAmount","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"previousEpochStart","inputs":[],"outputs":[{"name":"","type":"uint48","internalType":"uint48"}],"stateMutability":"view"},{"type":"function","name":"redeem","inputs":[{"name":"claimer","type":"address","internalType":"address"},{"name":"shares","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"withdrawnAssets","type":"uint256","internalType":"uint256"},{"name":"mintedShares","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"renounceRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"callerConfirmation","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"revokeRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setDelegator","inputs":[{"name":"delegator_","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setDepositLimit","inputs":[{"name":"limit","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setDepositWhitelist","inputs":[{"name":"status","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setDepositorWhitelistStatus","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"status","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setIsDepositLimit","inputs":[{"name":"status","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setSlasher","inputs":[{"name":"slasher_","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"slashableBalanceOf","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"slasher","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"staticDelegateCall","inputs":[{"name":"target","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"totalStake","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"version","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"withdraw","inputs":[{"name":"claimer","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"burnedShares","type":"uint256","internalType":"uint256"},{"name":"mintedShares","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"withdrawalShares","inputs":[{"name":"epoch","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"withdrawalSharesOf","inputs":[{"name":"epoch","type":"uint256","internalType":"uint256"},{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"withdrawals","inputs":[{"name":"epoch","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"withdrawalsOf","inputs":[{"name":"epoch","type":"uint256","internalType":"uint256"},{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"event","name":"Claim","inputs":[{"name":"claimer","type":"address","indexed":true,"internalType":"address"},{"name":"recipient","type":"address","indexed":true,"internalType":"address"},{"name":"epoch","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"ClaimBatch","inputs":[{"name":"claimer","type":"address","indexed":true,"internalType":"address"},{"name":"recipient","type":"address","indexed":true,"internalType":"address"},{"name":"epochs","type":"uint256[]","indexed":false,"internalType":"uint256[]"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Deposit","inputs":[{"name":"depositor","type":"address","indexed":true,"internalType":"address"},{"name":"onBehalfOf","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"shares","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"OnSlash","inputs":[{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"captureTimestamp","type":"uint48","indexed":false,"internalType":"uint48"},{"name":"slashedAmount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"RoleAdminChanged","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"previousAdminRole","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"newAdminRole","type":"bytes32","indexed":true,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"RoleGranted","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"sender","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"RoleRevoked","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"sender","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"SetDelegator","inputs":[{"name":"delegator","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"SetDepositLimit","inputs":[{"name":"limit","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"SetDepositWhitelist","inputs":[{"name":"status","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"SetDepositorWhitelistStatus","inputs":[{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"status","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"SetIsDepositLimit","inputs":[{"name":"status","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"SetSlasher","inputs":[{"name":"slasher","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Withdraw","inputs":[{"name":"withdrawer","type":"address","indexed":true,"internalType":"address"},{"name":"claimer","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"burnedShares","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"mintedShares","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"error","name":"AccessControlBadConfirmation","inputs":[]},{"type":"error","name":"AccessControlUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"neededRole","type":"bytes32","internalType":"bytes32"}]},{"type":"error","name":"AddressEmptyCode","inputs":[{"name":"target","type":"address","internalType":"address"}]},{"type":"error","name":"AddressInsufficientBalance","inputs":[{"name":"account","type":"address","internalType":"address"}]},{"type":"error","name":"AlreadyClaimed","inputs":[]},{"type":"error","name":"AlreadyInitialized","inputs":[]},{"type":"error","name":"AlreadySet","inputs":[]},{"type":"error","name":"CheckpointUnorderedInsertion","inputs":[]},{"type":"error","name":"DelegatorAlreadyInitialized","inputs":[]},{"type":"error","name":"DepositLimitReached","inputs":[]},{"type":"error","name":"ExternalCall","inputs":[]},{"type":"error","name":"FailedInnerCall","inputs":[]},{"type":"error","name":"InsufficientClaim","inputs":[]},{"type":"error","name":"InsufficientDeposit","inputs":[]},{"type":"error","name":"InsufficientRedemption","inputs":[]},{"type":"error","name":"InsufficientWithdrawal","inputs":[]},{"type":"error","name":"InvalidAccount","inputs":[]},{"type":"error","name":"InvalidCaptureEpoch","inputs":[]},{"type":"error","name":"InvalidClaimer","inputs":[]},{"type":"error","name":"InvalidCollateral","inputs":[]},{"type":"error","name":"InvalidDelegator","inputs":[]},{"type":"error","name":"InvalidEpoch","inputs":[]},{"type":"error","name":"InvalidEpochDuration","inputs":[]},{"type":"error","name":"InvalidInitialization","inputs":[]},{"type":"error","name":"InvalidLengthEpochs","inputs":[]},{"type":"error","name":"InvalidOnBehalfOf","inputs":[]},{"type":"error","name":"InvalidRecipient","inputs":[]},{"type":"error","name":"InvalidSlasher","inputs":[]},{"type":"error","name":"InvalidTimestamp","inputs":[]},{"type":"error","name":"MathOverflowedMulDiv","inputs":[]},{"type":"error","name":"MissingRoles","inputs":[]},{"type":"error","name":"NoPreviousEpoch","inputs":[]},{"type":"error","name":"NotDelegator","inputs":[]},{"type":"error","name":"NotFactory","inputs":[]},{"type":"error","name":"NotInitialized","inputs":[]},{"type":"error","name":"NotInitializing","inputs":[]},{"type":"error","name":"NotSlasher","inputs":[]},{"type":"error","name":"NotWhitelistedDepositor","inputs":[]},{"type":"error","name":"OwnableInvalidOwner","inputs":[{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"OwnableUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"}]},{"type":"error","name":"ReentrancyGuardReentrantCall","inputs":[]},{"type":"error","name":"SafeCastOverflowedUintDowncast","inputs":[{"name":"bits","type":"uint8","internalType":"uint8"},{"name":"value","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"SafeERC20FailedOperation","inputs":[{"name":"token","type":"address","internalType":"address"}]},{"type":"error","name":"SlasherAlreadyInitialized","inputs":[]},{"type":"error","name":"TooMuchRedeem","inputs":[]},{"type":"error","name":"TooMuchWithdraw","inputs":[]}],"bytecode":{"object":"0x610100806040523461011057306080525f60a0525f60c0527ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a009081549060ff8260401c1661010157506001600160401b036002600160401b0319828216016100bc575b5f60e0526040516152a3908161011582396080518181816110590152818161133101526123a7015260a05181818161137d01526118cc015260c051818181611a350152611ee5015260e0518181816107e00152610a2e0152f35b6001600160401b031990911681179091556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a15f8080610062565b63f92ee8a960e01b8152600490fd5b5f80fdfe60806040526004361015610011575f80fd5b5f3560e01c806301ffc9a7146104a45780631415519b1461049f5780631b66c9e11461049a5780631e9a695014610495578063248a9ca31461049057806327810b6e1461048b578063281f5752146104865780632abe3048146104815780632d73c69c1461047c5780632dd31000146104775780632f2ff15d1461047257806336568abe1461046d578063392e53cd146104685780634105a7dd14610463578063463616711461045e57806347e7ef241461045957806348d3b775146104545780634ff0876a1461044f57806350861adc1461044a57806350f22068146104455780635346e34f1461044057806354fd4d501461043b57806355a2c6721461043657806357ec83cc1461043157806359f769a91461042c5780635cc070761461042757806361a8c8c41461042257806364b03fdc1461041d57806367567add146104185780636da3e06d146104135780636ec1e3f81461040e578063715018a6146104095780637278e31c1461040457806373790ab3146103ff57806376671808146103fa578063794b15b7146103f55780637953b33b146103f05780637c04c80a146103eb578063810da75d146103e65780638326056f146103e157806383cd9cc3146103dc57806387df0788146103d75780638b0e9f3f146103d25780638da5cb5b146103cd57806391d14854146103c85780639d66201b146103c35780639f86fd85146103be578063a1b12202146103b9578063a217fddf146103b4578063a21a1df9146103af578063a2861466146103aa578063a3b54172146103a5578063a5d03223146103a0578063aabc24961461039b578063aad3ec9614610396578063afba70ad14610391578063b13442711461038c578063bd49c35f14610387578063bdc8144b14610382578063bfefcd7b1461037d578063c31e8dd714610378578063ce9b793014610373578063d547741f1461036e578063d8dfeb4514610369578063db38871514610364578063de4997161461035f578063eb5562381461035a578063ecf7085814610355578063efb559d614610350578063f2fde38b1461034b578063f3fef3a314610346578063f5e7ee0f146103415763f9e1bf6c1461033c575f80fd5b61264c565b612622565b61257c565b61254f565b612400565b6123e3565b61238f565b612375565b612309565b6122de565b612292565b61226a565b612200565b6121e6565b612108565b6120ee565b6120c6565b61209c565b611fdb565b611e24565b611dde565b611d91565b611c9e565b611c64565b611c4a565b611c26565b611b92565b611b58565b611afa565b611ac6565b611a64565b611a20565b611867565b61184d565b611834565b6117ce565b6117a7565b611767565b61174d565b61170c565b611438565b6113d1565b6113ac565b611368565b611312565b6112e4565b611248565b61121e565b6111f7565b6110bf565b61103a565b611008565b610f73565b610f5a565b610efd565b610edd565b610ebc565b610bfe565b610bd6565b610b3b565b610af6565b610aab565b610a5d565b610a19565b6109a5565b61079b565b6106cd565b6106a5565b61066c565b610583565b610538565b6104fe565b346104fa5760203660031901126104fa5760043563ffffffff60e01b81168091036104fa57602090637965db0b60e01b81149081156104e9575b506040519015158152f35b6301ffc9a760e01b1490505f6104de565b5f80fd5b346104fa575f3660031901126104fa5760206040517fc6aaadd7371d5e8f9ed6849dd66a66573a3ba37167d03f4352c9ba5693678fac8152f35b346104fa575f3660031901126104fa5760206040517f9c56d972d63cbb4195b3c1484691dfc220fa96a4c47e7b6613bd82a022029e068152f35b6001600160a01b038116036104fa57565b346104fa5760403660031901126104fa576004356105a081610572565b602435906105ac613080565b6001600160a01b0381161561065b57335f908152600e602052604090206105d790614498565b614498565b8211610649576105f76105e86143ab565b6105f0614424565b90846144db565b9182156106345782610608926130af565b9061061f60015f8051602061522e83398151915255565b604080519182526020820192909252f35b0390f35b60405160016245ddc760e11b03198152600490fd5b604051632418411f60e11b8152600490fd5b6040516208978560e71b8152600490fd5b346104fa5760203660031901126104fa576004355f525f8051602061520e8339815191526020526020600160405f200154604051908152f35b346104fa575f3660031901126104fa576001546040516001600160a01b039091168152602090f35b346104fa575f3660031901126104fa576106e5612c66565b80156107465760015465ffffffffffff8160a01c16915f198101908111610741576107139160d01c90612695565b81018091116107415761072861063091613229565b60405165ffffffffffff90911681529081906020820190565b612666565b604051639fa56a5b60e01b8152600490fd5b600435906001600160401b03821682036104fa57565b9181601f840112156104fa578235916001600160401b0383116104fa57602083818601950101116104fa57565b346104fa5760403660031901126104fa576107b4610758565b6001600160401b036024358181116104fa576107d490369060040161076e565b50506107de613080565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316330361085a575f8051602061524e833981519152549060ff8260401c1692831561084a575b505050610838575f80fd5b60405163f92ee8a960e01b8152600490fd5b81169116101590505f808061082d565b604051631966391b60e11b8152600490fd5b65ffffffffffff8116036104fa57565b634e487b7160e01b5f52604160045260245ffd5b606081019081106001600160401b038211176108ab57604052565b61087c565b604081019081106001600160401b038211176108ab57604052565b608081019081106001600160401b038211176108ab57604052565b90601f801991011681019081106001600160401b038211176108ab57604052565b6040519061016082018281106001600160401b038211176108ab57604052565b60405190610934826108b0565b565b6001600160401b0381116108ab57601f01601f191660200190565b92919261095d82610936565b9161096b60405193846108e6565b8294818452818301116104fa578281602093845f960137010152565b9080601f830112156104fa578160206109a293359101610951565b90565b346104fa5760603660031901126104fa576004356109c281610572565b602435906109cf8261086c565b604435906001600160401b0382116104fa576020926109f5610a11933690600401610987565b6001600160a01b039092165f908152600e85526040902061340e565b604051908152f35b346104fa575f3660031901126104fa576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346104fa5760403660031901126104fa57610aa9602435600435610a8082610572565b805f525f8051602061520e833981519152602052610aa4600160405f2001546135e5565b6138e5565b005b346104fa5760403660031901126104fa57602435610ac881610572565b336001600160a01b03821603610ae457610aa99060043561391b565b60405163334bd91960e11b8152600490fd5b346104fa575f3660031901126104fa5760ff60025460a01c1680610b22575b6020906040519015158152f35b5060035460a01c60ff16610b15565b801515036104fa57565b346104fa5760203660031901126104fa57600435610b5881610b31565b610b60613080565b610b686134da565b5f54901515908160ff8216151514610bc45760ff191660ff8216175f556040519081527f3e12b7b36c75ac9609a3f58609b331210428e1a85909132638955ba0301eec3390602090a160015f8051602061522e83398151915255005b60405163a741a04560e01b8152600490fd5b346104fa575f3660031901126104fa57602065ffffffffffff60015460a01c16604051908152f35b346104fa576040806003193601126104fa576004803591610c1e83610572565b610c26613080565b6001600160a01b0391838316908115610eae575f5460ff811680610e95575b610e865783516370a0823160e01b808252308483019081529096602093909160109190911c82169084908490819083010381845afa928315610e5e575f93610e63575b50610c9a9060243590309033906139ad565b5f5486519788523085890190815290979184918391908290819060200103918b60101c165afa908115610e5e57610cd9935f92610e31575b5050612688565b938415610e225760081c60ff1680610e0d575b610dff57509061063091610d9d610d016143ab565b95610d4a610d0d614424565b610d35610d1b8a838b6144db565b99610d2f8a610d2942613229565b926126b6565b90613b01565b5050610d4489610d2942613229565b90613be1565b50506001600160a01b0381165f908152600e6020526040902090610d9788610d926105d2610d7742613229565b6001600160a01b039095165f908152600e6020526040902090565b6126b6565b91613cbd565b505081518481526020810186905233907fdcbc1c05240f31ff3ad067ef1ee35ce4997762752e3a095284754544f4c709d790604090a3610de960015f8051602061522e83398151915255565b5191825260208201929092529081906040820190565b8251632484557960e01b8152fd5b50610e1a84610d926143ab565b815410610cec565b50825163070f6eed60e11b8152fd5b610e509250803d10610e57575b610e4881836108e6565b8101906126e4565b5f80610cd2565b503d610e3e565b6126f3565b610c9a919350610e7f90853d8711610e5757610e4881836108e6565b9290610c88565b5082516304f63b8560e01b8152fd5b50335f9081526005602052604090205460ff1615610c45565b8251630d534ce360e11b8152fd5b346104fa575f3660031901126104fa57602060ff5f54166040519015158152f35b346104fa575f3660031901126104fa57602060015460d01c604051908152f35b346104fa575f3660031901126104fa57602060ff60025460a01c166040519015158152f35b9060406003198301126104fa57600435610f3b8161086c565b91602435906001600160401b0382116104fa576109a291600401610987565b346104fa576020610a11610f6d36610f22565b90613284565b346104fa5760203660031901126104fa57600435610f9081610b31565b610f98613080565b610fa0613537565b5f54901515908160ff8260081c16151514610bc45761ff001916600882901b61ff0016175f556040519081527ffa7a25a0b611d4ba3c0ea990e90dc23d484a5dd7a1be4733fef2946ba74530c690602090a1610aa960015f8051602061522e83398151915255565b346104fa575f3660031901126104fa5760206001600160401b035f8051602061524e8339815191525416604051908152f35b346104fa5760203660031901126104fa576004356110578161086c565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633036110ad5761109090613d9f565b60408051941515855263ffffffff91909116602085015292915050f35b604051637ca475e560e11b8152600490fd5b346104fa5760603660031901126104fa576110d8610758565b6024356110e481610572565b6001600160401b03916044358381116104fa5761110590369060040161076e565b5f8051602061524e8339815191529491855494838616806111e65760ff8760401c169081156111d9575b50610838577fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2966111d49661119c958716906001600160401b0319161790556111975f8051602061524e833981519152600160401b68ff000000000000000019825416179055565b6126fe565b5f8051602061524e833981519152805468ff0000000000000000191690556040516001600160401b0390911681529081906020820190565b0390a1005b905084861611155f61112f565b60405162dc149f60e41b8152600490fd5b346104fa5760203660031901126104fa576020610a1160043561121981610572565b612b1e565b346104fa5760203660031901126104fa576004355f526006602052602060405f2054604051908152f35b346104fa575f3660031901126104fa5760015465ffffffffffff61127e818360a01c1692611274612c66565b9060d01c90612695565b820180921161074157611292602092613229565b60405191168152f35b60409060031901126104fa576004356112b381610572565b906024356109a28161086c565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b346104fa576106306112fe6112f83661129b565b90612bac565b6040519182916020835260208301906112c0565b346104fa5760203660031901126104fa5760043561132f8161086c565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633036110ad5761109090613ea4565b346104fa575f3660031901126104fa576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346104fa575f3660031901126104fa57602060ff60035460a01c166040519015158152f35b346104fa575f3660031901126104fa576113e96141eb565b5f805160206151ae83398151915280546001600160a01b031981169091555f906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b346104fa5760403660031901126104fa576004356024356114588161086c565b611460613080565b60035461147d906001600160a01b03165b6001600160a01b031690565b33036116fa5761148b612c66565b9061149581612c9a565b90821515806116e9575b80156116e0575b6116ce57610630937ff9d090c096f71cd1659861a9ce5b6f384bceb4e2fa4e4a19edf6489a9b8d56c7926114d86143ab565b946114f36114e5826126a8565b5f52600660205260405f2090565b54908281036115e7575061150781876126b6565b6115118185614223565b9687806115a0575b50505050505b8361156c575b6040805191825265ffffffffffff929092166020820152908101839052606090a161155c60015f8051602061522e83398151915255565b6040519081529081906020820190565b5f5461159b9085906115899060101c6001600160a01b0316611471565b6001546001600160a01b0316906142d1565b611525565b6115dc93610cd283610d2f6115c66115bf6114e5986115d6988861423f565b8096612688565b946115d042613229565b92612688565b926126a8565b555f80808087611519565b91506115fb825f52600660205260405f2090565b549061160b81610d92848a6126b6565b906116168286614223565b9788611627575b505050505061151f565b61169c938361164f9361165c8c61165761164561168d99888461423f565b978895858461423f565b948592612688565b612688565b938484106116a7575b610cd290610d2f61167b9596976115d042613229565b6116876114e5876126a8565b55612688565b915f52600660205260405f2090565b555f8080808061161d565b916116c3610cd2916116bd8661167b9798612688565b906126b6565b859450929050611665565b604051635e18d2a560e01b8152600490fd5b508282116114a6565b506116f38361267a565b821061149f565b60405163dabc4ad960e01b8152600490fd5b346104fa575f3660031901126104fa5760015465ffffffffffff808260a01c1691611735612c66565b600181018091116107415761127e9160d01c90612695565b346104fa575f3660031901126104fa576020610a11612c66565b346104fa5760203660031901126104fa5760043561178481610572565b60018060a01b03165f526005602052602060ff60405f2054166040519015158152f35b346104fa5760203660031901126104fa576020610a116004356117c98161086c565b612c9a565b346104fa5760403660031901126104fa576004356117eb81610572565b6024356001600160401b038082116104fa57366023830112156104fa5781600401359081116104fa573660248260051b840101116104fa5761063092602461155c930190612cd5565b346104fa576020610a1161184736610f22565b90613359565b346104fa576106306112fe6118613661129b565b90612e03565b346104fa576020806003193601126104fa57600480359061188782610572565b61188f613080565b60025460a01c60ff16611a11576040516302910f8b60e31b81526001600160a01b03838116838301908152909491908290829081906020010381887f0000000000000000000000000000000000000000000000000000000000000000165afa908115610e5e575f916119e4575b50156119d45760405163fbfa77cf60e01b8152838516949082818581895afa928315610e5e575f936119a5575b5050309116036119965750600280546001600160a01b03929092166001600160a81b031990921691909117600160a01b1790557fdb2160616f776a37b24808115554e79439bf26cccbbd4438190cc6d28e80ecd15f80a2610aa960015f8051602061522e83398151915255565b60405163b9f0f17160e01b8152fd5b6119c5929350803d106119cd575b6119bd81836108e6565b810190612e5a565b905f80611929565b503d6119b3565b506040516324e5af8d60e21b8152fd5b611a049150823d8411611a0a575b6119fc81836108e6565b810190612e3a565b5f6118fc565b503d6119f2565b604051631380833b60e01b8152fd5b346104fa575f3660031901126104fa576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346104fa575f3660031901126104fa57611a7c612c66565b611a846143ab565b90805f52600660205260405f205482018092116107415760018101809111610741575f52600660205260405f2054810180911161074157602090604051908152f35b346104fa575f3660031901126104fa575f805160206151ae833981519152546040516001600160a01b039091168152602090f35b346104fa5760403660031901126104fa57602060ff611b4c602435611b1e81610572565b6004355f525f8051602061520e833981519152845260405f209060018060a01b03165f5260205260405f2090565b54166040519015158152f35b346104fa5760203660031901126104fa57600435611b7581610572565b60018060a01b03165f52600e6020526020610a1160405f20614498565b346104fa5760403660031901126104fa57600435611baf81610572565b6024356001600160401b0381116104fa575f91611bd18392369060040161076e565b90816040519283928337810184815203915af4611c1e611bef612e6f565b91611c106040519384921515602084015260408084015260608301906112c0565b03601f1981018352826108e6565b805190602001fd5b346104fa575f3660031901126104fa57602060ff5f5460081c166040519015158152f35b346104fa575f3660031901126104fa5760206040515f8152f35b346104fa575f3660031901126104fa5760206040517f4a634bc14d77baf979756509ef4298c6f6318af357828612545267ee2eb792338152f35b346104fa5760403660031901126104fa57600435611cbb81610572565b602435611cc781610b31565b611ccf613080565b611cd761358e565b6001600160a01b038216918215611d7f575f8381526005602052604090205460ff16151582151514610bc4576001600160a01b03165f9081526005602052604090207ff991b1ecfb5115cbb36a2b2e2240c058406d2acc2fcc6e9e2dc99d845ff70a6291611d6691611d54908260ff801983541691151516179055565b60405190151581529081906020820190565b0390a2610aa960015f8051602061522e83398151915255565b604051630da30f6560e31b8152600490fd5b346104fa5760403660031901126104fa576020611dd5602435611db381610572565b6004355f526008835260405f209060018060a01b03165f5260205260405f2090565b54604051908152f35b346104fa5760403660031901126104fa57602060ff611b4c602435611e0281610572565b6004355f526009845260405f209060018060a01b03165f5260205260405f2090565b346104fa576020806003193601126104fa576004803590611e4482610572565b611e4c613080565b60035460a01c60ff16611fcc576001600160a01b03828116939084611eba575b6003805460ff60a01b1916600160a01b179055847fe7e4c932e03abddfe20f83af42c33627e816115c7ec2b168441f65dc14bfc3ba5f80a2610aa960015f8051602061522e83398151915255565b6040516302910f8b60e31b81526001600160a01b0385168482019081528390829081906020010381857f0000000000000000000000000000000000000000000000000000000000000000165afa908115610e5e575f91611faf575b5015611f9e5760405163fbfa77cf60e01b815282818581895afa928315610e5e575f93611f7f575b505030911603611f705750600380546001600160a01b0319166001600160a01b039092169190911790555f808080611e6c565b604051633f3e089160e21b8152fd5b611f96929350803d106119cd576119bd81836108e6565b905f80611f3d565b60405163dabc4ad960e01b81528390fd5b611fc69150833d8511611a0a576119fc81836108e6565b5f611f15565b60405163703fe2e560e01b8152fd5b346104fa5760403660031901126104fa57600435611ff881610572565b60243590612004613080565b6001600160a01b039181831690811561208a57612035610630946120278361430f565b9485915f5460101c166142d1565b604080519182526020820184905233917f865ca08d59f5cb456e85cd2f7ef63664ea4f73327414e9d8152c4158b0e946459190a360015f8051602061522e833981519152556040519081529081906020820190565b604051634e46966960e11b8152600490fd5b346104fa5760203660031901126104fa576004355f526007602052602060405f2054604051908152f35b346104fa575f3660031901126104fa576003546040516001600160a01b039091168152602090f35b346104fa575f3660031901126104fa576020610a116143ab565b346104fa5760203660031901126104fa57600435612124613080565b335f9081527f2d4ccbfe9f7672a6f2537c1e5bce6adacb73706879154bbab6ce096012d6721660205260409020547f4a634bc14d77baf979756509ef4298c6f6318af357828612545267ee2eb792339060ff16156121c857508060045414610bc4576020817f854df3eb95564502c8bc871ebdd15310ee26270f955f6c6bd8cea68e75045bc092600455604051908152a160015f8051602061522e83398151915255005b6044906040519063e2517d3f60e01b82523360048301526024820152fd5b346104fa575f3660031901126104fa576020610a11614424565b346104fa5760203660031901126104fa5760043561221d81610572565b612225612c66565b61222e82612b1e565b916122398183612f59565b830180931161074157600182018092116107415761225691612f59565b810180911161074157602090604051908152f35b346104fa575f3660031901126104fa576002546040516001600160a01b039091168152602090f35b346104fa5760403660031901126104fa57610aa96024356004356122b582610572565b805f525f8051602061520e8339815191526020526122d9600160405f2001546135e5565b61391b565b346104fa575f3660031901126104fa575f5460405160109190911c6001600160a01b03168152602090f35b346104fa575f3660031901126104fa5760206040517fbae4ee3de6c709ff9a002e774c5b78cb381560b219213c88ae0f1e207c03c0238152f35b60609060031901126104fa5760043561235b81610572565b9060243561236881610572565b906044356109a28161086c565b346104fa576106306112fe61238936612343565b91612e9e565b346104fa5761239d3661129b565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811633036110ad5761109092165f52600e60205260405f20613f6a565b346104fa575f3660031901126104fa576020600454604051908152f35b346104fa5760603660031901126104fa5760043561241d81610572565b6024359061242a8261086c565b6001600160401b03916044358381116104fa5761244b90369060040161076e565b9092604093845161245b81610890565b606081526060602082015260608682015292806124ba575b610630866124ab87876124a561248c89848451916126c3565b928561249c602085015183613359565b93015190613284565b916144db565b90519081529081906020820190565b81019392506020818503126104fa578035908682116104fa5701926060848203126104fa578451956124eb87610890565b84358181116104fa5782612500918701610987565b875260208501358181116104fa578261251a918701610987565b6020880152858501359081116104fa57610630966125436124a59361248c936124ab9801610987565b87820152939450612473565b346104fa5760203660031901126104fa57610aa960043561256f81610572565b6125776141eb565b612ee8565b346104fa5760403660031901126104fa5760043561259981610572565b6024356125a4613080565b6001600160a01b0382161561065b578015612610576125d36125c4614424565b6125cc6143ab565b90836148f9565b335f908152600e602052604090209092906125ed90614498565b83116125fe576106089183916130af565b6040516321727a3760e11b8152600490fd5b604051636c6c627d60e11b8152600490fd5b346104fa5760403660031901126104fa576020610a1160243561264481610572565b600435612f59565b346104fa576106306112fe61266036612343565b91612fb7565b634e487b7160e01b5f52601160045260245ffd5b5f1981019190821161074157565b9190820391821161074157565b8181029291811591840414171561074157565b906001820180921161074157565b9190820180921161074157565b6001600160a01b03165f908152600e602052604090206109a292919061340e565b908160209103126104fa575190565b6040513d5f823e3d90fd5b91612750916127419161270f614d5b565b612717614d5b565b60015f8051602061522e833981519152556001600160a01b0394808616612b04575b503691610951565b60208082518301019101614054565b805182166001600160a01b031615612af257604080820165ffffffffffff61277e825165ffffffffffff1690565b1615612ae15760c08301805190929061279f906001600160a01b0316611471565b15612992575b50916128de6101409261287d61285861293c966127f36127cb875160018060a01b031690565b5f805462010000600160b01b03191660109290921b62010000600160b01b0316919091179055565b6020860151600180546001600160a01b0319166001600160a01b0390921691909117905561284c61282342613229565b6001805465ffffffffffff60a01b191660a09290921b65ffffffffffff60a01b16919091179055565b5165ffffffffffff1690565b600180546001600160d01b031660d09290921b6001600160d01b031916919091179055565b61289d61288d6060850151151590565b60ff80195f541691151516175f55565b6128c46128ad6080850151151590565b61ff005f5491151560081b169061ff001916175f55565b6128d160a0840151600455565b516001600160a01b031690565b848116612982575b5060e08101516001600160a01b0316848116612972575b506101008101516001600160a01b0316848116612962575b506101208101516001600160a01b0316848116612952575b5001516001600160a01b031690565b9081166129465750565b61294f90613876565b50565b61295b90613807565b505f61292d565b61296b90613798565b505f612915565b61297b906136c2565b505f6128fd565b61298b90613611565b505f6128e6565b60e08401516129a9906001600160a01b0316611471565b15612a7e575b6101208401516129c7906001600160a01b0316611471565b6127a557608084015115612a345760a08401511580612a15575b612a055750916128de6101409261287d61285861293c965b949650505092506127a5565b5163183c854560e21b8152600490fd5b50610140840151612a2e906001600160a01b0316611471565b156129e1565b60a084015115801590612a5e575b612a055750916128de6101409261287d61285861293c966129f9565b50610140840151612a77906001600160a01b0316611471565b1515612a42565b606084015115612ab457610100840151612aa0906001600160a01b0316611471565b6129af575163183c854560e21b8152600490fd5b610100840151612acc906001600160a01b0316611471565b156129af575163183c854560e21b8152600490fd5b81516368f5f8f160e11b8152600490fd5b6040516368f7a67560e11b8152600490fd5b612b1890612b10614d5b565b612577614d5b565b5f612739565b6001600160a01b03165f908152600e60205260409020612b3d90614498565b612b456143ab565b612b4d614424565b90600181018091116107415760018201809211610741576109a29261423f565b519061093482610b31565b519063ffffffff821682036104fa57565b91908260409103126104fa576109a260208351612ba581610b31565b9301612b78565b9190612be8612bf79160609465ffffffffffff604051926367567add60e01b602085015216602483015260248252612be382610890565b61411d565b60208082518301019101612b89565b90612bff5750565b90915063ffffffff60405191166020820152602081526109a2816108b0565b65ffffffffffff918216908216039190821161074157565b634e487b7160e01b5f52601260045260245ffd5b9065ffffffffffff809116918215612c6157160490565b612c36565b612c6f42613229565b612c96600154612c8c65ffffffffffff93848360a01c1690612c1e565b9060d01c90612c4a565b1690565b6001549065ffffffffffff91828160a01c16918284821610612cc357612c9692612c8c91612c1e565b60405163b7d0949760e01b8152600490fd5b90612cde613080565b5f926001600160a01b03831692831561208a578115612d96575f5b828110612d7457505f547f326b6aff1cd2fb1c8234de4f9dcfb9047c5c36eb9ef2eb34af5121e969a75d279286929091612d49918491612d449060101c6001600160a01b0316611471565b6142d1565b612d5a604051928392339684612dd1565b0390a39061093460015f8051602061522e83398151915255565b94612d8f6001916116bd612d89898789612dbc565b3561430f565b9501612cf9565b60405163edf3b93360e01b8152600490fd5b634e487b7160e01b5f52603260045260245ffd5b9190811015612dcc5760051b0190565b612da8565b604080825281018390529392916001600160fb1b0381116104fa5760209160609160051b809183880137850101930152565b9190612be8612bf79160609465ffffffffffff60405192632ad1633960e11b602085015216602483015260248252612be382610890565b908160209103126104fa57516109a281610b31565b519061093482610572565b908160209103126104fa57516109a281610572565b3d15612e99573d90612e8082610936565b91612e8e60405193846108e6565b82523d5f602084013e565b606090565b604051631d6aac4760e31b60208201526001600160a01b03909216602483015265ffffffffffff909216604480830191909152815260609291612bf791612be891612be3826108cb565b6001600160a01b03908116908115612f41575f805160206151ae83398151915280546001600160a01b031981168417909155167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3565b604051631e4fbdf760e01b81525f6004820152602490fd5b90612f7f90825f52600860205260405f209060018060a01b03165f5260205260405f2090565b54905f52600660205260405f2054600760205260405f205490600181018091116107415760018201809211610741576109a29261423f565b92919092612fdc612fcb8360609684612e9e565b92612fd68184612bac565b92612e03565b90825115801590613076575b801561306c575b612ff857505050565b6130459394506109a29291611c10916040519361301485610890565b8452602084019081526040840191825261305b604051968795602080880152516060604088015260a08701906112c0565b915191603f1992838783030160608801526112c0565b9151908483030160808501526112c0565b5081511515612fef565b5080511515612fe8565b5f8051602061522e833981519152600281541461309d5760029055565b604051633ee5aeb560e01b8152600490fd5b335f908152600e60205260409020939291906130ca42613229565b335f908152600e602052604090206130e190614498565b918483039283116107415761311c7febff2602b3f468259e1e99f613fed6691f3a6526effe6ef3e768ba7ae7a36c4f9385936131a799613cbd565b505061313661312a42613229565b610d4487611657614424565b505061315061314442613229565b610d2f846116576143ab565b50506131f5816131e0613169613164612c66565b6126a8565b6131bf61317e825f52600660205260405f2090565b54613191835f52600760205260405f2090565b5461319d82828b6144db565b9d8e998a936126b6565b6131b9855f52600660205260405f2090565b556126b6565b6131d1825f52600760205260405f2090565b555f52600860205260405f2090565b9060018060a01b03165f5260205260405f2090565b6132008382546126b6565b9055604080519485526020850195909552938301526001600160a01b03909216913391606090a3565b65ffffffffffff9081811161323c571690565b604490604051906306dfcc6560e41b8252603060048301526024820152fd5b908160209103126104fa576109a290612b78565b90600163ffffffff8093160191821161074157565b9080511561334f578060208061329f9351830101910161325b565b6132a881614720565b906132b9825165ffffffffffff1690565b9065ffffffffffff808516921682811461334357821191826132ef575b50506132e657506109a2906144fc565b60209150015190565b9091506132fd600a5461267a565b63ffffffff831614918215613316575b50505f806132d6565b61333b91925061284c61332b6133309261326f565b614720565b65ffffffffffff1690565b115f8061330d565b50505060209150015190565b506109a2906144fc565b9080511561340457806020806133749351830101910161325b565b61337d816147a5565b9061338e825165ffffffffffff1690565b9065ffffffffffff808516921682811461334357821191826133bb575b50506132e657506109a2906145ad565b9091506133c9600c5461267a565b63ffffffff8316149182156133e2575b50505f806133ab565b6133fc91925061284c6133f76133309261326f565b6147a5565b115f806133d9565b506109a2906145ad565b918051156134d057806020806134299351830101910161325b565b916134348382614820565b92613445845165ffffffffffff1690565b9065ffffffffffff80851692168281146134c4578211918261347b575b5050613472576109a29250614657565b50506020015190565b909150613488835461267a565b63ffffffff8316149182156134a1575b50505f80613462565b6134bc91925061284c6134b66133309261326f565b85614820565b115f80613498565b50505050506020015190565b506109a291614657565b335f9081527f03b26b53c87faa1058f30bb5d2fee64f717719a0d9b7e4f4df027aa5e9b6ed69602052604090207fbae4ee3de6c709ff9a002e774c5b78cb381560b219213c88ae0f1e207c03c0239060ff905b5416156121c85750565b335f9081527fe41986b390c4ce6791b87f7423b5fab7a81a0e6d89660b6264f697d008b2243a602052604090207fc6aaadd7371d5e8f9ed6849dd66a66573a3ba37167d03f4352c9ba5693678fac9060ff9061352d565b335f9081527f0287ab4cb376ea253d7b2ce0c2cbf458f7deae9458470d74afdfbbee484e9540602052604090207f9c56d972d63cbb4195b3c1484691dfc220fa96a4c47e7b6613bd82a022029e069060ff9061352d565b5f8181525f8051602061520e83398151915260209081526040808320338452909152902060ff9061352d565b6001600160a01b0381165f9081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d60205260409020545f8051602061520e8339815191529060ff166136bc575f808052602091825260408082206001600160a01b038516835290925220805460ff1916600117905533906001600160a01b03165f7f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d8180a4600190565b50505f90565b6001600160a01b0381165f9081527f03b26b53c87faa1058f30bb5d2fee64f717719a0d9b7e4f4df027aa5e9b6ed69602052604090207fbae4ee3de6c709ff9a002e774c5b78cb381560b219213c88ae0f1e207c03c023905f8051602061520e8339815191529060ff905b5416613791575f828152602091825260408082206001600160a01b038616835290925220805460ff1916600117905533916001600160a01b0316907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d5f80a4600190565b5050505f90565b6001600160a01b0381165f9081527f0287ab4cb376ea253d7b2ce0c2cbf458f7deae9458470d74afdfbbee484e9540602052604090207f9c56d972d63cbb4195b3c1484691dfc220fa96a4c47e7b6613bd82a022029e06905f8051602061520e8339815191529060ff9061372d565b6001600160a01b0381165f9081527fe41986b390c4ce6791b87f7423b5fab7a81a0e6d89660b6264f697d008b2243a602052604090207fc6aaadd7371d5e8f9ed6849dd66a66573a3ba37167d03f4352c9ba5693678fac905f8051602061520e8339815191529060ff9061372d565b6001600160a01b0381165f9081527f2d4ccbfe9f7672a6f2537c1e5bce6adacb73706879154bbab6ce096012d67216602052604090207f4a634bc14d77baf979756509ef4298c6f6318af357828612545267ee2eb79233905f8051602061520e8339815191529060ff9061372d565b5f8181525f8051602061520e833981519152602081815260408084206001600160a01b038716855290915290912060ff9061372d565b5f8181525f8051602061520e833981519152602081815260408084206001600160a01b03871685529091529091205460ff1615613791575f828152602091825260408082206001600160a01b038616835290925220805460ff1916905533916001600160a01b0316907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b5f80a4600190565b6040516323b872dd60e01b60208201526001600160a01b03928316602482015292909116604483015260648083019390935291815260a08101918183106001600160401b038411176108ab5761093492604052614888565b600b54811015612dcc57600b5f525f805160206151ee83398151915201905f90565b600d54811015612dcc57600d5f525f805160206151ce83398151915201905f90565b8054821015612dcc575f5260205f2001905f90565b600d54600160401b8110156108ab576001810180600d55811015612dcc57600d5f525f805160206151ce8339815191520155565b600b54600160401b8110156108ab576001810180600b55811015612dcc57600b5f525f805160206151ee8339815191520155565b90815491600160401b8310156108ab5782613ae991600161093495018155613a49565b90919082549060031b91821b915f19901b1916179055565b919091600d9081548015613bac575b50613b19614939565b50929091815492613b286143ab565b9481613b97575b5015613b7457505f1982018281116107415781541115612dcc575f527fd7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb4018390559190565b613b88926001600160d01b03169150614e92565b5050613b9383613a5e565b9190565b65ffffffffffff83811691161490505f613b2f565b600160401b8110156108ab5760018101808455811015612dcc575f908382525f805160206151ce83398151915201555f613b10565b919091600b9081548015613c88575b50613bf96149a4565b50929091815492613c08614424565b9481613c73575b5015613c5457505f1982018281116107415781541115612dcc575f527f0175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db8018390559190565b613c68926001600160d01b03169150614f8d565b5050613b9383613a92565b65ffffffffffff83811691161490505f613c0f565b600160401b8110156108ab5760018101808455811015612dcc575f908382525f805160206151ee83398151915201555f613bf0565b90929192600182019081548015613d4b575b5084613cda846149ee565b50949092845493613cea83614498565b9681613d36575b5015613d13575050505f19810190811161074157613ae98591613b9393613a49565b613b93949293613d2f926001600160d01b039091169190615037565b5050613ac6565b65ffffffffffff83811691161490505f613cf1565b600160401b8110156108ab57806001613d679201845583613a49565b8154905f199060031b1b191690555f613ccf565b90604051613d88816108b0565b915465ffffffffffff8116835260301c6020830152565b600a54905f829160058411613e4a575b613db99350614b55565b8015613e3f57613de9613de4613dce8361267a565b600a5f525f8051602061518e8339815191520190565b613d7b565b91613e38613e2f613e29613e1f613e1a6020613e0b895165ffffffffffff1690565b9801516001600160d01b031690565b613a05565b90549060031b1c90565b9361267a565b63ffffffff1690565b6001939291565b505f905f905f905f90565b9192613e5581614a1c565b810390811161074157600a5f525f8051602061518e833981519152810154613db9949065ffffffffffff9081169085161015613e92575091613daf565b929150613e9e906126a8565b90613daf565b600c54905f829160058411613f10575b613ebe9350614bbe565b8015613e3f57613ee9613de4613ed38361267a565b600c5f525f8051602061516e8339815191520190565b91613e38613e2f613e29613e1f613f0b6020613e0b895165ffffffffffff1690565b613a27565b9192613f1b81614a1c565b810390811161074157600c5f525f8051602061516e833981519152810154613ebe949065ffffffffffff9081169085161015613f58575091613eb4565b929150613f64906126a8565b90613eb4565b91908254905f829160058411613fed575b613f86935085614cf9565b908115613fe157613e38613e2f613e29613e1f613fb3613de4613fa88861267a565b895f5260205f200190565b966001613fda6020613fcb8b5165ffffffffffff1690565b9a01516001600160d01b031690565b9101613a49565b5f925082915081908190565b9192613ff881614a1c565b810390811161074157613f8693865f526140216133308360205f200165ffffffffffff90541690565b65ffffffffffff85161015614037575091613f7b565b929150614043906126a8565b90613f7b565b51906109348261086c565b90816101609103126104fa57614068610907565b9061407281612e4f565b825261408060208201612e4f565b602083015261409160408201614049565b60408301526140a260608201612b6d565b60608301526140b360808201612b6d565b608083015260a081015160a08301526140ce60c08201612e4f565b60c08301526140df60e08201612e4f565b60e08301526101006140f2818301612e4f565b90830152610120614104818301612e4f565b90830152614116610140809201612e4f565b9082015290565b905f8060409384519360209461415481611c1088820194639f86fd8560e01b86523060248401528a604484015260648301906112c0565b51915afa50614161612e6f565b805181019280828486019503126104fa57828201519161418083610b31565b81810151906001600160401b0382116104fa57019084603f830112156104fa57838201516141ad81610936565b956141ba835197886108e6565b8187528282850101116104fa578085925f94018388015e85010152156141de575090565b9080519182156104fa5701fd5b5f805160206151ae833981519152546001600160a01b0316330361420b57565b60405163118cdaa760e01b8152336004820152602490fd5b9080821015614230575090565b905090565b8115612c61570490565b9091828202915f19848209938380861095039480860395146142c457848311156142b257829109815f038216809204600280826003021880830282030280830282030280830282030280830282030280830282030280920290030293600183805f03040190848311900302920304170290565b60405163227bc15360e01b8152600490fd5b5050906109a29250614235565b60405163a9059cbb60e01b60208201526001600160a01b0390921660248301526044808301939093529181526109349161430a826108cb565b614888565b90614318612c66565b821015614399575f82815260096020908152604080832033845290915290205460ff16614387576143493383612f59565b918215614375575f9081526009602090815260408083203384529091529020805460ff19166001179055565b6040516366c0bcbf60e11b8152600490fd5b604051630c8d9eab60e31b8152600490fd5b60405163d5b25b6360e01b8152600490fd5b600c54806143eb57505f5b6001600160d01b038116156143e657600d54811015612dcc57600d5f525f805160206151ce833981519152015490565b505f90565b805f1981011161074157600c5f527fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c6015460301c6143b6565b600a548061445f57505f5b6001600160d01b038116156143e657600b54811015612dcc57600b5f525f805160206151ee833981519152015490565b805f1981011161074157600a5f527fc65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a7015460301c61442f565b8054806144bd57505f5b6001600160d01b038116156136bc576001613e1f9201613a49565b5f1990808281011161074157825f5260205f2001015460301c6144a2565b9190600181018091116107415760018201809211610741576109a29261423f565b600a54905f829160058411614554575b6145169350614c27565b8061453957505f5b6001600160d01b038116156143e657613e1f6109a291613a05565b614548613dce61454f9261267a565b5460301c90565b61451e565b919261455f81614a1c565b81039081116107415761451693600a5f5265ffffffffffff80835f8051602061518e833981519152015416908516105f1461459b57509161450c565b9291506145a7906126a8565b9061450c565b600c54905f8291600584116145fe575b6145c79350614c90565b806145ea57505f5b6001600160d01b038116156143e657613e1f6109a291613a27565b614548613ed36145f99261267a565b6145cf565b919261460981614a1c565b8103908111610741576145c793600c5f5265ffffffffffff80835f8051602061516e833981519152015416908516105f146146455750916145bd565b929150614651906126a8565b906145bd565b908154905f8291600584116146ba575b614672935084614cf9565b8061469a57505f905b6001600160d01b038216156136bc576109a2916001613e1f9201613a49565b6145486146a96146b49261267a565b835f5260205f200190565b9061467b565b91926146c581614a1c565b81039081116107415761467293855f5265ffffffffffff808360205f20015416908516105f146146f6575091614667565b929150614702906126a8565b90614667565b60405190614715826108b0565b5f6020838281520152565b614728614708565b50614731614708565b50600a54811015612dcc5761475890600a5f525f8051602061518e83398151915201613d7b565b65ffffffffffff81511690602060018060d01b0391015116600b54811015612dcc57600b5f525f805160206151ee83398151915201546040519161479b836108b0565b8252602082015290565b6147ad614708565b506147b6614708565b50600c54811015612dcc576147dd90600c5f525f8051602061516e83398151915201613d7b565b65ffffffffffff81511690602060018060d01b0391015116600d54811015612dcc57600d5f525f805160206151ce83398151915201546040519161479b836108b0565b9061484961484361486a92614833614708565b5061483c614708565b5084613a49565b50613d7b565b91600165ffffffffffff845116936020828060d01b03910151169101613a49565b9054906040519261487a846108b0565b835260031b1c602082015290565b5f806148b09260018060a01b03169360208151910182865af16148a9612e6f565b908361510a565b80519081151591826148de575b50506148c65750565b60249060405190635274afe760e01b82526004820152fd5b6148f19250602080918301019101612e3a565b155f806148bd565b91906001810180911161074157600182018092116107415761491c82828561423f565b928215612c61570961492b5790565b600181018091116107415790565b600c548061494a57505f905f905f90565b805f19810111610741577fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c661498391600c5f5201613d7b565b9065ffffffffffff82511691602060018060d01b0391015116906001929190565b600a54806149b557505f905f905f90565b805f19810111610741577fc65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a761498391600a5f5201613d7b565b8054806149ff5750505f905f905f90565b5f1990808281011161074157614983925f5260205f200101613d7b565b80156143e65780614aee614ae7614add614ad3614ac9614abf614ab5614aab60016109a29a5f908b60801c80614b49575b508060401c80614b3c575b508060201c80614b2f575b508060101c80614b22575b508060081c80614b15575b508060041c80614b08575b508060021c80614afb575b50821c614af4575b811c1b614aa4818b614235565b0160011c90565b614aa4818a614235565b614aa48189614235565b614aa48188614235565b614aa48187614235565b614aa48186614235565b614aa48185614235565b8092614235565b90614223565b8101614a97565b600291509101905f614a8f565b600491509101905f614a84565b600891509101905f614a79565b601091509101905f614a6e565b602091509101905f614a63565b604091509101905f614a58565b9150506080905f614a4d565b905b828110614b6357505090565b9091808216906001818418811c830180931161074157600a5f5265ffffffffffff80845f8051602061518e833981519152015416908616105f14614bab575050915b90614b57565b9093925081018091116107415790614ba5565b905b828110614bcc57505090565b9091808216906001818418811c830180931161074157600c5f5265ffffffffffff80845f8051602061516e833981519152015416908616105f14614c14575050915b90614bc0565b9093925081018091116107415790614c0e565b905b828110614c3557505090565b9091808216906001818418811c830180931161074157600a5f5265ffffffffffff80845f8051602061518e833981519152015416908616105f14614c7d575050915b90614c29565b9093925081018091116107415790614c77565b905b828110614c9e57505090565b9091808216906001818418811c830180931161074157600c5f5265ffffffffffff80845f8051602061516e833981519152015416908616105f14614ce6575050915b90614c92565b9093925081018091116107415790614ce0565b91905b838210614d095750505090565b909192808316906001818518811c830180931161074157855f5265ffffffffffff808460205f20015416908516105f14614d48575050925b9190614cfc565b9094935081018091116107415791614d41565b60ff5f8051602061524e8339815191525460401c1615614d7757565b604051631afcd79f60e31b8152600490fd5b600c5490600160401b8210156108ab576001820180600c55821015612dcc57600c5f52805160209091015160301b65ffffffffffff191665ffffffffffff91909116175f8051602061516e83398151915290910155565b600a5490600160401b8210156108ab576001820180600a55821015612dcc57600a5f52805160209091015160301b65ffffffffffff191665ffffffffffff91909116175f8051602061518e83398151915290910155565b8054600160401b8110156108ab57614e5491600182018155613a49565b614e7f57815160209092015160301b65ffffffffffff191665ffffffffffff92909216919091179055565b634e487b7160e01b5f525f60045260245ffd5b600c54919291908115614f6457614eae613de4613ed38461267a565b805165ffffffffffff8381169491168410614f525785602093613b9395614ede613330865165ffffffffffff1690565b03614f1a5750614ef3613ed3614f0c9361267a565b9065ffffffffffff82549181199060301b169116179055565b01516001600160d01b031690565b9050614f4d9150614f3a614f2c610927565b65ffffffffffff9092168252565b6001600160d01b03871681850152614d89565b614f0c565b604051632520601d60e01b8152600490fd5b614f889150614f74614f2c610927565b6001600160d01b0384166020820152614d89565b5f9190565b600a5491929190811561501357614fa9613de4613dce8461267a565b805165ffffffffffff8381169491168410614f525785602093613b9395614fd9613330865165ffffffffffff1690565b03614fee5750614ef3613dce614f0c9361267a565b9050614f4d9150615000614f2c610927565b6001600160d01b03871681850152614de0565b614f889150615023614f2c610927565b6001600160d01b0384166020820152614de0565b8054929392919082156150e657615053613de46146a98561267a565b90615064825165ffffffffffff1690565b65ffffffffffff84811691168110614f5257613b93946020948892615092613330875165ffffffffffff1690565b036150b35750614f0c926150a8614ef39261267a565b905f5260205f200190565b915050614f4d916150d36150c5610927565b65ffffffffffff9093168352565b6001600160d01b03881682860152614e37565b614f8892506150f66150c5610927565b6001600160d01b0385166020830152614e37565b90615131575080511561511f57805190602001fd5b604051630a12f52160e11b8152600490fd5b81511580615164575b615142575090565b604051639996b31560e01b81526001600160a01b039091166004820152602490fd5b50803b1561513a56fedf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c7c65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a89016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300d7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb50175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db902dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268009b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a264697066735822122032dd1d565d3bddc2fee2f1b128543ccd5c9d5ea830e6be541f10368e4481309c64736f6c63430008190033","sourceMap":"199:2819:90:-:0;;;;;;;348:4:87;332:21;;318:1:90;3173:36:101;;318:1:90;3219:32:101;;8837:64:26;199:2819:90;;;;;;;;;7896:76:26;;-1:-1:-1;;;;;;;;;;;;199:2819:90;;;7985:34:26;7981:146;;-1:-1:-1;318:1:90;927:17:76;;199:2819:90;;;;;;;;332:21:87;199:2819:90;;;;;;;;;;;;;;;3173:36:101;199:2819:90;;;;;;;;;;3219:32:101;199:2819:90;;;;;;;;;;927:17:76;199:2819:90;;;;;;;;;;;7981:146:26;-1:-1:-1;;;;;;199:2819:90;;;;;;;;;;;;;8087:29:26;;199:2819:90;;8087:29:26;7981:146;;;;;7896:76;-1:-1:-1;;;7938:23:26;;;;;199:2819:90;;;","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361015610011575f80fd5b5f3560e01c806301ffc9a7146104a45780631415519b1461049f5780631b66c9e11461049a5780631e9a695014610495578063248a9ca31461049057806327810b6e1461048b578063281f5752146104865780632abe3048146104815780632d73c69c1461047c5780632dd31000146104775780632f2ff15d1461047257806336568abe1461046d578063392e53cd146104685780634105a7dd14610463578063463616711461045e57806347e7ef241461045957806348d3b775146104545780634ff0876a1461044f57806350861adc1461044a57806350f22068146104455780635346e34f1461044057806354fd4d501461043b57806355a2c6721461043657806357ec83cc1461043157806359f769a91461042c5780635cc070761461042757806361a8c8c41461042257806364b03fdc1461041d57806367567add146104185780636da3e06d146104135780636ec1e3f81461040e578063715018a6146104095780637278e31c1461040457806373790ab3146103ff57806376671808146103fa578063794b15b7146103f55780637953b33b146103f05780637c04c80a146103eb578063810da75d146103e65780638326056f146103e157806383cd9cc3146103dc57806387df0788146103d75780638b0e9f3f146103d25780638da5cb5b146103cd57806391d14854146103c85780639d66201b146103c35780639f86fd85146103be578063a1b12202146103b9578063a217fddf146103b4578063a21a1df9146103af578063a2861466146103aa578063a3b54172146103a5578063a5d03223146103a0578063aabc24961461039b578063aad3ec9614610396578063afba70ad14610391578063b13442711461038c578063bd49c35f14610387578063bdc8144b14610382578063bfefcd7b1461037d578063c31e8dd714610378578063ce9b793014610373578063d547741f1461036e578063d8dfeb4514610369578063db38871514610364578063de4997161461035f578063eb5562381461035a578063ecf7085814610355578063efb559d614610350578063f2fde38b1461034b578063f3fef3a314610346578063f5e7ee0f146103415763f9e1bf6c1461033c575f80fd5b61264c565b612622565b61257c565b61254f565b612400565b6123e3565b61238f565b612375565b612309565b6122de565b612292565b61226a565b612200565b6121e6565b612108565b6120ee565b6120c6565b61209c565b611fdb565b611e24565b611dde565b611d91565b611c9e565b611c64565b611c4a565b611c26565b611b92565b611b58565b611afa565b611ac6565b611a64565b611a20565b611867565b61184d565b611834565b6117ce565b6117a7565b611767565b61174d565b61170c565b611438565b6113d1565b6113ac565b611368565b611312565b6112e4565b611248565b61121e565b6111f7565b6110bf565b61103a565b611008565b610f73565b610f5a565b610efd565b610edd565b610ebc565b610bfe565b610bd6565b610b3b565b610af6565b610aab565b610a5d565b610a19565b6109a5565b61079b565b6106cd565b6106a5565b61066c565b610583565b610538565b6104fe565b346104fa5760203660031901126104fa5760043563ffffffff60e01b81168091036104fa57602090637965db0b60e01b81149081156104e9575b506040519015158152f35b6301ffc9a760e01b1490505f6104de565b5f80fd5b346104fa575f3660031901126104fa5760206040517fc6aaadd7371d5e8f9ed6849dd66a66573a3ba37167d03f4352c9ba5693678fac8152f35b346104fa575f3660031901126104fa5760206040517f9c56d972d63cbb4195b3c1484691dfc220fa96a4c47e7b6613bd82a022029e068152f35b6001600160a01b038116036104fa57565b346104fa5760403660031901126104fa576004356105a081610572565b602435906105ac613080565b6001600160a01b0381161561065b57335f908152600e602052604090206105d790614498565b614498565b8211610649576105f76105e86143ab565b6105f0614424565b90846144db565b9182156106345782610608926130af565b9061061f60015f8051602061522e83398151915255565b604080519182526020820192909252f35b0390f35b60405160016245ddc760e11b03198152600490fd5b604051632418411f60e11b8152600490fd5b6040516208978560e71b8152600490fd5b346104fa5760203660031901126104fa576004355f525f8051602061520e8339815191526020526020600160405f200154604051908152f35b346104fa575f3660031901126104fa576001546040516001600160a01b039091168152602090f35b346104fa575f3660031901126104fa576106e5612c66565b80156107465760015465ffffffffffff8160a01c16915f198101908111610741576107139160d01c90612695565b81018091116107415761072861063091613229565b60405165ffffffffffff90911681529081906020820190565b612666565b604051639fa56a5b60e01b8152600490fd5b600435906001600160401b03821682036104fa57565b9181601f840112156104fa578235916001600160401b0383116104fa57602083818601950101116104fa57565b346104fa5760403660031901126104fa576107b4610758565b6001600160401b036024358181116104fa576107d490369060040161076e565b50506107de613080565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316330361085a575f8051602061524e833981519152549060ff8260401c1692831561084a575b505050610838575f80fd5b60405163f92ee8a960e01b8152600490fd5b81169116101590505f808061082d565b604051631966391b60e11b8152600490fd5b65ffffffffffff8116036104fa57565b634e487b7160e01b5f52604160045260245ffd5b606081019081106001600160401b038211176108ab57604052565b61087c565b604081019081106001600160401b038211176108ab57604052565b608081019081106001600160401b038211176108ab57604052565b90601f801991011681019081106001600160401b038211176108ab57604052565b6040519061016082018281106001600160401b038211176108ab57604052565b60405190610934826108b0565b565b6001600160401b0381116108ab57601f01601f191660200190565b92919261095d82610936565b9161096b60405193846108e6565b8294818452818301116104fa578281602093845f960137010152565b9080601f830112156104fa578160206109a293359101610951565b90565b346104fa5760603660031901126104fa576004356109c281610572565b602435906109cf8261086c565b604435906001600160401b0382116104fa576020926109f5610a11933690600401610987565b6001600160a01b039092165f908152600e85526040902061340e565b604051908152f35b346104fa575f3660031901126104fa576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346104fa5760403660031901126104fa57610aa9602435600435610a8082610572565b805f525f8051602061520e833981519152602052610aa4600160405f2001546135e5565b6138e5565b005b346104fa5760403660031901126104fa57602435610ac881610572565b336001600160a01b03821603610ae457610aa99060043561391b565b60405163334bd91960e11b8152600490fd5b346104fa575f3660031901126104fa5760ff60025460a01c1680610b22575b6020906040519015158152f35b5060035460a01c60ff16610b15565b801515036104fa57565b346104fa5760203660031901126104fa57600435610b5881610b31565b610b60613080565b610b686134da565b5f54901515908160ff8216151514610bc45760ff191660ff8216175f556040519081527f3e12b7b36c75ac9609a3f58609b331210428e1a85909132638955ba0301eec3390602090a160015f8051602061522e83398151915255005b60405163a741a04560e01b8152600490fd5b346104fa575f3660031901126104fa57602065ffffffffffff60015460a01c16604051908152f35b346104fa576040806003193601126104fa576004803591610c1e83610572565b610c26613080565b6001600160a01b0391838316908115610eae575f5460ff811680610e95575b610e865783516370a0823160e01b808252308483019081529096602093909160109190911c82169084908490819083010381845afa928315610e5e575f93610e63575b50610c9a9060243590309033906139ad565b5f5486519788523085890190815290979184918391908290819060200103918b60101c165afa908115610e5e57610cd9935f92610e31575b5050612688565b938415610e225760081c60ff1680610e0d575b610dff57509061063091610d9d610d016143ab565b95610d4a610d0d614424565b610d35610d1b8a838b6144db565b99610d2f8a610d2942613229565b926126b6565b90613b01565b5050610d4489610d2942613229565b90613be1565b50506001600160a01b0381165f908152600e6020526040902090610d9788610d926105d2610d7742613229565b6001600160a01b039095165f908152600e6020526040902090565b6126b6565b91613cbd565b505081518481526020810186905233907fdcbc1c05240f31ff3ad067ef1ee35ce4997762752e3a095284754544f4c709d790604090a3610de960015f8051602061522e83398151915255565b5191825260208201929092529081906040820190565b8251632484557960e01b8152fd5b50610e1a84610d926143ab565b815410610cec565b50825163070f6eed60e11b8152fd5b610e509250803d10610e57575b610e4881836108e6565b8101906126e4565b5f80610cd2565b503d610e3e565b6126f3565b610c9a919350610e7f90853d8711610e5757610e4881836108e6565b9290610c88565b5082516304f63b8560e01b8152fd5b50335f9081526005602052604090205460ff1615610c45565b8251630d534ce360e11b8152fd5b346104fa575f3660031901126104fa57602060ff5f54166040519015158152f35b346104fa575f3660031901126104fa57602060015460d01c604051908152f35b346104fa575f3660031901126104fa57602060ff60025460a01c166040519015158152f35b9060406003198301126104fa57600435610f3b8161086c565b91602435906001600160401b0382116104fa576109a291600401610987565b346104fa576020610a11610f6d36610f22565b90613284565b346104fa5760203660031901126104fa57600435610f9081610b31565b610f98613080565b610fa0613537565b5f54901515908160ff8260081c16151514610bc45761ff001916600882901b61ff0016175f556040519081527ffa7a25a0b611d4ba3c0ea990e90dc23d484a5dd7a1be4733fef2946ba74530c690602090a1610aa960015f8051602061522e83398151915255565b346104fa575f3660031901126104fa5760206001600160401b035f8051602061524e8339815191525416604051908152f35b346104fa5760203660031901126104fa576004356110578161086c565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633036110ad5761109090613d9f565b60408051941515855263ffffffff91909116602085015292915050f35b604051637ca475e560e11b8152600490fd5b346104fa5760603660031901126104fa576110d8610758565b6024356110e481610572565b6001600160401b03916044358381116104fa5761110590369060040161076e565b5f8051602061524e8339815191529491855494838616806111e65760ff8760401c169081156111d9575b50610838577fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2966111d49661119c958716906001600160401b0319161790556111975f8051602061524e833981519152600160401b68ff000000000000000019825416179055565b6126fe565b5f8051602061524e833981519152805468ff0000000000000000191690556040516001600160401b0390911681529081906020820190565b0390a1005b905084861611155f61112f565b60405162dc149f60e41b8152600490fd5b346104fa5760203660031901126104fa576020610a1160043561121981610572565b612b1e565b346104fa5760203660031901126104fa576004355f526006602052602060405f2054604051908152f35b346104fa575f3660031901126104fa5760015465ffffffffffff61127e818360a01c1692611274612c66565b9060d01c90612695565b820180921161074157611292602092613229565b60405191168152f35b60409060031901126104fa576004356112b381610572565b906024356109a28161086c565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b346104fa576106306112fe6112f83661129b565b90612bac565b6040519182916020835260208301906112c0565b346104fa5760203660031901126104fa5760043561132f8161086c565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633036110ad5761109090613ea4565b346104fa575f3660031901126104fa576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346104fa575f3660031901126104fa57602060ff60035460a01c166040519015158152f35b346104fa575f3660031901126104fa576113e96141eb565b5f805160206151ae83398151915280546001600160a01b031981169091555f906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b346104fa5760403660031901126104fa576004356024356114588161086c565b611460613080565b60035461147d906001600160a01b03165b6001600160a01b031690565b33036116fa5761148b612c66565b9061149581612c9a565b90821515806116e9575b80156116e0575b6116ce57610630937ff9d090c096f71cd1659861a9ce5b6f384bceb4e2fa4e4a19edf6489a9b8d56c7926114d86143ab565b946114f36114e5826126a8565b5f52600660205260405f2090565b54908281036115e7575061150781876126b6565b6115118185614223565b9687806115a0575b50505050505b8361156c575b6040805191825265ffffffffffff929092166020820152908101839052606090a161155c60015f8051602061522e83398151915255565b6040519081529081906020820190565b5f5461159b9085906115899060101c6001600160a01b0316611471565b6001546001600160a01b0316906142d1565b611525565b6115dc93610cd283610d2f6115c66115bf6114e5986115d6988861423f565b8096612688565b946115d042613229565b92612688565b926126a8565b555f80808087611519565b91506115fb825f52600660205260405f2090565b549061160b81610d92848a6126b6565b906116168286614223565b9788611627575b505050505061151f565b61169c938361164f9361165c8c61165761164561168d99888461423f565b978895858461423f565b948592612688565b612688565b938484106116a7575b610cd290610d2f61167b9596976115d042613229565b6116876114e5876126a8565b55612688565b915f52600660205260405f2090565b555f8080808061161d565b916116c3610cd2916116bd8661167b9798612688565b906126b6565b859450929050611665565b604051635e18d2a560e01b8152600490fd5b508282116114a6565b506116f38361267a565b821061149f565b60405163dabc4ad960e01b8152600490fd5b346104fa575f3660031901126104fa5760015465ffffffffffff808260a01c1691611735612c66565b600181018091116107415761127e9160d01c90612695565b346104fa575f3660031901126104fa576020610a11612c66565b346104fa5760203660031901126104fa5760043561178481610572565b60018060a01b03165f526005602052602060ff60405f2054166040519015158152f35b346104fa5760203660031901126104fa576020610a116004356117c98161086c565b612c9a565b346104fa5760403660031901126104fa576004356117eb81610572565b6024356001600160401b038082116104fa57366023830112156104fa5781600401359081116104fa573660248260051b840101116104fa5761063092602461155c930190612cd5565b346104fa576020610a1161184736610f22565b90613359565b346104fa576106306112fe6118613661129b565b90612e03565b346104fa576020806003193601126104fa57600480359061188782610572565b61188f613080565b60025460a01c60ff16611a11576040516302910f8b60e31b81526001600160a01b03838116838301908152909491908290829081906020010381887f0000000000000000000000000000000000000000000000000000000000000000165afa908115610e5e575f916119e4575b50156119d45760405163fbfa77cf60e01b8152838516949082818581895afa928315610e5e575f936119a5575b5050309116036119965750600280546001600160a01b03929092166001600160a81b031990921691909117600160a01b1790557fdb2160616f776a37b24808115554e79439bf26cccbbd4438190cc6d28e80ecd15f80a2610aa960015f8051602061522e83398151915255565b60405163b9f0f17160e01b8152fd5b6119c5929350803d106119cd575b6119bd81836108e6565b810190612e5a565b905f80611929565b503d6119b3565b506040516324e5af8d60e21b8152fd5b611a049150823d8411611a0a575b6119fc81836108e6565b810190612e3a565b5f6118fc565b503d6119f2565b604051631380833b60e01b8152fd5b346104fa575f3660031901126104fa576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346104fa575f3660031901126104fa57611a7c612c66565b611a846143ab565b90805f52600660205260405f205482018092116107415760018101809111610741575f52600660205260405f2054810180911161074157602090604051908152f35b346104fa575f3660031901126104fa575f805160206151ae833981519152546040516001600160a01b039091168152602090f35b346104fa5760403660031901126104fa57602060ff611b4c602435611b1e81610572565b6004355f525f8051602061520e833981519152845260405f209060018060a01b03165f5260205260405f2090565b54166040519015158152f35b346104fa5760203660031901126104fa57600435611b7581610572565b60018060a01b03165f52600e6020526020610a1160405f20614498565b346104fa5760403660031901126104fa57600435611baf81610572565b6024356001600160401b0381116104fa575f91611bd18392369060040161076e565b90816040519283928337810184815203915af4611c1e611bef612e6f565b91611c106040519384921515602084015260408084015260608301906112c0565b03601f1981018352826108e6565b805190602001fd5b346104fa575f3660031901126104fa57602060ff5f5460081c166040519015158152f35b346104fa575f3660031901126104fa5760206040515f8152f35b346104fa575f3660031901126104fa5760206040517f4a634bc14d77baf979756509ef4298c6f6318af357828612545267ee2eb792338152f35b346104fa5760403660031901126104fa57600435611cbb81610572565b602435611cc781610b31565b611ccf613080565b611cd761358e565b6001600160a01b038216918215611d7f575f8381526005602052604090205460ff16151582151514610bc4576001600160a01b03165f9081526005602052604090207ff991b1ecfb5115cbb36a2b2e2240c058406d2acc2fcc6e9e2dc99d845ff70a6291611d6691611d54908260ff801983541691151516179055565b60405190151581529081906020820190565b0390a2610aa960015f8051602061522e83398151915255565b604051630da30f6560e31b8152600490fd5b346104fa5760403660031901126104fa576020611dd5602435611db381610572565b6004355f526008835260405f209060018060a01b03165f5260205260405f2090565b54604051908152f35b346104fa5760403660031901126104fa57602060ff611b4c602435611e0281610572565b6004355f526009845260405f209060018060a01b03165f5260205260405f2090565b346104fa576020806003193601126104fa576004803590611e4482610572565b611e4c613080565b60035460a01c60ff16611fcc576001600160a01b03828116939084611eba575b6003805460ff60a01b1916600160a01b179055847fe7e4c932e03abddfe20f83af42c33627e816115c7ec2b168441f65dc14bfc3ba5f80a2610aa960015f8051602061522e83398151915255565b6040516302910f8b60e31b81526001600160a01b0385168482019081528390829081906020010381857f0000000000000000000000000000000000000000000000000000000000000000165afa908115610e5e575f91611faf575b5015611f9e5760405163fbfa77cf60e01b815282818581895afa928315610e5e575f93611f7f575b505030911603611f705750600380546001600160a01b0319166001600160a01b039092169190911790555f808080611e6c565b604051633f3e089160e21b8152fd5b611f96929350803d106119cd576119bd81836108e6565b905f80611f3d565b60405163dabc4ad960e01b81528390fd5b611fc69150833d8511611a0a576119fc81836108e6565b5f611f15565b60405163703fe2e560e01b8152fd5b346104fa5760403660031901126104fa57600435611ff881610572565b60243590612004613080565b6001600160a01b039181831690811561208a57612035610630946120278361430f565b9485915f5460101c166142d1565b604080519182526020820184905233917f865ca08d59f5cb456e85cd2f7ef63664ea4f73327414e9d8152c4158b0e946459190a360015f8051602061522e833981519152556040519081529081906020820190565b604051634e46966960e11b8152600490fd5b346104fa5760203660031901126104fa576004355f526007602052602060405f2054604051908152f35b346104fa575f3660031901126104fa576003546040516001600160a01b039091168152602090f35b346104fa575f3660031901126104fa576020610a116143ab565b346104fa5760203660031901126104fa57600435612124613080565b335f9081527f2d4ccbfe9f7672a6f2537c1e5bce6adacb73706879154bbab6ce096012d6721660205260409020547f4a634bc14d77baf979756509ef4298c6f6318af357828612545267ee2eb792339060ff16156121c857508060045414610bc4576020817f854df3eb95564502c8bc871ebdd15310ee26270f955f6c6bd8cea68e75045bc092600455604051908152a160015f8051602061522e83398151915255005b6044906040519063e2517d3f60e01b82523360048301526024820152fd5b346104fa575f3660031901126104fa576020610a11614424565b346104fa5760203660031901126104fa5760043561221d81610572565b612225612c66565b61222e82612b1e565b916122398183612f59565b830180931161074157600182018092116107415761225691612f59565b810180911161074157602090604051908152f35b346104fa575f3660031901126104fa576002546040516001600160a01b039091168152602090f35b346104fa5760403660031901126104fa57610aa96024356004356122b582610572565b805f525f8051602061520e8339815191526020526122d9600160405f2001546135e5565b61391b565b346104fa575f3660031901126104fa575f5460405160109190911c6001600160a01b03168152602090f35b346104fa575f3660031901126104fa5760206040517fbae4ee3de6c709ff9a002e774c5b78cb381560b219213c88ae0f1e207c03c0238152f35b60609060031901126104fa5760043561235b81610572565b9060243561236881610572565b906044356109a28161086c565b346104fa576106306112fe61238936612343565b91612e9e565b346104fa5761239d3661129b565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811633036110ad5761109092165f52600e60205260405f20613f6a565b346104fa575f3660031901126104fa576020600454604051908152f35b346104fa5760603660031901126104fa5760043561241d81610572565b6024359061242a8261086c565b6001600160401b03916044358381116104fa5761244b90369060040161076e565b9092604093845161245b81610890565b606081526060602082015260608682015292806124ba575b610630866124ab87876124a561248c89848451916126c3565b928561249c602085015183613359565b93015190613284565b916144db565b90519081529081906020820190565b81019392506020818503126104fa578035908682116104fa5701926060848203126104fa578451956124eb87610890565b84358181116104fa5782612500918701610987565b875260208501358181116104fa578261251a918701610987565b6020880152858501359081116104fa57610630966125436124a59361248c936124ab9801610987565b87820152939450612473565b346104fa5760203660031901126104fa57610aa960043561256f81610572565b6125776141eb565b612ee8565b346104fa5760403660031901126104fa5760043561259981610572565b6024356125a4613080565b6001600160a01b0382161561065b578015612610576125d36125c4614424565b6125cc6143ab565b90836148f9565b335f908152600e602052604090209092906125ed90614498565b83116125fe576106089183916130af565b6040516321727a3760e11b8152600490fd5b604051636c6c627d60e11b8152600490fd5b346104fa5760403660031901126104fa576020610a1160243561264481610572565b600435612f59565b346104fa576106306112fe61266036612343565b91612fb7565b634e487b7160e01b5f52601160045260245ffd5b5f1981019190821161074157565b9190820391821161074157565b8181029291811591840414171561074157565b906001820180921161074157565b9190820180921161074157565b6001600160a01b03165f908152600e602052604090206109a292919061340e565b908160209103126104fa575190565b6040513d5f823e3d90fd5b91612750916127419161270f614d5b565b612717614d5b565b60015f8051602061522e833981519152556001600160a01b0394808616612b04575b503691610951565b60208082518301019101614054565b805182166001600160a01b031615612af257604080820165ffffffffffff61277e825165ffffffffffff1690565b1615612ae15760c08301805190929061279f906001600160a01b0316611471565b15612992575b50916128de6101409261287d61285861293c966127f36127cb875160018060a01b031690565b5f805462010000600160b01b03191660109290921b62010000600160b01b0316919091179055565b6020860151600180546001600160a01b0319166001600160a01b0390921691909117905561284c61282342613229565b6001805465ffffffffffff60a01b191660a09290921b65ffffffffffff60a01b16919091179055565b5165ffffffffffff1690565b600180546001600160d01b031660d09290921b6001600160d01b031916919091179055565b61289d61288d6060850151151590565b60ff80195f541691151516175f55565b6128c46128ad6080850151151590565b61ff005f5491151560081b169061ff001916175f55565b6128d160a0840151600455565b516001600160a01b031690565b848116612982575b5060e08101516001600160a01b0316848116612972575b506101008101516001600160a01b0316848116612962575b506101208101516001600160a01b0316848116612952575b5001516001600160a01b031690565b9081166129465750565b61294f90613876565b50565b61295b90613807565b505f61292d565b61296b90613798565b505f612915565b61297b906136c2565b505f6128fd565b61298b90613611565b505f6128e6565b60e08401516129a9906001600160a01b0316611471565b15612a7e575b6101208401516129c7906001600160a01b0316611471565b6127a557608084015115612a345760a08401511580612a15575b612a055750916128de6101409261287d61285861293c965b949650505092506127a5565b5163183c854560e21b8152600490fd5b50610140840151612a2e906001600160a01b0316611471565b156129e1565b60a084015115801590612a5e575b612a055750916128de6101409261287d61285861293c966129f9565b50610140840151612a77906001600160a01b0316611471565b1515612a42565b606084015115612ab457610100840151612aa0906001600160a01b0316611471565b6129af575163183c854560e21b8152600490fd5b610100840151612acc906001600160a01b0316611471565b156129af575163183c854560e21b8152600490fd5b81516368f5f8f160e11b8152600490fd5b6040516368f7a67560e11b8152600490fd5b612b1890612b10614d5b565b612577614d5b565b5f612739565b6001600160a01b03165f908152600e60205260409020612b3d90614498565b612b456143ab565b612b4d614424565b90600181018091116107415760018201809211610741576109a29261423f565b519061093482610b31565b519063ffffffff821682036104fa57565b91908260409103126104fa576109a260208351612ba581610b31565b9301612b78565b9190612be8612bf79160609465ffffffffffff604051926367567add60e01b602085015216602483015260248252612be382610890565b61411d565b60208082518301019101612b89565b90612bff5750565b90915063ffffffff60405191166020820152602081526109a2816108b0565b65ffffffffffff918216908216039190821161074157565b634e487b7160e01b5f52601260045260245ffd5b9065ffffffffffff809116918215612c6157160490565b612c36565b612c6f42613229565b612c96600154612c8c65ffffffffffff93848360a01c1690612c1e565b9060d01c90612c4a565b1690565b6001549065ffffffffffff91828160a01c16918284821610612cc357612c9692612c8c91612c1e565b60405163b7d0949760e01b8152600490fd5b90612cde613080565b5f926001600160a01b03831692831561208a578115612d96575f5b828110612d7457505f547f326b6aff1cd2fb1c8234de4f9dcfb9047c5c36eb9ef2eb34af5121e969a75d279286929091612d49918491612d449060101c6001600160a01b0316611471565b6142d1565b612d5a604051928392339684612dd1565b0390a39061093460015f8051602061522e83398151915255565b94612d8f6001916116bd612d89898789612dbc565b3561430f565b9501612cf9565b60405163edf3b93360e01b8152600490fd5b634e487b7160e01b5f52603260045260245ffd5b9190811015612dcc5760051b0190565b612da8565b604080825281018390529392916001600160fb1b0381116104fa5760209160609160051b809183880137850101930152565b9190612be8612bf79160609465ffffffffffff60405192632ad1633960e11b602085015216602483015260248252612be382610890565b908160209103126104fa57516109a281610b31565b519061093482610572565b908160209103126104fa57516109a281610572565b3d15612e99573d90612e8082610936565b91612e8e60405193846108e6565b82523d5f602084013e565b606090565b604051631d6aac4760e31b60208201526001600160a01b03909216602483015265ffffffffffff909216604480830191909152815260609291612bf791612be891612be3826108cb565b6001600160a01b03908116908115612f41575f805160206151ae83398151915280546001600160a01b031981168417909155167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3565b604051631e4fbdf760e01b81525f6004820152602490fd5b90612f7f90825f52600860205260405f209060018060a01b03165f5260205260405f2090565b54905f52600660205260405f2054600760205260405f205490600181018091116107415760018201809211610741576109a29261423f565b92919092612fdc612fcb8360609684612e9e565b92612fd68184612bac565b92612e03565b90825115801590613076575b801561306c575b612ff857505050565b6130459394506109a29291611c10916040519361301485610890565b8452602084019081526040840191825261305b604051968795602080880152516060604088015260a08701906112c0565b915191603f1992838783030160608801526112c0565b9151908483030160808501526112c0565b5081511515612fef565b5080511515612fe8565b5f8051602061522e833981519152600281541461309d5760029055565b604051633ee5aeb560e01b8152600490fd5b335f908152600e60205260409020939291906130ca42613229565b335f908152600e602052604090206130e190614498565b918483039283116107415761311c7febff2602b3f468259e1e99f613fed6691f3a6526effe6ef3e768ba7ae7a36c4f9385936131a799613cbd565b505061313661312a42613229565b610d4487611657614424565b505061315061314442613229565b610d2f846116576143ab565b50506131f5816131e0613169613164612c66565b6126a8565b6131bf61317e825f52600660205260405f2090565b54613191835f52600760205260405f2090565b5461319d82828b6144db565b9d8e998a936126b6565b6131b9855f52600660205260405f2090565b556126b6565b6131d1825f52600760205260405f2090565b555f52600860205260405f2090565b9060018060a01b03165f5260205260405f2090565b6132008382546126b6565b9055604080519485526020850195909552938301526001600160a01b03909216913391606090a3565b65ffffffffffff9081811161323c571690565b604490604051906306dfcc6560e41b8252603060048301526024820152fd5b908160209103126104fa576109a290612b78565b90600163ffffffff8093160191821161074157565b9080511561334f578060208061329f9351830101910161325b565b6132a881614720565b906132b9825165ffffffffffff1690565b9065ffffffffffff808516921682811461334357821191826132ef575b50506132e657506109a2906144fc565b60209150015190565b9091506132fd600a5461267a565b63ffffffff831614918215613316575b50505f806132d6565b61333b91925061284c61332b6133309261326f565b614720565b65ffffffffffff1690565b115f8061330d565b50505060209150015190565b506109a2906144fc565b9080511561340457806020806133749351830101910161325b565b61337d816147a5565b9061338e825165ffffffffffff1690565b9065ffffffffffff808516921682811461334357821191826133bb575b50506132e657506109a2906145ad565b9091506133c9600c5461267a565b63ffffffff8316149182156133e2575b50505f806133ab565b6133fc91925061284c6133f76133309261326f565b6147a5565b115f806133d9565b506109a2906145ad565b918051156134d057806020806134299351830101910161325b565b916134348382614820565b92613445845165ffffffffffff1690565b9065ffffffffffff80851692168281146134c4578211918261347b575b5050613472576109a29250614657565b50506020015190565b909150613488835461267a565b63ffffffff8316149182156134a1575b50505f80613462565b6134bc91925061284c6134b66133309261326f565b85614820565b115f80613498565b50505050506020015190565b506109a291614657565b335f9081527f03b26b53c87faa1058f30bb5d2fee64f717719a0d9b7e4f4df027aa5e9b6ed69602052604090207fbae4ee3de6c709ff9a002e774c5b78cb381560b219213c88ae0f1e207c03c0239060ff905b5416156121c85750565b335f9081527fe41986b390c4ce6791b87f7423b5fab7a81a0e6d89660b6264f697d008b2243a602052604090207fc6aaadd7371d5e8f9ed6849dd66a66573a3ba37167d03f4352c9ba5693678fac9060ff9061352d565b335f9081527f0287ab4cb376ea253d7b2ce0c2cbf458f7deae9458470d74afdfbbee484e9540602052604090207f9c56d972d63cbb4195b3c1484691dfc220fa96a4c47e7b6613bd82a022029e069060ff9061352d565b5f8181525f8051602061520e83398151915260209081526040808320338452909152902060ff9061352d565b6001600160a01b0381165f9081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d60205260409020545f8051602061520e8339815191529060ff166136bc575f808052602091825260408082206001600160a01b038516835290925220805460ff1916600117905533906001600160a01b03165f7f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d8180a4600190565b50505f90565b6001600160a01b0381165f9081527f03b26b53c87faa1058f30bb5d2fee64f717719a0d9b7e4f4df027aa5e9b6ed69602052604090207fbae4ee3de6c709ff9a002e774c5b78cb381560b219213c88ae0f1e207c03c023905f8051602061520e8339815191529060ff905b5416613791575f828152602091825260408082206001600160a01b038616835290925220805460ff1916600117905533916001600160a01b0316907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d5f80a4600190565b5050505f90565b6001600160a01b0381165f9081527f0287ab4cb376ea253d7b2ce0c2cbf458f7deae9458470d74afdfbbee484e9540602052604090207f9c56d972d63cbb4195b3c1484691dfc220fa96a4c47e7b6613bd82a022029e06905f8051602061520e8339815191529060ff9061372d565b6001600160a01b0381165f9081527fe41986b390c4ce6791b87f7423b5fab7a81a0e6d89660b6264f697d008b2243a602052604090207fc6aaadd7371d5e8f9ed6849dd66a66573a3ba37167d03f4352c9ba5693678fac905f8051602061520e8339815191529060ff9061372d565b6001600160a01b0381165f9081527f2d4ccbfe9f7672a6f2537c1e5bce6adacb73706879154bbab6ce096012d67216602052604090207f4a634bc14d77baf979756509ef4298c6f6318af357828612545267ee2eb79233905f8051602061520e8339815191529060ff9061372d565b5f8181525f8051602061520e833981519152602081815260408084206001600160a01b038716855290915290912060ff9061372d565b5f8181525f8051602061520e833981519152602081815260408084206001600160a01b03871685529091529091205460ff1615613791575f828152602091825260408082206001600160a01b038616835290925220805460ff1916905533916001600160a01b0316907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b5f80a4600190565b6040516323b872dd60e01b60208201526001600160a01b03928316602482015292909116604483015260648083019390935291815260a08101918183106001600160401b038411176108ab5761093492604052614888565b600b54811015612dcc57600b5f525f805160206151ee83398151915201905f90565b600d54811015612dcc57600d5f525f805160206151ce83398151915201905f90565b8054821015612dcc575f5260205f2001905f90565b600d54600160401b8110156108ab576001810180600d55811015612dcc57600d5f525f805160206151ce8339815191520155565b600b54600160401b8110156108ab576001810180600b55811015612dcc57600b5f525f805160206151ee8339815191520155565b90815491600160401b8310156108ab5782613ae991600161093495018155613a49565b90919082549060031b91821b915f19901b1916179055565b919091600d9081548015613bac575b50613b19614939565b50929091815492613b286143ab565b9481613b97575b5015613b7457505f1982018281116107415781541115612dcc575f527fd7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb4018390559190565b613b88926001600160d01b03169150614e92565b5050613b9383613a5e565b9190565b65ffffffffffff83811691161490505f613b2f565b600160401b8110156108ab5760018101808455811015612dcc575f908382525f805160206151ce83398151915201555f613b10565b919091600b9081548015613c88575b50613bf96149a4565b50929091815492613c08614424565b9481613c73575b5015613c5457505f1982018281116107415781541115612dcc575f527f0175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db8018390559190565b613c68926001600160d01b03169150614f8d565b5050613b9383613a92565b65ffffffffffff83811691161490505f613c0f565b600160401b8110156108ab5760018101808455811015612dcc575f908382525f805160206151ee83398151915201555f613bf0565b90929192600182019081548015613d4b575b5084613cda846149ee565b50949092845493613cea83614498565b9681613d36575b5015613d13575050505f19810190811161074157613ae98591613b9393613a49565b613b93949293613d2f926001600160d01b039091169190615037565b5050613ac6565b65ffffffffffff83811691161490505f613cf1565b600160401b8110156108ab57806001613d679201845583613a49565b8154905f199060031b1b191690555f613ccf565b90604051613d88816108b0565b915465ffffffffffff8116835260301c6020830152565b600a54905f829160058411613e4a575b613db99350614b55565b8015613e3f57613de9613de4613dce8361267a565b600a5f525f8051602061518e8339815191520190565b613d7b565b91613e38613e2f613e29613e1f613e1a6020613e0b895165ffffffffffff1690565b9801516001600160d01b031690565b613a05565b90549060031b1c90565b9361267a565b63ffffffff1690565b6001939291565b505f905f905f905f90565b9192613e5581614a1c565b810390811161074157600a5f525f8051602061518e833981519152810154613db9949065ffffffffffff9081169085161015613e92575091613daf565b929150613e9e906126a8565b90613daf565b600c54905f829160058411613f10575b613ebe9350614bbe565b8015613e3f57613ee9613de4613ed38361267a565b600c5f525f8051602061516e8339815191520190565b91613e38613e2f613e29613e1f613f0b6020613e0b895165ffffffffffff1690565b613a27565b9192613f1b81614a1c565b810390811161074157600c5f525f8051602061516e833981519152810154613ebe949065ffffffffffff9081169085161015613f58575091613eb4565b929150613f64906126a8565b90613eb4565b91908254905f829160058411613fed575b613f86935085614cf9565b908115613fe157613e38613e2f613e29613e1f613fb3613de4613fa88861267a565b895f5260205f200190565b966001613fda6020613fcb8b5165ffffffffffff1690565b9a01516001600160d01b031690565b9101613a49565b5f925082915081908190565b9192613ff881614a1c565b810390811161074157613f8693865f526140216133308360205f200165ffffffffffff90541690565b65ffffffffffff85161015614037575091613f7b565b929150614043906126a8565b90613f7b565b51906109348261086c565b90816101609103126104fa57614068610907565b9061407281612e4f565b825261408060208201612e4f565b602083015261409160408201614049565b60408301526140a260608201612b6d565b60608301526140b360808201612b6d565b608083015260a081015160a08301526140ce60c08201612e4f565b60c08301526140df60e08201612e4f565b60e08301526101006140f2818301612e4f565b90830152610120614104818301612e4f565b90830152614116610140809201612e4f565b9082015290565b905f8060409384519360209461415481611c1088820194639f86fd8560e01b86523060248401528a604484015260648301906112c0565b51915afa50614161612e6f565b805181019280828486019503126104fa57828201519161418083610b31565b81810151906001600160401b0382116104fa57019084603f830112156104fa57838201516141ad81610936565b956141ba835197886108e6565b8187528282850101116104fa578085925f94018388015e85010152156141de575090565b9080519182156104fa5701fd5b5f805160206151ae833981519152546001600160a01b0316330361420b57565b60405163118cdaa760e01b8152336004820152602490fd5b9080821015614230575090565b905090565b8115612c61570490565b9091828202915f19848209938380861095039480860395146142c457848311156142b257829109815f038216809204600280826003021880830282030280830282030280830282030280830282030280830282030280920290030293600183805f03040190848311900302920304170290565b60405163227bc15360e01b8152600490fd5b5050906109a29250614235565b60405163a9059cbb60e01b60208201526001600160a01b0390921660248301526044808301939093529181526109349161430a826108cb565b614888565b90614318612c66565b821015614399575f82815260096020908152604080832033845290915290205460ff16614387576143493383612f59565b918215614375575f9081526009602090815260408083203384529091529020805460ff19166001179055565b6040516366c0bcbf60e11b8152600490fd5b604051630c8d9eab60e31b8152600490fd5b60405163d5b25b6360e01b8152600490fd5b600c54806143eb57505f5b6001600160d01b038116156143e657600d54811015612dcc57600d5f525f805160206151ce833981519152015490565b505f90565b805f1981011161074157600c5f527fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c6015460301c6143b6565b600a548061445f57505f5b6001600160d01b038116156143e657600b54811015612dcc57600b5f525f805160206151ee833981519152015490565b805f1981011161074157600a5f527fc65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a7015460301c61442f565b8054806144bd57505f5b6001600160d01b038116156136bc576001613e1f9201613a49565b5f1990808281011161074157825f5260205f2001015460301c6144a2565b9190600181018091116107415760018201809211610741576109a29261423f565b600a54905f829160058411614554575b6145169350614c27565b8061453957505f5b6001600160d01b038116156143e657613e1f6109a291613a05565b614548613dce61454f9261267a565b5460301c90565b61451e565b919261455f81614a1c565b81039081116107415761451693600a5f5265ffffffffffff80835f8051602061518e833981519152015416908516105f1461459b57509161450c565b9291506145a7906126a8565b9061450c565b600c54905f8291600584116145fe575b6145c79350614c90565b806145ea57505f5b6001600160d01b038116156143e657613e1f6109a291613a27565b614548613ed36145f99261267a565b6145cf565b919261460981614a1c565b8103908111610741576145c793600c5f5265ffffffffffff80835f8051602061516e833981519152015416908516105f146146455750916145bd565b929150614651906126a8565b906145bd565b908154905f8291600584116146ba575b614672935084614cf9565b8061469a57505f905b6001600160d01b038216156136bc576109a2916001613e1f9201613a49565b6145486146a96146b49261267a565b835f5260205f200190565b9061467b565b91926146c581614a1c565b81039081116107415761467293855f5265ffffffffffff808360205f20015416908516105f146146f6575091614667565b929150614702906126a8565b90614667565b60405190614715826108b0565b5f6020838281520152565b614728614708565b50614731614708565b50600a54811015612dcc5761475890600a5f525f8051602061518e83398151915201613d7b565b65ffffffffffff81511690602060018060d01b0391015116600b54811015612dcc57600b5f525f805160206151ee83398151915201546040519161479b836108b0565b8252602082015290565b6147ad614708565b506147b6614708565b50600c54811015612dcc576147dd90600c5f525f8051602061516e83398151915201613d7b565b65ffffffffffff81511690602060018060d01b0391015116600d54811015612dcc57600d5f525f805160206151ce83398151915201546040519161479b836108b0565b9061484961484361486a92614833614708565b5061483c614708565b5084613a49565b50613d7b565b91600165ffffffffffff845116936020828060d01b03910151169101613a49565b9054906040519261487a846108b0565b835260031b1c602082015290565b5f806148b09260018060a01b03169360208151910182865af16148a9612e6f565b908361510a565b80519081151591826148de575b50506148c65750565b60249060405190635274afe760e01b82526004820152fd5b6148f19250602080918301019101612e3a565b155f806148bd565b91906001810180911161074157600182018092116107415761491c82828561423f565b928215612c61570961492b5790565b600181018091116107415790565b600c548061494a57505f905f905f90565b805f19810111610741577fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c661498391600c5f5201613d7b565b9065ffffffffffff82511691602060018060d01b0391015116906001929190565b600a54806149b557505f905f905f90565b805f19810111610741577fc65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a761498391600a5f5201613d7b565b8054806149ff5750505f905f905f90565b5f1990808281011161074157614983925f5260205f200101613d7b565b80156143e65780614aee614ae7614add614ad3614ac9614abf614ab5614aab60016109a29a5f908b60801c80614b49575b508060401c80614b3c575b508060201c80614b2f575b508060101c80614b22575b508060081c80614b15575b508060041c80614b08575b508060021c80614afb575b50821c614af4575b811c1b614aa4818b614235565b0160011c90565b614aa4818a614235565b614aa48189614235565b614aa48188614235565b614aa48187614235565b614aa48186614235565b614aa48185614235565b8092614235565b90614223565b8101614a97565b600291509101905f614a8f565b600491509101905f614a84565b600891509101905f614a79565b601091509101905f614a6e565b602091509101905f614a63565b604091509101905f614a58565b9150506080905f614a4d565b905b828110614b6357505090565b9091808216906001818418811c830180931161074157600a5f5265ffffffffffff80845f8051602061518e833981519152015416908616105f14614bab575050915b90614b57565b9093925081018091116107415790614ba5565b905b828110614bcc57505090565b9091808216906001818418811c830180931161074157600c5f5265ffffffffffff80845f8051602061516e833981519152015416908616105f14614c14575050915b90614bc0565b9093925081018091116107415790614c0e565b905b828110614c3557505090565b9091808216906001818418811c830180931161074157600a5f5265ffffffffffff80845f8051602061518e833981519152015416908616105f14614c7d575050915b90614c29565b9093925081018091116107415790614c77565b905b828110614c9e57505090565b9091808216906001818418811c830180931161074157600c5f5265ffffffffffff80845f8051602061516e833981519152015416908616105f14614ce6575050915b90614c92565b9093925081018091116107415790614ce0565b91905b838210614d095750505090565b909192808316906001818518811c830180931161074157855f5265ffffffffffff808460205f20015416908516105f14614d48575050925b9190614cfc565b9094935081018091116107415791614d41565b60ff5f8051602061524e8339815191525460401c1615614d7757565b604051631afcd79f60e31b8152600490fd5b600c5490600160401b8210156108ab576001820180600c55821015612dcc57600c5f52805160209091015160301b65ffffffffffff191665ffffffffffff91909116175f8051602061516e83398151915290910155565b600a5490600160401b8210156108ab576001820180600a55821015612dcc57600a5f52805160209091015160301b65ffffffffffff191665ffffffffffff91909116175f8051602061518e83398151915290910155565b8054600160401b8110156108ab57614e5491600182018155613a49565b614e7f57815160209092015160301b65ffffffffffff191665ffffffffffff92909216919091179055565b634e487b7160e01b5f525f60045260245ffd5b600c54919291908115614f6457614eae613de4613ed38461267a565b805165ffffffffffff8381169491168410614f525785602093613b9395614ede613330865165ffffffffffff1690565b03614f1a5750614ef3613ed3614f0c9361267a565b9065ffffffffffff82549181199060301b169116179055565b01516001600160d01b031690565b9050614f4d9150614f3a614f2c610927565b65ffffffffffff9092168252565b6001600160d01b03871681850152614d89565b614f0c565b604051632520601d60e01b8152600490fd5b614f889150614f74614f2c610927565b6001600160d01b0384166020820152614d89565b5f9190565b600a5491929190811561501357614fa9613de4613dce8461267a565b805165ffffffffffff8381169491168410614f525785602093613b9395614fd9613330865165ffffffffffff1690565b03614fee5750614ef3613dce614f0c9361267a565b9050614f4d9150615000614f2c610927565b6001600160d01b03871681850152614de0565b614f889150615023614f2c610927565b6001600160d01b0384166020820152614de0565b8054929392919082156150e657615053613de46146a98561267a565b90615064825165ffffffffffff1690565b65ffffffffffff84811691168110614f5257613b93946020948892615092613330875165ffffffffffff1690565b036150b35750614f0c926150a8614ef39261267a565b905f5260205f200190565b915050614f4d916150d36150c5610927565b65ffffffffffff9093168352565b6001600160d01b03881682860152614e37565b614f8892506150f66150c5610927565b6001600160d01b0385166020830152614e37565b90615131575080511561511f57805190602001fd5b604051630a12f52160e11b8152600490fd5b81511580615164575b615142575090565b604051639996b31560e01b81526001600160a01b039091166004820152602490fd5b50803b1561513a56fedf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c7c65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a89016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300d7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb50175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db902dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268009b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a264697066735822122032dd1d565d3bddc2fee2f1b128543ccd5c9d5ea830e6be541f10368e4481309c64736f6c63430008190033","sourceMap":"199:2819:90:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;;;;;-1:-1:-1;;199:2819:90;;;;;;;;;;;;;;;;;;-1:-1:-1;;;3551:47:24;;;:87;;;;199:2819:90;;;;;;;;;;3551:87:24;-1:-1:-1;;;1133:40:30;;-1:-1:-1;3551:87:24;;;199:2819:90;-1:-1:-1;199:2819:90;;;;;;;;-1:-1:-1;;199:2819:90;;;;;;;966:38:101;199:2819:90;;;;;;;;;-1:-1:-1;;199:2819:90;;;;;;;821:37:101;199:2819:90;;;;-1:-1:-1;;;;;199:2819:90;;;;;:::o;:::-;;;;;;-1:-1:-1;;199:2819:90;;;;;;;;;:::i;:::-;;;3217:103:29;;;:::i;:::-;-1:-1:-1;;;;;199:2819:90;;5525:21:100;5521:75;;5634:10;199:2819:90;;;;5606:15:101;199:2819:90;;;;;5606:33:101;;;:::i;:24::-;:33;:::i;:::-;5610:35:100;;5606:88;;1057:70:92;5173:21:101;;:::i;:::-;4803:22;;:::i;:::-;1057:70:92;;;:::i;:::-;5801:20:100;;;5797:82;;5904:43;;;;:::i;:::-;3282:1:29;;1805;-1:-1:-1;;;;;;;;;;;199:2819:90;3716:283:29;3282:1;199:2819:90;;;;;;;;;;;;;;;;;;5797:82:100;199:2819:90;;-1:-1:-1;;;;;;5844:24:100;;199:2819:90;;5844:24:100;5606:88;199:2819:90;;-1:-1:-1;;;5668:15:100;;199:2819:90;;5668:15:100;5521:75;199:2819:90;;-1:-1:-1;;;5569:16:100;;199:2819:90;;5569:16:100;199:2819:90;;;;;;-1:-1:-1;;199:2819:90;;;;;;-1:-1:-1;199:2819:90;-1:-1:-1;;;;;;;;;;;199:2819:90;;;4919:24:24;199:2819:90;-1:-1:-1;199:2819:90;4919:24:24;199:2819:90;;;;;;;;;;;;;-1:-1:-1;;199:2819:90;;;;;;;;-1:-1:-1;;;;;199:2819:90;;;;;;;;;;;;;;-1:-1:-1;;199:2819:90;;;;4084:14:101;;:::i;:::-;4112:10;;4108:65;;4190:17;199:2819:90;;;;;;;;;;;;;;;;4210:27:101;199:2819:90;;;4210:27:101;;:::i;:::-;199:2819:90;;;;;;;4189:60:101;199:2819:90;4189:60:101;;:::i;:::-;199:2819:90;;;;;;;;;;;;;;;;;;:::i;4108:65:101:-;199:2819:90;;-1:-1:-1;;;4145:17:101;;199:2819:90;;4145:17:101;199:2819:90;;;;-1:-1:-1;;;;;199:2819:90;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;199:2819:90;;;;;;;;;;;;;;;:::o;:::-;;;;;;-1:-1:-1;;199:2819:90;;;;;;:::i;:::-;-1:-1:-1;;;;;199:2819:90;;;;;;;;;;;;;;:::i;:::-;3217:103:29;;;;:::i;:::-;1673:7:76;-1:-1:-1;;;;;199:2819:90;1659:10:76;:21;1655:71;;-1:-1:-1;;;;;;;;;;;199:2819:90;;;;;;;6431:44:26;;;;;199:2819:90;6427:105:26;;;;;-1:-1:-1;15924:8:100;;6427:105:26;199:2819:90;;-1:-1:-1;;;6498:23:26;;199:2819:90;;6498:23:26;6431:44;199:2819:90;;;;6450:25:26;;;-1:-1:-1;6431:44:26;;;;;1655:71:76;199:2819:90;;-1:-1:-1;;;1703:12:76;;199:2819:90;;1703:12:76;199:2819:90;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;199:2819:90;;;;;;;:::o;:::-;;:::i;:::-;;;;;;;-1:-1:-1;;;;;199:2819:90;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;199:2819:90;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;199:2819:90;;;;;;;:::o;:::-;;;;;;;;;;-1:-1:-1;;;;;199:2819:90;;;;;;;:::o;:::-;;;;;;;:::i;:::-;:::o;:::-;-1:-1:-1;;;;;199:2819:90;;;;;;-1:-1:-1;;199:2819:90;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;199:2819:90;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;;-1:-1:-1;;199:2819:90;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;199:2819:90;;;;;;;5383:59:101;199:2819:90;;;;;;:::i;:::-;-1:-1:-1;;;;;199:2819:90;;;-1:-1:-1;199:2819:90;;;5383:15:101;199:2819:90;;;;;5383:59:101;:::i;:::-;199:2819:90;;;;;;;;;;;;-1:-1:-1;;199:2819:90;;;;;;655:32:76;-1:-1:-1;;;;;199:2819:90;;;;;;;;;;;;-1:-1:-1;;199:2819:90;;;;5350:25:24;199:2819:90;;;;;;;:::i;:::-;;-1:-1:-1;199:2819:90;-1:-1:-1;;;;;;;;;;;199:2819:90;;3202:4:24;4919:24;199:2819:90;-1:-1:-1;199:2819:90;4919:24:24;199:2819:90;3202:4:24;:::i;:::-;5350:25;:::i;:::-;199:2819:90;;;;;;;-1:-1:-1;;199:2819:90;;;;;;;;;:::i;:::-;966:10:28;-1:-1:-1;;;;;199:2819:90;;6441:34:24;6437:102;;6549:37;199:2819:90;;;6549:37:24;:::i;6437:102::-;199:2819:90;;-1:-1:-1;;;6498:30:24;;199:2819:90;;6498:30:24;199:2819:90;;;;;;-1:-1:-1;;199:2819:90;;;;;1524:22:100;199:2819:90;;;;1524:46:100;;;199:2819:90;;;;;;;;;;;1524:46:100;-1:-1:-1;1550:20:100;199:2819:90;;;;;1524:46:100;;199:2819:90;;;;;;;:::o;:::-;;;;;;-1:-1:-1;;199:2819:90;;;;;;;;;:::i;:::-;3217:103:29;;:::i;:::-;3202:4:24;;:::i;:::-;-1:-1:-1;199:2819:90;;;;;;;;;;;9542:26:100;9538:76;;-1:-1:-1;;199:2819:90;;;;;-1:-1:-1;199:2819:90;;;;;;9665:27:100;;199:2819:90;;9665:27:100;1805:1:29;-1:-1:-1;;;;;;;;;;;199:2819:90;;9538:76:100;199:2819:90;;-1:-1:-1;;;9591:12:100;;199:2819:90;;9591:12:100;199:2819:90;;;;;;-1:-1:-1;;199:2819:90;;;;;;1718:31:101;199:2819:90;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3217:103:29;;:::i;:::-;-1:-1:-1;;;;;199:2819:90;;;;;3474:24:100;;3470:81;;-1:-1:-1;199:2819:90;;;;3565:55:100;;;199:2819:90;3561:118:100;;199:2819:90;;-1:-1:-1;;;3713:43:100;;;3750:4;3713:43;;;199:2819:90;;;;;;;;;;;;;;;;;;;;;;;;;3713:43:100;;;;;;;;;;-1:-1:-1;3713:43:100;;;199:2819:90;;3829:6:100;199:2819:90;;;3750:4:100;;3802:10;;3829:6;;:::i;:::-;-1:-1:-1;199:2819:90;;;3864:43:100;;;3750:4;3864:43;;;199:2819:90;;;;;;;;;;3864:43:100;199:2819:90;;;;;;3864:43:100;199:2819:90;;;;;3864:43:100;;;;;;;:59;:43;-1:-1:-1;3864:43:100;;;199:2819:90;3864:59:100;;;:::i;:::-;3938:20;;;3934:79;;199:2819:90;;;;;4027:64:100;;199:2819:90;4023:123:100;;5173:21:101;;199:2819:90;5173:21:101;4502:93:100;5173:21:101;;:::i;:::-;4803:22;4426:66:100;4803:22:101;;:::i;:::-;4349:67:100;390:70:92;;;;;:::i;:::-;837:15:63;4385:30:100;837:15:63;819:34;837:15;819:34;:::i;:::-;4385:30:100;;:::i;:::-;4349:67;;:::i;:::-;837:15:63;;4463:28:100;837:15:63;819:34;837:15;819:34;:::i;4463:28:100:-;4426:66;;:::i;:::-;-1:-1:-1;;;;;;;199:2819:90;;;;;;5606:15:101;199:2819:90;;;;;837:15:63;4553:41:100;837:15:63;5606:33:101;:24;819:34:63;837:15;819:34;:::i;:::-;-1:-1:-1;;;;;199:2819:90;;;;;;;5606:15:101;199:2819:90;;;;;;;5606:33:101;4553:41:100;:::i;:::-;4502:93;;:::i;:::-;-1:-1:-1;;199:2819:90;;;;;;;;;;;3802:10:100;;4611:62;;199:2819:90;;4611:62:100;3282:1:29;1805;-1:-1:-1;;;;;;;;;;;199:2819:90;3716:283:29;3282:1;199:2819:90;;;;;;;;;;;;;;;;;;;4023:123:100;199:2819:90;;-1:-1:-1;;;4114:21:100;;;4027:64;5173:21:101;4045:31:100;5173:21:101;;;:::i;4045:31:100:-;199:2819:90;;-1:-1:-1;4027:64:100;;3934:79;-1:-1:-1;199:2819:90;;-1:-1:-1;;;3981:21:100;;;3864:43;;;;;;-1:-1:-1;3864:43:100;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;;:::i;3713:::-;3829:6;3713:43;;;;;;;;;;;;;;;:::i;:::-;;;;;3561:118;-1:-1:-1;199:2819:90;;-1:-1:-1;;;3643:25:100;;;3565:55;-1:-1:-1;3609:10:100;199:2819:90;;;;3586:22:100;199:2819:90;;;;;;;;3585:35:100;3565:55;;3470:81;199:2819:90;;-1:-1:-1;;;3521:19:100;;;199:2819:90;;;;;;-1:-1:-1;;199:2819:90;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;199:2819:90;;;;;1805:27:101;199:2819:90;;;;;;;;;;;;;;;-1:-1:-1;;199:2819:90;;;;;;1968:34:101;199:2819:90;;;;;;;;;;;;;;;-1:-1:-1;;199:2819:90;;;;;;;;;;:::i;:::-;;;;;-1:-1:-1;;;;;199:2819:90;;;;;;;;;:::i;:::-;;;;;4622:48:101;199:2819:90;;;:::i;:::-;4622:48:101;;:::i;199:2819:90:-;;;;;;-1:-1:-1;;199:2819:90;;;;;;;;;:::i;:::-;3217:103:29;;:::i;:::-;3202:4:24;;:::i;:::-;-1:-1:-1;199:2819:90;;;;;;;;;;;;;10370:24:100;10366:74;;-1:-1:-1;;199:2819:90;;;;;;;;-1:-1:-1;199:2819:90;;;;;;10489:25:100;;199:2819:90;;10489:25:100;3282:1:29;1805;-1:-1:-1;;;;;;;;;;;199:2819:90;3716:283:29;199:2819:90;;;;;;-1:-1:-1;;199:2819:90;;;;;-1:-1:-1;;;;;;;;;;;;;;;;199:2819:90;;;;;;;;;;;;;;-1:-1:-1;;199:2819:90;;;;;;;;;:::i;:::-;449:5:87;-1:-1:-1;;;;;199:2819:90;435:10:87;:19;431:71;;1113:52:90;;;:::i;:::-;199:2819;;;;;;;;;;;;;;;;;;;-1:-1:-1;;199:2819:90;431:71:87;199:2819:90;;-1:-1:-1;;;477:14:87;;199:2819:90;;477:14:87;199:2819:90;;;;;;-1:-1:-1;;199:2819:90;;;;;;:::i;:::-;;;;;;:::i;:::-;-1:-1:-1;;;;;199:2819:90;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;8837:64:26;;199:2819:90;;;;;;734:29:76;730:87;;199:2819:90;;;;;6431:44:26;;;;;199:2819:90;6427:105:26;;;6656:20;199:2819:90;6656:20:26;199:2819:90;1167:340:76;199:2819:90;;;;-1:-1:-1;;;;;199:2819:90;;;;;6575:22:26;-1:-1:-1;;;;;;;;;;;;;;199:2819:90;;;;;;;;;6575:22:26;1167:340:76;:::i;:::-;-1:-1:-1;;;;;;;;;;;199:2819:90;;-1:-1:-1;;199:2819:90;;;;;-1:-1:-1;;;;;199:2819:90;;;;;;;;;;;;;6656:20:26;;;;199:2819:90;6431:44:26;199:2819:90;;;;;-1:-1:-1;6450:25:26;6431:44;;;730:87:76;199:2819:90;;-1:-1:-1;;;786:20:76;;199:2819:90;;786:20:76;199:2819:90;;;;;;-1:-1:-1;;199:2819:90;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;-1:-1:-1;;199:2819:90;;;;;;-1:-1:-1;199:2819:90;2431:59:101;199:2819:90;;;;-1:-1:-1;199:2819:90;;;;;;;;;;;;;;-1:-1:-1;;199:2819:90;;;;3875:17:101;199:2819:90;;3895:30:101;199:2819:90;;;;;3895:14:101;;;:::i;:::-;199:2819:90;;;3895:30:101;;:::i;:::-;199:2819:90;;;;;;;3874:63:101;199:2819:90;3874:63:101;;:::i;:::-;199:2819:90;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;199:2819:90;;;;;;;;-1:-1:-1;;199:2819:90;;;;:::o;:::-;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;199:2819:90;;;;;;;;;:::i;:::-;449:5:87;-1:-1:-1;;;;;199:2819:90;435:10:87;:19;431:71;;514:51:90;;;:::i;199:2819::-;;;;;;-1:-1:-1;;199:2819:90;;;;;;1200:42:101;-1:-1:-1;;;;;199:2819:90;;;;;;;;;;;;-1:-1:-1;;199:2819:90;;;;;;2136:32:101;199:2819:90;;;;;;;;;;;;;;;;;;-1:-1:-1;;199:2819:90;;;;2303:62:25;;:::i;:::-;-1:-1:-1;;;;;;;;;;;199:2819:90;;-1:-1:-1;;;;;;199:2819:90;;;;;;;-1:-1:-1;;;;;199:2819:90;3975:40:25;199:2819:90;;3975:40:25;199:2819:90;;;;;;;-1:-1:-1;;199:2819:90;;;;;;;;;;;:::i;:::-;3217:103:29;;:::i;:::-;7131:7:100;199:2819:90;7117:21:100;;-1:-1:-1;;;;;199:2819:90;;-1:-1:-1;;;;;199:2819:90;;;7117:21:100;:10;:21;7113:71;;7218:14;;:::i;:::-;7265:25;;;;:::i;:::-;7305:17;;;;:53;;;199:2819:90;7304:87:100;;;;199:2819:90;7300:146:100;;199:2819:90;5173:21:101;9310:48:100;5173:21:101;;;:::i;:::-;7540:17:100;7528:30;7540:17;;;:::i;:::-;199:2819:90;;7528:11:100;199:2819:90;;;;;;;7528:30:100;199:2819:90;;7572:29:100;;;;;7642:30;;;;;:::i;:::-;7702:32;;;;:::i;:::-;7752:17;;;7748:384;;7568:1615;;;;;;;9197:17;9193:102;;7568:1615;199:2819:90;;;;;;;;;;;;;;;;;;;;;;;9310:48:100;3282:1:29;1805;-1:-1:-1;;;;;;;;;;;199:2819:90;3716:283:29;3282:1;199:2819:90;;;;;;;;;;;;;9193:102:100;-1:-1:-1;199:2819:90;9270:13:100;;199:2819:90;;9230:18:100;;199:2819:90;;-1:-1:-1;;;;;199:2819:90;;;9230:18:100;7556:1;199:2819:90;-1:-1:-1;;;;;199:2819:90;9270:13:100;;:::i;:::-;9193:102;;7748:384;8045:29;7813:50;7962:65;7813:50;7998:28;7914:29;7813:50;8057:16;7813:50;8077:40;7813:50;;;:::i;:::-;7914:29;;;:::i;:::-;837:15:63;819:34;837:15;819:34;:::i;:::-;7998:28:100;;:::i;8077:40::-;8057:16;;:::i;8045:29::-;199:2819:90;7748:384:100;;;;;;;7568:1615;8185:26;;;;199:2819:90;;7528:11:100;199:2819:90;;;;;;;8185:26:100;199:2819:90;8250:27:100;:45;:27;;;;;:::i;:45::-;8325:32;;;;;:::i;:::-;8375:17;;8371:802;;7568:1615;;;;;;;;8371:802;9096:26;8436:50;;8537:53;8436:50;8637:54;8436:50;8637:29;8436:50;9125:33;8436:50;;;;:::i;:::-;8537:53;;;;;;:::i;:::-;8637:29;;;;:::i;:::-;:54;:::i;:::-;8714:33;;;;8710:194;;8371:802;8922:65;837:15:63;8958:28:100;9038:40;837:15:63;;;819:34;837:15;819:34;:::i;9038:40:100:-;9005:30;9017:17;;;:::i;9005:30::-;199:2819:90;9125:33:100;:::i;:::-;9096:26;199:2819:90;;7528:11:100;199:2819:90;;;;;;;9096:26:100;199:2819:90;8371:802:100;;;;;;;8710:194;8797:33;8771:59;8922:65;8797:33;;;9038:40;8797:33;;;:::i;:::-;8771:59;;:::i;:::-;8852:33;;-1:-1:-1;8852:33:100;;-1:-1:-1;8710:194:100;;7300:146;199:2819:90;;-1:-1:-1;;;7414:21:100;;199:2819:90;;7414:21:100;7304:87;7363:28;;;;7304:87;;7305:53;7341:17;;;;:::i;:::-;7326:32;;7305:53;;7113:71;199:2819:90;;-1:-1:-1;;;7161:12:100;;199:2819:90;;7161:12:100;199:2819:90;;;;;;-1:-1:-1;;199:2819:90;;;;4384:17:101;199:2819:90;;;;;;;4405:14:101;;;:::i;:::-;4384:17;199:2819:90;;;;;;;4404:36:101;199:2819:90;;;4404:36:101;;:::i;199:2819:90:-;;;;;;-1:-1:-1;;199:2819:90;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;199:2819:90;;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;199:2819:90;2307:68:101;199:2819:90;;;;;-1:-1:-1;199:2819:90;;;;;;;;;;;;;;;;;-1:-1:-1;;199:2819:90;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;-1:-1:-1;;199:2819:90;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;199:2819:90;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6491:14:100;199:2819:90;;6491:14:100;;:::i;199:2819:90:-;;;;;4994:47:101;199:2819:90;;;:::i;:::-;4994:47:101;;:::i;199:2819:90:-;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;3217:103:29;;:::i;:::-;10932:22:100;199:2819:90;;;;;10928:89:100;;199:2819:90;;-1:-1:-1;;;11032:49:100;;-1:-1:-1;;;;;199:2819:90;;;11032:49:100;;;199:2819:90;;;;;;;;;;;;;;;11032:49:100;11042:17;;;199:2819:90;11032:49:100;;;;;;;-1:-1:-1;11032:49:100;;;199:2819:90;11031:50:100;;11027:102;;199:2819:90;;-1:-1:-1;;;11143:34:100;;199:2819:90;;;;;11143:34:100;199:2819:90;11143:34:100;199:2819:90;;11143:34:100;;;;;;;-1:-1:-1;11143:34:100;;;199:2819:90;11189:4:100;;;199:2819:90;;11143:51:100;11139:107;;-1:-1:-1;10932:22:100;199:2819:90;;-1:-1:-1;;;;;199:2819:90;;;;-1:-1:-1;;;;;;199:2819:90;;;;;;;-1:-1:-1;;;199:2819:90;;;11334:24:100;-1:-1:-1;;11334:24:100;3282:1:29;1805;-1:-1:-1;;;;;;;;;;;199:2819:90;3716:283:29;11139:107:100;199:2819:90;;-1:-1:-1;;;11217:18:100;;;11143:34;;;;;;;-1:-1:-1;11143:34:100;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;11027:102;-1:-1:-1;199:2819:90;;-1:-1:-1;;;11104:14:100;;;11032:49;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;10928:89;199:2819:90;;-1:-1:-1;;;10977:29:100;;;199:2819:90;;;;;;-1:-1:-1;;199:2819:90;;;;;;1298:40:101;-1:-1:-1;;;;;199:2819:90;;;;;;;;;;;;-1:-1:-1;;199:2819:90;;;;1703:14:100;;:::i;:::-;5173:21:101;;:::i;:::-;199:2819:90;;;;1750:11:100;199:2819:90;;;;;;;;;;;;;1791:1:100;199:2819:90;;;;;;;;;1750:11:100;199:2819:90;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;199:2819:90;;;;-1:-1:-1;;;;;;;;;;;199:2819:90;;;-1:-1:-1;;;;;199:2819:90;;;;;;;;;;;;;;-1:-1:-1;;199:2819:90;;;;;;3901:31:24;199:2819:90;;;;;:::i;:::-;;;-1:-1:-1;199:2819:90;-1:-1:-1;;;;;;;;;;;199:2819:90;;;-1:-1:-1;199:2819:90;;;;;;;;;;;;;;;;;3901:31:24;199:2819:90;;;;;;;;;;;;;;;;-1:-1:-1;;199:2819:90;;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;199:2819:90;5606:15:101;199:2819:90;;;5606:33:101;199:2819:90;-1:-1:-1;199:2819:90;5606:33:101;:::i;199:2819:90:-;;;;;;-1:-1:-1;;199:2819:90;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;199:2819:90;;;;-1:-1:-1;199:2819:90;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;416:25:80;;;;477:31;416:25;;:::i;:::-;199:2819:90;;;;;;;;;;477:31:80;;199:2819:90;;;;;;;;;;;:::i;:::-;477:31:80;199:2819:90;;477:31:80;;;;;;:::i;:::-;518:79;;;199:2819:90;518:79:80;;199:2819:90;;;;;;-1:-1:-1;;199:2819:90;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;199:2819:90;;;;;;;;;;;;;;;;;-1:-1:-1;;199:2819:90;;;;;;;1109:35:101;199:2819:90;;;;;;;;;-1:-1:-1;;199:2819:90;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;3217:103:29;;:::i;:::-;3202:4:24;;:::i;:::-;-1:-1:-1;;;;;199:2819:90;;;9907:21:100;;9903:75;;-1:-1:-1;199:2819:90;;;9992:22:100;199:2819:90;;;;;;;;;;;;;9992:41:100;9988:91;;-1:-1:-1;;;;;199:2819:90;;;;;3586:22:100;199:2819:90;;;;;10145:44:100;;;;10089:40;;:31;199:2819:90;;;;;;;;;;;;;;10089:40:100;199:2819:90;;;;;;;;;;;;;;;10145:44:100;;;;3282:1:29;1805;-1:-1:-1;;;;;;;;;;;199:2819:90;3716:283:29;9903:75:100;199:2819:90;;-1:-1:-1;;;9951:16:100;;199:2819:90;;9951:16:100;199:2819:90;;;;;;-1:-1:-1;;199:2819:90;;;;;2666:94:101;199:2819:90;;;;;:::i;:::-;;;-1:-1:-1;199:2819:90;2666:94:101;199:2819:90;;;-1:-1:-1;199:2819:90;;;;;;;;;;;;;;;;;2666:94:101;199:2819:90;;;;;;;;;;;;;-1:-1:-1;;199:2819:90;;;;;;2816:92:101;199:2819:90;;;;;:::i;:::-;;;-1:-1:-1;199:2819:90;2816:92:101;199:2819:90;;;-1:-1:-1;199:2819:90;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3217:103:29;;:::i;:::-;11459:20:100;199:2819:90;;;;;11455:85:100;;-1:-1:-1;;;;;199:2819:90;;;;;;11550:312:100;;199:2819:90;11459:20:100;199:2819:90;;-1:-1:-1;;;;199:2819:90;-1:-1:-1;;;199:2819:90;;;11872:27:100;11915:20;-1:-1:-1;11915:20:100;;3282:1:29;1805;-1:-1:-1;;;;;;;;;;;199:2819:90;3716:283:29;11550:312:100;199:2819:90;;-1:-1:-1;;;11597:45:100;;-1:-1:-1;;;;;199:2819:90;;11597:45:100;;;199:2819:90;;;11597:45:100;;199:2819:90;;;;;;11597:45:100;11607:15;;;199:2819:90;11597:45:100;;;;;;;-1:-1:-1;11597:45:100;;;11550:312;11596:46;;11592:104;;199:2819:90;;-1:-1:-1;;;11714:30:100;;;199:2819:90;11714:30:100;199:2819:90;11714:30:100;;;;;;;;-1:-1:-1;11714:30:100;;;11550:312;11756:4;;;199:2819:90;;11714:47:100;11710:109;;-1:-1:-1;11459:20:100;199:2819:90;;-1:-1:-1;;;;;;199:2819:90;-1:-1:-1;;;;;199:2819:90;;;;;;;;;11550:312:100;;;;;;11710:109;199:2819:90;;-1:-1:-1;;;11788:16:100;;;11714:30;;;;;;;-1:-1:-1;11714:30:100;;;;;;:::i;:::-;;;;;;11592:104;199:2819:90;;-1:-1:-1;;;11669:12:100;;199:2819:90;;11669:12:100;11597:45;;;;;;;;;;;;;;:::i;:::-;;;;11455:85;199:2819:90;;-1:-1:-1;;;11502:27:100;;;199:2819:90;;;;;;-1:-1:-1;;199:2819:90;;;;;;;;;:::i;:::-;;;3217:103:29;;;:::i;:::-;-1:-1:-1;;;;;199:2819:90;;;;;6112:23:100;;6108:79;;6273:6;199:2819:90;6206:13:100;;;;:::i;:::-;199:2819:90;;;-1:-1:-1;199:2819:90;;;;6273:6:100;:::i;:::-;199:2819:90;;;;;;;;;;;;6302:10:100;;6296:43;;199:2819:90;6296:43:100;1805:1:29;-1:-1:-1;;;;;;;;;;;199:2819:90;;;;;;;;;;;;;;6108:79:100;199:2819:90;;-1:-1:-1;;;6158:18:100;;199:2819:90;;6158:18:100;199:2819:90;;;;;;-1:-1:-1;;199:2819:90;;;;;;-1:-1:-1;199:2819:90;2546:64:101;199:2819:90;;;;-1:-1:-1;199:2819:90;;;;;;;;;;;;;;-1:-1:-1;;199:2819:90;;;;2058:22:101;199:2819:90;;;-1:-1:-1;;;;;199:2819:90;;;;;;;;;;;;;;-1:-1:-1;;199:2819:90;;;;;5173:21:101;;:::i;199:2819:90:-;;;;;;-1:-1:-1;;199:2819:90;;;;;;3217:103:29;;:::i;:::-;966:10:28;-1:-1:-1;199:2819:90;;;;;;;;;;1109:35:101;;199:2819:90;;4468:23:24;4464:108;;199:2819:90;;;;10692:21:100;10688:71;;199:2819:90;;10805:22:100;199:2819:90;;;;;;;;10805:22:100;1805:1:29;-1:-1:-1;;;;;;;;;;;199:2819:90;;4464:108:24;199:2819:90;;;;4514:47:24;;;;;;966:10:28;199:2819:90;4514:47:24;;199:2819:90;;;;;4514:47:24;199:2819:90;;;;;;-1:-1:-1;;199:2819:90;;;;;4803:22:101;;:::i;199:2819:90:-;;;;;;-1:-1:-1;;199:2819:90;;;;;;;;;:::i;:::-;3123:14:100;;:::i;:::-;3154:24;;;:::i;:::-;3181:29;;;;;:::i;:::-;199:2819:90;;;;;;;3235:1:100;199:2819:90;;;;;;;3213:33:100;;;:::i;:::-;199:2819:90;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;199:2819:90;;;;1888:24:101;199:2819:90;;;-1:-1:-1;;;;;199:2819:90;;;;;;;;;;;;;;-1:-1:-1;;199:2819:90;;;;5767:26:24;199:2819:90;;;;;;;:::i;:::-;;-1:-1:-1;199:2819:90;-1:-1:-1;;;;;;;;;;;199:2819:90;;3202:4:24;4919:24;199:2819:90;-1:-1:-1;199:2819:90;4919:24:24;199:2819:90;3202:4:24;:::i;:::-;5767:26;:::i;199:2819:90:-;;;;;;-1:-1:-1;;199:2819:90;;;;;;;;;;;;;-1:-1:-1;;;;;199:2819:90;;;;;;;;;;;;-1:-1:-1;;199:2819:90;;;;;;;675:39:101;199:2819:90;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;:::i;:::-;-1:-1:-1;;;;;449:5:87;199:2819:90;;435:10:87;:19;431:71;;1742:63:90;199:2819;;-1:-1:-1;199:2819:90;1742:15;199:2819;;;-1:-1:-1;199:2819:90;1742:63;:::i;199:2819::-;;;;;;-1:-1:-1;;199:2819:90;;;;;;;;;;;;;;;;;;;-1:-1:-1;;199:2819:90;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;-1:-1:-1;;;;;199:2819:90;;;;;;;;;;;;;;;:::i;:::-;1972:48:100;;199:2819:90;;;;;;;:::i;:::-;;;;;;;;;;;;;;2034:16:100;;2030:111;;199:2819:90;;2233:39:100;1057:70:92;2233:39:100;;4622:48:101;2196:77:100;2233:39;;;;2196:77;;:::i;:::-;2312:36;;4994:47:101;199:2819:90;2312:36:100;;;4994:47:101;;:::i;:::-;2389:37:100;;;4622:48:101;;:::i;:::-;1057:70:92;;:::i;:::-;199:2819:90;;;;;;;;;;;;;2030:111:100;2089:41;;;;-1:-1:-1;199:2819:90;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;4622:48:101;199:2819:90;2196:77:100;199:2819:90;1057:70:92;199:2819:90;;;:::i;:::-;;;;;2030:111:100;;;;;199:2819:90;;;;;;-1:-1:-1;;199:2819:90;;;;2357:1:25;199:2819:90;;;;;:::i;:::-;2303:62:25;;:::i;:::-;2357:1;:::i;199:2819:90:-;;;;;;-1:-1:-1;;199:2819:90;;;;;;;;;:::i;:::-;;;3217:103:29;;:::i;:::-;-1:-1:-1;;;;;199:2819:90;;4890:21:100;4886:75;;4975:11;;4971:73;;845:69:92;4803:22:101;;:::i;:::-;5173:21;;:::i;:::-;845:69:92;;;:::i;:::-;5180:10:100;199:2819:90;;;;5606:15:101;199:2819:90;;;;;5180:10:100;;;5606:33:101;;;:::i;:::-;5150:41:100;;5146:96;;5267:40;;;;;:::i;5146:96::-;199:2819:90;;-1:-1:-1;;;5214:17:100;;199:2819:90;;5214:17:100;4971:73;199:2819:90;;-1:-1:-1;;;5009:24:100;;199:2819:90;;5009:24:100;199:2819:90;;;;;;-1:-1:-1;;199:2819:90;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;199:2819:90;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;:::o;:::-;;7556:1:100;199:2819:90;;;;;;;:::o;:::-;;;;;;;;;;:::o;5256:193:101:-;-1:-1:-1;;;;;199:2819:90;-1:-1:-1;199:2819:90;;;5383:15:101;199:2819:90;;;;;5383:59:101;;5256:193;;5383:59;:::i;199:2819:90:-;;;;;;;;;;;:::o;:::-;;;;;;;;;;1167:340:76;;13510:30:100;1167:340:76;199:2819:90;1167:340:76;6893:76:26;;:::i;:::-;;;:::i;:::-;1805:1:29;-1:-1:-1;;;;;;;;;;;199:2819:90;-1:-1:-1;;;;;199:2819:90;;;;1376:73:76;;1167:340;199:2819:90;;;;:::i;:::-;13510:30:100;199:2819:90;;;13510:30:100;;;;;;:::i;:::-;199:2819:90;;;;-1:-1:-1;;;;;199:2819:90;13555:31:100;13551:88;;13653:20;;;;199:2819:90;;;;;;;;;;13653:25:100;13649:85;;13748:29;;;199:2819:90;;13748:29:100;;199:2819:90;13748:43:100;;-1:-1:-1;;;;;199:2819:90;;;13748:43:100;;13744:943;;1167:340:76;199:2819:90;;;15647:32:100;199:2819:90;14817:36:100;199:2819:90;;;14697:30:100;199:2819:90;;;;;;;;;;;;1398:1:76;199:2819:90;;-1:-1:-1;;;;;;199:2819:90;;;;;;-1:-1:-1;;;;;199:2819:90;;;;;;;;14697:30:100;13510;14747:13;;199:2819:90;;;;-1:-1:-1;;;;;;199:2819:90;-1:-1:-1;;;;;199:2819:90;;;;;;;;;14771:36:100;819:34:63;837:15;819:34;:::i;:::-;1805:1:29;199:2819:90;;-1:-1:-1;;;;199:2819:90;;;;;;-1:-1:-1;;;199:2819:90;;;;;;;;14771:36:100;199:2819:90;;;;;;1805:1:29;199:2819:90;;-1:-1:-1;;;;;199:2819:90;;;;;;-1:-1:-1;;;;;;199:2819:90;;;;;;;;14817:36:100;14864:42;199:2819:90;14883:23:100;;;199:2819:90;;;;;;;;;1398:1:76;199:2819:90;;;;;;;1398:1:76;199:2819:90;;14864:42:100;14917:38;199:2819:90;14934:21:100;;;199:2819:90;;;;;;;1398:1:76;199:2819:90;;;;;;;;;;;;1398:1:76;199:2819:90;;14917:38:100;14965:34;14980:19;;;199:2819:90;14965:34:100;199:2819:90;;14965:34:100;199:2819:90;-1:-1:-1;;;;;199:2819:90;;;;;;;15010:135:100;;1167:340:76;-1:-1:-1;15158:36:100;;;199:2819:90;-1:-1:-1;;;;;199:2819:90;;;;15154:157:100;;1167:340:76;-1:-1:-1;15324:35:100;;;199:2819:90;-1:-1:-1;;;;;199:2819:90;;;;15320:153:100;;1167:340:76;-1:-1:-1;15486:34:100;;;199:2819:90;-1:-1:-1;;;;;199:2819:90;;;;15482:152:100;;1167:340:76;-1:-1:-1;15647:32:100;199:2819:90;-1:-1:-1;;;;;199:2819:90;;;;;;;15643:145:100;;1167:340:76;:::o;15643:145:100:-;15709:68;;;:::i;:::-;;1167:340:76:o;15482:152:100:-;15550:73;;;:::i;:::-;;15482:152;;;15320:153;15389:73;;;:::i;:::-;;15320:153;;;15154:157;15224:76;;;:::i;:::-;;15154:157;;;15010:135;15073:61;;;:::i;:::-;;15010:135;;;13744:943;13811:36;;;199:2819:90;13811:50:100;;-1:-1:-1;;;;;199:2819:90;;;13811:50:100;;13807:405;;13744:943;14230:34;;;199:2819:90;14230:48:100;;-1:-1:-1;;;;;199:2819:90;;;14230:48:100;13744:943;14226:451;14302:21;;;199:2819:90;;14302:21:100;;14351:19;;;199:2819:90;14351:24:100;:74;;;14298:365;14347:150;;14298:365;;199:2819:90;15647:32:100;14298:365;14817:36;199:2819:90;;14298:365:100;;14226:451;;;;;;;13744:943;;14347:150;199:2819:90;-1:-1:-1;;;14460:14:100;;;;;14351:74;-1:-1:-1;14379:32:100;;;199:2819:90;14379:46:100;;-1:-1:-1;;;;;199:2819:90;;;14379:46:100;;14351:74;;14298:365;14525:19;;;199:2819:90;14525:24:100;;;:74;;;14298:365;14521:142;;14298:365;;199:2819:90;15647:32:100;14298:365;14817:36;199:2819:90;;14298:365:100;;;14525:74;-1:-1:-1;14553:32:100;;;199:2819:90;14553:46:100;;-1:-1:-1;;;;;199:2819:90;;;14553:46:100;;;14525:74;;13807:405;13885:23;;;199:2819:90;;13885:23:100;;13936:35;;;199:2819:90;13936:49:100;;-1:-1:-1;;;;;199:2819:90;;;13936:49:100;13807:405;13932:125;199:2819:90;-1:-1:-1;;;14020:14:100;;;;;13881:317;14085:35;;;199:2819:90;14085:49:100;;-1:-1:-1;;;;;199:2819:90;;;14085:49:100;14081:117;13807:405;14081:117;199:2819:90;-1:-1:-1;;;14165:14:100;;;;;13649:85;199:2819:90;;-1:-1:-1;;;13701:22:100;;;;;13551:88;199:2819:90;;-1:-1:-1;;;13609:19:100;;;;;1376:73:76;6961:1:26;6893:76;;;:::i;:::-;;;:::i;6961:1::-;1376:73:76;;;2492:191:100;-1:-1:-1;;;;;199:2819:90;-1:-1:-1;199:2819:90;;;5606:15:101;199:2819:90;;;;;5606:33:101;;;:::i;:::-;5173:21;;:::i;:::-;4803:22;;:::i;:::-;199:2819:90;1884:1:92;199:2819:90;;;;;;;1884:1:92;199:2819:90;;;;;;;8188:25:58;;;:::i;199:2819:90:-;;;;;;:::i;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::i;578:368::-;;;735:95;711:157;578:368;199:2819;;;;;766:63;;;;;;;;199:2819;766:63;;;199:2819;766:63;;;;;;:::i;:::-;735:95;:::i;:::-;766:63;199:2819;;;711:157;;;;;;:::i;:::-;879:61;;;578:368;:::o;879:61::-;199:2819;;;;;;;;766:63;912:17;;199:2819;766:63;912:17;;;;;:::i;199:2819::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;:::i;3612:132:101:-;819:34:63;837:15;819:34;:::i;:::-;3683:54:101;3703:17;199:2819:90;3684:36:101;199:2819:90;;;;;;;3684:36:101;;:::i;:::-;199:2819:90;;;3683:54:101;;:::i;:::-;199:2819:90;3612:132:101;:::o;3313:244::-;3418:17;199:2819:90;;;;;;;;;;;;;;3406:29:101;3402:85;;3503:47;3504:29;;;;:::i;3402:85::-;199:2819:90;;-1:-1:-1;;;3458:18:101;;;;;3217:103:29;;;;:::i;:::-;199:2819:90;;-1:-1:-1;;;;;199:2819:90;;;6521:23:100;;6517:79;;6650:11;;6646:70;;199:2819:90;6742:10:100;;;;;;-1:-1:-1;199:2819:90;;6887:49:100;;199:2819:90;;;;6864:6:100;;199:2819:90;;6821:18:100;;199:2819:90;;-1:-1:-1;;;;;199:2819:90;;;6821:18:100;6864:6;:::i;:::-;6887:49;199:2819:90;;6898:10:100;;;;6887:49;;;:::i;:::-;;;;3282:1:29;;1805;-1:-1:-1;;;;;;;;;;;199:2819:90;3716:283:29;6754:3:100;6790:9;6773:27;199:2819:90;6790:9:100;6783:17;6790:9;;;;;:::i;:::-;199:2819:90;6783:17:100;:::i;6773:27::-;6754:3;199:2819:90;6731:9:100;;6646:70;199:2819:90;;-1:-1:-1;;;6684:21:100;;;;;199:2819:90;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;199:2819:90;;;;;;;;;;;;;;;;;;;;;;:::o;1178:370::-;;;1336:96;1312:158;1178:370;199:2819;;;;;1367:64;;;;;;;;199:2819;1367:64;;;199:2819;1367:64;;;;;;:::i;199:2819::-;;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;-1:-1:-1;199:2819:90;;;;:::o;:::-;;;:::o;1818:400::-;199:2819;;-1:-1:-1;;;2026:75:90;;;;-1:-1:-1;;;;;199:2819:90;;;2026:75;;;199:2819;;;;;;;;;;;;;2026:75;;199:2819;;1818:400;1971:169;;1995:107;;2026:75;199:2819;2026:75;:::i;3405:215:25:-;-1:-1:-1;;;;;199:2819:90;;;;3489:22:25;;3485:91;;-1:-1:-1;;;;;;;;;;;199:2819:90;;-1:-1:-1;;;;;;199:2819:90;;;;;;;;3975:40:25;-1:-1:-1;;3975:40:25;3405:215::o;3485:91::-;199:2819:90;;-1:-1:-1;;;3534:31:25;;3509:1;3534:31;;;199:2819:90;;;3534:31:25;2731:227:100;;2871:34;2731:227;199:2819:90;-1:-1:-1;199:2819:90;2871:18:100;199:2819:90;;;-1:-1:-1;199:2819:90;;;;;;;;;;;;;;;;;2871:34:100;199:2819:90;;-1:-1:-1;199:2819:90;2907:11:100;199:2819:90;;;-1:-1:-1;199:2819:90;;2927:16:100;199:2819:90;;;-1:-1:-1;199:2819:90;;;1884:1:92;199:2819:90;;;;;;;1884:1:92;199:2819:90;;;;;;;8188:25:58;;;:::i;2224:792:90:-;;;;;2579:34;2416:45;2357:12;199:2819;2416:45;;;:::i;:::-;2503:33;;;;;:::i;:::-;2579:34;;:::i;:::-;199:2819;;;2628:30;;;:61;;;2224:792;2628:93;;;;2224:792;2624:386;;2224:792;;;:::o;2624:386::-;199:2819;;;;2744:255;199:2819;;;;;;;;;;:::i;:::-;;;2772:213;;;199:2819;;;;2772:213;;199:2819;;;;;;2744:255;;;2772:213;2744:255;;;199:2819;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;2628:93::-;199:2819;;;2693:28;;2628:93;;:61;199:2819;;;2662:27;;2628:61;;3326:384:29;-1:-1:-1;;;;;;;;;;;1847:1:29;199:2819:90;;3526:20:29;3522:88;;1847:1;199:2819:90;;3326:384:29:o;3522:88::-;199:2819:90;;-1:-1:-1;;;3569:30:29;;;;;11948:968:100;12135:10;199:2819:90;;;;5606:15:101;199:2819:90;;;;;;11948:968:100;;;819:34:63;837:15;819:34;:::i;:::-;12135:10:100;199:2819:90;;;;5606:15:101;199:2819:90;;;;;5606:33:101;;;:::i;:::-;199:2819:90;;;;;;;;;12119:93:100;12835:74;12119:93;;;12660:30;12119:93;;:::i;:::-;837:15:63;;12222:67:100;819:34:63;837:15;819:34;:::i;:::-;12259:29:100;4803:22:101;;;:::i;12222:67:100:-;837:15:63;;12299:68:100;819:34:63;837:15;819:34;:::i;:::-;12335:31:100;5173:21:101;;;:::i;12299:68:100:-;12394:14;;12769:34;12394:14;12769:25;12394:18;:14;;:::i;:::-;:18;:::i;:::-;12726:33;12445:18;;199:2819:90;;7528:11:100;199:2819:90;;;;;;;12445:18:100;199:2819:90;12502:23:100;;199:2819:90;;12502:16:100;199:2819:90;;;;;;;12502:23:100;199:2819:90;390:70:92;;;;;:::i;:::-;12660:30:100;;;;;;:::i;:::-;12639:18;;199:2819:90;;7528:11:100;199:2819:90;;;;;;;12639:18:100;199:2819:90;12726:33:100;:::i;:::-;12700:23;;199:2819:90;;12502:16:100;199:2819:90;;;;;;;12700:23:100;199:2819:90;;;12769:18:100;199:2819:90;;;;;;;12769:25:100;199:2819:90;;;;;;;;;;;;;;;;12769:34:100;:50;199:2819:90;;;12769:50:100;:::i;:::-;199:2819:90;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;199:2819:90;;;;12135:10:100;;199:2819:90;;12835:74:100;11948:968::o;14291:213:59:-;199:2819:90;14369:24:59;;;;14365:103;;199:2819:90;14291:213:59;:::o;14365:103::-;199:2819:90;;;;14416:41:59;;;;;;14447:2;14416:41;;;199:2819:90;;;;;14416:41:59;199:2819:90;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::o;7558:604:91:-;;199:2819:90;;7686:17:91;7682:83;;199:2819:90;7789:27:91;199:2819:90;7789:27:91;199:2819:90;;7789:27:91;;;;;;:::i;:::-;7860:14;;;:::i;:::-;199:2819:90;;;;;;;;;;;;;;;;7888:22:91;;;7884:77;;7975:21;-1:-1:-1;7975:84:91;;;;7558:604;7971:139;;;;8127:28;;;;:::i;7971:139::-;7789:27;8082:17;;;199:2819:90;8075:24:91;:::o;7975:84::-;199:2819:90;;;8009:16:91;4622:13:101;199:2819:90;8009:16:91;:::i;:::-;199:2819:90;;;8001:24:91;:57;;;;;7975:84;;;;;;;8001:57;8029:29;8038:8;;;8029:18;8038:8;8029:23;8038:8;;:::i;:::-;8029:18;:::i;:23::-;199:2819:90;;;;8029:29:91;;8001:57;;;;7884:77;7933:17;;;7789:27;7933:17;;;199:2819:90;7926:24:91;:::o;7682:83::-;7726:28;;;;:::i;7558:604::-;;199:2819:90;;7686:17:91;7682:83;;199:2819:90;7789:27:91;199:2819:90;7789:27:91;199:2819:90;;7789:27:91;;;;;;:::i;:::-;7860:14;;;:::i;:::-;199:2819:90;;;;;;;;;;;;;;;;7888:22:91;;;7884:77;;7975:21;-1:-1:-1;7975:84:91;;;;7558:604;7971:139;;;;8127:28;;;;:::i;7975:84::-;199:2819:90;;;8009:16:91;4994:12:101;199:2819:90;8009:16:91;:::i;:::-;199:2819:90;;;8001:24:91;:57;;;;;7975:84;;;;;;;8001:57;8029:29;8038:8;;;8029:18;8038:8;8029:23;8038:8;;:::i;:::-;8029:18;:::i;:29::-;;8001:57;;;;7682:83;7726:28;;;;:::i;7558:604::-;;199:2819:90;;7686:17:91;7682:83;;199:2819:90;7789:27:91;199:2819:90;7789:27:91;199:2819:90;;7789:27:91;;;;;;:::i;:::-;7860:14;;;;;:::i;:::-;199:2819:90;;;;;;;;;;;;;;;;7888:22:91;;;7884:77;;7975:21;-1:-1:-1;7975:84:91;;;;7558:604;7971:139;;;;8127:28;;;;:::i;7971:139::-;8082:17;;7789:27;8082:17;199:2819:90;8075:24:91;:::o;7975:84::-;199:2819:90;;;8009:16:91;199:2819:90;;8009:16:91;:::i;:::-;199:2819:90;;;8001:24:91;:57;;;;;7975:84;;;;;;;8001:57;8029:29;8038:8;;;8029:18;8038:8;8029:23;8038:8;;:::i;:::-;8029:18;;:::i;:29::-;;8001:57;;;;7884:77;7933:17;;;;;7789:27;7933:17;199:2819:90;7926:24:91;:::o;7682:83::-;7726:28;;;;:::i;4148:103:24:-;966:10:28;-1:-1:-1;199:2819:90;;;;;;;;;675:39:101;;199:2819:90;;3901:31:24;199:2819:90;;4468:23:24;4464:108;;4148:103;:::o;:::-;966:10:28;-1:-1:-1;199:2819:90;;;;;;;;;966:38:101;;199:2819:90;;3901:31:24;199:2819:90;4148:103:24;966:10:28;-1:-1:-1;199:2819:90;;;;;;;;;821:37:101;;199:2819:90;;3901:31:24;199:2819:90;4148:103:24;-1:-1:-1;199:2819:90;;;-1:-1:-1;;;;;;;;;;;199:2819:90;;;;;;;;966:10:28;199:2819:90;;;;;;;;;3901:31:24;199:2819:90;7270:387:24;-1:-1:-1;;;;;199:2819:90;;1398:1:76;199:2819:90;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2887:71:24;199:2819:90;;;;1398:1:76;199:2819:90;;;;;;;;;;;-1:-1:-1;;;;;199:2819:90;;;;;;;;;;-1:-1:-1;;199:2819:90;7509:4:24;199:2819:90;;;966:10:28;;-1:-1:-1;;;;;199:2819:90;-1:-1:-1;7532:40:24;-1:-1:-1;;7532:40:24;7509:4;7586:11;:::o;7432:219::-;7628:12;;1398:1:76;7628:12:24;:::o;7270:387::-;-1:-1:-1;;;;;199:2819:90;;-1:-1:-1;199:2819:90;;;;;;;;;675:39:101;;-1:-1:-1;;;;;;;;;;;2887:71:24;199:2819:90;;3901:31:24;199:2819:90;;;;-1:-1:-1;199:2819:90;;;;;;;;;;;-1:-1:-1;;;;;199:2819:90;;;;;;;;;;-1:-1:-1;;199:2819:90;7509:4:24;199:2819:90;;;966:10:28;;-1:-1:-1;;;;;199:2819:90;;7532:40:24;-1:-1:-1;;7532:40:24;7509:4;7586:11;:::o;7432:219::-;7628:12;;;-1:-1:-1;7628:12:24;:::o;7270:387::-;-1:-1:-1;;;;;199:2819:90;;-1:-1:-1;199:2819:90;;;;;;;;;821:37:101;;-1:-1:-1;;;;;;;;;;;2887:71:24;199:2819:90;;3901:31:24;199:2819:90;7270:387:24;-1:-1:-1;;;;;199:2819:90;;-1:-1:-1;199:2819:90;;;;;;;;;966:38:101;;-1:-1:-1;;;;;;;;;;;2887:71:24;199:2819:90;;3901:31:24;199:2819:90;7270:387:24;-1:-1:-1;;;;;199:2819:90;;-1:-1:-1;199:2819:90;;;;;;;;;1109:35:101;;-1:-1:-1;;;;;;;;;;;2887:71:24;199:2819:90;;3901:31:24;199:2819:90;7270:387:24;-1:-1:-1;199:2819:90;;;-1:-1:-1;;;;;;;;;;;199:2819:90;;;;;;;;-1:-1:-1;;;;;199:2819:90;;;;;;;;;;;;3901:31:24;199:2819:90;7892:388:24;-1:-1:-1;199:2819:90;;;-1:-1:-1;;;;;;;;;;;199:2819:90;;;;;;;;-1:-1:-1;;;;;199:2819:90;;;;;;;;;;;;;;;;-1:-1:-1;199:2819:90;;;;;;;;;;;-1:-1:-1;;;;;199:2819:90;;;;;;;;;;-1:-1:-1;;199:2819:90;;;966:10:28;;-1:-1:-1;;;;;199:2819:90;;8155:40:24;-1:-1:-1;;8155:40:24;199:2819:90;8209:11:24;:::o;1702:188:46:-;199:2819:90;;-1:-1:-1;;;1829:53:46;;;;-1:-1:-1;;;;;199:2819:90;;;1829:53:46;;;199:2819:90;;;;;;;;;;;;;;;;;1829:53:46;;;199:2819:90;;;;;;;-1:-1:-1;;;;;199:2819:90;;;;;1829:53:46;199:2819:90;;;1829:53:46;:::i;199:2819:90:-;9219:12:91;199:2819:90;;;;;;9219:12:91;-1:-1:-1;199:2819:90;-1:-1:-1;;;;;;;;;;;199:2819:90;;-1:-1:-1;199:2819:90;:::o;:::-;9219:12:91;199:2819:90;;;;;;9219:12:91;-1:-1:-1;199:2819:90;-1:-1:-1;;;;;;;;;;;199:2819:90;;-1:-1:-1;199:2819:90;:::o;:::-;;;;;;;;-1:-1:-1;199:2819:90;;-1:-1:-1;199:2819:90;;;-1:-1:-1;199:2819:90;:::o;:::-;6360:12:91;199:2819:90;-1:-1:-1;;;199:2819:90;;;;;;;;;6360:12:91;199:2819:90;;;;;;6360:12:91;-1:-1:-1;199:2819:90;-1:-1:-1;;;;;;;;;;;199:2819:90;;:::o;:::-;6360:12:91;199:2819:90;-1:-1:-1;;;199:2819:90;;;;;;;;;6360:12:91;199:2819:90;;;;;;6360:12:91;-1:-1:-1;199:2819:90;-1:-1:-1;;;;;;;;;;;199:2819:90;;:::o;:::-;;;;;-1:-1:-1;;;199:2819:90;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;6246:584:91;;;;6360:12;199:2819:90;;;6360:24:91;;6356:75;;6246:584;6474:30;;;:::i;:::-;199:2819:90;;;;;;6578:12:91;;;:::i;:::-;6604:24;;;;6246:584;-1:-1:-1;6600:188:91;;;-1:-1:-1;;;199:2819:90;;;;;;;;;-1:-1:-1;199:2819:90;;;-1:-1:-1;199:2819:90;;;;;;6798:25:91;199:2819:90;6246:584:91:o;6600:188::-;8167:38:61;;-1:-1:-1;;;;;199:2819:90;;-1:-1:-1;8167:38:61;:::i;:::-;6753:24:91;;;;;:::i;:::-;6798:25;6246:584;:::o;6604:24::-;199:2819:90;;;;;;6614:14:91;;-1:-1:-1;6604:24:91;;;6356:75;-1:-1:-1;;;199:2819:90;;;;;;;;;;;;;;;;-1:-1:-1;199:2819:90;;;;-1:-1:-1;;;;;;;;;;;199:2819:90;;6356:75:91;;;6246:584;;;;6360:12;199:2819:90;;;6360:24:91;;6356:75;;6246:584;6474:30;;;:::i;:::-;199:2819:90;;;;;;6578:12:91;;;:::i;:::-;6604:24;;;;6246:584;-1:-1:-1;6600:188:91;;;-1:-1:-1;;;199:2819:90;;;;;;;;;-1:-1:-1;199:2819:90;;;-1:-1:-1;199:2819:90;;;;;;6798:25:91;199:2819:90;6246:584:91:o;6600:188::-;8167:38:61;;-1:-1:-1;;;;;199:2819:90;;-1:-1:-1;8167:38:61;:::i;:::-;6753:24:91;;;;;:::i;6604:::-;199:2819:90;;;;;;6614:14:91;;-1:-1:-1;6604:24:91;;;6356:75;-1:-1:-1;;;199:2819:90;;;;;;;;;;;;;;;;-1:-1:-1;199:2819:90;;;;-1:-1:-1;;;;;;;;;;;199:2819:90;;6356:75:91;;;6246:584;;;;;6360:12;;;199:2819:90;;;6360:24:91;;6356:75;;6246:584;6474:30;;;;;:::i;:::-;199:2819:90;;;;;;6578:12:91;;;;:::i;:::-;6604:24;;;;6246:584;-1:-1:-1;6600:188:91;;;-1:-1:-1;;;;;199:2819:90;;;;;;;6644:21:91;;;:29;:21;;:::i;6600:188::-;6753:24;;199:2819:90;;8167:38:61;;-1:-1:-1;;;;;199:2819:90;;;;;8167:38:61;:::i;:::-;6753:24:91;;;:::i;6604:::-;199:2819:90;;;;;;6614:14:91;;-1:-1:-1;6604:24:91;;;6356:75;-1:-1:-1;;;199:2819:90;;;;;;6360:12:91;199:2819:90;;;;;;;:::i;:::-;;;;;;;;;;;;;;6356:75:91;;;199:2819:90;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::o;8406:869:91:-;1113:13:90;199:2819;8620:15:91;8578:11;8645:18;8678:7;8684:1;8678:7;;8674:241;;8406:869;8939:60;;;;:::i;:::-;9014:8;;9010:62;;199:2819:90;9130:48:91;9170:7;;;:::i;:::-;1113:13:90;13267:109:91;;-1:-1:-1;;;;;;;;;;;13267:109:91;13089:293;;9130:48;199:2819:90;:::i;:::-;;9252:15:91;9259:7;199:2819:90;9219:31:91;199:2819:90;9232:17:91;199:2819:90;;;;;;;;9232:17:91;;199:2819:90;-1:-1:-1;;;;;199:2819:90;;;;9219:31:91;:::i;:::-;199:2819:90;;;;;;;;;9259:7:91;;:::i;:::-;199:2819:90;;;;9252:15:91;9176:1;;9188:80;;8406:869::o;9010:62::-;9038:23;8578:11;9038:23;8578:11;9038:23;8578:11;9038:23;8578:11;9038:23;:::o;8674:241::-;8721:14;;;;;:::i;:::-;199:2819:90;;;;;;;1113:13;8578:11:91;13267:109;-1:-1:-1;;;;;;;;;;;13267:109:91;;199:2819:90;8939:60:91;;13267:109;199:2819:90;;;;;;;8753:55:91;199:2819:90;;;8828:10:91;8749:156;8674:241;;8749:156;8883:7;;;;;;:::i;:::-;8749:156;8674:241;;8406:869;514:12:90;199:2819;8620:15:91;8578:11;8645:18;8678:7;8684:1;8678:7;;8674:241;;8406:869;8939:60;;;;:::i;:::-;9014:8;;9010:62;;199:2819:90;9130:48:91;9170:7;;;:::i;:::-;514:12:90;13267:109:91;;-1:-1:-1;;;;;;;;;;;13267:109:91;13089:293;;199:2819:90;;9252:15:91;9259:7;199:2819:90;9219:31:91;199:2819:90;9232:17:91;199:2819:90;;;;;;;;9219:31:91;:::i;8674:241::-;8721:14;;;;;:::i;:::-;199:2819:90;;;;;;;514:12;8578:11:91;13267:109;-1:-1:-1;;;;;;;;;;;13267:109:91;;199:2819:90;8939:60:91;;13267:109;199:2819:90;;;;;;;8753:55:91;199:2819:90;;;8828:10:91;8749:156;8674:241;;8749:156;8883:7;;;;;;:::i;:::-;8749:156;8674:241;;8406:869;;;199:2819:90;;8620:15:91;8578:11;8645:18;8678:7;8684:1;8678:7;;8674:241;;8406:869;8939:60;;;;;:::i;:::-;9014:8;;;9010:62;;9252:15;9259:7;199:2819:90;9219:31:91;199:2819:90;9130:48:91;9170:7;;;:::i;:::-;9130:48;13267:109;;;;;;13089:293;;199:2819:90;;9176:1:91;199:2819:90;9232:17:91;199:2819:90;;;;;;;;9232:17:91;;199:2819:90;-1:-1:-1;;;;;199:2819:90;;;;9219:12:91;;:31;:::i;9010:62::-;8578:11;;-1:-1:-1;8578:11:91;;-1:-1:-1;8578:11:91;;;;9038:23::o;8674:241::-;8721:14;;;;;:::i;:::-;199:2819:90;;;;;;;8939:60:91;13267:109;;8578:11;13267:109;8753:55;8759:49;13267:109;;8578:11;13267:109;;199:2819:90;;;;;;8753:55:91;199:2819:90;;;8753:55:91;13267:109;;;8828:10;8749:156;8674:241;;8749:156;8883:7;;;;;;:::i;:::-;8749:156;8674:241;;199:2819:90;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;:::o;525:595:87:-;;-1:-1:-1;199:2819:90;;;;;716:88:87;;;;;199:2819:90;716:88:87;;;;;;;;;783:4;716:88;;;199:2819:90;;;;;;;;;;;:::i;716:88:87:-;698:107;;;;;;;:::i;:::-;199:2819:90;;857:45:87;;;;;;;;199:2819:90;;;;;857:45:87;;;199:2819:90;;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;199:2819:90;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;-1:-1:-1;199:2819:90;;;;;;;;;;916:8:87;912:175;;1096:17;525:595;:::o;912:175::-;199:2819:90;;;944:22:87;;;940:36;;990:87;;2658:162:25;-1:-1:-1;;;;;;;;;;;199:2819:90;-1:-1:-1;;;;;199:2819:90;966:10:28;2717:23:25;2713:101;;2658:162::o;2713:101::-;199:2819:90;;-1:-1:-1;;;2763:40:25;;966:10:28;2763:40:25;;;199:2819:90;;;2763:40:25;2557:104:58;;2641:5;;;;;;:13;2557:104;:::o;2641:13::-;;;2557:104;:::o;199:2819:90:-;;;;;;;:::o;3803:4116:58:-;;;199:2819:90;;;;-1:-1:-1;;3803:4116:58;;4383:131;;;;;;;;;;;;4595:10;;4591:368;;5065:20;;;;5061:88;;5435:300;;;199:2819:90;-1:-1:-1;199:2819:90;5954:31:58;;5999:371;;;6813:1;199:2819:90;;6794:1:58;199:2819:90;6793:21:58;199:2819:90;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5999:371:58;;;;-1:-1:-1;5999:371:58;;;5435:300;;;;;;199:2819:90;5435:300:58;;5999:371;6436:21;199:2819:90;3803:4116:58;:::o;5061:88::-;199:2819:90;;-1:-1:-1;;;5112:22:58;;;;;4591:368;4925:19;;;;;;;:::i;1303:160:46:-;199:2819:90;;-1:-1:-1;;;1412:43:46;;;;-1:-1:-1;;;;;199:2819:90;;;1412:43:46;;;199:2819:90;;;;;;;;;1412:43:46;;;;;;199:2819:90;1412:43:46;:::i;:::-;;:::i;12922:460:100:-;;13024:14;;:::i;:::-;13015:23;;;13011:75;;-1:-1:-1;199:2819:90;;;13100:20:100;199:2819:90;;;;;;;;13128:10:100;199:2819:90;;;;;;;;;;13096:93:100;;13208:32;13128:10;13208:32;;:::i;:::-;13255:11;;;13251:68;;-1:-1:-1;199:2819:90;;;13100:20:100;199:2819:90;;;;;;;;13128:10:100;199:2819:90;;;;;;;;;-1:-1:-1;;199:2819:90;13371:4:100;199:2819:90;;;12922:460:100:o;13251:68::-;199:2819:90;;-1:-1:-1;;;13289:19:100;;;;;13096:93;199:2819:90;;-1:-1:-1;;;13162:16:100;;;;;13011:75;199:2819:90;;-1:-1:-1;;;13061:14:100;;;;;10580:184:91;5173:12:101;199:2819:90;10303:8:61;;;:63;-1:-1:-1;10303:63:61;-1:-1:-1;;;;;199:2819:90;;10726:7:91;199:2819:90;;10736:12:91;199:2819:90;;;;;;10736:12:91;-1:-1:-1;199:2819:90;-1:-1:-1;;;;;;;;;;;199:2819:90;;10580:184:91;:::o;10726:31::-;;-1:-1:-1;10580:184:91;:::o;10303:63:61:-;199:2819:90;;;;;;;;5173:12:101;-1:-1:-1;13267:109:91;;;199:2819:90;;;10303:63:61;;10580:184:91;4803:13:101;199:2819:90;10303:8:61;;;:63;-1:-1:-1;10303:63:61;-1:-1:-1;;;;;199:2819:90;;10726:7:91;199:2819:90;;10736:12:91;199:2819:90;;;;;;10736:12:91;-1:-1:-1;199:2819:90;-1:-1:-1;;;;;;;;;;;199:2819:90;;10580:184:91;:::o;10303:63:61:-;199:2819:90;;;;;;;;4803:13:101;-1:-1:-1;13267:109:91;;;199:2819:90;;;10303:63:61;;10580:184:91;199:2819:90;;10303:8:61;;;:63;-1:-1:-1;10303:63:61;-1:-1:-1;;;;;199:2819:90;;10726:7:91;199:2819:90;;10736:12:91;:17;:12;;:17;:::i;10303:63:61:-;199:2819:90;;;;;;;;;;13267:109:91;-1:-1:-1;13267:109:91;;-1:-1:-1;13267:109:91;;;199:2819:90;;;10303:63:61;;1662:280:92;;;1884:1;199:2819:90;;;;;;;1884:1:92;199:2819:90;;;;;;;8188:25:58;;;:::i;6999:207:91:-;4622:13:101;199:2819:90;9594:15:61;-1:-1:-1;9619:18:61;9652:7;9658:1;9652:7;;9648:234;;6999:207:91;9906:53:61;;;;:::i;:::-;9977:8;;;:63;-1:-1:-1;9977:63:61;-1:-1:-1;;;;;199:2819:90;;7168:7:91;199:2819:90;;7178:17:91;199:2819:90;7178:17:91;;:::i;9977:63:61:-;9992:41;10025:7;9992:48;10025:7;;:::i;9992:41::-;199:2819:90;;;;;9992:48:61;9977:63;;9648:234;9695:14;;;;;:::i;:::-;199:2819:90;;;;;;;9906:53:61;13267:109:91;4622:13:101;-1:-1:-1;13267:109:91;199:2819:90;13267:109:91;;-1:-1:-1;;;;;;;;;;;13267:109:91;199:2819:90;;;;;9727:48:61;9723:149;199:2819:90;;;9795:10:61;9723:149;9648:234;;9723:149;9850:7;;;;;;:::i;:::-;9723:149;9648:234;;6999:207:91;4994:12:101;199:2819:90;9594:15:61;-1:-1:-1;9619:18:61;9652:7;9658:1;9652:7;;9648:234;;6999:207:91;9906:53:61;;;;:::i;:::-;9977:8;;;:63;-1:-1:-1;9977:63:61;-1:-1:-1;;;;;199:2819:90;;7168:7:91;199:2819:90;;7178:17:91;199:2819:90;7178:17:91;;:::i;9977:63:61:-;9992:41;10025:7;9992:48;10025:7;;:::i;9992:48::-;9977:63;;9648:234;9695:14;;;;;:::i;:::-;199:2819:90;;;;;;;9906:53:61;13267:109:91;4994:12:101;-1:-1:-1;13267:109:91;199:2819:90;13267:109:91;;-1:-1:-1;;;;;;;;;;;13267:109:91;199:2819:90;;;;;9727:48:61;9723:149;199:2819:90;;;9795:10:61;9723:149;9648:234;;9723:149;9850:7;;;;;;:::i;:::-;9723:149;9648:234;;6999:207:91;;199:2819:90;;9594:15:61;-1:-1:-1;9619:18:61;9652:7;9658:1;9652:7;;9648:234;;6999:207:91;9906:53:61;;;;;:::i;:::-;9977:8;;;:63;-1:-1:-1;9977:63:61;;-1:-1:-1;;;;;199:2819:90;;7168:7:91;199:2819:90;;;7178:12:91;;:17;:12;;:17;:::i;9977:63:61:-;9992:41;10025:7;9992:48;10025:7;;:::i;:::-;9992:41;13267:109:91;;;;;;13089:293;;9992:48:61;9977:63;;;9648:234;9695:14;;;;;:::i;:::-;199:2819:90;;;;;;;9906:53:61;13267:109:91;;-1:-1:-1;13267:109:91;199:2819:90;13267:109:91;;;-1:-1:-1;13267:109:91;;199:2819:90;;;;;9727:48:61;9723:149;199:2819:90;;;9795:10:61;9723:149;9648:234;;9723:149;9850:7;;;;;;:::i;:::-;9723:149;9648:234;;199:2819:90;;;;;;;:::i;:::-;-1:-1:-1;199:2819:90;;;;;;;:::o;11486:272:91:-;199:2819:90;;:::i;:::-;;;;:::i;:::-;;4622:13:101;199:2819:90;;;;;;;;4622:13:101;-1:-1:-1;199:2819:90;-1:-1:-1;;;;;;;;;;;199:2819:90;;:::i;:::-;;;;;;;;;;;;11731:17:91;;199:2819:90;;11718:12:91;199:2819:90;;;;;;11718:12:91;-1:-1:-1;199:2819:90;-1:-1:-1;;;;;;;;;;;199:2819:90;;;;;;;;:::i;:::-;;;;11672:79:91;;199:2819:90;11486:272:91;:::o;:::-;199:2819:90;;:::i;:::-;;;;:::i;:::-;;4994:12:101;199:2819:90;;;;;;;;4994:12:101;-1:-1:-1;199:2819:90;-1:-1:-1;;;;;;;;;;;199:2819:90;;:::i;:::-;;;;;;;;;;;;11731:17:91;;199:2819:90;;11718:12:91;199:2819:90;;;;;;11718:12:91;-1:-1:-1;199:2819:90;-1:-1:-1;;;;;;;;;;;199:2819:90;;;;;;;;:::i;11486:272:91:-;;199:2819:90;11308:22:61;11718:31:91;11486:272;199:2819:90;;:::i;:::-;;;;:::i;:::-;;11308:22:61;;:::i;:::-;199:2819:90;;:::i;:::-;;11718:12:91;199:2819:90;;;;;11731:17:91;199:2819:90;;;;;11731:17:91;;199:2819:90;;11718:12:91;;:31;:::i;:::-;199:2819:90;;;;;;;;;:::i;:::-;;;;;;11731:17:91;11672:79;;199:2819:90;11486:272:91;:::o;4059:629:46:-;2847:1:47;4059:629:46;3510:55:47;4059:629:46;199:2819:90;;;;;;3462:31:47;;;;;;;;;;;;:::i;:::-;3510:55;;;:::i;:::-;199:2819:90;;4551:22:46;;;;:57;;;;4059:629;4547:135;;;;4059:629;:::o;4547:135::-;199:2819:90;;;;4631:40:46;;;;;;;;;199:2819:90;4631:40:46;4551:57;4578:30;;;3462:31:47;4578:30:46;;;;;;;;:::i;:::-;4577:31;4551:57;;;;1258:280:92;;;199:2819:90;;;;;;;;;;;;;;;;8188:25:58;;;;;:::i;:::-;8257;;;;;;8223:101;;1258:280:92;:::o;8223:101:58:-;199:2819:90;;;;;;;;1258:280:92;:::o;10552:388:61:-;5173:12:101;199:2819:90;10728:8:61;;;10752:20;10690:17;10752:20;10690:17;10752:20;10690:17;10752:20;:::o;10724:210::-;199:2819:90;;;;;;;;13267:109:91;199:2819:90;13267:109:91;5173:12:101;10690:17:61;13267:109:91;;199:2819:90;:::i;:::-;;;;;;;13267:109:91;199:2819:90;;;;;10911:11:61;;199:2819:90;;10886:37:61;10870:1;10886:37;;;:::o;10552:388::-;4803:13:101;199:2819:90;10728:8:61;;;10752:20;10690:17;10752:20;10690:17;10752:20;10690:17;10752:20;:::o;10724:210::-;199:2819:90;;;;;;;;13267:109:91;199:2819:90;13267:109:91;4803:13:101;10690:17:61;13267:109:91;;199:2819:90;:::i;10552:388:61:-;199:2819:90;;10728:8:61;;;10752:20;;10690:17;10752:20;10690:17;10752:20;10690:17;10752:20;:::o;10724:210::-;199:2819:90;;;;;;;;;;;13267:109:91;10690:17:61;13267:109:91;;10690:17:61;13267:109:91;;;199:2819:90;:::i;8587:1642:58:-;8658:6;;8654:45;;9401:7;10201:10;10142:26;10093;10044;9995;9946;9897;9848;199:2819:90;10189:23:58;9401:7;8663:1;199:2819:90;;;;10826:16:58;10822:99;;8587:1642;199:2819:90;;;;10938:15:58;10934:96;;8587:1642;199:2819:90;;;;11047:15:58;11043:96;;8587:1642;199:2819:90;;;;11156:15:58;11152:96;;8587:1642;199:2819:90;;;;11265:14:58;11261:93;;8587:1642;199:2819:90;;;;11371:14:58;11367:93;;8587:1642;199:2819:90;;;;11477:14:58;11473:93;;8587:1642;199:2819:90;;;11579:64:58;;8587:1642;199:2819:90;;;9858:10:58;;;;:::i;:::-;199:2819:90;;;;;9848:26:58;9907:10;;;;:::i;9897:26::-;9956:10;;;;:::i;9946:26::-;10005:10;;;;:::i;9995:26::-;10054:10;;;;:::i;10044:26::-;10103:10;;;;:::i;10093:26::-;10152:10;;;;:::i;10142:26::-;10201:10;;;:::i;:::-;10189:23;;:::i;11579:64::-;199:2819:90;;11579:64:58;;11473:93;199:2819:90;11511:11:58;;199:2819:90;;11473:93:58;;;;11367;199:2819:90;11405:11:58;;199:2819:90;;11367:93:58;;;;11261;199:2819:90;11299:11:58;;199:2819:90;;11261:93:58;;;;11152:96;199:2819:90;11191:12:58;;199:2819:90;;11152:96:58;;;;11043;199:2819:90;11082:12:58;;199:2819:90;;11043:96:58;;;;10934;199:2819:90;10973:12:58;;199:2819:90;;10934:96:58;;;;10822:99;10862:13;;;199:2819:90;10822:99:58;;;;12497:447:91;;12694:10;;;;;;12926:11;;12497:447;:::o;12687:230::-;2900:5:58;;;;;199:2819:90;;2910:5:58;;;199:2819:90;;;;;;;;;1113:13;-1:-1:-1;13267:109:91;199:2819:90;13267:109:91;;-1:-1:-1;;;;;;;;;;;13267:109:91;199:2819:90;;;;;-1:-1:-1;12771:136:91;199:2819:90;;;12830:10:91;;12771:136;;12687:230;;;12771:136;199:2819:90;;;;;;;;;;;12771:136:91;;;12497:447;;12694:10;;;;;;12926:11;;12497:447;:::o;12687:230::-;2900:5:58;;;;;199:2819:90;;2910:5:58;;;199:2819:90;;;;;;;;;514:12;-1:-1:-1;13267:109:91;199:2819:90;13267:109:91;;-1:-1:-1;;;;;;;;;;;13267:109:91;199:2819:90;;;;;-1:-1:-1;12771:136:91;199:2819:90;;;12830:10:91;;12771:136;;12687:230;;;12771:136;199:2819:90;;;;;;;;;;;12771:136:91;;;12497:447;;12694:10;;;;;;12926:11;;12497:447;:::o;12687:230::-;2900:5:58;;;;;199:2819:90;;2910:5:58;;;199:2819:90;;;;;;;;;4622:13:101;-1:-1:-1;13267:109:91;199:2819:90;13267:109:91;;-1:-1:-1;;;;;;;;;;;13267:109:91;199:2819:90;;;;;-1:-1:-1;12771:136:91;199:2819:90;;;12830:10:91;;12771:136;;12687:230;;;12771:136;199:2819:90;;;;;;;;;;;12771:136:91;;;12497:447;;12694:10;;;;;;12926:11;;12497:447;:::o;12687:230::-;2900:5:58;;;;;199:2819:90;;2910:5:58;;;199:2819:90;;;;;;;;;4994:12:101;-1:-1:-1;13267:109:91;199:2819:90;13267:109:91;;-1:-1:-1;;;;;;;;;;;13267:109:91;199:2819:90;;;;;-1:-1:-1;12771:136:91;199:2819:90;;;12830:10:91;;12771:136;;12687:230;;;12771:136;199:2819:90;;;;;;;;;;;12771:136:91;;;12497:447;;;12694:10;;;;;;12926:11;;;12497:447;:::o;12687:230::-;2900:5:58;;;;;;199:2819:90;;2910:5:58;;;199:2819:90;;;;;;;;;13267:109:91;-1:-1:-1;13267:109:91;199:2819:90;13267:109:91;;;-1:-1:-1;13267:109:91;;199:2819:90;;;;;-1:-1:-1;12771:136:91;199:2819:90;;;12830:10:91;;12771:136;;12687:230;;;;12771:136;199:2819:90;;;;;;;;;;;12771:136:91;;;7084:141:26;199:2819:90;-1:-1:-1;;;;;;;;;;;199:2819:90;;;;7150:18:26;7146:73;;7084:141::o;7146:73::-;199:2819:90;;-1:-1:-1;;;7191:17:26;;;;;199:2819:90;5173:12:101;199:2819:90;;-1:-1:-1;;;199:2819:90;;;;;;;;;5173:12:101;199:2819:90;;;;;;5173:12:101;-1:-1:-1;199:2819:90;;;;;;;;;;-1:-1:-1;;199:2819:90;;;;;;;-1:-1:-1;;;;;;;;;;;199:2819:90;;;;:::o;:::-;4803:13:101;199:2819:90;;-1:-1:-1;;;199:2819:90;;;;;;;;;4803:13:101;199:2819:90;;;;;;4803:13:101;-1:-1:-1;199:2819:90;;;;;;;;;;-1:-1:-1;;199:2819:90;;;;;;;-1:-1:-1;;;;;;;;;;;199:2819:90;;;;:::o;:::-;;;-1:-1:-1;;;199:2819:90;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;199:2819:90;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;11513:870:61;5173:12:101;199:2819:90;11513:870:61;;;199:2819:90;11672:7:61;;;;199:2819:90;11775:28:61;11795:7;;;:::i;199:2819:90:-;;;;;;;;;;-1:-1:-1;;11873:91:61;;199:2819:90;12233:11:61;199:2819:90;;;12027:16:61;199:2819:90;;;;;;;12027:16:61;;;;12083:7;12063:28;12083:7;12063:43;12083:7;;:::i;12063:28::-;199:2819:90;;;;;;;;;;;;;;;;;12063:43:61;12233:11;199:2819:90;-1:-1:-1;;;;;199:2819:90;;;12023:189:61;199:2819:90;;12145:52:61;199:2819:90;;12155:41:61;199:2819:90;;:::i;:::-;;;;;;;;12155:41:61;-1:-1:-1;;;;;199:2819:90;;12155:41:61;;;199:2819:90;12145:52:61;:::i;:::-;12023:189;;11873:91;199:2819:90;;-1:-1:-1;;;11919:30:61;;;;;11668:709;12283:52;199:2819:90;;12293:41:61;199:2819:90;;:::i;12293:41:61:-;-1:-1:-1;;;;;199:2819:90;;12293:41:61;;;199:2819:90;12145:52:61;:::i;12283:::-;11678:1;12349:17;;:::o;11513:870::-;4803:13:101;199:2819:90;11513:870:61;;;199:2819:90;11672:7:61;;;;199:2819:90;11775:28:61;11795:7;;;:::i;199:2819:90:-;;;;;;;;;;-1:-1:-1;;11873:91:61;;199:2819:90;12233:11:61;199:2819:90;;;12027:16:61;199:2819:90;;;;;;;12027:16:61;;;;12083:7;12063:28;12083:7;12063:43;12083:7;;:::i;12023:189::-;199:2819:90;;12145:52:61;199:2819:90;;12155:41:61;199:2819:90;;:::i;12155:41:61:-;-1:-1:-1;;;;;199:2819:90;;12155:41:61;;;199:2819:90;12145:52:61;:::i;11668:709::-;12283:52;199:2819:90;;12293:41:61;199:2819:90;;:::i;12293:41:61:-;-1:-1:-1;;;;;199:2819:90;;12293:41:61;;;199:2819:90;12145:52:61;:::i;11513:870::-;199:2819:90;;11513:870:61;;;199:2819:90;11513:870:61;11672:7;;;;199:2819:90;11775:28:61;11795:7;;;:::i;199:2819:90:-;;;;;;;;;;;;;;;;11877:15:61;-1:-1:-1;11873:91:61;;199:2819:90;;12233:11:61;199:2819:90;;;12027:16:61;199:2819:90;;;;;;;12027:16:61;;;;12083:7;12063:43;12083:7;;12063:28;12083:7;;:::i;:::-;12063:28;13267:109:91;;;;;;13089:293;;12023:189:61;199:2819:90;;;12145:52:61;199:2819:90;12155:41:61;199:2819:90;;:::i;:::-;;;;;;;;12155:41:61;-1:-1:-1;;;;;199:2819:90;;12155:41:61;;;199:2819:90;12145:52:61;:::i;11668:709::-;12283:52;199:2819:90;;12293:41:61;199:2819:90;;:::i;12293:41:61:-;-1:-1:-1;;;;;199:2819:90;;12293:41:61;;;199:2819:90;12145:52:61;:::i;4625:582:47:-;;4797:8;;-1:-1:-1;199:2819:90;;5874:21:47;:17;;6046:142;;;;;;5870:383;199:2819:90;;-1:-1:-1;;;6225:17:47;;;;;4793:408;199:2819:90;;5045:22:47;:49;;;4793:408;5041:119;;5173:17;;:::o;5041:119::-;199:2819:90;;-1:-1:-1;;;5121:24:47;;-1:-1:-1;;;;;199:2819:90;;;5121:24:47;;;199:2819:90;;;5121:24:47;5045:49;5071:18;;;:23;5045:49;","linkReferences":{},"immutableReferences":{"64787":[{"start":2016,"length":32},{"start":2606,"length":32}],"69080":[{"start":4185,"length":32},{"start":4913,"length":32},{"start":9127,"length":32}],"75427":[{"start":4989,"length":32},{"start":6348,"length":32}],"75430":[{"start":6709,"length":32},{"start":7909,"length":32}]}},"methodIdentifiers":{"DEFAULT_ADMIN_ROLE()":"a217fddf","DELEGATOR_FACTORY()":"6da3e06d","DEPOSITOR_WHITELIST_ROLE()":"1b66c9e1","DEPOSIT_LIMIT_SET_ROLE()":"a21a1df9","DEPOSIT_WHITELIST_SET_ROLE()":"db388715","FACTORY()":"2dd31000","IS_DEPOSIT_LIMIT_SET_ROLE()":"1415519b","SLASHER_FACTORY()":"87df0788","activeBalanceOf(address)":"59f769a9","activeBalanceOfAt(address,uint48,bytes)":"efb559d6","activeBalanceOfHints(address,address,uint48)":"f9e1bf6c","activeShares()":"bfefcd7b","activeSharesAt(uint48,bytes)":"50f22068","activeSharesHint(address,uint48)":"8326056f","activeSharesHintInternal(uint48)":"55a2c672","activeSharesOf(address)":"9d66201b","activeSharesOfAt(address,uint48,bytes)":"2d73c69c","activeSharesOfHint(address,address,uint48)":"de499716","activeSharesOfHintInternal(address,uint48)":"eb556238","activeStake()":"bd49c35f","activeStakeAt(uint48,bytes)":"810da75d","activeStakeHint(address,uint48)":"64b03fdc","activeStakeHintInternal(uint48)":"67567add","burner()":"27810b6e","claim(address,uint256)":"aad3ec96","claimBatch(address,uint256[])":"7c04c80a","collateral()":"d8dfeb45","currentEpoch()":"76671808","currentEpochStart()":"61a8c8c4","delegator()":"ce9b7930","deposit(address,uint256)":"47e7ef24","depositLimit()":"ecf70858","depositWhitelist()":"48d3b775","epochAt(uint48)":"7953b33b","epochDuration()":"4ff0876a","epochDurationInit()":"46361671","getRoleAdmin(bytes32)":"248a9ca3","grantRole(bytes32,address)":"2f2ff15d","hasRole(bytes32,address)":"91d14854","initialize(uint64,address,bytes)":"57ec83cc","isDelegatorInitialized()":"50861adc","isDepositLimit()":"a1b12202","isDepositorWhitelisted(address)":"794b15b7","isInitialized()":"392e53cd","isSlasherInitialized()":"6ec1e3f8","isWithdrawalsClaimed(uint256,address)":"a5d03223","migrate(uint64,bytes)":"2abe3048","nextEpochStart()":"73790ab3","onSlash(uint256,uint48)":"7278e31c","owner()":"8da5cb5b","previousEpochStart()":"281f5752","redeem(address,uint256)":"1e9a6950","renounceOwnership()":"715018a6","renounceRole(bytes32,address)":"36568abe","revokeRole(bytes32,address)":"d547741f","setDelegator(address)":"83cd9cc3","setDepositLimit(uint256)":"bdc8144b","setDepositWhitelist(bool)":"4105a7dd","setDepositorWhitelistStatus(address,bool)":"a2861466","setIsDepositLimit(bool)":"5346e34f","setSlasher(address)":"aabc2496","slashableBalanceOf(address)":"c31e8dd7","slasher()":"b1344271","staticDelegateCall(address,bytes)":"9f86fd85","supportsInterface(bytes4)":"01ffc9a7","totalStake()":"8b0e9f3f","transferOwnership(address)":"f2fde38b","version()":"54fd4d50","withdraw(address,uint256)":"f3fef3a3","withdrawalShares(uint256)":"afba70ad","withdrawalSharesOf(uint256,address)":"a3b54172","withdrawals(uint256)":"5cc07076","withdrawalsOf(uint256,address)":"f5e7ee0f"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"AccessControlBadConfirmation\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"neededRole\",\"type\":\"bytes32\"}],\"name\":\"AccessControlUnauthorizedAccount\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"AddressEmptyCode\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"AddressInsufficientBalance\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AlreadyClaimed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AlreadyInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AlreadySet\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CheckpointUnorderedInsertion\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"DelegatorAlreadyInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"DepositLimitReached\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ExternalCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedInnerCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientClaim\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientDeposit\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientRedemption\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientWithdrawal\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidAccount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidCaptureEpoch\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidClaimer\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidCollateral\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidDelegator\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidEpoch\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidEpochDuration\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidLengthEpochs\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidOnBehalfOf\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidRecipient\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidSlasher\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidTimestamp\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MathOverflowedMulDiv\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MissingRoles\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NoPreviousEpoch\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotDelegator\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotFactory\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotSlasher\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotWhitelistedDepositor\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ReentrancyGuardReentrantCall\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"bits\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"SafeCastOverflowedUintDowncast\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"SafeERC20FailedOperation\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SlasherAlreadyInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TooMuchRedeem\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TooMuchWithdraw\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"claimer\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"epoch\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Claim\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"claimer\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"epochs\",\"type\":\"uint256[]\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"ClaimBatch\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"depositor\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"onBehalfOf\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"}],\"name\":\"Deposit\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint48\",\"name\":\"captureTimestamp\",\"type\":\"uint48\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"slashedAmount\",\"type\":\"uint256\"}],\"name\":\"OnSlash\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"previousAdminRole\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"newAdminRole\",\"type\":\"bytes32\"}],\"name\":\"RoleAdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleRevoked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"}],\"name\":\"SetDelegator\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"limit\",\"type\":\"uint256\"}],\"name\":\"SetDepositLimit\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"status\",\"type\":\"bool\"}],\"name\":\"SetDepositWhitelist\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"status\",\"type\":\"bool\"}],\"name\":\"SetDepositorWhitelistStatus\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"status\",\"type\":\"bool\"}],\"name\":\"SetIsDepositLimit\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"slasher\",\"type\":\"address\"}],\"name\":\"SetSlasher\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"withdrawer\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"claimer\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"burnedShares\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"mintedShares\",\"type\":\"uint256\"}],\"name\":\"Withdraw\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DEFAULT_ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"DELEGATOR_FACTORY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"DEPOSITOR_WHITELIST_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"DEPOSIT_LIMIT_SET_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"DEPOSIT_WHITELIST_SET_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"FACTORY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"IS_DEPOSIT_LIMIT_SET_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"SLASHER_FACTORY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"activeBalanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hints\",\"type\":\"bytes\"}],\"name\":\"activeBalanceOfAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"vault\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"}],\"name\":\"activeBalanceOfHints\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"activeShares\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hint\",\"type\":\"bytes\"}],\"name\":\"activeSharesAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"vault\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"}],\"name\":\"activeSharesHint\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"}],\"name\":\"activeSharesHintInternal\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"exists\",\"type\":\"bool\"},{\"internalType\":\"uint32\",\"name\":\"hint\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"activeSharesOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hint\",\"type\":\"bytes\"}],\"name\":\"activeSharesOfAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"vault\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"}],\"name\":\"activeSharesOfHint\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"}],\"name\":\"activeSharesOfHintInternal\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"exists\",\"type\":\"bool\"},{\"internalType\":\"uint32\",\"name\":\"hint\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"activeStake\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hint\",\"type\":\"bytes\"}],\"name\":\"activeStakeAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"vault\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"}],\"name\":\"activeStakeHint\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"}],\"name\":\"activeStakeHintInternal\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"exists\",\"type\":\"bool\"},{\"internalType\":\"uint32\",\"name\":\"hint\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"burner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"epoch\",\"type\":\"uint256\"}],\"name\":\"claim\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256[]\",\"name\":\"epochs\",\"type\":\"uint256[]\"}],\"name\":\"claimBatch\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"collateral\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"currentEpoch\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"currentEpochStart\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"delegator\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"onBehalfOf\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"deposit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"depositedAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"mintedShares\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"depositLimit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"depositWhitelist\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"}],\"name\":\"epochAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"epochDuration\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"epochDurationInit\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleAdmin\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"grantRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"initialVersion\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"owner_\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isDelegatorInitialized\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isDepositLimit\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"isDepositorWhitelisted\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"value\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isInitialized\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isSlasherInitialized\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"epoch\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"isWithdrawalsClaimed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"value\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"newVersion\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"migrate\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"nextEpochStart\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint48\",\"name\":\"captureTimestamp\",\"type\":\"uint48\"}],\"name\":\"onSlash\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"slashedAmount\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"previousEpochStart\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"claimer\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"}],\"name\":\"redeem\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"withdrawnAssets\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"mintedShares\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"callerConfirmation\",\"type\":\"address\"}],\"name\":\"renounceRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegator_\",\"type\":\"address\"}],\"name\":\"setDelegator\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"limit\",\"type\":\"uint256\"}],\"name\":\"setDepositLimit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"status\",\"type\":\"bool\"}],\"name\":\"setDepositWhitelist\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"status\",\"type\":\"bool\"}],\"name\":\"setDepositorWhitelistStatus\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"status\",\"type\":\"bool\"}],\"name\":\"setIsDepositLimit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"slasher_\",\"type\":\"address\"}],\"name\":\"setSlasher\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"slashableBalanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"slasher\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"staticDelegateCall\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalStake\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"version\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"claimer\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"withdraw\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"burnedShares\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"mintedShares\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"epoch\",\"type\":\"uint256\"}],\"name\":\"withdrawalShares\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"epoch\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"withdrawalSharesOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"epoch\",\"type\":\"uint256\"}],\"name\":\"withdrawals\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"epoch\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"withdrawalsOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"AccessControlBadConfirmation()\":[{\"details\":\"The caller of a function is not the expected one. NOTE: Don't confuse with {AccessControlUnauthorizedAccount}.\"}],\"AccessControlUnauthorizedAccount(address,bytes32)\":[{\"details\":\"The `account` is missing a role.\"}],\"AddressEmptyCode(address)\":[{\"details\":\"There's no code at `target` (it is not a contract).\"}],\"AddressInsufficientBalance(address)\":[{\"details\":\"The ETH balance of the account is not enough to perform the operation.\"}],\"CheckpointUnorderedInsertion()\":[{\"details\":\"A value was attempted to be inserted on a past checkpoint.\"}],\"FailedInnerCall()\":[{\"details\":\"A call to an address target failed. The target may have reverted.\"}],\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"MathOverflowedMulDiv()\":[{\"details\":\"Muldiv operation overflow.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}],\"ReentrancyGuardReentrantCall()\":[{\"details\":\"Unauthorized reentrant call.\"}],\"SafeCastOverflowedUintDowncast(uint8,uint256)\":[{\"details\":\"Value doesn't fit in an uint of `bits` size.\"}],\"SafeERC20FailedOperation(address)\":[{\"details\":\"An operation with an ERC20 token failed.\"}]},\"events\":{\"Claim(address,address,uint256,uint256)\":{\"params\":{\"amount\":\"amount of the collateral claimed\",\"claimer\":\"account that claimed\",\"epoch\":\"epoch the collateral was claimed for\",\"recipient\":\"account that received the collateral\"}},\"ClaimBatch(address,address,uint256[],uint256)\":{\"params\":{\"amount\":\"amount of the collateral claimed\",\"claimer\":\"account that claimed\",\"epochs\":\"epochs the collateral was claimed for\",\"recipient\":\"account that received the collateral\"}},\"Deposit(address,address,uint256,uint256)\":{\"params\":{\"amount\":\"amount of the collateral deposited\",\"depositor\":\"account that made the deposit\",\"onBehalfOf\":\"account the deposit was made on behalf of\",\"shares\":\"amount of the active shares minted\"}},\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"OnSlash(uint256,uint48,uint256)\":{\"params\":{\"amount\":\"amount of the collateral to slash\",\"captureTimestamp\":\"time point when the stake was captured\",\"slashedAmount\":\"real amount of the collateral slashed\"}},\"RoleAdminChanged(bytes32,bytes32,bytes32)\":{\"details\":\"Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole` `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite {RoleAdminChanged} not being emitted signaling this.\"},\"RoleGranted(bytes32,address,address)\":{\"details\":\"Emitted when `account` is granted `role`. `sender` is the account that originated the contract call, an admin role bearer except when using {AccessControl-_setupRole}.\"},\"RoleRevoked(bytes32,address,address)\":{\"details\":\"Emitted when `account` is revoked `role`. `sender` is the account that originated the contract call: - if using `revokeRole`, it is the admin role bearer - if using `renounceRole`, it is the role bearer (i.e. `account`)\"},\"SetDelegator(address)\":{\"details\":\"Can be set only once.\",\"params\":{\"delegator\":\"vault's delegator to delegate the stake to networks and operators\"}},\"SetDepositLimit(uint256)\":{\"params\":{\"limit\":\"deposit limit (maximum amount of the collateral that can be in the vault simultaneously)\"}},\"SetDepositWhitelist(bool)\":{\"params\":{\"status\":\"if enabled deposit whitelist\"}},\"SetDepositorWhitelistStatus(address,bool)\":{\"params\":{\"account\":\"account for which the whitelist status is set\",\"status\":\"if whitelisted the account\"}},\"SetIsDepositLimit(bool)\":{\"params\":{\"status\":\"if enabled deposit limit\"}},\"SetSlasher(address)\":{\"details\":\"Can be set only once.\",\"params\":{\"slasher\":\"vault's slasher to provide a slashing mechanism to networks\"}},\"Withdraw(address,address,uint256,uint256,uint256)\":{\"params\":{\"amount\":\"amount of the collateral withdrawn\",\"burnedShares\":\"amount of the active shares burned\",\"claimer\":\"account that needs to claim the withdrawal\",\"mintedShares\":\"amount of the epoch withdrawal shares minted\",\"withdrawer\":\"account that made the withdrawal\"}}},\"kind\":\"dev\",\"methods\":{\"activeBalanceOf(address)\":{\"params\":{\"account\":\"account to get the active balance for\"},\"returns\":{\"_0\":\"active balance for the account\"}},\"activeBalanceOfAt(address,uint48,bytes)\":{\"params\":{\"account\":\"account to get the active balance for\",\"hints\":\"hints for checkpoints' indexes\",\"timestamp\":\"time point to get the active balance for the account at\"},\"returns\":{\"_0\":\"active balance for the account at the timestamp\"}},\"activeShares()\":{\"returns\":{\"_0\":\"total number of active shares\"}},\"activeSharesAt(uint48,bytes)\":{\"params\":{\"hint\":\"hint for the checkpoint index\",\"timestamp\":\"time point to get the total number of active shares at\"},\"returns\":{\"_0\":\"total number of active shares at the timestamp\"}},\"activeSharesOf(address)\":{\"params\":{\"account\":\"account to get the number of active shares for\"},\"returns\":{\"_0\":\"number of active shares for the account\"}},\"activeSharesOfAt(address,uint48,bytes)\":{\"params\":{\"account\":\"account to get the number of active shares for\",\"hint\":\"hint for the checkpoint index\",\"timestamp\":\"time point to get the number of active shares for the account at\"},\"returns\":{\"_0\":\"number of active shares for the account at the timestamp\"}},\"activeStake()\":{\"returns\":{\"_0\":\"total amount of active stake\"}},\"activeStakeAt(uint48,bytes)\":{\"params\":{\"hint\":\"hint for the checkpoint index\",\"timestamp\":\"time point to get the total active stake at\"},\"returns\":{\"_0\":\"total amount of active stake at the timestamp\"}},\"claim(address,uint256)\":{\"params\":{\"epoch\":\"epoch to claim the collateral for\",\"recipient\":\"account that receives the collateral\"},\"returns\":{\"amount\":\"amount of the collateral claimed\"}},\"claimBatch(address,uint256[])\":{\"params\":{\"epochs\":\"epochs to claim the collateral for\",\"recipient\":\"account that receives the collateral\"},\"returns\":{\"amount\":\"amount of the collateral claimed\"}},\"currentEpoch()\":{\"returns\":{\"_0\":\"current epoch\"}},\"currentEpochStart()\":{\"returns\":{\"_0\":\"start of the current epoch\"}},\"deposit(address,uint256)\":{\"params\":{\"amount\":\"amount of the collateral to deposit\",\"onBehalfOf\":\"account the deposit is made on behalf of\"},\"returns\":{\"depositedAmount\":\"real amount of the collateral deposited\",\"mintedShares\":\"amount of the active shares minted\"}},\"epochAt(uint48)\":{\"details\":\"Reverts if the timestamp is less than the start of the epoch 0.\",\"params\":{\"timestamp\":\"time point to get the epoch at\"},\"returns\":{\"_0\":\"epoch at the timestamp\"}},\"getRoleAdmin(bytes32)\":{\"details\":\"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}.\"},\"grantRole(bytes32,address)\":{\"details\":\"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event.\"},\"hasRole(bytes32,address)\":{\"details\":\"Returns `true` if `account` has been granted `role`.\"},\"initialize(uint64,address,bytes)\":{\"params\":{\"data\":\"some data to use\",\"initialVersion\":\"initial version of the entity\",\"owner\":\"initial owner of the entity\"}},\"isInitialized()\":{\"returns\":{\"_0\":\"if the vault is fully initialized\"}},\"migrate(uint64,bytes)\":{\"params\":{\"data\":\"some data to use\",\"newVersion\":\"new version of the entity\"}},\"nextEpochStart()\":{\"returns\":{\"_0\":\"start of the next epoch\"}},\"onSlash(uint256,uint48)\":{\"details\":\"Only the slasher can call this function.\",\"params\":{\"amount\":\"amount to slash\",\"captureTimestamp\":\"time point when the stake was captured\"},\"returns\":{\"slashedAmount\":\"real amount of the collateral slashed\"}},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"previousEpochStart()\":{\"details\":\"Reverts if the current epoch is 0.\",\"returns\":{\"_0\":\"start of the previous epoch\"}},\"redeem(address,uint256)\":{\"params\":{\"claimer\":\"account that needs to claim the withdrawal\",\"shares\":\"amount of the active shares to redeem\"},\"returns\":{\"mintedShares\":\"amount of the epoch withdrawal shares minted\",\"withdrawnAssets\":\"amount of the collateral withdrawn\"}},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"renounceRole(bytes32,address)\":{\"details\":\"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `callerConfirmation`. May emit a {RoleRevoked} event.\"},\"revokeRole(bytes32,address)\":{\"details\":\"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event.\"},\"setDepositLimit(uint256)\":{\"details\":\"Only a DEPOSIT_LIMIT_SET_ROLE holder can call this function.\",\"params\":{\"limit\":\"deposit limit (maximum amount of the collateral that can be in the vault simultaneously)\"}},\"setDepositWhitelist(bool)\":{\"details\":\"Only a DEPOSIT_WHITELIST_SET_ROLE holder can call this function.\",\"params\":{\"status\":\"if enabling deposit whitelist\"}},\"setDepositorWhitelistStatus(address,bool)\":{\"details\":\"Only a DEPOSITOR_WHITELIST_ROLE holder can call this function.\",\"params\":{\"account\":\"account for which the whitelist status is set\",\"status\":\"if whitelisting the account\"}},\"setIsDepositLimit(bool)\":{\"details\":\"Only a IS_DEPOSIT_LIMIT_SET_ROLE holder can call this function.\",\"params\":{\"status\":\"if enabling deposit limit\"}},\"slashableBalanceOf(address)\":{\"params\":{\"account\":\"account to get the slashable collateral for\"},\"returns\":{\"_0\":\"total amount of the account's slashable collateral\"}},\"staticDelegateCall(address,bytes)\":{\"details\":\"It allows to use this contract's storage on-chain.\",\"params\":{\"data\":\"data to make a delegatecall with\",\"target\":\"address of the contract to make a delegatecall to\"}},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"},\"totalStake()\":{\"returns\":{\"_0\":\"total amount of the slashable collateral\"}},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"},\"version()\":{\"details\":\"Starts from 1.\",\"returns\":{\"_0\":\"version of the entity\"}},\"withdraw(address,uint256)\":{\"params\":{\"amount\":\"amount of the collateral to withdraw\",\"claimer\":\"account that needs to claim the withdrawal\"},\"returns\":{\"burnedShares\":\"amount of the active shares burned\",\"mintedShares\":\"amount of the epoch withdrawal shares minted\"}},\"withdrawalsOf(uint256,address)\":{\"params\":{\"account\":\"account to get the withdrawals for\",\"epoch\":\"epoch to get the withdrawals for the account at\"},\"returns\":{\"_0\":\"withdrawals for the account at the epoch\"}}},\"version\":1},\"userdoc\":{\"events\":{\"Claim(address,address,uint256,uint256)\":{\"notice\":\"Emitted when a claim is made.\"},\"ClaimBatch(address,address,uint256[],uint256)\":{\"notice\":\"Emitted when a batch claim is made.\"},\"Deposit(address,address,uint256,uint256)\":{\"notice\":\"Emitted when a deposit is made.\"},\"OnSlash(uint256,uint48,uint256)\":{\"notice\":\"Emitted when a slash happens.\"},\"SetDelegator(address)\":{\"notice\":\"Emitted when a delegator is set.\"},\"SetDepositLimit(uint256)\":{\"notice\":\"Emitted when a deposit limit is set.\"},\"SetDepositWhitelist(bool)\":{\"notice\":\"Emitted when a deposit whitelist status is enabled/disabled.\"},\"SetDepositorWhitelistStatus(address,bool)\":{\"notice\":\"Emitted when a depositor whitelist status is set.\"},\"SetIsDepositLimit(bool)\":{\"notice\":\"Emitted when a deposit limit status is enabled/disabled.\"},\"SetSlasher(address)\":{\"notice\":\"Emitted when a slasher is set.\"},\"Withdraw(address,address,uint256,uint256,uint256)\":{\"notice\":\"Emitted when a withdrawal is made.\"}},\"kind\":\"user\",\"methods\":{\"DELEGATOR_FACTORY()\":{\"notice\":\"Get the delegator factory's address.\"},\"DEPOSITOR_WHITELIST_ROLE()\":{\"notice\":\"Get a depositor whitelist status setter's role.\"},\"DEPOSIT_LIMIT_SET_ROLE()\":{\"notice\":\"Get a deposit limit setter's role.\"},\"DEPOSIT_WHITELIST_SET_ROLE()\":{\"notice\":\"Get a deposit whitelist enabler/disabler's role.\"},\"FACTORY()\":{\"notice\":\"Get the factory's address.\"},\"IS_DEPOSIT_LIMIT_SET_ROLE()\":{\"notice\":\"Get a deposit limit enabler/disabler's role.\"},\"SLASHER_FACTORY()\":{\"notice\":\"Get the slasher factory's address.\"},\"activeBalanceOf(address)\":{\"notice\":\"Get an active balance for a particular account.\"},\"activeBalanceOfAt(address,uint48,bytes)\":{\"notice\":\"Get an active balance for a particular account at a given timestamp using hints.\"},\"activeShares()\":{\"notice\":\"Get a total number of active shares in the vault.\"},\"activeSharesAt(uint48,bytes)\":{\"notice\":\"Get a total number of active shares in the vault at a given timestamp using a hint.\"},\"activeSharesOf(address)\":{\"notice\":\"Get a number of active shares for a particular account.\"},\"activeSharesOfAt(address,uint48,bytes)\":{\"notice\":\"Get a total number of active shares for a particular account at a given timestamp using a hint.\"},\"activeStake()\":{\"notice\":\"Get a total amount of active stake in the vault.\"},\"activeStakeAt(uint48,bytes)\":{\"notice\":\"Get a total amount of active stake in the vault at a given timestamp using a hint.\"},\"burner()\":{\"notice\":\"Get a burner to issue debt to (e.g., 0xdEaD or some unwrapper contract).\"},\"claim(address,uint256)\":{\"notice\":\"Claim collateral from the vault.\"},\"claimBatch(address,uint256[])\":{\"notice\":\"Claim collateral from the vault for multiple epochs.\"},\"collateral()\":{\"notice\":\"Get a vault collateral.\"},\"currentEpoch()\":{\"notice\":\"Get a current vault epoch.\"},\"currentEpochStart()\":{\"notice\":\"Get a start of the current vault epoch.\"},\"delegator()\":{\"notice\":\"Get a delegator (it delegates the vault's stake to networks and operators).\"},\"deposit(address,uint256)\":{\"notice\":\"Deposit collateral into the vault.\"},\"depositLimit()\":{\"notice\":\"Get a deposit limit (maximum amount of the active stake that can be in the vault simultaneously).\"},\"depositWhitelist()\":{\"notice\":\"Get if the deposit whitelist is enabled.\"},\"epochAt(uint48)\":{\"notice\":\"Get an epoch at a given timestamp.\"},\"epochDuration()\":{\"notice\":\"Get a duration of the vault epoch.\"},\"epochDurationInit()\":{\"notice\":\"Get a time point of the epoch duration set.\"},\"initialize(uint64,address,bytes)\":{\"notice\":\"Initialize this entity contract by using a given data and setting a particular version and owner.\"},\"isDelegatorInitialized()\":{\"notice\":\"Get if the delegator is initialized.\"},\"isDepositLimit()\":{\"notice\":\"Get if the deposit limit is set.\"},\"isDepositorWhitelisted(address)\":{\"notice\":\"Get if a given account is whitelisted as a depositor.\"},\"isInitialized()\":{\"notice\":\"Check if the vault is fully initialized (a delegator and a slasher are set).\"},\"isSlasherInitialized()\":{\"notice\":\"Get if the slasher is initialized.\"},\"isWithdrawalsClaimed(uint256,address)\":{\"notice\":\"Get if the withdrawals are claimed for a particular account at a given epoch.\"},\"migrate(uint64,bytes)\":{\"notice\":\"Migrate this entity to a particular newer version using a given data.\"},\"nextEpochStart()\":{\"notice\":\"Get a start of the next vault epoch.\"},\"onSlash(uint256,uint48)\":{\"notice\":\"Slash callback for burning collateral.\"},\"previousEpochStart()\":{\"notice\":\"Get a start of the previous vault epoch.\"},\"redeem(address,uint256)\":{\"notice\":\"Redeem collateral from the vault (it will be claimable after the next epoch).\"},\"setDepositLimit(uint256)\":{\"notice\":\"Set a deposit limit.\"},\"setDepositWhitelist(bool)\":{\"notice\":\"Enable/disable deposit whitelist.\"},\"setDepositorWhitelistStatus(address,bool)\":{\"notice\":\"Set a depositor whitelist status.\"},\"setIsDepositLimit(bool)\":{\"notice\":\"Enable/disable deposit limit.\"},\"slashableBalanceOf(address)\":{\"notice\":\"Get a total amount of the collateral that can be slashed for a given account.\"},\"slasher()\":{\"notice\":\"Get a slasher (it provides networks a slashing mechanism).\"},\"staticDelegateCall(address,bytes)\":{\"notice\":\"Make a delegatecall from this contract to a given target contract with a particular data (always reverts with a return data).\"},\"totalStake()\":{\"notice\":\"Get a total amount of the collateral that can be slashed.\"},\"version()\":{\"notice\":\"Get the entity's version.\"},\"withdraw(address,uint256)\":{\"notice\":\"Withdraw collateral from the vault (it will be claimable after the next epoch).\"},\"withdrawalShares(uint256)\":{\"notice\":\"Get a total number of withdrawal shares at a given epoch.\"},\"withdrawalSharesOf(uint256,address)\":{\"notice\":\"Get a number of withdrawal shares for a particular account at a given epoch (zero if claimed).\"},\"withdrawals(uint256)\":{\"notice\":\"Get a total amount of the withdrawals at a given epoch.\"},\"withdrawalsOf(uint256,address)\":{\"notice\":\"Get withdrawals for a particular account at a given epoch (zero if claimed).\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/contracts/hints/VaultHints.sol\":\"VaultHints\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol\":{\"keccak256\":\"0x6662ec4e5cefca03eeadd073e9469df8d2944bb2ee8ec8f7622c2c46aab5f225\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4d8544c6f8daa4d1bc215c6a72fe0acdb748664a105b0e5efc19295667521d45\",\"dweb:/ipfs/QmdGWqdnXT8S3RgCR6aV8XHZrsybieMQLLnug1NtpSjEXN\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0xc163fcf9bb10138631a9ba5564df1fa25db9adff73bd9ee868a8ae1858fe093a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9706d43a0124053d9880f6e31a59f31bc0a6a3dc1acd66ce0a16e1111658c5f6\",\"dweb:/ipfs/QmUFmfowzkRwGtDu36cXV9SPTBHJ3n7dG9xQiK5B28jTf2\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609\",\"dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9\",\"dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardUpgradeable.sol\":{\"keccak256\":\"0xb44e086e941292cdc7f440de51478493894ef0b1aeccb0c4047445919f667f74\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://942dad22fbdc1669f025540ba63aa3ccfad5f8458fc5d4525b31ebf272e7af45\",\"dweb:/ipfs/Qmdo4X2M82aM3AMoW2kf2jhYkSCyC4T1pHNd6obdsDFnAB\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol\":{\"keccak256\":\"0xdaba3f7c42c55b2896353f32bd27d4d5f8bae741b3b05d4c53f67abc4dc47ce8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1fa2e61141c602510bcd2cd936ed9561922ac8772a9b9c9a9db091a74e354a45\",\"dweb:/ipfs/QmcHQDDoEBwJmwUbzoVkytvJsBx3KVHYFFnDkvRGWh9Wmh\"]},\"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0xb6b36edd6a2999fd243ff226d6cbf84bd71af2432bbd0dfe19392996a1d9cb41\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1fd2f35495652e57e3f99bc6c510bc5f7dd398a176ea2e72d8ed730aebc6ca26\",\"dweb:/ipfs/QmTQV6X4gkikTib49cho5iDX3JvSQbdsoEChoDwrk3CbbH\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c\",\"dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0x6008dabfe393240d73d7dd7688033f72740d570aa422254d29a7dce8568f3aff\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f5196ec75139918c6c7bb4251b36395e668f1fa6d206beba7e7520e74913940d\",\"dweb:/ipfs/QmSyqjksXxmm2mCG6qRd1yuwLykypkSVBbnBnGqJRcuJMi\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x37bb49513c49c87c4642a891b13b63571bc87013dde806617aa1efb54605f386\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b3036b3a83b7c48f96641f2a9002b9f2dcb6a5958dd670894ada21ae8229b3d0\",\"dweb:/ipfs/QmUNfSBdoVtjhETaUJCYcaC7pTMgbhht926tJ2uXJbiVd3\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0xaf28a975a78550e45f65e559a3ad6a5ad43b9b8a37366999abd1b7084eb70721\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b7bd24e224f67f65bfadf85dc2929fa965456bb2415478bd0125471b5ce35245\",\"dweb:/ipfs/QmRaydGr8BTHs1kvaZfsNU69pKzUAGFrvABn1KiRSbE51y\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875\",\"dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0xe19a4d5f31d2861e7344e8e535e2feafb913d806d3e2b5fe7782741a2a7094fe\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4aed79c0fa6f0546ed02f2f683e8f77f0fd2ed7eb34d8bbf3d373c9a6d95b13c\",\"dweb:/ipfs/QmWqVz6UAVqmnWU5pqYPt1o6iDEZyPaBraAA3rKfTTSfYj\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/Checkpoints.sol\":{\"keccak256\":\"0xbdc5e074d7dd6678f67e92b1a51a20226801a407b0e1af3da367c5d1ff4519ad\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a36cca6b22fff3db16fc789ff6c60eea71d4b156065d4d0c83a0bc5e91a77a8b\",\"dweb:/ipfs/QmYN3exd5AemxjBrN8XMB1p5LbbE16uC3sjbYjwi8AjcGR\"]},\"lib/openzeppelin-contracts/contracts/utils/types/Time.sol\":{\"keccak256\":\"0xc7755af115020049e4140f224f9ee88d7e1799ffb0646f37bf0df24bf6213f58\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7f09bf94d5274334ec021f61a04659db303f31e60460e14b709c9bf187740111\",\"dweb:/ipfs/QmNvgomZYUwFAt4cZbPWAiTeSZQreGehY9BK5xyVJsUttb\"]},\"src/contracts/common/MigratableEntity.sol\":{\"keccak256\":\"0x2d736f4dacd5d7e7697503bc426c78b8250fe1694ca157965ec178da6807de58\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://f1237acf96b4b9f9b69156e068eddd726a6e15bd8e87a18dc999cd4ba4da069c\",\"dweb:/ipfs/QmS6M8fiFFSeuJ4ZKKq1z8W7w4ybeHQSy5TLASGoc1LVic\"]},\"src/contracts/common/StaticDelegateCallable.sol\":{\"keccak256\":\"0x350029aa8955eacaffffaeb58babc5c98e80ebc5c5db388ed17ee6465f4a9d90\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://eb392a8ee9050e0af606897df63e3404e3829e8b688b580663892f9664195764\",\"dweb:/ipfs/QmaXC8jqV8UrrAFkzXTEv2fJF56sy33HhLxAzaRZmUxuXD\"]},\"src/contracts/hints/Hints.sol\":{\"keccak256\":\"0x8b565df1ae35993c097a9e642002782a8f451f6fd01809cad6bcd345bdf1b99c\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://99a19adb01e350a92f534095b3078229df1f2f83077992d75d58d8684be45971\",\"dweb:/ipfs/QmbmwcuswVbzvwHQFTtrJG86oV98GnfxqYTb8cV8u1acox\"]},\"src/contracts/hints/VaultHints.sol\":{\"keccak256\":\"0xccb505b7159b769cc114d67b87c2de6b106557f667fc8f3780114baad5c3c442\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://6d0c80a908fc16e96a8b5605a0bd53f9e89ad0ef0a738fbbae80ba4d3160749b\",\"dweb:/ipfs/QmXo5UtWoR8YmunqcbBU8rQMm1nvmvjNPoXcVrDhh4pEwR\"]},\"src/contracts/libraries/Checkpoints.sol\":{\"keccak256\":\"0xba90097c8bfe0a975499428b5f8ac5569483c7d92ccc28c12d70de416aae040c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://12f5d93ca94cd06d3147db68993165a58e17903ed53682560de61f3085ad4609\",\"dweb:/ipfs/QmePiuAqvXprMLmFZkGZeGjvGPAvsEDHfCDv7BoQhXu9xE\"]},\"src/contracts/libraries/ERC4626Math.sol\":{\"keccak256\":\"0x8441160513c1cbeb1c3b9ee077bcc7e7ce20006b52a77c8dd39ff0ef89699939\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://943f8cc3e26ddf649f465f40c909819f5c864717c4baa339e9e403b9374a4653\",\"dweb:/ipfs/QmXPxi1sUDsrGprZdUgCzoPEosaZMv9ZhygWQ1vAi1phAB\"]},\"src/contracts/vault/Vault.sol\":{\"keccak256\":\"0x2ceff6ed3298c4cad144c99fcc79b51cb9397d6ebef00285b915848b476f8c2e\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://11f2fb3581854f3ab6e82e8d4935d9eb510c903a13c3f022346c2956a58f5307\",\"dweb:/ipfs/QmdUnoXoyYoG9SGWyQZCFyLDRUUX3eXyXetkRvw6jxqqBz\"]},\"src/contracts/vault/VaultStorage.sol\":{\"keccak256\":\"0x57db25b127d77ea3472de53e3a4af3354399655b9268638b99ca5925fa364a56\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://aa763d9a6ec508ae3abfb8228b72b9fd9525279e5135d4962e79ff059feb1173\",\"dweb:/ipfs/QmcbDR6E9wyEpu6V2FkEC4hnWy47zXA9LSKJde6zSGd33Q\"]},\"src/interfaces/common/IEntity.sol\":{\"keccak256\":\"0x8ef4b63d6da63489778ccd5f8d13ebdd527dd4b62730b2c616df5af7474d2d21\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a8d69576a9219d85c50816a18ad53a4d53cfcb27ed38b8cccc808dc2734b71b\",\"dweb:/ipfs/QmYVN3P4Q4REvBWJ97TbAcaxm3uyB2anV6NSGa6ZtSwcEv\"]},\"src/interfaces/common/IMigratableEntity.sol\":{\"keccak256\":\"0x8f5f2809f3afbe8ebfbb365dd7b57b4dd3b6f9943a6187eaf648d45895b8e3c4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ffe640537d539e7a4fde70d30d3e4c57f4ba9c2c25c450cea713aae38e8fd5c\",\"dweb:/ipfs/QmSUTGzvdcn1R1KB7tLThMRtESsfPbeXDhhhKWGtntzBds\"]},\"src/interfaces/common/IRegistry.sol\":{\"keccak256\":\"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014\",\"dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK\"]},\"src/interfaces/common/IStaticDelegateCallable.sol\":{\"keccak256\":\"0xa335d4e81b9071b7de66ef92b43ff20671d86516eb1be46fef29a3483cd3f5d5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d464b9db863c14c05547d2b23352f2e9b7b784799cf09f6bbc4906a2a74e3516\",\"dweb:/ipfs/QmUVWzFvJz7eEbDQKiFTTzwi7TEbjcs3VmwdM4kuptAKvi\"]},\"src/interfaces/delegator/IBaseDelegator.sol\":{\"keccak256\":\"0x96bb312f032e17accce3f8f80936d99468029d6b37c9ca74acdb4b026a0148ee\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2a66dcb5b7d1a6ef6a363431ea98ebd78bc4fdd3d7a134d9b542dc66e7d025c2\",\"dweb:/ipfs/QmRhTPLd2ZAyRHmJUFUcWKs9b3if49QY17LYZuRqWmghw8\"]},\"src/interfaces/slasher/IBaseSlasher.sol\":{\"keccak256\":\"0x7c82528b445659c313ab77335c407b0b6efe5e79027187bb287f7bc74202b404\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0274c90aa5df1aa6bb470a6aab53992fb14fd7e5472c9430416505b29647d9cf\",\"dweb:/ipfs/QmckbmJLDetPemVzCnnGcKYWAZV2BRFXGDsjiaec8jkHxx\"]},\"src/interfaces/vault/IVault.sol\":{\"keccak256\":\"0xffee01d383cd4e1a5530c614bf4360c1ef070c288abec9da1eb531b51bc07235\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://04f0046cac285d8ec44ebbb1f79dc94fab4495767190cad8364fbc1fafaadfb9\",\"dweb:/ipfs/QmUawAunwzXfCyShWfhKeThAgKtqe51hmrxvrXvM772M2R\"]},\"src/interfaces/vault/IVaultStorage.sol\":{\"keccak256\":\"0x592626f13754194f83047135de19229c49390bd59e34659b1bb38be71d973a22\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://06a6a9dfddd05e580b32bebe2cff4f63ba26a653180676d58225dd30d9c89d3e\",\"dweb:/ipfs/QmdgzBeY6Sxo8mGtyBxtv1tM1c2kU6J6zjeRd7vuXm4DU6\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.25+commit.b61c2a91"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"AccessControlBadConfirmation"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bytes32","name":"neededRole","type":"bytes32"}],"type":"error","name":"AccessControlUnauthorizedAccount"},{"inputs":[{"internalType":"address","name":"target","type":"address"}],"type":"error","name":"AddressEmptyCode"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"AddressInsufficientBalance"},{"inputs":[],"type":"error","name":"AlreadyClaimed"},{"inputs":[],"type":"error","name":"AlreadyInitialized"},{"inputs":[],"type":"error","name":"AlreadySet"},{"inputs":[],"type":"error","name":"CheckpointUnorderedInsertion"},{"inputs":[],"type":"error","name":"DelegatorAlreadyInitialized"},{"inputs":[],"type":"error","name":"DepositLimitReached"},{"inputs":[],"type":"error","name":"ExternalCall"},{"inputs":[],"type":"error","name":"FailedInnerCall"},{"inputs":[],"type":"error","name":"InsufficientClaim"},{"inputs":[],"type":"error","name":"InsufficientDeposit"},{"inputs":[],"type":"error","name":"InsufficientRedemption"},{"inputs":[],"type":"error","name":"InsufficientWithdrawal"},{"inputs":[],"type":"error","name":"InvalidAccount"},{"inputs":[],"type":"error","name":"InvalidCaptureEpoch"},{"inputs":[],"type":"error","name":"InvalidClaimer"},{"inputs":[],"type":"error","name":"InvalidCollateral"},{"inputs":[],"type":"error","name":"InvalidDelegator"},{"inputs":[],"type":"error","name":"InvalidEpoch"},{"inputs":[],"type":"error","name":"InvalidEpochDuration"},{"inputs":[],"type":"error","name":"InvalidInitialization"},{"inputs":[],"type":"error","name":"InvalidLengthEpochs"},{"inputs":[],"type":"error","name":"InvalidOnBehalfOf"},{"inputs":[],"type":"error","name":"InvalidRecipient"},{"inputs":[],"type":"error","name":"InvalidSlasher"},{"inputs":[],"type":"error","name":"InvalidTimestamp"},{"inputs":[],"type":"error","name":"MathOverflowedMulDiv"},{"inputs":[],"type":"error","name":"MissingRoles"},{"inputs":[],"type":"error","name":"NoPreviousEpoch"},{"inputs":[],"type":"error","name":"NotDelegator"},{"inputs":[],"type":"error","name":"NotFactory"},{"inputs":[],"type":"error","name":"NotInitialized"},{"inputs":[],"type":"error","name":"NotInitializing"},{"inputs":[],"type":"error","name":"NotSlasher"},{"inputs":[],"type":"error","name":"NotWhitelistedDepositor"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"OwnableInvalidOwner"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"OwnableUnauthorizedAccount"},{"inputs":[],"type":"error","name":"ReentrancyGuardReentrantCall"},{"inputs":[{"internalType":"uint8","name":"bits","type":"uint8"},{"internalType":"uint256","name":"value","type":"uint256"}],"type":"error","name":"SafeCastOverflowedUintDowncast"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"type":"error","name":"SafeERC20FailedOperation"},{"inputs":[],"type":"error","name":"SlasherAlreadyInitialized"},{"inputs":[],"type":"error","name":"TooMuchRedeem"},{"inputs":[],"type":"error","name":"TooMuchWithdraw"},{"inputs":[{"internalType":"address","name":"claimer","type":"address","indexed":true},{"internalType":"address","name":"recipient","type":"address","indexed":true},{"internalType":"uint256","name":"epoch","type":"uint256","indexed":false},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"Claim","anonymous":false},{"inputs":[{"internalType":"address","name":"claimer","type":"address","indexed":true},{"internalType":"address","name":"recipient","type":"address","indexed":true},{"internalType":"uint256[]","name":"epochs","type":"uint256[]","indexed":false},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"ClaimBatch","anonymous":false},{"inputs":[{"internalType":"address","name":"depositor","type":"address","indexed":true},{"internalType":"address","name":"onBehalfOf","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false},{"internalType":"uint256","name":"shares","type":"uint256","indexed":false}],"type":"event","name":"Deposit","anonymous":false},{"inputs":[{"internalType":"uint64","name":"version","type":"uint64","indexed":false}],"type":"event","name":"Initialized","anonymous":false},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256","indexed":false},{"internalType":"uint48","name":"captureTimestamp","type":"uint48","indexed":false},{"internalType":"uint256","name":"slashedAmount","type":"uint256","indexed":false}],"type":"event","name":"OnSlash","anonymous":false},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"bytes32","name":"previousAdminRole","type":"bytes32","indexed":true},{"internalType":"bytes32","name":"newAdminRole","type":"bytes32","indexed":true}],"type":"event","name":"RoleAdminChanged","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"address","name":"sender","type":"address","indexed":true}],"type":"event","name":"RoleGranted","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"address","name":"sender","type":"address","indexed":true}],"type":"event","name":"RoleRevoked","anonymous":false},{"inputs":[{"internalType":"address","name":"delegator","type":"address","indexed":true}],"type":"event","name":"SetDelegator","anonymous":false},{"inputs":[{"internalType":"uint256","name":"limit","type":"uint256","indexed":false}],"type":"event","name":"SetDepositLimit","anonymous":false},{"inputs":[{"internalType":"bool","name":"status","type":"bool","indexed":false}],"type":"event","name":"SetDepositWhitelist","anonymous":false},{"inputs":[{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"bool","name":"status","type":"bool","indexed":false}],"type":"event","name":"SetDepositorWhitelistStatus","anonymous":false},{"inputs":[{"internalType":"bool","name":"status","type":"bool","indexed":false}],"type":"event","name":"SetIsDepositLimit","anonymous":false},{"inputs":[{"internalType":"address","name":"slasher","type":"address","indexed":true}],"type":"event","name":"SetSlasher","anonymous":false},{"inputs":[{"internalType":"address","name":"withdrawer","type":"address","indexed":true},{"internalType":"address","name":"claimer","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false},{"internalType":"uint256","name":"burnedShares","type":"uint256","indexed":false},{"internalType":"uint256","name":"mintedShares","type":"uint256","indexed":false}],"type":"event","name":"Withdraw","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"DEFAULT_ADMIN_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"DELEGATOR_FACTORY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"DEPOSITOR_WHITELIST_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"DEPOSIT_LIMIT_SET_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"DEPOSIT_WHITELIST_SET_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"FACTORY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"IS_DEPOSIT_LIMIT_SET_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"SLASHER_FACTORY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"activeBalanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint48","name":"timestamp","type":"uint48"},{"internalType":"bytes","name":"hints","type":"bytes"}],"stateMutability":"view","type":"function","name":"activeBalanceOfAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"vault","type":"address"},{"internalType":"address","name":"account","type":"address"},{"internalType":"uint48","name":"timestamp","type":"uint48"}],"stateMutability":"view","type":"function","name":"activeBalanceOfHints","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"activeShares","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint48","name":"timestamp","type":"uint48"},{"internalType":"bytes","name":"hint","type":"bytes"}],"stateMutability":"view","type":"function","name":"activeSharesAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"vault","type":"address"},{"internalType":"uint48","name":"timestamp","type":"uint48"}],"stateMutability":"view","type":"function","name":"activeSharesHint","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"uint48","name":"timestamp","type":"uint48"}],"stateMutability":"view","type":"function","name":"activeSharesHintInternal","outputs":[{"internalType":"bool","name":"exists","type":"bool"},{"internalType":"uint32","name":"hint","type":"uint32"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"activeSharesOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint48","name":"timestamp","type":"uint48"},{"internalType":"bytes","name":"hint","type":"bytes"}],"stateMutability":"view","type":"function","name":"activeSharesOfAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"vault","type":"address"},{"internalType":"address","name":"account","type":"address"},{"internalType":"uint48","name":"timestamp","type":"uint48"}],"stateMutability":"view","type":"function","name":"activeSharesOfHint","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint48","name":"timestamp","type":"uint48"}],"stateMutability":"view","type":"function","name":"activeSharesOfHintInternal","outputs":[{"internalType":"bool","name":"exists","type":"bool"},{"internalType":"uint32","name":"hint","type":"uint32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"activeStake","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint48","name":"timestamp","type":"uint48"},{"internalType":"bytes","name":"hint","type":"bytes"}],"stateMutability":"view","type":"function","name":"activeStakeAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"vault","type":"address"},{"internalType":"uint48","name":"timestamp","type":"uint48"}],"stateMutability":"view","type":"function","name":"activeStakeHint","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"uint48","name":"timestamp","type":"uint48"}],"stateMutability":"view","type":"function","name":"activeStakeHintInternal","outputs":[{"internalType":"bool","name":"exists","type":"bool"},{"internalType":"uint32","name":"hint","type":"uint32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"burner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"epoch","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"claim","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256[]","name":"epochs","type":"uint256[]"}],"stateMutability":"nonpayable","type":"function","name":"claimBatch","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"collateral","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"currentEpoch","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"currentEpochStart","outputs":[{"internalType":"uint48","name":"","type":"uint48"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"delegator","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"onBehalfOf","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"deposit","outputs":[{"internalType":"uint256","name":"depositedAmount","type":"uint256"},{"internalType":"uint256","name":"mintedShares","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"depositLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"depositWhitelist","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint48","name":"timestamp","type":"uint48"}],"stateMutability":"view","type":"function","name":"epochAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"epochDuration","outputs":[{"internalType":"uint48","name":"","type":"uint48"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"epochDurationInit","outputs":[{"internalType":"uint48","name":"","type":"uint48"}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getRoleAdmin","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"grantRole"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"hasRole","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint64","name":"initialVersion","type":"uint64"},{"internalType":"address","name":"owner_","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[],"stateMutability":"view","type":"function","name":"isDelegatorInitialized","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"isDepositLimit","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"isDepositorWhitelisted","outputs":[{"internalType":"bool","name":"value","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"isInitialized","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"isSlasherInitialized","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint256","name":"epoch","type":"uint256"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"isWithdrawalsClaimed","outputs":[{"internalType":"bool","name":"value","type":"bool"}]},{"inputs":[{"internalType":"uint64","name":"newVersion","type":"uint64"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"migrate"},{"inputs":[],"stateMutability":"view","type":"function","name":"nextEpochStart","outputs":[{"internalType":"uint48","name":"","type":"uint48"}]},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint48","name":"captureTimestamp","type":"uint48"}],"stateMutability":"nonpayable","type":"function","name":"onSlash","outputs":[{"internalType":"uint256","name":"slashedAmount","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"previousEpochStart","outputs":[{"internalType":"uint48","name":"","type":"uint48"}]},{"inputs":[{"internalType":"address","name":"claimer","type":"address"},{"internalType":"uint256","name":"shares","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"redeem","outputs":[{"internalType":"uint256","name":"withdrawnAssets","type":"uint256"},{"internalType":"uint256","name":"mintedShares","type":"uint256"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"callerConfirmation","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"renounceRole"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"revokeRole"},{"inputs":[{"internalType":"address","name":"delegator_","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setDelegator"},{"inputs":[{"internalType":"uint256","name":"limit","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setDepositLimit"},{"inputs":[{"internalType":"bool","name":"status","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"setDepositWhitelist"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"status","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"setDepositorWhitelistStatus"},{"inputs":[{"internalType":"bool","name":"status","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"setIsDepositLimit"},{"inputs":[{"internalType":"address","name":"slasher_","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setSlasher"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"slashableBalanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"slasher","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"staticDelegateCall"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"totalStake","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"},{"inputs":[],"stateMutability":"view","type":"function","name":"version","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[{"internalType":"address","name":"claimer","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"withdraw","outputs":[{"internalType":"uint256","name":"burnedShares","type":"uint256"},{"internalType":"uint256","name":"mintedShares","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"epoch","type":"uint256"}],"stateMutability":"view","type":"function","name":"withdrawalShares","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"epoch","type":"uint256"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"withdrawalSharesOf","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"epoch","type":"uint256"}],"stateMutability":"view","type":"function","name":"withdrawals","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"epoch","type":"uint256"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"withdrawalsOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]}],"devdoc":{"kind":"dev","methods":{"activeBalanceOf(address)":{"params":{"account":"account to get the active balance for"},"returns":{"_0":"active balance for the account"}},"activeBalanceOfAt(address,uint48,bytes)":{"params":{"account":"account to get the active balance for","hints":"hints for checkpoints' indexes","timestamp":"time point to get the active balance for the account at"},"returns":{"_0":"active balance for the account at the timestamp"}},"activeShares()":{"returns":{"_0":"total number of active shares"}},"activeSharesAt(uint48,bytes)":{"params":{"hint":"hint for the checkpoint index","timestamp":"time point to get the total number of active shares at"},"returns":{"_0":"total number of active shares at the timestamp"}},"activeSharesOf(address)":{"params":{"account":"account to get the number of active shares for"},"returns":{"_0":"number of active shares for the account"}},"activeSharesOfAt(address,uint48,bytes)":{"params":{"account":"account to get the number of active shares for","hint":"hint for the checkpoint index","timestamp":"time point to get the number of active shares for the account at"},"returns":{"_0":"number of active shares for the account at the timestamp"}},"activeStake()":{"returns":{"_0":"total amount of active stake"}},"activeStakeAt(uint48,bytes)":{"params":{"hint":"hint for the checkpoint index","timestamp":"time point to get the total active stake at"},"returns":{"_0":"total amount of active stake at the timestamp"}},"claim(address,uint256)":{"params":{"epoch":"epoch to claim the collateral for","recipient":"account that receives the collateral"},"returns":{"amount":"amount of the collateral claimed"}},"claimBatch(address,uint256[])":{"params":{"epochs":"epochs to claim the collateral for","recipient":"account that receives the collateral"},"returns":{"amount":"amount of the collateral claimed"}},"currentEpoch()":{"returns":{"_0":"current epoch"}},"currentEpochStart()":{"returns":{"_0":"start of the current epoch"}},"deposit(address,uint256)":{"params":{"amount":"amount of the collateral to deposit","onBehalfOf":"account the deposit is made on behalf of"},"returns":{"depositedAmount":"real amount of the collateral deposited","mintedShares":"amount of the active shares minted"}},"epochAt(uint48)":{"details":"Reverts if the timestamp is less than the start of the epoch 0.","params":{"timestamp":"time point to get the epoch at"},"returns":{"_0":"epoch at the timestamp"}},"getRoleAdmin(bytes32)":{"details":"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}."},"grantRole(bytes32,address)":{"details":"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event."},"hasRole(bytes32,address)":{"details":"Returns `true` if `account` has been granted `role`."},"initialize(uint64,address,bytes)":{"params":{"data":"some data to use","initialVersion":"initial version of the entity","owner":"initial owner of the entity"}},"isInitialized()":{"returns":{"_0":"if the vault is fully initialized"}},"migrate(uint64,bytes)":{"params":{"data":"some data to use","newVersion":"new version of the entity"}},"nextEpochStart()":{"returns":{"_0":"start of the next epoch"}},"onSlash(uint256,uint48)":{"details":"Only the slasher can call this function.","params":{"amount":"amount to slash","captureTimestamp":"time point when the stake was captured"},"returns":{"slashedAmount":"real amount of the collateral slashed"}},"owner()":{"details":"Returns the address of the current owner."},"previousEpochStart()":{"details":"Reverts if the current epoch is 0.","returns":{"_0":"start of the previous epoch"}},"redeem(address,uint256)":{"params":{"claimer":"account that needs to claim the withdrawal","shares":"amount of the active shares to redeem"},"returns":{"mintedShares":"amount of the epoch withdrawal shares minted","withdrawnAssets":"amount of the collateral withdrawn"}},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner."},"renounceRole(bytes32,address)":{"details":"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `callerConfirmation`. May emit a {RoleRevoked} event."},"revokeRole(bytes32,address)":{"details":"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event."},"setDepositLimit(uint256)":{"details":"Only a DEPOSIT_LIMIT_SET_ROLE holder can call this function.","params":{"limit":"deposit limit (maximum amount of the collateral that can be in the vault simultaneously)"}},"setDepositWhitelist(bool)":{"details":"Only a DEPOSIT_WHITELIST_SET_ROLE holder can call this function.","params":{"status":"if enabling deposit whitelist"}},"setDepositorWhitelistStatus(address,bool)":{"details":"Only a DEPOSITOR_WHITELIST_ROLE holder can call this function.","params":{"account":"account for which the whitelist status is set","status":"if whitelisting the account"}},"setIsDepositLimit(bool)":{"details":"Only a IS_DEPOSIT_LIMIT_SET_ROLE holder can call this function.","params":{"status":"if enabling deposit limit"}},"slashableBalanceOf(address)":{"params":{"account":"account to get the slashable collateral for"},"returns":{"_0":"total amount of the account's slashable collateral"}},"staticDelegateCall(address,bytes)":{"details":"It allows to use this contract's storage on-chain.","params":{"data":"data to make a delegatecall with","target":"address of the contract to make a delegatecall to"}},"supportsInterface(bytes4)":{"details":"See {IERC165-supportsInterface}."},"totalStake()":{"returns":{"_0":"total amount of the slashable collateral"}},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."},"version()":{"details":"Starts from 1.","returns":{"_0":"version of the entity"}},"withdraw(address,uint256)":{"params":{"amount":"amount of the collateral to withdraw","claimer":"account that needs to claim the withdrawal"},"returns":{"burnedShares":"amount of the active shares burned","mintedShares":"amount of the epoch withdrawal shares minted"}},"withdrawalsOf(uint256,address)":{"params":{"account":"account to get the withdrawals for","epoch":"epoch to get the withdrawals for the account at"},"returns":{"_0":"withdrawals for the account at the epoch"}}},"version":1},"userdoc":{"kind":"user","methods":{"DELEGATOR_FACTORY()":{"notice":"Get the delegator factory's address."},"DEPOSITOR_WHITELIST_ROLE()":{"notice":"Get a depositor whitelist status setter's role."},"DEPOSIT_LIMIT_SET_ROLE()":{"notice":"Get a deposit limit setter's role."},"DEPOSIT_WHITELIST_SET_ROLE()":{"notice":"Get a deposit whitelist enabler/disabler's role."},"FACTORY()":{"notice":"Get the factory's address."},"IS_DEPOSIT_LIMIT_SET_ROLE()":{"notice":"Get a deposit limit enabler/disabler's role."},"SLASHER_FACTORY()":{"notice":"Get the slasher factory's address."},"activeBalanceOf(address)":{"notice":"Get an active balance for a particular account."},"activeBalanceOfAt(address,uint48,bytes)":{"notice":"Get an active balance for a particular account at a given timestamp using hints."},"activeShares()":{"notice":"Get a total number of active shares in the vault."},"activeSharesAt(uint48,bytes)":{"notice":"Get a total number of active shares in the vault at a given timestamp using a hint."},"activeSharesOf(address)":{"notice":"Get a number of active shares for a particular account."},"activeSharesOfAt(address,uint48,bytes)":{"notice":"Get a total number of active shares for a particular account at a given timestamp using a hint."},"activeStake()":{"notice":"Get a total amount of active stake in the vault."},"activeStakeAt(uint48,bytes)":{"notice":"Get a total amount of active stake in the vault at a given timestamp using a hint."},"burner()":{"notice":"Get a burner to issue debt to (e.g., 0xdEaD or some unwrapper contract)."},"claim(address,uint256)":{"notice":"Claim collateral from the vault."},"claimBatch(address,uint256[])":{"notice":"Claim collateral from the vault for multiple epochs."},"collateral()":{"notice":"Get a vault collateral."},"currentEpoch()":{"notice":"Get a current vault epoch."},"currentEpochStart()":{"notice":"Get a start of the current vault epoch."},"delegator()":{"notice":"Get a delegator (it delegates the vault's stake to networks and operators)."},"deposit(address,uint256)":{"notice":"Deposit collateral into the vault."},"depositLimit()":{"notice":"Get a deposit limit (maximum amount of the active stake that can be in the vault simultaneously)."},"depositWhitelist()":{"notice":"Get if the deposit whitelist is enabled."},"epochAt(uint48)":{"notice":"Get an epoch at a given timestamp."},"epochDuration()":{"notice":"Get a duration of the vault epoch."},"epochDurationInit()":{"notice":"Get a time point of the epoch duration set."},"initialize(uint64,address,bytes)":{"notice":"Initialize this entity contract by using a given data and setting a particular version and owner."},"isDelegatorInitialized()":{"notice":"Get if the delegator is initialized."},"isDepositLimit()":{"notice":"Get if the deposit limit is set."},"isDepositorWhitelisted(address)":{"notice":"Get if a given account is whitelisted as a depositor."},"isInitialized()":{"notice":"Check if the vault is fully initialized (a delegator and a slasher are set)."},"isSlasherInitialized()":{"notice":"Get if the slasher is initialized."},"isWithdrawalsClaimed(uint256,address)":{"notice":"Get if the withdrawals are claimed for a particular account at a given epoch."},"migrate(uint64,bytes)":{"notice":"Migrate this entity to a particular newer version using a given data."},"nextEpochStart()":{"notice":"Get a start of the next vault epoch."},"onSlash(uint256,uint48)":{"notice":"Slash callback for burning collateral."},"previousEpochStart()":{"notice":"Get a start of the previous vault epoch."},"redeem(address,uint256)":{"notice":"Redeem collateral from the vault (it will be claimable after the next epoch)."},"setDepositLimit(uint256)":{"notice":"Set a deposit limit."},"setDepositWhitelist(bool)":{"notice":"Enable/disable deposit whitelist."},"setDepositorWhitelistStatus(address,bool)":{"notice":"Set a depositor whitelist status."},"setIsDepositLimit(bool)":{"notice":"Enable/disable deposit limit."},"slashableBalanceOf(address)":{"notice":"Get a total amount of the collateral that can be slashed for a given account."},"slasher()":{"notice":"Get a slasher (it provides networks a slashing mechanism)."},"staticDelegateCall(address,bytes)":{"notice":"Make a delegatecall from this contract to a given target contract with a particular data (always reverts with a return data)."},"totalStake()":{"notice":"Get a total amount of the collateral that can be slashed."},"version()":{"notice":"Get the entity's version."},"withdraw(address,uint256)":{"notice":"Withdraw collateral from the vault (it will be claimable after the next epoch)."},"withdrawalShares(uint256)":{"notice":"Get a total number of withdrawal shares at a given epoch."},"withdrawalSharesOf(uint256,address)":{"notice":"Get a number of withdrawal shares for a particular account at a given epoch (zero if claimed)."},"withdrawals(uint256)":{"notice":"Get a total amount of the withdrawals at a given epoch."},"withdrawalsOf(uint256,address)":{"notice":"Get withdrawals for a particular account at a given epoch (zero if claimed)."}},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/contracts/hints/VaultHints.sol":"VaultHints"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol":{"keccak256":"0x6662ec4e5cefca03eeadd073e9469df8d2944bb2ee8ec8f7622c2c46aab5f225","urls":["bzz-raw://4d8544c6f8daa4d1bc215c6a72fe0acdb748664a105b0e5efc19295667521d45","dweb:/ipfs/QmdGWqdnXT8S3RgCR6aV8XHZrsybieMQLLnug1NtpSjEXN"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol":{"keccak256":"0xc163fcf9bb10138631a9ba5564df1fa25db9adff73bd9ee868a8ae1858fe093a","urls":["bzz-raw://9706d43a0124053d9880f6e31a59f31bc0a6a3dc1acd66ce0a16e1111658c5f6","dweb:/ipfs/QmUFmfowzkRwGtDu36cXV9SPTBHJ3n7dG9xQiK5B28jTf2"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b","urls":["bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609","dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol":{"keccak256":"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397","urls":["bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9","dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardUpgradeable.sol":{"keccak256":"0xb44e086e941292cdc7f440de51478493894ef0b1aeccb0c4047445919f667f74","urls":["bzz-raw://942dad22fbdc1669f025540ba63aa3ccfad5f8458fc5d4525b31ebf272e7af45","dweb:/ipfs/Qmdo4X2M82aM3AMoW2kf2jhYkSCyC4T1pHNd6obdsDFnAB"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol":{"keccak256":"0xdaba3f7c42c55b2896353f32bd27d4d5f8bae741b3b05d4c53f67abc4dc47ce8","urls":["bzz-raw://1fa2e61141c602510bcd2cd936ed9561922ac8772a9b9c9a9db091a74e354a45","dweb:/ipfs/QmcHQDDoEBwJmwUbzoVkytvJsBx3KVHYFFnDkvRGWh9Wmh"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol":{"keccak256":"0xb6b36edd6a2999fd243ff226d6cbf84bd71af2432bbd0dfe19392996a1d9cb41","urls":["bzz-raw://1fd2f35495652e57e3f99bc6c510bc5f7dd398a176ea2e72d8ed730aebc6ca26","dweb:/ipfs/QmTQV6X4gkikTib49cho5iDX3JvSQbdsoEChoDwrk3CbbH"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70","urls":["bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c","dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol":{"keccak256":"0x6008dabfe393240d73d7dd7688033f72740d570aa422254d29a7dce8568f3aff","urls":["bzz-raw://f5196ec75139918c6c7bb4251b36395e668f1fa6d206beba7e7520e74913940d","dweb:/ipfs/QmSyqjksXxmm2mCG6qRd1yuwLykypkSVBbnBnGqJRcuJMi"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0x37bb49513c49c87c4642a891b13b63571bc87013dde806617aa1efb54605f386","urls":["bzz-raw://b3036b3a83b7c48f96641f2a9002b9f2dcb6a5958dd670894ada21ae8229b3d0","dweb:/ipfs/QmUNfSBdoVtjhETaUJCYcaC7pTMgbhht926tJ2uXJbiVd3"],"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/introspection/IERC165.sol":{"keccak256":"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b","urls":["bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df","dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d","urls":["bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875","dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol":{"keccak256":"0xe19a4d5f31d2861e7344e8e535e2feafb913d806d3e2b5fe7782741a2a7094fe","urls":["bzz-raw://4aed79c0fa6f0546ed02f2f683e8f77f0fd2ed7eb34d8bbf3d373c9a6d95b13c","dweb:/ipfs/QmWqVz6UAVqmnWU5pqYPt1o6iDEZyPaBraAA3rKfTTSfYj"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/Checkpoints.sol":{"keccak256":"0xbdc5e074d7dd6678f67e92b1a51a20226801a407b0e1af3da367c5d1ff4519ad","urls":["bzz-raw://a36cca6b22fff3db16fc789ff6c60eea71d4b156065d4d0c83a0bc5e91a77a8b","dweb:/ipfs/QmYN3exd5AemxjBrN8XMB1p5LbbE16uC3sjbYjwi8AjcGR"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/types/Time.sol":{"keccak256":"0xc7755af115020049e4140f224f9ee88d7e1799ffb0646f37bf0df24bf6213f58","urls":["bzz-raw://7f09bf94d5274334ec021f61a04659db303f31e60460e14b709c9bf187740111","dweb:/ipfs/QmNvgomZYUwFAt4cZbPWAiTeSZQreGehY9BK5xyVJsUttb"],"license":"MIT"},"src/contracts/common/MigratableEntity.sol":{"keccak256":"0x2d736f4dacd5d7e7697503bc426c78b8250fe1694ca157965ec178da6807de58","urls":["bzz-raw://f1237acf96b4b9f9b69156e068eddd726a6e15bd8e87a18dc999cd4ba4da069c","dweb:/ipfs/QmS6M8fiFFSeuJ4ZKKq1z8W7w4ybeHQSy5TLASGoc1LVic"],"license":"BUSL-1.1"},"src/contracts/common/StaticDelegateCallable.sol":{"keccak256":"0x350029aa8955eacaffffaeb58babc5c98e80ebc5c5db388ed17ee6465f4a9d90","urls":["bzz-raw://eb392a8ee9050e0af606897df63e3404e3829e8b688b580663892f9664195764","dweb:/ipfs/QmaXC8jqV8UrrAFkzXTEv2fJF56sy33HhLxAzaRZmUxuXD"],"license":"BUSL-1.1"},"src/contracts/hints/Hints.sol":{"keccak256":"0x8b565df1ae35993c097a9e642002782a8f451f6fd01809cad6bcd345bdf1b99c","urls":["bzz-raw://99a19adb01e350a92f534095b3078229df1f2f83077992d75d58d8684be45971","dweb:/ipfs/QmbmwcuswVbzvwHQFTtrJG86oV98GnfxqYTb8cV8u1acox"],"license":"BUSL-1.1"},"src/contracts/hints/VaultHints.sol":{"keccak256":"0xccb505b7159b769cc114d67b87c2de6b106557f667fc8f3780114baad5c3c442","urls":["bzz-raw://6d0c80a908fc16e96a8b5605a0bd53f9e89ad0ef0a738fbbae80ba4d3160749b","dweb:/ipfs/QmXo5UtWoR8YmunqcbBU8rQMm1nvmvjNPoXcVrDhh4pEwR"],"license":"BUSL-1.1"},"src/contracts/libraries/Checkpoints.sol":{"keccak256":"0xba90097c8bfe0a975499428b5f8ac5569483c7d92ccc28c12d70de416aae040c","urls":["bzz-raw://12f5d93ca94cd06d3147db68993165a58e17903ed53682560de61f3085ad4609","dweb:/ipfs/QmePiuAqvXprMLmFZkGZeGjvGPAvsEDHfCDv7BoQhXu9xE"],"license":"MIT"},"src/contracts/libraries/ERC4626Math.sol":{"keccak256":"0x8441160513c1cbeb1c3b9ee077bcc7e7ce20006b52a77c8dd39ff0ef89699939","urls":["bzz-raw://943f8cc3e26ddf649f465f40c909819f5c864717c4baa339e9e403b9374a4653","dweb:/ipfs/QmXPxi1sUDsrGprZdUgCzoPEosaZMv9ZhygWQ1vAi1phAB"],"license":"MIT"},"src/contracts/vault/Vault.sol":{"keccak256":"0x2ceff6ed3298c4cad144c99fcc79b51cb9397d6ebef00285b915848b476f8c2e","urls":["bzz-raw://11f2fb3581854f3ab6e82e8d4935d9eb510c903a13c3f022346c2956a58f5307","dweb:/ipfs/QmdUnoXoyYoG9SGWyQZCFyLDRUUX3eXyXetkRvw6jxqqBz"],"license":"BUSL-1.1"},"src/contracts/vault/VaultStorage.sol":{"keccak256":"0x57db25b127d77ea3472de53e3a4af3354399655b9268638b99ca5925fa364a56","urls":["bzz-raw://aa763d9a6ec508ae3abfb8228b72b9fd9525279e5135d4962e79ff059feb1173","dweb:/ipfs/QmcbDR6E9wyEpu6V2FkEC4hnWy47zXA9LSKJde6zSGd33Q"],"license":"BUSL-1.1"},"src/interfaces/common/IEntity.sol":{"keccak256":"0x8ef4b63d6da63489778ccd5f8d13ebdd527dd4b62730b2c616df5af7474d2d21","urls":["bzz-raw://5a8d69576a9219d85c50816a18ad53a4d53cfcb27ed38b8cccc808dc2734b71b","dweb:/ipfs/QmYVN3P4Q4REvBWJ97TbAcaxm3uyB2anV6NSGa6ZtSwcEv"],"license":"MIT"},"src/interfaces/common/IMigratableEntity.sol":{"keccak256":"0x8f5f2809f3afbe8ebfbb365dd7b57b4dd3b6f9943a6187eaf648d45895b8e3c4","urls":["bzz-raw://0ffe640537d539e7a4fde70d30d3e4c57f4ba9c2c25c450cea713aae38e8fd5c","dweb:/ipfs/QmSUTGzvdcn1R1KB7tLThMRtESsfPbeXDhhhKWGtntzBds"],"license":"MIT"},"src/interfaces/common/IRegistry.sol":{"keccak256":"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb","urls":["bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014","dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK"],"license":"MIT"},"src/interfaces/common/IStaticDelegateCallable.sol":{"keccak256":"0xa335d4e81b9071b7de66ef92b43ff20671d86516eb1be46fef29a3483cd3f5d5","urls":["bzz-raw://d464b9db863c14c05547d2b23352f2e9b7b784799cf09f6bbc4906a2a74e3516","dweb:/ipfs/QmUVWzFvJz7eEbDQKiFTTzwi7TEbjcs3VmwdM4kuptAKvi"],"license":"MIT"},"src/interfaces/delegator/IBaseDelegator.sol":{"keccak256":"0x96bb312f032e17accce3f8f80936d99468029d6b37c9ca74acdb4b026a0148ee","urls":["bzz-raw://2a66dcb5b7d1a6ef6a363431ea98ebd78bc4fdd3d7a134d9b542dc66e7d025c2","dweb:/ipfs/QmRhTPLd2ZAyRHmJUFUcWKs9b3if49QY17LYZuRqWmghw8"],"license":"MIT"},"src/interfaces/slasher/IBaseSlasher.sol":{"keccak256":"0x7c82528b445659c313ab77335c407b0b6efe5e79027187bb287f7bc74202b404","urls":["bzz-raw://0274c90aa5df1aa6bb470a6aab53992fb14fd7e5472c9430416505b29647d9cf","dweb:/ipfs/QmckbmJLDetPemVzCnnGcKYWAZV2BRFXGDsjiaec8jkHxx"],"license":"MIT"},"src/interfaces/vault/IVault.sol":{"keccak256":"0xffee01d383cd4e1a5530c614bf4360c1ef070c288abec9da1eb531b51bc07235","urls":["bzz-raw://04f0046cac285d8ec44ebbb1f79dc94fab4495767190cad8364fbc1fafaadfb9","dweb:/ipfs/QmUawAunwzXfCyShWfhKeThAgKtqe51hmrxvrXvM772M2R"],"license":"MIT"},"src/interfaces/vault/IVaultStorage.sol":{"keccak256":"0x592626f13754194f83047135de19229c49390bd59e34659b1bb38be71d973a22","urls":["bzz-raw://06a6a9dfddd05e580b32bebe2cff4f63ba26a653180676d58225dd30d9c89d3e","dweb:/ipfs/QmdgzBeY6Sxo8mGtyBxtv1tM1c2kU6J6zjeRd7vuXm4DU6"],"license":"MIT"}},"version":1},"id":90} \ No newline at end of file +{"abi":[{"type":"constructor","inputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"DEFAULT_ADMIN_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"DELEGATOR_FACTORY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"DEPOSITOR_WHITELIST_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"DEPOSIT_LIMIT_SET_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"DEPOSIT_WHITELIST_SET_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"FACTORY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"IS_DEPOSIT_LIMIT_SET_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"SLASHER_FACTORY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"activeBalanceOf","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"activeBalanceOfAt","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"timestamp","type":"uint48","internalType":"uint48"},{"name":"hints","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"activeBalanceOfHints","inputs":[{"name":"vault","type":"address","internalType":"address"},{"name":"account","type":"address","internalType":"address"},{"name":"timestamp","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"activeShares","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"activeSharesAt","inputs":[{"name":"timestamp","type":"uint48","internalType":"uint48"},{"name":"hint","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"activeSharesHint","inputs":[{"name":"vault","type":"address","internalType":"address"},{"name":"timestamp","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"activeSharesHintInternal","inputs":[{"name":"timestamp","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"exists","type":"bool","internalType":"bool"},{"name":"hint","type":"uint32","internalType":"uint32"}],"stateMutability":"view"},{"type":"function","name":"activeSharesOf","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"activeSharesOfAt","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"timestamp","type":"uint48","internalType":"uint48"},{"name":"hint","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"activeSharesOfHint","inputs":[{"name":"vault","type":"address","internalType":"address"},{"name":"account","type":"address","internalType":"address"},{"name":"timestamp","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"activeSharesOfHintInternal","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"timestamp","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"exists","type":"bool","internalType":"bool"},{"name":"hint","type":"uint32","internalType":"uint32"}],"stateMutability":"view"},{"type":"function","name":"activeStake","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"activeStakeAt","inputs":[{"name":"timestamp","type":"uint48","internalType":"uint48"},{"name":"hint","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"activeStakeHint","inputs":[{"name":"vault","type":"address","internalType":"address"},{"name":"timestamp","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"activeStakeHintInternal","inputs":[{"name":"timestamp","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"exists","type":"bool","internalType":"bool"},{"name":"hint","type":"uint32","internalType":"uint32"}],"stateMutability":"view"},{"type":"function","name":"burner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"claim","inputs":[{"name":"recipient","type":"address","internalType":"address"},{"name":"epoch","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"claimBatch","inputs":[{"name":"recipient","type":"address","internalType":"address"},{"name":"epochs","type":"uint256[]","internalType":"uint256[]"}],"outputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"collateral","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"currentEpoch","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"currentEpochStart","inputs":[],"outputs":[{"name":"","type":"uint48","internalType":"uint48"}],"stateMutability":"view"},{"type":"function","name":"delegator","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"deposit","inputs":[{"name":"onBehalfOf","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"depositedAmount","type":"uint256","internalType":"uint256"},{"name":"mintedShares","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"depositLimit","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"depositWhitelist","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"epochAt","inputs":[{"name":"timestamp","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"epochDuration","inputs":[],"outputs":[{"name":"","type":"uint48","internalType":"uint48"}],"stateMutability":"view"},{"type":"function","name":"epochDurationInit","inputs":[],"outputs":[{"name":"","type":"uint48","internalType":"uint48"}],"stateMutability":"view"},{"type":"function","name":"getRoleAdmin","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"grantRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"hasRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"initialize","inputs":[{"name":"initialVersion","type":"uint64","internalType":"uint64"},{"name":"owner_","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"isDelegatorInitialized","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isDepositLimit","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isDepositorWhitelisted","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"value","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isInitialized","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isSlasherInitialized","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isWithdrawalsClaimed","inputs":[{"name":"epoch","type":"uint256","internalType":"uint256"},{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"value","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"migrate","inputs":[{"name":"newVersion","type":"uint64","internalType":"uint64"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"nextEpochStart","inputs":[],"outputs":[{"name":"","type":"uint48","internalType":"uint48"}],"stateMutability":"view"},{"type":"function","name":"onSlash","inputs":[{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"captureTimestamp","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"slashedAmount","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"previousEpochStart","inputs":[],"outputs":[{"name":"","type":"uint48","internalType":"uint48"}],"stateMutability":"view"},{"type":"function","name":"redeem","inputs":[{"name":"claimer","type":"address","internalType":"address"},{"name":"shares","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"withdrawnAssets","type":"uint256","internalType":"uint256"},{"name":"mintedShares","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"renounceRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"callerConfirmation","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"revokeRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setDelegator","inputs":[{"name":"delegator_","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setDepositLimit","inputs":[{"name":"limit","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setDepositWhitelist","inputs":[{"name":"status","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setDepositorWhitelistStatus","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"status","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setIsDepositLimit","inputs":[{"name":"status","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setSlasher","inputs":[{"name":"slasher_","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"slashableBalanceOf","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"slasher","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"staticDelegateCall","inputs":[{"name":"target","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"totalStake","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"version","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"withdraw","inputs":[{"name":"claimer","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"burnedShares","type":"uint256","internalType":"uint256"},{"name":"mintedShares","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"withdrawalShares","inputs":[{"name":"epoch","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"withdrawalSharesOf","inputs":[{"name":"epoch","type":"uint256","internalType":"uint256"},{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"withdrawals","inputs":[{"name":"epoch","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"withdrawalsOf","inputs":[{"name":"epoch","type":"uint256","internalType":"uint256"},{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"event","name":"Claim","inputs":[{"name":"claimer","type":"address","indexed":true,"internalType":"address"},{"name":"recipient","type":"address","indexed":true,"internalType":"address"},{"name":"epoch","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"ClaimBatch","inputs":[{"name":"claimer","type":"address","indexed":true,"internalType":"address"},{"name":"recipient","type":"address","indexed":true,"internalType":"address"},{"name":"epochs","type":"uint256[]","indexed":false,"internalType":"uint256[]"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Deposit","inputs":[{"name":"depositor","type":"address","indexed":true,"internalType":"address"},{"name":"onBehalfOf","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"shares","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"OnSlash","inputs":[{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"captureTimestamp","type":"uint48","indexed":false,"internalType":"uint48"},{"name":"slashedAmount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"RoleAdminChanged","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"previousAdminRole","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"newAdminRole","type":"bytes32","indexed":true,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"RoleGranted","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"sender","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"RoleRevoked","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"sender","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"SetDelegator","inputs":[{"name":"delegator","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"SetDepositLimit","inputs":[{"name":"limit","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"SetDepositWhitelist","inputs":[{"name":"status","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"SetDepositorWhitelistStatus","inputs":[{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"status","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"SetIsDepositLimit","inputs":[{"name":"status","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"SetSlasher","inputs":[{"name":"slasher","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Withdraw","inputs":[{"name":"withdrawer","type":"address","indexed":true,"internalType":"address"},{"name":"claimer","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"burnedShares","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"mintedShares","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"error","name":"AccessControlBadConfirmation","inputs":[]},{"type":"error","name":"AccessControlUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"neededRole","type":"bytes32","internalType":"bytes32"}]},{"type":"error","name":"AddressEmptyCode","inputs":[{"name":"target","type":"address","internalType":"address"}]},{"type":"error","name":"AddressInsufficientBalance","inputs":[{"name":"account","type":"address","internalType":"address"}]},{"type":"error","name":"AlreadyClaimed","inputs":[]},{"type":"error","name":"AlreadyInitialized","inputs":[]},{"type":"error","name":"AlreadySet","inputs":[]},{"type":"error","name":"CheckpointUnorderedInsertion","inputs":[]},{"type":"error","name":"DelegatorAlreadyInitialized","inputs":[]},{"type":"error","name":"DepositLimitReached","inputs":[]},{"type":"error","name":"ExternalCall","inputs":[]},{"type":"error","name":"FailedInnerCall","inputs":[]},{"type":"error","name":"InsufficientClaim","inputs":[]},{"type":"error","name":"InsufficientDeposit","inputs":[]},{"type":"error","name":"InsufficientRedemption","inputs":[]},{"type":"error","name":"InsufficientWithdrawal","inputs":[]},{"type":"error","name":"InvalidAccount","inputs":[]},{"type":"error","name":"InvalidCaptureEpoch","inputs":[]},{"type":"error","name":"InvalidClaimer","inputs":[]},{"type":"error","name":"InvalidCollateral","inputs":[]},{"type":"error","name":"InvalidDelegator","inputs":[]},{"type":"error","name":"InvalidEpoch","inputs":[]},{"type":"error","name":"InvalidEpochDuration","inputs":[]},{"type":"error","name":"InvalidInitialization","inputs":[]},{"type":"error","name":"InvalidLengthEpochs","inputs":[]},{"type":"error","name":"InvalidOnBehalfOf","inputs":[]},{"type":"error","name":"InvalidRecipient","inputs":[]},{"type":"error","name":"InvalidSlasher","inputs":[]},{"type":"error","name":"InvalidTimestamp","inputs":[]},{"type":"error","name":"MathOverflowedMulDiv","inputs":[]},{"type":"error","name":"MissingRoles","inputs":[]},{"type":"error","name":"NoPreviousEpoch","inputs":[]},{"type":"error","name":"NotDelegator","inputs":[]},{"type":"error","name":"NotFactory","inputs":[]},{"type":"error","name":"NotInitialized","inputs":[]},{"type":"error","name":"NotInitializing","inputs":[]},{"type":"error","name":"NotSlasher","inputs":[]},{"type":"error","name":"NotWhitelistedDepositor","inputs":[]},{"type":"error","name":"OwnableInvalidOwner","inputs":[{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"OwnableUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"}]},{"type":"error","name":"ReentrancyGuardReentrantCall","inputs":[]},{"type":"error","name":"SafeCastOverflowedUintDowncast","inputs":[{"name":"bits","type":"uint8","internalType":"uint8"},{"name":"value","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"SafeERC20FailedOperation","inputs":[{"name":"token","type":"address","internalType":"address"}]},{"type":"error","name":"SlasherAlreadyInitialized","inputs":[]},{"type":"error","name":"TooMuchRedeem","inputs":[]},{"type":"error","name":"TooMuchWithdraw","inputs":[]}],"bytecode":{"object":"0x610100806040523461011057306080525f60a0525f60c0527ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a009081549060ff8260401c1661010157506001600160401b036002600160401b0319828216016100bc575b5f60e05260405161521a908161011582396080518181816110590152818161133101526123a7015260a05181818161137d01526118cc015260c051818181611a350152611ee5015260e0518181816107e00152610a2e0152f35b6001600160401b031990911681179091556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a15f8080610062565b63f92ee8a960e01b8152600490fd5b5f80fdfe60806040526004361015610011575f80fd5b5f3560e01c806301ffc9a7146104a45780631415519b1461049f5780631b66c9e11461049a5780631e9a695014610495578063248a9ca31461049057806327810b6e1461048b578063281f5752146104865780632abe3048146104815780632d73c69c1461047c5780632dd31000146104775780632f2ff15d1461047257806336568abe1461046d578063392e53cd146104685780634105a7dd14610463578063463616711461045e57806347e7ef241461045957806348d3b775146104545780634ff0876a1461044f57806350861adc1461044a57806350f22068146104455780635346e34f1461044057806354fd4d501461043b57806355a2c6721461043657806357ec83cc1461043157806359f769a91461042c5780635cc070761461042757806361a8c8c41461042257806364b03fdc1461041d57806367567add146104185780636da3e06d146104135780636ec1e3f81461040e578063715018a6146104095780637278e31c1461040457806373790ab3146103ff57806376671808146103fa578063794b15b7146103f55780637953b33b146103f05780637c04c80a146103eb578063810da75d146103e65780638326056f146103e157806383cd9cc3146103dc57806387df0788146103d75780638b0e9f3f146103d25780638da5cb5b146103cd57806391d14854146103c85780639d66201b146103c35780639f86fd85146103be578063a1b12202146103b9578063a217fddf146103b4578063a21a1df9146103af578063a2861466146103aa578063a3b54172146103a5578063a5d03223146103a0578063aabc24961461039b578063aad3ec9614610396578063afba70ad14610391578063b13442711461038c578063bd49c35f14610387578063bdc8144b14610382578063bfefcd7b1461037d578063c31e8dd714610378578063ce9b793014610373578063d547741f1461036e578063d8dfeb4514610369578063db38871514610364578063de4997161461035f578063eb5562381461035a578063ecf7085814610355578063efb559d614610350578063f2fde38b1461034b578063f3fef3a314610346578063f5e7ee0f146103415763f9e1bf6c1461033c575f80fd5b61264c565b612622565b61257c565b61254f565b612400565b6123e3565b61238f565b612375565b612309565b6122de565b612292565b61226a565b612200565b6121e6565b612108565b6120ee565b6120c6565b61209c565b611fdb565b611e24565b611dde565b611d91565b611c9e565b611c64565b611c4a565b611c26565b611b92565b611b58565b611afa565b611ac6565b611a64565b611a20565b611867565b61184d565b611834565b6117ce565b6117a7565b611767565b61174d565b61170c565b611438565b6113d1565b6113ac565b611368565b611312565b6112e4565b611248565b61121e565b6111f7565b6110bf565b61103a565b611008565b610f73565b610f5a565b610efd565b610edd565b610ebc565b610bfe565b610bd6565b610b3b565b610af6565b610aab565b610a5d565b610a19565b6109a5565b61079b565b6106cd565b6106a5565b61066c565b610583565b610538565b6104fe565b346104fa5760203660031901126104fa5760043563ffffffff60e01b81168091036104fa57602090637965db0b60e01b81149081156104e9575b506040519015158152f35b6301ffc9a760e01b1490505f6104de565b5f80fd5b346104fa575f3660031901126104fa5760206040517fc6aaadd7371d5e8f9ed6849dd66a66573a3ba37167d03f4352c9ba5693678fac8152f35b346104fa575f3660031901126104fa5760206040517f9c56d972d63cbb4195b3c1484691dfc220fa96a4c47e7b6613bd82a022029e068152f35b6001600160a01b038116036104fa57565b346104fa5760403660031901126104fa576004356105a081610572565b602435906105ac613080565b6001600160a01b0381161561065b57335f908152600e602052604090206105d790614498565b614498565b8211610649576105f76105e86143ab565b6105f0614424565b90846144db565b9182156106345782610608926130af565b9061061f60015f805160206151a583398151915255565b604080519182526020820192909252f35b0390f35b60405160016245ddc760e11b03198152600490fd5b604051632418411f60e11b8152600490fd5b6040516208978560e71b8152600490fd5b346104fa5760203660031901126104fa576004355f525f805160206151858339815191526020526020600160405f200154604051908152f35b346104fa575f3660031901126104fa576001546040516001600160a01b039091168152602090f35b346104fa575f3660031901126104fa576106e5612c66565b80156107465760015465ffffffffffff8160a01c16915f198101908111610741576107139160d01c90612695565b81018091116107415761072861063091613229565b60405165ffffffffffff90911681529081906020820190565b612666565b604051639fa56a5b60e01b8152600490fd5b600435906001600160401b03821682036104fa57565b9181601f840112156104fa578235916001600160401b0383116104fa57602083818601950101116104fa57565b346104fa5760403660031901126104fa576107b4610758565b6001600160401b036024358181116104fa576107d490369060040161076e565b50506107de613080565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316330361085a575f805160206151c5833981519152549060ff8260401c1692831561084a575b505050610838575f80fd5b60405163f92ee8a960e01b8152600490fd5b81169116101590505f808061082d565b604051631966391b60e11b8152600490fd5b65ffffffffffff8116036104fa57565b634e487b7160e01b5f52604160045260245ffd5b606081019081106001600160401b038211176108ab57604052565b61087c565b604081019081106001600160401b038211176108ab57604052565b608081019081106001600160401b038211176108ab57604052565b90601f801991011681019081106001600160401b038211176108ab57604052565b6040519061016082018281106001600160401b038211176108ab57604052565b60405190610934826108b0565b565b6001600160401b0381116108ab57601f01601f191660200190565b92919261095d82610936565b9161096b60405193846108e6565b8294818452818301116104fa578281602093845f960137010152565b9080601f830112156104fa578160206109a293359101610951565b90565b346104fa5760603660031901126104fa576004356109c281610572565b602435906109cf8261086c565b604435906001600160401b0382116104fa576020926109f5610a11933690600401610987565b6001600160a01b039092165f908152600e85526040902061340e565b604051908152f35b346104fa575f3660031901126104fa576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346104fa5760403660031901126104fa57610aa9602435600435610a8082610572565b805f525f80516020615185833981519152602052610aa4600160405f2001546135e5565b6138e5565b005b346104fa5760403660031901126104fa57602435610ac881610572565b336001600160a01b03821603610ae457610aa99060043561391b565b60405163334bd91960e11b8152600490fd5b346104fa575f3660031901126104fa5760ff60025460a01c1680610b22575b6020906040519015158152f35b5060035460a01c60ff16610b15565b801515036104fa57565b346104fa5760203660031901126104fa57600435610b5881610b31565b610b60613080565b610b686134da565b5f54901515908160ff8216151514610bc45760ff191660ff8216175f556040519081527f3e12b7b36c75ac9609a3f58609b331210428e1a85909132638955ba0301eec3390602090a160015f805160206151a583398151915255005b60405163a741a04560e01b8152600490fd5b346104fa575f3660031901126104fa57602065ffffffffffff60015460a01c16604051908152f35b346104fa576040806003193601126104fa576004803591610c1e83610572565b610c26613080565b6001600160a01b0391838316908115610eae575f5460ff811680610e95575b610e865783516370a0823160e01b808252308483019081529096602093909160109190911c82169084908490819083010381845afa928315610e5e575f93610e63575b50610c9a9060243590309033906139ad565b5f5486519788523085890190815290979184918391908290819060200103918b60101c165afa908115610e5e57610cd9935f92610e31575b5050612688565b938415610e225760081c60ff1680610e0d575b610dff57509061063091610d9d610d016143ab565b95610d4a610d0d614424565b610d35610d1b8a838b6144db565b99610d2f8a610d2942613229565b926126b6565b90613b01565b5050610d4489610d2942613229565b90613be1565b50506001600160a01b0381165f908152600e6020526040902090610d9788610d926105d2610d7742613229565b6001600160a01b039095165f908152600e6020526040902090565b6126b6565b91613cbd565b505081518481526020810186905233907fdcbc1c05240f31ff3ad067ef1ee35ce4997762752e3a095284754544f4c709d790604090a3610de960015f805160206151a583398151915255565b5191825260208201929092529081906040820190565b8251632484557960e01b8152fd5b50610e1a84610d926143ab565b815410610cec565b50825163070f6eed60e11b8152fd5b610e509250803d10610e57575b610e4881836108e6565b8101906126e4565b5f80610cd2565b503d610e3e565b6126f3565b610c9a919350610e7f90853d8711610e5757610e4881836108e6565b9290610c88565b5082516304f63b8560e01b8152fd5b50335f9081526005602052604090205460ff1615610c45565b8251630d534ce360e11b8152fd5b346104fa575f3660031901126104fa57602060ff5f54166040519015158152f35b346104fa575f3660031901126104fa57602060015460d01c604051908152f35b346104fa575f3660031901126104fa57602060ff60025460a01c166040519015158152f35b9060406003198301126104fa57600435610f3b8161086c565b91602435906001600160401b0382116104fa576109a291600401610987565b346104fa576020610a11610f6d36610f22565b90613284565b346104fa5760203660031901126104fa57600435610f9081610b31565b610f98613080565b610fa0613537565b5f54901515908160ff8260081c16151514610bc45761ff001916600882901b61ff0016175f556040519081527ffa7a25a0b611d4ba3c0ea990e90dc23d484a5dd7a1be4733fef2946ba74530c690602090a1610aa960015f805160206151a583398151915255565b346104fa575f3660031901126104fa5760206001600160401b035f805160206151c58339815191525416604051908152f35b346104fa5760203660031901126104fa576004356110578161086c565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633036110ad5761109090613d9f565b60408051941515855263ffffffff91909116602085015292915050f35b604051637ca475e560e11b8152600490fd5b346104fa5760603660031901126104fa576110d8610758565b6024356110e481610572565b6001600160401b03916044358381116104fa5761110590369060040161076e565b5f805160206151c58339815191529491855494838616806111e65760ff8760401c169081156111d9575b50610838577fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2966111d49661119c958716906001600160401b0319161790556111975f805160206151c5833981519152600160401b68ff000000000000000019825416179055565b6126fe565b5f805160206151c5833981519152805468ff0000000000000000191690556040516001600160401b0390911681529081906020820190565b0390a1005b905084861611155f61112f565b60405162dc149f60e41b8152600490fd5b346104fa5760203660031901126104fa576020610a1160043561121981610572565b612b1e565b346104fa5760203660031901126104fa576004355f526006602052602060405f2054604051908152f35b346104fa575f3660031901126104fa5760015465ffffffffffff61127e818360a01c1692611274612c66565b9060d01c90612695565b820180921161074157611292602092613229565b60405191168152f35b60409060031901126104fa576004356112b381610572565b906024356109a28161086c565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b346104fa576106306112fe6112f83661129b565b90612bac565b6040519182916020835260208301906112c0565b346104fa5760203660031901126104fa5760043561132f8161086c565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633036110ad5761109090613ea4565b346104fa575f3660031901126104fa576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346104fa575f3660031901126104fa57602060ff60035460a01c166040519015158152f35b346104fa575f3660031901126104fa576113e96141eb565b5f8051602061512583398151915280546001600160a01b031981169091555f906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b346104fa5760403660031901126104fa576004356024356114588161086c565b611460613080565b60035461147d906001600160a01b03165b6001600160a01b031690565b33036116fa5761148b612c66565b9061149581612c9a565b90821515806116e9575b80156116e0575b6116ce57610630937ff9d090c096f71cd1659861a9ce5b6f384bceb4e2fa4e4a19edf6489a9b8d56c7926114d86143ab565b946114f36114e5826126a8565b5f52600660205260405f2090565b54908281036115e7575061150781876126b6565b6115118185614223565b9687806115a0575b50505050505b8361156c575b6040805191825265ffffffffffff929092166020820152908101839052606090a161155c60015f805160206151a583398151915255565b6040519081529081906020820190565b5f5461159b9085906115899060101c6001600160a01b0316611471565b6001546001600160a01b0316906142d1565b611525565b6115dc93610cd283610d2f6115c66115bf6114e5986115d6988861423f565b8096612688565b946115d042613229565b92612688565b926126a8565b555f80808087611519565b91506115fb825f52600660205260405f2090565b549061160b81610d92848a6126b6565b906116168286614223565b9788611627575b505050505061151f565b61169c938361164f9361165c8c61165761164561168d99888461423f565b978895858461423f565b948592612688565b612688565b938484106116a7575b610cd290610d2f61167b9596976115d042613229565b6116876114e5876126a8565b55612688565b915f52600660205260405f2090565b555f8080808061161d565b916116c3610cd2916116bd8661167b9798612688565b906126b6565b859450929050611665565b604051635e18d2a560e01b8152600490fd5b508282116114a6565b506116f38361267a565b821061149f565b60405163dabc4ad960e01b8152600490fd5b346104fa575f3660031901126104fa5760015465ffffffffffff808260a01c1691611735612c66565b600181018091116107415761127e9160d01c90612695565b346104fa575f3660031901126104fa576020610a11612c66565b346104fa5760203660031901126104fa5760043561178481610572565b60018060a01b03165f526005602052602060ff60405f2054166040519015158152f35b346104fa5760203660031901126104fa576020610a116004356117c98161086c565b612c9a565b346104fa5760403660031901126104fa576004356117eb81610572565b6024356001600160401b038082116104fa57366023830112156104fa5781600401359081116104fa573660248260051b840101116104fa5761063092602461155c930190612cd5565b346104fa576020610a1161184736610f22565b90613359565b346104fa576106306112fe6118613661129b565b90612e03565b346104fa576020806003193601126104fa57600480359061188782610572565b61188f613080565b60025460a01c60ff16611a11576040516302910f8b60e31b81526001600160a01b03838116838301908152909491908290829081906020010381887f0000000000000000000000000000000000000000000000000000000000000000165afa908115610e5e575f916119e4575b50156119d45760405163fbfa77cf60e01b8152838516949082818581895afa928315610e5e575f936119a5575b5050309116036119965750600280546001600160a01b03929092166001600160a81b031990921691909117600160a01b1790557fdb2160616f776a37b24808115554e79439bf26cccbbd4438190cc6d28e80ecd15f80a2610aa960015f805160206151a583398151915255565b60405163b9f0f17160e01b8152fd5b6119c5929350803d106119cd575b6119bd81836108e6565b810190612e5a565b905f80611929565b503d6119b3565b506040516324e5af8d60e21b8152fd5b611a049150823d8411611a0a575b6119fc81836108e6565b810190612e3a565b5f6118fc565b503d6119f2565b604051631380833b60e01b8152fd5b346104fa575f3660031901126104fa576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346104fa575f3660031901126104fa57611a7c612c66565b611a846143ab565b90805f52600660205260405f205482018092116107415760018101809111610741575f52600660205260405f2054810180911161074157602090604051908152f35b346104fa575f3660031901126104fa575f80516020615125833981519152546040516001600160a01b039091168152602090f35b346104fa5760403660031901126104fa57602060ff611b4c602435611b1e81610572565b6004355f525f80516020615185833981519152845260405f209060018060a01b03165f5260205260405f2090565b54166040519015158152f35b346104fa5760203660031901126104fa57600435611b7581610572565b60018060a01b03165f52600e6020526020610a1160405f20614498565b346104fa5760403660031901126104fa57600435611baf81610572565b6024356001600160401b0381116104fa575f91611bd18392369060040161076e565b90816040519283928337810184815203915af4611c1e611bef612e6f565b91611c106040519384921515602084015260408084015260608301906112c0565b03601f1981018352826108e6565b805190602001fd5b346104fa575f3660031901126104fa57602060ff5f5460081c166040519015158152f35b346104fa575f3660031901126104fa5760206040515f8152f35b346104fa575f3660031901126104fa5760206040517f4a634bc14d77baf979756509ef4298c6f6318af357828612545267ee2eb792338152f35b346104fa5760403660031901126104fa57600435611cbb81610572565b602435611cc781610b31565b611ccf613080565b611cd761358e565b6001600160a01b038216918215611d7f575f8381526005602052604090205460ff16151582151514610bc4576001600160a01b03165f9081526005602052604090207ff991b1ecfb5115cbb36a2b2e2240c058406d2acc2fcc6e9e2dc99d845ff70a6291611d6691611d54908260ff801983541691151516179055565b60405190151581529081906020820190565b0390a2610aa960015f805160206151a583398151915255565b604051630da30f6560e31b8152600490fd5b346104fa5760403660031901126104fa576020611dd5602435611db381610572565b6004355f526008835260405f209060018060a01b03165f5260205260405f2090565b54604051908152f35b346104fa5760403660031901126104fa57602060ff611b4c602435611e0281610572565b6004355f526009845260405f209060018060a01b03165f5260205260405f2090565b346104fa576020806003193601126104fa576004803590611e4482610572565b611e4c613080565b60035460a01c60ff16611fcc576001600160a01b03828116939084611eba575b6003805460ff60a01b1916600160a01b179055847fe7e4c932e03abddfe20f83af42c33627e816115c7ec2b168441f65dc14bfc3ba5f80a2610aa960015f805160206151a583398151915255565b6040516302910f8b60e31b81526001600160a01b0385168482019081528390829081906020010381857f0000000000000000000000000000000000000000000000000000000000000000165afa908115610e5e575f91611faf575b5015611f9e5760405163fbfa77cf60e01b815282818581895afa928315610e5e575f93611f7f575b505030911603611f705750600380546001600160a01b0319166001600160a01b039092169190911790555f808080611e6c565b604051633f3e089160e21b8152fd5b611f96929350803d106119cd576119bd81836108e6565b905f80611f3d565b60405163dabc4ad960e01b81528390fd5b611fc69150833d8511611a0a576119fc81836108e6565b5f611f15565b60405163703fe2e560e01b8152fd5b346104fa5760403660031901126104fa57600435611ff881610572565b60243590612004613080565b6001600160a01b039181831690811561208a57612035610630946120278361430f565b9485915f5460101c166142d1565b604080519182526020820184905233917f865ca08d59f5cb456e85cd2f7ef63664ea4f73327414e9d8152c4158b0e946459190a360015f805160206151a5833981519152556040519081529081906020820190565b604051634e46966960e11b8152600490fd5b346104fa5760203660031901126104fa576004355f526007602052602060405f2054604051908152f35b346104fa575f3660031901126104fa576003546040516001600160a01b039091168152602090f35b346104fa575f3660031901126104fa576020610a116143ab565b346104fa5760203660031901126104fa57600435612124613080565b335f9081527f2d4ccbfe9f7672a6f2537c1e5bce6adacb73706879154bbab6ce096012d6721660205260409020547f4a634bc14d77baf979756509ef4298c6f6318af357828612545267ee2eb792339060ff16156121c857508060045414610bc4576020817f854df3eb95564502c8bc871ebdd15310ee26270f955f6c6bd8cea68e75045bc092600455604051908152a160015f805160206151a583398151915255005b6044906040519063e2517d3f60e01b82523360048301526024820152fd5b346104fa575f3660031901126104fa576020610a11614424565b346104fa5760203660031901126104fa5760043561221d81610572565b612225612c66565b61222e82612b1e565b916122398183612f59565b830180931161074157600182018092116107415761225691612f59565b810180911161074157602090604051908152f35b346104fa575f3660031901126104fa576002546040516001600160a01b039091168152602090f35b346104fa5760403660031901126104fa57610aa96024356004356122b582610572565b805f525f805160206151858339815191526020526122d9600160405f2001546135e5565b61391b565b346104fa575f3660031901126104fa575f5460405160109190911c6001600160a01b03168152602090f35b346104fa575f3660031901126104fa5760206040517fbae4ee3de6c709ff9a002e774c5b78cb381560b219213c88ae0f1e207c03c0238152f35b60609060031901126104fa5760043561235b81610572565b9060243561236881610572565b906044356109a28161086c565b346104fa576106306112fe61238936612343565b91612e9e565b346104fa5761239d3661129b565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811633036110ad5761109092165f52600e60205260405f20613f6a565b346104fa575f3660031901126104fa576020600454604051908152f35b346104fa5760603660031901126104fa5760043561241d81610572565b6024359061242a8261086c565b6001600160401b03916044358381116104fa5761244b90369060040161076e565b9092604093845161245b81610890565b606081526060602082015260608682015292806124ba575b610630866124ab87876124a561248c89848451916126c3565b928561249c602085015183613359565b93015190613284565b916144db565b90519081529081906020820190565b81019392506020818503126104fa578035908682116104fa5701926060848203126104fa578451956124eb87610890565b84358181116104fa5782612500918701610987565b875260208501358181116104fa578261251a918701610987565b6020880152858501359081116104fa57610630966125436124a59361248c936124ab9801610987565b87820152939450612473565b346104fa5760203660031901126104fa57610aa960043561256f81610572565b6125776141eb565b612ee8565b346104fa5760403660031901126104fa5760043561259981610572565b6024356125a4613080565b6001600160a01b0382161561065b578015612610576125d36125c4614424565b6125cc6143ab565b90836148f9565b335f908152600e602052604090209092906125ed90614498565b83116125fe576106089183916130af565b6040516321727a3760e11b8152600490fd5b604051636c6c627d60e11b8152600490fd5b346104fa5760403660031901126104fa576020610a1160243561264481610572565b600435612f59565b346104fa576106306112fe61266036612343565b91612fb7565b634e487b7160e01b5f52601160045260245ffd5b5f1981019190821161074157565b9190820391821161074157565b8181029291811591840414171561074157565b906001820180921161074157565b9190820180921161074157565b6001600160a01b03165f908152600e602052604090206109a292919061340e565b908160209103126104fa575190565b6040513d5f823e3d90fd5b91612750916127419161270f614c66565b612717614c66565b60015f805160206151a5833981519152556001600160a01b0394808616612b04575b503691610951565b60208082518301019101614054565b805182166001600160a01b031615612af257604080820165ffffffffffff61277e825165ffffffffffff1690565b1615612ae15760c08301805190929061279f906001600160a01b0316611471565b15612992575b50916128de6101409261287d61285861293c966127f36127cb875160018060a01b031690565b5f805462010000600160b01b03191660109290921b62010000600160b01b0316919091179055565b6020860151600180546001600160a01b0319166001600160a01b0390921691909117905561284c61282342613229565b6001805465ffffffffffff60a01b191660a09290921b65ffffffffffff60a01b16919091179055565b5165ffffffffffff1690565b600180546001600160d01b031660d09290921b6001600160d01b031916919091179055565b61289d61288d6060850151151590565b60ff80195f541691151516175f55565b6128c46128ad6080850151151590565b61ff005f5491151560081b169061ff001916175f55565b6128d160a0840151600455565b516001600160a01b031690565b848116612982575b5060e08101516001600160a01b0316848116612972575b506101008101516001600160a01b0316848116612962575b506101208101516001600160a01b0316848116612952575b5001516001600160a01b031690565b9081166129465750565b61294f90613876565b50565b61295b90613807565b505f61292d565b61296b90613798565b505f612915565b61297b906136c2565b505f6128fd565b61298b90613611565b505f6128e6565b60e08401516129a9906001600160a01b0316611471565b15612a7e575b6101208401516129c7906001600160a01b0316611471565b6127a557608084015115612a345760a08401511580612a15575b612a055750916128de6101409261287d61285861293c965b949650505092506127a5565b5163183c854560e21b8152600490fd5b50610140840151612a2e906001600160a01b0316611471565b156129e1565b60a084015115801590612a5e575b612a055750916128de6101409261287d61285861293c966129f9565b50610140840151612a77906001600160a01b0316611471565b1515612a42565b606084015115612ab457610100840151612aa0906001600160a01b0316611471565b6129af575163183c854560e21b8152600490fd5b610100840151612acc906001600160a01b0316611471565b156129af575163183c854560e21b8152600490fd5b81516368f5f8f160e11b8152600490fd5b6040516368f7a67560e11b8152600490fd5b612b1890612b10614c66565b612577614c66565b5f612739565b6001600160a01b03165f908152600e60205260409020612b3d90614498565b612b456143ab565b612b4d614424565b90600181018091116107415760018201809211610741576109a29261423f565b519061093482610b31565b519063ffffffff821682036104fa57565b91908260409103126104fa576109a260208351612ba581610b31565b9301612b78565b9190612be8612bf79160609465ffffffffffff604051926367567add60e01b602085015216602483015260248252612be382610890565b61411d565b60208082518301019101612b89565b90612bff5750565b90915063ffffffff60405191166020820152602081526109a2816108b0565b65ffffffffffff918216908216039190821161074157565b634e487b7160e01b5f52601260045260245ffd5b9065ffffffffffff809116918215612c6157160490565b612c36565b612c6f42613229565b612c96600154612c8c65ffffffffffff93848360a01c1690612c1e565b9060d01c90612c4a565b1690565b6001549065ffffffffffff91828160a01c16918284821610612cc357612c9692612c8c91612c1e565b60405163b7d0949760e01b8152600490fd5b90612cde613080565b5f926001600160a01b03831692831561208a578115612d96575f5b828110612d7457505f547f326b6aff1cd2fb1c8234de4f9dcfb9047c5c36eb9ef2eb34af5121e969a75d279286929091612d49918491612d449060101c6001600160a01b0316611471565b6142d1565b612d5a604051928392339684612dd1565b0390a39061093460015f805160206151a583398151915255565b94612d8f6001916116bd612d89898789612dbc565b3561430f565b9501612cf9565b60405163edf3b93360e01b8152600490fd5b634e487b7160e01b5f52603260045260245ffd5b9190811015612dcc5760051b0190565b612da8565b604080825281018390529392916001600160fb1b0381116104fa5760209160609160051b809183880137850101930152565b9190612be8612bf79160609465ffffffffffff60405192632ad1633960e11b602085015216602483015260248252612be382610890565b908160209103126104fa57516109a281610b31565b519061093482610572565b908160209103126104fa57516109a281610572565b3d15612e99573d90612e8082610936565b91612e8e60405193846108e6565b82523d5f602084013e565b606090565b604051631d6aac4760e31b60208201526001600160a01b03909216602483015265ffffffffffff909216604480830191909152815260609291612bf791612be891612be3826108cb565b6001600160a01b03908116908115612f41575f8051602061512583398151915280546001600160a01b031981168417909155167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3565b604051631e4fbdf760e01b81525f6004820152602490fd5b90612f7f90825f52600860205260405f209060018060a01b03165f5260205260405f2090565b54905f52600660205260405f2054600760205260405f205490600181018091116107415760018201809211610741576109a29261423f565b92919092612fdc612fcb8360609684612e9e565b92612fd68184612bac565b92612e03565b90825115801590613076575b801561306c575b612ff857505050565b6130459394506109a29291611c10916040519361301485610890565b8452602084019081526040840191825261305b604051968795602080880152516060604088015260a08701906112c0565b915191603f1992838783030160608801526112c0565b9151908483030160808501526112c0565b5081511515612fef565b5080511515612fe8565b5f805160206151a5833981519152600281541461309d5760029055565b604051633ee5aeb560e01b8152600490fd5b335f908152600e60205260409020939291906130ca42613229565b335f908152600e602052604090206130e190614498565b918483039283116107415761311c7febff2602b3f468259e1e99f613fed6691f3a6526effe6ef3e768ba7ae7a36c4f9385936131a799613cbd565b505061313661312a42613229565b610d4487611657614424565b505061315061314442613229565b610d2f846116576143ab565b50506131f5816131e0613169613164612c66565b6126a8565b6131bf61317e825f52600660205260405f2090565b54613191835f52600760205260405f2090565b5461319d82828b6144db565b9d8e998a936126b6565b6131b9855f52600660205260405f2090565b556126b6565b6131d1825f52600760205260405f2090565b555f52600860205260405f2090565b9060018060a01b03165f5260205260405f2090565b6132008382546126b6565b9055604080519485526020850195909552938301526001600160a01b03909216913391606090a3565b65ffffffffffff9081811161323c571690565b604490604051906306dfcc6560e41b8252603060048301526024820152fd5b908160209103126104fa576109a290612b78565b90600163ffffffff8093160191821161074157565b9080511561334f578060208061329f9351830101910161325b565b6132a881614720565b906132b9825165ffffffffffff1690565b9065ffffffffffff808516921682811461334357821191826132ef575b50506132e657506109a2906144fc565b60209150015190565b9091506132fd600a5461267a565b63ffffffff831614918215613316575b50505f806132d6565b61333b91925061284c61332b6133309261326f565b614720565b65ffffffffffff1690565b115f8061330d565b50505060209150015190565b506109a2906144fc565b9080511561340457806020806133749351830101910161325b565b61337d816147a5565b9061338e825165ffffffffffff1690565b9065ffffffffffff808516921682811461334357821191826133bb575b50506132e657506109a2906145ad565b9091506133c9600c5461267a565b63ffffffff8316149182156133e2575b50505f806133ab565b6133fc91925061284c6133f76133309261326f565b6147a5565b115f806133d9565b506109a2906145ad565b918051156134d057806020806134299351830101910161325b565b916134348382614820565b92613445845165ffffffffffff1690565b9065ffffffffffff80851692168281146134c4578211918261347b575b5050613472576109a29250614657565b50506020015190565b909150613488835461267a565b63ffffffff8316149182156134a1575b50505f80613462565b6134bc91925061284c6134b66133309261326f565b85614820565b115f80613498565b50505050506020015190565b506109a291614657565b335f9081527f03b26b53c87faa1058f30bb5d2fee64f717719a0d9b7e4f4df027aa5e9b6ed69602052604090207fbae4ee3de6c709ff9a002e774c5b78cb381560b219213c88ae0f1e207c03c0239060ff905b5416156121c85750565b335f9081527fe41986b390c4ce6791b87f7423b5fab7a81a0e6d89660b6264f697d008b2243a602052604090207fc6aaadd7371d5e8f9ed6849dd66a66573a3ba37167d03f4352c9ba5693678fac9060ff9061352d565b335f9081527f0287ab4cb376ea253d7b2ce0c2cbf458f7deae9458470d74afdfbbee484e9540602052604090207f9c56d972d63cbb4195b3c1484691dfc220fa96a4c47e7b6613bd82a022029e069060ff9061352d565b5f8181525f8051602061518583398151915260209081526040808320338452909152902060ff9061352d565b6001600160a01b0381165f9081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d60205260409020545f805160206151858339815191529060ff166136bc575f808052602091825260408082206001600160a01b038516835290925220805460ff1916600117905533906001600160a01b03165f7f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d8180a4600190565b50505f90565b6001600160a01b0381165f9081527f03b26b53c87faa1058f30bb5d2fee64f717719a0d9b7e4f4df027aa5e9b6ed69602052604090207fbae4ee3de6c709ff9a002e774c5b78cb381560b219213c88ae0f1e207c03c023905f805160206151858339815191529060ff905b5416613791575f828152602091825260408082206001600160a01b038616835290925220805460ff1916600117905533916001600160a01b0316907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d5f80a4600190565b5050505f90565b6001600160a01b0381165f9081527f0287ab4cb376ea253d7b2ce0c2cbf458f7deae9458470d74afdfbbee484e9540602052604090207f9c56d972d63cbb4195b3c1484691dfc220fa96a4c47e7b6613bd82a022029e06905f805160206151858339815191529060ff9061372d565b6001600160a01b0381165f9081527fe41986b390c4ce6791b87f7423b5fab7a81a0e6d89660b6264f697d008b2243a602052604090207fc6aaadd7371d5e8f9ed6849dd66a66573a3ba37167d03f4352c9ba5693678fac905f805160206151858339815191529060ff9061372d565b6001600160a01b0381165f9081527f2d4ccbfe9f7672a6f2537c1e5bce6adacb73706879154bbab6ce096012d67216602052604090207f4a634bc14d77baf979756509ef4298c6f6318af357828612545267ee2eb79233905f805160206151858339815191529060ff9061372d565b5f8181525f80516020615185833981519152602081815260408084206001600160a01b038716855290915290912060ff9061372d565b5f8181525f80516020615185833981519152602081815260408084206001600160a01b03871685529091529091205460ff1615613791575f828152602091825260408082206001600160a01b038616835290925220805460ff1916905533916001600160a01b0316907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b5f80a4600190565b6040516323b872dd60e01b60208201526001600160a01b03928316602482015292909116604483015260648083019390935291815260a08101918183106001600160401b038411176108ab5761093492604052614888565b600b54811015612dcc57600b5f525f8051602061516583398151915201905f90565b600d54811015612dcc57600d5f525f8051602061514583398151915201905f90565b8054821015612dcc575f5260205f2001905f90565b600d54600160401b8110156108ab576001810180600d55811015612dcc57600d5f525f805160206151458339815191520155565b600b54600160401b8110156108ab576001810180600b55811015612dcc57600b5f525f805160206151658339815191520155565b90815491600160401b8310156108ab5782613ae991600161093495018155613a49565b90919082549060031b91821b915f19901b1916179055565b919091600d9081548015613bac575b50613b19614939565b50929091815492613b286143ab565b9481613b97575b5015613b7457505f1982018281116107415781541115612dcc575f527fd7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb4018390559190565b613b88926001600160d01b03169150614d9d565b5050613b9383613a5e565b9190565b65ffffffffffff83811691161490505f613b2f565b600160401b8110156108ab5760018101808455811015612dcc575f908382525f8051602061514583398151915201555f613b10565b919091600b9081548015613c88575b50613bf96149a4565b50929091815492613c08614424565b9481613c73575b5015613c5457505f1982018281116107415781541115612dcc575f527f0175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db8018390559190565b613c68926001600160d01b03169150614e98565b5050613b9383613a92565b65ffffffffffff83811691161490505f613c0f565b600160401b8110156108ab5760018101808455811015612dcc575f908382525f8051602061516583398151915201555f613bf0565b90929192600182019081548015613d4b575b5084613cda846149ee565b50949092845493613cea83614498565b9681613d36575b5015613d13575050505f19810190811161074157613ae98591613b9393613a49565b613b93949293613d2f926001600160d01b039091169190614f42565b5050613ac6565b65ffffffffffff83811691161490505f613cf1565b600160401b8110156108ab57806001613d679201845583613a49565b8154905f199060031b1b191690555f613ccf565b90604051613d88816108b0565b915465ffffffffffff8116835260301c6020830152565b600a54905f829160058411613e4a575b613db99350614b55565b8015613e3f57613de9613de4613dce8361267a565b600a5f525f805160206151058339815191520190565b613d7b565b91613e38613e2f613e29613e1f613e1a6020613e0b895165ffffffffffff1690565b9801516001600160d01b031690565b613a05565b90549060031b1c90565b9361267a565b63ffffffff1690565b6001939291565b505f905f905f905f90565b9192613e5581614a1c565b810390811161074157600a5f525f80516020615105833981519152810154613db9949065ffffffffffff9081169085161015613e92575091613daf565b929150613e9e906126a8565b90613daf565b600c54905f829160058411613f10575b613ebe9350614bb2565b8015613e3f57613ee9613de4613ed38361267a565b600c5f525f805160206150e58339815191520190565b91613e38613e2f613e29613e1f613f0b6020613e0b895165ffffffffffff1690565b613a27565b9192613f1b81614a1c565b810390811161074157600c5f525f805160206150e5833981519152810154613ebe949065ffffffffffff9081169085161015613f58575091613eb4565b929150613f64906126a8565b90613eb4565b91908254905f829160058411613fed575b613f86935085614c0f565b908115613fe157613e38613e2f613e29613e1f613fb3613de4613fa88861267a565b895f5260205f200190565b966001613fda6020613fcb8b5165ffffffffffff1690565b9a01516001600160d01b031690565b9101613a49565b5f925082915081908190565b9192613ff881614a1c565b810390811161074157613f8693865f526140216133308360205f200165ffffffffffff90541690565b65ffffffffffff85161015614037575091613f7b565b929150614043906126a8565b90613f7b565b51906109348261086c565b90816101609103126104fa57614068610907565b9061407281612e4f565b825261408060208201612e4f565b602083015261409160408201614049565b60408301526140a260608201612b6d565b60608301526140b360808201612b6d565b608083015260a081015160a08301526140ce60c08201612e4f565b60c08301526140df60e08201612e4f565b60e08301526101006140f2818301612e4f565b90830152610120614104818301612e4f565b90830152614116610140809201612e4f565b9082015290565b905f8060409384519360209461415481611c1088820194639f86fd8560e01b86523060248401528a604484015260648301906112c0565b51915afa50614161612e6f565b805181019280828486019503126104fa57828201519161418083610b31565b81810151906001600160401b0382116104fa57019084603f830112156104fa57838201516141ad81610936565b956141ba835197886108e6565b8187528282850101116104fa578085925f94018388015e85010152156141de575090565b9080519182156104fa5701fd5b5f80516020615125833981519152546001600160a01b0316330361420b57565b60405163118cdaa760e01b8152336004820152602490fd5b9080821015614230575090565b905090565b8115612c61570490565b9091828202915f19848209938380861095039480860395146142c457848311156142b257829109815f038216809204600280826003021880830282030280830282030280830282030280830282030280830282030280920290030293600183805f03040190848311900302920304170290565b60405163227bc15360e01b8152600490fd5b5050906109a29250614235565b60405163a9059cbb60e01b60208201526001600160a01b0390921660248301526044808301939093529181526109349161430a826108cb565b614888565b90614318612c66565b821015614399575f82815260096020908152604080832033845290915290205460ff16614387576143493383612f59565b918215614375575f9081526009602090815260408083203384529091529020805460ff19166001179055565b6040516366c0bcbf60e11b8152600490fd5b604051630c8d9eab60e31b8152600490fd5b60405163d5b25b6360e01b8152600490fd5b600c54806143eb57505f5b6001600160d01b038116156143e657600d54811015612dcc57600d5f525f80516020615145833981519152015490565b505f90565b805f1981011161074157600c5f527fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c6015460301c6143b6565b600a548061445f57505f5b6001600160d01b038116156143e657600b54811015612dcc57600b5f525f80516020615165833981519152015490565b805f1981011161074157600a5f527fc65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a7015460301c61442f565b8054806144bd57505f5b6001600160d01b038116156136bc576001613e1f9201613a49565b5f1990808281011161074157825f5260205f2001015460301c6144a2565b9190600181018091116107415760018201809211610741576109a29261423f565b600a54905f829160058411614554575b6145169350614b55565b8061453957505f5b6001600160d01b038116156143e657613e1f6109a291613a05565b614548613dce61454f9261267a565b5460301c90565b61451e565b919261455f81614a1c565b81039081116107415761451693600a5f5265ffffffffffff80835f80516020615105833981519152015416908516105f1461459b57509161450c565b9291506145a7906126a8565b9061450c565b600c54905f8291600584116145fe575b6145c79350614bb2565b806145ea57505f5b6001600160d01b038116156143e657613e1f6109a291613a27565b614548613ed36145f99261267a565b6145cf565b919261460981614a1c565b8103908111610741576145c793600c5f5265ffffffffffff80835f805160206150e5833981519152015416908516105f146146455750916145bd565b929150614651906126a8565b906145bd565b908154905f8291600584116146ba575b61467293508461502a565b8061469a57505f905b6001600160d01b038216156136bc576109a2916001613e1f9201613a49565b6145486146a96146b49261267a565b835f5260205f200190565b9061467b565b91926146c581614a1c565b81039081116107415761467293855f5265ffffffffffff808360205f20015416908516105f146146f6575091614667565b929150614702906126a8565b90614667565b60405190614715826108b0565b5f6020838281520152565b614728614708565b50614731614708565b50600a54811015612dcc5761475890600a5f525f8051602061510583398151915201613d7b565b65ffffffffffff81511690602060018060d01b0391015116600b54811015612dcc57600b5f525f8051602061516583398151915201546040519161479b836108b0565b8252602082015290565b6147ad614708565b506147b6614708565b50600c54811015612dcc576147dd90600c5f525f805160206150e583398151915201613d7b565b65ffffffffffff81511690602060018060d01b0391015116600d54811015612dcc57600d5f525f8051602061514583398151915201546040519161479b836108b0565b9061484961484361486a92614833614708565b5061483c614708565b5084613a49565b50613d7b565b91600165ffffffffffff845116936020828060d01b03910151169101613a49565b9054906040519261487a846108b0565b835260031b1c602082015290565b5f806148b09260018060a01b03169360208151910182865af16148a9612e6f565b9083615081565b80519081151591826148de575b50506148c65750565b60249060405190635274afe760e01b82526004820152fd5b6148f19250602080918301019101612e3a565b155f806148bd565b91906001810180911161074157600182018092116107415761491c82828561423f565b928215612c61570961492b5790565b600181018091116107415790565b600c548061494a57505f905f905f90565b805f19810111610741577fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c661498391600c5f5201613d7b565b9065ffffffffffff82511691602060018060d01b0391015116906001929190565b600a54806149b557505f905f905f90565b805f19810111610741577fc65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a761498391600a5f5201613d7b565b8054806149ff5750505f905f905f90565b5f1990808281011161074157614983925f5260205f200101613d7b565b80156143e65780614aee614ae7614add614ad3614ac9614abf614ab5614aab60016109a29a5f908b60801c80614b49575b508060401c80614b3c575b508060201c80614b2f575b508060101c80614b22575b508060081c80614b15575b508060041c80614b08575b508060021c80614afb575b50821c614af4575b811c1b614aa4818b614235565b0160011c90565b614aa4818a614235565b614aa48189614235565b614aa48188614235565b614aa48187614235565b614aa48186614235565b614aa48185614235565b8092614235565b90614223565b8101614a97565b600291509101905f614a8f565b600491509101905f614a84565b600891509101905f614a79565b601091509101905f614a6e565b602091509101905f614a63565b604091509101905f614a58565b9150506080905f614a4d565b828210614b6157505090565b9091614b6d8184615015565b90600a5f5265ffffffffffff80835f80516020615105833981519152015416908416105f14614b9f5750915b90614b55565b92506001810180911115614b9957612666565b828210614bbe57505090565b9091614bca8184615015565b90600c5f5265ffffffffffff80835f805160206150e5833981519152015416908416105f14614bfc5750915b90614bb2565b92506001810180911115614bf657612666565b905b838310614c1e5750505090565b909192614c2b8185615015565b90835f5265ffffffffffff808360205f20015416908416105f14614c535750925b9190614c11565b93506001810180911115614c4c57612666565b60ff5f805160206151c58339815191525460401c1615614c8257565b604051631afcd79f60e31b8152600490fd5b600c5490600160401b8210156108ab576001820180600c55821015612dcc57600c5f52805160209091015160301b65ffffffffffff191665ffffffffffff91909116175f805160206150e583398151915290910155565b600a5490600160401b8210156108ab576001820180600a55821015612dcc57600a5f52805160209091015160301b65ffffffffffff191665ffffffffffff91909116175f8051602061510583398151915290910155565b8054600160401b8110156108ab57614d5f91600182018155613a49565b614d8a57815160209092015160301b65ffffffffffff191665ffffffffffff92909216919091179055565b634e487b7160e01b5f525f60045260245ffd5b600c54919291908115614e6f57614db9613de4613ed38461267a565b805165ffffffffffff8381169491168410614e5d5785602093613b9395614de9613330865165ffffffffffff1690565b03614e255750614dfe613ed3614e179361267a565b9065ffffffffffff82549181199060301b169116179055565b01516001600160d01b031690565b9050614e589150614e45614e37610927565b65ffffffffffff9092168252565b6001600160d01b03871681850152614c94565b614e17565b604051632520601d60e01b8152600490fd5b614e939150614e7f614e37610927565b6001600160d01b0384166020820152614c94565b5f9190565b600a54919291908115614f1e57614eb4613de4613dce8461267a565b805165ffffffffffff8381169491168410614e5d5785602093613b9395614ee4613330865165ffffffffffff1690565b03614ef95750614dfe613dce614e179361267a565b9050614e589150614f0b614e37610927565b6001600160d01b03871681850152614ceb565b614e939150614f2e614e37610927565b6001600160d01b0384166020820152614ceb565b805492939291908215614ff157614f5e613de46146a98561267a565b90614f6f825165ffffffffffff1690565b65ffffffffffff84811691168110614e5d57613b93946020948892614f9d613330875165ffffffffffff1690565b03614fbe5750614e1792614fb3614dfe9261267a565b905f5260205f200190565b915050614e5891614fde614fd0610927565b65ffffffffffff9093168352565b6001600160d01b03881682860152614d42565b614e939250615001614fd0610927565b6001600160d01b0385166020830152614d42565b90808216911860011c81018091116107415790565b905b8383106150395750505090565b9091926150468185615015565b90835f5265ffffffffffff808360205f20015416908416105f1461506e5750925b919061502c565b9350600181018091111561506757612666565b906150a8575080511561509657805190602001fd5b604051630a12f52160e11b8152600490fd5b815115806150db575b6150b9575090565b604051639996b31560e01b81526001600160a01b039091166004820152602490fd5b50803b156150b156fedf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c7c65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a89016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300d7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb50175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db902dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268009b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a26469706673582212206764d46b458c94bc30a6b4a8199ffc550f65122fd0eea52d69629dd17905644864736f6c63430008190033","sourceMap":"199:2819:85:-:0;;;;;;;348:4:82;332:21;;318:1:85;3173:36:96;;318:1:85;3219:32:96;;8837:64:25;199:2819:85;;;;;;;;;7896:76:25;;-1:-1:-1;;;;;;;;;;;;199:2819:85;;;7985:34:25;7981:146;;-1:-1:-1;318:1:85;927:17:71;;199:2819:85;;;;;;;;332:21:82;199:2819:85;;;;;;;;;;;;;;;3173:36:96;199:2819:85;;;;;;;;;;3219:32:96;199:2819:85;;;;;;;;;;927:17:71;199:2819:85;;;;;;;;;;;7981:146:25;-1:-1:-1;;;;;;199:2819:85;;;;;;;;;;;;;8087:29:25;;199:2819:85;;8087:29:25;7981:146;;;;;7896:76;-1:-1:-1;;;7938:23:25;;;;;199:2819:85;;;","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361015610011575f80fd5b5f3560e01c806301ffc9a7146104a45780631415519b1461049f5780631b66c9e11461049a5780631e9a695014610495578063248a9ca31461049057806327810b6e1461048b578063281f5752146104865780632abe3048146104815780632d73c69c1461047c5780632dd31000146104775780632f2ff15d1461047257806336568abe1461046d578063392e53cd146104685780634105a7dd14610463578063463616711461045e57806347e7ef241461045957806348d3b775146104545780634ff0876a1461044f57806350861adc1461044a57806350f22068146104455780635346e34f1461044057806354fd4d501461043b57806355a2c6721461043657806357ec83cc1461043157806359f769a91461042c5780635cc070761461042757806361a8c8c41461042257806364b03fdc1461041d57806367567add146104185780636da3e06d146104135780636ec1e3f81461040e578063715018a6146104095780637278e31c1461040457806373790ab3146103ff57806376671808146103fa578063794b15b7146103f55780637953b33b146103f05780637c04c80a146103eb578063810da75d146103e65780638326056f146103e157806383cd9cc3146103dc57806387df0788146103d75780638b0e9f3f146103d25780638da5cb5b146103cd57806391d14854146103c85780639d66201b146103c35780639f86fd85146103be578063a1b12202146103b9578063a217fddf146103b4578063a21a1df9146103af578063a2861466146103aa578063a3b54172146103a5578063a5d03223146103a0578063aabc24961461039b578063aad3ec9614610396578063afba70ad14610391578063b13442711461038c578063bd49c35f14610387578063bdc8144b14610382578063bfefcd7b1461037d578063c31e8dd714610378578063ce9b793014610373578063d547741f1461036e578063d8dfeb4514610369578063db38871514610364578063de4997161461035f578063eb5562381461035a578063ecf7085814610355578063efb559d614610350578063f2fde38b1461034b578063f3fef3a314610346578063f5e7ee0f146103415763f9e1bf6c1461033c575f80fd5b61264c565b612622565b61257c565b61254f565b612400565b6123e3565b61238f565b612375565b612309565b6122de565b612292565b61226a565b612200565b6121e6565b612108565b6120ee565b6120c6565b61209c565b611fdb565b611e24565b611dde565b611d91565b611c9e565b611c64565b611c4a565b611c26565b611b92565b611b58565b611afa565b611ac6565b611a64565b611a20565b611867565b61184d565b611834565b6117ce565b6117a7565b611767565b61174d565b61170c565b611438565b6113d1565b6113ac565b611368565b611312565b6112e4565b611248565b61121e565b6111f7565b6110bf565b61103a565b611008565b610f73565b610f5a565b610efd565b610edd565b610ebc565b610bfe565b610bd6565b610b3b565b610af6565b610aab565b610a5d565b610a19565b6109a5565b61079b565b6106cd565b6106a5565b61066c565b610583565b610538565b6104fe565b346104fa5760203660031901126104fa5760043563ffffffff60e01b81168091036104fa57602090637965db0b60e01b81149081156104e9575b506040519015158152f35b6301ffc9a760e01b1490505f6104de565b5f80fd5b346104fa575f3660031901126104fa5760206040517fc6aaadd7371d5e8f9ed6849dd66a66573a3ba37167d03f4352c9ba5693678fac8152f35b346104fa575f3660031901126104fa5760206040517f9c56d972d63cbb4195b3c1484691dfc220fa96a4c47e7b6613bd82a022029e068152f35b6001600160a01b038116036104fa57565b346104fa5760403660031901126104fa576004356105a081610572565b602435906105ac613080565b6001600160a01b0381161561065b57335f908152600e602052604090206105d790614498565b614498565b8211610649576105f76105e86143ab565b6105f0614424565b90846144db565b9182156106345782610608926130af565b9061061f60015f805160206151a583398151915255565b604080519182526020820192909252f35b0390f35b60405160016245ddc760e11b03198152600490fd5b604051632418411f60e11b8152600490fd5b6040516208978560e71b8152600490fd5b346104fa5760203660031901126104fa576004355f525f805160206151858339815191526020526020600160405f200154604051908152f35b346104fa575f3660031901126104fa576001546040516001600160a01b039091168152602090f35b346104fa575f3660031901126104fa576106e5612c66565b80156107465760015465ffffffffffff8160a01c16915f198101908111610741576107139160d01c90612695565b81018091116107415761072861063091613229565b60405165ffffffffffff90911681529081906020820190565b612666565b604051639fa56a5b60e01b8152600490fd5b600435906001600160401b03821682036104fa57565b9181601f840112156104fa578235916001600160401b0383116104fa57602083818601950101116104fa57565b346104fa5760403660031901126104fa576107b4610758565b6001600160401b036024358181116104fa576107d490369060040161076e565b50506107de613080565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316330361085a575f805160206151c5833981519152549060ff8260401c1692831561084a575b505050610838575f80fd5b60405163f92ee8a960e01b8152600490fd5b81169116101590505f808061082d565b604051631966391b60e11b8152600490fd5b65ffffffffffff8116036104fa57565b634e487b7160e01b5f52604160045260245ffd5b606081019081106001600160401b038211176108ab57604052565b61087c565b604081019081106001600160401b038211176108ab57604052565b608081019081106001600160401b038211176108ab57604052565b90601f801991011681019081106001600160401b038211176108ab57604052565b6040519061016082018281106001600160401b038211176108ab57604052565b60405190610934826108b0565b565b6001600160401b0381116108ab57601f01601f191660200190565b92919261095d82610936565b9161096b60405193846108e6565b8294818452818301116104fa578281602093845f960137010152565b9080601f830112156104fa578160206109a293359101610951565b90565b346104fa5760603660031901126104fa576004356109c281610572565b602435906109cf8261086c565b604435906001600160401b0382116104fa576020926109f5610a11933690600401610987565b6001600160a01b039092165f908152600e85526040902061340e565b604051908152f35b346104fa575f3660031901126104fa576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346104fa5760403660031901126104fa57610aa9602435600435610a8082610572565b805f525f80516020615185833981519152602052610aa4600160405f2001546135e5565b6138e5565b005b346104fa5760403660031901126104fa57602435610ac881610572565b336001600160a01b03821603610ae457610aa99060043561391b565b60405163334bd91960e11b8152600490fd5b346104fa575f3660031901126104fa5760ff60025460a01c1680610b22575b6020906040519015158152f35b5060035460a01c60ff16610b15565b801515036104fa57565b346104fa5760203660031901126104fa57600435610b5881610b31565b610b60613080565b610b686134da565b5f54901515908160ff8216151514610bc45760ff191660ff8216175f556040519081527f3e12b7b36c75ac9609a3f58609b331210428e1a85909132638955ba0301eec3390602090a160015f805160206151a583398151915255005b60405163a741a04560e01b8152600490fd5b346104fa575f3660031901126104fa57602065ffffffffffff60015460a01c16604051908152f35b346104fa576040806003193601126104fa576004803591610c1e83610572565b610c26613080565b6001600160a01b0391838316908115610eae575f5460ff811680610e95575b610e865783516370a0823160e01b808252308483019081529096602093909160109190911c82169084908490819083010381845afa928315610e5e575f93610e63575b50610c9a9060243590309033906139ad565b5f5486519788523085890190815290979184918391908290819060200103918b60101c165afa908115610e5e57610cd9935f92610e31575b5050612688565b938415610e225760081c60ff1680610e0d575b610dff57509061063091610d9d610d016143ab565b95610d4a610d0d614424565b610d35610d1b8a838b6144db565b99610d2f8a610d2942613229565b926126b6565b90613b01565b5050610d4489610d2942613229565b90613be1565b50506001600160a01b0381165f908152600e6020526040902090610d9788610d926105d2610d7742613229565b6001600160a01b039095165f908152600e6020526040902090565b6126b6565b91613cbd565b505081518481526020810186905233907fdcbc1c05240f31ff3ad067ef1ee35ce4997762752e3a095284754544f4c709d790604090a3610de960015f805160206151a583398151915255565b5191825260208201929092529081906040820190565b8251632484557960e01b8152fd5b50610e1a84610d926143ab565b815410610cec565b50825163070f6eed60e11b8152fd5b610e509250803d10610e57575b610e4881836108e6565b8101906126e4565b5f80610cd2565b503d610e3e565b6126f3565b610c9a919350610e7f90853d8711610e5757610e4881836108e6565b9290610c88565b5082516304f63b8560e01b8152fd5b50335f9081526005602052604090205460ff1615610c45565b8251630d534ce360e11b8152fd5b346104fa575f3660031901126104fa57602060ff5f54166040519015158152f35b346104fa575f3660031901126104fa57602060015460d01c604051908152f35b346104fa575f3660031901126104fa57602060ff60025460a01c166040519015158152f35b9060406003198301126104fa57600435610f3b8161086c565b91602435906001600160401b0382116104fa576109a291600401610987565b346104fa576020610a11610f6d36610f22565b90613284565b346104fa5760203660031901126104fa57600435610f9081610b31565b610f98613080565b610fa0613537565b5f54901515908160ff8260081c16151514610bc45761ff001916600882901b61ff0016175f556040519081527ffa7a25a0b611d4ba3c0ea990e90dc23d484a5dd7a1be4733fef2946ba74530c690602090a1610aa960015f805160206151a583398151915255565b346104fa575f3660031901126104fa5760206001600160401b035f805160206151c58339815191525416604051908152f35b346104fa5760203660031901126104fa576004356110578161086c565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633036110ad5761109090613d9f565b60408051941515855263ffffffff91909116602085015292915050f35b604051637ca475e560e11b8152600490fd5b346104fa5760603660031901126104fa576110d8610758565b6024356110e481610572565b6001600160401b03916044358381116104fa5761110590369060040161076e565b5f805160206151c58339815191529491855494838616806111e65760ff8760401c169081156111d9575b50610838577fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2966111d49661119c958716906001600160401b0319161790556111975f805160206151c5833981519152600160401b68ff000000000000000019825416179055565b6126fe565b5f805160206151c5833981519152805468ff0000000000000000191690556040516001600160401b0390911681529081906020820190565b0390a1005b905084861611155f61112f565b60405162dc149f60e41b8152600490fd5b346104fa5760203660031901126104fa576020610a1160043561121981610572565b612b1e565b346104fa5760203660031901126104fa576004355f526006602052602060405f2054604051908152f35b346104fa575f3660031901126104fa5760015465ffffffffffff61127e818360a01c1692611274612c66565b9060d01c90612695565b820180921161074157611292602092613229565b60405191168152f35b60409060031901126104fa576004356112b381610572565b906024356109a28161086c565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b346104fa576106306112fe6112f83661129b565b90612bac565b6040519182916020835260208301906112c0565b346104fa5760203660031901126104fa5760043561132f8161086c565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633036110ad5761109090613ea4565b346104fa575f3660031901126104fa576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346104fa575f3660031901126104fa57602060ff60035460a01c166040519015158152f35b346104fa575f3660031901126104fa576113e96141eb565b5f8051602061512583398151915280546001600160a01b031981169091555f906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b346104fa5760403660031901126104fa576004356024356114588161086c565b611460613080565b60035461147d906001600160a01b03165b6001600160a01b031690565b33036116fa5761148b612c66565b9061149581612c9a565b90821515806116e9575b80156116e0575b6116ce57610630937ff9d090c096f71cd1659861a9ce5b6f384bceb4e2fa4e4a19edf6489a9b8d56c7926114d86143ab565b946114f36114e5826126a8565b5f52600660205260405f2090565b54908281036115e7575061150781876126b6565b6115118185614223565b9687806115a0575b50505050505b8361156c575b6040805191825265ffffffffffff929092166020820152908101839052606090a161155c60015f805160206151a583398151915255565b6040519081529081906020820190565b5f5461159b9085906115899060101c6001600160a01b0316611471565b6001546001600160a01b0316906142d1565b611525565b6115dc93610cd283610d2f6115c66115bf6114e5986115d6988861423f565b8096612688565b946115d042613229565b92612688565b926126a8565b555f80808087611519565b91506115fb825f52600660205260405f2090565b549061160b81610d92848a6126b6565b906116168286614223565b9788611627575b505050505061151f565b61169c938361164f9361165c8c61165761164561168d99888461423f565b978895858461423f565b948592612688565b612688565b938484106116a7575b610cd290610d2f61167b9596976115d042613229565b6116876114e5876126a8565b55612688565b915f52600660205260405f2090565b555f8080808061161d565b916116c3610cd2916116bd8661167b9798612688565b906126b6565b859450929050611665565b604051635e18d2a560e01b8152600490fd5b508282116114a6565b506116f38361267a565b821061149f565b60405163dabc4ad960e01b8152600490fd5b346104fa575f3660031901126104fa5760015465ffffffffffff808260a01c1691611735612c66565b600181018091116107415761127e9160d01c90612695565b346104fa575f3660031901126104fa576020610a11612c66565b346104fa5760203660031901126104fa5760043561178481610572565b60018060a01b03165f526005602052602060ff60405f2054166040519015158152f35b346104fa5760203660031901126104fa576020610a116004356117c98161086c565b612c9a565b346104fa5760403660031901126104fa576004356117eb81610572565b6024356001600160401b038082116104fa57366023830112156104fa5781600401359081116104fa573660248260051b840101116104fa5761063092602461155c930190612cd5565b346104fa576020610a1161184736610f22565b90613359565b346104fa576106306112fe6118613661129b565b90612e03565b346104fa576020806003193601126104fa57600480359061188782610572565b61188f613080565b60025460a01c60ff16611a11576040516302910f8b60e31b81526001600160a01b03838116838301908152909491908290829081906020010381887f0000000000000000000000000000000000000000000000000000000000000000165afa908115610e5e575f916119e4575b50156119d45760405163fbfa77cf60e01b8152838516949082818581895afa928315610e5e575f936119a5575b5050309116036119965750600280546001600160a01b03929092166001600160a81b031990921691909117600160a01b1790557fdb2160616f776a37b24808115554e79439bf26cccbbd4438190cc6d28e80ecd15f80a2610aa960015f805160206151a583398151915255565b60405163b9f0f17160e01b8152fd5b6119c5929350803d106119cd575b6119bd81836108e6565b810190612e5a565b905f80611929565b503d6119b3565b506040516324e5af8d60e21b8152fd5b611a049150823d8411611a0a575b6119fc81836108e6565b810190612e3a565b5f6118fc565b503d6119f2565b604051631380833b60e01b8152fd5b346104fa575f3660031901126104fa576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346104fa575f3660031901126104fa57611a7c612c66565b611a846143ab565b90805f52600660205260405f205482018092116107415760018101809111610741575f52600660205260405f2054810180911161074157602090604051908152f35b346104fa575f3660031901126104fa575f80516020615125833981519152546040516001600160a01b039091168152602090f35b346104fa5760403660031901126104fa57602060ff611b4c602435611b1e81610572565b6004355f525f80516020615185833981519152845260405f209060018060a01b03165f5260205260405f2090565b54166040519015158152f35b346104fa5760203660031901126104fa57600435611b7581610572565b60018060a01b03165f52600e6020526020610a1160405f20614498565b346104fa5760403660031901126104fa57600435611baf81610572565b6024356001600160401b0381116104fa575f91611bd18392369060040161076e565b90816040519283928337810184815203915af4611c1e611bef612e6f565b91611c106040519384921515602084015260408084015260608301906112c0565b03601f1981018352826108e6565b805190602001fd5b346104fa575f3660031901126104fa57602060ff5f5460081c166040519015158152f35b346104fa575f3660031901126104fa5760206040515f8152f35b346104fa575f3660031901126104fa5760206040517f4a634bc14d77baf979756509ef4298c6f6318af357828612545267ee2eb792338152f35b346104fa5760403660031901126104fa57600435611cbb81610572565b602435611cc781610b31565b611ccf613080565b611cd761358e565b6001600160a01b038216918215611d7f575f8381526005602052604090205460ff16151582151514610bc4576001600160a01b03165f9081526005602052604090207ff991b1ecfb5115cbb36a2b2e2240c058406d2acc2fcc6e9e2dc99d845ff70a6291611d6691611d54908260ff801983541691151516179055565b60405190151581529081906020820190565b0390a2610aa960015f805160206151a583398151915255565b604051630da30f6560e31b8152600490fd5b346104fa5760403660031901126104fa576020611dd5602435611db381610572565b6004355f526008835260405f209060018060a01b03165f5260205260405f2090565b54604051908152f35b346104fa5760403660031901126104fa57602060ff611b4c602435611e0281610572565b6004355f526009845260405f209060018060a01b03165f5260205260405f2090565b346104fa576020806003193601126104fa576004803590611e4482610572565b611e4c613080565b60035460a01c60ff16611fcc576001600160a01b03828116939084611eba575b6003805460ff60a01b1916600160a01b179055847fe7e4c932e03abddfe20f83af42c33627e816115c7ec2b168441f65dc14bfc3ba5f80a2610aa960015f805160206151a583398151915255565b6040516302910f8b60e31b81526001600160a01b0385168482019081528390829081906020010381857f0000000000000000000000000000000000000000000000000000000000000000165afa908115610e5e575f91611faf575b5015611f9e5760405163fbfa77cf60e01b815282818581895afa928315610e5e575f93611f7f575b505030911603611f705750600380546001600160a01b0319166001600160a01b039092169190911790555f808080611e6c565b604051633f3e089160e21b8152fd5b611f96929350803d106119cd576119bd81836108e6565b905f80611f3d565b60405163dabc4ad960e01b81528390fd5b611fc69150833d8511611a0a576119fc81836108e6565b5f611f15565b60405163703fe2e560e01b8152fd5b346104fa5760403660031901126104fa57600435611ff881610572565b60243590612004613080565b6001600160a01b039181831690811561208a57612035610630946120278361430f565b9485915f5460101c166142d1565b604080519182526020820184905233917f865ca08d59f5cb456e85cd2f7ef63664ea4f73327414e9d8152c4158b0e946459190a360015f805160206151a5833981519152556040519081529081906020820190565b604051634e46966960e11b8152600490fd5b346104fa5760203660031901126104fa576004355f526007602052602060405f2054604051908152f35b346104fa575f3660031901126104fa576003546040516001600160a01b039091168152602090f35b346104fa575f3660031901126104fa576020610a116143ab565b346104fa5760203660031901126104fa57600435612124613080565b335f9081527f2d4ccbfe9f7672a6f2537c1e5bce6adacb73706879154bbab6ce096012d6721660205260409020547f4a634bc14d77baf979756509ef4298c6f6318af357828612545267ee2eb792339060ff16156121c857508060045414610bc4576020817f854df3eb95564502c8bc871ebdd15310ee26270f955f6c6bd8cea68e75045bc092600455604051908152a160015f805160206151a583398151915255005b6044906040519063e2517d3f60e01b82523360048301526024820152fd5b346104fa575f3660031901126104fa576020610a11614424565b346104fa5760203660031901126104fa5760043561221d81610572565b612225612c66565b61222e82612b1e565b916122398183612f59565b830180931161074157600182018092116107415761225691612f59565b810180911161074157602090604051908152f35b346104fa575f3660031901126104fa576002546040516001600160a01b039091168152602090f35b346104fa5760403660031901126104fa57610aa96024356004356122b582610572565b805f525f805160206151858339815191526020526122d9600160405f2001546135e5565b61391b565b346104fa575f3660031901126104fa575f5460405160109190911c6001600160a01b03168152602090f35b346104fa575f3660031901126104fa5760206040517fbae4ee3de6c709ff9a002e774c5b78cb381560b219213c88ae0f1e207c03c0238152f35b60609060031901126104fa5760043561235b81610572565b9060243561236881610572565b906044356109a28161086c565b346104fa576106306112fe61238936612343565b91612e9e565b346104fa5761239d3661129b565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811633036110ad5761109092165f52600e60205260405f20613f6a565b346104fa575f3660031901126104fa576020600454604051908152f35b346104fa5760603660031901126104fa5760043561241d81610572565b6024359061242a8261086c565b6001600160401b03916044358381116104fa5761244b90369060040161076e565b9092604093845161245b81610890565b606081526060602082015260608682015292806124ba575b610630866124ab87876124a561248c89848451916126c3565b928561249c602085015183613359565b93015190613284565b916144db565b90519081529081906020820190565b81019392506020818503126104fa578035908682116104fa5701926060848203126104fa578451956124eb87610890565b84358181116104fa5782612500918701610987565b875260208501358181116104fa578261251a918701610987565b6020880152858501359081116104fa57610630966125436124a59361248c936124ab9801610987565b87820152939450612473565b346104fa5760203660031901126104fa57610aa960043561256f81610572565b6125776141eb565b612ee8565b346104fa5760403660031901126104fa5760043561259981610572565b6024356125a4613080565b6001600160a01b0382161561065b578015612610576125d36125c4614424565b6125cc6143ab565b90836148f9565b335f908152600e602052604090209092906125ed90614498565b83116125fe576106089183916130af565b6040516321727a3760e11b8152600490fd5b604051636c6c627d60e11b8152600490fd5b346104fa5760403660031901126104fa576020610a1160243561264481610572565b600435612f59565b346104fa576106306112fe61266036612343565b91612fb7565b634e487b7160e01b5f52601160045260245ffd5b5f1981019190821161074157565b9190820391821161074157565b8181029291811591840414171561074157565b906001820180921161074157565b9190820180921161074157565b6001600160a01b03165f908152600e602052604090206109a292919061340e565b908160209103126104fa575190565b6040513d5f823e3d90fd5b91612750916127419161270f614c66565b612717614c66565b60015f805160206151a5833981519152556001600160a01b0394808616612b04575b503691610951565b60208082518301019101614054565b805182166001600160a01b031615612af257604080820165ffffffffffff61277e825165ffffffffffff1690565b1615612ae15760c08301805190929061279f906001600160a01b0316611471565b15612992575b50916128de6101409261287d61285861293c966127f36127cb875160018060a01b031690565b5f805462010000600160b01b03191660109290921b62010000600160b01b0316919091179055565b6020860151600180546001600160a01b0319166001600160a01b0390921691909117905561284c61282342613229565b6001805465ffffffffffff60a01b191660a09290921b65ffffffffffff60a01b16919091179055565b5165ffffffffffff1690565b600180546001600160d01b031660d09290921b6001600160d01b031916919091179055565b61289d61288d6060850151151590565b60ff80195f541691151516175f55565b6128c46128ad6080850151151590565b61ff005f5491151560081b169061ff001916175f55565b6128d160a0840151600455565b516001600160a01b031690565b848116612982575b5060e08101516001600160a01b0316848116612972575b506101008101516001600160a01b0316848116612962575b506101208101516001600160a01b0316848116612952575b5001516001600160a01b031690565b9081166129465750565b61294f90613876565b50565b61295b90613807565b505f61292d565b61296b90613798565b505f612915565b61297b906136c2565b505f6128fd565b61298b90613611565b505f6128e6565b60e08401516129a9906001600160a01b0316611471565b15612a7e575b6101208401516129c7906001600160a01b0316611471565b6127a557608084015115612a345760a08401511580612a15575b612a055750916128de6101409261287d61285861293c965b949650505092506127a5565b5163183c854560e21b8152600490fd5b50610140840151612a2e906001600160a01b0316611471565b156129e1565b60a084015115801590612a5e575b612a055750916128de6101409261287d61285861293c966129f9565b50610140840151612a77906001600160a01b0316611471565b1515612a42565b606084015115612ab457610100840151612aa0906001600160a01b0316611471565b6129af575163183c854560e21b8152600490fd5b610100840151612acc906001600160a01b0316611471565b156129af575163183c854560e21b8152600490fd5b81516368f5f8f160e11b8152600490fd5b6040516368f7a67560e11b8152600490fd5b612b1890612b10614c66565b612577614c66565b5f612739565b6001600160a01b03165f908152600e60205260409020612b3d90614498565b612b456143ab565b612b4d614424565b90600181018091116107415760018201809211610741576109a29261423f565b519061093482610b31565b519063ffffffff821682036104fa57565b91908260409103126104fa576109a260208351612ba581610b31565b9301612b78565b9190612be8612bf79160609465ffffffffffff604051926367567add60e01b602085015216602483015260248252612be382610890565b61411d565b60208082518301019101612b89565b90612bff5750565b90915063ffffffff60405191166020820152602081526109a2816108b0565b65ffffffffffff918216908216039190821161074157565b634e487b7160e01b5f52601260045260245ffd5b9065ffffffffffff809116918215612c6157160490565b612c36565b612c6f42613229565b612c96600154612c8c65ffffffffffff93848360a01c1690612c1e565b9060d01c90612c4a565b1690565b6001549065ffffffffffff91828160a01c16918284821610612cc357612c9692612c8c91612c1e565b60405163b7d0949760e01b8152600490fd5b90612cde613080565b5f926001600160a01b03831692831561208a578115612d96575f5b828110612d7457505f547f326b6aff1cd2fb1c8234de4f9dcfb9047c5c36eb9ef2eb34af5121e969a75d279286929091612d49918491612d449060101c6001600160a01b0316611471565b6142d1565b612d5a604051928392339684612dd1565b0390a39061093460015f805160206151a583398151915255565b94612d8f6001916116bd612d89898789612dbc565b3561430f565b9501612cf9565b60405163edf3b93360e01b8152600490fd5b634e487b7160e01b5f52603260045260245ffd5b9190811015612dcc5760051b0190565b612da8565b604080825281018390529392916001600160fb1b0381116104fa5760209160609160051b809183880137850101930152565b9190612be8612bf79160609465ffffffffffff60405192632ad1633960e11b602085015216602483015260248252612be382610890565b908160209103126104fa57516109a281610b31565b519061093482610572565b908160209103126104fa57516109a281610572565b3d15612e99573d90612e8082610936565b91612e8e60405193846108e6565b82523d5f602084013e565b606090565b604051631d6aac4760e31b60208201526001600160a01b03909216602483015265ffffffffffff909216604480830191909152815260609291612bf791612be891612be3826108cb565b6001600160a01b03908116908115612f41575f8051602061512583398151915280546001600160a01b031981168417909155167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3565b604051631e4fbdf760e01b81525f6004820152602490fd5b90612f7f90825f52600860205260405f209060018060a01b03165f5260205260405f2090565b54905f52600660205260405f2054600760205260405f205490600181018091116107415760018201809211610741576109a29261423f565b92919092612fdc612fcb8360609684612e9e565b92612fd68184612bac565b92612e03565b90825115801590613076575b801561306c575b612ff857505050565b6130459394506109a29291611c10916040519361301485610890565b8452602084019081526040840191825261305b604051968795602080880152516060604088015260a08701906112c0565b915191603f1992838783030160608801526112c0565b9151908483030160808501526112c0565b5081511515612fef565b5080511515612fe8565b5f805160206151a5833981519152600281541461309d5760029055565b604051633ee5aeb560e01b8152600490fd5b335f908152600e60205260409020939291906130ca42613229565b335f908152600e602052604090206130e190614498565b918483039283116107415761311c7febff2602b3f468259e1e99f613fed6691f3a6526effe6ef3e768ba7ae7a36c4f9385936131a799613cbd565b505061313661312a42613229565b610d4487611657614424565b505061315061314442613229565b610d2f846116576143ab565b50506131f5816131e0613169613164612c66565b6126a8565b6131bf61317e825f52600660205260405f2090565b54613191835f52600760205260405f2090565b5461319d82828b6144db565b9d8e998a936126b6565b6131b9855f52600660205260405f2090565b556126b6565b6131d1825f52600760205260405f2090565b555f52600860205260405f2090565b9060018060a01b03165f5260205260405f2090565b6132008382546126b6565b9055604080519485526020850195909552938301526001600160a01b03909216913391606090a3565b65ffffffffffff9081811161323c571690565b604490604051906306dfcc6560e41b8252603060048301526024820152fd5b908160209103126104fa576109a290612b78565b90600163ffffffff8093160191821161074157565b9080511561334f578060208061329f9351830101910161325b565b6132a881614720565b906132b9825165ffffffffffff1690565b9065ffffffffffff808516921682811461334357821191826132ef575b50506132e657506109a2906144fc565b60209150015190565b9091506132fd600a5461267a565b63ffffffff831614918215613316575b50505f806132d6565b61333b91925061284c61332b6133309261326f565b614720565b65ffffffffffff1690565b115f8061330d565b50505060209150015190565b506109a2906144fc565b9080511561340457806020806133749351830101910161325b565b61337d816147a5565b9061338e825165ffffffffffff1690565b9065ffffffffffff808516921682811461334357821191826133bb575b50506132e657506109a2906145ad565b9091506133c9600c5461267a565b63ffffffff8316149182156133e2575b50505f806133ab565b6133fc91925061284c6133f76133309261326f565b6147a5565b115f806133d9565b506109a2906145ad565b918051156134d057806020806134299351830101910161325b565b916134348382614820565b92613445845165ffffffffffff1690565b9065ffffffffffff80851692168281146134c4578211918261347b575b5050613472576109a29250614657565b50506020015190565b909150613488835461267a565b63ffffffff8316149182156134a1575b50505f80613462565b6134bc91925061284c6134b66133309261326f565b85614820565b115f80613498565b50505050506020015190565b506109a291614657565b335f9081527f03b26b53c87faa1058f30bb5d2fee64f717719a0d9b7e4f4df027aa5e9b6ed69602052604090207fbae4ee3de6c709ff9a002e774c5b78cb381560b219213c88ae0f1e207c03c0239060ff905b5416156121c85750565b335f9081527fe41986b390c4ce6791b87f7423b5fab7a81a0e6d89660b6264f697d008b2243a602052604090207fc6aaadd7371d5e8f9ed6849dd66a66573a3ba37167d03f4352c9ba5693678fac9060ff9061352d565b335f9081527f0287ab4cb376ea253d7b2ce0c2cbf458f7deae9458470d74afdfbbee484e9540602052604090207f9c56d972d63cbb4195b3c1484691dfc220fa96a4c47e7b6613bd82a022029e069060ff9061352d565b5f8181525f8051602061518583398151915260209081526040808320338452909152902060ff9061352d565b6001600160a01b0381165f9081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d60205260409020545f805160206151858339815191529060ff166136bc575f808052602091825260408082206001600160a01b038516835290925220805460ff1916600117905533906001600160a01b03165f7f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d8180a4600190565b50505f90565b6001600160a01b0381165f9081527f03b26b53c87faa1058f30bb5d2fee64f717719a0d9b7e4f4df027aa5e9b6ed69602052604090207fbae4ee3de6c709ff9a002e774c5b78cb381560b219213c88ae0f1e207c03c023905f805160206151858339815191529060ff905b5416613791575f828152602091825260408082206001600160a01b038616835290925220805460ff1916600117905533916001600160a01b0316907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d5f80a4600190565b5050505f90565b6001600160a01b0381165f9081527f0287ab4cb376ea253d7b2ce0c2cbf458f7deae9458470d74afdfbbee484e9540602052604090207f9c56d972d63cbb4195b3c1484691dfc220fa96a4c47e7b6613bd82a022029e06905f805160206151858339815191529060ff9061372d565b6001600160a01b0381165f9081527fe41986b390c4ce6791b87f7423b5fab7a81a0e6d89660b6264f697d008b2243a602052604090207fc6aaadd7371d5e8f9ed6849dd66a66573a3ba37167d03f4352c9ba5693678fac905f805160206151858339815191529060ff9061372d565b6001600160a01b0381165f9081527f2d4ccbfe9f7672a6f2537c1e5bce6adacb73706879154bbab6ce096012d67216602052604090207f4a634bc14d77baf979756509ef4298c6f6318af357828612545267ee2eb79233905f805160206151858339815191529060ff9061372d565b5f8181525f80516020615185833981519152602081815260408084206001600160a01b038716855290915290912060ff9061372d565b5f8181525f80516020615185833981519152602081815260408084206001600160a01b03871685529091529091205460ff1615613791575f828152602091825260408082206001600160a01b038616835290925220805460ff1916905533916001600160a01b0316907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b5f80a4600190565b6040516323b872dd60e01b60208201526001600160a01b03928316602482015292909116604483015260648083019390935291815260a08101918183106001600160401b038411176108ab5761093492604052614888565b600b54811015612dcc57600b5f525f8051602061516583398151915201905f90565b600d54811015612dcc57600d5f525f8051602061514583398151915201905f90565b8054821015612dcc575f5260205f2001905f90565b600d54600160401b8110156108ab576001810180600d55811015612dcc57600d5f525f805160206151458339815191520155565b600b54600160401b8110156108ab576001810180600b55811015612dcc57600b5f525f805160206151658339815191520155565b90815491600160401b8310156108ab5782613ae991600161093495018155613a49565b90919082549060031b91821b915f19901b1916179055565b919091600d9081548015613bac575b50613b19614939565b50929091815492613b286143ab565b9481613b97575b5015613b7457505f1982018281116107415781541115612dcc575f527fd7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb4018390559190565b613b88926001600160d01b03169150614d9d565b5050613b9383613a5e565b9190565b65ffffffffffff83811691161490505f613b2f565b600160401b8110156108ab5760018101808455811015612dcc575f908382525f8051602061514583398151915201555f613b10565b919091600b9081548015613c88575b50613bf96149a4565b50929091815492613c08614424565b9481613c73575b5015613c5457505f1982018281116107415781541115612dcc575f527f0175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db8018390559190565b613c68926001600160d01b03169150614e98565b5050613b9383613a92565b65ffffffffffff83811691161490505f613c0f565b600160401b8110156108ab5760018101808455811015612dcc575f908382525f8051602061516583398151915201555f613bf0565b90929192600182019081548015613d4b575b5084613cda846149ee565b50949092845493613cea83614498565b9681613d36575b5015613d13575050505f19810190811161074157613ae98591613b9393613a49565b613b93949293613d2f926001600160d01b039091169190614f42565b5050613ac6565b65ffffffffffff83811691161490505f613cf1565b600160401b8110156108ab57806001613d679201845583613a49565b8154905f199060031b1b191690555f613ccf565b90604051613d88816108b0565b915465ffffffffffff8116835260301c6020830152565b600a54905f829160058411613e4a575b613db99350614b55565b8015613e3f57613de9613de4613dce8361267a565b600a5f525f805160206151058339815191520190565b613d7b565b91613e38613e2f613e29613e1f613e1a6020613e0b895165ffffffffffff1690565b9801516001600160d01b031690565b613a05565b90549060031b1c90565b9361267a565b63ffffffff1690565b6001939291565b505f905f905f905f90565b9192613e5581614a1c565b810390811161074157600a5f525f80516020615105833981519152810154613db9949065ffffffffffff9081169085161015613e92575091613daf565b929150613e9e906126a8565b90613daf565b600c54905f829160058411613f10575b613ebe9350614bb2565b8015613e3f57613ee9613de4613ed38361267a565b600c5f525f805160206150e58339815191520190565b91613e38613e2f613e29613e1f613f0b6020613e0b895165ffffffffffff1690565b613a27565b9192613f1b81614a1c565b810390811161074157600c5f525f805160206150e5833981519152810154613ebe949065ffffffffffff9081169085161015613f58575091613eb4565b929150613f64906126a8565b90613eb4565b91908254905f829160058411613fed575b613f86935085614c0f565b908115613fe157613e38613e2f613e29613e1f613fb3613de4613fa88861267a565b895f5260205f200190565b966001613fda6020613fcb8b5165ffffffffffff1690565b9a01516001600160d01b031690565b9101613a49565b5f925082915081908190565b9192613ff881614a1c565b810390811161074157613f8693865f526140216133308360205f200165ffffffffffff90541690565b65ffffffffffff85161015614037575091613f7b565b929150614043906126a8565b90613f7b565b51906109348261086c565b90816101609103126104fa57614068610907565b9061407281612e4f565b825261408060208201612e4f565b602083015261409160408201614049565b60408301526140a260608201612b6d565b60608301526140b360808201612b6d565b608083015260a081015160a08301526140ce60c08201612e4f565b60c08301526140df60e08201612e4f565b60e08301526101006140f2818301612e4f565b90830152610120614104818301612e4f565b90830152614116610140809201612e4f565b9082015290565b905f8060409384519360209461415481611c1088820194639f86fd8560e01b86523060248401528a604484015260648301906112c0565b51915afa50614161612e6f565b805181019280828486019503126104fa57828201519161418083610b31565b81810151906001600160401b0382116104fa57019084603f830112156104fa57838201516141ad81610936565b956141ba835197886108e6565b8187528282850101116104fa578085925f94018388015e85010152156141de575090565b9080519182156104fa5701fd5b5f80516020615125833981519152546001600160a01b0316330361420b57565b60405163118cdaa760e01b8152336004820152602490fd5b9080821015614230575090565b905090565b8115612c61570490565b9091828202915f19848209938380861095039480860395146142c457848311156142b257829109815f038216809204600280826003021880830282030280830282030280830282030280830282030280830282030280920290030293600183805f03040190848311900302920304170290565b60405163227bc15360e01b8152600490fd5b5050906109a29250614235565b60405163a9059cbb60e01b60208201526001600160a01b0390921660248301526044808301939093529181526109349161430a826108cb565b614888565b90614318612c66565b821015614399575f82815260096020908152604080832033845290915290205460ff16614387576143493383612f59565b918215614375575f9081526009602090815260408083203384529091529020805460ff19166001179055565b6040516366c0bcbf60e11b8152600490fd5b604051630c8d9eab60e31b8152600490fd5b60405163d5b25b6360e01b8152600490fd5b600c54806143eb57505f5b6001600160d01b038116156143e657600d54811015612dcc57600d5f525f80516020615145833981519152015490565b505f90565b805f1981011161074157600c5f527fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c6015460301c6143b6565b600a548061445f57505f5b6001600160d01b038116156143e657600b54811015612dcc57600b5f525f80516020615165833981519152015490565b805f1981011161074157600a5f527fc65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a7015460301c61442f565b8054806144bd57505f5b6001600160d01b038116156136bc576001613e1f9201613a49565b5f1990808281011161074157825f5260205f2001015460301c6144a2565b9190600181018091116107415760018201809211610741576109a29261423f565b600a54905f829160058411614554575b6145169350614b55565b8061453957505f5b6001600160d01b038116156143e657613e1f6109a291613a05565b614548613dce61454f9261267a565b5460301c90565b61451e565b919261455f81614a1c565b81039081116107415761451693600a5f5265ffffffffffff80835f80516020615105833981519152015416908516105f1461459b57509161450c565b9291506145a7906126a8565b9061450c565b600c54905f8291600584116145fe575b6145c79350614bb2565b806145ea57505f5b6001600160d01b038116156143e657613e1f6109a291613a27565b614548613ed36145f99261267a565b6145cf565b919261460981614a1c565b8103908111610741576145c793600c5f5265ffffffffffff80835f805160206150e5833981519152015416908516105f146146455750916145bd565b929150614651906126a8565b906145bd565b908154905f8291600584116146ba575b61467293508461502a565b8061469a57505f905b6001600160d01b038216156136bc576109a2916001613e1f9201613a49565b6145486146a96146b49261267a565b835f5260205f200190565b9061467b565b91926146c581614a1c565b81039081116107415761467293855f5265ffffffffffff808360205f20015416908516105f146146f6575091614667565b929150614702906126a8565b90614667565b60405190614715826108b0565b5f6020838281520152565b614728614708565b50614731614708565b50600a54811015612dcc5761475890600a5f525f8051602061510583398151915201613d7b565b65ffffffffffff81511690602060018060d01b0391015116600b54811015612dcc57600b5f525f8051602061516583398151915201546040519161479b836108b0565b8252602082015290565b6147ad614708565b506147b6614708565b50600c54811015612dcc576147dd90600c5f525f805160206150e583398151915201613d7b565b65ffffffffffff81511690602060018060d01b0391015116600d54811015612dcc57600d5f525f8051602061514583398151915201546040519161479b836108b0565b9061484961484361486a92614833614708565b5061483c614708565b5084613a49565b50613d7b565b91600165ffffffffffff845116936020828060d01b03910151169101613a49565b9054906040519261487a846108b0565b835260031b1c602082015290565b5f806148b09260018060a01b03169360208151910182865af16148a9612e6f565b9083615081565b80519081151591826148de575b50506148c65750565b60249060405190635274afe760e01b82526004820152fd5b6148f19250602080918301019101612e3a565b155f806148bd565b91906001810180911161074157600182018092116107415761491c82828561423f565b928215612c61570961492b5790565b600181018091116107415790565b600c548061494a57505f905f905f90565b805f19810111610741577fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c661498391600c5f5201613d7b565b9065ffffffffffff82511691602060018060d01b0391015116906001929190565b600a54806149b557505f905f905f90565b805f19810111610741577fc65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a761498391600a5f5201613d7b565b8054806149ff5750505f905f905f90565b5f1990808281011161074157614983925f5260205f200101613d7b565b80156143e65780614aee614ae7614add614ad3614ac9614abf614ab5614aab60016109a29a5f908b60801c80614b49575b508060401c80614b3c575b508060201c80614b2f575b508060101c80614b22575b508060081c80614b15575b508060041c80614b08575b508060021c80614afb575b50821c614af4575b811c1b614aa4818b614235565b0160011c90565b614aa4818a614235565b614aa48189614235565b614aa48188614235565b614aa48187614235565b614aa48186614235565b614aa48185614235565b8092614235565b90614223565b8101614a97565b600291509101905f614a8f565b600491509101905f614a84565b600891509101905f614a79565b601091509101905f614a6e565b602091509101905f614a63565b604091509101905f614a58565b9150506080905f614a4d565b828210614b6157505090565b9091614b6d8184615015565b90600a5f5265ffffffffffff80835f80516020615105833981519152015416908416105f14614b9f5750915b90614b55565b92506001810180911115614b9957612666565b828210614bbe57505090565b9091614bca8184615015565b90600c5f5265ffffffffffff80835f805160206150e5833981519152015416908416105f14614bfc5750915b90614bb2565b92506001810180911115614bf657612666565b905b838310614c1e5750505090565b909192614c2b8185615015565b90835f5265ffffffffffff808360205f20015416908416105f14614c535750925b9190614c11565b93506001810180911115614c4c57612666565b60ff5f805160206151c58339815191525460401c1615614c8257565b604051631afcd79f60e31b8152600490fd5b600c5490600160401b8210156108ab576001820180600c55821015612dcc57600c5f52805160209091015160301b65ffffffffffff191665ffffffffffff91909116175f805160206150e583398151915290910155565b600a5490600160401b8210156108ab576001820180600a55821015612dcc57600a5f52805160209091015160301b65ffffffffffff191665ffffffffffff91909116175f8051602061510583398151915290910155565b8054600160401b8110156108ab57614d5f91600182018155613a49565b614d8a57815160209092015160301b65ffffffffffff191665ffffffffffff92909216919091179055565b634e487b7160e01b5f525f60045260245ffd5b600c54919291908115614e6f57614db9613de4613ed38461267a565b805165ffffffffffff8381169491168410614e5d5785602093613b9395614de9613330865165ffffffffffff1690565b03614e255750614dfe613ed3614e179361267a565b9065ffffffffffff82549181199060301b169116179055565b01516001600160d01b031690565b9050614e589150614e45614e37610927565b65ffffffffffff9092168252565b6001600160d01b03871681850152614c94565b614e17565b604051632520601d60e01b8152600490fd5b614e939150614e7f614e37610927565b6001600160d01b0384166020820152614c94565b5f9190565b600a54919291908115614f1e57614eb4613de4613dce8461267a565b805165ffffffffffff8381169491168410614e5d5785602093613b9395614ee4613330865165ffffffffffff1690565b03614ef95750614dfe613dce614e179361267a565b9050614e589150614f0b614e37610927565b6001600160d01b03871681850152614ceb565b614e939150614f2e614e37610927565b6001600160d01b0384166020820152614ceb565b805492939291908215614ff157614f5e613de46146a98561267a565b90614f6f825165ffffffffffff1690565b65ffffffffffff84811691168110614e5d57613b93946020948892614f9d613330875165ffffffffffff1690565b03614fbe5750614e1792614fb3614dfe9261267a565b905f5260205f200190565b915050614e5891614fde614fd0610927565b65ffffffffffff9093168352565b6001600160d01b03881682860152614d42565b614e939250615001614fd0610927565b6001600160d01b0385166020830152614d42565b90808216911860011c81018091116107415790565b905b8383106150395750505090565b9091926150468185615015565b90835f5265ffffffffffff808360205f20015416908416105f1461506e5750925b919061502c565b9350600181018091111561506757612666565b906150a8575080511561509657805190602001fd5b604051630a12f52160e11b8152600490fd5b815115806150db575b6150b9575090565b604051639996b31560e01b81526001600160a01b039091166004820152602490fd5b50803b156150b156fedf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c7c65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a89016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300d7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb50175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db902dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268009b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a26469706673582212206764d46b458c94bc30a6b4a8199ffc550f65122fd0eea52d69629dd17905644864736f6c63430008190033","sourceMap":"199:2819:85:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;;;;;-1:-1:-1;;199:2819:85;;;;;;;;;;;;;;;;;;-1:-1:-1;;;3551:47:23;;;:87;;;;199:2819:85;;;;;;;;;;3551:87:23;-1:-1:-1;;;1133:40:29;;-1:-1:-1;3551:87:23;;;199:2819:85;-1:-1:-1;199:2819:85;;;;;;;;-1:-1:-1;;199:2819:85;;;;;;;966:38:96;199:2819:85;;;;;;;;;-1:-1:-1;;199:2819:85;;;;;;;821:37:96;199:2819:85;;;;-1:-1:-1;;;;;199:2819:85;;;;;:::o;:::-;;;;;;-1:-1:-1;;199:2819:85;;;;;;;;;:::i;:::-;;;3217:103:28;;;:::i;:::-;-1:-1:-1;;;;;199:2819:85;;5525:21:95;5521:75;;5634:10;199:2819:85;;;;5606:15:96;199:2819:85;;;;;5606:33:96;;;:::i;:24::-;:33;:::i;:::-;5610:35:95;;5606:88;;1057:70:87;5173:21:96;;:::i;:::-;4803:22;;:::i;:::-;1057:70:87;;;:::i;:::-;5801:20:95;;;5797:82;;5904:43;;;;:::i;:::-;3282:1:28;;1805;-1:-1:-1;;;;;;;;;;;199:2819:85;3716:283:28;3282:1;199:2819:85;;;;;;;;;;;;;;;;;;5797:82:95;199:2819:85;;-1:-1:-1;;;;;;5844:24:95;;199:2819:85;;5844:24:95;5606:88;199:2819:85;;-1:-1:-1;;;5668:15:95;;199:2819:85;;5668:15:95;5521:75;199:2819:85;;-1:-1:-1;;;5569:16:95;;199:2819:85;;5569:16:95;199:2819:85;;;;;;-1:-1:-1;;199:2819:85;;;;;;-1:-1:-1;199:2819:85;-1:-1:-1;;;;;;;;;;;199:2819:85;;;4919:24:23;199:2819:85;-1:-1:-1;199:2819:85;4919:24:23;199:2819:85;;;;;;;;;;;;;-1:-1:-1;;199:2819:85;;;;;;;;-1:-1:-1;;;;;199:2819:85;;;;;;;;;;;;;;-1:-1:-1;;199:2819:85;;;;4084:14:96;;:::i;:::-;4112:10;;4108:65;;4190:17;199:2819:85;;;;;;;;;;;;;;;;4210:27:96;199:2819:85;;;4210:27:96;;:::i;:::-;199:2819:85;;;;;;;4189:60:96;199:2819:85;4189:60:96;;:::i;:::-;199:2819:85;;;;;;;;;;;;;;;;;;:::i;4108:65:96:-;199:2819:85;;-1:-1:-1;;;4145:17:96;;199:2819:85;;4145:17:96;199:2819:85;;;;-1:-1:-1;;;;;199:2819:85;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;199:2819:85;;;;;;;;;;;;;;;:::o;:::-;;;;;;-1:-1:-1;;199:2819:85;;;;;;:::i;:::-;-1:-1:-1;;;;;199:2819:85;;;;;;;;;;;;;;:::i;:::-;3217:103:28;;;;:::i;:::-;1673:7:71;-1:-1:-1;;;;;199:2819:85;1659:10:71;:21;1655:71;;-1:-1:-1;;;;;;;;;;;199:2819:85;;;;;;;6431:44:25;;;;;199:2819:85;6427:105:25;;;;;-1:-1:-1;15924:8:95;;6427:105:25;199:2819:85;;-1:-1:-1;;;6498:23:25;;199:2819:85;;6498:23:25;6431:44;199:2819:85;;;;6450:25:25;;;-1:-1:-1;6431:44:25;;;;;1655:71:71;199:2819:85;;-1:-1:-1;;;1703:12:71;;199:2819:85;;1703:12:71;199:2819:85;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;199:2819:85;;;;;;;:::o;:::-;;:::i;:::-;;;;;;;-1:-1:-1;;;;;199:2819:85;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;199:2819:85;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;199:2819:85;;;;;;;:::o;:::-;;;;;;;;;;-1:-1:-1;;;;;199:2819:85;;;;;;;:::o;:::-;;;;;;;:::i;:::-;:::o;:::-;-1:-1:-1;;;;;199:2819:85;;;;;;-1:-1:-1;;199:2819:85;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;199:2819:85;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;;-1:-1:-1;;199:2819:85;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;199:2819:85;;;;;;;5383:59:96;199:2819:85;;;;;;:::i;:::-;-1:-1:-1;;;;;199:2819:85;;;-1:-1:-1;199:2819:85;;;5383:15:96;199:2819:85;;;;;5383:59:96;:::i;:::-;199:2819:85;;;;;;;;;;;;-1:-1:-1;;199:2819:85;;;;;;655:32:71;-1:-1:-1;;;;;199:2819:85;;;;;;;;;;;;-1:-1:-1;;199:2819:85;;;;5350:25:23;199:2819:85;;;;;;;:::i;:::-;;-1:-1:-1;199:2819:85;-1:-1:-1;;;;;;;;;;;199:2819:85;;3202:4:23;4919:24;199:2819:85;-1:-1:-1;199:2819:85;4919:24:23;199:2819:85;3202:4:23;:::i;:::-;5350:25;:::i;:::-;199:2819:85;;;;;;;-1:-1:-1;;199:2819:85;;;;;;;;;:::i;:::-;966:10:27;-1:-1:-1;;;;;199:2819:85;;6441:34:23;6437:102;;6549:37;199:2819:85;;;6549:37:23;:::i;6437:102::-;199:2819:85;;-1:-1:-1;;;6498:30:23;;199:2819:85;;6498:30:23;199:2819:85;;;;;;-1:-1:-1;;199:2819:85;;;;;1524:22:95;199:2819:85;;;;1524:46:95;;;199:2819:85;;;;;;;;;;;1524:46:95;-1:-1:-1;1550:20:95;199:2819:85;;;;;1524:46:95;;199:2819:85;;;;;;;:::o;:::-;;;;;;-1:-1:-1;;199:2819:85;;;;;;;;;:::i;:::-;3217:103:28;;:::i;:::-;3202:4:23;;:::i;:::-;-1:-1:-1;199:2819:85;;;;;;;;;;;9542:26:95;9538:76;;-1:-1:-1;;199:2819:85;;;;;-1:-1:-1;199:2819:85;;;;;;9665:27:95;;199:2819:85;;9665:27:95;1805:1:28;-1:-1:-1;;;;;;;;;;;199:2819:85;;9538:76:95;199:2819:85;;-1:-1:-1;;;9591:12:95;;199:2819:85;;9591:12:95;199:2819:85;;;;;;-1:-1:-1;;199:2819:85;;;;;;1718:31:96;199:2819:85;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3217:103:28;;:::i;:::-;-1:-1:-1;;;;;199:2819:85;;;;;3474:24:95;;3470:81;;-1:-1:-1;199:2819:85;;;;3565:55:95;;;199:2819:85;3561:118:95;;199:2819:85;;-1:-1:-1;;;3713:43:95;;;3750:4;3713:43;;;199:2819:85;;;;;;;;;;;;;;;;;;;;;;;;;3713:43:95;;;;;;;;;;-1:-1:-1;3713:43:95;;;199:2819:85;;3829:6:95;199:2819:85;;;3750:4:95;;3802:10;;3829:6;;:::i;:::-;-1:-1:-1;199:2819:85;;;3864:43:95;;;3750:4;3864:43;;;199:2819:85;;;;;;;;;;3864:43:95;199:2819:85;;;;;;3864:43:95;199:2819:85;;;;;3864:43:95;;;;;;;:59;:43;-1:-1:-1;3864:43:95;;;199:2819:85;3864:59:95;;;:::i;:::-;3938:20;;;3934:79;;199:2819:85;;;;;4027:64:95;;199:2819:85;4023:123:95;;5173:21:96;;199:2819:85;5173:21:96;4502:93:95;5173:21:96;;:::i;:::-;4803:22;4426:66:95;4803:22:96;;:::i;:::-;4349:67:95;390:70:87;;;;;:::i;:::-;837:15:62;4385:30:95;837:15:62;819:34;837:15;819:34;:::i;:::-;4385:30:95;;:::i;:::-;4349:67;;:::i;:::-;837:15:62;;4463:28:95;837:15:62;819:34;837:15;819:34;:::i;4463:28:95:-;4426:66;;:::i;:::-;-1:-1:-1;;;;;;;199:2819:85;;;;;;5606:15:96;199:2819:85;;;;;837:15:62;4553:41:95;837:15:62;5606:33:96;:24;819:34:62;837:15;819:34;:::i;:::-;-1:-1:-1;;;;;199:2819:85;;;;;;;5606:15:96;199:2819:85;;;;;;;5606:33:96;4553:41:95;:::i;:::-;4502:93;;:::i;:::-;-1:-1:-1;;199:2819:85;;;;;;;;;;;3802:10:95;;4611:62;;199:2819:85;;4611:62:95;3282:1:28;1805;-1:-1:-1;;;;;;;;;;;199:2819:85;3716:283:28;3282:1;199:2819:85;;;;;;;;;;;;;;;;;;;4023:123:95;199:2819:85;;-1:-1:-1;;;4114:21:95;;;4027:64;5173:21:96;4045:31:95;5173:21:96;;;:::i;4045:31:95:-;199:2819:85;;-1:-1:-1;4027:64:95;;3934:79;-1:-1:-1;199:2819:85;;-1:-1:-1;;;3981:21:95;;;3864:43;;;;;;-1:-1:-1;3864:43:95;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;;:::i;3713:::-;3829:6;3713:43;;;;;;;;;;;;;;;:::i;:::-;;;;;3561:118;-1:-1:-1;199:2819:85;;-1:-1:-1;;;3643:25:95;;;3565:55;-1:-1:-1;3609:10:95;199:2819:85;;;;3586:22:95;199:2819:85;;;;;;;;3585:35:95;3565:55;;3470:81;199:2819:85;;-1:-1:-1;;;3521:19:95;;;199:2819:85;;;;;;-1:-1:-1;;199:2819:85;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;199:2819:85;;;;;1805:27:96;199:2819:85;;;;;;;;;;;;;;;-1:-1:-1;;199:2819:85;;;;;;1968:34:96;199:2819:85;;;;;;;;;;;;;;;-1:-1:-1;;199:2819:85;;;;;;;;;;:::i;:::-;;;;;-1:-1:-1;;;;;199:2819:85;;;;;;;;;:::i;:::-;;;;;4622:48:96;199:2819:85;;;:::i;:::-;4622:48:96;;:::i;199:2819:85:-;;;;;;-1:-1:-1;;199:2819:85;;;;;;;;;:::i;:::-;3217:103:28;;:::i;:::-;3202:4:23;;:::i;:::-;-1:-1:-1;199:2819:85;;;;;;;;;;;;;10370:24:95;10366:74;;-1:-1:-1;;199:2819:85;;;;;;;;-1:-1:-1;199:2819:85;;;;;;10489:25:95;;199:2819:85;;10489:25:95;3282:1:28;1805;-1:-1:-1;;;;;;;;;;;199:2819:85;3716:283:28;199:2819:85;;;;;;-1:-1:-1;;199:2819:85;;;;;-1:-1:-1;;;;;;;;;;;;;;;;199:2819:85;;;;;;;;;;;;;;-1:-1:-1;;199:2819:85;;;;;;;;;:::i;:::-;449:5:82;-1:-1:-1;;;;;199:2819:85;435:10:82;:19;431:71;;1113:52:85;;;:::i;:::-;199:2819;;;;;;;;;;;;;;;;;;;-1:-1:-1;;199:2819:85;431:71:82;199:2819:85;;-1:-1:-1;;;477:14:82;;199:2819:85;;477:14:82;199:2819:85;;;;;;-1:-1:-1;;199:2819:85;;;;;;:::i;:::-;;;;;;:::i;:::-;-1:-1:-1;;;;;199:2819:85;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;8837:64:25;;199:2819:85;;;;;;734:29:71;730:87;;199:2819:85;;;;;6431:44:25;;;;;199:2819:85;6427:105:25;;;6656:20;199:2819:85;6656:20:25;199:2819:85;1167:340:71;199:2819:85;;;;-1:-1:-1;;;;;199:2819:85;;;;;6575:22:25;-1:-1:-1;;;;;;;;;;;;;;199:2819:85;;;;;;;;;6575:22:25;1167:340:71;:::i;:::-;-1:-1:-1;;;;;;;;;;;199:2819:85;;-1:-1:-1;;199:2819:85;;;;;-1:-1:-1;;;;;199:2819:85;;;;;;;;;;;;;6656:20:25;;;;199:2819:85;6431:44:25;199:2819:85;;;;;-1:-1:-1;6450:25:25;6431:44;;;730:87:71;199:2819:85;;-1:-1:-1;;;786:20:71;;199:2819:85;;786:20:71;199:2819:85;;;;;;-1:-1:-1;;199:2819:85;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;-1:-1:-1;;199:2819:85;;;;;;-1:-1:-1;199:2819:85;2431:59:96;199:2819:85;;;;-1:-1:-1;199:2819:85;;;;;;;;;;;;;;-1:-1:-1;;199:2819:85;;;;3875:17:96;199:2819:85;;3895:30:96;199:2819:85;;;;;3895:14:96;;;:::i;:::-;199:2819:85;;;3895:30:96;;:::i;:::-;199:2819:85;;;;;;;3874:63:96;199:2819:85;3874:63:96;;:::i;:::-;199:2819:85;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;199:2819:85;;;;;;;;-1:-1:-1;;199:2819:85;;;;:::o;:::-;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;199:2819:85;;;;;;;;;:::i;:::-;449:5:82;-1:-1:-1;;;;;199:2819:85;435:10:82;:19;431:71;;514:51:85;;;:::i;199:2819::-;;;;;;-1:-1:-1;;199:2819:85;;;;;;1200:42:96;-1:-1:-1;;;;;199:2819:85;;;;;;;;;;;;-1:-1:-1;;199:2819:85;;;;;;2136:32:96;199:2819:85;;;;;;;;;;;;;;;;;;-1:-1:-1;;199:2819:85;;;;2303:62:24;;:::i;:::-;-1:-1:-1;;;;;;;;;;;199:2819:85;;-1:-1:-1;;;;;;199:2819:85;;;;;;;-1:-1:-1;;;;;199:2819:85;3975:40:24;199:2819:85;;3975:40:24;199:2819:85;;;;;;;-1:-1:-1;;199:2819:85;;;;;;;;;;;:::i;:::-;3217:103:28;;:::i;:::-;7131:7:95;199:2819:85;7117:21:95;;-1:-1:-1;;;;;199:2819:85;;-1:-1:-1;;;;;199:2819:85;;;7117:21:95;:10;:21;7113:71;;7218:14;;:::i;:::-;7265:25;;;;:::i;:::-;7305:17;;;;:53;;;199:2819:85;7304:87:95;;;;199:2819:85;7300:146:95;;199:2819:85;5173:21:96;9310:48:95;5173:21:96;;;:::i;:::-;7540:17:95;7528:30;7540:17;;;:::i;:::-;199:2819:85;;7528:11:95;199:2819:85;;;;;;;7528:30:95;199:2819:85;;7572:29:95;;;;;7642:30;;;;;:::i;:::-;7702:32;;;;:::i;:::-;7752:17;;;7748:384;;7568:1615;;;;;;;9197:17;9193:102;;7568:1615;199:2819:85;;;;;;;;;;;;;;;;;;;;;;;9310:48:95;3282:1:28;1805;-1:-1:-1;;;;;;;;;;;199:2819:85;3716:283:28;3282:1;199:2819:85;;;;;;;;;;;;;9193:102:95;-1:-1:-1;199:2819:85;9270:13:95;;199:2819:85;;9230:18:95;;199:2819:85;;-1:-1:-1;;;;;199:2819:85;;;9230:18:95;7556:1;199:2819:85;-1:-1:-1;;;;;199:2819:85;9270:13:95;;:::i;:::-;9193:102;;7748:384;8045:29;7813:50;7962:65;7813:50;7998:28;7914:29;7813:50;8057:16;7813:50;8077:40;7813:50;;;:::i;:::-;7914:29;;;:::i;:::-;837:15:62;819:34;837:15;819:34;:::i;:::-;7998:28:95;;:::i;8077:40::-;8057:16;;:::i;8045:29::-;199:2819:85;7748:384:95;;;;;;;7568:1615;8185:26;;;;199:2819:85;;7528:11:95;199:2819:85;;;;;;;8185:26:95;199:2819:85;8250:27:95;:45;:27;;;;;:::i;:45::-;8325:32;;;;;:::i;:::-;8375:17;;8371:802;;7568:1615;;;;;;;;8371:802;9096:26;8436:50;;8537:53;8436:50;8637:54;8436:50;8637:29;8436:50;9125:33;8436:50;;;;:::i;:::-;8537:53;;;;;;:::i;:::-;8637:29;;;;:::i;:::-;:54;:::i;:::-;8714:33;;;;8710:194;;8371:802;8922:65;837:15:62;8958:28:95;9038:40;837:15:62;;;819:34;837:15;819:34;:::i;9038:40:95:-;9005:30;9017:17;;;:::i;9005:30::-;199:2819:85;9125:33:95;:::i;:::-;9096:26;199:2819:85;;7528:11:95;199:2819:85;;;;;;;9096:26:95;199:2819:85;8371:802:95;;;;;;;8710:194;8797:33;8771:59;8922:65;8797:33;;;9038:40;8797:33;;;:::i;:::-;8771:59;;:::i;:::-;8852:33;;-1:-1:-1;8852:33:95;;-1:-1:-1;8710:194:95;;7300:146;199:2819:85;;-1:-1:-1;;;7414:21:95;;199:2819:85;;7414:21:95;7304:87;7363:28;;;;7304:87;;7305:53;7341:17;;;;:::i;:::-;7326:32;;7305:53;;7113:71;199:2819:85;;-1:-1:-1;;;7161:12:95;;199:2819:85;;7161:12:95;199:2819:85;;;;;;-1:-1:-1;;199:2819:85;;;;4384:17:96;199:2819:85;;;;;;;4405:14:96;;;:::i;:::-;4384:17;199:2819:85;;;;;;;4404:36:96;199:2819:85;;;4404:36:96;;:::i;199:2819:85:-;;;;;;-1:-1:-1;;199:2819:85;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;199:2819:85;;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;199:2819:85;2307:68:96;199:2819:85;;;;;-1:-1:-1;199:2819:85;;;;;;;;;;;;;;;;;-1:-1:-1;;199:2819:85;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;-1:-1:-1;;199:2819:85;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;199:2819:85;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6491:14:95;199:2819:85;;6491:14:95;;:::i;199:2819:85:-;;;;;4994:47:96;199:2819:85;;;:::i;:::-;4994:47:96;;:::i;199:2819:85:-;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;3217:103:28;;:::i;:::-;10932:22:95;199:2819:85;;;;;10928:89:95;;199:2819:85;;-1:-1:-1;;;11032:49:95;;-1:-1:-1;;;;;199:2819:85;;;11032:49:95;;;199:2819:85;;;;;;;;;;;;;;;11032:49:95;11042:17;;;199:2819:85;11032:49:95;;;;;;;-1:-1:-1;11032:49:95;;;199:2819:85;11031:50:95;;11027:102;;199:2819:85;;-1:-1:-1;;;11143:34:95;;199:2819:85;;;;;11143:34:95;199:2819:85;11143:34:95;199:2819:85;;11143:34:95;;;;;;;-1:-1:-1;11143:34:95;;;199:2819:85;11189:4:95;;;199:2819:85;;11143:51:95;11139:107;;-1:-1:-1;10932:22:95;199:2819:85;;-1:-1:-1;;;;;199:2819:85;;;;-1:-1:-1;;;;;;199:2819:85;;;;;;;-1:-1:-1;;;199:2819:85;;;11334:24:95;-1:-1:-1;;11334:24:95;3282:1:28;1805;-1:-1:-1;;;;;;;;;;;199:2819:85;3716:283:28;11139:107:95;199:2819:85;;-1:-1:-1;;;11217:18:95;;;11143:34;;;;;;;-1:-1:-1;11143:34:95;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;11027:102;-1:-1:-1;199:2819:85;;-1:-1:-1;;;11104:14:95;;;11032:49;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;10928:89;199:2819:85;;-1:-1:-1;;;10977:29:95;;;199:2819:85;;;;;;-1:-1:-1;;199:2819:85;;;;;;1298:40:96;-1:-1:-1;;;;;199:2819:85;;;;;;;;;;;;-1:-1:-1;;199:2819:85;;;;1703:14:95;;:::i;:::-;5173:21:96;;:::i;:::-;199:2819:85;;;;1750:11:95;199:2819:85;;;;;;;;;;;;;1791:1:95;199:2819:85;;;;;;;;;1750:11:95;199:2819:85;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;199:2819:85;;;;-1:-1:-1;;;;;;;;;;;199:2819:85;;;-1:-1:-1;;;;;199:2819:85;;;;;;;;;;;;;;-1:-1:-1;;199:2819:85;;;;;;3901:31:23;199:2819:85;;;;;:::i;:::-;;;-1:-1:-1;199:2819:85;-1:-1:-1;;;;;;;;;;;199:2819:85;;;-1:-1:-1;199:2819:85;;;;;;;;;;;;;;;;;3901:31:23;199:2819:85;;;;;;;;;;;;;;;;-1:-1:-1;;199:2819:85;;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;199:2819:85;5606:15:96;199:2819:85;;;5606:33:96;199:2819:85;-1:-1:-1;199:2819:85;5606:33:96;:::i;199:2819:85:-;;;;;;-1:-1:-1;;199:2819:85;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;199:2819:85;;;;-1:-1:-1;199:2819:85;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;416:25:75;;;;477:31;416:25;;:::i;:::-;199:2819:85;;;;;;;;;;477:31:75;;199:2819:85;;;;;;;;;;;:::i;:::-;477:31:75;199:2819:85;;477:31:75;;;;;;:::i;:::-;518:79;;;199:2819:85;518:79:75;;199:2819:85;;;;;;-1:-1:-1;;199:2819:85;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;199:2819:85;;;;;;;;;;;;;;;;;-1:-1:-1;;199:2819:85;;;;;;;1109:35:96;199:2819:85;;;;;;;;;-1:-1:-1;;199:2819:85;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;3217:103:28;;:::i;:::-;3202:4:23;;:::i;:::-;-1:-1:-1;;;;;199:2819:85;;;9907:21:95;;9903:75;;-1:-1:-1;199:2819:85;;;9992:22:95;199:2819:85;;;;;;;;;;;;;9992:41:95;9988:91;;-1:-1:-1;;;;;199:2819:85;;;;;3586:22:95;199:2819:85;;;;;10145:44:95;;;;10089:40;;:31;199:2819:85;;;;;;;;;;;;;;10089:40:95;199:2819:85;;;;;;;;;;;;;;;10145:44:95;;;;3282:1:28;1805;-1:-1:-1;;;;;;;;;;;199:2819:85;3716:283:28;9903:75:95;199:2819:85;;-1:-1:-1;;;9951:16:95;;199:2819:85;;9951:16:95;199:2819:85;;;;;;-1:-1:-1;;199:2819:85;;;;;2666:94:96;199:2819:85;;;;;:::i;:::-;;;-1:-1:-1;199:2819:85;2666:94:96;199:2819:85;;;-1:-1:-1;199:2819:85;;;;;;;;;;;;;;;;;2666:94:96;199:2819:85;;;;;;;;;;;;;-1:-1:-1;;199:2819:85;;;;;;2816:92:96;199:2819:85;;;;;:::i;:::-;;;-1:-1:-1;199:2819:85;2816:92:96;199:2819:85;;;-1:-1:-1;199:2819:85;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3217:103:28;;:::i;:::-;11459:20:95;199:2819:85;;;;;11455:85:95;;-1:-1:-1;;;;;199:2819:85;;;;;;11550:312:95;;199:2819:85;11459:20:95;199:2819:85;;-1:-1:-1;;;;199:2819:85;-1:-1:-1;;;199:2819:85;;;11872:27:95;11915:20;-1:-1:-1;11915:20:95;;3282:1:28;1805;-1:-1:-1;;;;;;;;;;;199:2819:85;3716:283:28;11550:312:95;199:2819:85;;-1:-1:-1;;;11597:45:95;;-1:-1:-1;;;;;199:2819:85;;11597:45:95;;;199:2819:85;;;11597:45:95;;199:2819:85;;;;;;11597:45:95;11607:15;;;199:2819:85;11597:45:95;;;;;;;-1:-1:-1;11597:45:95;;;11550:312;11596:46;;11592:104;;199:2819:85;;-1:-1:-1;;;11714:30:95;;;199:2819:85;11714:30:95;199:2819:85;11714:30:95;;;;;;;;-1:-1:-1;11714:30:95;;;11550:312;11756:4;;;199:2819:85;;11714:47:95;11710:109;;-1:-1:-1;11459:20:95;199:2819:85;;-1:-1:-1;;;;;;199:2819:85;-1:-1:-1;;;;;199:2819:85;;;;;;;;;11550:312:95;;;;;;11710:109;199:2819:85;;-1:-1:-1;;;11788:16:95;;;11714:30;;;;;;;-1:-1:-1;11714:30:95;;;;;;:::i;:::-;;;;;;11592:104;199:2819:85;;-1:-1:-1;;;11669:12:95;;199:2819:85;;11669:12:95;11597:45;;;;;;;;;;;;;;:::i;:::-;;;;11455:85;199:2819:85;;-1:-1:-1;;;11502:27:95;;;199:2819:85;;;;;;-1:-1:-1;;199:2819:85;;;;;;;;;:::i;:::-;;;3217:103:28;;;:::i;:::-;-1:-1:-1;;;;;199:2819:85;;;;;6112:23:95;;6108:79;;6273:6;199:2819:85;6206:13:95;;;;:::i;:::-;199:2819:85;;;-1:-1:-1;199:2819:85;;;;6273:6:95;:::i;:::-;199:2819:85;;;;;;;;;;;;6302:10:95;;6296:43;;199:2819:85;6296:43:95;1805:1:28;-1:-1:-1;;;;;;;;;;;199:2819:85;;;;;;;;;;;;;;6108:79:95;199:2819:85;;-1:-1:-1;;;6158:18:95;;199:2819:85;;6158:18:95;199:2819:85;;;;;;-1:-1:-1;;199:2819:85;;;;;;-1:-1:-1;199:2819:85;2546:64:96;199:2819:85;;;;-1:-1:-1;199:2819:85;;;;;;;;;;;;;;-1:-1:-1;;199:2819:85;;;;2058:22:96;199:2819:85;;;-1:-1:-1;;;;;199:2819:85;;;;;;;;;;;;;;-1:-1:-1;;199:2819:85;;;;;5173:21:96;;:::i;199:2819:85:-;;;;;;-1:-1:-1;;199:2819:85;;;;;;3217:103:28;;:::i;:::-;966:10:27;-1:-1:-1;199:2819:85;;;;;;;;;;1109:35:96;;199:2819:85;;4468:23:23;4464:108;;199:2819:85;;;;10692:21:95;10688:71;;199:2819:85;;10805:22:95;199:2819:85;;;;;;;;10805:22:95;1805:1:28;-1:-1:-1;;;;;;;;;;;199:2819:85;;4464:108:23;199:2819:85;;;;4514:47:23;;;;;;966:10:27;199:2819:85;4514:47:23;;199:2819:85;;;;;4514:47:23;199:2819:85;;;;;;-1:-1:-1;;199:2819:85;;;;;4803:22:96;;:::i;199:2819:85:-;;;;;;-1:-1:-1;;199:2819:85;;;;;;;;;:::i;:::-;3123:14:95;;:::i;:::-;3154:24;;;:::i;:::-;3181:29;;;;;:::i;:::-;199:2819:85;;;;;;;3235:1:95;199:2819:85;;;;;;;3213:33:95;;;:::i;:::-;199:2819:85;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;199:2819:85;;;;1888:24:96;199:2819:85;;;-1:-1:-1;;;;;199:2819:85;;;;;;;;;;;;;;-1:-1:-1;;199:2819:85;;;;5767:26:23;199:2819:85;;;;;;;:::i;:::-;;-1:-1:-1;199:2819:85;-1:-1:-1;;;;;;;;;;;199:2819:85;;3202:4:23;4919:24;199:2819:85;-1:-1:-1;199:2819:85;4919:24:23;199:2819:85;3202:4:23;:::i;:::-;5767:26;:::i;199:2819:85:-;;;;;;-1:-1:-1;;199:2819:85;;;;;;;;;;;;;-1:-1:-1;;;;;199:2819:85;;;;;;;;;;;;-1:-1:-1;;199:2819:85;;;;;;;675:39:96;199:2819:85;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;:::i;:::-;-1:-1:-1;;;;;449:5:82;199:2819:85;;435:10:82;:19;431:71;;1742:63:85;199:2819;;-1:-1:-1;199:2819:85;1742:15;199:2819;;;-1:-1:-1;199:2819:85;1742:63;:::i;199:2819::-;;;;;;-1:-1:-1;;199:2819:85;;;;;;;;;;;;;;;;;;;-1:-1:-1;;199:2819:85;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;-1:-1:-1;;;;;199:2819:85;;;;;;;;;;;;;;;:::i;:::-;1972:48:95;;199:2819:85;;;;;;;:::i;:::-;;;;;;;;;;;;;;2034:16:95;;2030:111;;199:2819:85;;2233:39:95;1057:70:87;2233:39:95;;4622:48:96;2196:77:95;2233:39;;;;2196:77;;:::i;:::-;2312:36;;4994:47:96;199:2819:85;2312:36:95;;;4994:47:96;;:::i;:::-;2389:37:95;;;4622:48:96;;:::i;:::-;1057:70:87;;:::i;:::-;199:2819:85;;;;;;;;;;;;;2030:111:95;2089:41;;;;-1:-1:-1;199:2819:85;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;4622:48:96;199:2819:85;2196:77:95;199:2819:85;1057:70:87;199:2819:85;;;:::i;:::-;;;;;2030:111:95;;;;;199:2819:85;;;;;;-1:-1:-1;;199:2819:85;;;;2357:1:24;199:2819:85;;;;;:::i;:::-;2303:62:24;;:::i;:::-;2357:1;:::i;199:2819:85:-;;;;;;-1:-1:-1;;199:2819:85;;;;;;;;;:::i;:::-;;;3217:103:28;;:::i;:::-;-1:-1:-1;;;;;199:2819:85;;4890:21:95;4886:75;;4975:11;;4971:73;;845:69:87;4803:22:96;;:::i;:::-;5173:21;;:::i;:::-;845:69:87;;;:::i;:::-;5180:10:95;199:2819:85;;;;5606:15:96;199:2819:85;;;;;5180:10:95;;;5606:33:96;;;:::i;:::-;5150:41:95;;5146:96;;5267:40;;;;;:::i;5146:96::-;199:2819:85;;-1:-1:-1;;;5214:17:95;;199:2819:85;;5214:17:95;4971:73;199:2819:85;;-1:-1:-1;;;5009:24:95;;199:2819:85;;5009:24:95;199:2819:85;;;;;;-1:-1:-1;;199:2819:85;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;199:2819:85;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;:::o;:::-;;7556:1:95;199:2819:85;;;;;;;:::o;:::-;;;;;;;;;;:::o;5256:193:96:-;-1:-1:-1;;;;;199:2819:85;-1:-1:-1;199:2819:85;;;5383:15:96;199:2819:85;;;;;5383:59:96;;5256:193;;5383:59;:::i;199:2819:85:-;;;;;;;;;;;:::o;:::-;;;;;;;;;;1167:340:71;;13510:30:95;1167:340:71;199:2819:85;1167:340:71;6893:76:25;;:::i;:::-;;;:::i;:::-;1805:1:28;-1:-1:-1;;;;;;;;;;;199:2819:85;-1:-1:-1;;;;;199:2819:85;;;;1376:73:71;;1167:340;199:2819:85;;;;:::i;:::-;13510:30:95;199:2819:85;;;13510:30:95;;;;;;:::i;:::-;199:2819:85;;;;-1:-1:-1;;;;;199:2819:85;13555:31:95;13551:88;;13653:20;;;;199:2819:85;;;;;;;;;;13653:25:95;13649:85;;13748:29;;;199:2819:85;;13748:29:95;;199:2819:85;13748:43:95;;-1:-1:-1;;;;;199:2819:85;;;13748:43:95;;13744:943;;1167:340:71;199:2819:85;;;15647:32:95;199:2819:85;14817:36:95;199:2819:85;;;14697:30:95;199:2819:85;;;;;;;;;;;;1398:1:71;199:2819:85;;-1:-1:-1;;;;;;199:2819:85;;;;;;-1:-1:-1;;;;;199:2819:85;;;;;;;;14697:30:95;13510;14747:13;;199:2819:85;;;;-1:-1:-1;;;;;;199:2819:85;-1:-1:-1;;;;;199:2819:85;;;;;;;;;14771:36:95;819:34:62;837:15;819:34;:::i;:::-;1805:1:28;199:2819:85;;-1:-1:-1;;;;199:2819:85;;;;;;-1:-1:-1;;;199:2819:85;;;;;;;;14771:36:95;199:2819:85;;;;;;1805:1:28;199:2819:85;;-1:-1:-1;;;;;199:2819:85;;;;;;-1:-1:-1;;;;;;199:2819:85;;;;;;;;14817:36:95;14864:42;199:2819:85;14883:23:95;;;199:2819:85;;;;;;;;;1398:1:71;199:2819:85;;;;;;;1398:1:71;199:2819:85;;14864:42:95;14917:38;199:2819:85;14934:21:95;;;199:2819:85;;;;;;;1398:1:71;199:2819:85;;;;;;;;;;;;1398:1:71;199:2819:85;;14917:38:95;14965:34;14980:19;;;199:2819:85;14965:34:95;199:2819:85;;14965:34:95;199:2819:85;-1:-1:-1;;;;;199:2819:85;;;;;;;15010:135:95;;1167:340:71;-1:-1:-1;15158:36:95;;;199:2819:85;-1:-1:-1;;;;;199:2819:85;;;;15154:157:95;;1167:340:71;-1:-1:-1;15324:35:95;;;199:2819:85;-1:-1:-1;;;;;199:2819:85;;;;15320:153:95;;1167:340:71;-1:-1:-1;15486:34:95;;;199:2819:85;-1:-1:-1;;;;;199:2819:85;;;;15482:152:95;;1167:340:71;-1:-1:-1;15647:32:95;199:2819:85;-1:-1:-1;;;;;199:2819:85;;;;;;;15643:145:95;;1167:340:71;:::o;15643:145:95:-;15709:68;;;:::i;:::-;;1167:340:71:o;15482:152:95:-;15550:73;;;:::i;:::-;;15482:152;;;15320:153;15389:73;;;:::i;:::-;;15320:153;;;15154:157;15224:76;;;:::i;:::-;;15154:157;;;15010:135;15073:61;;;:::i;:::-;;15010:135;;;13744:943;13811:36;;;199:2819:85;13811:50:95;;-1:-1:-1;;;;;199:2819:85;;;13811:50:95;;13807:405;;13744:943;14230:34;;;199:2819:85;14230:48:95;;-1:-1:-1;;;;;199:2819:85;;;14230:48:95;13744:943;14226:451;14302:21;;;199:2819:85;;14302:21:95;;14351:19;;;199:2819:85;14351:24:95;:74;;;14298:365;14347:150;;14298:365;;199:2819:85;15647:32:95;14298:365;14817:36;199:2819:85;;14298:365:95;;14226:451;;;;;;;13744:943;;14347:150;199:2819:85;-1:-1:-1;;;14460:14:95;;;;;14351:74;-1:-1:-1;14379:32:95;;;199:2819:85;14379:46:95;;-1:-1:-1;;;;;199:2819:85;;;14379:46:95;;14351:74;;14298:365;14525:19;;;199:2819:85;14525:24:95;;;:74;;;14298:365;14521:142;;14298:365;;199:2819:85;15647:32:95;14298:365;14817:36;199:2819:85;;14298:365:95;;;14525:74;-1:-1:-1;14553:32:95;;;199:2819:85;14553:46:95;;-1:-1:-1;;;;;199:2819:85;;;14553:46:95;;;14525:74;;13807:405;13885:23;;;199:2819:85;;13885:23:95;;13936:35;;;199:2819:85;13936:49:95;;-1:-1:-1;;;;;199:2819:85;;;13936:49:95;13807:405;13932:125;199:2819:85;-1:-1:-1;;;14020:14:95;;;;;13881:317;14085:35;;;199:2819:85;14085:49:95;;-1:-1:-1;;;;;199:2819:85;;;14085:49:95;14081:117;13807:405;14081:117;199:2819:85;-1:-1:-1;;;14165:14:95;;;;;13649:85;199:2819:85;;-1:-1:-1;;;13701:22:95;;;;;13551:88;199:2819:85;;-1:-1:-1;;;13609:19:95;;;;;1376:73:71;6961:1:25;6893:76;;;:::i;:::-;;;:::i;6961:1::-;1376:73:71;;;2492:191:95;-1:-1:-1;;;;;199:2819:85;-1:-1:-1;199:2819:85;;;5606:15:96;199:2819:85;;;;;5606:33:96;;;:::i;:::-;5173:21;;:::i;:::-;4803:22;;:::i;:::-;199:2819:85;1884:1:87;199:2819:85;;;;;;;1884:1:87;199:2819:85;;;;;;;8188:25:57;;;:::i;199:2819:85:-;;;;;;:::i;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::i;578:368::-;;;735:95;711:157;578:368;199:2819;;;;;766:63;;;;;;;;199:2819;766:63;;;199:2819;766:63;;;;;;:::i;:::-;735:95;:::i;:::-;766:63;199:2819;;;711:157;;;;;;:::i;:::-;879:61;;;578:368;:::o;879:61::-;199:2819;;;;;;;;766:63;912:17;;199:2819;766:63;912:17;;;;;:::i;199:2819::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;:::i;3612:132:96:-;819:34:62;837:15;819:34;:::i;:::-;3683:54:96;3703:17;199:2819:85;3684:36:96;199:2819:85;;;;;;;3684:36:96;;:::i;:::-;199:2819:85;;;3683:54:96;;:::i;:::-;199:2819:85;3612:132:96;:::o;3313:244::-;3418:17;199:2819:85;;;;;;;;;;;;;;3406:29:96;3402:85;;3503:47;3504:29;;;;:::i;3402:85::-;199:2819:85;;-1:-1:-1;;;3458:18:96;;;;;3217:103:28;;;;:::i;:::-;199:2819:85;;-1:-1:-1;;;;;199:2819:85;;;6521:23:95;;6517:79;;6650:11;;6646:70;;199:2819:85;6742:10:95;;;;;;-1:-1:-1;199:2819:85;;6887:49:95;;199:2819:85;;;;6864:6:95;;199:2819:85;;6821:18:95;;199:2819:85;;-1:-1:-1;;;;;199:2819:85;;;6821:18:95;6864:6;:::i;:::-;6887:49;199:2819:85;;6898:10:95;;;;6887:49;;;:::i;:::-;;;;3282:1:28;;1805;-1:-1:-1;;;;;;;;;;;199:2819:85;3716:283:28;6754:3:95;6790:9;6773:27;199:2819:85;6790:9:95;6783:17;6790:9;;;;;:::i;:::-;199:2819:85;6783:17:95;:::i;6773:27::-;6754:3;199:2819:85;6731:9:95;;6646:70;199:2819:85;;-1:-1:-1;;;6684:21:95;;;;;199:2819:85;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;199:2819:85;;;;;;;;;;;;;;;;;;;;;;:::o;1178:370::-;;;1336:96;1312:158;1178:370;199:2819;;;;;1367:64;;;;;;;;199:2819;1367:64;;;199:2819;1367:64;;;;;;:::i;199:2819::-;;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;-1:-1:-1;199:2819:85;;;;:::o;:::-;;;:::o;1818:400::-;199:2819;;-1:-1:-1;;;2026:75:85;;;;-1:-1:-1;;;;;199:2819:85;;;2026:75;;;199:2819;;;;;;;;;;;;;2026:75;;199:2819;;1818:400;1971:169;;1995:107;;2026:75;199:2819;2026:75;:::i;3405:215:24:-;-1:-1:-1;;;;;199:2819:85;;;;3489:22:24;;3485:91;;-1:-1:-1;;;;;;;;;;;199:2819:85;;-1:-1:-1;;;;;;199:2819:85;;;;;;;;3975:40:24;-1:-1:-1;;3975:40:24;3405:215::o;3485:91::-;199:2819:85;;-1:-1:-1;;;3534:31:24;;3509:1;3534:31;;;199:2819:85;;;3534:31:24;2731:227:95;;2871:34;2731:227;199:2819:85;-1:-1:-1;199:2819:85;2871:18:95;199:2819:85;;;-1:-1:-1;199:2819:85;;;;;;;;;;;;;;;;;2871:34:95;199:2819:85;;-1:-1:-1;199:2819:85;2907:11:95;199:2819:85;;;-1:-1:-1;199:2819:85;;2927:16:95;199:2819:85;;;-1:-1:-1;199:2819:85;;;1884:1:87;199:2819:85;;;;;;;1884:1:87;199:2819:85;;;;;;;8188:25:57;;;:::i;2224:792:85:-;;;;;2579:34;2416:45;2357:12;199:2819;2416:45;;;:::i;:::-;2503:33;;;;;:::i;:::-;2579:34;;:::i;:::-;199:2819;;;2628:30;;;:61;;;2224:792;2628:93;;;;2224:792;2624:386;;2224:792;;;:::o;2624:386::-;199:2819;;;;2744:255;199:2819;;;;;;;;;;:::i;:::-;;;2772:213;;;199:2819;;;;2772:213;;199:2819;;;;;;2744:255;;;2772:213;2744:255;;;199:2819;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;2628:93::-;199:2819;;;2693:28;;2628:93;;:61;199:2819;;;2662:27;;2628:61;;3326:384:28;-1:-1:-1;;;;;;;;;;;1847:1:28;199:2819:85;;3526:20:28;3522:88;;1847:1;199:2819:85;;3326:384:28:o;3522:88::-;199:2819:85;;-1:-1:-1;;;3569:30:28;;;;;11948:968:95;12135:10;199:2819:85;;;;5606:15:96;199:2819:85;;;;;;11948:968:95;;;819:34:62;837:15;819:34;:::i;:::-;12135:10:95;199:2819:85;;;;5606:15:96;199:2819:85;;;;;5606:33:96;;;:::i;:::-;199:2819:85;;;;;;;;;12119:93:95;12835:74;12119:93;;;12660:30;12119:93;;:::i;:::-;837:15:62;;12222:67:95;819:34:62;837:15;819:34;:::i;:::-;12259:29:95;4803:22:96;;;:::i;12222:67:95:-;837:15:62;;12299:68:95;819:34:62;837:15;819:34;:::i;:::-;12335:31:95;5173:21:96;;;:::i;12299:68:95:-;12394:14;;12769:34;12394:14;12769:25;12394:18;:14;;:::i;:::-;:18;:::i;:::-;12726:33;12445:18;;199:2819:85;;7528:11:95;199:2819:85;;;;;;;12445:18:95;199:2819:85;12502:23:95;;199:2819:85;;12502:16:95;199:2819:85;;;;;;;12502:23:95;199:2819:85;390:70:87;;;;;:::i;:::-;12660:30:95;;;;;;:::i;:::-;12639:18;;199:2819:85;;7528:11:95;199:2819:85;;;;;;;12639:18:95;199:2819:85;12726:33:95;:::i;:::-;12700:23;;199:2819:85;;12502:16:95;199:2819:85;;;;;;;12700:23:95;199:2819:85;;;12769:18:95;199:2819:85;;;;;;;12769:25:95;199:2819:85;;;;;;;;;;;;;;;;12769:34:95;:50;199:2819:85;;;12769:50:95;:::i;:::-;199:2819:85;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;199:2819:85;;;;12135:10:95;;199:2819:85;;12835:74:95;11948:968::o;14291:213:58:-;199:2819:85;14369:24:58;;;;14365:103;;199:2819:85;14291:213:58;:::o;14365:103::-;199:2819:85;;;;14416:41:58;;;;;;14447:2;14416:41;;;199:2819:85;;;;;14416:41:58;199:2819:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::o;7558:604:86:-;;199:2819:85;;7686:17:86;7682:83;;199:2819:85;7789:27:86;199:2819:85;7789:27:86;199:2819:85;;7789:27:86;;;;;;:::i;:::-;7860:14;;;:::i;:::-;199:2819:85;;;;;;;;;;;;;;;;7888:22:86;;;7884:77;;7975:21;-1:-1:-1;7975:84:86;;;;7558:604;7971:139;;;;8127:28;;;;:::i;7971:139::-;7789:27;8082:17;;;199:2819:85;8075:24:86;:::o;7975:84::-;199:2819:85;;;8009:16:86;4622:13:96;199:2819:85;8009:16:86;:::i;:::-;199:2819:85;;;8001:24:86;:57;;;;;7975:84;;;;;;;8001:57;8029:29;8038:8;;;8029:18;8038:8;8029:23;8038:8;;:::i;:::-;8029:18;:::i;:23::-;199:2819:85;;;;8029:29:86;;8001:57;;;;7884:77;7933:17;;;7789:27;7933:17;;;199:2819:85;7926:24:86;:::o;7682:83::-;7726:28;;;;:::i;7558:604::-;;199:2819:85;;7686:17:86;7682:83;;199:2819:85;7789:27:86;199:2819:85;7789:27:86;199:2819:85;;7789:27:86;;;;;;:::i;:::-;7860:14;;;:::i;:::-;199:2819:85;;;;;;;;;;;;;;;;7888:22:86;;;7884:77;;7975:21;-1:-1:-1;7975:84:86;;;;7558:604;7971:139;;;;8127:28;;;;:::i;7975:84::-;199:2819:85;;;8009:16:86;4994:12:96;199:2819:85;8009:16:86;:::i;:::-;199:2819:85;;;8001:24:86;:57;;;;;7975:84;;;;;;;8001:57;8029:29;8038:8;;;8029:18;8038:8;8029:23;8038:8;;:::i;:::-;8029:18;:::i;:29::-;;8001:57;;;;7682:83;7726:28;;;;:::i;7558:604::-;;199:2819:85;;7686:17:86;7682:83;;199:2819:85;7789:27:86;199:2819:85;7789:27:86;199:2819:85;;7789:27:86;;;;;;:::i;:::-;7860:14;;;;;:::i;:::-;199:2819:85;;;;;;;;;;;;;;;;7888:22:86;;;7884:77;;7975:21;-1:-1:-1;7975:84:86;;;;7558:604;7971:139;;;;8127:28;;;;:::i;7971:139::-;8082:17;;7789:27;8082:17;199:2819:85;8075:24:86;:::o;7975:84::-;199:2819:85;;;8009:16:86;199:2819:85;;8009:16:86;:::i;:::-;199:2819:85;;;8001:24:86;:57;;;;;7975:84;;;;;;;8001:57;8029:29;8038:8;;;8029:18;8038:8;8029:23;8038:8;;:::i;:::-;8029:18;;:::i;:29::-;;8001:57;;;;7884:77;7933:17;;;;;7789:27;7933:17;199:2819:85;7926:24:86;:::o;7682:83::-;7726:28;;;;:::i;4148:103:23:-;966:10:27;-1:-1:-1;199:2819:85;;;;;;;;;675:39:96;;199:2819:85;;3901:31:23;199:2819:85;;4468:23:23;4464:108;;4148:103;:::o;:::-;966:10:27;-1:-1:-1;199:2819:85;;;;;;;;;966:38:96;;199:2819:85;;3901:31:23;199:2819:85;4148:103:23;966:10:27;-1:-1:-1;199:2819:85;;;;;;;;;821:37:96;;199:2819:85;;3901:31:23;199:2819:85;4148:103:23;-1:-1:-1;199:2819:85;;;-1:-1:-1;;;;;;;;;;;199:2819:85;;;;;;;;966:10:27;199:2819:85;;;;;;;;;3901:31:23;199:2819:85;7270:387:23;-1:-1:-1;;;;;199:2819:85;;1398:1:71;199:2819:85;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2887:71:23;199:2819:85;;;;1398:1:71;199:2819:85;;;;;;;;;;;-1:-1:-1;;;;;199:2819:85;;;;;;;;;;-1:-1:-1;;199:2819:85;7509:4:23;199:2819:85;;;966:10:27;;-1:-1:-1;;;;;199:2819:85;-1:-1:-1;7532:40:23;-1:-1:-1;;7532:40:23;7509:4;7586:11;:::o;7432:219::-;7628:12;;1398:1:71;7628:12:23;:::o;7270:387::-;-1:-1:-1;;;;;199:2819:85;;-1:-1:-1;199:2819:85;;;;;;;;;675:39:96;;-1:-1:-1;;;;;;;;;;;2887:71:23;199:2819:85;;3901:31:23;199:2819:85;;;;-1:-1:-1;199:2819:85;;;;;;;;;;;-1:-1:-1;;;;;199:2819:85;;;;;;;;;;-1:-1:-1;;199:2819:85;7509:4:23;199:2819:85;;;966:10:27;;-1:-1:-1;;;;;199:2819:85;;7532:40:23;-1:-1:-1;;7532:40:23;7509:4;7586:11;:::o;7432:219::-;7628:12;;;-1:-1:-1;7628:12:23;:::o;7270:387::-;-1:-1:-1;;;;;199:2819:85;;-1:-1:-1;199:2819:85;;;;;;;;;821:37:96;;-1:-1:-1;;;;;;;;;;;2887:71:23;199:2819:85;;3901:31:23;199:2819:85;7270:387:23;-1:-1:-1;;;;;199:2819:85;;-1:-1:-1;199:2819:85;;;;;;;;;966:38:96;;-1:-1:-1;;;;;;;;;;;2887:71:23;199:2819:85;;3901:31:23;199:2819:85;7270:387:23;-1:-1:-1;;;;;199:2819:85;;-1:-1:-1;199:2819:85;;;;;;;;;1109:35:96;;-1:-1:-1;;;;;;;;;;;2887:71:23;199:2819:85;;3901:31:23;199:2819:85;7270:387:23;-1:-1:-1;199:2819:85;;;-1:-1:-1;;;;;;;;;;;199:2819:85;;;;;;;;-1:-1:-1;;;;;199:2819:85;;;;;;;;;;;;3901:31:23;199:2819:85;7892:388:23;-1:-1:-1;199:2819:85;;;-1:-1:-1;;;;;;;;;;;199:2819:85;;;;;;;;-1:-1:-1;;;;;199:2819:85;;;;;;;;;;;;;;;;-1:-1:-1;199:2819:85;;;;;;;;;;;-1:-1:-1;;;;;199:2819:85;;;;;;;;;;-1:-1:-1;;199:2819:85;;;966:10:27;;-1:-1:-1;;;;;199:2819:85;;8155:40:23;-1:-1:-1;;8155:40:23;199:2819:85;8209:11:23;:::o;1702:188:45:-;199:2819:85;;-1:-1:-1;;;1829:53:45;;;;-1:-1:-1;;;;;199:2819:85;;;1829:53:45;;;199:2819:85;;;;;;;;;;;;;;;;;1829:53:45;;;199:2819:85;;;;;;;-1:-1:-1;;;;;199:2819:85;;;;;1829:53:45;199:2819:85;;;1829:53:45;:::i;199:2819:85:-;9219:12:86;199:2819:85;;;;;;9219:12:86;-1:-1:-1;199:2819:85;-1:-1:-1;;;;;;;;;;;199:2819:85;;-1:-1:-1;199:2819:85;:::o;:::-;9219:12:86;199:2819:85;;;;;;9219:12:86;-1:-1:-1;199:2819:85;-1:-1:-1;;;;;;;;;;;199:2819:85;;-1:-1:-1;199:2819:85;:::o;:::-;;;;;;;;-1:-1:-1;199:2819:85;;-1:-1:-1;199:2819:85;;;-1:-1:-1;199:2819:85;:::o;:::-;6360:12:86;199:2819:85;-1:-1:-1;;;199:2819:85;;;;;;;;;6360:12:86;199:2819:85;;;;;;6360:12:86;-1:-1:-1;199:2819:85;-1:-1:-1;;;;;;;;;;;199:2819:85;;:::o;:::-;6360:12:86;199:2819:85;-1:-1:-1;;;199:2819:85;;;;;;;;;6360:12:86;199:2819:85;;;;;;6360:12:86;-1:-1:-1;199:2819:85;-1:-1:-1;;;;;;;;;;;199:2819:85;;:::o;:::-;;;;;-1:-1:-1;;;199:2819:85;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;6246:584:86;;;;6360:12;199:2819:85;;;6360:24:86;;6356:75;;6246:584;6474:30;;;:::i;:::-;199:2819:85;;;;;;6578:12:86;;;:::i;:::-;6604:24;;;;6246:584;-1:-1:-1;6600:188:86;;;-1:-1:-1;;;199:2819:85;;;;;;;;;-1:-1:-1;199:2819:85;;;-1:-1:-1;199:2819:85;;;;;;6798:25:86;199:2819:85;6246:584:86:o;6600:188::-;8167:38:60;;-1:-1:-1;;;;;199:2819:85;;-1:-1:-1;8167:38:60;:::i;:::-;6753:24:86;;;;;:::i;:::-;6798:25;6246:584;:::o;6604:24::-;199:2819:85;;;;;;6614:14:86;;-1:-1:-1;6604:24:86;;;6356:75;-1:-1:-1;;;199:2819:85;;;;;;;;;;;;;;;;-1:-1:-1;199:2819:85;;;;-1:-1:-1;;;;;;;;;;;199:2819:85;;6356:75:86;;;6246:584;;;;6360:12;199:2819:85;;;6360:24:86;;6356:75;;6246:584;6474:30;;;:::i;:::-;199:2819:85;;;;;;6578:12:86;;;:::i;:::-;6604:24;;;;6246:584;-1:-1:-1;6600:188:86;;;-1:-1:-1;;;199:2819:85;;;;;;;;;-1:-1:-1;199:2819:85;;;-1:-1:-1;199:2819:85;;;;;;6798:25:86;199:2819:85;6246:584:86:o;6600:188::-;8167:38:60;;-1:-1:-1;;;;;199:2819:85;;-1:-1:-1;8167:38:60;:::i;:::-;6753:24:86;;;;;:::i;6604:::-;199:2819:85;;;;;;6614:14:86;;-1:-1:-1;6604:24:86;;;6356:75;-1:-1:-1;;;199:2819:85;;;;;;;;;;;;;;;;-1:-1:-1;199:2819:85;;;;-1:-1:-1;;;;;;;;;;;199:2819:85;;6356:75:86;;;6246:584;;;;;6360:12;;;199:2819:85;;;6360:24:86;;6356:75;;6246:584;6474:30;;;;;:::i;:::-;199:2819:85;;;;;;6578:12:86;;;;:::i;:::-;6604:24;;;;6246:584;-1:-1:-1;6600:188:86;;;-1:-1:-1;;;;;199:2819:85;;;;;;;6644:21:86;;;:29;:21;;:::i;6600:188::-;6753:24;;199:2819:85;;8167:38:60;;-1:-1:-1;;;;;199:2819:85;;;;;8167:38:60;:::i;:::-;6753:24:86;;;:::i;6604:::-;199:2819:85;;;;;;6614:14:86;;-1:-1:-1;6604:24:86;;;6356:75;-1:-1:-1;;;199:2819:85;;;;;;6360:12:86;199:2819:85;;;;;;;:::i;:::-;;;;;;;;;;;;;;6356:75:86;;;199:2819:85;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::o;8406:869:86:-;1113:13:85;199:2819;8620:15:86;8578:11;8645:18;8678:7;8684:1;8678:7;;8674:241;;8406:869;8939:60;;;;:::i;:::-;9014:8;;9010:62;;199:2819:85;9130:48:86;9170:7;;;:::i;:::-;1113:13:85;13267:109:86;;-1:-1:-1;;;;;;;;;;;13267:109:86;13089:293;;9130:48;199:2819:85;:::i;:::-;;9252:15:86;9259:7;199:2819:85;9219:31:86;199:2819:85;9232:17:86;199:2819:85;;;;;;;;9232:17:86;;199:2819:85;-1:-1:-1;;;;;199:2819:85;;;;9219:31:86;:::i;:::-;199:2819:85;;;;;;;;;9259:7:86;;:::i;:::-;199:2819:85;;;;9252:15:86;9176:1;;9188:80;;8406:869::o;9010:62::-;9038:23;8578:11;9038:23;8578:11;9038:23;8578:11;9038:23;8578:11;9038:23;:::o;8674:241::-;8721:14;;;;;:::i;:::-;199:2819:85;;;;;;;1113:13;8578:11:86;13267:109;-1:-1:-1;;;;;;;;;;;13267:109:86;;199:2819:85;8939:60:86;;13267:109;199:2819:85;;;;;;;8753:55:86;199:2819:85;;;8828:10:86;8749:156;8674:241;;8749:156;8883:7;;;;;;:::i;:::-;8749:156;8674:241;;8406:869;514:12:85;199:2819;8620:15:86;8578:11;8645:18;8678:7;8684:1;8678:7;;8674:241;;8406:869;8939:60;;;;:::i;:::-;9014:8;;9010:62;;199:2819:85;9130:48:86;9170:7;;;:::i;:::-;514:12:85;13267:109:86;;-1:-1:-1;;;;;;;;;;;13267:109:86;13089:293;;199:2819:85;;9252:15:86;9259:7;199:2819:85;9219:31:86;199:2819:85;9232:17:86;199:2819:85;;;;;;;;9219:31:86;:::i;8674:241::-;8721:14;;;;;:::i;:::-;199:2819:85;;;;;;;514:12;8578:11:86;13267:109;-1:-1:-1;;;;;;;;;;;13267:109:86;;199:2819:85;8939:60:86;;13267:109;199:2819:85;;;;;;;8753:55:86;199:2819:85;;;8828:10:86;8749:156;8674:241;;8749:156;8883:7;;;;;;:::i;:::-;8749:156;8674:241;;8406:869;;;199:2819:85;;8620:15:86;8578:11;8645:18;8678:7;8684:1;8678:7;;8674:241;;8406:869;8939:60;;;;;:::i;:::-;9014:8;;;9010:62;;9252:15;9259:7;199:2819:85;9219:31:86;199:2819:85;9130:48:86;9170:7;;;:::i;:::-;9130:48;13267:109;;;;;;13089:293;;199:2819:85;;9176:1:86;199:2819:85;9232:17:86;199:2819:85;;;;;;;;9232:17:86;;199:2819:85;-1:-1:-1;;;;;199:2819:85;;;;9219:12:86;;:31;:::i;9010:62::-;8578:11;;-1:-1:-1;8578:11:86;;-1:-1:-1;8578:11:86;;;;9038:23::o;8674:241::-;8721:14;;;;;:::i;:::-;199:2819:85;;;;;;;8939:60:86;13267:109;;8578:11;13267:109;8753:55;8759:49;13267:109;;8578:11;13267:109;;199:2819:85;;;;;;8753:55:86;199:2819:85;;;8753:55:86;13267:109;;;8828:10;8749:156;8674:241;;8749:156;8883:7;;;;;;:::i;:::-;8749:156;8674:241;;199:2819:85;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;:::o;525:595:82:-;;-1:-1:-1;199:2819:85;;;;;716:88:82;;;;;199:2819:85;716:88:82;;;;;;;;;783:4;716:88;;;199:2819:85;;;;;;;;;;;:::i;716:88:82:-;698:107;;;;;;;:::i;:::-;199:2819:85;;857:45:82;;;;;;;;199:2819:85;;;;;857:45:82;;;199:2819:85;;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;199:2819:85;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;-1:-1:-1;199:2819:85;;;;;;;;;;916:8:82;912:175;;1096:17;525:595;:::o;912:175::-;199:2819:85;;;944:22:82;;;940:36;;990:87;;2658:162:24;-1:-1:-1;;;;;;;;;;;199:2819:85;-1:-1:-1;;;;;199:2819:85;966:10:27;2717:23:24;2713:101;;2658:162::o;2713:101::-;199:2819:85;;-1:-1:-1;;;2763:40:24;;966:10:27;2763:40:24;;;199:2819:85;;;2763:40:24;2557:104:57;;2641:5;;;;;;:13;2557:104;:::o;2641:13::-;;;2557:104;:::o;199:2819:85:-;;;;;;;:::o;3803:4116:57:-;;;199:2819:85;;;;-1:-1:-1;;3803:4116:57;;4383:131;;;;;;;;;;;;4595:10;;4591:368;;5065:20;;;;5061:88;;5435:300;;;199:2819:85;-1:-1:-1;199:2819:85;5954:31:57;;5999:371;;;6813:1;199:2819:85;;6794:1:57;199:2819:85;6793:21:57;199:2819:85;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5999:371:57;;;;-1:-1:-1;5999:371:57;;;5435:300;;;;;;199:2819:85;5435:300:57;;5999:371;6436:21;199:2819:85;3803:4116:57;:::o;5061:88::-;199:2819:85;;-1:-1:-1;;;5112:22:57;;;;;4591:368;4925:19;;;;;;;:::i;1303:160:45:-;199:2819:85;;-1:-1:-1;;;1412:43:45;;;;-1:-1:-1;;;;;199:2819:85;;;1412:43:45;;;199:2819:85;;;;;;;;;1412:43:45;;;;;;199:2819:85;1412:43:45;:::i;:::-;;:::i;12922:460:95:-;;13024:14;;:::i;:::-;13015:23;;;13011:75;;-1:-1:-1;199:2819:85;;;13100:20:95;199:2819:85;;;;;;;;13128:10:95;199:2819:85;;;;;;;;;;13096:93:95;;13208:32;13128:10;13208:32;;:::i;:::-;13255:11;;;13251:68;;-1:-1:-1;199:2819:85;;;13100:20:95;199:2819:85;;;;;;;;13128:10:95;199:2819:85;;;;;;;;;-1:-1:-1;;199:2819:85;13371:4:95;199:2819:85;;;12922:460:95:o;13251:68::-;199:2819:85;;-1:-1:-1;;;13289:19:95;;;;;13096:93;199:2819:85;;-1:-1:-1;;;13162:16:95;;;;;13011:75;199:2819:85;;-1:-1:-1;;;13061:14:95;;;;;10580:184:86;5173:12:96;199:2819:85;10303:8:60;;;:63;-1:-1:-1;10303:63:60;-1:-1:-1;;;;;199:2819:85;;10726:7:86;199:2819:85;;10736:12:86;199:2819:85;;;;;;10736:12:86;-1:-1:-1;199:2819:85;-1:-1:-1;;;;;;;;;;;199:2819:85;;10580:184:86;:::o;10726:31::-;;-1:-1:-1;10580:184:86;:::o;10303:63:60:-;199:2819:85;;;;;;;;5173:12:96;-1:-1:-1;13267:109:86;;;199:2819:85;;;10303:63:60;;10580:184:86;4803:13:96;199:2819:85;10303:8:60;;;:63;-1:-1:-1;10303:63:60;-1:-1:-1;;;;;199:2819:85;;10726:7:86;199:2819:85;;10736:12:86;199:2819:85;;;;;;10736:12:86;-1:-1:-1;199:2819:85;-1:-1:-1;;;;;;;;;;;199:2819:85;;10580:184:86;:::o;10303:63:60:-;199:2819:85;;;;;;;;4803:13:96;-1:-1:-1;13267:109:86;;;199:2819:85;;;10303:63:60;;10580:184:86;199:2819:85;;10303:8:60;;;:63;-1:-1:-1;10303:63:60;-1:-1:-1;;;;;199:2819:85;;10726:7:86;199:2819:85;;10736:12:86;:17;:12;;:17;:::i;10303:63:60:-;199:2819:85;;;;;;;;;;13267:109:86;-1:-1:-1;13267:109:86;;-1:-1:-1;13267:109:86;;;199:2819:85;;;10303:63:60;;1662:280:87;;;1884:1;199:2819:85;;;;;;;1884:1:87;199:2819:85;;;;;;;8188:25:57;;;:::i;6999:207:86:-;4622:13:96;199:2819:85;9594:15:60;-1:-1:-1;9619:18:60;9652:7;9658:1;9652:7;;9648:234;;6999:207:86;9906:53:60;;;;:::i;:::-;9977:8;;;:63;-1:-1:-1;9977:63:60;-1:-1:-1;;;;;199:2819:85;;7168:7:86;199:2819:85;;7178:17:86;199:2819:85;7178:17:86;;:::i;9977:63:60:-;9992:41;10025:7;9992:48;10025:7;;:::i;9992:41::-;199:2819:85;;;;;9992:48:60;9977:63;;9648:234;9695:14;;;;;:::i;:::-;199:2819:85;;;;;;;9906:53:60;13267:109:86;4622:13:96;-1:-1:-1;13267:109:86;199:2819:85;13267:109:86;;-1:-1:-1;;;;;;;;;;;13267:109:86;199:2819:85;;;;;9727:48:60;9723:149;199:2819:85;;;9795:10:60;9723:149;9648:234;;9723:149;9850:7;;;;;;:::i;:::-;9723:149;9648:234;;6999:207:86;4994:12:96;199:2819:85;9594:15:60;-1:-1:-1;9619:18:60;9652:7;9658:1;9652:7;;9648:234;;6999:207:86;9906:53:60;;;;:::i;:::-;9977:8;;;:63;-1:-1:-1;9977:63:60;-1:-1:-1;;;;;199:2819:85;;7168:7:86;199:2819:85;;7178:17:86;199:2819:85;7178:17:86;;:::i;9977:63:60:-;9992:41;10025:7;9992:48;10025:7;;:::i;9992:48::-;9977:63;;9648:234;9695:14;;;;;:::i;:::-;199:2819:85;;;;;;;9906:53:60;13267:109:86;4994:12:96;-1:-1:-1;13267:109:86;199:2819:85;13267:109:86;;-1:-1:-1;;;;;;;;;;;13267:109:86;199:2819:85;;;;;9727:48:60;9723:149;199:2819:85;;;9795:10:60;9723:149;9648:234;;9723:149;9850:7;;;;;;:::i;:::-;9723:149;9648:234;;6999:207:86;;199:2819:85;;9594:15:60;-1:-1:-1;9619:18:60;9652:7;9658:1;9652:7;;9648:234;;6999:207:86;9906:53:60;;;;;:::i;:::-;9977:8;;;:63;-1:-1:-1;9977:63:60;;-1:-1:-1;;;;;199:2819:85;;7168:7:86;199:2819:85;;;7178:12:86;;:17;:12;;:17;:::i;9977:63:60:-;9992:41;10025:7;9992:48;10025:7;;:::i;:::-;9992:41;13267:109:86;;;;;;13089:293;;9992:48:60;9977:63;;;9648:234;9695:14;;;;;:::i;:::-;199:2819:85;;;;;;;9906:53:60;13267:109:86;;-1:-1:-1;13267:109:86;199:2819:85;13267:109:86;;;-1:-1:-1;13267:109:86;;199:2819:85;;;;;9727:48:60;9723:149;199:2819:85;;;9795:10:60;9723:149;9648:234;;9723:149;9850:7;;;;;;:::i;:::-;9723:149;9648:234;;199:2819:85;;;;;;;:::i;:::-;-1:-1:-1;199:2819:85;;;;;;;:::o;11486:272:86:-;199:2819:85;;:::i;:::-;;;;:::i;:::-;;4622:13:96;199:2819:85;;;;;;;;4622:13:96;-1:-1:-1;199:2819:85;-1:-1:-1;;;;;;;;;;;199:2819:85;;:::i;:::-;;;;;;;;;;;;11731:17:86;;199:2819:85;;11718:12:86;199:2819:85;;;;;;11718:12:86;-1:-1:-1;199:2819:85;-1:-1:-1;;;;;;;;;;;199:2819:85;;;;;;;;:::i;:::-;;;;11672:79:86;;199:2819:85;11486:272:86;:::o;:::-;199:2819:85;;:::i;:::-;;;;:::i;:::-;;4994:12:96;199:2819:85;;;;;;;;4994:12:96;-1:-1:-1;199:2819:85;-1:-1:-1;;;;;;;;;;;199:2819:85;;:::i;:::-;;;;;;;;;;;;11731:17:86;;199:2819:85;;11718:12:86;199:2819:85;;;;;;11718:12:86;-1:-1:-1;199:2819:85;-1:-1:-1;;;;;;;;;;;199:2819:85;;;;;;;;:::i;11486:272:86:-;;199:2819:85;11308:22:60;11718:31:86;11486:272;199:2819:85;;:::i;:::-;;;;:::i;:::-;;11308:22:60;;:::i;:::-;199:2819:85;;:::i;:::-;;11718:12:86;199:2819:85;;;;;11731:17:86;199:2819:85;;;;;11731:17:86;;199:2819:85;;11718:12:86;;:31;:::i;:::-;199:2819:85;;;;;;;;;:::i;:::-;;;;;;11731:17:86;11672:79;;199:2819:85;11486:272:86;:::o;4059:629:45:-;2847:1:46;4059:629:45;3510:55:46;4059:629:45;199:2819:85;;;;;;3462:31:46;;;;;;;;;;;;:::i;:::-;3510:55;;;:::i;:::-;199:2819:85;;4551:22:45;;;;:57;;;;4059:629;4547:135;;;;4059:629;:::o;4547:135::-;199:2819:85;;;;4631:40:45;;;;;;;;;199:2819:85;4631:40:45;4551:57;4578:30;;;3462:31:46;4578:30:45;;;;;;;;:::i;:::-;4577:31;4551:57;;;;1258:280:87;;;199:2819:85;;;;;;;;;;;;;;;;8188:25:57;;;;;:::i;:::-;8257;;;;;;8223:101;;1258:280:87;:::o;8223:101:57:-;199:2819:85;;;;;;;;1258:280:87;:::o;10552:388:60:-;5173:12:96;199:2819:85;10728:8:60;;;10752:20;10690:17;10752:20;10690:17;10752:20;10690:17;10752:20;:::o;10724:210::-;199:2819:85;;;;;;;;13267:109:86;199:2819:85;13267:109:86;5173:12:96;10690:17:60;13267:109:86;;199:2819:85;:::i;:::-;;;;;;;13267:109:86;199:2819:85;;;;;10911:11:60;;199:2819:85;;10886:37:60;10870:1;10886:37;;;:::o;10552:388::-;4803:13:96;199:2819:85;10728:8:60;;;10752:20;10690:17;10752:20;10690:17;10752:20;10690:17;10752:20;:::o;10724:210::-;199:2819:85;;;;;;;;13267:109:86;199:2819:85;13267:109:86;4803:13:96;10690:17:60;13267:109:86;;199:2819:85;:::i;10552:388:60:-;199:2819:85;;10728:8:60;;;10752:20;;10690:17;10752:20;10690:17;10752:20;10690:17;10752:20;:::o;10724:210::-;199:2819:85;;;;;;;;;;;13267:109:86;10690:17:60;13267:109:86;;10690:17:60;13267:109:86;;;199:2819:85;:::i;8587:1642:57:-;8658:6;;8654:45;;9401:7;10201:10;10142:26;10093;10044;9995;9946;9897;9848;199:2819:85;10189:23:57;9401:7;8663:1;199:2819:85;;;;10826:16:57;10822:99;;8587:1642;199:2819:85;;;;10938:15:57;10934:96;;8587:1642;199:2819:85;;;;11047:15:57;11043:96;;8587:1642;199:2819:85;;;;11156:15:57;11152:96;;8587:1642;199:2819:85;;;;11265:14:57;11261:93;;8587:1642;199:2819:85;;;;11371:14:57;11367:93;;8587:1642;199:2819:85;;;;11477:14:57;11473:93;;8587:1642;199:2819:85;;;11579:64:57;;8587:1642;199:2819:85;;;9858:10:57;;;;:::i;:::-;199:2819:85;;;;;9848:26:57;9907:10;;;;:::i;9897:26::-;9956:10;;;;:::i;9946:26::-;10005:10;;;;:::i;9995:26::-;10054:10;;;;:::i;10044:26::-;10103:10;;;;:::i;10093:26::-;10152:10;;;;:::i;10142:26::-;10201:10;;;:::i;:::-;10189:23;;:::i;11579:64::-;199:2819:85;;11579:64:57;;11473:93;199:2819:85;11511:11:57;;199:2819:85;;11473:93:57;;;;11367;199:2819:85;11405:11:57;;199:2819:85;;11367:93:57;;;;11261;199:2819:85;11299:11:57;;199:2819:85;;11261:93:57;;;;11152:96;199:2819:85;11191:12:57;;199:2819:85;;11152:96:57;;;;11043;199:2819:85;11082:12:57;;199:2819:85;;11043:96:57;;;;10934;199:2819:85;10973:12:57;;199:2819:85;;10934:96:57;;;;10822:99;10862:13;;;199:2819:85;10822:99:57;;;;12497:447:86;12694:10;;;;;12926:11;;12497:447;:::o;12687:230::-;12734:23;;;;;;:::i;:::-;13267:109;1113:13:85;-1:-1:-1;13267:109:86;199:2819:85;13267:109:86;;-1:-1:-1;;;;;;;;;;;13267:109:86;199:2819:85;;;;;-1:-1:-1;12771:136:86;199:2819:85;;;12830:10:86;12771:136;;12687:230;;;12771:136;199:2819:85;;12891:1:86;199:2819:85;;;;;;12771:136:86;199:2819:85;;:::i;12497:447:86:-;12694:10;;;;;12926:11;;12497:447;:::o;12687:230::-;12734:23;;;;;;:::i;:::-;13267:109;514:12:85;-1:-1:-1;13267:109:86;199:2819:85;13267:109:86;;-1:-1:-1;;;;;;;;;;;13267:109:86;199:2819:85;;;;;-1:-1:-1;12771:136:86;199:2819:85;;;12830:10:86;12771:136;;12687:230;;;12771:136;199:2819:85;;12891:1:86;199:2819:85;;;;;;12771:136:86;199:2819:85;;:::i;12497:447:86:-;;12694:10;;;;;;12926:11;;;12497:447;:::o;12687:230::-;12734:23;;;;;;;:::i;:::-;13267:109;;-1:-1:-1;13267:109:86;199:2819:85;13267:109:86;;;-1:-1:-1;13267:109:86;;199:2819:85;;;;;-1:-1:-1;12771:136:86;199:2819:85;;;12830:10:86;12771:136;;12687:230;;;;12771:136;199:2819:85;;12891:1:86;199:2819:85;;;;;;12771:136:86;199:2819:85;;:::i;7084:141:25:-;199:2819:85;-1:-1:-1;;;;;;;;;;;199:2819:85;;;;7150:18:25;7146:73;;7084:141::o;7146:73::-;199:2819:85;;-1:-1:-1;;;7191:17:25;;;;;199:2819:85;5173:12:96;199:2819:85;;-1:-1:-1;;;199:2819:85;;;;;;;;;5173:12:96;199:2819:85;;;;;;5173:12:96;-1:-1:-1;199:2819:85;;;;;;;;;;-1:-1:-1;;199:2819:85;;;;;;;-1:-1:-1;;;;;;;;;;;199:2819:85;;;;:::o;:::-;4803:13:96;199:2819:85;;-1:-1:-1;;;199:2819:85;;;;;;;;;4803:13:96;199:2819:85;;;;;;4803:13:96;-1:-1:-1;199:2819:85;;;;;;;;;;-1:-1:-1;;199:2819:85;;;;;;;-1:-1:-1;;;;;;;;;;;199:2819:85;;;;:::o;:::-;;;-1:-1:-1;;;199:2819:85;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;199:2819:85;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;11513:870:60;5173:12:96;199:2819:85;11513:870:60;;;199:2819:85;11672:7:60;;;;199:2819:85;11775:28:60;11795:7;;;:::i;199:2819:85:-;;;;;;;;;;-1:-1:-1;;11873:91:60;;199:2819:85;12233:11:60;199:2819:85;;;12027:16:60;199:2819:85;;;;;;;12027:16:60;;;;12083:7;12063:28;12083:7;12063:43;12083:7;;:::i;12063:28::-;199:2819:85;;;;;;;;;;;;;;;;;12063:43:60;12233:11;199:2819:85;-1:-1:-1;;;;;199:2819:85;;;12023:189:60;199:2819:85;;12145:52:60;199:2819:85;;12155:41:60;199:2819:85;;:::i;:::-;;;;;;;;12155:41:60;-1:-1:-1;;;;;199:2819:85;;12155:41:60;;;199:2819:85;12145:52:60;:::i;:::-;12023:189;;11873:91;199:2819:85;;-1:-1:-1;;;11919:30:60;;;;;11668:709;12283:52;199:2819:85;;12293:41:60;199:2819:85;;:::i;12293:41:60:-;-1:-1:-1;;;;;199:2819:85;;12293:41:60;;;199:2819:85;12145:52:60;:::i;12283:::-;11678:1;12349:17;;:::o;11513:870::-;4803:13:96;199:2819:85;11513:870:60;;;199:2819:85;11672:7:60;;;;199:2819:85;11775:28:60;11795:7;;;:::i;199:2819:85:-;;;;;;;;;;-1:-1:-1;;11873:91:60;;199:2819:85;12233:11:60;199:2819:85;;;12027:16:60;199:2819:85;;;;;;;12027:16:60;;;;12083:7;12063:28;12083:7;12063:43;12083:7;;:::i;12023:189::-;199:2819:85;;12145:52:60;199:2819:85;;12155:41:60;199:2819:85;;:::i;12155:41:60:-;-1:-1:-1;;;;;199:2819:85;;12155:41:60;;;199:2819:85;12145:52:60;:::i;11668:709::-;12283:52;199:2819:85;;12293:41:60;199:2819:85;;:::i;12293:41:60:-;-1:-1:-1;;;;;199:2819:85;;12293:41:60;;;199:2819:85;12145:52:60;:::i;11513:870::-;199:2819:85;;11513:870:60;;;199:2819:85;11513:870:60;11672:7;;;;199:2819:85;11775:28:60;11795:7;;;:::i;199:2819:85:-;;;;;;;;;;;;;;;;11877:15:60;-1:-1:-1;11873:91:60;;199:2819:85;;12233:11:60;199:2819:85;;;12027:16:60;199:2819:85;;;;;;;12027:16:60;;;;12083:7;12063:43;12083:7;;12063:28;12083:7;;:::i;:::-;12063:28;13267:109:86;;;;;;13089:293;;12023:189:60;199:2819:85;;;12145:52:60;199:2819:85;12155:41:60;199:2819:85;;:::i;:::-;;;;;;;;12155:41:60;-1:-1:-1;;;;;199:2819:85;;12155:41:60;;;199:2819:85;12145:52:60;:::i;11668:709::-;12283:52;199:2819:85;;12293:41:60;199:2819:85;;:::i;12293:41:60:-;-1:-1:-1;;;;;199:2819:85;;12293:41:60;;;199:2819:85;12145:52:60;:::i;2774:153:57:-;;2900:5;;;2910;;199:2819:85;;;;;;;;;2774:153:57;:::o;12736:433:60:-;;12919:10;;;;;;13151:11;;;12736:433;:::o;12912:230::-;12959:23;;;;;;;:::i;:::-;13267:109:86;;-1:-1:-1;13267:109:86;199:2819:85;13267:109:86;;;-1:-1:-1;13267:109:86;;199:2819:85;;;;;-1:-1:-1;12996:136:60;199:2819:85;;;13055:10:60;12996:136;;12912:230;;;;12996:136;199:2819:85;;13116:1:60;199:2819:85;;;;;;12996:136:60;199:2819:85;;:::i;4625:582:46:-;;4797:8;;-1:-1:-1;199:2819:85;;5874:21:46;:17;;6046:142;;;;;;5870:383;199:2819:85;;-1:-1:-1;;;6225:17:46;;;;;4793:408;199:2819:85;;5045:22:46;:49;;;4793:408;5041:119;;5173:17;;:::o;5041:119::-;199:2819:85;;-1:-1:-1;;;5121:24:46;;-1:-1:-1;;;;;199:2819:85;;;5121:24:46;;;199:2819:85;;;5121:24:46;5045:49;5071:18;;;:23;5045:49;","linkReferences":{},"immutableReferences":{"58075":[{"start":2016,"length":32},{"start":2606,"length":32}],"62368":[{"start":4185,"length":32},{"start":4913,"length":32},{"start":9127,"length":32}],"68715":[{"start":4989,"length":32},{"start":6348,"length":32}],"68718":[{"start":6709,"length":32},{"start":7909,"length":32}]}},"methodIdentifiers":{"DEFAULT_ADMIN_ROLE()":"a217fddf","DELEGATOR_FACTORY()":"6da3e06d","DEPOSITOR_WHITELIST_ROLE()":"1b66c9e1","DEPOSIT_LIMIT_SET_ROLE()":"a21a1df9","DEPOSIT_WHITELIST_SET_ROLE()":"db388715","FACTORY()":"2dd31000","IS_DEPOSIT_LIMIT_SET_ROLE()":"1415519b","SLASHER_FACTORY()":"87df0788","activeBalanceOf(address)":"59f769a9","activeBalanceOfAt(address,uint48,bytes)":"efb559d6","activeBalanceOfHints(address,address,uint48)":"f9e1bf6c","activeShares()":"bfefcd7b","activeSharesAt(uint48,bytes)":"50f22068","activeSharesHint(address,uint48)":"8326056f","activeSharesHintInternal(uint48)":"55a2c672","activeSharesOf(address)":"9d66201b","activeSharesOfAt(address,uint48,bytes)":"2d73c69c","activeSharesOfHint(address,address,uint48)":"de499716","activeSharesOfHintInternal(address,uint48)":"eb556238","activeStake()":"bd49c35f","activeStakeAt(uint48,bytes)":"810da75d","activeStakeHint(address,uint48)":"64b03fdc","activeStakeHintInternal(uint48)":"67567add","burner()":"27810b6e","claim(address,uint256)":"aad3ec96","claimBatch(address,uint256[])":"7c04c80a","collateral()":"d8dfeb45","currentEpoch()":"76671808","currentEpochStart()":"61a8c8c4","delegator()":"ce9b7930","deposit(address,uint256)":"47e7ef24","depositLimit()":"ecf70858","depositWhitelist()":"48d3b775","epochAt(uint48)":"7953b33b","epochDuration()":"4ff0876a","epochDurationInit()":"46361671","getRoleAdmin(bytes32)":"248a9ca3","grantRole(bytes32,address)":"2f2ff15d","hasRole(bytes32,address)":"91d14854","initialize(uint64,address,bytes)":"57ec83cc","isDelegatorInitialized()":"50861adc","isDepositLimit()":"a1b12202","isDepositorWhitelisted(address)":"794b15b7","isInitialized()":"392e53cd","isSlasherInitialized()":"6ec1e3f8","isWithdrawalsClaimed(uint256,address)":"a5d03223","migrate(uint64,bytes)":"2abe3048","nextEpochStart()":"73790ab3","onSlash(uint256,uint48)":"7278e31c","owner()":"8da5cb5b","previousEpochStart()":"281f5752","redeem(address,uint256)":"1e9a6950","renounceOwnership()":"715018a6","renounceRole(bytes32,address)":"36568abe","revokeRole(bytes32,address)":"d547741f","setDelegator(address)":"83cd9cc3","setDepositLimit(uint256)":"bdc8144b","setDepositWhitelist(bool)":"4105a7dd","setDepositorWhitelistStatus(address,bool)":"a2861466","setIsDepositLimit(bool)":"5346e34f","setSlasher(address)":"aabc2496","slashableBalanceOf(address)":"c31e8dd7","slasher()":"b1344271","staticDelegateCall(address,bytes)":"9f86fd85","supportsInterface(bytes4)":"01ffc9a7","totalStake()":"8b0e9f3f","transferOwnership(address)":"f2fde38b","version()":"54fd4d50","withdraw(address,uint256)":"f3fef3a3","withdrawalShares(uint256)":"afba70ad","withdrawalSharesOf(uint256,address)":"a3b54172","withdrawals(uint256)":"5cc07076","withdrawalsOf(uint256,address)":"f5e7ee0f"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"AccessControlBadConfirmation\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"neededRole\",\"type\":\"bytes32\"}],\"name\":\"AccessControlUnauthorizedAccount\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"AddressEmptyCode\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"AddressInsufficientBalance\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AlreadyClaimed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AlreadyInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AlreadySet\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CheckpointUnorderedInsertion\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"DelegatorAlreadyInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"DepositLimitReached\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ExternalCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedInnerCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientClaim\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientDeposit\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientRedemption\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientWithdrawal\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidAccount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidCaptureEpoch\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidClaimer\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidCollateral\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidDelegator\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidEpoch\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidEpochDuration\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidLengthEpochs\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidOnBehalfOf\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidRecipient\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidSlasher\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidTimestamp\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MathOverflowedMulDiv\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MissingRoles\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NoPreviousEpoch\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotDelegator\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotFactory\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotSlasher\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotWhitelistedDepositor\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ReentrancyGuardReentrantCall\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"bits\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"SafeCastOverflowedUintDowncast\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"SafeERC20FailedOperation\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SlasherAlreadyInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TooMuchRedeem\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TooMuchWithdraw\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"claimer\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"epoch\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Claim\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"claimer\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"epochs\",\"type\":\"uint256[]\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"ClaimBatch\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"depositor\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"onBehalfOf\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"}],\"name\":\"Deposit\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint48\",\"name\":\"captureTimestamp\",\"type\":\"uint48\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"slashedAmount\",\"type\":\"uint256\"}],\"name\":\"OnSlash\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"previousAdminRole\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"newAdminRole\",\"type\":\"bytes32\"}],\"name\":\"RoleAdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleRevoked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"}],\"name\":\"SetDelegator\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"limit\",\"type\":\"uint256\"}],\"name\":\"SetDepositLimit\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"status\",\"type\":\"bool\"}],\"name\":\"SetDepositWhitelist\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"status\",\"type\":\"bool\"}],\"name\":\"SetDepositorWhitelistStatus\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"status\",\"type\":\"bool\"}],\"name\":\"SetIsDepositLimit\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"slasher\",\"type\":\"address\"}],\"name\":\"SetSlasher\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"withdrawer\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"claimer\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"burnedShares\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"mintedShares\",\"type\":\"uint256\"}],\"name\":\"Withdraw\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DEFAULT_ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"DELEGATOR_FACTORY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"DEPOSITOR_WHITELIST_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"DEPOSIT_LIMIT_SET_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"DEPOSIT_WHITELIST_SET_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"FACTORY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"IS_DEPOSIT_LIMIT_SET_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"SLASHER_FACTORY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"activeBalanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hints\",\"type\":\"bytes\"}],\"name\":\"activeBalanceOfAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"vault\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"}],\"name\":\"activeBalanceOfHints\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"activeShares\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hint\",\"type\":\"bytes\"}],\"name\":\"activeSharesAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"vault\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"}],\"name\":\"activeSharesHint\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"}],\"name\":\"activeSharesHintInternal\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"exists\",\"type\":\"bool\"},{\"internalType\":\"uint32\",\"name\":\"hint\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"activeSharesOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hint\",\"type\":\"bytes\"}],\"name\":\"activeSharesOfAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"vault\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"}],\"name\":\"activeSharesOfHint\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"}],\"name\":\"activeSharesOfHintInternal\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"exists\",\"type\":\"bool\"},{\"internalType\":\"uint32\",\"name\":\"hint\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"activeStake\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hint\",\"type\":\"bytes\"}],\"name\":\"activeStakeAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"vault\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"}],\"name\":\"activeStakeHint\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"}],\"name\":\"activeStakeHintInternal\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"exists\",\"type\":\"bool\"},{\"internalType\":\"uint32\",\"name\":\"hint\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"burner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"epoch\",\"type\":\"uint256\"}],\"name\":\"claim\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256[]\",\"name\":\"epochs\",\"type\":\"uint256[]\"}],\"name\":\"claimBatch\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"collateral\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"currentEpoch\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"currentEpochStart\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"delegator\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"onBehalfOf\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"deposit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"depositedAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"mintedShares\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"depositLimit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"depositWhitelist\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"}],\"name\":\"epochAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"epochDuration\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"epochDurationInit\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleAdmin\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"grantRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"initialVersion\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"owner_\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isDelegatorInitialized\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isDepositLimit\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"isDepositorWhitelisted\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"value\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isInitialized\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isSlasherInitialized\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"epoch\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"isWithdrawalsClaimed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"value\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"newVersion\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"migrate\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"nextEpochStart\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint48\",\"name\":\"captureTimestamp\",\"type\":\"uint48\"}],\"name\":\"onSlash\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"slashedAmount\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"previousEpochStart\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"claimer\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"}],\"name\":\"redeem\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"withdrawnAssets\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"mintedShares\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"callerConfirmation\",\"type\":\"address\"}],\"name\":\"renounceRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegator_\",\"type\":\"address\"}],\"name\":\"setDelegator\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"limit\",\"type\":\"uint256\"}],\"name\":\"setDepositLimit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"status\",\"type\":\"bool\"}],\"name\":\"setDepositWhitelist\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"status\",\"type\":\"bool\"}],\"name\":\"setDepositorWhitelistStatus\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"status\",\"type\":\"bool\"}],\"name\":\"setIsDepositLimit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"slasher_\",\"type\":\"address\"}],\"name\":\"setSlasher\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"slashableBalanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"slasher\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"staticDelegateCall\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalStake\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"version\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"claimer\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"withdraw\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"burnedShares\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"mintedShares\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"epoch\",\"type\":\"uint256\"}],\"name\":\"withdrawalShares\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"epoch\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"withdrawalSharesOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"epoch\",\"type\":\"uint256\"}],\"name\":\"withdrawals\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"epoch\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"withdrawalsOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"AccessControlBadConfirmation()\":[{\"details\":\"The caller of a function is not the expected one. NOTE: Don't confuse with {AccessControlUnauthorizedAccount}.\"}],\"AccessControlUnauthorizedAccount(address,bytes32)\":[{\"details\":\"The `account` is missing a role.\"}],\"AddressEmptyCode(address)\":[{\"details\":\"There's no code at `target` (it is not a contract).\"}],\"AddressInsufficientBalance(address)\":[{\"details\":\"The ETH balance of the account is not enough to perform the operation.\"}],\"CheckpointUnorderedInsertion()\":[{\"details\":\"A value was attempted to be inserted on a past checkpoint.\"}],\"FailedInnerCall()\":[{\"details\":\"A call to an address target failed. The target may have reverted.\"}],\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"MathOverflowedMulDiv()\":[{\"details\":\"Muldiv operation overflow.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}],\"ReentrancyGuardReentrantCall()\":[{\"details\":\"Unauthorized reentrant call.\"}],\"SafeCastOverflowedUintDowncast(uint8,uint256)\":[{\"details\":\"Value doesn't fit in an uint of `bits` size.\"}],\"SafeERC20FailedOperation(address)\":[{\"details\":\"An operation with an ERC20 token failed.\"}]},\"events\":{\"Claim(address,address,uint256,uint256)\":{\"params\":{\"amount\":\"amount of the collateral claimed\",\"claimer\":\"account that claimed\",\"epoch\":\"epoch the collateral was claimed for\",\"recipient\":\"account that received the collateral\"}},\"ClaimBatch(address,address,uint256[],uint256)\":{\"params\":{\"amount\":\"amount of the collateral claimed\",\"claimer\":\"account that claimed\",\"epochs\":\"epochs the collateral was claimed for\",\"recipient\":\"account that received the collateral\"}},\"Deposit(address,address,uint256,uint256)\":{\"params\":{\"amount\":\"amount of the collateral deposited\",\"depositor\":\"account that made the deposit\",\"onBehalfOf\":\"account the deposit was made on behalf of\",\"shares\":\"amount of the active shares minted\"}},\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"OnSlash(uint256,uint48,uint256)\":{\"params\":{\"amount\":\"amount of the collateral to slash\",\"captureTimestamp\":\"time point when the stake was captured\",\"slashedAmount\":\"real amount of the collateral slashed\"}},\"RoleAdminChanged(bytes32,bytes32,bytes32)\":{\"details\":\"Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole` `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite {RoleAdminChanged} not being emitted signaling this.\"},\"RoleGranted(bytes32,address,address)\":{\"details\":\"Emitted when `account` is granted `role`. `sender` is the account that originated the contract call, an admin role bearer except when using {AccessControl-_setupRole}.\"},\"RoleRevoked(bytes32,address,address)\":{\"details\":\"Emitted when `account` is revoked `role`. `sender` is the account that originated the contract call: - if using `revokeRole`, it is the admin role bearer - if using `renounceRole`, it is the role bearer (i.e. `account`)\"},\"SetDelegator(address)\":{\"details\":\"Can be set only once.\",\"params\":{\"delegator\":\"vault's delegator to delegate the stake to networks and operators\"}},\"SetDepositLimit(uint256)\":{\"params\":{\"limit\":\"deposit limit (maximum amount of the collateral that can be in the vault simultaneously)\"}},\"SetDepositWhitelist(bool)\":{\"params\":{\"status\":\"if enabled deposit whitelist\"}},\"SetDepositorWhitelistStatus(address,bool)\":{\"params\":{\"account\":\"account for which the whitelist status is set\",\"status\":\"if whitelisted the account\"}},\"SetIsDepositLimit(bool)\":{\"params\":{\"status\":\"if enabled deposit limit\"}},\"SetSlasher(address)\":{\"details\":\"Can be set only once.\",\"params\":{\"slasher\":\"vault's slasher to provide a slashing mechanism to networks\"}},\"Withdraw(address,address,uint256,uint256,uint256)\":{\"params\":{\"amount\":\"amount of the collateral withdrawn\",\"burnedShares\":\"amount of the active shares burned\",\"claimer\":\"account that needs to claim the withdrawal\",\"mintedShares\":\"amount of the epoch withdrawal shares minted\",\"withdrawer\":\"account that made the withdrawal\"}}},\"kind\":\"dev\",\"methods\":{\"activeBalanceOf(address)\":{\"params\":{\"account\":\"account to get the active balance for\"},\"returns\":{\"_0\":\"active balance for the account\"}},\"activeBalanceOfAt(address,uint48,bytes)\":{\"params\":{\"account\":\"account to get the active balance for\",\"hints\":\"hints for checkpoints' indexes\",\"timestamp\":\"time point to get the active balance for the account at\"},\"returns\":{\"_0\":\"active balance for the account at the timestamp\"}},\"activeShares()\":{\"returns\":{\"_0\":\"total number of active shares\"}},\"activeSharesAt(uint48,bytes)\":{\"params\":{\"hint\":\"hint for the checkpoint index\",\"timestamp\":\"time point to get the total number of active shares at\"},\"returns\":{\"_0\":\"total number of active shares at the timestamp\"}},\"activeSharesOf(address)\":{\"params\":{\"account\":\"account to get the number of active shares for\"},\"returns\":{\"_0\":\"number of active shares for the account\"}},\"activeSharesOfAt(address,uint48,bytes)\":{\"params\":{\"account\":\"account to get the number of active shares for\",\"hint\":\"hint for the checkpoint index\",\"timestamp\":\"time point to get the number of active shares for the account at\"},\"returns\":{\"_0\":\"number of active shares for the account at the timestamp\"}},\"activeStake()\":{\"returns\":{\"_0\":\"total amount of active stake\"}},\"activeStakeAt(uint48,bytes)\":{\"params\":{\"hint\":\"hint for the checkpoint index\",\"timestamp\":\"time point to get the total active stake at\"},\"returns\":{\"_0\":\"total amount of active stake at the timestamp\"}},\"claim(address,uint256)\":{\"params\":{\"epoch\":\"epoch to claim the collateral for\",\"recipient\":\"account that receives the collateral\"},\"returns\":{\"amount\":\"amount of the collateral claimed\"}},\"claimBatch(address,uint256[])\":{\"params\":{\"epochs\":\"epochs to claim the collateral for\",\"recipient\":\"account that receives the collateral\"},\"returns\":{\"amount\":\"amount of the collateral claimed\"}},\"currentEpoch()\":{\"returns\":{\"_0\":\"current epoch\"}},\"currentEpochStart()\":{\"returns\":{\"_0\":\"start of the current epoch\"}},\"deposit(address,uint256)\":{\"params\":{\"amount\":\"amount of the collateral to deposit\",\"onBehalfOf\":\"account the deposit is made on behalf of\"},\"returns\":{\"depositedAmount\":\"real amount of the collateral deposited\",\"mintedShares\":\"amount of the active shares minted\"}},\"epochAt(uint48)\":{\"details\":\"Reverts if the timestamp is less than the start of the epoch 0.\",\"params\":{\"timestamp\":\"time point to get the epoch at\"},\"returns\":{\"_0\":\"epoch at the timestamp\"}},\"getRoleAdmin(bytes32)\":{\"details\":\"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}.\"},\"grantRole(bytes32,address)\":{\"details\":\"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event.\"},\"hasRole(bytes32,address)\":{\"details\":\"Returns `true` if `account` has been granted `role`.\"},\"initialize(uint64,address,bytes)\":{\"params\":{\"data\":\"some data to use\",\"initialVersion\":\"initial version of the entity\",\"owner\":\"initial owner of the entity\"}},\"isInitialized()\":{\"returns\":{\"_0\":\"if the vault is fully initialized\"}},\"migrate(uint64,bytes)\":{\"params\":{\"data\":\"some data to use\",\"newVersion\":\"new version of the entity\"}},\"nextEpochStart()\":{\"returns\":{\"_0\":\"start of the next epoch\"}},\"onSlash(uint256,uint48)\":{\"details\":\"Only the slasher can call this function.\",\"params\":{\"amount\":\"amount to slash\",\"captureTimestamp\":\"time point when the stake was captured\"},\"returns\":{\"slashedAmount\":\"real amount of the collateral slashed\"}},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"previousEpochStart()\":{\"details\":\"Reverts if the current epoch is 0.\",\"returns\":{\"_0\":\"start of the previous epoch\"}},\"redeem(address,uint256)\":{\"params\":{\"claimer\":\"account that needs to claim the withdrawal\",\"shares\":\"amount of the active shares to redeem\"},\"returns\":{\"mintedShares\":\"amount of the epoch withdrawal shares minted\",\"withdrawnAssets\":\"amount of the collateral withdrawn\"}},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"renounceRole(bytes32,address)\":{\"details\":\"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `callerConfirmation`. May emit a {RoleRevoked} event.\"},\"revokeRole(bytes32,address)\":{\"details\":\"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event.\"},\"setDepositLimit(uint256)\":{\"details\":\"Only a DEPOSIT_LIMIT_SET_ROLE holder can call this function.\",\"params\":{\"limit\":\"deposit limit (maximum amount of the collateral that can be in the vault simultaneously)\"}},\"setDepositWhitelist(bool)\":{\"details\":\"Only a DEPOSIT_WHITELIST_SET_ROLE holder can call this function.\",\"params\":{\"status\":\"if enabling deposit whitelist\"}},\"setDepositorWhitelistStatus(address,bool)\":{\"details\":\"Only a DEPOSITOR_WHITELIST_ROLE holder can call this function.\",\"params\":{\"account\":\"account for which the whitelist status is set\",\"status\":\"if whitelisting the account\"}},\"setIsDepositLimit(bool)\":{\"details\":\"Only a IS_DEPOSIT_LIMIT_SET_ROLE holder can call this function.\",\"params\":{\"status\":\"if enabling deposit limit\"}},\"slashableBalanceOf(address)\":{\"params\":{\"account\":\"account to get the slashable collateral for\"},\"returns\":{\"_0\":\"total amount of the account's slashable collateral\"}},\"staticDelegateCall(address,bytes)\":{\"details\":\"It allows to use this contract's storage on-chain.\",\"params\":{\"data\":\"data to make a delegatecall with\",\"target\":\"address of the contract to make a delegatecall to\"}},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"},\"totalStake()\":{\"returns\":{\"_0\":\"total amount of the slashable collateral\"}},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"},\"version()\":{\"details\":\"Starts from 1.\",\"returns\":{\"_0\":\"version of the entity\"}},\"withdraw(address,uint256)\":{\"params\":{\"amount\":\"amount of the collateral to withdraw\",\"claimer\":\"account that needs to claim the withdrawal\"},\"returns\":{\"burnedShares\":\"amount of the active shares burned\",\"mintedShares\":\"amount of the epoch withdrawal shares minted\"}},\"withdrawalsOf(uint256,address)\":{\"params\":{\"account\":\"account to get the withdrawals for\",\"epoch\":\"epoch to get the withdrawals for the account at\"},\"returns\":{\"_0\":\"withdrawals for the account at the epoch\"}}},\"version\":1},\"userdoc\":{\"events\":{\"Claim(address,address,uint256,uint256)\":{\"notice\":\"Emitted when a claim is made.\"},\"ClaimBatch(address,address,uint256[],uint256)\":{\"notice\":\"Emitted when a batch claim is made.\"},\"Deposit(address,address,uint256,uint256)\":{\"notice\":\"Emitted when a deposit is made.\"},\"OnSlash(uint256,uint48,uint256)\":{\"notice\":\"Emitted when a slash happens.\"},\"SetDelegator(address)\":{\"notice\":\"Emitted when a delegator is set.\"},\"SetDepositLimit(uint256)\":{\"notice\":\"Emitted when a deposit limit is set.\"},\"SetDepositWhitelist(bool)\":{\"notice\":\"Emitted when a deposit whitelist status is enabled/disabled.\"},\"SetDepositorWhitelistStatus(address,bool)\":{\"notice\":\"Emitted when a depositor whitelist status is set.\"},\"SetIsDepositLimit(bool)\":{\"notice\":\"Emitted when a deposit limit status is enabled/disabled.\"},\"SetSlasher(address)\":{\"notice\":\"Emitted when a slasher is set.\"},\"Withdraw(address,address,uint256,uint256,uint256)\":{\"notice\":\"Emitted when a withdrawal is made.\"}},\"kind\":\"user\",\"methods\":{\"DELEGATOR_FACTORY()\":{\"notice\":\"Get the delegator factory's address.\"},\"DEPOSITOR_WHITELIST_ROLE()\":{\"notice\":\"Get a depositor whitelist status setter's role.\"},\"DEPOSIT_LIMIT_SET_ROLE()\":{\"notice\":\"Get a deposit limit setter's role.\"},\"DEPOSIT_WHITELIST_SET_ROLE()\":{\"notice\":\"Get a deposit whitelist enabler/disabler's role.\"},\"FACTORY()\":{\"notice\":\"Get the factory's address.\"},\"IS_DEPOSIT_LIMIT_SET_ROLE()\":{\"notice\":\"Get a deposit limit enabler/disabler's role.\"},\"SLASHER_FACTORY()\":{\"notice\":\"Get the slasher factory's address.\"},\"activeBalanceOf(address)\":{\"notice\":\"Get an active balance for a particular account.\"},\"activeBalanceOfAt(address,uint48,bytes)\":{\"notice\":\"Get an active balance for a particular account at a given timestamp using hints.\"},\"activeShares()\":{\"notice\":\"Get a total number of active shares in the vault.\"},\"activeSharesAt(uint48,bytes)\":{\"notice\":\"Get a total number of active shares in the vault at a given timestamp using a hint.\"},\"activeSharesOf(address)\":{\"notice\":\"Get a number of active shares for a particular account.\"},\"activeSharesOfAt(address,uint48,bytes)\":{\"notice\":\"Get a total number of active shares for a particular account at a given timestamp using a hint.\"},\"activeStake()\":{\"notice\":\"Get a total amount of active stake in the vault.\"},\"activeStakeAt(uint48,bytes)\":{\"notice\":\"Get a total amount of active stake in the vault at a given timestamp using a hint.\"},\"burner()\":{\"notice\":\"Get a burner to issue debt to (e.g., 0xdEaD or some unwrapper contract).\"},\"claim(address,uint256)\":{\"notice\":\"Claim collateral from the vault.\"},\"claimBatch(address,uint256[])\":{\"notice\":\"Claim collateral from the vault for multiple epochs.\"},\"collateral()\":{\"notice\":\"Get a vault collateral.\"},\"currentEpoch()\":{\"notice\":\"Get a current vault epoch.\"},\"currentEpochStart()\":{\"notice\":\"Get a start of the current vault epoch.\"},\"delegator()\":{\"notice\":\"Get a delegator (it delegates the vault's stake to networks and operators).\"},\"deposit(address,uint256)\":{\"notice\":\"Deposit collateral into the vault.\"},\"depositLimit()\":{\"notice\":\"Get a deposit limit (maximum amount of the active stake that can be in the vault simultaneously).\"},\"depositWhitelist()\":{\"notice\":\"Get if the deposit whitelist is enabled.\"},\"epochAt(uint48)\":{\"notice\":\"Get an epoch at a given timestamp.\"},\"epochDuration()\":{\"notice\":\"Get a duration of the vault epoch.\"},\"epochDurationInit()\":{\"notice\":\"Get a time point of the epoch duration set.\"},\"initialize(uint64,address,bytes)\":{\"notice\":\"Initialize this entity contract by using a given data and setting a particular version and owner.\"},\"isDelegatorInitialized()\":{\"notice\":\"Get if the delegator is initialized.\"},\"isDepositLimit()\":{\"notice\":\"Get if the deposit limit is set.\"},\"isDepositorWhitelisted(address)\":{\"notice\":\"Get if a given account is whitelisted as a depositor.\"},\"isInitialized()\":{\"notice\":\"Check if the vault is fully initialized (a delegator and a slasher are set).\"},\"isSlasherInitialized()\":{\"notice\":\"Get if the slasher is initialized.\"},\"isWithdrawalsClaimed(uint256,address)\":{\"notice\":\"Get if the withdrawals are claimed for a particular account at a given epoch.\"},\"migrate(uint64,bytes)\":{\"notice\":\"Migrate this entity to a particular newer version using a given data.\"},\"nextEpochStart()\":{\"notice\":\"Get a start of the next vault epoch.\"},\"onSlash(uint256,uint48)\":{\"notice\":\"Slash callback for burning collateral.\"},\"previousEpochStart()\":{\"notice\":\"Get a start of the previous vault epoch.\"},\"redeem(address,uint256)\":{\"notice\":\"Redeem collateral from the vault (it will be claimable after the next epoch).\"},\"setDepositLimit(uint256)\":{\"notice\":\"Set a deposit limit.\"},\"setDepositWhitelist(bool)\":{\"notice\":\"Enable/disable deposit whitelist.\"},\"setDepositorWhitelistStatus(address,bool)\":{\"notice\":\"Set a depositor whitelist status.\"},\"setIsDepositLimit(bool)\":{\"notice\":\"Enable/disable deposit limit.\"},\"slashableBalanceOf(address)\":{\"notice\":\"Get a total amount of the collateral that can be slashed for a given account.\"},\"slasher()\":{\"notice\":\"Get a slasher (it provides networks a slashing mechanism).\"},\"staticDelegateCall(address,bytes)\":{\"notice\":\"Make a delegatecall from this contract to a given target contract with a particular data (always reverts with a return data).\"},\"totalStake()\":{\"notice\":\"Get a total amount of the collateral that can be slashed.\"},\"version()\":{\"notice\":\"Get the entity's version.\"},\"withdraw(address,uint256)\":{\"notice\":\"Withdraw collateral from the vault (it will be claimable after the next epoch).\"},\"withdrawalShares(uint256)\":{\"notice\":\"Get a total number of withdrawal shares at a given epoch.\"},\"withdrawalSharesOf(uint256,address)\":{\"notice\":\"Get a number of withdrawal shares for a particular account at a given epoch (zero if claimed).\"},\"withdrawals(uint256)\":{\"notice\":\"Get a total amount of the withdrawals at a given epoch.\"},\"withdrawalsOf(uint256,address)\":{\"notice\":\"Get withdrawals for a particular account at a given epoch (zero if claimed).\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/contracts/hints/VaultHints.sol\":\"VaultHints\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol\":{\"keccak256\":\"0x6662ec4e5cefca03eeadd073e9469df8d2944bb2ee8ec8f7622c2c46aab5f225\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4d8544c6f8daa4d1bc215c6a72fe0acdb748664a105b0e5efc19295667521d45\",\"dweb:/ipfs/QmdGWqdnXT8S3RgCR6aV8XHZrsybieMQLLnug1NtpSjEXN\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0xc163fcf9bb10138631a9ba5564df1fa25db9adff73bd9ee868a8ae1858fe093a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9706d43a0124053d9880f6e31a59f31bc0a6a3dc1acd66ce0a16e1111658c5f6\",\"dweb:/ipfs/QmUFmfowzkRwGtDu36cXV9SPTBHJ3n7dG9xQiK5B28jTf2\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609\",\"dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9\",\"dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardUpgradeable.sol\":{\"keccak256\":\"0xb44e086e941292cdc7f440de51478493894ef0b1aeccb0c4047445919f667f74\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://942dad22fbdc1669f025540ba63aa3ccfad5f8458fc5d4525b31ebf272e7af45\",\"dweb:/ipfs/Qmdo4X2M82aM3AMoW2kf2jhYkSCyC4T1pHNd6obdsDFnAB\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol\":{\"keccak256\":\"0xdaba3f7c42c55b2896353f32bd27d4d5f8bae741b3b05d4c53f67abc4dc47ce8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1fa2e61141c602510bcd2cd936ed9561922ac8772a9b9c9a9db091a74e354a45\",\"dweb:/ipfs/QmcHQDDoEBwJmwUbzoVkytvJsBx3KVHYFFnDkvRGWh9Wmh\"]},\"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0xb6b36edd6a2999fd243ff226d6cbf84bd71af2432bbd0dfe19392996a1d9cb41\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1fd2f35495652e57e3f99bc6c510bc5f7dd398a176ea2e72d8ed730aebc6ca26\",\"dweb:/ipfs/QmTQV6X4gkikTib49cho5iDX3JvSQbdsoEChoDwrk3CbbH\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c\",\"dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0x6008dabfe393240d73d7dd7688033f72740d570aa422254d29a7dce8568f3aff\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f5196ec75139918c6c7bb4251b36395e668f1fa6d206beba7e7520e74913940d\",\"dweb:/ipfs/QmSyqjksXxmm2mCG6qRd1yuwLykypkSVBbnBnGqJRcuJMi\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x37bb49513c49c87c4642a891b13b63571bc87013dde806617aa1efb54605f386\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b3036b3a83b7c48f96641f2a9002b9f2dcb6a5958dd670894ada21ae8229b3d0\",\"dweb:/ipfs/QmUNfSBdoVtjhETaUJCYcaC7pTMgbhht926tJ2uXJbiVd3\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0xaf28a975a78550e45f65e559a3ad6a5ad43b9b8a37366999abd1b7084eb70721\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b7bd24e224f67f65bfadf85dc2929fa965456bb2415478bd0125471b5ce35245\",\"dweb:/ipfs/QmRaydGr8BTHs1kvaZfsNU69pKzUAGFrvABn1KiRSbE51y\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875\",\"dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0xe19a4d5f31d2861e7344e8e535e2feafb913d806d3e2b5fe7782741a2a7094fe\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4aed79c0fa6f0546ed02f2f683e8f77f0fd2ed7eb34d8bbf3d373c9a6d95b13c\",\"dweb:/ipfs/QmWqVz6UAVqmnWU5pqYPt1o6iDEZyPaBraAA3rKfTTSfYj\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/Checkpoints.sol\":{\"keccak256\":\"0xbdc5e074d7dd6678f67e92b1a51a20226801a407b0e1af3da367c5d1ff4519ad\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a36cca6b22fff3db16fc789ff6c60eea71d4b156065d4d0c83a0bc5e91a77a8b\",\"dweb:/ipfs/QmYN3exd5AemxjBrN8XMB1p5LbbE16uC3sjbYjwi8AjcGR\"]},\"lib/openzeppelin-contracts/contracts/utils/types/Time.sol\":{\"keccak256\":\"0xc7755af115020049e4140f224f9ee88d7e1799ffb0646f37bf0df24bf6213f58\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7f09bf94d5274334ec021f61a04659db303f31e60460e14b709c9bf187740111\",\"dweb:/ipfs/QmNvgomZYUwFAt4cZbPWAiTeSZQreGehY9BK5xyVJsUttb\"]},\"src/contracts/common/MigratableEntity.sol\":{\"keccak256\":\"0x2d736f4dacd5d7e7697503bc426c78b8250fe1694ca157965ec178da6807de58\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://f1237acf96b4b9f9b69156e068eddd726a6e15bd8e87a18dc999cd4ba4da069c\",\"dweb:/ipfs/QmS6M8fiFFSeuJ4ZKKq1z8W7w4ybeHQSy5TLASGoc1LVic\"]},\"src/contracts/common/StaticDelegateCallable.sol\":{\"keccak256\":\"0x350029aa8955eacaffffaeb58babc5c98e80ebc5c5db388ed17ee6465f4a9d90\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://eb392a8ee9050e0af606897df63e3404e3829e8b688b580663892f9664195764\",\"dweb:/ipfs/QmaXC8jqV8UrrAFkzXTEv2fJF56sy33HhLxAzaRZmUxuXD\"]},\"src/contracts/hints/Hints.sol\":{\"keccak256\":\"0x8b565df1ae35993c097a9e642002782a8f451f6fd01809cad6bcd345bdf1b99c\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://99a19adb01e350a92f534095b3078229df1f2f83077992d75d58d8684be45971\",\"dweb:/ipfs/QmbmwcuswVbzvwHQFTtrJG86oV98GnfxqYTb8cV8u1acox\"]},\"src/contracts/hints/VaultHints.sol\":{\"keccak256\":\"0xccb505b7159b769cc114d67b87c2de6b106557f667fc8f3780114baad5c3c442\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://6d0c80a908fc16e96a8b5605a0bd53f9e89ad0ef0a738fbbae80ba4d3160749b\",\"dweb:/ipfs/QmXo5UtWoR8YmunqcbBU8rQMm1nvmvjNPoXcVrDhh4pEwR\"]},\"src/contracts/libraries/Checkpoints.sol\":{\"keccak256\":\"0xba90097c8bfe0a975499428b5f8ac5569483c7d92ccc28c12d70de416aae040c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://12f5d93ca94cd06d3147db68993165a58e17903ed53682560de61f3085ad4609\",\"dweb:/ipfs/QmePiuAqvXprMLmFZkGZeGjvGPAvsEDHfCDv7BoQhXu9xE\"]},\"src/contracts/libraries/ERC4626Math.sol\":{\"keccak256\":\"0x8441160513c1cbeb1c3b9ee077bcc7e7ce20006b52a77c8dd39ff0ef89699939\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://943f8cc3e26ddf649f465f40c909819f5c864717c4baa339e9e403b9374a4653\",\"dweb:/ipfs/QmXPxi1sUDsrGprZdUgCzoPEosaZMv9ZhygWQ1vAi1phAB\"]},\"src/contracts/vault/Vault.sol\":{\"keccak256\":\"0x2ceff6ed3298c4cad144c99fcc79b51cb9397d6ebef00285b915848b476f8c2e\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://11f2fb3581854f3ab6e82e8d4935d9eb510c903a13c3f022346c2956a58f5307\",\"dweb:/ipfs/QmdUnoXoyYoG9SGWyQZCFyLDRUUX3eXyXetkRvw6jxqqBz\"]},\"src/contracts/vault/VaultStorage.sol\":{\"keccak256\":\"0x57db25b127d77ea3472de53e3a4af3354399655b9268638b99ca5925fa364a56\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://aa763d9a6ec508ae3abfb8228b72b9fd9525279e5135d4962e79ff059feb1173\",\"dweb:/ipfs/QmcbDR6E9wyEpu6V2FkEC4hnWy47zXA9LSKJde6zSGd33Q\"]},\"src/interfaces/common/IEntity.sol\":{\"keccak256\":\"0x8ef4b63d6da63489778ccd5f8d13ebdd527dd4b62730b2c616df5af7474d2d21\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a8d69576a9219d85c50816a18ad53a4d53cfcb27ed38b8cccc808dc2734b71b\",\"dweb:/ipfs/QmYVN3P4Q4REvBWJ97TbAcaxm3uyB2anV6NSGa6ZtSwcEv\"]},\"src/interfaces/common/IMigratableEntity.sol\":{\"keccak256\":\"0x8f5f2809f3afbe8ebfbb365dd7b57b4dd3b6f9943a6187eaf648d45895b8e3c4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ffe640537d539e7a4fde70d30d3e4c57f4ba9c2c25c450cea713aae38e8fd5c\",\"dweb:/ipfs/QmSUTGzvdcn1R1KB7tLThMRtESsfPbeXDhhhKWGtntzBds\"]},\"src/interfaces/common/IRegistry.sol\":{\"keccak256\":\"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014\",\"dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK\"]},\"src/interfaces/common/IStaticDelegateCallable.sol\":{\"keccak256\":\"0xa335d4e81b9071b7de66ef92b43ff20671d86516eb1be46fef29a3483cd3f5d5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d464b9db863c14c05547d2b23352f2e9b7b784799cf09f6bbc4906a2a74e3516\",\"dweb:/ipfs/QmUVWzFvJz7eEbDQKiFTTzwi7TEbjcs3VmwdM4kuptAKvi\"]},\"src/interfaces/delegator/IBaseDelegator.sol\":{\"keccak256\":\"0x96bb312f032e17accce3f8f80936d99468029d6b37c9ca74acdb4b026a0148ee\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2a66dcb5b7d1a6ef6a363431ea98ebd78bc4fdd3d7a134d9b542dc66e7d025c2\",\"dweb:/ipfs/QmRhTPLd2ZAyRHmJUFUcWKs9b3if49QY17LYZuRqWmghw8\"]},\"src/interfaces/slasher/IBaseSlasher.sol\":{\"keccak256\":\"0x7c82528b445659c313ab77335c407b0b6efe5e79027187bb287f7bc74202b404\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0274c90aa5df1aa6bb470a6aab53992fb14fd7e5472c9430416505b29647d9cf\",\"dweb:/ipfs/QmckbmJLDetPemVzCnnGcKYWAZV2BRFXGDsjiaec8jkHxx\"]},\"src/interfaces/vault/IVault.sol\":{\"keccak256\":\"0xffee01d383cd4e1a5530c614bf4360c1ef070c288abec9da1eb531b51bc07235\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://04f0046cac285d8ec44ebbb1f79dc94fab4495767190cad8364fbc1fafaadfb9\",\"dweb:/ipfs/QmUawAunwzXfCyShWfhKeThAgKtqe51hmrxvrXvM772M2R\"]},\"src/interfaces/vault/IVaultStorage.sol\":{\"keccak256\":\"0x592626f13754194f83047135de19229c49390bd59e34659b1bb38be71d973a22\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://06a6a9dfddd05e580b32bebe2cff4f63ba26a653180676d58225dd30d9c89d3e\",\"dweb:/ipfs/QmdgzBeY6Sxo8mGtyBxtv1tM1c2kU6J6zjeRd7vuXm4DU6\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.25+commit.b61c2a91"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"AccessControlBadConfirmation"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bytes32","name":"neededRole","type":"bytes32"}],"type":"error","name":"AccessControlUnauthorizedAccount"},{"inputs":[{"internalType":"address","name":"target","type":"address"}],"type":"error","name":"AddressEmptyCode"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"AddressInsufficientBalance"},{"inputs":[],"type":"error","name":"AlreadyClaimed"},{"inputs":[],"type":"error","name":"AlreadyInitialized"},{"inputs":[],"type":"error","name":"AlreadySet"},{"inputs":[],"type":"error","name":"CheckpointUnorderedInsertion"},{"inputs":[],"type":"error","name":"DelegatorAlreadyInitialized"},{"inputs":[],"type":"error","name":"DepositLimitReached"},{"inputs":[],"type":"error","name":"ExternalCall"},{"inputs":[],"type":"error","name":"FailedInnerCall"},{"inputs":[],"type":"error","name":"InsufficientClaim"},{"inputs":[],"type":"error","name":"InsufficientDeposit"},{"inputs":[],"type":"error","name":"InsufficientRedemption"},{"inputs":[],"type":"error","name":"InsufficientWithdrawal"},{"inputs":[],"type":"error","name":"InvalidAccount"},{"inputs":[],"type":"error","name":"InvalidCaptureEpoch"},{"inputs":[],"type":"error","name":"InvalidClaimer"},{"inputs":[],"type":"error","name":"InvalidCollateral"},{"inputs":[],"type":"error","name":"InvalidDelegator"},{"inputs":[],"type":"error","name":"InvalidEpoch"},{"inputs":[],"type":"error","name":"InvalidEpochDuration"},{"inputs":[],"type":"error","name":"InvalidInitialization"},{"inputs":[],"type":"error","name":"InvalidLengthEpochs"},{"inputs":[],"type":"error","name":"InvalidOnBehalfOf"},{"inputs":[],"type":"error","name":"InvalidRecipient"},{"inputs":[],"type":"error","name":"InvalidSlasher"},{"inputs":[],"type":"error","name":"InvalidTimestamp"},{"inputs":[],"type":"error","name":"MathOverflowedMulDiv"},{"inputs":[],"type":"error","name":"MissingRoles"},{"inputs":[],"type":"error","name":"NoPreviousEpoch"},{"inputs":[],"type":"error","name":"NotDelegator"},{"inputs":[],"type":"error","name":"NotFactory"},{"inputs":[],"type":"error","name":"NotInitialized"},{"inputs":[],"type":"error","name":"NotInitializing"},{"inputs":[],"type":"error","name":"NotSlasher"},{"inputs":[],"type":"error","name":"NotWhitelistedDepositor"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"OwnableInvalidOwner"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"OwnableUnauthorizedAccount"},{"inputs":[],"type":"error","name":"ReentrancyGuardReentrantCall"},{"inputs":[{"internalType":"uint8","name":"bits","type":"uint8"},{"internalType":"uint256","name":"value","type":"uint256"}],"type":"error","name":"SafeCastOverflowedUintDowncast"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"type":"error","name":"SafeERC20FailedOperation"},{"inputs":[],"type":"error","name":"SlasherAlreadyInitialized"},{"inputs":[],"type":"error","name":"TooMuchRedeem"},{"inputs":[],"type":"error","name":"TooMuchWithdraw"},{"inputs":[{"internalType":"address","name":"claimer","type":"address","indexed":true},{"internalType":"address","name":"recipient","type":"address","indexed":true},{"internalType":"uint256","name":"epoch","type":"uint256","indexed":false},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"Claim","anonymous":false},{"inputs":[{"internalType":"address","name":"claimer","type":"address","indexed":true},{"internalType":"address","name":"recipient","type":"address","indexed":true},{"internalType":"uint256[]","name":"epochs","type":"uint256[]","indexed":false},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"ClaimBatch","anonymous":false},{"inputs":[{"internalType":"address","name":"depositor","type":"address","indexed":true},{"internalType":"address","name":"onBehalfOf","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false},{"internalType":"uint256","name":"shares","type":"uint256","indexed":false}],"type":"event","name":"Deposit","anonymous":false},{"inputs":[{"internalType":"uint64","name":"version","type":"uint64","indexed":false}],"type":"event","name":"Initialized","anonymous":false},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256","indexed":false},{"internalType":"uint48","name":"captureTimestamp","type":"uint48","indexed":false},{"internalType":"uint256","name":"slashedAmount","type":"uint256","indexed":false}],"type":"event","name":"OnSlash","anonymous":false},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"bytes32","name":"previousAdminRole","type":"bytes32","indexed":true},{"internalType":"bytes32","name":"newAdminRole","type":"bytes32","indexed":true}],"type":"event","name":"RoleAdminChanged","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"address","name":"sender","type":"address","indexed":true}],"type":"event","name":"RoleGranted","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"address","name":"sender","type":"address","indexed":true}],"type":"event","name":"RoleRevoked","anonymous":false},{"inputs":[{"internalType":"address","name":"delegator","type":"address","indexed":true}],"type":"event","name":"SetDelegator","anonymous":false},{"inputs":[{"internalType":"uint256","name":"limit","type":"uint256","indexed":false}],"type":"event","name":"SetDepositLimit","anonymous":false},{"inputs":[{"internalType":"bool","name":"status","type":"bool","indexed":false}],"type":"event","name":"SetDepositWhitelist","anonymous":false},{"inputs":[{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"bool","name":"status","type":"bool","indexed":false}],"type":"event","name":"SetDepositorWhitelistStatus","anonymous":false},{"inputs":[{"internalType":"bool","name":"status","type":"bool","indexed":false}],"type":"event","name":"SetIsDepositLimit","anonymous":false},{"inputs":[{"internalType":"address","name":"slasher","type":"address","indexed":true}],"type":"event","name":"SetSlasher","anonymous":false},{"inputs":[{"internalType":"address","name":"withdrawer","type":"address","indexed":true},{"internalType":"address","name":"claimer","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false},{"internalType":"uint256","name":"burnedShares","type":"uint256","indexed":false},{"internalType":"uint256","name":"mintedShares","type":"uint256","indexed":false}],"type":"event","name":"Withdraw","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"DEFAULT_ADMIN_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"DELEGATOR_FACTORY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"DEPOSITOR_WHITELIST_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"DEPOSIT_LIMIT_SET_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"DEPOSIT_WHITELIST_SET_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"FACTORY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"IS_DEPOSIT_LIMIT_SET_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"SLASHER_FACTORY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"activeBalanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint48","name":"timestamp","type":"uint48"},{"internalType":"bytes","name":"hints","type":"bytes"}],"stateMutability":"view","type":"function","name":"activeBalanceOfAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"vault","type":"address"},{"internalType":"address","name":"account","type":"address"},{"internalType":"uint48","name":"timestamp","type":"uint48"}],"stateMutability":"view","type":"function","name":"activeBalanceOfHints","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"activeShares","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint48","name":"timestamp","type":"uint48"},{"internalType":"bytes","name":"hint","type":"bytes"}],"stateMutability":"view","type":"function","name":"activeSharesAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"vault","type":"address"},{"internalType":"uint48","name":"timestamp","type":"uint48"}],"stateMutability":"view","type":"function","name":"activeSharesHint","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"uint48","name":"timestamp","type":"uint48"}],"stateMutability":"view","type":"function","name":"activeSharesHintInternal","outputs":[{"internalType":"bool","name":"exists","type":"bool"},{"internalType":"uint32","name":"hint","type":"uint32"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"activeSharesOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint48","name":"timestamp","type":"uint48"},{"internalType":"bytes","name":"hint","type":"bytes"}],"stateMutability":"view","type":"function","name":"activeSharesOfAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"vault","type":"address"},{"internalType":"address","name":"account","type":"address"},{"internalType":"uint48","name":"timestamp","type":"uint48"}],"stateMutability":"view","type":"function","name":"activeSharesOfHint","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint48","name":"timestamp","type":"uint48"}],"stateMutability":"view","type":"function","name":"activeSharesOfHintInternal","outputs":[{"internalType":"bool","name":"exists","type":"bool"},{"internalType":"uint32","name":"hint","type":"uint32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"activeStake","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint48","name":"timestamp","type":"uint48"},{"internalType":"bytes","name":"hint","type":"bytes"}],"stateMutability":"view","type":"function","name":"activeStakeAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"vault","type":"address"},{"internalType":"uint48","name":"timestamp","type":"uint48"}],"stateMutability":"view","type":"function","name":"activeStakeHint","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"uint48","name":"timestamp","type":"uint48"}],"stateMutability":"view","type":"function","name":"activeStakeHintInternal","outputs":[{"internalType":"bool","name":"exists","type":"bool"},{"internalType":"uint32","name":"hint","type":"uint32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"burner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"epoch","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"claim","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256[]","name":"epochs","type":"uint256[]"}],"stateMutability":"nonpayable","type":"function","name":"claimBatch","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"collateral","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"currentEpoch","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"currentEpochStart","outputs":[{"internalType":"uint48","name":"","type":"uint48"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"delegator","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"onBehalfOf","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"deposit","outputs":[{"internalType":"uint256","name":"depositedAmount","type":"uint256"},{"internalType":"uint256","name":"mintedShares","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"depositLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"depositWhitelist","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint48","name":"timestamp","type":"uint48"}],"stateMutability":"view","type":"function","name":"epochAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"epochDuration","outputs":[{"internalType":"uint48","name":"","type":"uint48"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"epochDurationInit","outputs":[{"internalType":"uint48","name":"","type":"uint48"}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getRoleAdmin","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"grantRole"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"hasRole","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint64","name":"initialVersion","type":"uint64"},{"internalType":"address","name":"owner_","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[],"stateMutability":"view","type":"function","name":"isDelegatorInitialized","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"isDepositLimit","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"isDepositorWhitelisted","outputs":[{"internalType":"bool","name":"value","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"isInitialized","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"isSlasherInitialized","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint256","name":"epoch","type":"uint256"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"isWithdrawalsClaimed","outputs":[{"internalType":"bool","name":"value","type":"bool"}]},{"inputs":[{"internalType":"uint64","name":"newVersion","type":"uint64"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"migrate"},{"inputs":[],"stateMutability":"view","type":"function","name":"nextEpochStart","outputs":[{"internalType":"uint48","name":"","type":"uint48"}]},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint48","name":"captureTimestamp","type":"uint48"}],"stateMutability":"nonpayable","type":"function","name":"onSlash","outputs":[{"internalType":"uint256","name":"slashedAmount","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"previousEpochStart","outputs":[{"internalType":"uint48","name":"","type":"uint48"}]},{"inputs":[{"internalType":"address","name":"claimer","type":"address"},{"internalType":"uint256","name":"shares","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"redeem","outputs":[{"internalType":"uint256","name":"withdrawnAssets","type":"uint256"},{"internalType":"uint256","name":"mintedShares","type":"uint256"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"callerConfirmation","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"renounceRole"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"revokeRole"},{"inputs":[{"internalType":"address","name":"delegator_","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setDelegator"},{"inputs":[{"internalType":"uint256","name":"limit","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setDepositLimit"},{"inputs":[{"internalType":"bool","name":"status","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"setDepositWhitelist"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"status","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"setDepositorWhitelistStatus"},{"inputs":[{"internalType":"bool","name":"status","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"setIsDepositLimit"},{"inputs":[{"internalType":"address","name":"slasher_","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setSlasher"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"slashableBalanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"slasher","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"staticDelegateCall"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"totalStake","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"},{"inputs":[],"stateMutability":"view","type":"function","name":"version","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[{"internalType":"address","name":"claimer","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"withdraw","outputs":[{"internalType":"uint256","name":"burnedShares","type":"uint256"},{"internalType":"uint256","name":"mintedShares","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"epoch","type":"uint256"}],"stateMutability":"view","type":"function","name":"withdrawalShares","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"epoch","type":"uint256"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"withdrawalSharesOf","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"epoch","type":"uint256"}],"stateMutability":"view","type":"function","name":"withdrawals","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"epoch","type":"uint256"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"withdrawalsOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]}],"devdoc":{"kind":"dev","methods":{"activeBalanceOf(address)":{"params":{"account":"account to get the active balance for"},"returns":{"_0":"active balance for the account"}},"activeBalanceOfAt(address,uint48,bytes)":{"params":{"account":"account to get the active balance for","hints":"hints for checkpoints' indexes","timestamp":"time point to get the active balance for the account at"},"returns":{"_0":"active balance for the account at the timestamp"}},"activeShares()":{"returns":{"_0":"total number of active shares"}},"activeSharesAt(uint48,bytes)":{"params":{"hint":"hint for the checkpoint index","timestamp":"time point to get the total number of active shares at"},"returns":{"_0":"total number of active shares at the timestamp"}},"activeSharesOf(address)":{"params":{"account":"account to get the number of active shares for"},"returns":{"_0":"number of active shares for the account"}},"activeSharesOfAt(address,uint48,bytes)":{"params":{"account":"account to get the number of active shares for","hint":"hint for the checkpoint index","timestamp":"time point to get the number of active shares for the account at"},"returns":{"_0":"number of active shares for the account at the timestamp"}},"activeStake()":{"returns":{"_0":"total amount of active stake"}},"activeStakeAt(uint48,bytes)":{"params":{"hint":"hint for the checkpoint index","timestamp":"time point to get the total active stake at"},"returns":{"_0":"total amount of active stake at the timestamp"}},"claim(address,uint256)":{"params":{"epoch":"epoch to claim the collateral for","recipient":"account that receives the collateral"},"returns":{"amount":"amount of the collateral claimed"}},"claimBatch(address,uint256[])":{"params":{"epochs":"epochs to claim the collateral for","recipient":"account that receives the collateral"},"returns":{"amount":"amount of the collateral claimed"}},"currentEpoch()":{"returns":{"_0":"current epoch"}},"currentEpochStart()":{"returns":{"_0":"start of the current epoch"}},"deposit(address,uint256)":{"params":{"amount":"amount of the collateral to deposit","onBehalfOf":"account the deposit is made on behalf of"},"returns":{"depositedAmount":"real amount of the collateral deposited","mintedShares":"amount of the active shares minted"}},"epochAt(uint48)":{"details":"Reverts if the timestamp is less than the start of the epoch 0.","params":{"timestamp":"time point to get the epoch at"},"returns":{"_0":"epoch at the timestamp"}},"getRoleAdmin(bytes32)":{"details":"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}."},"grantRole(bytes32,address)":{"details":"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event."},"hasRole(bytes32,address)":{"details":"Returns `true` if `account` has been granted `role`."},"initialize(uint64,address,bytes)":{"params":{"data":"some data to use","initialVersion":"initial version of the entity","owner":"initial owner of the entity"}},"isInitialized()":{"returns":{"_0":"if the vault is fully initialized"}},"migrate(uint64,bytes)":{"params":{"data":"some data to use","newVersion":"new version of the entity"}},"nextEpochStart()":{"returns":{"_0":"start of the next epoch"}},"onSlash(uint256,uint48)":{"details":"Only the slasher can call this function.","params":{"amount":"amount to slash","captureTimestamp":"time point when the stake was captured"},"returns":{"slashedAmount":"real amount of the collateral slashed"}},"owner()":{"details":"Returns the address of the current owner."},"previousEpochStart()":{"details":"Reverts if the current epoch is 0.","returns":{"_0":"start of the previous epoch"}},"redeem(address,uint256)":{"params":{"claimer":"account that needs to claim the withdrawal","shares":"amount of the active shares to redeem"},"returns":{"mintedShares":"amount of the epoch withdrawal shares minted","withdrawnAssets":"amount of the collateral withdrawn"}},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner."},"renounceRole(bytes32,address)":{"details":"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `callerConfirmation`. May emit a {RoleRevoked} event."},"revokeRole(bytes32,address)":{"details":"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event."},"setDepositLimit(uint256)":{"details":"Only a DEPOSIT_LIMIT_SET_ROLE holder can call this function.","params":{"limit":"deposit limit (maximum amount of the collateral that can be in the vault simultaneously)"}},"setDepositWhitelist(bool)":{"details":"Only a DEPOSIT_WHITELIST_SET_ROLE holder can call this function.","params":{"status":"if enabling deposit whitelist"}},"setDepositorWhitelistStatus(address,bool)":{"details":"Only a DEPOSITOR_WHITELIST_ROLE holder can call this function.","params":{"account":"account for which the whitelist status is set","status":"if whitelisting the account"}},"setIsDepositLimit(bool)":{"details":"Only a IS_DEPOSIT_LIMIT_SET_ROLE holder can call this function.","params":{"status":"if enabling deposit limit"}},"slashableBalanceOf(address)":{"params":{"account":"account to get the slashable collateral for"},"returns":{"_0":"total amount of the account's slashable collateral"}},"staticDelegateCall(address,bytes)":{"details":"It allows to use this contract's storage on-chain.","params":{"data":"data to make a delegatecall with","target":"address of the contract to make a delegatecall to"}},"supportsInterface(bytes4)":{"details":"See {IERC165-supportsInterface}."},"totalStake()":{"returns":{"_0":"total amount of the slashable collateral"}},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."},"version()":{"details":"Starts from 1.","returns":{"_0":"version of the entity"}},"withdraw(address,uint256)":{"params":{"amount":"amount of the collateral to withdraw","claimer":"account that needs to claim the withdrawal"},"returns":{"burnedShares":"amount of the active shares burned","mintedShares":"amount of the epoch withdrawal shares minted"}},"withdrawalsOf(uint256,address)":{"params":{"account":"account to get the withdrawals for","epoch":"epoch to get the withdrawals for the account at"},"returns":{"_0":"withdrawals for the account at the epoch"}}},"version":1},"userdoc":{"kind":"user","methods":{"DELEGATOR_FACTORY()":{"notice":"Get the delegator factory's address."},"DEPOSITOR_WHITELIST_ROLE()":{"notice":"Get a depositor whitelist status setter's role."},"DEPOSIT_LIMIT_SET_ROLE()":{"notice":"Get a deposit limit setter's role."},"DEPOSIT_WHITELIST_SET_ROLE()":{"notice":"Get a deposit whitelist enabler/disabler's role."},"FACTORY()":{"notice":"Get the factory's address."},"IS_DEPOSIT_LIMIT_SET_ROLE()":{"notice":"Get a deposit limit enabler/disabler's role."},"SLASHER_FACTORY()":{"notice":"Get the slasher factory's address."},"activeBalanceOf(address)":{"notice":"Get an active balance for a particular account."},"activeBalanceOfAt(address,uint48,bytes)":{"notice":"Get an active balance for a particular account at a given timestamp using hints."},"activeShares()":{"notice":"Get a total number of active shares in the vault."},"activeSharesAt(uint48,bytes)":{"notice":"Get a total number of active shares in the vault at a given timestamp using a hint."},"activeSharesOf(address)":{"notice":"Get a number of active shares for a particular account."},"activeSharesOfAt(address,uint48,bytes)":{"notice":"Get a total number of active shares for a particular account at a given timestamp using a hint."},"activeStake()":{"notice":"Get a total amount of active stake in the vault."},"activeStakeAt(uint48,bytes)":{"notice":"Get a total amount of active stake in the vault at a given timestamp using a hint."},"burner()":{"notice":"Get a burner to issue debt to (e.g., 0xdEaD or some unwrapper contract)."},"claim(address,uint256)":{"notice":"Claim collateral from the vault."},"claimBatch(address,uint256[])":{"notice":"Claim collateral from the vault for multiple epochs."},"collateral()":{"notice":"Get a vault collateral."},"currentEpoch()":{"notice":"Get a current vault epoch."},"currentEpochStart()":{"notice":"Get a start of the current vault epoch."},"delegator()":{"notice":"Get a delegator (it delegates the vault's stake to networks and operators)."},"deposit(address,uint256)":{"notice":"Deposit collateral into the vault."},"depositLimit()":{"notice":"Get a deposit limit (maximum amount of the active stake that can be in the vault simultaneously)."},"depositWhitelist()":{"notice":"Get if the deposit whitelist is enabled."},"epochAt(uint48)":{"notice":"Get an epoch at a given timestamp."},"epochDuration()":{"notice":"Get a duration of the vault epoch."},"epochDurationInit()":{"notice":"Get a time point of the epoch duration set."},"initialize(uint64,address,bytes)":{"notice":"Initialize this entity contract by using a given data and setting a particular version and owner."},"isDelegatorInitialized()":{"notice":"Get if the delegator is initialized."},"isDepositLimit()":{"notice":"Get if the deposit limit is set."},"isDepositorWhitelisted(address)":{"notice":"Get if a given account is whitelisted as a depositor."},"isInitialized()":{"notice":"Check if the vault is fully initialized (a delegator and a slasher are set)."},"isSlasherInitialized()":{"notice":"Get if the slasher is initialized."},"isWithdrawalsClaimed(uint256,address)":{"notice":"Get if the withdrawals are claimed for a particular account at a given epoch."},"migrate(uint64,bytes)":{"notice":"Migrate this entity to a particular newer version using a given data."},"nextEpochStart()":{"notice":"Get a start of the next vault epoch."},"onSlash(uint256,uint48)":{"notice":"Slash callback for burning collateral."},"previousEpochStart()":{"notice":"Get a start of the previous vault epoch."},"redeem(address,uint256)":{"notice":"Redeem collateral from the vault (it will be claimable after the next epoch)."},"setDepositLimit(uint256)":{"notice":"Set a deposit limit."},"setDepositWhitelist(bool)":{"notice":"Enable/disable deposit whitelist."},"setDepositorWhitelistStatus(address,bool)":{"notice":"Set a depositor whitelist status."},"setIsDepositLimit(bool)":{"notice":"Enable/disable deposit limit."},"slashableBalanceOf(address)":{"notice":"Get a total amount of the collateral that can be slashed for a given account."},"slasher()":{"notice":"Get a slasher (it provides networks a slashing mechanism)."},"staticDelegateCall(address,bytes)":{"notice":"Make a delegatecall from this contract to a given target contract with a particular data (always reverts with a return data)."},"totalStake()":{"notice":"Get a total amount of the collateral that can be slashed."},"version()":{"notice":"Get the entity's version."},"withdraw(address,uint256)":{"notice":"Withdraw collateral from the vault (it will be claimable after the next epoch)."},"withdrawalShares(uint256)":{"notice":"Get a total number of withdrawal shares at a given epoch."},"withdrawalSharesOf(uint256,address)":{"notice":"Get a number of withdrawal shares for a particular account at a given epoch (zero if claimed)."},"withdrawals(uint256)":{"notice":"Get a total amount of the withdrawals at a given epoch."},"withdrawalsOf(uint256,address)":{"notice":"Get withdrawals for a particular account at a given epoch (zero if claimed)."}},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/contracts/hints/VaultHints.sol":"VaultHints"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol":{"keccak256":"0x6662ec4e5cefca03eeadd073e9469df8d2944bb2ee8ec8f7622c2c46aab5f225","urls":["bzz-raw://4d8544c6f8daa4d1bc215c6a72fe0acdb748664a105b0e5efc19295667521d45","dweb:/ipfs/QmdGWqdnXT8S3RgCR6aV8XHZrsybieMQLLnug1NtpSjEXN"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol":{"keccak256":"0xc163fcf9bb10138631a9ba5564df1fa25db9adff73bd9ee868a8ae1858fe093a","urls":["bzz-raw://9706d43a0124053d9880f6e31a59f31bc0a6a3dc1acd66ce0a16e1111658c5f6","dweb:/ipfs/QmUFmfowzkRwGtDu36cXV9SPTBHJ3n7dG9xQiK5B28jTf2"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b","urls":["bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609","dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol":{"keccak256":"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397","urls":["bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9","dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardUpgradeable.sol":{"keccak256":"0xb44e086e941292cdc7f440de51478493894ef0b1aeccb0c4047445919f667f74","urls":["bzz-raw://942dad22fbdc1669f025540ba63aa3ccfad5f8458fc5d4525b31ebf272e7af45","dweb:/ipfs/Qmdo4X2M82aM3AMoW2kf2jhYkSCyC4T1pHNd6obdsDFnAB"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol":{"keccak256":"0xdaba3f7c42c55b2896353f32bd27d4d5f8bae741b3b05d4c53f67abc4dc47ce8","urls":["bzz-raw://1fa2e61141c602510bcd2cd936ed9561922ac8772a9b9c9a9db091a74e354a45","dweb:/ipfs/QmcHQDDoEBwJmwUbzoVkytvJsBx3KVHYFFnDkvRGWh9Wmh"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol":{"keccak256":"0xb6b36edd6a2999fd243ff226d6cbf84bd71af2432bbd0dfe19392996a1d9cb41","urls":["bzz-raw://1fd2f35495652e57e3f99bc6c510bc5f7dd398a176ea2e72d8ed730aebc6ca26","dweb:/ipfs/QmTQV6X4gkikTib49cho5iDX3JvSQbdsoEChoDwrk3CbbH"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70","urls":["bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c","dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol":{"keccak256":"0x6008dabfe393240d73d7dd7688033f72740d570aa422254d29a7dce8568f3aff","urls":["bzz-raw://f5196ec75139918c6c7bb4251b36395e668f1fa6d206beba7e7520e74913940d","dweb:/ipfs/QmSyqjksXxmm2mCG6qRd1yuwLykypkSVBbnBnGqJRcuJMi"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0x37bb49513c49c87c4642a891b13b63571bc87013dde806617aa1efb54605f386","urls":["bzz-raw://b3036b3a83b7c48f96641f2a9002b9f2dcb6a5958dd670894ada21ae8229b3d0","dweb:/ipfs/QmUNfSBdoVtjhETaUJCYcaC7pTMgbhht926tJ2uXJbiVd3"],"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/introspection/IERC165.sol":{"keccak256":"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b","urls":["bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df","dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d","urls":["bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875","dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol":{"keccak256":"0xe19a4d5f31d2861e7344e8e535e2feafb913d806d3e2b5fe7782741a2a7094fe","urls":["bzz-raw://4aed79c0fa6f0546ed02f2f683e8f77f0fd2ed7eb34d8bbf3d373c9a6d95b13c","dweb:/ipfs/QmWqVz6UAVqmnWU5pqYPt1o6iDEZyPaBraAA3rKfTTSfYj"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/Checkpoints.sol":{"keccak256":"0xbdc5e074d7dd6678f67e92b1a51a20226801a407b0e1af3da367c5d1ff4519ad","urls":["bzz-raw://a36cca6b22fff3db16fc789ff6c60eea71d4b156065d4d0c83a0bc5e91a77a8b","dweb:/ipfs/QmYN3exd5AemxjBrN8XMB1p5LbbE16uC3sjbYjwi8AjcGR"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/types/Time.sol":{"keccak256":"0xc7755af115020049e4140f224f9ee88d7e1799ffb0646f37bf0df24bf6213f58","urls":["bzz-raw://7f09bf94d5274334ec021f61a04659db303f31e60460e14b709c9bf187740111","dweb:/ipfs/QmNvgomZYUwFAt4cZbPWAiTeSZQreGehY9BK5xyVJsUttb"],"license":"MIT"},"src/contracts/common/MigratableEntity.sol":{"keccak256":"0x2d736f4dacd5d7e7697503bc426c78b8250fe1694ca157965ec178da6807de58","urls":["bzz-raw://f1237acf96b4b9f9b69156e068eddd726a6e15bd8e87a18dc999cd4ba4da069c","dweb:/ipfs/QmS6M8fiFFSeuJ4ZKKq1z8W7w4ybeHQSy5TLASGoc1LVic"],"license":"BUSL-1.1"},"src/contracts/common/StaticDelegateCallable.sol":{"keccak256":"0x350029aa8955eacaffffaeb58babc5c98e80ebc5c5db388ed17ee6465f4a9d90","urls":["bzz-raw://eb392a8ee9050e0af606897df63e3404e3829e8b688b580663892f9664195764","dweb:/ipfs/QmaXC8jqV8UrrAFkzXTEv2fJF56sy33HhLxAzaRZmUxuXD"],"license":"BUSL-1.1"},"src/contracts/hints/Hints.sol":{"keccak256":"0x8b565df1ae35993c097a9e642002782a8f451f6fd01809cad6bcd345bdf1b99c","urls":["bzz-raw://99a19adb01e350a92f534095b3078229df1f2f83077992d75d58d8684be45971","dweb:/ipfs/QmbmwcuswVbzvwHQFTtrJG86oV98GnfxqYTb8cV8u1acox"],"license":"BUSL-1.1"},"src/contracts/hints/VaultHints.sol":{"keccak256":"0xccb505b7159b769cc114d67b87c2de6b106557f667fc8f3780114baad5c3c442","urls":["bzz-raw://6d0c80a908fc16e96a8b5605a0bd53f9e89ad0ef0a738fbbae80ba4d3160749b","dweb:/ipfs/QmXo5UtWoR8YmunqcbBU8rQMm1nvmvjNPoXcVrDhh4pEwR"],"license":"BUSL-1.1"},"src/contracts/libraries/Checkpoints.sol":{"keccak256":"0xba90097c8bfe0a975499428b5f8ac5569483c7d92ccc28c12d70de416aae040c","urls":["bzz-raw://12f5d93ca94cd06d3147db68993165a58e17903ed53682560de61f3085ad4609","dweb:/ipfs/QmePiuAqvXprMLmFZkGZeGjvGPAvsEDHfCDv7BoQhXu9xE"],"license":"MIT"},"src/contracts/libraries/ERC4626Math.sol":{"keccak256":"0x8441160513c1cbeb1c3b9ee077bcc7e7ce20006b52a77c8dd39ff0ef89699939","urls":["bzz-raw://943f8cc3e26ddf649f465f40c909819f5c864717c4baa339e9e403b9374a4653","dweb:/ipfs/QmXPxi1sUDsrGprZdUgCzoPEosaZMv9ZhygWQ1vAi1phAB"],"license":"MIT"},"src/contracts/vault/Vault.sol":{"keccak256":"0x2ceff6ed3298c4cad144c99fcc79b51cb9397d6ebef00285b915848b476f8c2e","urls":["bzz-raw://11f2fb3581854f3ab6e82e8d4935d9eb510c903a13c3f022346c2956a58f5307","dweb:/ipfs/QmdUnoXoyYoG9SGWyQZCFyLDRUUX3eXyXetkRvw6jxqqBz"],"license":"BUSL-1.1"},"src/contracts/vault/VaultStorage.sol":{"keccak256":"0x57db25b127d77ea3472de53e3a4af3354399655b9268638b99ca5925fa364a56","urls":["bzz-raw://aa763d9a6ec508ae3abfb8228b72b9fd9525279e5135d4962e79ff059feb1173","dweb:/ipfs/QmcbDR6E9wyEpu6V2FkEC4hnWy47zXA9LSKJde6zSGd33Q"],"license":"BUSL-1.1"},"src/interfaces/common/IEntity.sol":{"keccak256":"0x8ef4b63d6da63489778ccd5f8d13ebdd527dd4b62730b2c616df5af7474d2d21","urls":["bzz-raw://5a8d69576a9219d85c50816a18ad53a4d53cfcb27ed38b8cccc808dc2734b71b","dweb:/ipfs/QmYVN3P4Q4REvBWJ97TbAcaxm3uyB2anV6NSGa6ZtSwcEv"],"license":"MIT"},"src/interfaces/common/IMigratableEntity.sol":{"keccak256":"0x8f5f2809f3afbe8ebfbb365dd7b57b4dd3b6f9943a6187eaf648d45895b8e3c4","urls":["bzz-raw://0ffe640537d539e7a4fde70d30d3e4c57f4ba9c2c25c450cea713aae38e8fd5c","dweb:/ipfs/QmSUTGzvdcn1R1KB7tLThMRtESsfPbeXDhhhKWGtntzBds"],"license":"MIT"},"src/interfaces/common/IRegistry.sol":{"keccak256":"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb","urls":["bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014","dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK"],"license":"MIT"},"src/interfaces/common/IStaticDelegateCallable.sol":{"keccak256":"0xa335d4e81b9071b7de66ef92b43ff20671d86516eb1be46fef29a3483cd3f5d5","urls":["bzz-raw://d464b9db863c14c05547d2b23352f2e9b7b784799cf09f6bbc4906a2a74e3516","dweb:/ipfs/QmUVWzFvJz7eEbDQKiFTTzwi7TEbjcs3VmwdM4kuptAKvi"],"license":"MIT"},"src/interfaces/delegator/IBaseDelegator.sol":{"keccak256":"0x96bb312f032e17accce3f8f80936d99468029d6b37c9ca74acdb4b026a0148ee","urls":["bzz-raw://2a66dcb5b7d1a6ef6a363431ea98ebd78bc4fdd3d7a134d9b542dc66e7d025c2","dweb:/ipfs/QmRhTPLd2ZAyRHmJUFUcWKs9b3if49QY17LYZuRqWmghw8"],"license":"MIT"},"src/interfaces/slasher/IBaseSlasher.sol":{"keccak256":"0x7c82528b445659c313ab77335c407b0b6efe5e79027187bb287f7bc74202b404","urls":["bzz-raw://0274c90aa5df1aa6bb470a6aab53992fb14fd7e5472c9430416505b29647d9cf","dweb:/ipfs/QmckbmJLDetPemVzCnnGcKYWAZV2BRFXGDsjiaec8jkHxx"],"license":"MIT"},"src/interfaces/vault/IVault.sol":{"keccak256":"0xffee01d383cd4e1a5530c614bf4360c1ef070c288abec9da1eb531b51bc07235","urls":["bzz-raw://04f0046cac285d8ec44ebbb1f79dc94fab4495767190cad8364fbc1fafaadfb9","dweb:/ipfs/QmUawAunwzXfCyShWfhKeThAgKtqe51hmrxvrXvM772M2R"],"license":"MIT"},"src/interfaces/vault/IVaultStorage.sol":{"keccak256":"0x592626f13754194f83047135de19229c49390bd59e34659b1bb38be71d973a22","urls":["bzz-raw://06a6a9dfddd05e580b32bebe2cff4f63ba26a653180676d58225dd30d9c89d3e","dweb:/ipfs/QmdgzBeY6Sxo8mGtyBxtv1tM1c2kU6J6zjeRd7vuXm4DU6"],"license":"MIT"}},"version":1},"id":85} \ No newline at end of file diff --git a/out/VaultTokenized.sol/VaultTokenized.json b/out/VaultTokenized.sol/VaultTokenized.json index 446c8d67..0f7be1f1 100644 --- a/out/VaultTokenized.sol/VaultTokenized.json +++ b/out/VaultTokenized.sol/VaultTokenized.json @@ -1 +1 @@ -{"abi":[{"type":"constructor","inputs":[{"name":"delegatorFactory","type":"address","internalType":"address"},{"name":"slasherFactory","type":"address","internalType":"address"},{"name":"vaultFactory","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"DEFAULT_ADMIN_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"DELEGATOR_FACTORY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"DEPOSITOR_WHITELIST_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"DEPOSIT_LIMIT_SET_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"DEPOSIT_WHITELIST_SET_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"FACTORY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"IS_DEPOSIT_LIMIT_SET_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"SLASHER_FACTORY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"activeBalanceOf","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"activeBalanceOfAt","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"timestamp","type":"uint48","internalType":"uint48"},{"name":"hints","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"activeShares","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"activeSharesAt","inputs":[{"name":"timestamp","type":"uint48","internalType":"uint48"},{"name":"hint","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"activeSharesOf","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"activeSharesOfAt","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"timestamp","type":"uint48","internalType":"uint48"},{"name":"hint","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"activeStake","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"activeStakeAt","inputs":[{"name":"timestamp","type":"uint48","internalType":"uint48"},{"name":"hint","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"allowance","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"spender","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"approve","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"balanceOf","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"burner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"claim","inputs":[{"name":"recipient","type":"address","internalType":"address"},{"name":"epoch","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"claimBatch","inputs":[{"name":"recipient","type":"address","internalType":"address"},{"name":"epochs","type":"uint256[]","internalType":"uint256[]"}],"outputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"collateral","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"currentEpoch","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"currentEpochStart","inputs":[],"outputs":[{"name":"","type":"uint48","internalType":"uint48"}],"stateMutability":"view"},{"type":"function","name":"decimals","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"uint8"}],"stateMutability":"view"},{"type":"function","name":"delegator","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"deposit","inputs":[{"name":"onBehalfOf","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"depositedAmount","type":"uint256","internalType":"uint256"},{"name":"mintedShares","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"depositLimit","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"depositWhitelist","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"epochAt","inputs":[{"name":"timestamp","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"epochDuration","inputs":[],"outputs":[{"name":"","type":"uint48","internalType":"uint48"}],"stateMutability":"view"},{"type":"function","name":"epochDurationInit","inputs":[],"outputs":[{"name":"","type":"uint48","internalType":"uint48"}],"stateMutability":"view"},{"type":"function","name":"getRoleAdmin","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"grantRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"hasRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"initialize","inputs":[{"name":"initialVersion","type":"uint64","internalType":"uint64"},{"name":"owner_","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"isDelegatorInitialized","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isDepositLimit","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isDepositorWhitelisted","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"value","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isInitialized","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isSlasherInitialized","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isWithdrawalsClaimed","inputs":[{"name":"epoch","type":"uint256","internalType":"uint256"},{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"value","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"migrate","inputs":[{"name":"newVersion","type":"uint64","internalType":"uint64"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"nextEpochStart","inputs":[],"outputs":[{"name":"","type":"uint48","internalType":"uint48"}],"stateMutability":"view"},{"type":"function","name":"onSlash","inputs":[{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"captureTimestamp","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"slashedAmount","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"previousEpochStart","inputs":[],"outputs":[{"name":"","type":"uint48","internalType":"uint48"}],"stateMutability":"view"},{"type":"function","name":"redeem","inputs":[{"name":"claimer","type":"address","internalType":"address"},{"name":"shares","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"withdrawnAssets","type":"uint256","internalType":"uint256"},{"name":"mintedShares","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"renounceRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"callerConfirmation","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"revokeRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setDelegator","inputs":[{"name":"delegator_","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setDepositLimit","inputs":[{"name":"limit","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setDepositWhitelist","inputs":[{"name":"status","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setDepositorWhitelistStatus","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"status","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setIsDepositLimit","inputs":[{"name":"status","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setSlasher","inputs":[{"name":"slasher_","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"slashableBalanceOf","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"slasher","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"staticDelegateCall","inputs":[{"name":"target","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"symbol","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"totalStake","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"totalSupply","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"transfer","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"transferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"version","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"withdraw","inputs":[{"name":"claimer","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"burnedShares","type":"uint256","internalType":"uint256"},{"name":"mintedShares","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"withdrawalShares","inputs":[{"name":"epoch","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"withdrawalSharesOf","inputs":[{"name":"epoch","type":"uint256","internalType":"uint256"},{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"withdrawals","inputs":[{"name":"epoch","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"withdrawalsOf","inputs":[{"name":"epoch","type":"uint256","internalType":"uint256"},{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"event","name":"Approval","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"spender","type":"address","indexed":true,"internalType":"address"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Claim","inputs":[{"name":"claimer","type":"address","indexed":true,"internalType":"address"},{"name":"recipient","type":"address","indexed":true,"internalType":"address"},{"name":"epoch","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"ClaimBatch","inputs":[{"name":"claimer","type":"address","indexed":true,"internalType":"address"},{"name":"recipient","type":"address","indexed":true,"internalType":"address"},{"name":"epochs","type":"uint256[]","indexed":false,"internalType":"uint256[]"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Deposit","inputs":[{"name":"depositor","type":"address","indexed":true,"internalType":"address"},{"name":"onBehalfOf","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"shares","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"OnSlash","inputs":[{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"captureTimestamp","type":"uint48","indexed":false,"internalType":"uint48"},{"name":"slashedAmount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"RoleAdminChanged","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"previousAdminRole","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"newAdminRole","type":"bytes32","indexed":true,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"RoleGranted","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"sender","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"RoleRevoked","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"sender","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"SetDelegator","inputs":[{"name":"delegator","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"SetDepositLimit","inputs":[{"name":"limit","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"SetDepositWhitelist","inputs":[{"name":"status","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"SetDepositorWhitelistStatus","inputs":[{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"status","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"SetIsDepositLimit","inputs":[{"name":"status","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"SetSlasher","inputs":[{"name":"slasher","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Withdraw","inputs":[{"name":"withdrawer","type":"address","indexed":true,"internalType":"address"},{"name":"claimer","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"burnedShares","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"mintedShares","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"error","name":"AccessControlBadConfirmation","inputs":[]},{"type":"error","name":"AccessControlUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"neededRole","type":"bytes32","internalType":"bytes32"}]},{"type":"error","name":"AddressEmptyCode","inputs":[{"name":"target","type":"address","internalType":"address"}]},{"type":"error","name":"AddressInsufficientBalance","inputs":[{"name":"account","type":"address","internalType":"address"}]},{"type":"error","name":"AlreadyClaimed","inputs":[]},{"type":"error","name":"AlreadyInitialized","inputs":[]},{"type":"error","name":"AlreadySet","inputs":[]},{"type":"error","name":"CheckpointUnorderedInsertion","inputs":[]},{"type":"error","name":"DelegatorAlreadyInitialized","inputs":[]},{"type":"error","name":"DepositLimitReached","inputs":[]},{"type":"error","name":"ERC20InsufficientAllowance","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"allowance","type":"uint256","internalType":"uint256"},{"name":"needed","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ERC20InsufficientBalance","inputs":[{"name":"sender","type":"address","internalType":"address"},{"name":"balance","type":"uint256","internalType":"uint256"},{"name":"needed","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ERC20InvalidApprover","inputs":[{"name":"approver","type":"address","internalType":"address"}]},{"type":"error","name":"ERC20InvalidReceiver","inputs":[{"name":"receiver","type":"address","internalType":"address"}]},{"type":"error","name":"ERC20InvalidSender","inputs":[{"name":"sender","type":"address","internalType":"address"}]},{"type":"error","name":"ERC20InvalidSpender","inputs":[{"name":"spender","type":"address","internalType":"address"}]},{"type":"error","name":"FailedInnerCall","inputs":[]},{"type":"error","name":"InsufficientClaim","inputs":[]},{"type":"error","name":"InsufficientDeposit","inputs":[]},{"type":"error","name":"InsufficientRedemption","inputs":[]},{"type":"error","name":"InsufficientWithdrawal","inputs":[]},{"type":"error","name":"InvalidAccount","inputs":[]},{"type":"error","name":"InvalidCaptureEpoch","inputs":[]},{"type":"error","name":"InvalidClaimer","inputs":[]},{"type":"error","name":"InvalidCollateral","inputs":[]},{"type":"error","name":"InvalidDelegator","inputs":[]},{"type":"error","name":"InvalidEpoch","inputs":[]},{"type":"error","name":"InvalidEpochDuration","inputs":[]},{"type":"error","name":"InvalidInitialization","inputs":[]},{"type":"error","name":"InvalidLengthEpochs","inputs":[]},{"type":"error","name":"InvalidOnBehalfOf","inputs":[]},{"type":"error","name":"InvalidRecipient","inputs":[]},{"type":"error","name":"InvalidSlasher","inputs":[]},{"type":"error","name":"InvalidTimestamp","inputs":[]},{"type":"error","name":"MathOverflowedMulDiv","inputs":[]},{"type":"error","name":"MissingRoles","inputs":[]},{"type":"error","name":"NoPreviousEpoch","inputs":[]},{"type":"error","name":"NotDelegator","inputs":[]},{"type":"error","name":"NotFactory","inputs":[]},{"type":"error","name":"NotInitialized","inputs":[]},{"type":"error","name":"NotInitializing","inputs":[]},{"type":"error","name":"NotSlasher","inputs":[]},{"type":"error","name":"NotWhitelistedDepositor","inputs":[]},{"type":"error","name":"OwnableInvalidOwner","inputs":[{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"OwnableUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"}]},{"type":"error","name":"ReentrancyGuardReentrantCall","inputs":[]},{"type":"error","name":"SafeCastOverflowedUintDowncast","inputs":[{"name":"bits","type":"uint8","internalType":"uint8"},{"name":"value","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"SafeERC20FailedOperation","inputs":[{"name":"token","type":"address","internalType":"address"}]},{"type":"error","name":"SlasherAlreadyInitialized","inputs":[]},{"type":"error","name":"TooMuchRedeem","inputs":[]},{"type":"error","name":"TooMuchWithdraw","inputs":[]}],"bytecode":{"object":"0x60e03461013c57601f61579138819003918201601f1916830192916001600160401b03918285118486101761014057816060928592604097885283398101031261013c5761004c82610154565b916100648461005d60208401610154565b9201610154565b9260805260a0527ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a009081549060ff82861c1661012b5780808316036100e7575b50505060c05251615628908161016982396080518181816115820152611b29015260a051818181611c9201526121ef015260c051818181610a9b0152610cc30152f35b6001600160401b0319909116811790915582519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a15f80806100a4565b845163f92ee8a960e01b8152600490fd5b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b51906001600160a01b038216820361013c5756fe60806040526004361015610011575f80fd5b5f3560e01c806301ffc9a7146104ba57806306fdde03146104b5578063095ea7b3146104b05780631415519b146104ab57806318160ddd146103895780631b66c9e1146104a65780631e9a6950146104a157806323b872dd1461049c578063248a9ca31461049757806327810b6e14610492578063281f57521461048d5780632abe3048146104885780632d73c69c146104835780632dd310001461047e5780632f2ff15d14610479578063313ce5671461047457806336568abe1461046f578063392e53cd1461046a5780634105a7dd14610465578063463616711461046057806347e7ef241461045b57806348d3b775146104565780634ff0876a1461045157806350861adc1461044c57806350f22068146104475780635346e34f1461044257806354fd4d501461043d57806357ec83cc1461043857806359f769a9146104335780635cc070761461042e57806361a8c8c4146104295780636da3e06d146104245780636ec1e3f81461041f57806370a08231146103d4578063715018a61461041a5780637278e31c1461041557806373790ab314610410578063766718081461040b578063794b15b7146104065780637953b33b146104015780637c04c80a146103fc578063810da75d146103f757806383cd9cc3146103f257806387df0788146103ed5780638b0e9f3f146103e85780638da5cb5b146103e357806391d14854146103de57806395d89b41146103d95780639d66201b146103d45780639f86fd85146103cf578063a1b12202146103ca578063a217fddf146103c5578063a21a1df9146103c0578063a2861466146103bb578063a3b54172146103b6578063a5d03223146103b1578063a9059cbb146103ac578063aabc2496146103a7578063aad3ec96146103a2578063afba70ad1461039d578063b134427114610398578063bd49c35f14610393578063bdc8144b1461038e578063bfefcd7b14610389578063c31e8dd714610384578063ce9b79301461037f578063d547741f1461037a578063d8dfeb4514610375578063db38871514610370578063dd62ed3e1461036b578063ecf7085814610366578063efb559d614610361578063f2fde38b1461035c578063f3fef3a3146103575763f5e7ee0f14610352575f80fd5b6128a9565b612803565b6127d6565b612687565b61266a565b612633565b6125f9565b6125ce565b612582565b61255a565b6124f0565b610749565b612412565b6123f8565b6123d0565b6123a6565b6122e5565b61212e565b6120f9565b6120b3565b612066565b611f73565b611f39565b611f1f565b611efb565b611e67565b6115d6565b611db5565b611d57565b611d23565b611cc1565b611c7d565b611ac4565b611aab565b611a45565b611a1e565b6119de565b61198c565b61194b565b611677565b611610565b6115b1565b61156d565b61151a565b6114f0565b6114c9565b611391565b61135f565b6112ca565b6112b1565b611254565b611234565b611213565b610f2b565b610f03565b610e68565b610e23565b610dd8565b610d40565b610cf2565b610cae565b610c42565b610a56565b610988565b610960565b610927565b61088a565b6107a5565b61076b565b61070f565b61064d565b61054c565b346105105760203660031901126105105760043563ffffffff60e01b811680910361051057602090637965db0b60e01b81149081156104ff575b506040519015158152f35b6301ffc9a760e01b1490505f6104f4565b5f80fd5b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b906020610549928181520190610514565b90565b34610510575f366003190112610510576040515f5f805160206154d383398151915280549061057a826128d3565b8085529160209160019182811690811561060f57506001146105b7575b6105b3866105a781880382610b86565b60405191829182610538565b0390f35b5f90815293507f2ae08a8e29253f69ac5d979a101956ab8f8d9d7ded63fa7a83b16fc47648eab05b8385106105fc575050505081016020016105a7826105b35f610597565b80548686018401529382019381016105df565b90508695506105b3969350602092506105a794915060ff191682840152151560051b82010192935f610597565b6001600160a01b0381160361051057565b346105105760403660031901126105105760043561066a8161063c565b60243533156106f7576001600160a01b0382169182156106df576106a78291610692336119a6565b9060018060a01b03165f5260205260405f2090565b556040519081527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560203392a3602060405160018152f35b604051634a1406b160e11b81525f6004820152602490fd5b60405163e602df0560e01b81525f6004820152602490fd5b34610510575f3660031901126105105760206040517fc6aaadd7371d5e8f9ed6849dd66a66573a3ba37167d03f4352c9ba5693678fac8152f35b34610510575f366003190112610510576020610763614003565b604051908152f35b34610510575f3660031901126105105760206040517f9c56d972d63cbb4195b3c1484691dfc220fa96a4c47e7b6613bd82a022029e068152f35b34610510576040366003190112610510576004356107c28161063c565b602435906107ce612e1a565b6001600160a01b0381161561087957335f908152600e602052604090206107f9906140f0565b6140f0565b82116108675761081961080a61407c565b610812614003565b9084614164565b918215610852578261082a92612e49565b9061084160015f805160206155b383398151915255565b604080519182526020820192909252f35b60405160016245ddc760e11b03198152600490fd5b604051632418411f60e11b8152600490fd5b6040516208978560e71b8152600490fd5b34610510576060366003190112610510576004356108a78161063c565b6024356108b38161063c565b604435906108c433610692856119a6565b5492600184016108e5575b6108d99350612fd9565b60405160018152602090f35b828410610901576108fc836108d99503338361413d565b6108cf565b604051637dc7a0d960e11b81523360048201526024810185905260448101849052606490fd5b34610510576020366003190112610510576004355f525f805160206155938339815191526020526020600160405f200154604051908152f35b34610510575f366003190112610510576001546040516001600160a01b039091168152602090f35b34610510575f366003190112610510576109a0612b3f565b8015610a015760015465ffffffffffff8160a01c16915f1981019081116109fc576109ce9160d01c9061293a565b81018091116109fc576109e36105b391613138565b60405165ffffffffffff90911681529081906020820190565b61290b565b604051639fa56a5b60e01b8152600490fd5b600435906001600160401b038216820361051057565b9181601f84011215610510578235916001600160401b038311610510576020838186019501011161051057565b3461051057604036600319011261051057610a6f610a13565b6001600160401b0360243581811161051057610a8f903690600401610a29565b5050610a99612e1a565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163303610b15575f805160206155d3833981519152549060ff8260401c16928315610b05575b505050610af3575f80fd5b60405163f92ee8a960e01b8152600490fd5b81169116101590505f8080610ae8565b604051631966391b60e11b8152600490fd5b65ffffffffffff81160361051057565b634e487b7160e01b5f52604160045260245ffd5b606081019081106001600160401b03821117610b6657604052565b610b37565b604081019081106001600160401b03821117610b6657604052565b90601f801991011681019081106001600160401b03821117610b6657604052565b6040519061016082018281106001600160401b03821117610b6657604052565b60405190610bd482610b6b565b565b6001600160401b038111610b6657601f01601f191660200190565b929192610bfd82610bd6565b91610c0b6040519384610b86565b829481845281830111610510578281602093845f960137010152565b9080601f830112156105105781602061054993359101610bf1565b3461051057606036600319011261051057600435610c5f8161063c565b60243590610c6c82610b27565b604435906001600160401b03821161051057602092610c92610763933690600401610c27565b6001600160a01b039092165f908152600e855260409020613331565b34610510575f366003190112610510576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461051057604036600319011261051057610d3e602435600435610d158261063c565b805f525f80516020615593833981519152602052610d39600160405f200154613508565b613808565b005b34610510575f366003190112610510575f5460405163313ce56760e01b8152906020908290600490829060101c6001600160a01b03165afa8015610dd3575f90610d95575b60405160ff919091168152602090f35b506020813d602011610dcb575b81610daf60209383610b86565b81010312610510575160ff81168103610510576105b390610d85565b3d9150610da2565b612989565b3461051057604036600319011261051057602435610df58161063c565b336001600160a01b03821603610e1157610d3e9060043561383e565b60405163334bd91960e11b8152600490fd5b34610510575f3660031901126105105760ff60025460a01c1680610e4f575b6020906040519015158152f35b5060035460a01c60ff16610e42565b8015150361051057565b3461051057602036600319011261051057600435610e8581610e5e565b610e8d612e1a565b610e956133fd565b5f54901515908160ff8216151514610ef15760ff191660ff8216175f556040519081527f3e12b7b36c75ac9609a3f58609b331210428e1a85909132638955ba0301eec3390602090a160015f805160206155b383398151915255005b60405163a741a04560e01b8152600490fd5b34610510575f36600319011261051057602065ffffffffffff60015460a01c16604051908152f35b3461051057604080600319360112610510576004803591610f4b8361063c565b610f53612e1a565b6001600160a01b0391838316908115611205575f5460ff8116806111ec575b6111dd5783516370a0823160e01b808252308483019081529096602093909160109190911c82169084908490819083010381845afa928315610dd3575f936111ba575b50610fc790602435903090339061453d565b5f5486519788523085890190815290979184918391908290819060200103918b60101c165afa908115610dd357611006935f9261118d575b505061292d565b93841561117e5760081c60ff1680611169575b61115b5750906105b3916110ca61102e61407c565b9561107761103a614003565b6110626110488a838b614164565b9961105c8a61105642613138565b9261295b565b90613c9e565b50506110718961105642613138565b90613d7e565b50506001600160a01b0381165f908152600e60205260409020906110c4886110bf6107f46110a442613138565b6001600160a01b039095165f908152600e6020526040902090565b61295b565b91613e5a565b5050815184815260208101869052819033907fdcbc1c05240f31ff3ad067ef1ee35ce4997762752e3a095284754544f4c709d790604090a361111860015f805160206155b383398151915255565b81518581525f907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90602090a35191825260208201929092529081906040820190565b8251632484557960e01b8152fd5b50611176846110bf61407c565b815410611019565b50825163070f6eed60e11b8152fd5b6111ac9250803d106111b3575b6111a48183610b86565b8101906138d0565b5f80610fff565b503d61119a565b610fc79193506111d690853d87116111b3576111a48183610b86565b9290610fb5565b5082516304f63b8560e01b8152fd5b50335f9081526005602052604090205460ff1615610f72565b8251630d534ce360e11b8152fd5b34610510575f36600319011261051057602060ff5f54166040519015158152f35b34610510575f36600319011261051057602060015460d01c604051908152f35b34610510575f36600319011261051057602060ff60025460a01c166040519015158152f35b9060406003198301126105105760043561129281610b27565b91602435906001600160401b0382116105105761054991600401610c27565b346105105760206107636112c436611279565b9061319b565b34610510576020366003190112610510576004356112e781610e5e565b6112ef612e1a565b6112f761345a565b5f54901515908160ff8260081c16151514610ef15761ff001916600882901b61ff0016175f556040519081527ffa7a25a0b611d4ba3c0ea990e90dc23d484a5dd7a1be4733fef2946ba74530c690602090a1610d3e60015f805160206155b383398151915255565b34610510575f3660031901126105105760206001600160401b035f805160206155d38339815191525416604051908152f35b34610510576060366003190112610510576113aa610a13565b6024356113b68161063c565b6001600160401b0391604435838111610510576113d7903690600401610a29565b5f805160206155d38339815191529491855494838616806114b85760ff8760401c169081156114ab575b50610af3577fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2966114a69661146e958716906001600160401b0319161790556114695f805160206155d3833981519152600160401b68ff000000000000000019825416179055565b612994565b5f805160206155d3833981519152805468ff0000000000000000191690556040516001600160401b0390911681529081906020820190565b0390a1005b905084861611155f611401565b60405162dc149f60e41b8152600490fd5b346105105760203660031901126105105760206107636004356114eb8161063c565b612aa8565b34610510576020366003190112610510576004355f526006602052602060405f2054604051908152f35b34610510575f3660031901126105105760015465ffffffffffff611550818360a01c1692611546612b3f565b9060d01c9061293a565b82018092116109fc57611564602092613138565b60405191168152f35b34610510575f366003190112610510576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b34610510575f36600319011261051057602060ff60035460a01c166040519015158152f35b34610510576020366003190112610510576004356115f38161063c565b60018060a01b03165f52600e602052602061076360405f206140f0565b34610510575f36600319011261051057611628613abc565b5f8051602061553383398151915280546001600160a01b031981169091555f906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b346105105760403660031901126105105760043560243561169781610b27565b61169f612e1a565b6003546116bc906001600160a01b03165b6001600160a01b031690565b3303611939576116ca612b3f565b906116d481612b73565b9082151580611928575b801561191f575b61190d576105b3937ff9d090c096f71cd1659861a9ce5b6f384bceb4e2fa4e4a19edf6489a9b8d56c79261171761407c565b946117326117248261294d565b5f52600660205260405f2090565b54908281036118265750611746818761295b565b6117508185613af4565b9687806117df575b50505050505b836117ab575b6040805191825265ffffffffffff929092166020820152908101839052606090a161179b60015f805160206155b383398151915255565b6040519081529081906020820190565b5f546117da9085906117c89060101c6001600160a01b03166116b0565b6001546001600160a01b031690613f18565b611764565b61181b93610fff8361105c6118056117fe611724986118159888613b10565b809661292d565b9461180f42613138565b9261292d565b9261294d565b555f80808087611758565b915061183a825f52600660205260405f2090565b549061184a816110bf848a61295b565b906118558286613af4565b9788611866575b505050505061175e565b6118db938361188e9361189b8c6118966118846118cc998884613b10565b9788958584613b10565b94859261292d565b61292d565b938484106118e6575b610fff9061105c6118ba95969761180f42613138565b6118c66117248761294d565b5561292d565b915f52600660205260405f2090565b555f8080808061185c565b91611902610fff916118fc866118ba979861292d565b9061295b565b8594509290506118a4565b604051635e18d2a560e01b8152600490fd5b508282116116e5565b506119328361291f565b82106116de565b60405163dabc4ad960e01b8152600490fd5b34610510575f3660031901126105105760015465ffffffffffff808260a01c1691611974612b3f565b600181018091116109fc576115509160d01c9061293a565b34610510575f366003190112610510576020610763612b3f565b6001600160a01b03165f9081527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace016020526040902090565b34610510576020366003190112610510576004356119fb8161063c565b60018060a01b03165f526005602052602060ff60405f2054166040519015158152f35b34610510576020366003190112610510576020610763600435611a4081610b27565b612b73565b3461051057604036600319011261051057600435611a628161063c565b6024356001600160401b038082116105105736602383011215610510578160040135908111610510573660248260051b84010111610510576105b392602461179b930190612bae565b34610510576020610763611abe36611279565b9061327c565b3461051057602080600319360112610510576004803590611ae48261063c565b611aec612e1a565b60025460a01c60ff16611c6e576040516302910f8b60e31b81526001600160a01b03838116838301908152909491908290829081906020010381887f0000000000000000000000000000000000000000000000000000000000000000165afa908115610dd3575f91611c41575b5015611c315760405163fbfa77cf60e01b8152838516949082818581895afa928315610dd3575f93611c02575b505030911603611bf35750600280546001600160a01b03929092166001600160a81b031990921691909117600160a01b1790557fdb2160616f776a37b24808115554e79439bf26cccbbd4438190cc6d28e80ecd15f80a2610d3e60015f805160206155b383398151915255565b60405163b9f0f17160e01b8152fd5b611c22929350803d10611c2a575b611c1a8183610b86565b810190612d07565b905f80611b86565b503d611c10565b506040516324e5af8d60e21b8152fd5b611c619150823d8411611c67575b611c598183610b86565b810190612ce7565b5f611b59565b503d611c4f565b604051631380833b60e01b8152fd5b34610510575f366003190112610510576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b34610510575f36600319011261051057611cd9612b3f565b611ce161407c565b90805f52600660205260405f205482018092116109fc57600181018091116109fc575f52600660205260405f205481018091116109fc57602090604051908152f35b34610510575f366003190112610510575f80516020615533833981519152546040516001600160a01b039091168152602090f35b3461051057604036600319011261051057602060ff611da9602435611d7b8161063c565b6004355f525f80516020615593833981519152845260405f209060018060a01b03165f5260205260405f2090565b54166040519015158152f35b34610510575f366003190112610510576040515f5f80516020615513833981519152805490611de3826128d3565b8085529160209160019182811690811561060f5750600114611e0f576105b3866105a781880382610b86565b5f90815293507f46a2803e59a4de4e7a4c574b1243f25977ac4c77d5a1a4a609b5394cebb4a2aa5b838510611e54575050505081016020016105a7826105b35f610597565b8054868601840152938201938101611e37565b3461051057604036600319011261051057600435611e848161063c565b6024356001600160401b038111610510575f91611ea683923690600401610a29565b90816040519283928337810184815203915af4611ef3611ec4612d1c565b91611ee5604051938492151560208401526040808401526060830190610514565b03601f198101835282610b86565b805190602001fd5b34610510575f36600319011261051057602060ff5f5460081c166040519015158152f35b34610510575f3660031901126105105760206040515f8152f35b34610510575f3660031901126105105760206040517f4a634bc14d77baf979756509ef4298c6f6318af357828612545267ee2eb792338152f35b3461051057604036600319011261051057600435611f908161063c565b602435611f9c81610e5e565b611fa4612e1a565b611fac6134b1565b6001600160a01b038216918215612054575f8381526005602052604090205460ff16151582151514610ef1576001600160a01b03165f9081526005602052604090207ff991b1ecfb5115cbb36a2b2e2240c058406d2acc2fcc6e9e2dc99d845ff70a629161203b91612029908260ff801983541691151516179055565b60405190151581529081906020820190565b0390a2610d3e60015f805160206155b383398151915255565b604051630da30f6560e31b8152600490fd5b346105105760403660031901126105105760206120aa6024356120888161063c565b6004355f526008835260405f209060018060a01b03165f5260205260405f2090565b54604051908152f35b3461051057604036600319011261051057602060ff611da96024356120d78161063c565b6004355f526009845260405f209060018060a01b03165f5260205260405f2090565b34610510576040366003190112610510576121236004356121198161063c565b6024359033612fd9565b602060405160018152f35b346105105760208060031936011261051057600480359061214e8261063c565b612156612e1a565b60035460a01c60ff166122d6576001600160a01b038281169390846121c4575b6003805460ff60a01b1916600160a01b179055847fe7e4c932e03abddfe20f83af42c33627e816115c7ec2b168441f65dc14bfc3ba5f80a2610d3e60015f805160206155b383398151915255565b6040516302910f8b60e31b81526001600160a01b0385168482019081528390829081906020010381857f0000000000000000000000000000000000000000000000000000000000000000165afa908115610dd3575f916122b9575b50156122a85760405163fbfa77cf60e01b815282818581895afa928315610dd3575f93612289575b50503091160361227a5750600380546001600160a01b0319166001600160a01b039092169190911790555f808080612176565b604051633f3e089160e21b8152fd5b6122a0929350803d10611c2a57611c1a8183610b86565b905f80612247565b60405163dabc4ad960e01b81528390fd5b6122d09150833d8511611c6757611c598183610b86565b5f61221f565b60405163703fe2e560e01b8152fd5b34610510576040366003190112610510576004356123028161063c565b6024359061230e612e1a565b6001600160a01b03918183169081156123945761233f6105b39461233183613f67565b9485915f5460101c16613f18565b604080519182526020820184905233917f865ca08d59f5cb456e85cd2f7ef63664ea4f73327414e9d8152c4158b0e946459190a360015f805160206155b3833981519152556040519081529081906020820190565b604051634e46966960e11b8152600490fd5b34610510576020366003190112610510576004355f526007602052602060405f2054604051908152f35b34610510575f366003190112610510576003546040516001600160a01b039091168152602090f35b34610510575f36600319011261051057602061076361407c565b346105105760203660031901126105105760043561242e612e1a565b335f9081527f2d4ccbfe9f7672a6f2537c1e5bce6adacb73706879154bbab6ce096012d6721660205260409020547f4a634bc14d77baf979756509ef4298c6f6318af357828612545267ee2eb792339060ff16156124d257508060045414610ef1576020817f854df3eb95564502c8bc871ebdd15310ee26270f955f6c6bd8cea68e75045bc092600455604051908152a160015f805160206155b383398151915255005b6044906040519063e2517d3f60e01b82523360048301526024820152fd5b346105105760203660031901126105105760043561250d8161063c565b612515612b3f565b61251e82612aa8565b916125298183612dbc565b83018093116109fc57600182018092116109fc5761254691612dbc565b81018091116109fc57602090604051908152f35b34610510575f366003190112610510576002546040516001600160a01b039091168152602090f35b3461051057604036600319011261051057610d3e6024356004356125a58261063c565b805f525f805160206155938339815191526020526125c9600160405f200154613508565b61383e565b34610510575f366003190112610510575f5460405160109190911c6001600160a01b03168152602090f35b34610510575f3660031901126105105760206040517fbae4ee3de6c709ff9a002e774c5b78cb381560b219213c88ae0f1e207c03c0238152f35b346105105760403660031901126105105760206120aa6004356126558161063c565b610692602435916126658361063c565b6119a6565b34610510575f366003190112610510576020600454604051908152f35b34610510576060366003190112610510576004356126a48161063c565b602435906126b182610b27565b6001600160401b0391604435838111610510576126d2903690600401610a29565b909260409384516126e281610b4b565b60608152606060208201526060868201529280612741575b6105b386612732878761272c6127138984845191612968565b928561272360208501518361327c565b9301519061319b565b91614164565b90519081529081906020820190565b8101939250602081850312610510578035908682116105105701926060848203126105105784519561277287610b4b565b84358181116105105782612787918701610c27565b8752602085013581811161051057826127a1918701610c27565b602088015285850135908111610510576105b3966127ca61272c93612713936127329801610c27565b878201529394506126fa565b3461051057602036600319011261051057610d3e6004356127f68161063c565b6127fe613abc565b612d4b565b34610510576040366003190112610510576004356128208161063c565b60243561282b612e1a565b6001600160a01b038216156108795780156128975761285a61284b614003565b61285361407c565b9083614c31565b335f908152600e60205260409020909290612874906140f0565b83116128855761082a918391612e49565b6040516321727a3760e11b8152600490fd5b604051636c6c627d60e11b8152600490fd5b346105105760403660031901126105105760206107636024356128cb8161063c565b600435612dbc565b90600182811c92168015612901575b60208310146128ed57565b634e487b7160e01b5f52602260045260245ffd5b91607f16916128e2565b634e487b7160e01b5f52601160045260245ffd5b5f198101919082116109fc57565b919082039182116109fc57565b818102929181159184041417156109fc57565b90600182018092116109fc57565b919082018092116109fc57565b6001600160a01b03165f908152600e60205260409020610549929190613331565b6040513d5f823e3d90fd5b916129d1926129a1614595565b6129a9614595565b60015f805160206155b3833981519152556001600160a01b038116612a8e575b503691610bf1565b80516020908201818101828483031261051057828401516001600160401b039485821161051057019283926101a093849103126105105760405193612a1585610b4b565b612a21838383016138ea565b8552610180810151868111610510578383612a3e928401016139b3565b9382860194855281015195861161051057612a66612a859383610bd498612a809401016139b3565b94604081019586525191611ee560405193849283016139f9565b6145d8565b51905190614994565b612aa290612a9a614595565b6127fe614595565b5f6129c9565b6001600160a01b03165f908152600e60205260409020612ac7906140f0565b612acf61407c565b612ad7614003565b90600181018091116109fc57600182018092116109fc5761054992613b10565b65ffffffffffff91821690821603919082116109fc57565b634e487b7160e01b5f52601260045260245ffd5b9065ffffffffffff809116918215612b3a57160490565b612b0f565b612b4842613138565b612b6f600154612b6565ffffffffffff93848360a01c1690612af7565b9060d01c90612b23565b1690565b6001549065ffffffffffff91828160a01c16918284821610612b9c57612b6f92612b6591612af7565b60405163b7d0949760e01b8152600490fd5b90612bb7612e1a565b5f926001600160a01b038316928315612394578115612c6f575f5b828110612c4d57505f547f326b6aff1cd2fb1c8234de4f9dcfb9047c5c36eb9ef2eb34af5121e969a75d279286929091612c22918491612c1d9060101c6001600160a01b03166116b0565b613f18565b612c33604051928392339684612caa565b0390a390610bd460015f805160206155b383398151915255565b94612c686001916118fc612c62898789612c95565b35613f67565b9501612bd2565b60405163edf3b93360e01b8152600490fd5b634e487b7160e01b5f52603260045260245ffd5b9190811015612ca55760051b0190565b612c81565b604080825281018390529392916001600160fb1b0381116105105760209160609160051b809183880137850101930152565b5190610bd482610e5e565b90816020910312610510575161054981610e5e565b5190610bd48261063c565b9081602091031261051057516105498161063c565b3d15612d46573d90612d2d82610bd6565b91612d3b6040519384610b86565b82523d5f602084013e565b606090565b6001600160a01b03908116908115612da4575f8051602061553383398151915280546001600160a01b031981168417909155167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3565b604051631e4fbdf760e01b81525f6004820152602490fd5b90612de290825f52600860205260405f209060018060a01b03165f5260205260405f2090565b54905f52600660205260405f2054600760205260405f205490600181018091116109fc57600182018092116109fc5761054992613b10565b5f805160206155b38339815191526002815414612e375760029055565b604051633ee5aeb560e01b8152600490fd5b335f908152600e6020526040812093949390929190612e8890612e6b42613138565b335f908152600e602052604090206110c4908990611896906140f0565b5050612ea2612e9642613138565b61107187611896614003565b5050612ebc612eb042613138565b61105c8461189661407c565b505081612f4e82610692612ed6612ed1612b3f565b61294d565b612f2d612eeb825f52600660205260405f2090565b54612efe835f52600760205260405f2090565b54612f15612f0d83838b614164565b9a8b9361295b565b612f27855f52600660205260405f2090565b5561295b565b612f3f825f52600760205260405f2090565b555f52600860205260405f2090565b612f5984825461295b565b9055604080519182526020820187905281018390526001600160a01b03919091169033907febff2602b3f468259e1e99f613fed6691f3a6526effe6ef3e768ba7ae7a36c4f90606090a36040519384529233907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9080602081015b0390a3565b916001600160a01b0380841692908315613120578116938415613108576001600160a01b0381165f908152600e60205260409020613016906140f0565b908382106130d657612fd4926130787fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef95936130656130c49460018060a01b03165f52600e60205260405f2090565b908561307042613138565b910391613e5a565b50506001600160a01b0381165f908152600e6020526040902090836130bd6107f46130a242613138565b6001600160a01b039094165f908152600e6020526040902090565b0191613e5a565b50506040519081529081906020820190565b60405163391434e360e21b81526001600160a01b03919091166004820152602481019190915260448101839052606490fd5b60405163ec442f0560e01b81525f6004820152602490fd5b604051634b637e8f60e11b81525f6004820152602490fd5b65ffffffffffff9081811161314b571690565b604490604051906306dfcc6560e41b8252603060048301526024820152fd5b90816020910312610510575163ffffffff811681036105105790565b90600163ffffffff809316019182116109fc57565b9080511561327257806020806131b69351830101910161316a565b6131bf816143d5565b906131d0825165ffffffffffff1690565b9065ffffffffffff80851692168281146132665782119182613206575b50506131fd575061054990614185565b60209150015190565b909150613214600a5461291f565b63ffffffff83161491821561322d575b50505f806131ed565b61325e91925061324761324261325392613186565b6143d5565b5165ffffffffffff1690565b65ffffffffffff1690565b115f80613224565b50505060209150015190565b5061054990614185565b9080511561332757806020806132979351830101910161316a565b6132a08161445a565b906132b1825165ffffffffffff1690565b9065ffffffffffff808516921682811461326657821191826132de575b50506131fd57506105499061424c565b9091506132ec600c5461291f565b63ffffffff831614918215613305575b50505f806132ce565b61331f91925061324761331a61325392613186565b61445a565b115f806132fc565b506105499061424c565b918051156133f3578060208061334c9351830101910161316a565b9161335783826144d5565b92613368845165ffffffffffff1690565b9065ffffffffffff80851692168281146133e7578211918261339e575b505061339557610549925061430c565b50506020015190565b9091506133ab835461291f565b63ffffffff8316149182156133c4575b50505f80613385565b6133df9192506132476133d961325392613186565b856144d5565b115f806133bb565b50505050506020015190565b506105499161430c565b335f9081527f03b26b53c87faa1058f30bb5d2fee64f717719a0d9b7e4f4df027aa5e9b6ed69602052604090207fbae4ee3de6c709ff9a002e774c5b78cb381560b219213c88ae0f1e207c03c0239060ff905b5416156124d25750565b335f9081527fe41986b390c4ce6791b87f7423b5fab7a81a0e6d89660b6264f697d008b2243a602052604090207fc6aaadd7371d5e8f9ed6849dd66a66573a3ba37167d03f4352c9ba5693678fac9060ff90613450565b335f9081527f0287ab4cb376ea253d7b2ce0c2cbf458f7deae9458470d74afdfbbee484e9540602052604090207f9c56d972d63cbb4195b3c1484691dfc220fa96a4c47e7b6613bd82a022029e069060ff90613450565b5f8181525f8051602061559383398151915260209081526040808320338452909152902060ff90613450565b6001600160a01b0381165f9081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d60205260409020545f805160206155938339815191529060ff166135df575f808052602091825260408082206001600160a01b038516835290925220805460ff1916600117905533906001600160a01b03165f7f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d8180a4600190565b50505f90565b6001600160a01b0381165f9081527f03b26b53c87faa1058f30bb5d2fee64f717719a0d9b7e4f4df027aa5e9b6ed69602052604090207fbae4ee3de6c709ff9a002e774c5b78cb381560b219213c88ae0f1e207c03c023905f805160206155938339815191529060ff905b54166136b4575f828152602091825260408082206001600160a01b038616835290925220805460ff1916600117905533916001600160a01b0316907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d5f80a4600190565b5050505f90565b6001600160a01b0381165f9081527f0287ab4cb376ea253d7b2ce0c2cbf458f7deae9458470d74afdfbbee484e9540602052604090207f9c56d972d63cbb4195b3c1484691dfc220fa96a4c47e7b6613bd82a022029e06905f805160206155938339815191529060ff90613650565b6001600160a01b0381165f9081527fe41986b390c4ce6791b87f7423b5fab7a81a0e6d89660b6264f697d008b2243a602052604090207fc6aaadd7371d5e8f9ed6849dd66a66573a3ba37167d03f4352c9ba5693678fac905f805160206155938339815191529060ff90613650565b6001600160a01b0381165f9081527f2d4ccbfe9f7672a6f2537c1e5bce6adacb73706879154bbab6ce096012d67216602052604090207f4a634bc14d77baf979756509ef4298c6f6318af357828612545267ee2eb79233905f805160206155938339815191529060ff90613650565b5f8181525f80516020615593833981519152602081815260408084206001600160a01b038716855290915290912060ff90613650565b5f8181525f80516020615593833981519152602081815260408084206001600160a01b03871685529091529091205460ff16156136b4575f828152602091825260408082206001600160a01b038616835290925220805460ff1916905533916001600160a01b0316907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b5f80a4600190565b90816020910312610510575190565b5190610bd482610b27565b919082610160910312610510576138ff610ba7565b9161390981612cfc565b835261391760208201612cfc565b6020840152613928604082016138df565b604084015261393960608201612cdc565b606084015261394a60808201612cdc565b608084015260a081015160a084015261396560c08201612cfc565b60c084015261397660e08201612cfc565b60e0840152610100613989818301612cfc565b9084015261012061399b818301612cfc565b908401526139ad610140809201612cfc565b90830152565b81601f82011215610510578051906139ca82610bd6565b926139d86040519485610b86565b8284526020838301011161051057815f9260208093018386015e8301015290565b81516001600160a01b0316815261016081019291610bd491906020818101516001600160a01b03169083015260408181015165ffffffffffff169083015260608181015115159083015260808181015115159083015260a0818101519083015260c0808201516001600160a01b03169083015260e0818101516001600160a01b031690830152610100818101516001600160a01b031690830152610120818101516001600160a01b031690830152610140908101516001600160a01b0316910152565b5f80516020615533833981519152546001600160a01b03163303613adc57565b60405163118cdaa760e01b8152336004820152602490fd5b9080821015613b01575090565b905090565b8115612b3a570490565b9091828202915f1984820993838086109503948086039514613b955784831115613b8357829109815f038216809204600280826003021880830282030280830282030280830282030280830282030280830282030280920290030293600183805f03040190848311900302920304170290565b60405163227bc15360e01b8152600490fd5b5050906105499250613b06565b600b54811015612ca557600b5f525f8051602061557383398151915201905f90565b600d54811015612ca557600d5f525f8051602061555383398151915201905f90565b8054821015612ca5575f5260205f2001905f90565b600d54600160401b811015610b66576001810180600d55811015612ca557600d5f525f805160206155538339815191520155565b600b54600160401b811015610b66576001810180600b55811015612ca557600b5f525f805160206155738339815191520155565b90815491600160401b831015610b665782613c86916001610bd495018155613be6565b90919082549060031b91821b915f19901b1916179055565b919091600d9081548015613d49575b50613cb6614add565b50929091815492613cc561407c565b9481613d34575b5015613d1157505f1982018281116109fc5781541115612ca5575f527fd7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb4018390559190565b613d25926001600160d01b03169150614f65565b5050613d3083613bfb565b9190565b65ffffffffffff83811691161490505f613ccc565b600160401b811015610b665760018101808455811015612ca5575f908382525f8051602061555383398151915201555f613cad565b919091600b9081548015613e25575b50613d96614b48565b50929091815492613da5614003565b9481613e10575b5015613df157505f1982018281116109fc5781541115612ca5575f527f0175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db8018390559190565b613e05926001600160d01b03169150615065565b5050613d3083613c2f565b65ffffffffffff83811691161490505f613dac565b600160401b811015610b665760018101808455811015612ca5575f908382525f8051602061557383398151915201555f613d8d565b90929192600182019081548015613ee8575b5084613e7784614b92565b50949092845493613e87836140f0565b9681613ed3575b5015613eb0575050505f1981019081116109fc57613c868591613d3093613be6565b613d30949293613ecc926001600160d01b03909116919061510f565b5050613c63565b65ffffffffffff83811691161490505f613e8e565b600160401b811015610b6657806001613f049201845583613be6565b8154905f199060031b1b191690555f613e6c565b60405163a9059cbb60e01b60208201526001600160a01b03909216602483015260448083019390935291815260808101916001600160401b03831182841017610b6657610bd492604052614bc0565b90613f70612b3f565b821015613ff1575f82815260096020908152604080832033845290915290205460ff16613fdf57613fa13383612dbc565b918215613fcd575f9081526009602090815260408083203384529091529020805460ff19166001179055565b6040516366c0bcbf60e11b8152600490fd5b604051630c8d9eab60e31b8152600490fd5b60405163d5b25b6360e01b8152600490fd5b600a548061404357505f5b6001600160d01b0381161561403e57600b54811015612ca557600b5f525f80516020615573833981519152015490565b505f90565b805f198101116109fc57600a5f527fc65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a7015460301c61400e565b600c54806140b757505f5b6001600160d01b0381161561403e57600d54811015612ca557600d5f525f80516020615553833981519152015490565b805f198101116109fc57600c5f527fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c6015460301c614087565b80548061411f57505f5b6001600160d01b038116156135df5760016141159201613be6565b90549060031b1c90565b5f199080828101116109fc57825f5260205f2001015460301c6140fa565b906001600160a01b03808316156106f7578116156106df57610692614161926119a6565b55565b9190600181018091116109fc57600182018092116109fc5761054992613b10565b600a54905f8291600584116141f3575b61419f935061531b565b806141c257505f5b6001600160d01b0381161561403e5761411561054991613ba2565b6141e76141d16141ee9261291f565b600a5f525f805160206154f38339815191520190565b5460301c90565b6141a7565b91926141fe816151e2565b81039081116109fc5761419f93600a5f5265ffffffffffff80835f805160206154f3833981519152015416908516105f1461423a575091614195565b9291506142469061294d565b90614195565b600c54905f8291600584116142b3575b6142669350615384565b8061428957505f5b6001600160d01b0381161561403e5761411561054991613bc4565b6141e76142986142ae9261291f565b600c5f525f805160206154b38339815191520190565b61426e565b91926142be816151e2565b81039081116109fc5761426693600c5f5265ffffffffffff80835f805160206154b3833981519152015416908516105f146142fa57509161425c565b9291506143069061294d565b9061425c565b908154905f82916005841161436f575b6143279350846153ed565b8061434f57505f905b6001600160d01b038216156135df576105499160016141159201613be6565b6141e761435e6143699261291f565b835f5260205f200190565b90614330565b919261437a816151e2565b81039081116109fc5761432793855f5265ffffffffffff808360205f20015416908516105f146143ab57509161431c565b9291506143b79061294d565b9061431c565b604051906143ca82610b6b565b5f6020838281520152565b6143dd6143bd565b506143e66143bd565b50600a54811015612ca55761440d90600a5f525f805160206154f383398151915201614ab9565b65ffffffffffff81511690602060018060d01b0391015116600b54811015612ca557600b5f525f8051602061557383398151915201546040519161445083610b6b565b8252602082015290565b6144626143bd565b5061446b6143bd565b50600c54811015612ca55761449290600c5f525f805160206154b383398151915201614ab9565b65ffffffffffff81511690602060018060d01b0391015116600d54811015612ca557600d5f525f8051602061555383398151915201546040519161445083610b6b565b906144fe6144f861451f926144e86143bd565b506144f16143bd565b5084613be6565b50614ab9565b91600165ffffffffffff845116936020828060d01b03910151169101613be6565b9054906040519261452f84610b6b565b835260031b1c602082015290565b6040516323b872dd60e01b60208201526001600160a01b03928316602482015292909116604483015260648083019390935291815260a08101918183106001600160401b03841117610b6657610bd492604052614bc0565b60ff5f805160206155d38339815191525460401c16156145b157565b604051631afcd79f60e31b8152600490fd5b906101608282031261051057610549916138ea565b6145eb90602080825183010191016145c3565b80516001600160a01b03919082161561498257604080820165ffffffffffff61461a825165ffffffffffff1690565b16156149715760c08301805190929061463b906001600160a01b03166116b0565b15614822575b509161476e6101409261470d6146e86147cc9661468f614667875160018060a01b031690565b5f805462010000600160b01b03191660109290921b62010000600160b01b0316919091179055565b6020860151600180546001600160a01b0319166001600160a01b039092169190911790556132476146bf42613138565b6001805465ffffffffffff60a01b191660a09290921b65ffffffffffff60a01b16919091179055565b600180546001600160d01b031660d09290921b6001600160d01b031916919091179055565b61472d61471d6060850151151590565b60ff80195f541691151516175f55565b61475461473d6080850151151590565b61ff005f5491151560081b169061ff001916175f55565b61476160a0840151600455565b516001600160a01b031690565b848116614812575b5060e08101516001600160a01b0316848116614802575b506101008101516001600160a01b03168481166147f2575b506101208101516001600160a01b03168481166147e2575b5001516001600160a01b031690565b9081166147d65750565b6147df90613799565b50565b6147eb9061372a565b505f6147bd565b6147fb906136bb565b505f6147a5565b61480b906135e5565b505f61478d565b61481b90613534565b505f614776565b60e0840151614839906001600160a01b03166116b0565b1561490e575b610120840151614857906001600160a01b03166116b0565b614641576080840151156148c45760a084015115806148a5575b61489557509161476e6101409261470d6146e86147cc965b94965050509250614641565b5163183c854560e21b8152600490fd5b506101408401516148be906001600160a01b03166116b0565b15614871565b60a0840151158015906148ee575b61489557509161476e6101409261470d6146e86147cc96614889565b50610140840151614907906001600160a01b03166116b0565b15156148d2565b60608401511561494457610100840151614930906001600160a01b03166116b0565b61483f575163183c854560e21b8152600490fd5b61010084015161495c906001600160a01b03166116b0565b1561483f575163183c854560e21b8152600490fd5b81516368f5f8f160e11b8152600490fd5b6040516368f7a67560e11b8152600490fd5b919061499e614595565b6149a6614595565b82516001600160401b038111610b66575f805160206154d3833981519152906149d8816149d384546128d3565b614c71565b602080601f8311600114614a1f57509080614a0d92610bd496975f92614a14575b50508160011b915f199060031b1c19161790565b9055614d63565b015190505f806149f9565b90601f19831696614a5d5f805160206154d38339815191525f527f2ae08a8e29253f69ac5d979a101956ab8f8d9d7ded63fa7a83b16fc47648eab090565b925f905b898210614aa157505090839291600194610bd4989910614a89575b505050811b019055614d63565b01515f1960f88460031b161c191690555f8080614a7c565b80600185968294968601518155019501930190614a61565b90604051614ac681610b6b565b915465ffffffffffff8116835260301c6020830152565b600c5480614aee57505f905f905f90565b805f198101116109fc577fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c6614b2791600c5f5201614ab9565b9065ffffffffffff82511691602060018060d01b0391015116906001929190565b600a5480614b5957505f905f905f90565b805f198101116109fc577fc65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a7614b2791600a5f5201614ab9565b805480614ba35750505f905f905f90565b5f199080828101116109fc57614b27925f5260205f200101614ab9565b5f80614be89260018060a01b03169360208151910182865af1614be1612d1c565b908361544f565b8051908115159182614c16575b5050614bfe5750565b60249060405190635274afe760e01b82526004820152fd5b614c299250602080918301019101612ce7565b155f80614bf5565b9190600181018091116109fc57600182018092116109fc57614c54828285613b10565b928215612b3a5709614c635790565b600181018091116109fc5790565b601f8111614c7d575050565b5f805160206154d38339815191525f527f2ae08a8e29253f69ac5d979a101956ab8f8d9d7ded63fa7a83b16fc47648eab0906020601f840160051c83019310614ce0575b601f0160051c01905b818110614cd5575050565b5f8155600101614cca565b9091508190614cc1565b601f8111614cf6575050565b5f805160206155138339815191525f527f46a2803e59a4de4e7a4c574b1243f25977ac4c77d5a1a4a609b5394cebb4a2aa906020601f840160051c83019310614d59575b601f0160051c01905b818110614d4e575050565b5f8155600101614d43565b9091508190614d3a565b9081516001600160401b038111610b66575f8051602061551383398151915290614d9681614d9184546128d3565b614cea565b602080601f8311600114614dcb57508190614dc79394955f92614a145750508160011b915f199060031b1c19161790565b9055565b90601f19831695614e095f805160206155138339815191525f527f46a2803e59a4de4e7a4c574b1243f25977ac4c77d5a1a4a609b5394cebb4a2aa90565b925f905b888210614e4457505083600195969710614e2c575b505050811b019055565b01515f1960f88460031b161c191690555f8080614e22565b80600185968294968601518155019501930190614e0d565b600c5490600160401b821015610b66576001820180600c55821015612ca557600c5f52805160209091015160301b65ffffffffffff191665ffffffffffff91909116175f805160206154b383398151915290910155565b600a5490600160401b821015610b66576001820180600a55821015612ca557600a5f52805160209091015160301b65ffffffffffff191665ffffffffffff91909116175f805160206154f383398151915290910155565b8054600160401b811015610b6657614f2791600182018155613be6565b614f5257815160209092015160301b65ffffffffffff191665ffffffffffff92909216919091179055565b634e487b7160e01b5f525f60045260245ffd5b600c5491929190811561503c57614f86614f816142988461291f565b614ab9565b805165ffffffffffff838116949116841061502a5785602093613d3095614fb6613253865165ffffffffffff1690565b03614ff25750614fcb614298614fe49361291f565b9065ffffffffffff82549181199060301b169116179055565b01516001600160d01b031690565b90506150259150615012615004610bc7565b65ffffffffffff9092168252565b6001600160d01b03871681850152614e5c565b614fe4565b604051632520601d60e01b8152600490fd5b615060915061504c615004610bc7565b6001600160d01b0384166020820152614e5c565b5f9190565b600a549192919081156150eb57615081614f816141d18461291f565b805165ffffffffffff838116949116841061502a5785602093613d30956150b1613253865165ffffffffffff1690565b036150c65750614fcb6141d1614fe49361291f565b905061502591506150d8615004610bc7565b6001600160d01b03871681850152614eb3565b61506091506150fb615004610bc7565b6001600160d01b0384166020820152614eb3565b8054929392919082156151be5761512b614f8161435e8561291f565b9061513c825165ffffffffffff1690565b65ffffffffffff8481169116811061502a57613d3094602094889261516a613253875165ffffffffffff1690565b0361518b5750614fe492615180614fcb9261291f565b905f5260205f200190565b915050615025916151ab61519d610bc7565b65ffffffffffff9093168352565b6001600160d01b03881682860152614f0a565b61506092506151ce61519d610bc7565b6001600160d01b0385166020830152614f0a565b801561403e57806152b46152ad6152a361529961528f61528561527b61527160016105499a5f908b60801c8061530f575b508060401c80615302575b508060201c806152f5575b508060101c806152e8575b508060081c806152db575b508060041c806152ce575b508060021c806152c1575b50821c6152ba575b811c1b61526a818b613b06565b0160011c90565b61526a818a613b06565b61526a8189613b06565b61526a8188613b06565b61526a8187613b06565b61526a8186613b06565b61526a8185613b06565b8092613b06565b90613af4565b810161525d565b600291509101905f615255565b600491509101905f61524a565b600891509101905f61523f565b601091509101905f615234565b602091509101905f615229565b604091509101905f61521e565b9150506080905f615213565b905b82811061532957505090565b9091808216906001818418811c83018093116109fc57600a5f5265ffffffffffff80845f805160206154f3833981519152015416908616105f14615371575050915b9061531d565b9093925081018091116109fc579061536b565b905b82811061539257505090565b9091808216906001818418811c83018093116109fc57600c5f5265ffffffffffff80845f805160206154b3833981519152015416908616105f146153da575050915b90615386565b9093925081018091116109fc57906153d4565b91905b8382106153fd5750505090565b909192808316906001818518811c83018093116109fc57855f5265ffffffffffff808460205f20015416908516105f1461543c575050925b91906153f0565b9094935081018091116109fc5791615435565b90615476575080511561546457805190602001fd5b604051630a12f52160e11b8152600490fd5b815115806154a9575b615487575090565b604051639996b31560e01b81526001600160a01b039091166004820152602490fd5b50803b1561547f56fedf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c752c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace03c65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a852c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace049016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300d7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb50175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db902dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268009b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a2646970667358221220fc8b386c3222118c0338e59dcf730ede1251801f67673f0524275156e175ffa264736f6c63430008190033","sourceMap":"652:3172:102:-:0;;;;;;;;;;;;;-1:-1:-1;;652:3172:102;;;;;-1:-1:-1;;;;;652:3172:102;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;:::i;:::-;3173:36:101;;;3219:32;;8837:64:26;652:3172:102;;;;;;;;;7896:76:26;;652:3172:102;;;;7985:34:26;7981:146;;-1:-1:-1;927:17:76;;;;;652:3172:102;;;;;;;3173:36:101;652:3172:102;;;;;;;;;;3219:32:101;652:3172:102;;;;;;;;;;927:17:76;652:3172:102;;;;;;;;;;;7981:146:26;-1:-1:-1;;;;;;652:3172:102;;;;;;;;;;;;;8087:29:26;;652:3172:102;;8087:29:26;7981:146;;;;;7896:76;652:3172:102;;-1:-1:-1;;;7938:23:26;;;;;652:3172:102;-1:-1:-1;652:3172:102;;;;;;-1:-1:-1;652:3172:102;;;;;-1:-1:-1;652:3172:102;;;;-1:-1:-1;;;;;652:3172:102;;;;;;:::o","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361015610011575f80fd5b5f3560e01c806301ffc9a7146104ba57806306fdde03146104b5578063095ea7b3146104b05780631415519b146104ab57806318160ddd146103895780631b66c9e1146104a65780631e9a6950146104a157806323b872dd1461049c578063248a9ca31461049757806327810b6e14610492578063281f57521461048d5780632abe3048146104885780632d73c69c146104835780632dd310001461047e5780632f2ff15d14610479578063313ce5671461047457806336568abe1461046f578063392e53cd1461046a5780634105a7dd14610465578063463616711461046057806347e7ef241461045b57806348d3b775146104565780634ff0876a1461045157806350861adc1461044c57806350f22068146104475780635346e34f1461044257806354fd4d501461043d57806357ec83cc1461043857806359f769a9146104335780635cc070761461042e57806361a8c8c4146104295780636da3e06d146104245780636ec1e3f81461041f57806370a08231146103d4578063715018a61461041a5780637278e31c1461041557806373790ab314610410578063766718081461040b578063794b15b7146104065780637953b33b146104015780637c04c80a146103fc578063810da75d146103f757806383cd9cc3146103f257806387df0788146103ed5780638b0e9f3f146103e85780638da5cb5b146103e357806391d14854146103de57806395d89b41146103d95780639d66201b146103d45780639f86fd85146103cf578063a1b12202146103ca578063a217fddf146103c5578063a21a1df9146103c0578063a2861466146103bb578063a3b54172146103b6578063a5d03223146103b1578063a9059cbb146103ac578063aabc2496146103a7578063aad3ec96146103a2578063afba70ad1461039d578063b134427114610398578063bd49c35f14610393578063bdc8144b1461038e578063bfefcd7b14610389578063c31e8dd714610384578063ce9b79301461037f578063d547741f1461037a578063d8dfeb4514610375578063db38871514610370578063dd62ed3e1461036b578063ecf7085814610366578063efb559d614610361578063f2fde38b1461035c578063f3fef3a3146103575763f5e7ee0f14610352575f80fd5b6128a9565b612803565b6127d6565b612687565b61266a565b612633565b6125f9565b6125ce565b612582565b61255a565b6124f0565b610749565b612412565b6123f8565b6123d0565b6123a6565b6122e5565b61212e565b6120f9565b6120b3565b612066565b611f73565b611f39565b611f1f565b611efb565b611e67565b6115d6565b611db5565b611d57565b611d23565b611cc1565b611c7d565b611ac4565b611aab565b611a45565b611a1e565b6119de565b61198c565b61194b565b611677565b611610565b6115b1565b61156d565b61151a565b6114f0565b6114c9565b611391565b61135f565b6112ca565b6112b1565b611254565b611234565b611213565b610f2b565b610f03565b610e68565b610e23565b610dd8565b610d40565b610cf2565b610cae565b610c42565b610a56565b610988565b610960565b610927565b61088a565b6107a5565b61076b565b61070f565b61064d565b61054c565b346105105760203660031901126105105760043563ffffffff60e01b811680910361051057602090637965db0b60e01b81149081156104ff575b506040519015158152f35b6301ffc9a760e01b1490505f6104f4565b5f80fd5b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b906020610549928181520190610514565b90565b34610510575f366003190112610510576040515f5f805160206154d383398151915280549061057a826128d3565b8085529160209160019182811690811561060f57506001146105b7575b6105b3866105a781880382610b86565b60405191829182610538565b0390f35b5f90815293507f2ae08a8e29253f69ac5d979a101956ab8f8d9d7ded63fa7a83b16fc47648eab05b8385106105fc575050505081016020016105a7826105b35f610597565b80548686018401529382019381016105df565b90508695506105b3969350602092506105a794915060ff191682840152151560051b82010192935f610597565b6001600160a01b0381160361051057565b346105105760403660031901126105105760043561066a8161063c565b60243533156106f7576001600160a01b0382169182156106df576106a78291610692336119a6565b9060018060a01b03165f5260205260405f2090565b556040519081527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560203392a3602060405160018152f35b604051634a1406b160e11b81525f6004820152602490fd5b60405163e602df0560e01b81525f6004820152602490fd5b34610510575f3660031901126105105760206040517fc6aaadd7371d5e8f9ed6849dd66a66573a3ba37167d03f4352c9ba5693678fac8152f35b34610510575f366003190112610510576020610763614003565b604051908152f35b34610510575f3660031901126105105760206040517f9c56d972d63cbb4195b3c1484691dfc220fa96a4c47e7b6613bd82a022029e068152f35b34610510576040366003190112610510576004356107c28161063c565b602435906107ce612e1a565b6001600160a01b0381161561087957335f908152600e602052604090206107f9906140f0565b6140f0565b82116108675761081961080a61407c565b610812614003565b9084614164565b918215610852578261082a92612e49565b9061084160015f805160206155b383398151915255565b604080519182526020820192909252f35b60405160016245ddc760e11b03198152600490fd5b604051632418411f60e11b8152600490fd5b6040516208978560e71b8152600490fd5b34610510576060366003190112610510576004356108a78161063c565b6024356108b38161063c565b604435906108c433610692856119a6565b5492600184016108e5575b6108d99350612fd9565b60405160018152602090f35b828410610901576108fc836108d99503338361413d565b6108cf565b604051637dc7a0d960e11b81523360048201526024810185905260448101849052606490fd5b34610510576020366003190112610510576004355f525f805160206155938339815191526020526020600160405f200154604051908152f35b34610510575f366003190112610510576001546040516001600160a01b039091168152602090f35b34610510575f366003190112610510576109a0612b3f565b8015610a015760015465ffffffffffff8160a01c16915f1981019081116109fc576109ce9160d01c9061293a565b81018091116109fc576109e36105b391613138565b60405165ffffffffffff90911681529081906020820190565b61290b565b604051639fa56a5b60e01b8152600490fd5b600435906001600160401b038216820361051057565b9181601f84011215610510578235916001600160401b038311610510576020838186019501011161051057565b3461051057604036600319011261051057610a6f610a13565b6001600160401b0360243581811161051057610a8f903690600401610a29565b5050610a99612e1a565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163303610b15575f805160206155d3833981519152549060ff8260401c16928315610b05575b505050610af3575f80fd5b60405163f92ee8a960e01b8152600490fd5b81169116101590505f8080610ae8565b604051631966391b60e11b8152600490fd5b65ffffffffffff81160361051057565b634e487b7160e01b5f52604160045260245ffd5b606081019081106001600160401b03821117610b6657604052565b610b37565b604081019081106001600160401b03821117610b6657604052565b90601f801991011681019081106001600160401b03821117610b6657604052565b6040519061016082018281106001600160401b03821117610b6657604052565b60405190610bd482610b6b565b565b6001600160401b038111610b6657601f01601f191660200190565b929192610bfd82610bd6565b91610c0b6040519384610b86565b829481845281830111610510578281602093845f960137010152565b9080601f830112156105105781602061054993359101610bf1565b3461051057606036600319011261051057600435610c5f8161063c565b60243590610c6c82610b27565b604435906001600160401b03821161051057602092610c92610763933690600401610c27565b6001600160a01b039092165f908152600e855260409020613331565b34610510575f366003190112610510576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461051057604036600319011261051057610d3e602435600435610d158261063c565b805f525f80516020615593833981519152602052610d39600160405f200154613508565b613808565b005b34610510575f366003190112610510575f5460405163313ce56760e01b8152906020908290600490829060101c6001600160a01b03165afa8015610dd3575f90610d95575b60405160ff919091168152602090f35b506020813d602011610dcb575b81610daf60209383610b86565b81010312610510575160ff81168103610510576105b390610d85565b3d9150610da2565b612989565b3461051057604036600319011261051057602435610df58161063c565b336001600160a01b03821603610e1157610d3e9060043561383e565b60405163334bd91960e11b8152600490fd5b34610510575f3660031901126105105760ff60025460a01c1680610e4f575b6020906040519015158152f35b5060035460a01c60ff16610e42565b8015150361051057565b3461051057602036600319011261051057600435610e8581610e5e565b610e8d612e1a565b610e956133fd565b5f54901515908160ff8216151514610ef15760ff191660ff8216175f556040519081527f3e12b7b36c75ac9609a3f58609b331210428e1a85909132638955ba0301eec3390602090a160015f805160206155b383398151915255005b60405163a741a04560e01b8152600490fd5b34610510575f36600319011261051057602065ffffffffffff60015460a01c16604051908152f35b3461051057604080600319360112610510576004803591610f4b8361063c565b610f53612e1a565b6001600160a01b0391838316908115611205575f5460ff8116806111ec575b6111dd5783516370a0823160e01b808252308483019081529096602093909160109190911c82169084908490819083010381845afa928315610dd3575f936111ba575b50610fc790602435903090339061453d565b5f5486519788523085890190815290979184918391908290819060200103918b60101c165afa908115610dd357611006935f9261118d575b505061292d565b93841561117e5760081c60ff1680611169575b61115b5750906105b3916110ca61102e61407c565b9561107761103a614003565b6110626110488a838b614164565b9961105c8a61105642613138565b9261295b565b90613c9e565b50506110718961105642613138565b90613d7e565b50506001600160a01b0381165f908152600e60205260409020906110c4886110bf6107f46110a442613138565b6001600160a01b039095165f908152600e6020526040902090565b61295b565b91613e5a565b5050815184815260208101869052819033907fdcbc1c05240f31ff3ad067ef1ee35ce4997762752e3a095284754544f4c709d790604090a361111860015f805160206155b383398151915255565b81518581525f907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90602090a35191825260208201929092529081906040820190565b8251632484557960e01b8152fd5b50611176846110bf61407c565b815410611019565b50825163070f6eed60e11b8152fd5b6111ac9250803d106111b3575b6111a48183610b86565b8101906138d0565b5f80610fff565b503d61119a565b610fc79193506111d690853d87116111b3576111a48183610b86565b9290610fb5565b5082516304f63b8560e01b8152fd5b50335f9081526005602052604090205460ff1615610f72565b8251630d534ce360e11b8152fd5b34610510575f36600319011261051057602060ff5f54166040519015158152f35b34610510575f36600319011261051057602060015460d01c604051908152f35b34610510575f36600319011261051057602060ff60025460a01c166040519015158152f35b9060406003198301126105105760043561129281610b27565b91602435906001600160401b0382116105105761054991600401610c27565b346105105760206107636112c436611279565b9061319b565b34610510576020366003190112610510576004356112e781610e5e565b6112ef612e1a565b6112f761345a565b5f54901515908160ff8260081c16151514610ef15761ff001916600882901b61ff0016175f556040519081527ffa7a25a0b611d4ba3c0ea990e90dc23d484a5dd7a1be4733fef2946ba74530c690602090a1610d3e60015f805160206155b383398151915255565b34610510575f3660031901126105105760206001600160401b035f805160206155d38339815191525416604051908152f35b34610510576060366003190112610510576113aa610a13565b6024356113b68161063c565b6001600160401b0391604435838111610510576113d7903690600401610a29565b5f805160206155d38339815191529491855494838616806114b85760ff8760401c169081156114ab575b50610af3577fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2966114a69661146e958716906001600160401b0319161790556114695f805160206155d3833981519152600160401b68ff000000000000000019825416179055565b612994565b5f805160206155d3833981519152805468ff0000000000000000191690556040516001600160401b0390911681529081906020820190565b0390a1005b905084861611155f611401565b60405162dc149f60e41b8152600490fd5b346105105760203660031901126105105760206107636004356114eb8161063c565b612aa8565b34610510576020366003190112610510576004355f526006602052602060405f2054604051908152f35b34610510575f3660031901126105105760015465ffffffffffff611550818360a01c1692611546612b3f565b9060d01c9061293a565b82018092116109fc57611564602092613138565b60405191168152f35b34610510575f366003190112610510576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b34610510575f36600319011261051057602060ff60035460a01c166040519015158152f35b34610510576020366003190112610510576004356115f38161063c565b60018060a01b03165f52600e602052602061076360405f206140f0565b34610510575f36600319011261051057611628613abc565b5f8051602061553383398151915280546001600160a01b031981169091555f906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b346105105760403660031901126105105760043560243561169781610b27565b61169f612e1a565b6003546116bc906001600160a01b03165b6001600160a01b031690565b3303611939576116ca612b3f565b906116d481612b73565b9082151580611928575b801561191f575b61190d576105b3937ff9d090c096f71cd1659861a9ce5b6f384bceb4e2fa4e4a19edf6489a9b8d56c79261171761407c565b946117326117248261294d565b5f52600660205260405f2090565b54908281036118265750611746818761295b565b6117508185613af4565b9687806117df575b50505050505b836117ab575b6040805191825265ffffffffffff929092166020820152908101839052606090a161179b60015f805160206155b383398151915255565b6040519081529081906020820190565b5f546117da9085906117c89060101c6001600160a01b03166116b0565b6001546001600160a01b031690613f18565b611764565b61181b93610fff8361105c6118056117fe611724986118159888613b10565b809661292d565b9461180f42613138565b9261292d565b9261294d565b555f80808087611758565b915061183a825f52600660205260405f2090565b549061184a816110bf848a61295b565b906118558286613af4565b9788611866575b505050505061175e565b6118db938361188e9361189b8c6118966118846118cc998884613b10565b9788958584613b10565b94859261292d565b61292d565b938484106118e6575b610fff9061105c6118ba95969761180f42613138565b6118c66117248761294d565b5561292d565b915f52600660205260405f2090565b555f8080808061185c565b91611902610fff916118fc866118ba979861292d565b9061295b565b8594509290506118a4565b604051635e18d2a560e01b8152600490fd5b508282116116e5565b506119328361291f565b82106116de565b60405163dabc4ad960e01b8152600490fd5b34610510575f3660031901126105105760015465ffffffffffff808260a01c1691611974612b3f565b600181018091116109fc576115509160d01c9061293a565b34610510575f366003190112610510576020610763612b3f565b6001600160a01b03165f9081527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace016020526040902090565b34610510576020366003190112610510576004356119fb8161063c565b60018060a01b03165f526005602052602060ff60405f2054166040519015158152f35b34610510576020366003190112610510576020610763600435611a4081610b27565b612b73565b3461051057604036600319011261051057600435611a628161063c565b6024356001600160401b038082116105105736602383011215610510578160040135908111610510573660248260051b84010111610510576105b392602461179b930190612bae565b34610510576020610763611abe36611279565b9061327c565b3461051057602080600319360112610510576004803590611ae48261063c565b611aec612e1a565b60025460a01c60ff16611c6e576040516302910f8b60e31b81526001600160a01b03838116838301908152909491908290829081906020010381887f0000000000000000000000000000000000000000000000000000000000000000165afa908115610dd3575f91611c41575b5015611c315760405163fbfa77cf60e01b8152838516949082818581895afa928315610dd3575f93611c02575b505030911603611bf35750600280546001600160a01b03929092166001600160a81b031990921691909117600160a01b1790557fdb2160616f776a37b24808115554e79439bf26cccbbd4438190cc6d28e80ecd15f80a2610d3e60015f805160206155b383398151915255565b60405163b9f0f17160e01b8152fd5b611c22929350803d10611c2a575b611c1a8183610b86565b810190612d07565b905f80611b86565b503d611c10565b506040516324e5af8d60e21b8152fd5b611c619150823d8411611c67575b611c598183610b86565b810190612ce7565b5f611b59565b503d611c4f565b604051631380833b60e01b8152fd5b34610510575f366003190112610510576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b34610510575f36600319011261051057611cd9612b3f565b611ce161407c565b90805f52600660205260405f205482018092116109fc57600181018091116109fc575f52600660205260405f205481018091116109fc57602090604051908152f35b34610510575f366003190112610510575f80516020615533833981519152546040516001600160a01b039091168152602090f35b3461051057604036600319011261051057602060ff611da9602435611d7b8161063c565b6004355f525f80516020615593833981519152845260405f209060018060a01b03165f5260205260405f2090565b54166040519015158152f35b34610510575f366003190112610510576040515f5f80516020615513833981519152805490611de3826128d3565b8085529160209160019182811690811561060f5750600114611e0f576105b3866105a781880382610b86565b5f90815293507f46a2803e59a4de4e7a4c574b1243f25977ac4c77d5a1a4a609b5394cebb4a2aa5b838510611e54575050505081016020016105a7826105b35f610597565b8054868601840152938201938101611e37565b3461051057604036600319011261051057600435611e848161063c565b6024356001600160401b038111610510575f91611ea683923690600401610a29565b90816040519283928337810184815203915af4611ef3611ec4612d1c565b91611ee5604051938492151560208401526040808401526060830190610514565b03601f198101835282610b86565b805190602001fd5b34610510575f36600319011261051057602060ff5f5460081c166040519015158152f35b34610510575f3660031901126105105760206040515f8152f35b34610510575f3660031901126105105760206040517f4a634bc14d77baf979756509ef4298c6f6318af357828612545267ee2eb792338152f35b3461051057604036600319011261051057600435611f908161063c565b602435611f9c81610e5e565b611fa4612e1a565b611fac6134b1565b6001600160a01b038216918215612054575f8381526005602052604090205460ff16151582151514610ef1576001600160a01b03165f9081526005602052604090207ff991b1ecfb5115cbb36a2b2e2240c058406d2acc2fcc6e9e2dc99d845ff70a629161203b91612029908260ff801983541691151516179055565b60405190151581529081906020820190565b0390a2610d3e60015f805160206155b383398151915255565b604051630da30f6560e31b8152600490fd5b346105105760403660031901126105105760206120aa6024356120888161063c565b6004355f526008835260405f209060018060a01b03165f5260205260405f2090565b54604051908152f35b3461051057604036600319011261051057602060ff611da96024356120d78161063c565b6004355f526009845260405f209060018060a01b03165f5260205260405f2090565b34610510576040366003190112610510576121236004356121198161063c565b6024359033612fd9565b602060405160018152f35b346105105760208060031936011261051057600480359061214e8261063c565b612156612e1a565b60035460a01c60ff166122d6576001600160a01b038281169390846121c4575b6003805460ff60a01b1916600160a01b179055847fe7e4c932e03abddfe20f83af42c33627e816115c7ec2b168441f65dc14bfc3ba5f80a2610d3e60015f805160206155b383398151915255565b6040516302910f8b60e31b81526001600160a01b0385168482019081528390829081906020010381857f0000000000000000000000000000000000000000000000000000000000000000165afa908115610dd3575f916122b9575b50156122a85760405163fbfa77cf60e01b815282818581895afa928315610dd3575f93612289575b50503091160361227a5750600380546001600160a01b0319166001600160a01b039092169190911790555f808080612176565b604051633f3e089160e21b8152fd5b6122a0929350803d10611c2a57611c1a8183610b86565b905f80612247565b60405163dabc4ad960e01b81528390fd5b6122d09150833d8511611c6757611c598183610b86565b5f61221f565b60405163703fe2e560e01b8152fd5b34610510576040366003190112610510576004356123028161063c565b6024359061230e612e1a565b6001600160a01b03918183169081156123945761233f6105b39461233183613f67565b9485915f5460101c16613f18565b604080519182526020820184905233917f865ca08d59f5cb456e85cd2f7ef63664ea4f73327414e9d8152c4158b0e946459190a360015f805160206155b3833981519152556040519081529081906020820190565b604051634e46966960e11b8152600490fd5b34610510576020366003190112610510576004355f526007602052602060405f2054604051908152f35b34610510575f366003190112610510576003546040516001600160a01b039091168152602090f35b34610510575f36600319011261051057602061076361407c565b346105105760203660031901126105105760043561242e612e1a565b335f9081527f2d4ccbfe9f7672a6f2537c1e5bce6adacb73706879154bbab6ce096012d6721660205260409020547f4a634bc14d77baf979756509ef4298c6f6318af357828612545267ee2eb792339060ff16156124d257508060045414610ef1576020817f854df3eb95564502c8bc871ebdd15310ee26270f955f6c6bd8cea68e75045bc092600455604051908152a160015f805160206155b383398151915255005b6044906040519063e2517d3f60e01b82523360048301526024820152fd5b346105105760203660031901126105105760043561250d8161063c565b612515612b3f565b61251e82612aa8565b916125298183612dbc565b83018093116109fc57600182018092116109fc5761254691612dbc565b81018091116109fc57602090604051908152f35b34610510575f366003190112610510576002546040516001600160a01b039091168152602090f35b3461051057604036600319011261051057610d3e6024356004356125a58261063c565b805f525f805160206155938339815191526020526125c9600160405f200154613508565b61383e565b34610510575f366003190112610510575f5460405160109190911c6001600160a01b03168152602090f35b34610510575f3660031901126105105760206040517fbae4ee3de6c709ff9a002e774c5b78cb381560b219213c88ae0f1e207c03c0238152f35b346105105760403660031901126105105760206120aa6004356126558161063c565b610692602435916126658361063c565b6119a6565b34610510575f366003190112610510576020600454604051908152f35b34610510576060366003190112610510576004356126a48161063c565b602435906126b182610b27565b6001600160401b0391604435838111610510576126d2903690600401610a29565b909260409384516126e281610b4b565b60608152606060208201526060868201529280612741575b6105b386612732878761272c6127138984845191612968565b928561272360208501518361327c565b9301519061319b565b91614164565b90519081529081906020820190565b8101939250602081850312610510578035908682116105105701926060848203126105105784519561277287610b4b565b84358181116105105782612787918701610c27565b8752602085013581811161051057826127a1918701610c27565b602088015285850135908111610510576105b3966127ca61272c93612713936127329801610c27565b878201529394506126fa565b3461051057602036600319011261051057610d3e6004356127f68161063c565b6127fe613abc565b612d4b565b34610510576040366003190112610510576004356128208161063c565b60243561282b612e1a565b6001600160a01b038216156108795780156128975761285a61284b614003565b61285361407c565b9083614c31565b335f908152600e60205260409020909290612874906140f0565b83116128855761082a918391612e49565b6040516321727a3760e11b8152600490fd5b604051636c6c627d60e11b8152600490fd5b346105105760403660031901126105105760206107636024356128cb8161063c565b600435612dbc565b90600182811c92168015612901575b60208310146128ed57565b634e487b7160e01b5f52602260045260245ffd5b91607f16916128e2565b634e487b7160e01b5f52601160045260245ffd5b5f198101919082116109fc57565b919082039182116109fc57565b818102929181159184041417156109fc57565b90600182018092116109fc57565b919082018092116109fc57565b6001600160a01b03165f908152600e60205260409020610549929190613331565b6040513d5f823e3d90fd5b916129d1926129a1614595565b6129a9614595565b60015f805160206155b3833981519152556001600160a01b038116612a8e575b503691610bf1565b80516020908201818101828483031261051057828401516001600160401b039485821161051057019283926101a093849103126105105760405193612a1585610b4b565b612a21838383016138ea565b8552610180810151868111610510578383612a3e928401016139b3565b9382860194855281015195861161051057612a66612a859383610bd498612a809401016139b3565b94604081019586525191611ee560405193849283016139f9565b6145d8565b51905190614994565b612aa290612a9a614595565b6127fe614595565b5f6129c9565b6001600160a01b03165f908152600e60205260409020612ac7906140f0565b612acf61407c565b612ad7614003565b90600181018091116109fc57600182018092116109fc5761054992613b10565b65ffffffffffff91821690821603919082116109fc57565b634e487b7160e01b5f52601260045260245ffd5b9065ffffffffffff809116918215612b3a57160490565b612b0f565b612b4842613138565b612b6f600154612b6565ffffffffffff93848360a01c1690612af7565b9060d01c90612b23565b1690565b6001549065ffffffffffff91828160a01c16918284821610612b9c57612b6f92612b6591612af7565b60405163b7d0949760e01b8152600490fd5b90612bb7612e1a565b5f926001600160a01b038316928315612394578115612c6f575f5b828110612c4d57505f547f326b6aff1cd2fb1c8234de4f9dcfb9047c5c36eb9ef2eb34af5121e969a75d279286929091612c22918491612c1d9060101c6001600160a01b03166116b0565b613f18565b612c33604051928392339684612caa565b0390a390610bd460015f805160206155b383398151915255565b94612c686001916118fc612c62898789612c95565b35613f67565b9501612bd2565b60405163edf3b93360e01b8152600490fd5b634e487b7160e01b5f52603260045260245ffd5b9190811015612ca55760051b0190565b612c81565b604080825281018390529392916001600160fb1b0381116105105760209160609160051b809183880137850101930152565b5190610bd482610e5e565b90816020910312610510575161054981610e5e565b5190610bd48261063c565b9081602091031261051057516105498161063c565b3d15612d46573d90612d2d82610bd6565b91612d3b6040519384610b86565b82523d5f602084013e565b606090565b6001600160a01b03908116908115612da4575f8051602061553383398151915280546001600160a01b031981168417909155167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3565b604051631e4fbdf760e01b81525f6004820152602490fd5b90612de290825f52600860205260405f209060018060a01b03165f5260205260405f2090565b54905f52600660205260405f2054600760205260405f205490600181018091116109fc57600182018092116109fc5761054992613b10565b5f805160206155b38339815191526002815414612e375760029055565b604051633ee5aeb560e01b8152600490fd5b335f908152600e6020526040812093949390929190612e8890612e6b42613138565b335f908152600e602052604090206110c4908990611896906140f0565b5050612ea2612e9642613138565b61107187611896614003565b5050612ebc612eb042613138565b61105c8461189661407c565b505081612f4e82610692612ed6612ed1612b3f565b61294d565b612f2d612eeb825f52600660205260405f2090565b54612efe835f52600760205260405f2090565b54612f15612f0d83838b614164565b9a8b9361295b565b612f27855f52600660205260405f2090565b5561295b565b612f3f825f52600760205260405f2090565b555f52600860205260405f2090565b612f5984825461295b565b9055604080519182526020820187905281018390526001600160a01b03919091169033907febff2602b3f468259e1e99f613fed6691f3a6526effe6ef3e768ba7ae7a36c4f90606090a36040519384529233907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9080602081015b0390a3565b916001600160a01b0380841692908315613120578116938415613108576001600160a01b0381165f908152600e60205260409020613016906140f0565b908382106130d657612fd4926130787fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef95936130656130c49460018060a01b03165f52600e60205260405f2090565b908561307042613138565b910391613e5a565b50506001600160a01b0381165f908152600e6020526040902090836130bd6107f46130a242613138565b6001600160a01b039094165f908152600e6020526040902090565b0191613e5a565b50506040519081529081906020820190565b60405163391434e360e21b81526001600160a01b03919091166004820152602481019190915260448101839052606490fd5b60405163ec442f0560e01b81525f6004820152602490fd5b604051634b637e8f60e11b81525f6004820152602490fd5b65ffffffffffff9081811161314b571690565b604490604051906306dfcc6560e41b8252603060048301526024820152fd5b90816020910312610510575163ffffffff811681036105105790565b90600163ffffffff809316019182116109fc57565b9080511561327257806020806131b69351830101910161316a565b6131bf816143d5565b906131d0825165ffffffffffff1690565b9065ffffffffffff80851692168281146132665782119182613206575b50506131fd575061054990614185565b60209150015190565b909150613214600a5461291f565b63ffffffff83161491821561322d575b50505f806131ed565b61325e91925061324761324261325392613186565b6143d5565b5165ffffffffffff1690565b65ffffffffffff1690565b115f80613224565b50505060209150015190565b5061054990614185565b9080511561332757806020806132979351830101910161316a565b6132a08161445a565b906132b1825165ffffffffffff1690565b9065ffffffffffff808516921682811461326657821191826132de575b50506131fd57506105499061424c565b9091506132ec600c5461291f565b63ffffffff831614918215613305575b50505f806132ce565b61331f91925061324761331a61325392613186565b61445a565b115f806132fc565b506105499061424c565b918051156133f3578060208061334c9351830101910161316a565b9161335783826144d5565b92613368845165ffffffffffff1690565b9065ffffffffffff80851692168281146133e7578211918261339e575b505061339557610549925061430c565b50506020015190565b9091506133ab835461291f565b63ffffffff8316149182156133c4575b50505f80613385565b6133df9192506132476133d961325392613186565b856144d5565b115f806133bb565b50505050506020015190565b506105499161430c565b335f9081527f03b26b53c87faa1058f30bb5d2fee64f717719a0d9b7e4f4df027aa5e9b6ed69602052604090207fbae4ee3de6c709ff9a002e774c5b78cb381560b219213c88ae0f1e207c03c0239060ff905b5416156124d25750565b335f9081527fe41986b390c4ce6791b87f7423b5fab7a81a0e6d89660b6264f697d008b2243a602052604090207fc6aaadd7371d5e8f9ed6849dd66a66573a3ba37167d03f4352c9ba5693678fac9060ff90613450565b335f9081527f0287ab4cb376ea253d7b2ce0c2cbf458f7deae9458470d74afdfbbee484e9540602052604090207f9c56d972d63cbb4195b3c1484691dfc220fa96a4c47e7b6613bd82a022029e069060ff90613450565b5f8181525f8051602061559383398151915260209081526040808320338452909152902060ff90613450565b6001600160a01b0381165f9081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d60205260409020545f805160206155938339815191529060ff166135df575f808052602091825260408082206001600160a01b038516835290925220805460ff1916600117905533906001600160a01b03165f7f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d8180a4600190565b50505f90565b6001600160a01b0381165f9081527f03b26b53c87faa1058f30bb5d2fee64f717719a0d9b7e4f4df027aa5e9b6ed69602052604090207fbae4ee3de6c709ff9a002e774c5b78cb381560b219213c88ae0f1e207c03c023905f805160206155938339815191529060ff905b54166136b4575f828152602091825260408082206001600160a01b038616835290925220805460ff1916600117905533916001600160a01b0316907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d5f80a4600190565b5050505f90565b6001600160a01b0381165f9081527f0287ab4cb376ea253d7b2ce0c2cbf458f7deae9458470d74afdfbbee484e9540602052604090207f9c56d972d63cbb4195b3c1484691dfc220fa96a4c47e7b6613bd82a022029e06905f805160206155938339815191529060ff90613650565b6001600160a01b0381165f9081527fe41986b390c4ce6791b87f7423b5fab7a81a0e6d89660b6264f697d008b2243a602052604090207fc6aaadd7371d5e8f9ed6849dd66a66573a3ba37167d03f4352c9ba5693678fac905f805160206155938339815191529060ff90613650565b6001600160a01b0381165f9081527f2d4ccbfe9f7672a6f2537c1e5bce6adacb73706879154bbab6ce096012d67216602052604090207f4a634bc14d77baf979756509ef4298c6f6318af357828612545267ee2eb79233905f805160206155938339815191529060ff90613650565b5f8181525f80516020615593833981519152602081815260408084206001600160a01b038716855290915290912060ff90613650565b5f8181525f80516020615593833981519152602081815260408084206001600160a01b03871685529091529091205460ff16156136b4575f828152602091825260408082206001600160a01b038616835290925220805460ff1916905533916001600160a01b0316907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b5f80a4600190565b90816020910312610510575190565b5190610bd482610b27565b919082610160910312610510576138ff610ba7565b9161390981612cfc565b835261391760208201612cfc565b6020840152613928604082016138df565b604084015261393960608201612cdc565b606084015261394a60808201612cdc565b608084015260a081015160a084015261396560c08201612cfc565b60c084015261397660e08201612cfc565b60e0840152610100613989818301612cfc565b9084015261012061399b818301612cfc565b908401526139ad610140809201612cfc565b90830152565b81601f82011215610510578051906139ca82610bd6565b926139d86040519485610b86565b8284526020838301011161051057815f9260208093018386015e8301015290565b81516001600160a01b0316815261016081019291610bd491906020818101516001600160a01b03169083015260408181015165ffffffffffff169083015260608181015115159083015260808181015115159083015260a0818101519083015260c0808201516001600160a01b03169083015260e0818101516001600160a01b031690830152610100818101516001600160a01b031690830152610120818101516001600160a01b031690830152610140908101516001600160a01b0316910152565b5f80516020615533833981519152546001600160a01b03163303613adc57565b60405163118cdaa760e01b8152336004820152602490fd5b9080821015613b01575090565b905090565b8115612b3a570490565b9091828202915f1984820993838086109503948086039514613b955784831115613b8357829109815f038216809204600280826003021880830282030280830282030280830282030280830282030280830282030280920290030293600183805f03040190848311900302920304170290565b60405163227bc15360e01b8152600490fd5b5050906105499250613b06565b600b54811015612ca557600b5f525f8051602061557383398151915201905f90565b600d54811015612ca557600d5f525f8051602061555383398151915201905f90565b8054821015612ca5575f5260205f2001905f90565b600d54600160401b811015610b66576001810180600d55811015612ca557600d5f525f805160206155538339815191520155565b600b54600160401b811015610b66576001810180600b55811015612ca557600b5f525f805160206155738339815191520155565b90815491600160401b831015610b665782613c86916001610bd495018155613be6565b90919082549060031b91821b915f19901b1916179055565b919091600d9081548015613d49575b50613cb6614add565b50929091815492613cc561407c565b9481613d34575b5015613d1157505f1982018281116109fc5781541115612ca5575f527fd7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb4018390559190565b613d25926001600160d01b03169150614f65565b5050613d3083613bfb565b9190565b65ffffffffffff83811691161490505f613ccc565b600160401b811015610b665760018101808455811015612ca5575f908382525f8051602061555383398151915201555f613cad565b919091600b9081548015613e25575b50613d96614b48565b50929091815492613da5614003565b9481613e10575b5015613df157505f1982018281116109fc5781541115612ca5575f527f0175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db8018390559190565b613e05926001600160d01b03169150615065565b5050613d3083613c2f565b65ffffffffffff83811691161490505f613dac565b600160401b811015610b665760018101808455811015612ca5575f908382525f8051602061557383398151915201555f613d8d565b90929192600182019081548015613ee8575b5084613e7784614b92565b50949092845493613e87836140f0565b9681613ed3575b5015613eb0575050505f1981019081116109fc57613c868591613d3093613be6565b613d30949293613ecc926001600160d01b03909116919061510f565b5050613c63565b65ffffffffffff83811691161490505f613e8e565b600160401b811015610b6657806001613f049201845583613be6565b8154905f199060031b1b191690555f613e6c565b60405163a9059cbb60e01b60208201526001600160a01b03909216602483015260448083019390935291815260808101916001600160401b03831182841017610b6657610bd492604052614bc0565b90613f70612b3f565b821015613ff1575f82815260096020908152604080832033845290915290205460ff16613fdf57613fa13383612dbc565b918215613fcd575f9081526009602090815260408083203384529091529020805460ff19166001179055565b6040516366c0bcbf60e11b8152600490fd5b604051630c8d9eab60e31b8152600490fd5b60405163d5b25b6360e01b8152600490fd5b600a548061404357505f5b6001600160d01b0381161561403e57600b54811015612ca557600b5f525f80516020615573833981519152015490565b505f90565b805f198101116109fc57600a5f527fc65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a7015460301c61400e565b600c54806140b757505f5b6001600160d01b0381161561403e57600d54811015612ca557600d5f525f80516020615553833981519152015490565b805f198101116109fc57600c5f527fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c6015460301c614087565b80548061411f57505f5b6001600160d01b038116156135df5760016141159201613be6565b90549060031b1c90565b5f199080828101116109fc57825f5260205f2001015460301c6140fa565b906001600160a01b03808316156106f7578116156106df57610692614161926119a6565b55565b9190600181018091116109fc57600182018092116109fc5761054992613b10565b600a54905f8291600584116141f3575b61419f935061531b565b806141c257505f5b6001600160d01b0381161561403e5761411561054991613ba2565b6141e76141d16141ee9261291f565b600a5f525f805160206154f38339815191520190565b5460301c90565b6141a7565b91926141fe816151e2565b81039081116109fc5761419f93600a5f5265ffffffffffff80835f805160206154f3833981519152015416908516105f1461423a575091614195565b9291506142469061294d565b90614195565b600c54905f8291600584116142b3575b6142669350615384565b8061428957505f5b6001600160d01b0381161561403e5761411561054991613bc4565b6141e76142986142ae9261291f565b600c5f525f805160206154b38339815191520190565b61426e565b91926142be816151e2565b81039081116109fc5761426693600c5f5265ffffffffffff80835f805160206154b3833981519152015416908516105f146142fa57509161425c565b9291506143069061294d565b9061425c565b908154905f82916005841161436f575b6143279350846153ed565b8061434f57505f905b6001600160d01b038216156135df576105499160016141159201613be6565b6141e761435e6143699261291f565b835f5260205f200190565b90614330565b919261437a816151e2565b81039081116109fc5761432793855f5265ffffffffffff808360205f20015416908516105f146143ab57509161431c565b9291506143b79061294d565b9061431c565b604051906143ca82610b6b565b5f6020838281520152565b6143dd6143bd565b506143e66143bd565b50600a54811015612ca55761440d90600a5f525f805160206154f383398151915201614ab9565b65ffffffffffff81511690602060018060d01b0391015116600b54811015612ca557600b5f525f8051602061557383398151915201546040519161445083610b6b565b8252602082015290565b6144626143bd565b5061446b6143bd565b50600c54811015612ca55761449290600c5f525f805160206154b383398151915201614ab9565b65ffffffffffff81511690602060018060d01b0391015116600d54811015612ca557600d5f525f8051602061555383398151915201546040519161445083610b6b565b906144fe6144f861451f926144e86143bd565b506144f16143bd565b5084613be6565b50614ab9565b91600165ffffffffffff845116936020828060d01b03910151169101613be6565b9054906040519261452f84610b6b565b835260031b1c602082015290565b6040516323b872dd60e01b60208201526001600160a01b03928316602482015292909116604483015260648083019390935291815260a08101918183106001600160401b03841117610b6657610bd492604052614bc0565b60ff5f805160206155d38339815191525460401c16156145b157565b604051631afcd79f60e31b8152600490fd5b906101608282031261051057610549916138ea565b6145eb90602080825183010191016145c3565b80516001600160a01b03919082161561498257604080820165ffffffffffff61461a825165ffffffffffff1690565b16156149715760c08301805190929061463b906001600160a01b03166116b0565b15614822575b509161476e6101409261470d6146e86147cc9661468f614667875160018060a01b031690565b5f805462010000600160b01b03191660109290921b62010000600160b01b0316919091179055565b6020860151600180546001600160a01b0319166001600160a01b039092169190911790556132476146bf42613138565b6001805465ffffffffffff60a01b191660a09290921b65ffffffffffff60a01b16919091179055565b600180546001600160d01b031660d09290921b6001600160d01b031916919091179055565b61472d61471d6060850151151590565b60ff80195f541691151516175f55565b61475461473d6080850151151590565b61ff005f5491151560081b169061ff001916175f55565b61476160a0840151600455565b516001600160a01b031690565b848116614812575b5060e08101516001600160a01b0316848116614802575b506101008101516001600160a01b03168481166147f2575b506101208101516001600160a01b03168481166147e2575b5001516001600160a01b031690565b9081166147d65750565b6147df90613799565b50565b6147eb9061372a565b505f6147bd565b6147fb906136bb565b505f6147a5565b61480b906135e5565b505f61478d565b61481b90613534565b505f614776565b60e0840151614839906001600160a01b03166116b0565b1561490e575b610120840151614857906001600160a01b03166116b0565b614641576080840151156148c45760a084015115806148a5575b61489557509161476e6101409261470d6146e86147cc965b94965050509250614641565b5163183c854560e21b8152600490fd5b506101408401516148be906001600160a01b03166116b0565b15614871565b60a0840151158015906148ee575b61489557509161476e6101409261470d6146e86147cc96614889565b50610140840151614907906001600160a01b03166116b0565b15156148d2565b60608401511561494457610100840151614930906001600160a01b03166116b0565b61483f575163183c854560e21b8152600490fd5b61010084015161495c906001600160a01b03166116b0565b1561483f575163183c854560e21b8152600490fd5b81516368f5f8f160e11b8152600490fd5b6040516368f7a67560e11b8152600490fd5b919061499e614595565b6149a6614595565b82516001600160401b038111610b66575f805160206154d3833981519152906149d8816149d384546128d3565b614c71565b602080601f8311600114614a1f57509080614a0d92610bd496975f92614a14575b50508160011b915f199060031b1c19161790565b9055614d63565b015190505f806149f9565b90601f19831696614a5d5f805160206154d38339815191525f527f2ae08a8e29253f69ac5d979a101956ab8f8d9d7ded63fa7a83b16fc47648eab090565b925f905b898210614aa157505090839291600194610bd4989910614a89575b505050811b019055614d63565b01515f1960f88460031b161c191690555f8080614a7c565b80600185968294968601518155019501930190614a61565b90604051614ac681610b6b565b915465ffffffffffff8116835260301c6020830152565b600c5480614aee57505f905f905f90565b805f198101116109fc577fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c6614b2791600c5f5201614ab9565b9065ffffffffffff82511691602060018060d01b0391015116906001929190565b600a5480614b5957505f905f905f90565b805f198101116109fc577fc65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a7614b2791600a5f5201614ab9565b805480614ba35750505f905f905f90565b5f199080828101116109fc57614b27925f5260205f200101614ab9565b5f80614be89260018060a01b03169360208151910182865af1614be1612d1c565b908361544f565b8051908115159182614c16575b5050614bfe5750565b60249060405190635274afe760e01b82526004820152fd5b614c299250602080918301019101612ce7565b155f80614bf5565b9190600181018091116109fc57600182018092116109fc57614c54828285613b10565b928215612b3a5709614c635790565b600181018091116109fc5790565b601f8111614c7d575050565b5f805160206154d38339815191525f527f2ae08a8e29253f69ac5d979a101956ab8f8d9d7ded63fa7a83b16fc47648eab0906020601f840160051c83019310614ce0575b601f0160051c01905b818110614cd5575050565b5f8155600101614cca565b9091508190614cc1565b601f8111614cf6575050565b5f805160206155138339815191525f527f46a2803e59a4de4e7a4c574b1243f25977ac4c77d5a1a4a609b5394cebb4a2aa906020601f840160051c83019310614d59575b601f0160051c01905b818110614d4e575050565b5f8155600101614d43565b9091508190614d3a565b9081516001600160401b038111610b66575f8051602061551383398151915290614d9681614d9184546128d3565b614cea565b602080601f8311600114614dcb57508190614dc79394955f92614a145750508160011b915f199060031b1c19161790565b9055565b90601f19831695614e095f805160206155138339815191525f527f46a2803e59a4de4e7a4c574b1243f25977ac4c77d5a1a4a609b5394cebb4a2aa90565b925f905b888210614e4457505083600195969710614e2c575b505050811b019055565b01515f1960f88460031b161c191690555f8080614e22565b80600185968294968601518155019501930190614e0d565b600c5490600160401b821015610b66576001820180600c55821015612ca557600c5f52805160209091015160301b65ffffffffffff191665ffffffffffff91909116175f805160206154b383398151915290910155565b600a5490600160401b821015610b66576001820180600a55821015612ca557600a5f52805160209091015160301b65ffffffffffff191665ffffffffffff91909116175f805160206154f383398151915290910155565b8054600160401b811015610b6657614f2791600182018155613be6565b614f5257815160209092015160301b65ffffffffffff191665ffffffffffff92909216919091179055565b634e487b7160e01b5f525f60045260245ffd5b600c5491929190811561503c57614f86614f816142988461291f565b614ab9565b805165ffffffffffff838116949116841061502a5785602093613d3095614fb6613253865165ffffffffffff1690565b03614ff25750614fcb614298614fe49361291f565b9065ffffffffffff82549181199060301b169116179055565b01516001600160d01b031690565b90506150259150615012615004610bc7565b65ffffffffffff9092168252565b6001600160d01b03871681850152614e5c565b614fe4565b604051632520601d60e01b8152600490fd5b615060915061504c615004610bc7565b6001600160d01b0384166020820152614e5c565b5f9190565b600a549192919081156150eb57615081614f816141d18461291f565b805165ffffffffffff838116949116841061502a5785602093613d30956150b1613253865165ffffffffffff1690565b036150c65750614fcb6141d1614fe49361291f565b905061502591506150d8615004610bc7565b6001600160d01b03871681850152614eb3565b61506091506150fb615004610bc7565b6001600160d01b0384166020820152614eb3565b8054929392919082156151be5761512b614f8161435e8561291f565b9061513c825165ffffffffffff1690565b65ffffffffffff8481169116811061502a57613d3094602094889261516a613253875165ffffffffffff1690565b0361518b5750614fe492615180614fcb9261291f565b905f5260205f200190565b915050615025916151ab61519d610bc7565b65ffffffffffff9093168352565b6001600160d01b03881682860152614f0a565b61506092506151ce61519d610bc7565b6001600160d01b0385166020830152614f0a565b801561403e57806152b46152ad6152a361529961528f61528561527b61527160016105499a5f908b60801c8061530f575b508060401c80615302575b508060201c806152f5575b508060101c806152e8575b508060081c806152db575b508060041c806152ce575b508060021c806152c1575b50821c6152ba575b811c1b61526a818b613b06565b0160011c90565b61526a818a613b06565b61526a8189613b06565b61526a8188613b06565b61526a8187613b06565b61526a8186613b06565b61526a8185613b06565b8092613b06565b90613af4565b810161525d565b600291509101905f615255565b600491509101905f61524a565b600891509101905f61523f565b601091509101905f615234565b602091509101905f615229565b604091509101905f61521e565b9150506080905f615213565b905b82811061532957505090565b9091808216906001818418811c83018093116109fc57600a5f5265ffffffffffff80845f805160206154f3833981519152015416908616105f14615371575050915b9061531d565b9093925081018091116109fc579061536b565b905b82811061539257505090565b9091808216906001818418811c83018093116109fc57600c5f5265ffffffffffff80845f805160206154b3833981519152015416908616105f146153da575050915b90615386565b9093925081018091116109fc57906153d4565b91905b8382106153fd5750505090565b909192808316906001818518811c83018093116109fc57855f5265ffffffffffff808460205f20015416908516105f1461543c575050925b91906153f0565b9094935081018091116109fc5791615435565b90615476575080511561546457805190602001fd5b604051630a12f52160e11b8152600490fd5b815115806154a9575b615487575090565b604051639996b31560e01b81526001600160a01b039091166004820152602490fd5b50803b1561547f56fedf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c752c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace03c65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a852c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace049016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300d7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb50175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db902dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268009b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a2646970667358221220fc8b386c3222118c0338e59dcf730ede1251801f67673f0524275156e175ffa264736f6c63430008190033","sourceMap":"652:3172:102:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;;;;;-1:-1:-1;;652:3172:102;;;;;;;;;;;;;;;;;;-1:-1:-1;;;3551:47:24;;;:87;;;;652:3172:102;;;;;;;;;;3551:87:24;-1:-1:-1;;;1133:40:30;;-1:-1:-1;3551:87:24;;;652:3172:102;-1:-1:-1;652:3172:102;;;;;;;;;;;;;;;;;;;-1:-1:-1;652:3172:102;;;;;;;;-1:-1:-1;;652:3172:102;;;;:::o;:::-;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;;-1:-1:-1;;652:3172:102;;;;;;;-1:-1:-1;;;;;;;;;;;652:3172:102;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;652:3172:102;;;;;;;-1:-1:-1;;;;652:3172:102;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;652:3172:102;;;;;:::o;:::-;;;;;;-1:-1:-1;;652:3172:102;;;;;;;;;:::i;:::-;;;966:10:28;11389:19:27;11385:89;;-1:-1:-1;;;;;652:3172:102;;;11487:21:27;;11483:90;;11582:29;966:10:28;;11582:20:27;966:10:28;11582:20:27;:::i;:::-;652:3172:102;;;;;;;;;;;;;;;;11582:29:27;652:3172:102;;;;;;11663:31:27;652:3172:102;966:10:28;11663:31:27;;652:3172:102;;;10380:4:27;652:3172:102;;;11483:90:27;652:3172:102;;-1:-1:-1;;;11531:31:27;;-1:-1:-1;652:3172:102;11531:31:27;;652:3172:102;;;11531:31:27;11385:89;652:3172:102;;-1:-1:-1;;;11431:32:27;;11406:1;652:3172:102;11431:32:27;;652:3172:102;;;11431:32:27;652:3172:102;;;;;;-1:-1:-1;;652:3172:102;;;;;;;966:38:101;652:3172:102;;;;;;;;;-1:-1:-1;;652:3172:102;;;;;4803:22:101;;:::i;:::-;652:3172:102;;;;;;;;;;;;-1:-1:-1;;652:3172:102;;;;;;;821:37:101;652:3172:102;;;;;;;;;-1:-1:-1;;652:3172:102;;;;;;;;;:::i;:::-;;;3217:103:29;;;:::i;:::-;-1:-1:-1;;;;;652:3172:102;;5525:21:100;5521:75;;5634:10;652:3172:102;;;;5606:15:101;652:3172:102;;;;;5606:33:101;;;:::i;:24::-;:33;:::i;:::-;5610:35:100;;5606:88;;1057:70:92;5173:21:101;;:::i;:::-;4803:22;;:::i;:::-;1057:70:92;;;:::i;:::-;5801:20:100;;;5797:82;;5904:43;;;;:::i;:::-;3282:1:29;;1805;-1:-1:-1;;;;;;;;;;;652:3172:102;3716:283:29;3282:1;652:3172:102;;;;;;;;;;;;;;5797:82:100;652:3172:102;;-1:-1:-1;;;;;;5844:24:100;;652:3172:102;;5844:24:100;5606:88;652:3172:102;;-1:-1:-1;;;5668:15:100;;652:3172:102;;5668:15:100;5521:75;652:3172:102;;-1:-1:-1;;;5569:16:100;;652:3172:102;;5569:16:100;652:3172:102;;;;;;-1:-1:-1;;652:3172:102;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;966:10:28;5162:29:27;966:10:28;5162:20:27;;;:::i;:29::-;652:3172:102;;12158:37:27;;;12154:310;;652:3172:102;6461:5:27;;;;:::i;:::-;652:3172:102;;5162:13:27;652:3172:102;;;;;12154:310:27;12215:24;;;12211:130;;12433:5;652:3172:102;6461:5:27;652:3172:102;;966:10:28;12433:5:27;;:::i;:::-;12154:310;;12211:130;652:3172:102;;-1:-1:-1;;;12266:60:27;;966:10:28;652:3172:102;12266:60:27;;652:3172:102;;;;;;;;;;;;;;;12266:60:27;652:3172:102;;;;;;-1:-1:-1;;652:3172:102;;;;;;-1:-1:-1;652:3172:102;-1:-1:-1;;;;;;;;;;;652:3172:102;;;4919:24:24;652:3172:102;-1:-1:-1;652:3172:102;4919:24:24;652:3172:102;;;;;;;;;;;;;-1:-1:-1;;652:3172:102;;;;;;;;-1:-1:-1;;;;;652:3172:102;;;;;;;;;;;;;;-1:-1:-1;;652:3172:102;;;;4084:14:101;;:::i;:::-;4112:10;;4108:65;;4190:17;652:3172:102;;;;;;12178:17:27;;;652:3172:102;;;;;;;4210:27:101;652:3172:102;;;4210:27:101;;:::i;:::-;652:3172:102;;;;;;;4189:60:101;652:3172:102;4189:60:101;;:::i;:::-;652:3172:102;;;;;;;;;;;;;;;;;;:::i;4108:65:101:-;652:3172:102;;-1:-1:-1;;;4145:17:101;;652:3172:102;;4145:17:101;652:3172:102;;;;-1:-1:-1;;;;;652:3172:102;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;652:3172:102;;;;;;;;;;;;;;;:::o;:::-;;;;;;-1:-1:-1;;652:3172:102;;;;;;:::i;:::-;-1:-1:-1;;;;;652:3172:102;;;;;;;;;;;;;;:::i;:::-;3217:103:29;;;;:::i;:::-;1673:7:76;-1:-1:-1;;;;;652:3172:102;1659:10:76;:21;1655:71;;-1:-1:-1;;;;;;;;;;;652:3172:102;;;;;;;6431:44:26;;;;;652:3172:102;6427:105:26;;;;;-1:-1:-1;15924:8:100;;6427:105:26;652:3172:102;;-1:-1:-1;;;6498:23:26;;652:3172:102;;6498:23:26;6431:44;652:3172:102;;;;6450:25:26;;;-1:-1:-1;6431:44:26;;;;;1655:71:76;652:3172:102;;-1:-1:-1;;;1703:12:76;;652:3172:102;;1703:12:76;652:3172:102;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;652:3172:102;;;;;;;:::o;:::-;;:::i;:::-;;;;;;;-1:-1:-1;;;;;652:3172:102;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;652:3172:102;;;;;;;:::o;:::-;;;;;;;;;;-1:-1:-1;;;;;652:3172:102;;;;;;;:::o;:::-;;;;;;;:::i;:::-;:::o;:::-;-1:-1:-1;;;;;652:3172:102;;;;;;-1:-1:-1;;652:3172:102;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;652:3172:102;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;652:3172:102;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;652:3172:102;;;;;;;5383:59:101;652:3172:102;;;;;;:::i;:::-;-1:-1:-1;;;;;652:3172:102;;;-1:-1:-1;652:3172:102;;;5383:15:101;652:3172:102;;;;;5383:59:101;:::i;652:3172:102:-;;;;;;-1:-1:-1;;652:3172:102;;;;;;655:32:76;-1:-1:-1;;;;;652:3172:102;;;;;;;;;;;;-1:-1:-1;;652:3172:102;;;;5350:25:24;652:3172:102;;;;;;;:::i;:::-;;-1:-1:-1;652:3172:102;-1:-1:-1;;;;;;;;;;;652:3172:102;;3202:4:24;4919:24;652:3172:102;-1:-1:-1;652:3172:102;4919:24:24;652:3172:102;3202:4:24;:::i;:::-;5350:25;:::i;:::-;652:3172:102;;;;;;;-1:-1:-1;;652:3172:102;;;;;;;;-1:-1:-1;;;1109:37:102;;652:3172;1109:37;;652:3172;;;;;;;;-1:-1:-1;;;;;652:3172:102;1109:37;;;;;;652:3172;1109:37;;;652:3172;;;;;;;;;;;;;1109:37;;;;;;;;;;;;;;;;:::i;:::-;;;652:3172;;;;;;;;;;;;;1109:37;;;;;;-1:-1:-1;1109:37:102;;;;:::i;652:3172::-;;;;;;-1:-1:-1;;652:3172:102;;;;;;;;;:::i;:::-;966:10:28;-1:-1:-1;;;;;652:3172:102;;6441:34:24;6437:102;;6549:37;652:3172:102;;;6549:37:24;:::i;6437:102::-;652:3172:102;;-1:-1:-1;;;6498:30:24;;652:3172:102;;6498:30:24;652:3172:102;;;;;;-1:-1:-1;;652:3172:102;;;;;1524:22:100;652:3172:102;;;;1524:46:100;;;652:3172:102;;;;;;;;;;;1524:46:100;-1:-1:-1;1550:20:100;652:3172:102;;;;;1524:46:100;;652:3172:102;;;;;;;:::o;:::-;;;;;;-1:-1:-1;;652:3172:102;;;;;;;;;:::i;:::-;3217:103:29;;:::i;:::-;3202:4:24;;:::i;:::-;-1:-1:-1;652:3172:102;;;;;;;;;;;9542:26:100;9538:76;;-1:-1:-1;;652:3172:102;;;;;-1:-1:-1;652:3172:102;;;;;;9665:27:100;;652:3172:102;;9665:27:100;1805:1:29;-1:-1:-1;;;;;;;;;;;652:3172:102;;9538:76:100;652:3172:102;;-1:-1:-1;;;9591:12:100;;652:3172:102;;9591:12:100;652:3172:102;;;;;;-1:-1:-1;;652:3172:102;;;;;;1718:31:101;652:3172:102;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3217:103:29;;:::i;:::-;-1:-1:-1;;;;;652:3172:102;;;;;3474:24:100;;3470:81;;-1:-1:-1;652:3172:102;;;;3565:55:100;;;652:3172:102;3561:118:100;;652:3172:102;;-1:-1:-1;;;3713:43:100;;;3750:4;3713:43;;;652:3172:102;;;;;;;;;;;;;;;;;;;;;;;;;3713:43:100;;;;;;;;;;-1:-1:-1;3713:43:100;;;652:3172:102;;3829:6:100;652:3172:102;;;3750:4:100;;3802:10;;3829:6;;:::i;:::-;-1:-1:-1;652:3172:102;;;3864:43:100;;;3750:4;3864:43;;;652:3172:102;;;;;;;;;;3864:43:100;652:3172:102;;;;;;3864:43:100;652:3172:102;;;;;3864:43:100;;;;;;;:59;:43;-1:-1:-1;3864:43:100;;;652:3172:102;3864:59:100;;;:::i;:::-;3938:20;;;3934:79;;652:3172:102;;;;;4027:64:100;;652:3172:102;4023:123:100;;5173:21:101;;652:3172:102;5173:21:101;4502:93:100;5173:21:101;;:::i;:::-;4803:22;4426:66:100;4803:22:101;;:::i;:::-;4349:67:100;390:70:92;;;;;:::i;:::-;837:15:63;4385:30:100;837:15:63;819:34;837:15;819:34;:::i;:::-;4385:30:100;;:::i;:::-;4349:67;;:::i;:::-;837:15:63;;4463:28:100;837:15:63;819:34;837:15;819:34;:::i;4463:28:100:-;4426:66;;:::i;:::-;-1:-1:-1;;;;;;;652:3172:102;;;;;;5606:15:101;652:3172:102;;;;;837:15:63;4553:41:100;837:15:63;5606:33:101;:24;819:34:63;837:15;819:34;:::i;:::-;-1:-1:-1;;;;;652:3172:102;;;;;;;5606:15:101;652:3172:102;;;;;;;5606:33:101;4553:41:100;:::i;:::-;4502:93;;:::i;:::-;-1:-1:-1;;652:3172:102;;;;;;;;;;;;;3802:10:100;;4611:62;;652:3172:102;;4611:62:100;3282:1:29;1805;-1:-1:-1;;;;;;;;;;;652:3172:102;3716:283:29;3282:1;652:3172:102;;;;;-1:-1:-1;;1808:46:102;;652:3172;;1808:46;652:3172;;;;;;;;;;;;;;;;;;;4023:123:100;652:3172:102;;-1:-1:-1;;;4114:21:100;;;4027:64;5173:21:101;4045:31:100;5173:21:101;;;:::i;4045:31:100:-;652:3172:102;;-1:-1:-1;4027:64:100;;3934:79;-1:-1:-1;652:3172:102;;-1:-1:-1;;;3981:21:100;;;3864:43;;;;;;-1:-1:-1;3864:43:100;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;3713;3829:6;3713:43;;;;;;;;;;;;;;;:::i;:::-;;;;;3561:118;-1:-1:-1;652:3172:102;;-1:-1:-1;;;3643:25:100;;;3565:55;-1:-1:-1;3609:10:100;652:3172:102;;;;3586:22:100;652:3172:102;;;;;;;;3585:35:100;3565:55;;3470:81;652:3172:102;;-1:-1:-1;;;3521:19:100;;;652:3172:102;;;;;;-1:-1:-1;;652:3172:102;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;652:3172:102;;;;;1805:27:101;652:3172:102;;;;;;;;;;;;;;;-1:-1:-1;;652:3172:102;;;;;;1968:34:101;652:3172:102;;;;;;;;;;;;;;;-1:-1:-1;;652:3172:102;;;;;;;;;;:::i;:::-;;;;;-1:-1:-1;;;;;652:3172:102;;;;;;;;;:::i;:::-;;;;;4622:48:101;652:3172:102;;;:::i;:::-;4622:48:101;;:::i;652:3172:102:-;;;;;;-1:-1:-1;;652:3172:102;;;;;;;;;:::i;:::-;3217:103:29;;:::i;:::-;3202:4:24;;:::i;:::-;-1:-1:-1;652:3172:102;;;;;;;;;;;;;10370:24:100;10366:74;;-1:-1:-1;;652:3172:102;;;;;;;;-1:-1:-1;652:3172:102;;;;;;10489:25:100;;652:3172:102;;10489:25:100;3282:1:29;1805;-1:-1:-1;;;;;;;;;;;652:3172:102;3716:283:29;652:3172:102;;;;;;-1:-1:-1;;652:3172:102;;;;;-1:-1:-1;;;;;;;;;;;;;;;;652:3172:102;;;;;;;;;;;;;;-1:-1:-1;;652:3172:102;;;;;;:::i;:::-;;;;;;:::i;:::-;-1:-1:-1;;;;;652:3172:102;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;8837:64:26;;652:3172:102;;;;;;734:29:76;730:87;;652:3172:102;;;;;6431:44:26;;;;;652:3172:102;6427:105:26;;;6656:20;652:3172:102;6656:20:26;652:3172:102;1167:340:76;652:3172:102;;;;-1:-1:-1;;;;;652:3172:102;;;;;6575:22:26;-1:-1:-1;;;;;;;;;;;;;;652:3172:102;;;;;;;;;6575:22:26;1167:340:76;:::i;:::-;-1:-1:-1;;;;;;;;;;;652:3172:102;;-1:-1:-1;;652:3172:102;;;;;-1:-1:-1;;;;;652:3172:102;;;;;;;;;;;;;6656:20:26;;;;652:3172:102;6431:44:26;652:3172:102;;;;;-1:-1:-1;6450:25:26;6431:44;;;730:87:76;652:3172:102;;-1:-1:-1;;;786:20:76;;652:3172:102;;786:20:76;652:3172:102;;;;;;-1:-1:-1;;652:3172:102;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;-1:-1:-1;;652:3172:102;;;;;;-1:-1:-1;652:3172:102;2431:59:101;652:3172:102;;;;-1:-1:-1;652:3172:102;;;;;;;;;;;;;;-1:-1:-1;;652:3172:102;;;;3875:17:101;652:3172:102;;3895:30:101;652:3172:102;;;;;3895:14:101;;;:::i;:::-;652:3172:102;;;3895:30:101;;:::i;:::-;652:3172:102;;;;;;;3874:63:101;652:3172:102;3874:63:101;;:::i;:::-;652:3172:102;;;;;;;;;;;;;-1:-1:-1;;652:3172:102;;;;;;1200:42:101;-1:-1:-1;;;;;652:3172:102;;;;;;;;;;;;-1:-1:-1;;652:3172:102;;;;;;2136:32:101;652:3172:102;;;;;;;;;;;;;;;;;;-1:-1:-1;;652:3172:102;;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;652:3172:102;5606:15:101;652:3172:102;;;5606:33:101;652:3172:102;-1:-1:-1;652:3172:102;5606:33:101;:::i;652:3172:102:-;;;;;;-1:-1:-1;;652:3172:102;;;;2303:62:25;;:::i;:::-;-1:-1:-1;;;;;;;;;;;652:3172:102;;-1:-1:-1;;;;;;652:3172:102;;;;;;;-1:-1:-1;;;;;652:3172:102;3975:40:25;652:3172:102;;3975:40:25;652:3172:102;;;;;;;-1:-1:-1;;652:3172:102;;;;;;;;;;;:::i;:::-;3217:103:29;;:::i;:::-;7131:7:100;652:3172:102;7117:21:100;;-1:-1:-1;;;;;652:3172:102;;-1:-1:-1;;;;;652:3172:102;;;7117:21:100;:10;:21;7113:71;;7218:14;;:::i;:::-;7265:25;;;;:::i;:::-;7305:17;;;;:53;;;652:3172:102;7304:87:100;;;;652:3172:102;7300:146:100;;652:3172:102;5173:21:101;9310:48:100;5173:21:101;;;:::i;:::-;7540:17:100;7528:30;7540:17;;;:::i;:::-;652:3172:102;;7528:11:100;652:3172:102;;;;;;;7528:30:100;652:3172:102;;7572:29:100;;;;;7642:30;;;;;:::i;:::-;7702:32;;;;:::i;:::-;7752:17;;;7748:384;;7568:1615;;;;;;;9197:17;9193:102;;7568:1615;652:3172:102;;;;;;;;;;;;;;;;;;;;;;;9310:48:100;3282:1:29;1805;-1:-1:-1;;;;;;;;;;;652:3172:102;3716:283:29;3282:1;652:3172:102;;;;;;;;;;;;;9193:102:100;-1:-1:-1;652:3172:102;9270:13:100;;652:3172:102;;9230:18:100;;652:3172:102;;-1:-1:-1;;;;;652:3172:102;;;9230:18:100;7556:1;652:3172:102;-1:-1:-1;;;;;652:3172:102;9270:13:100;;:::i;:::-;9193:102;;7748:384;8045:29;7813:50;7962:65;7813:50;7998:28;7914:29;7813:50;8057:16;7813:50;8077:40;7813:50;;;:::i;:::-;7914:29;;;:::i;:::-;837:15:63;819:34;837:15;819:34;:::i;:::-;7998:28:100;;:::i;8077:40::-;8057:16;;:::i;8045:29::-;652:3172:102;7748:384:100;;;;;;;7568:1615;8185:26;;;;652:3172:102;;7528:11:100;652:3172:102;;;;;;;8185:26:100;652:3172:102;8250:27:100;:45;:27;;;;;:::i;:45::-;8325:32;;;;;:::i;:::-;8375:17;;8371:802;;7568:1615;;;;;;;;8371:802;9096:26;8436:50;;8537:53;8436:50;8637:54;8436:50;8637:29;8436:50;9125:33;8436:50;;;;:::i;:::-;8537:53;;;;;;:::i;:::-;8637:29;;;;:::i;:::-;:54;:::i;:::-;8714:33;;;;8710:194;;8371:802;8922:65;837:15:63;8958:28:100;9038:40;837:15:63;;;819:34;837:15;819:34;:::i;9038:40:100:-;9005:30;9017:17;;;:::i;9005:30::-;652:3172:102;9125:33:100;:::i;:::-;9096:26;652:3172:102;;7528:11:100;652:3172:102;;;;;;;9096:26:100;652:3172:102;8371:802:100;;;;;;;8710:194;8797:33;8771:59;8922:65;8797:33;;;9038:40;8797:33;;;:::i;:::-;8771:59;;:::i;:::-;8852:33;;-1:-1:-1;8852:33:100;;-1:-1:-1;8710:194:100;;7300:146;652:3172:102;;-1:-1:-1;;;7414:21:100;;652:3172:102;;7414:21:100;7304:87;7363:28;;;;7304:87;;7305:53;7341:17;;;;:::i;:::-;7326:32;;7305:53;;7113:71;652:3172:102;;-1:-1:-1;;;7161:12:100;;652:3172:102;;7161:12:100;652:3172:102;;;;;;-1:-1:-1;;652:3172:102;;;;4384:17:101;652:3172:102;;;;;;;4405:14:101;;;:::i;:::-;4384:17;652:3172:102;;;;;;;4404:36:101;652:3172:102;;;4404:36:101;;:::i;652:3172:102:-;;;;;;-1:-1:-1;;652:3172:102;;;;;;;:::i;:::-;-1:-1:-1;;;;;652:3172:102;;;;;5162:13:27;652:3172:102;;;;;;:::o;:::-;;;;;;-1:-1:-1;;652:3172:102;;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;652:3172:102;2307:68:101;652:3172:102;;;;;-1:-1:-1;652:3172:102;;;;;;;;;;;;;;;;;-1:-1:-1;;652:3172:102;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;-1:-1:-1;;652:3172:102;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;652:3172:102;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6491:14:100;652:3172:102;;6491:14:100;;:::i;652:3172:102:-;;;;;4994:47:101;652:3172:102;;;:::i;:::-;4994:47:101;;:::i;652:3172:102:-;;;;;;;;;;;;;;;;;;;;:::i;:::-;3217:103:29;;:::i;:::-;10932:22:100;652:3172:102;;;;;10928:89:100;;652:3172:102;;-1:-1:-1;;;11032:49:100;;-1:-1:-1;;;;;652:3172:102;;;11032:49:100;;;652:3172:102;;;;;;;;;;;;;;;11032:49:100;11042:17;;;652:3172:102;11032:49:100;;;;;;;-1:-1:-1;11032:49:100;;;652:3172:102;11031:50:100;;11027:102;;652:3172:102;;-1:-1:-1;;;11143:34:100;;652:3172:102;;;;;11143:34:100;652:3172:102;11143:34:100;652:3172:102;;11143:34:100;;;;;;;-1:-1:-1;11143:34:100;;;652:3172:102;11189:4:100;;;652:3172:102;;11143:51:100;11139:107;;-1:-1:-1;10932:22:100;652:3172:102;;-1:-1:-1;;;;;652:3172:102;;;;-1:-1:-1;;;;;;652:3172:102;;;;;;;-1:-1:-1;;;652:3172:102;;;11334:24:100;-1:-1:-1;;11334:24:100;3282:1:29;1805;-1:-1:-1;;;;;;;;;;;652:3172:102;3716:283:29;11139:107:100;652:3172:102;;-1:-1:-1;;;11217:18:100;;;11143:34;;;;;;;-1:-1:-1;11143:34:100;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;11027:102;-1:-1:-1;652:3172:102;;-1:-1:-1;;;11104:14:100;;;11032:49;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;10928:89;652:3172:102;;-1:-1:-1;;;10977:29:100;;;652:3172:102;;;;;;-1:-1:-1;;652:3172:102;;;;;;1298:40:101;-1:-1:-1;;;;;652:3172:102;;;;;;;;;;;;-1:-1:-1;;652:3172:102;;;;1703:14:100;;:::i;:::-;5173:21:101;;:::i;:::-;652:3172:102;;;;1750:11:100;652:3172:102;;;;;;;;;;;;;1791:1:100;652:3172:102;;;;;;;;;1750:11:100;652:3172:102;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;652:3172:102;;;;-1:-1:-1;;;;;;;;;;;652:3172:102;;;-1:-1:-1;;;;;652:3172:102;;;;;;;;;;;;;;-1:-1:-1;;652:3172:102;;;;;;3901:31:24;652:3172:102;;;;;:::i;:::-;;;-1:-1:-1;652:3172:102;-1:-1:-1;;;;;;;;;;;652:3172:102;;;-1:-1:-1;652:3172:102;;;;;;;;;;;;;;;;;3901:31:24;652:3172:102;;;;;;;;;;;;;;;;-1:-1:-1;;652:3172:102;;;;;;;-1:-1:-1;;;;;;;;;;;652:3172:102;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;652:3172:102;;;;;;;-1:-1:-1;;;;652:3172:102;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;652:3172:102;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;652:3172:102;;;;-1:-1:-1;652:3172:102;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;416:25:80;;;;477:31;416:25;;:::i;:::-;652:3172:102;;;;;;;;;;477:31:80;;652:3172:102;;;;;;;;;;;:::i;:::-;477:31:80;652:3172:102;;477:31:80;;;;;;:::i;:::-;518:79;;;652:3172:102;518:79:80;;652:3172:102;;;;;;-1:-1:-1;;652:3172:102;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;652:3172:102;;;;;;;;;;;;;;;;;-1:-1:-1;;652:3172:102;;;;;;;1109:35:101;652:3172:102;;;;;;;;;-1:-1:-1;;652:3172:102;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;3217:103:29;;:::i;:::-;3202:4:24;;:::i;:::-;-1:-1:-1;;;;;652:3172:102;;;9907:21:100;;9903:75;;-1:-1:-1;652:3172:102;;;9992:22:100;652:3172:102;;;;;;;;;;;;;9992:41:100;9988:91;;-1:-1:-1;;;;;652:3172:102;;;;;3586:22:100;652:3172:102;;;;;10145:44:100;;;;10089:40;;:31;652:3172:102;;;;;;;;;;;;;;10089:40:100;652:3172:102;;;;;;;;;;;;;;;10145:44:100;;;;3282:1:29;1805;-1:-1:-1;;;;;;;;;;;652:3172:102;3716:283:29;9903:75:100;652:3172:102;;-1:-1:-1;;;9951:16:100;;652:3172:102;;9951:16:100;652:3172:102;;;;;;-1:-1:-1;;652:3172:102;;;;;2666:94:101;652:3172:102;;;;;:::i;:::-;;;-1:-1:-1;652:3172:102;2666:94:101;652:3172:102;;;-1:-1:-1;652:3172:102;;;;;;;;;;;;;;;;;2666:94:101;652:3172:102;;;;;;;;;;;;;-1:-1:-1;;652:3172:102;;;;;;2816:92:101;652:3172:102;;;;;:::i;:::-;;;-1:-1:-1;652:3172:102;2816:92:101;652:3172:102;;;-1:-1:-1;652:3172:102;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;652:3172:102;;;;4911:5:27;652:3172:102;;;;;:::i;:::-;;;966:10:28;;4911:5:27;:::i;:::-;652:3172:102;;;4934:4:27;652:3172:102;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3217:103:29;;:::i;:::-;11459:20:100;652:3172:102;;;;;11455:85:100;;-1:-1:-1;;;;;652:3172:102;;;;;;11550:312:100;;652:3172:102;11459:20:100;652:3172:102;;-1:-1:-1;;;;652:3172:102;-1:-1:-1;;;652:3172:102;;;11872:27:100;11915:20;-1:-1:-1;11915:20:100;;3282:1:29;1805;-1:-1:-1;;;;;;;;;;;652:3172:102;3716:283:29;11550:312:100;652:3172:102;;-1:-1:-1;;;11597:45:100;;-1:-1:-1;;;;;652:3172:102;;11597:45:100;;;652:3172:102;;;11597:45:100;;652:3172:102;;;;;;11597:45:100;11607:15;;;652:3172:102;11597:45:100;;;;;;;-1:-1:-1;11597:45:100;;;11550:312;11596:46;;11592:104;;652:3172:102;;-1:-1:-1;;;11714:30:100;;;652:3172:102;11714:30:100;652:3172:102;11714:30:100;;;;;;;;-1:-1:-1;11714:30:100;;;11550:312;11756:4;;;652:3172:102;;11714:47:100;11710:109;;-1:-1:-1;11459:20:100;652:3172:102;;-1:-1:-1;;;;;;652:3172:102;-1:-1:-1;;;;;652:3172:102;;;;;;;;;11550:312:100;;;;;;11710:109;652:3172:102;;-1:-1:-1;;;11788:16:100;;;11714:30;;;;;;;-1:-1:-1;11714:30:100;;;;;;:::i;:::-;;;;;;11592:104;652:3172:102;;-1:-1:-1;;;11669:12:100;;652:3172:102;;11669:12:100;11597:45;;;;;;;;;;;;;;:::i;:::-;;;;11455:85;652:3172:102;;-1:-1:-1;;;11502:27:100;;;652:3172:102;;;;;;-1:-1:-1;;652:3172:102;;;;;;;;;:::i;:::-;;;3217:103:29;;;:::i;:::-;-1:-1:-1;;;;;652:3172:102;;;;;6112:23:100;;6108:79;;6273:6;652:3172:102;6206:13:100;;;;:::i;:::-;652:3172:102;;;-1:-1:-1;652:3172:102;;;;6273:6:100;:::i;:::-;652:3172:102;;;;;;;;;;;;6302:10:100;;6296:43;;652:3172:102;6296:43:100;1805:1:29;-1:-1:-1;;;;;;;;;;;652:3172:102;;;;;;;;;;;;;;6108:79:100;652:3172:102;;-1:-1:-1;;;6158:18:100;;652:3172:102;;6158:18:100;652:3172:102;;;;;;-1:-1:-1;;652:3172:102;;;;;;-1:-1:-1;652:3172:102;2546:64:101;652:3172:102;;;;-1:-1:-1;652:3172:102;;;;;;;;;;;;;;-1:-1:-1;;652:3172:102;;;;2058:22:101;652:3172:102;;;-1:-1:-1;;;;;652:3172:102;;;;;;;;;;;;;;-1:-1:-1;;652:3172:102;;;;;5173:21:101;;:::i;652:3172:102:-;;;;;;-1:-1:-1;;652:3172:102;;;;;;3217:103:29;;:::i;:::-;966:10:28;-1:-1:-1;652:3172:102;;;;;;;;;;1109:35:101;;652:3172:102;;4468:23:24;4464:108;;652:3172:102;;;;10692:21:100;10688:71;;652:3172:102;;10805:22:100;652:3172:102;;;;;;;;10805:22:100;1805:1:29;-1:-1:-1;;;;;;;;;;;652:3172:102;;4464:108:24;652:3172:102;;;;4514:47:24;;;;;;966:10:28;652:3172:102;4514:47:24;;652:3172:102;;;;;4514:47:24;652:3172:102;;;;;;-1:-1:-1;;652:3172:102;;;;;;;;;:::i;:::-;3123:14:100;;:::i;:::-;3154:24;;;:::i;:::-;3181:29;;;;;:::i;:::-;652:3172:102;;;;;;;3235:1:100;652:3172:102;;;;;;;3213:33:100;;;:::i;:::-;652:3172:102;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;652:3172:102;;;;1888:24:101;652:3172:102;;;-1:-1:-1;;;;;652:3172:102;;;;;;;;;;;;;;-1:-1:-1;;652:3172:102;;;;5767:26:24;652:3172:102;;;;;;;:::i;:::-;;-1:-1:-1;652:3172:102;-1:-1:-1;;;;;;;;;;;652:3172:102;;3202:4:24;4919:24;652:3172:102;-1:-1:-1;652:3172:102;4919:24:24;652:3172:102;3202:4:24;:::i;:::-;5767:26;:::i;652:3172:102:-;;;;;;-1:-1:-1;;652:3172:102;;;;;;;;;;;;;-1:-1:-1;;;;;652:3172:102;;;;;;;;;;;;-1:-1:-1;;652:3172:102;;;;;;;675:39:101;652:3172:102;;;;;;;;;-1:-1:-1;;652:3172:102;;;;;5162:29:27;652:3172:102;;;;;:::i;:::-;5162:20:27;652:3172:102;;;;;;:::i;:::-;5162:20:27;:::i;652:3172:102:-;;;;;;-1:-1:-1;;652:3172:102;;;;;;;;;;;;;;;;;;;-1:-1:-1;;652:3172:102;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;-1:-1:-1;;;;;652:3172:102;;;;;;;;;;;;;;;:::i;:::-;1972:48:100;;652:3172:102;;;;;;;:::i;:::-;;;;;;;;;;;;;;2034:16:100;;2030:111;;652:3172:102;;2233:39:100;1057:70:92;2233:39:100;;4622:48:101;2196:77:100;2233:39;;;;2196:77;;:::i;:::-;2312:36;;4994:47:101;652:3172:102;2312:36:100;;;4994:47:101;;:::i;:::-;2389:37:100;;;4622:48:101;;:::i;:::-;1057:70:92;;:::i;:::-;652:3172:102;;;;;;;;;;;;;2030:111:100;2089:41;;;;-1:-1:-1;652:3172:102;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;4622:48:101;652:3172:102;2196:77:100;652:3172:102;1057:70:92;652:3172:102;;;:::i;:::-;;;;;2030:111:100;;;;;652:3172:102;;;;;;-1:-1:-1;;652:3172:102;;;;2357:1:25;652:3172:102;;;;;:::i;:::-;2303:62:25;;:::i;:::-;2357:1;:::i;652:3172:102:-;;;;;;-1:-1:-1;;652:3172:102;;;;;;;;;:::i;:::-;;;3217:103:29;;:::i;:::-;-1:-1:-1;;;;;652:3172:102;;4890:21:100;4886:75;;4975:11;;4971:73;;845:69:92;4803:22:101;;:::i;:::-;5173:21;;:::i;:::-;845:69:92;;;:::i;:::-;5180:10:100;652:3172:102;;;;5606:15:101;652:3172:102;;;;;5180:10:100;;;5606:33:101;;;:::i;:::-;5150:41:100;;5146:96;;5267:40;;;;;:::i;5146:96::-;652:3172:102;;-1:-1:-1;;;5214:17:100;;652:3172:102;;5214:17:100;4971:73;652:3172:102;;-1:-1:-1;;;5009:24:100;;652:3172:102;;5009:24:100;652:3172:102;;;;;;-1:-1:-1;;652:3172:102;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;652:3172:102;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;:::o;:::-;;7556:1:100;652:3172:102;;;;;;;:::o;:::-;;;;;;;;;;:::o;5256:193:101:-;-1:-1:-1;;;;;652:3172:102;-1:-1:-1;652:3172:102;;;5383:15:101;652:3172:102;;;;;5383:59:101;;5256:193;;5383:59;:::i;652:3172:102:-;;;;;;;;;;1167:340:76;;652:3172:102;1167:340:76;6893:76:26;;:::i;:::-;;;:::i;:::-;1805:1:29;-1:-1:-1;;;;;;;;;;;652:3172:102;-1:-1:-1;;;;;652:3172:102;;1376:73:76;;1167:340;652:3172:102;;;;:::i;:::-;;;3642:39;;;;;;;652:3172;;;;;;;3642:39;;;652:3172;-1:-1:-1;;;;;652:3172:102;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;3734:29;652:3172;;2577:147:27;652:3172:102;3734:29;652:3172;;;;:::i;:::-;;;;;;;;3745:17;652:3172;3734:29;652:3172;;3734:29;;;;;;:::i;:::-;;:::i;:::-;3788:11;3801:13;;2577:147:27;;:::i;1376:73:76:-;6961:1:26;6893:76;;;:::i;:::-;;;:::i;6961:1::-;1376:73:76;;;2492:191:100;-1:-1:-1;;;;;652:3172:102;-1:-1:-1;652:3172:102;;;5606:15:101;652:3172:102;;;;;5606:33:101;;;:::i;:::-;5173:21;;:::i;:::-;4803:22;;:::i;:::-;652:3172:102;1884:1:92;652:3172:102;;;;;;;1884:1:92;652:3172:102;;;;;;;8188:25:58;;;:::i;652:3172:102:-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;:::i;3612:132:101:-;819:34:63;837:15;819:34;:::i;:::-;3683:54:101;3703:17;652:3172:102;3684:36:101;652:3172:102;;;;;;;3684:36:101;;:::i;:::-;652:3172:102;;;3683:54:101;;:::i;:::-;652:3172:102;3612:132:101;:::o;3313:244::-;3418:17;652:3172:102;;;;;;;;;;;;;;3406:29:101;3402:85;;3503:47;3504:29;;;;:::i;3402:85::-;652:3172:102;;-1:-1:-1;;;3458:18:101;;;;;3217:103:29;;;;:::i;:::-;652:3172:102;;-1:-1:-1;;;;;652:3172:102;;;6521:23:100;;6517:79;;6650:11;;6646:70;;652:3172:102;6742:10:100;;;;;;-1:-1:-1;652:3172:102;;6887:49:100;;652:3172:102;;;;6864:6:100;;652:3172:102;;6821:18:100;;652:3172:102;;-1:-1:-1;;;;;652:3172:102;;;6821:18:100;6864:6;:::i;:::-;6887:49;652:3172:102;;6898:10:100;;;;6887:49;;;:::i;:::-;;;;3282:1:29;;1805;-1:-1:-1;;;;;;;;;;;652:3172:102;3716:283:29;6754:3:100;6790:9;6773:27;652:3172:102;6790:9:100;6783:17;6790:9;;;;;:::i;:::-;652:3172:102;6783:17:100;:::i;6773:27::-;6754:3;652:3172:102;6731:9:100;;6646:70;652:3172:102;;-1:-1:-1;;;6684:21:100;;;;;652:3172:102;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;652:3172:102;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;-1:-1:-1;652:3172:102;;;;:::o;:::-;;;:::o;3405:215:25:-;-1:-1:-1;;;;;652:3172:102;;;;3489:22:25;;3485:91;;-1:-1:-1;;;;;;;;;;;652:3172:102;;-1:-1:-1;;;;;;652:3172:102;;;;;;;;3975:40:25;-1:-1:-1;;3975:40:25;3405:215::o;3485:91::-;652:3172:102;;-1:-1:-1;;;3534:31:25;;3509:1;3534:31;;;652:3172:102;;;3534:31:25;2731:227:100;;2871:34;2731:227;652:3172:102;-1:-1:-1;652:3172:102;2871:18:100;652:3172:102;;;-1:-1:-1;652:3172:102;;;;;;;;;;;;;;;;;2871:34:100;652:3172:102;;-1:-1:-1;652:3172:102;2907:11:100;652:3172:102;;;-1:-1:-1;652:3172:102;;2927:16:100;652:3172:102;;;-1:-1:-1;652:3172:102;;;1884:1:92;652:3172:102;;;;;;;1884:1:92;652:3172:102;;;;;;;8188:25:58;;;:::i;3326:384:29:-;-1:-1:-1;;;;;;;;;;;1847:1:29;652:3172:102;;3526:20:29;3522:88;;1847:1;652:3172:102;;3326:384:29:o;3522:88::-;652:3172:102;;-1:-1:-1;;;3569:30:29;;;;;1867:311:102;12135:10:100;-1:-1:-1;652:3172:102;;;5606:15:101;652:3172:102;;;;;1867:311;;;-1:-1:-1;;1867:311:102;;12119:93:100;;819:34:63;837:15;819:34;:::i;:::-;12135:10:100;652:3172:102;;;;5606:15:101;652:3172:102;;;;;12170:41:100;;12135:10;;5606:33:101;;;:::i;12119:93:100:-;837:15:63;;12222:67:100;819:34:63;837:15;819:34;:::i;:::-;12259:29:100;4803:22:101;;;:::i;12222:67:100:-;837:15:63;;12299:68:100;819:34:63;837:15;819:34;:::i;:::-;12335:31:100;5173:21:101;;;:::i;12299:68:100:-;12394:14;;;12769:34;12394:14;12769:25;12394:18;:14;;:::i;:::-;:18;:::i;:::-;12726:33;12445:18;;652:3172:102;;7528:11:100;652:3172:102;;;;;;;12445:18:100;652:3172:102;12502:23:100;;652:3172:102;;12502:16:100;652:3172:102;;;;;;;12502:23:100;652:3172:102;12660:30:100;390:70:92;;;;;:::i;:::-;12660:30:100;;;;:::i;:::-;12639:18;;652:3172:102;;7528:11:100;652:3172:102;;;;;;;12639:18:100;652:3172:102;12726:33:100;:::i;:::-;12700:23;;652:3172:102;;12502:16:100;652:3172:102;;;;;;;12700:23:100;652:3172:102;;;12769:18:100;652:3172:102;;;;;;;12769:34:100;:50;652:3172:102;;;12769:50:100;:::i;:::-;652:3172:102;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;652:3172:102;;;;;12135:10:100;;12835:74;;652:3172:102;;12835:74:100;652:3172:102;;;;;;12135:10:100;;2125:46:102;;652:3172;;;;2125:46;;;;1867:311::o;6868:300:27:-;;-1:-1:-1;;;;;652:3172:102;;;;;6951:18:27;;6947:86;;652:3172:102;;7046:16:27;;;7042:86;;-1:-1:-1;;;;;652:3172:102;;;;;;5606:15:101;652:3172:102;;;;;5606:33:101;;;:::i;:::-;2607:19:102;;;;2603:115;;3459:25;2838:21;:65;3459:25;2838:21;;;3354:65;2838:21;652:3172;;;;;;;;5606:15:101;652:3172:102;;;;;;;2838:21;837:15:63;;819:34;837:15;819:34;:::i;:::-;652:3172:102;;2838:65;;:::i;:::-;-1:-1:-1;;;;;;;652:3172:102;;;;;;5606:15:101;652:3172:102;;;;;837:15:63;;5606:33:101;:24;819:34:63;837:15;819:34;:::i;:::-;-1:-1:-1;;;;;652:3172:102;;;;;;;5606:15:101;652:3172:102;;;;;;;5606:33:101;652:3172:102;3354:65;;:::i;:::-;-1:-1:-1;;652:3172:102;;;;;;;;;;;;;2603:115;652:3172;;-1:-1:-1;;;2653:50:102;;-1:-1:-1;;;;;652:3172:102;;;;2653:50;;;652:3172;;;;;;;;;;;;;;;;12266:60:27;7042:86;652:3172:102;;-1:-1:-1;;;7085:32:27;;6967:1;7085:32;;;652:3172:102;;;7085:32:27;6947:86;652:3172:102;;-1:-1:-1;;;6992:30:27;;6967:1;6992:30;;;652:3172:102;;;6992:30:27;14291:213:59;652:3172:102;14369:24:59;;;;14365:103;;652:3172:102;14291:213:59;:::o;14365:103::-;652:3172:102;;;;14416:41:59;;;;;;14447:2;14416:41;;;652:3172:102;;;;;14416:41:59;652:3172:102;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;:::o;7558:604:91:-;;652:3172:102;;7686:17:91;7682:83;;652:3172:102;7789:27:91;652:3172:102;7789:27:91;652:3172:102;;7789:27:91;;;;;;:::i;:::-;7860:14;;;:::i;:::-;652:3172:102;;;;;;;;;;;;;;;;7888:22:91;;;7884:77;;7975:21;-1:-1:-1;7975:84:91;;;;7558:604;7971:139;;;;8127:28;;;;:::i;7971:139::-;7789:27;8082:17;;;652:3172:102;8075:24:91;:::o;7975:84::-;652:3172:102;;;8009:16:91;4622:13:101;652:3172:102;8009:16:91;:::i;:::-;652:3172:102;;;8001:24:91;:57;;;;;7975:84;;;;;;;8001:57;8029:29;8038:8;;;8029:18;8038:8;8029:23;8038:8;;:::i;:::-;8029:18;:::i;:::-;652:3172:102;;;;;8029:23:91;652:3172:102;;;;8029:29:91;;8001:57;;;;7884:77;7933:17;;;7789:27;7933:17;;;652:3172:102;7926:24:91;:::o;7682:83::-;7726:28;;;;:::i;7558:604::-;;652:3172:102;;7686:17:91;7682:83;;652:3172:102;7789:27:91;652:3172:102;7789:27:91;652:3172:102;;7789:27:91;;;;;;:::i;:::-;7860:14;;;:::i;:::-;652:3172:102;;;;;;;;;;;;;;;;7888:22:91;;;7884:77;;7975:21;-1:-1:-1;7975:84:91;;;;7558:604;7971:139;;;;8127:28;;;;:::i;7975:84::-;652:3172:102;;;8009:16:91;4994:12:101;652:3172:102;8009:16:91;:::i;:::-;652:3172:102;;;8001:24:91;:57;;;;;7975:84;;;;;;;8001:57;8029:29;8038:8;;;8029:18;8038:8;8029:23;8038:8;;:::i;:::-;8029:18;:::i;:29::-;;8001:57;;;;7682:83;7726:28;;;;:::i;7558:604::-;;652:3172:102;;7686:17:91;7682:83;;652:3172:102;7789:27:91;652:3172:102;7789:27:91;652:3172:102;;7789:27:91;;;;;;:::i;:::-;7860:14;;;;;:::i;:::-;652:3172:102;;;;;;;;;;;;;;;;7888:22:91;;;7884:77;;7975:21;-1:-1:-1;7975:84:91;;;;7558:604;7971:139;;;;8127:28;;;;:::i;7971:139::-;8082:17;;7789:27;8082:17;652:3172:102;8075:24:91;:::o;7975:84::-;652:3172:102;;;8009:16:91;652:3172:102;;8009:16:91;:::i;:::-;652:3172:102;;;8001:24:91;:57;;;;;7975:84;;;;;;;8001:57;8029:29;8038:8;;;8029:18;8038:8;8029:23;8038:8;;:::i;:::-;8029:18;;:::i;:29::-;;8001:57;;;;7884:77;7933:17;;;;;7789:27;7933:17;652:3172:102;7926:24:91;:::o;7682:83::-;7726:28;;;;:::i;4148:103:24:-;966:10:28;-1:-1:-1;652:3172:102;;;;;;;;;675:39:101;;652:3172:102;;3901:31:24;652:3172:102;;4468:23:24;4464:108;;4148:103;:::o;:::-;966:10:28;-1:-1:-1;652:3172:102;;;;;;;;;966:38:101;;652:3172:102;;3901:31:24;652:3172:102;4148:103:24;966:10:28;-1:-1:-1;652:3172:102;;;;;;;;;821:37:101;;652:3172:102;;3901:31:24;652:3172:102;4148:103:24;-1:-1:-1;652:3172:102;;;-1:-1:-1;;;;;;;;;;;652:3172:102;;;;;;;;966:10:28;652:3172:102;;;;;;;;;3901:31:24;652:3172:102;7270:387:24;-1:-1:-1;;;;;652:3172:102;;13555:17:100;652:3172:102;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2887:71:24;652:3172:102;;;;13555:17:100;652:3172:102;;;;;;;;;;;-1:-1:-1;;;;;652:3172:102;;;;;;;;;;-1:-1:-1;;652:3172:102;7509:4:24;652:3172:102;;;966:10:28;;-1:-1:-1;;;;;652:3172:102;-1:-1:-1;7532:40:24;-1:-1:-1;;7532:40:24;7509:4;7586:11;:::o;7432:219::-;7628:12;;13555:17:100;7628:12:24;:::o;7270:387::-;-1:-1:-1;;;;;652:3172:102;;-1:-1:-1;652:3172:102;;;;;;;;;675:39:101;;-1:-1:-1;;;;;;;;;;;2887:71:24;652:3172:102;;3901:31:24;652:3172:102;;;;-1:-1:-1;652:3172:102;;;;;;;;;;;-1:-1:-1;;;;;652:3172:102;;;;;;;;;;-1:-1:-1;;652:3172:102;7509:4:24;652:3172:102;;;966:10:28;;-1:-1:-1;;;;;652:3172:102;;7532:40:24;-1:-1:-1;;7532:40:24;7509:4;7586:11;:::o;7432:219::-;7628:12;;;-1:-1:-1;7628:12:24;:::o;7270:387::-;-1:-1:-1;;;;;652:3172:102;;-1:-1:-1;652:3172:102;;;;;;;;;821:37:101;;-1:-1:-1;;;;;;;;;;;2887:71:24;652:3172:102;;3901:31:24;652:3172:102;7270:387:24;-1:-1:-1;;;;;652:3172:102;;-1:-1:-1;652:3172:102;;;;;;;;;966:38:101;;-1:-1:-1;;;;;;;;;;;2887:71:24;652:3172:102;;3901:31:24;652:3172:102;7270:387:24;-1:-1:-1;;;;;652:3172:102;;-1:-1:-1;652:3172:102;;;;;;;;;1109:35:101;;-1:-1:-1;;;;;;;;;;;2887:71:24;652:3172:102;;3901:31:24;652:3172:102;7270:387:24;-1:-1:-1;652:3172:102;;;-1:-1:-1;;;;;;;;;;;652:3172:102;;;;;;;;-1:-1:-1;;;;;652:3172:102;;;;;;;;;;;;3901:31:24;652:3172:102;7892:388:24;-1:-1:-1;652:3172:102;;;-1:-1:-1;;;;;;;;;;;652:3172:102;;;;;;;;-1:-1:-1;;;;;652:3172:102;;;;;;;;;;;;;;;;-1:-1:-1;652:3172:102;;;;;;;;;;;-1:-1:-1;;;;;652:3172:102;;;;;;;;;;-1:-1:-1;;652:3172:102;;;966:10:28;;-1:-1:-1;;;;;652:3172:102;;8155:40:24;-1:-1:-1;;8155:40:24;652:3172:102;8209:11:24;:::o;652:3172:102:-;;;;;;;;;;;:::o;:::-;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;652:3172:102;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;652:3172:102;;;;;;;;;;;;;;;;-1:-1:-1;;;;;652:3172:102;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;652:3172:102;;;;;;;;;;-1:-1:-1;;;;;652:3172:102;;;;;;;;;;-1:-1:-1;;;;;652:3172:102;;;;;;;;;;-1:-1:-1;;;;;652:3172:102;;;;;;;;;;-1:-1:-1;;;;;652:3172:102;;;;;2658:162:25;-1:-1:-1;;;;;;;;;;;652:3172:102;-1:-1:-1;;;;;652:3172:102;966:10:28;2717:23:25;2713:101;;2658:162::o;2713:101::-;652:3172:102;;-1:-1:-1;;;2763:40:25;;966:10:28;2763:40:25;;;652:3172:102;;;2763:40:25;2557:104:58;;2641:5;;;;;;:13;2557:104;:::o;2641:13::-;;;2557:104;:::o;652:3172:102:-;;;;;;;:::o;3803:4116:58:-;;;652:3172:102;;;;-1:-1:-1;;3803:4116:58;;4383:131;;;;;;;;;;;;4595:10;;4591:368;;5065:20;;;;5061:88;;5435:300;;;652:3172:102;-1:-1:-1;652:3172:102;5954:31:58;;5999:371;;;6813:1;652:3172:102;;6794:1:58;652:3172:102;6793:21:58;652:3172:102;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5999:371:58;;;;-1:-1:-1;5999:371:58;;;5435:300;;;;;;652:3172:102;5435:300:58;;5999:371;6436:21;652:3172:102;3803:4116:58;:::o;5061:88::-;652:3172:102;;-1:-1:-1;;;5112:22:58;;;;;4591:368;4925:19;;;;;;;:::i;652:3172:102:-;7178:12:91;652:3172:102;;;;;;7178:12:91;-1:-1:-1;652:3172:102;-1:-1:-1;;;;;;;;;;;652:3172:102;;-1:-1:-1;652:3172:102;:::o;:::-;7178:12:91;652:3172:102;;;;;;7178:12:91;-1:-1:-1;652:3172:102;-1:-1:-1;;;;;;;;;;;652:3172:102;;-1:-1:-1;652:3172:102;:::o;:::-;;;;;;;;-1:-1:-1;652:3172:102;;-1:-1:-1;652:3172:102;;;-1:-1:-1;652:3172:102;:::o;:::-;6360:12:91;652:3172:102;-1:-1:-1;;;652:3172:102;;;;;;;;;6360:12:91;652:3172:102;;;;;;6360:12:91;-1:-1:-1;652:3172:102;-1:-1:-1;;;;;;;;;;;652:3172:102;;:::o;:::-;6360:12:91;652:3172:102;-1:-1:-1;;;652:3172:102;;;;;;;;;6360:12:91;652:3172:102;;;;;;6360:12:91;-1:-1:-1;652:3172:102;-1:-1:-1;;;;;;;;;;;652:3172:102;;:::o;:::-;;;;;-1:-1:-1;;;652:3172:102;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;12178:17:27;;;652:3172:102;;;;;;;;6246:584:91;;;;6360:12;652:3172:102;;;6360:24:91;;6356:75;;6246:584;6474:30;;;:::i;:::-;652:3172:102;;;;;;6578:12:91;;;:::i;:::-;6604:24;;;;6246:584;-1:-1:-1;6600:188:91;;;-1:-1:-1;;;652:3172:102;;;;;;;;;-1:-1:-1;652:3172:102;;;-1:-1:-1;652:3172:102;;;;;;6798:25:91;652:3172:102;6246:584:91:o;6600:188::-;8167:38:61;;-1:-1:-1;;;;;652:3172:102;;-1:-1:-1;8167:38:61;:::i;:::-;6753:24:91;;;;;:::i;:::-;6798:25;6246:584;:::o;6604:24::-;652:3172:102;;;;;;6614:14:91;;-1:-1:-1;6604:24:91;;;6356:75;-1:-1:-1;;;652:3172:102;;;;;;;;;;;;;;;;-1:-1:-1;652:3172:102;;;;-1:-1:-1;;;;;;;;;;;652:3172:102;;6356:75:91;;;6246:584;;;;6360:12;652:3172:102;;;6360:24:91;;6356:75;;6246:584;6474:30;;;:::i;:::-;652:3172:102;;;;;;6578:12:91;;;:::i;:::-;6604:24;;;;6246:584;-1:-1:-1;6600:188:91;;;-1:-1:-1;;;652:3172:102;;;;;;;;;-1:-1:-1;652:3172:102;;;-1:-1:-1;652:3172:102;;;;;;6798:25:91;652:3172:102;6246:584:91:o;6600:188::-;8167:38:61;;-1:-1:-1;;;;;652:3172:102;;-1:-1:-1;8167:38:61;:::i;:::-;6753:24:91;;;;;:::i;6604:::-;652:3172:102;;;;;;6614:14:91;;-1:-1:-1;6604:24:91;;;6356:75;-1:-1:-1;;;652:3172:102;;;;;;;;;;;;;;;;-1:-1:-1;652:3172:102;;;;-1:-1:-1;;;;;;;;;;;652:3172:102;;6356:75:91;;;6246:584;;;;;6360:12;;;652:3172:102;;;6360:24:91;;6356:75;;6246:584;6474:30;;;;;:::i;:::-;652:3172:102;;;;;;6578:12:91;;;;:::i;:::-;6604:24;;;;6246:584;-1:-1:-1;6600:188:91;;;-1:-1:-1;;;;;652:3172:102;;;;;;;6644:21:91;;;:29;:21;;:::i;6600:188::-;6753:24;;652:3172:102;;8167:38:61;;-1:-1:-1;;;;;652:3172:102;;;;;8167:38:61;:::i;:::-;6753:24:91;;;:::i;6604:::-;652:3172:102;;;;;;6614:14:91;;-1:-1:-1;6604:24:91;;;6356:75;-1:-1:-1;;;652:3172:102;;;;;;6360:12:91;652:3172:102;;;;;;;:::i;:::-;;;12178:17:27;;;652:3172:102;;;;;;;;6356:75:91;;;1303:160:46;652:3172:102;;-1:-1:-1;;;1412:43:46;;;;-1:-1:-1;;;;;652:3172:102;;;1412:43:46;;;652:3172:102;;;;;;;;;1412:43:46;;;652:3172:102;;;;-1:-1:-1;;;;;652:3172:102;;;;;;;;1412:43:46;652:3172:102;;;1412:43:46;:::i;12922:460:100:-;;13024:14;;:::i;:::-;13015:23;;;13011:75;;-1:-1:-1;652:3172:102;;;13100:20:100;652:3172:102;;;;;;;;13128:10:100;652:3172:102;;;;;;;;;;13096:93:100;;13208:32;13128:10;13208:32;;:::i;:::-;13255:11;;;13251:68;;-1:-1:-1;652:3172:102;;;13100:20:100;652:3172:102;;;;;;;;13128:10:100;652:3172:102;;;;;;;;;-1:-1:-1;;652:3172:102;13371:4:100;652:3172:102;;;12922:460:100:o;13251:68::-;652:3172:102;;-1:-1:-1;;;13289:19:100;;;;;13096:93;652:3172:102;;-1:-1:-1;;;13162:16:100;;;;;13011:75;652:3172:102;;-1:-1:-1;;;13061:14:100;;;;;10580:184:91;4803:13:101;652:3172:102;10303:8:61;;;:63;-1:-1:-1;10303:63:61;-1:-1:-1;;;;;652:3172:102;;10726:7:91;652:3172:102;;10736:12:91;652:3172:102;;;;;;10736:12:91;-1:-1:-1;652:3172:102;-1:-1:-1;;;;;;;;;;;652:3172:102;;10580:184:91;:::o;10726:31::-;;-1:-1:-1;10580:184:91;:::o;10303:63:61:-;12178:17:27;;;652:3172:102;;;;;4803:13:101;-1:-1:-1;14249:109:61;;;652:3172:102;;;10303:63:61;;10580:184:91;5173:12:101;652:3172:102;10303:8:61;;;:63;-1:-1:-1;10303:63:61;-1:-1:-1;;;;;652:3172:102;;10726:7:91;652:3172:102;;10736:12:91;652:3172:102;;;;;;10736:12:91;-1:-1:-1;652:3172:102;-1:-1:-1;;;;;;;;;;;652:3172:102;;10580:184:91;:::o;10303:63:61:-;12178:17:27;;;652:3172:102;;;;;5173:12:101;-1:-1:-1;14249:109:61;;;652:3172:102;;;10303:63:61;;10580:184:91;652:3172:102;;10303:8:61;;;:63;-1:-1:-1;10303:63:61;-1:-1:-1;;;;;652:3172:102;;10726:7:91;652:3172:102;;10736:12:91;:17;:12;;:17;:::i;:::-;652:3172:102;;;;;;10580:184:91;:::o;10303:63:61:-;12178:17:27;;652:3172:102;;;;;;;;14249:109:61;-1:-1:-1;14249:109:61;;-1:-1:-1;14249:109:61;;;652:3172:102;;;10303:63:61;;11224:487:27;;-1:-1:-1;;;;;652:3172:102;;;11389:19:27;11385:89;;652:3172:102;;11487:21:27;11483:90;;11582:20;:29;:20;;:::i;:29::-;652:3172:102;11224:487:27:o;1662:280:92:-;;;1884:1;652:3172:102;;;;;;;1884:1:92;652:3172:102;;;;;;;8188:25:58;;;:::i;6999:207:91:-;4622:13:101;652:3172:102;9594:15:61;-1:-1:-1;9619:18:61;9652:7;9658:1;9652:7;;9648:234;;6999:207:91;9906:53:61;;;;:::i;:::-;9977:8;;;:63;-1:-1:-1;9977:63:61;-1:-1:-1;;;;;652:3172:102;;7168:7:91;652:3172:102;;7178:17:91;652:3172:102;7178:17:91;;:::i;9977:63:61:-;9992:41;10025:7;9992:48;10025:7;;:::i;:::-;4622:13:101;14249:109:61;;-1:-1:-1;;;;;;;;;;;14249:109:61;14099:265;;9992:41;652:3172:102;;;;;9992:48:61;9977:63;;9648:234;9695:14;;;;;:::i;:::-;652:3172:102;;;;;;;9906:53:61;14249:109;4622:13:101;-1:-1:-1;14249:109:61;652:3172:102;14249:109:61;;-1:-1:-1;;;;;;;;;;;14249:109:61;652:3172:102;;;;;9727:48:61;9723:149;652:3172:102;;;9795:10:61;9723:149;9648:234;;9723:149;9850:7;;;;;;:::i;:::-;9723:149;9648:234;;6999:207:91;4994:12:101;652:3172:102;9594:15:61;-1:-1:-1;9619:18:61;9652:7;9658:1;9652:7;;9648:234;;6999:207:91;9906:53:61;;;;:::i;:::-;9977:8;;;:63;-1:-1:-1;9977:63:61;-1:-1:-1;;;;;652:3172:102;;7168:7:91;652:3172:102;;7178:17:91;652:3172:102;7178:17:91;;:::i;9977:63:61:-;9992:41;10025:7;9992:48;10025:7;;:::i;:::-;4994:12:101;14249:109:61;;-1:-1:-1;;;;;;;;;;;14249:109:61;14099:265;;9992:48;9977:63;;9648:234;9695:14;;;;;:::i;:::-;652:3172:102;;;;;;;9906:53:61;14249:109;4994:12:101;-1:-1:-1;14249:109:61;652:3172:102;14249:109:61;;-1:-1:-1;;;;;;;;;;;14249:109:61;652:3172:102;;;;;9727:48:61;9723:149;652:3172:102;;;9795:10:61;9723:149;9648:234;;9723:149;9850:7;;;;;;:::i;:::-;9723:149;9648:234;;6999:207:91;;652:3172:102;;9594:15:61;-1:-1:-1;9619:18:61;9652:7;9658:1;9652:7;;9648:234;;6999:207:91;9906:53:61;;;;;:::i;:::-;9977:8;;;:63;-1:-1:-1;9977:63:61;;-1:-1:-1;;;;;652:3172:102;;7168:7:91;652:3172:102;;;7178:12:91;;:17;:12;;:17;:::i;9977:63:61:-;9992:41;10025:7;9992:48;10025:7;;:::i;:::-;9992:41;14249:109;;;;;;14099:265;;9992:48;9977:63;;;9648:234;9695:14;;;;;:::i;:::-;652:3172:102;;;;;;;9906:53:61;14249:109;;-1:-1:-1;14249:109:61;652:3172:102;14249:109:61;;;-1:-1:-1;14249:109:61;;652:3172:102;;;;;9727:48:61;9723:149;652:3172:102;;;9795:10:61;9723:149;9648:234;;9723:149;9850:7;;;;;;:::i;:::-;9723:149;9648:234;;652:3172:102;;;;;;;:::i;:::-;-1:-1:-1;652:3172:102;;;;;;;:::o;11486:272:91:-;652:3172:102;;:::i;:::-;;;;:::i;:::-;;4622:13:101;652:3172:102;;;;;;;;4622:13:101;-1:-1:-1;652:3172:102;-1:-1:-1;;;;;;;;;;;652:3172:102;;:::i;:::-;;;;;;;;;;;;11731:17:91;;652:3172:102;;11718:12:91;652:3172:102;;;;;;11718:12:91;-1:-1:-1;652:3172:102;-1:-1:-1;;;;;;;;;;;652:3172:102;;;;;;;;:::i;:::-;;;;11672:79:91;;652:3172:102;11486:272:91;:::o;:::-;652:3172:102;;:::i;:::-;;;;:::i;:::-;;4994:12:101;652:3172:102;;;;;;;;4994:12:101;-1:-1:-1;652:3172:102;-1:-1:-1;;;;;;;;;;;652:3172:102;;:::i;:::-;;;;;;;;;;;;11731:17:91;;652:3172:102;;11718:12:91;652:3172:102;;;;;;11718:12:91;-1:-1:-1;652:3172:102;-1:-1:-1;;;;;;;;;;;652:3172:102;;;;;;;;:::i;11486:272:91:-;;652:3172:102;11308:22:61;11718:31:91;11486:272;652:3172:102;;:::i;:::-;;;;:::i;:::-;;11308:22:61;;:::i;:::-;652:3172:102;;:::i;:::-;;11718:12:91;652:3172:102;;;;;11731:17:91;652:3172:102;;;;;11731:17:91;;652:3172:102;;11718:12:91;;:31;:::i;:::-;652:3172:102;;;;;;;;;:::i;:::-;;;;;;11731:17:91;11672:79;;652:3172:102;11486:272:91;:::o;1702:188:46:-;652:3172:102;;-1:-1:-1;;;1829:53:46;;;;-1:-1:-1;;;;;652:3172:102;;;1829:53:46;;;652:3172:102;;;;;;;;;;;;;;;;;1829:53:46;;;652:3172:102;;;;;;;-1:-1:-1;;;;;652:3172:102;;;;;1829:53:46;652:3172:102;;;1829:53:46;:::i;7084:141:26:-;652:3172:102;-1:-1:-1;;;;;;;;;;;652:3172:102;;;;7150:18:26;7146:73;;7084:141::o;7146:73::-;652:3172:102;;-1:-1:-1;;;7191:17:26;;;;;652:3172:102;;;;;;;;;;;;:::i;13388:2406:100:-;13510:30;13388:2406;13510:30;652:3172:102;;;13510:30:100;;;;;;:::i;:::-;652:3172:102;;-1:-1:-1;;;;;652:3172:102;;;;13555:31:100;13551:88;;13653:20;;;;652:3172:102;;;;;;;;;;13653:25:100;13649:85;;13748:29;;;652:3172:102;;13748:29:100;;652:3172:102;13748:43:100;;-1:-1:-1;;;;;652:3172:102;;;13748:43:100;;13744:943;;13388:2406;652:3172:102;;;15647:32:100;652:3172:102;14817:36:100;652:3172:102;;;14697:30:100;652:3172:102;;;;;;;;;;;;13555:17:100;652:3172:102;;-1:-1:-1;;;;;;652:3172:102;;;;;;-1:-1:-1;;;;;652:3172:102;;;;;;;;14697:30:100;13510;14747:13;;652:3172:102;;;;-1:-1:-1;;;;;;652:3172:102;-1:-1:-1;;;;;652:3172:102;;;;;;;;;14771:36:100;819:34:63;837:15;819:34;:::i;:::-;14738:22:100;652:3172:102;;-1:-1:-1;;;;652:3172:102;;;;;;-1:-1:-1;;;652:3172:102;;;;;;;;;14738:22:100;652:3172:102;;-1:-1:-1;;;;;652:3172:102;;;;;;-1:-1:-1;;;;;;652:3172:102;;;;;;;;14817:36:100;14864:42;652:3172:102;14883:23:100;;;652:3172:102;;;;;;;;;13555:17:100;652:3172:102;;;;;;;13555:17:100;652:3172:102;;14864:42:100;14917:38;652:3172:102;14934:21:100;;;652:3172:102;;;;;;;13555:17:100;652:3172:102;;;;;;;;;;;;13555:17:100;652:3172:102;;14917:38:100;14965:34;14980:19;;;652:3172:102;14965:34:100;652:3172:102;;14965:34:100;652:3172:102;-1:-1:-1;;;;;652:3172:102;;;;;;;15010:135:100;;13388:2406;-1:-1:-1;15158:36:100;;;652:3172:102;-1:-1:-1;;;;;652:3172:102;;;;15154:157:100;;13388:2406;-1:-1:-1;15324:35:100;;;652:3172:102;-1:-1:-1;;;;;652:3172:102;;;;15320:153:100;;13388:2406;-1:-1:-1;15486:34:100;;;652:3172:102;-1:-1:-1;;;;;652:3172:102;;;;15482:152:100;;13388:2406;-1:-1:-1;15647:32:100;652:3172:102;-1:-1:-1;;;;;652:3172:102;;;;;;;15643:145:100;;13388:2406;:::o;15643:145::-;15709:68;;;:::i;:::-;;13388:2406::o;15482:152::-;15550:73;;;:::i;:::-;;15482:152;;;15320:153;15389:73;;;:::i;:::-;;15320:153;;;15154:157;15224:76;;;:::i;:::-;;15154:157;;;15010:135;15073:61;;;:::i;:::-;;15010:135;;;13744:943;13811:36;;;652:3172:102;13811:50:100;;-1:-1:-1;;;;;652:3172:102;;;13811:50:100;;13807:405;;13744:943;14230:34;;;652:3172:102;14230:48:100;;-1:-1:-1;;;;;652:3172:102;;;14230:48:100;13744:943;14226:451;14302:21;;;652:3172:102;;14302:21:100;;14351:19;;;652:3172:102;14351:24:100;:74;;;14298:365;14347:150;;14298:365;;652:3172:102;15647:32:100;14298:365;14817:36;652:3172:102;;14298:365:100;;14226:451;;;;;;;13744:943;;14347:150;652:3172:102;-1:-1:-1;;;14460:14:100;;;;;14351:74;-1:-1:-1;14379:32:100;;;652:3172:102;14379:46:100;;-1:-1:-1;;;;;652:3172:102;;;14379:46:100;;14351:74;;14298:365;14525:19;;;652:3172:102;14525:24:100;;;:74;;;14298:365;14521:142;;14298:365;;652:3172:102;15647:32:100;14298:365;14817:36;652:3172:102;;14298:365:100;;;14525:74;-1:-1:-1;14553:32:100;;;652:3172:102;14553:46:100;;-1:-1:-1;;;;;652:3172:102;;;14553:46:100;;;14525:74;;13807:405;13885:23;;;652:3172:102;;13885:23:100;;13936:35;;;652:3172:102;13936:49:100;;-1:-1:-1;;;;;652:3172:102;;;13936:49:100;13807:405;13932:125;652:3172:102;-1:-1:-1;;;14020:14:100;;;;;13881:317;14085:35;;;652:3172:102;14085:49:100;;-1:-1:-1;;;;;652:3172:102;;;14085:49:100;14081:117;13807:405;14081:117;652:3172:102;-1:-1:-1;;;14165:14:100;;;;;13649:85;652:3172:102;;-1:-1:-1;;;13701:22:100;;;;;13551:88;652:3172:102;;-1:-1:-1;;;13609:19:100;;;;;6893:76:26;;;;;:::i;:::-;;;:::i;:::-;652:3172:102;;-1:-1:-1;;;;;652:3172:102;;;;-1:-1:-1;;;;;;;;;;;652:3172:102;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;12178:17:27;;;652:3172:102;;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;652:3172:102;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;652:3172:102;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;12178:17:27;;652:3172:102;;2895:7:27;652:3172:102;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::o;10552:388:61:-;5173:12:101;652:3172:102;10728:8:61;;;10752:20;10690:17;10752:20;10690:17;10752:20;10690:17;10752:20;:::o;10724:210::-;12178:17:27;;;652:3172:102;;;;;14249:109:61;652:3172:102;14249:109:61;5173:12:101;10690:17:61;14249:109;;652:3172:102;:::i;:::-;;;;;;;14249:109:61;652:3172:102;;;;;10911:11:61;;652:3172:102;;10886:37:61;10870:1;10886:37;;;:::o;10552:388::-;4803:13:101;652:3172:102;10728:8:61;;;10752:20;10690:17;10752:20;10690:17;10752:20;10690:17;10752:20;:::o;10724:210::-;12178:17:27;;;652:3172:102;;;;;14249:109:61;652:3172:102;14249:109:61;4803:13:101;10690:17:61;14249:109;;652:3172:102;:::i;10552:388:61:-;652:3172:102;;10728:8:61;;;10752:20;;10690:17;10752:20;10690:17;10752:20;10690:17;10752:20;:::o;10724:210::-;12178:17:27;;652:3172:102;;;;;;;;;14249:109:61;10690:17;14249:109;;10690:17;14249:109;;;652:3172:102;:::i;4059:629:46:-;2847:1:47;4059:629:46;3510:55:47;4059:629:46;652:3172:102;;;;;;3462:31:47;;;;;;;;;;;;:::i;:::-;3510:55;;;:::i;:::-;652:3172:102;;4551:22:46;;;;:57;;;;4059:629;4547:135;;;;4059:629;:::o;4547:135::-;652:3172:102;;;;4631:40:46;;;;;;;;;652:3172:102;4631:40:46;4551:57;4578:30;;;3462:31:47;4578:30:46;;;;;;;;:::i;:::-;4577:31;4551:57;;;;1258:280:92;;;652:3172:102;;;;;;;;;;;;;;;;8188:25:58;;;;;:::i;:::-;8257;;;;;;8223:101;;1258:280:92;:::o;8223:101:58:-;652:3172:102;;;;;;;;1258:280:92;:::o;652:3172:102:-;;;;;;;;:::o;:::-;-1:-1:-1;;;;;;;;;;;;652:3172:102;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;-1:-1:-1;652:3172:102;;;;;;;;;-1:-1:-1;652:3172:102;;;;;;;;;;;;:::o;:::-;-1:-1:-1;;;;;;;;;;;;652:3172:102;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;-1:-1:-1;652:3172:102;;;;;;;;;-1:-1:-1;652:3172:102;;;;;;;;-1:-1:-1;;;;;652:3172:102;;;;-1:-1:-1;;;;;;;;;;;652:3172:102;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;12178:17:27;;;652:3172:102;;;;;;;;;;;;:::o;:::-;;;;;;;;-1:-1:-1;;;;;;;;;;;652:3172:102;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;12178:17:27;;652:3172:102;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5173:12:101;652:3172:102;;-1:-1:-1;;;652:3172:102;;;;;;;;;5173:12:101;652:3172:102;;;;;;5173:12:101;-1:-1:-1;652:3172:102;;;;;;;;;;-1:-1:-1;;652:3172:102;;;;;;;-1:-1:-1;;;;;;;;;;;652:3172:102;;;;:::o;:::-;4803:13:101;652:3172:102;;-1:-1:-1;;;652:3172:102;;;;;;;;;4803:13:101;652:3172:102;;;;;;4803:13:101;-1:-1:-1;652:3172:102;;;;;;;;;;-1:-1:-1;;652:3172:102;;;;;;;-1:-1:-1;;;;;;;;;;;652:3172:102;;;;:::o;:::-;;;-1:-1:-1;;;652:3172:102;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;652:3172:102;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;11513:870:61;5173:12:101;652:3172:102;11513:870:61;;;652:3172:102;11672:7:61;;;;652:3172:102;11775:28:61;11795:7;;;:::i;11775:28::-;652:3172:102;:::i;:::-;;;;;;;;;;-1:-1:-1;;11873:91:61;;652:3172:102;12233:11:61;652:3172:102;;;12027:16:61;652:3172:102;;;;;;;12027:16:61;;;;12083:7;12063:28;12083:7;12063:43;12083:7;;:::i;12063:28::-;652:3172:102;;;;;;;;;;;;;;;;;12063:43:61;12233:11;652:3172:102;-1:-1:-1;;;;;652:3172:102;;;12023:189:61;652:3172:102;;12145:52:61;652:3172:102;;12155:41:61;652:3172:102;;:::i;:::-;;;;;;;;12155:41:61;-1:-1:-1;;;;;652:3172:102;;12155:41:61;;;652:3172:102;12145:52:61;:::i;:::-;12023:189;;11873:91;652:3172:102;;-1:-1:-1;;;11919:30:61;;;;;11668:709;12283:52;652:3172:102;;12293:41:61;652:3172:102;;:::i;12293:41:61:-;-1:-1:-1;;;;;652:3172:102;;12293:41:61;;;652:3172:102;12145:52:61;:::i;12283:::-;11678:1;12349:17;;:::o;11513:870::-;4803:13:101;652:3172:102;11513:870:61;;;652:3172:102;11672:7:61;;;;652:3172:102;11775:28:61;11795:7;;;:::i;652:3172:102:-;;;;;;;;;;-1:-1:-1;;11873:91:61;;652:3172:102;12233:11:61;652:3172:102;;;12027:16:61;652:3172:102;;;;;;;12027:16:61;;;;12083:7;12063:28;12083:7;12063:43;12083:7;;:::i;12023:189::-;652:3172:102;;12145:52:61;652:3172:102;;12155:41:61;652:3172:102;;:::i;12155:41:61:-;-1:-1:-1;;;;;652:3172:102;;12155:41:61;;;652:3172:102;12145:52:61;:::i;11668:709::-;12283:52;652:3172:102;;12293:41:61;652:3172:102;;:::i;12293:41:61:-;-1:-1:-1;;;;;652:3172:102;;12293:41:61;;;652:3172:102;12145:52:61;:::i;11513:870::-;652:3172:102;;11513:870:61;;;652:3172:102;11513:870:61;11672:7;;;;652:3172:102;11775:28:61;11795:7;;;:::i;652:3172:102:-;;;;;;;;;;;;;;;;11877:15:61;-1:-1:-1;11873:91:61;;652:3172:102;;12233:11:61;652:3172:102;;;12027:16:61;652:3172:102;;;;;;;12027:16:61;;;;12083:7;12063:43;12083:7;;12063:28;12083:7;;:::i;:::-;12063:28;14249:109;;;;;;14099:265;;12023:189;652:3172:102;;;12145:52:61;652:3172:102;12155:41:61;652:3172:102;;:::i;:::-;;;;;;;;12155:41:61;-1:-1:-1;;;;;652:3172:102;;12155:41:61;;;652:3172:102;12145:52:61;:::i;11668:709::-;12283:52;652:3172:102;;12293:41:61;652:3172:102;;:::i;12293:41:61:-;-1:-1:-1;;;;;652:3172:102;;12293:41:61;;;652:3172:102;12145:52:61;:::i;8587:1642:58:-;8658:6;;8654:45;;9401:7;10201:10;10142:26;10093;10044;9995;9946;9897;9848;652:3172:102;10189:23:58;9401:7;8663:1;652:3172:102;;;;10826:16:58;10822:99;;8587:1642;652:3172:102;;;;10938:15:58;10934:96;;8587:1642;652:3172:102;;;;11047:15:58;11043:96;;8587:1642;652:3172:102;;;;11156:15:58;11152:96;;8587:1642;652:3172:102;;;;11265:14:58;11261:93;;8587:1642;652:3172:102;;;;11371:14:58;11367:93;;8587:1642;652:3172:102;;;;11477:14:58;11473:93;;8587:1642;652:3172:102;;;11579:64:58;;8587:1642;652:3172:102;;;9858:10:58;;;;:::i;:::-;652:3172:102;;;;;9848:26:58;9907:10;;;;:::i;9897:26::-;9956:10;;;;:::i;9946:26::-;10005:10;;;;:::i;9995:26::-;10054:10;;;;:::i;10044:26::-;10103:10;;;;:::i;10093:26::-;10152:10;;;;:::i;10142:26::-;10201:10;;;:::i;:::-;10189:23;;:::i;11579:64::-;652:3172:102;;11579:64:58;;11473:93;652:3172:102;11511:11:58;;652:3172:102;;11473:93:58;;;;11367;652:3172:102;11405:11:58;;652:3172:102;;11367:93:58;;;;11261;652:3172:102;11299:11:58;;652:3172:102;;11261:93:58;;;;11152:96;652:3172:102;11191:12:58;;652:3172:102;;11152:96:58;;;;11043;652:3172:102;11082:12:58;;652:3172:102;;11043:96:58;;;;10934;652:3172:102;10973:12:58;;652:3172:102;;10934:96:58;;;;10822:99;10862:13;;;652:3172:102;10822:99:58;;;;12736:433:61;;12919:10;;;;;;13151:11;;12736:433;:::o;12912:230::-;2900:5:58;;;;;652:3172:102;;2910:5:58;;;652:3172:102;;;;;;;;;4622:13:101;-1:-1:-1;14249:109:61;652:3172:102;14249:109:61;;-1:-1:-1;;;;;;;;;;;14249:109:61;652:3172:102;;;;;-1:-1:-1;12996:136:61;652:3172:102;;;13055:10:61;;12996:136;;12912:230;;;12996:136;652:3172:102;;;;;;;;;;;12996:136:61;;;12736:433;;12919:10;;;;;;13151:11;;12736:433;:::o;12912:230::-;2900:5:58;;;;;652:3172:102;;2910:5:58;;;652:3172:102;;;;;;;;;4994:12:101;-1:-1:-1;14249:109:61;652:3172:102;14249:109:61;;-1:-1:-1;;;;;;;;;;;14249:109:61;652:3172:102;;;;;-1:-1:-1;12996:136:61;652:3172:102;;;13055:10:61;;12996:136;;12912:230;;;12996:136;652:3172:102;;;;;;;;;;;12996:136:61;;;12736:433;;;12919:10;;;;;;13151:11;;;12736:433;:::o;12912:230::-;2900:5:58;;;;;;652:3172:102;;2910:5:58;;;652:3172:102;;;;;;;;;14249:109:61;-1:-1:-1;14249:109:61;652:3172:102;14249:109:61;;;-1:-1:-1;14249:109:61;;652:3172:102;;;;;-1:-1:-1;12996:136:61;652:3172:102;;;13055:10:61;;12996:136;;12912:230;;;;12996:136;652:3172:102;;;;;;;;;;;12996:136:61;;;4625:582:47;;4797:8;;-1:-1:-1;652:3172:102;;5874:21:47;:17;;6046:142;;;;;;5870:383;652:3172:102;;-1:-1:-1;;;6225:17:47;;;;;4793:408;652:3172:102;;5045:22:47;:49;;;4793:408;5041:119;;5173:17;;:::o;5041:119::-;652:3172:102;;-1:-1:-1;;;5121:24:47;;-1:-1:-1;;;;;652:3172:102;;;5121:24:47;;;652:3172:102;;;5121:24:47;5045:49;5071:18;;;:23;5045:49;","linkReferences":{},"immutableReferences":{"64787":[{"start":2715,"length":32},{"start":3267,"length":32}],"75427":[{"start":5506,"length":32},{"start":6953,"length":32}],"75430":[{"start":7314,"length":32},{"start":8687,"length":32}]}},"methodIdentifiers":{"DEFAULT_ADMIN_ROLE()":"a217fddf","DELEGATOR_FACTORY()":"6da3e06d","DEPOSITOR_WHITELIST_ROLE()":"1b66c9e1","DEPOSIT_LIMIT_SET_ROLE()":"a21a1df9","DEPOSIT_WHITELIST_SET_ROLE()":"db388715","FACTORY()":"2dd31000","IS_DEPOSIT_LIMIT_SET_ROLE()":"1415519b","SLASHER_FACTORY()":"87df0788","activeBalanceOf(address)":"59f769a9","activeBalanceOfAt(address,uint48,bytes)":"efb559d6","activeShares()":"bfefcd7b","activeSharesAt(uint48,bytes)":"50f22068","activeSharesOf(address)":"9d66201b","activeSharesOfAt(address,uint48,bytes)":"2d73c69c","activeStake()":"bd49c35f","activeStakeAt(uint48,bytes)":"810da75d","allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","burner()":"27810b6e","claim(address,uint256)":"aad3ec96","claimBatch(address,uint256[])":"7c04c80a","collateral()":"d8dfeb45","currentEpoch()":"76671808","currentEpochStart()":"61a8c8c4","decimals()":"313ce567","delegator()":"ce9b7930","deposit(address,uint256)":"47e7ef24","depositLimit()":"ecf70858","depositWhitelist()":"48d3b775","epochAt(uint48)":"7953b33b","epochDuration()":"4ff0876a","epochDurationInit()":"46361671","getRoleAdmin(bytes32)":"248a9ca3","grantRole(bytes32,address)":"2f2ff15d","hasRole(bytes32,address)":"91d14854","initialize(uint64,address,bytes)":"57ec83cc","isDelegatorInitialized()":"50861adc","isDepositLimit()":"a1b12202","isDepositorWhitelisted(address)":"794b15b7","isInitialized()":"392e53cd","isSlasherInitialized()":"6ec1e3f8","isWithdrawalsClaimed(uint256,address)":"a5d03223","migrate(uint64,bytes)":"2abe3048","name()":"06fdde03","nextEpochStart()":"73790ab3","onSlash(uint256,uint48)":"7278e31c","owner()":"8da5cb5b","previousEpochStart()":"281f5752","redeem(address,uint256)":"1e9a6950","renounceOwnership()":"715018a6","renounceRole(bytes32,address)":"36568abe","revokeRole(bytes32,address)":"d547741f","setDelegator(address)":"83cd9cc3","setDepositLimit(uint256)":"bdc8144b","setDepositWhitelist(bool)":"4105a7dd","setDepositorWhitelistStatus(address,bool)":"a2861466","setIsDepositLimit(bool)":"5346e34f","setSlasher(address)":"aabc2496","slashableBalanceOf(address)":"c31e8dd7","slasher()":"b1344271","staticDelegateCall(address,bytes)":"9f86fd85","supportsInterface(bytes4)":"01ffc9a7","symbol()":"95d89b41","totalStake()":"8b0e9f3f","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd","transferOwnership(address)":"f2fde38b","version()":"54fd4d50","withdraw(address,uint256)":"f3fef3a3","withdrawalShares(uint256)":"afba70ad","withdrawalSharesOf(uint256,address)":"a3b54172","withdrawals(uint256)":"5cc07076","withdrawalsOf(uint256,address)":"f5e7ee0f"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegatorFactory\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"slasherFactory\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"vaultFactory\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"AccessControlBadConfirmation\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"neededRole\",\"type\":\"bytes32\"}],\"name\":\"AccessControlUnauthorizedAccount\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"AddressEmptyCode\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"AddressInsufficientBalance\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AlreadyClaimed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AlreadyInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AlreadySet\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CheckpointUnorderedInsertion\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"DelegatorAlreadyInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"DepositLimitReached\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"allowance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientAllowance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSpender\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedInnerCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientClaim\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientDeposit\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientRedemption\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientWithdrawal\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidAccount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidCaptureEpoch\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidClaimer\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidCollateral\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidDelegator\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidEpoch\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidEpochDuration\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidLengthEpochs\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidOnBehalfOf\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidRecipient\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidSlasher\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidTimestamp\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MathOverflowedMulDiv\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MissingRoles\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NoPreviousEpoch\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotDelegator\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotFactory\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotSlasher\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotWhitelistedDepositor\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ReentrancyGuardReentrantCall\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"bits\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"SafeCastOverflowedUintDowncast\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"SafeERC20FailedOperation\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SlasherAlreadyInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TooMuchRedeem\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TooMuchWithdraw\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"claimer\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"epoch\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Claim\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"claimer\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"epochs\",\"type\":\"uint256[]\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"ClaimBatch\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"depositor\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"onBehalfOf\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"}],\"name\":\"Deposit\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint48\",\"name\":\"captureTimestamp\",\"type\":\"uint48\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"slashedAmount\",\"type\":\"uint256\"}],\"name\":\"OnSlash\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"previousAdminRole\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"newAdminRole\",\"type\":\"bytes32\"}],\"name\":\"RoleAdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleRevoked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"}],\"name\":\"SetDelegator\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"limit\",\"type\":\"uint256\"}],\"name\":\"SetDepositLimit\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"status\",\"type\":\"bool\"}],\"name\":\"SetDepositWhitelist\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"status\",\"type\":\"bool\"}],\"name\":\"SetDepositorWhitelistStatus\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"status\",\"type\":\"bool\"}],\"name\":\"SetIsDepositLimit\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"slasher\",\"type\":\"address\"}],\"name\":\"SetSlasher\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"withdrawer\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"claimer\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"burnedShares\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"mintedShares\",\"type\":\"uint256\"}],\"name\":\"Withdraw\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DEFAULT_ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"DELEGATOR_FACTORY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"DEPOSITOR_WHITELIST_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"DEPOSIT_LIMIT_SET_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"DEPOSIT_WHITELIST_SET_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"FACTORY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"IS_DEPOSIT_LIMIT_SET_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"SLASHER_FACTORY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"activeBalanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hints\",\"type\":\"bytes\"}],\"name\":\"activeBalanceOfAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"activeShares\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hint\",\"type\":\"bytes\"}],\"name\":\"activeSharesAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"activeSharesOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hint\",\"type\":\"bytes\"}],\"name\":\"activeSharesOfAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"activeStake\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hint\",\"type\":\"bytes\"}],\"name\":\"activeStakeAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"burner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"epoch\",\"type\":\"uint256\"}],\"name\":\"claim\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256[]\",\"name\":\"epochs\",\"type\":\"uint256[]\"}],\"name\":\"claimBatch\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"collateral\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"currentEpoch\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"currentEpochStart\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"delegator\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"onBehalfOf\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"deposit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"depositedAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"mintedShares\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"depositLimit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"depositWhitelist\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"}],\"name\":\"epochAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"epochDuration\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"epochDurationInit\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleAdmin\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"grantRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"initialVersion\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"owner_\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isDelegatorInitialized\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isDepositLimit\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"isDepositorWhitelisted\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"value\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isInitialized\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isSlasherInitialized\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"epoch\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"isWithdrawalsClaimed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"value\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"newVersion\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"migrate\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"nextEpochStart\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint48\",\"name\":\"captureTimestamp\",\"type\":\"uint48\"}],\"name\":\"onSlash\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"slashedAmount\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"previousEpochStart\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"claimer\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"}],\"name\":\"redeem\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"withdrawnAssets\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"mintedShares\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"callerConfirmation\",\"type\":\"address\"}],\"name\":\"renounceRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegator_\",\"type\":\"address\"}],\"name\":\"setDelegator\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"limit\",\"type\":\"uint256\"}],\"name\":\"setDepositLimit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"status\",\"type\":\"bool\"}],\"name\":\"setDepositWhitelist\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"status\",\"type\":\"bool\"}],\"name\":\"setDepositorWhitelistStatus\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"status\",\"type\":\"bool\"}],\"name\":\"setIsDepositLimit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"slasher_\",\"type\":\"address\"}],\"name\":\"setSlasher\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"slashableBalanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"slasher\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"staticDelegateCall\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalStake\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"version\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"claimer\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"withdraw\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"burnedShares\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"mintedShares\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"epoch\",\"type\":\"uint256\"}],\"name\":\"withdrawalShares\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"epoch\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"withdrawalSharesOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"epoch\",\"type\":\"uint256\"}],\"name\":\"withdrawals\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"epoch\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"withdrawalsOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"AccessControlBadConfirmation()\":[{\"details\":\"The caller of a function is not the expected one. NOTE: Don't confuse with {AccessControlUnauthorizedAccount}.\"}],\"AccessControlUnauthorizedAccount(address,bytes32)\":[{\"details\":\"The `account` is missing a role.\"}],\"AddressEmptyCode(address)\":[{\"details\":\"There's no code at `target` (it is not a contract).\"}],\"AddressInsufficientBalance(address)\":[{\"details\":\"The ETH balance of the account is not enough to perform the operation.\"}],\"CheckpointUnorderedInsertion()\":[{\"details\":\"A value was attempted to be inserted on a past checkpoint.\"}],\"ERC20InsufficientAllowance(address,uint256,uint256)\":[{\"details\":\"Indicates a failure with the `spender`\\u2019s `allowance`. Used in transfers.\",\"params\":{\"allowance\":\"Amount of tokens a `spender` is allowed to operate with.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"spender\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC20InsufficientBalance(address,uint256,uint256)\":[{\"details\":\"Indicates an error related to the current `balance` of a `sender`. Used in transfers.\",\"params\":{\"balance\":\"Current balance for the interacting account.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC20InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC20InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC20InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC20InvalidSpender(address)\":[{\"details\":\"Indicates a failure with the `spender` to be approved. Used in approvals.\",\"params\":{\"spender\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"FailedInnerCall()\":[{\"details\":\"A call to an address target failed. The target may have reverted.\"}],\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"MathOverflowedMulDiv()\":[{\"details\":\"Muldiv operation overflow.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}],\"ReentrancyGuardReentrantCall()\":[{\"details\":\"Unauthorized reentrant call.\"}],\"SafeCastOverflowedUintDowncast(uint8,uint256)\":[{\"details\":\"Value doesn't fit in an uint of `bits` size.\"}],\"SafeERC20FailedOperation(address)\":[{\"details\":\"An operation with an ERC20 token failed.\"}]},\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when the allowance of a `spender` for an `owner` is set by a call to {approve}. `value` is the new allowance.\"},\"Claim(address,address,uint256,uint256)\":{\"params\":{\"amount\":\"amount of the collateral claimed\",\"claimer\":\"account that claimed\",\"epoch\":\"epoch the collateral was claimed for\",\"recipient\":\"account that received the collateral\"}},\"ClaimBatch(address,address,uint256[],uint256)\":{\"params\":{\"amount\":\"amount of the collateral claimed\",\"claimer\":\"account that claimed\",\"epochs\":\"epochs the collateral was claimed for\",\"recipient\":\"account that received the collateral\"}},\"Deposit(address,address,uint256,uint256)\":{\"params\":{\"amount\":\"amount of the collateral deposited\",\"depositor\":\"account that made the deposit\",\"onBehalfOf\":\"account the deposit was made on behalf of\",\"shares\":\"amount of the active shares minted\"}},\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"OnSlash(uint256,uint48,uint256)\":{\"params\":{\"amount\":\"amount of the collateral to slash\",\"captureTimestamp\":\"time point when the stake was captured\",\"slashedAmount\":\"real amount of the collateral slashed\"}},\"RoleAdminChanged(bytes32,bytes32,bytes32)\":{\"details\":\"Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole` `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite {RoleAdminChanged} not being emitted signaling this.\"},\"RoleGranted(bytes32,address,address)\":{\"details\":\"Emitted when `account` is granted `role`. `sender` is the account that originated the contract call, an admin role bearer except when using {AccessControl-_setupRole}.\"},\"RoleRevoked(bytes32,address,address)\":{\"details\":\"Emitted when `account` is revoked `role`. `sender` is the account that originated the contract call: - if using `revokeRole`, it is the admin role bearer - if using `renounceRole`, it is the role bearer (i.e. `account`)\"},\"SetDelegator(address)\":{\"details\":\"Can be set only once.\",\"params\":{\"delegator\":\"vault's delegator to delegate the stake to networks and operators\"}},\"SetDepositLimit(uint256)\":{\"params\":{\"limit\":\"deposit limit (maximum amount of the collateral that can be in the vault simultaneously)\"}},\"SetDepositWhitelist(bool)\":{\"params\":{\"status\":\"if enabled deposit whitelist\"}},\"SetDepositorWhitelistStatus(address,bool)\":{\"params\":{\"account\":\"account for which the whitelist status is set\",\"status\":\"if whitelisted the account\"}},\"SetIsDepositLimit(bool)\":{\"params\":{\"status\":\"if enabled deposit limit\"}},\"SetSlasher(address)\":{\"details\":\"Can be set only once.\",\"params\":{\"slasher\":\"vault's slasher to provide a slashing mechanism to networks\"}},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `value` tokens are moved from one account (`from`) to another (`to`). Note that `value` may be zero.\"},\"Withdraw(address,address,uint256,uint256,uint256)\":{\"params\":{\"amount\":\"amount of the collateral withdrawn\",\"burnedShares\":\"amount of the active shares burned\",\"claimer\":\"account that needs to claim the withdrawal\",\"mintedShares\":\"amount of the epoch withdrawal shares minted\",\"withdrawer\":\"account that made the withdrawal\"}}},\"kind\":\"dev\",\"methods\":{\"activeBalanceOf(address)\":{\"params\":{\"account\":\"account to get the active balance for\"},\"returns\":{\"_0\":\"active balance for the account\"}},\"activeBalanceOfAt(address,uint48,bytes)\":{\"params\":{\"account\":\"account to get the active balance for\",\"hints\":\"hints for checkpoints' indexes\",\"timestamp\":\"time point to get the active balance for the account at\"},\"returns\":{\"_0\":\"active balance for the account at the timestamp\"}},\"activeShares()\":{\"returns\":{\"_0\":\"total number of active shares\"}},\"activeSharesAt(uint48,bytes)\":{\"params\":{\"hint\":\"hint for the checkpoint index\",\"timestamp\":\"time point to get the total number of active shares at\"},\"returns\":{\"_0\":\"total number of active shares at the timestamp\"}},\"activeSharesOf(address)\":{\"params\":{\"account\":\"account to get the number of active shares for\"},\"returns\":{\"_0\":\"number of active shares for the account\"}},\"activeSharesOfAt(address,uint48,bytes)\":{\"params\":{\"account\":\"account to get the number of active shares for\",\"hint\":\"hint for the checkpoint index\",\"timestamp\":\"time point to get the number of active shares for the account at\"},\"returns\":{\"_0\":\"number of active shares for the account at the timestamp\"}},\"activeStake()\":{\"returns\":{\"_0\":\"total amount of active stake\"}},\"activeStakeAt(uint48,bytes)\":{\"params\":{\"hint\":\"hint for the checkpoint index\",\"timestamp\":\"time point to get the total active stake at\"},\"returns\":{\"_0\":\"total amount of active stake at the timestamp\"}},\"allowance(address,address)\":{\"details\":\"See {IERC20-allowance}.\"},\"approve(address,uint256)\":{\"details\":\"See {IERC20-approve}. NOTE: If `value` is the maximum `uint256`, the allowance is not updated on `transferFrom`. This is semantically equivalent to an infinite approval. Requirements: - `spender` cannot be the zero address.\"},\"balanceOf(address)\":{\"details\":\"See {IERC20-balanceOf}.\"},\"claim(address,uint256)\":{\"params\":{\"epoch\":\"epoch to claim the collateral for\",\"recipient\":\"account that receives the collateral\"},\"returns\":{\"amount\":\"amount of the collateral claimed\"}},\"claimBatch(address,uint256[])\":{\"params\":{\"epochs\":\"epochs to claim the collateral for\",\"recipient\":\"account that receives the collateral\"},\"returns\":{\"amount\":\"amount of the collateral claimed\"}},\"currentEpoch()\":{\"returns\":{\"_0\":\"current epoch\"}},\"currentEpochStart()\":{\"returns\":{\"_0\":\"start of the current epoch\"}},\"decimals()\":{\"details\":\"Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5.05` (`505 / 10 ** 2`). Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei. This is the default value returned by this function, unless it's overridden. NOTE: This information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including {IERC20-balanceOf} and {IERC20-transfer}.\"},\"deposit(address,uint256)\":{\"params\":{\"amount\":\"amount of the collateral to deposit\",\"onBehalfOf\":\"account the deposit is made on behalf of\"},\"returns\":{\"depositedAmount\":\"real amount of the collateral deposited\",\"mintedShares\":\"amount of the active shares minted\"}},\"epochAt(uint48)\":{\"details\":\"Reverts if the timestamp is less than the start of the epoch 0.\",\"params\":{\"timestamp\":\"time point to get the epoch at\"},\"returns\":{\"_0\":\"epoch at the timestamp\"}},\"getRoleAdmin(bytes32)\":{\"details\":\"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}.\"},\"grantRole(bytes32,address)\":{\"details\":\"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event.\"},\"hasRole(bytes32,address)\":{\"details\":\"Returns `true` if `account` has been granted `role`.\"},\"initialize(uint64,address,bytes)\":{\"params\":{\"data\":\"some data to use\",\"initialVersion\":\"initial version of the entity\",\"owner\":\"initial owner of the entity\"}},\"isInitialized()\":{\"returns\":{\"_0\":\"if the vault is fully initialized\"}},\"migrate(uint64,bytes)\":{\"params\":{\"data\":\"some data to use\",\"newVersion\":\"new version of the entity\"}},\"name()\":{\"details\":\"Returns the name of the token.\"},\"nextEpochStart()\":{\"returns\":{\"_0\":\"start of the next epoch\"}},\"onSlash(uint256,uint48)\":{\"details\":\"Only the slasher can call this function.\",\"params\":{\"amount\":\"amount to slash\",\"captureTimestamp\":\"time point when the stake was captured\"},\"returns\":{\"slashedAmount\":\"real amount of the collateral slashed\"}},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"previousEpochStart()\":{\"details\":\"Reverts if the current epoch is 0.\",\"returns\":{\"_0\":\"start of the previous epoch\"}},\"redeem(address,uint256)\":{\"params\":{\"claimer\":\"account that needs to claim the withdrawal\",\"shares\":\"amount of the active shares to redeem\"},\"returns\":{\"mintedShares\":\"amount of the epoch withdrawal shares minted\",\"withdrawnAssets\":\"amount of the collateral withdrawn\"}},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"renounceRole(bytes32,address)\":{\"details\":\"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `callerConfirmation`. May emit a {RoleRevoked} event.\"},\"revokeRole(bytes32,address)\":{\"details\":\"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event.\"},\"setDepositLimit(uint256)\":{\"details\":\"Only a DEPOSIT_LIMIT_SET_ROLE holder can call this function.\",\"params\":{\"limit\":\"deposit limit (maximum amount of the collateral that can be in the vault simultaneously)\"}},\"setDepositWhitelist(bool)\":{\"details\":\"Only a DEPOSIT_WHITELIST_SET_ROLE holder can call this function.\",\"params\":{\"status\":\"if enabling deposit whitelist\"}},\"setDepositorWhitelistStatus(address,bool)\":{\"details\":\"Only a DEPOSITOR_WHITELIST_ROLE holder can call this function.\",\"params\":{\"account\":\"account for which the whitelist status is set\",\"status\":\"if whitelisting the account\"}},\"setIsDepositLimit(bool)\":{\"details\":\"Only a IS_DEPOSIT_LIMIT_SET_ROLE holder can call this function.\",\"params\":{\"status\":\"if enabling deposit limit\"}},\"slashableBalanceOf(address)\":{\"params\":{\"account\":\"account to get the slashable collateral for\"},\"returns\":{\"_0\":\"total amount of the account's slashable collateral\"}},\"staticDelegateCall(address,bytes)\":{\"details\":\"It allows to use this contract's storage on-chain.\",\"params\":{\"data\":\"data to make a delegatecall with\",\"target\":\"address of the contract to make a delegatecall to\"}},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"},\"symbol()\":{\"details\":\"Returns the symbol of the token, usually a shorter version of the name.\"},\"totalStake()\":{\"returns\":{\"_0\":\"total amount of the slashable collateral\"}},\"totalSupply()\":{\"details\":\"See {IERC20-totalSupply}.\"},\"transfer(address,uint256)\":{\"details\":\"See {IERC20-transfer}. Requirements: - `to` cannot be the zero address. - the caller must have a balance of at least `value`.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC20-transferFrom}. Emits an {Approval} event indicating the updated allowance. This is not required by the EIP. See the note at the beginning of {ERC20}. NOTE: Does not update the allowance if the current allowance is the maximum `uint256`. Requirements: - `from` and `to` cannot be the zero address. - `from` must have a balance of at least `value`. - the caller must have allowance for ``from``'s tokens of at least `value`.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"},\"version()\":{\"details\":\"Starts from 1.\",\"returns\":{\"_0\":\"version of the entity\"}},\"withdraw(address,uint256)\":{\"params\":{\"amount\":\"amount of the collateral to withdraw\",\"claimer\":\"account that needs to claim the withdrawal\"},\"returns\":{\"burnedShares\":\"amount of the active shares burned\",\"mintedShares\":\"amount of the epoch withdrawal shares minted\"}},\"withdrawalsOf(uint256,address)\":{\"params\":{\"account\":\"account to get the withdrawals for\",\"epoch\":\"epoch to get the withdrawals for the account at\"},\"returns\":{\"_0\":\"withdrawals for the account at the epoch\"}}},\"version\":1},\"userdoc\":{\"events\":{\"Claim(address,address,uint256,uint256)\":{\"notice\":\"Emitted when a claim is made.\"},\"ClaimBatch(address,address,uint256[],uint256)\":{\"notice\":\"Emitted when a batch claim is made.\"},\"Deposit(address,address,uint256,uint256)\":{\"notice\":\"Emitted when a deposit is made.\"},\"OnSlash(uint256,uint48,uint256)\":{\"notice\":\"Emitted when a slash happens.\"},\"SetDelegator(address)\":{\"notice\":\"Emitted when a delegator is set.\"},\"SetDepositLimit(uint256)\":{\"notice\":\"Emitted when a deposit limit is set.\"},\"SetDepositWhitelist(bool)\":{\"notice\":\"Emitted when a deposit whitelist status is enabled/disabled.\"},\"SetDepositorWhitelistStatus(address,bool)\":{\"notice\":\"Emitted when a depositor whitelist status is set.\"},\"SetIsDepositLimit(bool)\":{\"notice\":\"Emitted when a deposit limit status is enabled/disabled.\"},\"SetSlasher(address)\":{\"notice\":\"Emitted when a slasher is set.\"},\"Withdraw(address,address,uint256,uint256,uint256)\":{\"notice\":\"Emitted when a withdrawal is made.\"}},\"kind\":\"user\",\"methods\":{\"DELEGATOR_FACTORY()\":{\"notice\":\"Get the delegator factory's address.\"},\"DEPOSITOR_WHITELIST_ROLE()\":{\"notice\":\"Get a depositor whitelist status setter's role.\"},\"DEPOSIT_LIMIT_SET_ROLE()\":{\"notice\":\"Get a deposit limit setter's role.\"},\"DEPOSIT_WHITELIST_SET_ROLE()\":{\"notice\":\"Get a deposit whitelist enabler/disabler's role.\"},\"FACTORY()\":{\"notice\":\"Get the factory's address.\"},\"IS_DEPOSIT_LIMIT_SET_ROLE()\":{\"notice\":\"Get a deposit limit enabler/disabler's role.\"},\"SLASHER_FACTORY()\":{\"notice\":\"Get the slasher factory's address.\"},\"activeBalanceOf(address)\":{\"notice\":\"Get an active balance for a particular account.\"},\"activeBalanceOfAt(address,uint48,bytes)\":{\"notice\":\"Get an active balance for a particular account at a given timestamp using hints.\"},\"activeShares()\":{\"notice\":\"Get a total number of active shares in the vault.\"},\"activeSharesAt(uint48,bytes)\":{\"notice\":\"Get a total number of active shares in the vault at a given timestamp using a hint.\"},\"activeSharesOf(address)\":{\"notice\":\"Get a number of active shares for a particular account.\"},\"activeSharesOfAt(address,uint48,bytes)\":{\"notice\":\"Get a total number of active shares for a particular account at a given timestamp using a hint.\"},\"activeStake()\":{\"notice\":\"Get a total amount of active stake in the vault.\"},\"activeStakeAt(uint48,bytes)\":{\"notice\":\"Get a total amount of active stake in the vault at a given timestamp using a hint.\"},\"burner()\":{\"notice\":\"Get a burner to issue debt to (e.g., 0xdEaD or some unwrapper contract).\"},\"claim(address,uint256)\":{\"notice\":\"Claim collateral from the vault.\"},\"claimBatch(address,uint256[])\":{\"notice\":\"Claim collateral from the vault for multiple epochs.\"},\"collateral()\":{\"notice\":\"Get a vault collateral.\"},\"currentEpoch()\":{\"notice\":\"Get a current vault epoch.\"},\"currentEpochStart()\":{\"notice\":\"Get a start of the current vault epoch.\"},\"delegator()\":{\"notice\":\"Get a delegator (it delegates the vault's stake to networks and operators).\"},\"deposit(address,uint256)\":{\"notice\":\"Deposit collateral into the vault.\"},\"depositLimit()\":{\"notice\":\"Get a deposit limit (maximum amount of the active stake that can be in the vault simultaneously).\"},\"depositWhitelist()\":{\"notice\":\"Get if the deposit whitelist is enabled.\"},\"epochAt(uint48)\":{\"notice\":\"Get an epoch at a given timestamp.\"},\"epochDuration()\":{\"notice\":\"Get a duration of the vault epoch.\"},\"epochDurationInit()\":{\"notice\":\"Get a time point of the epoch duration set.\"},\"initialize(uint64,address,bytes)\":{\"notice\":\"Initialize this entity contract by using a given data and setting a particular version and owner.\"},\"isDelegatorInitialized()\":{\"notice\":\"Get if the delegator is initialized.\"},\"isDepositLimit()\":{\"notice\":\"Get if the deposit limit is set.\"},\"isDepositorWhitelisted(address)\":{\"notice\":\"Get if a given account is whitelisted as a depositor.\"},\"isInitialized()\":{\"notice\":\"Check if the vault is fully initialized (a delegator and a slasher are set).\"},\"isSlasherInitialized()\":{\"notice\":\"Get if the slasher is initialized.\"},\"isWithdrawalsClaimed(uint256,address)\":{\"notice\":\"Get if the withdrawals are claimed for a particular account at a given epoch.\"},\"migrate(uint64,bytes)\":{\"notice\":\"Migrate this entity to a particular newer version using a given data.\"},\"nextEpochStart()\":{\"notice\":\"Get a start of the next vault epoch.\"},\"onSlash(uint256,uint48)\":{\"notice\":\"Slash callback for burning collateral.\"},\"previousEpochStart()\":{\"notice\":\"Get a start of the previous vault epoch.\"},\"redeem(address,uint256)\":{\"notice\":\"Redeem collateral from the vault (it will be claimable after the next epoch).\"},\"setDepositLimit(uint256)\":{\"notice\":\"Set a deposit limit.\"},\"setDepositWhitelist(bool)\":{\"notice\":\"Enable/disable deposit whitelist.\"},\"setDepositorWhitelistStatus(address,bool)\":{\"notice\":\"Set a depositor whitelist status.\"},\"setIsDepositLimit(bool)\":{\"notice\":\"Enable/disable deposit limit.\"},\"slashableBalanceOf(address)\":{\"notice\":\"Get a total amount of the collateral that can be slashed for a given account.\"},\"slasher()\":{\"notice\":\"Get a slasher (it provides networks a slashing mechanism).\"},\"staticDelegateCall(address,bytes)\":{\"notice\":\"Make a delegatecall from this contract to a given target contract with a particular data (always reverts with a return data).\"},\"totalStake()\":{\"notice\":\"Get a total amount of the collateral that can be slashed.\"},\"version()\":{\"notice\":\"Get the entity's version.\"},\"withdraw(address,uint256)\":{\"notice\":\"Withdraw collateral from the vault (it will be claimable after the next epoch).\"},\"withdrawalShares(uint256)\":{\"notice\":\"Get a total number of withdrawal shares at a given epoch.\"},\"withdrawalSharesOf(uint256,address)\":{\"notice\":\"Get a number of withdrawal shares for a particular account at a given epoch (zero if claimed).\"},\"withdrawals(uint256)\":{\"notice\":\"Get a total amount of the withdrawals at a given epoch.\"},\"withdrawalsOf(uint256,address)\":{\"notice\":\"Get withdrawals for a particular account at a given epoch (zero if claimed).\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/contracts/vault/VaultTokenized.sol\":\"VaultTokenized\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol\":{\"keccak256\":\"0x6662ec4e5cefca03eeadd073e9469df8d2944bb2ee8ec8f7622c2c46aab5f225\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4d8544c6f8daa4d1bc215c6a72fe0acdb748664a105b0e5efc19295667521d45\",\"dweb:/ipfs/QmdGWqdnXT8S3RgCR6aV8XHZrsybieMQLLnug1NtpSjEXN\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0xc163fcf9bb10138631a9ba5564df1fa25db9adff73bd9ee868a8ae1858fe093a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9706d43a0124053d9880f6e31a59f31bc0a6a3dc1acd66ce0a16e1111658c5f6\",\"dweb:/ipfs/QmUFmfowzkRwGtDu36cXV9SPTBHJ3n7dG9xQiK5B28jTf2\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609\",\"dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/ERC20Upgradeable.sol\":{\"keccak256\":\"0x9a1766b1921bf91b3e61eb53c7a6e70725254befd4bdcbbcd3af40bd9f66856f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://29bf2fa41a172086a665c9738377b93655aa4b1ffda9fe839c8bdf646f185040\",\"dweb:/ipfs/QmeB21qDuo8WPQSrqXJbQmWHKsdeocGNSUWLhCwniVejrt\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9\",\"dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardUpgradeable.sol\":{\"keccak256\":\"0xb44e086e941292cdc7f440de51478493894ef0b1aeccb0c4047445919f667f74\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://942dad22fbdc1669f025540ba63aa3ccfad5f8458fc5d4525b31ebf272e7af45\",\"dweb:/ipfs/Qmdo4X2M82aM3AMoW2kf2jhYkSCyC4T1pHNd6obdsDFnAB\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol\":{\"keccak256\":\"0xdaba3f7c42c55b2896353f32bd27d4d5f8bae741b3b05d4c53f67abc4dc47ce8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1fa2e61141c602510bcd2cd936ed9561922ac8772a9b9c9a9db091a74e354a45\",\"dweb:/ipfs/QmcHQDDoEBwJmwUbzoVkytvJsBx3KVHYFFnDkvRGWh9Wmh\"]},\"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0xb6b36edd6a2999fd243ff226d6cbf84bd71af2432bbd0dfe19392996a1d9cb41\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1fd2f35495652e57e3f99bc6c510bc5f7dd398a176ea2e72d8ed730aebc6ca26\",\"dweb:/ipfs/QmTQV6X4gkikTib49cho5iDX3JvSQbdsoEChoDwrk3CbbH\"]},\"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x60c65f701957fdd6faea1acb0bb45825791d473693ed9ecb34726fdfaa849dd7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea290300e0efc4d901244949dc4d877fd46e6c5e43dc2b26620e8efab3ab803f\",\"dweb:/ipfs/QmcLLJppxKeJWqHxE2CUkcfhuRTgHSn8J4kijcLa5MYhSt\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c\",\"dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0xaa761817f6cd7892fcf158b3c776b34551cde36f48ff9703d53898bc45a94ea2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ad7c8d4d08938c8dfc43d75a148863fb324b80cf53e0a36f7e5a4ac29008850\",\"dweb:/ipfs/QmcrhfPgVNf5mkdhQvy1pMv51TFokD3Y4Wa5WZhFqVh8UV\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0x6008dabfe393240d73d7dd7688033f72740d570aa422254d29a7dce8568f3aff\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f5196ec75139918c6c7bb4251b36395e668f1fa6d206beba7e7520e74913940d\",\"dweb:/ipfs/QmSyqjksXxmm2mCG6qRd1yuwLykypkSVBbnBnGqJRcuJMi\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x37bb49513c49c87c4642a891b13b63571bc87013dde806617aa1efb54605f386\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b3036b3a83b7c48f96641f2a9002b9f2dcb6a5958dd670894ada21ae8229b3d0\",\"dweb:/ipfs/QmUNfSBdoVtjhETaUJCYcaC7pTMgbhht926tJ2uXJbiVd3\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0xaf28a975a78550e45f65e559a3ad6a5ad43b9b8a37366999abd1b7084eb70721\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b7bd24e224f67f65bfadf85dc2929fa965456bb2415478bd0125471b5ce35245\",\"dweb:/ipfs/QmRaydGr8BTHs1kvaZfsNU69pKzUAGFrvABn1KiRSbE51y\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875\",\"dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0xe19a4d5f31d2861e7344e8e535e2feafb913d806d3e2b5fe7782741a2a7094fe\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4aed79c0fa6f0546ed02f2f683e8f77f0fd2ed7eb34d8bbf3d373c9a6d95b13c\",\"dweb:/ipfs/QmWqVz6UAVqmnWU5pqYPt1o6iDEZyPaBraAA3rKfTTSfYj\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/Checkpoints.sol\":{\"keccak256\":\"0xbdc5e074d7dd6678f67e92b1a51a20226801a407b0e1af3da367c5d1ff4519ad\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a36cca6b22fff3db16fc789ff6c60eea71d4b156065d4d0c83a0bc5e91a77a8b\",\"dweb:/ipfs/QmYN3exd5AemxjBrN8XMB1p5LbbE16uC3sjbYjwi8AjcGR\"]},\"lib/openzeppelin-contracts/contracts/utils/types/Time.sol\":{\"keccak256\":\"0xc7755af115020049e4140f224f9ee88d7e1799ffb0646f37bf0df24bf6213f58\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7f09bf94d5274334ec021f61a04659db303f31e60460e14b709c9bf187740111\",\"dweb:/ipfs/QmNvgomZYUwFAt4cZbPWAiTeSZQreGehY9BK5xyVJsUttb\"]},\"src/contracts/common/MigratableEntity.sol\":{\"keccak256\":\"0x2d736f4dacd5d7e7697503bc426c78b8250fe1694ca157965ec178da6807de58\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://f1237acf96b4b9f9b69156e068eddd726a6e15bd8e87a18dc999cd4ba4da069c\",\"dweb:/ipfs/QmS6M8fiFFSeuJ4ZKKq1z8W7w4ybeHQSy5TLASGoc1LVic\"]},\"src/contracts/common/StaticDelegateCallable.sol\":{\"keccak256\":\"0x350029aa8955eacaffffaeb58babc5c98e80ebc5c5db388ed17ee6465f4a9d90\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://eb392a8ee9050e0af606897df63e3404e3829e8b688b580663892f9664195764\",\"dweb:/ipfs/QmaXC8jqV8UrrAFkzXTEv2fJF56sy33HhLxAzaRZmUxuXD\"]},\"src/contracts/libraries/Checkpoints.sol\":{\"keccak256\":\"0xba90097c8bfe0a975499428b5f8ac5569483c7d92ccc28c12d70de416aae040c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://12f5d93ca94cd06d3147db68993165a58e17903ed53682560de61f3085ad4609\",\"dweb:/ipfs/QmePiuAqvXprMLmFZkGZeGjvGPAvsEDHfCDv7BoQhXu9xE\"]},\"src/contracts/libraries/ERC4626Math.sol\":{\"keccak256\":\"0x8441160513c1cbeb1c3b9ee077bcc7e7ce20006b52a77c8dd39ff0ef89699939\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://943f8cc3e26ddf649f465f40c909819f5c864717c4baa339e9e403b9374a4653\",\"dweb:/ipfs/QmXPxi1sUDsrGprZdUgCzoPEosaZMv9ZhygWQ1vAi1phAB\"]},\"src/contracts/vault/Vault.sol\":{\"keccak256\":\"0x2ceff6ed3298c4cad144c99fcc79b51cb9397d6ebef00285b915848b476f8c2e\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://11f2fb3581854f3ab6e82e8d4935d9eb510c903a13c3f022346c2956a58f5307\",\"dweb:/ipfs/QmdUnoXoyYoG9SGWyQZCFyLDRUUX3eXyXetkRvw6jxqqBz\"]},\"src/contracts/vault/VaultStorage.sol\":{\"keccak256\":\"0x57db25b127d77ea3472de53e3a4af3354399655b9268638b99ca5925fa364a56\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://aa763d9a6ec508ae3abfb8228b72b9fd9525279e5135d4962e79ff059feb1173\",\"dweb:/ipfs/QmcbDR6E9wyEpu6V2FkEC4hnWy47zXA9LSKJde6zSGd33Q\"]},\"src/contracts/vault/VaultTokenized.sol\":{\"keccak256\":\"0xa9475a46a3e32b35e48bc37fdaf08e1a586fb7c9667ac5e014b716a08873c46d\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://0a292a4f35bc43ce7174b36e2d016bc44d6737e94b41e48cb5dd1bb1e4821e48\",\"dweb:/ipfs/QmduHZe2REPnygiWvQRV82yD4tYHdwX33FkYRFm1UZoXBA\"]},\"src/interfaces/common/IEntity.sol\":{\"keccak256\":\"0x8ef4b63d6da63489778ccd5f8d13ebdd527dd4b62730b2c616df5af7474d2d21\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a8d69576a9219d85c50816a18ad53a4d53cfcb27ed38b8cccc808dc2734b71b\",\"dweb:/ipfs/QmYVN3P4Q4REvBWJ97TbAcaxm3uyB2anV6NSGa6ZtSwcEv\"]},\"src/interfaces/common/IMigratableEntity.sol\":{\"keccak256\":\"0x8f5f2809f3afbe8ebfbb365dd7b57b4dd3b6f9943a6187eaf648d45895b8e3c4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ffe640537d539e7a4fde70d30d3e4c57f4ba9c2c25c450cea713aae38e8fd5c\",\"dweb:/ipfs/QmSUTGzvdcn1R1KB7tLThMRtESsfPbeXDhhhKWGtntzBds\"]},\"src/interfaces/common/IRegistry.sol\":{\"keccak256\":\"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014\",\"dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK\"]},\"src/interfaces/common/IStaticDelegateCallable.sol\":{\"keccak256\":\"0xa335d4e81b9071b7de66ef92b43ff20671d86516eb1be46fef29a3483cd3f5d5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d464b9db863c14c05547d2b23352f2e9b7b784799cf09f6bbc4906a2a74e3516\",\"dweb:/ipfs/QmUVWzFvJz7eEbDQKiFTTzwi7TEbjcs3VmwdM4kuptAKvi\"]},\"src/interfaces/delegator/IBaseDelegator.sol\":{\"keccak256\":\"0x96bb312f032e17accce3f8f80936d99468029d6b37c9ca74acdb4b026a0148ee\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2a66dcb5b7d1a6ef6a363431ea98ebd78bc4fdd3d7a134d9b542dc66e7d025c2\",\"dweb:/ipfs/QmRhTPLd2ZAyRHmJUFUcWKs9b3if49QY17LYZuRqWmghw8\"]},\"src/interfaces/slasher/IBaseSlasher.sol\":{\"keccak256\":\"0x7c82528b445659c313ab77335c407b0b6efe5e79027187bb287f7bc74202b404\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0274c90aa5df1aa6bb470a6aab53992fb14fd7e5472c9430416505b29647d9cf\",\"dweb:/ipfs/QmckbmJLDetPemVzCnnGcKYWAZV2BRFXGDsjiaec8jkHxx\"]},\"src/interfaces/vault/IVault.sol\":{\"keccak256\":\"0xffee01d383cd4e1a5530c614bf4360c1ef070c288abec9da1eb531b51bc07235\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://04f0046cac285d8ec44ebbb1f79dc94fab4495767190cad8364fbc1fafaadfb9\",\"dweb:/ipfs/QmUawAunwzXfCyShWfhKeThAgKtqe51hmrxvrXvM772M2R\"]},\"src/interfaces/vault/IVaultStorage.sol\":{\"keccak256\":\"0x592626f13754194f83047135de19229c49390bd59e34659b1bb38be71d973a22\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://06a6a9dfddd05e580b32bebe2cff4f63ba26a653180676d58225dd30d9c89d3e\",\"dweb:/ipfs/QmdgzBeY6Sxo8mGtyBxtv1tM1c2kU6J6zjeRd7vuXm4DU6\"]},\"src/interfaces/vault/IVaultTokenized.sol\":{\"keccak256\":\"0xb723560b49c30b38130634388a0550c9e07596f92a58edbfa2415e690024e0c4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://dc9dde973a0bbf0adbc305462a796fa3b2e5be9daa1984e4f3e4f48e3c254f39\",\"dweb:/ipfs/QmQydZsr7ESw7ZSe9mqaxZ3dycvru8ZFVwrL9pmVnpyd7c\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.25+commit.b61c2a91"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"delegatorFactory","type":"address"},{"internalType":"address","name":"slasherFactory","type":"address"},{"internalType":"address","name":"vaultFactory","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"AccessControlBadConfirmation"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bytes32","name":"neededRole","type":"bytes32"}],"type":"error","name":"AccessControlUnauthorizedAccount"},{"inputs":[{"internalType":"address","name":"target","type":"address"}],"type":"error","name":"AddressEmptyCode"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"AddressInsufficientBalance"},{"inputs":[],"type":"error","name":"AlreadyClaimed"},{"inputs":[],"type":"error","name":"AlreadyInitialized"},{"inputs":[],"type":"error","name":"AlreadySet"},{"inputs":[],"type":"error","name":"CheckpointUnorderedInsertion"},{"inputs":[],"type":"error","name":"DelegatorAlreadyInitialized"},{"inputs":[],"type":"error","name":"DepositLimitReached"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"allowance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"type":"error","name":"ERC20InsufficientAllowance"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"type":"error","name":"ERC20InsufficientBalance"},{"inputs":[{"internalType":"address","name":"approver","type":"address"}],"type":"error","name":"ERC20InvalidApprover"},{"inputs":[{"internalType":"address","name":"receiver","type":"address"}],"type":"error","name":"ERC20InvalidReceiver"},{"inputs":[{"internalType":"address","name":"sender","type":"address"}],"type":"error","name":"ERC20InvalidSender"},{"inputs":[{"internalType":"address","name":"spender","type":"address"}],"type":"error","name":"ERC20InvalidSpender"},{"inputs":[],"type":"error","name":"FailedInnerCall"},{"inputs":[],"type":"error","name":"InsufficientClaim"},{"inputs":[],"type":"error","name":"InsufficientDeposit"},{"inputs":[],"type":"error","name":"InsufficientRedemption"},{"inputs":[],"type":"error","name":"InsufficientWithdrawal"},{"inputs":[],"type":"error","name":"InvalidAccount"},{"inputs":[],"type":"error","name":"InvalidCaptureEpoch"},{"inputs":[],"type":"error","name":"InvalidClaimer"},{"inputs":[],"type":"error","name":"InvalidCollateral"},{"inputs":[],"type":"error","name":"InvalidDelegator"},{"inputs":[],"type":"error","name":"InvalidEpoch"},{"inputs":[],"type":"error","name":"InvalidEpochDuration"},{"inputs":[],"type":"error","name":"InvalidInitialization"},{"inputs":[],"type":"error","name":"InvalidLengthEpochs"},{"inputs":[],"type":"error","name":"InvalidOnBehalfOf"},{"inputs":[],"type":"error","name":"InvalidRecipient"},{"inputs":[],"type":"error","name":"InvalidSlasher"},{"inputs":[],"type":"error","name":"InvalidTimestamp"},{"inputs":[],"type":"error","name":"MathOverflowedMulDiv"},{"inputs":[],"type":"error","name":"MissingRoles"},{"inputs":[],"type":"error","name":"NoPreviousEpoch"},{"inputs":[],"type":"error","name":"NotDelegator"},{"inputs":[],"type":"error","name":"NotFactory"},{"inputs":[],"type":"error","name":"NotInitialized"},{"inputs":[],"type":"error","name":"NotInitializing"},{"inputs":[],"type":"error","name":"NotSlasher"},{"inputs":[],"type":"error","name":"NotWhitelistedDepositor"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"OwnableInvalidOwner"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"OwnableUnauthorizedAccount"},{"inputs":[],"type":"error","name":"ReentrancyGuardReentrantCall"},{"inputs":[{"internalType":"uint8","name":"bits","type":"uint8"},{"internalType":"uint256","name":"value","type":"uint256"}],"type":"error","name":"SafeCastOverflowedUintDowncast"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"type":"error","name":"SafeERC20FailedOperation"},{"inputs":[],"type":"error","name":"SlasherAlreadyInitialized"},{"inputs":[],"type":"error","name":"TooMuchRedeem"},{"inputs":[],"type":"error","name":"TooMuchWithdraw"},{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"spender","type":"address","indexed":true},{"internalType":"uint256","name":"value","type":"uint256","indexed":false}],"type":"event","name":"Approval","anonymous":false},{"inputs":[{"internalType":"address","name":"claimer","type":"address","indexed":true},{"internalType":"address","name":"recipient","type":"address","indexed":true},{"internalType":"uint256","name":"epoch","type":"uint256","indexed":false},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"Claim","anonymous":false},{"inputs":[{"internalType":"address","name":"claimer","type":"address","indexed":true},{"internalType":"address","name":"recipient","type":"address","indexed":true},{"internalType":"uint256[]","name":"epochs","type":"uint256[]","indexed":false},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"ClaimBatch","anonymous":false},{"inputs":[{"internalType":"address","name":"depositor","type":"address","indexed":true},{"internalType":"address","name":"onBehalfOf","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false},{"internalType":"uint256","name":"shares","type":"uint256","indexed":false}],"type":"event","name":"Deposit","anonymous":false},{"inputs":[{"internalType":"uint64","name":"version","type":"uint64","indexed":false}],"type":"event","name":"Initialized","anonymous":false},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256","indexed":false},{"internalType":"uint48","name":"captureTimestamp","type":"uint48","indexed":false},{"internalType":"uint256","name":"slashedAmount","type":"uint256","indexed":false}],"type":"event","name":"OnSlash","anonymous":false},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"bytes32","name":"previousAdminRole","type":"bytes32","indexed":true},{"internalType":"bytes32","name":"newAdminRole","type":"bytes32","indexed":true}],"type":"event","name":"RoleAdminChanged","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"address","name":"sender","type":"address","indexed":true}],"type":"event","name":"RoleGranted","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"address","name":"sender","type":"address","indexed":true}],"type":"event","name":"RoleRevoked","anonymous":false},{"inputs":[{"internalType":"address","name":"delegator","type":"address","indexed":true}],"type":"event","name":"SetDelegator","anonymous":false},{"inputs":[{"internalType":"uint256","name":"limit","type":"uint256","indexed":false}],"type":"event","name":"SetDepositLimit","anonymous":false},{"inputs":[{"internalType":"bool","name":"status","type":"bool","indexed":false}],"type":"event","name":"SetDepositWhitelist","anonymous":false},{"inputs":[{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"bool","name":"status","type":"bool","indexed":false}],"type":"event","name":"SetDepositorWhitelistStatus","anonymous":false},{"inputs":[{"internalType":"bool","name":"status","type":"bool","indexed":false}],"type":"event","name":"SetIsDepositLimit","anonymous":false},{"inputs":[{"internalType":"address","name":"slasher","type":"address","indexed":true}],"type":"event","name":"SetSlasher","anonymous":false},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"value","type":"uint256","indexed":false}],"type":"event","name":"Transfer","anonymous":false},{"inputs":[{"internalType":"address","name":"withdrawer","type":"address","indexed":true},{"internalType":"address","name":"claimer","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false},{"internalType":"uint256","name":"burnedShares","type":"uint256","indexed":false},{"internalType":"uint256","name":"mintedShares","type":"uint256","indexed":false}],"type":"event","name":"Withdraw","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"DEFAULT_ADMIN_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"DELEGATOR_FACTORY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"DEPOSITOR_WHITELIST_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"DEPOSIT_LIMIT_SET_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"DEPOSIT_WHITELIST_SET_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"FACTORY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"IS_DEPOSIT_LIMIT_SET_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"SLASHER_FACTORY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"activeBalanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint48","name":"timestamp","type":"uint48"},{"internalType":"bytes","name":"hints","type":"bytes"}],"stateMutability":"view","type":"function","name":"activeBalanceOfAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"activeShares","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint48","name":"timestamp","type":"uint48"},{"internalType":"bytes","name":"hint","type":"bytes"}],"stateMutability":"view","type":"function","name":"activeSharesAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"activeSharesOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint48","name":"timestamp","type":"uint48"},{"internalType":"bytes","name":"hint","type":"bytes"}],"stateMutability":"view","type":"function","name":"activeSharesOfAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"activeStake","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint48","name":"timestamp","type":"uint48"},{"internalType":"bytes","name":"hint","type":"bytes"}],"stateMutability":"view","type":"function","name":"activeStakeAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"stateMutability":"view","type":"function","name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"burner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"epoch","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"claim","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256[]","name":"epochs","type":"uint256[]"}],"stateMutability":"nonpayable","type":"function","name":"claimBatch","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"collateral","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"currentEpoch","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"currentEpochStart","outputs":[{"internalType":"uint48","name":"","type":"uint48"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"delegator","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"onBehalfOf","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"deposit","outputs":[{"internalType":"uint256","name":"depositedAmount","type":"uint256"},{"internalType":"uint256","name":"mintedShares","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"depositLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"depositWhitelist","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint48","name":"timestamp","type":"uint48"}],"stateMutability":"view","type":"function","name":"epochAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"epochDuration","outputs":[{"internalType":"uint48","name":"","type":"uint48"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"epochDurationInit","outputs":[{"internalType":"uint48","name":"","type":"uint48"}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getRoleAdmin","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"grantRole"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"hasRole","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint64","name":"initialVersion","type":"uint64"},{"internalType":"address","name":"owner_","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[],"stateMutability":"view","type":"function","name":"isDelegatorInitialized","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"isDepositLimit","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"isDepositorWhitelisted","outputs":[{"internalType":"bool","name":"value","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"isInitialized","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"isSlasherInitialized","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint256","name":"epoch","type":"uint256"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"isWithdrawalsClaimed","outputs":[{"internalType":"bool","name":"value","type":"bool"}]},{"inputs":[{"internalType":"uint64","name":"newVersion","type":"uint64"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"migrate"},{"inputs":[],"stateMutability":"view","type":"function","name":"name","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"nextEpochStart","outputs":[{"internalType":"uint48","name":"","type":"uint48"}]},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint48","name":"captureTimestamp","type":"uint48"}],"stateMutability":"nonpayable","type":"function","name":"onSlash","outputs":[{"internalType":"uint256","name":"slashedAmount","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"previousEpochStart","outputs":[{"internalType":"uint48","name":"","type":"uint48"}]},{"inputs":[{"internalType":"address","name":"claimer","type":"address"},{"internalType":"uint256","name":"shares","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"redeem","outputs":[{"internalType":"uint256","name":"withdrawnAssets","type":"uint256"},{"internalType":"uint256","name":"mintedShares","type":"uint256"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"callerConfirmation","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"renounceRole"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"revokeRole"},{"inputs":[{"internalType":"address","name":"delegator_","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setDelegator"},{"inputs":[{"internalType":"uint256","name":"limit","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setDepositLimit"},{"inputs":[{"internalType":"bool","name":"status","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"setDepositWhitelist"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"status","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"setDepositorWhitelistStatus"},{"inputs":[{"internalType":"bool","name":"status","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"setIsDepositLimit"},{"inputs":[{"internalType":"address","name":"slasher_","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setSlasher"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"slashableBalanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"slasher","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"staticDelegateCall"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"totalStake","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"},{"inputs":[],"stateMutability":"view","type":"function","name":"version","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[{"internalType":"address","name":"claimer","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"withdraw","outputs":[{"internalType":"uint256","name":"burnedShares","type":"uint256"},{"internalType":"uint256","name":"mintedShares","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"epoch","type":"uint256"}],"stateMutability":"view","type":"function","name":"withdrawalShares","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"epoch","type":"uint256"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"withdrawalSharesOf","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"epoch","type":"uint256"}],"stateMutability":"view","type":"function","name":"withdrawals","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"epoch","type":"uint256"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"withdrawalsOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]}],"devdoc":{"kind":"dev","methods":{"activeBalanceOf(address)":{"params":{"account":"account to get the active balance for"},"returns":{"_0":"active balance for the account"}},"activeBalanceOfAt(address,uint48,bytes)":{"params":{"account":"account to get the active balance for","hints":"hints for checkpoints' indexes","timestamp":"time point to get the active balance for the account at"},"returns":{"_0":"active balance for the account at the timestamp"}},"activeShares()":{"returns":{"_0":"total number of active shares"}},"activeSharesAt(uint48,bytes)":{"params":{"hint":"hint for the checkpoint index","timestamp":"time point to get the total number of active shares at"},"returns":{"_0":"total number of active shares at the timestamp"}},"activeSharesOf(address)":{"params":{"account":"account to get the number of active shares for"},"returns":{"_0":"number of active shares for the account"}},"activeSharesOfAt(address,uint48,bytes)":{"params":{"account":"account to get the number of active shares for","hint":"hint for the checkpoint index","timestamp":"time point to get the number of active shares for the account at"},"returns":{"_0":"number of active shares for the account at the timestamp"}},"activeStake()":{"returns":{"_0":"total amount of active stake"}},"activeStakeAt(uint48,bytes)":{"params":{"hint":"hint for the checkpoint index","timestamp":"time point to get the total active stake at"},"returns":{"_0":"total amount of active stake at the timestamp"}},"allowance(address,address)":{"details":"See {IERC20-allowance}."},"approve(address,uint256)":{"details":"See {IERC20-approve}. NOTE: If `value` is the maximum `uint256`, the allowance is not updated on `transferFrom`. This is semantically equivalent to an infinite approval. Requirements: - `spender` cannot be the zero address."},"balanceOf(address)":{"details":"See {IERC20-balanceOf}."},"claim(address,uint256)":{"params":{"epoch":"epoch to claim the collateral for","recipient":"account that receives the collateral"},"returns":{"amount":"amount of the collateral claimed"}},"claimBatch(address,uint256[])":{"params":{"epochs":"epochs to claim the collateral for","recipient":"account that receives the collateral"},"returns":{"amount":"amount of the collateral claimed"}},"currentEpoch()":{"returns":{"_0":"current epoch"}},"currentEpochStart()":{"returns":{"_0":"start of the current epoch"}},"decimals()":{"details":"Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5.05` (`505 / 10 ** 2`). Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei. This is the default value returned by this function, unless it's overridden. NOTE: This information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including {IERC20-balanceOf} and {IERC20-transfer}."},"deposit(address,uint256)":{"params":{"amount":"amount of the collateral to deposit","onBehalfOf":"account the deposit is made on behalf of"},"returns":{"depositedAmount":"real amount of the collateral deposited","mintedShares":"amount of the active shares minted"}},"epochAt(uint48)":{"details":"Reverts if the timestamp is less than the start of the epoch 0.","params":{"timestamp":"time point to get the epoch at"},"returns":{"_0":"epoch at the timestamp"}},"getRoleAdmin(bytes32)":{"details":"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}."},"grantRole(bytes32,address)":{"details":"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event."},"hasRole(bytes32,address)":{"details":"Returns `true` if `account` has been granted `role`."},"initialize(uint64,address,bytes)":{"params":{"data":"some data to use","initialVersion":"initial version of the entity","owner":"initial owner of the entity"}},"isInitialized()":{"returns":{"_0":"if the vault is fully initialized"}},"migrate(uint64,bytes)":{"params":{"data":"some data to use","newVersion":"new version of the entity"}},"name()":{"details":"Returns the name of the token."},"nextEpochStart()":{"returns":{"_0":"start of the next epoch"}},"onSlash(uint256,uint48)":{"details":"Only the slasher can call this function.","params":{"amount":"amount to slash","captureTimestamp":"time point when the stake was captured"},"returns":{"slashedAmount":"real amount of the collateral slashed"}},"owner()":{"details":"Returns the address of the current owner."},"previousEpochStart()":{"details":"Reverts if the current epoch is 0.","returns":{"_0":"start of the previous epoch"}},"redeem(address,uint256)":{"params":{"claimer":"account that needs to claim the withdrawal","shares":"amount of the active shares to redeem"},"returns":{"mintedShares":"amount of the epoch withdrawal shares minted","withdrawnAssets":"amount of the collateral withdrawn"}},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner."},"renounceRole(bytes32,address)":{"details":"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `callerConfirmation`. May emit a {RoleRevoked} event."},"revokeRole(bytes32,address)":{"details":"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event."},"setDepositLimit(uint256)":{"details":"Only a DEPOSIT_LIMIT_SET_ROLE holder can call this function.","params":{"limit":"deposit limit (maximum amount of the collateral that can be in the vault simultaneously)"}},"setDepositWhitelist(bool)":{"details":"Only a DEPOSIT_WHITELIST_SET_ROLE holder can call this function.","params":{"status":"if enabling deposit whitelist"}},"setDepositorWhitelistStatus(address,bool)":{"details":"Only a DEPOSITOR_WHITELIST_ROLE holder can call this function.","params":{"account":"account for which the whitelist status is set","status":"if whitelisting the account"}},"setIsDepositLimit(bool)":{"details":"Only a IS_DEPOSIT_LIMIT_SET_ROLE holder can call this function.","params":{"status":"if enabling deposit limit"}},"slashableBalanceOf(address)":{"params":{"account":"account to get the slashable collateral for"},"returns":{"_0":"total amount of the account's slashable collateral"}},"staticDelegateCall(address,bytes)":{"details":"It allows to use this contract's storage on-chain.","params":{"data":"data to make a delegatecall with","target":"address of the contract to make a delegatecall to"}},"supportsInterface(bytes4)":{"details":"See {IERC165-supportsInterface}."},"symbol()":{"details":"Returns the symbol of the token, usually a shorter version of the name."},"totalStake()":{"returns":{"_0":"total amount of the slashable collateral"}},"totalSupply()":{"details":"See {IERC20-totalSupply}."},"transfer(address,uint256)":{"details":"See {IERC20-transfer}. Requirements: - `to` cannot be the zero address. - the caller must have a balance of at least `value`."},"transferFrom(address,address,uint256)":{"details":"See {IERC20-transferFrom}. Emits an {Approval} event indicating the updated allowance. This is not required by the EIP. See the note at the beginning of {ERC20}. NOTE: Does not update the allowance if the current allowance is the maximum `uint256`. Requirements: - `from` and `to` cannot be the zero address. - `from` must have a balance of at least `value`. - the caller must have allowance for ``from``'s tokens of at least `value`."},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."},"version()":{"details":"Starts from 1.","returns":{"_0":"version of the entity"}},"withdraw(address,uint256)":{"params":{"amount":"amount of the collateral to withdraw","claimer":"account that needs to claim the withdrawal"},"returns":{"burnedShares":"amount of the active shares burned","mintedShares":"amount of the epoch withdrawal shares minted"}},"withdrawalsOf(uint256,address)":{"params":{"account":"account to get the withdrawals for","epoch":"epoch to get the withdrawals for the account at"},"returns":{"_0":"withdrawals for the account at the epoch"}}},"version":1},"userdoc":{"kind":"user","methods":{"DELEGATOR_FACTORY()":{"notice":"Get the delegator factory's address."},"DEPOSITOR_WHITELIST_ROLE()":{"notice":"Get a depositor whitelist status setter's role."},"DEPOSIT_LIMIT_SET_ROLE()":{"notice":"Get a deposit limit setter's role."},"DEPOSIT_WHITELIST_SET_ROLE()":{"notice":"Get a deposit whitelist enabler/disabler's role."},"FACTORY()":{"notice":"Get the factory's address."},"IS_DEPOSIT_LIMIT_SET_ROLE()":{"notice":"Get a deposit limit enabler/disabler's role."},"SLASHER_FACTORY()":{"notice":"Get the slasher factory's address."},"activeBalanceOf(address)":{"notice":"Get an active balance for a particular account."},"activeBalanceOfAt(address,uint48,bytes)":{"notice":"Get an active balance for a particular account at a given timestamp using hints."},"activeShares()":{"notice":"Get a total number of active shares in the vault."},"activeSharesAt(uint48,bytes)":{"notice":"Get a total number of active shares in the vault at a given timestamp using a hint."},"activeSharesOf(address)":{"notice":"Get a number of active shares for a particular account."},"activeSharesOfAt(address,uint48,bytes)":{"notice":"Get a total number of active shares for a particular account at a given timestamp using a hint."},"activeStake()":{"notice":"Get a total amount of active stake in the vault."},"activeStakeAt(uint48,bytes)":{"notice":"Get a total amount of active stake in the vault at a given timestamp using a hint."},"burner()":{"notice":"Get a burner to issue debt to (e.g., 0xdEaD or some unwrapper contract)."},"claim(address,uint256)":{"notice":"Claim collateral from the vault."},"claimBatch(address,uint256[])":{"notice":"Claim collateral from the vault for multiple epochs."},"collateral()":{"notice":"Get a vault collateral."},"currentEpoch()":{"notice":"Get a current vault epoch."},"currentEpochStart()":{"notice":"Get a start of the current vault epoch."},"delegator()":{"notice":"Get a delegator (it delegates the vault's stake to networks and operators)."},"deposit(address,uint256)":{"notice":"Deposit collateral into the vault."},"depositLimit()":{"notice":"Get a deposit limit (maximum amount of the active stake that can be in the vault simultaneously)."},"depositWhitelist()":{"notice":"Get if the deposit whitelist is enabled."},"epochAt(uint48)":{"notice":"Get an epoch at a given timestamp."},"epochDuration()":{"notice":"Get a duration of the vault epoch."},"epochDurationInit()":{"notice":"Get a time point of the epoch duration set."},"initialize(uint64,address,bytes)":{"notice":"Initialize this entity contract by using a given data and setting a particular version and owner."},"isDelegatorInitialized()":{"notice":"Get if the delegator is initialized."},"isDepositLimit()":{"notice":"Get if the deposit limit is set."},"isDepositorWhitelisted(address)":{"notice":"Get if a given account is whitelisted as a depositor."},"isInitialized()":{"notice":"Check if the vault is fully initialized (a delegator and a slasher are set)."},"isSlasherInitialized()":{"notice":"Get if the slasher is initialized."},"isWithdrawalsClaimed(uint256,address)":{"notice":"Get if the withdrawals are claimed for a particular account at a given epoch."},"migrate(uint64,bytes)":{"notice":"Migrate this entity to a particular newer version using a given data."},"nextEpochStart()":{"notice":"Get a start of the next vault epoch."},"onSlash(uint256,uint48)":{"notice":"Slash callback for burning collateral."},"previousEpochStart()":{"notice":"Get a start of the previous vault epoch."},"redeem(address,uint256)":{"notice":"Redeem collateral from the vault (it will be claimable after the next epoch)."},"setDepositLimit(uint256)":{"notice":"Set a deposit limit."},"setDepositWhitelist(bool)":{"notice":"Enable/disable deposit whitelist."},"setDepositorWhitelistStatus(address,bool)":{"notice":"Set a depositor whitelist status."},"setIsDepositLimit(bool)":{"notice":"Enable/disable deposit limit."},"slashableBalanceOf(address)":{"notice":"Get a total amount of the collateral that can be slashed for a given account."},"slasher()":{"notice":"Get a slasher (it provides networks a slashing mechanism)."},"staticDelegateCall(address,bytes)":{"notice":"Make a delegatecall from this contract to a given target contract with a particular data (always reverts with a return data)."},"totalStake()":{"notice":"Get a total amount of the collateral that can be slashed."},"version()":{"notice":"Get the entity's version."},"withdraw(address,uint256)":{"notice":"Withdraw collateral from the vault (it will be claimable after the next epoch)."},"withdrawalShares(uint256)":{"notice":"Get a total number of withdrawal shares at a given epoch."},"withdrawalSharesOf(uint256,address)":{"notice":"Get a number of withdrawal shares for a particular account at a given epoch (zero if claimed)."},"withdrawals(uint256)":{"notice":"Get a total amount of the withdrawals at a given epoch."},"withdrawalsOf(uint256,address)":{"notice":"Get withdrawals for a particular account at a given epoch (zero if claimed)."}},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/contracts/vault/VaultTokenized.sol":"VaultTokenized"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol":{"keccak256":"0x6662ec4e5cefca03eeadd073e9469df8d2944bb2ee8ec8f7622c2c46aab5f225","urls":["bzz-raw://4d8544c6f8daa4d1bc215c6a72fe0acdb748664a105b0e5efc19295667521d45","dweb:/ipfs/QmdGWqdnXT8S3RgCR6aV8XHZrsybieMQLLnug1NtpSjEXN"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol":{"keccak256":"0xc163fcf9bb10138631a9ba5564df1fa25db9adff73bd9ee868a8ae1858fe093a","urls":["bzz-raw://9706d43a0124053d9880f6e31a59f31bc0a6a3dc1acd66ce0a16e1111658c5f6","dweb:/ipfs/QmUFmfowzkRwGtDu36cXV9SPTBHJ3n7dG9xQiK5B28jTf2"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b","urls":["bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609","dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/ERC20Upgradeable.sol":{"keccak256":"0x9a1766b1921bf91b3e61eb53c7a6e70725254befd4bdcbbcd3af40bd9f66856f","urls":["bzz-raw://29bf2fa41a172086a665c9738377b93655aa4b1ffda9fe839c8bdf646f185040","dweb:/ipfs/QmeB21qDuo8WPQSrqXJbQmWHKsdeocGNSUWLhCwniVejrt"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol":{"keccak256":"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397","urls":["bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9","dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardUpgradeable.sol":{"keccak256":"0xb44e086e941292cdc7f440de51478493894ef0b1aeccb0c4047445919f667f74","urls":["bzz-raw://942dad22fbdc1669f025540ba63aa3ccfad5f8458fc5d4525b31ebf272e7af45","dweb:/ipfs/Qmdo4X2M82aM3AMoW2kf2jhYkSCyC4T1pHNd6obdsDFnAB"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol":{"keccak256":"0xdaba3f7c42c55b2896353f32bd27d4d5f8bae741b3b05d4c53f67abc4dc47ce8","urls":["bzz-raw://1fa2e61141c602510bcd2cd936ed9561922ac8772a9b9c9a9db091a74e354a45","dweb:/ipfs/QmcHQDDoEBwJmwUbzoVkytvJsBx3KVHYFFnDkvRGWh9Wmh"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol":{"keccak256":"0xb6b36edd6a2999fd243ff226d6cbf84bd71af2432bbd0dfe19392996a1d9cb41","urls":["bzz-raw://1fd2f35495652e57e3f99bc6c510bc5f7dd398a176ea2e72d8ed730aebc6ca26","dweb:/ipfs/QmTQV6X4gkikTib49cho5iDX3JvSQbdsoEChoDwrk3CbbH"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol":{"keccak256":"0x60c65f701957fdd6faea1acb0bb45825791d473693ed9ecb34726fdfaa849dd7","urls":["bzz-raw://ea290300e0efc4d901244949dc4d877fd46e6c5e43dc2b26620e8efab3ab803f","dweb:/ipfs/QmcLLJppxKeJWqHxE2CUkcfhuRTgHSn8J4kijcLa5MYhSt"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70","urls":["bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c","dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0xaa761817f6cd7892fcf158b3c776b34551cde36f48ff9703d53898bc45a94ea2","urls":["bzz-raw://0ad7c8d4d08938c8dfc43d75a148863fb324b80cf53e0a36f7e5a4ac29008850","dweb:/ipfs/QmcrhfPgVNf5mkdhQvy1pMv51TFokD3Y4Wa5WZhFqVh8UV"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol":{"keccak256":"0x6008dabfe393240d73d7dd7688033f72740d570aa422254d29a7dce8568f3aff","urls":["bzz-raw://f5196ec75139918c6c7bb4251b36395e668f1fa6d206beba7e7520e74913940d","dweb:/ipfs/QmSyqjksXxmm2mCG6qRd1yuwLykypkSVBbnBnGqJRcuJMi"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0x37bb49513c49c87c4642a891b13b63571bc87013dde806617aa1efb54605f386","urls":["bzz-raw://b3036b3a83b7c48f96641f2a9002b9f2dcb6a5958dd670894ada21ae8229b3d0","dweb:/ipfs/QmUNfSBdoVtjhETaUJCYcaC7pTMgbhht926tJ2uXJbiVd3"],"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/introspection/IERC165.sol":{"keccak256":"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b","urls":["bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df","dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d","urls":["bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875","dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol":{"keccak256":"0xe19a4d5f31d2861e7344e8e535e2feafb913d806d3e2b5fe7782741a2a7094fe","urls":["bzz-raw://4aed79c0fa6f0546ed02f2f683e8f77f0fd2ed7eb34d8bbf3d373c9a6d95b13c","dweb:/ipfs/QmWqVz6UAVqmnWU5pqYPt1o6iDEZyPaBraAA3rKfTTSfYj"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/Checkpoints.sol":{"keccak256":"0xbdc5e074d7dd6678f67e92b1a51a20226801a407b0e1af3da367c5d1ff4519ad","urls":["bzz-raw://a36cca6b22fff3db16fc789ff6c60eea71d4b156065d4d0c83a0bc5e91a77a8b","dweb:/ipfs/QmYN3exd5AemxjBrN8XMB1p5LbbE16uC3sjbYjwi8AjcGR"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/types/Time.sol":{"keccak256":"0xc7755af115020049e4140f224f9ee88d7e1799ffb0646f37bf0df24bf6213f58","urls":["bzz-raw://7f09bf94d5274334ec021f61a04659db303f31e60460e14b709c9bf187740111","dweb:/ipfs/QmNvgomZYUwFAt4cZbPWAiTeSZQreGehY9BK5xyVJsUttb"],"license":"MIT"},"src/contracts/common/MigratableEntity.sol":{"keccak256":"0x2d736f4dacd5d7e7697503bc426c78b8250fe1694ca157965ec178da6807de58","urls":["bzz-raw://f1237acf96b4b9f9b69156e068eddd726a6e15bd8e87a18dc999cd4ba4da069c","dweb:/ipfs/QmS6M8fiFFSeuJ4ZKKq1z8W7w4ybeHQSy5TLASGoc1LVic"],"license":"BUSL-1.1"},"src/contracts/common/StaticDelegateCallable.sol":{"keccak256":"0x350029aa8955eacaffffaeb58babc5c98e80ebc5c5db388ed17ee6465f4a9d90","urls":["bzz-raw://eb392a8ee9050e0af606897df63e3404e3829e8b688b580663892f9664195764","dweb:/ipfs/QmaXC8jqV8UrrAFkzXTEv2fJF56sy33HhLxAzaRZmUxuXD"],"license":"BUSL-1.1"},"src/contracts/libraries/Checkpoints.sol":{"keccak256":"0xba90097c8bfe0a975499428b5f8ac5569483c7d92ccc28c12d70de416aae040c","urls":["bzz-raw://12f5d93ca94cd06d3147db68993165a58e17903ed53682560de61f3085ad4609","dweb:/ipfs/QmePiuAqvXprMLmFZkGZeGjvGPAvsEDHfCDv7BoQhXu9xE"],"license":"MIT"},"src/contracts/libraries/ERC4626Math.sol":{"keccak256":"0x8441160513c1cbeb1c3b9ee077bcc7e7ce20006b52a77c8dd39ff0ef89699939","urls":["bzz-raw://943f8cc3e26ddf649f465f40c909819f5c864717c4baa339e9e403b9374a4653","dweb:/ipfs/QmXPxi1sUDsrGprZdUgCzoPEosaZMv9ZhygWQ1vAi1phAB"],"license":"MIT"},"src/contracts/vault/Vault.sol":{"keccak256":"0x2ceff6ed3298c4cad144c99fcc79b51cb9397d6ebef00285b915848b476f8c2e","urls":["bzz-raw://11f2fb3581854f3ab6e82e8d4935d9eb510c903a13c3f022346c2956a58f5307","dweb:/ipfs/QmdUnoXoyYoG9SGWyQZCFyLDRUUX3eXyXetkRvw6jxqqBz"],"license":"BUSL-1.1"},"src/contracts/vault/VaultStorage.sol":{"keccak256":"0x57db25b127d77ea3472de53e3a4af3354399655b9268638b99ca5925fa364a56","urls":["bzz-raw://aa763d9a6ec508ae3abfb8228b72b9fd9525279e5135d4962e79ff059feb1173","dweb:/ipfs/QmcbDR6E9wyEpu6V2FkEC4hnWy47zXA9LSKJde6zSGd33Q"],"license":"BUSL-1.1"},"src/contracts/vault/VaultTokenized.sol":{"keccak256":"0xa9475a46a3e32b35e48bc37fdaf08e1a586fb7c9667ac5e014b716a08873c46d","urls":["bzz-raw://0a292a4f35bc43ce7174b36e2d016bc44d6737e94b41e48cb5dd1bb1e4821e48","dweb:/ipfs/QmduHZe2REPnygiWvQRV82yD4tYHdwX33FkYRFm1UZoXBA"],"license":"BUSL-1.1"},"src/interfaces/common/IEntity.sol":{"keccak256":"0x8ef4b63d6da63489778ccd5f8d13ebdd527dd4b62730b2c616df5af7474d2d21","urls":["bzz-raw://5a8d69576a9219d85c50816a18ad53a4d53cfcb27ed38b8cccc808dc2734b71b","dweb:/ipfs/QmYVN3P4Q4REvBWJ97TbAcaxm3uyB2anV6NSGa6ZtSwcEv"],"license":"MIT"},"src/interfaces/common/IMigratableEntity.sol":{"keccak256":"0x8f5f2809f3afbe8ebfbb365dd7b57b4dd3b6f9943a6187eaf648d45895b8e3c4","urls":["bzz-raw://0ffe640537d539e7a4fde70d30d3e4c57f4ba9c2c25c450cea713aae38e8fd5c","dweb:/ipfs/QmSUTGzvdcn1R1KB7tLThMRtESsfPbeXDhhhKWGtntzBds"],"license":"MIT"},"src/interfaces/common/IRegistry.sol":{"keccak256":"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb","urls":["bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014","dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK"],"license":"MIT"},"src/interfaces/common/IStaticDelegateCallable.sol":{"keccak256":"0xa335d4e81b9071b7de66ef92b43ff20671d86516eb1be46fef29a3483cd3f5d5","urls":["bzz-raw://d464b9db863c14c05547d2b23352f2e9b7b784799cf09f6bbc4906a2a74e3516","dweb:/ipfs/QmUVWzFvJz7eEbDQKiFTTzwi7TEbjcs3VmwdM4kuptAKvi"],"license":"MIT"},"src/interfaces/delegator/IBaseDelegator.sol":{"keccak256":"0x96bb312f032e17accce3f8f80936d99468029d6b37c9ca74acdb4b026a0148ee","urls":["bzz-raw://2a66dcb5b7d1a6ef6a363431ea98ebd78bc4fdd3d7a134d9b542dc66e7d025c2","dweb:/ipfs/QmRhTPLd2ZAyRHmJUFUcWKs9b3if49QY17LYZuRqWmghw8"],"license":"MIT"},"src/interfaces/slasher/IBaseSlasher.sol":{"keccak256":"0x7c82528b445659c313ab77335c407b0b6efe5e79027187bb287f7bc74202b404","urls":["bzz-raw://0274c90aa5df1aa6bb470a6aab53992fb14fd7e5472c9430416505b29647d9cf","dweb:/ipfs/QmckbmJLDetPemVzCnnGcKYWAZV2BRFXGDsjiaec8jkHxx"],"license":"MIT"},"src/interfaces/vault/IVault.sol":{"keccak256":"0xffee01d383cd4e1a5530c614bf4360c1ef070c288abec9da1eb531b51bc07235","urls":["bzz-raw://04f0046cac285d8ec44ebbb1f79dc94fab4495767190cad8364fbc1fafaadfb9","dweb:/ipfs/QmUawAunwzXfCyShWfhKeThAgKtqe51hmrxvrXvM772M2R"],"license":"MIT"},"src/interfaces/vault/IVaultStorage.sol":{"keccak256":"0x592626f13754194f83047135de19229c49390bd59e34659b1bb38be71d973a22","urls":["bzz-raw://06a6a9dfddd05e580b32bebe2cff4f63ba26a653180676d58225dd30d9c89d3e","dweb:/ipfs/QmdgzBeY6Sxo8mGtyBxtv1tM1c2kU6J6zjeRd7vuXm4DU6"],"license":"MIT"},"src/interfaces/vault/IVaultTokenized.sol":{"keccak256":"0xb723560b49c30b38130634388a0550c9e07596f92a58edbfa2415e690024e0c4","urls":["bzz-raw://dc9dde973a0bbf0adbc305462a796fa3b2e5be9daa1984e4f3e4f48e3c254f39","dweb:/ipfs/QmQydZsr7ESw7ZSe9mqaxZ3dycvru8ZFVwrL9pmVnpyd7c"],"license":"MIT"}},"version":1},"id":102} \ No newline at end of file +{"abi":[{"type":"constructor","inputs":[{"name":"delegatorFactory","type":"address","internalType":"address"},{"name":"slasherFactory","type":"address","internalType":"address"},{"name":"vaultFactory","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"DEFAULT_ADMIN_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"DELEGATOR_FACTORY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"DEPOSITOR_WHITELIST_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"DEPOSIT_LIMIT_SET_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"DEPOSIT_WHITELIST_SET_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"FACTORY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"IS_DEPOSIT_LIMIT_SET_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"SLASHER_FACTORY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"activeBalanceOf","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"activeBalanceOfAt","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"timestamp","type":"uint48","internalType":"uint48"},{"name":"hints","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"activeShares","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"activeSharesAt","inputs":[{"name":"timestamp","type":"uint48","internalType":"uint48"},{"name":"hint","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"activeSharesOf","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"activeSharesOfAt","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"timestamp","type":"uint48","internalType":"uint48"},{"name":"hint","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"activeStake","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"activeStakeAt","inputs":[{"name":"timestamp","type":"uint48","internalType":"uint48"},{"name":"hint","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"allowance","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"spender","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"approve","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"balanceOf","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"burner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"claim","inputs":[{"name":"recipient","type":"address","internalType":"address"},{"name":"epoch","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"claimBatch","inputs":[{"name":"recipient","type":"address","internalType":"address"},{"name":"epochs","type":"uint256[]","internalType":"uint256[]"}],"outputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"collateral","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"currentEpoch","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"currentEpochStart","inputs":[],"outputs":[{"name":"","type":"uint48","internalType":"uint48"}],"stateMutability":"view"},{"type":"function","name":"decimals","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"uint8"}],"stateMutability":"view"},{"type":"function","name":"delegator","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"deposit","inputs":[{"name":"onBehalfOf","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"depositedAmount","type":"uint256","internalType":"uint256"},{"name":"mintedShares","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"depositLimit","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"depositWhitelist","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"epochAt","inputs":[{"name":"timestamp","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"epochDuration","inputs":[],"outputs":[{"name":"","type":"uint48","internalType":"uint48"}],"stateMutability":"view"},{"type":"function","name":"epochDurationInit","inputs":[],"outputs":[{"name":"","type":"uint48","internalType":"uint48"}],"stateMutability":"view"},{"type":"function","name":"getRoleAdmin","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"grantRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"hasRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"initialize","inputs":[{"name":"initialVersion","type":"uint64","internalType":"uint64"},{"name":"owner_","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"isDelegatorInitialized","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isDepositLimit","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isDepositorWhitelisted","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"value","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isInitialized","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isSlasherInitialized","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isWithdrawalsClaimed","inputs":[{"name":"epoch","type":"uint256","internalType":"uint256"},{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"value","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"migrate","inputs":[{"name":"newVersion","type":"uint64","internalType":"uint64"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"nextEpochStart","inputs":[],"outputs":[{"name":"","type":"uint48","internalType":"uint48"}],"stateMutability":"view"},{"type":"function","name":"onSlash","inputs":[{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"captureTimestamp","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"slashedAmount","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"previousEpochStart","inputs":[],"outputs":[{"name":"","type":"uint48","internalType":"uint48"}],"stateMutability":"view"},{"type":"function","name":"redeem","inputs":[{"name":"claimer","type":"address","internalType":"address"},{"name":"shares","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"withdrawnAssets","type":"uint256","internalType":"uint256"},{"name":"mintedShares","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"renounceRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"callerConfirmation","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"revokeRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setDelegator","inputs":[{"name":"delegator_","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setDepositLimit","inputs":[{"name":"limit","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setDepositWhitelist","inputs":[{"name":"status","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setDepositorWhitelistStatus","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"status","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setIsDepositLimit","inputs":[{"name":"status","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setSlasher","inputs":[{"name":"slasher_","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"slashableBalanceOf","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"slasher","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"staticDelegateCall","inputs":[{"name":"target","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"symbol","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"totalStake","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"totalSupply","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"transfer","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"transferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"version","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"withdraw","inputs":[{"name":"claimer","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"burnedShares","type":"uint256","internalType":"uint256"},{"name":"mintedShares","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"withdrawalShares","inputs":[{"name":"epoch","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"withdrawalSharesOf","inputs":[{"name":"epoch","type":"uint256","internalType":"uint256"},{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"withdrawals","inputs":[{"name":"epoch","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"withdrawalsOf","inputs":[{"name":"epoch","type":"uint256","internalType":"uint256"},{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"event","name":"Approval","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"spender","type":"address","indexed":true,"internalType":"address"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Claim","inputs":[{"name":"claimer","type":"address","indexed":true,"internalType":"address"},{"name":"recipient","type":"address","indexed":true,"internalType":"address"},{"name":"epoch","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"ClaimBatch","inputs":[{"name":"claimer","type":"address","indexed":true,"internalType":"address"},{"name":"recipient","type":"address","indexed":true,"internalType":"address"},{"name":"epochs","type":"uint256[]","indexed":false,"internalType":"uint256[]"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Deposit","inputs":[{"name":"depositor","type":"address","indexed":true,"internalType":"address"},{"name":"onBehalfOf","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"shares","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"OnSlash","inputs":[{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"captureTimestamp","type":"uint48","indexed":false,"internalType":"uint48"},{"name":"slashedAmount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"RoleAdminChanged","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"previousAdminRole","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"newAdminRole","type":"bytes32","indexed":true,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"RoleGranted","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"sender","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"RoleRevoked","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"sender","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"SetDelegator","inputs":[{"name":"delegator","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"SetDepositLimit","inputs":[{"name":"limit","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"SetDepositWhitelist","inputs":[{"name":"status","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"SetDepositorWhitelistStatus","inputs":[{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"status","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"SetIsDepositLimit","inputs":[{"name":"status","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"SetSlasher","inputs":[{"name":"slasher","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Withdraw","inputs":[{"name":"withdrawer","type":"address","indexed":true,"internalType":"address"},{"name":"claimer","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"burnedShares","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"mintedShares","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"error","name":"AccessControlBadConfirmation","inputs":[]},{"type":"error","name":"AccessControlUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"neededRole","type":"bytes32","internalType":"bytes32"}]},{"type":"error","name":"AddressEmptyCode","inputs":[{"name":"target","type":"address","internalType":"address"}]},{"type":"error","name":"AddressInsufficientBalance","inputs":[{"name":"account","type":"address","internalType":"address"}]},{"type":"error","name":"AlreadyClaimed","inputs":[]},{"type":"error","name":"AlreadyInitialized","inputs":[]},{"type":"error","name":"AlreadySet","inputs":[]},{"type":"error","name":"CheckpointUnorderedInsertion","inputs":[]},{"type":"error","name":"DelegatorAlreadyInitialized","inputs":[]},{"type":"error","name":"DepositLimitReached","inputs":[]},{"type":"error","name":"ERC20InsufficientAllowance","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"allowance","type":"uint256","internalType":"uint256"},{"name":"needed","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ERC20InsufficientBalance","inputs":[{"name":"sender","type":"address","internalType":"address"},{"name":"balance","type":"uint256","internalType":"uint256"},{"name":"needed","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ERC20InvalidApprover","inputs":[{"name":"approver","type":"address","internalType":"address"}]},{"type":"error","name":"ERC20InvalidReceiver","inputs":[{"name":"receiver","type":"address","internalType":"address"}]},{"type":"error","name":"ERC20InvalidSender","inputs":[{"name":"sender","type":"address","internalType":"address"}]},{"type":"error","name":"ERC20InvalidSpender","inputs":[{"name":"spender","type":"address","internalType":"address"}]},{"type":"error","name":"FailedInnerCall","inputs":[]},{"type":"error","name":"InsufficientClaim","inputs":[]},{"type":"error","name":"InsufficientDeposit","inputs":[]},{"type":"error","name":"InsufficientRedemption","inputs":[]},{"type":"error","name":"InsufficientWithdrawal","inputs":[]},{"type":"error","name":"InvalidAccount","inputs":[]},{"type":"error","name":"InvalidCaptureEpoch","inputs":[]},{"type":"error","name":"InvalidClaimer","inputs":[]},{"type":"error","name":"InvalidCollateral","inputs":[]},{"type":"error","name":"InvalidDelegator","inputs":[]},{"type":"error","name":"InvalidEpoch","inputs":[]},{"type":"error","name":"InvalidEpochDuration","inputs":[]},{"type":"error","name":"InvalidInitialization","inputs":[]},{"type":"error","name":"InvalidLengthEpochs","inputs":[]},{"type":"error","name":"InvalidOnBehalfOf","inputs":[]},{"type":"error","name":"InvalidRecipient","inputs":[]},{"type":"error","name":"InvalidSlasher","inputs":[]},{"type":"error","name":"InvalidTimestamp","inputs":[]},{"type":"error","name":"MathOverflowedMulDiv","inputs":[]},{"type":"error","name":"MissingRoles","inputs":[]},{"type":"error","name":"NoPreviousEpoch","inputs":[]},{"type":"error","name":"NotDelegator","inputs":[]},{"type":"error","name":"NotFactory","inputs":[]},{"type":"error","name":"NotInitialized","inputs":[]},{"type":"error","name":"NotInitializing","inputs":[]},{"type":"error","name":"NotSlasher","inputs":[]},{"type":"error","name":"NotWhitelistedDepositor","inputs":[]},{"type":"error","name":"OwnableInvalidOwner","inputs":[{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"OwnableUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"}]},{"type":"error","name":"ReentrancyGuardReentrantCall","inputs":[]},{"type":"error","name":"SafeCastOverflowedUintDowncast","inputs":[{"name":"bits","type":"uint8","internalType":"uint8"},{"name":"value","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"SafeERC20FailedOperation","inputs":[{"name":"token","type":"address","internalType":"address"}]},{"type":"error","name":"SlasherAlreadyInitialized","inputs":[]},{"type":"error","name":"TooMuchRedeem","inputs":[]},{"type":"error","name":"TooMuchWithdraw","inputs":[]}],"bytecode":{"object":"0x60e03461013c57601f61579138819003918201601f1916830192916001600160401b03918285118486101761014057816060928592604097885283398101031261013c5761004c82610154565b916100648461005d60208401610154565b9201610154565b9260805260a0527ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a009081549060ff82861c1661012b5780808316036100e7575b50505060c05251615628908161016982396080518181816115820152611b29015260a051818181611c9201526121ef015260c051818181610a9b0152610cc30152f35b6001600160401b0319909116811790915582519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a15f80806100a4565b845163f92ee8a960e01b8152600490fd5b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b51906001600160a01b038216820361013c5756fe60806040526004361015610011575f80fd5b5f3560e01c806301ffc9a7146104ba57806306fdde03146104b5578063095ea7b3146104b05780631415519b146104ab57806318160ddd146103895780631b66c9e1146104a65780631e9a6950146104a157806323b872dd1461049c578063248a9ca31461049757806327810b6e14610492578063281f57521461048d5780632abe3048146104885780632d73c69c146104835780632dd310001461047e5780632f2ff15d14610479578063313ce5671461047457806336568abe1461046f578063392e53cd1461046a5780634105a7dd14610465578063463616711461046057806347e7ef241461045b57806348d3b775146104565780634ff0876a1461045157806350861adc1461044c57806350f22068146104475780635346e34f1461044257806354fd4d501461043d57806357ec83cc1461043857806359f769a9146104335780635cc070761461042e57806361a8c8c4146104295780636da3e06d146104245780636ec1e3f81461041f57806370a08231146103d4578063715018a61461041a5780637278e31c1461041557806373790ab314610410578063766718081461040b578063794b15b7146104065780637953b33b146104015780637c04c80a146103fc578063810da75d146103f757806383cd9cc3146103f257806387df0788146103ed5780638b0e9f3f146103e85780638da5cb5b146103e357806391d14854146103de57806395d89b41146103d95780639d66201b146103d45780639f86fd85146103cf578063a1b12202146103ca578063a217fddf146103c5578063a21a1df9146103c0578063a2861466146103bb578063a3b54172146103b6578063a5d03223146103b1578063a9059cbb146103ac578063aabc2496146103a7578063aad3ec96146103a2578063afba70ad1461039d578063b134427114610398578063bd49c35f14610393578063bdc8144b1461038e578063bfefcd7b14610389578063c31e8dd714610384578063ce9b79301461037f578063d547741f1461037a578063d8dfeb4514610375578063db38871514610370578063dd62ed3e1461036b578063ecf7085814610366578063efb559d614610361578063f2fde38b1461035c578063f3fef3a3146103575763f5e7ee0f14610352575f80fd5b6128a9565b612803565b6127d6565b612687565b61266a565b612633565b6125f9565b6125ce565b612582565b61255a565b6124f0565b610749565b612412565b6123f8565b6123d0565b6123a6565b6122e5565b61212e565b6120f9565b6120b3565b612066565b611f73565b611f39565b611f1f565b611efb565b611e67565b6115d6565b611db5565b611d57565b611d23565b611cc1565b611c7d565b611ac4565b611aab565b611a45565b611a1e565b6119de565b61198c565b61194b565b611677565b611610565b6115b1565b61156d565b61151a565b6114f0565b6114c9565b611391565b61135f565b6112ca565b6112b1565b611254565b611234565b611213565b610f2b565b610f03565b610e68565b610e23565b610dd8565b610d40565b610cf2565b610cae565b610c42565b610a56565b610988565b610960565b610927565b61088a565b6107a5565b61076b565b61070f565b61064d565b61054c565b346105105760203660031901126105105760043563ffffffff60e01b811680910361051057602090637965db0b60e01b81149081156104ff575b506040519015158152f35b6301ffc9a760e01b1490505f6104f4565b5f80fd5b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b906020610549928181520190610514565b90565b34610510575f366003190112610510576040515f5f805160206154d383398151915280549061057a826128d3565b8085529160209160019182811690811561060f57506001146105b7575b6105b3866105a781880382610b86565b60405191829182610538565b0390f35b5f90815293507f2ae08a8e29253f69ac5d979a101956ab8f8d9d7ded63fa7a83b16fc47648eab05b8385106105fc575050505081016020016105a7826105b35f610597565b80548686018401529382019381016105df565b90508695506105b3969350602092506105a794915060ff191682840152151560051b82010192935f610597565b6001600160a01b0381160361051057565b346105105760403660031901126105105760043561066a8161063c565b60243533156106f7576001600160a01b0382169182156106df576106a78291610692336119a6565b9060018060a01b03165f5260205260405f2090565b556040519081527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560203392a3602060405160018152f35b604051634a1406b160e11b81525f6004820152602490fd5b60405163e602df0560e01b81525f6004820152602490fd5b34610510575f3660031901126105105760206040517fc6aaadd7371d5e8f9ed6849dd66a66573a3ba37167d03f4352c9ba5693678fac8152f35b34610510575f366003190112610510576020610763614003565b604051908152f35b34610510575f3660031901126105105760206040517f9c56d972d63cbb4195b3c1484691dfc220fa96a4c47e7b6613bd82a022029e068152f35b34610510576040366003190112610510576004356107c28161063c565b602435906107ce612e1a565b6001600160a01b0381161561087957335f908152600e602052604090206107f9906140f0565b6140f0565b82116108675761081961080a61407c565b610812614003565b9084614164565b918215610852578261082a92612e49565b9061084160015f805160206155b383398151915255565b604080519182526020820192909252f35b60405160016245ddc760e11b03198152600490fd5b604051632418411f60e11b8152600490fd5b6040516208978560e71b8152600490fd5b34610510576060366003190112610510576004356108a78161063c565b6024356108b38161063c565b604435906108c433610692856119a6565b5492600184016108e5575b6108d99350612fd9565b60405160018152602090f35b828410610901576108fc836108d99503338361413d565b6108cf565b604051637dc7a0d960e11b81523360048201526024810185905260448101849052606490fd5b34610510576020366003190112610510576004355f525f805160206155938339815191526020526020600160405f200154604051908152f35b34610510575f366003190112610510576001546040516001600160a01b039091168152602090f35b34610510575f366003190112610510576109a0612b3f565b8015610a015760015465ffffffffffff8160a01c16915f1981019081116109fc576109ce9160d01c9061293a565b81018091116109fc576109e36105b391613138565b60405165ffffffffffff90911681529081906020820190565b61290b565b604051639fa56a5b60e01b8152600490fd5b600435906001600160401b038216820361051057565b9181601f84011215610510578235916001600160401b038311610510576020838186019501011161051057565b3461051057604036600319011261051057610a6f610a13565b6001600160401b0360243581811161051057610a8f903690600401610a29565b5050610a99612e1a565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163303610b15575f805160206155d3833981519152549060ff8260401c16928315610b05575b505050610af3575f80fd5b60405163f92ee8a960e01b8152600490fd5b81169116101590505f8080610ae8565b604051631966391b60e11b8152600490fd5b65ffffffffffff81160361051057565b634e487b7160e01b5f52604160045260245ffd5b606081019081106001600160401b03821117610b6657604052565b610b37565b604081019081106001600160401b03821117610b6657604052565b90601f801991011681019081106001600160401b03821117610b6657604052565b6040519061016082018281106001600160401b03821117610b6657604052565b60405190610bd482610b6b565b565b6001600160401b038111610b6657601f01601f191660200190565b929192610bfd82610bd6565b91610c0b6040519384610b86565b829481845281830111610510578281602093845f960137010152565b9080601f830112156105105781602061054993359101610bf1565b3461051057606036600319011261051057600435610c5f8161063c565b60243590610c6c82610b27565b604435906001600160401b03821161051057602092610c92610763933690600401610c27565b6001600160a01b039092165f908152600e855260409020613331565b34610510575f366003190112610510576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461051057604036600319011261051057610d3e602435600435610d158261063c565b805f525f80516020615593833981519152602052610d39600160405f200154613508565b613808565b005b34610510575f366003190112610510575f5460405163313ce56760e01b8152906020908290600490829060101c6001600160a01b03165afa8015610dd3575f90610d95575b60405160ff919091168152602090f35b506020813d602011610dcb575b81610daf60209383610b86565b81010312610510575160ff81168103610510576105b390610d85565b3d9150610da2565b612989565b3461051057604036600319011261051057602435610df58161063c565b336001600160a01b03821603610e1157610d3e9060043561383e565b60405163334bd91960e11b8152600490fd5b34610510575f3660031901126105105760ff60025460a01c1680610e4f575b6020906040519015158152f35b5060035460a01c60ff16610e42565b8015150361051057565b3461051057602036600319011261051057600435610e8581610e5e565b610e8d612e1a565b610e956133fd565b5f54901515908160ff8216151514610ef15760ff191660ff8216175f556040519081527f3e12b7b36c75ac9609a3f58609b331210428e1a85909132638955ba0301eec3390602090a160015f805160206155b383398151915255005b60405163a741a04560e01b8152600490fd5b34610510575f36600319011261051057602065ffffffffffff60015460a01c16604051908152f35b3461051057604080600319360112610510576004803591610f4b8361063c565b610f53612e1a565b6001600160a01b0391838316908115611205575f5460ff8116806111ec575b6111dd5783516370a0823160e01b808252308483019081529096602093909160109190911c82169084908490819083010381845afa928315610dd3575f936111ba575b50610fc790602435903090339061453d565b5f5486519788523085890190815290979184918391908290819060200103918b60101c165afa908115610dd357611006935f9261118d575b505061292d565b93841561117e5760081c60ff1680611169575b61115b5750906105b3916110ca61102e61407c565b9561107761103a614003565b6110626110488a838b614164565b9961105c8a61105642613138565b9261295b565b90613c9e565b50506110718961105642613138565b90613d7e565b50506001600160a01b0381165f908152600e60205260409020906110c4886110bf6107f46110a442613138565b6001600160a01b039095165f908152600e6020526040902090565b61295b565b91613e5a565b5050815184815260208101869052819033907fdcbc1c05240f31ff3ad067ef1ee35ce4997762752e3a095284754544f4c709d790604090a361111860015f805160206155b383398151915255565b81518581525f907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90602090a35191825260208201929092529081906040820190565b8251632484557960e01b8152fd5b50611176846110bf61407c565b815410611019565b50825163070f6eed60e11b8152fd5b6111ac9250803d106111b3575b6111a48183610b86565b8101906138d0565b5f80610fff565b503d61119a565b610fc79193506111d690853d87116111b3576111a48183610b86565b9290610fb5565b5082516304f63b8560e01b8152fd5b50335f9081526005602052604090205460ff1615610f72565b8251630d534ce360e11b8152fd5b34610510575f36600319011261051057602060ff5f54166040519015158152f35b34610510575f36600319011261051057602060015460d01c604051908152f35b34610510575f36600319011261051057602060ff60025460a01c166040519015158152f35b9060406003198301126105105760043561129281610b27565b91602435906001600160401b0382116105105761054991600401610c27565b346105105760206107636112c436611279565b9061319b565b34610510576020366003190112610510576004356112e781610e5e565b6112ef612e1a565b6112f761345a565b5f54901515908160ff8260081c16151514610ef15761ff001916600882901b61ff0016175f556040519081527ffa7a25a0b611d4ba3c0ea990e90dc23d484a5dd7a1be4733fef2946ba74530c690602090a1610d3e60015f805160206155b383398151915255565b34610510575f3660031901126105105760206001600160401b035f805160206155d38339815191525416604051908152f35b34610510576060366003190112610510576113aa610a13565b6024356113b68161063c565b6001600160401b0391604435838111610510576113d7903690600401610a29565b5f805160206155d38339815191529491855494838616806114b85760ff8760401c169081156114ab575b50610af3577fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2966114a69661146e958716906001600160401b0319161790556114695f805160206155d3833981519152600160401b68ff000000000000000019825416179055565b612994565b5f805160206155d3833981519152805468ff0000000000000000191690556040516001600160401b0390911681529081906020820190565b0390a1005b905084861611155f611401565b60405162dc149f60e41b8152600490fd5b346105105760203660031901126105105760206107636004356114eb8161063c565b612aa8565b34610510576020366003190112610510576004355f526006602052602060405f2054604051908152f35b34610510575f3660031901126105105760015465ffffffffffff611550818360a01c1692611546612b3f565b9060d01c9061293a565b82018092116109fc57611564602092613138565b60405191168152f35b34610510575f366003190112610510576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b34610510575f36600319011261051057602060ff60035460a01c166040519015158152f35b34610510576020366003190112610510576004356115f38161063c565b60018060a01b03165f52600e602052602061076360405f206140f0565b34610510575f36600319011261051057611628613abc565b5f8051602061553383398151915280546001600160a01b031981169091555f906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b346105105760403660031901126105105760043560243561169781610b27565b61169f612e1a565b6003546116bc906001600160a01b03165b6001600160a01b031690565b3303611939576116ca612b3f565b906116d481612b73565b9082151580611928575b801561191f575b61190d576105b3937ff9d090c096f71cd1659861a9ce5b6f384bceb4e2fa4e4a19edf6489a9b8d56c79261171761407c565b946117326117248261294d565b5f52600660205260405f2090565b54908281036118265750611746818761295b565b6117508185613af4565b9687806117df575b50505050505b836117ab575b6040805191825265ffffffffffff929092166020820152908101839052606090a161179b60015f805160206155b383398151915255565b6040519081529081906020820190565b5f546117da9085906117c89060101c6001600160a01b03166116b0565b6001546001600160a01b031690613f18565b611764565b61181b93610fff8361105c6118056117fe611724986118159888613b10565b809661292d565b9461180f42613138565b9261292d565b9261294d565b555f80808087611758565b915061183a825f52600660205260405f2090565b549061184a816110bf848a61295b565b906118558286613af4565b9788611866575b505050505061175e565b6118db938361188e9361189b8c6118966118846118cc998884613b10565b9788958584613b10565b94859261292d565b61292d565b938484106118e6575b610fff9061105c6118ba95969761180f42613138565b6118c66117248761294d565b5561292d565b915f52600660205260405f2090565b555f8080808061185c565b91611902610fff916118fc866118ba979861292d565b9061295b565b8594509290506118a4565b604051635e18d2a560e01b8152600490fd5b508282116116e5565b506119328361291f565b82106116de565b60405163dabc4ad960e01b8152600490fd5b34610510575f3660031901126105105760015465ffffffffffff808260a01c1691611974612b3f565b600181018091116109fc576115509160d01c9061293a565b34610510575f366003190112610510576020610763612b3f565b6001600160a01b03165f9081527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace016020526040902090565b34610510576020366003190112610510576004356119fb8161063c565b60018060a01b03165f526005602052602060ff60405f2054166040519015158152f35b34610510576020366003190112610510576020610763600435611a4081610b27565b612b73565b3461051057604036600319011261051057600435611a628161063c565b6024356001600160401b038082116105105736602383011215610510578160040135908111610510573660248260051b84010111610510576105b392602461179b930190612bae565b34610510576020610763611abe36611279565b9061327c565b3461051057602080600319360112610510576004803590611ae48261063c565b611aec612e1a565b60025460a01c60ff16611c6e576040516302910f8b60e31b81526001600160a01b03838116838301908152909491908290829081906020010381887f0000000000000000000000000000000000000000000000000000000000000000165afa908115610dd3575f91611c41575b5015611c315760405163fbfa77cf60e01b8152838516949082818581895afa928315610dd3575f93611c02575b505030911603611bf35750600280546001600160a01b03929092166001600160a81b031990921691909117600160a01b1790557fdb2160616f776a37b24808115554e79439bf26cccbbd4438190cc6d28e80ecd15f80a2610d3e60015f805160206155b383398151915255565b60405163b9f0f17160e01b8152fd5b611c22929350803d10611c2a575b611c1a8183610b86565b810190612d07565b905f80611b86565b503d611c10565b506040516324e5af8d60e21b8152fd5b611c619150823d8411611c67575b611c598183610b86565b810190612ce7565b5f611b59565b503d611c4f565b604051631380833b60e01b8152fd5b34610510575f366003190112610510576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b34610510575f36600319011261051057611cd9612b3f565b611ce161407c565b90805f52600660205260405f205482018092116109fc57600181018091116109fc575f52600660205260405f205481018091116109fc57602090604051908152f35b34610510575f366003190112610510575f80516020615533833981519152546040516001600160a01b039091168152602090f35b3461051057604036600319011261051057602060ff611da9602435611d7b8161063c565b6004355f525f80516020615593833981519152845260405f209060018060a01b03165f5260205260405f2090565b54166040519015158152f35b34610510575f366003190112610510576040515f5f80516020615513833981519152805490611de3826128d3565b8085529160209160019182811690811561060f5750600114611e0f576105b3866105a781880382610b86565b5f90815293507f46a2803e59a4de4e7a4c574b1243f25977ac4c77d5a1a4a609b5394cebb4a2aa5b838510611e54575050505081016020016105a7826105b35f610597565b8054868601840152938201938101611e37565b3461051057604036600319011261051057600435611e848161063c565b6024356001600160401b038111610510575f91611ea683923690600401610a29565b90816040519283928337810184815203915af4611ef3611ec4612d1c565b91611ee5604051938492151560208401526040808401526060830190610514565b03601f198101835282610b86565b805190602001fd5b34610510575f36600319011261051057602060ff5f5460081c166040519015158152f35b34610510575f3660031901126105105760206040515f8152f35b34610510575f3660031901126105105760206040517f4a634bc14d77baf979756509ef4298c6f6318af357828612545267ee2eb792338152f35b3461051057604036600319011261051057600435611f908161063c565b602435611f9c81610e5e565b611fa4612e1a565b611fac6134b1565b6001600160a01b038216918215612054575f8381526005602052604090205460ff16151582151514610ef1576001600160a01b03165f9081526005602052604090207ff991b1ecfb5115cbb36a2b2e2240c058406d2acc2fcc6e9e2dc99d845ff70a629161203b91612029908260ff801983541691151516179055565b60405190151581529081906020820190565b0390a2610d3e60015f805160206155b383398151915255565b604051630da30f6560e31b8152600490fd5b346105105760403660031901126105105760206120aa6024356120888161063c565b6004355f526008835260405f209060018060a01b03165f5260205260405f2090565b54604051908152f35b3461051057604036600319011261051057602060ff611da96024356120d78161063c565b6004355f526009845260405f209060018060a01b03165f5260205260405f2090565b34610510576040366003190112610510576121236004356121198161063c565b6024359033612fd9565b602060405160018152f35b346105105760208060031936011261051057600480359061214e8261063c565b612156612e1a565b60035460a01c60ff166122d6576001600160a01b038281169390846121c4575b6003805460ff60a01b1916600160a01b179055847fe7e4c932e03abddfe20f83af42c33627e816115c7ec2b168441f65dc14bfc3ba5f80a2610d3e60015f805160206155b383398151915255565b6040516302910f8b60e31b81526001600160a01b0385168482019081528390829081906020010381857f0000000000000000000000000000000000000000000000000000000000000000165afa908115610dd3575f916122b9575b50156122a85760405163fbfa77cf60e01b815282818581895afa928315610dd3575f93612289575b50503091160361227a5750600380546001600160a01b0319166001600160a01b039092169190911790555f808080612176565b604051633f3e089160e21b8152fd5b6122a0929350803d10611c2a57611c1a8183610b86565b905f80612247565b60405163dabc4ad960e01b81528390fd5b6122d09150833d8511611c6757611c598183610b86565b5f61221f565b60405163703fe2e560e01b8152fd5b34610510576040366003190112610510576004356123028161063c565b6024359061230e612e1a565b6001600160a01b03918183169081156123945761233f6105b39461233183613f67565b9485915f5460101c16613f18565b604080519182526020820184905233917f865ca08d59f5cb456e85cd2f7ef63664ea4f73327414e9d8152c4158b0e946459190a360015f805160206155b3833981519152556040519081529081906020820190565b604051634e46966960e11b8152600490fd5b34610510576020366003190112610510576004355f526007602052602060405f2054604051908152f35b34610510575f366003190112610510576003546040516001600160a01b039091168152602090f35b34610510575f36600319011261051057602061076361407c565b346105105760203660031901126105105760043561242e612e1a565b335f9081527f2d4ccbfe9f7672a6f2537c1e5bce6adacb73706879154bbab6ce096012d6721660205260409020547f4a634bc14d77baf979756509ef4298c6f6318af357828612545267ee2eb792339060ff16156124d257508060045414610ef1576020817f854df3eb95564502c8bc871ebdd15310ee26270f955f6c6bd8cea68e75045bc092600455604051908152a160015f805160206155b383398151915255005b6044906040519063e2517d3f60e01b82523360048301526024820152fd5b346105105760203660031901126105105760043561250d8161063c565b612515612b3f565b61251e82612aa8565b916125298183612dbc565b83018093116109fc57600182018092116109fc5761254691612dbc565b81018091116109fc57602090604051908152f35b34610510575f366003190112610510576002546040516001600160a01b039091168152602090f35b3461051057604036600319011261051057610d3e6024356004356125a58261063c565b805f525f805160206155938339815191526020526125c9600160405f200154613508565b61383e565b34610510575f366003190112610510575f5460405160109190911c6001600160a01b03168152602090f35b34610510575f3660031901126105105760206040517fbae4ee3de6c709ff9a002e774c5b78cb381560b219213c88ae0f1e207c03c0238152f35b346105105760403660031901126105105760206120aa6004356126558161063c565b610692602435916126658361063c565b6119a6565b34610510575f366003190112610510576020600454604051908152f35b34610510576060366003190112610510576004356126a48161063c565b602435906126b182610b27565b6001600160401b0391604435838111610510576126d2903690600401610a29565b909260409384516126e281610b4b565b60608152606060208201526060868201529280612741575b6105b386612732878761272c6127138984845191612968565b928561272360208501518361327c565b9301519061319b565b91614164565b90519081529081906020820190565b8101939250602081850312610510578035908682116105105701926060848203126105105784519561277287610b4b565b84358181116105105782612787918701610c27565b8752602085013581811161051057826127a1918701610c27565b602088015285850135908111610510576105b3966127ca61272c93612713936127329801610c27565b878201529394506126fa565b3461051057602036600319011261051057610d3e6004356127f68161063c565b6127fe613abc565b612d4b565b34610510576040366003190112610510576004356128208161063c565b60243561282b612e1a565b6001600160a01b038216156108795780156128975761285a61284b614003565b61285361407c565b9083614c31565b335f908152600e60205260409020909290612874906140f0565b83116128855761082a918391612e49565b6040516321727a3760e11b8152600490fd5b604051636c6c627d60e11b8152600490fd5b346105105760403660031901126105105760206107636024356128cb8161063c565b600435612dbc565b90600182811c92168015612901575b60208310146128ed57565b634e487b7160e01b5f52602260045260245ffd5b91607f16916128e2565b634e487b7160e01b5f52601160045260245ffd5b5f198101919082116109fc57565b919082039182116109fc57565b818102929181159184041417156109fc57565b90600182018092116109fc57565b919082018092116109fc57565b6001600160a01b03165f908152600e60205260409020610549929190613331565b6040513d5f823e3d90fd5b916129d1926129a1614595565b6129a9614595565b60015f805160206155b3833981519152556001600160a01b038116612a8e575b503691610bf1565b80516020908201818101828483031261051057828401516001600160401b039485821161051057019283926101a093849103126105105760405193612a1585610b4b565b612a21838383016138ea565b8552610180810151868111610510578383612a3e928401016139b3565b9382860194855281015195861161051057612a66612a859383610bd498612a809401016139b3565b94604081019586525191611ee560405193849283016139f9565b6145d8565b51905190614994565b612aa290612a9a614595565b6127fe614595565b5f6129c9565b6001600160a01b03165f908152600e60205260409020612ac7906140f0565b612acf61407c565b612ad7614003565b90600181018091116109fc57600182018092116109fc5761054992613b10565b65ffffffffffff91821690821603919082116109fc57565b634e487b7160e01b5f52601260045260245ffd5b9065ffffffffffff809116918215612b3a57160490565b612b0f565b612b4842613138565b612b6f600154612b6565ffffffffffff93848360a01c1690612af7565b9060d01c90612b23565b1690565b6001549065ffffffffffff91828160a01c16918284821610612b9c57612b6f92612b6591612af7565b60405163b7d0949760e01b8152600490fd5b90612bb7612e1a565b5f926001600160a01b038316928315612394578115612c6f575f5b828110612c4d57505f547f326b6aff1cd2fb1c8234de4f9dcfb9047c5c36eb9ef2eb34af5121e969a75d279286929091612c22918491612c1d9060101c6001600160a01b03166116b0565b613f18565b612c33604051928392339684612caa565b0390a390610bd460015f805160206155b383398151915255565b94612c686001916118fc612c62898789612c95565b35613f67565b9501612bd2565b60405163edf3b93360e01b8152600490fd5b634e487b7160e01b5f52603260045260245ffd5b9190811015612ca55760051b0190565b612c81565b604080825281018390529392916001600160fb1b0381116105105760209160609160051b809183880137850101930152565b5190610bd482610e5e565b90816020910312610510575161054981610e5e565b5190610bd48261063c565b9081602091031261051057516105498161063c565b3d15612d46573d90612d2d82610bd6565b91612d3b6040519384610b86565b82523d5f602084013e565b606090565b6001600160a01b03908116908115612da4575f8051602061553383398151915280546001600160a01b031981168417909155167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3565b604051631e4fbdf760e01b81525f6004820152602490fd5b90612de290825f52600860205260405f209060018060a01b03165f5260205260405f2090565b54905f52600660205260405f2054600760205260405f205490600181018091116109fc57600182018092116109fc5761054992613b10565b5f805160206155b38339815191526002815414612e375760029055565b604051633ee5aeb560e01b8152600490fd5b335f908152600e6020526040812093949390929190612e8890612e6b42613138565b335f908152600e602052604090206110c4908990611896906140f0565b5050612ea2612e9642613138565b61107187611896614003565b5050612ebc612eb042613138565b61105c8461189661407c565b505081612f4e82610692612ed6612ed1612b3f565b61294d565b612f2d612eeb825f52600660205260405f2090565b54612efe835f52600760205260405f2090565b54612f15612f0d83838b614164565b9a8b9361295b565b612f27855f52600660205260405f2090565b5561295b565b612f3f825f52600760205260405f2090565b555f52600860205260405f2090565b612f5984825461295b565b9055604080519182526020820187905281018390526001600160a01b03919091169033907febff2602b3f468259e1e99f613fed6691f3a6526effe6ef3e768ba7ae7a36c4f90606090a36040519384529233907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9080602081015b0390a3565b916001600160a01b0380841692908315613120578116938415613108576001600160a01b0381165f908152600e60205260409020613016906140f0565b908382106130d657612fd4926130787fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef95936130656130c49460018060a01b03165f52600e60205260405f2090565b908561307042613138565b910391613e5a565b50506001600160a01b0381165f908152600e6020526040902090836130bd6107f46130a242613138565b6001600160a01b039094165f908152600e6020526040902090565b0191613e5a565b50506040519081529081906020820190565b60405163391434e360e21b81526001600160a01b03919091166004820152602481019190915260448101839052606490fd5b60405163ec442f0560e01b81525f6004820152602490fd5b604051634b637e8f60e11b81525f6004820152602490fd5b65ffffffffffff9081811161314b571690565b604490604051906306dfcc6560e41b8252603060048301526024820152fd5b90816020910312610510575163ffffffff811681036105105790565b90600163ffffffff809316019182116109fc57565b9080511561327257806020806131b69351830101910161316a565b6131bf816143d5565b906131d0825165ffffffffffff1690565b9065ffffffffffff80851692168281146132665782119182613206575b50506131fd575061054990614185565b60209150015190565b909150613214600a5461291f565b63ffffffff83161491821561322d575b50505f806131ed565b61325e91925061324761324261325392613186565b6143d5565b5165ffffffffffff1690565b65ffffffffffff1690565b115f80613224565b50505060209150015190565b5061054990614185565b9080511561332757806020806132979351830101910161316a565b6132a08161445a565b906132b1825165ffffffffffff1690565b9065ffffffffffff808516921682811461326657821191826132de575b50506131fd57506105499061424c565b9091506132ec600c5461291f565b63ffffffff831614918215613305575b50505f806132ce565b61331f91925061324761331a61325392613186565b61445a565b115f806132fc565b506105499061424c565b918051156133f3578060208061334c9351830101910161316a565b9161335783826144d5565b92613368845165ffffffffffff1690565b9065ffffffffffff80851692168281146133e7578211918261339e575b505061339557610549925061430c565b50506020015190565b9091506133ab835461291f565b63ffffffff8316149182156133c4575b50505f80613385565b6133df9192506132476133d961325392613186565b856144d5565b115f806133bb565b50505050506020015190565b506105499161430c565b335f9081527f03b26b53c87faa1058f30bb5d2fee64f717719a0d9b7e4f4df027aa5e9b6ed69602052604090207fbae4ee3de6c709ff9a002e774c5b78cb381560b219213c88ae0f1e207c03c0239060ff905b5416156124d25750565b335f9081527fe41986b390c4ce6791b87f7423b5fab7a81a0e6d89660b6264f697d008b2243a602052604090207fc6aaadd7371d5e8f9ed6849dd66a66573a3ba37167d03f4352c9ba5693678fac9060ff90613450565b335f9081527f0287ab4cb376ea253d7b2ce0c2cbf458f7deae9458470d74afdfbbee484e9540602052604090207f9c56d972d63cbb4195b3c1484691dfc220fa96a4c47e7b6613bd82a022029e069060ff90613450565b5f8181525f8051602061559383398151915260209081526040808320338452909152902060ff90613450565b6001600160a01b0381165f9081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d60205260409020545f805160206155938339815191529060ff166135df575f808052602091825260408082206001600160a01b038516835290925220805460ff1916600117905533906001600160a01b03165f7f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d8180a4600190565b50505f90565b6001600160a01b0381165f9081527f03b26b53c87faa1058f30bb5d2fee64f717719a0d9b7e4f4df027aa5e9b6ed69602052604090207fbae4ee3de6c709ff9a002e774c5b78cb381560b219213c88ae0f1e207c03c023905f805160206155938339815191529060ff905b54166136b4575f828152602091825260408082206001600160a01b038616835290925220805460ff1916600117905533916001600160a01b0316907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d5f80a4600190565b5050505f90565b6001600160a01b0381165f9081527f0287ab4cb376ea253d7b2ce0c2cbf458f7deae9458470d74afdfbbee484e9540602052604090207f9c56d972d63cbb4195b3c1484691dfc220fa96a4c47e7b6613bd82a022029e06905f805160206155938339815191529060ff90613650565b6001600160a01b0381165f9081527fe41986b390c4ce6791b87f7423b5fab7a81a0e6d89660b6264f697d008b2243a602052604090207fc6aaadd7371d5e8f9ed6849dd66a66573a3ba37167d03f4352c9ba5693678fac905f805160206155938339815191529060ff90613650565b6001600160a01b0381165f9081527f2d4ccbfe9f7672a6f2537c1e5bce6adacb73706879154bbab6ce096012d67216602052604090207f4a634bc14d77baf979756509ef4298c6f6318af357828612545267ee2eb79233905f805160206155938339815191529060ff90613650565b5f8181525f80516020615593833981519152602081815260408084206001600160a01b038716855290915290912060ff90613650565b5f8181525f80516020615593833981519152602081815260408084206001600160a01b03871685529091529091205460ff16156136b4575f828152602091825260408082206001600160a01b038616835290925220805460ff1916905533916001600160a01b0316907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b5f80a4600190565b90816020910312610510575190565b5190610bd482610b27565b919082610160910312610510576138ff610ba7565b9161390981612cfc565b835261391760208201612cfc565b6020840152613928604082016138df565b604084015261393960608201612cdc565b606084015261394a60808201612cdc565b608084015260a081015160a084015261396560c08201612cfc565b60c084015261397660e08201612cfc565b60e0840152610100613989818301612cfc565b9084015261012061399b818301612cfc565b908401526139ad610140809201612cfc565b90830152565b81601f82011215610510578051906139ca82610bd6565b926139d86040519485610b86565b8284526020838301011161051057815f9260208093018386015e8301015290565b81516001600160a01b0316815261016081019291610bd491906020818101516001600160a01b03169083015260408181015165ffffffffffff169083015260608181015115159083015260808181015115159083015260a0818101519083015260c0808201516001600160a01b03169083015260e0818101516001600160a01b031690830152610100818101516001600160a01b031690830152610120818101516001600160a01b031690830152610140908101516001600160a01b0316910152565b5f80516020615533833981519152546001600160a01b03163303613adc57565b60405163118cdaa760e01b8152336004820152602490fd5b9080821015613b01575090565b905090565b8115612b3a570490565b9091828202915f1984820993838086109503948086039514613b955784831115613b8357829109815f038216809204600280826003021880830282030280830282030280830282030280830282030280830282030280920290030293600183805f03040190848311900302920304170290565b60405163227bc15360e01b8152600490fd5b5050906105499250613b06565b600b54811015612ca557600b5f525f8051602061557383398151915201905f90565b600d54811015612ca557600d5f525f8051602061555383398151915201905f90565b8054821015612ca5575f5260205f2001905f90565b600d54600160401b811015610b66576001810180600d55811015612ca557600d5f525f805160206155538339815191520155565b600b54600160401b811015610b66576001810180600b55811015612ca557600b5f525f805160206155738339815191520155565b90815491600160401b831015610b665782613c86916001610bd495018155613be6565b90919082549060031b91821b915f19901b1916179055565b919091600d9081548015613d49575b50613cb6614add565b50929091815492613cc561407c565b9481613d34575b5015613d1157505f1982018281116109fc5781541115612ca5575f527fd7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb4018390559190565b613d25926001600160d01b03169150614f65565b5050613d3083613bfb565b9190565b65ffffffffffff83811691161490505f613ccc565b600160401b811015610b665760018101808455811015612ca5575f908382525f8051602061555383398151915201555f613cad565b919091600b9081548015613e25575b50613d96614b48565b50929091815492613da5614003565b9481613e10575b5015613df157505f1982018281116109fc5781541115612ca5575f527f0175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db8018390559190565b613e05926001600160d01b03169150615065565b5050613d3083613c2f565b65ffffffffffff83811691161490505f613dac565b600160401b811015610b665760018101808455811015612ca5575f908382525f8051602061557383398151915201555f613d8d565b90929192600182019081548015613ee8575b5084613e7784614b92565b50949092845493613e87836140f0565b9681613ed3575b5015613eb0575050505f1981019081116109fc57613c868591613d3093613be6565b613d30949293613ecc926001600160d01b03909116919061510f565b5050613c63565b65ffffffffffff83811691161490505f613e8e565b600160401b811015610b6657806001613f049201845583613be6565b8154905f199060031b1b191690555f613e6c565b60405163a9059cbb60e01b60208201526001600160a01b03909216602483015260448083019390935291815260808101916001600160401b03831182841017610b6657610bd492604052614bc0565b90613f70612b3f565b821015613ff1575f82815260096020908152604080832033845290915290205460ff16613fdf57613fa13383612dbc565b918215613fcd575f9081526009602090815260408083203384529091529020805460ff19166001179055565b6040516366c0bcbf60e11b8152600490fd5b604051630c8d9eab60e31b8152600490fd5b60405163d5b25b6360e01b8152600490fd5b600a548061404357505f5b6001600160d01b0381161561403e57600b54811015612ca557600b5f525f80516020615573833981519152015490565b505f90565b805f198101116109fc57600a5f527fc65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a7015460301c61400e565b600c54806140b757505f5b6001600160d01b0381161561403e57600d54811015612ca557600d5f525f80516020615553833981519152015490565b805f198101116109fc57600c5f527fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c6015460301c614087565b80548061411f57505f5b6001600160d01b038116156135df5760016141159201613be6565b90549060031b1c90565b5f199080828101116109fc57825f5260205f2001015460301c6140fa565b906001600160a01b03808316156106f7578116156106df57610692614161926119a6565b55565b9190600181018091116109fc57600182018092116109fc5761054992613b10565b600a54905f8291600584116141f3575b61419f935061531b565b806141c257505f5b6001600160d01b0381161561403e5761411561054991613ba2565b6141e76141d16141ee9261291f565b600a5f525f805160206154f38339815191520190565b5460301c90565b6141a7565b91926141fe816151e2565b81039081116109fc5761419f93600a5f5265ffffffffffff80835f805160206154f3833981519152015416908516105f1461423a575091614195565b9291506142469061294d565b90614195565b600c54905f8291600584116142b3575b6142669350615384565b8061428957505f5b6001600160d01b0381161561403e5761411561054991613bc4565b6141e76142986142ae9261291f565b600c5f525f805160206154b38339815191520190565b61426e565b91926142be816151e2565b81039081116109fc5761426693600c5f5265ffffffffffff80835f805160206154b3833981519152015416908516105f146142fa57509161425c565b9291506143069061294d565b9061425c565b908154905f82916005841161436f575b6143279350846153ed565b8061434f57505f905b6001600160d01b038216156135df576105499160016141159201613be6565b6141e761435e6143699261291f565b835f5260205f200190565b90614330565b919261437a816151e2565b81039081116109fc5761432793855f5265ffffffffffff808360205f20015416908516105f146143ab57509161431c565b9291506143b79061294d565b9061431c565b604051906143ca82610b6b565b5f6020838281520152565b6143dd6143bd565b506143e66143bd565b50600a54811015612ca55761440d90600a5f525f805160206154f383398151915201614ab9565b65ffffffffffff81511690602060018060d01b0391015116600b54811015612ca557600b5f525f8051602061557383398151915201546040519161445083610b6b565b8252602082015290565b6144626143bd565b5061446b6143bd565b50600c54811015612ca55761449290600c5f525f805160206154b383398151915201614ab9565b65ffffffffffff81511690602060018060d01b0391015116600d54811015612ca557600d5f525f8051602061555383398151915201546040519161445083610b6b565b906144fe6144f861451f926144e86143bd565b506144f16143bd565b5084613be6565b50614ab9565b91600165ffffffffffff845116936020828060d01b03910151169101613be6565b9054906040519261452f84610b6b565b835260031b1c602082015290565b6040516323b872dd60e01b60208201526001600160a01b03928316602482015292909116604483015260648083019390935291815260a08101918183106001600160401b03841117610b6657610bd492604052614bc0565b60ff5f805160206155d38339815191525460401c16156145b157565b604051631afcd79f60e31b8152600490fd5b906101608282031261051057610549916138ea565b6145eb90602080825183010191016145c3565b80516001600160a01b03919082161561498257604080820165ffffffffffff61461a825165ffffffffffff1690565b16156149715760c08301805190929061463b906001600160a01b03166116b0565b15614822575b509161476e6101409261470d6146e86147cc9661468f614667875160018060a01b031690565b5f805462010000600160b01b03191660109290921b62010000600160b01b0316919091179055565b6020860151600180546001600160a01b0319166001600160a01b039092169190911790556132476146bf42613138565b6001805465ffffffffffff60a01b191660a09290921b65ffffffffffff60a01b16919091179055565b600180546001600160d01b031660d09290921b6001600160d01b031916919091179055565b61472d61471d6060850151151590565b60ff80195f541691151516175f55565b61475461473d6080850151151590565b61ff005f5491151560081b169061ff001916175f55565b61476160a0840151600455565b516001600160a01b031690565b848116614812575b5060e08101516001600160a01b0316848116614802575b506101008101516001600160a01b03168481166147f2575b506101208101516001600160a01b03168481166147e2575b5001516001600160a01b031690565b9081166147d65750565b6147df90613799565b50565b6147eb9061372a565b505f6147bd565b6147fb906136bb565b505f6147a5565b61480b906135e5565b505f61478d565b61481b90613534565b505f614776565b60e0840151614839906001600160a01b03166116b0565b1561490e575b610120840151614857906001600160a01b03166116b0565b614641576080840151156148c45760a084015115806148a5575b61489557509161476e6101409261470d6146e86147cc965b94965050509250614641565b5163183c854560e21b8152600490fd5b506101408401516148be906001600160a01b03166116b0565b15614871565b60a0840151158015906148ee575b61489557509161476e6101409261470d6146e86147cc96614889565b50610140840151614907906001600160a01b03166116b0565b15156148d2565b60608401511561494457610100840151614930906001600160a01b03166116b0565b61483f575163183c854560e21b8152600490fd5b61010084015161495c906001600160a01b03166116b0565b1561483f575163183c854560e21b8152600490fd5b81516368f5f8f160e11b8152600490fd5b6040516368f7a67560e11b8152600490fd5b919061499e614595565b6149a6614595565b82516001600160401b038111610b66575f805160206154d3833981519152906149d8816149d384546128d3565b614c71565b602080601f8311600114614a1f57509080614a0d92610bd496975f92614a14575b50508160011b915f199060031b1c19161790565b9055614d63565b015190505f806149f9565b90601f19831696614a5d5f805160206154d38339815191525f527f2ae08a8e29253f69ac5d979a101956ab8f8d9d7ded63fa7a83b16fc47648eab090565b925f905b898210614aa157505090839291600194610bd4989910614a89575b505050811b019055614d63565b01515f1960f88460031b161c191690555f8080614a7c565b80600185968294968601518155019501930190614a61565b90604051614ac681610b6b565b915465ffffffffffff8116835260301c6020830152565b600c5480614aee57505f905f905f90565b805f198101116109fc577fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c6614b2791600c5f5201614ab9565b9065ffffffffffff82511691602060018060d01b0391015116906001929190565b600a5480614b5957505f905f905f90565b805f198101116109fc577fc65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a7614b2791600a5f5201614ab9565b805480614ba35750505f905f905f90565b5f199080828101116109fc57614b27925f5260205f200101614ab9565b5f80614be89260018060a01b03169360208151910182865af1614be1612d1c565b908361544f565b8051908115159182614c16575b5050614bfe5750565b60249060405190635274afe760e01b82526004820152fd5b614c299250602080918301019101612ce7565b155f80614bf5565b9190600181018091116109fc57600182018092116109fc57614c54828285613b10565b928215612b3a5709614c635790565b600181018091116109fc5790565b601f8111614c7d575050565b5f805160206154d38339815191525f527f2ae08a8e29253f69ac5d979a101956ab8f8d9d7ded63fa7a83b16fc47648eab0906020601f840160051c83019310614ce0575b601f0160051c01905b818110614cd5575050565b5f8155600101614cca565b9091508190614cc1565b601f8111614cf6575050565b5f805160206155138339815191525f527f46a2803e59a4de4e7a4c574b1243f25977ac4c77d5a1a4a609b5394cebb4a2aa906020601f840160051c83019310614d59575b601f0160051c01905b818110614d4e575050565b5f8155600101614d43565b9091508190614d3a565b9081516001600160401b038111610b66575f8051602061551383398151915290614d9681614d9184546128d3565b614cea565b602080601f8311600114614dcb57508190614dc79394955f92614a145750508160011b915f199060031b1c19161790565b9055565b90601f19831695614e095f805160206155138339815191525f527f46a2803e59a4de4e7a4c574b1243f25977ac4c77d5a1a4a609b5394cebb4a2aa90565b925f905b888210614e4457505083600195969710614e2c575b505050811b019055565b01515f1960f88460031b161c191690555f8080614e22565b80600185968294968601518155019501930190614e0d565b600c5490600160401b821015610b66576001820180600c55821015612ca557600c5f52805160209091015160301b65ffffffffffff191665ffffffffffff91909116175f805160206154b383398151915290910155565b600a5490600160401b821015610b66576001820180600a55821015612ca557600a5f52805160209091015160301b65ffffffffffff191665ffffffffffff91909116175f805160206154f383398151915290910155565b8054600160401b811015610b6657614f2791600182018155613be6565b614f5257815160209092015160301b65ffffffffffff191665ffffffffffff92909216919091179055565b634e487b7160e01b5f525f60045260245ffd5b600c5491929190811561503c57614f86614f816142988461291f565b614ab9565b805165ffffffffffff838116949116841061502a5785602093613d3095614fb6613253865165ffffffffffff1690565b03614ff25750614fcb614298614fe49361291f565b9065ffffffffffff82549181199060301b169116179055565b01516001600160d01b031690565b90506150259150615012615004610bc7565b65ffffffffffff9092168252565b6001600160d01b03871681850152614e5c565b614fe4565b604051632520601d60e01b8152600490fd5b615060915061504c615004610bc7565b6001600160d01b0384166020820152614e5c565b5f9190565b600a549192919081156150eb57615081614f816141d18461291f565b805165ffffffffffff838116949116841061502a5785602093613d30956150b1613253865165ffffffffffff1690565b036150c65750614fcb6141d1614fe49361291f565b905061502591506150d8615004610bc7565b6001600160d01b03871681850152614eb3565b61506091506150fb615004610bc7565b6001600160d01b0384166020820152614eb3565b8054929392919082156151be5761512b614f8161435e8561291f565b9061513c825165ffffffffffff1690565b65ffffffffffff8481169116811061502a57613d3094602094889261516a613253875165ffffffffffff1690565b0361518b5750614fe492615180614fcb9261291f565b905f5260205f200190565b915050615025916151ab61519d610bc7565b65ffffffffffff9093168352565b6001600160d01b03881682860152614f0a565b61506092506151ce61519d610bc7565b6001600160d01b0385166020830152614f0a565b801561403e57806152b46152ad6152a361529961528f61528561527b61527160016105499a5f908b60801c8061530f575b508060401c80615302575b508060201c806152f5575b508060101c806152e8575b508060081c806152db575b508060041c806152ce575b508060021c806152c1575b50821c6152ba575b811c1b61526a818b613b06565b0160011c90565b61526a818a613b06565b61526a8189613b06565b61526a8188613b06565b61526a8187613b06565b61526a8186613b06565b61526a8185613b06565b8092613b06565b90613af4565b810161525d565b600291509101905f615255565b600491509101905f61524a565b600891509101905f61523f565b601091509101905f615234565b602091509101905f615229565b604091509101905f61521e565b9150506080905f615213565b905b82811061532957505090565b9091808216906001818418811c83018093116109fc57600a5f5265ffffffffffff80845f805160206154f3833981519152015416908616105f14615371575050915b9061531d565b9093925081018091116109fc579061536b565b905b82811061539257505090565b9091808216906001818418811c83018093116109fc57600c5f5265ffffffffffff80845f805160206154b3833981519152015416908616105f146153da575050915b90615386565b9093925081018091116109fc57906153d4565b91905b8382106153fd5750505090565b909192808316906001818518811c83018093116109fc57855f5265ffffffffffff808460205f20015416908516105f1461543c575050925b91906153f0565b9094935081018091116109fc5791615435565b90615476575080511561546457805190602001fd5b604051630a12f52160e11b8152600490fd5b815115806154a9575b615487575090565b604051639996b31560e01b81526001600160a01b039091166004820152602490fd5b50803b1561547f56fedf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c752c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace03c65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a852c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace049016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300d7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb50175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db902dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268009b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a264697066735822122061d21157d87e9623ddeb51ba19f8345edd1a00f8105d70e5232e62df8a9f97ed64736f6c63430008190033","sourceMap":"652:3172:97:-:0;;;;;;;;;;;;;-1:-1:-1;;652:3172:97;;;;;-1:-1:-1;;;;;652:3172:97;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;:::i;:::-;3173:36:96;;;3219:32;;8837:64:25;652:3172:97;;;;;;;;;7896:76:25;;652:3172:97;;;;7985:34:25;7981:146;;-1:-1:-1;927:17:71;;;;;652:3172:97;;;;;;;3173:36:96;652:3172:97;;;;;;;;;;3219:32:96;652:3172:97;;;;;;;;;;927:17:71;652:3172:97;;;;;;;;;;;7981:146:25;-1:-1:-1;;;;;;652:3172:97;;;;;;;;;;;;;8087:29:25;;652:3172:97;;8087:29:25;7981:146;;;;;7896:76;652:3172:97;;-1:-1:-1;;;7938:23:25;;;;;652:3172:97;-1:-1:-1;652:3172:97;;;;;;-1:-1:-1;652:3172:97;;;;;-1:-1:-1;652:3172:97;;;;-1:-1:-1;;;;;652:3172:97;;;;;;:::o","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361015610011575f80fd5b5f3560e01c806301ffc9a7146104ba57806306fdde03146104b5578063095ea7b3146104b05780631415519b146104ab57806318160ddd146103895780631b66c9e1146104a65780631e9a6950146104a157806323b872dd1461049c578063248a9ca31461049757806327810b6e14610492578063281f57521461048d5780632abe3048146104885780632d73c69c146104835780632dd310001461047e5780632f2ff15d14610479578063313ce5671461047457806336568abe1461046f578063392e53cd1461046a5780634105a7dd14610465578063463616711461046057806347e7ef241461045b57806348d3b775146104565780634ff0876a1461045157806350861adc1461044c57806350f22068146104475780635346e34f1461044257806354fd4d501461043d57806357ec83cc1461043857806359f769a9146104335780635cc070761461042e57806361a8c8c4146104295780636da3e06d146104245780636ec1e3f81461041f57806370a08231146103d4578063715018a61461041a5780637278e31c1461041557806373790ab314610410578063766718081461040b578063794b15b7146104065780637953b33b146104015780637c04c80a146103fc578063810da75d146103f757806383cd9cc3146103f257806387df0788146103ed5780638b0e9f3f146103e85780638da5cb5b146103e357806391d14854146103de57806395d89b41146103d95780639d66201b146103d45780639f86fd85146103cf578063a1b12202146103ca578063a217fddf146103c5578063a21a1df9146103c0578063a2861466146103bb578063a3b54172146103b6578063a5d03223146103b1578063a9059cbb146103ac578063aabc2496146103a7578063aad3ec96146103a2578063afba70ad1461039d578063b134427114610398578063bd49c35f14610393578063bdc8144b1461038e578063bfefcd7b14610389578063c31e8dd714610384578063ce9b79301461037f578063d547741f1461037a578063d8dfeb4514610375578063db38871514610370578063dd62ed3e1461036b578063ecf7085814610366578063efb559d614610361578063f2fde38b1461035c578063f3fef3a3146103575763f5e7ee0f14610352575f80fd5b6128a9565b612803565b6127d6565b612687565b61266a565b612633565b6125f9565b6125ce565b612582565b61255a565b6124f0565b610749565b612412565b6123f8565b6123d0565b6123a6565b6122e5565b61212e565b6120f9565b6120b3565b612066565b611f73565b611f39565b611f1f565b611efb565b611e67565b6115d6565b611db5565b611d57565b611d23565b611cc1565b611c7d565b611ac4565b611aab565b611a45565b611a1e565b6119de565b61198c565b61194b565b611677565b611610565b6115b1565b61156d565b61151a565b6114f0565b6114c9565b611391565b61135f565b6112ca565b6112b1565b611254565b611234565b611213565b610f2b565b610f03565b610e68565b610e23565b610dd8565b610d40565b610cf2565b610cae565b610c42565b610a56565b610988565b610960565b610927565b61088a565b6107a5565b61076b565b61070f565b61064d565b61054c565b346105105760203660031901126105105760043563ffffffff60e01b811680910361051057602090637965db0b60e01b81149081156104ff575b506040519015158152f35b6301ffc9a760e01b1490505f6104f4565b5f80fd5b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b906020610549928181520190610514565b90565b34610510575f366003190112610510576040515f5f805160206154d383398151915280549061057a826128d3565b8085529160209160019182811690811561060f57506001146105b7575b6105b3866105a781880382610b86565b60405191829182610538565b0390f35b5f90815293507f2ae08a8e29253f69ac5d979a101956ab8f8d9d7ded63fa7a83b16fc47648eab05b8385106105fc575050505081016020016105a7826105b35f610597565b80548686018401529382019381016105df565b90508695506105b3969350602092506105a794915060ff191682840152151560051b82010192935f610597565b6001600160a01b0381160361051057565b346105105760403660031901126105105760043561066a8161063c565b60243533156106f7576001600160a01b0382169182156106df576106a78291610692336119a6565b9060018060a01b03165f5260205260405f2090565b556040519081527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560203392a3602060405160018152f35b604051634a1406b160e11b81525f6004820152602490fd5b60405163e602df0560e01b81525f6004820152602490fd5b34610510575f3660031901126105105760206040517fc6aaadd7371d5e8f9ed6849dd66a66573a3ba37167d03f4352c9ba5693678fac8152f35b34610510575f366003190112610510576020610763614003565b604051908152f35b34610510575f3660031901126105105760206040517f9c56d972d63cbb4195b3c1484691dfc220fa96a4c47e7b6613bd82a022029e068152f35b34610510576040366003190112610510576004356107c28161063c565b602435906107ce612e1a565b6001600160a01b0381161561087957335f908152600e602052604090206107f9906140f0565b6140f0565b82116108675761081961080a61407c565b610812614003565b9084614164565b918215610852578261082a92612e49565b9061084160015f805160206155b383398151915255565b604080519182526020820192909252f35b60405160016245ddc760e11b03198152600490fd5b604051632418411f60e11b8152600490fd5b6040516208978560e71b8152600490fd5b34610510576060366003190112610510576004356108a78161063c565b6024356108b38161063c565b604435906108c433610692856119a6565b5492600184016108e5575b6108d99350612fd9565b60405160018152602090f35b828410610901576108fc836108d99503338361413d565b6108cf565b604051637dc7a0d960e11b81523360048201526024810185905260448101849052606490fd5b34610510576020366003190112610510576004355f525f805160206155938339815191526020526020600160405f200154604051908152f35b34610510575f366003190112610510576001546040516001600160a01b039091168152602090f35b34610510575f366003190112610510576109a0612b3f565b8015610a015760015465ffffffffffff8160a01c16915f1981019081116109fc576109ce9160d01c9061293a565b81018091116109fc576109e36105b391613138565b60405165ffffffffffff90911681529081906020820190565b61290b565b604051639fa56a5b60e01b8152600490fd5b600435906001600160401b038216820361051057565b9181601f84011215610510578235916001600160401b038311610510576020838186019501011161051057565b3461051057604036600319011261051057610a6f610a13565b6001600160401b0360243581811161051057610a8f903690600401610a29565b5050610a99612e1a565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163303610b15575f805160206155d3833981519152549060ff8260401c16928315610b05575b505050610af3575f80fd5b60405163f92ee8a960e01b8152600490fd5b81169116101590505f8080610ae8565b604051631966391b60e11b8152600490fd5b65ffffffffffff81160361051057565b634e487b7160e01b5f52604160045260245ffd5b606081019081106001600160401b03821117610b6657604052565b610b37565b604081019081106001600160401b03821117610b6657604052565b90601f801991011681019081106001600160401b03821117610b6657604052565b6040519061016082018281106001600160401b03821117610b6657604052565b60405190610bd482610b6b565b565b6001600160401b038111610b6657601f01601f191660200190565b929192610bfd82610bd6565b91610c0b6040519384610b86565b829481845281830111610510578281602093845f960137010152565b9080601f830112156105105781602061054993359101610bf1565b3461051057606036600319011261051057600435610c5f8161063c565b60243590610c6c82610b27565b604435906001600160401b03821161051057602092610c92610763933690600401610c27565b6001600160a01b039092165f908152600e855260409020613331565b34610510575f366003190112610510576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461051057604036600319011261051057610d3e602435600435610d158261063c565b805f525f80516020615593833981519152602052610d39600160405f200154613508565b613808565b005b34610510575f366003190112610510575f5460405163313ce56760e01b8152906020908290600490829060101c6001600160a01b03165afa8015610dd3575f90610d95575b60405160ff919091168152602090f35b506020813d602011610dcb575b81610daf60209383610b86565b81010312610510575160ff81168103610510576105b390610d85565b3d9150610da2565b612989565b3461051057604036600319011261051057602435610df58161063c565b336001600160a01b03821603610e1157610d3e9060043561383e565b60405163334bd91960e11b8152600490fd5b34610510575f3660031901126105105760ff60025460a01c1680610e4f575b6020906040519015158152f35b5060035460a01c60ff16610e42565b8015150361051057565b3461051057602036600319011261051057600435610e8581610e5e565b610e8d612e1a565b610e956133fd565b5f54901515908160ff8216151514610ef15760ff191660ff8216175f556040519081527f3e12b7b36c75ac9609a3f58609b331210428e1a85909132638955ba0301eec3390602090a160015f805160206155b383398151915255005b60405163a741a04560e01b8152600490fd5b34610510575f36600319011261051057602065ffffffffffff60015460a01c16604051908152f35b3461051057604080600319360112610510576004803591610f4b8361063c565b610f53612e1a565b6001600160a01b0391838316908115611205575f5460ff8116806111ec575b6111dd5783516370a0823160e01b808252308483019081529096602093909160109190911c82169084908490819083010381845afa928315610dd3575f936111ba575b50610fc790602435903090339061453d565b5f5486519788523085890190815290979184918391908290819060200103918b60101c165afa908115610dd357611006935f9261118d575b505061292d565b93841561117e5760081c60ff1680611169575b61115b5750906105b3916110ca61102e61407c565b9561107761103a614003565b6110626110488a838b614164565b9961105c8a61105642613138565b9261295b565b90613c9e565b50506110718961105642613138565b90613d7e565b50506001600160a01b0381165f908152600e60205260409020906110c4886110bf6107f46110a442613138565b6001600160a01b039095165f908152600e6020526040902090565b61295b565b91613e5a565b5050815184815260208101869052819033907fdcbc1c05240f31ff3ad067ef1ee35ce4997762752e3a095284754544f4c709d790604090a361111860015f805160206155b383398151915255565b81518581525f907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90602090a35191825260208201929092529081906040820190565b8251632484557960e01b8152fd5b50611176846110bf61407c565b815410611019565b50825163070f6eed60e11b8152fd5b6111ac9250803d106111b3575b6111a48183610b86565b8101906138d0565b5f80610fff565b503d61119a565b610fc79193506111d690853d87116111b3576111a48183610b86565b9290610fb5565b5082516304f63b8560e01b8152fd5b50335f9081526005602052604090205460ff1615610f72565b8251630d534ce360e11b8152fd5b34610510575f36600319011261051057602060ff5f54166040519015158152f35b34610510575f36600319011261051057602060015460d01c604051908152f35b34610510575f36600319011261051057602060ff60025460a01c166040519015158152f35b9060406003198301126105105760043561129281610b27565b91602435906001600160401b0382116105105761054991600401610c27565b346105105760206107636112c436611279565b9061319b565b34610510576020366003190112610510576004356112e781610e5e565b6112ef612e1a565b6112f761345a565b5f54901515908160ff8260081c16151514610ef15761ff001916600882901b61ff0016175f556040519081527ffa7a25a0b611d4ba3c0ea990e90dc23d484a5dd7a1be4733fef2946ba74530c690602090a1610d3e60015f805160206155b383398151915255565b34610510575f3660031901126105105760206001600160401b035f805160206155d38339815191525416604051908152f35b34610510576060366003190112610510576113aa610a13565b6024356113b68161063c565b6001600160401b0391604435838111610510576113d7903690600401610a29565b5f805160206155d38339815191529491855494838616806114b85760ff8760401c169081156114ab575b50610af3577fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2966114a69661146e958716906001600160401b0319161790556114695f805160206155d3833981519152600160401b68ff000000000000000019825416179055565b612994565b5f805160206155d3833981519152805468ff0000000000000000191690556040516001600160401b0390911681529081906020820190565b0390a1005b905084861611155f611401565b60405162dc149f60e41b8152600490fd5b346105105760203660031901126105105760206107636004356114eb8161063c565b612aa8565b34610510576020366003190112610510576004355f526006602052602060405f2054604051908152f35b34610510575f3660031901126105105760015465ffffffffffff611550818360a01c1692611546612b3f565b9060d01c9061293a565b82018092116109fc57611564602092613138565b60405191168152f35b34610510575f366003190112610510576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b34610510575f36600319011261051057602060ff60035460a01c166040519015158152f35b34610510576020366003190112610510576004356115f38161063c565b60018060a01b03165f52600e602052602061076360405f206140f0565b34610510575f36600319011261051057611628613abc565b5f8051602061553383398151915280546001600160a01b031981169091555f906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b346105105760403660031901126105105760043560243561169781610b27565b61169f612e1a565b6003546116bc906001600160a01b03165b6001600160a01b031690565b3303611939576116ca612b3f565b906116d481612b73565b9082151580611928575b801561191f575b61190d576105b3937ff9d090c096f71cd1659861a9ce5b6f384bceb4e2fa4e4a19edf6489a9b8d56c79261171761407c565b946117326117248261294d565b5f52600660205260405f2090565b54908281036118265750611746818761295b565b6117508185613af4565b9687806117df575b50505050505b836117ab575b6040805191825265ffffffffffff929092166020820152908101839052606090a161179b60015f805160206155b383398151915255565b6040519081529081906020820190565b5f546117da9085906117c89060101c6001600160a01b03166116b0565b6001546001600160a01b031690613f18565b611764565b61181b93610fff8361105c6118056117fe611724986118159888613b10565b809661292d565b9461180f42613138565b9261292d565b9261294d565b555f80808087611758565b915061183a825f52600660205260405f2090565b549061184a816110bf848a61295b565b906118558286613af4565b9788611866575b505050505061175e565b6118db938361188e9361189b8c6118966118846118cc998884613b10565b9788958584613b10565b94859261292d565b61292d565b938484106118e6575b610fff9061105c6118ba95969761180f42613138565b6118c66117248761294d565b5561292d565b915f52600660205260405f2090565b555f8080808061185c565b91611902610fff916118fc866118ba979861292d565b9061295b565b8594509290506118a4565b604051635e18d2a560e01b8152600490fd5b508282116116e5565b506119328361291f565b82106116de565b60405163dabc4ad960e01b8152600490fd5b34610510575f3660031901126105105760015465ffffffffffff808260a01c1691611974612b3f565b600181018091116109fc576115509160d01c9061293a565b34610510575f366003190112610510576020610763612b3f565b6001600160a01b03165f9081527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace016020526040902090565b34610510576020366003190112610510576004356119fb8161063c565b60018060a01b03165f526005602052602060ff60405f2054166040519015158152f35b34610510576020366003190112610510576020610763600435611a4081610b27565b612b73565b3461051057604036600319011261051057600435611a628161063c565b6024356001600160401b038082116105105736602383011215610510578160040135908111610510573660248260051b84010111610510576105b392602461179b930190612bae565b34610510576020610763611abe36611279565b9061327c565b3461051057602080600319360112610510576004803590611ae48261063c565b611aec612e1a565b60025460a01c60ff16611c6e576040516302910f8b60e31b81526001600160a01b03838116838301908152909491908290829081906020010381887f0000000000000000000000000000000000000000000000000000000000000000165afa908115610dd3575f91611c41575b5015611c315760405163fbfa77cf60e01b8152838516949082818581895afa928315610dd3575f93611c02575b505030911603611bf35750600280546001600160a01b03929092166001600160a81b031990921691909117600160a01b1790557fdb2160616f776a37b24808115554e79439bf26cccbbd4438190cc6d28e80ecd15f80a2610d3e60015f805160206155b383398151915255565b60405163b9f0f17160e01b8152fd5b611c22929350803d10611c2a575b611c1a8183610b86565b810190612d07565b905f80611b86565b503d611c10565b506040516324e5af8d60e21b8152fd5b611c619150823d8411611c67575b611c598183610b86565b810190612ce7565b5f611b59565b503d611c4f565b604051631380833b60e01b8152fd5b34610510575f366003190112610510576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b34610510575f36600319011261051057611cd9612b3f565b611ce161407c565b90805f52600660205260405f205482018092116109fc57600181018091116109fc575f52600660205260405f205481018091116109fc57602090604051908152f35b34610510575f366003190112610510575f80516020615533833981519152546040516001600160a01b039091168152602090f35b3461051057604036600319011261051057602060ff611da9602435611d7b8161063c565b6004355f525f80516020615593833981519152845260405f209060018060a01b03165f5260205260405f2090565b54166040519015158152f35b34610510575f366003190112610510576040515f5f80516020615513833981519152805490611de3826128d3565b8085529160209160019182811690811561060f5750600114611e0f576105b3866105a781880382610b86565b5f90815293507f46a2803e59a4de4e7a4c574b1243f25977ac4c77d5a1a4a609b5394cebb4a2aa5b838510611e54575050505081016020016105a7826105b35f610597565b8054868601840152938201938101611e37565b3461051057604036600319011261051057600435611e848161063c565b6024356001600160401b038111610510575f91611ea683923690600401610a29565b90816040519283928337810184815203915af4611ef3611ec4612d1c565b91611ee5604051938492151560208401526040808401526060830190610514565b03601f198101835282610b86565b805190602001fd5b34610510575f36600319011261051057602060ff5f5460081c166040519015158152f35b34610510575f3660031901126105105760206040515f8152f35b34610510575f3660031901126105105760206040517f4a634bc14d77baf979756509ef4298c6f6318af357828612545267ee2eb792338152f35b3461051057604036600319011261051057600435611f908161063c565b602435611f9c81610e5e565b611fa4612e1a565b611fac6134b1565b6001600160a01b038216918215612054575f8381526005602052604090205460ff16151582151514610ef1576001600160a01b03165f9081526005602052604090207ff991b1ecfb5115cbb36a2b2e2240c058406d2acc2fcc6e9e2dc99d845ff70a629161203b91612029908260ff801983541691151516179055565b60405190151581529081906020820190565b0390a2610d3e60015f805160206155b383398151915255565b604051630da30f6560e31b8152600490fd5b346105105760403660031901126105105760206120aa6024356120888161063c565b6004355f526008835260405f209060018060a01b03165f5260205260405f2090565b54604051908152f35b3461051057604036600319011261051057602060ff611da96024356120d78161063c565b6004355f526009845260405f209060018060a01b03165f5260205260405f2090565b34610510576040366003190112610510576121236004356121198161063c565b6024359033612fd9565b602060405160018152f35b346105105760208060031936011261051057600480359061214e8261063c565b612156612e1a565b60035460a01c60ff166122d6576001600160a01b038281169390846121c4575b6003805460ff60a01b1916600160a01b179055847fe7e4c932e03abddfe20f83af42c33627e816115c7ec2b168441f65dc14bfc3ba5f80a2610d3e60015f805160206155b383398151915255565b6040516302910f8b60e31b81526001600160a01b0385168482019081528390829081906020010381857f0000000000000000000000000000000000000000000000000000000000000000165afa908115610dd3575f916122b9575b50156122a85760405163fbfa77cf60e01b815282818581895afa928315610dd3575f93612289575b50503091160361227a5750600380546001600160a01b0319166001600160a01b039092169190911790555f808080612176565b604051633f3e089160e21b8152fd5b6122a0929350803d10611c2a57611c1a8183610b86565b905f80612247565b60405163dabc4ad960e01b81528390fd5b6122d09150833d8511611c6757611c598183610b86565b5f61221f565b60405163703fe2e560e01b8152fd5b34610510576040366003190112610510576004356123028161063c565b6024359061230e612e1a565b6001600160a01b03918183169081156123945761233f6105b39461233183613f67565b9485915f5460101c16613f18565b604080519182526020820184905233917f865ca08d59f5cb456e85cd2f7ef63664ea4f73327414e9d8152c4158b0e946459190a360015f805160206155b3833981519152556040519081529081906020820190565b604051634e46966960e11b8152600490fd5b34610510576020366003190112610510576004355f526007602052602060405f2054604051908152f35b34610510575f366003190112610510576003546040516001600160a01b039091168152602090f35b34610510575f36600319011261051057602061076361407c565b346105105760203660031901126105105760043561242e612e1a565b335f9081527f2d4ccbfe9f7672a6f2537c1e5bce6adacb73706879154bbab6ce096012d6721660205260409020547f4a634bc14d77baf979756509ef4298c6f6318af357828612545267ee2eb792339060ff16156124d257508060045414610ef1576020817f854df3eb95564502c8bc871ebdd15310ee26270f955f6c6bd8cea68e75045bc092600455604051908152a160015f805160206155b383398151915255005b6044906040519063e2517d3f60e01b82523360048301526024820152fd5b346105105760203660031901126105105760043561250d8161063c565b612515612b3f565b61251e82612aa8565b916125298183612dbc565b83018093116109fc57600182018092116109fc5761254691612dbc565b81018091116109fc57602090604051908152f35b34610510575f366003190112610510576002546040516001600160a01b039091168152602090f35b3461051057604036600319011261051057610d3e6024356004356125a58261063c565b805f525f805160206155938339815191526020526125c9600160405f200154613508565b61383e565b34610510575f366003190112610510575f5460405160109190911c6001600160a01b03168152602090f35b34610510575f3660031901126105105760206040517fbae4ee3de6c709ff9a002e774c5b78cb381560b219213c88ae0f1e207c03c0238152f35b346105105760403660031901126105105760206120aa6004356126558161063c565b610692602435916126658361063c565b6119a6565b34610510575f366003190112610510576020600454604051908152f35b34610510576060366003190112610510576004356126a48161063c565b602435906126b182610b27565b6001600160401b0391604435838111610510576126d2903690600401610a29565b909260409384516126e281610b4b565b60608152606060208201526060868201529280612741575b6105b386612732878761272c6127138984845191612968565b928561272360208501518361327c565b9301519061319b565b91614164565b90519081529081906020820190565b8101939250602081850312610510578035908682116105105701926060848203126105105784519561277287610b4b565b84358181116105105782612787918701610c27565b8752602085013581811161051057826127a1918701610c27565b602088015285850135908111610510576105b3966127ca61272c93612713936127329801610c27565b878201529394506126fa565b3461051057602036600319011261051057610d3e6004356127f68161063c565b6127fe613abc565b612d4b565b34610510576040366003190112610510576004356128208161063c565b60243561282b612e1a565b6001600160a01b038216156108795780156128975761285a61284b614003565b61285361407c565b9083614c31565b335f908152600e60205260409020909290612874906140f0565b83116128855761082a918391612e49565b6040516321727a3760e11b8152600490fd5b604051636c6c627d60e11b8152600490fd5b346105105760403660031901126105105760206107636024356128cb8161063c565b600435612dbc565b90600182811c92168015612901575b60208310146128ed57565b634e487b7160e01b5f52602260045260245ffd5b91607f16916128e2565b634e487b7160e01b5f52601160045260245ffd5b5f198101919082116109fc57565b919082039182116109fc57565b818102929181159184041417156109fc57565b90600182018092116109fc57565b919082018092116109fc57565b6001600160a01b03165f908152600e60205260409020610549929190613331565b6040513d5f823e3d90fd5b916129d1926129a1614595565b6129a9614595565b60015f805160206155b3833981519152556001600160a01b038116612a8e575b503691610bf1565b80516020908201818101828483031261051057828401516001600160401b039485821161051057019283926101a093849103126105105760405193612a1585610b4b565b612a21838383016138ea565b8552610180810151868111610510578383612a3e928401016139b3565b9382860194855281015195861161051057612a66612a859383610bd498612a809401016139b3565b94604081019586525191611ee560405193849283016139f9565b6145d8565b51905190614994565b612aa290612a9a614595565b6127fe614595565b5f6129c9565b6001600160a01b03165f908152600e60205260409020612ac7906140f0565b612acf61407c565b612ad7614003565b90600181018091116109fc57600182018092116109fc5761054992613b10565b65ffffffffffff91821690821603919082116109fc57565b634e487b7160e01b5f52601260045260245ffd5b9065ffffffffffff809116918215612b3a57160490565b612b0f565b612b4842613138565b612b6f600154612b6565ffffffffffff93848360a01c1690612af7565b9060d01c90612b23565b1690565b6001549065ffffffffffff91828160a01c16918284821610612b9c57612b6f92612b6591612af7565b60405163b7d0949760e01b8152600490fd5b90612bb7612e1a565b5f926001600160a01b038316928315612394578115612c6f575f5b828110612c4d57505f547f326b6aff1cd2fb1c8234de4f9dcfb9047c5c36eb9ef2eb34af5121e969a75d279286929091612c22918491612c1d9060101c6001600160a01b03166116b0565b613f18565b612c33604051928392339684612caa565b0390a390610bd460015f805160206155b383398151915255565b94612c686001916118fc612c62898789612c95565b35613f67565b9501612bd2565b60405163edf3b93360e01b8152600490fd5b634e487b7160e01b5f52603260045260245ffd5b9190811015612ca55760051b0190565b612c81565b604080825281018390529392916001600160fb1b0381116105105760209160609160051b809183880137850101930152565b5190610bd482610e5e565b90816020910312610510575161054981610e5e565b5190610bd48261063c565b9081602091031261051057516105498161063c565b3d15612d46573d90612d2d82610bd6565b91612d3b6040519384610b86565b82523d5f602084013e565b606090565b6001600160a01b03908116908115612da4575f8051602061553383398151915280546001600160a01b031981168417909155167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3565b604051631e4fbdf760e01b81525f6004820152602490fd5b90612de290825f52600860205260405f209060018060a01b03165f5260205260405f2090565b54905f52600660205260405f2054600760205260405f205490600181018091116109fc57600182018092116109fc5761054992613b10565b5f805160206155b38339815191526002815414612e375760029055565b604051633ee5aeb560e01b8152600490fd5b335f908152600e6020526040812093949390929190612e8890612e6b42613138565b335f908152600e602052604090206110c4908990611896906140f0565b5050612ea2612e9642613138565b61107187611896614003565b5050612ebc612eb042613138565b61105c8461189661407c565b505081612f4e82610692612ed6612ed1612b3f565b61294d565b612f2d612eeb825f52600660205260405f2090565b54612efe835f52600760205260405f2090565b54612f15612f0d83838b614164565b9a8b9361295b565b612f27855f52600660205260405f2090565b5561295b565b612f3f825f52600760205260405f2090565b555f52600860205260405f2090565b612f5984825461295b565b9055604080519182526020820187905281018390526001600160a01b03919091169033907febff2602b3f468259e1e99f613fed6691f3a6526effe6ef3e768ba7ae7a36c4f90606090a36040519384529233907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9080602081015b0390a3565b916001600160a01b0380841692908315613120578116938415613108576001600160a01b0381165f908152600e60205260409020613016906140f0565b908382106130d657612fd4926130787fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef95936130656130c49460018060a01b03165f52600e60205260405f2090565b908561307042613138565b910391613e5a565b50506001600160a01b0381165f908152600e6020526040902090836130bd6107f46130a242613138565b6001600160a01b039094165f908152600e6020526040902090565b0191613e5a565b50506040519081529081906020820190565b60405163391434e360e21b81526001600160a01b03919091166004820152602481019190915260448101839052606490fd5b60405163ec442f0560e01b81525f6004820152602490fd5b604051634b637e8f60e11b81525f6004820152602490fd5b65ffffffffffff9081811161314b571690565b604490604051906306dfcc6560e41b8252603060048301526024820152fd5b90816020910312610510575163ffffffff811681036105105790565b90600163ffffffff809316019182116109fc57565b9080511561327257806020806131b69351830101910161316a565b6131bf816143d5565b906131d0825165ffffffffffff1690565b9065ffffffffffff80851692168281146132665782119182613206575b50506131fd575061054990614185565b60209150015190565b909150613214600a5461291f565b63ffffffff83161491821561322d575b50505f806131ed565b61325e91925061324761324261325392613186565b6143d5565b5165ffffffffffff1690565b65ffffffffffff1690565b115f80613224565b50505060209150015190565b5061054990614185565b9080511561332757806020806132979351830101910161316a565b6132a08161445a565b906132b1825165ffffffffffff1690565b9065ffffffffffff808516921682811461326657821191826132de575b50506131fd57506105499061424c565b9091506132ec600c5461291f565b63ffffffff831614918215613305575b50505f806132ce565b61331f91925061324761331a61325392613186565b61445a565b115f806132fc565b506105499061424c565b918051156133f3578060208061334c9351830101910161316a565b9161335783826144d5565b92613368845165ffffffffffff1690565b9065ffffffffffff80851692168281146133e7578211918261339e575b505061339557610549925061430c565b50506020015190565b9091506133ab835461291f565b63ffffffff8316149182156133c4575b50505f80613385565b6133df9192506132476133d961325392613186565b856144d5565b115f806133bb565b50505050506020015190565b506105499161430c565b335f9081527f03b26b53c87faa1058f30bb5d2fee64f717719a0d9b7e4f4df027aa5e9b6ed69602052604090207fbae4ee3de6c709ff9a002e774c5b78cb381560b219213c88ae0f1e207c03c0239060ff905b5416156124d25750565b335f9081527fe41986b390c4ce6791b87f7423b5fab7a81a0e6d89660b6264f697d008b2243a602052604090207fc6aaadd7371d5e8f9ed6849dd66a66573a3ba37167d03f4352c9ba5693678fac9060ff90613450565b335f9081527f0287ab4cb376ea253d7b2ce0c2cbf458f7deae9458470d74afdfbbee484e9540602052604090207f9c56d972d63cbb4195b3c1484691dfc220fa96a4c47e7b6613bd82a022029e069060ff90613450565b5f8181525f8051602061559383398151915260209081526040808320338452909152902060ff90613450565b6001600160a01b0381165f9081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d60205260409020545f805160206155938339815191529060ff166135df575f808052602091825260408082206001600160a01b038516835290925220805460ff1916600117905533906001600160a01b03165f7f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d8180a4600190565b50505f90565b6001600160a01b0381165f9081527f03b26b53c87faa1058f30bb5d2fee64f717719a0d9b7e4f4df027aa5e9b6ed69602052604090207fbae4ee3de6c709ff9a002e774c5b78cb381560b219213c88ae0f1e207c03c023905f805160206155938339815191529060ff905b54166136b4575f828152602091825260408082206001600160a01b038616835290925220805460ff1916600117905533916001600160a01b0316907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d5f80a4600190565b5050505f90565b6001600160a01b0381165f9081527f0287ab4cb376ea253d7b2ce0c2cbf458f7deae9458470d74afdfbbee484e9540602052604090207f9c56d972d63cbb4195b3c1484691dfc220fa96a4c47e7b6613bd82a022029e06905f805160206155938339815191529060ff90613650565b6001600160a01b0381165f9081527fe41986b390c4ce6791b87f7423b5fab7a81a0e6d89660b6264f697d008b2243a602052604090207fc6aaadd7371d5e8f9ed6849dd66a66573a3ba37167d03f4352c9ba5693678fac905f805160206155938339815191529060ff90613650565b6001600160a01b0381165f9081527f2d4ccbfe9f7672a6f2537c1e5bce6adacb73706879154bbab6ce096012d67216602052604090207f4a634bc14d77baf979756509ef4298c6f6318af357828612545267ee2eb79233905f805160206155938339815191529060ff90613650565b5f8181525f80516020615593833981519152602081815260408084206001600160a01b038716855290915290912060ff90613650565b5f8181525f80516020615593833981519152602081815260408084206001600160a01b03871685529091529091205460ff16156136b4575f828152602091825260408082206001600160a01b038616835290925220805460ff1916905533916001600160a01b0316907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b5f80a4600190565b90816020910312610510575190565b5190610bd482610b27565b919082610160910312610510576138ff610ba7565b9161390981612cfc565b835261391760208201612cfc565b6020840152613928604082016138df565b604084015261393960608201612cdc565b606084015261394a60808201612cdc565b608084015260a081015160a084015261396560c08201612cfc565b60c084015261397660e08201612cfc565b60e0840152610100613989818301612cfc565b9084015261012061399b818301612cfc565b908401526139ad610140809201612cfc565b90830152565b81601f82011215610510578051906139ca82610bd6565b926139d86040519485610b86565b8284526020838301011161051057815f9260208093018386015e8301015290565b81516001600160a01b0316815261016081019291610bd491906020818101516001600160a01b03169083015260408181015165ffffffffffff169083015260608181015115159083015260808181015115159083015260a0818101519083015260c0808201516001600160a01b03169083015260e0818101516001600160a01b031690830152610100818101516001600160a01b031690830152610120818101516001600160a01b031690830152610140908101516001600160a01b0316910152565b5f80516020615533833981519152546001600160a01b03163303613adc57565b60405163118cdaa760e01b8152336004820152602490fd5b9080821015613b01575090565b905090565b8115612b3a570490565b9091828202915f1984820993838086109503948086039514613b955784831115613b8357829109815f038216809204600280826003021880830282030280830282030280830282030280830282030280830282030280920290030293600183805f03040190848311900302920304170290565b60405163227bc15360e01b8152600490fd5b5050906105499250613b06565b600b54811015612ca557600b5f525f8051602061557383398151915201905f90565b600d54811015612ca557600d5f525f8051602061555383398151915201905f90565b8054821015612ca5575f5260205f2001905f90565b600d54600160401b811015610b66576001810180600d55811015612ca557600d5f525f805160206155538339815191520155565b600b54600160401b811015610b66576001810180600b55811015612ca557600b5f525f805160206155738339815191520155565b90815491600160401b831015610b665782613c86916001610bd495018155613be6565b90919082549060031b91821b915f19901b1916179055565b919091600d9081548015613d49575b50613cb6614add565b50929091815492613cc561407c565b9481613d34575b5015613d1157505f1982018281116109fc5781541115612ca5575f527fd7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb4018390559190565b613d25926001600160d01b03169150614f65565b5050613d3083613bfb565b9190565b65ffffffffffff83811691161490505f613ccc565b600160401b811015610b665760018101808455811015612ca5575f908382525f8051602061555383398151915201555f613cad565b919091600b9081548015613e25575b50613d96614b48565b50929091815492613da5614003565b9481613e10575b5015613df157505f1982018281116109fc5781541115612ca5575f527f0175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db8018390559190565b613e05926001600160d01b03169150615065565b5050613d3083613c2f565b65ffffffffffff83811691161490505f613dac565b600160401b811015610b665760018101808455811015612ca5575f908382525f8051602061557383398151915201555f613d8d565b90929192600182019081548015613ee8575b5084613e7784614b92565b50949092845493613e87836140f0565b9681613ed3575b5015613eb0575050505f1981019081116109fc57613c868591613d3093613be6565b613d30949293613ecc926001600160d01b03909116919061510f565b5050613c63565b65ffffffffffff83811691161490505f613e8e565b600160401b811015610b6657806001613f049201845583613be6565b8154905f199060031b1b191690555f613e6c565b60405163a9059cbb60e01b60208201526001600160a01b03909216602483015260448083019390935291815260808101916001600160401b03831182841017610b6657610bd492604052614bc0565b90613f70612b3f565b821015613ff1575f82815260096020908152604080832033845290915290205460ff16613fdf57613fa13383612dbc565b918215613fcd575f9081526009602090815260408083203384529091529020805460ff19166001179055565b6040516366c0bcbf60e11b8152600490fd5b604051630c8d9eab60e31b8152600490fd5b60405163d5b25b6360e01b8152600490fd5b600a548061404357505f5b6001600160d01b0381161561403e57600b54811015612ca557600b5f525f80516020615573833981519152015490565b505f90565b805f198101116109fc57600a5f527fc65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a7015460301c61400e565b600c54806140b757505f5b6001600160d01b0381161561403e57600d54811015612ca557600d5f525f80516020615553833981519152015490565b805f198101116109fc57600c5f527fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c6015460301c614087565b80548061411f57505f5b6001600160d01b038116156135df5760016141159201613be6565b90549060031b1c90565b5f199080828101116109fc57825f5260205f2001015460301c6140fa565b906001600160a01b03808316156106f7578116156106df57610692614161926119a6565b55565b9190600181018091116109fc57600182018092116109fc5761054992613b10565b600a54905f8291600584116141f3575b61419f935061531b565b806141c257505f5b6001600160d01b0381161561403e5761411561054991613ba2565b6141e76141d16141ee9261291f565b600a5f525f805160206154f38339815191520190565b5460301c90565b6141a7565b91926141fe816151e2565b81039081116109fc5761419f93600a5f5265ffffffffffff80835f805160206154f3833981519152015416908516105f1461423a575091614195565b9291506142469061294d565b90614195565b600c54905f8291600584116142b3575b6142669350615384565b8061428957505f5b6001600160d01b0381161561403e5761411561054991613bc4565b6141e76142986142ae9261291f565b600c5f525f805160206154b38339815191520190565b61426e565b91926142be816151e2565b81039081116109fc5761426693600c5f5265ffffffffffff80835f805160206154b3833981519152015416908516105f146142fa57509161425c565b9291506143069061294d565b9061425c565b908154905f82916005841161436f575b6143279350846153ed565b8061434f57505f905b6001600160d01b038216156135df576105499160016141159201613be6565b6141e761435e6143699261291f565b835f5260205f200190565b90614330565b919261437a816151e2565b81039081116109fc5761432793855f5265ffffffffffff808360205f20015416908516105f146143ab57509161431c565b9291506143b79061294d565b9061431c565b604051906143ca82610b6b565b5f6020838281520152565b6143dd6143bd565b506143e66143bd565b50600a54811015612ca55761440d90600a5f525f805160206154f383398151915201614ab9565b65ffffffffffff81511690602060018060d01b0391015116600b54811015612ca557600b5f525f8051602061557383398151915201546040519161445083610b6b565b8252602082015290565b6144626143bd565b5061446b6143bd565b50600c54811015612ca55761449290600c5f525f805160206154b383398151915201614ab9565b65ffffffffffff81511690602060018060d01b0391015116600d54811015612ca557600d5f525f8051602061555383398151915201546040519161445083610b6b565b906144fe6144f861451f926144e86143bd565b506144f16143bd565b5084613be6565b50614ab9565b91600165ffffffffffff845116936020828060d01b03910151169101613be6565b9054906040519261452f84610b6b565b835260031b1c602082015290565b6040516323b872dd60e01b60208201526001600160a01b03928316602482015292909116604483015260648083019390935291815260a08101918183106001600160401b03841117610b6657610bd492604052614bc0565b60ff5f805160206155d38339815191525460401c16156145b157565b604051631afcd79f60e31b8152600490fd5b906101608282031261051057610549916138ea565b6145eb90602080825183010191016145c3565b80516001600160a01b03919082161561498257604080820165ffffffffffff61461a825165ffffffffffff1690565b16156149715760c08301805190929061463b906001600160a01b03166116b0565b15614822575b509161476e6101409261470d6146e86147cc9661468f614667875160018060a01b031690565b5f805462010000600160b01b03191660109290921b62010000600160b01b0316919091179055565b6020860151600180546001600160a01b0319166001600160a01b039092169190911790556132476146bf42613138565b6001805465ffffffffffff60a01b191660a09290921b65ffffffffffff60a01b16919091179055565b600180546001600160d01b031660d09290921b6001600160d01b031916919091179055565b61472d61471d6060850151151590565b60ff80195f541691151516175f55565b61475461473d6080850151151590565b61ff005f5491151560081b169061ff001916175f55565b61476160a0840151600455565b516001600160a01b031690565b848116614812575b5060e08101516001600160a01b0316848116614802575b506101008101516001600160a01b03168481166147f2575b506101208101516001600160a01b03168481166147e2575b5001516001600160a01b031690565b9081166147d65750565b6147df90613799565b50565b6147eb9061372a565b505f6147bd565b6147fb906136bb565b505f6147a5565b61480b906135e5565b505f61478d565b61481b90613534565b505f614776565b60e0840151614839906001600160a01b03166116b0565b1561490e575b610120840151614857906001600160a01b03166116b0565b614641576080840151156148c45760a084015115806148a5575b61489557509161476e6101409261470d6146e86147cc965b94965050509250614641565b5163183c854560e21b8152600490fd5b506101408401516148be906001600160a01b03166116b0565b15614871565b60a0840151158015906148ee575b61489557509161476e6101409261470d6146e86147cc96614889565b50610140840151614907906001600160a01b03166116b0565b15156148d2565b60608401511561494457610100840151614930906001600160a01b03166116b0565b61483f575163183c854560e21b8152600490fd5b61010084015161495c906001600160a01b03166116b0565b1561483f575163183c854560e21b8152600490fd5b81516368f5f8f160e11b8152600490fd5b6040516368f7a67560e11b8152600490fd5b919061499e614595565b6149a6614595565b82516001600160401b038111610b66575f805160206154d3833981519152906149d8816149d384546128d3565b614c71565b602080601f8311600114614a1f57509080614a0d92610bd496975f92614a14575b50508160011b915f199060031b1c19161790565b9055614d63565b015190505f806149f9565b90601f19831696614a5d5f805160206154d38339815191525f527f2ae08a8e29253f69ac5d979a101956ab8f8d9d7ded63fa7a83b16fc47648eab090565b925f905b898210614aa157505090839291600194610bd4989910614a89575b505050811b019055614d63565b01515f1960f88460031b161c191690555f8080614a7c565b80600185968294968601518155019501930190614a61565b90604051614ac681610b6b565b915465ffffffffffff8116835260301c6020830152565b600c5480614aee57505f905f905f90565b805f198101116109fc577fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c6614b2791600c5f5201614ab9565b9065ffffffffffff82511691602060018060d01b0391015116906001929190565b600a5480614b5957505f905f905f90565b805f198101116109fc577fc65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a7614b2791600a5f5201614ab9565b805480614ba35750505f905f905f90565b5f199080828101116109fc57614b27925f5260205f200101614ab9565b5f80614be89260018060a01b03169360208151910182865af1614be1612d1c565b908361544f565b8051908115159182614c16575b5050614bfe5750565b60249060405190635274afe760e01b82526004820152fd5b614c299250602080918301019101612ce7565b155f80614bf5565b9190600181018091116109fc57600182018092116109fc57614c54828285613b10565b928215612b3a5709614c635790565b600181018091116109fc5790565b601f8111614c7d575050565b5f805160206154d38339815191525f527f2ae08a8e29253f69ac5d979a101956ab8f8d9d7ded63fa7a83b16fc47648eab0906020601f840160051c83019310614ce0575b601f0160051c01905b818110614cd5575050565b5f8155600101614cca565b9091508190614cc1565b601f8111614cf6575050565b5f805160206155138339815191525f527f46a2803e59a4de4e7a4c574b1243f25977ac4c77d5a1a4a609b5394cebb4a2aa906020601f840160051c83019310614d59575b601f0160051c01905b818110614d4e575050565b5f8155600101614d43565b9091508190614d3a565b9081516001600160401b038111610b66575f8051602061551383398151915290614d9681614d9184546128d3565b614cea565b602080601f8311600114614dcb57508190614dc79394955f92614a145750508160011b915f199060031b1c19161790565b9055565b90601f19831695614e095f805160206155138339815191525f527f46a2803e59a4de4e7a4c574b1243f25977ac4c77d5a1a4a609b5394cebb4a2aa90565b925f905b888210614e4457505083600195969710614e2c575b505050811b019055565b01515f1960f88460031b161c191690555f8080614e22565b80600185968294968601518155019501930190614e0d565b600c5490600160401b821015610b66576001820180600c55821015612ca557600c5f52805160209091015160301b65ffffffffffff191665ffffffffffff91909116175f805160206154b383398151915290910155565b600a5490600160401b821015610b66576001820180600a55821015612ca557600a5f52805160209091015160301b65ffffffffffff191665ffffffffffff91909116175f805160206154f383398151915290910155565b8054600160401b811015610b6657614f2791600182018155613be6565b614f5257815160209092015160301b65ffffffffffff191665ffffffffffff92909216919091179055565b634e487b7160e01b5f525f60045260245ffd5b600c5491929190811561503c57614f86614f816142988461291f565b614ab9565b805165ffffffffffff838116949116841061502a5785602093613d3095614fb6613253865165ffffffffffff1690565b03614ff25750614fcb614298614fe49361291f565b9065ffffffffffff82549181199060301b169116179055565b01516001600160d01b031690565b90506150259150615012615004610bc7565b65ffffffffffff9092168252565b6001600160d01b03871681850152614e5c565b614fe4565b604051632520601d60e01b8152600490fd5b615060915061504c615004610bc7565b6001600160d01b0384166020820152614e5c565b5f9190565b600a549192919081156150eb57615081614f816141d18461291f565b805165ffffffffffff838116949116841061502a5785602093613d30956150b1613253865165ffffffffffff1690565b036150c65750614fcb6141d1614fe49361291f565b905061502591506150d8615004610bc7565b6001600160d01b03871681850152614eb3565b61506091506150fb615004610bc7565b6001600160d01b0384166020820152614eb3565b8054929392919082156151be5761512b614f8161435e8561291f565b9061513c825165ffffffffffff1690565b65ffffffffffff8481169116811061502a57613d3094602094889261516a613253875165ffffffffffff1690565b0361518b5750614fe492615180614fcb9261291f565b905f5260205f200190565b915050615025916151ab61519d610bc7565b65ffffffffffff9093168352565b6001600160d01b03881682860152614f0a565b61506092506151ce61519d610bc7565b6001600160d01b0385166020830152614f0a565b801561403e57806152b46152ad6152a361529961528f61528561527b61527160016105499a5f908b60801c8061530f575b508060401c80615302575b508060201c806152f5575b508060101c806152e8575b508060081c806152db575b508060041c806152ce575b508060021c806152c1575b50821c6152ba575b811c1b61526a818b613b06565b0160011c90565b61526a818a613b06565b61526a8189613b06565b61526a8188613b06565b61526a8187613b06565b61526a8186613b06565b61526a8185613b06565b8092613b06565b90613af4565b810161525d565b600291509101905f615255565b600491509101905f61524a565b600891509101905f61523f565b601091509101905f615234565b602091509101905f615229565b604091509101905f61521e565b9150506080905f615213565b905b82811061532957505090565b9091808216906001818418811c83018093116109fc57600a5f5265ffffffffffff80845f805160206154f3833981519152015416908616105f14615371575050915b9061531d565b9093925081018091116109fc579061536b565b905b82811061539257505090565b9091808216906001818418811c83018093116109fc57600c5f5265ffffffffffff80845f805160206154b3833981519152015416908616105f146153da575050915b90615386565b9093925081018091116109fc57906153d4565b91905b8382106153fd5750505090565b909192808316906001818518811c83018093116109fc57855f5265ffffffffffff808460205f20015416908516105f1461543c575050925b91906153f0565b9094935081018091116109fc5791615435565b90615476575080511561546457805190602001fd5b604051630a12f52160e11b8152600490fd5b815115806154a9575b615487575090565b604051639996b31560e01b81526001600160a01b039091166004820152602490fd5b50803b1561547f56fedf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c752c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace03c65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a852c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace049016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300d7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb50175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db902dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268009b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a264697066735822122061d21157d87e9623ddeb51ba19f8345edd1a00f8105d70e5232e62df8a9f97ed64736f6c63430008190033","sourceMap":"652:3172:97:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;;;;;-1:-1:-1;;652:3172:97;;;;;;;;;;;;;;;;;;-1:-1:-1;;;3551:47:23;;;:87;;;;652:3172:97;;;;;;;;;;3551:87:23;-1:-1:-1;;;1133:40:29;;-1:-1:-1;3551:87:23;;;652:3172:97;-1:-1:-1;652:3172:97;;;;;;;;;;;;;;;;;;;-1:-1:-1;652:3172:97;;;;;;;;-1:-1:-1;;652:3172:97;;;;:::o;:::-;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;;-1:-1:-1;;652:3172:97;;;;;;;-1:-1:-1;;;;;;;;;;;652:3172:97;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;652:3172:97;;;;;;;-1:-1:-1;;;;652:3172:97;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;652:3172:97;;;;;:::o;:::-;;;;;;-1:-1:-1;;652:3172:97;;;;;;;;;:::i;:::-;;;966:10:27;11389:19:26;11385:89;;-1:-1:-1;;;;;652:3172:97;;;11487:21:26;;11483:90;;11582:29;966:10:27;;11582:20:26;966:10:27;11582:20:26;:::i;:::-;652:3172:97;;;;;;;;;;;;;;;;11582:29:26;652:3172:97;;;;;;11663:31:26;652:3172:97;966:10:27;11663:31:26;;652:3172:97;;;10380:4:26;652:3172:97;;;11483:90:26;652:3172:97;;-1:-1:-1;;;11531:31:26;;-1:-1:-1;652:3172:97;11531:31:26;;652:3172:97;;;11531:31:26;11385:89;652:3172:97;;-1:-1:-1;;;11431:32:26;;11406:1;652:3172:97;11431:32:26;;652:3172:97;;;11431:32:26;652:3172:97;;;;;;-1:-1:-1;;652:3172:97;;;;;;;966:38:96;652:3172:97;;;;;;;;;-1:-1:-1;;652:3172:97;;;;;4803:22:96;;:::i;:::-;652:3172:97;;;;;;;;;;;;-1:-1:-1;;652:3172:97;;;;;;;821:37:96;652:3172:97;;;;;;;;;-1:-1:-1;;652:3172:97;;;;;;;;;:::i;:::-;;;3217:103:28;;;:::i;:::-;-1:-1:-1;;;;;652:3172:97;;5525:21:95;5521:75;;5634:10;652:3172:97;;;;5606:15:96;652:3172:97;;;;;5606:33:96;;;:::i;:24::-;:33;:::i;:::-;5610:35:95;;5606:88;;1057:70:87;5173:21:96;;:::i;:::-;4803:22;;:::i;:::-;1057:70:87;;;:::i;:::-;5801:20:95;;;5797:82;;5904:43;;;;:::i;:::-;3282:1:28;;1805;-1:-1:-1;;;;;;;;;;;652:3172:97;3716:283:28;3282:1;652:3172:97;;;;;;;;;;;;;;5797:82:95;652:3172:97;;-1:-1:-1;;;;;;5844:24:95;;652:3172:97;;5844:24:95;5606:88;652:3172:97;;-1:-1:-1;;;5668:15:95;;652:3172:97;;5668:15:95;5521:75;652:3172:97;;-1:-1:-1;;;5569:16:95;;652:3172:97;;5569:16:95;652:3172:97;;;;;;-1:-1:-1;;652:3172:97;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;966:10:27;5162:29:26;966:10:27;5162:20:26;;;:::i;:29::-;652:3172:97;;12158:37:26;;;12154:310;;652:3172:97;6461:5:26;;;;:::i;:::-;652:3172:97;;5162:13:26;652:3172:97;;;;;12154:310:26;12215:24;;;12211:130;;12433:5;652:3172:97;6461:5:26;652:3172:97;;966:10:27;12433:5:26;;:::i;:::-;12154:310;;12211:130;652:3172:97;;-1:-1:-1;;;12266:60:26;;966:10:27;652:3172:97;12266:60:26;;652:3172:97;;;;;;;;;;;;;;;12266:60:26;652:3172:97;;;;;;-1:-1:-1;;652:3172:97;;;;;;-1:-1:-1;652:3172:97;-1:-1:-1;;;;;;;;;;;652:3172:97;;;4919:24:23;652:3172:97;-1:-1:-1;652:3172:97;4919:24:23;652:3172:97;;;;;;;;;;;;;-1:-1:-1;;652:3172:97;;;;;;;;-1:-1:-1;;;;;652:3172:97;;;;;;;;;;;;;;-1:-1:-1;;652:3172:97;;;;4084:14:96;;:::i;:::-;4112:10;;4108:65;;4190:17;652:3172:97;;;;;;12178:17:26;;;652:3172:97;;;;;;;4210:27:96;652:3172:97;;;4210:27:96;;:::i;:::-;652:3172:97;;;;;;;4189:60:96;652:3172:97;4189:60:96;;:::i;:::-;652:3172:97;;;;;;;;;;;;;;;;;;:::i;4108:65:96:-;652:3172:97;;-1:-1:-1;;;4145:17:96;;652:3172:97;;4145:17:96;652:3172:97;;;;-1:-1:-1;;;;;652:3172:97;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;652:3172:97;;;;;;;;;;;;;;;:::o;:::-;;;;;;-1:-1:-1;;652:3172:97;;;;;;:::i;:::-;-1:-1:-1;;;;;652:3172:97;;;;;;;;;;;;;;:::i;:::-;3217:103:28;;;;:::i;:::-;1673:7:71;-1:-1:-1;;;;;652:3172:97;1659:10:71;:21;1655:71;;-1:-1:-1;;;;;;;;;;;652:3172:97;;;;;;;6431:44:25;;;;;652:3172:97;6427:105:25;;;;;-1:-1:-1;15924:8:95;;6427:105:25;652:3172:97;;-1:-1:-1;;;6498:23:25;;652:3172:97;;6498:23:25;6431:44;652:3172:97;;;;6450:25:25;;;-1:-1:-1;6431:44:25;;;;;1655:71:71;652:3172:97;;-1:-1:-1;;;1703:12:71;;652:3172:97;;1703:12:71;652:3172:97;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;652:3172:97;;;;;;;:::o;:::-;;:::i;:::-;;;;;;;-1:-1:-1;;;;;652:3172:97;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;652:3172:97;;;;;;;:::o;:::-;;;;;;;;;;-1:-1:-1;;;;;652:3172:97;;;;;;;:::o;:::-;;;;;;;:::i;:::-;:::o;:::-;-1:-1:-1;;;;;652:3172:97;;;;;;-1:-1:-1;;652:3172:97;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;652:3172:97;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;652:3172:97;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;652:3172:97;;;;;;;5383:59:96;652:3172:97;;;;;;:::i;:::-;-1:-1:-1;;;;;652:3172:97;;;-1:-1:-1;652:3172:97;;;5383:15:96;652:3172:97;;;;;5383:59:96;:::i;652:3172:97:-;;;;;;-1:-1:-1;;652:3172:97;;;;;;655:32:71;-1:-1:-1;;;;;652:3172:97;;;;;;;;;;;;-1:-1:-1;;652:3172:97;;;;5350:25:23;652:3172:97;;;;;;;:::i;:::-;;-1:-1:-1;652:3172:97;-1:-1:-1;;;;;;;;;;;652:3172:97;;3202:4:23;4919:24;652:3172:97;-1:-1:-1;652:3172:97;4919:24:23;652:3172:97;3202:4:23;:::i;:::-;5350:25;:::i;:::-;652:3172:97;;;;;;;-1:-1:-1;;652:3172:97;;;;;;;;-1:-1:-1;;;1109:37:97;;652:3172;1109:37;;652:3172;;;;;;;;-1:-1:-1;;;;;652:3172:97;1109:37;;;;;;652:3172;1109:37;;;652:3172;;;;;;;;;;;;;1109:37;;;;;;;;;;;;;;;;:::i;:::-;;;652:3172;;;;;;;;;;;;;1109:37;;;;;;-1:-1:-1;1109:37:97;;;;:::i;652:3172::-;;;;;;-1:-1:-1;;652:3172:97;;;;;;;;;:::i;:::-;966:10:27;-1:-1:-1;;;;;652:3172:97;;6441:34:23;6437:102;;6549:37;652:3172:97;;;6549:37:23;:::i;6437:102::-;652:3172:97;;-1:-1:-1;;;6498:30:23;;652:3172:97;;6498:30:23;652:3172:97;;;;;;-1:-1:-1;;652:3172:97;;;;;1524:22:95;652:3172:97;;;;1524:46:95;;;652:3172:97;;;;;;;;;;;1524:46:95;-1:-1:-1;1550:20:95;652:3172:97;;;;;1524:46:95;;652:3172:97;;;;;;;:::o;:::-;;;;;;-1:-1:-1;;652:3172:97;;;;;;;;;:::i;:::-;3217:103:28;;:::i;:::-;3202:4:23;;:::i;:::-;-1:-1:-1;652:3172:97;;;;;;;;;;;9542:26:95;9538:76;;-1:-1:-1;;652:3172:97;;;;;-1:-1:-1;652:3172:97;;;;;;9665:27:95;;652:3172:97;;9665:27:95;1805:1:28;-1:-1:-1;;;;;;;;;;;652:3172:97;;9538:76:95;652:3172:97;;-1:-1:-1;;;9591:12:95;;652:3172:97;;9591:12:95;652:3172:97;;;;;;-1:-1:-1;;652:3172:97;;;;;;1718:31:96;652:3172:97;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3217:103:28;;:::i;:::-;-1:-1:-1;;;;;652:3172:97;;;;;3474:24:95;;3470:81;;-1:-1:-1;652:3172:97;;;;3565:55:95;;;652:3172:97;3561:118:95;;652:3172:97;;-1:-1:-1;;;3713:43:95;;;3750:4;3713:43;;;652:3172:97;;;;;;;;;;;;;;;;;;;;;;;;;3713:43:95;;;;;;;;;;-1:-1:-1;3713:43:95;;;652:3172:97;;3829:6:95;652:3172:97;;;3750:4:95;;3802:10;;3829:6;;:::i;:::-;-1:-1:-1;652:3172:97;;;3864:43:95;;;3750:4;3864:43;;;652:3172:97;;;;;;;;;;3864:43:95;652:3172:97;;;;;;3864:43:95;652:3172:97;;;;;3864:43:95;;;;;;;:59;:43;-1:-1:-1;3864:43:95;;;652:3172:97;3864:59:95;;;:::i;:::-;3938:20;;;3934:79;;652:3172:97;;;;;4027:64:95;;652:3172:97;4023:123:95;;5173:21:96;;652:3172:97;5173:21:96;4502:93:95;5173:21:96;;:::i;:::-;4803:22;4426:66:95;4803:22:96;;:::i;:::-;4349:67:95;390:70:87;;;;;:::i;:::-;837:15:62;4385:30:95;837:15:62;819:34;837:15;819:34;:::i;:::-;4385:30:95;;:::i;:::-;4349:67;;:::i;:::-;837:15:62;;4463:28:95;837:15:62;819:34;837:15;819:34;:::i;4463:28:95:-;4426:66;;:::i;:::-;-1:-1:-1;;;;;;;652:3172:97;;;;;;5606:15:96;652:3172:97;;;;;837:15:62;4553:41:95;837:15:62;5606:33:96;:24;819:34:62;837:15;819:34;:::i;:::-;-1:-1:-1;;;;;652:3172:97;;;;;;;5606:15:96;652:3172:97;;;;;;;5606:33:96;4553:41:95;:::i;:::-;4502:93;;:::i;:::-;-1:-1:-1;;652:3172:97;;;;;;;;;;;;;3802:10:95;;4611:62;;652:3172:97;;4611:62:95;3282:1:28;1805;-1:-1:-1;;;;;;;;;;;652:3172:97;3716:283:28;3282:1;652:3172:97;;;;;-1:-1:-1;;1808:46:97;;652:3172;;1808:46;652:3172;;;;;;;;;;;;;;;;;;;4023:123:95;652:3172:97;;-1:-1:-1;;;4114:21:95;;;4027:64;5173:21:96;4045:31:95;5173:21:96;;;:::i;4045:31:95:-;652:3172:97;;-1:-1:-1;4027:64:95;;3934:79;-1:-1:-1;652:3172:97;;-1:-1:-1;;;3981:21:95;;;3864:43;;;;;;-1:-1:-1;3864:43:95;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;3713;3829:6;3713:43;;;;;;;;;;;;;;;:::i;:::-;;;;;3561:118;-1:-1:-1;652:3172:97;;-1:-1:-1;;;3643:25:95;;;3565:55;-1:-1:-1;3609:10:95;652:3172:97;;;;3586:22:95;652:3172:97;;;;;;;;3585:35:95;3565:55;;3470:81;652:3172:97;;-1:-1:-1;;;3521:19:95;;;652:3172:97;;;;;;-1:-1:-1;;652:3172:97;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;652:3172:97;;;;;1805:27:96;652:3172:97;;;;;;;;;;;;;;;-1:-1:-1;;652:3172:97;;;;;;1968:34:96;652:3172:97;;;;;;;;;;;;;;;-1:-1:-1;;652:3172:97;;;;;;;;;;:::i;:::-;;;;;-1:-1:-1;;;;;652:3172:97;;;;;;;;;:::i;:::-;;;;;4622:48:96;652:3172:97;;;:::i;:::-;4622:48:96;;:::i;652:3172:97:-;;;;;;-1:-1:-1;;652:3172:97;;;;;;;;;:::i;:::-;3217:103:28;;:::i;:::-;3202:4:23;;:::i;:::-;-1:-1:-1;652:3172:97;;;;;;;;;;;;;10370:24:95;10366:74;;-1:-1:-1;;652:3172:97;;;;;;;;-1:-1:-1;652:3172:97;;;;;;10489:25:95;;652:3172:97;;10489:25:95;3282:1:28;1805;-1:-1:-1;;;;;;;;;;;652:3172:97;3716:283:28;652:3172:97;;;;;;-1:-1:-1;;652:3172:97;;;;;-1:-1:-1;;;;;;;;;;;;;;;;652:3172:97;;;;;;;;;;;;;;-1:-1:-1;;652:3172:97;;;;;;:::i;:::-;;;;;;:::i;:::-;-1:-1:-1;;;;;652:3172:97;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;8837:64:25;;652:3172:97;;;;;;734:29:71;730:87;;652:3172:97;;;;;6431:44:25;;;;;652:3172:97;6427:105:25;;;6656:20;652:3172:97;6656:20:25;652:3172:97;1167:340:71;652:3172:97;;;;-1:-1:-1;;;;;652:3172:97;;;;;6575:22:25;-1:-1:-1;;;;;;;;;;;;;;652:3172:97;;;;;;;;;6575:22:25;1167:340:71;:::i;:::-;-1:-1:-1;;;;;;;;;;;652:3172:97;;-1:-1:-1;;652:3172:97;;;;;-1:-1:-1;;;;;652:3172:97;;;;;;;;;;;;;6656:20:25;;;;652:3172:97;6431:44:25;652:3172:97;;;;;-1:-1:-1;6450:25:25;6431:44;;;730:87:71;652:3172:97;;-1:-1:-1;;;786:20:71;;652:3172:97;;786:20:71;652:3172:97;;;;;;-1:-1:-1;;652:3172:97;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;-1:-1:-1;;652:3172:97;;;;;;-1:-1:-1;652:3172:97;2431:59:96;652:3172:97;;;;-1:-1:-1;652:3172:97;;;;;;;;;;;;;;-1:-1:-1;;652:3172:97;;;;3875:17:96;652:3172:97;;3895:30:96;652:3172:97;;;;;3895:14:96;;;:::i;:::-;652:3172:97;;;3895:30:96;;:::i;:::-;652:3172:97;;;;;;;3874:63:96;652:3172:97;3874:63:96;;:::i;:::-;652:3172:97;;;;;;;;;;;;;-1:-1:-1;;652:3172:97;;;;;;1200:42:96;-1:-1:-1;;;;;652:3172:97;;;;;;;;;;;;-1:-1:-1;;652:3172:97;;;;;;2136:32:96;652:3172:97;;;;;;;;;;;;;;;;;;-1:-1:-1;;652:3172:97;;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;652:3172:97;5606:15:96;652:3172:97;;;5606:33:96;652:3172:97;-1:-1:-1;652:3172:97;5606:33:96;:::i;652:3172:97:-;;;;;;-1:-1:-1;;652:3172:97;;;;2303:62:24;;:::i;:::-;-1:-1:-1;;;;;;;;;;;652:3172:97;;-1:-1:-1;;;;;;652:3172:97;;;;;;;-1:-1:-1;;;;;652:3172:97;3975:40:24;652:3172:97;;3975:40:24;652:3172:97;;;;;;;-1:-1:-1;;652:3172:97;;;;;;;;;;;:::i;:::-;3217:103:28;;:::i;:::-;7131:7:95;652:3172:97;7117:21:95;;-1:-1:-1;;;;;652:3172:97;;-1:-1:-1;;;;;652:3172:97;;;7117:21:95;:10;:21;7113:71;;7218:14;;:::i;:::-;7265:25;;;;:::i;:::-;7305:17;;;;:53;;;652:3172:97;7304:87:95;;;;652:3172:97;7300:146:95;;652:3172:97;5173:21:96;9310:48:95;5173:21:96;;;:::i;:::-;7540:17:95;7528:30;7540:17;;;:::i;:::-;652:3172:97;;7528:11:95;652:3172:97;;;;;;;7528:30:95;652:3172:97;;7572:29:95;;;;;7642:30;;;;;:::i;:::-;7702:32;;;;:::i;:::-;7752:17;;;7748:384;;7568:1615;;;;;;;9197:17;9193:102;;7568:1615;652:3172:97;;;;;;;;;;;;;;;;;;;;;;;9310:48:95;3282:1:28;1805;-1:-1:-1;;;;;;;;;;;652:3172:97;3716:283:28;3282:1;652:3172:97;;;;;;;;;;;;;9193:102:95;-1:-1:-1;652:3172:97;9270:13:95;;652:3172:97;;9230:18:95;;652:3172:97;;-1:-1:-1;;;;;652:3172:97;;;9230:18:95;7556:1;652:3172:97;-1:-1:-1;;;;;652:3172:97;9270:13:95;;:::i;:::-;9193:102;;7748:384;8045:29;7813:50;7962:65;7813:50;7998:28;7914:29;7813:50;8057:16;7813:50;8077:40;7813:50;;;:::i;:::-;7914:29;;;:::i;:::-;837:15:62;819:34;837:15;819:34;:::i;:::-;7998:28:95;;:::i;8077:40::-;8057:16;;:::i;8045:29::-;652:3172:97;7748:384:95;;;;;;;7568:1615;8185:26;;;;652:3172:97;;7528:11:95;652:3172:97;;;;;;;8185:26:95;652:3172:97;8250:27:95;:45;:27;;;;;:::i;:45::-;8325:32;;;;;:::i;:::-;8375:17;;8371:802;;7568:1615;;;;;;;;8371:802;9096:26;8436:50;;8537:53;8436:50;8637:54;8436:50;8637:29;8436:50;9125:33;8436:50;;;;:::i;:::-;8537:53;;;;;;:::i;:::-;8637:29;;;;:::i;:::-;:54;:::i;:::-;8714:33;;;;8710:194;;8371:802;8922:65;837:15:62;8958:28:95;9038:40;837:15:62;;;819:34;837:15;819:34;:::i;9038:40:95:-;9005:30;9017:17;;;:::i;9005:30::-;652:3172:97;9125:33:95;:::i;:::-;9096:26;652:3172:97;;7528:11:95;652:3172:97;;;;;;;9096:26:95;652:3172:97;8371:802:95;;;;;;;8710:194;8797:33;8771:59;8922:65;8797:33;;;9038:40;8797:33;;;:::i;:::-;8771:59;;:::i;:::-;8852:33;;-1:-1:-1;8852:33:95;;-1:-1:-1;8710:194:95;;7300:146;652:3172:97;;-1:-1:-1;;;7414:21:95;;652:3172:97;;7414:21:95;7304:87;7363:28;;;;7304:87;;7305:53;7341:17;;;;:::i;:::-;7326:32;;7305:53;;7113:71;652:3172:97;;-1:-1:-1;;;7161:12:95;;652:3172:97;;7161:12:95;652:3172:97;;;;;;-1:-1:-1;;652:3172:97;;;;4384:17:96;652:3172:97;;;;;;;4405:14:96;;;:::i;:::-;4384:17;652:3172:97;;;;;;;4404:36:96;652:3172:97;;;4404:36:96;;:::i;652:3172:97:-;;;;;;-1:-1:-1;;652:3172:97;;;;;;;:::i;:::-;-1:-1:-1;;;;;652:3172:97;;;;;5162:13:26;652:3172:97;;;;;;:::o;:::-;;;;;;-1:-1:-1;;652:3172:97;;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;652:3172:97;2307:68:96;652:3172:97;;;;;-1:-1:-1;652:3172:97;;;;;;;;;;;;;;;;;-1:-1:-1;;652:3172:97;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;-1:-1:-1;;652:3172:97;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;652:3172:97;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6491:14:95;652:3172:97;;6491:14:95;;:::i;652:3172:97:-;;;;;4994:47:96;652:3172:97;;;:::i;:::-;4994:47:96;;:::i;652:3172:97:-;;;;;;;;;;;;;;;;;;;;:::i;:::-;3217:103:28;;:::i;:::-;10932:22:95;652:3172:97;;;;;10928:89:95;;652:3172:97;;-1:-1:-1;;;11032:49:95;;-1:-1:-1;;;;;652:3172:97;;;11032:49:95;;;652:3172:97;;;;;;;;;;;;;;;11032:49:95;11042:17;;;652:3172:97;11032:49:95;;;;;;;-1:-1:-1;11032:49:95;;;652:3172:97;11031:50:95;;11027:102;;652:3172:97;;-1:-1:-1;;;11143:34:95;;652:3172:97;;;;;11143:34:95;652:3172:97;11143:34:95;652:3172:97;;11143:34:95;;;;;;;-1:-1:-1;11143:34:95;;;652:3172:97;11189:4:95;;;652:3172:97;;11143:51:95;11139:107;;-1:-1:-1;10932:22:95;652:3172:97;;-1:-1:-1;;;;;652:3172:97;;;;-1:-1:-1;;;;;;652:3172:97;;;;;;;-1:-1:-1;;;652:3172:97;;;11334:24:95;-1:-1:-1;;11334:24:95;3282:1:28;1805;-1:-1:-1;;;;;;;;;;;652:3172:97;3716:283:28;11139:107:95;652:3172:97;;-1:-1:-1;;;11217:18:95;;;11143:34;;;;;;;-1:-1:-1;11143:34:95;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;11027:102;-1:-1:-1;652:3172:97;;-1:-1:-1;;;11104:14:95;;;11032:49;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;10928:89;652:3172:97;;-1:-1:-1;;;10977:29:95;;;652:3172:97;;;;;;-1:-1:-1;;652:3172:97;;;;;;1298:40:96;-1:-1:-1;;;;;652:3172:97;;;;;;;;;;;;-1:-1:-1;;652:3172:97;;;;1703:14:95;;:::i;:::-;5173:21:96;;:::i;:::-;652:3172:97;;;;1750:11:95;652:3172:97;;;;;;;;;;;;;1791:1:95;652:3172:97;;;;;;;;;1750:11:95;652:3172:97;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;652:3172:97;;;;-1:-1:-1;;;;;;;;;;;652:3172:97;;;-1:-1:-1;;;;;652:3172:97;;;;;;;;;;;;;;-1:-1:-1;;652:3172:97;;;;;;3901:31:23;652:3172:97;;;;;:::i;:::-;;;-1:-1:-1;652:3172:97;-1:-1:-1;;;;;;;;;;;652:3172:97;;;-1:-1:-1;652:3172:97;;;;;;;;;;;;;;;;;3901:31:23;652:3172:97;;;;;;;;;;;;;;;;-1:-1:-1;;652:3172:97;;;;;;;-1:-1:-1;;;;;;;;;;;652:3172:97;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;652:3172:97;;;;;;;-1:-1:-1;;;;652:3172:97;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;652:3172:97;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;652:3172:97;;;;-1:-1:-1;652:3172:97;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;416:25:75;;;;477:31;416:25;;:::i;:::-;652:3172:97;;;;;;;;;;477:31:75;;652:3172:97;;;;;;;;;;;:::i;:::-;477:31:75;652:3172:97;;477:31:75;;;;;;:::i;:::-;518:79;;;652:3172:97;518:79:75;;652:3172:97;;;;;;-1:-1:-1;;652:3172:97;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;652:3172:97;;;;;;;;;;;;;;;;;-1:-1:-1;;652:3172:97;;;;;;;1109:35:96;652:3172:97;;;;;;;;;-1:-1:-1;;652:3172:97;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;3217:103:28;;:::i;:::-;3202:4:23;;:::i;:::-;-1:-1:-1;;;;;652:3172:97;;;9907:21:95;;9903:75;;-1:-1:-1;652:3172:97;;;9992:22:95;652:3172:97;;;;;;;;;;;;;9992:41:95;9988:91;;-1:-1:-1;;;;;652:3172:97;;;;;3586:22:95;652:3172:97;;;;;10145:44:95;;;;10089:40;;:31;652:3172:97;;;;;;;;;;;;;;10089:40:95;652:3172:97;;;;;;;;;;;;;;;10145:44:95;;;;3282:1:28;1805;-1:-1:-1;;;;;;;;;;;652:3172:97;3716:283:28;9903:75:95;652:3172:97;;-1:-1:-1;;;9951:16:95;;652:3172:97;;9951:16:95;652:3172:97;;;;;;-1:-1:-1;;652:3172:97;;;;;2666:94:96;652:3172:97;;;;;:::i;:::-;;;-1:-1:-1;652:3172:97;2666:94:96;652:3172:97;;;-1:-1:-1;652:3172:97;;;;;;;;;;;;;;;;;2666:94:96;652:3172:97;;;;;;;;;;;;;-1:-1:-1;;652:3172:97;;;;;;2816:92:96;652:3172:97;;;;;:::i;:::-;;;-1:-1:-1;652:3172:97;2816:92:96;652:3172:97;;;-1:-1:-1;652:3172:97;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;652:3172:97;;;;4911:5:26;652:3172:97;;;;;:::i;:::-;;;966:10:27;;4911:5:26;:::i;:::-;652:3172:97;;;4934:4:26;652:3172:97;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3217:103:28;;:::i;:::-;11459:20:95;652:3172:97;;;;;11455:85:95;;-1:-1:-1;;;;;652:3172:97;;;;;;11550:312:95;;652:3172:97;11459:20:95;652:3172:97;;-1:-1:-1;;;;652:3172:97;-1:-1:-1;;;652:3172:97;;;11872:27:95;11915:20;-1:-1:-1;11915:20:95;;3282:1:28;1805;-1:-1:-1;;;;;;;;;;;652:3172:97;3716:283:28;11550:312:95;652:3172:97;;-1:-1:-1;;;11597:45:95;;-1:-1:-1;;;;;652:3172:97;;11597:45:95;;;652:3172:97;;;11597:45:95;;652:3172:97;;;;;;11597:45:95;11607:15;;;652:3172:97;11597:45:95;;;;;;;-1:-1:-1;11597:45:95;;;11550:312;11596:46;;11592:104;;652:3172:97;;-1:-1:-1;;;11714:30:95;;;652:3172:97;11714:30:95;652:3172:97;11714:30:95;;;;;;;;-1:-1:-1;11714:30:95;;;11550:312;11756:4;;;652:3172:97;;11714:47:95;11710:109;;-1:-1:-1;11459:20:95;652:3172:97;;-1:-1:-1;;;;;;652:3172:97;-1:-1:-1;;;;;652:3172:97;;;;;;;;;11550:312:95;;;;;;11710:109;652:3172:97;;-1:-1:-1;;;11788:16:95;;;11714:30;;;;;;;-1:-1:-1;11714:30:95;;;;;;:::i;:::-;;;;;;11592:104;652:3172:97;;-1:-1:-1;;;11669:12:95;;652:3172:97;;11669:12:95;11597:45;;;;;;;;;;;;;;:::i;:::-;;;;11455:85;652:3172:97;;-1:-1:-1;;;11502:27:95;;;652:3172:97;;;;;;-1:-1:-1;;652:3172:97;;;;;;;;;:::i;:::-;;;3217:103:28;;;:::i;:::-;-1:-1:-1;;;;;652:3172:97;;;;;6112:23:95;;6108:79;;6273:6;652:3172:97;6206:13:95;;;;:::i;:::-;652:3172:97;;;-1:-1:-1;652:3172:97;;;;6273:6:95;:::i;:::-;652:3172:97;;;;;;;;;;;;6302:10:95;;6296:43;;652:3172:97;6296:43:95;1805:1:28;-1:-1:-1;;;;;;;;;;;652:3172:97;;;;;;;;;;;;;;6108:79:95;652:3172:97;;-1:-1:-1;;;6158:18:95;;652:3172:97;;6158:18:95;652:3172:97;;;;;;-1:-1:-1;;652:3172:97;;;;;;-1:-1:-1;652:3172:97;2546:64:96;652:3172:97;;;;-1:-1:-1;652:3172:97;;;;;;;;;;;;;;-1:-1:-1;;652:3172:97;;;;2058:22:96;652:3172:97;;;-1:-1:-1;;;;;652:3172:97;;;;;;;;;;;;;;-1:-1:-1;;652:3172:97;;;;;5173:21:96;;:::i;652:3172:97:-;;;;;;-1:-1:-1;;652:3172:97;;;;;;3217:103:28;;:::i;:::-;966:10:27;-1:-1:-1;652:3172:97;;;;;;;;;;1109:35:96;;652:3172:97;;4468:23:23;4464:108;;652:3172:97;;;;10692:21:95;10688:71;;652:3172:97;;10805:22:95;652:3172:97;;;;;;;;10805:22:95;1805:1:28;-1:-1:-1;;;;;;;;;;;652:3172:97;;4464:108:23;652:3172:97;;;;4514:47:23;;;;;;966:10:27;652:3172:97;4514:47:23;;652:3172:97;;;;;4514:47:23;652:3172:97;;;;;;-1:-1:-1;;652:3172:97;;;;;;;;;:::i;:::-;3123:14:95;;:::i;:::-;3154:24;;;:::i;:::-;3181:29;;;;;:::i;:::-;652:3172:97;;;;;;;3235:1:95;652:3172:97;;;;;;;3213:33:95;;;:::i;:::-;652:3172:97;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;652:3172:97;;;;1888:24:96;652:3172:97;;;-1:-1:-1;;;;;652:3172:97;;;;;;;;;;;;;;-1:-1:-1;;652:3172:97;;;;5767:26:23;652:3172:97;;;;;;;:::i;:::-;;-1:-1:-1;652:3172:97;-1:-1:-1;;;;;;;;;;;652:3172:97;;3202:4:23;4919:24;652:3172:97;-1:-1:-1;652:3172:97;4919:24:23;652:3172:97;3202:4:23;:::i;:::-;5767:26;:::i;652:3172:97:-;;;;;;-1:-1:-1;;652:3172:97;;;;;;;;;;;;;-1:-1:-1;;;;;652:3172:97;;;;;;;;;;;;-1:-1:-1;;652:3172:97;;;;;;;675:39:96;652:3172:97;;;;;;;;;-1:-1:-1;;652:3172:97;;;;;5162:29:26;652:3172:97;;;;;:::i;:::-;5162:20:26;652:3172:97;;;;;;:::i;:::-;5162:20:26;:::i;652:3172:97:-;;;;;;-1:-1:-1;;652:3172:97;;;;;;;;;;;;;;;;;;;-1:-1:-1;;652:3172:97;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;-1:-1:-1;;;;;652:3172:97;;;;;;;;;;;;;;;:::i;:::-;1972:48:95;;652:3172:97;;;;;;;:::i;:::-;;;;;;;;;;;;;;2034:16:95;;2030:111;;652:3172:97;;2233:39:95;1057:70:87;2233:39:95;;4622:48:96;2196:77:95;2233:39;;;;2196:77;;:::i;:::-;2312:36;;4994:47:96;652:3172:97;2312:36:95;;;4994:47:96;;:::i;:::-;2389:37:95;;;4622:48:96;;:::i;:::-;1057:70:87;;:::i;:::-;652:3172:97;;;;;;;;;;;;;2030:111:95;2089:41;;;;-1:-1:-1;652:3172:97;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;4622:48:96;652:3172:97;2196:77:95;652:3172:97;1057:70:87;652:3172:97;;;:::i;:::-;;;;;2030:111:95;;;;;652:3172:97;;;;;;-1:-1:-1;;652:3172:97;;;;2357:1:24;652:3172:97;;;;;:::i;:::-;2303:62:24;;:::i;:::-;2357:1;:::i;652:3172:97:-;;;;;;-1:-1:-1;;652:3172:97;;;;;;;;;:::i;:::-;;;3217:103:28;;:::i;:::-;-1:-1:-1;;;;;652:3172:97;;4890:21:95;4886:75;;4975:11;;4971:73;;845:69:87;4803:22:96;;:::i;:::-;5173:21;;:::i;:::-;845:69:87;;;:::i;:::-;5180:10:95;652:3172:97;;;;5606:15:96;652:3172:97;;;;;5180:10:95;;;5606:33:96;;;:::i;:::-;5150:41:95;;5146:96;;5267:40;;;;;:::i;5146:96::-;652:3172:97;;-1:-1:-1;;;5214:17:95;;652:3172:97;;5214:17:95;4971:73;652:3172:97;;-1:-1:-1;;;5009:24:95;;652:3172:97;;5009:24:95;652:3172:97;;;;;;-1:-1:-1;;652:3172:97;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;652:3172:97;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;:::o;:::-;;7556:1:95;652:3172:97;;;;;;;:::o;:::-;;;;;;;;;;:::o;5256:193:96:-;-1:-1:-1;;;;;652:3172:97;-1:-1:-1;652:3172:97;;;5383:15:96;652:3172:97;;;;;5383:59:96;;5256:193;;5383:59;:::i;652:3172:97:-;;;;;;;;;;1167:340:71;;652:3172:97;1167:340:71;6893:76:25;;:::i;:::-;;;:::i;:::-;1805:1:28;-1:-1:-1;;;;;;;;;;;652:3172:97;-1:-1:-1;;;;;652:3172:97;;1376:73:71;;1167:340;652:3172:97;;;;:::i;:::-;;;3642:39;;;;;;;652:3172;;;;;;;3642:39;;;652:3172;-1:-1:-1;;;;;652:3172:97;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;3734:29;652:3172;;2577:147:26;652:3172:97;3734:29;652:3172;;;;:::i;:::-;;;;;;;;3745:17;652:3172;3734:29;652:3172;;3734:29;;;;;;:::i;:::-;;:::i;:::-;3788:11;3801:13;;2577:147:26;;:::i;1376:73:71:-;6961:1:25;6893:76;;;:::i;:::-;;;:::i;6961:1::-;1376:73:71;;;2492:191:95;-1:-1:-1;;;;;652:3172:97;-1:-1:-1;652:3172:97;;;5606:15:96;652:3172:97;;;;;5606:33:96;;;:::i;:::-;5173:21;;:::i;:::-;4803:22;;:::i;:::-;652:3172:97;1884:1:87;652:3172:97;;;;;;;1884:1:87;652:3172:97;;;;;;;8188:25:57;;;:::i;652:3172:97:-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;:::i;3612:132:96:-;819:34:62;837:15;819:34;:::i;:::-;3683:54:96;3703:17;652:3172:97;3684:36:96;652:3172:97;;;;;;;3684:36:96;;:::i;:::-;652:3172:97;;;3683:54:96;;:::i;:::-;652:3172:97;3612:132:96;:::o;3313:244::-;3418:17;652:3172:97;;;;;;;;;;;;;;3406:29:96;3402:85;;3503:47;3504:29;;;;:::i;3402:85::-;652:3172:97;;-1:-1:-1;;;3458:18:96;;;;;3217:103:28;;;;:::i;:::-;652:3172:97;;-1:-1:-1;;;;;652:3172:97;;;6521:23:95;;6517:79;;6650:11;;6646:70;;652:3172:97;6742:10:95;;;;;;-1:-1:-1;652:3172:97;;6887:49:95;;652:3172:97;;;;6864:6:95;;652:3172:97;;6821:18:95;;652:3172:97;;-1:-1:-1;;;;;652:3172:97;;;6821:18:95;6864:6;:::i;:::-;6887:49;652:3172:97;;6898:10:95;;;;6887:49;;;:::i;:::-;;;;3282:1:28;;1805;-1:-1:-1;;;;;;;;;;;652:3172:97;3716:283:28;6754:3:95;6790:9;6773:27;652:3172:97;6790:9:95;6783:17;6790:9;;;;;:::i;:::-;652:3172:97;6783:17:95;:::i;6773:27::-;6754:3;652:3172:97;6731:9:95;;6646:70;652:3172:97;;-1:-1:-1;;;6684:21:95;;;;;652:3172:97;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;652:3172:97;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;-1:-1:-1;652:3172:97;;;;:::o;:::-;;;:::o;3405:215:24:-;-1:-1:-1;;;;;652:3172:97;;;;3489:22:24;;3485:91;;-1:-1:-1;;;;;;;;;;;652:3172:97;;-1:-1:-1;;;;;;652:3172:97;;;;;;;;3975:40:24;-1:-1:-1;;3975:40:24;3405:215::o;3485:91::-;652:3172:97;;-1:-1:-1;;;3534:31:24;;3509:1;3534:31;;;652:3172:97;;;3534:31:24;2731:227:95;;2871:34;2731:227;652:3172:97;-1:-1:-1;652:3172:97;2871:18:95;652:3172:97;;;-1:-1:-1;652:3172:97;;;;;;;;;;;;;;;;;2871:34:95;652:3172:97;;-1:-1:-1;652:3172:97;2907:11:95;652:3172:97;;;-1:-1:-1;652:3172:97;;2927:16:95;652:3172:97;;;-1:-1:-1;652:3172:97;;;1884:1:87;652:3172:97;;;;;;;1884:1:87;652:3172:97;;;;;;;8188:25:57;;;:::i;3326:384:28:-;-1:-1:-1;;;;;;;;;;;1847:1:28;652:3172:97;;3526:20:28;3522:88;;1847:1;652:3172:97;;3326:384:28:o;3522:88::-;652:3172:97;;-1:-1:-1;;;3569:30:28;;;;;1867:311:97;12135:10:95;-1:-1:-1;652:3172:97;;;5606:15:96;652:3172:97;;;;;1867:311;;;-1:-1:-1;;1867:311:97;;12119:93:95;;819:34:62;837:15;819:34;:::i;:::-;12135:10:95;652:3172:97;;;;5606:15:96;652:3172:97;;;;;12170:41:95;;12135:10;;5606:33:96;;;:::i;12119:93:95:-;837:15:62;;12222:67:95;819:34:62;837:15;819:34;:::i;:::-;12259:29:95;4803:22:96;;;:::i;12222:67:95:-;837:15:62;;12299:68:95;819:34:62;837:15;819:34;:::i;:::-;12335:31:95;5173:21:96;;;:::i;12299:68:95:-;12394:14;;;12769:34;12394:14;12769:25;12394:18;:14;;:::i;:::-;:18;:::i;:::-;12726:33;12445:18;;652:3172:97;;7528:11:95;652:3172:97;;;;;;;12445:18:95;652:3172:97;12502:23:95;;652:3172:97;;12502:16:95;652:3172:97;;;;;;;12502:23:95;652:3172:97;12660:30:95;390:70:87;;;;;:::i;:::-;12660:30:95;;;;:::i;:::-;12639:18;;652:3172:97;;7528:11:95;652:3172:97;;;;;;;12639:18:95;652:3172:97;12726:33:95;:::i;:::-;12700:23;;652:3172:97;;12502:16:95;652:3172:97;;;;;;;12700:23:95;652:3172:97;;;12769:18:95;652:3172:97;;;;;;;12769:34:95;:50;652:3172:97;;;12769:50:95;:::i;:::-;652:3172:97;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;652:3172:97;;;;;12135:10:95;;12835:74;;652:3172:97;;12835:74:95;652:3172:97;;;;;;12135:10:95;;2125:46:97;;652:3172;;;;2125:46;;;;1867:311::o;6868:300:26:-;;-1:-1:-1;;;;;652:3172:97;;;;;6951:18:26;;6947:86;;652:3172:97;;7046:16:26;;;7042:86;;-1:-1:-1;;;;;652:3172:97;;;;;;5606:15:96;652:3172:97;;;;;5606:33:96;;;:::i;:::-;2607:19:97;;;;2603:115;;3459:25;2838:21;:65;3459:25;2838:21;;;3354:65;2838:21;652:3172;;;;;;;;5606:15:96;652:3172:97;;;;;;;2838:21;837:15:62;;819:34;837:15;819:34;:::i;:::-;652:3172:97;;2838:65;;:::i;:::-;-1:-1:-1;;;;;;;652:3172:97;;;;;;5606:15:96;652:3172:97;;;;;837:15:62;;5606:33:96;:24;819:34:62;837:15;819:34;:::i;:::-;-1:-1:-1;;;;;652:3172:97;;;;;;;5606:15:96;652:3172:97;;;;;;;5606:33:96;652:3172:97;3354:65;;:::i;:::-;-1:-1:-1;;652:3172:97;;;;;;;;;;;;;2603:115;652:3172;;-1:-1:-1;;;2653:50:97;;-1:-1:-1;;;;;652:3172:97;;;;2653:50;;;652:3172;;;;;;;;;;;;;;;;12266:60:26;7042:86;652:3172:97;;-1:-1:-1;;;7085:32:26;;6967:1;7085:32;;;652:3172:97;;;7085:32:26;6947:86;652:3172:97;;-1:-1:-1;;;6992:30:26;;6967:1;6992:30;;;652:3172:97;;;6992:30:26;14291:213:58;652:3172:97;14369:24:58;;;;14365:103;;652:3172:97;14291:213:58;:::o;14365:103::-;652:3172:97;;;;14416:41:58;;;;;;14447:2;14416:41;;;652:3172:97;;;;;14416:41:58;652:3172:97;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;:::o;7558:604:86:-;;652:3172:97;;7686:17:86;7682:83;;652:3172:97;7789:27:86;652:3172:97;7789:27:86;652:3172:97;;7789:27:86;;;;;;:::i;:::-;7860:14;;;:::i;:::-;652:3172:97;;;;;;;;;;;;;;;;7888:22:86;;;7884:77;;7975:21;-1:-1:-1;7975:84:86;;;;7558:604;7971:139;;;;8127:28;;;;:::i;7971:139::-;7789:27;8082:17;;;652:3172:97;8075:24:86;:::o;7975:84::-;652:3172:97;;;8009:16:86;4622:13:96;652:3172:97;8009:16:86;:::i;:::-;652:3172:97;;;8001:24:86;:57;;;;;7975:84;;;;;;;8001:57;8029:29;8038:8;;;8029:18;8038:8;8029:23;8038:8;;:::i;:::-;8029:18;:::i;:::-;652:3172:97;;;;;8029:23:86;652:3172:97;;;;8029:29:86;;8001:57;;;;7884:77;7933:17;;;7789:27;7933:17;;;652:3172:97;7926:24:86;:::o;7682:83::-;7726:28;;;;:::i;7558:604::-;;652:3172:97;;7686:17:86;7682:83;;652:3172:97;7789:27:86;652:3172:97;7789:27:86;652:3172:97;;7789:27:86;;;;;;:::i;:::-;7860:14;;;:::i;:::-;652:3172:97;;;;;;;;;;;;;;;;7888:22:86;;;7884:77;;7975:21;-1:-1:-1;7975:84:86;;;;7558:604;7971:139;;;;8127:28;;;;:::i;7975:84::-;652:3172:97;;;8009:16:86;4994:12:96;652:3172:97;8009:16:86;:::i;:::-;652:3172:97;;;8001:24:86;:57;;;;;7975:84;;;;;;;8001:57;8029:29;8038:8;;;8029:18;8038:8;8029:23;8038:8;;:::i;:::-;8029:18;:::i;:29::-;;8001:57;;;;7682:83;7726:28;;;;:::i;7558:604::-;;652:3172:97;;7686:17:86;7682:83;;652:3172:97;7789:27:86;652:3172:97;7789:27:86;652:3172:97;;7789:27:86;;;;;;:::i;:::-;7860:14;;;;;:::i;:::-;652:3172:97;;;;;;;;;;;;;;;;7888:22:86;;;7884:77;;7975:21;-1:-1:-1;7975:84:86;;;;7558:604;7971:139;;;;8127:28;;;;:::i;7971:139::-;8082:17;;7789:27;8082:17;652:3172:97;8075:24:86;:::o;7975:84::-;652:3172:97;;;8009:16:86;652:3172:97;;8009:16:86;:::i;:::-;652:3172:97;;;8001:24:86;:57;;;;;7975:84;;;;;;;8001:57;8029:29;8038:8;;;8029:18;8038:8;8029:23;8038:8;;:::i;:::-;8029:18;;:::i;:29::-;;8001:57;;;;7884:77;7933:17;;;;;7789:27;7933:17;652:3172:97;7926:24:86;:::o;7682:83::-;7726:28;;;;:::i;4148:103:23:-;966:10:27;-1:-1:-1;652:3172:97;;;;;;;;;675:39:96;;652:3172:97;;3901:31:23;652:3172:97;;4468:23:23;4464:108;;4148:103;:::o;:::-;966:10:27;-1:-1:-1;652:3172:97;;;;;;;;;966:38:96;;652:3172:97;;3901:31:23;652:3172:97;4148:103:23;966:10:27;-1:-1:-1;652:3172:97;;;;;;;;;821:37:96;;652:3172:97;;3901:31:23;652:3172:97;4148:103:23;-1:-1:-1;652:3172:97;;;-1:-1:-1;;;;;;;;;;;652:3172:97;;;;;;;;966:10:27;652:3172:97;;;;;;;;;3901:31:23;652:3172:97;7270:387:23;-1:-1:-1;;;;;652:3172:97;;13555:17:95;652:3172:97;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2887:71:23;652:3172:97;;;;13555:17:95;652:3172:97;;;;;;;;;;;-1:-1:-1;;;;;652:3172:97;;;;;;;;;;-1:-1:-1;;652:3172:97;7509:4:23;652:3172:97;;;966:10:27;;-1:-1:-1;;;;;652:3172:97;-1:-1:-1;7532:40:23;-1:-1:-1;;7532:40:23;7509:4;7586:11;:::o;7432:219::-;7628:12;;13555:17:95;7628:12:23;:::o;7270:387::-;-1:-1:-1;;;;;652:3172:97;;-1:-1:-1;652:3172:97;;;;;;;;;675:39:96;;-1:-1:-1;;;;;;;;;;;2887:71:23;652:3172:97;;3901:31:23;652:3172:97;;;;-1:-1:-1;652:3172:97;;;;;;;;;;;-1:-1:-1;;;;;652:3172:97;;;;;;;;;;-1:-1:-1;;652:3172:97;7509:4:23;652:3172:97;;;966:10:27;;-1:-1:-1;;;;;652:3172:97;;7532:40:23;-1:-1:-1;;7532:40:23;7509:4;7586:11;:::o;7432:219::-;7628:12;;;-1:-1:-1;7628:12:23;:::o;7270:387::-;-1:-1:-1;;;;;652:3172:97;;-1:-1:-1;652:3172:97;;;;;;;;;821:37:96;;-1:-1:-1;;;;;;;;;;;2887:71:23;652:3172:97;;3901:31:23;652:3172:97;7270:387:23;-1:-1:-1;;;;;652:3172:97;;-1:-1:-1;652:3172:97;;;;;;;;;966:38:96;;-1:-1:-1;;;;;;;;;;;2887:71:23;652:3172:97;;3901:31:23;652:3172:97;7270:387:23;-1:-1:-1;;;;;652:3172:97;;-1:-1:-1;652:3172:97;;;;;;;;;1109:35:96;;-1:-1:-1;;;;;;;;;;;2887:71:23;652:3172:97;;3901:31:23;652:3172:97;7270:387:23;-1:-1:-1;652:3172:97;;;-1:-1:-1;;;;;;;;;;;652:3172:97;;;;;;;;-1:-1:-1;;;;;652:3172:97;;;;;;;;;;;;3901:31:23;652:3172:97;7892:388:23;-1:-1:-1;652:3172:97;;;-1:-1:-1;;;;;;;;;;;652:3172:97;;;;;;;;-1:-1:-1;;;;;652:3172:97;;;;;;;;;;;;;;;;-1:-1:-1;652:3172:97;;;;;;;;;;;-1:-1:-1;;;;;652:3172:97;;;;;;;;;;-1:-1:-1;;652:3172:97;;;966:10:27;;-1:-1:-1;;;;;652:3172:97;;8155:40:23;-1:-1:-1;;8155:40:23;652:3172:97;8209:11:23;:::o;652:3172:97:-;;;;;;;;;;;:::o;:::-;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;652:3172:97;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;652:3172:97;;;;;;;;;;;;;;;;-1:-1:-1;;;;;652:3172:97;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;652:3172:97;;;;;;;;;;-1:-1:-1;;;;;652:3172:97;;;;;;;;;;-1:-1:-1;;;;;652:3172:97;;;;;;;;;;-1:-1:-1;;;;;652:3172:97;;;;;;;;;;-1:-1:-1;;;;;652:3172:97;;;;;2658:162:24;-1:-1:-1;;;;;;;;;;;652:3172:97;-1:-1:-1;;;;;652:3172:97;966:10:27;2717:23:24;2713:101;;2658:162::o;2713:101::-;652:3172:97;;-1:-1:-1;;;2763:40:24;;966:10:27;2763:40:24;;;652:3172:97;;;2763:40:24;2557:104:57;;2641:5;;;;;;:13;2557:104;:::o;2641:13::-;;;2557:104;:::o;652:3172:97:-;;;;;;;:::o;3803:4116:57:-;;;652:3172:97;;;;-1:-1:-1;;3803:4116:57;;4383:131;;;;;;;;;;;;4595:10;;4591:368;;5065:20;;;;5061:88;;5435:300;;;652:3172:97;-1:-1:-1;652:3172:97;5954:31:57;;5999:371;;;6813:1;652:3172:97;;6794:1:57;652:3172:97;6793:21:57;652:3172:97;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5999:371:57;;;;-1:-1:-1;5999:371:57;;;5435:300;;;;;;652:3172:97;5435:300:57;;5999:371;6436:21;652:3172:97;3803:4116:57;:::o;5061:88::-;652:3172:97;;-1:-1:-1;;;5112:22:57;;;;;4591:368;4925:19;;;;;;;:::i;652:3172:97:-;7178:12:86;652:3172:97;;;;;;7178:12:86;-1:-1:-1;652:3172:97;-1:-1:-1;;;;;;;;;;;652:3172:97;;-1:-1:-1;652:3172:97;:::o;:::-;7178:12:86;652:3172:97;;;;;;7178:12:86;-1:-1:-1;652:3172:97;-1:-1:-1;;;;;;;;;;;652:3172:97;;-1:-1:-1;652:3172:97;:::o;:::-;;;;;;;;-1:-1:-1;652:3172:97;;-1:-1:-1;652:3172:97;;;-1:-1:-1;652:3172:97;:::o;:::-;6360:12:86;652:3172:97;-1:-1:-1;;;652:3172:97;;;;;;;;;6360:12:86;652:3172:97;;;;;;6360:12:86;-1:-1:-1;652:3172:97;-1:-1:-1;;;;;;;;;;;652:3172:97;;:::o;:::-;6360:12:86;652:3172:97;-1:-1:-1;;;652:3172:97;;;;;;;;;6360:12:86;652:3172:97;;;;;;6360:12:86;-1:-1:-1;652:3172:97;-1:-1:-1;;;;;;;;;;;652:3172:97;;:::o;:::-;;;;;-1:-1:-1;;;652:3172:97;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;12178:17:26;;;652:3172:97;;;;;;;;6246:584:86;;;;6360:12;652:3172:97;;;6360:24:86;;6356:75;;6246:584;6474:30;;;:::i;:::-;652:3172:97;;;;;;6578:12:86;;;:::i;:::-;6604:24;;;;6246:584;-1:-1:-1;6600:188:86;;;-1:-1:-1;;;652:3172:97;;;;;;;;;-1:-1:-1;652:3172:97;;;-1:-1:-1;652:3172:97;;;;;;6798:25:86;652:3172:97;6246:584:86:o;6600:188::-;8167:38:60;;-1:-1:-1;;;;;652:3172:97;;-1:-1:-1;8167:38:60;:::i;:::-;6753:24:86;;;;;:::i;:::-;6798:25;6246:584;:::o;6604:24::-;652:3172:97;;;;;;6614:14:86;;-1:-1:-1;6604:24:86;;;6356:75;-1:-1:-1;;;652:3172:97;;;;;;;;;;;;;;;;-1:-1:-1;652:3172:97;;;;-1:-1:-1;;;;;;;;;;;652:3172:97;;6356:75:86;;;6246:584;;;;6360:12;652:3172:97;;;6360:24:86;;6356:75;;6246:584;6474:30;;;:::i;:::-;652:3172:97;;;;;;6578:12:86;;;:::i;:::-;6604:24;;;;6246:584;-1:-1:-1;6600:188:86;;;-1:-1:-1;;;652:3172:97;;;;;;;;;-1:-1:-1;652:3172:97;;;-1:-1:-1;652:3172:97;;;;;;6798:25:86;652:3172:97;6246:584:86:o;6600:188::-;8167:38:60;;-1:-1:-1;;;;;652:3172:97;;-1:-1:-1;8167:38:60;:::i;:::-;6753:24:86;;;;;:::i;6604:::-;652:3172:97;;;;;;6614:14:86;;-1:-1:-1;6604:24:86;;;6356:75;-1:-1:-1;;;652:3172:97;;;;;;;;;;;;;;;;-1:-1:-1;652:3172:97;;;;-1:-1:-1;;;;;;;;;;;652:3172:97;;6356:75:86;;;6246:584;;;;;6360:12;;;652:3172:97;;;6360:24:86;;6356:75;;6246:584;6474:30;;;;;:::i;:::-;652:3172:97;;;;;;6578:12:86;;;;:::i;:::-;6604:24;;;;6246:584;-1:-1:-1;6600:188:86;;;-1:-1:-1;;;;;652:3172:97;;;;;;;6644:21:86;;;:29;:21;;:::i;6600:188::-;6753:24;;652:3172:97;;8167:38:60;;-1:-1:-1;;;;;652:3172:97;;;;;8167:38:60;:::i;:::-;6753:24:86;;;:::i;6604:::-;652:3172:97;;;;;;6614:14:86;;-1:-1:-1;6604:24:86;;;6356:75;-1:-1:-1;;;652:3172:97;;;;;;6360:12:86;652:3172:97;;;;;;;:::i;:::-;;;12178:17:26;;;652:3172:97;;;;;;;;6356:75:86;;;1303:160:45;652:3172:97;;-1:-1:-1;;;1412:43:45;;;;-1:-1:-1;;;;;652:3172:97;;;1412:43:45;;;652:3172:97;;;;;;;;;1412:43:45;;;652:3172:97;;;;-1:-1:-1;;;;;652:3172:97;;;;;;;;1412:43:45;652:3172:97;;;1412:43:45;:::i;12922:460:95:-;;13024:14;;:::i;:::-;13015:23;;;13011:75;;-1:-1:-1;652:3172:97;;;13100:20:95;652:3172:97;;;;;;;;13128:10:95;652:3172:97;;;;;;;;;;13096:93:95;;13208:32;13128:10;13208:32;;:::i;:::-;13255:11;;;13251:68;;-1:-1:-1;652:3172:97;;;13100:20:95;652:3172:97;;;;;;;;13128:10:95;652:3172:97;;;;;;;;;-1:-1:-1;;652:3172:97;13371:4:95;652:3172:97;;;12922:460:95:o;13251:68::-;652:3172:97;;-1:-1:-1;;;13289:19:95;;;;;13096:93;652:3172:97;;-1:-1:-1;;;13162:16:95;;;;;13011:75;652:3172:97;;-1:-1:-1;;;13061:14:95;;;;;10580:184:86;4803:13:96;652:3172:97;10303:8:60;;;:63;-1:-1:-1;10303:63:60;-1:-1:-1;;;;;652:3172:97;;10726:7:86;652:3172:97;;10736:12:86;652:3172:97;;;;;;10736:12:86;-1:-1:-1;652:3172:97;-1:-1:-1;;;;;;;;;;;652:3172:97;;10580:184:86;:::o;10726:31::-;;-1:-1:-1;10580:184:86;:::o;10303:63:60:-;12178:17:26;;;652:3172:97;;;;;4803:13:96;-1:-1:-1;14249:109:60;;;652:3172:97;;;10303:63:60;;10580:184:86;5173:12:96;652:3172:97;10303:8:60;;;:63;-1:-1:-1;10303:63:60;-1:-1:-1;;;;;652:3172:97;;10726:7:86;652:3172:97;;10736:12:86;652:3172:97;;;;;;10736:12:86;-1:-1:-1;652:3172:97;-1:-1:-1;;;;;;;;;;;652:3172:97;;10580:184:86;:::o;10303:63:60:-;12178:17:26;;;652:3172:97;;;;;5173:12:96;-1:-1:-1;14249:109:60;;;652:3172:97;;;10303:63:60;;10580:184:86;652:3172:97;;10303:8:60;;;:63;-1:-1:-1;10303:63:60;-1:-1:-1;;;;;652:3172:97;;10726:7:86;652:3172:97;;10736:12:86;:17;:12;;:17;:::i;:::-;652:3172:97;;;;;;10580:184:86;:::o;10303:63:60:-;12178:17:26;;652:3172:97;;;;;;;;14249:109:60;-1:-1:-1;14249:109:60;;-1:-1:-1;14249:109:60;;;652:3172:97;;;10303:63:60;;11224:487:26;;-1:-1:-1;;;;;652:3172:97;;;11389:19:26;11385:89;;652:3172:97;;11487:21:26;11483:90;;11582:20;:29;:20;;:::i;:29::-;652:3172:97;11224:487:26:o;1662:280:87:-;;;1884:1;652:3172:97;;;;;;;1884:1:87;652:3172:97;;;;;;;8188:25:57;;;:::i;6999:207:86:-;4622:13:96;652:3172:97;9594:15:60;-1:-1:-1;9619:18:60;9652:7;9658:1;9652:7;;9648:234;;6999:207:86;9906:53:60;;;;:::i;:::-;9977:8;;;:63;-1:-1:-1;9977:63:60;-1:-1:-1;;;;;652:3172:97;;7168:7:86;652:3172:97;;7178:17:86;652:3172:97;7178:17:86;;:::i;9977:63:60:-;9992:41;10025:7;9992:48;10025:7;;:::i;:::-;4622:13:96;14249:109:60;;-1:-1:-1;;;;;;;;;;;14249:109:60;14099:265;;9992:41;652:3172:97;;;;;9992:48:60;9977:63;;9648:234;9695:14;;;;;:::i;:::-;652:3172:97;;;;;;;9906:53:60;14249:109;4622:13:96;-1:-1:-1;14249:109:60;652:3172:97;14249:109:60;;-1:-1:-1;;;;;;;;;;;14249:109:60;652:3172:97;;;;;9727:48:60;9723:149;652:3172:97;;;9795:10:60;9723:149;9648:234;;9723:149;9850:7;;;;;;:::i;:::-;9723:149;9648:234;;6999:207:86;4994:12:96;652:3172:97;9594:15:60;-1:-1:-1;9619:18:60;9652:7;9658:1;9652:7;;9648:234;;6999:207:86;9906:53:60;;;;:::i;:::-;9977:8;;;:63;-1:-1:-1;9977:63:60;-1:-1:-1;;;;;652:3172:97;;7168:7:86;652:3172:97;;7178:17:86;652:3172:97;7178:17:86;;:::i;9977:63:60:-;9992:41;10025:7;9992:48;10025:7;;:::i;:::-;4994:12:96;14249:109:60;;-1:-1:-1;;;;;;;;;;;14249:109:60;14099:265;;9992:48;9977:63;;9648:234;9695:14;;;;;:::i;:::-;652:3172:97;;;;;;;9906:53:60;14249:109;4994:12:96;-1:-1:-1;14249:109:60;652:3172:97;14249:109:60;;-1:-1:-1;;;;;;;;;;;14249:109:60;652:3172:97;;;;;9727:48:60;9723:149;652:3172:97;;;9795:10:60;9723:149;9648:234;;9723:149;9850:7;;;;;;:::i;:::-;9723:149;9648:234;;6999:207:86;;652:3172:97;;9594:15:60;-1:-1:-1;9619:18:60;9652:7;9658:1;9652:7;;9648:234;;6999:207:86;9906:53:60;;;;;:::i;:::-;9977:8;;;:63;-1:-1:-1;9977:63:60;;-1:-1:-1;;;;;652:3172:97;;7168:7:86;652:3172:97;;;7178:12:86;;:17;:12;;:17;:::i;9977:63:60:-;9992:41;10025:7;9992:48;10025:7;;:::i;:::-;9992:41;14249:109;;;;;;14099:265;;9992:48;9977:63;;;9648:234;9695:14;;;;;:::i;:::-;652:3172:97;;;;;;;9906:53:60;14249:109;;-1:-1:-1;14249:109:60;652:3172:97;14249:109:60;;;-1:-1:-1;14249:109:60;;652:3172:97;;;;;9727:48:60;9723:149;652:3172:97;;;9795:10:60;9723:149;9648:234;;9723:149;9850:7;;;;;;:::i;:::-;9723:149;9648:234;;652:3172:97;;;;;;;:::i;:::-;-1:-1:-1;652:3172:97;;;;;;;:::o;11486:272:86:-;652:3172:97;;:::i;:::-;;;;:::i;:::-;;4622:13:96;652:3172:97;;;;;;;;4622:13:96;-1:-1:-1;652:3172:97;-1:-1:-1;;;;;;;;;;;652:3172:97;;:::i;:::-;;;;;;;;;;;;11731:17:86;;652:3172:97;;11718:12:86;652:3172:97;;;;;;11718:12:86;-1:-1:-1;652:3172:97;-1:-1:-1;;;;;;;;;;;652:3172:97;;;;;;;;:::i;:::-;;;;11672:79:86;;652:3172:97;11486:272:86;:::o;:::-;652:3172:97;;:::i;:::-;;;;:::i;:::-;;4994:12:96;652:3172:97;;;;;;;;4994:12:96;-1:-1:-1;652:3172:97;-1:-1:-1;;;;;;;;;;;652:3172:97;;:::i;:::-;;;;;;;;;;;;11731:17:86;;652:3172:97;;11718:12:86;652:3172:97;;;;;;11718:12:86;-1:-1:-1;652:3172:97;-1:-1:-1;;;;;;;;;;;652:3172:97;;;;;;;;:::i;11486:272:86:-;;652:3172:97;11308:22:60;11718:31:86;11486:272;652:3172:97;;:::i;:::-;;;;:::i;:::-;;11308:22:60;;:::i;:::-;652:3172:97;;:::i;:::-;;11718:12:86;652:3172:97;;;;;11731:17:86;652:3172:97;;;;;11731:17:86;;652:3172:97;;11718:12:86;;:31;:::i;:::-;652:3172:97;;;;;;;;;:::i;:::-;;;;;;11731:17:86;11672:79;;652:3172:97;11486:272:86;:::o;1702:188:45:-;652:3172:97;;-1:-1:-1;;;1829:53:45;;;;-1:-1:-1;;;;;652:3172:97;;;1829:53:45;;;652:3172:97;;;;;;;;;;;;;;;;;1829:53:45;;;652:3172:97;;;;;;;-1:-1:-1;;;;;652:3172:97;;;;;1829:53:45;652:3172:97;;;1829:53:45;:::i;7084:141:25:-;652:3172:97;-1:-1:-1;;;;;;;;;;;652:3172:97;;;;7150:18:25;7146:73;;7084:141::o;7146:73::-;652:3172:97;;-1:-1:-1;;;7191:17:25;;;;;652:3172:97;;;;;;;;;;;;:::i;13388:2406:95:-;13510:30;13388:2406;13510:30;652:3172:97;;;13510:30:95;;;;;;:::i;:::-;652:3172:97;;-1:-1:-1;;;;;652:3172:97;;;;13555:31:95;13551:88;;13653:20;;;;652:3172:97;;;;;;;;;;13653:25:95;13649:85;;13748:29;;;652:3172:97;;13748:29:95;;652:3172:97;13748:43:95;;-1:-1:-1;;;;;652:3172:97;;;13748:43:95;;13744:943;;13388:2406;652:3172:97;;;15647:32:95;652:3172:97;14817:36:95;652:3172:97;;;14697:30:95;652:3172:97;;;;;;;;;;;;13555:17:95;652:3172:97;;-1:-1:-1;;;;;;652:3172:97;;;;;;-1:-1:-1;;;;;652:3172:97;;;;;;;;14697:30:95;13510;14747:13;;652:3172:97;;;;-1:-1:-1;;;;;;652:3172:97;-1:-1:-1;;;;;652:3172:97;;;;;;;;;14771:36:95;819:34:62;837:15;819:34;:::i;:::-;14738:22:95;652:3172:97;;-1:-1:-1;;;;652:3172:97;;;;;;-1:-1:-1;;;652:3172:97;;;;;;;;;14738:22:95;652:3172:97;;-1:-1:-1;;;;;652:3172:97;;;;;;-1:-1:-1;;;;;;652:3172:97;;;;;;;;14817:36:95;14864:42;652:3172:97;14883:23:95;;;652:3172:97;;;;;;;;;13555:17:95;652:3172:97;;;;;;;13555:17:95;652:3172:97;;14864:42:95;14917:38;652:3172:97;14934:21:95;;;652:3172:97;;;;;;;13555:17:95;652:3172:97;;;;;;;;;;;;13555:17:95;652:3172:97;;14917:38:95;14965:34;14980:19;;;652:3172:97;14965:34:95;652:3172:97;;14965:34:95;652:3172:97;-1:-1:-1;;;;;652:3172:97;;;;;;;15010:135:95;;13388:2406;-1:-1:-1;15158:36:95;;;652:3172:97;-1:-1:-1;;;;;652:3172:97;;;;15154:157:95;;13388:2406;-1:-1:-1;15324:35:95;;;652:3172:97;-1:-1:-1;;;;;652:3172:97;;;;15320:153:95;;13388:2406;-1:-1:-1;15486:34:95;;;652:3172:97;-1:-1:-1;;;;;652:3172:97;;;;15482:152:95;;13388:2406;-1:-1:-1;15647:32:95;652:3172:97;-1:-1:-1;;;;;652:3172:97;;;;;;;15643:145:95;;13388:2406;:::o;15643:145::-;15709:68;;;:::i;:::-;;13388:2406::o;15482:152::-;15550:73;;;:::i;:::-;;15482:152;;;15320:153;15389:73;;;:::i;:::-;;15320:153;;;15154:157;15224:76;;;:::i;:::-;;15154:157;;;15010:135;15073:61;;;:::i;:::-;;15010:135;;;13744:943;13811:36;;;652:3172:97;13811:50:95;;-1:-1:-1;;;;;652:3172:97;;;13811:50:95;;13807:405;;13744:943;14230:34;;;652:3172:97;14230:48:95;;-1:-1:-1;;;;;652:3172:97;;;14230:48:95;13744:943;14226:451;14302:21;;;652:3172:97;;14302:21:95;;14351:19;;;652:3172:97;14351:24:95;:74;;;14298:365;14347:150;;14298:365;;652:3172:97;15647:32:95;14298:365;14817:36;652:3172:97;;14298:365:95;;14226:451;;;;;;;13744:943;;14347:150;652:3172:97;-1:-1:-1;;;14460:14:95;;;;;14351:74;-1:-1:-1;14379:32:95;;;652:3172:97;14379:46:95;;-1:-1:-1;;;;;652:3172:97;;;14379:46:95;;14351:74;;14298:365;14525:19;;;652:3172:97;14525:24:95;;;:74;;;14298:365;14521:142;;14298:365;;652:3172:97;15647:32:95;14298:365;14817:36;652:3172:97;;14298:365:95;;;14525:74;-1:-1:-1;14553:32:95;;;652:3172:97;14553:46:95;;-1:-1:-1;;;;;652:3172:97;;;14553:46:95;;;14525:74;;13807:405;13885:23;;;652:3172:97;;13885:23:95;;13936:35;;;652:3172:97;13936:49:95;;-1:-1:-1;;;;;652:3172:97;;;13936:49:95;13807:405;13932:125;652:3172:97;-1:-1:-1;;;14020:14:95;;;;;13881:317;14085:35;;;652:3172:97;14085:49:95;;-1:-1:-1;;;;;652:3172:97;;;14085:49:95;14081:117;13807:405;14081:117;652:3172:97;-1:-1:-1;;;14165:14:95;;;;;13649:85;652:3172:97;;-1:-1:-1;;;13701:22:95;;;;;13551:88;652:3172:97;;-1:-1:-1;;;13609:19:95;;;;;6893:76:25;;;;;:::i;:::-;;;:::i;:::-;652:3172:97;;-1:-1:-1;;;;;652:3172:97;;;;-1:-1:-1;;;;;;;;;;;652:3172:97;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;12178:17:26;;;652:3172:97;;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;652:3172:97;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;652:3172:97;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;12178:17:26;;652:3172:97;;2895:7:26;652:3172:97;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::o;10552:388:60:-;5173:12:96;652:3172:97;10728:8:60;;;10752:20;10690:17;10752:20;10690:17;10752:20;10690:17;10752:20;:::o;10724:210::-;12178:17:26;;;652:3172:97;;;;;14249:109:60;652:3172:97;14249:109:60;5173:12:96;10690:17:60;14249:109;;652:3172:97;:::i;:::-;;;;;;;14249:109:60;652:3172:97;;;;;10911:11:60;;652:3172:97;;10886:37:60;10870:1;10886:37;;;:::o;10552:388::-;4803:13:96;652:3172:97;10728:8:60;;;10752:20;10690:17;10752:20;10690:17;10752:20;10690:17;10752:20;:::o;10724:210::-;12178:17:26;;;652:3172:97;;;;;14249:109:60;652:3172:97;14249:109:60;4803:13:96;10690:17:60;14249:109;;652:3172:97;:::i;10552:388:60:-;652:3172:97;;10728:8:60;;;10752:20;;10690:17;10752:20;10690:17;10752:20;10690:17;10752:20;:::o;10724:210::-;12178:17:26;;652:3172:97;;;;;;;;;14249:109:60;10690:17;14249:109;;10690:17;14249:109;;;652:3172:97;:::i;4059:629:45:-;2847:1:46;4059:629:45;3510:55:46;4059:629:45;652:3172:97;;;;;;3462:31:46;;;;;;;;;;;;:::i;:::-;3510:55;;;:::i;:::-;652:3172:97;;4551:22:45;;;;:57;;;;4059:629;4547:135;;;;4059:629;:::o;4547:135::-;652:3172:97;;;;4631:40:45;;;;;;;;;652:3172:97;4631:40:45;4551:57;4578:30;;;3462:31:46;4578:30:45;;;;;;;;:::i;:::-;4577:31;4551:57;;;;1258:280:87;;;652:3172:97;;;;;;;;;;;;;;;;8188:25:57;;;;;:::i;:::-;8257;;;;;;8223:101;;1258:280:87;:::o;8223:101:57:-;652:3172:97;;;;;;;;1258:280:87;:::o;652:3172:97:-;;;;;;;;:::o;:::-;-1:-1:-1;;;;;;;;;;;;652:3172:97;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;-1:-1:-1;652:3172:97;;;;;;;;;-1:-1:-1;652:3172:97;;;;;;;;;;;;:::o;:::-;-1:-1:-1;;;;;;;;;;;;652:3172:97;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;-1:-1:-1;652:3172:97;;;;;;;;;-1:-1:-1;652:3172:97;;;;;;;;-1:-1:-1;;;;;652:3172:97;;;;-1:-1:-1;;;;;;;;;;;652:3172:97;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;12178:17:26;;;652:3172:97;;;;;;;;;;;;:::o;:::-;;;;;;;;-1:-1:-1;;;;;;;;;;;652:3172:97;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;12178:17:26;;652:3172:97;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5173:12:96;652:3172:97;;-1:-1:-1;;;652:3172:97;;;;;;;;;5173:12:96;652:3172:97;;;;;;5173:12:96;-1:-1:-1;652:3172:97;;;;;;;;;;-1:-1:-1;;652:3172:97;;;;;;;-1:-1:-1;;;;;;;;;;;652:3172:97;;;;:::o;:::-;4803:13:96;652:3172:97;;-1:-1:-1;;;652:3172:97;;;;;;;;;4803:13:96;652:3172:97;;;;;;4803:13:96;-1:-1:-1;652:3172:97;;;;;;;;;;-1:-1:-1;;652:3172:97;;;;;;;-1:-1:-1;;;;;;;;;;;652:3172:97;;;;:::o;:::-;;;-1:-1:-1;;;652:3172:97;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;652:3172:97;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;11513:870:60;5173:12:96;652:3172:97;11513:870:60;;;652:3172:97;11672:7:60;;;;652:3172:97;11775:28:60;11795:7;;;:::i;11775:28::-;652:3172:97;:::i;:::-;;;;;;;;;;-1:-1:-1;;11873:91:60;;652:3172:97;12233:11:60;652:3172:97;;;12027:16:60;652:3172:97;;;;;;;12027:16:60;;;;12083:7;12063:28;12083:7;12063:43;12083:7;;:::i;12063:28::-;652:3172:97;;;;;;;;;;;;;;;;;12063:43:60;12233:11;652:3172:97;-1:-1:-1;;;;;652:3172:97;;;12023:189:60;652:3172:97;;12145:52:60;652:3172:97;;12155:41:60;652:3172:97;;:::i;:::-;;;;;;;;12155:41:60;-1:-1:-1;;;;;652:3172:97;;12155:41:60;;;652:3172:97;12145:52:60;:::i;:::-;12023:189;;11873:91;652:3172:97;;-1:-1:-1;;;11919:30:60;;;;;11668:709;12283:52;652:3172:97;;12293:41:60;652:3172:97;;:::i;12293:41:60:-;-1:-1:-1;;;;;652:3172:97;;12293:41:60;;;652:3172:97;12145:52:60;:::i;12283:::-;11678:1;12349:17;;:::o;11513:870::-;4803:13:96;652:3172:97;11513:870:60;;;652:3172:97;11672:7:60;;;;652:3172:97;11775:28:60;11795:7;;;:::i;652:3172:97:-;;;;;;;;;;-1:-1:-1;;11873:91:60;;652:3172:97;12233:11:60;652:3172:97;;;12027:16:60;652:3172:97;;;;;;;12027:16:60;;;;12083:7;12063:28;12083:7;12063:43;12083:7;;:::i;12023:189::-;652:3172:97;;12145:52:60;652:3172:97;;12155:41:60;652:3172:97;;:::i;12155:41:60:-;-1:-1:-1;;;;;652:3172:97;;12155:41:60;;;652:3172:97;12145:52:60;:::i;11668:709::-;12283:52;652:3172:97;;12293:41:60;652:3172:97;;:::i;12293:41:60:-;-1:-1:-1;;;;;652:3172:97;;12293:41:60;;;652:3172:97;12145:52:60;:::i;11513:870::-;652:3172:97;;11513:870:60;;;652:3172:97;11513:870:60;11672:7;;;;652:3172:97;11775:28:60;11795:7;;;:::i;652:3172:97:-;;;;;;;;;;;;;;;;11877:15:60;-1:-1:-1;11873:91:60;;652:3172:97;;12233:11:60;652:3172:97;;;12027:16:60;652:3172:97;;;;;;;12027:16:60;;;;12083:7;12063:43;12083:7;;12063:28;12083:7;;:::i;:::-;12063:28;14249:109;;;;;;14099:265;;12023:189;652:3172:97;;;12145:52:60;652:3172:97;12155:41:60;652:3172:97;;:::i;:::-;;;;;;;;12155:41:60;-1:-1:-1;;;;;652:3172:97;;12155:41:60;;;652:3172:97;12145:52:60;:::i;11668:709::-;12283:52;652:3172:97;;12293:41:60;652:3172:97;;:::i;12293:41:60:-;-1:-1:-1;;;;;652:3172:97;;12293:41:60;;;652:3172:97;12145:52:60;:::i;8587:1642:57:-;8658:6;;8654:45;;9401:7;10201:10;10142:26;10093;10044;9995;9946;9897;9848;652:3172:97;10189:23:57;9401:7;8663:1;652:3172:97;;;;10826:16:57;10822:99;;8587:1642;652:3172:97;;;;10938:15:57;10934:96;;8587:1642;652:3172:97;;;;11047:15:57;11043:96;;8587:1642;652:3172:97;;;;11156:15:57;11152:96;;8587:1642;652:3172:97;;;;11265:14:57;11261:93;;8587:1642;652:3172:97;;;;11371:14:57;11367:93;;8587:1642;652:3172:97;;;;11477:14:57;11473:93;;8587:1642;652:3172:97;;;11579:64:57;;8587:1642;652:3172:97;;;9858:10:57;;;;:::i;:::-;652:3172:97;;;;;9848:26:57;9907:10;;;;:::i;9897:26::-;9956:10;;;;:::i;9946:26::-;10005:10;;;;:::i;9995:26::-;10054:10;;;;:::i;10044:26::-;10103:10;;;;:::i;10093:26::-;10152:10;;;;:::i;10142:26::-;10201:10;;;:::i;:::-;10189:23;;:::i;11579:64::-;652:3172:97;;11579:64:57;;11473:93;652:3172:97;11511:11:57;;652:3172:97;;11473:93:57;;;;11367;652:3172:97;11405:11:57;;652:3172:97;;11367:93:57;;;;11261;652:3172:97;11299:11:57;;652:3172:97;;11261:93:57;;;;11152:96;652:3172:97;11191:12:57;;652:3172:97;;11152:96:57;;;;11043;652:3172:97;11082:12:57;;652:3172:97;;11043:96:57;;;;10934;652:3172:97;10973:12:57;;652:3172:97;;10934:96:57;;;;10822:99;10862:13;;;652:3172:97;10822:99:57;;;;12736:433:60;;12919:10;;;;;;13151:11;;12736:433;:::o;12912:230::-;2900:5:57;;;;;652:3172:97;;2910:5:57;;;652:3172:97;;;;;;;;;4622:13:96;-1:-1:-1;14249:109:60;652:3172:97;14249:109:60;;-1:-1:-1;;;;;;;;;;;14249:109:60;652:3172:97;;;;;-1:-1:-1;12996:136:60;652:3172:97;;;13055:10:60;;12996:136;;12912:230;;;12996:136;652:3172:97;;;;;;;;;;;12996:136:60;;;12736:433;;12919:10;;;;;;13151:11;;12736:433;:::o;12912:230::-;2900:5:57;;;;;652:3172:97;;2910:5:57;;;652:3172:97;;;;;;;;;4994:12:96;-1:-1:-1;14249:109:60;652:3172:97;14249:109:60;;-1:-1:-1;;;;;;;;;;;14249:109:60;652:3172:97;;;;;-1:-1:-1;12996:136:60;652:3172:97;;;13055:10:60;;12996:136;;12912:230;;;12996:136;652:3172:97;;;;;;;;;;;12996:136:60;;;12736:433;;;12919:10;;;;;;13151:11;;;12736:433;:::o;12912:230::-;2900:5:57;;;;;;652:3172:97;;2910:5:57;;;652:3172:97;;;;;;;;;14249:109:60;-1:-1:-1;14249:109:60;652:3172:97;14249:109:60;;;-1:-1:-1;14249:109:60;;652:3172:97;;;;;-1:-1:-1;12996:136:60;652:3172:97;;;13055:10:60;;12996:136;;12912:230;;;;12996:136;652:3172:97;;;;;;;;;;;12996:136:60;;;4625:582:46;;4797:8;;-1:-1:-1;652:3172:97;;5874:21:46;:17;;6046:142;;;;;;5870:383;652:3172:97;;-1:-1:-1;;;6225:17:46;;;;;4793:408;652:3172:97;;5045:22:46;:49;;;4793:408;5041:119;;5173:17;;:::o;5041:119::-;652:3172:97;;-1:-1:-1;;;5121:24:46;;-1:-1:-1;;;;;652:3172:97;;;5121:24:46;;;652:3172:97;;;5121:24:46;5045:49;5071:18;;;:23;5045:49;","linkReferences":{},"immutableReferences":{"58075":[{"start":2715,"length":32},{"start":3267,"length":32}],"68715":[{"start":5506,"length":32},{"start":6953,"length":32}],"68718":[{"start":7314,"length":32},{"start":8687,"length":32}]}},"methodIdentifiers":{"DEFAULT_ADMIN_ROLE()":"a217fddf","DELEGATOR_FACTORY()":"6da3e06d","DEPOSITOR_WHITELIST_ROLE()":"1b66c9e1","DEPOSIT_LIMIT_SET_ROLE()":"a21a1df9","DEPOSIT_WHITELIST_SET_ROLE()":"db388715","FACTORY()":"2dd31000","IS_DEPOSIT_LIMIT_SET_ROLE()":"1415519b","SLASHER_FACTORY()":"87df0788","activeBalanceOf(address)":"59f769a9","activeBalanceOfAt(address,uint48,bytes)":"efb559d6","activeShares()":"bfefcd7b","activeSharesAt(uint48,bytes)":"50f22068","activeSharesOf(address)":"9d66201b","activeSharesOfAt(address,uint48,bytes)":"2d73c69c","activeStake()":"bd49c35f","activeStakeAt(uint48,bytes)":"810da75d","allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","burner()":"27810b6e","claim(address,uint256)":"aad3ec96","claimBatch(address,uint256[])":"7c04c80a","collateral()":"d8dfeb45","currentEpoch()":"76671808","currentEpochStart()":"61a8c8c4","decimals()":"313ce567","delegator()":"ce9b7930","deposit(address,uint256)":"47e7ef24","depositLimit()":"ecf70858","depositWhitelist()":"48d3b775","epochAt(uint48)":"7953b33b","epochDuration()":"4ff0876a","epochDurationInit()":"46361671","getRoleAdmin(bytes32)":"248a9ca3","grantRole(bytes32,address)":"2f2ff15d","hasRole(bytes32,address)":"91d14854","initialize(uint64,address,bytes)":"57ec83cc","isDelegatorInitialized()":"50861adc","isDepositLimit()":"a1b12202","isDepositorWhitelisted(address)":"794b15b7","isInitialized()":"392e53cd","isSlasherInitialized()":"6ec1e3f8","isWithdrawalsClaimed(uint256,address)":"a5d03223","migrate(uint64,bytes)":"2abe3048","name()":"06fdde03","nextEpochStart()":"73790ab3","onSlash(uint256,uint48)":"7278e31c","owner()":"8da5cb5b","previousEpochStart()":"281f5752","redeem(address,uint256)":"1e9a6950","renounceOwnership()":"715018a6","renounceRole(bytes32,address)":"36568abe","revokeRole(bytes32,address)":"d547741f","setDelegator(address)":"83cd9cc3","setDepositLimit(uint256)":"bdc8144b","setDepositWhitelist(bool)":"4105a7dd","setDepositorWhitelistStatus(address,bool)":"a2861466","setIsDepositLimit(bool)":"5346e34f","setSlasher(address)":"aabc2496","slashableBalanceOf(address)":"c31e8dd7","slasher()":"b1344271","staticDelegateCall(address,bytes)":"9f86fd85","supportsInterface(bytes4)":"01ffc9a7","symbol()":"95d89b41","totalStake()":"8b0e9f3f","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd","transferOwnership(address)":"f2fde38b","version()":"54fd4d50","withdraw(address,uint256)":"f3fef3a3","withdrawalShares(uint256)":"afba70ad","withdrawalSharesOf(uint256,address)":"a3b54172","withdrawals(uint256)":"5cc07076","withdrawalsOf(uint256,address)":"f5e7ee0f"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegatorFactory\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"slasherFactory\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"vaultFactory\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"AccessControlBadConfirmation\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"neededRole\",\"type\":\"bytes32\"}],\"name\":\"AccessControlUnauthorizedAccount\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"AddressEmptyCode\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"AddressInsufficientBalance\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AlreadyClaimed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AlreadyInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AlreadySet\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CheckpointUnorderedInsertion\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"DelegatorAlreadyInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"DepositLimitReached\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"allowance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientAllowance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSpender\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedInnerCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientClaim\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientDeposit\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientRedemption\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientWithdrawal\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidAccount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidCaptureEpoch\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidClaimer\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidCollateral\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidDelegator\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidEpoch\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidEpochDuration\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidLengthEpochs\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidOnBehalfOf\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidRecipient\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidSlasher\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidTimestamp\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MathOverflowedMulDiv\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MissingRoles\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NoPreviousEpoch\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotDelegator\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotFactory\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotSlasher\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotWhitelistedDepositor\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ReentrancyGuardReentrantCall\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"bits\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"SafeCastOverflowedUintDowncast\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"SafeERC20FailedOperation\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SlasherAlreadyInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TooMuchRedeem\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TooMuchWithdraw\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"claimer\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"epoch\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Claim\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"claimer\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"epochs\",\"type\":\"uint256[]\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"ClaimBatch\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"depositor\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"onBehalfOf\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"}],\"name\":\"Deposit\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint48\",\"name\":\"captureTimestamp\",\"type\":\"uint48\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"slashedAmount\",\"type\":\"uint256\"}],\"name\":\"OnSlash\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"previousAdminRole\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"newAdminRole\",\"type\":\"bytes32\"}],\"name\":\"RoleAdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleRevoked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"}],\"name\":\"SetDelegator\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"limit\",\"type\":\"uint256\"}],\"name\":\"SetDepositLimit\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"status\",\"type\":\"bool\"}],\"name\":\"SetDepositWhitelist\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"status\",\"type\":\"bool\"}],\"name\":\"SetDepositorWhitelistStatus\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"status\",\"type\":\"bool\"}],\"name\":\"SetIsDepositLimit\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"slasher\",\"type\":\"address\"}],\"name\":\"SetSlasher\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"withdrawer\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"claimer\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"burnedShares\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"mintedShares\",\"type\":\"uint256\"}],\"name\":\"Withdraw\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DEFAULT_ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"DELEGATOR_FACTORY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"DEPOSITOR_WHITELIST_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"DEPOSIT_LIMIT_SET_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"DEPOSIT_WHITELIST_SET_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"FACTORY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"IS_DEPOSIT_LIMIT_SET_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"SLASHER_FACTORY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"activeBalanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hints\",\"type\":\"bytes\"}],\"name\":\"activeBalanceOfAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"activeShares\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hint\",\"type\":\"bytes\"}],\"name\":\"activeSharesAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"activeSharesOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hint\",\"type\":\"bytes\"}],\"name\":\"activeSharesOfAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"activeStake\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hint\",\"type\":\"bytes\"}],\"name\":\"activeStakeAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"burner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"epoch\",\"type\":\"uint256\"}],\"name\":\"claim\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256[]\",\"name\":\"epochs\",\"type\":\"uint256[]\"}],\"name\":\"claimBatch\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"collateral\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"currentEpoch\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"currentEpochStart\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"delegator\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"onBehalfOf\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"deposit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"depositedAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"mintedShares\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"depositLimit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"depositWhitelist\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"}],\"name\":\"epochAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"epochDuration\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"epochDurationInit\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleAdmin\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"grantRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"initialVersion\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"owner_\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isDelegatorInitialized\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isDepositLimit\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"isDepositorWhitelisted\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"value\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isInitialized\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isSlasherInitialized\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"epoch\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"isWithdrawalsClaimed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"value\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"newVersion\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"migrate\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"nextEpochStart\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint48\",\"name\":\"captureTimestamp\",\"type\":\"uint48\"}],\"name\":\"onSlash\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"slashedAmount\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"previousEpochStart\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"claimer\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"}],\"name\":\"redeem\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"withdrawnAssets\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"mintedShares\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"callerConfirmation\",\"type\":\"address\"}],\"name\":\"renounceRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegator_\",\"type\":\"address\"}],\"name\":\"setDelegator\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"limit\",\"type\":\"uint256\"}],\"name\":\"setDepositLimit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"status\",\"type\":\"bool\"}],\"name\":\"setDepositWhitelist\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"status\",\"type\":\"bool\"}],\"name\":\"setDepositorWhitelistStatus\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"status\",\"type\":\"bool\"}],\"name\":\"setIsDepositLimit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"slasher_\",\"type\":\"address\"}],\"name\":\"setSlasher\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"slashableBalanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"slasher\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"staticDelegateCall\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalStake\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"version\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"claimer\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"withdraw\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"burnedShares\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"mintedShares\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"epoch\",\"type\":\"uint256\"}],\"name\":\"withdrawalShares\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"epoch\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"withdrawalSharesOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"epoch\",\"type\":\"uint256\"}],\"name\":\"withdrawals\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"epoch\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"withdrawalsOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"AccessControlBadConfirmation()\":[{\"details\":\"The caller of a function is not the expected one. NOTE: Don't confuse with {AccessControlUnauthorizedAccount}.\"}],\"AccessControlUnauthorizedAccount(address,bytes32)\":[{\"details\":\"The `account` is missing a role.\"}],\"AddressEmptyCode(address)\":[{\"details\":\"There's no code at `target` (it is not a contract).\"}],\"AddressInsufficientBalance(address)\":[{\"details\":\"The ETH balance of the account is not enough to perform the operation.\"}],\"CheckpointUnorderedInsertion()\":[{\"details\":\"A value was attempted to be inserted on a past checkpoint.\"}],\"ERC20InsufficientAllowance(address,uint256,uint256)\":[{\"details\":\"Indicates a failure with the `spender`\\u2019s `allowance`. Used in transfers.\",\"params\":{\"allowance\":\"Amount of tokens a `spender` is allowed to operate with.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"spender\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC20InsufficientBalance(address,uint256,uint256)\":[{\"details\":\"Indicates an error related to the current `balance` of a `sender`. Used in transfers.\",\"params\":{\"balance\":\"Current balance for the interacting account.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC20InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC20InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC20InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC20InvalidSpender(address)\":[{\"details\":\"Indicates a failure with the `spender` to be approved. Used in approvals.\",\"params\":{\"spender\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"FailedInnerCall()\":[{\"details\":\"A call to an address target failed. The target may have reverted.\"}],\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"MathOverflowedMulDiv()\":[{\"details\":\"Muldiv operation overflow.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}],\"ReentrancyGuardReentrantCall()\":[{\"details\":\"Unauthorized reentrant call.\"}],\"SafeCastOverflowedUintDowncast(uint8,uint256)\":[{\"details\":\"Value doesn't fit in an uint of `bits` size.\"}],\"SafeERC20FailedOperation(address)\":[{\"details\":\"An operation with an ERC20 token failed.\"}]},\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when the allowance of a `spender` for an `owner` is set by a call to {approve}. `value` is the new allowance.\"},\"Claim(address,address,uint256,uint256)\":{\"params\":{\"amount\":\"amount of the collateral claimed\",\"claimer\":\"account that claimed\",\"epoch\":\"epoch the collateral was claimed for\",\"recipient\":\"account that received the collateral\"}},\"ClaimBatch(address,address,uint256[],uint256)\":{\"params\":{\"amount\":\"amount of the collateral claimed\",\"claimer\":\"account that claimed\",\"epochs\":\"epochs the collateral was claimed for\",\"recipient\":\"account that received the collateral\"}},\"Deposit(address,address,uint256,uint256)\":{\"params\":{\"amount\":\"amount of the collateral deposited\",\"depositor\":\"account that made the deposit\",\"onBehalfOf\":\"account the deposit was made on behalf of\",\"shares\":\"amount of the active shares minted\"}},\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"OnSlash(uint256,uint48,uint256)\":{\"params\":{\"amount\":\"amount of the collateral to slash\",\"captureTimestamp\":\"time point when the stake was captured\",\"slashedAmount\":\"real amount of the collateral slashed\"}},\"RoleAdminChanged(bytes32,bytes32,bytes32)\":{\"details\":\"Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole` `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite {RoleAdminChanged} not being emitted signaling this.\"},\"RoleGranted(bytes32,address,address)\":{\"details\":\"Emitted when `account` is granted `role`. `sender` is the account that originated the contract call, an admin role bearer except when using {AccessControl-_setupRole}.\"},\"RoleRevoked(bytes32,address,address)\":{\"details\":\"Emitted when `account` is revoked `role`. `sender` is the account that originated the contract call: - if using `revokeRole`, it is the admin role bearer - if using `renounceRole`, it is the role bearer (i.e. `account`)\"},\"SetDelegator(address)\":{\"details\":\"Can be set only once.\",\"params\":{\"delegator\":\"vault's delegator to delegate the stake to networks and operators\"}},\"SetDepositLimit(uint256)\":{\"params\":{\"limit\":\"deposit limit (maximum amount of the collateral that can be in the vault simultaneously)\"}},\"SetDepositWhitelist(bool)\":{\"params\":{\"status\":\"if enabled deposit whitelist\"}},\"SetDepositorWhitelistStatus(address,bool)\":{\"params\":{\"account\":\"account for which the whitelist status is set\",\"status\":\"if whitelisted the account\"}},\"SetIsDepositLimit(bool)\":{\"params\":{\"status\":\"if enabled deposit limit\"}},\"SetSlasher(address)\":{\"details\":\"Can be set only once.\",\"params\":{\"slasher\":\"vault's slasher to provide a slashing mechanism to networks\"}},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `value` tokens are moved from one account (`from`) to another (`to`). Note that `value` may be zero.\"},\"Withdraw(address,address,uint256,uint256,uint256)\":{\"params\":{\"amount\":\"amount of the collateral withdrawn\",\"burnedShares\":\"amount of the active shares burned\",\"claimer\":\"account that needs to claim the withdrawal\",\"mintedShares\":\"amount of the epoch withdrawal shares minted\",\"withdrawer\":\"account that made the withdrawal\"}}},\"kind\":\"dev\",\"methods\":{\"activeBalanceOf(address)\":{\"params\":{\"account\":\"account to get the active balance for\"},\"returns\":{\"_0\":\"active balance for the account\"}},\"activeBalanceOfAt(address,uint48,bytes)\":{\"params\":{\"account\":\"account to get the active balance for\",\"hints\":\"hints for checkpoints' indexes\",\"timestamp\":\"time point to get the active balance for the account at\"},\"returns\":{\"_0\":\"active balance for the account at the timestamp\"}},\"activeShares()\":{\"returns\":{\"_0\":\"total number of active shares\"}},\"activeSharesAt(uint48,bytes)\":{\"params\":{\"hint\":\"hint for the checkpoint index\",\"timestamp\":\"time point to get the total number of active shares at\"},\"returns\":{\"_0\":\"total number of active shares at the timestamp\"}},\"activeSharesOf(address)\":{\"params\":{\"account\":\"account to get the number of active shares for\"},\"returns\":{\"_0\":\"number of active shares for the account\"}},\"activeSharesOfAt(address,uint48,bytes)\":{\"params\":{\"account\":\"account to get the number of active shares for\",\"hint\":\"hint for the checkpoint index\",\"timestamp\":\"time point to get the number of active shares for the account at\"},\"returns\":{\"_0\":\"number of active shares for the account at the timestamp\"}},\"activeStake()\":{\"returns\":{\"_0\":\"total amount of active stake\"}},\"activeStakeAt(uint48,bytes)\":{\"params\":{\"hint\":\"hint for the checkpoint index\",\"timestamp\":\"time point to get the total active stake at\"},\"returns\":{\"_0\":\"total amount of active stake at the timestamp\"}},\"allowance(address,address)\":{\"details\":\"See {IERC20-allowance}.\"},\"approve(address,uint256)\":{\"details\":\"See {IERC20-approve}. NOTE: If `value` is the maximum `uint256`, the allowance is not updated on `transferFrom`. This is semantically equivalent to an infinite approval. Requirements: - `spender` cannot be the zero address.\"},\"balanceOf(address)\":{\"details\":\"See {IERC20-balanceOf}.\"},\"claim(address,uint256)\":{\"params\":{\"epoch\":\"epoch to claim the collateral for\",\"recipient\":\"account that receives the collateral\"},\"returns\":{\"amount\":\"amount of the collateral claimed\"}},\"claimBatch(address,uint256[])\":{\"params\":{\"epochs\":\"epochs to claim the collateral for\",\"recipient\":\"account that receives the collateral\"},\"returns\":{\"amount\":\"amount of the collateral claimed\"}},\"currentEpoch()\":{\"returns\":{\"_0\":\"current epoch\"}},\"currentEpochStart()\":{\"returns\":{\"_0\":\"start of the current epoch\"}},\"decimals()\":{\"details\":\"Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5.05` (`505 / 10 ** 2`). Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei. This is the default value returned by this function, unless it's overridden. NOTE: This information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including {IERC20-balanceOf} and {IERC20-transfer}.\"},\"deposit(address,uint256)\":{\"params\":{\"amount\":\"amount of the collateral to deposit\",\"onBehalfOf\":\"account the deposit is made on behalf of\"},\"returns\":{\"depositedAmount\":\"real amount of the collateral deposited\",\"mintedShares\":\"amount of the active shares minted\"}},\"epochAt(uint48)\":{\"details\":\"Reverts if the timestamp is less than the start of the epoch 0.\",\"params\":{\"timestamp\":\"time point to get the epoch at\"},\"returns\":{\"_0\":\"epoch at the timestamp\"}},\"getRoleAdmin(bytes32)\":{\"details\":\"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}.\"},\"grantRole(bytes32,address)\":{\"details\":\"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event.\"},\"hasRole(bytes32,address)\":{\"details\":\"Returns `true` if `account` has been granted `role`.\"},\"initialize(uint64,address,bytes)\":{\"params\":{\"data\":\"some data to use\",\"initialVersion\":\"initial version of the entity\",\"owner\":\"initial owner of the entity\"}},\"isInitialized()\":{\"returns\":{\"_0\":\"if the vault is fully initialized\"}},\"migrate(uint64,bytes)\":{\"params\":{\"data\":\"some data to use\",\"newVersion\":\"new version of the entity\"}},\"name()\":{\"details\":\"Returns the name of the token.\"},\"nextEpochStart()\":{\"returns\":{\"_0\":\"start of the next epoch\"}},\"onSlash(uint256,uint48)\":{\"details\":\"Only the slasher can call this function.\",\"params\":{\"amount\":\"amount to slash\",\"captureTimestamp\":\"time point when the stake was captured\"},\"returns\":{\"slashedAmount\":\"real amount of the collateral slashed\"}},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"previousEpochStart()\":{\"details\":\"Reverts if the current epoch is 0.\",\"returns\":{\"_0\":\"start of the previous epoch\"}},\"redeem(address,uint256)\":{\"params\":{\"claimer\":\"account that needs to claim the withdrawal\",\"shares\":\"amount of the active shares to redeem\"},\"returns\":{\"mintedShares\":\"amount of the epoch withdrawal shares minted\",\"withdrawnAssets\":\"amount of the collateral withdrawn\"}},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"renounceRole(bytes32,address)\":{\"details\":\"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `callerConfirmation`. May emit a {RoleRevoked} event.\"},\"revokeRole(bytes32,address)\":{\"details\":\"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event.\"},\"setDepositLimit(uint256)\":{\"details\":\"Only a DEPOSIT_LIMIT_SET_ROLE holder can call this function.\",\"params\":{\"limit\":\"deposit limit (maximum amount of the collateral that can be in the vault simultaneously)\"}},\"setDepositWhitelist(bool)\":{\"details\":\"Only a DEPOSIT_WHITELIST_SET_ROLE holder can call this function.\",\"params\":{\"status\":\"if enabling deposit whitelist\"}},\"setDepositorWhitelistStatus(address,bool)\":{\"details\":\"Only a DEPOSITOR_WHITELIST_ROLE holder can call this function.\",\"params\":{\"account\":\"account for which the whitelist status is set\",\"status\":\"if whitelisting the account\"}},\"setIsDepositLimit(bool)\":{\"details\":\"Only a IS_DEPOSIT_LIMIT_SET_ROLE holder can call this function.\",\"params\":{\"status\":\"if enabling deposit limit\"}},\"slashableBalanceOf(address)\":{\"params\":{\"account\":\"account to get the slashable collateral for\"},\"returns\":{\"_0\":\"total amount of the account's slashable collateral\"}},\"staticDelegateCall(address,bytes)\":{\"details\":\"It allows to use this contract's storage on-chain.\",\"params\":{\"data\":\"data to make a delegatecall with\",\"target\":\"address of the contract to make a delegatecall to\"}},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"},\"symbol()\":{\"details\":\"Returns the symbol of the token, usually a shorter version of the name.\"},\"totalStake()\":{\"returns\":{\"_0\":\"total amount of the slashable collateral\"}},\"totalSupply()\":{\"details\":\"See {IERC20-totalSupply}.\"},\"transfer(address,uint256)\":{\"details\":\"See {IERC20-transfer}. Requirements: - `to` cannot be the zero address. - the caller must have a balance of at least `value`.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC20-transferFrom}. Emits an {Approval} event indicating the updated allowance. This is not required by the EIP. See the note at the beginning of {ERC20}. NOTE: Does not update the allowance if the current allowance is the maximum `uint256`. Requirements: - `from` and `to` cannot be the zero address. - `from` must have a balance of at least `value`. - the caller must have allowance for ``from``'s tokens of at least `value`.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"},\"version()\":{\"details\":\"Starts from 1.\",\"returns\":{\"_0\":\"version of the entity\"}},\"withdraw(address,uint256)\":{\"params\":{\"amount\":\"amount of the collateral to withdraw\",\"claimer\":\"account that needs to claim the withdrawal\"},\"returns\":{\"burnedShares\":\"amount of the active shares burned\",\"mintedShares\":\"amount of the epoch withdrawal shares minted\"}},\"withdrawalsOf(uint256,address)\":{\"params\":{\"account\":\"account to get the withdrawals for\",\"epoch\":\"epoch to get the withdrawals for the account at\"},\"returns\":{\"_0\":\"withdrawals for the account at the epoch\"}}},\"version\":1},\"userdoc\":{\"events\":{\"Claim(address,address,uint256,uint256)\":{\"notice\":\"Emitted when a claim is made.\"},\"ClaimBatch(address,address,uint256[],uint256)\":{\"notice\":\"Emitted when a batch claim is made.\"},\"Deposit(address,address,uint256,uint256)\":{\"notice\":\"Emitted when a deposit is made.\"},\"OnSlash(uint256,uint48,uint256)\":{\"notice\":\"Emitted when a slash happens.\"},\"SetDelegator(address)\":{\"notice\":\"Emitted when a delegator is set.\"},\"SetDepositLimit(uint256)\":{\"notice\":\"Emitted when a deposit limit is set.\"},\"SetDepositWhitelist(bool)\":{\"notice\":\"Emitted when a deposit whitelist status is enabled/disabled.\"},\"SetDepositorWhitelistStatus(address,bool)\":{\"notice\":\"Emitted when a depositor whitelist status is set.\"},\"SetIsDepositLimit(bool)\":{\"notice\":\"Emitted when a deposit limit status is enabled/disabled.\"},\"SetSlasher(address)\":{\"notice\":\"Emitted when a slasher is set.\"},\"Withdraw(address,address,uint256,uint256,uint256)\":{\"notice\":\"Emitted when a withdrawal is made.\"}},\"kind\":\"user\",\"methods\":{\"DELEGATOR_FACTORY()\":{\"notice\":\"Get the delegator factory's address.\"},\"DEPOSITOR_WHITELIST_ROLE()\":{\"notice\":\"Get a depositor whitelist status setter's role.\"},\"DEPOSIT_LIMIT_SET_ROLE()\":{\"notice\":\"Get a deposit limit setter's role.\"},\"DEPOSIT_WHITELIST_SET_ROLE()\":{\"notice\":\"Get a deposit whitelist enabler/disabler's role.\"},\"FACTORY()\":{\"notice\":\"Get the factory's address.\"},\"IS_DEPOSIT_LIMIT_SET_ROLE()\":{\"notice\":\"Get a deposit limit enabler/disabler's role.\"},\"SLASHER_FACTORY()\":{\"notice\":\"Get the slasher factory's address.\"},\"activeBalanceOf(address)\":{\"notice\":\"Get an active balance for a particular account.\"},\"activeBalanceOfAt(address,uint48,bytes)\":{\"notice\":\"Get an active balance for a particular account at a given timestamp using hints.\"},\"activeShares()\":{\"notice\":\"Get a total number of active shares in the vault.\"},\"activeSharesAt(uint48,bytes)\":{\"notice\":\"Get a total number of active shares in the vault at a given timestamp using a hint.\"},\"activeSharesOf(address)\":{\"notice\":\"Get a number of active shares for a particular account.\"},\"activeSharesOfAt(address,uint48,bytes)\":{\"notice\":\"Get a total number of active shares for a particular account at a given timestamp using a hint.\"},\"activeStake()\":{\"notice\":\"Get a total amount of active stake in the vault.\"},\"activeStakeAt(uint48,bytes)\":{\"notice\":\"Get a total amount of active stake in the vault at a given timestamp using a hint.\"},\"burner()\":{\"notice\":\"Get a burner to issue debt to (e.g., 0xdEaD or some unwrapper contract).\"},\"claim(address,uint256)\":{\"notice\":\"Claim collateral from the vault.\"},\"claimBatch(address,uint256[])\":{\"notice\":\"Claim collateral from the vault for multiple epochs.\"},\"collateral()\":{\"notice\":\"Get a vault collateral.\"},\"currentEpoch()\":{\"notice\":\"Get a current vault epoch.\"},\"currentEpochStart()\":{\"notice\":\"Get a start of the current vault epoch.\"},\"delegator()\":{\"notice\":\"Get a delegator (it delegates the vault's stake to networks and operators).\"},\"deposit(address,uint256)\":{\"notice\":\"Deposit collateral into the vault.\"},\"depositLimit()\":{\"notice\":\"Get a deposit limit (maximum amount of the active stake that can be in the vault simultaneously).\"},\"depositWhitelist()\":{\"notice\":\"Get if the deposit whitelist is enabled.\"},\"epochAt(uint48)\":{\"notice\":\"Get an epoch at a given timestamp.\"},\"epochDuration()\":{\"notice\":\"Get a duration of the vault epoch.\"},\"epochDurationInit()\":{\"notice\":\"Get a time point of the epoch duration set.\"},\"initialize(uint64,address,bytes)\":{\"notice\":\"Initialize this entity contract by using a given data and setting a particular version and owner.\"},\"isDelegatorInitialized()\":{\"notice\":\"Get if the delegator is initialized.\"},\"isDepositLimit()\":{\"notice\":\"Get if the deposit limit is set.\"},\"isDepositorWhitelisted(address)\":{\"notice\":\"Get if a given account is whitelisted as a depositor.\"},\"isInitialized()\":{\"notice\":\"Check if the vault is fully initialized (a delegator and a slasher are set).\"},\"isSlasherInitialized()\":{\"notice\":\"Get if the slasher is initialized.\"},\"isWithdrawalsClaimed(uint256,address)\":{\"notice\":\"Get if the withdrawals are claimed for a particular account at a given epoch.\"},\"migrate(uint64,bytes)\":{\"notice\":\"Migrate this entity to a particular newer version using a given data.\"},\"nextEpochStart()\":{\"notice\":\"Get a start of the next vault epoch.\"},\"onSlash(uint256,uint48)\":{\"notice\":\"Slash callback for burning collateral.\"},\"previousEpochStart()\":{\"notice\":\"Get a start of the previous vault epoch.\"},\"redeem(address,uint256)\":{\"notice\":\"Redeem collateral from the vault (it will be claimable after the next epoch).\"},\"setDepositLimit(uint256)\":{\"notice\":\"Set a deposit limit.\"},\"setDepositWhitelist(bool)\":{\"notice\":\"Enable/disable deposit whitelist.\"},\"setDepositorWhitelistStatus(address,bool)\":{\"notice\":\"Set a depositor whitelist status.\"},\"setIsDepositLimit(bool)\":{\"notice\":\"Enable/disable deposit limit.\"},\"slashableBalanceOf(address)\":{\"notice\":\"Get a total amount of the collateral that can be slashed for a given account.\"},\"slasher()\":{\"notice\":\"Get a slasher (it provides networks a slashing mechanism).\"},\"staticDelegateCall(address,bytes)\":{\"notice\":\"Make a delegatecall from this contract to a given target contract with a particular data (always reverts with a return data).\"},\"totalStake()\":{\"notice\":\"Get a total amount of the collateral that can be slashed.\"},\"version()\":{\"notice\":\"Get the entity's version.\"},\"withdraw(address,uint256)\":{\"notice\":\"Withdraw collateral from the vault (it will be claimable after the next epoch).\"},\"withdrawalShares(uint256)\":{\"notice\":\"Get a total number of withdrawal shares at a given epoch.\"},\"withdrawalSharesOf(uint256,address)\":{\"notice\":\"Get a number of withdrawal shares for a particular account at a given epoch (zero if claimed).\"},\"withdrawals(uint256)\":{\"notice\":\"Get a total amount of the withdrawals at a given epoch.\"},\"withdrawalsOf(uint256,address)\":{\"notice\":\"Get withdrawals for a particular account at a given epoch (zero if claimed).\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/contracts/vault/VaultTokenized.sol\":\"VaultTokenized\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol\":{\"keccak256\":\"0x6662ec4e5cefca03eeadd073e9469df8d2944bb2ee8ec8f7622c2c46aab5f225\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4d8544c6f8daa4d1bc215c6a72fe0acdb748664a105b0e5efc19295667521d45\",\"dweb:/ipfs/QmdGWqdnXT8S3RgCR6aV8XHZrsybieMQLLnug1NtpSjEXN\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0xc163fcf9bb10138631a9ba5564df1fa25db9adff73bd9ee868a8ae1858fe093a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9706d43a0124053d9880f6e31a59f31bc0a6a3dc1acd66ce0a16e1111658c5f6\",\"dweb:/ipfs/QmUFmfowzkRwGtDu36cXV9SPTBHJ3n7dG9xQiK5B28jTf2\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609\",\"dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/ERC20Upgradeable.sol\":{\"keccak256\":\"0x9a1766b1921bf91b3e61eb53c7a6e70725254befd4bdcbbcd3af40bd9f66856f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://29bf2fa41a172086a665c9738377b93655aa4b1ffda9fe839c8bdf646f185040\",\"dweb:/ipfs/QmeB21qDuo8WPQSrqXJbQmWHKsdeocGNSUWLhCwniVejrt\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9\",\"dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardUpgradeable.sol\":{\"keccak256\":\"0xb44e086e941292cdc7f440de51478493894ef0b1aeccb0c4047445919f667f74\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://942dad22fbdc1669f025540ba63aa3ccfad5f8458fc5d4525b31ebf272e7af45\",\"dweb:/ipfs/Qmdo4X2M82aM3AMoW2kf2jhYkSCyC4T1pHNd6obdsDFnAB\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol\":{\"keccak256\":\"0xdaba3f7c42c55b2896353f32bd27d4d5f8bae741b3b05d4c53f67abc4dc47ce8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1fa2e61141c602510bcd2cd936ed9561922ac8772a9b9c9a9db091a74e354a45\",\"dweb:/ipfs/QmcHQDDoEBwJmwUbzoVkytvJsBx3KVHYFFnDkvRGWh9Wmh\"]},\"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0xb6b36edd6a2999fd243ff226d6cbf84bd71af2432bbd0dfe19392996a1d9cb41\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1fd2f35495652e57e3f99bc6c510bc5f7dd398a176ea2e72d8ed730aebc6ca26\",\"dweb:/ipfs/QmTQV6X4gkikTib49cho5iDX3JvSQbdsoEChoDwrk3CbbH\"]},\"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x60c65f701957fdd6faea1acb0bb45825791d473693ed9ecb34726fdfaa849dd7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea290300e0efc4d901244949dc4d877fd46e6c5e43dc2b26620e8efab3ab803f\",\"dweb:/ipfs/QmcLLJppxKeJWqHxE2CUkcfhuRTgHSn8J4kijcLa5MYhSt\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c\",\"dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0xaa761817f6cd7892fcf158b3c776b34551cde36f48ff9703d53898bc45a94ea2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ad7c8d4d08938c8dfc43d75a148863fb324b80cf53e0a36f7e5a4ac29008850\",\"dweb:/ipfs/QmcrhfPgVNf5mkdhQvy1pMv51TFokD3Y4Wa5WZhFqVh8UV\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0x6008dabfe393240d73d7dd7688033f72740d570aa422254d29a7dce8568f3aff\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f5196ec75139918c6c7bb4251b36395e668f1fa6d206beba7e7520e74913940d\",\"dweb:/ipfs/QmSyqjksXxmm2mCG6qRd1yuwLykypkSVBbnBnGqJRcuJMi\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x37bb49513c49c87c4642a891b13b63571bc87013dde806617aa1efb54605f386\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b3036b3a83b7c48f96641f2a9002b9f2dcb6a5958dd670894ada21ae8229b3d0\",\"dweb:/ipfs/QmUNfSBdoVtjhETaUJCYcaC7pTMgbhht926tJ2uXJbiVd3\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0xaf28a975a78550e45f65e559a3ad6a5ad43b9b8a37366999abd1b7084eb70721\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b7bd24e224f67f65bfadf85dc2929fa965456bb2415478bd0125471b5ce35245\",\"dweb:/ipfs/QmRaydGr8BTHs1kvaZfsNU69pKzUAGFrvABn1KiRSbE51y\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875\",\"dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0xe19a4d5f31d2861e7344e8e535e2feafb913d806d3e2b5fe7782741a2a7094fe\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4aed79c0fa6f0546ed02f2f683e8f77f0fd2ed7eb34d8bbf3d373c9a6d95b13c\",\"dweb:/ipfs/QmWqVz6UAVqmnWU5pqYPt1o6iDEZyPaBraAA3rKfTTSfYj\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/Checkpoints.sol\":{\"keccak256\":\"0xbdc5e074d7dd6678f67e92b1a51a20226801a407b0e1af3da367c5d1ff4519ad\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a36cca6b22fff3db16fc789ff6c60eea71d4b156065d4d0c83a0bc5e91a77a8b\",\"dweb:/ipfs/QmYN3exd5AemxjBrN8XMB1p5LbbE16uC3sjbYjwi8AjcGR\"]},\"lib/openzeppelin-contracts/contracts/utils/types/Time.sol\":{\"keccak256\":\"0xc7755af115020049e4140f224f9ee88d7e1799ffb0646f37bf0df24bf6213f58\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7f09bf94d5274334ec021f61a04659db303f31e60460e14b709c9bf187740111\",\"dweb:/ipfs/QmNvgomZYUwFAt4cZbPWAiTeSZQreGehY9BK5xyVJsUttb\"]},\"src/contracts/common/MigratableEntity.sol\":{\"keccak256\":\"0x2d736f4dacd5d7e7697503bc426c78b8250fe1694ca157965ec178da6807de58\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://f1237acf96b4b9f9b69156e068eddd726a6e15bd8e87a18dc999cd4ba4da069c\",\"dweb:/ipfs/QmS6M8fiFFSeuJ4ZKKq1z8W7w4ybeHQSy5TLASGoc1LVic\"]},\"src/contracts/common/StaticDelegateCallable.sol\":{\"keccak256\":\"0x350029aa8955eacaffffaeb58babc5c98e80ebc5c5db388ed17ee6465f4a9d90\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://eb392a8ee9050e0af606897df63e3404e3829e8b688b580663892f9664195764\",\"dweb:/ipfs/QmaXC8jqV8UrrAFkzXTEv2fJF56sy33HhLxAzaRZmUxuXD\"]},\"src/contracts/libraries/Checkpoints.sol\":{\"keccak256\":\"0xba90097c8bfe0a975499428b5f8ac5569483c7d92ccc28c12d70de416aae040c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://12f5d93ca94cd06d3147db68993165a58e17903ed53682560de61f3085ad4609\",\"dweb:/ipfs/QmePiuAqvXprMLmFZkGZeGjvGPAvsEDHfCDv7BoQhXu9xE\"]},\"src/contracts/libraries/ERC4626Math.sol\":{\"keccak256\":\"0x8441160513c1cbeb1c3b9ee077bcc7e7ce20006b52a77c8dd39ff0ef89699939\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://943f8cc3e26ddf649f465f40c909819f5c864717c4baa339e9e403b9374a4653\",\"dweb:/ipfs/QmXPxi1sUDsrGprZdUgCzoPEosaZMv9ZhygWQ1vAi1phAB\"]},\"src/contracts/vault/Vault.sol\":{\"keccak256\":\"0x2ceff6ed3298c4cad144c99fcc79b51cb9397d6ebef00285b915848b476f8c2e\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://11f2fb3581854f3ab6e82e8d4935d9eb510c903a13c3f022346c2956a58f5307\",\"dweb:/ipfs/QmdUnoXoyYoG9SGWyQZCFyLDRUUX3eXyXetkRvw6jxqqBz\"]},\"src/contracts/vault/VaultStorage.sol\":{\"keccak256\":\"0x57db25b127d77ea3472de53e3a4af3354399655b9268638b99ca5925fa364a56\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://aa763d9a6ec508ae3abfb8228b72b9fd9525279e5135d4962e79ff059feb1173\",\"dweb:/ipfs/QmcbDR6E9wyEpu6V2FkEC4hnWy47zXA9LSKJde6zSGd33Q\"]},\"src/contracts/vault/VaultTokenized.sol\":{\"keccak256\":\"0xa9475a46a3e32b35e48bc37fdaf08e1a586fb7c9667ac5e014b716a08873c46d\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://0a292a4f35bc43ce7174b36e2d016bc44d6737e94b41e48cb5dd1bb1e4821e48\",\"dweb:/ipfs/QmduHZe2REPnygiWvQRV82yD4tYHdwX33FkYRFm1UZoXBA\"]},\"src/interfaces/common/IEntity.sol\":{\"keccak256\":\"0x8ef4b63d6da63489778ccd5f8d13ebdd527dd4b62730b2c616df5af7474d2d21\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a8d69576a9219d85c50816a18ad53a4d53cfcb27ed38b8cccc808dc2734b71b\",\"dweb:/ipfs/QmYVN3P4Q4REvBWJ97TbAcaxm3uyB2anV6NSGa6ZtSwcEv\"]},\"src/interfaces/common/IMigratableEntity.sol\":{\"keccak256\":\"0x8f5f2809f3afbe8ebfbb365dd7b57b4dd3b6f9943a6187eaf648d45895b8e3c4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ffe640537d539e7a4fde70d30d3e4c57f4ba9c2c25c450cea713aae38e8fd5c\",\"dweb:/ipfs/QmSUTGzvdcn1R1KB7tLThMRtESsfPbeXDhhhKWGtntzBds\"]},\"src/interfaces/common/IRegistry.sol\":{\"keccak256\":\"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014\",\"dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK\"]},\"src/interfaces/common/IStaticDelegateCallable.sol\":{\"keccak256\":\"0xa335d4e81b9071b7de66ef92b43ff20671d86516eb1be46fef29a3483cd3f5d5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d464b9db863c14c05547d2b23352f2e9b7b784799cf09f6bbc4906a2a74e3516\",\"dweb:/ipfs/QmUVWzFvJz7eEbDQKiFTTzwi7TEbjcs3VmwdM4kuptAKvi\"]},\"src/interfaces/delegator/IBaseDelegator.sol\":{\"keccak256\":\"0x96bb312f032e17accce3f8f80936d99468029d6b37c9ca74acdb4b026a0148ee\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2a66dcb5b7d1a6ef6a363431ea98ebd78bc4fdd3d7a134d9b542dc66e7d025c2\",\"dweb:/ipfs/QmRhTPLd2ZAyRHmJUFUcWKs9b3if49QY17LYZuRqWmghw8\"]},\"src/interfaces/slasher/IBaseSlasher.sol\":{\"keccak256\":\"0x7c82528b445659c313ab77335c407b0b6efe5e79027187bb287f7bc74202b404\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0274c90aa5df1aa6bb470a6aab53992fb14fd7e5472c9430416505b29647d9cf\",\"dweb:/ipfs/QmckbmJLDetPemVzCnnGcKYWAZV2BRFXGDsjiaec8jkHxx\"]},\"src/interfaces/vault/IVault.sol\":{\"keccak256\":\"0xffee01d383cd4e1a5530c614bf4360c1ef070c288abec9da1eb531b51bc07235\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://04f0046cac285d8ec44ebbb1f79dc94fab4495767190cad8364fbc1fafaadfb9\",\"dweb:/ipfs/QmUawAunwzXfCyShWfhKeThAgKtqe51hmrxvrXvM772M2R\"]},\"src/interfaces/vault/IVaultStorage.sol\":{\"keccak256\":\"0x592626f13754194f83047135de19229c49390bd59e34659b1bb38be71d973a22\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://06a6a9dfddd05e580b32bebe2cff4f63ba26a653180676d58225dd30d9c89d3e\",\"dweb:/ipfs/QmdgzBeY6Sxo8mGtyBxtv1tM1c2kU6J6zjeRd7vuXm4DU6\"]},\"src/interfaces/vault/IVaultTokenized.sol\":{\"keccak256\":\"0xb723560b49c30b38130634388a0550c9e07596f92a58edbfa2415e690024e0c4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://dc9dde973a0bbf0adbc305462a796fa3b2e5be9daa1984e4f3e4f48e3c254f39\",\"dweb:/ipfs/QmQydZsr7ESw7ZSe9mqaxZ3dycvru8ZFVwrL9pmVnpyd7c\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.25+commit.b61c2a91"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"delegatorFactory","type":"address"},{"internalType":"address","name":"slasherFactory","type":"address"},{"internalType":"address","name":"vaultFactory","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"AccessControlBadConfirmation"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bytes32","name":"neededRole","type":"bytes32"}],"type":"error","name":"AccessControlUnauthorizedAccount"},{"inputs":[{"internalType":"address","name":"target","type":"address"}],"type":"error","name":"AddressEmptyCode"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"AddressInsufficientBalance"},{"inputs":[],"type":"error","name":"AlreadyClaimed"},{"inputs":[],"type":"error","name":"AlreadyInitialized"},{"inputs":[],"type":"error","name":"AlreadySet"},{"inputs":[],"type":"error","name":"CheckpointUnorderedInsertion"},{"inputs":[],"type":"error","name":"DelegatorAlreadyInitialized"},{"inputs":[],"type":"error","name":"DepositLimitReached"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"allowance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"type":"error","name":"ERC20InsufficientAllowance"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"type":"error","name":"ERC20InsufficientBalance"},{"inputs":[{"internalType":"address","name":"approver","type":"address"}],"type":"error","name":"ERC20InvalidApprover"},{"inputs":[{"internalType":"address","name":"receiver","type":"address"}],"type":"error","name":"ERC20InvalidReceiver"},{"inputs":[{"internalType":"address","name":"sender","type":"address"}],"type":"error","name":"ERC20InvalidSender"},{"inputs":[{"internalType":"address","name":"spender","type":"address"}],"type":"error","name":"ERC20InvalidSpender"},{"inputs":[],"type":"error","name":"FailedInnerCall"},{"inputs":[],"type":"error","name":"InsufficientClaim"},{"inputs":[],"type":"error","name":"InsufficientDeposit"},{"inputs":[],"type":"error","name":"InsufficientRedemption"},{"inputs":[],"type":"error","name":"InsufficientWithdrawal"},{"inputs":[],"type":"error","name":"InvalidAccount"},{"inputs":[],"type":"error","name":"InvalidCaptureEpoch"},{"inputs":[],"type":"error","name":"InvalidClaimer"},{"inputs":[],"type":"error","name":"InvalidCollateral"},{"inputs":[],"type":"error","name":"InvalidDelegator"},{"inputs":[],"type":"error","name":"InvalidEpoch"},{"inputs":[],"type":"error","name":"InvalidEpochDuration"},{"inputs":[],"type":"error","name":"InvalidInitialization"},{"inputs":[],"type":"error","name":"InvalidLengthEpochs"},{"inputs":[],"type":"error","name":"InvalidOnBehalfOf"},{"inputs":[],"type":"error","name":"InvalidRecipient"},{"inputs":[],"type":"error","name":"InvalidSlasher"},{"inputs":[],"type":"error","name":"InvalidTimestamp"},{"inputs":[],"type":"error","name":"MathOverflowedMulDiv"},{"inputs":[],"type":"error","name":"MissingRoles"},{"inputs":[],"type":"error","name":"NoPreviousEpoch"},{"inputs":[],"type":"error","name":"NotDelegator"},{"inputs":[],"type":"error","name":"NotFactory"},{"inputs":[],"type":"error","name":"NotInitialized"},{"inputs":[],"type":"error","name":"NotInitializing"},{"inputs":[],"type":"error","name":"NotSlasher"},{"inputs":[],"type":"error","name":"NotWhitelistedDepositor"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"OwnableInvalidOwner"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"OwnableUnauthorizedAccount"},{"inputs":[],"type":"error","name":"ReentrancyGuardReentrantCall"},{"inputs":[{"internalType":"uint8","name":"bits","type":"uint8"},{"internalType":"uint256","name":"value","type":"uint256"}],"type":"error","name":"SafeCastOverflowedUintDowncast"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"type":"error","name":"SafeERC20FailedOperation"},{"inputs":[],"type":"error","name":"SlasherAlreadyInitialized"},{"inputs":[],"type":"error","name":"TooMuchRedeem"},{"inputs":[],"type":"error","name":"TooMuchWithdraw"},{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"spender","type":"address","indexed":true},{"internalType":"uint256","name":"value","type":"uint256","indexed":false}],"type":"event","name":"Approval","anonymous":false},{"inputs":[{"internalType":"address","name":"claimer","type":"address","indexed":true},{"internalType":"address","name":"recipient","type":"address","indexed":true},{"internalType":"uint256","name":"epoch","type":"uint256","indexed":false},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"Claim","anonymous":false},{"inputs":[{"internalType":"address","name":"claimer","type":"address","indexed":true},{"internalType":"address","name":"recipient","type":"address","indexed":true},{"internalType":"uint256[]","name":"epochs","type":"uint256[]","indexed":false},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"ClaimBatch","anonymous":false},{"inputs":[{"internalType":"address","name":"depositor","type":"address","indexed":true},{"internalType":"address","name":"onBehalfOf","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false},{"internalType":"uint256","name":"shares","type":"uint256","indexed":false}],"type":"event","name":"Deposit","anonymous":false},{"inputs":[{"internalType":"uint64","name":"version","type":"uint64","indexed":false}],"type":"event","name":"Initialized","anonymous":false},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256","indexed":false},{"internalType":"uint48","name":"captureTimestamp","type":"uint48","indexed":false},{"internalType":"uint256","name":"slashedAmount","type":"uint256","indexed":false}],"type":"event","name":"OnSlash","anonymous":false},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"bytes32","name":"previousAdminRole","type":"bytes32","indexed":true},{"internalType":"bytes32","name":"newAdminRole","type":"bytes32","indexed":true}],"type":"event","name":"RoleAdminChanged","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"address","name":"sender","type":"address","indexed":true}],"type":"event","name":"RoleGranted","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"address","name":"sender","type":"address","indexed":true}],"type":"event","name":"RoleRevoked","anonymous":false},{"inputs":[{"internalType":"address","name":"delegator","type":"address","indexed":true}],"type":"event","name":"SetDelegator","anonymous":false},{"inputs":[{"internalType":"uint256","name":"limit","type":"uint256","indexed":false}],"type":"event","name":"SetDepositLimit","anonymous":false},{"inputs":[{"internalType":"bool","name":"status","type":"bool","indexed":false}],"type":"event","name":"SetDepositWhitelist","anonymous":false},{"inputs":[{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"bool","name":"status","type":"bool","indexed":false}],"type":"event","name":"SetDepositorWhitelistStatus","anonymous":false},{"inputs":[{"internalType":"bool","name":"status","type":"bool","indexed":false}],"type":"event","name":"SetIsDepositLimit","anonymous":false},{"inputs":[{"internalType":"address","name":"slasher","type":"address","indexed":true}],"type":"event","name":"SetSlasher","anonymous":false},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"value","type":"uint256","indexed":false}],"type":"event","name":"Transfer","anonymous":false},{"inputs":[{"internalType":"address","name":"withdrawer","type":"address","indexed":true},{"internalType":"address","name":"claimer","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false},{"internalType":"uint256","name":"burnedShares","type":"uint256","indexed":false},{"internalType":"uint256","name":"mintedShares","type":"uint256","indexed":false}],"type":"event","name":"Withdraw","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"DEFAULT_ADMIN_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"DELEGATOR_FACTORY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"DEPOSITOR_WHITELIST_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"DEPOSIT_LIMIT_SET_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"DEPOSIT_WHITELIST_SET_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"FACTORY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"IS_DEPOSIT_LIMIT_SET_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"SLASHER_FACTORY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"activeBalanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint48","name":"timestamp","type":"uint48"},{"internalType":"bytes","name":"hints","type":"bytes"}],"stateMutability":"view","type":"function","name":"activeBalanceOfAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"activeShares","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint48","name":"timestamp","type":"uint48"},{"internalType":"bytes","name":"hint","type":"bytes"}],"stateMutability":"view","type":"function","name":"activeSharesAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"activeSharesOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint48","name":"timestamp","type":"uint48"},{"internalType":"bytes","name":"hint","type":"bytes"}],"stateMutability":"view","type":"function","name":"activeSharesOfAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"activeStake","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint48","name":"timestamp","type":"uint48"},{"internalType":"bytes","name":"hint","type":"bytes"}],"stateMutability":"view","type":"function","name":"activeStakeAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"stateMutability":"view","type":"function","name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"burner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"epoch","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"claim","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256[]","name":"epochs","type":"uint256[]"}],"stateMutability":"nonpayable","type":"function","name":"claimBatch","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"collateral","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"currentEpoch","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"currentEpochStart","outputs":[{"internalType":"uint48","name":"","type":"uint48"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"delegator","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"onBehalfOf","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"deposit","outputs":[{"internalType":"uint256","name":"depositedAmount","type":"uint256"},{"internalType":"uint256","name":"mintedShares","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"depositLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"depositWhitelist","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint48","name":"timestamp","type":"uint48"}],"stateMutability":"view","type":"function","name":"epochAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"epochDuration","outputs":[{"internalType":"uint48","name":"","type":"uint48"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"epochDurationInit","outputs":[{"internalType":"uint48","name":"","type":"uint48"}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getRoleAdmin","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"grantRole"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"hasRole","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint64","name":"initialVersion","type":"uint64"},{"internalType":"address","name":"owner_","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[],"stateMutability":"view","type":"function","name":"isDelegatorInitialized","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"isDepositLimit","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"isDepositorWhitelisted","outputs":[{"internalType":"bool","name":"value","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"isInitialized","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"isSlasherInitialized","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint256","name":"epoch","type":"uint256"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"isWithdrawalsClaimed","outputs":[{"internalType":"bool","name":"value","type":"bool"}]},{"inputs":[{"internalType":"uint64","name":"newVersion","type":"uint64"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"migrate"},{"inputs":[],"stateMutability":"view","type":"function","name":"name","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"nextEpochStart","outputs":[{"internalType":"uint48","name":"","type":"uint48"}]},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint48","name":"captureTimestamp","type":"uint48"}],"stateMutability":"nonpayable","type":"function","name":"onSlash","outputs":[{"internalType":"uint256","name":"slashedAmount","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"previousEpochStart","outputs":[{"internalType":"uint48","name":"","type":"uint48"}]},{"inputs":[{"internalType":"address","name":"claimer","type":"address"},{"internalType":"uint256","name":"shares","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"redeem","outputs":[{"internalType":"uint256","name":"withdrawnAssets","type":"uint256"},{"internalType":"uint256","name":"mintedShares","type":"uint256"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"callerConfirmation","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"renounceRole"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"revokeRole"},{"inputs":[{"internalType":"address","name":"delegator_","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setDelegator"},{"inputs":[{"internalType":"uint256","name":"limit","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setDepositLimit"},{"inputs":[{"internalType":"bool","name":"status","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"setDepositWhitelist"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"status","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"setDepositorWhitelistStatus"},{"inputs":[{"internalType":"bool","name":"status","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"setIsDepositLimit"},{"inputs":[{"internalType":"address","name":"slasher_","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setSlasher"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"slashableBalanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"slasher","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"staticDelegateCall"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"totalStake","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"},{"inputs":[],"stateMutability":"view","type":"function","name":"version","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[{"internalType":"address","name":"claimer","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"withdraw","outputs":[{"internalType":"uint256","name":"burnedShares","type":"uint256"},{"internalType":"uint256","name":"mintedShares","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"epoch","type":"uint256"}],"stateMutability":"view","type":"function","name":"withdrawalShares","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"epoch","type":"uint256"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"withdrawalSharesOf","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"epoch","type":"uint256"}],"stateMutability":"view","type":"function","name":"withdrawals","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"epoch","type":"uint256"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"withdrawalsOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]}],"devdoc":{"kind":"dev","methods":{"activeBalanceOf(address)":{"params":{"account":"account to get the active balance for"},"returns":{"_0":"active balance for the account"}},"activeBalanceOfAt(address,uint48,bytes)":{"params":{"account":"account to get the active balance for","hints":"hints for checkpoints' indexes","timestamp":"time point to get the active balance for the account at"},"returns":{"_0":"active balance for the account at the timestamp"}},"activeShares()":{"returns":{"_0":"total number of active shares"}},"activeSharesAt(uint48,bytes)":{"params":{"hint":"hint for the checkpoint index","timestamp":"time point to get the total number of active shares at"},"returns":{"_0":"total number of active shares at the timestamp"}},"activeSharesOf(address)":{"params":{"account":"account to get the number of active shares for"},"returns":{"_0":"number of active shares for the account"}},"activeSharesOfAt(address,uint48,bytes)":{"params":{"account":"account to get the number of active shares for","hint":"hint for the checkpoint index","timestamp":"time point to get the number of active shares for the account at"},"returns":{"_0":"number of active shares for the account at the timestamp"}},"activeStake()":{"returns":{"_0":"total amount of active stake"}},"activeStakeAt(uint48,bytes)":{"params":{"hint":"hint for the checkpoint index","timestamp":"time point to get the total active stake at"},"returns":{"_0":"total amount of active stake at the timestamp"}},"allowance(address,address)":{"details":"See {IERC20-allowance}."},"approve(address,uint256)":{"details":"See {IERC20-approve}. NOTE: If `value` is the maximum `uint256`, the allowance is not updated on `transferFrom`. This is semantically equivalent to an infinite approval. Requirements: - `spender` cannot be the zero address."},"balanceOf(address)":{"details":"See {IERC20-balanceOf}."},"claim(address,uint256)":{"params":{"epoch":"epoch to claim the collateral for","recipient":"account that receives the collateral"},"returns":{"amount":"amount of the collateral claimed"}},"claimBatch(address,uint256[])":{"params":{"epochs":"epochs to claim the collateral for","recipient":"account that receives the collateral"},"returns":{"amount":"amount of the collateral claimed"}},"currentEpoch()":{"returns":{"_0":"current epoch"}},"currentEpochStart()":{"returns":{"_0":"start of the current epoch"}},"decimals()":{"details":"Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5.05` (`505 / 10 ** 2`). Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei. This is the default value returned by this function, unless it's overridden. NOTE: This information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including {IERC20-balanceOf} and {IERC20-transfer}."},"deposit(address,uint256)":{"params":{"amount":"amount of the collateral to deposit","onBehalfOf":"account the deposit is made on behalf of"},"returns":{"depositedAmount":"real amount of the collateral deposited","mintedShares":"amount of the active shares minted"}},"epochAt(uint48)":{"details":"Reverts if the timestamp is less than the start of the epoch 0.","params":{"timestamp":"time point to get the epoch at"},"returns":{"_0":"epoch at the timestamp"}},"getRoleAdmin(bytes32)":{"details":"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}."},"grantRole(bytes32,address)":{"details":"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event."},"hasRole(bytes32,address)":{"details":"Returns `true` if `account` has been granted `role`."},"initialize(uint64,address,bytes)":{"params":{"data":"some data to use","initialVersion":"initial version of the entity","owner":"initial owner of the entity"}},"isInitialized()":{"returns":{"_0":"if the vault is fully initialized"}},"migrate(uint64,bytes)":{"params":{"data":"some data to use","newVersion":"new version of the entity"}},"name()":{"details":"Returns the name of the token."},"nextEpochStart()":{"returns":{"_0":"start of the next epoch"}},"onSlash(uint256,uint48)":{"details":"Only the slasher can call this function.","params":{"amount":"amount to slash","captureTimestamp":"time point when the stake was captured"},"returns":{"slashedAmount":"real amount of the collateral slashed"}},"owner()":{"details":"Returns the address of the current owner."},"previousEpochStart()":{"details":"Reverts if the current epoch is 0.","returns":{"_0":"start of the previous epoch"}},"redeem(address,uint256)":{"params":{"claimer":"account that needs to claim the withdrawal","shares":"amount of the active shares to redeem"},"returns":{"mintedShares":"amount of the epoch withdrawal shares minted","withdrawnAssets":"amount of the collateral withdrawn"}},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner."},"renounceRole(bytes32,address)":{"details":"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `callerConfirmation`. May emit a {RoleRevoked} event."},"revokeRole(bytes32,address)":{"details":"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event."},"setDepositLimit(uint256)":{"details":"Only a DEPOSIT_LIMIT_SET_ROLE holder can call this function.","params":{"limit":"deposit limit (maximum amount of the collateral that can be in the vault simultaneously)"}},"setDepositWhitelist(bool)":{"details":"Only a DEPOSIT_WHITELIST_SET_ROLE holder can call this function.","params":{"status":"if enabling deposit whitelist"}},"setDepositorWhitelistStatus(address,bool)":{"details":"Only a DEPOSITOR_WHITELIST_ROLE holder can call this function.","params":{"account":"account for which the whitelist status is set","status":"if whitelisting the account"}},"setIsDepositLimit(bool)":{"details":"Only a IS_DEPOSIT_LIMIT_SET_ROLE holder can call this function.","params":{"status":"if enabling deposit limit"}},"slashableBalanceOf(address)":{"params":{"account":"account to get the slashable collateral for"},"returns":{"_0":"total amount of the account's slashable collateral"}},"staticDelegateCall(address,bytes)":{"details":"It allows to use this contract's storage on-chain.","params":{"data":"data to make a delegatecall with","target":"address of the contract to make a delegatecall to"}},"supportsInterface(bytes4)":{"details":"See {IERC165-supportsInterface}."},"symbol()":{"details":"Returns the symbol of the token, usually a shorter version of the name."},"totalStake()":{"returns":{"_0":"total amount of the slashable collateral"}},"totalSupply()":{"details":"See {IERC20-totalSupply}."},"transfer(address,uint256)":{"details":"See {IERC20-transfer}. Requirements: - `to` cannot be the zero address. - the caller must have a balance of at least `value`."},"transferFrom(address,address,uint256)":{"details":"See {IERC20-transferFrom}. Emits an {Approval} event indicating the updated allowance. This is not required by the EIP. See the note at the beginning of {ERC20}. NOTE: Does not update the allowance if the current allowance is the maximum `uint256`. Requirements: - `from` and `to` cannot be the zero address. - `from` must have a balance of at least `value`. - the caller must have allowance for ``from``'s tokens of at least `value`."},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."},"version()":{"details":"Starts from 1.","returns":{"_0":"version of the entity"}},"withdraw(address,uint256)":{"params":{"amount":"amount of the collateral to withdraw","claimer":"account that needs to claim the withdrawal"},"returns":{"burnedShares":"amount of the active shares burned","mintedShares":"amount of the epoch withdrawal shares minted"}},"withdrawalsOf(uint256,address)":{"params":{"account":"account to get the withdrawals for","epoch":"epoch to get the withdrawals for the account at"},"returns":{"_0":"withdrawals for the account at the epoch"}}},"version":1},"userdoc":{"kind":"user","methods":{"DELEGATOR_FACTORY()":{"notice":"Get the delegator factory's address."},"DEPOSITOR_WHITELIST_ROLE()":{"notice":"Get a depositor whitelist status setter's role."},"DEPOSIT_LIMIT_SET_ROLE()":{"notice":"Get a deposit limit setter's role."},"DEPOSIT_WHITELIST_SET_ROLE()":{"notice":"Get a deposit whitelist enabler/disabler's role."},"FACTORY()":{"notice":"Get the factory's address."},"IS_DEPOSIT_LIMIT_SET_ROLE()":{"notice":"Get a deposit limit enabler/disabler's role."},"SLASHER_FACTORY()":{"notice":"Get the slasher factory's address."},"activeBalanceOf(address)":{"notice":"Get an active balance for a particular account."},"activeBalanceOfAt(address,uint48,bytes)":{"notice":"Get an active balance for a particular account at a given timestamp using hints."},"activeShares()":{"notice":"Get a total number of active shares in the vault."},"activeSharesAt(uint48,bytes)":{"notice":"Get a total number of active shares in the vault at a given timestamp using a hint."},"activeSharesOf(address)":{"notice":"Get a number of active shares for a particular account."},"activeSharesOfAt(address,uint48,bytes)":{"notice":"Get a total number of active shares for a particular account at a given timestamp using a hint."},"activeStake()":{"notice":"Get a total amount of active stake in the vault."},"activeStakeAt(uint48,bytes)":{"notice":"Get a total amount of active stake in the vault at a given timestamp using a hint."},"burner()":{"notice":"Get a burner to issue debt to (e.g., 0xdEaD or some unwrapper contract)."},"claim(address,uint256)":{"notice":"Claim collateral from the vault."},"claimBatch(address,uint256[])":{"notice":"Claim collateral from the vault for multiple epochs."},"collateral()":{"notice":"Get a vault collateral."},"currentEpoch()":{"notice":"Get a current vault epoch."},"currentEpochStart()":{"notice":"Get a start of the current vault epoch."},"delegator()":{"notice":"Get a delegator (it delegates the vault's stake to networks and operators)."},"deposit(address,uint256)":{"notice":"Deposit collateral into the vault."},"depositLimit()":{"notice":"Get a deposit limit (maximum amount of the active stake that can be in the vault simultaneously)."},"depositWhitelist()":{"notice":"Get if the deposit whitelist is enabled."},"epochAt(uint48)":{"notice":"Get an epoch at a given timestamp."},"epochDuration()":{"notice":"Get a duration of the vault epoch."},"epochDurationInit()":{"notice":"Get a time point of the epoch duration set."},"initialize(uint64,address,bytes)":{"notice":"Initialize this entity contract by using a given data and setting a particular version and owner."},"isDelegatorInitialized()":{"notice":"Get if the delegator is initialized."},"isDepositLimit()":{"notice":"Get if the deposit limit is set."},"isDepositorWhitelisted(address)":{"notice":"Get if a given account is whitelisted as a depositor."},"isInitialized()":{"notice":"Check if the vault is fully initialized (a delegator and a slasher are set)."},"isSlasherInitialized()":{"notice":"Get if the slasher is initialized."},"isWithdrawalsClaimed(uint256,address)":{"notice":"Get if the withdrawals are claimed for a particular account at a given epoch."},"migrate(uint64,bytes)":{"notice":"Migrate this entity to a particular newer version using a given data."},"nextEpochStart()":{"notice":"Get a start of the next vault epoch."},"onSlash(uint256,uint48)":{"notice":"Slash callback for burning collateral."},"previousEpochStart()":{"notice":"Get a start of the previous vault epoch."},"redeem(address,uint256)":{"notice":"Redeem collateral from the vault (it will be claimable after the next epoch)."},"setDepositLimit(uint256)":{"notice":"Set a deposit limit."},"setDepositWhitelist(bool)":{"notice":"Enable/disable deposit whitelist."},"setDepositorWhitelistStatus(address,bool)":{"notice":"Set a depositor whitelist status."},"setIsDepositLimit(bool)":{"notice":"Enable/disable deposit limit."},"slashableBalanceOf(address)":{"notice":"Get a total amount of the collateral that can be slashed for a given account."},"slasher()":{"notice":"Get a slasher (it provides networks a slashing mechanism)."},"staticDelegateCall(address,bytes)":{"notice":"Make a delegatecall from this contract to a given target contract with a particular data (always reverts with a return data)."},"totalStake()":{"notice":"Get a total amount of the collateral that can be slashed."},"version()":{"notice":"Get the entity's version."},"withdraw(address,uint256)":{"notice":"Withdraw collateral from the vault (it will be claimable after the next epoch)."},"withdrawalShares(uint256)":{"notice":"Get a total number of withdrawal shares at a given epoch."},"withdrawalSharesOf(uint256,address)":{"notice":"Get a number of withdrawal shares for a particular account at a given epoch (zero if claimed)."},"withdrawals(uint256)":{"notice":"Get a total amount of the withdrawals at a given epoch."},"withdrawalsOf(uint256,address)":{"notice":"Get withdrawals for a particular account at a given epoch (zero if claimed)."}},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/contracts/vault/VaultTokenized.sol":"VaultTokenized"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol":{"keccak256":"0x6662ec4e5cefca03eeadd073e9469df8d2944bb2ee8ec8f7622c2c46aab5f225","urls":["bzz-raw://4d8544c6f8daa4d1bc215c6a72fe0acdb748664a105b0e5efc19295667521d45","dweb:/ipfs/QmdGWqdnXT8S3RgCR6aV8XHZrsybieMQLLnug1NtpSjEXN"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol":{"keccak256":"0xc163fcf9bb10138631a9ba5564df1fa25db9adff73bd9ee868a8ae1858fe093a","urls":["bzz-raw://9706d43a0124053d9880f6e31a59f31bc0a6a3dc1acd66ce0a16e1111658c5f6","dweb:/ipfs/QmUFmfowzkRwGtDu36cXV9SPTBHJ3n7dG9xQiK5B28jTf2"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b","urls":["bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609","dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/ERC20Upgradeable.sol":{"keccak256":"0x9a1766b1921bf91b3e61eb53c7a6e70725254befd4bdcbbcd3af40bd9f66856f","urls":["bzz-raw://29bf2fa41a172086a665c9738377b93655aa4b1ffda9fe839c8bdf646f185040","dweb:/ipfs/QmeB21qDuo8WPQSrqXJbQmWHKsdeocGNSUWLhCwniVejrt"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol":{"keccak256":"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397","urls":["bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9","dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardUpgradeable.sol":{"keccak256":"0xb44e086e941292cdc7f440de51478493894ef0b1aeccb0c4047445919f667f74","urls":["bzz-raw://942dad22fbdc1669f025540ba63aa3ccfad5f8458fc5d4525b31ebf272e7af45","dweb:/ipfs/Qmdo4X2M82aM3AMoW2kf2jhYkSCyC4T1pHNd6obdsDFnAB"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol":{"keccak256":"0xdaba3f7c42c55b2896353f32bd27d4d5f8bae741b3b05d4c53f67abc4dc47ce8","urls":["bzz-raw://1fa2e61141c602510bcd2cd936ed9561922ac8772a9b9c9a9db091a74e354a45","dweb:/ipfs/QmcHQDDoEBwJmwUbzoVkytvJsBx3KVHYFFnDkvRGWh9Wmh"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol":{"keccak256":"0xb6b36edd6a2999fd243ff226d6cbf84bd71af2432bbd0dfe19392996a1d9cb41","urls":["bzz-raw://1fd2f35495652e57e3f99bc6c510bc5f7dd398a176ea2e72d8ed730aebc6ca26","dweb:/ipfs/QmTQV6X4gkikTib49cho5iDX3JvSQbdsoEChoDwrk3CbbH"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol":{"keccak256":"0x60c65f701957fdd6faea1acb0bb45825791d473693ed9ecb34726fdfaa849dd7","urls":["bzz-raw://ea290300e0efc4d901244949dc4d877fd46e6c5e43dc2b26620e8efab3ab803f","dweb:/ipfs/QmcLLJppxKeJWqHxE2CUkcfhuRTgHSn8J4kijcLa5MYhSt"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70","urls":["bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c","dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0xaa761817f6cd7892fcf158b3c776b34551cde36f48ff9703d53898bc45a94ea2","urls":["bzz-raw://0ad7c8d4d08938c8dfc43d75a148863fb324b80cf53e0a36f7e5a4ac29008850","dweb:/ipfs/QmcrhfPgVNf5mkdhQvy1pMv51TFokD3Y4Wa5WZhFqVh8UV"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol":{"keccak256":"0x6008dabfe393240d73d7dd7688033f72740d570aa422254d29a7dce8568f3aff","urls":["bzz-raw://f5196ec75139918c6c7bb4251b36395e668f1fa6d206beba7e7520e74913940d","dweb:/ipfs/QmSyqjksXxmm2mCG6qRd1yuwLykypkSVBbnBnGqJRcuJMi"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0x37bb49513c49c87c4642a891b13b63571bc87013dde806617aa1efb54605f386","urls":["bzz-raw://b3036b3a83b7c48f96641f2a9002b9f2dcb6a5958dd670894ada21ae8229b3d0","dweb:/ipfs/QmUNfSBdoVtjhETaUJCYcaC7pTMgbhht926tJ2uXJbiVd3"],"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/introspection/IERC165.sol":{"keccak256":"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b","urls":["bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df","dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d","urls":["bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875","dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol":{"keccak256":"0xe19a4d5f31d2861e7344e8e535e2feafb913d806d3e2b5fe7782741a2a7094fe","urls":["bzz-raw://4aed79c0fa6f0546ed02f2f683e8f77f0fd2ed7eb34d8bbf3d373c9a6d95b13c","dweb:/ipfs/QmWqVz6UAVqmnWU5pqYPt1o6iDEZyPaBraAA3rKfTTSfYj"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/Checkpoints.sol":{"keccak256":"0xbdc5e074d7dd6678f67e92b1a51a20226801a407b0e1af3da367c5d1ff4519ad","urls":["bzz-raw://a36cca6b22fff3db16fc789ff6c60eea71d4b156065d4d0c83a0bc5e91a77a8b","dweb:/ipfs/QmYN3exd5AemxjBrN8XMB1p5LbbE16uC3sjbYjwi8AjcGR"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/types/Time.sol":{"keccak256":"0xc7755af115020049e4140f224f9ee88d7e1799ffb0646f37bf0df24bf6213f58","urls":["bzz-raw://7f09bf94d5274334ec021f61a04659db303f31e60460e14b709c9bf187740111","dweb:/ipfs/QmNvgomZYUwFAt4cZbPWAiTeSZQreGehY9BK5xyVJsUttb"],"license":"MIT"},"src/contracts/common/MigratableEntity.sol":{"keccak256":"0x2d736f4dacd5d7e7697503bc426c78b8250fe1694ca157965ec178da6807de58","urls":["bzz-raw://f1237acf96b4b9f9b69156e068eddd726a6e15bd8e87a18dc999cd4ba4da069c","dweb:/ipfs/QmS6M8fiFFSeuJ4ZKKq1z8W7w4ybeHQSy5TLASGoc1LVic"],"license":"BUSL-1.1"},"src/contracts/common/StaticDelegateCallable.sol":{"keccak256":"0x350029aa8955eacaffffaeb58babc5c98e80ebc5c5db388ed17ee6465f4a9d90","urls":["bzz-raw://eb392a8ee9050e0af606897df63e3404e3829e8b688b580663892f9664195764","dweb:/ipfs/QmaXC8jqV8UrrAFkzXTEv2fJF56sy33HhLxAzaRZmUxuXD"],"license":"BUSL-1.1"},"src/contracts/libraries/Checkpoints.sol":{"keccak256":"0xba90097c8bfe0a975499428b5f8ac5569483c7d92ccc28c12d70de416aae040c","urls":["bzz-raw://12f5d93ca94cd06d3147db68993165a58e17903ed53682560de61f3085ad4609","dweb:/ipfs/QmePiuAqvXprMLmFZkGZeGjvGPAvsEDHfCDv7BoQhXu9xE"],"license":"MIT"},"src/contracts/libraries/ERC4626Math.sol":{"keccak256":"0x8441160513c1cbeb1c3b9ee077bcc7e7ce20006b52a77c8dd39ff0ef89699939","urls":["bzz-raw://943f8cc3e26ddf649f465f40c909819f5c864717c4baa339e9e403b9374a4653","dweb:/ipfs/QmXPxi1sUDsrGprZdUgCzoPEosaZMv9ZhygWQ1vAi1phAB"],"license":"MIT"},"src/contracts/vault/Vault.sol":{"keccak256":"0x2ceff6ed3298c4cad144c99fcc79b51cb9397d6ebef00285b915848b476f8c2e","urls":["bzz-raw://11f2fb3581854f3ab6e82e8d4935d9eb510c903a13c3f022346c2956a58f5307","dweb:/ipfs/QmdUnoXoyYoG9SGWyQZCFyLDRUUX3eXyXetkRvw6jxqqBz"],"license":"BUSL-1.1"},"src/contracts/vault/VaultStorage.sol":{"keccak256":"0x57db25b127d77ea3472de53e3a4af3354399655b9268638b99ca5925fa364a56","urls":["bzz-raw://aa763d9a6ec508ae3abfb8228b72b9fd9525279e5135d4962e79ff059feb1173","dweb:/ipfs/QmcbDR6E9wyEpu6V2FkEC4hnWy47zXA9LSKJde6zSGd33Q"],"license":"BUSL-1.1"},"src/contracts/vault/VaultTokenized.sol":{"keccak256":"0xa9475a46a3e32b35e48bc37fdaf08e1a586fb7c9667ac5e014b716a08873c46d","urls":["bzz-raw://0a292a4f35bc43ce7174b36e2d016bc44d6737e94b41e48cb5dd1bb1e4821e48","dweb:/ipfs/QmduHZe2REPnygiWvQRV82yD4tYHdwX33FkYRFm1UZoXBA"],"license":"BUSL-1.1"},"src/interfaces/common/IEntity.sol":{"keccak256":"0x8ef4b63d6da63489778ccd5f8d13ebdd527dd4b62730b2c616df5af7474d2d21","urls":["bzz-raw://5a8d69576a9219d85c50816a18ad53a4d53cfcb27ed38b8cccc808dc2734b71b","dweb:/ipfs/QmYVN3P4Q4REvBWJ97TbAcaxm3uyB2anV6NSGa6ZtSwcEv"],"license":"MIT"},"src/interfaces/common/IMigratableEntity.sol":{"keccak256":"0x8f5f2809f3afbe8ebfbb365dd7b57b4dd3b6f9943a6187eaf648d45895b8e3c4","urls":["bzz-raw://0ffe640537d539e7a4fde70d30d3e4c57f4ba9c2c25c450cea713aae38e8fd5c","dweb:/ipfs/QmSUTGzvdcn1R1KB7tLThMRtESsfPbeXDhhhKWGtntzBds"],"license":"MIT"},"src/interfaces/common/IRegistry.sol":{"keccak256":"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb","urls":["bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014","dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK"],"license":"MIT"},"src/interfaces/common/IStaticDelegateCallable.sol":{"keccak256":"0xa335d4e81b9071b7de66ef92b43ff20671d86516eb1be46fef29a3483cd3f5d5","urls":["bzz-raw://d464b9db863c14c05547d2b23352f2e9b7b784799cf09f6bbc4906a2a74e3516","dweb:/ipfs/QmUVWzFvJz7eEbDQKiFTTzwi7TEbjcs3VmwdM4kuptAKvi"],"license":"MIT"},"src/interfaces/delegator/IBaseDelegator.sol":{"keccak256":"0x96bb312f032e17accce3f8f80936d99468029d6b37c9ca74acdb4b026a0148ee","urls":["bzz-raw://2a66dcb5b7d1a6ef6a363431ea98ebd78bc4fdd3d7a134d9b542dc66e7d025c2","dweb:/ipfs/QmRhTPLd2ZAyRHmJUFUcWKs9b3if49QY17LYZuRqWmghw8"],"license":"MIT"},"src/interfaces/slasher/IBaseSlasher.sol":{"keccak256":"0x7c82528b445659c313ab77335c407b0b6efe5e79027187bb287f7bc74202b404","urls":["bzz-raw://0274c90aa5df1aa6bb470a6aab53992fb14fd7e5472c9430416505b29647d9cf","dweb:/ipfs/QmckbmJLDetPemVzCnnGcKYWAZV2BRFXGDsjiaec8jkHxx"],"license":"MIT"},"src/interfaces/vault/IVault.sol":{"keccak256":"0xffee01d383cd4e1a5530c614bf4360c1ef070c288abec9da1eb531b51bc07235","urls":["bzz-raw://04f0046cac285d8ec44ebbb1f79dc94fab4495767190cad8364fbc1fafaadfb9","dweb:/ipfs/QmUawAunwzXfCyShWfhKeThAgKtqe51hmrxvrXvM772M2R"],"license":"MIT"},"src/interfaces/vault/IVaultStorage.sol":{"keccak256":"0x592626f13754194f83047135de19229c49390bd59e34659b1bb38be71d973a22","urls":["bzz-raw://06a6a9dfddd05e580b32bebe2cff4f63ba26a653180676d58225dd30d9c89d3e","dweb:/ipfs/QmdgzBeY6Sxo8mGtyBxtv1tM1c2kU6J6zjeRd7vuXm4DU6"],"license":"MIT"},"src/interfaces/vault/IVaultTokenized.sol":{"keccak256":"0xb723560b49c30b38130634388a0550c9e07596f92a58edbfa2415e690024e0c4","urls":["bzz-raw://dc9dde973a0bbf0adbc305462a796fa3b2e5be9daa1984e4f3e4f48e3c254f39","dweb:/ipfs/QmQydZsr7ESw7ZSe9mqaxZ3dycvru8ZFVwrL9pmVnpyd7c"],"license":"MIT"}},"version":1},"id":97} \ No newline at end of file diff --git a/out/VetoSlasher.sol/VetoSlasher.json b/out/VetoSlasher.sol/VetoSlasher.json index ca710649..3f6885e5 100644 --- a/out/VetoSlasher.sol/VetoSlasher.json +++ b/out/VetoSlasher.sol/VetoSlasher.json @@ -1 +1 @@ -{"abi":[{"type":"constructor","inputs":[{"name":"vaultFactory","type":"address","internalType":"address"},{"name":"networkMiddlewareService","type":"address","internalType":"address"},{"name":"networkRegistry","type":"address","internalType":"address"},{"name":"slasherFactory","type":"address","internalType":"address"},{"name":"entityType","type":"uint64","internalType":"uint64"}],"stateMutability":"nonpayable"},{"type":"function","name":"BURNER_GAS_LIMIT","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"BURNER_RESERVE","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"FACTORY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"NETWORK_MIDDLEWARE_SERVICE","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"NETWORK_REGISTRY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"TYPE","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"VAULT_FACTORY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"cumulativeSlash","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"cumulativeSlashAt","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"timestamp","type":"uint48","internalType":"uint48"},{"name":"hint","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"executeSlash","inputs":[{"name":"slashIndex","type":"uint256","internalType":"uint256"},{"name":"hints","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"slashedAmount","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"initialize","inputs":[{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"isBurnerHook","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"latestSlashedCaptureTimestamp","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"value","type":"uint48","internalType":"uint48"}],"stateMutability":"view"},{"type":"function","name":"requestSlash","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"captureTimestamp","type":"uint48","internalType":"uint48"},{"name":"hints","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"slashIndex","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"resolver","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"hint","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"resolverAt","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"timestamp","type":"uint48","internalType":"uint48"},{"name":"hint","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"resolverSetEpochsDelay","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"setResolver","inputs":[{"name":"identifier","type":"uint96","internalType":"uint96"},{"name":"resolver_","type":"address","internalType":"address"},{"name":"hints","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"slashRequests","inputs":[{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"captureTimestamp","type":"uint48","internalType":"uint48"},{"name":"vetoDeadline","type":"uint48","internalType":"uint48"},{"name":"completed","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"slashRequestsLength","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"slashableStake","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"captureTimestamp","type":"uint48","internalType":"uint48"},{"name":"hints","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"staticDelegateCall","inputs":[{"name":"target","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"vault","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"vetoDuration","inputs":[],"outputs":[{"name":"","type":"uint48","internalType":"uint48"}],"stateMutability":"view"},{"type":"function","name":"vetoSlash","inputs":[{"name":"slashIndex","type":"uint256","internalType":"uint256"},{"name":"hints","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"ExecuteSlash","inputs":[{"name":"slashIndex","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"slashedAmount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"RequestSlash","inputs":[{"name":"slashIndex","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"subnetwork","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"slashAmount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"captureTimestamp","type":"uint48","indexed":false,"internalType":"uint48"},{"name":"vetoDeadline","type":"uint48","indexed":false,"internalType":"uint48"}],"anonymous":false},{"type":"event","name":"SetResolver","inputs":[{"name":"subnetwork","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"resolver","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"VetoSlash","inputs":[{"name":"slashIndex","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"resolver","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"error","name":"AlreadySet","inputs":[]},{"type":"error","name":"CheckpointUnorderedInsertion","inputs":[]},{"type":"error","name":"InsufficientBurnerGas","inputs":[]},{"type":"error","name":"InsufficientSlash","inputs":[]},{"type":"error","name":"InvalidCaptureTimestamp","inputs":[]},{"type":"error","name":"InvalidInitialization","inputs":[]},{"type":"error","name":"InvalidResolverSetEpochsDelay","inputs":[]},{"type":"error","name":"InvalidVetoDuration","inputs":[]},{"type":"error","name":"NoBurner","inputs":[]},{"type":"error","name":"NoResolver","inputs":[]},{"type":"error","name":"NotInitialized","inputs":[]},{"type":"error","name":"NotInitializing","inputs":[]},{"type":"error","name":"NotNetwork","inputs":[]},{"type":"error","name":"NotNetworkMiddleware","inputs":[]},{"type":"error","name":"NotResolver","inputs":[]},{"type":"error","name":"NotVault","inputs":[]},{"type":"error","name":"ReentrancyGuardReentrantCall","inputs":[]},{"type":"error","name":"SafeCastOverflowedUintDowncast","inputs":[{"name":"bits","type":"uint8","internalType":"uint8"},{"name":"value","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"SlashPeriodEnded","inputs":[]},{"type":"error","name":"SlashRequestCompleted","inputs":[]},{"type":"error","name":"SlashRequestNotExist","inputs":[]},{"type":"error","name":"VetoPeriodEnded","inputs":[]},{"type":"error","name":"VetoPeriodNotEnded","inputs":[]}],"bytecode":{"object":"0x6101203461017757601f612f8038819003918201601f19168301916001600160401b03918284118585101761017b578160a092869260409687528339810103126101775761004c8361018f565b6100586020850161018f565b9161006484860161018f565b9460806100736060830161018f565b910151918083168303610177577ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a009081549060ff82891c16610166578080831603610122575b50505060805260a05260c05260e05261010091825251612ddc91826101a483396080518261032a015260a0518281816113090152612445015260c0518281816101cc0152611b8e015260e0518281816102e60152611d180152518181816109ec015261135f0152f35b6001600160401b0319909116811790915585519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a15f80806100b9565b875163f92ee8a960e01b8152600490fd5b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b51906001600160a01b03821682036101775756fe60806040526004361015610011575f80fd5b5f3560e01c8063103f2907146101a45780631a2be2c41461019f578063267de1f31461019a5780632964f8dc146101955780632c9d45b3146101905780632dd310001461018b57806331ce4dfe1461018657806334d098ea14610181578063439fab911461017c578063545ce389146101775780638f42f9ab146101725780639168f9d21461016d5780639a896551146101685780639f86fd8514610163578063aa8e64891461015e578063aab3595f14610159578063b94c386e14610154578063bb24fe8a1461014f578063bc6eac5b1461014a578063c0cd7c3e14610145578063cd05b8a114610140578063d5c24e1a1461013b578063e054e08b14610136578063f9268d18146101315763fbfa77cf1461012c575f80fd5b611596565b611428565b611403565b6113e6565b61138e565b61134a565b61132d565b6112ea565b610f9e565b610f46565b610f08565b610e02565b610d77565b61094c565b61092f565b610695565b61055d565b61050c565b6104a3565b610315565b6102d1565b6102b5565b610260565b61020c565b6101b7565b5f9103126101b357565b5f80fd5b346101b3575f3660031901126101b3576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b6001600160a01b038116036101b357565b346101b35760403660031901126101b3576020610258610253602435610231816101fb565b6004355f526002845260405f209060018060a01b03165f5260205260405f2090565b61199e565b604051908152f35b346101b35760403660031901126101b357602065ffffffffffff6102ab602435610289816101fb565b6004355f526001845260405f209060018060a01b03165f5260205260405f2090565b5416604051908152f35b346101b3575f3660031901126101b3576020604051614e208152f35b346101b3575f3660031901126101b3576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346101b3575f3660031901126101b3576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b65ffffffffffff8116036101b357565b634e487b7160e01b5f52604160045260245ffd5b602081019081106001600160401b0382111761039857604052565b610369565b606081019081106001600160401b0382111761039857604052565b604081019081106001600160401b0382111761039857604052565b6001600160401b03811161039857604052565b90601f801991011681019081106001600160401b0382111761039857604052565b6040519060c082018281106001600160401b0382111761039857604052565b604051906104338261039d565b565b60405190610433826103b8565b6001600160401b03811161039857601f01601f191660200190565b81601f820112156101b35780359061047482610442565b9261048260405194856103e6565b828452602083830101116101b357815f926020809301838601378301015290565b346101b35760603660031901126101b3576024356104c081610359565b604435906001600160401b0382116101b3576105036104e5602093369060040161045d565b6004355f90815260068552604090206001600160a01b039390611a1e565b16604051908152f35b346101b3575f3660031901126101b357602060ff5f5460a01c166040519015158152f35b9181601f840112156101b3578235916001600160401b0383116101b357602083818601950101116101b357565b346101b35760203660031901126101b3576001600160401b036004358181116101b35761058e903690600401610530565b5f80516020612d87833981519152549260ff8460401c161593168015908161068d575b6001149081610683575b15908161067a575b50610668575f80516020612d87833981519152805467ffffffffffffffff191660011790556105f6918361064457611b57565b6105fc57005b5f80516020612d87833981519152805460ff60401b19169055604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a1005b5f80516020612d87833981519152805460ff60401b1916600160401b179055611b57565b60405163f92ee8a960e01b8152600490fd5b9050155f6105c3565b303b1591506105bb565b8491506105b1565b346101b35760a03660031901126101b357600460243581356106b6826101fb565b606435916106c383610359565b6084356001600160401b0381116101b3576106e19036908601610530565b93906106eb611cc1565b6106f484611cf0565b6106fc6115e2565b9480610919575b505061070e42611dd8565b610728610721875465ffffffffffff1690565b8092611657565b5f5490959061074d90610741906001600160a01b031681565b6001600160a01b031690565b958760206040988951928380926327f843b560e11b82525afa80156109145761078c92610781925f926108e3575b506116ad565b65ffffffffffff1690565b65ffffffffffff84169081109081156108cd575b506108bd576107b56107be9151848688611fc5565b50604435611d87565b9586156108af576108ab610884878988887f3cb7f4ff6cecf74cee0eb9ae3ebf8933fa60a53014cce52f96da72a78dba8464896108038a6107fe42611dd8565b611657565b92600354978894610854610815610407565b8881526001600160a01b0385166020820152808b018a905265ffffffffffff8616606082015265ffffffffffff831660808201525f60a08201526116d8565b885197885265ffffffffffff938416602089015290921660408701526001600160a01b0316949081906060820190565b0390a461089d60015f80516020612d6783398151915255565b519081529081906020820190565b0390f35b855163167f871760e31b8152fd5b8551631357ac9160e11b81528790fd5b90506108db61078142611dd8565b11155f6107a0565b61090691925060203d60201161090d575b6108fe81836103e6565b810190611676565b905f61077b565b503d6108f4565b61168b565b6109279295508101906115f5565b925f80610703565b346101b3575f3660031901126101b3576020600354604051908152f35b346101b35760603660031901126101b35760048035906bffffffffffffffffffffffff821682036101b357602435610983816101fb565b6044356001600160401b0381116101b3576109a19036908401610530565b906109aa611cc1565b6109b26115e2565b5081610d12575b5050604080516302910f8b60e31b8152338185019081526001600160a01b0395929491602091829082908190830103818a7f0000000000000000000000000000000000000000000000000000000000000000165afa908115610914575f91610ce5575b5015610cd6575f54610a57906001600160a01b0316936bffffffffffffffffffffffff166bffffffffffffffffffffffff193360601b161790565b95610a72610a6d885f52600660205260405f2090565b6128a9565b50949015610c6c57610a8661078142611dd8565b65ffffffffffff9586161115610c3657610ab0610aab895f52600660205260405f2090565b611d99565b505b610ad5610741610741610741610ad08c5f52600660205260405f2090565b612663565b91808716928303610b41575b505050505050610b26907f7b0b759b513b299fd2811f51926dca8854222a675557e8d544ce0933bf5b7570925b516001600160a01b0390911681529081906020820190565b0390a2610b3f60015f80516020612d6783398151915255565b005b610b588998959796985f52600660205260405f2090565b911692845163186a323160e21b815281818981885afa908115610914575f91610c19575b5081600554958751998a80926327f843b560e11b82525afa9081156109145789610be1610bf3977f7b0b759b513b299fd2811f51926dca8854222a675557e8d544ce0933bf5b75709c610be895610b269d610bed985f92610bfc575b505016906117e0565b9116611801565b611dd8565b90612b09565b82958495610ae1565b610c129250803d1061090d576108fe81836103e6565b5f80610bd8565b610c309150823d841161090d576108fe81836103e6565b5f610b7c565b610c54610741610741610741610ad08c5f52600660205260405f2090565b82871603610ab257865163a741a04560e01b81528490fd5b5093949385169250508115610cc8575091610b2691610cc17f7b0b759b513b299fd2811f51926dca8854222a675557e8d544ce0933bf5b757094610cb8875f52600660205260405f2090565b610bed42611dd8565b5050610b0e565b825163a741a04560e01b8152fd5b5083516323d53b9760e21b8152fd5b610d059150823d8411610d0b575b610cfd81836103e6565b8101906117cc565b5f610a1c565b503d610cf3565b610d1e918101906115f5565b505f806109b9565b634e487b7160e01b5f52603260045260245ffd5b600354811015610d725760035f5260021b7fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b01905f90565b610d26565b346101b35760203660031901126101b3576004356003548110156101b357610d9e90610d3a565b50805460018201546002830154600390930154604080519384526001600160a01b0390921660208401529082019290925265ffffffffffff808316606080840191909152603084901c90911660808301529190911c60ff16151560a082015260c090f35b346101b3576040806003193601126101b357600435610e20816101fb565b602435906001600160401b0382116101b3575f8091610e46610eaa943690600401610530565b908187519283928337810184815203915af43d15610eb257610e9c3d610e6b81610442565b90610e78865192836103e6565b81523d5f602083013e5b84519485931515602085015280840152606083019061180e565b03601f1981018352826103e6565b805190602001fd5b610e9c6060610e82565b9060806003198301126101b35760043591602435610ed9816101fb565b91604435610ee681610359565b91606435906001600160401b0382116101b357610f059160040161045d565b90565b346101b3576020610258610f41610f1e36610ebc565b939190925f526002865260405f209060018060a01b03165f5260205260405f2090565b611e0a565b346101b3576020610f62610f5936610ebc565b92919091611fc5565b50604051908152f35b9060406003198301126101b35760043591602435906001600160401b0382116101b357610f9a91600401610530565b9091565b346101b357610fac36610f6b565b9190610fb6611cc1565b610fbe61185e565b92806112d4575b50506003548110156112c257610fda81610d3a565b5090815490610fe882611cf0565b6003830180549365ffffffffffff9384861660018060a01b0361100d895183856115bd565b16151580611297575b8061127e575b61126c576110328161102d42611dd8565b6116ad565b5f5461104890610741906001600160a01b031681565b96600460206040998a51928380926327f843b560e11b82525afa80156109145782915f9161124d575b501691161161123c57600183018054909861109c93929188906001600160a01b031691015192611fc5565b906110ab816002850154611d87565b96871561122b5760601c60ff1661121a57926111d36111c6899461119e61118b8b9687876108ab9f6111998f9d8f9e6111d99f6110f586600160601b60ff60601b19825416179055565b8a54855461111791906001600160a01b0316885465ffffffffffff16916121f5565b8a5485546111309189916001600160a01b031690612275565b8a54945461114e906001600160a01b0316965465ffffffffffff1690565b97611157610426565b9384526020840152818301525196879160208301919091604080606083019480518452602081015160208501520151910152565b03601f1981018752866103e6565b6123e1565b6111b76111b1855465ffffffffffff1690565b866124ea565b5494546001600160a01b031690565b915465ffffffffffff1690565b92612567565b81518381527f5cc28df3b54da9d06f805d87616ebf969c81310f2aa8369cb14ca50f815d411190602090a261089d60015f80516020612d6783398151915255565b8551633428e90760e01b8152600490fd5b865163167f871760e31b8152600490fd5b8551639ea153eb60e01b8152600490fd5b611266915060203d60201161090d576108fe81836103e6565b5f611071565b60405163b62b15c760e01b8152600490fd5b5061128b61078142611dd8565b868860301c161161101c565b506112bb6107416112af6112aa42611dd8565b611696565b60208b015190856115bd565b1515611016565b604051637822972360e11b8152600490fd5b6112e292935081019061187d565b905f80610fc5565b346101b3575f3660031901126101b35760206040516001600160401b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b346101b3575f3660031901126101b3576020600554604051908152f35b346101b3575f3660031901126101b3576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346101b35760403660031901126101b3576024356001600160401b0381116101b3576113d46113c3602092369060040161045d565b6113cc42611dd8565b6004356115bd565b6040516001600160a01b039091168152f35b346101b3575f3660031901126101b3576020604051620249f08152f35b346101b3575f3660031901126101b357602065ffffffffffff60045416604051908152f35b346101b35761143636610f6b565b9061143f611cc1565b611447611905565b9180611582575b50506003548210156112c25761146382610d3a565b506003815491019182549165ffffffffffff9160018060a01b0361148b8251858716856115bd565b16918215918215611559575b5050611547573303611535576114af61078142611dd8565b908260301c1611156115245760601c60ff1661151257805460ff60601b1916600160601b17905533907f7d3d269c851b72257a5194a401d151902e9be4347d555996dcff3ff86a077e925f80a3610b3f60015f80516020612d6783398151915255565b604051633428e90760e01b8152600490fd5b60405162c457e560e81b8152600490fd5b604051635d154fe160e11b8152600490fd5b60405163dd1ebd9d60e01b8152600490fd5b61157a9250906107419160206115716112aa42611dd8565b910151916115bd565b155f80611497565b61158f925081019061191e565b5f8061144e565b346101b3575f3660031901126101b3575f546040516001600160a01b039091168152602090f35b5f9081526006602052604090206001600160a01b03926115de929091611a1e565b1690565b604051906115ef8261037d565b60608252565b906020828203126101b35781356001600160401b03928382116101b35701906020828203126101b3576040519261162b8461037d565b82359081116101b35761163e920161045d565b815290565b634e487b7160e01b5f52601160045260245ffd5b91909165ffffffffffff8080941691160191821161167157565b611643565b908160209103126101b35751610f0581610359565b6040513d5f823e3d90fd5b65ffffffffffff9081165f19019190821161167157565b65ffffffffffff918216908216039190821161167157565b634e487b7160e01b5f525f60045260245ffd5b600354600160401b811015610398578060016116f79201600355610d3a565b9190916117ba578051825560208101516001830180546001600160a01b0319166001600160a01b0392909216919091179055610433916117a09060a09060039060408501516002820155019261176d65ffffffffffff606083015116859065ffffffffffff1665ffffffffffff19825416179055565b60808101516bffffffffffff00000000000085549160301b16906bffffffffffff00000000000019161784550151151590565b815460ff60601b191690151560601b60ff60601b16179055565b6116c5565b519081151582036101b357565b908160209103126101b357610f05906117bf565b8181029291811591840414171561167157565b906001820180921161167157565b9190820180921161167157565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b5f9081526002602090815260408083206001600160a01b03909416835292905220610f05929190611e0a565b6040519061186b8261039d565b60606040838281528260208201520152565b906020828203126101b35781356001600160401b03928382116101b35701906060828203126101b357604051926118b38461039d565b82358181116101b357826118c891850161045d565b845260208301358181116101b357826118e291850161045d565b602085015260408301359081116101b3576118fd920161045d565b604082015290565b60405190611912826103b8565b60606020838281520152565b906020828203126101b35781356001600160401b03928382116101b35701906040828203126101b35760405192611954846103b8565b82358181116101b3578261196991850161045d565b845260208301359081116101b357611981920161045d565b602082015290565b8054821015610d72575f5260205f2001905f90565b6119a781612663565b6001600160d01b038116156119cc5760016119c29201611989565b90549060031b1c90565b50505f90565b908160209103126101b3575163ffffffff811681036101b35790565b5f1981019190821161167157565b9190820391821161167157565b90600163ffffffff8093160191821161167157565b91805115611b025780602080611a39935183010191016119d2565b91611a4483826126a3565b92611a55845165ffffffffffff1690565b9065ffffffffffff8085169216828114611ae95782119182611a94575b5050611a8257610f0592506129b5565b5050602001516001600160d01b031690565b909150611aa183546119ee565b63ffffffff831614918215611aba575b50505f80611a72565b611ae1919250611ad5611acf61078192611a09565b856126a3565b5165ffffffffffff1690565b115f80611ab1565b50505050602091909101516001600160d01b0316905090565b50610f05916129b5565b9190916040818403126101b3578035611b24816101fb565b9260208201356001600160401b0381116101b357610f05920161045d565b908160209103126101b35751610f05816101fb565b611b6391810190611b0c565b6040516302910f8b60e31b81526001600160a01b0392831660048201819052929160209182816024817f000000000000000000000000000000000000000000000000000000000000000088165afa908115610914575f91611ca4575b5015611c925781611bf4600492611bd46126f7565b5f80546001600160a01b0319166001600160a01b03891617905586612784565b94604051928380926313c085b760e11b82525afa918215610914575f92611c65575b5050161580611c5b575b611c4957516104339015155f805460ff60a01b191691151560a01b60ff60a01b16919091179055565b60405163d2420f5960e01b8152600490fd5b5080511515611c20565b611c849250803d10611c8b575b611c7c81836103e6565b810190611b42565b5f80611c16565b503d611c72565b6040516362df054560e01b8152600490fd5b611cbb9150833d8511610d0b57610cfd81836103e6565b5f611bbf565b5f80516020612d678339815191526002815414611cde5760029055565b604051633ee5aeb560e01b8152600490fd5b604051635daf681960e11b815260609190911c60048201526001600160a01b036020826024817f000000000000000000000000000000000000000000000000000000000000000085165afa918215610914575f92611d66575b5033911603611d5457565b60405163227bf64d60e01b8152600490fd5b611d8091925060203d602011611c8b57611c7c81836103e6565b905f611d49565b9080821015611d94575090565b905090565b90611da382612663565b9180548015611dc4575f190190611dba8282611989565b6117ba575f905555565b634e487b7160e01b5f52603160045260245ffd5b65ffffffffffff90818111611deb571690565b604490604051906306dfcc6560e41b8252603060048301526024820152fd5b91805115611ecc5780602080611e25935183010191016119d2565b91611e308382612903565b92611e41845165ffffffffffff1690565b9065ffffffffffff8085169216828114611ec05782119182611e77575b5050611e6e57610f0592506128f8565b50506020015190565b909150611e8483546119ee565b63ffffffff831614918215611e9d575b50505f80611e5e565b611eb8919250611ad5611eb261078192611a09565b85612903565b115f80611e94565b50505050506020015190565b50610f05916128f8565b81601f820112156101b357805190611eed82610442565b92611efb60405194856103e6565b828452602083830101116101b357815f9260208093018386015e8301015290565b906020828203126101b35781516001600160401b03928382116101b35701906040828203126101b35760405192611f52846103b8565b82518181116101b35782611f67918501611ed6565b845260208301519081116101b3576119819201611ed6565b908160209103126101b3575190565b9081526001600160a01b03909116602082015265ffffffffffff9091166040820152608060608201819052610f059291019061180e565b92611fce611905565b908051806121db575b5050611fe242611dd8565b5f54909490611ffb90610741906001600160a01b031681565b93604051956327f843b560e11b875260209687816004818a5afa80156109145761202f92610781925f926121c357506116ad565b65ffffffffffff82169081109081156121ac575b811561217b575b5061216f578560049560405196878092630ce9b79360e41b82525afa9485156109145761209c9587915f91612152575b50845190604051808099819463e02f693760e01b8352878b8a60048601611f8e565b03916001600160a01b03165afa9384156109145761210e955f95612111575b509261210385936121099361210396869a6120fa610253836120e5875f52600260205260405f2090565b9060018060a01b03165f5260205260405f2090565b95015192611832565b906119fc565b611d87565b91565b61210992955061210394919361213f612103928a3d8c1161214b575b61213781836103e6565b810190611f7f565b969350939194506120bb565b503d61212d565b6121699150823d8411611c8b57611c7c81836103e6565b5f61207a565b5050505050505f905f90565b90506121a5610781612199876120e5875f52600160205260405f2090565b5465ffffffffffff1690565b115f61204a565b90506121ba61078142611dd8565b81101590612043565b6109069192508a3d8c1161090d576108fe81836103e6565b6121ee9250602080918301019101611f1c565b5f80611fd7565b919091805f52600160205265ffffffffffff806122258560405f209060018060a01b03165f5260205260405f2090565b54169083161161223457505050565b6104339261225c915f52600160205260405f209060018060a01b03165f5260205260405f2090565b9065ffffffffffff1665ffffffffffff19825416179055565b9190825f5260026020526122cd6102536122a28360405f209060018060a01b03165f5260205260405f2090565b926122ac42611dd8565b955f52600260205260405f209060018060a01b03165f5260205260405f2090565b918201809211611671576001810190815415612371575b6122ed816128a9565b5094908354956122fc8461199e565b508161235c575b501561233b5750505f198301928311611671576104339261232391611989565b90919082549060031b91821b915f19901b1916179055565b61043394612355926001600160d01b039091169190612b09565b5050612992565b65ffffffffffff83811691161490505f612303565b61237a82612965565b6122e4565b60606020610f05938184526001600160401b0381511682850152015191604080820152019061180e565b919360a093610f05969565ffffffffffff938552600180871b031660208501526040840152166060820152816080820152019061180e565b929390600460206123fe6107416107415f5460018060a01b031690565b604051630ce9b79360e41b815292839182905afa90811561091457610e9c9161247c915f916124cb575b506001600160a01b03169361243b610435565b6001600160401b037f00000000000000000000000000000000000000000000000000000000000000001681529060208201526040519283916020830161237f565b823b156101b3575f946124a786926040519889978896879563724ab0f760e11b8752600487016123a9565b03925af18015610914576124b85750565b806124c5610433926103d3565b806101a9565b6124e4915060203d602011611c8b57611c7c81836103e6565b5f612428565b65ffffffffffff9160446020925f60018060a01b038154166040519687958694631c9e38c760e21b865260048601521660248401525af180156109145761252e5750565b6125469060203d60201161214b5761213781836103e6565b50565b8115612553570490565b634e487b7160e01b5f52601260045260245ffd5b92905f549060ff8260a01c1661257f575b5050505050565b6040516313c085b760e11b815291602090839060049082906001600160a01b03165afa918215610914575f9261263c575b5060405163065c1e0360e01b6020820190815260248201969096526001600160a01b039091166044820152606481019390935265ffffffffffff90911660848301526126098260a481015b03601f1981018452836103e6565b6202a15c5a1061262a575f928380935192620249f0f1505f80808080612578565b604051632153f33560e21b8152600490fd5b612609925061265c6125fb9160203d602011611c8b57611c7c81836103e6565b92506125b0565b8054806126705750505f90565b5f19918183810111611671575f5260205f2001015460301c90565b60405190612698826103b8565b5f6020838281520152565b6126c8916126c2916126b361268b565b506126bc61268b565b50611989565b50612885565b65ffffffffffff81511690602060018060d01b0391015116604051916126ed836103b8565b8252602082015290565b6126ff612a94565b612707612a94565b60015f80516020612d6783398151915255565b604051906127278261037d565b5f8252565b80910390606082126101b3576020604051926127478461039d565b126101b357604090815161275a8161037d565b612763826117bf565b81528352602081015161277581610359565b60208401520151604082015290565b9060049061279061271a565b5080516127a760209283808094830101910161272c565b6040516327f843b560e11b815290949093849182906001600160a01b03165afa918215610914575f92612866575b508201906127e9825165ffffffffffff1690565b65ffffffffffff91821691161015612854576040820160038151106128425761283861281e61283e935165ffffffffffff1690565b65ffffffffffff1665ffffffffffff196004541617600455565b51600555565b5190565b6040516354f778f360e01b8152600490fd5b6040516367d5e3df60e11b8152600490fd5b8161287e9293503d841161090d576108fe81836103e6565b905f6127d5565b90604051612892816103b8565b915465ffffffffffff8116835260301c6020830152565b8054806128ba5750505f905f905f90565b5f19908082810111611671576128d7925f5260205f200101612885565b9065ffffffffffff82511691602060018060d01b0391015116906001929190565b906119a790826129b5565b906129266126c26129479261291661268b565b5061291f61268b565b5084611989565b91600165ffffffffffff845116936020828060d01b03910151169101611989565b90549060405192612957846103b8565b835260031b1c602082015290565b8054600160401b8110156103985761298291600182018155611989565b8154905f199060031b1b19169055565b90815491600160401b831015610398578261232391600161043395018155611989565b908154905f918060058111612a4b575b50915b8281106129fe575050806129dc5750505f90565b610f05916129ec6129f7926119ee565b905f5260205f200190565b5460301c90565b90918082169080831860011c820180921161167157845f5265ffffffffffff808360205f20015416908516105f14612a395750915b906129c8565b929150612a45906117f3565b90612a33565b90612a5582612c28565b820391821161167157845f5265ffffffffffff808360205f20015416908416105f14612a8357505b5f6129c5565b9250612a8e906117f3565b91612a7d565b60ff5f80516020612d878339815191525460401c1615612ab057565b604051631afcd79f60e31b8152600490fd5b8054600160401b81101561039857612adf91600182018155611989565b6117ba57815160209092015160301b65ffffffffffff191665ffffffffffff909216919091179055565b805492939291908215612bff57612b35612b30612b25856119ee565b835f5260205f200190565b612885565b90612b46825165ffffffffffff1690565b65ffffffffffff84811691168110612bed57612bb1946020948892612b74610781875165ffffffffffff1690565b03612bb55750612ba3926129ec612b8a926119ee565b9065ffffffffffff82549181199060301b169116179055565b01516001600160d01b031690565b9190565b915050612be891612bd5612bc7610435565b65ffffffffffff9093168352565b6001600160d01b03881682860152612ac2565b612ba3565b604051632520601d60e01b8152600490fd5b612c239250612c0f612bc7610435565b6001600160d01b0385166020830152612ac2565b5f9190565b8015612d615780612cfa612cf3612ce9612cdf612cd5612ccb612cc1612cb76001610f059a5f908b60801c80612d55575b508060401c80612d48575b508060201c80612d3b575b508060101c80612d2e575b508060081c80612d21575b508060041c80612d14575b508060021c80612d07575b50821c612d00575b811c1b612cb0818b612549565b0160011c90565b612cb0818a612549565b612cb08189612549565b612cb08188612549565b612cb08187612549565b612cb08186612549565b612cb08185612549565b8092612549565b90611d87565b8101612ca3565b600291509101905f612c9b565b600491509101905f612c90565b600891509101905f612c85565b601091509101905f612c7a565b602091509101905f612c6f565b604091509101905f612c64565b9150506080905f612c59565b505f9056fe9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a2646970667358221220a1301b9e117701c6e52f7271afc2f2c3e627b96bd0329f3eeaa67543396e82ed64736f6c63430008190033","sourceMap":"707:8662:99:-:0;;;;;;;;;;;;;-1:-1:-1;;707:8662:99;;;;-1:-1:-1;;;;;707:8662:99;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;8837:64:26;707:8662:99;;;;;;;;;7896:76:26;;707:8662:99;;;;7985:34:26;7981:146;;-1:-1:-1;525:17:74;;;707:8662:99;525:17:74;707:8662:99;552:12:74;2353:28:97;;2391:53;;1620:34:99;;;;707:8662;;;;;;;;;;;;;;;;;;;;;;;;2353:28:97;707:8662:99;;;;;;;;;;2391:53:97;707:8662:99;;;;;;;;;;;;;;;;;;;;;7981:146:26;-1:-1:-1;;;;;;707:8662:99;;;;;;;;;;;;;8087:29:26;;707:8662:99;;8087:29:26;7981:146;;;;;7896:76;707:8662:99;;-1:-1:-1;;;7938:23:26;;;;;707:8662:99;-1:-1:-1;707:8662:99;;;;;;-1:-1:-1;707:8662:99;;;;;-1:-1:-1;707:8662:99;;;;-1:-1:-1;;;;;707:8662:99;;;;;;:::o","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361015610011575f80fd5b5f3560e01c8063103f2907146101a45780631a2be2c41461019f578063267de1f31461019a5780632964f8dc146101955780632c9d45b3146101905780632dd310001461018b57806331ce4dfe1461018657806334d098ea14610181578063439fab911461017c578063545ce389146101775780638f42f9ab146101725780639168f9d21461016d5780639a896551146101685780639f86fd8514610163578063aa8e64891461015e578063aab3595f14610159578063b94c386e14610154578063bb24fe8a1461014f578063bc6eac5b1461014a578063c0cd7c3e14610145578063cd05b8a114610140578063d5c24e1a1461013b578063e054e08b14610136578063f9268d18146101315763fbfa77cf1461012c575f80fd5b611596565b611428565b611403565b6113e6565b61138e565b61134a565b61132d565b6112ea565b610f9e565b610f46565b610f08565b610e02565b610d77565b61094c565b61092f565b610695565b61055d565b61050c565b6104a3565b610315565b6102d1565b6102b5565b610260565b61020c565b6101b7565b5f9103126101b357565b5f80fd5b346101b3575f3660031901126101b3576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b6001600160a01b038116036101b357565b346101b35760403660031901126101b3576020610258610253602435610231816101fb565b6004355f526002845260405f209060018060a01b03165f5260205260405f2090565b61199e565b604051908152f35b346101b35760403660031901126101b357602065ffffffffffff6102ab602435610289816101fb565b6004355f526001845260405f209060018060a01b03165f5260205260405f2090565b5416604051908152f35b346101b3575f3660031901126101b3576020604051614e208152f35b346101b3575f3660031901126101b3576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346101b3575f3660031901126101b3576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b65ffffffffffff8116036101b357565b634e487b7160e01b5f52604160045260245ffd5b602081019081106001600160401b0382111761039857604052565b610369565b606081019081106001600160401b0382111761039857604052565b604081019081106001600160401b0382111761039857604052565b6001600160401b03811161039857604052565b90601f801991011681019081106001600160401b0382111761039857604052565b6040519060c082018281106001600160401b0382111761039857604052565b604051906104338261039d565b565b60405190610433826103b8565b6001600160401b03811161039857601f01601f191660200190565b81601f820112156101b35780359061047482610442565b9261048260405194856103e6565b828452602083830101116101b357815f926020809301838601378301015290565b346101b35760603660031901126101b3576024356104c081610359565b604435906001600160401b0382116101b3576105036104e5602093369060040161045d565b6004355f90815260068552604090206001600160a01b039390611a1e565b16604051908152f35b346101b3575f3660031901126101b357602060ff5f5460a01c166040519015158152f35b9181601f840112156101b3578235916001600160401b0383116101b357602083818601950101116101b357565b346101b35760203660031901126101b3576001600160401b036004358181116101b35761058e903690600401610530565b5f80516020612d87833981519152549260ff8460401c161593168015908161068d575b6001149081610683575b15908161067a575b50610668575f80516020612d87833981519152805467ffffffffffffffff191660011790556105f6918361064457611b57565b6105fc57005b5f80516020612d87833981519152805460ff60401b19169055604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a1005b5f80516020612d87833981519152805460ff60401b1916600160401b179055611b57565b60405163f92ee8a960e01b8152600490fd5b9050155f6105c3565b303b1591506105bb565b8491506105b1565b346101b35760a03660031901126101b357600460243581356106b6826101fb565b606435916106c383610359565b6084356001600160401b0381116101b3576106e19036908601610530565b93906106eb611cc1565b6106f484611cf0565b6106fc6115e2565b9480610919575b505061070e42611dd8565b610728610721875465ffffffffffff1690565b8092611657565b5f5490959061074d90610741906001600160a01b031681565b6001600160a01b031690565b958760206040988951928380926327f843b560e11b82525afa80156109145761078c92610781925f926108e3575b506116ad565b65ffffffffffff1690565b65ffffffffffff84169081109081156108cd575b506108bd576107b56107be9151848688611fc5565b50604435611d87565b9586156108af576108ab610884878988887f3cb7f4ff6cecf74cee0eb9ae3ebf8933fa60a53014cce52f96da72a78dba8464896108038a6107fe42611dd8565b611657565b92600354978894610854610815610407565b8881526001600160a01b0385166020820152808b018a905265ffffffffffff8616606082015265ffffffffffff831660808201525f60a08201526116d8565b885197885265ffffffffffff938416602089015290921660408701526001600160a01b0316949081906060820190565b0390a461089d60015f80516020612d6783398151915255565b519081529081906020820190565b0390f35b855163167f871760e31b8152fd5b8551631357ac9160e11b81528790fd5b90506108db61078142611dd8565b11155f6107a0565b61090691925060203d60201161090d575b6108fe81836103e6565b810190611676565b905f61077b565b503d6108f4565b61168b565b6109279295508101906115f5565b925f80610703565b346101b3575f3660031901126101b3576020600354604051908152f35b346101b35760603660031901126101b35760048035906bffffffffffffffffffffffff821682036101b357602435610983816101fb565b6044356001600160401b0381116101b3576109a19036908401610530565b906109aa611cc1565b6109b26115e2565b5081610d12575b5050604080516302910f8b60e31b8152338185019081526001600160a01b0395929491602091829082908190830103818a7f0000000000000000000000000000000000000000000000000000000000000000165afa908115610914575f91610ce5575b5015610cd6575f54610a57906001600160a01b0316936bffffffffffffffffffffffff166bffffffffffffffffffffffff193360601b161790565b95610a72610a6d885f52600660205260405f2090565b6128a9565b50949015610c6c57610a8661078142611dd8565b65ffffffffffff9586161115610c3657610ab0610aab895f52600660205260405f2090565b611d99565b505b610ad5610741610741610741610ad08c5f52600660205260405f2090565b612663565b91808716928303610b41575b505050505050610b26907f7b0b759b513b299fd2811f51926dca8854222a675557e8d544ce0933bf5b7570925b516001600160a01b0390911681529081906020820190565b0390a2610b3f60015f80516020612d6783398151915255565b005b610b588998959796985f52600660205260405f2090565b911692845163186a323160e21b815281818981885afa908115610914575f91610c19575b5081600554958751998a80926327f843b560e11b82525afa9081156109145789610be1610bf3977f7b0b759b513b299fd2811f51926dca8854222a675557e8d544ce0933bf5b75709c610be895610b269d610bed985f92610bfc575b505016906117e0565b9116611801565b611dd8565b90612b09565b82958495610ae1565b610c129250803d1061090d576108fe81836103e6565b5f80610bd8565b610c309150823d841161090d576108fe81836103e6565b5f610b7c565b610c54610741610741610741610ad08c5f52600660205260405f2090565b82871603610ab257865163a741a04560e01b81528490fd5b5093949385169250508115610cc8575091610b2691610cc17f7b0b759b513b299fd2811f51926dca8854222a675557e8d544ce0933bf5b757094610cb8875f52600660205260405f2090565b610bed42611dd8565b5050610b0e565b825163a741a04560e01b8152fd5b5083516323d53b9760e21b8152fd5b610d059150823d8411610d0b575b610cfd81836103e6565b8101906117cc565b5f610a1c565b503d610cf3565b610d1e918101906115f5565b505f806109b9565b634e487b7160e01b5f52603260045260245ffd5b600354811015610d725760035f5260021b7fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b01905f90565b610d26565b346101b35760203660031901126101b3576004356003548110156101b357610d9e90610d3a565b50805460018201546002830154600390930154604080519384526001600160a01b0390921660208401529082019290925265ffffffffffff808316606080840191909152603084901c90911660808301529190911c60ff16151560a082015260c090f35b346101b3576040806003193601126101b357600435610e20816101fb565b602435906001600160401b0382116101b3575f8091610e46610eaa943690600401610530565b908187519283928337810184815203915af43d15610eb257610e9c3d610e6b81610442565b90610e78865192836103e6565b81523d5f602083013e5b84519485931515602085015280840152606083019061180e565b03601f1981018352826103e6565b805190602001fd5b610e9c6060610e82565b9060806003198301126101b35760043591602435610ed9816101fb565b91604435610ee681610359565b91606435906001600160401b0382116101b357610f059160040161045d565b90565b346101b3576020610258610f41610f1e36610ebc565b939190925f526002865260405f209060018060a01b03165f5260205260405f2090565b611e0a565b346101b3576020610f62610f5936610ebc565b92919091611fc5565b50604051908152f35b9060406003198301126101b35760043591602435906001600160401b0382116101b357610f9a91600401610530565b9091565b346101b357610fac36610f6b565b9190610fb6611cc1565b610fbe61185e565b92806112d4575b50506003548110156112c257610fda81610d3a565b5090815490610fe882611cf0565b6003830180549365ffffffffffff9384861660018060a01b0361100d895183856115bd565b16151580611297575b8061127e575b61126c576110328161102d42611dd8565b6116ad565b5f5461104890610741906001600160a01b031681565b96600460206040998a51928380926327f843b560e11b82525afa80156109145782915f9161124d575b501691161161123c57600183018054909861109c93929188906001600160a01b031691015192611fc5565b906110ab816002850154611d87565b96871561122b5760601c60ff1661121a57926111d36111c6899461119e61118b8b9687876108ab9f6111998f9d8f9e6111d99f6110f586600160601b60ff60601b19825416179055565b8a54855461111791906001600160a01b0316885465ffffffffffff16916121f5565b8a5485546111309189916001600160a01b031690612275565b8a54945461114e906001600160a01b0316965465ffffffffffff1690565b97611157610426565b9384526020840152818301525196879160208301919091604080606083019480518452602081015160208501520151910152565b03601f1981018752866103e6565b6123e1565b6111b76111b1855465ffffffffffff1690565b866124ea565b5494546001600160a01b031690565b915465ffffffffffff1690565b92612567565b81518381527f5cc28df3b54da9d06f805d87616ebf969c81310f2aa8369cb14ca50f815d411190602090a261089d60015f80516020612d6783398151915255565b8551633428e90760e01b8152600490fd5b865163167f871760e31b8152600490fd5b8551639ea153eb60e01b8152600490fd5b611266915060203d60201161090d576108fe81836103e6565b5f611071565b60405163b62b15c760e01b8152600490fd5b5061128b61078142611dd8565b868860301c161161101c565b506112bb6107416112af6112aa42611dd8565b611696565b60208b015190856115bd565b1515611016565b604051637822972360e11b8152600490fd5b6112e292935081019061187d565b905f80610fc5565b346101b3575f3660031901126101b35760206040516001600160401b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b346101b3575f3660031901126101b3576020600554604051908152f35b346101b3575f3660031901126101b3576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346101b35760403660031901126101b3576024356001600160401b0381116101b3576113d46113c3602092369060040161045d565b6113cc42611dd8565b6004356115bd565b6040516001600160a01b039091168152f35b346101b3575f3660031901126101b3576020604051620249f08152f35b346101b3575f3660031901126101b357602065ffffffffffff60045416604051908152f35b346101b35761143636610f6b565b9061143f611cc1565b611447611905565b9180611582575b50506003548210156112c25761146382610d3a565b506003815491019182549165ffffffffffff9160018060a01b0361148b8251858716856115bd565b16918215918215611559575b5050611547573303611535576114af61078142611dd8565b908260301c1611156115245760601c60ff1661151257805460ff60601b1916600160601b17905533907f7d3d269c851b72257a5194a401d151902e9be4347d555996dcff3ff86a077e925f80a3610b3f60015f80516020612d6783398151915255565b604051633428e90760e01b8152600490fd5b60405162c457e560e81b8152600490fd5b604051635d154fe160e11b8152600490fd5b60405163dd1ebd9d60e01b8152600490fd5b61157a9250906107419160206115716112aa42611dd8565b910151916115bd565b155f80611497565b61158f925081019061191e565b5f8061144e565b346101b3575f3660031901126101b3575f546040516001600160a01b039091168152602090f35b5f9081526006602052604090206001600160a01b03926115de929091611a1e565b1690565b604051906115ef8261037d565b60608252565b906020828203126101b35781356001600160401b03928382116101b35701906020828203126101b3576040519261162b8461037d565b82359081116101b35761163e920161045d565b815290565b634e487b7160e01b5f52601160045260245ffd5b91909165ffffffffffff8080941691160191821161167157565b611643565b908160209103126101b35751610f0581610359565b6040513d5f823e3d90fd5b65ffffffffffff9081165f19019190821161167157565b65ffffffffffff918216908216039190821161167157565b634e487b7160e01b5f525f60045260245ffd5b600354600160401b811015610398578060016116f79201600355610d3a565b9190916117ba578051825560208101516001830180546001600160a01b0319166001600160a01b0392909216919091179055610433916117a09060a09060039060408501516002820155019261176d65ffffffffffff606083015116859065ffffffffffff1665ffffffffffff19825416179055565b60808101516bffffffffffff00000000000085549160301b16906bffffffffffff00000000000019161784550151151590565b815460ff60601b191690151560601b60ff60601b16179055565b6116c5565b519081151582036101b357565b908160209103126101b357610f05906117bf565b8181029291811591840414171561167157565b906001820180921161167157565b9190820180921161167157565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b5f9081526002602090815260408083206001600160a01b03909416835292905220610f05929190611e0a565b6040519061186b8261039d565b60606040838281528260208201520152565b906020828203126101b35781356001600160401b03928382116101b35701906060828203126101b357604051926118b38461039d565b82358181116101b357826118c891850161045d565b845260208301358181116101b357826118e291850161045d565b602085015260408301359081116101b3576118fd920161045d565b604082015290565b60405190611912826103b8565b60606020838281520152565b906020828203126101b35781356001600160401b03928382116101b35701906040828203126101b35760405192611954846103b8565b82358181116101b3578261196991850161045d565b845260208301359081116101b357611981920161045d565b602082015290565b8054821015610d72575f5260205f2001905f90565b6119a781612663565b6001600160d01b038116156119cc5760016119c29201611989565b90549060031b1c90565b50505f90565b908160209103126101b3575163ffffffff811681036101b35790565b5f1981019190821161167157565b9190820391821161167157565b90600163ffffffff8093160191821161167157565b91805115611b025780602080611a39935183010191016119d2565b91611a4483826126a3565b92611a55845165ffffffffffff1690565b9065ffffffffffff8085169216828114611ae95782119182611a94575b5050611a8257610f0592506129b5565b5050602001516001600160d01b031690565b909150611aa183546119ee565b63ffffffff831614918215611aba575b50505f80611a72565b611ae1919250611ad5611acf61078192611a09565b856126a3565b5165ffffffffffff1690565b115f80611ab1565b50505050602091909101516001600160d01b0316905090565b50610f05916129b5565b9190916040818403126101b3578035611b24816101fb565b9260208201356001600160401b0381116101b357610f05920161045d565b908160209103126101b35751610f05816101fb565b611b6391810190611b0c565b6040516302910f8b60e31b81526001600160a01b0392831660048201819052929160209182816024817f000000000000000000000000000000000000000000000000000000000000000088165afa908115610914575f91611ca4575b5015611c925781611bf4600492611bd46126f7565b5f80546001600160a01b0319166001600160a01b03891617905586612784565b94604051928380926313c085b760e11b82525afa918215610914575f92611c65575b5050161580611c5b575b611c4957516104339015155f805460ff60a01b191691151560a01b60ff60a01b16919091179055565b60405163d2420f5960e01b8152600490fd5b5080511515611c20565b611c849250803d10611c8b575b611c7c81836103e6565b810190611b42565b5f80611c16565b503d611c72565b6040516362df054560e01b8152600490fd5b611cbb9150833d8511610d0b57610cfd81836103e6565b5f611bbf565b5f80516020612d678339815191526002815414611cde5760029055565b604051633ee5aeb560e01b8152600490fd5b604051635daf681960e11b815260609190911c60048201526001600160a01b036020826024817f000000000000000000000000000000000000000000000000000000000000000085165afa918215610914575f92611d66575b5033911603611d5457565b60405163227bf64d60e01b8152600490fd5b611d8091925060203d602011611c8b57611c7c81836103e6565b905f611d49565b9080821015611d94575090565b905090565b90611da382612663565b9180548015611dc4575f190190611dba8282611989565b6117ba575f905555565b634e487b7160e01b5f52603160045260245ffd5b65ffffffffffff90818111611deb571690565b604490604051906306dfcc6560e41b8252603060048301526024820152fd5b91805115611ecc5780602080611e25935183010191016119d2565b91611e308382612903565b92611e41845165ffffffffffff1690565b9065ffffffffffff8085169216828114611ec05782119182611e77575b5050611e6e57610f0592506128f8565b50506020015190565b909150611e8483546119ee565b63ffffffff831614918215611e9d575b50505f80611e5e565b611eb8919250611ad5611eb261078192611a09565b85612903565b115f80611e94565b50505050506020015190565b50610f05916128f8565b81601f820112156101b357805190611eed82610442565b92611efb60405194856103e6565b828452602083830101116101b357815f9260208093018386015e8301015290565b906020828203126101b35781516001600160401b03928382116101b35701906040828203126101b35760405192611f52846103b8565b82518181116101b35782611f67918501611ed6565b845260208301519081116101b3576119819201611ed6565b908160209103126101b3575190565b9081526001600160a01b03909116602082015265ffffffffffff9091166040820152608060608201819052610f059291019061180e565b92611fce611905565b908051806121db575b5050611fe242611dd8565b5f54909490611ffb90610741906001600160a01b031681565b93604051956327f843b560e11b875260209687816004818a5afa80156109145761202f92610781925f926121c357506116ad565b65ffffffffffff82169081109081156121ac575b811561217b575b5061216f578560049560405196878092630ce9b79360e41b82525afa9485156109145761209c9587915f91612152575b50845190604051808099819463e02f693760e01b8352878b8a60048601611f8e565b03916001600160a01b03165afa9384156109145761210e955f95612111575b509261210385936121099361210396869a6120fa610253836120e5875f52600260205260405f2090565b9060018060a01b03165f5260205260405f2090565b95015192611832565b906119fc565b611d87565b91565b61210992955061210394919361213f612103928a3d8c1161214b575b61213781836103e6565b810190611f7f565b969350939194506120bb565b503d61212d565b6121699150823d8411611c8b57611c7c81836103e6565b5f61207a565b5050505050505f905f90565b90506121a5610781612199876120e5875f52600160205260405f2090565b5465ffffffffffff1690565b115f61204a565b90506121ba61078142611dd8565b81101590612043565b6109069192508a3d8c1161090d576108fe81836103e6565b6121ee9250602080918301019101611f1c565b5f80611fd7565b919091805f52600160205265ffffffffffff806122258560405f209060018060a01b03165f5260205260405f2090565b54169083161161223457505050565b6104339261225c915f52600160205260405f209060018060a01b03165f5260205260405f2090565b9065ffffffffffff1665ffffffffffff19825416179055565b9190825f5260026020526122cd6102536122a28360405f209060018060a01b03165f5260205260405f2090565b926122ac42611dd8565b955f52600260205260405f209060018060a01b03165f5260205260405f2090565b918201809211611671576001810190815415612371575b6122ed816128a9565b5094908354956122fc8461199e565b508161235c575b501561233b5750505f198301928311611671576104339261232391611989565b90919082549060031b91821b915f19901b1916179055565b61043394612355926001600160d01b039091169190612b09565b5050612992565b65ffffffffffff83811691161490505f612303565b61237a82612965565b6122e4565b60606020610f05938184526001600160401b0381511682850152015191604080820152019061180e565b919360a093610f05969565ffffffffffff938552600180871b031660208501526040840152166060820152816080820152019061180e565b929390600460206123fe6107416107415f5460018060a01b031690565b604051630ce9b79360e41b815292839182905afa90811561091457610e9c9161247c915f916124cb575b506001600160a01b03169361243b610435565b6001600160401b037f00000000000000000000000000000000000000000000000000000000000000001681529060208201526040519283916020830161237f565b823b156101b3575f946124a786926040519889978896879563724ab0f760e11b8752600487016123a9565b03925af18015610914576124b85750565b806124c5610433926103d3565b806101a9565b6124e4915060203d602011611c8b57611c7c81836103e6565b5f612428565b65ffffffffffff9160446020925f60018060a01b038154166040519687958694631c9e38c760e21b865260048601521660248401525af180156109145761252e5750565b6125469060203d60201161214b5761213781836103e6565b50565b8115612553570490565b634e487b7160e01b5f52601260045260245ffd5b92905f549060ff8260a01c1661257f575b5050505050565b6040516313c085b760e11b815291602090839060049082906001600160a01b03165afa918215610914575f9261263c575b5060405163065c1e0360e01b6020820190815260248201969096526001600160a01b039091166044820152606481019390935265ffffffffffff90911660848301526126098260a481015b03601f1981018452836103e6565b6202a15c5a1061262a575f928380935192620249f0f1505f80808080612578565b604051632153f33560e21b8152600490fd5b612609925061265c6125fb9160203d602011611c8b57611c7c81836103e6565b92506125b0565b8054806126705750505f90565b5f19918183810111611671575f5260205f2001015460301c90565b60405190612698826103b8565b5f6020838281520152565b6126c8916126c2916126b361268b565b506126bc61268b565b50611989565b50612885565b65ffffffffffff81511690602060018060d01b0391015116604051916126ed836103b8565b8252602082015290565b6126ff612a94565b612707612a94565b60015f80516020612d6783398151915255565b604051906127278261037d565b5f8252565b80910390606082126101b3576020604051926127478461039d565b126101b357604090815161275a8161037d565b612763826117bf565b81528352602081015161277581610359565b60208401520151604082015290565b9060049061279061271a565b5080516127a760209283808094830101910161272c565b6040516327f843b560e11b815290949093849182906001600160a01b03165afa918215610914575f92612866575b508201906127e9825165ffffffffffff1690565b65ffffffffffff91821691161015612854576040820160038151106128425761283861281e61283e935165ffffffffffff1690565b65ffffffffffff1665ffffffffffff196004541617600455565b51600555565b5190565b6040516354f778f360e01b8152600490fd5b6040516367d5e3df60e11b8152600490fd5b8161287e9293503d841161090d576108fe81836103e6565b905f6127d5565b90604051612892816103b8565b915465ffffffffffff8116835260301c6020830152565b8054806128ba5750505f905f905f90565b5f19908082810111611671576128d7925f5260205f200101612885565b9065ffffffffffff82511691602060018060d01b0391015116906001929190565b906119a790826129b5565b906129266126c26129479261291661268b565b5061291f61268b565b5084611989565b91600165ffffffffffff845116936020828060d01b03910151169101611989565b90549060405192612957846103b8565b835260031b1c602082015290565b8054600160401b8110156103985761298291600182018155611989565b8154905f199060031b1b19169055565b90815491600160401b831015610398578261232391600161043395018155611989565b908154905f918060058111612a4b575b50915b8281106129fe575050806129dc5750505f90565b610f05916129ec6129f7926119ee565b905f5260205f200190565b5460301c90565b90918082169080831860011c820180921161167157845f5265ffffffffffff808360205f20015416908516105f14612a395750915b906129c8565b929150612a45906117f3565b90612a33565b90612a5582612c28565b820391821161167157845f5265ffffffffffff808360205f20015416908416105f14612a8357505b5f6129c5565b9250612a8e906117f3565b91612a7d565b60ff5f80516020612d878339815191525460401c1615612ab057565b604051631afcd79f60e31b8152600490fd5b8054600160401b81101561039857612adf91600182018155611989565b6117ba57815160209092015160301b65ffffffffffff191665ffffffffffff909216919091179055565b805492939291908215612bff57612b35612b30612b25856119ee565b835f5260205f200190565b612885565b90612b46825165ffffffffffff1690565b65ffffffffffff84811691168110612bed57612bb1946020948892612b74610781875165ffffffffffff1690565b03612bb55750612ba3926129ec612b8a926119ee565b9065ffffffffffff82549181199060301b169116179055565b01516001600160d01b031690565b9190565b915050612be891612bd5612bc7610435565b65ffffffffffff9093168352565b6001600160d01b03881682860152612ac2565b612ba3565b604051632520601d60e01b8152600490fd5b612c239250612c0f612bc7610435565b6001600160d01b0385166020830152612ac2565b5f9190565b8015612d615780612cfa612cf3612ce9612cdf612cd5612ccb612cc1612cb76001610f059a5f908b60801c80612d55575b508060401c80612d48575b508060201c80612d3b575b508060101c80612d2e575b508060081c80612d21575b508060041c80612d14575b508060021c80612d07575b50821c612d00575b811c1b612cb0818b612549565b0160011c90565b612cb0818a612549565b612cb08189612549565b612cb08188612549565b612cb08187612549565b612cb08186612549565b612cb08185612549565b8092612549565b90611d87565b8101612ca3565b600291509101905f612c9b565b600491509101905f612c90565b600891509101905f612c85565b601091509101905f612c7a565b602091509101905f612c6f565b604091509101905f612c64565b9150506080905f612c59565b505f9056fe9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a2646970667358221220a1301b9e117701c6e52f7271afc2f2c3e627b96bd0329f3eeaa67543396e82ed64736f6c63430008190033","sourceMap":"707:8662:99:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;;;;;;:::o;:::-;;;;;;;;;;-1:-1:-1;;707:8662:99;;;;;;1435:38:97;-1:-1:-1;;;;;707:8662:99;;;;;;;-1:-1:-1;;;;;707:8662:99;;;;;:::o;:::-;;;;;;-1:-1:-1;;707:8662:99;;;;;2936:47:97;:38;707:8662:99;;;;;:::i;:::-;;;-1:-1:-1;707:8662:99;2936:16:97;707:8662:99;;;-1:-1:-1;707:8662:99;;;;;;;;;;;;;;;;;2936:38:97;:47;:::i;:::-;707:8662:99;;;;;;;;;;;;-1:-1:-1;;707:8662:99;;;;;;1788:109:97;707:8662:99;;;;;:::i;:::-;;;-1:-1:-1;707:8662:99;1788:109:97;707:8662:99;;;-1:-1:-1;707:8662:99;;;;;;;;;;;;;;;;;1788:109:97;707:8662:99;;;;;;;;;;;;;;-1:-1:-1;;707:8662:99;;;;;;;1374:6:97;707:8662:99;;;;;;;;;-1:-1:-1;;707:8662:99;;;;;;1528:51:97;-1:-1:-1;;;;;707:8662:99;;;;;;;;;;;;-1:-1:-1;;707:8662:99;;;;;;322:32:74;-1:-1:-1;;;;;707:8662:99;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;707:8662:99;;;;;;;:::o;:::-;;:::i;:::-;;;;;;;-1:-1:-1;;;;;707:8662:99;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;707:8662:99;;;;;;;:::o;:::-;-1:-1:-1;;;;;707:8662:99;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;707:8662:99;;;;;;;:::o;:::-;;;;;;;;;;-1:-1:-1;;;;;707:8662:99;;;;;;;:::o;:::-;;;;;;;:::i;:::-;:::o;:::-;;;;;;;:::i;:::-;-1:-1:-1;;;;;707:8662:99;;;;;;-1:-1:-1;;707:8662:99;;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;707:8662:99;;;;;;;;;;;;;;:::o;:::-;;;;;;-1:-1:-1;;707:8662:99;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;707:8662:99;;;;2016:56;707:8662;;;;;;;;:::i;:::-;;;-1:-1:-1;707:8662:99;;;2016:9;707:8662;;;;;-1:-1:-1;;;;;707:8662:99;;2016:56;:::i;:::-;707:8662;;;;;;;;;;;;;-1:-1:-1;;707:8662:99;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;707:8662:99;;;;;;;;;;;;;;;:::o;:::-;;;;;;-1:-1:-1;;707:8662:99;;;;-1:-1:-1;;;;;707:8662:99;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;707:8662:99;;;;;;;4301:16:26;707:8662:99;;4726:16:26;;:34;;;;707:8662:99;4805:1:26;4790:16;:50;;;;707:8662:99;4855:13:26;:30;;;;707:8662:99;4851:91:26;;;-1:-1:-1;;;;;;;;;;;707:8662:99;;-1:-1:-1;;707:8662:99;;;;;718:4:74;;4951:18:26;4979:67;;718:4:74;:::i;:::-;5066:101:26;;707:8662:99;5066:101:26;-1:-1:-1;;;;;;;;;;;707:8662:99;;-1:-1:-1;;;;707:8662:99;;;;;-1:-1:-1;707:8662:99;;5142:14:26;;707:8662:99;;5142:14:26;707:8662:99;4979:67:26;-1:-1:-1;;;;;;;;;;;707:8662:99;;-1:-1:-1;;;;707:8662:99;-1:-1:-1;;;707:8662:99;;;718:4:74;:::i;4851:91:26:-;707:8662:99;;-1:-1:-1;;;4908:23:26;;707:8662:99;;4908:23:26;4855:30;4872:13;;;4855:30;;;4790:50;4818:4;4810:25;:30;;-1:-1:-1;4790:50:26;;4726:34;;;-1:-1:-1;4726:34:26;;707:8662:99;;;;;;-1:-1:-1;;707:8662:99;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;707:8662:99;;;;;;;;;;;:::i;:::-;3217:103:29;;;;:::i;:::-;2123:10:97;;;:::i;:::-;707:8662:99;;:::i;:::-;2666:16;;2662:105;;707:8662;837:15:63;;819:34;837:15;819:34;:::i;:::-;2813:31:99;707:8662;;;;;;;;2813:31;;;:::i;:::-;-1:-1:-1;707:8662:99;;;;2847:27;;:13;;-1:-1:-1;;;;;707:8662:99;2847:13;707:8662;;-1:-1:-1;;;;;707:8662:99;;;2847:27;707:8662;;;;;;;;;;;;;;2847:29;;;;;;;;2794:82;2847:29;2813:63;2847:29;-1:-1:-1;2847:29:99;;;707:8662;2813:63;;:::i;:::-;707:8662;;;;2794:82;707:8662;;;2794:82;;;:138;;;;;707:8662;2777:223;;;3248:62:97;3019:133:99;3104:37;;3248:62:97;;;;:::i;:::-;707:8662:99;;;3019:133;:::i;:::-;3166:11;;;3162:68;;707:8662;3671:86;837:15:63;;;;3671:86:99;837:15:63;3262:31:99;837:15:63;819:34;837:15;819:34;:::i;:::-;3262:31:99;:::i;:::-;707:8662;3317:13;707:8662;;;;3347:308;707:8662;;:::i;:::-;;;;-1:-1:-1;;;;;707:8662:99;;;3379:266;;707:8662;3379:266;;;707:8662;;;;;;;3379:266;;707:8662;;;;;3379:266;;707:8662;-1:-1:-1;707:8662:99;3379:266;;707:8662;3347:308;:::i;:::-;707:8662;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;707:8662:99;;;;;;;;;;3671:86;;;;3282:1:29;1805;-1:-1:-1;;;;;;;;;;;707:8662:99;3716:283:29;3282:1;707:8662:99;;;;;;;;;;;;;;;;3162:68;707:8662;;-1:-1:-1;;;3200:19:99;;;2777:223;707:8662;;-1:-1:-1;;;2964:25:99;;707:8662;;2964:25;2794:138;837:15:63;;2896:36:99;819:34:63;837:15;819:34;:::i;2896:36:99:-;-1:-1:-1;2896:36:99;2794:138;;;2847:29;;;;;707:8662;2847:29;707:8662;2847:29;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;;:::i;2662:105::-;2718:38;;;;;;;;:::i;:::-;2662:105;;;;;707:8662;;;;;;-1:-1:-1;;707:8662:99;;;;;1795:13;707:8662;;;;;;;;;;;;;-1:-1:-1;;707:8662:99;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;707:8662:99;;;;;;;;;;;:::i;:::-;3217:103:29;;;:::i;:::-;707:8662:99;;:::i;:::-;;7493:16;7489:103;;707:8662;-1:-1:-1;;707:8662:99;;;-1:-1:-1;;;7607:48:99;;7644:10;7607:48;;;707:8662;;;-1:-1:-1;;;;;707:8662:99;;;;;;;;;;;;;;7607:48;7617:16;;;707:8662;7607:48;;;;;;;-1:-1:-1;7607:48:99;;;707:8662;7606:49;;7602:99;;-1:-1:-1;707:8662:99;7764:35;;-1:-1:-1;;;;;707:8662:99;7644:10;707:8662;;-1:-1:-1;;7644:10:99;297:2:93;707:8662:99;;267:46:93;;152:169;7764:35:99;7850:21;5260:30:91;7850:21:99;;707:8662;;7850:9;707:8662;;;;;;;7850:21;5260:30:91;:::i;:::-;-1:-1:-1;7900:801:99;;;;;7930:34;819::63;837:15;819:34;:::i;7930::99:-;707:8662;;;;7930:34;;;;7984:27;:21;;707:8662;;7850:9;707:8662;;;;;;;7984:21;:27;:::i;:::-;;7926:225;8169:61;8182:48;8190:39;4928:20:91;8198:21:99;;707:8662;;7850:9;707:8662;;;;;;;8198:21;4928:20:91;:::i;8169:61:99:-;707:8662;;;;8169:61;;;8165:336;;7926:225;7900:801;;;;;;8716:34;7900:801;8716:34;7900:801;;707:8662;-1:-1:-1;;;;;707:8662:99;;;;;;;;;;;;;8716:34;;;;3282:1:29;1805;-1:-1:-1;;;;;;;;;;;707:8662:99;3716:283:29;3282:1;707:8662:99;8165:336;8250:21;;;;;;;707:8662;;7850:9;707:8662;;;;;;;8250:21;707:8662;;;;;;;;8299:34;;;;;;;;;;;;;;-1:-1:-1;8299:34:99;;;8165:336;707:8662;;8336:22;707:8662;;;;;;;;;;;8361:30;;;;;;;;;;8336:55;8167:38:61;8361:30:99;8716:34;8361:30;8299:92;8361:30;8716:34;8361:30;8298:130;8361:30;-1:-1:-1;8361:30:99;;;8165:336;707:8662;;;8336:55;;:::i;:::-;707:8662;;8299:92;:::i;:::-;8298:130;:::i;:::-;8167:38:61;;:::i;:::-;8165:336:99;;;;;;8361:30;;;;;;-1:-1:-1;8361:30:99;;;;;;:::i;:::-;;;;;8299:34;;;;;;;;;;;;;;:::i;:::-;;;;7926:225;8036:61;8049:48;8057:39;4928:20:91;8065:21:99;;707:8662;;7850:9;707:8662;;;;;;;8036:61;707:8662;;;8036:61;7926:225;8032:119;707:8662;;-1:-1:-1;;;8124:12:99;;707:8662;;8124:12;7900:801;-1:-1:-1;707:8662:99;;;;;;-1:-1:-1;;8535:23:99;;8531:81;;8626:21;;8716:34;8626:21;8167:38:61;8716:34:99;8626:21;;;707:8662;;7850:9;707:8662;;;;;;;8626:21;819:34:63;837:15;819:34;:::i;8167:38:61:-;7900:801:99;;;;8531:81;707:8662;;-1:-1:-1;;;8585:12:99;;;7602:99;-1:-1:-1;707:8662:99;;-1:-1:-1;;;7678:12:99;;;7607:48;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;7489:103;7544:37;;;;;;:::i;:::-;;7489:103;;;;707:8662;;;;;;;;;;;;;1050:35;707:8662;;;;;;1050:35;-1:-1:-1;707:8662:99;;;;;;-1:-1:-1;707:8662:99;:::o;:::-;;:::i;:::-;;;;;;-1:-1:-1;;707:8662:99;;;;;;1050:35;707:8662;1050:35;;;;;;;;:::i;:::-;-1:-1:-1;707:8662:99;;;1050:35;;707:8662;1050:35;;;707:8662;1050:35;;;;707:8662;;;;;;;-1:-1:-1;;;;;707:8662:99;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;707:8662:99;;;;-1:-1:-1;707:8662:99;;;477:31:80;707:8662:99;;;;;;:::i;:::-;;;;;;;;;;;;;;;416:25:80;;;;707:8662:99;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;-1:-1:-1;707:8662:99;;;;;;;;;;;;;477:31:80;;707:8662:99;;;;;;;;;;:::i;:::-;477:31:80;707:8662:99;;477:31:80;;;;;;:::i;:::-;518:79;;;707:8662:99;518:79:80;;707:8662:99;;;;;;;;-1:-1:-1;;707:8662:99;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;-1:-1:-1;;;;;707:8662:99;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;2692:73:97;:38;707:8662:99;;;:::i;:::-;;;;;-1:-1:-1;707:8662:99;2692:16:97;707:8662:99;;;-1:-1:-1;707:8662:99;;;;;;;;;;;;;;;;;2692:38:97;:73;:::i;707:8662:99:-;;;;;3248:62:97;707:8662:99;;;:::i;:::-;3248:62:97;;;;;:::i;:::-;707:8662:99;;;;;;;;;;-1:-1:-1;;707:8662:99;;;;;;;;;;;-1:-1:-1;;;;;707:8662:99;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;:::i;:::-;3217:103:29;;;;:::i;:::-;707:8662:99;;:::i;:::-;4024:16;;4020:105;;707:8662;;;4153:13;707:8662;4139:34;;;4135:94;;4270:25;;;:::i;:::-;707:8662;;;;4330:18;;;;:::i;:::-;4153:13;4408:24;;707:8662;;;;;;;;;;;;;4377:95;4434:37;;4377:95;;;:::i;:::-;707:8662;4377:125;;:250;;;707:8662;4377:309;;;707:8662;4360:389;;4763:43;837:15:63;819:34;837:15;819:34;:::i;:::-;4763:43:99;:::i;:::-;-1:-1:-1;707:8662:99;4809:27;;:13;;-1:-1:-1;;;;;707:8662:99;4809:13;707:8662;4809:27;707:8662;;4809:29;707:8662;;;;;;;;;;;4809:29;;;;;;;;;;-1:-1:-1;4809:29:99;;;707:8662;;;;;4763:75;4759:131;;4994:16;;;707:8662;;4994:16;;4945:140;;4994:16;;707:8662;;-1:-1:-1;;;;;707:8662:99;5038:37;;;4945:140;;:::i;:::-;5120:14;5111:41;5120:14;;;;707:8662;5111:41;:::i;:::-;5166:18;;;5162:75;;707:8662;;;;5247:78;;5335:24;707:8662;;5335:24;;5725:145;;5335:24;;;;707:8662;5335:24;5725:145;5335:24;;;;6024;5335;;;707:8662;;;;;;;;;;;;;;5335:24;707:8662;;;;5445:24;;707:8662;-1:-1:-1;;;;;707:8662:99;;;;;5445:24;;:::i;:::-;707:8662;;;;5542:13;;707:8662;;-1:-1:-1;;;;;707:8662:99;5542:13;;:::i;:::-;707:8662;;;;;;-1:-1:-1;;;;;707:8662:99;;;;;;;;;;;:::i;:::-;;;;4809:29;5753:103;;707:8662;5753:103;;;707:8662;;5725:145;;;4809:29;5725:145;;707:8662;;;;;;;;;;;;;;;;;;;;;;;;;;;5725:145;;707:8662;;5725:145;;;;;;:::i;:::-;;:::i;:::-;5920:24;707:8662;;;;;;;;5920:24;;:::i;:::-;707:8662;;;-1:-1:-1;;;;;707:8662:99;;;;;;;;;;;6024:24;;:::i;:::-;707:8662;;;;;6065:39;;707:8662;;6065:39;3282:1:29;1805;-1:-1:-1;;;;;;;;;;;707:8662:99;3716:283:29;5247:78:99;707:8662;;-1:-1:-1;;;5291:23:99;;707:8662;;5291:23;5162:75;707:8662;;-1:-1:-1;;;5207:19:99;;707:8662;;5207:19;4759:131;707:8662;;-1:-1:-1;;;4861:18:99;;707:8662;;4861:18;4809:29;;;;;;;;;;;;;;:::i;:::-;;;;4360:389;707:8662;;-1:-1:-1;;;4718:20:99;;707:8662;;4718:20;4377:309;837:15:63;4647:39:99;819:34:63;837:15;819:34;:::i;4647:39:99:-;707:8662;;;;;4647:39;4377:309;;:250;837:15:63;4522:105:99;:91;4553:20;819:34:63;837:15;819:34;:::i;:::-;4553:20:99;:::i;:::-;4575:37;;;;4522:91;;;:::i;:105::-;;;4377:250;;4135:94;707:8662;;-1:-1:-1;;;4196:22:99;;707:8662;;4196:22;4020:105;4076:38;;;;;;;;:::i;:::-;4020:105;;;;;707:8662;;;;;;-1:-1:-1;;707:8662:99;;;;;;;-1:-1:-1;;;;;404:28:74;707:8662:99;;;;;;;;;;-1:-1:-1;;707:8662:99;;;;;1221:37;707:8662;;;;;;;;;;;;;-1:-1:-1;;707:8662:99;;;;;;954:41;-1:-1:-1;;;;;707:8662:99;;;;;;;;;;;;-1:-1:-1;;707:8662:99;;;;;;-1:-1:-1;;;;;707:8662:99;;;;2239:46;707:8662;;;;;;;;:::i;:::-;819:34:63;837:15;819:34;:::i;:::-;707:8662:99;;2239:46;:::i;:::-;707:8662;;-1:-1:-1;;;;;707:8662:99;;;;;;;;;;;;-1:-1:-1;;707:8662:99;;;;;;;1271:7:97;707:8662:99;;;;;;;;;-1:-1:-1;;707:8662:99;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3217:103:29;;;:::i;:::-;707:8662:99;;:::i;:::-;6308:16;;6304:99;;707:8662;;;6431:13;707:8662;6417:34;;;6413:94;;6548:25;;;:::i;:::-;707:8662;6431:13;707:8662;;6653:24;;707:8662;;;;;;;;;;;6622:92;6679:34;;707:8662;;;6622:92;;:::i;:::-;707:8662;6741:29;;;:151;;;;;707:8662;6724:223;;;;6961:10;:29;6957:80;;7051:40;819:34:63;837:15;819:34;:::i;7051:40:99:-;707:8662;;;;;7051:40;;7047:95;;707:8662;;;;7152:78;;707:8662;;-1:-1:-1;;;;707:8662:99;-1:-1:-1;;;707:8662:99;;;6961:10;7280:33;;-1:-1:-1;7280:33:99;;3282:1:29;1805;-1:-1:-1;;;;;;;;;;;707:8662:99;3716:283:29;7152:78:99;707:8662;;-1:-1:-1;;;7196:23:99;;707:8662;;7196:23;7047:95;707:8662;;-1:-1:-1;;;7114:17:99;;707:8662;;7114:17;6957:80;707:8662;;-1:-1:-1;;;7013:13:99;;707:8662;;7013:13;6724:223;707:8662;;-1:-1:-1;;;6924:12:99;;707:8662;;6924:12;6741:151;6790:102;837:15:63;;;6790:88:99;837:15:63;6843:34:99;6821:20;819:34:63;837:15;819:34;:::i;6821:20:99:-;6843:34;;;6790:88;;:::i;:102::-;;6741:151;;;;6304:99;6357:35;;;;;;;:::i;:::-;6304:99;;;;707:8662;;;;;;-1:-1:-1;;707:8662:99;;;;;;;;-1:-1:-1;;;;;707:8662:99;;;;;;;;1876:205;-1:-1:-1;707:8662:99;;;2016:9;707:8662;;;;;-1:-1:-1;;;;;707:8662:99;2016:56;;1876:205;;2016:56;:::i;:::-;707:8662;1876:205;:::o;707:8662::-;;;;;;;:::i;:::-;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;;;;707:8662:99;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;-1:-1:-1;;707:8662:99;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;3317:13;707:8662;-1:-1:-1;;;707:8662:99;;;;;;;;;;3317:13;707:8662;;:::i;:::-;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;707:8662:99;-1:-1:-1;;;;;707:8662:99;;;;;;;;;;;;;;;;3317:13;;707:8662;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;707:8662:99;;;;;;-1:-1:-1;;;707:8662:99;;;;;;;:::i;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::o;:::-;;9856:1:61;707:8662:99;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;707:8662:99;;;;;;;;-1:-1:-1;;707:8662:99;;;;:::o;2505:267:97:-;-1:-1:-1;707:8662:99;;;2692:16:97;707:8662:99;;;;;;;;-1:-1:-1;;;;;707:8662:99;;;;;;;;;2692:73:97;;2505:267;;2692:73;:::i;707:8662:99:-;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;;;;707:8662:99;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;;;;707:8662:99;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::o;:::-;;;;;;;;-1:-1:-1;707:8662:99;;-1:-1:-1;707:8662:99;;;-1:-1:-1;707:8662:99;:::o;10580:184:91:-;10689:20;;;:::i;:::-;-1:-1:-1;;;;;707:8662:99;;10726:7:91;707:8662:99;;10736:12:91;:17;:12;;:17;:::i;:::-;707:8662:99;;;;;;10580:184:91;:::o;10726:31::-;;;10689:11;10580:184;:::o;707:8662:99:-;;;;;;;;;;;;;;;;;;:::o;:::-;-1:-1:-1;;707:8662:99;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;:::o;1818:604:91:-;;707:8662:99;;1946:17:91;1942:83;;707:8662:99;2049:27:91;707:8662:99;2049:27:91;707:8662:99;;2049:27:91;;;;;;:::i;:::-;2120:14;;;;;:::i;:::-;707:8662:99;;;;;;;;;;;;;;;;2148:22:91;;;2144:77;;2235:21;-1:-1:-1;2235:84:91;;;;1818:604;2231:139;;;;1425:34;;;;:::i;2231:139::-;-1:-1:-1;;2049:27:91;2342:17;707:8662:99;-1:-1:-1;;;;;707:8662:99;;:::o;2235:84:91:-;707:8662:99;;;2269:16:91;707:8662:99;;2269:16:91;:::i;:::-;707:8662:99;;;2261:24:91;:57;;;;;2235:84;;;;;;;2261:57;2289:29;2298:8;;;2289:18;2298:8;2289:23;2298:8;;:::i;:::-;2289:18;;:::i;:::-;707:8662:99;;;;;2289:29:91;;2261:57;;;;2144:77;-1:-1:-1;;;;2049:27:91;2193:17;;;;707:8662:99;-1:-1:-1;;;;;707:8662:99;;-1:-1:-1;707:8662:99;:::o;1942:83:91:-;1425:34;;;;:::i;707:8662:99:-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;707:8662:99;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;6491:564:97:-;6614:34;6491:564;6614:34;;;;:::i;:::-;707:8662:99;;-1:-1:-1;;;6664:41:97;;-1:-1:-1;;;;;707:8662:99;;;6664:41:97;;;707:8662:99;;;;;6664:41:97;;;707:8662:99;;;6674:13:97;707:8662:99;;6664:41:97;;;;;;;-1:-1:-1;6664:41:97;;;6491:564;6663:42;;6659:90;;2540:111:29;6850:27:97;6664:41;2540:111:29;;;:::i;:::-;-1:-1:-1;707:8662:99;;-1:-1:-1;;;;;;707:8662:99;-1:-1:-1;;;;;707:8662:99;;;;;6850:27:97;;:::i;:::-;707:8662:99;;;;;;;;;;6892:23:97;;;;;;;;;-1:-1:-1;6892:23:97;;;6491:564;707:8662:99;;;6892:37:97;:64;;;6491:564;6888:112;;707:8662:99;7010:38:97;;707:8662:99;;-1:-1:-1;707:8662:99;;-1:-1:-1;;;;707:8662:99;;;;;;-1:-1:-1;;;707:8662:99;;;;;;;;6888:112:97;707:8662:99;;-1:-1:-1;;;6979:10:97;;6664:41;;6979:10;6892:64;-1:-1:-1;707:8662:99;;;;6892:64:97;;:23;;;;;;-1:-1:-1;6892:23:97;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;6659:90;707:8662:99;;-1:-1:-1;;;6728:10:97;;6664:41;;6728:10;6664:41;;;;;;;;;;;;;;:::i;:::-;;;;3326:384:29;-1:-1:-1;;;;;;;;;;;1847:1:29;707:8662:99;;3526:20:29;3522:88;;1847:1;707:8662:99;;3326:384:29:o;3522:88::-;707:8662:99;;-1:-1:-1;;;3569:30:29;;;;;4451:257:97;707:8662:99;;-1:-1:-1;;;4546:86:97;;467:2:93;707:8662:99;;;;4546:86:97;;;707:8662:99;-1:-1:-1;;;;;4546:86:97;707:8662:99;;;4572:26:97;707:8662:99;;4546:86:97;;;;;;;-1:-1:-1;4546:86:97;;;4451:257;4636:10;;707:8662:99;;4546:100:97;4542:160;;4451:257::o;4542:160::-;707:8662:99;;-1:-1:-1;;;4669:22:97;;4546:86;;4669:22;4546:86;;;;;;;;;;;;;;;:::i;:::-;;;;;2557:104:58;;2641:5;;;;;;:13;2557:104;:::o;2641:13::-;;;2557:104;:::o;5905:168:91:-;;6006:20;;;:::i;:::-;707:8662:99;;;;;;;-1:-1:-1;;707:8662:99;;;;;;:::i;:::-;;;;;;;5905:168:91:o;707:8662:99:-;;;;;;;;;;;;14291:213:59;707:8662:99;14369:24:59;;;;14365:103;;707:8662:99;14291:213:59;:::o;14365:103::-;707:8662:99;;;;14416:41:59;;;;;;14447:2;14416:41;;;707:8662:99;;;;;14416:41:59;7558:604:91;;707:8662:99;;7686:17:91;7682:83;;707:8662:99;7789:27:91;707:8662:99;7789:27:91;707:8662:99;;7789:27:91;;;;;;:::i;:::-;7860:14;;;;;:::i;:::-;707:8662:99;;;;;;;;;;;;;;;;7888:22:91;;;7884:77;;7975:21;-1:-1:-1;7975:84:91;;;;7558:604;7971:139;;;;8127:28;;;;:::i;7971:139::-;8082:17;;7789:27;8082:17;707:8662:99;8075:24:91;:::o;7975:84::-;707:8662:99;;;8009:16:91;707:8662:99;;8009:16:91;:::i;:::-;707:8662:99;;;8001:24:91;:57;;;;;7975:84;;;;;;;8001:57;8029:29;8038:8;;;8029:18;8038:8;8029:23;8038:8;;:::i;:::-;8029:18;;:::i;:29::-;;8001:57;;;;7884:77;7933:17;;;;;7789:27;7933:17;707:8662:99;7926:24:91;:::o;7682:83::-;7726:28;;;;:::i;707:8662:99:-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;707:8662:99;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;;;;707:8662:99;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;707:8662:99;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;3323:1122:97:-;;707:8662:99;;:::i;:::-;;;;3608:16:97;3604:109;;3323:1122;837:15:63;;819:34;837:15;819:34;:::i;:::-;-1:-1:-1;707:8662:99;;;;3778:27:97;;:13;;-1:-1:-1;;;;;707:8662:99;3778:13:97;707:8662:99;3778:27:97;707:8662:99;;;;;;;3778:29:97;;;;;;;;;;;;;;;3740:67;3778:29;3759:48;3778:29;-1:-1:-1;3778:29:97;;;3759:48;;:::i;3740:67::-;707:8662:99;;;3740:67:97;;;:107;;;;;3323:1122;3740:197;;;;3323:1122;3723:263;;;707:8662:99;3778:29:97;707:8662:99;;;;;;;;;;4025:25:97;;;;;;;;;4010:143;4025:25;;;-1:-1:-1;4025:25:97;;;3323:1122;4113:30;;;707:8662:99;;;;;;;;;;;4010:143:97;;;;;3778:29;4010:143;;;:::i;:::-;;;-1:-1:-1;;;;;707:8662:99;4010:143:97;;;;;;;4181:257;4010:143;-1:-1:-1;4010:143:97;;;3323:1122;3996:157;;4293:102;3996:157;;4233:162;3996:157;4207:231;3996:157;;2936:28;:47;:38;:28;;;707:8662:99;;2936:16:97;707:8662:99;;;;;;;2936:28:97;707:8662:99;;;;;;;;;;;;;;;;2936:47:97;4351:43;;;4293:102;;:::i;:::-;4233:162;;:::i;:::-;4207:231;:::i;4181:257::-;3323:1122;:::o;4010:143::-;4233:162;4010:143;;;4207:231;4010:143;;;;4293:102;4010:143;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;;;;;4025:25;;;;;;;;;;;;;;:::i;:::-;;;;3723:263;3962:13;;;;;;-1:-1:-1;3962:13:97;-1:-1:-1;3962:13:97;:::o;3740:197::-;3886:41;;3867:70;3886:51;;:41;;;707:8662:99;;3886:29:97;707:8662:99;;;;;;;3886:51:97;707:8662:99;;;;;3867:70:97;-1:-1:-1;3740:197:97;;;:107;837:15:63;;3811:36:97;819:34:63;837:15;819:34;:::i;3811:36:97:-;;;;3740:107;;;3778:29;;;;;;;;;;;;;;;:::i;3604:109::-;3662:40;;;;;;;;;;;;:::i;:::-;3604:109;;;;4714:335;;;;707:8662:99;-1:-1:-1;707:8662:99;4876:29:97;707:8662:99;;;;4876:51:97;707:8662:99;;-1:-1:-1;707:8662:99;;;;;;;;;;;;;;;;;4876:51:97;707:8662:99;;;;;-1:-1:-1;4872:171:97;;4714:335;;;:::o;4872:171::-;4962:70;707:8662:99;4962:51:97;707:8662:99;-1:-1:-1;707:8662:99;4876:29:97;707:8662:99;;;-1:-1:-1;707:8662:99;;;;;;;;;;;;;;;;;4962:51:97;707:8662:99;;;;;;;;;;;;5055:221:97;;;707:8662:99;-1:-1:-1;707:8662:99;5160:16:97;707:8662:99;;2936:47:97;:38;5160;707:8662:99;;-1:-1:-1;707:8662:99;;;;;;;;;;;;;;;;;5160:38:97;837:15:63;819:34;837:15;819:34;:::i;:::-;707:8662:99;-1:-1:-1;707:8662:99;5160:16:97;707:8662:99;;;-1:-1:-1;707:8662:99;;;;;;;;;;;;;;;;;2936:47:97;707:8662:99;;;;;;;;6360:12:91;;;707:8662:99;;;6360:24:91;6356:75;;5055:221:97;6474:30:91;;;:::i;:::-;707:8662:99;;;;;6578:12:91;;;;:::i;:::-;;6604:24;;;5055:221:97;-1:-1:-1;6600:188:91;;;-1:-1:-1;;;;707:8662:99;;;;;;;6644:29:91;:21;;;;:::i;:::-;:29;707:8662:99;;;;;;;;;;;;;;;;;;;;;6600:188:91;6753:24;;8167:38:61;;-1:-1:-1;;;;;707:8662:99;;;;;8167:38:61;:::i;:::-;6753:24:91;;;:::i;6604:::-;707:8662:99;;;;;;6614:14:91;;-1:-1:-1;6604:24:91;;;6356:75;6400:20;;;:::i;:::-;6356:75;;707:8662:99;;;;;;;;-1:-1:-1;;;;;707:8662:99;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;5282:431:97:-;;;;5487:25;;:23;:13;707:8662:99;5494:5:97;707:8662:99;;;;;;;;;5487:23:97;707:8662:99;;-1:-1:-1;;;5487:25:97;;707:8662:99;;;;;5487:25:97;;;;;;;5631:65;5487:25;5631:65;5487:25;5494:5;5487:25;;;5282:431;-1:-1:-1;;;;;;707:8662:99;;;;:::i;:::-;-1:-1:-1;;;;;5677:4:97;707:8662:99;;;5677:4:97;5487:25;5642:53;;707:8662:99;;;5631:65:97;;;5487:25;5631:65;;;:::i;:::-;5472:234;;;;;5494:5;707:8662:99;5472:234:97;707:8662:99;;;;;;;;;;;;;;5472:234:97;;5487:25;5472:234;;;:::i;:::-;;;;;;;;;;;5282:431;:::o;5472:234::-;;;;;;:::i;:::-;;;:::i;5487:25::-;;;;;;;;;;;;;;:::i;:::-;;;;5719:137;707:8662:99;5719:137:97;707:8662:99;5802:47:97;5719:137;5809:5;707:8662:99;;;;;;;;;;;;;;;;;;5802:47:97;;;;;707:8662:99;;;;;;5802:47:97;;;;;;;;5719:137;:::o;5802:47::-;;;;;;;;;;;;;:::i;:::-;;5719:137::o;707:8662:99:-;;;;;;;:::o;:::-;;;;;;;;;;;;5862:623:97;;;5988:12;707:8662:99;;;;;;;5984:495:97;;5862:623;;;;;;:::o;5984:495::-;707:8662:99;;-1:-1:-1;;;6033:22:97;;707:8662:99;6033:22:97;;707:8662:99;;6033:22:97;;707:8662:99;;-1:-1:-1;;;;;707:8662:99;6033:22:97;;;;;;;5988:12;6033:22;;;5984:495;-1:-1:-1;707:8662:99;;-1:-1:-1;;;6033:22:97;6094:81;;;;;;;;707:8662:99;;;;-1:-1:-1;;;;;707:8662:99;;;;;;;;;;;;;;;;;;;;;;6094:81:97;707:8662:99;;;;6094:81:97;;707:8662:99;;6094:81:97;;;;;;:::i;:::-;707:8662:99;6194:9:97;:55;6190:124;;5988:12;6328:141;;;;;;1271:7;6328:141;;5984:495;;;;;;;6190:124;707:8662:99;;-1:-1:-1;;;6276:23:97;;6033:22;;6276:23;6033:22;6094:81;6033:22;;;6094:81;6033:22;;;;;;;;;;;:::i;:::-;;;;;10167:206:61;707:8662:99;;10303:8:61;;;:63;;10262:17;10167:206;:::o;10303:63::-;707:8662:99;;;;;;;;;;10262:17:61;14249:109;;10262:17;14249:109;;;707:8662:99;;;10167:206:61;:::o;707:8662:99:-;;;;;;;:::i;:::-;-1:-1:-1;707:8662:99;;;;;;;:::o;5573:258:91:-;707:8662:99;5573:258:91;11308:22:61;5573:258:91;707:8662:99;;:::i;:::-;;;;:::i;:::-;;11308:22:61;:::i;:::-;707:8662:99;;:::i;:::-;;;;;;5805:17:91;707:8662:99;;;;;5805:17:91;;707:8662:99;;;;;;;;:::i;:::-;;;5805:17:91;5759:65;;707:8662:99;5573:258:91;:::o;6893:76:26:-;;;:::i;:::-;;;:::i;:::-;1805:1:29;-1:-1:-1;;;;;;;;;;;707:8662:99;6893:76:26:o;707:8662:99:-;;;;;;;:::i;:::-;-1:-1:-1;707:8662:99;;:::o;:::-;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;:::o;8763:604::-;;8969:30;8763:604;707:8662;;:::i;:::-;;;;8905:30;;;;;;;;;;;;;:::i;:::-;707:8662;;-1:-1:-1;;;8969:30:99;;707:8662;;;;;;;;-1:-1:-1;;;;;707:8662:99;8969:30;;;;;;;;;;;8763:604;9013:19;;;707:8662;;;;;;;;;;;;;;;9013:36;;9009:95;;707:8662;9118:29;;9150:1;707:8662;;9118:33;9114:102;;9226:34;707:8662;9271:54;707:8662;;;;;;;;;;;8969:30;707:8662;;;8969:30;707:8662;;9226:34;707:8662;9271:54;707:8662;;9271:54;9343:17;8763:604;:::o;9114:102::-;707:8662;;-1:-1:-1;;;9174:31:99;;8969:30;;9174:31;9009:95;707:8662;;-1:-1:-1;;;9072:21:99;;8969:30;;9072:21;8969:30;;;;;;;;;;;;;;;:::i;:::-;;;;;707:8662;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::o;10552:388:61:-;707:8662:99;;10728:8:61;;;10752:20;;10690:17;10752:20;10690:17;10752:20;10690:17;10752:20;:::o;10724:210::-;707:8662:99;;;;;;;;;;;14249:109:61;10690:17;14249:109;;10690:17;14249:109;;;707:8662:99;:::i;:::-;;;;;;;14249:109:61;707:8662:99;;;;;10911:11:61;;707:8662:99;;10886:37:61;10870:1;10886:37;;;:::o;6999:207:91:-;;7117:34;6999:207;7117:34;;:::i;11486:272::-;;707:8662:99;11308:22:61;11718:31:91;11486:272;707:8662:99;;:::i;:::-;;;;:::i;:::-;;11308:22:61;;:::i;707:8662:99:-;;11718:12:91;707:8662:99;;;;;11731:17:91;707:8662:99;;;;;11731:17:91;;707:8662:99;;11718:12:91;;:31;:::i;:::-;707:8662:99;;;;;;;;;:::i;:::-;;;;;;11731:17:91;11672:79;;707:8662:99;11486:272:91;:::o;707:8662:99:-;;;-1:-1:-1;;;707:8662:99;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::o;:::-;;;;;-1:-1:-1;;;707:8662:99;;;;;;;;;;;;;;;:::i;9441:606:61:-;;707:8662:99;;9594:15:61;9559:17;9619:18;;9658:1;9652:7;;9648:234;;9441:606;9906:53;;12919:10;;;;;;-1:-1:-1;;9977:8:61;;;:63;;9559:17;9441:606;:::o;9977:63::-;9992:48;10025:7;;9992:41;10025:7;;:::i;:::-;9992:41;14249:109;;;;;;14099:265;;9992:41;707:8662:99;;;;;12912:230:61;2900:5:58;;;;;2910;;;;707:8662:99;;;;;;;;;14249:109:61;9559:17;14249:109;707:8662:99;14249:109:61;;;9559:17;14249:109;;707:8662:99;;;;;-1:-1:-1;12996:136:61;707:8662:99;;;13055:10:61;12996:136;;12912:230;;;12996:136;13110:7;;;;;;:::i;:::-;12996:136;;;9648:234;9695:14;;;;:::i;:::-;707:8662:99;;;;;;;14249:109:61;9559:17;14249:109;707:8662:99;14249:109:61;;;9559:17;14249:109;;707:8662:99;;;;;9727:48:61;9723:149;707:8662:99;;;9795:10:61;9723:149;9648:234;;;9723:149;9850:7;;;;;:::i;:::-;9723:149;;;7084:141:26;707:8662:99;-1:-1:-1;;;;;;;;;;;707:8662:99;;;;7150:18:26;7146:73;;7084:141::o;7146:73::-;707:8662:99;;-1:-1:-1;;;7191:17:26;;;;;707:8662:99;;;-1:-1:-1;;;707:8662:99;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;707:8662:99;;;;;;;;;;;:::o;11513:870:61:-;707:8662:99;;11513:870:61;;;707:8662:99;11513:870:61;11672:7;;;;707:8662:99;11775:28:61;11795:7;;;:::i;:::-;11775:28;14249:109;;;;;;14099:265;;11775:28;707:8662:99;:::i;:::-;;;;;;;;;;;;;;;;11877:15:61;-1:-1:-1;11873:91:61;;707:8662:99;;12233:11:61;707:8662:99;;;12027:16:61;707:8662:99;;;;;;;12027:16:61;;;;12083:7;12063:43;12083:7;;12063:28;12083:7;;:::i;12063:28::-;707:8662:99;;;;;;;;;;;;;;;;;12063:43:61;12233:11;707:8662:99;-1:-1:-1;;;;;707:8662:99;;;;12225:27:61;;:::o;12023:189::-;707:8662:99;;;12145:52:61;707:8662:99;12155:41:61;707:8662:99;;:::i;:::-;;;;;;;;12155:41:61;-1:-1:-1;;;;;707:8662:99;;12155:41:61;;;707:8662:99;12145:52:61;:::i;:::-;12023:189;;11873:91;707:8662:99;;-1:-1:-1;;;11919:30:61;;;;;11668:709;12283:52;707:8662:99;;12293:41:61;707:8662:99;;:::i;12293:41:61:-;-1:-1:-1;;;;;707:8662:99;;12293:41:61;;;707:8662:99;12145:52:61;:::i;12283:::-;11678:1;12349:17;;:::o;8587:1642:58:-;8658:6;;8654:45;;9401:7;10201:10;10142:26;10093;10044;9995;9946;9897;9848;707:8662:99;10189:23:58;9401:7;8663:1;707:8662:99;;;;10826:16:58;10822:99;;8587:1642;707:8662:99;;;;10938:15:58;10934:96;;8587:1642;707:8662:99;;;;11047:15:58;11043:96;;8587:1642;707:8662:99;;;;11156:15:58;11152:96;;8587:1642;707:8662:99;;;;11265:14:58;11261:93;;8587:1642;707:8662:99;;;;11371:14:58;11367:93;;8587:1642;707:8662:99;;;;11477:14:58;11473:93;;8587:1642;707:8662:99;;;11579:64:58;;8587:1642;707:8662:99;;;9858:10:58;;;;:::i;:::-;707:8662:99;;;;;9848:26:58;9907:10;;;;:::i;9897:26::-;9956:10;;;;:::i;9946:26::-;10005:10;;;;:::i;9995:26::-;10054:10;;;;:::i;10044:26::-;10103:10;;;;:::i;10093:26::-;10152:10;;;;:::i;10142:26::-;10201:10;;;:::i;:::-;10189:23;;:::i;11579:64::-;707:8662:99;;11579:64:58;;11473:93;707:8662:99;11511:11:58;;707:8662:99;;11473:93:58;;;;11367;707:8662:99;11405:11:58;;707:8662:99;;11367:93:58;;;;11261;707:8662:99;11299:11:58;;707:8662:99;;11261:93:58;;;;11152:96;707:8662:99;11191:12:58;;707:8662:99;;11152:96:58;;;;11043;707:8662:99;11082:12:58;;707:8662:99;;11043:96:58;;;;10934;707:8662:99;10973:12:58;;707:8662:99;;10934:96:58;;;;10822:99;10862:13;;;707:8662:99;10822:99:58;;;;8654:45;8680:8;8663:1;8680:8;:::o","linkReferences":{},"immutableReferences":{"64520":[{"start":810,"length":32}],"64523":[{"start":4873,"length":32},{"start":9285,"length":32}],"72304":[{"start":460,"length":32},{"start":7054,"length":32}],"72307":[{"start":742,"length":32},{"start":7448,"length":32}],"73037":[{"start":2540,"length":32},{"start":4959,"length":32}]}},"methodIdentifiers":{"BURNER_GAS_LIMIT()":"d5c24e1a","BURNER_RESERVE()":"2964f8dc","FACTORY()":"2dd31000","NETWORK_MIDDLEWARE_SERVICE()":"2c9d45b3","NETWORK_REGISTRY()":"c0cd7c3e","TYPE()":"bb24fe8a","VAULT_FACTORY()":"103f2907","cumulativeSlash(bytes32,address)":"1a2be2c4","cumulativeSlashAt(bytes32,address,uint48,bytes)":"aa8e6489","executeSlash(uint256,bytes)":"b94c386e","initialize(bytes)":"439fab91","isBurnerHook()":"34d098ea","latestSlashedCaptureTimestamp(bytes32,address)":"267de1f3","requestSlash(bytes32,address,uint256,uint48,bytes)":"545ce389","resolver(bytes32,bytes)":"cd05b8a1","resolverAt(bytes32,uint48,bytes)":"31ce4dfe","resolverSetEpochsDelay()":"bc6eac5b","setResolver(uint96,address,bytes)":"9168f9d2","slashRequests(uint256)":"9a896551","slashRequestsLength()":"8f42f9ab","slashableStake(bytes32,address,uint48,bytes)":"aab3595f","staticDelegateCall(address,bytes)":"9f86fd85","vault()":"fbfa77cf","vetoDuration()":"e054e08b","vetoSlash(uint256,bytes)":"f9268d18"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"vaultFactory\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"networkMiddlewareService\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"networkRegistry\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"slasherFactory\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"entityType\",\"type\":\"uint64\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"AlreadySet\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CheckpointUnorderedInsertion\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientBurnerGas\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientSlash\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidCaptureTimestamp\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidResolverSetEpochsDelay\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidVetoDuration\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NoBurner\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NoResolver\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotNetwork\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotNetworkMiddleware\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotResolver\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotVault\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ReentrancyGuardReentrantCall\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"bits\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"SafeCastOverflowedUintDowncast\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SlashPeriodEnded\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SlashRequestCompleted\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SlashRequestNotExist\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"VetoPeriodEnded\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"VetoPeriodNotEnded\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"slashIndex\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"slashedAmount\",\"type\":\"uint256\"}],\"name\":\"ExecuteSlash\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"slashIndex\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"slashAmount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint48\",\"name\":\"captureTimestamp\",\"type\":\"uint48\"},{\"indexed\":false,\"internalType\":\"uint48\",\"name\":\"vetoDeadline\",\"type\":\"uint48\"}],\"name\":\"RequestSlash\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"resolver\",\"type\":\"address\"}],\"name\":\"SetResolver\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"slashIndex\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"resolver\",\"type\":\"address\"}],\"name\":\"VetoSlash\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"BURNER_GAS_LIMIT\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"BURNER_RESERVE\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"FACTORY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"NETWORK_MIDDLEWARE_SERVICE\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"NETWORK_REGISTRY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"TYPE\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"VAULT_FACTORY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"cumulativeSlash\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hint\",\"type\":\"bytes\"}],\"name\":\"cumulativeSlashAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"slashIndex\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"hints\",\"type\":\"bytes\"}],\"name\":\"executeSlash\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"slashedAmount\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isBurnerHook\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"latestSlashedCaptureTimestamp\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"value\",\"type\":\"uint48\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint48\",\"name\":\"captureTimestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hints\",\"type\":\"bytes\"}],\"name\":\"requestSlash\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"slashIndex\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"hint\",\"type\":\"bytes\"}],\"name\":\"resolver\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hint\",\"type\":\"bytes\"}],\"name\":\"resolverAt\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"resolverSetEpochsDelay\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint96\",\"name\":\"identifier\",\"type\":\"uint96\"},{\"internalType\":\"address\",\"name\":\"resolver_\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"hints\",\"type\":\"bytes\"}],\"name\":\"setResolver\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"slashRequests\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint48\",\"name\":\"captureTimestamp\",\"type\":\"uint48\"},{\"internalType\":\"uint48\",\"name\":\"vetoDeadline\",\"type\":\"uint48\"},{\"internalType\":\"bool\",\"name\":\"completed\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"slashRequestsLength\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"captureTimestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hints\",\"type\":\"bytes\"}],\"name\":\"slashableStake\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"staticDelegateCall\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"vault\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"vetoDuration\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"slashIndex\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"hints\",\"type\":\"bytes\"}],\"name\":\"vetoSlash\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"CheckpointUnorderedInsertion()\":[{\"details\":\"A value was attempted to be inserted on a past checkpoint.\"}],\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"ReentrancyGuardReentrantCall()\":[{\"details\":\"Unauthorized reentrant call.\"}],\"SafeCastOverflowedUintDowncast(uint8,uint256)\":[{\"details\":\"Value doesn't fit in an uint of `bits` size.\"}]},\"events\":{\"ExecuteSlash(uint256,uint256)\":{\"params\":{\"slashIndex\":\"index of the slash request\",\"slashedAmount\":\"virtual amount of the collateral slashed\"}},\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"RequestSlash(uint256,bytes32,address,uint256,uint48,uint48)\":{\"params\":{\"captureTimestamp\":\"time point when the stake was captured\",\"operator\":\"operator that could be slashed (if the request is not vetoed)\",\"slashAmount\":\"maximum amount of the collateral to be slashed\",\"slashIndex\":\"index of the slash request\",\"subnetwork\":\"subnetwork that requested the slash\",\"vetoDeadline\":\"deadline for the resolver to veto the slash (exclusively)\"}},\"SetResolver(bytes32,address)\":{\"params\":{\"resolver\":\"address of the resolver\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"}},\"VetoSlash(uint256,address)\":{\"params\":{\"resolver\":\"address of the resolver that vetoed the slash\",\"slashIndex\":\"index of the slash request\"}}},\"kind\":\"dev\",\"methods\":{\"cumulativeSlash(bytes32,address)\":{\"params\":{\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"},\"returns\":{\"_0\":\"cumulative slash amount\"}},\"cumulativeSlashAt(bytes32,address,uint48,bytes)\":{\"params\":{\"hint\":\"hint for the checkpoint index\",\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\",\"timestamp\":\"time point to get the cumulative slash amount until (inclusively)\"},\"returns\":{\"_0\":\"cumulative slash amount until the given timestamp (inclusively)\"}},\"executeSlash(uint256,bytes)\":{\"details\":\"Only a network middleware can call this function.\",\"params\":{\"hints\":\"hints for checkpoints' indexes\",\"slashIndex\":\"index of the slash request\"},\"returns\":{\"slashedAmount\":\"virtual amount of the collateral slashed\"}},\"initialize(bytes)\":{\"params\":{\"data\":\"some data to use\"}},\"requestSlash(bytes32,address,uint256,uint48,bytes)\":{\"details\":\"Only a network middleware can call this function.\",\"params\":{\"amount\":\"maximum amount of the collateral to be slashed\",\"captureTimestamp\":\"time point when the stake was captured\",\"hints\":\"hints for checkpoints' indexes\",\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"},\"returns\":{\"slashIndex\":\"index of the slash request\"}},\"resolver(bytes32,bytes)\":{\"params\":{\"hint\":\"hint for the checkpoint index\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"},\"returns\":{\"_0\":\"address of the resolver\"}},\"resolverAt(bytes32,uint48,bytes)\":{\"params\":{\"hint\":\"hint for the checkpoint index\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\",\"timestamp\":\"timestamp to get the resolver at\"},\"returns\":{\"_0\":\"address of the resolver\"}},\"slashRequestsLength()\":{\"returns\":{\"_0\":\"total number of slash requests\"}},\"slashableStake(bytes32,address,uint48,bytes)\":{\"params\":{\"captureTimestamp\":\"time point to get the stake amount at\",\"hints\":\"hints for the checkpoints' indexes\",\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"},\"returns\":{\"amount\":\"slashable amount of the stake\"}},\"staticDelegateCall(address,bytes)\":{\"details\":\"It allows to use this contract's storage on-chain.\",\"params\":{\"data\":\"data to make a delegatecall with\",\"target\":\"address of the contract to make a delegatecall to\"}},\"vetoSlash(uint256,bytes)\":{\"details\":\"Only a resolver can call this function.\",\"params\":{\"hints\":\"hints for checkpoints' indexes\",\"slashIndex\":\"index of the slash request\"}}},\"stateVariables\":{\"NETWORK_REGISTRY\":{\"return\":\"address of the network registry\",\"returns\":{\"_0\":\"address of the network registry\"}},\"resolverSetEpochsDelay\":{\"return\":\"updating resolver delay in epochs\",\"returns\":{\"_0\":\"updating resolver delay in epochs\"}},\"slashRequests\":{\"params\":{\"slashIndex\":\"index of the slash request\"},\"returns\":{\"amount\":\"maximum amount of the collateral to be slashed\",\"captureTimestamp\":\"time point when the stake was captured\",\"completed\":\"if the slash was vetoed/executed\",\"operator\":\"operator that could be slashed (if the request is not vetoed)\",\"subnetwork\":\"subnetwork that requested the slash\",\"vetoDeadline\":\"deadline for the resolver to veto the slash (exclusively)\"}},\"vetoDuration\":{\"return\":\"duration of the veto period\",\"returns\":{\"_0\":\"duration of the veto period\"}}},\"version\":1},\"userdoc\":{\"events\":{\"ExecuteSlash(uint256,uint256)\":{\"notice\":\"Emitted when a slash request is executed.\"},\"RequestSlash(uint256,bytes32,address,uint256,uint48,uint48)\":{\"notice\":\"Emitted when a slash request is created.\"},\"SetResolver(bytes32,address)\":{\"notice\":\"Emitted when a resolver is set.\"},\"VetoSlash(uint256,address)\":{\"notice\":\"Emitted when a slash request is vetoed.\"}},\"kind\":\"user\",\"methods\":{\"BURNER_GAS_LIMIT()\":{\"notice\":\"Get a gas limit for the burner.\"},\"BURNER_RESERVE()\":{\"notice\":\"Get a reserve gas between the gas limit check and the burner's execution.\"},\"FACTORY()\":{\"notice\":\"Get the factory's address.\"},\"NETWORK_MIDDLEWARE_SERVICE()\":{\"notice\":\"Get the network middleware service's address.\"},\"NETWORK_REGISTRY()\":{\"notice\":\"Get the network registry's address.\"},\"TYPE()\":{\"notice\":\"Get the entity's type.\"},\"VAULT_FACTORY()\":{\"notice\":\"Get the vault factory's address.\"},\"cumulativeSlash(bytes32,address)\":{\"notice\":\"Get a cumulative slash amount for an operator on a subnetwork.\"},\"cumulativeSlashAt(bytes32,address,uint48,bytes)\":{\"notice\":\"Get a cumulative slash amount for an operator on a subnetwork until a given timestamp (inclusively) using a hint.\"},\"executeSlash(uint256,bytes)\":{\"notice\":\"Execute a slash with a given slash index using hints.\"},\"initialize(bytes)\":{\"notice\":\"Initialize this entity contract by using a given data.\"},\"isBurnerHook()\":{\"notice\":\"Get if the burner is needed to be called on a slashing.\"},\"latestSlashedCaptureTimestamp(bytes32,address)\":{\"notice\":\"Get the latest capture timestamp that was slashed on a subnetwork.\"},\"requestSlash(bytes32,address,uint256,uint48,bytes)\":{\"notice\":\"Request a slash using a subnetwork for a particular operator by a given amount using hints.\"},\"resolver(bytes32,bytes)\":{\"notice\":\"Get a resolver for a given subnetwork using a hint.\"},\"resolverAt(bytes32,uint48,bytes)\":{\"notice\":\"Get a resolver for a given subnetwork at a particular timestamp using a hint.\"},\"resolverSetEpochsDelay()\":{\"notice\":\"Get a delay for networks in epochs to update a resolver.\"},\"slashRequests(uint256)\":{\"notice\":\"Get a particular slash request.\"},\"slashRequestsLength()\":{\"notice\":\"Get a total number of slash requests.\"},\"slashableStake(bytes32,address,uint48,bytes)\":{\"notice\":\"Get a slashable amount of a stake got at a given capture timestamp using hints.\"},\"staticDelegateCall(address,bytes)\":{\"notice\":\"Make a delegatecall from this contract to a given target contract with a particular data (always reverts with a return data).\"},\"vault()\":{\"notice\":\"Get the vault's address.\"},\"vetoDuration()\":{\"notice\":\"Get a duration during which resolvers can veto slash requests.\"},\"vetoSlash(uint256,bytes)\":{\"notice\":\"Veto a slash with a given slash index using hints.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/contracts/slasher/VetoSlasher.sol\":\"VetoSlasher\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609\",\"dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardUpgradeable.sol\":{\"keccak256\":\"0xb44e086e941292cdc7f440de51478493894ef0b1aeccb0c4047445919f667f74\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://942dad22fbdc1669f025540ba63aa3ccfad5f8458fc5d4525b31ebf272e7af45\",\"dweb:/ipfs/Qmdo4X2M82aM3AMoW2kf2jhYkSCyC4T1pHNd6obdsDFnAB\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875\",\"dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0xe19a4d5f31d2861e7344e8e535e2feafb913d806d3e2b5fe7782741a2a7094fe\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4aed79c0fa6f0546ed02f2f683e8f77f0fd2ed7eb34d8bbf3d373c9a6d95b13c\",\"dweb:/ipfs/QmWqVz6UAVqmnWU5pqYPt1o6iDEZyPaBraAA3rKfTTSfYj\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/Checkpoints.sol\":{\"keccak256\":\"0xbdc5e074d7dd6678f67e92b1a51a20226801a407b0e1af3da367c5d1ff4519ad\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a36cca6b22fff3db16fc789ff6c60eea71d4b156065d4d0c83a0bc5e91a77a8b\",\"dweb:/ipfs/QmYN3exd5AemxjBrN8XMB1p5LbbE16uC3sjbYjwi8AjcGR\"]},\"lib/openzeppelin-contracts/contracts/utils/types/Time.sol\":{\"keccak256\":\"0xc7755af115020049e4140f224f9ee88d7e1799ffb0646f37bf0df24bf6213f58\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7f09bf94d5274334ec021f61a04659db303f31e60460e14b709c9bf187740111\",\"dweb:/ipfs/QmNvgomZYUwFAt4cZbPWAiTeSZQreGehY9BK5xyVJsUttb\"]},\"src/contracts/common/Entity.sol\":{\"keccak256\":\"0x3d61a932995b8443381f3950542d388223a2c26dd5d29a3274dea3baa7388bd7\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://7cdf5f03ca72fd263fd32ff59c8d88ddca911ae83896a287d10772c1bbe9b138\",\"dweb:/ipfs/QmbP84r5BWT1Rn9AYTntWSf3xUMTTCohTZJFhbBhDXFoHa\"]},\"src/contracts/common/StaticDelegateCallable.sol\":{\"keccak256\":\"0x350029aa8955eacaffffaeb58babc5c98e80ebc5c5db388ed17ee6465f4a9d90\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://eb392a8ee9050e0af606897df63e3404e3829e8b688b580663892f9664195764\",\"dweb:/ipfs/QmaXC8jqV8UrrAFkzXTEv2fJF56sy33HhLxAzaRZmUxuXD\"]},\"src/contracts/libraries/Checkpoints.sol\":{\"keccak256\":\"0xba90097c8bfe0a975499428b5f8ac5569483c7d92ccc28c12d70de416aae040c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://12f5d93ca94cd06d3147db68993165a58e17903ed53682560de61f3085ad4609\",\"dweb:/ipfs/QmePiuAqvXprMLmFZkGZeGjvGPAvsEDHfCDv7BoQhXu9xE\"]},\"src/contracts/libraries/Subnetwork.sol\":{\"keccak256\":\"0xf5ef5506fd66082b3c2e7f3df37529f5a8efad32ac62e7c8914bd63219190bfe\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba031a54ee0d0e9a270c2b9e18437f5668cfeb659cfd5fe0677459d7fcac2a56\",\"dweb:/ipfs/QmReP3H7qQ78tAfgLnJKsNEQNCQfF1X1Get38Ffd4kzq32\"]},\"src/contracts/slasher/BaseSlasher.sol\":{\"keccak256\":\"0x190e5dce196a061bdad42468c52e9f5b0eb7810cd7d0c19f04d6a2e94984f1b6\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://07ca08d0cd43c2fe5d54a5577f6bdd522ced410f5d3a52e764deaa7ba26b5f06\",\"dweb:/ipfs/QmZe3PiMKBQKWcwodaLupragdqxPjgS4v1qMC7RXau8hDF\"]},\"src/contracts/slasher/VetoSlasher.sol\":{\"keccak256\":\"0xeccc8128de5e1ad499c067feac1c526638fbbac1a18b96726fc7507969fd5897\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://cdfcf281338423625acbccdf8810115b258ef7cfe4aa3c10b8911ead1aa85429\",\"dweb:/ipfs/QmZFsDvZXpkFkx4PHcDXAVPN3ZCAahbSVfYpSVrMBvbt4k\"]},\"src/interfaces/common/IEntity.sol\":{\"keccak256\":\"0x8ef4b63d6da63489778ccd5f8d13ebdd527dd4b62730b2c616df5af7474d2d21\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a8d69576a9219d85c50816a18ad53a4d53cfcb27ed38b8cccc808dc2734b71b\",\"dweb:/ipfs/QmYVN3P4Q4REvBWJ97TbAcaxm3uyB2anV6NSGa6ZtSwcEv\"]},\"src/interfaces/common/IMigratableEntity.sol\":{\"keccak256\":\"0x8f5f2809f3afbe8ebfbb365dd7b57b4dd3b6f9943a6187eaf648d45895b8e3c4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ffe640537d539e7a4fde70d30d3e4c57f4ba9c2c25c450cea713aae38e8fd5c\",\"dweb:/ipfs/QmSUTGzvdcn1R1KB7tLThMRtESsfPbeXDhhhKWGtntzBds\"]},\"src/interfaces/common/IRegistry.sol\":{\"keccak256\":\"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014\",\"dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK\"]},\"src/interfaces/common/IStaticDelegateCallable.sol\":{\"keccak256\":\"0xa335d4e81b9071b7de66ef92b43ff20671d86516eb1be46fef29a3483cd3f5d5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d464b9db863c14c05547d2b23352f2e9b7b784799cf09f6bbc4906a2a74e3516\",\"dweb:/ipfs/QmUVWzFvJz7eEbDQKiFTTzwi7TEbjcs3VmwdM4kuptAKvi\"]},\"src/interfaces/delegator/IBaseDelegator.sol\":{\"keccak256\":\"0x96bb312f032e17accce3f8f80936d99468029d6b37c9ca74acdb4b026a0148ee\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2a66dcb5b7d1a6ef6a363431ea98ebd78bc4fdd3d7a134d9b542dc66e7d025c2\",\"dweb:/ipfs/QmRhTPLd2ZAyRHmJUFUcWKs9b3if49QY17LYZuRqWmghw8\"]},\"src/interfaces/service/INetworkMiddlewareService.sol\":{\"keccak256\":\"0x347afc7fcf1fbcdb96d66162070ef6c78aed27b3af2c1d5dfb4e511840631783\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2d90b8ceb495159e8e4e95d76447719dd166443f67dfabdd942846162071595c\",\"dweb:/ipfs/QmVVuiAWYx92T6vBvNMKZfTvraCf1fa16BsUKkdNs3hdHA\"]},\"src/interfaces/slasher/IBaseSlasher.sol\":{\"keccak256\":\"0x7c82528b445659c313ab77335c407b0b6efe5e79027187bb287f7bc74202b404\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0274c90aa5df1aa6bb470a6aab53992fb14fd7e5472c9430416505b29647d9cf\",\"dweb:/ipfs/QmckbmJLDetPemVzCnnGcKYWAZV2BRFXGDsjiaec8jkHxx\"]},\"src/interfaces/slasher/IBurner.sol\":{\"keccak256\":\"0xaf495dacc19ae0b3c787ba8021c5944927d70261536addd234d7dab146158c2b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9b3cc66251008be6ff9fc8b11ecc6831d5a9dca49a3fe9817fcd970253c1d447\",\"dweb:/ipfs/QmVxfb9ALGdF9W3SN2h41gQbUct6tawvu5bw4K89kFQ4HW\"]},\"src/interfaces/slasher/IVetoSlasher.sol\":{\"keccak256\":\"0xdf7edd04a4f36e9aec3a15241dcb6b6315b2e64927b12710c2c410d571fc55e9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c4be6ac339c2ebf230fed65363f036784224095d0cd0f3f2d01d64d6e0da9508\",\"dweb:/ipfs/QmRSMbpfaHExqrzUA8vYZMYZWh6eQW1KX9JKJSLdgronfg\"]},\"src/interfaces/vault/IVault.sol\":{\"keccak256\":\"0xffee01d383cd4e1a5530c614bf4360c1ef070c288abec9da1eb531b51bc07235\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://04f0046cac285d8ec44ebbb1f79dc94fab4495767190cad8364fbc1fafaadfb9\",\"dweb:/ipfs/QmUawAunwzXfCyShWfhKeThAgKtqe51hmrxvrXvM772M2R\"]},\"src/interfaces/vault/IVaultStorage.sol\":{\"keccak256\":\"0x592626f13754194f83047135de19229c49390bd59e34659b1bb38be71d973a22\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://06a6a9dfddd05e580b32bebe2cff4f63ba26a653180676d58225dd30d9c89d3e\",\"dweb:/ipfs/QmdgzBeY6Sxo8mGtyBxtv1tM1c2kU6J6zjeRd7vuXm4DU6\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.25+commit.b61c2a91"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"vaultFactory","type":"address"},{"internalType":"address","name":"networkMiddlewareService","type":"address"},{"internalType":"address","name":"networkRegistry","type":"address"},{"internalType":"address","name":"slasherFactory","type":"address"},{"internalType":"uint64","name":"entityType","type":"uint64"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"AlreadySet"},{"inputs":[],"type":"error","name":"CheckpointUnorderedInsertion"},{"inputs":[],"type":"error","name":"InsufficientBurnerGas"},{"inputs":[],"type":"error","name":"InsufficientSlash"},{"inputs":[],"type":"error","name":"InvalidCaptureTimestamp"},{"inputs":[],"type":"error","name":"InvalidInitialization"},{"inputs":[],"type":"error","name":"InvalidResolverSetEpochsDelay"},{"inputs":[],"type":"error","name":"InvalidVetoDuration"},{"inputs":[],"type":"error","name":"NoBurner"},{"inputs":[],"type":"error","name":"NoResolver"},{"inputs":[],"type":"error","name":"NotInitialized"},{"inputs":[],"type":"error","name":"NotInitializing"},{"inputs":[],"type":"error","name":"NotNetwork"},{"inputs":[],"type":"error","name":"NotNetworkMiddleware"},{"inputs":[],"type":"error","name":"NotResolver"},{"inputs":[],"type":"error","name":"NotVault"},{"inputs":[],"type":"error","name":"ReentrancyGuardReentrantCall"},{"inputs":[{"internalType":"uint8","name":"bits","type":"uint8"},{"internalType":"uint256","name":"value","type":"uint256"}],"type":"error","name":"SafeCastOverflowedUintDowncast"},{"inputs":[],"type":"error","name":"SlashPeriodEnded"},{"inputs":[],"type":"error","name":"SlashRequestCompleted"},{"inputs":[],"type":"error","name":"SlashRequestNotExist"},{"inputs":[],"type":"error","name":"VetoPeriodEnded"},{"inputs":[],"type":"error","name":"VetoPeriodNotEnded"},{"inputs":[{"internalType":"uint256","name":"slashIndex","type":"uint256","indexed":true},{"internalType":"uint256","name":"slashedAmount","type":"uint256","indexed":false}],"type":"event","name":"ExecuteSlash","anonymous":false},{"inputs":[{"internalType":"uint64","name":"version","type":"uint64","indexed":false}],"type":"event","name":"Initialized","anonymous":false},{"inputs":[{"internalType":"uint256","name":"slashIndex","type":"uint256","indexed":true},{"internalType":"bytes32","name":"subnetwork","type":"bytes32","indexed":true},{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"uint256","name":"slashAmount","type":"uint256","indexed":false},{"internalType":"uint48","name":"captureTimestamp","type":"uint48","indexed":false},{"internalType":"uint48","name":"vetoDeadline","type":"uint48","indexed":false}],"type":"event","name":"RequestSlash","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32","indexed":true},{"internalType":"address","name":"resolver","type":"address","indexed":false}],"type":"event","name":"SetResolver","anonymous":false},{"inputs":[{"internalType":"uint256","name":"slashIndex","type":"uint256","indexed":true},{"internalType":"address","name":"resolver","type":"address","indexed":true}],"type":"event","name":"VetoSlash","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"BURNER_GAS_LIMIT","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"BURNER_RESERVE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"FACTORY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"NETWORK_MIDDLEWARE_SERVICE","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"NETWORK_REGISTRY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"TYPE","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"VAULT_FACTORY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"cumulativeSlash","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint48","name":"timestamp","type":"uint48"},{"internalType":"bytes","name":"hint","type":"bytes"}],"stateMutability":"view","type":"function","name":"cumulativeSlashAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"slashIndex","type":"uint256"},{"internalType":"bytes","name":"hints","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"executeSlash","outputs":[{"internalType":"uint256","name":"slashedAmount","type":"uint256"}]},{"inputs":[{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[],"stateMutability":"view","type":"function","name":"isBurnerHook","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"latestSlashedCaptureTimestamp","outputs":[{"internalType":"uint48","name":"value","type":"uint48"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint48","name":"captureTimestamp","type":"uint48"},{"internalType":"bytes","name":"hints","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"requestSlash","outputs":[{"internalType":"uint256","name":"slashIndex","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"bytes","name":"hint","type":"bytes"}],"stateMutability":"view","type":"function","name":"resolver","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"uint48","name":"timestamp","type":"uint48"},{"internalType":"bytes","name":"hint","type":"bytes"}],"stateMutability":"view","type":"function","name":"resolverAt","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"resolverSetEpochsDelay","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint96","name":"identifier","type":"uint96"},{"internalType":"address","name":"resolver_","type":"address"},{"internalType":"bytes","name":"hints","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"setResolver"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function","name":"slashRequests","outputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint48","name":"captureTimestamp","type":"uint48"},{"internalType":"uint48","name":"vetoDeadline","type":"uint48"},{"internalType":"bool","name":"completed","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"slashRequestsLength","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint48","name":"captureTimestamp","type":"uint48"},{"internalType":"bytes","name":"hints","type":"bytes"}],"stateMutability":"view","type":"function","name":"slashableStake","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"staticDelegateCall"},{"inputs":[],"stateMutability":"view","type":"function","name":"vault","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"vetoDuration","outputs":[{"internalType":"uint48","name":"","type":"uint48"}]},{"inputs":[{"internalType":"uint256","name":"slashIndex","type":"uint256"},{"internalType":"bytes","name":"hints","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"vetoSlash"}],"devdoc":{"kind":"dev","methods":{"cumulativeSlash(bytes32,address)":{"params":{"operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"},"returns":{"_0":"cumulative slash amount"}},"cumulativeSlashAt(bytes32,address,uint48,bytes)":{"params":{"hint":"hint for the checkpoint index","operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)","timestamp":"time point to get the cumulative slash amount until (inclusively)"},"returns":{"_0":"cumulative slash amount until the given timestamp (inclusively)"}},"executeSlash(uint256,bytes)":{"details":"Only a network middleware can call this function.","params":{"hints":"hints for checkpoints' indexes","slashIndex":"index of the slash request"},"returns":{"slashedAmount":"virtual amount of the collateral slashed"}},"initialize(bytes)":{"params":{"data":"some data to use"}},"requestSlash(bytes32,address,uint256,uint48,bytes)":{"details":"Only a network middleware can call this function.","params":{"amount":"maximum amount of the collateral to be slashed","captureTimestamp":"time point when the stake was captured","hints":"hints for checkpoints' indexes","operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"},"returns":{"slashIndex":"index of the slash request"}},"resolver(bytes32,bytes)":{"params":{"hint":"hint for the checkpoint index","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"},"returns":{"_0":"address of the resolver"}},"resolverAt(bytes32,uint48,bytes)":{"params":{"hint":"hint for the checkpoint index","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)","timestamp":"timestamp to get the resolver at"},"returns":{"_0":"address of the resolver"}},"slashRequestsLength()":{"returns":{"_0":"total number of slash requests"}},"slashableStake(bytes32,address,uint48,bytes)":{"params":{"captureTimestamp":"time point to get the stake amount at","hints":"hints for the checkpoints' indexes","operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"},"returns":{"amount":"slashable amount of the stake"}},"staticDelegateCall(address,bytes)":{"details":"It allows to use this contract's storage on-chain.","params":{"data":"data to make a delegatecall with","target":"address of the contract to make a delegatecall to"}},"vetoSlash(uint256,bytes)":{"details":"Only a resolver can call this function.","params":{"hints":"hints for checkpoints' indexes","slashIndex":"index of the slash request"}}},"version":1},"userdoc":{"kind":"user","methods":{"BURNER_GAS_LIMIT()":{"notice":"Get a gas limit for the burner."},"BURNER_RESERVE()":{"notice":"Get a reserve gas between the gas limit check and the burner's execution."},"FACTORY()":{"notice":"Get the factory's address."},"NETWORK_MIDDLEWARE_SERVICE()":{"notice":"Get the network middleware service's address."},"NETWORK_REGISTRY()":{"notice":"Get the network registry's address."},"TYPE()":{"notice":"Get the entity's type."},"VAULT_FACTORY()":{"notice":"Get the vault factory's address."},"cumulativeSlash(bytes32,address)":{"notice":"Get a cumulative slash amount for an operator on a subnetwork."},"cumulativeSlashAt(bytes32,address,uint48,bytes)":{"notice":"Get a cumulative slash amount for an operator on a subnetwork until a given timestamp (inclusively) using a hint."},"executeSlash(uint256,bytes)":{"notice":"Execute a slash with a given slash index using hints."},"initialize(bytes)":{"notice":"Initialize this entity contract by using a given data."},"isBurnerHook()":{"notice":"Get if the burner is needed to be called on a slashing."},"latestSlashedCaptureTimestamp(bytes32,address)":{"notice":"Get the latest capture timestamp that was slashed on a subnetwork."},"requestSlash(bytes32,address,uint256,uint48,bytes)":{"notice":"Request a slash using a subnetwork for a particular operator by a given amount using hints."},"resolver(bytes32,bytes)":{"notice":"Get a resolver for a given subnetwork using a hint."},"resolverAt(bytes32,uint48,bytes)":{"notice":"Get a resolver for a given subnetwork at a particular timestamp using a hint."},"resolverSetEpochsDelay()":{"notice":"Get a delay for networks in epochs to update a resolver."},"slashRequests(uint256)":{"notice":"Get a particular slash request."},"slashRequestsLength()":{"notice":"Get a total number of slash requests."},"slashableStake(bytes32,address,uint48,bytes)":{"notice":"Get a slashable amount of a stake got at a given capture timestamp using hints."},"staticDelegateCall(address,bytes)":{"notice":"Make a delegatecall from this contract to a given target contract with a particular data (always reverts with a return data)."},"vault()":{"notice":"Get the vault's address."},"vetoDuration()":{"notice":"Get a duration during which resolvers can veto slash requests."},"vetoSlash(uint256,bytes)":{"notice":"Veto a slash with a given slash index using hints."}},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/contracts/slasher/VetoSlasher.sol":"VetoSlasher"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b","urls":["bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609","dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardUpgradeable.sol":{"keccak256":"0xb44e086e941292cdc7f440de51478493894ef0b1aeccb0c4047445919f667f74","urls":["bzz-raw://942dad22fbdc1669f025540ba63aa3ccfad5f8458fc5d4525b31ebf272e7af45","dweb:/ipfs/Qmdo4X2M82aM3AMoW2kf2jhYkSCyC4T1pHNd6obdsDFnAB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d","urls":["bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875","dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol":{"keccak256":"0xe19a4d5f31d2861e7344e8e535e2feafb913d806d3e2b5fe7782741a2a7094fe","urls":["bzz-raw://4aed79c0fa6f0546ed02f2f683e8f77f0fd2ed7eb34d8bbf3d373c9a6d95b13c","dweb:/ipfs/QmWqVz6UAVqmnWU5pqYPt1o6iDEZyPaBraAA3rKfTTSfYj"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/Checkpoints.sol":{"keccak256":"0xbdc5e074d7dd6678f67e92b1a51a20226801a407b0e1af3da367c5d1ff4519ad","urls":["bzz-raw://a36cca6b22fff3db16fc789ff6c60eea71d4b156065d4d0c83a0bc5e91a77a8b","dweb:/ipfs/QmYN3exd5AemxjBrN8XMB1p5LbbE16uC3sjbYjwi8AjcGR"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/types/Time.sol":{"keccak256":"0xc7755af115020049e4140f224f9ee88d7e1799ffb0646f37bf0df24bf6213f58","urls":["bzz-raw://7f09bf94d5274334ec021f61a04659db303f31e60460e14b709c9bf187740111","dweb:/ipfs/QmNvgomZYUwFAt4cZbPWAiTeSZQreGehY9BK5xyVJsUttb"],"license":"MIT"},"src/contracts/common/Entity.sol":{"keccak256":"0x3d61a932995b8443381f3950542d388223a2c26dd5d29a3274dea3baa7388bd7","urls":["bzz-raw://7cdf5f03ca72fd263fd32ff59c8d88ddca911ae83896a287d10772c1bbe9b138","dweb:/ipfs/QmbP84r5BWT1Rn9AYTntWSf3xUMTTCohTZJFhbBhDXFoHa"],"license":"BUSL-1.1"},"src/contracts/common/StaticDelegateCallable.sol":{"keccak256":"0x350029aa8955eacaffffaeb58babc5c98e80ebc5c5db388ed17ee6465f4a9d90","urls":["bzz-raw://eb392a8ee9050e0af606897df63e3404e3829e8b688b580663892f9664195764","dweb:/ipfs/QmaXC8jqV8UrrAFkzXTEv2fJF56sy33HhLxAzaRZmUxuXD"],"license":"BUSL-1.1"},"src/contracts/libraries/Checkpoints.sol":{"keccak256":"0xba90097c8bfe0a975499428b5f8ac5569483c7d92ccc28c12d70de416aae040c","urls":["bzz-raw://12f5d93ca94cd06d3147db68993165a58e17903ed53682560de61f3085ad4609","dweb:/ipfs/QmePiuAqvXprMLmFZkGZeGjvGPAvsEDHfCDv7BoQhXu9xE"],"license":"MIT"},"src/contracts/libraries/Subnetwork.sol":{"keccak256":"0xf5ef5506fd66082b3c2e7f3df37529f5a8efad32ac62e7c8914bd63219190bfe","urls":["bzz-raw://ba031a54ee0d0e9a270c2b9e18437f5668cfeb659cfd5fe0677459d7fcac2a56","dweb:/ipfs/QmReP3H7qQ78tAfgLnJKsNEQNCQfF1X1Get38Ffd4kzq32"],"license":"MIT"},"src/contracts/slasher/BaseSlasher.sol":{"keccak256":"0x190e5dce196a061bdad42468c52e9f5b0eb7810cd7d0c19f04d6a2e94984f1b6","urls":["bzz-raw://07ca08d0cd43c2fe5d54a5577f6bdd522ced410f5d3a52e764deaa7ba26b5f06","dweb:/ipfs/QmZe3PiMKBQKWcwodaLupragdqxPjgS4v1qMC7RXau8hDF"],"license":"BUSL-1.1"},"src/contracts/slasher/VetoSlasher.sol":{"keccak256":"0xeccc8128de5e1ad499c067feac1c526638fbbac1a18b96726fc7507969fd5897","urls":["bzz-raw://cdfcf281338423625acbccdf8810115b258ef7cfe4aa3c10b8911ead1aa85429","dweb:/ipfs/QmZFsDvZXpkFkx4PHcDXAVPN3ZCAahbSVfYpSVrMBvbt4k"],"license":"BUSL-1.1"},"src/interfaces/common/IEntity.sol":{"keccak256":"0x8ef4b63d6da63489778ccd5f8d13ebdd527dd4b62730b2c616df5af7474d2d21","urls":["bzz-raw://5a8d69576a9219d85c50816a18ad53a4d53cfcb27ed38b8cccc808dc2734b71b","dweb:/ipfs/QmYVN3P4Q4REvBWJ97TbAcaxm3uyB2anV6NSGa6ZtSwcEv"],"license":"MIT"},"src/interfaces/common/IMigratableEntity.sol":{"keccak256":"0x8f5f2809f3afbe8ebfbb365dd7b57b4dd3b6f9943a6187eaf648d45895b8e3c4","urls":["bzz-raw://0ffe640537d539e7a4fde70d30d3e4c57f4ba9c2c25c450cea713aae38e8fd5c","dweb:/ipfs/QmSUTGzvdcn1R1KB7tLThMRtESsfPbeXDhhhKWGtntzBds"],"license":"MIT"},"src/interfaces/common/IRegistry.sol":{"keccak256":"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb","urls":["bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014","dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK"],"license":"MIT"},"src/interfaces/common/IStaticDelegateCallable.sol":{"keccak256":"0xa335d4e81b9071b7de66ef92b43ff20671d86516eb1be46fef29a3483cd3f5d5","urls":["bzz-raw://d464b9db863c14c05547d2b23352f2e9b7b784799cf09f6bbc4906a2a74e3516","dweb:/ipfs/QmUVWzFvJz7eEbDQKiFTTzwi7TEbjcs3VmwdM4kuptAKvi"],"license":"MIT"},"src/interfaces/delegator/IBaseDelegator.sol":{"keccak256":"0x96bb312f032e17accce3f8f80936d99468029d6b37c9ca74acdb4b026a0148ee","urls":["bzz-raw://2a66dcb5b7d1a6ef6a363431ea98ebd78bc4fdd3d7a134d9b542dc66e7d025c2","dweb:/ipfs/QmRhTPLd2ZAyRHmJUFUcWKs9b3if49QY17LYZuRqWmghw8"],"license":"MIT"},"src/interfaces/service/INetworkMiddlewareService.sol":{"keccak256":"0x347afc7fcf1fbcdb96d66162070ef6c78aed27b3af2c1d5dfb4e511840631783","urls":["bzz-raw://2d90b8ceb495159e8e4e95d76447719dd166443f67dfabdd942846162071595c","dweb:/ipfs/QmVVuiAWYx92T6vBvNMKZfTvraCf1fa16BsUKkdNs3hdHA"],"license":"MIT"},"src/interfaces/slasher/IBaseSlasher.sol":{"keccak256":"0x7c82528b445659c313ab77335c407b0b6efe5e79027187bb287f7bc74202b404","urls":["bzz-raw://0274c90aa5df1aa6bb470a6aab53992fb14fd7e5472c9430416505b29647d9cf","dweb:/ipfs/QmckbmJLDetPemVzCnnGcKYWAZV2BRFXGDsjiaec8jkHxx"],"license":"MIT"},"src/interfaces/slasher/IBurner.sol":{"keccak256":"0xaf495dacc19ae0b3c787ba8021c5944927d70261536addd234d7dab146158c2b","urls":["bzz-raw://9b3cc66251008be6ff9fc8b11ecc6831d5a9dca49a3fe9817fcd970253c1d447","dweb:/ipfs/QmVxfb9ALGdF9W3SN2h41gQbUct6tawvu5bw4K89kFQ4HW"],"license":"MIT"},"src/interfaces/slasher/IVetoSlasher.sol":{"keccak256":"0xdf7edd04a4f36e9aec3a15241dcb6b6315b2e64927b12710c2c410d571fc55e9","urls":["bzz-raw://c4be6ac339c2ebf230fed65363f036784224095d0cd0f3f2d01d64d6e0da9508","dweb:/ipfs/QmRSMbpfaHExqrzUA8vYZMYZWh6eQW1KX9JKJSLdgronfg"],"license":"MIT"},"src/interfaces/vault/IVault.sol":{"keccak256":"0xffee01d383cd4e1a5530c614bf4360c1ef070c288abec9da1eb531b51bc07235","urls":["bzz-raw://04f0046cac285d8ec44ebbb1f79dc94fab4495767190cad8364fbc1fafaadfb9","dweb:/ipfs/QmUawAunwzXfCyShWfhKeThAgKtqe51hmrxvrXvM772M2R"],"license":"MIT"},"src/interfaces/vault/IVaultStorage.sol":{"keccak256":"0x592626f13754194f83047135de19229c49390bd59e34659b1bb38be71d973a22","urls":["bzz-raw://06a6a9dfddd05e580b32bebe2cff4f63ba26a653180676d58225dd30d9c89d3e","dweb:/ipfs/QmdgzBeY6Sxo8mGtyBxtv1tM1c2kU6J6zjeRd7vuXm4DU6"],"license":"MIT"}},"version":1},"id":99} \ No newline at end of file +{"abi":[{"type":"constructor","inputs":[{"name":"vaultFactory","type":"address","internalType":"address"},{"name":"networkMiddlewareService","type":"address","internalType":"address"},{"name":"networkRegistry","type":"address","internalType":"address"},{"name":"slasherFactory","type":"address","internalType":"address"},{"name":"entityType","type":"uint64","internalType":"uint64"}],"stateMutability":"nonpayable"},{"type":"function","name":"BURNER_GAS_LIMIT","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"BURNER_RESERVE","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"FACTORY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"NETWORK_MIDDLEWARE_SERVICE","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"NETWORK_REGISTRY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"TYPE","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"VAULT_FACTORY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"cumulativeSlash","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"cumulativeSlashAt","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"timestamp","type":"uint48","internalType":"uint48"},{"name":"hint","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"executeSlash","inputs":[{"name":"slashIndex","type":"uint256","internalType":"uint256"},{"name":"hints","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"slashedAmount","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"initialize","inputs":[{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"isBurnerHook","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"latestSlashedCaptureTimestamp","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"value","type":"uint48","internalType":"uint48"}],"stateMutability":"view"},{"type":"function","name":"requestSlash","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"captureTimestamp","type":"uint48","internalType":"uint48"},{"name":"hints","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"slashIndex","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"resolver","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"hint","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"resolverAt","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"timestamp","type":"uint48","internalType":"uint48"},{"name":"hint","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"resolverSetEpochsDelay","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"setResolver","inputs":[{"name":"identifier","type":"uint96","internalType":"uint96"},{"name":"resolver_","type":"address","internalType":"address"},{"name":"hints","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"slashRequests","inputs":[{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"captureTimestamp","type":"uint48","internalType":"uint48"},{"name":"vetoDeadline","type":"uint48","internalType":"uint48"},{"name":"completed","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"slashRequestsLength","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"slashableStake","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"captureTimestamp","type":"uint48","internalType":"uint48"},{"name":"hints","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"staticDelegateCall","inputs":[{"name":"target","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"vault","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"vetoDuration","inputs":[],"outputs":[{"name":"","type":"uint48","internalType":"uint48"}],"stateMutability":"view"},{"type":"function","name":"vetoSlash","inputs":[{"name":"slashIndex","type":"uint256","internalType":"uint256"},{"name":"hints","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"ExecuteSlash","inputs":[{"name":"slashIndex","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"slashedAmount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"RequestSlash","inputs":[{"name":"slashIndex","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"subnetwork","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"slashAmount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"captureTimestamp","type":"uint48","indexed":false,"internalType":"uint48"},{"name":"vetoDeadline","type":"uint48","indexed":false,"internalType":"uint48"}],"anonymous":false},{"type":"event","name":"SetResolver","inputs":[{"name":"subnetwork","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"resolver","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"VetoSlash","inputs":[{"name":"slashIndex","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"resolver","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"error","name":"AlreadySet","inputs":[]},{"type":"error","name":"CheckpointUnorderedInsertion","inputs":[]},{"type":"error","name":"InsufficientBurnerGas","inputs":[]},{"type":"error","name":"InsufficientSlash","inputs":[]},{"type":"error","name":"InvalidCaptureTimestamp","inputs":[]},{"type":"error","name":"InvalidInitialization","inputs":[]},{"type":"error","name":"InvalidResolverSetEpochsDelay","inputs":[]},{"type":"error","name":"InvalidVetoDuration","inputs":[]},{"type":"error","name":"NoBurner","inputs":[]},{"type":"error","name":"NoResolver","inputs":[]},{"type":"error","name":"NotInitialized","inputs":[]},{"type":"error","name":"NotInitializing","inputs":[]},{"type":"error","name":"NotNetwork","inputs":[]},{"type":"error","name":"NotNetworkMiddleware","inputs":[]},{"type":"error","name":"NotResolver","inputs":[]},{"type":"error","name":"NotVault","inputs":[]},{"type":"error","name":"ReentrancyGuardReentrantCall","inputs":[]},{"type":"error","name":"SafeCastOverflowedUintDowncast","inputs":[{"name":"bits","type":"uint8","internalType":"uint8"},{"name":"value","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"SlashPeriodEnded","inputs":[]},{"type":"error","name":"SlashRequestCompleted","inputs":[]},{"type":"error","name":"SlashRequestNotExist","inputs":[]},{"type":"error","name":"VetoPeriodEnded","inputs":[]},{"type":"error","name":"VetoPeriodNotEnded","inputs":[]}],"bytecode":{"object":"0x6101203461017757601f612f8038819003918201601f19168301916001600160401b03918284118585101761017b578160a092869260409687528339810103126101775761004c8361018f565b6100586020850161018f565b9161006484860161018f565b9460806100736060830161018f565b910151918083168303610177577ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a009081549060ff82891c16610166578080831603610122575b50505060805260a05260c05260e05261010091825251612ddc91826101a483396080518261032a015260a0518281816113090152612445015260c0518281816101cc0152611b8e015260e0518281816102e60152611d180152518181816109ec015261135f0152f35b6001600160401b0319909116811790915585519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a15f80806100b9565b875163f92ee8a960e01b8152600490fd5b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b51906001600160a01b03821682036101775756fe60806040526004361015610011575f80fd5b5f3560e01c8063103f2907146101a45780631a2be2c41461019f578063267de1f31461019a5780632964f8dc146101955780632c9d45b3146101905780632dd310001461018b57806331ce4dfe1461018657806334d098ea14610181578063439fab911461017c578063545ce389146101775780638f42f9ab146101725780639168f9d21461016d5780639a896551146101685780639f86fd8514610163578063aa8e64891461015e578063aab3595f14610159578063b94c386e14610154578063bb24fe8a1461014f578063bc6eac5b1461014a578063c0cd7c3e14610145578063cd05b8a114610140578063d5c24e1a1461013b578063e054e08b14610136578063f9268d18146101315763fbfa77cf1461012c575f80fd5b611596565b611428565b611403565b6113e6565b61138e565b61134a565b61132d565b6112ea565b610f9e565b610f46565b610f08565b610e02565b610d77565b61094c565b61092f565b610695565b61055d565b61050c565b6104a3565b610315565b6102d1565b6102b5565b610260565b61020c565b6101b7565b5f9103126101b357565b5f80fd5b346101b3575f3660031901126101b3576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b6001600160a01b038116036101b357565b346101b35760403660031901126101b3576020610258610253602435610231816101fb565b6004355f526002845260405f209060018060a01b03165f5260205260405f2090565b61199e565b604051908152f35b346101b35760403660031901126101b357602065ffffffffffff6102ab602435610289816101fb565b6004355f526001845260405f209060018060a01b03165f5260205260405f2090565b5416604051908152f35b346101b3575f3660031901126101b3576020604051614e208152f35b346101b3575f3660031901126101b3576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346101b3575f3660031901126101b3576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b65ffffffffffff8116036101b357565b634e487b7160e01b5f52604160045260245ffd5b602081019081106001600160401b0382111761039857604052565b610369565b606081019081106001600160401b0382111761039857604052565b604081019081106001600160401b0382111761039857604052565b6001600160401b03811161039857604052565b90601f801991011681019081106001600160401b0382111761039857604052565b6040519060c082018281106001600160401b0382111761039857604052565b604051906104338261039d565b565b60405190610433826103b8565b6001600160401b03811161039857601f01601f191660200190565b81601f820112156101b35780359061047482610442565b9261048260405194856103e6565b828452602083830101116101b357815f926020809301838601378301015290565b346101b35760603660031901126101b3576024356104c081610359565b604435906001600160401b0382116101b3576105036104e5602093369060040161045d565b6004355f90815260068552604090206001600160a01b039390611a1e565b16604051908152f35b346101b3575f3660031901126101b357602060ff5f5460a01c166040519015158152f35b9181601f840112156101b3578235916001600160401b0383116101b357602083818601950101116101b357565b346101b35760203660031901126101b3576001600160401b036004358181116101b35761058e903690600401610530565b5f80516020612d87833981519152549260ff8460401c161593168015908161068d575b6001149081610683575b15908161067a575b50610668575f80516020612d87833981519152805467ffffffffffffffff191660011790556105f6918361064457611b57565b6105fc57005b5f80516020612d87833981519152805460ff60401b19169055604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a1005b5f80516020612d87833981519152805460ff60401b1916600160401b179055611b57565b60405163f92ee8a960e01b8152600490fd5b9050155f6105c3565b303b1591506105bb565b8491506105b1565b346101b35760a03660031901126101b357600460243581356106b6826101fb565b606435916106c383610359565b6084356001600160401b0381116101b3576106e19036908601610530565b93906106eb611cc1565b6106f484611cf0565b6106fc6115e2565b9480610919575b505061070e42611dd8565b610728610721875465ffffffffffff1690565b8092611657565b5f5490959061074d90610741906001600160a01b031681565b6001600160a01b031690565b958760206040988951928380926327f843b560e11b82525afa80156109145761078c92610781925f926108e3575b506116ad565b65ffffffffffff1690565b65ffffffffffff84169081109081156108cd575b506108bd576107b56107be9151848688611fc5565b50604435611d87565b9586156108af576108ab610884878988887f3cb7f4ff6cecf74cee0eb9ae3ebf8933fa60a53014cce52f96da72a78dba8464896108038a6107fe42611dd8565b611657565b92600354978894610854610815610407565b8881526001600160a01b0385166020820152808b018a905265ffffffffffff8616606082015265ffffffffffff831660808201525f60a08201526116d8565b885197885265ffffffffffff938416602089015290921660408701526001600160a01b0316949081906060820190565b0390a461089d60015f80516020612d6783398151915255565b519081529081906020820190565b0390f35b855163167f871760e31b8152fd5b8551631357ac9160e11b81528790fd5b90506108db61078142611dd8565b11155f6107a0565b61090691925060203d60201161090d575b6108fe81836103e6565b810190611676565b905f61077b565b503d6108f4565b61168b565b6109279295508101906115f5565b925f80610703565b346101b3575f3660031901126101b3576020600354604051908152f35b346101b35760603660031901126101b35760048035906bffffffffffffffffffffffff821682036101b357602435610983816101fb565b6044356001600160401b0381116101b3576109a19036908401610530565b906109aa611cc1565b6109b26115e2565b5081610d12575b5050604080516302910f8b60e31b8152338185019081526001600160a01b0395929491602091829082908190830103818a7f0000000000000000000000000000000000000000000000000000000000000000165afa908115610914575f91610ce5575b5015610cd6575f54610a57906001600160a01b0316936bffffffffffffffffffffffff166bffffffffffffffffffffffff193360601b161790565b95610a72610a6d885f52600660205260405f2090565b6128a9565b50949015610c6c57610a8661078142611dd8565b65ffffffffffff9586161115610c3657610ab0610aab895f52600660205260405f2090565b611d99565b505b610ad5610741610741610741610ad08c5f52600660205260405f2090565b612663565b91808716928303610b41575b505050505050610b26907f7b0b759b513b299fd2811f51926dca8854222a675557e8d544ce0933bf5b7570925b516001600160a01b0390911681529081906020820190565b0390a2610b3f60015f80516020612d6783398151915255565b005b610b588998959796985f52600660205260405f2090565b911692845163186a323160e21b815281818981885afa908115610914575f91610c19575b5081600554958751998a80926327f843b560e11b82525afa9081156109145789610be1610bf3977f7b0b759b513b299fd2811f51926dca8854222a675557e8d544ce0933bf5b75709c610be895610b269d610bed985f92610bfc575b505016906117e0565b9116611801565b611dd8565b90612b09565b82958495610ae1565b610c129250803d1061090d576108fe81836103e6565b5f80610bd8565b610c309150823d841161090d576108fe81836103e6565b5f610b7c565b610c54610741610741610741610ad08c5f52600660205260405f2090565b82871603610ab257865163a741a04560e01b81528490fd5b5093949385169250508115610cc8575091610b2691610cc17f7b0b759b513b299fd2811f51926dca8854222a675557e8d544ce0933bf5b757094610cb8875f52600660205260405f2090565b610bed42611dd8565b5050610b0e565b825163a741a04560e01b8152fd5b5083516323d53b9760e21b8152fd5b610d059150823d8411610d0b575b610cfd81836103e6565b8101906117cc565b5f610a1c565b503d610cf3565b610d1e918101906115f5565b505f806109b9565b634e487b7160e01b5f52603260045260245ffd5b600354811015610d725760035f5260021b7fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b01905f90565b610d26565b346101b35760203660031901126101b3576004356003548110156101b357610d9e90610d3a565b50805460018201546002830154600390930154604080519384526001600160a01b0390921660208401529082019290925265ffffffffffff808316606080840191909152603084901c90911660808301529190911c60ff16151560a082015260c090f35b346101b3576040806003193601126101b357600435610e20816101fb565b602435906001600160401b0382116101b3575f8091610e46610eaa943690600401610530565b908187519283928337810184815203915af43d15610eb257610e9c3d610e6b81610442565b90610e78865192836103e6565b81523d5f602083013e5b84519485931515602085015280840152606083019061180e565b03601f1981018352826103e6565b805190602001fd5b610e9c6060610e82565b9060806003198301126101b35760043591602435610ed9816101fb565b91604435610ee681610359565b91606435906001600160401b0382116101b357610f059160040161045d565b90565b346101b3576020610258610f41610f1e36610ebc565b939190925f526002865260405f209060018060a01b03165f5260205260405f2090565b611e0a565b346101b3576020610f62610f5936610ebc565b92919091611fc5565b50604051908152f35b9060406003198301126101b35760043591602435906001600160401b0382116101b357610f9a91600401610530565b9091565b346101b357610fac36610f6b565b9190610fb6611cc1565b610fbe61185e565b92806112d4575b50506003548110156112c257610fda81610d3a565b5090815490610fe882611cf0565b6003830180549365ffffffffffff9384861660018060a01b0361100d895183856115bd565b16151580611297575b8061127e575b61126c576110328161102d42611dd8565b6116ad565b5f5461104890610741906001600160a01b031681565b96600460206040998a51928380926327f843b560e11b82525afa80156109145782915f9161124d575b501691161161123c57600183018054909861109c93929188906001600160a01b031691015192611fc5565b906110ab816002850154611d87565b96871561122b5760601c60ff1661121a57926111d36111c6899461119e61118b8b9687876108ab9f6111998f9d8f9e6111d99f6110f586600160601b60ff60601b19825416179055565b8a54855461111791906001600160a01b0316885465ffffffffffff16916121f5565b8a5485546111309189916001600160a01b031690612275565b8a54945461114e906001600160a01b0316965465ffffffffffff1690565b97611157610426565b9384526020840152818301525196879160208301919091604080606083019480518452602081015160208501520151910152565b03601f1981018752866103e6565b6123e1565b6111b76111b1855465ffffffffffff1690565b866124ea565b5494546001600160a01b031690565b915465ffffffffffff1690565b92612567565b81518381527f5cc28df3b54da9d06f805d87616ebf969c81310f2aa8369cb14ca50f815d411190602090a261089d60015f80516020612d6783398151915255565b8551633428e90760e01b8152600490fd5b865163167f871760e31b8152600490fd5b8551639ea153eb60e01b8152600490fd5b611266915060203d60201161090d576108fe81836103e6565b5f611071565b60405163b62b15c760e01b8152600490fd5b5061128b61078142611dd8565b868860301c161161101c565b506112bb6107416112af6112aa42611dd8565b611696565b60208b015190856115bd565b1515611016565b604051637822972360e11b8152600490fd5b6112e292935081019061187d565b905f80610fc5565b346101b3575f3660031901126101b35760206040516001600160401b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b346101b3575f3660031901126101b3576020600554604051908152f35b346101b3575f3660031901126101b3576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346101b35760403660031901126101b3576024356001600160401b0381116101b3576113d46113c3602092369060040161045d565b6113cc42611dd8565b6004356115bd565b6040516001600160a01b039091168152f35b346101b3575f3660031901126101b3576020604051620249f08152f35b346101b3575f3660031901126101b357602065ffffffffffff60045416604051908152f35b346101b35761143636610f6b565b9061143f611cc1565b611447611905565b9180611582575b50506003548210156112c25761146382610d3a565b506003815491019182549165ffffffffffff9160018060a01b0361148b8251858716856115bd565b16918215918215611559575b5050611547573303611535576114af61078142611dd8565b908260301c1611156115245760601c60ff1661151257805460ff60601b1916600160601b17905533907f7d3d269c851b72257a5194a401d151902e9be4347d555996dcff3ff86a077e925f80a3610b3f60015f80516020612d6783398151915255565b604051633428e90760e01b8152600490fd5b60405162c457e560e81b8152600490fd5b604051635d154fe160e11b8152600490fd5b60405163dd1ebd9d60e01b8152600490fd5b61157a9250906107419160206115716112aa42611dd8565b910151916115bd565b155f80611497565b61158f925081019061191e565b5f8061144e565b346101b3575f3660031901126101b3575f546040516001600160a01b039091168152602090f35b5f9081526006602052604090206001600160a01b03926115de929091611a1e565b1690565b604051906115ef8261037d565b60608252565b906020828203126101b35781356001600160401b03928382116101b35701906020828203126101b3576040519261162b8461037d565b82359081116101b35761163e920161045d565b815290565b634e487b7160e01b5f52601160045260245ffd5b91909165ffffffffffff8080941691160191821161167157565b611643565b908160209103126101b35751610f0581610359565b6040513d5f823e3d90fd5b65ffffffffffff9081165f19019190821161167157565b65ffffffffffff918216908216039190821161167157565b634e487b7160e01b5f525f60045260245ffd5b600354600160401b811015610398578060016116f79201600355610d3a565b9190916117ba578051825560208101516001830180546001600160a01b0319166001600160a01b0392909216919091179055610433916117a09060a09060039060408501516002820155019261176d65ffffffffffff606083015116859065ffffffffffff1665ffffffffffff19825416179055565b60808101516bffffffffffff00000000000085549160301b16906bffffffffffff00000000000019161784550151151590565b815460ff60601b191690151560601b60ff60601b16179055565b6116c5565b519081151582036101b357565b908160209103126101b357610f05906117bf565b8181029291811591840414171561167157565b906001820180921161167157565b9190820180921161167157565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b5f9081526002602090815260408083206001600160a01b03909416835292905220610f05929190611e0a565b6040519061186b8261039d565b60606040838281528260208201520152565b906020828203126101b35781356001600160401b03928382116101b35701906060828203126101b357604051926118b38461039d565b82358181116101b357826118c891850161045d565b845260208301358181116101b357826118e291850161045d565b602085015260408301359081116101b3576118fd920161045d565b604082015290565b60405190611912826103b8565b60606020838281520152565b906020828203126101b35781356001600160401b03928382116101b35701906040828203126101b35760405192611954846103b8565b82358181116101b3578261196991850161045d565b845260208301359081116101b357611981920161045d565b602082015290565b8054821015610d72575f5260205f2001905f90565b6119a781612663565b6001600160d01b038116156119cc5760016119c29201611989565b90549060031b1c90565b50505f90565b908160209103126101b3575163ffffffff811681036101b35790565b5f1981019190821161167157565b9190820391821161167157565b90600163ffffffff8093160191821161167157565b91805115611b025780602080611a39935183010191016119d2565b91611a4483826126a3565b92611a55845165ffffffffffff1690565b9065ffffffffffff8085169216828114611ae95782119182611a94575b5050611a8257610f0592506129b5565b5050602001516001600160d01b031690565b909150611aa183546119ee565b63ffffffff831614918215611aba575b50505f80611a72565b611ae1919250611ad5611acf61078192611a09565b856126a3565b5165ffffffffffff1690565b115f80611ab1565b50505050602091909101516001600160d01b0316905090565b50610f05916129b5565b9190916040818403126101b3578035611b24816101fb565b9260208201356001600160401b0381116101b357610f05920161045d565b908160209103126101b35751610f05816101fb565b611b6391810190611b0c565b6040516302910f8b60e31b81526001600160a01b0392831660048201819052929160209182816024817f000000000000000000000000000000000000000000000000000000000000000088165afa908115610914575f91611ca4575b5015611c925781611bf4600492611bd46126f7565b5f80546001600160a01b0319166001600160a01b03891617905586612784565b94604051928380926313c085b760e11b82525afa918215610914575f92611c65575b5050161580611c5b575b611c4957516104339015155f805460ff60a01b191691151560a01b60ff60a01b16919091179055565b60405163d2420f5960e01b8152600490fd5b5080511515611c20565b611c849250803d10611c8b575b611c7c81836103e6565b810190611b42565b5f80611c16565b503d611c72565b6040516362df054560e01b8152600490fd5b611cbb9150833d8511610d0b57610cfd81836103e6565b5f611bbf565b5f80516020612d678339815191526002815414611cde5760029055565b604051633ee5aeb560e01b8152600490fd5b604051635daf681960e11b815260609190911c60048201526001600160a01b036020826024817f000000000000000000000000000000000000000000000000000000000000000085165afa918215610914575f92611d66575b5033911603611d5457565b60405163227bf64d60e01b8152600490fd5b611d8091925060203d602011611c8b57611c7c81836103e6565b905f611d49565b9080821015611d94575090565b905090565b90611da382612663565b9180548015611dc4575f190190611dba8282611989565b6117ba575f905555565b634e487b7160e01b5f52603160045260245ffd5b65ffffffffffff90818111611deb571690565b604490604051906306dfcc6560e41b8252603060048301526024820152fd5b91805115611ecc5780602080611e25935183010191016119d2565b91611e308382612903565b92611e41845165ffffffffffff1690565b9065ffffffffffff8085169216828114611ec05782119182611e77575b5050611e6e57610f0592506128f8565b50506020015190565b909150611e8483546119ee565b63ffffffff831614918215611e9d575b50505f80611e5e565b611eb8919250611ad5611eb261078192611a09565b85612903565b115f80611e94565b50505050506020015190565b50610f05916128f8565b81601f820112156101b357805190611eed82610442565b92611efb60405194856103e6565b828452602083830101116101b357815f9260208093018386015e8301015290565b906020828203126101b35781516001600160401b03928382116101b35701906040828203126101b35760405192611f52846103b8565b82518181116101b35782611f67918501611ed6565b845260208301519081116101b3576119819201611ed6565b908160209103126101b3575190565b9081526001600160a01b03909116602082015265ffffffffffff9091166040820152608060608201819052610f059291019061180e565b92611fce611905565b908051806121db575b5050611fe242611dd8565b5f54909490611ffb90610741906001600160a01b031681565b93604051956327f843b560e11b875260209687816004818a5afa80156109145761202f92610781925f926121c357506116ad565b65ffffffffffff82169081109081156121ac575b811561217b575b5061216f578560049560405196878092630ce9b79360e41b82525afa9485156109145761209c9587915f91612152575b50845190604051808099819463e02f693760e01b8352878b8a60048601611f8e565b03916001600160a01b03165afa9384156109145761210e955f95612111575b509261210385936121099361210396869a6120fa610253836120e5875f52600260205260405f2090565b9060018060a01b03165f5260205260405f2090565b95015192611832565b906119fc565b611d87565b91565b61210992955061210394919361213f612103928a3d8c1161214b575b61213781836103e6565b810190611f7f565b969350939194506120bb565b503d61212d565b6121699150823d8411611c8b57611c7c81836103e6565b5f61207a565b5050505050505f905f90565b90506121a5610781612199876120e5875f52600160205260405f2090565b5465ffffffffffff1690565b115f61204a565b90506121ba61078142611dd8565b81101590612043565b6109069192508a3d8c1161090d576108fe81836103e6565b6121ee9250602080918301019101611f1c565b5f80611fd7565b919091805f52600160205265ffffffffffff806122258560405f209060018060a01b03165f5260205260405f2090565b54169083161161223457505050565b6104339261225c915f52600160205260405f209060018060a01b03165f5260205260405f2090565b9065ffffffffffff1665ffffffffffff19825416179055565b9190825f5260026020526122cd6102536122a28360405f209060018060a01b03165f5260205260405f2090565b926122ac42611dd8565b955f52600260205260405f209060018060a01b03165f5260205260405f2090565b918201809211611671576001810190815415612371575b6122ed816128a9565b5094908354956122fc8461199e565b508161235c575b501561233b5750505f198301928311611671576104339261232391611989565b90919082549060031b91821b915f19901b1916179055565b61043394612355926001600160d01b039091169190612b09565b5050612992565b65ffffffffffff83811691161490505f612303565b61237a82612965565b6122e4565b60606020610f05938184526001600160401b0381511682850152015191604080820152019061180e565b919360a093610f05969565ffffffffffff938552600180871b031660208501526040840152166060820152816080820152019061180e565b929390600460206123fe6107416107415f5460018060a01b031690565b604051630ce9b79360e41b815292839182905afa90811561091457610e9c9161247c915f916124cb575b506001600160a01b03169361243b610435565b6001600160401b037f00000000000000000000000000000000000000000000000000000000000000001681529060208201526040519283916020830161237f565b823b156101b3575f946124a786926040519889978896879563724ab0f760e11b8752600487016123a9565b03925af18015610914576124b85750565b806124c5610433926103d3565b806101a9565b6124e4915060203d602011611c8b57611c7c81836103e6565b5f612428565b65ffffffffffff9160446020925f60018060a01b038154166040519687958694631c9e38c760e21b865260048601521660248401525af180156109145761252e5750565b6125469060203d60201161214b5761213781836103e6565b50565b8115612553570490565b634e487b7160e01b5f52601260045260245ffd5b92905f549060ff8260a01c1661257f575b5050505050565b6040516313c085b760e11b815291602090839060049082906001600160a01b03165afa918215610914575f9261263c575b5060405163065c1e0360e01b6020820190815260248201969096526001600160a01b039091166044820152606481019390935265ffffffffffff90911660848301526126098260a481015b03601f1981018452836103e6565b6202a15c5a1061262a575f928380935192620249f0f1505f80808080612578565b604051632153f33560e21b8152600490fd5b612609925061265c6125fb9160203d602011611c8b57611c7c81836103e6565b92506125b0565b8054806126705750505f90565b5f19918183810111611671575f5260205f2001015460301c90565b60405190612698826103b8565b5f6020838281520152565b6126c8916126c2916126b361268b565b506126bc61268b565b50611989565b50612885565b65ffffffffffff81511690602060018060d01b0391015116604051916126ed836103b8565b8252602082015290565b6126ff612a94565b612707612a94565b60015f80516020612d6783398151915255565b604051906127278261037d565b5f8252565b80910390606082126101b3576020604051926127478461039d565b126101b357604090815161275a8161037d565b612763826117bf565b81528352602081015161277581610359565b60208401520151604082015290565b9060049061279061271a565b5080516127a760209283808094830101910161272c565b6040516327f843b560e11b815290949093849182906001600160a01b03165afa918215610914575f92612866575b508201906127e9825165ffffffffffff1690565b65ffffffffffff91821691161015612854576040820160038151106128425761283861281e61283e935165ffffffffffff1690565b65ffffffffffff1665ffffffffffff196004541617600455565b51600555565b5190565b6040516354f778f360e01b8152600490fd5b6040516367d5e3df60e11b8152600490fd5b8161287e9293503d841161090d576108fe81836103e6565b905f6127d5565b90604051612892816103b8565b915465ffffffffffff8116835260301c6020830152565b8054806128ba5750505f905f905f90565b5f19908082810111611671576128d7925f5260205f200101612885565b9065ffffffffffff82511691602060018060d01b0391015116906001929190565b906119a790826129b5565b906129266126c26129479261291661268b565b5061291f61268b565b5084611989565b91600165ffffffffffff845116936020828060d01b03910151169101611989565b90549060405192612957846103b8565b835260031b1c602082015290565b8054600160401b8110156103985761298291600182018155611989565b8154905f199060031b1b19169055565b90815491600160401b831015610398578261232391600161043395018155611989565b908154905f918060058111612a4b575b50915b8281106129fe575050806129dc5750505f90565b610f05916129ec6129f7926119ee565b905f5260205f200190565b5460301c90565b90918082169080831860011c820180921161167157845f5265ffffffffffff808360205f20015416908516105f14612a395750915b906129c8565b929150612a45906117f3565b90612a33565b90612a5582612c28565b820391821161167157845f5265ffffffffffff808360205f20015416908416105f14612a8357505b5f6129c5565b9250612a8e906117f3565b91612a7d565b60ff5f80516020612d878339815191525460401c1615612ab057565b604051631afcd79f60e31b8152600490fd5b8054600160401b81101561039857612adf91600182018155611989565b6117ba57815160209092015160301b65ffffffffffff191665ffffffffffff909216919091179055565b805492939291908215612bff57612b35612b30612b25856119ee565b835f5260205f200190565b612885565b90612b46825165ffffffffffff1690565b65ffffffffffff84811691168110612bed57612bb1946020948892612b74610781875165ffffffffffff1690565b03612bb55750612ba3926129ec612b8a926119ee565b9065ffffffffffff82549181199060301b169116179055565b01516001600160d01b031690565b9190565b915050612be891612bd5612bc7610435565b65ffffffffffff9093168352565b6001600160d01b03881682860152612ac2565b612ba3565b604051632520601d60e01b8152600490fd5b612c239250612c0f612bc7610435565b6001600160d01b0385166020830152612ac2565b5f9190565b8015612d615780612cfa612cf3612ce9612cdf612cd5612ccb612cc1612cb76001610f059a5f908b60801c80612d55575b508060401c80612d48575b508060201c80612d3b575b508060101c80612d2e575b508060081c80612d21575b508060041c80612d14575b508060021c80612d07575b50821c612d00575b811c1b612cb0818b612549565b0160011c90565b612cb0818a612549565b612cb08189612549565b612cb08188612549565b612cb08187612549565b612cb08186612549565b612cb08185612549565b8092612549565b90611d87565b8101612ca3565b600291509101905f612c9b565b600491509101905f612c90565b600891509101905f612c85565b601091509101905f612c7a565b602091509101905f612c6f565b604091509101905f612c64565b9150506080905f612c59565b505f9056fe9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a2646970667358221220c44d0a668c61916d69f6b882dc7b74fb4cb4f53b7b38d1639b46585fd72ce7c264736f6c63430008190033","sourceMap":"707:8662:94:-:0;;;;;;;;;;;;;-1:-1:-1;;707:8662:94;;;;-1:-1:-1;;;;;707:8662:94;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;8837:64:25;707:8662:94;;;;;;;;;7896:76:25;;707:8662:94;;;;7985:34:25;7981:146;;-1:-1:-1;525:17:69;;;707:8662:94;525:17:69;707:8662:94;552:12:69;2353:28:92;;2391:53;;1620:34:94;;;;707:8662;;;;;;;;;;;;;;;;;;;;;;;;2353:28:92;707:8662:94;;;;;;;;;;2391:53:92;707:8662:94;;;;;;;;;;;;;;;;;;;;;7981:146:25;-1:-1:-1;;;;;;707:8662:94;;;;;;;;;;;;;8087:29:25;;707:8662:94;;8087:29:25;7981:146;;;;;7896:76;707:8662:94;;-1:-1:-1;;;7938:23:25;;;;;707:8662:94;-1:-1:-1;707:8662:94;;;;;;-1:-1:-1;707:8662:94;;;;;-1:-1:-1;707:8662:94;;;;-1:-1:-1;;;;;707:8662:94;;;;;;:::o","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361015610011575f80fd5b5f3560e01c8063103f2907146101a45780631a2be2c41461019f578063267de1f31461019a5780632964f8dc146101955780632c9d45b3146101905780632dd310001461018b57806331ce4dfe1461018657806334d098ea14610181578063439fab911461017c578063545ce389146101775780638f42f9ab146101725780639168f9d21461016d5780639a896551146101685780639f86fd8514610163578063aa8e64891461015e578063aab3595f14610159578063b94c386e14610154578063bb24fe8a1461014f578063bc6eac5b1461014a578063c0cd7c3e14610145578063cd05b8a114610140578063d5c24e1a1461013b578063e054e08b14610136578063f9268d18146101315763fbfa77cf1461012c575f80fd5b611596565b611428565b611403565b6113e6565b61138e565b61134a565b61132d565b6112ea565b610f9e565b610f46565b610f08565b610e02565b610d77565b61094c565b61092f565b610695565b61055d565b61050c565b6104a3565b610315565b6102d1565b6102b5565b610260565b61020c565b6101b7565b5f9103126101b357565b5f80fd5b346101b3575f3660031901126101b3576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b6001600160a01b038116036101b357565b346101b35760403660031901126101b3576020610258610253602435610231816101fb565b6004355f526002845260405f209060018060a01b03165f5260205260405f2090565b61199e565b604051908152f35b346101b35760403660031901126101b357602065ffffffffffff6102ab602435610289816101fb565b6004355f526001845260405f209060018060a01b03165f5260205260405f2090565b5416604051908152f35b346101b3575f3660031901126101b3576020604051614e208152f35b346101b3575f3660031901126101b3576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346101b3575f3660031901126101b3576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b65ffffffffffff8116036101b357565b634e487b7160e01b5f52604160045260245ffd5b602081019081106001600160401b0382111761039857604052565b610369565b606081019081106001600160401b0382111761039857604052565b604081019081106001600160401b0382111761039857604052565b6001600160401b03811161039857604052565b90601f801991011681019081106001600160401b0382111761039857604052565b6040519060c082018281106001600160401b0382111761039857604052565b604051906104338261039d565b565b60405190610433826103b8565b6001600160401b03811161039857601f01601f191660200190565b81601f820112156101b35780359061047482610442565b9261048260405194856103e6565b828452602083830101116101b357815f926020809301838601378301015290565b346101b35760603660031901126101b3576024356104c081610359565b604435906001600160401b0382116101b3576105036104e5602093369060040161045d565b6004355f90815260068552604090206001600160a01b039390611a1e565b16604051908152f35b346101b3575f3660031901126101b357602060ff5f5460a01c166040519015158152f35b9181601f840112156101b3578235916001600160401b0383116101b357602083818601950101116101b357565b346101b35760203660031901126101b3576001600160401b036004358181116101b35761058e903690600401610530565b5f80516020612d87833981519152549260ff8460401c161593168015908161068d575b6001149081610683575b15908161067a575b50610668575f80516020612d87833981519152805467ffffffffffffffff191660011790556105f6918361064457611b57565b6105fc57005b5f80516020612d87833981519152805460ff60401b19169055604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a1005b5f80516020612d87833981519152805460ff60401b1916600160401b179055611b57565b60405163f92ee8a960e01b8152600490fd5b9050155f6105c3565b303b1591506105bb565b8491506105b1565b346101b35760a03660031901126101b357600460243581356106b6826101fb565b606435916106c383610359565b6084356001600160401b0381116101b3576106e19036908601610530565b93906106eb611cc1565b6106f484611cf0565b6106fc6115e2565b9480610919575b505061070e42611dd8565b610728610721875465ffffffffffff1690565b8092611657565b5f5490959061074d90610741906001600160a01b031681565b6001600160a01b031690565b958760206040988951928380926327f843b560e11b82525afa80156109145761078c92610781925f926108e3575b506116ad565b65ffffffffffff1690565b65ffffffffffff84169081109081156108cd575b506108bd576107b56107be9151848688611fc5565b50604435611d87565b9586156108af576108ab610884878988887f3cb7f4ff6cecf74cee0eb9ae3ebf8933fa60a53014cce52f96da72a78dba8464896108038a6107fe42611dd8565b611657565b92600354978894610854610815610407565b8881526001600160a01b0385166020820152808b018a905265ffffffffffff8616606082015265ffffffffffff831660808201525f60a08201526116d8565b885197885265ffffffffffff938416602089015290921660408701526001600160a01b0316949081906060820190565b0390a461089d60015f80516020612d6783398151915255565b519081529081906020820190565b0390f35b855163167f871760e31b8152fd5b8551631357ac9160e11b81528790fd5b90506108db61078142611dd8565b11155f6107a0565b61090691925060203d60201161090d575b6108fe81836103e6565b810190611676565b905f61077b565b503d6108f4565b61168b565b6109279295508101906115f5565b925f80610703565b346101b3575f3660031901126101b3576020600354604051908152f35b346101b35760603660031901126101b35760048035906bffffffffffffffffffffffff821682036101b357602435610983816101fb565b6044356001600160401b0381116101b3576109a19036908401610530565b906109aa611cc1565b6109b26115e2565b5081610d12575b5050604080516302910f8b60e31b8152338185019081526001600160a01b0395929491602091829082908190830103818a7f0000000000000000000000000000000000000000000000000000000000000000165afa908115610914575f91610ce5575b5015610cd6575f54610a57906001600160a01b0316936bffffffffffffffffffffffff166bffffffffffffffffffffffff193360601b161790565b95610a72610a6d885f52600660205260405f2090565b6128a9565b50949015610c6c57610a8661078142611dd8565b65ffffffffffff9586161115610c3657610ab0610aab895f52600660205260405f2090565b611d99565b505b610ad5610741610741610741610ad08c5f52600660205260405f2090565b612663565b91808716928303610b41575b505050505050610b26907f7b0b759b513b299fd2811f51926dca8854222a675557e8d544ce0933bf5b7570925b516001600160a01b0390911681529081906020820190565b0390a2610b3f60015f80516020612d6783398151915255565b005b610b588998959796985f52600660205260405f2090565b911692845163186a323160e21b815281818981885afa908115610914575f91610c19575b5081600554958751998a80926327f843b560e11b82525afa9081156109145789610be1610bf3977f7b0b759b513b299fd2811f51926dca8854222a675557e8d544ce0933bf5b75709c610be895610b269d610bed985f92610bfc575b505016906117e0565b9116611801565b611dd8565b90612b09565b82958495610ae1565b610c129250803d1061090d576108fe81836103e6565b5f80610bd8565b610c309150823d841161090d576108fe81836103e6565b5f610b7c565b610c54610741610741610741610ad08c5f52600660205260405f2090565b82871603610ab257865163a741a04560e01b81528490fd5b5093949385169250508115610cc8575091610b2691610cc17f7b0b759b513b299fd2811f51926dca8854222a675557e8d544ce0933bf5b757094610cb8875f52600660205260405f2090565b610bed42611dd8565b5050610b0e565b825163a741a04560e01b8152fd5b5083516323d53b9760e21b8152fd5b610d059150823d8411610d0b575b610cfd81836103e6565b8101906117cc565b5f610a1c565b503d610cf3565b610d1e918101906115f5565b505f806109b9565b634e487b7160e01b5f52603260045260245ffd5b600354811015610d725760035f5260021b7fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b01905f90565b610d26565b346101b35760203660031901126101b3576004356003548110156101b357610d9e90610d3a565b50805460018201546002830154600390930154604080519384526001600160a01b0390921660208401529082019290925265ffffffffffff808316606080840191909152603084901c90911660808301529190911c60ff16151560a082015260c090f35b346101b3576040806003193601126101b357600435610e20816101fb565b602435906001600160401b0382116101b3575f8091610e46610eaa943690600401610530565b908187519283928337810184815203915af43d15610eb257610e9c3d610e6b81610442565b90610e78865192836103e6565b81523d5f602083013e5b84519485931515602085015280840152606083019061180e565b03601f1981018352826103e6565b805190602001fd5b610e9c6060610e82565b9060806003198301126101b35760043591602435610ed9816101fb565b91604435610ee681610359565b91606435906001600160401b0382116101b357610f059160040161045d565b90565b346101b3576020610258610f41610f1e36610ebc565b939190925f526002865260405f209060018060a01b03165f5260205260405f2090565b611e0a565b346101b3576020610f62610f5936610ebc565b92919091611fc5565b50604051908152f35b9060406003198301126101b35760043591602435906001600160401b0382116101b357610f9a91600401610530565b9091565b346101b357610fac36610f6b565b9190610fb6611cc1565b610fbe61185e565b92806112d4575b50506003548110156112c257610fda81610d3a565b5090815490610fe882611cf0565b6003830180549365ffffffffffff9384861660018060a01b0361100d895183856115bd565b16151580611297575b8061127e575b61126c576110328161102d42611dd8565b6116ad565b5f5461104890610741906001600160a01b031681565b96600460206040998a51928380926327f843b560e11b82525afa80156109145782915f9161124d575b501691161161123c57600183018054909861109c93929188906001600160a01b031691015192611fc5565b906110ab816002850154611d87565b96871561122b5760601c60ff1661121a57926111d36111c6899461119e61118b8b9687876108ab9f6111998f9d8f9e6111d99f6110f586600160601b60ff60601b19825416179055565b8a54855461111791906001600160a01b0316885465ffffffffffff16916121f5565b8a5485546111309189916001600160a01b031690612275565b8a54945461114e906001600160a01b0316965465ffffffffffff1690565b97611157610426565b9384526020840152818301525196879160208301919091604080606083019480518452602081015160208501520151910152565b03601f1981018752866103e6565b6123e1565b6111b76111b1855465ffffffffffff1690565b866124ea565b5494546001600160a01b031690565b915465ffffffffffff1690565b92612567565b81518381527f5cc28df3b54da9d06f805d87616ebf969c81310f2aa8369cb14ca50f815d411190602090a261089d60015f80516020612d6783398151915255565b8551633428e90760e01b8152600490fd5b865163167f871760e31b8152600490fd5b8551639ea153eb60e01b8152600490fd5b611266915060203d60201161090d576108fe81836103e6565b5f611071565b60405163b62b15c760e01b8152600490fd5b5061128b61078142611dd8565b868860301c161161101c565b506112bb6107416112af6112aa42611dd8565b611696565b60208b015190856115bd565b1515611016565b604051637822972360e11b8152600490fd5b6112e292935081019061187d565b905f80610fc5565b346101b3575f3660031901126101b35760206040516001600160401b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b346101b3575f3660031901126101b3576020600554604051908152f35b346101b3575f3660031901126101b3576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346101b35760403660031901126101b3576024356001600160401b0381116101b3576113d46113c3602092369060040161045d565b6113cc42611dd8565b6004356115bd565b6040516001600160a01b039091168152f35b346101b3575f3660031901126101b3576020604051620249f08152f35b346101b3575f3660031901126101b357602065ffffffffffff60045416604051908152f35b346101b35761143636610f6b565b9061143f611cc1565b611447611905565b9180611582575b50506003548210156112c25761146382610d3a565b506003815491019182549165ffffffffffff9160018060a01b0361148b8251858716856115bd565b16918215918215611559575b5050611547573303611535576114af61078142611dd8565b908260301c1611156115245760601c60ff1661151257805460ff60601b1916600160601b17905533907f7d3d269c851b72257a5194a401d151902e9be4347d555996dcff3ff86a077e925f80a3610b3f60015f80516020612d6783398151915255565b604051633428e90760e01b8152600490fd5b60405162c457e560e81b8152600490fd5b604051635d154fe160e11b8152600490fd5b60405163dd1ebd9d60e01b8152600490fd5b61157a9250906107419160206115716112aa42611dd8565b910151916115bd565b155f80611497565b61158f925081019061191e565b5f8061144e565b346101b3575f3660031901126101b3575f546040516001600160a01b039091168152602090f35b5f9081526006602052604090206001600160a01b03926115de929091611a1e565b1690565b604051906115ef8261037d565b60608252565b906020828203126101b35781356001600160401b03928382116101b35701906020828203126101b3576040519261162b8461037d565b82359081116101b35761163e920161045d565b815290565b634e487b7160e01b5f52601160045260245ffd5b91909165ffffffffffff8080941691160191821161167157565b611643565b908160209103126101b35751610f0581610359565b6040513d5f823e3d90fd5b65ffffffffffff9081165f19019190821161167157565b65ffffffffffff918216908216039190821161167157565b634e487b7160e01b5f525f60045260245ffd5b600354600160401b811015610398578060016116f79201600355610d3a565b9190916117ba578051825560208101516001830180546001600160a01b0319166001600160a01b0392909216919091179055610433916117a09060a09060039060408501516002820155019261176d65ffffffffffff606083015116859065ffffffffffff1665ffffffffffff19825416179055565b60808101516bffffffffffff00000000000085549160301b16906bffffffffffff00000000000019161784550151151590565b815460ff60601b191690151560601b60ff60601b16179055565b6116c5565b519081151582036101b357565b908160209103126101b357610f05906117bf565b8181029291811591840414171561167157565b906001820180921161167157565b9190820180921161167157565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b5f9081526002602090815260408083206001600160a01b03909416835292905220610f05929190611e0a565b6040519061186b8261039d565b60606040838281528260208201520152565b906020828203126101b35781356001600160401b03928382116101b35701906060828203126101b357604051926118b38461039d565b82358181116101b357826118c891850161045d565b845260208301358181116101b357826118e291850161045d565b602085015260408301359081116101b3576118fd920161045d565b604082015290565b60405190611912826103b8565b60606020838281520152565b906020828203126101b35781356001600160401b03928382116101b35701906040828203126101b35760405192611954846103b8565b82358181116101b3578261196991850161045d565b845260208301359081116101b357611981920161045d565b602082015290565b8054821015610d72575f5260205f2001905f90565b6119a781612663565b6001600160d01b038116156119cc5760016119c29201611989565b90549060031b1c90565b50505f90565b908160209103126101b3575163ffffffff811681036101b35790565b5f1981019190821161167157565b9190820391821161167157565b90600163ffffffff8093160191821161167157565b91805115611b025780602080611a39935183010191016119d2565b91611a4483826126a3565b92611a55845165ffffffffffff1690565b9065ffffffffffff8085169216828114611ae95782119182611a94575b5050611a8257610f0592506129b5565b5050602001516001600160d01b031690565b909150611aa183546119ee565b63ffffffff831614918215611aba575b50505f80611a72565b611ae1919250611ad5611acf61078192611a09565b856126a3565b5165ffffffffffff1690565b115f80611ab1565b50505050602091909101516001600160d01b0316905090565b50610f05916129b5565b9190916040818403126101b3578035611b24816101fb565b9260208201356001600160401b0381116101b357610f05920161045d565b908160209103126101b35751610f05816101fb565b611b6391810190611b0c565b6040516302910f8b60e31b81526001600160a01b0392831660048201819052929160209182816024817f000000000000000000000000000000000000000000000000000000000000000088165afa908115610914575f91611ca4575b5015611c925781611bf4600492611bd46126f7565b5f80546001600160a01b0319166001600160a01b03891617905586612784565b94604051928380926313c085b760e11b82525afa918215610914575f92611c65575b5050161580611c5b575b611c4957516104339015155f805460ff60a01b191691151560a01b60ff60a01b16919091179055565b60405163d2420f5960e01b8152600490fd5b5080511515611c20565b611c849250803d10611c8b575b611c7c81836103e6565b810190611b42565b5f80611c16565b503d611c72565b6040516362df054560e01b8152600490fd5b611cbb9150833d8511610d0b57610cfd81836103e6565b5f611bbf565b5f80516020612d678339815191526002815414611cde5760029055565b604051633ee5aeb560e01b8152600490fd5b604051635daf681960e11b815260609190911c60048201526001600160a01b036020826024817f000000000000000000000000000000000000000000000000000000000000000085165afa918215610914575f92611d66575b5033911603611d5457565b60405163227bf64d60e01b8152600490fd5b611d8091925060203d602011611c8b57611c7c81836103e6565b905f611d49565b9080821015611d94575090565b905090565b90611da382612663565b9180548015611dc4575f190190611dba8282611989565b6117ba575f905555565b634e487b7160e01b5f52603160045260245ffd5b65ffffffffffff90818111611deb571690565b604490604051906306dfcc6560e41b8252603060048301526024820152fd5b91805115611ecc5780602080611e25935183010191016119d2565b91611e308382612903565b92611e41845165ffffffffffff1690565b9065ffffffffffff8085169216828114611ec05782119182611e77575b5050611e6e57610f0592506128f8565b50506020015190565b909150611e8483546119ee565b63ffffffff831614918215611e9d575b50505f80611e5e565b611eb8919250611ad5611eb261078192611a09565b85612903565b115f80611e94565b50505050506020015190565b50610f05916128f8565b81601f820112156101b357805190611eed82610442565b92611efb60405194856103e6565b828452602083830101116101b357815f9260208093018386015e8301015290565b906020828203126101b35781516001600160401b03928382116101b35701906040828203126101b35760405192611f52846103b8565b82518181116101b35782611f67918501611ed6565b845260208301519081116101b3576119819201611ed6565b908160209103126101b3575190565b9081526001600160a01b03909116602082015265ffffffffffff9091166040820152608060608201819052610f059291019061180e565b92611fce611905565b908051806121db575b5050611fe242611dd8565b5f54909490611ffb90610741906001600160a01b031681565b93604051956327f843b560e11b875260209687816004818a5afa80156109145761202f92610781925f926121c357506116ad565b65ffffffffffff82169081109081156121ac575b811561217b575b5061216f578560049560405196878092630ce9b79360e41b82525afa9485156109145761209c9587915f91612152575b50845190604051808099819463e02f693760e01b8352878b8a60048601611f8e565b03916001600160a01b03165afa9384156109145761210e955f95612111575b509261210385936121099361210396869a6120fa610253836120e5875f52600260205260405f2090565b9060018060a01b03165f5260205260405f2090565b95015192611832565b906119fc565b611d87565b91565b61210992955061210394919361213f612103928a3d8c1161214b575b61213781836103e6565b810190611f7f565b969350939194506120bb565b503d61212d565b6121699150823d8411611c8b57611c7c81836103e6565b5f61207a565b5050505050505f905f90565b90506121a5610781612199876120e5875f52600160205260405f2090565b5465ffffffffffff1690565b115f61204a565b90506121ba61078142611dd8565b81101590612043565b6109069192508a3d8c1161090d576108fe81836103e6565b6121ee9250602080918301019101611f1c565b5f80611fd7565b919091805f52600160205265ffffffffffff806122258560405f209060018060a01b03165f5260205260405f2090565b54169083161161223457505050565b6104339261225c915f52600160205260405f209060018060a01b03165f5260205260405f2090565b9065ffffffffffff1665ffffffffffff19825416179055565b9190825f5260026020526122cd6102536122a28360405f209060018060a01b03165f5260205260405f2090565b926122ac42611dd8565b955f52600260205260405f209060018060a01b03165f5260205260405f2090565b918201809211611671576001810190815415612371575b6122ed816128a9565b5094908354956122fc8461199e565b508161235c575b501561233b5750505f198301928311611671576104339261232391611989565b90919082549060031b91821b915f19901b1916179055565b61043394612355926001600160d01b039091169190612b09565b5050612992565b65ffffffffffff83811691161490505f612303565b61237a82612965565b6122e4565b60606020610f05938184526001600160401b0381511682850152015191604080820152019061180e565b919360a093610f05969565ffffffffffff938552600180871b031660208501526040840152166060820152816080820152019061180e565b929390600460206123fe6107416107415f5460018060a01b031690565b604051630ce9b79360e41b815292839182905afa90811561091457610e9c9161247c915f916124cb575b506001600160a01b03169361243b610435565b6001600160401b037f00000000000000000000000000000000000000000000000000000000000000001681529060208201526040519283916020830161237f565b823b156101b3575f946124a786926040519889978896879563724ab0f760e11b8752600487016123a9565b03925af18015610914576124b85750565b806124c5610433926103d3565b806101a9565b6124e4915060203d602011611c8b57611c7c81836103e6565b5f612428565b65ffffffffffff9160446020925f60018060a01b038154166040519687958694631c9e38c760e21b865260048601521660248401525af180156109145761252e5750565b6125469060203d60201161214b5761213781836103e6565b50565b8115612553570490565b634e487b7160e01b5f52601260045260245ffd5b92905f549060ff8260a01c1661257f575b5050505050565b6040516313c085b760e11b815291602090839060049082906001600160a01b03165afa918215610914575f9261263c575b5060405163065c1e0360e01b6020820190815260248201969096526001600160a01b039091166044820152606481019390935265ffffffffffff90911660848301526126098260a481015b03601f1981018452836103e6565b6202a15c5a1061262a575f928380935192620249f0f1505f80808080612578565b604051632153f33560e21b8152600490fd5b612609925061265c6125fb9160203d602011611c8b57611c7c81836103e6565b92506125b0565b8054806126705750505f90565b5f19918183810111611671575f5260205f2001015460301c90565b60405190612698826103b8565b5f6020838281520152565b6126c8916126c2916126b361268b565b506126bc61268b565b50611989565b50612885565b65ffffffffffff81511690602060018060d01b0391015116604051916126ed836103b8565b8252602082015290565b6126ff612a94565b612707612a94565b60015f80516020612d6783398151915255565b604051906127278261037d565b5f8252565b80910390606082126101b3576020604051926127478461039d565b126101b357604090815161275a8161037d565b612763826117bf565b81528352602081015161277581610359565b60208401520151604082015290565b9060049061279061271a565b5080516127a760209283808094830101910161272c565b6040516327f843b560e11b815290949093849182906001600160a01b03165afa918215610914575f92612866575b508201906127e9825165ffffffffffff1690565b65ffffffffffff91821691161015612854576040820160038151106128425761283861281e61283e935165ffffffffffff1690565b65ffffffffffff1665ffffffffffff196004541617600455565b51600555565b5190565b6040516354f778f360e01b8152600490fd5b6040516367d5e3df60e11b8152600490fd5b8161287e9293503d841161090d576108fe81836103e6565b905f6127d5565b90604051612892816103b8565b915465ffffffffffff8116835260301c6020830152565b8054806128ba5750505f905f905f90565b5f19908082810111611671576128d7925f5260205f200101612885565b9065ffffffffffff82511691602060018060d01b0391015116906001929190565b906119a790826129b5565b906129266126c26129479261291661268b565b5061291f61268b565b5084611989565b91600165ffffffffffff845116936020828060d01b03910151169101611989565b90549060405192612957846103b8565b835260031b1c602082015290565b8054600160401b8110156103985761298291600182018155611989565b8154905f199060031b1b19169055565b90815491600160401b831015610398578261232391600161043395018155611989565b908154905f918060058111612a4b575b50915b8281106129fe575050806129dc5750505f90565b610f05916129ec6129f7926119ee565b905f5260205f200190565b5460301c90565b90918082169080831860011c820180921161167157845f5265ffffffffffff808360205f20015416908516105f14612a395750915b906129c8565b929150612a45906117f3565b90612a33565b90612a5582612c28565b820391821161167157845f5265ffffffffffff808360205f20015416908416105f14612a8357505b5f6129c5565b9250612a8e906117f3565b91612a7d565b60ff5f80516020612d878339815191525460401c1615612ab057565b604051631afcd79f60e31b8152600490fd5b8054600160401b81101561039857612adf91600182018155611989565b6117ba57815160209092015160301b65ffffffffffff191665ffffffffffff909216919091179055565b805492939291908215612bff57612b35612b30612b25856119ee565b835f5260205f200190565b612885565b90612b46825165ffffffffffff1690565b65ffffffffffff84811691168110612bed57612bb1946020948892612b74610781875165ffffffffffff1690565b03612bb55750612ba3926129ec612b8a926119ee565b9065ffffffffffff82549181199060301b169116179055565b01516001600160d01b031690565b9190565b915050612be891612bd5612bc7610435565b65ffffffffffff9093168352565b6001600160d01b03881682860152612ac2565b612ba3565b604051632520601d60e01b8152600490fd5b612c239250612c0f612bc7610435565b6001600160d01b0385166020830152612ac2565b5f9190565b8015612d615780612cfa612cf3612ce9612cdf612cd5612ccb612cc1612cb76001610f059a5f908b60801c80612d55575b508060401c80612d48575b508060201c80612d3b575b508060101c80612d2e575b508060081c80612d21575b508060041c80612d14575b508060021c80612d07575b50821c612d00575b811c1b612cb0818b612549565b0160011c90565b612cb0818a612549565b612cb08189612549565b612cb08188612549565b612cb08187612549565b612cb08186612549565b612cb08185612549565b8092612549565b90611d87565b8101612ca3565b600291509101905f612c9b565b600491509101905f612c90565b600891509101905f612c85565b601091509101905f612c7a565b602091509101905f612c6f565b604091509101905f612c64565b9150506080905f612c59565b505f9056fe9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a2646970667358221220c44d0a668c61916d69f6b882dc7b74fb4cb4f53b7b38d1639b46585fd72ce7c264736f6c63430008190033","sourceMap":"707:8662:94:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;;;;;;:::o;:::-;;;;;;;;;;-1:-1:-1;;707:8662:94;;;;;;1435:38:92;-1:-1:-1;;;;;707:8662:94;;;;;;;-1:-1:-1;;;;;707:8662:94;;;;;:::o;:::-;;;;;;-1:-1:-1;;707:8662:94;;;;;2936:47:92;:38;707:8662:94;;;;;:::i;:::-;;;-1:-1:-1;707:8662:94;2936:16:92;707:8662:94;;;-1:-1:-1;707:8662:94;;;;;;;;;;;;;;;;;2936:38:92;:47;:::i;:::-;707:8662:94;;;;;;;;;;;;-1:-1:-1;;707:8662:94;;;;;;1788:109:92;707:8662:94;;;;;:::i;:::-;;;-1:-1:-1;707:8662:94;1788:109:92;707:8662:94;;;-1:-1:-1;707:8662:94;;;;;;;;;;;;;;;;;1788:109:92;707:8662:94;;;;;;;;;;;;;;-1:-1:-1;;707:8662:94;;;;;;;1374:6:92;707:8662:94;;;;;;;;;-1:-1:-1;;707:8662:94;;;;;;1528:51:92;-1:-1:-1;;;;;707:8662:94;;;;;;;;;;;;-1:-1:-1;;707:8662:94;;;;;;322:32:69;-1:-1:-1;;;;;707:8662:94;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;707:8662:94;;;;;;;:::o;:::-;;:::i;:::-;;;;;;;-1:-1:-1;;;;;707:8662:94;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;707:8662:94;;;;;;;:::o;:::-;-1:-1:-1;;;;;707:8662:94;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;707:8662:94;;;;;;;:::o;:::-;;;;;;;;;;-1:-1:-1;;;;;707:8662:94;;;;;;;:::o;:::-;;;;;;;:::i;:::-;:::o;:::-;;;;;;;:::i;:::-;-1:-1:-1;;;;;707:8662:94;;;;;;-1:-1:-1;;707:8662:94;;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;707:8662:94;;;;;;;;;;;;;;:::o;:::-;;;;;;-1:-1:-1;;707:8662:94;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;707:8662:94;;;;2016:56;707:8662;;;;;;;;:::i;:::-;;;-1:-1:-1;707:8662:94;;;2016:9;707:8662;;;;;-1:-1:-1;;;;;707:8662:94;;2016:56;:::i;:::-;707:8662;;;;;;;;;;;;;-1:-1:-1;;707:8662:94;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;707:8662:94;;;;;;;;;;;;;;;:::o;:::-;;;;;;-1:-1:-1;;707:8662:94;;;;-1:-1:-1;;;;;707:8662:94;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;707:8662:94;;;;;;;4301:16:25;707:8662:94;;4726:16:25;;:34;;;;707:8662:94;4805:1:25;4790:16;:50;;;;707:8662:94;4855:13:25;:30;;;;707:8662:94;4851:91:25;;;-1:-1:-1;;;;;;;;;;;707:8662:94;;-1:-1:-1;;707:8662:94;;;;;718:4:69;;4951:18:25;4979:67;;718:4:69;:::i;:::-;5066:101:25;;707:8662:94;5066:101:25;-1:-1:-1;;;;;;;;;;;707:8662:94;;-1:-1:-1;;;;707:8662:94;;;;;-1:-1:-1;707:8662:94;;5142:14:25;;707:8662:94;;5142:14:25;707:8662:94;4979:67:25;-1:-1:-1;;;;;;;;;;;707:8662:94;;-1:-1:-1;;;;707:8662:94;-1:-1:-1;;;707:8662:94;;;718:4:69;:::i;4851:91:25:-;707:8662:94;;-1:-1:-1;;;4908:23:25;;707:8662:94;;4908:23:25;4855:30;4872:13;;;4855:30;;;4790:50;4818:4;4810:25;:30;;-1:-1:-1;4790:50:25;;4726:34;;;-1:-1:-1;4726:34:25;;707:8662:94;;;;;;-1:-1:-1;;707:8662:94;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;707:8662:94;;;;;;;;;;;:::i;:::-;3217:103:28;;;;:::i;:::-;2123:10:92;;;:::i;:::-;707:8662:94;;:::i;:::-;2666:16;;2662:105;;707:8662;837:15:62;;819:34;837:15;819:34;:::i;:::-;2813:31:94;707:8662;;;;;;;;2813:31;;;:::i;:::-;-1:-1:-1;707:8662:94;;;;2847:27;;:13;;-1:-1:-1;;;;;707:8662:94;2847:13;707:8662;;-1:-1:-1;;;;;707:8662:94;;;2847:27;707:8662;;;;;;;;;;;;;;2847:29;;;;;;;;2794:82;2847:29;2813:63;2847:29;-1:-1:-1;2847:29:94;;;707:8662;2813:63;;:::i;:::-;707:8662;;;;2794:82;707:8662;;;2794:82;;;:138;;;;;707:8662;2777:223;;;3248:62:92;3019:133:94;3104:37;;3248:62:92;;;;:::i;:::-;707:8662:94;;;3019:133;:::i;:::-;3166:11;;;3162:68;;707:8662;3671:86;837:15:62;;;;3671:86:94;837:15:62;3262:31:94;837:15:62;819:34;837:15;819:34;:::i;:::-;3262:31:94;:::i;:::-;707:8662;3317:13;707:8662;;;;3347:308;707:8662;;:::i;:::-;;;;-1:-1:-1;;;;;707:8662:94;;;3379:266;;707:8662;3379:266;;;707:8662;;;;;;;3379:266;;707:8662;;;;;3379:266;;707:8662;-1:-1:-1;707:8662:94;3379:266;;707:8662;3347:308;:::i;:::-;707:8662;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;707:8662:94;;;;;;;;;;3671:86;;;;3282:1:28;1805;-1:-1:-1;;;;;;;;;;;707:8662:94;3716:283:28;3282:1;707:8662:94;;;;;;;;;;;;;;;;3162:68;707:8662;;-1:-1:-1;;;3200:19:94;;;2777:223;707:8662;;-1:-1:-1;;;2964:25:94;;707:8662;;2964:25;2794:138;837:15:62;;2896:36:94;819:34:62;837:15;819:34;:::i;2896:36:94:-;-1:-1:-1;2896:36:94;2794:138;;;2847:29;;;;;707:8662;2847:29;707:8662;2847:29;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;;:::i;2662:105::-;2718:38;;;;;;;;:::i;:::-;2662:105;;;;;707:8662;;;;;;-1:-1:-1;;707:8662:94;;;;;1795:13;707:8662;;;;;;;;;;;;;-1:-1:-1;;707:8662:94;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;707:8662:94;;;;;;;;;;;:::i;:::-;3217:103:28;;;:::i;:::-;707:8662:94;;:::i;:::-;;7493:16;7489:103;;707:8662;-1:-1:-1;;707:8662:94;;;-1:-1:-1;;;7607:48:94;;7644:10;7607:48;;;707:8662;;;-1:-1:-1;;;;;707:8662:94;;;;;;;;;;;;;;7607:48;7617:16;;;707:8662;7607:48;;;;;;;-1:-1:-1;7607:48:94;;;707:8662;7606:49;;7602:99;;-1:-1:-1;707:8662:94;7764:35;;-1:-1:-1;;;;;707:8662:94;7644:10;707:8662;;-1:-1:-1;;7644:10:94;297:2:88;707:8662:94;;267:46:88;;152:169;7764:35:94;7850:21;5260:30:86;7850:21:94;;707:8662;;7850:9;707:8662;;;;;;;7850:21;5260:30:86;:::i;:::-;-1:-1:-1;7900:801:94;;;;;7930:34;819::62;837:15;819:34;:::i;7930::94:-;707:8662;;;;7930:34;;;;7984:27;:21;;707:8662;;7850:9;707:8662;;;;;;;7984:21;:27;:::i;:::-;;7926:225;8169:61;8182:48;8190:39;4928:20:86;8198:21:94;;707:8662;;7850:9;707:8662;;;;;;;8198:21;4928:20:86;:::i;8169:61:94:-;707:8662;;;;8169:61;;;8165:336;;7926:225;7900:801;;;;;;8716:34;7900:801;8716:34;7900:801;;707:8662;-1:-1:-1;;;;;707:8662:94;;;;;;;;;;;;;8716:34;;;;3282:1:28;1805;-1:-1:-1;;;;;;;;;;;707:8662:94;3716:283:28;3282:1;707:8662:94;8165:336;8250:21;;;;;;;707:8662;;7850:9;707:8662;;;;;;;8250:21;707:8662;;;;;;;;8299:34;;;;;;;;;;;;;;-1:-1:-1;8299:34:94;;;8165:336;707:8662;;8336:22;707:8662;;;;;;;;;;;8361:30;;;;;;;;;;8336:55;8167:38:60;8361:30:94;8716:34;8361:30;8299:92;8361:30;8716:34;8361:30;8298:130;8361:30;-1:-1:-1;8361:30:94;;;8165:336;707:8662;;;8336:55;;:::i;:::-;707:8662;;8299:92;:::i;:::-;8298:130;:::i;:::-;8167:38:60;;:::i;:::-;8165:336:94;;;;;;8361:30;;;;;;-1:-1:-1;8361:30:94;;;;;;:::i;:::-;;;;;8299:34;;;;;;;;;;;;;;:::i;:::-;;;;7926:225;8036:61;8049:48;8057:39;4928:20:86;8065:21:94;;707:8662;;7850:9;707:8662;;;;;;;8036:61;707:8662;;;8036:61;7926:225;8032:119;707:8662;;-1:-1:-1;;;8124:12:94;;707:8662;;8124:12;7900:801;-1:-1:-1;707:8662:94;;;;;;-1:-1:-1;;8535:23:94;;8531:81;;8626:21;;8716:34;8626:21;8167:38:60;8716:34:94;8626:21;;;707:8662;;7850:9;707:8662;;;;;;;8626:21;819:34:62;837:15;819:34;:::i;8167:38:60:-;7900:801:94;;;;8531:81;707:8662;;-1:-1:-1;;;8585:12:94;;;7602:99;-1:-1:-1;707:8662:94;;-1:-1:-1;;;7678:12:94;;;7607:48;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;7489:103;7544:37;;;;;;:::i;:::-;;7489:103;;;;707:8662;;;;;;;;;;;;;1050:35;707:8662;;;;;;1050:35;-1:-1:-1;707:8662:94;;;;;;-1:-1:-1;707:8662:94;:::o;:::-;;:::i;:::-;;;;;;-1:-1:-1;;707:8662:94;;;;;;1050:35;707:8662;1050:35;;;;;;;;:::i;:::-;-1:-1:-1;707:8662:94;;;1050:35;;707:8662;1050:35;;;707:8662;1050:35;;;;707:8662;;;;;;;-1:-1:-1;;;;;707:8662:94;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;707:8662:94;;;;-1:-1:-1;707:8662:94;;;477:31:75;707:8662:94;;;;;;:::i;:::-;;;;;;;;;;;;;;;416:25:75;;;;707:8662:94;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;-1:-1:-1;707:8662:94;;;;;;;;;;;;;477:31:75;;707:8662:94;;;;;;;;;;:::i;:::-;477:31:75;707:8662:94;;477:31:75;;;;;;:::i;:::-;518:79;;;707:8662:94;518:79:75;;707:8662:94;;;;;;;;-1:-1:-1;;707:8662:94;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;-1:-1:-1;;;;;707:8662:94;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;2692:73:92;:38;707:8662:94;;;:::i;:::-;;;;;-1:-1:-1;707:8662:94;2692:16:92;707:8662:94;;;-1:-1:-1;707:8662:94;;;;;;;;;;;;;;;;;2692:38:92;:73;:::i;707:8662:94:-;;;;;3248:62:92;707:8662:94;;;:::i;:::-;3248:62:92;;;;;:::i;:::-;707:8662:94;;;;;;;;;;-1:-1:-1;;707:8662:94;;;;;;;;;;;-1:-1:-1;;;;;707:8662:94;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;:::i;:::-;3217:103:28;;;;:::i;:::-;707:8662:94;;:::i;:::-;4024:16;;4020:105;;707:8662;;;4153:13;707:8662;4139:34;;;4135:94;;4270:25;;;:::i;:::-;707:8662;;;;4330:18;;;;:::i;:::-;4153:13;4408:24;;707:8662;;;;;;;;;;;;;4377:95;4434:37;;4377:95;;;:::i;:::-;707:8662;4377:125;;:250;;;707:8662;4377:309;;;707:8662;4360:389;;4763:43;837:15:62;819:34;837:15;819:34;:::i;:::-;4763:43:94;:::i;:::-;-1:-1:-1;707:8662:94;4809:27;;:13;;-1:-1:-1;;;;;707:8662:94;4809:13;707:8662;4809:27;707:8662;;4809:29;707:8662;;;;;;;;;;;4809:29;;;;;;;;;;-1:-1:-1;4809:29:94;;;707:8662;;;;;4763:75;4759:131;;4994:16;;;707:8662;;4994:16;;4945:140;;4994:16;;707:8662;;-1:-1:-1;;;;;707:8662:94;5038:37;;;4945:140;;:::i;:::-;5120:14;5111:41;5120:14;;;;707:8662;5111:41;:::i;:::-;5166:18;;;5162:75;;707:8662;;;;5247:78;;5335:24;707:8662;;5335:24;;5725:145;;5335:24;;;;707:8662;5335:24;5725:145;5335:24;;;;6024;5335;;;707:8662;;;;;;;;;;;;;;5335:24;707:8662;;;;5445:24;;707:8662;-1:-1:-1;;;;;707:8662:94;;;;;5445:24;;:::i;:::-;707:8662;;;;5542:13;;707:8662;;-1:-1:-1;;;;;707:8662:94;5542:13;;:::i;:::-;707:8662;;;;;;-1:-1:-1;;;;;707:8662:94;;;;;;;;;;;:::i;:::-;;;;4809:29;5753:103;;707:8662;5753:103;;;707:8662;;5725:145;;;4809:29;5725:145;;707:8662;;;;;;;;;;;;;;;;;;;;;;;;;;;5725:145;;707:8662;;5725:145;;;;;;:::i;:::-;;:::i;:::-;5920:24;707:8662;;;;;;;;5920:24;;:::i;:::-;707:8662;;;-1:-1:-1;;;;;707:8662:94;;;;;;;;;;;6024:24;;:::i;:::-;707:8662;;;;;6065:39;;707:8662;;6065:39;3282:1:28;1805;-1:-1:-1;;;;;;;;;;;707:8662:94;3716:283:28;5247:78:94;707:8662;;-1:-1:-1;;;5291:23:94;;707:8662;;5291:23;5162:75;707:8662;;-1:-1:-1;;;5207:19:94;;707:8662;;5207:19;4759:131;707:8662;;-1:-1:-1;;;4861:18:94;;707:8662;;4861:18;4809:29;;;;;;;;;;;;;;:::i;:::-;;;;4360:389;707:8662;;-1:-1:-1;;;4718:20:94;;707:8662;;4718:20;4377:309;837:15:62;4647:39:94;819:34:62;837:15;819:34;:::i;4647:39:94:-;707:8662;;;;;4647:39;4377:309;;:250;837:15:62;4522:105:94;:91;4553:20;819:34:62;837:15;819:34;:::i;:::-;4553:20:94;:::i;:::-;4575:37;;;;4522:91;;;:::i;:105::-;;;4377:250;;4135:94;707:8662;;-1:-1:-1;;;4196:22:94;;707:8662;;4196:22;4020:105;4076:38;;;;;;;;:::i;:::-;4020:105;;;;;707:8662;;;;;;-1:-1:-1;;707:8662:94;;;;;;;-1:-1:-1;;;;;404:28:69;707:8662:94;;;;;;;;;;-1:-1:-1;;707:8662:94;;;;;1221:37;707:8662;;;;;;;;;;;;;-1:-1:-1;;707:8662:94;;;;;;954:41;-1:-1:-1;;;;;707:8662:94;;;;;;;;;;;;-1:-1:-1;;707:8662:94;;;;;;-1:-1:-1;;;;;707:8662:94;;;;2239:46;707:8662;;;;;;;;:::i;:::-;819:34:62;837:15;819:34;:::i;:::-;707:8662:94;;2239:46;:::i;:::-;707:8662;;-1:-1:-1;;;;;707:8662:94;;;;;;;;;;;;-1:-1:-1;;707:8662:94;;;;;;;1271:7:92;707:8662:94;;;;;;;;;-1:-1:-1;;707:8662:94;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3217:103:28;;;:::i;:::-;707:8662:94;;:::i;:::-;6308:16;;6304:99;;707:8662;;;6431:13;707:8662;6417:34;;;6413:94;;6548:25;;;:::i;:::-;707:8662;6431:13;707:8662;;6653:24;;707:8662;;;;;;;;;;;6622:92;6679:34;;707:8662;;;6622:92;;:::i;:::-;707:8662;6741:29;;;:151;;;;;707:8662;6724:223;;;;6961:10;:29;6957:80;;7051:40;819:34:62;837:15;819:34;:::i;7051:40:94:-;707:8662;;;;;7051:40;;7047:95;;707:8662;;;;7152:78;;707:8662;;-1:-1:-1;;;;707:8662:94;-1:-1:-1;;;707:8662:94;;;6961:10;7280:33;;-1:-1:-1;7280:33:94;;3282:1:28;1805;-1:-1:-1;;;;;;;;;;;707:8662:94;3716:283:28;7152:78:94;707:8662;;-1:-1:-1;;;7196:23:94;;707:8662;;7196:23;7047:95;707:8662;;-1:-1:-1;;;7114:17:94;;707:8662;;7114:17;6957:80;707:8662;;-1:-1:-1;;;7013:13:94;;707:8662;;7013:13;6724:223;707:8662;;-1:-1:-1;;;6924:12:94;;707:8662;;6924:12;6741:151;6790:102;837:15:62;;;6790:88:94;837:15:62;6843:34:94;6821:20;819:34:62;837:15;819:34;:::i;6821:20:94:-;6843:34;;;6790:88;;:::i;:102::-;;6741:151;;;;6304:99;6357:35;;;;;;;:::i;:::-;6304:99;;;;707:8662;;;;;;-1:-1:-1;;707:8662:94;;;;;;;;-1:-1:-1;;;;;707:8662:94;;;;;;;;1876:205;-1:-1:-1;707:8662:94;;;2016:9;707:8662;;;;;-1:-1:-1;;;;;707:8662:94;2016:56;;1876:205;;2016:56;:::i;:::-;707:8662;1876:205;:::o;707:8662::-;;;;;;;:::i;:::-;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;;;;707:8662:94;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;-1:-1:-1;;707:8662:94;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;3317:13;707:8662;-1:-1:-1;;;707:8662:94;;;;;;;;;;3317:13;707:8662;;:::i;:::-;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;707:8662:94;-1:-1:-1;;;;;707:8662:94;;;;;;;;;;;;;;;;3317:13;;707:8662;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;707:8662:94;;;;;;-1:-1:-1;;;707:8662:94;;;;;;;:::i;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::o;:::-;;9856:1:60;707:8662:94;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;707:8662:94;;;;;;;;-1:-1:-1;;707:8662:94;;;;:::o;2505:267:92:-;-1:-1:-1;707:8662:94;;;2692:16:92;707:8662:94;;;;;;;;-1:-1:-1;;;;;707:8662:94;;;;;;;;;2692:73:92;;2505:267;;2692:73;:::i;707:8662:94:-;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;;;;707:8662:94;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;;;;707:8662:94;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::o;:::-;;;;;;;;-1:-1:-1;707:8662:94;;-1:-1:-1;707:8662:94;;;-1:-1:-1;707:8662:94;:::o;10580:184:86:-;10689:20;;;:::i;:::-;-1:-1:-1;;;;;707:8662:94;;10726:7:86;707:8662:94;;10736:12:86;:17;:12;;:17;:::i;:::-;707:8662:94;;;;;;10580:184:86;:::o;10726:31::-;;;10689:11;10580:184;:::o;707:8662:94:-;;;;;;;;;;;;;;;;;;:::o;:::-;-1:-1:-1;;707:8662:94;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;:::o;1818:604:86:-;;707:8662:94;;1946:17:86;1942:83;;707:8662:94;2049:27:86;707:8662:94;2049:27:86;707:8662:94;;2049:27:86;;;;;;:::i;:::-;2120:14;;;;;:::i;:::-;707:8662:94;;;;;;;;;;;;;;;;2148:22:86;;;2144:77;;2235:21;-1:-1:-1;2235:84:86;;;;1818:604;2231:139;;;;1425:34;;;;:::i;2231:139::-;-1:-1:-1;;2049:27:86;2342:17;707:8662:94;-1:-1:-1;;;;;707:8662:94;;:::o;2235:84:86:-;707:8662:94;;;2269:16:86;707:8662:94;;2269:16:86;:::i;:::-;707:8662:94;;;2261:24:86;:57;;;;;2235:84;;;;;;;2261:57;2289:29;2298:8;;;2289:18;2298:8;2289:23;2298:8;;:::i;:::-;2289:18;;:::i;:::-;707:8662:94;;;;;2289:29:86;;2261:57;;;;2144:77;-1:-1:-1;;;;2049:27:86;2193:17;;;;707:8662:94;-1:-1:-1;;;;;707:8662:94;;-1:-1:-1;707:8662:94;:::o;1942:83:86:-;1425:34;;;;:::i;707:8662:94:-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;707:8662:94;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;6491:564:92:-;6614:34;6491:564;6614:34;;;;:::i;:::-;707:8662:94;;-1:-1:-1;;;6664:41:92;;-1:-1:-1;;;;;707:8662:94;;;6664:41:92;;;707:8662:94;;;;;6664:41:92;;;707:8662:94;;;6674:13:92;707:8662:94;;6664:41:92;;;;;;;-1:-1:-1;6664:41:92;;;6491:564;6663:42;;6659:90;;2540:111:28;6850:27:92;6664:41;2540:111:28;;;:::i;:::-;-1:-1:-1;707:8662:94;;-1:-1:-1;;;;;;707:8662:94;-1:-1:-1;;;;;707:8662:94;;;;;6850:27:92;;:::i;:::-;707:8662:94;;;;;;;;;;6892:23:92;;;;;;;;;-1:-1:-1;6892:23:92;;;6491:564;707:8662:94;;;6892:37:92;:64;;;6491:564;6888:112;;707:8662:94;7010:38:92;;707:8662:94;;-1:-1:-1;707:8662:94;;-1:-1:-1;;;;707:8662:94;;;;;;-1:-1:-1;;;707:8662:94;;;;;;;;6888:112:92;707:8662:94;;-1:-1:-1;;;6979:10:92;;6664:41;;6979:10;6892:64;-1:-1:-1;707:8662:94;;;;6892:64:92;;:23;;;;;;-1:-1:-1;6892:23:92;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;6659:90;707:8662:94;;-1:-1:-1;;;6728:10:92;;6664:41;;6728:10;6664:41;;;;;;;;;;;;;;:::i;:::-;;;;3326:384:28;-1:-1:-1;;;;;;;;;;;1847:1:28;707:8662:94;;3526:20:28;3522:88;;1847:1;707:8662:94;;3326:384:28:o;3522:88::-;707:8662:94;;-1:-1:-1;;;3569:30:28;;;;;4451:257:92;707:8662:94;;-1:-1:-1;;;4546:86:92;;467:2:88;707:8662:94;;;;4546:86:92;;;707:8662:94;-1:-1:-1;;;;;4546:86:92;707:8662:94;;;4572:26:92;707:8662:94;;4546:86:92;;;;;;;-1:-1:-1;4546:86:92;;;4451:257;4636:10;;707:8662:94;;4546:100:92;4542:160;;4451:257::o;4542:160::-;707:8662:94;;-1:-1:-1;;;4669:22:92;;4546:86;;4669:22;4546:86;;;;;;;;;;;;;;;:::i;:::-;;;;;2557:104:57;;2641:5;;;;;;:13;2557:104;:::o;2641:13::-;;;2557:104;:::o;5905:168:86:-;;6006:20;;;:::i;:::-;707:8662:94;;;;;;;-1:-1:-1;;707:8662:94;;;;;;:::i;:::-;;;;;;;5905:168:86:o;707:8662:94:-;;;;;;;;;;;;14291:213:58;707:8662:94;14369:24:58;;;;14365:103;;707:8662:94;14291:213:58;:::o;14365:103::-;707:8662:94;;;;14416:41:58;;;;;;14447:2;14416:41;;;707:8662:94;;;;;14416:41:58;7558:604:86;;707:8662:94;;7686:17:86;7682:83;;707:8662:94;7789:27:86;707:8662:94;7789:27:86;707:8662:94;;7789:27:86;;;;;;:::i;:::-;7860:14;;;;;:::i;:::-;707:8662:94;;;;;;;;;;;;;;;;7888:22:86;;;7884:77;;7975:21;-1:-1:-1;7975:84:86;;;;7558:604;7971:139;;;;8127:28;;;;:::i;7971:139::-;8082:17;;7789:27;8082:17;707:8662:94;8075:24:86;:::o;7975:84::-;707:8662:94;;;8009:16:86;707:8662:94;;8009:16:86;:::i;:::-;707:8662:94;;;8001:24:86;:57;;;;;7975:84;;;;;;;8001:57;8029:29;8038:8;;;8029:18;8038:8;8029:23;8038:8;;:::i;:::-;8029:18;;:::i;:29::-;;8001:57;;;;7884:77;7933:17;;;;;7789:27;7933:17;707:8662:94;7926:24:86;:::o;7682:83::-;7726:28;;;;:::i;707:8662:94:-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;707:8662:94;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;;;;707:8662:94;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;707:8662:94;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;3323:1122:92:-;;707:8662:94;;:::i;:::-;;;;3608:16:92;3604:109;;3323:1122;837:15:62;;819:34;837:15;819:34;:::i;:::-;-1:-1:-1;707:8662:94;;;;3778:27:92;;:13;;-1:-1:-1;;;;;707:8662:94;3778:13:92;707:8662:94;3778:27:92;707:8662:94;;;;;;;3778:29:92;;;;;;;;;;;;;;;3740:67;3778:29;3759:48;3778:29;-1:-1:-1;3778:29:92;;;3759:48;;:::i;3740:67::-;707:8662:94;;;3740:67:92;;;:107;;;;;3323:1122;3740:197;;;;3323:1122;3723:263;;;707:8662:94;3778:29:92;707:8662:94;;;;;;;;;;4025:25:92;;;;;;;;;4010:143;4025:25;;;-1:-1:-1;4025:25:92;;;3323:1122;4113:30;;;707:8662:94;;;;;;;;;;;4010:143:92;;;;;3778:29;4010:143;;;:::i;:::-;;;-1:-1:-1;;;;;707:8662:94;4010:143:92;;;;;;;4181:257;4010:143;-1:-1:-1;4010:143:92;;;3323:1122;3996:157;;4293:102;3996:157;;4233:162;3996:157;4207:231;3996:157;;2936:28;:47;:38;:28;;;707:8662:94;;2936:16:92;707:8662:94;;;;;;;2936:28:92;707:8662:94;;;;;;;;;;;;;;;;2936:47:92;4351:43;;;4293:102;;:::i;:::-;4233:162;;:::i;:::-;4207:231;:::i;4181:257::-;3323:1122;:::o;4010:143::-;4233:162;4010:143;;;4207:231;4010:143;;;;4293:102;4010:143;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;;;;;4025:25;;;;;;;;;;;;;;:::i;:::-;;;;3723:263;3962:13;;;;;;-1:-1:-1;3962:13:92;-1:-1:-1;3962:13:92;:::o;3740:197::-;3886:41;;3867:70;3886:51;;:41;;;707:8662:94;;3886:29:92;707:8662:94;;;;;;;3886:51:92;707:8662:94;;;;;3867:70:92;-1:-1:-1;3740:197:92;;;:107;837:15:62;;3811:36:92;819:34:62;837:15;819:34;:::i;3811:36:92:-;;;;3740:107;;;3778:29;;;;;;;;;;;;;;;:::i;3604:109::-;3662:40;;;;;;;;;;;;:::i;:::-;3604:109;;;;4714:335;;;;707:8662:94;-1:-1:-1;707:8662:94;4876:29:92;707:8662:94;;;;4876:51:92;707:8662:94;;-1:-1:-1;707:8662:94;;;;;;;;;;;;;;;;;4876:51:92;707:8662:94;;;;;-1:-1:-1;4872:171:92;;4714:335;;;:::o;4872:171::-;4962:70;707:8662:94;4962:51:92;707:8662:94;-1:-1:-1;707:8662:94;4876:29:92;707:8662:94;;;-1:-1:-1;707:8662:94;;;;;;;;;;;;;;;;;4962:51:92;707:8662:94;;;;;;;;;;;;5055:221:92;;;707:8662:94;-1:-1:-1;707:8662:94;5160:16:92;707:8662:94;;2936:47:92;:38;5160;707:8662:94;;-1:-1:-1;707:8662:94;;;;;;;;;;;;;;;;;5160:38:92;837:15:62;819:34;837:15;819:34;:::i;:::-;707:8662:94;-1:-1:-1;707:8662:94;5160:16:92;707:8662:94;;;-1:-1:-1;707:8662:94;;;;;;;;;;;;;;;;;2936:47:92;707:8662:94;;;;;;;;6360:12:86;;;707:8662:94;;;6360:24:86;6356:75;;5055:221:92;6474:30:86;;;:::i;:::-;707:8662:94;;;;;6578:12:86;;;;:::i;:::-;;6604:24;;;5055:221:92;-1:-1:-1;6600:188:86;;;-1:-1:-1;;;;707:8662:94;;;;;;;6644:29:86;:21;;;;:::i;:::-;:29;707:8662:94;;;;;;;;;;;;;;;;;;;;;6600:188:86;6753:24;;8167:38:60;;-1:-1:-1;;;;;707:8662:94;;;;;8167:38:60;:::i;:::-;6753:24:86;;;:::i;6604:::-;707:8662:94;;;;;;6614:14:86;;-1:-1:-1;6604:24:86;;;6356:75;6400:20;;;:::i;:::-;6356:75;;707:8662:94;;;;;;;;-1:-1:-1;;;;;707:8662:94;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;5282:431:92:-;;;;5487:25;;:23;:13;707:8662:94;5494:5:92;707:8662:94;;;;;;;;;5487:23:92;707:8662:94;;-1:-1:-1;;;5487:25:92;;707:8662:94;;;;;5487:25:92;;;;;;;5631:65;5487:25;5631:65;5487:25;5494:5;5487:25;;;5282:431;-1:-1:-1;;;;;;707:8662:94;;;;:::i;:::-;-1:-1:-1;;;;;5677:4:92;707:8662:94;;;5677:4:92;5487:25;5642:53;;707:8662:94;;;5631:65:92;;;5487:25;5631:65;;;:::i;:::-;5472:234;;;;;5494:5;707:8662:94;5472:234:92;707:8662:94;;;;;;;;;;;;;;5472:234:92;;5487:25;5472:234;;;:::i;:::-;;;;;;;;;;;5282:431;:::o;5472:234::-;;;;;;:::i;:::-;;;:::i;5487:25::-;;;;;;;;;;;;;;:::i;:::-;;;;5719:137;707:8662:94;5719:137:92;707:8662:94;5802:47:92;5719:137;5809:5;707:8662:94;;;;;;;;;;;;;;;;;;5802:47:92;;;;;707:8662:94;;;;;;5802:47:92;;;;;;;;5719:137;:::o;5802:47::-;;;;;;;;;;;;;:::i;:::-;;5719:137::o;707:8662:94:-;;;;;;;:::o;:::-;;;;;;;;;;;;5862:623:92;;;5988:12;707:8662:94;;;;;;;5984:495:92;;5862:623;;;;;;:::o;5984:495::-;707:8662:94;;-1:-1:-1;;;6033:22:92;;707:8662:94;6033:22:92;;707:8662:94;;6033:22:92;;707:8662:94;;-1:-1:-1;;;;;707:8662:94;6033:22:92;;;;;;;5988:12;6033:22;;;5984:495;-1:-1:-1;707:8662:94;;-1:-1:-1;;;6033:22:92;6094:81;;;;;;;;707:8662:94;;;;-1:-1:-1;;;;;707:8662:94;;;;;;;;;;;;;;;;;;;;;;6094:81:92;707:8662:94;;;;6094:81:92;;707:8662:94;;6094:81:92;;;;;;:::i;:::-;707:8662:94;6194:9:92;:55;6190:124;;5988:12;6328:141;;;;;;1271:7;6328:141;;5984:495;;;;;;;6190:124;707:8662:94;;-1:-1:-1;;;6276:23:92;;6033:22;;6276:23;6033:22;6094:81;6033:22;;;6094:81;6033:22;;;;;;;;;;;:::i;:::-;;;;;10167:206:60;707:8662:94;;10303:8:60;;;:63;;10262:17;10167:206;:::o;10303:63::-;707:8662:94;;;;;;;;;;10262:17:60;14249:109;;10262:17;14249:109;;;707:8662:94;;;10167:206:60;:::o;707:8662:94:-;;;;;;;:::i;:::-;-1:-1:-1;707:8662:94;;;;;;;:::o;5573:258:86:-;707:8662:94;5573:258:86;11308:22:60;5573:258:86;707:8662:94;;:::i;:::-;;;;:::i;:::-;;11308:22:60;:::i;:::-;707:8662:94;;:::i;:::-;;;;;;5805:17:86;707:8662:94;;;;;5805:17:86;;707:8662:94;;;;;;;;:::i;:::-;;;5805:17:86;5759:65;;707:8662:94;5573:258:86;:::o;6893:76:25:-;;;:::i;:::-;;;:::i;:::-;1805:1:28;-1:-1:-1;;;;;;;;;;;707:8662:94;6893:76:25:o;707:8662:94:-;;;;;;;:::i;:::-;-1:-1:-1;707:8662:94;;:::o;:::-;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;:::o;8763:604::-;;8969:30;8763:604;707:8662;;:::i;:::-;;;;8905:30;;;;;;;;;;;;;:::i;:::-;707:8662;;-1:-1:-1;;;8969:30:94;;707:8662;;;;;;;;-1:-1:-1;;;;;707:8662:94;8969:30;;;;;;;;;;;8763:604;9013:19;;;707:8662;;;;;;;;;;;;;;;9013:36;;9009:95;;707:8662;9118:29;;9150:1;707:8662;;9118:33;9114:102;;9226:34;707:8662;9271:54;707:8662;;;;;;;;;;;8969:30;707:8662;;;8969:30;707:8662;;9226:34;707:8662;9271:54;707:8662;;9271:54;9343:17;8763:604;:::o;9114:102::-;707:8662;;-1:-1:-1;;;9174:31:94;;8969:30;;9174:31;9009:95;707:8662;;-1:-1:-1;;;9072:21:94;;8969:30;;9072:21;8969:30;;;;;;;;;;;;;;;:::i;:::-;;;;;707:8662;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::o;10552:388:60:-;707:8662:94;;10728:8:60;;;10752:20;;10690:17;10752:20;10690:17;10752:20;10690:17;10752:20;:::o;10724:210::-;707:8662:94;;;;;;;;;;;14249:109:60;10690:17;14249:109;;10690:17;14249:109;;;707:8662:94;:::i;:::-;;;;;;;14249:109:60;707:8662:94;;;;;10911:11:60;;707:8662:94;;10886:37:60;10870:1;10886:37;;;:::o;6999:207:86:-;;7117:34;6999:207;7117:34;;:::i;11486:272::-;;707:8662:94;11308:22:60;11718:31:86;11486:272;707:8662:94;;:::i;:::-;;;;:::i;:::-;;11308:22:60;;:::i;707:8662:94:-;;11718:12:86;707:8662:94;;;;;11731:17:86;707:8662:94;;;;;11731:17:86;;707:8662:94;;11718:12:86;;:31;:::i;:::-;707:8662:94;;;;;;;;;:::i;:::-;;;;;;11731:17:86;11672:79;;707:8662:94;11486:272:86;:::o;707:8662:94:-;;;-1:-1:-1;;;707:8662:94;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::o;:::-;;;;;-1:-1:-1;;;707:8662:94;;;;;;;;;;;;;;;:::i;9441:606:60:-;;707:8662:94;;9594:15:60;9559:17;9619:18;;9658:1;9652:7;;9648:234;;9441:606;9906:53;;12919:10;;;;;;-1:-1:-1;;9977:8:60;;;:63;;9559:17;9441:606;:::o;9977:63::-;9992:48;10025:7;;9992:41;10025:7;;:::i;:::-;9992:41;14249:109;;;;;;14099:265;;9992:41;707:8662:94;;;;;12912:230:60;2900:5:57;;;;;2910;;;;707:8662:94;;;;;;;;;14249:109:60;9559:17;14249:109;707:8662:94;14249:109:60;;;9559:17;14249:109;;707:8662:94;;;;;-1:-1:-1;12996:136:60;707:8662:94;;;13055:10:60;12996:136;;12912:230;;;12996:136;13110:7;;;;;;:::i;:::-;12996:136;;;9648:234;9695:14;;;;:::i;:::-;707:8662:94;;;;;;;14249:109:60;9559:17;14249:109;707:8662:94;14249:109:60;;;9559:17;14249:109;;707:8662:94;;;;;9727:48:60;9723:149;707:8662:94;;;9795:10:60;9723:149;9648:234;;;9723:149;9850:7;;;;;:::i;:::-;9723:149;;;7084:141:25;707:8662:94;-1:-1:-1;;;;;;;;;;;707:8662:94;;;;7150:18:25;7146:73;;7084:141::o;7146:73::-;707:8662:94;;-1:-1:-1;;;7191:17:25;;;;;707:8662:94;;;-1:-1:-1;;;707:8662:94;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;707:8662:94;;;;;;;;;;;:::o;11513:870:60:-;707:8662:94;;11513:870:60;;;707:8662:94;11513:870:60;11672:7;;;;707:8662:94;11775:28:60;11795:7;;;:::i;:::-;11775:28;14249:109;;;;;;14099:265;;11775:28;707:8662:94;:::i;:::-;;;;;;;;;;;;;;;;11877:15:60;-1:-1:-1;11873:91:60;;707:8662:94;;12233:11:60;707:8662:94;;;12027:16:60;707:8662:94;;;;;;;12027:16:60;;;;12083:7;12063:43;12083:7;;12063:28;12083:7;;:::i;12063:28::-;707:8662:94;;;;;;;;;;;;;;;;;12063:43:60;12233:11;707:8662:94;-1:-1:-1;;;;;707:8662:94;;;;12225:27:60;;:::o;12023:189::-;707:8662:94;;;12145:52:60;707:8662:94;12155:41:60;707:8662:94;;:::i;:::-;;;;;;;;12155:41:60;-1:-1:-1;;;;;707:8662:94;;12155:41:60;;;707:8662:94;12145:52:60;:::i;:::-;12023:189;;11873:91;707:8662:94;;-1:-1:-1;;;11919:30:60;;;;;11668:709;12283:52;707:8662:94;;12293:41:60;707:8662:94;;:::i;12293:41:60:-;-1:-1:-1;;;;;707:8662:94;;12293:41:60;;;707:8662:94;12145:52:60;:::i;12283:::-;11678:1;12349:17;;:::o;8587:1642:57:-;8658:6;;8654:45;;9401:7;10201:10;10142:26;10093;10044;9995;9946;9897;9848;707:8662:94;10189:23:57;9401:7;8663:1;707:8662:94;;;;10826:16:57;10822:99;;8587:1642;707:8662:94;;;;10938:15:57;10934:96;;8587:1642;707:8662:94;;;;11047:15:57;11043:96;;8587:1642;707:8662:94;;;;11156:15:57;11152:96;;8587:1642;707:8662:94;;;;11265:14:57;11261:93;;8587:1642;707:8662:94;;;;11371:14:57;11367:93;;8587:1642;707:8662:94;;;;11477:14:57;11473:93;;8587:1642;707:8662:94;;;11579:64:57;;8587:1642;707:8662:94;;;9858:10:57;;;;:::i;:::-;707:8662:94;;;;;9848:26:57;9907:10;;;;:::i;9897:26::-;9956:10;;;;:::i;9946:26::-;10005:10;;;;:::i;9995:26::-;10054:10;;;;:::i;10044:26::-;10103:10;;;;:::i;10093:26::-;10152:10;;;;:::i;10142:26::-;10201:10;;;:::i;:::-;10189:23;;:::i;11579:64::-;707:8662:94;;11579:64:57;;11473:93;707:8662:94;11511:11:57;;707:8662:94;;11473:93:57;;;;11367;707:8662:94;11405:11:57;;707:8662:94;;11367:93:57;;;;11261;707:8662:94;11299:11:57;;707:8662:94;;11261:93:57;;;;11152:96;707:8662:94;11191:12:57;;707:8662:94;;11152:96:57;;;;11043;707:8662:94;11082:12:57;;707:8662:94;;11043:96:57;;;;10934;707:8662:94;10973:12:57;;707:8662:94;;10934:96:57;;;;10822:99;10862:13;;;707:8662:94;10822:99:57;;;;8654:45;8680:8;8663:1;8680:8;:::o","linkReferences":{},"immutableReferences":{"57808":[{"start":810,"length":32}],"57811":[{"start":4873,"length":32},{"start":9285,"length":32}],"65592":[{"start":460,"length":32},{"start":7054,"length":32}],"65595":[{"start":742,"length":32},{"start":7448,"length":32}],"66325":[{"start":2540,"length":32},{"start":4959,"length":32}]}},"methodIdentifiers":{"BURNER_GAS_LIMIT()":"d5c24e1a","BURNER_RESERVE()":"2964f8dc","FACTORY()":"2dd31000","NETWORK_MIDDLEWARE_SERVICE()":"2c9d45b3","NETWORK_REGISTRY()":"c0cd7c3e","TYPE()":"bb24fe8a","VAULT_FACTORY()":"103f2907","cumulativeSlash(bytes32,address)":"1a2be2c4","cumulativeSlashAt(bytes32,address,uint48,bytes)":"aa8e6489","executeSlash(uint256,bytes)":"b94c386e","initialize(bytes)":"439fab91","isBurnerHook()":"34d098ea","latestSlashedCaptureTimestamp(bytes32,address)":"267de1f3","requestSlash(bytes32,address,uint256,uint48,bytes)":"545ce389","resolver(bytes32,bytes)":"cd05b8a1","resolverAt(bytes32,uint48,bytes)":"31ce4dfe","resolverSetEpochsDelay()":"bc6eac5b","setResolver(uint96,address,bytes)":"9168f9d2","slashRequests(uint256)":"9a896551","slashRequestsLength()":"8f42f9ab","slashableStake(bytes32,address,uint48,bytes)":"aab3595f","staticDelegateCall(address,bytes)":"9f86fd85","vault()":"fbfa77cf","vetoDuration()":"e054e08b","vetoSlash(uint256,bytes)":"f9268d18"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"vaultFactory\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"networkMiddlewareService\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"networkRegistry\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"slasherFactory\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"entityType\",\"type\":\"uint64\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"AlreadySet\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CheckpointUnorderedInsertion\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientBurnerGas\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientSlash\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidCaptureTimestamp\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidResolverSetEpochsDelay\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidVetoDuration\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NoBurner\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NoResolver\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotNetwork\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotNetworkMiddleware\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotResolver\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotVault\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ReentrancyGuardReentrantCall\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"bits\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"SafeCastOverflowedUintDowncast\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SlashPeriodEnded\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SlashRequestCompleted\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SlashRequestNotExist\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"VetoPeriodEnded\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"VetoPeriodNotEnded\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"slashIndex\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"slashedAmount\",\"type\":\"uint256\"}],\"name\":\"ExecuteSlash\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"slashIndex\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"slashAmount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint48\",\"name\":\"captureTimestamp\",\"type\":\"uint48\"},{\"indexed\":false,\"internalType\":\"uint48\",\"name\":\"vetoDeadline\",\"type\":\"uint48\"}],\"name\":\"RequestSlash\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"resolver\",\"type\":\"address\"}],\"name\":\"SetResolver\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"slashIndex\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"resolver\",\"type\":\"address\"}],\"name\":\"VetoSlash\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"BURNER_GAS_LIMIT\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"BURNER_RESERVE\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"FACTORY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"NETWORK_MIDDLEWARE_SERVICE\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"NETWORK_REGISTRY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"TYPE\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"VAULT_FACTORY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"cumulativeSlash\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hint\",\"type\":\"bytes\"}],\"name\":\"cumulativeSlashAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"slashIndex\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"hints\",\"type\":\"bytes\"}],\"name\":\"executeSlash\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"slashedAmount\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isBurnerHook\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"latestSlashedCaptureTimestamp\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"value\",\"type\":\"uint48\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint48\",\"name\":\"captureTimestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hints\",\"type\":\"bytes\"}],\"name\":\"requestSlash\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"slashIndex\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"hint\",\"type\":\"bytes\"}],\"name\":\"resolver\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hint\",\"type\":\"bytes\"}],\"name\":\"resolverAt\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"resolverSetEpochsDelay\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint96\",\"name\":\"identifier\",\"type\":\"uint96\"},{\"internalType\":\"address\",\"name\":\"resolver_\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"hints\",\"type\":\"bytes\"}],\"name\":\"setResolver\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"slashRequests\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint48\",\"name\":\"captureTimestamp\",\"type\":\"uint48\"},{\"internalType\":\"uint48\",\"name\":\"vetoDeadline\",\"type\":\"uint48\"},{\"internalType\":\"bool\",\"name\":\"completed\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"slashRequestsLength\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"captureTimestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hints\",\"type\":\"bytes\"}],\"name\":\"slashableStake\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"staticDelegateCall\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"vault\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"vetoDuration\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"slashIndex\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"hints\",\"type\":\"bytes\"}],\"name\":\"vetoSlash\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"CheckpointUnorderedInsertion()\":[{\"details\":\"A value was attempted to be inserted on a past checkpoint.\"}],\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"ReentrancyGuardReentrantCall()\":[{\"details\":\"Unauthorized reentrant call.\"}],\"SafeCastOverflowedUintDowncast(uint8,uint256)\":[{\"details\":\"Value doesn't fit in an uint of `bits` size.\"}]},\"events\":{\"ExecuteSlash(uint256,uint256)\":{\"params\":{\"slashIndex\":\"index of the slash request\",\"slashedAmount\":\"virtual amount of the collateral slashed\"}},\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"RequestSlash(uint256,bytes32,address,uint256,uint48,uint48)\":{\"params\":{\"captureTimestamp\":\"time point when the stake was captured\",\"operator\":\"operator that could be slashed (if the request is not vetoed)\",\"slashAmount\":\"maximum amount of the collateral to be slashed\",\"slashIndex\":\"index of the slash request\",\"subnetwork\":\"subnetwork that requested the slash\",\"vetoDeadline\":\"deadline for the resolver to veto the slash (exclusively)\"}},\"SetResolver(bytes32,address)\":{\"params\":{\"resolver\":\"address of the resolver\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"}},\"VetoSlash(uint256,address)\":{\"params\":{\"resolver\":\"address of the resolver that vetoed the slash\",\"slashIndex\":\"index of the slash request\"}}},\"kind\":\"dev\",\"methods\":{\"cumulativeSlash(bytes32,address)\":{\"params\":{\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"},\"returns\":{\"_0\":\"cumulative slash amount\"}},\"cumulativeSlashAt(bytes32,address,uint48,bytes)\":{\"params\":{\"hint\":\"hint for the checkpoint index\",\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\",\"timestamp\":\"time point to get the cumulative slash amount until (inclusively)\"},\"returns\":{\"_0\":\"cumulative slash amount until the given timestamp (inclusively)\"}},\"executeSlash(uint256,bytes)\":{\"details\":\"Only a network middleware can call this function.\",\"params\":{\"hints\":\"hints for checkpoints' indexes\",\"slashIndex\":\"index of the slash request\"},\"returns\":{\"slashedAmount\":\"virtual amount of the collateral slashed\"}},\"initialize(bytes)\":{\"params\":{\"data\":\"some data to use\"}},\"requestSlash(bytes32,address,uint256,uint48,bytes)\":{\"details\":\"Only a network middleware can call this function.\",\"params\":{\"amount\":\"maximum amount of the collateral to be slashed\",\"captureTimestamp\":\"time point when the stake was captured\",\"hints\":\"hints for checkpoints' indexes\",\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"},\"returns\":{\"slashIndex\":\"index of the slash request\"}},\"resolver(bytes32,bytes)\":{\"params\":{\"hint\":\"hint for the checkpoint index\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"},\"returns\":{\"_0\":\"address of the resolver\"}},\"resolverAt(bytes32,uint48,bytes)\":{\"params\":{\"hint\":\"hint for the checkpoint index\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\",\"timestamp\":\"timestamp to get the resolver at\"},\"returns\":{\"_0\":\"address of the resolver\"}},\"slashRequestsLength()\":{\"returns\":{\"_0\":\"total number of slash requests\"}},\"slashableStake(bytes32,address,uint48,bytes)\":{\"params\":{\"captureTimestamp\":\"time point to get the stake amount at\",\"hints\":\"hints for the checkpoints' indexes\",\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"},\"returns\":{\"amount\":\"slashable amount of the stake\"}},\"staticDelegateCall(address,bytes)\":{\"details\":\"It allows to use this contract's storage on-chain.\",\"params\":{\"data\":\"data to make a delegatecall with\",\"target\":\"address of the contract to make a delegatecall to\"}},\"vetoSlash(uint256,bytes)\":{\"details\":\"Only a resolver can call this function.\",\"params\":{\"hints\":\"hints for checkpoints' indexes\",\"slashIndex\":\"index of the slash request\"}}},\"stateVariables\":{\"NETWORK_REGISTRY\":{\"return\":\"address of the network registry\",\"returns\":{\"_0\":\"address of the network registry\"}},\"resolverSetEpochsDelay\":{\"return\":\"updating resolver delay in epochs\",\"returns\":{\"_0\":\"updating resolver delay in epochs\"}},\"slashRequests\":{\"params\":{\"slashIndex\":\"index of the slash request\"},\"returns\":{\"amount\":\"maximum amount of the collateral to be slashed\",\"captureTimestamp\":\"time point when the stake was captured\",\"completed\":\"if the slash was vetoed/executed\",\"operator\":\"operator that could be slashed (if the request is not vetoed)\",\"subnetwork\":\"subnetwork that requested the slash\",\"vetoDeadline\":\"deadline for the resolver to veto the slash (exclusively)\"}},\"vetoDuration\":{\"return\":\"duration of the veto period\",\"returns\":{\"_0\":\"duration of the veto period\"}}},\"version\":1},\"userdoc\":{\"events\":{\"ExecuteSlash(uint256,uint256)\":{\"notice\":\"Emitted when a slash request is executed.\"},\"RequestSlash(uint256,bytes32,address,uint256,uint48,uint48)\":{\"notice\":\"Emitted when a slash request is created.\"},\"SetResolver(bytes32,address)\":{\"notice\":\"Emitted when a resolver is set.\"},\"VetoSlash(uint256,address)\":{\"notice\":\"Emitted when a slash request is vetoed.\"}},\"kind\":\"user\",\"methods\":{\"BURNER_GAS_LIMIT()\":{\"notice\":\"Get a gas limit for the burner.\"},\"BURNER_RESERVE()\":{\"notice\":\"Get a reserve gas between the gas limit check and the burner's execution.\"},\"FACTORY()\":{\"notice\":\"Get the factory's address.\"},\"NETWORK_MIDDLEWARE_SERVICE()\":{\"notice\":\"Get the network middleware service's address.\"},\"NETWORK_REGISTRY()\":{\"notice\":\"Get the network registry's address.\"},\"TYPE()\":{\"notice\":\"Get the entity's type.\"},\"VAULT_FACTORY()\":{\"notice\":\"Get the vault factory's address.\"},\"cumulativeSlash(bytes32,address)\":{\"notice\":\"Get a cumulative slash amount for an operator on a subnetwork.\"},\"cumulativeSlashAt(bytes32,address,uint48,bytes)\":{\"notice\":\"Get a cumulative slash amount for an operator on a subnetwork until a given timestamp (inclusively) using a hint.\"},\"executeSlash(uint256,bytes)\":{\"notice\":\"Execute a slash with a given slash index using hints.\"},\"initialize(bytes)\":{\"notice\":\"Initialize this entity contract by using a given data.\"},\"isBurnerHook()\":{\"notice\":\"Get if the burner is needed to be called on a slashing.\"},\"latestSlashedCaptureTimestamp(bytes32,address)\":{\"notice\":\"Get the latest capture timestamp that was slashed on a subnetwork.\"},\"requestSlash(bytes32,address,uint256,uint48,bytes)\":{\"notice\":\"Request a slash using a subnetwork for a particular operator by a given amount using hints.\"},\"resolver(bytes32,bytes)\":{\"notice\":\"Get a resolver for a given subnetwork using a hint.\"},\"resolverAt(bytes32,uint48,bytes)\":{\"notice\":\"Get a resolver for a given subnetwork at a particular timestamp using a hint.\"},\"resolverSetEpochsDelay()\":{\"notice\":\"Get a delay for networks in epochs to update a resolver.\"},\"slashRequests(uint256)\":{\"notice\":\"Get a particular slash request.\"},\"slashRequestsLength()\":{\"notice\":\"Get a total number of slash requests.\"},\"slashableStake(bytes32,address,uint48,bytes)\":{\"notice\":\"Get a slashable amount of a stake got at a given capture timestamp using hints.\"},\"staticDelegateCall(address,bytes)\":{\"notice\":\"Make a delegatecall from this contract to a given target contract with a particular data (always reverts with a return data).\"},\"vault()\":{\"notice\":\"Get the vault's address.\"},\"vetoDuration()\":{\"notice\":\"Get a duration during which resolvers can veto slash requests.\"},\"vetoSlash(uint256,bytes)\":{\"notice\":\"Veto a slash with a given slash index using hints.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/contracts/slasher/VetoSlasher.sol\":\"VetoSlasher\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609\",\"dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardUpgradeable.sol\":{\"keccak256\":\"0xb44e086e941292cdc7f440de51478493894ef0b1aeccb0c4047445919f667f74\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://942dad22fbdc1669f025540ba63aa3ccfad5f8458fc5d4525b31ebf272e7af45\",\"dweb:/ipfs/Qmdo4X2M82aM3AMoW2kf2jhYkSCyC4T1pHNd6obdsDFnAB\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875\",\"dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0xe19a4d5f31d2861e7344e8e535e2feafb913d806d3e2b5fe7782741a2a7094fe\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4aed79c0fa6f0546ed02f2f683e8f77f0fd2ed7eb34d8bbf3d373c9a6d95b13c\",\"dweb:/ipfs/QmWqVz6UAVqmnWU5pqYPt1o6iDEZyPaBraAA3rKfTTSfYj\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/Checkpoints.sol\":{\"keccak256\":\"0xbdc5e074d7dd6678f67e92b1a51a20226801a407b0e1af3da367c5d1ff4519ad\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a36cca6b22fff3db16fc789ff6c60eea71d4b156065d4d0c83a0bc5e91a77a8b\",\"dweb:/ipfs/QmYN3exd5AemxjBrN8XMB1p5LbbE16uC3sjbYjwi8AjcGR\"]},\"lib/openzeppelin-contracts/contracts/utils/types/Time.sol\":{\"keccak256\":\"0xc7755af115020049e4140f224f9ee88d7e1799ffb0646f37bf0df24bf6213f58\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7f09bf94d5274334ec021f61a04659db303f31e60460e14b709c9bf187740111\",\"dweb:/ipfs/QmNvgomZYUwFAt4cZbPWAiTeSZQreGehY9BK5xyVJsUttb\"]},\"src/contracts/common/Entity.sol\":{\"keccak256\":\"0x3d61a932995b8443381f3950542d388223a2c26dd5d29a3274dea3baa7388bd7\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://7cdf5f03ca72fd263fd32ff59c8d88ddca911ae83896a287d10772c1bbe9b138\",\"dweb:/ipfs/QmbP84r5BWT1Rn9AYTntWSf3xUMTTCohTZJFhbBhDXFoHa\"]},\"src/contracts/common/StaticDelegateCallable.sol\":{\"keccak256\":\"0x350029aa8955eacaffffaeb58babc5c98e80ebc5c5db388ed17ee6465f4a9d90\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://eb392a8ee9050e0af606897df63e3404e3829e8b688b580663892f9664195764\",\"dweb:/ipfs/QmaXC8jqV8UrrAFkzXTEv2fJF56sy33HhLxAzaRZmUxuXD\"]},\"src/contracts/libraries/Checkpoints.sol\":{\"keccak256\":\"0xba90097c8bfe0a975499428b5f8ac5569483c7d92ccc28c12d70de416aae040c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://12f5d93ca94cd06d3147db68993165a58e17903ed53682560de61f3085ad4609\",\"dweb:/ipfs/QmePiuAqvXprMLmFZkGZeGjvGPAvsEDHfCDv7BoQhXu9xE\"]},\"src/contracts/libraries/Subnetwork.sol\":{\"keccak256\":\"0xf5ef5506fd66082b3c2e7f3df37529f5a8efad32ac62e7c8914bd63219190bfe\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba031a54ee0d0e9a270c2b9e18437f5668cfeb659cfd5fe0677459d7fcac2a56\",\"dweb:/ipfs/QmReP3H7qQ78tAfgLnJKsNEQNCQfF1X1Get38Ffd4kzq32\"]},\"src/contracts/slasher/BaseSlasher.sol\":{\"keccak256\":\"0x190e5dce196a061bdad42468c52e9f5b0eb7810cd7d0c19f04d6a2e94984f1b6\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://07ca08d0cd43c2fe5d54a5577f6bdd522ced410f5d3a52e764deaa7ba26b5f06\",\"dweb:/ipfs/QmZe3PiMKBQKWcwodaLupragdqxPjgS4v1qMC7RXau8hDF\"]},\"src/contracts/slasher/VetoSlasher.sol\":{\"keccak256\":\"0xeccc8128de5e1ad499c067feac1c526638fbbac1a18b96726fc7507969fd5897\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://cdfcf281338423625acbccdf8810115b258ef7cfe4aa3c10b8911ead1aa85429\",\"dweb:/ipfs/QmZFsDvZXpkFkx4PHcDXAVPN3ZCAahbSVfYpSVrMBvbt4k\"]},\"src/interfaces/common/IEntity.sol\":{\"keccak256\":\"0x8ef4b63d6da63489778ccd5f8d13ebdd527dd4b62730b2c616df5af7474d2d21\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a8d69576a9219d85c50816a18ad53a4d53cfcb27ed38b8cccc808dc2734b71b\",\"dweb:/ipfs/QmYVN3P4Q4REvBWJ97TbAcaxm3uyB2anV6NSGa6ZtSwcEv\"]},\"src/interfaces/common/IMigratableEntity.sol\":{\"keccak256\":\"0x8f5f2809f3afbe8ebfbb365dd7b57b4dd3b6f9943a6187eaf648d45895b8e3c4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ffe640537d539e7a4fde70d30d3e4c57f4ba9c2c25c450cea713aae38e8fd5c\",\"dweb:/ipfs/QmSUTGzvdcn1R1KB7tLThMRtESsfPbeXDhhhKWGtntzBds\"]},\"src/interfaces/common/IRegistry.sol\":{\"keccak256\":\"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014\",\"dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK\"]},\"src/interfaces/common/IStaticDelegateCallable.sol\":{\"keccak256\":\"0xa335d4e81b9071b7de66ef92b43ff20671d86516eb1be46fef29a3483cd3f5d5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d464b9db863c14c05547d2b23352f2e9b7b784799cf09f6bbc4906a2a74e3516\",\"dweb:/ipfs/QmUVWzFvJz7eEbDQKiFTTzwi7TEbjcs3VmwdM4kuptAKvi\"]},\"src/interfaces/delegator/IBaseDelegator.sol\":{\"keccak256\":\"0x96bb312f032e17accce3f8f80936d99468029d6b37c9ca74acdb4b026a0148ee\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2a66dcb5b7d1a6ef6a363431ea98ebd78bc4fdd3d7a134d9b542dc66e7d025c2\",\"dweb:/ipfs/QmRhTPLd2ZAyRHmJUFUcWKs9b3if49QY17LYZuRqWmghw8\"]},\"src/interfaces/service/INetworkMiddlewareService.sol\":{\"keccak256\":\"0x347afc7fcf1fbcdb96d66162070ef6c78aed27b3af2c1d5dfb4e511840631783\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2d90b8ceb495159e8e4e95d76447719dd166443f67dfabdd942846162071595c\",\"dweb:/ipfs/QmVVuiAWYx92T6vBvNMKZfTvraCf1fa16BsUKkdNs3hdHA\"]},\"src/interfaces/slasher/IBaseSlasher.sol\":{\"keccak256\":\"0x7c82528b445659c313ab77335c407b0b6efe5e79027187bb287f7bc74202b404\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0274c90aa5df1aa6bb470a6aab53992fb14fd7e5472c9430416505b29647d9cf\",\"dweb:/ipfs/QmckbmJLDetPemVzCnnGcKYWAZV2BRFXGDsjiaec8jkHxx\"]},\"src/interfaces/slasher/IBurner.sol\":{\"keccak256\":\"0xaf495dacc19ae0b3c787ba8021c5944927d70261536addd234d7dab146158c2b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9b3cc66251008be6ff9fc8b11ecc6831d5a9dca49a3fe9817fcd970253c1d447\",\"dweb:/ipfs/QmVxfb9ALGdF9W3SN2h41gQbUct6tawvu5bw4K89kFQ4HW\"]},\"src/interfaces/slasher/IVetoSlasher.sol\":{\"keccak256\":\"0xdf7edd04a4f36e9aec3a15241dcb6b6315b2e64927b12710c2c410d571fc55e9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c4be6ac339c2ebf230fed65363f036784224095d0cd0f3f2d01d64d6e0da9508\",\"dweb:/ipfs/QmRSMbpfaHExqrzUA8vYZMYZWh6eQW1KX9JKJSLdgronfg\"]},\"src/interfaces/vault/IVault.sol\":{\"keccak256\":\"0xffee01d383cd4e1a5530c614bf4360c1ef070c288abec9da1eb531b51bc07235\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://04f0046cac285d8ec44ebbb1f79dc94fab4495767190cad8364fbc1fafaadfb9\",\"dweb:/ipfs/QmUawAunwzXfCyShWfhKeThAgKtqe51hmrxvrXvM772M2R\"]},\"src/interfaces/vault/IVaultStorage.sol\":{\"keccak256\":\"0x592626f13754194f83047135de19229c49390bd59e34659b1bb38be71d973a22\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://06a6a9dfddd05e580b32bebe2cff4f63ba26a653180676d58225dd30d9c89d3e\",\"dweb:/ipfs/QmdgzBeY6Sxo8mGtyBxtv1tM1c2kU6J6zjeRd7vuXm4DU6\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.25+commit.b61c2a91"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"vaultFactory","type":"address"},{"internalType":"address","name":"networkMiddlewareService","type":"address"},{"internalType":"address","name":"networkRegistry","type":"address"},{"internalType":"address","name":"slasherFactory","type":"address"},{"internalType":"uint64","name":"entityType","type":"uint64"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"AlreadySet"},{"inputs":[],"type":"error","name":"CheckpointUnorderedInsertion"},{"inputs":[],"type":"error","name":"InsufficientBurnerGas"},{"inputs":[],"type":"error","name":"InsufficientSlash"},{"inputs":[],"type":"error","name":"InvalidCaptureTimestamp"},{"inputs":[],"type":"error","name":"InvalidInitialization"},{"inputs":[],"type":"error","name":"InvalidResolverSetEpochsDelay"},{"inputs":[],"type":"error","name":"InvalidVetoDuration"},{"inputs":[],"type":"error","name":"NoBurner"},{"inputs":[],"type":"error","name":"NoResolver"},{"inputs":[],"type":"error","name":"NotInitialized"},{"inputs":[],"type":"error","name":"NotInitializing"},{"inputs":[],"type":"error","name":"NotNetwork"},{"inputs":[],"type":"error","name":"NotNetworkMiddleware"},{"inputs":[],"type":"error","name":"NotResolver"},{"inputs":[],"type":"error","name":"NotVault"},{"inputs":[],"type":"error","name":"ReentrancyGuardReentrantCall"},{"inputs":[{"internalType":"uint8","name":"bits","type":"uint8"},{"internalType":"uint256","name":"value","type":"uint256"}],"type":"error","name":"SafeCastOverflowedUintDowncast"},{"inputs":[],"type":"error","name":"SlashPeriodEnded"},{"inputs":[],"type":"error","name":"SlashRequestCompleted"},{"inputs":[],"type":"error","name":"SlashRequestNotExist"},{"inputs":[],"type":"error","name":"VetoPeriodEnded"},{"inputs":[],"type":"error","name":"VetoPeriodNotEnded"},{"inputs":[{"internalType":"uint256","name":"slashIndex","type":"uint256","indexed":true},{"internalType":"uint256","name":"slashedAmount","type":"uint256","indexed":false}],"type":"event","name":"ExecuteSlash","anonymous":false},{"inputs":[{"internalType":"uint64","name":"version","type":"uint64","indexed":false}],"type":"event","name":"Initialized","anonymous":false},{"inputs":[{"internalType":"uint256","name":"slashIndex","type":"uint256","indexed":true},{"internalType":"bytes32","name":"subnetwork","type":"bytes32","indexed":true},{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"uint256","name":"slashAmount","type":"uint256","indexed":false},{"internalType":"uint48","name":"captureTimestamp","type":"uint48","indexed":false},{"internalType":"uint48","name":"vetoDeadline","type":"uint48","indexed":false}],"type":"event","name":"RequestSlash","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32","indexed":true},{"internalType":"address","name":"resolver","type":"address","indexed":false}],"type":"event","name":"SetResolver","anonymous":false},{"inputs":[{"internalType":"uint256","name":"slashIndex","type":"uint256","indexed":true},{"internalType":"address","name":"resolver","type":"address","indexed":true}],"type":"event","name":"VetoSlash","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"BURNER_GAS_LIMIT","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"BURNER_RESERVE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"FACTORY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"NETWORK_MIDDLEWARE_SERVICE","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"NETWORK_REGISTRY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"TYPE","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"VAULT_FACTORY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"cumulativeSlash","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint48","name":"timestamp","type":"uint48"},{"internalType":"bytes","name":"hint","type":"bytes"}],"stateMutability":"view","type":"function","name":"cumulativeSlashAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"slashIndex","type":"uint256"},{"internalType":"bytes","name":"hints","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"executeSlash","outputs":[{"internalType":"uint256","name":"slashedAmount","type":"uint256"}]},{"inputs":[{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[],"stateMutability":"view","type":"function","name":"isBurnerHook","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"latestSlashedCaptureTimestamp","outputs":[{"internalType":"uint48","name":"value","type":"uint48"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint48","name":"captureTimestamp","type":"uint48"},{"internalType":"bytes","name":"hints","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"requestSlash","outputs":[{"internalType":"uint256","name":"slashIndex","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"bytes","name":"hint","type":"bytes"}],"stateMutability":"view","type":"function","name":"resolver","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"uint48","name":"timestamp","type":"uint48"},{"internalType":"bytes","name":"hint","type":"bytes"}],"stateMutability":"view","type":"function","name":"resolverAt","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"resolverSetEpochsDelay","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint96","name":"identifier","type":"uint96"},{"internalType":"address","name":"resolver_","type":"address"},{"internalType":"bytes","name":"hints","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"setResolver"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function","name":"slashRequests","outputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint48","name":"captureTimestamp","type":"uint48"},{"internalType":"uint48","name":"vetoDeadline","type":"uint48"},{"internalType":"bool","name":"completed","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"slashRequestsLength","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint48","name":"captureTimestamp","type":"uint48"},{"internalType":"bytes","name":"hints","type":"bytes"}],"stateMutability":"view","type":"function","name":"slashableStake","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"staticDelegateCall"},{"inputs":[],"stateMutability":"view","type":"function","name":"vault","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"vetoDuration","outputs":[{"internalType":"uint48","name":"","type":"uint48"}]},{"inputs":[{"internalType":"uint256","name":"slashIndex","type":"uint256"},{"internalType":"bytes","name":"hints","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"vetoSlash"}],"devdoc":{"kind":"dev","methods":{"cumulativeSlash(bytes32,address)":{"params":{"operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"},"returns":{"_0":"cumulative slash amount"}},"cumulativeSlashAt(bytes32,address,uint48,bytes)":{"params":{"hint":"hint for the checkpoint index","operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)","timestamp":"time point to get the cumulative slash amount until (inclusively)"},"returns":{"_0":"cumulative slash amount until the given timestamp (inclusively)"}},"executeSlash(uint256,bytes)":{"details":"Only a network middleware can call this function.","params":{"hints":"hints for checkpoints' indexes","slashIndex":"index of the slash request"},"returns":{"slashedAmount":"virtual amount of the collateral slashed"}},"initialize(bytes)":{"params":{"data":"some data to use"}},"requestSlash(bytes32,address,uint256,uint48,bytes)":{"details":"Only a network middleware can call this function.","params":{"amount":"maximum amount of the collateral to be slashed","captureTimestamp":"time point when the stake was captured","hints":"hints for checkpoints' indexes","operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"},"returns":{"slashIndex":"index of the slash request"}},"resolver(bytes32,bytes)":{"params":{"hint":"hint for the checkpoint index","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"},"returns":{"_0":"address of the resolver"}},"resolverAt(bytes32,uint48,bytes)":{"params":{"hint":"hint for the checkpoint index","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)","timestamp":"timestamp to get the resolver at"},"returns":{"_0":"address of the resolver"}},"slashRequestsLength()":{"returns":{"_0":"total number of slash requests"}},"slashableStake(bytes32,address,uint48,bytes)":{"params":{"captureTimestamp":"time point to get the stake amount at","hints":"hints for the checkpoints' indexes","operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"},"returns":{"amount":"slashable amount of the stake"}},"staticDelegateCall(address,bytes)":{"details":"It allows to use this contract's storage on-chain.","params":{"data":"data to make a delegatecall with","target":"address of the contract to make a delegatecall to"}},"vetoSlash(uint256,bytes)":{"details":"Only a resolver can call this function.","params":{"hints":"hints for checkpoints' indexes","slashIndex":"index of the slash request"}}},"version":1},"userdoc":{"kind":"user","methods":{"BURNER_GAS_LIMIT()":{"notice":"Get a gas limit for the burner."},"BURNER_RESERVE()":{"notice":"Get a reserve gas between the gas limit check and the burner's execution."},"FACTORY()":{"notice":"Get the factory's address."},"NETWORK_MIDDLEWARE_SERVICE()":{"notice":"Get the network middleware service's address."},"NETWORK_REGISTRY()":{"notice":"Get the network registry's address."},"TYPE()":{"notice":"Get the entity's type."},"VAULT_FACTORY()":{"notice":"Get the vault factory's address."},"cumulativeSlash(bytes32,address)":{"notice":"Get a cumulative slash amount for an operator on a subnetwork."},"cumulativeSlashAt(bytes32,address,uint48,bytes)":{"notice":"Get a cumulative slash amount for an operator on a subnetwork until a given timestamp (inclusively) using a hint."},"executeSlash(uint256,bytes)":{"notice":"Execute a slash with a given slash index using hints."},"initialize(bytes)":{"notice":"Initialize this entity contract by using a given data."},"isBurnerHook()":{"notice":"Get if the burner is needed to be called on a slashing."},"latestSlashedCaptureTimestamp(bytes32,address)":{"notice":"Get the latest capture timestamp that was slashed on a subnetwork."},"requestSlash(bytes32,address,uint256,uint48,bytes)":{"notice":"Request a slash using a subnetwork for a particular operator by a given amount using hints."},"resolver(bytes32,bytes)":{"notice":"Get a resolver for a given subnetwork using a hint."},"resolverAt(bytes32,uint48,bytes)":{"notice":"Get a resolver for a given subnetwork at a particular timestamp using a hint."},"resolverSetEpochsDelay()":{"notice":"Get a delay for networks in epochs to update a resolver."},"slashRequests(uint256)":{"notice":"Get a particular slash request."},"slashRequestsLength()":{"notice":"Get a total number of slash requests."},"slashableStake(bytes32,address,uint48,bytes)":{"notice":"Get a slashable amount of a stake got at a given capture timestamp using hints."},"staticDelegateCall(address,bytes)":{"notice":"Make a delegatecall from this contract to a given target contract with a particular data (always reverts with a return data)."},"vault()":{"notice":"Get the vault's address."},"vetoDuration()":{"notice":"Get a duration during which resolvers can veto slash requests."},"vetoSlash(uint256,bytes)":{"notice":"Veto a slash with a given slash index using hints."}},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/contracts/slasher/VetoSlasher.sol":"VetoSlasher"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b","urls":["bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609","dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardUpgradeable.sol":{"keccak256":"0xb44e086e941292cdc7f440de51478493894ef0b1aeccb0c4047445919f667f74","urls":["bzz-raw://942dad22fbdc1669f025540ba63aa3ccfad5f8458fc5d4525b31ebf272e7af45","dweb:/ipfs/Qmdo4X2M82aM3AMoW2kf2jhYkSCyC4T1pHNd6obdsDFnAB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d","urls":["bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875","dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol":{"keccak256":"0xe19a4d5f31d2861e7344e8e535e2feafb913d806d3e2b5fe7782741a2a7094fe","urls":["bzz-raw://4aed79c0fa6f0546ed02f2f683e8f77f0fd2ed7eb34d8bbf3d373c9a6d95b13c","dweb:/ipfs/QmWqVz6UAVqmnWU5pqYPt1o6iDEZyPaBraAA3rKfTTSfYj"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/Checkpoints.sol":{"keccak256":"0xbdc5e074d7dd6678f67e92b1a51a20226801a407b0e1af3da367c5d1ff4519ad","urls":["bzz-raw://a36cca6b22fff3db16fc789ff6c60eea71d4b156065d4d0c83a0bc5e91a77a8b","dweb:/ipfs/QmYN3exd5AemxjBrN8XMB1p5LbbE16uC3sjbYjwi8AjcGR"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/types/Time.sol":{"keccak256":"0xc7755af115020049e4140f224f9ee88d7e1799ffb0646f37bf0df24bf6213f58","urls":["bzz-raw://7f09bf94d5274334ec021f61a04659db303f31e60460e14b709c9bf187740111","dweb:/ipfs/QmNvgomZYUwFAt4cZbPWAiTeSZQreGehY9BK5xyVJsUttb"],"license":"MIT"},"src/contracts/common/Entity.sol":{"keccak256":"0x3d61a932995b8443381f3950542d388223a2c26dd5d29a3274dea3baa7388bd7","urls":["bzz-raw://7cdf5f03ca72fd263fd32ff59c8d88ddca911ae83896a287d10772c1bbe9b138","dweb:/ipfs/QmbP84r5BWT1Rn9AYTntWSf3xUMTTCohTZJFhbBhDXFoHa"],"license":"BUSL-1.1"},"src/contracts/common/StaticDelegateCallable.sol":{"keccak256":"0x350029aa8955eacaffffaeb58babc5c98e80ebc5c5db388ed17ee6465f4a9d90","urls":["bzz-raw://eb392a8ee9050e0af606897df63e3404e3829e8b688b580663892f9664195764","dweb:/ipfs/QmaXC8jqV8UrrAFkzXTEv2fJF56sy33HhLxAzaRZmUxuXD"],"license":"BUSL-1.1"},"src/contracts/libraries/Checkpoints.sol":{"keccak256":"0xba90097c8bfe0a975499428b5f8ac5569483c7d92ccc28c12d70de416aae040c","urls":["bzz-raw://12f5d93ca94cd06d3147db68993165a58e17903ed53682560de61f3085ad4609","dweb:/ipfs/QmePiuAqvXprMLmFZkGZeGjvGPAvsEDHfCDv7BoQhXu9xE"],"license":"MIT"},"src/contracts/libraries/Subnetwork.sol":{"keccak256":"0xf5ef5506fd66082b3c2e7f3df37529f5a8efad32ac62e7c8914bd63219190bfe","urls":["bzz-raw://ba031a54ee0d0e9a270c2b9e18437f5668cfeb659cfd5fe0677459d7fcac2a56","dweb:/ipfs/QmReP3H7qQ78tAfgLnJKsNEQNCQfF1X1Get38Ffd4kzq32"],"license":"MIT"},"src/contracts/slasher/BaseSlasher.sol":{"keccak256":"0x190e5dce196a061bdad42468c52e9f5b0eb7810cd7d0c19f04d6a2e94984f1b6","urls":["bzz-raw://07ca08d0cd43c2fe5d54a5577f6bdd522ced410f5d3a52e764deaa7ba26b5f06","dweb:/ipfs/QmZe3PiMKBQKWcwodaLupragdqxPjgS4v1qMC7RXau8hDF"],"license":"BUSL-1.1"},"src/contracts/slasher/VetoSlasher.sol":{"keccak256":"0xeccc8128de5e1ad499c067feac1c526638fbbac1a18b96726fc7507969fd5897","urls":["bzz-raw://cdfcf281338423625acbccdf8810115b258ef7cfe4aa3c10b8911ead1aa85429","dweb:/ipfs/QmZFsDvZXpkFkx4PHcDXAVPN3ZCAahbSVfYpSVrMBvbt4k"],"license":"BUSL-1.1"},"src/interfaces/common/IEntity.sol":{"keccak256":"0x8ef4b63d6da63489778ccd5f8d13ebdd527dd4b62730b2c616df5af7474d2d21","urls":["bzz-raw://5a8d69576a9219d85c50816a18ad53a4d53cfcb27ed38b8cccc808dc2734b71b","dweb:/ipfs/QmYVN3P4Q4REvBWJ97TbAcaxm3uyB2anV6NSGa6ZtSwcEv"],"license":"MIT"},"src/interfaces/common/IMigratableEntity.sol":{"keccak256":"0x8f5f2809f3afbe8ebfbb365dd7b57b4dd3b6f9943a6187eaf648d45895b8e3c4","urls":["bzz-raw://0ffe640537d539e7a4fde70d30d3e4c57f4ba9c2c25c450cea713aae38e8fd5c","dweb:/ipfs/QmSUTGzvdcn1R1KB7tLThMRtESsfPbeXDhhhKWGtntzBds"],"license":"MIT"},"src/interfaces/common/IRegistry.sol":{"keccak256":"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb","urls":["bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014","dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK"],"license":"MIT"},"src/interfaces/common/IStaticDelegateCallable.sol":{"keccak256":"0xa335d4e81b9071b7de66ef92b43ff20671d86516eb1be46fef29a3483cd3f5d5","urls":["bzz-raw://d464b9db863c14c05547d2b23352f2e9b7b784799cf09f6bbc4906a2a74e3516","dweb:/ipfs/QmUVWzFvJz7eEbDQKiFTTzwi7TEbjcs3VmwdM4kuptAKvi"],"license":"MIT"},"src/interfaces/delegator/IBaseDelegator.sol":{"keccak256":"0x96bb312f032e17accce3f8f80936d99468029d6b37c9ca74acdb4b026a0148ee","urls":["bzz-raw://2a66dcb5b7d1a6ef6a363431ea98ebd78bc4fdd3d7a134d9b542dc66e7d025c2","dweb:/ipfs/QmRhTPLd2ZAyRHmJUFUcWKs9b3if49QY17LYZuRqWmghw8"],"license":"MIT"},"src/interfaces/service/INetworkMiddlewareService.sol":{"keccak256":"0x347afc7fcf1fbcdb96d66162070ef6c78aed27b3af2c1d5dfb4e511840631783","urls":["bzz-raw://2d90b8ceb495159e8e4e95d76447719dd166443f67dfabdd942846162071595c","dweb:/ipfs/QmVVuiAWYx92T6vBvNMKZfTvraCf1fa16BsUKkdNs3hdHA"],"license":"MIT"},"src/interfaces/slasher/IBaseSlasher.sol":{"keccak256":"0x7c82528b445659c313ab77335c407b0b6efe5e79027187bb287f7bc74202b404","urls":["bzz-raw://0274c90aa5df1aa6bb470a6aab53992fb14fd7e5472c9430416505b29647d9cf","dweb:/ipfs/QmckbmJLDetPemVzCnnGcKYWAZV2BRFXGDsjiaec8jkHxx"],"license":"MIT"},"src/interfaces/slasher/IBurner.sol":{"keccak256":"0xaf495dacc19ae0b3c787ba8021c5944927d70261536addd234d7dab146158c2b","urls":["bzz-raw://9b3cc66251008be6ff9fc8b11ecc6831d5a9dca49a3fe9817fcd970253c1d447","dweb:/ipfs/QmVxfb9ALGdF9W3SN2h41gQbUct6tawvu5bw4K89kFQ4HW"],"license":"MIT"},"src/interfaces/slasher/IVetoSlasher.sol":{"keccak256":"0xdf7edd04a4f36e9aec3a15241dcb6b6315b2e64927b12710c2c410d571fc55e9","urls":["bzz-raw://c4be6ac339c2ebf230fed65363f036784224095d0cd0f3f2d01d64d6e0da9508","dweb:/ipfs/QmRSMbpfaHExqrzUA8vYZMYZWh6eQW1KX9JKJSLdgronfg"],"license":"MIT"},"src/interfaces/vault/IVault.sol":{"keccak256":"0xffee01d383cd4e1a5530c614bf4360c1ef070c288abec9da1eb531b51bc07235","urls":["bzz-raw://04f0046cac285d8ec44ebbb1f79dc94fab4495767190cad8364fbc1fafaadfb9","dweb:/ipfs/QmUawAunwzXfCyShWfhKeThAgKtqe51hmrxvrXvM772M2R"],"license":"MIT"},"src/interfaces/vault/IVaultStorage.sol":{"keccak256":"0x592626f13754194f83047135de19229c49390bd59e34659b1bb38be71d973a22","urls":["bzz-raw://06a6a9dfddd05e580b32bebe2cff4f63ba26a653180676d58225dd30d9c89d3e","dweb:/ipfs/QmdgzBeY6Sxo8mGtyBxtv1tM1c2kU6J6zjeRd7vuXm4DU6"],"license":"MIT"}},"version":1},"id":94} \ No newline at end of file diff --git a/script/integration/SymbioticCoreInit.sol b/script/integration/SymbioticCoreInit.sol index 9d7650ce..e515287a 100644 --- a/script/integration/SymbioticCoreInit.sol +++ b/script/integration/SymbioticCoreInit.sol @@ -79,7 +79,10 @@ contract SymbioticCoreInit is SymbioticInit, SymbioticCoreBindings { } else { // non-deterministic deployment (uses standard create) (Vm.CallerMode callerMode,, address deployer) = vm.readCallers(); - if (callerMode != VmSafe.CallerMode.Broadcast) { + if (callerMode == VmSafe.CallerMode.Broadcast) { + vm.stopBroadcast(); + } + if (callerMode != VmSafe.CallerMode.RecurrentBroadcast) { vm.startBroadcast(deployer); } ISymbioticVaultFactory vaultFactory = ISymbioticVaultFactory( @@ -255,7 +258,7 @@ contract SymbioticCoreInit is SymbioticInit, SymbioticCoreBindings { operatorNetworkOptInService: operatorNetworkOptInService, vaultConfigurator: vaultConfigurator }); - if (callerMode != VmSafe.CallerMode.Broadcast) { + if (callerMode != VmSafe.CallerMode.RecurrentBroadcast) { vm.stopBroadcast(); } } @@ -285,7 +288,7 @@ contract SymbioticCoreInit is SymbioticInit, SymbioticCoreBindings { address collateral ) internal virtual returns (address) { (Vm.CallerMode callerMode,, address owner) = vm.readCallers(); - if (callerMode == VmSafe.CallerMode.Broadcast) { + if (callerMode == VmSafe.CallerMode.Broadcast || callerMode == VmSafe.CallerMode.RecurrentBroadcast) { vm.stopBroadcast(); } @@ -338,7 +341,7 @@ contract SymbioticCoreInit is SymbioticInit, SymbioticCoreBindings { }) ) }); - if (callerMode == VmSafe.CallerMode.Broadcast) { + if (callerMode == VmSafe.CallerMode.RecurrentBroadcast) { vm.startBroadcast(owner); } @@ -462,7 +465,7 @@ contract SymbioticCoreInit is SymbioticInit, SymbioticCoreBindings { } (Vm.CallerMode callerMode,, address deployer) = vm.readCallers(); - if (callerMode == VmSafe.CallerMode.Broadcast) { + if (callerMode == VmSafe.CallerMode.Broadcast || callerMode == VmSafe.CallerMode.RecurrentBroadcast) { vm.stopBroadcast(); } (address vault,,) = _createVault_SymbioticCore({ @@ -483,7 +486,7 @@ contract SymbioticCoreInit is SymbioticInit, SymbioticCoreBindings { _setDepositorWhitelistStatus_SymbioticCore(owner, vault, whitelistedDepositors[i], true); } } - if (callerMode == VmSafe.CallerMode.Broadcast) { + if (callerMode == VmSafe.CallerMode.RecurrentBroadcast) { vm.startBroadcast(deployer); } @@ -534,7 +537,7 @@ contract SymbioticCoreInit is SymbioticInit, SymbioticCoreBindings { uint64 slasherIndex = _randomPick_Symbiotic(slasherTypes); (Vm.CallerMode callerMode,, address deployer) = vm.readCallers(); - if (callerMode == VmSafe.CallerMode.Broadcast) { + if (callerMode == VmSafe.CallerMode.Broadcast || callerMode == VmSafe.CallerMode.RecurrentBroadcast) { vm.stopBroadcast(); } address vault = _getVault_SymbioticCore( @@ -551,7 +554,7 @@ contract SymbioticCoreInit is SymbioticInit, SymbioticCoreBindings { slasherIndex, vetoDuration ); - if (callerMode == VmSafe.CallerMode.Broadcast) { + if (callerMode == VmSafe.CallerMode.RecurrentBroadcast) { vm.startBroadcast(deployer); } return vault; diff --git a/script/integration/SymbioticInit.sol b/script/integration/SymbioticInit.sol index 06ee7dbd..bdcf55b9 100644 --- a/script/integration/SymbioticInit.sol +++ b/script/integration/SymbioticInit.sol @@ -102,22 +102,28 @@ contract SymbioticInit is Script, SymbioticCounter { function _deal_Symbiotic(address token, address to, uint256 give) public virtual { (Vm.CallerMode callerMode,, address txOrigin) = vm.readCallers(); - if (callerMode != VmSafe.CallerMode.Broadcast) { + if (callerMode == VmSafe.CallerMode.Broadcast) { + vm.stopBroadcast(); + } + if (callerMode != VmSafe.CallerMode.RecurrentBroadcast) { vm.startBroadcast(txOrigin); } IERC20(token).safeTransfer(to, give); - if (callerMode != VmSafe.CallerMode.Broadcast) { + if (callerMode != VmSafe.CallerMode.RecurrentBroadcast) { vm.stopBroadcast(); } } function _deal_Symbiotic(address to, uint256 give) public virtual { (Vm.CallerMode callerMode,, address txOrigin) = vm.readCallers(); - if (callerMode != VmSafe.CallerMode.Broadcast) { + if (callerMode == VmSafe.CallerMode.Broadcast) { + vm.stopBroadcast(); + } + if (callerMode != VmSafe.CallerMode.RecurrentBroadcast) { vm.startBroadcast(txOrigin); } to.call{value: give}(""); - if (callerMode != VmSafe.CallerMode.Broadcast) { + if (callerMode != VmSafe.CallerMode.RecurrentBroadcast) { vm.stopBroadcast(); } } diff --git a/test/integration/SymbioticCoreInit.sol b/test/integration/SymbioticCoreInit.sol index 61bdcbfc..9f2ac012 100644 --- a/test/integration/SymbioticCoreInit.sol +++ b/test/integration/SymbioticCoreInit.sol @@ -75,7 +75,10 @@ contract SymbioticCoreInit is SymbioticInit, SymbioticCoreBindings { } else { // non-deterministic deployment (uses standard create) (VmSafe.CallerMode callerMode,, address deployer) = vm.readCallers(); - if (callerMode != VmSafe.CallerMode.Broadcast) { + if (callerMode == VmSafe.CallerMode.Prank) { + vm.stopPrank(); + } + if (callerMode != VmSafe.CallerMode.RecurrentPrank) { vm.startPrank(deployer); } ISymbioticVaultFactory vaultFactory = ISymbioticVaultFactory( @@ -251,7 +254,7 @@ contract SymbioticCoreInit is SymbioticInit, SymbioticCoreBindings { operatorNetworkOptInService: operatorNetworkOptInService, vaultConfigurator: vaultConfigurator }); - if (callerMode != VmSafe.CallerMode.Prank) { + if (callerMode != VmSafe.CallerMode.RecurrentPrank) { vm.stopPrank(); } } @@ -281,7 +284,7 @@ contract SymbioticCoreInit is SymbioticInit, SymbioticCoreBindings { address collateral ) internal virtual returns (address) { (Vm.CallerMode callerMode,, address owner) = vm.readCallers(); - if (callerMode == VmSafe.CallerMode.Prank) { + if (callerMode == VmSafe.CallerMode.Prank || callerMode == VmSafe.CallerMode.RecurrentPrank) { vm.stopPrank(); } @@ -334,7 +337,7 @@ contract SymbioticCoreInit is SymbioticInit, SymbioticCoreBindings { }) ) }); - if (callerMode == VmSafe.CallerMode.Prank) { + if (callerMode == VmSafe.CallerMode.RecurrentPrank) { vm.startPrank(owner); } @@ -458,7 +461,7 @@ contract SymbioticCoreInit is SymbioticInit, SymbioticCoreBindings { } (Vm.CallerMode callerMode,, address deployer) = vm.readCallers(); - if (callerMode == VmSafe.CallerMode.Prank) { + if (callerMode == VmSafe.CallerMode.Prank || callerMode == VmSafe.CallerMode.RecurrentPrank) { vm.stopPrank(); } (address vault,,) = _createVault_SymbioticCore({ @@ -479,7 +482,7 @@ contract SymbioticCoreInit is SymbioticInit, SymbioticCoreBindings { _setDepositorWhitelistStatus_SymbioticCore(owner, vault, whitelistedDepositors[i], true); } } - if (callerMode == VmSafe.CallerMode.Prank) { + if (callerMode == VmSafe.CallerMode.RecurrentPrank) { vm.startPrank(owner); } @@ -530,7 +533,7 @@ contract SymbioticCoreInit is SymbioticInit, SymbioticCoreBindings { uint64 slasherIndex = _randomPick_Symbiotic(slasherTypes); (Vm.CallerMode callerMode,, address deployer) = vm.readCallers(); - if (callerMode == VmSafe.CallerMode.Prank) { + if (callerMode == VmSafe.CallerMode.Prank || callerMode == VmSafe.CallerMode.RecurrentPrank) { vm.stopPrank(); } address vault = _getVault_SymbioticCore( @@ -547,7 +550,7 @@ contract SymbioticCoreInit is SymbioticInit, SymbioticCoreBindings { slasherIndex, vetoDuration ); - if (callerMode == VmSafe.CallerMode.Prank) { + if (callerMode == VmSafe.CallerMode.RecurrentPrank) { vm.startPrank(deployer); } return vault;